studiograph 1.3.48-next.109 → 1.3.48-next.110

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.
Files changed (47) hide show
  1. package/dist/server/yjs-persistence.d.ts +40 -5
  2. package/dist/server/yjs-persistence.js +173 -40
  3. package/dist/server/yjs-persistence.js.map +1 -1
  4. package/dist/web/_app/immutable/chunks/{h6qJ4lWH.js → -wvHgbx8.js} +1 -1
  5. package/dist/web/_app/immutable/chunks/{CmFlP4qY.js → B24UNsyl.js} +1 -1
  6. package/dist/web/_app/immutable/chunks/{1qbaEmm5.js → B6V4J5UZ.js} +1 -1
  7. package/dist/web/_app/immutable/chunks/{BJmN7nmB.js → B8wVlAAz.js} +1 -1
  8. package/dist/web/_app/immutable/chunks/{DVNfrihk2.js → BK_Hb_ok2.js} +2 -2
  9. package/dist/web/_app/immutable/chunks/{B9Fot6ua.js → BNJ3ZcTM.js} +1 -1
  10. package/dist/web/_app/immutable/chunks/BNl1RvZ2.js +1 -0
  11. package/dist/web/_app/immutable/chunks/{BouoGrFH.js → BUdKaXWI.js} +1 -1
  12. package/dist/web/_app/immutable/chunks/{Cl2XDvUq.js → CIrQ1t-t.js} +3 -3
  13. package/dist/web/_app/immutable/chunks/{prsyhtov.js → CNmDX2qR.js} +1 -1
  14. package/dist/web/_app/immutable/chunks/{C0CSuODH.js → CSaEUsIE.js} +1 -1
  15. package/dist/web/_app/immutable/chunks/{_58RLchV.js → CZteLrB5.js} +1 -1
  16. package/dist/web/_app/immutable/chunks/{Bwu3l-3S2.js → C_-z07gl2.js} +1 -1
  17. package/dist/web/_app/immutable/chunks/{BHJSSCB52.js → Cdp2inY42.js} +1 -1
  18. package/dist/web/_app/immutable/chunks/CrLLAn6A.js +1 -0
  19. package/dist/web/_app/immutable/chunks/{BbLu2dMi2.js → CxSplvj32.js} +1 -1
  20. package/dist/web/_app/immutable/chunks/{U2oGYwvf.js → D8pVvb1X.js} +1 -1
  21. package/dist/web/_app/immutable/chunks/{B7hYacPP2.js → DC2tpDOi2.js} +1 -1
  22. package/dist/web/_app/immutable/chunks/{Dm-221q12.js → DRNBkl9b2.js} +1 -1
  23. package/dist/web/_app/immutable/chunks/{CoI-pZ3D.js → DlTCR4Mq.js} +1 -1
  24. package/dist/web/_app/immutable/chunks/{Bbde9E8Y.js → JVlEouQ5.js} +1 -1
  25. package/dist/web/_app/immutable/chunks/{CMUXO0bX2.js → Vm1VkZTj2.js} +1 -1
  26. package/dist/web/_app/immutable/entry/{app.PsfcVFHw.js → app.CxD8A5Su.js} +2 -2
  27. package/dist/web/_app/immutable/entry/start.BbSQ3fP1.js +1 -0
  28. package/dist/web/_app/immutable/nodes/{0.BIX297cz.js → 0.CthsvICY.js} +2 -2
  29. package/dist/web/_app/immutable/nodes/{1.CpIa3Q5d.js → 1.y90BJgyn.js} +1 -1
  30. package/dist/web/_app/immutable/nodes/{10.BMr3Q-0l.js → 10.BzqwGC1G.js} +1 -1
  31. package/dist/web/_app/immutable/nodes/{11.DSCD567C.js → 11.IInbiISX.js} +1 -1
  32. package/dist/web/_app/immutable/nodes/{12.BH12Ezyq.js → 12.CYFRdsXP.js} +1 -1
  33. package/dist/web/_app/immutable/nodes/{13.CLcxmGVS.js → 13.8GQJj5hq.js} +1 -1
  34. package/dist/web/_app/immutable/nodes/{2.XOVswIia.js → 2.BGbfQFfJ.js} +4 -4
  35. package/dist/web/_app/immutable/nodes/{3.2KOI5wHT.js → 3.Gsoh3IWQ.js} +1 -1
  36. package/dist/web/_app/immutable/nodes/{4.LmZYdsex.js → 4.DnoGIDZ7.js} +3 -3
  37. package/dist/web/_app/immutable/nodes/{5.DRzUdmhZ.js → 5.ZbEJHuL6.js} +1 -1
  38. package/dist/web/_app/immutable/nodes/{6.C1FsJQ3Y.js → 6.C9g3gDkx.js} +1 -1
  39. package/dist/web/_app/immutable/nodes/{7.kuQZhF5d.js → 7.CI2dltHT.js} +1 -1
  40. package/dist/web/_app/immutable/nodes/{8.Bt3G4nm6.js → 8.DDtW5qWS.js} +1 -1
  41. package/dist/web/_app/immutable/nodes/{9.BnfT8opz.js → 9.BiTGztLZ.js} +1 -1
  42. package/dist/web/_app/version.json +1 -1
  43. package/dist/web/index.html +12 -12
  44. package/package.json +1 -1
  45. package/dist/web/_app/immutable/chunks/B1qgZtLy.js +0 -1
  46. package/dist/web/_app/immutable/chunks/CwVKWiij.js +0 -1
  47. package/dist/web/_app/immutable/entry/start.DC09kVMy.js +0 -1
@@ -91,14 +91,48 @@ export declare class YjsPersistence {
91
91
  /** Atomic write: tmp file + fsync(tmp) + rename + best-effort fsync(parent dir). */
92
92
  private doWrite;
93
93
  }
94
+ /** Lock-file sentinel format. JSON; backward-compatible with the legacy
95
+ * plain-pid format via {@link parseLockSentinel}. */
96
+ interface LockSentinel {
97
+ pid: number;
98
+ /** Linux clock ticks since boot. 0 when unavailable (non-Linux or read
99
+ * failed) — comparison is skipped when 0. */
100
+ startTime: number;
101
+ /** Substring of `process.argv.join(' ')`. Used as backup identity when
102
+ * startTime isn't available on either side. Truncated to 200 chars. */
103
+ cmdline: string;
104
+ }
105
+ /**
106
+ * Decide whether a lock held by `recorded` is stale (we can take over) or
107
+ * live (we must refuse to start). Exported for tests.
108
+ *
109
+ * Decision tree:
110
+ * 1. Recorded pid not alive → stale.
111
+ * 2. Recorded pid alive AND we recorded a non-zero startTime AND we can read
112
+ * the live process's startTime → compare. Mismatch → stale (pid was
113
+ * recycled in a fresh container or on a long-lived host); match → live.
114
+ * 3. Recorded pid alive AND startTime not usable → fall back to cmdline.
115
+ * Recorded `studiograph` substring AND live cmdline contains `studiograph`
116
+ * → live. Recorded had it but live doesn't → stale (pid recycled, different
117
+ * program now). Recorded didn't have it (legacy or non-studiograph) →
118
+ * treat as live (paranoid default — better to surface the conflict than
119
+ * silently take over a lock we can't identify).
120
+ *
121
+ * Returns 'stale' to take over, 'live' to refuse, 'self' to no-op (lock is
122
+ * already ours from earlier in this process).
123
+ */
124
+ export declare function classifyLockHolder(recorded: LockSentinel): 'stale' | 'live' | 'self';
94
125
  /**
95
126
  * Acquire an advisory single-instance lock at `<rootDir>/.lock`. The lock is a
96
- * tiny pid file. Throws if another live process is already using this directory
97
- * — multi-instance studiograph against the same workspace state would race on
98
- * snapshot writes and corrupt them, since we don't have cross-instance Yjs
99
- * pubsub today.
127
+ * JSON sentinel `{pid, startTime, cmdline}`. Throws if another live process is
128
+ * already using this directory — multi-instance studiograph against the same
129
+ * workspace state would race on snapshot writes and corrupt them, since we
130
+ * don't have cross-instance Yjs pubsub today.
100
131
  *
101
- * Stale locks (pid exists in file but the process is dead) are taken over.
132
+ * Stale locks (recorded pid is dead, or alive but a different process now
133
+ * common in containers where the pid namespace resets across restarts but the
134
+ * lock file persists on a mounted volume) are taken over. See
135
+ * {@link classifyLockHolder} for the full decision tree.
102
136
  *
103
137
  * Returns a release function the caller registers in its shutdown hook.
104
138
  *
@@ -106,3 +140,4 @@ export declare class YjsPersistence {
106
140
  * lock would be a no-op anyway. The server bootstrap calls it explicitly.
107
141
  */
108
142
  export declare function acquireYjsStateLock(rootDir: string): () => void;
