evals-lab 0.10.0 → 0.11.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
+ code{font:inherit}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(--field);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}button[aria-busy=true]:disabled{opacity:1;cursor:progress}.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)}.row-act{white-space:nowrap}.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;border-radius: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);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:var(--e-pop);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)}.pe-insert .menu-pop{min-width:260px;left:auto;right:0}.pe-field{height:auto;padding:var(--s1) var(--s2);color:var(--ink);white-space:normal;overflow-wrap:anywhere;flex-direction:column;justify-content:center;align-items:stretch;gap:0;font-weight:400}.pe-field small{color:var(--dim);font-size:var(--t-note)}.multi{max-width:100%;display:inline-flex;position:relative}.multi-btn{justify-content:space-between;align-items:center;gap:var(--s2);height:var(--ctl);min-height:var(--ctl);max-width:100%;padding:0 var(--s2);font-size:inherit;cursor:pointer;background:var(--surface2);color:var(--ink);border-color:var(--line);font-weight:400;display:inline-flex}.multi-btn:hover{background:var(--surface2);border-color:var(--dim)}.multi-btn>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.multi-btn .multi-none{color:var(--dim)}.multi-btn>svg{color:var(--dim);flex:none}.multi-opt{align-items:center;gap:var(--s2);min-height:var(--ctl);padding:0 var(--s2);border-radius:var(--r-ctl);cursor:pointer;white-space:nowrap;display:flex}.multi-opt:hover,.multi-opt:focus-within{background:var(--surface2)}.chiplist{align-items:center;gap:var(--s1) var(--s2);min-height:var(--field);padding:var(--s1) var(--s2);background:var(--surface2);max-width:100%;color:var(--ink);border:1px solid var(--line);border-radius:var(--r-ctl);cursor:text;flex-wrap:wrap;display:flex}.chiplist:focus-within{outline:2px solid var(--amber);outline-offset:2px}.chiplist-chip{align-items:center;gap:var(--s1);padding-left:var(--s2);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pill);max-width:100%;font-size:var(--t-label);display:inline-flex}.chiplist-word{text-overflow:ellipsis;white-space:nowrap;max-width:22ch;overflow:hidden}.chiplist-x{min-height:var(--ctl);min-width:var(--s5);padding:0 var(--s1);border-radius:var(--r-pill);color:var(--dim);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;display:inline-flex}.chiplist-x:hover,.chiplist-x:focus-visible{color:var(--rust)}.chiplist-input{min-width:6ch;min-height:var(--field);color:var(--ink);font:inherit;background:0 0;border:0;flex:6ch;padding:0}.chiplist-input:focus{outline:none}.chiplist-input::placeholder{color:var(--dim)}.ws-trigger{align-items:center;gap:var(--s2);min-height:var(--ctl);padding:0 var(--s2) 0 var(--s1);background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--r-ctl);font-size:var(--t-label);cursor:pointer;font-weight:500;display:inline-flex}.ws-trigger:hover,.ws-trigger:focus-visible{background:var(--surface2)}.ws-trigger>svg{color:var(--dim);flex:none}.ws-name{text-overflow:ellipsis;white-space:nowrap;max-width:14ch;overflow:hidden}.ws-tile{background:var(--surface2);width:24px;height:24px;color:var(--amber);font-size:var(--t-note);border-radius:6px;flex:none;justify-content:center;align-items:center;font-weight:600;line-height:1;display:inline-flex}.ws-tile.small{width:20px;height:20px}.ws-sec{flex-direction:column;gap:2px;display:flex}.ws-sec+.ws-sec{margin-top:var(--s1);padding-top:var(--s1);border-top:1px solid var(--line)}.ws-sec-head{padding:var(--s1) var(--s2) 2px;font-size:var(--t-note);color:var(--dim);margin:0}.ws-opt{justify-content:flex-start}.ws-opt-name{text-align:left;flex:auto}.ws-check{color:var(--amber);flex:none}@media (width<=600px){.ws-trigger .ws-name{display:none}.ws-menu .ws-pop{left:calc(100% - 100vw + 2 * var(--s2));max-width:none;right:0}}.share-trigger{align-items:center;gap:var(--s1);min-height:var(--ctl);padding:0 var(--s2);color:var(--ink);font-size:var(--t-label);font-weight:500;display:inline-flex}.share-trigger>svg{color:var(--dim);flex:none}.share-summary{text-overflow:ellipsis;white-space:nowrap;max-width:16ch;overflow:hidden}.share-sec{margin:var(--s1) 0;padding:var(--s1) 0;border-block:1px solid var(--line);flex-direction:column;gap:2px;display:flex}.share-opt{justify-content:flex-start}.share-opt[disabled]{color:var(--dim);opacity:1}.share-check{color:var(--amber);flex:none}.repeater,.repeater-items{grid-template-columns:minmax(0,1fr)}.repeater-items{gap:var(--s2);display:grid}.repeater{display:grid}.repeater-items>.group.sub,.repeater-items>.group.sub[data-depth]{border-top:0;margin-top:0;padding-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{width:fit-content;margin:var(--s2) 0 0 auto;justify-self:end;display:flex}.props>.add-btn{grid-column:1/-1}.add-row{justify-content:flex-end;gap:var(--s2);margin-top:var(--s2);flex-wrap:wrap;display:flex}.add-row>.add-btn{margin:0}.props,.prop{--prop-cols:minmax(88px, 35%) minmax(0, 1fr) auto var(--ctl)}.props{grid-template-columns:var(--prop-cols);row-gap:var(--s2);column-gap:var(--s2);padding-top:calc(var(--s1) * 1.5);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);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[data-hint]{grid-template-areas:"name value flag menu"".hint hint hint";row-gap:2px}.prop[data-hint][data-control=static]:has(>.prop-value>span:empty:only-child){grid-template-areas:"name hint flag menu"}.prop[data-hint][data-control=static]>.prop-value:has(>span:empty:only-child){display:none}.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:inherit;color:inherit}.prop-value{align-items:center;gap:var(--s2);min-width:0;font-size:var(--t-label);display:flex}.prop[data-w] .prop-value>:is(input,select,.picker,.multi,.affix){width:var(--w-half);min-width:12ch;max-width:100%}.prop[data-w=quarter] .prop-value>:is(input,select,.picker,.multi,.affix){width:var(--w-quarter);min-width:10ch}.prop[data-w=full] .prop-value>:is(input,select,.picker,.multi,.secret,.affix){width:var(--w-full)}.prop .prop-value>.multi>.multi-btn{width:100%}@media (width>=601px){.props:not(:has(.menu,.prop-flag>*)) .prop-value{grid-column:2/-1}}.affix{height:var(--field);background:var(--surface2);min-width:0;box-shadow:inset 0 0 0 1px var(--line);border-radius:var(--r-ctl);align-items:center;display:flex}.affix>input{background:0 0;border:0;flex:1;min-width:0;height:100%;padding-right:0}.affix>input:focus-visible{outline:none}.affix:has(>input:focus-visible){outline:2px solid var(--amber);outline-offset:2px}.affix-text{padding:0 var(--s2) 0 2px;color:var(--dim);flex:none}.prop-value>[aria-invalid=true]{border-color:var(--rust)}.affix[data-invalid]{box-shadow:inset 0 0 0 1px var(--rust)}.prop-error{color:var(--rust)}textarea.mono{font-family:var(--mono);font-size:var(--t-note);white-space:pre;overflow-wrap:normal}.secret{align-items:center;gap:var(--s1);min-width:0;display:flex}.secret input{flex:1;min-width:0}.prop-code{font:inherit;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);cursor:pointer;display:inline-flex}.prop-check input[role=switch]{appearance:none;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface2);cursor:pointer;flex:none;width:36px;height:20px;margin:0;transition:background-color .15s,border-color .15s;position:relative}.prop-check input[role=switch]:before{content:"";background:var(--dim);border-radius:50%;width:14px;height:14px;transition:transform .15s,background-color .15s;position:absolute;top:2px;left:2px}.prop-check input[role=switch]:checked{background:var(--amber);border-color:var(--amber)}.prop-check input[role=switch]:checked:before{background:var(--on-amber);transform:translate(16px)}.prop-cards{gap:var(--s2);flex-wrap:wrap;min-width:0;display:flex}.prop-card{align-items:center;gap:var(--s2);min-height:var(--ctl);padding:var(--s2) var(--s3);border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--surface2);font-size:var(--t-label);cursor:pointer;font-weight:600;display:inline-flex;position:relative}.prop-card:hover{border-color:var(--faint)}.prop-card input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.prop-card svg{color:var(--amber);flex:none}.prop-card:has(input:checked){border-color:var(--amber);background:color-mix(in srgb, var(--amber) 10%, var(--surface))}.prop-card:has(input:focus-visible){outline:2px solid var(--amber);outline-offset:2px}.prop-card[data-disabled]{opacity:.5;cursor:not-allowed}.prop-card[data-disabled]:hover{border-color:var(--line)}.prop-card[data-disabled] input{cursor:not-allowed}.prop-card-note{font-weight:400;font-size:var(--t-note);color:var(--dim)}.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-w]:not([data-w=quarter]),.prop[data-control=cards],.prop[data-control=code]{row-gap:var(--s1);grid-template-areas:"name name flag menu""value value value value"}.prop[data-hint]:not([data-w=quarter]){grid-template-areas:"name name flag menu""value value value value""hint hint hint hint"}.prop[data-w]:not([data-w=quarter]) .prop-value>:is(input,select,.picker,.multi,.secret,.affix){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{height:auto;font-size:var(--t-label);overflow-wrap:anywhere;border:0;padding:0;background:0 0!important}table.dt-cards td.num{text-align:left}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-label);flex-wrap:wrap;font-weight:600;display:flex}table.dt-cards td.dt-menu{top:var(--s1);right:var(--s1);width:auto;position:absolute}table.dt-cards td:not(.dt-title,.dt-menu)[data-label]:before{content:attr(data-label) " ";color:var(--dim)}table.dt-cards tbody tr:has(td.dt-select){padding-left:calc(var(--s1) + var(--ctl))}table.dt-cards td.dt-select{top:var(--s2);left:var(--s1);width:var(--ctl);height:var(--ctl);justify-content:center;align-items:center;padding:0;display:flex;position:absolute}table.dt-cards tbody tr[aria-selected=true]{background:color-mix(in srgb, var(--amber) 10%, var(--surface));border-color:var(--amber)}.dt-bulk{flex-wrap:wrap}.dt-bulk-count{flex-basis:100%}}@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:var(--e-modal);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{justify-content:flex-end;align-items:center;gap:var(--s2);padding:var(--s3) var(--s4);border-top:1px solid var(--line);flex-wrap:wrap;flex:none;display:flex}.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;flex:auto;display: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-refusal{color:var(--rust);font-size:var(--t-label);overflow-wrap:anywhere}.edit-outcomes{align-items:center;gap:var(--s2);min-width:0;margin-right:auto;display:flex}.edit-done,.edit-save{flex:none}.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>button{flex:auto;justify-content:center}.edit-outcomes{flex-basis:100%}.edit-outcomes:not(:has(>:not(:empty))){display:none}}.cm-body{gap:var(--s3);flex-direction:column;display:flex}.cm-row{align-items:center;gap:var(--s2);grid-template-columns:minmax(88px,35%) minmax(0,1fr);display:grid}.cm-label{font-size:var(--t-label);color:var(--dim)}.cm-input{height:var(--field);min-height:var(--field);padding:0 var(--s3);background:var(--surface2);border:1px solid var(--line);border-radius:var(--r-ctl);color:var(--ink);font-size:var(--t-label)}.cm-taken{align-items:center;gap:var(--s2);padding:var(--s2) var(--s3);border-radius:var(--r-ctl);background:color-mix(in srgb, var(--amber) 14%, var(--surface));font-size:var(--t-label);margin:0;display:flex}.cm-taken svg{color:var(--amber);flex:none}.cm-share-note,.cm-reassure{font-size:var(--t-note);color:var(--dim);margin:0}.cm-confirm{gap:var(--s3);flex-direction:column;display:flex}.cm-confirm-head{font-size:var(--t-label);margin:0;font-weight:600}.cm-deps{gap:var(--s1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.cm-deps>li{align-items:center;gap:var(--s2);font-size:var(--t-label);display:flex}.cm-deps>li>svg{color:var(--dim);flex:none}.cm-deps>li>a{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.cm-dep-kind{color:var(--dim);font-size:var(--t-note);margin-left:auto}.cm-warn{align-items:center;gap:var(--s2);font-size:var(--t-label);color:var(--rust);margin:0;display:flex}.cm-warn svg{color:var(--rust);flex:none}.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:var(--e-pop);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}table.dt{border-collapse:separate;border-spacing:0;width:100%;font-size:var(--t-label);font-variant-numeric:tabular-nums}.dt>:where(thead,tbody)>:where(tr)>:where(th,td){padding:var(--s2) var(--s3);text-align:left;vertical-align:middle;border-bottom:1px solid var(--line)}.dt>:where(thead)>:where(tr)>:where(th){height:var(--ctl);padding-block:var(--s1);font-size:var(--t-label);color:var(--dim);white-space:nowrap;background:0 0;font-weight:500}.dt>:where(tbody)>:where(tr)>:where(td){height:calc(var(--ctl) + var(--s3));color:var(--ink);transition:background-color .12s}.dt>:where(tbody)>:where(tr:last-child)>:where(td){border-bottom:0}.dt>:where(tbody)>:where(tr:hover)>:where(td){background:color-mix(in srgb, var(--surface2) 55%, transparent)}.dt td.dt-title{font-weight:500}.dt :is(th,td).num{text-align:right}.dt th.num .dt-sort{flex-direction:row-reverse}.dt :is(th,td).dt-select{width:1%;padding-inline:var(--s3) 0}.dt :is(th,td).dt-select input{margin:0;display:block}.dt>:where(tbody)>:where(tr[aria-selected=true])>:where(td){background:color-mix(in srgb, var(--amber) 10%, var(--surface))}.dt :is(th,td).dt-menu{width:1%;padding-inline:0 var(--s1);text-align:right;white-space:nowrap}.dt-bulk{justify-content:flex-end;align-items:center;gap:var(--s2);min-height:var(--ctl);margin-bottom:var(--s2);display:flex}.dt-bulk-count{gap:var(--s2);font-size:var(--t-label);color:var(--dim);font-variant-numeric:tabular-nums;margin-right:auto;display:flex}.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);padding-top:calc(var(--s1) * 1.5);position:relative}.fbar-row{align-items:center;gap:var(--s2);flex-wrap:wrap;display:flex}.fbar-quick{border:0;min-width:0;margin:0;padding:0}.fbar-trail{margin-left:auto;display:inline-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));font-size:var(--t-note);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{border-radius:var(--r-pill);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);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);border-radius:var(--r-pill);background:color-mix(in srgb, var(--amber) 14%, var(--surface));border:1px solid #0000;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:var(--e-panel);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}.pills{flex-wrap:wrap;gap:6px;display:flex}.pill{cursor:pointer;display:inline-flex;position:relative}.pill input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.pill span{min-height:30px;padding:0 var(--s3);border:1px solid var(--line);border-radius:var(--r-pill);font-size:var(--t-label);color:var(--ink);align-items:center;transition:background-color .12s,border-color .12s,color .12s;display:inline-flex}.pill:hover span{border-color:var(--faint)}.pill input:checked+span{background:var(--amber);border-color:var(--amber);color:var(--on-amber);font-weight:600}.pill input:focus-visible+span{outline:2px solid var(--amber);outline-offset:2px}.field-chip{align-items:center;gap:var(--s1);padding:0 var(--s2);border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface2);font-size:var(--t-label);color:var(--ink);white-space:nowrap;vertical-align:baseline;display:inline-flex}.field-chip svg{color:var(--dim);flex:none}.wizard-pill{display:inline-flex}.wiz-pill-btn{align-items:center;gap:var(--s1);height:var(--ctl);padding:0 var(--s2);border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface2);color:var(--ink);font-size:var(--t-label);font-weight:600;display:inline-flex}.wiz-pill-btn svg{color:var(--amber);flex:none}.wiz-pill-btn:hover,.wiz-pill-btn[aria-expanded=true]{border-color:var(--faint)}.wiz-pill-count{font-variant-numeric:tabular-nums}.wiz-pop{min-width:220px;padding:var(--s2);gap:var(--s2)}.wiz-pop-head{padding:0 var(--s1);font-size:var(--t-label);color:var(--ink);margin:0;font-weight:600}.wiz-steps{gap:2px;margin:0;padding:0;list-style:none;display:grid}.wiz-step{align-items:center;gap:var(--s2);padding:var(--s1) var(--s1);font-size:var(--t-body);color:var(--dim);grid-template-columns:auto 1fr;display:grid}.wiz-step.done{color:var(--ink)}.wiz-step.current .wiz-step-title{color:var(--ink);font-weight:600}.wiz-tick{width:16px;color:var(--sage);justify-content:center;display:inline-flex}.wiz-dot{border-radius:var(--r-pill);border:1.5px solid var(--line);width:7px;height:7px}.wiz-step.current .wiz-dot{border-color:var(--ink)}.wiz-pop-acts{padding-top:var(--s1);border-top:1px solid var(--line);gap:2px;display:grid}.wiz-go{justify-content:flex-start;gap:var(--s2)}.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}.pill span{min-height:var(--tap);padding:0 var(--s4)}.prop-card{min-height:var(--tap)}}@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-radius:var(--r-sheet) var(--r-sheet) 0 0;border-width:1px 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));border-radius:var(--r-pill);background:var(--line);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}}.tab-strip{--mark:4px;gap:var(--s1);margin-bottom:var(--s4);background:linear-gradient(var(--line), var(--line)) left bottom / 100% var(--mark) no-repeat;flex-wrap:wrap;display:flex}.tab-strip a{align-items:center;gap:var(--s1);min-height:var(--tap,44px);padding:0 var(--s3) var(--mark);color:var(--dim);font-size:var(--t-label);white-space:nowrap;font-weight:500;text-decoration:none;display:inline-flex}.tab-strip a:hover{color:var(--ink)}.tab-strip a.on{color:var(--ink);background:linear-gradient(var(--amber), var(--amber)) left bottom / 100% var(--mark) no-repeat}.tab-strip .tab-icon{flex:none}.tab-strip.section{margin-top:calc(-1 * var(--s2))}.tab-strip.section a.on{background-image:linear-gradient(var(--dim), var(--dim))}@media (width<=600px){.tab-strip{gap:0}.tab-strip .tab-icon{width:18px;height:18px}.tab-strip a{min-height:var(--tap,44px);padding:var(--s1) 0 calc(var(--s1) + var(--mark));min-width:var(--tap,44px);font-size:var(--t-note);flex-direction:column;flex:1;justify-content:center;gap:2px}}.ctx-head{align-items:flex-start;gap:var(--s2) var(--s3);margin-top:calc(-1 * var(--s4));padding:var(--s3) var(--s4);background:var(--surface);border:1px solid var(--line);border-radius:0 0 var(--r-pane) var(--r-pane);border-top:0;flex-wrap:nowrap;display:flex}.ctx-id{gap:calc(var(--s1) / 2);flex-direction:column;flex:auto;min-width:0;display:flex}.ctx-kind{font-size:var(--t-note);color:var(--dim)}.ctx-name{align-self:flex-start;align-items:center;gap:var(--s1);max-width:100%;min-height:var(--ctl);color:var(--ink);font-size:var(--t-context);text-align:left;background:0 0;border:0;padding:0;font-weight:600;line-height:1.25;display:inline-flex}.ctx-name-text{overflow-wrap:anywhere;min-width:0}.ctx-name svg{color:var(--dim);flex:none}.ctx-name:has(.ctx-name-text){min-height:0;padding-block:calc((var(--ctl) - 1.25em) / 2);display:block}.ctx-name:has(.ctx-name-text) svg{vertical-align:-.125em;margin-left:var(--s1);display:inline-block}button.ctx-name:hover svg,button.ctx-name:focus-visible svg{color:var(--amber)}.ctx-side{justify-content:flex-end;align-items:center;gap:var(--s2) var(--s3);min-width:0;min-height:calc(var(--t-note) * 1.5 + var(--s1) / 2 + var(--ctl));flex-wrap:wrap;flex:none;margin-left:auto;display:flex}.ctx-meta{font-size:var(--t-note);color:var(--dim);font-variant-numeric:tabular-nums;white-space:nowrap}.ctx-acts{align-items:center;gap:var(--s1);flex:none;margin-left:auto;display:flex}.ctx-primary{font-weight:500}@media (width<=600px){.ctx-head{flex-wrap:wrap;align-items:center}.ctx-id{flex-basis:100%}.ctx-side{flex:100%;justify-content:flex-start;min-height:0;margin-left:0}.ctx-meta{white-space:normal;overflow-wrap:anywhere;flex:100%}.ctx-acts{margin-left:0}}.ctx-head.docked{border-radius:0}.action-bar{padding:var(--s2) var(--s4);background:var(--surface2);border:1px solid var(--line);border-radius:0 0 var(--r-pane) var(--r-pane);border-top:0;position:relative;overflow:hidden}.action-bar-row{align-items:center;gap:var(--s3);flex-wrap:nowrap;display:flex}.action-bar-primary{padding:0 var(--s5);flex:none}.action-bar-line{min-width:0;font-size:var(--t-label);color:var(--dim);flex:auto}.action-bar-secondary{flex:none;margin-left:auto}.action-bar-meter{background:var(--line);height:3px;position:absolute;bottom:0;left:0;right:0}.action-bar-fill{background:var(--amber);height:100%}@media (width<=600px){.action-bar{padding:var(--s3)}.action-bar-primary{padding:0 var(--s4)}}.switcher{gap:calc(var(--s1) / 2);margin:0;padding:0;list-style:none;display:grid}.switcher-opt{align-items:center;gap:var(--s2);width:100%;min-height:var(--ctl);color:var(--ink);text-align:left;background:0 0;border-color:#0000;font-weight:500;display:flex}.switcher-opt:hover,.switcher-opt:focus-visible{background:var(--surface2)}.switcher-opt[aria-current=true]{color:var(--amber);font-weight:600}.switcher-label{overflow-wrap:anywhere;min-width:0}.switcher-check{flex:none}.switcher-when{font-size:var(--t-note);color:var(--dim);font-variant-numeric:tabular-nums;flex:none;margin-left:auto;font-weight:400}.switcher-part+.switcher-part{margin-top:var(--s4);padding-top:var(--s3);border-top:1px solid var(--line)}.switcher-head{margin:0 0 var(--s2);font-size:var(--t-label);color:var(--dim);font-weight:600}.switcher-foot{margin-top:var(--s3);padding-top:var(--s3);border-top:1px solid var(--line)}.switcher-pick{align-items:center;gap:var(--s1);min-height:0;color:var(--ink);font:inherit;text-align:left;background:0 0;border:0;padding:0;font-weight:500;display:inline-flex}.switcher-pick:hover,.switcher-pick:focus-visible{color:var(--amber)}.switcher-pick[aria-current=true]{color:var(--amber);font-weight:600}@media (pointer:coarse),(width<=600px){.switcher-pick{min-height:var(--tap)}}@media (width<=600px){table.dt-cards.switcher-table tbody tr{align-items:center;gap:var(--s2);margin-bottom:var(--s1);padding:0 var(--s3);display:flex}table.dt-cards.switcher-table td.dt-title{flex:auto;min-height:0;padding-right:0}table.dt-cards.switcher-table td:not(.dt-title)[data-label]:before{content:none}table.dt-cards.switcher-table td:not(.dt-title){font-size:var(--t-note);color:var(--dim);flex:none;padding:0}}.picker{justify-content:space-between;align-items:center;gap:var(--s2);height:var(--field);min-height:var(--field);min-width:12ch;max-width:100%;padding:0 var(--s2) 0 var(--s3);background:var(--surface2);border:1px solid var(--line);border-radius:var(--r-ctl);color:var(--ink);font-size:var(--t-label);text-align:left;font-weight:400;display:inline-flex}.picker svg{color:var(--faint);flex:none;transition:color .12s}.picker:hover{border-color:var(--faint)}.picker:hover svg,.picker:focus-visible svg{color:var(--amber)}.picker-main{align-items:center;gap:var(--s2);min-width:0;display:inline-flex}.picker-value{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.picker-value.empty{color:var(--dim)}.loading{min-height:var(--ctl);align-items:center;display:flex}.loading-status{align-items:center;gap:var(--s2);color:var(--dim);font-size:var(--t-note);display:inline-flex}.loading-error{align-items:center;gap:var(--s2);min-height:var(--ctl);flex-wrap:wrap;display:flex}.loading-error .note{margin:0 auto 0 0}.spinner{flex:none;animation:.8s linear infinite spinner-turn}@keyframes spinner-turn{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{stroke-dasharray:2 3}}.mark{vertical-align:-2px;display:inline-flex}.mark.met{color:var(--sage)}.mark.not{color:var(--rust)}.json-view{padding:var(--s3);background:var(--surface2);border:1px solid var(--line);border-radius:var(--r-ctl);font:var(--t-note) / 1.55 var(--mono);color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;overflow:auto}.json-view.fill{box-sizing:border-box;min-height:100%}.modal-body:has(>.json-view.fill){flex-direction:column;display:flex}.modal-body>.json-view.fill{flex:auto;min-height:0}.j-key{color:var(--syn-key)}.j-str{color:var(--syn-str)}.j-num{color:var(--syn-num)}.j-lit{color:var(--syn-lit);font-weight:600}.j-punct{color:var(--dim)}.switch{align-items:center;gap:var(--s2);min-height:var(--ctl);color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:0;display:inline-flex}.switch:disabled{opacity:.5;cursor:not-allowed}.switch-track{background:var(--surface2);border:1px solid var(--line);border-radius:999px;flex:none;width:34px;height:20px;transition:background .15s,border-color .15s;position:relative}.switch[aria-checked=true] .switch-track{background:var(--amber);border-color:var(--amber)}.switch-thumb{background:var(--surface);border:1px solid var(--line);border-radius:50%;width:16px;height:16px;transition:transform .15s,background .15s,border-color .15s;position:absolute;top:1px;left:1px}.switch[aria-checked=true] .switch-thumb{background:var(--on-amber);border-color:var(--on-amber);transform:translate(14px)}.switch-label{font:var(--t-note);color:var(--ink)}.prompt{gap:var(--s1);margin-top:var(--s2);font-size:var(--t-label);display:grid}.prompt>.prop-name{grid-area:auto}.prompt textarea{field-sizing:content;width:100%;min-height:3lh;max-height:60vh}.pe-head{justify-content:space-between;align-items:center;gap:var(--s2);display:flex}.pe-words{margin-top:var(--s1)}.words-view{margin-top:var(--s2);font-size:var(--t-label);gap:var(--s2);display:grid}.wv-words{white-space:pre-wrap;overflow-wrap:anywhere;margin:0;line-height:1.7}.wv-empty{color:var(--dim)}.wv-changed{color:var(--ink);-webkit-box-decoration-break:clone;box-decoration-break:clone;background:var(--lightningcss-light,#fff0a0)var(--lightningcss-dark,#5a4d1a);border-radius:2px;padding:0 2px}.words-view.readonly{padding:var(--s2) var(--s3);border:1px dashed var(--line);border-radius:var(--r-ctl);margin-top:0}.wv-exprs{gap:var(--s1);padding:var(--s2);border:1px dashed var(--line);border-radius:var(--r-ctl);display:grid}.wv-exprs code{font-family:var(--mono);font-size:var(--t-note);color:var(--dim);overflow-wrap:anywhere}.rule-tries{margin:var(--s2) 0 0;gap:var(--s1);font-size:var(--t-label);overflow-wrap:anywhere;padding:0;list-style:none;display:grid}.rule-tries .hit{color:var(--sage)}.rule-tries .fault{color:var(--rust)}.metric-picker .mp-search{box-sizing:border-box;width:100%;margin-bottom:var(--s3)}.metric-picker .mp-family{margin:0 0 var(--s3);border:0;padding:0}.metric-picker .mp-family legend{font-size:var(--t-label);color:var(--dim);margin-bottom:var(--s1);font-weight:600}.metric-picker .mp-grid{gap:var(--s1);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.metric-picker .mp-type{text-align:left;min-height:var(--ctl);padding:0 var(--s2);border:1px solid var(--line);border-radius:var(--r-ctl);color:var(--ink);font:inherit;font-size:var(--t-label);cursor:pointer;background:0 0}.metric-picker .mp-type:hover{border-color:var(--amber)}.metric-picker .mp-type.on{border-color:var(--amber);color:var(--amber);font-weight:600}@media (width<=640px){.metric-picker .mp-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (pointer:coarse){.metric-picker .mp-type{min-height:var(--tap)}}: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);--w-quarter:25%;--w-half:50%;--w-full:100%;--syn-key:var(--lightningcss-light,#2d5a94)var(--lightningcss-dark,#8db4e6);--syn-str:var(--lightningcss-light,#3a6e40)var(--lightningcss-dark,#9cc69a);--syn-num:var(--lightningcss-light,#7a3fa0)var(--lightningcss-dark,#c9a3e6);--syn-lit:var(--lightningcss-light,#94561a)var(--lightningcss-dark,#e0ac6e);--sans:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--t-shift:0px;--t-caption:calc(11px + var(--t-shift));--t-note:calc(12px + var(--t-shift));--t-label:calc(13px + var(--t-shift));--t-body:calc(14px + var(--t-shift));--t-heading:calc(15px + var(--t-shift));--t-title:calc(16px + var(--t-shift));--t-context:calc(19px + var(--t-shift));--lh:1.5;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--ctl:32px;--tap:44px;--field:var(--ctl);--r-ctl:7px;--r-pane:10px;--r-pill:999px;--r-sheet:16px;--shadow:var(--lightningcss-light,#1e202424)var(--lightningcss-dark,#0a0b0d73);--e-pop:0 2px 6px var(--shadow);--e-panel:0 4px 12px var(--shadow);--e-modal:0 8px 24px var(--shadow)}@media (pointer:coarse),(width<=600px){:root{--ctl:var(--tap);--field:36px;--t-shift:-1px}}@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);background-image:radial-gradient(var(--dot) 1px, transparent 1.5px);background-size:var(--s4) var(--s4);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-BcvmOPqb.js"></script>
9
- <link rel="modulepreload" crossorigin href="/assets/tokens-CiJkwD3V.js">
10
- <link rel="stylesheet" crossorigin href="/assets/tokens-B7N4NvmM.css">
8
+ <script type="module" crossorigin src="/assets/gallery-DKy8QK3o.js"></script>
9
+ <link rel="modulepreload" crossorigin href="/assets/tokens-BmytrwxE.js">
10
+ <link rel="stylesheet" crossorigin href="/assets/tokens-DBN7I0ru.css">
11
11
  <link rel="stylesheet" crossorigin href="/assets/gallery-B_-TH0F-.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-BBUxHZ-D.js"></script>
