mindpm 1.2.7 → 1.2.9

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
@@ -13,12 +13,31 @@ import { mkdirSync } from "fs";
13
13
  import { dirname, resolve } from "path";
14
14
  import { homedir } from "os";
15
15
 
16
+ // src/utils/ids.ts
17
+ import { randomBytes } from "crypto";
18
+ function generateId() {
19
+ return randomBytes(4).toString("hex");
20
+ }
21
+ function generateSlug(name) {
22
+ const normalized = name.toLowerCase().replace(/[^a-z0-9]+/g, " ").trim();
23
+ const words = normalized.split(/\s+/).filter(Boolean);
24
+ let slug;
25
+ if (words.length > 1) {
26
+ slug = words.slice(0, 4).map((w) => w[0]).join("");
27
+ } else {
28
+ const consonants = normalized.replace(/[aeiou]/g, "");
29
+ slug = consonants.length >= 2 ? consonants.slice(0, 4) : normalized.slice(0, 4);
30
+ }
31
+ return slug || normalized.slice(0, 4) || "prj";
32
+ }
33
+
16
34
  // src/db/schema.ts
17
35
  function createSchema(db2) {
18
36
  db2.exec(`
19
37
  CREATE TABLE IF NOT EXISTS projects (
20
38
  id TEXT PRIMARY KEY,
21
39
  name TEXT NOT NULL UNIQUE,
40
+ slug TEXT,
22
41
  description TEXT,
23
42
  status TEXT DEFAULT 'active' CHECK(status IN ('active', 'paused', 'completed', 'archived')),
24
43
  repo_path TEXT,
@@ -30,6 +49,7 @@ function createSchema(db2) {
30
49
  CREATE TABLE IF NOT EXISTS tasks (
31
50
  id TEXT PRIMARY KEY,
32
51
  project_id TEXT NOT NULL REFERENCES projects(id),
52
+ seq INTEGER,
33
53
  title TEXT NOT NULL,
34
54
  description TEXT,
35
55
  status TEXT DEFAULT 'todo' CHECK(status IN ('todo', 'in_progress', 'blocked', 'done', 'cancelled')),
@@ -101,6 +121,8 @@ function createSchema(db2) {
101
121
  CREATE INDEX IF NOT EXISTS idx_sessions_project_id ON sessions(project_id);
102
122
  CREATE INDEX IF NOT EXISTS idx_sessions_created_at ON sessions(created_at);
103
123
 
124
+ CREATE INDEX IF NOT EXISTS idx_tasks_seq ON tasks(project_id, seq);
125
+
104
126
  CREATE INDEX IF NOT EXISTS idx_context_project_id ON context(project_id);
105
127
 
106
128
  -- Triggers for updated_at (WHEN clause prevents infinite recursion)
@@ -129,6 +151,37 @@ function createSchema(db2) {
129
151
  END;
130
152
  `);
131
153
  }
154
+ function runMigrations(db2) {
155
+ const projectCols = db2.pragma("table_info(projects)").map((c) => c.name);
156
+ if (!projectCols.includes("slug")) {
157
+ db2.exec("ALTER TABLE projects ADD COLUMN slug TEXT");
158
+ const projects = db2.prepare("SELECT id, name FROM projects").all();
159
+ const usedSlugs = /* @__PURE__ */ new Set();
160
+ for (const p of projects) {
161
+ let slug = generateSlug(p.name);
162
+ let candidate = slug;
163
+ let n = 2;
164
+ while (usedSlugs.has(candidate)) {
165
+ candidate = slug + n++;
166
+ }
167
+ usedSlugs.add(candidate);
168
+ db2.prepare("UPDATE projects SET slug = ? WHERE id = ?").run(candidate, p.id);
169
+ }
170
+ }
171
+ const taskCols = db2.pragma("table_info(tasks)").map((c) => c.name);
172
+ if (!taskCols.includes("seq")) {
173
+ db2.exec("ALTER TABLE tasks ADD COLUMN seq INTEGER");
174
+ const projects = db2.prepare("SELECT id FROM projects").all();
175
+ for (const p of projects) {
176
+ const tasks = db2.prepare(
177
+ "SELECT id FROM tasks WHERE project_id = ? ORDER BY created_at ASC, id ASC"
178
+ ).all(p.id);
179
+ tasks.forEach((t, i) => {
180
+ db2.prepare("UPDATE tasks SET seq = ? WHERE id = ?").run(i + 1, t.id);
181
+ });
182
+ }
183
+ }
184
+ }
132
185
 
133
186
  // src/db/connection.ts
134
187
  var db = null;
@@ -153,6 +206,7 @@ function getDb() {
153
206
  db.pragma("wal_autocheckpoint = 100");
154
207
  db.pragma("foreign_keys = ON");
155
208
  createSchema(db);
209
+ runMigrations(db);
156
210
  return db;
157
211
  }
158
212
  function closeDb() {
@@ -163,12 +217,6 @@ function closeDb() {
163
217
  }
164
218
  }
165
219
 
166
- // src/utils/ids.ts
167
- import { randomBytes } from "crypto";
168
- function generateId() {
169
- return randomBytes(4).toString("hex");
170
- }
171
-
172
220
  // src/db/queries.ts
