codebay 0.14.0 → 0.16.0

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 (108) hide show
  1. package/.mochi/manifest.json +778 -646
  2. package/.mochi/svelte-client/HydratableIsland-6y9p903x.js +1 -0
  3. package/.mochi/svelte-client/_hydrate-AppShell_2rtnxn6pgp2rh-nv6yzk0x.js +2 -0
  4. package/.mochi/svelte-client/_hydrate-AvatarsView_257s9yq1wwr4f-ry83ck8a.js +14 -0
  5. package/.mochi/svelte-client/_hydrate-InstanceView_2ma45l9bybfhl-vjt4jscf.js +3 -0
  6. package/.mochi/svelte-client/_hydrate-SettingsView_8hmarwmf8onq-1jdrk8x6.js +48 -0
  7. package/.mochi/svelte-client/{chunk-spk1b2r4.js → chunk-0vqvn81s.js} +1 -1
  8. package/.mochi/svelte-client/chunk-2dc6352a.js +1 -0
  9. package/.mochi/svelte-client/chunk-3cxaw5hr.js +2 -0
  10. package/.mochi/svelte-client/chunk-3jqc40sp.js +2 -0
  11. package/.mochi/svelte-client/chunk-3pgw6t5j.js +4 -0
  12. package/.mochi/svelte-client/chunk-7g3xt6ez.js +2 -0
  13. package/.mochi/svelte-client/chunk-b5s3mpg0.js +1 -0
  14. package/.mochi/svelte-client/chunk-bhseezf3.js +2 -0
  15. package/.mochi/svelte-client/chunk-bhwkq8er.js +1 -0
  16. package/.mochi/svelte-client/chunk-jm3ge348.js +1 -0
  17. package/.mochi/svelte-client/{chunk-0mc09cyb.js → chunk-sxcr9gzp.js} +1 -1
  18. package/.mochi/svelte-client/{chunk-ccfh8hxz.js → chunk-tss2473w.js} +1 -1
  19. package/.mochi/svelte-compile/{App-94xsdn0w.server.js → App-8mpgrxza.server.js} +470 -271
  20. package/.mochi/svelte-compile/{Avatars-fnccw47h.server.js → Avatars-y5nf6q25.server.js} +111 -110
  21. package/.mochi/svelte-compile/{DefaultError-je52k17d.server.js → DefaultError-rrjye0s2.server.js} +1 -2
  22. package/.mochi/svelte-compile/Instance-3sbzyp0g.server.js +695 -0
  23. package/.mochi/svelte-compile/{Settings-a7b11v90.server.js → Settings-ysvh5vhh.server.js} +838 -607
  24. package/.mochi/svelte-compile/chunk-7zaw9t5a.js +25 -0
  25. package/.mochi/svelte-compile/chunk-878xcmp4.js +65 -0
  26. package/.mochi/svelte-compile/chunk-d2z3qxxe.js +28 -0
  27. package/.mochi/svelte-compile/{chunk-60mpagr9.js → chunk-gnf5cnct.js} +661 -22
  28. package/.mochi/svelte-compile/{chunk-w0hca7va.js → chunk-jq7jj8jd.js} +18 -2
  29. package/.mochi/svelte-compile/chunk-vr0e32mv.js +24 -0
  30. package/.mochi/svelte-compile/{chunk-apdte4nh.js → chunk-xmygdsj4.js} +35 -612
  31. package/.mochi/svelte-compile/{chunk-pqb403fh.js → chunk-zk4a9zms.js} +28 -31
  32. package/.mochi/svelte-css/AgentLogBox-38adby5iygny7.css +1 -0
  33. package/.mochi/svelte-css/DropZone-1zeitd761uwyd.css +1 -0
  34. package/.mochi/svelte-css/IdeBar-d3un7kuigxc5.css +1 -0
  35. package/.mochi/svelte-css/{InstanceCard-25z7nas7y98zk.css → InstanceCard-3vxozrp9uoads.css} +1 -1
  36. package/.mochi/svelte-css/InstanceView-3ucotech5097w.css +1 -0
  37. package/.mochi/svelte-css/{SettingsView-bccw34agd2bj.css → SettingsView-2400myxb9ot56.css} +1 -1
  38. package/README.md +43 -3
  39. package/migrations/0009_agent_runs.sql +24 -0
  40. package/migrations/0010_agent_run_model.sql +2 -0
  41. package/migrations/0011_agent_run_rejected_structured_output.sql +2 -0
  42. package/package.json +13 -9
  43. package/src/__fixtures__/IdeBarStrip.svelte +41 -0
  44. package/src/avatars/dog.ts +1 -1
  45. package/src/avatars/lightning.ts +8 -9
  46. package/src/avatars/rocket.ts +4 -5
  47. package/src/components/AgentLogBox.svelte +458 -0
  48. package/src/components/AppShell.svelte +112 -1
  49. package/src/components/DropZone.svelte +77 -0
  50. package/src/components/FolderBrowser.svelte +13 -5
  51. package/src/components/HealthBox.svelte +6 -5
  52. package/src/components/IdeBar.svelte +222 -76
  53. package/src/components/InstanceCard.svelte +38 -0
  54. package/src/components/InstanceView.svelte +83 -2
  55. package/src/components/SettingsView.svelte +273 -0
  56. package/src/components/TerminalPane.svelte +54 -0
  57. package/src/components/UiShowcase.svelte +23 -3
  58. package/src/container-injections/claude-code-install.ts +1 -1
  59. package/src/container-injections/claude-history.ts +52 -0
  60. package/src/container-injections/claude-statusline.ts +4 -1
  61. package/src/container-injections/github-credentials.ts +12 -1
  62. package/src/container-injections/tmux.ts +6 -2
  63. package/src/index.ts +35 -7
  64. package/src/lib/agent-run-stream.ts +286 -0
  65. package/src/lib/agent-runs.server.ts +735 -0
  66. package/src/lib/auth.server.ts +11 -2
  67. package/src/lib/build-freshness.server.ts +71 -0
  68. package/src/lib/config.server.ts +36 -7
  69. package/src/lib/container-files.server.ts +1 -1
  70. package/src/lib/data-dir-lock.server.ts +78 -0
  71. package/src/lib/db.server.ts +124 -1
  72. package/src/lib/devcontainer.server.ts +93 -16
  73. package/src/lib/docker-client.server.ts +11 -5
  74. package/src/lib/drives.ts +11 -0
  75. package/src/lib/exec.server.ts +66 -5
  76. package/src/lib/injections.server.ts +5 -1
  77. package/src/lib/instances.server.ts +66 -7
  78. package/src/lib/log-capture.server.ts +63 -23
  79. package/src/lib/mcp-auth.server.ts +52 -0
  80. package/src/lib/osc52.ts +18 -0
  81. package/src/lib/picker.server.ts +23 -2
  82. package/src/lib/sandbox-ops.server.ts +263 -0
  83. package/src/lib/upload.ts +32 -0
  84. package/src/lib/uploads.server.ts +164 -0
  85. package/src/mcp/routes.server.ts +25 -0
  86. package/src/mcp/server.server.ts +55 -0
  87. package/src/mcp/tools.server.ts +660 -0
  88. package/src/pages/Instance.svelte +6 -2
  89. package/src/pages/Settings.svelte +15 -0
  90. package/src/routes.ts +79 -3
  91. package/src/types.ts +17 -0
  92. package/.mochi/svelte-client/HydratableIsland-zrdsrsmg.js +0 -1
  93. package/.mochi/svelte-client/_hydrate-AppShell_2rtnxn6pgp2rh-v7y7dh53.js +0 -2
  94. package/.mochi/svelte-client/_hydrate-AvatarsView_257s9yq1wwr4f-tmwd6fpb.js +0 -14
  95. package/.mochi/svelte-client/_hydrate-InstanceView_2ma45l9bybfhl-m7t64dbh.js +0 -1
  96. package/.mochi/svelte-client/_hydrate-SettingsView_8hmarwmf8onq-4a7ann1f.js +0 -40
  97. package/.mochi/svelte-client/chunk-5jwfs4p9.js +0 -2
  98. package/.mochi/svelte-client/chunk-6qg4q98a.js +0 -2
  99. package/.mochi/svelte-client/chunk-phf7v5jj.js +0 -4
  100. package/.mochi/svelte-client/chunk-tmeh70wg.js +0 -2
  101. package/.mochi/svelte-client/chunk-vs1yjbqt.js +0 -2
  102. package/.mochi/svelte-client/chunk-x0m3k0rn.js +0 -1
  103. package/.mochi/svelte-client/chunk-y7f4jbdm.js +0 -2
  104. package/.mochi/svelte-compile/Instance-knnkcn2p.server.js +0 -377
  105. package/.mochi/svelte-compile/chunk-ed46m58e.js +0 -22
  106. package/.mochi/svelte-compile/chunk-jx6h1xzp.js +0 -20
  107. package/.mochi/svelte-css/IdeBar-1mtgemqfuvqzi.css +0 -1
  108. package/.mochi/svelte-css/InstanceView-32j12hyg8v9u0.css +0 -1
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  import {
3
3
  Icon
4
- } from "./chunk-60mpagr9.js";
4
+ } from "./chunk-gnf5cnct.js";
5
5
 
