shadok-ai 0.9.19 → 0.9.20

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 (2) hide show
  1. package/package.json +1 -1
  2. package/public/index.html +12 -2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "shadok-ai",
3
- "version": "0.9.19",
3
+ "version": "0.9.20",
4
4
  "main": "dist/session.js",
5
5
  "scripts": {
6
6
  "test": "node --import tsx --test test/*.ts context/*/test/*.test.mjs",
package/public/index.html CHANGED
@@ -3400,12 +3400,22 @@
3400
3400
  * size — the same lesson as the waiting glyph. The Shadok keeps pumping on top
3401
3401
  * for whoever looks closely. */
3402
3402
  const PUMP_FRAMES = 12;
3403
- const BREATHE = 0.26; // how far the ground travels toward the accent, at full stroke
3403
+ /** How far the ground lifts at full stroke, toward `--text-dim`.
3404
+ *
3405
+ * Toward the DIM TEXT colour, not toward the accent, and that is the whole
3406
+ * point: a waiting state is now a full tile of red or amber, so a ground
3407
+ * drifting far enough toward the accent to be noticed also starts to read as
3408
+ * "unread". Lifting into the neutral family is unmistakable at 16px and
3409
+ * cannot be confused with either. 0.7 sounds large because the stroke rides a
3410
+ * sine and barely rests at the peak — at 0.26 toward the accent, the swing
3411
+ * was there in a still and invisible in a tab. */
3412
+ const BREATHE = 0.7;
3404
3413
  function faviconPumpingSVG(phase) {
3405
3414
  const accent = themeColor("--amber", "#f0a848");
3406
3415
  const base = themeColor("--bg", "#14161d");
3416
+ const lift = themeColor("--text-dim", "#7d8293");
3407
3417
  const p = (Math.sin((phase / PUMP_FRAMES) * 2 * Math.PI - Math.PI / 2) + 1) / 2; // 0..1..0
3408
- return faviconWrap(shadokInner(accent, pumpPose(p)), mixHex(base, accent, p * BREATHE));
3418
+ return faviconWrap(shadokInner(accent, pumpPose(p)), mixHex(base, lift, p * BREATHE));
3409
3419
  }
3410
3420
  /** What each channel is asking for, as the pure module wants it. */
3411
3421
  function attentionInput() {