import { For, Index, Show, createSignal, onCleanup, onMount, type JSX } from "solid-js"; import { ModuleCard, STATUS, ACCENT, CALM, WARM, CRITICAL, CARD_FILL, CARD_STROKE } from "./IslandMock"; import { CollageCell, InkStage } from "./FeatureCollage"; import { useDemoLoop } from "./useDemoLoop"; import { Glyph, TimerTapeMock, TIMER_ORANGE, type GlyphName } from "./ModuleMocks"; /** * "Everything else": a bento of small live tiles for the modules that do * not get a full breakdown, headed by a two-way marquee naming the rest. */ /** Steady tick for tiles that animate continuously rather than in steps. */ function useTick(everyMs: number) { const [tick, setTick] = createSignal(0); onMount(() => { const interval = setInterval(() => setTick((t) => t + 1), everyMs); onCleanup(() => clearInterval(interval)); }); return tick; } /** A compact black island strip for tiles that show a slot reading. */ function MiniPill(props: { children: JSX.Element; class?: string }) { return (
Night Drive
Synthwave Radio · Browser
{ringing() ? "3:00 timer" : "Remaining of 3:00"}
{pk().label}
DOWN
{down()} Mbps
UP
{up()} Mbps
{AWAKE_MODES[mode()].note}
{m().note}
9:41
And everything else
Every module below lives in the same notch, arranged however you like, under the same one-time license.