claudekit-cli 3.41.1-dev.7 → 3.41.2-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js
CHANGED
|
@@ -47784,6 +47784,14 @@ async function isActionPathAllowed(dirPath, projectId) {
|
|
|
47784
47784
|
return false;
|
|
47785
47785
|
return resolve6(project.path) === dirPath;
|
|
47786
47786
|
}
|
|
47787
|
+
if (projectId?.startsWith("discovered-")) {
|
|
47788
|
+
try {
|
|
47789
|
+
const encodedPath = projectId.slice("discovered-".length);
|
|
47790
|
+
const discoveredPath = Buffer.from(encodedPath, "base64url").toString("utf-8");
|
|
47791
|
+
if (resolve6(discoveredPath) === dirPath)
|
|
47792
|
+
return true;
|
|
47793
|
+
} catch {}
|
|
47794
|
+
}
|
|
47787
47795
|
const registeredProjects = await ProjectsRegistryManager.listProjects();
|
|
47788
47796
|
if (registeredProjects.some((project) => resolve6(project.path) === dirPath)) {
|
|
47789
47797
|
return true;
|
|
@@ -57199,7 +57207,7 @@ var package_default;
|
|
|
57199
57207
|
var init_package = __esm(() => {
|
|
57200
57208
|
package_default = {
|
|
57201
57209
|
name: "claudekit-cli",
|
|
57202
|
-
version: "3.41.
|
|
57210
|
+
version: "3.41.2-dev.1",
|
|
57203
57211
|
description: "CLI tool for bootstrapping and updating ClaudeKit projects",
|
|
57204
57212
|
type: "module",
|
|
57205
57213
|
repository: {
|
|
@@ -81900,16 +81908,53 @@ class SyncEngine {
|
|
|
81900
81908
|
}
|
|
81901
81909
|
}
|
|
81902
81910
|
}
|
|
81911
|
+
// src/shared/deletion-pattern-expander.ts
|
|
81912
|
+
var LEGACY_COMMAND_PREFIX_BY_KIT = {
|
|
81913
|
+
engineer: "ck",
|
|
81914
|
+
marketing: "mkt"
|
|
81915
|
+
};
|
|
81916
|
+
function getLegacyCommandPrefix(kitType) {
|
|
81917
|
+
if (!kitType)
|
|
81918
|
+
return null;
|
|
81919
|
+
return LEGACY_COMMAND_PREFIX_BY_KIT[kitType] ?? null;
|
|
81920
|
+
}
|
|
81921
|
+
function canExpandLegacyCommandPattern(pattern, prefix) {
|
|
81922
|
+
if (!pattern.startsWith("commands/"))
|
|
81923
|
+
return false;
|
|
81924
|
+
if (pattern.startsWith(`commands/${prefix}/`))
|
|
81925
|
+
return false;
|
|
81926
|
+
const allPrefixes = Object.values(LEGACY_COMMAND_PREFIX_BY_KIT);
|
|
81927
|
+
if (allPrefixes.some((candidate) => candidate && pattern.startsWith(`commands/${candidate}/`))) {
|
|
81928
|
+
return false;
|
|
81929
|
+
}
|
|
81930
|
+
return true;
|
|
81931
|
+
}
|
|
81932
|
+
function expandDeletionPatterns(patterns, kitType) {
|
|
81933
|
+
const prefix = getLegacyCommandPrefix(kitType);
|
|
81934
|
+
if (!prefix || patterns.length === 0) {
|
|
81935
|
+
return [...patterns];
|
|
81936
|
+
}
|
|
81937
|
+
const expanded = new Set;
|
|
81938
|
+
for (const pattern of patterns) {
|
|
81939
|
+
expanded.add(pattern);
|
|
81940
|
+
if (canExpandLegacyCommandPattern(pattern, prefix)) {
|
|
81941
|
+
expanded.add(`commands/${prefix}/${pattern.slice("commands/".length)}`);
|
|
81942
|
+
}
|
|
81943
|
+
}
|
|
81944
|
+
return [...expanded];
|
|
81945
|
+
}
|
|
81946
|
+
|
|
81903
81947
|
// src/domains/sync/deletion-path-filter.ts
|
|
81904
81948
|
init_path_resolver();
|
|
81905
81949
|
var import_picomatch = __toESM(require_picomatch2(), 1);
|
|
81906
|
-
function filterDeletionPaths(trackedFiles, deletions) {
|
|
81950
|
+
function filterDeletionPaths(trackedFiles, deletions, kitType) {
|
|
81907
81951
|
if (!deletions || deletions.length === 0) {
|
|
81908
81952
|
return trackedFiles;
|
|
81909
81953
|
}
|
|
81954
|
+
const expandedDeletions = expandDeletionPatterns(deletions, kitType);
|
|
81910
81955
|
const exactPaths = new Set;
|
|
81911
81956
|
const globMatchers = [];
|
|
81912
|
-
for (const pattern of
|
|
81957
|
+
for (const pattern of expandedDeletions) {
|
|
81913
81958
|
if (PathResolver.isGlobPattern(pattern)) {
|
|
81914
81959
|
globMatchers.push(import_picomatch.default(pattern));
|
|
81915
81960
|
} else {
|
|
@@ -91324,8 +91369,15 @@ function findFileInMetadata(metadata, path14) {
|
|
|
91324
91369
|
}
|
|
91325
91370
|
return null;
|
|
91326
91371
|
}
|
|
91327
|
-
function
|
|
91328
|
-
|
|
91372
|
+
function findFileInMetadataForKit(metadata, path14, kitType) {
|
|
91373
|
+
if (!metadata)
|
|
91374
|
+
return null;
|
|
91375
|
+
if (!kitType)
|
|
91376
|
+
return findFileInMetadata(metadata, path14);
|
|
91377
|
+
return metadata.kits?.[kitType]?.files?.find((file) => file.path === path14) ?? null;
|
|
91378
|
+
}
|
|
91379
|
+
function shouldDeletePath(path14, metadata, kitType) {
|
|
91380
|
+
const tracked = findFileInMetadataForKit(metadata, path14, kitType);
|
|
91329
91381
|
if (!tracked)
|
|
91330
91382
|
return true;
|
|
91331
91383
|
return tracked.ownership !== "user";
|
|
@@ -91451,8 +91503,8 @@ async function updateMetadataAfterDeletion(claudeDir2, deletedPaths) {
|
|
|
91451
91503
|
logger.debug("Failed to write updated metadata.json");
|
|
91452
91504
|
}
|
|
91453
91505
|
}
|
|
91454
|
-
async function handleDeletions(sourceMetadata, claudeDir2) {
|
|
91455
|
-
const deletionPatterns = sourceMetadata.deletions || [];
|
|
91506
|
+
async function handleDeletions(sourceMetadata, claudeDir2, kitType) {
|
|
91507
|
+
const deletionPatterns = expandDeletionPatterns(sourceMetadata.deletions || [], kitType);
|
|
91456
91508
|
if (deletionPatterns.length === 0) {
|
|
91457
91509
|
return { deletedPaths: [], preservedPaths: [], errors: [] };
|
|
91458
91510
|
}
|
|
@@ -91468,7 +91520,7 @@ async function handleDeletions(sourceMetadata, claudeDir2) {
|
|
|
91468
91520
|
result.errors.push(path14);
|
|
91469
91521
|
continue;
|
|
91470
91522
|
}
|
|
91471
|
-
if (!shouldDeletePath(path14, userMetadata)) {
|
|
91523
|
+
if (!shouldDeletePath(path14, userMetadata, kitType)) {
|
|
91472
91524
|
result.preservedPaths.push(path14);
|
|
91473
91525
|
logger.verbose(`Preserved user file: ${path14}`);
|
|
91474
91526
|
continue;
|
|
@@ -95241,7 +95293,7 @@ async function handleMerge(ctx) {
|
|
|
95241
95293
|
}
|
|
95242
95294
|
try {
|
|
95243
95295
|
if (sourceMetadata?.deletions && sourceMetadata.deletions.length > 0) {
|
|
95244
|
-
const deletionResult = await handleDeletions(sourceMetadata, ctx.claudeDir);
|
|
95296
|
+
const deletionResult = await handleDeletions(sourceMetadata, ctx.claudeDir, ctx.kitType);
|
|
95245
95297
|
if (deletionResult.deletedPaths.length > 0) {
|
|
95246
95298
|
logger.info(`Removed ${deletionResult.deletedPaths.length} deprecated file(s)`);
|
|
95247
95299
|
for (const path15 of deletionResult.deletedPaths) {
|
|
@@ -97663,7 +97715,7 @@ async function executeSyncMerge(ctx) {
|
|
|
97663
97715
|
} catch (error) {
|
|
97664
97716
|
logger.debug(`Failed to load source metadata for deletion filtering: ${error}`);
|
|
97665
97717
|
}
|
|
97666
|
-
const filteredTrackedFiles = filterDeletionPaths(trackedFiles, deletions);
|
|
97718
|
+
const filteredTrackedFiles = filterDeletionPaths(trackedFiles, deletions, ctx.kitType);
|
|
97667
97719
|
if (deletions.length > 0) {
|
|
97668
97720
|
const filtered = trackedFiles.length - filteredTrackedFiles.length;
|
|
97669
97721
|
logger.debug(`Filtered ${filtered} files matching ${deletions.length} deletion patterns`);
|
|
@@ -98967,7 +99019,7 @@ async function processMetadataDeletions(skillSourcePath, installGlobally) {
|
|
|
98967
99019
|
if (!existsSync56(claudeDir2))
|
|
98968
99020
|
return;
|
|
98969
99021
|
try {
|
|
98970
|
-
const result = await handleDeletions(sourceMetadata, claudeDir2);
|
|
99022
|
+
const result = await handleDeletions(sourceMetadata, claudeDir2, inferKitTypeFromSourceMetadata(sourceMetadata));
|
|
98971
99023
|
if (result.deletedPaths.length > 0) {
|
|
98972
99024
|
logger.verbose(`[migrate] Cleaned up ${result.deletedPaths.length} deprecated path(s): ${result.deletedPaths.join(", ")}`);
|
|
98973
99025
|
}
|
|
@@ -98975,6 +99027,13 @@ async function processMetadataDeletions(skillSourcePath, installGlobally) {
|
|
|
98975
99027
|
logger.warning(`[migrate] Deletion cleanup failed: ${error}`);
|
|
98976
99028
|
}
|
|
98977
99029
|
}
|
|
99030
|
+
function inferKitTypeFromSourceMetadata(sourceMetadata) {
|
|
99031
|
+
if (sourceMetadata.name?.includes("marketing"))
|
|
99032
|
+
return "marketing";
|
|
99033
|
+
if (sourceMetadata.name?.includes("engineer"))
|
|
99034
|
+
return "engineer";
|
|
99035
|
+
return;
|
|
99036
|
+
}
|
|
98978
99037
|
async function migrateCommand(options2) {
|
|
98979
99038
|
console.log();
|
|
98980
99039
|
oe(import_picocolors28.default.bgMagenta(import_picocolors28.default.black(" ck migrate ")));
|
|
@@ -244,7 +244,7 @@ Please change the parent <Route path="${v}"> to <Route path="${v==="/"?"*":`${v}
|
|
|
244
244
|
`)}),d.jsx("div",{ref:j})]})]})]}),d.jsx("div",{className:"px-6 py-4 border-t border-dash-border flex justify-end",children:d.jsx("button",{type:"button",onClick:C,disabled:c==="running",className:`px-4 py-2 rounded text-sm font-medium transition-colors ${c==="running"?"bg-dash-bg text-dash-text-muted cursor-not-allowed":"bg-dash-accent text-white hover:bg-dash-accent-hover"}`,children:l("closeModal")})})]})}):null},My=({target:t,kitName:e,currentVersion:n,latestVersion:r,onVersionSelect:i})=>{const{t:s}=he(),[o,a]=m.useState([]),[l,c]=m.useState(!1),[h,u]=m.useState(r);m.useEffect(()=>{(async()=>{c(!0);try{const g=new URLSearchParams({target:t});e&&g.set("kit",e);const x=await(await fetch(`/api/system/versions?${g}`)).json();x.versions&&a(x.versions)}catch(g){console.error("Failed to fetch versions:",g)}finally{c(!1)}})()},[t,e]);const f=p=>{u(p),i(p)};return l?d.jsxs("span",{className:"text-xs text-dash-text-muted flex items-center gap-1.5",children:[d.jsx("span",{className:"w-3 h-3 border-2 border-dash-text-muted border-t-transparent rounded-full animate-spin"}),s("loadingVersions")]}):d.jsx("select",{value:h,onChange:p=>f(p.target.value),className:`text-xs text-amber-500 hover:text-amber-600 font-medium transition-colors
|
|
245
245
|
bg-transparent border border-amber-500/30 rounded px-2 py-1
|
|
246
246
|
focus:outline-none focus:ring-2 focus:ring-amber-500/50
|
|
247
|
-
cursor-pointer appearance-none`,title:s("selectVersion"),children:o.map(p=>{const g=p.version===r,b=p.version===n,x=`v${p.version.replace(/^v/,"")}${g?` (${s("latestVersion")})`:""}${p.isPrerelease?` [${s("prereleaseLabel")}]`:""}${b?` - ${s("currentVersionLabel")}`:""}`;return d.jsx("option",{value:p.version,disabled:b,children:x},p.version)})})},lP=({version:t,installedAt:e,channel:n="stable",externalStatus:r,externalLatestVersion:i,onStatusChange:s,disabled:o})=>{const{t:a}=he(),[l,c]=m.useState("idle"),[h,u]=m.useState(null),[f,p]=m.useState(!1),[g,b]=m.useState(null),x=r??l,w=i??h,v=async()=>{const j=C=>{s||c(C)},S=C=>{s||u(C)};j("checking"),s&&s("checking",null);try{const y=await(await fetch(`/api/system/check-updates?target=cli&channel=${n}`)).json();y.updateAvailable?(j("update-available"),S(y.latest),s&&s("update-available",y.latest)):(j("up-to-date"),s&&s("up-to-date",null))}catch{j("idle"),s&&s("idle",null)}},k=async()=>{window.location.reload()};return d.jsxs(d.Fragment,{children:[d.jsx("div",{className:"dash-panel p-5 transition-colors hover:border-dash-accent/30",children:d.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4",children:[d.jsxs("div",{className:"space-y-3",children:[d.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[d.jsx(Ay,{status:x,ariaLabel:a(x==="up-to-date"?"upToDate":x==="update-available"?"updateAvailable":"checking")}),d.jsx("h3",{className:"text-base font-semibold text-dash-text",children:a("cliCard")}),n==="beta"&&d.jsx("span",{className:"px-2 py-0.5 text-[11px] font-semibold bg-amber-500/15 text-amber-500 rounded border border-amber-500/20",children:a("betaBadge")})]}),d.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-xs text-dash-text-secondary",children:[d.jsxs("span",{className:"px-2 py-1 rounded-md border border-dash-border bg-dash-bg/70 mono",children:[a("currentVersionLabel"),": v",t.replace(/^v/,"")]}),e&&d.jsx("span",{className:"px-2 py-1 rounded-md border border-dash-border bg-dash-bg/70 text-dash-text-muted",children:new Date(e).toLocaleDateString()})]}),x==="update-available"&&w&&d.jsxs("div",{className:"inline-flex items-center rounded-md border border-amber-500/25 bg-amber-500/10 px-2.5 py-1 text-xs text-amber-500 font-medium",children:["v",t.replace(/^v/,"")," ","->"," v",w.replace(/^v/,"")]})]}),d.jsx(cP,{status:x,currentVersion:t,latestVersion:w,onCheck:v,onUpdate:()=>p(!0),onVersionSelect:b,disabled:o})]})}),d.jsx(Ou,{isOpen:f,onClose:()=>p(!1),target:"cli",targetVersion:g??w??void 0,onComplete:k})]})},cP=({status:t,currentVersion:e,latestVersion:n,onCheck:r,onUpdate:i,onVersionSelect:s,disabled:o})=>{const{t:a}=he();return t==="checking"?d.jsxs("span",{className:"text-xs text-dash-text-muted flex items-center gap-1.5 px-2 py-1 rounded-md border border-dash-border bg-dash-bg/70",children:[d.jsx("span",{className:"w-3 h-3 border-2 border-dash-text-muted border-t-transparent rounded-full animate-spin"}),a("checking")]}):t==="up-to-date"?d.jsx("span",{className:"px-2.5 py-1 text-xs rounded-md border border-emerald-500/30 bg-emerald-500/10 text-emerald-500 font-semibold",children:a("upToDate")}):t==="update-available"&&n?d.jsx("div",{className:"flex items-center gap-2",children:d.jsx(My,{target:"cli",currentVersion:e,latestVersion:n,onVersionSelect:l=>{s(l),i()}})}):d.jsx("button",{type:"button",onClick:r,disabled:o,className:"dash-focus-ring px-3 py-2 rounded-lg text-xs font-semibold border border-dash-border bg-dash-surface text-dash-accent hover:text-dash-accent-hover hover:bg-dash-surface-hover transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:a("checkForUpdates")})},dP=({configPath:t,nodeVersion:e,bunVersion:n,os:r})=>{const{t:i}=he();return d.jsxs("div",{className:"dash-panel p-5",children:[d.jsx("h3",{className:"text-sm font-semibold uppercase tracking-wide text-dash-text mb-3",children:i("environment")}),d.jsxs("div",{className:"grid grid-cols-1 gap-2 text-sm md:grid-cols-2",children:[d.jsx(Ea,{label:i("claudeConfigPath"),value:t,mono:!0}),d.jsx(Ea,{label:i("osVersion"),value:r}),d.jsx(Ea,{label:i("nodeVersion"),value:e,mono:!0}),n&&d.jsx(Ea,{label:i("bunVersion"),value:n,mono:!0})]})]})},Ea=({label:t,value:e,mono:n})=>d.jsxs("div",{className:"rounded-lg border border-dash-border bg-dash-bg/70 p-2.5",children:[d.jsx("p",{className:"text-dash-text-muted text-[11px] uppercase tracking-wide mb-1",children:t}),d.jsx("p",{className:`text-dash-text-secondary break-all ${n?"mono text-xs":"text-sm"}`,children:e})]}),hP={ok:"bg-emerald-500/10 text-emerald-500 border-emerald-500/20",skip:"bg-slate-500/10 text-slate-300 border-slate-500/20",warn:"bg-amber-500/10 text-amber-400 border-amber-500/20",block:"bg-orange-500/10 text-orange-400 border-orange-500/20",error:"bg-red-500/10 text-red-400 border-red-500/20",crash:"bg-red-500/10 text-red-400 border-red-500/20"};function Nm(t,e){if(!t)return e;try{return new Intl.DateTimeFormat(void 0,{month:"short",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}).format(new Date(t))}catch{return t}}const uP=()=>{const{t}=he(),[e,n]=m.useState([]),[r,i]=m.useState("global"),[s,o]=m.useState(null),[a,l]=m.useState(!0),[c,h]=m.useState(null),u=m.useRef(0),f=m.useRef(null),p=m.useCallback(async v=>{u.current+=1;const k=u.current;f.current?.abort();const j=new AbortController;f.current=j,l(!0),h(null);try{const S=await B2(v==="global"?{scope:"global",limit:40,signal:j.signal}:{scope:"project",projectId:v,limit:40,signal:j.signal});if(k!==u.current)return;o(S)}catch(S){if(j.signal.aborted||k!==u.current)return;o(null),h(S instanceof Error?S.message:t("hookDiagnosticsLoadFailed"))}finally{k===u.current&&(l(!1),f.current=null)}},[t]);m.useEffect(()=>{let v=!1;return _h().then(k=>{v||n(k.map(j=>({id:j.id,name:j.name})))}).catch(()=>{v||n([])}),()=>{v=!0}},[]),m.useEffect(()=>{p(r)},[p,r]),m.useEffect(()=>()=>{f.current?.abort()},[]);const g=s?.summary,b=g?.statusCounts??{},x=s?.entries??[],w=m.useMemo(()=>[{label:t("hookDiagnosticsEntries"),value:String(g?.total??0)},{label:t("hookDiagnosticsCrashes"),value:String(b.crash??0)},{label:t("hookDiagnosticsWarnings"),value:String(b.warn??0)},{label:t("hookDiagnosticsBlocks"),value:String(b.block??0)}],[g?.total,b.block,b.crash,b.warn,t]);return d.jsxs("section",{className:"dash-panel p-4 space-y-4",children:[d.jsxs("div",{className:"flex flex-col gap-3 lg:flex-row lg:items-start lg:justify-between",children:[d.jsxs("div",{className:"space-y-1 min-w-0",children:[d.jsx("h3",{className:"text-sm font-semibold uppercase tracking-wide text-dash-text",children:t("hookDiagnosticsTitle")}),d.jsx("p",{className:"text-xs text-dash-text-secondary",children:t("hookDiagnosticsDesc")}),d.jsx("p",{className:"mono text-[11px] text-dash-text-muted break-all",children:s?.path??t("hookDiagnosticsPathPending")})]}),d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsxs("select",{value:r,onChange:v=>i(v.target.value),className:"rounded-lg border border-dash-border bg-dash-bg px-3 py-2 text-xs text-dash-text",children:[d.jsx("option",{value:"global",children:t("hookDiagnosticsScopeGlobal")}),e.map(v=>d.jsx("option",{value:v.id,children:v.name},v.id))]}),d.jsx("button",{type:"button",onClick:()=>void p(r),className:"rounded-lg border border-dash-border bg-dash-surface px-3 py-2 text-xs font-semibold text-dash-text-secondary hover:bg-dash-surface-hover",children:t("refresh")})]})]}),d.jsx("div",{className:"grid grid-cols-2 gap-3 xl:grid-cols-4",children:w.map(v=>d.jsxs("div",{className:"rounded-lg border border-dash-border bg-dash-bg/60 px-3 py-2",children:[d.jsx("p",{className:"text-[11px] uppercase tracking-wide text-dash-text-muted",children:v.label}),d.jsx("p",{className:"mono mt-1 text-lg font-semibold text-dash-text",children:v.value})]},v.label))}),g?.lastEventAt&&d.jsxs("p",{className:"text-xs text-dash-text-muted",children:[t("hookDiagnosticsLastEvent"),":"," ",Nm(g.lastEventAt,t("hookDiagnosticsUnknown"))]}),g&&(g.parseErrors>0||g.truncated)&&d.jsxs("div",{className:"rounded-lg border border-amber-500/30 bg-amber-500/10 px-3 py-2 text-xs text-amber-200",children:[g.parseErrors>0&&d.jsx("p",{children:t("hookDiagnosticsParseErrorsNotice").replace("{count}",String(g.parseErrors))}),g.truncated&&d.jsx("p",{children:t("hookDiagnosticsTruncatedNotice")})]}),a&&d.jsx("p",{className:"text-sm text-dash-text-muted",children:t("hookDiagnosticsLoading")}),c&&d.jsx("p",{className:"text-sm text-red-400",children:c}),!a&&!c&&s&&!s.exists&&d.jsx("p",{className:"text-sm text-dash-text-muted",children:t("hookDiagnosticsMissing")}),!a&&!c&&s?.exists&&d.jsx("div",{className:"space-y-2",children:x.length===0?d.jsx("p",{className:"text-sm text-dash-text-muted",children:t("hookDiagnosticsEmpty")}):x.map((v,k)=>d.jsxs("div",{className:"rounded-lg border border-dash-border bg-dash-bg/70 px-3 py-3",children:[d.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[d.jsx("span",{className:"mono text-[11px] text-dash-text-muted",children:Nm(v.ts,t("hookDiagnosticsUnknown"))}),d.jsx("span",{className:`rounded-full border px-2 py-0.5 text-[10px] font-semibold uppercase ${hP[v.status]??"bg-dash-surface text-dash-text border-dash-border"}`,children:v.status}),d.jsx("span",{className:"text-sm font-medium text-dash-text",children:v.hook}),v.event&&d.jsx("span",{className:"text-xs text-dash-text-muted",children:v.event}),v.tool&&d.jsxs("span",{className:"text-xs text-dash-text-muted",children:[t("hookDiagnosticsToolLabel"),": ",v.tool]})]}),(v.note||v.target||v.error)&&d.jsxs("div",{className:"mt-2 space-y-1 text-xs text-dash-text-secondary",children:[v.note&&d.jsx("p",{children:v.note}),v.target&&d.jsxs("p",{className:"mono",children:[t("hookDiagnosticsTargetLabel"),": ",v.target]}),v.error&&d.jsx("p",{className:"text-red-400",children:v.error})]})]},`${v.ts}-${v.hook}-${k}`))})]})};function fP(t){let e=0,n=0,r=0;for(const i of t)i.ownership==="ck"?e++:i.ownership==="user"?n++:i.ownership==="ck-modified"&&r++;return{ck:e,user:n,modified:r}}function pP(t){const e={skills:0,commands:0,rules:0,hooks:0,settings:0,other:0};for(const n of t){const r=n.path;r.startsWith("skills/")?e.skills++:r.startsWith("commands/")?e.commands++:r.startsWith("rules/")?e.rules++:r.startsWith("hooks/")||r==="hooks.json"?e.hooks++:r.startsWith("settings/")||r==="settings.json"?e.settings++:e.other++}return e}const mP=({kitName:t,kit:e,channel:n="stable",externalStatus:r,externalLatestVersion:i,onStatusChange:s,disabled:o})=>{const{t:a}=he(),[l,c]=m.useState("idle"),[h,u]=m.useState(null),[f,p]=m.useState(!1),[g,b]=m.useState(null),x=r??l,w=i??h,v=e.files??[],k=fP(v),j=pP(v),S=async()=>{const y=A=>{s||c(A)},N=A=>{s||u(A)};y("checking"),s&&s("checking",null);try{const T=await(await fetch(`/api/system/check-updates?target=kit&kit=${t}&channel=${n}`)).json();T.updateAvailable?(y("update-available"),N(T.latest),s&&s("update-available",T.latest)):(y("up-to-date"),s&&s("up-to-date",null))}catch{y("idle"),s&&s("idle",null)}},C=async()=>{window.location.reload()};return d.jsxs(d.Fragment,{children:[d.jsxs("div",{className:"dash-panel p-5 space-y-4 transition-colors hover:border-dash-accent/30",children:[d.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4",children:[d.jsxs("div",{className:"space-y-3",children:[d.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[d.jsx(Ay,{status:x,ariaLabel:a(x==="up-to-date"?"upToDate":x==="update-available"?"updateAvailable":"checking")}),d.jsxs("h3",{className:"text-base font-semibold text-dash-text capitalize",children:[t," Kit"]}),n==="beta"&&d.jsx("span",{className:"px-2 py-0.5 text-[11px] font-semibold bg-amber-500/15 text-amber-500 rounded border border-amber-500/20",children:a("betaBadge")})]}),d.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-xs text-dash-text-secondary",children:[d.jsxs("span",{className:"px-2 py-1 rounded-md border border-dash-border bg-dash-bg/70 mono",children:[a("currentVersionLabel"),": v",(e.version??"?").replace(/^v/,"")]}),e.installedAt&&d.jsx("span",{className:"px-2 py-1 rounded-md border border-dash-border bg-dash-bg/70 text-dash-text-muted",children:new Date(e.installedAt).toLocaleDateString()}),d.jsxs("span",{className:"px-2 py-1 rounded-md border border-dash-border bg-dash-bg/70 mono",children:[a("components"),": ",v.length]})]}),x==="update-available"&&w&&d.jsxs("div",{className:"inline-flex items-center rounded-md border border-amber-500/25 bg-amber-500/10 px-2.5 py-1 text-xs text-amber-500 font-medium",children:["v",(e.version??"?").replace(/^v/,"")," ","->"," v",w.replace(/^v/,"")]})]}),d.jsx(gP,{status:x,currentVersion:e.version??"0.0.0",latestVersion:w,kitName:t,onCheck:S,onUpdate:()=>p(!0),onVersionSelect:b,disabled:o})]}),v.length>0&&d.jsx("div",{className:"grid grid-cols-1 gap-1.5 sm:grid-cols-2 xl:grid-cols-3",children:Object.entries(j).filter(([,y])=>y>0).map(([y,N])=>d.jsxs("div",{className:"flex items-center justify-between px-2.5 py-2 bg-dash-bg/70 border border-dash-border rounded-lg text-xs",children:[d.jsx("span",{className:"text-dash-text-secondary capitalize",children:y}),d.jsx("span",{className:"font-bold mono text-dash-text",children:N})]},y))}),v.length>0&&d.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-xs text-dash-text-muted",children:[d.jsxs("span",{className:"flex items-center gap-1.5 px-2.5 py-1 rounded-md border border-dash-border bg-dash-bg/70",children:[d.jsx("span",{className:"w-2 h-2 rounded-full bg-emerald-500 shrink-0"}),k.ck," ",a("ownershipCk")]}),k.user>0&&d.jsxs("span",{className:"flex items-center gap-1.5 px-2.5 py-1 rounded-md border border-dash-border bg-dash-bg/70",children:[d.jsx("span",{className:"w-2 h-2 rounded-full bg-blue-500 shrink-0"}),k.user," ",a("ownershipUser")]}),k.modified>0&&d.jsxs("span",{className:"flex items-center gap-1.5 px-2.5 py-1 rounded-md border border-dash-border bg-dash-bg/70",children:[d.jsx("span",{className:"w-2 h-2 rounded-full bg-amber-500 shrink-0"}),k.modified," ",a("ownershipModified")]})]}),v.length===0&&d.jsx("p",{className:"text-xs text-dash-text-muted",children:a("noTrackedFiles")})]}),d.jsx(Ou,{isOpen:f,onClose:()=>p(!1),target:"kit",kitName:t,targetVersion:g??w??void 0,onComplete:C})]})},gP=({status:t,currentVersion:e,latestVersion:n,kitName:r,onCheck:i,onUpdate:s,onVersionSelect:o,disabled:a})=>{const{t:l}=he();return t==="checking"?d.jsxs("span",{className:"text-xs text-dash-text-muted flex items-center gap-1.5 px-2 py-1 rounded-md border border-dash-border bg-dash-bg/70",children:[d.jsx("span",{className:"w-3 h-3 border-2 border-dash-text-muted border-t-transparent rounded-full animate-spin"}),l("checking")]}):t==="up-to-date"?d.jsx("span",{className:"px-2.5 py-1 text-xs rounded-md border border-emerald-500/30 bg-emerald-500/10 text-emerald-500 font-semibold",children:l("upToDate")}):t==="update-available"&&n?d.jsx("div",{className:"flex items-center gap-2",children:d.jsx(My,{target:"kit",kitName:r,currentVersion:e,latestVersion:n,onVersionSelect:c=>{o(c),s()}})}):d.jsx("button",{type:"button",onClick:i,disabled:a,className:"dash-focus-ring px-3 py-2 rounded-lg text-xs font-semibold border border-dash-border bg-dash-surface text-dash-accent hover:text-dash-accent-hover hover:bg-dash-surface-hover transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:l("checkForUpdates")})},Dm="claudekit-update-channel",Am="claudekit-system-filter",bP=t=>/-(alpha|beta|rc|dev|next)/.test(t),xP=t=>t==="all"||t==="updates"||t==="up-to-date"||t==="cli"||t==="kits"?t:"all",Mm=t=>t==="update-available"?0:t==="checking"?1:t==="idle"?2:3,yP=({metadata:t})=>{const{t:e}=he(),[n,r]=m.useState(null),[i,s]=m.useState([]),[o,a]=m.useState(!1),[l,c]=m.useState(!1),[h,u]=m.useState(!1),[f,p]=m.useState("stable"),[g,b]=m.useState(()=>xP(localStorage.getItem(Am))),x=m.useRef(!1),w=m.useRef(0),v=m.useMemo(()=>!t.kits||typeof t.kits!="object"?[]:Object.entries(t.kits),[t.kits]),k=v.length>0,j=t.name,S=t.version,C=t.installedAt,y=v.length>0||j;m.useEffect(()=>{if(!n)return;const U=[];if(U.push({id:"cli",type:"cli",status:"idle",currentVersion:n.cliVersion,latestVersion:null}),k&&v.length>0)for(const[ve,ee]of v){const Ae=ee;U.push({id:ve,type:"kit",status:"idle",currentVersion:Ae.version??"?",latestVersion:null})}else j&&U.push({id:j,type:"kit",status:"idle",currentVersion:S??"?",latestVersion:null});s(U)},[n,k,v,j,S]),m.useEffect(()=>{fetch("/api/system/info").then(U=>U.json()).then(r).catch(()=>r(null))},[]),m.useEffect(()=>{const U=localStorage.getItem(Dm);U==="stable"||U==="beta"?p(U):n?.cliVersion&&p(bP(n.cliVersion)?"beta":"stable")},[n?.cliVersion]);const N=U=>{p(U),localStorage.setItem(Dm,U)};m.useEffect(()=>{localStorage.setItem(Am,g)},[g]);const A=(U,ve,ee)=>{s(Ae=>Ae.map(pe=>pe.id===U?{...pe,status:ve,latestVersion:ee}:pe))},T=m.useCallback(async()=>{if(i.length===0)return;const U=w.current+1;w.current=U,a(!0),s(ve=>ve.map(ee=>ee.status==="checking"&&ee.latestVersion===null?ee:{...ee,status:"checking",latestVersion:null}));try{const ve=i.map(async Ae=>{try{const pe=Ae.type==="cli"?`target=cli&channel=${f}`:`target=kit&kit=${Ae.id}&channel=${f}`,$=await(await fetch(`/api/system/check-updates?${pe}`)).json();return{id:Ae.id,status:$.updateAvailable?"update-available":"up-to-date",latestVersion:$.latest}}catch{return{id:Ae.id,status:"idle",latestVersion:null}}}),ee=await Promise.all(ve);if(w.current!==U)return;s(Ae=>Ae.map(pe=>{const _e=ee.find($=>$.id===pe.id);return _e?{...pe,status:_e.status,latestVersion:_e.latestVersion}:pe}))}finally{w.current===U&&a(!1)}},[f,i]),P=U=>{b(U),(U==="updates"||U==="up-to-date")&&!o&&!l&&i.length>0&&i.every(ee=>ee.status==="idle")&&(x.current=!0,T())},R=()=>{u(!0)},z=()=>{window.location.reload()},I=i.filter(U=>U.status==="update-available").length,F=i.filter(U=>U.status==="up-to-date").length,G=i.filter(U=>U.status==="up-to-date"||U.status==="update-available").length,ae=i.some(U=>U.status==="checking"),X=k&&v.length>0?v.length:j?1:0,Q=i.find(U=>U.id==="cli")?.status??"idle",le=m.useMemo(()=>k&&v.length>0?v.map(([U,ve])=>({id:U,kitName:U,kit:ve})):j?[{id:j,kitName:j,kit:{version:S,installedAt:C}}]:[],[k,v,j,S,C]),fe=m.useMemo(()=>{const ve=[...le.map(ee=>({...ee,status:i.find(Ae=>Ae.id===ee.id)?.status??"idle"}))].sort((ee,Ae)=>{const pe=Mm(ee.status)-Mm(Ae.status);return pe!==0?pe:ee.kitName.localeCompare(Ae.kitName)});return g==="updates"?ve.filter(ee=>ee.status==="update-available"):g==="up-to-date"?ve.filter(ee=>ee.status==="up-to-date"):g==="cli"?[]:ve},[le,i,g]),W=g==="all"||g==="cli"||g==="updates"&&Q==="update-available"||g==="up-to-date"&&Q==="up-to-date",se=(W?1:0)+fe.length;m.useEffect(()=>{if(!(!(g==="updates"||g==="up-to-date")||x.current)&&!(o||l||i.length===0)){if(!i.every(ve=>ve.status==="idle")){x.current=!0;return}x.current=!0,T()}},[T,o,l,i,g]);const ue=m.useMemo(()=>se!==0?"":(g==="updates"||g==="up-to-date")&&ae?e("checkingAll"):(g==="updates"||g==="up-to-date")&&G===0?e("runCheckAllForFilter"):g==="updates"&&G>0&&I===0?e("noUpdatesFound"):g==="up-to-date"&&G>0&&F===0?e("noUpToDateYet"):e("noComponentsMatchFilter"),[se,g,ae,G,I,F,e]),xe=!y&&g!=="cli",Pe=e("componentFilterUpdatesCount").replace("{count}",I.toString()),Qe=e("componentFilterUpToDateCount").replace("{count}",F.toString());return d.jsxs("div",{className:"relative",children:[d.jsxs("div",{className:"pointer-events-none absolute inset-0 -z-10 overflow-hidden",children:[d.jsx("div",{className:"absolute -top-20 -right-8 h-56 w-56 rounded-full bg-dash-accent/10 blur-3xl"}),d.jsx("div",{className:"absolute -bottom-24 -left-10 h-64 w-64 rounded-full bg-dash-accent/5 blur-3xl"})]}),d.jsxs("div",{className:"space-y-4",children:[d.jsx("section",{className:"dash-panel dash-sticky-glass p-4 md:p-5 sticky top-0 z-10",children:d.jsxs("div",{className:"flex flex-col gap-4 lg:flex-row lg:items-center lg:justify-between",children:[d.jsxs("div",{className:"space-y-1",children:[d.jsx("p",{className:"mono text-[10px] uppercase tracking-[0.16em] text-dash-text-muted",children:e("systemControlTower")}),d.jsx("h2",{className:"text-xl md:text-2xl font-semibold text-dash-text",children:e("systemOverviewTitle")}),d.jsx("p",{className:"text-sm text-dash-text-secondary max-w-2xl",children:e("systemOverviewDesc")})]}),d.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[d.jsx(oP,{value:f,onChange:N,disabled:o||l}),i.length>0&&d.jsx(sP,{components:i,isChecking:o,isUpdating:l,onCheckAll:T,onUpdateAll:R})]})]})}),d.jsxs("section",{className:"grid grid-cols-2 gap-3 xl:grid-cols-5",children:[d.jsx(Xi,{label:e("components"),value:i.length.toString()}),d.jsx(Xi,{label:e("kitsLabel"),value:X.toString()}),d.jsx(Xi,{label:e("updateAvailable"),value:I.toString(),tone:"accent"}),d.jsx(Xi,{label:e("upToDate"),value:F.toString(),tone:"success"}),d.jsx(Xi,{label:e("checkedComponents"),value:G.toString()})]}),d.jsxs("section",{className:"grid gap-4 xl:grid-cols-[minmax(0,1fr)_320px]",children:[d.jsxs("div",{className:"space-y-3 min-w-0",children:[d.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3 px-1",children:[d.jsx("h3",{className:"text-sm font-semibold uppercase tracking-wide text-dash-text",children:e("installedComponentsHeading")}),d.jsxs("fieldset",{className:"flex items-center gap-2",children:[d.jsx("legend",{className:"sr-only",children:e("installedComponentsHeading")}),d.jsx(Zi,{label:e("componentFilterAll"),value:g,activeValue:"all",onClick:()=>P("all")}),d.jsx(Zi,{label:Pe,value:g,activeValue:"updates",onClick:()=>P("updates")}),d.jsx(Zi,{label:Qe,value:g,activeValue:"up-to-date",onClick:()=>P("up-to-date")}),d.jsx(Zi,{label:e("componentFilterCli"),value:g,activeValue:"cli",onClick:()=>P("cli")}),d.jsx(Zi,{label:e("componentFilterKits"),value:g,activeValue:"kits",onClick:()=>P("kits")})]})]}),W&&d.jsx(lP,{version:n?.cliVersion??"...",installedAt:void 0,externalStatus:i.find(U=>U.id==="cli")?.status,externalLatestVersion:i.find(U=>U.id==="cli")?.latestVersion??null,onStatusChange:(U,ve)=>A("cli",U,ve),disabled:o||l,channel:f}),fe.map(U=>{const ve=i.find(ee=>ee.id===U.id);return d.jsx(mP,{kitName:U.kitName,kit:U.kit,externalStatus:ve?.status,externalLatestVersion:ve?.latestVersion??null,onStatusChange:(ee,Ae)=>A(U.id,ee,Ae),disabled:o||l,channel:f},U.id)}),xe&&d.jsx("div",{className:"dash-panel-muted p-6 text-center opacity-80",children:d.jsx("p",{className:"text-sm text-dash-text-secondary",children:e("noKitInstalled")})}),!xe&&se===0&&d.jsx("div",{className:"dash-panel-muted p-6 text-center opacity-80",children:d.jsx("p",{className:"text-sm text-dash-text-secondary",children:ue})})]}),d.jsxs("aside",{className:"space-y-3 xl:sticky xl:top-20 self-start",children:[d.jsxs("div",{className:"dash-panel p-4 space-y-3",children:[d.jsx("h3",{className:"text-sm font-semibold uppercase tracking-wide text-dash-text",children:e("updateReadiness")}),d.jsxs("div",{className:"space-y-2",children:[d.jsx(Ra,{label:e("updateAvailable"),value:I.toString(),tone:I>0?"accent":"default"}),d.jsx(Ra,{label:e("upToDate"),value:F.toString(),tone:"success"}),d.jsx(Ra,{label:e("checkedComponents"),value:G.toString()}),d.jsx(Ra,{label:e("activeChannel"),value:e(f==="beta"?"channelBeta":"channelStable")})]})]}),n&&d.jsx(dP,{configPath:n.configPath,nodeVersion:n.nodeVersion,bunVersion:n.bunVersion,os:n.os}),d.jsx(uP,{})]})]})]}),d.jsx(Ou,{isOpen:h,onClose:()=>u(!1),target:"cli",mode:"batch",components:i.filter(U=>U.status==="update-available").map(U=>({id:U.id,name:U.id==="cli"?"CLI":`${U.id} Kit`})),onComplete:z})]})},Xi=({label:t,value:e,tone:n="default"})=>{const r=n==="accent"?"text-dash-accent":n==="success"?"text-emerald-500":"text-dash-text";return d.jsxs("div",{className:"dash-panel p-3",children:[d.jsx("p",{className:"text-[11px] uppercase tracking-wide text-dash-text-muted",children:t}),d.jsx("p",{className:`mt-1 mono text-xl font-semibold ${r}`,children:e})]})},Ra=({label:t,value:e,tone:n="default"})=>{const r=n==="accent"?"text-dash-accent":n==="success"?"text-emerald-500":"text-dash-text-secondary";return d.jsxs("div",{className:"flex items-center justify-between rounded-lg border border-dash-border bg-dash-bg/70 px-3 py-2",children:[d.jsx("span",{className:"text-xs text-dash-text-muted",children:t}),d.jsx("span",{className:`mono text-xs font-semibold ${r}`,children:e})]})},Zi=({label:t,value:e,activeValue:n,onClick:r})=>{const i=e===n;return d.jsx("button",{type:"button",onClick:r,"aria-pressed":i,className:`dash-focus-ring px-2.5 py-1.5 rounded-lg text-[11px] font-semibold border transition-colors ${i?"border-dash-accent/30 bg-dash-accent-subtle text-dash-accent":"border-dash-border bg-dash-surface text-dash-text-muted hover:text-dash-text hover:bg-dash-surface-hover"}`,children:t})},Xc="~/.claude/settings.json",La="{}",vP=()=>{const{t}=he(),[e,n]=m.useState(!0),[r,i]=m.useState(Xc),[s,o]=m.useState(La),[a,l]=m.useState(La),[c,h]=m.useState(0),[u,f]=m.useState(!1),[p,g]=m.useState(!1),[b,x]=m.useState("idle"),[w,v]=m.useState(null),[k,j]=m.useState(null);m.useEffect(()=>{let A=!1;return(async()=>{n(!0),g(!1);try{const P=await I2();if(A)return;const R=JSON.stringify(P.settings??{},null,2);i(P.path||Xc),f(!!P.exists),o(R),l(R),v(null)}catch{if(A)return;g(!0),f(!1),i(Xc),o(La),l(La)}finally{A||n(!1)}})(),()=>{A=!0}},[]);const S=A=>{l(A),j(null);try{JSON.parse(A),v(null)}catch(T){v(T instanceof Error?T.message:"Invalid JSON")}},C=()=>{l(s),v(null),j(null),x("idle")},y=async()=>{if(!(e||w)){x("saving"),j(null);try{const A=JSON.parse(a),T=JSON.stringify(A,null,2),P=await $2(A);o(T),l(T),f(!0),x("saved"),j(P.backupPath?`${t("settingsBackupSaved")}: ${P.backupPath}`:t("saved")),setTimeout(()=>x("idle"),2e3)}catch(A){x("error"),j(A instanceof Error?A.message:t("saveFailed")),setTimeout(()=>x("idle"),3e3)}}},N=a!==s;return d.jsxs("section",{className:"h-full min-h-0 flex flex-col rounded-xl border border-dash-border bg-dash-surface p-3 shadow-sm",children:[d.jsxs("div",{className:"mb-2 flex items-end justify-between gap-3 px-1",children:[d.jsxs("div",{className:"min-w-0",children:[d.jsx("h3",{className:"text-sm font-semibold uppercase tracking-wide text-dash-text",children:t("settingsJsonHeading")}),d.jsx("p",{className:"mono text-[11px] text-dash-text-muted truncate",children:r})]}),d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsx("button",{type:"button",onClick:C,disabled:e||!N||b==="saving",className:"px-3 py-1.5 rounded-lg bg-dash-surface text-xs font-bold text-dash-text-secondary hover:bg-dash-surface-hover transition-colors border border-dash-border disabled:opacity-50 disabled:cursor-not-allowed",children:t("discard")}),d.jsx("button",{type:"button",onClick:y,disabled:e||b==="saving"||!!w||!N,className:`px-3 py-1.5 rounded-lg text-xs font-bold transition-all tracking-widest uppercase disabled:opacity-50 disabled:cursor-not-allowed ${b==="saved"?"bg-green-500 text-white shadow-lg shadow-green-500/20":b==="error"?"bg-red-500 text-white":"bg-dash-accent text-dash-bg hover:bg-dash-accent-hover shadow-lg shadow-dash-accent/20"}`,children:t(b==="saving"?"saving":b==="saved"?"saved":b==="error"?"saveFailed":"saveChanges")})]})]}),d.jsx("div",{className:"flex-1 min-h-0",children:d.jsx(ju,{width:100,isLoading:e,jsonText:a,cursorLine:c,syntaxError:w,onChange:S,onCursorLineChange:h})}),k&&d.jsx("p",{className:`mt-2 px-1 text-xs ${b==="error"?"text-red-500":"text-dash-text-muted"}`,children:k}),!e&&!p&&!u&&d.jsx("p",{className:"mt-2 px-1 text-xs text-dash-text-muted",children:t("settingsJsonMissing")}),!e&&p&&d.jsx("p",{className:"mt-2 px-1 text-xs text-red-500",children:t("settingsJsonLoadFailed")})]})},wP=(t,e)=>{const[n,r]=m.useState(null);return m.useEffect(()=>{const i=t.split(`
|
|
247
|
+
cursor-pointer appearance-none`,title:s("selectVersion"),children:o.map(p=>{const g=p.version===r,b=p.version===n,x=`v${p.version.replace(/^v/,"")}${g?` (${s("latestVersion")})`:""}${p.isPrerelease?` [${s("prereleaseLabel")}]`:""}${b?` - ${s("currentVersionLabel")}`:""}`;return d.jsx("option",{value:p.version,disabled:b,children:x},p.version)})})},lP=({version:t,installedAt:e,channel:n="stable",externalStatus:r,externalLatestVersion:i,onStatusChange:s,disabled:o})=>{const{t:a}=he(),[l,c]=m.useState("idle"),[h,u]=m.useState(null),[f,p]=m.useState(!1),[g,b]=m.useState(null),x=r??l,w=i??h,v=async()=>{const j=C=>{s||c(C)},S=C=>{s||u(C)};j("checking"),s&&s("checking",null);try{const y=await(await fetch(`/api/system/check-updates?target=cli&channel=${n}`)).json();y.updateAvailable?(j("update-available"),S(y.latest),s&&s("update-available",y.latest)):(j("up-to-date"),s&&s("up-to-date",null))}catch{j("idle"),s&&s("idle",null)}},k=async()=>{window.location.reload()};return d.jsxs(d.Fragment,{children:[d.jsx("div",{className:"dash-panel p-5 transition-colors hover:border-dash-accent/30",children:d.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4",children:[d.jsxs("div",{className:"space-y-3",children:[d.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[d.jsx(Ay,{status:x,ariaLabel:a(x==="up-to-date"?"upToDate":x==="update-available"?"updateAvailable":"checking")}),d.jsx("h3",{className:"text-base font-semibold text-dash-text",children:a("cliCard")}),n==="beta"&&d.jsx("span",{className:"px-2 py-0.5 text-[11px] font-semibold bg-amber-500/15 text-amber-500 rounded border border-amber-500/20",children:a("betaBadge")})]}),d.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-xs text-dash-text-secondary",children:[d.jsxs("span",{className:"px-2 py-1 rounded-md border border-dash-border bg-dash-bg/70 mono",children:[a("currentVersionLabel"),": v",t.replace(/^v/,"")]}),e&&d.jsx("span",{className:"px-2 py-1 rounded-md border border-dash-border bg-dash-bg/70 text-dash-text-muted",children:new Date(e).toLocaleDateString()})]}),x==="update-available"&&w&&d.jsxs("div",{className:"inline-flex items-center rounded-md border border-amber-500/25 bg-amber-500/10 px-2.5 py-1 text-xs text-amber-500 font-medium",children:["v",t.replace(/^v/,"")," ","->"," v",w.replace(/^v/,"")]})]}),d.jsx(cP,{status:x,currentVersion:t,latestVersion:w,onCheck:v,onUpdate:()=>p(!0),onVersionSelect:b,disabled:o})]})}),d.jsx(Ou,{isOpen:f,onClose:()=>p(!1),target:"cli",targetVersion:g??w??void 0,onComplete:k})]})},cP=({status:t,currentVersion:e,latestVersion:n,onCheck:r,onUpdate:i,onVersionSelect:s,disabled:o})=>{const{t:a}=he();return t==="checking"?d.jsxs("span",{className:"text-xs text-dash-text-muted flex items-center gap-1.5 px-2 py-1 rounded-md border border-dash-border bg-dash-bg/70",children:[d.jsx("span",{className:"w-3 h-3 border-2 border-dash-text-muted border-t-transparent rounded-full animate-spin"}),a("checking")]}):t==="up-to-date"?d.jsx("span",{className:"px-2.5 py-1 text-xs rounded-md border border-emerald-500/30 bg-emerald-500/10 text-emerald-500 font-semibold",children:a("upToDate")}):t==="update-available"&&n?d.jsx("div",{className:"flex items-center gap-2",children:d.jsx(My,{target:"cli",currentVersion:e,latestVersion:n,onVersionSelect:l=>{s(l),i()}})}):d.jsx("button",{type:"button",onClick:r,disabled:o,className:"dash-focus-ring px-3 py-2 rounded-lg text-xs font-semibold border border-dash-border bg-dash-surface text-dash-accent hover:text-dash-accent-hover hover:bg-dash-surface-hover transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:a("checkForUpdates")})},dP=({configPath:t,nodeVersion:e,bunVersion:n,os:r})=>{const{t:i}=he();return d.jsxs("div",{className:"dash-panel p-5",children:[d.jsx("h3",{className:"text-sm font-semibold uppercase tracking-wide text-dash-text mb-3",children:i("environment")}),d.jsxs("div",{className:"grid grid-cols-1 gap-2 text-sm md:grid-cols-2",children:[d.jsx(Ea,{label:i("claudeConfigPath"),value:t,mono:!0}),d.jsx(Ea,{label:i("osVersion"),value:r}),d.jsx(Ea,{label:i("nodeVersion"),value:e,mono:!0}),n&&d.jsx(Ea,{label:i("bunVersion"),value:n,mono:!0})]})]})},Ea=({label:t,value:e,mono:n})=>d.jsxs("div",{className:"rounded-lg border border-dash-border bg-dash-bg/70 p-2.5",children:[d.jsx("p",{className:"text-dash-text-muted text-[11px] uppercase tracking-wide mb-1",children:t}),d.jsx("p",{className:`text-dash-text-secondary break-all ${n?"mono text-xs":"text-sm"}`,children:e})]}),hP={ok:"bg-emerald-500/10 text-emerald-500 border-emerald-500/20",skip:"bg-slate-500/10 text-slate-300 border-slate-500/20",warn:"bg-amber-500/10 text-amber-400 border-amber-500/20",block:"bg-orange-500/10 text-orange-400 border-orange-500/20",error:"bg-red-500/10 text-red-400 border-red-500/20",crash:"bg-red-500/10 text-red-400 border-red-500/20"};function Nm(t,e){if(!t)return e;try{return new Intl.DateTimeFormat(void 0,{month:"short",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}).format(new Date(t))}catch{return t}}const uP=()=>{const{t}=he(),[e,n]=m.useState([]),[r,i]=m.useState("global"),[s,o]=m.useState(null),[a,l]=m.useState(!0),[c,h]=m.useState(null),u=m.useRef(0),f=m.useRef(null),p=m.useCallback(async v=>{u.current+=1;const k=u.current;f.current?.abort();const j=new AbortController;f.current=j,l(!0),h(null);try{const S=await B2(v==="global"?{scope:"global",limit:40,signal:j.signal}:{scope:"project",projectId:v,limit:40,signal:j.signal});if(k!==u.current)return;o(S)}catch(S){if(j.signal.aborted||k!==u.current)return;o(null),h(S instanceof Error?S.message:t("hookDiagnosticsLoadFailed"))}finally{k===u.current&&(l(!1),f.current=null)}},[t]);m.useEffect(()=>{let v=!1;return _h().then(k=>{v||n(k.map(j=>({id:j.id,name:j.name})))}).catch(()=>{v||n([])}),()=>{v=!0}},[]),m.useEffect(()=>{p(r)},[p,r]),m.useEffect(()=>()=>{f.current?.abort()},[]);const g=s?.summary,b=g?.statusCounts??{},x=s?.entries??[],w=m.useMemo(()=>[{label:t("hookDiagnosticsEntries"),value:String(g?.total??0)},{label:t("hookDiagnosticsCrashes"),value:String(b.crash??0)},{label:t("hookDiagnosticsWarnings"),value:String(b.warn??0)},{label:t("hookDiagnosticsBlocks"),value:String(b.block??0)}],[g?.total,b.block,b.crash,b.warn,t]);return d.jsxs("section",{className:"dash-panel p-4 space-y-4",children:[d.jsxs("div",{className:"flex flex-col gap-3",children:[d.jsxs("div",{className:"space-y-1 min-w-0",children:[d.jsx("h3",{className:"text-sm font-semibold uppercase tracking-wide text-dash-text",children:t("hookDiagnosticsTitle")}),d.jsx("p",{className:"text-xs text-dash-text-secondary",children:t("hookDiagnosticsDesc")}),d.jsx("p",{className:"mono text-[11px] text-dash-text-muted break-all",children:s?.path??t("hookDiagnosticsPathPending")})]}),d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsxs("select",{value:r,onChange:v=>i(v.target.value),className:"rounded-lg border border-dash-border bg-dash-bg px-3 py-2 text-xs text-dash-text",children:[d.jsx("option",{value:"global",children:t("hookDiagnosticsScopeGlobal")}),e.map(v=>d.jsx("option",{value:v.id,children:v.name},v.id))]}),d.jsx("button",{type:"button",onClick:()=>void p(r),className:"rounded-lg border border-dash-border bg-dash-surface px-3 py-2 text-xs font-semibold text-dash-text-secondary hover:bg-dash-surface-hover",children:t("refresh")})]})]}),d.jsx("div",{className:"grid grid-cols-2 gap-3 xl:grid-cols-4",children:w.map(v=>d.jsxs("div",{className:"rounded-lg border border-dash-border bg-dash-bg/60 px-3 py-2",children:[d.jsx("p",{className:"text-[11px] uppercase tracking-wide text-dash-text-muted",children:v.label}),d.jsx("p",{className:"mono mt-1 text-lg font-semibold text-dash-text",children:v.value})]},v.label))}),g?.lastEventAt&&d.jsxs("p",{className:"text-xs text-dash-text-muted",children:[t("hookDiagnosticsLastEvent"),":"," ",Nm(g.lastEventAt,t("hookDiagnosticsUnknown"))]}),g&&(g.parseErrors>0||g.truncated)&&d.jsxs("div",{className:"rounded-lg border border-amber-300 dark:border-amber-500/30 bg-amber-100 dark:bg-amber-500/10 px-3 py-2 text-xs text-amber-700 dark:text-amber-200",children:[g.parseErrors>0&&d.jsx("p",{children:t("hookDiagnosticsParseErrorsNotice").replace("{count}",String(g.parseErrors))}),g.truncated&&d.jsx("p",{children:t("hookDiagnosticsTruncatedNotice")})]}),a&&d.jsx("p",{className:"text-sm text-dash-text-muted",children:t("hookDiagnosticsLoading")}),c&&d.jsx("p",{className:"text-sm text-red-400",children:c}),!a&&!c&&s&&!s.exists&&d.jsx("p",{className:"text-sm text-dash-text-muted",children:t("hookDiagnosticsMissing")}),!a&&!c&&s?.exists&&d.jsx("div",{className:"space-y-2",children:x.length===0?d.jsx("p",{className:"text-sm text-dash-text-muted",children:t("hookDiagnosticsEmpty")}):x.map((v,k)=>d.jsxs("div",{className:"rounded-lg border border-dash-border bg-dash-bg/70 px-3 py-3",children:[d.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[d.jsx("span",{className:"mono text-[11px] text-dash-text-muted",children:Nm(v.ts,t("hookDiagnosticsUnknown"))}),d.jsx("span",{className:`rounded-full border px-2 py-0.5 text-[10px] font-semibold uppercase ${hP[v.status]??"bg-dash-surface text-dash-text border-dash-border"}`,children:v.status}),d.jsx("span",{className:"text-sm font-medium text-dash-text",children:v.hook}),v.event&&d.jsx("span",{className:"text-xs text-dash-text-muted",children:v.event}),v.tool&&d.jsxs("span",{className:"text-xs text-dash-text-muted",children:[t("hookDiagnosticsToolLabel"),": ",v.tool]})]}),(v.note||v.target||v.error)&&d.jsxs("div",{className:"mt-2 space-y-1 text-xs text-dash-text-secondary",children:[v.note&&d.jsx("p",{children:v.note}),v.target&&d.jsxs("p",{className:"mono",children:[t("hookDiagnosticsTargetLabel"),": ",v.target]}),v.error&&d.jsx("p",{className:"text-red-400",children:v.error})]})]},`${v.ts}-${v.hook}-${k}`))})]})};function fP(t){let e=0,n=0,r=0;for(const i of t)i.ownership==="ck"?e++:i.ownership==="user"?n++:i.ownership==="ck-modified"&&r++;return{ck:e,user:n,modified:r}}function pP(t){const e={skills:0,commands:0,rules:0,hooks:0,settings:0,other:0};for(const n of t){const r=n.path;r.startsWith("skills/")?e.skills++:r.startsWith("commands/")?e.commands++:r.startsWith("rules/")?e.rules++:r.startsWith("hooks/")||r==="hooks.json"?e.hooks++:r.startsWith("settings/")||r==="settings.json"?e.settings++:e.other++}return e}const mP=({kitName:t,kit:e,channel:n="stable",externalStatus:r,externalLatestVersion:i,onStatusChange:s,disabled:o})=>{const{t:a}=he(),[l,c]=m.useState("idle"),[h,u]=m.useState(null),[f,p]=m.useState(!1),[g,b]=m.useState(null),x=r??l,w=i??h,v=e.files??[],k=fP(v),j=pP(v),S=async()=>{const y=A=>{s||c(A)},N=A=>{s||u(A)};y("checking"),s&&s("checking",null);try{const T=await(await fetch(`/api/system/check-updates?target=kit&kit=${t}&channel=${n}`)).json();T.updateAvailable?(y("update-available"),N(T.latest),s&&s("update-available",T.latest)):(y("up-to-date"),s&&s("up-to-date",null))}catch{y("idle"),s&&s("idle",null)}},C=async()=>{window.location.reload()};return d.jsxs(d.Fragment,{children:[d.jsxs("div",{className:"dash-panel p-5 space-y-4 transition-colors hover:border-dash-accent/30",children:[d.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4",children:[d.jsxs("div",{className:"space-y-3",children:[d.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[d.jsx(Ay,{status:x,ariaLabel:a(x==="up-to-date"?"upToDate":x==="update-available"?"updateAvailable":"checking")}),d.jsxs("h3",{className:"text-base font-semibold text-dash-text capitalize",children:[t," Kit"]}),n==="beta"&&d.jsx("span",{className:"px-2 py-0.5 text-[11px] font-semibold bg-amber-500/15 text-amber-500 rounded border border-amber-500/20",children:a("betaBadge")})]}),d.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-xs text-dash-text-secondary",children:[d.jsxs("span",{className:"px-2 py-1 rounded-md border border-dash-border bg-dash-bg/70 mono",children:[a("currentVersionLabel"),": v",(e.version??"?").replace(/^v/,"")]}),e.installedAt&&d.jsx("span",{className:"px-2 py-1 rounded-md border border-dash-border bg-dash-bg/70 text-dash-text-muted",children:new Date(e.installedAt).toLocaleDateString()}),d.jsxs("span",{className:"px-2 py-1 rounded-md border border-dash-border bg-dash-bg/70 mono",children:[a("components"),": ",v.length]})]}),x==="update-available"&&w&&d.jsxs("div",{className:"inline-flex items-center rounded-md border border-amber-500/25 bg-amber-500/10 px-2.5 py-1 text-xs text-amber-500 font-medium",children:["v",(e.version??"?").replace(/^v/,"")," ","->"," v",w.replace(/^v/,"")]})]}),d.jsx(gP,{status:x,currentVersion:e.version??"0.0.0",latestVersion:w,kitName:t,onCheck:S,onUpdate:()=>p(!0),onVersionSelect:b,disabled:o})]}),v.length>0&&d.jsx("div",{className:"grid grid-cols-1 gap-1.5 sm:grid-cols-2 xl:grid-cols-3",children:Object.entries(j).filter(([,y])=>y>0).map(([y,N])=>d.jsxs("div",{className:"flex items-center justify-between px-2.5 py-2 bg-dash-bg/70 border border-dash-border rounded-lg text-xs",children:[d.jsx("span",{className:"text-dash-text-secondary capitalize",children:y}),d.jsx("span",{className:"font-bold mono text-dash-text",children:N})]},y))}),v.length>0&&d.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-xs text-dash-text-muted",children:[d.jsxs("span",{className:"flex items-center gap-1.5 px-2.5 py-1 rounded-md border border-dash-border bg-dash-bg/70",children:[d.jsx("span",{className:"w-2 h-2 rounded-full bg-emerald-500 shrink-0"}),k.ck," ",a("ownershipCk")]}),k.user>0&&d.jsxs("span",{className:"flex items-center gap-1.5 px-2.5 py-1 rounded-md border border-dash-border bg-dash-bg/70",children:[d.jsx("span",{className:"w-2 h-2 rounded-full bg-blue-500 shrink-0"}),k.user," ",a("ownershipUser")]}),k.modified>0&&d.jsxs("span",{className:"flex items-center gap-1.5 px-2.5 py-1 rounded-md border border-dash-border bg-dash-bg/70",children:[d.jsx("span",{className:"w-2 h-2 rounded-full bg-amber-500 shrink-0"}),k.modified," ",a("ownershipModified")]})]}),v.length===0&&d.jsx("p",{className:"text-xs text-dash-text-muted",children:a("noTrackedFiles")})]}),d.jsx(Ou,{isOpen:f,onClose:()=>p(!1),target:"kit",kitName:t,targetVersion:g??w??void 0,onComplete:C})]})},gP=({status:t,currentVersion:e,latestVersion:n,kitName:r,onCheck:i,onUpdate:s,onVersionSelect:o,disabled:a})=>{const{t:l}=he();return t==="checking"?d.jsxs("span",{className:"text-xs text-dash-text-muted flex items-center gap-1.5 px-2 py-1 rounded-md border border-dash-border bg-dash-bg/70",children:[d.jsx("span",{className:"w-3 h-3 border-2 border-dash-text-muted border-t-transparent rounded-full animate-spin"}),l("checking")]}):t==="up-to-date"?d.jsx("span",{className:"px-2.5 py-1 text-xs rounded-md border border-emerald-500/30 bg-emerald-500/10 text-emerald-500 font-semibold",children:l("upToDate")}):t==="update-available"&&n?d.jsx("div",{className:"flex items-center gap-2",children:d.jsx(My,{target:"kit",kitName:r,currentVersion:e,latestVersion:n,onVersionSelect:c=>{o(c),s()}})}):d.jsx("button",{type:"button",onClick:i,disabled:a,className:"dash-focus-ring px-3 py-2 rounded-lg text-xs font-semibold border border-dash-border bg-dash-surface text-dash-accent hover:text-dash-accent-hover hover:bg-dash-surface-hover transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:l("checkForUpdates")})},Dm="claudekit-update-channel",Am="claudekit-system-filter",bP=t=>/-(alpha|beta|rc|dev|next)/.test(t),xP=t=>t==="all"||t==="updates"||t==="up-to-date"||t==="cli"||t==="kits"?t:"all",Mm=t=>t==="update-available"?0:t==="checking"?1:t==="idle"?2:3,yP=({metadata:t})=>{const{t:e}=he(),[n,r]=m.useState(null),[i,s]=m.useState([]),[o,a]=m.useState(!1),[l,c]=m.useState(!1),[h,u]=m.useState(!1),[f,p]=m.useState("stable"),[g,b]=m.useState(()=>xP(localStorage.getItem(Am))),x=m.useRef(!1),w=m.useRef(0),v=m.useMemo(()=>!t.kits||typeof t.kits!="object"?[]:Object.entries(t.kits),[t.kits]),k=v.length>0,j=t.name,S=t.version,C=t.installedAt,y=v.length>0||j;m.useEffect(()=>{if(!n)return;const U=[];if(U.push({id:"cli",type:"cli",status:"idle",currentVersion:n.cliVersion,latestVersion:null}),k&&v.length>0)for(const[ve,ee]of v){const Ae=ee;U.push({id:ve,type:"kit",status:"idle",currentVersion:Ae.version??"?",latestVersion:null})}else j&&U.push({id:j,type:"kit",status:"idle",currentVersion:S??"?",latestVersion:null});s(U)},[n,k,v,j,S]),m.useEffect(()=>{fetch("/api/system/info").then(U=>U.json()).then(r).catch(()=>r(null))},[]),m.useEffect(()=>{const U=localStorage.getItem(Dm);U==="stable"||U==="beta"?p(U):n?.cliVersion&&p(bP(n.cliVersion)?"beta":"stable")},[n?.cliVersion]);const N=U=>{p(U),localStorage.setItem(Dm,U)};m.useEffect(()=>{localStorage.setItem(Am,g)},[g]);const A=(U,ve,ee)=>{s(Ae=>Ae.map(pe=>pe.id===U?{...pe,status:ve,latestVersion:ee}:pe))},T=m.useCallback(async()=>{if(i.length===0)return;const U=w.current+1;w.current=U,a(!0),s(ve=>ve.map(ee=>ee.status==="checking"&&ee.latestVersion===null?ee:{...ee,status:"checking",latestVersion:null}));try{const ve=i.map(async Ae=>{try{const pe=Ae.type==="cli"?`target=cli&channel=${f}`:`target=kit&kit=${Ae.id}&channel=${f}`,$=await(await fetch(`/api/system/check-updates?${pe}`)).json();return{id:Ae.id,status:$.updateAvailable?"update-available":"up-to-date",latestVersion:$.latest}}catch{return{id:Ae.id,status:"idle",latestVersion:null}}}),ee=await Promise.all(ve);if(w.current!==U)return;s(Ae=>Ae.map(pe=>{const _e=ee.find($=>$.id===pe.id);return _e?{...pe,status:_e.status,latestVersion:_e.latestVersion}:pe}))}finally{w.current===U&&a(!1)}},[f,i]),P=U=>{b(U),(U==="updates"||U==="up-to-date")&&!o&&!l&&i.length>0&&i.every(ee=>ee.status==="idle")&&(x.current=!0,T())},R=()=>{u(!0)},z=()=>{window.location.reload()},I=i.filter(U=>U.status==="update-available").length,F=i.filter(U=>U.status==="up-to-date").length,G=i.filter(U=>U.status==="up-to-date"||U.status==="update-available").length,ae=i.some(U=>U.status==="checking"),X=k&&v.length>0?v.length:j?1:0,Q=i.find(U=>U.id==="cli")?.status??"idle",le=m.useMemo(()=>k&&v.length>0?v.map(([U,ve])=>({id:U,kitName:U,kit:ve})):j?[{id:j,kitName:j,kit:{version:S,installedAt:C}}]:[],[k,v,j,S,C]),fe=m.useMemo(()=>{const ve=[...le.map(ee=>({...ee,status:i.find(Ae=>Ae.id===ee.id)?.status??"idle"}))].sort((ee,Ae)=>{const pe=Mm(ee.status)-Mm(Ae.status);return pe!==0?pe:ee.kitName.localeCompare(Ae.kitName)});return g==="updates"?ve.filter(ee=>ee.status==="update-available"):g==="up-to-date"?ve.filter(ee=>ee.status==="up-to-date"):g==="cli"?[]:ve},[le,i,g]),W=g==="all"||g==="cli"||g==="updates"&&Q==="update-available"||g==="up-to-date"&&Q==="up-to-date",se=(W?1:0)+fe.length;m.useEffect(()=>{if(!(!(g==="updates"||g==="up-to-date")||x.current)&&!(o||l||i.length===0)){if(!i.every(ve=>ve.status==="idle")){x.current=!0;return}x.current=!0,T()}},[T,o,l,i,g]);const ue=m.useMemo(()=>se!==0?"":(g==="updates"||g==="up-to-date")&&ae?e("checkingAll"):(g==="updates"||g==="up-to-date")&&G===0?e("runCheckAllForFilter"):g==="updates"&&G>0&&I===0?e("noUpdatesFound"):g==="up-to-date"&&G>0&&F===0?e("noUpToDateYet"):e("noComponentsMatchFilter"),[se,g,ae,G,I,F,e]),xe=!y&&g!=="cli",Pe=e("componentFilterUpdatesCount").replace("{count}",I.toString()),Qe=e("componentFilterUpToDateCount").replace("{count}",F.toString());return d.jsxs("div",{className:"relative",children:[d.jsxs("div",{className:"pointer-events-none absolute inset-0 -z-10 overflow-hidden",children:[d.jsx("div",{className:"absolute -top-20 -right-8 h-56 w-56 rounded-full bg-dash-accent/10 blur-3xl"}),d.jsx("div",{className:"absolute -bottom-24 -left-10 h-64 w-64 rounded-full bg-dash-accent/5 blur-3xl"})]}),d.jsxs("div",{className:"space-y-4",children:[d.jsx("section",{className:"dash-panel dash-sticky-glass p-4 md:p-5 sticky top-0 z-10",children:d.jsxs("div",{className:"flex flex-col gap-4 lg:flex-row lg:items-center lg:justify-between",children:[d.jsxs("div",{className:"space-y-1",children:[d.jsx("p",{className:"mono text-[10px] uppercase tracking-[0.16em] text-dash-text-muted",children:e("systemControlTower")}),d.jsx("h2",{className:"text-xl md:text-2xl font-semibold text-dash-text",children:e("systemOverviewTitle")}),d.jsx("p",{className:"text-sm text-dash-text-secondary max-w-2xl",children:e("systemOverviewDesc")})]}),d.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[d.jsx(oP,{value:f,onChange:N,disabled:o||l}),i.length>0&&d.jsx(sP,{components:i,isChecking:o,isUpdating:l,onCheckAll:T,onUpdateAll:R})]})]})}),d.jsxs("section",{className:"grid grid-cols-2 gap-3 xl:grid-cols-5",children:[d.jsx(Xi,{label:e("components"),value:i.length.toString()}),d.jsx(Xi,{label:e("kitsLabel"),value:X.toString()}),d.jsx(Xi,{label:e("updateAvailable"),value:I.toString(),tone:"accent"}),d.jsx(Xi,{label:e("upToDate"),value:F.toString(),tone:"success"}),d.jsx(Xi,{label:e("checkedComponents"),value:G.toString()})]}),d.jsxs("section",{className:"grid gap-4 xl:grid-cols-[minmax(0,1fr)_320px]",children:[d.jsxs("div",{className:"space-y-3 min-w-0",children:[d.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3 px-1",children:[d.jsx("h3",{className:"text-sm font-semibold uppercase tracking-wide text-dash-text",children:e("installedComponentsHeading")}),d.jsxs("fieldset",{className:"flex items-center gap-2",children:[d.jsx("legend",{className:"sr-only",children:e("installedComponentsHeading")}),d.jsx(Zi,{label:e("componentFilterAll"),value:g,activeValue:"all",onClick:()=>P("all")}),d.jsx(Zi,{label:Pe,value:g,activeValue:"updates",onClick:()=>P("updates")}),d.jsx(Zi,{label:Qe,value:g,activeValue:"up-to-date",onClick:()=>P("up-to-date")}),d.jsx(Zi,{label:e("componentFilterCli"),value:g,activeValue:"cli",onClick:()=>P("cli")}),d.jsx(Zi,{label:e("componentFilterKits"),value:g,activeValue:"kits",onClick:()=>P("kits")})]})]}),W&&d.jsx(lP,{version:n?.cliVersion??"...",installedAt:void 0,externalStatus:i.find(U=>U.id==="cli")?.status,externalLatestVersion:i.find(U=>U.id==="cli")?.latestVersion??null,onStatusChange:(U,ve)=>A("cli",U,ve),disabled:o||l,channel:f}),fe.map(U=>{const ve=i.find(ee=>ee.id===U.id);return d.jsx(mP,{kitName:U.kitName,kit:U.kit,externalStatus:ve?.status,externalLatestVersion:ve?.latestVersion??null,onStatusChange:(ee,Ae)=>A(U.id,ee,Ae),disabled:o||l,channel:f},U.id)}),xe&&d.jsx("div",{className:"dash-panel-muted p-6 text-center opacity-80",children:d.jsx("p",{className:"text-sm text-dash-text-secondary",children:e("noKitInstalled")})}),!xe&&se===0&&d.jsx("div",{className:"dash-panel-muted p-6 text-center opacity-80",children:d.jsx("p",{className:"text-sm text-dash-text-secondary",children:ue})})]}),d.jsxs("aside",{className:"space-y-3 xl:sticky xl:top-20 self-start",children:[d.jsxs("div",{className:"dash-panel p-4 space-y-3",children:[d.jsx("h3",{className:"text-sm font-semibold uppercase tracking-wide text-dash-text",children:e("updateReadiness")}),d.jsxs("div",{className:"space-y-2",children:[d.jsx(Ra,{label:e("updateAvailable"),value:I.toString(),tone:I>0?"accent":"default"}),d.jsx(Ra,{label:e("upToDate"),value:F.toString(),tone:"success"}),d.jsx(Ra,{label:e("checkedComponents"),value:G.toString()}),d.jsx(Ra,{label:e("activeChannel"),value:e(f==="beta"?"channelBeta":"channelStable")})]})]}),n&&d.jsx(dP,{configPath:n.configPath,nodeVersion:n.nodeVersion,bunVersion:n.bunVersion,os:n.os}),d.jsx(uP,{})]})]})]}),d.jsx(Ou,{isOpen:h,onClose:()=>u(!1),target:"cli",mode:"batch",components:i.filter(U=>U.status==="update-available").map(U=>({id:U.id,name:U.id==="cli"?"CLI":`${U.id} Kit`})),onComplete:z})]})},Xi=({label:t,value:e,tone:n="default"})=>{const r=n==="accent"?"text-dash-accent":n==="success"?"text-emerald-500":"text-dash-text";return d.jsxs("div",{className:"dash-panel p-3",children:[d.jsx("p",{className:"text-[11px] uppercase tracking-wide text-dash-text-muted",children:t}),d.jsx("p",{className:`mt-1 mono text-xl font-semibold ${r}`,children:e})]})},Ra=({label:t,value:e,tone:n="default"})=>{const r=n==="accent"?"text-dash-accent":n==="success"?"text-emerald-500":"text-dash-text-secondary";return d.jsxs("div",{className:"flex items-center justify-between rounded-lg border border-dash-border bg-dash-bg/70 px-3 py-2",children:[d.jsx("span",{className:"text-xs text-dash-text-muted",children:t}),d.jsx("span",{className:`mono text-xs font-semibold ${r}`,children:e})]})},Zi=({label:t,value:e,activeValue:n,onClick:r})=>{const i=e===n;return d.jsx("button",{type:"button",onClick:r,"aria-pressed":i,className:`dash-focus-ring px-2.5 py-1.5 rounded-lg text-[11px] font-semibold border transition-colors ${i?"border-dash-accent/30 bg-dash-accent-subtle text-dash-accent":"border-dash-border bg-dash-surface text-dash-text-muted hover:text-dash-text hover:bg-dash-surface-hover"}`,children:t})},Xc="~/.claude/settings.json",La="{}",vP=()=>{const{t}=he(),[e,n]=m.useState(!0),[r,i]=m.useState(Xc),[s,o]=m.useState(La),[a,l]=m.useState(La),[c,h]=m.useState(0),[u,f]=m.useState(!1),[p,g]=m.useState(!1),[b,x]=m.useState("idle"),[w,v]=m.useState(null),[k,j]=m.useState(null);m.useEffect(()=>{let A=!1;return(async()=>{n(!0),g(!1);try{const P=await I2();if(A)return;const R=JSON.stringify(P.settings??{},null,2);i(P.path||Xc),f(!!P.exists),o(R),l(R),v(null)}catch{if(A)return;g(!0),f(!1),i(Xc),o(La),l(La)}finally{A||n(!1)}})(),()=>{A=!0}},[]);const S=A=>{l(A),j(null);try{JSON.parse(A),v(null)}catch(T){v(T instanceof Error?T.message:"Invalid JSON")}},C=()=>{l(s),v(null),j(null),x("idle")},y=async()=>{if(!(e||w)){x("saving"),j(null);try{const A=JSON.parse(a),T=JSON.stringify(A,null,2),P=await $2(A);o(T),l(T),f(!0),x("saved"),j(P.backupPath?`${t("settingsBackupSaved")}: ${P.backupPath}`:t("saved")),setTimeout(()=>x("idle"),2e3)}catch(A){x("error"),j(A instanceof Error?A.message:t("saveFailed")),setTimeout(()=>x("idle"),3e3)}}},N=a!==s;return d.jsxs("section",{className:"h-full min-h-0 flex flex-col rounded-xl border border-dash-border bg-dash-surface p-3 shadow-sm",children:[d.jsxs("div",{className:"mb-2 flex items-end justify-between gap-3 px-1",children:[d.jsxs("div",{className:"min-w-0",children:[d.jsx("h3",{className:"text-sm font-semibold uppercase tracking-wide text-dash-text",children:t("settingsJsonHeading")}),d.jsx("p",{className:"mono text-[11px] text-dash-text-muted truncate",children:r})]}),d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsx("button",{type:"button",onClick:C,disabled:e||!N||b==="saving",className:"px-3 py-1.5 rounded-lg bg-dash-surface text-xs font-bold text-dash-text-secondary hover:bg-dash-surface-hover transition-colors border border-dash-border disabled:opacity-50 disabled:cursor-not-allowed",children:t("discard")}),d.jsx("button",{type:"button",onClick:y,disabled:e||b==="saving"||!!w||!N,className:`px-3 py-1.5 rounded-lg text-xs font-bold transition-all tracking-widest uppercase disabled:opacity-50 disabled:cursor-not-allowed ${b==="saved"?"bg-green-500 text-white shadow-lg shadow-green-500/20":b==="error"?"bg-red-500 text-white":"bg-dash-accent text-dash-bg hover:bg-dash-accent-hover shadow-lg shadow-dash-accent/20"}`,children:t(b==="saving"?"saving":b==="saved"?"saved":b==="error"?"saveFailed":"saveChanges")})]})]}),d.jsx("div",{className:"flex-1 min-h-0",children:d.jsx(ju,{width:100,isLoading:e,jsonText:a,cursorLine:c,syntaxError:w,onChange:S,onCursorLineChange:h})}),k&&d.jsx("p",{className:`mt-2 px-1 text-xs ${b==="error"?"text-red-500":"text-dash-text-muted"}`,children:k}),!e&&!p&&!u&&d.jsx("p",{className:"mt-2 px-1 text-xs text-dash-text-muted",children:t("settingsJsonMissing")}),!e&&p&&d.jsx("p",{className:"mt-2 px-1 text-xs text-red-500",children:t("settingsJsonLoadFailed")})]})},wP=(t,e)=>{const[n,r]=m.useState(null);return m.useEffect(()=>{const i=t.split(`
|
|
248
248
|
`),s=[];let o=null;for(let a=0;a<=Math.min(e,i.length-1);a++){const l=i[a].trim(),c=l.match(/"([^"]+)"\s*:\s*{/);if(c){s.push(c[1]),a===e&&(o=s.join("."));continue}if(l==="}"||l==="},"){s.pop();continue}const h=l.match(/"([^"]+)"\s*:/);if(h){const u=h[1];if(a===e){o=s.length>0?`${s.join(".")}.${u}`:u;break}}}r(o)},[t,e]),n};function Ty(t){const{scope:e,fetchConfig:n,fetchSchema:r,saveConfig:i,onReset:s}=t,[o,a]=m.useState("{}"),[l,c]=m.useState(0),[h,u]=m.useState(null),[f,p]=m.useState(null),[g,b]=m.useState({}),[x,w]=m.useState({}),[v,k]=m.useState({}),[j,S]=m.useState(!0),[C,y]=m.useState("idle"),[N,A]=m.useState(!1),[T,P]=m.useState(null),[R,z]=m.useState(null),I=wP(o,l),F=eS(R,I),G=m.useMemo(()=>Z2(F,f),[F,f]);m.useEffect(()=>{(async()=>{try{const[se,ue]=await Promise.all([n(),r()]),xe=se.local??se.config;b(xe),w(se.global??{}),k(se.sources),p(ue),a(JSON.stringify(xe,null,2))}catch(se){console.error("Failed to load config data:",se)}finally{S(!1)}})()},[n,r]),m.useEffect(()=>{try{JSON.parse(o),u(null)}catch(W){u(W instanceof Error?W.message:"Invalid JSON")}},[o]),m.useEffect(()=>{if(T==="json")try{const W=JSON.parse(o);b(W)}catch{}},[o,T]);const ae=m.useCallback(W=>{z(null),P("json"),a(W)},[]),X=m.useCallback(()=>{z(null)},[]),Q=m.useCallback((W,se)=>{z(W),P("form"),b(ue=>{const xe=Q2(ue,W,se);return a(JSON.stringify(xe,null,2)),xe}),k(ue=>({...ue,[W]:e}))},[e]),le=m.useCallback(async()=>{if(!h){y("saving");try{const W=JSON.parse(o),ue=await i(W)??W;b(ue),a(JSON.stringify(ue,null,2)),y("saved"),setTimeout(()=>y("idle"),2e3)}catch{y("error"),setTimeout(()=>y("idle"),3e3)}}},[o,h,i]),fe=m.useCallback(async()=>{if(A(!1),s){S(!0);try{const W=await s(),se=W.local??W.config;b(se),k(W.sources),a(JSON.stringify(se,null,2))}catch(W){console.error("Failed to reset:",W)}finally{S(!1)}}else{const W={};b(W),a(JSON.stringify(W,null,2))}},[s]);return{jsonText:o,config:g,globalConfig:x,sources:v,schema:f,isLoading:j,saveStatus:C,syntaxError:h,cursorLine:l,showResetConfirm:N,activeFieldPath:F,fieldDoc:G,handleJsonChange:ae,handleJsonEditorFocus:X,handleFormChange:Q,handleSave:le,handleReset:fe,setCursorLine:c,setFocusedFieldPath:z,setShowResetConfirm:A}}function Oh({storageKey:t,defaultSizes:e,minSizes:n}){const[r,i]=m.useState(()=>{if(typeof window>"u")return e;const c=localStorage.getItem(t);if(c)try{const h=JSON.parse(c);if(Array.isArray(h)&&h.length===e.length){const u=h.reduce((f,p)=>f+p,0);if(Math.abs(u-100)<1)return h}}catch{}return e}),[s,o]=m.useState(!1);m.useEffect(()=>{localStorage.setItem(t,JSON.stringify(r))},[r,t]);const a=m.useCallback((c,h)=>{h.preventDefault(),o(!0);const u=h.target.parentElement;if(!u)return;const p=u.getBoundingClientRect().width,g=h.clientX,b=[...r],x=v=>{const j=(v.clientX-g)/p*100,S=[...b],C=c,y=c+1;let N=b[C]+j,A=b[y]-j;N<n[C]&&(N=n[C],A=b[C]+b[y]-N),A<n[y]&&(A=n[y],N=b[C]+b[y]-A),S[C]=N,S[y]=A,i(S)},w=()=>{o(!1),document.removeEventListener("mousemove",x),document.removeEventListener("mouseup",w),document.body.style.cursor="",document.body.style.userSelect=""};document.addEventListener("mousemove",x),document.addEventListener("mouseup",w),document.body.style.cursor="col-resize",document.body.style.userSelect="none"},[r,n]),l=m.useCallback(()=>{i(e)},[e]);return{sizes:r,isDragging:s,startDrag:a,reset:l}}const zo="/api";async function Tm(t){const e=`${zo}/ck-config`,n=await fetch(e);if(!n.ok)throw new Error(`Failed to fetch ck-config: ${n.status}`);return n.json()}async function Em(t,e){const n=new URLSearchParams({scope:t});e&&n.set("projectId",e);const r=await fetch(`${zo}/ck-config?${n}`);if(!r.ok)throw new Error(`Failed to fetch ck-config: ${r.status}`);return r.json()}async function Ey(t){const e=await fetch(`${zo}/ck-config`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!e.ok){const n=await e.json().catch(()=>({error:"Unknown error"}));throw new Error(n.error||`Failed to save ck-config: ${e.status}`)}return e.json()}async function Ry(){const t=await fetch(`${zo}/ck-config/schema`);if(!t.ok)throw new Error(`Failed to fetch schema: ${t.status}`);return t.json()}async function SP(t,e,n,r){const i=await fetch(`${zo}/ck-config/field`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({scope:n,projectId:r,fieldPath:t,value:e})});if(!i.ok){const s=await i.json().catch(()=>({error:"Unknown error"}));throw new Error(s.error||`Failed to update field: ${i.status}`)}}const kP=.58,es=280,Ph=240,CP=80;function jP(t,e,n){return Math.min(Math.max(t,e),n)}function OP(t,e){if(typeof window>"u")return e;const n=localStorage.getItem(t);if(!n)return e;const r=Number.parseFloat(n);if(Number.isNaN(r))return e;if(r>0&&r<1)return r;if(r>=1){const i=Math.max(window.innerHeight-220,r+Ph);return Math.min(.75,Math.max(.35,r/i))}return e}function PP(t,e,n,r){const[i,s]=m.useState(()=>typeof window>"u"?e:OP(t,e)),[o,a]=m.useState(!1),l=m.useCallback(c=>{c.preventDefault(),a(!0);const h=c.target.closest("[data-vresize-container]");if(!h)return;const u=p=>{const g=h.getBoundingClientRect(),b=g.height||1,x=(p.clientY-g.top)/b,w=n/b,v=Math.max(w,1-r/b);s(Math.max(w,Math.min(v,x)))},f=()=>{a(!1),document.removeEventListener("mousemove",u),document.removeEventListener("mouseup",f),document.body.style.cursor="",document.body.style.userSelect=""};document.addEventListener("mousemove",u),document.addEventListener("mouseup",f),document.body.style.cursor="row-resize",document.body.style.userSelect="none"},[r,n]);return m.useEffect(()=>{localStorage.setItem(t,String(i))},[t,i]),{topRatio:i,isDragging:o,startDrag:l}}function NP(){const[t,e]=m.useState(null),[n,r]=m.useState(0),i=m.useCallback(s=>{e(s)},[]);return m.useEffect(()=>{if(!t)return;const s=()=>{r(t.getBoundingClientRect().height)};if(s(),typeof ResizeObserver>"u")return;const o=new ResizeObserver(()=>{s()});return o.observe(t),()=>o.disconnect()},[t]),{ref:i,height:n}}const DP=()=>{const{t}=he(),e=Tn(),[n,r]=m.useState("config"),[i,s]=m.useState({}),[o,a]=m.useState(es),[l,c]=m.useState(!1),{sizes:h,isDragging:u,startDrag:f}=Oh({storageKey:"claudekit-global-config-panels",defaultSizes:[35,40,25],minSizes:[20,25,15]}),{sizes:p,isDragging:g,startDrag:b}=Oh({storageKey:"claudekit-global-system-panels",defaultSizes:[70,30],minSizes:[45,20]}),x=PP("claudekit-form-taxonomy-px",kP,es,Ph),{ref:w,height:v}=NP(),k=m.useCallback(async()=>{const[I,F]=await Promise.all([Tm(),V2()]);return s(F),I},[]),j=m.useCallback(async I=>(await Ey({scope:"global",config:I})).config,[]),S=m.useCallback(async()=>await Tm(),[]),C=Ty({scope:"global",fetchConfig:k,fetchSchema:Ry,saveConfig:j,onReset:S}),y=m.useMemo(()=>[{id:"general",title:t("sectionGeneral"),fields:[{path:"codingLevel",label:t("fieldCodingLevel"),description:t("fieldCodingLevelDesc")},{path:"statusline",label:t("fieldStatusline"),description:t("fieldStatuslineDesc")},{path:"statuslineColors",label:t("fieldStatuslineColors"),description:t("fieldStatuslineColorsDesc")},{path:"statuslineQuota",label:t("fieldStatuslineQuota"),description:t("fieldStatuslineQuotaDesc")},{path:"locale.thinkingLanguage",label:t("fieldThinkingLanguage"),description:t("fieldThinkingLanguageDesc")},{path:"locale.responseLanguage",label:t("fieldResponseLanguage"),description:t("fieldResponseLanguageDesc")}]},{id:"paths",title:t("sectionPaths"),fields:[{path:"paths.docs",label:t("fieldDocsPath"),description:t("fieldDocsPathDesc")},{path:"paths.plans",label:t("fieldPlansPath"),description:t("fieldPlansPathDesc")}]},{id:"privacy",title:t("sectionPrivacy"),defaultCollapsed:!0,fields:[{path:"privacyBlock",label:t("fieldPrivacyBlock"),description:t("fieldPrivacyBlockDesc")},{path:"trust.enabled",label:t("fieldTrustEnabled"),description:t("fieldTrustEnabledDesc")},{path:"trust.passphrase",label:t("fieldTrustPassphrase"),description:t("fieldTrustPassphraseDesc")}]},{id:"project",title:t("sectionProject"),defaultCollapsed:!0,fields:[{path:"project.type",label:t("fieldProjectType"),description:t("fieldProjectTypeDesc")},{path:"project.packageManager",label:t("fieldPackageManager"),description:t("fieldPackageManagerDesc")},{path:"project.framework",label:t("fieldFramework"),description:t("fieldFrameworkDesc")}]},{id:"integrations",title:t("sectionIntegrations"),defaultCollapsed:!0,fields:[{path:"gemini.model",label:t("fieldGeminiModel"),description:t("fieldGeminiModelDesc"),editable:!0,enumLabels:{"gemini-2.5-flash":t("geminiModel25Flash"),"gemini-2.5-pro":t("geminiModel25Pro"),"gemini-3-flash-preview":t("geminiModel3FlashPreview"),"gemini-3-pro-preview":t("geminiModel3ProPreview")}},{path:"skills.research.useGemini",label:t("fieldResearchUseGemini"),description:t("fieldResearchUseGeminiDesc")}]},{id:"hooks",title:t("sectionHooks"),defaultCollapsed:!0,fields:[{path:"hooks.session-init",label:t("fieldHookSessionInit"),description:t("fieldHookSessionInitDesc")},{path:"hooks.subagent-init",label:t("fieldHookSubagentInit"),description:t("fieldHookSubagentInitDesc")},{path:"hooks.descriptive-name",label:t("fieldHookDescriptiveName"),description:t("fieldHookDescriptiveNameDesc")},{path:"hooks.dev-rules-reminder",label:t("fieldHookDevRulesReminder"),description:t("fieldHookDevRulesReminderDesc")},{path:"hooks.usage-context-awareness",label:t("fieldHookUsageContextAwareness"),description:t("fieldHookUsageContextAwarenessDesc")},{path:"hooks.context-tracking",label:t("fieldHookContextTracking"),description:t("fieldHookContextTrackingDesc")},{path:"hooks.scout-block",label:t("fieldHookScoutBlock"),description:t("fieldHookScoutBlockDesc")},{path:"hooks.privacy-block",label:t("fieldHookPrivacyBlock"),description:t("fieldHookPrivacyBlockDesc")},{path:"hooks.post-edit-simplify-reminder",label:t("fieldHookPostEditSimplify"),description:t("fieldHookPostEditSimplifyDesc")}]},{id:"updatePipeline",title:t("sectionUpdatePipeline"),defaultCollapsed:!0,fields:[{path:"updatePipeline.autoInitAfterUpdate",label:t("fieldAutoInitAfterUpdate"),description:t("fieldAutoInitAfterUpdateDesc")},{path:"updatePipeline.autoMigrateAfterUpdate",label:t("fieldAutoMigrateAfterUpdate"),description:t("fieldAutoMigrateAfterUpdateDesc")},{path:"updatePipeline.migrateProviders",label:t("fieldMigrateProviders"),description:t("fieldMigrateProvidersDesc")}]},{id:"advanced",title:t("sectionAdvanced"),defaultCollapsed:!0,fields:[{path:"docs.maxLoc",label:t("fieldDocsMaxLoc"),description:t("fieldDocsMaxLocDesc")},{path:"plan.namingFormat",label:t("fieldPlanNamingFormat"),description:t("fieldPlanNamingFormatDesc")},{path:"plan.dateFormat",label:t("fieldPlanDateFormat"),description:t("fieldPlanDateFormatDesc")},{path:"plan.validation.mode",label:t("fieldPlanValidationMode"),description:t("fieldPlanValidationModeDesc")},{path:"plan.validation.minQuestions",label:t("fieldPlanMinQuestions"),description:t("fieldPlanMinQuestionsDesc")},{path:"plan.validation.maxQuestions",label:t("fieldPlanMaxQuestions"),description:t("fieldPlanMaxQuestionsDesc")},{path:"assertions",label:t("fieldAssertions"),description:t("fieldAssertionsDesc")}]}],[t]),N=m.useMemo(()=>{if(v<=0)return null;const I=Math.max(es,v-Ph);return jP(x.topRatio*v,es,I)},[x.topRatio,v]),A=m.useMemo(()=>l||N===null?null:Math.min(N,o),[o,l,N]),T=m.useMemo(()=>{if(!l||v<=0)return null;const I=Math.max(es,v-CP);return Math.min(o,I)},[o,l,v]),P=l?T:A,R=!C.isLoading&&!l&&A!==null,z=C.showResetConfirm?d.jsxs("div",{className:"flex items-center gap-2 bg-red-500/10 border border-red-500/30 rounded-lg px-2 py-1 animate-in fade-in duration-200",children:[d.jsx("span",{className:"text-xs text-red-500 font-medium",children:t("confirmReset")}),d.jsx("button",{type:"button",onClick:C.handleReset,className:"px-2 py-0.5 rounded bg-red-500 text-white text-xs font-bold hover:bg-red-600 transition-colors",children:t("confirm")}),d.jsx("button",{type:"button",onClick:()=>C.setShowResetConfirm(!1),className:"px-2 py-0.5 rounded bg-dash-surface text-dash-text-secondary text-xs font-bold hover:bg-dash-surface-hover transition-colors border border-dash-border",children:t("cancel")})]}):d.jsxs(d.Fragment,{children:[d.jsx("button",{type:"button",onClick:()=>C.setShowResetConfirm(!0),className:"px-3 py-1.5 rounded-lg bg-dash-surface text-xs font-bold text-dash-text-secondary hover:bg-dash-surface-hover transition-colors border border-dash-border",children:t("resetToDefault")}),d.jsx("button",{type:"button",onClick:C.handleSave,disabled:!!C.syntaxError||C.saveStatus==="saving",className:`px-3 py-1.5 rounded-lg text-xs font-bold transition-all tracking-widest uppercase ${C.syntaxError?"bg-dash-surface text-dash-text-muted cursor-not-allowed border border-dash-border":C.saveStatus==="saved"?"bg-green-500 text-white shadow-lg shadow-green-500/20":C.saveStatus==="error"?"bg-red-500 text-white":"bg-dash-accent text-dash-bg hover:bg-dash-accent-hover shadow-lg shadow-dash-accent/20"}`,children:C.saveStatus==="saving"?t("saving"):C.saveStatus==="saved"?t("saved"):C.saveStatus==="error"?t("saveFailed"):t("saveChanges")})]});return d.jsxs("div",{className:"animate-in fade-in duration-300 w-full h-full flex flex-col transition-colors",children:[d.jsx(A0,{title:t("globalConfig"),filePath:"~/.claude/.ck.json",onBack:()=>e(-1),onSave:C.handleSave,onReset:C.handleReset,saveStatus:C.saveStatus,syntaxError:C.syntaxError,showResetConfirm:C.showResetConfirm,setShowResetConfirm:C.setShowResetConfirm,showActions:!1,showFilePath:!1}),d.jsxs("div",{className:"mb-3 shrink-0 flex items-center justify-between gap-3",children:[d.jsxs("div",{role:"tablist","aria-label":t("globalConfig"),className:"inline-flex items-center rounded-xl border border-dash-border bg-dash-surface p-1 shadow-sm",children:[d.jsx("button",{role:"tab","aria-selected":n==="config",onClick:()=>r("config"),className:`dash-focus-ring px-4 py-2 rounded-lg text-sm font-semibold transition-colors ${n==="config"?"bg-dash-accent-subtle text-dash-accent":"text-dash-text-muted hover:text-dash-text hover:bg-dash-surface-hover"}`,children:t("configTab")}),d.jsx("button",{role:"tab","aria-selected":n==="metadata",onClick:()=>r("metadata"),className:`dash-focus-ring px-4 py-2 rounded-lg text-sm font-semibold transition-colors ${n==="metadata"?"bg-dash-accent-subtle text-dash-accent":"text-dash-text-muted hover:text-dash-text hover:bg-dash-surface-hover"}`,children:t("systemTab")})]}),d.jsx("p",{className:"hidden lg:block text-xs text-dash-text-muted",children:t("configWorkspaceHint")})]}),d.jsxs("div",{className:"flex-1 flex min-h-0",children:[n==="config"&&d.jsxs(d.Fragment,{children:[d.jsxs("div",{ref:w,"data-vresize-container":!0,style:{width:`${h[0]}%`},className:"flex flex-col min-w-0 min-h-0 h-full",children:[d.jsx("div",{style:P!==null?{height:`${P}px`}:void 0,className:`min-h-0 ${P!==null?"shrink-0":"flex-1"}`,children:d.jsx(R0,{width:100,isLoading:C.isLoading,schema:C.schema,config:C.config,sources:C.sources,sections:y,onChange:C.handleFormChange,onFieldFocus:C.setFocusedFieldPath,onNaturalHeightChange:a})}),!C.isLoading&&d.jsxs(d.Fragment,{children:[l&&P!==null&&d.jsx("div",{className:"flex-1"}),R&&d.jsx(rr,{direction:"vertical",isDragging:x.isDragging,onMouseDown:x.startDrag}),d.jsx("div",{className:l?"shrink-0":"flex-1 min-h-0 overflow-hidden",children:d.jsx(iP,{config:C.config,onChange:C.handleFormChange,isCollapsed:l,onCollapsedChange:c})})]})]}),d.jsx(rr,{direction:"horizontal",isDragging:u,onMouseDown:I=>f(0,I)}),d.jsx(ju,{width:h[1],isLoading:C.isLoading,jsonText:C.jsonText,cursorLine:C.cursorLine,syntaxError:C.syntaxError,onChange:C.handleJsonChange,onEditorFocus:C.handleJsonEditorFocus,onCursorLineChange:C.setCursorLine,headerPath:"~/.claude/.ck.json",headerActions:z}),d.jsx(rr,{direction:"horizontal",isDragging:u,onMouseDown:I=>f(1,I)}),d.jsx(Dy,{width:h[2],fieldDoc:C.fieldDoc,activeFieldPath:C.activeFieldPath})]}),n==="metadata"&&d.jsxs("div",{className:"flex-1 min-h-0 flex",children:[d.jsx("div",{style:{width:`${p[0]}%`},className:"min-w-0 h-full overflow-auto pr-1",children:C.isLoading?d.jsx("div",{className:"dash-panel h-full flex items-center justify-center",children:d.jsx("div",{className:"animate-pulse text-dash-text-muted text-sm",children:t("loading")})}):d.jsx(yP,{metadata:i})}),d.jsx(rr,{direction:"horizontal",isDragging:g,onMouseDown:I=>b(0,I)}),d.jsx("div",{style:{width:`${p[1]}%`},className:"min-w-0 h-full overflow-hidden",children:d.jsx(vP,{})})]})]})]})};function AP({phase:t}){const e=t.status==="completed"?"border-green-500":t.status==="in-progress"?"border-blue-500":"border-amber-400";return d.jsx("div",{className:`rounded border-l-4 ${e} bg-white dark:bg-gray-800 p-3 shadow-sm`,children:d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsx("span",{className:"text-xs font-mono text-gray-400 dark:text-gray-500",children:t.phaseId}),d.jsx("span",{className:"text-sm font-medium text-gray-800 dark:text-gray-100",children:t.name})]})})}function Zc({title:t,phases:e,borderColor:n}){return d.jsxs("div",{className:"flex flex-1 flex-col gap-3 min-w-0","aria-label":`${t} phases`,children:[d.jsxs("div",{className:`rounded-t border-t-2 ${n} bg-gray-50 dark:bg-gray-900 px-3 py-2`,children:[d.jsx("span",{className:"text-sm font-semibold text-gray-700 dark:text-gray-200",children:t}),d.jsx("span",{className:"ml-2 text-xs text-gray-400",children:e.length})]}),d.jsx("div",{className:"flex flex-col gap-2 px-1",children:e.map((r,i)=>d.jsx(AP,{phase:r},`${r.phaseId}-${i}`))})]})}function MP({completed:t,total:e}){const{t:n}=he(),r=e===0?0:Math.round(t/e*100);return d.jsxs("div",{className:"flex flex-col gap-1",children:[d.jsxs("div",{className:"flex justify-between text-xs text-gray-500 dark:text-gray-400",children:[d.jsx("span",{children:n("kanbanProgress")}),d.jsxs("span",{children:[t,"/",e," ",n("kanbanPhases")," — ",r,"% ",n("kanbanComplete")]})]}),d.jsx("div",{className:"h-2 w-full rounded bg-gray-200 dark:bg-gray-700",children:d.jsx("div",{className:"h-2 rounded bg-green-500 transition-all",style:{width:`${r}%`}})})]})}function TP(){const{t}=he(),[e]=x2(),n=e.get("file")??"",[r,i]=m.useState([]),[s,o]=m.useState(!1),[a,l]=m.useState(null);if(m.useEffect(()=>{n&&(o(!0),l(null),i([]),fetch(`/api/plan/parse?file=${encodeURIComponent(n)}`).then(p=>{if(!p.ok){const g={400:"kanbanError400",403:"kanbanError403",404:"kanbanError404"};throw new Error(g[p.status]??`error:HTTP:${p.status}`)}return p.json()}).then(p=>i(p.phases)).catch(p=>l(p instanceof Error?p.message:String(p))).finally(()=>o(!1)))},[n]),!n)return d.jsx("div",{className:"flex h-full items-center justify-center text-gray-400 dark:text-gray-500",children:t("kanbanNoFile")});let c=[],h=[],u=[],f=null;try{c=r.filter(p=>p.status==="pending"),h=r.filter(p=>p.status==="in-progress"),u=r.filter(p=>p.status==="completed")}catch(p){f=p instanceof Error?p.message:String(p)}return f?d.jsx("div",{className:"flex h-full items-center justify-center text-red-500 dark:text-red-400",children:t("kanbanLoadError")}):d.jsxs("div",{className:"flex h-full flex-col gap-4 p-6",children:[d.jsxs("div",{className:"flex items-center justify-between",children:[d.jsx("h1",{className:"text-xl font-bold text-gray-900 dark:text-white",children:t("kanbanTitle")}),d.jsx("span",{className:"text-xs text-gray-400 dark:text-gray-500 truncate max-w-xs",title:n,children:n.replaceAll("\\","/")})]}),r.length>0&&d.jsx(MP,{completed:u.length,total:r.length}),s&&d.jsx("div",{className:"flex flex-1 items-center justify-center text-gray-400",children:t("loading")}),a&&d.jsxs("div",{className:"rounded border border-red-300 bg-red-50 dark:bg-red-900/20 p-4 text-red-600 dark:text-red-400",children:[t("error"),":"," ",a in{kanbanError400:"",kanbanError403:"",kanbanError404:""}?t(a):a]}),!s&&!a&&r.length===0&&d.jsx("div",{className:"flex flex-1 items-center justify-center text-gray-400 dark:text-gray-500",children:t("kanbanNoPhases")}),!s&&!a&&r.length>0&&d.jsxs("section",{"aria-label":t("kanbanTitle"),className:"flex flex-1 flex-col gap-4 overflow-auto md:flex-row",children:[d.jsx(Zc,{title:t("kanbanStatus_pending"),phases:c,borderColor:"border-amber-400"}),d.jsx(Zc,{title:t("kanbanStatus_in-progress"),phases:h,borderColor:"border-blue-500"}),d.jsx(Zc,{title:t("kanbanStatus_completed"),phases:u,borderColor:"border-green-500"})]})]})}const Rm=[{key:"agent",labelKey:"migrateTypeAgents",badgeClass:"border-dash-accent/30 text-dash-accent"},{key:"command",labelKey:"migrateTypeCommands",badgeClass:"border-yellow-500/30 text-yellow-400"},{key:"skill",labelKey:"migrateTypeSkills",badgeClass:"border-purple-500/30 text-purple-400"},{key:"config",labelKey:"migrateTypeConfig",badgeClass:"border-teal-500/30 text-teal-400"},{key:"rules",labelKey:"migrateTypeRules",badgeClass:"border-rose-500/30 text-rose-400"},{key:"hooks",labelKey:"migrateTypeHooks",badgeClass:"border-cyan-500/30 text-cyan-400"}],EP=new Set([8203,8204,8205,8288,65279,8232,8233,8234,8235,8236,8237,8238,8294,8295,8296,8297]);function RP(t){return t===9||t===10||t===13?!0:t>=0&&t<=8||t>=11&&t<=31||t>=127&&t<=159||EP.has(t)}function Pr(t){let e="";for(const n of t){const r=n.codePointAt(0);r!==void 0&&(RP(r)||(e+=n))}return e}function Lm(t){if(!t)return"-";const e=t.replace(/\\/g,"/"),n=e.match(/.*\/(\.[^/]+\/)/);if(n?.[1]){const i=(n.index??0)+n[0].length-n[1].length;return e.slice(i)}const r=e.split("/");return r.length>3?`.../${r.slice(-3).join("/")}`:e}function oi(t){return t.success?t.skipped?"skipped":"installed":"failed"}function LP(t){const e={installed:0,skipped:0,failed:0};for(const n of t){const r=oi(n);r==="installed"?e.installed+=1:r==="skipped"?e.skipped+=1:e.failed+=1}return e}function Ly(t){switch(t){case"agent":case"command":case"skill":case"config":case"rules":case"hooks":case"unknown":return t;default:return"unknown"}}function IP(t,e){switch(t){case"failed":return{label:e("migrateStatusFailed"),className:"border-red-500/30 bg-red-500/10 text-red-400"};case"skipped":return{label:e("migrateStatusSkipped"),className:"border-yellow-500/30 bg-yellow-500/10 text-yellow-400"};default:return{label:e("migrateStatusInstalled"),className:"border-green-500/30 bg-green-500/10 text-green-400"}}}function $P(t){const e=new Map;for(const n of t){const r=Ly(n.portableType),i=e.get(r)||[];i.push(n),e.set(r,i)}return e}function BP(t){return[Ly(t.portableType),t.provider,t.providerDisplayName,t.itemName,t.path,t.success,t.skipped,t.overwritten,t.error,t.skipReason].map(n=>n===void 0?"":String(n)).join("|")}function FP(t){if(t.length===0)return!0;const e=t[0].provider;return t.every(n=>n.provider===e)}const mi=({label:t,count:e,className:n})=>e<=0?null:d.jsxs("span",{className:`inline-flex items-center gap-1 rounded-md border px-2.5 py-1 text-xs ${n}`,children:[d.jsx("span",{className:"font-semibold",children:e}),d.jsx("span",{children:t})]}),Im=({labelKey:t,badgeClass:e,items:n,isExpanded:r,onToggle:i,singleProvider:s})=>{const{t:o}=he(),a=n.filter(f=>oi(f)==="installed").length,l=n.filter(f=>oi(f)==="skipped").length,c=n.filter(f=>oi(f)==="failed").length,h=s?"md:grid-cols-[minmax(0,1.5fr)_minmax(0,1.35fr)_auto_minmax(0,1fr)]":"md:grid-cols-[minmax(0,1.2fr)_minmax(0,0.8fr)_minmax(0,1.2fr)_auto_minmax(0,1fr)]",u=new Map;return d.jsxs("div",{className:"rounded-xl border border-dash-border bg-dash-surface overflow-hidden",children:[d.jsxs("button",{type:"button",onClick:i,className:"w-full flex flex-wrap items-center gap-2 px-4 py-3 text-left hover:bg-dash-surface-hover transition-colors",children:[d.jsx("svg",{className:`w-3.5 h-3.5 text-dash-text-muted transition-transform ${r?"rotate-90":""}`,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:d.jsx("path",{d:"M9 5l7 7-7 7"})}),d.jsx("p",{className:"text-sm font-semibold text-dash-text",children:o(t)}),d.jsx("span",{className:`inline-flex items-center rounded-full border px-2 py-0.5 text-[11px] font-semibold ${e}`,children:n.length}),d.jsx("span",{className:"hidden sm:block flex-1"}),d.jsxs("div",{className:"flex flex-wrap items-center gap-1.5 text-[11px]",children:[d.jsx(mi,{label:o("migrateStatusInstalled"),count:a,className:"border-green-500/30 bg-green-500/10 text-green-400"}),d.jsx(mi,{label:o("migrateStatusSkipped"),count:l,className:"border-yellow-500/30 bg-yellow-500/10 text-yellow-400"}),d.jsx(mi,{label:o("migrateStatusFailed"),count:c,className:"border-red-500/30 bg-red-500/10 text-red-400"})]})]}),r&&d.jsxs("div",{className:"border-t border-dash-border/80",children:[d.jsxs("div",{className:`hidden md:grid ${h} items-center gap-3 px-4 py-2 border-b border-dash-border/70 text-[10px] font-semibold uppercase tracking-wide text-dash-text-muted`,children:[d.jsx("p",{children:o("migrateItem")}),!s&&d.jsx("p",{children:o("migrateProvider")}),d.jsx("p",{children:o("migratePath")}),d.jsx("p",{children:o("migrateStatus")}),d.jsx("p",{children:o("migrateError")})]}),d.jsx("div",{className:"divide-y divide-dash-border/70",children:n.map(f=>{const p=BP(f),g=u.get(p)??0;u.set(p,g+1);const b=g===0?p:`${p}#${g}`,x=oi(f),w=IP(x,o),v=Pr(f.itemName||Lm(f.path)),k=Pr(f.providerDisplayName||f.provider||""),j=Pr(f.path||""),S=Pr(Lm(f.path)),C=Pr(f.error||f.skipReason||"");return d.jsxs("div",{className:`grid gap-1.5 ${h} items-start px-4 py-2.5 hover:bg-dash-bg/60 transition-colors`,children:[d.jsxs("div",{className:"min-w-0",children:[d.jsx("p",{className:"text-xs font-semibold text-dash-text truncate",title:v,children:v}),d.jsxs("div",{className:"mt-0.5 space-y-0.5 md:hidden",children:[!s&&d.jsx("p",{className:"text-[11px] text-dash-text-secondary truncate",children:k}),d.jsx("p",{className:"font-mono text-[11px] text-dash-text-muted truncate",title:j,children:S}),C&&d.jsx("p",{className:"text-[11px] text-red-400/80 line-clamp-2",title:C,children:C})]})]}),!s&&d.jsx("p",{className:"hidden md:block text-[11px] text-dash-text-secondary truncate",children:k}),d.jsx("p",{className:"hidden md:block font-mono text-[11px] text-dash-text-muted truncate",title:j,children:S}),d.jsx("span",{className:`inline-flex w-fit items-center rounded-full border px-2 py-0.5 text-[11px] font-medium ${w.className}`,children:w.label}),d.jsx("p",{className:`hidden md:block text-[11px] truncate ${C?"text-red-400/80":"text-dash-text-muted"}`,title:C,children:C||"-"})]},b)})})]})]})},zP=({results:t,onReset:e})=>{const{t:n}=he(),[r,i]=m.useState(""),s=m.useDeferredValue(r),[o,a]=m.useState("all"),[l,c]=m.useState(()=>new Set(Rm.map(j=>j.key))),h=m.useMemo(()=>{const j=s.trim().toLowerCase();return t.results.filter(S=>{if(o!=="all"&&oi(S)!==o)return!1;if(!j)return!0;const C=(S.itemName||"").toLowerCase(),y=(S.path||"").toLowerCase(),N=(S.providerDisplayName||S.provider||"").toLowerCase();return C.includes(j)||y.includes(j)||N.includes(j)})},[t.results,s,o]),u=m.useMemo(()=>FP(h),[h]),f=m.useMemo(()=>{if(!u||h.length===0)return"";const j=Array.from(new Set(h.map(S=>S.providerDisplayName?.trim()||"").filter(S=>S.length>0)));return j.length===1?j[0]:h[0]?.provider||""},[h,u]),p=m.useMemo(()=>$P(h),[h]),g=m.useMemo(()=>LP(t.results),[t.results]),b=m.useMemo(()=>[...p.keys()],[p]),x=g.installed+g.skipped+g.failed,w=b.length>0&&b.every(j=>l.has(j)),v=j=>{c(S=>{const C=new Set(S);return C.has(j)?C.delete(j):C.add(j),C})},k=()=>{if(w){c(new Set);return}c(new Set(b))};return d.jsxs("div",{className:"dash-panel p-4 md:p-5 space-y-4",children:[d.jsxs("div",{className:"flex flex-col gap-3 md:flex-row md:items-start md:justify-between",children:[d.jsxs("div",{children:[d.jsxs("h2",{className:"text-base font-semibold text-dash-text",children:[n("migrateSummaryTitle"),u&&f&&d.jsxs("span",{className:"text-dash-text-muted font-normal",children:[" ","· ",Pr(f)]})]}),d.jsxs("p",{className:"text-xs text-dash-text-muted mt-1",children:[x," ",n("migrateSummarySubtitle")]})]}),d.jsx("button",{type:"button",onClick:e,className:"dash-focus-ring px-4 py-2 text-sm font-semibold rounded-md bg-dash-bg border border-dash-border text-dash-text-secondary hover:bg-dash-surface-hover",children:n("migrateSummaryNewMigration")})]}),d.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-xs",children:[d.jsx(mi,{label:n("migrateStatusInstalled"),count:g.installed,className:"border-green-500/30 bg-green-500/10 text-green-400"}),d.jsx(mi,{label:n("migrateStatusSkipped"),count:g.skipped,className:"border-yellow-500/30 bg-yellow-500/10 text-yellow-400"}),d.jsx(mi,{label:n("migrateStatusFailed"),count:g.failed,className:"border-red-500/30 bg-red-500/10 text-red-400"})]}),t.warnings.length>0&&d.jsx("div",{className:"space-y-2",children:t.warnings.map((j,S)=>d.jsx("div",{className:"px-3 py-2 border border-yellow-500/30 bg-yellow-500/10 rounded-md text-xs text-yellow-400",children:Pr(j)},S))}),d.jsxs("div",{className:"flex flex-col gap-2",children:[d.jsxs("div",{className:"relative",children:[d.jsxs("svg",{className:"absolute left-2.5 top-1/2 -translate-y-1/2 w-4 h-4 stroke-dash-text-muted",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",children:[d.jsx("circle",{cx:"11",cy:"11",r:"8"}),d.jsx("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})]}),d.jsx("input",{type:"text",value:r,onChange:j=>i(j.target.value),placeholder:n("migrateSummarySearchPlaceholder"),className:"dash-focus-ring w-full pl-9 pr-3 py-2 bg-dash-bg border border-dash-border rounded-lg text-dash-text text-sm focus:border-dash-accent transition-colors"})]}),d.jsxs("div",{className:"flex flex-wrap items-center gap-1.5",children:[["all","installed","skipped","failed"].map(j=>{const S=j==="all"?"migrateSummaryFilterAll":j==="installed"?"migrateStatusInstalled":j==="skipped"?"migrateStatusSkipped":"migrateStatusFailed";return d.jsx("button",{type:"button",onClick:()=>a(j),className:`dash-focus-ring px-3 py-1 text-xs font-medium rounded-full border transition-colors ${o===j?"bg-dash-accent/10 border-dash-accent text-dash-accent":"border-dash-border text-dash-text-secondary hover:bg-dash-surface-hover hover:text-dash-text"}`,children:n(S)},j)}),d.jsx("button",{type:"button",onClick:k,className:"dash-focus-ring ml-1 px-3 py-1 text-xs font-medium rounded-md border border-dash-border text-dash-text-secondary hover:bg-dash-surface-hover",children:n(w?"migrateSummaryCollapseAll":"migrateSummaryExpandAll")})]})]}),h.length===0?d.jsx("div",{className:"text-center py-8 text-sm text-dash-text-muted",children:n("migrateSummaryNoResults")}):d.jsxs("div",{className:"space-y-2.5",children:[Rm.map(j=>{const S=p.get(j.key);return!S||S.length===0?null:d.jsx(Im,{labelKey:j.labelKey,badgeClass:j.badgeClass,items:S,isExpanded:l.has(j.key),onToggle:()=>v(j.key),singleProvider:u},j.key)}),(()=>{const j=p.get("unknown");return!j||j.length===0?null:d.jsx(Im,{labelKey:"migrateTypeUnknown",badgeClass:"border-dash-border text-dash-text-muted",items:j,isExpanded:l.has("unknown"),onToggle:()=>v("unknown"),singleProvider:u})})()]})]})},VP=500;function HP(t){return t>=0&&t<=8||t>=11&&t<=31||t>=127&&t<=159}function _P(t){let e="";for(const n of t){const r=n.codePointAt(0);r!==void 0&&(HP(r)||(e+=n))}return e}const WP=({diff:t,className:e=""})=>{const n=t.split(`
|
|
249
249
|
`),r=n.slice(0,VP),i=n.length-r.length;return d.jsxs("pre",{className:`text-xs font-mono overflow-x-auto p-3 rounded bg-dash-bg border border-dash-border ${e}`,children:[r.map((s,o)=>{const a=_P(s);let l="text-dash-text";return a.startsWith("+")?l="text-green-400 bg-green-500/10":a.startsWith("-")?l="text-red-400 bg-red-500/10":a.startsWith("@@")&&(l="text-blue-400"),d.jsx("div",{className:l,children:a},`${o}:${a.slice(0,24)}`)}),i>0&&d.jsxs("div",{className:"text-dash-text-muted",children:["... truncated ",i," additional line(s)"]})]})};function UP(t){return t>=0&&t<=8||t>=11&&t<=31||t>=127&&t<=159}function ts(t){let e="";for(const n of t){const r=n.codePointAt(0);r!==void 0&&(UP(r)||(e+=n))}return e}const KP=({action:t,resolution:e,onResolve:n})=>{const{t:r}=he(),[i,s]=m.useState(!1),o=t.ownedSections&&t.ownedSections.length>0;return d.jsxs("div",{className:"border border-dash-border rounded-lg p-4 mb-3 bg-dash-surface",children:[d.jsxs("div",{className:"flex justify-between items-start gap-4",children:[d.jsxs("div",{className:"flex-1 min-w-0",children:[d.jsxs("div",{className:"font-mono text-sm text-dash-text truncate",children:[ts(t.provider),"/",ts(t.type),"/",ts(t.item)]}),d.jsx("p",{className:"text-xs text-dash-text-muted mt-1",children:ts(t.reason)}),t.targetPath&&d.jsx("p",{className:"text-xs text-dash-text-secondary mt-1 font-mono truncate",children:ts(t.targetPath)})]}),d.jsxs("div",{className:"flex flex-wrap gap-2 items-center",children:[d.jsx("button",{type:"button",onClick:()=>n({type:"overwrite"}),className:`dash-focus-ring px-3 py-1.5 text-xs font-semibold rounded-md transition-colors ${e?.type==="overwrite"?"bg-dash-accent text-white":"bg-dash-bg border border-dash-border text-dash-text-secondary hover:bg-dash-surface-hover"}`,children:r("migrateConflictUseCK")}),d.jsx("button",{type:"button",onClick:()=>n({type:"keep"}),className:`dash-focus-ring px-3 py-1.5 text-xs font-semibold rounded-md transition-colors ${e?.type==="keep"?"bg-dash-accent text-white":"bg-dash-bg border border-dash-border text-dash-text-secondary hover:bg-dash-surface-hover"}`,children:r("migrateConflictKeepMine")}),o&&d.jsx("button",{type:"button",onClick:()=>n({type:"smart-merge"}),className:`dash-focus-ring px-3 py-1.5 text-xs font-semibold rounded-md transition-colors ${e?.type==="smart-merge"?"bg-dash-accent text-white":"bg-dash-bg border border-dash-border text-dash-text-secondary hover:bg-dash-surface-hover"}`,children:r("migrateConflictSmartMerge")}),t.diff&&d.jsx("button",{type:"button",onClick:()=>s(!i),className:"dash-focus-ring px-3 py-1.5 text-xs font-medium rounded-md border border-dash-border text-dash-text-secondary hover:bg-dash-surface-hover",children:r(i?"migrateConflictHideDiff":"migrateConflictShowDiff")})]})]}),i&&t.diff&&d.jsx(WP,{diff:t.diff,className:"mt-3"}),e&&d.jsxs("div",{className:"mt-2 text-xs text-green-400 flex items-center gap-1.5",children:[d.jsx("svg",{className:"w-3.5 h-3.5",fill:"currentColor",viewBox:"0 0 20 20",children:d.jsx("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z",clipRule:"evenodd"})}),d.jsxs("span",{children:[r("migrateConflictResolved"),": ",GP(e.type,r)]})]})]})};function GP(t,e){switch(t){case"overwrite":return e("migrateConflictUseCK");case"keep":return e("migrateConflictKeepMine");case"smart-merge":return e("migrateConflictSmartMerge");case"resolved":return e("migrateConflictManual");default:return String(t)}}const qP=[{key:"install",labelKey:"migrateActionInstall",activeClass:"border-green-400 text-green-400",badgeClass:"bg-green-500/10 border-green-500/30 text-green-400"},{key:"update",labelKey:"migrateActionUpdate",activeClass:"border-yellow-400 text-yellow-400",badgeClass:"bg-yellow-500/10 border-yellow-500/30 text-yellow-400"},{key:"conflict",labelKey:"migrateActionConflict",activeClass:"border-red-400 text-red-400",badgeClass:"bg-red-500/10 border-red-500/30 text-red-400"},{key:"delete",labelKey:"migrateActionDelete",activeClass:"border-dash-text-secondary text-dash-text-secondary",badgeClass:"bg-dash-bg border-dash-border text-dash-text-secondary"},{key:"skip",labelKey:"migrateActionSkip",activeClass:"border-dash-text-muted text-dash-text-muted",badgeClass:"bg-dash-bg border-dash-border text-dash-text-muted"}],$m=["agent","command","skill","config","rules","hooks"],YP={agent:"migrateTypeAgents",command:"migrateTypeCommands",skill:"migrateTypeSkills",config:"migrateTypeConfig",rules:"migrateTypeRules",hooks:"migrateTypeHooks"},JP={agent:"border-dash-accent/30 text-dash-accent",command:"border-yellow-500/30 text-yellow-400",skill:"border-purple-500/30 text-purple-400",config:"border-teal-500/30 text-teal-400",rules:"border-rose-500/30 text-rose-400",hooks:"border-cyan-500/30 text-cyan-400"},Jr=200;function QP(t){return t>=0&&t<=8||t>=11&&t<=31||t>=127&&t<=159}function Ia(t){let e="";for(const n of t){const r=n.codePointAt(0);r!==void 0&&(QP(r)||(e+=n))}return e}function XP(t){const e={install:[],update:[],skip:[],conflict:[],delete:[]};for(const n of t)e[n.action].push(n);return e}function ZP(t){const e=new Map;for(const n of t){const r=e.get(n.type)||[];r.push(n),e.set(n.type,r)}return e}const e6=({plan:t,resolutions:e,onResolve:n,actionKey:r})=>{const{t:i}=he(),s=m.useMemo(()=>XP(t.actions),[t.actions]),o=m.useMemo(()=>qP.filter(f=>s[f.key].length>0),[s]),[a,l]=m.useState(()=>s.conflict.length>0?"conflict":s.install.length>0?"install":o[0]?.key??"install");m.useEffect(()=>{s[a]?.length===0&&o.length>0&&l(o[0].key)},[s,a,o]);const c=m.useMemo(()=>s[a]??[],[s,a]),h=m.useMemo(()=>ZP(c),[c]),u=f=>{for(const p of s.conflict)n(p,{type:f})};return d.jsxs("div",{className:"space-y-4",children:[d.jsxs("div",{className:"flex flex-wrap gap-2 text-xs",children:[t.summary.install>0&&d.jsxs("div",{className:"px-2.5 py-1 rounded-md bg-green-500/10 border border-green-500/30 text-green-400",children:[t.summary.install," ",i("migrateActionInstall")]}),t.summary.update>0&&d.jsxs("div",{className:"px-2.5 py-1 rounded-md bg-yellow-500/10 border border-yellow-500/30 text-yellow-400",children:[t.summary.update," ",i("migrateActionUpdate")]}),t.summary.skip>0&&d.jsxs("div",{className:"px-2.5 py-1 rounded-md bg-dash-bg border border-dash-border text-dash-text-muted",children:[t.summary.skip," ",i("migrateActionSkip")]}),t.summary.conflict>0&&d.jsxs("div",{className:"px-2.5 py-1 rounded-md bg-red-500/10 border border-red-500/30 text-red-400",children:[t.summary.conflict," ",i("migrateActionConflict")]}),t.summary.delete>0&&d.jsxs("div",{className:"px-2.5 py-1 rounded-md bg-dash-bg border border-dash-border text-dash-text-secondary",children:[t.summary.delete," ",i("migrateActionDelete")]})]}),o.length>1&&d.jsx("div",{className:"flex gap-1 border-b border-dash-border",children:o.map(f=>{const p=a===f.key;return d.jsxs("button",{type:"button",onClick:()=>l(f.key),className:`px-3 py-2 text-xs font-medium border-b-2 transition-colors ${p?f.activeClass:"border-transparent text-dash-text-muted hover:text-dash-text-secondary"}`,children:[i(f.labelKey)," ",d.jsx("span",{className:`ml-1 px-1.5 py-0.5 rounded text-[10px] border ${f.badgeClass}`,children:s[f.key].length})]},f.key)})}),a==="conflict"&&s.conflict.length>0&&d.jsxs("div",{className:"flex items-center justify-between gap-3",children:[d.jsxs("h3",{className:"text-sm font-semibold text-red-400",children:[i("migrateConflictSectionTitle")," (",s.conflict.length,")"]}),d.jsxs("div",{className:"flex gap-2",children:[d.jsx("button",{type:"button",onClick:()=>u("overwrite"),className:"dash-focus-ring px-3 py-1 text-xs font-medium rounded-md bg-dash-bg border border-dash-border text-dash-text-secondary hover:bg-dash-surface-hover",children:i("migrateConflictOverwriteAll")}),d.jsx("button",{type:"button",onClick:()=>u("keep"),className:"dash-focus-ring px-3 py-1 text-xs font-medium rounded-md bg-dash-bg border border-dash-border text-dash-text-secondary hover:bg-dash-surface-hover",children:i("migrateConflictKeepAll")})]})]}),a==="conflict"?$m.map(f=>{const p=h.get(f);return!p||p.length===0?null:d.jsxs(Bm,{type:f,count:p.length,children:[p.slice(0,Jr).map(g=>d.jsx(KP,{action:g,resolution:e.get(r(g))||null,onResolve:b=>n(g,b)},r(g))),p.length>Jr&&d.jsxs("div",{className:"text-xs text-dash-text-muted",children:["... ",p.length-Jr," more"]})]},`${a}:${f}`)}):$m.map(f=>{const p=h.get(f);return!p||p.length===0?null:d.jsxs(Bm,{type:f,count:p.length,defaultExpanded:a!=="skip",children:[p.slice(0,Jr).map(g=>d.jsx(t6,{action:g},`${g.provider}:${g.type}:${g.item}:${g.global}:${g.action}`)),p.length>Jr&&d.jsxs("div",{className:"text-xs text-dash-text-muted",children:["... ",p.length-Jr," more"]})]},`${a}:${f}`)})]})},Bm=({type:t,count:e,defaultExpanded:n=!0,children:r})=>{const{t:i}=he(),[s,o]=m.useState(n),a=JP[t],l=i(YP[t]);return d.jsxs("div",{className:"border border-dash-border rounded-lg bg-dash-surface",children:[d.jsxs("button",{type:"button","aria-expanded":s,onClick:()=>o(!s),className:"w-full px-4 py-2.5 flex items-center justify-between text-left hover:bg-dash-surface-hover transition-colors",children:[d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsx("h4",{className:"text-sm font-semibold text-dash-text",children:l}),d.jsx("span",{className:`px-2 py-0.5 text-xs rounded-md border ${a}`,children:e})]}),d.jsx("svg",{"aria-hidden":"true",className:`w-4 h-4 text-dash-text-muted transition-transform ${s?"rotate-180":""}`,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:d.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]}),s&&d.jsx("div",{className:"px-4 pt-1 pb-4 space-y-2",children:r})]})},t6=({action:t})=>d.jsxs("div",{className:"px-3 py-2 bg-dash-bg rounded-md border border-dash-border",children:[d.jsxs("div",{className:"font-mono text-xs text-dash-text",children:[Ia(t.provider),"/",Ia(t.item)]}),d.jsx("div",{className:"text-xs text-dash-text-muted mt-1",children:Ia(t.reason)}),t.targetPath&&d.jsx("div",{className:"text-xs text-dash-text-secondary mt-0.5 font-mono truncate",children:Ia(t.targetPath)})]});var n6=function(e){return typeof window<"u"?matchMedia&&matchMedia("(prefers-color-scheme: ".concat(e,")")):{matches:!1}},ed,r6=m.createContext({appearance:"light",setAppearance:function(){},isDarkMode:!1,themeMode:"light",setThemeMode:function(){},browserPrefers:(ed=n6("dark"))!==null&&ed!==void 0&&ed.matches?"dark":"light"}),i6=function(){return m.useContext(r6)};const Iy=(t,e)=>{if(e)return"row";switch(t){case"horizontal":return"row";case"horizontal-reverse":return"row-reverse";case"vertical":default:return"column";case"vertical-reverse":return"column-reverse"}},s6=t=>{if(t)return["space-between","space-around","space-evenly"].includes(t)},o6=(t,e)=>Iy(t,e)==="row",Qr=t=>typeof t=="number"?`${t}px`:t,a6=({visible:t,flex:e,gap:n,direction:r,horizontal:i,align:s,justify:o,distribution:a,height:l,width:c,padding:h,paddingInline:u,paddingBlock:f,prefixCls:p,as:g="div",className:b,style:x,children:w,wrap:v,ref:k,...j})=>{const S=o||a,y=o6(r,i)&&!c&&s6(S)?"100%":Qr(c),N={...e!==void 0?{"--lobe-flex":String(e)}:{},...r||i?{"--lobe-flex-direction":Iy(r,i)}:{},...v!==void 0?{"--lobe-flex-wrap":v}:{},...S!==void 0?{"--lobe-flex-justify":S}:{},...s!==void 0?{"--lobe-flex-align":s}:{},...y!==void 0?{"--lobe-flex-width":y}:{},...l!==void 0?{"--lobe-flex-height":Qr(l)}:{},...h!==void 0?{"--lobe-flex-padding":Qr(h)}:{},...u!==void 0?{"--lobe-flex-padding-inline":Qr(u)}:{},...f!==void 0?{"--lobe-flex-padding-block":Qr(f)}:{},...n!==void 0?{"--lobe-flex-gap":Qr(n)}:{},...x},A="lobe-flex",T=[A,t===!1?`${A}--hidden`:void 0,p?`${p}-flex`:void 0,b].filter(Boolean).join(" ");return d.jsx(g,{ref:k,...j,className:T,style:N,children:w})};var $y=m.memo(a6);const l6=({children:t,ref:e,...n})=>d.jsx($y,{...n,align:"center",justify:"center",ref:e,children:t});var c6=l6;const d6=/\p{Lu}?\p{Ll}+|[0-9]+|\p{Lu}+(?!\p{Ll})|\p{Emoji_Presentation}|\p{Extended_Pictographic}|\p{L}+/gu;function h6(t){return Array.from(t.match(d6)??[])}function u6(t){return h6(t).map(n=>n.toLowerCase()).join("-")}function f6(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return m.useMemo(()=>r=>{e.forEach(i=>i(r))},e)}const ic=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Ai(t){const e=Object.prototype.toString.call(t);return e==="[object Window]"||e==="[object global]"}function Pu(t){return"nodeType"in t}function kt(t){var e,n;return t?Ai(t)?t:Pu(t)&&(e=(n=t.ownerDocument)==null?void 0:n.defaultView)!=null?e:window:window}function Nu(t){const{Document:e}=kt(t);return t instanceof e}function Vo(t){return Ai(t)?!1:t instanceof kt(t).HTMLElement}function By(t){return t instanceof kt(t).SVGElement}function Mi(t){return t?Ai(t)?t.document:Pu(t)?Nu(t)?t:Vo(t)||By(t)?t.ownerDocument:document:document:document}const ln=ic?m.useLayoutEffect:m.useEffect;function sc(t){const e=m.useRef(t);return ln(()=>{e.current=t}),m.useCallback(function(){for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];return e.current==null?void 0:e.current(...r)},[])}function p6(){const t=m.useRef(null),e=m.useCallback((r,i)=>{t.current=setInterval(r,i)},[]),n=m.useCallback(()=>{t.current!==null&&(clearInterval(t.current),t.current=null)},[]);return[e,n]}function _s(t,e){e===void 0&&(e=[t]);const n=m.useRef(t);return ln(()=>{n.current!==t&&(n.current=t)},e),n}function Ho(t,e){const n=m.useRef();return m.useMemo(()=>{const r=t(n.current);return n.current=r,r},[...e])}function Dl(t){const e=sc(t),n=m.useRef(null),r=m.useCallback(i=>{i!==n.current&&e?.(i,n.current),n.current=i},[]);return[n,r]}function Al(t){const e=m.useRef();return m.useEffect(()=>{e.current=t},[t]),e.current}let td={};function _o(t,e){return m.useMemo(()=>{if(e)return e;const n=td[t]==null?0:td[t]+1;return td[t]=n,t+"-"+n},[t,e])}function Fy(t){return function(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return r.reduce((s,o)=>{const a=Object.entries(o);for(const[l,c]of a){const h=s[l];h!=null&&(s[l]=h+t*c)}return s},{...e})}}const gi=Fy(1),Ws=Fy(-1);function m6(t){return"clientX"in t&&"clientY"in t}function oc(t){if(!t)return!1;const{KeyboardEvent:e}=kt(t.target);return e&&t instanceof e}function g6(t){if(!t)return!1;const{TouchEvent:e}=kt(t.target);return e&&t instanceof e}function Ml(t){if(g6(t)){if(t.touches&&t.touches.length){const{clientX:e,clientY:n}=t.touches[0];return{x:e,y:n}}else if(t.changedTouches&&t.changedTouches.length){const{clientX:e,clientY:n}=t.changedTouches[0];return{x:e,y:n}}}return m6(t)?{x:t.clientX,y:t.clientY}:null}const pr=Object.freeze({Translate:{toString(t){if(!t)return;const{x:e,y:n}=t;return"translate3d("+(e?Math.round(e):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(t){if(!t)return;const{scaleX:e,scaleY:n}=t;return"scaleX("+e+") scaleY("+n+")"}},Transform:{toString(t){if(t)return[pr.Translate.toString(t),pr.Scale.toString(t)].join(" ")}},Transition:{toString(t){let{property:e,duration:n,easing:r}=t;return e+" "+n+"ms "+r}}}),Fm="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function b6(t){return t.matches(Fm)?t:t.querySelector(Fm)}const x6={display:"none"};function y6(t){let{id:e,value:n}=t;return Le.createElement("div",{id:e,style:x6},n)}function v6(t){let{id:e,announcement:n,ariaLiveType:r="assertive"}=t;const i={position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"};return Le.createElement("div",{id:e,style:i,role:"status","aria-live":r,"aria-atomic":!0},n)}function w6(){const[t,e]=m.useState("");return{announce:m.useCallback(r=>{r!=null&&e(r)},[]),announcement:t}}const zy=m.createContext(null);function S6(t){const e=m.useContext(zy);m.useEffect(()=>{if(!e)throw new Error("useDndMonitor must be used within a children of <DndContext>");return e(t)},[t,e])}function k6(){const[t]=m.useState(()=>new Set),e=m.useCallback(r=>(t.add(r),()=>t.delete(r)),[t]);return[m.useCallback(r=>{let{type:i,event:s}=r;t.forEach(o=>{var a;return(a=o[i])==null?void 0:a.call(o,s)})},[t]),e]}const C6={draggable:`
|
|
250
250
|
To pick up a draggable item, press the space bar.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Fira Sans,system-ui,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:JetBrains Mono,Menlo,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!container{width:100%!important}.container{width:100%}@media (min-width: 640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width: 768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width: 1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width: 1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width: 1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.dash-panel{border-radius:.75rem;border-width:1px;border-color:var(--dash-border);background-color:var(--dash-surface);--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dash-sticky-glass{background-color:var(--dash-surface)}@supports ((backdrop-filter: blur(6px)) or (-webkit-backdrop-filter: blur(6px))){.dash-sticky-glass{background-color:color-mix(in srgb,var(--dash-surface) 90%,transparent);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}}.dash-panel-muted{border-radius:.75rem;border-width:1px;border-color:var(--dash-border);background-color:var(--dash-bg)}.dash-focus-ring:focus{outline:2px solid transparent;outline-offset:2px}.dash-focus-ring:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-color: var(--dash-accent);--tw-ring-offset-width: 2px;--tw-ring-offset-color: var(--dash-bg)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.-bottom-24{bottom:-6rem}.-bottom-28{bottom:-7rem}.-left-10{left:-2.5rem}.-right-8{right:-2rem}.-top-20{top:-5rem}.-top-24{top:-6rem}.left-0{left:0}.left-14{left:3.5rem}.left-2\.5{left:.625rem}.right-0{right:0}.right-2{right:.5rem}.right-2\.5{right:.625rem}.top-0{top:0}.top-1\/2{top:50%}.top-full{top:100%}.-z-10{z-index:-10}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.order-1{order:1}.order-2{order:2}.col-span-2{grid-column:span 2 / span 2}.m-0{margin:0}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-2\.5{margin-bottom:.625rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-0\.5{margin-left:.125rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-auto{margin-left:auto}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-auto{margin-top:auto}.line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-0\.5{height:.125rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-56{height:14rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-72{height:18rem}.h-8{height:2rem}.h-\[18px\]{height:18px}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-0{max-height:0px}.max-h-64{max-height:16rem}.max-h-\[2000px\]{max-height:2000px}.max-h-\[80vh\]{max-height:80vh}.max-h-\[calc\(100vh-200px\)\]{max-height:calc(100vh - 200px)}.max-h-none{max-height:none}.min-h-0{min-height:0px}.min-h-\[2\.5rem\]{min-height:2.5rem}.min-h-\[200px\]{min-height:200px}.min-h-\[44px\]{min-height:44px}.w-0\.5{width:.125rem}.w-1\.5{width:.375rem}.w-1\/2{width:50%}.w-1\/4{width:25%}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-64{width:16rem}.w-72{width:18rem}.w-8{width:2rem}.w-\[18px\]{width:18px}.w-\[480px\]{width:480px}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.min-w-0{min-width:0px}.max-w-20{max-width:5rem}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-\[180px\]{max-width:180px}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-1{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-6{--tw-translate-x: 1.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-col-resize{cursor:col-resize}.cursor-grab{cursor:grab}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-row-resize{cursor:row-resize}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-\[1fr_120px_200px_100px\]{grid-template-columns:1fr 120px 200px 100px}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-2{row-gap:.5rem}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-dash-border>:not([hidden])~:not([hidden]){border-color:var(--dash-border)}.self-start{align-self:flex-start}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-b-xl{border-bottom-right-radius:.75rem;border-bottom-left-radius:.75rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-4{border-width:4px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-2{border-top-width:2px}.border-dashed{border-style:dashed}.border-\[\#313244\]{--tw-border-opacity: 1;border-color:rgb(49 50 68 / var(--tw-border-opacity, 1))}.border-\[var\(--dash-accent\)\]{border-color:var(--dash-accent)}.border-\[var\(--dash-border\)\]{border-color:var(--dash-border)}.border-amber-300{--tw-border-opacity: 1;border-color:rgb(252 211 77 / var(--tw-border-opacity, 1))}.border-amber-400{--tw-border-opacity: 1;border-color:rgb(251 191 36 / var(--tw-border-opacity, 1))}.border-amber-500\/20{border-color:#f59e0b33}.border-amber-500\/25{border-color:#f59e0b40}.border-amber-500\/30{border-color:#f59e0b4d}.border-blue-500{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.border-blue-500\/20{border-color:#3b82f633}.border-cyan-500\/30{border-color:#06b6d44d}.border-dash-accent{border-color:var(--dash-accent)}.border-dash-border{border-color:var(--dash-border)}.border-dash-text-muted{border-color:var(--dash-text-muted)}.border-dash-text-secondary{border-color:var(--dash-text-secondary)}.border-emerald-500\/20{border-color:#10b98133}.border-emerald-500\/30{border-color:#10b9814d}.border-green-400{--tw-border-opacity: 1;border-color:rgb(74 222 128 / var(--tw-border-opacity, 1))}.border-green-400\/20{border-color:#4ade8033}.border-green-500{--tw-border-opacity: 1;border-color:rgb(34 197 94 / var(--tw-border-opacity, 1))}.border-green-500\/30{border-color:#22c55e4d}.border-green-500\/35{border-color:#22c55e59}.border-orange-200{--tw-border-opacity: 1;border-color:rgb(254 215 170 / var(--tw-border-opacity, 1))}.border-orange-500\/20{border-color:#f9731633}.border-orange-500\/30{border-color:#f973164d}.border-orange-500\/40{border-color:#f9731666}.border-purple-500\/30{border-color:#a855f74d}.border-red-300{--tw-border-opacity: 1;border-color:rgb(252 165 165 / var(--tw-border-opacity, 1))}.border-red-400{--tw-border-opacity: 1;border-color:rgb(248 113 113 / var(--tw-border-opacity, 1))}.border-red-400\/20{border-color:#f8717133}.border-red-500\/20{border-color:#ef444433}.border-red-500\/30{border-color:#ef44444d}.border-rose-500\/30{border-color:#f43f5e4d}.border-slate-500\/20{border-color:#64748b33}.border-teal-500\/30{border-color:#14b8a64d}.border-transparent{border-color:transparent}.border-white\/20{border-color:#fff3}.border-yellow-400{--tw-border-opacity: 1;border-color:rgb(250 204 21 / var(--tw-border-opacity, 1))}.border-yellow-500\/25{border-color:#eab30840}.border-yellow-500\/30{border-color:#eab3084d}.border-t-transparent{border-top-color:transparent}.bg-\[\#1e1e2e\]{--tw-bg-opacity: 1;background-color:rgb(30 30 46 / var(--tw-bg-opacity, 1))}.bg-\[\#a6e3a1\]{--tw-bg-opacity: 1;background-color:rgb(166 227 161 / var(--tw-bg-opacity, 1))}.bg-\[\#f38ba8\]{--tw-bg-opacity: 1;background-color:rgb(243 139 168 / var(--tw-bg-opacity, 1))}.bg-\[\#f9e2af\]{--tw-bg-opacity: 1;background-color:rgb(249 226 175 / var(--tw-bg-opacity, 1))}.bg-\[var\(--dash-accent\)\]{background-color:var(--dash-accent)}.bg-\[var\(--dash-bg\)\]{background-color:var(--dash-bg)}.bg-\[var\(--dash-border\)\]{background-color:var(--dash-border)}.bg-\[var\(--dash-surface\)\]{background-color:var(--dash-surface)}.bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-amber-500{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.bg-amber-500\/10{background-color:#f59e0b1a}.bg-amber-500\/15{background-color:#f59e0b26}.bg-black\/50{background-color:#00000080}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-blue-500\/10{background-color:#3b82f61a}.bg-blue-500\/5{background-color:#3b82f60d}.bg-dash-accent{background-color:var(--dash-accent)}.bg-dash-accent-subtle{background-color:var(--dash-accent-subtle)}.bg-dash-bg{background-color:var(--dash-bg)}.bg-dash-border{background-color:var(--dash-border)}.bg-dash-surface{background-color:var(--dash-surface)}.bg-dash-surface-hover{background-color:var(--dash-surface-hover)}.bg-dash-text{background-color:var(--dash-text)}.bg-dash-text-muted{background-color:var(--dash-text-muted)}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-emerald-500\/10{background-color:#10b9811a}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-gray-500\/10{background-color:#6b72801a}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-400\/10{background-color:#4ade801a}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-green-500\/10{background-color:#22c55e1a}.bg-orange-400{--tw-bg-opacity: 1;background-color:rgb(251 146 60 / var(--tw-bg-opacity, 1))}.bg-orange-50{--tw-bg-opacity: 1;background-color:rgb(255 247 237 / var(--tw-bg-opacity, 1))}.bg-orange-500\/10{background-color:#f973161a}.bg-orange-500\/5{background-color:#f973160d}.bg-red-100{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.bg-red-400\/10{background-color:#f871711a}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-500\/10{background-color:#ef44441a}.bg-slate-500\/10{background-color:#64748b1a}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/70{background-color:#ffffffb3}.bg-yellow-500\/10{background-color:#eab3081a}.stroke-current{stroke:currentColor}.stroke-dash-text-muted{stroke:var(--dash-text-muted)}.object-contain{-o-object-fit:contain;object-fit:contain}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-0\.5{padding-bottom:.125rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pb-8{padding-bottom:2rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-9{padding-left:2.25rem}.pr-1{padding-right:.25rem}.pr-10{padding-right:2.5rem}.pr-12{padding-right:3rem}.pr-3{padding-right:.75rem}.pt-0\.5{padding-top:.125rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.font-mono{font-family:JetBrains Mono,Menlo,monospace}.font-sans{font-family:Fira Sans,system-ui,sans-serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.italic{font-style:italic}.leading-4{line-height:1rem}.leading-normal{line-height:1.5}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-\[0\.16em\]{letter-spacing:.16em}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-\[\#6c7086\]{--tw-text-opacity: 1;color:rgb(108 112 134 / var(--tw-text-opacity, 1))}.text-\[var\(--dash-accent\)\]{color:var(--dash-accent)}.text-\[var\(--dash-text\)\]{color:var(--dash-text)}.text-\[var\(--dash-text-muted\)\]{color:var(--dash-text-muted)}.text-amber-400{--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.text-amber-500{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-cyan-400{--tw-text-opacity: 1;color:rgb(34 211 238 / var(--tw-text-opacity, 1))}.text-dash-accent{color:var(--dash-accent)}.text-dash-bg{color:var(--dash-bg)}.text-dash-text{color:var(--dash-text)}.text-dash-text-muted{color:var(--dash-text-muted)}.text-dash-text-secondary{color:var(--dash-text-secondary)}.text-emerald-500{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-400{--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-orange-400{--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.text-orange-500{--tw-text-opacity: 1;color:rgb(249 115 22 / var(--tw-text-opacity, 1))}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-orange-700{--tw-text-opacity: 1;color:rgb(194 65 12 / var(--tw-text-opacity, 1))}.text-purple-400{--tw-text-opacity: 1;color:rgb(192 132 252 / var(--tw-text-opacity, 1))}.text-purple-500{--tw-text-opacity: 1;color:rgb(168 85 247 / var(--tw-text-opacity, 1))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-red-400\/80{color:#f87171cc}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-red-800{--tw-text-opacity: 1;color:rgb(153 27 27 / var(--tw-text-opacity, 1))}.text-rose-400{--tw-text-opacity: 1;color:rgb(251 113 133 / var(--tw-text-opacity, 1))}.text-slate-300{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.text-teal-400{--tw-text-opacity: 1;color:rgb(45 212 191 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-400{--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.placeholder-dash-text-muted::-moz-placeholder{color:var(--dash-text-muted)}.placeholder-dash-text-muted::placeholder{color:var(--dash-text-muted)}.opacity-0{opacity:0}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_8px_var\(--dash-accent-glow\)\]{--tw-shadow: 0 0 8px var(--dash-accent-glow);--tw-shadow-colored: 0 0 8px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-green-500\/20{--tw-shadow-color: rgb(34 197 94 / .2);--tw-shadow: var(--tw-shadow-colored)}.outline{outline-style:solid}.blur-3xl{--tw-blur: blur(64px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.invert{--tw-invert: invert(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}html,body,#root{height:100%}body{background-image:radial-gradient(circle at 92% -6%,color-mix(in srgb,var(--dash-accent) 16%,transparent),transparent 38%),radial-gradient(circle at -12% 102%,color-mix(in srgb,var(--dash-accent) 12%,transparent),transparent 42%);background-attachment:fixed}*{scrollbar-width:thin;scrollbar-color:var(--dash-border) transparent}::-moz-selection{background-color:var(--dash-accent-selection)!important;color:var(--dash-text)!important}::selection{background-color:var(--dash-accent-selection)!important;color:var(--dash-text)!important}*::-webkit-scrollbar{width:6px;height:6px}*::-webkit-scrollbar-thumb{background:var(--dash-border);border-radius:3px}@keyframes slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.animate-slide-in{animation:slide-in .2s ease-out}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.placeholder\:text-dash-text-muted::-moz-placeholder{color:var(--dash-text-muted)}.placeholder\:text-dash-text-muted::placeholder{color:var(--dash-text-muted)}.backdrop\:bg-black\/50::backdrop{background-color:#00000080}.last\:mb-0:last-child{margin-bottom:0}.last\:border-0:last-child{border-width:0px}.last\:border-b-0:last-child{border-bottom-width:0px}.hover\:-translate-y-0\.5:hover{--tw-translate-y: -.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-dash-accent:hover{border-color:var(--dash-accent)}.hover\:border-dash-border:hover{border-color:var(--dash-border)}.hover\:border-dash-text-muted:hover{border-color:var(--dash-text-muted)}.hover\:border-yellow-500\/40:hover{border-color:#eab30866}.hover\:bg-\[var\(--dash-surface-hover\)\]:hover{background-color:var(--dash-surface-hover)}.hover\:bg-dash-accent-glow:hover{background-color:var(--dash-accent-glow)}.hover\:bg-dash-accent-hover:hover{background-color:var(--dash-accent-hover)}.hover\:bg-dash-bg:hover{background-color:var(--dash-bg)}.hover\:bg-dash-surface-hover:hover{background-color:var(--dash-surface-hover)}.hover\:bg-orange-500\/10:hover{background-color:#f973161a}.hover\:bg-red-600:hover{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.hover\:text-amber-600:hover{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.hover\:text-dash-accent:hover{color:var(--dash-accent)}.hover\:text-dash-accent-hover:hover{color:var(--dash-accent-hover)}.hover\:text-dash-text:hover{color:var(--dash-text)}.hover\:text-dash-text-secondary:hover{color:var(--dash-text-secondary)}.hover\:text-red-400:hover{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.hover\:text-red-500:hover{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:no-underline:hover{text-decoration-line:none}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-lg:hover{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.focus\:border-dash-accent:focus{border-color:var(--dash-accent)}.focus\:border-transparent:focus{border-color:transparent}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-amber-500\/50:focus{--tw-ring-color: rgb(245 158 11 / .5)}.focus\:ring-dash-accent:focus{--tw-ring-color: var(--dash-accent)}.focus\:ring-offset-0:focus{--tw-ring-offset-width: 0px}.active\:cursor-grabbing:active{cursor:grabbing}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:-translate-x-0\.5{--tw-translate-x: -.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-110{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:bg-dash-text-muted{background-color:var(--dash-text-muted)}.group:hover .group-hover\:text-dash-text-secondary{color:var(--dash-text-secondary)}.group:hover .group-hover\:opacity-100{opacity:1}@media (prefers-reduced-motion: reduce){.motion-reduce\:animate-none{animation:none}}.dark\:border-amber-500\/30:is(.dark *){border-color:#f59e0b4d}.dark\:border-orange-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(154 52 18 / var(--tw-border-opacity, 1))}.dark\:bg-amber-500\/10:is(.dark *){background-color:#f59e0b1a}.dark\:bg-gray-400\/10:is(.dark *){background-color:#9ca3af1a}.dark\:bg-gray-700:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.dark\:bg-orange-950:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(67 20 7 / var(--tw-bg-opacity, 1))}.dark\:bg-red-900\/20:is(.dark *){background-color:#7f1d1d33}.dark\:text-amber-200:is(.dark *){--tw-text-opacity: 1;color:rgb(253 230 138 / var(--tw-text-opacity, 1))}.dark\:text-blue-400:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.dark\:text-gray-100:is(.dark *){--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity, 1))}.dark\:text-gray-200:is(.dark *){--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.dark\:text-gray-400:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.dark\:text-gray-500:is(.dark *){--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.dark\:text-orange-300:is(.dark *){--tw-text-opacity: 1;color:rgb(253 186 116 / var(--tw-text-opacity, 1))}.dark\:text-orange-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.dark\:text-white:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}@media (min-width: 640px){.sm\:block{display:block}.sm\:w-\[460px\]{width:460px}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width: 768px){.md\:col-span-4{grid-column:span 4 / span 4}.md\:block{display:block}.md\:grid{display:grid}.md\:hidden{display:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-\[minmax\(0\,1\.2fr\)_minmax\(0\,0\.8fr\)_minmax\(0\,1\.2fr\)_auto_minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr) minmax(0,1.2fr) auto minmax(0,1fr)}.md\:grid-cols-\[minmax\(0\,1\.5fr\)_minmax\(0\,1\.35fr\)_auto_minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1.5fr) minmax(0,1.35fr) auto minmax(0,1fr)}.md\:flex-row{flex-direction:row}.md\:items-start{align-items:flex-start}.md\:items-end{align-items:flex-end}.md\:justify-between{justify-content:space-between}.md\:p-5{padding:1.25rem}.md\:p-6{padding:1.5rem}.md\:px-6{padding-left:1.5rem;padding-right:1.5rem}.md\:py-5{padding-top:1.25rem;padding-bottom:1.25rem}.md\:text-2xl{font-size:1.5rem;line-height:2rem}}@media (min-width: 1024px){.lg\:col-span-2{grid-column:span 2 / span 2}.lg\:block{display:block}.lg\:grid{display:grid}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-\[minmax\(0\,1\.25fr\)_140px_minmax\(0\,220px\)_auto\]{grid-template-columns:minmax(0,1.25fr) 140px minmax(0,220px) auto}.lg\:flex-row{flex-direction:row}.lg\:flex-col{flex-direction:column}.lg\:items-start{align-items:flex-start}.lg\:items-center{align-items:center}.lg\:justify-end{justify-content:flex-end}.lg\:justify-between{justify-content:space-between}.lg\:gap-1{gap:.25rem}.lg\:gap-4{gap:1rem}}@media (min-width: 1280px){.xl\:sticky{position:sticky}.xl\:top-20{top:5rem}.xl\:top-\[84px\]{top:84px}.xl\:order-1{order:1}.xl\:order-2{order:2}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.xl\:grid-cols-\[minmax\(0\,1\.55fr\)_minmax\(0\,340px\)\]{grid-template-columns:minmax(0,1.55fr) minmax(0,340px)}.xl\:grid-cols-\[minmax\(0\,1fr\)_320px\]{grid-template-columns:minmax(0,1fr) 320px}.xl\:flex-row{flex-direction:row}.xl\:items-end{align-items:flex-end}.xl\:justify-between{justify-content:space-between}}.\[\&_\.cm-content\]\:text-xs .cm-content{font-size:.75rem;line-height:1rem}.\[\&_\.cm-content\]\:leading-4 .cm-content{line-height:1rem}.\[\&_\.cm-editor\]\:h-full .cm-editor{height:100%}.\[\&_\.cm-editor\]\:outline-none .cm-editor,.\[\&_\.cm-focused\]\:outline-none .cm-focused{outline:2px solid transparent;outline-offset:2px}.\[\&_\.cm-gutters\]\:text-xs .cm-gutters{font-size:.75rem;line-height:1rem}.\[\&_\.cm-gutters\]\:leading-4 .cm-gutters{line-height:1rem}
|
package/dist/ui/index.html
CHANGED
|
@@ -71,9 +71,9 @@
|
|
|
71
71
|
background: var(--dash-text-muted);
|
|
72
72
|
}
|
|
73
73
|
</style>
|
|
74
|
-
<script type="module" crossorigin src="/assets/index-
|
|
74
|
+
<script type="module" crossorigin src="/assets/index-BLo8rjEQ.js"></script>
|
|
75
75
|
<link rel="modulepreload" crossorigin href="/assets/vendor-DNUgy55u.js">
|
|
76
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
76
|
+
<link rel="stylesheet" crossorigin href="/assets/index-C0MkXKn3.css">
|
|
77
77
|
</head>
|
|
78
78
|
<body class="bg-dash-bg text-dash-text">
|
|
79
79
|
<div id="root"></div>
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Fira Sans,system-ui,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:JetBrains Mono,Menlo,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!container{width:100%!important}.container{width:100%}@media (min-width: 640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width: 768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width: 1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width: 1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width: 1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.dash-panel{border-radius:.75rem;border-width:1px;border-color:var(--dash-border);background-color:var(--dash-surface);--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dash-sticky-glass{background-color:var(--dash-surface)}@supports ((backdrop-filter: blur(6px)) or (-webkit-backdrop-filter: blur(6px))){.dash-sticky-glass{background-color:color-mix(in srgb,var(--dash-surface) 90%,transparent);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}}.dash-panel-muted{border-radius:.75rem;border-width:1px;border-color:var(--dash-border);background-color:var(--dash-bg)}.dash-focus-ring:focus{outline:2px solid transparent;outline-offset:2px}.dash-focus-ring:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-color: var(--dash-accent);--tw-ring-offset-width: 2px;--tw-ring-offset-color: var(--dash-bg)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.-bottom-24{bottom:-6rem}.-bottom-28{bottom:-7rem}.-left-10{left:-2.5rem}.-right-8{right:-2rem}.-top-20{top:-5rem}.-top-24{top:-6rem}.left-0{left:0}.left-14{left:3.5rem}.left-2\.5{left:.625rem}.right-0{right:0}.right-2{right:.5rem}.right-2\.5{right:.625rem}.top-0{top:0}.top-1\/2{top:50%}.top-full{top:100%}.-z-10{z-index:-10}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.order-1{order:1}.order-2{order:2}.col-span-2{grid-column:span 2 / span 2}.m-0{margin:0}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-2\.5{margin-bottom:.625rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-0\.5{margin-left:.125rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-auto{margin-left:auto}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-auto{margin-top:auto}.line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-0\.5{height:.125rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-56{height:14rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-72{height:18rem}.h-8{height:2rem}.h-\[18px\]{height:18px}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-0{max-height:0px}.max-h-64{max-height:16rem}.max-h-\[2000px\]{max-height:2000px}.max-h-\[80vh\]{max-height:80vh}.max-h-\[calc\(100vh-200px\)\]{max-height:calc(100vh - 200px)}.max-h-none{max-height:none}.min-h-0{min-height:0px}.min-h-\[2\.5rem\]{min-height:2.5rem}.min-h-\[200px\]{min-height:200px}.min-h-\[44px\]{min-height:44px}.w-0\.5{width:.125rem}.w-1\.5{width:.375rem}.w-1\/2{width:50%}.w-1\/4{width:25%}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-64{width:16rem}.w-72{width:18rem}.w-8{width:2rem}.w-\[18px\]{width:18px}.w-\[480px\]{width:480px}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.min-w-0{min-width:0px}.max-w-20{max-width:5rem}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-\[180px\]{max-width:180px}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-1{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-6{--tw-translate-x: 1.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-col-resize{cursor:col-resize}.cursor-grab{cursor:grab}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-row-resize{cursor:row-resize}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-\[1fr_120px_200px_100px\]{grid-template-columns:1fr 120px 200px 100px}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-2{row-gap:.5rem}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-dash-border>:not([hidden])~:not([hidden]){border-color:var(--dash-border)}.self-start{align-self:flex-start}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-b-xl{border-bottom-right-radius:.75rem;border-bottom-left-radius:.75rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-4{border-width:4px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-2{border-top-width:2px}.border-dashed{border-style:dashed}.border-\[\#313244\]{--tw-border-opacity: 1;border-color:rgb(49 50 68 / var(--tw-border-opacity, 1))}.border-\[var\(--dash-accent\)\]{border-color:var(--dash-accent)}.border-\[var\(--dash-border\)\]{border-color:var(--dash-border)}.border-amber-400{--tw-border-opacity: 1;border-color:rgb(251 191 36 / var(--tw-border-opacity, 1))}.border-amber-500\/20{border-color:#f59e0b33}.border-amber-500\/25{border-color:#f59e0b40}.border-amber-500\/30{border-color:#f59e0b4d}.border-blue-500{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.border-blue-500\/20{border-color:#3b82f633}.border-cyan-500\/30{border-color:#06b6d44d}.border-dash-accent{border-color:var(--dash-accent)}.border-dash-border{border-color:var(--dash-border)}.border-dash-text-muted{border-color:var(--dash-text-muted)}.border-dash-text-secondary{border-color:var(--dash-text-secondary)}.border-emerald-500\/20{border-color:#10b98133}.border-emerald-500\/30{border-color:#10b9814d}.border-green-400{--tw-border-opacity: 1;border-color:rgb(74 222 128 / var(--tw-border-opacity, 1))}.border-green-400\/20{border-color:#4ade8033}.border-green-500{--tw-border-opacity: 1;border-color:rgb(34 197 94 / var(--tw-border-opacity, 1))}.border-green-500\/30{border-color:#22c55e4d}.border-green-500\/35{border-color:#22c55e59}.border-orange-200{--tw-border-opacity: 1;border-color:rgb(254 215 170 / var(--tw-border-opacity, 1))}.border-orange-500\/20{border-color:#f9731633}.border-orange-500\/30{border-color:#f973164d}.border-orange-500\/40{border-color:#f9731666}.border-purple-500\/30{border-color:#a855f74d}.border-red-300{--tw-border-opacity: 1;border-color:rgb(252 165 165 / var(--tw-border-opacity, 1))}.border-red-400{--tw-border-opacity: 1;border-color:rgb(248 113 113 / var(--tw-border-opacity, 1))}.border-red-400\/20{border-color:#f8717133}.border-red-500\/20{border-color:#ef444433}.border-red-500\/30{border-color:#ef44444d}.border-rose-500\/30{border-color:#f43f5e4d}.border-slate-500\/20{border-color:#64748b33}.border-teal-500\/30{border-color:#14b8a64d}.border-transparent{border-color:transparent}.border-white\/20{border-color:#fff3}.border-yellow-400{--tw-border-opacity: 1;border-color:rgb(250 204 21 / var(--tw-border-opacity, 1))}.border-yellow-500\/25{border-color:#eab30840}.border-yellow-500\/30{border-color:#eab3084d}.border-t-transparent{border-top-color:transparent}.bg-\[\#1e1e2e\]{--tw-bg-opacity: 1;background-color:rgb(30 30 46 / var(--tw-bg-opacity, 1))}.bg-\[\#a6e3a1\]{--tw-bg-opacity: 1;background-color:rgb(166 227 161 / var(--tw-bg-opacity, 1))}.bg-\[\#f38ba8\]{--tw-bg-opacity: 1;background-color:rgb(243 139 168 / var(--tw-bg-opacity, 1))}.bg-\[\#f9e2af\]{--tw-bg-opacity: 1;background-color:rgb(249 226 175 / var(--tw-bg-opacity, 1))}.bg-\[var\(--dash-accent\)\]{background-color:var(--dash-accent)}.bg-\[var\(--dash-bg\)\]{background-color:var(--dash-bg)}.bg-\[var\(--dash-border\)\]{background-color:var(--dash-border)}.bg-\[var\(--dash-surface\)\]{background-color:var(--dash-surface)}.bg-amber-500{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.bg-amber-500\/10{background-color:#f59e0b1a}.bg-amber-500\/15{background-color:#f59e0b26}.bg-black\/50{background-color:#00000080}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-blue-500\/10{background-color:#3b82f61a}.bg-blue-500\/5{background-color:#3b82f60d}.bg-dash-accent{background-color:var(--dash-accent)}.bg-dash-accent-subtle{background-color:var(--dash-accent-subtle)}.bg-dash-bg{background-color:var(--dash-bg)}.bg-dash-border{background-color:var(--dash-border)}.bg-dash-surface{background-color:var(--dash-surface)}.bg-dash-surface-hover{background-color:var(--dash-surface-hover)}.bg-dash-text{background-color:var(--dash-text)}.bg-dash-text-muted{background-color:var(--dash-text-muted)}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-emerald-500\/10{background-color:#10b9811a}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-gray-500\/10{background-color:#6b72801a}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-400\/10{background-color:#4ade801a}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-green-500\/10{background-color:#22c55e1a}.bg-orange-400{--tw-bg-opacity: 1;background-color:rgb(251 146 60 / var(--tw-bg-opacity, 1))}.bg-orange-50{--tw-bg-opacity: 1;background-color:rgb(255 247 237 / var(--tw-bg-opacity, 1))}.bg-orange-500\/10{background-color:#f973161a}.bg-orange-500\/5{background-color:#f973160d}.bg-red-100{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.bg-red-400\/10{background-color:#f871711a}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-500\/10{background-color:#ef44441a}.bg-slate-500\/10{background-color:#64748b1a}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/70{background-color:#ffffffb3}.bg-yellow-500\/10{background-color:#eab3081a}.stroke-current{stroke:currentColor}.stroke-dash-text-muted{stroke:var(--dash-text-muted)}.object-contain{-o-object-fit:contain;object-fit:contain}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-0\.5{padding-bottom:.125rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pb-8{padding-bottom:2rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-9{padding-left:2.25rem}.pr-1{padding-right:.25rem}.pr-10{padding-right:2.5rem}.pr-12{padding-right:3rem}.pr-3{padding-right:.75rem}.pt-0\.5{padding-top:.125rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.font-mono{font-family:JetBrains Mono,Menlo,monospace}.font-sans{font-family:Fira Sans,system-ui,sans-serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.italic{font-style:italic}.leading-4{line-height:1rem}.leading-normal{line-height:1.5}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-\[0\.16em\]{letter-spacing:.16em}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-\[\#6c7086\]{--tw-text-opacity: 1;color:rgb(108 112 134 / var(--tw-text-opacity, 1))}.text-\[var\(--dash-accent\)\]{color:var(--dash-accent)}.text-\[var\(--dash-text\)\]{color:var(--dash-text)}.text-\[var\(--dash-text-muted\)\]{color:var(--dash-text-muted)}.text-amber-200{--tw-text-opacity: 1;color:rgb(253 230 138 / var(--tw-text-opacity, 1))}.text-amber-400{--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.text-amber-500{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-cyan-400{--tw-text-opacity: 1;color:rgb(34 211 238 / var(--tw-text-opacity, 1))}.text-dash-accent{color:var(--dash-accent)}.text-dash-bg{color:var(--dash-bg)}.text-dash-text{color:var(--dash-text)}.text-dash-text-muted{color:var(--dash-text-muted)}.text-dash-text-secondary{color:var(--dash-text-secondary)}.text-emerald-500{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-400{--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-orange-400{--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.text-orange-500{--tw-text-opacity: 1;color:rgb(249 115 22 / var(--tw-text-opacity, 1))}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-orange-700{--tw-text-opacity: 1;color:rgb(194 65 12 / var(--tw-text-opacity, 1))}.text-purple-400{--tw-text-opacity: 1;color:rgb(192 132 252 / var(--tw-text-opacity, 1))}.text-purple-500{--tw-text-opacity: 1;color:rgb(168 85 247 / var(--tw-text-opacity, 1))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-red-400\/80{color:#f87171cc}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-red-800{--tw-text-opacity: 1;color:rgb(153 27 27 / var(--tw-text-opacity, 1))}.text-rose-400{--tw-text-opacity: 1;color:rgb(251 113 133 / var(--tw-text-opacity, 1))}.text-slate-300{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.text-teal-400{--tw-text-opacity: 1;color:rgb(45 212 191 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-400{--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.placeholder-dash-text-muted::-moz-placeholder{color:var(--dash-text-muted)}.placeholder-dash-text-muted::placeholder{color:var(--dash-text-muted)}.opacity-0{opacity:0}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_8px_var\(--dash-accent-glow\)\]{--tw-shadow: 0 0 8px var(--dash-accent-glow);--tw-shadow-colored: 0 0 8px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-green-500\/20{--tw-shadow-color: rgb(34 197 94 / .2);--tw-shadow: var(--tw-shadow-colored)}.outline{outline-style:solid}.blur-3xl{--tw-blur: blur(64px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.invert{--tw-invert: invert(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}html,body,#root{height:100%}body{background-image:radial-gradient(circle at 92% -6%,color-mix(in srgb,var(--dash-accent) 16%,transparent),transparent 38%),radial-gradient(circle at -12% 102%,color-mix(in srgb,var(--dash-accent) 12%,transparent),transparent 42%);background-attachment:fixed}*{scrollbar-width:thin;scrollbar-color:var(--dash-border) transparent}::-moz-selection{background-color:var(--dash-accent-selection)!important;color:var(--dash-text)!important}::selection{background-color:var(--dash-accent-selection)!important;color:var(--dash-text)!important}*::-webkit-scrollbar{width:6px;height:6px}*::-webkit-scrollbar-thumb{background:var(--dash-border);border-radius:3px}@keyframes slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.animate-slide-in{animation:slide-in .2s ease-out}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.placeholder\:text-dash-text-muted::-moz-placeholder{color:var(--dash-text-muted)}.placeholder\:text-dash-text-muted::placeholder{color:var(--dash-text-muted)}.backdrop\:bg-black\/50::backdrop{background-color:#00000080}.last\:mb-0:last-child{margin-bottom:0}.last\:border-0:last-child{border-width:0px}.last\:border-b-0:last-child{border-bottom-width:0px}.hover\:-translate-y-0\.5:hover{--tw-translate-y: -.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-dash-accent:hover{border-color:var(--dash-accent)}.hover\:border-dash-border:hover{border-color:var(--dash-border)}.hover\:border-dash-text-muted:hover{border-color:var(--dash-text-muted)}.hover\:border-yellow-500\/40:hover{border-color:#eab30866}.hover\:bg-\[var\(--dash-surface-hover\)\]:hover{background-color:var(--dash-surface-hover)}.hover\:bg-dash-accent-glow:hover{background-color:var(--dash-accent-glow)}.hover\:bg-dash-accent-hover:hover{background-color:var(--dash-accent-hover)}.hover\:bg-dash-bg:hover{background-color:var(--dash-bg)}.hover\:bg-dash-surface-hover:hover{background-color:var(--dash-surface-hover)}.hover\:bg-orange-500\/10:hover{background-color:#f973161a}.hover\:bg-red-600:hover{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.hover\:text-amber-600:hover{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.hover\:text-dash-accent:hover{color:var(--dash-accent)}.hover\:text-dash-accent-hover:hover{color:var(--dash-accent-hover)}.hover\:text-dash-text:hover{color:var(--dash-text)}.hover\:text-dash-text-secondary:hover{color:var(--dash-text-secondary)}.hover\:text-red-400:hover{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.hover\:text-red-500:hover{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:no-underline:hover{text-decoration-line:none}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-lg:hover{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.focus\:border-dash-accent:focus{border-color:var(--dash-accent)}.focus\:border-transparent:focus{border-color:transparent}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-amber-500\/50:focus{--tw-ring-color: rgb(245 158 11 / .5)}.focus\:ring-dash-accent:focus{--tw-ring-color: var(--dash-accent)}.focus\:ring-offset-0:focus{--tw-ring-offset-width: 0px}.active\:cursor-grabbing:active{cursor:grabbing}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:-translate-x-0\.5{--tw-translate-x: -.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-110{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:bg-dash-text-muted{background-color:var(--dash-text-muted)}.group:hover .group-hover\:text-dash-text-secondary{color:var(--dash-text-secondary)}.group:hover .group-hover\:opacity-100{opacity:1}@media (prefers-reduced-motion: reduce){.motion-reduce\:animate-none{animation:none}}.dark\:border-orange-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(154 52 18 / var(--tw-border-opacity, 1))}.dark\:bg-gray-400\/10:is(.dark *){background-color:#9ca3af1a}.dark\:bg-gray-700:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.dark\:bg-orange-950:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(67 20 7 / var(--tw-bg-opacity, 1))}.dark\:bg-red-900\/20:is(.dark *){background-color:#7f1d1d33}.dark\:text-blue-400:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.dark\:text-gray-100:is(.dark *){--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity, 1))}.dark\:text-gray-200:is(.dark *){--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.dark\:text-gray-400:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.dark\:text-gray-500:is(.dark *){--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.dark\:text-orange-300:is(.dark *){--tw-text-opacity: 1;color:rgb(253 186 116 / var(--tw-text-opacity, 1))}.dark\:text-orange-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.dark\:text-white:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}@media (min-width: 640px){.sm\:block{display:block}.sm\:w-\[460px\]{width:460px}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width: 768px){.md\:col-span-4{grid-column:span 4 / span 4}.md\:block{display:block}.md\:grid{display:grid}.md\:hidden{display:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-\[minmax\(0\,1\.2fr\)_minmax\(0\,0\.8fr\)_minmax\(0\,1\.2fr\)_auto_minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr) minmax(0,1.2fr) auto minmax(0,1fr)}.md\:grid-cols-\[minmax\(0\,1\.5fr\)_minmax\(0\,1\.35fr\)_auto_minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1.5fr) minmax(0,1.35fr) auto minmax(0,1fr)}.md\:flex-row{flex-direction:row}.md\:items-start{align-items:flex-start}.md\:items-end{align-items:flex-end}.md\:justify-between{justify-content:space-between}.md\:p-5{padding:1.25rem}.md\:p-6{padding:1.5rem}.md\:px-6{padding-left:1.5rem;padding-right:1.5rem}.md\:py-5{padding-top:1.25rem;padding-bottom:1.25rem}.md\:text-2xl{font-size:1.5rem;line-height:2rem}}@media (min-width: 1024px){.lg\:col-span-2{grid-column:span 2 / span 2}.lg\:block{display:block}.lg\:grid{display:grid}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-\[minmax\(0\,1\.25fr\)_140px_minmax\(0\,220px\)_auto\]{grid-template-columns:minmax(0,1.25fr) 140px minmax(0,220px) auto}.lg\:flex-row{flex-direction:row}.lg\:flex-col{flex-direction:column}.lg\:items-start{align-items:flex-start}.lg\:items-center{align-items:center}.lg\:justify-end{justify-content:flex-end}.lg\:justify-between{justify-content:space-between}.lg\:gap-1{gap:.25rem}.lg\:gap-4{gap:1rem}}@media (min-width: 1280px){.xl\:sticky{position:sticky}.xl\:top-20{top:5rem}.xl\:top-\[84px\]{top:84px}.xl\:order-1{order:1}.xl\:order-2{order:2}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.xl\:grid-cols-\[minmax\(0\,1\.55fr\)_minmax\(0\,340px\)\]{grid-template-columns:minmax(0,1.55fr) minmax(0,340px)}.xl\:grid-cols-\[minmax\(0\,1fr\)_320px\]{grid-template-columns:minmax(0,1fr) 320px}.xl\:flex-row{flex-direction:row}.xl\:items-end{align-items:flex-end}.xl\:justify-between{justify-content:space-between}}.\[\&_\.cm-content\]\:text-xs .cm-content{font-size:.75rem;line-height:1rem}.\[\&_\.cm-content\]\:leading-4 .cm-content{line-height:1rem}.\[\&_\.cm-editor\]\:h-full .cm-editor{height:100%}.\[\&_\.cm-editor\]\:outline-none .cm-editor,.\[\&_\.cm-focused\]\:outline-none .cm-focused{outline:2px solid transparent;outline-offset:2px}.\[\&_\.cm-gutters\]\:text-xs .cm-gutters{font-size:.75rem;line-height:1rem}.\[\&_\.cm-gutters\]\:leading-4 .cm-gutters{line-height:1rem}
|