@snagset/server 0.0.3 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -3
- package/dist/app.js +167 -30
- package/dist/app.js.map +1 -1
- package/dist/bin.js +46 -9
- package/dist/bin.js.map +1 -1
- package/dist/boot.js +105 -54
- package/dist/boot.js.map +1 -1
- package/dist/config.generated.js +5 -2
- package/dist/config.generated.js.map +1 -1
- package/dist/db/connect.js +7 -0
- package/dist/db/connect.js.map +1 -1
- package/dist/db/migrations/0005_studio_reviewers.sql +45 -0
- package/dist/db/migrations/0006_instance_settings.sql +69 -0
- package/dist/db/migrations/0007_jira_provider.no-txn.sql +13 -0
- package/dist/domain.js +129 -0
- package/dist/domain.js.map +1 -0
- package/dist/instance/settings.js +54 -0
- package/dist/instance/settings.js.map +1 -0
- package/dist/integrations/github.js +112 -0
- package/dist/integrations/github.js.map +1 -0
- package/dist/integrations/inbound.js +88 -0
- package/dist/integrations/inbound.js.map +1 -0
- package/dist/integrations/jira.js +129 -0
- package/dist/integrations/jira.js.map +1 -0
- package/dist/integrations/linear.js +111 -0
- package/dist/integrations/linear.js.map +1 -0
- package/dist/integrations/outbox.js +305 -0
- package/dist/integrations/outbox.js.map +1 -0
- package/dist/integrations/slack.js +135 -0
- package/dist/integrations/slack.js.map +1 -0
- package/dist/integrations/store.js +101 -0
- package/dist/integrations/store.js.map +1 -0
- package/dist/mail/index.js +21 -11
- package/dist/mail/index.js.map +1 -1
- package/dist/mail/resolve.js +80 -0
- package/dist/mail/resolve.js.map +1 -0
- package/dist/projectCache.js +3 -2
- package/dist/projectCache.js.map +1 -1
- package/dist/projects.js +8 -2
- package/dist/projects.js.map +1 -1
- package/dist/routes/account.js +59 -0
- package/dist/routes/account.js.map +1 -0
- package/dist/routes/activity.js +111 -0
- package/dist/routes/activity.js.map +1 -0
- package/dist/routes/anchorReports.js +196 -0
- package/dist/routes/anchorReports.js.map +1 -0
- package/dist/routes/assignees.js +139 -0
- package/dist/routes/assignees.js.map +1 -0
- package/dist/routes/attachments.js +2 -2
- package/dist/routes/attachments.js.map +1 -1
- package/dist/routes/bodyLimit.js +60 -0
- package/dist/routes/bodyLimit.js.map +1 -0
- package/dist/routes/comments.js +27 -17
- package/dist/routes/comments.js.map +1 -1
- package/dist/routes/cors.js +10 -1
- package/dist/routes/cors.js.map +1 -1
- package/dist/routes/instance.js +164 -0
- package/dist/routes/instance.js.map +1 -0
- package/dist/routes/integrations.js +610 -0
- package/dist/routes/integrations.js.map +1 -0
- package/dist/routes/jobs.js +15 -3
- package/dist/routes/jobs.js.map +1 -1
- package/dist/routes/mcpTokens.js +119 -0
- package/dist/routes/mcpTokens.js.map +1 -0
- package/dist/routes/members.js +177 -0
- package/dist/routes/members.js.map +1 -0
- package/dist/routes/owner.js +64 -7
- package/dist/routes/owner.js.map +1 -1
- package/dist/routes/sites.js +181 -8
- package/dist/routes/sites.js.map +1 -1
- package/dist/routes/threads.js +276 -9
- package/dist/routes/threads.js.map +1 -1
- package/dist/serverless.js +39 -6
- package/dist/serverless.js.map +1 -1
- package/dist/studioReviewers.js +67 -0
- package/dist/studioReviewers.js.map +1 -0
- package/dist/vendor/adapters/outbound/sanitise.js +18 -3
- package/dist/vendor/types/brief.js +121 -0
- package/package.json +1 -1
- package/static/dashboard/assets/CompositeItem-CoPuxIvr.js +1 -0
- package/static/dashboard/assets/ConfirmDialog-DkCcJwll.js +1 -0
- package/static/dashboard/assets/CopyButton-BNa2pLLv.js +1 -0
- package/static/dashboard/assets/FieldItemContext-DQXjpFtW.js +1 -0
- package/static/dashboard/assets/InstallTag-SOlWl7Hx.js +1 -0
- package/static/dashboard/assets/SaveState-CmxB4XyX.js +6 -0
- package/static/dashboard/assets/_app-DNkv3HBi.js +1 -0
- package/static/dashboard/assets/_app-xVQe811c.js +56 -0
- package/static/dashboard/assets/activity-DsMa5Ja6.js +1 -0
- package/static/dashboard/assets/arrow-left-vQV4xhAD.js +6 -0
- package/static/dashboard/assets/avatar-DuPL6QD_.js +1 -0
- package/static/dashboard/assets/badge-BWjiIc8T.js +1 -0
- package/static/dashboard/assets/card-BIBfCno8.js +1 -0
- package/static/dashboard/assets/check-Dpx6GTdT.js +6 -0
- package/static/dashboard/assets/chevron-right-DKIlBUGN.js +6 -0
- package/static/dashboard/assets/copy-DCbhEe2L.js +6 -0
- package/static/dashboard/assets/createBaseUIEventDetails-C_ZVkrgp.js +1 -0
- package/static/dashboard/assets/createLucideIcon-C_IGE4WD.js +36 -0
- package/static/dashboard/assets/dialog-BT2uWf4e.js +6 -0
- package/static/dashboard/assets/dropdown-menu-DSXzPAwB.js +11 -0
- package/static/dashboard/assets/image-off-DGWejLDG.js +6 -0
- package/static/dashboard/assets/index-BRTBtV91.css +1 -0
- package/static/dashboard/assets/index-D6FWZoJT.js +129 -0
- package/static/dashboard/assets/label-9QsSpLMA.js +1 -0
- package/static/dashboard/assets/labels--UUyt9uB.js +1 -0
- package/static/dashboard/assets/layout-grid-UPGEmEw-.js +6 -0
- package/static/dashboard/assets/me-0HQsBXLU.js +1 -0
- package/static/dashboard/assets/parts-C29uZ5zo.js +1 -0
- package/static/dashboard/assets/plus-BFNS5LcY.js +6 -0
- package/static/dashboard/assets/s._site-D6Ep2tdc.js +1 -0
- package/static/dashboard/assets/s._site.comments-BRVI5gpJ.js +39 -0
- package/static/dashboard/assets/s._site.reviewers-CiEkZnnp.js +1 -0
- package/static/dashboard/assets/s._site.settings-BqLGyfEd.js +1 -0
- package/static/dashboard/assets/setup-dUMCPWdf.js +1 -0
- package/static/dashboard/assets/sign-in-CdRa-bio.js +1 -0
- package/static/dashboard/assets/sites-CmbtFKoo.js +1 -0
- package/static/dashboard/assets/studio-BHuVXWZh.js +1 -0
- package/static/dashboard/assets/studio-BjeTOKda.js +1 -0
- package/static/dashboard/assets/studio.index--kuzOs7w.js +1 -0
- package/static/dashboard/assets/studio.integrations-Bq6HP80a.js +1 -0
- package/static/dashboard/assets/studio.members-8AB1KYsw.js +1 -0
- package/static/dashboard/assets/sun-BCiTcgnh.js +16 -0
- package/static/dashboard/assets/table-BXmeI_yA.js +1 -0
- package/static/dashboard/assets/update-duXzIzFS.js +1 -0
- package/static/dashboard/assets/useBaseQuery-Cp9wivVR.js +1 -0
- package/static/dashboard/assets/useQuery-BZXZlOqO.js +1 -0
- package/static/dashboard/assets/useRender-CO8aPW06.js +1 -0
- package/static/dashboard/assets/users-Dvw2FCKM.js +6 -0
- package/static/dashboard/assets/welcome-BHKjw20b.js +11 -0
- package/static/dashboard/assets/you-RBpAfUMU.js +1 -0
- package/static/dashboard/assets/zod-BpyjQIvb.js +1 -0
- package/static/dashboard/index.html +17 -2
- package/static/widget/snag.capture.js +1 -1
- package/static/widget/snag.dock.js +1 -1
- package/static/widget/snag.panels.js +1 -1
- package/static/widget/snag.runtime.js +2 -2
- package/static/widget/snag.text.js +1 -1
- package/vercel.json +4 -0
- package/static/dashboard/assets/index-DsUJ96yc.css +0 -1
- package/static/dashboard/assets/index-DultqpS7.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r,t as w,j as e,e as b,v as y,B as f,N}from"./index-D6FWZoJT.js";import{L as c,I as m}from"./label-9QsSpLMA.js";import{P as S,a as h}from"./parts-C29uZ5zo.js";import{S as C}from"./SaveState-CmxB4XyX.js";import{u as P}from"./me-0HQsBXLU.js";import{u as A,a as k}from"./studio-BjeTOKda.js";import{M as F,S as E,a as M}from"./sun-BCiTcgnh.js";import"./createBaseUIEventDetails-C_ZVkrgp.js";import"./card-BIBfCno8.js";import"./labels--UUyt9uB.js";import"./createLucideIcon-C_IGE4WD.js";import"./useBaseQuery-Cp9wivVR.js";function T({items:t}){const[a,n]=r.useState(w);return e.jsx("div",{className:"flex gap-2",role:"radiogroup","aria-label":"Theme",children:t.map(s=>e.jsxs("button",{type:"button",role:"radio","aria-checked":a===s.value,onClick:()=>{y(s.value),n(s.value)},className:b("inline-flex h-7 items-center gap-1.5 rounded-md border border-border bg-card px-2.5 text-[12.5px] font-medium text-ink-soft",a===s.value&&"border-line-strong bg-muted text-foreground"),children:[s.icon,s.label]},s.value))})}function Q(){const t=P(),a=A(),[n,s]=r.useState(t.user.name),[u,l]=r.useState(null);r.useEffect(()=>s(t.user.name),[t.user.name]);const d=n.trim()!==t.user.name;return e.jsxs("div",{className:"flex flex-col gap-10 p-7",children:[e.jsx(S,{title:"You",sub:"Your own account on this studio",actions:e.jsx(C,{saving:a.isPending,savedAt:u})}),e.jsxs(h,{title:"Profile",description:"How you appear on replies and in the members list.",children:[e.jsxs("form",{className:"flex flex-col gap-1.5",onSubmit:i=>{i.preventDefault(),d&&a.mutate(n.trim(),{onSuccess:()=>l(Date.now())})},children:[e.jsx(c,{htmlFor:"your-name",children:"Name"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(m,{id:"your-name",value:n,onChange:i=>s(i.target.value)}),d&&e.jsx(f,{type:"submit",variant:"outline",children:"Save"})]})]}),e.jsxs("div",{className:"flex flex-col gap-1.5",children:[e.jsx(c,{htmlFor:"your-email",children:"Email"}),e.jsx(m,{id:"your-email",value:t.user.email,readOnly:!0,className:"bg-muted text-ink-soft"}),e.jsxs("p",{className:"m-0 text-[12px] text-muted-foreground",children:["How you sign in, and how the server finds you. An owner changes it with"," ",e.jsx("code",{className:"font-mono",children:"snagset passwd"}),"."]})]})]}),e.jsx(h,{title:"Password",description:"Changing it keeps this session and ends every other one.",children:e.jsx(D,{})}),e.jsx(h,{title:"Appearance",description:"Also in your menu at the bottom of the sidebar.",children:e.jsx(T,{items:[{value:"system",label:"System",icon:e.jsx(F,{className:"size-3.5"})},{value:"light",label:"Light",icon:e.jsx(E,{className:"size-3.5"})},{value:"dark",label:"Dark",icon:e.jsx(M,{className:"size-3.5"})}]})})]})}function D(){const t=k(),[a,n]=r.useState(""),[s,u]=r.useState(""),[l,d]=r.useState(""),[i,g]=r.useState(""),[j,x]=r.useState(!1),p=a.length>0&&s.length>=12&&s===l;return e.jsxs("form",{className:"flex flex-col gap-4",onSubmit:async o=>{if(o.preventDefault(),!(!p||t.isPending)){g("");try{await t.mutateAsync({current:a,next:s}),n(""),u(""),d(""),x(!0)}catch(v){g(N(v))}}},children:[i&&e.jsx("p",{role:"alert",className:"m-0 rounded-md border border-destructive/40 bg-warn-soft px-3 py-2 text-[13px] text-destructive",children:i}),e.jsxs("div",{className:"flex flex-col gap-1.5",children:[e.jsx(c,{htmlFor:"pw-current",children:"Current password"}),e.jsx(m,{id:"pw-current",type:"password",autoComplete:"current-password",value:a,onChange:o=>{n(o.target.value),x(!1)}})]}),e.jsxs("div",{className:"flex flex-col gap-1.5",children:[e.jsx(c,{htmlFor:"pw-next",children:"New password"}),e.jsx(m,{id:"pw-next",type:"password",autoComplete:"new-password",value:s,onChange:o=>{u(o.target.value),x(!1)}}),e.jsx("p",{className:"m-0 text-[12px] text-muted-foreground",children:"At least 12 characters. No composition rules — length is what matters."})]}),e.jsxs("div",{className:"flex flex-col gap-1.5",children:[e.jsx(c,{htmlFor:"pw-again",children:"Confirm new password"}),e.jsx(m,{id:"pw-again",type:"password",autoComplete:"new-password",value:l,onChange:o=>{d(o.target.value),x(!1)}}),l.length>0&&s!==l&&e.jsx("p",{className:"m-0 text-[12px] text-muted-foreground",children:"Those do not match yet."})]}),e.jsx("div",{className:"flex justify-end",children:e.jsx(f,{type:"submit",disabled:!p||t.isPending,children:t.isPending?"Changing…":j&&!p?"Changed":"Change password"})})]})}export{Q as component};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{at as I}from"./index-D6FWZoJT.js";var me=e=>e.type==="checkbox",Se=e=>e.type==="file",te=e=>e instanceof Date,p=e=>e==null;const He=e=>typeof e=="object";var N=e=>!p(e)&&!Array.isArray(e)&&He(e)&&!te(e),Gr=e=>N(e)&&e.target?me(e.target)?e.target.checked:Se(e.target)?e.target.files:e.target.value:e;const Kr=/[.[\]'"]/;var ue=e=>e.split(Kr).filter(Boolean),Zr=(e,s)=>s.split(".").some((r,i,l)=>!isNaN(Number(r))&&e.has(l.slice(0,i).join("."))),Te=typeof window<"u"&&typeof window.HTMLElement<"u"&&typeof document<"u";function C(e){if(e===null||typeof e!="object")return e;if(e instanceof Date)return new Date(e);const s=typeof FileList<"u"&&e instanceof FileList;if(Te&&(e instanceof Blob||s))return e;const r=Array.isArray(e);if(!r&&e.constructor!==Object)return e;const i=r?[]:Object.create(Object.getPrototypeOf(e));for(const l in e)Object.prototype.hasOwnProperty.call(e,l)&&(i[l]=C(e[l]));return i}const oe={BLUR:"blur",FOCUS_OUT:"focusout",SUBMIT:"submit",TRIGGER:"trigger",VALID:"valid"},X={onBlur:"onBlur",onChange:"onChange",onSubmit:"onSubmit",onTouched:"onTouched",all:"all"},J={max:"max",min:"min",maxLength:"maxLength",minLength:"minLength",pattern:"pattern",required:"required",validate:"validate"},Dr="root",je=["__proto__","constructor","prototype"],Jr=/^\w*$/;var ne=e=>Jr.test(e),O=e=>e===void 0,v=(e,s,r)=>{if(!s||!N(e))return r;const i=ne(s)?[s]:ue(s);if(i.some(u=>je.includes(u)))return r;const l=i.reduce((u,o)=>p(u)?void 0:u[o],e);return O(l)||l===e?O(e[s])?r:e[s]:l},re=e=>typeof e=="boolean",G=e=>typeof e=="function",k=(e,s,r)=>{let i=-1;const l=ne(s)?[s]:ue(s),u=l.length,o=u-1;for(;++i<u;){const c=l[i];let m=r;if(i!==o){const E=e[c];m=N(E)||Array.isArray(E)?E:isNaN(+l[i+1])?{}:[]}if(je.includes(c))return;e[c]=m,e=e[c]}};const Qr=I.createContext(null);Qr.displayName="HookFormControlContext";var Xr=(e,s,r,i=!0)=>{const l={};for(const u in e)Object.defineProperty(l,u,{get:()=>{const o=u;return s._proxyFormState[o]!==X.all&&(s._proxyFormState[o]=!i||X.all),e[o]}});return l};const et=Te?I.useLayoutEffect:I.useEffect;var rt=e=>{const s=e.constructor&&e.constructor.prototype;return N(s)&&s.hasOwnProperty("isPrototypeOf")},Me=e=>p(e)||!He(e);const lr=(e,s)=>s.length===0&&!Array.isArray(e)&&!rt(e);function Q(e,s,r=new WeakMap){if(e===s)return!0;if(Me(e)||Me(s))return Object.is(e,s);if(te(e)&&te(s))return Object.is(e.getTime(),s.getTime());const i=Object.keys(e),l=Object.keys(s);if(i.length!==l.length)return!1;if(lr(e,i)||lr(s,l))return Object.is(e,s);if(!i.length&&Array.isArray(e)!==Array.isArray(s))return!1;const u=r.get(e);if(u&&u.has(s))return!0;if(u)u.add(s);else{const o=new WeakSet;o.add(s),r.set(e,o)}for(const o of i){const c=e[o];if(!(o in s))return!1;if(o!=="ref"){const m=s[o];if(te(c)&&te(m)||(N(c)||Array.isArray(c))&&(N(m)||Array.isArray(m))?!Q(c,m,r):!Object.is(c,m))return!1}}return!0}function tt(e){const s=I.useRef(!1),r=I.useRef(!1),i=I.useRef(void 0),l=I.useRef(0);l.current++,r.current;const u=I.useCallback((c,m,E)=>{if(c&&(s.current||r.current&&l.current>1)){const T=m();Q(i.current,T)||E(T)}s.current=!0},[]),o=I.useCallback((c,m)=>{c&&(i.current=C(m()))},[]);return{resyncIfNeeded:u,snapshot:o}}var M=e=>typeof e=="string",st=(e,s,r,i,l)=>M(e)?(i&&s.watch.add(e),v(r,e,l)):Array.isArray(e)?e.map(u=>(i&&s.watch.add(u),v(r,u,v(l,u)))):(i&&(s.watchAll=!0),r),De=e=>({isOnSubmit:!e||e===X.onSubmit,isOnBlur:e===X.onBlur,isOnChange:e===X.onChange,isOnAll:e===X.all,isOnTouch:e===X.onTouched}),Ue=(e,s,r)=>{if(r)return!1;if(s.watchAll||s.watch.has(e))return!0;for(const i of s.watch)if(e.startsWith(i)&&e.charAt(i.length)===".")return!0;return!1};const Ve=(e,s,r,i)=>{for(const l of r||Object.keys(e)){if(l==="_f")continue;const u=r?v(e,l):e[l];if(u){const{_f:o}=u;if(o){if(o.refs&&o.refs[0]&&s(o.refs[0],l)&&!i)return!0;if(o.ref&&s(o.ref,o.name)&&!i)return!0;if(Ve(u,s))break}else if((N(u)||Array.isArray(u))&&Ve(u,s))break}}};var ur=(e,s,r)=>{const i=v(e,r),l=Array.isArray(i)?i:[];return k(l,Dr,s[r]),k(e,r,l),e},B=e=>N(e)&&!Object.keys(e).length,ke=e=>{if(!Te)return!1;const s=e?e.ownerDocument:0;return e instanceof(s&&s.defaultView?s.defaultView.HTMLElement:HTMLElement)},ze=e=>e.type==="radio",Oe=e=>e instanceof RegExp,Ye=(e,s,r,i,l)=>s?{...r[e],types:{...r[e]&&r[e].types?r[e].types:{},[i]:l||!0}}:{};const fr={value:!1,isValid:!1},cr={value:!0,isValid:!0};var xr=e=>{if(!Array.isArray(e))return fr;if(e.length>1){const r=e.filter(i=>i&&i.checked&&!i.disabled).map(i=>i.value);return{value:r,isValid:!!r.length}}const s=e[0];return!s||!s.checked||s.disabled?fr:!s.attributes||!("value"in s.attributes)||O(s.value)||s.value===""?cr:{value:s.value,isValid:!0}};const dr={isValid:!1,value:null};var kr=e=>Array.isArray(e)?e.reduce((s,r)=>r&&r.checked&&!r.disabled?{isValid:!0,value:r.value}:s,dr):dr;function yr(e,s,r="validate"){if(M(e)||Array.isArray(e)&&e.every(M)||re(e)&&!e)return{type:r,message:M(e)?e:"",ref:s}}var le=e=>N(e)&&!Oe(e)?e:{value:e,message:""},hr=async(e,s,r,i,l,u)=>{const{ref:o,refs:c,required:m,maxLength:E,minLength:T,min:H,max:j,pattern:$,validate:A,name:F,valueAsNumber:b,mount:fe}=e._f,w=v(r,F);if(!fe||s.has(F))return{};const ee=c?c[0]:o,P=D=>{if(l&&ee.reportValidity){const x=re(D)?"":D||"";c?c.forEach(R=>R.setCustomValidity(x)):ee.setCustomValidity(x),ee.reportValidity()}},S={},ce=ze(o),be=me(o),Ae=ce||be,ae=(b||Se(o))&&O(o.value)&&O(w)||ke(o)&&o.value===""||w===""||Array.isArray(w)&&!w.length,se=Ye.bind(null,F,i,S),Fe=(D,x,R,W=J.maxLength,K=J.minLength)=>{const q=D?x:R;S[F]={type:D?W:K,message:q,ref:o,...se(D?W:K,q)}};if(u?!Array.isArray(w)||!w.length:m&&(!Ae&&(ae||p(w))||re(w)&&!w||be&&!xr(c).isValid||ce&&!kr(c).isValid)){const{value:D,message:x}=M(m)?{value:!!m,message:m}:le(m);if(D&&(S[F]={type:J.required,message:x,ref:ee,...se(J.required,x)},!i))return P(x),S}if(!ae&&(!p(H)||!p(j))){let D,x;const R=le(j),W=le(H);if(!p(w)&&!te(w)&&!isNaN(w)){const K=o.valueAsNumber||w&&+w;p(R.value)||(D=K>R.value),p(W.value)||(x=K<W.value)}else{const K=o.valueAsDate||new Date(w),q=ye=>new Date(new Date().toDateString()+" "+ye),we=o.type=="time",Y=o.type=="week";M(R.value)&&w&&(D=we?q(w)>q(R.value):Y?w>R.value:K>new Date(R.value)),M(W.value)&&w&&(x=we?q(w)<q(W.value):Y?w<W.value:K<new Date(W.value))}if((D||x)&&(Fe(!!D,R.message,W.message,J.max,J.min),!i))return P(S[F].message),S}if((E||T)&&!ae&&(M(w)||u&&Array.isArray(w))){const D=le(E),x=le(T),R=!p(D.value)&&w.length>+D.value,W=!p(x.value)&&w.length<+x.value;if((R||W)&&(Fe(R,D.message,x.message),!i))return P(S[F].message),S}if($&&!ae&&M(w)){const{value:D,message:x}=le($);if(Oe(D)&&!w.match(D)&&(S[F]={type:J.pattern,message:x,ref:o,...se(J.pattern,x)},!i))return P(x),S}if(A){if(G(A)){const D=await A(w,r),x=yr(D,ee);if(x&&(S[F]={...x,...se(J.validate,x.message)},!i))return P(x.message),S}else if(N(A)){let D={};for(const x in A){if(!B(D)&&!i)break;const R=yr(await A[x](w,r),ee,x);R&&(D={...R,...se(x,R.message)},P(R.message),i&&(S[F]=D))}if(!B(D)&&(S[F]={ref:ee,...D},!i))return S}}const de=S[F];return P(de?de.message:!0),S},xe=e=>Array.isArray(e)?e:[e],Or=e=>Array.isArray(e)?e.filter(Boolean):[];function it(e,s){const r=s.length-1;let i=0;for(;i<r;){if(p(e)){e=void 0;break}e=e[s[i]],i++}return e}function nt(e){for(const s in e)if(e.hasOwnProperty(s)&&!O(e[s]))return!1;return!0}function U(e,s){if(M(s)&&Object.prototype.hasOwnProperty.call(e,s))return delete e[s],e;const r=Array.isArray(s)?s:ne(s)?[s]:ue(s);if(r.some(o=>je.includes(String(o))))return e;const i=r.length===1?e:it(e,r),l=r.length-1,u=r[l];return i&&delete i[u],l!==0&&(N(i)&&B(i)||Array.isArray(i)&&nt(i))&&U(e,r.slice(0,-1)),e}const at=I.createContext(null);at.displayName="HookFormContext";var gr=()=>{let e=[];return{get observers(){return e},next:l=>{for(const u of e)u.next&&u.next(l)},subscribe:l=>(e.push(l),{unsubscribe:()=>{e=e.filter(u=>u!==l)}}),unsubscribe:()=>{e=[]}}};function Sr(e,s){const r={};for(const i in e)if(e.hasOwnProperty(i)){const l=e[i],u=s[i];if(l&&N(l)&&u){const o=Sr(l,u);N(o)&&(r[i]=o)}else e[i]&&(r[i]=u)}return r}const vr=(e,s)=>e!==null&&He(e)&&Object.prototype.hasOwnProperty.call(e,s);var ot=(e,s)=>{if(!s)return!1;let r=e;for(const i of ne(s)?[s]:ue(s)){if(!vr(r,i))return vr(e,s);r=r[i]}return!0},Tr=e=>e.type==="select-multiple",lt=e=>ze(e)||me(e),Pe=e=>ke(e)&&e.isConnected;function _r(e){return Array.isArray(e)||N(e)}function Rr(e,s,r="",i=[]){for(const l in e){const u=r?`${r}.${l}`:l,o=e[l];_r(o)&&_r(v(s,u))?Rr(o,s,u,i):i.push(u)}return i}var ut=e=>{for(const s in e)if(G(e[s]))return!0;return!1};function Cr(e){return Array.isArray(e)||N(e)&&!ut(e)}function Lr(e){return!!(e&&"_f"in e)}function Ir(e){return Array.isArray(e)?!e.some(s=>!O(s)):!Object.keys(e).length}function Be(e,s){Array.isArray(e)?e[s]=void 0:delete e[s]}function $e(e,s={},r){for(const i in e){const l=e[i],u=r&&r[i];Cr(l)&&(!Array.isArray(l)||!Lr(u))?(s[i]=Array.isArray(l)?[]:{},$e(l,s[i],u),Ir(s[i])&&Be(s,i)):O(l)||(s[i]=!0)}return s}function ie(e,s,r,i){r||(r=$e(s,{},i));for(const l in e){const u=e[l],o=i&&i[l];Cr(u)&&(!Array.isArray(u)||!Lr(o))?(O(s)||Me(r[l])?r[l]=$e(u,Array.isArray(u)?[]:{},o):ie(u,p(s)?{}:s[l],r[l],o),Ir(r[l])&&Be(r,l)):Q(u,s[l])?Be(r,l):r[l]=!0}return r}var ft=(e,s)=>{const r=s.split("."),i=[];let l=r[0];for(let u=1;u<r.length;l+="."+r[u++])!isNaN(+r[u])&&e.has(l)&&i.push(`${l}.${r[u]}`);return i},Nr=(e,{valueAsNumber:s,valueAsDate:r,setValueAs:i})=>O(e)?e:s?e===""?NaN:e&&+e:r&&M(e)?new Date(e):i?i(e):e;function Vr(e){const s=e.ref;return Se(s)?s.files:ze(s)?kr(e.refs).value:Tr(s)?[...s.selectedOptions].map(({value:r})=>r):me(s)?xr(e.refs).value:Nr(s.value,e)}var ct=(e,s,r,i)=>{const l={};for(const u of e){const o=v(s,u);o&&k(l,u,o._f)}return{criteriaMode:r,names:[...e],fields:l,shouldUseNativeValidation:i}},_e=e=>O(e)?e:Oe(e)?e.source:N(e)?Oe(e.value)?e.value.source:e.value:e;const mr="AsyncFunction";var dt=e=>{if(!e||!e.validate)return!1;if(G(e.validate))return e.validate.constructor.name===mr;if(N(e.validate)){for(const s in e.validate)if(e.validate[s].constructor.name===mr)return!0}return!1},yt=e=>e.mount&&(e.required||!O(e.required)&&e.required!==!1||!O(e.min)||!O(e.max)||!O(e.maxLength)||!O(e.minLength)||e.pattern||e.validate);function br(e,s,r){const i=v(e,r);if(i||ne(r))return{error:i,name:r};const l=r.split(".");for(;l.length;){const u=l.join("."),o=v(s,u),c=v(e,u);if(o&&!Array.isArray(o)&&r!==u)return{name:r};if(c&&c.type)return{name:u,error:c};if(c&&c.root&&c.root.type)return{name:`${u}.root`,error:c.root};l.pop()}return{name:r}}var ht=(e,s,r,i)=>{r(e);const l=Object.keys(e).filter(u=>u!=="name");return!l.length||i&&l.length>=Object.keys(s).length||l.find(u=>s[u]===(!i||X.all))},gt=(e,s,r)=>!e||!s||e===s||xe(e).some(i=>i&&(r?i===s||i.startsWith(s+"."):i.startsWith(s)||s.startsWith(i))),vt=(e,s,r,i,l)=>l.isOnAll?!1:!r&&l.isOnTouch?!(s||e):(r?i.isOnBlur:l.isOnBlur)?!e:(r?i.isOnChange:l.isOnChange)?e:!0,_t=(e,s)=>{const r=v(e,s);!Or(r).length&&!r?.root&&U(e,s)};const Vt={mode:X.onSubmit,reValidateMode:X.onChange,shouldFocusError:!0},pe="form",mt=(e,s)=>{for(const r in e)r in s||delete e[r];Object.assign(e,s)},Ur={submitCount:0,isDirty:!1,isReady:!1,isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{}};function bt(e={}){let s={...Vt,...e},r={...C(Ur),isLoading:G(s.defaultValues),errors:s.errors||{},disabled:s.disabled||!1},i={},l=N(s.defaultValues)||N(s.values)?C(s.defaultValues||s.values)||{}:{},u=s.shouldUnregister?{}:C(l),o={action:!1,actionArrayLengths:new Map,mount:!1,watch:!1,keepIsValid:!1},c={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set,registerName:new Set};const m={},E={};let T=0,H=De(s.mode),j=De(s.reValidateMode);const $={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1},A={...$};let F={...A};const b={array:gr(),state:gr()};let fe=0;const w=s.criteriaMode===X.all,ee=(t,a)=>n=>{clearTimeout(E[t]),E[t]=setTimeout(a,n)},P=async t=>{if(!o.keepIsValid&&!s.disabled&&(A.isValid||F.isValid||t)){const a=++fe;let n;s.resolver?(n=B((await R()).errors),a===fe&&S()):n=await q({fields:i,onlyCheckValid:!0,eventType:oe.VALID}),a===fe&&n!==r.isValid&&b.state.next({isValid:n})}},S=(t,a)=>{!s.disabled&&(A.isValidating||A.validatingFields||F.isValidating||F.validatingFields)&&((t||c.mount).forEach(n=>{n&&(a?k(r.validatingFields,n,a):U(r.validatingFields,n))}),b.state.next({validatingFields:r.validatingFields,isValidating:!B(r.validatingFields)}))},ce=()=>{r.dirtyFields=ie(l,u,void 0,i)},be=(t,a=[],n,f,d=!0,y=!0)=>{if(f&&n&&!s.disabled){o.action=!0;const h=v(i,t);if(o.actionArrayLengths.has(t)||o.actionArrayLengths.set(t,Array.isArray(h)?h.length:0),y&&Array.isArray(h)){const V=n(h,f.argA,f.argB);d&&k(i,t,V)}const g=v(r.errors,t);if(y&&Array.isArray(g)){const V=g.root,L=n(g,f.argA,f.argB)||g;V&&(L.root=V),d&&k(r.errors,t,L),_t(r.errors,t)}const _=v(r.touchedFields,t);if((A.touchedFields||F.touchedFields)&&y&&Array.isArray(_)){const V=n(_,f.argA,f.argB);d&&k(r.touchedFields,t,V)}(A.dirtyFields||F.dirtyFields)&&ce(),b.state.next({name:t,isDirty:Y(t,a),dirtyFields:r.dirtyFields,errors:r.errors,isValid:r.isValid})}else k(u,t,a)},Ae=(t,a)=>{k(r.errors,t,a),r.errors={...r.errors},b.state.next({errors:r.errors})},ae=t=>{r.errors=t,b.state.next({errors:r.errors,isValid:!1})},se=t=>{const a=ne(t)?[t]:ue(t);let n=u,f=l;for(let d=0;d<a.length-1;d++){const y=a[d];if(n=p(n)?n:n[y],f=p(f)?f:f[y],n===null&&f!==null)return!0}return!1},Fe=t=>{if(!o.actionArrayLengths.size)return!1;const a=ne(t)?[t]:ue(t);let n=u,f="",d=-1,y=0;for(let h=0;h<a.length;h++){if(p(n))return!1;const g=a[h];if(f=f?`${f}.${g}`:g,Array.isArray(n)&&+g>=n.length)return d===-1?!1:h===d?+g<y:!0;o.actionArrayLengths.has(f)&&(d=h+1,y=o.actionArrayLengths.get(f)),n=n[g]}return!1},de=(t,a,n,f)=>{const d=v(i,t);if(d){if(se(t)||Fe(t))return;const y=O(v(u,t)),h=v(u,t,O(n)?v(l,t):n);O(h)||f&&f.defaultChecked||a?k(u,t,a?h:Vr(d._f)):Re(t,h),o.mount&&!o.action&&(P(),y&&r.isDirty&&(A.isDirty||F.isDirty)&&(Y()||(r.isDirty=!1,b.state.next({...r}))),e.shouldUnregister&&y&&!O(v(u,t))&&Ue(t,c)&&(o.watch=!0))}},D=(t,a,n,f,d)=>{let y=!1,h=!1;const g={name:t};if(!s.disabled||f===!0){if(!n||f){const _=Q(v(l,t),a);(A.isDirty||F.isDirty)&&(h=r.isDirty,r.isDirty=g.isDirty=!_||Y(),y=h!==g.isDirty),h=!!v(r.dirtyFields,t),_!==r.isDirty?mt(r.dirtyFields,ie(l,u,void 0,i)):_?U(r.dirtyFields,t):k(r.dirtyFields,t,!0),g.dirtyFields=r.dirtyFields,y=y||(A.dirtyFields||F.dirtyFields)&&h!==!_}if(n){const _=v(r.touchedFields,t);_||(k(r.touchedFields,t,n),g.touchedFields=r.touchedFields,y=y||(A.touchedFields||F.touchedFields)&&_!==n)}y&&d&&b.state.next(g)}return y?g:{}},x=(t,a,n,f)=>{const d=v(r.errors,t),y=(A.isValid||F.isValid)&&re(a)&&r.isValid!==a;if(s.delayError&&n?(m[t]=ee(t,()=>Ae(t,n)),m[t](s.delayError)):(clearTimeout(E[t]),delete m[t],n?k(r.errors,t,n):U(r.errors,t),r.errors={...r.errors}),(n?!Q(d,n):d)||!B(f)||y){const h={...f,...y&&re(a)?{isValid:a}:{},errors:r.errors,name:t};b.state.next(h)}},R=async t=>(S(t,!0),await s.resolver(u,s.context,ct(t||c.mount,i,s.criteriaMode,s.shouldUseNativeValidation))),W=async t=>{const{errors:a}=await R(t);if(S(t),t){for(const n of t){const f=v(a,n);f?c.array.has(n)&&N(f)&&!Object.keys(f).some(d=>!Number.isNaN(Number(d)))?ur(r.errors,{[n]:f},n):k(r.errors,n,f):U(r.errors,n)}r.errors={...r.errors}}else r.errors=a;return a},K=async({name:t,eventType:a})=>{if(e.validate){const n=await e.validate({formValues:u,formState:r,name:t,eventType:a});if(N(n))for(const f in n){const d=n[f];d&&Ee(`${pe}.${f}`,{message:M(d.message)?d.message:"",type:d.type||J.validate})}else M(n)||!n?Ee(pe,{message:n||"",type:J.validate}):Xe(pe);return n}return!0},q=async({fields:t,onlyCheckValid:a,name:n,eventType:f,context:d={valid:!0,runRootValidation:!1}})=>{if(e.validate&&(d.runRootValidation=!0,!await K({name:n,eventType:f})&&(d.valid=!1,a)))return d.valid;for(const y in t){const h=t[y];if(h){const{_f:g,..._}=h;if(g){const V=c.array.has(g.name),L=h._f&&dt(h._f),z=A.validatingFields||A.isValidating||F.validatingFields||F.isValidating;L&&z&&S([g.name],!0);const Z=await hr(h,c.disabled,u,w,s.shouldUseNativeValidation&&!a,V);if(L&&z&&S([g.name]),Z[g.name]&&(d.valid=!1,a)||(!a&&(v(Z,g.name)?V?ur(r.errors,Z,g.name):k(r.errors,g.name,Z[g.name]):U(r.errors,g.name)),e.shouldUseNativeValidation&&Z[g.name]))break}!B(_)&&await q({context:d,onlyCheckValid:a,fields:_,name:y,eventType:f})}}return d.valid},we=()=>{for(const t of c.unMount){const a=v(i,t);a&&(a._f.refs?a._f.refs.every(n=>!Pe(n)):!Pe(a._f.ref))&&Le(t)}c.unMount=new Set},Y=(t,a)=>(t&&a&&k(u,t,a),!Q(o.mount?u:l,l)),ye=(t,a,n)=>st(t,c,{...o.mount?u:O(a)||M(t)?l:a},n,a),Pr=t=>Or(v(o.mount?u:l,t,s.shouldUnregister?v(l,t,[]):[])),Re=(t,a,n={},f=!1,d=!1,y=!1)=>{const h=v(i,t);let g=a;if(h){const _=h._f;_&&(!_.disabled&&k(u,t,Nr(a,_)),g=ke(_.ref)&&p(a)?"":a,Tr(_.ref)?[..._.ref.options].forEach(V=>V.selected=g.includes(V.value)):_.refs?me(_.ref)?_.refs.forEach(V=>{(!V.defaultChecked||!V.disabled)&&(Array.isArray(g)?V.checked=!!g.find(L=>L===V.value):V.checked=g===V.value||!!g)}):_.refs.forEach(V=>V.checked=V.value===g):Se(_.ref)?_.ref.value="":(_.ref.value=g,!_.ref.type&&!d&&!y&&b.state.next({name:t,values:f?u:C(u)})))}(n.shouldDirty||n.shouldTouch)&&D(t,g,n.shouldTouch,n.shouldDirty,!d),n.shouldValidate&&Ce(t,{delayError:n.delayError})},Ge=(t,a,n,f=!1,d=!1,y=!1)=>{c.array.has(t)&&b.array.next({name:t,values:f?u:C(u)});for(const h in a){if(!a.hasOwnProperty(h))continue;const g=a[h],_=t+"."+h,V=v(i,_);(c.array.has(t)||N(g)||V&&!V._f)&&!te(g)?Ge(_,g,n,f,d,y):Re(_,g,n,f,d,y)}},Ke=(t,a,n,f,d=!1)=>{const y=v(i,t),h=c.array.has(t),g=f?a:C(a),_=v(u,t),V=Q(_,g);if(V||k(u,t,g),h)b.array.next({name:t,values:f?u:C(u)}),(A.isDirty||A.dirtyFields||F.isDirty||F.dirtyFields)&&n.shouldDirty&&(ce(),d||b.state.next({name:t,dirtyFields:r.dirtyFields,isDirty:Y(t,g)}));else{const L=Array.isArray(g)&&!g.length||B(g),z=!V&&!d;!y||y._f||p(g)||L?Re(t,g,n,f,d,z):Ge(t,g,n,f,d,z)}if(!V&&!d){const L=Ue(t,c),z=f?u:C(u);if(b.state.next({...L&&r,name:o.mount||L?t:void 0,values:z}),!h)for(const Z of ft(c.array,t))b.state.next({name:Z,values:z})}},he=(t,a,n={})=>Ke(t,a,n,!1),pr=(t,a={})=>{const n=G(t)?t(u):t;if(!Q(u,n)){u={...u,...n};for(const f of c.mount)ot(n,f)&&Ke(f,v(n,f),a,!0,!0);b.state.next({...r,name:void 0,type:void 0,...T?{values:u}:{}}),a.shouldValidate&&P()}},Ze=async t=>{o.mount=!0;const a=t.target;let n=a.name,f=!0;const d=v(i,n),y=h=>{f=Number.isNaN(h)||te(h)&&isNaN(h.getTime())||Q(h,v(u,n,h))};if(d){let h,g;const _=a.type?Vr(d._f):Gr(t),V=t.type===oe.BLUR||t.type===oe.FOCUS_OUT,L=!yt(d._f)&&!e.validate&&!s.resolver&&!v(r.errors,n)&&!d._f.deps,z=L||vt(V,v(r.touchedFields,n),r.isSubmitted,j,H),Z=Ue(n,c,V);if(k(u,n,C(_)),V){if(!a||!a.readOnly){d._f.onBlur&&d._f.onBlur(t);const ve=m[n];ve&&ve(0)}}else d._f.onChange&&d._f.onChange(t);const ge=D(n,_,V),zr=!B(ge)||Z;if(!V&&b.state.next({name:n,type:t.type,...T?{values:C(u)}:{}}),z)return(!L||!r.isValid)&&(A.isValid||F.isValid)&&(s.mode==="onBlur"?V&&P():V||P()),zr&&b.state.next({name:n,...Z?{}:ge});if(!s.resolver&&e.validate&&await K({name:n,eventType:t.type}),!V&&Z&&b.state.next({...r}),s.resolver){const{errors:ve}=await R([n]);if(S([n]),y(_),!f){!B(ge)&&b.state.next(ge);return}const Yr=br(r.errors,i,n),or=br(ve,i,Yr.name||n);h=or.error,n=or.name,g=B(ve)}else S([n],!0),h=(await hr(d,c.disabled,u,w,s.shouldUseNativeValidation))[n],S([n]),y(_),f&&(h?g=!1:(A.isValid||F.isValid)&&(g=await q({fields:i,onlyCheckValid:!0,name:n,eventType:t.type})));f&&(d._f.deps&&(!Array.isArray(d._f.deps)||d._f.deps.length>0)&&Ce(d._f.deps),x(n,g,h,ge))}},Je=(t,a)=>{if(v(r.errors,a)&&t.focus)return t.focus(),1},Ce=async(t,a={})=>{let n,f;const d=xe(t);if(s.resolver){const y=await W(O(t)?t:d);n=B(y),f=t?!d.some(h=>v(y,h)):n}else t?(f=(await Promise.all(d.map(async y=>{const h=v(i,y);return await q({fields:h&&h._f?{[y]:h}:h,eventType:oe.TRIGGER})}))).every(Boolean),!(!f&&!r.isValid)&&P()):f=n=await q({fields:i,name:t,eventType:oe.TRIGGER});if(a.delayError&&s.delayError&&M(t)){const y=v(r.errors,t);y?(U(r.errors,t),m[t]=ee(t,()=>Ae(t,y)),m[t](s.delayError)):(clearTimeout(E[t]),delete m[t])}if(a.shouldTouch)for(const y of t?d:c.mount)!c.array.has(y)&&k(r.touchedFields,y,!0);return b.state.next({...!M(t)||(A.isValid||F.isValid)&&n!==r.isValid?{}:{name:t},...s.resolver||!t?{isValid:n}:{},...a.shouldTouch&&(A.touchedFields||F.touchedFields)?{touchedFields:r.touchedFields}:{},errors:r.errors}),a.shouldFocus&&!f&&Ve(i,Je,t?d:c.mount),f},Mr=(t,a)=>{let n={...o.mount?u:l};return a&&(n=Sr(a.dirtyFields?r.dirtyFields:r.touchedFields,n)),O(t)?n:M(t)?v(n,t):t.map(f=>v(n,f))},Br=t=>O(t)?{...r.errors}:M(t)?v(r.errors,t):t.map(a=>v(r.errors,a)),Qe=(t,a)=>{const n=a||r,f=v(n.errors,t);return{invalid:!!f,isDirty:!!v(n.dirtyFields,t),error:f,isValidating:!!v(r.validatingFields,t),isTouched:!!v(n.touchedFields,t)}},Xe=t=>{const a=t?xe(t):void 0;a?.forEach(n=>U(r.errors,n)),a?a.forEach(n=>{b.state.next({name:n,errors:r.errors})}):(r.errors={},b.state.next({errors:r.errors}))},Ee=(t,a,n)=>{const f=(v(i,t,{_f:{}})._f||{}).ref,d=v(r.errors,t)||{},{ref:y,message:h,type:g,..._}=d;k(r.errors,t,{..._,...a,ref:f}),b.state.next({name:t,errors:r.errors,isValid:!1}),n&&n.shouldFocus&&f&&f.focus&&f.focus()},$r=(t,a)=>{if(G(t)){T++;const{unsubscribe:n}=b.state.subscribe({next:d=>"values"in d&&t(d.values||ye(void 0,a),d)});let f=!1;return{unsubscribe:()=>{f||(f=!0,T--,n())}}}return ye(t,a,!0)},er=t=>{var a;const n=!!(!((a=t.formState)===null||a===void 0)&&a.values);n&&T++;const{unsubscribe:f}=b.state.subscribe({next:y=>{if(gt(t.name,y.name,t.exact)&&ht(y,t.formState||A,nr,t.reRenderRoot)){const h={...u};t.callback({values:h,...r,...y,defaultValues:l})}}});if(!n)return f;let d=!1;return()=>{d||(d=!0,T--,f())}},Wr=t=>(o.mount=!0,F={...F,...t.formState},er({...t,formState:{...$,...t.formState}})),Le=(t,a={})=>{for(const n of t?xe(t):c.mount)c.mount.delete(n),c.array.delete(n),a.keepValue||(U(i,n),U(u,n)),!a.keepError&&U(r.errors,n),!a.keepDirty&&U(r.dirtyFields,n),!a.keepTouched&&U(r.touchedFields,n),!a.keepIsValidating&&U(r.validatingFields,n),!s.shouldUnregister&&!a.keepDefaultValue&&U(l,n);T&&b.state.next({values:C(u)}),b.state.next({...r,...a.keepDirty?{}:{isDirty:Y()}}),!a.keepIsValid&&P()},rr=({disabled:t,name:a})=>{if(re(t)&&o.mount||t||c.disabled.has(a)){const d=c.disabled.has(a)!==!!t;t?c.disabled.add(a):c.disabled.delete(a),d&&o.mount&&!o.action&&P()}},Ie=(t,a={})=>{let n=v(i,t);const f=re(a.disabled)||re(s.disabled),d=!c.registerName.has(t)&&n&&n._f&&!n._f.mount;return k(i,t,{...n||{},_f:{...n&&n._f?n._f:{ref:{name:t}},name:t,mount:!0,...a}}),c.mount.add(t),n&&!d?rr({disabled:re(a.disabled)?a.disabled:s.disabled,name:t}):de(t,!0,a.value),{...f?{disabled:a.disabled||s.disabled}:{},...s.progressive?{required:!!a.required,min:_e(a.min),max:_e(a.max),minLength:_e(a.minLength),maxLength:_e(a.maxLength),pattern:_e(a.pattern)}:{},name:t,onChange:Ze,onBlur:Ze,ref:y=>{if(y){c.registerName.add(t),Ie(t,a),c.registerName.delete(t),n=v(i,t);const h=O(y.value)&&y.querySelectorAll&&y.querySelectorAll("input,select,textarea")[0]||y,g=lt(h),_=n._f.refs||[];if(g?_.find(L=>L===h):h===n._f.ref)return;const V={...n._f};g?(V.refs=[..._.filter(Pe),h,...Array.isArray(v(l,t))?[{}]:[]],V.ref={type:h.type,name:t}):(V.ref=h,delete V.refs),k(i,t,{_f:V}),de(t,!1,void 0,h)}else n=v(i,t,{}),n._f&&(n._f.mount=!1),(s.shouldUnregister||a.shouldUnregister)&&!(Zr(c.array,t)&&o.action)&&c.unMount.add(t)}}},Ne=()=>s.shouldFocusError&&!s.shouldUseNativeValidation&&Ve(i,Je,c.mount),qr=t=>{re(t)&&(b.state.next({disabled:t}),Ve(i,(a,n)=>{const f=v(i,n);f&&(a.disabled=f._f.disabled||t,Array.isArray(f._f.refs)&&f._f.refs.forEach(d=>{d.disabled=f._f.disabled||t}))},0,!1))},tr=(t,a)=>async n=>{let f,d;n&&(n.preventDefault&&n.preventDefault(),n.persist&&n.persist());let y=C(u);if(b.state.next({isSubmitting:!0}),s.resolver){const{errors:h,values:g}=await R();S(),r.errors=h,y=C(g)}else await q({fields:i,eventType:oe.SUBMIT});if(c.disabled.size)for(const h of c.disabled)U(y,h);if(U(r.errors,Dr),B(r.errors)){b.state.next({errors:{}});try{f=await t(y,n)}catch(h){d=h}}else a&&await a({...r.errors},n),Ne(),setTimeout(Ne);if(b.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:B(r.errors)&&!d,submitCount:r.submitCount+1,errors:r.errors}),d)throw d;return f},Hr=(t,a={})=>{v(i,t)&&(O(a.defaultValue)?he(t,C(v(l,t))):(he(t,a.defaultValue),k(l,t,C(a.defaultValue))),a.keepTouched||U(r.touchedFields,t),a.keepDirty||(U(r.dirtyFields,t),r.isDirty=a.defaultValue?Y(t,C(v(l,t))):Y()),a.keepError||(U(r.errors,t),P()),b.state.next({...r}))},sr=(t,a={})=>{const n=t?C(t):l,f=C(n),d=B(t),y=f,h=i;if(a.keepDefaultValues||(l=n),!a.keepValues){if(a.keepDirtyValues){const g=new Set([...c.mount,...Rr(ie(l,u,void 0,h),r.dirtyFields)]);for(const _ of g){const V=v(r.dirtyFields,_),L=v(u,_),z=v(y,_);V&&!O(L)?k(y,_,L):!V&&!O(z)&&he(_,z)}}else{if(Te&&O(t))for(const g of c.mount){const _=v(i,g);if(_&&_._f){const V=Array.isArray(_._f.refs)?_._f.refs[0]:_._f.ref;if(ke(V)){const L=V.closest("form");if(L){L.reset();break}}}}if(a.keepFieldsRef)for(const g of c.mount)he(g,v(y,g));else i={}}if(s.shouldUnregister){if(u=a.keepDefaultValues?C(l):{},a.keepFieldsRef)for(const g of c.mount)k(u,g,v(y,g))}else u=C(y);b.array.next({values:{...y}}),b.state.next({name:void 0,type:void 0,values:{...y}})}c={mount:a.keepDirtyValues?c.mount:new Set,unMount:new Set,array:new Set,registerName:new Set,disabled:new Set,watch:new Set,watchAll:!1,focus:""},o.mount=!A.isValid||!!a.keepIsValid||!!a.keepDirtyValues||!s.shouldUnregister&&!B(y),o.watch=!!s.shouldUnregister,o.keepIsValid=!!a.keepIsValid,o.action=!1,o.actionArrayLengths.clear(),a.keepErrors||(r.errors={}),b.state.next({submitCount:a.keepSubmitCount?r.submitCount:0,isDirty:d?!1:a.keepDirty?r.isDirty:a.keepValues?Y():!!(a.keepDefaultValues&&!Q(t,l)),isSubmitted:a.keepIsSubmitted?r.isSubmitted:!1,dirtyFields:d?{}:a.keepDirtyValues?a.keepDefaultValues&&u?ie(l,u,void 0,h):r.dirtyFields:a.keepDefaultValues&&t?ie(l,t,void 0,h):a.keepDirty?r.dirtyFields:{},touchedFields:a.keepTouched?r.touchedFields:{},errors:a.keepErrors?r.errors:{},isSubmitSuccessful:a.keepIsSubmitSuccessful?r.isSubmitSuccessful:!1,isSubmitting:!1,defaultValues:l})},ir=(t,a)=>sr(G(t)?t(u):t,{...s.resetOptions,...a}),jr=(t,a={})=>{const n=v(i,t),f=n&&n._f;if(f){const d=f.refs?f.refs[0]:f.ref;d.focus&&setTimeout(()=>{d.focus(),a.shouldSelect&&G(d.select)&&d.select()})}},nr=t=>{const{name:a,type:n,values:f,...d}=t;r={...r,...d}};b.state.subscribe({next:nr});const ar={control:{register:Ie,unregister:Le,getFieldState:Qe,handleSubmit:tr,setError:Ee,_subscribe:er,_runSchema:R,_updateIsValidating:S,_focusError:Ne,_getWatch:ye,_getDirty:Y,_setValid:P,_setFieldArray:be,_setDisabledField:rr,_setErrors:ae,_getFieldArray:Pr,_reset:sr,_resetDefaultValues:()=>G(s.defaultValues)&&s.defaultValues().then(t=>{ir(t,s.resetOptions),b.state.next({isLoading:!1})}),_removeUnmounted:we,_disableForm:qr,_subjects:b,_proxyFormState:A,get _fields(){return i},get _formValues(){return u},get _state(){return o},set _state(t){o=t},get _defaultValues(){return l},get _names(){return c},set _names(t){c=t},get _formState(){return r},get _options(){return s},set _options(t){s={...s,...t},H=De(s.mode),j=De(s.reValidateMode)}},subscribe:Wr,trigger:Ce,register:Ie,handleSubmit:tr,watch:$r,setValue:he,setValues:pr,getValues:Mr,getErrors:Br,reset:ir,resetField:Hr,resetDefaultValues:(t,a={})=>{if(l=C(t),!a.keepDirty){const n=ie(l,u,void 0,i);r.dirtyFields=n,r.isDirty=!B(n)}a.keepIsValid||P(),b.state.next({...r,defaultValues:l})},clearErrors:Xe,unregister:Le,setError:Ee,setFocus:jr,getFieldState:Qe};return{...ar,formControl:ar}}function kt(e={}){const s=I.useRef(void 0),r=I.useRef(void 0),i=I.useRef(e.formControl),[l,u]=I.useState(()=>({...C(Ur),isLoading:G(e.defaultValues),errors:e.errors||{},disabled:e.disabled||!1,defaultValues:G(e.defaultValues)?void 0:e.defaultValues}));if(!s.current||e.formControl&&i.current!==e.formControl)if(i.current=e.formControl,e.formControl)s.current={...e.formControl,formState:l},e.defaultValues&&!G(e.defaultValues)&&e.formControl.reset(e.defaultValues,e.resetOptions);else{const{formControl:E,...T}=bt(e);s.current={...T,formState:l}}const o=s.current.control;o._options=e;const{resyncIfNeeded:c,snapshot:m}=tt();return et(()=>{const E=()=>({...o._formState,defaultValues:o._defaultValues});c(!0,E,u);const T=o._subscribe({formState:o._proxyFormState,callback:()=>u({...o._formState,defaultValues:o._defaultValues}),reRenderRoot:!0});return u(H=>({...H,isReady:!0})),o._formState.isReady=!0,()=>{T(),m(!0,E)}},[o,c,m]),I.useEffect(()=>o._disableForm(e.disabled),[o,e.disabled]),I.useEffect(()=>{e.mode&&(o._options.mode=e.mode),e.reValidateMode&&(o._options.reValidateMode=e.reValidateMode)},[o,e.mode,e.reValidateMode]),I.useEffect(()=>{e.errors&&(o._setErrors(e.errors),o._focusError())},[o,e.errors]),I.useEffect(()=>{e.shouldUnregister&&o._subjects.state.next({values:o._getWatch()})},[o,e.shouldUnregister]),I.useEffect(()=>{if(o._proxyFormState.isDirty){const E=o._getDirty();E!==l.isDirty&&o._subjects.state.next({isDirty:E})}},[o,l.isDirty]),I.useEffect(()=>{var E;e.values&&!Q(e.values,r.current)?(o._reset(e.values,{keepFieldsRef:!0,...o._options.resetOptions}),!((E=o._options.resetOptions)===null||E===void 0)&&E.keepIsValid||o._setValid(),r.current=e.values,u(T=>({...T}))):o._resetDefaultValues()},[o,e.values]),I.useEffect(()=>{o._state.mount||(o._setValid(),o._state.mount=!0),o._state.watch&&(o._state.watch=!1,o._subjects.state.next({...o._formState})),o._removeUnmounted()}),s.current.formState=I.useMemo(()=>Xr(l,o),[o,l]),s.current}const Ar=(e,s,r)=>{if(e&&"reportValidity"in e){const i=v(r,s);e.setCustomValidity(i&&i.message||""),e.reportValidity()}},We=(e,s)=>{for(const r in s.fields){const i=s.fields[r];i&&i.ref&&"reportValidity"in i.ref?Ar(i.ref,r,e):i&&i.refs&&i.refs.forEach(l=>Ar(l,r,e))}},Fr=(e,s)=>{s.shouldUseNativeValidation&&We(e,s);const r={};for(const i in e){const l=v(s.fields,i),u=Object.assign(e[i]||{},{ref:l&&l.refs?l.refs[0]:l&&l.ref});if(At(s.names||Object.keys(e),i)){const o=Object.assign({},v(r,i));k(o,"root",u),k(r,i,o)}else k(r,i,u)}return r},At=(e,s)=>{const r=wr(s).replace(/[.*+?^${}()|\\]/g,"\\$&");return e.some(i=>wr(i).match(`^${r}\\.\\d+`))};function wr(e){return e.replace(/\[(\d+)]/g,".$1").replace(/[[\]]/g,"")}function qe(){return qe=Object.assign?Object.assign.bind():function(e){for(var s=1;s<arguments.length;s++){var r=arguments[s];for(var i in r)({}).hasOwnProperty.call(r,i)&&(e[i]=r[i])}return e},qe.apply(null,arguments)}function Er(e,s){try{var r=e()}catch(i){return s(i)}return r&&r.then?r.then(void 0,s):r}function Ft(e,s){for(var r=Object.create(null);e.length;){var i=e[0],l=i.code,u=i.message,o=i.path.join(".");if(!r[o])if("unionErrors"in i){var c,m,E=i.unionErrors.reduce(function(j,$){return $.errors.length<j.errors.length?$:j}).errors[0];r[o]={message:(c=E?.message)!=null?c:u,type:(m=E?.code)!=null?m:l}}else r[o]={message:u,type:l};if("unionErrors"in i&&i.unionErrors.forEach(function(j){return j.errors.forEach(function($){return e.push($)})}),s){var T=r[o].types,H=T&&T[i.code];r[o]=Ye(o,s,r,l,H?[].concat(H,i.message):i.message)}e.shift()}return r}function wt(e,s){for(var r=Object.create(null),i=function(){var l=e[0],u=l.code,o=l.message,c=l.path.join(".");if(!r[c])if(l.code==="invalid_union"&&l.errors.length>0){var m,E,T=l.errors.reduce(function($,A){return A.length<$.length?A:$})[0];r[c]={message:(m=T?.message)!=null?m:o,type:(E=T?.code)!=null?E:u}}else r[c]={message:o,type:u};if(l.code==="invalid_union"&&l.errors.forEach(function($){return $.forEach(function(A){return e.push(qe({},A,{path:[].concat(l.path,A.path)}))})}),s){var H=r[c].types,j=H&&H[l.code];r[c]=Ye(c,s,r,u,j?[].concat(j,l.message):l.message)}e.shift()};e.length;)i();return r}function Ot(e,s,r){if(r===void 0&&(r={}),(function(i){return"_zod"in i&&typeof i._zod=="object"})(e))return function(i,l,u){try{return Promise.resolve(Er(function(){function o(m){return u.shouldUseNativeValidation&&We({},u),{errors:{},values:r.raw?Object.assign({},i):m}}var c=e;return r.mode==="sync"?o(c.parse(i,s)):Promise.resolve(c.parseAsync(i,s)).then(o)},function(o){if((function(c){var m;return!(c==null||(m=c._zod)==null||(m=m.traits)==null||!m.has("$ZodError"))})(o))return{values:{},errors:Fr(wt(o.issues,!u.shouldUseNativeValidation&&u.criteriaMode==="all"),u)};throw o}))}catch(o){return Promise.reject(o)}};if((function(i){return"_def"in i&&typeof i._def=="object"})(e))return function(i,l,u){try{return Promise.resolve(Er(function(){return Promise.resolve(e[r.mode==="sync"?"parse":"parseAsync"](i,s)).then(function(o){return u.shouldUseNativeValidation&&We({},u),{errors:{},values:r.raw?Object.assign({},i):o}})},function(o){if((function(c){return Array.isArray(c?.issues)})(o))return{values:{},errors:Fr(Ft(o.errors,!u.shouldUseNativeValidation&&u.criteriaMode==="all"),u)};throw o}))}catch(o){return Promise.reject(o)}};throw new Error("Invalid input: not a Zod schema")}export{Ot as a,kt as u};
|
|
@@ -4,10 +4,25 @@
|
|
|
4
4
|
<meta charset="utf-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
6
|
<meta name="color-scheme" content="light dark" />
|
|
7
|
+
<!-- Before any stylesheet or module: a dark-preferring viewer who chose
|
|
8
|
+
Light would otherwise see a dark frame and then a flip. The key and
|
|
9
|
+
the resolution are the same as lib/theme.ts's — repeated here, on
|
|
10
|
+
purpose, because this runs before anything can be imported. -->
|
|
11
|
+
<script>
|
|
12
|
+
try {
|
|
13
|
+
var t = localStorage.getItem("snagset:theme");
|
|
14
|
+
var choice = t === "dark" || t === "light" ? t : "system";
|
|
15
|
+
var dark = choice === "dark" || (choice === "system" && matchMedia("(prefers-color-scheme: dark)").matches);
|
|
16
|
+
var el = document.documentElement;
|
|
17
|
+
if (choice !== "system") el.setAttribute("data-theme", choice);
|
|
18
|
+
if (dark) el.classList.add("dark");
|
|
19
|
+
el.style.colorScheme = dark ? "dark" : "light";
|
|
20
|
+
} catch (e) {}
|
|
21
|
+
</script>
|
|
7
22
|
<link rel="icon" href="/mark.svg" type="image/svg+xml" />
|
|
8
23
|
<title>Snagset</title>
|
|
9
|
-
<script type="module" crossorigin src="/assets/index-
|
|
10
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
24
|
+
<script type="module" crossorigin src="/assets/index-D6FWZoJT.js"></script>
|
|
25
|
+
<link rel="stylesheet" crossorigin href="/assets/index-BRTBtV91.css">
|
|
11
26
|
</head>
|
|
12
27
|
<body>
|
|
13
28
|
<div id="app"></div>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const Me="Snagset",H="snagset",T="snagset.v1",Ze="Snagset",Pe="Snag",Ie="Snags",Ue={root:"data-snag-root"},j=e=>Ue[e],Be={anchor:"data-snag-anchor",ignore:"data-snag-ignore",mask:"data-snag-mask",nomask:"data-snag-nomask",src:"data-snag-src",component:"data-snag-component"},A=e=>Be[e],We={mask:"snag-mask",block:"snag-block"},q=e=>We[e],d={font:"--snag-font",accent:"--snag-accent",onAccent:"--snag-onAccent",bg:"--snag-bg",fg:"--snag-fg",muted:"--snag-muted",border:"--snag-border",radius:"--snag-radius",shadow:"--snag-shadow",z:"--snag-z",motion:"--snag-motion",surface:"--snag-surface",sunken:"--snag-sunken",hover:"--snag-hover",focus:"--snag-focus",disabled:"--snag-disabled",statusOpen:"--snag-status-open",statusProgress:"--snag-status-progress",statusReview:"--snag-status-review",statusResolved:"--snag-status-resolved",anchorOrphan:"--snag-anchor-orphan",tbH:"--snag-tb-h",dockW:"--snag-dock-w",kb:"--snag-kb",thumbX:"--snag-thumb-x",thumbW:"--snag-thumb-w"},He=e=>`var(${d[e]})`,C={query:["snag_t","snag_off","snag_debug","snag_theme"],fragment:["snag_k"]},je="snag:disclosure:v1",qe="snag:identity",Fe="data-snag-theme",Ve={session:e=>`snag:session:${e}`,identity:qe,threads:(e,t)=>`snag:threads:${e}:${t}`,seen:(e,t)=>`snag:seen:${e}:${t}`,counts:e=>`snag:counts:${e}`,draft:(e,t)=>`snag:draft:${e}:${t}`,outbox:e=>`snag:outbox:${e}`,mode:"snag:mode",handoff:"snag:handoff",seenCoach:"snag:seen-coach",disclosure:je},z={database:"snag:blobs",store:"blobs"},Ke={route:"snagset:route"};function Xe(e,t){let n="Unknown";/Edg\//.test(e)?n="Edge":/OPR\//.test(e)?n="Opera":/Firefox\//.test(e)?n="Firefox":/Chrome\//.test(e)?n="Chrome":/Safari\//.test(e)&&(n="Safari");let r="";if(/Macintosh/.test(e)?r="macOS":/Windows/.test(e)?r="Windows":/iPhone|iPad/.test(e)?r="iOS":/Android/.test(e)?r="Android":/Linux/.test(e)&&(r="Linux"),t?.brands?.length){const s=t.brands.find(i=>!/Not.?A.?Brand/i.test(i.brand));s&&(n=s.brand)}t?.platform&&(r=t.platform);let a=!1;try{a=typeof matchMedia=="function"&&matchMedia("(pointer:coarse)").matches}catch{}const o=t?.mobile??(a||/Mobi|iPhone|Android/.test(e))?"Mobile":"Desktop";return{browser:n,os:r,device:o}}const Ye={ok:{status:"ok"},release:{status:"disabled",reason:"Screenshots are not available in this release."},"config-off":{status:"disabled",reason:"Screenshots are switched off for this project."},"feature-off":{status:"disabled",reason:"Screenshots are switched off for this project."},"reviewer-removed":{status:"disabled",reason:"You removed the screenshot before sending."},"csp-blocked":{status:"failed",reason:"Your Content-Security-Policy blocks data: images, so no screenshot could be taken."},"engine-load-failed":{status:"failed",reason:"The screenshot engine could not be loaded."},"engine-failed":{status:"failed",reason:"The screenshot engine failed on this page."},timeout:{status:"timeout",reason:"The screenshot timed out."},tainted:{status:"tainted",reason:"A cross-origin image made the page canvas unreadable."},"scope-forced":{status:"ok",reason:"The page was too large to capture in full; captured the area around your pin."},"masking-failed":{status:"failed",reason:"Masking could not be verified, so the screenshot was discarded."},navigated:{status:"failed",reason:"The page changed while the screenshot was being taken."}},Qe={disabled:"Console and network capture is off for this project.",truncated:"Earlier console and network entries were dropped to fit the buffer."};function v(e={}){const t=Ye[e.screenshot??"release"],n=e.breadcrumbs??"disabled",r=[];t.reason&&r.push(t.reason),n!=="ok"&&r.push(Qe[n]);const a={screenshot:t.status,breadcrumbs:n,reasons:r};return e.blindSpots?.length&&(a.blindSpots=e.blindSpots),e.droppedCategories?.length&&(a.droppedCategories=e.droppedCategories),e.maskedCount!==void 0&&e.maskedCount>0&&(a.maskedCount=e.maskedCount),a}function Je(e,t,n,r=!1){const a=e.capture?.breadcrumbs??"disabled";if(n){e.capture=v({screenshot:"config-off",breadcrumbs:a});return}if(r&&!t){e.capture=v({screenshot:"reviewer-removed",breadcrumbs:a});return}t&&(e.capture=v({screenshot:t.situation,breadcrumbs:a,...t.blindSpots.length?{blindSpots:t.blindSpots}:{},...t.maskedCount>0?{maskedCount:t.maskedCount}:{}}))}const Ge="pass(?:word|wd)?|pwd|secret|token|api[_-]?key|apikey|auth(?:orization)?|credential|session|sid|cookie|jwt|bearer|otp|mfa|totp|cvv|cvc|ssn|nino|iban|card(?:[_-]?number)?|account[_-]?number|private[_-]?key|signature|client[_-]?secret|refresh[_-]?token|access[_-]?token",et=new RegExp(`(["'\`]?)(?<![A-Za-z0-9])(?:${Ge})[\\w-]*\\b\\1?\\s*[:=]\\s*(?:(["'\`])((?:\\\\.|(?!\\2)[^\\\\])*)\\2|([^\\s,;&}\\])]{3,}))`,"gi"),tt=/^(?:Bearer|Basic|Digest|Negotiate|Token)$/i,nt=(e,t,n,r,a,o,s)=>{if(!n&&tt.test(a)&&s.slice(o+e.length).startsWith(" [redacted]")||(n?r:a).startsWith("[redacted"))return e;const i=n?`${n}${r}${n}`:a;return e.slice(0,e.length-i.length)+(n?`${n}[redacted]${n}`:"[redacted]")},F=/data:[a-z0-9.+-]*\/?[a-z0-9.+-]*;base64,[A-Za-z0-9+/=]{16,}/gi,V=/\beyJ[A-Za-z0-9_-]{6,}\.[A-Za-z0-9_-]{6,}\.[A-Za-z0-9_-]{0,}/g,K=/\b(sk-[A-Za-z0-9]+-[A-Za-z0-9_-]{20,}|sk-ant-[A-Za-z0-9_-]{20,}|sk-[A-Za-z0-9]{20,}|(sk|pk|rk)_(live|test)_[A-Za-z0-9]{16,}|gh[pousr]_[A-Za-z0-9]{20,}|github_pat_[A-Za-z0-9_]{20,}|glpat-[A-Za-z0-9_-]{16,}|xox[baprs]-[A-Za-z0-9-]{10,}|xapp-[A-Za-z0-9-]{10,}|AKIA[0-9A-Z]{16}|ASIA[0-9A-Z]{16}|AIza[0-9A-Za-z_-]{35}|ya29\.[A-Za-z0-9_-]{20,}|SG\.[A-Za-z0-9_-]{20,}|npm_[A-Za-z0-9]{30,}|dop_v1_[a-f0-9]{40,}|shpat_[a-f0-9]{30,}|sbp_[a-f0-9]{30,}|hf_[A-Za-z0-9]{30,}|nvapi-[A-Za-z0-9_-]{20,})\b/g,rt=/\b(Bearer|Basic|Digest|Negotiate|Token)\s+[A-Za-z0-9._~+/=-]{8,}/gi,X=/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?(?:\.[A-Za-z]{2,24})+\b/g,R=/\b(?:\d[ -]?){12,18}\d\b/g,Y=/\b(?=[A-Za-z0-9+/]*[a-z])(?=[A-Za-z0-9+/]*[A-Z])(?=[A-Za-z0-9+/]*\d)[A-Za-z0-9+/]{40,}={0,2}\b/g,Q=/\b[0-9a-f]{32,}\b/gi,J=/\b(?=[A-Za-z0-9_-]*[a-z])(?=[A-Za-z0-9_-]*[A-Z])(?=[A-Za-z0-9_-]*\d)[A-Za-z0-9_-]{40,}\b/g,G=/\b[a-z][a-z0-9]{1,15}(?:_[a-z0-9]{1,15}){0,2}_(?=[A-Za-z0-9_-]*[A-Z])(?=[A-Za-z0-9_-]*\d)[A-Za-z0-9_-]{24,}\b/g,ee=/\b[a-z][a-z0-9+.-]*:\/\/[^\s/:@]+:[^\s/@]+@/gi,at=/^(?=[A-Za-z0-9_~.+/=-]*[a-z])(?=[A-Za-z0-9_~.+/=-]*[A-Z])(?=[A-Za-z0-9_~.+/=-]*\d)[A-Za-z0-9_~.+/=-]{24,}$/;function y(e,t){e.lastIndex=0;const n=e.test(t);return e.lastIndex=0,n}function te(e){const t=e.replace(/[ -]/g,"");if(t.length<13||t.length>19)return!1;let n=0,r=!1;for(let a=t.length-1;a>=0;a--){let o=t.charCodeAt(a)-48;r&&(o*=2,o>9&&(o-=9)),n+=o,r=!r}return n%10===0}function ot(e){R.lastIndex=0;for(const t of e.matchAll(R))if(te(t[0]))return!0;return!1}function E(e){let t=e;return t=t.replace(F,"data:[redacted]"),t=t.replace(rt,"$1 [redacted]"),t=t.replace(et,nt),t=t.replace(V,"[redacted:jwt]"),t=t.replace(K,"[redacted:key]"),t=t.replace(G,"[redacted:key]"),t=t.replace(ee,"[redacted:url-cred]@"),t=t.replace(X,"[redacted:email]"),t=t.replace(R,n=>te(n)?"[redacted:card]":n),t=t.replace(J,n=>`[redacted:b64:${n.length}]`),t=t.replace(Y,n=>`[redacted:b64:${n.length}]`),t=t.replace(Q,n=>`[redacted:hex:${n.length}]`),t}const st=C.query,it=C.fragment;function ne(e,t=[]){let n;try{const r=globalThis.location?.href;n=new URL(e,r)}catch{return E(e)}n.username="",n.password="";for(const r of[...n.searchParams.keys()]){if(it.includes(r)){n.searchParams.set(r,"[redacted]");continue}if(st.includes(r))continue;if(!t.includes(r)){n.searchParams.set(r,"[redacted]");continue}const a=n.searchParams.get(r)??"";E(a)!==a&&n.searchParams.set(r,"[redacted]")}return n.hash&&n.hash.length>1&&(n.hash=t.includes("#")?n.hash:"#[redacted]"),E(n.toString().replace(/%5Bredacted%5D/gi,"[redacted]"))}function O(e){return e.length>120?!0:y(X,e)||y(V,e)||y(K,e)||y(Q,e)||y(Y,e)||y(F,e)||y(J,e)||y(G,e)||y(ee,e)||at.test(e)||ot(e)}const ct=/^eyJ[A-Za-z0-9_-]{6,}\.[A-Za-z0-9_-]{6,}/,lt=/^[a-f0-9]{32,}$/i,dt=/^(?=[A-Za-z0-9_-]{24,}$)(?=.*[A-Za-z])(?=.*\d)[A-Za-z0-9_-]+$/,ut="[redacted]";function ht(e){return e.includes("/")?e.split("/").map(t=>ct.test(t)||lt.test(t)||dt.test(t)?ut:t).join("/"):e}const ft=/\/index\.(html?|php)$/i;function mt(e){if(!e.startsWith("/"))return e;let t=e.replace(ft,"/");return t.length>1&&t.endsWith("/")&&(t=t.slice(0,-1)),t.toLowerCase()}function re(e){try{const t=e.querySelector(`meta[name="${Ke.route}"]`)?.getAttribute("content")?.trim();return!t||t.length>512||!t.startsWith("/")?null:t}catch{return null}}const gt=[/^utm_/,/^(gclid|gbraid|wbraid|fbclid|msclkid|ttclid|twclid|igshid|yclid|li_fat_id)$/,/^(mc_cid|mc_eid|_hsenc|_hsmi|vero_id|oly_enc_id|oly_anon_id)$/,/^_vercel_/,/^__vercel_/,/^_rsc$/],pt=[...C.query,...C.fragment];function bt(e,t=[]){return pt.includes(e)||t.includes(e)?!0:gt.some(n=>n.test(e))}function wt(e,t={}){const n=t.significantQueryParams??[];if(n!=="*"&&n.length===0)return;let r;try{r=new URLSearchParams(e)}catch{return}const a={};for(const[o,s]of r)bt(o,t.ignoredQueryParams??[])||n!=="*"&&!n.includes(o)||(a[o]=s);return Object.keys(a).length>0?a:void 0}function ae(e,t){const n=e.length>4096?e.slice(0,4096):e,r=ne(n,t);return r.length<=2048?r:r.slice(0,2048)+`\u2026[+${r.length-2048}]`}function yt(e=location,t={}){const n=ht(e.pathname),r=t.routeOverride??(t.doc?re(t.doc):typeof document<"u"?re(document):null),a=wt(e.search??"",t.query);return{route:mt(r??n),pathname:n,...a?{query:a}:{},origin:e.origin}}function xt(){try{return typeof matchMedia=="function"&&matchMedia("(prefers-color-scheme: dark)").matches}catch{return!1}}function $t(e){const t=e.urlParamAllowList??[];let n;try{n=ae(location.href,t)}catch{try{n=ae(document.URL,t)}catch{n=E(location.origin+location.pathname)}}let r=innerWidth,a=innerHeight;(r===0||a===0)&&(r=document.documentElement.clientWidth,a=document.documentElement.clientHeight);let o={w:0,h:0};try{o={w:screen.width,h:screen.height}}catch{}const s=navigator.userAgent||"",i=navigator.userAgentData,l=i?{brands:(i.brands??[]).map(u=>({brand:u.brand,version:u.version})),platform:i.platform,mobile:i.mobile}:void 0,h={schemaVersion:T,url:n,page:e.page,viewport:{w:r,h:a,dpr:devicePixelRatio||1},screen:o,ua:s,derived:Xe(s,l),language:navigator.language||navigator.languages?.[0]||"en",prefersColorScheme:xt()?"dark":"light",timestamp:new Date().toISOString(),capture:v({breadcrumbs:e.breadcrumbs?.status??"disabled"})};return l&&(h.uaData=l),e.breadcrumbs&&e.breadcrumbs.status!=="disabled"&&(h.breadcrumbs=e.breadcrumbs.records),h}const At={product:Me,set:Ze,item:Pe,items:Ie};function oe(e){return(t,n)=>(e[t]??"").replace(/\{(\w+)\}/g,(r,a)=>{const o=n?.[a]??At[a];return o===void 0?r:String(o)})}const se=e=>new Intl.NumberFormat().format(e),ie=e=>{const t=new Date(e);return Number.isNaN(t.getTime())?e:new Intl.DateTimeFormat(void 0,{dateStyle:"medium",timeStyle:"short"}).format(t)},ce={"where.anchored":"{label}","where.approximate":"position approximate \u2014 the page changed","where.orphaned":"moved \u2014 the element is gone","status.open":"Active","status.progress":"In progress","status.review":"In review","status.resolved":"Resolved","author.unknown":"Someone","label.image":"an image","label.link":"a link","label.button":"a button","label.tag":"the {tag}"},S=oe(ce),vt={"detail.details":"Anchor details","detail.hidden":"This element isn't visible right now \u2014 it may be inside a closed menu, tab, or accordion.","detail.orphaned":"The element this was pinned to has moved or gone \u2014 it was {label}.","detail.approximate":"The page changed since this was written, so the pin is close rather than exact \u2014 it points at {label}.","detail.unavailable":"Some of the matching steps couldn't load, so this was judged with the basic ones only.","detail.filedat":"Filed at {query}.","detail.openquery":"Open with original query","capture.agent":"{browser} \xB7 {os}","capture.agent.noos":"{browser}","capture.device":"{device} \xB7 {w}\xD7{h} @{dpr}x","capture.device.at1x":"{device} \xB7 {w}\xD7{h}"},Et={"export.title":"{product} \u2014 {origin}","export.summary.one":"1 comment, {unresolved} unresolved \xB7 exported {date}","export.summary.many":"{total} comments, {unresolved} unresolved \xB7 exported {date}","export.heading":"{n} \xB7 {key} \u2014 {status}","export.on":"On {label}","export.device":"Device","export.selector":"Selector","export.by":"By","export.nobody":"_(no comment)_","cursor.proxy":"Pick an element \u2014 Tab to move, Enter to comment","cursor.at":"{role}, {name}, {i} of {n}","cursor.here":"{role} {name}","export.screenshot":"Screenshot {key}","label.text":"\u201C{text}\u201D","hint.fine":"Click anything to comment \u2014 Esc when done","hint.coarse":"Tap anything to comment","highlight.chip":"{tag} \xB7 {name} \xB7 {w}\xD7{h}","highlight.chip.unnamed":"{tag} \xB7 {w}\xD7{h}"},f=oe({...ce,...vt,...Et}),St=[`[${A("mask")}]`,`.${q("mask")}`,`.${q("block")}`].join(", ");function le(e,t){return O(t)||!!e.closest?.(St)}function de(e){const n=(e.innerText??e.textContent??"").slice(0,512).trim().replace(/\s+/g," ");if(n&&!le(e,n))return f("label.text",{text:n.length>52?n.slice(0,52)+"\u2026":n});const r=e.tagName.toLowerCase();return r==="img"?f("label.image"):r==="a"?f("label.link"):r==="button"?f("label.button"):f("label.tag",{tag:r})}function _t(e,t){const n=t.trim().replace(/\s+/g," ");return n&&!le(e,n)?f("label.text",{text:n.length>52?n.slice(0,52)+"\u2026":n}):de(e)}const ue={open:{colour:"#009ed3"},progress:{colour:"#bd5000"},review:{colour:"#6700bf"},resolved:{colour:"#b2e3a3"}},kt=e=>e in ue?S(`status.${e}`):e;class Tt extends Error{code;constructor(t,n){super(n??t),this.name="AdapterError",this.code=t}}function he(e,t){const{anchorPending:n,anchorReasons:r,screenshotBlob:a,...o}=e;return o.attachments?.length&&t?.size&&(o.attachments=o.attachments.map(s=>{const i=t.get(s.id);return i?{...s,url:i}:s})),o}function fe(e){const t=e.context,n=t?.derived,r=t?.viewport;if(!t||!n||!r)return"";const a=Math.round(r.dpr*100)/100,o=n.os?f("capture.agent",{browser:n.browser,os:n.os}):f("capture.agent.noos",{browser:n.browser}),s=a===1?f("capture.device.at1x",{device:n.device,w:r.w,h:r.h}):f("capture.device",{device:n.device,w:r.w,h:r.h,dpr:a});return`${o} \xB7 ${s}`}function Ct(e,t,n){const r=e.map(l=>he(l,n)),a=r.filter(l=>l.status!=="resolved").length,o=[],s=[`# ${f("export.title",{origin:t.origin})}`,"",f(r.length===1?"export.summary.one":"export.summary.many",{total:se(r.length),unresolved:se(a),date:ie(t.exportedAt)})],i=new Map;for(const l of r)i.set(l.route,[...i.get(l.route)??[],l]);for(const[l,h]of i)s.push("","---","",`## ${l}`),h.forEach((u,b)=>{const g=u.comments[0];s.push("",`### ${f("export.heading",{n:b+1,key:u.key,status:kt(u.status)})}`,"",`**${f("export.on",{label:u.anchor.label})}**`,...u.anchorState==="anchored"?[]:[f(`detail.${u.anchorState}`,{label:u.anchor.label})],...u.anchor.css?[`**${f("export.selector")}** \`${u.anchor.css}\``]:[],...fe(u)?[`**${f("export.device")}** ${fe(u)}`]:[],`**${f("export.by")}** ${g?.author.name??u.createdBy.name} \xB7 ${ie(u.createdAt)}`,"",g?.body??f("export.nobody"));for(const c of u.attachments??[])c.url.startsWith("data:")&&(s.push("",`![${f("export.screenshot",{key:u.key})}][${c.id}]`),o.push(`[${c.id}]: ${c.url}`));for(const c of u.comments.slice(1))s.push("",`- **${c.author.name}** \u2014 ${c.body??""}`)});return o.length&&s.push("","---","",...o),s.join(`
|
|
1
|
+
const Me="Snagset",H="snagset",T="snagset.v1",Ze="Snagset",Pe="Snag",Ie="Snags",Ue={root:"data-snag-root"},j=e=>Ue[e],Be={anchor:"data-snag-anchor",ignore:"data-snag-ignore",mask:"data-snag-mask",nomask:"data-snag-nomask",src:"data-snag-src",component:"data-snag-component"},A=e=>Be[e],We={mask:"snag-mask",block:"snag-block"},q=e=>We[e],d={font:"--snag-font",accent:"--snag-accent",onAccent:"--snag-onAccent",bg:"--snag-bg",fg:"--snag-fg",muted:"--snag-muted",border:"--snag-border",radius:"--snag-radius",shadow:"--snag-shadow",z:"--snag-z",motion:"--snag-motion",surface:"--snag-surface",sunken:"--snag-sunken",hover:"--snag-hover",focus:"--snag-focus",disabled:"--snag-disabled",statusOpen:"--snag-status-open",statusProgress:"--snag-status-progress",statusReview:"--snag-status-review",statusResolved:"--snag-status-resolved",anchorOrphan:"--snag-anchor-orphan",tbH:"--snag-tb-h",dockW:"--snag-dock-w",kb:"--snag-kb",thumbX:"--snag-thumb-x",thumbW:"--snag-thumb-w"},He=e=>`var(${d[e]})`,C={query:["snag_t","snag_off","snag_debug","snag_theme"],fragment:["snag_k"]},je="snag:disclosure:v1",qe="snag:identity",Fe="data-snag-theme",Ve={session:e=>`snag:session:${e}`,identity:qe,threads:(e,t)=>`snag:threads:${e}:${t}`,seen:(e,t)=>`snag:seen:${e}:${t}`,counts:e=>`snag:counts:${e}`,draft:(e,t)=>`snag:draft:${e}:${t}`,outbox:e=>`snag:outbox:${e}`,mode:"snag:mode",handoff:"snag:handoff",seenCoach:"snag:seen-coach",disclosure:je},z={database:"snag:blobs",store:"blobs"},Ke={route:"snagset:route"};function Xe(e,t){let n="Unknown";/Edg\//.test(e)?n="Edge":/OPR\//.test(e)?n="Opera":/Firefox\//.test(e)?n="Firefox":/Chrome\//.test(e)?n="Chrome":/Safari\//.test(e)&&(n="Safari");let r="";if(/Macintosh/.test(e)?r="macOS":/Windows/.test(e)?r="Windows":/iPhone|iPad/.test(e)?r="iOS":/Android/.test(e)?r="Android":/Linux/.test(e)&&(r="Linux"),t?.brands?.length){const s=t.brands.find(i=>!/Not.?A.?Brand/i.test(i.brand));s&&(n=s.brand)}t?.platform&&(r=t.platform);let a=!1;try{a=typeof matchMedia=="function"&&matchMedia("(pointer:coarse)").matches}catch{}const o=t?.mobile??(a||/Mobi|iPhone|Android/.test(e))?"Mobile":"Desktop";return{browser:n,os:r,device:o}}const Ye={ok:{status:"ok"},release:{status:"disabled",reason:"Screenshots are not available in this release."},"config-off":{status:"disabled",reason:"Screenshots are switched off for this project."},"feature-off":{status:"disabled",reason:"Screenshots are switched off for this project."},"reviewer-removed":{status:"disabled",reason:"You removed the screenshot before sending."},"csp-blocked":{status:"failed",reason:"Your Content-Security-Policy blocks data: images, so no screenshot could be taken."},"engine-load-failed":{status:"failed",reason:"The screenshot engine could not be loaded."},"engine-failed":{status:"failed",reason:"The screenshot engine failed on this page."},timeout:{status:"timeout",reason:"The screenshot timed out."},tainted:{status:"tainted",reason:"A cross-origin image made the page canvas unreadable."},"scope-forced":{status:"ok",reason:"The page was too large to capture in full; captured the area around your pin."},"masking-failed":{status:"failed",reason:"Masking could not be verified, so the screenshot was discarded."},navigated:{status:"failed",reason:"The page changed while the screenshot was being taken."}},Qe={disabled:"Console and network capture is off for this project.",truncated:"Earlier console and network entries were dropped to fit the buffer."};function v(e={}){const t=Ye[e.screenshot??"release"],n=e.breadcrumbs??"disabled",r=[];t.reason&&r.push(t.reason),n!=="ok"&&r.push(Qe[n]);const a={screenshot:t.status,breadcrumbs:n,reasons:r};return e.blindSpots?.length&&(a.blindSpots=e.blindSpots),e.droppedCategories?.length&&(a.droppedCategories=e.droppedCategories),e.maskedCount!==void 0&&e.maskedCount>0&&(a.maskedCount=e.maskedCount),a}function Je(e,t,n,r=!1){const a=e.capture?.breadcrumbs??"disabled";if(n){e.capture=v({screenshot:"config-off",breadcrumbs:a});return}if(r&&!t){e.capture=v({screenshot:"reviewer-removed",breadcrumbs:a});return}t&&(e.capture=v({screenshot:t.situation,breadcrumbs:a,...t.blindSpots.length?{blindSpots:t.blindSpots}:{},...t.maskedCount>0?{maskedCount:t.maskedCount}:{}}))}const Ge="pass(?:word|wd)?|pwd|secret|token|api[_-]?key|apikey|auth(?:orization)?|credential|session|sid|cookie|jwt|bearer|otp|mfa|totp|cvv|cvc|ssn|nino|iban|card(?:[_-]?number)?|account[_-]?number|private[_-]?key|signature|client[_-]?secret|refresh[_-]?token|access[_-]?token",et=new RegExp(`(["'\`]?)(?<![A-Za-z0-9])(?:${Ge})[\\w-]*\\b\\1?\\s*[:=]\\s*(?:(["'\`])((?:\\\\.|(?!\\2)[^\\\\])*)\\2|([^\\s,;&}\\])]{3,}))`,"gi"),tt=/^(?:Bearer|Basic|Digest|Negotiate|Token)$/i,nt=(e,t,n,r,a,o,s)=>{if(!n&&tt.test(a)&&s.slice(o+e.length).startsWith(" [redacted]")||(n?r:a).startsWith("[redacted"))return e;const i=n?`${n}${r}${n}`:a;return e.slice(0,e.length-i.length)+(n?`${n}[redacted]${n}`:"[redacted]")},F=/data:[a-z0-9.+-]*\/?[a-z0-9.+-]*;base64,[A-Za-z0-9+/=]{16,}/gi,V=/\beyJ[A-Za-z0-9_-]{6,}\.[A-Za-z0-9_-]{6,}\.[A-Za-z0-9_-]{0,}/g,K=/\b(sk-[A-Za-z0-9]+-[A-Za-z0-9_-]{20,}|sk-ant-[A-Za-z0-9_-]{20,}|sk-[A-Za-z0-9]{20,}|(sk|pk|rk)_(live|test)_[A-Za-z0-9]{16,}|gh[pousr]_[A-Za-z0-9]{20,}|github_pat_[A-Za-z0-9_]{20,}|glpat-[A-Za-z0-9_-]{16,}|xox[baprs]-[A-Za-z0-9-]{10,}|xapp-[A-Za-z0-9-]{10,}|AKIA[0-9A-Z]{16}|ASIA[0-9A-Z]{16}|AIza[0-9A-Za-z_-]{35}|ya29\.[A-Za-z0-9_-]{20,}|SG\.[A-Za-z0-9_-]{20,}|npm_[A-Za-z0-9]{30,}|dop_v1_[a-f0-9]{40,}|shpat_[a-f0-9]{30,}|sbp_[a-f0-9]{30,}|hf_[A-Za-z0-9]{30,}|nvapi-[A-Za-z0-9_-]{20,})\b/g,rt=/\b(Bearer|Basic|Digest|Negotiate|Token)\s+[A-Za-z0-9._~+/=-]{8,}/gi,X=/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?(?:\.[A-Za-z]{2,24})+\b/g,R=/\b(?:\d[ -]?){12,18}\d\b/g,Y=/\b(?=[A-Za-z0-9+/]*[a-z])(?=[A-Za-z0-9+/]*[A-Z])(?=[A-Za-z0-9+/]*\d)[A-Za-z0-9+/]{40,}={0,2}\b/g,Q=/\b[0-9a-f]{32,}\b/gi,J=/\b(?=[A-Za-z0-9_-]*[a-z])(?=[A-Za-z0-9_-]*[A-Z])(?=[A-Za-z0-9_-]*\d)[A-Za-z0-9_-]{40,}\b/g,G=/\b[a-z][a-z0-9]{1,15}(?:_[a-z0-9]{1,15}){0,2}_(?=[A-Za-z0-9_-]*[A-Z])(?=[A-Za-z0-9_-]*\d)[A-Za-z0-9_-]{24,}\b/g,ee=/\b[a-z][a-z0-9+.-]*:\/\/[^\s/:@]+:[^\s/@]+@/gi,at=/^(?=[A-Za-z0-9_~.+/=-]*[a-z])(?=[A-Za-z0-9_~.+/=-]*[A-Z])(?=[A-Za-z0-9_~.+/=-]*\d)[A-Za-z0-9_~.+/=-]{24,}$/;function y(e,t){e.lastIndex=0;const n=e.test(t);return e.lastIndex=0,n}function te(e){const t=e.replace(/[ -]/g,"");if(t.length<13||t.length>19)return!1;let n=0,r=!1;for(let a=t.length-1;a>=0;a--){let o=t.charCodeAt(a)-48;r&&(o*=2,o>9&&(o-=9)),n+=o,r=!r}return n%10===0}function ot(e){R.lastIndex=0;for(const t of e.matchAll(R))if(te(t[0]))return!0;return!1}function E(e){let t=e;return t=t.replace(F,"data:[redacted]"),t=t.replace(rt,"$1 [redacted]"),t=t.replace(et,nt),t=t.replace(V,"[redacted:jwt]"),t=t.replace(K,"[redacted:key]"),t=t.replace(G,"[redacted:key]"),t=t.replace(ee,"[redacted:url-cred]@"),t=t.replace(X,"[redacted:email]"),t=t.replace(R,n=>te(n)?"[redacted:card]":n),t=t.replace(J,n=>`[redacted:b64:${n.length}]`),t=t.replace(Y,n=>`[redacted:b64:${n.length}]`),t=t.replace(Q,n=>`[redacted:hex:${n.length}]`),t}const st=C.query,it=C.fragment;function ne(e,t=[]){let n;try{const r=globalThis.location?.href;n=new URL(e,r)}catch{return E(e)}n.username="",n.password="";for(const r of[...n.searchParams.keys()]){if(it.includes(r)){n.searchParams.set(r,"[redacted]");continue}if(st.includes(r))continue;if(!t.includes(r)){n.searchParams.set(r,"[redacted]");continue}const a=n.searchParams.get(r)??"";E(a)!==a&&n.searchParams.set(r,"[redacted]")}return n.hash&&n.hash.length>1&&(n.hash=t.includes("#")?n.hash:"#[redacted]"),E(n.toString().replace(/%5Bredacted%5D/gi,"[redacted]"))}function O(e){return e.length>120?!0:y(X,e)||y(V,e)||y(K,e)||y(Q,e)||y(Y,e)||y(F,e)||y(J,e)||y(G,e)||y(ee,e)||at.test(e)||ot(e)}const ct=/^eyJ[A-Za-z0-9_-]{6,}\.[A-Za-z0-9_-]{6,}/,lt=/^[a-f0-9]{32,}$/i,dt=/^(?=[A-Za-z0-9_-]{24,}$)(?=.*[A-Za-z])(?=.*\d)[A-Za-z0-9_-]+$/,ut="[redacted]";function ht(e){return e.includes("/")?e.split("/").map(t=>ct.test(t)||lt.test(t)||dt.test(t)?ut:t).join("/"):e}const ft=/\/index\.(html?|php)$/i;function mt(e){if(!e.startsWith("/"))return e;let t=e.replace(ft,"/");return t.length>1&&t.endsWith("/")&&(t=t.slice(0,-1)),t.toLowerCase()}function re(e){try{const t=e.querySelector(`meta[name="${Ke.route}"]`)?.getAttribute("content")?.trim();return!t||t.length>512||!t.startsWith("/")?null:t}catch{return null}}const gt=[/^utm_/,/^(gclid|gbraid|wbraid|fbclid|msclkid|ttclid|twclid|igshid|yclid|li_fat_id)$/,/^(mc_cid|mc_eid|_hsenc|_hsmi|vero_id|oly_enc_id|oly_anon_id)$/,/^_vercel_/,/^__vercel_/,/^_rsc$/],pt=[...C.query,...C.fragment];function bt(e,t=[]){return pt.includes(e)||t.includes(e)?!0:gt.some(n=>n.test(e))}function wt(e,t={}){const n=t.significantQueryParams??[];if(n!=="*"&&n.length===0)return;let r;try{r=new URLSearchParams(e)}catch{return}const a={};for(const[o,s]of r)bt(o,t.ignoredQueryParams??[])||n!=="*"&&!n.includes(o)||(a[o]=s);return Object.keys(a).length>0?a:void 0}function ae(e,t){const n=e.length>4096?e.slice(0,4096):e,r=ne(n,t);return r.length<=2048?r:r.slice(0,2048)+`\u2026[+${r.length-2048}]`}function yt(e=location,t={}){const n=ht(e.pathname),r=t.routeOverride??(t.doc?re(t.doc):typeof document<"u"?re(document):null),a=wt(e.search??"",t.query);return{route:mt(r??n),pathname:n,...a?{query:a}:{},origin:e.origin}}function xt(){try{return typeof matchMedia=="function"&&matchMedia("(prefers-color-scheme: dark)").matches}catch{return!1}}function $t(e){const t=e.urlParamAllowList??[];let n;try{n=ae(location.href,t)}catch{try{n=ae(document.URL,t)}catch{n=E(location.origin+location.pathname)}}let r=innerWidth,a=innerHeight;(r===0||a===0)&&(r=document.documentElement.clientWidth,a=document.documentElement.clientHeight);let o={w:0,h:0};try{o={w:screen.width,h:screen.height}}catch{}const s=navigator.userAgent||"",i=navigator.userAgentData,l=i?{brands:(i.brands??[]).map(u=>({brand:u.brand,version:u.version})),platform:i.platform,mobile:i.mobile}:void 0,h={schemaVersion:T,url:n,page:e.page,viewport:{w:r,h:a,dpr:devicePixelRatio||1},screen:o,ua:s,derived:Xe(s,l),language:navigator.language||navigator.languages?.[0]||"en",prefersColorScheme:xt()?"dark":"light",timestamp:new Date().toISOString(),capture:v({breadcrumbs:e.breadcrumbs?.status??"disabled"})};return l&&(h.uaData=l),e.breadcrumbs&&e.breadcrumbs.status!=="disabled"&&(h.breadcrumbs=e.breadcrumbs.records),h}const At={product:Me,set:Ze,item:Pe,items:Ie};function oe(e){return(t,n)=>(e[t]??"").replace(/\{(\w+)\}/g,(r,a)=>{const o=n?.[a]??At[a];return o===void 0?r:String(o)})}const se=e=>new Intl.NumberFormat().format(e),ie=e=>{const t=new Date(e);return Number.isNaN(t.getTime())?e:new Intl.DateTimeFormat(void 0,{dateStyle:"medium",timeStyle:"short"}).format(t)},ce={"where.anchored":"{label}","where.approximate":"position approximate \u2014 the page changed","where.orphaned":"moved \u2014 the element is gone","status.open":"Active","status.progress":"In progress","status.review":"In review","status.resolved":"Resolved","author.unknown":"Someone","label.image":"an image","label.link":"a link","label.button":"a button","label.tag":"the {tag}"},S=oe(ce),vt={"detail.details":"Anchor details","detail.hidden":"This element isn't visible right now \u2014 it may be inside a closed menu, tab, or accordion.","detail.orphaned":"The element this was pinned to has moved or gone \u2014 it was {label}.","detail.approximate":"The page changed since this was written, so the pin is close rather than exact \u2014 it points at {label}.","detail.unavailable":"Some of the matching steps couldn't load, so this was judged with the basic ones only.","detail.filedat":"Filed at {query}.","detail.openquery":"Open with original query","capture.agent":"{browser} \xB7 {os}","capture.agent.noos":"{browser}","capture.device":"{device} \xB7 {w}\xD7{h} @{dpr}x","capture.device.at1x":"{device} \xB7 {w}\xD7{h}"},Et={"export.title":"{product} \u2014 {origin}","export.summary.one":"1 comment, {unresolved} unresolved \xB7 exported {date}","export.summary.many":"{total} comments, {unresolved} unresolved \xB7 exported {date}","export.heading":"{n} \xB7 {key} \u2014 {status}","export.on":"On {label}","export.device":"Device","export.selector":"Selector","export.by":"By","export.nobody":"_(no comment)_","cursor.proxy":"Pick an element \u2014 Tab to move, Enter to comment","cursor.at":"{role}, {name}, {i} of {n}","cursor.here":"{role} {name}","export.screenshot":"Screenshot {key}","label.text":"\u201C{text}\u201D","hint.fine":"Click anything to comment \u2014 Esc when done","hint.coarse":"Tap anything to comment","highlight.chip":"{tag} \xB7 {name} \xB7 {w}\xD7{h}","highlight.chip.unnamed":"{tag} \xB7 {w}\xD7{h}"},f=oe({...ce,...vt,...Et}),St=[`[${A("mask")}]`,`.${q("mask")}`,`.${q("block")}`].join(", ");function le(e,t){return O(t)||!!e.closest?.(St)}function de(e){const n=(e.innerText??e.textContent??"").slice(0,512).trim().replace(/\s+/g," ");if(n&&!le(e,n))return f("label.text",{text:n.length>52?n.slice(0,52)+"\u2026":n});const r=e.tagName.toLowerCase();return r==="img"?f("label.image"):r==="a"?f("label.link"):r==="button"?f("label.button"):f("label.tag",{tag:r})}function _t(e,t){const n=t.trim().replace(/\s+/g," ");return n&&!le(e,n)?f("label.text",{text:n.length>52?n.slice(0,52)+"\u2026":n}):de(e)}const ue={open:{colour:"#4f6ef7"},progress:{colour:"#f59e0b"},review:{colour:"#8b5cf6"},resolved:{colour:"#10b981"}},kt=e=>e in ue?S(`status.${e}`):e;class Tt extends Error{code;constructor(t,n){super(n??t),this.name="AdapterError",this.code=t}}function he(e,t){const{anchorPending:n,anchorReasons:r,screenshotBlob:a,...o}=e;return o.attachments?.length&&t?.size&&(o.attachments=o.attachments.map(s=>{const i=t.get(s.id);return i?{...s,url:i}:s})),o}function fe(e){const t=e.context,n=t?.derived,r=t?.viewport;if(!t||!n||!r)return"";const a=Math.round(r.dpr*100)/100,o=n.os?f("capture.agent",{browser:n.browser,os:n.os}):f("capture.agent.noos",{browser:n.browser}),s=a===1?f("capture.device.at1x",{device:n.device,w:r.w,h:r.h}):f("capture.device",{device:n.device,w:r.w,h:r.h,dpr:a});return`${o} \xB7 ${s}`}function Ct(e,t,n){const r=e.map(l=>he(l,n)),a=r.filter(l=>l.status!=="resolved").length,o=[],s=[`# ${f("export.title",{origin:t.origin})}`,"",f(r.length===1?"export.summary.one":"export.summary.many",{total:se(r.length),unresolved:se(a),date:ie(t.exportedAt)})],i=new Map;for(const l of r)i.set(l.route,[...i.get(l.route)??[],l]);for(const[l,h]of i)s.push("","---","",`## ${l}`),h.forEach((u,b)=>{const g=u.comments[0];s.push("",`### ${f("export.heading",{n:b+1,key:u.key,status:kt(u.status)})}`,"",`**${f("export.on",{label:u.anchor.label})}**`,...u.anchorState==="anchored"?[]:[f(`detail.${u.anchorState}`,{label:u.anchor.label})],...u.anchor.css?[`**${f("export.selector")}** \`${u.anchor.css}\``]:[],...fe(u)?[`**${f("export.device")}** ${fe(u)}`]:[],`**${f("export.by")}** ${g?.author.name??u.createdBy.name} \xB7 ${ie(u.createdAt)}`,"",g?.body??f("export.nobody"));for(const c of u.attachments??[])c.url.startsWith("data:")&&(s.push("",`![${f("export.screenshot",{key:u.key})}][${c.id}]`),o.push(`[${c.id}]: ${c.url}`));for(const c of u.comments.slice(1))s.push("",`- **${c.author.name}** \u2014 ${c.body??""}`)});return o.length&&s.push("","---","",...o),s.join(`
|
|
2
2
|
`)+`
|
|
3
3
|
`}function zt(e,t,n){return JSON.stringify({schemaVersion:T,...t,threads:e.map(r=>he(r,n))},null,2)}function Nt(e,t,n,r){const a=n.exportedAt.slice(0,10);return e==="md"?{name:`${H}-${a}.md`,mime:"text/markdown",text:Ct(t,n,r)}:{name:`${H}-${a}.json`,mime:"application/json",text:zt(t,n,r)}}function Rt(e,t,n){const r=e.ownerDocument??e,a=URL.createObjectURL(new Blob([t.text],{type:`${t.mime};charset=utf-8`})),o=r.createElement("a");o.href=a,o.download=t.name,o.style.display="none",e.appendChild(o),o.dispatchEvent(new MouseEvent("click",{bubbles:!1,cancelable:!0,composed:!1})),o.remove(),n.setTimeout(()=>URL.revokeObjectURL(a),0)}let $=null;function Ot(){return $||($=new Promise((e,t)=>{let n;try{n=indexedDB.open(z.database,1)}catch(r){t(r);return}n.onupgradeneeded=()=>{n.result.createObjectStore(z.store).createIndex("project",["uid","env"])},n.onsuccess=()=>{n.result.onversionchange=()=>{n.result.close(),$=null},e(n.result)},n.onerror=()=>t(n.error??new Error("indexeddb-unavailable")),n.onblocked=()=>t(new Error("indexeddb-blocked"))}),$.catch(()=>{$=null}),$)}function D(e,t){return Ot().then(n=>new Promise((r,a)=>{const o=n.transaction(z.store,e),s=t(o.objectStore(z.store));o.oncomplete=()=>r(s.result),o.onerror=()=>a(o.error??s.error??new Error("indexeddb-error")),o.onabort=()=>{const i=o.error;i&&(i.name==="QuotaExceededError"||/quota/i.test(i.message??""))?a(new Tt("local_quota_exceeded")):a(i??new Error("indexeddb-abort"))}}))}async function me(e,t){const{blob:n,...r}=t,a={...r,bytes:await n.arrayBuffer(),type:n.type};await D("readwrite",o=>o.put(a,e))}function ge(e){return D("readonly",t=>t.get(e)).then(t=>{if(!t)return null;const{bytes:n,type:r,...a}=t;return{...a,blob:new Blob([n],{type:r})}})}function Dt(e){return D("readwrite",t=>t.delete(e)).then(()=>{})}function Lt(e){return new Promise((t,n)=>{const r=new FileReader;r.onload=()=>typeof r.result=="string"?t(r.result):n(new Error("read-failed")),r.onerror=()=>n(r.error??new Error("read-failed")),r.readAsDataURL(e)})}function Mt(e){const t=/^data:([^;,]+)?(;base64)?,(.*)$/s.exec(e);if(!t)throw new Error("not-a-data-uri");const n=t[1]??"application/octet-stream";if(!t[2])return new Blob([decodeURIComponent(t[3])],{type:n});const r=atob(t[3]),a=new Uint8Array(r.length);for(let o=0;o<r.length;o++)a[o]=r.charCodeAt(o);return new Blob([a],{type:n})}async function Zt(e){const t=e.flatMap(r=>r.attachments??[]),n=new Map;return t.length===0||await Promise.all(t.map(async r=>{const a=await ge(r.id).catch(()=>null);a&&n.set(r.id,await Lt(a.blob))})),n}async function Pt(e,t,n){const r=JSON.parse(e);if(r.schemaVersion!==T||!Array.isArray(r.threads))throw new Error(`not a ${T} archive`);const a=[];let o=0;for(const s of r.threads){if(!s.attachments?.length){a.push(s);continue}const i=[];for(const l of s.attachments)if(l.url.startsWith("data:")){const h=Mt(l.url);await me(l.id,{blob:h,uid:t,env:n,kind:l.kind,...l.width!==void 0?{width:l.width}:{},...l.height!==void 0?{height:l.height}:{},createdAt:Date.now()}),o++,i.push({...l,url:""})}else i.push(l);a.push({...s,attachments:i})}return localStorage.setItem(Ve.threads(t,n),JSON.stringify(a)),{threads:a.length,blobs:o}}function L(e){return e.getBoundingClientRect()}function pe(e){if(e.closest('[inert],[aria-hidden="true"]'))return!1;const t=e.checkVisibility;if(typeof t=="function")return t.call(e,{contentVisibilityAuto:!0,opacityProperty:!1,visibilityProperty:!0});const n=L(e);if(!(n.width>0||n.height>0||e.getClientRects().length>0))return!1;const a=e.ownerDocument?.defaultView;return a?a.getComputedStyle(e).visibility!=="hidden":!0}const be=`[${j("root")}]`;function we(e){const t=e.parentElement;return!t||t===e.ownerDocument.body||t===e.ownerDocument.documentElement||t.closest(be)?null:t}function ye(e){for(const t of e.children)if(!t.closest(be)&&pe(t))return t;return null}const xe=10;function $e(e){let t=e,n=0;for(;n++<xe;){const r=t.getRootNode();if(!(r instanceof ShadowRoot))break;t=r.host}return t}function It(e){const t=[];let n=e,r=0;for(;r++<xe;){const a=n.getRootNode();if(!(a instanceof ShadowRoot))break;n=a.host,t.unshift(n)}return t}const Ut=/[\u200B-\u200D\u2060\uFEFF]/gu,Bt=/[\s\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]+/gu,Wt=[[/[\u2018\u2019\u201A\u201B]/gu,"'"],[/[\u201C\u201D\u201E\u201F]/gu,'"'],[/[\u2010-\u2015\u2212]/gu,"-"],[/\u2026/gu,"..."],[/\u2044/gu,"/"]];function Ht(e){let t=e.normalize("NFC").replace(Ut,"");for(const[n,r]of Wt)t=t.replace(n,r);return t.replace(Bt," ").trim()}const jt=[A("anchor"),"data-testid","data-test-id","data-test","data-cy","data-qa","data-pw","data-automation-id"],qt=256,Ft=200,Vt=12;function Kt(e){for(const t of jt){const n=e.getAttribute(t);if(n)return{attr:t,value:n}}}function Xt(e,t=Vt){const n=[];let r=e;for(;r&&r.nodeType===1&&n.length<t;){const a=r.tagName.toLowerCase();if(a==="html")break;const o=r.parentElement;if(o){const s=[...o.children].filter(i=>i.tagName===r.tagName);n.push(s.length>1?`${a}:nth-of-type(${s.indexOf(r)+1})`:a)}else n.push(a);r=o}return n.reverse()}function Ae(e){const t=e.getAttribute("role");if(t)return t;const n=e.tagName.toLowerCase();if(n==="button")return"button";if(n==="a"&&e.hasAttribute("href"))return"link";if(n==="input"){const r=(e.getAttribute("type")??"text").toLowerCase();return r==="checkbox"||r==="radio"||r==="button"||r==="submit"?r==="submit"?"button":r:"textbox"}if(/^h[1-6]$/.test(n))return"heading";if(n==="nav")return"navigation";if(n==="img")return"img"}function M(e){const t=e.getAttribute("aria-label");if(t?.trim())return t.trim();const n=e.getAttribute("aria-labelledby");if(n){const o=n.split(/\s+/).map(s=>e.ownerDocument.getElementById(s)?.textContent??"").join(" ").trim();if(o)return o}const r=e.getAttribute("alt")??e.getAttribute("title");if(r?.trim())return r.trim();const a=(e.textContent??"").trim();return a?a.slice(0,qt):void 0}function Yt(e){const t=e.tagName.toLowerCase();return t==="img"?S("label.image"):t==="a"?S("label.link"):t==="button"?S("label.button"):S("label.tag",{tag:t})}function Qt(e){return e<480?"xs":e<768?"sm":e<1024?"md":e<1440?"lg":"xl"}function Jt(e,t={}){const n=$e(e),r=Kt(n),a=L(n),o=n.ownerDocument,s=o.defaultView?.scrollX??0,i=o.defaultView?.scrollY??0,l=Ht(n.textContent??"").slice(0,Ft),h={path:Xt(n),rect:{x:a.left+s,y:a.top+i,w:a.width,h:a.height},label:t.label??Yt(n)};r&&(h.testid=r.value),t.domid&&(h.domid=t.domid),t.css&&(h.css=t.css),t.hostPath?.length&&(h.hostPath=t.hostPath),t.xpath&&(h.xpath=t.xpath);const u=Ae(n);u&&(h.role=u);const b=M(n);b&&(h.accessibleName=b),l&&(h.text={exact:l}),t.point&&a.width>0&&a.height>0&&(h.offset={fx:ve((t.point.x-a.left)/a.width),fy:ve((t.point.y-a.top)/a.height)});const g=t.viewportWidth??o.defaultView?.innerWidth;return g&&(h.breakpoint=Qt(g)),h}const ve=e=>e<0?0:e>1?1:e,Gt='a[href], button, input, select, textarea, summary, [tabindex]:not([tabindex="-1"]),[role], h1,h2,h3,h4,h5,h6, img, video, figure, table, li,main, nav, header, footer, aside, section[aria-label], form, [data-testid]',en=`[${j("root")}]`;function Ee(e=document.body){return[...e.querySelectorAll(Gt)].filter(t=>!t.closest(en)&&pe(t))}function tn(e,t){const n=e.ownerDocument??document,r=n.createElement("button");r.type="button",r.className="snag-cursor-proxy",r.setAttribute("aria-label",f("cursor.proxy")),r.style.cssText="position:fixed;left:0;top:0;width:1px;height:1px;opacity:0;pointer-events:none",e.appendChild(r);let a=[],o=-1,s=null,i=null;const l=()=>i??a[o]??null;function h(c){const w=Ae(c),p=M(c),x=i?0:o+1;t.announce(i||!p?f("cursor.here",{role:w??c.tagName.toLowerCase(),name:p??""}):f("cursor.at",{role:w??c.tagName.toLowerCase(),name:p,i:x,n:a.length}))}function u(c){c&&(t.show(c),c.scrollIntoView({block:"nearest",behavior:"auto"}),h(c))}function b(c){i=null,a.length!==0&&(o=o<0?c===1?0:a.length-1:(o+c+a.length)%a.length,u(a[o]))}function g(c){const w=l();if(!w)return;const p=c==="out"?we(w):ye(w);if(!p)return;const x=a.indexOf(p);x>=0?(i=null,o=x):i=p,u(p)}return r.addEventListener("keydown",c=>{if(!(c.metaKey||c.ctrlKey||c.altKey))switch(c.key){case"Tab":case"ArrowDown":case"ArrowRight":c.preventDefault(),b(c.key==="Tab"&&c.shiftKey?-1:1);return;case"ArrowUp":case"ArrowLeft":c.preventDefault(),b(-1);return;case"[":c.preventDefault(),g("out");return;case"]":c.preventDefault(),g("in");return;case"Enter":case" ":{const w=l();if(!w)return;c.preventDefault();const p=w.getBoundingClientRect();t.pick(w,{x:p.left+p.width/2,y:p.top+p.height/2});return}}}),{engage(){a=Ee(n.body),o=-1,i=null,s=e.activeElement??n.activeElement,r.focus({preventScroll:!0})},release(){i=null,e.activeElement===r&&s?.focus?.(),s=null},destroy(){r.remove()}}}const m=Object.fromEntries(Object.keys(d).map(e=>[e,He(e)])),nn=Object.entries(ue).map(([e,t])=>` ${d[`status${e[0].toUpperCase()}${e.slice(1)}`]}:${t.colour};`).join(`
|
|
4
4
|
`);`${m.font}${m.fg}${d.font}${d.accent}${d.bg}${d.fg}${d.muted}${d.border}${d.radius}${d.shadow}${d.z}${d.motion}${d.surface}${m.fg}${m.bg}${d.sunken}${m.fg}${m.bg}${d.hover}${m.fg}${m.bg}${d.onAccent}${d.focus}${m.accent}${m.fg}${d.disabled}${m.muted}${m.bg}${nn}${d.anchorOrphan}${Fe}${d.accent}${d.onAccent}${d.bg}${d.fg}${d.muted}${d.border}${d.shadow}${d.motion}${d.bg}${d.fg}${d.muted}${d.border}${d.accent}${d.onAccent}${d.surface}${d.sunken}${d.hover}${d.focus}${d.disabled}${d.shadow}${d.anchorOrphan}`;const Se={highlight:2,chip:4},_e=new WeakMap;function rn(e,t,n){let r=_e.get(e);if(r||_e.set(e,r=new Set),r.has(t))return;r.add(t);try{const s=new CSSStyleSheet;s.replaceSync(n),e.adoptedStyleSheets=[...e.adoptedStyleSheets,s];return}catch{}const o=(e.ownerDocument??document).createElement("style");o.setAttribute(`data-snag-${t}`,""),o.textContent=n,e.appendChild(o)}const an=` .snag-hl-layer{position:fixed;inset:0;pointer-events:none;z-index:${Se.highlight};contain:layout style;overflow:hidden}.snag-hl{position:absolute;box-sizing:border-box;border:2px solid ${m.accent};border-radius:3px;background:color-mix(in srgb,${m.accent} 12%,transparent);box-shadow:0 0 0 100vmax color-mix(in srgb,#000 4%,transparent);transition:top ${m.motion},left ${m.motion},width ${m.motion},height ${m.motion}}.snag-hl-chip{position:absolute;background:${m.accent};color:${m.onAccent};font:600 11px/1.5 ${m.font};padding:2px 7px;border-radius:4px;white-space:nowrap;max-width:min(48ch,90vw);overflow:hidden;text-overflow:ellipsis}.snag-hint{position:fixed;top:calc(12px + env(safe-area-inset-top));left:50%;transform:translateX(-50%);z-index:${Se.chip};pointer-events:none;background:${m.bg};color:${m.fg};border:1px solid ${m.border};box-shadow:${m.shadow};border-radius:999px;padding:7px 14px;font:500 12px/1 ${m.font};white-space:nowrap;max-width:calc(100vw - 24px);overflow:hidden;text-overflow:ellipsis}`;function on(e,t,n){const r=e.ownerDocument??document;rn(e,"highlight",an);const a=r.createElement("div");a.className="snag-hl-layer",a.hidden=!0;const o=r.createElement("div");o.className="snag-hl";const s=r.createElement("div");s.className="snag-hl-chip",a.append(o,s);const i=r.createElement("div");i.className="snag-hint",i.setAttribute("role","status"),i.hidden=!0,i.textContent=f(t?"hint.coarse":"hint.fine");let l;function h(g){const c=L(g);if(c.width<=0&&c.height<=0)return u();a.hidden=!1,o.style.left=`${c.left}px`,o.style.top=`${c.top}px`,o.style.width=`${c.width}px`,o.style.height=`${c.height}px`;const w=M(g),p=g.tagName.toLowerCase(),x=Math.round(c.width),W=Math.round(c.height);s.textContent=w?f("highlight.chip",{tag:p,name:w,w:x,h:W}):f("highlight.chip.unnamed",{tag:p,w:x,h:W});const Le=c.top>=22;s.style.top=Le?`${c.top-20}px`:`${c.bottom+4}px`,s.style.left=`${Math.max(2,c.left)}px`,t&&(clearTimeout(l),l=setTimeout(u,400))}function u(){a.hidden=!0}let b=null;return{show:h,clear:u,setActive(g){n&&(b??=tn(e,{...n,show:h}),g?b.engage():b.release()),g||u(),g?e.append(a,i):(a.remove(),i.remove()),i.hidden=!g},destroy(){clearTimeout(l),b?.destroy(),a.remove(),i.remove()}}}const sn=new Set(["role","name","aria-label","rel","href"]);function cn(e,t){let n=sn.has(e);n||=e.startsWith("data-")&&_(e);let r=_(t)&&t.length<100;return r||=t.startsWith("#")&&_(t.slice(1)),n&&r}function ln(e){return _(e)}function dn(e){return _(e)}function un(e){return!0}function ke(e,t){if(e.nodeType!==Node.ELEMENT_NODE)throw new Error("Can't generate CSS selector for non-element node type.");if(e.tagName.toLowerCase()==="html")return"html";const n={root:document.body,idName:ln,className:dn,tagName:un,attr:cn,timeoutMs:1e3,seedMinLength:3,optimizedMinLength:2,maxNumberOfPathChecks:1/0},r=new Date,a={...n,...t},o=pn(a.root,n);let s,i=0;for(const h of hn(e,a,o)){if(new Date().getTime()-r.getTime()>a.timeoutMs||i>=a.maxNumberOfPathChecks){const b=mn(e,o);if(!b)throw new Error(`Timeout: Can't find a unique selector after ${a.timeoutMs}ms`);return k(b)}if(i++,I(h,o)){s=h;break}}if(!s)throw new Error("Selector was not found.");const l=[...Ne(s,e,a,o,r)];return l.sort(Z),l.length>0?k(l[0]):k(s)}function*hn(e,t,n){const r=[];let a=[],o=e,s=0;for(;o&&o!==n;){const i=fn(o,t);for(const l of i)l.level=s;if(r.push(i),o=o.parentElement,s++,a.push(...ze(r)),s>=t.seedMinLength){a.sort(Z);for(const l of a)yield l;a=[]}}a.sort(Z);for(const i of a)yield i}function _(e){if(/^[a-z\-]{3,}$/i.test(e)){const t=e.split(/-|[A-Z]/);for(const n of t)if(n.length<=2||/[^aeiou]{4,}/i.test(n))return!1;return!0}return!1}function fn(e,t){const n=[],r=e.getAttribute("id");r&&t.idName(r)&&n.push({name:"#"+CSS.escape(r),penalty:0});for(let s=0;s<e.classList.length;s++){const i=e.classList[s];t.className(i)&&n.push({name:"."+CSS.escape(i),penalty:1})}for(let s=0;s<e.attributes.length;s++){const i=e.attributes[s];t.attr(i.name,i.value)&&n.push({name:`[${CSS.escape(i.name)}="${CSS.escape(i.value)}"]`,penalty:2})}const a=e.tagName.toLowerCase();if(t.tagName(a)){n.push({name:a,penalty:5});const s=P(e,a);s!==void 0&&n.push({name:Ce(a,s),penalty:10})}const o=P(e);return o!==void 0&&n.push({name:gn(a,o),penalty:50}),n}function k(e){let t=e[0],n=t.name;for(let r=1;r<e.length;r++){const a=e[r].level||0;t.level===a-1?n=`${e[r].name} > ${n}`:n=`${e[r].name} ${n}`,t=e[r]}return n}function Te(e){return e.map(t=>t.penalty).reduce((t,n)=>t+n,0)}function Z(e,t){return Te(e)-Te(t)}function P(e,t){const n=e.parentNode;if(!n)return;let r=n.firstChild;if(!r)return;let a=0;for(;r&&(r.nodeType===Node.ELEMENT_NODE&&(t===void 0||r.tagName.toLowerCase()===t)&&a++,r!==e);)r=r.nextSibling;return a}function mn(e,t){let n=0,r=e;const a=[];for(;r&&r!==t;){const o=r.tagName.toLowerCase(),s=P(r,o);if(s===void 0)return;a.push({name:Ce(o,s),penalty:NaN,level:n}),r=r.parentElement,n++}if(I(a,t))return a}function gn(e,t){return e==="html"?"html":`${e}:nth-child(${t})`}function Ce(e,t){return e==="html"?"html":`${e}:nth-of-type(${t})`}function*ze(e,t=[]){if(e.length>0)for(let n of e[0])yield*ze(e.slice(1,e.length),t.concat(n));else yield t}function pn(e,t){return e.nodeType===Node.DOCUMENT_NODE?e:e===t.root?e.ownerDocument:e}function I(e,t){const n=k(e);switch(t.querySelectorAll(n).length){case 0:throw new Error(`Can't select any node with this selector: ${n}`);case 1:return!0;default:return!1}}function*Ne(e,t,n,r,a){if(e.length>2&&e.length>n.optimizedMinLength)for(let o=1;o<e.length-1;o++){if(new Date().getTime()-a.getTime()>n.timeoutMs)return;const i=[...e];i.splice(o,1),I(i,r)&&r.querySelector(k(i))===t&&(yield i,yield*Ne(i,t,n,r,a))}}const bn=A("anchor").replace(/anchor$/,""),wn=[A("anchor"),"data-testid","data-test-id","data-test","data-cy","data-qa","data-pw","data-automation-id"],Re=new Set([...wn,"name","aria-label","role","type","itemprop"]),yn=new Set(["name","type","role","aria-label","itemprop","href","alt","lang"]),xn=[/^class$|^style$/,/^data-v-/,/^_ngcontent-|^_nghost-|^ng-version$|^ng-reflect-/,/^data-reactid$|^data-react-checksum$|^data-react-helmet$/,/^data-radix-|^data-headlessui-|^data-floating-ui-|^data-state$|^data-side$/,/^data-svelte-h$|^data-astro-|^data-styled|^data-emotion$/],$n=[/^[0-9a-f]{8}-[0-9a-f]{4}-/i,/^[0-9a-f]{16,}$/i,/^:r[0-9a-z]+:$/,/^«r[0-9a-z]+»$/,/^\d{4,}$/,/^(ember|mui|mat|cdk|headlessui|radix|reach)-?\d/i,/^(ember|mui|mat|cdk|headlessui|radix|reach)(-?[a-z]+)*-?\d+$/i];function An(e){return e.startsWith(bn)&&e!==A("anchor")||e.startsWith("aria-")&&e!=="aria-label"||xn.some(t=>t.test(e))?!1:Re.has(e)||yn.has(e)}function vn(e,t){return!t||t.length>120||e==="href"&&(t.includes("?")||/^[a-z]+:\/\//i.test(t))?!0:$n.some(n=>n.test(t))}const N=(e,t)=>!vn(e,t)&&!O(t);function U(e){return N("id",e)&&/^[a-zA-Z0-9_-]+$/.test(e)}const En=e=>`"${e.replace(/([\\"])/g,"\\$1")}"`,Oe=e=>e.replace(/"[^"]*"|'[^']*'|#([A-Za-z_-][\w-]*)/g,(t,n)=>n?`[id=${En(n)}]`:t);function De(e,t,n){try{return n.querySelectorAll(e).length===1&&n.querySelector(e)===t}catch{return!1}}function B(e,t=document.body){const n={root:t,tagName:()=>!0,idName:U,seedMinLength:2,optimizedMinLength:2};try{const r=ke(e,{...n,timeoutMs:150,className:()=>!1,attr:(o,s)=>Re.has(o)&&N(o,s)}),a=Oe(r);if(De(a,e,t))return a}catch{}try{const r=ke(e,{...n,timeoutMs:300,className:Sn,attr:(o,s)=>An(o)&&N(o,s)}),a=Oe(r);return De(a,e,t)?a:void 0}catch{return}}function Sn(e){return!(!e||e.length>60||/^[a-z-]*\d/.test(e)||/[:[\]/]/.test(e)||/_[A-Za-z0-9]{5,}$/.test(e)||/^[a-z]+-[0-9a-f]{6,}$/i.test(e))}function _n(e){const t=[];let n=e;for(let r=0;n&&n.nodeType===1&&r<40;r++){const a=n.tagName.toLowerCase();let o=1,s=!1;for(let i=n.previousElementSibling;i;i=i.previousElementSibling)i.tagName===n.tagName&&o++;for(let i=n.nextElementSibling;!s&&i;i=i.nextElementSibling)i.tagName===n.tagName&&(s=!0);t.unshift(o>1||s?`${a}[${o}]`:a),n=n.parentElement}return`/${t.join("/")}`}function kn(e){const t=$e(e),n={},r=It(e);if(r.length){const o=r.map(s=>B(s)).filter(s=>!!s);o.length&&(n.hostPath=o)}const a=B(t);a&&(n.css=a),t.id&&U(t.id)&&(n.domid=t.id);try{n.xpath=_n(t)}catch{}return n}export{Je as applyShotOutcome,Nt as buildExport,Ee as candidates,$t as captureContext,v as captureReport,on as createAddChrome,Jt as createElementAnchor,Dt as deleteBlob,de as deriveAnchorLabel,yt as derivePageRef,_t as deriveQuoteLabel,kn as describeElement,Rt as download,B as generateCss,ge as getBlob,Pt as importArchive,O as isSensitiveValue,U as isStableId,N as isUsableAttrValue,ye as narrow,me as putBlob,E as redactText,ne as redactUrl,Zt as resolveAttachmentUris,we as widen};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var W,S,$e,F,Ce,Se,Ee,ie,V,q,Te,le,de,ce,G={},Y=[],pn=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,Q=Array.isArray;function U(e,n){for(var t in n)e[t]=n[t];return e}function ue(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function L(e,n,t){var o,s,a,i={};for(a in n)a=="key"?o=n[a]:a=="ref"?s=n[a]:i[a]=n[a];if(arguments.length>2&&(i.children=arguments.length>3?W.call(arguments,2):t),typeof e=="function"&&e.defaultProps!=null)for(a in e.defaultProps)i[a]===void 0&&(i[a]=e.defaultProps[a]);return J(e,i,o,s,null)}function J(e,n,t,o,s){var a={type:e,props:n,key:t,ref:o,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:s??++$e,__i:-1,__u:0};return s==null&&S.vnode!=null&&S.vnode(a),a}function N(e){return e.children}function X(e,n){this.props=e,this.context=n}function B(e,n){if(n==null)return e.__?B(e.__,e.__i+1):null;for(var t;n<e.__k.length;n++)if((t=e.__k[n])!=null&&t.__e!=null)return t.__e;return typeof e.type=="function"?B(e):null}function gn(e){if(e.__P&&e.__d){var n=e.__v,t=n.__e,o=[],s=[],a=U({},n);a.__v=n.__v+1,S.vnode&&S.vnode(a),pe(e.__P,a,n,e.__n,e.__P.namespaceURI,32&n.__u?[t]:null,o,t??B(n),!!(32&n.__u),s),a.__v=n.__v,a.__.__k[a.__i]=a,Le(o,a,s),n.__e=n.__=null,a.__e!=t&&Me(a)}}function Me(e){if((e=e.__)!=null&&e.__c!=null)return e.__e=e.__c.base=null,e.__k.some(function(n){if(n!=null&&n.__e!=null)return e.__e=e.__c.base=n.__e}),Me(e)}function De(e){(!e.__d&&(e.__d=!0)&&F.push(e)&&!Z.__r++||Ce!=S.debounceRendering)&&((Ce=S.debounceRendering)||Se)(Z)}function Z(){try{for(var e,n=1;F.length;)F.length>n&&F.sort(Ee),e=F.shift(),n=F.length,gn(e)}finally{F.length=Z.__r=0}}function Ae(e,n,t,o,s,a,i,u,g,l,_){var y,c,h,$,b,m,w=o&&o.__k||Y,v=n.length;for(g=hn(t,n,w,g,v),y=0;y<v;y++)(h=t.__k[y])!=null&&(c=h.__i!=-1&&w[h.__i]||G,h.__i=y,m=pe(e,h,c,s,a,i,u,g,l,_),$=h.__e,h.ref&&c.ref!=h.ref&&(c.ref&&ge(c.ref,null,h),_.push(h.ref,h.__c||$,h)),b==null&&$!=null&&(b=$),4&h.__u?(g=Pe(h,g,e),c.__e&&(c.__e=null)):typeof h.type=="function"&&m!==void 0?g=m:$&&(g=$.nextSibling),h.__u&=-7);return t.__e=b,g}function hn(e,n,t,o,s){var a,i,u,g,l,_=t.length,y=_,c=0;for(e.__k=new Array(s),a=0;a<s;a++)(i=n[a])!=null&&typeof i!="boolean"&&typeof i!="function"?(typeof i=="string"||typeof i=="number"||typeof i=="bigint"||i.constructor==String?i=e.__k[a]=J(null,i,null,null,null):Q(i)?i=e.__k[a]=J(N,{children:i},null,null,null):i.constructor===void 0&&i.__b>0?i=e.__k[a]=J(i.type,i.props,i.key,i.ref?i.ref:null,i.__v):e.__k[a]=i,g=a+c,i.__=e,i.__b=e.__b+1,u=null,(l=i.__i=fn(i,t,g,y))!=-1&&(y--,(u=t[l])&&(u.__u|=2)),u==null||u.__v==null?(l==-1&&(s>_?c--:s<_&&c++),typeof i.type!="function"&&(i.__u|=4)):l!=g&&(l==g-1?c--:l==g+1?c++:(l>g?c--:c++,i.__u|=4))):e.__k[a]=null;if(y)for(a=0;a<_;a++)(u=t[a])!=null&&(2&u.__u)==0&&(u.__e==o&&(o=B(u)),He(u,u));return o}function Pe(e,n,t){var o,s;if(typeof e.type=="function"){for(o=e.__k,s=0;o&&s<o.length;s++)o[s]&&(o[s].__=e,n=Pe(o[s],n,t));return n}e.__e!=n&&(n&&e.type&&!n.parentNode&&(n=B(e)),n=t.insertBefore(e.__e,n||null));do n=n&&n.nextSibling;while(n!=null&&n.nodeType==8);return n}function fn(e,n,t,o){var s,a,i,u=e.key,g=e.type,l=n[t],_=l!=null&&(2&l.__u)==0;if(l===null&&u==null||_&&u==l.key&&g==l.type)return t;if(o>(_?1:0)){for(s=t-1,a=t+1;s>=0||a<n.length;)if((l=n[i=s>=0?s--:a++])!=null&&(2&l.__u)==0&&u==l.key&&g==l.type)return i}return-1}function Re(e,n,t){n[0]=="-"?e.setProperty(n,t??""):e[n]=t==null?"":typeof t!="number"||pn.test(n)?t:t+"px"}function ee(e,n,t,o,s){var a,i;e:if(n=="style")if(typeof t=="string")e.style.cssText=t;else{if(typeof o=="string"&&(e.style.cssText=o=""),o)for(n in o)t&&n in t||Re(e.style,n,"");if(t)for(n in t)o&&t[n]==o[n]||Re(e.style,n,t[n])}else if(n[0]=="o"&&n[1]=="n")a=n!=(n=n.replace(Te,"$1")),i=n.toLowerCase(),n=i in e||n=="onFocusOut"||n=="onFocusIn"?i.slice(2):n.slice(2),e.l||(e.l={}),e.l[n+a]=t,t?o?t[q]=o[q]:(t[q]=le,e.addEventListener(n,a?ce:de,a)):e.removeEventListener(n,a?ce:de,a);else{if(s=="http://www.w3.org/2000/svg")n=n.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(n!="width"&&n!="height"&&n!="href"&&n!="list"&&n!="form"&&n!="tabIndex"&&n!="download"&&n!="rowSpan"&&n!="colSpan"&&n!="role"&&n!="popover"&&n in e)try{e[n]=t??"";break e}catch{}typeof t=="function"||(t==null||t===!1&&n[4]!="-"?e.removeAttribute(n):e.setAttribute(n,n=="popover"&&t==1?"":t))}}function ze(e){return function(n){if(this.l){var t=this.l[n.type+e];if(n[V]==null)n[V]=le++;else if(n[V]<t[q])return;return t(S.event?S.event(n):n)}}}function pe(e,n,t,o,s,a,i,u,g,l){var _,y,c,h,$,b,m,w,v,P,k,C,E,D,R,j,f=n.type;if(n.constructor!==void 0)return null;128&t.__u&&(g=!!(32&t.__u),a=[u=n.__e=t.__e]),(_=S.__b)&&_(n);e:if(typeof f=="function"){y=i.length;try{if(v=n.props,P=f.prototype&&f.prototype.render,k=(_=f.contextType)&&o[_.__c],C=_?k?k.props.value:_.__:o,t.__c?w=(c=n.__c=t.__c).__=c.__E:(P?n.__c=c=new f(v,C):(n.__c=c=new X(v,C),c.constructor=f,c.render=mn),k&&k.sub(c),c.state||(c.state={}),c.__n=o,h=c.__d=!0,c.__h=[],c._sb=[]),P&&c.__s==null&&(c.__s=c.state),P&&f.getDerivedStateFromProps!=null&&(c.__s==c.state&&(c.__s=U({},c.__s)),U(c.__s,f.getDerivedStateFromProps(v,c.__s))),$=c.props,b=c.state,c.__v=n,h)P&&f.getDerivedStateFromProps==null&&c.componentWillMount!=null&&c.componentWillMount(),P&&c.componentDidMount!=null&&c.__h.push(c.componentDidMount);else{if(P&&f.getDerivedStateFromProps==null&&v!==$&&c.componentWillReceiveProps!=null&&c.componentWillReceiveProps(v,C),n.__v==t.__v||!c.__e&&c.shouldComponentUpdate!=null&&c.shouldComponentUpdate(v,c.__s,C)===!1){n.__v!=t.__v&&(c.props=v,c.state=c.__s,c.__d=!1),n.__e=t.__e,n.__k=t.__k,n.__k.some(function(A){A&&(A.__=n)}),Y.push.apply(c.__h,c._sb),c._sb=[],c.__h.length&&i.push(c),u=B(t);break e}c.componentWillUpdate!=null&&c.componentWillUpdate(v,c.__s,C),P&&c.componentDidUpdate!=null&&c.__h.push(function(){c.componentDidUpdate($,b,m)})}if(c.context=C,c.props=v,c.__P=e,c.__e=!1,E=S.__r,D=0,P)c.state=c.__s,c.__d=!1,E&&E(n),_=c.render(c.props,c.state,c.context),Y.push.apply(c.__h,c._sb),c._sb=[];else do c.__d=!1,E&&E(n),_=c.render(c.props,c.state,c.context),c.state=c.__s;while(c.__d&&++D<25);c.state=c.__s,c.getChildContext!=null&&(o=U(U({},o),c.getChildContext())),P&&!h&&c.getSnapshotBeforeUpdate!=null&&(m=c.getSnapshotBeforeUpdate($,b)),R=_!=null&&_.type===N&&_.key==null?Ne(_.props.children):_,u=Ae(e,Q(R)?R:[R],n,t,o,s,a,i,u,g,l),c.base=n.__e,n.__u&=-161,c.__h.length&&i.push(c),w&&(c.__E=c.__=null)}catch(A){if(i.length=y,n.__v=null,g||a!=null){if(A.then){for(n.__u|=g?160:128;u&&u.nodeType==8&&u.nextSibling;)u=u.nextSibling;a!=null&&(a[a.indexOf(u)]=null),n.__e=u}else if(a!=null)for(j=a.length;j--;)ue(a[j])}else n.__e=t.__e;n.__k==null&&(n.__k=t.__k||[]),A.then||Oe(n),S.__e(A,n,t)}}else a==null&&n.__v==t.__v?(n.__k=t.__k,n.__e=t.__e):u=n.__e=_n(t.__e,n,t,o,s,a,i,g,l);return(_=S.diffed)&&_(n),128&n.__u?void 0:u}function Oe(e){e&&(e.__c&&(e.__c.__e=!0),e.__k&&e.__k.some(Oe))}function Le(e,n,t){for(var o=0;o<t.length;o++)ge(t[o],t[++o],t[++o]);S.__c&&S.__c(n,e),e.some(function(s){try{e=s.__h,s.__h=[],e.some(function(a){a.call(s)})}catch(a){S.__e(a,s.__v)}})}function Ne(e){return typeof e!="object"||e==null||e.__b>0?e:Q(e)?e.map(Ne):e.constructor!==void 0?null:U({},e)}function _n(e,n,t,o,s,a,i,u,g){var l,_,y,c,h,$,b,m=t.props||G,w=n.props,v=n.type;if(v=="svg"?s="http://www.w3.org/2000/svg":v=="math"?s="http://www.w3.org/1998/Math/MathML":s||(s="http://www.w3.org/1999/xhtml"),a!=null){for(l=0;l<a.length;l++)if((h=a[l])&&"setAttribute"in h==!!v&&(v?h.localName==v:h.nodeType==3)){e=h,a[l]=null;break}}if(e==null){if(v==null)return document.createTextNode(w);e=document.createElementNS(s,v,w.is&&w),u&&(S.__m&&S.__m(n,a),u=!1),a=null}if(v==null)m===w||u&&e.data==w||(e.data=w);else{if(a=v=="textarea"&&w.defaultValue!=null?null:a&&W.call(e.childNodes),!u&&a!=null)for(m={},l=0;l<e.attributes.length;l++)m[(h=e.attributes[l]).name]=h.value;for(l in m)h=m[l],l=="dangerouslySetInnerHTML"?y=h:l=="children"||l in w||l=="value"&&"defaultValue"in w||l=="checked"&&"defaultChecked"in w||ee(e,l,null,h,s);for(l in w)h=w[l],l=="children"?c=h:l=="dangerouslySetInnerHTML"?_=h:l=="value"?$=h:l=="checked"?b=h:u&&typeof h!="function"||m[l]===h||ee(e,l,h,m[l],s);if(_)u||y&&(_.__html==y.__html||_.__html==e.innerHTML)||(e.innerHTML=_.__html),n.__k=[];else if(y&&(e.innerHTML=""),Ae(n.type=="template"?e.content:e,Q(c)?c:[c],n,t,o,v=="foreignObject"?"http://www.w3.org/1999/xhtml":s,a,i,a?a[0]:t.__k&&B(t,0),u,g),a!=null)for(l=a.length;l--;)ue(a[l]);u&&v!="textarea"||(l="value",v=="progress"&&$==null?e.removeAttribute("value"):$!=null&&($!==e[l]||v=="progress"&&!$||v=="option"&&$!=m[l])&&ee(e,l,$,m[l],s),l="checked",b!=null&&b!=e[l]&&ee(e,l,b,m[l],s))}return e}function ge(e,n,t){try{if(typeof e=="function"){var o=typeof e.__u=="function";o&&e.__u(),o&&n==null||(e.__u=e(n))}else e.current=n}catch(s){S.__e(s,t)}}function He(e,n,t){var o,s;if(S.unmount&&S.unmount(e),(o=e.ref)&&(o.current&&o.current!=e.__e||ge(o,null,n)),(o=e.__c)!=null){if(o.componentWillUnmount)try{o.componentWillUnmount()}catch(a){S.__e(a,n)}o.base=o.__P=o.__n=null}if(o=e.__k)for(s=0;s<o.length;s++)o[s]&&He(o[s],n,t||typeof e.type!="function");t||ue(e.__e),e.__c=e.__=e.__e=void 0}function mn(e,n,t){return this.constructor(e,t)}function Ie(e,n,t){var o,s,a,i;n==document&&(n=document.documentElement),S.__&&S.__(e,n),s=(o=!1)?null:n.__k,a=[],i=[],pe(n,e=n.__k=L(N,null,[e]),s||G,G,n.namespaceURI,s?null:n.firstChild?W.call(n.childNodes):null,a,s?s.__e:n.firstChild,o,i),Le(a,e,i),e.props.children=null}W=Y.slice,S={__e:function(e,n,t,o){for(var s,a,i;n=n.__;)if((s=n.__c)&&!s.__)try{if((a=s.constructor)&&a.getDerivedStateFromError!=null&&(s.setState(a.getDerivedStateFromError(e)),i=s.__d),s.componentDidCatch!=null&&(s.componentDidCatch(e,o||{}),i=s.__d),i)return s.__E=s}catch(u){e=u}throw e}},$e=0,X.prototype.setState=function(e,n){var t;t=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=U({},this.state),typeof e=="function"&&(e=e(U({},t),this.props)),e&&U(t,e),e!=null&&this.__v&&(n&&this._sb.push(n),De(this))},X.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),De(this))},X.prototype.render=N,F=[],Se=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Ee=function(e,n){return e.__v.__b-n.__v.__b},Z.__r=0,ie=Math.random().toString(8),V="__d"+ie,q="__a"+ie,Te=/(PointerCapture)$|Capture$/i,le=0,de=ze(!1),ce=ze(!0);var kn=0;function r(e,n,t,o,s,a){n||(n={});var i,u,g=n;if("ref"in g)for(u in g={},n)u=="ref"?i=n[u]:g[u]=n[u];var l={type:e,props:g,key:t,ref:i,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--kn,__i:-1,__u:0,__source:s,__self:a};if(typeof e=="function"&&(i=e.defaultProps))for(u in i)g[u]===void 0&&(g[u]=i[u]);return S.vnode&&S.vnode(l),l}const bn="Snagset",xn="Snagset",yn="Snag",vn="Snags",x={font:"--snag-font",accent:"--snag-accent",onAccent:"--snag-onAccent",bg:"--snag-bg",fg:"--snag-fg",muted:"--snag-muted",border:"--snag-border",radius:"--snag-radius",shadow:"--snag-shadow",z:"--snag-z",motion:"--snag-motion",surface:"--snag-surface",sunken:"--snag-sunken",hover:"--snag-hover",focus:"--snag-focus",disabled:"--snag-disabled",statusOpen:"--snag-status-open",statusProgress:"--snag-status-progress",statusReview:"--snag-status-review",statusResolved:"--snag-status-resolved",anchorOrphan:"--snag-anchor-orphan",tbH:"--snag-tb-h",dockW:"--snag-dock-w",kb:"--snag-kb",thumbX:"--snag-thumb-x",thumbW:"--snag-thumb-w"},wn=e=>`var(${x[e]})`,$n=e=>"snag_"+e,Ue={query:["snag_t","snag_off","snag_debug","snag_theme"],fragment:["snag_k"]},Cn="data-snag-theme";var K,T,he,je,ne=0,Fe=[],M=S,Be=M.__b,qe=M.__r,Ke=M.diffed,We=M.__c,Ve=M.unmount,Ge=M.__;function fe(e,n){M.__h&&M.__h(T,e,ne||n),ne=0;var t=T.__H||(T.__H={__:[],__h:[]});return e>=t.__.length&&t.__.push({}),t.__[e]}function z(e){return ne=1,Sn(Je,e)}function Sn(e,n,t){var o=fe(K++,2);if(o.t=e,!o.__c&&(o.__=[Je(void 0,n),function(u){var g=o.__N?o.__N[0]:o.__[0],l=o.t(g,u);g!==l&&(o.__N=[l,o.__[1]],o.__c.setState({}))}],o.__c=T,!T.__f)){var s=function(u,g,l){if(!o.__c.__H)return!0;var _=!1,y=o.__c.props!==u;if(o.__c.__H.__.some(function(h){if(h.__N){_=!0;var $=h.__[0];h.__=h.__N,h.__N=void 0,$!==h.__[0]&&(y=!0)}}),a){var c=a.call(this,u,g,l);return _?c||y:c}return!_||y};T.__f=!0;var a=T.shouldComponentUpdate,i=T.componentWillUpdate;T.componentWillUpdate=function(u,g,l){if(this.__e){var _=a;a=void 0,s(u,g,l),a=_}i&&i.call(this,u,g,l)},T.shouldComponentUpdate=s}return o.__N||o.__}function H(e,n){var t=fe(K++,3);!M.__s&&Qe(t.__H,n)&&(t.__=e,t.u=n,T.__H.__h.push(t))}function I(e){return ne=5,En(function(){return{current:e}},[])}function En(e,n){var t=fe(K++,7);return Qe(t.__H,n)&&(t.__=e(),t.__H=n,t.__h=e),t.__}function Tn(){for(var e;e=Fe.shift();){var n=e.__H;if(e.__P&&n)try{n.__h.some(te),n.__h.some(_e),n.__h=[]}catch(t){n.__h=[],M.__e(t,e.__v)}}}M.__b=function(e){T=null,Be&&Be(e)},M.__=function(e,n){e&&n.__k&&n.__k.__m&&(e.__m=n.__k.__m),Ge&&Ge(e,n)},M.__r=function(e){qe&&qe(e),K=0;var n=(T=e.__c).__H;n&&(he===T?(n.__h=[],T.__h=[],n.__.some(function(t){t.__N&&(t.__=t.__N),t.u=t.__N=void 0})):(n.__h.some(te),n.__h.some(_e),n.__h=[],K=0)),he=T},M.diffed=function(e){Ke&&Ke(e);var n=e.__c;n&&n.__H&&(n.__H.__h.length&&(Fe.push(n)!==1&&je===M.requestAnimationFrame||((je=M.requestAnimationFrame)||Mn)(Tn)),n.__H.__.some(function(t){t.u&&(t.__H=t.u,t.u=void 0)})),he=T=null},M.__c=function(e,n){n.some(function(t){try{t.__h.some(te),t.__h=t.__h.filter(function(o){return!o.__||_e(o)})}catch(o){n.some(function(s){s.__h&&(s.__h=[])}),n=[],M.__e(o,t.__v)}}),We&&We(e,n)},M.unmount=function(e){Ve&&Ve(e);var n,t=e.__c;t&&t.__H&&(t.__H.__.some(function(o){try{te(o)}catch(s){n=s}}),t.__H=void 0,n&&M.__e(n,t.__v))};var Ye=typeof requestAnimationFrame=="function";function Mn(e){var n,t=function(){clearTimeout(o),Ye&&cancelAnimationFrame(n),setTimeout(e)},o=setTimeout(t,35);Ye&&(n=requestAnimationFrame(t))}function te(e){var n=T,t=e.__c;typeof t=="function"&&(e.__c=void 0,t()),T=n}function _e(e){var n=T;e.__c=e.__(),T=n}function Qe(e,n){return!e||e.length!==n.length||n.some(function(t,o){return t!==e[o]})}function Je(e,n){return typeof n=="function"?n(e):n}const Dn={product:bn,set:xn,item:yn,items:vn};function Xe(e){return(n,t)=>(e[n]??"").replace(/\{(\w+)\}/g,(o,s)=>{const a=t?.[s]??Dn[s];return a===void 0?o:String(a)})}const O=e=>new Intl.NumberFormat().format(e),Ze={"where.anchored":"{label}","where.approximate":"position approximate \u2014 the page changed","where.orphaned":"moved \u2014 the element is gone","status.open":"Active","status.progress":"In progress","status.review":"In review","status.resolved":"Resolved","author.unknown":"Someone","label.image":"an image","label.link":"a link","label.button":"a button","label.tag":"the {tag}"},An=Xe(Ze),oe={open:{colour:"#009ed3"},progress:{colour:"#bd5000"},review:{colour:"#6700bf"},resolved:{colour:"#b2e3a3"}},me=e=>oe[e]?.colour??"#8a8f98",en=e=>e==="progress"||e==="review"?"#fff":"#16161a",ke=e=>e in oe?An(`status.${e}`):e,d=Object.fromEntries(Object.keys(x).map(e=>[e,wn(e)])),Pn=Object.entries(oe).map(([e,n])=>` ${x[`status${e[0].toUpperCase()}${e.slice(1)}`]}:${n.colour};`).join(`
|
|
1
|
+
var W,S,$e,F,Ce,Se,Ee,ie,V,q,Te,le,de,ce,G={},Y=[],pn=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,Q=Array.isArray;function U(e,n){for(var t in n)e[t]=n[t];return e}function ue(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function L(e,n,t){var o,s,a,i={};for(a in n)a=="key"?o=n[a]:a=="ref"?s=n[a]:i[a]=n[a];if(arguments.length>2&&(i.children=arguments.length>3?W.call(arguments,2):t),typeof e=="function"&&e.defaultProps!=null)for(a in e.defaultProps)i[a]===void 0&&(i[a]=e.defaultProps[a]);return J(e,i,o,s,null)}function J(e,n,t,o,s){var a={type:e,props:n,key:t,ref:o,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:s??++$e,__i:-1,__u:0};return s==null&&S.vnode!=null&&S.vnode(a),a}function N(e){return e.children}function X(e,n){this.props=e,this.context=n}function B(e,n){if(n==null)return e.__?B(e.__,e.__i+1):null;for(var t;n<e.__k.length;n++)if((t=e.__k[n])!=null&&t.__e!=null)return t.__e;return typeof e.type=="function"?B(e):null}function gn(e){if(e.__P&&e.__d){var n=e.__v,t=n.__e,o=[],s=[],a=U({},n);a.__v=n.__v+1,S.vnode&&S.vnode(a),pe(e.__P,a,n,e.__n,e.__P.namespaceURI,32&n.__u?[t]:null,o,t??B(n),!!(32&n.__u),s),a.__v=n.__v,a.__.__k[a.__i]=a,Le(o,a,s),n.__e=n.__=null,a.__e!=t&&Me(a)}}function Me(e){if((e=e.__)!=null&&e.__c!=null)return e.__e=e.__c.base=null,e.__k.some(function(n){if(n!=null&&n.__e!=null)return e.__e=e.__c.base=n.__e}),Me(e)}function De(e){(!e.__d&&(e.__d=!0)&&F.push(e)&&!Z.__r++||Ce!=S.debounceRendering)&&((Ce=S.debounceRendering)||Se)(Z)}function Z(){try{for(var e,n=1;F.length;)F.length>n&&F.sort(Ee),e=F.shift(),n=F.length,gn(e)}finally{F.length=Z.__r=0}}function Ae(e,n,t,o,s,a,i,u,g,l,_){var y,c,h,$,b,m,w=o&&o.__k||Y,v=n.length;for(g=hn(t,n,w,g,v),y=0;y<v;y++)(h=t.__k[y])!=null&&(c=h.__i!=-1&&w[h.__i]||G,h.__i=y,m=pe(e,h,c,s,a,i,u,g,l,_),$=h.__e,h.ref&&c.ref!=h.ref&&(c.ref&&ge(c.ref,null,h),_.push(h.ref,h.__c||$,h)),b==null&&$!=null&&(b=$),4&h.__u?(g=Pe(h,g,e),c.__e&&(c.__e=null)):typeof h.type=="function"&&m!==void 0?g=m:$&&(g=$.nextSibling),h.__u&=-7);return t.__e=b,g}function hn(e,n,t,o,s){var a,i,u,g,l,_=t.length,y=_,c=0;for(e.__k=new Array(s),a=0;a<s;a++)(i=n[a])!=null&&typeof i!="boolean"&&typeof i!="function"?(typeof i=="string"||typeof i=="number"||typeof i=="bigint"||i.constructor==String?i=e.__k[a]=J(null,i,null,null,null):Q(i)?i=e.__k[a]=J(N,{children:i},null,null,null):i.constructor===void 0&&i.__b>0?i=e.__k[a]=J(i.type,i.props,i.key,i.ref?i.ref:null,i.__v):e.__k[a]=i,g=a+c,i.__=e,i.__b=e.__b+1,u=null,(l=i.__i=fn(i,t,g,y))!=-1&&(y--,(u=t[l])&&(u.__u|=2)),u==null||u.__v==null?(l==-1&&(s>_?c--:s<_&&c++),typeof i.type!="function"&&(i.__u|=4)):l!=g&&(l==g-1?c--:l==g+1?c++:(l>g?c--:c++,i.__u|=4))):e.__k[a]=null;if(y)for(a=0;a<_;a++)(u=t[a])!=null&&(2&u.__u)==0&&(u.__e==o&&(o=B(u)),He(u,u));return o}function Pe(e,n,t){var o,s;if(typeof e.type=="function"){for(o=e.__k,s=0;o&&s<o.length;s++)o[s]&&(o[s].__=e,n=Pe(o[s],n,t));return n}e.__e!=n&&(n&&e.type&&!n.parentNode&&(n=B(e)),n=t.insertBefore(e.__e,n||null));do n=n&&n.nextSibling;while(n!=null&&n.nodeType==8);return n}function fn(e,n,t,o){var s,a,i,u=e.key,g=e.type,l=n[t],_=l!=null&&(2&l.__u)==0;if(l===null&&u==null||_&&u==l.key&&g==l.type)return t;if(o>(_?1:0)){for(s=t-1,a=t+1;s>=0||a<n.length;)if((l=n[i=s>=0?s--:a++])!=null&&(2&l.__u)==0&&u==l.key&&g==l.type)return i}return-1}function Re(e,n,t){n[0]=="-"?e.setProperty(n,t??""):e[n]=t==null?"":typeof t!="number"||pn.test(n)?t:t+"px"}function ee(e,n,t,o,s){var a,i;e:if(n=="style")if(typeof t=="string")e.style.cssText=t;else{if(typeof o=="string"&&(e.style.cssText=o=""),o)for(n in o)t&&n in t||Re(e.style,n,"");if(t)for(n in t)o&&t[n]==o[n]||Re(e.style,n,t[n])}else if(n[0]=="o"&&n[1]=="n")a=n!=(n=n.replace(Te,"$1")),i=n.toLowerCase(),n=i in e||n=="onFocusOut"||n=="onFocusIn"?i.slice(2):n.slice(2),e.l||(e.l={}),e.l[n+a]=t,t?o?t[q]=o[q]:(t[q]=le,e.addEventListener(n,a?ce:de,a)):e.removeEventListener(n,a?ce:de,a);else{if(s=="http://www.w3.org/2000/svg")n=n.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(n!="width"&&n!="height"&&n!="href"&&n!="list"&&n!="form"&&n!="tabIndex"&&n!="download"&&n!="rowSpan"&&n!="colSpan"&&n!="role"&&n!="popover"&&n in e)try{e[n]=t??"";break e}catch{}typeof t=="function"||(t==null||t===!1&&n[4]!="-"?e.removeAttribute(n):e.setAttribute(n,n=="popover"&&t==1?"":t))}}function ze(e){return function(n){if(this.l){var t=this.l[n.type+e];if(n[V]==null)n[V]=le++;else if(n[V]<t[q])return;return t(S.event?S.event(n):n)}}}function pe(e,n,t,o,s,a,i,u,g,l){var _,y,c,h,$,b,m,w,v,P,k,C,E,D,R,j,f=n.type;if(n.constructor!==void 0)return null;128&t.__u&&(g=!!(32&t.__u),a=[u=n.__e=t.__e]),(_=S.__b)&&_(n);e:if(typeof f=="function"){y=i.length;try{if(v=n.props,P=f.prototype&&f.prototype.render,k=(_=f.contextType)&&o[_.__c],C=_?k?k.props.value:_.__:o,t.__c?w=(c=n.__c=t.__c).__=c.__E:(P?n.__c=c=new f(v,C):(n.__c=c=new X(v,C),c.constructor=f,c.render=mn),k&&k.sub(c),c.state||(c.state={}),c.__n=o,h=c.__d=!0,c.__h=[],c._sb=[]),P&&c.__s==null&&(c.__s=c.state),P&&f.getDerivedStateFromProps!=null&&(c.__s==c.state&&(c.__s=U({},c.__s)),U(c.__s,f.getDerivedStateFromProps(v,c.__s))),$=c.props,b=c.state,c.__v=n,h)P&&f.getDerivedStateFromProps==null&&c.componentWillMount!=null&&c.componentWillMount(),P&&c.componentDidMount!=null&&c.__h.push(c.componentDidMount);else{if(P&&f.getDerivedStateFromProps==null&&v!==$&&c.componentWillReceiveProps!=null&&c.componentWillReceiveProps(v,C),n.__v==t.__v||!c.__e&&c.shouldComponentUpdate!=null&&c.shouldComponentUpdate(v,c.__s,C)===!1){n.__v!=t.__v&&(c.props=v,c.state=c.__s,c.__d=!1),n.__e=t.__e,n.__k=t.__k,n.__k.some(function(A){A&&(A.__=n)}),Y.push.apply(c.__h,c._sb),c._sb=[],c.__h.length&&i.push(c),u=B(t);break e}c.componentWillUpdate!=null&&c.componentWillUpdate(v,c.__s,C),P&&c.componentDidUpdate!=null&&c.__h.push(function(){c.componentDidUpdate($,b,m)})}if(c.context=C,c.props=v,c.__P=e,c.__e=!1,E=S.__r,D=0,P)c.state=c.__s,c.__d=!1,E&&E(n),_=c.render(c.props,c.state,c.context),Y.push.apply(c.__h,c._sb),c._sb=[];else do c.__d=!1,E&&E(n),_=c.render(c.props,c.state,c.context),c.state=c.__s;while(c.__d&&++D<25);c.state=c.__s,c.getChildContext!=null&&(o=U(U({},o),c.getChildContext())),P&&!h&&c.getSnapshotBeforeUpdate!=null&&(m=c.getSnapshotBeforeUpdate($,b)),R=_!=null&&_.type===N&&_.key==null?Ne(_.props.children):_,u=Ae(e,Q(R)?R:[R],n,t,o,s,a,i,u,g,l),c.base=n.__e,n.__u&=-161,c.__h.length&&i.push(c),w&&(c.__E=c.__=null)}catch(A){if(i.length=y,n.__v=null,g||a!=null){if(A.then){for(n.__u|=g?160:128;u&&u.nodeType==8&&u.nextSibling;)u=u.nextSibling;a!=null&&(a[a.indexOf(u)]=null),n.__e=u}else if(a!=null)for(j=a.length;j--;)ue(a[j])}else n.__e=t.__e;n.__k==null&&(n.__k=t.__k||[]),A.then||Oe(n),S.__e(A,n,t)}}else a==null&&n.__v==t.__v?(n.__k=t.__k,n.__e=t.__e):u=n.__e=_n(t.__e,n,t,o,s,a,i,g,l);return(_=S.diffed)&&_(n),128&n.__u?void 0:u}function Oe(e){e&&(e.__c&&(e.__c.__e=!0),e.__k&&e.__k.some(Oe))}function Le(e,n,t){for(var o=0;o<t.length;o++)ge(t[o],t[++o],t[++o]);S.__c&&S.__c(n,e),e.some(function(s){try{e=s.__h,s.__h=[],e.some(function(a){a.call(s)})}catch(a){S.__e(a,s.__v)}})}function Ne(e){return typeof e!="object"||e==null||e.__b>0?e:Q(e)?e.map(Ne):e.constructor!==void 0?null:U({},e)}function _n(e,n,t,o,s,a,i,u,g){var l,_,y,c,h,$,b,m=t.props||G,w=n.props,v=n.type;if(v=="svg"?s="http://www.w3.org/2000/svg":v=="math"?s="http://www.w3.org/1998/Math/MathML":s||(s="http://www.w3.org/1999/xhtml"),a!=null){for(l=0;l<a.length;l++)if((h=a[l])&&"setAttribute"in h==!!v&&(v?h.localName==v:h.nodeType==3)){e=h,a[l]=null;break}}if(e==null){if(v==null)return document.createTextNode(w);e=document.createElementNS(s,v,w.is&&w),u&&(S.__m&&S.__m(n,a),u=!1),a=null}if(v==null)m===w||u&&e.data==w||(e.data=w);else{if(a=v=="textarea"&&w.defaultValue!=null?null:a&&W.call(e.childNodes),!u&&a!=null)for(m={},l=0;l<e.attributes.length;l++)m[(h=e.attributes[l]).name]=h.value;for(l in m)h=m[l],l=="dangerouslySetInnerHTML"?y=h:l=="children"||l in w||l=="value"&&"defaultValue"in w||l=="checked"&&"defaultChecked"in w||ee(e,l,null,h,s);for(l in w)h=w[l],l=="children"?c=h:l=="dangerouslySetInnerHTML"?_=h:l=="value"?$=h:l=="checked"?b=h:u&&typeof h!="function"||m[l]===h||ee(e,l,h,m[l],s);if(_)u||y&&(_.__html==y.__html||_.__html==e.innerHTML)||(e.innerHTML=_.__html),n.__k=[];else if(y&&(e.innerHTML=""),Ae(n.type=="template"?e.content:e,Q(c)?c:[c],n,t,o,v=="foreignObject"?"http://www.w3.org/1999/xhtml":s,a,i,a?a[0]:t.__k&&B(t,0),u,g),a!=null)for(l=a.length;l--;)ue(a[l]);u&&v!="textarea"||(l="value",v=="progress"&&$==null?e.removeAttribute("value"):$!=null&&($!==e[l]||v=="progress"&&!$||v=="option"&&$!=m[l])&&ee(e,l,$,m[l],s),l="checked",b!=null&&b!=e[l]&&ee(e,l,b,m[l],s))}return e}function ge(e,n,t){try{if(typeof e=="function"){var o=typeof e.__u=="function";o&&e.__u(),o&&n==null||(e.__u=e(n))}else e.current=n}catch(s){S.__e(s,t)}}function He(e,n,t){var o,s;if(S.unmount&&S.unmount(e),(o=e.ref)&&(o.current&&o.current!=e.__e||ge(o,null,n)),(o=e.__c)!=null){if(o.componentWillUnmount)try{o.componentWillUnmount()}catch(a){S.__e(a,n)}o.base=o.__P=o.__n=null}if(o=e.__k)for(s=0;s<o.length;s++)o[s]&&He(o[s],n,t||typeof e.type!="function");t||ue(e.__e),e.__c=e.__=e.__e=void 0}function mn(e,n,t){return this.constructor(e,t)}function Ie(e,n,t){var o,s,a,i;n==document&&(n=document.documentElement),S.__&&S.__(e,n),s=(o=!1)?null:n.__k,a=[],i=[],pe(n,e=n.__k=L(N,null,[e]),s||G,G,n.namespaceURI,s?null:n.firstChild?W.call(n.childNodes):null,a,s?s.__e:n.firstChild,o,i),Le(a,e,i),e.props.children=null}W=Y.slice,S={__e:function(e,n,t,o){for(var s,a,i;n=n.__;)if((s=n.__c)&&!s.__)try{if((a=s.constructor)&&a.getDerivedStateFromError!=null&&(s.setState(a.getDerivedStateFromError(e)),i=s.__d),s.componentDidCatch!=null&&(s.componentDidCatch(e,o||{}),i=s.__d),i)return s.__E=s}catch(u){e=u}throw e}},$e=0,X.prototype.setState=function(e,n){var t;t=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=U({},this.state),typeof e=="function"&&(e=e(U({},t),this.props)),e&&U(t,e),e!=null&&this.__v&&(n&&this._sb.push(n),De(this))},X.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),De(this))},X.prototype.render=N,F=[],Se=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Ee=function(e,n){return e.__v.__b-n.__v.__b},Z.__r=0,ie=Math.random().toString(8),V="__d"+ie,q="__a"+ie,Te=/(PointerCapture)$|Capture$/i,le=0,de=ze(!1),ce=ze(!0);var kn=0;function r(e,n,t,o,s,a){n||(n={});var i,u,g=n;if("ref"in g)for(u in g={},n)u=="ref"?i=n[u]:g[u]=n[u];var l={type:e,props:g,key:t,ref:i,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--kn,__i:-1,__u:0,__source:s,__self:a};if(typeof e=="function"&&(i=e.defaultProps))for(u in i)g[u]===void 0&&(g[u]=i[u]);return S.vnode&&S.vnode(l),l}const bn="Snagset",xn="Snagset",yn="Snag",vn="Snags",x={font:"--snag-font",accent:"--snag-accent",onAccent:"--snag-onAccent",bg:"--snag-bg",fg:"--snag-fg",muted:"--snag-muted",border:"--snag-border",radius:"--snag-radius",shadow:"--snag-shadow",z:"--snag-z",motion:"--snag-motion",surface:"--snag-surface",sunken:"--snag-sunken",hover:"--snag-hover",focus:"--snag-focus",disabled:"--snag-disabled",statusOpen:"--snag-status-open",statusProgress:"--snag-status-progress",statusReview:"--snag-status-review",statusResolved:"--snag-status-resolved",anchorOrphan:"--snag-anchor-orphan",tbH:"--snag-tb-h",dockW:"--snag-dock-w",kb:"--snag-kb",thumbX:"--snag-thumb-x",thumbW:"--snag-thumb-w"},wn=e=>`var(${x[e]})`,$n=e=>"snag_"+e,Ue={query:["snag_t","snag_off","snag_debug","snag_theme"],fragment:["snag_k"]},Cn="data-snag-theme";var K,T,he,je,ne=0,Fe=[],M=S,Be=M.__b,qe=M.__r,Ke=M.diffed,We=M.__c,Ve=M.unmount,Ge=M.__;function fe(e,n){M.__h&&M.__h(T,e,ne||n),ne=0;var t=T.__H||(T.__H={__:[],__h:[]});return e>=t.__.length&&t.__.push({}),t.__[e]}function z(e){return ne=1,Sn(Je,e)}function Sn(e,n,t){var o=fe(K++,2);if(o.t=e,!o.__c&&(o.__=[Je(void 0,n),function(u){var g=o.__N?o.__N[0]:o.__[0],l=o.t(g,u);g!==l&&(o.__N=[l,o.__[1]],o.__c.setState({}))}],o.__c=T,!T.__f)){var s=function(u,g,l){if(!o.__c.__H)return!0;var _=!1,y=o.__c.props!==u;if(o.__c.__H.__.some(function(h){if(h.__N){_=!0;var $=h.__[0];h.__=h.__N,h.__N=void 0,$!==h.__[0]&&(y=!0)}}),a){var c=a.call(this,u,g,l);return _?c||y:c}return!_||y};T.__f=!0;var a=T.shouldComponentUpdate,i=T.componentWillUpdate;T.componentWillUpdate=function(u,g,l){if(this.__e){var _=a;a=void 0,s(u,g,l),a=_}i&&i.call(this,u,g,l)},T.shouldComponentUpdate=s}return o.__N||o.__}function H(e,n){var t=fe(K++,3);!M.__s&&Qe(t.__H,n)&&(t.__=e,t.u=n,T.__H.__h.push(t))}function I(e){return ne=5,En(function(){return{current:e}},[])}function En(e,n){var t=fe(K++,7);return Qe(t.__H,n)&&(t.__=e(),t.__H=n,t.__h=e),t.__}function Tn(){for(var e;e=Fe.shift();){var n=e.__H;if(e.__P&&n)try{n.__h.some(te),n.__h.some(_e),n.__h=[]}catch(t){n.__h=[],M.__e(t,e.__v)}}}M.__b=function(e){T=null,Be&&Be(e)},M.__=function(e,n){e&&n.__k&&n.__k.__m&&(e.__m=n.__k.__m),Ge&&Ge(e,n)},M.__r=function(e){qe&&qe(e),K=0;var n=(T=e.__c).__H;n&&(he===T?(n.__h=[],T.__h=[],n.__.some(function(t){t.__N&&(t.__=t.__N),t.u=t.__N=void 0})):(n.__h.some(te),n.__h.some(_e),n.__h=[],K=0)),he=T},M.diffed=function(e){Ke&&Ke(e);var n=e.__c;n&&n.__H&&(n.__H.__h.length&&(Fe.push(n)!==1&&je===M.requestAnimationFrame||((je=M.requestAnimationFrame)||Mn)(Tn)),n.__H.__.some(function(t){t.u&&(t.__H=t.u,t.u=void 0)})),he=T=null},M.__c=function(e,n){n.some(function(t){try{t.__h.some(te),t.__h=t.__h.filter(function(o){return!o.__||_e(o)})}catch(o){n.some(function(s){s.__h&&(s.__h=[])}),n=[],M.__e(o,t.__v)}}),We&&We(e,n)},M.unmount=function(e){Ve&&Ve(e);var n,t=e.__c;t&&t.__H&&(t.__H.__.some(function(o){try{te(o)}catch(s){n=s}}),t.__H=void 0,n&&M.__e(n,t.__v))};var Ye=typeof requestAnimationFrame=="function";function Mn(e){var n,t=function(){clearTimeout(o),Ye&&cancelAnimationFrame(n),setTimeout(e)},o=setTimeout(t,35);Ye&&(n=requestAnimationFrame(t))}function te(e){var n=T,t=e.__c;typeof t=="function"&&(e.__c=void 0,t()),T=n}function _e(e){var n=T;e.__c=e.__(),T=n}function Qe(e,n){return!e||e.length!==n.length||n.some(function(t,o){return t!==e[o]})}function Je(e,n){return typeof n=="function"?n(e):n}const Dn={product:bn,set:xn,item:yn,items:vn};function Xe(e){return(n,t)=>(e[n]??"").replace(/\{(\w+)\}/g,(o,s)=>{const a=t?.[s]??Dn[s];return a===void 0?o:String(a)})}const O=e=>new Intl.NumberFormat().format(e),Ze={"where.anchored":"{label}","where.approximate":"position approximate \u2014 the page changed","where.orphaned":"moved \u2014 the element is gone","status.open":"Active","status.progress":"In progress","status.review":"In review","status.resolved":"Resolved","author.unknown":"Someone","label.image":"an image","label.link":"a link","label.button":"a button","label.tag":"the {tag}"},An=Xe(Ze),oe={open:{colour:"#4f6ef7"},progress:{colour:"#f59e0b"},review:{colour:"#8b5cf6"},resolved:{colour:"#10b981"}},me=e=>oe[e]?.colour??"#8a8f98",en=e=>e==="open"||e==="review"?"#fff":"#16161a",ke=e=>e in oe?An(`status.${e}`):e,d=Object.fromEntries(Object.keys(x).map(e=>[e,wn(e)])),Pn=Object.entries(oe).map(([e,n])=>` ${x[`status${e[0].toUpperCase()}${e.slice(1)}`]}:${n.colour};`).join(`
|
|
2
2
|
`);`${d.font}${d.fg}${x.font}${x.accent}${x.bg}${x.fg}${x.muted}${x.border}${x.radius}${x.shadow}${x.z}${x.motion}${x.surface}${d.fg}${d.bg}${x.sunken}${d.fg}${d.bg}${x.hover}${d.fg}${d.bg}${x.onAccent}${x.focus}${d.accent}${d.fg}${x.disabled}${d.muted}${d.bg}${Pn}${x.anchorOrphan}${Cn}${x.accent}${x.onAccent}${x.bg}${x.fg}${x.muted}${x.border}${x.shadow}${x.motion}${x.bg}${x.fg}${x.muted}${x.border}${x.accent}${x.onAccent}${x.surface}${x.sunken}${x.hover}${x.focus}${x.disabled}${x.shadow}${x.anchorOrphan}`;const Rn={dock:5},nn=new WeakMap;function tn(e,n,t){let o=nn.get(e);if(o||nn.set(e,o=new Set),o.has(n))return;o.add(n);try{const i=new CSSStyleSheet;i.replaceSync(t),e.adoptedStyleSheets=[...e.adoptedStyleSheets,i];return}catch{}const a=(e.ownerDocument??document).createElement("style");a.setAttribute(`data-snag-${n}`,""),a.textContent=t,e.appendChild(a)}const zn=` .snag-input,.snag-text{width:100%;box-sizing:border-box;background:${d.surface};color:inherit;border:1px solid ${d.border};border-radius:${d.radius};padding:8px;font:inherit;resize:vertical}@media (pointer:coarse){.snag-input,.snag-text{font-size:16px}}.snag-input:focus,.snag-text:focus{outline:2px solid ${d.focus};outline-offset:1px;border-color:transparent}.snag-input--bad{border-color:${d.anchorOrphan}}.snag-note{margin:-2px 0 0;color:${d.anchorOrphan};font-size:11px;line-height:1.35}.snag-note.snag-dim{color:${d.muted}}.snag-actions{display:flex;justify-content:flex-end;gap:6px}.snag-actions button{appearance:none;border:0;border-radius:calc(${d.radius} - 1px);padding:7px 13px;font:inherit;cursor:pointer;min-height:32px;transition:background ${d.motion}}.snag-cancel{background:transparent;color:${d.muted}}.snag-armed{color:${d.anchorOrphan};font-weight:600}.snag-cancel:hover{background:${d.hover};color:inherit}.snag-send{background:${d.accent};color:${d.onAccent};font-weight:600}.snag-send:disabled{opacity:.45;cursor:not-allowed}.snag-actions button:focus-visible{outline:2px solid ${d.focus};outline-offset:2px}`;function On(e,n,t){const[o,s]=z(!1);return H(()=>{if(!o)return;const a=setTimeout(()=>s(!1),3e3);return()=>clearTimeout(a)},[o]),{armed:o,press(){if(o||n){s(!1),e();return}s(!0)}}}function Ln(e){const n=window.visualViewport;if(!n)return;let t=0,o=0;const s=()=>{t=0;const u=Math.max(0,Math.round(window.innerHeight-n.height-n.offsetTop));e.style.setProperty(x.kb,`${u}px`)},a=()=>{t||(t=requestAnimationFrame(s))},i=()=>{clearTimeout(o),o=window.setTimeout(s,300)};return s(),n.addEventListener("resize",a),n.addEventListener("scroll",a),window.addEventListener("orientationchange",a),e.addEventListener("focusout",i),()=>{t&&cancelAnimationFrame(t),clearTimeout(o),n.removeEventListener("resize",a),n.removeEventListener("scroll",a),window.removeEventListener("orientationchange",a),e.removeEventListener("focusout",i)}}const Nn="noreferrer nofollow";function Hn(e){const n=e.trim();if(!n||/[-]/.test(n)||n.startsWith("//"))return null;const t=/^([a-z][a-z0-9+.-]*):/i.exec(n);return t?/^(https?|mailto)$/i.test(t[1])?n:null:n}const In=new RegExp(["\\*\\*(?=\\S)(?<bold>[\\s\\S]*?\\S)\\*\\*","(?<!\\w)__(?=\\S)(?<boldU>[\\s\\S]*?\\S)__(?!\\w)","(?<!\\*)\\*(?!\\*)(?=\\S)(?<em>[\\s\\S]*?\\S)(?<!\\*)\\*(?!\\*)","(?<!\\w)_(?=\\S)(?<emU>[\\s\\S]*?\\S)_(?!\\w)","`(?<code>[^`]+)`","\\[(?<label>[^\\]\\n]*)\\]\\((?<href>(?:[^()\\s]|\\([^()\\s]*\\))*)\\)"].join("|")),Un=4;function re(e,n=0,t=0){const o=[];let s=e,a=n;if(t>=Un)return e?[e]:[];for(;;){const i=In.exec(s);if(!i)return s&&o.push(s),o;i.index>0&&o.push(s.slice(0,i.index));const u=`i${a++}`,g=i.groups,l=g.bold??g.boldU,_=g.em??g.emU;if(l!==void 0)o.push(L("strong",{key:u},re(l,a,t+1)));else if(_!==void 0)o.push(L("em",{key:u},re(_,a,t+1)));else if(g.code!==void 0)o.push(L("code",{key:u},g.code));else{const y=Hn(g.href??"");o.push(y?L("a",{key:u,href:y,target:"_blank",rel:Nn},g.label??""):i[0])}s=s.slice(i.index+i[0].length)}}const be=/^```[^\n]*$/,xe=/^[-*]\s+(.*)$/,ye=/^\d{1,9}[.)]\s+(.*)$/;function on(e){const n=e.split(`
|
|
3
3
|
`),t=[];let o=0,s=0;for(;o<n.length;){const a=n[o];if(be.test(a)){const l=[];for(o++;o<n.length&&!be.test(n[o]);)l.push(n[o++]);o++,t.push(L("pre",{key:`b${s++}`},L("code",null,l.join(`
|
|
4
4
|
`))));continue}const i=xe.exec(a),u=ye.exec(a);if(i||u){const l=i?xe:ye,_=[];for(;o<n.length;){const y=l.exec(n[o]);if(!y)break;_.push(L("li",{key:`l${_.length}`},re(y[1]))),o++}t.push(L(i?"ul":"ol",{key:`b${s++}`},_));continue}const g=[];for(;o<n.length;){const l=n[o];if(!l.trim()||be.test(l)||xe.test(l)||ye.test(l))break;g.push(l),o++}g.length?t.push(L("p",{key:`b${s++}`},re(g.join(`
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var J,v,$e,D,we,ke,Se,ie,X,B,Ce,ce,le,_e,Q={},Z=[],it=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,ee=Array.isArray;function N(e,t){for(var n in t)e[n]=t[n];return e}function ue(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function ct(e,t,n){var r,a,o,c={};for(o in t)o=="key"?r=t[o]:o=="ref"?a=t[o]:c[o]=t[o];if(arguments.length>2&&(c.children=arguments.length>3?J.call(arguments,2):n),typeof e=="function"&&e.defaultProps!=null)for(o in e.defaultProps)c[o]===void 0&&(c[o]=e.defaultProps[o]);return te(e,c,r,a,null)}function te(e,t,n,r,a){var o={type:e,props:t,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:a??++$e,__i:-1,__u:0};return a==null&&v.vnode!=null&&v.vnode(o),o}function U(e){return e.children}function ne(e,t){this.props=e,this.context=t}function O(e,t){if(t==null)return e.__?O(e.__,e.__i+1):null;for(var n;t<e.__k.length;t++)if((n=e.__k[t])!=null&&n.__e!=null)return n.__e;return typeof e.type=="function"?O(e):null}function lt(e){if(e.__P&&e.__d){var t=e.__v,n=t.__e,r=[],a=[],o=N({},t);o.__v=t.__v+1,v.vnode&&v.vnode(o),de(e.__P,o,t,e.__n,e.__P.namespaceURI,32&t.__u?[n]:null,r,n??O(t),!!(32&t.__u),a),o.__v=t.__v,o.__.__k[o.__i]=o,Le(r,o,a),t.__e=t.__=null,o.__e!=n&&Te(o)}}function Te(e){if((e=e.__)!=null&&e.__c!=null)return e.__e=e.__c.base=null,e.__k.some(function(t){if(t!=null&&t.__e!=null)return e.__e=e.__c.base=t.__e}),Te(e)}function Ee(e){(!e.__d&&(e.__d=!0)&&D.push(e)&&!oe.__r++||we!=v.debounceRendering)&&((we=v.debounceRendering)||ke)(oe)}function oe(){try{for(var e,t=1;D.length;)D.length>t&&D.sort(Se),e=D.shift(),t=D.length,lt(e)}finally{D.length=oe.__r=0}}function Ae(e,t,n,r,a,o,c,l,p,i,d){var b,s,_,$,T,C,y=r&&r.__k||Z,m=t.length;for(p=_t(n,t,y,p,m),b=0;b<m;b++)(_=n.__k[b])!=null&&(s=_.__i!=-1&&y[_.__i]||Q,_.__i=b,C=de(e,_,s,a,o,c,l,p,i,d),$=_.__e,_.ref&&s.ref!=_.ref&&(s.ref&&pe(s.ref,null,_),d.push(_.ref,_.__c||$,_)),T==null&&$!=null&&(T=$),4&_.__u?(p=He(_,p,e),s.__e&&(s.__e=null)):typeof _.type=="function"&&C!==void 0?p=C:$&&(p=$.nextSibling),_.__u&=-7);return n.__e=T,p}function _t(e,t,n,r,a){var o,c,l,p,i,d=n.length,b=d,s=0;for(e.__k=new Array(a),o=0;o<a;o++)(c=t[o])!=null&&typeof c!="boolean"&&typeof c!="function"?(typeof c=="string"||typeof c=="number"||typeof c=="bigint"||c.constructor==String?c=e.__k[o]=te(null,c,null,null,null):ee(c)?c=e.__k[o]=te(U,{children:c},null,null,null):c.constructor===void 0&&c.__b>0?c=e.__k[o]=te(c.type,c.props,c.key,c.ref?c.ref:null,c.__v):e.__k[o]=c,p=o+s,c.__=e,c.__b=e.__b+1,l=null,(i=c.__i=ut(c,n,p,b))!=-1&&(b--,(l=n[i])&&(l.__u|=2)),l==null||l.__v==null?(i==-1&&(a>d?s--:a<d&&s++),typeof c.type!="function"&&(c.__u|=4)):i!=p&&(i==p-1?s--:i==p+1?s++:(i>p?s--:s++,c.__u|=4))):e.__k[o]=null;if(b)for(o=0;o<d;o++)(l=n[o])!=null&&(2&l.__u)==0&&(l.__e==r&&(r=O(l)),Ie(l,l));return r}function He(e,t,n){var r,a;if(typeof e.type=="function"){for(r=e.__k,a=0;r&&a<r.length;a++)r[a]&&(r[a].__=e,t=He(r[a],t,n));return t}e.__e!=t&&(t&&e.type&&!t.parentNode&&(t=O(e)),t=n.insertBefore(e.__e,t||null));do t=t&&t.nextSibling;while(t!=null&&t.nodeType==8);return t}function ut(e,t,n,r){var a,o,c,l=e.key,p=e.type,i=t[n],d=i!=null&&(2&i.__u)==0;if(i===null&&l==null||d&&l==i.key&&p==i.type)return n;if(r>(d?1:0)){for(a=n-1,o=n+1;a>=0||o<t.length;)if((i=t[c=a>=0?a--:o++])!=null&&(2&i.__u)==0&&l==i.key&&p==i.type)return c}return-1}function Me(e,t,n){t[0]=="-"?e.setProperty(t,n??""):e[t]=n==null?"":typeof n!="number"||it.test(t)?n:n+"px"}function re(e,t,n,r,a){var o,c;e:if(t=="style")if(typeof n=="string")e.style.cssText=n;else{if(typeof r=="string"&&(e.style.cssText=r=""),r)for(t in r)n&&t in n||Me(e.style,t,"");if(n)for(t in n)r&&n[t]==r[t]||Me(e.style,t,n[t])}else if(t[0]=="o"&&t[1]=="n")o=t!=(t=t.replace(Ce,"$1")),c=t.toLowerCase(),t=c in e||t=="onFocusOut"||t=="onFocusIn"?c.slice(2):t.slice(2),e.l||(e.l={}),e.l[t+o]=n,n?r?n[B]=r[B]:(n[B]=ce,e.addEventListener(t,o?_e:le,o)):e.removeEventListener(t,o?_e:le,o);else{if(a=="http://www.w3.org/2000/svg")t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(t!="width"&&t!="height"&&t!="href"&&t!="list"&&t!="form"&&t!="tabIndex"&&t!="download"&&t!="rowSpan"&&t!="colSpan"&&t!="role"&&t!="popover"&&t in e)try{e[t]=n??"";break e}catch{}typeof n=="function"||(n==null||n===!1&&t[4]!="-"?e.removeAttribute(t):e.setAttribute(t,t=="popover"&&n==1?"":n))}}function Pe(e){return function(t){if(this.l){var n=this.l[t.type+e];if(t[X]==null)t[X]=ce++;else if(t[X]<n[B])return;return n(v.event?v.event(t):t)}}}function de(e,t,n,r,a,o,c,l,p,i){var d,b,s,_,$,T,C,y,m,w,I,M,L,z,R,A,H=t.type;if(t.constructor!==void 0)return null;128&n.__u&&(p=!!(32&n.__u),o=[l=t.__e=n.__e]),(d=v.__b)&&d(t);e:if(typeof H=="function"){b=c.length;try{if(m=t.props,w=H.prototype&&H.prototype.render,I=(d=H.contextType)&&r[d.__c],M=d?I?I.props.value:d.__:r,n.__c?y=(s=t.__c=n.__c).__=s.__E:(w?t.__c=s=new H(m,M):(t.__c=s=new ne(m,M),s.constructor=H,s.render=pt),I&&I.sub(s),s.state||(s.state={}),s.__n=r,_=s.__d=!0,s.__h=[],s._sb=[]),w&&s.__s==null&&(s.__s=s.state),w&&H.getDerivedStateFromProps!=null&&(s.__s==s.state&&(s.__s=N({},s.__s)),N(s.__s,H.getDerivedStateFromProps(m,s.__s))),$=s.props,T=s.state,s.__v=t,_)w&&H.getDerivedStateFromProps==null&&s.componentWillMount!=null&&s.componentWillMount(),w&&s.componentDidMount!=null&&s.__h.push(s.componentDidMount);else{if(w&&H.getDerivedStateFromProps==null&&m!==$&&s.componentWillReceiveProps!=null&&s.componentWillReceiveProps(m,M),t.__v==n.__v||!s.__e&&s.shouldComponentUpdate!=null&&s.shouldComponentUpdate(m,s.__s,M)===!1){t.__v!=n.__v&&(s.props=m,s.state=s.__s,s.__d=!1),t.__e=n.__e,t.__k=n.__k,t.__k.some(function(P){P&&(P.__=t)}),Z.push.apply(s.__h,s._sb),s._sb=[],s.__h.length&&c.push(s),l=O(n);break e}s.componentWillUpdate!=null&&s.componentWillUpdate(m,s.__s,M),w&&s.componentDidUpdate!=null&&s.__h.push(function(){s.componentDidUpdate($,T,C)})}if(s.context=M,s.props=m,s.__P=e,s.__e=!1,L=v.__r,z=0,w)s.state=s.__s,s.__d=!1,L&&L(t),d=s.render(s.props,s.state,s.context),Z.push.apply(s.__h,s._sb),s._sb=[];else do s.__d=!1,L&&L(t),d=s.render(s.props,s.state,s.context),s.state=s.__s;while(s.__d&&++z<25);s.state=s.__s,s.getChildContext!=null&&(r=N(N({},r),s.getChildContext())),w&&!_&&s.getSnapshotBeforeUpdate!=null&&(C=s.getSnapshotBeforeUpdate($,T)),R=d!=null&&d.type===U&&d.key==null?De(d.props.children):d,l=Ae(e,ee(R)?R:[R],t,n,r,a,o,c,l,p,i),s.base=t.__e,t.__u&=-161,s.__h.length&&c.push(s),y&&(s.__E=s.__=null)}catch(P){if(c.length=b,t.__v=null,p||o!=null){if(P.then){for(t.__u|=p?160:128;l&&l.nodeType==8&&l.nextSibling;)l=l.nextSibling;o!=null&&(o[o.indexOf(l)]=null),t.__e=l}else if(o!=null)for(A=o.length;A--;)ue(o[A])}else t.__e=n.__e;t.__k==null&&(t.__k=n.__k||[]),P.then||Ne(t),v.__e(P,t,n)}}else o==null&&t.__v==n.__v?(t.__k=n.__k,t.__e=n.__e):l=t.__e=dt(n.__e,t,n,r,a,o,c,p,i);return(d=v.diffed)&&d(t),128&t.__u?void 0:l}function Ne(e){e&&(e.__c&&(e.__c.__e=!0),e.__k&&e.__k.some(Ne))}function Le(e,t,n){for(var r=0;r<n.length;r++)pe(n[r],n[++r],n[++r]);v.__c&&v.__c(t,e),e.some(function(a){try{e=a.__h,a.__h=[],e.some(function(o){o.call(a)})}catch(o){v.__e(o,a.__v)}})}function De(e){return typeof e!="object"||e==null||e.__b>0?e:ee(e)?e.map(De):e.constructor!==void 0?null:N({},e)}function dt(e,t,n,r,a,o,c,l,p){var i,d,b,s,_,$,T,C=n.props||Q,y=t.props,m=t.type;if(m=="svg"?a="http://www.w3.org/2000/svg":m=="math"?a="http://www.w3.org/1998/Math/MathML":a||(a="http://www.w3.org/1999/xhtml"),o!=null){for(i=0;i<o.length;i++)if((_=o[i])&&"setAttribute"in _==!!m&&(m?_.localName==m:_.nodeType==3)){e=_,o[i]=null;break}}if(e==null){if(m==null)return document.createTextNode(y);e=document.createElementNS(a,m,y.is&&y),l&&(v.__m&&v.__m(t,o),l=!1),o=null}if(m==null)C===y||l&&e.data==y||(e.data=y);else{if(o=m=="textarea"&&y.defaultValue!=null?null:o&&J.call(e.childNodes),!l&&o!=null)for(C={},i=0;i<e.attributes.length;i++)C[(_=e.attributes[i]).name]=_.value;for(i in C)_=C[i],i=="dangerouslySetInnerHTML"?b=_:i=="children"||i in y||i=="value"&&"defaultValue"in y||i=="checked"&&"defaultChecked"in y||re(e,i,null,_,a);for(i in y)_=y[i],i=="children"?s=_:i=="dangerouslySetInnerHTML"?d=_:i=="value"?$=_:i=="checked"?T=_:l&&typeof _!="function"||C[i]===_||re(e,i,_,C[i],a);if(d)l||b&&(d.__html==b.__html||d.__html==e.innerHTML)||(e.innerHTML=d.__html),t.__k=[];else if(b&&(e.innerHTML=""),Ae(t.type=="template"?e.content:e,ee(s)?s:[s],t,n,r,m=="foreignObject"?"http://www.w3.org/1999/xhtml":a,o,c,o?o[0]:n.__k&&O(n,0),l,p),o!=null)for(i=o.length;i--;)ue(o[i]);l&&m!="textarea"||(i="value",m=="progress"&&$==null?e.removeAttribute("value"):$!=null&&($!==e[i]||m=="progress"&&!$||m=="option"&&$!=C[i])&&re(e,i,$,C[i],a),i="checked",T!=null&&T!=e[i]&&re(e,i,T,C[i],a))}return e}function pe(e,t,n){try{if(typeof e=="function"){var r=typeof e.__u=="function";r&&e.__u(),r&&t==null||(e.__u=e(t))}else e.current=t}catch(a){v.__e(a,n)}}function Ie(e,t,n){var r,a;if(v.unmount&&v.unmount(e),(r=e.ref)&&(r.current&&r.current!=e.__e||pe(r,null,t)),(r=e.__c)!=null){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(o){v.__e(o,t)}r.base=r.__P=r.__n=null}if(r=e.__k)for(a=0;a<r.length;a++)r[a]&&Ie(r[a],t,n||typeof e.type!="function");n||ue(e.__e),e.__c=e.__=e.__e=void 0}function pt(e,t,n){return this.constructor(e,n)}function Re(e,t,n){var r,a,o,c;t==document&&(t=document.documentElement),v.__&&v.__(e,t),a=(r=!1)?null:t.__k,o=[],c=[],de(t,e=t.__k=ct(U,null,[e]),a||Q,Q,t.namespaceURI,a?null:t.firstChild?J.call(t.childNodes):null,o,a?a.__e:t.firstChild,r,c),Le(o,e,c),e.props.children=null}J=Z.slice,v={__e:function(e,t,n,r){for(var a,o,c;t=t.__;)if((a=t.__c)&&!a.__)try{if((o=a.constructor)&&o.getDerivedStateFromError!=null&&(a.setState(o.getDerivedStateFromError(e)),c=a.__d),a.componentDidCatch!=null&&(a.componentDidCatch(e,r||{}),c=a.__d),c)return a.__E=a}catch(l){e=l}throw e}},$e=0,ne.prototype.setState=function(e,t){var n;n=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=N({},this.state),typeof e=="function"&&(e=e(N({},n),this.props)),e&&N(n,e),e!=null&&this.__v&&(t&&this._sb.push(t),Ee(this))},ne.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Ee(this))},ne.prototype.render=U,D=[],ke=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Se=function(e,t){return e.__v.__b-t.__v.__b},oe.__r=0,ie=Math.random().toString(8),X="__d"+ie,B="__a"+ie,Ce=/(PointerCapture)$|Capture$/i,ce=0,le=Pe(!1),_e=Pe(!0);var ft=0;function g(e,t,n,r,a,o){t||(t={});var c,l,p=t;if("ref"in p)for(l in p={},t)l=="ref"?c=t[l]:p[l]=t[l];var i={type:e,props:p,key:n,ref:c,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--ft,__i:-1,__u:0,__source:a,__self:o};if(typeof e=="function"&&(c=e.defaultProps))for(l in c)p[l]===void 0&&(p[l]=c[l]);return v.vnode&&v.vnode(i),i}var Y,k,fe,Oe,se=0,ze=[],S=v,Ue=S.__b,Fe=S.__r,We=S.diffed,je=S.__c,qe=S.unmount,Be=S.__;function he(e,t){S.__h&&S.__h(k,e,se||t),se=0;var n=k.__H||(k.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function F(e){return se=1,ht(Ve,e)}function ht(e,t,n){var r=he(Y++,2);if(r.t=e,!r.__c&&(r.__=[Ve(void 0,t),function(l){var p=r.__N?r.__N[0]:r.__[0],i=r.t(p,l);p!==i&&(r.__N=[i,r.__[1]],r.__c.setState({}))}],r.__c=k,!k.__f)){var a=function(l,p,i){if(!r.__c.__H)return!0;var d=!1,b=r.__c.props!==l;if(r.__c.__H.__.some(function(_){if(_.__N){d=!0;var $=_.__[0];_.__=_.__N,_.__N=void 0,$!==_.__[0]&&(b=!0)}}),o){var s=o.call(this,l,p,i);return d?s||b:s}return!d||b};k.__f=!0;var o=k.shouldComponentUpdate,c=k.componentWillUpdate;k.componentWillUpdate=function(l,p,i){if(this.__e){var d=o;o=void 0,a(l,p,i),o=d}c&&c.call(this,l,p,i)},k.shouldComponentUpdate=a}return r.__N||r.__}function me(e,t){var n=he(Y++,3);!S.__s&&Ke(n.__H,t)&&(n.__=e,n.u=t,k.__H.__h.push(n))}function K(e){return se=5,mt(function(){return{current:e}},[])}function mt(e,t){var n=he(Y++,7);return Ke(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}function gt(){for(var e;e=ze.shift();){var t=e.__H;if(e.__P&&t)try{t.__h.some(ae),t.__h.some(ge),t.__h=[]}catch(n){t.__h=[],S.__e(n,e.__v)}}}S.__b=function(e){k=null,Ue&&Ue(e)},S.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),Be&&Be(e,t)},S.__r=function(e){Fe&&Fe(e),Y=0;var t=(k=e.__c).__H;t&&(fe===k?(t.__h=[],k.__h=[],t.__.some(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(t.__h.some(ae),t.__h.some(ge),t.__h=[],Y=0)),fe=k},S.diffed=function(e){We&&We(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(ze.push(t)!==1&&Oe===S.requestAnimationFrame||((Oe=S.requestAnimationFrame)||vt)(gt)),t.__H.__.some(function(n){n.u&&(n.__H=n.u,n.u=void 0)})),fe=k=null},S.__c=function(e,t){t.some(function(n){try{n.__h.some(ae),n.__h=n.__h.filter(function(r){return!r.__||ge(r)})}catch(r){t.some(function(a){a.__h&&(a.__h=[])}),t=[],S.__e(r,n.__v)}}),je&&je(e,t)},S.unmount=function(e){qe&&qe(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.some(function(r){try{ae(r)}catch(a){t=a}}),n.__H=void 0,t&&S.__e(t,n.__v))};var Ye=typeof requestAnimationFrame=="function";function vt(e){var t,n=function(){clearTimeout(r),Ye&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,35);Ye&&(t=requestAnimationFrame(n))}function ae(e){var t=k,n=e.__c;typeof n=="function"&&(e.__c=void 0,n()),k=t}function ge(e){var t=k;e.__c=e.__(),k=t}function Ke(e,t){return!e||e.length!==t.length||t.some(function(n,r){return n!==e[r]})}function Ve(e,t){return typeof t=="function"?t(e):t}const bt="Snagset",yt="Snagset",xt="Snag",$t="Snags",wt={anchor:"data-snag-anchor",ignore:"data-snag-ignore",mask:"data-snag-mask",nomask:"data-snag-nomask",src:"data-snag-src",component:"data-snag-component"},kt=e=>wt[e],f={font:"--snag-font",accent:"--snag-accent",onAccent:"--snag-onAccent",bg:"--snag-bg",fg:"--snag-fg",muted:"--snag-muted",border:"--snag-border",radius:"--snag-radius",shadow:"--snag-shadow",z:"--snag-z",motion:"--snag-motion",surface:"--snag-surface",sunken:"--snag-sunken",hover:"--snag-hover",focus:"--snag-focus",disabled:"--snag-disabled",statusOpen:"--snag-status-open",statusProgress:"--snag-status-progress",statusReview:"--snag-status-review",statusResolved:"--snag-status-resolved",anchorOrphan:"--snag-anchor-orphan",tbH:"--snag-tb-h",dockW:"--snag-dock-w",kb:"--snag-kb",thumbX:"--snag-thumb-x",thumbW:"--snag-thumb-w"},St=e=>`var(${f[e]})`,Ge="snag:disclosure:v1",Je="snag:identity",Ct="data-snag-theme";function Xe(){let e=null;try{e=localStorage.getItem(Je)}catch{return{}}if(!e)return{};if(e[0]!=="{")return{name:e};try{const t=JSON.parse(e);return t&&typeof t=="object"?t:{}}catch{return{}}}function Tt(e){try{localStorage.setItem(Je,JSON.stringify(e))}catch{}}function Et(){const e=Xe();return{name:typeof e.name=="string"?e.name:"",...e.email?{email:e.email}:{}}}function At(e){const t=Xe();Tt({...t,name:e.name,...e.email?{email:e.email}:{}})}function Ht(e){const t=window.visualViewport;if(!t)return;let n=0,r=0;const a=()=>{n=0;const l=Math.max(0,Math.round(window.innerHeight-t.height-t.offsetTop));e.style.setProperty(f.kb,`${l}px`)},o=()=>{n||(n=requestAnimationFrame(a))},c=()=>{clearTimeout(r),r=window.setTimeout(a,300)};return a(),t.addEventListener("resize",o),t.addEventListener("scroll",o),window.addEventListener("orientationchange",o),e.addEventListener("focusout",c),()=>{n&&cancelAnimationFrame(n),clearTimeout(r),t.removeEventListener("resize",o),t.removeEventListener("scroll",o),window.removeEventListener("orientationchange",o),e.removeEventListener("focusout",c)}}const Mt={product:bt,set:yt,item:xt,items:$t};function Pt(e){return(t,n)=>(e[t]??"").replace(/\{(\w+)\}/g,(r,a)=>{const o=n?.[a]??Mt[a];return o===void 0?r:String(o)})}const Nt=e=>new Intl.NumberFormat().format(e),Lt={"where.anchored":"{label}","where.approximate":"position approximate \u2014 the page changed","where.orphaned":"moved \u2014 the element is gone","status.open":"Active","status.progress":"In progress","status.review":"In review","status.resolved":"Resolved","author.unknown":"Someone","label.image":"an image","label.link":"a link","label.button":"a button","label.tag":"the {tag}"},Dt={open:{colour:"#009ed3"},progress:{colour:"#bd5000"},review:{colour:"#6700bf"},resolved:{colour:"#b2e3a3"}},u=Object.fromEntries(Object.keys(f).map(e=>[e,St(e)])),It=Object.entries(Dt).map(([e,t])=>` ${f[`status${e[0].toUpperCase()}${e.slice(1)}`]}:${t.colour};`).join(`
|
|
1
|
+
var J,v,$e,D,we,ke,Se,ie,X,B,Ce,ce,le,_e,Q={},Z=[],it=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,ee=Array.isArray;function N(e,t){for(var n in t)e[n]=t[n];return e}function ue(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function ct(e,t,n){var r,a,o,c={};for(o in t)o=="key"?r=t[o]:o=="ref"?a=t[o]:c[o]=t[o];if(arguments.length>2&&(c.children=arguments.length>3?J.call(arguments,2):n),typeof e=="function"&&e.defaultProps!=null)for(o in e.defaultProps)c[o]===void 0&&(c[o]=e.defaultProps[o]);return te(e,c,r,a,null)}function te(e,t,n,r,a){var o={type:e,props:t,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:a??++$e,__i:-1,__u:0};return a==null&&v.vnode!=null&&v.vnode(o),o}function U(e){return e.children}function ne(e,t){this.props=e,this.context=t}function O(e,t){if(t==null)return e.__?O(e.__,e.__i+1):null;for(var n;t<e.__k.length;t++)if((n=e.__k[t])!=null&&n.__e!=null)return n.__e;return typeof e.type=="function"?O(e):null}function lt(e){if(e.__P&&e.__d){var t=e.__v,n=t.__e,r=[],a=[],o=N({},t);o.__v=t.__v+1,v.vnode&&v.vnode(o),de(e.__P,o,t,e.__n,e.__P.namespaceURI,32&t.__u?[n]:null,r,n??O(t),!!(32&t.__u),a),o.__v=t.__v,o.__.__k[o.__i]=o,Le(r,o,a),t.__e=t.__=null,o.__e!=n&&Te(o)}}function Te(e){if((e=e.__)!=null&&e.__c!=null)return e.__e=e.__c.base=null,e.__k.some(function(t){if(t!=null&&t.__e!=null)return e.__e=e.__c.base=t.__e}),Te(e)}function Ee(e){(!e.__d&&(e.__d=!0)&&D.push(e)&&!oe.__r++||we!=v.debounceRendering)&&((we=v.debounceRendering)||ke)(oe)}function oe(){try{for(var e,t=1;D.length;)D.length>t&&D.sort(Se),e=D.shift(),t=D.length,lt(e)}finally{D.length=oe.__r=0}}function Ae(e,t,n,r,a,o,c,l,p,i,d){var b,s,_,$,T,C,y=r&&r.__k||Z,m=t.length;for(p=_t(n,t,y,p,m),b=0;b<m;b++)(_=n.__k[b])!=null&&(s=_.__i!=-1&&y[_.__i]||Q,_.__i=b,C=de(e,_,s,a,o,c,l,p,i,d),$=_.__e,_.ref&&s.ref!=_.ref&&(s.ref&&pe(s.ref,null,_),d.push(_.ref,_.__c||$,_)),T==null&&$!=null&&(T=$),4&_.__u?(p=He(_,p,e),s.__e&&(s.__e=null)):typeof _.type=="function"&&C!==void 0?p=C:$&&(p=$.nextSibling),_.__u&=-7);return n.__e=T,p}function _t(e,t,n,r,a){var o,c,l,p,i,d=n.length,b=d,s=0;for(e.__k=new Array(a),o=0;o<a;o++)(c=t[o])!=null&&typeof c!="boolean"&&typeof c!="function"?(typeof c=="string"||typeof c=="number"||typeof c=="bigint"||c.constructor==String?c=e.__k[o]=te(null,c,null,null,null):ee(c)?c=e.__k[o]=te(U,{children:c},null,null,null):c.constructor===void 0&&c.__b>0?c=e.__k[o]=te(c.type,c.props,c.key,c.ref?c.ref:null,c.__v):e.__k[o]=c,p=o+s,c.__=e,c.__b=e.__b+1,l=null,(i=c.__i=ut(c,n,p,b))!=-1&&(b--,(l=n[i])&&(l.__u|=2)),l==null||l.__v==null?(i==-1&&(a>d?s--:a<d&&s++),typeof c.type!="function"&&(c.__u|=4)):i!=p&&(i==p-1?s--:i==p+1?s++:(i>p?s--:s++,c.__u|=4))):e.__k[o]=null;if(b)for(o=0;o<d;o++)(l=n[o])!=null&&(2&l.__u)==0&&(l.__e==r&&(r=O(l)),Ie(l,l));return r}function He(e,t,n){var r,a;if(typeof e.type=="function"){for(r=e.__k,a=0;r&&a<r.length;a++)r[a]&&(r[a].__=e,t=He(r[a],t,n));return t}e.__e!=t&&(t&&e.type&&!t.parentNode&&(t=O(e)),t=n.insertBefore(e.__e,t||null));do t=t&&t.nextSibling;while(t!=null&&t.nodeType==8);return t}function ut(e,t,n,r){var a,o,c,l=e.key,p=e.type,i=t[n],d=i!=null&&(2&i.__u)==0;if(i===null&&l==null||d&&l==i.key&&p==i.type)return n;if(r>(d?1:0)){for(a=n-1,o=n+1;a>=0||o<t.length;)if((i=t[c=a>=0?a--:o++])!=null&&(2&i.__u)==0&&l==i.key&&p==i.type)return c}return-1}function Me(e,t,n){t[0]=="-"?e.setProperty(t,n??""):e[t]=n==null?"":typeof n!="number"||it.test(t)?n:n+"px"}function re(e,t,n,r,a){var o,c;e:if(t=="style")if(typeof n=="string")e.style.cssText=n;else{if(typeof r=="string"&&(e.style.cssText=r=""),r)for(t in r)n&&t in n||Me(e.style,t,"");if(n)for(t in n)r&&n[t]==r[t]||Me(e.style,t,n[t])}else if(t[0]=="o"&&t[1]=="n")o=t!=(t=t.replace(Ce,"$1")),c=t.toLowerCase(),t=c in e||t=="onFocusOut"||t=="onFocusIn"?c.slice(2):t.slice(2),e.l||(e.l={}),e.l[t+o]=n,n?r?n[B]=r[B]:(n[B]=ce,e.addEventListener(t,o?_e:le,o)):e.removeEventListener(t,o?_e:le,o);else{if(a=="http://www.w3.org/2000/svg")t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(t!="width"&&t!="height"&&t!="href"&&t!="list"&&t!="form"&&t!="tabIndex"&&t!="download"&&t!="rowSpan"&&t!="colSpan"&&t!="role"&&t!="popover"&&t in e)try{e[t]=n??"";break e}catch{}typeof n=="function"||(n==null||n===!1&&t[4]!="-"?e.removeAttribute(t):e.setAttribute(t,t=="popover"&&n==1?"":n))}}function Pe(e){return function(t){if(this.l){var n=this.l[t.type+e];if(t[X]==null)t[X]=ce++;else if(t[X]<n[B])return;return n(v.event?v.event(t):t)}}}function de(e,t,n,r,a,o,c,l,p,i){var d,b,s,_,$,T,C,y,m,w,I,M,L,z,R,A,H=t.type;if(t.constructor!==void 0)return null;128&n.__u&&(p=!!(32&n.__u),o=[l=t.__e=n.__e]),(d=v.__b)&&d(t);e:if(typeof H=="function"){b=c.length;try{if(m=t.props,w=H.prototype&&H.prototype.render,I=(d=H.contextType)&&r[d.__c],M=d?I?I.props.value:d.__:r,n.__c?y=(s=t.__c=n.__c).__=s.__E:(w?t.__c=s=new H(m,M):(t.__c=s=new ne(m,M),s.constructor=H,s.render=pt),I&&I.sub(s),s.state||(s.state={}),s.__n=r,_=s.__d=!0,s.__h=[],s._sb=[]),w&&s.__s==null&&(s.__s=s.state),w&&H.getDerivedStateFromProps!=null&&(s.__s==s.state&&(s.__s=N({},s.__s)),N(s.__s,H.getDerivedStateFromProps(m,s.__s))),$=s.props,T=s.state,s.__v=t,_)w&&H.getDerivedStateFromProps==null&&s.componentWillMount!=null&&s.componentWillMount(),w&&s.componentDidMount!=null&&s.__h.push(s.componentDidMount);else{if(w&&H.getDerivedStateFromProps==null&&m!==$&&s.componentWillReceiveProps!=null&&s.componentWillReceiveProps(m,M),t.__v==n.__v||!s.__e&&s.shouldComponentUpdate!=null&&s.shouldComponentUpdate(m,s.__s,M)===!1){t.__v!=n.__v&&(s.props=m,s.state=s.__s,s.__d=!1),t.__e=n.__e,t.__k=n.__k,t.__k.some(function(P){P&&(P.__=t)}),Z.push.apply(s.__h,s._sb),s._sb=[],s.__h.length&&c.push(s),l=O(n);break e}s.componentWillUpdate!=null&&s.componentWillUpdate(m,s.__s,M),w&&s.componentDidUpdate!=null&&s.__h.push(function(){s.componentDidUpdate($,T,C)})}if(s.context=M,s.props=m,s.__P=e,s.__e=!1,L=v.__r,z=0,w)s.state=s.__s,s.__d=!1,L&&L(t),d=s.render(s.props,s.state,s.context),Z.push.apply(s.__h,s._sb),s._sb=[];else do s.__d=!1,L&&L(t),d=s.render(s.props,s.state,s.context),s.state=s.__s;while(s.__d&&++z<25);s.state=s.__s,s.getChildContext!=null&&(r=N(N({},r),s.getChildContext())),w&&!_&&s.getSnapshotBeforeUpdate!=null&&(C=s.getSnapshotBeforeUpdate($,T)),R=d!=null&&d.type===U&&d.key==null?De(d.props.children):d,l=Ae(e,ee(R)?R:[R],t,n,r,a,o,c,l,p,i),s.base=t.__e,t.__u&=-161,s.__h.length&&c.push(s),y&&(s.__E=s.__=null)}catch(P){if(c.length=b,t.__v=null,p||o!=null){if(P.then){for(t.__u|=p?160:128;l&&l.nodeType==8&&l.nextSibling;)l=l.nextSibling;o!=null&&(o[o.indexOf(l)]=null),t.__e=l}else if(o!=null)for(A=o.length;A--;)ue(o[A])}else t.__e=n.__e;t.__k==null&&(t.__k=n.__k||[]),P.then||Ne(t),v.__e(P,t,n)}}else o==null&&t.__v==n.__v?(t.__k=n.__k,t.__e=n.__e):l=t.__e=dt(n.__e,t,n,r,a,o,c,p,i);return(d=v.diffed)&&d(t),128&t.__u?void 0:l}function Ne(e){e&&(e.__c&&(e.__c.__e=!0),e.__k&&e.__k.some(Ne))}function Le(e,t,n){for(var r=0;r<n.length;r++)pe(n[r],n[++r],n[++r]);v.__c&&v.__c(t,e),e.some(function(a){try{e=a.__h,a.__h=[],e.some(function(o){o.call(a)})}catch(o){v.__e(o,a.__v)}})}function De(e){return typeof e!="object"||e==null||e.__b>0?e:ee(e)?e.map(De):e.constructor!==void 0?null:N({},e)}function dt(e,t,n,r,a,o,c,l,p){var i,d,b,s,_,$,T,C=n.props||Q,y=t.props,m=t.type;if(m=="svg"?a="http://www.w3.org/2000/svg":m=="math"?a="http://www.w3.org/1998/Math/MathML":a||(a="http://www.w3.org/1999/xhtml"),o!=null){for(i=0;i<o.length;i++)if((_=o[i])&&"setAttribute"in _==!!m&&(m?_.localName==m:_.nodeType==3)){e=_,o[i]=null;break}}if(e==null){if(m==null)return document.createTextNode(y);e=document.createElementNS(a,m,y.is&&y),l&&(v.__m&&v.__m(t,o),l=!1),o=null}if(m==null)C===y||l&&e.data==y||(e.data=y);else{if(o=m=="textarea"&&y.defaultValue!=null?null:o&&J.call(e.childNodes),!l&&o!=null)for(C={},i=0;i<e.attributes.length;i++)C[(_=e.attributes[i]).name]=_.value;for(i in C)_=C[i],i=="dangerouslySetInnerHTML"?b=_:i=="children"||i in y||i=="value"&&"defaultValue"in y||i=="checked"&&"defaultChecked"in y||re(e,i,null,_,a);for(i in y)_=y[i],i=="children"?s=_:i=="dangerouslySetInnerHTML"?d=_:i=="value"?$=_:i=="checked"?T=_:l&&typeof _!="function"||C[i]===_||re(e,i,_,C[i],a);if(d)l||b&&(d.__html==b.__html||d.__html==e.innerHTML)||(e.innerHTML=d.__html),t.__k=[];else if(b&&(e.innerHTML=""),Ae(t.type=="template"?e.content:e,ee(s)?s:[s],t,n,r,m=="foreignObject"?"http://www.w3.org/1999/xhtml":a,o,c,o?o[0]:n.__k&&O(n,0),l,p),o!=null)for(i=o.length;i--;)ue(o[i]);l&&m!="textarea"||(i="value",m=="progress"&&$==null?e.removeAttribute("value"):$!=null&&($!==e[i]||m=="progress"&&!$||m=="option"&&$!=C[i])&&re(e,i,$,C[i],a),i="checked",T!=null&&T!=e[i]&&re(e,i,T,C[i],a))}return e}function pe(e,t,n){try{if(typeof e=="function"){var r=typeof e.__u=="function";r&&e.__u(),r&&t==null||(e.__u=e(t))}else e.current=t}catch(a){v.__e(a,n)}}function Ie(e,t,n){var r,a;if(v.unmount&&v.unmount(e),(r=e.ref)&&(r.current&&r.current!=e.__e||pe(r,null,t)),(r=e.__c)!=null){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(o){v.__e(o,t)}r.base=r.__P=r.__n=null}if(r=e.__k)for(a=0;a<r.length;a++)r[a]&&Ie(r[a],t,n||typeof e.type!="function");n||ue(e.__e),e.__c=e.__=e.__e=void 0}function pt(e,t,n){return this.constructor(e,n)}function Re(e,t,n){var r,a,o,c;t==document&&(t=document.documentElement),v.__&&v.__(e,t),a=(r=!1)?null:t.__k,o=[],c=[],de(t,e=t.__k=ct(U,null,[e]),a||Q,Q,t.namespaceURI,a?null:t.firstChild?J.call(t.childNodes):null,o,a?a.__e:t.firstChild,r,c),Le(o,e,c),e.props.children=null}J=Z.slice,v={__e:function(e,t,n,r){for(var a,o,c;t=t.__;)if((a=t.__c)&&!a.__)try{if((o=a.constructor)&&o.getDerivedStateFromError!=null&&(a.setState(o.getDerivedStateFromError(e)),c=a.__d),a.componentDidCatch!=null&&(a.componentDidCatch(e,r||{}),c=a.__d),c)return a.__E=a}catch(l){e=l}throw e}},$e=0,ne.prototype.setState=function(e,t){var n;n=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=N({},this.state),typeof e=="function"&&(e=e(N({},n),this.props)),e&&N(n,e),e!=null&&this.__v&&(t&&this._sb.push(t),Ee(this))},ne.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Ee(this))},ne.prototype.render=U,D=[],ke=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Se=function(e,t){return e.__v.__b-t.__v.__b},oe.__r=0,ie=Math.random().toString(8),X="__d"+ie,B="__a"+ie,Ce=/(PointerCapture)$|Capture$/i,ce=0,le=Pe(!1),_e=Pe(!0);var ft=0;function g(e,t,n,r,a,o){t||(t={});var c,l,p=t;if("ref"in p)for(l in p={},t)l=="ref"?c=t[l]:p[l]=t[l];var i={type:e,props:p,key:n,ref:c,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--ft,__i:-1,__u:0,__source:a,__self:o};if(typeof e=="function"&&(c=e.defaultProps))for(l in c)p[l]===void 0&&(p[l]=c[l]);return v.vnode&&v.vnode(i),i}var Y,k,fe,Oe,se=0,ze=[],S=v,Ue=S.__b,Fe=S.__r,We=S.diffed,je=S.__c,qe=S.unmount,Be=S.__;function he(e,t){S.__h&&S.__h(k,e,se||t),se=0;var n=k.__H||(k.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function F(e){return se=1,ht(Ve,e)}function ht(e,t,n){var r=he(Y++,2);if(r.t=e,!r.__c&&(r.__=[Ve(void 0,t),function(l){var p=r.__N?r.__N[0]:r.__[0],i=r.t(p,l);p!==i&&(r.__N=[i,r.__[1]],r.__c.setState({}))}],r.__c=k,!k.__f)){var a=function(l,p,i){if(!r.__c.__H)return!0;var d=!1,b=r.__c.props!==l;if(r.__c.__H.__.some(function(_){if(_.__N){d=!0;var $=_.__[0];_.__=_.__N,_.__N=void 0,$!==_.__[0]&&(b=!0)}}),o){var s=o.call(this,l,p,i);return d?s||b:s}return!d||b};k.__f=!0;var o=k.shouldComponentUpdate,c=k.componentWillUpdate;k.componentWillUpdate=function(l,p,i){if(this.__e){var d=o;o=void 0,a(l,p,i),o=d}c&&c.call(this,l,p,i)},k.shouldComponentUpdate=a}return r.__N||r.__}function me(e,t){var n=he(Y++,3);!S.__s&&Ke(n.__H,t)&&(n.__=e,n.u=t,k.__H.__h.push(n))}function K(e){return se=5,mt(function(){return{current:e}},[])}function mt(e,t){var n=he(Y++,7);return Ke(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}function gt(){for(var e;e=ze.shift();){var t=e.__H;if(e.__P&&t)try{t.__h.some(ae),t.__h.some(ge),t.__h=[]}catch(n){t.__h=[],S.__e(n,e.__v)}}}S.__b=function(e){k=null,Ue&&Ue(e)},S.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),Be&&Be(e,t)},S.__r=function(e){Fe&&Fe(e),Y=0;var t=(k=e.__c).__H;t&&(fe===k?(t.__h=[],k.__h=[],t.__.some(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(t.__h.some(ae),t.__h.some(ge),t.__h=[],Y=0)),fe=k},S.diffed=function(e){We&&We(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(ze.push(t)!==1&&Oe===S.requestAnimationFrame||((Oe=S.requestAnimationFrame)||vt)(gt)),t.__H.__.some(function(n){n.u&&(n.__H=n.u,n.u=void 0)})),fe=k=null},S.__c=function(e,t){t.some(function(n){try{n.__h.some(ae),n.__h=n.__h.filter(function(r){return!r.__||ge(r)})}catch(r){t.some(function(a){a.__h&&(a.__h=[])}),t=[],S.__e(r,n.__v)}}),je&&je(e,t)},S.unmount=function(e){qe&&qe(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.some(function(r){try{ae(r)}catch(a){t=a}}),n.__H=void 0,t&&S.__e(t,n.__v))};var Ye=typeof requestAnimationFrame=="function";function vt(e){var t,n=function(){clearTimeout(r),Ye&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,35);Ye&&(t=requestAnimationFrame(n))}function ae(e){var t=k,n=e.__c;typeof n=="function"&&(e.__c=void 0,n()),k=t}function ge(e){var t=k;e.__c=e.__(),k=t}function Ke(e,t){return!e||e.length!==t.length||t.some(function(n,r){return n!==e[r]})}function Ve(e,t){return typeof t=="function"?t(e):t}const bt="Snagset",yt="Snagset",xt="Snag",$t="Snags",wt={anchor:"data-snag-anchor",ignore:"data-snag-ignore",mask:"data-snag-mask",nomask:"data-snag-nomask",src:"data-snag-src",component:"data-snag-component"},kt=e=>wt[e],f={font:"--snag-font",accent:"--snag-accent",onAccent:"--snag-onAccent",bg:"--snag-bg",fg:"--snag-fg",muted:"--snag-muted",border:"--snag-border",radius:"--snag-radius",shadow:"--snag-shadow",z:"--snag-z",motion:"--snag-motion",surface:"--snag-surface",sunken:"--snag-sunken",hover:"--snag-hover",focus:"--snag-focus",disabled:"--snag-disabled",statusOpen:"--snag-status-open",statusProgress:"--snag-status-progress",statusReview:"--snag-status-review",statusResolved:"--snag-status-resolved",anchorOrphan:"--snag-anchor-orphan",tbH:"--snag-tb-h",dockW:"--snag-dock-w",kb:"--snag-kb",thumbX:"--snag-thumb-x",thumbW:"--snag-thumb-w"},St=e=>`var(${f[e]})`,Ge="snag:disclosure:v1",Je="snag:identity",Ct="data-snag-theme";function Xe(){let e=null;try{e=localStorage.getItem(Je)}catch{return{}}if(!e)return{};if(e[0]!=="{")return{name:e};try{const t=JSON.parse(e);return t&&typeof t=="object"?t:{}}catch{return{}}}function Tt(e){try{localStorage.setItem(Je,JSON.stringify(e))}catch{}}function Et(){const e=Xe();return{name:typeof e.name=="string"?e.name:"",...e.email?{email:e.email}:{}}}function At(e){const t=Xe();Tt({...t,name:e.name,...e.email?{email:e.email}:{}})}function Ht(e){const t=window.visualViewport;if(!t)return;let n=0,r=0;const a=()=>{n=0;const l=Math.max(0,Math.round(window.innerHeight-t.height-t.offsetTop));e.style.setProperty(f.kb,`${l}px`)},o=()=>{n||(n=requestAnimationFrame(a))},c=()=>{clearTimeout(r),r=window.setTimeout(a,300)};return a(),t.addEventListener("resize",o),t.addEventListener("scroll",o),window.addEventListener("orientationchange",o),e.addEventListener("focusout",c),()=>{n&&cancelAnimationFrame(n),clearTimeout(r),t.removeEventListener("resize",o),t.removeEventListener("scroll",o),window.removeEventListener("orientationchange",o),e.removeEventListener("focusout",c)}}const Mt={product:bt,set:yt,item:xt,items:$t};function Pt(e){return(t,n)=>(e[t]??"").replace(/\{(\w+)\}/g,(r,a)=>{const o=n?.[a]??Mt[a];return o===void 0?r:String(o)})}const Nt=e=>new Intl.NumberFormat().format(e),Lt={"where.anchored":"{label}","where.approximate":"position approximate \u2014 the page changed","where.orphaned":"moved \u2014 the element is gone","status.open":"Active","status.progress":"In progress","status.review":"In review","status.resolved":"Resolved","author.unknown":"Someone","label.image":"an image","label.link":"a link","label.button":"a button","label.tag":"the {tag}"},Dt={open:{colour:"#4f6ef7"},progress:{colour:"#f59e0b"},review:{colour:"#8b5cf6"},resolved:{colour:"#10b981"}},u=Object.fromEntries(Object.keys(f).map(e=>[e,St(e)])),It=Object.entries(Dt).map(([e,t])=>` ${f[`status${e[0].toUpperCase()}${e.slice(1)}`]}:${t.colour};`).join(`
|
|
2
2
|
`);`${u.font}${u.fg}${f.font}${f.accent}${f.bg}${f.fg}${f.muted}${f.border}${f.radius}${f.shadow}${f.z}${f.motion}${f.surface}${u.fg}${u.bg}${f.sunken}${u.fg}${u.bg}${f.hover}${u.fg}${u.bg}${f.onAccent}${f.focus}${u.accent}${u.fg}${f.disabled}${u.muted}${u.bg}${It}${f.anchorOrphan}${Ct}${f.accent}${f.onAccent}${f.bg}${f.fg}${f.muted}${f.border}${f.shadow}${f.motion}${f.bg}${f.fg}${f.muted}${f.border}${f.accent}${f.onAccent}${f.surface}${f.sunken}${f.hover}${f.focus}${f.disabled}${f.shadow}${f.anchorOrphan}`;const Rt={composer:8},Qe=new WeakMap;function Ze(e,t,n){let r=Qe.get(e);if(r||Qe.set(e,r=new Set),r.has(t))return;r.add(t);try{const c=new CSSStyleSheet;c.replaceSync(n),e.adoptedStyleSheets=[...e.adoptedStyleSheets,c];return}catch{}const o=(e.ownerDocument??document).createElement("style");o.setAttribute(`data-snag-${t}`,""),o.textContent=n,e.appendChild(o)}const Ot=` .snag-input,.snag-text{width:100%;box-sizing:border-box;background:${u.surface};color:inherit;border:1px solid ${u.border};border-radius:${u.radius};padding:8px;font:inherit;resize:vertical}@media (pointer:coarse){.snag-input,.snag-text{font-size:16px}}.snag-input:focus,.snag-text:focus{outline:2px solid ${u.focus};outline-offset:1px;border-color:transparent}.snag-input--bad{border-color:${u.anchorOrphan}}.snag-note{margin:-2px 0 0;color:${u.anchorOrphan};font-size:11px;line-height:1.35}.snag-note.snag-dim{color:${u.muted}}.snag-actions{display:flex;justify-content:flex-end;gap:6px}.snag-actions button{appearance:none;border:0;border-radius:calc(${u.radius} - 1px);padding:7px 13px;font:inherit;cursor:pointer;min-height:32px;transition:background ${u.motion}}.snag-cancel{background:transparent;color:${u.muted}}.snag-armed{color:${u.anchorOrphan};font-weight:600}.snag-cancel:hover{background:${u.hover};color:inherit}.snag-send{background:${u.accent};color:${u.onAccent};font-weight:600}.snag-send:disabled{opacity:.45;cursor:not-allowed}.snag-actions button:focus-visible{outline:2px solid ${u.focus};outline-offset:2px}`;function zt(e,t,n){const[r,a]=F(!1);return me(()=>{if(!r)return;const o=setTimeout(()=>a(!1),3e3);return()=>clearTimeout(o)},[r]),{armed:r,press(){if(r||t&&!t()){a(!1),e();return}a(!0),n?.()}}}const Ut={"detail.details":"Anchor details","detail.hidden":"This element isn't visible right now \u2014 it may be inside a closed menu, tab, or accordion.","detail.orphaned":"The element this was pinned to has moved or gone \u2014 it was {label}.","detail.approximate":"The page changed since this was written, so the pin is close rather than exact \u2014 it points at {label}.","detail.unavailable":"Some of the matching steps couldn't load, so this was judged with the basic ones only.","detail.filedat":"Filed at {query}.","detail.openquery":"Open with original query","capture.agent":"{browser} \xB7 {os}","capture.agent.noos":"{browser}","capture.device":"{device} \xB7 {w}\xD7{h} @{dpr}x","capture.device.at1x":"{device} \xB7 {w}\xD7{h}"},Ft={"disclosure.title":"Before your first comment","disclosure.always":"Each comment carries the page address, viewport size and browser make.","disclosure.crumbs.on":"Recent console messages and network results ride along, recognisable secrets redacted first.","disclosure.crumbs.off":"Console and network capture is off here.","disclosure.screenshot.off":"Screenshots are off for this project.","disclosure.screenshot.on":"{product} never reads what you type. Screenshots are pictures of the page, so anything visible on screen is in the picture \u2014 mark sensitive regions with {maskAttr} and they are blurred before the screenshot leaves your browser.","disclosure.retention":"Everything stays in this browser until someone exports it \u2014 the privacy notes list what can still leak.","disclosure.retention.server":"Your comment, the page address and the details above are sent to {host} when you post \u2014 the privacy notes list what can still leak.","disclosure.ack":"Got it","composer.aria":"New comment","composer.parent":"Pin the parent","composer.child":"Pin the first child","composer.shot":"Add a screenshot","composer.name":"Your name","composer.email":"Email, so we can reply","composer.email.bad":"Check the address \u2014 or leave it blank.","composer.chars":"{n} characters left","composer.body":"Comment","composer.body.placeholder":"What's the {item}?","action.cancel":"Cancel","action.post":"Post comment","composer.discard.sure":"Sure? Discard this comment","action.discard":"Discard?"},Wt={...Lt,...Ut,...Ft},x=Pt(Wt),ve=1e4,jt=9e3,qt=e=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e.trim());let et=!1;function Bt(){if(et)return!0;try{return localStorage.getItem(Ge)==="1"}catch{return!1}}function Yt({at:e,label:t,onSend:n,onCancel:r,onRetarget:a,onShotOptIn:o,onDraft:c,initialBody:l,initialName:p,initialEmail:i,crumbsOn:d,quote:b,shotsOn:s,serverHost:_}){const $=Et(),[T,C]=F($.name||(p??"")),[y,m]=F($.email??i??""),[w,I]=F(l??""),M=K(null),L=K(null),z=K(null),[R]=F(!$.name),[A,H]=F(Bt),P=K(null),tt=()=>{et=!0;try{localStorage.setItem(Ge,"1")}catch{}H(!0)},W=window.matchMedia?.("(pointer: coarse)").matches??!1,nt=K(performance.now()).current;me(()=>{if(W)return;const h=z.current,E=h?.getBoundingClientRect();if(h&&E&&(E.bottom>innerHeight-8&&(h.style.top=`${Math.max(8,innerHeight-E.height-8)}px`),E.right>innerWidth-8&&(h.style.left=`${Math.max(8,innerWidth-E.width-8)}px`)),!A){P.current?.focus();return}(R?L:M).current?.focus()},[A]),me(()=>{const h=z.current;if(h)return Ht(h)},[]);const j=y.trim().length>0&&!qt(y),be=w.trim().length>0&&T.trim().length>0&&!j;function ye(){if(!be)return;const h={name:T.trim(),...y.trim()?{email:y.trim()}:{}};At(h),n(w.trim(),h.name,h.email)}const{armed:V,press:G}=zt(r,()=>w.trim().length>0,()=>M.current?.focus()),ot=h=>{I(h),c?.(h,T,y)},xe=300,rt=Math.min(Math.max(8,e.x+14),innerWidth-xe-8),st=Math.min(Math.max(8,e.y+14),innerHeight-198);return g(U,{children:[W&&g("div",{class:"snag-scrim","aria-hidden":"true",onClick:()=>{performance.now()-nt>400&&G()}}),g("div",{ref:z,class:"snag-composer",role:"dialog","aria-label":x("composer.aria"),style:{left:`${rt}px`,top:`${st}px`,width:`${xe}px`},onKeyDown:h=>{h.key==="Escape"&&(h.stopPropagation(),G()),h.key==="Enter"&&(h.metaKey||h.ctrlKey)&&(h.preventDefault(),ye())},children:[W&&g("div",{class:"snag-grab","aria-hidden":"true",onPointerDown:h=>{const E=h.clientY,q=h.currentTarget;try{q.setPointerCapture(h.pointerId)}catch{}q.onpointermove=at=>{at.clientY-E>56&&(q.onpointermove=null,G())},q.onpointerup=()=>q.onpointermove=null}}),g("div",{class:"snag-head",children:[W&&a&&A&&g("span",{class:"snag-step",children:[g("button",{type:"button","aria-label":x("composer.parent"),onClick:()=>a("up"),children:"\u25B2"}),g("button",{type:"button","aria-label":x("composer.child"),onClick:()=>a("down"),children:"\u25BC"})]}),g("p",{class:"snag-target",title:t,children:t}),g("button",{type:"button",class:`snag-dismiss${V?" snag-armed":""}`,"aria-label":x(V?"composer.discard.sure":"action.cancel"),title:x(V?"composer.discard.sure":"action.cancel"),onClick:G,children:V?x("action.discard"):"\u2715"})]}),!A&&g("div",{class:"snag-disclose",children:[g("p",{class:"snag-disclose-title",children:x("disclosure.title")}),g("p",{children:x("disclosure.always")}),g("p",{children:x(d?"disclosure.crumbs.on":"disclosure.crumbs.off")}),g("p",{children:s?x("disclosure.screenshot.on",{maskAttr:kt("mask")}):x("disclosure.screenshot.off")}),g("p",{children:_?x("disclosure.retention.server",{host:_}):x("disclosure.retention")}),g("div",{class:"snag-actions",children:g("button",{type:"button",ref:P,class:"snag-send snag-primary",onClick:tt,children:x("disclosure.ack")})})]}),A&&R&&g(U,{children:[g("input",{ref:L,class:"snag-input",type:"text",placeholder:x("composer.name"),"aria-label":x("composer.name"),value:T,onInput:h=>{const E=h.target.value;C(E),w.trim()&&c?.(w,E,y)}}),g("input",{class:`snag-input${j?" snag-input--bad":""}`,type:"email",inputMode:"email",autocomplete:"email",placeholder:x("composer.email"),"aria-label":x("composer.email"),"aria-invalid":j?"true":void 0,"aria-describedby":j?"snag-email-note":void 0,value:y,onInput:h=>{const E=h.target.value;m(E),w.trim()&&c?.(w,T,E)}}),j&&g("p",{class:"snag-note",id:"snag-email-note",children:x("composer.email.bad")})]}),A&&b&&g("blockquote",{class:"snag-quote",children:b}),A&&g("textarea",{ref:M,class:"snag-text",placeholder:x("composer.body.placeholder"),"aria-label":x("composer.body"),maxLength:ve,rows:3,enterkeyhint:"enter",value:w,onInput:h=>{const E=h.target;E.style.height="auto",E.style.height=`${Math.min(E.scrollHeight,128)}px`,ot(E.value)}}),A&&w.length>=jt&&g("p",{class:`snag-note${w.length>=ve?"":" snag-dim"}`,"aria-live":"polite",children:x("composer.chars",{n:Nt(ve-w.length)})}),A&&W&&o&&g("label",{class:"snag-shotopt",children:[g("input",{type:"checkbox",onChange:h=>o(h.currentTarget.checked)})," ",x("composer.shot")]}),A&&g("div",{class:"snag-actions",children:g("button",{type:"button",class:"snag-send snag-primary",disabled:!be,onClick:ye,children:x("action.post")})})]})]})}const Kt=` .snag-composer{position:fixed;box-sizing:border-box;z-index:${Rt.composer};background:${u.bg};color:${u.fg};border:1px solid ${u.border};border-radius:calc(${u.radius} + 4px);padding:12px;box-shadow:${u.shadow};pointer-events:auto;font:400 13px/1.45 ${u.font};display:flex;flex-direction:column;gap:8px}.snag-head{display:flex;align-items:center;gap:8px}.snag-target{margin:0;flex:1 1 auto;min-width:0;color:${u.muted};font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.snag-dismiss{flex:0 0 auto;appearance:none;border:0;background:transparent;color:${u.muted};font:inherit;font-size:12px;line-height:1;padding:6px;margin:-6px -4px -6px 0;border-radius:calc(${u.radius} - 2px);cursor:pointer}.snag-dismiss:hover{color:${u.fg};background:${u.hover}}.snag-dismiss:focus-visible{outline:2px solid ${u.focus};outline-offset:1px}.snag-dismiss.snag-armed{color:${u.anchorOrphan};font-weight:600;font-size:11px}.snag-disclose{display:flex;flex-direction:column;gap:6px}.snag-disclose p{margin:0;font-size:12px;line-height:1.5;color:${u.fg}}.snag-disclose .snag-disclose-title{font-weight:600;font-size:12px}.snag-disclose p:not(.snag-disclose-title){color:${u.muted}}.snag-quote{margin:0;padding:6px 10px;border-inline-start:3px solid ${u.accent};background:${u.surface};font-size:12px;color:${u.muted}}.snag-actions .snag-primary{flex:1 1 auto;justify-content:center;padding-block:10px;font-weight:600}@media (pointer:coarse){.snag-composer{left:0!important;right:0;top:auto!important;width:auto!important;inset-block-end:max(var(${f.tbH},68px),var(${f.kb},0px));border-radius:14px 14px 0 0;border-inline:0;border-block-end:0;padding:14px 16px calc(16px + env(safe-area-inset-bottom));gap:10px;box-shadow:0 -8px 32px rgb(0 0 0 / 28%)}.snag-composer .snag-primary{min-height:48px;font-size:15px}.snag-composer .snag-dismiss{padding:10px;margin:-10px -6px -10px 0;font-size:14px}.snag-composer .snag-text{min-height:88px}.snag-composer{overscroll-behavior:contain;padding-inline:calc(16px + env(safe-area-inset-left)) calc(16px + env(safe-area-inset-right))}.snag-scrim{position:fixed;inset:0;background:#0005;touch-action:none;pointer-events:auto}.snag-grab{margin:-14px 0 -8px;padding:12px 0;touch-action:none;pointer-events:auto;background:linear-gradient(${u.border} 0 0) 50%/36px 4px no-repeat}.snag-step{display:flex;gap:2px}.snag-step button{min-width:44px;min-height:44px;background:none;border:1px solid ${u.border};border-radius:8px;color:${u.fg}}.snag-shotopt{display:flex;align-items:center;gap:8px;min-height:44px}}@keyframes snag-pulse{50%{transform:scale(1.04)}}.snag-pulse{animation:snag-pulse 500ms ease-in-out}@media (prefers-reduced-motion:reduce){.snag-pulse{animation:none;outline:2px solid ${u.focus};outline-offset:3px}}`;function Vt(e,t,n){const r=e.ownerDocument??document;Ze(e,"form",Ot),Ze(e,"composer",Kt);const a=r.createElement("div");(n??e).appendChild(a);const o=()=>{Re(null,a),a.remove()},c=()=>a.querySelector(".snag-text"),l=()=>(c()?.value??"").trim().length>0,p=()=>{const i=a.firstElementChild;i&&(i.classList.remove("snag-pulse"),i.offsetWidth,i.classList.add("snag-pulse"),setTimeout(()=>i.classList.remove("snag-pulse"),600))};return Re(g(Yt,{...t,onSend:(i,d,b)=>{t.onSend(i,d,b),o()},onCancel:()=>{t.onCancel(),o()}}),a),{close:o,hasText:l,pulse:p,setLabel(i){const d=a.querySelector(".snag-target");d&&(d.textContent=i,d.title=i)}}}export{Vt as openComposer};
|