6
6
  // src/avatars/anchor.ts
7
7
  var art = {
@@ -298,7 +298,7 @@ var art19 = {
298
298
  "..######",
299
299
  ".#######",
300
300
  "####.###",
301
- "##.###.#",
301
+ "##.###..",
302
302
  "#######.",
303
303
  "##.##..#",
304
304
  "##.##..#",
@@ -536,16 +536,15 @@ var key_default = art33;
536
536
  // src/avatars/lightning.ts
537
537
  var art34 = {
538
538
  name: "lightning",
539
- robot: true,
540
539
  pixels: [
541
- "...#####",
542
- "..####..",
543
- ".####...",
544
- ".#######",
545
- "..######",
546
- "...#####",
547
- "..####..",
548
- ".###...."
540
+ "....###.",
541
+ "...###..",
542
+ "..###...",
543
+ ".###....",
544
+ "#######.",
545
+ "...###..",
546
+ "..##....",
547
+ ".#......"
549
548
  ]
550
549
  };
551
550
  var lightning_default = art34;
@@ -697,16 +696,15 @@ var robot_default = art43;
697
696
  // src/avatars/rocket.ts
698
697
  var art44 = {
699
698
  name: "rocket",
700
- robot: true,
701
699
  pixels: [
702
700
  "...##...",
703
701
  "..####..",
704
- "..#..#..",
702
+ "..#+.#..",
703
+ "..#+.#..",
705
704
  "..####..",
706
705
  ".######.",
707
- "##.##.##",
708
- "..#..#..",
709
- "...##..."
706
+ ".#.++.#.",
707
+ "..+.++.."
710
708
  ]
711
709
  };
712
710
  var rocket_default = art44;
@@ -1151,8 +1149,7 @@ function Avatar($$renderer, $$props) {
1151
1149
  }
1152
1150
  $$renderer2.push(`<!--]--> `);
1153
1151
  if (interactive) {
1154
- $$renderer2.push("<!--[0-->");
1155
- $$renderer2.push(`<span class="invert svelte-1pre9qb" aria-hidden="true"></span> <span class="bloom svelte-1pre9qb" aria-hidden="true"></span>`);
1152
+ $$renderer2.push(`<!--[0--><span class="invert svelte-1pre9qb" aria-hidden="true"></span> <span class="bloom svelte-1pre9qb" aria-hidden="true"></span>`);
1156
1153
  } else {
1157
1154
  $$renderer2.push("<!--[-1-->");
1158
1155
  }
@@ -1182,8 +1179,7 @@ function Button($$renderer, $$props) {
1182
1179
  const Icon2 = $2.derived(() => icon);
1183
1180
  const resolvedIconSize = $2.derived(() => iconSize ?? (size === "lg" ? 18 : size === "sm" ? 13 : 15));
1184
1181
  if (href) {
1185
- $$renderer.push("<!--[0-->");
1186
- $$renderer.push(`<a${$2.attributes({
1182
+ $$renderer.push(`<!--[0--><a${$2.attributes({
1187
1183
  class: `btn ${$2.stringify(variant)} ${$2.stringify(size)}`,
1188
1184
  href: disabled ? undefined : href,
1189
1185
  "aria-disabled": disabled || undefined,
@@ -1207,8 +1203,7 @@ function Button($$renderer, $$props) {
1207
1203
  children?.($$renderer);
1208
1204
  $$renderer.push(`<!----></a>`);
1209
1205
  } else {
1210
- $$renderer.push("<!--[-1-->");
1211
- $$renderer.push(`<button${$2.attributes({
1206
+ $$renderer.push(`<!--[-1--><button${$2.attributes({
1212
1207
  class: `btn ${$2.stringify(variant)} ${$2.stringify(size)}`,
1213
1208
  disabled,
1214
1209
  ...rest
@@ -1233,598 +1228,30 @@ function Button($$renderer, $$props) {
1233
1228
  $$renderer.push(`<!--]-->`);
1234
1229
  }
1235
1230
 
1236
- // node_modules/svelte-french-toast/dist/components/Toaster.svelte
1237
- import"svelte/internal/flags/async";
1238
- import * as $10 from "svelte/internal/server";
1239
-
1240
- // node_modules/svelte-french-toast/dist/core/store.js
1241
- import { get as get2, writable } from "svelte/store";
1242
-
1243
- // node_modules/svelte-writable-derived/index.mjs
1244
- import { derived as derived3, get } from "svelte/store";
1245
- function writableDerived(origins, derive, reflect, initial) {
1246
- var childDerivedSetter, originValues, blockNextDerive = false;
1247
- var reflectOldValues = reflect.length >= 2;
1248
- var wrappedDerive = (got, set, update2) => {
1249
- childDerivedSetter = set;
1250
- if (reflectOldValues) {
1251
- originValues = got;
1252
- }
1253
- if (!blockNextDerive) {
1254
- let returned = derive(got, set, update2);
1255
- if (derive.length < 2) {
1256
- set(returned);
1257
- } else {
1258
- return returned;
1259
- }
1260
- }
1261
- blockNextDerive = false;
1262
- };
1263
- var childDerived = derived3(origins, wrappedDerive, initial);
1264
- var singleOrigin = !Array.isArray(origins);
1265
- function doReflect(reflecting) {
1266
- var setWith = reflect(reflecting, originValues);
1267
- if (singleOrigin) {
1268
- blockNextDerive = true;
1269
- origins.set(setWith);
1270
- } else {
1271
- setWith.forEach((value, i) => {
1272
- blockNextDerive = true;
1273
- origins[i].set(value);
1274
- });
1275
- }
1276
- blockNextDerive = false;
1277
- }
1278
- var tryingSet = false;
1279
- function update(fn) {
1280
- var isUpdated, mutatedBySubscriptions, oldValue, newValue;
1281
- if (tryingSet) {
1282
- newValue = fn(get(childDerived));
1283
- childDerivedSetter(newValue);
1284
- return;
1285
- }
1286
- var unsubscribe = childDerived.subscribe((value) => {
1287
- if (!tryingSet) {
1288
- oldValue = value;
1289
- } else if (!isUpdated) {
1290
- isUpdated = true;
1291
- } else {
1292
- mutatedBySubscriptions = true;
1293
- }
1294
- });
1295
- newValue = fn(oldValue);
1296
- tryingSet = true;
1297
- childDerivedSetter(newValue);
1298
- unsubscribe();
1299
- tryingSet = false;
1300
- if (mutatedBySubscriptions) {
1301
- newValue = get(childDerived);
1302
- }
1303
- if (isUpdated) {
1304
- doReflect(newValue);
1305
- }
1306
- }
1307
- return {
1308
- subscribe: childDerived.subscribe,
1309
- set(value) {
1310
- update(() => value);
1311
- },
1312
- update
1313
- };
1314
- }
1315
-
1316
- // node_modules/svelte-french-toast/dist/core/store.js
1317
- var TOAST_LIMIT = 20;
1318
- var toasts = writable([]);
1319
- var pausedAt = writable(null);
1320
- var toastTimeouts = new Map;
1321
- var addToRemoveQueue = (toastId) => {
1322
- if (toastTimeouts.has(toastId)) {
1323
- return;
1324
- }
1325
- const timeout = setTimeout(() => {
1326
- toastTimeouts.delete(toastId);
1327
- remove(toastId);
1328
- }, 1000);
1329
- toastTimeouts.set(toastId, timeout);
1330
- };
1331
- var clearFromRemoveQueue = (toastId) => {
1332
- const timeout = toastTimeouts.get(toastId);
1333
- if (timeout) {
1334
- clearTimeout(timeout);
1335
- }
1336
- };
1337
- function update(toast) {
1338
- if (toast.id) {
1339
- clearFromRemoveQueue(toast.id);
1340
- }
1341
- toasts.update(($toasts) => $toasts.map((t) => t.id === toast.id ? { ...t, ...toast } : t));
1342
- }
1343
- function add(toast) {
1344
- toasts.update(($toasts) => [toast, ...$toasts].slice(0, TOAST_LIMIT));
1345
- }
1346
- function upsert(toast) {
1347
- if (get2(toasts).find((t) => t.id === toast.id)) {
1348
- update(toast);
1349
- } else {
1350
- add(toast);
1351
- }
1352
- }
1353
- function dismiss(toastId) {
1354
- toasts.update(($toasts) => {
1355
- if (toastId) {
1356
- addToRemoveQueue(toastId);
1357
- } else {
1358
- $toasts.forEach((toast) => {
1359
- addToRemoveQueue(toast.id);
1360
- });
1361
- }
1362
- return $toasts.map((t) => t.id === toastId || toastId === undefined ? { ...t, visible: false } : t);
1363
- });
1364
- }
1365
- function remove(toastId) {
1366
- toasts.update(($toasts) => {
1367
- if (toastId === undefined) {
1368
- return [];
1369
- }
1370
- return $toasts.filter((t) => t.id !== toastId);
1371
- });
1372
- }
1373
- function startPause(time) {
1374
- pausedAt.set(time);
1375
- }
1376
- function endPause(time) {
1377
- let diff;
1378
- pausedAt.update(($pausedAt) => {
1379
- diff = time - ($pausedAt || 0);
1380
- return null;
1381
- });
1382
- toasts.update(($toasts) => $toasts.map((t) => ({
1383
- ...t,
1384
- pauseDuration: t.pauseDuration + diff
1385
- })));
1386
- }
1387
- var defaultTimeouts = {
1388
- blank: 4000,
1389
- error: 4000,
1390
- success: 2000,
1391
- loading: Infinity,
1392
- custom: 4000
1393
- };
1394
- function useToasterStore(toastOptions = {}) {
1395
- const mergedToasts = writableDerived(toasts, ($toasts) => $toasts.map((t) => ({
1396
- ...toastOptions,
1397
- ...toastOptions[t.type],
1398
- ...t,
1399
- duration: t.duration || toastOptions[t.type]?.duration || toastOptions?.duration || defaultTimeouts[t.type],
1400
- style: [toastOptions.style, toastOptions[t.type]?.style, t.style].join(";")
1401
- })), ($toasts) => $toasts);
1402
- return {
1403
- toasts: mergedToasts,
1404
- pausedAt
1405
- };
1406
- }
1407
-
1408
- // node_modules/svelte-french-toast/dist/core/types.js
1409
- var isFunction = (valOrFunction) => typeof valOrFunction === "function";
1410
- var resolveValue = (valOrFunction, arg) => isFunction(valOrFunction) ? valOrFunction(arg) : valOrFunction;
1411
-
1412
- // node_modules/svelte-french-toast/dist/core/utils.js
1413
- var genId = (() => {
1414
- let count = 0;
1415
- return () => {
1416
- count += 1;
1417
- return count.toString();
1418
- };
1419
- })();
1420
- var prefersReducedMotion = (() => {
1421
- let shouldReduceMotion;
1422
- return () => {
1423
- if (shouldReduceMotion === undefined && typeof window !== "undefined") {
1424
- const mediaQuery = matchMedia("(prefers-reduced-motion: reduce)");
1425
- shouldReduceMotion = !mediaQuery || mediaQuery.matches;
1426
- }
1427
- return shouldReduceMotion;
1428
- };
1429
- })();
1430
-
1431
- // node_modules/svelte-french-toast/dist/core/toast.js
1432
- var createToast = (message, type = "blank", opts) => ({
1433
- createdAt: Date.now(),
1434
- visible: true,
1435
- type,
1436
- ariaProps: {
1437
- role: "status",
1438
- "aria-live": "polite"
1439
- },
1440
- message,
1441
- pauseDuration: 0,
1442
- ...opts,
1443
- id: opts?.id || genId()
1444
- });
1445
- var createHandler = (type) => (message, options) => {
1446
- const toast = createToast(message, type, options);
1447
- upsert(toast);
1448
- return toast.id;
1449
- };
1450
- var toast = (message, opts) => createHandler("blank")(message, opts);
1451
- toast.error = createHandler("error");
1452
- toast.success = createHandler("success");
1453
- toast.loading = createHandler("loading");
1454
- toast.custom = createHandler("custom");
1455
- toast.dismiss = (toastId) => {
1456
- dismiss(toastId);
1457
- };
1458
- toast.remove = (toastId) => remove(toastId);
1459
- toast.promise = (promise, msgs, opts) => {
1460
- const id = toast.loading(msgs.loading, { ...opts, ...opts?.loading });
1461
- promise.then((p) => {
1462
- toast.success(resolveValue(msgs.success, p), {
1463
- id,
1464
- ...opts,
1465
- ...opts?.success
1466
- });
1467
- return p;
1468
- }).catch((e) => {
1469
- toast.error(resolveValue(msgs.error, e), {
1470
- id,
1471
- ...opts,
1472
- ...opts?.error
1473
- });
1474
- });
1475
- return promise;
1476
- };
1477
- var toast_default = toast;
1478
-
1479
- // node_modules/svelte-french-toast/dist/core/use-toaster.js
1480
- import { onDestroy } from "svelte";
1481
- function calculateOffset(toast2, $toasts, opts) {
1482
- const { reverseOrder, gutter = 8, defaultPosition } = opts || {};
1483
- const relevantToasts = $toasts.filter((t) => (t.position || defaultPosition) === (toast2.position || defaultPosition) && t.height);
1484
- const toastIndex = relevantToasts.findIndex((t) => t.id === toast2.id);
1485
- const toastsBefore = relevantToasts.filter((toast3, i) => i < toastIndex && toast3.visible).length;
1486
- const offset = relevantToasts.filter((t) => t.visible).slice(...reverseOrder ? [toastsBefore + 1] : [0, toastsBefore]).reduce((acc, t) => acc + (t.height || 0) + gutter, 0);
1487
- return offset;
1488
- }
1489
- var handlers = {
1490
- startPause() {
1491
- startPause(Date.now());
1492
- },
1493
- endPause() {
1494
- endPause(Date.now());
1495
- },
1496
- updateHeight: (toastId, height) => {
1497
- update({ id: toastId, height });
1498
- },
1499
- calculateOffset
1500
- };
1501
- function useToaster(toastOptions) {
1502
- const { toasts: toasts2, pausedAt: pausedAt2 } = useToasterStore(toastOptions);
1503
- const timeouts = new Map;
1504
- let _pausedAt;
1505
- const unsubscribes = [
1506
- pausedAt2.subscribe(($pausedAt) => {
1507
- if ($pausedAt) {
1508
- for (const [, timeoutId] of timeouts) {
1509
- clearTimeout(timeoutId);
1510
- }
1511
- timeouts.clear();
1512
- }
1513
- _pausedAt = $pausedAt;
1514
- }),
1515
- toasts2.subscribe(($toasts) => {
1516
- if (_pausedAt) {
1517
- return;
1518
- }
1519
- const now = Date.now();
1520
- for (const t of $toasts) {
1521
- if (timeouts.has(t.id)) {
1522
- continue;
1523
- }
1524
- if (t.duration === Infinity) {
1525
- continue;
1526
- }
1527
- const durationLeft = (t.duration || 0) + t.pauseDuration - (now - t.createdAt);
1528
- if (durationLeft < 0) {
1529
- if (t.visible) {
1530
- toast_default.dismiss(t.id);
1531
- }
1532
- return null;
1533
- }
1534
- timeouts.set(t.id, setTimeout(() => toast_default.dismiss(t.id), durationLeft));
1535
- }
1536
- })
1537
- ];
1538
- onDestroy(() => {
1539
- for (const unsubscribe of unsubscribes) {
1540
- unsubscribe();
1541
- }
1542
- });
1543
- return { toasts: toasts2, handlers };
1544
- }
1545
-
1546
- // node_modules/svelte-french-toast/dist/components/ToastWrapper.svelte
1547
- import"svelte/internal/flags/async";
1548
- import * as $9 from "svelte/internal/server";
1549
- import { onMount } from "svelte";
1550
-
1551
- // node_modules/svelte-french-toast/dist/components/ToastBar.svelte
1552
- import"svelte/internal/flags/async";
1553
- import * as $8 from "svelte/internal/server";
1554
-
1555
- // node_modules/svelte-french-toast/dist/components/ToastIcon.svelte
1556
- import"svelte/internal/flags/async";
1557
- import * as $6 from "svelte/internal/server";
1558
-
1559
- // node_modules/svelte-french-toast/dist/components/CheckmarkIcon.svelte
1560
- import"svelte/internal/flags/async";
1561
- import * as $3 from "svelte/internal/server";
1562
- function CheckmarkIcon($$renderer, $$props) {
1563
- let primary = $3.fallback($$props["primary"], "#61d345");
1564
- let secondary = $3.fallback($$props["secondary"], "#fff");
1565
- $$renderer.push(`<div class="svelte-1did3zw"${$3.attr_style("", { "--primary": primary, "--secondary": secondary })}></div>`);
1566
- $3.bind_props($$props, { primary, secondary });
1567
- }
1568
-
1569
- // node_modules/svelte-french-toast/dist/components/ErrorIcon.svelte
1570
- import"svelte/internal/flags/async";
1571
- import * as $4 from "svelte/internal/server";
1572
- function ErrorIcon($$renderer, $$props) {
1573
- let primary = $4.fallback($$props["primary"], "#ff4b4b");
1574
- let secondary = $4.fallback($$props["secondary"], "#fff");
1575
- $$renderer.push(`<div class="svelte-1ro2ggf"${$4.attr_style("", { "--primary": primary, "--secondary": secondary })}></div>`);
1576
- $4.bind_props($$props, { primary, secondary });
1577
- }
1578
-
1579
- // node_modules/svelte-french-toast/dist/components/LoaderIcon.svelte
1580
- import"svelte/internal/flags/async";
1581
- import * as $5 from "svelte/internal/server";
1582
- function LoaderIcon($$renderer, $$props) {
1583
- let primary = $5.fallback($$props["primary"], "#616161");
1584
- let secondary = $5.fallback($$props["secondary"], "#e0e0e0");
1585
- $$renderer.push(`<div class="svelte-tyythq"${$5.attr_style("", { "--primary": primary, "--secondary": secondary })}></div>`);
1586
- $5.bind_props($$props, { primary, secondary });
1587
- }
1588
-
1589
- // node_modules/svelte-french-toast/dist/components/ToastIcon.svelte
1590
- function ToastIcon($$renderer, $$props) {
1591
- let type, icon, iconTheme;
1592
- let toast2 = $$props["toast"];
1593
- $:
1594
- ({ type, icon, iconTheme } = toast2);
1595
- if (typeof icon === "string") {
1596
- $$renderer.push("<!--[0-->");
1597
- $$renderer.push(`<div class="animated svelte-t33qv2">${$6.escape(icon)}</div>`);
1598
- } else if (typeof icon !== "undefined") {
1599
- $$renderer.push("<!--[1-->");
1600
- if (icon) {
1601
- $$renderer.push("<!--[-->");
1602
- icon($$renderer, {});
1603
- $$renderer.push("<!--]-->");
1604
- } else {
1605
- $$renderer.push("<!--[!-->");
1606
- $$renderer.push("<!--]-->");
1607
- }
1608
- } else if (type !== "blank") {
1609
- $$renderer.push("<!--[2-->");
1610
- $$renderer.push(`<div class="indicator svelte-t33qv2">`);
1611
- LoaderIcon($$renderer, $6.spread_props([iconTheme]));
1612
- $$renderer.push(`<!----> `);
1613
- if (type !== "loading") {
1614
- $$renderer.push("<!--[0-->");
1615
- $$renderer.push(`<div class="status svelte-t33qv2">`);
1616
- if (type === "error") {
1617
- $$renderer.push("<!--[0-->");
1618
- ErrorIcon($$renderer, $6.spread_props([iconTheme]));
1619
- } else {
1620
- $$renderer.push("<!--[-1-->");
1621
- CheckmarkIcon($$renderer, $6.spread_props([iconTheme]));
1622
- }
1623
- $$renderer.push(`<!--]--></div>`);
1624
- } else {
1625
- $$renderer.push("<!--[-1-->");
1626
- }
1627
- $$renderer.push(`<!--]--></div>`);
1628
- } else {
1629
- $$renderer.push("<!--[-1-->");
1630
- }
1631
- $$renderer.push(`<!--]-->`);
1632
- $6.bind_props($$props, { toast: toast2 });
1633
- }
1634
-
1635
- // node_modules/svelte-french-toast/dist/components/ToastMessage.svelte
1636
- import"svelte/internal/flags/async";
1637
- import * as $7 from "svelte/internal/server";
1638
- function ToastMessage($$renderer, $$props) {
1639
- $$renderer.component(($$renderer2) => {
1640
- let toast2 = $$props["toast"];
1641
- $$renderer2.push(`<div${$7.attributes({ class: "message", ...toast2.ariaProps }, "svelte-1gudbf6")}>`);
1642
- if (typeof toast2.message === "string") {
1643
- $$renderer2.push("<!--[0-->");
1644
- $$renderer2.push(`${$7.escape(toast2.message)}`);
1645
- } else {
1646
- $$renderer2.push("<!--[-1-->");
1647
- if (toast2.message) {
1648
- $$renderer2.push("<!--[-->");
1649
- toast2.message($$renderer2, { toast: toast2 });
1650
- $$renderer2.push("<!--]-->");
1651
- } else {
1652
- $$renderer2.push("<!--[!-->");
1653
- $$renderer2.push("<!--]-->");
1654
- }
1655
- }
1656
- $$renderer2.push(`<!--]--></div>`);
1657
- $7.bind_props($$props, { toast: toast2 });
1658
- });
1659
- }
1660
-
1661
- // node_modules/svelte-french-toast/dist/components/ToastBar.svelte
1662
- function ToastBar($$renderer, $$props) {
1663
- $$renderer.component(($$renderer2) => {
1664
- let toast2 = $$props["toast"];
1665
- let position = $8.fallback($$props["position"], () => {
1666
- return;
1667
- }, true);
1668
- let style = $8.fallback($$props["style"], "");
1669
- let Component = $8.fallback($$props["Component"], () => {
1670
- return;
1671
- }, true);
1672
- let factor;
1673
- let animation;
1674
- $: {
1675
- const top = (toast2.position || position || "top-center").includes("top");
1676
- factor = top ? 1 : -1;
1677
- const [enter, exit] = prefersReducedMotion() ? ["fadeIn", "fadeOut"] : ["enter", "exit"];
1678
- animation = toast2.visible ? enter : exit;
1679
- }
1680
- $$renderer2.push(`<div${$8.attr_class(`base ${$8.stringify(toast2.height ? animation : "transparent")} ${$8.stringify(toast2.className || "")}`, "svelte-yae3e8")}${$8.attr_style(`${$8.stringify(style)}; ${$8.stringify(toast2.style)}`, { "--factor": factor })}>`);
1681
- if (Component) {
1682
- $$renderer2.push("<!--[0-->");
1683
- if (Component) {
1684
- $$renderer2.push("<!--[-->");
1685
- Component($$renderer2, {
1686
- $$slots: {
1687
- icon: ($$renderer3) => {
1688
- ToastIcon($$renderer3, { toast: toast2, slot: "icon" });
1689
- },
1690
- message: ($$renderer3) => {
1691
- ToastMessage($$renderer3, { toast: toast2, slot: "message" });
1692
- }
1693
- }
1694
- });
1695
- $$renderer2.push("<!--]-->");
1696
- } else {
1697
- $$renderer2.push("<!--[!-->");
1698
- $$renderer2.push("<!--]-->");
1699
- }
1700
- } else {
1701
- $$renderer2.push("<!--[-1-->");
1702
- $$renderer2.push(`<!--[-->`);
1703
- $8.slot($$renderer2, $$props, "default", { ToastIcon, ToastMessage, toast: toast2 }, () => {
1704
- ToastIcon($$renderer2, { toast: toast2 });
1705
- $$renderer2.push(`<!----> `);
1706
- ToastMessage($$renderer2, { toast: toast2 });
1707
- $$renderer2.push(`<!---->`);
1708
- });
1709
- $$renderer2.push(`<!--]-->`);
1710
- }
1711
- $$renderer2.push(`<!--]--></div>`);
1712
- $8.bind_props($$props, { toast: toast2, position, style, Component });
1713
- });
1714
- }
1715
-
1716
- // node_modules/svelte-french-toast/dist/components/ToastWrapper.svelte
1717
- function ToastWrapper($$renderer, $$props) {
1718
- $$renderer.component(($$renderer2) => {
1719
- let top, bottom, factor, justifyContent;
1720
- let toast2 = $$props["toast"];
1721
- let setHeight = $$props["setHeight"];
1722
- let wrapperEl;
1723
- onMount(() => {
1724
- setHeight(wrapperEl.getBoundingClientRect().height);
1725
- });
1726
- $:
1727
- top = toast2.position?.includes("top") ? 0 : null;
1728
- $:
1729
- bottom = toast2.position?.includes("bottom") ? 0 : null;
1730
- $:
1731
- factor = toast2.position?.includes("top") ? 1 : -1;
1732
- $:
1733
- justifyContent = toast2.position?.includes("center") && "center" || (toast2.position?.includes("right") || toast2.position?.includes("end")) && "flex-end" || null;
1734
- $$renderer2.push(`<div${$9.attr_class("wrapper svelte-1pz3gqy", undefined, {
1735
- active: toast2.visible,
1736
- transition: !prefersReducedMotion()
1737
- })}${$9.attr_style("", {
1738
- "--factor": factor,
1739
- "--offset": toast2.offset,
1740
- top,
1741
- bottom,
1742
- "justify-content": justifyContent
1743
- })}>`);
1744
- if (toast2.type === "custom") {
1745
- $$renderer2.push("<!--[0-->");
1746
- ToastMessage($$renderer2, { toast: toast2 });
1747
- } else {
1748
- $$renderer2.push("<!--[-1-->");
1749
- $$renderer2.push(`<!--[-->`);
1750
- $9.slot($$renderer2, $$props, "default", { toast: toast2 }, () => {
1751
- ToastBar($$renderer2, { toast: toast2, position: toast2.position });
1752
- });
1753
- $$renderer2.push(`<!--]-->`);
1754
- }
1755
- $$renderer2.push(`<!--]--></div>`);
1756
- $9.bind_props($$props, { toast: toast2, setHeight });
1757
- });
1758
- }
1759
-
1760
- // node_modules/svelte-french-toast/dist/components/Toaster.svelte
1761
- function Toaster($$renderer, $$props) {
1762
- $$renderer.component(($$renderer2) => {
1763
- var $$store_subs;
1764
- let reverseOrder = $10.fallback($$props["reverseOrder"], false);
1765
- let position = $10.fallback($$props["position"], "top-center");
1766
- let toastOptions = $10.fallback($$props["toastOptions"], () => {
1767
- return;
1768
- }, true);
1769
- let gutter = $10.fallback($$props["gutter"], 8);
1770
- let containerStyle = $10.fallback($$props["containerStyle"], () => {
1771
- return;
1772
- }, true);
1773
- let containerClassName = $10.fallback($$props["containerClassName"], () => {
1774
- return;
1775
- }, true);
1776
- const { toasts: toasts2, handlers: handlers2 } = useToaster(toastOptions);
1777
- let _toasts;
1778
- $:
1779
- _toasts = $10.store_get($$store_subs ??= {}, "$toasts", toasts2).map((toast2) => ({
1780
- ...toast2,
1781
- position: toast2.position || position,
1782
- offset: handlers2.calculateOffset(toast2, $10.store_get($$store_subs ??= {}, "$toasts", toasts2), { reverseOrder, gutter, defaultPosition: position })
1783
- }));
1784
- $$renderer2.push(`<div${$10.attr_class(`toaster ${$10.stringify(containerClassName || "")}`, "svelte-haq5xk")}${$10.attr_style(containerStyle)} role="alert"><!--[-->`);
1785
- const each_array = $10.ensure_array_like(_toasts);
1786
- for (let $$index = 0, $$length = each_array.length;$$index < $$length; $$index++) {
1787
- let toast2 = each_array[$$index];
1788
- ToastWrapper($$renderer2, {
1789
- toast: toast2,
1790
- setHeight: (height) => handlers2.updateHeight(toast2.id, height)
1791
- });
1792
- }
1793
- $$renderer2.push(`<!--]--></div>`);
1794
- if ($$store_subs)
1795
- $10.unsubscribe_stores($$store_subs);
1796
- $10.bind_props($$props, {
1797
- reverseOrder,
1798
- position,
1799
- toastOptions,
1800
- gutter,
1801
- containerStyle,
1802
- containerClassName
1803
- });
1804
- });
1805
- }
1806
- // node_modules/svelte-french-toast/dist/index.js
1807
- var dist_default = toast_default;
1808
-
1809
1231
  // src/components/AppBar.svelte
1810
1232
  import"svelte/internal/flags/async";
1811
- import * as $12 from "svelte/internal/server";
1233
+ import * as $4 from "svelte/internal/server";
1812
1234
 
1813
1235
  // node_modules/@lucide/svelte/dist/icons/house.svelte
1814
1236
  import"svelte/internal/flags/async";
1815
- import * as $11 from "svelte/internal/server";
1237
+ import * as $3 from "svelte/internal/server";
1816
1238
  function House($$renderer, $$props) {
1817
1239
  let { $$slots, $$events, ...props } = $$props;
1818
- const iconNode = [
1819
- ["path", { d: "M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8" }],
1820
- [
1821
- "path",
1822
- {
1823
- d: "M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"
1824
- }
1825
- ]
1826
- ];
1827
- Icon($$renderer, $11.spread_props([{ name: "house" }, props, { iconNode }]));
1240
+ const iconData = {
1241
+ name: "house",
1242
+ size: 24,
1243
+ node: [
1244
+ ["path", { d: "M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8" }],
1245
+ [
1246
+ "path",
1247
+ {
1248
+ d: "M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"
1249
+ }
1250
+ ]
1251
+ ],
1252
+ aliases: ["home"]
1253
+ };
1254
+ Icon($$renderer, $3.spread_props([props, { icon: iconData }]));
1828
1255
  }
1829
1256
  // src/components/AppBar.svelte
1830
1257
  function AppBar($$renderer, $$props) {
@@ -1836,8 +1263,4 @@ function AppBar($$renderer, $$props) {
1836
1263
  $$renderer.push(`<!----></header>`);
1837
1264
  }
1838
1265
 
1839
- // src/toast.ts
1840
- var TOAST_STYLE = "border:1px solid var(--edge); background:var(--bg-card); color:var(--ink); box-shadow:4px 4px 0 var(--shadow); font-family:var(--font-mono); font-size:13px;";
1841
- var TOAST_OPTIONS = { style: TOAST_STYLE };
1842
-
1843
- export { OFF, ON, GRAY, ROWS, COLS, decode, avatars, findAvatar, Avatar, Button, Toaster, dist_default, AppBar, TOAST_OPTIONS };
1266
+ export { OFF, ON, GRAY, ROWS, COLS, decode, avatars, findAvatar, Avatar, Button, AppBar };