Repository navigation
v1.7.0
m-predict's live tally and m-timer's ±1 min buttons appear only once Egatari Studio implements
ctx.liveandctx.extend(Studio backlog #110/#112, after v0.5). Until then m-predict works with the presenter's own counts, and m-timer runs without the buttons.
Added
m-predict(seriescommon): predict, then reveal. A question and 2–6 choices (step 0), the class's counts as horizontal bars in them-barslook (step 1), and the answer atanswer-step(default 2): the right choice framed with 「✓ 正解」 and thenote, the others dimmed but readable. The first component that takes viewer input (spec §8.4 "Viewer input", docs/input-components.ja.md): the presenter counts a show of hands with −1/+1 buttons (48 px high) or by typing into a field, on the stage or (through Studio) from the presenter's view withinput(choice, count);counts()and anegatari-inputevent let Studio follow; a learner clicks a choice to mark their own prediction. Input is viewer state (spec §8.4, egatari-spec 241770f): the counts and the learner's prediction stay while the viewer is on the slide, forward to the answer step and back, so the reveal shows the class's counts and whether the prediction was right; they go back to the author'scountsonctx.reset(Studio v0.5.0: entering from another slide, a jump) and, for earlier Studio, whendeck:possays the slide was entered from another slide. Never in video (?mode=videobuilds no controls); print shows the author's counts with the controls hidden, and the screen keeps the viewer's afterwards.static viewerInput = truein index.js, carried into manifest.json ascomponents.predict.viewerInput(CATALOG marks it 「入力あり」). Optionalpoll="p1": the live poll's counts fromctx.live.poll(id)when the player allows them (live §2.5). Variantsfade,draw.tools/test-predict.mjs(intools/test-all.mjs); the digits-in-the-field case waits for Studio v0.5.0 (#69) and is skipped with the pinned v0.4.3- Interactive parts (操作できるパーツ, docs/conventions.md §6):
static interactive = truein the index.js ofm-predict,m-kobunandm-menu(one line each; their drawing and READMEs are unchanged), written to manifest.json ascomponents.<name>.interactive(andviewerInputform-predict) bytools/release.mjs.tools/lint.mjsfails a part whose index.js has aninput()method, click/pointer/key/input/change listeners, creates links or controls, or takes links as data without the flag, andviewerInputwithoutinteractive. Marked by text and a dashed frame, not colour alone: 「操作できる」 next to the name in CATALOG.md, a 「操作できる / Interactive」 badge (first in the body) and a dashed--accent2frame on the part's intro slide in the gallery, and a 「操作できる」 badge as the first element of the body of each part's first demo slide (not in the h2, which Studio uses as the slide's title and key) m-timer(seriescommon): a group-work timer, from 雲居玄道's deck-local component for a training session. Step 0 is the ready screen with the total; step k counts down phase k (duration(k)= itssec, so the clock is a pure function of (k, t)): title, two lines of text, a big clock, a progress bar, the phase list on the right (current phase framed, finished ones--muted, still ≥ 4.5:1), the last minute in--emphand the clock blinking each second in the last 10 s (not in video or the final state). Strings come from built-in Japanese and English tables (<html lang>) and can be overridden withlabels; the old"done"member still works. +1 min / −1 min buttons callctx.extend(±60)(spec §8.4, egatari-spec 485ae54) and appear only when the player passesctx.extend(not in the pinned Studio v0.4.3, never in video, hidden in print); the extension is viewer state that persists within the slide like m-predict's counts.static interactive/static viewerInput. Variantfadeonly.tools/test-timer.mjs(intools/test-all.mjs) It declaresstatic clock = true(manifestclock): under prefers-reduced-motion the player keeps real time for it (spec §9.1). The ±1 min total comes from the player:ctx.extend(0)reads it on every renderpurposes.json:timebox(時間を区切る / Time-boxing; no tile)purposes.json:predict(予想してから確かめる / Predict, then check). It adds a new-deck tile (approved by the owner, 2026-10-25) (tile: "own", label 予想して確かめる / Predict, then check, iconpredict, examples 手を挙げて数える・答えを開く / show of hands, then the answer)
Fixed
m-map-japandemo: the population slide's conclusion is within Egatari Studio's 35-character limit (the source moved to the heading)
Security
tools/map(build-time only, not in the release): adm-zip 0.6.1 through an npmoverridesentry (Dependabot alerts on mapshaper's dependency); the rebuilt map data is unchanged..github/dependabot.ymlwith a 7-day cooldown (14 for majors); the tool is installed withnpm ci --ignore-scripts; SECURITY.md § Dependencies
README size (Egatari Studio's free-plan pack), change since v1.6.0
m-barsREADME: 0 bytesm-flowREADME: 0 bytesm-menuREADME: 0 bytesm-curvesREADME: 0 bytesm-quadREADME: 0 bytesm-kpiREADME: 0 bytes
New parts, outside the llm: omit blocks: m-predict 1,089 bytes (Studio adds it to the free core), m-timer 1,063 bytes (not in the free core).
sha256 e11a1931577a4e85ea8d20ad5a906aa3539473aaf22de31a93fea8790cdabca1 egatari-components-v1.7.0.tar.gz