···55import "@styles/icons.css";
66---
7788-<main>Nothing here yet.</main>
88+<main>TODO</main>
99+1010+<style>
1111+ main {
1212+ padding: var(--space-md);
1313+ }
1414+</style>
9151016<script>
1117 import scope from "astro:scope";
1818+1919+ import { computed, effect, type Signal, signal } from "spellcaster";
2020+ import { repeat, tags, text } from "spellcaster/hyperscript.js";
2121+1222 import { applets } from "@web-applets/sdk";
1313- import { State } from "./types";
2323+2424+ import type { State } from "./types.d.ts";
14251526 const context = applets.register<State>();
1627
+2-1
src/pages/constituents/pilot/audio/_applet.astro
···9595 // @ts-ignore
9696 import scope from "astro:scope";
9797 import { applets } from "@web-applets/sdk";
9898- import { State } from "./types";
9898+9999+ import type { State } from "./types.d.ts";
99100100101 const context = applets.register<State>();
101102
+3
src/pages/engine/audio/_applet.astro
···2121 // Initial state
2222 context.data = {
2323 items: {},
2424+ volume: 0.5,
2525+ // TODO: Store volume level in indexedb or localstorage
2626+ // TODO: Have an action to tweak this value
2427 };
25282629 // State helpers
···11<script>
22- import { QueueItem, State } from "./types";
22+ import type { QueueItem, State } from "./types.d.ts";
33 import { register } from "@scripts/applets/common";
4455 ////////////////////////////////////////////
+5-4
src/pages/index.astro
···5959];
60606161const processors = [
6262- { url: "processor/artwork/", title: "(TODO) Artwork fetcher" },
6262+ { url: "processor/artwork/", title: "Artwork fetcher" },
6363 { url: "processor/metadata/", title: "Metadata fetcher" },
6464+ { url: "processor/search/", title: "Search" },
6465];
6566---
6667···129130 <p>
130131 Constituents are UI applets that are used in themes and abstractions. These are organised
131132 per theme or abstraction, but that doesn't mean they are restricted to that theme or
132132- abstraction, you can mix and match as you like.
133133+ abstraction, you can mix and match as you like. You can even use them on their own.
133134 </p>
134135135136 <List items={constituents} />
···173174 </Applet>
174175175176 <Applet title="Processors" list={processors}>
176176- These applets interact with the bytes provided by the input applets. This processed data
177177- can then be passed on to other applets.
177177+ These applets work with the tracks generated by the input applets to add more data to them
178178+ or produce more data based on the tracks.
178179 </Applet>
179180180181 <Applet title="Supplements" list={[]}>Additional applets, such as scrobblers.</Applet>
+1-1
src/pages/input/native-fs/_applet.astro
···1616</main>
17171818<script>
1919- import { computed, effect, Signal, signal } from "spellcaster";
1919+ import { computed, effect, type Signal, signal } from "spellcaster";
2020 import { repeat, tags, text } from "spellcaster/hyperscript.js";
2121 import { type FileSystemDirectoryHandle, showDirectoryPicker } from "native-file-system-adapter";
2222 import * as IDB from "idb-keyval";
+1-1
src/pages/input/s3/_applet.astro
···38383939<script>
4040 import { S3Client } from "@bradenmacdonald/s3-lite-client";
4141- import { computed, effect, Signal, signal } from "spellcaster";
4141+ import { computed, effect, type Signal, signal } from "spellcaster";
4242 import { type Props, repeat, tags, text } from "spellcaster/hyperscript.js";
4343 import * as IDB from "idb-keyval";
4444 import * as URI from "uri-js";
···11+---
22+import Layout from "@layouts/applet.astro";
33+import Applet from "./_applet.astro";
44+import { title } from "./_manifest.json";
55+---
66+77+<Layout title={title}>
88+ <Applet />
99+</Layout>
+3
src/pages/processor/search/types.d.ts
···11+export type State = {
22+ inserted: Set<string>;
33+};
-2
src/pages/themes/desktop/index.astro
···4455<Page title="Diffuse">
66 <script src="../../../scripts/themes/desktop/index.js"></script>
77-88- <p>Nothing here yet.</p>
97</Page>
+3-2
src/scripts/applets/common.ts
···33import QS from "query-string";
44import { applets } from "@web-applets/sdk";
55import { type ElementConfigurator, h } from "spellcaster/hyperscript.js";
66-import { effect, isSignal, Signal, signal } from "spellcaster/spellcaster.js";
66+import { effect, isSignal, type Signal, signal } from "spellcaster/spellcaster.js";
77import { xxh32 } from "xxh32";
88-import { Track } from "@applets/core/types";
88+99+import type { Track } from "@applets/core/types";
9101011////////////////////////////////////////////
1112// 🪟 Applet connector
+1-1
src/scripts/output/common.ts
···11import type { ManagedOutput, Track } from "@applets/core/types";
22-import { BroadcastedApplet } from "@scripts/applets/common";
22+import type { BroadcastedApplet } from "@scripts/applets/common";
3344export const INITIAL_MANAGED_OUTPUT: ManagedOutput = {
55 tracks: {
···11+import type { URLTrack } from "webamp";
12import Webamp from "webamp";
22-import { URLTrack } from "webamp";
3344import type { ManagedOutput, ResolvedUri, Track } from "@applets/core/types.d.ts";
55import { applet, waitUntilAppletData } from "@scripts/applets/common";