← Commit history

slider pauses the animation (Play/Pause toggle); auto-resume only after 2 minutes idle

John Lauer ·83e7f067dd ·3mo ago ·parent a45d8b3
3 files changed +20−9
package.json+1−1
@@ -2,7 +2,7 @@   "slug": "bq25792-charger",   "title": "BQ25792 Charger",   "type": "component",-  "version": "0.1.36",+  "version": "0.1.37",   "description": "BQ25792 Charger - buck-boost 1S-4S battery charger board by Adonis, with real 3D copper traces and measured stackup.",   "tags": [     "hardware"
page.json+10−3
@@ -4,9 +4,16 @@   "slug": "bq25792-charger",   "title": "BQ25792 Charger",   "brief": "Buck-boost 1S-4S battery charger board (TI BQ25792) with 14 Adom machine pins, by Adonis",-  "version": "0.1.36",+  "version": "0.1.37",   "tags": [-    "hardware"+    "adom",+    "adom-modular",+    "component",+    "charger",+    "battery",+    "bq25792",+    "power",+    "usb-c"   ],   "license": "proprietary",   "component": {@@ -49,7 +56,7 @@     "email": "[email protected]"   },   "visibility": "public",-  "description": "BQ25792 Charger - buck-boost 1S-4S battery charger board by Adonis, with real 3D copper traces and measured stackup.",+  "description": "BQ25792 Charger - a buck-boost 1S-4S battery charger board (Texas Instruments BQ25792) designed by Adonis in Fusion 360, with 14 Adom machine pins for the modular stack. Interactive colored 3D model, schematic and layout views.",   "dependencies": {},   "files": [     "README.md",
readme.html+9−5
@@ -55,9 +55,9 @@   #lp-order { margin-top:5px; font-size:11px; color:#3fb950; }   #lp-order.bad { color:#f85149; font-weight:600; }   #scrub-wrap { position:absolute; left:50%; transform:translateX(-50%); bottom:12px; z-index:30;-    width:46%; background:rgba(13,17,23,0.55); backdrop-filter:blur(8px);+    width:46%; display:flex; align-items:center; gap:8px; background:rgba(13,17,23,0.55); backdrop-filter:blur(8px);     border:1px solid rgba(48,54,61,0.8); border-radius:10px; padding:7px 12px; }-  #scrub { width:100%; accent-color:#00b8b1; }+  #scrub { flex:1; accent-color:#00b8b1; }   .grip { cursor:grab; color:#6e7681; font-weight:700; letter-spacing:1px; padding:0 6px 0 2px; user-select:none; }   .grip:active { cursor:grabbing; } </style>@@ -73,7 +73,7 @@     <button class="fbtn" id="btn-fs" type="button" title="Fullscreen">Fullscreen</button>   </div>   <div id="layers-panel"><div class="lp-title"><span class="grip" title="drag">::</span> Layers</div><div id="lp-rows"></div><div id="lp-order">order: -</div></div>-  <div id="scrub-wrap"><input id="scrub" type="range" min="0" max="1000" value="0"></div>+  <div id="scrub-wrap"><button id="btn-play" class="fbtn" type="button" title="Play/pause">Pause</button><input id="scrub" type="range" min="0" max="1000" value="0"></div>   <span id="vstatus">starting viewer...</span> </div> </div>@@ -390,11 +390,15 @@ exported bodies + design rules.</p>     if(document.fullscreenElement){ document.exitFullscreen(); return; }     (card.requestFullscreen?card.requestFullscreen():Promise.reject()).catch?.(function(){ set("fullscreen blocked in the embed - open the readme URL directly"); });   });+  const btnPlay=document.getElementById("btn-play");+  function play(){ mode="anim"; dir=(u>=1)?-1:1; holdT=0; setBtns(btnAnim); set("animating"); btnPlay.textContent="Pause"; if(resumeTimer){clearTimeout(resumeTimer);resumeTimer=null;} }+  function pause(){ mode="manual"; setBtns(null); set("paused"); btnPlay.textContent="Play"; }+  btnPlay.addEventListener("click",function(){ if(mode==="anim") pause(); else play(); });   scrub.addEventListener("input",function(){-    mode="manual"; setBtns(null); set("scrubbing");+    pause(); set("scrubbing");     u=Number(scrub.value)/1000; apply(u);     if(resumeTimer) clearTimeout(resumeTimer);-    resumeTimer=setTimeout(function(){ mode="anim"; dir=(u>=1)?-1:1; holdT=0; setBtns(btnAnim); set("animating"); },5000);+    resumeTimer=setTimeout(play, 120000);   // auto-resume after 2 minutes idle   });    // draggable floaties (drag by the :: grip)