@johnmorrisdotca/kazoku-ui 0.15.0 → 0.15.1

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/CHANGELOG.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.15.1] - 2026-11-04
6
+
7
+ The embed panel asks for one frame at a time.
8
+
9
+ - **Fixed: the embed panel cancelled its fit frame and asked again**, so a page that counts animation frames (wakusei-planets' freeze test) saw several asked-for frames at once. The panel now asks for one frame and keeps it, reading the choices when it runs. New test in `e2e/embed-panel.demo.mjs`: no frame at rest, and never more than one pending, whatever is pressed.
10
+
5
11
  ## [0.15.0] - 2026-11-03
6
12
 
7
13
  One "Put it in your page" panel for every package of the family.
@@ -580,8 +580,9 @@ export class EmbedPanelElement extends HTMLElement {
580
580
  #fit() {
581
581
  if (!this.#built || this.hasAttribute("no-preview"))
582
582
  return;
583
+ // One frame at a time, never cancelled: a frame already asked for reads the choices as they are when it runs.
583
584
  if (this.#frame !== 0)
584
- cancelAnimationFrame(this.#frame);
585
+ return;
585
586
  this.#frame = requestAnimationFrame(() => {
586
587
  this.#frame = 0;
587
588
  const el = this.#el;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@johnmorrisdotca/kazoku-ui",
3
- "version": "0.15.0",
3
+ "version": "0.15.1",
4
4
  "description": "Kazoku UI 家族, the family's shared interface parts as their own versioned package: view controls for any 3D or zoomable view (angle, tilt, auto-turn, zoom about the pointer, pan, touch, address state) a light, dark and auto theme switch, a language picker, choices kept in the address, a save-as-image button and one set of speed buttons (0.5×, 1×, 2× or your own steps) and the \"Put it in your page\" embed panel (a compact picker, sizes, HTML, ES module, React, Vue, Angular, Svelte and iframe tabs, a picture that fits its box, Copy), each a framework-free custom element and a plain controller. Zero dependencies; the shared 3D renderer takes three.js as an optional peer.",
5
5
  "keywords": [
6
6
  "view-controls",