codebay 0.5.0 → 0.7.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.
- package/.mochi/manifest.json +286 -227
- package/.mochi/svelte-client/HydratableIsland-qyjx1d98.js +1 -0
- package/.mochi/svelte-client/_hydrate-AppShell_2rtnxn6pgp2rh-fkna7bj2.js +2 -0
- package/.mochi/svelte-client/_hydrate-AvatarsView_257s9yq1wwr4f-89wtkb86.js +13 -0
- package/.mochi/svelte-client/_hydrate-InstanceView_2ma45l9bybfhl-eamnbyqk.js +1 -0
- package/.mochi/svelte-client/{_hydrate-SettingsView_8hmarwmf8onq-r9vvc7rx.js → _hydrate-SettingsView_8hmarwmf8onq-kdra4mcb.js} +3 -3
- package/.mochi/svelte-client/chunk-330mrspw.js +2 -0
- package/.mochi/svelte-client/{chunk-dz1019cy.js → chunk-4jgkak13.js} +1 -1
- package/.mochi/svelte-client/chunk-fqg2qzj8.js +2 -0
- package/.mochi/svelte-client/chunk-k5m4kt20.js +2 -0
- package/.mochi/svelte-client/{chunk-nmf4dq86.js → chunk-qj7zy2d9.js} +1 -1
- package/.mochi/svelte-client/{chunk-ssa0ad2f.js → chunk-rpdphch7.js} +1 -1
- package/.mochi/svelte-compile/{App-9qjy14bc.server.js → App-6rcf0d74.server.js} +113 -46
- package/.mochi/svelte-compile/{Avatars-sq8mjn6k.server.js → Avatars-pzyz0tv3.server.js} +75 -15
- package/.mochi/svelte-compile/{Instance-13j59daw.server.js → Instance-49ksrp11.server.js} +15 -3
- package/.mochi/svelte-compile/{Settings-p0s2awg1.server.js → Settings-sz5d6qj7.server.js} +3 -3
- package/.mochi/svelte-compile/{chunk-dfe2km6a.js → chunk-q8rbesaw.js} +324 -123
- package/.mochi/svelte-css/Avatar-3pi30db6ozvf0.css +1 -0
- package/.mochi/svelte-css/AvatarEditor-2ewwtejaml4e2.css +1 -0
- package/.mochi/svelte-css/{AvatarsView-3hq37u4dgtljn.css → AvatarsView-2ughbzc26luyb.css} +1 -1
- package/.mochi/svelte-css/InstanceCard-3vnltxnbxkvay.css +1 -0
- package/.mochi/svelte-css/InstanceFilter-3q6x0jt0hcgpz.css +1 -0
- package/.mochi/svelte-css/{InstanceView-wq85bxtusont.css → InstanceView-3vzow3ttxzlh3.css} +1 -1
- package/README.md +2 -0
- package/package.json +2 -2
- package/src/avatars/anchor.ts +1 -0
- package/src/avatars/ant-head.ts +17 -0
- package/src/avatars/apple.ts +17 -0
- package/src/avatars/bear.ts +1 -0
- package/src/avatars/bee.ts +1 -0
- package/src/avatars/bodybuilder.ts +17 -0
- package/src/avatars/cat.ts +1 -0
- package/src/avatars/cherry.ts +1 -0
- package/src/avatars/crab.ts +1 -0
- package/src/avatars/crown.ts +1 -0
- package/src/avatars/diamond.ts +1 -0
- package/src/avatars/dog.ts +1 -0
- package/src/avatars/editor.ts +17 -0
- package/src/avatars/fish.ts +1 -0
- package/src/avatars/flower.ts +1 -0
- package/src/avatars/fox.ts +1 -0
- package/src/avatars/frog.ts +1 -0
- package/src/avatars/ghost.ts +1 -0
- package/src/avatars/heart.ts +8 -8
- package/src/avatars/horse.ts +17 -0
- package/src/avatars/index.ts +20 -0
- package/src/avatars/invader.ts +1 -0
- package/src/avatars/key.ts +1 -0
- package/src/avatars/lightning.ts +1 -0
- package/src/avatars/mushroom.ts +1 -0
- package/src/avatars/octopus.ts +1 -0
- package/src/avatars/owl.ts +1 -0
- package/src/avatars/penguin.ts +1 -0
- package/src/avatars/planet.ts +1 -0
- package/src/avatars/praying-mantis.ts +17 -0
- package/src/avatars/rabbit.ts +1 -0
- package/src/avatars/robot.ts +1 -0
- package/src/avatars/rocket.ts +1 -0
- package/src/avatars/serialize.ts +4 -3
- package/src/avatars/skull.ts +6 -6
- package/src/avatars/snail.ts +1 -0
- package/src/avatars/snowflake.ts +17 -0
- package/src/avatars/star.ts +1 -0
- package/src/avatars/strawberry.ts +17 -0
- package/src/avatars/target.ts +1 -0
- package/src/avatars/tree.ts +1 -0
- package/src/avatars/types.ts +6 -3
- package/src/avatars/vangogh-almond-blossoms.ts +17 -0
- package/src/avatars/wasp.ts +17 -0
- package/src/avatars/whale.ts +1 -0
- package/src/avatars/windmill.ts +17 -0
- package/src/components/AppShell.svelte +13 -0
- package/src/components/Avatar.svelte +4 -1
- package/src/components/AvatarEditor.svelte +83 -5
- package/src/components/AvatarsView.svelte +14 -1
- package/src/components/DashboardView.svelte +39 -4
- package/src/components/InstanceCard.svelte +55 -6
- package/src/components/InstanceFilter.svelte +68 -0
- package/src/components/InstanceView.svelte +41 -8
- package/src/components/SettingsView.svelte +2 -2
- package/src/components/TopBar.svelte +9 -1
- package/src/container-injections/attention-hooks.ts +19 -38
- package/src/container-injections/claude-aliases.ts +7 -23
- package/src/container-injections/claude-code-credentials.ts +12 -8
- package/src/container-injections/claude-code-custom.ts +35 -48
- package/src/container-injections/claude-code-ide-extension.ts +39 -0
- package/src/container-injections/claude-code-models.ts +8 -24
- package/src/container-injections/claude-model.ts +5 -28
- package/src/container-injections/claude-no-coauthor.ts +5 -17
- package/src/container-injections/claude-skip-permissions.ts +7 -17
- package/src/container-injections/claude-statusline.ts +16 -18
- package/src/container-injections/claude-trust.ts +73 -0
- package/src/container-injections/host-env-vars.ts +13 -24
- package/src/container-injections/tmux.ts +2 -11
- package/src/index.ts +2 -0
- package/src/lib/claude-settings.server.ts +35 -0
- package/src/lib/container-files.server.ts +219 -0
- package/src/lib/devcontainer.server.ts +38 -1
- package/src/lib/exec.server.ts +2 -7
- package/src/lib/injections.server.ts +4 -0
- package/src/lib/instances.server.ts +14 -0
- package/src/lib/theme.server.ts +7 -3
- package/src/shell.html +2 -0
- package/src/types.ts +3 -0
- package/.mochi/svelte-client/HydratableIsland-79z9xq4b.js +0 -1
- package/.mochi/svelte-client/_hydrate-AppShell_2rtnxn6pgp2rh-f5rzyjm8.js +0 -2
- package/.mochi/svelte-client/_hydrate-AvatarsView_257s9yq1wwr4f-fxyd5qx4.js +0 -13
- package/.mochi/svelte-client/_hydrate-InstanceView_2ma45l9bybfhl-nv31ptdp.js +0 -1
- package/.mochi/svelte-client/chunk-6eexkr6p.js +0 -2
- package/.mochi/svelte-client/chunk-7znwaf7t.js +0 -2
- package/.mochi/svelte-client/chunk-zmmb1c4b.js +0 -2
- package/.mochi/svelte-css/Avatar-24th63awm9mna.css +0 -1
- package/.mochi/svelte-css/AvatarEditor-1ryrs1md5g36y.css +0 -1
- package/.mochi/svelte-css/InstanceCard-16f77aysm7lgp.css +0 -1
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
Button,
|
|
20
20
|
Toaster,
|
|
21
21
|
dist_default
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-q8rbesaw.js";
|
|
23
23
|
import {
|
|
24
24
|
HydratableBoundary,
|
|
25
25
|
Icon,
|
|
@@ -31,16 +31,16 @@ import"./chunk-we0ggtws.js";
|
|
|
31
31
|
|
|
32
32
|
// src/pages/App.svelte
|
|
33
33
|
import"svelte/internal/flags/async";
|
|
34
|
-
import * as $
|
|
34
|
+
import * as $24 from "svelte/internal/server";
|
|
35
35
|
|
|
36
36
|
// src/components/AppShell.svelte
|
|
37
37
|
import"svelte/internal/flags/async";
|
|
38
|
-
import * as $
|
|
38
|
+
import * as $23 from "svelte/internal/server";
|
|
39
39
|
import { SvelteSet } from "svelte/reactivity";
|
|
40
40
|
|
|
41
41
|
// src/components/DashboardView.svelte
|
|
42
42
|
import"svelte/internal/flags/async";
|
|
43
|
-
import * as $
|
|
43
|
+
import * as $20 from "svelte/internal/server";
|
|
44
44
|
|
|
45
45
|
// src/components/FolderBrowser.svelte
|
|
46
46
|
import"svelte/internal/flags/async";
|
|
@@ -378,13 +378,27 @@ function InstanceCard($$renderer, $$props) {
|
|
|
378
378
|
instance,
|
|
379
379
|
editing,
|
|
380
380
|
editingName = undefined,
|
|
381
|
+
pending = null,
|
|
381
382
|
onact,
|
|
382
383
|
onstartrename,
|
|
383
384
|
oncommitrename,
|
|
384
385
|
oncancelrename
|
|
385
386
|
} = $$props;
|
|
386
387
|
const canRebuild = $10.derived(() => instance.status === "running" || instance.status === "stopped" || instance.status === "error" && !!instance.container_id);
|
|
387
|
-
|
|
388
|
+
const BUSY_LABEL = {
|
|
389
|
+
start: "Starting\u2026",
|
|
390
|
+
stop: "Stopping\u2026",
|
|
391
|
+
delete: "Deleting\u2026",
|
|
392
|
+
rebuild: "Rebuilding\u2026"
|
|
393
|
+
};
|
|
394
|
+
$$renderer2.push(`<li${$10.attr_class("card panel svelte-13338y7", undefined, { busy: !!pending })}${$10.attr("aria-busy", !!pending || undefined)}>`);
|
|
395
|
+
if (pending) {
|
|
396
|
+
$$renderer2.push("<!--[0-->");
|
|
397
|
+
$$renderer2.push(`<div class="busy-overlay svelte-13338y7" aria-live="polite"><span class="busy-label svelte-13338y7">${$10.escape(BUSY_LABEL[pending])}</span></div>`);
|
|
398
|
+
} else {
|
|
399
|
+
$$renderer2.push("<!--[-1-->");
|
|
400
|
+
}
|
|
401
|
+
$$renderer2.push(`<!--]--> <div class="card-head svelte-13338y7">`);
|
|
388
402
|
Avatar($$renderer2, { id: instance.id, name: instance.name, interactive: true });
|
|
389
403
|
$$renderer2.push(`<!----> `);
|
|
390
404
|
if (editing) {
|
|
@@ -518,7 +532,7 @@ function InstanceCard($$renderer, $$props) {
|
|
|
518
532
|
|
|
519
533
|
// src/components/TopBar.svelte
|
|
520
534
|
import"svelte/internal/flags/async";
|
|
521
|
-
import * as $
|
|
535
|
+
import * as $19 from "svelte/internal/server";
|
|
522
536
|
|
|
523
537
|
// node_modules/@lucide/svelte/dist/icons/component.svelte
|
|
524
538
|
import"svelte/internal/flags/async";
|
|
@@ -591,13 +605,34 @@ function Brand($$renderer, $$props) {
|
|
|
591
605
|
});
|
|
592
606
|
}
|
|
593
607
|
|
|
608
|
+
// src/components/InstanceFilter.svelte
|
|
609
|
+
import"svelte/internal/flags/async";
|
|
610
|
+
import * as $14 from "svelte/internal/server";
|
|
611
|
+
function InstanceFilter($$renderer, $$props) {
|
|
612
|
+
$$renderer.component(($$renderer2) => {
|
|
613
|
+
let { value, onchange } = $$props;
|
|
614
|
+
const options = [
|
|
615
|
+
{ value: "all", label: "All" },
|
|
616
|
+
{ value: "active", label: "Active" },
|
|
617
|
+
{ value: "stopped", label: "Stopped" }
|
|
618
|
+
];
|
|
619
|
+
$$renderer2.push(`<div class="picker svelte-12yor8r" role="radiogroup" aria-label="Filter instances"><!--[-->`);
|
|
620
|
+
const each_array = $14.ensure_array_like(options);
|
|
621
|
+
for (let $$index = 0, $$length = each_array.length;$$index < $$length; $$index++) {
|
|
622
|
+
let opt = each_array[$$index];
|
|
623
|
+
$$renderer2.push(`<button type="button"${$14.attr_class("segment svelte-12yor8r", undefined, { active: value === opt.value })} role="radio"${$14.attr("aria-checked", value === opt.value)}>${$14.escape(opt.label)}</button>`);
|
|
624
|
+
}
|
|
625
|
+
$$renderer2.push(`<!--]--></div>`);
|
|
626
|
+
});
|
|
627
|
+
}
|
|
628
|
+
|
|
594
629
|
// src/components/SettingsCog.svelte
|
|
595
630
|
import"svelte/internal/flags/async";
|
|
596
|
-
import * as $
|
|
631
|
+
import * as $16 from "svelte/internal/server";
|
|
597
632
|
|
|
598
633
|
// node_modules/@lucide/svelte/dist/icons/settings.svelte
|
|
599
634
|
import"svelte/internal/flags/async";
|
|
600
|
-
import * as $
|
|
635
|
+
import * as $15 from "svelte/internal/server";
|
|
601
636
|
function Settings($$renderer, $$props) {
|
|
602
637
|
let { $$slots, $$events, ...props } = $$props;
|
|
603
638
|
const iconNode = [
|
|
@@ -609,12 +644,12 @@ function Settings($$renderer, $$props) {
|
|
|
609
644
|
],
|
|
610
645
|
["circle", { cx: "12", cy: "12", r: "3" }]
|
|
611
646
|
];
|
|
612
|
-
Icon($$renderer, $
|
|
647
|
+
Icon($$renderer, $15.spread_props([{ name: "settings" }, props, { iconNode }]));
|
|
613
648
|
}
|
|
614
649
|
// src/components/SettingsCog.svelte
|
|
615
650
|
function SettingsCog($$renderer, $$props) {
|
|
616
651
|
$$renderer.component(($$renderer2) => {
|
|
617
|
-
$$renderer2.push(`<a class="cog svelte-1e745g8"${$
|
|
652
|
+
$$renderer2.push(`<a class="cog svelte-1e745g8"${$16.attr("href", withPopupMarker("/settings"))} target="_blank" rel="noopener noreferrer" aria-label="Settings" title="Settings">`);
|
|
618
653
|
Settings($$renderer2, { size: 16 });
|
|
619
654
|
$$renderer2.push(`<!----></a>`);
|
|
620
655
|
});
|
|
@@ -622,11 +657,11 @@ function SettingsCog($$renderer, $$props) {
|
|
|
622
657
|
|
|
623
658
|
// src/components/CredMenu.svelte
|
|
624
659
|
import"svelte/internal/flags/async";
|
|
625
|
-
import * as $
|
|
660
|
+
import * as $18 from "svelte/internal/server";
|
|
626
661
|
|
|
627
662
|
// node_modules/@lucide/svelte/dist/icons/link.svelte
|
|
628
663
|
import"svelte/internal/flags/async";
|
|
629
|
-
import * as $
|
|
664
|
+
import * as $17 from "svelte/internal/server";
|
|
630
665
|
function Link($$renderer, $$props) {
|
|
631
666
|
let { $$slots, $$events, ...props } = $$props;
|
|
632
667
|
const iconNode = [
|
|
@@ -643,17 +678,17 @@ function Link($$renderer, $$props) {
|
|
|
643
678
|
}
|
|
644
679
|
]
|
|
645
680
|
];
|
|
646
|
-
Icon($$renderer, $
|
|
681
|
+
Icon($$renderer, $17.spread_props([{ name: "link" }, props, { iconNode }]));
|
|
647
682
|
}
|
|
648
683
|
// src/components/CredMenu.svelte
|
|
649
684
|
function CredMenu($$renderer, $$props) {
|
|
650
685
|
$$renderer.component(($$renderer2) => {
|
|
651
686
|
let { auth } = $$props;
|
|
652
687
|
let credOpen = false;
|
|
653
|
-
const authedCount = $
|
|
654
|
-
const credState = $
|
|
688
|
+
const authedCount = $18.derived(() => auth.filter((a) => a.available).length);
|
|
689
|
+
const credState = $18.derived(() => authedCount() === auth.length ? "ok" : authedCount() === 0 ? "error" : "warn");
|
|
655
690
|
const credIcon = { ok: Link, warn: Triangle_alert, error: X };
|
|
656
|
-
const CredIcon = $
|
|
691
|
+
const CredIcon = $18.derived(() => credIcon[credState()]);
|
|
657
692
|
function explainProvider(provider) {
|
|
658
693
|
if (provider.available) {
|
|
659
694
|
dist_default.success(`${provider.label} credentials come from ${provider.source}.`);
|
|
@@ -662,7 +697,7 @@ function CredMenu($$renderer, $$props) {
|
|
|
662
697
|
dist_default.error(`No ${provider.label} credentials found${hint}.`);
|
|
663
698
|
}
|
|
664
699
|
}
|
|
665
|
-
$$renderer2.push(`<div class="cred-menu svelte-vongf9"><button${$
|
|
700
|
+
$$renderer2.push(`<div class="cred-menu svelte-vongf9"><button${$18.attr_class(`cred ${credState()}`, "svelte-vongf9")}${$18.attr("aria-expanded", credOpen)} aria-haspopup="menu" aria-label="Credentials" title="Credentials">`);
|
|
666
701
|
if (CredIcon()) {
|
|
667
702
|
$$renderer2.push("<!--[-->");
|
|
668
703
|
CredIcon()($$renderer2, { size: 16 });
|
|
@@ -675,10 +710,10 @@ function CredMenu($$renderer, $$props) {
|
|
|
675
710
|
if (credOpen) {
|
|
676
711
|
$$renderer2.push("<!--[0-->");
|
|
677
712
|
$$renderer2.push(`<div class="cred-dropdown panel svelte-vongf9" role="menu"><!--[-->`);
|
|
678
|
-
const each_array = $
|
|
713
|
+
const each_array = $18.ensure_array_like(auth);
|
|
679
714
|
for (let $$index = 0, $$length = each_array.length;$$index < $$length; $$index++) {
|
|
680
715
|
let provider = each_array[$$index];
|
|
681
|
-
$$renderer2.push(`<button type="button" class="cred-row svelte-vongf9" role="menuitem"${$
|
|
716
|
+
$$renderer2.push(`<button type="button" class="cred-row svelte-vongf9" role="menuitem"${$18.attr("title", provider.available ? `Credentials from ${provider.source}, copied into each new instance.` : `No credentials found on this computer${provider.hint ? ` \u2014 ${provider.hint}` : ""}.`)}><span${$18.attr_class(`dot ${provider.available ? "on" : "off"}`, "svelte-vongf9")}></span> <span class="cred-label">${$18.escape(provider.label)}</span> <span class="cred-state svelte-vongf9">${$18.escape(provider.available ? "Authorized" : "Not found")}</span></button>`);
|
|
682
717
|
}
|
|
683
718
|
$$renderer2.push(`<!--]--></div>`);
|
|
684
719
|
} else {
|
|
@@ -696,6 +731,8 @@ function TopBar($$renderer, $$props) {
|
|
|
696
731
|
canDelete = false,
|
|
697
732
|
ready = true,
|
|
698
733
|
creating = false,
|
|
734
|
+
filter,
|
|
735
|
+
onFilter,
|
|
699
736
|
onNew,
|
|
700
737
|
onDeleteAll
|
|
701
738
|
} = $$props;
|
|
@@ -718,6 +755,13 @@ function TopBar($$renderer, $$props) {
|
|
|
718
755
|
$$renderer.push("<!--[-1-->");
|
|
719
756
|
}
|
|
720
757
|
$$renderer.push(`<!--]--> `);
|
|
758
|
+
if (filter && onFilter) {
|
|
759
|
+
$$renderer.push("<!--[0-->");
|
|
760
|
+
InstanceFilter($$renderer, { value: filter, onchange: onFilter });
|
|
761
|
+
} else {
|
|
762
|
+
$$renderer.push("<!--[-1-->");
|
|
763
|
+
}
|
|
764
|
+
$$renderer.push(`<!--]--> `);
|
|
721
765
|
SettingsCog($$renderer, {});
|
|
722
766
|
$$renderer.push(`<!----> `);
|
|
723
767
|
CredMenu($$renderer, { auth });
|
|
@@ -739,7 +783,7 @@ function TopBar($$renderer, $$props) {
|
|
|
739
783
|
onclick: onNew,
|
|
740
784
|
disabled: !ready || creating,
|
|
741
785
|
children: ($$renderer2) => {
|
|
742
|
-
$$renderer2.push(`<!---->${$
|
|
786
|
+
$$renderer2.push(`<!---->${$19.escape(creating ? "Creating\u2026" : "New instance")}`);
|
|
743
787
|
},
|
|
744
788
|
$$slots: { default: true }
|
|
745
789
|
});
|
|
@@ -751,11 +795,24 @@ function DashboardView($$renderer, $$props) {
|
|
|
751
795
|
$$renderer.component(($$renderer2) => {
|
|
752
796
|
let { preflight, instances, loaded, pet } = $$props;
|
|
753
797
|
let browserOpen = false;
|
|
798
|
+
let filter = "all";
|
|
754
799
|
let creating = false;
|
|
755
800
|
let actionError = null;
|
|
756
801
|
let editingId = null;
|
|
757
802
|
let editingName = "";
|
|
758
|
-
|
|
803
|
+
let pending = {};
|
|
804
|
+
const ready = $20.derived(() => preflight.docker && preflight.cli);
|
|
805
|
+
const visible = $20.derived(() => instances.filter((i) => {
|
|
806
|
+
if (filter === "active")
|
|
807
|
+
return i.status === "running" || i.status === "creating";
|
|
808
|
+
if (filter === "stopped")
|
|
809
|
+
return i.status === "stopped" || i.status === "error";
|
|
810
|
+
return true;
|
|
811
|
+
}));
|
|
812
|
+
function clearPending(id) {
|
|
813
|
+
const { [id]: _, ...rest } = pending;
|
|
814
|
+
pending = rest;
|
|
815
|
+
}
|
|
759
816
|
async function createFrom(sourcePath, opts) {
|
|
760
817
|
browserOpen = false;
|
|
761
818
|
creating = true;
|
|
@@ -774,10 +831,14 @@ function DashboardView($$renderer, $$props) {
|
|
|
774
831
|
return;
|
|
775
832
|
if (action === "rebuild" && !confirm("Recreate this container and re-run setup? The workspace is kept."))
|
|
776
833
|
return;
|
|
834
|
+
const since = instances.find((i) => i.id === id)?.status;
|
|
835
|
+
if (since)
|
|
836
|
+
pending = { ...pending, [id]: { action, since } };
|
|
777
837
|
try {
|
|
778
838
|
await apiPost(`/api/instances/${id}/${action}`, undefined, `Failed to ${action}`);
|
|
779
839
|
} catch (err) {
|
|
780
840
|
actionError = err.message;
|
|
841
|
+
clearPending(id);
|
|
781
842
|
}
|
|
782
843
|
}
|
|
783
844
|
function startRename(instance) {
|
|
@@ -822,6 +883,8 @@ function DashboardView($$renderer, $$props) {
|
|
|
822
883
|
canDelete: instances.length > 0,
|
|
823
884
|
ready: ready(),
|
|
824
885
|
creating,
|
|
886
|
+
filter,
|
|
887
|
+
onFilter: (v) => filter = v,
|
|
825
888
|
onNew: () => browserOpen = true,
|
|
826
889
|
onDeleteAll: deleteAll
|
|
827
890
|
});
|
|
@@ -849,7 +912,7 @@ function DashboardView($$renderer, $$props) {
|
|
|
849
912
|
$$renderer3.push(`<!--]--> `);
|
|
850
913
|
if (actionError) {
|
|
851
914
|
$$renderer3.push("<!--[0-->");
|
|
852
|
-
$$renderer3.push(`<div class="banner error svelte-146pixd"><strong>Error.</strong> <span>${$
|
|
915
|
+
$$renderer3.push(`<div class="banner error svelte-146pixd"><strong>Error.</strong> <span>${$20.escape(actionError)}</span></div>`);
|
|
853
916
|
} else {
|
|
854
917
|
$$renderer3.push("<!--[-1-->");
|
|
855
918
|
}
|
|
@@ -871,15 +934,19 @@ function DashboardView($$renderer, $$props) {
|
|
|
871
934
|
$$slots: { default: true }
|
|
872
935
|
});
|
|
873
936
|
$$renderer3.push(`<!----></div>`);
|
|
937
|
+
} else if (visible().length === 0) {
|
|
938
|
+
$$renderer3.push("<!--[2-->");
|
|
939
|
+
$$renderer3.push(`<div class="empty svelte-146pixd"><p class="empty-sub svelte-146pixd">No ${$20.escape(filter)} instances.</p></div>`);
|
|
874
940
|
} else {
|
|
875
941
|
$$renderer3.push("<!--[-1-->");
|
|
876
942
|
$$renderer3.push(`<ul class="grid svelte-146pixd"><!--[-->`);
|
|
877
|
-
const each_array = $
|
|
943
|
+
const each_array = $20.ensure_array_like(visible());
|
|
878
944
|
for (let $$index = 0, $$length = each_array.length;$$index < $$length; $$index++) {
|
|
879
945
|
let instance = each_array[$$index];
|
|
880
946
|
InstanceCard($$renderer3, {
|
|
881
947
|
instance,
|
|
882
948
|
editing: editingId === instance.id,
|
|
949
|
+
pending: pending[instance.id]?.action ?? null,
|
|
883
950
|
onact: (action) => act(instance.id, action),
|
|
884
951
|
onstartrename: () => startRename(instance),
|
|
885
952
|
oncommitrename: () => commitRename(instance.id),
|
|
@@ -915,7 +982,7 @@ function DashboardView($$renderer, $$props) {
|
|
|
915
982
|
|
|
916
983
|
// src/components/IdeBar.svelte
|
|
917
984
|
import"svelte/internal/flags/async";
|
|
918
|
-
import * as $
|
|
985
|
+
import * as $21 from "svelte/internal/server";
|
|
919
986
|
function IdeBar($$renderer, $$props) {
|
|
920
987
|
$$renderer.component(($$renderer2) => {
|
|
921
988
|
let {
|
|
@@ -934,10 +1001,10 @@ function IdeBar($$renderer, $$props) {
|
|
|
934
1001
|
if (running.length > 0) {
|
|
935
1002
|
$$renderer3.push("<!--[0-->");
|
|
936
1003
|
$$renderer3.push(`<nav class="tabs svelte-r39acv"><!--[-->`);
|
|
937
|
-
const each_array = $
|
|
1004
|
+
const each_array = $21.ensure_array_like(running);
|
|
938
1005
|
for (let $$index = 0, $$length = each_array.length;$$index < $$length; $$index++) {
|
|
939
1006
|
let inst = each_array[$$index];
|
|
940
|
-
$$renderer3.push(`<div${$
|
|
1007
|
+
$$renderer3.push(`<div${$21.attr_class("tab svelte-r39acv", undefined, {
|
|
941
1008
|
active: inst.id === active,
|
|
942
1009
|
"attn-done": inst.id !== active && attention[inst.id] === "done",
|
|
943
1010
|
"attn-waiting": inst.id !== active && attention[inst.id] === "waiting"
|
|
@@ -946,12 +1013,12 @@ function IdeBar($$renderer, $$props) {
|
|
|
946
1013
|
$$renderer3.push("<!--[0-->");
|
|
947
1014
|
$$renderer3.push(`<div class="tab-label editing svelte-r39acv">`);
|
|
948
1015
|
Avatar($$renderer3, { id: inst.id, name: inst.name, scale: 4 });
|
|
949
|
-
$$renderer3.push(`<!----> <input class="tab-name-edit svelte-r39acv"${$
|
|
1016
|
+
$$renderer3.push(`<!----> <input class="tab-name-edit svelte-r39acv"${$21.attr("value", editingName)} autofocus=""/></div>`);
|
|
950
1017
|
} else {
|
|
951
1018
|
$$renderer3.push("<!--[-1-->");
|
|
952
|
-
$$renderer3.push(`<button type="button" class="tab-label svelte-r39acv"${$
|
|
1019
|
+
$$renderer3.push(`<button type="button" class="tab-label svelte-r39acv"${$21.attr("title", inst.name)}>`);
|
|
953
1020
|
Avatar($$renderer3, { id: inst.id, name: inst.name, scale: 4 });
|
|
954
|
-
$$renderer3.push(`<!----> <span class="tab-name svelte-r39acv">${$
|
|
1021
|
+
$$renderer3.push(`<!----> <span class="tab-name svelte-r39acv">${$21.escape(inst.name)}</span></button>`);
|
|
955
1022
|
}
|
|
956
1023
|
$$renderer3.push(`<!--]--></div>`);
|
|
957
1024
|
}
|
|
@@ -959,19 +1026,19 @@ function IdeBar($$renderer, $$props) {
|
|
|
959
1026
|
} else {
|
|
960
1027
|
$$renderer3.push("<!--[-1-->");
|
|
961
1028
|
}
|
|
962
|
-
$$renderer3.push(`<!--]--> <a class="cog svelte-r39acv"${$
|
|
1029
|
+
$$renderer3.push(`<!--]--> <a class="cog svelte-r39acv"${$21.attr("href", withPopupMarker("/settings"))} target="_blank" rel="noopener noreferrer" title="Settings" aria-label="Settings">`);
|
|
963
1030
|
Settings($$renderer3, { size: 18 });
|
|
964
1031
|
$$renderer3.push(`<!----></a>`);
|
|
965
1032
|
},
|
|
966
1033
|
$$slots: { default: true }
|
|
967
1034
|
});
|
|
968
|
-
$
|
|
1035
|
+
$21.bind_props($$props, { editingName });
|
|
969
1036
|
});
|
|
970
1037
|
}
|
|
971
1038
|
|
|
972
1039
|
// src/components/IdeLoader.svelte
|
|
973
1040
|
import"svelte/internal/flags/async";
|
|
974
|
-
import * as $
|
|
1041
|
+
import * as $22 from "svelte/internal/server";
|
|
975
1042
|
function IdeLoader($$renderer, $$props) {
|
|
976
1043
|
$$renderer.component(($$renderer2) => {
|
|
977
1044
|
let { speed = 1, stalledAfterMs, onoverride } = $$props;
|
|
@@ -980,14 +1047,14 @@ function IdeLoader($$renderer, $$props) {
|
|
|
980
1047
|
const COLS = 22;
|
|
981
1048
|
const BASE_TICK_MS = 140;
|
|
982
1049
|
const FLIPS_PER_TICK = 7;
|
|
983
|
-
const tickMs = $
|
|
1050
|
+
const tickMs = $22.derived(() => Math.max(20, BASE_TICK_MS / speed));
|
|
984
1051
|
const seed = () => Array.from({ length: ROWS }, () => Array.from({ length: COLS }, () => Math.random() < 0.5 ? 0 : 1));
|
|
985
1052
|
let grid = seed();
|
|
986
1053
|
$$renderer2.push(`<div class="loader svelte-w5e143"><div class="grid svelte-w5e143" aria-hidden="true"><!--[-->`);
|
|
987
|
-
const each_array = $
|
|
1054
|
+
const each_array = $22.ensure_array_like(grid);
|
|
988
1055
|
for (let i = 0, $$length = each_array.length;i < $$length; i++) {
|
|
989
1056
|
let row = each_array[i];
|
|
990
|
-
$$renderer2.push(`<div class="row svelte-w5e143">${$
|
|
1057
|
+
$$renderer2.push(`<div class="row svelte-w5e143">${$22.escape(row.join(""))}</div>`);
|
|
991
1058
|
}
|
|
992
1059
|
$$renderer2.push(`<!--]--></div> <div class="label svelte-w5e143">Loading editor<span class="dot svelte-w5e143">.</span><span class="dot svelte-w5e143">.</span><span class="dot svelte-w5e143">.</span></div> `);
|
|
993
1060
|
if (stalled) {
|
|
@@ -1022,7 +1089,7 @@ function AppShell($$renderer, $$props) {
|
|
|
1022
1089
|
let livePreflight = preflight;
|
|
1023
1090
|
let livePet = pet;
|
|
1024
1091
|
let loaded = snapshot.length > 0;
|
|
1025
|
-
const running = $
|
|
1092
|
+
const running = $23.derived(() => instances.filter((i) => i.status === "running"));
|
|
1026
1093
|
let attention = Object.fromEntries(snapshot.map((i) => [i.id, i.attention]));
|
|
1027
1094
|
let editingId = null;
|
|
1028
1095
|
let editingName = "";
|
|
@@ -1049,9 +1116,9 @@ function AppShell($$renderer, $$props) {
|
|
|
1049
1116
|
}
|
|
1050
1117
|
}
|
|
1051
1118
|
let path = initialPath;
|
|
1052
|
-
const onIde = $
|
|
1053
|
-
const requestedId = $
|
|
1054
|
-
const active = $
|
|
1119
|
+
const onIde = $23.derived(() => path.startsWith("/ide"));
|
|
1120
|
+
const requestedId = $23.derived(() => path.startsWith("/ide/") ? path.slice("/ide/".length) : "");
|
|
1121
|
+
const active = $23.derived(() => onIde() ? running().some((i) => i.id === requestedId()) ? requestedId() : running()[0]?.id ?? "" : "");
|
|
1055
1122
|
function navigate(to) {
|
|
1056
1123
|
if (to === path)
|
|
1057
1124
|
return;
|
|
@@ -1067,7 +1134,7 @@ function AppShell($$renderer, $$props) {
|
|
|
1067
1134
|
let $$settled = true;
|
|
1068
1135
|
let $$inner_renderer;
|
|
1069
1136
|
function $$render_inner($$renderer3) {
|
|
1070
|
-
$$renderer3.push(`<div${$
|
|
1137
|
+
$$renderer3.push(`<div${$23.attr_class("app svelte-1duc7gd", undefined, { ide: onIde() })}>`);
|
|
1071
1138
|
if (onIde()) {
|
|
1072
1139
|
$$renderer3.push("<!--[0-->");
|
|
1073
1140
|
IdeBar($$renderer3, {
|
|
@@ -1091,16 +1158,16 @@ function AppShell($$renderer, $$props) {
|
|
|
1091
1158
|
$$renderer3.push("<!--[-1-->");
|
|
1092
1159
|
DashboardView($$renderer3, { preflight: livePreflight, instances, loaded, pet: livePet });
|
|
1093
1160
|
}
|
|
1094
|
-
$$renderer3.push(`<!--]--> <div${$
|
|
1095
|
-
const each_array = $
|
|
1161
|
+
$$renderer3.push(`<!--]--> <div${$23.attr_class("panes svelte-1duc7gd", undefined, { hidden: !onIde() })}><!--[-->`);
|
|
1162
|
+
const each_array = $23.ensure_array_like(running());
|
|
1096
1163
|
for (let $$index = 0, $$length = each_array.length;$$index < $$length; $$index++) {
|
|
1097
1164
|
let inst = each_array[$$index];
|
|
1098
1165
|
if (visited.has(inst.id)) {
|
|
1099
1166
|
$$renderer3.push("<!--[0-->");
|
|
1100
|
-
$$renderer3.push(`<div${$
|
|
1167
|
+
$$renderer3.push(`<div${$23.attr_class("pane svelte-1duc7gd", undefined, { active: inst.id === active() })}>`);
|
|
1101
1168
|
if (mountable(inst.id)) {
|
|
1102
1169
|
$$renderer3.push("<!--[0-->");
|
|
1103
|
-
$$renderer3.push(`<iframe${$
|
|
1170
|
+
$$renderer3.push(`<iframe${$23.attr("src", ideUrl(inst))}${$23.attr("title", inst.name)} class="svelte-1duc7gd" onload="this.__e=event"></iframe>`);
|
|
1104
1171
|
} else {
|
|
1105
1172
|
$$renderer3.push("<!--[-1-->");
|
|
1106
1173
|
}
|
|
@@ -1153,7 +1220,7 @@ function App($$renderer, $$props) {
|
|
|
1153
1220
|
let { preflight, initialPath, snapshot, pet } = $$props;
|
|
1154
1221
|
if (true) {
|
|
1155
1222
|
let failed = function($$renderer3, error) {
|
|
1156
|
-
$$renderer3.push(`<mochi-island-failure data-component="AppShell"${$
|
|
1223
|
+
$$renderer3.push(`<mochi-island-failure data-component="AppShell"${$24.attr("data-message", error.message)}></mochi-island-failure>`);
|
|
1157
1224
|
};
|
|
1158
1225
|
$$renderer2.push("<!--[0-->");
|
|
1159
1226
|
$$renderer2.boundary({ failed }, ($$renderer3) => {
|
|
@@ -1161,7 +1228,7 @@ function App($$renderer, $$props) {
|
|
|
1161
1228
|
{
|
|
1162
1229
|
HydratableBoundary($$renderer3, {
|
|
1163
1230
|
children: ($$renderer4) => {
|
|
1164
|
-
$$renderer4.push(`<mochi-hydratable-island component-name="AppShell_2rtnxn6pgp2rh" component-url="__MOCHI_COMPONENT_URL__AppShell_2rtnxn6pgp2rh__"${$
|
|
1231
|
+
$$renderer4.push(`<mochi-hydratable-island component-name="AppShell_2rtnxn6pgp2rh" component-url="__MOCHI_COMPONENT_URL__AppShell_2rtnxn6pgp2rh__"${$24.attr("props-ref", emitIslandProps({ preflight, initialPath, snapshot, pet }))}>`);
|
|
1165
1232
|
$$renderer4.push(`<!--[-->`);
|
|
1166
1233
|
{
|
|
1167
1234
|
AppShell($$renderer4, { preflight, initialPath, snapshot, pet });
|
|
@@ -4,13 +4,14 @@ import {
|
|
|
4
4
|
Avatar,
|
|
5
5
|
Button,
|
|
6
6
|
COLS,
|
|
7
|
+
GRAY,
|
|
7
8
|
OFF,
|
|
8
9
|
ON,
|
|
9
10
|
ROWS,
|
|
10
11
|
Toaster,
|
|
11
12
|
avatars,
|
|
12
13
|
dist_default
|
|
13
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-q8rbesaw.js";
|
|
14
15
|
import {
|
|
15
16
|
HydratableBoundary,
|
|
16
17
|
Icon,
|
|
@@ -20,11 +21,11 @@ import"./chunk-we0ggtws.js";
|
|
|
20
21
|
|
|
21
22
|
// src/pages/Avatars.svelte
|
|
22
23
|
import"svelte/internal/flags/async";
|
|
23
|
-
import * as $
|
|
24
|
+
import * as $8 from "svelte/internal/server";
|
|
24
25
|
|
|
25
26
|
// src/components/AvatarsView.svelte
|
|
26
27
|
import"svelte/internal/flags/async";
|
|
27
|
-
import * as $
|
|
28
|
+
import * as $7 from "svelte/internal/server";
|
|
28
29
|
|
|
29
30
|
// src/components/AvatarEditor.svelte
|
|
30
31
|
import"svelte/internal/flags/async";
|
|
@@ -91,6 +92,20 @@ function External_link($$renderer, $$props) {
|
|
|
91
92
|
];
|
|
92
93
|
Icon($$renderer, $4.spread_props([{ name: "external-link" }, props, { iconNode }]));
|
|
93
94
|
}
|
|
95
|
+
// src/avatars/editor.ts
|
|
96
|
+
var MODES = [
|
|
97
|
+
{ id: "black", label: "Black" },
|
|
98
|
+
{ id: "gray", label: "Gray" },
|
|
99
|
+
{ id: "cycle", label: "Cycle" }
|
|
100
|
+
];
|
|
101
|
+
function nextValue(mode, current) {
|
|
102
|
+
if (mode === "black")
|
|
103
|
+
return current === ON ? OFF : ON;
|
|
104
|
+
if (mode === "gray")
|
|
105
|
+
return current === GRAY ? OFF : GRAY;
|
|
106
|
+
return current === OFF ? GRAY : current === GRAY ? ON : OFF;
|
|
107
|
+
}
|
|
108
|
+
|
|
94
109
|
// src/avatars/serialize.ts
|
|
95
110
|
var REPO_URL = "https://github.com/khromov/codebay";
|
|
96
111
|
function normalizeName(raw) {
|
|
@@ -101,7 +116,8 @@ function cellsToPixels(cells) {
|
|
|
101
116
|
for (let r = 0;r < ROWS; r++) {
|
|
102
117
|
let row = "";
|
|
103
118
|
for (let c = 0;c < COLS; c++) {
|
|
104
|
-
|
|
119
|
+
const cell = cells[r * COLS + c];
|
|
120
|
+
row += cell === ON ? "#" : cell === GRAY ? "+" : ".";
|
|
105
121
|
}
|
|
106
122
|
rows.push(row);
|
|
107
123
|
}
|
|
@@ -137,7 +153,7 @@ function toIssueUrl(art) {
|
|
|
137
153
|
toModuleSource(art).trimEnd(),
|
|
138
154
|
"```",
|
|
139
155
|
"",
|
|
140
|
-
"_It should satisfy `src/avatars/avatars.test.ts`: exactly 8\xD78, only
|
|
156
|
+
"_It should satisfy `src/avatars/avatars.test.ts`: exactly 8\xD78, only `#`/`+`/`.` pixels, unique name._"
|
|
141
157
|
].join(`
|
|
142
158
|
`);
|
|
143
159
|
const params = new URLSearchParams({ title, body });
|
|
@@ -152,7 +168,18 @@ function AvatarEditor($$renderer, $$props) {
|
|
|
152
168
|
let avatarName = "";
|
|
153
169
|
const slug = $5.derived(() => normalizeName(avatarName));
|
|
154
170
|
const art = $5.derived(() => ({ name: slug() || "my-avatar", pixels: cellsToPixels(cells) }));
|
|
155
|
-
const canContribute = $5.derived(() => slug().length > 0 && cells.some((c) => c
|
|
171
|
+
const canContribute = $5.derived(() => slug().length > 0 && cells.some((c) => c !== OFF));
|
|
172
|
+
let mode = "cycle";
|
|
173
|
+
let modeButtons = [];
|
|
174
|
+
function onModeKeydown(e, i) {
|
|
175
|
+
const dir = e.key === "ArrowRight" || e.key === "ArrowDown" ? 1 : e.key === "ArrowLeft" || e.key === "ArrowUp" ? -1 : 0;
|
|
176
|
+
if (dir === 0)
|
|
177
|
+
return;
|
|
178
|
+
e.preventDefault();
|
|
179
|
+
const next = (i + dir + MODES.length) % MODES.length;
|
|
180
|
+
mode = MODES[next].id;
|
|
181
|
+
modeButtons[next]?.focus();
|
|
182
|
+
}
|
|
156
183
|
let gridEl = null;
|
|
157
184
|
let painting = false;
|
|
158
185
|
let paintValue = ON;
|
|
@@ -173,7 +200,7 @@ function AvatarEditor($$renderer, $$props) {
|
|
|
173
200
|
return;
|
|
174
201
|
e.currentTarget.setPointerCapture?.(e.pointerId);
|
|
175
202
|
painting = true;
|
|
176
|
-
paintValue = cells[i]
|
|
203
|
+
paintValue = nextValue(mode, cells[i]);
|
|
177
204
|
cells[i] = paintValue;
|
|
178
205
|
}
|
|
179
206
|
function onpointermove(e) {
|
|
@@ -190,7 +217,7 @@ function AvatarEditor($$renderer, $$props) {
|
|
|
190
217
|
cells = Array(ROWS * COLS).fill(OFF);
|
|
191
218
|
}
|
|
192
219
|
function invert() {
|
|
193
|
-
cells = cells.map((c) => c === ON ? OFF : ON);
|
|
220
|
+
cells = cells.map((c) => c === ON ? OFF : c === OFF ? ON : c);
|
|
194
221
|
}
|
|
195
222
|
async function copyModule() {
|
|
196
223
|
try {
|
|
@@ -210,13 +237,19 @@ function AvatarEditor($$renderer, $$props) {
|
|
|
210
237
|
const each_array_1 = $5.ensure_array_like(cells);
|
|
211
238
|
for (let i = 0, $$length = each_array_1.length;i < $$length; i++) {
|
|
212
239
|
let cell = each_array_1[i];
|
|
213
|
-
$$renderer2.push(`<span${$5.attr_class("cell svelte-qu6vp4", undefined, { on: cell === ON })}></span>`);
|
|
240
|
+
$$renderer2.push(`<span${$5.attr_class("cell svelte-qu6vp4", undefined, { on: cell === ON, gray: cell === GRAY })}></span>`);
|
|
214
241
|
}
|
|
215
242
|
$$renderer2.push(`<!--]--></div></div> <div class="side svelte-qu6vp4"><div class="preview"><div class="preview-label svelte-qu6vp4">Preview</div> <div class="preview-row svelte-qu6vp4">`);
|
|
216
243
|
Avatar($$renderer2, { art: art(), name: art().name, scale: 6 });
|
|
217
244
|
$$renderer2.push(`<!----> `);
|
|
218
245
|
Avatar($$renderer2, { art: art(), name: art().name, scale: 3 });
|
|
219
|
-
$$renderer2.push(`<!----></div></div> <label class="name-field svelte-qu6vp4"><span class="preview-label svelte-qu6vp4">Name</span> <input type="text"${$5.attr("value", avatarName)}${$5.attr("placeholder", namePlaceholder)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off" maxlength="24" class="svelte-qu6vp4"/></label> <div class="
|
|
246
|
+
$$renderer2.push(`<!----></div></div> <label class="name-field svelte-qu6vp4"><span class="preview-label svelte-qu6vp4">Name</span> <input type="text"${$5.attr("value", avatarName)}${$5.attr("placeholder", namePlaceholder)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off" maxlength="24" class="svelte-qu6vp4"/></label> <div class="mode-field svelte-qu6vp4"><span class="preview-label svelte-qu6vp4">Mode</span> <div class="modes svelte-qu6vp4" role="radiogroup" aria-label="Drawing mode"><!--[-->`);
|
|
247
|
+
const each_array_2 = $5.ensure_array_like(MODES);
|
|
248
|
+
for (let i = 0, $$length = each_array_2.length;i < $$length; i++) {
|
|
249
|
+
let m = each_array_2[i];
|
|
250
|
+
$$renderer2.push(`<button type="button"${$5.attr_class("mode svelte-qu6vp4", undefined, { active: mode === m.id })} role="radio"${$5.attr("aria-checked", mode === m.id)}${$5.attr("tabindex", mode === m.id ? 0 : -1)}>${$5.escape(m.label)}</button>`);
|
|
251
|
+
}
|
|
252
|
+
$$renderer2.push(`<!--]--></div></div> <div class="tools svelte-qu6vp4">`);
|
|
220
253
|
Button($$renderer2, {
|
|
221
254
|
size: "sm",
|
|
222
255
|
icon: Eraser,
|
|
@@ -265,6 +298,24 @@ function AvatarEditor($$renderer, $$props) {
|
|
|
265
298
|
});
|
|
266
299
|
}
|
|
267
300
|
|
|
301
|
+
// node_modules/@lucide/svelte/dist/icons/bot.svelte
|
|
302
|
+
import"svelte/internal/flags/async";
|
|
303
|
+
import * as $6 from "svelte/internal/server";
|
|
304
|
+
function Bot($$renderer, $$props) {
|
|
305
|
+
let { $$slots, $$events, ...props } = $$props;
|
|
306
|
+
const iconNode = [
|
|
307
|
+
["path", { d: "M12 8V4H8" }],
|
|
308
|
+
[
|
|
309
|
+
"rect",
|
|
310
|
+
{ width: "16", height: "12", x: "4", y: "8", rx: "2" }
|
|
311
|
+
],
|
|
312
|
+
["path", { d: "M2 14h2" }],
|
|
313
|
+
["path", { d: "M20 14h2" }],
|
|
314
|
+
["path", { d: "M15 13v2" }],
|
|
315
|
+
["path", { d: "M9 13v2" }]
|
|
316
|
+
];
|
|
317
|
+
Icon($$renderer, $6.spread_props([{ name: "bot" }, props, { iconNode }]));
|
|
318
|
+
}
|
|
268
319
|
// src/components/AvatarsView.svelte
|
|
269
320
|
function AvatarsView($$renderer, $$props) {
|
|
270
321
|
$$renderer.component(($$renderer2) => {
|
|
@@ -278,13 +329,22 @@ function AvatarsView($$renderer, $$props) {
|
|
|
278
329
|
});
|
|
279
330
|
$$renderer2.push(`<!----> <main class="content svelte-fkq7sr">`);
|
|
280
331
|
AvatarEditor($$renderer2, { namePlaceholder });
|
|
281
|
-
$$renderer2.push(`<!----> <section class="catalog svelte-fkq7sr"><header class="svelte-fkq7sr"><h2 class="svelte-fkq7sr">The set</h2> <p class="svelte-fkq7sr">${$
|
|
282
|
-
const each_array = $
|
|
332
|
+
$$renderer2.push(`<!----> <section class="catalog svelte-fkq7sr"><header class="svelte-fkq7sr"><h2 class="svelte-fkq7sr">The set</h2> <p class="svelte-fkq7sr">${$7.escape(avatars.length)} hand-crafted 8\xD78 sprites</p></header> <ul class="svelte-fkq7sr"><!--[-->`);
|
|
333
|
+
const each_array = $7.ensure_array_like(avatars);
|
|
283
334
|
for (let $$index = 0, $$length = each_array.length;$$index < $$length; $$index++) {
|
|
284
335
|
let art = each_array[$$index];
|
|
285
336
|
$$renderer2.push(`<li class="svelte-fkq7sr">`);
|
|
286
337
|
Avatar($$renderer2, { art, name: art.name, scale: 8, interactive: true });
|
|
287
|
-
$$renderer2.push(`<!----> <span class="label svelte-fkq7sr"
|
|
338
|
+
$$renderer2.push(`<!----> <span class="label svelte-fkq7sr">`);
|
|
339
|
+
if (art.robot) {
|
|
340
|
+
$$renderer2.push("<!--[0-->");
|
|
341
|
+
$$renderer2.push(`<span class="robot-mark svelte-fkq7sr" title="AI-generated">`);
|
|
342
|
+
Bot($$renderer2, { size: 11 });
|
|
343
|
+
$$renderer2.push(`<!----></span>`);
|
|
344
|
+
} else {
|
|
345
|
+
$$renderer2.push("<!--[-1-->");
|
|
346
|
+
}
|
|
347
|
+
$$renderer2.push(`<!--]--> ${$7.escape(art.name)}</span></li>`);
|
|
288
348
|
}
|
|
289
349
|
$$renderer2.push(`<!--]--></ul></section></main></div> `);
|
|
290
350
|
Toaster($$renderer2, {
|
|
@@ -302,7 +362,7 @@ function Avatars($$renderer, $$props) {
|
|
|
302
362
|
let { namePlaceholder } = $$props;
|
|
303
363
|
if (true) {
|
|
304
364
|
let failed = function($$renderer3, error) {
|
|
305
|
-
$$renderer3.push(`<mochi-island-failure data-component="AvatarsView"${$
|
|
365
|
+
$$renderer3.push(`<mochi-island-failure data-component="AvatarsView"${$8.attr("data-message", error.message)}></mochi-island-failure>`);
|
|
306
366
|
};
|
|
307
367
|
$$renderer2.push("<!--[0-->");
|
|
308
368
|
$$renderer2.boundary({ failed }, ($$renderer3) => {
|
|
@@ -310,7 +370,7 @@ function Avatars($$renderer, $$props) {
|
|
|
310
370
|
{
|
|
311
371
|
HydratableBoundary($$renderer3, {
|
|
312
372
|
children: ($$renderer4) => {
|
|
313
|
-
$$renderer4.push(`<mochi-hydratable-island component-name="AvatarsView_257s9yq1wwr4f" component-url="__MOCHI_COMPONENT_URL__AvatarsView_257s9yq1wwr4f__"${$
|
|
373
|
+
$$renderer4.push(`<mochi-hydratable-island component-name="AvatarsView_257s9yq1wwr4f" component-url="__MOCHI_COMPONENT_URL__AvatarsView_257s9yq1wwr4f__"${$8.attr("props-ref", emitIslandProps({ namePlaceholder }))}>`);
|
|
314
374
|
$$renderer4.push(`<!--[-->`);
|
|
315
375
|
{
|
|
316
376
|
AvatarsView($$renderer4, { namePlaceholder });
|