143
+ export {};
@@ -295,14 +295,164 @@ export class YjsPersistence {
295
295
  function sha256(s) {
296
296
  return createHash('sha256').update(s, 'utf-8').digest('hex');
297
297
  }
298
+ /**
299
+ * Read the `starttime` field (clock ticks since boot) from `/proc/<pid>/stat`.
300
+ * Linux only; returns null elsewhere or on read failure. Unique per process for
301
+ * the kernel's lifetime, so combined with pid it survives pid reuse. Used by
302
+ * the lock acquisition to distinguish "the studiograph that wrote this lock is
303
+ * still alive" from "the kernel happens to have something else at that pid now"
304
+ * — a critical distinction in containers where the namespace gets reset on
305
+ * restart but the lock file persists on the mounted volume.
306
+ *
307
+ * `/proc/<pid>/stat` format: pid (comm) state ppid ... starttime ... — comm
308
+ * can contain spaces/parens, so we anchor on the LAST `)` rather than splitting
309
+ * naively. After the comm, fields are at fixed offsets: state=0, ppid=1, ...,
310
+ * starttime=19 (0-indexed within the post-comm tail).
311
+ */
312
+ function readProcessStartTime(pid) {
313
+ if (process.platform !== 'linux')
314
+ return null;
315
+ try {
316
+ const stat = readFileSync(`/proc/${pid}/stat`, 'utf-8');
317
+ const close = stat.lastIndexOf(')');
318
+ if (close < 0)
319
+ return null;
320
+ const fields = stat.slice(close + 1).trim().split(/\s+/);
321
+ const starttime = Number.parseInt(fields[19], 10);
322
+ return Number.isFinite(starttime) ? starttime : null;
323
+ }
324
+ catch {
325
+ return null;
326
+ }
327
+ }
328
+ /**
329
+ * Read the cmdline of a process via `/proc/<pid>/cmdline`. Linux only. Returns
330
+ * empty string on failure. Used as a backup signal when startTime isn't
331
+ * available (legacy lock files written before the start-time field existed).
332
+ *
333
+ * Cmdline args are NUL-separated in /proc; we collapse to spaces for substring
334
+ * matching.
335
+ */
336
+ function readProcessCmdline(pid) {
337
+ if (process.platform !== 'linux')
338
+ return '';
339
+ try {
340
+ return readFileSync(`/proc/${pid}/cmdline`, 'utf-8').replace(/\0/g, ' ').trim();
341
+ }
342
+ catch {
343
+ return '';
344
+ }
345
+ }
346
+ function parseLockSentinel(raw) {
347
+ const trimmed = raw.trim();
348
+ if (!trimmed)
349
+ return null;
350
+ // Legacy format: bare pid number (pre-startTime addition).
351
+ if (/^\d+$/.test(trimmed)) {
352
+ const pid = Number.parseInt(trimmed, 10);
353
+ return Number.isFinite(pid) ? { pid, startTime: 0, cmdline: '' } : null;
354
+ }
355
+ try {
356
+ const parsed = JSON.parse(trimmed);
357
+ if (typeof parsed.pid !== 'number' || !Number.isFinite(parsed.pid))
358
+ return null;
359
+ return {
360
+ pid: parsed.pid,
361
+ startTime: typeof parsed.startTime === 'number' ? parsed.startTime : 0,
362
+ cmdline: typeof parsed.cmdline === 'string' ? parsed.cmdline : '',
363
+ };
364
+ }
365
+ catch {
366
+ return null;
367
+ }
368
+ }
369
+ function buildSentinel() {
370
+ const sentinel = {
371
+ pid: process.pid,
372
+ startTime: readProcessStartTime(process.pid) ?? 0,
373
+ cmdline: process.argv.join(' ').slice(0, 200),
374
+ };
375
+ return JSON.stringify(sentinel);
376
+ }
377
+ /**
378
+ * Decide whether a lock held by `recorded` is stale (we can take over) or
379
+ * live (we must refuse to start). Exported for tests.
380
+ *
381
+ * Decision tree:
382
+ * 1. Recorded pid not alive → stale.
383
+ * 2. Recorded pid alive AND we recorded a non-zero startTime AND we can read
384
+ * the live process's startTime → compare. Mismatch → stale (pid was
385
+ * recycled in a fresh container or on a long-lived host); match → live.
386
+ * 3. Recorded pid alive AND startTime not usable → fall back to cmdline.
387
+ * Recorded `studiograph` substring AND live cmdline contains `studiograph`
388
+ * → live. Recorded had it but live doesn't → stale (pid recycled, different
389
+ * program now). Recorded didn't have it (legacy or non-studiograph) →
390
+ * treat as live (paranoid default — better to surface the conflict than
391
+ * silently take over a lock we can't identify).
392
+ *
393
+ * Returns 'stale' to take over, 'live' to refuse, 'self' to no-op (lock is
394
+ * already ours from earlier in this process).
395
+ */
396
+ export function classifyLockHolder(recorded) {
397
+ if (recorded.pid === process.pid)
398
+ return 'self';
399
+ let pidAlive;
400
+ try {
401
+ process.kill(recorded.pid, 0);
402
+ pidAlive = true;
403
+ }
404
+ catch (err) {
405
+ if (err?.code === 'ESRCH')
406
+ return 'stale';
407
+ if (err?.code === 'EPERM') {
408
+ // Process exists but owned by another user. Can't safely take over.
409
+ throw new Error(`[yjs-persistence] pid ${recorded.pid} exists but we can't signal it ` +
410
+ `(different user?). Refusing to share state.`);
411
+ }
412
+ throw err;
413
+ }
414
+ if (!pidAlive)
415
+ return 'stale';
416
+ // Pid is alive. Verify it's actually the same process that wrote the lock.
417
+ if (recorded.startTime > 0) {
418
+ const liveStartTime = readProcessStartTime(recorded.pid);
419
+ if (liveStartTime !== null) {
420
+ return liveStartTime === recorded.startTime ? 'live' : 'stale';
421
+ }
422
+ // We recorded a startTime but can't read the live one — tooling mismatch.
423
+ // Fall through to cmdline check.
424
+ }
425
+ // Cmdline fallback for legacy locks or non-Linux platforms.
426
+ const liveCmdline = readProcessCmdline(recorded.pid);
427
+ if (liveCmdline) {
428
+ // If we recorded a cmdline and it doesn't match the live one's
429
+ // studiograph-ness, the pid has been recycled. Be lenient — match on the
430
+ // substring "studiograph" rather than exact equality, since the same
431
+ // server may be invoked via npx with slightly different paths.
432
+ const recordedLooksLikeUs = recorded.cmdline.includes('studiograph');
433
+ const liveLooksLikeUs = liveCmdline.includes('studiograph');
434
+ if (recordedLooksLikeUs && !liveLooksLikeUs)
435
+ return 'stale';
436
+ if (!recordedLooksLikeUs && liveLooksLikeUs)
437
+ return 'stale';
438
+ return 'live';
439
+ }
440
+ // No cmdline available (non-Linux). Fall back to the strict pre-fix behavior:
441
+ // if pid is alive, treat as live conflict. False positives possible on dev
442
+ // machines where pids get reused, but multi-instance is rare in dev.
443
+ return 'live';
444
+ }
298
445
  /**
299
446
  * Acquire an advisory single-instance lock at `<rootDir>/.lock`. The lock is a
300
- * tiny pid file. Throws if another live process is already using this directory
301
- * — multi-instance studiograph against the same workspace state would race on
302
- * snapshot writes and corrupt them, since we don't have cross-instance Yjs
303
- * pubsub today.
447
+ * JSON sentinel `{pid, startTime, cmdline}`. Throws if another live process is
448
+ * already using this directory — multi-instance studiograph against the same
449
+ * workspace state would race on snapshot writes and corrupt them, since we
450
+ * don't have cross-instance Yjs pubsub today.
304
451
  *
305
- * Stale locks (pid exists in file but the process is dead) are taken over.
452
+ * Stale locks (recorded pid is dead, or alive but a different process now
453
+ * common in containers where the pid namespace resets across restarts but the
454
+ * lock file persists on a mounted volume) are taken over. See
455
+ * {@link classifyLockHolder} for the full decision tree.
306
456
  *
307
457
  * Returns a release function the caller registers in its shutdown hook.
308
458
  *
@@ -329,7 +479,7 @@ export function acquireYjsStateLock(rootDir) {
329
479
  // Best-effort; don't block startup on a gitignore backfill.
330
480
  }
331
481
  const lockPath = join(rootDir, '.lock');
332
- const pidStr = String(process.pid);
482
+ const sentinel = buildSentinel();
333
483
  // Atomic create-or-fail. The 'wx' flag bypasses the existsSync→writeFileSync
334
484
  // TOCTOU window: two processes racing to acquire the lock can't both succeed,
335
485
  // because the kernel fails the second openSync with EEXIST.
@@ -337,7 +487,7 @@ export function acquireYjsStateLock(rootDir) {
337
487
  try {
338
488
  const fd = openSync(lockPath, 'wx');
339
489
  try {
340
- writeSync(fd, pidStr);
490
+ writeSync(fd, sentinel);
341
491
  }
342
492
  finally {
343
493
  closeSync(fd);
@@ -351,55 +501,38 @@ export function acquireYjsStateLock(rootDir) {
351
501
  }
352
502
  };
353
503
  if (!tryAcquire()) {
354
- // Lock file already exists. Check whether the pid in it is alive — if not,
355
- // it's stale (previous process crashed without releasing) and we can take over.
356
- let otherPidRaw;
504
+ let raw;
357
505
  try {
358
- otherPidRaw = readFileSync(lockPath, 'utf-8').trim();
506
+ raw = readFileSync(lockPath, 'utf-8');
359
507
  }
360
508
  catch {
361
- otherPidRaw = '';
509
+ raw = '';
362
510
  }
363
- const otherPid = Number.parseInt(otherPidRaw, 10);
364
- if (!Number.isFinite(otherPid)) {
511
+ const recorded = parseLockSentinel(raw);
512
+ if (!recorded) {
365
513
  // Garbage in the file — treat as stale, replace.
366
- writeFileSync(lockPath, pidStr, 'utf-8');
367
- }
368
- else if (otherPid === process.pid) {
369
- // Already our lock from an earlier run in the same process. No-op.
514
+ writeFileSync(lockPath, sentinel, 'utf-8');
370
515
  }
371
516
  else {
372
- // Probe whether the recorded pid is actually alive. `kill(pid, 0)` sends
373
- // no signal but raises ESRCH if no such process exists, EPERM if it
374
- // exists but we can't signal it.
375
- try {
376
- process.kill(otherPid, 0);
377
- throw new Error(`[yjs-persistence] another studiograph server (pid ${otherPid}) ` +
517
+ const verdict = classifyLockHolder(recorded);
518
+ if (verdict === 'stale') {
519
+ writeFileSync(lockPath, sentinel, 'utf-8');
520
+ }
521
+ else if (verdict === 'live') {
522
+ throw new Error(`[yjs-persistence] another studiograph server (pid ${recorded.pid}) ` +
378
523
  `is already using ${rootDir}. Multi-instance is not supported — ` +
379
524
  `stop the other process or pick a different workspace.`);
380
525
  }
381
- catch (err) {
382
- if (err?.code === 'ESRCH') {
383
- // Stale lock — previous server crashed without releasing. Take over by
384
- // overwriting (single-process race already settled by the openSync above).
385
- writeFileSync(lockPath, pidStr, 'utf-8');
386
- }
387
- else if (err?.code === 'EPERM') {
388
- throw new Error(`[yjs-persistence] pid ${otherPid} owns ${rootDir} but we can't ` +
389
- `signal it (different user?). Refusing to share state.`);
390
- }
391
- else {
392
- throw err;
393
- }
394
- }
526
+ // verdict === 'self' → no-op, our lock from an earlier run.
395
527
  }
396
528
  }
397
529
  return function release() {
398
530
  try {
399
- const raw = readFileSync(lockPath, 'utf-8').trim();
531
+ const raw = readFileSync(lockPath, 'utf-8');
532
+ const recorded = parseLockSentinel(raw);
400
533
  // Only release if it's still ours — paranoia for the case where
401
534
  // another process took over after a stale-lock cleanup.
402
- if (raw === String(process.pid))
535
+ if (recorded && recorded.pid === process.pid)
403
536
  unlinkSync(lockPath);
404
537
  }
405
538
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"yjs-persistence.js","sourceRoot":"","sources":["../../src/server/yjs-persistence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"yjs-persistence.js","sourceRoot":"","sources":["../../src/server/yjs-persistence.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- import{A as e,B as t,Bt as n,Ct as r,D as i,F as a,G as o,H as s,L as c,N as l,Nt as u,O as d,Pt as f,R as p,U as m,Vt as h,W as g,X as _,Y as v,_t as y,a as b,at as x,b as S,bt as C,ft as w,g as T,ht as E,it as ee,j as D,mt as O,n as te,o as k,ot as A,pt as j,st as M,u as N,v as ne,vt as P,w as re,x as F,xt as I,z as L}from"./BT3KAag_.js";import{r as ie}from"./B1qgZtLy.js";import"./t62M88qj.js";import"./CwVKWiij.js";import{A as ae}from"./ZCekGjo6.js";import{i as oe}from"./CpYSBmKC.js";import"./BZnJ8tbJ.js";import{i as se,n as ce,r as le,t as ue}from"./DI1F0sOk.js";import{a as de,i as fe,n as pe,o as me,r as he,s as ge,t as _e}from"./cKP8UZub2.js";import{t as ve}from"./ULJ0oJsu2.js";import{t as ye}from"./BTRrb8iS2.js";import{a as be,r as xe}from"./CTXhrVfi.js";import{t as Se}from"./7F3UwSfd.js";import{t as Ce}from"./MClf3kfO.js";import{i as we}from"./CJKv5-xr.js";import{t as Te}from"./BEKINBBr.js";import{t as Ee}from"./CPyrBlwI.js";import{a as De,t as R}from"./gFHG8ysP.js";import{t as Oe}from"./B-yPxkTf.js";import{t as ke}from"./vwBDR4bX.js";import{t as Ae}from"./B7hYacPP2.js";function je(e,t){let n=[],r=new Set;if(e&&R[e])for(let t of R[e])t.format===`date`&&!r.has(t.key)&&(n.push({key:t.key,label:t.label}),r.add(t.key));if(t){for(let e of t)if(!r.has(e)&&(e.endsWith(`_date`)||e===`date`||e===`expected_close`)){let t=e.replace(/_/g,` `).replace(/\b\w/g,e=>e.toUpperCase());n.push({key:e,label:t}),r.add(e)}}return r.has(`created_at`)||n.push({key:`created_at`,label:`Created`}),n}function Me(e,t){let n;if(n=t===`created_at`?e.createdAt:t===`updated_at`?e.updatedAt:e.fields[t],!n)return null;let r=String(n);return/^\d{4}-\d{2}-\d{2}/.test(r)?r.slice(0,10):null}function Ne(e,t,n,r){let i=new Date,a=`${i.getFullYear()}-${String(i.getMonth()+1).padStart(2,`0`)}-${String(i.getDate()).padStart(2,`0`)}`,o=new Date(e,t-1,1).getDay(),s=new Date(e,t-1,1-o),c=new Map;for(let e of n){let t=Me(e,r);t&&(c.has(t)||c.set(t,[]),c.get(t).push(e))}let l=[];for(let n=0;n<42;n++){let r=new Date(s);r.setDate(r.getDate()+n);let i=r.getFullYear(),o=r.getMonth()+1,u=r.getDate(),d=`${i}-${String(o).padStart(2,`0`)}-${String(u).padStart(2,`0`)}`;l.push({dateStr:d,day:u,isCurrentMonth:o===t&&i===e,isToday:d===a,entities:c.get(d)??[]})}return l}function Pe(e,t,n,r,i){let a=new Date,o=`${a.getFullYear()}-${String(a.getMonth()+1).padStart(2,`0`)}-${String(a.getDate()).padStart(2,`0`)}`,s=new Date(e,t-1,n),c=s.getDay(),l=new Date(s);l.setDate(s.getDate()-c);let u=new Map;for(let e of r){let t=Me(e,i);t&&(u.has(t)||u.set(t,[]),u.get(t).push(e))}let d=[];for(let n=0;n<7;n++){let r=new Date(l);r.setDate(r.getDate()+n);let i=r.getFullYear(),a=r.getMonth()+1,s=r.getDate(),c=`${i}-${String(a).padStart(2,`0`)}-${String(s).padStart(2,`0`)}`;d.push({dateStr:c,day:s,isCurrentMonth:a===t&&i===e,isToday:c===o,entities:u.get(c)??[]})}return d}function Fe(e){if(e.length===0)return``;let t=new Date(e[0].dateStr+`T00:00:00`),n=new Date(e[e.length-1].dateStr+`T00:00:00`),r=t.getMonth()===n.getMonth()&&t.getFullYear()===n.getFullYear(),i=t.getFullYear()===n.getFullYear(),a=e=>e.toLocaleDateString(`en-US`,{month:`short`});return r?`${a(t)} ${t.getDate()} – ${n.getDate()}, ${n.getFullYear()}`:i?`${a(t)} ${t.getDate()} – ${a(n)} ${n.getDate()}, ${n.getFullYear()}`:`${a(t)} ${t.getDate()}, ${t.getFullYear()} – ${a(n)} ${n.getDate()}, ${n.getFullYear()}`}var Ie=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],Le=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],z=t(`<title> </title>`),Re=t(`<svg><!><path d="M30,23V21H27.91a5.9592,5.9592,0,0,0-1.0244-2.4707L28.364,17.05,26.95,15.6362l-1.4788,1.4785A5.9584,5.9584,0,0,0,23,16.09V14H21v2.09a5.9584,5.9584,0,0,0-2.4709,1.0244L17.05,15.6362,15.636,17.05l1.4787,1.479A5.9618,5.9618,0,0,0,16.09,21H14v2h2.09a5.9618,5.9618,0,0,0,1.0244,2.4707L15.636,26.95,17.05,28.3638l1.4788-1.4785A5.9584,5.9584,0,0,0,21,27.91V30h2V27.91a5.9584,5.9584,0,0,0,2.4709-1.0244L26.95,28.3638,28.364,26.95l-1.4787-1.479A5.9592,5.9592,0,0,0,27.91,23Zm-8,3a4,4,0,1,1,4-4A4.0045,4.0045,0,0,1,22,26Z"></path><path d="M28,6a2,2,0,0,0-2-2H22V2H20V4H12V2H10V4H6A2,2,0,0,0,4,6V26a2,2,0,0,0,2,2h4V26H6V6h4V8h2V6h8V8h2V6h4v6h2Z"></path></svg>`);function ze(e,t){let r=b(t,[`children`,`$$slots`,`$$events`,`$$legacy`]),i=b(r,[`size`,`title`]);f(t,!1);let o=y(),s=y(),d=k(t,`size`,8,16),p=k(t,`title`,8,void 0);ee(()=>(v(r),v(p())),()=>{P(o,r[`aria-label`]||r[`aria-labelledby`]||p())}),ee(()=>(_(o),v(r)),()=>{P(s,{"aria-hidden":_(o)?void 0:!0,role:_(o)?`img`:void 0,focusable:Number(r.tabindex)===0?!0:void 0})}),x(),N();var m=Re();T(m,()=>({xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 32`,fill:`currentColor`,preserveAspectRatio:`xMidYMid meet`,width:d(),height:d(),..._(s),...i}));var g=w(m),S=e=>{var t=z(),n=w(t,!0);h(t),A(()=>a(n,p())),c(e,t)};l(g,e=>{p()&&e(S)}),n(2),h(m),c(e,m),u()}var Be=L(`<button class="toolbar-icon-btn" aria-label="Back"><!></button>`),Ve=L(`<!> <!> <!>`,1),He=L(`<button class="sg-sheet-row"><span class="sg-sheet-row-label"> </span> <span class="sg-sheet-row-trail"><!></span></button>`),Ue=L(`<button class="sg-sheet-row"><span class="sg-sheet-row-label"> </span> <span class="sg-sheet-row-trail"><!></span></button>`),We=L(`<button class="sg-sheet-row"><span class="sg-sheet-row-label"> </span> <span class="sg-sheet-row-trail"><!></span></button> <!> <!>`,1),Ge=L(`<button><span class="sg-sheet-row-lead"><!></span> <span class="sg-sheet-row-label">Month</span></button> <button><span class="sg-sheet-row-lead"><!></span> <span class="sg-sheet-row-label">Week</span></button>`,1),Ke=L(`<button><span class="sg-sheet-row-lead"><!></span> <span class="sg-sheet-row-label"> </span></button>`),qe=L(`<div class="sg-sheet-body"><!></div>`),Je=L(`<!> <!>`,1),Ye=L(`<!> <!>`,1),Xe=L(`<!> <!>`,1),Ze=L(`<div class="empty svelte-dnwsps"><p>No date fields available for the selected type.</p> <p class="empty-hint svelte-dnwsps">Try selecting a type with date fields like Task, Project, or Meeting.</p></div>`),Qe=L(`<div class="dow-header svelte-dnwsps"> </div>`),$e=L(`<button class="entity-chip svelte-dnwsps" draggable="true"><span class="chip-label svelte-dnwsps"> </span></button>`),et=L(`<button class="day-view-all svelte-dnwsps">View all</button>`),tt=L(`<div><span> </span> <div class="day-entities svelte-dnwsps"></div> <!></div>`),nt=L(`<div class="calendar-grid svelte-dnwsps"><!> <!></div>`),rt=L(`<div class="tooltip-row svelte-dnwsps"><span class="tooltip-meta svelte-dnwsps"> </span></div>`),it=L(`<span class="tooltip-dot svelte-dnwsps"></span>`),at=L(`<div class="tooltip-row svelte-dnwsps"><!> <span class="tooltip-meta svelte-dnwsps"> </span></div>`),ot=L(`<div class="floating-tooltip svelte-dnwsps"><strong class="tooltip-title svelte-dnwsps"> </strong> <div class="tooltip-row svelte-dnwsps"><span class="tooltip-dot svelte-dnwsps"></span> <span class="tooltip-meta svelte-dnwsps"> </span></div> <!> <!></div>`),st=L(`<button class="overflow-item svelte-dnwsps"><span class="chip-dot"></span> <span class="overflow-item-title svelte-dnwsps"> </span> <span class="overflow-item-type svelte-dnwsps"> </span></button>`),ct=L(`<div class="overflow-backdrop svelte-dnwsps"></div> <div class="overflow-popover svelte-dnwsps"><div class="overflow-list svelte-dnwsps"></div></div>`,1),lt=L(`<div class="calendar-view svelte-dnwsps"><div class="calendar-toolbar svelte-dnwsps"><!> <button><!></button> <!> <div class="toolbar-left svelte-dnwsps"><!> <!></div> <div class="month-nav svelte-dnwsps"><button class="nav-btn svelte-dnwsps"><!></button> <button class="month-label svelte-dnwsps"><span class="month-label-full svelte-dnwsps"> </span> <span class="month-label-short svelte-dnwsps"> </span></button> <button class="nav-btn svelte-dnwsps"><!></button></div> <div class="toolbar-right svelte-dnwsps"><!></div></div> <!></div> <!> <!>`,1);function ut(t,m){f(m,!0);let v=k(m,`lockedType`,3,null),y=k(m,`lockedFolder`,3,null),b=k(m,`lockedFolderPath`,3,null),x=k(m,`storageId`,3,null),T=k(m,`entities`,3,null),ee=k(m,`tagSource`,3,null),N=k(m,`selectedTags`,19,()=>[]),L=r(()=>{let e=ee()??T()??[],t=new Map;for(let n of e){let e=n.fields.tags;if(Array.isArray(e))for(let n of e){let e=String(n);t.set(e,(t.get(e)??0)+1)}}return[...t.entries()].sort((e,t)=>e[0].localeCompare(t[0])).map(([e,t])=>({tag:e,count:t}))}),R=C(!1),z=C(`root`),Re=r(()=>_(z)===`mode`?`View`:_(z)===`sort`?`Sort by`:_(z)===`filter`?`Filter by tag`:`Options`);M(()=>{_(R)||P(z,`root`)});function ut(){P(z,`root`)}function dt(e){m.onTagsChange&&m.onTagsChange(e),P(R,!1)}let ft=r(()=>x()?`sg-calendarview-${x()}`:null);function pt(){if(!_(ft))return null;try{let e=localStorage.getItem(_(ft));if(e)return JSON.parse(e)}catch{}return null}function mt(){if(!_(ft))return;let e={selectedType:v()?null:_(V),dateField:_(H),year:_(U),month:_(W),day:_(G),mode:_(K)};localStorage.setItem(_(ft),JSON.stringify(e))}let ht=x()?`sg-calendarview-${x()}`:null,B=(()=>{if(!ht||typeof localStorage>`u`)return null;try{let e=localStorage.getItem(ht);return e?JSON.parse(e):null}catch{return null}})(),gt=new Date,V=C(E(v()??B?.selectedType??null)),H=C(E(B?.dateField??`due_date`)),U=C(E(B?.year??gt.getFullYear())),W=C(E(B?.month??gt.getMonth()+1)),G=C(E(B?.day??gt.getDate())),K=C(E(B?.mode??`month`)),_t=C(null);M(()=>{if(m.view&&m.view.id!==_(_t)){P(_t,m.view.id,!0);let e=pt();if(e)P(V,v()??e.selectedType??null,!0),P(H,e.dateField??`due_date`,!0),P(U,e.year??new Date().getFullYear(),!0),P(W,e.month??new Date().getMonth()+1,!0),P(G,e.day??new Date().getDate(),!0),P(K,e.mode??`month`,!0);else{let e=m.view.config;P(V,v()??e.selectedType??null,!0),P(H,e.calendar?.dateField??`due_date`,!0),P(U,e.calendar?.year??new Date().getFullYear(),!0),P(W,e.calendar?.month??new Date().getMonth()+1,!0),P(G,new Date().getDate(),!0),P(K,`month`)}}}),M(()=>{v()&&P(V,v())}),M(()=>{_(V),_(H),_(U),_(W),_(G),_(K),_(_t)!==null&&mt()});let q=r(()=>{if(T())return T().filter(e=>!_(V)||e.entityType===_(V));let e=[];for(let t of oe.repos)if(!(y()&&t.name!==y()))for(let n of t.entities)(!_(V)||n.entityType===_(V))&&e.push(n);return e}),vt=r(()=>{let e=new Set;for(let t of _(q))for(let n of Object.keys(t.fields))e.add(n);return e}),J=r(()=>je(_(V),_(vt))),yt=r(()=>_(J).find(e=>e.key===_(H))?.label??_(H));function bt(e){At(e),P(R,!1)}function xt(e){P(K,e,!0),P(R,!1)}M(()=>{_(J).length>0&&!_(J).some(e=>e.key===_(H))&&P(H,_(J)[0].key,!0)});let St=r(()=>_(K)===`week`?Pe(_(U),_(W),_(G),_(q),_(H)):Ne(_(U),_(W),_(q),_(H))),Ct=r(()=>_(K)===`week`?Fe(_(St)):`${Ie[_(W)-1]} ${_(U)}`),wt=r(()=>_(K)===`week`?Fe(_(St)):`${Ie[_(W)-1].slice(0,3)} ${_(U)}`);M(()=>{Ee.count=_(q).length}),te(()=>{Ee.count=null});function Tt(e){let t=new Date(_(U),_(W)-1,_(G));t.setDate(t.getDate()+e),P(U,t.getFullYear(),!0),P(W,t.getMonth()+1),P(G,t.getDate(),!0)}function Et(){_(K)===`week`?Tt(-7):_(W)===1?(P(W,12),I(U,-1)):I(W,-1)}function Dt(){_(K)===`week`?Tt(7):_(W)===12?(P(W,1),I(U)):I(W)}function Ot(){let e=new Date;P(U,e.getFullYear(),!0),P(W,e.getMonth()+1),P(G,e.getDate(),!0)}function kt(){P(K,_(K)===`month`?`week`:`month`,!0)}function At(e){e&&P(H,e,!0)}function jt(e){ie(`/${e.repo}/${e.entityType}/${e.id}`)}let Y=C(null),Mt=C(E({x:0,y:0})),Nt=C(!1),Pt=C(!1);function Ft(e,t){P(Nt,e+10+200>window.innerWidth),P(Pt,t+10+80>window.innerHeight),P(Mt,{x:_(Nt)?e-10:e+10,y:_(Pt)?t-10:t+10},!0)}function It(e,t){P(Y,t,!0),Ft(e.clientX,e.clientY)}function Lt(e){Ft(e.clientX,e.clientY)}function Rt(){P(Y,null)}let zt=C(E([])),Bt=C(E({x:0,y:0})),Vt=C(``);function Ht(e,t,n){e.stopPropagation(),P(zt,t,!0),P(Vt,new Date(n+`T00:00:00`).toLocaleDateString(`en-US`,{weekday:`short`,month:`short`,day:`numeric`}),!0);let r=e.currentTarget.getBoundingClientRect(),i=Math.min(320,t.length*36+40),a=r.left,o=r.bottom+4;a+260>window.innerWidth&&(a=window.innerWidth-260-8),a<8&&(a=8),o+i>window.innerHeight&&(o=r.top-i-4),o<8&&(o=8),P(Bt,{x:a,y:o},!0)}function Ut(){P(zt,[],!0)}let Wt=new Set([`created_at`,`updated_at`]),Gt=r(()=>!Wt.has(_(H))),X=C(null),Z=C(null);function Kt(e,t){P(X,t,!0),e.dataTransfer.effectAllowed=`move`,e.dataTransfer.setData(`text/plain`,t.id),Rt()}function qt(e,t){!_(X)||!_(Gt)||(e.preventDefault(),e.dataTransfer.dropEffect=`move`,P(Z,t,!0))}function Jt(){P(Z,null)}function Yt(){P(X,null),P(Z,null)}async function Xt(e,t){if(e.preventDefault(),!_(X))return;let n=_(X);P(X,null),P(Z,null);try{await ae(n.repo,n.entityType,n.id,{data:{[_(H)]:t}}),await oe.refreshEntities(n.repo)}catch(e){console.error(`Failed to update entity date:`,e)}}var Zt=lt(),Qt=j(Zt),$t=w(Qt),en=w($t),tn=e=>{Ae(e,{get repoName(){return y()},get currentPath(){return b()}})};l(en,e=>{y()&&b()&&e(tn)});var Q=O(en,2);let nn;ze(w(Q),{size:16}),h(Q);var rn=O(Q,2);i(rn,()=>ge,(t,o)=>{o(t,{get open(){return _(R)},set open(e){P(R,e,!0)},children:(t,o)=>{var u=Ye(),d=j(u);i(d,()=>me,(e,t)=>{t(e,{class:`toolbar-icon-btn mobile-overflow`,title:`More options`,"aria-label":`More options`,children:(e,t)=>{Se(e,{})},$$slots:{default:!0}})}),i(O(d,2),()=>fe,(t,o)=>{o(t,{side:`bottom`,class:`sg-mobile-sheet`,children:(t,o)=>{var u=Je(),d=j(u);i(d,()=>he,(e,t)=>{t(e,{class:`sg-sheet-header`,children:(e,t)=>{var r=Ve(),o=j(r),u=e=>{var t=Be();ke(w(t),{size:16}),h(t),g(`click`,t,ut),c(e,t)};l(o,e=>{_(z)!==`root`&&e(u)});var d=O(o,2);i(d,()=>pe,(e,t)=>{t(e,{class:`sg-sheet-title`,children:(e,t)=>{n();var r=s();A(()=>a(r,_(Re))),c(e,r)},$$slots:{default:!0}})}),i(O(d,2),()=>de,(e,t)=>{t(e,{class:`dialog-close-btn`,"aria-label":`Close`,children:(e,t)=>{ve(e,{size:16})},$$slots:{default:!0}})}),c(e,r)},$$slots:{default:!0}})});var f=O(d,2),v=e=>{{let t=r(()=>_(R)&&_(z)===`filter`);_e(e,{get visible(){return _(t)},get availableTags(){return _(L)},get selectedTags(){return N()},onApply:dt})}},y=t=>{var r=qe(),i=w(r),o=e=>{var t=We(),n=j(t),r=w(n),i=w(r);h(r);var o=O(r,2);ye(w(o),{size:16}),h(o),h(n);var s=O(n,2),u=e=>{var t=He(),n=w(t),r=w(n);h(n);var i=O(n,2);ye(w(i),{size:16}),h(i),h(t),A(()=>a(r,`Sort by ${_(yt)??``}`)),g(`click`,t,()=>P(z,`sort`)),c(e,t)};l(s,e=>{_(J).length>1&&e(u)});var d=O(s,2),f=e=>{var t=Ue(),n=w(t),r=w(n);h(n);var i=O(n,2);ye(w(i),{size:16}),h(i),h(t),A(()=>a(r,`Filter by ${(N().length===0?`None`:N().length===1?N()[0]:`${N().length} tags`)??``}`)),g(`click`,t,()=>P(z,`filter`)),c(e,t)};l(d,e=>{m.onTagsChange&&_(L).length>0&&e(f)}),A(()=>a(i,`View ${_(K)===`week`?`Week`:`Month`}`)),g(`click`,n,()=>P(z,`mode`)),c(e,t)},s=e=>{var t=Ge(),r=j(t);let i;var a=w(r),o=w(a),s=e=>{Ce(e,{size:16})};l(o,e=>{_(K)===`month`&&e(s)}),h(a),n(2),h(r);var u=O(r,2);let d;var f=w(u),p=w(f),m=e=>{Ce(e,{size:16})};l(p,e=>{_(K)===`week`&&e(m)}),h(f),n(2),h(u),A(()=>{i=F(r,1,`sg-sheet-row`,null,i,{selected:_(K)===`month`}),d=F(u,1,`sg-sheet-row`,null,d,{selected:_(K)===`week`})}),g(`click`,r,()=>xt(`month`)),g(`click`,u,()=>xt(`week`)),c(e,t)},u=t=>{var n=p();e(j(n),17,()=>_(J),D,(e,t)=>{var n=Ke();let r;var i=w(n),o=w(i),s=e=>{Ce(e,{size:16})};l(o,e=>{_(H)===_(t).key&&e(s)}),h(i);var u=O(i,2),d=w(u,!0);h(u),h(n),A(()=>{r=F(n,1,`sg-sheet-row`,null,r,{selected:_(H)===_(t).key}),a(d,_(t).label)}),g(`click`,n,()=>bt(_(t).key)),c(e,n)}),c(t,n)};l(i,e=>{_(z)===`root`?e(o):_(z)===`mode`?e(s,1):_(z)===`sort`&&e(u,2)}),h(r),c(t,r)};l(f,e=>{_(z)===`filter`?e(v):e(y,-1)}),c(t,u)},$$slots:{default:!0}})}),c(t,u)},$$slots:{default:!0}})});var an=O(rn,2),on=w(an),sn=t=>{var n=p();i(j(n),()=>ue,(t,n)=>{n(t,{type:`single`,get value(){return _(H)},onValueChange:At,children:(t,n)=>{var a=Xe(),o=j(a);{let e=r(()=>_(J).find(e=>e.key===_(H))?.label??_(H));i(o,()=>se,(t,n)=>{n(t,{size:`sm`,get value(){return _(e)}})})}i(O(o,2),()=>le,(t,n)=>{n(t,{align:`start`,children:(t,n)=>{var r=p();e(j(r),17,()=>_(J),D,(e,t)=>{var n=p();i(j(n),()=>ce,(e,n)=>{n(e,{get value(){return _(t).key},get label(){return _(t).label}})}),c(e,n)}),c(t,r)},$$slots:{default:!0}})}),c(t,a)},$$slots:{default:!0}})}),c(t,n)};l(on,e=>{_(J).length>1&&e(sn)});var cn=O(on,2),ln=e=>{var t=p();d(j(t),()=>m.toolbarLeft),c(e,t)};l(cn,e=>{m.toolbarLeft&&e(ln)}),h(an);var un=O(an,2),$=w(un);Oe(w($),{size:16}),h($);var dn=O($,2),fn=w(dn),pn=w(fn,!0);h(fn);var mn=O(fn,2),hn=w(mn,!0);h(mn),h(dn);var gn=O(dn,2);ye(w(gn),{size:16}),h(gn),h(un);var _n=O(un,2),vn=w(_n),yn=e=>{var t=p();d(j(t),()=>m.toolbarRight),c(e,t)};l(vn,e=>{m.toolbarRight&&e(yn)}),h(_n),h($t);var bn=O($t,2),xn=e=>{c(e,Ze())},Sn=t=>{var n=nt(),i=w(n);e(i,17,()=>Le,D,(e,t)=>{var n=Qe(),r=w(n,!0);h(n),A(()=>a(r,_(t))),c(e,n)}),e(O(i,2),17,()=>_(St),D,(t,n,i,s)=>{let u=r(()=>_(n).entities.length>2);var d=tt();let f;var p=w(d);let m;var v=w(p,!0);h(p);var y=O(p,2);e(y,21,()=>_(n).entities,D,(e,t)=>{let n=r(()=>xe(_(t).entityType));var i=$e();let s;var l=w(i),u=w(l,!0);h(l),h(i),A(e=>{s=S(i,``,s,{"border-left-color":_(n)}),a(u,e)},[()=>we(_(t).title)]),o(`dragstart`,i,e=>Kt(e,_(t))),o(`dragend`,i,Yt),g(`click`,i,()=>jt(_(t))),o(`mouseenter`,i,e=>It(e,_(t))),g(`mousemove`,i,Lt),o(`mouseleave`,i,Rt),c(e,i)}),h(y);var b=O(y,2),x=e=>{var t=et();A(()=>ne(t,`title`,`View all ${_(n).entities.length??``}`)),g(`click`,t,e=>Ht(e,_(n).entities,_(n).dateStr)),c(e,t)};l(b,e=>{_(u)&&e(x)}),h(d),A(()=>{f=F(d,1,`calendar-day svelte-dnwsps`,null,f,{"outside-month":!_(n).isCurrentMonth,today:_(n).isToday,"week-mode":_(K)===`week`,"has-overflow":_(u),"drop-target":_(Gt)&&_(Z)===_(n).dateStr}),m=F(p,1,`day-number svelte-dnwsps`,null,m,{"today-number":_(n).isToday}),a(v,_(n).day)}),o(`dragover`,d,e=>qt(e,_(n).dateStr)),o(`dragleave`,d,Jt),o(`drop`,d,e=>Xt(e,_(n).dateStr)),c(t,d)}),h(n),c(t,n)};l(bn,e=>{_(J).length===0?e(xn):e(Sn,-1)}),h(Qt);var Cn=O(Qt,2),wn=e=>{let t=r(()=>xe(_(Y).entityType)),n=r(()=>Me(_(Y),_(H)));var i=ot();let o;var s=w(i),u=w(s,!0);h(s);var d=O(s,2),f=w(d);let p;var m=O(f,2),g=w(m,!0);h(m),h(d);var v=O(d,2),y=e=>{var t=rt(),r=w(t),i=w(r,!0);h(r),h(t),A(e=>a(i,e),[()=>new Date(_(n)+`T00:00:00`).toLocaleDateString(`en-US`,{month:`short`,day:`numeric`,year:`numeric`})]),c(e,t)};l(v,e=>{_(n)&&e(y)});var b=O(v,2),x=e=>{let t=r(()=>De(_(Y).entityType,`status`,String(_(Y).fields.status)));var n=at(),i=w(n),o=e=>{var n=it();let r;A(()=>r=S(n,``,r,{background:_(t)})),c(e,n)};l(i,e=>{_(t)&&e(o)});var s=O(i,2),u=w(s,!0);h(s),h(n),A(e=>a(u,e),[()=>be(String(_(Y).fields.status))]),c(e,n)};l(b,e=>{_(Y).fields.status&&e(x)}),h(i),A((e,n)=>{o=S(i,``,o,{left:`${_(Mt).x??``}px`,top:`${_(Mt).y??``}px`,transform:`translate(${_(Nt)?`-100%`:`0`}, ${_(Pt)?`-100%`:`0`})`}),a(u,e),p=S(f,``,p,{background:_(t)}),a(g,n)},[()=>we(_(Y).title),()=>be(_(Y).entityType)]),c(e,i)};l(Cn,e=>{_(Y)&&e(wn)});var Tn=O(Cn,2),En=t=>{var n=ct(),i=j(n),o=O(i,2);let s;var l=w(o);e(l,21,()=>_(zt),D,(e,t)=>{let n=r(()=>xe(_(t).entityType));var i=st(),o=w(i);let s;var l=O(o,2),u=w(l,!0);h(l),re(l,e=>Te?.(e));var d=O(l,2),f=w(d,!0);h(d),h(i),A((e,t)=>{s=S(o,``,s,{background:_(n)}),a(u,e),a(f,t)},[()=>we(_(t).title),()=>be(_(t).entityType)]),g(`click`,i,()=>{Ut(),jt(_(t))}),c(e,i)}),h(l),h(o),A(()=>s=S(o,``,s,{left:`${_(Bt).x??``}px`,top:`${_(Bt).y??``}px`})),g(`click`,i,Ut),c(t,n)};l(Tn,e=>{_(zt).length>0&&e(En)}),A(()=>{nn=F(Q,1,`toolbar-icon-btn mode-toggle svelte-dnwsps`,null,nn,{active:_(K)===`week`}),ne(Q,`title`,_(K)===`week`?`Switch to month view`:`Switch to week view`),ne($,`title`,_(K)===`week`?`Previous week`:`Previous month`),a(pn,_(Ct)),a(hn,_(wt)),ne(gn,`title`,_(K)===`week`?`Next week`:`Next month`)}),g(`click`,Q,kt),g(`click`,$,Et),g(`click`,dn,Ot),g(`click`,gn,Dt),c(t,Zt),u()}m([`click`,`mousemove`]);export{ut as default};
1
+ import{A as e,B as t,Bt as n,Ct as r,D as i,F as a,G as o,H as s,L as c,N as l,Nt as u,O as d,Pt as f,R as p,U as m,Vt as h,W as g,X as _,Y as v,_t as y,a as b,at as x,b as S,bt as C,ft as w,g as T,ht as E,it as ee,j as D,mt as O,n as te,o as k,ot as A,pt as j,st as M,u as N,v as ne,vt as P,w as re,x as F,xt as I,z as L}from"./BT3KAag_.js";import{r as ie}from"./BNl1RvZ2.js";import"./t62M88qj.js";import"./CrLLAn6A.js";import{A as ae}from"./ZCekGjo6.js";import{i as oe}from"./CpYSBmKC.js";import"./BZnJ8tbJ.js";import{i as se,n as ce,r as le,t as ue}from"./DI1F0sOk.js";import{a as de,i as fe,n as pe,o as me,r as he,s as ge,t as _e}from"./cKP8UZub2.js";import{t as ve}from"./ULJ0oJsu2.js";import{t as ye}from"./BTRrb8iS2.js";import{a as be,r as xe}from"./CTXhrVfi.js";import{t as Se}from"./7F3UwSfd.js";import{t as Ce}from"./MClf3kfO.js";import{i as we}from"./CJKv5-xr.js";import{t as Te}from"./BEKINBBr.js";import{t as Ee}from"./CPyrBlwI.js";import{a as De,t as R}from"./gFHG8ysP.js";import{t as Oe}from"./B-yPxkTf.js";import{t as ke}from"./vwBDR4bX.js";import{t as Ae}from"./DC2tpDOi2.js";function je(e,t){let n=[],r=new Set;if(e&&R[e])for(let t of R[e])t.format===`date`&&!r.has(t.key)&&(n.push({key:t.key,label:t.label}),r.add(t.key));if(t){for(let e of t)if(!r.has(e)&&(e.endsWith(`_date`)||e===`date`||e===`expected_close`)){let t=e.replace(/_/g,` `).replace(/\b\w/g,e=>e.toUpperCase());n.push({key:e,label:t}),r.add(e)}}return r.has(`created_at`)||n.push({key:`created_at`,label:`Created`}),n}function Me(e,t){let n;if(n=t===`created_at`?e.createdAt:t===`updated_at`?e.updatedAt:e.fields[t],!n)return null;let r=String(n);return/^\d{4}-\d{2}-\d{2}/.test(r)?r.slice(0,10):null}function Ne(e,t,n,r){let i=new Date,a=`${i.getFullYear()}-${String(i.getMonth()+1).padStart(2,`0`)}-${String(i.getDate()).padStart(2,`0`)}`,o=new Date(e,t-1,1).getDay(),s=new Date(e,t-1,1-o),c=new Map;for(let e of n){let t=Me(e,r);t&&(c.has(t)||c.set(t,[]),c.get(t).push(e))}let l=[];for(let n=0;n<42;n++){let r=new Date(s);r.setDate(r.getDate()+n);let i=r.getFullYear(),o=r.getMonth()+1,u=r.getDate(),d=`${i}-${String(o).padStart(2,`0`)}-${String(u).padStart(2,`0`)}`;l.push({dateStr:d,day:u,isCurrentMonth:o===t&&i===e,isToday:d===a,entities:c.get(d)??[]})}return l}function Pe(e,t,n,r,i){let a=new Date,o=`${a.getFullYear()}-${String(a.getMonth()+1).padStart(2,`0`)}-${String(a.getDate()).padStart(2,`0`)}`,s=new Date(e,t-1,n),c=s.getDay(),l=new Date(s);l.setDate(s.getDate()-c);let u=new Map;for(let e of r){let t=Me(e,i);t&&(u.has(t)||u.set(t,[]),u.get(t).push(e))}let d=[];for(let n=0;n<7;n++){let r=new Date(l);r.setDate(r.getDate()+n);let i=r.getFullYear(),a=r.getMonth()+1,s=r.getDate(),c=`${i}-${String(a).padStart(2,`0`)}-${String(s).padStart(2,`0`)}`;d.push({dateStr:c,day:s,isCurrentMonth:a===t&&i===e,isToday:c===o,entities:u.get(c)??[]})}return d}function Fe(e){if(e.length===0)return``;let t=new Date(e[0].dateStr+`T00:00:00`),n=new Date(e[e.length-1].dateStr+`T00:00:00`),r=t.getMonth()===n.getMonth()&&t.getFullYear()===n.getFullYear(),i=t.getFullYear()===n.getFullYear(),a=e=>e.toLocaleDateString(`en-US`,{month:`short`});return r?`${a(t)} ${t.getDate()} – ${n.getDate()}, ${n.getFullYear()}`:i?`${a(t)} ${t.getDate()} – ${a(n)} ${n.getDate()}, ${n.getFullYear()}`:`${a(t)} ${t.getDate()}, ${t.getFullYear()} – ${a(n)} ${n.getDate()}, ${n.getFullYear()}`}var Ie=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],Le=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],z=t(`<title> </title>`),Re=t(`<svg><!><path d="M30,23V21H27.91a5.9592,5.9592,0,0,0-1.0244-2.4707L28.364,17.05,26.95,15.6362l-1.4788,1.4785A5.9584,5.9584,0,0,0,23,16.09V14H21v2.09a5.9584,5.9584,0,0,0-2.4709,1.0244L17.05,15.6362,15.636,17.05l1.4787,1.479A5.9618,5.9618,0,0,0,16.09,21H14v2h2.09a5.9618,5.9618,0,0,0,1.0244,2.4707L15.636,26.95,17.05,28.3638l1.4788-1.4785A5.9584,5.9584,0,0,0,21,27.91V30h2V27.91a5.9584,5.9584,0,0,0,2.4709-1.0244L26.95,28.3638,28.364,26.95l-1.4787-1.479A5.9592,5.9592,0,0,0,27.91,23Zm-8,3a4,4,0,1,1,4-4A4.0045,4.0045,0,0,1,22,26Z"></path><path d="M28,6a2,2,0,0,0-2-2H22V2H20V4H12V2H10V4H6A2,2,0,0,0,4,6V26a2,2,0,0,0,2,2h4V26H6V6h4V8h2V6h8V8h2V6h4v6h2Z"></path></svg>`);function ze(e,t){let r=b(t,[`children`,`$$slots`,`$$events`,`$$legacy`]),i=b(r,[`size`,`title`]);f(t,!1);let o=y(),s=y(),d=k(t,`size`,8,16),p=k(t,`title`,8,void 0);ee(()=>(v(r),v(p())),()=>{P(o,r[`aria-label`]||r[`aria-labelledby`]||p())}),ee(()=>(_(o),v(r)),()=>{P(s,{"aria-hidden":_(o)?void 0:!0,role:_(o)?`img`:void 0,focusable:Number(r.tabindex)===0?!0:void 0})}),x(),N();var m=Re();T(m,()=>({xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 32`,fill:`currentColor`,preserveAspectRatio:`xMidYMid meet`,width:d(),height:d(),..._(s),...i}));var g=w(m),S=e=>{var t=z(),n=w(t,!0);h(t),A(()=>a(n,p())),c(e,t)};l(g,e=>{p()&&e(S)}),n(2),h(m),c(e,m),u()}var Be=L(`<button class="toolbar-icon-btn" aria-label="Back"><!></button>`),Ve=L(`<!> <!> <!>`,1),He=L(`<button class="sg-sheet-row"><span class="sg-sheet-row-label"> </span> <span class="sg-sheet-row-trail"><!></span></button>`),Ue=L(`<button class="sg-sheet-row"><span class="sg-sheet-row-label"> </span> <span class="sg-sheet-row-trail"><!></span></button>`),We=L(`<button class="sg-sheet-row"><span class="sg-sheet-row-label"> </span> <span class="sg-sheet-row-trail"><!></span></button> <!> <!>`,1),Ge=L(`<button><span class="sg-sheet-row-lead"><!></span> <span class="sg-sheet-row-label">Month</span></button> <button><span class="sg-sheet-row-lead"><!></span> <span class="sg-sheet-row-label">Week</span></button>`,1),Ke=L(`<button><span class="sg-sheet-row-lead"><!></span> <span class="sg-sheet-row-label"> </span></button>`),qe=L(`<div class="sg-sheet-body"><!></div>`),Je=L(`<!> <!>`,1),Ye=L(`<!> <!>`,1),Xe=L(`<!> <!>`,1),Ze=L(`<div class="empty svelte-dnwsps"><p>No date fields available for the selected type.</p> <p class="empty-hint svelte-dnwsps">Try selecting a type with date fields like Task, Project, or Meeting.</p></div>`),Qe=L(`<div class="dow-header svelte-dnwsps"> </div>`),$e=L(`<button class="entity-chip svelte-dnwsps" draggable="true"><span class="chip-label svelte-dnwsps"> </span></button>`),et=L(`<button class="day-view-all svelte-dnwsps">View all</button>`),tt=L(`<div><span> </span> <div class="day-entities svelte-dnwsps"></div> <!></div>`),nt=L(`<div class="calendar-grid svelte-dnwsps"><!> <!></div>`),rt=L(`<div class="tooltip-row svelte-dnwsps"><span class="tooltip-meta svelte-dnwsps"> </span></div>`),it=L(`<span class="tooltip-dot svelte-dnwsps"></span>`),at=L(`<div class="tooltip-row svelte-dnwsps"><!> <span class="tooltip-meta svelte-dnwsps"> </span></div>`),ot=L(`<div class="floating-tooltip svelte-dnwsps"><strong class="tooltip-title svelte-dnwsps"> </strong> <div class="tooltip-row svelte-dnwsps"><span class="tooltip-dot svelte-dnwsps"></span> <span class="tooltip-meta svelte-dnwsps"> </span></div> <!> <!></div>`),st=L(`<button class="overflow-item svelte-dnwsps"><span class="chip-dot"></span> <span class="overflow-item-title svelte-dnwsps"> </span> <span class="overflow-item-type svelte-dnwsps"> </span></button>`),ct=L(`<div class="overflow-backdrop svelte-dnwsps"></div> <div class="overflow-popover svelte-dnwsps"><div class="overflow-list svelte-dnwsps"></div></div>`,1),lt=L(`<div class="calendar-view svelte-dnwsps"><div class="calendar-toolbar svelte-dnwsps"><!> <button><!></button> <!> <div class="toolbar-left svelte-dnwsps"><!> <!></div> <div class="month-nav svelte-dnwsps"><button class="nav-btn svelte-dnwsps"><!></button> <button class="month-label svelte-dnwsps"><span class="month-label-full svelte-dnwsps"> </span> <span class="month-label-short svelte-dnwsps"> </span></button> <button class="nav-btn svelte-dnwsps"><!></button></div> <div class="toolbar-right svelte-dnwsps"><!></div></div> <!></div> <!> <!>`,1);function ut(t,m){f(m,!0);let v=k(m,`lockedType`,3,null),y=k(m,`lockedFolder`,3,null),b=k(m,`lockedFolderPath`,3,null),x=k(m,`storageId`,3,null),T=k(m,`entities`,3,null),ee=k(m,`tagSource`,3,null),N=k(m,`selectedTags`,19,()=>[]),L=r(()=>{let e=ee()??T()??[],t=new Map;for(let n of e){let e=n.fields.tags;if(Array.isArray(e))for(let n of e){let e=String(n);t.set(e,(t.get(e)??0)+1)}}return[...t.entries()].sort((e,t)=>e[0].localeCompare(t[0])).map(([e,t])=>({tag:e,count:t}))}),R=C(!1),z=C(`root`),Re=r(()=>_(z)===`mode`?`View`:_(z)===`sort`?`Sort by`:_(z)===`filter`?`Filter by tag`:`Options`);M(()=>{_(R)||P(z,`root`)});function ut(){P(z,`root`)}function dt(e){m.onTagsChange&&m.onTagsChange(e),P(R,!1)}let ft=r(()=>x()?`sg-calendarview-${x()}`:null);function pt(){if(!_(ft))return null;try{let e=localStorage.getItem(_(ft));if(e)return JSON.parse(e)}catch{}return null}function mt(){if(!_(ft))return;let e={selectedType:v()?null:_(V),dateField:_(H),year:_(U),month:_(W),day:_(G),mode:_(K)};localStorage.setItem(_(ft),JSON.stringify(e))}let ht=x()?`sg-calendarview-${x()}`:null,B=(()=>{if(!ht||typeof localStorage>`u`)return null;try{let e=localStorage.getItem(ht);return e?JSON.parse(e):null}catch{return null}})(),gt=new Date,V=C(E(v()??B?.selectedType??null)),H=C(E(B?.dateField??`due_date`)),U=C(E(B?.year??gt.getFullYear())),W=C(E(B?.month??gt.getMonth()+1)),G=C(E(B?.day??gt.getDate())),K=C(E(B?.mode??`month`)),_t=C(null);M(()=>{if(m.view&&m.view.id!==_(_t)){P(_t,m.view.id,!0);let e=pt();if(e)P(V,v()??e.selectedType??null,!0),P(H,e.dateField??`due_date`,!0),P(U,e.year??new Date().getFullYear(),!0),P(W,e.month??new Date().getMonth()+1,!0),P(G,e.day??new Date().getDate(),!0),P(K,e.mode??`month`,!0);else{let e=m.view.config;P(V,v()??e.selectedType??null,!0),P(H,e.calendar?.dateField??`due_date`,!0),P(U,e.calendar?.year??new Date().getFullYear(),!0),P(W,e.calendar?.month??new Date().getMonth()+1,!0),P(G,new Date().getDate(),!0),P(K,`month`)}}}),M(()=>{v()&&P(V,v())}),M(()=>{_(V),_(H),_(U),_(W),_(G),_(K),_(_t)!==null&&mt()});let q=r(()=>{if(T())return T().filter(e=>!_(V)||e.entityType===_(V));let e=[];for(let t of oe.repos)if(!(y()&&t.name!==y()))for(let n of t.entities)(!_(V)||n.entityType===_(V))&&e.push(n);return e}),vt=r(()=>{let e=new Set;for(let t of _(q))for(let n of Object.keys(t.fields))e.add(n);return e}),J=r(()=>je(_(V),_(vt))),yt=r(()=>_(J).find(e=>e.key===_(H))?.label??_(H));function bt(e){At(e),P(R,!1)}function xt(e){P(K,e,!0),P(R,!1)}M(()=>{_(J).length>0&&!_(J).some(e=>e.key===_(H))&&P(H,_(J)[0].key,!0)});let St=r(()=>_(K)===`week`?Pe(_(U),_(W),_(G),_(q),_(H)):Ne(_(U),_(W),_(q),_(H))),Ct=r(()=>_(K)===`week`?Fe(_(St)):`${Ie[_(W)-1]} ${_(U)}`),wt=r(()=>_(K)===`week`?Fe(_(St)):`${Ie[_(W)-1].slice(0,3)} ${_(U)}`);M(()=>{Ee.count=_(q).length}),te(()=>{Ee.count=null});function Tt(e){let t=new Date(_(U),_(W)-1,_(G));t.setDate(t.getDate()+e),P(U,t.getFullYear(),!0),P(W,t.getMonth()+1),P(G,t.getDate(),!0)}function Et(){_(K)===`week`?Tt(-7):_(W)===1?(P(W,12),I(U,-1)):I(W,-1)}function Dt(){_(K)===`week`?Tt(7):_(W)===12?(P(W,1),I(U)):I(W)}function Ot(){let e=new Date;P(U,e.getFullYear(),!0),P(W,e.getMonth()+1),P(G,e.getDate(),!0)}function kt(){P(K,_(K)===`month`?`week`:`month`,!0)}function At(e){e&&P(H,e,!0)}function jt(e){ie(`/${e.repo}/${e.entityType}/${e.id}`)}let Y=C(null),Mt=C(E({x:0,y:0})),Nt=C(!1),Pt=C(!1);function Ft(e,t){P(Nt,e+10+200>window.innerWidth),P(Pt,t+10+80>window.innerHeight),P(Mt,{x:_(Nt)?e-10:e+10,y:_(Pt)?t-10:t+10},!0)}function It(e,t){P(Y,t,!0),Ft(e.clientX,e.clientY)}function Lt(e){Ft(e.clientX,e.clientY)}function Rt(){P(Y,null)}let zt=C(E([])),Bt=C(E({x:0,y:0})),Vt=C(``);function Ht(e,t,n){e.stopPropagation(),P(zt,t,!0),P(Vt,new Date(n+`T00:00:00`).toLocaleDateString(`en-US`,{weekday:`short`,month:`short`,day:`numeric`}),!0);let r=e.currentTarget.getBoundingClientRect(),i=Math.min(320,t.length*36+40),a=r.left,o=r.bottom+4;a+260>window.innerWidth&&(a=window.innerWidth-260-8),a<8&&(a=8),o+i>window.innerHeight&&(o=r.top-i-4),o<8&&(o=8),P(Bt,{x:a,y:o},!0)}function Ut(){P(zt,[],!0)}let Wt=new Set([`created_at`,`updated_at`]),Gt=r(()=>!Wt.has(_(H))),X=C(null),Z=C(null);function Kt(e,t){P(X,t,!0),e.dataTransfer.effectAllowed=`move`,e.dataTransfer.setData(`text/plain`,t.id),Rt()}function qt(e,t){!_(X)||!_(Gt)||(e.preventDefault(),e.dataTransfer.dropEffect=`move`,P(Z,t,!0))}function Jt(){P(Z,null)}function Yt(){P(X,null),P(Z,null)}async function Xt(e,t){if(e.preventDefault(),!_(X))return;let n=_(X);P(X,null),P(Z,null);try{await ae(n.repo,n.entityType,n.id,{data:{[_(H)]:t}}),await oe.refreshEntities(n.repo)}catch(e){console.error(`Failed to update entity date:`,e)}}var Zt=lt(),Qt=j(Zt),$t=w(Qt),en=w($t),tn=e=>{Ae(e,{get repoName(){return y()},get currentPath(){return b()}})};l(en,e=>{y()&&b()&&e(tn)});var Q=O(en,2);let nn;ze(w(Q),{size:16}),h(Q);var rn=O(Q,2);i(rn,()=>ge,(t,o)=>{o(t,{get open(){return _(R)},set open(e){P(R,e,!0)},children:(t,o)=>{var u=Ye(),d=j(u);i(d,()=>me,(e,t)=>{t(e,{class:`toolbar-icon-btn mobile-overflow`,title:`More options`,"aria-label":`More options`,children:(e,t)=>{Se(e,{})},$$slots:{default:!0}})}),i(O(d,2),()=>fe,(t,o)=>{o(t,{side:`bottom`,class:`sg-mobile-sheet`,children:(t,o)=>{var u=Je(),d=j(u);i(d,()=>he,(e,t)=>{t(e,{class:`sg-sheet-header`,children:(e,t)=>{var r=Ve(),o=j(r),u=e=>{var t=Be();ke(w(t),{size:16}),h(t),g(`click`,t,ut),c(e,t)};l(o,e=>{_(z)!==`root`&&e(u)});var d=O(o,2);i(d,()=>pe,(e,t)=>{t(e,{class:`sg-sheet-title`,children:(e,t)=>{n();var r=s();A(()=>a(r,_(Re))),c(e,r)},$$slots:{default:!0}})}),i(O(d,2),()=>de,(e,t)=>{t(e,{class:`dialog-close-btn`,"aria-label":`Close`,children:(e,t)=>{ve(e,{size:16})},$$slots:{default:!0}})}),c(e,r)},$$slots:{default:!0}})});var f=O(d,2),v=e=>{{let t=r(()=>_(R)&&_(z)===`filter`);_e(e,{get visible(){return _(t)},get availableTags(){return _(L)},get selectedTags(){return N()},onApply:dt})}},y=t=>{var r=qe(),i=w(r),o=e=>{var t=We(),n=j(t),r=w(n),i=w(r);h(r);var o=O(r,2);ye(w(o),{size:16}),h(o),h(n);var s=O(n,2),u=e=>{var t=He(),n=w(t),r=w(n);h(n);var i=O(n,2);ye(w(i),{size:16}),h(i),h(t),A(()=>a(r,`Sort by ${_(yt)??``}`)),g(`click`,t,()=>P(z,`sort`)),c(e,t)};l(s,e=>{_(J).length>1&&e(u)});var d=O(s,2),f=e=>{var t=Ue(),n=w(t),r=w(n);h(n);var i=O(n,2);ye(w(i),{size:16}),h(i),h(t),A(()=>a(r,`Filter by ${(N().length===0?`None`:N().length===1?N()[0]:`${N().length} tags`)??``}`)),g(`click`,t,()=>P(z,`filter`)),c(e,t)};l(d,e=>{m.onTagsChange&&_(L).length>0&&e(f)}),A(()=>a(i,`View ${_(K)===`week`?`Week`:`Month`}`)),g(`click`,n,()=>P(z,`mode`)),c(e,t)},s=e=>{var t=Ge(),r=j(t);let i;var a=w(r),o=w(a),s=e=>{Ce(e,{size:16})};l(o,e=>{_(K)===`month`&&e(s)}),h(a),n(2),h(r);var u=O(r,2);let d;var f=w(u),p=w(f),m=e=>{Ce(e,{size:16})};l(p,e=>{_(K)===`week`&&e(m)}),h(f),n(2),h(u),A(()=>{i=F(r,1,`sg-sheet-row`,null,i,{selected:_(K)===`month`}),d=F(u,1,`sg-sheet-row`,null,d,{selected:_(K)===`week`})}),g(`click`,r,()=>xt(`month`)),g(`click`,u,()=>xt(`week`)),c(e,t)},u=t=>{var n=p();e(j(n),17,()=>_(J),D,(e,t)=>{var n=Ke();let r;var i=w(n),o=w(i),s=e=>{Ce(e,{size:16})};l(o,e=>{_(H)===_(t).key&&e(s)}),h(i);var u=O(i,2),d=w(u,!0);h(u),h(n),A(()=>{r=F(n,1,`sg-sheet-row`,null,r,{selected:_(H)===_(t).key}),a(d,_(t).label)}),g(`click`,n,()=>bt(_(t).key)),c(e,n)}),c(t,n)};l(i,e=>{_(z)===`root`?e(o):_(z)===`mode`?e(s,1):_(z)===`sort`&&e(u,2)}),h(r),c(t,r)};l(f,e=>{_(z)===`filter`?e(v):e(y,-1)}),c(t,u)},$$slots:{default:!0}})}),c(t,u)},$$slots:{default:!0}})});var an=O(rn,2),on=w(an),sn=t=>{var n=p();i(j(n),()=>ue,(t,n)=>{n(t,{type:`single`,get value(){return _(H)},onValueChange:At,children:(t,n)=>{var a=Xe(),o=j(a);{let e=r(()=>_(J).find(e=>e.key===_(H))?.label??_(H));i(o,()=>se,(t,n)=>{n(t,{size:`sm`,get value(){return _(e)}})})}i(O(o,2),()=>le,(t,n)=>{n(t,{align:`start`,children:(t,n)=>{var r=p();e(j(r),17,()=>_(J),D,(e,t)=>{var n=p();i(j(n),()=>ce,(e,n)=>{n(e,{get value(){return _(t).key},get label(){return _(t).label}})}),c(e,n)}),c(t,r)},$$slots:{default:!0}})}),c(t,a)},$$slots:{default:!0}})}),c(t,n)};l(on,e=>{_(J).length>1&&e(sn)});var cn=O(on,2),ln=e=>{var t=p();d(j(t),()=>m.toolbarLeft),c(e,t)};l(cn,e=>{m.toolbarLeft&&e(ln)}),h(an);var un=O(an,2),$=w(un);Oe(w($),{size:16}),h($);var dn=O($,2),fn=w(dn),pn=w(fn,!0);h(fn);var mn=O(fn,2),hn=w(mn,!0);h(mn),h(dn);var gn=O(dn,2);ye(w(gn),{size:16}),h(gn),h(un);var _n=O(un,2),vn=w(_n),yn=e=>{var t=p();d(j(t),()=>m.toolbarRight),c(e,t)};l(vn,e=>{m.toolbarRight&&e(yn)}),h(_n),h($t);var bn=O($t,2),xn=e=>{c(e,Ze())},Sn=t=>{var n=nt(),i=w(n);e(i,17,()=>Le,D,(e,t)=>{var n=Qe(),r=w(n,!0);h(n),A(()=>a(r,_(t))),c(e,n)}),e(O(i,2),17,()=>_(St),D,(t,n,i,s)=>{let u=r(()=>_(n).entities.length>2);var d=tt();let f;var p=w(d);let m;var v=w(p,!0);h(p);var y=O(p,2);e(y,21,()=>_(n).entities,D,(e,t)=>{let n=r(()=>xe(_(t).entityType));var i=$e();let s;var l=w(i),u=w(l,!0);h(l),h(i),A(e=>{s=S(i,``,s,{"border-left-color":_(n)}),a(u,e)},[()=>we(_(t).title)]),o(`dragstart`,i,e=>Kt(e,_(t))),o(`dragend`,i,Yt),g(`click`,i,()=>jt(_(t))),o(`mouseenter`,i,e=>It(e,_(t))),g(`mousemove`,i,Lt),o(`mouseleave`,i,Rt),c(e,i)}),h(y);var b=O(y,2),x=e=>{var t=et();A(()=>ne(t,`title`,`View all ${_(n).entities.length??``}`)),g(`click`,t,e=>Ht(e,_(n).entities,_(n).dateStr)),c(e,t)};l(b,e=>{_(u)&&e(x)}),h(d),A(()=>{f=F(d,1,`calendar-day svelte-dnwsps`,null,f,{"outside-month":!_(n).isCurrentMonth,today:_(n).isToday,"week-mode":_(K)===`week`,"has-overflow":_(u),"drop-target":_(Gt)&&_(Z)===_(n).dateStr}),m=F(p,1,`day-number svelte-dnwsps`,null,m,{"today-number":_(n).isToday}),a(v,_(n).day)}),o(`dragover`,d,e=>qt(e,_(n).dateStr)),o(`dragleave`,d,Jt),o(`drop`,d,e=>Xt(e,_(n).dateStr)),c(t,d)}),h(n),c(t,n)};l(bn,e=>{_(J).length===0?e(xn):e(Sn,-1)}),h(Qt);var Cn=O(Qt,2),wn=e=>{let t=r(()=>xe(_(Y).entityType)),n=r(()=>Me(_(Y),_(H)));var i=ot();let o;var s=w(i),u=w(s,!0);h(s);var d=O(s,2),f=w(d);let p;var m=O(f,2),g=w(m,!0);h(m),h(d);var v=O(d,2),y=e=>{var t=rt(),r=w(t),i=w(r,!0);h(r),h(t),A(e=>a(i,e),[()=>new Date(_(n)+`T00:00:00`).toLocaleDateString(`en-US`,{month:`short`,day:`numeric`,year:`numeric`})]),c(e,t)};l(v,e=>{_(n)&&e(y)});var b=O(v,2),x=e=>{let t=r(()=>De(_(Y).entityType,`status`,String(_(Y).fields.status)));var n=at(),i=w(n),o=e=>{var n=it();let r;A(()=>r=S(n,``,r,{background:_(t)})),c(e,n)};l(i,e=>{_(t)&&e(o)});var s=O(i,2),u=w(s,!0);h(s),h(n),A(e=>a(u,e),[()=>be(String(_(Y).fields.status))]),c(e,n)};l(b,e=>{_(Y).fields.status&&e(x)}),h(i),A((e,n)=>{o=S(i,``,o,{left:`${_(Mt).x??``}px`,top:`${_(Mt).y??``}px`,transform:`translate(${_(Nt)?`-100%`:`0`}, ${_(Pt)?`-100%`:`0`})`}),a(u,e),p=S(f,``,p,{background:_(t)}),a(g,n)},[()=>we(_(Y).title),()=>be(_(Y).entityType)]),c(e,i)};l(Cn,e=>{_(Y)&&e(wn)});var Tn=O(Cn,2),En=t=>{var n=ct(),i=j(n),o=O(i,2);let s;var l=w(o);e(l,21,()=>_(zt),D,(e,t)=>{let n=r(()=>xe(_(t).entityType));var i=st(),o=w(i);let s;var l=O(o,2),u=w(l,!0);h(l),re(l,e=>Te?.(e));var d=O(l,2),f=w(d,!0);h(d),h(i),A((e,t)=>{s=S(o,``,s,{background:_(n)}),a(u,e),a(f,t)},[()=>we(_(t).title),()=>be(_(t).entityType)]),g(`click`,i,()=>{Ut(),jt(_(t))}),c(e,i)}),h(l),h(o),A(()=>s=S(o,``,s,{left:`${_(Bt).x??``}px`,top:`${_(Bt).y??``}px`})),g(`click`,i,Ut),c(t,n)};l(Tn,e=>{_(zt).length>0&&e(En)}),A(()=>{nn=F(Q,1,`toolbar-icon-btn mode-toggle svelte-dnwsps`,null,nn,{active:_(K)===`week`}),ne(Q,`title`,_(K)===`week`?`Switch to month view`:`Switch to week view`),ne($,`title`,_(K)===`week`?`Previous week`:`Previous month`),a(pn,_(Ct)),a(hn,_(wt)),ne(gn,`title`,_(K)===`week`?`Next week`:`Next month`)}),g(`click`,Q,kt),g(`click`,$,Et),g(`click`,dn,Ot),g(`click`,gn,Dt),c(t,Zt),u()}m([`click`,`mousemove`]);export{ut as default};
@@ -1 +1 @@
1
- import"./BT3KAag_.js";import{o as e}from"./B1qgZtLy.js";var t=()=>{let t=e;return{page:{subscribe:t.page.subscribe},navigating:{subscribe:t.navigating.subscribe},updated:t.updated}},n={subscribe(e){return t().page.subscribe(e)}},r={subscribe(e){return t().navigating.subscribe(e)}};export{n,r as t};
1
+ import"./BT3KAag_.js";import{o as e}from"./BNl1RvZ2.js";var t=()=>{let t=e;return{page:{subscribe:t.page.subscribe},navigating:{subscribe:t.navigating.subscribe},updated:t.updated}},n={subscribe(e){return t().page.subscribe(e)}},r={subscribe(e){return t().navigating.subscribe(e)}};export{n,r as t};
@@ -1 +1 @@
1
- import{B as e,Bt as t,Ct as n,F as r,L as i,N as a,Nt as o,Pt as s,Vt as c,X as l,Y as u,_t as d,a as f,at as p,bt as m,ft as h,g,ht as _,it as v,o as y,ot as b,u as x,vt as S}from"./BT3KAag_.js";import"./t62M88qj.js";import"./BZnJ8tbJ.js";import{t as C}from"./Cl2XDvUq.js";var w=e(`<title> </title>`),T=e(`<svg><!><path d="M18 6 16.57 7.393 24.15 15 4 15 4 17 24.15 17 16.57 24.573 18 26 28 16 18 6z"></path></svg>`);function E(e,n){let m=f(n,[`children`,`$$slots`,`$$events`,`$$legacy`]),_=f(m,[`size`,`title`]);s(n,!1);let C=d(),E=d(),D=y(n,`size`,8,16),O=y(n,`title`,8,void 0);v(()=>(u(m),u(O())),()=>{S(C,m[`aria-label`]||m[`aria-labelledby`]||O())}),v(()=>(l(C),u(m)),()=>{S(E,{"aria-hidden":l(C)?void 0:!0,role:l(C)?`img`:void 0,focusable:Number(m.tabindex)===0?!0:void 0})}),p(),x();var k=T();g(k,()=>({xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 32`,fill:`currentColor`,preserveAspectRatio:`xMidYMid meet`,width:D(),height:D(),...l(E),..._}));var A=h(k),j=e=>{var t=w(),n=h(t,!0);c(t),b(()=>r(n,O())),i(e,t)};a(A,e=>{O()&&e(j)}),t(),c(k),i(e,k),o()}var D=e(`<title> </title>`),O=e(`<svg><!><path d="M27.4,14.7l-6.1-6.1C21,8.2,20.5,8,20,8h-8c-1.1,0-2,0.9-2,2v18c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V16.1 C28,15.6,27.8,15.1,27.4,14.7z M20,10l5.9,6H20V10z M12,28V10h6v6c0,1.1,0.9,2,2,2h6l0,10H12z"></path><path d="M6,18H4V4c0-1.1,0.9-2,2-2h14v2H6V18z"></path></svg>`);function k(e,n){let m=f(n,[`children`,`$$slots`,`$$events`,`$$legacy`]),_=f(m,[`size`,`title`]);s(n,!1);let C=d(),w=d(),T=y(n,`size`,8,16),E=y(n,`title`,8,void 0);v(()=>(u(m),u(E())),()=>{S(C,m[`aria-label`]||m[`aria-labelledby`]||E())}),v(()=>(l(C),u(m)),()=>{S(w,{"aria-hidden":l(C)?void 0:!0,role:l(C)?`img`:void 0,focusable:Number(m.tabindex)===0?!0:void 0})}),p(),x();var k=O();g(k,()=>({xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 32`,fill:`currentColor`,preserveAspectRatio:`xMidYMid meet`,width:T(),height:T(),...l(w),..._}));var A=h(k),j=e=>{var t=D(),n=h(t,!0);c(t),b(()=>r(n,E())),i(e,t)};a(A,e=>{E()&&e(j)}),t(2),c(k),i(e,k),o()}function A(){let e=m(_({})),t=null,r=null;function i(e,n,i){r&&=(clearInterval(r),null),t=`${e}/${n}/${i}`,o(`enter`,e,n,i),r=setInterval(()=>{t&&o(`heartbeat`,e,n,i)},3e4)}function a(){if(r&&=(clearInterval(r),null),t){let[e,n,r]=t.split(`/`);e&&n&&r&&o(`leave`,e,n,r),t=null}}function o(e,t,n,r){C.send({type:`presence`,action:e,repo:t,entityType:n,entityId:r})}function s(t){let n=`${t.repo}/${t.entityType}/${t.entityId}`,r=l(e)[n]??[];if(t.action===`leave`)l(e)[n]=r.filter(e=>e.id!==t.user.id);else{let i=r.findIndex(e=>e.id===t.user.id);i>=0?(r[i]=t.user,l(e)[n]=[...r]):l(e)[n]=[...r,t.user]}}function c(){if(S(e,{},!0),!t)return;let[n,r,i]=t.split(`/`);n&&r&&i&&o(`enter`,n,r,i)}function u(t,n,r,i){let a=`${t}/${n}/${r}`,o=l(e)[a]??[];return i?o.filter(e=>e.id!==i):o}function d(t,n){let r=new Map;for(let[i,a]of Object.entries(l(e)))if(i.startsWith(t))for(let e of a)(!n||e.id!==n)&&r.set(e.id,e);return[...r.values()]}function f(e,t){return d(`${e}/`,t)}function p(t){let n=new Map;for(let r of Object.values(l(e)))for(let e of r)(!t||e.id!==t)&&n.set(e.id,e);return[...n.values()]}let h=n(()=>{let t=new Map;for(let n of Object.values(l(e)))for(let e of n)t.set(e.id,e);return[...t.values()]});return{enter:i,leave:a,handlePresenceEvent:s,resetAndResend:c,getPresence:u,getPresenceByPrefix:d,getRepoPresence:f,getAllUsers:p,get allUsers(){return l(h)}}}var j=A();C.setPresenceHandler(e=>j.handlePresenceEvent(e)),C.addConnectHandler(()=>j.resetAndResend()),typeof window<`u`&&window.addEventListener(`beforeunload`,()=>j.leave());export{k as n,E as r,j as t};
1
+ import{B as e,Bt as t,Ct as n,F as r,L as i,N as a,Nt as o,Pt as s,Vt as c,X as l,Y as u,_t as d,a as f,at as p,bt as m,ft as h,g,ht as _,it as v,o as y,ot as b,u as x,vt as S}from"./BT3KAag_.js";import"./t62M88qj.js";import"./BZnJ8tbJ.js";import{t as C}from"./CIrQ1t-t.js";var w=e(`<title> </title>`),T=e(`<svg><!><path d="M18 6 16.57 7.393 24.15 15 4 15 4 17 24.15 17 16.57 24.573 18 26 28 16 18 6z"></path></svg>`);function E(e,n){let m=f(n,[`children`,`$$slots`,`$$events`,`$$legacy`]),_=f(m,[`size`,`title`]);s(n,!1);let C=d(),E=d(),D=y(n,`size`,8,16),O=y(n,`title`,8,void 0);v(()=>(u(m),u(O())),()=>{S(C,m[`aria-label`]||m[`aria-labelledby`]||O())}),v(()=>(l(C),u(m)),()=>{S(E,{"aria-hidden":l(C)?void 0:!0,role:l(C)?`img`:void 0,focusable:Number(m.tabindex)===0?!0:void 0})}),p(),x();var k=T();g(k,()=>({xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 32`,fill:`currentColor`,preserveAspectRatio:`xMidYMid meet`,width:D(),height:D(),...l(E),..._}));var A=h(k),j=e=>{var t=w(),n=h(t,!0);c(t),b(()=>r(n,O())),i(e,t)};a(A,e=>{O()&&e(j)}),t(),c(k),i(e,k),o()}var D=e(`<title> </title>`),O=e(`<svg><!><path d="M27.4,14.7l-6.1-6.1C21,8.2,20.5,8,20,8h-8c-1.1,0-2,0.9-2,2v18c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V16.1 C28,15.6,27.8,15.1,27.4,14.7z M20,10l5.9,6H20V10z M12,28V10h6v6c0,1.1,0.9,2,2,2h6l0,10H12z"></path><path d="M6,18H4V4c0-1.1,0.9-2,2-2h14v2H6V18z"></path></svg>`);function k(e,n){let m=f(n,[`children`,`$$slots`,`$$events`,`$$legacy`]),_=f(m,[`size`,`title`]);s(n,!1);let C=d(),w=d(),T=y(n,`size`,8,16),E=y(n,`title`,8,void 0);v(()=>(u(m),u(E())),()=>{S(C,m[`aria-label`]||m[`aria-labelledby`]||E())}),v(()=>(l(C),u(m)),()=>{S(w,{"aria-hidden":l(C)?void 0:!0,role:l(C)?`img`:void 0,focusable:Number(m.tabindex)===0?!0:void 0})}),p(),x();var k=O();g(k,()=>({xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 32`,fill:`currentColor`,preserveAspectRatio:`xMidYMid meet`,width:T(),height:T(),...l(w),..._}));var A=h(k),j=e=>{var t=D(),n=h(t,!0);c(t),b(()=>r(n,E())),i(e,t)};a(A,e=>{E()&&e(j)}),t(2),c(k),i(e,k),o()}function A(){let e=m(_({})),t=null,r=null;function i(e,n,i){r&&=(clearInterval(r),null),t=`${e}/${n}/${i}`,o(`enter`,e,n,i),r=setInterval(()=>{t&&o(`heartbeat`,e,n,i)},3e4)}function a(){if(r&&=(clearInterval(r),null),t){let[e,n,r]=t.split(`/`);e&&n&&r&&o(`leave`,e,n,r),t=null}}function o(e,t,n,r){C.send({type:`presence`,action:e,repo:t,entityType:n,entityId:r})}function s(t){let n=`${t.repo}/${t.entityType}/${t.entityId}`,r=l(e)[n]??[];if(t.action===`leave`)l(e)[n]=r.filter(e=>e.id!==t.user.id);else{let i=r.findIndex(e=>e.id===t.user.id);i>=0?(r[i]=t.user,l(e)[n]=[...r]):l(e)[n]=[...r,t.user]}}function c(){if(S(e,{},!0),!t)return;let[n,r,i]=t.split(`/`);n&&r&&i&&o(`enter`,n,r,i)}function u(t,n,r,i){let a=`${t}/${n}/${r}`,o=l(e)[a]??[];return i?o.filter(e=>e.id!==i):o}function d(t,n){let r=new Map;for(let[i,a]of Object.entries(l(e)))if(i.startsWith(t))for(let e of a)(!n||e.id!==n)&&r.set(e.id,e);return[...r.values()]}function f(e,t){return d(`${e}/`,t)}function p(t){let n=new Map;for(let r of Object.values(l(e)))for(let e of r)(!t||e.id!==t)&&n.set(e.id,e);return[...n.values()]}let h=n(()=>{let t=new Map;for(let n of Object.values(l(e)))for(let e of n)t.set(e.id,e);return[...t.values()]});return{enter:i,leave:a,handlePresenceEvent:s,resetAndResend:c,getPresence:u,getPresenceByPrefix:d,getRepoPresence:f,getAllUsers:p,get allUsers(){return l(h)}}}var j=A();C.setPresenceHandler(e=>j.handlePresenceEvent(e)),C.addConnectHandler(()=>j.resetAndResend()),typeof window<`u`&&window.addEventListener(`beforeunload`,()=>j.leave());export{k as n,E as r,j as t};
@@ -1 +1 @@
1
- import{A as e,Bt as t,Ct as n,D as r,Et as i,F as a,H as o,L as s,N as c,Nt as l,Pt as u,R as d,Tt as f,Vt as p,Wt as m,X as h,bt as g,ft as _,mt as v,ot as y,pt as b,st as x,vt as S,z as C}from"./BT3KAag_.js";import{r as w}from"./B1qgZtLy.js";import"./t62M88qj.js";import"./CwVKWiij.js";import{n as ee}from"./CmFlP4qY.js";import{k as te,l as ne,o as re,x as T}from"./ZCekGjo6.js";import{i as E,r as D}from"./CpYSBmKC.js";import{t as ie}from"./Cl2XDvUq.js";import{a as ae,c as oe,i as se,n as ce,o as le,r as ue,s as de,t as fe}from"./CxalqrMB.js";import{n as pe,t as O}from"./C3Enww9L2.js";import"./D9-_Euza2.js";import{n as k}from"./C-Ers7Sg2.js";import{t as me}from"./B1pYzlqe.js";import{t as he}from"./BBNNGW_Z.js";import{a as ge,c as _e,n as ve,o as A,r as j,s as M,t as N}from"./6ZlF7oWY.js";import{t as ye}from"./B0xoB9wb.js";import{n as be,t as xe}from"./DIt9lAm9.js";import Se from"./DOpK8moV.js";var Ce=C(`<!> <span> </span>`,1),we=C(`<!> <!>`,1),Te=C(`<p class="dialog-error svelte-2zr2mi"> </p>`),Ee=C(`<!> <div class="new-folder-meta svelte-2zr2mi"><!> <div class="new-folder-parent-row svelte-2zr2mi"><span class="new-folder-meta-label svelte-2zr2mi">in</span> <!></div></div> <!>`,1),De=C(`<!> <!>`,1),Oe=C(`<!> <!> <!>`,1),ke=C(`<p class="dialog-error svelte-2zr2mi"> </p>`),Ae=C(`<!> <!> <!>`,1),je=C(`<!> <!>`,1),Me=C(`<!> <!> <!>`,1),Ne=C(`<!> <span> </span>`,1),Pe=C(`<!> <!>`,1),Fe=C(`<p class="dialog-error svelte-2zr2mi"> </p>`),Ie=C(`<!> <p class="dialog-hint svelte-2zr2mi">Moving across folders changes who has access — folders share access with their parent repo.</p> <!> <!>`,1),Le=C(`<!> <!>`,1),Re=C(`<!> <!> <!>`,1),ze=C(`<!> <!>`,1),Be=C(`<span class="inline-spinner svelte-2zr2mi" aria-hidden="true"></span> <span class="inline-label-hidden svelte-2zr2mi">Delete</span>`,1),Ve=C(`<!> <!>`,1),He=C(`<!> <!>`,1),Ue=C(`<!> <!> <!> <!>`,1);function We(C,We){u(We,!0);let P=()=>i(ee,`$page`,Ge),[Ge,Ke]=f(),qe=(t,i=m,o=m,c=m)=>{var l=we(),u=b(l);{let e=n(()=>it(i(),o().path)),t=n(()=>rt(i(),o().path)),l=n(()=>Math.min(c(),4));r(u,()=>xe,(n,r)=>{r(n,{class:`move-row-nested`,get selected(){return h(e)},get disabled(){return h(t)},get"data-move-row"(){return`${i()??``}/${o().path??``}`},get style(){return`--move-depth: ${h(l)??``}`},onclick:()=>at(i(),o().path),children:(e,t)=>{var n=Ce(),r=b(n);ye(r,{size:14});var i=v(r,2),c=_(i,!0);p(i),y(e=>a(c,e),[()=>D(o().name,o().displayName)]),s(e,n)},$$slots:{default:!0}})})}e(v(u,2),17,()=>o().children,e=>e.path,(e,t)=>{qe(e,i,()=>h(t),()=>c()+1)}),s(t,l)};function Je(e,t){if(!t)return null;let n=t.split(`/`),r=e,i=null;for(let e of n){let t=r.find(t=>t.name===e)??null;if(!t)return null;i=t,r=t.children}return i}let F=n(()=>me.state);function I(){me.close()}function L(e){if(!e)return``;let t=e.split(`/`);return t[t.length-1]}function R(e){return!e||!e.includes(`/`)?``:e.slice(0,e.lastIndexOf(`/`))}function z(e,t){return e?`${e}/${t}`:t}function Ye(e){return e.trim().toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-|-$/g,``)}function Xe(e,t){let n=P().url.pathname,r=`/workspace/folder/${encodeURIComponent(e)}`;if(!n.startsWith(r))return!1;let i=n.slice(r.length).replace(/^\/+|\/+$/g,``).split(`/`).map(decodeURIComponent).join(`/`);return i===t||i.startsWith(t+`/`)}function Ze(e){let t=e.length;for(let n of e)t+=Ze(n.children);return t}function Qe(e,t){for(let n of e){if(n.path===t)return n;if(t.startsWith(n.path+`/`))return Qe(n.children,t)}return null}function $e(e,t){let n=E.repos.find(t=>t.name===e);if(!n)return{entries:0,subfolders:0};let r=Qe(n.subfolders,t),i=r?Ze(r.children):0;return{entries:n.entities.filter(e=>e.folder_path===t||e.folder_path.startsWith(t+`/`)).length,subfolders:i}}let B=g(``),V=g(null),H=g(!1),U=g(null),W=g(``),G=g(``);x(()=>{h(F)?.kind===`newFolder`&&(S(B,``),S(U,null),S(W,h(F).repo,!0),S(G,h(F).path,!0))}),x(()=>{h(F)?.kind===`newFolder`&&h(V)&&requestAnimationFrame(()=>h(V)?.focus())});async function et(){if(!h(F)||h(F).kind!==`newFolder`||h(H))return;let e=h(B).trim(),t=Ye(e);if(!t){S(U,`Enter a name`);return}S(H,!0);try{if(!h(W))await E.addFolder(t,e),I(),w(k(t,``));else{let n=z(h(G),t),r=e===D(t)?void 0:e;await re(h(W),n,r),await E.refreshRepoFolders(h(W));let i=h(W);I(),w(k(i,n))}}catch(e){S(U,e?.message??`Failed to create folder`,!0)}finally{S(H,!1)}}let K=g(``),q=g(null),J=g(!1),Y=g(null);x(()=>{if(h(F)?.kind===`rename`){if(h(F).path===``)S(K,E.repos.find(e=>e.name===h(F).repo)?.displayName??h(F).repo,!0);else{let e=E.repos.find(e=>e.name===h(F).repo);S(K,(e?Je(e.subfolders,h(F).path):null)?.displayName??D(L(h(F).path)),!0)}S(Y,null)}}),x(()=>{h(F)?.kind===`rename`&&h(q)&&requestAnimationFrame(()=>{h(q)?.focus(),h(q)?.select()})});async function tt(){if(!h(F)||h(F).kind!==`rename`||h(J))return;let e=h(K).trim(),t=Ye(e);if(!t){S(Y,`Enter a name`);return}let n=h(F).repo,r=h(F).path;if(r===``){S(J,!0);try{let r=t!==n;await E.renameFolderTo(n,e,r?t:void 0);let i=P().url.pathname===`/workspace/folder/${encodeURIComponent(n)}`||P().url.pathname===`/workspace/folder/${n}`;I(),r&&i&&w(`/workspace/folder/${encodeURIComponent(t)}`)}catch(e){S(Y,e?.message??`Failed to rename folder`,!0)}finally{S(J,!1)}return}let i=z(R(r),t),a=e===D(t)?``:e;if(i===r){S(J,!0);try{await T(n,r,r,a),await E.refreshRepoAfterFolderMutation(n),I()}catch(e){S(Y,e?.message??`Failed to update folder`,!0)}finally{S(J,!1)}return}S(J,!0);try{await T(n,r,i,a);let e=Xe(n,r);await E.refreshRepoAfterFolderMutation(n),I(),e&&w(k(n,i))}catch(e){S(Y,e?.message??`Failed to rename folder`,!0)}finally{S(J,!1)}}let X=g(null),Z=g(!1),Q=g(null),nt=g(null);x(()=>{h(F)?.kind===`move`&&(S(X,null),S(Q,null))}),x(()=>{if(h(F)?.kind!==`move`)return;let e=`${h(F).repo}/${h(F).path}`;requestAnimationFrame(()=>{requestAnimationFrame(()=>{(h(nt)?.querySelector(`[data-move-row="${CSS.escape(e)}"]`))?.scrollIntoView({block:`center`})})})});function rt(e,t){if(!h(F)||h(F).kind!==`move`)return!0;if(e!==h(F).repo)return!1;let n=h(F).path;return!!(t===n||t.startsWith(n+`/`)||t===R(n))}function it(e,t){return h(X)?.repo===e&&h(X)?.path===t}function at(e,t){rt(e,t)||S(X,{repo:e,path:t},!0)}async function ot(e,t,n,r,i){await te(e,t,n,i)}async function st(){if(!h(F)||h(F).kind!==`move`||h(Z)||h(X)===null)return;let e=h(F).repo,t=h(F).path,n=h(X).repo,r=h(X).path,i=z(r,L(t));if(e===n&&i===t){I();return}S(Z,!0);try{e===n?await T(e,t,i):await ot(e,t,n,r,i);let a=Xe(e,t);await E.refreshRepoAfterFolderMutation(e),e!==n&&await E.refreshRepoAfterFolderMutation(n),I(),a&&w(k(n,i))}catch(e){S(Q,e?.message??`Failed to move folder`,!0)}finally{S(Z,!1)}}let $=g(!1),ct=n(()=>h(F)?.kind===`delete`?$e(h(F).repo,h(F).path):{entries:0,subfolders:0}),lt=n(()=>{if(h(F)?.kind!==`delete`)return``;let e=E.repos.find(e=>e.name===h(F).repo),t=(e?Je(e.subfolders,h(F).path):null)?.displayName??D(L(h(F).path)),{entries:n,subfolders:r}=h(ct);if(n===0&&r===0)return`Delete folder “${t}”? This cannot be undone.`;let i=[];return n>0&&i.push(`${n} ${n===1?`entry`:`entries`}`),r>0&&i.push(`${r} ${r===1?`subfolder`:`subfolders`}`),`Delete folder “${t}” and everything inside it (${i.join(`, `)})? This cannot be undone.`});async function ut(){if(!(!h(F)||h(F).kind!==`delete`||h($))){S($,!0);try{await ne(h(F).repo,h(F).path,!0);let e=Xe(h(F).repo,h(F).path),t=h(F).repo,n=R(h(F).path);await E.refreshRepoAfterFolderMutation(t),I(),e&&w(k(t,n))}catch(e){ie.showToast(e?.message??`Failed to delete folder`),S($,!1)}finally{S($,!1)}}}let dt=n(()=>h(F)?.kind===`move`?E.repos.slice().sort((e,t)=>e.displayName.localeCompare(t.displayName)):[]);var ft=Ue(),pt=b(ft);{let e=n(()=>h(F)?.kind===`newFolder`);r(pt,()=>_e,(i,l)=>{l(i,{get open(){return h(e)},onOpenChange:e=>{e||I()},children:(e,i)=>{var l=d();r(b(l),()=>M,(e,i)=>{i(e,{size:`sm`,children:(e,i)=>{var l=Oe(),u=b(l);r(u,()=>A,(e,t)=>{t(e,{class:`close-only-header`,children:(e,t)=>{var n=d();r(b(n),()=>N,(e,t)=>{t(e,{})}),s(e,n)},$$slots:{default:!0}})});var f=v(u,2);r(f,()=>j,(e,n)=>{n(e,{class:`dialog-body-lg`,children:(e,n)=>{var i=Ee(),l=b(i);r(l,()=>ge,(e,n)=>{n(e,{children:(e,n)=>{t(),s(e,o(`New Folder`))},$$slots:{default:!0}})});var u=v(l,2),d=_(u);he(d,{type:`text`,placeholder:`Folder name`,onkeydown:e=>{e.key===`Enter`&&(e.preventDefault(),et())},get ref(){return h(V)},set ref(e){S(V,e,!0)},get value(){return h(B)},set value(e){S(B,e,!0)}});var f=v(d,2);Se(v(_(f),2),{get repos(){return E.repos},get repo(){return h(W)},get folderPath(){return h(G)},allowWorkspaceRoot:!0,onchange:({repo:e,folderPath:t})=>{S(W,e,!0),S(G,t,!0)}}),p(f),p(u);var m=v(u,2),g=e=>{var t=Te(),n=_(t,!0);p(t),y(()=>a(n,h(U))),s(e,t)};c(m,e=>{h(U)&&e(g)}),s(e,i)},$$slots:{default:!0}})}),r(v(f,2),()=>ve,(e,r)=>{r(e,{children:(e,r)=>{var i=De(),a=b(i);O(a,{variant:`ghost`,onclick:I,children:(e,n)=>{t(),s(e,o(`Cancel`))},$$slots:{default:!0}});var c=v(a,2);{let e=n(()=>!h(B).trim());O(c,{variant:`accent`,get disabled(){return h(e)},get loading(){return h(H)},onclick:et,children:(e,n)=>{t(),s(e,o(`Create`))},$$slots:{default:!0}})}s(e,i)},$$slots:{default:!0}})}),s(e,l)},$$slots:{default:!0}})}),s(e,l)},$$slots:{default:!0}})})}var mt=v(pt,2);{let e=n(()=>h(F)?.kind===`rename`);r(mt,()=>_e,(i,l)=>{l(i,{get open(){return h(e)},onOpenChange:e=>{e||I()},children:(e,i)=>{var l=d();r(b(l),()=>M,(e,i)=>{i(e,{size:`sm`,children:(e,i)=>{var l=Me(),u=b(l);r(u,()=>A,(e,t)=>{t(e,{class:`close-only-header`,children:(e,t)=>{var n=d();r(b(n),()=>N,(e,t)=>{t(e,{})}),s(e,n)},$$slots:{default:!0}})});var f=v(u,2);r(f,()=>j,(e,n)=>{n(e,{class:`dialog-body-lg`,children:(e,n)=>{var i=Ae(),l=b(i);r(l,()=>ge,(e,n)=>{n(e,{children:(e,n)=>{t(),s(e,o(`Rename Folder`))},$$slots:{default:!0}})});var u=v(l,2);he(u,{type:`text`,placeholder:`Folder name`,onkeydown:e=>{e.key===`Enter`&&(e.preventDefault(),tt())},get ref(){return h(q)},set ref(e){S(q,e,!0)},get value(){return h(K)},set value(e){S(K,e,!0)}});var d=v(u,2),f=e=>{var t=ke(),n=_(t,!0);p(t),y(()=>a(n,h(Y))),s(e,t)};c(d,e=>{h(Y)&&e(f)}),s(e,i)},$$slots:{default:!0}})}),r(v(f,2),()=>ve,(e,r)=>{r(e,{children:(e,r)=>{var i=je(),a=b(i);O(a,{variant:`ghost`,onclick:I,children:(e,n)=>{t(),s(e,o(`Cancel`))},$$slots:{default:!0}});var c=v(a,2);{let e=n(()=>!h(K).trim());O(c,{variant:`accent`,get disabled(){return h(e)},get loading(){return h(J)},onclick:tt,children:(e,n)=>{t(),s(e,o(`Rename`))},$$slots:{default:!0}})}s(e,i)},$$slots:{default:!0}})}),s(e,l)},$$slots:{default:!0}})}),s(e,l)},$$slots:{default:!0}})})}var ht=v(mt,2);{let i=n(()=>h(F)?.kind===`move`);r(ht,()=>_e,(l,u)=>{u(l,{get open(){return h(i)},onOpenChange:e=>{e||I()},children:(i,l)=>{var u=d();r(b(u),()=>M,(i,l)=>{l(i,{size:`sm`,children:(i,l)=>{var u=Re(),f=b(u);r(f,()=>A,(e,t)=>{t(e,{class:`close-only-header`,children:(e,t)=>{var n=d();r(b(n),()=>N,(e,t)=>{t(e,{})}),s(e,n)},$$slots:{default:!0}})});var m=v(f,2);r(m,()=>j,(i,l)=>{l(i,{class:`dialog-body-lg`,children:(i,l)=>{var u=Ie(),f=b(u);r(f,()=>ge,(e,n)=>{n(e,{children:(e,n)=>{t(),s(e,o(`Move Folder`))},$$slots:{default:!0}})});var m=v(f,4);r(m,()=>be,(t,i)=>{i(t,{"aria-label":`Choose destination folder`,get ref(){return h(nt)},set ref(e){S(nt,e,!0)},children:(t,i)=>{var o=d();e(b(o),17,()=>h(dt),e=>e.name,(t,i)=>{var o=Pe(),c=b(o);{let e=n(()=>it(h(i).name,``)),t=n(()=>rt(h(i).name,``));r(c,()=>xe,(n,r)=>{r(n,{class:`move-row-repo`,get selected(){return h(e)},get disabled(){return h(t)},get"data-move-row"(){return`${h(i).name??``}/`},onclick:()=>at(h(i).name,``),children:(e,t)=>{var n=Ne(),r=b(n);ye(r,{size:14});var o=v(r,2),c=_(o,!0);p(o),y(()=>a(c,h(i).displayName)),s(e,n)},$$slots:{default:!0}})})}e(v(c,2),17,()=>h(i).subfolders,e=>e.path,(e,t)=>{qe(e,()=>h(i).name,()=>h(t),()=>1)}),s(t,o)}),s(t,o)},$$slots:{default:!0}})});var g=v(m,2),x=e=>{var t=Fe(),n=_(t,!0);p(t),y(()=>a(n,h(Q))),s(e,t)};c(g,e=>{h(Q)&&e(x)}),s(i,u)},$$slots:{default:!0}})}),r(v(m,2),()=>ve,(e,r)=>{r(e,{children:(e,r)=>{var i=Le(),a=b(i);O(a,{variant:`ghost`,onclick:I,children:(e,n)=>{t(),s(e,o(`Cancel`))},$$slots:{default:!0}});var c=v(a,2);{let e=n(()=>h(X)===null);O(c,{variant:`accent`,get disabled(){return h(e)},get loading(){return h(Z)},onclick:st,children:(e,n)=>{t(),s(e,o(`Move`))},$$slots:{default:!0}})}s(e,i)},$$slots:{default:!0}})}),s(i,u)},$$slots:{default:!0}})}),s(i,u)},$$slots:{default:!0}})})}var gt=v(ht,2);{let e=n(()=>h(F)?.kind===`delete`);r(gt,()=>oe,(i,l)=>{l(i,{get open(){return h(e)},onOpenChange:e=>{e||I()},children:(e,i)=>{var l=d();r(b(l),()=>ce,(e,i)=>{i(e,{children:(e,i)=>{var l=He(),u=b(l);r(u,()=>ue,(e,n)=>{n(e,{children:(e,n)=>{var i=ze(),c=b(i);r(c,()=>de,(e,n)=>{n(e,{children:(e,n)=>{t(),s(e,o(`Delete Folder`))},$$slots:{default:!0}})}),r(v(c,2),()=>fe,(e,n)=>{n(e,{children:(e,n)=>{t();var r=o();y(()=>a(r,h(lt))),s(e,r)},$$slots:{default:!0}})}),s(e,i)},$$slots:{default:!0}})}),r(v(u,2),()=>se,(e,i)=>{i(e,{children:(e,i)=>{var a=Ve(),l=b(a);{let e=n(()=>pe({variant:`ghost`}));r(l,()=>ae,(n,r)=>{r(n,{get class(){return h(e)},onclick:I,children:(e,n)=>{t(),s(e,o(`Cancel`))},$$slots:{default:!0}})})}var u=v(l,2);{let e=n(()=>`${pe({variant:`destructive`})}${h($)?` relative`:``}`);r(u,()=>le,(n,r)=>{r(n,{get class(){return h(e)},onclick:ut,get disabled(){return h($)},get"aria-busy"(){return h($)},children:(e,n)=>{var r=d(),i=b(r),a=e=>{var n=Be();t(2),s(e,n)},l=e=>{s(e,o(`Delete`))};c(i,e=>{h($)?e(a):e(l,-1)}),s(e,r)},$$slots:{default:!0}})})}s(e,a)},$$slots:{default:!0}})}),s(e,l)},$$slots:{default:!0}})}),s(e,l)},$$slots:{default:!0}})})}s(C,ft),l(),Ke()}export{We as default};
1
+ import{A as e,Bt as t,Ct as n,D as r,Et as i,F as a,H as o,L as s,N as c,Nt as l,Pt as u,R as d,Tt as f,Vt as p,Wt as m,X as h,bt as g,ft as _,mt as v,ot as y,pt as b,st as x,vt as S,z as C}from"./BT3KAag_.js";import{r as w}from"./BNl1RvZ2.js";import"./t62M88qj.js";import"./CrLLAn6A.js";import{n as ee}from"./B24UNsyl.js";import{k as te,l as ne,o as re,x as T}from"./ZCekGjo6.js";import{i as E,r as D}from"./CpYSBmKC.js";import{t as ie}from"./CIrQ1t-t.js";import{a as ae,c as oe,i as se,n as ce,o as le,r as ue,s as de,t as fe}from"./CxalqrMB.js";import{n as pe,t as O}from"./C3Enww9L2.js";import"./D9-_Euza2.js";import{n as k}from"./C-Ers7Sg2.js";import{t as me}from"./B1pYzlqe.js";import{t as he}from"./BBNNGW_Z.js";import{a as ge,c as _e,n as ve,o as A,r as j,s as M,t as N}from"./6ZlF7oWY.js";import{t as ye}from"./B0xoB9wb.js";import{n as be,t as xe}from"./DIt9lAm9.js";import Se from"./DOpK8moV.js";var Ce=C(`<!> <span> </span>`,1),we=C(`<!> <!>`,1),Te=C(`<p class="dialog-error svelte-2zr2mi"> </p>`),Ee=C(`<!> <div class="new-folder-meta svelte-2zr2mi"><!> <div class="new-folder-parent-row svelte-2zr2mi"><span class="new-folder-meta-label svelte-2zr2mi">in</span> <!></div></div> <!>`,1),De=C(`<!> <!>`,1),Oe=C(`<!> <!> <!>`,1),ke=C(`<p class="dialog-error svelte-2zr2mi"> </p>`),Ae=C(`<!> <!> <!>`,1),je=C(`<!> <!>`,1),Me=C(`<!> <!> <!>`,1),Ne=C(`<!> <span> </span>`,1),Pe=C(`<!> <!>`,1),Fe=C(`<p class="dialog-error svelte-2zr2mi"> </p>`),Ie=C(`<!> <p class="dialog-hint svelte-2zr2mi">Moving across folders changes who has access — folders share access with their parent repo.</p> <!> <!>`,1),Le=C(`<!> <!>`,1),Re=C(`<!> <!> <!>`,1),ze=C(`<!> <!>`,1),Be=C(`<span class="inline-spinner svelte-2zr2mi" aria-hidden="true"></span> <span class="inline-label-hidden svelte-2zr2mi">Delete</span>`,1),Ve=C(`<!> <!>`,1),He=C(`<!> <!>`,1),Ue=C(`<!> <!> <!> <!>`,1);function We(C,We){u(We,!0);let P=()=>i(ee,`$page`,Ge),[Ge,Ke]=f(),qe=(t,i=m,o=m,c=m)=>{var l=we(),u=b(l);{let e=n(()=>it(i(),o().path)),t=n(()=>rt(i(),o().path)),l=n(()=>Math.min(c(),4));r(u,()=>xe,(n,r)=>{r(n,{class:`move-row-nested`,get selected(){return h(e)},get disabled(){return h(t)},get"data-move-row"(){return`${i()??``}/${o().path??``}`},get style(){return`--move-depth: ${h(l)??``}`},onclick:()=>at(i(),o().path),children:(e,t)=>{var n=Ce(),r=b(n);ye(r,{size:14});var i=v(r,2),c=_(i,!0);p(i),y(e=>a(c,e),[()=>D(o().name,o().displayName)]),s(e,n)},$$slots:{default:!0}})})}e(v(u,2),17,()=>o().children,e=>e.path,(e,t)=>{qe(e,i,()=>h(t),()=>c()+1)}),s(t,l)};function Je(e,t){if(!t)return null;let n=t.split(`/`),r=e,i=null;for(let e of n){let t=r.find(t=>t.name===e)??null;if(!t)return null;i=t,r=t.children}return i}let F=n(()=>me.state);function I(){me.close()}function L(e){if(!e)return``;let t=e.split(`/`);return t[t.length-1]}function R(e){return!e||!e.includes(`/`)?``:e.slice(0,e.lastIndexOf(`/`))}function z(e,t){return e?`${e}/${t}`:t}function Ye(e){return e.trim().toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-|-$/g,``)}function Xe(e,t){let n=P().url.pathname,r=`/workspace/folder/${encodeURIComponent(e)}`;if(!n.startsWith(r))return!1;let i=n.slice(r.length).replace(/^\/+|\/+$/g,``).split(`/`).map(decodeURIComponent).join(`/`);return i===t||i.startsWith(t+`/`)}function Ze(e){let t=e.length;for(let n of e)t+=Ze(n.children);return t}function Qe(e,t){for(let n of e){if(n.path===t)return n;if(t.startsWith(n.path+`/`))return Qe(n.children,t)}return null}function $e(e,t){let n=E.repos.find(t=>t.name===e);if(!n)return{entries:0,subfolders:0};let r=Qe(n.subfolders,t),i=r?Ze(r.children):0;return{entries:n.entities.filter(e=>e.folder_path===t||e.folder_path.startsWith(t+`/`)).length,subfolders:i}}let B=g(``),V=g(null),H=g(!1),U=g(null),W=g(``),G=g(``);x(()=>{h(F)?.kind===`newFolder`&&(S(B,``),S(U,null),S(W,h(F).repo,!0),S(G,h(F).path,!0))}),x(()=>{h(F)?.kind===`newFolder`&&h(V)&&requestAnimationFrame(()=>h(V)?.focus())});async function et(){if(!h(F)||h(F).kind!==`newFolder`||h(H))return;let e=h(B).trim(),t=Ye(e);if(!t){S(U,`Enter a name`);return}S(H,!0);try{if(!h(W))await E.addFolder(t,e),I(),w(k(t,``));else{let n=z(h(G),t),r=e===D(t)?void 0:e;await re(h(W),n,r),await E.refreshRepoFolders(h(W));let i=h(W);I(),w(k(i,n))}}catch(e){S(U,e?.message??`Failed to create folder`,!0)}finally{S(H,!1)}}let K=g(``),q=g(null),J=g(!1),Y=g(null);x(()=>{if(h(F)?.kind===`rename`){if(h(F).path===``)S(K,E.repos.find(e=>e.name===h(F).repo)?.displayName??h(F).repo,!0);else{let e=E.repos.find(e=>e.name===h(F).repo);S(K,(e?Je(e.subfolders,h(F).path):null)?.displayName??D(L(h(F).path)),!0)}S(Y,null)}}),x(()=>{h(F)?.kind===`rename`&&h(q)&&requestAnimationFrame(()=>{h(q)?.focus(),h(q)?.select()})});async function tt(){if(!h(F)||h(F).kind!==`rename`||h(J))return;let e=h(K).trim(),t=Ye(e);if(!t){S(Y,`Enter a name`);return}let n=h(F).repo,r=h(F).path;if(r===``){S(J,!0);try{let r=t!==n;await E.renameFolderTo(n,e,r?t:void 0);let i=P().url.pathname===`/workspace/folder/${encodeURIComponent(n)}`||P().url.pathname===`/workspace/folder/${n}`;I(),r&&i&&w(`/workspace/folder/${encodeURIComponent(t)}`)}catch(e){S(Y,e?.message??`Failed to rename folder`,!0)}finally{S(J,!1)}return}let i=z(R(r),t),a=e===D(t)?``:e;if(i===r){S(J,!0);try{await T(n,r,r,a),await E.refreshRepoAfterFolderMutation(n),I()}catch(e){S(Y,e?.message??`Failed to update folder`,!0)}finally{S(J,!1)}return}S(J,!0);try{await T(n,r,i,a);let e=Xe(n,r);await E.refreshRepoAfterFolderMutation(n),I(),e&&w(k(n,i))}catch(e){S(Y,e?.message??`Failed to rename folder`,!0)}finally{S(J,!1)}}let X=g(null),Z=g(!1),Q=g(null),nt=g(null);x(()=>{h(F)?.kind===`move`&&(S(X,null),S(Q,null))}),x(()=>{if(h(F)?.kind!==`move`)return;let e=`${h(F).repo}/${h(F).path}`;requestAnimationFrame(()=>{requestAnimationFrame(()=>{(h(nt)?.querySelector(`[data-move-row="${CSS.escape(e)}"]`))?.scrollIntoView({block:`center`})})})});function rt(e,t){if(!h(F)||h(F).kind!==`move`)return!0;if(e!==h(F).repo)return!1;let n=h(F).path;return!!(t===n||t.startsWith(n+`/`)||t===R(n))}function it(e,t){return h(X)?.repo===e&&h(X)?.path===t}function at(e,t){rt(e,t)||S(X,{repo:e,path:t},!0)}async function ot(e,t,n,r,i){await te(e,t,n,i)}async function st(){if(!h(F)||h(F).kind!==`move`||h(Z)||h(X)===null)return;let e=h(F).repo,t=h(F).path,n=h(X).repo,r=h(X).path,i=z(r,L(t));if(e===n&&i===t){I();return}S(Z,!0);try{e===n?await T(e,t,i):await ot(e,t,n,r,i);let a=Xe(e,t);await E.refreshRepoAfterFolderMutation(e),e!==n&&await E.refreshRepoAfterFolderMutation(n),I(),a&&w(k(n,i))}catch(e){S(Q,e?.message??`Failed to move folder`,!0)}finally{S(Z,!1)}}let $=g(!1),ct=n(()=>h(F)?.kind===`delete`?$e(h(F).repo,h(F).path):{entries:0,subfolders:0}),lt=n(()=>{if(h(F)?.kind!==`delete`)return``;let e=E.repos.find(e=>e.name===h(F).repo),t=(e?Je(e.subfolders,h(F).path):null)?.displayName??D(L(h(F).path)),{entries:n,subfolders:r}=h(ct);if(n===0&&r===0)return`Delete folder “${t}”? This cannot be undone.`;let i=[];return n>0&&i.push(`${n} ${n===1?`entry`:`entries`}`),r>0&&i.push(`${r} ${r===1?`subfolder`:`subfolders`}`),`Delete folder “${t}” and everything inside it (${i.join(`, `)})? This cannot be undone.`});async function ut(){if(!(!h(F)||h(F).kind!==`delete`||h($))){S($,!0);try{await ne(h(F).repo,h(F).path,!0);let e=Xe(h(F).repo,h(F).path),t=h(F).repo,n=R(h(F).path);await E.refreshRepoAfterFolderMutation(t),I(),e&&w(k(t,n))}catch(e){ie.showToast(e?.message??`Failed to delete folder`),S($,!1)}finally{S($,!1)}}}let dt=n(()=>h(F)?.kind===`move`?E.repos.slice().sort((e,t)=>e.displayName.localeCompare(t.displayName)):[]);var ft=Ue(),pt=b(ft);{let e=n(()=>h(F)?.kind===`newFolder`);r(pt,()=>_e,(i,l)=>{l(i,{get open(){return h(e)},onOpenChange:e=>{e||I()},children:(e,i)=>{var l=d();r(b(l),()=>M,(e,i)=>{i(e,{size:`sm`,children:(e,i)=>{var l=Oe(),u=b(l);r(u,()=>A,(e,t)=>{t(e,{class:`close-only-header`,children:(e,t)=>{var n=d();r(b(n),()=>N,(e,t)=>{t(e,{})}),s(e,n)},$$slots:{default:!0}})});var f=v(u,2);r(f,()=>j,(e,n)=>{n(e,{class:`dialog-body-lg`,children:(e,n)=>{var i=Ee(),l=b(i);r(l,()=>ge,(e,n)=>{n(e,{children:(e,n)=>{t(),s(e,o(`New Folder`))},$$slots:{default:!0}})});var u=v(l,2),d=_(u);he(d,{type:`text`,placeholder:`Folder name`,onkeydown:e=>{e.key===`Enter`&&(e.preventDefault(),et())},get ref(){return h(V)},set ref(e){S(V,e,!0)},get value(){return h(B)},set value(e){S(B,e,!0)}});var f=v(d,2);Se(v(_(f),2),{get repos(){return E.repos},get repo(){return h(W)},get folderPath(){return h(G)},allowWorkspaceRoot:!0,onchange:({repo:e,folderPath:t})=>{S(W,e,!0),S(G,t,!0)}}),p(f),p(u);var m=v(u,2),g=e=>{var t=Te(),n=_(t,!0);p(t),y(()=>a(n,h(U))),s(e,t)};c(m,e=>{h(U)&&e(g)}),s(e,i)},$$slots:{default:!0}})}),r(v(f,2),()=>ve,(e,r)=>{r(e,{children:(e,r)=>{var i=De(),a=b(i);O(a,{variant:`ghost`,onclick:I,children:(e,n)=>{t(),s(e,o(`Cancel`))},$$slots:{default:!0}});var c=v(a,2);{let e=n(()=>!h(B).trim());O(c,{variant:`accent`,get disabled(){return h(e)},get loading(){return h(H)},onclick:et,children:(e,n)=>{t(),s(e,o(`Create`))},$$slots:{default:!0}})}s(e,i)},$$slots:{default:!0}})}),s(e,l)},$$slots:{default:!0}})}),s(e,l)},$$slots:{default:!0}})})}var mt=v(pt,2);{let e=n(()=>h(F)?.kind===`rename`);r(mt,()=>_e,(i,l)=>{l(i,{get open(){return h(e)},onOpenChange:e=>{e||I()},children:(e,i)=>{var l=d();r(b(l),()=>M,(e,i)=>{i(e,{size:`sm`,children:(e,i)=>{var l=Me(),u=b(l);r(u,()=>A,(e,t)=>{t(e,{class:`close-only-header`,children:(e,t)=>{var n=d();r(b(n),()=>N,(e,t)=>{t(e,{})}),s(e,n)},$$slots:{default:!0}})});var f=v(u,2);r(f,()=>j,(e,n)=>{n(e,{class:`dialog-body-lg`,children:(e,n)=>{var i=Ae(),l=b(i);r(l,()=>ge,(e,n)=>{n(e,{children:(e,n)=>{t(),s(e,o(`Rename Folder`))},$$slots:{default:!0}})});var u=v(l,2);he(u,{type:`text`,placeholder:`Folder name`,onkeydown:e=>{e.key===`Enter`&&(e.preventDefault(),tt())},get ref(){return h(q)},set ref(e){S(q,e,!0)},get value(){return h(K)},set value(e){S(K,e,!0)}});var d=v(u,2),f=e=>{var t=ke(),n=_(t,!0);p(t),y(()=>a(n,h(Y))),s(e,t)};c(d,e=>{h(Y)&&e(f)}),s(e,i)},$$slots:{default:!0}})}),r(v(f,2),()=>ve,(e,r)=>{r(e,{children:(e,r)=>{var i=je(),a=b(i);O(a,{variant:`ghost`,onclick:I,children:(e,n)=>{t(),s(e,o(`Cancel`))},$$slots:{default:!0}});var c=v(a,2);{let e=n(()=>!h(K).trim());O(c,{variant:`accent`,get disabled(){return h(e)},get loading(){return h(J)},onclick:tt,children:(e,n)=>{t(),s(e,o(`Rename`))},$$slots:{default:!0}})}s(e,i)},$$slots:{default:!0}})}),s(e,l)},$$slots:{default:!0}})}),s(e,l)},$$slots:{default:!0}})})}var ht=v(mt,2);{let i=n(()=>h(F)?.kind===`move`);r(ht,()=>_e,(l,u)=>{u(l,{get open(){return h(i)},onOpenChange:e=>{e||I()},children:(i,l)=>{var u=d();r(b(u),()=>M,(i,l)=>{l(i,{size:`sm`,children:(i,l)=>{var u=Re(),f=b(u);r(f,()=>A,(e,t)=>{t(e,{class:`close-only-header`,children:(e,t)=>{var n=d();r(b(n),()=>N,(e,t)=>{t(e,{})}),s(e,n)},$$slots:{default:!0}})});var m=v(f,2);r(m,()=>j,(i,l)=>{l(i,{class:`dialog-body-lg`,children:(i,l)=>{var u=Ie(),f=b(u);r(f,()=>ge,(e,n)=>{n(e,{children:(e,n)=>{t(),s(e,o(`Move Folder`))},$$slots:{default:!0}})});var m=v(f,4);r(m,()=>be,(t,i)=>{i(t,{"aria-label":`Choose destination folder`,get ref(){return h(nt)},set ref(e){S(nt,e,!0)},children:(t,i)=>{var o=d();e(b(o),17,()=>h(dt),e=>e.name,(t,i)=>{var o=Pe(),c=b(o);{let e=n(()=>it(h(i).name,``)),t=n(()=>rt(h(i).name,``));r(c,()=>xe,(n,r)=>{r(n,{class:`move-row-repo`,get selected(){return h(e)},get disabled(){return h(t)},get"data-move-row"(){return`${h(i).name??``}/`},onclick:()=>at(h(i).name,``),children:(e,t)=>{var n=Ne(),r=b(n);ye(r,{size:14});var o=v(r,2),c=_(o,!0);p(o),y(()=>a(c,h(i).displayName)),s(e,n)},$$slots:{default:!0}})})}e(v(c,2),17,()=>h(i).subfolders,e=>e.path,(e,t)=>{qe(e,()=>h(i).name,()=>h(t),()=>1)}),s(t,o)}),s(t,o)},$$slots:{default:!0}})});var g=v(m,2),x=e=>{var t=Fe(),n=_(t,!0);p(t),y(()=>a(n,h(Q))),s(e,t)};c(g,e=>{h(Q)&&e(x)}),s(i,u)},$$slots:{default:!0}})}),r(v(m,2),()=>ve,(e,r)=>{r(e,{children:(e,r)=>{var i=Le(),a=b(i);O(a,{variant:`ghost`,onclick:I,children:(e,n)=>{t(),s(e,o(`Cancel`))},$$slots:{default:!0}});var c=v(a,2);{let e=n(()=>h(X)===null);O(c,{variant:`accent`,get disabled(){return h(e)},get loading(){return h(Z)},onclick:st,children:(e,n)=>{t(),s(e,o(`Move`))},$$slots:{default:!0}})}s(e,i)},$$slots:{default:!0}})}),s(i,u)},$$slots:{default:!0}})}),s(i,u)},$$slots:{default:!0}})})}var gt=v(ht,2);{let e=n(()=>h(F)?.kind===`delete`);r(gt,()=>oe,(i,l)=>{l(i,{get open(){return h(e)},onOpenChange:e=>{e||I()},children:(e,i)=>{var l=d();r(b(l),()=>ce,(e,i)=>{i(e,{children:(e,i)=>{var l=He(),u=b(l);r(u,()=>ue,(e,n)=>{n(e,{children:(e,n)=>{var i=ze(),c=b(i);r(c,()=>de,(e,n)=>{n(e,{children:(e,n)=>{t(),s(e,o(`Delete Folder`))},$$slots:{default:!0}})}),r(v(c,2),()=>fe,(e,n)=>{n(e,{children:(e,n)=>{t();var r=o();y(()=>a(r,h(lt))),s(e,r)},$$slots:{default:!0}})}),s(e,i)},$$slots:{default:!0}})}),r(v(u,2),()=>se,(e,i)=>{i(e,{children:(e,i)=>{var a=Ve(),l=b(a);{let e=n(()=>pe({variant:`ghost`}));r(l,()=>ae,(n,r)=>{r(n,{get class(){return h(e)},onclick:I,children:(e,n)=>{t(),s(e,o(`Cancel`))},$$slots:{default:!0}})})}var u=v(l,2);{let e=n(()=>`${pe({variant:`destructive`})}${h($)?` relative`:``}`);r(u,()=>le,(n,r)=>{r(n,{get class(){return h(e)},onclick:ut,get disabled(){return h($)},get"aria-busy"(){return h($)},children:(e,n)=>{var r=d(),i=b(r),a=e=>{var n=Be();t(2),s(e,n)},l=e=>{s(e,o(`Delete`))};c(i,e=>{h($)?e(a):e(l,-1)}),s(e,r)},$$slots:{default:!0}})})}s(e,a)},$$slots:{default:!0}})}),s(e,l)},$$slots:{default:!0}})}),s(e,l)},$$slots:{default:!0}})})}s(C,ft),l(),Ke()}export{We as default};