use-chisel 0.1.12 → 0.1.13

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.
@@ -2,4 +2,4 @@
2
2
  `;var ue=`.feedback-shell.chisel-review .comment-thread[data-native-ui=true],.feedback-shell.chisel-review .comment-box-native{border:0;border-radius:16px;background:var(--chisel-ui-surface);box-shadow:var(--chisel-ui-popover-shadow)}.feedback-shell.chisel-review .comment-thread[data-expanded=false]{border-radius:16px 16px 16px 0}.chisel-review-thread-content,.review-thread,.review-comment-content{width:100%;min-width:0}.review-capture-context{margin:4px 12px 8px;font-size:12px;line-height:18px;color:var(--chisel-ui-muted);overflow-wrap:anywhere}.review-comment,.feedback-shell.chisel-review .chisel-review-message{display:flex;align-items:flex-start;gap:12px;padding:12px 20px}.review-comment-content,.chisel-review-message-content{flex:1;min-width:0}.review-comment-avatar{display:grid;place-items:center;flex-shrink:0;width:28px;height:28px;border-radius:50%;overflow:hidden;background:var(--chisel-ui-avatar);color:var(--chisel-ui-avatar-text);font-size:12px}.review-comment-avatar img{width:100%;height:100%;object-fit:cover}.review-comment-header,.chisel-review-byline{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;line-height:20px;margin-bottom:4px}.review-comment-author{font-size:13px;font-weight:500;overflow-wrap:anywhere}.review-comment-time{font-size:12px;color:var(--chisel-ui-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.review-comment-header{position:relative;padding-right:32px}.review-comment-edit{position:absolute;right:-8px;top:-10px;display:grid;place-items:center;width:40px;height:40px;border:0;border-radius:8px;background:transparent;color:var(--chisel-ui-muted);opacity:0;transition:opacity .12s,background .12s}.review-comment:hover .review-comment-edit,.review-comment:focus-within .review-comment-edit,.review-comment-edit:focus-visible{opacity:1}.review-comment-edit:hover{background:var(--chisel-ui-hover);color:var(--chisel-ui-text)}@media(hover:none){.review-comment-edit{opacity:1}}.review-inline-edit{border:1px solid var(--chisel-ui-border);border-radius:10px;padding:8px}.review-inline-edit-actions{display:flex;justify-content:flex-end;gap:6px;margin-top:8px}.review-inline-edit-actions button{min-height:40px;padding:0 10px;border:0;border-radius:8px;background:transparent;color:var(--chisel-ui-text)}.review-inline-edit-actions button:last-child{background:var(--chisel-ui-action);color:var(--chisel-ui-action-text)}.review-inline-edit-actions button:not(:last-child):hover{background:var(--chisel-ui-hover)}.review-inline-edit-actions button:disabled{opacity:.45}@media(pointer:coarse){.review-inline-edit-actions button{min-height:44px}}.review-comment-body,.chisel-rich-body{font-size:14px;line-height:21px;white-space:pre-wrap;overflow-wrap:anywhere}.review-comment-body p{margin:0;min-height:21px}.review-comment-body p+p{margin-top:8px}.review-comment-body a{color:var(--chisel-ui-accent-text);text-decoration:underline;text-underline-offset:3px}.review-comment-body code{font:12px/1.5 ui-monospace,SFMono-Regular,monospace;background:var(--chisel-ui-inset);border-radius:4px;padding:2px 4px}.review-composer{margin:0}.feedback-shell.chisel-review .chisel-review-reply{display:flex;align-items:flex-start;gap:12px;border:0;padding:20px}.feedback-shell.chisel-review .chisel-review-reply[hidden]{display:none}.feedback-shell.chisel-review .feedback-reply-avatar{width:28px;height:28px;margin-top:8px}.feedback-shell.chisel-review .chisel-reply-field{position:relative;flex:1;min-width:0;min-height:48px;border:0;border-radius:12px;background:var(--chisel-ui-raised)}.review-composer-editor{min-width:0;min-height:40px;max-height:min(180px,30dvh);overflow:auto;padding:10px 12px;font-size:14px;line-height:21px;overflow-wrap:anywhere;outline:none}.review-composer-editor p{margin:0}.review-composer-editor>p,.chisel-rich-editor>p{position:relative}.feedback-shell.chisel-review .chisel-review-reply :is(.review-composer-editor,.chisel-rich-editor){padding-right:56px}.feedback-shell.chisel-review .chisel-reply-submit{position:absolute;right:4px;bottom:4px;display:grid;place-items:center;width:40px;height:40px;min-height:40px;padding:0;border:0;border-radius:8px;background:var(--chisel-ui-action);color:var(--chisel-ui-action-text)}.chisel-reply-submit:disabled{opacity:.35}.feedback-shell.chisel-review .comment-box-native>form{display:flex;flex-direction:column;flex:1;min-height:0;height:100%}.feedback-shell.chisel-review .comment-box-native .comment-box-prompt{align-items:flex-start;padding:8px;gap:0}.feedback-shell.chisel-review .comment-box-native .comment-box-footer{border:0;background:var(--chisel-ui-surface)}.feedback-shell.chisel-review .comment-box-native .comment-box-element{background:var(--chisel-ui-raised)}.feedback-shell.chisel-review .comment-box-native .comment-box-cancel{border:0;border-radius:8px;background:transparent}.feedback-shell.chisel-review .comment-box-native .comment-box-cancel:hover{background:var(--chisel-ui-hover)}.feedback-shell.chisel-review .comment-box-native .comment-box-submit{border-radius:8px}.chisel-composer-input{flex:1;min-width:0;max-height:min(320px,42dvh);overflow:auto}.chisel-attachment-controls{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:0 8px;color:var(--chisel-ui-secondary);font-size:12px;line-height:18px}.chisel-review-reply .chisel-attachment-controls{padding-right:48px}.chisel-attachment-error{color:var(--chisel-ui-danger);line-height:1.5}.chisel-attachment-previews,.review-attachments{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:8px;max-height:240px;overflow:auto}.review-attachments{padding:12px 0 0;max-height:none}.feedback-shell.chisel-review .chisel-attachment-preview,.review-attachment{position:relative;min-width:0;margin:0;overflow:hidden;border:0;border-radius:8px;background:var(--chisel-ui-raised)}.chisel-attachment-preview>img,.chisel-attachment-preview>video,.review-media-thumbnail img,.review-media-thumbnail video{display:block;width:100%;height:120px;object-fit:contain;background:var(--chisel-ui-inset)}.review-attachment figcaption{padding:8px;font-size:12px;line-height:18px;overflow-wrap:anywhere}.review-attachment-placeholder{min-height:100px;display:grid;place-items:center;padding:12px;color:var(--chisel-ui-secondary);font-size:12px}.chisel-attachment-preview>button:not(.review-media-thumbnail){position:absolute;top:0;right:0;display:grid;place-items:center;width:40px;height:40px;padding:0;border:0;border-radius:0 8px;background:var(--chisel-ui-surface);color:var(--chisel-ui-text)}.review-retry-upload{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 8px;border:0;border-radius:8px;background:transparent;color:var(--chisel-ui-text);font:inherit}.review-retry-upload:hover{background:var(--chisel-ui-hover)}.chisel-attachment-controls .review-retry-upload[aria-label]{min-width:40px;justify-content:center}.chisel-attachment-preview>span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:8px;font-size:12px}.feedback-shell.chisel-review .chisel-expand-thread{display:inline-flex;align-items:center;margin:0 20px 8px 60px;min-height:40px;padding:0;border:0;background:transparent;color:var(--chisel-ui-secondary);font-size:13px}.chisel-review [data-slate-placeholder]{opacity:1!important;color:var(--chisel-ui-secondary)}@media(pointer:coarse){.feedback-shell.chisel-review .chisel-reply-submit{width:44px;height:44px}.chisel-review-reply .chisel-attachment-controls{padding-right:52px}.feedback-shell.chisel-review .chisel-reply-field{min-height:52px}.feedback-shell.chisel-review .chisel-review-reply :is(.review-composer-editor,.chisel-rich-editor){padding-right:60px}}@media(forced-colors:active){.feedback-shell.chisel-review .comment-thread[data-native-ui=true],.feedback-shell.chisel-review .comment-box-native,.feedback-shell.chisel-review .chisel-reply-field{border:1px solid CanvasText;box-shadow:none}.review-comment-avatar{border:1px solid CanvasText}}.review-media-thumbnail{position:relative;display:block;width:100%;padding:0;border:0;background:var(--chisel-ui-inset);cursor:pointer}.review-media-thumbnail img,.review-media-thumbnail video{display:block;width:100%;height:120px;object-fit:contain}.review-media-play{position:absolute;inset:50% auto auto 50%;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#0009;color:#fff;transform:translate(-50%,-50%)}.review-media-lightbox{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:24px;border:0;background:transparent;color:var(--chisel-ui-text)}.review-media-lightbox[open]{display:flex;align-items:center;justify-content:center}.review-media-lightbox::backdrop{background:#000b}.review-media-lightbox-content{display:flex;flex-direction:column;width:fit-content;min-width:min(320px,100%);max-width:min(100%,1000px);max-height:100%;margin:auto;border-radius:12px;overflow:hidden;background:var(--chisel-ui-surface);box-shadow:0 16px 48px #0006}.review-media-lightbox-content header{display:flex;align-items:center;gap:12px;min-height:56px;padding:8px 12px 8px 16px}.review-media-lightbox-content header span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.review-media-lightbox-content header a{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:40px;min-height:40px;padding:0;border-radius:8px;color:var(--chisel-ui-text);font-size:13px}.review-media-lightbox-content header a:hover{background:var(--chisel-ui-hover)}.review-media-lightbox-content header button{display:grid;place-items:center;flex-shrink:0;width:40px;height:40px;padding:0;border:0;border-radius:8px;background:transparent;color:var(--chisel-ui-text)}.review-media-lightbox-content header button:hover{background:var(--chisel-ui-hover)}.review-media-lightbox-content>img,.review-media-lightbox-content>video{display:block;min-height:0;max-width:100%;max-height:calc(100dvh - 104px);margin:auto;object-fit:contain;background:#000}
3
3
  `;import{Fragment as He,jsx as p,jsxs as A}from"react/jsx-runtime";var z="https://chisel-review.vercel.app";function ge(n,i){try{localStorage.setItem(n,i),sessionStorage.removeItem(n);return}catch{}try{sessionStorage.setItem(n,i)}catch{}}function re(n){try{localStorage.removeItem(n)}catch{}try{sessionStorage.removeItem(n)}catch{}}function me(n){let i="";try{i=localStorage.getItem(n)||""}catch{}if(!/^[0-9a-f]{64}$/.test(i))try{i=sessionStorage.getItem(n)||""}catch{}return/^[0-9a-f]{64}$/.test(i)?(ge(n,i),i):""}function ve(n){return Array.isArray(n)?n.filter(i=>i&&typeof i.id=="string"&&typeof i.name=="string"&&typeof i.path=="string").map(i=>({id:i.id,name:i.name.slice(0,100),path:i.path.slice(0,2048),image:typeof i.image=="string"&&/^https?:\/\//.test(i.image)?i.image:null})):[]}function ne({projectId:n}){let i=`chisel:session:${n}`,o=L(""),E=L(i),[I,k]=T(0),[v,u]=T(null),[w,f]=T(!0),[b,x]=T(""),[_,l]=T(!1),[g,d]=T([]),[q,R]=T([]),[ke,J]=T("connecting"),H=L("/"),V=L(!1),[Ce,Se]=T(0),X=L(new Set),P=S(()=>{for(let e of X.current)e()},[]),O=L(null);O.current=v;let $=L(null),W=L("");Y(()=>{let e=t=>{($.current&&!$.current.closed||o.current&&me(i)!==o.current)&&t.preventDefault()};return document.addEventListener("chisel:before-ui-update",e),()=>document.removeEventListener("chisel:before-ui-update",e)},[i]);let C=S(async(e,t,r,s,a=!1)=>{let h=o.current,m=await fetch(`${z}/chisel/api/hosted/${e}`,{method:t,headers:{Authorization:`Bearer ${h}`,...r?{"Content-Type":"application/json","X-Chisel-Protocol":"2"}:{}},...r?{body:JSON.stringify(r)}:{},signal:s,keepalive:a}),c=await m.json().catch(()=>null);if(h!==o.current)throw new Error("Your Chisel account changed. Please retry.");if(!m.ok)throw m.status===401&&h===o.current&&O.current&&l(!0),Object.assign(new Error(c?.error||"Chisel is unavailable. Please try again."),{status:m.status});if(!c||typeof c!="object")throw new Error("Chisel is unavailable. Please try again.");if(c.siteId&&c.siteId!==n)throw new Error("This session belongs to another project.");return c},[n]),U=S((e,t)=>C(e==="GET"?`comments?path=${encodeURIComponent(H.current)}`:"comments",e,t),[C]),K=ie(()=>{let e=0;return{async list(){let t=++e,r=await U("GET");return t===e&&(d(r.comments),V.current||R(ve(r.participants))),r.comments},async mutate(t){++e;let r=(await U("POST",t)).comment;return++e,d(s=>s.some(a=>a.id===r.id)?s.map(a=>a.id===r.id?r:a):[...s,r]),window.setTimeout(P,0),r},async delete(t){++e,await U("POST",{type:"delete",id:t}),++e,d(r=>r.filter(s=>s.id!==t)),window.setTimeout(P,0)},subscribe(t){return X.current.add(t),()=>{X.current.delete(t)}}}},[U,P]),Ee=S(async(e,t)=>{await U("POST",{type:"read",id:e,activity:t})},[U]),Ie=S((e,t)=>{d(r=>r.map(s=>s.id===e?{...s,readActivity:Math.max(s.readActivity??0,t)}:s))},[]),{flush:le,markDisplayed:Te}=Ne(Ee,Ie);Y(()=>{if(!v)return;let e=!0,t,r,s=new AbortController,a=()=>{document.visibilityState==="visible"&&(clearTimeout(r),r=setTimeout(()=>{P(),le()},40))};async function h(){let c=!1;try{let j=o.current,G=await fetch(`${z}/chisel/api/hosted/events?path=${encodeURIComponent(H.current)}`,{headers:{Authorization:`Bearer ${j}`},signal:s.signal});if(e&&G.status===401&&j===o.current&&l(!0),!G.ok||!G.body)throw new Error("Live updates unavailable");let Ae=G.body.getReader(),Pe=new TextDecoder,N="";for(;e;){let{value:ze,done:$e}=await Ae.read();if($e)break;N+=Pe.decode(ze,{stream:!0});let ee;for(;(ee=N.indexOf(`
4
4
 
5
- `))>=0;){let B=N.slice(0,ee);if(N=N.slice(ee+2),B==="data: ready")J("connected"),a();else if(B==="data: renew")c=!0;else if(B==="data: change")a();else if(B.startsWith("data: presence:"))try{V.current=!0,R(ve(JSON.parse(B.slice(15))))}catch{}}}}catch{}e&&(V.current=!1,c||J("reconnecting"),t=setTimeout(()=>{h()},c?0:2e3))}J(c=>c==="connected"?c:"connecting"),h();let m=window.setInterval(a,1e4);return window.addEventListener("focus",a),window.addEventListener("online",a),document.addEventListener("visibilitychange",a),()=>{e=!1,V.current=!1,s.abort(),clearTimeout(t),clearTimeout(r),window.clearInterval(m),window.removeEventListener("focus",a),window.removeEventListener("online",a),document.removeEventListener("visibilitychange",a)}},[v,Ce,P,le]);let Re=S(e=>{H.current!==e&&(H.current=e,Se(t=>t+1),P())},[P]),F=ie(()=>({async userId(){return O.current?.user.id??""},async discard(e){await C("attachments","POST",{action:"cancel",id:e.id},void 0,!0)},async send(e,t,r){let s=async()=>{let h=await C("attachments","POST",{action:"confirm",id:e.id});if(h.attachment?.id!==e.id||h.attachment.token!==e.id)throw new Error("The upload confirmation was incomplete. Please retry.");return e.id};if(t){if(!r())return"";try{return await s()}catch(h){if(![404,503].includes(h.status??0))throw h}}let a=await C("attachments","POST",{action:"prepare",id:e.id,name:e.name,mimeType:e.mimeType,size:e.size});if(a.attachment?.id===e.id&&a.attachment.token===e.id)return e.id;if(typeof a.url!="string"||typeof a.key!="string")throw new Error("The upload could not be started. Please retry.");if(!r())return"";if(!e.stored){let h=new FormData;h.append("cacheControl","3600"),h.append("",e.file);try{(await fetch(a.url,{method:"PUT",headers:{apikey:a.key,"x-upsert":"false"},body:h})).ok&&(e.stored=!0)}catch{}}return r()?s():""}}),[C]),de=ie(()=>function(t=!1,r=0){return je(t,r,F)},[F]),Q=S(async(e,t)=>{let r=await C(`attachments?id=${encodeURIComponent(e)}`,"GET",void 0,t);if(typeof r.url!="string")throw new Error("Attachment unavailable");return r.url},[C]),Z=S((e,t)=>C("project",e==="get"?"GET":"POST",e==="get"?void 0:{...t,action:e}),[C]),Ue=S((e,t)=>Be(t,F,r=>K.mutate({type:"snapshot",id:e,attachmentTokens:[r]})),[F,K]),Le=S(e=>Q(e,new AbortController().signal),[Q]);Y(()=>{E.current!==i&&(o.current="",E.current=i,u(null)),o.current=o.current||me(i);let e=!0,t=!1,r;f(!!o.current&&!O.current);async function s(){if(t||!o.current)return;clearTimeout(r),t=!0;let m=o.current;try{let c=await U("GET");if(!c.user?.id||c.siteId!==n||!["owner","reviewer"].includes(c.role))throw new Error("Could not verify your Chisel session. Please retry.");if(!e||m!==o.current)return;u(c),l(!1),x("");let j=new URL(window.location.href);j.searchParams.delete("invite"),window.history.replaceState(window.history.state,"",j)}catch(c){if(!e||m!==o.current)return;c.status===401?(o.current="",re(i),l(!!O.current)):r=setTimeout(()=>{document.visibilityState==="visible"&&s()},5e3),x(c instanceof Error?c.message:"Could not connect to Chisel.")}finally{t=!1,e&&f(!1)}}let a=()=>{document.visibilityState==="visible"&&s()},h=m=>{if(!(m.key!==i&&m.key!==null)){try{if(m.storageArea!==localStorage)return}catch{return}o.current=m.newValue&&/^[0-9a-f]{64}$/.test(m.newValue)?m.newValue:"",o.current||re(i),u(null),d([]),R([]),l(!1),x(""),k(c=>c+1)}};return o.current&&s(),window.addEventListener("online",a),window.addEventListener("focus",a),document.addEventListener("visibilitychange",a),window.addEventListener("storage",h),()=>{e=!1,clearTimeout(r),window.removeEventListener("online",a),window.removeEventListener("focus",a),document.removeEventListener("visibilitychange",a),window.removeEventListener("storage",h)}},[i,n,U,I]),Y(()=>{let e=t=>{t.origin!==z||t.source!==$.current||t.data?.type!=="chisel:session"||t.data.state!==W.current||!/^[0-9a-f]{64}$/.test(t.data.token)||(o.current=t.data.token,ge(i,o.current),W.current="",$.current=null,x(""),k(r=>r+1))};return window.addEventListener("message",e),()=>window.removeEventListener("message",e)},[i]);function he(){let e=crypto.getRandomValues(new Uint8Array(32));W.current=Array.from(e,s=>s.toString(16).padStart(2,"0")).join("");let t=new URL("/chisel/connect",z);t.searchParams.set("site",n),t.searchParams.set("origin",window.location.origin),t.searchParams.set("state",W.current);let r=new URLSearchParams(window.location.search).get("invite");r&&t.searchParams.set("invite",r),$.current=window.open(t.toString(),"chisel-sign-in","popup,width=520,height=700"),$.current||x("Allow pop-ups for this site, then try again.")}return w?A("main",{className:"chisel-sign-in",children:[p(te,{}),p("section",{children:p("p",{children:"Connecting to Chisel\u2026"})})]}):!v&&o.current?A("main",{className:"chisel-sign-in",children:[p(te,{}),A("section",{children:[p("strong",{className:"chisel-sign-in-brand",children:"chisel"}),p("h1",{children:"Reconnecting to Chisel"}),p("p",{children:"Your sign-in is saved. Check your connection and try again."}),p("button",{onClick:()=>k(e=>e+1),children:"Retry connection"}),b&&p("p",{role:"alert",children:b})]})]}):v?A(He,{children:[A("style",{children:[pe,ue]}),p(Me,{user:v.user,commentStore:K,canManageComments:v.role==="owner",projectId:n,manageReview:Z,saveSnapshot:Ue,getAttachmentURL:Le,accountURL:`${z}/chisel/projects`,agentURL:`${z}/chisel/mcp`,commentUI:{className:"chisel-review",renderComposer:e=>{let t=g.find(r=>r.id===e.commentId);return p(_e,{...e,defaultBody:t?.body,existingAttachments:t?.attachments,useAttachments:de})},renderThread:e=>p(Oe,{...e,onRead:Te,useAttachments:de,loadMedia:Q},e.comment.id)},collaboration:{status:ke,participants:q,setPage:Re,markRead(){},unreadThreadIds:g.filter(e=>e.readActivity!==null&&e.readActivity<e.activity).map(e=>e.id)},getReviewLink:v.role==="owner"?async()=>{let e=await Z("get"),t=e.reviewURL??De(window.location.origin);if(!t)throw new Error("Open the deployed website\u2019s HTTPS /chisel page to copy a review link. Localhost links cannot be shared with clients.");e.reviewURL||await Z("settings",{reviewURL:t});let r=new URL(t);return r.searchParams.set("mode","comment"),r.toString()}:void 0,validateSession:async()=>!!o.current,signOut:async()=>{let e=await fetch(`${z}/chisel/api/hosted/logout`,{method:"DELETE",headers:{Authorization:`Bearer ${o.current}`,"X-Chisel-Protocol":"2"}});if(!e.ok&&e.status!==401)throw new Error("Sign out failed.");o.current="",re(i)}},v.user.id),_&&A("div",{role:"alert",style:{position:"fixed",bottom:16,right:16,zIndex:999999,background:"white",color:"black",padding:12,borderRadius:8,boxShadow:"0 2px 12px #0003"},children:["Your Chisel session expired. ",p("button",{type:"button",onClick:he,children:"Sign in again"})]})]}):A("main",{className:"chisel-sign-in",children:[p(te,{}),A("section",{children:[p("strong",{className:"chisel-sign-in-brand",children:"chisel"}),p("h1",{children:"Sign in to review"}),p("p",{children:"Connect this website to your Chisel account."}),p("button",{onClick:he,children:"Continue with Chisel"}),b&&p("p",{role:"alert",children:b})]})]})}import*as Ve from"react";import*as We from"react-dom";import*as Fe from"react/jsx-runtime";var we="https://chisel-review.vercel.app",fe="4d303d8ccdc2adee2b249d3c882829e315367575eb516d5b200d8207b7f7c1f4";function Ge(n){let i=n;if(!i||i.protocol!==1||typeof i.version!="string"||!/^\d+\.\d+\.\d+(?:-[\w.-]+)?$/.test(i.version)||typeof i.build!="string"||!/^[a-f0-9]{64}$/.test(i.build)||typeof i.integrity!="string"||!/^sha384-[A-Za-z0-9+/]{64}$/.test(i.integrity))throw new Error("This Chisel update is incompatible.");return i}async function ae(){let n=new AbortController,i=setTimeout(()=>n.abort(),3e3);try{let o=await fetch(`${we}/chisel-ui/manifest.json`,{cache:"no-store",credentials:"omit",redirect:"error",signal:n.signal});if(!o.ok)throw new Error("Chisel updates are unavailable.");return Ge(await o.json())}finally{clearTimeout(i)}}var oe=new Map;function se(n){let i=window.__chiselUIV1??={react:Ve,dom:We,jsx:Fe,environment:process.env.NODE_ENV??"production",modules:{}},o=i.modules[n.build];if(o)return Promise.resolve(o);let E=oe.get(n.build);if(E)return E;let I=new Promise((k,v)=>{let u=document.createElement("script"),w=b=>{clearTimeout(f),u.remove(),u.onload=null,u.onerror=null;let x=i.modules[n.build];b||typeof x!="function"?v(b??new Error("Chisel could not load this update.")):k(x)},f=setTimeout(()=>w(new Error("The Chisel update timed out.")),5e3);u.src=`${we}/chisel-ui/${n.build}.js`,u.crossOrigin="anonymous",u.integrity=n.integrity,u.async=!0,u.onload=()=>w(),u.onerror=()=>w(new Error("Chisel could not download this update.")),document.head.append(u)});return oe.set(n.build,I),I.catch(()=>{oe.delete(n.build)}),I}import{Fragment as Ke,jsx as y,jsxs as ye}from"react/jsx-runtime";var xe={component:ne,build:fe},ce=class extends Ye{constructor(){super(...arguments);this.state={failed:!1}}static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(){this.props.onFailure()}render(){return this.state.failed?y("main",{className:"chisel-sign-in",children:ye("section",{children:[y("p",{children:"Chisel couldn\u2019t start."}),y("button",{onClick:()=>window.location.reload(),children:"Reload Chisel"})]})}):this.props.children}};function mi({projectId:n}){let[i,o]=qe(null),E=D(i);E.current=i;let I=D(null),k=D(!1),v=D(!1),u=D(""),w=`chisel-updates:${n}`,f=`${w}:available`;be(()=>{k.current=!0;let l=!0;return ae().then(async g=>{if(!l)return;let d=await se(g);l&&o({component:d,build:g.build})}).catch(()=>{l&&o(xe)}),()=>{l=!1,k.current=!1,M.dismiss(f)}},[f]);function b(l,g="Update when you\u2019re ready. Your feedback stays saved."){M("A new version of Chisel is available",{id:f,toasterId:w,duration:1/0,description:g,closeButton:!0,action:{label:"Update",onClick:d=>{d.preventDefault(),x(l)}}})}async function x(l){if(v.current)return;let g=()=>document.dispatchEvent(new Event("chisel:before-ui-update",{cancelable:!0}));if(!g()){b(l,"Finish signing in or sending, save your draft, and allow browser storage before updating.");return}v.current=!0,M.loading("Updating Chisel\u2026",{id:f,toasterId:w,action:void 0,description:void 0});try{let d=await se(l);if(!k.current)return;if(!g()){b(l,"Save or close your draft before updating.");return}I.current=E.current,o({component:d,build:l.build}),M.success("Chisel is up to date",{id:f,toasterId:w,duration:3e3,action:void 0,description:void 0})}catch{k.current&&M.error("Chisel couldn\u2019t update",{id:f,toasterId:w,duration:1/0,description:"Your current version is still running.",action:{label:"Retry",onClick:d=>{d.preventDefault(),x(l)}}})}finally{v.current=!1}}be(()=>{if(!i)return;let l=!0,g=!1,d=async()=>{if(!(g||v.current||document.visibilityState!=="visible")){g=!0;try{let R=await ae();l&&R.build!==E.current?.build&&R.build!==u.current&&(u.current=R.build,b(R))}catch{}finally{g=!1}}},q=setInterval(()=>{d()},6e4);return window.addEventListener("focus",d),document.addEventListener("visibilitychange",d),()=>{l=!1,clearInterval(q),window.removeEventListener("focus",d),document.removeEventListener("visibilitychange",d)}},[i?.build,f]);let _=i?.component;return ye(Ke,{children:[y(Xe,{}),y("style",{children:'.chisel-updates [data-action]{position:relative}.chisel-updates [data-action]::after{content:"";position:absolute;inset:-6px 0}'}),_?y(ce,{onFailure:()=>{o(I.current??xe),I.current=null,M.error("This Chisel update couldn\u2019t start",{id:f,toasterId:w,description:"Your previous version is still available."})},children:y(_,{projectId:n})},`${n}:${i.build}:${_===ne?"bundled":"hosted"}`):y("main",{className:"chisel-sign-in",children:y("section",{children:y("p",{role:"status",children:"Loading Chisel\u2026"})})}),y(Je,{id:w,className:"chisel-updates",theme:"system",position:"bottom-right",offset:24,mobileOffset:16,style:{zIndex:1000002},toastOptions:{style:{fontFamily:"var(--chisel-ui-font)",background:"var(--chisel-ui-surface)",color:"var(--chisel-ui-text)",border:"none",borderRadius:12,boxShadow:"var(--chisel-ui-popover-shadow)"},actionButtonStyle:{height:32,minHeight:32,alignSelf:"center",background:"var(--chisel-ui-action)",color:"var(--chisel-ui-action-text)"}}})]})}export{mi as HostedChisel};
5
+ `))>=0;){let B=N.slice(0,ee);if(N=N.slice(ee+2),B==="data: ready")J("connected"),a();else if(B==="data: renew")c=!0;else if(B==="data: change")a();else if(B.startsWith("data: presence:"))try{V.current=!0,R(ve(JSON.parse(B.slice(15))))}catch{}}}}catch{}e&&(V.current=!1,c||J("reconnecting"),t=setTimeout(()=>{h()},c?0:2e3))}J(c=>c==="connected"?c:"connecting"),h();let m=window.setInterval(a,1e4);return window.addEventListener("focus",a),window.addEventListener("online",a),document.addEventListener("visibilitychange",a),()=>{e=!1,V.current=!1,s.abort(),clearTimeout(t),clearTimeout(r),window.clearInterval(m),window.removeEventListener("focus",a),window.removeEventListener("online",a),document.removeEventListener("visibilitychange",a)}},[v,Ce,P,le]);let Re=S(e=>{H.current!==e&&(H.current=e,Se(t=>t+1),P())},[P]),F=ie(()=>({async userId(){return O.current?.user.id??""},async discard(e){await C("attachments","POST",{action:"cancel",id:e.id},void 0,!0)},async send(e,t,r){let s=async()=>{let h=await C("attachments","POST",{action:"confirm",id:e.id});if(h.attachment?.id!==e.id||h.attachment.token!==e.id)throw new Error("The upload confirmation was incomplete. Please retry.");return e.id};if(t){if(!r())return"";try{return await s()}catch(h){if(![404,503].includes(h.status??0))throw h}}let a=await C("attachments","POST",{action:"prepare",id:e.id,name:e.name,mimeType:e.mimeType,size:e.size});if(a.attachment?.id===e.id&&a.attachment.token===e.id)return e.id;if(typeof a.url!="string"||typeof a.key!="string")throw new Error("The upload could not be started. Please retry.");if(!r())return"";if(!e.stored){let h=new FormData;h.append("cacheControl","3600"),h.append("",e.file);try{(await fetch(a.url,{method:"PUT",headers:{apikey:a.key,"x-upsert":"false"},body:h})).ok&&(e.stored=!0)}catch{}}return r()?s():""}}),[C]),de=ie(()=>function(t=!1,r=0){return je(t,r,F)},[F]),Q=S(async(e,t)=>{let r=await C(`attachments?id=${encodeURIComponent(e)}`,"GET",void 0,t);if(typeof r.url!="string")throw new Error("Attachment unavailable");return r.url},[C]),Z=S((e,t)=>C("project",e==="get"?"GET":"POST",e==="get"?void 0:{...t,action:e}),[C]),Ue=S((e,t)=>Be(t,F,r=>K.mutate({type:"snapshot",id:e,attachmentTokens:[r]})),[F,K]),Le=S(e=>Q(e,new AbortController().signal),[Q]);Y(()=>{E.current!==i&&(o.current="",E.current=i,u(null)),o.current=o.current||me(i);let e=!0,t=!1,r;f(!!o.current&&!O.current);async function s(){if(t||!o.current)return;clearTimeout(r),t=!0;let m=o.current;try{let c=await U("GET");if(!c.user?.id||c.siteId!==n||!["owner","reviewer"].includes(c.role))throw new Error("Could not verify your Chisel session. Please retry.");if(!e||m!==o.current)return;u(c),l(!1),x("");let j=new URL(window.location.href);j.searchParams.delete("invite"),window.history.replaceState(window.history.state,"",j)}catch(c){if(!e||m!==o.current)return;c.status===401?(o.current="",re(i),l(!!O.current)):r=setTimeout(()=>{document.visibilityState==="visible"&&s()},5e3),x(c instanceof Error?c.message:"Could not connect to Chisel.")}finally{t=!1,e&&f(!1)}}let a=()=>{document.visibilityState==="visible"&&s()},h=m=>{if(!(m.key!==i&&m.key!==null)){try{if(m.storageArea!==localStorage)return}catch{return}o.current=m.newValue&&/^[0-9a-f]{64}$/.test(m.newValue)?m.newValue:"",o.current||re(i),u(null),d([]),R([]),l(!1),x(""),k(c=>c+1)}};return o.current&&s(),window.addEventListener("online",a),window.addEventListener("focus",a),document.addEventListener("visibilitychange",a),window.addEventListener("storage",h),()=>{e=!1,clearTimeout(r),window.removeEventListener("online",a),window.removeEventListener("focus",a),document.removeEventListener("visibilitychange",a),window.removeEventListener("storage",h)}},[i,n,U,I]),Y(()=>{let e=t=>{t.origin!==z||t.source!==$.current||t.data?.type!=="chisel:session"||t.data.state!==W.current||!/^[0-9a-f]{64}$/.test(t.data.token)||(o.current=t.data.token,ge(i,o.current),W.current="",$.current=null,x(""),k(r=>r+1))};return window.addEventListener("message",e),()=>window.removeEventListener("message",e)},[i]);function he(){let e=crypto.getRandomValues(new Uint8Array(32));W.current=Array.from(e,s=>s.toString(16).padStart(2,"0")).join("");let t=new URL("/chisel/connect",z);t.searchParams.set("site",n),t.searchParams.set("origin",window.location.origin),t.searchParams.set("state",W.current);let r=new URLSearchParams(window.location.search).get("invite");r&&t.searchParams.set("invite",r),$.current=window.open(t.toString(),"chisel-sign-in","popup,width=520,height=700"),$.current||x("Allow pop-ups for this site, then try again.")}return w?A("main",{className:"chisel-sign-in",children:[p(te,{}),p("section",{children:p("p",{children:"Connecting to Chisel\u2026"})})]}):!v&&o.current?A("main",{className:"chisel-sign-in",children:[p(te,{}),A("section",{children:[p("strong",{className:"chisel-sign-in-brand",children:"chisel"}),p("h1",{children:"Reconnecting to Chisel"}),p("p",{children:"Your sign-in is saved. Check your connection and try again."}),p("button",{onClick:()=>k(e=>e+1),children:"Retry connection"}),b&&p("p",{role:"alert",children:b})]})]}):v?A(He,{children:[A("style",{children:[pe,ue]}),p(Me,{user:v.user,commentStore:K,canManageComments:v.role==="owner",projectId:n,manageReview:Z,saveSnapshot:Ue,getAttachmentURL:Le,accountURL:`${z}/chisel/projects`,agentURL:`${z}/chisel/mcp`,commentUI:{className:"chisel-review",renderComposer:e=>{let t=g.find(r=>r.id===e.commentId);return p(_e,{...e,defaultBody:t?.body,existingAttachments:t?.attachments,useAttachments:de})},renderThread:e=>p(Oe,{...e,onRead:Te,useAttachments:de,loadMedia:Q},e.comment.id)},collaboration:{status:ke,participants:q,setPage:Re,markRead(){},unreadThreadIds:g.filter(e=>e.readActivity!==null&&e.readActivity<e.activity).map(e=>e.id)},getReviewLink:v.role==="owner"?async()=>{let e=await Z("get"),t=e.reviewURL??De(window.location.origin);if(!t)throw new Error("Open the deployed website\u2019s HTTPS /chisel page to copy a review link. Localhost links cannot be shared with clients.");e.reviewURL||await Z("settings",{reviewURL:t});let r=new URL(t);return r.searchParams.set("mode","comment"),r.toString()}:void 0,validateSession:async()=>!!o.current,signOut:async()=>{let e=await fetch(`${z}/chisel/api/hosted/logout`,{method:"DELETE",headers:{Authorization:`Bearer ${o.current}`,"X-Chisel-Protocol":"2"}});if(!e.ok&&e.status!==401)throw new Error("Sign out failed.");o.current="",re(i)}},v.user.id),_&&A("div",{role:"alert",style:{position:"fixed",bottom:16,right:16,zIndex:999999,background:"white",color:"black",padding:12,borderRadius:8,boxShadow:"0 2px 12px #0003"},children:["Your Chisel session expired. ",p("button",{type:"button",onClick:he,children:"Sign in again"})]})]}):A("main",{className:"chisel-sign-in",children:[p(te,{}),A("section",{children:[p("strong",{className:"chisel-sign-in-brand",children:"chisel"}),p("h1",{children:"Sign in to review"}),p("p",{children:"Connect this website to your Chisel account."}),p("button",{onClick:he,children:"Continue with Chisel"}),b&&p("p",{role:"alert",children:b})]})]})}import*as Ve from"react";import*as We from"react-dom";import*as Fe from"react/jsx-runtime";var we="https://chisel-review.vercel.app",fe="3e6200285ed58d94e323fa435669ab72baa281951566146b50deacc184bb8b1f";function Ge(n){let i=n;if(!i||i.protocol!==1||typeof i.version!="string"||!/^\d+\.\d+\.\d+(?:-[\w.-]+)?$/.test(i.version)||typeof i.build!="string"||!/^[a-f0-9]{64}$/.test(i.build)||typeof i.integrity!="string"||!/^sha384-[A-Za-z0-9+/]{64}$/.test(i.integrity))throw new Error("This Chisel update is incompatible.");return i}async function ae(){let n=new AbortController,i=setTimeout(()=>n.abort(),3e3);try{let o=await fetch(`${we}/chisel-ui/manifest.json`,{cache:"no-store",credentials:"omit",redirect:"error",signal:n.signal});if(!o.ok)throw new Error("Chisel updates are unavailable.");return Ge(await o.json())}finally{clearTimeout(i)}}var oe=new Map;function se(n){let i=window.__chiselUIV1??={react:Ve,dom:We,jsx:Fe,environment:process.env.NODE_ENV??"production",modules:{}},o=i.modules[n.build];if(o)return Promise.resolve(o);let E=oe.get(n.build);if(E)return E;let I=new Promise((k,v)=>{let u=document.createElement("script"),w=b=>{clearTimeout(f),u.remove(),u.onload=null,u.onerror=null;let x=i.modules[n.build];b||typeof x!="function"?v(b??new Error("Chisel could not load this update.")):k(x)},f=setTimeout(()=>w(new Error("The Chisel update timed out.")),5e3);u.src=`${we}/chisel-ui/${n.build}.js`,u.crossOrigin="anonymous",u.integrity=n.integrity,u.async=!0,u.onload=()=>w(),u.onerror=()=>w(new Error("Chisel could not download this update.")),document.head.append(u)});return oe.set(n.build,I),I.catch(()=>{oe.delete(n.build)}),I}import{Fragment as Ke,jsx as y,jsxs as ye}from"react/jsx-runtime";var xe={component:ne,build:fe},ce=class extends Ye{constructor(){super(...arguments);this.state={failed:!1}}static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(){this.props.onFailure()}render(){return this.state.failed?y("main",{className:"chisel-sign-in",children:ye("section",{children:[y("p",{children:"Chisel couldn\u2019t start."}),y("button",{onClick:()=>window.location.reload(),children:"Reload Chisel"})]})}):this.props.children}};function mi({projectId:n}){let[i,o]=qe(null),E=D(i);E.current=i;let I=D(null),k=D(!1),v=D(!1),u=D(""),w=`chisel-updates:${n}`,f=`${w}:available`;be(()=>{k.current=!0;let l=!0;return ae().then(async g=>{if(!l)return;let d=await se(g);l&&o({component:d,build:g.build})}).catch(()=>{l&&o(xe)}),()=>{l=!1,k.current=!1,M.dismiss(f)}},[f]);function b(l,g="Update when you\u2019re ready. Your feedback stays saved."){M("A new version of Chisel is available",{id:f,toasterId:w,duration:1/0,description:g,closeButton:!0,action:{label:"Update",onClick:d=>{d.preventDefault(),x(l)}}})}async function x(l){if(v.current)return;let g=()=>document.dispatchEvent(new Event("chisel:before-ui-update",{cancelable:!0}));if(!g()){b(l,"Finish signing in or sending, save your draft, and allow browser storage before updating.");return}v.current=!0,M.loading("Updating Chisel\u2026",{id:f,toasterId:w,action:void 0,description:void 0});try{let d=await se(l);if(!k.current)return;if(!g()){b(l,"Save or close your draft before updating.");return}I.current=E.current,o({component:d,build:l.build}),M.success("Chisel is up to date",{id:f,toasterId:w,duration:3e3,action:void 0,description:void 0})}catch{k.current&&M.error("Chisel couldn\u2019t update",{id:f,toasterId:w,duration:1/0,description:"Your current version is still running.",action:{label:"Retry",onClick:d=>{d.preventDefault(),x(l)}}})}finally{v.current=!1}}be(()=>{if(!i)return;let l=!0,g=!1,d=async()=>{if(!(g||v.current||document.visibilityState!=="visible")){g=!0;try{let R=await ae();l&&R.build!==E.current?.build&&R.build!==u.current&&(u.current=R.build,b(R))}catch{}finally{g=!1}}},q=setInterval(()=>{d()},6e4);return window.addEventListener("focus",d),document.addEventListener("visibilitychange",d),()=>{l=!1,clearInterval(q),window.removeEventListener("focus",d),document.removeEventListener("visibilitychange",d)}},[i?.build,f]);let _=i?.component;return ye(Ke,{children:[y(Xe,{}),y("style",{children:'.chisel-updates [data-action]{position:relative}.chisel-updates [data-action]::after{content:"";position:absolute;inset:-6px 0}'}),_?y(ce,{onFailure:()=>{o(I.current??xe),I.current=null,M.error("This Chisel update couldn\u2019t start",{id:f,toasterId:w,description:"Your previous version is still available."})},children:y(_,{projectId:n})},`${n}:${i.build}:${_===ne?"bundled":"hosted"}`):y("main",{className:"chisel-sign-in",children:y("section",{children:y("p",{role:"status",children:"Loading Chisel\u2026"})})}),y(Je,{id:w,className:"chisel-updates",theme:"system",position:"bottom-right",offset:24,mobileOffset:16,style:{zIndex:1000002},toastOptions:{style:{fontFamily:"var(--chisel-ui-font)",background:"var(--chisel-ui-surface)",color:"var(--chisel-ui-text)",border:"none",borderRadius:12,boxShadow:"var(--chisel-ui-popover-shadow)"},actionButtonStyle:{height:32,minHeight:32,alignSelf:"center",background:"var(--chisel-ui-action)",color:"var(--chisel-ui-action-text)"}}})]})}export{mi as HostedChisel};
@@ -1,6 +1,6 @@
1
1
  "use client";import{useEffect as oe,useLayoutEffect as ft,useRef as q,useState as y}from"react";import{forwardRef as Gr,createElement as Vr}from"react";var Uo=a=>a?.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();function Ho(a,t,r=[]){if(t==null)throw new Error("[lucide]: iconNode is required when icon name is used");return{name:Uo(a),size:24,node:t,...r.length>0?{aliases:r}:{}}}var Eo=a=>{let t="",r=!1;for(let l of a){if(l==="-"||l==="_"||l<=" "){r=t.length>0;continue}t.length===0?t+=l.toLowerCase():t+=r?l.toUpperCase():l,r=!1}return t};var Oo=a=>{let t=Eo(a);return t.charAt(0).toUpperCase()+t.slice(1)};import{forwardRef as Wr,createElement as Vo}from"react";var ja=(...a)=>a.filter((t,r,l)=>!!t&&t.trim()!==""&&l.indexOf(t)===r).join(" ").trim();var ra={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":2,"stroke-linecap":"round","stroke-linejoin":"round"};function to(a){return a!=null}function zo(a,t={}){let r=t.attributeNames??{},l=S=>r[S]??S,d=a.size??a.width??ra.width,c=a.size??a.height??ra.height,n=a.aliases?.filter(S=>typeof S=="string"&&S.trim()!=="").map(S=>`lucide-${S}`)??[],m=[...a.name?[`lucide-${a.name}`]:[],...n],L=t.className?.split(" ").filter(Boolean)??[],v=t.includeDefaultClasses===!1?ja(...L):ja("lucide",...m,...L),M=t.absoluteStrokeWidth?Number(t.strokeWidth??ra["stroke-width"])*Number(a.size??a.width??ra.width)/Number(t.size??t.width??ra.width):t.strokeWidth??ra["stroke-width"];return["svg",{...Object.entries(ra).reduce((S,[O,B])=>(S[l(O)]=B,S),{}),..."color"in t&&t.color&&{[l("stroke")]:t.color},..."size"in t&&to(t.size)&&{[l("width")]:t.size,[l("height")]:t.size},..."width"in t&&to(t.width)&&{[l("width")]:t.width},..."height"in t&&to(t.height)&&{[l("height")]:t.height},[l("stroke-width")]:M,...v&&{[l("class")]:v},[l("viewBox")]:`0 0 ${d} ${c}`,...t.hasA11yProp===!1?{[l("aria-hidden")]:"true"}:{},..."attributes"in t&&t.attributes},a.node.map(S=>{let[O,B,J]=S,w=t.nonScalingStroke?{[l("vector-effect")]:"non-scaling-stroke",...B}:B;return J?[O,w,J]:[O,w]})]}function No(a,t={}){return zo(a,{...t,attributeNames:{...t.attributeNames,class:"className","stroke-width":"strokeWidth","stroke-linecap":"strokeLinecap","stroke-linejoin":"strokeLinejoin","vector-effect":"vectorEffect"}})}var Wo=a=>{for(let t in a)if(t.startsWith("aria-")||t==="role"||t==="title")return!0;return!1};import{createContext as Or,useContext as zr,useMemo as Yl,createElement as Ql}from"react";var Nr=Or({});var Go=()=>zr(Nr);var Xo=Wr(({color:a,size:t,width:r,height:l,strokeWidth:d,absoluteStrokeWidth:c,nonScalingStroke:n,className:m="",children:L,iconNode:v=[],icon:M={node:v,aliases:[],size:24},...W},S)=>{let{size:O=24,strokeWidth:B=2,absoluteStrokeWidth:J=!1,nonScalingStroke:w=!1,color:C="currentColor",className:G=""}=Go()??{},Y=!!L||Wo(W),[te,h,b=[]]=No(M,{color:a??C,width:r??t??O,height:l??t??O,strokeWidth:d??B,absoluteStrokeWidth:c??J,nonScalingStroke:n??w,className:ja(G,m),hasA11yProp:Y,attributes:W});return Vo(te,{ref:S,...h},[...b.map(([V,fe])=>Vo(V,fe)),...Array.isArray(L)?L:[L]])});function g(a,t=[],r=[]){let l=typeof a=="string"?Ho(a,t,r):a,d=Gr(({className:c,...n},m)=>Vr(Xo,{ref:m,icon:l,className:c,...n}));return l.name&&(d.displayName=Oo(l.name)),d}var Xr={name:"arrow-right",size:24,node:[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]},_a=g(Xr);var $r={name:"arrow-up",size:24,node:[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]},Ja=g($r);var Kr={name:"check",size:24,node:[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]},ga=g(Kr);var Zr={name:"chevron-down",size:24,node:[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]},La=g(Zr);var jr={name:"chevron-right",size:24,node:[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]},la=g(jr);var _r={name:"circle-check",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16 9-5.5 5.5L8 12",key:"xofnsj"}]],aliases:["check-circle-2"]},da=g(_r);var Jr={name:"circle",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]},Ya=g(Jr);var Yr={name:"copy",size:24,node:[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]},Ma=g(Yr);var Qr={name:"eye",size:24,node:[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]},Ba=g(Qr);var el={name:"globe",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]},Qa=g(el);var al={name:"grip-horizontal",size:24,node:[["circle",{cx:"12",cy:"9",r:"1",key:"124mty"}],["circle",{cx:"19",cy:"9",r:"1",key:"1ruzo2"}],["circle",{cx:"5",cy:"9",r:"1",key:"1a8b28"}],["circle",{cx:"12",cy:"15",r:"1",key:"1e56xg"}],["circle",{cx:"19",cy:"15",r:"1",key:"1a92ep"}],["circle",{cx:"5",cy:"15",r:"1",key:"5r1jwy"}]]},et=g(al);var tl={name:"link-2",size:24,node:[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]]},Ia=g(tl);var ol={name:"loader-circle",size:24,node:[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],aliases:["loader-2"]},sa=g(ol);var rl={name:"log-out",size:24,node:[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]]},at=g(rl);var ll={name:"message-circle",size:24,node:[["path",{d:"M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719",key:"1sd12s"}]]},ba=g(ll);var dl={name:"monitor",size:24,node:[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]},tt=g(dl);var sl={name:"mouse-pointer-2",size:24,node:[["path",{d:"M4.037 4.688a.495.495 0 0 1 .651-.651l16 6.5a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063z",key:"edeuup"}]]},Ra=g(sl);var ul={name:"pencil",size:24,node:[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]},Fa=g(ul);var il={name:"pipette",size:24,node:[["path",{d:"m12 9-8.414 8.414A2 2 0 0 0 3 18.828v1.344a2 2 0 0 1-.586 1.414A2 2 0 0 1 3.828 21h1.344a2 2 0 0 0 1.414-.586L15 12",key:"1y3wsu"}],["path",{d:"m18 9 .4.4a1 1 0 1 1-3 3l-3.8-3.8a1 1 0 1 1 3-3l.4.4 3.4-3.4a1 1 0 1 1 3 3z",key:"110lr1"}],["path",{d:"m2 22 .414-.414",key:"jhxm08"}]]},ot=g(il);var nl={name:"search",size:24,node:[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]},rt=g(nl);var fl={name:"sliders-horizontal",size:24,node:[["path",{d:"M10 5H3",key:"1qgfaw"}],["path",{d:"M12 19H3",key:"yhmn1j"}],["path",{d:"M14 3v4",key:"1sua03"}],["path",{d:"M16 17v4",key:"1q0r14"}],["path",{d:"M21 12h-9",key:"1o4lsq"}],["path",{d:"M21 19h-5",key:"1rlt1p"}],["path",{d:"M21 5h-7",key:"1oszz2"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M8 12H3",key:"a7s4jb"}]]},Ca=g(fl);var cl={name:"smartphone",size:24,node:[["rect",{width:"14",height:"20",x:"5",y:"2",rx:"2",ry:"2",key:"1yt0o3"}],["path",{d:"M12 18h.01",key:"mhygvu"}]]},lt=g(cl);var pl={name:"square-dashed",size:24,node:[["path",{d:"M5 3a2 2 0 0 0-2 2",key:"y57alp"}],["path",{d:"M19 3a2 2 0 0 1 2 2",key:"18rm91"}],["path",{d:"M21 19a2 2 0 0 1-2 2",key:"1j7049"}],["path",{d:"M5 21a2 2 0 0 1-2-2",key:"sbafld"}],["path",{d:"M9 3h1",key:"1yesri"}],["path",{d:"M9 21h1",key:"15o7lz"}],["path",{d:"M14 3h1",key:"1ec4yj"}],["path",{d:"M14 21h1",key:"v9vybs"}],["path",{d:"M3 9v1",key:"1r0deq"}],["path",{d:"M21 9v1",key:"mxsmne"}],["path",{d:"M3 14v1",key:"vnatye"}],["path",{d:"M21 14v1",key:"169vum"}]],aliases:["box-select"]},ua=g(pl);var ml={name:"tablet",size:24,node:[["rect",{width:"16",height:"20",x:"4",y:"2",rx:"2",ry:"2",key:"76otgf"}],["line",{x1:"12",x2:"12.01",y1:"18",y2:"18",key:"1dp563"}]]},dt=g(ml);var hl={name:"trash",size:24,node:[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],aliases:["trash-2"]},ia=g(hl);var xl={name:"x",size:24,node:[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]},Ta=g(xl);import{useEffect as Yo,useId as bl,useState as Ke}from"react";import{useEffect as gl,useRef as Ko,useState as qa}from"react";import{createPortal as Ll}from"react-dom";function $o(a,t,r,l=1){a/=255,t/=255,r/=255;let d=Math.max(a,t,r),c=Math.min(a,t,r),n=d-c;return{h:(n?d===a?((t-r)/n+6)%6:d===t?(r-a)/n+2:(a-t)/n+4:0)*60,s:d?n/d:0,v:d,a:l}}function Mt({h:a,s:t,v:r,a:l}){let d=c=>{let n=(c+a/60)%6;return Math.round(255*r*(1-t*Math.max(0,Math.min(n,4-n,1)))).toString(16).padStart(2,"0")};return`#${d(5)}${d(3)}${d(1)}${l<1?Math.round(l*255).toString(16).padStart(2,"0"):""}`}function Bt(a){if(typeof document<"u"){let t=document.createElement("canvas");t.width=t.height=1;let r=t.getContext("2d");if(r){r.fillStyle=a,r.fillRect(0,0,1,1);let[l,d,c,n]=r.getImageData(0,0,1,1).data;return $o(l,d,c,n/255)}}return $o(0,0,0)}import{jsx as Pe,jsxs as st}from"react/jsx-runtime";function oo({label:a,value:t,onChange:r,disabled:l}){let d=Ko(null),c=Ko(null),[n,m]=qa(null),[L,v]=qa({h:0,s:0,v:0,a:1}),[M,W]=qa(""),[S,O]=qa(!1),[B,J]=qa(!1),[w,C]=qa(!1);function G(){m(null)}gl(()=>{if(!n)return;let h=U=>{!c.current?.contains(U.target)&&!d.current?.contains(U.target)&&G()},b=U=>{U.key==="Escape"&&(U.preventDefault(),U.stopPropagation(),G(),d.current?.focus())},V=d.current?.getBoundingClientRect(),fe=U=>{if(c.current?.contains(U.target))return;let ge=d.current?.getBoundingClientRect();(ge?.top!==V?.top||ge?.left!==V?.left)&&G()};return document.addEventListener("pointerdown",h),document.addEventListener("keydown",b,!0),window.addEventListener("resize",G),document.addEventListener("scroll",fe,!0),c.current?.querySelector("input")?.focus({preventScroll:!0}),()=>{document.removeEventListener("pointerdown",h),document.removeEventListener("keydown",b,!0),window.removeEventListener("resize",G),document.removeEventListener("scroll",fe,!0)}},[n]);function Y(h){h.a===0&&(h={...h,a:1}),v(h);let b=Mt(h);W(b.slice(1).toUpperCase()),O(!1),r(b)}function te(h){let b=h.currentTarget.getBoundingClientRect();Y({...L,s:Math.max(0,Math.min(1,(h.clientX-b.left)/b.width)),v:1-Math.max(0,Math.min(1,(h.clientY-b.top)/b.height))})}return st("div",{className:"comment-box-color",children:[Pe("button",{ref:d,className:"comment-color-trigger",type:"button","aria-label":`${a} picker`,"aria-haspopup":"dialog","aria-expanded":!!n,disabled:l,onClick:()=>{if(n){G();return}let h=Bt(t);v(h),W(Mt(h).slice(1).toUpperCase()),O(!1),J("EyeDropper"in window);let b=d.current.getBoundingClientRect();m({left:Math.max(8,Math.min(b.right-256,window.innerWidth-264)),top:Math.max(8,Math.min(b.bottom+8,window.innerHeight-330))})},children:Pe("span",{style:{background:t}})}),Pe("span",{className:"comment-color-value",title:t,children:t}),n&&Ll(st("div",{ref:c,className:"chisel-color-picker",role:"dialog","aria-label":`${a} color picker`,style:n,onKeyDown:h=>{if(h.key!=="Tab")return;let b=Array.from(c.current.querySelectorAll("button:not(:disabled), input:not(:disabled)"));h.shiftKey&&document.activeElement===b[0]?(h.preventDefault(),b[b.length-1]?.focus()):!h.shiftKey&&document.activeElement===b[b.length-1]&&(h.preventDefault(),b[0]?.focus())},children:[st("div",{className:"chisel-color-plane",style:{backgroundColor:`hsl(${L.h} 100% 50%)`},onPointerDown:h=>{h.currentTarget.setPointerCapture(h.pointerId),te(h)},onPointerMove:h=>{h.currentTarget.hasPointerCapture(h.pointerId)&&te(h)},children:[Pe("span",{className:"chisel-color-thumb",style:{left:`${L.s*100}%`,top:`${(1-L.v)*100}%`,background:Mt({...L,a:1})}}),Pe("input",{className:"chisel-color-accessible",type:"range","aria-label":`${a} saturation`,min:0,max:100,value:Math.round(L.s*100),onChange:h=>Y({...L,s:Number(h.target.value)/100})}),Pe("input",{className:"chisel-color-accessible",type:"range","aria-label":`${a} brightness`,min:0,max:100,value:Math.round(L.v*100),onChange:h=>Y({...L,v:Number(h.target.value)/100})})]}),st("div",{className:"chisel-color-tools",children:[Pe("input",{className:"chisel-color-hue",type:"range","aria-label":`${a} hue`,min:0,max:360,value:Math.round(L.h),style:{"--hue":`hsl(${L.h} 100% 50%)`},onChange:h=>Y({...L,h:Number(h.target.value)})}),Pe("button",{type:"button","aria-label":`Pick ${a.toLowerCase()} from screen`,title:B?"Pick a color from the screen":"Screen color picker is not supported in this browser",disabled:!B||w,onClick:async()=>{let h=window.EyeDropper;if(h){C(!0);try{let b=await new h().open();c.current&&Y(Bt(b.sRGBHex))}catch{}finally{C(!1)}}},children:Pe(ot,{size:18})})]}),st("label",{className:"chisel-color-hex",children:["HEX",Pe("input",{"aria-label":`${a} hex`,value:M,maxLength:9,spellCheck:!1,"aria-invalid":S,onChange:h=>{let b=h.target.value.replace(/^#/,"");W(b);let V=/^(?:[0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i.test(b);if(O(!V),V){let fe=Bt(`#${b}`);v(fe),r(`#${b}`)}}})]}),S&&Pe("span",{className:"chisel-color-error",role:"status",children:"Enter a valid hex color."})]}),document.body)]})}import{useRef as Il}from"react";import{jsx as Zo}from"react/jsx-runtime";function ut({onMoveStart:a}){let t=Il(null);function r(l,d,c){let n=l.closest(".comment-box,.comment-thread"),m=n?.closest(".feedback-viewport");if(!n||!m)return;let L=m.getBoundingClientRect(),v=m.closest(".feedback-preview-scroll"),M=v?.getBoundingClientRect(),W=Math.max(L.left,M?.left??L.left),S=Math.min(L.right,M?M.left+v.clientWidth:L.right),O=Math.min(L.bottom,M?M.top+v.clientHeight:L.bottom),B=n.getBoundingClientRect();for(let[J,w]of[["x",Math.max(W+8-B.left,Math.min(d,S-8-B.right))],["y",Math.max(L.top+8-B.top,Math.min(c,O-8-B.bottom))]]){let C=`--comment-drag-${J}`;n.style.setProperty(C,`${(parseFloat(n.style.getPropertyValue(C))||0)+w}px`)}}return Zo("button",{type:"button",className:"comment-window-drag","aria-label":"Move comment window",title:"Drag to move \xB7 Arrow keys to nudge",onPointerDown:l=>{!l.isPrimary||l.button!==0||(l.preventDefault(),a?.(),l.currentTarget.closest(".comment-box,.comment-thread")?.getAnimations().forEach(d=>d.cancel()),l.currentTarget.setPointerCapture(l.pointerId),t.current={id:l.pointerId,x:l.clientX,y:l.clientY},l.currentTarget.dataset.dragging="true")},onPointerMove:l=>{let d=t.current;!d||d.id!==l.pointerId||(r(l.currentTarget,l.clientX-d.x,l.clientY-d.y),d.x=l.clientX,d.y=l.clientY)},onPointerUp:l=>{l.currentTarget.hasPointerCapture(l.pointerId)&&l.currentTarget.releasePointerCapture(l.pointerId)},onLostPointerCapture:l=>{t.current=null,delete l.currentTarget.dataset.dragging},onKeyDown:l=>{let d={ArrowLeft:[-1,0],ArrowRight:[1,0],ArrowUp:[0,-1],ArrowDown:[0,1]}[l.key];if(!d)return;l.preventDefault(),l.stopPropagation(),a?.();let c=l.shiftKey?40:10;r(l.currentTarget,d[0]*c,d[1]*c)},children:Zo(et,{size:16,"aria-hidden":"true"})})}function jo(a,t,r,l){let d={[a]:t},c=r.find(n=>n!==a);if(!c||!r.includes(a))return d;if(r.includes("width")){let n=parseFloat(l.width)/parseFloat(l.height),m=parseFloat(t);if(!Number.isFinite(n)||n<=0||!Number.isFinite(m))return d;d[c]=`${a==="width"?m/n:m*n}px`}else d[c]=t;return d}var _o=new Set(["color","background-color","opacity","font-family","font-size","font-weight","border-color","border-width","width","height",...["padding","margin"].flatMap(a=>["top","right","bottom","left"].map(t=>`${a}-${t}`))]);function Jo(a,t){let r={...a},l={...a};for(let d of Array.isArray(t)?t:[])!d||!Object.prototype.hasOwnProperty.call(a,d.property)||typeof d.before!="string"||typeof d.after!="string"||d.property!=="text"&&(!_o.has(d.property)||!CSS.supports(d.property,d.after))||(r[d.property]=d.before,l[d.property]=d.after);return{initial:r,values:l}}function Rt(a,t){if(!Array.isArray(t))return()=>{};let r=a.style,l=a.getAttribute("style"),d=a.textContent,c=!1;for(let m of t)!m||typeof m.after!="string"||(m.property==="text"&&!a.children.length?(a.textContent=m.after,c=!0):r&&_o.has(m.property)&&CSS.supports(m.property,m.after)&&r.setProperty(m.property,m.after,"important"));let n=!1;return()=>{n||(n=!0,l===null?a.removeAttribute("style"):a.setAttribute("style",l),c&&!a.children.length&&(a.textContent=d))}}import{Fragment as wl,jsx as E,jsxs as ne}from"react/jsx-runtime";var er=[["Text color","color","color"],["Background","background-color","color"],["Opacity","opacity","number"],["Font","font-family","font"],["Font size","font-size","number"],["Font weight","font-weight","weight"],["Border color","border-color","color"],["Border width","border-width","number"]],Cl=["top","bottom","left","right"],Qo=[{label:"Size",pairs:[["width","height"]]},...["padding","margin"].map(a=>({label:a[0].toUpperCase()+a.slice(1),pairs:[[`${a}-top`,`${a}-bottom`],[`${a}-left`,`${a}-right`]]}))];function kl(a){let t=a.ownerDocument.defaultView.getComputedStyle(a);return Object.fromEntries([["text",a.children.length?"":a.textContent??""],...["width","height"].map(r=>[r,t.getPropertyValue(r)]),...er.map(([,r])=>[r,t.getPropertyValue(r)]),...["padding","margin"].flatMap(r=>Cl.map(l=>[`${r}-${l}`,t.getPropertyValue(`${r}-${l}`)]))])}function ro({target:a,text:t,onText:r,onCancel:l,onPost:d,style:c,changes:n=[],editing:m=!1,commentId:L,renderComposer:v,hasExistingAttachments:M=!1,onDraftChange:W,hidden:S=!1,draftKey:O,onDiscard:B}){let[J]=Ke(()=>Jo(a?kl(a):{},n)),w=J.initial,[C,G]=Ke(J.values),[Y]=Ke(()=>({style:a?.getAttribute("style")??null,text:a?.textContent??null})),[te,h]=Ke({}),[b,V]=Ke(!1),[fe]=Ke(t),[I,U]=Ke(!1),[ge,Le]=Ke(""),[ce,fa]=Ke(!1),ca=bl();function Sa(){a&&(Y.style===null?a.removeAttribute("style"):a.setAttribute("style",Y.style),a.children.length||a.replaceChildren(a.ownerDocument.createTextNode(Y.text??"")))}async function ya(K=!0){K&&B&&!await B()||(Sa(),l())}Yo(()=>(a&&Rt(a,n),Sa),[a,Y]);function je(K,ke){if(!a)return;if(K==="text"){G(D=>({...D,text:ke})),a.children.length||a.replaceChildren(a.ownerDocument.createTextNode(ke));return}let Z=Qo.flatMap(D=>D.pairs).find(D=>D.includes(K)&&te[D.join(":")]),Ee=Z?jo(K,ke,Z,w):{[K]:ke};G(D=>({...D,...Ee}));for(let[D,F]of Object.entries(Ee))CSS.supports(D,F)&&a.style.setProperty(D,F,"important")}let Ha=Object.entries(C).some(([K,ke])=>ke!==w[K]),_e=!!(t.trim()||Ha||I||m&&t!==fe);Yo(()=>(W?.(_e),()=>W?.(!1)),[_e,W]);async function _(K=t,ke,Z,Ee){if(b||!K.trim()&&!Z?.length&&!M)return!1;let D=Object.entries(C).filter(([F,z])=>z!==w[F]).map(([F,z])=>({property:F,before:w[F],after:z}));if(D.some(F=>F.property!=="text"&&!CSS.supports(F.property,F.after)))return Le("Check the style values before posting."),!1;V(!0),Le("");try{let F=await d(D,K.trimEnd(),ke,Z,Ee);return F?await ya(!1):Le("Could not post. Your changes are still here; please try again."),F}catch{return Le("Could not post. Please try again."),!1}finally{V(!1)}}let Ea=(K,ke=!1,Z=!1,Ee)=>ne(wl,{children:[ne("div",{className:"comment-box-prompt",children:[a&&E("button",{type:"button",className:"comment-box-symbol","aria-label":"Comment settings",title:"Comment settings","aria-expanded":ce,"aria-controls":ca,disabled:b,onClick:()=>fa(D=>!D),children:E(Ca,{})}),K]}),a&&ne("div",{className:"comment-box-settings",id:ca,hidden:!ce,children:[ne("div",{className:"comment-box-element",children:[ne("code",{children:["<",a.tagName.toLowerCase(),">"]}),Ha&&E("span",{className:"comment-box-preview-status",role:"status",children:"Unsaved preview"}),E(ut,{})]}),ne("fieldset",{className:"comment-box-properties",disabled:b||!ce,children:[ne("label",{className:"comment-box-row",children:[E("span",{children:"Text"}),E("input",{"aria-label":"Element text",value:C.text,disabled:!!a.children.length,title:a.children.length?"Select a text-only element to change its text":void 0,onChange:D=>je("text",D.target.value)})]}),["Typography","Appearance"].map(D=>ne("div",{className:"comment-box-control-group",children:[E("h3",{children:D}),er.filter(([,F])=>D==="Typography"===["color","font-family","font-size","font-weight"].includes(F)).map(([F,z,Oe])=>ne("div",{className:"comment-box-row",children:[E("span",{children:F}),Oe==="color"?ce&&E(oo,{label:F,value:C[z],disabled:b,onChange:H=>je(z,H)}):Oe==="font"?E("select",{"aria-label":F,value:C[z],onChange:H=>je(z,H.target.value),children:Array.from(new Set([w[z],"Arial, sans-serif","Georgia, serif","system-ui","monospace"])).map(H=>E("option",{value:H,children:H},H))}):Oe==="weight"?E("select",{"aria-label":F,value:C[z],onChange:H=>je(z,H.target.value),children:Array.from(new Set([w[z],...[100,200,300,400,500,600,700,800,900].map(String)])).map(H=>E("option",{children:H},H))}):ne("div",{className:"comment-box-number",children:[E("input",{type:"number","aria-label":F,value:Number.isFinite(parseFloat(C[z]))?parseFloat(C[z]):"",min:0,max:z==="opacity"?1:void 0,step:"any",onChange:H=>je(z,H.target.value+(z==="opacity"?"":"px"))}),z!=="opacity"&&E("span",{children:"px"})]})]},z))]},D)),Qo.map(D=>ne("details",{className:"comment-box-group",open:!0,children:[ne("summary",{children:[D.label,E(la,{size:12,"aria-hidden":"true"})]}),D.pairs.map(F=>{let z=F.join(":"),Oe=D.label==="Size"?"Lock aspect ratio":`Link ${D.label.toLowerCase()} ${F[0].split("-")[1]} and ${F[1].split("-")[1]}`;return ne("div",{className:"comment-box-pair",children:[E("button",{className:"comment-box-link",type:"button","aria-label":Oe,title:Oe,"aria-pressed":!!te[z],onClick:()=>h(H=>({...H,[z]:!H[z]})),children:E(Ia,{size:12})}),F.map(H=>{let Je=H.includes("-")?H.split("-")[1]:H;return ne("label",{className:"comment-box-row",children:[E("span",{children:Je[0].toUpperCase()+Je.slice(1)}),ne("span",{className:"comment-box-number",children:[E("input",{type:"number",step:"any",min:H.startsWith("margin-")?void 0:0,"aria-label":H.replace("-"," ").replace(/^width$/,"Width").replace(/^height$/,"Height"),value:Number.isFinite(parseFloat(C[H]))?parseFloat(C[H]):"",onChange:Oa=>je(H,`${Oa.target.value}px`)}),E("span",{children:"px"})]})]},H)})]},z)})]},D.label))]})]}),ge&&E("p",{className:"comment-box-error",role:"alert",children:ge}),ne("footer",{className:"comment-box-footer",children:[E("button",{type:"button",className:"comment-box-cancel",onClick:()=>{ya()},disabled:b,children:"Cancel"}),E("span",{}),Ee,E("button",{type:"submit",className:"comment-box-submit","aria-label":m?"Save comment":"Post comment",title:m?"Save comment":"Post comment",disabled:b||Z||!t.trim()&&!ke&&!M,children:b?E("span",{className:"comment-box-saving"}):E(ga,{})})]})]}),ct=`comment-box${v?" comment-box-native":""}`,pt=K=>{K.key==="Escape"&&!b&&(K.preventDefault(),K.stopPropagation(),ya())};return v?E("div",{className:ct,hidden:S,"data-settings-open":ce,style:c,onKeyDown:pt,children:v({draftKey:O,text:t,onText:r,disabled:b,commentId:L,onAttachmentDraftChange:U,onSubmit:_,renderContent:Ea})}):E("form",{className:ct,hidden:S,"data-settings-open":ce,style:c,"aria-label":m?"Edit comment":"New comment",onKeyDown:pt,onSubmit:K=>{K.preventDefault(),_()},children:Ea(E("input",{"aria-label":"Comment",placeholder:"Leave a comment\u2026",value:t,onChange:K=>r(K.target.value),autoFocus:!0,maxLength:4e3,required:!0,disabled:b}))})}import{useEffect as Sl,useLayoutEffect as yl,useRef as Tt,useState as qt}from"react";function ka(a,t,r="/"){if(!a.trim())return null;try{let l=new URL(a.trim(),new URL(r,t)),d=decodeURIComponent(l.pathname);return!/^https?:$/.test(l.protocol)||l.origin!==t||l.username||l.password||/^\/(chisel|feedback)(\/|$)/.test(d)?null:l.pathname+l.search+l.hash}catch{return null}}function Ft(a){return a.split(/[?#]/,1)[0]}function lo(a){try{let{pathname:t,search:r,hash:l}=a.location;return t.startsWith("/")?t+r+l:null}catch{return null}}function ar(a,t){let r;try{r=a.history}catch{return()=>{}}let l=r.pushState,d=r.replaceState,c=!0,n=()=>{let v=lo(a);c&&v!==null&&t(v)},m=function(...v){l.apply(this,v),n()},L=function(...v){d.apply(this,v),n()};return r.pushState=m,r.replaceState=L,a.addEventListener("popstate",n),a.addEventListener("hashchange",n),n(),()=>{c=!1,r.pushState===m&&(r.pushState=l),r.replaceState===L&&(r.replaceState=d),a.removeEventListener("popstate",n),a.removeEventListener("hashchange",n)}}import{Fragment as vl,jsx as De,jsxs as na}from"react/jsx-runtime";function so({path:a,routes:t,disabled:r,onNavigate:l,onOpen:d,counts:c}){let n=Tt(null),m=Tt(null),L=Tt(null),v=Tt(!1),[M,W]=qt(!1),[S,O]=qt(""),[B,J]=qt(!1),[w,C]=qt(""),G=Ft(a),Y=[...new Set([a,...t].map(Ft))],te=S.trim();if(/^https?:\/\//i.test(te))try{let I=new URL(te);I.origin===window.location.origin&&(te=I.pathname)}catch{}else te=Ft(te);let h=te.toLocaleLowerCase(),b=Y.filter(I=>I.toLocaleLowerCase().includes(h));function V(I=!1){n.current&&(n.current.open=!1),W(!1),I&&m.current?.focus({preventScroll:!0})}yl(()=>{if(!M)return;let I=()=>{let U=n.current,ge=U?.closest(".feedback-sidebar-panel");U&&ge&&U.style.setProperty("--feedback-page-space",`${Math.max(0,U.getBoundingClientRect().top-ge.getBoundingClientRect().top-12)}px`)};return I(),L.current?.focus(),L.current?.select(),window.addEventListener("resize",I),()=>window.removeEventListener("resize",I)},[M]),Sl(()=>{if(!M)return;let I=Le=>{!v.current&&!n.current?.contains(Le.target)&&V()},U=Le=>{Le.key!=="Escape"||v.current||(Le.preventDefault(),Le.stopPropagation(),V(!0))},ge=()=>{v.current||V()};return document.addEventListener("pointerdown",I),document.addEventListener("keydown",U,!0),window.addEventListener("blur",ge),()=>{document.removeEventListener("pointerdown",I),document.removeEventListener("keydown",U,!0),window.removeEventListener("blur",ge)}},[M]);async function fe(I){if(!(r||v.current)){v.current=!0,J(!0),C("");try{await l(I)&&V(!0)}catch(U){C(U instanceof Error&&U.message?U.message:"This page could not be opened. Try again.")}finally{v.current=!1,J(!1)}}}return na("details",{ref:n,className:"feedback-page-control",onToggle:I=>W(I.currentTarget.open),children:[na("summary",{ref:m,"aria-label":`Current page: ${a}`,"aria-disabled":r||B,tabIndex:r||B?-1:0,onClick:I=>{I.preventDefault(),!(r||B||!n.current)&&(n.current.open?V():(O(""),C(""),d?.(),n.current.open=!0,W(!0)))},children:[De(Qa,{"aria-hidden":"true"}),De("span",{title:a,children:a}),De(La,{className:"feedback-page-chevron","aria-hidden":"true"})]}),na("div",{className:"feedback-page-popover",children:[na("form",{className:"feedback-page-form",onSubmit:I=>{I.preventDefault(),fe(S)},children:[De("input",{ref:L,"aria-label":"Page URL or path",value:S,placeholder:"Enter a URL or path",autoComplete:"off",autoCapitalize:"off",spellCheck:!1,disabled:r||B,onChange:I=>{O(I.target.value),C("")}}),De("button",{type:"submit","aria-label":"Go to page",title:"Go to page","aria-busy":B,disabled:r||B||!S.trim(),children:De(_a,{"aria-hidden":"true"})})]}),w&&De("p",{className:"feedback-page-error",role:"alert",children:w}),na("nav",{className:"feedback-page-routes","aria-label":"Known pages",children:[b.map(I=>na("button",{type:"button",title:I,"aria-current":I===G?"page":void 0,disabled:r||B,onClick:()=>{I===G?V(!0):fe(I)},children:[De("span",{children:h?na(vl,{children:[I.slice(0,I.toLocaleLowerCase().indexOf(h)),De("mark",{children:I.slice(I.toLocaleLowerCase().indexOf(h),I.toLocaleLowerCase().indexOf(h)+te.length)}),I.slice(I.toLocaleLowerCase().indexOf(h)+te.length)]}):I}),c?.[I]&&na("small",{"aria-hidden":"true",children:[c[I].open," open",c[I].unread?` \xB7 ${c[I].unread} unread`:""]}),I===G&&De(ga,{"aria-hidden":"true"})]},I)),!b.length&&De("p",{className:"feedback-page-empty",children:"No matching pages"})]})]})]})}import{useEffect as or,useRef as uo,useState as Pl}from"react";import{jsx as it,jsxs as tr}from"react/jsx-runtime";function Dl({request:a,finish:t,returnFocus:r}){let l=uo(null);return or(()=>(l.current?.showModal(),()=>r?.focus({preventScroll:!0})),[]),tr("dialog",{ref:l,className:"feedback-confirmation","aria-labelledby":"feedback-confirmation-title","aria-describedby":"feedback-confirmation-description",onCancel:d=>{d.preventDefault(),t(!1)},children:[it("h2",{id:"feedback-confirmation-title",children:a.title}),it("p",{id:"feedback-confirmation-description",children:a.description}),tr("div",{children:[it("button",{type:"button",autoFocus:!0,onClick:()=>t(!1),children:"Cancel"}),it("button",{type:"button","data-danger":a.danger,onClick:()=>t(!0),children:a.action})]})]})}function rr(){let[a,t]=Pl(null),r=uo(null),l=uo(null);or(()=>()=>l.current?.(!1),[]);function d(n){l.current?.(n),l.current=null,t(null)}function c(n){return l.current?Promise.resolve(!1):(r.current=document.activeElement,t(n),new Promise(m=>{l.current=m}))}return{confirm:c,dialog:a&&it(Dl,{request:a,finish:d,returnFocus:r.current})}}function lr(a){if(!(a.defaultPrevented||a.repeat||a.isComposing||a.ctrlKey||a.metaKey||a.altKey||a.composedPath().some(r=>{let l=r;return l.nodeType===1&&(l.isContentEditable||l.closest('input,textarea,select,[role="textbox"],[role="combobox"],[contenteditable]:not([contenteditable="false"])'))})))switch(a.key.toLowerCase()){case"c":return a.shiftKey?"toggle-comments":"comment";case"e":return"edit";case"v":return"view";case"d":return"desktop";case"t":return"tablet";case"m":return"mobile"}}function io(a){return a<768?"mobile":a<1024?"tablet":"desktop"}var dr={desktop:0,tablet:1,mobile:2};function nt(a,t){return dr[a??"desktop"]<=dr[t]}function sr(a){let t,r=()=>clearTimeout(t);return{cancel:r,schedule(){r(),t=setTimeout(a,70)}}}function ur(a,t,r){let m=(w,C)=>Math.max(8,Math.min(w,C)),L=a.x+36+8,v=a.x+-4-8-t.width,M=r.width-t.width-8,W=Math.max(0,r.height-16);if(L<=M||v>=8)return{left:m(L<=M?L:v,M),top:m(a.y,r.height-Math.min(t.height,W)-8),maxHeight:W};let S=m(a.y+36+8,r.height-8),O=m(a.y+-4-8,r.height-8),B=r.height-S-8,J=O-8;return B>=J?{left:m(a.x+-4,M),top:S,maxHeight:B}:{left:m(a.x+-4,M),top:O-Math.min(t.height,J),maxHeight:J}}function no(a,t,r){let l=null;try{l=a.selector?t?.querySelector(a.selector)??null:null}catch{}let d=l?.getBoundingClientRect(),c=a.relative;return d&&c&&d.width&&d.height?{left:d.left+d.width*c.x,top:d.top+d.height*c.y,width:d.width*c.width,height:d.height*c.height}:{left:a.x-r.x,top:a.y-r.y,width:a.width,height:a.height}}var Ut=new WeakMap;function Ht(a,t=!1,r){if(window.matchMedia("(prefers-reduced-motion: reduce)").matches||!a.animate)return r?.cancel(),null;let l=r?.playState==="running",d=window.getComputedStyle(a);if(a.dataset.expanded==="true"){let S={opacity:0,transform:"translateY(4px)"},O={opacity:1,transform:"translateY(0px)"},B=l?{opacity:d.opacity,transform:d.transform}:t?O:S;return r?.cancel(),a.animate([B,t?S:O],{duration:t?100:140,easing:"cubic-bezier(.4,0,.2,1)"})}let c=a.querySelector(".feedback-hover-preview"),n=Ut.get(a)??{width:a.offsetWidth,height:a.offsetHeight,content:c,contentWidth:c?.style.width??""},m={width:`${(Number(a.dataset.pinWidth)||40)-8}px`,height:"32px",opacity:0,transform:`translate(${Number(a.dataset.pinX)-a.offsetLeft}px, ${Number(a.dataset.pinY)-a.offsetTop}px)`,borderRadius:"16px 16px 16px 0px"},L={width:`${n.width}px`,height:`${n.height}px`,opacity:1,transform:"translate(0px, 0px)",borderRadius:d.borderRadius},v=l?{width:d.width,height:d.height,opacity:d.opacity,transform:d.transform,borderRadius:d.borderRadius}:t?L:m;c&&(c.style.width=`${n.width-(parseFloat(d.borderLeftWidth)||0)-(parseFloat(d.borderRightWidth)||0)}px`),r?.cancel();let M=a.animate([{...v,overflow:"hidden"},{...t?m:L,overflow:"hidden"}],{duration:t?120:140,easing:"cubic-bezier(.4,0,.2,1)",fill:t?"forwards":"none"});n.animation=M,Ut.set(a,n);let W=()=>{Ut.get(a)?.animation===M&&(n.content&&(n.content.style.width=n.contentWidth),Ut.delete(a))};return M.finished.then(()=>{t||W()},W),M}var ir=`:is(.chisel-root,.feedback-shell,.chisel-sign-in,.chisel-color-picker,.comment-box,.chisel-project-directory) :focus{outline:none}.chisel-updates,.chisel-project-directory,.chisel-root,.feedback-shell,.chisel-sign-in,.chisel-color-picker,.comment-box{color-scheme:light;--chisel-ui-panel-shadow:0 4px 20px rgba(0,0,0,.08);--chisel-ui-canvas:#f7f7f7;--chisel-ui-surface:#ffffff;--chisel-ui-raised:#f5f5f5;--chisel-ui-inset:#eeeeee;--chisel-ui-hover:#f0f0f0;--chisel-ui-selected:#eaeaea;--chisel-ui-border:#e2e2e2;--chisel-ui-border-strong:#c4c4c4;--chisel-ui-text:#242424;--chisel-ui-secondary:#626262;--chisel-ui-muted:#686868;--chisel-ui-focus:#2468d3;--chisel-ui-accent-text:#2468d3;--chisel-ui-accent-surface:#edf4ff;--chisel-ui-action:#242424;--chisel-ui-action-text:#ffffff;--chisel-ui-danger:#b33737;--chisel-ui-avatar:#ededed;--chisel-ui-avatar-text:#565656;--chisel-ui-scrollbar:#c2c2c2;--chisel-ui-checker-light:#e5e5e5;--chisel-ui-checker-dark:#c7c7c7}@media(prefers-color-scheme:dark){.chisel-updates,.chisel-project-directory,.chisel-root,.feedback-shell,.chisel-sign-in,.chisel-color-picker,.comment-box{color-scheme:dark;--chisel-ui-panel-shadow:0 4px 20px #0003;--chisel-ui-canvas:#171717;--chisel-ui-surface:#222222;--chisel-ui-raised:#2a2a2a;--chisel-ui-inset:#191919;--chisel-ui-hover:#303030;--chisel-ui-selected:#383838;--chisel-ui-border:#3c3c3c;--chisel-ui-border-strong:#555555;--chisel-ui-text:#ededed;--chisel-ui-secondary:#b7b7b7;--chisel-ui-muted:#a5a5a5;--chisel-ui-focus:#8bb9ff;--chisel-ui-accent-text:#8bb9ff;--chisel-ui-accent-surface:#253447;--chisel-ui-action:#ededed;--chisel-ui-action-text:#111111;--chisel-ui-danger:#ffa5a5;--chisel-ui-avatar:#383838;--chisel-ui-avatar-text:#cccccc;--chisel-ui-scrollbar:#50504d;--chisel-ui-checker-light:#555555;--chisel-ui-checker-dark:#333333}}.chisel-updates,.chisel-project-directory,.chisel-root,.feedback-shell,.chisel-sign-in,.chisel-color-picker,.comment-box{--chisel-ui-font:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--chisel-ui-space:4px;--chisel-ui-control:40px;--chisel-ui-radius:8px;--chisel-ui-text-size:13px;--chisel-ui-small:12px;--chisel-ui-motion:.12s cubic-bezier(.2,0,0,1);--chisel-ui-popover-shadow:0 2px 6px #0000000f,0 12px 36px #0000001f}@media(prefers-color-scheme:dark){.chisel-updates,.chisel-project-directory,.chisel-root,.feedback-shell,.chisel-sign-in,.chisel-color-picker,.comment-box{--chisel-ui-popover-shadow:0 0 0 1px #ffffff0d,0 4px 12px #0003,0 16px 40px #0004}}
2
2
  `;import{jsx as Ml}from"react/jsx-runtime";var Al=`.feedback-confirmation{width:360px;max-width:calc(100vw - 32px);padding:24px;border:0;border-radius:16px;background:var(--chisel-ui-surface);color:var(--chisel-ui-text);box-shadow:var(--chisel-ui-popover-shadow);font:14px var(--chisel-ui-font)}.feedback-confirmation::backdrop{background:#0005}.feedback-confirmation h2{margin:0 0 8px;font-size:16px;font-weight:600}.feedback-confirmation p{margin:0;color:var(--chisel-ui-secondary);line-height:1.6;text-wrap:pretty}.feedback-confirmation>div{display:flex;justify-content:flex-end;gap:8px;margin-top:24px}.feedback-confirmation button{min-height:40px;padding:0 16px;border:0;border-radius:8px;background:var(--chisel-ui-raised);color:var(--chisel-ui-text)}.feedback-confirmation button[data-danger=true]{background:var(--chisel-ui-danger);color:var(--chisel-ui-surface)}
3
- `+ir+`.feedback-shell,.feedback-shell *{box-sizing:border-box}.feedback-shell{font-synthesis:none;-webkit-font-smoothing:antialiased;position:fixed;inset:0;background:var(--chisel-ui-canvas);color:var(--chisel-ui-text);z-index:999999;font-family:var(--chisel-ui-font);font-size:13px;letter-spacing:0}.feedback-avatar{overflow:hidden}.feedback-account{position:relative}.feedback-account summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:center;min-width:40px;min-height:40px}.feedback-account summary::-webkit-details-marker{display:none}.feedback-account>div{position:absolute;right:0;top:44px;z-index:20;background:var(--chisel-ui-surface);color:var(--chisel-ui-text);border:0;box-shadow:var(--chisel-ui-popover-shadow);border-radius:12px;padding:16px;min-width:220px;max-width:calc(100vw - 32px);display:flex;flex-direction:column;gap:8px;overflow-wrap:anywhere}.feedback-account[open]>div{transform-origin:top right;animation:chisel-account-in .16s cubic-bezier(.2,0,0,1)}@keyframes chisel-account-in{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media(prefers-reduced-motion:reduce){.feedback-account[open]>div{animation:none}}.feedback-account>div>span{color:var(--chisel-ui-muted);font-size:12px;line-height:1.5}.feedback-account button:hover{background:var(--chisel-ui-hover)}.feedback-account button{display:flex;align-items:center;gap:8px;color:var(--chisel-ui-text);background:transparent;border:0;min-height:40px;padding:8px;border-radius:8px}.chisel-sign-in{min-height:100dvh;display:grid;place-items:center;padding:24px;background:var(--chisel-ui-canvas);color:var(--chisel-ui-text);font-family:var(--chisel-ui-font)}.chisel-sign-in section{width:100%;max-width:360px;text-align:left}.chisel-sign-in-brand{font-size:24px;letter-spacing:-.8px}.chisel-sign-in h1{font-size:24px;font-weight:500;letter-spacing:-.4px;line-height:1.25;margin:32px 0 8px}.chisel-sign-in p{font-size:14px;line-height:1.6;color:var(--chisel-ui-secondary);margin:12px 0 24px}.chisel-sign-in button{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:44px;padding:12px;background:var(--chisel-ui-action);color:var(--chisel-ui-action-text);border:0;border-radius:8px;cursor:pointer}.chisel-sign-in button:disabled{opacity:.5;cursor:not-allowed}.chisel-sign-in a{display:inline-flex;align-items:center;min-height:40px;margin-top:16px;font-size:13px;color:var(--chisel-ui-secondary)}.chisel-sign-in [role=alert]{color:var(--chisel-ui-danger)}.chisel-spin{animation:chisel-spin 1s linear infinite}@keyframes chisel-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.chisel-spin{animation:none}}.feedback-sidebar[hidden],.feedback-comment-layer[hidden]{display:none}.feedback-shell.comments-hidden .feedback-canvas,.feedback-shell.is-editing .feedback-canvas{height:100%;flex:1}.feedback-comment-area{position:absolute;pointer-events:none;z-index:1;border:2px solid var(--chisel-ui-focus);background:color-mix(in srgb,var(--chisel-ui-focus) 8%,transparent);border-radius:4px}.feedback-element-box{position:absolute;pointer-events:none;z-index:1;border:1px solid var(--chisel-ui-focus);background:color-mix(in srgb,var(--chisel-ui-focus) 4%,transparent);box-sizing:border-box}.feedback-element-box.is-selected{border-width:2px;background:color-mix(in srgb,var(--chisel-ui-focus) 6%,transparent)}.feedback-thread-popup{max-height:calc(100% - 16px);overflow:auto}.feedback-thread-popup[hidden]{display:none}.feedback-thread-message,.feedback-thread-replies{overflow-wrap:anywhere;line-height:1.6;margin:0}.feedback-thread-replies{max-height:140px;overflow:auto}.feedback-thread-actions{display:flex;justify-content:space-between;align-items:center;margin-top:8px;gap:8px}.feedback-thread-actions .feedback-resolve{margin:0;font-size:11px;padding:8px}.feedback-composer-heading>button{display:grid;place-items:center;width:24px;height:24px;border-radius:4px}.feedback-composer-heading>button:hover{background:var(--chisel-ui-raised)}.feedback-shell button,.feedback-shell input,.feedback-shell textarea{font:inherit}.feedback-shell button{cursor:pointer}.feedback-shell button:disabled{cursor:not-allowed}.feedback-shell :where(button,summary){-webkit-tap-highlight-color:transparent}.feedback-workspace{display:flex;height:100%}.feedback-canvas{position:relative;flex:1;min-width:0;padding:0;container-type:inline-size}.feedback-preview-scroll{height:100%;overflow:auto;padding:0 12px}.feedback-preview-frame{position:relative;height:100%;margin-inline:auto}.feedback-viewport{position:relative;width:100%;height:100%;overflow:hidden;background:#fff;border:0;border-radius:0}.feedback-viewport iframe{width:100%;height:100%;border:0;display:block}.feedback-preview-resize{position:absolute;top:0;bottom:0;width:12px;cursor:ew-resize;touch-action:none;user-select:none}.feedback-preview-resize[data-edge=left]{left:-12px}.feedback-preview-resize[data-edge=right]{right:-12px}.feedback-preview-resize:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:3px;height:32px;border-radius:999px;background:var(--chisel-ui-muted);opacity:.35}.feedback-preview-resize:hover:after,.feedback-preview-resize:active:after{opacity:1}.feedback-pin{position:absolute;transform:translate(-4px,-4px);width:40px;height:40px;display:grid;place-items:center;padding:8px;border-radius:50% 50% 50% 0;background:transparent;color:var(--chisel-ui-text);border:0;box-sizing:border-box;z-index:2}.feedback-comment-layer[data-hover-preview=true] .feedback-pin:not(.selected){z-index:5}.feedback-pin:before{content:"";position:absolute;inset:4px;border:1px solid var(--chisel-ui-border);border-radius:inherit;background:var(--chisel-ui-surface);box-shadow:0 2px 7px #0002;z-index:-1}.feedback-pin .feedback-avatar{width:24px;height:24px;font-size:12px}.feedback-pin-group{display:flex;width:auto;border-radius:20px 20px 20px 0}.feedback-pin-group .feedback-avatar+.feedback-avatar{margin-left:-4px}.feedback-pin .feedback-avatar img{width:100%;height:100%;object-fit:cover}.feedback-pin .feedback-pin-more{font-size:9px;font-variant-numeric:tabular-nums}.feedback-toolbar{position:absolute;z-index:2;bottom:17px;left:24px;display:flex;padding:4px;gap:4px;background:var(--chisel-ui-surface);color:var(--chisel-ui-text);border:0;border-radius:999px;box-shadow:var(--chisel-ui-popover-shadow)}.feedback-toolbar button{border:1px solid transparent;background:transparent;color:var(--chisel-ui-muted);height:var(--chisel-ui-control);padding:0 16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;white-space:nowrap;transition:background-color var(--chisel-ui-motion),color var(--chisel-ui-motion),border-color var(--chisel-ui-motion)}.feedback-toolbar button:hover{background:var(--chisel-ui-raised);color:var(--chisel-ui-text)}.feedback-toolbar button[aria-pressed=true]{background:var(--chisel-ui-raised);color:var(--chisel-ui-text);border-color:transparent}.feedback-breakpoints{left:auto;right:24px}.feedback-breakpoints button{width:40px;padding:0}.feedback-breakpoints button{position:relative}.feedback-breakpoints sup{position:absolute;right:-2px;top:-3px;min-width:18px;padding:2px 4px;border-radius:999px;background:var(--chisel-ui-text);color:var(--chisel-ui-surface);font-size:11px;line-height:1.2;font-variant-numeric:tabular-nums}.feedback-thread-status{position:relative;display:inline-flex;align-items:center;min-width:0;min-height:40px;margin-right:auto}.feedback-status-value{display:inline-flex;align-items:center;gap:4px;max-width:100%;height:28px;padding:0 8px;border-radius:999px;background:var(--chisel-ui-raised);color:var(--chisel-ui-secondary);font-size:12px;line-height:1;white-space:nowrap;transition:background-color var(--chisel-ui-motion),color var(--chisel-ui-motion)}.feedback-status-value>span{min-width:0;overflow:hidden;text-overflow:ellipsis}.feedback-status-value svg{width:14px;height:14px;flex-shrink:0;stroke-width:1.75}.feedback-status-value>svg:last-child{width:12px}.feedback-thread-status[data-state=ready] .feedback-status-value{background:var(--chisel-ui-accent-surface);color:var(--chisel-ui-accent-text)}.feedback-thread-status select{position:absolute;inset:0;width:100%;height:100%;min-height:40px;opacity:0;cursor:pointer;font:inherit}.feedback-thread-status select:disabled{cursor:default}.feedback-thread-status:has(select:enabled):hover .feedback-status-value{background:var(--chisel-ui-hover)}.feedback-guide,.feedback-notice{padding:10px;margin:0 0 8px;background:var(--chisel-ui-raised);border-radius:12px;font-size:12px;line-height:1.5}.feedback-guide{padding:12px}.feedback-guide strong{font-size:13px;font-weight:600}.feedback-guide ul{list-style:none;padding:0;margin:10px 0;display:grid;gap:8px}.feedback-guide li{display:flex;align-items:center;gap:8px}.feedback-guide li svg{width:16px;height:16px;flex-shrink:0;color:var(--chisel-ui-muted);stroke-width:1.75}.feedback-guide p{margin:8px 0;color:var(--chisel-ui-muted);text-wrap:pretty}.feedback-guide button,.feedback-notice button,.feedback-export button{min-height:40px;background:none;border:0;color:var(--chisel-ui-text)}.feedback-guide button{width:100%;border-radius:8px;background:var(--chisel-ui-surface);font-weight:500;transition:background-color var(--chisel-ui-motion)}.feedback-guide button:hover{background:var(--chisel-ui-hover)}.feedback-notice{position:relative;padding-right:34px}.feedback-notice>button[aria-label]{position:absolute;right:0;top:0;width:32px}.feedback-export{flex-shrink:0;border-top:1px solid var(--chisel-ui-border);font-size:12px}.feedback-export>summary{display:flex;align-items:center;gap:8px;min-height:40px;padding:8px;cursor:pointer;list-style:none;color:var(--chisel-ui-secondary)}.feedback-export>summary::-webkit-details-marker{display:none}.feedback-export>summary:hover{color:var(--chisel-ui-text)}.feedback-export>summary>svg:last-child{margin-left:auto;transition:transform var(--chisel-ui-motion)}.feedback-export[open]>summary>svg:last-child{transform:rotate(90deg)}.feedback-export>div{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 8px 8px;color:var(--chisel-ui-muted);font-variant-numeric:tabular-nums}.feedback-export button{display:flex;align-items:center;gap:6px;padding:0 10px;border-radius:8px;background:var(--chisel-ui-raised)}.feedback-export button:disabled{opacity:.5}.feedback-shell .feedback-comment:has(.feedback-comment-select){position:relative;padding-left:40px}.feedback-shell .feedback-comment-select{position:absolute;left:0;top:8px;width:40px;height:40px;display:grid;place-items:center;cursor:pointer}.feedback-comment-select input{width:16px;height:16px;margin:0;accent-color:var(--chisel-ui-text)}@media(prefers-reduced-motion:reduce){.feedback-export>summary>svg:last-child{transition:none}}.feedback-account a{color:var(--chisel-ui-text);min-height:40px;display:inline-flex;align-items:center}.feedback-page-routes small{margin-left:auto;color:var(--chisel-ui-muted);font-size:12px}.chisel-project-directory{background:var(--chisel-ui-canvas);color:var(--chisel-ui-text);font:14px var(--chisel-ui-font);min-height:100dvh;padding:32px max(24px,calc((100vw - 840px)/2))}.chisel-project-directory header{display:flex;justify-content:space-between;gap:16px;align-items:center}.chisel-project-directory header>strong{flex-shrink:0}.chisel-project-directory header>span{min-width:0;overflow-wrap:anywhere;text-align:right}.chisel-project-directory h2{overflow-wrap:anywhere}.chisel-project-directory section{background:var(--chisel-ui-surface);border-radius:16px;padding:20px;margin-top:16px}.chisel-project-directory form,.chisel-project-directory label{display:flex;flex-direction:column;gap:8px;margin-top:12px}.chisel-project-directory input,.chisel-project-directory button{min-height:40px;padding:8px 12px;border:1px solid var(--chisel-ui-border);border-radius:8px;background:var(--chisel-ui-surface);color:var(--chisel-ui-text);font:inherit}.chisel-project-directory a{display:inline-flex;align-items:center;min-height:40px;color:var(--chisel-ui-accent-text)}.chisel-project-directory a:hover{text-decoration:underline;text-underline-offset:3px}.feedback-preview-width{display:flex;align-items:center;padding-right:8px;font-size:12px;font-variant-numeric:tabular-nums;color:var(--chisel-ui-muted);border-right:1px solid var(--chisel-ui-border)}.feedback-shell .feedback-preview-width input{width:52px;min-height:40px;padding:0 4px 0 8px;border:0;border-radius:999px;background:transparent;text-align:right;font-size:12px;font-variant-numeric:tabular-nums}@container (max-width:520px){.feedback-toolbar{left:16px;bottom:10px}.feedback-breakpoints{left:auto;right:16px}.feedback-toolbar button{width:40px;padding:0}.feedback-toolbar button span{display:none}}@container (max-width:400px){.feedback-toolbar:not(.feedback-breakpoints){bottom:66px}}@media(pointer:coarse){.feedback-shell .feedback-preview-width input,.feedback-guide button{min-height:44px}}.feedback-collaboration{display:flex;align-items:center;gap:8px;min-height:32px;margin-bottom:8px;color:var(--chisel-ui-muted);font-size:12px}.feedback-reviewers{display:flex;flex:1;min-width:0;overflow:hidden}.feedback-reviewers .feedback-avatar{width:24px;height:24px}.feedback-reviewers .feedback-avatar+.feedback-avatar{margin-left:-4px}.feedback-reviewers img{width:100%;height:100%;object-fit:cover}.feedback-unread-count,.feedback-unread-label{color:var(--chisel-ui-accent-text);font-size:12px;font-variant-numeric:tabular-nums}.feedback-unread-label{display:inline}@media(prefers-reduced-motion:reduce){.feedback-toolbar button,.feedback-comment{transition:none}}.feedback-shell button svg,.feedback-shell summary svg{width:16px;height:16px;stroke-width:1.75;flex-shrink:0}.feedback-primary,.feedback-resolve,.feedback-thread form button{display:inline-flex;align-items:center;justify-content:center;gap:6px}.feedback-sidebar{--feedback-panel-divider:var(--chisel-ui-border);--feedback-panel-shadow:var(--chisel-ui-panel-shadow);width:400px;flex-shrink:0;padding:0;background:transparent;color:var(--chisel-ui-text);border:0;display:flex;flex-direction:column;min-height:0;font-family:var(--chisel-ui-font);font-size:13px;letter-spacing:0;-webkit-font-smoothing:antialiased;color-scheme:inherit}.feedback-sidebar-panel{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden auto;overscroll-behavior:contain;padding:16px 20px 0;border:0;border-radius:0;background:var(--chisel-ui-surface)}.feedback-search{display:flex;align-items:center;gap:8px;min-height:40px;margin-bottom:8px;padding:0 8px;border-radius:8px;background:transparent;color:var(--chisel-ui-muted)}.feedback-search svg{flex-shrink:0}.feedback-shell .feedback-search input{min-width:0;min-height:40px;padding:0;border:0;background:transparent;font-size:13px}.feedback-search input::placeholder{color:var(--chisel-ui-muted)}.feedback-search:hover{background:var(--chisel-ui-raised)}.feedback-page-control{position:relative;flex-shrink:0;margin:8px 0}.feedback-page-control:last-child{margin-bottom:16px}.feedback-page-control+.feedback-review-invite{padding-top:0}.feedback-page-control>summary{display:flex;align-items:center;gap:8px;min-height:40px;padding:0 8px;border-radius:8px;list-style:none;color:var(--chisel-ui-secondary);cursor:pointer}.feedback-page-control>summary::-webkit-details-marker{display:none}.feedback-page-control>summary:hover,.feedback-page-control[open]>summary{background:var(--chisel-ui-raised);color:var(--chisel-ui-text)}.feedback-page-control>summary[aria-disabled=true]{opacity:.5;cursor:default}.feedback-page-control>summary>span,.feedback-page-routes button>span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;font:12px/20px ui-monospace,SFMono-Regular,monospace}.feedback-page-chevron{transform:rotate(180deg);transition:transform var(--chisel-ui-motion)}.feedback-page-control[open] .feedback-page-chevron{transform:rotate(0)}.feedback-page-popover{position:absolute;bottom:calc(100% + 4px);left:0;right:0;z-index:30;display:flex;flex-direction:column;gap:6px;max-height:min(var(--feedback-page-space,320px),calc(min(240px,30dvh) + 64px));overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--chisel-ui-scrollbar) transparent;padding:8px;border-radius:12px;background:var(--chisel-ui-surface);box-shadow:var(--chisel-ui-popover-shadow)}.feedback-page-form{position:sticky;top:0;z-index:1;display:flex;flex-shrink:0;align-items:center;gap:4px;border-radius:8px;background:var(--chisel-ui-raised)}.feedback-shell .feedback-page-form input{flex:1;min-width:0;min-height:40px;padding:0 10px;border:0;border-radius:8px;background:transparent;font-size:13px}.feedback-page-form button{display:grid;place-items:center;flex-shrink:0;width:40px;min-height:40px;padding:0;border:0;border-radius:8px;background:transparent;color:var(--chisel-ui-text)}.feedback-page-routes{display:flex;flex-direction:column;flex-shrink:0;gap:2px;min-height:0}.feedback-page-routes button{display:flex;align-items:center;gap:8px;width:100%;min-height:40px;padding:0 8px;border:0;border-radius:8px;background:transparent;color:var(--chisel-ui-secondary)}.feedback-page-routes button[aria-current=page]{background:var(--chisel-ui-selected);color:var(--chisel-ui-text)}.feedback-page-routes mark{background:var(--chisel-ui-selected);color:var(--chisel-ui-text);border-radius:2px;font-weight:700}.feedback-page-empty{margin:0;padding:10px 8px;color:var(--chisel-ui-secondary);font-size:12px}.feedback-page-control button:hover{background:var(--chisel-ui-hover);color:var(--chisel-ui-text)}.feedback-page-control button:disabled{opacity:.5}.feedback-page-control button:active{transform:scale(.96)}.feedback-page-error{margin:0;padding:4px 8px;color:var(--chisel-ui-danger);font-size:12px;line-height:1.5;overflow-wrap:anywhere}@media(pointer:coarse){.feedback-page-control>summary,.feedback-page-control button,.feedback-shell .feedback-page-form input{min-height:44px}.feedback-page-form button{width:44px}}@media(prefers-reduced-motion:reduce){.feedback-page-chevron{transition:none}}.feedback-sidebar-title{min-height:40px;padding:0;margin-bottom:12px;border:0;display:flex;align-items:center;justify-content:space-between;gap:6px}.feedback-sidebar h1{font:600 15px/22px var(--chisel-ui-font);letter-spacing:-.01em;margin:0;color:var(--chisel-ui-text)}.feedback-sidebar h1 span{font:500 12px ui-monospace,SFMono-Regular,Menlo,monospace;font-variant-numeric:tabular-nums;margin-left:6px;color:var(--chisel-ui-muted)}.feedback-avatar{width:27px;height:27px;background:var(--chisel-ui-avatar);color:var(--chisel-ui-avatar-text);border:0;display:inline-flex;justify-content:center;align-items:center;border-radius:50%;font-size:11px;flex-shrink:0}.feedback-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));flex-shrink:0;gap:6px;margin:0 0 8px;padding:4px;border-radius:12px;background:var(--chisel-ui-raised)}.feedback-tabs button{position:relative;min-width:0;min-height:40px;background:transparent;border:0;border-radius:8px;color:var(--chisel-ui-secondary);padding:0 12px;font-size:13px;font-weight:500;transition:background-color var(--chisel-ui-motion),color var(--chisel-ui-motion),box-shadow var(--chisel-ui-motion)}.feedback-tabs button+button:before{content:"";position:absolute;left:-3.5px;top:50%;width:1px;height:16px;transform:translateY(-50%);background:var(--chisel-ui-border);pointer-events:none}.feedback-tabs button:hover{background:var(--chisel-ui-hover);color:var(--chisel-ui-text)}.feedback-tabs button[aria-pressed=true]{color:var(--chisel-ui-text);background:var(--chisel-ui-surface);box-shadow:0 1px 3px #0000000d,0 0 0 1px var(--chisel-ui-border)}@media(prefers-reduced-motion:reduce){.feedback-tabs button{transition:none}}.feedback-comment-list{flex:1;min-height:160px;overflow:auto;overscroll-behavior:contain;padding:0;scrollbar-width:thin;scrollbar-color:var(--chisel-ui-scrollbar) transparent}.feedback-comment{border:0;border-radius:8px;padding:16px 8px;margin-bottom:8px;background:transparent;transition:background-color var(--chisel-ui-motion)}.feedback-comment:hover,.feedback-comment.active{background:var(--chisel-ui-raised)}.feedback-comment-main{display:flex;flex-direction:column;align-items:stretch;gap:8px;border:0;background:none;text-align:left;width:100%;min-height:40px;padding:0;color:inherit}.feedback-comment-heading{display:flex;align-items:center;gap:10px}.feedback-comment-identity{flex:1;min-width:0}.feedback-comment-activity{display:flex;align-items:center;gap:8px;margin-left:38px;margin-top:4px}.feedback-comment-heading>.feedback-avatar{width:28px;height:28px}.feedback-comment-heading img{width:100%;height:100%;object-fit:cover}.feedback-comment-avatars{display:flex;gap:4px}.feedback-comment-avatars .feedback-avatar{width:20px;height:20px;font-size:10px}.feedback-comment-avatars img{width:100%;height:100%;object-fit:cover}.feedback-comment-unread-dot{width:8px;height:8px;flex-shrink:0;border-radius:50%;background:var(--chisel-ui-focus)}.feedback-comment-status{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--chisel-ui-muted);font-size:12px;line-height:1.5}.feedback-comment-meta{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;font-size:13px;line-height:1.5}.feedback-comment-meta strong{font-weight:500;overflow-wrap:anywhere}.feedback-comment-meta time{color:var(--chisel-ui-muted);font-size:12px;font-variant-numeric:tabular-nums}.feedback-comment-body{display:block;margin-left:38px;line-height:1.5;overflow-wrap:anywhere;color:var(--chisel-ui-text);font-size:14px;white-space:pre-wrap}.feedback-comment-reply-count{color:var(--chisel-ui-secondary);font-size:12px;line-height:1.5}.feedback-comment-path{font:inherit;color:inherit}.feedback-empty{padding:24px 8px;color:var(--chisel-ui-muted)}.feedback-empty>span{display:none}.feedback-empty h2{font:500 14px var(--chisel-ui-font);color:var(--chisel-ui-secondary);margin:0 0 6px}.feedback-empty p{font-size:13px;line-height:1.6;color:var(--chisel-ui-muted);margin:0}.feedback-review-invite{border:0;padding:16px 0;color:var(--chisel-ui-secondary)}.feedback-review-invite summary{display:flex;align-items:center;gap:8px;list-style:none;cursor:pointer;font-size:13px;padding:10px 8px;min-height:40px;border-radius:8px}.feedback-review-invite summary::-webkit-details-marker{display:none}.feedback-review-invite[open]>summary svg{transform:rotate(90deg)}.feedback-review-invite summary:hover{background:var(--chisel-ui-hover)}.feedback-review-invite form{display:flex;flex-direction:column;gap:10px;margin-top:10px}.feedback-review-invite .feedback-primary{width:100%;align-self:stretch}.feedback-review-invite input{min-height:40px}.feedback-review-invite button:not(.feedback-primary){min-height:40px;padding:8px 12px;border:0;border-radius:8px;background:transparent;color:var(--chisel-ui-secondary)}.feedback-review-invite button:not(.feedback-primary):not(:disabled):hover{background:var(--chisel-ui-hover);color:var(--chisel-ui-text)}.feedback-review-invite button:disabled{opacity:.45}.feedback-review-invite label{display:flex;flex-direction:column;gap:6px;font-size:11px}.feedback-review-invite p{font-size:12px;line-height:1.5;margin:0}.feedback-composer{position:absolute;z-index:3;width:288px;background:var(--chisel-ui-surface);padding:14px;border:0;border-radius:16px;box-shadow:var(--chisel-ui-popover-shadow);display:flex;flex-direction:column;gap:10px}.feedback-composer-heading{display:flex;align-items:center;justify-content:space-between;font-weight:700}.feedback-composer-heading button{border:0;background:none;font-size:21px}.feedback-shell input,.feedback-shell textarea{border:1px solid var(--chisel-ui-border);border-radius:4px;background:var(--chisel-ui-surface);color:var(--chisel-ui-text);padding:9px;width:100%;box-sizing:border-box}.feedback-shell textarea{resize:none;min-height:70px}.feedback-primary{min-height:40px;background:var(--chisel-ui-action);color:var(--chisel-ui-action-text);border:0;padding:0 12px;border-radius:8px;align-self:flex-end}.feedback-thread{margin-top:16px}.feedback-thread form button,.feedback-resolve{background:var(--chisel-ui-surface);border:1px solid var(--chisel-ui-border);border-radius:4px;padding:7px 10px;margin-top:8px}.feedback-resolve{color:var(--chisel-ui-text)}.feedback-reply{border-left:2px solid var(--chisel-ui-border);padding-left:10px}.feedback-error{color:var(--chisel-ui-danger);padding:0 8px;margin:0 0 16px;line-height:1.5;font-size:13px}.feedback-comment-list>p[role=status]{margin:0;padding:24px 8px;color:var(--chisel-ui-secondary);line-height:1.5;font-size:13px}@media(max-width:760px){.feedback-workspace{flex-direction:column}.feedback-canvas{height:48%;flex:none;padding:0}.feedback-sidebar{width:100%;height:auto;flex:1;padding:0}.feedback-sidebar-panel{border:0}.feedback-sidebar-title{min-height:44px}.feedback-tabs{margin-bottom:8px}.feedback-tabs button{min-height:44px;padding:0 8px}.feedback-empty{padding:12px}.feedback-empty>span{display:none}.feedback-toolbar{bottom:10px}.feedback-comment{padding:14px 8px}}.comment-box{position:absolute;z-index:4;display:flex;flex-direction:column;width:344px;max-width:calc(100% - 16px);height:auto;max-height:calc(100% - 16px);padding:0;overflow:hidden;border:0;border-radius:16px;background:var(--chisel-ui-surface);color:var(--chisel-ui-text);box-shadow:var(--chisel-ui-popover-shadow);font:12px var(--chisel-ui-font);color-scheme:inherit}.comment-box[data-settings-open=true]{height:440px}.comment-box-settings{display:flex;flex-direction:column;flex:1;min-height:0}.comment-box-settings[hidden],.comment-box[hidden],.comment-thread form[hidden]{display:none}.comment-box-draft-pin{pointer-events:none}.comment-box-prompt{display:flex;align-items:center;gap:9px;min-height:44px;padding:8px 12px;flex-shrink:0}.comment-box-symbol{position:relative;border:0;padding:0;display:grid;place-items:center;background:transparent;border-radius:8px;width:40px;height:40px;flex-shrink:0}.comment-box-symbol[aria-expanded=true]{background:var(--chisel-ui-selected)}.comment-box-symbol:hover{background:var(--chisel-ui-hover)}.comment-box-symbol svg{width:14px;height:14px;color:var(--chisel-ui-text)}.comment-box .comment-box-prompt input{border:0;border-radius:0;background:none;box-shadow:none;padding:0;color:var(--chisel-ui-text);font:13px var(--chisel-ui-font);outline:none;width:100%;min-width:0}.comment-box-prompt input::placeholder{color:var(--chisel-ui-muted)}.comment-box-element{display:flex;align-items:center;justify-content:space-between;background:var(--chisel-ui-raised);color:var(--chisel-ui-muted);min-height:28px;padding:0 15px;flex-shrink:0}.comment-box-element code{font:12px monospace}.comment-box-element svg{color:var(--chisel-ui-muted)}.comment-box,.comment-thread{translate:var(--comment-drag-x,0px) var(--comment-drag-y,0px)}.feedback-shell .comment-window-drag{display:grid;place-items:center;flex-shrink:0;width:40px;height:40px;padding:0;border:0;border-radius:var(--chisel-ui-radius);background:transparent;color:var(--chisel-ui-muted);cursor:grab;touch-action:none;user-select:none}.feedback-shell .comment-window-drag:hover{background:var(--chisel-ui-hover);color:var(--chisel-ui-text)}.feedback-shell .comment-window-drag[data-dragging=true]{cursor:grabbing}.comment-box-element .comment-window-drag{margin-left:auto;margin-right:-8px}.feedback-thread-header>.comment-window-drag{margin-right:0}.comment-box-preview-status{margin-left:auto;margin-right:8px;font:12px var(--chisel-ui-font);color:var(--chisel-ui-accent-text)}.comment-box-properties{flex:1;min-height:0;min-width:0;border:0;margin:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--chisel-ui-scrollbar) transparent;padding:4px 15px 9px;position:relative}.comment-box-row{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;color:var(--chisel-ui-secondary)}.comment-box-row>span{white-space:nowrap}.comment-box .comment-box-row input,.comment-box select{border:0;background:var(--chisel-ui-raised);color:var(--chisel-ui-secondary);border-radius:8px;min-width:0;width:128px;height:var(--chisel-ui-control);font:12px var(--chisel-ui-font);padding:4px 8px;text-overflow:ellipsis}.comment-box input:disabled{opacity:.35}.comment-box-number{display:flex;align-items:center;border:0;background:var(--chisel-ui-raised);border-radius:8px;width:128px;flex-shrink:0;height:var(--chisel-ui-control);padding-right:8px;color:var(--chisel-ui-muted)}.comment-box .comment-box-number input{border:0;width:100%;height:40px;background:transparent;box-shadow:none}.comment-box-number input::-webkit-inner-spin-button,.comment-box-spacing input::-webkit-inner-spin-button{-webkit-appearance:none}.comment-box-number>span{font:11px monospace}.comment-box select{appearance:auto}.comment-box-color{display:flex;align-items:center;gap:8px;border:0;width:142px;height:var(--chisel-ui-control);border-radius:7px;padding:3px 4px;min-width:0}.comment-color-trigger{position:relative;display:grid;place-items:center;width:24px;height:24px;flex-shrink:0;padding:0;border:0;border-radius:4px;background:repeating-conic-gradient(var(--chisel-ui-checker-light) 0% 25%,var(--chisel-ui-checker-dark) 0% 50%) 50%/8px 8px}.comment-color-trigger:after{content:"";position:absolute;inset:-8px;border-radius:inherit}.comment-color-trigger>span{display:block;width:100%;height:100%;border-radius:inherit;box-shadow:inset 0 0 0 1px var(--chisel-ui-border)}@media(pointer:coarse){.comment-color-trigger:after{inset:-10px}}.comment-color-value{font:12px monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--chisel-ui-secondary)}.chisel-color-picker,.chisel-color-picker *{box-sizing:border-box}.chisel-color-picker{position:fixed;z-index:1000001;width:256px;max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);overflow:auto;padding:16px;border:0;border-radius:16px;background:var(--chisel-ui-surface);color:var(--chisel-ui-text);font:12px var(--chisel-ui-font);box-shadow:var(--chisel-ui-popover-shadow);color-scheme:inherit}.chisel-color-plane{position:relative;height:160px;margin:0 0 14px;border-radius:10px;touch-action:none;cursor:crosshair;background-image:linear-gradient(to top,#000,transparent),linear-gradient(to right,#fff,transparent)}.chisel-color-thumb{position:absolute;width:19px;height:19px;border:2px solid #fff;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;box-shadow:0 1px 5px #0004}.chisel-color-tools{display:flex;gap:12px;align-items:center;margin-bottom:14px}.chisel-color-hue{appearance:none;-webkit-appearance:none;flex:1;min-width:0;height:40px;border:12px solid transparent;background-clip:padding-box;border-radius:20px;margin:0;background:linear-gradient(to right,red,#ff0,#0f0,#0ff,#00f,#f0f,red);cursor:pointer}.chisel-color-hue::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:20px;height:20px;border:2px solid #fff;border-radius:50%;background:var(--hue);box-shadow:0 1px 4px #0004}.chisel-color-hue::-moz-range-thumb{width:16px;height:16px;border:2px solid #fff;border-radius:50%;background:var(--hue);box-shadow:0 1px 4px #0004}.chisel-color-tools button{display:grid;place-items:center;flex-shrink:0;width:44px;height:40px;padding:0;background:var(--chisel-ui-raised);border:0;border-radius:8px;color:var(--chisel-ui-text);cursor:pointer}.chisel-color-tools button:disabled{opacity:.35;cursor:not-allowed}.chisel-color-hex{display:flex;flex-direction:column;gap:8px;color:var(--chisel-ui-secondary);font-size:11px}.chisel-color-hex input{width:100%;height:40px;border:0;border-radius:8px;padding:7px 9px;background:var(--chisel-ui-raised);color:var(--chisel-ui-text);font:13px monospace}.chisel-color-hex input[aria-invalid=true]{outline:2px solid var(--chisel-ui-danger)}.chisel-color-error{display:block;color:var(--chisel-ui-danger);font-size:11px;margin-top:6px}.chisel-color-accessible{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);border:0}.comment-box-control-group{margin-top:20px}.comment-box-control-group h3{font:500 12px/18px var(--chisel-ui-font);margin:0 0 8px;color:var(--chisel-ui-text)}.comment-box-group{border:0;margin-top:20px;padding-top:0}.comment-box-group summary{list-style:none;display:flex;align-items:center;gap:6px;min-height:40px;color:var(--chisel-ui-secondary);cursor:pointer}.comment-box-group summary::-webkit-details-marker{display:none}.comment-box-group[open] summary svg{transform:rotate(90deg)}.comment-box-pair{position:relative;padding:2px 0}.comment-box-pair .comment-box-row{min-height:44px}.comment-box-link{position:absolute;left:42%;top:50%;transform:translate(-50%,-50%);border:0;background:var(--chisel-ui-surface);color:var(--chisel-ui-muted);border-radius:50%;width:40px;height:40px;display:grid;place-items:center;z-index:1}.comment-box-link:before{content:none}.comment-box-link svg{padding:0}.comment-box-link:hover{background:var(--chisel-ui-hover)}.comment-box-link[aria-pressed=true]{color:var(--chisel-ui-accent-text);background:var(--chisel-ui-accent-surface)}.comment-box-link[aria-pressed=true]:before{border-color:var(--chisel-ui-focus)}.comment-box-number{font-variant-numeric:tabular-nums}.comment-box .comment-box-number input::-webkit-inner-spin-button{-webkit-appearance:none}.comment-box-footer{height:56px;min-height:56px;display:flex;align-items:center;gap:8px;padding:8px;border:0}.comment-box-footer>span{flex:1}.comment-box-footer button{display:grid;place-items:center;border:0;background:none;color:var(--chisel-ui-text);height:40px;width:40px}.comment-box-footer .comment-box-cancel:hover{background:var(--chisel-ui-hover)}.comment-box-footer .comment-box-cancel{width:auto;padding:0 9px;font:13px var(--chisel-ui-font);border:0;border-radius:8px;background:transparent}.comment-box-footer .comment-box-submit{width:40px;border-radius:8px;background:var(--chisel-ui-action);color:var(--chisel-ui-action-text)}.comment-box-footer .comment-box-submit:disabled{opacity:.4;cursor:not-allowed}.comment-box-error{margin:0;padding:0 12px 8px;flex-shrink:0;font-size:11px;line-height:1.5;color:var(--chisel-ui-danger)}.comment-box-saving{width:12px;height:12px;border:1px solid var(--chisel-ui-border-strong);border-top-color:transparent;border-radius:50%;animation:chisel-spin 1s linear infinite}.feedback-composer.comment-thread{width:400px;max-width:calc(100% - 16px);gap:0;border-radius:16px;background:var(--chisel-ui-surface);border-color:var(--chisel-ui-border);color:var(--chisel-ui-text);padding:0;box-shadow:var(--chisel-ui-popover-shadow);color-scheme:inherit;overflow:hidden auto;scrollbar-width:thin}.feedback-thread-header{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:56px;padding:8px 12px 4px 20px;border:0;flex-shrink:0}.comment-thread .feedback-thread-summary{width:100%;padding:16px}.comment-thread .feedback-thread-summary:empty{display:none}.comment-thread .feedback-thread-replies{width:100%;padding:0 16px}.comment-thread form{width:100%;padding:16px}.feedback-composer.comment-thread[data-expanded=false]{width:240px;max-width:calc(100% - 16px);border-radius:16px 16px 16px 0;overflow:hidden}.feedback-thread-content{display:flex;flex-direction:column;flex-shrink:0;width:100%}.feedback-thread-content[hidden]{display:none}.feedback-hover-preview{display:flex;align-items:flex-start;gap:10px;flex-shrink:0;width:100%;padding:12px;border:0;border-radius:inherit;background:transparent;color:var(--chisel-ui-text);text-align:left;font:12px/16px var(--chisel-ui-font)}.feedback-hover-preview>.feedback-avatar{width:24px;height:24px;font-size:12px}.feedback-hover-preview img{width:100%;height:100%;object-fit:cover}.feedback-hover-copy{flex:1;min-width:0}.feedback-hover-byline{display:flex;align-items:baseline;gap:4px;white-space:nowrap;overflow:hidden}.feedback-hover-byline strong{font-weight:500;overflow:hidden;text-overflow:ellipsis}.feedback-hover-byline time{color:var(--chisel-ui-muted);font-size:11px;flex-shrink:0}.feedback-hover-message{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.feedback-pin.selected:before{border-color:var(--chisel-ui-focus)}.comment-thread .feedback-thread-summary,.comment-thread .feedback-thread-replies,.comment-thread form{width:100%;flex-shrink:0}.comment-thread .feedback-preview{white-space:nowrap}.feedback-thread-summary{display:flex;align-items:flex-start;gap:8px;flex-shrink:0}.feedback-thread-summary,.feedback-thread-reply{position:relative}.feedback-message-edit{display:grid;place-items:center;width:40px;height:40px;flex-shrink:0;padding:0;border:0;border-radius:8px;background:transparent;color:var(--chisel-ui-secondary);opacity:0;transition:opacity .12s,background .12s}.feedback-thread-summary:hover .feedback-message-edit,.feedback-thread-reply:hover .feedback-message-edit,.feedback-message-edit:focus-visible{opacity:1}.feedback-message-edit:hover{background:var(--chisel-ui-hover)}@media(hover:none){.feedback-message-edit{opacity:1}}.feedback-thread-summary-button{display:flex;align-items:flex-start;gap:10px;flex:1;min-width:0;border:0;padding:0;text-align:left;background:transparent;color:inherit}.feedback-thread-summary-button>.feedback-avatar{width:26px;height:26px;flex-shrink:0;margin-top:1px;font-size:10px}.feedback-thread-summary-copy{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.feedback-thread-byline{display:flex;align-items:baseline;gap:7px;min-width:0;flex-wrap:wrap}.feedback-thread-byline strong{font-size:13px;font-weight:600;line-height:1.4;overflow-wrap:anywhere}.feedback-thread-byline time{font-size:12px;color:var(--chisel-ui-muted);white-space:nowrap}.feedback-thread-summary .feedback-thread-message{font-size:14px;line-height:1.5;color:var(--chisel-ui-text);overflow-wrap:anywhere}.comment-thread[data-expanded=false] .feedback-thread-message{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.feedback-thread-reply-count{font-size:12px;line-height:1.4;color:var(--chisel-ui-muted)}.feedback-thread-close{display:grid;place-items:center;flex-shrink:0;width:24px;height:24px;border:0;border-radius:6px;background:none;color:var(--chisel-ui-muted);padding:4px}.feedback-thread-header-actions{display:flex;gap:4px;flex-shrink:0}.feedback-thread-header-actions .feedback-thread-close{position:relative;width:40px;height:40px}.feedback-thread-header-actions .feedback-thread-delete:hover{color:var(--chisel-ui-danger)}@container (max-width:400px){.feedback-thread-header{gap:4px;padding-inline:8px}.feedback-thread-header-actions{gap:0}}.feedback-thread-close:hover{background:var(--chisel-ui-hover);color:var(--chisel-ui-text)}.feedback-thread-reply{display:flex;align-items:flex-start;gap:10px;padding:16px 0;border:0}.feedback-thread-reply>.feedback-avatar{width:24px;height:24px;font-size:10px}.feedback-thread-reply>div{flex:1;min-width:0}.feedback-thread-reply strong{font-size:13px;font-weight:600}.feedback-thread-reply p{font-size:14px;line-height:1.5;margin:4px 0 0;color:var(--chisel-ui-secondary)}.comment-thread form{padding-top:16px;border:0}.feedback-shell .comment-thread textarea{background:var(--chisel-ui-raised);color:var(--chisel-ui-text);border:1px solid var(--chisel-ui-border);border-radius:9px;min-height:40px;max-height:min(240px,40dvh);padding:10px 12px;font-size:14px;line-height:1.5;resize:none;overflow-y:auto}.comment-thread .feedback-thread-actions{margin-top:6px}.comment-thread .feedback-primary{border-radius:50%;width:40px;height:40px;padding:0;font-size:0;background:var(--chisel-ui-action);color:var(--chisel-ui-action-text);margin:0;transition:opacity .15s,transform .15s}.comment-thread .feedback-primary:disabled{opacity:.35;cursor:not-allowed}.comment-thread .feedback-primary:not(:disabled):active{transform:scale(.96)}.comment-thread .feedback-resolve{background:transparent;color:var(--chisel-ui-secondary);border:0;border-radius:6px;padding:6px;font-size:12px;min-height:40px}.comment-thread .feedback-resolve:hover{background:var(--chisel-ui-hover);color:var(--chisel-ui-text)}@media(prefers-reduced-motion:reduce){.comment-thread .feedback-primary{transition:none}}@media(prefers-reduced-motion:reduce){.comment-box-saving{animation:none}}.comment-thread .feedback-preview{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;min-height:40px;margin-left:36px;padding:5px 9px;border:1px solid var(--chisel-ui-border);border-radius:6px;background:var(--chisel-ui-raised);color:var(--chisel-ui-secondary);font-size:11px}.comment-thread .feedback-preview[aria-pressed=true]{border-color:var(--chisel-ui-focus);background:var(--chisel-ui-accent-surface)}.comment-thread .feedback-preview:disabled{opacity:.5;cursor:not-allowed}.feedback-proposal-actions{display:flex;align-items:center;flex-wrap:wrap;gap:4px;padding:0 12px 8px}.comment-thread .feedback-proposal-actions .feedback-preview{margin:0;padding:0 8px;border:0;border-radius:8px;background:transparent;font-size:12px;min-height:40px}.comment-thread .feedback-proposal-actions .feedback-preview:hover{background:var(--chisel-ui-hover);color:var(--chisel-ui-text)}.comment-thread .feedback-proposal-actions .feedback-preview[aria-pressed=true]{background:var(--chisel-ui-accent-surface);color:var(--chisel-ui-accent-text)}@media(pointer:coarse){.feedback-toolbar button{height:44px}.feedback-tabs button,.feedback-account summary{min-width:44px}.feedback-review-invite summary{min-height:44px}.feedback-pin:after{content:"";position:absolute;inset:-2px;border-radius:inherit}.feedback-account summary,.feedback-review-invite button,.feedback-shell .feedback-primary,.feedback-thread-status,.feedback-thread-status select{min-height:44px}.feedback-shell .comment-window-drag,.feedback-thread-header-actions .feedback-thread-close{width:44px;height:44px}.comment-box-footer{height:60px;min-height:60px}.comment-box-footer button{height:44px;width:44px}.comment-box-footer .comment-box-submit{width:44px}}@media(forced-colors:active){.feedback-sidebar-panel,.comment-box,.feedback-composer.comment-thread,.feedback-confirmation,.feedback-account>div{border:1px solid CanvasText;box-shadow:none;background:Canvas;color:CanvasText}.feedback-shell button[aria-pressed=true]{outline:1px solid Highlight;outline-offset:-2px}.feedback-shell input,.feedback-shell textarea,.comment-box-number,.feedback-avatar{border:1px solid CanvasText}}
3
+ `+ir+`.feedback-shell,.feedback-shell *{box-sizing:border-box}.feedback-shell{font-synthesis:none;-webkit-font-smoothing:antialiased;position:fixed;inset:0;background:var(--chisel-ui-canvas);color:var(--chisel-ui-text);z-index:999999;font-family:var(--chisel-ui-font);font-size:13px;letter-spacing:0}.feedback-avatar{overflow:hidden}.feedback-account{position:relative}.feedback-account summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:center;min-width:40px;min-height:40px}.feedback-account summary::-webkit-details-marker{display:none}.feedback-account>div{position:absolute;right:0;top:44px;z-index:20;background:var(--chisel-ui-surface);color:var(--chisel-ui-text);border:0;box-shadow:var(--chisel-ui-popover-shadow);border-radius:12px;padding:16px;min-width:220px;max-width:calc(100vw - 32px);display:flex;flex-direction:column;gap:8px;overflow-wrap:anywhere}.feedback-account[open]>div{transform-origin:top right;animation:chisel-account-in .16s cubic-bezier(.2,0,0,1)}@keyframes chisel-account-in{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media(prefers-reduced-motion:reduce){.feedback-account[open]>div{animation:none}}.feedback-account>div>span{color:var(--chisel-ui-muted);font-size:12px;line-height:1.5}.feedback-account button:hover{background:var(--chisel-ui-hover)}.feedback-account button{display:flex;align-items:center;gap:8px;color:var(--chisel-ui-text);background:transparent;border:0;min-height:40px;padding:8px;border-radius:8px}.chisel-sign-in{min-height:100dvh;display:grid;place-items:center;padding:24px;background:var(--chisel-ui-canvas);color:var(--chisel-ui-text);font-family:var(--chisel-ui-font)}.chisel-sign-in section{width:100%;max-width:360px;text-align:left}.chisel-sign-in-brand{font-size:24px;letter-spacing:-.8px}.chisel-sign-in h1{font-size:24px;font-weight:500;letter-spacing:-.4px;line-height:1.25;margin:32px 0 8px}.chisel-sign-in p{font-size:14px;line-height:1.6;color:var(--chisel-ui-secondary);margin:12px 0 24px}.chisel-sign-in button{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:44px;padding:12px;background:var(--chisel-ui-action);color:var(--chisel-ui-action-text);border:0;border-radius:8px;cursor:pointer}.chisel-sign-in button:disabled{opacity:.5;cursor:not-allowed}.chisel-sign-in a{display:inline-flex;align-items:center;min-height:40px;margin-top:16px;font-size:13px;color:var(--chisel-ui-secondary)}.chisel-sign-in [role=alert]{color:var(--chisel-ui-danger)}.chisel-spin{animation:chisel-spin 1s linear infinite}@keyframes chisel-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.chisel-spin{animation:none}}.feedback-sidebar[hidden],.feedback-comment-layer[hidden]{display:none}.feedback-shell.comments-hidden .feedback-canvas,.feedback-shell.is-editing .feedback-canvas{height:100%;flex:1}.feedback-comment-area{position:absolute;pointer-events:none;z-index:1;border:2px solid var(--chisel-ui-focus);background:color-mix(in srgb,var(--chisel-ui-focus) 8%,transparent);border-radius:4px}.feedback-element-box{position:absolute;pointer-events:none;z-index:1;border:1px solid var(--chisel-ui-focus);background:color-mix(in srgb,var(--chisel-ui-focus) 4%,transparent);box-sizing:border-box}.feedback-element-box.is-selected{border-width:2px;background:color-mix(in srgb,var(--chisel-ui-focus) 6%,transparent)}.feedback-thread-popup{max-height:calc(100% - 16px);overflow:auto}.feedback-thread-popup[hidden]{display:none}.feedback-thread-message,.feedback-thread-replies{overflow-wrap:anywhere;line-height:1.6;margin:0}.feedback-thread-replies{max-height:140px;overflow:auto}.feedback-thread-actions{display:flex;justify-content:space-between;align-items:center;margin-top:8px;gap:8px}.feedback-thread-actions .feedback-resolve{margin:0;font-size:11px;padding:8px}.feedback-composer-heading>button{display:grid;place-items:center;width:24px;height:24px;border-radius:4px}.feedback-composer-heading>button:hover{background:var(--chisel-ui-raised)}.feedback-shell button,.feedback-shell input,.feedback-shell textarea{font:inherit}.feedback-shell button{cursor:pointer}.feedback-shell button:disabled{cursor:not-allowed}.feedback-shell :where(button,summary){-webkit-tap-highlight-color:transparent}.feedback-workspace{display:flex;height:100%}.feedback-canvas{position:relative;flex:1;min-width:0;padding:0;container-type:inline-size}.feedback-preview-scroll{height:100%;overflow:auto;padding:0 12px}.feedback-preview-frame{position:relative;height:100%;margin-inline:auto}.feedback-viewport{position:relative;width:100%;height:100%;overflow:hidden;background:#fff;border:0;border-radius:0}.feedback-viewport iframe{width:100%;height:100%;border:0;display:block}.feedback-preview-resize{position:absolute;top:0;bottom:0;width:12px;cursor:ew-resize;touch-action:none;user-select:none}.feedback-preview-resize[data-edge=left]{left:-12px}.feedback-preview-resize[data-edge=right]{right:-12px}.feedback-preview-resize:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:3px;height:32px;border-radius:999px;background:var(--chisel-ui-muted);opacity:.35}.feedback-preview-resize:hover:after,.feedback-preview-resize:active:after{opacity:1}.feedback-pin{position:absolute;transform:translate(-4px,-4px);width:40px;height:40px;display:grid;place-items:center;padding:8px;border-radius:50% 50% 50% 0;background:transparent;color:var(--chisel-ui-text);border:0;box-sizing:border-box;z-index:2}.feedback-comment-layer[data-hover-preview=true] .feedback-pin:not(.selected){z-index:5}.feedback-pin:before{content:"";position:absolute;inset:4px;border:1px solid var(--chisel-ui-border);border-radius:inherit;background:var(--chisel-ui-surface);box-shadow:0 2px 7px #0002;z-index:-1}.feedback-pin .feedback-avatar{width:24px;height:24px;font-size:12px}.feedback-pin-group{display:flex;width:auto;border-radius:20px 20px 20px 0}.feedback-pin-group .feedback-avatar+.feedback-avatar{margin-left:-4px}.feedback-pin .feedback-avatar img{width:100%;height:100%;object-fit:cover}.feedback-pin .feedback-pin-more{font-size:9px;font-variant-numeric:tabular-nums}.feedback-toolbar{position:absolute;z-index:2;bottom:17px;left:24px;display:flex;padding:4px;gap:4px;background:var(--chisel-ui-surface);color:var(--chisel-ui-text);border:0;border-radius:999px;box-shadow:var(--chisel-ui-popover-shadow)}.feedback-toolbar button{border:1px solid transparent;background:transparent;color:var(--chisel-ui-muted);height:var(--chisel-ui-control);padding:0 16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;white-space:nowrap;transition:background-color var(--chisel-ui-motion),color var(--chisel-ui-motion),border-color var(--chisel-ui-motion)}.feedback-toolbar button:hover{background:var(--chisel-ui-raised);color:var(--chisel-ui-text)}.feedback-toolbar button[aria-pressed=true]{background:var(--chisel-ui-raised);color:var(--chisel-ui-text);border-color:transparent}.feedback-breakpoints{left:auto;right:24px}.feedback-breakpoints button{width:40px;padding:0}.feedback-breakpoints button{position:relative}.feedback-breakpoints sup{position:absolute;right:-2px;top:-3px;min-width:18px;padding:2px 4px;border-radius:999px;background:var(--chisel-ui-text);color:var(--chisel-ui-surface);font-size:11px;line-height:1.2;font-variant-numeric:tabular-nums}.feedback-thread-status{position:relative;display:inline-flex;align-items:center;min-width:0;min-height:40px;margin-right:auto}.feedback-status-value{display:inline-flex;align-items:center;gap:4px;max-width:100%;height:28px;padding:0 8px;border-radius:999px;background:var(--chisel-ui-raised);color:var(--chisel-ui-secondary);font-size:12px;line-height:1;white-space:nowrap;transition:background-color var(--chisel-ui-motion),color var(--chisel-ui-motion)}.feedback-status-value>span{min-width:0;overflow:hidden;text-overflow:ellipsis}.feedback-status-value svg{width:14px;height:14px;flex-shrink:0;stroke-width:1.75}.feedback-status-value>svg:last-child{width:12px}.feedback-thread-status[data-state=ready] .feedback-status-value{background:var(--chisel-ui-accent-surface);color:var(--chisel-ui-accent-text)}.feedback-thread-status select{position:absolute;inset:0;width:100%;height:100%;min-height:40px;opacity:0;cursor:pointer;font:inherit}.feedback-thread-status select:disabled{cursor:default}.feedback-thread-status:has(select:enabled):hover .feedback-status-value{background:var(--chisel-ui-hover)}.feedback-guide,.feedback-notice{padding:10px;margin:0 0 8px;background:var(--chisel-ui-raised);border-radius:12px;font-size:12px;line-height:1.5}.feedback-guide{padding:12px}.feedback-guide strong{font-size:13px;font-weight:600}.feedback-guide ul{list-style:none;padding:0;margin:10px 0;display:grid;gap:8px}.feedback-guide li{display:flex;align-items:center;gap:8px}.feedback-guide li svg{width:16px;height:16px;flex-shrink:0;color:var(--chisel-ui-muted);stroke-width:1.75}.feedback-guide p{margin:8px 0;color:var(--chisel-ui-muted);text-wrap:pretty}.feedback-guide button,.feedback-notice button,.feedback-export button{min-height:40px;background:none;border:0;color:var(--chisel-ui-text)}.feedback-guide button{width:100%;border-radius:8px;background:var(--chisel-ui-surface);font-weight:500;transition:background-color var(--chisel-ui-motion)}.feedback-guide button:hover{background:var(--chisel-ui-hover)}.feedback-notice{position:relative;padding-right:34px}.feedback-notice>button[aria-label]{position:absolute;right:0;top:0;width:32px}.feedback-export{flex-shrink:0;border-top:1px solid var(--chisel-ui-border);font-size:12px}.feedback-export>summary{display:flex;align-items:center;gap:8px;min-height:40px;padding:8px;cursor:pointer;list-style:none;color:var(--chisel-ui-secondary)}.feedback-export>summary::-webkit-details-marker{display:none}.feedback-export>summary:hover{color:var(--chisel-ui-text)}.feedback-export>summary>svg:last-child{margin-left:auto;transition:transform var(--chisel-ui-motion)}.feedback-export[open]>summary>svg:last-child{transform:rotate(90deg)}.feedback-export>div{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 8px 8px;color:var(--chisel-ui-muted);font-variant-numeric:tabular-nums}.feedback-export button{display:flex;align-items:center;gap:6px;padding:0 10px;border-radius:8px;background:var(--chisel-ui-raised)}.feedback-export button:disabled{opacity:.5}.feedback-shell .feedback-comment:has(.feedback-comment-select){position:relative;padding-left:40px}.feedback-shell .feedback-comment-select{position:absolute;left:0;top:8px;width:40px;height:40px;display:grid;place-items:center;cursor:pointer}.feedback-comment-select input{width:16px;height:16px;margin:0;accent-color:var(--chisel-ui-text)}@media(prefers-reduced-motion:reduce){.feedback-export>summary>svg:last-child{transition:none}}.feedback-account a{color:var(--chisel-ui-text);min-height:40px;display:inline-flex;align-items:center}.feedback-page-routes small{margin-left:auto;color:var(--chisel-ui-muted);font-size:12px}.chisel-project-directory{background:var(--chisel-ui-canvas);color:var(--chisel-ui-text);font:14px var(--chisel-ui-font);min-height:100dvh;padding:32px max(24px,calc((100vw - 840px)/2))}.chisel-project-directory header{display:flex;justify-content:space-between;gap:16px;align-items:center}.chisel-project-directory header>strong{flex-shrink:0}.chisel-project-directory header>span{min-width:0;overflow-wrap:anywhere;text-align:right}.chisel-project-directory h2{overflow-wrap:anywhere}.chisel-project-directory section{background:var(--chisel-ui-surface);border-radius:16px;padding:20px;margin-top:16px}.chisel-project-directory form,.chisel-project-directory label{display:flex;flex-direction:column;gap:8px;margin-top:12px}.chisel-project-directory input,.chisel-project-directory button{min-height:40px;padding:8px 12px;border:1px solid var(--chisel-ui-border);border-radius:8px;background:var(--chisel-ui-surface);color:var(--chisel-ui-text);font:inherit}.chisel-project-directory a{display:inline-flex;align-items:center;min-height:40px;color:var(--chisel-ui-accent-text)}.chisel-project-directory a:hover{text-decoration:underline;text-underline-offset:3px}.feedback-preview-width{display:flex;align-items:center;padding-right:8px;font-size:12px;font-variant-numeric:tabular-nums;color:var(--chisel-ui-muted);border-right:1px solid var(--chisel-ui-border)}.feedback-shell .feedback-preview-width input{width:52px;min-height:40px;padding:0 4px 0 8px;border:0;border-radius:999px;background:transparent;text-align:right;font-size:12px;font-variant-numeric:tabular-nums}@container (max-width:520px){.feedback-toolbar{left:16px;bottom:10px}.feedback-breakpoints{left:auto;right:16px}.feedback-toolbar button{width:40px;padding:0}.feedback-toolbar button span{display:none}}@container (max-width:400px){.feedback-toolbar:not(.feedback-breakpoints){bottom:66px}}@media(pointer:coarse){.feedback-shell .feedback-preview-width input,.feedback-guide button{min-height:44px}}.feedback-collaboration{display:flex;align-items:center;gap:8px;min-height:32px;margin-bottom:8px;color:var(--chisel-ui-muted);font-size:12px}.feedback-reviewers{display:flex;flex:1;min-width:0;overflow:hidden}.feedback-reviewers .feedback-avatar{width:24px;height:24px}.feedback-reviewers .feedback-avatar+.feedback-avatar{margin-left:-4px}.feedback-reviewers img{width:100%;height:100%;object-fit:cover}.feedback-unread-count,.feedback-unread-label{color:var(--chisel-ui-accent-text);font-size:12px;font-variant-numeric:tabular-nums}.feedback-unread-label{display:inline}@media(prefers-reduced-motion:reduce){.feedback-toolbar button,.feedback-comment{transition:none}}.feedback-shell button svg,.feedback-shell summary svg{width:16px;height:16px;stroke-width:1.75;flex-shrink:0}.feedback-primary,.feedback-resolve,.feedback-thread form button{display:inline-flex;align-items:center;justify-content:center;gap:6px}.feedback-sidebar{--feedback-panel-divider:var(--chisel-ui-border);--feedback-panel-shadow:var(--chisel-ui-panel-shadow);width:400px;flex-shrink:0;padding:0;background:transparent;color:var(--chisel-ui-text);border:0;display:flex;flex-direction:column;min-height:0;font-family:var(--chisel-ui-font);font-size:13px;letter-spacing:0;-webkit-font-smoothing:antialiased;color-scheme:inherit}.feedback-sidebar-panel{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden auto;overscroll-behavior:contain;padding:16px 20px 0;border:0;border-radius:0;background:var(--chisel-ui-surface)}.feedback-search{display:flex;align-items:center;gap:8px;min-height:40px;margin-bottom:8px;padding:0 8px;border-radius:8px;background:transparent;color:var(--chisel-ui-muted)}.feedback-search svg{flex-shrink:0}.feedback-shell .feedback-search input{min-width:0;min-height:40px;padding:0;border:0;background:transparent;font-size:13px}.feedback-search input::placeholder{color:var(--chisel-ui-muted)}.feedback-search:hover{background:var(--chisel-ui-raised)}.feedback-page-control{position:relative;flex-shrink:0;margin:8px 0}.feedback-page-control:last-child{margin-bottom:16px}.feedback-page-control+.feedback-review-invite{padding-top:0}.feedback-page-control>summary{display:flex;align-items:center;gap:8px;min-height:40px;padding:0 8px;border-radius:8px;list-style:none;color:var(--chisel-ui-secondary);cursor:pointer}.feedback-page-control>summary::-webkit-details-marker{display:none}.feedback-page-control>summary:hover,.feedback-page-control[open]>summary{background:var(--chisel-ui-raised);color:var(--chisel-ui-text)}.feedback-page-control>summary[aria-disabled=true]{opacity:.5;cursor:default}.feedback-page-control>summary>span,.feedback-page-routes button>span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;font:12px/20px ui-monospace,SFMono-Regular,monospace}.feedback-page-chevron{transform:rotate(180deg);transition:transform var(--chisel-ui-motion)}.feedback-page-control[open] .feedback-page-chevron{transform:rotate(0)}.feedback-page-popover{position:absolute;bottom:calc(100% + 4px);left:0;right:0;z-index:30;display:flex;flex-direction:column;gap:6px;max-height:min(var(--feedback-page-space,320px),calc(min(240px,30dvh) + 64px));overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--chisel-ui-scrollbar) transparent;padding:8px;border-radius:12px;background:var(--chisel-ui-surface);box-shadow:var(--chisel-ui-popover-shadow)}.feedback-page-form{position:sticky;top:0;z-index:1;display:flex;flex-shrink:0;align-items:center;gap:4px;border-radius:8px;background:var(--chisel-ui-raised)}.feedback-shell .feedback-page-form input{flex:1;min-width:0;min-height:40px;padding:0 10px;border:0;border-radius:8px;background:transparent;font-size:13px}.feedback-page-form button{display:grid;place-items:center;flex-shrink:0;width:40px;min-height:40px;padding:0;border:0;border-radius:8px;background:transparent;color:var(--chisel-ui-text)}.feedback-page-routes{display:flex;flex-direction:column;flex-shrink:0;gap:2px;min-height:0}.feedback-page-routes button{display:flex;align-items:center;gap:8px;width:100%;min-height:40px;padding:0 8px;border:0;border-radius:8px;background:transparent;color:var(--chisel-ui-secondary)}.feedback-page-routes button[aria-current=page]{background:var(--chisel-ui-selected);color:var(--chisel-ui-text)}.feedback-page-routes mark{background:var(--chisel-ui-selected);color:var(--chisel-ui-text);border-radius:2px;font-weight:700}.feedback-page-empty{margin:0;padding:10px 8px;color:var(--chisel-ui-secondary);font-size:12px}.feedback-page-control button:hover{background:var(--chisel-ui-hover);color:var(--chisel-ui-text)}.feedback-page-control button:disabled{opacity:.5}.feedback-page-control button:active{transform:scale(.96)}.feedback-page-error{margin:0;padding:4px 8px;color:var(--chisel-ui-danger);font-size:12px;line-height:1.5;overflow-wrap:anywhere}@media(pointer:coarse){.feedback-page-control>summary,.feedback-page-control button,.feedback-shell .feedback-page-form input{min-height:44px}.feedback-page-form button{width:44px}}@media(prefers-reduced-motion:reduce){.feedback-page-chevron{transition:none}}.feedback-sidebar-title{min-height:40px;padding:0;margin-bottom:12px;border:0;display:flex;align-items:center;justify-content:space-between;gap:6px}.feedback-sidebar h1{font:600 15px/22px var(--chisel-ui-font);letter-spacing:-.01em;margin:0;color:var(--chisel-ui-text)}.feedback-sidebar h1 span{font:500 12px ui-monospace,SFMono-Regular,Menlo,monospace;font-variant-numeric:tabular-nums;margin-left:6px;color:var(--chisel-ui-muted)}.feedback-avatar{width:27px;height:27px;background:var(--chisel-ui-avatar);color:var(--chisel-ui-avatar-text);border:0;display:inline-flex;justify-content:center;align-items:center;border-radius:50%;font-size:11px;flex-shrink:0}.feedback-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));flex-shrink:0;gap:6px;margin:0 0 8px;padding:4px;border-radius:12px;background:var(--chisel-ui-raised)}.feedback-tabs button{position:relative;min-width:0;min-height:40px;background:transparent;border:0;border-radius:8px;color:var(--chisel-ui-secondary);padding:0 12px;font-size:13px;font-weight:500;transition:background-color var(--chisel-ui-motion),color var(--chisel-ui-motion),box-shadow var(--chisel-ui-motion)}.feedback-tabs button+button:before{content:"";position:absolute;left:-3.5px;top:50%;width:1px;height:16px;transform:translateY(-50%);background:var(--chisel-ui-border);pointer-events:none}.feedback-tabs button:hover{background:var(--chisel-ui-hover);color:var(--chisel-ui-text)}.feedback-tabs button[aria-pressed=true]{color:var(--chisel-ui-text);background:var(--chisel-ui-surface);box-shadow:0 1px 3px #0000000d,0 0 0 1px var(--chisel-ui-border)}@media(prefers-reduced-motion:reduce){.feedback-tabs button{transition:none}}.feedback-comment-list{flex:1;min-height:160px;overflow:auto;overscroll-behavior:contain;padding:0;scrollbar-width:thin;scrollbar-color:var(--chisel-ui-scrollbar) transparent}.feedback-comment{border:0;border-radius:8px;padding:16px 8px;margin-bottom:8px;background:transparent;transition:background-color var(--chisel-ui-motion)}.feedback-comment:hover,.feedback-comment.active{background:var(--chisel-ui-raised)}.feedback-comment-main{display:flex;flex-direction:column;align-items:stretch;gap:8px;border:0;background:none;text-align:left;width:100%;min-height:40px;padding:0;color:inherit}.feedback-comment-heading{display:flex;align-items:center;gap:10px}.feedback-comment-identity{flex:1;min-width:0}.feedback-comment-activity{display:flex;align-items:center;gap:8px;margin-left:38px;margin-top:4px}.feedback-comment-heading>.feedback-avatar{width:28px;height:28px}.feedback-comment-heading img{width:100%;height:100%;object-fit:cover}.feedback-comment-avatars{display:flex;gap:4px}.feedback-comment-avatars .feedback-avatar{width:20px;height:20px;font-size:10px}.feedback-comment-avatars img{width:100%;height:100%;object-fit:cover}.feedback-comment-unread-dot{width:8px;height:8px;flex-shrink:0;border-radius:50%;background:var(--chisel-ui-focus)}.feedback-comment-status{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--chisel-ui-muted);font-size:12px;line-height:1.5}.feedback-comment-meta{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;font-size:13px;line-height:1.5}.feedback-comment-meta strong{font-weight:500;overflow-wrap:anywhere}.feedback-comment-meta time{color:var(--chisel-ui-muted);font-size:12px;font-variant-numeric:tabular-nums}.feedback-comment-body{display:block;margin-left:38px;line-height:1.5;overflow-wrap:anywhere;color:var(--chisel-ui-text);font-size:14px;white-space:pre-wrap}.feedback-comment-reply-count{color:var(--chisel-ui-secondary);font-size:12px;line-height:1.5}.feedback-comment-path{font:inherit;color:inherit}.feedback-empty{padding:24px 8px;color:var(--chisel-ui-muted)}.feedback-empty>span{display:none}.feedback-empty h2{font:500 14px var(--chisel-ui-font);color:var(--chisel-ui-secondary);margin:0 0 6px}.feedback-empty p{font-size:13px;line-height:1.6;color:var(--chisel-ui-muted);margin:0}.feedback-review-invite{border:0;padding:16px 0;color:var(--chisel-ui-secondary)}.feedback-review-invite summary{display:flex;align-items:center;gap:8px;list-style:none;cursor:pointer;font-size:13px;padding:10px 8px;min-height:40px;border-radius:8px}.feedback-review-invite summary::-webkit-details-marker{display:none}.feedback-review-invite[open]>summary svg{transform:rotate(90deg)}.feedback-review-invite summary:hover{background:var(--chisel-ui-hover)}.feedback-review-invite form{display:flex;flex-direction:column;gap:10px;margin-top:10px}.feedback-review-invite .feedback-primary{width:100%;align-self:stretch}.feedback-review-invite input{min-height:40px}.feedback-review-invite button:not(.feedback-primary){min-height:40px;padding:8px 12px;border:0;border-radius:8px;background:transparent;color:var(--chisel-ui-secondary)}.feedback-review-invite button:not(.feedback-primary):not(:disabled):hover{background:var(--chisel-ui-hover);color:var(--chisel-ui-text)}.feedback-review-invite button:disabled{opacity:.45}.feedback-review-invite label{display:flex;flex-direction:column;gap:6px;font-size:11px}.feedback-review-invite p{font-size:12px;line-height:1.5;margin:0}.feedback-composer{position:absolute;z-index:3;width:288px;background:var(--chisel-ui-surface);padding:14px;border:0;border-radius:16px;box-shadow:var(--chisel-ui-popover-shadow);display:flex;flex-direction:column;gap:10px}.feedback-composer-heading{display:flex;align-items:center;justify-content:space-between;font-weight:700}.feedback-composer-heading button{border:0;background:none;font-size:21px}.feedback-shell input,.feedback-shell textarea{border:1px solid var(--chisel-ui-border);border-radius:4px;background:var(--chisel-ui-surface);color:var(--chisel-ui-text);padding:9px;width:100%;box-sizing:border-box}.feedback-shell textarea{resize:none;min-height:70px}.feedback-primary{min-height:40px;background:var(--chisel-ui-action);color:var(--chisel-ui-action-text);border:0;padding:0 12px;border-radius:8px;align-self:flex-end}.feedback-thread{margin-top:16px}.feedback-thread form button,.feedback-resolve{background:var(--chisel-ui-surface);border:1px solid var(--chisel-ui-border);border-radius:4px;padding:7px 10px;margin-top:8px}.feedback-resolve{color:var(--chisel-ui-text)}.feedback-reply{border-left:2px solid var(--chisel-ui-border);padding-left:10px}.feedback-error{color:var(--chisel-ui-danger);padding:0 8px;margin:0 0 16px;line-height:1.5;font-size:13px}.feedback-comment-list>p[role=status]{margin:0;padding:24px 8px;color:var(--chisel-ui-secondary);line-height:1.5;font-size:13px}@media(max-width:760px){.feedback-workspace{flex-direction:column}.feedback-canvas{height:48%;flex:none;padding:0}.feedback-sidebar{width:100%;height:auto;flex:1;padding:0}.feedback-sidebar-panel{border:0}.feedback-sidebar-title{min-height:44px}.feedback-tabs{margin-bottom:8px}.feedback-tabs button{min-height:44px;padding:0 8px}.feedback-empty{padding:12px}.feedback-empty>span{display:none}.feedback-toolbar{bottom:10px}.feedback-comment{padding:14px 8px}}.comment-box{position:absolute;z-index:4;display:flex;flex-direction:column;width:344px;max-width:calc(100% - 16px);height:auto;max-height:calc(100% - 16px);padding:0;overflow:hidden;border:0;border-radius:16px;background:var(--chisel-ui-surface);color:var(--chisel-ui-text);box-shadow:var(--chisel-ui-popover-shadow);font:12px var(--chisel-ui-font);color-scheme:inherit}.comment-box[data-settings-open=true]{height:440px}.comment-box-settings{display:flex;flex-direction:column;flex:1;min-height:0}.comment-box-settings[hidden],.comment-box[hidden],.comment-thread form[hidden]{display:none}.comment-box-draft-pin{pointer-events:none}.comment-box-prompt{display:flex;align-items:center;gap:9px;min-height:44px;padding:8px 12px;flex-shrink:0}.comment-box-symbol{position:relative;border:0;padding:0;display:grid;place-items:center;background:transparent;border-radius:8px;width:40px;height:40px;flex-shrink:0}.comment-box-symbol[aria-expanded=true]{background:var(--chisel-ui-selected)}.comment-box-symbol:hover{background:var(--chisel-ui-hover)}.comment-box-symbol svg{width:14px;height:14px;color:var(--chisel-ui-text)}.comment-box .comment-box-prompt input{border:0;border-radius:0;background:none;box-shadow:none;padding:0;color:var(--chisel-ui-text);font:13px var(--chisel-ui-font);outline:none;width:100%;min-width:0}.comment-box-prompt input::placeholder{color:var(--chisel-ui-muted)}.comment-box-element{display:flex;align-items:center;justify-content:space-between;background:var(--chisel-ui-raised);color:var(--chisel-ui-muted);min-height:28px;padding:0 15px;flex-shrink:0}.comment-box-element code{font:12px monospace}.comment-box-element svg{color:var(--chisel-ui-muted)}.comment-box,.comment-thread{translate:var(--comment-drag-x,0px) var(--comment-drag-y,0px)}.feedback-shell .comment-window-drag{display:grid;place-items:center;flex-shrink:0;width:40px;height:40px;padding:0;border:0;border-radius:var(--chisel-ui-radius);background:transparent;color:var(--chisel-ui-muted);cursor:grab;touch-action:none;user-select:none}.feedback-shell .comment-window-drag:hover{background:var(--chisel-ui-hover);color:var(--chisel-ui-text)}.feedback-shell .comment-window-drag[data-dragging=true]{cursor:grabbing}.comment-box-element .comment-window-drag{margin-left:auto;margin-right:-8px}.feedback-thread-header>.comment-window-drag{margin-right:0}.comment-box-preview-status{margin-left:auto;margin-right:8px;font:12px var(--chisel-ui-font);color:var(--chisel-ui-accent-text)}.comment-box-properties{flex:1;min-height:0;min-width:0;border:0;margin:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--chisel-ui-scrollbar) transparent;padding:4px 15px 9px;position:relative}.comment-box-row{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;color:var(--chisel-ui-secondary)}.comment-box-row>span{white-space:nowrap}.comment-box .comment-box-row input,.comment-box select{border:0;background:var(--chisel-ui-raised);color:var(--chisel-ui-secondary);border-radius:8px;min-width:0;width:128px;height:var(--chisel-ui-control);font:12px var(--chisel-ui-font);padding:4px 8px;text-overflow:ellipsis}.comment-box input:disabled{opacity:.35}.comment-box-number{display:flex;align-items:center;border:0;background:var(--chisel-ui-raised);border-radius:8px;width:128px;flex-shrink:0;height:var(--chisel-ui-control);padding-right:8px;color:var(--chisel-ui-muted)}.comment-box .comment-box-number input{border:0;width:100%;height:40px;background:transparent;box-shadow:none}.comment-box-number input::-webkit-inner-spin-button,.comment-box-spacing input::-webkit-inner-spin-button{-webkit-appearance:none}.comment-box-number>span{font:11px monospace}.comment-box select{appearance:auto}.comment-box-color{display:flex;align-items:center;gap:8px;border:0;width:142px;height:var(--chisel-ui-control);border-radius:7px;padding:3px 4px;min-width:0}.comment-color-trigger{position:relative;display:grid;place-items:center;width:24px;height:24px;flex-shrink:0;padding:0;border:0;border-radius:4px;background:repeating-conic-gradient(var(--chisel-ui-checker-light) 0% 25%,var(--chisel-ui-checker-dark) 0% 50%) 50%/8px 8px}.comment-color-trigger:after{content:"";position:absolute;inset:-8px;border-radius:inherit}.comment-color-trigger>span{display:block;width:100%;height:100%;border-radius:inherit;box-shadow:inset 0 0 0 1px var(--chisel-ui-border)}@media(pointer:coarse){.comment-color-trigger:after{inset:-10px}}.comment-color-value{font:12px monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--chisel-ui-secondary)}.chisel-color-picker,.chisel-color-picker *{box-sizing:border-box}.chisel-color-picker{position:fixed;z-index:1000001;width:256px;max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);overflow:auto;padding:16px;border:0;border-radius:16px;background:var(--chisel-ui-surface);color:var(--chisel-ui-text);font:12px var(--chisel-ui-font);box-shadow:var(--chisel-ui-popover-shadow);color-scheme:inherit}.chisel-color-plane{position:relative;height:160px;margin:0 0 14px;border-radius:10px;touch-action:none;cursor:crosshair;background-image:linear-gradient(to top,#000,transparent),linear-gradient(to right,#fff,transparent)}.chisel-color-thumb{position:absolute;width:19px;height:19px;border:2px solid #fff;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;box-shadow:0 1px 5px #0004}.chisel-color-tools{display:flex;gap:12px;align-items:center;margin-bottom:14px}.chisel-color-hue{appearance:none;-webkit-appearance:none;flex:1;min-width:0;height:40px;border:12px solid transparent;background-clip:padding-box;border-radius:20px;margin:0;background:linear-gradient(to right,red,#ff0,#0f0,#0ff,#00f,#f0f,red);cursor:pointer}.chisel-color-hue::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:20px;height:20px;border:2px solid #fff;border-radius:50%;background:var(--hue);box-shadow:0 1px 4px #0004}.chisel-color-hue::-moz-range-thumb{width:16px;height:16px;border:2px solid #fff;border-radius:50%;background:var(--hue);box-shadow:0 1px 4px #0004}.chisel-color-tools button{display:grid;place-items:center;flex-shrink:0;width:44px;height:40px;padding:0;background:var(--chisel-ui-raised);border:0;border-radius:8px;color:var(--chisel-ui-text);cursor:pointer}.chisel-color-tools button:disabled{opacity:.35;cursor:not-allowed}.chisel-color-hex{display:flex;flex-direction:column;gap:8px;color:var(--chisel-ui-secondary);font-size:11px}.chisel-color-hex input{width:100%;height:40px;border:0;border-radius:8px;padding:7px 9px;background:var(--chisel-ui-raised);color:var(--chisel-ui-text);font:13px monospace}.chisel-color-hex input[aria-invalid=true]{outline:2px solid var(--chisel-ui-danger)}.chisel-color-error{display:block;color:var(--chisel-ui-danger);font-size:11px;margin-top:6px}.chisel-color-accessible{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);border:0}.comment-box-control-group{margin-top:20px}.comment-box-control-group h3{font:500 12px/18px var(--chisel-ui-font);margin:0 0 8px;color:var(--chisel-ui-text)}.comment-box-group{border:0;margin-top:20px;padding-top:0}.comment-box-group summary{list-style:none;display:flex;align-items:center;gap:6px;min-height:40px;color:var(--chisel-ui-secondary);cursor:pointer}.comment-box-group summary::-webkit-details-marker{display:none}.comment-box-group[open] summary svg{transform:rotate(90deg)}.comment-box-pair{position:relative;padding:2px 0}.comment-box-pair .comment-box-row{min-height:44px}.comment-box-link{position:absolute;left:42%;top:50%;transform:translate(-50%,-50%);border:0;background:var(--chisel-ui-surface);color:var(--chisel-ui-muted);border-radius:50%;width:40px;height:40px;display:grid;place-items:center;z-index:1}.comment-box-link:before{content:none}.comment-box-link svg{padding:0}.comment-box-link:hover{background:var(--chisel-ui-hover)}.comment-box-link[aria-pressed=true]{color:var(--chisel-ui-accent-text);background:var(--chisel-ui-accent-surface)}.comment-box-link[aria-pressed=true]:before{border-color:var(--chisel-ui-focus)}.comment-box-number{font-variant-numeric:tabular-nums}.comment-box .comment-box-number input::-webkit-inner-spin-button{-webkit-appearance:none}.comment-box-footer{height:56px;min-height:56px;display:flex;align-items:center;gap:8px;padding:8px;border:0}.comment-box-footer>span{flex:1}.comment-box-footer button{display:grid;place-items:center;border:0;background:none;color:var(--chisel-ui-text);height:40px;width:40px}.comment-box-footer .comment-box-cancel:hover{background:var(--chisel-ui-hover)}.comment-box-footer .comment-box-cancel{width:auto;padding:0 9px;font:13px var(--chisel-ui-font);border:0;border-radius:8px;background:transparent}.comment-box-footer .comment-box-submit{width:40px;border-radius:8px;background:var(--chisel-ui-action);color:var(--chisel-ui-action-text)}.comment-box-footer .comment-box-submit:disabled{opacity:.4;cursor:not-allowed}.comment-box-error{margin:0;padding:0 12px 8px;flex-shrink:0;font-size:11px;line-height:1.5;color:var(--chisel-ui-danger)}.comment-box-saving{width:12px;height:12px;border:1px solid var(--chisel-ui-border-strong);border-top-color:transparent;border-radius:50%;animation:chisel-spin 1s linear infinite}.feedback-composer.comment-thread{width:400px;max-width:calc(100% - 16px);gap:0;border-radius:16px;background:var(--chisel-ui-surface);border-color:var(--chisel-ui-border);color:var(--chisel-ui-text);padding:0;box-shadow:var(--chisel-ui-popover-shadow);color-scheme:inherit;overflow:hidden auto;scrollbar-width:thin}.feedback-thread-header{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:56px;padding:8px 12px 4px 20px;border:0;flex-shrink:0}.comment-thread .feedback-thread-summary{width:100%;padding:16px}.comment-thread .feedback-thread-summary:empty{display:none}.comment-thread .feedback-thread-replies{width:100%;padding:0 16px}.comment-thread form{width:100%;padding:16px}.feedback-composer.comment-thread[data-expanded=false]{width:240px;max-width:calc(100% - 16px);border-radius:16px 16px 16px 0;overflow:hidden}.feedback-thread-content{display:flex;flex-direction:column;flex-shrink:0;width:100%}.feedback-thread-content[hidden]{display:none}.feedback-hover-preview{display:flex;align-items:flex-start;gap:10px;flex-shrink:0;width:100%;padding:12px;border:0;border-radius:inherit;background:transparent;color:var(--chisel-ui-text);text-align:left;font:12px/16px var(--chisel-ui-font)}.feedback-hover-preview>.feedback-avatar{width:24px;height:24px;font-size:12px}.feedback-hover-preview img{width:100%;height:100%;object-fit:cover}.feedback-hover-copy{flex:1;min-width:0}.feedback-hover-byline{display:flex;align-items:baseline;gap:4px;white-space:nowrap;overflow:hidden}.feedback-hover-byline strong{font-weight:500;overflow:hidden;text-overflow:ellipsis}.feedback-hover-byline time{color:var(--chisel-ui-muted);font-size:11px;flex-shrink:0}.feedback-hover-message{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.feedback-pin.selected:before{border-color:var(--chisel-ui-focus)}.comment-thread .feedback-thread-summary,.comment-thread .feedback-thread-replies,.comment-thread form{width:100%;flex-shrink:0}.comment-thread .feedback-preview{white-space:nowrap}.feedback-thread-summary{display:flex;align-items:flex-start;gap:8px;flex-shrink:0}.feedback-thread-summary,.feedback-thread-reply{position:relative}.feedback-message-edit{display:grid;place-items:center;width:40px;height:40px;flex-shrink:0;padding:0;border:0;border-radius:8px;background:transparent;color:var(--chisel-ui-secondary);opacity:0;transition:opacity .12s,background .12s}.feedback-thread-summary:hover .feedback-message-edit,.feedback-thread-reply:hover .feedback-message-edit,.feedback-message-edit:focus-visible{opacity:1}.feedback-message-edit:hover{background:var(--chisel-ui-hover)}@media(hover:none){.feedback-message-edit{opacity:1}}.feedback-thread-summary-button{display:flex;align-items:flex-start;gap:10px;flex:1;min-width:0;border:0;padding:0;text-align:left;background:transparent;color:inherit}.feedback-thread-summary-button>.feedback-avatar{width:26px;height:26px;flex-shrink:0;margin-top:1px;font-size:10px}.feedback-thread-summary-copy{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.feedback-thread-byline{display:flex;align-items:baseline;gap:7px;min-width:0;flex-wrap:wrap}.feedback-thread-byline strong{font-size:13px;font-weight:600;line-height:1.4;overflow-wrap:anywhere}.feedback-thread-byline time{font-size:12px;color:var(--chisel-ui-muted);white-space:nowrap}.feedback-thread-summary .feedback-thread-message{font-size:14px;line-height:1.5;color:var(--chisel-ui-text);overflow-wrap:anywhere}.comment-thread[data-expanded=false] .feedback-thread-message{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.feedback-thread-reply-count{font-size:12px;line-height:1.4;color:var(--chisel-ui-muted)}.feedback-thread-close{display:grid;place-items:center;flex-shrink:0;width:24px;height:24px;border:0;border-radius:6px;background:none;color:var(--chisel-ui-muted);padding:4px}.feedback-thread-header-actions{display:flex;gap:4px;flex-shrink:0}.feedback-thread-header-actions .feedback-thread-close{position:relative;width:40px;height:40px}.feedback-thread-header-actions .feedback-thread-delete:hover{color:var(--chisel-ui-danger)}@container (max-width:400px){.feedback-thread-header{gap:4px;padding-inline:8px}.feedback-thread-header-actions{gap:0}}.feedback-thread-close:hover{background:var(--chisel-ui-hover);color:var(--chisel-ui-text)}.feedback-thread-reply{display:flex;align-items:flex-start;gap:10px;padding:16px 0;border:0}.feedback-thread-reply>.feedback-avatar{width:24px;height:24px;font-size:10px}.feedback-thread-reply>div{flex:1;min-width:0}.feedback-thread-reply strong{font-size:13px;font-weight:600}.feedback-thread-reply p{font-size:14px;line-height:1.5;margin:4px 0 0;color:var(--chisel-ui-secondary)}.comment-thread form{padding-top:16px;border:0}.feedback-shell .comment-thread textarea{background:var(--chisel-ui-raised);color:var(--chisel-ui-text);border:1px solid var(--chisel-ui-border);border-radius:9px;min-height:40px;max-height:min(240px,40dvh);padding:10px 12px;font-size:14px;line-height:1.5;resize:none;overflow-y:auto}.comment-thread .feedback-thread-actions{margin-top:6px}.comment-thread .feedback-primary{border-radius:50%;width:40px;height:40px;padding:0;font-size:0;background:var(--chisel-ui-action);color:var(--chisel-ui-action-text);margin:0;transition:opacity .15s,transform .15s}.comment-thread .feedback-primary:disabled{opacity:.35;cursor:not-allowed}.comment-thread .feedback-primary:not(:disabled):active{transform:scale(.96)}.comment-thread .feedback-resolve{background:transparent;color:var(--chisel-ui-secondary);border:0;border-radius:6px;padding:6px;font-size:12px;min-height:40px}.comment-thread .feedback-resolve:hover{background:var(--chisel-ui-hover);color:var(--chisel-ui-text)}@media(prefers-reduced-motion:reduce){.comment-thread .feedback-primary{transition:none}}@media(prefers-reduced-motion:reduce){.comment-box-saving{animation:none}}.comment-thread .feedback-preview{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;min-height:40px;margin-left:36px;padding:5px 9px;border:1px solid var(--chisel-ui-border);border-radius:6px;background:var(--chisel-ui-raised);color:var(--chisel-ui-secondary);font-size:11px}.comment-thread .feedback-preview[aria-pressed=true]{border-color:var(--chisel-ui-focus);background:var(--chisel-ui-accent-surface)}.comment-thread .feedback-preview:disabled{opacity:.5;cursor:not-allowed}.feedback-proposal-actions{display:flex;align-items:center;flex-wrap:wrap;gap:4px;padding:0 12px 8px}.comment-thread .feedback-proposal-actions .feedback-preview{margin:0;padding:0 8px;border:0;border-radius:8px;background:transparent;font-size:12px;min-height:40px}.comment-thread .feedback-proposal-actions .feedback-preview:hover{background:var(--chisel-ui-hover);color:var(--chisel-ui-text)}.comment-thread .feedback-proposal-actions .feedback-preview[aria-pressed=true]{background:var(--chisel-ui-accent-surface);color:var(--chisel-ui-accent-text)}@media(pointer:coarse){.feedback-toolbar button{height:44px}.feedback-tabs button,.feedback-account summary{min-width:44px}.feedback-review-invite summary{min-height:44px}.feedback-pin:after{content:"";position:absolute;inset:-2px;border-radius:inherit}.feedback-account summary,.feedback-review-invite button,.feedback-shell .feedback-primary,.feedback-thread-status,.feedback-thread-status select{min-height:44px}.feedback-shell .comment-window-drag,.feedback-thread-header-actions .feedback-thread-close{width:44px;height:44px}.comment-box-footer{height:60px;min-height:60px}.comment-box-footer button{height:44px;width:44px}.comment-box-footer .comment-box-submit{width:44px}}@media(forced-colors:active){.feedback-sidebar-panel,.comment-box,.feedback-composer.comment-thread,.feedback-confirmation,.feedback-account>div{border:1px solid CanvasText;box-shadow:none;background:Canvas;color:CanvasText}.feedback-shell button[aria-pressed=true]{outline:1px solid Highlight;outline-offset:-2px}.feedback-shell input,.feedback-shell textarea,.comment-box-number,.feedback-avatar{border:1px solid CanvasText}}.feedback-shell{--chisel-ui-scale:.935;--chisel-ui-hit:calc(40px / var(--chisel-ui-scale))}.feedback-sidebar,.feedback-toolbar{zoom:var(--chisel-ui-scale)}.feedback-composer,.comment-box,.feedback-pin{scale:var(--chisel-ui-scale);transform-origin:top left}.feedback-toolbar{--chisel-ui-control:var(--chisel-ui-hit)}.feedback-shell .feedback-sidebar :is(button,summary,input:not([type=checkbox])),.feedback-shell .feedback-toolbar button,.feedback-shell .feedback-toolbar .feedback-preview-width input,.feedback-shell :is(.feedback-composer,.comment-box) :is(button,select,[role=textbox]),.feedback-shell.chisel-review :is(.feedback-composer,.comment-box) :is(button,select,[role=textbox]){min-width:var(--chisel-ui-hit);min-height:var(--chisel-ui-hit)}.feedback-shell .feedback-thread-status{min-height:var(--chisel-ui-hit)}.feedback-shell .feedback-pin:after{content:"";position:absolute;inset:calc((40px - var(--chisel-ui-hit)) / 2);border-radius:inherit}@media(pointer:coarse){.feedback-shell{--chisel-ui-hit:calc(44px / var(--chisel-ui-scale))}}
4
4
  `;function fo(){return Ml("style",{children:Al})}function nr(a){try{let t=new URL(a),r=/^\d+(?:\.\d+){3}$/.test(t.hostname)&&/^(0\.|10\.|127\.|169\.254\.|192\.168\.|172\.(1[6-9]|2\d|3[01])\.)/.test(t.hostname);if(t.protocol!=="https:"||t.username||t.password||!t.hostname.includes(".")||r||/\.(localhost|local|internal)$/.test(t.hostname)||t.hostname.includes(":"))return null;let l=t.pathname.replace(/\/+$/,"");return t.pathname=l.endsWith("/chisel")?l:`${l}/chisel`,t.search="",t.hash="",t.toString()}catch{return null}}function co(a,t){let r=new URL(a);r.search="",r.hash="",r.searchParams.set("mode","comment"),r.searchParams.set("path",t.path),r.searchParams.set("thread",t.id),r.searchParams.set("breakpoint",t.breakpoint??"desktop");let l=t.context?.width??{desktop:1440,tablet:768,mobile:390}[t.breakpoint??"desktop"];return r.searchParams.set("width",String(l)),r.toString()}function fr(a,t){return["# Website feedback for agents","Apply the requested changes in the source code. Preserve unrelated behavior. Verify each affected page and viewport.",...a.map((r,l)=>[`## ${l+1}. ${r.path} \xB7 ${r.breakpoint??"desktop"}`,`Thread: ${co(t,r)}`,`Status: ${r.status??(r.resolved?"resolved":"open")}`,r.context?`Viewport: ${r.context.width} \xD7 ${r.context.height}px
5
5
  Captured: ${r.context.capturedAt}${r.context.deployment?`
6
6
  Deployment: ${r.context.deployment}`:""}`:"",r.selector?`Element: ${r.selector}`:"Page/area comment",r.area?`Area: ${JSON.stringify(r.area)}`:"",`${r.author}: ${r.text}`,...(r.replies??[]).map(d=>typeof d=="string"?d:`${d.author}: ${d.text}`),...(r.attachments??[]).map(d=>d.previewUrl?`![${d.name.replace(/[\[\]]/g,"")}](${d.previewUrl})`:`Attachment: ${d.name} (open the thread to view)`),...(r.changes??[]).map(d=>`${d.property}: ${JSON.stringify(d.before)} \u2192 ${JSON.stringify(d.after)}`)].filter(Boolean).join(`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "use-chisel",
3
- "version": "0.1.12",
3
+ "version": "0.1.13",
4
4
  "description": "Hosted website reviews and visual editing for Next.js.",
5
5
  "type": "module",
6
6
  "keywords": [