← Commit history

per-layer isolate icon (click isolates that layer, click again restores); hardened copper meshes

John Lauer ·62dc0d5983 ·3mo ago ·parent 0937bcc
5 files changed +37−8
cu-l15-vec.glb.png
⋯ 1 unchanged line ⋯
cu-l2-vec.glb.png
⋯ 1 unchanged line ⋯
package.json+1−1
@@ -2,7 +2,7 @@   "slug": "bq25792-charger",   "title": "BQ25792 Charger",   "type": "component",-  "version": "0.1.56",+  "version": "0.1.57",   "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.56",+  "version": "0.1.57",   "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+26−4
@@ -58,6 +58,10 @@     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 { flex:1; accent-color:#00b8b1; }+  .lp-iso { width:16px; height:16px; padding:0; margin-right:2px; border:1px solid #30363d; border-radius:4px;+    background:transparent; color:#6e7681; font-size:11px; line-height:1; cursor:pointer; flex:none; }+  .lp-iso:hover { color:#5ff5e8; border-color:#00b8b1; }+  .lp-iso.on { background:#0b3d33; border-color:#00b8b1; color:#5ff5e8; }   .grip { cursor:grab; color:#6e7681; font-weight:700; letter-spacing:1px; padding:0 6px 0 2px; user-select:none; }   .grip:active { cursor:grabbing; } </style>@@ -396,16 +400,34 @@ exported bodies + design rules.</p>   }    // ---- layers panel ----+  let isolatedKey=null;+  function applyVisibility(){+    LAYERS.forEach(function(L){+      const on = isolatedKey ? (L.key===isolatedKey) : L.visible;+      if(L.wrap) L.wrap.setEnabled(on);+      if(L.cb) L.cb.disabled = !!isolatedKey;+    });+  }   function buildPanel(){     lpRows.innerHTML="";     LAYERS.forEach(function(L,i){       const row=document.createElement("div"); row.className="lp-row";-      const cb=document.createElement("input"); cb.type="checkbox"; cb.checked=true;-      cb.addEventListener("change",function(){ L.visible=cb.checked; if(L.wrap) L.wrap.setEnabled(cb.checked); });+      const iso=document.createElement("button"); iso.className="lp-iso"; iso.type="button";+      iso.title="Isolate this layer (click again to restore)"; iso.textContent="\u25CE";+      iso.addEventListener("click",function(e){+        e.stopPropagation();+        isolatedKey = (isolatedKey===L.key) ? null : L.key;+        lpRows.querySelectorAll(".lp-iso").forEach(function(b){ b.classList.remove("on"); });+        if(isolatedKey) iso.classList.add("on");+        applyVisibility();+        set(isolatedKey ? ("isolated: "+L.label) : "all layers");+      });+      const cb=document.createElement("input"); cb.type="checkbox"; cb.checked=true; L.cb=cb;+      cb.addEventListener("change",function(){ L.visible=cb.checked; applyVisibility(); });       const nm=document.createElement("span"); nm.className="lp-name"; nm.textContent=L.label;       const z=document.createElement("span"); z.className="lp-z"; L.zEl=z;-      row.appendChild(cb); row.appendChild(nm); row.appendChild(z);-      row.addEventListener("mouseenter",function(){ hilite(L,true); });+      row.appendChild(iso); row.appendChild(cb); row.appendChild(nm); row.appendChild(z);+      row.addEventListener("mouseenter",function(){ if(!isolatedKey) hilite(L,true); });       row.addEventListener("mouseleave",function(){ hilite(L,false); });       lpRows.appendChild(row);     });