9
- <link rel="modulepreload" crossorigin href="/assets/tokens-CiJkwD3V.js">
10
- <link rel="stylesheet" crossorigin href="/assets/tokens-B7N4NvmM.css">
11
- <link rel="stylesheet" crossorigin href="/assets/main-CMoyjImZ.css">
8
+ <script type="module" crossorigin src="/assets/main-DdGON-yl.js"></script>
9
+ <link rel="modulepreload" crossorigin href="/assets/tokens-BmytrwxE.js">
10
+ <link rel="stylesheet" crossorigin href="/assets/tokens-DBN7I0ru.css">
11
+ <link rel="stylesheet" crossorigin href="/assets/main-BGmSu7aS.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.10.0",
3
+ "version": "0.11.0",
4
4
  "description": "Test what models, HTTP endpoints and APIs answer, side by side, and score it with evals, locally in a UI or in CI.",
5
5
  "keywords": [
6
6
  "evals",
@@ -21,7 +21,15 @@
21
21
  "image-keywording"
22
22
  ],
23
23
  "license": "SEE LICENSE IN LICENSE.md",
24
- "author": "Grainbox Limited",
24
+ "author": {
25
+ "name": "Grainbox Limited",
26
+ "email": "evals-lab@grainbox.com",
27
+ "url": "https://www.grainbox.com"
28
+ },
29
+ "homepage": "https://www.grainbox.com/products/evals-lab/",
30
+ "bugs": {
31
+ "email": "evals-lab@grainbox.com"
32
+ },
25
33
  "bin": {
26
34
  "evals-lab": "bin/evals-lab.js"
27
35
  },
