← Commit history

v2.0.13: Module 2.4.0: the panel gutter check now measures against the containing block

John Lauer ·f5d4773689 ·1mo ago ·parent 52be115
8 files changed +27−99
Cargo.lock+1−1
@@ -10,7 +10,7 @@ checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa"  [[package]] name = "adom-parts-search"-version = "2.0.12"+version = "2.0.13" dependencies = [  "base64",  "clap",
Cargo.toml+1−1
@@ -1,6 +1,6 @@ [package] name = "adom-parts-search"-version = "2.0.12"+version = "2.0.13" edition = "2021" description = "Parts Search Electronics component search — CLI, backend HTTP service, and Hydrogen webview app" license = "MIT"
VERSION+1−1
@@ -1 +1 @@-2.0.12+2.0.13
install.sh

  
package.json+2−41
@@ -1,6 +1,6 @@ {   "slug": "adom-parts-search",-  "version": "2.0.13",+  "version": "2.0.4",   "type": "app",   "description": "One search box across Mouser, DigiKey and JLCPCB. Parallel queries, side-by-side product photos, and a Mouser-preferred recommendation that reasons around stock and lead time. Dock Bar ready: serve, health, settings, Say it.",   "dependencies": {@@ -38,44 +38,5 @@     "SKILL.md",     "BUILD-SKILL.md",     "CHANGELOG.md"-  ],-  "changelog": "Module 2.4.0: the panel gutter check now measures against the containing block",-  "discovery_triggers": [-    "parts search",-    "find part",-    "source component",-    "source part",-    "compare distributors",-    "compare vendors",-    "Mouser or DigiKey",-    "BOM sourcing",-    "price this part",-    "where can I get",-    "check stock",-    "parts availability",-    "fastest delivery",-    "cheapest part",-    "component search",-    "part lookup",-    "price breaks"-  ],-  "discovery_pitch": "Search Mouser, DigiKey and JLCPCB in parallel with product photos; Mouser-preferred best-source pick. Say 'with parts search' to your AI.",-  "sample_prompts": [-    {-      "label": "source an STM32F103RBT6",-      "prompt": "source an STM32F103RBT6"-    },-    {-      "label": "where can I get an ESP32-S3-WROOM cheape",-      "prompt": "where can I get an ESP32-S3-WROOM cheapest and fastest"-    },-    {-      "label": "compare Mouser, DigiKey and JLCPCB for a",-      "prompt": "compare Mouser, DigiKey and JLCPCB for an LM555"-    },-    {-      "label": "price this BOM across distributors",-      "prompt": "price this BOM across distributors"-    }   ]-}\ No newline at end of file+}
page.json+9−50
@@ -4,7 +4,7 @@   "slug": "adom-parts-search",   "title": "Parts Search",   "brief": "One search box across Mouser, DigiKey and JLCPCB: parallel queries, side-by-side product photos, and a Mouser-preferred recommendation that reasons around stock and lead time.",-  "version": "2.0.13",+  "version": "2.0.4",   "install": {     "binary_name": "adom-parts-search",     "install_dir": "",@@ -33,25 +33,13 @@   },   "hero": {     "type": "image",-    "path": "screenshots/hero.png"+    "path": "docs/hero.png"   },   "sample_prompts": [-    {-      "label": "source an STM32F103RBT6",-      "prompt": "source an STM32F103RBT6"-    },-    {-      "label": "where can I get an ESP32-S3-WROOM cheape",-      "prompt": "where can I get an ESP32-S3-WROOM cheapest and fastest"-    },-    {-      "label": "compare Mouser, DigiKey and JLCPCB for a",-      "prompt": "compare Mouser, DigiKey and JLCPCB for an LM555"-    },-    {-      "label": "price this BOM across distributors",-      "prompt": "price this BOM across distributors"-    }+    "source an STM32F103RBT6",+    "where can I get an ESP32-S3-WROOM cheapest and fastest",+    "compare Mouser, DigiKey and JLCPCB for an LM555",+    "price this BOM across distributors"   ],   "discovery_triggers": [     "parts search",@@ -66,41 +54,12 @@     "where can I get",     "check stock",     "parts availability",-    "fastest delivery",-    "cheapest part",-    "component search",-    "part lookup",-    "price breaks"+    "fastest delivery"   ],-  "discovery_pitch": "Search Mouser, DigiKey and JLCPCB in parallel with product photos; Mouser-preferred best-source pick. Say 'with parts search' to your AI.",+  "discovery_pitch": "Search Mouser + DigiKey + JLCPCB in parallel from one interface, with product photos and a Mouser-preferred best-source pick.",   "metadata": {     "platform": "linux"   },   "category": "tools",-  "org": "adom",-  "description": "One search box across Mouser, DigiKey and JLCPCB. Parallel queries, side-by-side product photos, and a Mouser-preferred recommendation that reasons around stock and lead time. Dock Bar ready: serve, health, settings, Say it.",-  "dependencies": {-    "adom/adom-mouser": "*",-    "adom/adom-digikey": "*",-    "adom/adom-jlcpcb": "*"-  },-  "needs_sudo": false,-  "scripts": {-    "install": "./install.sh",-    "uninstall": "./uninstall.sh"-  },-  "files": [-    "bin/**",-    "skills/**",-    "docs/icon.svg",-    "dockbar.json",-    "install.sh",-    "uninstall.sh",-    "package.json",-    "README.md",-    "SKILL.md",-    "BUILD-SKILL.md",-    "CHANGELOG.md"-  ],-  "changelog": "Module 2.4.0: the panel gutter check now measures against the containing block"+  "org": "adom" }\ No newline at end of file
src/app/ui.html+13−5
@@ -112,14 +112,20 @@ main>:first-child{margin-top:0} .searchwrap:hover{background:#4b5563} .searchwrap:focus-within{background:linear-gradient(100deg,#00e6dc,#39b8ff 60%,#8c6bf7);box-shadow:0 0 0 4px rgba(0,184,177,.12),0 12px 40px rgba(0,0,0,.35)} .searchbar{display:flex;gap:8px;align-items:center;background:var(--surface);border-radius:13px;padding:7px}+/* The icon and the input are ONE unit. Before this they were siblings, and at+   the narrow breakpoint the input was forced to a full-width second line while+   the icon (with no order set) stayed on the first: a magnifier orphaned on a+   row of its own, which is what adom/adom-parts-search#9 shows. Grouping them+   means they wrap together or not at all. */+.sb-field{display:flex;align-items:center;flex:1 1 200px;min-width:0} .searchbar .sicon{width:20px;height:20px;color:var(--text-2);margin-left:8px;flex:none}-.searchbar input{flex:1 1 200px;min-width:0;background:transparent;border:none;outline:none;color:var(--text);font:500 16px var(--brand-body);padding:9px 6px;height:42px}+.searchbar input{flex:1 1 auto;min-width:0;background:transparent;border:none;outline:none;color:var(--text);font:500 16px var(--brand-body);padding:9px 6px;height:42px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis} .examples{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:10px 4px 0} .ex-label{font:600 11.5px var(--brand-heading);color:var(--text-2);margin-right:2px} .ex{min-height:28px;padding:3px 11px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text-body);font:500 12.5px var(--mono);cursor:pointer;transition:border-color .15s ease,color .15s ease,background .15s ease,transform .06s ease} .ex:hover{border-color:var(--accent);color:var(--accent);background:var(--elevated)} .ex:active{transform:translateY(1px) scale(.97)}-.searchbar input::placeholder{color:var(--text-2)}+.searchbar input::placeholder{color:var(--text-2);text-overflow:ellipsis} .sb-controls{display:flex;gap:8px;align-items:center;flex:none} .seg{display:inline-flex;background:var(--elevated);border:1px solid var(--border);border-radius:8px;padding:2px;gap:2px} .seg button{min-width:34px;height:32px;padding:0 8px;border:none;border-radius:6px;background:transparent;color:var(--text-2);font:500 13px var(--mono);cursor:pointer;transition:background .15s ease,color .15s ease,transform .06s ease}@@ -349,7 +355,7 @@ select.sel:disabled{opacity:.5;cursor:not-allowed}   .app-header{padding:0 12px;gap:8px}   main{padding:20px 10px 40px}   .searchbar{flex-wrap:wrap;padding:8px}-  .searchbar input{flex:1 1 100%;order:1}+  .sb-field{flex:1 1 100%;order:1}   .sb-controls{order:2;flex:1 1 100%;justify-content:space-between;flex-wrap:wrap;gap:6px}   .sb-controls .btn{flex:1 1 100%;min-height:44px}   .seg button{min-width:40px;height:36px}@@ -400,8 +406,10 @@ select.sel:disabled{opacity:.5;cursor:not-allowed}       <div class="leds" id="ledRow" aria-label="Live health"></div>        <div class="searchwrap"><form id="search-form" class="searchbar" autocomplete="off" role="search">-        <svg class="sicon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true"><circle cx="11" cy="11" r="7"/><path d="M20 20l-3.5-3.5"/></svg>-        <input id="q" name="keyword" type="text" placeholder="Part number or keyword: STM32F103RBT6, LM358, 10k 0402, LDO 3.3V" aria-label="Part number or keyword" autofocus>+        <div class="sb-field">+          <svg class="sicon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true"><circle cx="11" cy="11" r="7"/><path d="M20 20l-3.5-3.5"/></svg>+          <input id="q" name="keyword" type="text" placeholder="Part number or keyword, e.g. STM32F103RBT6 or LM358" aria-label="Part number or keyword" autofocus>+        </div>         <div class="sb-controls">           <div class="seg" role="group" aria-label="Results per vendor" data-tooltip="How many hits to fetch from each vendor. 3 for a quick snapshot, 10 to compare variants. Higher costs more upstream API calls: Mouser's free tier is about 1000 per day.">             <span class="seg-label">per vendor</span>
uninstall.sh