tandem-editor 0.11.2 → 0.13.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.
- package/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +3 -3
- package/CHANGELOG.md +201 -72
- package/README.md +141 -238
- package/dist/channel/index.js +211 -81
- package/dist/channel/index.js.map +1 -1
- package/dist/cli/index.js +749 -170
- package/dist/cli/index.js.map +1 -1
- package/dist/client/assets/CoworkSettings-BOYbyKul.js +3 -0
- package/dist/client/assets/event-CNdo2oXa.js +1 -0
- package/dist/client/assets/index-D8uS4cj7.css +1 -0
- package/dist/client/assets/index-Dm_QtxGQ.js +1 -0
- package/dist/client/assets/index-g-KwmRn9.js +271 -0
- package/dist/client/assets/webview-KiZyy_pC.js +1 -0
- package/dist/client/assets/window-DePn7tLG.js +1 -0
- package/dist/client/fonts/OFL-Hanuman.txt +93 -0
- package/dist/client/fonts/OFL-InterTight.txt +93 -0
- package/dist/client/fonts/OFL-JetBrainsMono.txt +93 -0
- package/dist/client/fonts/OFL-SNPro.txt +93 -0
- package/dist/client/fonts/OFL-Sono.txt +93 -0
- package/dist/client/fonts/OFL-SourceSerif4.txt +93 -0
- package/dist/client/fonts/hanuman-latin.woff2 +0 -0
- package/dist/client/fonts/jetbrains-mono-latin.woff2 +0 -0
- package/dist/client/fonts/sn-pro-latin.woff2 +0 -0
- package/dist/client/fonts/sono-latin.woff2 +0 -0
- package/dist/client/fonts/source-serif-4-latin.woff2 +0 -0
- package/dist/client/index.html +206 -17
- package/dist/client/logo.png +0 -0
- package/dist/monitor/index.js +241 -160
- package/dist/monitor/index.js.map +1 -1
- package/dist/server/index.js +22828 -19659
- package/dist/server/index.js.map +1 -1
- package/package.json +12 -4
- package/sample/welcome.md +6 -6
- package/skills/tandem/SKILL.md +15 -0
- package/dist/client/assets/CoworkSettings-DK3jjdwK.js +0 -3
- package/dist/client/assets/index-CfT503n4.js +0 -297
- package/dist/client/assets/index-DeJe09pn.css +0 -1
- package/dist/client/assets/webview-Ben21ZLJ.js +0 -1
- package/dist/client/assets/window-BxBvHL5k.js +0 -1
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{p as Fa,c as La,o as Oa,s,a as d,i as k,g as a,b as l,d as Ra,e as N,m as Da,u as $,f as Na,h as i,t as f,j as C,T as Aa,k as Ba,l as Z,n as w,q as S,r as _,v as c,w as Wa,x as Ma,C as Ua,y as aa,z as ja,A as Pa,B as ea,D as Ka,E as Va,F as qa,G as Ga}from"./index-g-KwmRn9.js";var Ha=c('<div data-testid="cowork-settings-loading" style="font-size: 12px; color: var(--tandem-fg-subtle);">Loading Cowork status...</div>'),Ja=c(`<div data-testid="cowork-settings-unsupported">Cowork integration is available on Windows in v0.8.0. macOS/Linux support tracked in #316 /
|
|
2
|
+
#317.</div>`),Qa=c('<div data-testid="cowork-settings-undetected"> <a target="_blank" rel="noreferrer" style="color: var(--tandem-accent);">Learn more</a></div>'),Xa=c(`<div data-testid="cowork-enable-confirm" role="dialog" style="border: 1px solid var(--tandem-warning-border); background: var(--tandem-warning-bg); color: var(--tandem-warning-fg-strong); border-radius: var(--tandem-r-3); padding: 8px 10px; font-size: 12px;"><div style="font-weight: 600; margin-bottom: 4px;">Confirm: Enable Cowork</div> <div style="margin-bottom: 8px;">Windows will prompt for admin permission to modify firewall rules. This is expected.
|
|
3
|
+
Tandem will write plugin entries to every detected Cowork workspace.</div> <div style="display: flex; gap: 8px;"><button data-testid="cowork-enable-confirm-btn" type="button">Enable</button> <button data-testid="cowork-enable-cancel-btn" type="button">Cancel</button></div></div>`),Ya=c('<div data-testid="cowork-vethernet-cidr" style="font-size: 12px;">Detected Cowork environment: <code> </code></div>'),Za=c('<div><label data-testid="cowork-lan-ip-override"><input data-testid="cowork-lan-ip-override-checkbox" type="checkbox" style="accent-color: var(--tandem-accent);"/> <span>Use LAN IP instead of host.docker.internal</span></label> <div> </div></div>'),ae=c('<div style="font-size: 12px; color: var(--tandem-fg-subtle);">No Cowork workspaces detected yet.</div>'),ee=c('<a href="mailto:maintainers@tandem.invalid?subject=Cowork%20schema%20drift" style="color: var(--tandem-error-fg-strong); text-decoration: underline;">Report</a>'),te=c('<div><span style="overflow: hidden; text-overflow: ellipsis; white-space: nowrap;"> </span> <span style="font-weight: 600; white-space: nowrap;"> </span> <!></div>'),re=c('<div data-testid="cowork-workspace-table" style="display: flex; flex-direction: column; gap: 4px;"></div>'),oe=c('<label data-testid="cowork-toggle"><input data-testid="cowork-toggle-checkbox" type="checkbox" style="accent-color: var(--tandem-accent);"/> <span>Enable Cowork integration</span></label> <div> </div> <!> <!> <!> <div><div> </div> <!> <button data-testid="cowork-rescan-btn" type="button">Re-scan workspaces</button></div>',1),ne=c('<div data-testid="cowork-settings-error" role="alert"> </div>'),ie=c('<div data-testid="cowork-inline-toast" role="alert"> </div>'),de=c('<div data-testid="cowork-settings" style="display: flex; flex-direction: column; gap: 10px;"><div>Cowork Integration</div> <!> <!> <!></div>');function le(ta,ra){Fa(ra,!0);const oa={success:{bg:"var(--tandem-success-bg)",fg:"var(--tandem-success-fg-strong)",border:"var(--tandem-success-border)"},warning:{bg:"var(--tandem-warning-bg)",fg:"var(--tandem-warning-fg-strong)",border:"var(--tandem-warning-border)"},error:{bg:"var(--tandem-error-bg)",fg:"var(--tandem-error-fg-strong)",border:"var(--tandem-error-border)"}},A="font-size: 11px; font-weight: 600; color: var(--tandem-fg); margin-bottom: 6px; text-transform: uppercase; letter-spacing: 0.5px;",B="font-size: 10px; color: var(--tandem-fg-subtle); margin-top: 4px;",W="border: 1px solid var(--tandem-info-border); background: var(--tandem-info-bg); color: var(--tandem-info-fg-strong); border-radius: var(--tandem-r-3); padding: 8px 10px; font-size: 12px;",M="border: 1px solid var(--tandem-error-border); background: var(--tandem-error-bg); color: var(--tandem-error-fg-strong); border-radius: var(--tandem-r-3); padding: 8px 10px; font-size: 12px;",na="padding: 4px 10px; font-size: 12px; border: 1px solid var(--tandem-accent); border-radius: var(--tandem-r-2); background: var(--tandem-accent); color: var(--tandem-accent-fg); cursor: pointer; font-weight: 600;",ia="padding: 4px 10px; font-size: 12px; border: 1px solid var(--tandem-border-strong); border-radius: var(--tandem-r-2); background: var(--tandem-surface); color: var(--tandem-fg-muted); cursor: pointer;",u=La(()=>!0),{refetch:I}=u;let z=N(null),T=N(null),b=N(!1);const U=Da(Ua);Oa(()=>U.cancel());const F=$(()=>Na(u.status));async function E(t,e){_(b,!0);try{const n=await Wa();await t(n),_(z,null)}catch(n){const x=n instanceof Error?n.message:String(n),y=Ma(x);_(z,`${e}: ${y}`)}finally{_(b,!1)}}async function da(){await E(async t=>{await aa(t,!0),await I(),_(T,null)},"Failed to enable Cowork")}async function sa(){await E(async t=>{await aa(t,!1),await I()},"Failed to disable Cowork")}function la(){U.schedule(()=>{E(async t=>{await ja(t),await I()},"Re-scan failed")})}async function ca(t){await E(async e=>{await qa(e,t),await I()},"Failed to update LAN-IP override")}function va(t){const e=ea(t),n=oa[Ga(e)];return`display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 4px 6px; border: 1px solid ${n.border}; background: ${n.bg}; color: ${n.fg}; border-radius: var(--tandem-r-2); font-size: 11px;`}var j=de(),P=i(j);s(P,A);var K=d(P,2);{var pa=t=>{var e=Ha();l(t,e)},ga=t=>{var e=Ja();s(e,W),l(t,e)},ba=t=>{var e=Qa();s(e,W);var n=i(e);n.nodeValue="Cowork not detected on this system. ";var x=d(n);f(()=>C(x,"href",`${Aa}#cowork`)),l(t,e)},fa=t=>{const e=$(()=>u.status);var n=oe(),x=Ba(n),y=i(x),L=d(x,2);s(L,B);var wa=i(L),q=d(L,2);{var xa=o=>{var v=Xa(),p=d(i(v),4),r=i(p);s(r,na);var g=d(r,2);s(g,ia),f(()=>{r.disabled=a(b),g.disabled=a(b)}),S("click",r,()=>void da()),S("click",g,()=>{_(T,null)}),l(o,v)};k(q,o=>{a(T)==="enable"&&o(xa)})}var G=d(q,2);{var _a=o=>{var v=Ya(),p=d(i(v)),r=i(p);f(()=>w(r,a(e).vethernetCidr)),l(o,v)};k(G,o=>{a(e).vethernetCidr!==null&&o(_a)})}var H=d(G,2);{var ya=o=>{var v=Za(),p=i(v),r=i(p),g=d(p,2);s(g,B);var D=i(g);f(()=>{s(p,`display: flex; align-items: center; gap: 8px; font-size: 12px; cursor: ${a(b)?"wait":"pointer"};`),Z(r,a(e).useLanIpOverride),r.disabled=a(b),w(D,`Fallback: ${a(e).lanIpFallback??""}`)}),S("change",r,m=>void ca(m.target.checked)),l(o,v)};k(H,o=>{a(e).lanIpFallback!==null&&o(ya)})}var ha=d(H,2),O=i(ha);s(O,A);var Ca=i(O),J=d(O,2);{var Sa=o=>{var v=ae();l(o,v)},Ia=o=>{var v=re();Pa(v,21,()=>a(e).workspaces,p=>`${p.workspaceId}/${p.vmId}`,(p,r)=>{const g=$(()=>ea(a(r))),D=$(()=>Ka(a(g)));var m=te(),Q=i(m),za=i(Q),X=d(Q,2),Ta=i(X),Ea=d(X,2);{var $a=h=>{var Y=ee();f(()=>C(Y,"data-testid",`cowork-workspace-report-${a(r).workspaceId}-${a(r).vmId}`)),l(h,Y)};k(Ea,h=>{a(g)==="schemaDrift"&&h($a)})}f(h=>{C(m,"data-testid",`cowork-workspace-row-${a(r).workspaceId}-${a(r).vmId}`),C(m,"data-status",a(g)),C(m,"title",a(r).failureDetail??a(r).path),s(m,h),w(za,`${a(r).workspaceId??""} / ${a(r).vmId??""}`),w(Ta,a(D))},[()=>va(a(r))]),l(p,m)}),l(o,v)};k(J,o=>{a(e).workspaces.length===0?o(Sa):o(Ia,-1)})}var R=d(J,2);s(R,"padding: 4px 10px; font-size: 12px; border: 1px solid var(--tandem-border-strong); border-radius: var(--tandem-r-2); background: var(--tandem-surface); color: var(--tandem-fg-muted); cursor: pointer; margin-top: 8px;"),f(()=>{s(x,`display: flex; align-items: center; gap: 8px; cursor: ${a(b)?"wait":"pointer"}; font-size: 12px; color: var(--tandem-fg); min-height: 24px;`),Z(y,a(e).enabled),y.disabled=a(b),w(wa,`Token provisioned: ${a(e).enabled?"yes":"no"}`),w(Ca,`Workspaces (${a(e).workspaces.length??""})`),R.disabled=a(b)}),S("change",y,o=>{o.target.checked?_(T,"enable"):sa()}),S("click",R,la),l(t,n)};k(K,t=>{u.loading?t(pa):a(F)==="unsupported"?t(ga,1):a(F)==="undetected"?t(ba,2):a(F)==="normal"&&u.status!==null&&t(fa,3)})}var V=d(K,2);{var ua=t=>{var e=ne();s(e,M);var n=i(e);f(()=>w(n,`Failed to load Cowork status: ${u.error??""}`)),l(t,e)};k(V,t=>{u.error&&!u.status&&t(ua)})}var ma=d(V,2);{var ka=t=>{var e=ie();s(e,M);var n=i(e);f(()=>w(n,a(z))),l(t,e)};k(ma,t=>{a(z)&&t(ka)})}l(ta,j),Ra()}Va(["change","click"]);export{le as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{invoke as n,transformCallback as d}from"./core-DhEqZVGG.js";var i;(function(e){e.WINDOW_RESIZED="tauri://resize",e.WINDOW_MOVED="tauri://move",e.WINDOW_CLOSE_REQUESTED="tauri://close-requested",e.WINDOW_DESTROYED="tauri://destroyed",e.WINDOW_FOCUS="tauri://focus",e.WINDOW_BLUR="tauri://blur",e.WINDOW_SCALE_FACTOR_CHANGED="tauri://scale-change",e.WINDOW_THEME_CHANGED="tauri://theme-changed",e.WINDOW_CREATED="tauri://window-created",e.WINDOW_SUSPENDED="tauri://suspended",e.WINDOW_RESUMED="tauri://resumed",e.WEBVIEW_CREATED="tauri://webview-created",e.DRAG_ENTER="tauri://drag-enter",e.DRAG_OVER="tauri://drag-over",e.DRAG_DROP="tauri://drag-drop",e.DRAG_LEAVE="tauri://drag-leave"})(i||(i={}));async function _(e,r){window.__TAURI_EVENT_PLUGIN_INTERNALS__.unregisterListener(e,r),await n("plugin:event|unlisten",{event:e,eventId:r})}async function u(e,r,t){var a;const l=typeof(t==null?void 0:t.target)=="string"?{kind:"AnyLabel",label:t.target}:(a=t==null?void 0:t.target)!==null&&a!==void 0?a:{kind:"Any"};return n("plugin:event|listen",{event:e,target:l,handler:d(r)}).then(D=>async()=>_(e,D))}async function c(e,r,t){return u(e,a=>{_(e,a.id),r(a)},t)}async function o(e,r){await n("plugin:event|emit",{event:e,payload:r})}async function s(e,r,t){await n("plugin:event|emit_to",{target:typeof e=="string"?{kind:"AnyLabel",label:e}:e,event:r,payload:t})}export{i as TauriEvent,o as emit,s as emitTo,u as listen,c as once};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.tandem-banner{display:flex;align-items:center;justify-content:center;gap:var(--tandem-space-3);padding:var(--tandem-space-2) var(--tandem-space-4);font-size:var(--tandem-text-sm);line-height:1.4;text-align:center;border-bottom:1px solid transparent;animation:tandem-banner-slide-in .18s ease-out}.tandem-banner--info{background:var(--tandem-info-bg);color:var(--tandem-info-fg-strong);border-bottom-color:var(--tandem-info-border)}.tandem-banner__icon{display:inline-flex;flex:0 0 auto;color:var(--tandem-info-fg-strong)}.tandem-banner__message{flex:0 1 auto;min-width:0}.tandem-banner__cta{flex:0 0 auto;background:transparent;border:1px solid var(--tandem-info-border);border-radius:var(--tandem-r-2);color:var(--tandem-info-fg-strong);cursor:pointer;font:inherit;font-size:var(--tandem-text-sm);font-weight:500;padding:2px var(--tandem-space-3);transition:background-color .12s ease-out,border-color .12s ease-out}.tandem-banner__cta:hover:not(:disabled){background:color-mix(in srgb,var(--tandem-info) 14%,transparent)}.tandem-banner__cta:focus-visible{outline:2px solid var(--tandem-info-fg-strong);outline-offset:2px}.tandem-banner__cta:disabled{cursor:progress;opacity:.7}.tandem-banner__dismiss{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--tandem-r-2);color:var(--tandem-info-fg-strong);cursor:pointer;padding:var(--tandem-space-1);line-height:0;transition:background-color .12s ease-out}.tandem-banner__dismiss:hover{background:color-mix(in srgb,var(--tandem-info) 14%,transparent)}.tandem-banner__dismiss:focus-visible{outline:2px solid var(--tandem-info-fg-strong);outline-offset:2px}@keyframes tandem-banner-slide-in{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@media(prefers-reduced-motion:reduce){.tandem-banner{animation:none}.tandem-banner__cta,.tandem-banner__dismiss{transition:none}}@media(forced-colors:active){.tandem-banner{border-bottom:1px solid CanvasText;background:Canvas;color:CanvasText}.tandem-banner__cta{border-color:CanvasText;color:CanvasText}.tandem-banner__cta:hover:not(:disabled),.tandem-banner__dismiss:hover{background:Highlight;color:HighlightText}}.frm-scrim.svelte-1hpwfc5{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--tandem-z-modal);display:flex;align-items:flex-start;justify-content:center;padding-top:80px;background:#0006}.frm-dialog.svelte-1hpwfc5{background:var(--tandem-surface);border-radius:var(--tandem-r-4);box-shadow:var(--tandem-shadow-4);width:520px;max-width:calc(100vw - 40px);padding:24px;display:flex;flex-direction:column;gap:var(--tandem-space-3)}.frm-header.svelte-1hpwfc5{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--tandem-space-3)}.frm-title.svelte-1hpwfc5{margin:0;font-size:18px;font-weight:600;color:var(--tandem-fg)}.frm-step.svelte-1hpwfc5{margin-top:4px;font-size:12px;color:var(--tandem-fg-muted)}.frm-close.svelte-1hpwfc5{background:none;border:none;cursor:pointer;font-size:20px;color:var(--tandem-fg-subtle);line-height:1}.frm-form.svelte-1hpwfc5{display:flex;flex-direction:column;gap:var(--tandem-space-3)}.frm-providers.svelte-1hpwfc5{display:flex;flex-direction:column;gap:4px;border:1px solid var(--tandem-border);border-radius:var(--tandem-r-3);padding:var(--tandem-space-2)}.frm-providers.svelte-1hpwfc5>legend:where(.svelte-1hpwfc5){padding:0 4px;font-size:11px;font-weight:600;color:var(--tandem-fg);text-transform:uppercase;letter-spacing:.5px}.frm-provider-row.svelte-1hpwfc5{display:flex;align-items:center;gap:var(--tandem-space-2);font-size:13px;color:var(--tandem-fg);cursor:pointer;padding:4px 6px;border-radius:var(--tandem-r-2)}.frm-provider-row.svelte-1hpwfc5:hover{background:var(--tandem-surface-muted)}.frm-field.svelte-1hpwfc5{display:flex;flex-direction:column;gap:4px}.frm-label.svelte-1hpwfc5{font-size:11px;font-weight:600;color:var(--tandem-fg);text-transform:uppercase;letter-spacing:.5px}.frm-field.svelte-1hpwfc5>input:where(.svelte-1hpwfc5){padding:8px 10px;font-size:13px;color:var(--tandem-fg);background:var(--tandem-surface);border:1px solid var(--tandem-border-strong);border-radius:var(--tandem-r-2)}.frm-mono.svelte-1hpwfc5{font-family:var(--tandem-font-mono)}.frm-error.svelte-1hpwfc5{padding:var(--tandem-space-2) var(--tandem-space-3);border:1px solid var(--tandem-error-border);border-radius:var(--tandem-r-2);background:var(--tandem-error-bg);color:var(--tandem-error-fg-strong);font-size:12px}.frm-actions.svelte-1hpwfc5{display:flex;justify-content:flex-end;gap:var(--tandem-space-2);margin-top:var(--tandem-space-2)}.frm-btn.svelte-1hpwfc5{padding:8px 14px;font-size:13px;font-weight:500;border-radius:var(--tandem-r-2);cursor:pointer;border:1px solid transparent}.frm-btn-secondary.svelte-1hpwfc5{border-color:var(--tandem-border-strong);background:var(--tandem-surface);color:var(--tandem-fg)}.frm-btn-primary.svelte-1hpwfc5{background:var(--tandem-accent);color:var(--tandem-accent-fg)}.frm-btn-primary.svelte-1hpwfc5:disabled{opacity:.5;cursor:not-allowed}.iw-scrim.svelte-bt94ms{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0000008c;display:flex;align-items:center;justify-content:center;z-index:var(--tandem-z-modal, 1000)}.iw-dialog.svelte-bt94ms{background-color:var(--tandem-surface);color:var(--tandem-fg);border:1px solid var(--tandem-border);border-radius:var(--tandem-r-4);box-shadow:var(--tandem-shadow-3);padding:var(--tandem-space-5);width:640px;max-width:95vw;max-height:90vh;overflow-y:auto}.iw-header.svelte-bt94ms{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:var(--tandem-space-4)}.iw-title.svelte-bt94ms{font-size:var(--tandem-text-xl);margin:0}.iw-close.svelte-bt94ms{background:none;border:none;font-size:var(--tandem-text-2xl);cursor:pointer;color:var(--tandem-fg-muted)}.iw-existing.svelte-bt94ms,.iw-pick-list.svelte-bt94ms,.iw-secrets-list.svelte-bt94ms,.iw-review-list.svelte-bt94ms{list-style:none;padding:0;margin:var(--tandem-space-3) 0}.iw-existing.svelte-bt94ms li:where(.svelte-bt94ms),.iw-pick-list.svelte-bt94ms li:where(.svelte-bt94ms),.iw-secrets-list.svelte-bt94ms li:where(.svelte-bt94ms),.iw-review-list.svelte-bt94ms li:where(.svelte-bt94ms){padding:var(--tandem-space-2) 0;border-bottom:1px solid var(--tandem-border-subtle)}.iw-status.svelte-bt94ms{margin-left:var(--tandem-space-2);font-size:var(--tandem-text-2xs);padding:2px 6px;border-radius:var(--tandem-r-pill)}.iw-status-ok.svelte-bt94ms{background:var(--tandem-success-bg);color:var(--tandem-success-fg-strong)}.iw-status-missing.svelte-bt94ms{background:var(--tandem-warning-bg);color:var(--tandem-warning-fg-strong)}.iw-status-malformed.svelte-bt94ms,.iw-status-error.svelte-bt94ms{background:var(--tandem-error-bg);color:var(--tandem-error-fg-strong)}.iw-hint.svelte-bt94ms{display:block;font-size:var(--tandem-text-xs);color:var(--tandem-fg-muted)}.iw-actions.svelte-bt94ms{display:flex;gap:var(--tandem-space-2);justify-content:flex-end;margin-top:var(--tandem-space-4)}.iw-actions.svelte-bt94ms button:where(.svelte-bt94ms){padding:var(--tandem-space-2) var(--tandem-space-3);border-radius:var(--tandem-r-2);border:1px solid var(--tandem-border);background:var(--tandem-surface-elevated);color:var(--tandem-fg);cursor:pointer}.iw-secret-row.svelte-bt94ms{display:flex;flex-direction:column;margin-bottom:var(--tandem-space-1)}.iw-secret-input.svelte-bt94ms{display:flex;gap:var(--tandem-space-2)}.iw-secret-input.svelte-bt94ms input:where(.svelte-bt94ms){flex:1;padding:var(--tandem-space-1) var(--tandem-space-2);border-radius:var(--tandem-r-2);border:1px solid var(--tandem-border)}.iw-stored.svelte-bt94ms{color:var(--tandem-success-fg-strong)}.iw-skipped.svelte-bt94ms{color:var(--tandem-warning-fg-strong)}.iw-warning.svelte-bt94ms{padding:var(--tandem-space-2);background:var(--tandem-warning-bg);color:var(--tandem-warning-fg-strong);border-radius:var(--tandem-r-2);margin:var(--tandem-space-2) 0}.iw-error.svelte-bt94ms{color:var(--tandem-error-fg-strong)}.iw-token-badge.svelte-bt94ms{margin-left:var(--tandem-space-2);font-size:var(--tandem-text-2xs);padding:2px 6px;border-radius:var(--tandem-r-pill);background:var(--tandem-success-bg);color:var(--tandem-success-fg-strong)}.iw-apply-results.svelte-bt94ms{list-style:none;padding:0;margin:var(--tandem-space-3) 0}.iw-apply-result.svelte-bt94ms{display:flex;flex-wrap:wrap;gap:var(--tandem-space-2);padding:var(--tandem-space-2);border-radius:var(--tandem-r-2);margin-bottom:var(--tandem-space-1);border:1px solid var(--tandem-border-subtle)}.iw-apply-result-id.svelte-bt94ms{font-weight:600}.iw-apply-result-status.svelte-bt94ms{font-size:var(--tandem-text-2xs);padding:2px 6px;border-radius:var(--tandem-r-pill);text-transform:uppercase}.iw-apply-result-message.svelte-bt94ms{flex-basis:100%;font-size:var(--tandem-text-xs);color:var(--tandem-fg-muted)}.iw-apply-result-applied.svelte-bt94ms{background:var(--tandem-success-bg);color:var(--tandem-success-fg-strong)}.iw-apply-result-skipped.svelte-bt94ms{background:var(--tandem-warning-bg);color:var(--tandem-warning-fg-strong)}.iw-apply-result-error.svelte-bt94ms{background:var(--tandem-error-bg);color:var(--tandem-error-fg-strong)}@keyframes tandem-typing-bounce{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-4px);opacity:1}}.chat-markdown.svelte-15oag3v h1,.chat-markdown.svelte-15oag3v h2,.chat-markdown.svelte-15oag3v h3{margin:.5em 0 .25em;font-weight:600}.chat-markdown.svelte-15oag3v p{margin:.25em 0}.chat-markdown.svelte-15oag3v code{font-family:monospace;font-size:.9em;background:var(--tandem-surface-muted);padding:1px 4px;border-radius:var(--tandem-r-2)}.chat-markdown.svelte-15oag3v li{margin-left:1.25em;list-style:disc}.chat-markdown.svelte-15oag3v strong{font-weight:600}.chat-markdown.svelte-15oag3v em{font-style:italic}.chat-composer-outer.svelte-15oag3v{padding:var(--tandem-space-2) var(--tandem-space-3);border-top:1px solid var(--tandem-border)}.chat-composer.svelte-15oag3v{display:flex;align-items:stretch;gap:var(--tandem-space-2);padding:var(--tandem-space-2);background:var(--tandem-surface);border:1px solid var(--tandem-border);border-radius:var(--tandem-r-3);transition:border-color .12s ease,box-shadow .12s ease}.chat-composer.svelte-15oag3v:focus-within{border-color:var(--tandem-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--tandem-accent) 20%,transparent)}.chat-composer-input.svelte-15oag3v{flex:1;min-width:0;border:none;outline:none;resize:none;background:transparent;color:var(--tandem-fg);font-family:inherit;font-size:var(--tandem-text-base);padding:0}.chat-composer-send.svelte-15oag3v{align-self:flex-end;padding:var(--tandem-space-1) var(--tandem-space-3);border:none;border-radius:var(--tandem-r-2);background:var(--tandem-surface-sunk);color:var(--tandem-fg-muted);font-size:var(--tandem-text-base);font-weight:500;cursor:default;transition:background .12s ease,color .12s ease}.chat-composer-send.on.svelte-15oag3v{background:var(--tandem-accent);color:var(--tandem-accent-fg);cursor:pointer}@media(forced-colors:active){.annotation-type-badge.svelte-d1dbnh{border:1px solid ButtonText}}.tandem-claude-typing.svelte-3ascys{position:absolute;top:var(--tandem-space-2);right:var(--tandem-space-2);display:inline-flex;align-items:center;gap:3px;padding:2px 6px;border-radius:var(--tandem-r-pill);background:var(--tandem-claude-focus-bg);pointer-events:none}.tandem-claude-typing-dot.svelte-3ascys{width:4px;height:4px;border-radius:50%;background:var(--tandem-author-claude);animation:svelte-3ascys-tandem-claude-typing-pulse 1.2s ease-in-out infinite}.tandem-claude-typing-dot.svelte-3ascys:nth-child(2){animation-delay:.15s}.tandem-claude-typing-dot.svelte-3ascys:nth-child(3){animation-delay:.3s}@keyframes svelte-3ascys-tandem-claude-typing-pulse{0%,80%,to{opacity:.3;transform:scale(.85)}40%{opacity:1;transform:scale(1)}}@media(prefers-reduced-motion:reduce){.tandem-claude-typing-dot.svelte-3ascys{animation:none;opacity:.7}}@media(forced-colors:active){.tandem-claude-typing-dot.svelte-3ascys{outline:1px solid ButtonText;outline-offset:1px}}@keyframes svelte-l26r3u-tandem-annotation-flash{0%{background-color:color-mix(in srgb,var(--tandem-accent) 20%,transparent)}to{background-color:transparent}}.tandem-annotation-flash{animation:svelte-l26r3u-tandem-annotation-flash .8s ease-out}@media(prefers-reduced-motion:reduce){.tandem-annotation-flash{animation:none}}body.tandem-reduce-motion .tandem-annotation-flash{animation:none}.outline-search-pill.svelte-or41wm{display:flex;align-items:center;gap:var(--tandem-space-1);padding:0 var(--tandem-space-2);background:var(--tandem-surface-sunk);border-radius:var(--tandem-r-pill);height:28px}.outline-search-icon.svelte-or41wm{color:var(--tandem-fg-subtle);flex-shrink:0}.outline-search-input.svelte-or41wm{flex:1;min-width:0;border:none;outline:none;background:transparent;color:var(--tandem-fg);font-size:var(--tandem-text-xs);padding:0}.outline-search-input.svelte-or41wm::placeholder{color:var(--tandem-fg-subtle)}.outline-search-pill.svelte-or41wm:focus-within{box-shadow:0 0 0 2px color-mix(in srgb,var(--tandem-accent) 30%,transparent)}summary.svelte-x76129::-webkit-details-marker{display:none}summary.svelte-x76129::marker{content:""}.settings-modal.svelte-bbu5nk{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:min(900px,calc(100vw - 32px));height:min(680px,calc(100vh - 32px));background:var(--tandem-surface);color:var(--tandem-fg);border:1px solid var(--tandem-border);border-radius:var(--tandem-r-4);box-shadow:var(--tandem-shadow-3);z-index:100001;display:grid;grid-template-columns:188px minmax(0,1fr);outline:none;overflow:hidden}.settings-modal-sidebar.svelte-bbu5nk{display:flex;flex-direction:column;gap:var(--tandem-space-4);padding:var(--tandem-space-5) var(--tandem-space-3);border-right:1px solid var(--tandem-border);background:var(--tandem-surface-muted);overflow-y:auto}.settings-modal-sidebar-head.svelte-bbu5nk{display:flex;align-items:baseline;justify-content:space-between;gap:var(--tandem-space-2);padding:0 var(--tandem-space-2)}.settings-modal-sidebar-title.svelte-bbu5nk{font-size:18px;font-weight:700;color:var(--tandem-fg)}.settings-modal-version-chip.svelte-bbu5nk{font-family:var(--tandem-font-mono);font-size:10px;font-weight:500;color:var(--tandem-fg-subtle);padding:1px 6px;border:1px solid var(--tandem-border);border-radius:var(--tandem-r-pill);background:var(--tandem-surface);line-height:1.5}.settings-modal-sidebar-nav.svelte-bbu5nk{display:flex;flex-direction:column;gap:2px;flex:1}.settings-modal-nav-btn.svelte-bbu5nk{width:100%;display:flex;align-items:center;gap:var(--tandem-space-2);min-height:34px;padding:0 var(--tandem-space-3);border:1px solid transparent;border-radius:var(--tandem-r-3);background:transparent;color:var(--tandem-fg-muted);font-size:13px;font-weight:500;text-align:left;cursor:pointer}.settings-modal-nav-btn.svelte-bbu5nk:hover{background:var(--tandem-surface);color:var(--tandem-fg)}.settings-modal-nav-btn.svelte-bbu5nk:focus-visible{outline:2px solid var(--tandem-accent);outline-offset:1px}.settings-modal-nav-btn[data-active=true].svelte-bbu5nk{background:var(--tandem-accent-bg);color:var(--tandem-accent-fg-strong);font-weight:600}.settings-modal-sidebar-foot.svelte-bbu5nk{display:flex;flex-direction:column;gap:4px;padding:var(--tandem-space-3) var(--tandem-space-2) 0;margin-top:auto;border-top:1px solid var(--tandem-border)}.settings-modal-sidebar-link.svelte-bbu5nk{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:1px solid transparent;border-radius:var(--tandem-r-2);color:var(--tandem-fg-muted);font-size:12px;font-weight:500;text-align:left;text-decoration:none;padding:6px var(--tandem-space-2);cursor:pointer}.settings-modal-sidebar-link.svelte-bbu5nk:hover:not(:disabled),.settings-modal-sidebar-link.svelte-bbu5nk:focus-visible{color:var(--tandem-fg);background:var(--tandem-surface);outline:none}.settings-modal-sidebar-link.svelte-bbu5nk:disabled{opacity:.6;cursor:not-allowed}.settings-modal-sidebar-status.svelte-bbu5nk{display:flex;align-items:center;gap:6px;padding:6px var(--tandem-space-2);font-size:11px;color:var(--tandem-fg-subtle)}.settings-modal-status-dot.svelte-bbu5nk{width:8px;height:8px;border-radius:50%;background:var(--tandem-fg-subtle);flex-shrink:0}.settings-modal-status-dot[data-state=connected].svelte-bbu5nk{background:var(--tandem-success)}.settings-modal-status-dot[data-state=reconnecting].svelte-bbu5nk{background:var(--tandem-warning)}.settings-modal-status-dot[data-state=disconnected].svelte-bbu5nk{background:var(--tandem-error)}.settings-modal-status-label.svelte-bbu5nk{font-family:var(--tandem-font-mono);font-size:10px;letter-spacing:.02em}.settings-modal-content.svelte-bbu5nk{display:flex;flex-direction:column;min-width:0;min-height:0}.settings-modal-content-head.svelte-bbu5nk{display:flex;align-items:center;justify-content:space-between;min-height:56px;padding:0 var(--tandem-space-5);border-bottom:1px solid var(--tandem-border);background:var(--tandem-surface)}.settings-modal-content-title.svelte-bbu5nk{font-size:16px;font-weight:700;color:var(--tandem-fg);margin:0}.settings-modal-close.svelte-bbu5nk{background:none;border:1px solid transparent;cursor:pointer;color:var(--tandem-fg-subtle);font-size:18px;line-height:1;padding:4px 8px;min-width:30px;min-height:30px;border-radius:var(--tandem-r-2)}.settings-modal-close.svelte-bbu5nk:hover,.settings-modal-close.svelte-bbu5nk:focus-visible{color:var(--tandem-fg);background:var(--tandem-surface-muted);outline:none}.settings-modal-content-body.svelte-bbu5nk{flex:1;overflow-y:auto;padding:var(--tandem-space-5)}.settings-modal-content-inner.svelte-bbu5nk{display:flex;flex-direction:column;gap:var(--tandem-space-5);max-width:620px}.settings-section-label{font-size:11px;font-weight:600;color:var(--tandem-fg);margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}.settings-modal-narrow-hamburger.svelte-bbu5nk{display:none;align-items:center;justify-content:center;width:28px;height:28px;margin-right:var(--tandem-space-2);padding:0;background:none;border:none;color:var(--tandem-fg-muted);cursor:pointer;border-radius:var(--tandem-r-3)}.settings-modal-narrow-hamburger.svelte-bbu5nk:hover{background:var(--tandem-surface-muted);color:var(--tandem-fg)}.settings-modal-narrow-hamburger.svelte-bbu5nk:focus-visible{outline:2px solid var(--tandem-accent);outline-offset:1px}@media(max-width:860px){.settings-modal.svelte-bbu5nk{grid-template-columns:1fr}.settings-modal-narrow-hamburger.svelte-bbu5nk{display:inline-flex}.settings-modal-sidebar.svelte-bbu5nk{position:absolute;top:0;bottom:0;left:0;width:min(260px,80vw);border-right:1px solid var(--tandem-border);transform:translate(-100%);transition:transform .18s ease;z-index:2;box-shadow:var(--tandem-shadow-3)}.settings-modal[data-narrow-sidebar-open=true].svelte-bbu5nk .settings-modal-sidebar:where(.svelte-bbu5nk){transform:translate(0)}}@media(max-width:640px){.settings-modal-sidebar.svelte-bbu5nk{width:100%;box-shadow:none}}.settings-dialog.svelte-fsutp8{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:min(900px,calc(100vw - 32px));height:min(680px,calc(100vh - 32px));background:var(--tandem-surface);color:var(--tandem-fg);border:1px solid var(--tandem-border);border-radius:var(--tandem-r-4);box-shadow:var(--tandem-shadow-3);z-index:9999;display:grid;grid-template-columns:188px minmax(0,1fr);outline:none;overflow:hidden}.settings-sidebar.svelte-fsutp8{display:flex;flex-direction:column;gap:var(--tandem-space-4);padding:var(--tandem-space-5) var(--tandem-space-3);border-right:1px solid var(--tandem-border);background:var(--tandem-surface-muted);overflow-y:auto}.settings-sidebar-head.svelte-fsutp8{display:flex;align-items:baseline;justify-content:space-between;gap:var(--tandem-space-2);padding:0 var(--tandem-space-2)}.settings-sidebar-title.svelte-fsutp8{font-size:18px;font-weight:700;color:var(--tandem-fg)}.settings-version-chip.svelte-fsutp8{font-family:var(--tandem-font-mono);font-size:10px;font-weight:500;color:var(--tandem-fg-subtle);padding:1px 6px;border:1px solid var(--tandem-border);border-radius:var(--tandem-r-pill);background:var(--tandem-surface);line-height:1.5}.settings-sidebar-nav.svelte-fsutp8{display:flex;flex-direction:column;gap:2px;flex:1}.settings-nav-btn.svelte-fsutp8{width:100%;display:flex;align-items:center;gap:var(--tandem-space-2);min-height:34px;padding:0 var(--tandem-space-3);border:1px solid transparent;border-radius:var(--tandem-r-3);background:transparent;color:var(--tandem-fg-muted);font-size:13px;font-weight:500;text-align:left;cursor:pointer}.settings-nav-btn[data-active=true].svelte-fsutp8{background:var(--tandem-accent-bg);color:var(--tandem-accent-fg-strong);font-weight:600}.settings-sidebar-foot.svelte-fsutp8{display:flex;flex-direction:column;gap:4px;padding:var(--tandem-space-3) var(--tandem-space-2) 0;margin-top:auto;border-top:1px solid var(--tandem-border)}.settings-sidebar-link.svelte-fsutp8{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:1px solid transparent;border-radius:var(--tandem-r-2);color:var(--tandem-fg-muted);font-size:12px;font-weight:500;text-align:left;text-decoration:none;padding:6px var(--tandem-space-2);cursor:pointer}.settings-sidebar-link.svelte-fsutp8:hover:not(:disabled),.settings-sidebar-link.svelte-fsutp8:focus-visible{color:var(--tandem-fg);background:var(--tandem-surface);outline:none}.settings-sidebar-link.svelte-fsutp8:disabled{opacity:.6;cursor:not-allowed}.settings-sidebar-status.svelte-fsutp8{display:flex;align-items:center;gap:6px;padding:6px var(--tandem-space-2);font-size:11px;color:var(--tandem-fg-subtle)}.settings-status-dot.svelte-fsutp8{width:8px;height:8px;border-radius:50%;background:var(--tandem-fg-subtle);flex-shrink:0}.settings-status-dot[data-state=connected].svelte-fsutp8{background:var(--tandem-success)}.settings-status-dot[data-state=reconnecting].svelte-fsutp8{background:var(--tandem-warning)}.settings-status-dot[data-state=disconnected].svelte-fsutp8{background:var(--tandem-error)}.settings-status-label.svelte-fsutp8{font-family:var(--tandem-font-mono);font-size:10px;letter-spacing:.02em}.settings-content.svelte-fsutp8{display:flex;flex-direction:column;min-width:0;min-height:0}@media(max-width:640px){.settings-dialog.svelte-fsutp8{grid-template-columns:1fr;grid-template-rows:minmax(auto,45%) 1fr}.settings-sidebar.svelte-fsutp8{border-right:none;border-bottom:1px solid var(--tandem-border);padding:var(--tandem-space-3)}}@keyframes tandem-toast-slide-in{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}@media(forced-colors:active){.toast-badge.svelte-nsu1aw{border:1px solid ButtonText}}[data-testid=editor-root]:not(.tandem-paged){height:100%}.tandem-editor{color:var(--tandem-fg);font-size:var(--tandem-editor-font-size, 17px);line-height:1.65;min-height:max(500px,100%)}.tandem-editor .tandem-selection-blurred{background-color:var(--tandem-selection-blurred-bg)}.tandem-editor:focus-within .tandem-selection-blurred{background-color:transparent}.tandem-editor h1{font-family:var(--tandem-editor-font-family);font-size:2em;font-weight:600;margin:0 0 .5em;line-height:1.15}.tandem-editor h2{font-size:1.4em;font-weight:600;margin:1.6em 0 .4em;line-height:1.2}.tandem-editor h3{font-size:1.17em;font-weight:600;margin:1.2em 0 .4em}.tandem-editor p{margin:0 0 .9em}.tandem-editor ul,.tandem-editor ol{padding-left:1.5em}.tandem-editor table{border-collapse:collapse;width:100%;margin:1em 0}.tandem-editor td,.tandem-editor th{border:1px solid var(--tandem-border);padding:8px}.tandem-editor th{background:var(--tandem-surface-muted);font-weight:600}.tandem-editor blockquote{border-left:2px solid var(--tandem-border-strong);margin:1em 0;padding:2px 0 2px 1em;color:var(--tandem-fg-muted);font-style:italic}.tandem-editor code{font-family:var(--tandem-font-mono);font-size:.88em;background:var(--tandem-surface-sunk);border:1px solid var(--tandem-border);border-radius:3px;padding:1px 5px}.collaboration-cursor__caret{position:relative;border-left:2px solid;border-right:none;margin-left:-1px}.collaboration-cursor__label{position:absolute;top:-1.4em;left:-1px;font-size:12px;white-space:nowrap;padding:0 4px;border-radius:3px 3px 3px 0;color:var(--tandem-accent-fg)}.ProseMirror-focused{outline:none}.ProseMirror p.is-empty{position:relative}.ProseMirror p.is-empty:before{content:attr(data-placeholder);color:var(--tandem-fg-subtle);pointer-events:none;position:absolute;left:0;top:0;white-space:nowrap}.tandem-find-match{background:var(--tandem-highlight-yellow);border-radius:2px}.tandem-find-active{background:var(--tandem-warning-bg);outline:1px solid var(--tandem-warning);border-radius:2px}.tandem-highlight{cursor:pointer}.tandem-highlight:hover{filter:brightness(.95)}.tandem-comment{cursor:pointer}.tandem-comment:hover{border-bottom-style:solid}.tandem-suggestion,.tandem-note{cursor:pointer}.tandem-note:hover{border-bottom-style:solid}.tandem-editor .ProseMirror p,.tandem-editor .ProseMirror h1,.tandem-editor .ProseMirror h2,.tandem-editor .ProseMirror h3,.tandem-editor .ProseMirror h4,.tandem-editor .ProseMirror h5,.tandem-editor .ProseMirror h6{position:relative}.ProseMirror [data-tandem-author]{transition:color .2s,background .2s;border-radius:2px}.ProseMirror [data-tandem-author=user]{color:color-mix(in srgb,var(--tandem-author-user) 58%,var(--tandem-fg))}.ProseMirror [data-tandem-author=claude]{color:color-mix(in srgb,var(--tandem-author-claude) 64%,var(--tandem-fg))}.tandem-claude-focus{position:relative}.tandem-claude-focus:before{content:"";position:absolute;left:-24px;top:0;bottom:0;width:3px;background:var(--tandem-accent);border-radius:2px;animation:tandem-gutter-pulse 2s ease-in-out infinite}@keyframes tandem-gutter-pulse{0%,to{opacity:.4}50%{opacity:1}}.tandem-claude-cursor{position:relative;display:inline;border-left:2px solid var(--tandem-author-claude);margin-left:-1px;z-index:10;animation:tandem-claude-blink 1.2s step-end infinite}.tandem-claude-cursor-idle{opacity:.3;animation:none}.tandem-claude-cursor-label{position:absolute;top:-1.4em;left:-1px;font-size:11px;font-weight:500;white-space:nowrap;padding:0 4px;border-radius:3px 3px 3px 0;background:var(--tandem-author-claude);color:var(--tandem-accent-fg);pointer-events:none;z-index:11}@keyframes tandem-claude-blink{0%,to{opacity:1}50%{opacity:0}}.tandem-paged{background:var(--tandem-page-bg);padding:var(--tandem-space-6) var(--tandem-space-4);min-height:100%;box-sizing:border-box}.tandem-paged .tandem-editor{position:relative;background:var(--tandem-page-paper);box-shadow:var(--tandem-page-shadow);max-width:816px;margin:0 auto;padding:var(--tandem-space-7) var(--tandem-space-6);box-sizing:border-box;min-height:1056px}.tandem-editor [data-tandem-author-block]:before{content:"";position:absolute;left:-14px;top:.45em;bottom:.45em;width:2px;border-radius:1px;transition:background .2s}.tandem-editor [data-tandem-author-block=user]:before{background:var(--tandem-author-user);opacity:.55}.tandem-editor [data-tandem-author-block=claude]:before{background:var(--tandem-author-claude);opacity:.55}.tandem-editor .tandem-heading-chevron{display:inline-flex;align-items:center;justify-content:center;width:1.1em;height:1.1em;margin-left:-1.3em;margin-right:.2em;padding:0;border:none;background:transparent;color:var(--tandem-fg-muted);cursor:pointer;font-size:.65em;line-height:1;opacity:0;transition:opacity .12s ease-in-out,color .12s ease-in-out;-webkit-user-select:none;user-select:none;vertical-align:middle}.tandem-editor h1:hover .tandem-heading-chevron,.tandem-editor h2:hover .tandem-heading-chevron,.tandem-editor h3:hover .tandem-heading-chevron,.tandem-editor h4:hover .tandem-heading-chevron,.tandem-editor h5:hover .tandem-heading-chevron,.tandem-editor h6:hover .tandem-heading-chevron,.tandem-editor .tandem-heading-chevron:focus-visible,.tandem-editor .tandem-heading-chevron[data-collapsed=true]{opacity:1}.tandem-editor .tandem-heading-chevron:hover{color:var(--tandem-fg)}.tandem-editor .tandem-heading-chevron:focus-visible{outline:2px solid var(--tandem-accent-border);outline-offset:2px;border-radius:var(--tandem-r-1)}.tandem-editor{font-family:var(--tandem-editor-font-family)}.margin-bubble.svelte-lzz9jv:hover [data-testid^=annotation-card-]{box-shadow:0 0 8px 2px var(--tandem-accent-border)!important}.margin-bubble.svelte-lzz9jv [data-testid^=edit-btn-]{opacity:.55;transition:opacity .14s ease}.margin-bubble.svelte-lzz9jv:hover [data-testid^=edit-btn-]{opacity:1}.peek-strip.svelte-1mwvi22{position:absolute;top:var(--tandem-rail-top-clearance, 0);bottom:var(--tandem-status-clearance-total, 60px);width:14px;padding:0;border:1px solid var(--tandem-border);background:var(--tandem-surface-muted);color:var(--tandem-fg-faint);cursor:pointer;z-index:var(--tandem-z-sticky);box-shadow:var(--tandem-shadow-1);display:flex;align-items:center;justify-content:center;transition:width .16s ease,box-shadow .16s ease}.peek-strip-left.svelte-1mwvi22{left:0;border-left:none;border-radius:0 var(--tandem-rail-inner-radius, 14px) var(--tandem-rail-inner-radius, 14px) 0}.peek-strip-right.svelte-1mwvi22{right:0;border-right:none;border-radius:var(--tandem-rail-inner-radius, 14px) 0 0 var(--tandem-rail-inner-radius, 14px)}.peek-chevron.svelte-1mwvi22{font-size:var(--tandem-text-sm);line-height:1;opacity:.7;transition:opacity .16s ease}.peek-strip.svelte-1mwvi22:hover,.peek-strip.svelte-1mwvi22:focus-visible{width:20px;box-shadow:var(--tandem-shadow-3);outline:none}.peek-strip.svelte-1mwvi22:hover .peek-chevron:where(.svelte-1mwvi22),.peek-strip.svelte-1mwvi22:focus-visible .peek-chevron:where(.svelte-1mwvi22){opacity:1}.peek-strip.svelte-1mwvi22:focus-visible{box-shadow:var(--tandem-shadow-3),inset 0 0 0 2px var(--tandem-accent)}.mode-toggle.svelte-14q5edy{display:inline-flex;padding:3px;background:var(--tandem-surface-sunk);border:1px solid var(--tandem-border);border-radius:var(--tandem-r-pill);font-size:12px;gap:0}.mode-toggle.svelte-14q5edy button:where(.svelte-14q5edy){padding:4px 12px;border-radius:var(--tandem-r-pill);color:var(--tandem-fg-muted);background:transparent;border:none;cursor:pointer;font:inherit;font-weight:500;line-height:1;transition:background .14s ease,color .14s ease}.mode-toggle.svelte-14q5edy button:where(.svelte-14q5edy):hover:not(.on){color:var(--tandem-fg)}.mode-toggle.svelte-14q5edy button.on:where(.svelte-14q5edy){background:var(--tandem-surface);color:var(--tandem-fg);box-shadow:0 1px 2px #0000000f}@media(forced-colors:active){.mode-toggle.svelte-14q5edy button[aria-pressed=true]:where(.svelte-14q5edy){outline:2px solid ButtonText}}.title-bar.svelte-12l7ydf{display:flex;align-items:center;padding:14px 14px 4px;box-sizing:border-box;background:transparent;-webkit-user-select:none;user-select:none;flex-shrink:0}.title-bar-left.svelte-12l7ydf{position:relative;display:flex;align-items:center;flex-shrink:0}.title-bar-spacer.svelte-12l7ydf{flex:1 1 0;min-width:var(--tandem-space-2);align-self:stretch}.title-bar-spacer-fixed.svelte-12l7ydf{flex:0 0 var(--tandem-space-3)}.title-bar-spacer-sm.svelte-12l7ydf{flex:0 0 var(--tandem-space-4)}.title-bar-center.svelte-12l7ydf{display:flex;align-items:center;flex:0 1 auto;min-width:0;max-width:60%;position:relative;z-index:99999}.brand-btn.svelte-12l7ydf{position:relative;display:inline-grid;place-items:center;width:32px;height:32px;padding:0;margin:-6px 0 0 -6px;border:none;background:transparent;color:var(--tandem-fg);cursor:pointer;transition:transform .14s ease;-webkit-tap-highlight-color:transparent}.brand-btn.svelte-12l7ydf:hover{transform:scale(1.08)}.brand-btn.svelte-12l7ydf:focus-visible{outline:2px solid var(--tandem-accent);outline-offset:2px;border-radius:var(--tandem-r-2)}.brand-btn.svelte-12l7ydf:active{transform:scale(.96)}.brand-mark.svelte-12l7ydf{display:block;flex-shrink:0}.brand-menu.svelte-12l7ydf{position:absolute;top:calc(100% + 6px);left:0;min-width:220px;padding:var(--tandem-space-1);border-radius:var(--tandem-r-3);display:flex;flex-direction:column;gap:2px;z-index:var(--tandem-z-modal)}.brand-menu-item.svelte-12l7ydf{display:flex;align-items:center;justify-content:space-between;gap:var(--tandem-space-3);width:100%;padding:6px 10px;border:none;background:transparent;color:var(--tandem-fg);font:inherit;font-size:var(--tandem-text-sm);text-align:left;cursor:pointer;border-radius:var(--tandem-r-2)}.brand-menu-item.svelte-12l7ydf:hover,.brand-menu-item.svelte-12l7ydf:focus-visible{background:var(--tandem-surface-sunk);outline:none}.brand-menu-item[aria-checked=true].svelte-12l7ydf{color:var(--tandem-accent)}.brand-menu-check.svelte-12l7ydf{display:inline-block;width:14px;margin-right:var(--tandem-space-2);color:var(--tandem-fg-subtle);font-size:var(--tandem-text-xs)}.brand-menu-item[aria-checked=true].svelte-12l7ydf .brand-menu-check:where(.svelte-12l7ydf){color:var(--tandem-accent)}.brand-menu-kbd.svelte-12l7ydf{color:var(--tandem-fg-subtle);font-family:var(--tandem-font-mono);font-size:var(--tandem-text-2xs)}.brand-menu-divider.svelte-12l7ydf{height:1px;background:var(--tandem-border);margin:4px 6px}.brand-menu-heading.svelte-12l7ydf{padding:6px 10px 2px;color:var(--tandem-fg-subtle);font-size:var(--tandem-text-2xs);text-transform:uppercase;letter-spacing:.04em}.title-bar-actions.svelte-12l7ydf{display:flex;align-items:center;gap:var(--tandem-space-2);padding:0 var(--tandem-space-2);flex-shrink:0;position:relative;z-index:99999}.status-dot.svelte-12l7ydf{width:8px;height:8px;border-radius:var(--tandem-r-circle);background:var(--tandem-author-claude);display:inline-block;flex-shrink:0;box-shadow:0 0 0 2px color-mix(in srgb,var(--tandem-author-claude) 18%,transparent)}.icon-btn.svelte-12l7ydf{display:inline-grid;place-items:center;width:30px;height:30px;border:1px solid transparent;border-radius:var(--tandem-r-pill);background:var(--tandem-surface-sunk);color:var(--tandem-fg-muted);cursor:pointer;padding:0;transition:background .1s,color .1s,border-color .1s}.icon-btn.svelte-12l7ydf:hover{background:var(--tandem-surface);color:var(--tandem-fg)}.icon-btn.svelte-12l7ydf:focus-visible{outline:2px solid var(--tandem-accent);outline-offset:1px}.icon-btn.active.svelte-12l7ydf{background:var(--tandem-accent-bg);color:var(--tandem-accent)}.model-chip.svelte-12l7ydf{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 8px;margin:0 4px;background:var(--tandem-surface);border:1px solid var(--tandem-border);border-radius:var(--tandem-r-pill);color:var(--tandem-fg-muted);font-size:11px;font-weight:500;cursor:pointer;max-width:160px}.model-chip.svelte-12l7ydf:hover{background:var(--tandem-surface-muted);color:var(--tandem-fg)}.model-chip-dot.svelte-12l7ydf{width:6px;height:6px;border-radius:var(--tandem-r-circle);background:var(--tandem-accent);flex-shrink:0}.model-chip-label.svelte-12l7ydf{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.titlebar-settings-dot.svelte-12l7ydf{position:absolute;top:3px;right:3px;width:7px;height:7px;border-radius:var(--tandem-r-circle);background:var(--tandem-info);box-shadow:0 0 0 2px var(--tandem-surface-muted);pointer-events:none}@media(forced-colors:active){.titlebar-settings-dot.svelte-12l7ydf{background:Highlight;box-shadow:0 0 0 2px Canvas}}.title-bar-controls.svelte-12l7ydf{display:inline-flex;align-items:center;height:30px;margin-top:-14px;margin-right:-14px;margin-left:6px;align-self:flex-start;flex-shrink:0;position:relative;z-index:99999}.title-bar-btn.svelte-12l7ydf{display:flex;align-items:center;justify-content:center;width:36px;height:30px;border:none;background:transparent;color:var(--tandem-fg-muted);cursor:pointer;padding:0;transition:background .1s,color .1s}.title-bar-btn.svelte-12l7ydf:hover:not(:disabled){background:color-mix(in srgb,var(--tandem-fg) 6%,transparent);color:var(--tandem-fg)}.title-bar-btn.svelte-12l7ydf:focus-visible{outline:2px solid var(--tandem-accent);outline-offset:-2px}.title-bar-btn.svelte-12l7ydf:disabled{opacity:.4;cursor:not-allowed}.title-bar-close.svelte-12l7ydf:hover:not(:disabled){background:var(--tandem-error);color:var(--tandem-error-fg)}@media(forced-colors:active){.title-bar.svelte-12l7ydf{background:ButtonFace;border-bottom:1px solid ButtonText;forced-color-adjust:auto}.icon-btn.svelte-12l7ydf,.title-bar-btn.svelte-12l7ydf{background:ButtonFace;color:ButtonText;border:1px solid ButtonText}.icon-btn.svelte-12l7ydf:hover:not(:disabled),.title-bar-btn.svelte-12l7ydf:hover:not(:disabled){background:Highlight;color:HighlightText}.title-bar-close.svelte-12l7ydf:hover:not(:disabled){background:Highlight;color:HighlightText}}@keyframes tandem-status-pulse{0%,to{opacity:.6}50%{opacity:1}}@keyframes tandem-reconnect-pulse{0%,to{opacity:1}50%{opacity:.3}}.tandem-status-pill.svelte-1esxubl{opacity:.4;transition:opacity .18s ease}.tandem-status-pill.svelte-1esxubl:hover,.tandem-status-pill.svelte-1esxubl:focus-within{opacity:1}@media(forced-colors:active){.status-dot.svelte-1esxubl,.claude-dot.svelte-1esxubl{outline:1px solid ButtonText;outline-offset:1px}}.claude-working-pill.svelte-1esxubl{display:inline-flex;align-items:center;gap:2px;padding:2px 8px;border-radius:var(--tandem-r-pill);background:var(--tandem-claude-focus-bg);color:var(--tandem-fg);font-size:var(--tandem-text-xs)}.claude-working-dot.svelte-1esxubl{width:4px;height:4px;border-radius:50%;background:var(--tandem-author-claude);display:inline-block;animation:svelte-1esxubl-tandem-claude-working-pulse 1.2s ease-in-out infinite}.claude-working-dot.svelte-1esxubl:nth-child(2){animation-delay:.15s}.claude-working-dot.svelte-1esxubl:nth-child(3){animation-delay:.3s}@keyframes svelte-1esxubl-tandem-claude-working-pulse{0%,80%,to{opacity:.3;transform:scale(.85)}40%{opacity:1;transform:scale(1)}}@media(prefers-reduced-motion:reduce){.claude-working-dot.svelte-1esxubl{animation:none;opacity:.7}}@media(forced-colors:active){.claude-working-dot.svelte-1esxubl{outline:1px solid ButtonText;outline-offset:1px}}.new-tab-menu.svelte-7c4il0{position:fixed;top:0;left:0;min-width:260px;max-width:400px;background:var(--tandem-surface);border:1px solid var(--tandem-border);border-radius:var(--tandem-r-4);box-shadow:var(--tandem-shadow-4);z-index:var(--tandem-z-dropdown);overflow:hidden}.new-tab-menu-header.svelte-7c4il0{padding:6px 12px 4px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--tandem-fg-subtle)}.new-tab-menu-item.svelte-7c4il0{display:flex;align-items:center;gap:8px;width:100%;padding:6px 12px;border:none;background:transparent;cursor:pointer;text-align:left;color:var(--tandem-fg);font-size:13px}.new-tab-menu-item.svelte-7c4il0:hover{background:var(--tandem-surface-muted)}.new-tab-menu-action.svelte-7c4il0{color:var(--tandem-fg-muted)}.new-tab-menu-badge.svelte-7c4il0{font-size:10px;font-weight:700;font-family:var(--tandem-font-mono);color:var(--tandem-fg-muted);min-width:14px;text-align:center}.new-tab-menu-label.svelte-7c4il0{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.new-tab-menu-divider.svelte-7c4il0{height:1px;background:var(--tandem-border);margin:4px 0}.tab-ro-badge.svelte-1btt0ja{font-family:var(--tandem-font-mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--tandem-fg-faint);background:color-mix(in srgb,var(--tandem-fg) 5%,transparent);padding:1px 5px;border-radius:var(--tandem-r-1);flex-shrink:0}.tab-scroll-hide{scrollbar-width:none;-ms-overflow-style:none}.tab-scroll-hide::-webkit-scrollbar{display:none}.tab-scroll-mask.has-overflow{mask-image:linear-gradient(90deg,transparent 0,#000 22px,#000 calc(100% - 22px),transparent 100%);-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 22px,#000 calc(100% - 22px),transparent 100%)}.tab-scroll-mask.overflow-right{mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 22px),transparent 100%);-webkit-mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 22px),transparent 100%)}.tab-scroll-mask.overflow-left{mask-image:linear-gradient(90deg,transparent 0,#000 22px,#000 100%);-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 22px,#000 100%)}.tab-add-pill.svelte-urrc8n{display:inline-grid;place-items:center;width:28px;height:28px;margin-left:var(--tandem-space-2);border-radius:var(--tandem-r-circle);color:var(--tandem-fg-subtle);font-size:16px;line-height:1;cursor:pointer;flex-shrink:0;padding:0;transition:color .15s,border-color .15s,background .15s}.tab-add-pill.svelte-urrc8n:hover{color:var(--tandem-accent);border-color:var(--tandem-accent-border)}.tab-add-pill.svelte-urrc8n:focus-visible{outline:2px solid var(--tandem-accent);outline-offset:1px}.rail-tabs-row.svelte-y74n0s{display:flex;align-items:center;gap:var(--tandem-space-2);margin:12px 12px 10px;flex-shrink:0}.rail-tabs-track.svelte-y74n0s{display:flex;flex:1;gap:3px;padding:4px;background:var(--tandem-surface-sunk);border-radius:var(--tandem-r-pill);font-size:11.5px}.rail-tab.svelte-y74n0s{flex:1;text-align:center;padding:5px 8px;border:none;border-radius:var(--tandem-r-pill);background:transparent;color:var(--tandem-fg-subtle);font:inherit;font-weight:500;cursor:pointer;position:relative;white-space:nowrap;transition:background .14s ease,color .14s ease}.rail-tab.svelte-y74n0s:hover:not(.on){color:var(--tandem-fg)}.rail-tab.on.svelte-y74n0s{background:var(--tandem-surface);color:var(--tandem-fg);box-shadow:0 1px 2px #0000000d}.rail-tab-badge.svelte-y74n0s{position:absolute;top:2px;right:2px;background:var(--tandem-error);color:var(--tandem-error-fg);font-size:9px;width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700}.panel-edge-collapse.svelte-y74n0s{position:absolute;width:8px;top:0;bottom:0;cursor:pointer;z-index:1;background:transparent;transition:background .14s ease}.panel-edge-collapse-left.svelte-y74n0s{left:0}.panel-edge-collapse-right.svelte-y74n0s{right:0;top:40px}.panel-edge-collapse.svelte-y74n0s:hover{background:var(--tandem-accent-bg)}.panel-edge-collapse.svelte-y74n0s:focus-visible{background:var(--tandem-accent-bg);outline:2px solid var(--tandem-accent);outline-offset:-2px}.error-boundary.svelte-1bcl6yi{padding:var(--tandem-space-6);background:var(--tandem-error-bg);border:1px solid var(--tandem-error-border);border-radius:var(--tandem-r-2);color:var(--tandem-fg)}.error-boundary.svelte-1bcl6yi h2:where(.svelte-1bcl6yi){color:var(--tandem-error-fg-strong)}.message.svelte-1bcl6yi{color:var(--tandem-fg-muted)}.detail.svelte-1bcl6yi{background:var(--tandem-surface-muted);padding:var(--tandem-space-4);border-radius:var(--tandem-r-2);font-size:var(--tandem-text-sm);overflow:auto;max-height:200px;color:var(--tandem-fg);border:1px solid var(--tandem-border);margin:0 0 var(--tandem-space-4)}.btn.svelte-1bcl6yi{padding:var(--tandem-space-2) var(--tandem-space-4);border-radius:var(--tandem-r-2);cursor:pointer}.btn-primary.svelte-1bcl6yi{margin-right:var(--tandem-space-2);border:1px solid var(--tandem-accent);background:var(--tandem-accent);color:var(--tandem-accent-fg)}.btn-secondary.svelte-1bcl6yi{border:1px solid var(--tandem-border-strong);background:var(--tandem-surface);color:var(--tandem-fg)}.tandem-scroll-fade-y,.tandem-scroll-fade-x{--tandem-fade-edge: 24px}@supports (mask-image: linear-gradient(#000,#000)) or (-webkit-mask-image: linear-gradient(#000,#000)){.tandem-scroll-fade-y,.tandem-scroll-fade-x{scrollbar-width:none;-ms-overflow-style:none}.tandem-scroll-fade-y::-webkit-scrollbar,.tandem-scroll-fade-x::-webkit-scrollbar{display:none}}.tandem-scroll-fade-y[data-overflow-top=true][data-overflow-bottom=true]{mask-image:linear-gradient(to bottom,transparent 0,#000 var(--tandem-fade-edge),#000 calc(100% - var(--tandem-fade-edge)),transparent 100%);-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 var(--tandem-fade-edge),#000 calc(100% - var(--tandem-fade-edge)),transparent 100%)}.tandem-scroll-fade-y[data-overflow-top=true]:not([data-overflow-bottom=true]){mask-image:linear-gradient(to bottom,transparent 0,#000 var(--tandem-fade-edge),#000 100%);-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 var(--tandem-fade-edge),#000 100%)}.tandem-scroll-fade-y[data-overflow-bottom=true]:not([data-overflow-top=true]){mask-image:linear-gradient(to bottom,#000 0,#000 calc(100% - var(--tandem-fade-edge)),transparent 100%);-webkit-mask-image:linear-gradient(to bottom,#000 0,#000 calc(100% - var(--tandem-fade-edge)),transparent 100%)}.tandem-scroll-fade-x[data-overflow-left=true][data-overflow-right=true]{mask-image:linear-gradient(to right,transparent 0,#000 var(--tandem-fade-edge),#000 calc(100% - var(--tandem-fade-edge)),transparent 100%);-webkit-mask-image:linear-gradient(to right,transparent 0,#000 var(--tandem-fade-edge),#000 calc(100% - var(--tandem-fade-edge)),transparent 100%)}.tandem-scroll-fade-x[data-overflow-left=true]:not([data-overflow-right=true]){mask-image:linear-gradient(to right,transparent 0,#000 var(--tandem-fade-edge),#000 100%);-webkit-mask-image:linear-gradient(to right,transparent 0,#000 var(--tandem-fade-edge),#000 100%)}.tandem-scroll-fade-x[data-overflow-right=true]:not([data-overflow-left=true]){mask-image:linear-gradient(to right,#000 0,#000 calc(100% - var(--tandem-fade-edge)),transparent 100%);-webkit-mask-image:linear-gradient(to right,#000 0,#000 calc(100% - var(--tandem-fade-edge)),transparent 100%)}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{invoke as r}from"./core-DhEqZVGG.js";function f(n){if(n!==void 0){if(typeof n=="string")return n;if("ok"in n&&"cancel"in n)return{OkCancelCustom:[n.ok,n.cancel]};if("yes"in n&&"no"in n&&"cancel"in n)return{YesNoCancelCustom:[n.yes,n.no,n.cancel]};if("ok"in n)return{OkCustom:n.ok}}}async function u(n={}){return typeof n=="object"&&Object.freeze(n),await r("plugin:dialog|open",{options:n})}async function t(n={}){return typeof n=="object"&&Object.freeze(n),await r("plugin:dialog|save",{options:n})}async function i(n,a){return await r("plugin:dialog|message",{message:n,title:a==null?void 0:a.title,kind:a==null?void 0:a.kind,buttons:f(a==null?void 0:a.buttons)})}async function d(n,a){const e=typeof a=="string"?{title:a}:a;return e&&!e.buttons&&e.okLabel&&(e.buttons={ok:e.okLabel}),i(n,e)}async function y(n,a){const e=typeof a=="string"?{title:a}:a,l=(e==null?void 0:e.okLabel)||(e==null?void 0:e.cancelLabel),c=(e==null?void 0:e.okLabel)??"Yes";return await i(n,{title:e==null?void 0:e.title,kind:e==null?void 0:e.kind,buttons:l?{ok:c,cancel:e.cancelLabel??"No"}:"YesNo"})===c}async function g(n,a){const e=typeof a=="string"?{title:a}:a,l=(e==null?void 0:e.okLabel)||(e==null?void 0:e.cancelLabel),c=(e==null?void 0:e.okLabel)??"Ok";return await i(n,{title:e==null?void 0:e.title,kind:e==null?void 0:e.kind,buttons:l?{ok:c,cancel:e.cancelLabel??"Cancel"}:"OkCancel"})===c}export{y as ask,g as confirm,d as message,u as open,t as save};
|