evals-lab 0.1.3 → 0.2.0

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.
@@ -0,0 +1 @@
1
+ button,input,select,textarea{font:inherit;color:var(--ink);background:var(--surface2);border:1px solid var(--line);border-radius:var(--r-ctl)}input:not([type=checkbox]),select{height:var(--ctl);padding:0 var(--s2);min-width:0;max-width:100%}::placeholder{color:var(--dim);opacity:1}textarea{width:100%;min-height:calc(2lh + 2 * var(--s2) + 2px);field-sizing:content;max-height:24lh;padding:var(--s2);resize:vertical;line-height:1.45}input[type=checkbox]{width:18px;height:18px;accent-color:var(--amber);margin:0}input[readonly],textarea[readonly],.readonly{background:0 0;border-style:dashed}.prop[data-locked] .prop-value>span{border:1px dashed var(--line);border-radius:var(--r-ctl,7px);color:var(--dim);padding:4px 8px}.prop[data-locked] .prop-name{align-items:center;gap:6px;display:inline-flex}button{align-items:center;gap:var(--s1);-webkit-tap-highlight-color:transparent;min-height:var(--ctl);padding:0 var(--s3);font-size:var(--t-label);background:var(--amber);color:var(--on-amber);cursor:pointer;border-color:#0000;font-weight:600;display:inline-flex}button:disabled{opacity:.5;cursor:default}.ghost{color:var(--amber);border-color:var(--line);background:0 0;font-weight:500}.ghost.destructive{color:var(--rust)}.icon-btn{width:var(--ctl);min-height:var(--ctl);color:var(--faint);background:0 0;border-color:#0000;justify-content:center;padding:0}.icon-btn:hover,.icon-btn:focus-visible{color:var(--ink)}.group{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pane);padding:var(--s4)}.group.sub{margin-top:var(--s3);background:0 0;border:0;padding:0}.group-summary{align-items:center;gap:var(--s2);min-height:var(--ctl);cursor:pointer;list-style:none;display:flex}.group-summary::-webkit-details-marker{display:none}.group-caret{color:var(--faint);flex:none;transition:transform .15s}.group[open]>.group-summary .group-caret{transform:rotate(90deg)}.group-title{font-size:var(--t-heading);overflow-wrap:anywhere;min-width:0;margin:0;font-weight:600}.group.sub .group-title{font-size:var(--t-label)}.group.sub[data-depth="2"]>.group-summary>.group-title{color:var(--dim)}.group.sub[data-depth="2"]{margin-top:var(--s4);padding-top:var(--s3);border-top:1px solid var(--line)}.group.sub[data-depth="3"]{margin-top:var(--s3)}@media (width>=601px){.group .group{margin-inline-start:calc(16px + var(--s2))}}.group-body>.group.sub[data-depth="2"]:first-child{margin-top:var(--s2);border-top:0;padding-top:0}.group-note{font-size:var(--t-note);color:var(--dim);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.group[open]>.group-summary .group-note{display:none}.group-rename{flex:1;min-width:0}.group-body{margin-top:var(--s3)}.group-about{margin:0 0 var(--s2);max-width:72ch;color:var(--dim);font-size:var(--t-label);line-height:1.45}.group-about:last-child{margin-bottom:0}.about-lead{color:var(--ink);font-weight:600}.group.sub>.group-body{margin-top:var(--s2)}.group-summary .menu{margin-left:auto}.menu{flex:none;display:inline-flex;position:relative}.menu-pop{right:0;top:calc(100% + var(--s1));z-index:20;min-width:160px;max-width:calc(100vw - 2 * var(--s4));padding:var(--s1);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pane);box-shadow:0 8px 24px var(--scrim);flex-direction:column;gap:2px;display:flex;position:absolute}.menu-pop.start{left:0;right:auto}.menu-pop.up{top:auto;bottom:calc(100% + var(--s1))}.menu-pop.fixed{position:fixed;bottom:auto;right:auto}.menu-item{justify-content:flex-start;gap:var(--s2);padding:0 var(--s2);color:var(--amber);white-space:nowrap;background:0 0;border-color:#0000;font-weight:500}.menu-item:hover,.menu-item:focus-visible{background:var(--surface2)}.menu-item.destructive{color:var(--rust)}.repeater-items{gap:var(--s2);display:grid}.repeater-items>.group.sub{margin-top:0}.repeater-items>.group.sub:not(:last-child){padding-bottom:var(--s2);border-bottom:1px solid var(--line)}.repeater-empty{padding:var(--s4);border:1px dashed var(--line);border-radius:var(--r-pane);color:var(--dim);font-size:var(--t-label);text-align:center}.add-btn{margin-top:var(--s2);justify-self:start}.props>.add-btn{grid-column:1/-1}.props,.prop{--prop-cols:minmax(88px, 35%) minmax(0, 1fr) auto var(--ctl)}.props{grid-template-columns:var(--prop-cols);row-gap:var(--s1);column-gap:var(--s2);display:grid}.props>.prop{grid-column:1/-1;grid-template-columns:subgrid}.prop{grid-template-columns:var(--prop-cols);align-items:center;gap:var(--s2);min-height:var(--ctl);padding-bottom:var(--s1);border-bottom:1px solid var(--line);grid-template-areas:"name value flag menu";display:grid}.prop-name{grid-area:name}.prop-value{grid-area:value}.prop-flag{grid-area:flag}.prop-menu{grid-area:menu}.prop:last-of-type{border-bottom:0}.prop[data-hint]{grid-template-areas:"name value flag menu"".hint hint hint";row-gap:2px}.prop-hint{font-size:var(--t-note);color:var(--dim);grid-area:hint;max-width:72ch;line-height:1.4}.prop-name{font-size:var(--t-label);color:var(--dim);overflow-wrap:anywhere;min-width:0}.prop-name code{font:var(--t-note) var(--mono);color:var(--dim)}.prop-value{align-items:center;gap:var(--s2);min-width:0;display:flex}.props{--w-num:8ch;--w-token:28ch}.prop[data-size=num] .prop-value>input{width:var(--w-num)}.prop[data-size=token] .prop-value>input,.prop[data-size=token] .prop-value>.secret{width:var(--w-token)}.prop[data-size=wide] .prop-value>input{width:100%}.prop-value>select{width:auto;max-width:100%}.prop-value>.secret{max-width:100%}.prop-marker{font-size:var(--t-note);color:var(--dim);flex:none}.secret{align-items:center;gap:var(--s1);min-width:0;display:flex}.secret input{flex:1;min-width:0}.prop-code{font:var(--t-note) / 1.5 var(--mono);min-height:var(--ctl);max-width:100%;padding:var(--s1) var(--s2);border:1px dashed var(--line);border-radius:var(--r-ctl);white-space:pre-wrap;overflow-wrap:anywhere;align-items:center;display:flex}.prop-check{align-items:center;gap:var(--s2);min-height:var(--ctl);font-size:var(--t-label);display:inline-flex}.prop-flag label{min-width:var(--ctl);min-height:var(--ctl);justify-content:center;align-items:center;display:inline-flex}.prop-menu{min-width:var(--ctl);justify-content:flex-end;display:flex}@media (width<=600px){.group{padding:var(--s3)}.prop[data-control=select],.prop[data-control=code],.prop[data-control=textarea],.prop[data-control=text]:not([data-size=num]),.prop[data-control=secret]{row-gap:var(--s1);grid-template-areas:"name name flag menu""value value value value"}.prop[data-hint]{grid-template-areas:"name name flag menu""value value value value""hint hint hint hint"}.prop[data-control=text]:not([data-size=num]) .prop-value>input,.prop[data-control=secret] .prop-value>.secret{width:100%}table.dt-cards,table.dt-cards :is(tbody,tr,td){display:block}table.dt-cards thead{display:none}table.dt-cards tbody tr{margin-bottom:var(--s2);padding:var(--s2) var(--s3);border:1px solid var(--line);border-radius:var(--r-pane);position:relative}table.dt-cards tbody tr:last-of-type{margin-bottom:0}table.dt-cards td{font-size:var(--t-label);overflow-wrap:anywhere;border:0;padding:0}table.dt-cards td.dt-title{align-items:center;column-gap:var(--s2);min-height:var(--ctl);padding-right:calc(var(--ctl) + var(--s1));font-size:var(--t-body);flex-wrap:wrap;font-weight:600;display:flex}table.dt-cards td.dt-menu{top:var(--s1);right:var(--s1);position:absolute}table.dt-cards td:not(.dt-title,.dt-menu)[data-label]:before{content:attr(data-label) " ";color:var(--dim)}}@media (pointer:coarse),(width<=600px){input[type=checkbox]{width:22px;height:22px}}.modal-backdrop{z-index:30;padding:var(--s4);background:var(--scrim);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{width:min(100%,420px);max-height:calc(100vh - 2 * var(--s4));background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pane);box-shadow:0 16px 48px var(--scrim);flex-direction:column;display:flex}.modal.wide{width:min(100%,960px);height:min(88vh,760px)}.modal-head{align-items:center;gap:var(--s2);padding:var(--s3) var(--s4);border-bottom:1px solid var(--line);display:flex}.modal-head h2{min-width:0;font-size:var(--t-heading);text-overflow:ellipsis;white-space:nowrap;flex:auto;margin:0;font-weight:600;overflow:hidden}.modal-head .menu{flex:none}.modal-body{padding:var(--s4);min-height:0;overflow-y:auto}.modal-foot{padding:var(--s3) var(--s4);border-top:1px solid var(--line);flex:none}.modal.edit{width:min(100%,560px)}.modal.edit.wide{width:min(100%,880px);height:auto}.modal.edit .modal-body{flex:auto}.edit-status{margin:0 0 var(--s3);font-size:var(--t-label);color:var(--dim);overflow-wrap:anywhere}.edit-status.bad{color:var(--rust)}.edit-section+.edit-section{margin-top:var(--s4);padding-top:var(--s3);border-top:1px solid var(--line)}.edit-section-title{margin:0 0 var(--s2);font-size:var(--t-label);color:var(--dim);font-weight:600}.edit-choices{gap:var(--s2);flex-wrap:wrap;display:flex}.edit-choices button[aria-pressed=true]{background:var(--amber);color:var(--on-amber);border-color:#0000}.edit-actions{align-items:center;gap:var(--s2);flex-wrap:wrap;display:flex}.edit-action{align-items:center;gap:var(--s2);display:inline-flex}.edit-outcome-live:empty{display:none}.edit-outcome{min-height:var(--ctl);color:var(--amber);text-underline-offset:2px;background:0 0;border:0;padding:0;font-weight:500;text-decoration:underline}.edit-outcome.bad{color:var(--rust)}.edit-done{margin-left:auto}.edit-actions .ghost.destructive{color:var(--rust)}@media (width<=600px){.modal-backdrop:has(>.modal.edit){padding:0}.modal.edit,.modal.edit.wide{border:0;border-radius:0;width:100%;height:100dvh;max-height:none}.edit-actions>*{flex:auto;justify-content:center}}.undo-toast{left:50%;bottom:var(--s4);z-index:40;align-items:center;gap:var(--s2);max-width:calc(100vw - 2 * var(--s3));padding:var(--s2) var(--s3);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pane);box-shadow:0 8px 24px var(--scrim);font-size:var(--t-label);display:flex;position:fixed;transform:translate(-50%)}.undo-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.undo-btn{flex:none}.dt-sort,.dt-head{align-items:center;gap:var(--s1);min-height:0;font:inherit;color:inherit;text-align:inherit;cursor:pointer;background:0 0;border:0;padding:0;display:inline-flex}.dt-glyph{color:var(--faint);opacity:0;flex:none;transition:opacity .15s}.dt-sort:hover .dt-glyph,.dt-sort:focus-visible .dt-glyph,.dt-glyph.on{opacity:1}.dt-glyph.on{color:var(--amber)}.dt-head{min-height:0;font:inherit;color:var(--amber);background:0 0;border:0;padding:0}.dt-pager{justify-content:flex-end;align-items:center;gap:var(--s2);margin-top:var(--s2);display:flex}@media (pointer:coarse){.dt-glyph{opacity:1}.dt-sort,.dt-head{min-height:var(--tap)}}.fbar{margin-bottom:var(--s3);position:relative}.fbar-row{align-items:center;gap:var(--s2);display:flex}.fbar-search{min-width:0;color:var(--faint);flex:auto;display:flex;position:relative}.fbar-search svg{left:var(--s3);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.fbar-search:focus-within{color:var(--amber)}.fbar-search input{width:100%;padding-left:calc(var(--s3) + 15px + var(--s2));flex:auto}.fbar-search input:focus{border-color:var(--amber);outline:none}.fbar-row>.note{margin:0}.fbar-btn{width:var(--ctl);background:var(--surface2);border-color:var(--line);color:var(--dim);flex:none;justify-content:center;margin-left:auto;padding:0;position:relative}.fbar-btn:hover,.fbar-btn[aria-expanded=true]{color:var(--ink);border-color:var(--faint)}.fbar-btn.on{color:var(--amber);border-color:var(--amber);background:color-mix(in srgb, var(--amber) 10%, var(--surface))}.fbar-badge{background:var(--amber);min-width:17px;height:17px;color:var(--on-amber);font-size:var(--t-caption);font-variant-numeric:tabular-nums;box-shadow:0 0 0 2px var(--surface);border-radius:999px;place-items:center;padding:0 4px;font-weight:700;line-height:1;display:grid;position:absolute;top:-6px;right:-6px}.fbar-chips{align-items:center;gap:var(--s1) var(--s2);margin-top:var(--s2);flex-wrap:wrap;display:flex}.fbar-chip{min-height:26px;color:var(--ink);font-size:var(--t-note);background:0 0;border:0;padding:0;font-weight:600}.fbar-pip{min-height:26px;padding:0 var(--s2) 0 var(--s3);background:color-mix(in srgb, var(--amber) 14%, var(--surface));border:1px solid #0000;border-radius:999px;align-items:center;gap:6px;display:inline-flex}.fbar-chip svg{color:var(--dim)}.fbar-chip:hover svg,.fbar-chip:focus-visible svg{color:var(--rust)}.fbar-chip:focus-visible{outline:none}.fbar-chip:focus-visible .fbar-pip{outline:2px solid var(--amber);outline-offset:2px}.fbar-chip-k{color:var(--dim);font-weight:500}.fbar-chip.scope{align-items:center;display:inline-flex}.fbar-chip.scope .fbar-pip{padding-right:var(--s3);border-color:var(--line);background:0 0}button.fbar-chip.scope:hover .fbar-pip{border-color:var(--faint)}.fbar-clear{min-height:26px;padding:0 var(--s1);color:var(--amber);font-size:var(--t-note);background:0 0;border:0;font-weight:500}.fbar-count{color:var(--dim);font-size:var(--t-note);font-variant-numeric:tabular-nums;margin-left:auto}.fbar-scrim{display:none}.fbar-panel{top:calc(var(--ctl) + var(--s2));z-index:20;gap:var(--s4);width:min(340px,100%);padding:var(--s4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pane);box-shadow:0 12px 32px var(--scrim);transform-origin:100% 0;animation:.14s ease-out fbar-in;display:grid;position:absolute;right:0}@keyframes fbar-in{0%{opacity:0;transform:translateY(-4px)scale(.98)}}.fbar-panel-head{justify-content:space-between;align-items:center;min-height:26px;display:flex}.fbar-panel-title{font-size:var(--t-heading);font-weight:600}.fbar-set{border:0;min-width:0;margin:0;padding:0}.fbar-set legend{margin-bottom:var(--s2);font-size:var(--t-note);color:var(--dim);padding:0;font-weight:600}.fbar-pills{flex-wrap:wrap;gap:6px;display:flex}.fbar-pill{cursor:pointer;display:inline-flex;position:relative}.fbar-pill input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.fbar-pill span{min-height:30px;padding:0 var(--s3);border:1px solid var(--line);font-size:var(--t-label);color:var(--ink);border-radius:999px;align-items:center;transition:background-color .12s,border-color .12s,color .12s;display:inline-flex}.fbar-pill:hover span{border-color:var(--faint)}.fbar-pill input:checked+span{background:var(--amber);border-color:var(--amber);color:var(--on-amber);font-weight:600}.fbar-pill input:focus-visible+span{outline:2px solid var(--amber);outline-offset:2px}.fbar-done{display:none}@media (pointer:coarse),(width<=600px){.fbar-chip,.fbar-clear{min-height:var(--tap)}.fbar-chips{row-gap:0;margin-top:0}.fbar-pip{min-height:32px}.fbar-pill span{min-height:var(--tap);padding:0 var(--s4)}}@media (width<=600px){.fbar-scrim{z-index:30;background:var(--scrim);animation:.16s ease-out fbar-fade;display:block;position:fixed;inset:0}.fbar-panel{z-index:31;width:auto;max-height:85vh;padding:var(--s3) var(--s4) calc(var(--s4) + env(safe-area-inset-bottom));border-width:1px 0 0;border-radius:16px 16px 0 0;animation:.2s cubic-bezier(.2,.8,.2,1) fbar-up;position:fixed;inset:auto 0 0;overflow:auto}.fbar-panel:before{content:"";width:36px;height:4px;margin-bottom:calc(var(--s2) - var(--s4));background:var(--line);border-radius:999px;justify-self:center}.fbar-done{justify-content:center;width:100%;display:flex}}@keyframes fbar-up{0%{transform:translateY(100%)}}@keyframes fbar-fade{0%{opacity:0}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ground:var(--lightningcss-light,#f4f3ef)var(--lightningcss-dark,#17181c);--surface:var(--lightningcss-light,#fff)var(--lightningcss-dark,#1e2025);--surface2:var(--lightningcss-light,#eceae4)var(--lightningcss-dark,#262931);--line:var(--lightningcss-light,#d6d3cb)var(--lightningcss-dark,#32363f);--ink:var(--lightningcss-light,#1d1f24)var(--lightningcss-dark,#e6e8ec);--dim:var(--lightningcss-light,#5b606b)var(--lightningcss-dark,#9aa0ab);--faint:var(--lightningcss-light,#80858f)var(--lightningcss-dark,#6b7079);--amber:var(--lightningcss-light,#a8651c)var(--lightningcss-dark,#cf9349);--on-amber:var(--lightningcss-light,#fff)var(--lightningcss-dark,#20160a);--sage:var(--lightningcss-light,#3f7a45)var(--lightningcss-dark,#7fa87f);--rust:var(--lightningcss-light,#a4472b)var(--lightningcss-dark,#b5654a);--dot:var(--lightningcss-light,#dcd9d1)var(--lightningcss-dark,#2a2d34);--scrim:var(--lightningcss-light,#1e202473)var(--lightningcss-dark,#17181cbf);--sans:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--t-caption:11px;--t-note:12px;--t-label:13px;--t-body:14px;--t-heading:15px;--t-title:16px;--lh:1.5;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--ctl:32px;--tap:44px;--r-ctl:7px;--r-pane:10px}@media (pointer:coarse),(width<=600px){:root{--ctl:var(--tap)}}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}body{background:var(--ground);color:var(--ink);font:var(--t-body) / var(--lh) var(--sans);margin:0}:focus-visible{outline:2px solid var(--amber);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
@@ -5,9 +5,9 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1">
6
6
  <meta name="color-scheme" content="dark light">
7
7
  <title>Components</title>
8
- <script type="module" crossorigin src="/assets/gallery-DipkRvqJ.js"></script>
9
- <link rel="modulepreload" crossorigin href="/assets/tokens-B9intIuT.js">
10
- <link rel="stylesheet" crossorigin href="/assets/tokens-s6I-RMVq.css">
8
+ <script type="module" crossorigin src="/assets/gallery-DsetJSXv.js"></script>
9
+ <link rel="modulepreload" crossorigin href="/assets/tokens-ClRQ7Mui.js">
10
+ <link rel="stylesheet" crossorigin href="/assets/tokens-D3C8O2Ib.css">
11
11
  <link rel="stylesheet" crossorigin href="/assets/gallery-o7c4lfpn.css">
12
12
  </head>
13
13
  <body>
@@ -5,10 +5,10 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1">
6
6
  <meta name="color-scheme" content="dark light">
7
7
  <title>Evals Lab</title>
8
- <script type="module" crossorigin src="/assets/main-HJGRUBM-.js"></script>
9
- <link rel="modulepreload" crossorigin href="/assets/tokens-B9intIuT.js">
10
- <link rel="stylesheet" crossorigin href="/assets/tokens-s6I-RMVq.css">
11
- <link rel="stylesheet" crossorigin href="/assets/main-DjQQums6.css">
8
+ <script type="module" crossorigin src="/assets/main-ERoD2Kll.js"></script>
9
+ <link rel="modulepreload" crossorigin href="/assets/tokens-ClRQ7Mui.js">
10
+ <link rel="stylesheet" crossorigin href="/assets/tokens-D3C8O2Ib.css">
11
+ <link rel="stylesheet" crossorigin href="/assets/main-B-VtDGxC.css">
12
12
  </head>
13
13
  <body>
14
14
  <div id="root"></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "evals-lab",
3
- "version": "0.1.3",
3
+ "version": "0.2.0",
4
4
  "description": "A browser bench for grading what a model answers: two wordings side by side over a set of files, scored against answers fixed in advance.",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Grainbox Limited",
@@ -1,3 +0,0 @@
1
- import{R as e,T as t,X as n,Y as r,_ as i,c as a,d as o,f as s,g as c,h as l,m as u,n as d,r as f,v as p}from"./tokens-B9intIuT.js";var m=n(),h=r(),g=[{id:`text`,label:`Plain text`,settings:[]},{id:`list`,label:`List`,settings:[{key:`parse`,label:`Parse as`,type:`select`,choices:[{value:`csv`,label:`CSV`},{value:`lines`,label:`One a line`},{value:`json`,label:`JSON array`}]},{key:`preamble`,label:`Ignore preamble`,type:`checkbox`}]}],_=[{id:`case`,label:`Case`,accepts:[`list`],options:[{key:`mode`,label:`Mode`,type:`select`,choices:[{value:`LOWER`,label:`lower`},{value:`SENTENCE`,label:`Sentence`},{value:`TITLE`,label:`Title`},{value:`UPPER`,label:`UPPER`},{value:`NONE`,label:`As replied`}]}],defaults:()=>({type:`case`,mode:`LOWER`})},{id:`join`,label:`Join`,accepts:[`list`],options:[{key:`with`,label:`Separator`,type:`text`}],defaults:()=>({type:`join`,with:`, `})}],v=[{name:`language`,type:`value`,value:`English UK`},{name:`geo-location`,type:`value`,value:`Hamilton, Waikato, New Zealand`},{name:`geo`,type:`block`,enabled:!1}],y=[{path:`group/open`,title:`Group, open`},{path:`group/closed`,title:`Group, closed with a note`},{path:`group/no-menu`,title:`Group without actions`},{path:`group/sub`,title:`Sub-group, level 3`},{path:`group/depth`,title:`Group, three levels deep`},{path:`group/renaming`,title:`Group, renaming`},{path:`menu/disabled`,title:`Menu with a disabled item`},{path:`repeater/empty`,title:`Repeater, empty`},{path:`repeater/min`,title:`Repeater at min 1`},{path:`repeater/between`,title:`Repeater, two of four`},{path:`repeater/max`,title:`Repeater at max`},{path:`props/controls`,title:`Property table, every control`},{path:`props/required`,title:`Property table, required only`},{path:`props/long`,title:`Property table, long values`},{path:`props/widths`,title:`Property table, a width per value`},{path:`props/secret`,title:`Property table, a key held and not held`},{path:`props/code`,title:`Property table, an endpoint and a payload`},{path:`table/sortable`,title:`Table, sortable headers and a row menu`},{path:`table/paged`,title:`Table, paged ten at a time`},{path:`table/filter`,title:`Table with a filter bar`},{path:`table/filter-on`,title:`Table, filtered, with a scope`},{path:`edit/form`,title:`Edit modal, a profile`},{path:`edit/plain`,title:`Edit modal, one section and no menu`},{path:`edit/long`,title:`Edit modal, a form that scrolls`},{path:`edit/status`,title:`Edit modal, a status that is a refusal`},{path:`view/tokens`,title:`Token mappings`},{path:`view/output`,title:`Output with Case`},{path:`view/output-text`,title:`Output, plain text`},{path:`view/output-two`,title:`Output with two modifiers`},{path:`view/output-twice`,title:`Output with the same modifier twice`}],b=e(),x=()=>{},S=(...e)=>e.map(e=>({label:e,icon:e===`Remove`?p.remove:e===`Clone`?p.clone:p.rename,onSelect:x,destructive:e===`Remove`}));function C({start:e,min:t,max:n}){let[r,i]=(0,m.useState)(e);return(0,b.jsx)(l,{noun:`scenario`,items:r,...t===void 0?{}:{min:t},...n===void 0?{}:{max:n},onAdd:()=>i([...r,`Scenario ${r.length+1}`]),onRemove:e=>i(r.filter((t,n)=>n!==e)),onClone:e=>i([...r.slice(0,e+1),`${r[e]} copy`,...r.slice(e+1)]),onRename:x,empty:`No scenarios yet.`,renderItem:(e,t,n)=>(0,b.jsx)(c,{id:`scenario-${t}`,title:e,level:3,actions:n,children:(0,b.jsx)(`p`,{className:`note`,children:`A Setup profile and a prompt for each job.`})},`${e}-${t}`)})}function w(){let[e,t]=(0,m.useState)(v),n=(n,r)=>t(e.map(e=>e.name===n?{...e,...r}:e));return(0,b.jsx)(d,{mappings:e,onValue:(e,t)=>n(e,{value:t}),onEnabled:(e,t)=>n(e,{enabled:t}),onEdit:x,onRemove:n=>t(e.filter(e=>e.name!==n)),onAdd:()=>t([...e,{name:`token${e.length+1}`,type:`value`,value:``}])})}function T({start:e}){let[t,n]=(0,m.useState)(e);return(0,b.jsx)(f,{id:`output`,out:t,outputKinds:g,modifiers:_,onKind:e=>n({kind:e,modifiers:t.modifiers.filter(t=>_.find(e=>e.id===t.type)?.accepts.includes(e))}),onModifier:(e,r)=>n({...t,modifiers:t.modifiers.map((t,n)=>n===e?r:t)}),onAddModifier:e=>n({...t,modifiers:[...t.modifiers,e]}),onRemoveModifier:e=>n({...t,modifiers:t.modifiers.filter((t,n)=>n!==e)})})}function E(){let[e,t]=(0,m.useState)(`Job 1`),[n,r]=(0,m.useState)(!0);return(0,b.jsx)(c,{id:`renaming`,title:e,actions:[{label:`Rename`,icon:p.rename,onSelect:()=>r(!0)}],...n?{rename:{value:e,onCommit:n=>{t(n||e),r(!1)},onCancel:()=>r(!1)}}:{},children:(0,b.jsx)(`p`,{className:`note`,children:`Enter or leaving keeps the name; Escape cancels.`})})}function D({sections:e,menu:n,status:r,statusBad:i,outcome:a}){return(0,b.jsx)(o,{title:`Lab Ollama`,...r?{status:r}:{},...i?{statusBad:!0}:{},...n?{menu:n}:{},sections:e,actions:[{label:`Test connection`,icon:t,onSelect:x,outcome:a?{label:a,onOpen:x}:void 0}],onClose:x})}var O=()=>[{key:`name`,label:`Name`,required:!0,control:{type:`text`,value:`Lab Ollama`,onChange:x}},{key:`type`,label:`Type`,required:!0,control:{type:`select`,value:`ollama`,onChange:x,options:[{value:`ollama`,label:`Ollama (Local)`},{value:`anthropic`,label:`Anthropic`}]}},{key:`url`,label:`Address`,control:{type:`text`,value:``,placeholder:`the lab's Ollama`,onChange:x}},{key:`key`,label:`Key`,control:{type:`secret`,value:``,onChange:x}},{key:`model`,label:`Model`,control:{type:`text`,value:`minicpm-v4.6:latest`,onChange:x}}],k=()=>[{key:`seed`,label:`Seed`,control:{type:`text`,value:``,placeholder:`1234`,marker:`default`,onChange:x}},{key:`nPredict`,label:`Reply tokens`,control:{type:`text`,value:``,size:`num`,marker:`server`,onChange:x}},{key:`temperature`,label:`Temperature`,control:{type:`text`,value:`0.3`,onChange:x}},{key:`repeatPenalty`,label:`Repeat penalty`,control:{type:`text`,value:``,size:`num`,marker:`server`,onChange:x}}],A=()=>[{key:`endpoint`,label:`Endpoint`,required:!0,control:{type:`code`,text:`http://127.0.0.1:11434/api/chat`}},{key:`prompt`,label:`Prompt`,required:!0,control:{type:`static`,text:`(prompt)`}},{key:`model`,label:`model`,control:{type:`code`,text:`minicpm-v4.6:latest`}},{key:`options`,label:`options`,control:{type:`code`,text:`{"seed":1234,"temperature":0.3}`}}],j={key:`kind`,label:`Kind`,required:!0,control:{type:`select`,value:`list`,onChange:x,options:g.map(e=>({value:e.id,label:e.label}))}},M={"group/open":()=>(0,b.jsx)(c,{id:`g`,title:`Tests`,actions:S(`Change`,`Remove`),children:(0,b.jsx)(`p`,{className:`note`,children:`The graded set.`})}),"group/closed":()=>(0,b.jsx)(c,{id:`g`,title:`Content`,open:!1,note:`Sample library, 63 files`,actions:S(`Change`,`Remove`)}),"group/no-menu":()=>(0,b.jsx)(c,{id:`g`,title:`Mapping`,children:(0,b.jsx)(`p`,{className:`note`,children:`Nothing to do to it.`})}),"group/sub":()=>(0,b.jsx)(c,{id:`g`,title:`Job 1`,actions:S(`Rename`,`Remove`),children:(0,b.jsx)(c,{id:`g-sub`,title:`Scenarios`,level:3,actions:S(`Clear`),children:(0,b.jsx)(`p`,{className:`note`,children:`Inside a pane.`})})}),"group/depth":()=>(0,b.jsxs)(c,{id:`g`,title:`Job 1`,actions:S(`Rename`,`Remove`),children:[(0,b.jsxs)(c,{id:`g-scenarios`,title:`Scenarios`,level:3,children:[(0,b.jsx)(c,{id:`g-plain`,title:`Plain`,level:3,actions:S(`Rename`,`Remove`),children:(0,b.jsx)(`p`,{className:`note`,children:`A pane, a section of it, and a thing with a name inside that section.`})}),(0,b.jsx)(c,{id:`g-strict`,title:`Strict`,level:3,actions:S(`Rename`,`Remove`)})]}),(0,b.jsx)(c,{id:`g-output`,title:`Output`,level:3,children:(0,b.jsx)(`p`,{className:`note`,children:`The next section of the same pane.`})})]}),"group/renaming":()=>(0,b.jsx)(E,{}),"menu/disabled":()=>(0,b.jsx)(c,{id:`g`,title:`Scenario 4`,actions:[{label:`Rename`,icon:p.rename,onSelect:x},{label:`Clone`,icon:p.clone,onSelect:x,disabled:!0},{label:`Remove`,icon:p.remove,onSelect:x,destructive:!0}]}),"repeater/empty":()=>(0,b.jsx)(C,{start:[]}),"repeater/min":()=>(0,b.jsx)(C,{start:[`Scenario 1`],min:1}),"repeater/between":()=>(0,b.jsx)(C,{start:[`Scenario 1`,`Scenario 2`],min:1,max:4}),"repeater/max":()=>(0,b.jsx)(C,{start:[`Scenario 1`,`Scenario 2`,`Scenario 3`,`Scenario 4`],min:1,max:4}),"props/controls":()=>(0,b.jsx)(s,{label:`Controls`,onRename:x,onRemove:x,onAdd:x,addLabel:`Add row`,rows:[j,{key:`language`,label:`{language}`,code:!0,control:{type:`text`,value:`English UK`,onChange:x}},{key:`geo`,label:`{geo}…{/geo}`,code:!0,control:{type:`static`,text:`Block`},enabled:{checked:!0,onChange:x}},{key:`image`,label:`Image`,control:{type:`checkbox`,checked:!0,label:`Send`,onChange:x}}]}),"props/required":()=>(0,b.jsx)(s,{label:`Output`,onRemove:x,rows:[j]}),"props/long":()=>(0,b.jsx)(s,{label:`Long`,onRemove:x,rows:[{key:`geo-location`,label:`{geo-location}`,code:!0,control:{type:`text`,value:`Hamilton, Waikato, New Zealand, Southern Hemisphere, Earth`,onChange:x}},{key:`averylongtokennamethatdoesnotbreak`,label:`{averylongtokennamethatdoesnotbreak}`,code:!0,control:{type:`text`,value:``,onChange:x}}]}),"props/widths":()=>(0,b.jsx)(s,{label:`Widths`,rows:[{key:`type`,label:`Type`,required:!0,control:{type:`select`,value:`ollama`,onChange:x,options:[{value:`ollama`,label:`Ollama (Local)`},{value:`anthropic`,label:`Anthropic`}]}},{key:`url`,label:`Address`,control:{type:`text`,value:``,placeholder:`the lab's Ollama`,onChange:x}},{key:`model`,label:`Model`,control:{type:`text`,value:`minicpm-v4.6:latest`,onChange:x}},{key:`seed`,label:`Seed`,control:{type:`text`,value:``,placeholder:`1234`,marker:`default`,onChange:x}},{key:`nPredict`,label:`Reply tokens`,control:{type:`text`,value:``,size:`num`,marker:`server`,onChange:x}},{key:`temperature`,label:`Temperature`,control:{type:`text`,value:`0.2`,onChange:x}},{key:`grammar`,label:`Grammar`,control:{type:`textarea`,value:`root ::= item (", " item)*
2
- item ::= [a-z ]+`,onChange:x}}]}),"props/secret":()=>(0,b.jsx)(s,{label:`Keys`,rows:[{key:`held`,label:`Key`,control:{type:`secret`,value:`sk-not-a-real-key-0000`,onChange:x}},{key:`empty`,label:`Key`,control:{type:`secret`,value:``,onChange:x}}]}),"props/code":()=>(0,b.jsx)(s,{label:`Debug`,rows:[{key:`endpoint`,label:`Endpoint`,required:!0,control:{type:`code`,text:`https://api.anthropic.com/v1/messages`}},{key:`prompt`,label:`Prompt`,required:!0,control:{type:`static`,text:`(prompt)`}},{key:`model`,label:`model`,control:{type:`code`,text:`claude-sonnet-4-5-20250929`}},{key:`options`,label:`options`,control:{type:`code`,text:`{"seed":1234,"temperature":0}`}},{key:`stream`,label:`stream`,control:{type:`code`,text:`false`}}]}),"table/sortable":()=>(0,b.jsx)(I,{count:4}),"table/paged":()=>(0,b.jsx)(I,{count:35,pageSize:10}),"table/filter":()=>(0,b.jsx)(F,{}),"table/filter-on":()=>(0,b.jsx)(F,{search:`IMG_40`,size:`large`}),"edit/form":()=>(0,b.jsx)(D,{outcome:`Connected`,menu:[{label:`Restore…`,icon:p.restore,onSelect:x},{label:`Apply preset: repeat 1.3`,icon:p.preset,onSelect:x}],sections:[{key:`identity`,rows:O()},{key:`settings`,title:`Settings`,rows:k()},{key:`debug`,title:`Debug`,rows:A(),folded:!0}]}),"edit/plain":()=>(0,b.jsx)(o,{title:`A mapping`,sections:[{key:`one`,rows:[j,{key:`with`,label:`Separator`,control:{type:`text`,value:`, `,onChange:x}}]}],onClose:x}),"edit/long":()=>(0,b.jsx)(D,{menu:[{label:`Restore…`,icon:p.restore,onSelect:x,disabled:!0}],sections:[{key:`identity`,rows:O()},{key:`settings`,title:`Settings`,rows:[...k(),{key:`grammar`,label:`Grammar`,control:{type:`textarea`,value:`root ::= item (", " item)*
3
- item ::= [a-z ]+`,onChange:x}},{key:`imagePosition`,label:`Image position`,control:{type:`select`,value:`after`,onChange:x,options:[{value:`before`,label:`before the prompt`},{value:`after`,label:`after the prompt`}]}},{key:`cachePrompt`,label:`Cache prompt`,control:{type:`select`,value:`off`,onChange:x,options:[{value:`on`,label:`on`},{value:`off`,label:`off`}]}}]},{key:`debug`,title:`Debug`,rows:A(),folded:!0}]}),"edit/status":()=>(0,b.jsx)(D,{status:`the relay could not reach http://127.0.0.1:11434`,statusBad:!0,sections:[{key:`identity`,rows:O()}]}),"view/tokens":()=>(0,b.jsx)(c,{id:`g`,title:`Token mappings`,level:3,children:(0,b.jsx)(w,{})}),"view/output":()=>(0,b.jsx)(T,{start:{kind:`list`,parse:`csv`,modifiers:[{type:`case`,mode:`LOWER`}]}}),"view/output-text":()=>(0,b.jsx)(T,{start:{kind:`text`,modifiers:[]}}),"view/output-two":()=>(0,b.jsx)(T,{start:{kind:`list`,parse:`csv`,modifiers:[{type:`case`,mode:`TITLE`},{type:`join`,with:` | `}]}}),"view/output-twice":()=>(0,b.jsx)(T,{start:{kind:`list`,parse:`csv`,modifiers:[{type:`case`,mode:`TITLE`},{type:`case`,mode:`LOWER`}]}})},N=y.map(e=>({...e,render:M[e.path]})),P=e=>Array.from({length:e},(e,t)=>({name:`IMG_${String(4e3+t*7919%97).padStart(4,`0`)}.jpg`,kb:t*37%900+40}));function F({search:e=``,size:t=`all`}){let[n,r]=(0,m.useState)(e),[i,o]=(0,m.useState)(t),[s,l]=(0,m.useState)(`shoot`),d=P(12),f=d.filter(e=>e.name.toLowerCase().includes(n.trim().toLowerCase())&&(i===`all`||i===`large`==e.kb>=400));return(0,b.jsxs)(c,{id:`files`,title:`Files`,children:[(0,b.jsx)(u,{noun:`files`,search:{label:`Name`,placeholder:`Search names`,value:n,onChange:r},count:{shown:f.length,total:d.length},filters:[{key:`source`,label:`Source`,value:s,neutral:null,onChange:l,options:[{value:`shoot`,label:`Tuesday shoot`},{value:`samples`,label:`Sample library`}]},{key:`size`,label:`Size`,value:i,onChange:o,options:[{value:`all`,label:`All`},{value:`small`,label:`Small`},{value:`large`,label:`Large`}]}]}),f.length?(0,b.jsx)(a,{label:`Files`,rows:f,rowKey:e=>e.name,columns:[{key:`name`,header:`Name`,cell:e=>e.name},{key:`size`,header:`Size`,sort:e=>e.kb,cell:e=>`${e.kb} KB`}]}):(0,b.jsx)(`p`,{className:`note`,children:`No files match these filters.`})]})}function I({count:e,pageSize:t}){let n=P(e);return(0,b.jsx)(c,{id:`files`,title:`Files`,children:(0,b.jsx)(a,{label:`Files`,rows:n,rowKey:e=>e.name,pageSize:t??null,columns:[{key:`name`,header:`Name`,cell:e=>e.name},{key:`size`,header:`Size`,sort:e=>e.kb,cell:e=>`${e.kb} KB`},{key:`menu`,header:``,sort:null,cell:e=>(0,b.jsx)(i,{label:`${e.name} actions`,actions:[{label:`Rename`,icon:p.rename,onSelect:x},{label:`Remove`,icon:p.remove,destructive:!0,onSelect:x}]})}]})})}var L=()=>decodeURIComponent(location.hash.replace(/^#\/?/,``));function R(){let[e,t]=(0,m.useState)(L);(0,m.useEffect)(()=>{let e=()=>t(L());return window.addEventListener(`hashchange`,e),()=>window.removeEventListener(`hashchange`,e)},[]);let n=N.find(t=>t.path===e);return n?(0,b.jsxs)(`main`,{className:`gallery-one`,"data-route":n.path,children:[(0,b.jsxs)(`nav`,{className:`gallery-nav`,children:[(0,b.jsx)(`a`,{href:`#/`,children:`All`}),(0,b.jsx)(`span`,{children:n.title})]}),n.render()]}):(0,b.jsxs)(`main`,{className:`gallery-index`,"data-route":``,children:[(0,b.jsx)(`h1`,{children:`Components`}),(0,b.jsx)(`ul`,{children:N.map(e=>(0,b.jsxs)(`li`,{children:[(0,b.jsx)(`a`,{href:`#/${e.path}`,children:e.title}),` `,(0,b.jsx)(`code`,{children:e.path})]},e.path))})]})}(0,h.createRoot)(document.getElementById(`root`)).render((0,b.jsx)(m.StrictMode,{children:(0,b.jsx)(R,{})}));