← Commit history
bin/adom-footprint
⋯ 1 unchanged line ⋯
install.sh+2−12
@@ -1,14 +1,4 @@ #!/bin/bash-# install.sh for adom-footprint (app).-# Runs from the extracted module directory (~/project/adom_modules/adom-footprint/). set -euo pipefail--DIR="$(cd "$(dirname "$0")" && pwd)"-cd "$DIR"--# App install: link the binary onto PATH.-BIN_DIR="${HOME}/.local/bin"-mkdir -p "$BIN_DIR"-install -m 0755 "$DIR/bin/adom-footprint" "$BIN_DIR/adom-footprint"-echo "Installed adom-footprint -> $BIN_DIR/adom-footprint"-+DIR="$(cd "$(dirname "$0")" && pwd)"; BIN="${HOME}/.local/bin"; mkdir -p "$BIN"+install -m 0755 "$DIR/bin/adom-footprint" "$BIN/adom-footprint"; echo "Installed adom-footprint"
package.json+21−6
@@ -1,11 +1,26 @@ {   "slug": "adom-footprint",-  "version": "1.0.4",+  "version": "1.0.5",   "type": "app",-  "description": "A live PCB-footprint viewer with a floating Layers HUD and the InstaPCB 300um solder-paste dispensing dots no other tool shows.",+  "description": "A live PCB-footprint viewer with a floating Layers HUD and the opt-in InstaPCB 300um solder-paste dispensing dots no other tool shows.",   "dependencies": {},-  "tags": ["eda","kicad","footprint","pcb","instapcb"],-  "hero": { "type": "image", "path": "screenshots/hero.png" },-  "scripts": { "install": "./install.sh", "uninstall": "./uninstall.sh" },+  "tags": [+    "eda",+    "kicad",+    "footprint",+    "pcb",+    "instapcb"+  ],+  "hero": {+    "type": "billboard",+    "headline": "Footprints with a layers HUD.",+    "subhead": "Copper, courtyard and fab on by default \u2014 flip on the InstaPCB 300\u00b5m paste-dot preview no other tool shows.",+    "screenshot": "screenshots/shot.png",+    "accent": "#00b8b1"+  },+  "scripts": {+    "install": "./install.sh",+    "uninstall": "./uninstall.sh"+  },   "needs_sudo": false-}+}\ No newline at end of file
page.json+4−5
@@ -1,8 +1,8 @@ {   "slug": "adom-footprint",-  "version": "1.0.4",+  "version": "1.0.5",   "type": "app",-  "description": "A live PCB-footprint viewer with a floating Layers HUD and the InstaPCB 300um solder-paste dispensing dots no other tool shows.",+  "description": "A live PCB-footprint viewer with a floating Layers HUD and the opt-in InstaPCB 300um solder-paste dispensing dots no other tool shows.",   "dependencies": {},   "tags": [     "eda",@@ -15,7 +15,7 @@     "type": "billboard",     "headline": "Footprints with a layers HUD.",     "subhead": "Copper, courtyard and fab on by default — flip on the InstaPCB 300µm paste-dot preview no other tool shows.",-    "screenshot": "docs/shot.png",+    "screenshot": "screenshots/shot.png",     "accent": "#00b8b1"   },   "scripts": {@@ -27,6 +27,5 @@   "author": {     "name": "John Lauer",     "email": "[email protected]"-  },-  "title": "Adom Footprint"+  } }\ No newline at end of file
screenshots/shot.pngadded
⋯ 1 unchanged line ⋯
src/app.html+12−2
@@ -225,14 +225,24 @@       }     }     let layerState=loadLayerState();+    // A layer is "present" only if the render actually contains its geometry —+    // so the HUD lists exactly the layers this footprint has, no empty rows.+    function layerPresent(def){+      const sv=svgEl(); if(!sv) return false;+      if(def.kind==='group') return sv.querySelectorAll(def.sel).length>0;+      let found=false;+      sv.querySelectorAll('path,rect,circle,polygon,line').forEach(el=>{ if(colorMatch(el,def.color)) found=true; });+      return found;+    }     function setupLayers(s){       const hud=document.getElementById('layersHud'), btn=document.getElementById('layersBtn');       if(!s.footprintName){ hud.style.display='none'; btn.style.display='none'; return; }       btn.style.display='inline-flex';-      // default visible unless user turned off; paste-dots default ON to showcase       const body=document.getElementById('layersBody'); body.innerHTML='';       LAYER_DEFS.forEach(def=>{-        const on = layerState[def.key]!==false;+        // Standard layers default visible (unless turned off); the InstaPCB paste-dots+        // overlay is an opt-in preview → default OFF so it never obscures the copper.+        const on = def.special ? (layerState[def.key]===true) : (layerState[def.key]!==false);         const meta = def.key==='paste-dots' ? ((s.pasteDots||0)+' @ 300µm')                   : def.key==='paste-ap'   ? ((s.pasteApertures||0)+' openings') : '';         const row=document.createElement('div');
uninstall.sh+1−5
@@ -1,7 +1,3 @@ #!/bin/bash-# uninstall.sh for adom-footprint (app). set -euo pipefail--rm -f "${HOME}/.local/bin/adom-footprint"-echo "Uninstalled adom-footprint"-+rm -f "${HOME}/.local/bin/adom-footprint"; echo "Uninstalled adom-footprint"