@@ -1,3 +0,0 @@
1
- import{$t as e,At as t,Bt as n,Ct as r,Et as i,Ft as a,Gn as o,It as s,Jt as c,Kn as l,Lt as u,Ot as d,Pt as f,Rt as p,Tt as m,Ut as ee,Vt as te,Wt as h,Xt as ne,_n as re,_t as ie,an as ae,ct as oe,dn as se,en as ce,et as le,fn as ue,gn as de,gt as fe,ht as pe,jt as me,kt as g,l as he,lt as ge,mt as _e,n as ve,o as _,on as ye,pn as be,qt as xe,rn as Se,sn as Ce,tn as v,un as we,ut as y,wt as b,yt as x}from"./tokens-CiJkwD3V.js";var S=l(),Te=o(),C=[{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`}]}]}],w=[{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:`, `})}],Ee=[{name:`language`,type:`value`,value:`English UK`},{name:`geo-location`,type:`value`,value:`Hamilton, Waikato, New Zealand`},{name:`geo`,type:`block`,enabled:!1}],De=[{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:`row/button`,title:`Row actions, one action a button`},{path:`row/menu`,title:`Row actions, two or more in the menu`},{path:`actionbar/states`,title:`Action bar, docked under a header, in its four states`},{path:`tabs/main`,title:`Tab strip, the lab's tabs`},{path:`tabs/section`,title:`Tab strip, a section strip under the lab's`},{path:`header/pipeline`,title:`Context header, a Pipeline`},{path:`header/dataset`,title:`Context header, a Dataset`},{path:`header/source`,title:`Context header, a Source`},{path:`header/switcher`,title:`Switcher, recent and more`},{path:`picker/fields`,title:`Picker, a profile and a Source`},{path:`multi/closed`,title:`Multi-select, two of three ticked`},{path:`multi/open`,title:`Multi-select, its list open`},{path:`chiplist/words`,title:`Chip-list, words with the input to add more`},{path:`chiplist/empty`,title:`Chip-list, empty with its placeholder`},{path:`workspace/menu`,title:`Workspace trigger and its three-part menu`},{path:`copymove/choose`,title:`Copy or move, a destination chosen`},{path:`copymove/collision`,title:`Copy or move, the name is already taken`},{path:`copymove/confirm`,title:`Copy or move, a Move that breaks a dependency`},{path:`copymove/confirm-pipeline`,title:`Copy or move, a pipeline Move that leaves its data behind`},{path:`header/long`,title:`Context header, a long name`},{path:`menu/busy`,title:`Menu with a busy item`},{path:`loading/group`,title:`Loading, inside a group`},{path:`loading/error`,title:`Loading failed, with Retry`},{path:`loading/busy-button`,title:`Busy buttons`},{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:`repeater/locked`,title:`Repeater, a locked row`},{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/cards`,title:`Property table, a kind chosen by card`},{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/select`,title:`DataTable with selection`},{path:`table/select-on`,title:`Table, two rows selected`},{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`},{path:`view/output-none`,title:`Responses, read as text`},{path:`view/output-flow`,title:`Responses with Read as`},{path:`view/field-chip`,title:`Field chips in a target's words, with a changed word`},{path:`view/field-edit`,title:`The Edited target's editable prompt, with Insert field and a highlighted diff`},{path:`view/insert-field`,title:`The Edited target's Insert field menu, open`},{path:`wizard/pill`,title:`Wizard pill, two of four steps done`},{path:`wizard/pill-open`,title:`Wizard pill, its checklist open on the current step`},{path:`switch/off`,title:`Switch, off`},{path:`switch/on`,title:`Switch, on`},{path:`switch/disabled`,title:`Switch, disabled`}],T=te(),E=()=>{},D=(...e)=>e.map(e=>({label:e,icon:e===`Remove`?n.remove:e===`Clone`?n.clone:n.rename,onSelect:E,destructive:e===`Remove`}));function O({start:e,min:t,max:n,locked:r}){let[i,a]=(0,S.useState)(e);return(0,T.jsx)(ge,{noun:`scenario`,items:i,...t===void 0?{}:{min:t},...n===void 0?{}:{max:n},...r?{locked:r}:{},onAdd:()=>a([...i,`Target ${String.fromCharCode(65+i.length)}`]),onRemove:e=>a(i.filter((t,n)=>n!==e)),onClone:e=>a([...i.slice(0,e+1),`${i[e]} copy`,...i.slice(e+1)]),onRename:E,empty:`No targets yet.`,renderItem:(e,t,n)=>(0,T.jsx)(f,{id:`scenario-${t}`,title:e,level:3,actions:n,children:(0,T.jsx)(`p`,{className:`note`,children:`A Target profile and a prompt for each job.`})},`${e}-${t}`)})}function Oe(){let[e,t]=(0,S.useState)(Ee),n=(n,r)=>t(e.map(e=>e.name===n?{...e,...r}:e));return(0,T.jsx)(he,{mappings:e,onValue:(e,t)=>n(e,{value:t}),onEnabled:(e,t)=>n(e,{enabled:t}),onEdit:E,onRemove:n=>t(e.filter(e=>e.name!==n)),onAdd:()=>t([...e,{name:`token${e.length+1}`,type:`value`,value:``}])})}function k({start:e,format:t=!0,readAs:n}){let[r,i]=(0,S.useState)(e),[a,o]=(0,S.useState)(t),[s,c]=(0,S.useState)(n);return(0,T.jsx)(le,{id:`output`,out:r,format:a,readAs:s,outputKinds:C,modifiers:w,onAddFormat:()=>o(!0),onRemoveFormat:()=>{o(!1),i({kind:`text`,modifiers:[]})},onReadAs:c,onKind:e=>i({kind:e,modifiers:r.modifiers.filter(t=>w.find(e=>e.id===t.type)?.accepts.includes(e))}),onModifier:(e,t)=>i({...r,modifiers:r.modifiers.map((n,r)=>r===e?t:n)}),onAddModifier:e=>i({...r,modifiers:[...r.modifiers,e]}),onRemoveModifier:e=>i({...r,modifiers:r.modifiers.filter((t,n)=>n!==e)})})}function ke(){let[e,t]=(0,S.useState)(`Job 1`),[r,i]=(0,S.useState)(!0);return(0,T.jsx)(f,{id:`renaming`,title:e,actions:[{label:`Rename…`,icon:n.rename,onSelect:()=>i(!0)}],...r?{rename:{value:e,onCommit:n=>{t(n||e),i(!1)},onCancel:()=>i(!1)}}:{},children:(0,T.jsx)(`p`,{className:`note`,children:`Enter or leaving keeps the name; Escape cancels.`})})}function Ae(){let[e,t]=(0,S.useState)(`system`);return(0,T.jsx)(`div`,{className:`gallery-row`,style:{justifyContent:`flex-end`},children:(0,T.jsx)(_e,{current:{id:`w1`,slug:`work`,name:`Work`},workspaces:[{id:`w1`,slug:`work`,name:`Work`},{id:`w2`,slug:`side-project`,name:`Side project`},{id:`w3`,slug:`client-demos`,name:`Client demos`}],onSwitch:E,onNew:E,onManage:E,theme:e,onTheme:t})})}var je=[{id:`cur`,slug:`work`,name:`Work`,archived:!1,isDefault:!0,lastUsed:`2026-10-08T09:30:00Z`,createdAt:null,pipelines:4,runs:18},{id:`side`,slug:`side-project`,name:`Side project`,archived:!1,isDefault:!1,lastUsed:`2026-10-07T09:30:00Z`,createdAt:null,pipelines:2,runs:6},{id:`demos`,slug:`client-demos`,name:`Client demos`,archived:!1,isDefault:!1,lastUsed:`2026-10-06T09:30:00Z`,createdAt:null,pipelines:1,runs:0}],A={id:`cur`,slug:`work`,name:`Work`},Me={undo:null,offer:E,undoNow:E,dismiss:E},Ne=e=>({copyMovePreflight:async()=>({nameTaken:e,suggestedName:`Daily regressions (copy)`}),copyAsset:async()=>({id:`copy`}),moveAsset:async()=>({id:`same`}),forWorkspace:()=>({})});function j({nameTaken:e=!1,confirm:t=!1,subject:n,dependents:r=[]}){return(0,T.jsx)(oe,{api:Ne(e),subject:n??{kind:`filter-set`,id:`f1`,name:`Daily regressions`},workspaces:je,current:A,dependents:r,undo:Me,onClose:E,defaultDest:`side`,...t?{defaultConfirm:!0}:{}})}function M({sections:e,menu:t,status:n,statusBad:i,outcome:a}){return(0,T.jsx)(r,{title:`Lab Ollama`,...n?{status:n}:{},...i?{statusBad:!0}:{},...t?{menu:t}:{},sections:e,actions:[{label:`Test connection`,icon:ce,onSelect:E,outcome:a?{label:a,onOpen:E}:void 0}],onClose:E})}var N=()=>[{key:`name`,label:`Name`,required:!0,control:{type:`text`,value:`Lab Ollama`,onChange:E}},{key:`type`,label:`Type`,required:!0,control:{type:`select`,value:`ollama`,onChange:E,options:[{value:`ollama`,label:`Ollama (Local)`},{value:`anthropic`,label:`Anthropic`}]}},{key:`url`,label:`Address`,control:{type:`text`,value:``,placeholder:`the lab's Ollama`,onChange:E}},{key:`key`,label:`Key`,control:{type:`secret`,value:``,onChange:E}},{key:`model`,label:`Model`,control:{type:`text`,value:`minicpm-v4.6:latest`,onChange:E}}],P=()=>[{key:`seed`,label:`Seed`,control:{type:`text`,value:``,placeholder:`1234`,onChange:E}},{key:`nPredict`,label:`Reply tokens`,width:`quarter`,control:{type:`text`,value:``,onChange:E}},{key:`temperature`,label:`Temperature`,control:{type:`text`,value:`0.3`,onChange:E}},{key:`repeatPenalty`,label:`Repeat penalty`,width:`quarter`,control:{type:`text`,value:``,onChange:E}}],F=()=>[{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}`}}],I={key:`kind`,label:`Response Format`,required:!0,control:{type:`select`,value:`list`,onChange:E,options:C.map(e=>({value:e.id,label:e.label}))}};function L({actions:e}){return(0,T.jsx)(f,{id:`g`,title:`Actions`,children:(0,T.jsx)(x,{label:`Actions`,rows:[{name:`Ask_Claude`}],rowKey:e=>e.name,columns:[{key:`name`,header:`Name`,role:`title`,cell:e=>e.name},{key:`menu`,header:``,role:`menu`,sort:null,cell:()=>(0,T.jsx)(a,{label:`Ask_Claude actions`,actions:e})}]})})}var Pe=[[`home`,`Home`,ye],[`runs`,`Runs`,ue],[`history`,`History`,Ce],[`library`,`Library`,ae],[`setup`,`Setup`,ne]],Fe=[[`datasets`,`Datasets`,re],[`prompts`,`Prompts`,Se],[`sources`,`Sources`,se]],R=e=>(0,T.jsx)(g,{label:`Lab`,current:e,items:Pe.map(([e,t,n])=>({key:e,label:t,icon:n,href:`#/${e}`}))}),z=e=>(0,T.jsx)(g,{label:`Library`,level:`section`,current:e,items:Fe.map(([e,t,n])=>({key:e,label:t,icon:n,href:`#/library/${e}`}))}),B=({section:e,children:t})=>(0,T.jsxs)(`div`,{children:[R(e?`library`:`runs`),e&&z(e),t]}),V=(...e)=>e.map(e=>({label:e,icon:e===`Delete`?n.remove:e===`Clone`?n.clone:n.rename,onSelect:E,destructive:e===`Delete`})),Ie={"header/pipeline":()=>(0,T.jsx)(B,{children:(0,T.jsx)(d,{kind:`Pipeline`,name:`Pipeline 1`,onPick:E,meta:`2 jobs, 3 targets`,primary:{label:`New pipeline`,icon:e,onSelect:E},actions:V(`Rename…`,`Clone`,`Export YAML`,`Import YAML…`,`Restore…`,`Delete`)})}),"header/dataset":()=>(0,T.jsx)(B,{section:`datasets`,children:(0,T.jsx)(d,{kind:`Dataset`,name:`Demo 1`,onPick:E,meta:`62 cases, 19 graded`,primary:{label:`New dataset`,icon:e,onSelect:E},actions:V(`Rename…`,`Clone`,`Import JSON…`,`Export JSON`,`Restore…`,`Delete`)})}),"header/switcher":()=>(0,T.jsx)(fe,{kind:`Pipeline`,value:`p5`,onPick:E,onClose:E,recent:[`p7`,`p6`,`p5`,`p4`,`p3`],options:Array.from({length:13},(e,t)=>({id:`p${t}`,label:[`Demo 1`,`Demo 2`,`Receipts`,`Menus`,`Street signs`,`Labels`,`Plates`,`Posters`,`Packaging`,`Whiteboards`,`Book spines`,`Shop fronts`,`Timetables`][t],used:t<8?{at:`2026-10-0${t+1}T09:30:00Z`,label:`Oct ${t+1}, 2026, 09:30`}:null}))}),"picker/fields":()=>(0,T.jsx)(f,{id:`g`,title:`Target A`,children:(0,T.jsx)(b,{label:`Target A setup`,rows:[{key:`profile`,label:`Profile`,control:{type:`picker`,kind:`Profile`,value:`p2`,usedLabel:`Last changed`,onChange:E,recent:[`p5`,`p4`,`p3`,`p2`,`p1`],options:[{id:`#echo`,label:`Echo`,fixed:!0},...[`Lab Ollama`,`Anthropic`,`Cloud vision`,`Local llama`,`OpenRouter`,`Bench`,`Vision`].map((e,t)=>({id:`p${t}`,label:e,used:t<6?{at:`2026-10-0${t+1}T09:30:00Z`,label:`Oct ${t+1}, 2026, 09:30`}:null}))]}},{key:`source`,label:`Source`,control:{type:`picker`,kind:`Source`,value:`gone`,usedLabel:`Last changed`,onChange:E,options:[{id:``,label:`Any`,fixed:!0},{id:`gone`,label:`Shoot 3 (missing)`},{id:`s1`,label:`Receipts`}]}}]})}),"header/source":()=>(0,T.jsx)(B,{section:`sources`,children:(0,T.jsx)(d,{kind:`Source`,name:`Demo 1 images`,onPick:E,meta:`File Library. 63 files, 48 MB`,primary:{label:`Upload…`,icon:h,onSelect:E},actions:V(`Rename…`,`Delete`)})}),"workspace/menu":()=>(0,T.jsx)(Ae,{}),"copymove/choose":()=>(0,T.jsx)(j,{}),"copymove/collision":()=>(0,T.jsx)(j,{nameTaken:!0}),"copymove/confirm":()=>(0,T.jsx)(j,{confirm:!0,dependents:[{kind:`pipeline`,id:`w1`,name:`Nightly regression`,href:`#/runs`}]}),"copymove/confirm-pipeline":()=>(0,T.jsx)(j,{confirm:!0,subject:{kind:`pipeline`,id:`w1`,name:`Nightly regression`},dependents:[{kind:`eval-group`,id:`g1`,name:`Receipts, 62 cases`,href:`#/library/datasets/g1`},{kind:`source`,id:`s1`,name:`Receipt images`,href:`#/library/sources`}]}),"header/long":()=>(0,T.jsx)(B,{children:(0,T.jsx)(d,{kind:`Pipeline`,name:`Receipts and handwritten menus, second pass with the tighter prompt and a Contains metric`,onPick:E,meta:`12 jobs, 8 targets`,primary:{label:`New pipeline`,icon:e,onSelect:E},actions:V(`Rename…`,`Clone`,`Delete`)})}),"actionbar/states":()=>(0,T.jsxs)(`div`,{children:[R(`runs`),(0,T.jsx)(d,{kind:`Pipeline`,name:`Demo 1`,onPick:E,meta:`1 job, 2 targets`,docked:!0,primary:{label:`New pipeline`,icon:e,onSelect:E},actions:V(`Rename…`,`Delete`)}),(0,T.jsx)(y,{primary:{label:`Run`,icon:v,onSelect:E},status:(0,T.jsx)(`b`,{children:`Ready to run`})}),(0,T.jsxs)(`div`,{style:{display:`grid`,gap:`var(--s4)`,marginTop:`var(--s5)`},children:[(0,T.jsx)(y,{primary:{label:`Run`,icon:v,onSelect:E,disabled:!0},status:(0,T.jsxs)(T.Fragment,{children:[`Target profile "Vision" not found. `,(0,T.jsxs)(`a`,{href:`#/setup`,style:{whiteSpace:`nowrap`},children:[`Open`,`\xA0`,`Setup`]})]})}),(0,T.jsx)(y,{primary:{label:`Run`,icon:v,onSelect:E,disabled:!0},status:(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(`b`,{children:`Running`}),` 12 of 42`]}),secondary:{label:`Stop`,icon:c,onSelect:E},progress:28,progressLabel:`Run progress`}),(0,T.jsx)(y,{primary:{label:`Run`,icon:v,onSelect:E},status:(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(`b`,{children:`Done`}),` 42 in 2m`]})})]})]}),"tabs/main":()=>R(`runs`),"tabs/section":()=>(0,T.jsxs)(`div`,{children:[R(`library`),z(`datasets`)]}),"group/open":()=>(0,T.jsx)(f,{id:`g`,title:`Evals`,actions:D(`Change…`,`Remove`),children:(0,T.jsx)(`p`,{className:`note`,children:`The graded set.`})}),"group/closed":()=>(0,T.jsx)(f,{id:`g`,title:`Content`,open:!1,note:`Sample library, 63 files`,actions:D(`Change…`,`Remove`)}),"group/no-menu":()=>(0,T.jsx)(f,{id:`g`,title:`Mapping`,children:(0,T.jsx)(`p`,{className:`note`,children:`Nothing to do to it.`})}),"group/sub":()=>(0,T.jsx)(f,{id:`g`,title:`Job 1`,actions:D(`Rename…`,`Remove`),children:(0,T.jsx)(f,{id:`g-sub`,title:`Scenarios`,level:3,actions:D(`Clear`),children:(0,T.jsx)(`p`,{className:`note`,children:`Inside a pane.`})})}),"group/depth":()=>(0,T.jsxs)(f,{id:`g`,title:`Job 1`,actions:D(`Rename…`,`Remove`),children:[(0,T.jsxs)(f,{id:`g-scenarios`,title:`Scenarios`,level:3,children:[(0,T.jsx)(f,{id:`g-plain`,title:`Plain`,level:3,actions:D(`Rename…`,`Remove`),children:(0,T.jsx)(`p`,{className:`note`,children:`A pane, a section of it, and a thing with a name inside that section.`})}),(0,T.jsx)(f,{id:`g-strict`,title:`Strict`,level:3,actions:D(`Rename…`,`Remove`)})]}),(0,T.jsx)(f,{id:`g-output`,title:`Output`,level:3,children:(0,T.jsx)(`p`,{className:`note`,children:`The next section of the same pane.`})})]}),"group/renaming":()=>(0,T.jsx)(ke,{}),"menu/disabled":()=>(0,T.jsx)(f,{id:`g`,title:`Target D`,actions:[{label:`Rename…`,icon:n.rename,onSelect:E},{label:`Clone`,icon:n.clone,onSelect:E,disabled:!0},{label:`Remove`,icon:n.remove,onSelect:E,destructive:!0}]}),"row/button":()=>(0,T.jsx)(L,{actions:[{label:`New pipeline`,icon:v,onSelect:E}]}),"row/menu":()=>(0,T.jsx)(L,{actions:[{label:`View…`,icon:be,onSelect:E},{label:`Download`,icon:de,onSelect:E},{label:`Remove`,icon:xe,onSelect:E,destructive:!0}]}),"menu/busy":()=>(0,T.jsx)(f,{id:`g`,title:`History`,actions:[{label:`Export JSON`,icon:n.export,onSelect:E,busy:!0},{label:`Clear`,icon:n.clear,onSelect:E,destructive:!0}]}),"loading/group":()=>(0,T.jsx)(f,{id:`g`,title:`History`,actions:D(`Rename…`),children:(0,T.jsx)(u,{label:`Runs`,delay:0})}),"loading/error":()=>(0,T.jsx)(f,{id:`g`,title:`History`,children:(0,T.jsx)(u,{label:`Runs`,error:`Runs not loaded: server unreachable.`,onRetry:E})}),"loading/busy-button":()=>(0,T.jsx)(f,{id:`g`,title:`Run`,children:(0,T.jsxs)(`div`,{className:`gallery-row`,children:[(0,T.jsxs)(`button`,{type:`button`,className:`run`,disabled:!0,"aria-busy":!0,children:[(0,T.jsx)(p,{size:16}),`Run`]}),(0,T.jsxs)(`button`,{type:`button`,className:`ghost`,disabled:!0,"aria-busy":!0,children:[(0,T.jsx)(p,{}),`Older`]})]})}),"repeater/empty":()=>(0,T.jsx)(O,{start:[]}),"repeater/min":()=>(0,T.jsx)(O,{start:[`Target A`],min:1}),"repeater/between":()=>(0,T.jsx)(O,{start:[`Target A`,`Target B`],min:1,max:4}),"repeater/max":()=>(0,T.jsx)(O,{start:[`Target A`,`Target B`,`Target C`,`Target D`],min:1,max:4}),"repeater/locked":()=>(0,T.jsx)(O,{start:[`Reply`,`Target A`],locked:(e,t)=>t===0}),"props/controls":()=>(0,T.jsx)(b,{label:`Controls`,onRename:E,onRemove:E,onAdd:E,addLabel:`Add row`,rows:[I,{key:`language`,label:`{language}`,code:!0,control:{type:`text`,value:`English UK`,onChange:E}},{key:`geo`,label:`{geo}…{/geo}`,code:!0,control:{type:`static`,text:`Block`},enabled:{checked:!0,onChange:E}},{key:`image`,label:`Image`,control:{type:`checkbox`,checked:!0,label:`Send`,onChange:E}}]}),"props/required":()=>(0,T.jsx)(b,{label:`Output`,onRemove:E,rows:[I]}),"props/long":()=>(0,T.jsx)(b,{label:`Long`,onRemove:E,rows:[{key:`geo-location`,label:`{geo-location}`,code:!0,control:{type:`text`,value:`Hamilton, Waikato, New Zealand, Southern Hemisphere, Earth`,onChange:E}},{key:`averylongtokennamethatdoesnotbreak`,label:`{averylongtokennamethatdoesnotbreak}`,code:!0,control:{type:`text`,value:``,onChange:E}}]}),"props/cards":()=>(0,T.jsx)(Re,{}),"props/widths":()=>(0,T.jsx)(b,{label:`Widths`,rows:[{key:`type`,label:`Type`,required:!0,control:{type:`select`,value:`ollama`,onChange:E,options:[{value:`ollama`,label:`Ollama (Local)`},{value:`anthropic`,label:`Anthropic`}]}},{key:`url`,label:`Address`,control:{type:`text`,value:``,placeholder:`the lab's Ollama`,onChange:E}},{key:`model`,label:`Model`,control:{type:`text`,value:`minicpm-v4.6:latest`,onChange:E}},{key:`seed`,label:`Seed`,control:{type:`text`,value:``,placeholder:`1234`,onChange:E}},{key:`nPredict`,label:`Reply tokens`,width:`quarter`,control:{type:`text`,value:``,onChange:E}},{key:`temperature`,label:`Temperature`,control:{type:`text`,value:`0.2`,onChange:E}},{key:`grammar`,label:`Grammar`,control:{type:`textarea`,value:`root ::= item (", " item)*
2
- item ::= [a-z ]+`,onChange:E}}]}),"props/secret":()=>(0,T.jsx)(b,{label:`Keys`,rows:[{key:`held`,label:`Key`,control:{type:`secret`,value:`sk-not-a-real-key-0000`,onChange:E}},{key:`empty`,label:`Key`,control:{type:`secret`,value:``,onChange:E}},{key:`server`,label:`Key`,control:{type:`secret`,value:``,held:!0,onChange:E}}]}),"props/code":()=>(0,T.jsx)(b,{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,T.jsx)(Q,{count:4}),"table/paged":()=>(0,T.jsx)(Q,{count:35,pageSize:10}),"table/select":()=>(0,T.jsx)(Q,{count:5,picked:[]}),"table/select-on":()=>(0,T.jsx)(Q,{count:5,picked:[1,3]}),"table/filter":()=>(0,T.jsx)(Z,{}),"table/filter-on":()=>(0,T.jsx)(Z,{search:`IMG_40`,size:`large`}),"edit/form":()=>(0,T.jsx)(M,{outcome:`Connected`,menu:[{label:`Restore…`,icon:n.restore,onSelect:E},{label:`Apply preset: repeat 1.3`,icon:n.preset,onSelect:E}],sections:[{key:`identity`,rows:N()},{key:`settings`,title:`Settings`,rows:P()},{key:`debug`,title:`Debug`,rows:F(),folded:!0}]}),"edit/plain":()=>(0,T.jsx)(r,{title:`A mapping`,sections:[{key:`one`,rows:[I,{key:`with`,label:`Separator`,control:{type:`text`,value:`, `,onChange:E}}]}],onClose:E}),"edit/long":()=>(0,T.jsx)(M,{menu:[{label:`Restore…`,icon:n.restore,onSelect:E,disabled:!0}],sections:[{key:`identity`,rows:N()},{key:`settings`,title:`Settings`,rows:[...P(),{key:`grammar`,label:`Grammar`,control:{type:`textarea`,value:`root ::= item (", " item)*
3
- item ::= [a-z ]+`,onChange:E}},{key:`imagePosition`,label:`Image position`,control:{type:`select`,value:`after`,onChange:E,options:[{value:`before`,label:`before the prompt`},{value:`after`,label:`after the prompt`}]}},{key:`cachePrompt`,label:`Cache prompt`,control:{type:`select`,value:`off`,onChange:E,options:[{value:`on`,label:`on`},{value:`off`,label:`off`}]}}]},{key:`debug`,title:`Debug`,rows:F(),folded:!0}]}),"edit/status":()=>(0,T.jsx)(M,{status:`the relay could not reach http://127.0.0.1:11434`,statusBad:!0,sections:[{key:`identity`,rows:N()}]}),"view/tokens":()=>(0,T.jsx)(f,{id:`g`,title:`Token mappings`,level:3,children:(0,T.jsx)(Oe,{})}),"view/output":()=>(0,T.jsx)(k,{start:{kind:`list`,parse:`csv`,modifiers:[{type:`case`,mode:`LOWER`}]}}),"view/output-text":()=>(0,T.jsx)(k,{start:{kind:`text`,modifiers:[]}}),"view/output-two":()=>(0,T.jsx)(k,{start:{kind:`list`,parse:`csv`,modifiers:[{type:`case`,mode:`TITLE`},{type:`join`,with:` | `}]}}),"view/output-twice":()=>(0,T.jsx)(k,{start:{kind:`list`,parse:`csv`,modifiers:[{type:`case`,mode:`TITLE`},{type:`case`,mode:`LOWER`}]}}),"view/output-none":()=>(0,T.jsx)(k,{start:{kind:`text`,modifiers:[]},format:!1}),"view/output-flow":()=>(0,T.jsx)(k,{start:{kind:`text`,modifiers:[]},readAs:`@body('Ask')?['content']?[0]?['text']`}),"view/field-chip":()=>(0,T.jsx)(f,{id:`g`,title:`Edited`,level:3,children:(0,T.jsxs)(`div`,{className:`prompt`,children:[(0,T.jsx)(`span`,{className:`prop-name`,children:`Prompt`}),(0,T.jsx)(_,{words:`Summarise @{triggerBody()?['text']} in two short sentences for @{variables('Audience')}.`,was:`Summarise @{triggerBody()?['text']} in one sentence for @{variables('Audience')}.`})]})}),"view/field-edit":()=>(0,T.jsx)(Le,{}),"view/insert-field":()=>(0,T.jsx)(f,{id:`g`,title:`Edited`,level:3,children:(0,T.jsxs)(`div`,{className:`prompt`,children:[(0,T.jsxs)(`div`,{className:`pe-head`,children:[(0,T.jsx)(`span`,{className:`prop-name`,children:`Prompt`}),(0,T.jsx)(me,{fields:G,onInsert:E,label:`Edited`,defaultOpen:!0})]}),(0,T.jsx)(`textarea`,{"aria-label":`Edited, prompt`,rows:4,defaultValue:W}),(0,T.jsx)(_,{className:`pe-words`,words:W,was:U,showExprs:!1})]})}),"multi/closed":()=>(0,T.jsx)(K,{}),"multi/open":()=>(0,T.jsx)(K,{open:!0}),"chiplist/words":()=>(0,T.jsx)(q,{start:[`clearly`,`obviously`,`as an AI`]}),"chiplist/empty":()=>(0,T.jsx)(q,{start:[]}),"wizard/pill":()=>(0,T.jsx)(J,{}),"wizard/pill-open":()=>(0,T.jsx)(J,{open:!0}),"switch/off":()=>(0,T.jsx)(H,{}),"switch/on":()=>(0,T.jsx)(H,{start:!0}),"switch/disabled":()=>(0,T.jsx)(m,{checked:!0,disabled:!0,label:`Snapshot now`,onChange:E})};function H({start:e}){let[t,n]=(0,S.useState)(!!e);return(0,T.jsx)(m,{checked:t,onChange:n,label:`Snapshot now`})}var U=`Tell me about this location in 1 sentence: @{variables('LocationVar')}`,W=`Tell me about this location in 2 sentences, for someone visiting for the first time: @{variables('LocationVar')}`,G=[{name:`LocationVar`,expr:`@{variables('LocationVar')}`},{name:`text`,expr:`@{triggerBody()?['text']}`}];function Le(){let[e,t]=(0,S.useState)(W);return(0,T.jsx)(f,{id:`g`,title:`Edited`,level:3,children:(0,T.jsx)(ve,{label:`Edited`,profile:{type:`static`,text:`Anthropic Direct`},prompt:e,onPrompt:t,rows:[{key:`model`,label:`Model`,control:{type:`static`,text:`claude-haiku-4-5`}}],request:[{key:`request`,label:`Request`,control:{type:`code`,text:`POST /v1/messages`}},{key:`body`,label:`Body`,control:{type:`code`,text:JSON.stringify({model:`claude-haiku-4-5`,max_tokens:1024,messages:[{role:`user`,content:e}]},null,2)}}],requestId:`story-edited-request`,words:{text:e,was:U},fields:G})})}function K({open:e=!1}){let[t,n]=(0,S.useState)([`better`,`same`]),r=[{value:`better`,label:`Better`},{value:`same`,label:`Same`},{value:`worse`,label:`Worse`}];return e?(0,T.jsx)(`div`,{style:{minHeight:180},children:(0,T.jsx)(i,{value:t,options:r,onChange:n,defaultOpen:!0})}):(0,T.jsx)(b,{label:`Judged against recorded`,rows:[{key:`expected`,label:`Expected`,required:!0,control:{type:`multi`,value:t,options:r,onChange:n}}]})}function q({start:e}){let[t,n]=(0,S.useState)(e);return(0,T.jsx)(`div`,{style:{maxWidth:360},children:(0,T.jsx)(pe,{value:t,onChange:n})})}function J({open:e}){return(0,T.jsx)(`div`,{style:{display:`flex`,justifyContent:`flex-end`,padding:`var(--s3)`},children:(0,T.jsx)(t,{name:`Test a workflow`,done:2,total:4,current:2,steps:[{title:`Add a workflow Source`,done:!0},{title:`Test an action`,done:!0},{title:`Run the test`,done:!1},{title:`Compare the replies`,done:!1}],onOpen:E,onCancel:E,...e?{defaultOpen:!0}:{}})})}var Y=De.map(e=>({...e,render:Ie[e.path]})),X=e=>Array.from({length:e},(e,t)=>({name:`IMG_${String(4e3+t*7919%97).padStart(4,`0`)}.jpg`,kb:t*37%900+40}));function Z({search:e=``,size:t=`all`}){let[n,r]=(0,S.useState)(e),[i,a]=(0,S.useState)(t),[o,s]=(0,S.useState)(`shoot`),c=X(12),l=c.filter(e=>e.name.toLowerCase().includes(n.trim().toLowerCase())&&(i===`all`||i===`large`==e.kb>=400));return(0,T.jsxs)(f,{id:`files`,title:`Files`,children:[(0,T.jsx)(ie,{noun:`files`,search:{label:`Name`,placeholder:`Search names`,value:n,onChange:r},count:{shown:l.length,total:c.length},filters:[{key:`source`,label:`Source`,value:o,neutral:null,onChange:s,options:[{value:`shoot`,label:`Tuesday shoot`},{value:`samples`,label:`Sample library`}]},{key:`size`,label:`Size`,value:i,onChange:a,options:[{value:`all`,label:`All`},{value:`small`,label:`Small`},{value:`large`,label:`Large`}]}]}),l.length?(0,T.jsx)(x,{label:`Files`,rows:l,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,T.jsx)(`p`,{className:`note`,children:`No files match these filters.`})]})}function Q({count:e,pageSize:t,picked:r}){let i=X(e),[a,o]=(0,S.useState)(i),[c,l]=(0,S.useState)(()=>new Set((r??[]).map(e=>i[e].name)));return(0,T.jsx)(f,{id:`files`,title:`Files`,children:(0,T.jsx)(x,{label:`Files`,cards:!0,rows:a,rowKey:e=>e.name,pageSize:t??null,select:r&&{noun:`file`,selected:c,onChange:l,actions:e=>[{label:`Move…`,icon:n.rename,onSelect:E},{label:`Remove`,icon:n.remove,destructive:!0,onSelect:()=>{o(t=>t.filter(t=>!e.includes(t))),l(new Set)}},{label:`Export`,icon:h,onSelect:E}]},columns:[{key:`name`,header:`Name`,role:`title`,cell:e=>e.name},{key:`size`,header:`Size`,className:`num`,sort:e=>e.kb,cell:e=>`${e.kb} KB`},{key:`menu`,header:``,role:`menu`,sort:null,cell:e=>(0,T.jsx)(s,{label:`${e.name} actions`,actions:[{label:`Rename…`,icon:n.rename,onSelect:E},{label:`Remove`,icon:n.remove,destructive:!0,onSelect:E}]})}]})})}function Re(){let[e,t]=(0,S.useState)(`files`);return(0,T.jsx)(b,{label:`New Source`,rows:[{key:`type`,label:`Type`,control:{type:`cards`,value:e,onChange:t,options:[{value:`files`,label:`File Library`,icon:(0,T.jsx)(we,{size:16,fill:`currentColor`,"aria-hidden":`true`})},{value:`flow`,label:`Power Automate flow`,icon:(0,T.jsx)(ee,{size:16,fill:`currentColor`,"aria-hidden":`true`})}]}},{key:`name`,label:`Name`,control:{type:`text`,value:``,onChange:E}}]})}var $=()=>decodeURIComponent(location.hash.replace(/^#\/?/,``));function ze(){let[e,t]=(0,S.useState)($);(0,S.useEffect)(()=>{let e=()=>t($());return window.addEventListener(`hashchange`,e),()=>window.removeEventListener(`hashchange`,e)},[]);let n=Y.find(t=>t.path===e);return n?(0,T.jsxs)(`main`,{className:`gallery-one`,"data-route":n.path,children:[(0,T.jsxs)(`nav`,{className:`gallery-nav`,children:[(0,T.jsx)(`a`,{href:`#/`,children:`All`}),(0,T.jsx)(`span`,{children:n.title})]}),n.render()]}):(0,T.jsxs)(`main`,{className:`gallery-index`,"data-route":``,children:[(0,T.jsx)(`h1`,{children:`Components`}),(0,T.jsx)(`ul`,{children:Y.map(e=>(0,T.jsxs)(`li`,{children:[(0,T.jsx)(`a`,{href:`#/${e.path}`,children:e.title}),` `,(0,T.jsx)(`code`,{children:e.path})]},e.path))})]})}(0,Te.createRoot)(document.getElementById(`root`)).render((0,T.jsx)(S.StrictMode,{children:(0,T.jsx)(ze,{})}));