mindpm 1.2.35 → 1.2.36
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
|
@@ -393,6 +393,105 @@ import { fileURLToPath } from "url";
|
|
|
393
393
|
import { dirname as dirname2 } from "path";
|
|
394
394
|
import { spawn } from "child_process";
|
|
395
395
|
|
|
396
|
+
// src/db/metrics.ts
|
|
397
|
+
function percentile(sorted, p) {
|
|
398
|
+
if (sorted.length === 0) return 0;
|
|
399
|
+
return sorted[Math.max(0, Math.ceil(p / 100 * sorted.length) - 1)];
|
|
400
|
+
}
|
|
401
|
+
function doraLabel(sorted) {
|
|
402
|
+
if (sorted.length === 0) return "unknown";
|
|
403
|
+
const med = percentile(sorted, 50);
|
|
404
|
+
if (med < 1) return "Elite";
|
|
405
|
+
if (med < 7) return "High";
|
|
406
|
+
if (med < 30) return "Medium";
|
|
407
|
+
return "Low";
|
|
408
|
+
}
|
|
409
|
+
function tpTrend(cur, prev) {
|
|
410
|
+
if (prev === 0) return cur > 0 ? "improving" : "stable";
|
|
411
|
+
const d = (cur - prev) / prev;
|
|
412
|
+
return d > 0.1 ? "improving" : d < -0.1 ? "declining" : "stable";
|
|
413
|
+
}
|
|
414
|
+
function ltTrend(cur, prev) {
|
|
415
|
+
if (prev === 0) return "stable";
|
|
416
|
+
const d = (cur - prev) / prev;
|
|
417
|
+
return d < -0.1 ? "improving" : d > 0.1 ? "declining" : "stable";
|
|
418
|
+
}
|
|
419
|
+
function computeDeliveryMetrics(db2, projectId, projectName, days) {
|
|
420
|
+
const w = `datetime('now', '-${days} days')`;
|
|
421
|
+
const pw = `datetime('now', '-${days * 2} days')`;
|
|
422
|
+
const completed = db2.prepare(
|
|
423
|
+
`SELECT julianday(completed_at) - julianday(created_at) AS lead_days
|
|
424
|
+
FROM tasks WHERE project_id = ? AND status = 'done' AND completed_at >= ${w}`
|
|
425
|
+
).all(projectId);
|
|
426
|
+
const prevCompleted = db2.prepare(
|
|
427
|
+
`SELECT julianday(completed_at) - julianday(created_at) AS lead_days
|
|
428
|
+
FROM tasks WHERE project_id = ? AND status = 'done'
|
|
429
|
+
AND completed_at >= ${pw} AND completed_at < ${w}`
|
|
430
|
+
).all(projectId);
|
|
431
|
+
const leadTimes = completed.map((r) => r.lead_days).sort((a, b) => a - b);
|
|
432
|
+
const prevLeadTimes = prevCompleted.map((r) => r.lead_days).sort((a, b) => a - b);
|
|
433
|
+
const completedCount = completed.length;
|
|
434
|
+
const prevCount = prevCompleted.length;
|
|
435
|
+
const events = db2.prepare(
|
|
436
|
+
`SELECT h.task_id, h.new_value, h.old_value, h.created_at
|
|
437
|
+
FROM task_history h JOIN tasks t ON h.task_id = t.id
|
|
438
|
+
WHERE t.project_id = ? AND h.event = 'status_changed' AND h.created_at >= ${w}
|
|
439
|
+
ORDER BY h.task_id, h.created_at ASC`
|
|
440
|
+
).all(projectId);
|
|
441
|
+
const touchedIds = new Set(events.map((e) => e.task_id));
|
|
442
|
+
const blockedIds = /* @__PURE__ */ new Set();
|
|
443
|
+
let totalBlockedDays = 0;
|
|
444
|
+
let blockedPairs = 0;
|
|
445
|
+
const byTask = /* @__PURE__ */ new Map();
|
|
446
|
+
for (const ev of events) {
|
|
447
|
+
if (!byTask.has(ev.task_id)) byTask.set(ev.task_id, []);
|
|
448
|
+
byTask.get(ev.task_id).push(ev);
|
|
449
|
+
}
|
|
450
|
+
for (const [tid, evs] of byTask) {
|
|
451
|
+
let blockedAt = null;
|
|
452
|
+
for (const ev of evs) {
|
|
453
|
+
if (ev.new_value === "blocked") {
|
|
454
|
+
blockedIds.add(tid);
|
|
455
|
+
blockedAt = new Date(ev.created_at).getTime();
|
|
456
|
+
} else if (blockedAt !== null && ev.old_value === "blocked") {
|
|
457
|
+
totalBlockedDays += (new Date(ev.created_at).getTime() - blockedAt) / 864e5;
|
|
458
|
+
blockedPairs++;
|
|
459
|
+
blockedAt = null;
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
const currentlyBlocked = db2.prepare(
|
|
464
|
+
`SELECT COUNT(*) as n FROM tasks WHERE project_id = ? AND status = 'blocked'`
|
|
465
|
+
).get(projectId).n;
|
|
466
|
+
const perWeekAvg = Math.round(completedCount / (days / 7) * 10) / 10;
|
|
467
|
+
const median = leadTimes.length ? percentile(leadTimes, 50) : null;
|
|
468
|
+
const p90 = leadTimes.length ? percentile(leadTimes, 90) : null;
|
|
469
|
+
const prevMedian = prevLeadTimes.length ? percentile(prevLeadTimes, 50) : null;
|
|
470
|
+
const blockedRatePct = touchedIds.size > 0 ? Math.round(blockedIds.size / touchedIds.size * 100) : null;
|
|
471
|
+
const avgBlockedDays = blockedPairs > 0 ? Math.round(totalBlockedDays / blockedPairs * 10) / 10 : null;
|
|
472
|
+
const throughputTrend = tpTrend(completedCount, prevCount);
|
|
473
|
+
const leadTrendVal = median !== null && prevMedian !== null ? ltTrend(median, prevMedian) : "stable";
|
|
474
|
+
const insights = [];
|
|
475
|
+
if (completedCount === 0) {
|
|
476
|
+
insights.push(`No tasks completed in the last ${days} days.`);
|
|
477
|
+
} else {
|
|
478
|
+
if (throughputTrend === "improving") insights.push(`Throughput up vs prior ${days}-day period (${completedCount} vs ${prevCount} tasks).`);
|
|
479
|
+
if (throughputTrend === "declining") insights.push(`Throughput down vs prior ${days}-day period (${completedCount} vs ${prevCount} tasks).`);
|
|
480
|
+
if (leadTrendVal === "declining" && median !== null) insights.push(`Lead time worsened \u2014 median now ${median.toFixed(1)} days (was ${prevMedian.toFixed(1)}).`);
|
|
481
|
+
if (leadTrendVal === "improving" && median !== null) insights.push(`Lead time improved \u2014 median now ${median.toFixed(1)} days (was ${prevMedian.toFixed(1)}).`);
|
|
482
|
+
}
|
|
483
|
+
if (currentlyBlocked > 0) insights.push(`${currentlyBlocked} task${currentlyBlocked > 1 ? "s" : ""} currently blocked.`);
|
|
484
|
+
return {
|
|
485
|
+
project: projectName,
|
|
486
|
+
period: `last ${days} days`,
|
|
487
|
+
throughput: { tasks_completed: completedCount, per_week_avg: perWeekAvg, trend: throughputTrend },
|
|
488
|
+
lead_time: median !== null ? { median_days: Math.round(median * 10) / 10, p90_days: Math.round((p90 ?? 0) * 10) / 10, trend: leadTrendVal } : { note: "No completed tasks in this period." },
|
|
489
|
+
flow_efficiency: { blocked_rate_pct: blockedRatePct, avg_blocked_days: avgBlockedDays, currently_blocked: currentlyBlocked },
|
|
490
|
+
dora_tier: doraLabel(leadTimes),
|
|
491
|
+
insights
|
|
492
|
+
};
|
|
493
|
+
}
|
|
494
|
+
|
|
396
495
|
// src/server/routes.ts
|
|
397
496
|
var listProjects = async (_req, res) => {
|
|
398
497
|
const db2 = getDb();
|
|
@@ -591,6 +690,18 @@ var getTaskHistory = async (_req, res, params) => {
|
|
|
591
690
|
).all(params.id);
|
|
592
691
|
sendJson(res, 200, rows);
|
|
593
692
|
};
|
|
693
|
+
var getMetrics = async (req, res, params) => {
|
|
694
|
+
const db2 = getDb();
|
|
695
|
+
const project = db2.prepare("SELECT id, name FROM projects WHERE id = ?").get(params.pid);
|
|
696
|
+
if (!project) {
|
|
697
|
+
sendJson(res, 404, { error: "Project not found" });
|
|
698
|
+
return;
|
|
699
|
+
}
|
|
700
|
+
const url = new URL(req.url || "/", "http://localhost");
|
|
701
|
+
const days = Math.min(365, Math.max(1, parseInt(url.searchParams.get("days") || "30", 10)));
|
|
702
|
+
const metrics = computeDeliveryMetrics(db2, project.id, project.name, days);
|
|
703
|
+
sendJson(res, 200, metrics);
|
|
704
|
+
};
|
|
594
705
|
var createSession = async (req, res, params) => {
|
|
595
706
|
const db2 = getDb();
|
|
596
707
|
const body = await parseBody(req);
|
|
@@ -627,6 +738,7 @@ var routes = [
|
|
|
627
738
|
{ method: "POST", pattern: "/api/projects/:pid/sessions", handler: createSession },
|
|
628
739
|
{ method: "GET", pattern: "/api/projects/:pid/notes", handler: listNotes },
|
|
629
740
|
{ method: "GET", pattern: "/api/projects/:pid/decisions", handler: listDecisions },
|
|
741
|
+
{ method: "GET", pattern: "/api/projects/:pid/metrics", handler: getMetrics },
|
|
630
742
|
{ method: "GET", pattern: "/api/projects/:pid/tasks", handler: listTasks },
|
|
631
743
|
{ method: "POST", pattern: "/api/projects/:pid/tasks", handler: createTask },
|
|
632
744
|
{ method: "PATCH", pattern: "/api/tasks/:id", handler: updateTask },
|
|
@@ -1094,6 +1206,9 @@ function registerTaskTools(server2) {
|
|
|
1094
1206
|
}
|
|
1095
1207
|
params.push(task_id);
|
|
1096
1208
|
db2.prepare(`UPDATE tasks SET ${updates.join(", ")} WHERE id = ?`).run(...params);
|
|
1209
|
+
if (status !== void 0 && status !== existing.status) {
|
|
1210
|
+
recordTaskHistory(task_id, "status_changed", existing.status, status);
|
|
1211
|
+
}
|
|
1097
1212
|
return {
|
|
1098
1213
|
content: [{ type: "text", text: JSON.stringify({ task_id, message: `Task "${existing.title}" updated.` }) }]
|
|
1099
1214
|
};
|
|
@@ -1691,6 +1806,34 @@ ${resultText}` : resultText
|
|
|
1691
1806
|
);
|
|
1692
1807
|
}
|
|
1693
1808
|
|
|
1809
|
+
// src/tools/delivery-metrics.ts
|
|
1810
|
+
import { z as z7 } from "zod/v4";
|
|
1811
|
+
function registerDeliveryMetricsTools(server2) {
|
|
1812
|
+
server2.registerTool(
|
|
1813
|
+
"get_delivery_metrics",
|
|
1814
|
+
{
|
|
1815
|
+
title: "Get Delivery Metrics",
|
|
1816
|
+
description: "DORA-inspired delivery metrics for a project: throughput, lead time, flow efficiency, and performance tier. Use to understand delivery health and trends.",
|
|
1817
|
+
inputSchema: {
|
|
1818
|
+
project: z7.string().optional().describe("Project name or ID (defaults to most recent active project)"),
|
|
1819
|
+
days: z7.number().int().min(1).max(365).optional().describe("Time window in days (default: 30)")
|
|
1820
|
+
}
|
|
1821
|
+
},
|
|
1822
|
+
async ({ project, days = 30 }) => {
|
|
1823
|
+
const resolved = resolveProjectOrDefault(project);
|
|
1824
|
+
if (!resolved) {
|
|
1825
|
+
return {
|
|
1826
|
+
content: [{ type: "text", text: project ? `Project "${project}" not found.` : "No active projects found." }],
|
|
1827
|
+
isError: true
|
|
1828
|
+
};
|
|
1829
|
+
}
|
|
1830
|
+
const db2 = getDb();
|
|
1831
|
+
const result = computeDeliveryMetrics(db2, resolved.id, resolved.name, days);
|
|
1832
|
+
return { content: [{ type: "text", text: JSON.stringify(result) }] };
|
|
1833
|
+
}
|
|
1834
|
+
);
|
|
1835
|
+
}
|
|
1836
|
+
|
|
1694
1837
|
// src/index.ts
|
|
1695
1838
|
import { createRequire } from "module";
|
|
1696
1839
|
var require2 = createRequire(import.meta.url);
|
|
@@ -1713,6 +1856,7 @@ registerNoteTools(server);
|
|
|
1713
1856
|
registerSessionTools(server);
|
|
1714
1857
|
registerQueryTools(server);
|
|
1715
1858
|
registerMetaTools(server);
|
|
1859
|
+
registerDeliveryMetricsTools(server);
|
|
1716
1860
|
var httpServer;
|
|
1717
1861
|
async function main() {
|
|
1718
1862
|
ensureDbDirectory();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.toolbar.svelte-1kanzy0{display:flex;align-items:center;padding:7px 14px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;min-height:37px}.project-area.svelte-1kanzy0{display:flex;align-items:center;gap:8px}.project-name.svelte-1kanzy0{font-size:.82rem;font-weight:700;color:var(--text)}.project-slug.svelte-1kanzy0{font-size:.7rem;color:var(--text-muted)}.rename-btn.svelte-1kanzy0{background:none;border:1px solid var(--border);color:var(--text-muted);border-radius:var(--radius-sm);padding:1px 6px;font-size:.8rem;line-height:1.5}.rename-btn.svelte-1kanzy0:hover{border-color:var(--primary);color:var(--primary)}.rename-input.svelte-1kanzy0{padding:3px 8px;border-radius:var(--radius-sm);border:1px solid var(--primary);background:var(--surface-2);color:var(--text);width:180px;outline:none;box-shadow:0 0 0 2px var(--primary-dim)}.sidebar.svelte-rig7vt{width:200px;min-width:200px;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;transition:width .2s,min-width .2s;overflow:hidden}.sidebar.collapsed.svelte-rig7vt{width:90px;min-width:90px}.sidebar-header.svelte-rig7vt{display:flex;align-items:center;justify-content:space-between;padding:10px 8px;border-bottom:1px solid var(--border);flex-shrink:0;gap:8px}.brand.svelte-rig7vt{font-size:.85rem;font-weight:700;color:var(--primary);white-space:nowrap;overflow:hidden}.prompt.svelte-rig7vt{color:var(--text-dim)}.collapse-btn.svelte-rig7vt{background:none;border:1px solid var(--border);color:var(--text-muted);border-radius:var(--radius-sm);font-size:.7rem;padding:2px 6px;flex-shrink:0;line-height:1.4}.collapse-btn.svelte-rig7vt:hover{border-color:var(--primary);color:var(--primary)}.project-list.svelte-rig7vt{flex:1;overflow-y:auto;padding:6px 0}.project-item.svelte-rig7vt{display:flex;align-items:center;gap:8px;width:100%;padding:6px 10px 6px 12px;background:none;border:none;border-left:2px solid transparent;color:var(--text-dim);font-size:.75rem;text-align:left;cursor:pointer;transition:background .1s,color .1s,border-color .1s;white-space:nowrap;overflow:hidden}.project-item.svelte-rig7vt:hover{background:var(--surface-2);color:var(--text)}.project-item.active.svelte-rig7vt{border-left-color:var(--primary);color:var(--primary);background:var(--primary-dim)}.status-dot.svelte-rig7vt{width:6px;height:6px;border-radius:50%;flex-shrink:0}.project-name.svelte-rig7vt{flex:1;overflow:hidden;text-overflow:ellipsis}.task-count.svelte-rig7vt{font-size:.62rem;color:var(--text-muted);background:var(--surface-2);border:1px solid var(--border);border-radius:2px;padding:0 4px;flex-shrink:0;line-height:1.6}.project-item.active.svelte-rig7vt .task-count:where(.svelte-rig7vt){border-color:var(--primary);color:var(--primary);background:none}.project-slug-collapsed.svelte-rig7vt{font-size:.65rem;color:var(--text-muted);line-height:1;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.project-item.active.svelte-rig7vt .project-slug-collapsed:where(.svelte-rig7vt){color:var(--primary)}.sidebar-footer.svelte-rig7vt{padding:8px 12px;border-top:1px solid var(--border);flex-shrink:0}.footer-hint.svelte-rig7vt{font-size:.62rem;color:var(--text-muted)}.card.svelte-35ep21{background:var(--surface);border:1px solid var(--border);border-left-width:3px;border-radius:var(--radius);padding:8px 10px;cursor:grab;transition:border-color .15s,background .15s;position:relative}.card.priority-critical.svelte-35ep21{border-left-color:var(--priority-critical)}.card.priority-high.svelte-35ep21{border-left-color:var(--priority-high)}.card.priority-medium.svelte-35ep21{border-left-color:var(--priority-medium)}.card.priority-low.svelte-35ep21{border-left-color:var(--border-bright)}.card.svelte-35ep21:hover{background:var(--surface-2);border-color:var(--border-bright);border-left-color:inherit}.card.dragging.svelte-35ep21{opacity:.4}.card-header.svelte-35ep21{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}.card-header-right.svelte-35ep21{display:flex;align-items:center;gap:6px}.task-id.svelte-35ep21{font-size:.65rem;color:var(--text-muted)}.priority-badge.svelte-35ep21{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted)}.priority-badge.priority-critical.svelte-35ep21{color:var(--priority-critical)}.priority-badge.priority-high.svelte-35ep21{color:var(--priority-high)}.priority-badge.priority-medium.svelte-35ep21{color:var(--priority-medium)}.priority-badge.priority-low.svelte-35ep21{color:var(--text-muted)}.delete-btn.svelte-35ep21{background:none;border:none;color:var(--text-muted);font-size:1rem;line-height:1;padding:0 2px;opacity:0;transition:opacity .1s}.card.svelte-35ep21:hover .delete-btn:where(.svelte-35ep21){opacity:1}.delete-btn.svelte-35ep21:hover{color:var(--danger)}.card-title.svelte-35ep21{font-size:.8rem;font-weight:500;word-break:break-word;color:var(--text);line-height:1.4}.card-desc.svelte-35ep21{font-size:.72rem;color:var(--text-muted);margin-top:4px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.4}.card-tags.svelte-35ep21{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.tag.svelte-35ep21{font-size:.62rem;background:var(--bg);color:var(--text-muted);border:1px solid var(--border);padding:1px 5px;border-radius:2px}.card-footer.svelte-35ep21{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}.badge.svelte-35ep21{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:1px 5px;border-radius:2px;border:1px solid}.badge-blocked.svelte-35ep21{color:var(--priority-critical);border-color:var(--priority-critical);background:color-mix(in srgb,var(--priority-critical) 10%,transparent)}.badge-subtasks.svelte-35ep21{color:var(--text-muted);border-color:var(--border-bright);background:none}.column.svelte-zswfgn{background:var(--column-bg);border:1px solid var(--border);border-radius:var(--radius);width:270px;min-width:270px;max-height:calc(100vh - 60px);display:flex;flex-direction:column;transition:border-color .15s,width .2s,min-width .2s;flex-shrink:0}.column.collapsed.svelte-zswfgn{width:40px;min-width:40px}.column.drag-over.svelte-zswfgn{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary-dim)}.column.wip-warning.svelte-zswfgn{border-color:var(--priority-high)}.column-collapsed.svelte-zswfgn{display:flex;flex-direction:column;align-items:center;padding:8px 0 12px;gap:10px;flex:1;overflow:hidden}.expand-btn.svelte-zswfgn{background:none;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);font-size:.65rem;padding:2px 5px;line-height:1.4}.expand-btn.svelte-zswfgn:hover{border-color:var(--primary);color:var(--primary)}.collapsed-label.svelte-zswfgn{display:flex;flex-direction:column;align-items:center;gap:6px;writing-mode:vertical-rl;transform:rotate(180deg);flex:1;justify-content:center}.collapsed-count.svelte-zswfgn{font-size:.6rem;color:var(--text-muted);font-weight:700}.collapsed-count.wip.svelte-zswfgn{color:var(--priority-high)}.collapsed-text.svelte-zswfgn{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);white-space:nowrap}.column-header.svelte-zswfgn{padding:8px 8px 8px 10px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;border-bottom:1px solid var(--border);gap:6px}.column-header.svelte-zswfgn h3:where(.svelte-zswfgn){font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--text-dim);white-space:nowrap;overflow:hidden}.chevron.svelte-zswfgn{color:var(--primary);margin-right:4px}.count.svelte-zswfgn{font-weight:400;color:var(--text-muted);margin-left:4px;font-size:.68rem}.count.wip.svelte-zswfgn{color:var(--priority-high);font-weight:700}.header-actions.svelte-zswfgn{display:flex;align-items:center;gap:4px;flex-shrink:0}.add-btn.svelte-zswfgn,.collapse-btn.svelte-zswfgn{background:none;border:1px solid var(--border);border-radius:var(--radius-sm);width:22px;height:22px;font-size:.75rem;color:var(--text-muted);display:flex;align-items:center;justify-content:center;line-height:1}.add-btn.svelte-zswfgn:hover,.collapse-btn.svelte-zswfgn:hover{border-color:var(--primary);color:var(--primary)}.wip-banner.svelte-zswfgn{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--priority-high);background:color-mix(in srgb,var(--priority-high) 10%,transparent);border-bottom:1px solid color-mix(in srgb,var(--priority-high) 25%,transparent);padding:3px 10px;flex-shrink:0}.card-list.svelte-zswfgn{padding:6px;display:flex;flex-direction:column;gap:6px;overflow-y:auto;flex:1}.modal-backdrop.svelte-1gmf2hi{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:100}.modal.svelte-1gmf2hi{background:var(--surface);border:1px solid var(--border-bright);border-radius:var(--radius);width:520px;max-width:95vw;max-height:90vh;overflow-y:auto;padding:20px}.modal-title.svelte-1gmf2hi{display:flex;align-items:baseline;gap:10px}.modal-task-id.svelte-1gmf2hi{font-size:.7rem;color:var(--text-muted)}.modal-header.svelte-1gmf2hi{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;padding-bottom:12px;border-bottom:1px solid var(--border)}.modal-header.svelte-1gmf2hi h2:where(.svelte-1gmf2hi){font-size:.9rem;font-weight:700;color:var(--primary);text-transform:uppercase;letter-spacing:1px}.close-btn.svelte-1gmf2hi{background:none;border:none;font-size:1.2rem;color:var(--text-muted);padding:0 4px;line-height:1}.close-btn.svelte-1gmf2hi:hover{color:var(--danger)}.field.svelte-1gmf2hi{margin-bottom:14px;flex:1}label.svelte-1gmf2hi{display:block;font-size:.68rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.8px;margin-bottom:4px}.hint.svelte-1gmf2hi{font-weight:400;text-transform:none;letter-spacing:0}input.svelte-1gmf2hi,textarea.svelte-1gmf2hi,select.svelte-1gmf2hi{width:100%;padding:7px 9px;border:1px solid var(--border-bright);border-radius:var(--radius-sm);background:var(--bg);color:var(--text)}input.svelte-1gmf2hi:focus,textarea.svelte-1gmf2hi:focus,select.svelte-1gmf2hi:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-dim)}textarea.svelte-1gmf2hi{resize:vertical}.row.svelte-1gmf2hi{display:flex;gap:12px}.actions.svelte-1gmf2hi{display:flex;justify-content:flex-end;gap:8px;margin-top:18px;padding-top:14px;border-top:1px solid var(--border)}.btn-cancel.svelte-1gmf2hi,.btn-save.svelte-1gmf2hi{padding:6px 14px;border-radius:var(--radius-sm);font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.5px}.btn-cancel.svelte-1gmf2hi{background:none;border:1px solid var(--border-bright);color:var(--text-muted)}.btn-cancel.svelte-1gmf2hi:hover{border-color:var(--text-muted);color:var(--text)}.btn-save.svelte-1gmf2hi{background:var(--primary);border:1px solid var(--primary);color:#0d0d0d;font-weight:700}.btn-save.svelte-1gmf2hi:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.blocked-section.svelte-1gmf2hi{margin-top:18px;border-top:1px solid var(--border);padding-top:14px}.section-heading.svelte-1gmf2hi{font-size:.65rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:8px}.blocked-list.svelte-1gmf2hi{display:flex;flex-direction:column;gap:4px}.blocked-item.svelte-1gmf2hi{display:flex;align-items:center;gap:8px;padding:5px 8px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm)}.blocker-id.svelte-1gmf2hi{font-size:.62rem;color:var(--text-muted);flex-shrink:0}.blocker-title.svelte-1gmf2hi{font-size:.78rem;color:var(--text);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.blocker-status.svelte-1gmf2hi{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:1px 5px;border-radius:2px;border:1px solid;flex-shrink:0}.blocker-status-todo.svelte-1gmf2hi{color:var(--text-muted);border-color:var(--border-bright)}.blocker-status-in_progress.svelte-1gmf2hi{color:var(--primary);border-color:var(--primary)}.blocker-status-blocked.svelte-1gmf2hi{color:var(--priority-critical);border-color:var(--priority-critical)}.blocker-status-in_review.svelte-1gmf2hi{color:var(--priority-medium, #ff9800);border-color:currentColor}.blocker-status-done.svelte-1gmf2hi{color:var(--priority-low, #4caf50);border-color:currentColor}.blocker-status-cancelled.svelte-1gmf2hi{color:var(--text-muted);border-color:var(--border)}.history-section.svelte-1gmf2hi{margin-top:18px;border-top:1px solid var(--border);padding-top:14px}.history-heading.svelte-1gmf2hi{font-size:.65rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:10px}.history-list.svelte-1gmf2hi{display:flex;flex-direction:column;gap:0;max-height:180px;overflow-y:auto}.history-item.svelte-1gmf2hi{display:flex;align-items:flex-start;gap:10px;padding:4px 0;position:relative}.history-item.svelte-1gmf2hi:not(:last-child):before{content:"";position:absolute;left:4px;top:14px;bottom:-4px;width:1px;background:var(--border)}.history-dot.svelte-1gmf2hi{width:9px;height:9px;border-radius:50%;background:var(--border-bright);border:1px solid var(--surface);flex-shrink:0;margin-top:3px}.history-item.svelte-1gmf2hi:first-child .history-dot:where(.svelte-1gmf2hi){background:var(--primary)}.history-body.svelte-1gmf2hi{display:flex;flex-direction:column;gap:1px;flex:1}.history-event.svelte-1gmf2hi{font-size:.72rem;color:var(--text-dim);line-height:1.4}.history-event.svelte-1gmf2hi b{color:var(--text);font-weight:600}.history-time.svelte-1gmf2hi{font-size:.62rem;color:var(--text-muted)}.modal-backdrop.svelte-1efofyg{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:200}.dialog.svelte-1efofyg{background:var(--surface);border:1px solid var(--border-bright);border-top:3px solid var(--danger);border-radius:var(--radius);padding:20px;width:340px;max-width:90vw}h3.svelte-1efofyg{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--danger);margin-bottom:10px}p.svelte-1efofyg{color:var(--text-dim);font-size:.78rem;margin-bottom:18px;line-height:1.5}.actions.svelte-1efofyg{display:flex;justify-content:flex-end;gap:8px}.btn-cancel.svelte-1efofyg,.btn-confirm.svelte-1efofyg{padding:5px 14px;border-radius:var(--radius-sm);font-weight:700;font-size:.72rem;text-transform:uppercase;letter-spacing:.5px}.btn-cancel.svelte-1efofyg{background:none;border:1px solid var(--border-bright);color:var(--text-muted)}.btn-cancel.svelte-1efofyg:hover{color:var(--text);border-color:var(--text-muted)}.btn-confirm.svelte-1efofyg{background:var(--danger);border:1px solid var(--danger);color:#fff}.btn-confirm.svelte-1efofyg:hover{background:var(--danger-hover);border-color:var(--danger-hover)}.filter-bar.svelte-dhotvj{display:flex;align-items:center;gap:16px;padding:6px 16px;background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;flex-shrink:0}.filter-search.svelte-dhotvj{position:relative;display:flex;align-items:center}.search-icon.svelte-dhotvj{position:absolute;left:8px;color:var(--primary);font-weight:700;font-size:.85rem;pointer-events:none}.filter-search.svelte-dhotvj input:where(.svelte-dhotvj){background:var(--bg);border:1px solid var(--border-bright);border-radius:var(--radius-sm);color:var(--text);padding:4px 26px 4px 22px;width:180px;font-size:.75rem}.filter-search.svelte-dhotvj input:where(.svelte-dhotvj):focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-dim)}.filter-search.svelte-dhotvj input:where(.svelte-dhotvj)::placeholder{color:var(--text-muted)}.clear-input.svelte-dhotvj{position:absolute;right:6px;background:none;border:none;color:var(--text-muted);font-size:.9rem;line-height:1;padding:0}.clear-input.svelte-dhotvj:hover{color:var(--text)}.filter-section.svelte-dhotvj{display:flex;align-items:center;gap:6px}.filter-label.svelte-dhotvj{font-size:.65rem;color:var(--text-muted);white-space:nowrap}.chip-group.svelte-dhotvj{display:flex;gap:4px;flex-wrap:wrap}.chip.svelte-dhotvj{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:2px 7px;border-radius:2px;border:1px solid var(--border-bright);background:none;color:var(--text-muted);transition:border-color .1s,color .1s,background .1s}.chip.svelte-dhotvj:hover{border-color:var(--chip-color, var(--text-dim));color:var(--chip-color, var(--text))}.chip.active.svelte-dhotvj{border-color:var(--chip-color, var(--primary));color:var(--chip-color, var(--primary));background:color-mix(in srgb,var(--chip-color, var(--primary)) 12%,transparent)}.tag-dropdown-wrapper.svelte-dhotvj{position:relative}.dropdown-trigger.svelte-dhotvj{font-size:.62rem;font-weight:700;padding:2px 8px;border-radius:2px;border:1px solid var(--border-bright);background:none;color:var(--text-muted);transition:border-color .1s,color .1s;letter-spacing:.5px}.dropdown-trigger.svelte-dhotvj:hover{border-color:var(--primary);color:var(--primary)}.dropdown-trigger.active.svelte-dhotvj{border-color:var(--primary);color:var(--primary);background:var(--primary-dim)}.tag-dropdown.svelte-dhotvj{position:absolute;top:calc(100% + 4px);left:0;background:var(--surface);border:1px solid var(--border-bright);border-radius:var(--radius);min-width:140px;z-index:50;overflow:hidden}.tag-option.svelte-dhotvj{display:flex;align-items:center;gap:8px;width:100%;padding:6px 10px;background:none;border:none;color:var(--text-dim);font-size:.72rem;text-align:left;transition:background .1s,color .1s}.tag-option.svelte-dhotvj:hover{background:var(--surface-2);color:var(--text)}.tag-option.selected.svelte-dhotvj{color:var(--primary)}.tag-checkbox.svelte-dhotvj{font-size:.65rem;color:var(--primary);width:10px;text-align:center;flex-shrink:0}.tag-option.svelte-dhotvj:not(.selected) .tag-checkbox:where(.svelte-dhotvj){color:var(--border-bright)}.tag-name.svelte-dhotvj{flex:1}.tag-clear.svelte-dhotvj{display:block;width:100%;padding:5px 10px;background:none;border:none;border-top:1px solid var(--border);color:var(--danger);font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;text-align:left;transition:background .1s}.tag-clear.svelte-dhotvj:hover{background:var(--surface-2)}.clear-all.svelte-dhotvj{background:none;border:none;color:var(--danger);font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:2px 0;margin-left:auto}.clear-all.svelte-dhotvj:hover{color:var(--danger-hover)}.shortcuts-hint.svelte-dhotvj{display:flex;gap:10px;margin-left:auto}.shortcuts-hint.svelte-dhotvj span:where(.svelte-dhotvj){font-size:.6rem;color:var(--text-muted);display:flex;align-items:center;gap:3px}kbd.svelte-dhotvj{font-family:var(--font-mono);font-size:.58rem;background:var(--surface-2);border:1px solid var(--border-bright);border-radius:2px;padding:1px 4px;color:var(--text-dim)}.board-wrapper.svelte-x7v2jt{flex:1;overflow-x:auto;overflow-y:hidden;padding:12px;min-height:0}.board.svelte-x7v2jt{display:flex;gap:10px;align-items:flex-start;height:100%}.board-message.svelte-x7v2jt{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:200px;color:var(--text-muted);font-size:1rem}.board-message.error.svelte-x7v2jt{color:var(--danger)}.board-message.svelte-x7v2jt button:where(.svelte-x7v2jt){padding:5px 14px;background:none;color:var(--primary);border:1px solid var(--primary);border-radius:var(--radius-sm);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.5px}.board-message.svelte-x7v2jt button:where(.svelte-x7v2jt):hover{background:var(--primary-dim)}.view.svelte-mwtig8{flex:1;overflow-y:auto;padding:16px 20px}.state-msg.svelte-mwtig8{color:var(--text-dim);font-size:.8rem;padding:40px 0;text-align:center}.state-msg.err.svelte-mwtig8{color:var(--danger)}.state-msg.muted.svelte-mwtig8{color:var(--text-muted)}.prompt.svelte-mwtig8{color:var(--primary)}.list.svelte-mwtig8{display:flex;flex-direction:column;gap:8px;max-width:760px}.card.svelte-mwtig8{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;display:flex;flex-direction:column;gap:6px}.card-header.svelte-mwtig8{display:flex;align-items:center;justify-content:space-between}.category.svelte-mwtig8{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.8px}.date.svelte-mwtig8{font-size:.62rem;color:var(--text-muted)}.content.svelte-mwtig8{font-size:.78rem;color:var(--text);line-height:1.55;white-space:pre-wrap}.card-footer.svelte-mwtig8{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:2px}.tags.svelte-mwtig8{display:flex;flex-wrap:wrap;gap:4px}.tag.svelte-mwtig8{font-size:.62rem;color:var(--text-muted);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:1px 6px}.task-link.svelte-mwtig8{font-size:.68rem;color:var(--primary);cursor:pointer;border:1px solid var(--primary-dim);border-radius:var(--radius-sm);padding:1px 7px;background:var(--primary-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:300px}.task-link.svelte-mwtig8:hover{background:#39d35340}.view.svelte-1nwykvu{flex:1;overflow-y:auto;padding:16px 20px}.state-msg.svelte-1nwykvu{color:var(--text-dim);font-size:.8rem;padding:40px 0;text-align:center}.state-msg.err.svelte-1nwykvu{color:var(--danger)}.state-msg.muted.svelte-1nwykvu{color:var(--text-muted)}.prompt.svelte-1nwykvu{color:var(--primary)}.list.svelte-1nwykvu{display:flex;flex-direction:column;gap:8px;max-width:760px}.card.svelte-1nwykvu{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--border-bright);border-radius:var(--radius);padding:12px 14px;display:flex;flex-direction:column;gap:5px}.card-header.svelte-1nwykvu{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.title.svelte-1nwykvu{font-size:.82rem;font-weight:700;color:var(--text)}.date.svelte-1nwykvu{font-size:.62rem;color:var(--text-muted);flex-shrink:0}.decision-text.svelte-1nwykvu{font-size:.78rem;color:var(--text-dim);line-height:1.5}.reasoning.svelte-1nwykvu{font-size:.72rem;color:var(--text-muted);font-style:italic;line-height:1.4}.alts.svelte-1nwykvu{font-size:.68rem;color:var(--text-muted)}.card-footer.svelte-1nwykvu{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:2px}.tags.svelte-1nwykvu{display:flex;flex-wrap:wrap;gap:4px}.tag.svelte-1nwykvu{font-size:.62rem;color:var(--text-muted);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:1px 6px}.task-link.svelte-1nwykvu{font-size:.68rem;color:var(--primary);cursor:pointer;border:1px solid var(--primary-dim);border-radius:var(--radius-sm);padding:1px 7px;background:var(--primary-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:300px}.task-link.svelte-1nwykvu:hover{background:#39d35340}.palette-backdrop.svelte-1bm0yy4{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;display:flex;align-items:flex-start;justify-content:center;padding-top:15vh;z-index:300}.palette.svelte-1bm0yy4{background:var(--surface);border:1px solid var(--border-bright);border-radius:var(--radius);width:480px;max-width:95vw;overflow:hidden}.palette-input-row.svelte-1bm0yy4{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--border)}.palette-prompt.svelte-1bm0yy4{color:var(--primary);font-weight:700;font-size:.9rem;flex-shrink:0}.palette-input-row.svelte-1bm0yy4 input:where(.svelte-1bm0yy4){flex:1;background:none;border:none;color:var(--text);font-size:.85rem;outline:none}.palette-input-row.svelte-1bm0yy4 input:where(.svelte-1bm0yy4)::placeholder{color:var(--text-muted)}.palette-list.svelte-1bm0yy4{max-height:260px;overflow-y:auto}.palette-item.svelte-1bm0yy4{display:flex;justify-content:space-between;align-items:center;padding:8px 14px;cursor:pointer;gap:12px}.palette-item.active.svelte-1bm0yy4{background:var(--surface-2);border-left:2px solid var(--primary);padding-left:12px}.item-label.svelte-1bm0yy4{font-size:.8rem;color:var(--text)}.item-hint.svelte-1bm0yy4{font-size:.68rem;color:var(--text-muted);white-space:nowrap}.palette-empty.svelte-1bm0yy4{padding:16px 14px;font-size:.75rem;color:var(--text-muted)}.palette-footer.svelte-1bm0yy4{display:flex;gap:16px;padding:6px 14px;border-top:1px solid var(--border);background:var(--bg)}.palette-footer.svelte-1bm0yy4 span:where(.svelte-1bm0yy4){font-size:.62rem;color:var(--text-muted);display:flex;align-items:center;gap:4px}kbd.svelte-1bm0yy4{font-family:var(--font-mono);font-size:.6rem;background:var(--surface-2);border:1px solid var(--border-bright);border-radius:2px;padding:1px 4px;color:var(--text-dim)}.app-layout.svelte-1n46o8q{display:flex;flex:1;overflow:hidden;min-height:0}.main.svelte-1n46o8q{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.tabs.svelte-1n46o8q{display:flex;gap:0;border-bottom:1px solid var(--border);padding:0 16px;flex-shrink:0}.tab.svelte-1n46o8q{background:none;border:none;border-bottom:2px solid transparent;color:var(--text-muted);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.8px;padding:8px 14px;margin-bottom:-1px;transition:color .1s,border-color .1s}.tab.svelte-1n46o8q:hover{color:var(--text-dim)}.tab.active.svelte-1n46o8q{color:var(--primary);border-bottom-color:var(--primary)}.loading.svelte-1n46o8q,.error.svelte-1n46o8q,.empty.svelte-1n46o8q{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:8px;font-size:.85rem}.prompt.svelte-1n46o8q{color:var(--primary)}.loading.svelte-1n46o8q{color:var(--text-dim)}.error.svelte-1n46o8q{color:var(--danger)}.err-prefix.svelte-1n46o8q{margin-right:6px}.empty-prompt.svelte-1n46o8q{color:var(--text)}.empty-hint.svelte-1n46o8q{color:var(--text-muted);font-size:.75rem}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0d0d0d;--surface: #141414;--surface-2: #1a1a1a;--border: #252525;--border-bright: #333333;--text: #d4d4d4;--text-muted: #555555;--text-dim: #888888;--primary: #39d353;--primary-hover: #2fb844;--primary-dim: rgba(57, 211, 83, .15);--danger: #f85149;--danger-hover: #da3633;--priority-critical: #f85149;--priority-high: #d29922;--priority-medium: #39d353;--priority-low: #3d444d;--column-bg: #111111;--card-shadow: none;--card-shadow-hover: 0 0 0 1px var(--border-bright);--radius: 4px;--radius-sm: 3px;--font-mono: "JetBrains Mono", "Fira Code", "Cascadia Code", "Consolas", "Courier New", monospace}body{font-family:var(--font-mono);background:var(--bg);color:var(--text);line-height:1.5;min-height:100vh;font-size:13px}button{cursor:pointer;font-family:inherit;font-size:inherit}input,textarea,select{font-family:inherit;font-size:inherit}#app{height:100vh;display:flex;flex-direction:column;overflow:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border-bright);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#444}
|
|
1
|
+
.toolbar.svelte-1kanzy0{display:flex;align-items:center;padding:7px 14px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;min-height:37px}.project-area.svelte-1kanzy0{display:flex;align-items:center;gap:8px}.project-name.svelte-1kanzy0{font-size:.82rem;font-weight:700;color:var(--text)}.project-slug.svelte-1kanzy0{font-size:.7rem;color:var(--text-muted)}.rename-btn.svelte-1kanzy0{background:none;border:1px solid var(--border);color:var(--text-muted);border-radius:var(--radius-sm);padding:1px 6px;font-size:.8rem;line-height:1.5}.rename-btn.svelte-1kanzy0:hover{border-color:var(--primary);color:var(--primary)}.rename-input.svelte-1kanzy0{padding:3px 8px;border-radius:var(--radius-sm);border:1px solid var(--primary);background:var(--surface-2);color:var(--text);width:180px;outline:none;box-shadow:0 0 0 2px var(--primary-dim)}.sidebar.svelte-rig7vt{width:200px;min-width:200px;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;transition:width .2s,min-width .2s;overflow:hidden}.sidebar.collapsed.svelte-rig7vt{width:90px;min-width:90px}.sidebar-header.svelte-rig7vt{display:flex;align-items:center;justify-content:space-between;padding:10px 8px;border-bottom:1px solid var(--border);flex-shrink:0;gap:8px}.brand.svelte-rig7vt{font-size:.85rem;font-weight:700;color:var(--primary);white-space:nowrap;overflow:hidden}.prompt.svelte-rig7vt{color:var(--text-dim)}.collapse-btn.svelte-rig7vt{background:none;border:1px solid var(--border);color:var(--text-muted);border-radius:var(--radius-sm);font-size:.7rem;padding:2px 6px;flex-shrink:0;line-height:1.4}.collapse-btn.svelte-rig7vt:hover{border-color:var(--primary);color:var(--primary)}.project-list.svelte-rig7vt{flex:1;overflow-y:auto;padding:6px 0}.project-item.svelte-rig7vt{display:flex;align-items:center;gap:8px;width:100%;padding:6px 10px 6px 12px;background:none;border:none;border-left:2px solid transparent;color:var(--text-dim);font-size:.75rem;text-align:left;cursor:pointer;transition:background .1s,color .1s,border-color .1s;white-space:nowrap;overflow:hidden}.project-item.svelte-rig7vt:hover{background:var(--surface-2);color:var(--text)}.project-item.active.svelte-rig7vt{border-left-color:var(--primary);color:var(--primary);background:var(--primary-dim)}.status-dot.svelte-rig7vt{width:6px;height:6px;border-radius:50%;flex-shrink:0}.project-name.svelte-rig7vt{flex:1;overflow:hidden;text-overflow:ellipsis}.task-count.svelte-rig7vt{font-size:.62rem;color:var(--text-muted);background:var(--surface-2);border:1px solid var(--border);border-radius:2px;padding:0 4px;flex-shrink:0;line-height:1.6}.project-item.active.svelte-rig7vt .task-count:where(.svelte-rig7vt){border-color:var(--primary);color:var(--primary);background:none}.project-slug-collapsed.svelte-rig7vt{font-size:.65rem;color:var(--text-muted);line-height:1;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.project-item.active.svelte-rig7vt .project-slug-collapsed:where(.svelte-rig7vt){color:var(--primary)}.sidebar-footer.svelte-rig7vt{padding:8px 12px;border-top:1px solid var(--border);flex-shrink:0}.footer-hint.svelte-rig7vt{font-size:.62rem;color:var(--text-muted)}.card.svelte-35ep21{background:var(--surface);border:1px solid var(--border);border-left-width:3px;border-radius:var(--radius);padding:8px 10px;cursor:grab;transition:border-color .15s,background .15s;position:relative}.card.priority-critical.svelte-35ep21{border-left-color:var(--priority-critical)}.card.priority-high.svelte-35ep21{border-left-color:var(--priority-high)}.card.priority-medium.svelte-35ep21{border-left-color:var(--priority-medium)}.card.priority-low.svelte-35ep21{border-left-color:var(--border-bright)}.card.svelte-35ep21:hover{background:var(--surface-2);border-color:var(--border-bright);border-left-color:inherit}.card.dragging.svelte-35ep21{opacity:.4}.card-header.svelte-35ep21{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}.card-header-right.svelte-35ep21{display:flex;align-items:center;gap:6px}.task-id.svelte-35ep21{font-size:.65rem;color:var(--text-muted)}.priority-badge.svelte-35ep21{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted)}.priority-badge.priority-critical.svelte-35ep21{color:var(--priority-critical)}.priority-badge.priority-high.svelte-35ep21{color:var(--priority-high)}.priority-badge.priority-medium.svelte-35ep21{color:var(--priority-medium)}.priority-badge.priority-low.svelte-35ep21{color:var(--text-muted)}.delete-btn.svelte-35ep21{background:none;border:none;color:var(--text-muted);font-size:1rem;line-height:1;padding:0 2px;opacity:0;transition:opacity .1s}.card.svelte-35ep21:hover .delete-btn:where(.svelte-35ep21){opacity:1}.delete-btn.svelte-35ep21:hover{color:var(--danger)}.card-title.svelte-35ep21{font-size:.8rem;font-weight:500;word-break:break-word;color:var(--text);line-height:1.4}.card-desc.svelte-35ep21{font-size:.72rem;color:var(--text-muted);margin-top:4px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.4}.card-tags.svelte-35ep21{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.tag.svelte-35ep21{font-size:.62rem;background:var(--bg);color:var(--text-muted);border:1px solid var(--border);padding:1px 5px;border-radius:2px}.card-footer.svelte-35ep21{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}.badge.svelte-35ep21{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:1px 5px;border-radius:2px;border:1px solid}.badge-blocked.svelte-35ep21{color:var(--priority-critical);border-color:var(--priority-critical);background:color-mix(in srgb,var(--priority-critical) 10%,transparent)}.badge-subtasks.svelte-35ep21{color:var(--text-muted);border-color:var(--border-bright);background:none}.column.svelte-zswfgn{background:var(--column-bg);border:1px solid var(--border);border-radius:var(--radius);width:270px;min-width:270px;max-height:calc(100vh - 60px);display:flex;flex-direction:column;transition:border-color .15s,width .2s,min-width .2s;flex-shrink:0}.column.collapsed.svelte-zswfgn{width:40px;min-width:40px}.column.drag-over.svelte-zswfgn{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary-dim)}.column.wip-warning.svelte-zswfgn{border-color:var(--priority-high)}.column-collapsed.svelte-zswfgn{display:flex;flex-direction:column;align-items:center;padding:8px 0 12px;gap:10px;flex:1;overflow:hidden}.expand-btn.svelte-zswfgn{background:none;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);font-size:.65rem;padding:2px 5px;line-height:1.4}.expand-btn.svelte-zswfgn:hover{border-color:var(--primary);color:var(--primary)}.collapsed-label.svelte-zswfgn{display:flex;flex-direction:column;align-items:center;gap:6px;writing-mode:vertical-rl;transform:rotate(180deg);flex:1;justify-content:center}.collapsed-count.svelte-zswfgn{font-size:.6rem;color:var(--text-muted);font-weight:700}.collapsed-count.wip.svelte-zswfgn{color:var(--priority-high)}.collapsed-text.svelte-zswfgn{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);white-space:nowrap}.column-header.svelte-zswfgn{padding:8px 8px 8px 10px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;border-bottom:1px solid var(--border);gap:6px}.column-header.svelte-zswfgn h3:where(.svelte-zswfgn){font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--text-dim);white-space:nowrap;overflow:hidden}.chevron.svelte-zswfgn{color:var(--primary);margin-right:4px}.count.svelte-zswfgn{font-weight:400;color:var(--text-muted);margin-left:4px;font-size:.68rem}.count.wip.svelte-zswfgn{color:var(--priority-high);font-weight:700}.header-actions.svelte-zswfgn{display:flex;align-items:center;gap:4px;flex-shrink:0}.add-btn.svelte-zswfgn,.collapse-btn.svelte-zswfgn{background:none;border:1px solid var(--border);border-radius:var(--radius-sm);width:22px;height:22px;font-size:.75rem;color:var(--text-muted);display:flex;align-items:center;justify-content:center;line-height:1}.add-btn.svelte-zswfgn:hover,.collapse-btn.svelte-zswfgn:hover{border-color:var(--primary);color:var(--primary)}.wip-banner.svelte-zswfgn{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--priority-high);background:color-mix(in srgb,var(--priority-high) 10%,transparent);border-bottom:1px solid color-mix(in srgb,var(--priority-high) 25%,transparent);padding:3px 10px;flex-shrink:0}.card-list.svelte-zswfgn{padding:6px;display:flex;flex-direction:column;gap:6px;overflow-y:auto;flex:1}.modal-backdrop.svelte-1gmf2hi{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:100}.modal.svelte-1gmf2hi{background:var(--surface);border:1px solid var(--border-bright);border-radius:var(--radius);width:520px;max-width:95vw;max-height:90vh;overflow-y:auto;padding:20px}.modal-title.svelte-1gmf2hi{display:flex;align-items:baseline;gap:10px}.modal-task-id.svelte-1gmf2hi{font-size:.7rem;color:var(--text-muted)}.modal-header.svelte-1gmf2hi{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;padding-bottom:12px;border-bottom:1px solid var(--border)}.modal-header.svelte-1gmf2hi h2:where(.svelte-1gmf2hi){font-size:.9rem;font-weight:700;color:var(--primary);text-transform:uppercase;letter-spacing:1px}.close-btn.svelte-1gmf2hi{background:none;border:none;font-size:1.2rem;color:var(--text-muted);padding:0 4px;line-height:1}.close-btn.svelte-1gmf2hi:hover{color:var(--danger)}.field.svelte-1gmf2hi{margin-bottom:14px;flex:1}label.svelte-1gmf2hi{display:block;font-size:.68rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.8px;margin-bottom:4px}.hint.svelte-1gmf2hi{font-weight:400;text-transform:none;letter-spacing:0}input.svelte-1gmf2hi,textarea.svelte-1gmf2hi,select.svelte-1gmf2hi{width:100%;padding:7px 9px;border:1px solid var(--border-bright);border-radius:var(--radius-sm);background:var(--bg);color:var(--text)}input.svelte-1gmf2hi:focus,textarea.svelte-1gmf2hi:focus,select.svelte-1gmf2hi:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-dim)}textarea.svelte-1gmf2hi{resize:vertical}.row.svelte-1gmf2hi{display:flex;gap:12px}.actions.svelte-1gmf2hi{display:flex;justify-content:flex-end;gap:8px;margin-top:18px;padding-top:14px;border-top:1px solid var(--border)}.btn-cancel.svelte-1gmf2hi,.btn-save.svelte-1gmf2hi{padding:6px 14px;border-radius:var(--radius-sm);font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.5px}.btn-cancel.svelte-1gmf2hi{background:none;border:1px solid var(--border-bright);color:var(--text-muted)}.btn-cancel.svelte-1gmf2hi:hover{border-color:var(--text-muted);color:var(--text)}.btn-save.svelte-1gmf2hi{background:var(--primary);border:1px solid var(--primary);color:#0d0d0d;font-weight:700}.btn-save.svelte-1gmf2hi:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.blocked-section.svelte-1gmf2hi{margin-top:18px;border-top:1px solid var(--border);padding-top:14px}.section-heading.svelte-1gmf2hi{font-size:.65rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:8px}.blocked-list.svelte-1gmf2hi{display:flex;flex-direction:column;gap:4px}.blocked-item.svelte-1gmf2hi{display:flex;align-items:center;gap:8px;padding:5px 8px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm)}.blocker-id.svelte-1gmf2hi{font-size:.62rem;color:var(--text-muted);flex-shrink:0}.blocker-title.svelte-1gmf2hi{font-size:.78rem;color:var(--text);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.blocker-status.svelte-1gmf2hi{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:1px 5px;border-radius:2px;border:1px solid;flex-shrink:0}.blocker-status-todo.svelte-1gmf2hi{color:var(--text-muted);border-color:var(--border-bright)}.blocker-status-in_progress.svelte-1gmf2hi{color:var(--primary);border-color:var(--primary)}.blocker-status-blocked.svelte-1gmf2hi{color:var(--priority-critical);border-color:var(--priority-critical)}.blocker-status-in_review.svelte-1gmf2hi{color:var(--priority-medium, #ff9800);border-color:currentColor}.blocker-status-done.svelte-1gmf2hi{color:var(--priority-low, #4caf50);border-color:currentColor}.blocker-status-cancelled.svelte-1gmf2hi{color:var(--text-muted);border-color:var(--border)}.history-section.svelte-1gmf2hi{margin-top:18px;border-top:1px solid var(--border);padding-top:14px}.history-heading.svelte-1gmf2hi{font-size:.65rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:10px}.history-list.svelte-1gmf2hi{display:flex;flex-direction:column;gap:0;max-height:180px;overflow-y:auto}.history-item.svelte-1gmf2hi{display:flex;align-items:flex-start;gap:10px;padding:4px 0;position:relative}.history-item.svelte-1gmf2hi:not(:last-child):before{content:"";position:absolute;left:4px;top:14px;bottom:-4px;width:1px;background:var(--border)}.history-dot.svelte-1gmf2hi{width:9px;height:9px;border-radius:50%;background:var(--border-bright);border:1px solid var(--surface);flex-shrink:0;margin-top:3px}.history-item.svelte-1gmf2hi:first-child .history-dot:where(.svelte-1gmf2hi){background:var(--primary)}.history-body.svelte-1gmf2hi{display:flex;flex-direction:column;gap:1px;flex:1}.history-event.svelte-1gmf2hi{font-size:.72rem;color:var(--text-dim);line-height:1.4}.history-event.svelte-1gmf2hi b{color:var(--text);font-weight:600}.history-time.svelte-1gmf2hi{font-size:.62rem;color:var(--text-muted)}.modal-backdrop.svelte-1efofyg{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:200}.dialog.svelte-1efofyg{background:var(--surface);border:1px solid var(--border-bright);border-top:3px solid var(--danger);border-radius:var(--radius);padding:20px;width:340px;max-width:90vw}h3.svelte-1efofyg{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--danger);margin-bottom:10px}p.svelte-1efofyg{color:var(--text-dim);font-size:.78rem;margin-bottom:18px;line-height:1.5}.actions.svelte-1efofyg{display:flex;justify-content:flex-end;gap:8px}.btn-cancel.svelte-1efofyg,.btn-confirm.svelte-1efofyg{padding:5px 14px;border-radius:var(--radius-sm);font-weight:700;font-size:.72rem;text-transform:uppercase;letter-spacing:.5px}.btn-cancel.svelte-1efofyg{background:none;border:1px solid var(--border-bright);color:var(--text-muted)}.btn-cancel.svelte-1efofyg:hover{color:var(--text);border-color:var(--text-muted)}.btn-confirm.svelte-1efofyg{background:var(--danger);border:1px solid var(--danger);color:#fff}.btn-confirm.svelte-1efofyg:hover{background:var(--danger-hover);border-color:var(--danger-hover)}.filter-bar.svelte-dhotvj{display:flex;align-items:center;gap:16px;padding:6px 16px;background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;flex-shrink:0}.filter-search.svelte-dhotvj{position:relative;display:flex;align-items:center}.search-icon.svelte-dhotvj{position:absolute;left:8px;color:var(--primary);font-weight:700;font-size:.85rem;pointer-events:none}.filter-search.svelte-dhotvj input:where(.svelte-dhotvj){background:var(--bg);border:1px solid var(--border-bright);border-radius:var(--radius-sm);color:var(--text);padding:4px 26px 4px 22px;width:180px;font-size:.75rem}.filter-search.svelte-dhotvj input:where(.svelte-dhotvj):focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-dim)}.filter-search.svelte-dhotvj input:where(.svelte-dhotvj)::placeholder{color:var(--text-muted)}.clear-input.svelte-dhotvj{position:absolute;right:6px;background:none;border:none;color:var(--text-muted);font-size:.9rem;line-height:1;padding:0}.clear-input.svelte-dhotvj:hover{color:var(--text)}.filter-section.svelte-dhotvj{display:flex;align-items:center;gap:6px}.filter-label.svelte-dhotvj{font-size:.65rem;color:var(--text-muted);white-space:nowrap}.chip-group.svelte-dhotvj{display:flex;gap:4px;flex-wrap:wrap}.chip.svelte-dhotvj{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:2px 7px;border-radius:2px;border:1px solid var(--border-bright);background:none;color:var(--text-muted);transition:border-color .1s,color .1s,background .1s}.chip.svelte-dhotvj:hover{border-color:var(--chip-color, var(--text-dim));color:var(--chip-color, var(--text))}.chip.active.svelte-dhotvj{border-color:var(--chip-color, var(--primary));color:var(--chip-color, var(--primary));background:color-mix(in srgb,var(--chip-color, var(--primary)) 12%,transparent)}.tag-dropdown-wrapper.svelte-dhotvj{position:relative}.dropdown-trigger.svelte-dhotvj{font-size:.62rem;font-weight:700;padding:2px 8px;border-radius:2px;border:1px solid var(--border-bright);background:none;color:var(--text-muted);transition:border-color .1s,color .1s;letter-spacing:.5px}.dropdown-trigger.svelte-dhotvj:hover{border-color:var(--primary);color:var(--primary)}.dropdown-trigger.active.svelte-dhotvj{border-color:var(--primary);color:var(--primary);background:var(--primary-dim)}.tag-dropdown.svelte-dhotvj{position:absolute;top:calc(100% + 4px);left:0;background:var(--surface);border:1px solid var(--border-bright);border-radius:var(--radius);min-width:140px;z-index:50;overflow:hidden}.tag-option.svelte-dhotvj{display:flex;align-items:center;gap:8px;width:100%;padding:6px 10px;background:none;border:none;color:var(--text-dim);font-size:.72rem;text-align:left;transition:background .1s,color .1s}.tag-option.svelte-dhotvj:hover{background:var(--surface-2);color:var(--text)}.tag-option.selected.svelte-dhotvj{color:var(--primary)}.tag-checkbox.svelte-dhotvj{font-size:.65rem;color:var(--primary);width:10px;text-align:center;flex-shrink:0}.tag-option.svelte-dhotvj:not(.selected) .tag-checkbox:where(.svelte-dhotvj){color:var(--border-bright)}.tag-name.svelte-dhotvj{flex:1}.tag-clear.svelte-dhotvj{display:block;width:100%;padding:5px 10px;background:none;border:none;border-top:1px solid var(--border);color:var(--danger);font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;text-align:left;transition:background .1s}.tag-clear.svelte-dhotvj:hover{background:var(--surface-2)}.clear-all.svelte-dhotvj{background:none;border:none;color:var(--danger);font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:2px 0;margin-left:auto}.clear-all.svelte-dhotvj:hover{color:var(--danger-hover)}.shortcuts-hint.svelte-dhotvj{display:flex;gap:10px;margin-left:auto}.shortcuts-hint.svelte-dhotvj span:where(.svelte-dhotvj){font-size:.6rem;color:var(--text-muted);display:flex;align-items:center;gap:3px}kbd.svelte-dhotvj{font-family:var(--font-mono);font-size:.58rem;background:var(--surface-2);border:1px solid var(--border-bright);border-radius:2px;padding:1px 4px;color:var(--text-dim)}.board-wrapper.svelte-x7v2jt{flex:1;overflow-x:auto;overflow-y:hidden;padding:12px;min-height:0}.board.svelte-x7v2jt{display:flex;gap:10px;align-items:flex-start;height:100%}.board-message.svelte-x7v2jt{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:200px;color:var(--text-muted);font-size:1rem}.board-message.error.svelte-x7v2jt{color:var(--danger)}.board-message.svelte-x7v2jt button:where(.svelte-x7v2jt){padding:5px 14px;background:none;color:var(--primary);border:1px solid var(--primary);border-radius:var(--radius-sm);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.5px}.board-message.svelte-x7v2jt button:where(.svelte-x7v2jt):hover{background:var(--primary-dim)}.view.svelte-mwtig8{flex:1;overflow-y:auto;padding:16px 20px}.state-msg.svelte-mwtig8{color:var(--text-dim);font-size:.8rem;padding:40px 0;text-align:center}.state-msg.err.svelte-mwtig8{color:var(--danger)}.state-msg.muted.svelte-mwtig8{color:var(--text-muted)}.prompt.svelte-mwtig8{color:var(--primary)}.list.svelte-mwtig8{display:flex;flex-direction:column;gap:8px;max-width:760px}.card.svelte-mwtig8{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;display:flex;flex-direction:column;gap:6px}.card-header.svelte-mwtig8{display:flex;align-items:center;justify-content:space-between}.category.svelte-mwtig8{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.8px}.date.svelte-mwtig8{font-size:.62rem;color:var(--text-muted)}.content.svelte-mwtig8{font-size:.78rem;color:var(--text);line-height:1.55;white-space:pre-wrap}.card-footer.svelte-mwtig8{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:2px}.tags.svelte-mwtig8{display:flex;flex-wrap:wrap;gap:4px}.tag.svelte-mwtig8{font-size:.62rem;color:var(--text-muted);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:1px 6px}.task-link.svelte-mwtig8{font-size:.68rem;color:var(--primary);cursor:pointer;border:1px solid var(--primary-dim);border-radius:var(--radius-sm);padding:1px 7px;background:var(--primary-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:300px}.task-link.svelte-mwtig8:hover{background:#39d35340}.view.svelte-1nwykvu{flex:1;overflow-y:auto;padding:16px 20px}.state-msg.svelte-1nwykvu{color:var(--text-dim);font-size:.8rem;padding:40px 0;text-align:center}.state-msg.err.svelte-1nwykvu{color:var(--danger)}.state-msg.muted.svelte-1nwykvu{color:var(--text-muted)}.prompt.svelte-1nwykvu{color:var(--primary)}.list.svelte-1nwykvu{display:flex;flex-direction:column;gap:8px;max-width:760px}.card.svelte-1nwykvu{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--border-bright);border-radius:var(--radius);padding:12px 14px;display:flex;flex-direction:column;gap:5px}.card-header.svelte-1nwykvu{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.title.svelte-1nwykvu{font-size:.82rem;font-weight:700;color:var(--text)}.date.svelte-1nwykvu{font-size:.62rem;color:var(--text-muted);flex-shrink:0}.decision-text.svelte-1nwykvu{font-size:.78rem;color:var(--text-dim);line-height:1.5}.reasoning.svelte-1nwykvu{font-size:.72rem;color:var(--text-muted);font-style:italic;line-height:1.4}.alts.svelte-1nwykvu{font-size:.68rem;color:var(--text-muted)}.card-footer.svelte-1nwykvu{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:2px}.tags.svelte-1nwykvu{display:flex;flex-wrap:wrap;gap:4px}.tag.svelte-1nwykvu{font-size:.62rem;color:var(--text-muted);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:1px 6px}.task-link.svelte-1nwykvu{font-size:.68rem;color:var(--primary);cursor:pointer;border:1px solid var(--primary-dim);border-radius:var(--radius-sm);padding:1px 7px;background:var(--primary-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:300px}.task-link.svelte-1nwykvu:hover{background:#39d35340}.palette-backdrop.svelte-1bm0yy4{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;display:flex;align-items:flex-start;justify-content:center;padding-top:15vh;z-index:300}.palette.svelte-1bm0yy4{background:var(--surface);border:1px solid var(--border-bright);border-radius:var(--radius);width:480px;max-width:95vw;overflow:hidden}.palette-input-row.svelte-1bm0yy4{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--border)}.palette-prompt.svelte-1bm0yy4{color:var(--primary);font-weight:700;font-size:.9rem;flex-shrink:0}.palette-input-row.svelte-1bm0yy4 input:where(.svelte-1bm0yy4){flex:1;background:none;border:none;color:var(--text);font-size:.85rem;outline:none}.palette-input-row.svelte-1bm0yy4 input:where(.svelte-1bm0yy4)::placeholder{color:var(--text-muted)}.palette-list.svelte-1bm0yy4{max-height:260px;overflow-y:auto}.palette-item.svelte-1bm0yy4{display:flex;justify-content:space-between;align-items:center;padding:8px 14px;cursor:pointer;gap:12px}.palette-item.active.svelte-1bm0yy4{background:var(--surface-2);border-left:2px solid var(--primary);padding-left:12px}.item-label.svelte-1bm0yy4{font-size:.8rem;color:var(--text)}.item-hint.svelte-1bm0yy4{font-size:.68rem;color:var(--text-muted);white-space:nowrap}.palette-empty.svelte-1bm0yy4{padding:16px 14px;font-size:.75rem;color:var(--text-muted)}.palette-footer.svelte-1bm0yy4{display:flex;gap:16px;padding:6px 14px;border-top:1px solid var(--border);background:var(--bg)}.palette-footer.svelte-1bm0yy4 span:where(.svelte-1bm0yy4){font-size:.62rem;color:var(--text-muted);display:flex;align-items:center;gap:4px}kbd.svelte-1bm0yy4{font-family:var(--font-mono);font-size:.6rem;background:var(--surface-2);border:1px solid var(--border-bright);border-radius:2px;padding:1px 4px;color:var(--text-dim)}.view.svelte-37wipk{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:16px}.toolbar.svelte-37wipk{display:flex;align-items:center;gap:6px}.toolbar-label.svelte-37wipk{font-size:.7rem;color:var(--text-muted);margin-right:4px}.window-btn.svelte-37wipk{background:none;border:1px solid var(--border);color:var(--text-muted);font-size:.72rem;font-family:inherit;padding:3px 10px;border-radius:3px;cursor:pointer;transition:color .1s,border-color .1s}.window-btn.svelte-37wipk:hover{color:var(--text-dim);border-color:var(--text-muted)}.window-btn.active.svelte-37wipk{color:var(--primary);border-color:var(--primary)}.grid.svelte-37wipk{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.card.svelte-37wipk{background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:14px 16px;display:flex;flex-direction:column;gap:4px}.card-label.svelte-37wipk{font-size:.67rem;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted)}.card-value.svelte-37wipk{font-size:2rem;font-weight:700;color:var(--text);line-height:1.1}.card-value--empty.svelte-37wipk{color:var(--text-muted)}.val-danger.svelte-37wipk{color:var(--danger)}.card-sub.svelte-37wipk{font-size:.72rem;color:var(--text-dim)}.card-sub.muted.svelte-37wipk{color:var(--text-muted)}.card-detail.svelte-37wipk{font-size:.7rem;color:var(--text-muted);margin-top:2px}.trend.svelte-37wipk{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-top:6px}.trend-up.svelte-37wipk{color:var(--success, #4caf50)}.trend-down.svelte-37wipk{color:var(--danger)}.trend-stable.svelte-37wipk{color:var(--text-muted)}.badge.svelte-37wipk{display:inline-block;font-size:.65rem;font-weight:600;padding:2px 7px;border-radius:3px;margin-top:6px;width:fit-content}.badge-blocked.svelte-37wipk{background:color-mix(in srgb,var(--danger) 15%,transparent);color:var(--danger);border:1px solid color-mix(in srgb,var(--danger) 30%,transparent)}.card--tier.svelte-37wipk{align-items:flex-start}.tier-badge.svelte-37wipk{font-size:1.6rem;font-weight:800;letter-spacing:-.5px;margin:4px 0}.tier-elite.svelte-37wipk{color:#4caf50}.tier-high.svelte-37wipk{color:var(--primary)}.tier-medium.svelte-37wipk{color:#f59e0b}.tier-low.svelte-37wipk{color:var(--danger)}.tier-unknown.svelte-37wipk{color:var(--text-muted)}.tier-legend.svelte-37wipk{font-size:.65rem;color:var(--text-muted);margin-top:2px}.insights.svelte-37wipk{border:1px solid var(--border);border-radius:4px;padding:12px 16px;display:flex;flex-direction:column;gap:6px}.insights-label.svelte-37wipk{font-size:.67rem;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);margin-bottom:2px}.insight-row.svelte-37wipk{font-size:.78rem;color:var(--text-dim);display:flex;gap:8px}.insight-bullet.svelte-37wipk{color:var(--primary);flex-shrink:0}.state-msg.svelte-37wipk{font-size:.82rem;color:var(--text-muted);padding:32px 0}.err.svelte-37wipk{color:var(--danger)}.app-layout.svelte-1n46o8q{display:flex;flex:1;overflow:hidden;min-height:0}.main.svelte-1n46o8q{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.tabs.svelte-1n46o8q{display:flex;gap:0;border-bottom:1px solid var(--border);padding:0 16px;flex-shrink:0}.tab.svelte-1n46o8q{background:none;border:none;border-bottom:2px solid transparent;color:var(--text-muted);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.8px;padding:8px 14px;margin-bottom:-1px;transition:color .1s,border-color .1s}.tab.svelte-1n46o8q:hover{color:var(--text-dim)}.tab.active.svelte-1n46o8q{color:var(--primary);border-bottom-color:var(--primary)}.loading.svelte-1n46o8q,.error.svelte-1n46o8q,.empty.svelte-1n46o8q{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:8px;font-size:.85rem}.prompt.svelte-1n46o8q{color:var(--primary)}.loading.svelte-1n46o8q{color:var(--text-dim)}.error.svelte-1n46o8q{color:var(--danger)}.err-prefix.svelte-1n46o8q{margin-right:6px}.empty-prompt.svelte-1n46o8q{color:var(--text)}.empty-hint.svelte-1n46o8q{color:var(--text-muted);font-size:.75rem}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0d0d0d;--surface: #141414;--surface-2: #1a1a1a;--border: #252525;--border-bright: #333333;--text: #d4d4d4;--text-muted: #555555;--text-dim: #888888;--primary: #39d353;--primary-hover: #2fb844;--primary-dim: rgba(57, 211, 83, .15);--danger: #f85149;--danger-hover: #da3633;--priority-critical: #f85149;--priority-high: #d29922;--priority-medium: #39d353;--priority-low: #3d444d;--column-bg: #111111;--card-shadow: none;--card-shadow-hover: 0 0 0 1px var(--border-bright);--radius: 4px;--radius-sm: 3px;--font-mono: "JetBrains Mono", "Fira Code", "Cascadia Code", "Consolas", "Courier New", monospace}body{font-family:var(--font-mono);background:var(--bg);color:var(--text);line-height:1.5;min-height:100vh;font-size:13px}button{cursor:pointer;font-family:inherit;font-size:inherit}input,textarea,select{font-family:inherit;font-size:inherit}#app{height:100vh;display:flex;flex-direction:column;overflow:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border-bright);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#444}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var qa=Object.defineProperty;var Cn=e=>{throw TypeError(e)};var Ba=(e,t,r)=>t in e?qa(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var We=(e,t,r)=>Ba(e,typeof t!="symbol"?t+"":t,r),Vr=(e,t,r)=>t.has(e)||Cn("Cannot "+r);var _=(e,t,r)=>(Vr(e,t,"read from private field"),r?r.call(e):t.get(e)),$=(e,t,r)=>t.has(e)?Cn("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),J=(e,t,r,n)=>(Vr(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r),_e=(e,t,r)=>(Vr(e,t,"access private method"),r);(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))n(a);new MutationObserver(a=>{for(const i of a)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function r(a){const i={};return a.integrity&&(i.integrity=a.integrity),a.referrerPolicy&&(i.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?i.credentials="include":a.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function n(a){if(a.ep)return;a.ep=!0;const i=r(a);fetch(a.href,i)}})();const Ha=!1;var dn=Array.isArray,Ka=Array.prototype.indexOf,ir=Array.prototype.includes,zr=Array.from,Ua=Object.defineProperty,Qt=Object.getOwnPropertyDescriptor,Va=Object.getOwnPropertyDescriptors,Ya=Object.prototype,Ja=Array.prototype,Jn=Object.getPrototypeOf,jn=Object.isExtensible;const Ga=()=>{};function Wa(e){for(var t=0;t<e.length;t++)e[t]()}function Gn(){var e,t,r=new Promise((n,a)=>{e=n,t=a});return{promise:r,resolve:e,reject:t}}const me=2,lr=4,Fr=8,Wn=1<<24,At=16,nt=32,Ht=64,Qr=128,Ve=512,pe=1024,ye=2048,at=4096,Fe=8192,Ye=16384,Jt=32768,Zr=1<<25,or=65536,Pn=1<<17,Qa=1<<18,fr=1<<19,Za=1<<20,ut=1<<25,Kt=65536,Xr=1<<21,_n=1<<22,St=1<<23,Ft=Symbol("$state"),Xa=Symbol("legacy props"),ft=new class extends Error{constructor(){super(...arguments);We(this,"name","StaleReactionError");We(this,"message","The reaction that called `getAbortSignal()` was re-run or destroyed")}};var Un;const $a=!!((Un=globalThis.document)!=null&&Un.contentType)&&globalThis.document.contentType.includes("xml");function es(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function ts(e,t,r){throw new Error("https://svelte.dev/e/each_key_duplicate")}function rs(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function ns(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function as(e){throw new Error("https://svelte.dev/e/effect_orphan")}function ss(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function is(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function ls(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function os(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function vs(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function us(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const cs=1,fs=2,Qn=4,ds=8,_s=16,hs=1,gs=4,ps=8,ms=16,ws=1,bs=2,we=Symbol(),Zn="http://www.w3.org/1999/xhtml",ys="http://www.w3.org/2000/svg",ks="http://www.w3.org/1998/Math/MathML";function Ts(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function Es(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}function Xn(e){return e===this.v}function Ss(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function $n(e){return!Ss(e,this.v)}let xs=!1,qe=null;function vr(e){qe=e}function Ne(e,t=!1,r){qe={p:qe,i:!1,c:null,e:null,s:e,x:null,r:ee,l:null}}function Ie(e){var t=qe,r=t.e;if(r!==null){t.e=null;for(var n of r)ya(n)}return t.i=!0,qe=t.p,{}}function ea(){return!0}let Nt=[];function ta(){var e=Nt;Nt=[],Wa(e)}function ht(e){if(Nt.length===0&&!pr){var t=Nt;queueMicrotask(()=>{t===Nt&&ta()})}Nt.push(e)}function Cs(){for(;Nt.length>0;)ta()}function ra(e){var t=ee;if(t===null)return Q.f|=St,e;if((t.f&Jt)===0&&(t.f&lr)===0)throw e;Tt(e,t)}function Tt(e,t){for(;t!==null;){if((t.f&Qr)!==0){if((t.f&Jt)===0)throw e;try{t.b.error(e);return}catch(r){e=r}}t=t.parent}throw e}const js=-7169;function de(e,t){e.f=e.f&js|t}function hn(e){(e.f&Ve)!==0||e.deps===null?de(e,pe):de(e,at)}function na(e){if(e!==null)for(const t of e)(t.f&me)===0||(t.f&Kt)===0||(t.f^=Kt,na(t.deps))}function aa(e,t,r){(e.f&ye)!==0?t.add(e):(e.f&at)!==0&&r.add(e),na(e.deps),de(e,pe)}let jr=!1;function Ps(e){var t=jr;try{return jr=!1,[e(),jr]}finally{jr=t}}const _r=new Set;let U=null,be=null,$r=null,pr=!1,Yr=!1,Wt=null,Ar=null;var An=0;let As=1;var Zt,Xt,$t,er,Tr,bt,tr,yt,it,rr,Ce,en,tn,rn,nn,sa;const Mr=class Mr{constructor(){$(this,Ce);We(this,"id",As++);We(this,"current",new Map);We(this,"previous",new Map);$(this,Zt,new Set);$(this,Xt,new Set);$(this,$t,0);$(this,er,0);$(this,Tr,null);$(this,bt,[]);$(this,tr,new Set);$(this,yt,new Set);$(this,it,new Map);We(this,"is_fork",!1);$(this,rr,!1)}skip_effect(t){_(this,it).has(t)||_(this,it).set(t,{d:[],m:[]})}unskip_effect(t){var r=_(this,it).get(t);if(r){_(this,it).delete(t);for(var n of r.d)de(n,ye),this.schedule(n);for(n of r.m)de(n,at),this.schedule(n)}}capture(t,r){r!==we&&!this.previous.has(t)&&this.previous.set(t,r),(t.f&St)===0&&(this.current.set(t,t.v),be==null||be.set(t,t.v))}activate(){U=this}deactivate(){U=null,be=null}flush(){try{if(Yr=!0,U=this,!_e(this,Ce,en).call(this)){for(const t of _(this,tr))_(this,yt).delete(t),de(t,ye),this.schedule(t);for(const t of _(this,yt))de(t,at),this.schedule(t)}_e(this,Ce,tn).call(this)}finally{An=0,$r=null,Wt=null,Ar=null,Yr=!1,U=null,be=null,xt.clear()}}discard(){for(const t of _(this,Xt))t(this);_(this,Xt).clear()}increment(t){J(this,$t,_(this,$t)+1),t&&J(this,er,_(this,er)+1)}decrement(t,r){J(this,$t,_(this,$t)-1),t&&J(this,er,_(this,er)-1),!(_(this,rr)||r)&&(J(this,rr,!0),ht(()=>{J(this,rr,!1),this.flush()}))}oncommit(t){_(this,Zt).add(t)}ondiscard(t){_(this,Xt).add(t)}settled(){return(_(this,Tr)??J(this,Tr,Gn())).promise}static ensure(){if(U===null){const t=U=new Mr;Yr||(_r.add(U),pr||ht(()=>{U===t&&t.flush()}))}return U}apply(){}schedule(t){var a;if($r=t,(a=t.b)!=null&&a.is_pending&&(t.f&(lr|Fr|Wn))!==0&&(t.f&Jt)===0){t.b.defer_effect(t);return}for(var r=t;r.parent!==null;){r=r.parent;var n=r.f;if(Wt!==null&&r===ee&&(Q===null||(Q.f&me)===0))return;if((n&(Ht|nt))!==0){if((n&pe)===0)return;r.f^=pe}}_(this,bt).push(r)}};Zt=new WeakMap,Xt=new WeakMap,$t=new WeakMap,er=new WeakMap,Tr=new WeakMap,bt=new WeakMap,tr=new WeakMap,yt=new WeakMap,it=new WeakMap,rr=new WeakMap,Ce=new WeakSet,en=function(){return this.is_fork||_(this,er)>0},tn=function(){var v,l;An++>1e3&&Os();const t=_(this,bt);J(this,bt,[]),this.apply();var r=Wt=[],n=[],a=Ar=[];for(const c of t)_e(this,Ce,rn).call(this,c,r,n);if(U=null,a.length>0){var i=Mr.ensure();for(const c of a)i.schedule(c)}if(Wt=null,Ar=null,_e(this,Ce,en).call(this)){_e(this,Ce,nn).call(this,n),_e(this,Ce,nn).call(this,r);for(const[c,f]of _(this,it))oa(c,f)}else{_(this,tr).clear(),_(this,yt).clear();for(const c of _(this,Zt))c(this);_(this,Zt).clear(),Dn(n),Dn(r),_(this,$t)===0&&_e(this,Ce,sa).call(this),(v=_(this,Tr))==null||v.resolve()}var o=U;o!==null&&(_r.add(o),_e(l=o,Ce,tn).call(l))},rn=function(t,r,n){t.f^=pe;for(var a=t.first;a!==null;){var i=a.f,o=(i&(nt|Ht))!==0,v=o&&(i&pe)!==0,l=v||(i&Fe)!==0||_(this,it).has(a);if(!l&&a.fn!==null){o?a.f^=pe:(i&lr)!==0?r.push(a):Cr(a)&&((i&At)!==0&&_(this,yt).add(a),cr(a));var c=a.first;if(c!==null){a=c;continue}}for(;a!==null;){var f=a.next;if(f!==null){a=f;break}a=a.parent}}},nn=function(t){for(var r=0;r<t.length;r+=1)aa(t[r],_(this,tr),_(this,yt))},sa=function(){var a;if(_r.size>1){this.previous.clear();var t=U,r=be,n=!0;for(const i of _r){if(i===this){n=!1;continue}const o=[];for(const[l,c]of this.current){if(i.current.has(l))if(n&&c!==i.current.get(l))i.current.set(l,c);else continue;o.push(l)}if(o.length===0)continue;const v=[...i.current.keys()].filter(l=>!this.current.has(l));if(v.length>0){i.activate();const l=new Set,c=new Map;for(const f of o)ia(f,v,l,c);if(_(i,bt).length>0){i.apply();for(const f of _(i,bt))_e(a=i,Ce,rn).call(a,f,[],[])}i.deactivate()}}U=t,be=r}_(this,it).clear(),_r.delete(this)};let Ut=Mr;function Ds(e){var t=pr;pr=!0;try{for(var r;;){if(Cs(),U===null)return r;U.flush()}}finally{pr=t}}function Os(){try{ss()}catch(e){Tt(e,$r)}}let Ze=null;function Dn(e){var t=e.length;if(t!==0){for(var r=0;r<t;){var n=e[r++];if((n.f&(Ye|Fe))===0&&Cr(n)&&(Ze=new Set,cr(n),n.deps===null&&n.first===null&&n.nodes===null&&n.teardown===null&&n.ac===null&&Sa(n),(Ze==null?void 0:Ze.size)>0)){xt.clear();for(const a of Ze){if((a.f&(Ye|Fe))!==0)continue;const i=[a];let o=a.parent;for(;o!==null;)Ze.has(o)&&(Ze.delete(o),i.push(o)),o=o.parent;for(let v=i.length-1;v>=0;v--){const l=i[v];(l.f&(Ye|Fe))===0&&cr(l)}}Ze.clear()}}Ze=null}}function ia(e,t,r,n){if(!r.has(e)&&(r.add(e),e.reactions!==null))for(const a of e.reactions){const i=a.f;(i&me)!==0?ia(a,t,r,n):(i&(_n|At))!==0&&(i&ye)===0&&la(a,t,n)&&(de(a,ye),gn(a))}}function la(e,t,r){const n=r.get(e);if(n!==void 0)return n;if(e.deps!==null)for(const a of e.deps){if(ir.call(t,a))return!0;if((a.f&me)!==0&&la(a,t,r))return r.set(a,!0),!0}return r.set(e,!1),!1}function gn(e){U.schedule(e)}function oa(e,t){if(!((e.f&nt)!==0&&(e.f&pe)!==0)){(e.f&ye)!==0?t.d.push(e):(e.f&at)!==0&&t.m.push(e),de(e,pe);for(var r=e.first;r!==null;)oa(r,t),r=r.next}}function Ns(e){let t=0,r=Vt(0),n;return()=>{wn()&&(s(r),yn(()=>(t===0&&(n=Hr(()=>e(()=>mr(r)))),t+=1,()=>{ht(()=>{t-=1,t===0&&(n==null||n(),n=void 0,mr(r))})})))}}var Is=or|fr;function Ms(e,t,r,n){new Rs(e,t,r,n)}var Ke,fn,lt,Rt,Pe,ot,Re,Xe,dt,Lt,kt,nr,ar,sr,_t,Rr,he,Ls,zs,Fs,an,Dr,Or,sn;class Rs{constructor(t,r,n,a){$(this,he);We(this,"parent");We(this,"is_pending",!1);We(this,"transform_error");$(this,Ke);$(this,fn,null);$(this,lt);$(this,Rt);$(this,Pe);$(this,ot,null);$(this,Re,null);$(this,Xe,null);$(this,dt,null);$(this,Lt,0);$(this,kt,0);$(this,nr,!1);$(this,ar,new Set);$(this,sr,new Set);$(this,_t,null);$(this,Rr,Ns(()=>(J(this,_t,Vt(_(this,Lt))),()=>{J(this,_t,null)})));var i;J(this,Ke,t),J(this,lt,r),J(this,Rt,o=>{var v=ee;v.b=this,v.f|=Qr,n(o)}),this.parent=ee.b,this.transform_error=a??((i=this.parent)==null?void 0:i.transform_error)??(o=>o),J(this,Pe,kn(()=>{_e(this,he,an).call(this)},Is))}defer_effect(t){aa(t,_(this,ar),_(this,sr))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!_(this,lt).pending}update_pending_count(t,r){_e(this,he,sn).call(this,t,r),J(this,Lt,_(this,Lt)+t),!(!_(this,_t)||_(this,nr))&&(J(this,nr,!0),ht(()=>{J(this,nr,!1),_(this,_t)&&ur(_(this,_t),_(this,Lt))}))}get_effect_pending(){return _(this,Rr).call(this),s(_(this,_t))}error(t){var r=_(this,lt).onerror;let n=_(this,lt).failed;if(!r&&!n)throw t;_(this,ot)&&(De(_(this,ot)),J(this,ot,null)),_(this,Re)&&(De(_(this,Re)),J(this,Re,null)),_(this,Xe)&&(De(_(this,Xe)),J(this,Xe,null));var a=!1,i=!1;const o=()=>{if(a){Es();return}a=!0,i&&us(),_(this,Xe)!==null&&qt(_(this,Xe),()=>{J(this,Xe,null)}),_e(this,he,Or).call(this,()=>{_e(this,he,an).call(this)})},v=l=>{try{i=!0,r==null||r(l,o),i=!1}catch(c){Tt(c,_(this,Pe)&&_(this,Pe).parent)}n&&J(this,Xe,_e(this,he,Or).call(this,()=>{try{return Ue(()=>{var c=ee;c.b=this,c.f|=Qr,n(_(this,Ke),()=>l,()=>o)})}catch(c){return Tt(c,_(this,Pe).parent),null}}))};ht(()=>{var l;try{l=this.transform_error(t)}catch(c){Tt(c,_(this,Pe)&&_(this,Pe).parent);return}l!==null&&typeof l=="object"&&typeof l.then=="function"?l.then(v,c=>Tt(c,_(this,Pe)&&_(this,Pe).parent)):v(l)})}}Ke=new WeakMap,fn=new WeakMap,lt=new WeakMap,Rt=new WeakMap,Pe=new WeakMap,ot=new WeakMap,Re=new WeakMap,Xe=new WeakMap,dt=new WeakMap,Lt=new WeakMap,kt=new WeakMap,nr=new WeakMap,ar=new WeakMap,sr=new WeakMap,_t=new WeakMap,Rr=new WeakMap,he=new WeakSet,Ls=function(){try{J(this,ot,Ue(()=>_(this,Rt).call(this,_(this,Ke))))}catch(t){this.error(t)}},zs=function(t){const r=_(this,lt).failed;r&&J(this,Xe,Ue(()=>{r(_(this,Ke),()=>t,()=>()=>{})}))},Fs=function(){const t=_(this,lt).pending;if(t){this.is_pending=!0,J(this,Re,Ue(()=>t(_(this,Ke))));var r=U;ht(()=>{var n=J(this,dt,document.createDocumentFragment()),a=Ct();n.append(a),J(this,ot,_e(this,he,Or).call(this,()=>Ue(()=>_(this,Rt).call(this,a)))),_(this,kt)===0&&(_(this,Ke).before(n),J(this,dt,null),qt(_(this,Re),()=>{J(this,Re,null)}),_e(this,he,Dr).call(this,r))})}},an=function(){var t=U;try{if(this.is_pending=this.has_pending_snippet(),J(this,kt,0),J(this,Lt,0),J(this,ot,Ue(()=>{_(this,Rt).call(this,_(this,Ke))})),_(this,kt)>0){var r=J(this,dt,document.createDocumentFragment());Sn(_(this,ot),r);const n=_(this,lt).pending;J(this,Re,Ue(()=>n(_(this,Ke))))}else _e(this,he,Dr).call(this,t)}catch(n){this.error(n)}},Dr=function(t){this.is_pending=!1;for(const r of _(this,ar))de(r,ye),t.schedule(r);for(const r of _(this,sr))de(r,at),t.schedule(r);_(this,ar).clear(),_(this,sr).clear()},Or=function(t){var r=ee,n=Q,a=qe;ct(_(this,Pe)),Ge(_(this,Pe)),vr(_(this,Pe).ctx);try{return Ut.ensure(),t()}catch(i){return ra(i),null}finally{ct(r),Ge(n),vr(a)}},sn=function(t,r){var n;if(!this.has_pending_snippet()){this.parent&&_e(n=this.parent,he,sn).call(n,t,r);return}J(this,kt,_(this,kt)+t),_(this,kt)===0&&(_e(this,he,Dr).call(this,r),_(this,Re)&&qt(_(this,Re),()=>{J(this,Re,null)}),_(this,dt)&&(_(this,Ke).before(_(this,dt)),J(this,dt,null)))};function qs(e,t,r,n){const a=qr;var i=e.filter(g=>!g.settled);if(r.length===0&&i.length===0){n(t.map(a));return}var o=ee,v=Bs(),l=i.length===1?i[0].promise:i.length>1?Promise.all(i.map(g=>g.promise)):null;function c(g){v();try{n(g)}catch(P){(o.f&Ye)===0&&Tt(P,o)}Ir()}if(r.length===0){l.then(()=>c(t.map(a)));return}var f=va();function w(){Promise.all(r.map(g=>Hs(g))).then(g=>c([...t.map(a),...g])).catch(g=>Tt(g,o)).finally(()=>f())}l?l.then(()=>{v(),w(),Ir()}):w()}function Bs(){var e=ee,t=Q,r=qe,n=U;return function(i=!0){ct(e),Ge(t),vr(r),i&&(e.f&Ye)===0&&(n==null||n.activate(),n==null||n.apply())}}function Ir(e=!0){ct(null),Ge(null),vr(null),e&&(U==null||U.deactivate())}function va(){var e=ee.b,t=U,r=e.is_rendered();return e.update_pending_count(1,t),t.increment(r),(n=!1)=>{e.update_pending_count(-1,t),t.decrement(r,n)}}function qr(e){var t=me|ye,r=Q!==null&&(Q.f&me)!==0?Q:null;return ee!==null&&(ee.f|=fr),{ctx:qe,deps:null,effects:null,equals:Xn,f:t,fn:e,reactions:null,rv:0,v:we,wv:0,parent:r??ee,ac:null}}function Hs(e,t,r){let n=ee;n===null&&es();var a=void 0,i=Vt(we),o=!Q,v=new Map;return ti(()=>{var P;var l=ee,c=Gn();a=c.promise;try{Promise.resolve(e()).then(c.resolve,c.reject).finally(Ir)}catch(p){c.reject(p),Ir()}var f=U;if(o){if((l.f&Jt)!==0)var w=va();if(n.b.is_rendered())(P=v.get(f))==null||P.reject(ft),v.delete(f);else{for(const p of v.values())p.reject(ft);v.clear()}v.set(f,c)}const g=(p,A=void 0)=>{if(w){var u=A===ft;w(u)}if(!(A===ft||(l.f&Ye)!==0)){if(f.activate(),A)i.f|=St,ur(i,A);else{(i.f&St)!==0&&(i.f^=St),ur(i,p);for(const[m,S]of v){if(v.delete(m),m===f)break;S.reject(ft)}}f.deactivate()}};c.promise.then(g,p=>g(null,p||"unknown"))}),bn(()=>{for(const l of v.values())l.reject(ft)}),new Promise(l=>{function c(f){function w(){f===a?l(i):c(a)}f.then(w,w)}c(a)})}function le(e){const t=qr(e);return ja(t),t}function ua(e){const t=qr(e);return t.equals=$n,t}function Ks(e){var t=e.effects;if(t!==null){e.effects=null;for(var r=0;r<t.length;r+=1)De(t[r])}}function Us(e){for(var t=e.parent;t!==null;){if((t.f&me)===0)return(t.f&Ye)===0?t:null;t=t.parent}return null}function pn(e){var t,r=ee;ct(Us(e));try{e.f&=~Kt,Ks(e),t=Oa(e)}finally{ct(r)}return t}function ca(e){var t=pn(e);if(!e.equals(t)&&(e.wv=Aa(),(!(U!=null&&U.is_fork)||e.deps===null)&&(e.v=t,e.deps===null))){de(e,pe);return}Pt||(be!==null?(wn()||U!=null&&U.is_fork)&&be.set(e,t):hn(e))}function Vs(e){var t,r;if(e.effects!==null)for(const n of e.effects)(n.teardown||n.ac)&&((t=n.teardown)==null||t.call(n),(r=n.ac)==null||r.abort(ft),n.teardown=Ga,n.ac=null,yr(n,0),Tn(n))}function fa(e){if(e.effects!==null)for(const t of e.effects)t.teardown&&cr(t)}let ln=new Set;const xt=new Map;let da=!1;function Vt(e,t){var r={f:0,v:e,reactions:null,equals:Xn,rv:0,wv:0};return r}function R(e,t){const r=Vt(e);return ja(r),r}function Ys(e,t=!1,r=!0){const n=Vt(e);return t||(n.equals=$n),n}function h(e,t,r=!1){Q!==null&&(!tt||(Q.f&Pn)!==0)&&ea()&&(Q.f&(me|At|_n|Pn))!==0&&(Je===null||!ir.call(Je,e))&&vs();let n=r?Se(t):t;return ur(e,n,Ar)}function ur(e,t,r=null){if(!e.equals(t)){var n=e.v;Pt?xt.set(e,t):xt.set(e,n),e.v=t;var a=Ut.ensure();if(a.capture(e,n),(e.f&me)!==0){const i=e;(e.f&ye)!==0&&pn(i),hn(i)}e.wv=Aa(),_a(e,ye,r),ee!==null&&(ee.f&pe)!==0&&(ee.f&(nt|Ht))===0&&(He===null?ni([e]):He.push(e)),!a.is_fork&&ln.size>0&&!da&&Js()}return t}function Js(){da=!1;for(const e of ln)(e.f&pe)!==0&&de(e,at),Cr(e)&&cr(e);ln.clear()}function mr(e){h(e,e.v+1)}function _a(e,t,r){var n=e.reactions;if(n!==null)for(var a=n.length,i=0;i<a;i++){var o=n[i],v=o.f,l=(v&ye)===0;if(l&&de(o,t),(v&me)!==0){var c=o;be==null||be.delete(c),(v&Kt)===0&&(v&Ve&&(o.f|=Kt),_a(c,at,r))}else if(l){var f=o;(v&At)!==0&&Ze!==null&&Ze.add(f),r!==null?r.push(f):gn(f)}}}function Se(e){if(typeof e!="object"||e===null||Ft in e)return e;const t=Jn(e);if(t!==Ya&&t!==Ja)return e;var r=new Map,n=dn(e),a=R(0),i=Bt,o=v=>{if(Bt===i)return v();var l=Q,c=Bt;Ge(null),Mn(i);var f=v();return Ge(l),Mn(c),f};return n&&r.set("length",R(e.length)),new Proxy(e,{defineProperty(v,l,c){(!("value"in c)||c.configurable===!1||c.enumerable===!1||c.writable===!1)&&ls();var f=r.get(l);return f===void 0?o(()=>{var w=R(c.value);return r.set(l,w),w}):h(f,c.value,!0),!0},deleteProperty(v,l){var c=r.get(l);if(c===void 0){if(l in v){const f=o(()=>R(we));r.set(l,f),mr(a)}}else h(c,we),mr(a);return!0},get(v,l,c){var P;if(l===Ft)return e;var f=r.get(l),w=l in v;if(f===void 0&&(!w||(P=Qt(v,l))!=null&&P.writable)&&(f=o(()=>{var p=Se(w?v[l]:we),A=R(p);return A}),r.set(l,f)),f!==void 0){var g=s(f);return g===we?void 0:g}return Reflect.get(v,l,c)},getOwnPropertyDescriptor(v,l){var c=Reflect.getOwnPropertyDescriptor(v,l);if(c&&"value"in c){var f=r.get(l);f&&(c.value=s(f))}else if(c===void 0){var w=r.get(l),g=w==null?void 0:w.v;if(w!==void 0&&g!==we)return{enumerable:!0,configurable:!0,value:g,writable:!0}}return c},has(v,l){var g;if(l===Ft)return!0;var c=r.get(l),f=c!==void 0&&c.v!==we||Reflect.has(v,l);if(c!==void 0||ee!==null&&(!f||(g=Qt(v,l))!=null&&g.writable)){c===void 0&&(c=o(()=>{var P=f?Se(v[l]):we,p=R(P);return p}),r.set(l,c));var w=s(c);if(w===we)return!1}return f},set(v,l,c,f){var T;var w=r.get(l),g=l in v;if(n&&l==="length")for(var P=c;P<w.v;P+=1){var p=r.get(P+"");p!==void 0?h(p,we):P in v&&(p=o(()=>R(we)),r.set(P+"",p))}if(w===void 0)(!g||(T=Qt(v,l))!=null&&T.writable)&&(w=o(()=>R(void 0)),h(w,Se(c)),r.set(l,w));else{g=w.v!==we;var A=o(()=>Se(c));h(w,A)}var u=Reflect.getOwnPropertyDescriptor(v,l);if(u!=null&&u.set&&u.set.call(f,c),!g){if(n&&typeof l=="string"){var m=r.get("length"),S=Number(l);Number.isInteger(S)&&S>=m.v&&h(m,S+1)}mr(a)}return!0},ownKeys(v){s(a);var l=Reflect.ownKeys(v).filter(w=>{var g=r.get(w);return g===void 0||g.v!==we});for(var[c,f]of r)f.v!==we&&!(c in v)&&l.push(c);return l},setPrototypeOf(){os()}})}function On(e){try{if(e!==null&&typeof e=="object"&&Ft in e)return e[Ft]}catch{}return e}function Gs(e,t){return Object.is(On(e),On(t))}var jt,ha,ga,pa;function Ws(){if(jt===void 0){jt=window,ha=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,r=Text.prototype;ga=Qt(t,"firstChild").get,pa=Qt(t,"nextSibling").get,jn(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),jn(r)&&(r.__t=void 0)}}function Ct(e=""){return document.createTextNode(e)}function Et(e){return ga.call(e)}function xr(e){return pa.call(e)}function d(e,t){return Et(e)}function et(e,t=!1){{var r=Et(e);return r instanceof Comment&&r.data===""?xr(r):r}}function y(e,t=1,r=!1){let n=e;for(;t--;)n=xr(n);return n}function Qs(e){e.textContent=""}function ma(){return!1}function wa(e,t,r){return document.createElementNS(t??Zn,e,void 0)}function mn(e,t){{const r=document.body;e.autofocus=!0,ht(()=>{document.activeElement===r&&e.focus()})}}let Nn=!1;function Zs(){Nn||(Nn=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{var t;if(!e.defaultPrevented)for(const r of e.target.elements)(t=r.__on_r)==null||t.call(r)})},{capture:!0}))}function Br(e){var t=Q,r=ee;Ge(null),ct(null);try{return e()}finally{Ge(t),ct(r)}}function ba(e,t,r,n=r){e.addEventListener(t,()=>Br(r));const a=e.__on_r;a?e.__on_r=()=>{a(),n(!0)}:e.__on_r=()=>n(!0),Zs()}function Xs(e){ee===null&&(Q===null&&as(),ns()),Pt&&rs()}function $s(e,t){var r=t.last;r===null?t.last=t.first=e:(r.next=e,e.prev=r,t.last=e)}function pt(e,t){var r=ee;r!==null&&(r.f&Fe)!==0&&(e|=Fe);var n={ctx:qe,deps:null,nodes:null,f:e|ye|Ve,first:null,fn:t,last:null,next:null,parent:r,b:r&&r.b,prev:null,teardown:null,wv:0,ac:null},a=n;if((e&lr)!==0)Wt!==null?Wt.push(n):Ut.ensure().schedule(n);else if(t!==null){try{cr(n)}catch(o){throw De(n),o}a.deps===null&&a.teardown===null&&a.nodes===null&&a.first===a.last&&(a.f&fr)===0&&(a=a.first,(e&At)!==0&&(e&or)!==0&&a!==null&&(a.f|=or))}if(a!==null&&(a.parent=r,r!==null&&$s(a,r),Q!==null&&(Q.f&me)!==0&&(e&Ht)===0)){var i=Q;(i.effects??(i.effects=[])).push(a)}return n}function wn(){return Q!==null&&!tt}function bn(e){const t=pt(Fr,null);return de(t,pe),t.teardown=e,t}function rt(e){Xs();var t=ee.f,r=!Q&&(t&nt)!==0&&(t&Jt)===0;if(r){var n=qe;(n.e??(n.e=[])).push(e)}else return ya(e)}function ya(e){return pt(lr|Za,e)}function ei(e){Ut.ensure();const t=pt(Ht|fr,e);return(r={})=>new Promise(n=>{r.outro?qt(t,()=>{De(t),n(void 0)}):(De(t),n(void 0))})}function ka(e){return pt(lr,e)}function ti(e){return pt(_n|fr,e)}function yn(e,t=0){return pt(Fr|t,e)}function z(e,t=[],r=[],n=[]){qs(n,t,r,a=>{pt(Fr,()=>e(...a.map(s)))})}function kn(e,t=0){var r=pt(At|t,e);return r}function Ue(e){return pt(nt|fr,e)}function Ta(e){var t=e.teardown;if(t!==null){const r=Pt,n=Q;In(!0),Ge(null);try{t.call(null)}finally{In(r),Ge(n)}}}function Tn(e,t=!1){var r=e.first;for(e.first=e.last=null;r!==null;){const a=r.ac;a!==null&&Br(()=>{a.abort(ft)});var n=r.next;(r.f&Ht)!==0?r.parent=null:De(r,t),r=n}}function ri(e){for(var t=e.first;t!==null;){var r=t.next;(t.f&nt)===0&&De(t),t=r}}function De(e,t=!0){var r=!1;(t||(e.f&Qa)!==0)&&e.nodes!==null&&e.nodes.end!==null&&(Ea(e.nodes.start,e.nodes.end),r=!0),de(e,Zr),Tn(e,t&&!r),yr(e,0);var n=e.nodes&&e.nodes.t;if(n!==null)for(const i of n)i.stop();Ta(e),e.f^=Zr,e.f|=Ye;var a=e.parent;a!==null&&a.first!==null&&Sa(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=null}function Ea(e,t){for(;e!==null;){var r=e===t?null:xr(e);e.remove(),e=r}}function Sa(e){var t=e.parent,r=e.prev,n=e.next;r!==null&&(r.next=n),n!==null&&(n.prev=r),t!==null&&(t.first===e&&(t.first=n),t.last===e&&(t.last=r))}function qt(e,t,r=!0){var n=[];xa(e,n,!0);var a=()=>{r&&De(e),t&&t()},i=n.length;if(i>0){var o=()=>--i||a();for(var v of n)v.out(o)}else a()}function xa(e,t,r){if((e.f&Fe)===0){e.f^=Fe;var n=e.nodes&&e.nodes.t;if(n!==null)for(const v of n)(v.is_global||r)&&t.push(v);for(var a=e.first;a!==null;){var i=a.next,o=(a.f&or)!==0||(a.f&nt)!==0&&(e.f&At)!==0;xa(a,t,o?r:!1),a=i}}}function En(e){Ca(e,!0)}function Ca(e,t){if((e.f&Fe)!==0){e.f^=Fe,(e.f&pe)===0&&(de(e,ye),Ut.ensure().schedule(e));for(var r=e.first;r!==null;){var n=r.next,a=(r.f&or)!==0||(r.f&nt)!==0;Ca(r,a?t:!1),r=n}var i=e.nodes&&e.nodes.t;if(i!==null)for(const o of i)(o.is_global||t)&&o.in()}}function Sn(e,t){if(e.nodes)for(var r=e.nodes.start,n=e.nodes.end;r!==null;){var a=r===n?null:xr(r);t.append(r),r=a}}let Nr=!1,Pt=!1;function In(e){Pt=e}let Q=null,tt=!1;function Ge(e){Q=e}let ee=null;function ct(e){ee=e}let Je=null;function ja(e){Q!==null&&(Je===null?Je=[e]:Je.push(e))}let Ae=null,Me=0,He=null;function ni(e){He=e}let Pa=1,It=0,Bt=It;function Mn(e){Bt=e}function Aa(){return++Pa}function Cr(e){var t=e.f;if((t&ye)!==0)return!0;if(t&me&&(e.f&=~Kt),(t&at)!==0){for(var r=e.deps,n=r.length,a=0;a<n;a++){var i=r[a];if(Cr(i)&&ca(i),i.wv>e.wv)return!0}(t&Ve)!==0&&be===null&&de(e,pe)}return!1}function Da(e,t,r=!0){var n=e.reactions;if(n!==null&&!(Je!==null&&ir.call(Je,e)))for(var a=0;a<n.length;a++){var i=n[a];(i.f&me)!==0?Da(i,t,!1):t===i&&(r?de(i,ye):(i.f&pe)!==0&&de(i,at),gn(i))}}function Oa(e){var A;var t=Ae,r=Me,n=He,a=Q,i=Je,o=qe,v=tt,l=Bt,c=e.f;Ae=null,Me=0,He=null,Q=(c&(nt|Ht))===0?e:null,Je=null,vr(e.ctx),tt=!1,Bt=++It,e.ac!==null&&(Br(()=>{e.ac.abort(ft)}),e.ac=null);try{e.f|=Xr;var f=e.fn,w=f();e.f|=Jt;var g=e.deps,P=U==null?void 0:U.is_fork;if(Ae!==null){var p;if(P||yr(e,Me),g!==null&&Me>0)for(g.length=Me+Ae.length,p=0;p<Ae.length;p++)g[Me+p]=Ae[p];else e.deps=g=Ae;if(wn()&&(e.f&Ve)!==0)for(p=Me;p<g.length;p++)((A=g[p]).reactions??(A.reactions=[])).push(e)}else!P&&g!==null&&Me<g.length&&(yr(e,Me),g.length=Me);if(ea()&&He!==null&&!tt&&g!==null&&(e.f&(me|at|ye))===0)for(p=0;p<He.length;p++)Da(He[p],e);if(a!==null&&a!==e){if(It++,a.deps!==null)for(let u=0;u<r;u+=1)a.deps[u].rv=It;if(t!==null)for(const u of t)u.rv=It;He!==null&&(n===null?n=He:n.push(...He))}return(e.f&St)!==0&&(e.f^=St),w}catch(u){return ra(u)}finally{e.f^=Xr,Ae=t,Me=r,He=n,Q=a,Je=i,vr(o),tt=v,Bt=l}}function ai(e,t){let r=t.reactions;if(r!==null){var n=Ka.call(r,e);if(n!==-1){var a=r.length-1;a===0?r=t.reactions=null:(r[n]=r[a],r.pop())}}if(r===null&&(t.f&me)!==0&&(Ae===null||!ir.call(Ae,t))){var i=t;(i.f&Ve)!==0&&(i.f^=Ve,i.f&=~Kt),hn(i),Vs(i),yr(i,0)}}function yr(e,t){var r=e.deps;if(r!==null)for(var n=t;n<r.length;n++)ai(e,r[n])}function cr(e){var t=e.f;if((t&Ye)===0){de(e,pe);var r=ee,n=Nr;ee=e,Nr=!0;try{(t&(At|Wn))!==0?ri(e):Tn(e),Ta(e);var a=Oa(e);e.teardown=typeof a=="function"?a:null,e.wv=Pa;var i;Ha&&xs&&(e.f&ye)!==0&&e.deps}finally{Nr=n,ee=r}}}async function si(){await Promise.resolve(),Ds()}function s(e){var t=e.f,r=(t&me)!==0;if(Q!==null&&!tt){var n=ee!==null&&(ee.f&Ye)!==0;if(!n&&(Je===null||!ir.call(Je,e))){var a=Q.deps;if((Q.f&Xr)!==0)e.rv<It&&(e.rv=It,Ae===null&&a!==null&&a[Me]===e?Me++:Ae===null?Ae=[e]:Ae.push(e));else{(Q.deps??(Q.deps=[])).push(e);var i=e.reactions;i===null?e.reactions=[Q]:ir.call(i,Q)||i.push(Q)}}}if(Pt&&xt.has(e))return xt.get(e);if(r){var o=e;if(Pt){var v=o.v;return((o.f&pe)===0&&o.reactions!==null||Ia(o))&&(v=pn(o)),xt.set(o,v),v}var l=(o.f&Ve)===0&&!tt&&Q!==null&&(Nr||(Q.f&Ve)!==0),c=(o.f&Jt)===0;Cr(o)&&(l&&(o.f|=Ve),ca(o)),l&&!c&&(fa(o),Na(o))}if(be!=null&&be.has(e))return be.get(e);if((e.f&St)!==0)throw e.v;return e.v}function Na(e){if(e.f|=Ve,e.deps!==null)for(const t of e.deps)(t.reactions??(t.reactions=[])).push(e),(t.f&me)!==0&&(t.f&Ve)===0&&(fa(t),Na(t))}function Ia(e){if(e.v===we)return!0;if(e.deps===null)return!1;for(const t of e.deps)if(xt.has(t)||(t.f&me)!==0&&Ia(t))return!0;return!1}function Hr(e){var t=tt;try{return tt=!0,e()}finally{tt=t}}const ii=["touchstart","touchmove"];function li(e){return ii.includes(e)}const Mt=Symbol("events"),Ma=new Set,on=new Set;function oi(e,t,r,n={}){function a(i){if(n.capture||vn.call(t,i),!i.cancelBubble)return Br(()=>r==null?void 0:r.call(this,i))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?ht(()=>{t.addEventListener(e,a,n)}):t.addEventListener(e,a,n),a}function Oe(e,t,r,n,a){var i={capture:n,passive:a},o=oi(e,t,r,i);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&bn(()=>{t.removeEventListener(e,o,i)})}function re(e,t,r){(t[Mt]??(t[Mt]={}))[e]=r}function Be(e){for(var t=0;t<e.length;t++)Ma.add(e[t]);for(var r of on)r(e)}let Rn=null;function vn(e){var u,m;var t=this,r=t.ownerDocument,n=e.type,a=((u=e.composedPath)==null?void 0:u.call(e))||[],i=a[0]||e.target;Rn=e;var o=0,v=Rn===e&&e[Mt];if(v){var l=a.indexOf(v);if(l!==-1&&(t===document||t===window)){e[Mt]=t;return}var c=a.indexOf(t);if(c===-1)return;l<=c&&(o=l)}if(i=a[o]||e.target,i!==t){Ua(e,"currentTarget",{configurable:!0,get(){return i||r}});var f=Q,w=ee;Ge(null),ct(null);try{for(var g,P=[];i!==null;){var p=i.assignedSlot||i.parentNode||i.host||null;try{var A=(m=i[Mt])==null?void 0:m[n];A!=null&&(!i.disabled||e.target===i)&&A.call(i,e)}catch(S){g?P.push(S):g=S}if(e.cancelBubble||p===t||p===null)break;i=p}if(g){for(let S of P)queueMicrotask(()=>{throw S});throw g}}finally{e[Mt]=t,delete e.currentTarget,Ge(f),ct(w)}}}var Vn;const Jr=((Vn=globalThis==null?void 0:globalThis.window)==null?void 0:Vn.trustedTypes)&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function vi(e){return(Jr==null?void 0:Jr.createHTML(e))??e}function ui(e){var t=wa("template");return t.innerHTML=vi(e.replaceAll("<!>","<!---->")),t.content}function kr(e,t){var r=ee;r.nodes===null&&(r.nodes={start:e,end:t,a:null,t:null})}function C(e,t){var r=(t&ws)!==0,n=(t&bs)!==0,a,i=!e.startsWith("<!>");return()=>{a===void 0&&(a=ui(i?e:"<!>"+e),r||(a=Et(a)));var o=n||ha?document.importNode(a,!0):a.cloneNode(!0);if(r){var v=Et(o),l=o.lastChild;kr(v,l)}else kr(o,o);return o}}function Ln(e=""){{var t=Ct(e+"");return kr(t,t),t}}function x(e,t){e!==null&&e.before(t)}function M(e,t){var r=t==null?"":typeof t=="object"?`${t}`:t;r!==(e.__t??(e.__t=e.nodeValue))&&(e.__t=r,e.nodeValue=`${r}`)}function ci(e,t){return fi(e,t)}const Pr=new Map;function fi(e,{target:t,anchor:r,props:n={},events:a,context:i,intro:o=!0,transformError:v}){Ws();var l=void 0,c=ei(()=>{var f=r??t.appendChild(Ct());Ms(f,{pending:()=>{}},P=>{Ne({});var p=qe;i&&(p.c=i),a&&(n.$$events=a),l=e(P,n)||{},Ie()},v);var w=new Set,g=P=>{for(var p=0;p<P.length;p++){var A=P[p];if(!w.has(A)){w.add(A);var u=li(A);for(const T of[t,document]){var m=Pr.get(T);m===void 0&&(m=new Map,Pr.set(T,m));var S=m.get(A);S===void 0?(T.addEventListener(A,vn,{passive:u}),m.set(A,1)):m.set(A,S+1)}}}};return g(zr(Ma)),on.add(g),()=>{var u;for(var P of w)for(const m of[t,document]){var p=Pr.get(m),A=p.get(P);--A==0?(m.removeEventListener(P,vn),p.delete(P),p.size===0&&Pr.delete(m)):p.set(P,A)}on.delete(g),f!==r&&((u=f.parentNode)==null||u.removeChild(f))}});return di.set(l,c),l}let di=new WeakMap;var $e,vt,Le,zt,Er,Sr,Lr;class _i{constructor(t,r=!0){We(this,"anchor");$(this,$e,new Map);$(this,vt,new Map);$(this,Le,new Map);$(this,zt,new Set);$(this,Er,!0);$(this,Sr,t=>{if(_(this,$e).has(t)){var r=_(this,$e).get(t),n=_(this,vt).get(r);if(n)En(n),_(this,zt).delete(r);else{var a=_(this,Le).get(r);a&&(_(this,vt).set(r,a.effect),_(this,Le).delete(r),a.fragment.lastChild.remove(),this.anchor.before(a.fragment),n=a.effect)}for(const[i,o]of _(this,$e)){if(_(this,$e).delete(i),i===t)break;const v=_(this,Le).get(o);v&&(De(v.effect),_(this,Le).delete(o))}for(const[i,o]of _(this,vt)){if(i===r||_(this,zt).has(i))continue;const v=()=>{if(Array.from(_(this,$e).values()).includes(i)){var c=document.createDocumentFragment();Sn(o,c),c.append(Ct()),_(this,Le).set(i,{effect:o,fragment:c})}else De(o);_(this,zt).delete(i),_(this,vt).delete(i)};_(this,Er)||!n?(_(this,zt).add(i),qt(o,v,!1)):v()}}});$(this,Lr,t=>{_(this,$e).delete(t);const r=Array.from(_(this,$e).values());for(const[n,a]of _(this,Le))r.includes(n)||(De(a.effect),_(this,Le).delete(n))});this.anchor=t,J(this,Er,r)}ensure(t,r){var n=U,a=ma();if(r&&!_(this,vt).has(t)&&!_(this,Le).has(t))if(a){var i=document.createDocumentFragment(),o=Ct();i.append(o),_(this,Le).set(t,{effect:Ue(()=>r(o)),fragment:i})}else _(this,vt).set(t,Ue(()=>r(this.anchor)));if(_(this,$e).set(n,t),a){for(const[v,l]of _(this,vt))v===t?n.unskip_effect(l):n.skip_effect(l);for(const[v,l]of _(this,Le))v===t?n.unskip_effect(l.effect):n.skip_effect(l.effect);n.oncommit(_(this,Sr)),n.ondiscard(_(this,Lr))}else _(this,Sr).call(this,n)}}$e=new WeakMap,vt=new WeakMap,Le=new WeakMap,zt=new WeakMap,Er=new WeakMap,Sr=new WeakMap,Lr=new WeakMap;function B(e,t,r=!1){var n=new _i(e),a=r?or:0;function i(o,v){n.ensure(o,v)}kn(()=>{var o=!1;t((v,l=0)=>{o=!0,i(l,v)}),o||i(-1,null)},a)}function gt(e,t){return t}function hi(e,t,r){for(var n=[],a=t.length,i,o=t.length,v=0;v<a;v++){let w=t[v];qt(w,()=>{if(i){if(i.pending.delete(w),i.done.add(w),i.pending.size===0){var g=e.outrogroups;un(e,zr(i.done)),g.delete(i),g.size===0&&(e.outrogroups=null)}}else o-=1},!1)}if(o===0){var l=n.length===0&&r!==null;if(l){var c=r,f=c.parentNode;Qs(f),f.append(c),e.items.clear()}un(e,t,!l)}else i={pending:new Set(t),done:new Set},(e.outrogroups??(e.outrogroups=new Set)).add(i)}function un(e,t,r=!0){var n;if(e.pending.size>0){n=new Set;for(const o of e.pending.values())for(const v of o)n.add(e.items.get(v).e)}for(var a=0;a<t.length;a++){var i=t[a];if(n!=null&&n.has(i)){i.f|=ut;const o=document.createDocumentFragment();Sn(i,o)}else De(t[a],r)}}var zn;function xe(e,t,r,n,a,i=null){var o=e,v=new Map,l=(t&Qn)!==0;if(l){var c=e;o=c.appendChild(Ct())}var f=null,w=ua(()=>{var T=r();return dn(T)?T:T==null?[]:zr(T)}),g,P=new Map,p=!0;function A(T){(S.effect.f&Ye)===0&&(S.pending.delete(T),S.fallback=f,gi(S,g,o,t,n),f!==null&&(g.length===0?(f.f&ut)===0?En(f):(f.f^=ut,gr(f,null,o)):qt(f,()=>{f=null})))}function u(T){S.pending.delete(T)}var m=kn(()=>{g=s(w);for(var T=g.length,N=new Set,O=U,L=ma(),j=0;j<T;j+=1){var I=g[j],q=n(I,j),K=p?null:v.get(q);K?(K.v&&ur(K.v,I),K.i&&ur(K.i,j),L&&O.unskip_effect(K.e)):(K=pi(v,p?o:zn??(zn=Ct()),I,q,j,a,t,r),p||(K.e.f|=ut),v.set(q,K)),N.add(q)}if(T===0&&i&&!f&&(p?f=Ue(()=>i(o)):(f=Ue(()=>i(zn??(zn=Ct()))),f.f|=ut)),T>N.size&&ts(),!p)if(P.set(O,N),L){for(const[ie,F]of v)N.has(ie)||O.skip_effect(F.e);O.oncommit(A),O.ondiscard(u)}else A(O);s(w)}),S={effect:m,items:v,pending:P,outrogroups:null,fallback:f};p=!1}function hr(e){for(;e!==null&&(e.f&nt)===0;)e=e.next;return e}function gi(e,t,r,n,a){var K,ie,F,G,H,Z,te,W,ae;var i=(n&ds)!==0,o=t.length,v=e.items,l=hr(e.effect.first),c,f=null,w,g=[],P=[],p,A,u,m;if(i)for(m=0;m<o;m+=1)p=t[m],A=a(p,m),u=v.get(A).e,(u.f&ut)===0&&((ie=(K=u.nodes)==null?void 0:K.a)==null||ie.measure(),(w??(w=new Set)).add(u));for(m=0;m<o;m+=1){if(p=t[m],A=a(p,m),u=v.get(A).e,e.outrogroups!==null)for(const V of e.outrogroups)V.pending.delete(u),V.done.delete(u);if((u.f&ut)!==0)if(u.f^=ut,u===l)gr(u,null,r);else{var S=f?f.next:l;u===e.effect.last&&(e.effect.last=u.prev),u.prev&&(u.prev.next=u.next),u.next&&(u.next.prev=u.prev),wt(e,f,u),wt(e,u,S),gr(u,S,r),f=u,g=[],P=[],l=hr(f.next);continue}if((u.f&Fe)!==0&&(En(u),i&&((G=(F=u.nodes)==null?void 0:F.a)==null||G.unfix(),(w??(w=new Set)).delete(u))),u!==l){if(c!==void 0&&c.has(u)){if(g.length<P.length){var T=P[0],N;f=T.prev;var O=g[0],L=g[g.length-1];for(N=0;N<g.length;N+=1)gr(g[N],T,r);for(N=0;N<P.length;N+=1)c.delete(P[N]);wt(e,O.prev,L.next),wt(e,f,O),wt(e,L,T),l=T,f=L,m-=1,g=[],P=[]}else c.delete(u),gr(u,l,r),wt(e,u.prev,u.next),wt(e,u,f===null?e.effect.first:f.next),wt(e,f,u),f=u;continue}for(g=[],P=[];l!==null&&l!==u;)(c??(c=new Set)).add(l),P.push(l),l=hr(l.next);if(l===null)continue}(u.f&ut)===0&&g.push(u),f=u,l=hr(u.next)}if(e.outrogroups!==null){for(const V of e.outrogroups)V.pending.size===0&&(un(e,zr(V.done)),(H=e.outrogroups)==null||H.delete(V));e.outrogroups.size===0&&(e.outrogroups=null)}if(l!==null||c!==void 0){var j=[];if(c!==void 0)for(u of c)(u.f&Fe)===0&&j.push(u);for(;l!==null;)(l.f&Fe)===0&&l!==e.fallback&&j.push(l),l=hr(l.next);var I=j.length;if(I>0){var q=(n&Qn)!==0&&o===0?r:null;if(i){for(m=0;m<I;m+=1)(te=(Z=j[m].nodes)==null?void 0:Z.a)==null||te.measure();for(m=0;m<I;m+=1)(ae=(W=j[m].nodes)==null?void 0:W.a)==null||ae.fix()}hi(e,j,q)}}i&&ht(()=>{var V,se;if(w!==void 0)for(u of w)(se=(V=u.nodes)==null?void 0:V.a)==null||se.apply()})}function pi(e,t,r,n,a,i,o,v){var l=(o&cs)!==0?(o&_s)===0?Ys(r,!1,!1):Vt(r):null,c=(o&fs)!==0?Vt(a):null;return{v:l,i:c,e:Ue(()=>(i(t,l??r,c??a,v),()=>{e.delete(n)}))}}function gr(e,t,r){if(e.nodes)for(var n=e.nodes.start,a=e.nodes.end,i=t&&(t.f&ut)===0?t.nodes.start:r;n!==null;){var o=xr(n);if(i.before(n),n===a)return;n=o}}function wt(e,t,r){t===null?e.effect.first=r:t.next=r,r===null?e.effect.last=t:r.prev=t}function mi(e,t,r=!1,n=!1,a=!1,i=!1){var o=e,v="";if(r)var l=e;z(()=>{var c=ee;if(v!==(v=t()??"")){if(r){c.nodes=null,l.innerHTML=v,v!==""&&kr(Et(l),l.lastChild);return}if(c.nodes!==null&&(Ea(c.nodes.start,c.nodes.end),c.nodes=null),v!==""){var f=n?ys:a?ks:void 0,w=wa(n?"svg":a?"math":"template",f);w.innerHTML=v;var g=n||a?w:w.content;if(kr(Et(g),g.lastChild),n||a)for(;Et(g);)o.before(Et(g));else o.before(g)}}})}const Fn=[...`
|
|
2
|
+
\r\f \v\uFEFF`];function wi(e,t,r){var n=e==null?"":""+e;if(t&&(n=n?n+" "+t:t),r){for(var a of Object.keys(r))if(r[a])n=n?n+" "+a:a;else if(n.length)for(var i=a.length,o=0;(o=n.indexOf(a,o))>=0;){var v=o+i;(o===0||Fn.includes(n[o-1]))&&(v===n.length||Fn.includes(n[v]))?n=(o===0?"":n.substring(0,o))+n.substring(v+1):o=v}}return n===""?null:n}function bi(e,t){return e==null?null:String(e)}function fe(e,t,r,n,a,i){var o=e.__className;if(o!==r||o===void 0){var v=wi(r,n,i);v==null?e.removeAttribute("class"):e.className=v,e.__className=r}else if(i&&a!==i)for(var l in i){var c=!!i[l];(a==null||c!==!!a[l])&&e.classList.toggle(l,c)}return i}function xn(e,t,r,n){var a=e.__style;if(a!==t){var i=bi(t);i==null?e.removeAttribute("style"):e.style.cssText=i,e.__style=t}return n}function Ra(e,t,r=!1){if(e.multiple){if(t==null)return;if(!dn(t))return Ts();for(var n of e.options)n.selected=t.includes(wr(n));return}for(n of e.options){var a=wr(n);if(Gs(a,t)){n.selected=!0;return}}(!r||t!==void 0)&&(e.selectedIndex=-1)}function yi(e){var t=new MutationObserver(()=>{Ra(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),bn(()=>{t.disconnect()})}function qn(e,t,r=t){var n=new WeakSet,a=!0;ba(e,"change",i=>{var o=i?"[selected]":":checked",v;if(e.multiple)v=[].map.call(e.querySelectorAll(o),wr);else{var l=e.querySelector(o)??e.querySelector("option:not([disabled])");v=l&&wr(l)}r(v),U!==null&&n.add(U)}),ka(()=>{var i=t();if(e===document.activeElement){var o=U;if(n.has(o))return}if(Ra(e,i,a),a&&i===void 0){var v=e.querySelector(":checked");v!==null&&(i=wr(v),r(i))}e.__value=i,a=!1}),yi(e)}function wr(e){return"__value"in e?e.__value:e.value}const ki=Symbol("is custom element"),Ti=Symbol("is html"),Ei=$a?"progress":"PROGRESS";function Si(e,t){var r=La(e);r.value===(r.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==Ei)||(e.value=t??"")}function Bn(e,t,r,n){var a=La(e);a[t]!==(a[t]=r)&&(r==null?e.removeAttribute(t):typeof r!="string"&&xi(e).includes(t)?e[t]=r:e.setAttribute(t,r))}function La(e){return e.__attributes??(e.__attributes={[ki]:e.nodeName.includes("-"),[Ti]:e.namespaceURI===Zn})}var Hn=new Map;function xi(e){var t=e.getAttribute("is")||e.nodeName,r=Hn.get(t);if(r)return r;Hn.set(t,r=[]);for(var n,a=e,i=Element.prototype;i!==a;){n=Va(a);for(var o in n)n[o].set&&r.push(o);a=Jn(a)}return r}function br(e,t,r=t){var n=new WeakSet;ba(e,"input",async a=>{var i=a?e.defaultValue:e.value;if(i=Gr(e)?Wr(i):i,r(i),U!==null&&n.add(U),await si(),i!==(i=t())){var o=e.selectionStart,v=e.selectionEnd,l=e.value.length;if(e.value=i??"",v!==null){var c=e.value.length;o===v&&v===l&&c>l?(e.selectionStart=c,e.selectionEnd=c):(e.selectionStart=o,e.selectionEnd=Math.min(v,c))}}}),Hr(t)==null&&e.value&&(r(Gr(e)?Wr(e.value):e.value),U!==null&&n.add(U)),yn(()=>{var a=t();if(e===document.activeElement){var i=U;if(n.has(i))return}Gr(e)&&a===Wr(e.value)||e.type==="date"&&!a&&!e.value||a!==e.value&&(e.value=a??"")})}function Gr(e){var t=e.type;return t==="number"||t==="range"}function Wr(e){return e===""?null:+e}function Kn(e,t){return e===t||(e==null?void 0:e[Ft])===t}function cn(e={},t,r,n){var a=qe.r,i=ee;return ka(()=>{var o,v;return yn(()=>{o=v,v=[],Hr(()=>{e!==r(...v)&&(t(e,...v),o&&Kn(r(...o),e)&&t(null,...o))})}),()=>{let l=i;for(;l!==a&&l.parent!==null&&l.parent.f&Zr;)l=l.parent;const c=()=>{v&&Kn(r(...v),e)&&t(null,...v)},f=l.teardown;l.teardown=()=>{c(),f==null||f()}}}),e}function Yt(e,t,r,n){var S;var a=(r&ps)!==0,i=(r&ms)!==0,o=n,v=!0,l=()=>(v&&(v=!1,o=i?Hr(n):n),o);let c;if(a){var f=Ft in e||Xa in e;c=((S=Qt(e,t))==null?void 0:S.set)??(f&&t in e?T=>e[t]=T:void 0)}var w,g=!1;a?[w,g]=Ps(()=>e[t]):w=e[t],w===void 0&&n!==void 0&&(w=l(),c&&(is(),c(w)));var P;if(P=()=>{var T=e[t];return T===void 0?l():(v=!0,T)},(r&gs)===0)return P;if(c){var p=e.$$legacy;return(function(T,N){return arguments.length>0?((!N||p||g)&&c(N?P():T),T):P()})}var A=!1,u=((r&hs)!==0?qr:ua)(()=>(A=!1,P()));a&&s(u);var m=ee;return(function(T,N){if(arguments.length>0){const O=N?s(u):a?Se(T):T;return h(u,O),A=!0,o!==void 0&&(o=O),T}return Pt&&A||(m.f&Ye)!==0?u.v:s(u)})}const Ci="5";var Yn;typeof window<"u"&&((Yn=window.__svelte??(window.__svelte={})).v??(Yn.v=new Set)).add(Ci);async function Qe(e,t){const r=await fetch(`/api${e}`,{headers:{"Content-Type":"application/json"},...t});if(!r.ok){const n=await r.json().catch(()=>({error:r.statusText}));throw new Error(n.error||"Request failed")}return r.json()}const ze={getProjects:()=>Qe("/projects"),getProject:e=>Qe(`/projects/${e}`),updateProject:(e,t)=>Qe(`/projects/${e}`,{method:"PATCH",body:JSON.stringify(t)}),getTasks:e=>Qe(`/projects/${e}/tasks?include_done=true`),createTask:(e,t)=>Qe(`/projects/${e}/tasks`,{method:"POST",body:JSON.stringify(t)}),updateTask:(e,t)=>Qe(`/tasks/${e}`,{method:"PATCH",body:JSON.stringify(t)}),deleteTask:e=>Qe(`/tasks/${e}`,{method:"DELETE"}),getNotes:e=>Qe(`/projects/${e}/notes`),getDecisions:e=>Qe(`/projects/${e}/decisions`),getTaskHistory:e=>Qe(`/tasks/${e}/history`),getMetrics:(e,t)=>Qe(`/projects/${e}/metrics${t?`?days=${t}`:""}`)};var ji=C('<input class="rename-input svelte-1kanzy0" type="text"/>'),Pi=C('<span class="project-slug svelte-1kanzy0"> </span>'),Ai=C('<span class="project-name svelte-1kanzy0"> </span> <!> <button class="rename-btn svelte-1kanzy0" title="Rename project">✎</button>',1),Di=C('<div class="project-area svelte-1kanzy0"><!></div>'),Oi=C('<header class="toolbar svelte-1kanzy0"><!></header>');function Ni(e,t){Ne(t,!0);let r=R(!1),n=R("");const a=le(()=>t.projects.find(w=>w.id===t.selectedId));function i(){s(a)&&(h(n,s(a).name,!0),h(r,!0))}function o(){if(!s(a)||!s(r))return;const w=s(n).trim();w&&w!==s(a).name&&t.onRenamed(s(a).id,w),h(r,!1)}function v(w){w.key==="Enter"&&o(),w.key==="Escape"&&h(r,!1)}var l=Oi(),c=d(l);{var f=w=>{var g=Di(),P=d(g);{var p=u=>{var m=ji();mn(m),Oe("blur",m,o),re("keydown",m,v),br(m,()=>s(n),S=>h(n,S)),x(u,m)},A=u=>{var m=Ai(),S=et(m),T=d(S),N=y(S,2);{var O=j=>{var I=Pi(),q=d(I);z(()=>M(q,`[${s(a).slug??""}]`)),x(j,I)};B(N,j=>{s(a).slug&&j(O)})}var L=y(N,2);z(()=>M(T,s(a).name)),re("click",L,i),x(u,m)};B(P,u=>{s(r)?u(p):u(A,-1)})}x(w,g)};B(c,w=>{s(a)&&w(f)})}x(e,l),Ie()}Be(["keydown","click"]);var Ii=C('<span class="brand svelte-rig7vt"><span class="prompt svelte-rig7vt">></span> mindpm</span>'),Mi=C('<span class="task-count svelte-rig7vt"> </span>'),Ri=C('<span class="project-name svelte-rig7vt"> </span> <!>',1),Li=C('<span class="task-count svelte-rig7vt"> </span>'),zi=C('<span class="project-slug-collapsed svelte-rig7vt"> </span> <!>',1),Fi=C('<button><span class="status-dot svelte-rig7vt"></span> <!></button>'),qi=C('<div class="sidebar-footer svelte-rig7vt"><span class="footer-hint svelte-rig7vt"> </span></div>'),Bi=C('<aside><div class="sidebar-header svelte-rig7vt"><!> <button class="collapse-btn svelte-rig7vt"> </button></div> <nav class="project-list svelte-rig7vt"></nav> <!></aside>');function Hi(e,t){Ne(t,!0);const r="mindpm_sidebar_collapsed";let n=R(localStorage.getItem(r)==="true");function a(){h(n,!s(n)),localStorage.setItem(r,String(s(n)))}const i={active:"var(--primary)",paused:"#d29922",completed:"var(--text-muted)",archived:"var(--border-bright)"};var o=Bi();let v;var l=d(o),c=d(l);{var f=u=>{var m=Ii();x(u,m)};B(c,u=>{s(n)||u(f)})}var w=y(c,2),g=d(w),P=y(l,2);xe(P,21,()=>t.projects,u=>u.id,(u,m)=>{var S=Fi();let T;var N=d(S),O=y(N,2);{var L=I=>{var q=Ri(),K=et(q),ie=d(K),F=y(K,2);{var G=H=>{var Z=Mi(),te=d(Z);z(()=>M(te,s(m).active_task_count)),x(H,Z)};B(F,H=>{(s(m).active_task_count??0)>0&&H(G)})}z(()=>M(ie,s(m).name)),x(I,q)},j=I=>{var q=zi(),K=et(q),ie=d(K),F=y(K,2);{var G=H=>{var Z=Li(),te=d(Z);z(()=>M(te,s(m).active_task_count)),x(H,Z)};B(F,H=>{(s(m).active_task_count??0)>0&&H(G)})}z(()=>M(ie,s(m).slug??s(m).id)),x(I,q)};B(O,I=>{s(n)?I(j,-1):I(L)})}z(()=>{T=fe(S,1,"project-item svelte-rig7vt",null,T,{active:s(m).id===t.selectedId}),Bn(S,"title",s(n)?s(m).name:void 0),xn(N,`background: ${i[s(m).status]??"var(--text-muted)"??""}`)}),re("click",S,()=>t.onSelect(s(m).id)),x(u,S)});var p=y(P,2);{var A=u=>{var m=qi(),S=d(m),T=d(S);z(()=>M(T,`// ${t.projects.length??""} project${t.projects.length!==1?"s":""}`)),x(u,m)};B(p,u=>{s(n)||u(A)})}z(()=>{v=fe(o,1,"sidebar svelte-rig7vt",null,v,{collapsed:s(n)}),Bn(w,"title",s(n)?"Expand sidebar":"Collapse sidebar"),M(g,s(n)?"»":"«")}),re("click",w,a),x(e,o),Ie()}Be(["click"]);const Ki=[{status:"todo",label:"Todo"},{status:"in_progress",label:"In Progress"},{status:"blocked",label:"Blocked"},{status:"in_review",label:"In Review"},{status:"done",label:"Done"},{status:"cancelled",label:"Cancelled"}],za=["critical","high","medium","low"];var Ui=C('<span class="task-id svelte-35ep21"> </span>'),Vi=C('<div class="card-desc svelte-35ep21"> </div>'),Yi=C('<span class="tag svelte-35ep21"> </span>'),Ji=C('<div class="card-tags svelte-35ep21"></div>'),Gi=C('<span class="badge badge-blocked svelte-35ep21"> </span>'),Wi=C('<span class="badge badge-subtasks svelte-35ep21"> </span>'),Qi=C('<div class="card-footer svelte-35ep21"><!> <!></div>'),Zi=C('<div draggable="true" role="button" tabindex="0"><div class="card-header svelte-35ep21"><span> </span> <div class="card-header-right svelte-35ep21"><!> <button class="delete-btn svelte-35ep21" title="Delete task">×</button></div></div> <div class="card-title svelte-35ep21"> </div> <!> <!> <!></div>');function Xi(e,t){Ne(t,!0);let r=Yt(t,"subtaskCount",3,0),n=R(!1);function a(F){if(!F)return[];try{return JSON.parse(F)}catch{return[]}}const i=le(()=>a(t.task.tags)),o=le(()=>`priority-${t.task.priority}`),v=le(()=>()=>{if(!t.task.blocked_by)return 0;try{const F=JSON.parse(t.task.blocked_by);return Array.isArray(F)?F.length:0}catch{return 0}});function l(F){h(n,!0),t.onDragStart(F,t.task)}function c(){h(n,!1)}var f=Zi();let w;var g=d(f),P=d(g),p=d(P),A=y(P,2),u=d(A);{var m=F=>{var G=Ui(),H=d(G);z(()=>M(H,t.task.short_id)),x(F,G)};B(u,F=>{t.task.short_id&&F(m)})}var S=y(u,2),T=y(g,2),N=d(T),O=y(T,2);{var L=F=>{var G=Vi(),H=d(G);z(()=>M(H,t.task.description)),x(F,G)};B(O,F=>{t.task.description&&F(L)})}var j=y(O,2);{var I=F=>{var G=Ji();xe(G,21,()=>s(i),gt,(H,Z)=>{var te=Yi(),W=d(te);z(()=>M(W,s(Z))),x(H,te)}),x(F,G)};B(j,F=>{s(i).length>0&&F(I)})}var q=y(j,2);{var K=F=>{var G=Qi(),H=d(G);{var Z=V=>{var se=Gi(),X=d(se);z(ne=>M(X,`⊘ blocked by ${ne??""}`),[()=>s(v)()]),x(V,se)},te=le(()=>s(v)()>0);B(H,V=>{s(te)&&V(Z)})}var W=y(H,2);{var ae=V=>{var se=Wi(),X=d(se);z(()=>M(X,`⑂ ${r()??""}`)),x(V,se)};B(W,V=>{r()>0&&V(ae)})}x(F,G)},ie=le(()=>s(v)()>0||r()>0);B(q,F=>{s(ie)&&F(K)})}z(()=>{w=fe(f,1,`card ${s(o)??""}`,"svelte-35ep21",w,{dragging:s(n)}),fe(P,1,`priority-badge ${s(o)??""}`,"svelte-35ep21"),M(p,t.task.priority),M(N,t.task.title)}),Oe("dragstart",f,l),Oe("dragend",f,c),re("click",f,()=>t.onEdit(t.task)),re("keydown",f,F=>{F.key==="Enter"&&t.onEdit(t.task)}),re("click",S,F=>{F.stopPropagation(),t.onDelete(t.task)}),x(e,f),Ie()}Be(["click","keydown"]);var $i=C('<div class="column-collapsed svelte-zswfgn"><button class="expand-btn svelte-zswfgn" title="Expand column">»</button> <div class="collapsed-label svelte-zswfgn"><span> </span> <span class="collapsed-text svelte-zswfgn"> </span></div></div>'),el=C('<button class="add-btn svelte-zswfgn" title="Add task">+</button>'),tl=C('<div class="wip-banner svelte-zswfgn"> </div>'),rl=C('<div class="column-header svelte-zswfgn"><h3 class="svelte-zswfgn"><span class="chevron svelte-zswfgn">▸</span> <span> </span></h3> <div class="header-actions svelte-zswfgn"><!> <button class="collapse-btn svelte-zswfgn" title="Collapse column">«</button></div></div> <!> <div class="card-list svelte-zswfgn"></div>',1),nl=C('<div role="list"><!></div>');function al(e,t){Ne(t,!0);const r=5,n="mindpm_collapsed_cols";let a=R(!1);function i(){try{const S=localStorage.getItem(n);return(S?JSON.parse(S):[]).includes(t.status)}catch{return!1}}function o(S){try{const T=localStorage.getItem(n),N=T?JSON.parse(T):[],O=S?[...new Set([...N,t.status])]:N.filter(L=>L!==t.status);localStorage.setItem(n,JSON.stringify(O))}catch{}}let v=R(Se(i()));function l(){h(v,!s(v)),o(s(v))}const c=le(()=>t.status==="in_progress"&&t.tasks.length>r);function f(S){S.preventDefault(),S.dataTransfer&&(S.dataTransfer.dropEffect="move"),h(a,!0)}function w(){h(a,!1)}function g(S){S.preventDefault(),h(a,!1),t.onDrop(t.status)}var P=nl();let p;var A=d(P);{var u=S=>{var T=$i(),N=d(T),O=y(N,2),L=d(O);let j;var I=d(L),q=y(L,2),K=d(q);z(()=>{j=fe(L,1,"collapsed-count svelte-zswfgn",null,j,{wip:s(c)}),M(I,`[${t.tasks.length??""}]`),M(K,t.label)}),re("click",N,l),x(S,T)},m=S=>{var T=rl(),N=et(T),O=d(N),L=y(d(O)),j=y(L);let I;var q=d(j),K=y(O,2),ie=d(K);{var F=W=>{var ae=el();re("click",ae,()=>t.onAddTask(t.status)),x(W,ae)};B(ie,W=>{t.status==="todo"&&W(F)})}var G=y(ie,2),H=y(N,2);{var Z=W=>{var ae=tl(),V=d(ae);z(()=>M(V,`WIP limit exceeded (${t.tasks.length??""}/5)`)),x(W,ae)};B(H,W=>{s(c)&&W(Z)})}var te=y(H,2);xe(te,21,()=>t.tasks,W=>W.id,(W,ae)=>{{let V=le(()=>t.subtaskCounts.get(s(ae).id)??0);Xi(W,{get task(){return s(ae)},get subtaskCount(){return s(V)},get onEdit(){return t.onEdit},get onDelete(){return t.onDelete},get onDragStart(){return t.onDragStart}})}}),z(()=>{M(L,` ${t.label??""} `),I=fe(j,1,"count svelte-zswfgn",null,I,{wip:s(c)}),M(q,`[${t.tasks.length??""}${s(c)?" ⚠":""}]`)}),re("click",G,l),x(S,T)};B(A,S=>{s(v)?S(u):S(m,-1)})}z(()=>p=fe(P,1,"column svelte-zswfgn",null,p,{"drag-over":s(a),collapsed:s(v),"wip-warning":s(c)})),Oe("dragover",P,f),Oe("dragleave",P,w),Oe("drop",P,g),x(e,P),Ie()}Be(["click"]);var sl=C('<span class="modal-task-id svelte-1gmf2hi"> </span>'),il=C("<option> </option>"),ll=C('<div class="field svelte-1gmf2hi"><label for="status" class="svelte-1gmf2hi">Status</label> <select id="status" class="svelte-1gmf2hi"><option>Todo</option><option>In Progress</option><option>Blocked</option><option>In Review</option><option>Done</option><option>Cancelled</option></select></div>'),ol=C('<span class="blocker-id svelte-1gmf2hi"> </span>'),vl=C("<span> </span>"),ul=C('<div class="blocked-item svelte-1gmf2hi"><!> <span class="blocker-title svelte-1gmf2hi"> </span> <!></div>'),cl=C('<div class="blocked-section svelte-1gmf2hi"><h3 class="section-heading svelte-1gmf2hi">Blocked by</h3> <div class="blocked-list svelte-1gmf2hi"></div></div>'),fl=C('<div class="history-item svelte-1gmf2hi"><span class="history-dot svelte-1gmf2hi"></span> <div class="history-body svelte-1gmf2hi"><span class="history-event svelte-1gmf2hi"></span> <span class="history-time svelte-1gmf2hi"> </span></div></div>'),dl=C('<div class="history-section svelte-1gmf2hi"><h3 class="history-heading svelte-1gmf2hi">History</h3> <div class="history-list svelte-1gmf2hi"></div></div>'),_l=C('<div class="modal-backdrop svelte-1gmf2hi"><div class="modal svelte-1gmf2hi"><div class="modal-header svelte-1gmf2hi"><div class="modal-title svelte-1gmf2hi"><h2 class="svelte-1gmf2hi"> </h2> <!></div> <button class="close-btn svelte-1gmf2hi">×</button></div> <form><div class="field svelte-1gmf2hi"><label for="title" class="svelte-1gmf2hi">Title</label> <input id="title" type="text" placeholder="Task title" required="" class="svelte-1gmf2hi"/></div> <div class="field svelte-1gmf2hi"><label for="description" class="svelte-1gmf2hi">Description</label> <textarea id="description" placeholder="Optional description" rows="3" class="svelte-1gmf2hi"></textarea></div> <div class="row svelte-1gmf2hi"><div class="field svelte-1gmf2hi"><label for="priority" class="svelte-1gmf2hi">Priority</label> <select id="priority" class="svelte-1gmf2hi"></select></div> <!></div> <div class="field svelte-1gmf2hi"><label for="tags" class="svelte-1gmf2hi">Tags <span class="hint svelte-1gmf2hi">(comma-separated)</span></label> <input id="tags" type="text" placeholder="e.g. backend, auth, bug" class="svelte-1gmf2hi"/></div> <div class="actions svelte-1gmf2hi"><button type="button" class="btn-cancel svelte-1gmf2hi">Cancel</button> <button type="submit" class="btn-save svelte-1gmf2hi"> </button></div></form> <!> <!></div></div>');function hl(e,t){Ne(t,!0);let r=Yt(t,"allTasks",19,()=>[]),n=Yt(t,"defaultStatus",3,"todo"),a=R(""),i=R(""),o=R("medium"),v=R("todo"),l=R(""),c=R(Se([]));rt(()=>{var b,D,Y,oe,ue;if(h(a,((b=t.task)==null?void 0:b.title)??"",!0),h(i,((D=t.task)==null?void 0:D.description)??"",!0),h(o,((Y=t.task)==null?void 0:Y.priority)??"medium",!0),h(v,((oe=t.task)==null?void 0:oe.status)??n(),!0),(ue=t.task)!=null&&ue.tags)try{h(l,JSON.parse(t.task.tags).join(", "),!0)}catch{h(l,"")}else h(l,"")}),rt(()=>{t.task!==null?ze.getTaskHistory(t.task.id).then(b=>{h(c,b,!0)}).catch(()=>{h(c,[],!0)}):h(c,[],!0)});const f=le(()=>t.task!==null),w=le(()=>()=>{var b;if(!((b=t.task)!=null&&b.blocked_by))return[];try{const D=JSON.parse(t.task.blocked_by);if(!Array.isArray(D)||D.length===0)return[];const Y=new Map(r().map(oe=>[oe.id,oe]));return D.map(oe=>Y.get(oe)??{id:oe,title:oe,short_id:null,status:null})}catch{return[]}});function g(b){switch(b.event){case"created":return"<b>created</b>";case"status_changed":return`status <b>${b.old_value}</b> → <b>${b.new_value}</b>`;case"priority_changed":return`priority <b>${b.old_value}</b> → <b>${b.new_value}</b>`;case"title_changed":return"title renamed";default:return b.event.replace(/_/g," ")}}function P(b){return new Date(b.replace(" ","T")+"Z").toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function p(b){b.preventDefault();const D=s(a).trim();if(!D)return;const Y=s(l).split(",").map(oe=>oe.trim()).filter(Boolean);t.onSave({title:D,description:s(i).trim(),priority:s(o),...s(f)?{status:s(v)}:{},tags:Y})}function A(b){b.target.classList.contains("modal-backdrop")&&t.onClose()}function u(b){b.key==="Escape"&&t.onClose()}var m=_l();Oe("keydown",jt,u);var S=d(m),T=d(S),N=d(T),O=d(N),L=d(O),j=y(O,2);{var I=b=>{var D=sl(),Y=d(D);z(()=>M(Y,t.task.short_id)),x(b,D)};B(j,b=>{var D;(D=t.task)!=null&&D.short_id&&b(I)})}var q=y(N,2),K=y(T,2),ie=d(K),F=y(d(ie),2);mn(F);var G=y(ie,2),H=y(d(G),2),Z=y(G,2),te=d(Z),W=y(d(te),2);xe(W,21,()=>za,gt,(b,D)=>{var Y=il(),oe=d(Y),ue={};z(()=>{M(oe,s(D)),ue!==(ue=s(D))&&(Y.value=(Y.__value=s(D))??"")}),x(b,Y)});var ae=y(te,2);{var V=b=>{var D=ll(),Y=y(d(D),2),oe=d(Y);oe.value=oe.__value="todo";var ue=y(oe);ue.value=ue.__value="in_progress";var je=y(ue);je.value=je.__value="blocked";var st=y(je);st.value=st.__value="in_review";var mt=y(st);mt.value=mt.__value="done";var Dt=y(mt);Dt.value=Dt.__value="cancelled",qn(Y,()=>s(v),dr=>h(v,dr)),x(b,D)};B(ae,b=>{s(f)&&b(V)})}var se=y(Z,2),X=y(d(se),2),ne=y(se,2),ve=d(ne),ge=y(ve,2),ke=d(ge),Te=y(K,2);{var ce=b=>{var D=cl(),Y=y(d(D),2);xe(Y,21,()=>s(w)(),gt,(oe,ue)=>{var je=ul(),st=d(je);{var mt=Ot=>{var Gt=ol(),Ur=d(Gt);z(()=>M(Ur,s(ue).short_id)),x(Ot,Gt)};B(st,Ot=>{s(ue).short_id&&Ot(mt)})}var Dt=y(st,2),dr=d(Dt),Kr=y(Dt,2);{var Fa=Ot=>{var Gt=vl(),Ur=d(Gt);z(()=>{fe(Gt,1,`blocker-status blocker-status-${s(ue).status??""}`,"svelte-1gmf2hi"),M(Ur,s(ue).status)}),x(Ot,Gt)};B(Kr,Ot=>{s(ue).status&&Ot(Fa)})}z(()=>M(dr,s(ue).title)),x(oe,je)}),x(b,D)},Ee=le(()=>s(f)&&s(w)().length>0);B(Te,b=>{s(Ee)&&b(ce)})}var k=y(Te,2);{var E=b=>{var D=dl(),Y=y(d(D),2);xe(Y,21,()=>s(c),oe=>oe.id,(oe,ue)=>{var je=fl(),st=y(d(je),2),mt=d(st);mi(mt,()=>g(s(ue)),!0);var Dt=y(mt,2),dr=d(Dt);z(Kr=>M(dr,Kr),[()=>P(s(ue).created_at)]),x(oe,je)}),x(b,D)};B(k,b=>{s(f)&&s(c).length>0&&b(E)})}z(()=>{M(L,s(f)?"Edit Task":"New Task"),M(ke,s(f)?"Save":"Create")}),re("click",m,A),re("click",q,function(...b){var D;(D=t.onClose)==null||D.apply(this,b)}),Oe("submit",K,p),br(F,()=>s(a),b=>h(a,b)),br(H,()=>s(i),b=>h(i,b)),qn(W,()=>s(o),b=>h(o,b)),br(X,()=>s(l),b=>h(l,b)),re("click",ve,function(...b){var D;(D=t.onClose)==null||D.apply(this,b)}),x(e,m),Ie()}Be(["click"]);var gl=C('<div class="modal-backdrop svelte-1efofyg"><div class="dialog svelte-1efofyg"><h3 class="svelte-1efofyg"> </h3> <p class="svelte-1efofyg"> </p> <div class="actions svelte-1efofyg"><button class="btn-cancel svelte-1efofyg">Cancel</button> <button class="btn-confirm svelte-1efofyg"> </button></div></div></div>');function pl(e,t){Ne(t,!0);let r=Yt(t,"confirmLabel",3,"Delete");function n(A){A.target.classList.contains("modal-backdrop")&&t.onCancel()}function a(A){A.key==="Escape"&&t.onCancel()}var i=gl();Oe("keydown",jt,a);var o=d(i),v=d(o),l=d(v),c=y(v,2),f=d(c),w=y(c,2),g=d(w),P=y(g,2),p=d(P);z(()=>{M(l,t.title),M(f,t.message),M(p,r())}),re("click",i,n),re("click",g,function(...A){var u;(u=t.onCancel)==null||u.apply(this,A)}),re("click",P,function(...A){var u;(u=t.onConfirm)==null||u.apply(this,A)}),x(e,i),Ie()}Be(["click"]);var ml=C('<button class="clear-input svelte-dhotvj">×</button>'),wl=C("<button> </button>"),bl=C('<button><span class="tag-checkbox svelte-dhotvj"> </span> <span class="tag-name svelte-dhotvj"> </span></button>'),yl=C('<button class="tag-clear svelte-dhotvj">clear tags</button>'),kl=C('<div class="tag-dropdown svelte-dhotvj"><!> <!></div>'),Tl=C('<div class="filter-section tag-dropdown-wrapper svelte-dhotvj"><span class="filter-label svelte-dhotvj">tags:</span> <button><!></button> <!></div>'),El=C('<button class="clear-all svelte-dhotvj"> </button>'),Sl=C('<div class="filter-bar svelte-dhotvj"><div class="filter-search svelte-dhotvj"><span class="search-icon svelte-dhotvj">/</span> <input type="text" placeholder="search tasks..." class="svelte-dhotvj"/> <!></div> <div class="filter-section svelte-dhotvj"><span class="filter-label svelte-dhotvj">priority:</span> <div class="chip-group svelte-dhotvj"></div></div> <!> <!> <div class="shortcuts-hint svelte-dhotvj"><span class="svelte-dhotvj"><kbd class="svelte-dhotvj">N</kbd> new</span> <span class="svelte-dhotvj"><kbd class="svelte-dhotvj">/</kbd> search</span> <span class="svelte-dhotvj"><kbd class="svelte-dhotvj">Ctrl K</kbd> palette</span></div></div>');function xl(e,t){Ne(t,!0);let r=Yt(t,"focusSearch",15,null),n=R(null),a=R(!1),i=R(null);rt(()=>{r(()=>{var O;return(O=s(n))==null?void 0:O.focus()})});const o=le(()=>(t.searchQuery.trim()?1:0)+t.selectedPriorities.size+t.selectedTags.size),v={critical:"var(--priority-critical)",high:"var(--priority-high)",medium:"var(--priority-medium)",low:"var(--text-muted)"};function l(O){O.key==="Escape"&&h(a,!1)}function c(O){s(i)&&!s(i).contains(O.target)&&h(a,!1)}var f=Sl();Oe("click",jt,c),Oe("keydown",jt,l);var w=d(f),g=y(d(w),2);cn(g,O=>h(n,O),()=>s(n));var P=y(g,2);{var p=O=>{var L=ml();re("click",L,()=>t.onSearchChange("")),x(O,L)};B(P,O=>{t.searchQuery&&O(p)})}var A=y(w,2),u=y(d(A),2);xe(u,21,()=>za,gt,(O,L)=>{var j=wl();let I;var q=d(j);z(K=>{I=fe(j,1,"chip svelte-dhotvj",null,I,K),xn(j,`--chip-color: ${v[s(L)]??""}`),M(q,s(L))},[()=>({active:t.selectedPriorities.has(s(L))})]),re("click",j,()=>t.onPriorityToggle(s(L))),x(O,j)});var m=y(A,2);{var S=O=>{var L=Tl(),j=y(d(L),2);let I;var q=d(j);{var K=H=>{var Z=Ln();z(()=>M(Z,`[${t.selectedTags.size??""}] ▾`)),x(H,Z)},ie=H=>{var Z=Ln("all ▾");x(H,Z)};B(q,H=>{t.selectedTags.size>0?H(K):H(ie,-1)})}var F=y(j,2);{var G=H=>{var Z=kl(),te=d(Z);xe(te,17,()=>t.allTags,gt,(V,se)=>{var X=bl();let ne;var ve=d(X),ge=d(ve),ke=y(ve,2),Te=d(ke);z((ce,Ee)=>{ne=fe(X,1,"tag-option svelte-dhotvj",null,ne,ce),M(ge,Ee),M(Te,`#${s(se)??""}`)},[()=>({selected:t.selectedTags.has(s(se))}),()=>t.selectedTags.has(s(se))?"✓":" "]),re("click",X,ce=>{ce.stopPropagation(),t.onTagToggle(s(se))}),x(V,X)});var W=y(te,2);{var ae=V=>{var se=yl();re("click",se,X=>{X.stopPropagation(),t.selectedTags.forEach(ne=>t.onTagToggle(ne))}),x(V,se)};B(W,V=>{t.selectedTags.size>0&&V(ae)})}x(H,Z)};B(F,H=>{s(a)&&H(G)})}cn(L,H=>h(i,H),()=>s(i)),z(()=>I=fe(j,1,"dropdown-trigger svelte-dhotvj",null,I,{active:t.selectedTags.size>0})),re("click",j,H=>{H.stopPropagation(),h(a,!s(a))}),x(O,L)};B(m,O=>{t.allTags.length>0&&O(S)})}var T=y(m,2);{var N=O=>{var L=El(),j=d(L);z(()=>M(j,`clear [${s(o)??""}]`)),re("click",L,function(...I){var q;(q=t.onClear)==null||q.apply(this,I)}),x(O,L)};B(T,O=>{s(o)>0&&O(N)})}z(()=>Si(g,t.searchQuery)),re("input",g,O=>t.onSearchChange(O.target.value)),x(e,f),Ie()}Be(["input","click"]);var Cl=C('<div class="board-message svelte-x7v2jt">Loading tasks...</div>'),jl=C('<div class="board-message error svelte-x7v2jt"> <button class="svelte-x7v2jt">Retry</button></div>'),Pl=C('<div class="board svelte-x7v2jt"></div>'),Al=C('<!> <div class="board-wrapper svelte-x7v2jt"><!></div> <!> <!>',1);function Dl(e,t){Ne(t,!0);let r=Yt(t,"triggerNewTask",3,!1),n=Yt(t,"openTask",3,null),a=R(Se([])),i=R(!0),o=R(null),v=R(!1),l=R(null),c=R("todo"),f=R(!1),w=R(null),g=R(null),P=R(""),p=R(Se(new Set)),A=R(Se(new Set));const u=le(()=>()=>{const k=new Map;for(const E of s(a))E.parent_task_id&&k.set(E.parent_task_id,(k.get(E.parent_task_id)??0)+1);return k}),m=le(()=>()=>{const k=new Set;for(const E of s(a))if(E.tags)try{for(const b of JSON.parse(E.tags))k.add(b)}catch{}return[...k].sort()}),S=le(()=>()=>{let k=s(a);const E=s(P).trim().toLowerCase();return E&&(k=k.filter(b=>b.title.toLowerCase().includes(E)||(b.description??"").toLowerCase().includes(E)||(b.short_id??"").toLowerCase().includes(E))),s(p).size>0&&(k=k.filter(b=>s(p).has(b.priority))),s(A).size>0&&(k=k.filter(b=>{if(!b.tags)return!1;try{return JSON.parse(b.tags).some(Y=>s(A).has(Y))}catch{return!1}})),k}),T={critical:0,high:1,medium:2,low:3},N=le(()=>Ki.map(k=>{const E=s(S)().filter(b=>b.status===k.status);return k.status==="done"||k.status==="cancelled"?E.sort((b,D)=>(D.updated_at??"").localeCompare(b.updated_at??"")):E.sort((b,D)=>{const Y=(T[b.priority]??3)-(T[D.priority]??3);return Y!==0?Y:(D.created_at??"").localeCompare(b.created_at??"")}),{...k,tasks:E}}));function O(k){const E=new Set(s(p));E.has(k)?E.delete(k):E.add(k),h(p,E,!0)}function L(k){const E=new Set(s(A));E.has(k)?E.delete(k):E.add(k),h(A,E,!0)}function j(){h(P,""),h(p,new Set,!0),h(A,new Set,!0)}let I=R(null);function q(k){var D;const E=k.target.tagName;E==="INPUT"||E==="TEXTAREA"||E==="SELECT"||k.ctrlKey||k.metaKey||k.altKey||(k.key==="n"||k.key==="N"?(k.preventDefault(),G("todo")):k.key==="/"&&(k.preventDefault(),(D=s(I))==null||D()))}rt(()=>{var k;r()&&(G("todo"),(k=t.onNewTaskTriggered)==null||k.call(t))}),rt(()=>{var k;n()&&(h(l,n()),h(v,!0),(k=t.onOpenTaskHandled)==null||k.call(t))});async function K(){h(i,!0),h(o,null);try{h(a,await ze.getTasks(t.project.id),!0)}catch(k){h(o,k.message,!0)}finally{h(i,!1)}}rt(()=>{t.project.id,K()});function ie(k,E){h(g,E,!0),k.dataTransfer&&(k.dataTransfer.effectAllowed="move",k.dataTransfer.setData("text/plain",E.id))}async function F(k){if(!s(g)||s(g).status===k){h(g,null);return}const E=s(g),b=E.status;h(g,null);const D=s(a).findIndex(Y=>Y.id===E.id);D!==-1&&(s(a)[D]={...s(a)[D],status:k});try{await ze.updateTask(E.id,{status:k})}catch(Y){D!==-1&&(s(a)[D]={...s(a)[D],status:b}),h(o,Y.message,!0)}}function G(k){h(l,null),h(c,k,!0),h(v,!0)}function H(k){h(l,k,!0),h(v,!0)}async function Z(k){try{if(s(l)){const E=await ze.updateTask(s(l).id,{title:k.title,description:k.description||null,priority:k.priority,status:k.status,tags:k.tags.length>0?k.tags.join(","):null}),b=s(a).findIndex(D=>D.id===s(l).id);b!==-1&&(s(a)[b]=E)}else{const E=await ze.createTask(t.project.id,{title:k.title,description:k.description||void 0,priority:k.priority,tags:k.tags.length>0?k.tags:void 0});h(a,[E,...s(a)],!0)}h(v,!1),h(l,null)}catch(E){h(o,E.message,!0)}}function te(k){h(w,k,!0),h(f,!0)}async function W(){if(s(w))try{await ze.deleteTask(s(w).id),h(a,s(a).filter(k=>k.id!==s(w).id&&k.parent_task_id!==s(w).id),!0),h(f,!1),h(w,null)}catch(k){h(o,k.message,!0)}}var ae=Al();Oe("keydown",jt,q);var V=et(ae);{let k=le(()=>s(m)());xl(V,{get allTags(){return s(k)},get searchQuery(){return s(P)},get selectedPriorities(){return s(p)},get selectedTags(){return s(A)},onSearchChange:E=>{h(P,E,!0)},onPriorityToggle:O,onTagToggle:L,onClear:j,get focusSearch(){return s(I)},set focusSearch(E){h(I,E,!0)}})}var se=y(V,2),X=d(se);{var ne=k=>{var E=Cl();x(k,E)},ve=k=>{var E=jl(),b=d(E),D=y(b);z(()=>M(b,`${s(o)??""} `)),re("click",D,()=>{h(o,null),K()}),x(k,E)},ge=k=>{var E=Pl();xe(E,21,()=>s(N),b=>b.status,(b,D)=>{{let Y=le(()=>s(u)());al(b,{get status(){return s(D).status},get label(){return s(D).label},get tasks(){return s(D).tasks},get subtaskCounts(){return s(Y)},onEdit:H,onDelete:te,onDragStart:ie,onDrop:F,onAddTask:G})}}),x(k,E)};B(X,k=>{s(i)?k(ne):s(o)?k(ve,1):k(ge,-1)})}var ke=y(se,2);{var Te=k=>{hl(k,{get task(){return s(l)},get projectId(){return t.project.id},get allTasks(){return s(a)},get defaultStatus(){return s(c)},onSave:Z,onClose:()=>{h(v,!1),h(l,null)}})};B(ke,k=>{s(v)&&k(Te)})}var ce=y(ke,2);{var Ee=k=>{pl(k,{title:"Delete Task",get message(){return`Are you sure you want to delete "${s(w).title??""}"? This cannot be undone.`},onConfirm:W,onCancel:()=>{h(f,!1),h(w,null)}})};B(ce,k=>{s(f)&&s(w)&&k(Ee)})}x(e,ae),Ie()}Be(["click"]);var Ol=C('<div class="state-msg svelte-mwtig8"><span class="prompt svelte-mwtig8">></span> loading notes...</div>'),Nl=C('<div class="state-msg err svelte-mwtig8"> </div>'),Il=C('<div class="state-msg muted svelte-mwtig8">// no notes yet — use add_note via MCP tools</div>'),Ml=C('<span class="tag svelte-mwtig8"> </span>'),Rl=C('<div class="tags svelte-mwtig8"></div>'),Ll=C('<span class="task-link svelte-mwtig8"> </span>'),zl=C('<div class="card-footer svelte-mwtig8"><!> <!></div>'),Fl=C('<div class="card svelte-mwtig8"><div class="card-header svelte-mwtig8"><span class="category svelte-mwtig8"> </span> <span class="date svelte-mwtig8"> </span></div> <div class="content svelte-mwtig8"> </div> <!></div>'),ql=C('<div class="list svelte-mwtig8"></div>'),Bl=C('<div class="view svelte-mwtig8"><!></div>');function Hl(e,t){Ne(t,!0);let r=R(Se([])),n=R(Se([])),a=R(!0),i=R(null);rt(()=>{h(a,!0),h(i,null),Promise.all([ze.getNotes(t.projectId),ze.getTasks(t.projectId)]).then(([u,m])=>{h(r,u,!0),h(n,m,!0)}).catch(u=>{h(i,u.message,!0)}).finally(()=>{h(a,!1)})});const o=le(()=>new Map(s(n).map(u=>[u.id,u]))),v={general:"var(--text-muted)",architecture:"#3d98f4",bug:"var(--danger)",idea:"var(--priority-high)",research:"#a371f7",meeting:"var(--text-dim)",review:"var(--primary)"};function l(u){if(!u)return[];try{return JSON.parse(u)}catch{return[]}}function c(u){return new Date(u.replace(" ","T")+"Z").toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"})}var f=Bl(),w=d(f);{var g=u=>{var m=Ol();x(u,m)},P=u=>{var m=Nl(),S=d(m);z(()=>M(S,`[error] ${s(i)??""}`)),x(u,m)},p=u=>{var m=Il();x(u,m)},A=u=>{var m=ql();xe(m,21,()=>s(r),S=>S.id,(S,T)=>{const N=le(()=>s(T).task_id?s(o).get(s(T).task_id):null),O=le(()=>l(s(T).tags));var L=Fl(),j=d(L),I=d(j),q=d(I),K=y(I,2),ie=d(K),F=y(j,2),G=d(F),H=y(F,2);{var Z=te=>{var W=zl(),ae=d(W);{var V=ne=>{var ve=Rl();xe(ve,21,()=>s(O),gt,(ge,ke)=>{var Te=Ml(),ce=d(Te);z(()=>M(ce,s(ke))),x(ge,Te)}),x(ne,ve)};B(ae,ne=>{s(O).length>0&&ne(V)})}var se=y(ae,2);{var X=ne=>{var ve=Ll(),ge=d(ve);z(ke=>M(ge,`→ ${ke??""}: ${s(N).title??""}`),[()=>s(N).short_id??s(N).id.slice(0,8)]),re("click",ve,()=>t.onOpenTask(s(N))),x(ne,ve)};B(se,ne=>{s(N)&&ne(X)})}x(te,W)};B(H,te=>{(s(O).length>0||s(N))&&te(Z)})}z(te=>{xn(I,`color: ${v[s(T).category]??"var(--text-muted)"??""}`),M(q,s(T).category),M(ie,te),M(G,s(T).content)},[()=>c(s(T).created_at)]),x(S,L)}),x(u,m)};B(w,u=>{s(a)?u(g):s(i)?u(P,1):s(r).length===0?u(p,2):u(A,-1)})}x(e,f),Ie()}Be(["click"]);var Kl=C('<div class="state-msg svelte-1nwykvu"><span class="prompt svelte-1nwykvu">></span> loading decisions...</div>'),Ul=C('<div class="state-msg err svelte-1nwykvu"> </div>'),Vl=C('<div class="state-msg muted svelte-1nwykvu">// no decisions yet — use log_decision via MCP tools</div>'),Yl=C('<div class="reasoning svelte-1nwykvu"> </div>'),Jl=C('<div class="alts svelte-1nwykvu"> </div>'),Gl=C('<span class="tag svelte-1nwykvu"> </span>'),Wl=C('<div class="tags svelte-1nwykvu"></div>'),Ql=C('<span class="task-link svelte-1nwykvu"> </span>'),Zl=C('<div class="card-footer svelte-1nwykvu"><!> <!></div>'),Xl=C('<div class="card svelte-1nwykvu"><div class="card-header svelte-1nwykvu"><span class="title svelte-1nwykvu"> </span> <span class="date svelte-1nwykvu"> </span></div> <div class="decision-text svelte-1nwykvu"> </div> <!> <!> <!></div>'),$l=C('<div class="list svelte-1nwykvu"></div>'),eo=C('<div class="view svelte-1nwykvu"><!></div>');function to(e,t){Ne(t,!0);let r=R(Se([])),n=R(Se([])),a=R(!0),i=R(null);rt(()=>{h(a,!0),h(i,null),Promise.all([ze.getDecisions(t.projectId),ze.getTasks(t.projectId)]).then(([u,m])=>{h(r,u,!0),h(n,m,!0)}).catch(u=>{h(i,u.message,!0)}).finally(()=>{h(a,!1)})});const o=le(()=>new Map(s(n).map(u=>[u.id,u])));function v(u){if(!u)return[];try{return JSON.parse(u)}catch{return[]}}function l(u){if(!u)return[];try{return JSON.parse(u)}catch{return[]}}function c(u){return new Date(u.replace(" ","T")+"Z").toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"})}var f=eo(),w=d(f);{var g=u=>{var m=Kl();x(u,m)},P=u=>{var m=Ul(),S=d(m);z(()=>M(S,`[error] ${s(i)??""}`)),x(u,m)},p=u=>{var m=Vl();x(u,m)},A=u=>{var m=$l();xe(m,21,()=>s(r),S=>S.id,(S,T)=>{const N=le(()=>s(T).task_id?s(o).get(s(T).task_id):null),O=le(()=>v(s(T).alternatives)),L=le(()=>l(s(T).tags));var j=Xl(),I=d(j),q=d(I),K=d(q),ie=y(q,2),F=d(ie),G=y(I,2),H=d(G),Z=y(G,2);{var te=X=>{var ne=Yl(),ve=d(ne);z(()=>M(ve,s(T).reasoning)),x(X,ne)};B(Z,X=>{s(T).reasoning&&X(te)})}var W=y(Z,2);{var ae=X=>{var ne=Jl(),ve=d(ne);z(ge=>M(ve,`Alternatives considered: ${ge??""}`),[()=>s(O).join(", ")]),x(X,ne)};B(W,X=>{s(O).length>0&&X(ae)})}var V=y(W,2);{var se=X=>{var ne=Zl(),ve=d(ne);{var ge=ce=>{var Ee=Wl();xe(Ee,21,()=>s(L),gt,(k,E)=>{var b=Gl(),D=d(b);z(()=>M(D,s(E))),x(k,b)}),x(ce,Ee)};B(ve,ce=>{s(L).length>0&&ce(ge)})}var ke=y(ve,2);{var Te=ce=>{var Ee=Ql(),k=d(Ee);z(E=>M(k,`→ ${E??""}: ${s(N).title??""}`),[()=>s(N).short_id??s(N).id.slice(0,8)]),re("click",Ee,()=>t.onOpenTask(s(N))),x(ce,Ee)};B(ke,ce=>{s(N)&&ce(Te)})}x(X,ne)};B(V,X=>{(s(L).length>0||s(N))&&X(se)})}z(X=>{M(K,s(T).title),M(F,X),M(H,s(T).decision)},[()=>c(s(T).created_at)]),x(S,j)}),x(u,m)};B(w,u=>{s(a)?u(g):s(i)?u(P,1):s(r).length===0?u(p,2):u(A,-1)})}x(e,f),Ie()}Be(["click"]);var ro=C('<div><span class="item-label svelte-1bm0yy4"> </span> <span class="item-hint svelte-1bm0yy4"> </span></div>'),no=C('<div class="palette-empty svelte-1bm0yy4">no commands match</div>'),ao=C('<div class="palette-backdrop svelte-1bm0yy4"><div class="palette svelte-1bm0yy4"><div class="palette-input-row svelte-1bm0yy4"><span class="palette-prompt svelte-1bm0yy4">></span> <input placeholder="type a command..." class="svelte-1bm0yy4"/></div> <div class="palette-list svelte-1bm0yy4"></div> <div class="palette-footer svelte-1bm0yy4"><span class="svelte-1bm0yy4"><kbd class="svelte-1bm0yy4">↑↓</kbd> navigate</span> <span class="svelte-1bm0yy4"><kbd class="svelte-1bm0yy4">↵</kbd> select</span> <span class="svelte-1bm0yy4"><kbd class="svelte-1bm0yy4">esc</kbd> close</span></div></div></div>');function so(e,t){Ne(t,!0);let r=R(""),n=R(0),a=R(null);const i=le(()=>[{id:"new-task",label:"new task",hint:"create",action:()=>{t.onClose(),t.onNewTask()}},...t.projects.map(p=>({id:`project-${p.id}`,label:p.name,hint:p.slug?`switch → ${p.slug}`:"switch",action:()=>{t.onClose(),t.onSelectProject(p.id)}}))]),o=le(()=>()=>{const p=s(r).trim().toLowerCase();return p?s(i).filter(A=>A.label.toLowerCase().includes(p)||A.hint.toLowerCase().includes(p)):s(i)});rt(()=>{s(o)(),h(n,0)});function v(p){var u;const A=s(o)();p.key==="ArrowDown"?(p.preventDefault(),h(n,Math.min(s(n)+1,A.length-1),!0)):p.key==="ArrowUp"?(p.preventDefault(),h(n,Math.max(s(n)-1,0),!0)):p.key==="Enter"?(p.preventDefault(),(u=A[s(n)])==null||u.action()):p.key==="Escape"&&t.onClose()}function l(p){p.target.classList.contains("palette-backdrop")&&t.onClose()}var c=ao(),f=d(c),w=d(f),g=y(d(w),2);mn(g),cn(g,p=>h(a,p),()=>s(a));var P=y(w,2);xe(P,23,()=>s(o)(),p=>p.id,(p,A,u)=>{var m=ro();let S;var T=d(m),N=d(T),O=y(T,2),L=d(O);z(()=>{S=fe(m,1,"palette-item svelte-1bm0yy4",null,S,{active:s(u)===s(n)}),M(N,s(A).label),M(L,s(A).hint)}),Oe("mouseenter",m,()=>{h(n,s(u),!0)}),re("click",m,()=>s(A).action()),x(p,m)},p=>{var A=no();x(p,A)}),re("click",c,l),re("keydown",g,v),br(g,()=>s(r),p=>h(r,p)),x(e,c),Ie()}Be(["click","keydown"]);var io=C("<button> </button>"),lo=C('<div class="state-msg svelte-37wipk"><span class="prompt">></span> computing metrics...</div>'),oo=C('<div class="state-msg err svelte-37wipk"> </div>'),vo=C('<div class="card-value svelte-37wipk"> </div> <div class="card-sub svelte-37wipk">median</div> <div class="card-detail svelte-37wipk"> </div> <span> </span>',1),uo=C('<div class="card-value card-value--empty svelte-37wipk">—</div> <div class="card-sub muted svelte-37wipk"> </div>',1),co=C('<div> </div> <div class="card-sub svelte-37wipk">of active tasks hit a blocker</div>',1),fo=C('<div class="card-value card-value--empty svelte-37wipk">—</div> <div class="card-sub muted svelte-37wipk">no activity in window</div>',1),_o=C('<div class="card-detail svelte-37wipk"> </div>'),ho=C('<span class="badge badge-blocked svelte-37wipk"> </span>'),go=C('<div class="insight-row svelte-37wipk"><span class="insight-bullet svelte-37wipk">›</span> </div>'),po=C('<div class="insights svelte-37wipk"><div class="insights-label svelte-37wipk">// insights</div> <!></div>'),mo=C('<div class="grid svelte-37wipk"><div class="card svelte-37wipk"><div class="card-label svelte-37wipk">Throughput</div> <div class="card-value svelte-37wipk"> </div> <div class="card-sub svelte-37wipk">tasks completed</div> <div class="card-detail svelte-37wipk"> </div> <span> </span></div> <div class="card svelte-37wipk"><div class="card-label svelte-37wipk">Lead Time</div> <!></div> <div class="card svelte-37wipk"><div class="card-label svelte-37wipk">Blocked Rate</div> <!> <!> <!></div> <div class="card card--tier svelte-37wipk"><div class="card-label svelte-37wipk">Performance Tier</div> <div> </div> <div class="card-sub tier-legend svelte-37wipk"><span class="tier-elite svelte-37wipk">Elite</span> <1d · <span class="tier-high svelte-37wipk">High</span> <1wk · <span class="tier-medium svelte-37wipk">Medium</span> <1mo · <span class="tier-low svelte-37wipk">Low</span> 1mo+</div></div></div> <!>',1),wo=C('<div class="view svelte-37wipk"><div class="toolbar svelte-37wipk"><span class="toolbar-label svelte-37wipk">// window</span> <!></div> <!></div>');function bo(e,t){Ne(t,!0);let r=R(null),n=R(!0),a=R(null),i=R(30);async function o(){h(n,!0),h(a,null);try{h(r,await ze.getMetrics(t.projectId,s(i)),!0)}catch(S){h(a,S.message,!0)}finally{h(n,!1)}}rt(()=>{t.projectId,s(i),o()});const v={Elite:"tier-elite",High:"tier-high",Medium:"tier-medium",Low:"tier-low",unknown:"tier-unknown"},l={improving:"↑",declining:"↓",stable:"→"},c={improving:"trend-up",declining:"trend-down",stable:"trend-stable"};function f(S){return"median_days"in S}var w=wo(),g=d(w),P=y(d(g),2);xe(P,16,()=>[7,30,90],gt,(S,T)=>{var N=io();let O;var L=d(N);z(()=>{O=fe(N,1,"window-btn svelte-37wipk",null,O,{active:s(i)===T}),M(L,`${T??""}d`)}),re("click",N,()=>h(i,T,!0)),x(S,N)});var p=y(g,2);{var A=S=>{var T=lo();x(S,T)},u=S=>{var T=oo(),N=d(T);z(()=>M(N,`[error] ${s(a)??""}`)),x(S,T)},m=S=>{var T=mo(),N=et(T),O=d(N),L=y(d(O),2),j=d(L),I=y(L,4),q=d(I),K=y(I,2),ie=d(K),F=y(O,2),G=y(d(F),2);{var H=E=>{var b=vo(),D=et(b),Y=d(D),oe=y(D,4),ue=d(oe),je=y(oe,2),st=d(je);z(()=>{M(Y,`${s(r).lead_time.median_days??""}d`),M(ue,`p90: ${s(r).lead_time.p90_days??""}d`),fe(je,1,`trend ${c[s(r).lead_time.trend]??""}`,"svelte-37wipk"),M(st,`${l[s(r).lead_time.trend]??""} ${s(r).lead_time.trend??""}`)}),x(E,b)},Z=le(()=>f(s(r).lead_time)),te=E=>{var b=uo(),D=y(et(b),2),Y=d(D);z(()=>M(Y,s(r).lead_time.note)),x(E,b)};B(G,E=>{s(Z)?E(H):E(te,-1)})}var W=y(F,2),ae=y(d(W),2);{var V=E=>{var b=co(),D=et(b),Y=d(D);z(()=>{fe(D,1,`card-value ${s(r).flow_efficiency.blocked_rate_pct>30?"val-danger":""}`,"svelte-37wipk"),M(Y,`${s(r).flow_efficiency.blocked_rate_pct??""}%`)}),x(E,b)},se=E=>{var b=fo();x(E,b)};B(ae,E=>{s(r).flow_efficiency.blocked_rate_pct!==null?E(V):E(se,-1)})}var X=y(ae,2);{var ne=E=>{var b=_o(),D=d(b);z(()=>M(D,`avg blocked: ${s(r).flow_efficiency.avg_blocked_days??""}d`)),x(E,b)};B(X,E=>{s(r).flow_efficiency.avg_blocked_days!==null&&E(ne)})}var ve=y(X,2);{var ge=E=>{var b=ho(),D=d(b);z(()=>M(D,`${s(r).flow_efficiency.currently_blocked??""} blocked now`)),x(E,b)};B(ve,E=>{s(r).flow_efficiency.currently_blocked>0&&E(ge)})}var ke=y(W,2),Te=y(d(ke),2),ce=d(Te),Ee=y(N,2);{var k=E=>{var b=po(),D=y(d(b),2);xe(D,17,()=>s(r).insights,gt,(Y,oe)=>{var ue=go(),je=y(d(ue));z(()=>M(je,` ${s(oe)??""}`)),x(Y,ue)}),x(E,b)};B(Ee,E=>{s(r).insights.length>0&&E(k)})}z(()=>{M(j,s(r).throughput.tasks_completed),M(q,`${s(r).throughput.per_week_avg??""}/wk avg`),fe(K,1,`trend ${c[s(r).throughput.trend]??""}`,"svelte-37wipk"),M(ie,`${l[s(r).throughput.trend]??""} ${s(r).throughput.trend??""}`),fe(Te,1,`tier-badge ${v[s(r).dora_tier]??""}`,"svelte-37wipk"),M(ce,s(r).dora_tier)}),x(S,T)};B(p,S=>{s(n)?S(A):s(a)?S(u,1):s(r)&&S(m,2)})}x(e,w),Ie()}Be(["click"]);var yo=C('<div class="loading svelte-1n46o8q"><span class="prompt svelte-1n46o8q">></span> loading projects...</div>'),ko=C('<div class="error svelte-1n46o8q"><span class="err-prefix svelte-1n46o8q">[error]</span> </div>'),To=C('<div class="empty svelte-1n46o8q"><p class="empty-prompt svelte-1n46o8q">> no projects found</p> <p class="empty-hint svelte-1n46o8q">// create a project using mindpm MCP tools to get started</p></div>'),Eo=C('<div class="tabs svelte-1n46o8q"><button>Kanban</button> <button>Notes</button> <button>Decisions</button> <button>Metrics</button></div> <!>',1),So=C('<div class="app-layout svelte-1n46o8q"><!> <div class="main svelte-1n46o8q"><!> <!></div></div>'),xo=C("<!> <!>",1);function Co(e,t){Ne(t,!0);let r=R(Se([])),n=R(null),a=R(!0),i=R(null),o=R(!1),v=R(!1),l=R("kanban"),c=R(null);const f=le(()=>s(r).find(j=>j.id===s(n))??null);async function w(){try{if(h(r,await ze.getProjects(),!0),s(r).length>0&&!s(n)){const j=new URLSearchParams(window.location.search).get("project"),I=j?s(r).find(q=>q.id===j||q.name===j):null;h(n,I?I.id:s(r)[0].id,!0)}}catch(j){h(i,j.message,!0)}finally{h(a,!1)}}function g(j){h(n,j,!0),h(l,"kanban");const I=new URL(window.location.href);I.searchParams.set("project",j),history.replaceState(null,"",I.toString())}async function P(j,I){try{await ze.updateProject(j,{name:I});const q=s(r).findIndex(K=>K.id===j);q!==-1&&(s(r)[q]={...s(r)[q],name:I})}catch(q){h(i,q.message,!0)}}rt(()=>{w()});function p(j){(j.ctrlKey||j.metaKey)&&j.key==="k"&&(j.preventDefault(),h(o,!s(o)))}var A=xo();Oe("keydown",jt,p);var u=et(A);{var m=j=>{so(j,{get projects(){return s(r)},onSelectProject:I=>{h(n,I,!0)},onNewTask:()=>{h(v,!0)},onClose:()=>{h(o,!1)}})};B(u,j=>{s(o)&&j(m)})}var S=y(u,2);{var T=j=>{var I=yo();x(j,I)},N=j=>{var I=ko(),q=y(d(I));z(()=>M(q,` ${s(i)??""}`)),x(j,I)},O=j=>{var I=To();x(j,I)},L=j=>{var I=So(),q=d(I);Hi(q,{get projects(){return s(r)},get selectedId(){return s(n)},onSelect:g});var K=y(q,2),ie=d(K);Ni(ie,{get projects(){return s(r)},get selectedId(){return s(n)},onSelect:g,onRenamed:P});var F=y(ie,2);{var G=H=>{var Z=Eo(),te=et(Z),W=d(te);let ae;var V=y(W,2);let se;var X=y(V,2);let ne;var ve=y(X,2);let ge;var ke=y(te,2);{var Te=E=>{Dl(E,{get project(){return s(f)},get triggerNewTask(){return s(v)},get openTask(){return s(c)},onNewTaskTriggered:()=>{h(v,!1)},onOpenTaskHandled:()=>{h(c,null)}})},ce=E=>{Hl(E,{get projectId(){return s(f).id},onOpenTask:b=>{h(c,b,!0),h(l,"kanban")}})},Ee=E=>{to(E,{get projectId(){return s(f).id},onOpenTask:b=>{h(c,b,!0),h(l,"kanban")}})},k=E=>{bo(E,{get projectId(){return s(f).id}})};B(ke,E=>{s(l)==="kanban"?E(Te):s(l)==="notes"?E(ce,1):s(l)==="decisions"?E(Ee,2):s(l)==="metrics"&&E(k,3)})}z(()=>{ae=fe(W,1,"tab svelte-1n46o8q",null,ae,{active:s(l)==="kanban"}),se=fe(V,1,"tab svelte-1n46o8q",null,se,{active:s(l)==="notes"}),ne=fe(X,1,"tab svelte-1n46o8q",null,ne,{active:s(l)==="decisions"}),ge=fe(ve,1,"tab svelte-1n46o8q",null,ge,{active:s(l)==="metrics"})}),re("click",W,()=>h(l,"kanban")),re("click",V,()=>h(l,"notes")),re("click",X,()=>h(l,"decisions")),re("click",ve,()=>h(l,"metrics")),x(H,Z)};B(F,H=>{s(f)&&H(G)})}x(j,I)};B(S,j=>{s(a)?j(T):s(i)?j(N,1):s(r).length===0?j(O,2):j(L,-1)})}x(e,A),Ie()}Be(["click"]);ci(Co,{target:document.getElementById("app")});
|
package/dist/ui/index.html
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
|
7
7
|
<title>mindpm - Kanban</title>
|
|
8
|
-
<script type="module" crossorigin src="/assets/index-
|
|
9
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
8
|
+
<script type="module" crossorigin src="/assets/index-am85N2h2.js"></script>
|
|
9
|
+
<link rel="stylesheet" crossorigin href="/assets/index-DUvcJwY4.css">
|
|
10
10
|
</head>
|
|
11
11
|
<body>
|
|
12
12
|
<div id="app"></div>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mindpm",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.36",
|
|
4
4
|
"description": "Persistent project memory for LLMs via MCP. Never re-explain your project again.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -18,7 +18,8 @@
|
|
|
18
18
|
"typecheck": "tsc --noEmit",
|
|
19
19
|
"test": "vitest run",
|
|
20
20
|
"test:watch": "vitest",
|
|
21
|
-
"test:coverage": "vitest run --coverage"
|
|
21
|
+
"test:coverage": "vitest run --coverage",
|
|
22
|
+
"release": "gh release create v$(node -p \"require('./package.json').version\") --generate-notes --title \"v$(node -p \"require('./package.json').version\")\" --target main"
|
|
22
23
|
},
|
|
23
24
|
"keywords": [
|
|
24
25
|
"mcp",
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var qa=Object.defineProperty;var Cr=e=>{throw TypeError(e)};var Ba=(e,t,n)=>t in e?qa(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Ge=(e,t,n)=>Ba(e,typeof t!="symbol"?t+"":t,n),Jn=(e,t,n)=>t.has(e)||Cr("Cannot "+n);var d=(e,t,n)=>(Jn(e,t,"read from private field"),n?n.call(e):t.get(e)),W=(e,t,n)=>t.has(e)?Cr("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),J=(e,t,n,r)=>(Jn(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),ve=(e,t,n)=>(Jn(e,t,"access private method"),n);(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))r(a);new MutationObserver(a=>{for(const i of a)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(a){const i={};return a.integrity&&(i.integrity=a.integrity),a.referrerPolicy&&(i.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?i.credentials="include":a.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(a){if(a.ep)return;a.ep=!0;const i=n(a);fetch(a.href,i)}})();const Ha=!1;var dr=Array.isArray,Ka=Array.prototype.indexOf,ln=Array.prototype.includes,Fn=Array.from,Ua=Object.defineProperty,Qt=Object.getOwnPropertyDescriptor,Va=Object.getOwnPropertyDescriptors,Ja=Object.prototype,Ya=Array.prototype,Yr=Object.getPrototypeOf,jr=Object.isExtensible;const Ga=()=>{};function Wa(e){for(var t=0;t<e.length;t++)e[t]()}function Gr(){var e,t,n=new Promise((r,a)=>{e=r,t=a});return{promise:n,resolve:e,reject:t}}const ge=2,on=4,qn=8,Wr=1<<24,jt=16,$e=32,qt=64,Zn=128,Ke=512,he=1024,ye=2048,et=4096,Me=8192,Ue=16384,Yt=32768,Xn=1<<25,un=65536,Pr=1<<17,Qa=1<<18,dn=1<<19,Za=1<<20,it=1<<25,Bt=65536,$n=1<<21,_r=1<<22,Tt=1<<23,Lt=Symbol("$state"),Xa=Symbol("legacy props"),ft=new class extends Error{constructor(){super(...arguments);Ge(this,"name","StaleReactionError");Ge(this,"message","The reaction that called `getAbortSignal()` was re-run or destroyed")}};var Ur;const $a=!!((Ur=globalThis.document)!=null&&Ur.contentType)&&globalThis.document.contentType.includes("xml");function es(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function ts(e,t,n){throw new Error("https://svelte.dev/e/each_key_duplicate")}function ns(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function rs(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function as(e){throw new Error("https://svelte.dev/e/effect_orphan")}function ss(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function is(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function ls(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function os(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function us(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function fs(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const cs=1,vs=2,Qr=4,ds=8,_s=16,hs=1,gs=4,ps=8,ms=16,ys=1,bs=2,pe=Symbol(),Zr="http://www.w3.org/1999/xhtml",ws="http://www.w3.org/2000/svg",ks="http://www.w3.org/1998/Math/MathML";function Ts(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function Es(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}function Xr(e){return e===this.v}function Ss(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function $r(e){return!Ss(e,this.v)}let xs=!1,Re=null;function fn(e){Re=e}function Le(e,t=!1,n){Re={p:Re,i:!1,c:null,e:null,s:e,x:null,r:X,l:null}}function ze(e){var t=Re,n=t.e;if(n!==null){t.e=null;for(var r of n)wa(r)}return t.i=!0,Re=t.p,{}}function ea(){return!0}let Dt=[];function ta(){var e=Dt;Dt=[],Wa(e)}function dt(e){if(Dt.length===0&&!mn){var t=Dt;queueMicrotask(()=>{t===Dt&&ta()})}Dt.push(e)}function Cs(){for(;Dt.length>0;)ta()}function na(e){var t=X;if(t===null)return Y.f|=Tt,e;if((t.f&Yt)===0&&(t.f&on)===0)throw e;wt(e,t)}function wt(e,t){for(;t!==null;){if((t.f&Zn)!==0){if((t.f&Yt)===0)throw e;try{t.b.error(e);return}catch(n){e=n}}t=t.parent}throw e}const js=-7169;function ce(e,t){e.f=e.f&js|t}function hr(e){(e.f&Ke)!==0||e.deps===null?ce(e,he):ce(e,et)}function ra(e){if(e!==null)for(const t of e)(t.f&ge)===0||(t.f&Bt)===0||(t.f^=Bt,ra(t.deps))}function aa(e,t,n){(e.f&ye)!==0?t.add(e):(e.f&et)!==0&&n.add(e),ra(e.deps),ce(e,he)}let Pn=!1;function Ps(e){var t=Pn;try{return Pn=!1,[e(),Pn]}finally{Pn=t}}const hn=new Set;let U=null,me=null,er=null,mn=!1,Yn=!1,Wt=null,Dn=null;var Ar=0;let As=1;var Zt,Xt,$t,en,En,mt,tn,yt,nt,nn,ke,tr,nr,rr,ar,sa;const Rn=class Rn{constructor(){W(this,ke);Ge(this,"id",As++);Ge(this,"current",new Map);Ge(this,"previous",new Map);W(this,Zt,new Set);W(this,Xt,new Set);W(this,$t,0);W(this,en,0);W(this,En,null);W(this,mt,[]);W(this,tn,new Set);W(this,yt,new Set);W(this,nt,new Map);Ge(this,"is_fork",!1);W(this,nn,!1)}skip_effect(t){d(this,nt).has(t)||d(this,nt).set(t,{d:[],m:[]})}unskip_effect(t){var n=d(this,nt).get(t);if(n){d(this,nt).delete(t);for(var r of n.d)ce(r,ye),this.schedule(r);for(r of n.m)ce(r,et),this.schedule(r)}}capture(t,n){n!==pe&&!this.previous.has(t)&&this.previous.set(t,n),(t.f&Tt)===0&&(this.current.set(t,t.v),me==null||me.set(t,t.v))}activate(){U=this}deactivate(){U=null,me=null}flush(){try{if(Yn=!0,U=this,!ve(this,ke,tr).call(this)){for(const t of d(this,tn))d(this,yt).delete(t),ce(t,ye),this.schedule(t);for(const t of d(this,yt))ce(t,et),this.schedule(t)}ve(this,ke,nr).call(this)}finally{Ar=0,er=null,Wt=null,Dn=null,Yn=!1,U=null,me=null,Et.clear()}}discard(){for(const t of d(this,Xt))t(this);d(this,Xt).clear()}increment(t){J(this,$t,d(this,$t)+1),t&&J(this,en,d(this,en)+1)}decrement(t,n){J(this,$t,d(this,$t)-1),t&&J(this,en,d(this,en)-1),!(d(this,nn)||n)&&(J(this,nn,!0),dt(()=>{J(this,nn,!1),this.flush()}))}oncommit(t){d(this,Zt).add(t)}ondiscard(t){d(this,Xt).add(t)}settled(){return(d(this,En)??J(this,En,Gr())).promise}static ensure(){if(U===null){const t=U=new Rn;Yn||(hn.add(U),mn||dt(()=>{U===t&&t.flush()}))}return U}apply(){}schedule(t){var a;if(er=t,(a=t.b)!=null&&a.is_pending&&(t.f&(on|qn|Wr))!==0&&(t.f&Yt)===0){t.b.defer_effect(t);return}for(var n=t;n.parent!==null;){n=n.parent;var r=n.f;if(Wt!==null&&n===X&&(Y===null||(Y.f&ge)===0))return;if((r&(qt|$e))!==0){if((r&he)===0)return;n.f^=he}}d(this,mt).push(n)}};Zt=new WeakMap,Xt=new WeakMap,$t=new WeakMap,en=new WeakMap,En=new WeakMap,mt=new WeakMap,tn=new WeakMap,yt=new WeakMap,nt=new WeakMap,nn=new WeakMap,ke=new WeakSet,tr=function(){return this.is_fork||d(this,en)>0},nr=function(){var u,l;Ar++>1e3&&Os();const t=d(this,mt);J(this,mt,[]),this.apply();var n=Wt=[],r=[],a=Dn=[];for(const c of t)ve(this,ke,rr).call(this,c,n,r);if(U=null,a.length>0){var i=Rn.ensure();for(const c of a)i.schedule(c)}if(Wt=null,Dn=null,ve(this,ke,tr).call(this)){ve(this,ke,ar).call(this,r),ve(this,ke,ar).call(this,n);for(const[c,v]of d(this,nt))oa(c,v)}else{d(this,tn).clear(),d(this,yt).clear();for(const c of d(this,Zt))c(this);d(this,Zt).clear(),Dr(r),Dr(n),d(this,$t)===0&&ve(this,ke,sa).call(this),(u=d(this,En))==null||u.resolve()}var o=U;o!==null&&(hn.add(o),ve(l=o,ke,nr).call(l))},rr=function(t,n,r){t.f^=he;for(var a=t.first;a!==null;){var i=a.f,o=(i&($e|qt))!==0,u=o&&(i&he)!==0,l=u||(i&Me)!==0||d(this,nt).has(a);if(!l&&a.fn!==null){o?a.f^=he:(i&on)!==0?n.push(a):jn(a)&&((i&jt)!==0&&d(this,yt).add(a),vn(a));var c=a.first;if(c!==null){a=c;continue}}for(;a!==null;){var v=a.next;if(v!==null){a=v;break}a=a.parent}}},ar=function(t){for(var n=0;n<t.length;n+=1)aa(t[n],d(this,tn),d(this,yt))},sa=function(){var a;if(hn.size>1){this.previous.clear();var t=U,n=me,r=!0;for(const i of hn){if(i===this){r=!1;continue}const o=[];for(const[l,c]of this.current){if(i.current.has(l))if(r&&c!==i.current.get(l))i.current.set(l,c);else continue;o.push(l)}if(o.length===0)continue;const u=[...i.current.keys()].filter(l=>!this.current.has(l));if(u.length>0){i.activate();const l=new Set,c=new Map;for(const v of o)ia(v,u,l,c);if(d(i,mt).length>0){i.apply();for(const v of d(i,mt))ve(a=i,ke,rr).call(a,v,[],[])}i.deactivate()}}U=t,me=n}d(this,nt).clear(),hn.delete(this)};let Ht=Rn;function Ds(e){var t=mn;mn=!0;try{for(var n;;){if(Cs(),U===null)return n;U.flush()}}finally{mn=t}}function Os(){try{ss()}catch(e){wt(e,er)}}let We=null;function Dr(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if((r.f&(Ue|Me))===0&&jn(r)&&(We=new Set,vn(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&Sa(r),(We==null?void 0:We.size)>0)){Et.clear();for(const a of We){if((a.f&(Ue|Me))!==0)continue;const i=[a];let o=a.parent;for(;o!==null;)We.has(o)&&(We.delete(o),i.push(o)),o=o.parent;for(let u=i.length-1;u>=0;u--){const l=i[u];(l.f&(Ue|Me))===0&&vn(l)}}We.clear()}}We=null}}function ia(e,t,n,r){if(!n.has(e)&&(n.add(e),e.reactions!==null))for(const a of e.reactions){const i=a.f;(i&ge)!==0?ia(a,t,n,r):(i&(_r|jt))!==0&&(i&ye)===0&&la(a,t,r)&&(ce(a,ye),gr(a))}}function la(e,t,n){const r=n.get(e);if(r!==void 0)return r;if(e.deps!==null)for(const a of e.deps){if(ln.call(t,a))return!0;if((a.f&ge)!==0&&la(a,t,n))return n.set(a,!0),!0}return n.set(e,!1),!1}function gr(e){U.schedule(e)}function oa(e,t){if(!((e.f&$e)!==0&&(e.f&he)!==0)){(e.f&ye)!==0?t.d.push(e):(e.f&et)!==0&&t.m.push(e),ce(e,he);for(var n=e.first;n!==null;)oa(n,t),n=n.next}}function Ns(e){let t=0,n=Kt(0),r;return()=>{yr()&&(s(n),wr(()=>(t===0&&(r=Kn(()=>e(()=>yn(n)))),t+=1,()=>{dt(()=>{t-=1,t===0&&(r==null||r(),r=void 0,yn(n))})})))}}var Is=un|dn;function Ms(e,t,n,r){new Rs(e,t,n,r)}var qe,vr,rt,It,xe,at,Ne,Qe,ct,Mt,bt,rn,an,sn,vt,Ln,_e,Ls,zs,Fs,sr,On,Nn,ir;class Rs{constructor(t,n,r,a){W(this,_e);Ge(this,"parent");Ge(this,"is_pending",!1);Ge(this,"transform_error");W(this,qe);W(this,vr,null);W(this,rt);W(this,It);W(this,xe);W(this,at,null);W(this,Ne,null);W(this,Qe,null);W(this,ct,null);W(this,Mt,0);W(this,bt,0);W(this,rn,!1);W(this,an,new Set);W(this,sn,new Set);W(this,vt,null);W(this,Ln,Ns(()=>(J(this,vt,Kt(d(this,Mt))),()=>{J(this,vt,null)})));var i;J(this,qe,t),J(this,rt,n),J(this,It,o=>{var u=X;u.b=this,u.f|=Zn,r(o)}),this.parent=X.b,this.transform_error=a??((i=this.parent)==null?void 0:i.transform_error)??(o=>o),J(this,xe,kr(()=>{ve(this,_e,sr).call(this)},Is))}defer_effect(t){aa(t,d(this,an),d(this,sn))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!d(this,rt).pending}update_pending_count(t,n){ve(this,_e,ir).call(this,t,n),J(this,Mt,d(this,Mt)+t),!(!d(this,vt)||d(this,rn))&&(J(this,rn,!0),dt(()=>{J(this,rn,!1),d(this,vt)&&cn(d(this,vt),d(this,Mt))}))}get_effect_pending(){return d(this,Ln).call(this),s(d(this,vt))}error(t){var n=d(this,rt).onerror;let r=d(this,rt).failed;if(!n&&!r)throw t;d(this,at)&&(je(d(this,at)),J(this,at,null)),d(this,Ne)&&(je(d(this,Ne)),J(this,Ne,null)),d(this,Qe)&&(je(d(this,Qe)),J(this,Qe,null));var a=!1,i=!1;const o=()=>{if(a){Es();return}a=!0,i&&fs(),d(this,Qe)!==null&&zt(d(this,Qe),()=>{J(this,Qe,null)}),ve(this,_e,Nn).call(this,()=>{ve(this,_e,sr).call(this)})},u=l=>{try{i=!0,n==null||n(l,o),i=!1}catch(c){wt(c,d(this,xe)&&d(this,xe).parent)}r&&J(this,Qe,ve(this,_e,Nn).call(this,()=>{try{return Be(()=>{var c=X;c.b=this,c.f|=Zn,r(d(this,qe),()=>l,()=>o)})}catch(c){return wt(c,d(this,xe).parent),null}}))};dt(()=>{var l;try{l=this.transform_error(t)}catch(c){wt(c,d(this,xe)&&d(this,xe).parent);return}l!==null&&typeof l=="object"&&typeof l.then=="function"?l.then(u,c=>wt(c,d(this,xe)&&d(this,xe).parent)):u(l)})}}qe=new WeakMap,vr=new WeakMap,rt=new WeakMap,It=new WeakMap,xe=new WeakMap,at=new WeakMap,Ne=new WeakMap,Qe=new WeakMap,ct=new WeakMap,Mt=new WeakMap,bt=new WeakMap,rn=new WeakMap,an=new WeakMap,sn=new WeakMap,vt=new WeakMap,Ln=new WeakMap,_e=new WeakSet,Ls=function(){try{J(this,at,Be(()=>d(this,It).call(this,d(this,qe))))}catch(t){this.error(t)}},zs=function(t){const n=d(this,rt).failed;n&&J(this,Qe,Be(()=>{n(d(this,qe),()=>t,()=>()=>{})}))},Fs=function(){const t=d(this,rt).pending;if(t){this.is_pending=!0,J(this,Ne,Be(()=>t(d(this,qe))));var n=U;dt(()=>{var r=J(this,ct,document.createDocumentFragment()),a=St();r.append(a),J(this,at,ve(this,_e,Nn).call(this,()=>Be(()=>d(this,It).call(this,a)))),d(this,bt)===0&&(d(this,qe).before(r),J(this,ct,null),zt(d(this,Ne),()=>{J(this,Ne,null)}),ve(this,_e,On).call(this,n))})}},sr=function(){var t=U;try{if(this.is_pending=this.has_pending_snippet(),J(this,bt,0),J(this,Mt,0),J(this,at,Be(()=>{d(this,It).call(this,d(this,qe))})),d(this,bt)>0){var n=J(this,ct,document.createDocumentFragment());Sr(d(this,at),n);const r=d(this,rt).pending;J(this,Ne,Be(()=>r(d(this,qe))))}else ve(this,_e,On).call(this,t)}catch(r){this.error(r)}},On=function(t){this.is_pending=!1;for(const n of d(this,an))ce(n,ye),t.schedule(n);for(const n of d(this,sn))ce(n,et),t.schedule(n);d(this,an).clear(),d(this,sn).clear()},Nn=function(t){var n=X,r=Y,a=Re;ot(d(this,xe)),Je(d(this,xe)),fn(d(this,xe).ctx);try{return Ht.ensure(),t()}catch(i){return na(i),null}finally{ot(n),Je(r),fn(a)}},ir=function(t,n){var r;if(!this.has_pending_snippet()){this.parent&&ve(r=this.parent,_e,ir).call(r,t,n);return}J(this,bt,d(this,bt)+t),d(this,bt)===0&&(ve(this,_e,On).call(this,n),d(this,Ne)&&zt(d(this,Ne),()=>{J(this,Ne,null)}),d(this,ct)&&(d(this,qe).before(d(this,ct)),J(this,ct,null)))};function qs(e,t,n,r){const a=Bn;var i=e.filter(_=>!_.settled);if(n.length===0&&i.length===0){r(t.map(a));return}var o=X,u=Bs(),l=i.length===1?i[0].promise:i.length>1?Promise.all(i.map(_=>_.promise)):null;function c(_){u();try{r(_)}catch(S){(o.f&Ue)===0&&wt(S,o)}Mn()}if(n.length===0){l.then(()=>c(t.map(a)));return}var v=ua();function y(){Promise.all(n.map(_=>Hs(_))).then(_=>c([...t.map(a),..._])).catch(_=>wt(_,o)).finally(()=>v())}l?l.then(()=>{u(),y(),Mn()}):y()}function Bs(){var e=X,t=Y,n=Re,r=U;return function(i=!0){ot(e),Je(t),fn(n),i&&(e.f&Ue)===0&&(r==null||r.activate(),r==null||r.apply())}}function Mn(e=!0){ot(null),Je(null),fn(null),e&&(U==null||U.deactivate())}function ua(){var e=X.b,t=U,n=e.is_rendered();return e.update_pending_count(1,t),t.increment(n),(r=!1)=>{e.update_pending_count(-1,t),t.decrement(n,r)}}function Bn(e){var t=ge|ye,n=Y!==null&&(Y.f&ge)!==0?Y:null;return X!==null&&(X.f|=dn),{ctx:Re,deps:null,effects:null,equals:Xr,f:t,fn:e,reactions:null,rv:0,v:pe,wv:0,parent:n??X,ac:null}}function Hs(e,t,n){let r=X;r===null&&es();var a=void 0,i=Kt(pe),o=!Y,u=new Map;return ti(()=>{var S;var l=X,c=Gr();a=c.promise;try{Promise.resolve(e()).then(c.resolve,c.reject).finally(Mn)}catch(h){c.reject(h),Mn()}var v=U;if(o){if((l.f&Yt)!==0)var y=ua();if(r.b.is_rendered())(S=u.get(v))==null||S.reject(ft),u.delete(v);else{for(const h of u.values())h.reject(ft);u.clear()}u.set(v,c)}const _=(h,x=void 0)=>{if(y){var f=x===ft;y(f)}if(!(x===ft||(l.f&Ue)!==0)){if(v.activate(),x)i.f|=Tt,cn(i,x);else{(i.f&Tt)!==0&&(i.f^=Tt),cn(i,h);for(const[g,j]of u){if(u.delete(g),g===v)break;j.reject(ft)}}v.deactivate()}};c.promise.then(_,h=>_(null,h||"unknown"))}),br(()=>{for(const l of u.values())l.reject(ft)}),new Promise(l=>{function c(v){function y(){v===a?l(i):c(a)}v.then(y,y)}c(a)})}function ie(e){const t=Bn(e);return ja(t),t}function fa(e){const t=Bn(e);return t.equals=$r,t}function Ks(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)je(t[n])}}function Us(e){for(var t=e.parent;t!==null;){if((t.f&ge)===0)return(t.f&Ue)===0?t:null;t=t.parent}return null}function pr(e){var t,n=X;ot(Us(e));try{e.f&=~Bt,Ks(e),t=Oa(e)}finally{ot(n)}return t}function ca(e){var t=pr(e);if(!e.equals(t)&&(e.wv=Aa(),(!(U!=null&&U.is_fork)||e.deps===null)&&(e.v=t,e.deps===null))){ce(e,he);return}Ct||(me!==null?(yr()||U!=null&&U.is_fork)&&me.set(e,t):hr(e))}function Vs(e){var t,n;if(e.effects!==null)for(const r of e.effects)(r.teardown||r.ac)&&((t=r.teardown)==null||t.call(r),(n=r.ac)==null||n.abort(ft),r.teardown=Ga,r.ac=null,kn(r,0),Tr(r))}function va(e){if(e.effects!==null)for(const t of e.effects)t.teardown&&vn(t)}let lr=new Set;const Et=new Map;let da=!1;function Kt(e,t){var n={f:0,v:e,reactions:null,equals:Xr,rv:0,wv:0};return n}function M(e,t){const n=Kt(e);return ja(n),n}function Js(e,t=!1,n=!0){const r=Kt(e);return t||(r.equals=$r),r}function p(e,t,n=!1){Y!==null&&(!Xe||(Y.f&Pr)!==0)&&ea()&&(Y.f&(ge|jt|_r|Pr))!==0&&(Ve===null||!ln.call(Ve,e))&&us();let r=n?we(t):t;return cn(e,r,Dn)}function cn(e,t,n=null){if(!e.equals(t)){var r=e.v;Ct?Et.set(e,t):Et.set(e,r),e.v=t;var a=Ht.ensure();if(a.capture(e,r),(e.f&ge)!==0){const i=e;(e.f&ye)!==0&&pr(i),hr(i)}e.wv=Aa(),_a(e,ye,n),X!==null&&(X.f&he)!==0&&(X.f&($e|qt))===0&&(Fe===null?ri([e]):Fe.push(e)),!a.is_fork&&lr.size>0&&!da&&Ys()}return t}function Ys(){da=!1;for(const e of lr)(e.f&he)!==0&&ce(e,et),jn(e)&&vn(e);lr.clear()}function yn(e){p(e,e.v+1)}function _a(e,t,n){var r=e.reactions;if(r!==null)for(var a=r.length,i=0;i<a;i++){var o=r[i],u=o.f,l=(u&ye)===0;if(l&&ce(o,t),(u&ge)!==0){var c=o;me==null||me.delete(c),(u&Bt)===0&&(u&Ke&&(o.f|=Bt),_a(c,et,n))}else if(l){var v=o;(u&jt)!==0&&We!==null&&We.add(v),n!==null?n.push(v):gr(v)}}}function we(e){if(typeof e!="object"||e===null||Lt in e)return e;const t=Yr(e);if(t!==Ja&&t!==Ya)return e;var n=new Map,r=dr(e),a=M(0),i=Ft,o=u=>{if(Ft===i)return u();var l=Y,c=Ft;Je(null),Mr(i);var v=u();return Je(l),Mr(c),v};return r&&n.set("length",M(e.length)),new Proxy(e,{defineProperty(u,l,c){(!("value"in c)||c.configurable===!1||c.enumerable===!1||c.writable===!1)&&ls();var v=n.get(l);return v===void 0?o(()=>{var y=M(c.value);return n.set(l,y),y}):p(v,c.value,!0),!0},deleteProperty(u,l){var c=n.get(l);if(c===void 0){if(l in u){const v=o(()=>M(pe));n.set(l,v),yn(a)}}else p(c,pe),yn(a);return!0},get(u,l,c){var S;if(l===Lt)return e;var v=n.get(l),y=l in u;if(v===void 0&&(!y||(S=Qt(u,l))!=null&&S.writable)&&(v=o(()=>{var h=we(y?u[l]:pe),x=M(h);return x}),n.set(l,v)),v!==void 0){var _=s(v);return _===pe?void 0:_}return Reflect.get(u,l,c)},getOwnPropertyDescriptor(u,l){var c=Reflect.getOwnPropertyDescriptor(u,l);if(c&&"value"in c){var v=n.get(l);v&&(c.value=s(v))}else if(c===void 0){var y=n.get(l),_=y==null?void 0:y.v;if(y!==void 0&&_!==pe)return{enumerable:!0,configurable:!0,value:_,writable:!0}}return c},has(u,l){var _;if(l===Lt)return!0;var c=n.get(l),v=c!==void 0&&c.v!==pe||Reflect.has(u,l);if(c!==void 0||X!==null&&(!v||(_=Qt(u,l))!=null&&_.writable)){c===void 0&&(c=o(()=>{var S=v?we(u[l]):pe,h=M(S);return h}),n.set(l,c));var y=s(c);if(y===pe)return!1}return v},set(u,l,c,v){var w;var y=n.get(l),_=l in u;if(r&&l==="length")for(var S=c;S<y.v;S+=1){var h=n.get(S+"");h!==void 0?p(h,pe):S in u&&(h=o(()=>M(pe)),n.set(S+"",h))}if(y===void 0)(!_||(w=Qt(u,l))!=null&&w.writable)&&(y=o(()=>M(void 0)),p(y,we(c)),n.set(l,y));else{_=y.v!==pe;var x=o(()=>we(c));p(y,x)}var f=Reflect.getOwnPropertyDescriptor(u,l);if(f!=null&&f.set&&f.set.call(v,c),!_){if(r&&typeof l=="string"){var g=n.get("length"),j=Number(l);Number.isInteger(j)&&j>=g.v&&p(g,j+1)}yn(a)}return!0},ownKeys(u){s(a);var l=Reflect.ownKeys(u).filter(y=>{var _=n.get(y);return _===void 0||_.v!==pe});for(var[c,v]of n)v.v!==pe&&!(c in u)&&l.push(c);return l},setPrototypeOf(){os()}})}function Or(e){try{if(e!==null&&typeof e=="object"&&Lt in e)return e[Lt]}catch{}return e}function Gs(e,t){return Object.is(Or(e),Or(t))}var xt,ha,ga,pa;function Ws(){if(xt===void 0){xt=window,ha=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;ga=Qt(t,"firstChild").get,pa=Qt(t,"nextSibling").get,jr(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),jr(n)&&(n.__t=void 0)}}function St(e=""){return document.createTextNode(e)}function kt(e){return ga.call(e)}function Cn(e){return pa.call(e)}function m(e,t){return kt(e)}function Ut(e,t=!1){{var n=kt(e);return n instanceof Comment&&n.data===""?Cn(n):n}}function T(e,t=1,n=!1){let r=e;for(;t--;)r=Cn(r);return r}function Qs(e){e.textContent=""}function ma(){return!1}function ya(e,t,n){return document.createElementNS(t??Zr,e,void 0)}function mr(e,t){{const n=document.body;e.autofocus=!0,dt(()=>{document.activeElement===n&&e.focus()})}}let Nr=!1;function Zs(){Nr||(Nr=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{var t;if(!e.defaultPrevented)for(const n of e.target.elements)(t=n.__on_r)==null||t.call(n)})},{capture:!0}))}function Hn(e){var t=Y,n=X;Je(null),ot(null);try{return e()}finally{Je(t),ot(n)}}function ba(e,t,n,r=n){e.addEventListener(t,()=>Hn(n));const a=e.__on_r;a?e.__on_r=()=>{a(),r(!0)}:e.__on_r=()=>r(!0),Zs()}function Xs(e){X===null&&(Y===null&&as(),rs()),Ct&&ns()}function $s(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function _t(e,t){var n=X;n!==null&&(n.f&Me)!==0&&(e|=Me);var r={ctx:Re,deps:null,nodes:null,f:e|ye|Ke,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null},a=r;if((e&on)!==0)Wt!==null?Wt.push(r):Ht.ensure().schedule(r);else if(t!==null){try{vn(r)}catch(o){throw je(r),o}a.deps===null&&a.teardown===null&&a.nodes===null&&a.first===a.last&&(a.f&dn)===0&&(a=a.first,(e&jt)!==0&&(e&un)!==0&&a!==null&&(a.f|=un))}if(a!==null&&(a.parent=n,n!==null&&$s(a,n),Y!==null&&(Y.f&ge)!==0&&(e&qt)===0)){var i=Y;(i.effects??(i.effects=[])).push(a)}return r}function yr(){return Y!==null&&!Xe}function br(e){const t=_t(qn,null);return ce(t,he),t.teardown=e,t}function lt(e){Xs();var t=X.f,n=!Y&&(t&$e)!==0&&(t&Yt)===0;if(n){var r=Re;(r.e??(r.e=[])).push(e)}else return wa(e)}function wa(e){return _t(on|Za,e)}function ei(e){Ht.ensure();const t=_t(qt|dn,e);return(n={})=>new Promise(r=>{n.outro?zt(t,()=>{je(t),r(void 0)}):(je(t),r(void 0))})}function ka(e){return _t(on,e)}function ti(e){return _t(_r|dn,e)}function wr(e,t=0){return _t(qn|t,e)}function B(e,t=[],n=[],r=[]){qs(r,t,n,a=>{_t(qn,()=>e(...a.map(s)))})}function kr(e,t=0){var n=_t(jt|t,e);return n}function Be(e){return _t($e|dn,e)}function Ta(e){var t=e.teardown;if(t!==null){const n=Ct,r=Y;Ir(!0),Je(null);try{t.call(null)}finally{Ir(n),Je(r)}}}function Tr(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const a=n.ac;a!==null&&Hn(()=>{a.abort(ft)});var r=n.next;(n.f&qt)!==0?n.parent=null:je(n,t),n=r}}function ni(e){for(var t=e.first;t!==null;){var n=t.next;(t.f&$e)===0&&je(t),t=n}}function je(e,t=!0){var n=!1;(t||(e.f&Qa)!==0)&&e.nodes!==null&&e.nodes.end!==null&&(Ea(e.nodes.start,e.nodes.end),n=!0),ce(e,Xn),Tr(e,t&&!n),kn(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(const i of r)i.stop();Ta(e),e.f^=Xn,e.f|=Ue;var a=e.parent;a!==null&&a.first!==null&&Sa(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=null}function Ea(e,t){for(;e!==null;){var n=e===t?null:Cn(e);e.remove(),e=n}}function Sa(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function zt(e,t,n=!0){var r=[];xa(e,r,!0);var a=()=>{n&&je(e),t&&t()},i=r.length;if(i>0){var o=()=>--i||a();for(var u of r)u.out(o)}else a()}function xa(e,t,n){if((e.f&Me)===0){e.f^=Me;var r=e.nodes&&e.nodes.t;if(r!==null)for(const u of r)(u.is_global||n)&&t.push(u);for(var a=e.first;a!==null;){var i=a.next,o=(a.f&un)!==0||(a.f&$e)!==0&&(e.f&jt)!==0;xa(a,t,o?n:!1),a=i}}}function Er(e){Ca(e,!0)}function Ca(e,t){if((e.f&Me)!==0){e.f^=Me,(e.f&he)===0&&(ce(e,ye),Ht.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,a=(n.f&un)!==0||(n.f&$e)!==0;Ca(n,a?t:!1),n=r}var i=e.nodes&&e.nodes.t;if(i!==null)for(const o of i)(o.is_global||t)&&o.in()}}function Sr(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var a=n===r?null:Cn(n);t.append(n),n=a}}let In=!1,Ct=!1;function Ir(e){Ct=e}let Y=null,Xe=!1;function Je(e){Y=e}let X=null;function ot(e){X=e}let Ve=null;function ja(e){Y!==null&&(Ve===null?Ve=[e]:Ve.push(e))}let Ce=null,Oe=0,Fe=null;function ri(e){Fe=e}let Pa=1,Ot=0,Ft=Ot;function Mr(e){Ft=e}function Aa(){return++Pa}function jn(e){var t=e.f;if((t&ye)!==0)return!0;if(t&ge&&(e.f&=~Bt),(t&et)!==0){for(var n=e.deps,r=n.length,a=0;a<r;a++){var i=n[a];if(jn(i)&&ca(i),i.wv>e.wv)return!0}(t&Ke)!==0&&me===null&&ce(e,he)}return!1}function Da(e,t,n=!0){var r=e.reactions;if(r!==null&&!(Ve!==null&&ln.call(Ve,e)))for(var a=0;a<r.length;a++){var i=r[a];(i.f&ge)!==0?Da(i,t,!1):t===i&&(n?ce(i,ye):(i.f&he)!==0&&ce(i,et),gr(i))}}function Oa(e){var x;var t=Ce,n=Oe,r=Fe,a=Y,i=Ve,o=Re,u=Xe,l=Ft,c=e.f;Ce=null,Oe=0,Fe=null,Y=(c&($e|qt))===0?e:null,Ve=null,fn(e.ctx),Xe=!1,Ft=++Ot,e.ac!==null&&(Hn(()=>{e.ac.abort(ft)}),e.ac=null);try{e.f|=$n;var v=e.fn,y=v();e.f|=Yt;var _=e.deps,S=U==null?void 0:U.is_fork;if(Ce!==null){var h;if(S||kn(e,Oe),_!==null&&Oe>0)for(_.length=Oe+Ce.length,h=0;h<Ce.length;h++)_[Oe+h]=Ce[h];else e.deps=_=Ce;if(yr()&&(e.f&Ke)!==0)for(h=Oe;h<_.length;h++)((x=_[h]).reactions??(x.reactions=[])).push(e)}else!S&&_!==null&&Oe<_.length&&(kn(e,Oe),_.length=Oe);if(ea()&&Fe!==null&&!Xe&&_!==null&&(e.f&(ge|et|ye))===0)for(h=0;h<Fe.length;h++)Da(Fe[h],e);if(a!==null&&a!==e){if(Ot++,a.deps!==null)for(let f=0;f<n;f+=1)a.deps[f].rv=Ot;if(t!==null)for(const f of t)f.rv=Ot;Fe!==null&&(r===null?r=Fe:r.push(...Fe))}return(e.f&Tt)!==0&&(e.f^=Tt),y}catch(f){return na(f)}finally{e.f^=$n,Ce=t,Oe=n,Fe=r,Y=a,Ve=i,fn(o),Xe=u,Ft=l}}function ai(e,t){let n=t.reactions;if(n!==null){var r=Ka.call(n,e);if(r!==-1){var a=n.length-1;a===0?n=t.reactions=null:(n[r]=n[a],n.pop())}}if(n===null&&(t.f&ge)!==0&&(Ce===null||!ln.call(Ce,t))){var i=t;(i.f&Ke)!==0&&(i.f^=Ke,i.f&=~Bt),hr(i),Vs(i),kn(i,0)}}function kn(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)ai(e,n[r])}function vn(e){var t=e.f;if((t&Ue)===0){ce(e,he);var n=X,r=In;X=e,In=!0;try{(t&(jt|Wr))!==0?ni(e):Tr(e),Ta(e);var a=Oa(e);e.teardown=typeof a=="function"?a:null,e.wv=Pa;var i;Ha&&xs&&(e.f&ye)!==0&&e.deps}finally{In=r,X=n}}}async function si(){await Promise.resolve(),Ds()}function s(e){var t=e.f,n=(t&ge)!==0;if(Y!==null&&!Xe){var r=X!==null&&(X.f&Ue)!==0;if(!r&&(Ve===null||!ln.call(Ve,e))){var a=Y.deps;if((Y.f&$n)!==0)e.rv<Ot&&(e.rv=Ot,Ce===null&&a!==null&&a[Oe]===e?Oe++:Ce===null?Ce=[e]:Ce.push(e));else{(Y.deps??(Y.deps=[])).push(e);var i=e.reactions;i===null?e.reactions=[Y]:ln.call(i,Y)||i.push(Y)}}}if(Ct&&Et.has(e))return Et.get(e);if(n){var o=e;if(Ct){var u=o.v;return((o.f&he)===0&&o.reactions!==null||Ia(o))&&(u=pr(o)),Et.set(o,u),u}var l=(o.f&Ke)===0&&!Xe&&Y!==null&&(In||(Y.f&Ke)!==0),c=(o.f&Yt)===0;jn(o)&&(l&&(o.f|=Ke),ca(o)),l&&!c&&(va(o),Na(o))}if(me!=null&&me.has(e))return me.get(e);if((e.f&Tt)!==0)throw e.v;return e.v}function Na(e){if(e.f|=Ke,e.deps!==null)for(const t of e.deps)(t.reactions??(t.reactions=[])).push(e),(t.f&ge)!==0&&(t.f&Ke)===0&&(va(t),Na(t))}function Ia(e){if(e.v===pe)return!0;if(e.deps===null)return!1;for(const t of e.deps)if(Et.has(t)||(t.f&ge)!==0&&Ia(t))return!0;return!1}function Kn(e){var t=Xe;try{return Xe=!0,e()}finally{Xe=t}}const ii=["touchstart","touchmove"];function li(e){return ii.includes(e)}const Nt=Symbol("events"),Ma=new Set,or=new Set;function oi(e,t,n,r={}){function a(i){if(r.capture||ur.call(t,i),!i.cancelBubble)return Hn(()=>n==null?void 0:n.call(this,i))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?dt(()=>{t.addEventListener(e,a,r)}):t.addEventListener(e,a,r),a}function Pe(e,t,n,r,a){var i={capture:r,passive:a},o=oi(e,t,n,i);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&br(()=>{t.removeEventListener(e,o,i)})}function te(e,t,n){(t[Nt]??(t[Nt]={}))[e]=n}function Ye(e){for(var t=0;t<e.length;t++)Ma.add(e[t]);for(var n of or)n(e)}let Rr=null;function ur(e){var f,g;var t=this,n=t.ownerDocument,r=e.type,a=((f=e.composedPath)==null?void 0:f.call(e))||[],i=a[0]||e.target;Rr=e;var o=0,u=Rr===e&&e[Nt];if(u){var l=a.indexOf(u);if(l!==-1&&(t===document||t===window)){e[Nt]=t;return}var c=a.indexOf(t);if(c===-1)return;l<=c&&(o=l)}if(i=a[o]||e.target,i!==t){Ua(e,"currentTarget",{configurable:!0,get(){return i||n}});var v=Y,y=X;Je(null),ot(null);try{for(var _,S=[];i!==null;){var h=i.assignedSlot||i.parentNode||i.host||null;try{var x=(g=i[Nt])==null?void 0:g[r];x!=null&&(!i.disabled||e.target===i)&&x.call(i,e)}catch(j){_?S.push(j):_=j}if(e.cancelBubble||h===t||h===null)break;i=h}if(_){for(let j of S)queueMicrotask(()=>{throw j});throw _}}finally{e[Nt]=t,delete e.currentTarget,Je(v),ot(y)}}}var Vr;const Gn=((Vr=globalThis==null?void 0:globalThis.window)==null?void 0:Vr.trustedTypes)&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function ui(e){return(Gn==null?void 0:Gn.createHTML(e))??e}function fi(e){var t=ya("template");return t.innerHTML=ui(e.replaceAll("<!>","<!---->")),t.content}function Tn(e,t){var n=X;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function P(e,t){var n=(t&ys)!==0,r=(t&bs)!==0,a,i=!e.startsWith("<!>");return()=>{a===void 0&&(a=fi(i?e:"<!>"+e),n||(a=kt(a)));var o=r||ha?document.importNode(a,!0):a.cloneNode(!0);if(n){var u=kt(o),l=o.lastChild;Tn(u,l)}else Tn(o,o);return o}}function Lr(e=""){{var t=St(e+"");return Tn(t,t),t}}function C(e,t){e!==null&&e.before(t)}function R(e,t){var n=t==null?"":typeof t=="object"?`${t}`:t;n!==(e.__t??(e.__t=e.nodeValue))&&(e.__t=n,e.nodeValue=`${n}`)}function ci(e,t){return vi(e,t)}const An=new Map;function vi(e,{target:t,anchor:n,props:r={},events:a,context:i,intro:o=!0,transformError:u}){Ws();var l=void 0,c=ei(()=>{var v=n??t.appendChild(St());Ms(v,{pending:()=>{}},S=>{Le({});var h=Re;i&&(h.c=i),a&&(r.$$events=a),l=e(S,r)||{},ze()},u);var y=new Set,_=S=>{for(var h=0;h<S.length;h++){var x=S[h];if(!y.has(x)){y.add(x);var f=li(x);for(const w of[t,document]){var g=An.get(w);g===void 0&&(g=new Map,An.set(w,g));var j=g.get(x);j===void 0?(w.addEventListener(x,ur,{passive:f}),g.set(x,1)):g.set(x,j+1)}}}};return _(Fn(Ma)),or.add(_),()=>{var f;for(var S of y)for(const g of[t,document]){var h=An.get(g),x=h.get(S);--x==0?(g.removeEventListener(S,ur),h.delete(S),h.size===0&&An.delete(g)):h.set(S,x)}or.delete(_),v!==n&&((f=v.parentNode)==null||f.removeChild(v))}});return di.set(l,c),l}let di=new WeakMap;var Ze,st,Ie,Rt,Sn,xn,zn;class _i{constructor(t,n=!0){Ge(this,"anchor");W(this,Ze,new Map);W(this,st,new Map);W(this,Ie,new Map);W(this,Rt,new Set);W(this,Sn,!0);W(this,xn,t=>{if(d(this,Ze).has(t)){var n=d(this,Ze).get(t),r=d(this,st).get(n);if(r)Er(r),d(this,Rt).delete(n);else{var a=d(this,Ie).get(n);a&&(d(this,st).set(n,a.effect),d(this,Ie).delete(n),a.fragment.lastChild.remove(),this.anchor.before(a.fragment),r=a.effect)}for(const[i,o]of d(this,Ze)){if(d(this,Ze).delete(i),i===t)break;const u=d(this,Ie).get(o);u&&(je(u.effect),d(this,Ie).delete(o))}for(const[i,o]of d(this,st)){if(i===n||d(this,Rt).has(i))continue;const u=()=>{if(Array.from(d(this,Ze).values()).includes(i)){var c=document.createDocumentFragment();Sr(o,c),c.append(St()),d(this,Ie).set(i,{effect:o,fragment:c})}else je(o);d(this,Rt).delete(i),d(this,st).delete(i)};d(this,Sn)||!r?(d(this,Rt).add(i),zt(o,u,!1)):u()}}});W(this,zn,t=>{d(this,Ze).delete(t);const n=Array.from(d(this,Ze).values());for(const[r,a]of d(this,Ie))n.includes(r)||(je(a.effect),d(this,Ie).delete(r))});this.anchor=t,J(this,Sn,n)}ensure(t,n){var r=U,a=ma();if(n&&!d(this,st).has(t)&&!d(this,Ie).has(t))if(a){var i=document.createDocumentFragment(),o=St();i.append(o),d(this,Ie).set(t,{effect:Be(()=>n(o)),fragment:i})}else d(this,st).set(t,Be(()=>n(this.anchor)));if(d(this,Ze).set(r,t),a){for(const[u,l]of d(this,st))u===t?r.unskip_effect(l):r.skip_effect(l);for(const[u,l]of d(this,Ie))u===t?r.unskip_effect(l.effect):r.skip_effect(l.effect);r.oncommit(d(this,xn)),r.ondiscard(d(this,zn))}else d(this,xn).call(this,r)}}Ze=new WeakMap,st=new WeakMap,Ie=new WeakMap,Rt=new WeakMap,Sn=new WeakMap,xn=new WeakMap,zn=new WeakMap;function H(e,t,n=!1){var r=new _i(e),a=n?un:0;function i(o,u){r.ensure(o,u)}kr(()=>{var o=!1;t((u,l=0)=>{o=!0,i(l,u)}),o||i(-1,null)},a)}function Vt(e,t){return t}function hi(e,t,n){for(var r=[],a=t.length,i,o=t.length,u=0;u<a;u++){let y=t[u];zt(y,()=>{if(i){if(i.pending.delete(y),i.done.add(y),i.pending.size===0){var _=e.outrogroups;fr(e,Fn(i.done)),_.delete(i),_.size===0&&(e.outrogroups=null)}}else o-=1},!1)}if(o===0){var l=r.length===0&&n!==null;if(l){var c=n,v=c.parentNode;Qs(v),v.append(c),e.items.clear()}fr(e,t,!l)}else i={pending:new Set(t),done:new Set},(e.outrogroups??(e.outrogroups=new Set)).add(i)}function fr(e,t,n=!0){var r;if(e.pending.size>0){r=new Set;for(const o of e.pending.values())for(const u of o)r.add(e.items.get(u).e)}for(var a=0;a<t.length;a++){var i=t[a];if(r!=null&&r.has(i)){i.f|=it;const o=document.createDocumentFragment();Sr(i,o)}else je(t[a],n)}}var zr;function Ae(e,t,n,r,a,i=null){var o=e,u=new Map,l=(t&Qr)!==0;if(l){var c=e;o=c.appendChild(St())}var v=null,y=fa(()=>{var w=n();return dr(w)?w:w==null?[]:Fn(w)}),_,S=new Map,h=!0;function x(w){(j.effect.f&Ue)===0&&(j.pending.delete(w),j.fallback=v,gi(j,_,o,t,r),v!==null&&(_.length===0?(v.f&it)===0?Er(v):(v.f^=it,pn(v,null,o)):zt(v,()=>{v=null})))}function f(w){j.pending.delete(w)}var g=kr(()=>{_=s(y);for(var w=_.length,N=new Set,A=U,L=ma(),k=0;k<w;k+=1){var D=_[k],F=r(D,k),K=h?null:u.get(F);K?(K.v&&cn(K.v,D),K.i&&cn(K.i,k),L&&A.unskip_effect(K.e)):(K=pi(u,h?o:zr??(zr=St()),D,F,k,a,t,n),h||(K.e.f|=it),u.set(F,K)),N.add(F)}if(w===0&&i&&!v&&(h?v=Be(()=>i(o)):(v=Be(()=>i(zr??(zr=St()))),v.f|=it)),w>N.size&&ts(),!h)if(S.set(A,N),L){for(const[le,z]of u)N.has(le)||A.skip_effect(z.e);A.oncommit(x),A.ondiscard(f)}else x(A);s(y)}),j={effect:g,items:u,pending:S,outrogroups:null,fallback:v};h=!1}function gn(e){for(;e!==null&&(e.f&$e)===0;)e=e.next;return e}function gi(e,t,n,r,a){var K,le,z,G,q,Q,ee,Z,se;var i=(r&ds)!==0,o=t.length,u=e.items,l=gn(e.effect.first),c,v=null,y,_=[],S=[],h,x,f,g;if(i)for(g=0;g<o;g+=1)h=t[g],x=a(h,g),f=u.get(x).e,(f.f&it)===0&&((le=(K=f.nodes)==null?void 0:K.a)==null||le.measure(),(y??(y=new Set)).add(f));for(g=0;g<o;g+=1){if(h=t[g],x=a(h,g),f=u.get(x).e,e.outrogroups!==null)for(const V of e.outrogroups)V.pending.delete(f),V.done.delete(f);if((f.f&it)!==0)if(f.f^=it,f===l)pn(f,null,n);else{var j=v?v.next:l;f===e.effect.last&&(e.effect.last=f.prev),f.prev&&(f.prev.next=f.next),f.next&&(f.next.prev=f.prev),pt(e,v,f),pt(e,f,j),pn(f,j,n),v=f,_=[],S=[],l=gn(v.next);continue}if((f.f&Me)!==0&&(Er(f),i&&((G=(z=f.nodes)==null?void 0:z.a)==null||G.unfix(),(y??(y=new Set)).delete(f))),f!==l){if(c!==void 0&&c.has(f)){if(_.length<S.length){var w=S[0],N;v=w.prev;var A=_[0],L=_[_.length-1];for(N=0;N<_.length;N+=1)pn(_[N],w,n);for(N=0;N<S.length;N+=1)c.delete(S[N]);pt(e,A.prev,L.next),pt(e,v,A),pt(e,L,w),l=w,v=L,g-=1,_=[],S=[]}else c.delete(f),pn(f,l,n),pt(e,f.prev,f.next),pt(e,f,v===null?e.effect.first:v.next),pt(e,v,f),v=f;continue}for(_=[],S=[];l!==null&&l!==f;)(c??(c=new Set)).add(l),S.push(l),l=gn(l.next);if(l===null)continue}(f.f&it)===0&&_.push(f),v=f,l=gn(f.next)}if(e.outrogroups!==null){for(const V of e.outrogroups)V.pending.size===0&&(fr(e,Fn(V.done)),(q=e.outrogroups)==null||q.delete(V));e.outrogroups.size===0&&(e.outrogroups=null)}if(l!==null||c!==void 0){var k=[];if(c!==void 0)for(f of c)(f.f&Me)===0&&k.push(f);for(;l!==null;)(l.f&Me)===0&&l!==e.fallback&&k.push(l),l=gn(l.next);var D=k.length;if(D>0){var F=(r&Qr)!==0&&o===0?n:null;if(i){for(g=0;g<D;g+=1)(ee=(Q=k[g].nodes)==null?void 0:Q.a)==null||ee.measure();for(g=0;g<D;g+=1)(se=(Z=k[g].nodes)==null?void 0:Z.a)==null||se.fix()}hi(e,k,F)}}i&&dt(()=>{var V,ae;if(y!==void 0)for(f of y)(ae=(V=f.nodes)==null?void 0:V.a)==null||ae.apply()})}function pi(e,t,n,r,a,i,o,u){var l=(o&cs)!==0?(o&_s)===0?Js(n,!1,!1):Kt(n):null,c=(o&vs)!==0?Kt(a):null;return{v:l,i:c,e:Be(()=>(i(t,l??n,c??a,u),()=>{e.delete(r)}))}}function pn(e,t,n){if(e.nodes)for(var r=e.nodes.start,a=e.nodes.end,i=t&&(t.f&it)===0?t.nodes.start:n;r!==null;){var o=Cn(r);if(i.before(r),r===a)return;r=o}}function pt(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function mi(e,t,n=!1,r=!1,a=!1,i=!1){var o=e,u="";if(n)var l=e;B(()=>{var c=X;if(u!==(u=t()??"")){if(n){c.nodes=null,l.innerHTML=u,u!==""&&Tn(kt(l),l.lastChild);return}if(c.nodes!==null&&(Ea(c.nodes.start,c.nodes.end),c.nodes=null),u!==""){var v=r?ws:a?ks:void 0,y=ya(r?"svg":a?"math":"template",v);y.innerHTML=u;var _=r||a?y:y.content;if(Tn(kt(_),_.lastChild),r||a)for(;kt(_);)o.before(kt(_));else o.before(_)}}})}const Fr=[...`
|
|
2
|
-
\r\f \v\uFEFF`];function yi(e,t,n){var r=e==null?"":""+e;if(t&&(r=r?r+" "+t:t),n){for(var a of Object.keys(n))if(n[a])r=r?r+" "+a:a;else if(r.length)for(var i=a.length,o=0;(o=r.indexOf(a,o))>=0;){var u=o+i;(o===0||Fr.includes(r[o-1]))&&(u===r.length||Fr.includes(r[u]))?r=(o===0?"":r.substring(0,o))+r.substring(u+1):o=u}}return r===""?null:r}function bi(e,t){return e==null?null:String(e)}function Ee(e,t,n,r,a,i){var o=e.__className;if(o!==n||o===void 0){var u=yi(n,r,i);u==null?e.removeAttribute("class"):e.className=u,e.__className=n}else if(i&&a!==i)for(var l in i){var c=!!i[l];(a==null||c!==!!a[l])&&e.classList.toggle(l,c)}return i}function xr(e,t,n,r){var a=e.__style;if(a!==t){var i=bi(t);i==null?e.removeAttribute("style"):e.style.cssText=i,e.__style=t}return r}function Ra(e,t,n=!1){if(e.multiple){if(t==null)return;if(!dr(t))return Ts();for(var r of e.options)r.selected=t.includes(bn(r));return}for(r of e.options){var a=bn(r);if(Gs(a,t)){r.selected=!0;return}}(!n||t!==void 0)&&(e.selectedIndex=-1)}function wi(e){var t=new MutationObserver(()=>{Ra(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),br(()=>{t.disconnect()})}function qr(e,t,n=t){var r=new WeakSet,a=!0;ba(e,"change",i=>{var o=i?"[selected]":":checked",u;if(e.multiple)u=[].map.call(e.querySelectorAll(o),bn);else{var l=e.querySelector(o)??e.querySelector("option:not([disabled])");u=l&&bn(l)}n(u),U!==null&&r.add(U)}),ka(()=>{var i=t();if(e===document.activeElement){var o=U;if(r.has(o))return}if(Ra(e,i,a),a&&i===void 0){var u=e.querySelector(":checked");u!==null&&(i=bn(u),n(i))}e.__value=i,a=!1}),wi(e)}function bn(e){return"__value"in e?e.__value:e.value}const ki=Symbol("is custom element"),Ti=Symbol("is html"),Ei=$a?"progress":"PROGRESS";function Si(e,t){var n=La(e);n.value===(n.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==Ei)||(e.value=t??"")}function Br(e,t,n,r){var a=La(e);a[t]!==(a[t]=n)&&(n==null?e.removeAttribute(t):typeof n!="string"&&xi(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function La(e){return e.__attributes??(e.__attributes={[ki]:e.nodeName.includes("-"),[Ti]:e.namespaceURI===Zr})}var Hr=new Map;function xi(e){var t=e.getAttribute("is")||e.nodeName,n=Hr.get(t);if(n)return n;Hr.set(t,n=[]);for(var r,a=e,i=Element.prototype;i!==a;){r=Va(a);for(var o in r)r[o].set&&n.push(o);a=Yr(a)}return n}function wn(e,t,n=t){var r=new WeakSet;ba(e,"input",async a=>{var i=a?e.defaultValue:e.value;if(i=Wn(e)?Qn(i):i,n(i),U!==null&&r.add(U),await si(),i!==(i=t())){var o=e.selectionStart,u=e.selectionEnd,l=e.value.length;if(e.value=i??"",u!==null){var c=e.value.length;o===u&&u===l&&c>l?(e.selectionStart=c,e.selectionEnd=c):(e.selectionStart=o,e.selectionEnd=Math.min(u,c))}}}),Kn(t)==null&&e.value&&(n(Wn(e)?Qn(e.value):e.value),U!==null&&r.add(U)),wr(()=>{var a=t();if(e===document.activeElement){var i=U;if(r.has(i))return}Wn(e)&&a===Qn(e.value)||e.type==="date"&&!a&&!e.value||a!==e.value&&(e.value=a??"")})}function Wn(e){var t=e.type;return t==="number"||t==="range"}function Qn(e){return e===""?null:+e}function Kr(e,t){return e===t||(e==null?void 0:e[Lt])===t}function cr(e={},t,n,r){var a=Re.r,i=X;return ka(()=>{var o,u;return wr(()=>{o=u,u=[],Kn(()=>{e!==n(...u)&&(t(e,...u),o&&Kr(n(...o),e)&&t(null,...o))})}),()=>{let l=i;for(;l!==a&&l.parent!==null&&l.parent.f&Xn;)l=l.parent;const c=()=>{u&&Kr(n(...u),e)&&t(null,...u)},v=l.teardown;l.teardown=()=>{c(),v==null||v()}}}),e}function Jt(e,t,n,r){var j;var a=(n&ps)!==0,i=(n&ms)!==0,o=r,u=!0,l=()=>(u&&(u=!1,o=i?Kn(r):r),o);let c;if(a){var v=Lt in e||Xa in e;c=((j=Qt(e,t))==null?void 0:j.set)??(v&&t in e?w=>e[t]=w:void 0)}var y,_=!1;a?[y,_]=Ps(()=>e[t]):y=e[t],y===void 0&&r!==void 0&&(y=l(),c&&(is(),c(y)));var S;if(S=()=>{var w=e[t];return w===void 0?l():(u=!0,w)},(n&gs)===0)return S;if(c){var h=e.$$legacy;return(function(w,N){return arguments.length>0?((!N||h||_)&&c(N?S():w),w):S()})}var x=!1,f=((n&hs)!==0?Bn:fa)(()=>(x=!1,S()));a&&s(f);var g=X;return(function(w,N){if(arguments.length>0){const A=N?s(f):a?we(w):w;return p(f,A),x=!0,o!==void 0&&(o=A),w}return Ct&&x||(g.f&Ue)!==0?f.v:s(f)})}const Ci="5";var Jr;typeof window<"u"&&((Jr=window.__svelte??(window.__svelte={})).v??(Jr.v=new Set)).add(Ci);async function tt(e,t){const n=await fetch(`/api${e}`,{headers:{"Content-Type":"application/json"},...t});if(!n.ok){const r=await n.json().catch(()=>({error:n.statusText}));throw new Error(r.error||"Request failed")}return n.json()}const He={getProjects:()=>tt("/projects"),getProject:e=>tt(`/projects/${e}`),updateProject:(e,t)=>tt(`/projects/${e}`,{method:"PATCH",body:JSON.stringify(t)}),getTasks:e=>tt(`/projects/${e}/tasks?include_done=true`),createTask:(e,t)=>tt(`/projects/${e}/tasks`,{method:"POST",body:JSON.stringify(t)}),updateTask:(e,t)=>tt(`/tasks/${e}`,{method:"PATCH",body:JSON.stringify(t)}),deleteTask:e=>tt(`/tasks/${e}`,{method:"DELETE"}),getNotes:e=>tt(`/projects/${e}/notes`),getDecisions:e=>tt(`/projects/${e}/decisions`),getTaskHistory:e=>tt(`/tasks/${e}/history`)};var ji=P('<input class="rename-input svelte-1kanzy0" type="text"/>'),Pi=P('<span class="project-slug svelte-1kanzy0"> </span>'),Ai=P('<span class="project-name svelte-1kanzy0"> </span> <!> <button class="rename-btn svelte-1kanzy0" title="Rename project">✎</button>',1),Di=P('<div class="project-area svelte-1kanzy0"><!></div>'),Oi=P('<header class="toolbar svelte-1kanzy0"><!></header>');function Ni(e,t){Le(t,!0);let n=M(!1),r=M("");const a=ie(()=>t.projects.find(y=>y.id===t.selectedId));function i(){s(a)&&(p(r,s(a).name,!0),p(n,!0))}function o(){if(!s(a)||!s(n))return;const y=s(r).trim();y&&y!==s(a).name&&t.onRenamed(s(a).id,y),p(n,!1)}function u(y){y.key==="Enter"&&o(),y.key==="Escape"&&p(n,!1)}var l=Oi(),c=m(l);{var v=y=>{var _=Di(),S=m(_);{var h=f=>{var g=ji();mr(g),Pe("blur",g,o),te("keydown",g,u),wn(g,()=>s(r),j=>p(r,j)),C(f,g)},x=f=>{var g=Ai(),j=Ut(g),w=m(j),N=T(j,2);{var A=k=>{var D=Pi(),F=m(D);B(()=>R(F,`[${s(a).slug??""}]`)),C(k,D)};H(N,k=>{s(a).slug&&k(A)})}var L=T(N,2);B(()=>R(w,s(a).name)),te("click",L,i),C(f,g)};H(S,f=>{s(n)?f(h):f(x,-1)})}C(y,_)};H(c,y=>{s(a)&&y(v)})}C(e,l),ze()}Ye(["keydown","click"]);var Ii=P('<span class="brand svelte-rig7vt"><span class="prompt svelte-rig7vt">></span> mindpm</span>'),Mi=P('<span class="task-count svelte-rig7vt"> </span>'),Ri=P('<span class="project-name svelte-rig7vt"> </span> <!>',1),Li=P('<span class="task-count svelte-rig7vt"> </span>'),zi=P('<span class="project-slug-collapsed svelte-rig7vt"> </span> <!>',1),Fi=P('<button><span class="status-dot svelte-rig7vt"></span> <!></button>'),qi=P('<div class="sidebar-footer svelte-rig7vt"><span class="footer-hint svelte-rig7vt"> </span></div>'),Bi=P('<aside><div class="sidebar-header svelte-rig7vt"><!> <button class="collapse-btn svelte-rig7vt"> </button></div> <nav class="project-list svelte-rig7vt"></nav> <!></aside>');function Hi(e,t){Le(t,!0);const n="mindpm_sidebar_collapsed";let r=M(localStorage.getItem(n)==="true");function a(){p(r,!s(r)),localStorage.setItem(n,String(s(r)))}const i={active:"var(--primary)",paused:"#d29922",completed:"var(--text-muted)",archived:"var(--border-bright)"};var o=Bi();let u;var l=m(o),c=m(l);{var v=f=>{var g=Ii();C(f,g)};H(c,f=>{s(r)||f(v)})}var y=T(c,2),_=m(y),S=T(l,2);Ae(S,21,()=>t.projects,f=>f.id,(f,g)=>{var j=Fi();let w;var N=m(j),A=T(N,2);{var L=D=>{var F=Ri(),K=Ut(F),le=m(K),z=T(K,2);{var G=q=>{var Q=Mi(),ee=m(Q);B(()=>R(ee,s(g).active_task_count)),C(q,Q)};H(z,q=>{(s(g).active_task_count??0)>0&&q(G)})}B(()=>R(le,s(g).name)),C(D,F)},k=D=>{var F=zi(),K=Ut(F),le=m(K),z=T(K,2);{var G=q=>{var Q=Li(),ee=m(Q);B(()=>R(ee,s(g).active_task_count)),C(q,Q)};H(z,q=>{(s(g).active_task_count??0)>0&&q(G)})}B(()=>R(le,s(g).slug??s(g).id)),C(D,F)};H(A,D=>{s(r)?D(k,-1):D(L)})}B(()=>{w=Ee(j,1,"project-item svelte-rig7vt",null,w,{active:s(g).id===t.selectedId}),Br(j,"title",s(r)?s(g).name:void 0),xr(N,`background: ${i[s(g).status]??"var(--text-muted)"??""}`)}),te("click",j,()=>t.onSelect(s(g).id)),C(f,j)});var h=T(S,2);{var x=f=>{var g=qi(),j=m(g),w=m(j);B(()=>R(w,`// ${t.projects.length??""} project${t.projects.length!==1?"s":""}`)),C(f,g)};H(h,f=>{s(r)||f(x)})}B(()=>{u=Ee(o,1,"sidebar svelte-rig7vt",null,u,{collapsed:s(r)}),Br(y,"title",s(r)?"Expand sidebar":"Collapse sidebar"),R(_,s(r)?"»":"«")}),te("click",y,a),C(e,o),ze()}Ye(["click"]);const Ki=[{status:"todo",label:"Todo"},{status:"in_progress",label:"In Progress"},{status:"blocked",label:"Blocked"},{status:"in_review",label:"In Review"},{status:"done",label:"Done"},{status:"cancelled",label:"Cancelled"}],za=["critical","high","medium","low"];var Ui=P('<span class="task-id svelte-35ep21"> </span>'),Vi=P('<div class="card-desc svelte-35ep21"> </div>'),Ji=P('<span class="tag svelte-35ep21"> </span>'),Yi=P('<div class="card-tags svelte-35ep21"></div>'),Gi=P('<span class="badge badge-blocked svelte-35ep21"> </span>'),Wi=P('<span class="badge badge-subtasks svelte-35ep21"> </span>'),Qi=P('<div class="card-footer svelte-35ep21"><!> <!></div>'),Zi=P('<div draggable="true" role="button" tabindex="0"><div class="card-header svelte-35ep21"><span> </span> <div class="card-header-right svelte-35ep21"><!> <button class="delete-btn svelte-35ep21" title="Delete task">×</button></div></div> <div class="card-title svelte-35ep21"> </div> <!> <!> <!></div>');function Xi(e,t){Le(t,!0);let n=Jt(t,"subtaskCount",3,0),r=M(!1);function a(z){if(!z)return[];try{return JSON.parse(z)}catch{return[]}}const i=ie(()=>a(t.task.tags)),o=ie(()=>`priority-${t.task.priority}`),u=ie(()=>()=>{if(!t.task.blocked_by)return 0;try{const z=JSON.parse(t.task.blocked_by);return Array.isArray(z)?z.length:0}catch{return 0}});function l(z){p(r,!0),t.onDragStart(z,t.task)}function c(){p(r,!1)}var v=Zi();let y;var _=m(v),S=m(_),h=m(S),x=T(S,2),f=m(x);{var g=z=>{var G=Ui(),q=m(G);B(()=>R(q,t.task.short_id)),C(z,G)};H(f,z=>{t.task.short_id&&z(g)})}var j=T(f,2),w=T(_,2),N=m(w),A=T(w,2);{var L=z=>{var G=Vi(),q=m(G);B(()=>R(q,t.task.description)),C(z,G)};H(A,z=>{t.task.description&&z(L)})}var k=T(A,2);{var D=z=>{var G=Yi();Ae(G,21,()=>s(i),Vt,(q,Q)=>{var ee=Ji(),Z=m(ee);B(()=>R(Z,s(Q))),C(q,ee)}),C(z,G)};H(k,z=>{s(i).length>0&&z(D)})}var F=T(k,2);{var K=z=>{var G=Qi(),q=m(G);{var Q=V=>{var ae=Gi(),$=m(ae);B(re=>R($,`⊘ blocked by ${re??""}`),[()=>s(u)()]),C(V,ae)},ee=ie(()=>s(u)()>0);H(q,V=>{s(ee)&&V(Q)})}var Z=T(q,2);{var se=V=>{var ae=Wi(),$=m(ae);B(()=>R($,`⑂ ${n()??""}`)),C(V,ae)};H(Z,V=>{n()>0&&V(se)})}C(z,G)},le=ie(()=>s(u)()>0||n()>0);H(F,z=>{s(le)&&z(K)})}B(()=>{y=Ee(v,1,`card ${s(o)??""}`,"svelte-35ep21",y,{dragging:s(r)}),Ee(S,1,`priority-badge ${s(o)??""}`,"svelte-35ep21"),R(h,t.task.priority),R(N,t.task.title)}),Pe("dragstart",v,l),Pe("dragend",v,c),te("click",v,()=>t.onEdit(t.task)),te("keydown",v,z=>{z.key==="Enter"&&t.onEdit(t.task)}),te("click",j,z=>{z.stopPropagation(),t.onDelete(t.task)}),C(e,v),ze()}Ye(["click","keydown"]);var $i=P('<div class="column-collapsed svelte-zswfgn"><button class="expand-btn svelte-zswfgn" title="Expand column">»</button> <div class="collapsed-label svelte-zswfgn"><span> </span> <span class="collapsed-text svelte-zswfgn"> </span></div></div>'),el=P('<button class="add-btn svelte-zswfgn" title="Add task">+</button>'),tl=P('<div class="wip-banner svelte-zswfgn"> </div>'),nl=P('<div class="column-header svelte-zswfgn"><h3 class="svelte-zswfgn"><span class="chevron svelte-zswfgn">▸</span> <span> </span></h3> <div class="header-actions svelte-zswfgn"><!> <button class="collapse-btn svelte-zswfgn" title="Collapse column">«</button></div></div> <!> <div class="card-list svelte-zswfgn"></div>',1),rl=P('<div role="list"><!></div>');function al(e,t){Le(t,!0);const n=5,r="mindpm_collapsed_cols";let a=M(!1);function i(){try{const j=localStorage.getItem(r);return(j?JSON.parse(j):[]).includes(t.status)}catch{return!1}}function o(j){try{const w=localStorage.getItem(r),N=w?JSON.parse(w):[],A=j?[...new Set([...N,t.status])]:N.filter(L=>L!==t.status);localStorage.setItem(r,JSON.stringify(A))}catch{}}let u=M(we(i()));function l(){p(u,!s(u)),o(s(u))}const c=ie(()=>t.status==="in_progress"&&t.tasks.length>n);function v(j){j.preventDefault(),j.dataTransfer&&(j.dataTransfer.dropEffect="move"),p(a,!0)}function y(){p(a,!1)}function _(j){j.preventDefault(),p(a,!1),t.onDrop(t.status)}var S=rl();let h;var x=m(S);{var f=j=>{var w=$i(),N=m(w),A=T(N,2),L=m(A);let k;var D=m(L),F=T(L,2),K=m(F);B(()=>{k=Ee(L,1,"collapsed-count svelte-zswfgn",null,k,{wip:s(c)}),R(D,`[${t.tasks.length??""}]`),R(K,t.label)}),te("click",N,l),C(j,w)},g=j=>{var w=nl(),N=Ut(w),A=m(N),L=T(m(A)),k=T(L);let D;var F=m(k),K=T(A,2),le=m(K);{var z=Z=>{var se=el();te("click",se,()=>t.onAddTask(t.status)),C(Z,se)};H(le,Z=>{t.status==="todo"&&Z(z)})}var G=T(le,2),q=T(N,2);{var Q=Z=>{var se=tl(),V=m(se);B(()=>R(V,`WIP limit exceeded (${t.tasks.length??""}/5)`)),C(Z,se)};H(q,Z=>{s(c)&&Z(Q)})}var ee=T(q,2);Ae(ee,21,()=>t.tasks,Z=>Z.id,(Z,se)=>{{let V=ie(()=>t.subtaskCounts.get(s(se).id)??0);Xi(Z,{get task(){return s(se)},get subtaskCount(){return s(V)},get onEdit(){return t.onEdit},get onDelete(){return t.onDelete},get onDragStart(){return t.onDragStart}})}}),B(()=>{R(L,` ${t.label??""} `),D=Ee(k,1,"count svelte-zswfgn",null,D,{wip:s(c)}),R(F,`[${t.tasks.length??""}${s(c)?" ⚠":""}]`)}),te("click",G,l),C(j,w)};H(x,j=>{s(u)?j(f):j(g,-1)})}B(()=>h=Ee(S,1,"column svelte-zswfgn",null,h,{"drag-over":s(a),collapsed:s(u),"wip-warning":s(c)})),Pe("dragover",S,v),Pe("dragleave",S,y),Pe("drop",S,_),C(e,S),ze()}Ye(["click"]);var sl=P('<span class="modal-task-id svelte-1gmf2hi"> </span>'),il=P("<option> </option>"),ll=P('<div class="field svelte-1gmf2hi"><label for="status" class="svelte-1gmf2hi">Status</label> <select id="status" class="svelte-1gmf2hi"><option>Todo</option><option>In Progress</option><option>Blocked</option><option>In Review</option><option>Done</option><option>Cancelled</option></select></div>'),ol=P('<span class="blocker-id svelte-1gmf2hi"> </span>'),ul=P("<span> </span>"),fl=P('<div class="blocked-item svelte-1gmf2hi"><!> <span class="blocker-title svelte-1gmf2hi"> </span> <!></div>'),cl=P('<div class="blocked-section svelte-1gmf2hi"><h3 class="section-heading svelte-1gmf2hi">Blocked by</h3> <div class="blocked-list svelte-1gmf2hi"></div></div>'),vl=P('<div class="history-item svelte-1gmf2hi"><span class="history-dot svelte-1gmf2hi"></span> <div class="history-body svelte-1gmf2hi"><span class="history-event svelte-1gmf2hi"></span> <span class="history-time svelte-1gmf2hi"> </span></div></div>'),dl=P('<div class="history-section svelte-1gmf2hi"><h3 class="history-heading svelte-1gmf2hi">History</h3> <div class="history-list svelte-1gmf2hi"></div></div>'),_l=P('<div class="modal-backdrop svelte-1gmf2hi"><div class="modal svelte-1gmf2hi"><div class="modal-header svelte-1gmf2hi"><div class="modal-title svelte-1gmf2hi"><h2 class="svelte-1gmf2hi"> </h2> <!></div> <button class="close-btn svelte-1gmf2hi">×</button></div> <form><div class="field svelte-1gmf2hi"><label for="title" class="svelte-1gmf2hi">Title</label> <input id="title" type="text" placeholder="Task title" required="" class="svelte-1gmf2hi"/></div> <div class="field svelte-1gmf2hi"><label for="description" class="svelte-1gmf2hi">Description</label> <textarea id="description" placeholder="Optional description" rows="3" class="svelte-1gmf2hi"></textarea></div> <div class="row svelte-1gmf2hi"><div class="field svelte-1gmf2hi"><label for="priority" class="svelte-1gmf2hi">Priority</label> <select id="priority" class="svelte-1gmf2hi"></select></div> <!></div> <div class="field svelte-1gmf2hi"><label for="tags" class="svelte-1gmf2hi">Tags <span class="hint svelte-1gmf2hi">(comma-separated)</span></label> <input id="tags" type="text" placeholder="e.g. backend, auth, bug" class="svelte-1gmf2hi"/></div> <div class="actions svelte-1gmf2hi"><button type="button" class="btn-cancel svelte-1gmf2hi">Cancel</button> <button type="submit" class="btn-save svelte-1gmf2hi"> </button></div></form> <!> <!></div></div>');function hl(e,t){Le(t,!0);let n=Jt(t,"allTasks",19,()=>[]),r=Jt(t,"defaultStatus",3,"todo"),a=M(""),i=M(""),o=M("medium"),u=M("todo"),l=M(""),c=M(we([]));lt(()=>{var E,O,ne,fe,de;if(p(a,((E=t.task)==null?void 0:E.title)??"",!0),p(i,((O=t.task)==null?void 0:O.description)??"",!0),p(o,((ne=t.task)==null?void 0:ne.priority)??"medium",!0),p(u,((fe=t.task)==null?void 0:fe.status)??r(),!0),(de=t.task)!=null&&de.tags)try{p(l,JSON.parse(t.task.tags).join(", "),!0)}catch{p(l,"")}else p(l,"")}),lt(()=>{t.task!==null?He.getTaskHistory(t.task.id).then(E=>{p(c,E,!0)}).catch(()=>{p(c,[],!0)}):p(c,[],!0)});const v=ie(()=>t.task!==null),y=ie(()=>()=>{var E;if(!((E=t.task)!=null&&E.blocked_by))return[];try{const O=JSON.parse(t.task.blocked_by);if(!Array.isArray(O)||O.length===0)return[];const ne=new Map(n().map(fe=>[fe.id,fe]));return O.map(fe=>ne.get(fe)??{id:fe,title:fe,short_id:null,status:null})}catch{return[]}});function _(E){switch(E.event){case"created":return"<b>created</b>";case"status_changed":return`status <b>${E.old_value}</b> → <b>${E.new_value}</b>`;case"priority_changed":return`priority <b>${E.old_value}</b> → <b>${E.new_value}</b>`;case"title_changed":return"title renamed";default:return E.event.replace(/_/g," ")}}function S(E){return new Date(E.replace(" ","T")+"Z").toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function h(E){E.preventDefault();const O=s(a).trim();if(!O)return;const ne=s(l).split(",").map(fe=>fe.trim()).filter(Boolean);t.onSave({title:O,description:s(i).trim(),priority:s(o),...s(v)?{status:s(u)}:{},tags:ne})}function x(E){E.target.classList.contains("modal-backdrop")&&t.onClose()}function f(E){E.key==="Escape"&&t.onClose()}var g=_l();Pe("keydown",xt,f);var j=m(g),w=m(j),N=m(w),A=m(N),L=m(A),k=T(A,2);{var D=E=>{var O=sl(),ne=m(O);B(()=>R(ne,t.task.short_id)),C(E,O)};H(k,E=>{var O;(O=t.task)!=null&&O.short_id&&E(D)})}var F=T(N,2),K=T(w,2),le=m(K),z=T(m(le),2);mr(z);var G=T(le,2),q=T(m(G),2),Q=T(G,2),ee=m(Q),Z=T(m(ee),2);Ae(Z,21,()=>za,Vt,(E,O)=>{var ne=il(),fe=m(ne),de={};B(()=>{R(fe,s(O)),de!==(de=s(O))&&(ne.value=(ne.__value=s(O))??"")}),C(E,ne)});var se=T(ee,2);{var V=E=>{var O=ll(),ne=T(m(O),2),fe=m(ne);fe.value=fe.__value="todo";var de=T(fe);de.value=de.__value="in_progress";var ut=T(de);ut.value=ut.__value="blocked";var ht=T(ut);ht.value=ht.__value="in_review";var gt=T(ht);gt.value=gt.__value="done";var Pt=T(gt);Pt.value=Pt.__value="cancelled",qr(ne,()=>s(u),_n=>p(u,_n)),C(E,O)};H(se,E=>{s(v)&&E(V)})}var ae=T(Q,2),$=T(m(ae),2),re=T(ae,2),ue=m(re),Te=T(ue,2),Se=m(Te),De=T(K,2);{var oe=E=>{var O=cl(),ne=T(m(O),2);Ae(ne,21,()=>s(y)(),Vt,(fe,de)=>{var ut=fl(),ht=m(ut);{var gt=At=>{var Gt=ol(),Vn=m(Gt);B(()=>R(Vn,s(de).short_id)),C(At,Gt)};H(ht,At=>{s(de).short_id&&At(gt)})}var Pt=T(ht,2),_n=m(Pt),Un=T(Pt,2);{var Fa=At=>{var Gt=ul(),Vn=m(Gt);B(()=>{Ee(Gt,1,`blocker-status blocker-status-${s(de).status??""}`,"svelte-1gmf2hi"),R(Vn,s(de).status)}),C(At,Gt)};H(Un,At=>{s(de).status&&At(Fa)})}B(()=>R(_n,s(de).title)),C(fe,ut)}),C(E,O)},be=ie(()=>s(v)&&s(y)().length>0);H(De,E=>{s(be)&&E(oe)})}var b=T(De,2);{var I=E=>{var O=dl(),ne=T(m(O),2);Ae(ne,21,()=>s(c),fe=>fe.id,(fe,de)=>{var ut=vl(),ht=T(m(ut),2),gt=m(ht);mi(gt,()=>_(s(de)),!0);var Pt=T(gt,2),_n=m(Pt);B(Un=>R(_n,Un),[()=>S(s(de).created_at)]),C(fe,ut)}),C(E,O)};H(b,E=>{s(v)&&s(c).length>0&&E(I)})}B(()=>{R(L,s(v)?"Edit Task":"New Task"),R(Se,s(v)?"Save":"Create")}),te("click",g,x),te("click",F,function(...E){var O;(O=t.onClose)==null||O.apply(this,E)}),Pe("submit",K,h),wn(z,()=>s(a),E=>p(a,E)),wn(q,()=>s(i),E=>p(i,E)),qr(Z,()=>s(o),E=>p(o,E)),wn($,()=>s(l),E=>p(l,E)),te("click",ue,function(...E){var O;(O=t.onClose)==null||O.apply(this,E)}),C(e,g),ze()}Ye(["click"]);var gl=P('<div class="modal-backdrop svelte-1efofyg"><div class="dialog svelte-1efofyg"><h3 class="svelte-1efofyg"> </h3> <p class="svelte-1efofyg"> </p> <div class="actions svelte-1efofyg"><button class="btn-cancel svelte-1efofyg">Cancel</button> <button class="btn-confirm svelte-1efofyg"> </button></div></div></div>');function pl(e,t){Le(t,!0);let n=Jt(t,"confirmLabel",3,"Delete");function r(x){x.target.classList.contains("modal-backdrop")&&t.onCancel()}function a(x){x.key==="Escape"&&t.onCancel()}var i=gl();Pe("keydown",xt,a);var o=m(i),u=m(o),l=m(u),c=T(u,2),v=m(c),y=T(c,2),_=m(y),S=T(_,2),h=m(S);B(()=>{R(l,t.title),R(v,t.message),R(h,n())}),te("click",i,r),te("click",_,function(...x){var f;(f=t.onCancel)==null||f.apply(this,x)}),te("click",S,function(...x){var f;(f=t.onConfirm)==null||f.apply(this,x)}),C(e,i),ze()}Ye(["click"]);var ml=P('<button class="clear-input svelte-dhotvj">×</button>'),yl=P("<button> </button>"),bl=P('<button><span class="tag-checkbox svelte-dhotvj"> </span> <span class="tag-name svelte-dhotvj"> </span></button>'),wl=P('<button class="tag-clear svelte-dhotvj">clear tags</button>'),kl=P('<div class="tag-dropdown svelte-dhotvj"><!> <!></div>'),Tl=P('<div class="filter-section tag-dropdown-wrapper svelte-dhotvj"><span class="filter-label svelte-dhotvj">tags:</span> <button><!></button> <!></div>'),El=P('<button class="clear-all svelte-dhotvj"> </button>'),Sl=P('<div class="filter-bar svelte-dhotvj"><div class="filter-search svelte-dhotvj"><span class="search-icon svelte-dhotvj">/</span> <input type="text" placeholder="search tasks..." class="svelte-dhotvj"/> <!></div> <div class="filter-section svelte-dhotvj"><span class="filter-label svelte-dhotvj">priority:</span> <div class="chip-group svelte-dhotvj"></div></div> <!> <!> <div class="shortcuts-hint svelte-dhotvj"><span class="svelte-dhotvj"><kbd class="svelte-dhotvj">N</kbd> new</span> <span class="svelte-dhotvj"><kbd class="svelte-dhotvj">/</kbd> search</span> <span class="svelte-dhotvj"><kbd class="svelte-dhotvj">Ctrl K</kbd> palette</span></div></div>');function xl(e,t){Le(t,!0);let n=Jt(t,"focusSearch",15,null),r=M(null),a=M(!1),i=M(null);lt(()=>{n(()=>{var A;return(A=s(r))==null?void 0:A.focus()})});const o=ie(()=>(t.searchQuery.trim()?1:0)+t.selectedPriorities.size+t.selectedTags.size),u={critical:"var(--priority-critical)",high:"var(--priority-high)",medium:"var(--priority-medium)",low:"var(--text-muted)"};function l(A){A.key==="Escape"&&p(a,!1)}function c(A){s(i)&&!s(i).contains(A.target)&&p(a,!1)}var v=Sl();Pe("click",xt,c),Pe("keydown",xt,l);var y=m(v),_=T(m(y),2);cr(_,A=>p(r,A),()=>s(r));var S=T(_,2);{var h=A=>{var L=ml();te("click",L,()=>t.onSearchChange("")),C(A,L)};H(S,A=>{t.searchQuery&&A(h)})}var x=T(y,2),f=T(m(x),2);Ae(f,21,()=>za,Vt,(A,L)=>{var k=yl();let D;var F=m(k);B(K=>{D=Ee(k,1,"chip svelte-dhotvj",null,D,K),xr(k,`--chip-color: ${u[s(L)]??""}`),R(F,s(L))},[()=>({active:t.selectedPriorities.has(s(L))})]),te("click",k,()=>t.onPriorityToggle(s(L))),C(A,k)});var g=T(x,2);{var j=A=>{var L=Tl(),k=T(m(L),2);let D;var F=m(k);{var K=q=>{var Q=Lr();B(()=>R(Q,`[${t.selectedTags.size??""}] ▾`)),C(q,Q)},le=q=>{var Q=Lr("all ▾");C(q,Q)};H(F,q=>{t.selectedTags.size>0?q(K):q(le,-1)})}var z=T(k,2);{var G=q=>{var Q=kl(),ee=m(Q);Ae(ee,17,()=>t.allTags,Vt,(V,ae)=>{var $=bl();let re;var ue=m($),Te=m(ue),Se=T(ue,2),De=m(Se);B((oe,be)=>{re=Ee($,1,"tag-option svelte-dhotvj",null,re,oe),R(Te,be),R(De,`#${s(ae)??""}`)},[()=>({selected:t.selectedTags.has(s(ae))}),()=>t.selectedTags.has(s(ae))?"✓":" "]),te("click",$,oe=>{oe.stopPropagation(),t.onTagToggle(s(ae))}),C(V,$)});var Z=T(ee,2);{var se=V=>{var ae=wl();te("click",ae,$=>{$.stopPropagation(),t.selectedTags.forEach(re=>t.onTagToggle(re))}),C(V,ae)};H(Z,V=>{t.selectedTags.size>0&&V(se)})}C(q,Q)};H(z,q=>{s(a)&&q(G)})}cr(L,q=>p(i,q),()=>s(i)),B(()=>D=Ee(k,1,"dropdown-trigger svelte-dhotvj",null,D,{active:t.selectedTags.size>0})),te("click",k,q=>{q.stopPropagation(),p(a,!s(a))}),C(A,L)};H(g,A=>{t.allTags.length>0&&A(j)})}var w=T(g,2);{var N=A=>{var L=El(),k=m(L);B(()=>R(k,`clear [${s(o)??""}]`)),te("click",L,function(...D){var F;(F=t.onClear)==null||F.apply(this,D)}),C(A,L)};H(w,A=>{s(o)>0&&A(N)})}B(()=>Si(_,t.searchQuery)),te("input",_,A=>t.onSearchChange(A.target.value)),C(e,v),ze()}Ye(["input","click"]);var Cl=P('<div class="board-message svelte-x7v2jt">Loading tasks...</div>'),jl=P('<div class="board-message error svelte-x7v2jt"> <button class="svelte-x7v2jt">Retry</button></div>'),Pl=P('<div class="board svelte-x7v2jt"></div>'),Al=P('<!> <div class="board-wrapper svelte-x7v2jt"><!></div> <!> <!>',1);function Dl(e,t){Le(t,!0);let n=Jt(t,"triggerNewTask",3,!1),r=Jt(t,"openTask",3,null),a=M(we([])),i=M(!0),o=M(null),u=M(!1),l=M(null),c=M("todo"),v=M(!1),y=M(null),_=M(null),S=M(""),h=M(we(new Set)),x=M(we(new Set));const f=ie(()=>()=>{const b=new Map;for(const I of s(a))I.parent_task_id&&b.set(I.parent_task_id,(b.get(I.parent_task_id)??0)+1);return b}),g=ie(()=>()=>{const b=new Set;for(const I of s(a))if(I.tags)try{for(const E of JSON.parse(I.tags))b.add(E)}catch{}return[...b].sort()}),j=ie(()=>()=>{let b=s(a);const I=s(S).trim().toLowerCase();return I&&(b=b.filter(E=>E.title.toLowerCase().includes(I)||(E.description??"").toLowerCase().includes(I)||(E.short_id??"").toLowerCase().includes(I))),s(h).size>0&&(b=b.filter(E=>s(h).has(E.priority))),s(x).size>0&&(b=b.filter(E=>{if(!E.tags)return!1;try{return JSON.parse(E.tags).some(ne=>s(x).has(ne))}catch{return!1}})),b}),w={critical:0,high:1,medium:2,low:3},N=ie(()=>Ki.map(b=>{const I=s(j)().filter(E=>E.status===b.status);return b.status==="done"||b.status==="cancelled"?I.sort((E,O)=>(O.updated_at??"").localeCompare(E.updated_at??"")):I.sort((E,O)=>{const ne=(w[E.priority]??3)-(w[O.priority]??3);return ne!==0?ne:(O.created_at??"").localeCompare(E.created_at??"")}),{...b,tasks:I}}));function A(b){const I=new Set(s(h));I.has(b)?I.delete(b):I.add(b),p(h,I,!0)}function L(b){const I=new Set(s(x));I.has(b)?I.delete(b):I.add(b),p(x,I,!0)}function k(){p(S,""),p(h,new Set,!0),p(x,new Set,!0)}let D=M(null);function F(b){var O;const I=b.target.tagName;I==="INPUT"||I==="TEXTAREA"||I==="SELECT"||b.ctrlKey||b.metaKey||b.altKey||(b.key==="n"||b.key==="N"?(b.preventDefault(),G("todo")):b.key==="/"&&(b.preventDefault(),(O=s(D))==null||O()))}lt(()=>{var b;n()&&(G("todo"),(b=t.onNewTaskTriggered)==null||b.call(t))}),lt(()=>{var b;r()&&(p(l,r()),p(u,!0),(b=t.onOpenTaskHandled)==null||b.call(t))});async function K(){p(i,!0),p(o,null);try{p(a,await He.getTasks(t.project.id),!0)}catch(b){p(o,b.message,!0)}finally{p(i,!1)}}lt(()=>{t.project.id,K()});function le(b,I){p(_,I,!0),b.dataTransfer&&(b.dataTransfer.effectAllowed="move",b.dataTransfer.setData("text/plain",I.id))}async function z(b){if(!s(_)||s(_).status===b){p(_,null);return}const I=s(_),E=I.status;p(_,null);const O=s(a).findIndex(ne=>ne.id===I.id);O!==-1&&(s(a)[O]={...s(a)[O],status:b});try{await He.updateTask(I.id,{status:b})}catch(ne){O!==-1&&(s(a)[O]={...s(a)[O],status:E}),p(o,ne.message,!0)}}function G(b){p(l,null),p(c,b,!0),p(u,!0)}function q(b){p(l,b,!0),p(u,!0)}async function Q(b){try{if(s(l)){const I=await He.updateTask(s(l).id,{title:b.title,description:b.description||null,priority:b.priority,status:b.status,tags:b.tags.length>0?b.tags.join(","):null}),E=s(a).findIndex(O=>O.id===s(l).id);E!==-1&&(s(a)[E]=I)}else{const I=await He.createTask(t.project.id,{title:b.title,description:b.description||void 0,priority:b.priority,tags:b.tags.length>0?b.tags:void 0});p(a,[I,...s(a)],!0)}p(u,!1),p(l,null)}catch(I){p(o,I.message,!0)}}function ee(b){p(y,b,!0),p(v,!0)}async function Z(){if(s(y))try{await He.deleteTask(s(y).id),p(a,s(a).filter(b=>b.id!==s(y).id&&b.parent_task_id!==s(y).id),!0),p(v,!1),p(y,null)}catch(b){p(o,b.message,!0)}}var se=Al();Pe("keydown",xt,F);var V=Ut(se);{let b=ie(()=>s(g)());xl(V,{get allTags(){return s(b)},get searchQuery(){return s(S)},get selectedPriorities(){return s(h)},get selectedTags(){return s(x)},onSearchChange:I=>{p(S,I,!0)},onPriorityToggle:A,onTagToggle:L,onClear:k,get focusSearch(){return s(D)},set focusSearch(I){p(D,I,!0)}})}var ae=T(V,2),$=m(ae);{var re=b=>{var I=Cl();C(b,I)},ue=b=>{var I=jl(),E=m(I),O=T(E);B(()=>R(E,`${s(o)??""} `)),te("click",O,()=>{p(o,null),K()}),C(b,I)},Te=b=>{var I=Pl();Ae(I,21,()=>s(N),E=>E.status,(E,O)=>{{let ne=ie(()=>s(f)());al(E,{get status(){return s(O).status},get label(){return s(O).label},get tasks(){return s(O).tasks},get subtaskCounts(){return s(ne)},onEdit:q,onDelete:ee,onDragStart:le,onDrop:z,onAddTask:G})}}),C(b,I)};H($,b=>{s(i)?b(re):s(o)?b(ue,1):b(Te,-1)})}var Se=T(ae,2);{var De=b=>{hl(b,{get task(){return s(l)},get projectId(){return t.project.id},get allTasks(){return s(a)},get defaultStatus(){return s(c)},onSave:Q,onClose:()=>{p(u,!1),p(l,null)}})};H(Se,b=>{s(u)&&b(De)})}var oe=T(Se,2);{var be=b=>{pl(b,{title:"Delete Task",get message(){return`Are you sure you want to delete "${s(y).title??""}"? This cannot be undone.`},onConfirm:Z,onCancel:()=>{p(v,!1),p(y,null)}})};H(oe,b=>{s(v)&&s(y)&&b(be)})}C(e,se),ze()}Ye(["click"]);var Ol=P('<div class="state-msg svelte-mwtig8"><span class="prompt svelte-mwtig8">></span> loading notes...</div>'),Nl=P('<div class="state-msg err svelte-mwtig8"> </div>'),Il=P('<div class="state-msg muted svelte-mwtig8">// no notes yet — use add_note via MCP tools</div>'),Ml=P('<span class="tag svelte-mwtig8"> </span>'),Rl=P('<div class="tags svelte-mwtig8"></div>'),Ll=P('<span class="task-link svelte-mwtig8"> </span>'),zl=P('<div class="card-footer svelte-mwtig8"><!> <!></div>'),Fl=P('<div class="card svelte-mwtig8"><div class="card-header svelte-mwtig8"><span class="category svelte-mwtig8"> </span> <span class="date svelte-mwtig8"> </span></div> <div class="content svelte-mwtig8"> </div> <!></div>'),ql=P('<div class="list svelte-mwtig8"></div>'),Bl=P('<div class="view svelte-mwtig8"><!></div>');function Hl(e,t){Le(t,!0);let n=M(we([])),r=M(we([])),a=M(!0),i=M(null);lt(()=>{p(a,!0),p(i,null),Promise.all([He.getNotes(t.projectId),He.getTasks(t.projectId)]).then(([f,g])=>{p(n,f,!0),p(r,g,!0)}).catch(f=>{p(i,f.message,!0)}).finally(()=>{p(a,!1)})});const o=ie(()=>new Map(s(r).map(f=>[f.id,f]))),u={general:"var(--text-muted)",architecture:"#3d98f4",bug:"var(--danger)",idea:"var(--priority-high)",research:"#a371f7",meeting:"var(--text-dim)",review:"var(--primary)"};function l(f){if(!f)return[];try{return JSON.parse(f)}catch{return[]}}function c(f){return new Date(f.replace(" ","T")+"Z").toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"})}var v=Bl(),y=m(v);{var _=f=>{var g=Ol();C(f,g)},S=f=>{var g=Nl(),j=m(g);B(()=>R(j,`[error] ${s(i)??""}`)),C(f,g)},h=f=>{var g=Il();C(f,g)},x=f=>{var g=ql();Ae(g,21,()=>s(n),j=>j.id,(j,w)=>{const N=ie(()=>s(w).task_id?s(o).get(s(w).task_id):null),A=ie(()=>l(s(w).tags));var L=Fl(),k=m(L),D=m(k),F=m(D),K=T(D,2),le=m(K),z=T(k,2),G=m(z),q=T(z,2);{var Q=ee=>{var Z=zl(),se=m(Z);{var V=re=>{var ue=Rl();Ae(ue,21,()=>s(A),Vt,(Te,Se)=>{var De=Ml(),oe=m(De);B(()=>R(oe,s(Se))),C(Te,De)}),C(re,ue)};H(se,re=>{s(A).length>0&&re(V)})}var ae=T(se,2);{var $=re=>{var ue=Ll(),Te=m(ue);B(Se=>R(Te,`→ ${Se??""}: ${s(N).title??""}`),[()=>s(N).short_id??s(N).id.slice(0,8)]),te("click",ue,()=>t.onOpenTask(s(N))),C(re,ue)};H(ae,re=>{s(N)&&re($)})}C(ee,Z)};H(q,ee=>{(s(A).length>0||s(N))&&ee(Q)})}B(ee=>{xr(D,`color: ${u[s(w).category]??"var(--text-muted)"??""}`),R(F,s(w).category),R(le,ee),R(G,s(w).content)},[()=>c(s(w).created_at)]),C(j,L)}),C(f,g)};H(y,f=>{s(a)?f(_):s(i)?f(S,1):s(n).length===0?f(h,2):f(x,-1)})}C(e,v),ze()}Ye(["click"]);var Kl=P('<div class="state-msg svelte-1nwykvu"><span class="prompt svelte-1nwykvu">></span> loading decisions...</div>'),Ul=P('<div class="state-msg err svelte-1nwykvu"> </div>'),Vl=P('<div class="state-msg muted svelte-1nwykvu">// no decisions yet — use log_decision via MCP tools</div>'),Jl=P('<div class="reasoning svelte-1nwykvu"> </div>'),Yl=P('<div class="alts svelte-1nwykvu"> </div>'),Gl=P('<span class="tag svelte-1nwykvu"> </span>'),Wl=P('<div class="tags svelte-1nwykvu"></div>'),Ql=P('<span class="task-link svelte-1nwykvu"> </span>'),Zl=P('<div class="card-footer svelte-1nwykvu"><!> <!></div>'),Xl=P('<div class="card svelte-1nwykvu"><div class="card-header svelte-1nwykvu"><span class="title svelte-1nwykvu"> </span> <span class="date svelte-1nwykvu"> </span></div> <div class="decision-text svelte-1nwykvu"> </div> <!> <!> <!></div>'),$l=P('<div class="list svelte-1nwykvu"></div>'),eo=P('<div class="view svelte-1nwykvu"><!></div>');function to(e,t){Le(t,!0);let n=M(we([])),r=M(we([])),a=M(!0),i=M(null);lt(()=>{p(a,!0),p(i,null),Promise.all([He.getDecisions(t.projectId),He.getTasks(t.projectId)]).then(([f,g])=>{p(n,f,!0),p(r,g,!0)}).catch(f=>{p(i,f.message,!0)}).finally(()=>{p(a,!1)})});const o=ie(()=>new Map(s(r).map(f=>[f.id,f])));function u(f){if(!f)return[];try{return JSON.parse(f)}catch{return[]}}function l(f){if(!f)return[];try{return JSON.parse(f)}catch{return[]}}function c(f){return new Date(f.replace(" ","T")+"Z").toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"})}var v=eo(),y=m(v);{var _=f=>{var g=Kl();C(f,g)},S=f=>{var g=Ul(),j=m(g);B(()=>R(j,`[error] ${s(i)??""}`)),C(f,g)},h=f=>{var g=Vl();C(f,g)},x=f=>{var g=$l();Ae(g,21,()=>s(n),j=>j.id,(j,w)=>{const N=ie(()=>s(w).task_id?s(o).get(s(w).task_id):null),A=ie(()=>u(s(w).alternatives)),L=ie(()=>l(s(w).tags));var k=Xl(),D=m(k),F=m(D),K=m(F),le=T(F,2),z=m(le),G=T(D,2),q=m(G),Q=T(G,2);{var ee=$=>{var re=Jl(),ue=m(re);B(()=>R(ue,s(w).reasoning)),C($,re)};H(Q,$=>{s(w).reasoning&&$(ee)})}var Z=T(Q,2);{var se=$=>{var re=Yl(),ue=m(re);B(Te=>R(ue,`Alternatives considered: ${Te??""}`),[()=>s(A).join(", ")]),C($,re)};H(Z,$=>{s(A).length>0&&$(se)})}var V=T(Z,2);{var ae=$=>{var re=Zl(),ue=m(re);{var Te=oe=>{var be=Wl();Ae(be,21,()=>s(L),Vt,(b,I)=>{var E=Gl(),O=m(E);B(()=>R(O,s(I))),C(b,E)}),C(oe,be)};H(ue,oe=>{s(L).length>0&&oe(Te)})}var Se=T(ue,2);{var De=oe=>{var be=Ql(),b=m(be);B(I=>R(b,`→ ${I??""}: ${s(N).title??""}`),[()=>s(N).short_id??s(N).id.slice(0,8)]),te("click",be,()=>t.onOpenTask(s(N))),C(oe,be)};H(Se,oe=>{s(N)&&oe(De)})}C($,re)};H(V,$=>{(s(L).length>0||s(N))&&$(ae)})}B($=>{R(K,s(w).title),R(z,$),R(q,s(w).decision)},[()=>c(s(w).created_at)]),C(j,k)}),C(f,g)};H(y,f=>{s(a)?f(_):s(i)?f(S,1):s(n).length===0?f(h,2):f(x,-1)})}C(e,v),ze()}Ye(["click"]);var no=P('<div><span class="item-label svelte-1bm0yy4"> </span> <span class="item-hint svelte-1bm0yy4"> </span></div>'),ro=P('<div class="palette-empty svelte-1bm0yy4">no commands match</div>'),ao=P('<div class="palette-backdrop svelte-1bm0yy4"><div class="palette svelte-1bm0yy4"><div class="palette-input-row svelte-1bm0yy4"><span class="palette-prompt svelte-1bm0yy4">></span> <input placeholder="type a command..." class="svelte-1bm0yy4"/></div> <div class="palette-list svelte-1bm0yy4"></div> <div class="palette-footer svelte-1bm0yy4"><span class="svelte-1bm0yy4"><kbd class="svelte-1bm0yy4">↑↓</kbd> navigate</span> <span class="svelte-1bm0yy4"><kbd class="svelte-1bm0yy4">↵</kbd> select</span> <span class="svelte-1bm0yy4"><kbd class="svelte-1bm0yy4">esc</kbd> close</span></div></div></div>');function so(e,t){Le(t,!0);let n=M(""),r=M(0),a=M(null);const i=ie(()=>[{id:"new-task",label:"new task",hint:"create",action:()=>{t.onClose(),t.onNewTask()}},...t.projects.map(h=>({id:`project-${h.id}`,label:h.name,hint:h.slug?`switch → ${h.slug}`:"switch",action:()=>{t.onClose(),t.onSelectProject(h.id)}}))]),o=ie(()=>()=>{const h=s(n).trim().toLowerCase();return h?s(i).filter(x=>x.label.toLowerCase().includes(h)||x.hint.toLowerCase().includes(h)):s(i)});lt(()=>{s(o)(),p(r,0)});function u(h){var f;const x=s(o)();h.key==="ArrowDown"?(h.preventDefault(),p(r,Math.min(s(r)+1,x.length-1),!0)):h.key==="ArrowUp"?(h.preventDefault(),p(r,Math.max(s(r)-1,0),!0)):h.key==="Enter"?(h.preventDefault(),(f=x[s(r)])==null||f.action()):h.key==="Escape"&&t.onClose()}function l(h){h.target.classList.contains("palette-backdrop")&&t.onClose()}var c=ao(),v=m(c),y=m(v),_=T(m(y),2);mr(_),cr(_,h=>p(a,h),()=>s(a));var S=T(y,2);Ae(S,23,()=>s(o)(),h=>h.id,(h,x,f)=>{var g=no();let j;var w=m(g),N=m(w),A=T(w,2),L=m(A);B(()=>{j=Ee(g,1,"palette-item svelte-1bm0yy4",null,j,{active:s(f)===s(r)}),R(N,s(x).label),R(L,s(x).hint)}),Pe("mouseenter",g,()=>{p(r,s(f),!0)}),te("click",g,()=>s(x).action()),C(h,g)},h=>{var x=ro();C(h,x)}),te("click",c,l),te("keydown",_,u),wn(_,()=>s(n),h=>p(n,h)),C(e,c),ze()}Ye(["click","keydown"]);var io=P('<div class="loading svelte-1n46o8q"><span class="prompt svelte-1n46o8q">></span> loading projects...</div>'),lo=P('<div class="error svelte-1n46o8q"><span class="err-prefix svelte-1n46o8q">[error]</span> </div>'),oo=P('<div class="empty svelte-1n46o8q"><p class="empty-prompt svelte-1n46o8q">> no projects found</p> <p class="empty-hint svelte-1n46o8q">// create a project using mindpm MCP tools to get started</p></div>'),uo=P('<div class="tabs svelte-1n46o8q"><button>Kanban</button> <button>Notes</button> <button>Decisions</button></div> <!>',1),fo=P('<div class="app-layout svelte-1n46o8q"><!> <div class="main svelte-1n46o8q"><!> <!></div></div>'),co=P("<!> <!>",1);function vo(e,t){Le(t,!0);let n=M(we([])),r=M(null),a=M(!0),i=M(null),o=M(!1),u=M(!1),l=M("kanban"),c=M(null);const v=ie(()=>s(n).find(k=>k.id===s(r))??null);async function y(){try{if(p(n,await He.getProjects(),!0),s(n).length>0&&!s(r)){const k=new URLSearchParams(window.location.search).get("project"),D=k?s(n).find(F=>F.id===k||F.name===k):null;p(r,D?D.id:s(n)[0].id,!0)}}catch(k){p(i,k.message,!0)}finally{p(a,!1)}}function _(k){p(r,k,!0),p(l,"kanban");const D=new URL(window.location.href);D.searchParams.set("project",k),history.replaceState(null,"",D.toString())}async function S(k,D){try{await He.updateProject(k,{name:D});const F=s(n).findIndex(K=>K.id===k);F!==-1&&(s(n)[F]={...s(n)[F],name:D})}catch(F){p(i,F.message,!0)}}lt(()=>{y()});function h(k){(k.ctrlKey||k.metaKey)&&k.key==="k"&&(k.preventDefault(),p(o,!s(o)))}var x=co();Pe("keydown",xt,h);var f=Ut(x);{var g=k=>{so(k,{get projects(){return s(n)},onSelectProject:D=>{p(r,D,!0)},onNewTask:()=>{p(u,!0)},onClose:()=>{p(o,!1)}})};H(f,k=>{s(o)&&k(g)})}var j=T(f,2);{var w=k=>{var D=io();C(k,D)},N=k=>{var D=lo(),F=T(m(D));B(()=>R(F,` ${s(i)??""}`)),C(k,D)},A=k=>{var D=oo();C(k,D)},L=k=>{var D=fo(),F=m(D);Hi(F,{get projects(){return s(n)},get selectedId(){return s(r)},onSelect:_});var K=T(F,2),le=m(K);Ni(le,{get projects(){return s(n)},get selectedId(){return s(r)},onSelect:_,onRenamed:S});var z=T(le,2);{var G=q=>{var Q=uo(),ee=Ut(Q),Z=m(ee);let se;var V=T(Z,2);let ae;var $=T(V,2);let re;var ue=T(ee,2);{var Te=oe=>{Dl(oe,{get project(){return s(v)},get triggerNewTask(){return s(u)},get openTask(){return s(c)},onNewTaskTriggered:()=>{p(u,!1)},onOpenTaskHandled:()=>{p(c,null)}})},Se=oe=>{Hl(oe,{get projectId(){return s(v).id},onOpenTask:be=>{p(c,be,!0),p(l,"kanban")}})},De=oe=>{to(oe,{get projectId(){return s(v).id},onOpenTask:be=>{p(c,be,!0),p(l,"kanban")}})};H(ue,oe=>{s(l)==="kanban"?oe(Te):s(l)==="notes"?oe(Se,1):s(l)==="decisions"&&oe(De,2)})}B(()=>{se=Ee(Z,1,"tab svelte-1n46o8q",null,se,{active:s(l)==="kanban"}),ae=Ee(V,1,"tab svelte-1n46o8q",null,ae,{active:s(l)==="notes"}),re=Ee($,1,"tab svelte-1n46o8q",null,re,{active:s(l)==="decisions"})}),te("click",Z,()=>p(l,"kanban")),te("click",V,()=>p(l,"notes")),te("click",$,()=>p(l,"decisions")),C(q,Q)};H(z,q=>{s(v)&&q(G)})}C(k,D)};H(j,k=>{s(a)?k(w):s(i)?k(N,1):s(n).length===0?k(A,2):k(L,-1)})}C(e,x),ze()}Ye(["click"]);ci(vo,{target:document.getElementById("app")});
|