173
221
  function resolveProjectId(projectRef) {
174
222
  const db2 = getDb();
@@ -213,10 +261,17 @@ function registerProjectTools(server2) {
213
261
  async ({ name, description, tech_stack, repo_path }) => {
214
262
  const db2 = getDb();
215
263
  const id = generateId();
264
+ let slug = generateSlug(name);
265
+ const existing = db2.prepare("SELECT slug FROM projects WHERE slug LIKE ?").all(`${slug}%`);
266
+ const usedSlugs = new Set(existing.map((r) => r.slug));
267
+ let candidate = slug;
268
+ let n = 2;
269
+ while (usedSlugs.has(candidate)) candidate = slug + n++;
270
+ slug = candidate;
216
271
  try {
217
272
  db2.prepare(
218
- `INSERT INTO projects (id, name, description, tech_stack, repo_path) VALUES (?, ?, ?, ?, ?)`
219
- ).run(id, name, description ?? null, tech_stack ? JSON.stringify(tech_stack) : null, repo_path ?? null);
273
+ `INSERT INTO projects (id, name, slug, description, tech_stack, repo_path) VALUES (?, ?, ?, ?, ?, ?)`
274
+ ).run(id, name, slug, description ?? null, tech_stack ? JSON.stringify(tech_stack) : null, repo_path ?? null);
220
275
  } catch (e) {
221
276
  if (e.message?.includes("UNIQUE constraint failed")) {
222
277
  return { content: [{ type: "text", text: `Project "${name}" already exists.` }], isError: true };
@@ -310,22 +365,28 @@ function registerTaskTools(server2) {
310
365
  }
311
366
  const db2 = getDb();
312
367
  const id = generateId();
368
+ const seqRow = db2.prepare("SELECT COALESCE(MAX(seq), 0) + 1 AS next_seq FROM tasks WHERE project_id = ?").get(resolved.id);
369
+ const seq = seqRow.next_seq;
313
370
  db2.prepare(
314
- `INSERT INTO tasks (id, project_id, title, description, priority, tags, parent_task_id) VALUES (?, ?, ?, ?, ?, ?, ?)`
371
+ `INSERT INTO tasks (id, project_id, seq, title, description, priority, tags, parent_task_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?)`
315
372
  ).run(
316
373
  id,
317
374
  resolved.id,
375
+ seq,
318
376
  title,
319
377
  description ?? null,
320
378
  priority ?? "medium",
321
379
  tags ? JSON.stringify(tags) : null,
322
380
  parent_task_id ?? null
323
381
  );
382
+ const proj = db2.prepare("SELECT slug FROM projects WHERE id = ?").get(resolved.id);
383
+ const short_id = proj?.slug ? `${proj.slug}-${seq}` : null;
324
384
  return {
325
385
  content: [{
326
386
  type: "text",
327
387
  text: JSON.stringify({
328
388
  task_id: id,
389
+ short_id,
329
390
  message: `Task created: "${title}" in ${resolved.name} (priority: ${priority ?? "medium"})`
330
391
  })
331
392
  }]
@@ -430,7 +491,7 @@ function registerTaskTools(server2) {
430
491
  conditions.push("tags LIKE '%' || @tag || '%'");
431
492
  params.tag = `"${tag}"`;
432
493
  }
433
- const sql = `SELECT * FROM tasks WHERE ${conditions.join(" AND ")} ORDER BY CASE priority WHEN 'critical' THEN 0 WHEN 'high' THEN 1 WHEN 'medium' THEN 2 WHEN 'low' THEN 3 END, created_at DESC`;
494
+ const sql = `SELECT t.*, p.slug || '-' || t.seq AS short_id FROM tasks t JOIN projects p ON t.project_id = p.id WHERE ${conditions.join(" AND ")} ORDER BY CASE t.priority WHEN 'critical' THEN 0 WHEN 'high' THEN 1 WHEN 'medium' THEN 2 WHEN 'low' THEN 3 END, t.created_at DESC`;
434
495
  const rows = db2.prepare(sql).all(params);
435
496
  return {
436
497
  content: [{ type: "text", text: JSON.stringify({ project: resolved.name, tasks: rows }, null, 2) }]
@@ -448,11 +509,11 @@ function registerTaskTools(server2) {
448
509
  },
449
510
  async ({ task_id }) => {
450
511
  const db2 = getDb();
451
- const task = db2.prepare("SELECT * FROM tasks WHERE id = ?").get(task_id);
512
+ const task = db2.prepare("SELECT t.*, p.slug || '-' || t.seq AS short_id FROM tasks t JOIN projects p ON t.project_id = p.id WHERE t.id = ?").get(task_id);
452
513
  if (!task) {
453
514
  return { content: [{ type: "text", text: `Task "${task_id}" not found.` }], isError: true };
454
515
  }
455
- const subtasks = db2.prepare("SELECT * FROM tasks WHERE parent_task_id = ?").all(task_id);
516
+ const subtasks = db2.prepare("SELECT t.*, p.slug || '-' || t.seq AS short_id FROM tasks t JOIN projects p ON t.project_id = p.id WHERE t.parent_task_id = ?").all(task_id);
456
517
  const notes = db2.prepare("SELECT * FROM notes WHERE task_id = ? ORDER BY created_at DESC").all(task_id);
457
518
  return {
458
519
  content: [{ type: "text", text: JSON.stringify({ task, subtasks, notes }, null, 2) }]
@@ -476,10 +537,10 @@ function registerTaskTools(server2) {
476
537
  }
477
538
  const db2 = getDb();
478
539
  const rows = db2.prepare(
479
- `SELECT * FROM tasks
480
- WHERE project_id = ? AND status IN ('todo', 'in_progress')
481
- ORDER BY CASE priority WHEN 'critical' THEN 0 WHEN 'high' THEN 1 WHEN 'medium' THEN 2 WHEN 'low' THEN 3 END,
482
- created_at ASC
540
+ `SELECT t.*, p.slug || '-' || t.seq AS short_id FROM tasks t JOIN projects p ON t.project_id = p.id
541
+ WHERE t.project_id = ? AND t.status IN ('todo', 'in_progress')
542
+ ORDER BY CASE t.priority WHEN 'critical' THEN 0 WHEN 'high' THEN 1 WHEN 'medium' THEN 2 WHEN 'low' THEN 3 END,
543
+ t.created_at ASC
483
544
  LIMIT ?`
484
545
  ).all(resolved.id, limit ?? 5);
485
546
  return {
@@ -780,11 +841,11 @@ var listTasks = async (req, res, params) => {
780
841
  const db2 = getDb();
781
842
  const url = new URL(req.url || "/", "http://localhost");
782
843
  const includeDone = url.searchParams.get("include_done") === "true";
783
- let sql = "SELECT * FROM tasks WHERE project_id = ?";
844
+ let sql = "SELECT t.*, p.slug || '-' || t.seq AS short_id FROM tasks t JOIN projects p ON t.project_id = p.id WHERE t.project_id = ?";
784
845
  if (!includeDone) {
785
- sql += " AND status NOT IN ('done', 'cancelled')";
846
+ sql += " AND t.status NOT IN ('done', 'cancelled')";
786
847
  }
787
- sql += " ORDER BY CASE priority WHEN 'critical' THEN 0 WHEN 'high' THEN 1 WHEN 'medium' THEN 2 WHEN 'low' THEN 3 END, created_at DESC";
848
+ sql += " ORDER BY CASE t.priority WHEN 'critical' THEN 0 WHEN 'high' THEN 1 WHEN 'medium' THEN 2 WHEN 'low' THEN 3 END, t.created_at DESC";
788
849
  const rows = db2.prepare(sql).all(params.pid);
789
850
  sendJson(res, 200, rows);
790
851
  };
@@ -803,18 +864,21 @@ var createTask = async (req, res, params) => {
803
864
  const id = generateId();
804
865
  const priority = body.priority || "medium";
805
866
  const tags = Array.isArray(body.tags) ? JSON.stringify(body.tags) : null;
867
+ const seqRow = db2.prepare("SELECT COALESCE(MAX(seq), 0) + 1 AS next_seq FROM tasks WHERE project_id = ?").get(params.pid);
868
+ const seq = seqRow.next_seq;
806
869
  db2.prepare(
807
- "INSERT INTO tasks (id, project_id, title, description, priority, tags, parent_task_id) VALUES (?, ?, ?, ?, ?, ?, ?)"
870
+ "INSERT INTO tasks (id, project_id, seq, title, description, priority, tags, parent_task_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?)"
808
871
  ).run(
809
872
  id,
810
873
  params.pid,
874
+ seq,
811
875
  body.title,
812
876
  body.description ?? null,
813
877
  priority,
814
878
  tags,
815
879
  body.parent_task_id ?? null
816
880
  );
817
- const task = db2.prepare("SELECT * FROM tasks WHERE id = ?").get(id);
881
+ const task = db2.prepare("SELECT t.*, p.slug || '-' || t.seq AS short_id FROM tasks t JOIN projects p ON t.project_id = p.id WHERE t.id = ?").get(id);
818
882
  sendJson(res, 201, task);
819
883
  };
820
884
  var updateTask = async (req, res, params) => {
@@ -865,7 +929,7 @@ var updateTask = async (req, res, params) => {
865
929
  }
866
930
  sqlParams.push(params.id);
867
931
  db2.prepare(`UPDATE tasks SET ${updates.join(", ")} WHERE id = ?`).run(...sqlParams);
868
- const updated = db2.prepare("SELECT * FROM tasks WHERE id = ?").get(params.id);
932
+ const updated = db2.prepare("SELECT t.*, p.slug || '-' || t.seq AS short_id FROM tasks t JOIN projects p ON t.project_id = p.id WHERE t.id = ?").get(params.id);
869
933
  sendJson(res, 200, updated);
870
934
  };
871
935
  var deleteTask = async (_req, res, params) => {
@@ -887,10 +951,16 @@ var deleteTask = async (_req, res, params) => {
887
951
  deleteTransaction(params.id);
888
952
  sendJson(res, 200, { message: "Task deleted" });
889
953
  };
954
+ var listDecisions = async (_req, res, params) => {
955
+ const db2 = getDb();
956
+ const rows = db2.prepare("SELECT * FROM decisions WHERE project_id = ? ORDER BY created_at DESC").all(params.pid);
957
+ sendJson(res, 200, rows);
958
+ };
890
959
  var routes = [
891
960
  { method: "GET", pattern: "/api/projects", handler: listProjects },
892
961
  { method: "GET", pattern: "/api/projects/:id", handler: getProject },
893
962
  { method: "PATCH", pattern: "/api/projects/:id", handler: updateProject },
963
+ { method: "GET", pattern: "/api/projects/:pid/decisions", handler: listDecisions },
894
964
  { method: "GET", pattern: "/api/projects/:pid/tasks", handler: listTasks },
895
965
  { method: "POST", pattern: "/api/projects/:pid/tasks", handler: createTask },
896
966
  { method: "PATCH", pattern: "/api/tasks/:id", handler: updateTask },
@@ -0,0 +1,2 @@
1
+ var Ti=Object.defineProperty;var fr=e=>{throw TypeError(e)};var Si=(e,t,n)=>t in e?Ti(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Ae=(e,t,n)=>Si(e,typeof t!="symbol"?t+"":t,n),Sn=(e,t,n)=>t.has(e)||fr("Cannot "+n);var u=(e,t,n)=>(Sn(e,t,"read from private field"),n?n.call(e):t.get(e)),P=(e,t,n)=>t.has(e)?fr("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),x=(e,t,n,r)=>(Sn(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),U=(e,t,n)=>(Sn(e,t,"access private method"),n);(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const i of s)if(i.type==="childList")for(const a of i.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&r(a)}).observe(document,{childList:!0,subtree:!0});function n(s){const i={};return s.integrity&&(i.integrity=s.integrity),s.referrerPolicy&&(i.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?i.credentials="include":s.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(s){if(s.ep)return;s.ep=!0;const i=n(s);fetch(s.href,i)}})();const An=!1;var Yn=Array.isArray,xi=Array.prototype.indexOf,Ot=Array.prototype.includes,wn=Array.from,Ci=Object.defineProperty,Vt=Object.getOwnPropertyDescriptor,Di=Object.prototype,Ai=Array.prototype,Pi=Object.getPrototypeOf,ur=Object.isExtensible;const ji=()=>{};function Oi(e){for(var t=0;t<e.length;t++)e[t]()}function Er(){var e,t,n=new Promise((r,s)=>{e=r,t=s});return{promise:n,resolve:e,reject:t}}const X=2,en=4,bn=8,Tr=1<<24,Fe=16,De=32,yt=64,Pn=128,me=512,Y=1024,Z=2048,Ce=4096,de=8192,We=16384,ht=32768,Nt=65536,cr=1<<17,Sr=1<<18,Ft=1<<19,Ni=1<<20,Ke=1<<25,_t=65536,jn=1<<21,Wn=1<<22,Je=1<<23,Kt=Symbol("$state"),rt=new class extends Error{constructor(){super(...arguments);Ae(this,"name","StaleReactionError");Ae(this,"message","The reaction that called `getAbortSignal()` was re-run or destroyed")}};function Ri(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function Mi(e,t,n){throw new Error("https://svelte.dev/e/each_key_duplicate")}function Ii(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function Li(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function Fi(e){throw new Error("https://svelte.dev/e/effect_orphan")}function qi(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function zi(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function Bi(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function Hi(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function Vi(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const Ki=1,Ui=2,Yi=16,Wi=1,Ji=2,W=Symbol(),Gi="http://www.w3.org/1999/xhtml";function Xi(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function Zi(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}function xr(e){return e===this.v}function Qi(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function Cr(e){return!Qi(e,this.v)}let $i=!1,we=null;function Rt(e){we=e}function $e(e,t=!1,n){we={p:we,i:!1,c:null,e:null,s:e,x:null,l:null}}function et(e){var t=we,n=t.e;if(n!==null){t.e=null;for(var r of n)Jr(r)}return t.i=!0,we=t.p,{}}function Dr(){return!0}let it=[];function Ar(){var e=it;it=[],Oi(e)}function Ge(e){if(it.length===0&&!Ut){var t=it;queueMicrotask(()=>{t===it&&Ar()})}it.push(e)}function es(){for(;it.length>0;)Ar()}function Pr(e){var t=R;if(t===null)return A.f|=Je,e;if((t.f&ht)===0&&(t.f&en)===0)throw e;Ue(e,t)}function Ue(e,t){for(;t!==null;){if((t.f&Pn)!==0){if((t.f&ht)===0)throw e;try{t.b.error(e);return}catch(n){e=n}}t=t.parent}throw e}const ts=-7169;function B(e,t){e.f=e.f&ts|t}function Jn(e){(e.f&me)!==0||e.deps===null?B(e,Y):B(e,Ce)}function jr(e){if(e!==null)for(const t of e)(t.f&X)===0||(t.f&_t)===0||(t.f^=_t,jr(t.deps))}function Or(e,t,n){(e.f&Z)!==0?t.add(e):(e.f&Ce)!==0&&n.add(e),jr(e.deps),B(e,Y)}const on=new Set;let T=null,hn=null,J=null,ae=[],kn=null,On=!1,Ut=!1;var St,xt,lt,Ct,Xt,Zt,ot,Re,Dt,he,Nn,Rn,Mn,Nr;const sr=class sr{constructor(){P(this,he);Ae(this,"current",new Map);Ae(this,"previous",new Map);P(this,St,new Set);P(this,xt,new Set);P(this,lt,0);P(this,Ct,0);P(this,Xt,null);P(this,Zt,new Set);P(this,ot,new Set);P(this,Re,new Map);Ae(this,"is_fork",!1);P(this,Dt,!1)}skip_effect(t){u(this,Re).has(t)||u(this,Re).set(t,{d:[],m:[]})}unskip_effect(t){var n=u(this,Re).get(t);if(n){u(this,Re).delete(t);for(var r of n.d)B(r,Z),Se(r);for(r of n.m)B(r,Ce),Se(r)}}process(t){var s;ae=[],this.apply();var n=[],r=[];for(const i of t)U(this,he,Rn).call(this,i,n,r);if(U(this,he,Nn).call(this)){U(this,he,Mn).call(this,r),U(this,he,Mn).call(this,n);for(const[i,a]of u(this,Re))Lr(i,a)}else{for(const i of u(this,St))i();u(this,St).clear(),u(this,lt)===0&&U(this,he,Nr).call(this),hn=this,T=null,vr(r),vr(n),hn=null,(s=u(this,Xt))==null||s.resolve()}J=null}capture(t,n){n!==W&&!this.previous.has(t)&&this.previous.set(t,n),(t.f&Je)===0&&(this.current.set(t,t.v),J==null||J.set(t,t.v))}activate(){T=this,this.apply()}deactivate(){T===this&&(T=null,J=null)}flush(){if(this.activate(),ae.length>0){if(Rr(),T!==null&&T!==this)return}else u(this,lt)===0&&this.process([]);this.deactivate()}discard(){for(const t of u(this,xt))t(this);u(this,xt).clear()}increment(t){x(this,lt,u(this,lt)+1),t&&x(this,Ct,u(this,Ct)+1)}decrement(t){x(this,lt,u(this,lt)-1),t&&x(this,Ct,u(this,Ct)-1),!u(this,Dt)&&(x(this,Dt,!0),Ge(()=>{x(this,Dt,!1),U(this,he,Nn).call(this)?ae.length>0&&this.flush():this.revive()}))}revive(){for(const t of u(this,Zt))u(this,ot).delete(t),B(t,Z),Se(t);for(const t of u(this,ot))B(t,Ce),Se(t);this.flush()}oncommit(t){u(this,St).add(t)}ondiscard(t){u(this,xt).add(t)}settled(){return(u(this,Xt)??x(this,Xt,Er())).promise}static ensure(){if(T===null){const t=T=new sr;on.add(T),Ut||Ge(()=>{T===t&&t.flush()})}return T}apply(){}};St=new WeakMap,xt=new WeakMap,lt=new WeakMap,Ct=new WeakMap,Xt=new WeakMap,Zt=new WeakMap,ot=new WeakMap,Re=new WeakMap,Dt=new WeakMap,he=new WeakSet,Nn=function(){return this.is_fork||u(this,Ct)>0},Rn=function(t,n,r){t.f^=Y;for(var s=t.first;s!==null;){var i=s.f,a=(i&(De|yt))!==0,l=a&&(i&Y)!==0,o=l||(i&de)!==0||u(this,Re).has(s);if(!o&&s.fn!==null){a?s.f^=Y:(i&en)!==0?n.push(s):nn(s)&&((i&Fe)!==0&&u(this,ot).add(s),It(s));var f=s.first;if(f!==null){s=f;continue}}for(;s!==null;){var h=s.next;if(h!==null){s=h;break}s=s.parent}}},Mn=function(t){for(var n=0;n<t.length;n+=1)Or(t[n],u(this,Zt),u(this,ot))},Nr=function(){var s;if(on.size>1){this.previous.clear();var t=J,n=!0;for(const i of on){if(i===this){n=!1;continue}const a=[];for(const[o,f]of this.current){if(i.current.has(o))if(n&&f!==i.current.get(o))i.current.set(o,f);else continue;a.push(o)}if(a.length===0)continue;const l=[...i.current.keys()].filter(o=>!this.current.has(o));if(l.length>0){var r=ae;ae=[];const o=new Set,f=new Map;for(const h of a)Mr(h,l,o,f);if(ae.length>0){T=i,i.apply();for(const h of ae)U(s=i,he,Rn).call(s,h,[],[]);i.deactivate()}ae=r}}T=null,J=t}on.delete(this)};let Xe=sr;function ns(e){var t=Ut;Ut=!0;try{for(var n;;){if(es(),ae.length===0&&(T==null||T.flush(),ae.length===0))return kn=null,n;Rr()}}finally{Ut=t}}function Rr(){On=!0;var e=null;try{for(var t=0;ae.length>0;){var n=Xe.ensure();if(t++>1e3){var r,s;rs()}n.process(ae),Ze.clear()}}finally{ae=[],On=!1,kn=null}}function rs(){try{qi()}catch(e){Ue(e,kn)}}let ke=null;function vr(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if((r.f&(We|de))===0&&nn(r)&&(ke=new Set,It(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&Zr(r),(ke==null?void 0:ke.size)>0)){Ze.clear();for(const s of ke){if((s.f&(We|de))!==0)continue;const i=[s];let a=s.parent;for(;a!==null;)ke.has(a)&&(ke.delete(a),i.push(a)),a=a.parent;for(let l=i.length-1;l>=0;l--){const o=i[l];(o.f&(We|de))===0&&It(o)}}ke.clear()}}ke=null}}function Mr(e,t,n,r){if(!n.has(e)&&(n.add(e),e.reactions!==null))for(const s of e.reactions){const i=s.f;(i&X)!==0?Mr(s,t,n,r):(i&(Wn|Fe))!==0&&(i&Z)===0&&Ir(s,t,r)&&(B(s,Z),Se(s))}}function Ir(e,t,n){const r=n.get(e);if(r!==void 0)return r;if(e.deps!==null)for(const s of e.deps){if(Ot.call(t,s))return!0;if((s.f&X)!==0&&Ir(s,t,n))return n.set(s,!0),!0}return n.set(e,!1),!1}function Se(e){var t=kn=e,n=t.b;if(n!=null&&n.is_pending&&(e.f&(en|bn|Tr))!==0&&(e.f&ht)===0){n.defer_effect(e);return}for(;t.parent!==null;){t=t.parent;var r=t.f;if(On&&t===R&&(r&Fe)!==0&&(r&Sr)===0&&(r&ht)!==0)return;if((r&(yt|De))!==0){if((r&Y)===0)return;t.f^=Y}}ae.push(t)}function Lr(e,t){if(!((e.f&De)!==0&&(e.f&Y)!==0)){(e.f&Z)!==0?t.d.push(e):(e.f&Ce)!==0&&t.m.push(e),B(e,Y);for(var n=e.first;n!==null;)Lr(n,t),n=n.next}}function is(e){let t=0,n=gt(0),r;return()=>{Zn()&&(v(n),Gr(()=>(t===0&&(r=oi(()=>e(()=>Yt(n)))),t+=1,()=>{Ge(()=>{t-=1,t===0&&(r==null||r(),r=void 0,Yt(n))})})))}}var ss=Nt|Ft;function as(e,t,n,r){new ls(e,t,n,r)}var pe,Un,Pe,ft,se,je,ce,Ee,Me,ut,Ve,At,Pt,jt,Ie,mn,V,os,fs,us,In,un,cn,Ln;class ls{constructor(t,n,r,s){P(this,V);Ae(this,"parent");Ae(this,"is_pending",!1);Ae(this,"transform_error");P(this,pe);P(this,Un,null);P(this,Pe);P(this,ft);P(this,se);P(this,je,null);P(this,ce,null);P(this,Ee,null);P(this,Me,null);P(this,ut,0);P(this,Ve,0);P(this,At,!1);P(this,Pt,new Set);P(this,jt,new Set);P(this,Ie,null);P(this,mn,is(()=>(x(this,Ie,gt(u(this,ut))),()=>{x(this,Ie,null)})));var i;x(this,pe,t),x(this,Pe,n),x(this,ft,a=>{var l=R;l.b=this,l.f|=Pn,r(a)}),this.parent=R.b,this.transform_error=s??((i=this.parent)==null?void 0:i.transform_error)??(a=>a),x(this,se,$n(()=>{U(this,V,In).call(this)},ss))}defer_effect(t){Or(t,u(this,Pt),u(this,jt))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!u(this,Pe).pending}update_pending_count(t){U(this,V,Ln).call(this,t),x(this,ut,u(this,ut)+t),!(!u(this,Ie)||u(this,At))&&(x(this,At,!0),Ge(()=>{x(this,At,!1),u(this,Ie)&&Mt(u(this,Ie),u(this,ut))}))}get_effect_pending(){return u(this,mn).call(this),v(u(this,Ie))}error(t){var n=u(this,Pe).onerror;let r=u(this,Pe).failed;if(!n&&!r)throw t;u(this,je)&&(oe(u(this,je)),x(this,je,null)),u(this,ce)&&(oe(u(this,ce)),x(this,ce,null)),u(this,Ee)&&(oe(u(this,Ee)),x(this,Ee,null));var s=!1,i=!1;const a=()=>{if(s){Zi();return}s=!0,i&&Vi(),u(this,Ee)!==null&&vt(u(this,Ee),()=>{x(this,Ee,null)}),U(this,V,cn).call(this,()=>{Xe.ensure(),U(this,V,In).call(this)})},l=o=>{try{i=!0,n==null||n(o,a),i=!1}catch(f){Ue(f,u(this,se)&&u(this,se).parent)}r&&x(this,Ee,U(this,V,cn).call(this,()=>{Xe.ensure();try{return ge(()=>{var f=R;f.b=this,f.f|=Pn,r(u(this,pe),()=>o,()=>a)})}catch(f){return Ue(f,u(this,se).parent),null}}))};Ge(()=>{var o;try{o=this.transform_error(t)}catch(f){Ue(f,u(this,se)&&u(this,se).parent);return}o!==null&&typeof o=="object"&&typeof o.then=="function"?o.then(l,f=>Ue(f,u(this,se)&&u(this,se).parent)):l(o)})}}pe=new WeakMap,Un=new WeakMap,Pe=new WeakMap,ft=new WeakMap,se=new WeakMap,je=new WeakMap,ce=new WeakMap,Ee=new WeakMap,Me=new WeakMap,ut=new WeakMap,Ve=new WeakMap,At=new WeakMap,Pt=new WeakMap,jt=new WeakMap,Ie=new WeakMap,mn=new WeakMap,V=new WeakSet,os=function(){try{x(this,je,ge(()=>u(this,ft).call(this,u(this,pe))))}catch(t){this.error(t)}},fs=function(t){const n=u(this,Pe).failed;n&&x(this,Ee,ge(()=>{n(u(this,pe),()=>t,()=>()=>{})}))},us=function(){const t=u(this,Pe).pending;t&&(this.is_pending=!0,x(this,ce,ge(()=>t(u(this,pe)))),Ge(()=>{var n=x(this,Me,document.createDocumentFragment()),r=Qe();n.append(r),x(this,je,U(this,V,cn).call(this,()=>(Xe.ensure(),ge(()=>u(this,ft).call(this,r))))),u(this,Ve)===0&&(u(this,pe).before(n),x(this,Me,null),vt(u(this,ce),()=>{x(this,ce,null)}),U(this,V,un).call(this))}))},In=function(){try{if(this.is_pending=this.has_pending_snippet(),x(this,Ve,0),x(this,ut,0),x(this,je,ge(()=>{u(this,ft).call(this,u(this,pe))})),u(this,Ve)>0){var t=x(this,Me,document.createDocumentFragment());ei(u(this,je),t);const n=u(this,Pe).pending;x(this,ce,ge(()=>n(u(this,pe))))}else U(this,V,un).call(this)}catch(n){this.error(n)}},un=function(){this.is_pending=!1;for(const t of u(this,Pt))B(t,Z),Se(t);for(const t of u(this,jt))B(t,Ce),Se(t);u(this,Pt).clear(),u(this,jt).clear()},cn=function(t){var n=R,r=A,s=we;Ne(u(this,se)),be(u(this,se)),Rt(u(this,se).ctx);try{return t()}catch(i){return Pr(i),null}finally{Ne(n),be(r),Rt(s)}},Ln=function(t){var n;if(!this.has_pending_snippet()){this.parent&&U(n=this.parent,V,Ln).call(n,t);return}x(this,Ve,u(this,Ve)+t),u(this,Ve)===0&&(U(this,V,un).call(this),u(this,ce)&&vt(u(this,ce),()=>{x(this,ce,null)}),u(this,Me)&&(u(this,pe).before(u(this,Me)),x(this,Me,null)))};function cs(e,t,n,r){const s=Gn;var i=e.filter(_=>!_.settled);if(n.length===0&&i.length===0){r(t.map(s));return}var a=R,l=vs(),o=i.length===1?i[0].promise:i.length>1?Promise.all(i.map(_=>_.promise)):null;function f(_){l();try{r(_)}catch(p){(a.f&We)===0&&Ue(p,a)}Fn()}if(n.length===0){o.then(()=>f(t.map(s)));return}function h(){l(),Promise.all(n.map(_=>hs(_))).then(_=>f([...t.map(s),..._])).catch(_=>Ue(_,a))}o?o.then(h):h()}function vs(){var e=R,t=A,n=we,r=T;return function(i=!0){Ne(e),be(t),Rt(n),i&&(r==null||r.activate())}}function Fn(e=!0){Ne(null),be(null),Rt(null),e&&(T==null||T.deactivate())}function ds(){var e=R.b,t=T,n=e.is_rendered();return e.update_pending_count(1),t.increment(n),()=>{e.update_pending_count(-1),t.decrement(n)}}function Gn(e){var t=X|Z,n=A!==null&&(A.f&X)!==0?A:null;return R!==null&&(R.f|=Ft),{ctx:we,deps:null,effects:null,equals:xr,f:t,fn:e,reactions:null,rv:0,v:W,wv:0,parent:n??R,ac:null}}function hs(e,t,n){R===null&&Ri();var s=void 0,i=gt(W),a=!A,l=new Map;return Ps(()=>{var p;var o=Er();s=o.promise;try{Promise.resolve(e()).then(o.resolve,o.reject).finally(Fn)}catch(w){o.reject(w),Fn()}var f=T;if(a){var h=ds();(p=l.get(f))==null||p.reject(rt),l.delete(f),l.set(f,o)}const _=(w,c=void 0)=>{if(f.activate(),c)c!==rt&&(i.f|=Je,Mt(i,c));else{(i.f&Je)!==0&&(i.f^=Je),Mt(i,w);for(const[m,d]of l){if(l.delete(m),m===f)break;d.reject(rt)}}h&&h()};o.promise.then(_,w=>_(null,w||"unknown"))}),Qn(()=>{for(const o of l.values())o.reject(rt)}),new Promise(o=>{function f(h){function _(){h===s?o(i):f(s)}h.then(_,_)}f(s)})}function pt(e){const t=Gn(e);return ti(t),t}function _s(e){const t=Gn(e);return t.equals=Cr,t}function ps(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)oe(t[n])}}function gs(e){for(var t=e.parent;t!==null;){if((t.f&X)===0)return(t.f&We)===0?t:null;t=t.parent}return null}function Xn(e){var t,n=R;Ne(gs(e));try{e.f&=~_t,ps(e),t=si(e)}finally{Ne(n)}return t}function Fr(e){var t=Xn(e);if(!e.equals(t)&&(e.wv=ri(),(!(T!=null&&T.is_fork)||e.deps===null)&&(e.v=t,e.deps===null))){B(e,Y);return}mt||(J!==null?(Zn()||T!=null&&T.is_fork)&&J.set(e,t):Jn(e))}function ms(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(rt),r.teardown=ji,r.ac=null,Gt(r,0),er(r))}function qr(e){if(e.effects!==null)for(const t of e.effects)t.teardown&&It(t)}let qn=new Set;const Ze=new Map;let zr=!1;function gt(e,t){var n={f:0,v:e,reactions:null,equals:xr,rv:0,wv:0};return n}function j(e,t){const n=gt(e);return ti(n),n}function ys(e,t=!1,n=!0){const r=gt(e);return t||(r.equals=Cr),r}function g(e,t,n=!1){A!==null&&(!xe||(A.f&cr)!==0)&&Dr()&&(A.f&(X|Fe|Wn|cr))!==0&&(ye===null||!Ot.call(ye,e))&&Hi();let r=n?Ye(t):t;return Mt(e,r)}function Mt(e,t){if(!e.equals(t)){var n=e.v;mt?Ze.set(e,t):Ze.set(e,n),e.v=t;var r=Xe.ensure();if(r.capture(e,n),(e.f&X)!==0){const s=e;(e.f&Z)!==0&&Xn(s),Jn(s)}e.wv=ri(),Br(e,Z),R!==null&&(R.f&Y)!==0&&(R.f&(De|yt))===0&&(_e===null?Ns([e]):_e.push(e)),!r.is_fork&&qn.size>0&&!zr&&ws()}return t}function ws(){zr=!1;for(const e of qn)(e.f&Y)!==0&&B(e,Ce),nn(e)&&It(e);qn.clear()}function Yt(e){g(e,e.v+1)}function Br(e,t){var n=e.reactions;if(n!==null)for(var r=n.length,s=0;s<r;s++){var i=n[s],a=i.f,l=(a&Z)===0;if(l&&B(i,t),(a&X)!==0){var o=i;J==null||J.delete(o),(a&_t)===0&&(a&me&&(i.f|=_t),Br(o,Ce))}else l&&((a&Fe)!==0&&ke!==null&&ke.add(i),Se(i))}}function Ye(e){if(typeof e!="object"||e===null||Kt in e)return e;const t=Pi(e);if(t!==Di&&t!==Ai)return e;var n=new Map,r=Yn(e),s=j(0),i=dt,a=l=>{if(dt===i)return l();var o=A,f=dt;be(null),pr(i);var h=l();return be(o),pr(f),h};return r&&n.set("length",j(e.length)),new Proxy(e,{defineProperty(l,o,f){(!("value"in f)||f.configurable===!1||f.enumerable===!1||f.writable===!1)&&zi();var h=n.get(o);return h===void 0?a(()=>{var _=j(f.value);return n.set(o,_),_}):g(h,f.value,!0),!0},deleteProperty(l,o){var f=n.get(o);if(f===void 0){if(o in l){const h=a(()=>j(W));n.set(o,h),Yt(s)}}else g(f,W),Yt(s);return!0},get(l,o,f){var w;if(o===Kt)return e;var h=n.get(o),_=o in l;if(h===void 0&&(!_||(w=Vt(l,o))!=null&&w.writable)&&(h=a(()=>{var c=Ye(_?l[o]:W),m=j(c);return m}),n.set(o,h)),h!==void 0){var p=v(h);return p===W?void 0:p}return Reflect.get(l,o,f)},getOwnPropertyDescriptor(l,o){var f=Reflect.getOwnPropertyDescriptor(l,o);if(f&&"value"in f){var h=n.get(o);h&&(f.value=v(h))}else if(f===void 0){var _=n.get(o),p=_==null?void 0:_.v;if(_!==void 0&&p!==W)return{enumerable:!0,configurable:!0,value:p,writable:!0}}return f},has(l,o){var p;if(o===Kt)return!0;var f=n.get(o),h=f!==void 0&&f.v!==W||Reflect.has(l,o);if(f!==void 0||R!==null&&(!h||(p=Vt(l,o))!=null&&p.writable)){f===void 0&&(f=a(()=>{var w=h?Ye(l[o]):W,c=j(w);return c}),n.set(o,f));var _=v(f);if(_===W)return!1}return h},set(l,o,f,h){var N;var _=n.get(o),p=o in l;if(r&&o==="length")for(var w=f;w<_.v;w+=1){var c=n.get(w+"");c!==void 0?g(c,W):w in l&&(c=a(()=>j(W)),n.set(w+"",c))}if(_===void 0)(!p||(N=Vt(l,o))!=null&&N.writable)&&(_=a(()=>j(void 0)),g(_,Ye(f)),n.set(o,_));else{p=_.v!==W;var m=a(()=>Ye(f));g(_,m)}var d=Reflect.getOwnPropertyDescriptor(l,o);if(d!=null&&d.set&&d.set.call(h,f),!p){if(r&&typeof o=="string"){var y=n.get("length"),k=Number(o);Number.isInteger(k)&&k>=y.v&&g(y,k+1)}Yt(s)}return!0},ownKeys(l){v(s);var o=Reflect.ownKeys(l).filter(_=>{var p=n.get(_);return p===void 0||p.v!==W});for(var[f,h]of n)h.v!==W&&!(f in l)&&o.push(f);return o},setPrototypeOf(){Bi()}})}function dr(e){try{if(e!==null&&typeof e=="object"&&Kt in e)return e[Kt]}catch{}return e}function bs(e,t){return Object.is(dr(e),dr(t))}var _n,Hr,Vr,Kr;function ks(){if(_n===void 0){_n=window,Hr=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;Vr=Vt(t,"firstChild").get,Kr=Vt(t,"nextSibling").get,ur(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),ur(n)&&(n.__t=void 0)}}function Qe(e=""){return document.createTextNode(e)}function pn(e){return Vr.call(e)}function tn(e){return Kr.call(e)}function E(e,t){return pn(e)}function Jt(e,t=!1){{var n=pn(e);return n instanceof Comment&&n.data===""?tn(n):n}}function S(e,t=1,n=!1){let r=e;for(;t--;)r=tn(r);return r}function Es(e){e.textContent=""}function Ur(){return!1}function Ts(e,t,n){return document.createElementNS(Gi,e,void 0)}function Yr(e,t){{const n=document.body;e.autofocus=!0,Ge(()=>{document.activeElement===n&&e.focus()})}}let hr=!1;function Ss(){hr||(hr=!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 En(e){var t=A,n=R;be(null),Ne(null);try{return e()}finally{be(t),Ne(n)}}function Wr(e,t,n,r=n){e.addEventListener(t,()=>En(n));const s=e.__on_r;s?e.__on_r=()=>{s(),r(!0)}:e.__on_r=()=>r(!0),Ss()}function xs(e){R===null&&(A===null&&Fi(),Li()),mt&&Ii()}function Cs(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function qe(e,t,n){var r=R;r!==null&&(r.f&de)!==0&&(e|=de);var s={ctx:we,deps:null,nodes:null,f:e|Z|me,first:null,fn:t,last:null,next:null,parent:r,b:r&&r.b,prev:null,teardown:null,wv:0,ac:null};if(n)try{It(s)}catch(l){throw oe(s),l}else t!==null&&Se(s);var i=s;if(n&&i.deps===null&&i.teardown===null&&i.nodes===null&&i.first===i.last&&(i.f&Ft)===0&&(i=i.first,(e&Fe)!==0&&(e&Nt)!==0&&i!==null&&(i.f|=Nt)),i!==null&&(i.parent=r,r!==null&&Cs(i,r),A!==null&&(A.f&X)!==0&&(e&yt)===0)){var a=A;(a.effects??(a.effects=[])).push(i)}return s}function Zn(){return A!==null&&!xe}function Qn(e){const t=qe(bn,null,!1);return B(t,Y),t.teardown=e,t}function gn(e){xs();var t=R.f,n=!A&&(t&De)!==0&&(t&ht)===0;if(n){var r=we;(r.e??(r.e=[])).push(e)}else return Jr(e)}function Jr(e){return qe(en|Ni,e,!1)}function Ds(e){Xe.ensure();const t=qe(yt|Ft,e,!0);return(n={})=>new Promise(r=>{n.outro?vt(t,()=>{oe(t),r(void 0)}):(oe(t),r(void 0))})}function As(e){return qe(en,e,!1)}function Ps(e){return qe(Wn|Ft,e,!0)}function Gr(e,t=0){return qe(bn|t,e,!0)}function te(e,t=[],n=[],r=[]){cs(r,t,n,s=>{qe(bn,()=>e(...s.map(v)),!0)})}function $n(e,t=0){var n=qe(Fe|t,e,!0);return n}function ge(e){return qe(De|Ft,e,!0)}function Xr(e){var t=e.teardown;if(t!==null){const n=mt,r=A;_r(!0),be(null);try{t.call(null)}finally{_r(n),be(r)}}}function er(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const s=n.ac;s!==null&&En(()=>{s.abort(rt)});var r=n.next;(n.f&yt)!==0?n.parent=null:oe(n,t),n=r}}function js(e){for(var t=e.first;t!==null;){var n=t.next;(t.f&De)===0&&oe(t),t=n}}function oe(e,t=!0){var n=!1;(t||(e.f&Sr)!==0)&&e.nodes!==null&&e.nodes.end!==null&&(Os(e.nodes.start,e.nodes.end),n=!0),er(e,t&&!n),Gt(e,0),B(e,We);var r=e.nodes&&e.nodes.t;if(r!==null)for(const i of r)i.stop();Xr(e);var s=e.parent;s!==null&&s.first!==null&&Zr(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=null}function Os(e,t){for(;e!==null;){var n=e===t?null:tn(e);e.remove(),e=n}}function Zr(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 vt(e,t,n=!0){var r=[];Qr(e,r,!0);var s=()=>{n&&oe(e),t&&t()},i=r.length;if(i>0){var a=()=>--i||s();for(var l of r)l.out(a)}else s()}function Qr(e,t,n){if((e.f&de)===0){e.f^=de;var r=e.nodes&&e.nodes.t;if(r!==null)for(const l of r)(l.is_global||n)&&t.push(l);for(var s=e.first;s!==null;){var i=s.next,a=(s.f&Nt)!==0||(s.f&De)!==0&&(e.f&Fe)!==0;Qr(s,t,a?n:!1),s=i}}}function tr(e){$r(e,!0)}function $r(e,t){if((e.f&de)!==0){e.f^=de,(e.f&Y)===0&&(B(e,Z),Se(e));for(var n=e.first;n!==null;){var r=n.next,s=(n.f&Nt)!==0||(n.f&De)!==0;$r(n,s?t:!1),n=r}var i=e.nodes&&e.nodes.t;if(i!==null)for(const a of i)(a.is_global||t)&&a.in()}}function ei(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var s=n===r?null:tn(n);t.append(n),n=s}}let vn=!1,mt=!1;function _r(e){mt=e}let A=null,xe=!1;function be(e){A=e}let R=null;function Ne(e){R=e}let ye=null;function ti(e){A!==null&&(ye===null?ye=[e]:ye.push(e))}let le=null,ue=0,_e=null;function Ns(e){_e=e}let ni=1,st=0,dt=st;function pr(e){dt=e}function ri(){return++ni}function nn(e){var t=e.f;if((t&Z)!==0)return!0;if(t&X&&(e.f&=~_t),(t&Ce)!==0){for(var n=e.deps,r=n.length,s=0;s<r;s++){var i=n[s];if(nn(i)&&Fr(i),i.wv>e.wv)return!0}(t&me)!==0&&J===null&&B(e,Y)}return!1}function ii(e,t,n=!0){var r=e.reactions;if(r!==null&&!(ye!==null&&Ot.call(ye,e)))for(var s=0;s<r.length;s++){var i=r[s];(i.f&X)!==0?ii(i,t,!1):t===i&&(n?B(i,Z):(i.f&Y)!==0&&B(i,Ce),Se(i))}}function si(e){var m;var t=le,n=ue,r=_e,s=A,i=ye,a=we,l=xe,o=dt,f=e.f;le=null,ue=0,_e=null,A=(f&(De|yt))===0?e:null,ye=null,Rt(e.ctx),xe=!1,dt=++st,e.ac!==null&&(En(()=>{e.ac.abort(rt)}),e.ac=null);try{e.f|=jn;var h=e.fn,_=h();e.f|=ht;var p=e.deps,w=T==null?void 0:T.is_fork;if(le!==null){var c;if(w||Gt(e,ue),p!==null&&ue>0)for(p.length=ue+le.length,c=0;c<le.length;c++)p[ue+c]=le[c];else e.deps=p=le;if(Zn()&&(e.f&me)!==0)for(c=ue;c<p.length;c++)((m=p[c]).reactions??(m.reactions=[])).push(e)}else!w&&p!==null&&ue<p.length&&(Gt(e,ue),p.length=ue);if(Dr()&&_e!==null&&!xe&&p!==null&&(e.f&(X|Ce|Z))===0)for(c=0;c<_e.length;c++)ii(_e[c],e);if(s!==null&&s!==e){if(st++,s.deps!==null)for(let d=0;d<n;d+=1)s.deps[d].rv=st;if(t!==null)for(const d of t)d.rv=st;_e!==null&&(r===null?r=_e:r.push(..._e))}return(e.f&Je)!==0&&(e.f^=Je),_}catch(d){return Pr(d)}finally{e.f^=jn,le=t,ue=n,_e=r,A=s,ye=i,Rt(a),xe=l,dt=o}}function Rs(e,t){let n=t.reactions;if(n!==null){var r=xi.call(n,e);if(r!==-1){var s=n.length-1;s===0?n=t.reactions=null:(n[r]=n[s],n.pop())}}if(n===null&&(t.f&X)!==0&&(le===null||!Ot.call(le,t))){var i=t;(i.f&me)!==0&&(i.f^=me,i.f&=~_t),Jn(i),ms(i),Gt(i,0)}}function Gt(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)Rs(e,n[r])}function It(e){var t=e.f;if((t&We)===0){B(e,Y);var n=R,r=vn;R=e,vn=!0;try{(t&(Fe|Tr))!==0?js(e):er(e),Xr(e);var s=si(e);e.teardown=typeof s=="function"?s:null,e.wv=ni;var i;An&&$i&&(e.f&Z)!==0&&e.deps}finally{vn=r,R=n}}}async function Ms(){await Promise.resolve(),ns()}function v(e){var t=e.f,n=(t&X)!==0;if(A!==null&&!xe){var r=R!==null&&(R.f&We)!==0;if(!r&&(ye===null||!Ot.call(ye,e))){var s=A.deps;if((A.f&jn)!==0)e.rv<st&&(e.rv=st,le===null&&s!==null&&s[ue]===e?ue++:le===null?le=[e]:le.push(e));else{(A.deps??(A.deps=[])).push(e);var i=e.reactions;i===null?e.reactions=[A]:Ot.call(i,A)||i.push(A)}}}if(mt&&Ze.has(e))return Ze.get(e);if(n){var a=e;if(mt){var l=a.v;return((a.f&Y)===0&&a.reactions!==null||li(a))&&(l=Xn(a)),Ze.set(a,l),l}var o=(a.f&me)===0&&!xe&&A!==null&&(vn||(A.f&me)!==0),f=(a.f&ht)===0;nn(a)&&(o&&(a.f|=me),Fr(a)),o&&!f&&(qr(a),ai(a))}if(J!=null&&J.has(e))return J.get(e);if((e.f&Je)!==0)throw e.v;return e.v}function ai(e){if(e.f|=me,e.deps!==null)for(const t of e.deps)(t.reactions??(t.reactions=[])).push(e),(t.f&X)!==0&&(t.f&me)===0&&(qr(t),ai(t))}function li(e){if(e.v===W)return!0;if(e.deps===null)return!1;for(const t of e.deps)if(Ze.has(t)||(t.f&X)!==0&&li(t))return!0;return!1}function oi(e){var t=xe;try{return xe=!0,e()}finally{xe=t}}const Is=["touchstart","touchmove"];function Ls(e){return Is.includes(e)}const at=Symbol("events"),fi=new Set,zn=new Set;function Fs(e,t,n,r={}){function s(i){if(r.capture||Bn.call(t,i),!i.cancelBubble)return En(()=>n==null?void 0:n.call(this,i))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?Ge(()=>{t.addEventListener(e,s,r)}):t.addEventListener(e,s,r),s}function Le(e,t,n,r,s){var i={capture:r,passive:s},a=Fs(e,t,n,i);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&Qn(()=>{t.removeEventListener(e,a,i)})}function fe(e,t,n){(t[at]??(t[at]={}))[e]=n}function qt(e){for(var t=0;t<e.length;t++)fi.add(e[t]);for(var n of zn)n(e)}let gr=null;function Bn(e){var d,y;var t=this,n=t.ownerDocument,r=e.type,s=((d=e.composedPath)==null?void 0:d.call(e))||[],i=s[0]||e.target;gr=e;var a=0,l=gr===e&&e[at];if(l){var o=s.indexOf(l);if(o!==-1&&(t===document||t===window)){e[at]=t;return}var f=s.indexOf(t);if(f===-1)return;o<=f&&(a=o)}if(i=s[a]||e.target,i!==t){Ci(e,"currentTarget",{configurable:!0,get(){return i||n}});var h=A,_=R;be(null),Ne(null);try{for(var p,w=[];i!==null;){var c=i.assignedSlot||i.parentNode||i.host||null;try{var m=(y=i[at])==null?void 0:y[r];m!=null&&(!i.disabled||e.target===i)&&m.call(i,e)}catch(k){p?w.push(k):p=k}if(e.cancelBubble||c===t||c===null)break;i=c}if(p){for(let k of w)queueMicrotask(()=>{throw k});throw p}}finally{e[at]=t,delete e.currentTarget,be(h),Ne(_)}}}var br;const xn=((br=globalThis==null?void 0:globalThis.window)==null?void 0:br.trustedTypes)&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function qs(e){return(xn==null?void 0:xn.createHTML(e))??e}function zs(e){var t=Ts("template");return t.innerHTML=qs(e.replaceAll("<!>","<!---->")),t.content}function Hn(e,t){var n=R;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function I(e,t){var n=(t&Wi)!==0,r=(t&Ji)!==0,s,i=!e.startsWith("<!>");return()=>{s===void 0&&(s=zs(i?e:"<!>"+e),n||(s=pn(s)));var a=r||Hr?document.importNode(s,!0):s.cloneNode(!0);if(n){var l=pn(a),o=a.lastChild;Hn(l,o)}else Hn(a,a);return a}}function nr(){var e=document.createDocumentFragment(),t=document.createComment(""),n=Qe();return e.append(t,n),Hn(t,n),e}function O(e,t){e!==null&&e.before(t)}function z(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 Bs(e,t){return Hs(e,t)}const fn=new Map;function Hs(e,{target:t,anchor:n,props:r={},events:s,context:i,intro:a=!0,transformError:l}){ks();var o=void 0,f=Ds(()=>{var h=n??t.appendChild(Qe());as(h,{pending:()=>{}},w=>{$e({});var c=we;i&&(c.c=i),s&&(r.$$events=s),o=e(w,r)||{},et()},l);var _=new Set,p=w=>{for(var c=0;c<w.length;c++){var m=w[c];if(!_.has(m)){_.add(m);var d=Ls(m);for(const N of[t,document]){var y=fn.get(N);y===void 0&&(y=new Map,fn.set(N,y));var k=y.get(m);k===void 0?(N.addEventListener(m,Bn,{passive:d}),y.set(m,1)):y.set(m,k+1)}}}};return p(wn(fi)),zn.add(p),()=>{var d;for(var w of _)for(const y of[t,document]){var c=fn.get(y),m=c.get(w);--m==0?(y.removeEventListener(w,Bn),c.delete(w),c.size===0&&fn.delete(y)):c.set(w,m)}zn.delete(p),h!==n&&((d=h.parentNode)==null||d.removeChild(h))}});return Vs.set(o,f),o}let Vs=new WeakMap;var Te,Oe,ve,ct,Qt,$t,yn;class Ks{constructor(t,n=!0){Ae(this,"anchor");P(this,Te,new Map);P(this,Oe,new Map);P(this,ve,new Map);P(this,ct,new Set);P(this,Qt,!0);P(this,$t,()=>{var t=T;if(u(this,Te).has(t)){var n=u(this,Te).get(t),r=u(this,Oe).get(n);if(r)tr(r),u(this,ct).delete(n);else{var s=u(this,ve).get(n);s&&(u(this,Oe).set(n,s.effect),u(this,ve).delete(n),s.fragment.lastChild.remove(),this.anchor.before(s.fragment),r=s.effect)}for(const[i,a]of u(this,Te)){if(u(this,Te).delete(i),i===t)break;const l=u(this,ve).get(a);l&&(oe(l.effect),u(this,ve).delete(a))}for(const[i,a]of u(this,Oe)){if(i===n||u(this,ct).has(i))continue;const l=()=>{if(Array.from(u(this,Te).values()).includes(i)){var f=document.createDocumentFragment();ei(a,f),f.append(Qe()),u(this,ve).set(i,{effect:a,fragment:f})}else oe(a);u(this,ct).delete(i),u(this,Oe).delete(i)};u(this,Qt)||!r?(u(this,ct).add(i),vt(a,l,!1)):l()}}});P(this,yn,t=>{u(this,Te).delete(t);const n=Array.from(u(this,Te).values());for(const[r,s]of u(this,ve))n.includes(r)||(oe(s.effect),u(this,ve).delete(r))});this.anchor=t,x(this,Qt,n)}ensure(t,n){var r=T,s=Ur();if(n&&!u(this,Oe).has(t)&&!u(this,ve).has(t))if(s){var i=document.createDocumentFragment(),a=Qe();i.append(a),u(this,ve).set(t,{effect:ge(()=>n(a)),fragment:i})}else u(this,Oe).set(t,ge(()=>n(this.anchor)));if(u(this,Te).set(r,t),s){for(const[l,o]of u(this,Oe))l===t?r.unskip_effect(o):r.skip_effect(o);for(const[l,o]of u(this,ve))l===t?r.unskip_effect(o.effect):r.skip_effect(o.effect);r.oncommit(u(this,$t)),r.ondiscard(u(this,yn))}else u(this,$t).call(this)}}Te=new WeakMap,Oe=new WeakMap,ve=new WeakMap,ct=new WeakMap,Qt=new WeakMap,$t=new WeakMap,yn=new WeakMap;function G(e,t,n=!1){var r=new Ks(e),s=n?Nt:0;function i(a,l){r.ensure(a,l)}$n(()=>{var a=!1;t((l,o=0)=>{a=!0,i(o,l)}),a||i(!1,null)},s)}function rr(e,t){return t}function Us(e,t,n){for(var r=[],s=t.length,i,a=t.length,l=0;l<s;l++){let _=t[l];vt(_,()=>{if(i){if(i.pending.delete(_),i.done.add(_),i.pending.size===0){var p=e.outrogroups;Vn(wn(i.done)),p.delete(i),p.size===0&&(e.outrogroups=null)}}else a-=1},!1)}if(a===0){var o=r.length===0&&n!==null;if(o){var f=n,h=f.parentNode;Es(h),h.append(f),e.items.clear()}Vn(t,!o)}else i={pending:new Set(t),done:new Set},(e.outrogroups??(e.outrogroups=new Set)).add(i)}function Vn(e,t=!0){for(var n=0;n<e.length;n++)oe(e[n],t)}var mr;function Lt(e,t,n,r,s,i=null){var a=e,l=new Map;{var o=e;a=o.appendChild(Qe())}var f=null,h=_s(()=>{var d=n();return Yn(d)?d:d==null?[]:wn(d)}),_,p=!0;function w(){m.fallback=f,Ys(m,_,a,t,r),f!==null&&(_.length===0?(f.f&Ke)===0?tr(f):(f.f^=Ke,Ht(f,null,a)):vt(f,()=>{f=null}))}var c=$n(()=>{_=v(h);for(var d=_.length,y=new Set,k=T,N=Ur(),M=0;M<d;M+=1){var q=_[M],ne=r(q,M),C=p?null:l.get(ne);C?(C.v&&Mt(C.v,q),C.i&&Mt(C.i,M),N&&k.unskip_effect(C.e)):(C=Ws(l,p?a:mr??(mr=Qe()),q,ne,M,s,t,n),p||(C.e.f|=Ke),l.set(ne,C)),y.add(ne)}if(d===0&&i&&!f&&(p?f=ge(()=>i(a)):(f=ge(()=>i(mr??(mr=Qe()))),f.f|=Ke)),d>y.size&&Mi(),!p)if(N){for(const[K,H]of l)y.has(K)||k.skip_effect(H.e);k.oncommit(w),k.ondiscard(()=>{})}else w();v(h)}),m={effect:c,items:l,outrogroups:null,fallback:f};p=!1}function Bt(e){for(;e!==null&&(e.f&De)===0;)e=e.next;return e}function Ys(e,t,n,r,s){var K;var i=t.length,a=e.items,l=Bt(e.effect.first),o,f=null,h=[],_=[],p,w,c,m;for(m=0;m<i;m+=1){if(p=t[m],w=s(p,m),c=a.get(w).e,e.outrogroups!==null)for(const H of e.outrogroups)H.pending.delete(c),H.done.delete(c);if((c.f&Ke)!==0)if(c.f^=Ke,c===l)Ht(c,null,n);else{var d=f?f.next:l;c===e.effect.last&&(e.effect.last=c.prev),c.prev&&(c.prev.next=c.next),c.next&&(c.next.prev=c.prev),ze(e,f,c),ze(e,c,d),Ht(c,d,n),f=c,h=[],_=[],l=Bt(f.next);continue}if((c.f&de)!==0&&tr(c),c!==l){if(o!==void 0&&o.has(c)){if(h.length<_.length){var y=_[0],k;f=y.prev;var N=h[0],M=h[h.length-1];for(k=0;k<h.length;k+=1)Ht(h[k],y,n);for(k=0;k<_.length;k+=1)o.delete(_[k]);ze(e,N.prev,M.next),ze(e,f,N),ze(e,M,y),l=y,f=M,m-=1,h=[],_=[]}else o.delete(c),Ht(c,l,n),ze(e,c.prev,c.next),ze(e,c,f===null?e.effect.first:f.next),ze(e,f,c),f=c;continue}for(h=[],_=[];l!==null&&l!==c;)(o??(o=new Set)).add(l),_.push(l),l=Bt(l.next);if(l===null)continue}(c.f&Ke)===0&&h.push(c),f=c,l=Bt(c.next)}if(e.outrogroups!==null){for(const H of e.outrogroups)H.pending.size===0&&(Vn(wn(H.done)),(K=e.outrogroups)==null||K.delete(H));e.outrogroups.size===0&&(e.outrogroups=null)}if(l!==null||o!==void 0){var q=[];if(o!==void 0)for(c of o)(c.f&de)===0&&q.push(c);for(;l!==null;)(l.f&de)===0&&l!==e.fallback&&q.push(l),l=Bt(l.next);var ne=q.length;if(ne>0){var C=i===0?n:null;Us(e,q,C)}}}function Ws(e,t,n,r,s,i,a,l){var o=(a&Ki)!==0?(a&Yi)===0?ys(n,!1,!1):gt(n):null,f=(a&Ui)!==0?gt(s):null;return{v:o,i:f,e:ge(()=>(i(t,o??n,f??s,l),()=>{e.delete(r)}))}}function Ht(e,t,n){if(e.nodes)for(var r=e.nodes.start,s=e.nodes.end,i=t&&(t.f&Ke)===0?t.nodes.start:n;r!==null;){var a=tn(r);if(i.before(r),r===s)return;r=a}}function ze(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}const yr=[...`
2
+ \r\f \v\uFEFF`];function Js(e,t,n){var r=e==null?"":""+e;if(t&&(r=r?r+" "+t:t),n){for(var s of Object.keys(n))if(n[s])r=r?r+" "+s:s;else if(r.length)for(var i=s.length,a=0;(a=r.indexOf(s,a))>=0;){var l=a+i;(a===0||yr.includes(r[a-1]))&&(l===r.length||yr.includes(r[l]))?r=(a===0?"":r.substring(0,a))+r.substring(l+1):a=l}}return r===""?null:r}function Kn(e,t,n,r,s,i){var a=e.__className;if(a!==n||a===void 0){var l=Js(n,r,i);l==null?e.removeAttribute("class"):e.className=l,e.__className=n}else if(i&&s!==i)for(var o in i){var f=!!i[o];(s==null||f!==!!s[o])&&e.classList.toggle(o,f)}return i}function ir(e,t,n=!1){if(e.multiple){if(t==null)return;if(!Yn(t))return Xi();for(var r of e.options)r.selected=t.includes(Wt(r));return}for(r of e.options){var s=Wt(r);if(bs(s,t)){r.selected=!0;return}}(!n||t!==void 0)&&(e.selectedIndex=-1)}function ui(e){var t=new MutationObserver(()=>{ir(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),Qn(()=>{t.disconnect()})}function wr(e,t,n=t){var r=new WeakSet,s=!0;Wr(e,"change",i=>{var a=i?"[selected]":":checked",l;if(e.multiple)l=[].map.call(e.querySelectorAll(a),Wt);else{var o=e.querySelector(a)??e.querySelector("option:not([disabled])");l=o&&Wt(o)}n(l),T!==null&&r.add(T)}),As(()=>{var i=t();if(e===document.activeElement){var a=hn??T;if(r.has(a))return}if(ir(e,i,s),s&&i===void 0){var l=e.querySelector(":checked");l!==null&&(i=Wt(l),n(i))}e.__value=i,s=!1}),ui(e)}function Wt(e){return"__value"in e?e.__value:e.value}function dn(e,t,n=t){var r=new WeakSet;Wr(e,"input",async s=>{var i=s?e.defaultValue:e.value;if(i=Cn(e)?Dn(i):i,n(i),T!==null&&r.add(T),await Ms(),i!==(i=t())){var a=e.selectionStart,l=e.selectionEnd,o=e.value.length;if(e.value=i??"",l!==null){var f=e.value.length;a===l&&l===o&&f>o?(e.selectionStart=f,e.selectionEnd=f):(e.selectionStart=a,e.selectionEnd=Math.min(l,f))}}}),oi(t)==null&&e.value&&(n(Cn(e)?Dn(e.value):e.value),T!==null&&r.add(T)),Gr(()=>{var s=t();if(e===document.activeElement){var i=hn??T;if(r.has(i))return}Cn(e)&&s===Dn(e.value)||e.type==="date"&&!s&&!e.value||s!==e.value&&(e.value=s??"")})}function Cn(e){var t=e.type;return t==="number"||t==="range"}function Dn(e){return e===""?null:+e}function ci(e,t,n,r){var s=r,i=!0,a=()=>(i&&(i=!1,s=r),s),l;l=e[t],l===void 0&&r!==void 0&&(l=a());var o;return o=()=>{var f=e[t];return f===void 0?a():(i=!0,f)},o}const Gs="5";var kr;typeof window<"u"&&((kr=window.__svelte??(window.__svelte={})).v??(kr.v=new Set)).add(Gs);async function Be(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:()=>Be("/projects"),getProject:e=>Be(`/projects/${e}`),updateProject:(e,t)=>Be(`/projects/${e}`,{method:"PATCH",body:JSON.stringify(t)}),getTasks:e=>Be(`/projects/${e}/tasks?include_done=true`),createTask:(e,t)=>Be(`/projects/${e}/tasks`,{method:"POST",body:JSON.stringify(t)}),updateTask:(e,t)=>Be(`/tasks/${e}`,{method:"PATCH",body:JSON.stringify(t)}),deleteTask:e=>Be(`/tasks/${e}`,{method:"DELETE"}),getDecisions:e=>Be(`/projects/${e}/decisions`)};var Xs=I('<option class="svelte-1kanzy0"> </option>'),Zs=I('<input class="rename-input svelte-1kanzy0" type="text"/>'),Qs=I('<button class="rename-btn svelte-1kanzy0" title="Rename project">&#9998;</button>'),$s=I('<header class="toolbar svelte-1kanzy0"><div class="brand svelte-1kanzy0">mindpm</div> <div class="project-area svelte-1kanzy0"><select class="svelte-1kanzy0"></select> <!></div></header>');function ea(e,t){$e(t,!0);let n=j(!1),r=j("");const s=pt(()=>t.projects.find(c=>c.id===t.selectedId));function i(){v(s)&&(g(r,v(s).name,!0),g(n,!0))}function a(){if(!v(s)||!v(n))return;const c=v(r).trim();c&&c!==v(s).name&&t.onRenamed(v(s).id,c),g(n,!1)}function l(c){c.key==="Enter"&&a(),c.key==="Escape"&&g(n,!1)}var o=$s(),f=S(E(o),2),h=E(f);Lt(h,21,()=>t.projects,rr,(c,m)=>{var d=Xs(),y=E(d),k={};te(()=>{z(y,v(m).name),k!==(k=v(m).id)&&(d.value=(d.__value=v(m).id)??"")}),O(c,d)});var _;ui(h);var p=S(h,2);{var w=c=>{var m=nr(),d=Jt(m);{var y=N=>{var M=Zs();Yr(M),Le("blur",M,a),fe("keydown",M,l),dn(M,()=>v(r),q=>g(r,q)),O(N,M)},k=N=>{var M=Qs();fe("click",M,i),O(N,M)};G(d,N=>{v(n)?N(y):N(k,!1)})}O(c,m)};G(p,c=>{v(s)&&c(w)})}te(()=>{_!==(_=t.selectedId??"")&&(h.value=(h.__value=t.selectedId??"")??"",ir(h,t.selectedId??""))}),fe("change",h,c=>t.onSelect(c.target.value)),O(e,o),et()}qt(["change","keydown","click"]);const ta=[{status:"todo",label:"Todo"},{status:"in_progress",label:"In Progress"},{status:"blocked",label:"Blocked"},{status:"done",label:"Done"},{status:"cancelled",label:"Cancelled"}],na=["critical","high","medium","low"];var ra=I('<span class="task-id svelte-35ep21"> </span>'),ia=I('<div class="card-desc svelte-35ep21"> </div>'),sa=I('<span class="tag svelte-35ep21"> </span>'),aa=I('<div class="card-tags svelte-35ep21"></div>'),la=I('<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">&times;</button></div></div> <div class="card-title svelte-35ep21"> </div> <!> <!></div>');function oa(e,t){$e(t,!0);let n=j(!1);function r(C){if(!C)return[];try{return JSON.parse(C)}catch{return[]}}const s=pt(()=>r(t.task.tags)),i=pt(()=>`priority-${t.task.priority}`);function a(C){g(n,!0),t.onDragStart(C,t.task)}function l(){g(n,!1)}var o=la();let f;var h=E(o),_=E(h),p=E(_),w=S(_,2),c=E(w);{var m=C=>{var K=ra(),H=E(K);te(()=>z(H,t.task.short_id)),O(C,K)};G(c,C=>{t.task.short_id&&C(m)})}var d=S(c,2),y=S(h,2),k=E(y),N=S(y,2);{var M=C=>{var K=ia(),H=E(K);te(()=>z(H,t.task.description)),O(C,K)};G(N,C=>{t.task.description&&C(M)})}var q=S(N,2);{var ne=C=>{var K=aa();Lt(K,21,()=>v(s),rr,(H,wt)=>{var tt=sa(),bt=E(tt);te(()=>z(bt,v(wt))),O(H,tt)}),O(C,K)};G(q,C=>{v(s).length>0&&C(ne)})}te(()=>{f=Kn(o,1,"card svelte-35ep21",null,f,{dragging:v(n)}),Kn(_,1,`priority-badge ${v(i)??""}`,"svelte-35ep21"),z(p,t.task.priority),z(k,t.task.title)}),Le("dragstart",o,a),Le("dragend",o,l),fe("click",o,()=>t.onEdit(t.task)),fe("keydown",o,C=>{C.key==="Enter"&&t.onEdit(t.task)}),fe("click",d,C=>{C.stopPropagation(),t.onDelete(t.task)}),O(e,o),et()}qt(["click","keydown"]);var fa=I('<button class="add-btn svelte-zswfgn" title="Add task">+</button>'),ua=I('<div role="list"><div class="column-header svelte-zswfgn"><h3 class="svelte-zswfgn"> <span class="count svelte-zswfgn"> </span></h3> <!></div> <div class="card-list svelte-zswfgn"></div></div>');function ca(e,t){$e(t,!0);let n=j(!1);function r(d){d.preventDefault(),d.dataTransfer&&(d.dataTransfer.dropEffect="move"),g(n,!0)}function s(){g(n,!1)}function i(d){d.preventDefault(),g(n,!1),t.onDrop(t.status)}var a=ua();let l;var o=E(a),f=E(o),h=E(f),_=S(h),p=E(_),w=S(f,2);{var c=d=>{var y=fa();fe("click",y,()=>t.onAddTask(t.status)),O(d,y)};G(w,d=>{t.status==="todo"&&d(c)})}var m=S(o,2);Lt(m,21,()=>t.tasks,d=>d.id,(d,y)=>{oa(d,{get task(){return v(y)},get onEdit(){return t.onEdit},get onDelete(){return t.onDelete},get onDragStart(){return t.onDragStart}})}),te(()=>{l=Kn(a,1,"column svelte-zswfgn",null,l,{"drag-over":v(n)}),z(h,`${t.label??""} `),z(p,t.tasks.length)}),Le("dragover",a,r),Le("dragleave",a,s),Le("drop",a,i),O(e,a),et()}qt(["click"]);var va=I('<span class="modal-task-id svelte-1gmf2hi"> </span>'),da=I("<option> </option>"),ha=I('<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>Done</option><option>Cancelled</option></select></div>'),_a=I('<div class="decision-reasoning svelte-1gmf2hi"> </div>'),pa=I('<div class="decision-alts svelte-1gmf2hi"> </div>'),ga=I('<div class="decision-item svelte-1gmf2hi"><div class="decision-title svelte-1gmf2hi"> </div> <div class="decision-body svelte-1gmf2hi"> </div> <!> <!></div>'),ma=I('<div class="decisions-section svelte-1gmf2hi"><h3 class="decisions-heading svelte-1gmf2hi">Decisions</h3> <div class="decisions-list svelte-1gmf2hi"></div></div>'),ya=I('<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">&times;</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 wa(e,t){$e(t,!0);let n=ci(t,"defaultStatus",3,"todo"),r=j(""),s=j(""),i=j("medium"),a=j("todo"),l=j(""),o=j(Ye([]));gn(()=>{var D,L,$,ie,ee;if(g(r,((D=t.task)==null?void 0:D.title)??"",!0),g(s,((L=t.task)==null?void 0:L.description)??"",!0),g(i,(($=t.task)==null?void 0:$.priority)??"medium",!0),g(a,((ie=t.task)==null?void 0:ie.status)??n(),!0),(ee=t.task)!=null&&ee.tags)try{g(l,JSON.parse(t.task.tags).join(", "),!0)}catch{g(l,"")}else g(l,"")}),gn(()=>{t.task!==null?He.getDecisions(t.projectId).then(D=>{g(o,D,!0)}).catch(()=>{g(o,[],!0)}):g(o,[],!0)});const f=pt(()=>t.task!==null);function h(D){D.preventDefault();const L=v(r).trim();if(!L)return;const $=v(l).split(",").map(ie=>ie.trim()).filter(Boolean);t.onSave({title:L,description:v(s).trim(),priority:v(i),...v(f)?{status:v(a)}:{},tags:$})}function _(D){D.target.classList.contains("modal-backdrop")&&t.onClose()}function p(D){D.key==="Escape"&&t.onClose()}var w=ya();Le("keydown",_n,p);var c=E(w),m=E(c),d=E(m),y=E(d),k=E(y),N=S(y,2);{var M=D=>{var L=va(),$=E(L);te(()=>z($,t.task.short_id)),O(D,L)};G(N,D=>{var L;(L=t.task)!=null&&L.short_id&&D(M)})}var q=S(d,2),ne=S(m,2),C=E(ne),K=S(E(C),2);Yr(K);var H=S(C,2),wt=S(E(H),2),tt=S(H,2),bt=E(tt),rn=S(E(bt),2);Lt(rn,21,()=>na,rr,(D,L)=>{var $=da(),ie=E($),ee={};te(()=>{z(ie,v(L)),ee!==(ee=v(L))&&($.value=($.__value=v(L))??"")}),O(D,$)});var b=S(bt,2);{var F=D=>{var L=ha(),$=S(E(L),2),ie=E($);ie.value=ie.__value="todo";var ee=S(ie);ee.value=ee.__value="in_progress";var kt=S(ee);kt.value=kt.__value="blocked";var Et=S(kt);Et.value=Et.__value="done";var sn=S(Et);sn.value=sn.__value="cancelled",wr($,()=>v(a),an=>g(a,an)),O(D,L)};G(b,D=>{v(f)&&D(F)})}var re=S(tt,2),Q=S(E(re),2),zt=S(re,2),ar=E(zt),vi=S(ar,2),di=E(vi),hi=S(ne,2);{var _i=D=>{var L=ma(),$=S(E(L),2);Lt($,21,()=>v(o),ie=>ie.id,(ie,ee)=>{var kt=ga(),Et=E(kt),sn=E(Et),an=S(Et,2),pi=E(an),lr=S(an,2);{var gi=nt=>{var Tt=_a(),ln=E(Tt);te(()=>z(ln,v(ee).reasoning)),O(nt,Tt)};G(lr,nt=>{v(ee).reasoning&&nt(gi)})}var mi=S(lr,2);{var yi=nt=>{const Tt=pt(()=>(()=>{try{return JSON.parse(v(ee).alternatives)}catch{return null}})());var ln=nr(),wi=Jt(ln);{var bi=Tn=>{var or=pa(),ki=E(or);te(Ei=>z(ki,`Alternatives: ${Ei??""}`),[()=>v(Tt).join(", ")]),O(Tn,or)};G(wi,Tn=>{v(Tt)&&v(Tt).length>0&&Tn(bi)})}O(nt,ln)};G(mi,nt=>{v(ee).alternatives&&nt(yi)})}te(()=>{z(sn,v(ee).title),z(pi,v(ee).decision)}),O(ie,kt)}),O(D,L)};G(hi,D=>{v(f)&&v(o).length>0&&D(_i)})}te(()=>{z(k,v(f)?"Edit Task":"New Task"),z(di,v(f)?"Save":"Create")}),fe("click",w,_),fe("click",q,function(...D){var L;(L=t.onClose)==null||L.apply(this,D)}),Le("submit",ne,h),dn(K,()=>v(r),D=>g(r,D)),dn(wt,()=>v(s),D=>g(s,D)),wr(rn,()=>v(i),D=>g(i,D)),dn(Q,()=>v(l),D=>g(l,D)),fe("click",ar,function(...D){var L;(L=t.onClose)==null||L.apply(this,D)}),O(e,w),et()}qt(["click"]);var ba=I('<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 ka(e,t){$e(t,!0);let n=ci(t,"confirmLabel",3,"Delete");function r(m){m.target.classList.contains("modal-backdrop")&&t.onCancel()}function s(m){m.key==="Escape"&&t.onCancel()}var i=ba();Le("keydown",_n,s);var a=E(i),l=E(a),o=E(l),f=S(l,2),h=E(f),_=S(f,2),p=E(_),w=S(p,2),c=E(w);te(()=>{z(o,t.title),z(h,t.message),z(c,n())}),fe("click",i,r),fe("click",p,function(...m){var d;(d=t.onCancel)==null||d.apply(this,m)}),fe("click",w,function(...m){var d;(d=t.onConfirm)==null||d.apply(this,m)}),O(e,i),et()}qt(["click"]);var Ea=I('<div class="board-message svelte-x7v2jt">Loading tasks...</div>'),Ta=I('<div class="board-message error svelte-x7v2jt"> <button class="svelte-x7v2jt">Retry</button></div>'),Sa=I('<div class="board svelte-x7v2jt"></div>'),xa=I('<div class="board-wrapper svelte-x7v2jt"><!></div> <!> <!>',1);function Ca(e,t){$e(t,!0);let n=j(Ye([])),r=j(!0),s=j(null),i=j(!1),a=j(null),l=j("todo"),o=j(!1),f=j(null),h=j(null);const _=pt(()=>ta.map(b=>({...b,tasks:v(n).filter(F=>F.status===b.status)})));async function p(){g(r,!0),g(s,null);try{g(n,await He.getTasks(t.project.id),!0)}catch(b){g(s,b.message,!0)}finally{g(r,!1)}}gn(()=>{t.project.id,p()});function w(b,F){g(h,F,!0),b.dataTransfer&&(b.dataTransfer.effectAllowed="move",b.dataTransfer.setData("text/plain",F.id))}async function c(b){if(!v(h)||v(h).status===b){g(h,null);return}const F=v(h),re=F.status;g(h,null);const Q=v(n).findIndex(zt=>zt.id===F.id);Q!==-1&&(v(n)[Q]={...v(n)[Q],status:b});try{await He.updateTask(F.id,{status:b})}catch(zt){Q!==-1&&(v(n)[Q]={...v(n)[Q],status:re}),g(s,zt.message,!0)}}function m(b){g(a,null),g(l,b,!0),g(i,!0)}function d(b){g(a,b,!0),g(i,!0)}async function y(b){try{if(v(a)){const F=await He.updateTask(v(a).id,{title:b.title,description:b.description||null,priority:b.priority,status:b.status,tags:b.tags.length>0?b.tags:null}),re=v(n).findIndex(Q=>Q.id===v(a).id);re!==-1&&(v(n)[re]=F)}else{const F=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});g(n,[F,...v(n)],!0)}g(i,!1),g(a,null)}catch(F){g(s,F.message,!0)}}function k(b){g(f,b,!0),g(o,!0)}async function N(){if(v(f))try{await He.deleteTask(v(f).id),g(n,v(n).filter(b=>b.id!==v(f).id&&b.parent_task_id!==v(f).id),!0),g(o,!1),g(f,null)}catch(b){g(s,b.message,!0)}}var M=xa(),q=Jt(M),ne=E(q);{var C=b=>{var F=Ea();O(b,F)},K=b=>{var F=Ta(),re=E(F),Q=S(re);te(()=>z(re,`${v(s)??""} `)),fe("click",Q,()=>{g(s,null),p()}),O(b,F)},H=b=>{var F=Sa();Lt(F,21,()=>v(_),re=>re.status,(re,Q)=>{ca(re,{get status(){return v(Q).status},get label(){return v(Q).label},get tasks(){return v(Q).tasks},onEdit:d,onDelete:k,onDragStart:w,onDrop:c,onAddTask:m})}),O(b,F)};G(ne,b=>{v(r)?b(C):v(s)?b(K,1):b(H,!1)})}var wt=S(q,2);{var tt=b=>{wa(b,{get task(){return v(a)},get projectId(){return t.project.id},get defaultStatus(){return v(l)},onSave:y,onClose:()=>{g(i,!1),g(a,null)}})};G(wt,b=>{v(i)&&b(tt)})}var bt=S(wt,2);{var rn=b=>{ka(b,{title:"Delete Task",get message(){return`Are you sure you want to delete "${v(f).title??""}"? This cannot be undone.`},onConfirm:N,onCancel:()=>{g(o,!1),g(f,null)}})};G(bt,b=>{v(o)&&v(f)&&b(rn)})}O(e,M),et()}qt(["click"]);var Da=I('<div class="loading svelte-1n46o8q">Loading projects...</div>'),Aa=I('<div class="error svelte-1n46o8q"> </div>'),Pa=I('<div class="empty svelte-1n46o8q"><h2 class="svelte-1n46o8q">No projects yet</h2> <p class="svelte-1n46o8q">Create a project using mindpm MCP tools to get started.</p></div>'),ja=I("<!> <!>",1);function Oa(e,t){$e(t,!0);let n=j(Ye([])),r=j(null),s=j(!0),i=j(null);const a=pt(()=>v(n).find(d=>d.id===v(r))??null);async function l(){try{if(g(n,await He.getProjects(),!0),v(n).length>0&&!v(r)){const d=new URLSearchParams(window.location.search).get("project"),y=d?v(n).find(k=>k.id===d||k.name===d):null;g(r,y?y.id:v(n)[0].id,!0)}}catch(d){g(i,d.message,!0)}finally{g(s,!1)}}function o(d){g(r,d,!0)}async function f(d,y){try{await He.updateProject(d,{name:y});const k=v(n).findIndex(N=>N.id===d);k!==-1&&(v(n)[k]={...v(n)[k],name:y})}catch(k){g(i,k.message,!0)}}gn(()=>{l()});var h=nr(),_=Jt(h);{var p=d=>{var y=Da();O(d,y)},w=d=>{var y=Aa(),k=E(y);te(()=>z(k,v(i))),O(d,y)},c=d=>{var y=Pa();O(d,y)},m=d=>{var y=ja(),k=Jt(y);ea(k,{get projects(){return v(n)},get selectedId(){return v(r)},onSelect:o,onRenamed:f});var N=S(k,2);{var M=q=>{Ca(q,{get project(){return v(a)}})};G(N,q=>{v(a)&&q(M)})}O(d,y)};G(_,d=>{v(s)?d(p):v(i)?d(w,1):v(n).length===0?d(c,2):d(m,!1)})}O(e,h),et()}Bs(Oa,{target:document.getElementById("app")});
@@ -0,0 +1 @@
1
+ .toolbar.svelte-1kanzy0{display:flex;align-items:center;gap:16px;padding:10px 20px;background:var(--primary);color:#fff;flex-shrink:0}.brand.svelte-1kanzy0{font-weight:700;font-size:1.2rem;letter-spacing:-.5px}.project-area.svelte-1kanzy0{display:flex;align-items:center;gap:8px}select.svelte-1kanzy0{padding:6px 10px;border-radius:var(--radius-sm);border:none;background:#fff3;color:#fff;font-weight:600;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}select.svelte-1kanzy0 option:where(.svelte-1kanzy0){color:var(--text);background:#fff}.rename-btn.svelte-1kanzy0{background:#fff3;border:none;color:#fff;border-radius:var(--radius-sm);padding:4px 8px;font-size:.9rem}.rename-btn.svelte-1kanzy0:hover{background:#ffffff59}.rename-input.svelte-1kanzy0{padding:4px 8px;border-radius:var(--radius-sm);border:2px solid white;background:#ffffffe6;color:var(--text);font-weight:600;width:200px}.card.svelte-35ep21{background:var(--surface);border-radius:var(--radius);padding:10px;box-shadow:var(--card-shadow);cursor:grab;transition:box-shadow .15s}.card.svelte-35ep21:hover{box-shadow:var(--card-shadow-hover)}.card.dragging.svelte-35ep21{opacity:.5}.card-header.svelte-35ep21{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.card-header-right.svelte-35ep21{display:flex;align-items:center;gap:4px}.task-id.svelte-35ep21{font-size:.65rem;color:var(--text-muted);font-family:monospace;opacity:.7}.priority-badge.svelte-35ep21{font-size:.65rem;font-weight:700;text-transform:uppercase;padding:2px 6px;border-radius:3px;color:#fff;letter-spacing:.5px}.priority-critical.svelte-35ep21{background:var(--priority-critical)}.priority-high.svelte-35ep21{background:var(--priority-high);color:#333}.priority-medium.svelte-35ep21{background:var(--priority-medium)}.priority-low.svelte-35ep21{background:var(--priority-low);color:#333}.delete-btn.svelte-35ep21{background:none;border:none;color:var(--text-muted);font-size:1.2rem;line-height:1;padding:0 4px;opacity:0;transition:opacity .15s}.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:.9rem;font-weight:500;word-break:break-word}.card-desc.svelte-35ep21{font-size:.8rem;color:var(--text-muted);margin-top:4px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.card-tags.svelte-35ep21{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.tag.svelte-35ep21{font-size:.7rem;background:var(--bg);color:var(--text-muted);padding:2px 6px;border-radius:3px}.column.svelte-zswfgn{background:var(--column-bg);border-radius:var(--radius);width:280px;min-width:280px;max-height:calc(100vh - 70px);display:flex;flex-direction:column;transition:background-color .15s}.column.drag-over.svelte-zswfgn{background:#d5dbe3}.column-header.svelte-zswfgn{padding:10px 12px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.column-header.svelte-zswfgn h3:where(.svelte-zswfgn){font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.count.svelte-zswfgn{font-weight:400;color:var(--text-muted);margin-left:4px}.add-btn.svelte-zswfgn{background:#00000014;border:none;border-radius:var(--radius-sm);width:28px;height:28px;font-size:1.2rem;color:var(--text-muted);display:flex;align-items:center;justify-content:center}.add-btn.svelte-zswfgn:hover{background:#00000026;color:var(--text)}.card-list.svelte-zswfgn{padding:0 8px 8px;display:flex;flex-direction:column;gap:8px;overflow-y:auto;flex:1}.modal-backdrop.svelte-1gmf2hi{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:100}.modal.svelte-1gmf2hi{background:var(--surface);border-radius:var(--radius);width:520px;max-width:95vw;max-height:90vh;overflow-y:auto;padding:24px}.modal-title.svelte-1gmf2hi{display:flex;align-items:baseline;gap:10px}.modal-task-id.svelte-1gmf2hi{font-size:.75rem;font-family:monospace;color:var(--text-muted);opacity:.8}.modal-header.svelte-1gmf2hi{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modal-header.svelte-1gmf2hi h2:where(.svelte-1gmf2hi){font-size:1.2rem;font-weight:600}.close-btn.svelte-1gmf2hi{background:none;border:none;font-size:1.5rem;color:var(--text-muted);padding:0 4px}.close-btn.svelte-1gmf2hi:hover{color:var(--text)}.field.svelte-1gmf2hi{margin-bottom:16px;flex:1}label.svelte-1gmf2hi{display:block;font-size:.8rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;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:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);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 #0079bf33}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:20px}.btn-cancel.svelte-1gmf2hi,.btn-save.svelte-1gmf2hi{padding:8px 16px;border-radius:var(--radius-sm);font-weight:600;border:none}.btn-cancel.svelte-1gmf2hi{background:var(--bg);color:var(--text-muted)}.btn-cancel.svelte-1gmf2hi:hover{background:var(--border)}.btn-save.svelte-1gmf2hi{background:var(--primary);color:#fff}.btn-save.svelte-1gmf2hi:hover{background:var(--primary-hover)}.decisions-section.svelte-1gmf2hi{margin-top:24px;border-top:1px solid var(--border);padding-top:16px}.decisions-heading.svelte-1gmf2hi{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}.decisions-list.svelte-1gmf2hi{display:flex;flex-direction:column;gap:8px;max-height:260px;overflow-y:auto}.decision-item.svelte-1gmf2hi{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px}.decision-title.svelte-1gmf2hi{font-size:.85rem;font-weight:600;color:var(--text);margin-bottom:4px}.decision-body.svelte-1gmf2hi{font-size:.82rem;color:var(--text);line-height:1.4}.decision-reasoning.svelte-1gmf2hi{font-size:.78rem;color:var(--text-muted);margin-top:4px;line-height:1.4;font-style:italic}.decision-alts.svelte-1gmf2hi{font-size:.78rem;color:var(--text-muted);margin-top:4px}.modal-backdrop.svelte-1efofyg{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:200}.dialog.svelte-1efofyg{background:var(--surface);border-radius:var(--radius);padding:24px;width:360px;max-width:90vw}h3.svelte-1efofyg{font-size:1.1rem;margin-bottom:8px}p.svelte-1efofyg{color:var(--text-muted);font-size:.9rem;margin-bottom:20px}.actions.svelte-1efofyg{display:flex;justify-content:flex-end;gap:8px}.btn-cancel.svelte-1efofyg,.btn-confirm.svelte-1efofyg{padding:8px 16px;border-radius:var(--radius-sm);font-weight:600;border:none}.btn-cancel.svelte-1efofyg{background:var(--bg);color:var(--text-muted)}.btn-cancel.svelte-1efofyg:hover{background:var(--border)}.btn-confirm.svelte-1efofyg{background:var(--danger);color:#fff}.btn-confirm.svelte-1efofyg:hover{background:var(--danger-hover)}.board-wrapper.svelte-x7v2jt{flex:1;overflow-x:auto;padding:16px}.board.svelte-x7v2jt{display:flex;gap:12px;align-items:flex-start;min-height:calc(100vh - 100px)}.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:6px 16px;background:var(--primary);color:#fff;border:none;border-radius:var(--radius-sm);font-weight:600}.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}.error.svelte-1n46o8q{color:var(--danger)}.empty.svelte-1n46o8q h2:where(.svelte-1n46o8q){font-size:1.5rem;font-weight:600}.empty.svelte-1n46o8q p:where(.svelte-1n46o8q){color:var(--text-muted)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f5f6f8;--surface: #ffffff;--border: #dfe1e6;--text: #172b4d;--text-muted: #5e6c84;--primary: #0079bf;--primary-hover: #026aa7;--danger: #eb5a46;--danger-hover: #cf513d;--priority-critical: #eb5a46;--priority-high: #f2d600;--priority-medium: #61bd4f;--priority-low: #c1c7d0;--column-bg: #ebecf0;--card-shadow: 0 1px 2px rgba(9, 30, 66, .15);--card-shadow-hover: 0 4px 8px rgba(9, 30, 66, .2);--radius: 6px;--radius-sm: 4px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;min-height:100vh}button{cursor:pointer;font-family:inherit;font-size:inherit}input,textarea,select{font-family:inherit;font-size:inherit}#app{min-height:100vh;display:flex;flex-direction:column}
@@ -4,8 +4,8 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <title>mindpm - Kanban</title>
7
- <script type="module" crossorigin src="/assets/index-BOJUueBw.js"></script>
8
- <link rel="stylesheet" crossorigin href="/assets/index-D3uZo-NO.css">
7
+ <script type="module" crossorigin src="/assets/index-BrgskvYb.js"></script>
8
+ <link rel="stylesheet" crossorigin href="/assets/index-jNPGblW3.css">
9
9
  </head>
10
10
  <body>
11
11
  <div id="app"></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mindpm",
3
- "version": "1.2.7",
3
+ "version": "1.2.9",
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",
@@ -1,2 +0,0 @@
1
- var ii=Object.defineProperty;var $n=e=>{throw TypeError(e)};var si=(e,t,n)=>t in e?ii(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var De=(e,t,n)=>si(e,typeof t!="symbol"?t+"":t,n),gn=(e,t,n)=>t.has(e)||$n("Cannot "+n);var u=(e,t,n)=>(gn(e,t,"read from private field"),n?n.call(e):t.get(e)),D=(e,t,n)=>t.has(e)?$n("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),S=(e,t,n,r)=>(gn(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),H=(e,t,n)=>(gn(e,t,"access private method"),n);(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const i of s)if(i.type==="childList")for(const l of i.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&r(l)}).observe(document,{childList:!0,subtree:!0});function n(s){const i={};return s.integrity&&(i.integrity=s.integrity),s.referrerPolicy&&(i.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?i.credentials="include":s.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(s){if(s.ep)return;s.ep=!0;const i=n(s);fetch(s.href,i)}})();const bn=!1;var Fn=Array.isArray,li=Array.prototype.indexOf,Tt=Array.prototype.includes,on=Array.from,ai=Object.defineProperty,Rt=Object.getOwnPropertyDescriptor,fi=Object.prototype,oi=Array.prototype,ui=Object.getPrototypeOf,er=Object.isExtensible;const ci=()=>{};function di(e){for(var t=0;t<e.length;t++)e[t]()}function vr(){var e,t,n=new Promise((r,s)=>{e=r,t=s});return{promise:n,resolve:e,reject:t}}const Y=2,Kt=4,un=8,hr=1<<24,Fe=16,xe=32,pt=64,kn=128,he=512,V=1024,W=2048,Se=4096,ae=8192,Ke=16384,dt=32768,St=65536,tr=1<<17,_r=1<<18,Pt=1<<19,vi=1<<20,He=1<<25,vt=65536,En=1<<21,qn=1<<22,Ue=1<<23,Mt=Symbol("$state"),et=new class extends Error{constructor(){super(...arguments);De(this,"name","StaleReactionError");De(this,"message","The reaction that called `getAbortSignal()` was re-run or destroyed")}};function hi(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function _i(e,t,n){throw new Error("https://svelte.dev/e/each_key_duplicate")}function pi(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function gi(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function mi(e){throw new Error("https://svelte.dev/e/effect_orphan")}function yi(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function wi(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function bi(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function ki(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function Ei(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const Ti=1,Si=2,xi=16,Ci=1,Di=2,K=Symbol(),Ai="http://www.w3.org/1999/xhtml";function Pi(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function Oi(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}function pr(e){return e===this.v}function ji(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function gr(e){return!ji(e,this.v)}let Ni=!1,pe=null;function xt(e){pe=e}function Xe(e,t=!1,n){pe={p:pe,i:!1,c:null,e:null,s:e,x:null,l:null}}function Ze(e){var t=pe,n=t.e;if(n!==null){t.e=null;for(var r of n)Fr(r)}return t.i=!0,pe=t.p,{}}function mr(){return!0}let tt=[];function yr(){var e=tt;tt=[],di(e)}function Ye(e){if(tt.length===0&&!It){var t=tt;queueMicrotask(()=>{t===tt&&yr()})}tt.push(e)}function Ri(){for(;tt.length>0;)yr()}function wr(e){var t=N;if(t===null)return C.f|=Ue,e;if((t.f&dt)===0&&(t.f&Kt)===0)throw e;Ve(e,t)}function Ve(e,t){for(;t!==null;){if((t.f&kn)!==0){if((t.f&dt)===0)throw e;try{t.b.error(e);return}catch(n){e=n}}t=t.parent}throw e}const Mi=-7169;function F(e,t){e.f=e.f&Mi|t}function zn(e){(e.f&he)!==0||e.deps===null?F(e,V):F(e,Se)}function br(e){if(e!==null)for(const t of e)(t.f&Y)===0||(t.f&vt)===0||(t.f^=vt,br(t.deps))}function kr(e,t,n){(e.f&W)!==0?t.add(e):(e.f&Se)!==0&&n.add(e),br(e.deps),F(e,V)}const Xt=new Set;let T=null,nn=null,U=null,$=[],cn=null,Tn=!1,It=!1;var gt,mt,st,yt,zt,Bt,lt,Re,wt,fe,Sn,xn,Cn,Er;const Zn=class Zn{constructor(){D(this,fe);De(this,"current",new Map);De(this,"previous",new Map);D(this,gt,new Set);D(this,mt,new Set);D(this,st,0);D(this,yt,0);D(this,zt,null);D(this,Bt,new Set);D(this,lt,new Set);D(this,Re,new Map);De(this,"is_fork",!1);D(this,wt,!1)}skip_effect(t){u(this,Re).has(t)||u(this,Re).set(t,{d:[],m:[]})}unskip_effect(t){var n=u(this,Re).get(t);if(n){u(this,Re).delete(t);for(var r of n.d)F(r,W),be(r);for(r of n.m)F(r,Se),be(r)}}process(t){var s;$=[],this.apply();var n=[],r=[];for(const i of t)H(this,fe,xn).call(this,i,n,r);if(H(this,fe,Sn).call(this)){H(this,fe,Cn).call(this,r),H(this,fe,Cn).call(this,n);for(const[i,l]of u(this,Re))Cr(i,l)}else{for(const i of u(this,gt))i();u(this,gt).clear(),u(this,st)===0&&H(this,fe,Er).call(this),nn=this,T=null,nr(r),nr(n),nn=null,(s=u(this,zt))==null||s.resolve()}U=null}capture(t,n){n!==K&&!this.previous.has(t)&&this.previous.set(t,n),(t.f&Ue)===0&&(this.current.set(t,t.v),U==null||U.set(t,t.v))}activate(){T=this,this.apply()}deactivate(){T===this&&(T=null,U=null)}flush(){if(this.activate(),$.length>0){if(Tr(),T!==null&&T!==this)return}else u(this,st)===0&&this.process([]);this.deactivate()}discard(){for(const t of u(this,mt))t(this);u(this,mt).clear()}increment(t){S(this,st,u(this,st)+1),t&&S(this,yt,u(this,yt)+1)}decrement(t){S(this,st,u(this,st)-1),t&&S(this,yt,u(this,yt)-1),!u(this,wt)&&(S(this,wt,!0),Ye(()=>{S(this,wt,!1),H(this,fe,Sn).call(this)?$.length>0&&this.flush():this.revive()}))}revive(){for(const t of u(this,Bt))u(this,lt).delete(t),F(t,W),be(t);for(const t of u(this,lt))F(t,Se),be(t);this.flush()}oncommit(t){u(this,gt).add(t)}ondiscard(t){u(this,mt).add(t)}settled(){return(u(this,zt)??S(this,zt,vr())).promise}static ensure(){if(T===null){const t=T=new Zn;Xt.add(T),It||Ye(()=>{T===t&&t.flush()})}return T}apply(){}};gt=new WeakMap,mt=new WeakMap,st=new WeakMap,yt=new WeakMap,zt=new WeakMap,Bt=new WeakMap,lt=new WeakMap,Re=new WeakMap,wt=new WeakMap,fe=new WeakSet,Sn=function(){return this.is_fork||u(this,yt)>0},xn=function(t,n,r){t.f^=V;for(var s=t.first;s!==null;){var i=s.f,l=(i&(xe|pt))!==0,a=l&&(i&V)!==0,f=a||(i&ae)!==0||u(this,Re).has(s);if(!f&&s.fn!==null){l?s.f^=V:(i&Kt)!==0?n.push(s):Yt(s)&&((i&Fe)!==0&&u(this,lt).add(s),At(s));var o=s.first;if(o!==null){s=o;continue}}for(;s!==null;){var h=s.next;if(h!==null){s=h;break}s=s.parent}}},Cn=function(t){for(var n=0;n<t.length;n+=1)kr(t[n],u(this,Bt),u(this,lt))},Er=function(){var s;if(Xt.size>1){this.previous.clear();var t=U,n=!0;for(const i of Xt){if(i===this){n=!1;continue}const l=[];for(const[f,o]of this.current){if(i.current.has(f))if(n&&o!==i.current.get(f))i.current.set(f,o);else continue;l.push(f)}if(l.length===0)continue;const a=[...i.current.keys()].filter(f=>!this.current.has(f));if(a.length>0){var r=$;$=[];const f=new Set,o=new Map;for(const h of l)Sr(h,a,f,o);if($.length>0){T=i,i.apply();for(const h of $)H(s=i,fe,xn).call(s,h,[],[]);i.deactivate()}$=r}}T=null,U=t}Xt.delete(this)};let We=Zn;function Ii(e){var t=It;It=!0;try{for(var n;;){if(Ri(),$.length===0&&(T==null||T.flush(),$.length===0))return cn=null,n;Tr()}}finally{It=t}}function Tr(){Tn=!0;var e=null;try{for(var t=0;$.length>0;){var n=We.ensure();if(t++>1e3){var r,s;Li()}n.process($),Je.clear()}}finally{$=[],Tn=!1,cn=null}}function Li(){try{yi()}catch(e){Ve(e,cn)}}let me=null;function nr(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if((r.f&(Ke|ae))===0&&Yt(r)&&(me=new Set,At(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&Br(r),(me==null?void 0:me.size)>0)){Je.clear();for(const s of me){if((s.f&(Ke|ae))!==0)continue;const i=[s];let l=s.parent;for(;l!==null;)me.has(l)&&(me.delete(l),i.push(l)),l=l.parent;for(let a=i.length-1;a>=0;a--){const f=i[a];(f.f&(Ke|ae))===0&&At(f)}}me.clear()}}me=null}}function Sr(e,t,n,r){if(!n.has(e)&&(n.add(e),e.reactions!==null))for(const s of e.reactions){const i=s.f;(i&Y)!==0?Sr(s,t,n,r):(i&(qn|Fe))!==0&&(i&W)===0&&xr(s,t,r)&&(F(s,W),be(s))}}function xr(e,t,n){const r=n.get(e);if(r!==void 0)return r;if(e.deps!==null)for(const s of e.deps){if(Tt.call(t,s))return!0;if((s.f&Y)!==0&&xr(s,t,n))return n.set(s,!0),!0}return n.set(e,!1),!1}function be(e){var t=cn=e,n=t.b;if(n!=null&&n.is_pending&&(e.f&(Kt|un|hr))!==0&&(e.f&dt)===0){n.defer_effect(e);return}for(;t.parent!==null;){t=t.parent;var r=t.f;if(Tn&&t===N&&(r&Fe)!==0&&(r&_r)===0&&(r&dt)!==0)return;if((r&(pt|xe))!==0){if((r&V)===0)return;t.f^=V}}$.push(t)}function Cr(e,t){if(!((e.f&xe)!==0&&(e.f&V)!==0)){(e.f&W)!==0?t.d.push(e):(e.f&Se)!==0&&t.m.push(e),F(e,V);for(var n=e.first;n!==null;)Cr(n,t),n=n.next}}function Fi(e){let t=0,n=ht(0),r;return()=>{Vn()&&(d(n),qr(()=>(t===0&&(r=Qr(()=>e(()=>Lt(n)))),t+=1,()=>{Ye(()=>{t-=1,t===0&&(r==null||r(),r=void 0,Lt(n))})})))}}var qi=St|Pt;function zi(e,t,n,r){new Bi(e,t,n,r)}var de,Ln,Ae,at,Q,Pe,se,ye,Me,ft,Be,bt,kt,Et,Ie,an,q,Hi,Vi,Ki,Dn,Qt,$t,An;class Bi{constructor(t,n,r,s){D(this,q);De(this,"parent");De(this,"is_pending",!1);De(this,"transform_error");D(this,de);D(this,Ln,null);D(this,Ae);D(this,at);D(this,Q);D(this,Pe,null);D(this,se,null);D(this,ye,null);D(this,Me,null);D(this,ft,0);D(this,Be,0);D(this,bt,!1);D(this,kt,new Set);D(this,Et,new Set);D(this,Ie,null);D(this,an,Fi(()=>(S(this,Ie,ht(u(this,ft))),()=>{S(this,Ie,null)})));var i;S(this,de,t),S(this,Ae,n),S(this,at,l=>{var a=N;a.b=this,a.f|=kn,r(l)}),this.parent=N.b,this.transform_error=s??((i=this.parent)==null?void 0:i.transform_error)??(l=>l),S(this,Q,Yn(()=>{H(this,q,Dn).call(this)},qi))}defer_effect(t){kr(t,u(this,kt),u(this,Et))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!u(this,Ae).pending}update_pending_count(t){H(this,q,An).call(this,t),S(this,ft,u(this,ft)+t),!(!u(this,Ie)||u(this,bt))&&(S(this,bt,!0),Ye(()=>{S(this,bt,!1),u(this,Ie)&&Dt(u(this,Ie),u(this,ft))}))}get_effect_pending(){return u(this,an).call(this),d(u(this,Ie))}error(t){var n=u(this,Ae).onerror;let r=u(this,Ae).failed;if(!n&&!r)throw t;u(this,Pe)&&(te(u(this,Pe)),S(this,Pe,null)),u(this,se)&&(te(u(this,se)),S(this,se,null)),u(this,ye)&&(te(u(this,ye)),S(this,ye,null));var s=!1,i=!1;const l=()=>{if(s){Oi();return}s=!0,i&&Ei(),u(this,ye)!==null&&ut(u(this,ye),()=>{S(this,ye,null)}),H(this,q,$t).call(this,()=>{We.ensure(),H(this,q,Dn).call(this)})},a=f=>{try{i=!0,n==null||n(f,l),i=!1}catch(o){Ve(o,u(this,Q)&&u(this,Q).parent)}r&&S(this,ye,H(this,q,$t).call(this,()=>{We.ensure();try{return ve(()=>{var o=N;o.b=this,o.f|=kn,r(u(this,de),()=>f,()=>l)})}catch(o){return Ve(o,u(this,Q).parent),null}}))};Ye(()=>{var f;try{f=this.transform_error(t)}catch(o){Ve(o,u(this,Q)&&u(this,Q).parent);return}f!==null&&typeof f=="object"&&typeof f.then=="function"?f.then(a,o=>Ve(o,u(this,Q)&&u(this,Q).parent)):a(f)})}}de=new WeakMap,Ln=new WeakMap,Ae=new WeakMap,at=new WeakMap,Q=new WeakMap,Pe=new WeakMap,se=new WeakMap,ye=new WeakMap,Me=new WeakMap,ft=new WeakMap,Be=new WeakMap,bt=new WeakMap,kt=new WeakMap,Et=new WeakMap,Ie=new WeakMap,an=new WeakMap,q=new WeakSet,Hi=function(){try{S(this,Pe,ve(()=>u(this,at).call(this,u(this,de))))}catch(t){this.error(t)}},Vi=function(t){const n=u(this,Ae).failed;n&&S(this,ye,ve(()=>{n(u(this,de),()=>t,()=>()=>{})}))},Ki=function(){const t=u(this,Ae).pending;t&&(this.is_pending=!0,S(this,se,ve(()=>t(u(this,de)))),Ye(()=>{var n=S(this,Me,document.createDocumentFragment()),r=Ge();n.append(r),S(this,Pe,H(this,q,$t).call(this,()=>(We.ensure(),ve(()=>u(this,at).call(this,r))))),u(this,Be)===0&&(u(this,de).before(n),S(this,Me,null),ut(u(this,se),()=>{S(this,se,null)}),H(this,q,Qt).call(this))}))},Dn=function(){try{if(this.is_pending=this.has_pending_snippet(),S(this,Be,0),S(this,ft,0),S(this,Pe,ve(()=>{u(this,at).call(this,u(this,de))})),u(this,Be)>0){var t=S(this,Me,document.createDocumentFragment());Kr(u(this,Pe),t);const n=u(this,Ae).pending;S(this,se,ve(()=>n(u(this,de))))}else H(this,q,Qt).call(this)}catch(n){this.error(n)}},Qt=function(){this.is_pending=!1;for(const t of u(this,kt))F(t,W),be(t);for(const t of u(this,Et))F(t,Se),be(t);u(this,kt).clear(),u(this,Et).clear()},$t=function(t){var n=N,r=C,s=pe;je(u(this,Q)),ge(u(this,Q)),xt(u(this,Q).ctx);try{return t()}catch(i){return wr(i),null}finally{je(n),ge(r),xt(s)}},An=function(t){var n;if(!this.has_pending_snippet()){this.parent&&H(n=this.parent,q,An).call(n,t);return}S(this,Be,u(this,Be)+t),u(this,Be)===0&&(H(this,q,Qt).call(this),u(this,se)&&ut(u(this,se),()=>{S(this,se,null)}),u(this,Me)&&(u(this,de).before(u(this,Me)),S(this,Me,null)))};function Ui(e,t,n,r){const s=Bn;var i=e.filter(_=>!_.settled);if(n.length===0&&i.length===0){r(t.map(s));return}var l=N,a=Yi(),f=i.length===1?i[0].promise:i.length>1?Promise.all(i.map(_=>_.promise)):null;function o(_){a();try{r(_)}catch(p){(l.f&Ke)===0&&Ve(p,l)}Pn()}if(n.length===0){f.then(()=>o(t.map(s)));return}function h(){a(),Promise.all(n.map(_=>Ji(_))).then(_=>o([...t.map(s),..._])).catch(_=>Ve(_,l))}f?f.then(h):h()}function Yi(){var e=N,t=C,n=pe,r=T;return function(i=!0){je(e),ge(t),xt(n),i&&(r==null||r.activate())}}function Pn(e=!0){je(null),ge(null),xt(null),e&&(T==null||T.deactivate())}function Wi(){var e=N.b,t=T,n=e.is_rendered();return e.update_pending_count(1),t.increment(n),()=>{e.update_pending_count(-1),t.decrement(n)}}function Bn(e){var t=Y|W,n=C!==null&&(C.f&Y)!==0?C:null;return N!==null&&(N.f|=Pt),{ctx:pe,deps:null,effects:null,equals:pr,f:t,fn:e,reactions:null,rv:0,v:K,wv:0,parent:n??N,ac:null}}function Ji(e,t,n){N===null&&hi();var s=void 0,i=ht(K),l=!C,a=new Map;return us(()=>{var p;var f=vr();s=f.promise;try{Promise.resolve(e()).then(f.resolve,f.reject).finally(Pn)}catch(b){f.reject(b),Pn()}var o=T;if(l){var h=Wi();(p=a.get(o))==null||p.reject(et),a.delete(o),a.set(o,f)}const _=(b,c=void 0)=>{if(o.activate(),c)c!==et&&(i.f|=Ue,Dt(i,c));else{(i.f&Ue)!==0&&(i.f^=Ue),Dt(i,b);for(const[m,v]of a){if(a.delete(m),m===o)break;v.reject(et)}}h&&h()};f.promise.then(_,b=>_(null,b||"unknown"))}),Kn(()=>{for(const f of a.values())f.reject(et)}),new Promise(f=>{function o(h){function _(){h===s?f(i):o(s)}h.then(_,_)}o(s)})}function Ct(e){const t=Bn(e);return Ur(t),t}function Gi(e){const t=Bn(e);return t.equals=gr,t}function Xi(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)te(t[n])}}function Zi(e){for(var t=e.parent;t!==null;){if((t.f&Y)===0)return(t.f&Ke)===0?t:null;t=t.parent}return null}function Hn(e){var t,n=N;je(Zi(e));try{e.f&=~vt,Xi(e),t=Gr(e)}finally{je(n)}return t}function Dr(e){var t=Hn(e);if(!e.equals(t)&&(e.wv=Wr(),(!(T!=null&&T.is_fork)||e.deps===null)&&(e.v=t,e.deps===null))){F(e,V);return}_t||(U!==null?(Vn()||T!=null&&T.is_fork)&&U.set(e,t):zn(e))}function Qi(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(et),r.teardown=ci,r.ac=null,qt(r,0),Wn(r))}function Ar(e){if(e.effects!==null)for(const t of e.effects)t.teardown&&At(t)}let On=new Set;const Je=new Map;let Pr=!1;function ht(e,t){var n={f:0,v:e,reactions:null,equals:pr,rv:0,wv:0};return n}function j(e,t){const n=ht(e);return Ur(n),n}function $i(e,t=!1,n=!0){const r=ht(e);return t||(r.equals=gr),r}function g(e,t,n=!1){C!==null&&(!ke||(C.f&tr)!==0)&&mr()&&(C.f&(Y|Fe|qn|tr))!==0&&(_e===null||!Tt.call(_e,e))&&ki();let r=n?nt(t):t;return Dt(e,r)}function Dt(e,t){if(!e.equals(t)){var n=e.v;_t?Je.set(e,t):Je.set(e,n),e.v=t;var r=We.ensure();if(r.capture(e,n),(e.f&Y)!==0){const s=e;(e.f&W)!==0&&Hn(s),zn(s)}e.wv=Wr(),Or(e,W),N!==null&&(N.f&V)!==0&&(N.f&(xe|pt))===0&&(ce===null?vs([e]):ce.push(e)),!r.is_fork&&On.size>0&&!Pr&&es()}return t}function es(){Pr=!1;for(const e of On)(e.f&V)!==0&&F(e,Se),Yt(e)&&At(e);On.clear()}function Lt(e){g(e,e.v+1)}function Or(e,t){var n=e.reactions;if(n!==null)for(var r=n.length,s=0;s<r;s++){var i=n[s],l=i.f,a=(l&W)===0;if(a&&F(i,t),(l&Y)!==0){var f=i;U==null||U.delete(f),(l&vt)===0&&(l&he&&(i.f|=vt),Or(f,Se))}else a&&((l&Fe)!==0&&me!==null&&me.add(i),be(i))}}function nt(e){if(typeof e!="object"||e===null||Mt in e)return e;const t=ui(e);if(t!==fi&&t!==oi)return e;var n=new Map,r=Fn(e),s=j(0),i=ct,l=a=>{if(ct===i)return a();var f=C,o=ct;ge(null),lr(i);var h=a();return ge(f),lr(o),h};return r&&n.set("length",j(e.length)),new Proxy(e,{defineProperty(a,f,o){(!("value"in o)||o.configurable===!1||o.enumerable===!1||o.writable===!1)&&wi();var h=n.get(f);return h===void 0?l(()=>{var _=j(o.value);return n.set(f,_),_}):g(h,o.value,!0),!0},deleteProperty(a,f){var o=n.get(f);if(o===void 0){if(f in a){const h=l(()=>j(K));n.set(f,h),Lt(s)}}else g(o,K),Lt(s);return!0},get(a,f,o){var b;if(f===Mt)return e;var h=n.get(f),_=f in a;if(h===void 0&&(!_||(b=Rt(a,f))!=null&&b.writable)&&(h=l(()=>{var c=nt(_?a[f]:K),m=j(c);return m}),n.set(f,h)),h!==void 0){var p=d(h);return p===K?void 0:p}return Reflect.get(a,f,o)},getOwnPropertyDescriptor(a,f){var o=Reflect.getOwnPropertyDescriptor(a,f);if(o&&"value"in o){var h=n.get(f);h&&(o.value=d(h))}else if(o===void 0){var _=n.get(f),p=_==null?void 0:_.v;if(_!==void 0&&p!==K)return{enumerable:!0,configurable:!0,value:p,writable:!0}}return o},has(a,f){var p;if(f===Mt)return!0;var o=n.get(f),h=o!==void 0&&o.v!==K||Reflect.has(a,f);if(o!==void 0||N!==null&&(!h||(p=Rt(a,f))!=null&&p.writable)){o===void 0&&(o=l(()=>{var b=h?nt(a[f]):K,c=j(b);return c}),n.set(f,o));var _=d(o);if(_===K)return!1}return h},set(a,f,o,h){var P;var _=n.get(f),p=f in a;if(r&&f==="length")for(var b=o;b<_.v;b+=1){var c=n.get(b+"");c!==void 0?g(c,K):b in a&&(c=l(()=>j(K)),n.set(b+"",c))}if(_===void 0)(!p||(P=Rt(a,f))!=null&&P.writable)&&(_=l(()=>j(void 0)),g(_,nt(o)),n.set(f,_));else{p=_.v!==K;var m=l(()=>nt(o));g(_,m)}var v=Reflect.getOwnPropertyDescriptor(a,f);if(v!=null&&v.set&&v.set.call(h,o),!p){if(r&&typeof f=="string"){var y=n.get("length"),k=Number(f);Number.isInteger(k)&&k>=y.v&&g(y,k+1)}Lt(s)}return!0},ownKeys(a){d(s);var f=Reflect.ownKeys(a).filter(_=>{var p=n.get(_);return p===void 0||p.v!==K});for(var[o,h]of n)h.v!==K&&!(o in a)&&f.push(o);return f},setPrototypeOf(){bi()}})}function rr(e){try{if(e!==null&&typeof e=="object"&&Mt in e)return e[Mt]}catch{}return e}function ts(e,t){return Object.is(rr(e),rr(t))}var rn,jr,Nr,Rr;function ns(){if(rn===void 0){rn=window,jr=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;Nr=Rt(t,"firstChild").get,Rr=Rt(t,"nextSibling").get,er(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),er(n)&&(n.__t=void 0)}}function Ge(e=""){return document.createTextNode(e)}function sn(e){return Nr.call(e)}function Ut(e){return Rr.call(e)}function x(e,t){return sn(e)}function ln(e,t=!1){{var n=sn(e);return n instanceof Comment&&n.data===""?Ut(n):n}}function A(e,t=1,n=!1){let r=e;for(;t--;)r=Ut(r);return r}function rs(e){e.textContent=""}function Mr(){return!1}function is(e,t,n){return document.createElementNS(Ai,e,void 0)}function Ir(e,t){{const n=document.body;e.autofocus=!0,Ye(()=>{document.activeElement===n&&e.focus()})}}let ir=!1;function ss(){ir||(ir=!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 dn(e){var t=C,n=N;ge(null),je(null);try{return e()}finally{ge(t),je(n)}}function Lr(e,t,n,r=n){e.addEventListener(t,()=>dn(n));const s=e.__on_r;s?e.__on_r=()=>{s(),r(!0)}:e.__on_r=()=>r(!0),ss()}function ls(e){N===null&&(C===null&&mi(),gi()),_t&&pi()}function as(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function qe(e,t,n){var r=N;r!==null&&(r.f&ae)!==0&&(e|=ae);var s={ctx:pe,deps:null,nodes:null,f:e|W|he,first:null,fn:t,last:null,next:null,parent:r,b:r&&r.b,prev:null,teardown:null,wv:0,ac:null};if(n)try{At(s)}catch(a){throw te(s),a}else t!==null&&be(s);var i=s;if(n&&i.deps===null&&i.teardown===null&&i.nodes===null&&i.first===i.last&&(i.f&Pt)===0&&(i=i.first,(e&Fe)!==0&&(e&St)!==0&&i!==null&&(i.f|=St)),i!==null&&(i.parent=r,r!==null&&as(i,r),C!==null&&(C.f&Y)!==0&&(e&pt)===0)){var l=C;(l.effects??(l.effects=[])).push(i)}return s}function Vn(){return C!==null&&!ke}function Kn(e){const t=qe(un,null,!1);return F(t,V),t.teardown=e,t}function Un(e){ls();var t=N.f,n=!C&&(t&xe)!==0&&(t&dt)===0;if(n){var r=pe;(r.e??(r.e=[])).push(e)}else return Fr(e)}function Fr(e){return qe(Kt|vi,e,!1)}function fs(e){We.ensure();const t=qe(pt|Pt,e,!0);return(n={})=>new Promise(r=>{n.outro?ut(t,()=>{te(t),r(void 0)}):(te(t),r(void 0))})}function os(e){return qe(Kt,e,!1)}function us(e){return qe(qn|Pt,e,!0)}function qr(e,t=0){return qe(un|t,e,!0)}function Ee(e,t=[],n=[],r=[]){Ui(r,t,n,s=>{qe(un,()=>e(...s.map(d)),!0)})}function Yn(e,t=0){var n=qe(Fe|t,e,!0);return n}function ve(e){return qe(xe|Pt,e,!0)}function zr(e){var t=e.teardown;if(t!==null){const n=_t,r=C;sr(!0),ge(null);try{t.call(null)}finally{sr(n),ge(r)}}}function Wn(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const s=n.ac;s!==null&&dn(()=>{s.abort(et)});var r=n.next;(n.f&pt)!==0?n.parent=null:te(n,t),n=r}}function cs(e){for(var t=e.first;t!==null;){var n=t.next;(t.f&xe)===0&&te(t),t=n}}function te(e,t=!0){var n=!1;(t||(e.f&_r)!==0)&&e.nodes!==null&&e.nodes.end!==null&&(ds(e.nodes.start,e.nodes.end),n=!0),Wn(e,t&&!n),qt(e,0),F(e,Ke);var r=e.nodes&&e.nodes.t;if(r!==null)for(const i of r)i.stop();zr(e);var s=e.parent;s!==null&&s.first!==null&&Br(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=null}function ds(e,t){for(;e!==null;){var n=e===t?null:Ut(e);e.remove(),e=n}}function Br(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 ut(e,t,n=!0){var r=[];Hr(e,r,!0);var s=()=>{n&&te(e),t&&t()},i=r.length;if(i>0){var l=()=>--i||s();for(var a of r)a.out(l)}else s()}function Hr(e,t,n){if((e.f&ae)===0){e.f^=ae;var r=e.nodes&&e.nodes.t;if(r!==null)for(const a of r)(a.is_global||n)&&t.push(a);for(var s=e.first;s!==null;){var i=s.next,l=(s.f&St)!==0||(s.f&xe)!==0&&(e.f&Fe)!==0;Hr(s,t,l?n:!1),s=i}}}function Jn(e){Vr(e,!0)}function Vr(e,t){if((e.f&ae)!==0){e.f^=ae,(e.f&V)===0&&(F(e,W),be(e));for(var n=e.first;n!==null;){var r=n.next,s=(n.f&St)!==0||(n.f&xe)!==0;Vr(n,s?t:!1),n=r}var i=e.nodes&&e.nodes.t;if(i!==null)for(const l of i)(l.is_global||t)&&l.in()}}function Kr(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var s=n===r?null:Ut(n);t.append(n),n=s}}let en=!1,_t=!1;function sr(e){_t=e}let C=null,ke=!1;function ge(e){C=e}let N=null;function je(e){N=e}let _e=null;function Ur(e){C!==null&&(_e===null?_e=[e]:_e.push(e))}let ee=null,ie=0,ce=null;function vs(e){ce=e}let Yr=1,rt=0,ct=rt;function lr(e){ct=e}function Wr(){return++Yr}function Yt(e){var t=e.f;if((t&W)!==0)return!0;if(t&Y&&(e.f&=~vt),(t&Se)!==0){for(var n=e.deps,r=n.length,s=0;s<r;s++){var i=n[s];if(Yt(i)&&Dr(i),i.wv>e.wv)return!0}(t&he)!==0&&U===null&&F(e,V)}return!1}function Jr(e,t,n=!0){var r=e.reactions;if(r!==null&&!(_e!==null&&Tt.call(_e,e)))for(var s=0;s<r.length;s++){var i=r[s];(i.f&Y)!==0?Jr(i,t,!1):t===i&&(n?F(i,W):(i.f&V)!==0&&F(i,Se),be(i))}}function Gr(e){var m;var t=ee,n=ie,r=ce,s=C,i=_e,l=pe,a=ke,f=ct,o=e.f;ee=null,ie=0,ce=null,C=(o&(xe|pt))===0?e:null,_e=null,xt(e.ctx),ke=!1,ct=++rt,e.ac!==null&&(dn(()=>{e.ac.abort(et)}),e.ac=null);try{e.f|=En;var h=e.fn,_=h();e.f|=dt;var p=e.deps,b=T==null?void 0:T.is_fork;if(ee!==null){var c;if(b||qt(e,ie),p!==null&&ie>0)for(p.length=ie+ee.length,c=0;c<ee.length;c++)p[ie+c]=ee[c];else e.deps=p=ee;if(Vn()&&(e.f&he)!==0)for(c=ie;c<p.length;c++)((m=p[c]).reactions??(m.reactions=[])).push(e)}else!b&&p!==null&&ie<p.length&&(qt(e,ie),p.length=ie);if(mr()&&ce!==null&&!ke&&p!==null&&(e.f&(Y|Se|W))===0)for(c=0;c<ce.length;c++)Jr(ce[c],e);if(s!==null&&s!==e){if(rt++,s.deps!==null)for(let v=0;v<n;v+=1)s.deps[v].rv=rt;if(t!==null)for(const v of t)v.rv=rt;ce!==null&&(r===null?r=ce:r.push(...ce))}return(e.f&Ue)!==0&&(e.f^=Ue),_}catch(v){return wr(v)}finally{e.f^=En,ee=t,ie=n,ce=r,C=s,_e=i,xt(l),ke=a,ct=f}}function hs(e,t){let n=t.reactions;if(n!==null){var r=li.call(n,e);if(r!==-1){var s=n.length-1;s===0?n=t.reactions=null:(n[r]=n[s],n.pop())}}if(n===null&&(t.f&Y)!==0&&(ee===null||!Tt.call(ee,t))){var i=t;(i.f&he)!==0&&(i.f^=he,i.f&=~vt),zn(i),Qi(i),qt(i,0)}}function qt(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)hs(e,n[r])}function At(e){var t=e.f;if((t&Ke)===0){F(e,V);var n=N,r=en;N=e,en=!0;try{(t&(Fe|hr))!==0?cs(e):Wn(e),zr(e);var s=Gr(e);e.teardown=typeof s=="function"?s:null,e.wv=Yr;var i;bn&&Ni&&(e.f&W)!==0&&e.deps}finally{en=r,N=n}}}async function _s(){await Promise.resolve(),Ii()}function d(e){var t=e.f,n=(t&Y)!==0;if(C!==null&&!ke){var r=N!==null&&(N.f&Ke)!==0;if(!r&&(_e===null||!Tt.call(_e,e))){var s=C.deps;if((C.f&En)!==0)e.rv<rt&&(e.rv=rt,ee===null&&s!==null&&s[ie]===e?ie++:ee===null?ee=[e]:ee.push(e));else{(C.deps??(C.deps=[])).push(e);var i=e.reactions;i===null?e.reactions=[C]:Tt.call(i,C)||i.push(C)}}}if(_t&&Je.has(e))return Je.get(e);if(n){var l=e;if(_t){var a=l.v;return((l.f&V)===0&&l.reactions!==null||Zr(l))&&(a=Hn(l)),Je.set(l,a),a}var f=(l.f&he)===0&&!ke&&C!==null&&(en||(C.f&he)!==0),o=(l.f&dt)===0;Yt(l)&&(f&&(l.f|=he),Dr(l)),f&&!o&&(Ar(l),Xr(l))}if(U!=null&&U.has(e))return U.get(e);if((e.f&Ue)!==0)throw e.v;return e.v}function Xr(e){if(e.f|=he,e.deps!==null)for(const t of e.deps)(t.reactions??(t.reactions=[])).push(e),(t.f&Y)!==0&&(t.f&he)===0&&(Ar(t),Xr(t))}function Zr(e){if(e.v===K)return!0;if(e.deps===null)return!1;for(const t of e.deps)if(Je.has(t)||(t.f&Y)!==0&&Zr(t))return!0;return!1}function Qr(e){var t=ke;try{return ke=!0,e()}finally{ke=t}}const ps=["touchstart","touchmove"];function gs(e){return ps.includes(e)}const it=Symbol("events"),$r=new Set,jn=new Set;function ms(e,t,n,r={}){function s(i){if(r.capture||Nn.call(t,i),!i.cancelBubble)return dn(()=>n==null?void 0:n.call(this,i))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?Ye(()=>{t.addEventListener(e,s,r)}):t.addEventListener(e,s,r),s}function Le(e,t,n,r,s){var i={capture:r,passive:s},l=ms(e,t,n,i);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&Kn(()=>{t.removeEventListener(e,l,i)})}function ne(e,t,n){(t[it]??(t[it]={}))[e]=n}function Ot(e){for(var t=0;t<e.length;t++)$r.add(e[t]);for(var n of jn)n(e)}let ar=null;function Nn(e){var v,y;var t=this,n=t.ownerDocument,r=e.type,s=((v=e.composedPath)==null?void 0:v.call(e))||[],i=s[0]||e.target;ar=e;var l=0,a=ar===e&&e[it];if(a){var f=s.indexOf(a);if(f!==-1&&(t===document||t===window)){e[it]=t;return}var o=s.indexOf(t);if(o===-1)return;f<=o&&(l=f)}if(i=s[l]||e.target,i!==t){ai(e,"currentTarget",{configurable:!0,get(){return i||n}});var h=C,_=N;ge(null),je(null);try{for(var p,b=[];i!==null;){var c=i.assignedSlot||i.parentNode||i.host||null;try{var m=(y=i[it])==null?void 0:y[r];m!=null&&(!i.disabled||e.target===i)&&m.call(i,e)}catch(k){p?b.push(k):p=k}if(e.cancelBubble||c===t||c===null)break;i=c}if(p){for(let k of b)queueMicrotask(()=>{throw k});throw p}}finally{e[it]=t,delete e.currentTarget,ge(h),je(_)}}}var cr;const mn=((cr=globalThis==null?void 0:globalThis.window)==null?void 0:cr.trustedTypes)&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function ys(e){return(mn==null?void 0:mn.createHTML(e))??e}function ws(e){var t=is("template");return t.innerHTML=ys(e.replaceAll("<!>","<!---->")),t.content}function Rn(e,t){var n=N;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function L(e,t){var n=(t&Ci)!==0,r=(t&Di)!==0,s,i=!e.startsWith("<!>");return()=>{s===void 0&&(s=ws(i?e:"<!>"+e),n||(s=sn(s)));var l=r||jr?document.importNode(s,!0):s.cloneNode(!0);if(n){var a=sn(l),f=l.lastChild;Rn(a,f)}else Rn(l,l);return l}}function ei(){var e=document.createDocumentFragment(),t=document.createComment(""),n=Ge();return e.append(t,n),Rn(t,n),e}function I(e,t){e!==null&&e.before(t)}function X(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 bs(e,t){return ks(e,t)}const Zt=new Map;function ks(e,{target:t,anchor:n,props:r={},events:s,context:i,intro:l=!0,transformError:a}){ns();var f=void 0,o=fs(()=>{var h=n??t.appendChild(Ge());zi(h,{pending:()=>{}},b=>{Xe({});var c=pe;i&&(c.c=i),s&&(r.$$events=s),f=e(b,r)||{},Ze()},a);var _=new Set,p=b=>{for(var c=0;c<b.length;c++){var m=b[c];if(!_.has(m)){_.add(m);var v=gs(m);for(const P of[t,document]){var y=Zt.get(P);y===void 0&&(y=new Map,Zt.set(P,y));var k=y.get(m);k===void 0?(P.addEventListener(m,Nn,{passive:v}),y.set(m,1)):y.set(m,k+1)}}}};return p(on($r)),jn.add(p),()=>{var v;for(var b of _)for(const y of[t,document]){var c=Zt.get(y),m=c.get(b);--m==0?(y.removeEventListener(b,Nn),c.delete(b),c.size===0&&Zt.delete(y)):c.set(b,m)}jn.delete(p),h!==n&&((v=h.parentNode)==null||v.removeChild(h))}});return Es.set(f,o),f}let Es=new WeakMap;var we,Oe,le,ot,Ht,Vt,fn;class Ts{constructor(t,n=!0){De(this,"anchor");D(this,we,new Map);D(this,Oe,new Map);D(this,le,new Map);D(this,ot,new Set);D(this,Ht,!0);D(this,Vt,()=>{var t=T;if(u(this,we).has(t)){var n=u(this,we).get(t),r=u(this,Oe).get(n);if(r)Jn(r),u(this,ot).delete(n);else{var s=u(this,le).get(n);s&&(u(this,Oe).set(n,s.effect),u(this,le).delete(n),s.fragment.lastChild.remove(),this.anchor.before(s.fragment),r=s.effect)}for(const[i,l]of u(this,we)){if(u(this,we).delete(i),i===t)break;const a=u(this,le).get(l);a&&(te(a.effect),u(this,le).delete(l))}for(const[i,l]of u(this,Oe)){if(i===n||u(this,ot).has(i))continue;const a=()=>{if(Array.from(u(this,we).values()).includes(i)){var o=document.createDocumentFragment();Kr(l,o),o.append(Ge()),u(this,le).set(i,{effect:l,fragment:o})}else te(l);u(this,ot).delete(i),u(this,Oe).delete(i)};u(this,Ht)||!r?(u(this,ot).add(i),ut(l,a,!1)):a()}}});D(this,fn,t=>{u(this,we).delete(t);const n=Array.from(u(this,we).values());for(const[r,s]of u(this,le))n.includes(r)||(te(s.effect),u(this,le).delete(r))});this.anchor=t,S(this,Ht,n)}ensure(t,n){var r=T,s=Mr();if(n&&!u(this,Oe).has(t)&&!u(this,le).has(t))if(s){var i=document.createDocumentFragment(),l=Ge();i.append(l),u(this,le).set(t,{effect:ve(()=>n(l)),fragment:i})}else u(this,Oe).set(t,ve(()=>n(this.anchor)));if(u(this,we).set(r,t),s){for(const[a,f]of u(this,Oe))a===t?r.unskip_effect(f):r.skip_effect(f);for(const[a,f]of u(this,le))a===t?r.unskip_effect(f.effect):r.skip_effect(f.effect);r.oncommit(u(this,Vt)),r.ondiscard(u(this,fn))}else u(this,Vt).call(this)}}we=new WeakMap,Oe=new WeakMap,le=new WeakMap,ot=new WeakMap,Ht=new WeakMap,Vt=new WeakMap,fn=new WeakMap;function Te(e,t,n=!1){var r=new Ts(e),s=n?St:0;function i(l,a){r.ensure(l,a)}Yn(()=>{var l=!1;t((a,f=0)=>{l=!0,i(f,a)}),l||i(!1,null)},s)}function Gn(e,t){return t}function Ss(e,t,n){for(var r=[],s=t.length,i,l=t.length,a=0;a<s;a++){let _=t[a];ut(_,()=>{if(i){if(i.pending.delete(_),i.done.add(_),i.pending.size===0){var p=e.outrogroups;Mn(on(i.done)),p.delete(i),p.size===0&&(e.outrogroups=null)}}else l-=1},!1)}if(l===0){var f=r.length===0&&n!==null;if(f){var o=n,h=o.parentNode;rs(h),h.append(o),e.items.clear()}Mn(t,!f)}else i={pending:new Set(t),done:new Set},(e.outrogroups??(e.outrogroups=new Set)).add(i)}function Mn(e,t=!0){for(var n=0;n<e.length;n++)te(e[n],t)}var fr;function Wt(e,t,n,r,s,i=null){var l=e,a=new Map;{var f=e;l=f.appendChild(Ge())}var o=null,h=Gi(()=>{var v=n();return Fn(v)?v:v==null?[]:on(v)}),_,p=!0;function b(){m.fallback=o,xs(m,_,l,t,r),o!==null&&(_.length===0?(o.f&He)===0?Jn(o):(o.f^=He,Nt(o,null,l)):ut(o,()=>{o=null}))}var c=Yn(()=>{_=d(h);for(var v=_.length,y=new Set,k=T,P=Mr(),E=0;E<v;E+=1){var R=_[E],Z=r(R,E),z=p?null:a.get(Z);z?(z.v&&Dt(z.v,R),z.i&&Dt(z.i,E),P&&k.unskip_effect(z.e)):(z=Cs(a,p?l:fr??(fr=Ge()),R,Z,E,s,t,n),p||(z.e.f|=He),a.set(Z,z)),y.add(Z)}if(v===0&&i&&!o&&(p?o=ve(()=>i(l)):(o=ve(()=>i(fr??(fr=Ge()))),o.f|=He)),v>y.size&&_i(),!p)if(P){for(const[oe,G]of a)y.has(oe)||k.skip_effect(G.e);k.oncommit(b),k.ondiscard(()=>{})}else b();d(h)}),m={effect:c,items:a,outrogroups:null,fallback:o};p=!1}function jt(e){for(;e!==null&&(e.f&xe)===0;)e=e.next;return e}function xs(e,t,n,r,s){var oe;var i=t.length,l=e.items,a=jt(e.effect.first),f,o=null,h=[],_=[],p,b,c,m;for(m=0;m<i;m+=1){if(p=t[m],b=s(p,m),c=l.get(b).e,e.outrogroups!==null)for(const G of e.outrogroups)G.pending.delete(c),G.done.delete(c);if((c.f&He)!==0)if(c.f^=He,c===a)Nt(c,null,n);else{var v=o?o.next:a;c===e.effect.last&&(e.effect.last=c.prev),c.prev&&(c.prev.next=c.next),c.next&&(c.next.prev=c.prev),ze(e,o,c),ze(e,c,v),Nt(c,v,n),o=c,h=[],_=[],a=jt(o.next);continue}if((c.f&ae)!==0&&Jn(c),c!==a){if(f!==void 0&&f.has(c)){if(h.length<_.length){var y=_[0],k;o=y.prev;var P=h[0],E=h[h.length-1];for(k=0;k<h.length;k+=1)Nt(h[k],y,n);for(k=0;k<_.length;k+=1)f.delete(_[k]);ze(e,P.prev,E.next),ze(e,o,P),ze(e,E,y),a=y,o=E,m-=1,h=[],_=[]}else f.delete(c),Nt(c,a,n),ze(e,c.prev,c.next),ze(e,c,o===null?e.effect.first:o.next),ze(e,o,c),o=c;continue}for(h=[],_=[];a!==null&&a!==c;)(f??(f=new Set)).add(a),_.push(a),a=jt(a.next);if(a===null)continue}(c.f&He)===0&&h.push(c),o=c,a=jt(c.next)}if(e.outrogroups!==null){for(const G of e.outrogroups)G.pending.size===0&&(Mn(on(G.done)),(oe=e.outrogroups)==null||oe.delete(G));e.outrogroups.size===0&&(e.outrogroups=null)}if(a!==null||f!==void 0){var R=[];if(f!==void 0)for(c of f)(c.f&ae)===0&&R.push(c);for(;a!==null;)(a.f&ae)===0&&a!==e.fallback&&R.push(a),a=jt(a.next);var Z=R.length;if(Z>0){var z=i===0?n:null;Ss(e,R,z)}}}function Cs(e,t,n,r,s,i,l,a){var f=(l&Ti)!==0?(l&xi)===0?$i(n,!1,!1):ht(n):null,o=(l&Si)!==0?ht(s):null;return{v:f,i:o,e:ve(()=>(i(t,f??n,o??s,a),()=>{e.delete(r)}))}}function Nt(e,t,n){if(e.nodes)for(var r=e.nodes.start,s=e.nodes.end,i=t&&(t.f&He)===0?t.nodes.start:n;r!==null;){var l=Ut(r);if(i.before(r),r===s)return;r=l}}function ze(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}const or=[...`
2
- \r\f \v\uFEFF`];function Ds(e,t,n){var r=e==null?"":""+e;if(t&&(r=r?r+" "+t:t),n){for(var s of Object.keys(n))if(n[s])r=r?r+" "+s:s;else if(r.length)for(var i=s.length,l=0;(l=r.indexOf(s,l))>=0;){var a=l+i;(l===0||or.includes(r[l-1]))&&(a===r.length||or.includes(r[a]))?r=(l===0?"":r.substring(0,l))+r.substring(a+1):l=a}}return r===""?null:r}function In(e,t,n,r,s,i){var l=e.__className;if(l!==n||l===void 0){var a=Ds(n,r,i);a==null?e.removeAttribute("class"):e.className=a,e.__className=n}else if(i&&s!==i)for(var f in i){var o=!!i[f];(s==null||o!==!!s[f])&&e.classList.toggle(f,o)}return i}function Xn(e,t,n=!1){if(e.multiple){if(t==null)return;if(!Fn(t))return Pi();for(var r of e.options)r.selected=t.includes(Ft(r));return}for(r of e.options){var s=Ft(r);if(ts(s,t)){r.selected=!0;return}}(!n||t!==void 0)&&(e.selectedIndex=-1)}function ti(e){var t=new MutationObserver(()=>{Xn(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),Kn(()=>{t.disconnect()})}function ur(e,t,n=t){var r=new WeakSet,s=!0;Lr(e,"change",i=>{var l=i?"[selected]":":checked",a;if(e.multiple)a=[].map.call(e.querySelectorAll(l),Ft);else{var f=e.querySelector(l)??e.querySelector("option:not([disabled])");a=f&&Ft(f)}n(a),T!==null&&r.add(T)}),os(()=>{var i=t();if(e===document.activeElement){var l=nn??T;if(r.has(l))return}if(Xn(e,i,s),s&&i===void 0){var a=e.querySelector(":checked");a!==null&&(i=Ft(a),n(i))}e.__value=i,s=!1}),ti(e)}function Ft(e){return"__value"in e?e.__value:e.value}function tn(e,t,n=t){var r=new WeakSet;Lr(e,"input",async s=>{var i=s?e.defaultValue:e.value;if(i=yn(e)?wn(i):i,n(i),T!==null&&r.add(T),await _s(),i!==(i=t())){var l=e.selectionStart,a=e.selectionEnd,f=e.value.length;if(e.value=i??"",a!==null){var o=e.value.length;l===a&&a===f&&o>f?(e.selectionStart=o,e.selectionEnd=o):(e.selectionStart=l,e.selectionEnd=Math.min(a,o))}}}),Qr(t)==null&&e.value&&(n(yn(e)?wn(e.value):e.value),T!==null&&r.add(T)),qr(()=>{var s=t();if(e===document.activeElement){var i=nn??T;if(r.has(i))return}yn(e)&&s===wn(e.value)||e.type==="date"&&!s&&!e.value||s!==e.value&&(e.value=s??"")})}function yn(e){var t=e.type;return t==="number"||t==="range"}function wn(e){return e===""?null:+e}function ni(e,t,n,r){var s=r,i=!0,l=()=>(i&&(i=!1,s=r),s),a;a=e[t],a===void 0&&r!==void 0&&(a=l());var f;return f=()=>{var o=e[t];return o===void 0?l():(i=!0,o)},f}const As="5";var dr;typeof window<"u"&&((dr=window.__svelte??(window.__svelte={})).v??(dr.v=new Set)).add(As);async function Qe(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 $e={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"})};var Ps=L('<option class="svelte-1kanzy0"> </option>'),Os=L('<input class="rename-input svelte-1kanzy0" type="text"/>'),js=L('<button class="rename-btn svelte-1kanzy0" title="Rename project">&#9998;</button>'),Ns=L('<header class="toolbar svelte-1kanzy0"><div class="brand svelte-1kanzy0">mindpm</div> <div class="project-area svelte-1kanzy0"><select class="svelte-1kanzy0"></select> <!></div></header>');function Rs(e,t){Xe(t,!0);let n=j(!1),r=j("");const s=Ct(()=>t.projects.find(c=>c.id===t.selectedId));function i(){d(s)&&(g(r,d(s).name,!0),g(n,!0))}function l(){if(!d(s)||!d(n))return;const c=d(r).trim();c&&c!==d(s).name&&t.onRenamed(d(s).id,c),g(n,!1)}function a(c){c.key==="Enter"&&l(),c.key==="Escape"&&g(n,!1)}var f=Ns(),o=A(x(f),2),h=x(o);Wt(h,21,()=>t.projects,Gn,(c,m)=>{var v=Ps(),y=x(v),k={};Ee(()=>{X(y,d(m).name),k!==(k=d(m).id)&&(v.value=(v.__value=d(m).id)??"")}),I(c,v)});var _;ti(h);var p=A(h,2);{var b=c=>{var m=ei(),v=ln(m);{var y=P=>{var E=Os();Ir(E),Le("blur",E,l),ne("keydown",E,a),tn(E,()=>d(r),R=>g(r,R)),I(P,E)},k=P=>{var E=js();ne("click",E,i),I(P,E)};Te(v,P=>{d(n)?P(y):P(k,!1)})}I(c,m)};Te(p,c=>{d(s)&&c(b)})}Ee(()=>{_!==(_=t.selectedId??"")&&(h.value=(h.__value=t.selectedId??"")??"",Xn(h,t.selectedId??""))}),ne("change",h,c=>t.onSelect(c.target.value)),I(e,f),Ze()}Ot(["change","keydown","click"]);const Ms=[{status:"todo",label:"Todo"},{status:"in_progress",label:"In Progress"},{status:"blocked",label:"Blocked"},{status:"done",label:"Done"},{status:"cancelled",label:"Cancelled"}],Is=["critical","high","medium","low"];var Ls=L('<div class="card-desc svelte-35ep21"> </div>'),Fs=L('<span class="tag svelte-35ep21"> </span>'),qs=L('<div class="card-tags svelte-35ep21"></div>'),zs=L('<div draggable="true" role="button" tabindex="0"><div class="card-header svelte-35ep21"><span> </span> <button class="delete-btn svelte-35ep21" title="Delete task">&times;</button></div> <div class="card-title svelte-35ep21"> </div> <!> <!></div>');function Bs(e,t){Xe(t,!0);let n=j(!1);function r(E){if(!E)return[];try{return JSON.parse(E)}catch{return[]}}const s=Ct(()=>r(t.task.tags)),i=Ct(()=>`priority-${t.task.priority}`);function l(E){g(n,!0),t.onDragStart(E,t.task)}function a(){g(n,!1)}var f=zs();let o;var h=x(f),_=x(h),p=x(_),b=A(_,2),c=A(h,2),m=x(c),v=A(c,2);{var y=E=>{var R=Ls(),Z=x(R);Ee(()=>X(Z,t.task.description)),I(E,R)};Te(v,E=>{t.task.description&&E(y)})}var k=A(v,2);{var P=E=>{var R=qs();Wt(R,21,()=>d(s),Gn,(Z,z)=>{var oe=Fs(),G=x(oe);Ee(()=>X(G,d(z))),I(Z,oe)}),I(E,R)};Te(k,E=>{d(s).length>0&&E(P)})}Ee(()=>{o=In(f,1,"card svelte-35ep21",null,o,{dragging:d(n)}),In(_,1,`priority-badge ${d(i)??""}`,"svelte-35ep21"),X(p,t.task.priority),X(m,t.task.title)}),Le("dragstart",f,l),Le("dragend",f,a),ne("click",f,()=>t.onEdit(t.task)),ne("keydown",f,E=>{E.key==="Enter"&&t.onEdit(t.task)}),ne("click",b,E=>{E.stopPropagation(),t.onDelete(t.task)}),I(e,f),Ze()}Ot(["click","keydown"]);var Hs=L('<button class="add-btn svelte-zswfgn" title="Add task">+</button>'),Vs=L('<div role="list"><div class="column-header svelte-zswfgn"><h3 class="svelte-zswfgn"> <span class="count svelte-zswfgn"> </span></h3> <!></div> <div class="card-list svelte-zswfgn"></div></div>');function Ks(e,t){Xe(t,!0);let n=j(!1);function r(v){v.preventDefault(),v.dataTransfer&&(v.dataTransfer.dropEffect="move"),g(n,!0)}function s(){g(n,!1)}function i(v){v.preventDefault(),g(n,!1),t.onDrop(t.status)}var l=Vs();let a;var f=x(l),o=x(f),h=x(o),_=A(h),p=x(_),b=A(o,2);{var c=v=>{var y=Hs();ne("click",y,()=>t.onAddTask(t.status)),I(v,y)};Te(b,v=>{t.status==="todo"&&v(c)})}var m=A(f,2);Wt(m,21,()=>t.tasks,v=>v.id,(v,y)=>{Bs(v,{get task(){return d(y)},get onEdit(){return t.onEdit},get onDelete(){return t.onDelete},get onDragStart(){return t.onDragStart}})}),Ee(()=>{a=In(l,1,"column svelte-zswfgn",null,a,{"drag-over":d(n)}),X(h,`${t.label??""} `),X(p,t.tasks.length)}),Le("dragover",l,r),Le("dragleave",l,s),Le("drop",l,i),I(e,l),Ze()}Ot(["click"]);var Us=L("<option> </option>"),Ys=L('<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>Done</option><option>Cancelled</option></select></div>'),Ws=L('<div class="modal-backdrop svelte-1gmf2hi"><div class="modal svelte-1gmf2hi"><div class="modal-header svelte-1gmf2hi"><h2 class="svelte-1gmf2hi"> </h2> <button class="close-btn svelte-1gmf2hi">&times;</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 Js(e,t){Xe(t,!0);let n=ni(t,"defaultStatus",3,"todo"),r=j(""),s=j(""),i=j("medium"),l=j("todo"),a=j("");Un(()=>{var O,B,ue,Ce,Ne;if(g(r,((O=t.task)==null?void 0:O.title)??"",!0),g(s,((B=t.task)==null?void 0:B.description)??"",!0),g(i,((ue=t.task)==null?void 0:ue.priority)??"medium",!0),g(l,((Ce=t.task)==null?void 0:Ce.status)??n(),!0),(Ne=t.task)!=null&&Ne.tags)try{g(a,JSON.parse(t.task.tags).join(", "),!0)}catch{g(a,"")}else g(a,"")});const f=Ct(()=>t.task!==null);function o(O){O.preventDefault();const B=d(r).trim();if(!B)return;const ue=d(a).split(",").map(Ce=>Ce.trim()).filter(Boolean);t.onSave({title:B,description:d(s).trim(),priority:d(i),...d(f)?{status:d(l)}:{},tags:ue})}function h(O){O.target.classList.contains("modal-backdrop")&&t.onClose()}function _(O){O.key==="Escape"&&t.onClose()}var p=Ws();Le("keydown",rn,_);var b=x(p),c=x(b),m=x(c),v=x(m),y=A(m,2),k=A(c,2),P=x(k),E=A(x(P),2);Ir(E);var R=A(P,2),Z=A(x(R),2),z=A(R,2),oe=x(z),G=A(x(oe),2);Wt(G,21,()=>Is,Gn,(O,B)=>{var ue=Us(),Ce=x(ue),Ne={};Ee(()=>{X(Ce,d(B)),Ne!==(Ne=d(B))&&(ue.value=(ue.__value=d(B))??"")}),I(O,ue)});var Jt=A(oe,2);{var vn=O=>{var B=Ys(),ue=A(x(B),2),Ce=x(ue);Ce.value=Ce.__value="todo";var Ne=A(Ce);Ne.value=Ne.__value="in_progress";var _n=A(Ne);_n.value=_n.__value="blocked";var pn=A(_n);pn.value=pn.__value="done";var Qn=A(pn);Qn.value=Qn.__value="cancelled",ur(ue,()=>d(l),ri=>g(l,ri)),I(O,B)};Te(Jt,O=>{d(f)&&O(vn)})}var Gt=A(z,2),hn=A(x(Gt),2),w=A(Gt,2),M=x(w),re=A(M,2),J=x(re);Ee(()=>{X(v,d(f)?"Edit Task":"New Task"),X(J,d(f)?"Save":"Create")}),ne("click",p,h),ne("click",y,function(...O){var B;(B=t.onClose)==null||B.apply(this,O)}),Le("submit",k,o),tn(E,()=>d(r),O=>g(r,O)),tn(Z,()=>d(s),O=>g(s,O)),ur(G,()=>d(i),O=>g(i,O)),tn(hn,()=>d(a),O=>g(a,O)),ne("click",M,function(...O){var B;(B=t.onClose)==null||B.apply(this,O)}),I(e,p),Ze()}Ot(["click"]);var Gs=L('<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 Xs(e,t){Xe(t,!0);let n=ni(t,"confirmLabel",3,"Delete");function r(m){m.target.classList.contains("modal-backdrop")&&t.onCancel()}function s(m){m.key==="Escape"&&t.onCancel()}var i=Gs();Le("keydown",rn,s);var l=x(i),a=x(l),f=x(a),o=A(a,2),h=x(o),_=A(o,2),p=x(_),b=A(p,2),c=x(b);Ee(()=>{X(f,t.title),X(h,t.message),X(c,n())}),ne("click",i,r),ne("click",p,function(...m){var v;(v=t.onCancel)==null||v.apply(this,m)}),ne("click",b,function(...m){var v;(v=t.onConfirm)==null||v.apply(this,m)}),I(e,i),Ze()}Ot(["click"]);var Zs=L('<div class="board-message svelte-x7v2jt">Loading tasks...</div>'),Qs=L('<div class="board-message error svelte-x7v2jt"> <button class="svelte-x7v2jt">Retry</button></div>'),$s=L('<div class="board svelte-x7v2jt"></div>'),el=L('<div class="board-wrapper svelte-x7v2jt"><!></div> <!> <!>',1);function tl(e,t){Xe(t,!0);let n=j(nt([])),r=j(!0),s=j(null),i=j(!1),l=j(null),a=j("todo"),f=j(!1),o=j(null),h=j(null);const _=Ct(()=>Ms.map(w=>({...w,tasks:d(n).filter(M=>M.status===w.status)})));async function p(){g(r,!0),g(s,null);try{g(n,await $e.getTasks(t.project.id),!0)}catch(w){g(s,w.message,!0)}finally{g(r,!1)}}Un(()=>{t.project.id,p()});function b(w,M){g(h,M,!0),w.dataTransfer&&(w.dataTransfer.effectAllowed="move",w.dataTransfer.setData("text/plain",M.id))}async function c(w){if(!d(h)||d(h).status===w){g(h,null);return}const M=d(h),re=M.status;g(h,null);const J=d(n).findIndex(O=>O.id===M.id);J!==-1&&(d(n)[J]={...d(n)[J],status:w});try{await $e.updateTask(M.id,{status:w})}catch(O){J!==-1&&(d(n)[J]={...d(n)[J],status:re}),g(s,O.message,!0)}}function m(w){g(l,null),g(a,w,!0),g(i,!0)}function v(w){g(l,w,!0),g(i,!0)}async function y(w){try{if(d(l)){const M=await $e.updateTask(d(l).id,{title:w.title,description:w.description||null,priority:w.priority,status:w.status,tags:w.tags.length>0?w.tags:null}),re=d(n).findIndex(J=>J.id===d(l).id);re!==-1&&(d(n)[re]=M)}else{const M=await $e.createTask(t.project.id,{title:w.title,description:w.description||void 0,priority:w.priority,tags:w.tags.length>0?w.tags:void 0});g(n,[M,...d(n)],!0)}g(i,!1),g(l,null)}catch(M){g(s,M.message,!0)}}function k(w){g(o,w,!0),g(f,!0)}async function P(){if(d(o))try{await $e.deleteTask(d(o).id),g(n,d(n).filter(w=>w.id!==d(o).id&&w.parent_task_id!==d(o).id),!0),g(f,!1),g(o,null)}catch(w){g(s,w.message,!0)}}var E=el(),R=ln(E),Z=x(R);{var z=w=>{var M=Zs();I(w,M)},oe=w=>{var M=Qs(),re=x(M),J=A(re);Ee(()=>X(re,`${d(s)??""} `)),ne("click",J,()=>{g(s,null),p()}),I(w,M)},G=w=>{var M=$s();Wt(M,21,()=>d(_),re=>re.status,(re,J)=>{Ks(re,{get status(){return d(J).status},get label(){return d(J).label},get tasks(){return d(J).tasks},onEdit:v,onDelete:k,onDragStart:b,onDrop:c,onAddTask:m})}),I(w,M)};Te(Z,w=>{d(r)?w(z):d(s)?w(oe,1):w(G,!1)})}var Jt=A(R,2);{var vn=w=>{Js(w,{get task(){return d(l)},get defaultStatus(){return d(a)},onSave:y,onClose:()=>{g(i,!1),g(l,null)}})};Te(Jt,w=>{d(i)&&w(vn)})}var Gt=A(Jt,2);{var hn=w=>{Xs(w,{title:"Delete Task",get message(){return`Are you sure you want to delete "${d(o).title??""}"? This cannot be undone.`},onConfirm:P,onCancel:()=>{g(f,!1),g(o,null)}})};Te(Gt,w=>{d(f)&&d(o)&&w(hn)})}I(e,E),Ze()}Ot(["click"]);var nl=L('<div class="loading svelte-1n46o8q">Loading projects...</div>'),rl=L('<div class="error svelte-1n46o8q"> </div>'),il=L('<div class="empty svelte-1n46o8q"><h2 class="svelte-1n46o8q">No projects yet</h2> <p class="svelte-1n46o8q">Create a project using mindpm MCP tools to get started.</p></div>'),sl=L("<!> <!>",1);function ll(e,t){Xe(t,!0);let n=j(nt([])),r=j(null),s=j(!0),i=j(null);const l=Ct(()=>d(n).find(v=>v.id===d(r))??null);async function a(){try{if(g(n,await $e.getProjects(),!0),d(n).length>0&&!d(r)){const v=new URLSearchParams(window.location.search).get("project"),y=v?d(n).find(k=>k.id===v||k.name===v):null;g(r,y?y.id:d(n)[0].id,!0)}}catch(v){g(i,v.message,!0)}finally{g(s,!1)}}function f(v){g(r,v,!0)}async function o(v,y){try{await $e.updateProject(v,{name:y});const k=d(n).findIndex(P=>P.id===v);k!==-1&&(d(n)[k]={...d(n)[k],name:y})}catch(k){g(i,k.message,!0)}}Un(()=>{a()});var h=ei(),_=ln(h);{var p=v=>{var y=nl();I(v,y)},b=v=>{var y=rl(),k=x(y);Ee(()=>X(k,d(i))),I(v,y)},c=v=>{var y=il();I(v,y)},m=v=>{var y=sl(),k=ln(y);Rs(k,{get projects(){return d(n)},get selectedId(){return d(r)},onSelect:f,onRenamed:o});var P=A(k,2);{var E=R=>{tl(R,{get project(){return d(l)}})};Te(P,R=>{d(l)&&R(E)})}I(v,y)};Te(_,v=>{d(s)?v(p):d(i)?v(b,1):d(n).length===0?v(c,2):v(m,!1)})}I(e,h),Ze()}bs(ll,{target:document.getElementById("app")});
@@ -1 +0,0 @@
1
- .toolbar.svelte-1kanzy0{display:flex;align-items:center;gap:16px;padding:10px 20px;background:var(--primary);color:#fff;flex-shrink:0}.brand.svelte-1kanzy0{font-weight:700;font-size:1.2rem;letter-spacing:-.5px}.project-area.svelte-1kanzy0{display:flex;align-items:center;gap:8px}select.svelte-1kanzy0{padding:6px 10px;border-radius:var(--radius-sm);border:none;background:#fff3;color:#fff;font-weight:600;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}select.svelte-1kanzy0 option:where(.svelte-1kanzy0){color:var(--text);background:#fff}.rename-btn.svelte-1kanzy0{background:#fff3;border:none;color:#fff;border-radius:var(--radius-sm);padding:4px 8px;font-size:.9rem}.rename-btn.svelte-1kanzy0:hover{background:#ffffff59}.rename-input.svelte-1kanzy0{padding:4px 8px;border-radius:var(--radius-sm);border:2px solid white;background:#ffffffe6;color:var(--text);font-weight:600;width:200px}.card.svelte-35ep21{background:var(--surface);border-radius:var(--radius);padding:10px;box-shadow:var(--card-shadow);cursor:grab;transition:box-shadow .15s}.card.svelte-35ep21:hover{box-shadow:var(--card-shadow-hover)}.card.dragging.svelte-35ep21{opacity:.5}.card-header.svelte-35ep21{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.priority-badge.svelte-35ep21{font-size:.65rem;font-weight:700;text-transform:uppercase;padding:2px 6px;border-radius:3px;color:#fff;letter-spacing:.5px}.priority-critical.svelte-35ep21{background:var(--priority-critical)}.priority-high.svelte-35ep21{background:var(--priority-high);color:#333}.priority-medium.svelte-35ep21{background:var(--priority-medium)}.priority-low.svelte-35ep21{background:var(--priority-low);color:#333}.delete-btn.svelte-35ep21{background:none;border:none;color:var(--text-muted);font-size:1.2rem;line-height:1;padding:0 4px;opacity:0;transition:opacity .15s}.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:.9rem;font-weight:500;word-break:break-word}.card-desc.svelte-35ep21{font-size:.8rem;color:var(--text-muted);margin-top:4px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.card-tags.svelte-35ep21{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.tag.svelte-35ep21{font-size:.7rem;background:var(--bg);color:var(--text-muted);padding:2px 6px;border-radius:3px}.column.svelte-zswfgn{background:var(--column-bg);border-radius:var(--radius);width:280px;min-width:280px;max-height:calc(100vh - 70px);display:flex;flex-direction:column;transition:background-color .15s}.column.drag-over.svelte-zswfgn{background:#d5dbe3}.column-header.svelte-zswfgn{padding:10px 12px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.column-header.svelte-zswfgn h3:where(.svelte-zswfgn){font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.count.svelte-zswfgn{font-weight:400;color:var(--text-muted);margin-left:4px}.add-btn.svelte-zswfgn{background:#00000014;border:none;border-radius:var(--radius-sm);width:28px;height:28px;font-size:1.2rem;color:var(--text-muted);display:flex;align-items:center;justify-content:center}.add-btn.svelte-zswfgn:hover{background:#00000026;color:var(--text)}.card-list.svelte-zswfgn{padding:0 8px 8px;display:flex;flex-direction:column;gap:8px;overflow-y:auto;flex:1}.modal-backdrop.svelte-1gmf2hi{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:100}.modal.svelte-1gmf2hi{background:var(--surface);border-radius:var(--radius);width:460px;max-width:95vw;max-height:90vh;overflow-y:auto;padding:24px}.modal-header.svelte-1gmf2hi{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modal-header.svelte-1gmf2hi h2:where(.svelte-1gmf2hi){font-size:1.2rem;font-weight:600}.close-btn.svelte-1gmf2hi{background:none;border:none;font-size:1.5rem;color:var(--text-muted);padding:0 4px}.close-btn.svelte-1gmf2hi:hover{color:var(--text)}.field.svelte-1gmf2hi{margin-bottom:16px;flex:1}label.svelte-1gmf2hi{display:block;font-size:.8rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;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:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);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 #0079bf33}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:20px}.btn-cancel.svelte-1gmf2hi,.btn-save.svelte-1gmf2hi{padding:8px 16px;border-radius:var(--radius-sm);font-weight:600;border:none}.btn-cancel.svelte-1gmf2hi{background:var(--bg);color:var(--text-muted)}.btn-cancel.svelte-1gmf2hi:hover{background:var(--border)}.btn-save.svelte-1gmf2hi{background:var(--primary);color:#fff}.btn-save.svelte-1gmf2hi:hover{background:var(--primary-hover)}.modal-backdrop.svelte-1efofyg{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:200}.dialog.svelte-1efofyg{background:var(--surface);border-radius:var(--radius);padding:24px;width:360px;max-width:90vw}h3.svelte-1efofyg{font-size:1.1rem;margin-bottom:8px}p.svelte-1efofyg{color:var(--text-muted);font-size:.9rem;margin-bottom:20px}.actions.svelte-1efofyg{display:flex;justify-content:flex-end;gap:8px}.btn-cancel.svelte-1efofyg,.btn-confirm.svelte-1efofyg{padding:8px 16px;border-radius:var(--radius-sm);font-weight:600;border:none}.btn-cancel.svelte-1efofyg{background:var(--bg);color:var(--text-muted)}.btn-cancel.svelte-1efofyg:hover{background:var(--border)}.btn-confirm.svelte-1efofyg{background:var(--danger);color:#fff}.btn-confirm.svelte-1efofyg:hover{background:var(--danger-hover)}.board-wrapper.svelte-x7v2jt{flex:1;overflow-x:auto;padding:16px}.board.svelte-x7v2jt{display:flex;gap:12px;align-items:flex-start;min-height:calc(100vh - 100px)}.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:6px 16px;background:var(--primary);color:#fff;border:none;border-radius:var(--radius-sm);font-weight:600}.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}.error.svelte-1n46o8q{color:var(--danger)}.empty.svelte-1n46o8q h2:where(.svelte-1n46o8q){font-size:1.5rem;font-weight:600}.empty.svelte-1n46o8q p:where(.svelte-1n46o8q){color:var(--text-muted)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f5f6f8;--surface: #ffffff;--border: #dfe1e6;--text: #172b4d;--text-muted: #5e6c84;--primary: #0079bf;--primary-hover: #026aa7;--danger: #eb5a46;--danger-hover: #cf513d;--priority-critical: #eb5a46;--priority-high: #f2d600;--priority-medium: #61bd4f;--priority-low: #c1c7d0;--column-bg: #ebecf0;--card-shadow: 0 1px 2px rgba(9, 30, 66, .15);--card-shadow-hover: 0 4px 8px rgba(9, 30, 66, .2);--radius: 6px;--radius-sm: 4px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;min-height:100vh}button{cursor:pointer;font-family:inherit;font-size:inherit}input,textarea,select{font-family:inherit;font-size:inherit}#app{min-height:100vh;display:flex;flex-direction:column}