@snagset/server 0.1.37 → 0.1.39

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.
Files changed (68) hide show
  1. package/dist/routes/comments.js +5 -0
  2. package/dist/routes/comments.js.map +1 -1
  3. package/dist/routes/threads.js +104 -25
  4. package/dist/routes/threads.js.map +1 -1
  5. package/package.json +1 -1
  6. package/static/dashboard/assets/{CompositeItem-CJog0hVD.js → CompositeItem-Yi3wWYM7.js} +1 -1
  7. package/static/dashboard/assets/{ConfirmDialog-D2seMnrm.js → ConfirmDialog-D6hyhISD.js} +1 -1
  8. package/static/dashboard/assets/{CopyButton-Bc4lyikk.js → CopyButton-hyiQh1Zr.js} +1 -1
  9. package/static/dashboard/assets/{FieldItemContext-CzXi3fsx.js → FieldItemContext-Gb3Lo5Ci.js} +1 -1
  10. package/static/dashboard/assets/{InstallTag-SMFR2B0h.js → InstallTag-BRvgfS91.js} +1 -1
  11. package/static/dashboard/assets/{McpTokens-BXqxvFAS.js → McpTokens--C1TeZqq.js} +1 -1
  12. package/static/dashboard/assets/{SaveState-Cmf4iv03.js → SaveState-CmcJ4unZ.js} +1 -1
  13. package/static/dashboard/assets/{_app-DwywpWfz.js → _app-CBnYJfLp.js} +1 -1
  14. package/static/dashboard/assets/{_app-bdnugJ8u.js → _app-Dsd1bbNv.js} +1 -1
  15. package/static/dashboard/assets/{activity-qDQs5Zz8.js → activity-DG1e6z-2.js} +1 -1
  16. package/static/dashboard/assets/{arrow-left-CDK8KGdH.js → arrow-left-CWiSdgA-.js} +1 -1
  17. package/static/dashboard/assets/{avatar-BIbCnV-M.js → avatar-nrKPMD7A.js} +1 -1
  18. package/static/dashboard/assets/{badge-BD0L3Rdr.js → badge-DEvpNOzs.js} +1 -1
  19. package/static/dashboard/assets/{card-CCRzd-vJ.js → card--8RLEIGP.js} +1 -1
  20. package/static/dashboard/assets/{check-CvTMcsU6.js → check-XHwuM5zg.js} +1 -1
  21. package/static/dashboard/assets/{chevron-right-NPSJD-jD.js → chevron-right-CG2rSUns.js} +1 -1
  22. package/static/dashboard/assets/{copy-CwAe5Q6l.js → copy-eakuUTpI.js} +1 -1
  23. package/static/dashboard/assets/{dialog-CvU77XfW.js → dialog-D0b9dX2m.js} +1 -1
  24. package/static/dashboard/assets/{dropdown-menu-VHkK2Dt7.js → dropdown-menu-BMIst4Wj.js} +1 -1
  25. package/static/dashboard/assets/{image-off-wPLko91u.js → image-off-DZOyJVTM.js} +1 -1
  26. package/static/dashboard/assets/{index-B1JGVSdd.js → index-COORBw3J.js} +4 -4
  27. package/static/dashboard/assets/{invite-DWNnOuAZ.js → invite-Df7qdHBL.js} +1 -1
  28. package/static/dashboard/assets/{label-C6rZlF0y.js → label-Ds2CYKth.js} +1 -1
  29. package/static/dashboard/assets/{labels-DhKmOzOU.js → labels-CUVq_Uf0.js} +1 -1
  30. package/static/dashboard/assets/{layout-grid-CPYmheoR.js → layout-grid-BXWirugp.js} +1 -1
  31. package/static/dashboard/assets/{parts-sBoh2K5o.js → parts-B46j7QJi.js} +1 -1
  32. package/static/dashboard/assets/{plus-B7K-9XU0.js → plus-yZPLf0r6.js} +1 -1
  33. package/static/dashboard/assets/s._site-BQiiE9w4.js +1 -0
  34. package/static/dashboard/assets/s._site.comments-CQYkPWo4.js +54 -0
  35. package/static/dashboard/assets/{s._site.reviewers-yBn4jjwr.js → s._site.reviewers-BCQWB5GA.js} +1 -1
  36. package/static/dashboard/assets/{s._site.settings-CsiWJZ8D.js → s._site.settings-D9Qix9dj.js} +1 -1
  37. package/static/dashboard/assets/{setup-DrjzRZp8.js → setup-CefvYWGy.js} +1 -1
  38. package/static/dashboard/assets/{sign-in-BsM2n_hk.js → sign-in-Q4AWMmvk.js} +1 -1
  39. package/static/dashboard/assets/{sign-up-BXcvVUC-.js → sign-up-nsUll0Gy.js} +1 -1
  40. package/static/dashboard/assets/{sites-DRTZAXN_.js → sites-BKsg9Pla.js} +1 -1
  41. package/static/dashboard/assets/{studio-DdM6OVdO.js → studio-CSGo60dt.js} +1 -1
  42. package/static/dashboard/assets/studio-ytRb_WCk.js +1 -0
  43. package/static/dashboard/assets/{studio.index-BOXLD6ah.js → studio.index-Cul4Sj15.js} +1 -1
  44. package/static/dashboard/assets/{studio.integrations-B7XK6X3K.js → studio.integrations-CC61jGXL.js} +1 -1
  45. package/static/dashboard/assets/{studio.members-DSJEjb1M.js → studio.members-DEM1MjLy.js} +1 -1
  46. package/static/dashboard/assets/{sun-DojiLt7X.js → sun-Djjj3CUF.js} +1 -1
  47. package/static/dashboard/assets/{switch-SJYZN0-3.js → switch-WMRF6OK1.js} +1 -1
  48. package/static/dashboard/assets/{table-BDQkr8bT.js → table-CgakQRAC.js} +1 -1
  49. package/static/dashboard/assets/{useAriaLabelledBy-BDqDB_Wq.js → useAriaLabelledBy-obWCIEg1.js} +1 -1
  50. package/static/dashboard/assets/{useBaseQuery-DXKWEN1Y.js → useBaseQuery-DG87f6yY.js} +1 -1
  51. package/static/dashboard/assets/useQuery-DT3w11tR.js +1 -0
  52. package/static/dashboard/assets/useRender-Bu6Vyu1g.js +1 -0
  53. package/static/dashboard/assets/{useValueChanged-B9j_H2Sq.js → useValueChanged-CHzVruZ0.js} +1 -1
  54. package/static/dashboard/assets/{users-jrxD0Qlm.js → users-BvfczmcS.js} +1 -1
  55. package/static/dashboard/assets/{welcome-BGT16RMO.js → welcome-D5mKF-J3.js} +1 -1
  56. package/static/dashboard/assets/{widget-signin-A_kxUEvx.js → widget-signin-BmCBYJgF.js} +1 -1
  57. package/static/dashboard/assets/{you-CdfLrYaC.js → you-Dsp9kUVS.js} +1 -1
  58. package/static/dashboard/assets/{zod-C7-R6TNW.js → zod-D7wsVto4.js} +1 -1
  59. package/static/dashboard/index.html +1 -1
  60. package/static/widget/build.json +2 -2
  61. package/static/widget/snag.dock.js +3 -3
  62. package/static/widget/snag.js +1 -1
  63. package/static/widget/snag.runtime.js +1 -1
  64. package/static/dashboard/assets/s._site-DKfVuunu.js +0 -1
  65. package/static/dashboard/assets/s._site.comments-DqDBqjhy.js +0 -54
  66. package/static/dashboard/assets/studio-CEwWJLvF.js +0 -1
  67. package/static/dashboard/assets/useQuery-BCK_zdLj.js +0 -1
  68. package/static/dashboard/assets/useRender-hAtJO9As.js +0 -1
@@ -1,4 +1,4 @@
1
1
  {
2
- "version": "0.1.37",
3
- "cv": "0.1.37+5397de"
2
+ "version": "0.1.39",
3
+ "cv": "0.1.39+de7f06"
4
4
  }
@@ -1,5 +1,5 @@
1
- var te,M,Ke,K,qe,We,Ye,we,oe,V,Ge,$e,Se,Ce,ae={},re=[],Hn=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,se=Array.isArray;function F(e,n){for(var t in n)e[t]=n[t];return e}function Ee(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function L(e,n,t){var o,s,r,l={};for(r in n)r=="key"?o=n[r]:r=="ref"?s=n[r]:l[r]=n[r];if(arguments.length>2&&(l.children=arguments.length>3?te.call(arguments,2):t),typeof e=="function"&&e.defaultProps!=null)for(r in e.defaultProps)l[r]===void 0&&(l[r]=e.defaultProps[r]);return ie(e,l,o,s,null)}function ie(e,n,t,o,s){var r={type:e,props:n,key:t,ref:o,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:s??++Ke,__i:-1,__u:0};return s==null&&M.vnode!=null&&M.vnode(r),r}function I(e){return e.children}function le(e,n){this.props=e,this.context=n}function W(e,n){if(n==null)return e.__?W(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"?W(e):null}function Fn(e){if(e.__P&&e.__d){var n=e.__v,t=n.__e,o=[],s=[],r=F({},n);r.__v=n.__v+1,M.vnode&&M.vnode(r),Me(e.__P,r,n,e.__n,e.__P.namespaceURI,32&n.__u?[t]:null,o,t??W(n),!!(32&n.__u),s),r.__v=n.__v,r.__.__k[r.__i]=r,tn(o,r,s),n.__e=n.__=null,r.__e!=t&&Ve(r)}}function Ve(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}),Ve(e)}function Je(e){(!e.__d&&(e.__d=!0)&&K.push(e)&&!de.__r++||qe!=M.debounceRendering)&&((qe=M.debounceRendering)||We)(de)}function de(){try{for(var e,n=1;K.length;)K.length>n&&K.sort(Ye),e=K.shift(),n=K.length,Fn(e)}finally{K.length=de.__r=0}}function Qe(e,n,t,o,s,r,l,d,h,u,g){var y,c,m,b,k,S,C=o&&o.__k||re,w=n.length;for(h=Bn(t,n,C,h,w),y=0;y<w;y++)(m=t.__k[y])!=null&&(c=m.__i!=-1&&C[m.__i]||ae,m.__i=y,S=Me(e,m,c,s,r,l,d,h,u,g),b=m.__e,m.ref&&c.ref!=m.ref&&(c.ref&&Te(c.ref,null,m),g.push(m.ref,m.__c||b,m)),k==null&&b!=null&&(k=b),4&m.__u?(h=Xe(m,h,e),c.__e&&(c.__e=null)):typeof m.type=="function"&&S!==void 0?h=S:b&&(h=b.nextSibling),m.__u&=-7);return t.__e=k,h}function Bn(e,n,t,o,s){var r,l,d,h,u,g=t.length,y=g,c=0;for(e.__k=new Array(s),r=0;r<s;r++)(l=n[r])!=null&&typeof l!="boolean"&&typeof l!="function"?(typeof l=="string"||typeof l=="number"||typeof l=="bigint"||l.constructor==String?l=e.__k[r]=ie(null,l,null,null,null):se(l)?l=e.__k[r]=ie(I,{children:l},null,null,null):l.constructor===void 0&&l.__b>0?l=e.__k[r]=ie(l.type,l.props,l.key,l.ref?l.ref:null,l.__v):e.__k[r]=l,h=r+c,l.__=e,l.__b=e.__b+1,d=null,(u=l.__i=Kn(l,t,h,y))!=-1&&(y--,(d=t[u])&&(d.__u|=2)),d==null||d.__v==null?(u==-1&&(s>g?c--:s<g&&c++),typeof l.type!="function"&&(l.__u|=4)):u!=h&&(u==h-1?c--:u==h+1?c++:(u>h?c--:c++,l.__u|=4))):e.__k[r]=null;if(y)for(r=0;r<g;r++)(d=t[r])!=null&&(2&d.__u)==0&&(d.__e==o&&(o=W(d)),an(d,d));return o}function Xe(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=Xe(o[s],n,t));return n}e.__e!=n&&(n&&e.type&&!n.parentNode&&(n=W(e)),n=t.insertBefore(e.__e,n||null));do n=n&&n.nextSibling;while(n!=null&&n.nodeType==8);return n}function Kn(e,n,t,o){var s,r,l,d=e.key,h=e.type,u=n[t],g=u!=null&&(2&u.__u)==0;if(u===null&&d==null||g&&d==u.key&&h==u.type)return t;if(o>(g?1:0)){for(s=t-1,r=t+1;s>=0||r<n.length;)if((u=n[l=s>=0?s--:r++])!=null&&(2&u.__u)==0&&d==u.key&&h==u.type)return l}return-1}function Ze(e,n,t){n[0]=="-"?e.setProperty(n,t??""):e[n]=t==null?"":typeof t!="number"||Hn.test(n)?t:t+"px"}function ce(e,n,t,o,s){var r,l;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||Ze(e.style,n,"");if(t)for(n in t)o&&t[n]==o[n]||Ze(e.style,n,t[n])}else if(n[0]=="o"&&n[1]=="n")r=n!=(n=n.replace(Ge,"$1")),l=n.toLowerCase(),n=l in e||n=="onFocusOut"||n=="onFocusIn"?l.slice(2):n.slice(2),e.l||(e.l={}),e.l[n+r]=t,t?o?t[V]=o[V]:(t[V]=$e,e.addEventListener(n,r?Ce:Se,r)):e.removeEventListener(n,r?Ce:Se,r);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 en(e){return function(n){if(this.l){var t=this.l[n.type+e];if(n[oe]==null)n[oe]=$e++;else if(n[oe]<t[V])return;return t(M.event?M.event(n):n)}}}function Me(e,n,t,o,s,r,l,d,h,u){var g,y,c,m,b,k,S,C,w,f,E,T,D,N,v,$,R=n.type;if(n.constructor!==void 0)return null;128&t.__u&&(h=!!(32&t.__u),r=[d=n.__e=t.__e]),(g=M.__b)&&g(n);e:if(typeof R=="function"){y=l.length;try{if(w=n.props,f=R.prototype&&R.prototype.render,E=(g=R.contextType)&&o[g.__c],T=g?E?E.props.value:g.__:o,t.__c?C=(c=n.__c=t.__c).__=c.__E:(f?n.__c=c=new R(w,T):(n.__c=c=new le(w,T),c.constructor=R,c.render=Wn),E&&E.sub(c),c.state||(c.state={}),c.__n=o,m=c.__d=!0,c.__h=[],c._sb=[]),f&&c.__s==null&&(c.__s=c.state),f&&R.getDerivedStateFromProps!=null&&(c.__s==c.state&&(c.__s=F({},c.__s)),F(c.__s,R.getDerivedStateFromProps(w,c.__s))),b=c.props,k=c.state,c.__v=n,m)f&&R.getDerivedStateFromProps==null&&c.componentWillMount!=null&&c.componentWillMount(),f&&c.componentDidMount!=null&&c.__h.push(c.componentDidMount);else{if(f&&R.getDerivedStateFromProps==null&&w!==b&&c.componentWillReceiveProps!=null&&c.componentWillReceiveProps(w,T),n.__v==t.__v||!c.__e&&c.shouldComponentUpdate!=null&&c.shouldComponentUpdate(w,c.__s,T)===!1){n.__v!=t.__v&&(c.props=w,c.state=c.__s,c.__d=!1),n.__e=t.__e,n.__k=t.__k,n.__k.some(function(B){B&&(B.__=n)}),re.push.apply(c.__h,c._sb),c._sb=[],c.__h.length&&l.push(c),d=W(t);break e}c.componentWillUpdate!=null&&c.componentWillUpdate(w,c.__s,T),f&&c.componentDidUpdate!=null&&c.__h.push(function(){c.componentDidUpdate(b,k,S)})}if(c.context=T,c.props=w,c.__P=e,c.__e=!1,D=M.__r,N=0,f)c.state=c.__s,c.__d=!1,D&&D(n),g=c.render(c.props,c.state,c.context),re.push.apply(c.__h,c._sb),c._sb=[];else do c.__d=!1,D&&D(n),g=c.render(c.props,c.state,c.context),c.state=c.__s;while(c.__d&&++N<25);c.state=c.__s,c.getChildContext!=null&&(o=F(F({},o),c.getChildContext())),f&&!m&&c.getSnapshotBeforeUpdate!=null&&(S=c.getSnapshotBeforeUpdate(b,k)),v=g!=null&&g.type===I&&g.key==null?on(g.props.children):g,d=Qe(e,se(v)?v:[v],n,t,o,s,r,l,d,h,u),c.base=n.__e,n.__u&=-161,c.__h.length&&l.push(c),C&&(c.__E=c.__=null)}catch(B){if(l.length=y,n.__v=null,h||r!=null){if(B.then){for(n.__u|=h?160:128;d&&d.nodeType==8&&d.nextSibling;)d=d.nextSibling;r!=null&&(r[r.indexOf(d)]=null),n.__e=d}else if(r!=null)for($=r.length;$--;)Ee(r[$])}else n.__e=t.__e;n.__k==null&&(n.__k=t.__k||[]),B.then||nn(n),M.__e(B,n,t)}}else r==null&&n.__v==t.__v?(n.__k=t.__k,n.__e=t.__e):d=n.__e=qn(t.__e,n,t,o,s,r,l,h,u);return(g=M.diffed)&&g(n),128&n.__u?void 0:d}function nn(e){e&&(e.__c&&(e.__c.__e=!0),e.__k&&e.__k.some(nn))}function tn(e,n,t){for(var o=0;o<t.length;o++)Te(t[o],t[++o],t[++o]);M.__c&&M.__c(n,e),e.some(function(s){try{e=s.__h,s.__h=[],e.some(function(r){r.call(s)})}catch(r){M.__e(r,s.__v)}})}function on(e){return typeof e!="object"||e==null||e.__b>0?e:se(e)?e.map(on):e.constructor!==void 0?null:F({},e)}function qn(e,n,t,o,s,r,l,d,h){var u,g,y,c,m,b,k,S=t.props||ae,C=n.props,w=n.type;if(w=="svg"?s="http://www.w3.org/2000/svg":w=="math"?s="http://www.w3.org/1998/Math/MathML":s||(s="http://www.w3.org/1999/xhtml"),r!=null){for(u=0;u<r.length;u++)if((m=r[u])&&"setAttribute"in m==!!w&&(w?m.localName==w:m.nodeType==3)){e=m,r[u]=null;break}}if(e==null){if(w==null)return document.createTextNode(C);e=document.createElementNS(s,w,C.is&&C),d&&(M.__m&&M.__m(n,r),d=!1),r=null}if(w==null)S===C||d&&e.data==C||(e.data=C);else{if(r=w=="textarea"&&C.defaultValue!=null?null:r&&te.call(e.childNodes),!d&&r!=null)for(S={},u=0;u<e.attributes.length;u++)S[(m=e.attributes[u]).name]=m.value;for(u in S)m=S[u],u=="dangerouslySetInnerHTML"?y=m:u=="children"||u in C||u=="value"&&"defaultValue"in C||u=="checked"&&"defaultChecked"in C||ce(e,u,null,m,s);for(u in C)m=C[u],u=="children"?c=m:u=="dangerouslySetInnerHTML"?g=m:u=="value"?b=m:u=="checked"?k=m:d&&typeof m!="function"||S[u]===m||ce(e,u,m,S[u],s);if(g)d||y&&(g.__html==y.__html||g.__html==e.innerHTML)||(e.innerHTML=g.__html),n.__k=[];else if(y&&(e.innerHTML=""),Qe(n.type=="template"?e.content:e,se(c)?c:[c],n,t,o,w=="foreignObject"?"http://www.w3.org/1999/xhtml":s,r,l,r?r[0]:t.__k&&W(t,0),d,h),r!=null)for(u=r.length;u--;)Ee(r[u]);d&&w!="textarea"||(u="value",w=="progress"&&b==null?e.removeAttribute("value"):b!=null&&(b!==e[u]||w=="progress"&&!b||w=="option"&&b!=S[u])&&ce(e,u,b,S[u],s),u="checked",k!=null&&k!=e[u]&&ce(e,u,k,S[u],s))}return e}function Te(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){M.__e(s,t)}}function an(e,n,t){var o,s;if(M.unmount&&M.unmount(e),(o=e.ref)&&(o.current&&o.current!=e.__e||Te(o,null,n)),(o=e.__c)!=null){if(o.componentWillUnmount)try{o.componentWillUnmount()}catch(r){M.__e(r,n)}o.base=o.__P=o.__n=null}if(o=e.__k)for(s=0;s<o.length;s++)o[s]&&an(o[s],n,t||typeof e.type!="function");t||Ee(e.__e),e.__c=e.__=e.__e=void 0}function Wn(e,n,t){return this.constructor(e,t)}function rn(e,n,t){var o,s,r,l;n==document&&(n=document.documentElement),M.__&&M.__(e,n),s=(o=!1)?null:n.__k,r=[],l=[],Me(n,e=n.__k=L(I,null,[e]),s||ae,ae,n.namespaceURI,s?null:n.firstChild?te.call(n.childNodes):null,r,s?s.__e:n.firstChild,o,l),tn(r,e,l),e.props.children=null}te=re.slice,M={__e:function(e,n,t,o){for(var s,r,l;n=n.__;)if((s=n.__c)&&!s.__)try{if((r=s.constructor)&&r.getDerivedStateFromError!=null&&(s.setState(r.getDerivedStateFromError(e)),l=s.__d),s.componentDidCatch!=null&&(s.componentDidCatch(e,o||{}),l=s.__d),l)return s.__E=s}catch(d){e=d}throw e}},Ke=0,le.prototype.setState=function(e,n){var t;t=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=F({},this.state),typeof e=="function"&&(e=e(F({},t),this.props)),e&&F(t,e),e!=null&&this.__v&&(n&&this._sb.push(n),Je(this))},le.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Je(this))},le.prototype.render=I,K=[],We=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Ye=function(e,n){return e.__v.__b-n.__v.__b},de.__r=0,we=Math.random().toString(8),oe="__d"+we,V="__a"+we,Ge=/(PointerCapture)$|Capture$/i,$e=0,Se=en(!1),Ce=en(!0);var Yn=0;function a(e,n,t,o,s,r){n||(n={});var l,d,h=n;if("ref"in h)for(d in h={},n)d=="ref"?l=n[d]:h[d]=n[d];var u={type:e,props:h,key:t,ref:l,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--Yn,__i:-1,__u:0,__source:s,__self:r};if(typeof e=="function"&&(l=e.defaultProps))for(d in l)h[d]===void 0&&(h[d]=l[d]);return M.vnode&&M.vnode(u),u}const Gn="Snagset",Vn="snagset",Jn="snagset:",Qn="Snagset",Xn="Snag",Zn="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"},et=e=>`var(${x[e]})`,nt=e=>"snag_"+e,sn={query:["snag_t","snag_off","snag_debug","snag_theme"],fragment:["snag_k"]},ln="snag:identity",tt="data-snag-theme";var J,A,Re,dn,ue=0,cn=[],P=M,un=P.__b,pn=P.__r,gn=P.diffed,hn=P.__c,fn=P.unmount,mn=P.__;function De(e,n){P.__h&&P.__h(A,e,ue||n),ue=0;var t=A.__H||(A.__H={__:[],__h:[]});return e>=t.__.length&&t.__.push({}),t.__[e]}function O(e){return ue=1,ot(bn,e)}function ot(e,n,t){var o=De(J++,2);if(o.t=e,!o.__c&&(o.__=[bn(void 0,n),function(d){var h=o.__N?o.__N[0]:o.__[0],u=o.t(h,d);h!==u&&(o.__N=[u,o.__[1]],o.__c.setState({}))}],o.__c=A,!A.__f)){var s=function(d,h,u){if(!o.__c.__H)return!0;var g=!1,y=o.__c.props!==d;if(o.__c.__H.__.some(function(m){if(m.__N){g=!0;var b=m.__[0];m.__=m.__N,m.__N=void 0,b!==m.__[0]&&(y=!0)}}),r){var c=r.call(this,d,h,u);return g?c||y:c}return!g||y};A.__f=!0;var r=A.shouldComponentUpdate,l=A.componentWillUpdate;A.componentWillUpdate=function(d,h,u){if(this.__e){var g=r;r=void 0,s(d,h,u),r=g}l&&l.call(this,d,h,u)},A.shouldComponentUpdate=s}return o.__N||o.__}function U(e,n){var t=De(J++,3);!P.__s&&kn(t.__H,n)&&(t.__=e,t.u=n,A.__H.__h.push(t))}function j(e){return ue=5,at(function(){return{current:e}},[])}function at(e,n){var t=De(J++,7);return kn(t.__H,n)&&(t.__=e(),t.__H=n,t.__h=e),t.__}function rt(){for(var e;e=cn.shift();){var n=e.__H;if(e.__P&&n)try{n.__h.some(pe),n.__h.some(Ae),n.__h=[]}catch(t){n.__h=[],P.__e(t,e.__v)}}}P.__b=function(e){A=null,un&&un(e)},P.__=function(e,n){e&&n.__k&&n.__k.__m&&(e.__m=n.__k.__m),mn&&mn(e,n)},P.__r=function(e){pn&&pn(e),J=0;var n=(A=e.__c).__H;n&&(Re===A?(n.__h=[],A.__h=[],n.__.some(function(t){t.__N&&(t.__=t.__N),t.u=t.__N=void 0})):(n.__h.some(pe),n.__h.some(Ae),n.__h=[],J=0)),Re=A},P.diffed=function(e){gn&&gn(e);var n=e.__c;n&&n.__H&&(n.__H.__h.length&&(cn.push(n)!==1&&dn===P.requestAnimationFrame||((dn=P.requestAnimationFrame)||st)(rt)),n.__H.__.some(function(t){t.u&&(t.__H=t.u,t.u=void 0)})),Re=A=null},P.__c=function(e,n){n.some(function(t){try{t.__h.some(pe),t.__h=t.__h.filter(function(o){return!o.__||Ae(o)})}catch(o){n.some(function(s){s.__h&&(s.__h=[])}),n=[],P.__e(o,t.__v)}}),hn&&hn(e,n)},P.unmount=function(e){fn&&fn(e);var n,t=e.__c;t&&t.__H&&(t.__H.__.some(function(o){try{pe(o)}catch(s){n=s}}),t.__H=void 0,n&&P.__e(n,t.__v))};var _n=typeof requestAnimationFrame=="function";function st(e){var n,t=function(){clearTimeout(o),_n&&cancelAnimationFrame(n),setTimeout(e)},o=setTimeout(t,35);_n&&(n=requestAnimationFrame(t))}function pe(e){var n=A,t=e.__c;typeof t=="function"&&(e.__c=void 0,t()),A=n}function Ae(e){var n=A;e.__c=e.__(),A=n}function kn(e,n){return!e||e.length!==n.length||n.some(function(t,o){return t!==e[o]})}function bn(e,n){return typeof n=="function"?n(e):n}const it={product:Gn,set:Qn,item:Xn,items:Zn};function xn(e){return(n,t)=>(e[n]??"").replace(/\{(\w+)\}/g,(o,s)=>{const r=t?.[s]??it[s];return r===void 0?o:String(r)})}const z=e=>new Intl.NumberFormat().format(e),vn={"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}"},lt=xn(vn),ge={open:{colour:"#4f6ef7"},progress:{colour:"#f59e0b"},review:{colour:"#8b5cf6"},resolved:{colour:"#10b981"}},he=e=>ge[e]?.colour??"#8a8f98",yn=e=>e==="open"||e==="review"?"#fff":"#16161a",fe=e=>e in ge?lt(`status.${e}`):e,i=Object.fromEntries(Object.keys(x).map(e=>[e,et(e)])),dt=Object.entries(ge).map(([e,n])=>` ${x[`status${e[0].toUpperCase()}${e.slice(1)}`]}:${n.colour};`).join(`
2
- `);`${i.font}${i.fg}${x.font}${x.accent}${x.bg}${x.fg}${x.muted}${x.border}${x.radius}${x.shadow}${x.z}${x.motion}${x.surface}${i.fg}${i.bg}${x.sunken}${i.fg}${i.bg}${x.hover}${i.fg}${i.bg}${x.onAccent}${x.focus}${i.accent}${i.fg}${x.disabled}${i.muted}${i.bg}${dt}${x.anchorOrphan}${tt}${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 ct={dock:5},wn=new WeakMap;function $n(e,n,t){let o=wn.get(e);if(o||wn.set(e,o=new Set),o.has(n))return;o.add(n);try{const l=new CSSStyleSheet;l.replaceSync(t),e.adoptedStyleSheets=[...e.adoptedStyleSheets,l];return}catch{}const r=(e.ownerDocument??document).createElement("style");r.setAttribute(`data-snag-${n}`,""),r.textContent=t,e.appendChild(r)}const ut=` .snag-input,.snag-text{width:100%;box-sizing:border-box;background:${i.surface};color:inherit;border:1px solid ${i.border};border-radius:${i.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 ${i.focus};outline-offset:1px;border-color:transparent}.snag-input--bad{border-color:${i.anchorOrphan}}.snag-note{margin:-2px 0 0;color:${i.anchorOrphan};font-size:11px;line-height:1.35}.snag-note.snag-dim{color:${i.muted}}.snag-actions{display:flex;justify-content:flex-end;gap:6px}.snag-actions button{appearance:none;border:0;border-radius:calc(${i.radius} - 1px);padding:7px 13px;font:inherit;cursor:pointer;min-height:32px;transition:background ${i.motion}}.snag-cancel{background:transparent;color:${i.muted}}.snag-armed{color:${i.anchorOrphan};font-weight:600}.snag-cancel:hover{background:${i.hover};color:inherit}.snag-send{background:${i.accent};color:${i.onAccent};font-weight:600}.snag-send:disabled{opacity:.45;cursor:not-allowed}.snag-actions button:focus-visible{outline:2px solid ${i.focus};outline-offset:2px}`;function pt(e,n,t){const[o,s]=O(!1);return U(()=>{if(!o)return;const r=setTimeout(()=>s(!1),3e3);return()=>clearTimeout(r)},[o]),{armed:o,press(){if(o||n){s(!1),e();return}s(!0)}}}function gt(e){const n=window.visualViewport;if(!n)return;let t=0,o=0;const s=()=>{t=0;const d=Math.max(0,Math.round(window.innerHeight-n.height-n.offsetTop));e.style.setProperty(x.kb,`${d}px`)},r=()=>{t||(t=requestAnimationFrame(s))},l=()=>{clearTimeout(o),o=window.setTimeout(s,300)};return s(),n.addEventListener("resize",r),n.addEventListener("scroll",r),window.addEventListener("orientationchange",r),e.addEventListener("focusout",l),()=>{t&&cancelAnimationFrame(t),clearTimeout(o),n.removeEventListener("resize",r),n.removeEventListener("scroll",r),window.removeEventListener("orientationchange",r),e.removeEventListener("focusout",l)}}const ht="noreferrer nofollow";function ft(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 mt=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("|")),_t=4;function me(e,n=0,t=0){const o=[];let s=e,r=n;if(t>=_t)return e?[e]:[];for(;;){const l=mt.exec(s);if(!l)return s&&o.push(s),o;l.index>0&&o.push(s.slice(0,l.index));const d=`i${r++}`,h=l.groups,u=h.bold??h.boldU,g=h.em??h.emU;if(u!==void 0)o.push(L("strong",{key:d},me(u,r,t+1)));else if(g!==void 0)o.push(L("em",{key:d},me(g,r,t+1)));else if(h.code!==void 0)o.push(L("code",{key:d},h.code));else{const y=ft(h.href??"");o.push(y?L("a",{key:d,href:y,target:"_blank",rel:ht},h.label??""):l[0])}s=s.slice(l.index+l[0].length)}}const Pe=/^```[^\n]*$/,Ne=/^[-*]\s+(.*)$/,Oe=/^\d{1,9}[.)]\s+(.*)$/;function Sn(e){const n=e.split(`
1
+ var te,M,qe,K,We,Ye,Ge,we,oe,V,Ve,$e,Se,Ce,ae={},re=[],Fn=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,se=Array.isArray;function F(e,n){for(var t in n)e[t]=n[t];return e}function Ee(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function L(e,n,t){var o,s,r,l={};for(r in n)r=="key"?o=n[r]:r=="ref"?s=n[r]:l[r]=n[r];if(arguments.length>2&&(l.children=arguments.length>3?te.call(arguments,2):t),typeof e=="function"&&e.defaultProps!=null)for(r in e.defaultProps)l[r]===void 0&&(l[r]=e.defaultProps[r]);return ie(e,l,o,s,null)}function ie(e,n,t,o,s){var r={type:e,props:n,key:t,ref:o,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:s??++qe,__i:-1,__u:0};return s==null&&M.vnode!=null&&M.vnode(r),r}function I(e){return e.children}function le(e,n){this.props=e,this.context=n}function W(e,n){if(n==null)return e.__?W(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"?W(e):null}function Bn(e){if(e.__P&&e.__d){var n=e.__v,t=n.__e,o=[],s=[],r=F({},n);r.__v=n.__v+1,M.vnode&&M.vnode(r),Me(e.__P,r,n,e.__n,e.__P.namespaceURI,32&n.__u?[t]:null,o,t??W(n),!!(32&n.__u),s),r.__v=n.__v,r.__.__k[r.__i]=r,on(o,r,s),n.__e=n.__=null,r.__e!=t&&Je(r)}}function Je(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}),Je(e)}function Qe(e){(!e.__d&&(e.__d=!0)&&K.push(e)&&!de.__r++||We!=M.debounceRendering)&&((We=M.debounceRendering)||Ye)(de)}function de(){try{for(var e,n=1;K.length;)K.length>n&&K.sort(Ge),e=K.shift(),n=K.length,Bn(e)}finally{K.length=de.__r=0}}function Xe(e,n,t,o,s,r,l,d,h,u,g){var y,c,m,b,k,S,C=o&&o.__k||re,w=n.length;for(h=Kn(t,n,C,h,w),y=0;y<w;y++)(m=t.__k[y])!=null&&(c=m.__i!=-1&&C[m.__i]||ae,m.__i=y,S=Me(e,m,c,s,r,l,d,h,u,g),b=m.__e,m.ref&&c.ref!=m.ref&&(c.ref&&Te(c.ref,null,m),g.push(m.ref,m.__c||b,m)),k==null&&b!=null&&(k=b),4&m.__u?(h=Ze(m,h,e),c.__e&&(c.__e=null)):typeof m.type=="function"&&S!==void 0?h=S:b&&(h=b.nextSibling),m.__u&=-7);return t.__e=k,h}function Kn(e,n,t,o,s){var r,l,d,h,u,g=t.length,y=g,c=0;for(e.__k=new Array(s),r=0;r<s;r++)(l=n[r])!=null&&typeof l!="boolean"&&typeof l!="function"?(typeof l=="string"||typeof l=="number"||typeof l=="bigint"||l.constructor==String?l=e.__k[r]=ie(null,l,null,null,null):se(l)?l=e.__k[r]=ie(I,{children:l},null,null,null):l.constructor===void 0&&l.__b>0?l=e.__k[r]=ie(l.type,l.props,l.key,l.ref?l.ref:null,l.__v):e.__k[r]=l,h=r+c,l.__=e,l.__b=e.__b+1,d=null,(u=l.__i=qn(l,t,h,y))!=-1&&(y--,(d=t[u])&&(d.__u|=2)),d==null||d.__v==null?(u==-1&&(s>g?c--:s<g&&c++),typeof l.type!="function"&&(l.__u|=4)):u!=h&&(u==h-1?c--:u==h+1?c++:(u>h?c--:c++,l.__u|=4))):e.__k[r]=null;if(y)for(r=0;r<g;r++)(d=t[r])!=null&&(2&d.__u)==0&&(d.__e==o&&(o=W(d)),rn(d,d));return o}function Ze(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=Ze(o[s],n,t));return n}e.__e!=n&&(n&&e.type&&!n.parentNode&&(n=W(e)),n=t.insertBefore(e.__e,n||null));do n=n&&n.nextSibling;while(n!=null&&n.nodeType==8);return n}function qn(e,n,t,o){var s,r,l,d=e.key,h=e.type,u=n[t],g=u!=null&&(2&u.__u)==0;if(u===null&&d==null||g&&d==u.key&&h==u.type)return t;if(o>(g?1:0)){for(s=t-1,r=t+1;s>=0||r<n.length;)if((u=n[l=s>=0?s--:r++])!=null&&(2&u.__u)==0&&d==u.key&&h==u.type)return l}return-1}function en(e,n,t){n[0]=="-"?e.setProperty(n,t??""):e[n]=t==null?"":typeof t!="number"||Fn.test(n)?t:t+"px"}function ce(e,n,t,o,s){var r,l;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||en(e.style,n,"");if(t)for(n in t)o&&t[n]==o[n]||en(e.style,n,t[n])}else if(n[0]=="o"&&n[1]=="n")r=n!=(n=n.replace(Ve,"$1")),l=n.toLowerCase(),n=l in e||n=="onFocusOut"||n=="onFocusIn"?l.slice(2):n.slice(2),e.l||(e.l={}),e.l[n+r]=t,t?o?t[V]=o[V]:(t[V]=$e,e.addEventListener(n,r?Ce:Se,r)):e.removeEventListener(n,r?Ce:Se,r);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 nn(e){return function(n){if(this.l){var t=this.l[n.type+e];if(n[oe]==null)n[oe]=$e++;else if(n[oe]<t[V])return;return t(M.event?M.event(n):n)}}}function Me(e,n,t,o,s,r,l,d,h,u){var g,y,c,m,b,k,S,C,w,f,E,T,D,N,v,$,R=n.type;if(n.constructor!==void 0)return null;128&t.__u&&(h=!!(32&t.__u),r=[d=n.__e=t.__e]),(g=M.__b)&&g(n);e:if(typeof R=="function"){y=l.length;try{if(w=n.props,f=R.prototype&&R.prototype.render,E=(g=R.contextType)&&o[g.__c],T=g?E?E.props.value:g.__:o,t.__c?C=(c=n.__c=t.__c).__=c.__E:(f?n.__c=c=new R(w,T):(n.__c=c=new le(w,T),c.constructor=R,c.render=Yn),E&&E.sub(c),c.state||(c.state={}),c.__n=o,m=c.__d=!0,c.__h=[],c._sb=[]),f&&c.__s==null&&(c.__s=c.state),f&&R.getDerivedStateFromProps!=null&&(c.__s==c.state&&(c.__s=F({},c.__s)),F(c.__s,R.getDerivedStateFromProps(w,c.__s))),b=c.props,k=c.state,c.__v=n,m)f&&R.getDerivedStateFromProps==null&&c.componentWillMount!=null&&c.componentWillMount(),f&&c.componentDidMount!=null&&c.__h.push(c.componentDidMount);else{if(f&&R.getDerivedStateFromProps==null&&w!==b&&c.componentWillReceiveProps!=null&&c.componentWillReceiveProps(w,T),n.__v==t.__v||!c.__e&&c.shouldComponentUpdate!=null&&c.shouldComponentUpdate(w,c.__s,T)===!1){n.__v!=t.__v&&(c.props=w,c.state=c.__s,c.__d=!1),n.__e=t.__e,n.__k=t.__k,n.__k.some(function(B){B&&(B.__=n)}),re.push.apply(c.__h,c._sb),c._sb=[],c.__h.length&&l.push(c),d=W(t);break e}c.componentWillUpdate!=null&&c.componentWillUpdate(w,c.__s,T),f&&c.componentDidUpdate!=null&&c.__h.push(function(){c.componentDidUpdate(b,k,S)})}if(c.context=T,c.props=w,c.__P=e,c.__e=!1,D=M.__r,N=0,f)c.state=c.__s,c.__d=!1,D&&D(n),g=c.render(c.props,c.state,c.context),re.push.apply(c.__h,c._sb),c._sb=[];else do c.__d=!1,D&&D(n),g=c.render(c.props,c.state,c.context),c.state=c.__s;while(c.__d&&++N<25);c.state=c.__s,c.getChildContext!=null&&(o=F(F({},o),c.getChildContext())),f&&!m&&c.getSnapshotBeforeUpdate!=null&&(S=c.getSnapshotBeforeUpdate(b,k)),v=g!=null&&g.type===I&&g.key==null?an(g.props.children):g,d=Xe(e,se(v)?v:[v],n,t,o,s,r,l,d,h,u),c.base=n.__e,n.__u&=-161,c.__h.length&&l.push(c),C&&(c.__E=c.__=null)}catch(B){if(l.length=y,n.__v=null,h||r!=null){if(B.then){for(n.__u|=h?160:128;d&&d.nodeType==8&&d.nextSibling;)d=d.nextSibling;r!=null&&(r[r.indexOf(d)]=null),n.__e=d}else if(r!=null)for($=r.length;$--;)Ee(r[$])}else n.__e=t.__e;n.__k==null&&(n.__k=t.__k||[]),B.then||tn(n),M.__e(B,n,t)}}else r==null&&n.__v==t.__v?(n.__k=t.__k,n.__e=t.__e):d=n.__e=Wn(t.__e,n,t,o,s,r,l,h,u);return(g=M.diffed)&&g(n),128&n.__u?void 0:d}function tn(e){e&&(e.__c&&(e.__c.__e=!0),e.__k&&e.__k.some(tn))}function on(e,n,t){for(var o=0;o<t.length;o++)Te(t[o],t[++o],t[++o]);M.__c&&M.__c(n,e),e.some(function(s){try{e=s.__h,s.__h=[],e.some(function(r){r.call(s)})}catch(r){M.__e(r,s.__v)}})}function an(e){return typeof e!="object"||e==null||e.__b>0?e:se(e)?e.map(an):e.constructor!==void 0?null:F({},e)}function Wn(e,n,t,o,s,r,l,d,h){var u,g,y,c,m,b,k,S=t.props||ae,C=n.props,w=n.type;if(w=="svg"?s="http://www.w3.org/2000/svg":w=="math"?s="http://www.w3.org/1998/Math/MathML":s||(s="http://www.w3.org/1999/xhtml"),r!=null){for(u=0;u<r.length;u++)if((m=r[u])&&"setAttribute"in m==!!w&&(w?m.localName==w:m.nodeType==3)){e=m,r[u]=null;break}}if(e==null){if(w==null)return document.createTextNode(C);e=document.createElementNS(s,w,C.is&&C),d&&(M.__m&&M.__m(n,r),d=!1),r=null}if(w==null)S===C||d&&e.data==C||(e.data=C);else{if(r=w=="textarea"&&C.defaultValue!=null?null:r&&te.call(e.childNodes),!d&&r!=null)for(S={},u=0;u<e.attributes.length;u++)S[(m=e.attributes[u]).name]=m.value;for(u in S)m=S[u],u=="dangerouslySetInnerHTML"?y=m:u=="children"||u in C||u=="value"&&"defaultValue"in C||u=="checked"&&"defaultChecked"in C||ce(e,u,null,m,s);for(u in C)m=C[u],u=="children"?c=m:u=="dangerouslySetInnerHTML"?g=m:u=="value"?b=m:u=="checked"?k=m:d&&typeof m!="function"||S[u]===m||ce(e,u,m,S[u],s);if(g)d||y&&(g.__html==y.__html||g.__html==e.innerHTML)||(e.innerHTML=g.__html),n.__k=[];else if(y&&(e.innerHTML=""),Xe(n.type=="template"?e.content:e,se(c)?c:[c],n,t,o,w=="foreignObject"?"http://www.w3.org/1999/xhtml":s,r,l,r?r[0]:t.__k&&W(t,0),d,h),r!=null)for(u=r.length;u--;)Ee(r[u]);d&&w!="textarea"||(u="value",w=="progress"&&b==null?e.removeAttribute("value"):b!=null&&(b!==e[u]||w=="progress"&&!b||w=="option"&&b!=S[u])&&ce(e,u,b,S[u],s),u="checked",k!=null&&k!=e[u]&&ce(e,u,k,S[u],s))}return e}function Te(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){M.__e(s,t)}}function rn(e,n,t){var o,s;if(M.unmount&&M.unmount(e),(o=e.ref)&&(o.current&&o.current!=e.__e||Te(o,null,n)),(o=e.__c)!=null){if(o.componentWillUnmount)try{o.componentWillUnmount()}catch(r){M.__e(r,n)}o.base=o.__P=o.__n=null}if(o=e.__k)for(s=0;s<o.length;s++)o[s]&&rn(o[s],n,t||typeof e.type!="function");t||Ee(e.__e),e.__c=e.__=e.__e=void 0}function Yn(e,n,t){return this.constructor(e,t)}function sn(e,n,t){var o,s,r,l;n==document&&(n=document.documentElement),M.__&&M.__(e,n),s=(o=!1)?null:n.__k,r=[],l=[],Me(n,e=n.__k=L(I,null,[e]),s||ae,ae,n.namespaceURI,s?null:n.firstChild?te.call(n.childNodes):null,r,s?s.__e:n.firstChild,o,l),on(r,e,l),e.props.children=null}te=re.slice,M={__e:function(e,n,t,o){for(var s,r,l;n=n.__;)if((s=n.__c)&&!s.__)try{if((r=s.constructor)&&r.getDerivedStateFromError!=null&&(s.setState(r.getDerivedStateFromError(e)),l=s.__d),s.componentDidCatch!=null&&(s.componentDidCatch(e,o||{}),l=s.__d),l)return s.__E=s}catch(d){e=d}throw e}},qe=0,le.prototype.setState=function(e,n){var t;t=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=F({},this.state),typeof e=="function"&&(e=e(F({},t),this.props)),e&&F(t,e),e!=null&&this.__v&&(n&&this._sb.push(n),Qe(this))},le.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Qe(this))},le.prototype.render=I,K=[],Ye=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Ge=function(e,n){return e.__v.__b-n.__v.__b},de.__r=0,we=Math.random().toString(8),oe="__d"+we,V="__a"+we,Ve=/(PointerCapture)$|Capture$/i,$e=0,Se=nn(!1),Ce=nn(!0);var Gn=0;function a(e,n,t,o,s,r){n||(n={});var l,d,h=n;if("ref"in h)for(d in h={},n)d=="ref"?l=n[d]:h[d]=n[d];var u={type:e,props:h,key:t,ref:l,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--Gn,__i:-1,__u:0,__source:s,__self:r};if(typeof e=="function"&&(l=e.defaultProps))for(d in l)h[d]===void 0&&(h[d]=l[d]);return M.vnode&&M.vnode(u),u}const Vn="Snagset",Jn="snagset",Qn="snagset:",Xn="Snagset",Zn="Snag",et="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"},nt=e=>`var(${x[e]})`,tt=e=>"snag_"+e,ln={query:["snag_t","snag_off","snag_debug","snag_theme"],fragment:["snag_k"]},dn="snag:identity",ot="data-snag-theme";var J,A,Re,cn,ue=0,un=[],P=M,pn=P.__b,gn=P.__r,hn=P.diffed,fn=P.__c,mn=P.unmount,_n=P.__;function De(e,n){P.__h&&P.__h(A,e,ue||n),ue=0;var t=A.__H||(A.__H={__:[],__h:[]});return e>=t.__.length&&t.__.push({}),t.__[e]}function O(e){return ue=1,at(xn,e)}function at(e,n,t){var o=De(J++,2);if(o.t=e,!o.__c&&(o.__=[xn(void 0,n),function(d){var h=o.__N?o.__N[0]:o.__[0],u=o.t(h,d);h!==u&&(o.__N=[u,o.__[1]],o.__c.setState({}))}],o.__c=A,!A.__f)){var s=function(d,h,u){if(!o.__c.__H)return!0;var g=!1,y=o.__c.props!==d;if(o.__c.__H.__.some(function(m){if(m.__N){g=!0;var b=m.__[0];m.__=m.__N,m.__N=void 0,b!==m.__[0]&&(y=!0)}}),r){var c=r.call(this,d,h,u);return g?c||y:c}return!g||y};A.__f=!0;var r=A.shouldComponentUpdate,l=A.componentWillUpdate;A.componentWillUpdate=function(d,h,u){if(this.__e){var g=r;r=void 0,s(d,h,u),r=g}l&&l.call(this,d,h,u)},A.shouldComponentUpdate=s}return o.__N||o.__}function U(e,n){var t=De(J++,3);!P.__s&&bn(t.__H,n)&&(t.__=e,t.u=n,A.__H.__h.push(t))}function H(e){return ue=5,rt(function(){return{current:e}},[])}function rt(e,n){var t=De(J++,7);return bn(t.__H,n)&&(t.__=e(),t.__H=n,t.__h=e),t.__}function st(){for(var e;e=un.shift();){var n=e.__H;if(e.__P&&n)try{n.__h.some(pe),n.__h.some(Ae),n.__h=[]}catch(t){n.__h=[],P.__e(t,e.__v)}}}P.__b=function(e){A=null,pn&&pn(e)},P.__=function(e,n){e&&n.__k&&n.__k.__m&&(e.__m=n.__k.__m),_n&&_n(e,n)},P.__r=function(e){gn&&gn(e),J=0;var n=(A=e.__c).__H;n&&(Re===A?(n.__h=[],A.__h=[],n.__.some(function(t){t.__N&&(t.__=t.__N),t.u=t.__N=void 0})):(n.__h.some(pe),n.__h.some(Ae),n.__h=[],J=0)),Re=A},P.diffed=function(e){hn&&hn(e);var n=e.__c;n&&n.__H&&(n.__H.__h.length&&(un.push(n)!==1&&cn===P.requestAnimationFrame||((cn=P.requestAnimationFrame)||it)(st)),n.__H.__.some(function(t){t.u&&(t.__H=t.u,t.u=void 0)})),Re=A=null},P.__c=function(e,n){n.some(function(t){try{t.__h.some(pe),t.__h=t.__h.filter(function(o){return!o.__||Ae(o)})}catch(o){n.some(function(s){s.__h&&(s.__h=[])}),n=[],P.__e(o,t.__v)}}),fn&&fn(e,n)},P.unmount=function(e){mn&&mn(e);var n,t=e.__c;t&&t.__H&&(t.__H.__.some(function(o){try{pe(o)}catch(s){n=s}}),t.__H=void 0,n&&P.__e(n,t.__v))};var kn=typeof requestAnimationFrame=="function";function it(e){var n,t=function(){clearTimeout(o),kn&&cancelAnimationFrame(n),setTimeout(e)},o=setTimeout(t,35);kn&&(n=requestAnimationFrame(t))}function pe(e){var n=A,t=e.__c;typeof t=="function"&&(e.__c=void 0,t()),A=n}function Ae(e){var n=A;e.__c=e.__(),A=n}function bn(e,n){return!e||e.length!==n.length||n.some(function(t,o){return t!==e[o]})}function xn(e,n){return typeof n=="function"?n(e):n}const lt={product:Vn,set:Xn,item:Zn,items:et};function vn(e){return(n,t)=>(e[n]??"").replace(/\{(\w+)\}/g,(o,s)=>{const r=t?.[s]??lt[s];return r===void 0?o:String(r)})}const z=e=>new Intl.NumberFormat().format(e),yn={"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=vn(yn),ge={open:{colour:"#4f6ef7"},progress:{colour:"#f59e0b"},review:{colour:"#8b5cf6"},resolved:{colour:"#10b981"}},he=e=>ge[e]?.colour??"#8a8f98",wn=e=>e==="open"||e==="review"?"#fff":"#16161a",fe=e=>e in ge?dt(`status.${e}`):e,i=Object.fromEntries(Object.keys(x).map(e=>[e,nt(e)])),ct=Object.entries(ge).map(([e,n])=>` ${x[`status${e[0].toUpperCase()}${e.slice(1)}`]}:${n.colour};`).join(`
2
+ `);`${i.font}${i.fg}${x.font}${x.accent}${x.bg}${x.fg}${x.muted}${x.border}${x.radius}${x.shadow}${x.z}${x.motion}${x.surface}${i.fg}${i.bg}${x.sunken}${i.fg}${i.bg}${x.hover}${i.fg}${i.bg}${x.onAccent}${x.focus}${i.accent}${i.fg}${x.disabled}${i.muted}${i.bg}${ct}${x.anchorOrphan}${ot}${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 ut={dock:5},$n=new WeakMap;function Sn(e,n,t){let o=$n.get(e);if(o||$n.set(e,o=new Set),o.has(n))return;o.add(n);try{const l=new CSSStyleSheet;l.replaceSync(t),e.adoptedStyleSheets=[...e.adoptedStyleSheets,l];return}catch{}const r=(e.ownerDocument??document).createElement("style");r.setAttribute(`data-snag-${n}`,""),r.textContent=t,e.appendChild(r)}const pt=` .snag-input,.snag-text{width:100%;box-sizing:border-box;background:${i.surface};color:inherit;border:1px solid ${i.border};border-radius:${i.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 ${i.focus};outline-offset:1px;border-color:transparent}.snag-input--bad{border-color:${i.anchorOrphan}}.snag-note{margin:-2px 0 0;color:${i.anchorOrphan};font-size:11px;line-height:1.35}.snag-note.snag-dim{color:${i.muted}}.snag-actions{display:flex;justify-content:flex-end;gap:6px}.snag-actions button{appearance:none;border:0;border-radius:calc(${i.radius} - 1px);padding:7px 13px;font:inherit;cursor:pointer;min-height:32px;transition:background ${i.motion}}.snag-cancel{background:transparent;color:${i.muted}}.snag-armed{color:${i.anchorOrphan};font-weight:600}.snag-cancel:hover{background:${i.hover};color:inherit}.snag-send{background:${i.accent};color:${i.onAccent};font-weight:600}.snag-send:disabled{opacity:.45;cursor:not-allowed}.snag-actions button:focus-visible{outline:2px solid ${i.focus};outline-offset:2px}`;function gt(e,n,t){const[o,s]=O(!1);return U(()=>{if(!o)return;const r=setTimeout(()=>s(!1),3e3);return()=>clearTimeout(r)},[o]),{armed:o,press(){if(o||n){s(!1),e();return}s(!0)}}}function ht(e){const n=window.visualViewport;if(!n)return;let t=0,o=0;const s=()=>{t=0;const d=Math.max(0,Math.round(window.innerHeight-n.height-n.offsetTop));e.style.setProperty(x.kb,`${d}px`)},r=()=>{t||(t=requestAnimationFrame(s))},l=()=>{clearTimeout(o),o=window.setTimeout(s,300)};return s(),n.addEventListener("resize",r),n.addEventListener("scroll",r),window.addEventListener("orientationchange",r),e.addEventListener("focusout",l),()=>{t&&cancelAnimationFrame(t),clearTimeout(o),n.removeEventListener("resize",r),n.removeEventListener("scroll",r),window.removeEventListener("orientationchange",r),e.removeEventListener("focusout",l)}}const ft="noreferrer nofollow";function mt(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 _t=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("|")),kt=4;function me(e,n=0,t=0){const o=[];let s=e,r=n;if(t>=kt)return e?[e]:[];for(;;){const l=_t.exec(s);if(!l)return s&&o.push(s),o;l.index>0&&o.push(s.slice(0,l.index));const d=`i${r++}`,h=l.groups,u=h.bold??h.boldU,g=h.em??h.emU;if(u!==void 0)o.push(L("strong",{key:d},me(u,r,t+1)));else if(g!==void 0)o.push(L("em",{key:d},me(g,r,t+1)));else if(h.code!==void 0)o.push(L("code",{key:d},h.code));else{const y=mt(h.href??"");o.push(y?L("a",{key:d,href:y,target:"_blank",rel:ft},h.label??""):l[0])}s=s.slice(l.index+l[0].length)}}const Pe=/^```[^\n]*$/,Ne=/^[-*]\s+(.*)$/,Oe=/^\d{1,9}[.)]\s+(.*)$/;function Cn(e){const n=e.split(`
3
3
  `),t=[];let o=0,s=0;for(;o<n.length;){const r=n[o];if(Pe.test(r)){const u=[];for(o++;o<n.length&&!Pe.test(n[o]);)u.push(n[o++]);o++,t.push(L("pre",{key:`b${s++}`},L("code",null,u.join(`
4
4
  `))));continue}const l=Ne.exec(r),d=Oe.exec(r);if(l||d){const u=l?Ne:Oe,g=[];for(;o<n.length;){const y=u.exec(n[o]);if(!y)break;g.push(L("li",{key:`l${g.length}`},me(y[1]))),o++}t.push(L(l?"ul":"ol",{key:`b${s++}`},g));continue}const h=[];for(;o<n.length;){const u=n[o];if(!u.trim()||Pe.test(u)||Ne.test(u)||Oe.test(u))break;h.push(u),o++}h.length?t.push(L("p",{key:`b${s++}`},me(h.join(`
5
- `)))):o++}return L("div",{class:"snag-md"},t)}const kt=`${Jn}session`;function bt(e,n,t){if(e.origin!==n||!t||e.source!==t)return!1;const o=e.data;return!!o&&o.type===kt&&typeof o.session?.sessionToken=="string"&&typeof o.session.reviewer?.name=="string"}function xt(e,n,t,o){const s=new URLSearchParams({project:n,origin:t});return o&&s.set("env",o),`${new URL(e).origin}/widget-signin?${s}`}function vt(e,n,t){const o=new URL(e).origin,s=window.open(xt(e,n,location.origin,t),`${Vn}-signin`,"popup,width=480,height=600");return s?new Promise(r=>{let l=0;const d=g=>{removeEventListener("message",h),clearInterval(u),r(g)},h=g=>{bt(g,o,s)&&d(g.data.session)};addEventListener("message",h);const u=setInterval(()=>{s.closed&&++l>1&&d(null)},400)}):Promise.resolve("blocked")}function Cn(){let e=null;try{e=localStorage.getItem(ln)}catch{return{}}if(!e)return{};if(e[0]!=="{")return{name:e};try{const n=JSON.parse(e);return n&&typeof n=="object"?n:{}}catch{return{}}}function yt(e){try{localStorage.setItem(ln,JSON.stringify(e))}catch{}}function wt(){const e=Cn();return{name:typeof e.name=="string"?e.name:"",...e.email?{email:e.email}:{}}}function $t(e){const n=Cn();yt({...n,name:e.name,...e.email?{email:e.email}:{}})}const St={"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}"},Ct={"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.signin":"Studio member? Sign in","composer.signin.blocked":"Allow pop-ups for this page to sign in.","composer.member":"Commenting as {name}","composer.signout":"Not you? Sign out","composer.round.closed":"This round is closed \u2014 your comment goes to {round}.","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?"},Et={"shot.open":"See the screenshot","shot.aria":"Screenshot","shot.close":"Close","announce.status":"Comment {key} set to {status}.","search.placeholder":"Search {n} comments\u2026","search.aria":"Search comments","round.label":"Round","round.closed":"(closed)","filter.status":"Status","filter.selectall":"Select all","filter.clear":"Clear","sort.button":"Sort","sort.newest":"Newest first","sort.oldest":"Oldest first","sort.page":"By page","filter.button":"Filter","filter.button.n":"Filter \xB7 {n}","filter.by":"Comments by","filter.by.anyone":"Anyone","filter.assignee":"Assigned to","filter.assignee.anyone":"Anyone","filter.assignee.none":"Unassigned","filter.assignee.unknown":"Unknown","filter.pages":"Pages","filter.pages.all":"All pages","filter.pageonly":"Show comments on this page only","filter.new":"See new activity \xB7 {n}","filter.new.on":"Showing new activity \u2014 show all","filter.new.none":"You\u2019re caught up \u2014 show all","filter.new.markread":"Mark all read","filter.read":"Marked as","filter.read.all":"Anyone\u2019s, read or not","filter.read.unread":"Unread","filter.read.read":"Read","dock.unread":"Unread","badge.anchored":"","badge.approximate":"~","badge.orphaned":"moved","badge.hidden":"hidden","capture.label":"Comment left on","capture.page":"{route}","device.Mobile":"Mobile","device.Desktop":"Desktop","dock.aria":"All comments","dock.title.list":"All comments","dock.title.detail":"Comment","dock.close":"Close all comments","dock.empty":"No comments yet. Press +, then click anything on the page.","dock.empty.filter":"Nothing matches that filter.","dock.empty.orphans":"Every comment here lost its element \u2014 but what each one pointed at is still recorded.","dock.empty.page":"Nothing on this page. {n} comments on {m} other pages.","dock.loading":"Loading comments\u2026","dock.row.empty":"(no comment)","dock.replies":"{n} replies","dock.goto":"Go to {route}","dock.cluster":"{n} comments in this cluster","dock.cluster.clear":"Show all","dock.hiddenrow":"That comment is now hidden by your filter","dock.hiddenrow.show":"Show","dock.back":"All","dock.back.aria":"Back to all comments","dock.position":"{n} of {total}","dock.prev":"Previous comment","dock.next":"Next comment","dock.clear":"Clear all","dock.clear.aria":"Delete every comment in this review","comment.edit":"Edit this comment","comment.delete":"Delete this comment and its pin","reply.delete":"Delete this reply","time.now":"just now","who.name":"Your name","who.email":"Email, so we can reply","who.email.bad":"Check the address \u2014 or leave it blank.","who.signin":"Studio member? Sign in","who.signin.blocked":"Allow pop-ups for this page to sign in.","who.member":"Replying as {name}","who.signout":"Not you? Sign out","detail.hidden.show":"Show anyway","field.status":"Status","field.status.locked":"Only the studio can change status here.","field.assignee":"Assigned to","assignee.none":"Unassigned","permalink.copy":"Copy link","permalink.copied":"Copied","reply.add":"Add reply","reply.aria":"Reply","reply.placeholder":"Reply\u2026","reply.send":"Reply","action.more":"More actions","action.edit":"Edit","action.delete":"Delete","action.save":"Save","action.sure":"Sure?","export.button":"Export","export.md":"Markdown","export.json":"JSON"},Mt={...vn,...St,...Ct,...Et},p=xn(Mt),Tt=[/^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$/],Rt=[...sn.query,...sn.fragment];function Dt(e,n=[]){return Rt.includes(e)||n.includes(e)?!0:Tt.some(t=>t.test(e))}const Y=["open","progress","review","resolved"];function At(e,n){return e.includes(n)?e.length>1?e.filter(t=>t!==n):[...e]:[...e,n]}const Pt=["open"];function En(e){return e.length>0&&!Y.every(n=>e.includes(n))}function Nt(e,n,t){if(En(n.statuses)&&Y.includes(e.status)&&!n.statuses.includes(e.status)||n.by&&e.createdBy.id!==n.by||n.assignee!==void 0&&(e.assignee?.id??null)!==n.assignee||n.page&&e.route!==n.page)return!1;if(n.read!=="all"&&t){const o=_e(e,t);if(n.read==="unread"&&!o||n.read==="read"&&o)return!1}return!0}function _e(e,n){const t=n.get(e.id)??0;return Date.parse(e.updatedAt)>t}function Ot(e,n,t,o){let s=e;n.pageOnly&&(s=s.filter(l=>l.route===t)),n.newOnly&&o&&(s=s.filter(l=>_e(l,o)));const r=n.q?.trim().toLowerCase();return r&&(s=s.filter(l=>l.comments.some(d=>(d.body??"").toLowerCase().includes(r)||d.author.name.toLowerCase().includes(r))||l.createdBy.name.toLowerCase().includes(r))),s}function zt(e,n){if(n==="page")return e;const t=(s,r)=>Date.parse(s.createdAt)-Date.parse(r.createdAt),o=[...e].sort(t);return n==="oldest"?o:o.reverse()}function Lt(e){const n=new Map;for(const t of e)n.set(t.status,(n.get(t.status)??0)+1);return{all:e.length,byStatus:n}}function It(e){return(e.read!=="all"?1:0)+(e.by?1:0)+(e.assignee!==void 0?1:0)+(e.page?1:0)}const ze=Object.keys(ge),Q=e=>e.comments.slice(1).filter(n=>n.body!==null);function Mn({label:e,title:n,cls:t,role:o,onConfirm:s}){const{armed:r,press:l}=pt(s);return a("button",{type:"button",...o===void 0?{}:{role:o},class:`${t}${r?" snag-dk-armed":""}`,"aria-label":r?`${p("action.sure")} ${n}`:n,title:n,onClick:l,children:r?p("action.sure"):e})}function Ut({snag:e}){const n=e.context?.derived?.device;if(!n)return null;const t=p(`device.${n}`);return a("span",{class:"snag-dk-dev",title:t,"aria-label":t,role:"img",children:n==="Mobile"?a("svg",{width:"11",height:"14",viewBox:"0 0 11 14",fill:"none","aria-hidden":"true",children:[a("rect",{x:".75",y:".75",width:"9.5",height:"12.5",rx:"1.75",stroke:"currentColor","stroke-width":"1.5"}),a("path",{d:"M4.5 11h2",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round"})]}):a("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none","aria-hidden":"true",children:[a("rect",{x:".75",y:"1.75",width:"12.5",height:"8.5",rx:"1.75",stroke:"currentColor","stroke-width":"1.5"}),a("path",{d:"M5 12.75h4",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round"})]})})}function jt({anchor:e}){const n=[];if(e.testid&&n.push(["testid",e.testid]),e.domid&&n.push(["id",e.domid]),e.css&&n.push(["css",e.css]),e.hostPath?.length&&n.push(["shadow host",e.hostPath.join(" >> ")]),e.role&&n.push(["role",e.role]),e.accessibleName&&n.push(["name",e.accessibleName]),e.text?.exact&&n.push(["text",e.text.exact]),e.path?.length&&n.push(["path",e.path.join(" > ")]),e.rect){const t=e.rect;n.push(["rect",`${Math.round(t.x)}, ${Math.round(t.y)} \u2014 ${Math.round(t.w)} x ${Math.round(t.h)}`])}return e.breakpoint&&n.push(["breakpoint",`${e.breakpoint} at capture \xB7 you are at ${typeof window>"u"?"?":window.innerWidth}px`]),a("details",{class:"snag-dk-anchor",children:[a("summary",{children:p("detail.details")}),a("dl",{children:n.map(([t,o])=>a("div",{children:[a("dt",{children:t}),a("dd",{children:o})]},t))})]})}function Tn({iso:e}){const n=Date.parse(e);if(!Number.isFinite(n))return null;const t=new Date(n),o=Math.round((n-Date.now())/1e3);let s;if(Math.abs(o)<45)s=p("time.now");else if(Math.abs(o)<7*86400){const r=new Intl.RelativeTimeFormat(void 0,{numeric:"auto",style:"short"}),[l,d]=Math.abs(o)<3600?[Math.round(o/60),"minute"]:Math.abs(o)<86400?[Math.round(o/3600),"hour"]:[Math.round(o/86400),"day"];s=r.format(l,d)}else s=t.toLocaleDateString(void 0,{day:"numeric",month:"short",...t.getFullYear()===new Date().getFullYear()?{}:{year:"numeric"}});return a("time",{class:"snag-dk-dim snag-dk-when",dateTime:t.toISOString(),title:t.toLocaleString(),children:s})}function Rn({body:e,onEdit:n,deleteLabel:t,onDelete:o}){const s=e??"",[r,l]=O(!1),[d,h]=O(!1),[u,g]=O(s),y=j(null),c=m=>{m.key!=="Escape"||!d||(m.stopPropagation(),h(!1))};return U(()=>{r&&y.current?.focus()},[r]),r&&n?a("div",{class:"snag-dk-editbox",children:[a("textarea",{ref:y,class:"snag-text",rows:3,"aria-label":p("comment.edit"),value:u,onInput:m=>g(m.target.value),onKeyDown:m=>{m.key==="Enter"&&(m.metaKey||m.ctrlKey)&&(m.preventDefault(),u.trim()&&(n(u.trim()),l(!1))),m.key==="Escape"&&(m.stopPropagation(),g(s),l(!1))}}),a("div",{class:"snag-actions",children:[a("button",{type:"button",class:"snag-cancel",onClick:()=>{g(s),l(!1)},children:p("action.cancel")}),a("button",{type:"button",class:"snag-send",disabled:!u.trim()||u.trim()===s,onClick:()=>{n(u.trim()),l(!1)},children:p("action.save")})]})]}):a("div",{class:"snag-dk-acts snag-dk-menus",onKeyDown:c,children:[d&&a("div",{class:"snag-dk-menubg","aria-hidden":"true",onClick:()=>h(!1)}),a("span",{class:"snag-dk-menuwrap",children:[a("button",{type:"button",class:"snag-dk-act snag-dk-more","aria-label":p("action.more"),"aria-expanded":d,"aria-haspopup":"menu",title:p("action.more"),onClick:()=>h(!d),children:"\u22EF"}),d&&a("div",{class:"snag-dk-menu",role:"menu",children:[n&&a("button",{type:"button",role:"menuitem",title:p("comment.edit"),"aria-label":p("comment.edit"),onClick:()=>{h(!1),g(s),l(!0)},children:p("action.edit")}),o&&a(Mn,{label:p("action.delete"),title:t,cls:"snag-dk-act--danger",role:"menuitem",onConfirm:o})]})]})]})}function Ht({snag:e}){const n=e.anchorReasons?.includes("hidden")??!1;return a("span",{class:"snag-dk-dim snag-dk-where",children:[n&&a(I,{children:[a("span",{class:"snag-dk-moved",children:p("badge.hidden")})," "]}),e.anchorState!=="anchored"&&a(I,{children:[a("span",{class:"snag-dk-moved",children:p(`badge.${e.anchorState}`)})," "]}),e.anchor.label]})}function Ft(e){const n=new Map,t=new Map;for(const o of e){const s=(n.get(o.route)??0)+1;n.set(o.route,s),t.set(o.id,s)}return t}function Bt(e,n){const t=new Map;for(const o of e){const s=t.get(o.route);s?s.push(o):t.set(o.route,[o])}return[...t.entries()].map(([o,s])=>({route:o,here:o===n,snags:s})).sort((o,s)=>o.route.localeCompare(s.route))}function Kt({snag:e,n,here:t,unread:o,onOpen:s,onHover:r}){const l=h=>r(t?h:null),d=t?"":p("dock.goto",{route:e.route});return a("li",{children:a("button",{type:"button",class:"snag-dk-item",onClick:()=>s(e.id),onPointerEnter:()=>l(e.id),onPointerLeave:()=>l(null),onFocus:()=>l(e.id),onBlur:()=>l(null),children:[a("span",{class:`snag-dk-dot${o?" snag-dk-dot--on":""}`,role:"img","aria-label":o?p("dock.unread"):""}),a("span",{class:`snag-dk-num${e.anchorState==="anchored"?"":` snag-dk-num--${e.anchorState}`}`,style:{background:he(e.status),color:yn(e.status)},children:n}),a("span",{class:"snag-dk-main",children:[a("span",{class:`snag-dk-body${e.status==="resolved"?" snag-dk-done":""}`,children:e.comments[0]?.body??p("dock.row.empty")}),a("span",{class:"snag-dk-sub",children:a(Ht,{snag:e})})]}),a(Ut,{snag:e}),Q(e).length>0&&a("span",{class:"snag-dk-replies",role:"img","aria-label":p("dock.replies",{n:z(Q(e).length)}),children:z(Q(e).length)}),!t&&a("span",{class:"snag-dk-goto",role:"img",title:d,"aria-label":d,children:"\u2197"})]})})}const Dn=e=>i[`status${e[0].toUpperCase()}${e.slice(1)}`]??i.muted;function qt({round:e,filter:n,onFilter:t,onClearAll:o,seenAt:s,trailing:r}){const[l,d]=O(null),h=Lt(e),u=Y.every(f=>n.statuses.includes(f)),g=f=>{const E={...n};for(const[T,D]of Object.entries(f))D===void 0?delete E[T]:E[T]=D;t(E)},y=It(n),c=[...new Map(e.map(f=>[f.createdBy.id,f.createdBy.name]))],m=[...new Map(e.flatMap(f=>f.assignee?[[f.assignee.id,f.assignee.name]]:[]))],b=n.assignee,k=[...new Set(e.map(f=>f.route))].sort(),S=[...h.byStatus.keys()].filter(f=>!Y.includes(f)),C=f=>d(l===f?null:f),w=a("svg",{class:"snag-dk-caret",width:"8",height:"8",viewBox:"0 0 8 8","aria-hidden":"true",children:a("path",{d:"M1 2.5 4 5.5 7 2.5",fill:"none",stroke:"currentColor","stroke-width":"1.4"})});return a("div",{class:"snag-dk-filters",children:[a("div",{class:"snag-dk-searchwrap",children:[a("svg",{class:"snag-dk-searchicon",width:"14",height:"14",viewBox:"0 0 16 16","aria-hidden":"true",children:[a("circle",{cx:"7",cy:"7",r:"4.75",fill:"none",stroke:"currentColor","stroke-width":"1.5"}),a("path",{d:"M10.5 10.5 14 14",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round"})]}),a("input",{class:"snag-input snag-dk-search",type:"search","aria-label":p("search.aria"),placeholder:p("search.placeholder",{n:z(e.length)}),value:n.q??"",onInput:f=>g({q:f.currentTarget.value||void 0})})]}),a("div",{class:"snag-dk-chiphead",children:[a("span",{class:"snag-dk-menutitle",id:"snag-dk-st",children:p("filter.status")}),a("button",{type:"button",class:"snag-dk-link snag-dk-selectall",onClick:()=>g({statuses:u?[...Pt]:[...Y]}),children:p(u?"filter.clear":"filter.selectall")})]}),a("div",{class:"snag-dk-chips",role:"group","aria-labelledby":"snag-dk-st",children:[Y.map(f=>{const E=n.statuses.includes(f);return a("button",{type:"button",class:"snag-dk-chip","aria-pressed":E,style:E?`border-color:${Dn(f)};background:color-mix(in srgb, ${Dn(f)} 18%, transparent)`:void 0,onClick:()=>g({statuses:At(n.statuses,f)}),children:[a("span",{class:"snag-dk-chipdot","aria-hidden":"true",style:{background:he(f)}}),a("span",{class:"snag-dk-chiplabel",children:fe(f)})," ",a("span",{class:"snag-dk-chipn",children:z(h.byStatus.get(f)??0)})]})}),S.map(f=>a("span",{class:"snag-dk-chip snag-dk-chip-stray",children:[a("span",{class:"snag-dk-chiplabel",children:f})," ",a("span",{class:"snag-dk-chipn",children:z(h.byStatus.get(f)??0)})]}))]}),a("div",{class:"snag-dk-menus",onKeyDown:f=>{f.key!=="Escape"||!l||(f.stopPropagation(),d(null))},children:[l&&a("div",{class:"snag-dk-menubg","aria-hidden":"true",onClick:()=>d(null)}),a("span",{class:"snag-dk-menuwrap",children:[a("button",{type:"button",class:"snag-dk-link snag-dk-trigger","aria-expanded":l==="sort",onClick:()=>C("sort"),children:[p("sort.button"),w]}),l==="sort"&&a("div",{class:"snag-dk-menu",role:"radiogroup","aria-label":p("sort.button"),children:[["newest","sort.newest"],["oldest","sort.oldest"],["page","sort.page"]].map(([f,E])=>a("button",{type:"button",role:"radio","aria-checked":n.sort===f,onClick:()=>g({sort:f}),children:[a("span",{class:"snag-dk-tick","aria-hidden":"true",children:n.sort===f?"\u2713":"\xA0"}),p(E)]}))})]}),a("span",{class:"snag-dk-menuwrap",children:[a("button",{type:"button",class:"snag-dk-link snag-dk-trigger","aria-expanded":l==="filter",onClick:()=>C("filter"),children:[y>0?p("filter.button.n",{n:z(y)}):p("filter.button"),w]}),l==="filter"&&a("div",{class:"snag-dk-menu snag-dk-menu-form",role:"group","aria-label":p("filter.button"),children:[a("div",{class:"snag-dk-menugroup",children:[s&&a("label",{children:[p("filter.read"),a("select",{value:n.read,onChange:f=>g({read:f.currentTarget.value}),children:[a("option",{value:"all",children:p("filter.read.all")}),a("option",{value:"unread",children:p("filter.read.unread")}),a("option",{value:"read",children:p("filter.read.read")})]})]}),a("label",{children:[p("filter.by"),a("select",{value:n.by??"",onChange:f=>g({by:f.currentTarget.value||void 0}),children:[a("option",{value:"",children:p("filter.by.anyone")}),c.map(([f,E])=>a("option",{value:f,children:E}))]})]}),(m.length>0||b!==void 0)&&a("label",{children:[p("filter.assignee"),a("select",{value:b===null?"~":b??"",onChange:f=>{const E=f.currentTarget.value;g({assignee:E==="~"?null:E||void 0})},children:[a("option",{value:"",children:p("filter.assignee.anyone")}),a("option",{value:"~",children:p("filter.assignee.none")}),m.map(([f,E])=>a("option",{value:f,children:E})),b&&!m.some(([f])=>f===b)&&a("option",{value:b,children:p("filter.assignee.unknown")})]})]}),a("label",{children:[p("filter.pages"),a("select",{value:n.page??"",onChange:f=>g({page:f.currentTarget.value||void 0}),children:[a("option",{value:"",children:p("filter.pages.all")}),k.map(f=>a("option",{value:f,children:f}))]})]}),a("label",{class:"snag-dk-pageonly",children:[a("input",{type:"checkbox",checked:n.pageOnly,onChange:f=>g({pageOnly:f.currentTarget.checked})})," ",p("filter.pageonly")]})]}),e.length>0&&a("div",{class:"snag-dk-menugroup snag-dk-menugroup-last",children:a(Mn,{label:p("dock.clear"),title:p("dock.clear.aria"),cls:"snag-dk-link snag-dk-clear",onConfirm:o})})]})]}),r]})]})}function Wt({snags:e,groups:n,route:t,onOpen:o,onHover:s,onExport:r,onClearAll:l,onMarkAllRead:d,clusterFilter:h,onClusterClear:u,filter:g,onFilter:y,hiddenNote:c,onHiddenShow:m,seenAt:b,loading:k}){const S=Ft(e),C=n.flatMap($=>$.snags),w=En(g.statuses)||!!g.by||g.assignee!==void 0||!!g.page||!!g.q?.trim()||g.pageOnly||g.newOnly||g.read!=="all",f=b?e.filter($=>_e($,b)).length:0,E=j(null),[T,D]=O(!1),N=$=>{$.key!=="Escape"||!T||($.stopPropagation(),D(!1))},v=j(null);return U(()=>{const $=E.current,R=v.current;!$||!R||($.scrollTop+=R.getBoundingClientRect().top-$.getBoundingClientRect().top)},[t,n.length]),a(I,{children:[a(qt,{round:e,filter:g,onFilter:y,onClearAll:l,...b===void 0?{}:{seenAt:b},trailing:b&&g.newOnly&&f>0&&d?a("button",{type:"button",class:"snag-dk-link snag-dk-newpill",onClick:d,children:p("filter.new.markread")}):b&&(f>0||g.newOnly)?a("button",{type:"button",class:"snag-dk-link snag-dk-newpill","aria-pressed":g.newOnly,onClick:()=>y({...g,newOnly:!g.newOnly}),children:g.newOnly?p(f===0?"filter.new.none":"filter.new.on"):p("filter.new",{n:z(f)})}):null}),k&&e.length>0&&a("div",{class:"snag-dk-progress","aria-hidden":"true"}),k&&e.length===0?a("div",{class:"snag-dk-scroll",role:"status",children:[a("span",{class:"snag-dk-sr",children:p("dock.loading")}),a("ul",{class:"snag-dk-list snag-dk-skel","aria-busy":"true",children:[0,1,2,3].map($=>a("li",{"aria-hidden":"true",children:[a("i",{}),a("span",{children:[a("i",{}),a("i",{})]})]},$))})]}):e.length===0?a("div",{class:"snag-dk-empty",children:a("p",{children:p("dock.empty")})}):C.length===0&&w?a("div",{class:"snag-dk-empty",children:g.pageOnly&&e.some($=>$.route!==t)?a("p",{children:p("dock.empty.page",{n:z(e.filter($=>$.route!==t).length),m:z(new Set(e.filter($=>$.route!==t).map($=>$.route)).size)})}):a("p",{children:p("dock.empty.filter")})}):a(I,{children:[c&&a("p",{class:"snag-dk-notice",children:[p("dock.hiddenrow")," ",a("button",{type:"button",class:"snag-dk-link",onClick:()=>m(c),children:p("dock.hiddenrow.show")})]}),h&&a("p",{class:"snag-dk-notice",children:[p("dock.cluster",{n:h.length})," ",a("button",{type:"button",class:"snag-dk-link",onClick:()=>u?.(),children:p("dock.cluster.clear")})]}),e.every($=>$.anchorState==="orphaned")&&a("p",{class:"snag-dk-notice",children:p("dock.empty.orphans")}),a("div",{class:"snag-dk-scroll",ref:E,children:n.map($=>a("section",{class:"snag-dk-group",ref:$.here?v:null,children:[$.route!==""&&a("h3",{class:"snag-dk-grouphd",children:[a("span",{class:"snag-dk-route",children:$.route}),a("span",{class:"snag-dk-dim",children:z($.snags.length)})]}),a("ul",{class:"snag-dk-list",children:$.snags.map(R=>a(Kt,{snag:R,n:S.get(R.id),here:$.here,unread:!!b&&_e(R,b),onOpen:o,onHover:s},R.id))})]},$.route))})]}),r&&a("div",{class:"snag-dk-foot",children:a("div",{class:"snag-dk-menus snag-dk-menus-up",onKeyDown:N,children:[T&&a("div",{class:"snag-dk-menubg","aria-hidden":"true",onClick:()=>D(!1)}),a("span",{class:"snag-dk-menuwrap",children:[a("button",{type:"button",class:"snag-dk-link","aria-expanded":T,"aria-haspopup":"menu",onClick:()=>D(!T),children:p("export.button")}),T&&a("div",{class:"snag-dk-menu snag-dk-menu-up",role:"menu",children:["md","json"].map($=>a("button",{type:"button",role:"menuitem",onClick:()=>{D(!1),r($)},children:p($==="md"?"export.md":"export.json")}))})]})]})})]})}const Le=new Map;function Yt(e){const n=[];try{for(const[t,o]of new URL(e).searchParams)Dt(t)||n.push(o&&o!=="[redacted]"?`${t}=${o}`:t)}catch{return null}return n.length?`?${n.join("&")}`:null}function Gt({att:e,load:n}){const t=j(null),[o,s]=O(!1),[r,l]=O(null);return U(()=>{let d=!1;return n(e).then(async h=>{if(!h||d)return;const u=await createImageBitmap(h);d?u.close():l(u)}).catch(()=>{}),()=>{d=!0}},[e.id,e.url]),U(()=>{const d=t.current;if(!d||!r)return;const h=142,u=h/r.width;d.width=h,d.height=Math.min(96,Math.round(r.height*u)),d.getContext("2d").drawImage(r,0,0,r.width,Math.round(d.height/u),0,0,d.width,d.height)},[r]),r?a(I,{children:[a("button",{type:"button",class:"snag-dk-shot",onClick:()=>s(!0),"aria-label":p("shot.open"),children:a("canvas",{ref:t,width:142,height:Math.min(96,Math.round(r.height*(142/r.width)))})}),o&&a(Vt,{bmp:r,onClose:()=>s(!1)})]}):null}function Vt({bmp:e,onClose:n}){const t=j(null);return U(()=>{const o=t.current;o&&(o.width=e.width,o.height=e.height,o.getContext("2d").drawImage(e,0,0))},[e]),a("div",{class:"snag-dk-lightbox",role:"dialog","aria-modal":"true","aria-label":p("shot.aria"),tabIndex:-1,ref:o=>o?.focus(),onKeyDown:o=>{o.key==="Escape"&&(o.stopPropagation(),n())},onClick:n,children:[a("canvas",{ref:t}),a("button",{type:"button",class:"snag-dk-link snag-dk-lightclose",onClick:n,children:p("shot.close")})]})}function Jt({snag:e,loadShot:n}){const t=e.context;if(!t)return null;const o=e.attachments?.find(d=>d.kind==="screenshot"),s=t.derived,r=t.viewport,l=r?Math.round(r.dpr*100)/100:1;return a("div",{class:"snag-dk-cap",children:[o&&n&&a(Gt,{att:o,load:n}),a("p",{class:"snag-dk-caplabel",children:p("capture.label")}),t.page?.route!==void 0&&a("p",{children:p("capture.page",{route:t.page.route})}),s&&r&&a(I,{children:[a("p",{children:s.os?p("capture.agent",{browser:s.browser,os:s.os}):p("capture.agent.noos",{browser:s.browser})}),a("p",{children:l===1?p("capture.device.at1x",{device:s.device,w:r.w,h:r.h}):p("capture.device",{device:s.device,w:r.w,h:r.h,dpr:l})})]}),t.capture?.reasons?.map(d=>a("p",{class:"snag-dk-capwhy",children:d},d)),t.capture?.blindSpots?.map(d=>a("p",{class:"snag-dk-capwhy",children:d},d)),(()=>{const d=Yt(t.url);return d?a("p",{class:"snag-dk-capwhy",children:[p("detail.filedat",{query:d})," ",a("a",{class:"snag-dk-openq",href:t.url,target:"_blank",rel:"noreferrer",children:p("detail.openquery")})]}):null})()]})}function An(e){const n=e.context?.url??e.route;return`${n}${n.includes("?")?"&":"?"}${nt("t")}=${e.key}`}function Qt({snag:e}){const[n,t]=O(!1),o=An(e);return navigator.clipboard?a("button",{type:"button",class:"snag-dk-link",onClick:()=>void navigator.clipboard.writeText(o).then(()=>{t(!0),setTimeout(()=>t(!1),1500)},()=>{}),children:p(n?"permalink.copied":"permalink.copy")}):null}function Xt({snag:e}){return navigator.clipboard?null:a("p",{class:"snag-dk-permaline",children:[a("span",{class:"snag-dk-permalabel",children:p("permalink.copy")})," ",a("span",{class:"snag-dk-permaurl",children:An(e)})]})}let Ie=null;function Zt({snag:e,list:n,onAssign:t}){const[o,s]=O([]);U(()=>{n&&(Ie??=n().catch(()=>(Ie=null,[])),Ie.then(s))},[n]);const r=e.assignee??null;if(!n||!t)return r?a("p",{class:"snag-dk-field",children:[a("span",{class:"snag-dk-dim",children:p("field.assignee")})," ",a("strong",{children:r.name})]}):null;const l=r&&!o.some(d=>d.id===r.id)?[r,...o]:o;return a("label",{class:"snag-dk-field",children:[a("span",{class:"snag-dk-dim",children:p("field.assignee")}),a("select",{class:"snag-dk-select",value:r?.id??"",onChange:d=>{const h=d.target.value;t(e.id,l.find(u=>u.id===h)??null)},children:[a("option",{value:"",children:p("assignee.none")}),l.map(d=>a("option",{value:d.id,children:d.name},d.id))]})]})}function eo({snags:e,round:n,fallbackCursor:t,openId:o,onOpen:s,onStatus:r,onReply:l,onEdit:d,onDeleteComment:h,onDeleteThread:u,isMine:g,canDeleteOwnThread:y=!0,canModerate:c=!1,canStatus:m=!0,studio:b,assignees:k,onAssign:S,onShowAnyway:C,onAnnounce:w,loadShot:f}){const E=e.findIndex(_=>_.id===o),T=E>=0,D=_=>g?g(_):!0,N=T?E:Math.min(t,e.length),v=T?e[E]:n.find(_=>_.id===o),$=o?Le.get(o)??"":"",[R,B]=O($),[ke,be]=O($.length>0),xe=j(null),Ue=j(null),ve=_=>{B(_),o&&(_?Le.set(o,_):Le.delete(o))},ye=wt(),[X]=O(!ye.name),[q,je]=O(b?.member??null),[Z,zn]=O(ye.name??""),[G,Ln]=O(ye.email??""),[In,He]=O(!1),ee=G.trim().length>0&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(G.trim()),Fe=!!R.trim()&&(!!q||!X||!!Z.trim()&&!ee);U(()=>{ke&&(X&&!q&&!Z.trim()?Ue:xe).current?.focus()},[ke]);const Un=()=>{b&&(He(!1),vt(b.host,b.uid,b.env).then(_=>{if(_==="blocked")return He(!0);_&&(b.adopt(_),je(_.reviewer.name),xe.current?.focus())}))},Be=()=>{if(!v||!Fe)return;let _;q?_=q:X&&(_=Z.trim(),$t({name:_,...G.trim()?{email:G.trim()}:{}})),l(v.id,R.trim(),_),ve(""),be(!1)};if(!v)return null;const H=v.comments[0]?.body==null?void 0:v.comments[0],jn=n.filter(_=>_.route===v.route).findIndex(_=>_.id===v.id)+1;return a("div",{class:"snag-dk-detail",children:[a("div",{class:"snag-dk-detailhd",children:[a("button",{type:"button",class:"snag-dk-link",onClick:()=>s(null),"aria-label":p("dock.back.aria"),children:[a("span",{"aria-hidden":"true",children:"\u2190"})," ",p("dock.back")]}),a("span",{class:"snag-dk-dim",children:p("dock.position",{n:T?z(N+1):"\u2013",total:z(e.length)})}),a("span",{class:"snag-dk-nav",children:[a("button",{type:"button",class:"snag-dk-link",disabled:N<=0,"aria-label":p("dock.prev"),onClick:()=>s(e[N-1].id),children:"\u2191"}),a("button",{type:"button",class:"snag-dk-link",disabled:T?N>=e.length-1:N>=e.length,"aria-label":p("dock.next"),onClick:()=>s(e[T?N+1:N].id),children:"\u2193"})]})]}),a("div",{class:"snag-dk-card",children:[a("div",{class:"snag-dk-meta",children:[a("span",{class:"snag-dk-num",style:{background:he(v.status),color:yn(v.status)},children:jn}),a("strong",{children:H?.author.name??p("author.unknown")}),a("span",{class:"snag-dk-dim",children:v.key}),H&&a(Tn,{iso:H.createdAt}),a(Qt,{snag:v})]}),a("div",{class:"snag-dk-cardbody",children:Sn(H?.body??"")}),a(Xt,{snag:v}),H&&(D(H.author)||c)&&a(Rn,{body:H.body,...D(H.author)?{onEdit:_=>d(H.id,_)}:{},deleteLabel:p("comment.delete"),...c||y&&v.comments.every(_=>D(_.author))?{onDelete:()=>u(v.id)}:{}})]}),m?a("label",{class:"snag-dk-field",children:[a("span",{class:"snag-dk-dim",children:p("field.status")}),a("select",{class:"snag-dk-select",style:{borderColor:he(v.status)},value:v.status,onChange:_=>{const ne=_.target.value;r(v.id,ne),w?.(p("announce.status",{key:v.key,status:fe(ne)}))},children:ze.map(_=>a("option",{value:_,children:fe(_)},_))})]}):a("p",{class:"snag-dk-field","data-status-locked":!0,children:[a("span",{class:"snag-dk-dim",children:p("field.status")}),a("strong",{children:fe(v.status)}),a("span",{class:"snag-dk-dim",children:p("field.status.locked")})]}),a(Zt,{snag:v,...k&&S?{list:k,onAssign:S}:{}}),a(Jt,{snag:v,...f?{loadShot:f}:{}}),v.anchorReasons?.includes("hidden")&&a("p",{class:"snag-dk-moved-note",children:[p("detail.hidden")," ",a("button",{type:"button",class:"snag-dk-link",onClick:()=>C?.(v),children:p("detail.hidden.show")})]}),v.anchorState!=="anchored"&&a("p",{class:"snag-dk-moved-note",children:[p(`detail.${v.anchorState}`,{label:v.anchor.label}),v.anchorReasons?.includes("budget-exceeded")&&` ${p("detail.unavailable")}`]}),v.anchorState!=="anchored"&&a(jt,{anchor:v.anchor}),Q(v).length>0&&a("ul",{class:"snag-dk-replies-list",children:Q(v).map(_=>a("li",{children:[a("strong",{children:_.author.name})," ",a(Tn,{iso:_.createdAt}),Sn(_.body??""),(D(_.author)||c)&&a(Rn,{body:_.body,...D(_.author)?{onEdit:ne=>d(_.id,ne)}:{},deleteLabel:p("reply.delete"),onDelete:()=>h(_.id)})]},_.id))}),ke?a("div",{class:"snag-dk-replybox",children:[q?a("p",{class:"snag-dk-who",children:[p("who.member",{name:q})," ",a("button",{type:"button",class:"snag-dk-link",onClick:()=>{b?.signOut(),je(null)},children:p("who.signout")})]}):X&&a(I,{children:[a("input",{ref:Ue,class:"snag-input",type:"text",autocomplete:"name",placeholder:p("who.name"),"aria-label":p("who.name"),value:Z,onInput:_=>zn(_.target.value)}),a("input",{class:`snag-input${ee?" snag-input--bad":""}`,type:"email",inputMode:"email",autocomplete:"email",placeholder:p("who.email"),"aria-label":p("who.email"),"aria-invalid":ee?"true":void 0,value:G,onInput:_=>Ln(_.target.value)}),ee&&a("p",{class:"snag-dk-who",children:p("who.email.bad")})]}),b&&!q&&a("p",{class:"snag-dk-who",children:[a("button",{type:"button",class:"snag-dk-link",onClick:Un,children:p("who.signin")}),In&&a("span",{role:"status",children:[" ",p("who.signin.blocked")]})]}),a("textarea",{ref:xe,class:"snag-text",rows:2,enterkeyhint:"enter","aria-label":p("reply.aria"),placeholder:p("reply.placeholder"),value:R,onInput:_=>ve(_.target.value),onKeyDown:_=>{_.key==="Enter"&&(_.metaKey||_.ctrlKey)&&(_.preventDefault(),Be()),_.key==="Escape"&&(_.stopPropagation(),_.target.blur())}}),a("div",{class:"snag-actions",children:[a("button",{type:"button",class:"snag-cancel",onClick:()=>{ve(""),be(!1)},children:p("action.cancel")}),a("button",{type:"button",class:"snag-send",disabled:!Fe,onClick:Be,children:p("reply.send")})]})]}):a("button",{type:"button",class:"snag-dk-addreply",onClick:()=>be(!0),children:p("reply.add")})]})}function no(e){const n=e.openId?e.snags.find(k=>k.id===e.openId):null,t=j(null),o=e.clusterFilter?e.snags.filter(k=>e.clusterFilter.includes(k.id)):e.snags,s=Ot(o.filter(k=>Nt(k,e.filter,e.seenAt)),e.filter,e.route,e.seenAt),r=zt(s,e.filter.sort),l=e.filter.sort==="page"?Bt(r,e.route):[{route:"",here:!1,snags:r}],d=l.flatMap(k=>k.snags),h=j(0),u=d.findIndex(k=>k.id===e.openId);u>=0&&(h.current=u);const g=j(null),[y,c]=O(null);e.openId?(g.current={id:e.openId,absent:u===-1},y&&c(null)):g.current?.absent&&y!==g.current.id&&(c(g.current.id),g.current=null),U(()=>{t.current?.focus()},[e.openId]),U(()=>{if(!(window.matchMedia?.("(pointer: coarse)").matches??!1))return;const k=t.current;return k?gt(k):void 0},[]);const m=j({snag:n,onStatus:e.onStatus,can:e.canStatus!==!1});m.current={snag:n,onStatus:e.onStatus,can:e.canStatus!==!1},U(()=>{const k=S=>{const{snag:C,onStatus:w,can:f}=m.current;if(!C||!f||S.metaKey||S.ctrlKey||S.altKey||S.composedPath().some(D=>{const N=D;if(!N?.tagName)return!1;const v=N.tagName.toLowerCase();return v==="textarea"||v==="select"?!0:v==="input"?!/^(button|submit|checkbox|radio)$/i.test(N.type):N.isContentEditable?!0:/^(textbox|searchbox|combobox)$/.test(N.getAttribute?.("role")??"")}))return;const T=Number(S.key);if(T>=1&&T<=ze.length){S.preventDefault(),w(C.id,ze[T-1]);return}(S.key==="r"||S.key==="R")&&(S.preventDefault(),w(C.id,C.status==="resolved"?"open":"resolved"))};return document.addEventListener("keydown",k),()=>document.removeEventListener("keydown",k)},[]);const b=window.matchMedia?.("(pointer: coarse)").matches??!1;return a("aside",{ref:t,class:"snag-dk",role:"complementary","aria-label":p("dock.aria"),tabIndex:-1,onKeyDown:k=>{k.key==="Escape"&&(k.stopPropagation(),e.openId?e.onOpen(null):e.onClose())},children:[b&&a("div",{class:"snag-dk-scrim","aria-hidden":"true",onClick:e.onClose}),b&&a("div",{class:"snag-dk-grab","aria-hidden":"true",onPointerDown:k=>{const S=k.clientY,C=k.currentTarget;try{C.setPointerCapture(k.pointerId)}catch{}C.onpointermove=w=>{w.clientY-S>56&&(C.onpointermove=null,e.onClose())},C.onpointerup=()=>C.onpointermove=null},children:a("span",{})}),a("header",{class:"snag-dk-hd",children:[!n&&e.rounds&&e.rounds.length>1&&e.onRound?a("span",{class:"snag-dk-roundwrap",children:[a("select",{class:"snag-dk-round","aria-label":p("round.label"),value:String(e.activeRound??""),onChange:k=>e.onRound(Number(k.currentTarget.value)),children:e.rounds.map(k=>a("option",{value:String(k.number),children:[k.name,k.closed?` ${p("round.closed")}`:""]},k.number))}),a("svg",{class:"snag-dk-roundcaret",width:"10",height:"10",viewBox:"0 0 8 8","aria-hidden":"true",children:a("path",{d:"M1 2.5 4 5.5 7 2.5",fill:"none",stroke:"currentColor","stroke-width":"1.4"})})]}):a("strong",{children:p(n?"dock.title.detail":"dock.title.list")}),a("button",{type:"button",class:"snag-dk-link",onClick:e.onClose,"aria-label":p("dock.close"),children:"\u2715"})]}),n?a(eo,{...e,snags:d,round:e.snags,fallbackCursor:h.current},n.id):a(Wt,{...e,groups:l,hiddenNote:y,onHiddenShow:k=>{c(null),e.onOpen(k)}})]})}const Pn=360,to=` .snag-dk{position:fixed;inset-block:0;inset-inline-end:0;width:${Pn}px;max-width:100vw;z-index:${ct.dock};background:${i.bg};color:${i.fg};display:flex;flex-direction:column;font:400 13px/1.45 ${i.font};box-shadow:${i.shadow};border-inline-start:1px solid ${i.border};pointer-events:auto;overscroll-behavior:contain}.snag-dk-filters{padding:10px 14px 6px;border-block-end:1px solid ${i.border};display:grid;gap:8px;flex:0 0 auto}.snag-dk-searchwrap{position:relative;display:flex}.snag-dk-searchicon{position:absolute;inset-inline-start:9px;top:50%;transform:translateY(-50%);color:${i.muted};pointer-events:none}.snag-dk-search{width:100%;box-sizing:border-box;font-size:12px;padding:6px 8px;padding-inline-start:28px}.snag-dk-chiphead{display:flex;justify-content:space-between;align-items:center;margin-block-end:-4px}.snag-dk-chiphead .snag-dk-menutitle{padding:0}.snag-dk-selectall{font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding:2px 4px;margin-inline-end:-4px}.snag-dk-chips{display:grid;grid-template-columns:1fr 1fr;gap:6px}.snag-dk-chip{font:500 12px/1.2 ${i.font};color:${i.fg};padding:7px 10px;border-radius:6px;border:1px solid ${i.border};background:none;cursor:pointer;text-align:start;display:flex;align-items:center;gap:7px;min-width:0;transition:background ${i.motion},border-color ${i.motion}}.snag-dk-chip:hover{background:${i.hover}}.snag-dk-chip:focus-visible{outline:2px solid ${i.focus};outline-offset:1px}.snag-dk-chip[aria-pressed="true"]{font-weight:600}.snag-dk-chipdot{flex:0 0 8px;width:8px;height:8px;border-radius:50%;forced-color-adjust:none}.snag-dk-chiplabel{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.snag-dk-chipn{flex:0 0 auto;color:${i.muted};font-variant-numeric:tabular-nums}.snag-dk-chip-stray{color:${i.muted};cursor:default}.snag-dk-chip-stray:hover{background:none}@media (forced-colors:active){.snag-dk-chip[aria-pressed="true"]{border:2px solid Highlight;padding:6px 9px}}.snag-dk-menus{display:flex;gap:4px;position:relative;margin-inline-start:-6px}.snag-dk-trigger{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:500;position:relative;z-index:3}.snag-dk-menuwrap{position:relative}.snag-dk-menugroup{display:flex;flex-direction:column;gap:1px;padding-bottom:6px;margin-bottom:6px;border-bottom:1px solid ${i.border}}.snag-dk-menugroup-last{padding-bottom:0;margin-bottom:0;border-bottom:0}.snag-dk-menutitle{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:${i.muted};padding:2px 8px 4px}.snag-dk-menubg{position:absolute;inset:-200px -20px -2000px;background:transparent;z-index:2}.snag-dk-menu{position:absolute;inset-block-start:100%;inset-inline-start:0;z-index:3;min-width:150px;background:${i.bg};border:1px solid ${i.border};border-radius:6px;box-shadow:${i.shadow};display:grid;padding:4px}.snag-dk-menu button{font:400 12px/1.3 ${i.font};color:${i.fg};background:none;border:0;text-align:start;padding:5px 8px;border-radius:4px;cursor:pointer;display:flex;gap:4px}.snag-dk-menu button:hover{background:color-mix(in srgb,${i.fg} 8%,transparent)}.snag-dk-menus-up{position:relative}.snag-dk-menu-up{inset-block-start:auto;inset-block-end:100%;margin-block-end:4px}.snag-dk-menu-form{padding:8px;gap:6px;min-width:224px}.snag-dk-menu-form label:not(.snag-dk-pageonly){display:grid;gap:2px;font:600 10px/1.4 ${i.font};letter-spacing:.05em;text-transform:uppercase;color:${i.muted}}.snag-dk-menu-form select{font:400 12px/1.3 ${i.font};color:${i.fg};background:${i.bg};border:1px solid ${i.border};border-radius:4px;padding:4px}.snag-dk-pageonly{display:flex;align-items:center;gap:6px;font-size:12px;color:${i.fg};cursor:pointer}.snag-dk-permaline{margin:6px 0 0;font-size:11px;color:${i.muted};overflow-wrap:anywhere}.snag-dk-permalabel{font-weight:600}.snag-dk-permaurl{user-select:all}.snag-dk:focus{outline:none}@media (pointer:coarse){.snag-dk{inset-block-start:auto;inset-inline-start:0;width:auto;height:82vh;border-radius:14px 14px 0 0;box-sizing:border-box;padding-bottom:max(var(${x.tbH},68px),var(${x.kb},0px));padding-inline:env(safe-area-inset-left) env(safe-area-inset-right)}.snag-dk-scrim{position:fixed;inset:0;background:#0005;touch-action:none;z-index:-1}.snag-dk-grab{display:flex;justify-content:center;padding:10px 0 4px;touch-action:none}.snag-dk-grab span{width:36px;height:4px;border-radius:2px;background:${i.border}}.snag-dk-item{min-height:56px}.snag-dk-link{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}.snag-dk-select{min-height:44px}.snag-dk-chip{min-height:44px}.snag-dk-search{min-height:44px}.snag-dk-round{min-height:44px}}@media (pointer:fine){.snag-dk-scrim,.snag-dk-grab{display:none}}.snag-dk-hd{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid ${i.border};flex:0 0 auto}.snag-dk-scroll{overflow-y:auto;flex:1 1 auto}.snag-dk-list{list-style:none;margin:0;padding:0}.snag-dk-grouphd{position:sticky;top:0;z-index:1;margin:0;display:flex;align-items:center;gap:8px;padding:7px 14px;font:600 11px/1.45 ${i.font};letter-spacing:.02em;background:${i.sunken};border-bottom:1px solid ${i.border}}.snag-dk-route{color:${i.fg};overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;direction:ltr;unicode-bidi:isolate}.snag-dk-grouphd .snag-dk-dim{margin-inline-start:auto;font-weight:400;flex:0 0 auto}.snag-dk-goto{flex:0 0 auto;color:${i.muted};font-size:13px;line-height:1}.snag-dk-dev{flex:0 0 auto;color:${i.muted};display:flex;align-items:center}.snag-dk-item:hover .snag-dk-goto,.snag-dk-item:focus-visible .snag-dk-goto{color:${i.accent}}.snag-dk-item{display:flex;gap:10px;align-items:flex-start;width:100%;text-align:start;background:transparent;border:0;border-bottom:1px solid ${i.border};color:inherit;font:inherit;padding:11px 14px;cursor:pointer;transition:background ${i.motion}}.snag-dk-item:hover{background:${i.hover}}.snag-dk-item:focus-visible{outline:2px solid ${i.focus};outline-offset:-2px}.snag-dk-dot{flex:0 0 7px;width:7px;height:7px;border-radius:50%;margin-block-start:8px;background:transparent}.snag-dk-dot--on{background:${i.accent}}.snag-dk-newpill{margin-inline-start:auto;font-weight:600;white-space:nowrap}.snag-dk-newpill[aria-pressed="true"]{background:${i.sunken};border-radius:6px}.snag-dk-newpill:hover{background:${i.hover}}.snag-dk-newpill:focus-visible{outline:2px solid ${i.focus};outline-offset:-2px}.snag-dk-num{flex:0 0 22px;height:22px;border-radius:50% 50% 50% 2px;font-weight:600;font-size:11px;line-height:1;display:flex;align-items:center;justify-content:center;box-sizing:border-box}.snag-dk-num--orphaned{border:2px solid currentColor;box-shadow:inset 0 0 0 2px currentColor}.snag-dk-num--approximate{border:2px dashed currentColor}.snag-dk-main{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 auto}.snag-dk-body,.snag-dk-sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.snag-dk-sub{font-size:11px}.snag-dk-dim{color:${i.muted}}.snag-dk-moved{color:${i.anchorOrphan};font-weight:600}.snag-dk-replies{background:${i.surface};border-radius:999px;padding:1px 7px;font-size:11px;flex:0 0 auto}@keyframes snag-dk-pulse{50%{opacity:.45}}.snag-dk-skel li{display:flex;gap:10px;padding:11px 14px 11px 31px;border-bottom:1px solid ${i.border}}.snag-dk-skel span{flex:1;display:grid;gap:6px}.snag-dk-skel i{display:block;height:9px;border-radius:4px;background:${i.sunken};animation:snag-dk-pulse 1.2s ease-in-out infinite}.snag-dk-skel li>i{flex:0 0 22px;height:22px;border-radius:50% 50% 50% 2px}.snag-dk-skel span i:last-child{width:45%}.snag-dk-progress{height:2px;flex:0 0 auto;margin-block-end:-2px;position:relative;z-index:2;background:linear-gradient(90deg,transparent,${i.accent},transparent) 0 0/40% 100% no-repeat;animation:snag-dk-slide 1s linear infinite}@keyframes snag-dk-slide{from{background-position:-70% 0}to{background-position:170% 0}}@media (prefers-reduced-motion:reduce){.snag-dk-skel i,.snag-dk-progress{animation:none}.snag-dk-progress{background:${i.accent}}}.snag-dk-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.snag-dk-empty{padding:28px 16px;text-align:center;flex:1 1 auto}.snag-dk-empty p{margin:0 0 4px}.snag-dk-notice{margin:0;padding:11px 14px;font-size:12px;color:${i.muted};border-bottom:1px solid ${i.border};flex:0 0 auto}.snag-dk-roundwrap{position:relative;display:inline-flex;align-items:center;min-width:0;flex:0 1 auto}.snag-dk-round{appearance:none;-webkit-appearance:none;background:${i.sunken};border:1px solid ${i.border};color:${i.fg};font:600 13px/1.45 ${i.font};padding-block:4px;padding-inline:10px 26px;border-radius:6px;cursor:pointer;max-width:100%;text-overflow:ellipsis;transition:background ${i.motion}}.snag-dk-round:hover{background:${i.hover}}.snag-dk-round:focus-visible{outline:2px solid ${i.focus};outline-offset:1px}.snag-dk-round option{background:${i.bg};color:${i.fg};font-weight:400}.snag-dk-roundcaret{position:absolute;inset-inline-end:10px;color:${i.muted};pointer-events:none}.snag-dk-foot{display:flex;gap:6px;padding:10px 14px;border-top:1px solid ${i.border};flex:0 0 auto}.snag-dk-link{background:transparent;border:0;color:${i.accent};font:inherit;cursor:pointer;padding:4px 6px;border-radius:calc(${i.radius} - 2px);transition:background ${i.motion}}.snag-dk-link:hover:not(:disabled){background:${i.hover}}.snag-dk-link:disabled{color:${i.disabled};cursor:not-allowed}.snag-dk-link:focus-visible{outline:2px solid ${i.focus};outline-offset:1px}.snag-dk-detail{padding:12px 14px;overflow-y:auto;flex:1 1 auto;display:flex;flex-direction:column;gap:12px}.snag-dk-detailhd{display:flex;align-items:center;justify-content:space-between;gap:8px}.snag-dk-nav{display:flex;gap:2px}.snag-dk-card{background:${i.surface};border-radius:${i.radius};padding:11px}.snag-dk-meta{display:flex;justify-content:space-between;gap:8px;font-size:12px;margin-bottom:6px}.snag-md{overflow-wrap:anywhere}.snag-md>*{margin:0}.snag-md>*+*{margin-block-start:6px}.snag-md p{white-space:pre-wrap}.snag-md ul,.snag-md ol{padding-inline-start:20px}.snag-md li+li{margin-block-start:2px}.snag-md code{background:${i.sunken};border-radius:3px;padding:1px 4px;font-size:.92em;font-family:ui-monospace,monospace}.snag-md pre{background:${i.sunken};border-radius:${i.radius};padding:8px 10px;overflow-x:auto}.snag-md pre code{background:none;padding:0;font-size:.92em}.snag-md a{color:${i.accent}}.snag-dk-field{display:flex;flex-direction:column;gap:4px;font-size:12px}.snag-dk-select{background:${i.surface};color:inherit;border:2px solid;border-radius:${i.radius};padding:7px 9px;font:inherit;min-height:34px}.snag-dk-done{color:${i.muted};text-decoration:line-through}.snag-dk-meta .snag-dk-num{margin-inline-end:2px}.snag-dk-cap{background:${i.sunken};border-radius:${i.radius};padding:9px 11px;display:flex;flex-direction:column;gap:1px;font-size:12px;overflow-wrap:anywhere}.snag-dk-cap p{margin:0}.snag-dk-shot{padding:0;border:1px solid ${i.border};border-radius:calc(${i.radius} - 2px);background:none;cursor:zoom-in;overflow:hidden;line-height:0;align-self:flex-start;margin-block-end:6px}.snag-dk-shot canvas{display:block;max-width:100%}.snag-dk-lightbox{position:fixed;inset:0;z-index:1;background:#000c;display:flex;align-items:center;justify-content:center;padding:24px;cursor:zoom-out}.snag-dk-lightbox canvas{max-width:100%;max-height:100%;object-fit:contain;box-shadow:${i.shadow};background:${i.bg}}.snag-dk-lightclose{position:absolute;inset-block-start:12px;inset-inline-end:16px;color:#fff}.snag-dk-caplabel{font-weight:600;font-size:11px;letter-spacing:.02em;margin-bottom:3px!important}.snag-dk-capwhy{color:${i.muted};font-size:11px;margin-top:5px!important}.snag-dk-moved-note{margin:0;padding:8px 10px;font-size:12px;background:${i.sunken};border-inline-start:3px solid ${i.anchorOrphan};border-radius:${i.radius}}.snag-dk-anchor{font-size:12px;border:1px solid ${i.border};border-radius:${i.radius};padding:6px 10px;background:${i.sunken}}.snag-dk-anchor summary{cursor:pointer;color:${i.muted};font-weight:600;list-style:revert}.snag-dk-anchor dl{margin:8px 0 2px;display:grid;gap:6px}.snag-dk-anchor dt{color:${i.muted};font-size:11px;letter-spacing:.03em;text-transform:uppercase}.snag-dk-anchor dd{margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;overflow-wrap:anywhere;user-select:text}.snag-dk-replies-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.snag-dk-replies-list li{background:${i.sunken};border-radius:${i.radius};padding:9px;overflow-wrap:anywhere}.snag-dk-acts{display:flex;gap:2px;margin-top:6px}.snag-dk-act{background:transparent;border:0;color:${i.muted};font:inherit;font-size:11px;cursor:pointer;padding:3px 6px;border-radius:calc(${i.radius} - 3px);transition:background ${i.motion},color ${i.motion}}.snag-dk-more{font-size:14px;line-height:1;letter-spacing:1px}.snag-dk-act:hover{background:${i.hover};color:inherit}.snag-dk-act:focus-visible{outline:2px solid ${i.focus};outline-offset:1px}.snag-dk-act--danger:hover{color:${i.anchorOrphan}}.snag-dk-menu .snag-dk-act--danger{color:${i.fg}}.snag-dk-menu .snag-dk-act--danger:hover{color:${i.anchorOrphan}}.snag-dk-armed{color:${i.anchorOrphan};font-weight:600}.snag-dk-clear{margin-inline-start:auto}.snag-dk-menu .snag-dk-clear{margin-inline-start:0}.snag-dk-editbox{display:flex;flex-direction:column;gap:8px;margin-top:8px}.snag-dk-addreply{background:transparent;border:1px dashed ${i.border};color:${i.muted};border-radius:${i.radius};padding:9px;font:inherit;cursor:pointer;text-align:start;transition:border-color ${i.motion},color ${i.motion}}.snag-dk-addreply:hover{border-color:${i.accent};color:inherit}.snag-dk-replybox{display:flex;flex-direction:column;gap:8px}.snag-dk-who{margin:0;font-size:11px;color:${i.muted}}.snag-dk-who .snag-dk-link{padding:0;font-size:inherit;text-decoration:underline}`;function oo(e,n,t){const o=e.ownerDocument??document;$n(e,"form",ut),$n(e,"dock",to);const s=o.createElement("div");(t??e).appendChild(s);const r=o.defaultView?.matchMedia?.("(pointer: coarse)").matches??!1,l=h=>{const u=e.host;h&&!r?u.style.setProperty(x.dockW,`${Pn}px`):u.style.removeProperty(x.dockW)};l(!0);const d=h=>{rn(a(no,{...h}),s)};return d(n),{update:d,close(){l(!1),rn(null,s),s.remove()}}}const Nn=24;function On(e,n){const t=e.innerHeight,o=n.querySelector(".snag-dk");if(!o)return{top:0,bottom:t};const s=o.getBoundingClientRect();return s.height>=t-1?{top:0,bottom:t}:{top:0,bottom:Math.max(0,s.top)}}function ao(e,n,t){const o=t.anchor.rect;if(!o)return;const s=t.anchor.offset??{fy:.5},r=o.y+o.h*s.fy,l=On(e,n),d=r-e.scrollY;if(d>=l.top+Nn&&d<=l.bottom-Nn)return;const h=e.matchMedia?.("(prefers-reduced-motion: reduce)").matches??!1;e.scrollTo({top:Math.max(0,r-(l.top+l.bottom)/2),behavior:h?"auto":"smooth"})}export{oo as openDock,ao as scrollToSnag,On as visibleStrip};
5
+ `)))):o++}return L("div",{class:"snag-md"},t)}const bt=`${Qn}session`;function xt(e,n,t){if(e.origin!==n||!t||e.source!==t)return!1;const o=e.data;return!!o&&o.type===bt&&typeof o.session?.sessionToken=="string"&&typeof o.session.reviewer?.name=="string"}function vt(e,n,t,o){const s=new URLSearchParams({project:n,origin:t});return o&&s.set("env",o),`${new URL(e).origin}/widget-signin?${s}`}function yt(e,n,t){const o=new URL(e).origin,s=window.open(vt(e,n,location.origin,t),`${Jn}-signin`,"popup,width=480,height=600");return s?new Promise(r=>{let l=0;const d=g=>{removeEventListener("message",h),clearInterval(u),r(g)},h=g=>{xt(g,o,s)&&d(g.data.session)};addEventListener("message",h);const u=setInterval(()=>{s.closed&&++l>1&&d(null)},400)}):Promise.resolve("blocked")}function En(){let e=null;try{e=localStorage.getItem(dn)}catch{return{}}if(!e)return{};if(e[0]!=="{")return{name:e};try{const n=JSON.parse(e);return n&&typeof n=="object"?n:{}}catch{return{}}}function wt(e){try{localStorage.setItem(dn,JSON.stringify(e))}catch{}}function $t(){const e=En();return{name:typeof e.name=="string"?e.name:"",...e.email?{email:e.email}:{}}}function St(e){const n=En();wt({...n,name:e.name,...e.email?{email:e.email}:{}})}const Ct={"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={"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.signin":"Studio member? Sign in","composer.signin.blocked":"Allow pop-ups for this page to sign in.","composer.member":"Commenting as {name}","composer.signout":"Not you? Sign out","composer.round.closed":"This round is closed \u2014 your comment goes to {round}.","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?"},Mt={"shot.open":"See the screenshot","shot.aria":"Screenshot","shot.close":"Close","announce.status":"Comment {key} set to {status}.","search.placeholder":"Search {n} comments\u2026","search.aria":"Search comments","round.label":"Round","round.closed":"(closed)","filter.status":"Status","filter.selectall":"Select all","filter.clear":"Clear","sort.button":"Sort","sort.newest":"Newest first","sort.oldest":"Oldest first","sort.page":"By page","filter.button":"Filter","filter.button.n":"Filter \xB7 {n}","filter.by":"Comments by","filter.by.anyone":"Anyone","filter.assignee":"Assigned to","filter.assignee.anyone":"Anyone","filter.assignee.none":"Unassigned","filter.unknown":"Unknown","filter.pages":"Pages","filter.pages.all":"All pages","filter.pageonly":"Show comments on this page only","filter.new":"See new activity \xB7 {n}","filter.new.on":"Showing new activity \u2014 show all","filter.new.none":"You\u2019re caught up \u2014 show all","filter.new.markread":"Mark all read","filter.read":"Marked as","filter.read.all":"Anyone\u2019s, read or not","filter.read.unread":"Unread","filter.read.read":"Read","dock.unread":"Unread","badge.anchored":"","badge.approximate":"~","badge.orphaned":"moved","badge.hidden":"hidden","capture.label":"Comment left on","capture.page":"{route}","device.Mobile":"Mobile","device.Desktop":"Desktop","dock.aria":"All comments","dock.title.list":"All comments","dock.title.detail":"Comment","dock.close":"Close all comments","dock.empty":"No comments yet. Press +, then click anything on the page.","dock.empty.filter":"Nothing matches that filter.","dock.empty.orphans":"Every comment here lost its element \u2014 but what each one pointed at is still recorded.","dock.empty.page":"Nothing on this page. {n} comments on {m} other pages.","dock.loading":"Loading comments\u2026","dock.row.empty":"(no comment)","dock.replies":"{n} replies","dock.goto":"Go to {route}","dock.cluster":"{n} comments in this cluster","dock.cluster.clear":"Show all","dock.hiddenrow":"That comment is now hidden by your filter","dock.hiddenrow.show":"Show","dock.back":"All","dock.back.aria":"Back to all comments","dock.position":"{n} of {total}","dock.prev":"Previous comment","dock.next":"Next comment","dock.clear":"Clear all","dock.clear.aria":"Delete every comment in this review","comment.edit":"Edit this comment","comment.delete":"Delete this comment and its pin","reply.delete":"Delete this reply","team.only":"Team only","team.only.title":"Only the studio sees this, not the client","time.now":"just now","who.name":"Your name","who.email":"Email, so we can reply","who.email.bad":"Check the address \u2014 or leave it blank.","who.signin":"Studio member? Sign in","who.signin.blocked":"Allow pop-ups for this page to sign in.","who.member":"Replying as {name}","who.signout":"Not you? Sign out","detail.hidden.show":"Show anyway","field.status":"Status","field.status.locked":"Only the studio can change status here.","field.assignee":"Assigned to","assignee.none":"Unassigned","permalink.copy":"Copy link","permalink.copied":"Copied","reply.add":"Add reply","reply.aria":"Reply","reply.placeholder":"Reply\u2026","reply.send":"Reply","action.more":"More actions","action.edit":"Edit","action.delete":"Delete","action.save":"Save","action.sure":"Sure?","export.button":"Export","export.md":"Markdown","export.json":"JSON"},Tt={...yn,...Ct,...Et,...Mt},p=vn(Tt),Rt=[/^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$/],Dt=[...ln.query,...ln.fragment];function At(e,n=[]){return Dt.includes(e)||n.includes(e)?!0:Rt.some(t=>t.test(e))}const Y=["open","progress","review","resolved"];function Pt(e,n){return e.includes(n)?e.length>1?e.filter(t=>t!==n):[...e]:[...e,n]}const Nt=["open"];function Mn(e){return e.length>0&&!Y.every(n=>e.includes(n))}function Ot(e,n,t){if(Mn(n.statuses)&&Y.includes(e.status)&&!n.statuses.includes(e.status)||n.by&&e.createdBy.id!==n.by||n.assignee!==void 0&&(e.assignee?.id??null)!==n.assignee||n.page&&e.route!==n.page)return!1;if(n.read!=="all"&&t){const o=_e(e,t);if(n.read==="unread"&&!o||n.read==="read"&&o)return!1}return!0}function _e(e,n){const t=n.get(e.id)??0;return Date.parse(e.updatedAt)>t}function zt(e,n,t,o){let s=e;n.pageOnly&&(s=s.filter(l=>l.route===t)),n.newOnly&&o&&(s=s.filter(l=>_e(l,o)));const r=n.q?.trim().toLowerCase();return r&&(s=s.filter(l=>l.comments.some(d=>(d.body??"").toLowerCase().includes(r)||d.author.name.toLowerCase().includes(r))||l.createdBy.name.toLowerCase().includes(r))),s}function Lt(e,n){if(n==="page")return e;const t=(s,r)=>Date.parse(s.createdAt)-Date.parse(r.createdAt),o=[...e].sort(t);return n==="oldest"?o:o.reverse()}function It(e){const n=new Map;for(const t of e)n.set(t.status,(n.get(t.status)??0)+1);return{all:e.length,byStatus:n}}function Ut(e){return(e.read!=="all"?1:0)+(e.by?1:0)+(e.assignee!==void 0?1:0)+(e.page?1:0)}const ze=Object.keys(ge),Q=e=>e.comments.slice(1).filter(n=>n.body!==null);function Tn({label:e,title:n,cls:t,role:o,onConfirm:s}){const{armed:r,press:l}=gt(s);return a("button",{type:"button",...o===void 0?{}:{role:o},class:`${t}${r?" snag-dk-armed":""}`,"aria-label":r?`${p("action.sure")} ${n}`:n,title:n,onClick:l,children:r?p("action.sure"):e})}function Ht({snag:e}){const n=e.context?.derived?.device;if(!n)return null;const t=p(`device.${n}`);return a("span",{class:"snag-dk-dev",title:t,"aria-label":t,role:"img",children:n==="Mobile"?a("svg",{width:"11",height:"14",viewBox:"0 0 11 14",fill:"none","aria-hidden":"true",children:[a("rect",{x:".75",y:".75",width:"9.5",height:"12.5",rx:"1.75",stroke:"currentColor","stroke-width":"1.5"}),a("path",{d:"M4.5 11h2",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round"})]}):a("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none","aria-hidden":"true",children:[a("rect",{x:".75",y:"1.75",width:"12.5",height:"8.5",rx:"1.75",stroke:"currentColor","stroke-width":"1.5"}),a("path",{d:"M5 12.75h4",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round"})]})})}function jt({anchor:e}){const n=[];if(e.testid&&n.push(["testid",e.testid]),e.domid&&n.push(["id",e.domid]),e.css&&n.push(["css",e.css]),e.hostPath?.length&&n.push(["shadow host",e.hostPath.join(" >> ")]),e.role&&n.push(["role",e.role]),e.accessibleName&&n.push(["name",e.accessibleName]),e.text?.exact&&n.push(["text",e.text.exact]),e.path?.length&&n.push(["path",e.path.join(" > ")]),e.rect){const t=e.rect;n.push(["rect",`${Math.round(t.x)}, ${Math.round(t.y)} \u2014 ${Math.round(t.w)} x ${Math.round(t.h)}`])}return e.breakpoint&&n.push(["breakpoint",`${e.breakpoint} at capture \xB7 you are at ${typeof window>"u"?"?":window.innerWidth}px`]),a("details",{class:"snag-dk-anchor",children:[a("summary",{children:p("detail.details")}),a("dl",{children:n.map(([t,o])=>a("div",{children:[a("dt",{children:t}),a("dd",{children:o})]},t))})]})}function Rn({iso:e}){const n=Date.parse(e);if(!Number.isFinite(n))return null;const t=new Date(n),o=Math.round((n-Date.now())/1e3);let s;if(Math.abs(o)<45)s=p("time.now");else if(Math.abs(o)<7*86400){const r=new Intl.RelativeTimeFormat(void 0,{numeric:"auto",style:"short"}),[l,d]=Math.abs(o)<3600?[Math.round(o/60),"minute"]:Math.abs(o)<86400?[Math.round(o/3600),"hour"]:[Math.round(o/86400),"day"];s=r.format(l,d)}else s=t.toLocaleDateString(void 0,{day:"numeric",month:"short",...t.getFullYear()===new Date().getFullYear()?{}:{year:"numeric"}});return a("time",{class:"snag-dk-dim snag-dk-when",dateTime:t.toISOString(),title:t.toLocaleString(),children:s})}function Dn({body:e,onEdit:n,deleteLabel:t,onDelete:o}){const s=e??"",[r,l]=O(!1),[d,h]=O(!1),[u,g]=O(s),y=H(null),c=m=>{m.key!=="Escape"||!d||(m.stopPropagation(),h(!1))};return U(()=>{r&&y.current?.focus()},[r]),r&&n?a("div",{class:"snag-dk-editbox",children:[a("textarea",{ref:y,class:"snag-text",rows:3,"aria-label":p("comment.edit"),value:u,onInput:m=>g(m.target.value),onKeyDown:m=>{m.key==="Enter"&&(m.metaKey||m.ctrlKey)&&(m.preventDefault(),u.trim()&&(n(u.trim()),l(!1))),m.key==="Escape"&&(m.stopPropagation(),g(s),l(!1))}}),a("div",{class:"snag-actions",children:[a("button",{type:"button",class:"snag-cancel",onClick:()=>{g(s),l(!1)},children:p("action.cancel")}),a("button",{type:"button",class:"snag-send",disabled:!u.trim()||u.trim()===s,onClick:()=>{n(u.trim()),l(!1)},children:p("action.save")})]})]}):a("div",{class:"snag-dk-acts snag-dk-menus",onKeyDown:c,children:[d&&a("div",{class:"snag-dk-menubg","aria-hidden":"true",onClick:()=>h(!1)}),a("span",{class:"snag-dk-menuwrap",children:[a("button",{type:"button",class:"snag-dk-act snag-dk-more","aria-label":p("action.more"),"aria-expanded":d,"aria-haspopup":"menu",title:p("action.more"),onClick:()=>h(!d),children:"\u22EF"}),d&&a("div",{class:"snag-dk-menu",role:"menu",children:[n&&a("button",{type:"button",role:"menuitem",title:p("comment.edit"),"aria-label":p("comment.edit"),onClick:()=>{h(!1),g(s),l(!0)},children:p("action.edit")}),o&&a(Tn,{label:p("action.delete"),title:t,cls:"snag-dk-act--danger",role:"menuitem",onConfirm:o})]})]})]})}function Ft({snag:e}){const n=e.anchorReasons?.includes("hidden")??!1;return a("span",{class:"snag-dk-dim snag-dk-where",children:[n&&a(I,{children:[a("span",{class:"snag-dk-moved",children:p("badge.hidden")})," "]}),e.anchorState!=="anchored"&&a(I,{children:[a("span",{class:"snag-dk-moved",children:p(`badge.${e.anchorState}`)})," "]}),e.anchor.label]})}const Le=()=>a("span",{class:"snag-dk-team",title:p("team.only.title"),children:[a("svg",{width:"8",height:"10",viewBox:"0 0 8 10","aria-hidden":"true",children:a("path",{d:"M2 4.5V3a2 2 0 0 1 4 0v1.5M.6 4.5h6.8v5H.6z",fill:"none",stroke:"currentColor","stroke-width":"1.2"})}),p("team.only")]});function Bt(e){const n=new Map,t=new Map;for(const o of e){const s=(n.get(o.route)??0)+1;n.set(o.route,s),t.set(o.id,s)}return t}function Kt(e,n){const t=new Map;for(const o of e){const s=t.get(o.route);s?s.push(o):t.set(o.route,[o])}return[...t.entries()].map(([o,s])=>({route:o,here:o===n,snags:s})).sort((o,s)=>o.route.localeCompare(s.route))}function qt({snag:e,n,here:t,unread:o,onOpen:s,onHover:r}){const l=h=>r(t?h:null),d=t?"":p("dock.goto",{route:e.route});return a("li",{children:a("button",{type:"button",class:"snag-dk-item",onClick:()=>s(e.id),onPointerEnter:()=>l(e.id),onPointerLeave:()=>l(null),onFocus:()=>l(e.id),onBlur:()=>l(null),children:[a("span",{class:`snag-dk-dot${o?" snag-dk-dot--on":""}`,role:"img","aria-label":o?p("dock.unread"):""}),a("span",{class:`snag-dk-num${e.anchorState==="anchored"?"":` snag-dk-num--${e.anchorState}`}`,style:{background:he(e.status),color:wn(e.status)},children:n}),a("span",{class:"snag-dk-main",children:[a("span",{class:`snag-dk-body${e.status==="resolved"?" snag-dk-done":""}`,children:e.comments[0]?.body??p("dock.row.empty")}),a("span",{class:"snag-dk-sub",children:a(Ft,{snag:e})})]}),a(Ht,{snag:e}),e.private&&a(Le,{}),Q(e).length>0&&a("span",{class:"snag-dk-replies",role:"img","aria-label":p("dock.replies",{n:z(Q(e).length)}),children:z(Q(e).length)}),!t&&a("span",{class:"snag-dk-goto",role:"img",title:d,"aria-label":d,children:"\u2197"})]})})}const An=e=>i[`status${e[0].toUpperCase()}${e.slice(1)}`]??i.muted;function Wt({round:e,filter:n,onFilter:t,onClearAll:o,seenAt:s,trailing:r}){const[l,d]=O(null),h=It(e),u=Y.every(f=>n.statuses.includes(f)),g=f=>{const E={...n};for(const[T,D]of Object.entries(f))D===void 0?delete E[T]:E[T]=D;t(E)},y=Ut(n),c=[...new Map(e.map(f=>[f.createdBy.id,f.createdBy.name]))],m=[...new Map(e.flatMap(f=>f.assignee?[[f.assignee.id,f.assignee.name]]:[]))],b=n.assignee,k=[...new Set(e.map(f=>f.route))].sort(),S=[...h.byStatus.keys()].filter(f=>!Y.includes(f)),C=f=>d(l===f?null:f),w=a("svg",{class:"snag-dk-caret",width:"8",height:"8",viewBox:"0 0 8 8","aria-hidden":"true",children:a("path",{d:"M1 2.5 4 5.5 7 2.5",fill:"none",stroke:"currentColor","stroke-width":"1.4"})});return a("div",{class:"snag-dk-filters",children:[a("div",{class:"snag-dk-searchwrap",children:[a("svg",{class:"snag-dk-searchicon",width:"14",height:"14",viewBox:"0 0 16 16","aria-hidden":"true",children:[a("circle",{cx:"7",cy:"7",r:"4.75",fill:"none",stroke:"currentColor","stroke-width":"1.5"}),a("path",{d:"M10.5 10.5 14 14",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round"})]}),a("input",{class:"snag-input snag-dk-search",type:"search","aria-label":p("search.aria"),placeholder:p("search.placeholder",{n:z(e.length)}),value:n.q??"",onInput:f=>g({q:f.currentTarget.value||void 0})})]}),a("div",{class:"snag-dk-chiphead",children:[a("span",{class:"snag-dk-menutitle",id:"snag-dk-st",children:p("filter.status")}),a("button",{type:"button",class:"snag-dk-link snag-dk-selectall",onClick:()=>g({statuses:u?[...Nt]:[...Y]}),children:p(u?"filter.clear":"filter.selectall")})]}),a("div",{class:"snag-dk-chips",role:"group","aria-labelledby":"snag-dk-st",children:[Y.map(f=>{const E=n.statuses.includes(f);return a("button",{type:"button",class:"snag-dk-chip","aria-pressed":E,style:E?`border-color:${An(f)};background:color-mix(in srgb, ${An(f)} 18%, transparent)`:void 0,onClick:()=>g({statuses:Pt(n.statuses,f)}),children:[a("span",{class:"snag-dk-chipdot","aria-hidden":"true",style:{background:he(f)}}),a("span",{class:"snag-dk-chiplabel",children:fe(f)})," ",a("span",{class:"snag-dk-chipn",children:z(h.byStatus.get(f)??0)})]})}),S.map(f=>a("span",{class:"snag-dk-chip snag-dk-chip-stray",children:[a("span",{class:"snag-dk-chiplabel",children:f})," ",a("span",{class:"snag-dk-chipn",children:z(h.byStatus.get(f)??0)})]}))]}),a("div",{class:"snag-dk-menus",onKeyDown:f=>{f.key!=="Escape"||!l||(f.stopPropagation(),d(null))},children:[l&&a("div",{class:"snag-dk-menubg","aria-hidden":"true",onClick:()=>d(null)}),a("span",{class:"snag-dk-menuwrap",children:[a("button",{type:"button",class:"snag-dk-link snag-dk-trigger","aria-expanded":l==="sort",onClick:()=>C("sort"),children:[p("sort.button"),w]}),l==="sort"&&a("div",{class:"snag-dk-menu",role:"radiogroup","aria-label":p("sort.button"),children:[["newest","sort.newest"],["oldest","sort.oldest"],["page","sort.page"]].map(([f,E])=>a("button",{type:"button",role:"radio","aria-checked":n.sort===f,onClick:()=>g({sort:f}),children:[a("span",{class:"snag-dk-tick","aria-hidden":"true",children:n.sort===f?"\u2713":"\xA0"}),p(E)]}))})]}),a("span",{class:"snag-dk-menuwrap",children:[a("button",{type:"button",class:"snag-dk-link snag-dk-trigger","aria-expanded":l==="filter",onClick:()=>C("filter"),children:[y>0?p("filter.button.n",{n:z(y)}):p("filter.button"),w]}),l==="filter"&&a("div",{class:"snag-dk-menu snag-dk-menu-form",role:"group","aria-label":p("filter.button"),children:[a("div",{class:"snag-dk-menugroup",children:[s&&a("label",{children:[p("filter.read"),a("select",{value:n.read,onChange:f=>g({read:f.currentTarget.value}),children:[a("option",{value:"all",children:p("filter.read.all")}),a("option",{value:"unread",children:p("filter.read.unread")}),a("option",{value:"read",children:p("filter.read.read")})]})]}),a("label",{children:[p("filter.by"),a("select",{value:n.by??"",onChange:f=>g({by:f.currentTarget.value||void 0}),children:[a("option",{value:"",children:p("filter.by.anyone")}),c.map(([f,E])=>a("option",{value:f,children:E})),n.by&&!c.some(([f])=>f===n.by)&&a("option",{value:n.by,children:p("filter.unknown")})]})]}),(m.length>0||b!==void 0)&&a("label",{children:[p("filter.assignee"),a("select",{value:b===null?"~":b??"",onChange:f=>{const E=f.currentTarget.value;g({assignee:E==="~"?null:E||void 0})},children:[a("option",{value:"",children:p("filter.assignee.anyone")}),a("option",{value:"~",children:p("filter.assignee.none")}),m.map(([f,E])=>a("option",{value:f,children:E})),b&&!m.some(([f])=>f===b)&&a("option",{value:b,children:p("filter.unknown")})]})]}),a("label",{children:[p("filter.pages"),a("select",{value:n.page??"",onChange:f=>g({page:f.currentTarget.value||void 0}),children:[a("option",{value:"",children:p("filter.pages.all")}),k.map(f=>a("option",{value:f,children:f}))]})]}),a("label",{class:"snag-dk-pageonly",children:[a("input",{type:"checkbox",checked:n.pageOnly,onChange:f=>g({pageOnly:f.currentTarget.checked})})," ",p("filter.pageonly")]})]}),e.length>0&&a("div",{class:"snag-dk-menugroup snag-dk-menugroup-last",children:a(Tn,{label:p("dock.clear"),title:p("dock.clear.aria"),cls:"snag-dk-link snag-dk-clear",onConfirm:o})})]})]}),r]})]})}function Yt({snags:e,groups:n,route:t,onOpen:o,onHover:s,onExport:r,onClearAll:l,onMarkAllRead:d,clusterFilter:h,onClusterClear:u,filter:g,onFilter:y,hiddenNote:c,onHiddenShow:m,seenAt:b,loading:k}){const S=Bt(e),C=n.flatMap($=>$.snags),w=Mn(g.statuses)||!!g.by||g.assignee!==void 0||!!g.page||!!g.q?.trim()||g.pageOnly||g.newOnly||g.read!=="all",f=b?e.filter($=>_e($,b)).length:0,E=H(null),[T,D]=O(!1),N=$=>{$.key!=="Escape"||!T||($.stopPropagation(),D(!1))},v=H(null);return U(()=>{const $=E.current,R=v.current;!$||!R||($.scrollTop+=R.getBoundingClientRect().top-$.getBoundingClientRect().top)},[t,n.length]),a(I,{children:[a(Wt,{round:e,filter:g,onFilter:y,onClearAll:l,...b===void 0?{}:{seenAt:b},trailing:b&&g.newOnly&&f>0&&d?a("button",{type:"button",class:"snag-dk-link snag-dk-newpill",onClick:d,children:p("filter.new.markread")}):b&&(f>0||g.newOnly)?a("button",{type:"button",class:"snag-dk-link snag-dk-newpill","aria-pressed":g.newOnly,onClick:()=>y({...g,newOnly:!g.newOnly}),children:g.newOnly?p(f===0?"filter.new.none":"filter.new.on"):p("filter.new",{n:z(f)})}):null}),k&&e.length>0&&a("div",{class:"snag-dk-progress","aria-hidden":"true"}),k&&e.length===0?a("div",{class:"snag-dk-scroll",role:"status",children:[a("span",{class:"snag-dk-sr",children:p("dock.loading")}),a("ul",{class:"snag-dk-list snag-dk-skel","aria-busy":"true",children:[0,1,2,3].map($=>a("li",{"aria-hidden":"true",children:[a("i",{}),a("span",{children:[a("i",{}),a("i",{})]})]},$))})]}):e.length===0?a("div",{class:"snag-dk-empty",children:a("p",{children:p("dock.empty")})}):C.length===0&&w?a("div",{class:"snag-dk-empty",children:g.pageOnly&&e.some($=>$.route!==t)?a("p",{children:p("dock.empty.page",{n:z(e.filter($=>$.route!==t).length),m:z(new Set(e.filter($=>$.route!==t).map($=>$.route)).size)})}):a("p",{children:p("dock.empty.filter")})}):a(I,{children:[c&&a("p",{class:"snag-dk-notice",children:[p("dock.hiddenrow")," ",a("button",{type:"button",class:"snag-dk-link",onClick:()=>m(c),children:p("dock.hiddenrow.show")})]}),h&&a("p",{class:"snag-dk-notice",children:[p("dock.cluster",{n:h.length})," ",a("button",{type:"button",class:"snag-dk-link",onClick:()=>u?.(),children:p("dock.cluster.clear")})]}),e.every($=>$.anchorState==="orphaned")&&a("p",{class:"snag-dk-notice",children:p("dock.empty.orphans")}),a("div",{class:"snag-dk-scroll",ref:E,children:n.map($=>a("section",{class:"snag-dk-group",ref:$.here?v:null,children:[$.route!==""&&a("h3",{class:"snag-dk-grouphd",children:[a("span",{class:"snag-dk-route",children:$.route}),a("span",{class:"snag-dk-dim",children:z($.snags.length)})]}),a("ul",{class:"snag-dk-list",children:$.snags.map(R=>a(qt,{snag:R,n:S.get(R.id),here:$.here,unread:!!b&&_e(R,b),onOpen:o,onHover:s},R.id))})]},$.route))})]}),r&&a("div",{class:"snag-dk-foot",children:a("div",{class:"snag-dk-menus snag-dk-menus-up",onKeyDown:N,children:[T&&a("div",{class:"snag-dk-menubg","aria-hidden":"true",onClick:()=>D(!1)}),a("span",{class:"snag-dk-menuwrap",children:[a("button",{type:"button",class:"snag-dk-link","aria-expanded":T,"aria-haspopup":"menu",onClick:()=>D(!T),children:p("export.button")}),T&&a("div",{class:"snag-dk-menu snag-dk-menu-up",role:"menu",children:["md","json"].map($=>a("button",{type:"button",role:"menuitem",onClick:()=>{D(!1),r($)},children:p($==="md"?"export.md":"export.json")}))})]})]})})]})}const Ie=new Map;function Gt(e){const n=[];try{for(const[t,o]of new URL(e).searchParams)At(t)||n.push(o&&o!=="[redacted]"?`${t}=${o}`:t)}catch{return null}return n.length?`?${n.join("&")}`:null}function Vt({att:e,load:n}){const t=H(null),[o,s]=O(!1),[r,l]=O(null);return U(()=>{let d=!1;return n(e).then(async h=>{if(!h||d)return;const u=await createImageBitmap(h);d?u.close():l(u)}).catch(()=>{}),()=>{d=!0}},[e.id,e.url]),U(()=>{const d=t.current;if(!d||!r)return;const h=142,u=h/r.width;d.width=h,d.height=Math.min(96,Math.round(r.height*u)),d.getContext("2d").drawImage(r,0,0,r.width,Math.round(d.height/u),0,0,d.width,d.height)},[r]),r?a(I,{children:[a("button",{type:"button",class:"snag-dk-shot",onClick:()=>s(!0),"aria-label":p("shot.open"),children:a("canvas",{ref:t,width:142,height:Math.min(96,Math.round(r.height*(142/r.width)))})}),o&&a(Jt,{bmp:r,onClose:()=>s(!1)})]}):null}function Jt({bmp:e,onClose:n}){const t=H(null);return U(()=>{const o=t.current;o&&(o.width=e.width,o.height=e.height,o.getContext("2d").drawImage(e,0,0))},[e]),a("div",{class:"snag-dk-lightbox",role:"dialog","aria-modal":"true","aria-label":p("shot.aria"),tabIndex:-1,ref:o=>o?.focus(),onKeyDown:o=>{o.key==="Escape"&&(o.stopPropagation(),n())},onClick:n,children:[a("canvas",{ref:t}),a("button",{type:"button",class:"snag-dk-link snag-dk-lightclose",onClick:n,children:p("shot.close")})]})}function Qt({snag:e,loadShot:n}){const t=e.context;if(!t)return null;const o=e.attachments?.find(d=>d.kind==="screenshot"),s=t.derived,r=t.viewport,l=r?Math.round(r.dpr*100)/100:1;return a("div",{class:"snag-dk-cap",children:[o&&n&&a(Vt,{att:o,load:n}),a("p",{class:"snag-dk-caplabel",children:p("capture.label")}),t.page?.route!==void 0&&a("p",{children:p("capture.page",{route:t.page.route})}),s&&r&&a(I,{children:[a("p",{children:s.os?p("capture.agent",{browser:s.browser,os:s.os}):p("capture.agent.noos",{browser:s.browser})}),a("p",{children:l===1?p("capture.device.at1x",{device:s.device,w:r.w,h:r.h}):p("capture.device",{device:s.device,w:r.w,h:r.h,dpr:l})})]}),t.capture?.reasons?.map(d=>a("p",{class:"snag-dk-capwhy",children:d},d)),t.capture?.blindSpots?.map(d=>a("p",{class:"snag-dk-capwhy",children:d},d)),(()=>{const d=Gt(t.url);return d?a("p",{class:"snag-dk-capwhy",children:[p("detail.filedat",{query:d})," ",a("a",{class:"snag-dk-openq",href:t.url,target:"_blank",rel:"noreferrer",children:p("detail.openquery")})]}):null})()]})}function Pn(e){const n=e.context?.url??e.route;return`${n}${n.includes("?")?"&":"?"}${tt("t")}=${e.key}`}function Xt({snag:e}){const[n,t]=O(!1),o=Pn(e);return navigator.clipboard?a("button",{type:"button",class:"snag-dk-link",onClick:()=>void navigator.clipboard.writeText(o).then(()=>{t(!0),setTimeout(()=>t(!1),1500)},()=>{}),children:p(n?"permalink.copied":"permalink.copy")}):null}function Zt({snag:e}){return navigator.clipboard?null:a("p",{class:"snag-dk-permaline",children:[a("span",{class:"snag-dk-permalabel",children:p("permalink.copy")})," ",a("span",{class:"snag-dk-permaurl",children:Pn(e)})]})}let Ue=null;function eo({snag:e,list:n,onAssign:t}){const[o,s]=O([]);U(()=>{n&&(Ue??=n().catch(()=>(Ue=null,[])),Ue.then(s))},[n]);const r=e.assignee??null;if(!n||!t)return r?a("p",{class:"snag-dk-field",children:[a("span",{class:"snag-dk-dim",children:p("field.assignee")})," ",a("strong",{children:r.name})]}):null;const l=r&&!o.some(d=>d.id===r.id)?[r,...o]:o;return a("label",{class:"snag-dk-field",children:[a("span",{class:"snag-dk-dim",children:p("field.assignee")}),a("select",{class:"snag-dk-select",value:r?.id??"",onChange:d=>{const h=d.target.value;t(e.id,l.find(u=>u.id===h)??null)},children:[a("option",{value:"",children:p("assignee.none")}),l.map(d=>a("option",{value:d.id,children:d.name},d.id))]})]})}function no({snags:e,round:n,fallbackCursor:t,openId:o,onOpen:s,onStatus:r,onReply:l,onEdit:d,onDeleteComment:h,onDeleteThread:u,isMine:g,canDeleteOwnThread:y=!0,canModerate:c=!1,canStatus:m=!0,studio:b,assignees:k,onAssign:S,onShowAnyway:C,onAnnounce:w,loadShot:f}){const E=e.findIndex(_=>_.id===o),T=E>=0,D=_=>g?g(_):!0,N=T?E:Math.min(t,e.length),v=T?e[E]:n.find(_=>_.id===o),$=o?Ie.get(o)??"":"",[R,B]=O($),[ke,be]=O($.length>0),xe=H(null),He=H(null),ve=_=>{B(_),o&&(_?Ie.set(o,_):Ie.delete(o))},ye=$t(),[X]=O(!ye.name),[q,je]=O(b?.member??null),[Z,Ln]=O(ye.name??""),[G,In]=O(ye.email??""),[Un,Fe]=O(!1),ee=G.trim().length>0&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(G.trim()),Be=!!R.trim()&&(!!q||!X||!!Z.trim()&&!ee);U(()=>{ke&&(X&&!q&&!Z.trim()?He:xe).current?.focus()},[ke]);const Hn=()=>{b&&(Fe(!1),yt(b.host,b.uid,b.env).then(_=>{if(_==="blocked")return Fe(!0);_&&(b.adopt(_),je(_.reviewer.name),xe.current?.focus())}))},Ke=()=>{if(!v||!Be)return;let _;q?_=q:X&&(_=Z.trim(),St({name:_,...G.trim()?{email:G.trim()}:{}})),l(v.id,R.trim(),_),ve(""),be(!1)};if(!v)return null;const j=v.comments[0]?.body==null?void 0:v.comments[0],jn=n.filter(_=>_.route===v.route).findIndex(_=>_.id===v.id)+1;return a("div",{class:"snag-dk-detail",children:[a("div",{class:"snag-dk-detailhd",children:[a("button",{type:"button",class:"snag-dk-link",onClick:()=>s(null),"aria-label":p("dock.back.aria"),children:[a("span",{"aria-hidden":"true",children:"\u2190"})," ",p("dock.back")]}),a("span",{class:"snag-dk-dim",children:p("dock.position",{n:T?z(N+1):"\u2013",total:z(e.length)})}),a("span",{class:"snag-dk-nav",children:[a("button",{type:"button",class:"snag-dk-link",disabled:N<=0,"aria-label":p("dock.prev"),onClick:()=>s(e[N-1].id),children:"\u2191"}),a("button",{type:"button",class:"snag-dk-link",disabled:T?N>=e.length-1:N>=e.length,"aria-label":p("dock.next"),onClick:()=>s(e[T?N+1:N].id),children:"\u2193"})]})]}),a("div",{class:"snag-dk-card",children:[a("div",{class:"snag-dk-meta",children:[a("span",{class:"snag-dk-num",style:{background:he(v.status),color:wn(v.status)},children:jn}),a("strong",{children:j?.author.name??p("author.unknown")}),a("span",{class:"snag-dk-dim",children:v.key}),v.private&&a(Le,{}),j&&a(Rn,{iso:j.createdAt}),a(Xt,{snag:v})]}),a("div",{class:"snag-dk-cardbody",children:Cn(j?.body??"")}),a(Zt,{snag:v}),j&&(D(j.author)||c)&&a(Dn,{body:j.body,...D(j.author)?{onEdit:_=>d(j.id,_)}:{},deleteLabel:p("comment.delete"),...c||y&&v.comments.every(_=>D(_.author))?{onDelete:()=>u(v.id)}:{}})]}),m?a("label",{class:"snag-dk-field",children:[a("span",{class:"snag-dk-dim",children:p("field.status")}),a("select",{class:"snag-dk-select",style:{borderColor:he(v.status)},value:v.status,onChange:_=>{const ne=_.target.value;r(v.id,ne),w?.(p("announce.status",{key:v.key,status:fe(ne)}))},children:ze.map(_=>a("option",{value:_,children:fe(_)},_))})]}):a("p",{class:"snag-dk-field","data-status-locked":!0,children:[a("span",{class:"snag-dk-dim",children:p("field.status")}),a("strong",{children:fe(v.status)}),a("span",{class:"snag-dk-dim",children:p("field.status.locked")})]}),a(eo,{snag:v,...k&&S?{list:k,onAssign:S}:{}}),a(Qt,{snag:v,...f?{loadShot:f}:{}}),v.anchorReasons?.includes("hidden")&&a("p",{class:"snag-dk-moved-note",children:[p("detail.hidden")," ",a("button",{type:"button",class:"snag-dk-link",onClick:()=>C?.(v),children:p("detail.hidden.show")})]}),v.anchorState!=="anchored"&&a("p",{class:"snag-dk-moved-note",children:[p(`detail.${v.anchorState}`,{label:v.anchor.label}),v.anchorReasons?.includes("budget-exceeded")&&` ${p("detail.unavailable")}`]}),v.anchorState!=="anchored"&&a(jt,{anchor:v.anchor}),Q(v).length>0&&a("ul",{class:"snag-dk-replies-list",children:Q(v).map(_=>a("li",{class:_.private?"snag-dk-teamli":void 0,children:[a("strong",{children:_.author.name})," ",a(Rn,{iso:_.createdAt})," ",_.private&&a(Le,{}),Cn(_.body??""),(D(_.author)||c)&&a(Dn,{body:_.body,...D(_.author)?{onEdit:ne=>d(_.id,ne)}:{},deleteLabel:p("reply.delete"),onDelete:()=>h(_.id)})]},_.id))}),ke?a("div",{class:"snag-dk-replybox",children:[q?a("p",{class:"snag-dk-who",children:[p("who.member",{name:q})," ",a("button",{type:"button",class:"snag-dk-link",onClick:()=>{b?.signOut(),je(null)},children:p("who.signout")})]}):X&&a(I,{children:[a("input",{ref:He,class:"snag-input",type:"text",autocomplete:"name",placeholder:p("who.name"),"aria-label":p("who.name"),value:Z,onInput:_=>Ln(_.target.value)}),a("input",{class:`snag-input${ee?" snag-input--bad":""}`,type:"email",inputMode:"email",autocomplete:"email",placeholder:p("who.email"),"aria-label":p("who.email"),"aria-invalid":ee?"true":void 0,value:G,onInput:_=>In(_.target.value)}),ee&&a("p",{class:"snag-dk-who",children:p("who.email.bad")})]}),b&&!q&&a("p",{class:"snag-dk-who",children:[a("button",{type:"button",class:"snag-dk-link",onClick:Hn,children:p("who.signin")}),Un&&a("span",{role:"status",children:[" ",p("who.signin.blocked")]})]}),a("textarea",{ref:xe,class:"snag-text",rows:2,enterkeyhint:"enter","aria-label":p("reply.aria"),placeholder:p("reply.placeholder"),value:R,onInput:_=>ve(_.target.value),onKeyDown:_=>{_.key==="Enter"&&(_.metaKey||_.ctrlKey)&&(_.preventDefault(),Ke()),_.key==="Escape"&&(_.stopPropagation(),_.target.blur())}}),a("div",{class:"snag-actions",children:[a("button",{type:"button",class:"snag-cancel",onClick:()=>{ve(""),be(!1)},children:p("action.cancel")}),a("button",{type:"button",class:"snag-send",disabled:!Be,onClick:Ke,children:p("reply.send")})]})]}):a("button",{type:"button",class:"snag-dk-addreply",onClick:()=>be(!0),children:p("reply.add")})]})}function to(e){const n=e.openId?e.snags.find(k=>k.id===e.openId):null,t=H(null),o=e.clusterFilter?e.snags.filter(k=>e.clusterFilter.includes(k.id)):e.snags,s=zt(o.filter(k=>Ot(k,e.filter,e.seenAt)),e.filter,e.route,e.seenAt),r=Lt(s,e.filter.sort),l=e.filter.sort==="page"?Kt(r,e.route):[{route:"",here:!1,snags:r}],d=l.flatMap(k=>k.snags),h=H(0),u=d.findIndex(k=>k.id===e.openId);u>=0&&(h.current=u);const g=H(null),[y,c]=O(null);e.openId?(g.current={id:e.openId,absent:u===-1},y&&c(null)):g.current?.absent&&y!==g.current.id&&(c(g.current.id),g.current=null),U(()=>{t.current?.focus()},[e.openId]),U(()=>{if(!(window.matchMedia?.("(pointer: coarse)").matches??!1))return;const k=t.current;return k?ht(k):void 0},[]);const m=H({snag:n,onStatus:e.onStatus,can:e.canStatus!==!1});m.current={snag:n,onStatus:e.onStatus,can:e.canStatus!==!1},U(()=>{const k=S=>{const{snag:C,onStatus:w,can:f}=m.current;if(!C||!f||S.metaKey||S.ctrlKey||S.altKey||S.composedPath().some(D=>{const N=D;if(!N?.tagName)return!1;const v=N.tagName.toLowerCase();return v==="textarea"||v==="select"?!0:v==="input"?!/^(button|submit|checkbox|radio)$/i.test(N.type):N.isContentEditable?!0:/^(textbox|searchbox|combobox)$/.test(N.getAttribute?.("role")??"")}))return;const T=Number(S.key);if(T>=1&&T<=ze.length){S.preventDefault(),w(C.id,ze[T-1]);return}(S.key==="r"||S.key==="R")&&(S.preventDefault(),w(C.id,C.status==="resolved"?"open":"resolved"))};return document.addEventListener("keydown",k),()=>document.removeEventListener("keydown",k)},[]);const b=window.matchMedia?.("(pointer: coarse)").matches??!1;return a("aside",{ref:t,class:"snag-dk",role:"complementary","aria-label":p("dock.aria"),tabIndex:-1,onKeyDown:k=>{k.key==="Escape"&&(k.stopPropagation(),e.openId?e.onOpen(null):e.onClose())},children:[b&&a("div",{class:"snag-dk-scrim","aria-hidden":"true",onClick:e.onClose}),b&&a("div",{class:"snag-dk-grab","aria-hidden":"true",onPointerDown:k=>{const S=k.clientY,C=k.currentTarget;try{C.setPointerCapture(k.pointerId)}catch{}C.onpointermove=w=>{w.clientY-S>56&&(C.onpointermove=null,e.onClose())},C.onpointerup=()=>C.onpointermove=null},children:a("span",{})}),a("header",{class:"snag-dk-hd",children:[!n&&e.rounds&&e.rounds.length>1&&e.onRound?a("span",{class:"snag-dk-roundwrap",children:[a("select",{class:"snag-dk-round","aria-label":p("round.label"),value:String(e.activeRound??""),onChange:k=>e.onRound(Number(k.currentTarget.value)),children:e.rounds.map(k=>a("option",{value:String(k.number),children:[k.name,k.closed?` ${p("round.closed")}`:""]},k.number))}),a("svg",{class:"snag-dk-roundcaret",width:"10",height:"10",viewBox:"0 0 8 8","aria-hidden":"true",children:a("path",{d:"M1 2.5 4 5.5 7 2.5",fill:"none",stroke:"currentColor","stroke-width":"1.4"})})]}):a("strong",{children:p(n?"dock.title.detail":"dock.title.list")}),a("button",{type:"button",class:"snag-dk-link",onClick:e.onClose,"aria-label":p("dock.close"),children:"\u2715"})]}),n?a(no,{...e,snags:d,round:e.snags,fallbackCursor:h.current},n.id):a(Yt,{...e,groups:l,hiddenNote:y,onHiddenShow:k=>{c(null),e.onOpen(k)}})]})}const Nn=360,oo=` .snag-dk{position:fixed;inset-block:0;inset-inline-end:0;width:${Nn}px;max-width:100vw;z-index:${ut.dock};background:${i.bg};color:${i.fg};display:flex;flex-direction:column;font:400 13px/1.45 ${i.font};box-shadow:${i.shadow};border-inline-start:1px solid ${i.border};pointer-events:auto;overscroll-behavior:contain}.snag-dk-filters{padding:10px 14px 6px;border-block-end:1px solid ${i.border};display:grid;gap:8px;flex:0 0 auto}.snag-dk-searchwrap{position:relative;display:flex}.snag-dk-searchicon{position:absolute;inset-inline-start:9px;top:50%;transform:translateY(-50%);color:${i.muted};pointer-events:none}.snag-dk-search{width:100%;box-sizing:border-box;font-size:12px;padding:6px 8px;padding-inline-start:28px}.snag-dk-chiphead{display:flex;justify-content:space-between;align-items:center;margin-block-end:-4px}.snag-dk-chiphead .snag-dk-menutitle{padding:0}.snag-dk-selectall{font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding:2px 4px;margin-inline-end:-4px}.snag-dk-chips{display:grid;grid-template-columns:1fr 1fr;gap:6px}.snag-dk-chip{font:500 12px/1.2 ${i.font};color:${i.fg};padding:7px 10px;border-radius:6px;border:1px solid ${i.border};background:none;cursor:pointer;text-align:start;display:flex;align-items:center;gap:7px;min-width:0;transition:background ${i.motion},border-color ${i.motion}}.snag-dk-chip:hover{background:${i.hover}}.snag-dk-chip:focus-visible{outline:2px solid ${i.focus};outline-offset:1px}.snag-dk-chip[aria-pressed="true"]{font-weight:600}.snag-dk-chipdot{flex:0 0 8px;width:8px;height:8px;border-radius:50%;forced-color-adjust:none}.snag-dk-chiplabel{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.snag-dk-chipn{flex:0 0 auto;color:${i.muted};font-variant-numeric:tabular-nums}.snag-dk-chip-stray{color:${i.muted};cursor:default}.snag-dk-chip-stray:hover{background:none}@media (forced-colors:active){.snag-dk-chip[aria-pressed="true"]{border:2px solid Highlight;padding:6px 9px}}.snag-dk-menus{display:flex;gap:4px;position:relative;margin-inline-start:-6px}.snag-dk-trigger{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:500;position:relative;z-index:3}.snag-dk-menuwrap{position:relative}.snag-dk-menugroup{display:flex;flex-direction:column;gap:1px;padding-bottom:6px;margin-bottom:6px;border-bottom:1px solid ${i.border}}.snag-dk-menugroup-last{padding-bottom:0;margin-bottom:0;border-bottom:0}.snag-dk-menutitle{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:${i.muted};padding:2px 8px 4px}.snag-dk-menubg{position:absolute;inset:-200px -20px -2000px;background:transparent;z-index:2}.snag-dk-menu{position:absolute;inset-block-start:100%;inset-inline-start:0;z-index:3;min-width:150px;background:${i.bg};border:1px solid ${i.border};border-radius:6px;box-shadow:${i.shadow};display:grid;padding:4px}.snag-dk-menu button{font:400 12px/1.3 ${i.font};color:${i.fg};background:none;border:0;text-align:start;padding:5px 8px;border-radius:4px;cursor:pointer;display:flex;gap:4px}.snag-dk-menu button:hover{background:color-mix(in srgb,${i.fg} 8%,transparent)}.snag-dk-menus-up{position:relative}.snag-dk-menu-up{inset-block-start:auto;inset-block-end:100%;margin-block-end:4px}.snag-dk-menu-form{padding:8px;gap:6px;min-width:224px}.snag-dk-menu-form label:not(.snag-dk-pageonly){display:grid;gap:2px;font:600 10px/1.4 ${i.font};letter-spacing:.05em;text-transform:uppercase;color:${i.muted}}.snag-dk-menu-form select{font:400 12px/1.3 ${i.font};color:${i.fg};background:${i.bg};border:1px solid ${i.border};border-radius:4px;padding:4px}.snag-dk-pageonly{display:flex;align-items:center;gap:6px;font-size:12px;color:${i.fg};cursor:pointer}.snag-dk-permaline{margin:6px 0 0;font-size:11px;color:${i.muted};overflow-wrap:anywhere}.snag-dk-permalabel{font-weight:600}.snag-dk-permaurl{user-select:all}.snag-dk:focus{outline:none}@media (pointer:coarse){.snag-dk{inset-block-start:auto;inset-inline-start:0;width:auto;height:82vh;border-radius:14px 14px 0 0;box-sizing:border-box;padding-bottom:max(var(${x.tbH},68px),var(${x.kb},0px));padding-inline:env(safe-area-inset-left) env(safe-area-inset-right)}.snag-dk-scrim{position:fixed;inset:0;background:#0005;touch-action:none;z-index:-1}.snag-dk-grab{display:flex;justify-content:center;padding:10px 0 4px;touch-action:none}.snag-dk-grab span{width:36px;height:4px;border-radius:2px;background:${i.border}}.snag-dk-item{min-height:56px}.snag-dk-link{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}.snag-dk-select{min-height:44px}.snag-dk-chip{min-height:44px}.snag-dk-search{min-height:44px}.snag-dk-round{min-height:44px}}@media (pointer:fine){.snag-dk-scrim,.snag-dk-grab{display:none}}.snag-dk-hd{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid ${i.border};flex:0 0 auto}.snag-dk-scroll{overflow-y:auto;flex:1 1 auto}.snag-dk-list{list-style:none;margin:0;padding:0}.snag-dk-grouphd{position:sticky;top:0;z-index:1;margin:0;display:flex;align-items:center;gap:8px;padding:7px 14px;font:600 11px/1.45 ${i.font};letter-spacing:.02em;background:${i.sunken};border-bottom:1px solid ${i.border}}.snag-dk-route{color:${i.fg};overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;direction:ltr;unicode-bidi:isolate}.snag-dk-grouphd .snag-dk-dim{margin-inline-start:auto;font-weight:400;flex:0 0 auto}.snag-dk-goto{flex:0 0 auto;color:${i.muted};font-size:13px;line-height:1}.snag-dk-dev{flex:0 0 auto;color:${i.muted};display:flex;align-items:center}.snag-dk-item:hover .snag-dk-goto,.snag-dk-item:focus-visible .snag-dk-goto{color:${i.accent}}.snag-dk-item{display:flex;gap:10px;align-items:flex-start;width:100%;text-align:start;background:transparent;border:0;border-bottom:1px solid ${i.border};color:inherit;font:inherit;padding:11px 14px;cursor:pointer;transition:background ${i.motion}}.snag-dk-item:hover{background:${i.hover}}.snag-dk-item:focus-visible{outline:2px solid ${i.focus};outline-offset:-2px}.snag-dk-dot{flex:0 0 7px;width:7px;height:7px;border-radius:50%;margin-block-start:8px;background:transparent}.snag-dk-dot--on{background:${i.accent}}.snag-dk-newpill{margin-inline-start:auto;font-weight:600;white-space:nowrap}.snag-dk-newpill[aria-pressed="true"]{background:${i.sunken};border-radius:6px}.snag-dk-newpill:hover{background:${i.hover}}.snag-dk-newpill:focus-visible{outline:2px solid ${i.focus};outline-offset:-2px}.snag-dk-num{flex:0 0 22px;height:22px;border-radius:50% 50% 50% 2px;font-weight:600;font-size:11px;line-height:1;display:flex;align-items:center;justify-content:center;box-sizing:border-box}.snag-dk-num--orphaned{border:2px solid currentColor;box-shadow:inset 0 0 0 2px currentColor}.snag-dk-num--approximate{border:2px dashed currentColor}.snag-dk-main{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 auto}.snag-dk-body,.snag-dk-sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.snag-dk-sub{font-size:11px}.snag-dk-dim{color:${i.muted}}.snag-dk-moved{color:${i.anchorOrphan};font-weight:600}.snag-dk-replies{background:${i.surface};border-radius:999px;padding:1px 7px;font-size:11px;flex:0 0 auto}.snag-dk-team{display:inline-flex;align-items:center;gap:3px;flex:0 0 auto;padding:1px 6px;border-radius:999px;font-size:11px;font-weight:600;white-space:nowrap;color:${i.fg};background:color-mix(in srgb,${i.accent} 16%,transparent)}@keyframes snag-dk-pulse{50%{opacity:.45}}.snag-dk-skel li{display:flex;gap:10px;padding:11px 14px 11px 31px;border-bottom:1px solid ${i.border}}.snag-dk-skel span{flex:1;display:grid;gap:6px}.snag-dk-skel i{display:block;height:9px;border-radius:4px;background:${i.sunken};animation:snag-dk-pulse 1.2s ease-in-out infinite}.snag-dk-skel li>i{flex:0 0 22px;height:22px;border-radius:50% 50% 50% 2px}.snag-dk-skel span i:last-child{width:45%}.snag-dk-progress{height:2px;flex:0 0 auto;margin-block-end:-2px;position:relative;z-index:2;background:linear-gradient(90deg,transparent,${i.accent},transparent) 0 0/40% 100% no-repeat;animation:snag-dk-slide 1s linear infinite}@keyframes snag-dk-slide{from{background-position:-70% 0}to{background-position:170% 0}}@media (prefers-reduced-motion:reduce){.snag-dk-skel i,.snag-dk-progress{animation:none}.snag-dk-progress{background:${i.accent}}}.snag-dk-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.snag-dk-empty{padding:28px 16px;text-align:center;flex:1 1 auto}.snag-dk-empty p{margin:0 0 4px}.snag-dk-notice{margin:0;padding:11px 14px;font-size:12px;color:${i.muted};border-bottom:1px solid ${i.border};flex:0 0 auto}.snag-dk-roundwrap{position:relative;display:inline-flex;align-items:center;min-width:0;flex:0 1 auto}.snag-dk-round{appearance:none;-webkit-appearance:none;background:${i.sunken};border:1px solid ${i.border};color:${i.fg};font:600 13px/1.45 ${i.font};padding-block:4px;padding-inline:10px 26px;border-radius:6px;cursor:pointer;max-width:100%;text-overflow:ellipsis;transition:background ${i.motion}}.snag-dk-round:hover{background:${i.hover}}.snag-dk-round:focus-visible{outline:2px solid ${i.focus};outline-offset:1px}.snag-dk-round option{background:${i.bg};color:${i.fg};font-weight:400}.snag-dk-roundcaret{position:absolute;inset-inline-end:10px;color:${i.muted};pointer-events:none}.snag-dk-foot{display:flex;gap:6px;padding:10px 14px;border-top:1px solid ${i.border};flex:0 0 auto}.snag-dk-link{background:transparent;border:0;color:${i.accent};font:inherit;cursor:pointer;padding:4px 6px;border-radius:calc(${i.radius} - 2px);transition:background ${i.motion}}.snag-dk-link:hover:not(:disabled){background:${i.hover}}.snag-dk-link:disabled{color:${i.disabled};cursor:not-allowed}.snag-dk-link:focus-visible{outline:2px solid ${i.focus};outline-offset:1px}.snag-dk-detail{padding:12px 14px;overflow-y:auto;flex:1 1 auto;display:flex;flex-direction:column;gap:12px}.snag-dk-detailhd{display:flex;align-items:center;justify-content:space-between;gap:8px}.snag-dk-nav{display:flex;gap:2px}.snag-dk-card{background:${i.surface};border-radius:${i.radius};padding:11px}.snag-dk-meta{display:flex;justify-content:space-between;gap:8px;font-size:12px;margin-bottom:6px}.snag-md{overflow-wrap:anywhere}.snag-md>*{margin:0}.snag-md>*+*{margin-block-start:6px}.snag-md p{white-space:pre-wrap}.snag-md ul,.snag-md ol{padding-inline-start:20px}.snag-md li+li{margin-block-start:2px}.snag-md code{background:${i.sunken};border-radius:3px;padding:1px 4px;font-size:.92em;font-family:ui-monospace,monospace}.snag-md pre{background:${i.sunken};border-radius:${i.radius};padding:8px 10px;overflow-x:auto}.snag-md pre code{background:none;padding:0;font-size:.92em}.snag-md a{color:${i.accent}}.snag-dk-field{display:flex;flex-direction:column;gap:4px;font-size:12px}.snag-dk-select{background:${i.surface};color:inherit;border:2px solid;border-radius:${i.radius};padding:7px 9px;font:inherit;min-height:34px}.snag-dk-done{color:${i.muted};text-decoration:line-through}.snag-dk-meta .snag-dk-num{margin-inline-end:2px}.snag-dk-cap{background:${i.sunken};border-radius:${i.radius};padding:9px 11px;display:flex;flex-direction:column;gap:1px;font-size:12px;overflow-wrap:anywhere}.snag-dk-cap p{margin:0}.snag-dk-shot{padding:0;border:1px solid ${i.border};border-radius:calc(${i.radius} - 2px);background:none;cursor:zoom-in;overflow:hidden;line-height:0;align-self:flex-start;margin-block-end:6px}.snag-dk-shot canvas{display:block;max-width:100%}.snag-dk-lightbox{position:fixed;inset:0;z-index:1;background:#000c;display:flex;align-items:center;justify-content:center;padding:24px;cursor:zoom-out}.snag-dk-lightbox canvas{max-width:100%;max-height:100%;object-fit:contain;box-shadow:${i.shadow};background:${i.bg}}.snag-dk-lightclose{position:absolute;inset-block-start:12px;inset-inline-end:16px;color:#fff}.snag-dk-caplabel{font-weight:600;font-size:11px;letter-spacing:.02em;margin-bottom:3px!important}.snag-dk-capwhy{color:${i.muted};font-size:11px;margin-top:5px!important}.snag-dk-moved-note{margin:0;padding:8px 10px;font-size:12px;background:${i.sunken};border-inline-start:3px solid ${i.anchorOrphan};border-radius:${i.radius}}.snag-dk-anchor{font-size:12px;border:1px solid ${i.border};border-radius:${i.radius};padding:6px 10px;background:${i.sunken}}.snag-dk-anchor summary{cursor:pointer;color:${i.muted};font-weight:600;list-style:revert}.snag-dk-anchor dl{margin:8px 0 2px;display:grid;gap:6px}.snag-dk-anchor dt{color:${i.muted};font-size:11px;letter-spacing:.03em;text-transform:uppercase}.snag-dk-anchor dd{margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;overflow-wrap:anywhere;user-select:text}.snag-dk-replies-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.snag-dk-replies-list li{background:${i.sunken};border-radius:${i.radius};padding:9px;overflow-wrap:anywhere}.snag-dk-replies-list .snag-dk-teamli{border-inline-start:3px solid ${i.accent}}.snag-dk-acts{display:flex;gap:2px;margin-top:6px}.snag-dk-act{background:transparent;border:0;color:${i.muted};font:inherit;font-size:11px;cursor:pointer;padding:3px 6px;border-radius:calc(${i.radius} - 3px);transition:background ${i.motion},color ${i.motion}}.snag-dk-more{font-size:14px;line-height:1;letter-spacing:1px}.snag-dk-act:hover{background:${i.hover};color:inherit}.snag-dk-act:focus-visible{outline:2px solid ${i.focus};outline-offset:1px}.snag-dk-act--danger:hover{color:${i.anchorOrphan}}.snag-dk-menu .snag-dk-act--danger{color:${i.fg}}.snag-dk-menu .snag-dk-act--danger:hover{color:${i.anchorOrphan}}.snag-dk-armed{color:${i.anchorOrphan};font-weight:600}.snag-dk-clear{margin-inline-start:auto}.snag-dk-menu .snag-dk-clear{margin-inline-start:0}.snag-dk-editbox{display:flex;flex-direction:column;gap:8px;margin-top:8px}.snag-dk-addreply{background:transparent;border:1px dashed ${i.border};color:${i.muted};border-radius:${i.radius};padding:9px;font:inherit;cursor:pointer;text-align:start;transition:border-color ${i.motion},color ${i.motion}}.snag-dk-addreply:hover{border-color:${i.accent};color:inherit}.snag-dk-replybox{display:flex;flex-direction:column;gap:8px}.snag-dk-who{margin:0;font-size:11px;color:${i.muted}}.snag-dk-who .snag-dk-link{padding:0;font-size:inherit;text-decoration:underline}`;function ao(e,n,t){const o=e.ownerDocument??document;Sn(e,"form",pt),Sn(e,"dock",oo);const s=o.createElement("div");(t??e).appendChild(s);const r=o.defaultView?.matchMedia?.("(pointer: coarse)").matches??!1,l=h=>{const u=e.host;h&&!r?u.style.setProperty(x.dockW,`${Nn}px`):u.style.removeProperty(x.dockW)};l(!0);const d=h=>{sn(a(to,{...h}),s)};return d(n),{update:d,close(){l(!1),sn(null,s),s.remove()}}}const On=24;function zn(e,n){const t=e.innerHeight,o=n.querySelector(".snag-dk");if(!o)return{top:0,bottom:t};const s=o.getBoundingClientRect();return s.height>=t-1?{top:0,bottom:t}:{top:0,bottom:Math.max(0,s.top)}}function ro(e,n,t){const o=t.anchor.rect;if(!o)return;const s=t.anchor.offset??{fy:.5},r=o.y+o.h*s.fy,l=zn(e,n),d=r-e.scrollY;if(d>=l.top+On&&d<=l.bottom-On)return;const h=e.matchMedia?.("(prefers-reduced-motion: reduce)").matches??!1;e.scrollTo({top:Math.max(0,r-(l.top+l.bottom)/2),behavior:h?"auto":"smooth"})}export{ao as openDock,ro as scrollToSnag,zn as visibleStrip};
@@ -2,4 +2,4 @@
2
2
  `).slice(0,10).join(`
3
3
  `):"";return(o?`${r}
4
4
  ${o}`:r).slice(0,1024)}return t.nodeType!==void 0?typeof t.tagName=="string"?`<${t.tagName.toLowerCase()}>`:"[Node]":Array.isArray(e)?`[Array(${e.length})]`:`[${Object.prototype.toString.call(e).slice(8,-1)}]`}catch{return"[unreadable]"}}function K(e,t,r){const o=[];let n=0,c=0,i=0,a=0,s=null,d=0;const m=(f,p,u)=>{if(!(d>=3))try{const w=Date.now();if(w-c>250&&(a&&(o.push([w,"system","info",`${a} records suppressed (flood guard)`]),a=0),c=w,i=0),++i>50){a++;return}const h=[w,f,p,u];if(s){s(h);return}for(o.push(h);o.length>100;)o.shift(),n++;d=0}catch{d++}};m("navigation","info",e.location.href),e.addEventListener("error",f=>{try{const p=f.target;if(p&&p!==e&&typeof p.tagName=="string"){m("error","error",`Failed to load <${p.tagName.toLowerCase()}> ${p.src??p.href??""}`);return}const u=f,w=`${u.message??"Script error"} (${u.filename??""}:${u.lineno??0}:${u.colno??0})`,h=u.error?`
5
- ${E(u.error)}`:"";m("error","error",`${w}${h}`)}catch{d++}},{capture:!0,signal:r}),e.addEventListener("unhandledrejection",f=>{try{m("error","error",`Unhandled rejection: ${E(f.reason)}`)}catch{d++}},{signal:r});const l=[];if(t.early){let f=!1;for(const p of["error","warn"])l.push(D(e.console,p,u=>function(...w){const h=u.apply(this,w);return f||(f=!0,m("console",p,w.map(E).join(" ").slice(0,4096)),f=!1),h}))}const b=()=>{for(const f of l)f();l.length=0,s=null,o.length=0};return r.addEventListener("abort",b,{once:!0}),{drain(f){const u={records:o.slice(),dropped:n};return o.length=0,n=0,s=f,u},destroy:b}}const S="0.1.37+5397de",A=Y();function Y(){try{const e=location.hash.slice(1);if(!e.includes($("k")))return;const t=new URLSearchParams(e),r=t.get($("k"))??void 0;if(!r)return;t.delete($("k"));const o=t.toString(),n=location.pathname+location.search+(o?`#${o}`:"");return history.replaceState(history.state,"",n),r}catch{return}}const q=["site","host","disabled","env","mode","hotkey","allowAutomation","assetBase","theme","autoMount","storage"];function W(e){const t=e[g.config];return t&&typeof t=="object"?t:void 0}function V(e,t){const r={};for(const o of q){const n=t?.[o];(typeof n=="string"||typeof n=="number")&&(r[o]=String(n));const c=e?.getAttribute(y(o));c!=null&&(r[o]=c)}return r}function H(e,t){const r=new URL(e,t);return r.searchParams.set("cv",S),r.href}function J(e,t){const r=e.assetBase??window[g.assetBase];if(r)return new URL(r,location.href).href.replace(/\/?$/,"/");const o=t?.src;return o?new URL(".",o).href:new URL(".",location.href).href}function P(){const e=new Map,t=(r,o)=>void e.get(r)?.delete(o);return{on(r,o){let n=e.get(r);return n||e.set(r,n=new Set),n.add(o),()=>t(r,o)},off:t,emit(r,o){const n=e.get(r);if(n)for(const c of[...n])try{c(o)}catch(i){console.error(`[${v}] listener for "${r}" threw`,i)}document.dispatchEvent(new CustomEvent(`${O}${r}`,{detail:o,bubbles:!1,composed:!1}))}}}function X(e,t,r){let o=!1;const n=()=>{o||(o=!0,console.info(`[${v}] not activated: ${r}`))},c=P(),i={version:S,config:e,assetBase:t,state:"inert",pointerMode:"browse",activated:!1,init:()=>(n(),Promise.resolve(i)),activate:()=>(n(),Promise.resolve(null)),deactivate:()=>{},destroy:()=>{},setMode:n,setRoute:n,open:()=>(n(),Promise.resolve({ok:!1,reason:"inert"})),resync:()=>{},close:()=>{},on:c.on,off:c.off};return i}function C(e){const t=window.requestIdleCallback;typeof t=="function"?t(e,{timeout:2e3}):setTimeout(e,1)}function j(e){if(document.readyState==="complete"){C(e);return}window.addEventListener("load",()=>requestAnimationFrame(()=>requestAnimationFrame(()=>C(e))),{once:!0})}function z(e,t,r){t.hotkey!=="off"&&document.addEventListener("keydown",o=>{if(!(!o.altKey||o.ctrlKey||o.metaKey)&&o.code==="KeyC"){if(o.preventDefault(),e.state==="active"){e.setMode(e.pointerMode==="add"?"comments":"add");return}e.activate().catch(()=>{})}},{capture:!0,signal:r})}function Q(e,t,r,o){let n=null,c,i="dormant",a=null,s=0;const d=P(),m={version:S,config:e,assetBase:t,get state(){return i},get pointerMode(){return i==="active"&&a?a.getState():"browse"},activated:!1,init(l){return l&&Object.assign(e,l),n?n.then(()=>m,()=>m):Promise.resolve(m)},activate(l){if(i==="destroyed")return Promise.resolve(null);if(a&&i!=="active"&&(i="active",d.emit("activated",{mode:a.getState()})),!n){const b=H(T.runtime,t);n=import(b).then(f=>i==="destroyed"?null:(m.activated=!0,i="active",a=f.mount(void 0,{assetBase:t,config:e,emit:d.emit,...o?{early:o}:{},...A?{reviewToken:A}:{}}),c!==void 0&&a.setRoute(c),d.emit("ready",{version:S,state:i}),d.emit("activated",{mode:a.getState()}),a)).catch(f=>{throw n=null,console.error(`[${v}] runtime failed to load from ${b}`,f),d.emit("error",{code:"runtime-load-failed",message:b,cause:f}),f})}return l?.mode?n.then(b=>(a?.setState(l.mode),b)):n},deactivate(){i!=="active"||!a||(a.closePanel(),a.setState("browse"),i="dormant",d.emit("deactivated",{}))},destroy(){if(i!=="destroyed"){r.abort(),s&&cancelAnimationFrame(s),s=0;try{a?.destroy()}catch(l){console.error(`[${v}] destroy failed`,l)}a=null,n=null,i="destroyed",m.activated=!1,d.emit("destroyed",{})}},setMode(l){if(i!=="destroyed"){if(i==="active"&&a){a.setState(l);return}m.activate({mode:l}).catch(()=>{})}},setRoute(l){c=l,a?.setRoute(l)},async open(l){return i==="destroyed"?{ok:!1,reason:"inert"}:await m.activate()?a.open(l):{ok:!1,reason:"inert"}},resync(){i!=="active"||s||(s=requestAnimationFrame(()=>{s=0,a?.refresh()}))},close(){a?.closePanel()},on:d.on,off:d.off};return Object.assign(m,{signal:r.signal})}const Z=`${O}stub-init`;function ee(){if(typeof document>"u"||typeof window>"u")return;const e=performance.now(),t=document.currentScript,r=window,o=W(r),n=V(t,o),c=J(n,t);F(n,t?.src);let i="";try{i=document.cookie}catch{}const a=n.site?!!x(n.site):!1,s=I({config:n,search:location.search,cookie:i,webdriver:navigator.webdriver,globals:r,inReview:!!A||a,...o?{configGlobal:o}:{},origin:location.origin}),d=Symbol.for(R.instance),m=r[g.api];if(m?.[d]){(m.__duplicates??=[]).push({version:S,src:t?.src??""}),console.warn(`[${v}] a second copy of the script is on this page and was ignored; the first one is running. See window.${g.api}.__duplicates.`);return}const l=m===void 0?g.api:g.collisionFallback;if(l===g.collisionFallback&&console.warn(`[${v}] window.${g.api} is taken; installing at window.${g.collisionFallback}.`),s){const h=X(n,c,s.gate);h[d]=!0,r[l]=h,s.silent||console.info(`[${v}] not activated: ${s.gate} \u2014 ${s.fix}`);return}const b=new AbortController,f=o?.breadcrumbs,p=f===!1?void 0:K(window,{early:f?.early!==!1},b.signal),u=Q(n,c,b,p);u[d]=!0,r[l]=u,te(e),z(u,n,u.signal);const w=new URLSearchParams(location.search).has($("t"));(n.mode==="on"||w||A||a)&&n.autoMount!=="false"?j(()=>void u.activate().catch(()=>{})):n.site&&n.host&&n.mode!=="off"&&n.autoMount!=="false"&&fetch(`${n.host.replace(/\/+$/,"")}/api/v1/projects/${n.site}/config`).then(h=>h.ok?h.json():null).then(h=>{h?.writeMode==="open"&&h.writable!==!1&&j(()=>void u.activate().catch(()=>{}))}).catch(()=>{})}function te(e){try{performance.measure(Z,{start:e})}catch{}}ee()})();
5
+ ${E(u.error)}`:"";m("error","error",`${w}${h}`)}catch{d++}},{capture:!0,signal:r}),e.addEventListener("unhandledrejection",f=>{try{m("error","error",`Unhandled rejection: ${E(f.reason)}`)}catch{d++}},{signal:r});const l=[];if(t.early){let f=!1;for(const p of["error","warn"])l.push(D(e.console,p,u=>function(...w){const h=u.apply(this,w);return f||(f=!0,m("console",p,w.map(E).join(" ").slice(0,4096)),f=!1),h}))}const b=()=>{for(const f of l)f();l.length=0,s=null,o.length=0};return r.addEventListener("abort",b,{once:!0}),{drain(f){const u={records:o.slice(),dropped:n};return o.length=0,n=0,s=f,u},destroy:b}}const S="0.1.39+de7f06",A=Y();function Y(){try{const e=location.hash.slice(1);if(!e.includes($("k")))return;const t=new URLSearchParams(e),r=t.get($("k"))??void 0;if(!r)return;t.delete($("k"));const o=t.toString(),n=location.pathname+location.search+(o?`#${o}`:"");return history.replaceState(history.state,"",n),r}catch{return}}const q=["site","host","disabled","env","mode","hotkey","allowAutomation","assetBase","theme","autoMount","storage"];function W(e){const t=e[g.config];return t&&typeof t=="object"?t:void 0}function V(e,t){const r={};for(const o of q){const n=t?.[o];(typeof n=="string"||typeof n=="number")&&(r[o]=String(n));const c=e?.getAttribute(y(o));c!=null&&(r[o]=c)}return r}function H(e,t){const r=new URL(e,t);return r.searchParams.set("cv",S),r.href}function J(e,t){const r=e.assetBase??window[g.assetBase];if(r)return new URL(r,location.href).href.replace(/\/?$/,"/");const o=t?.src;return o?new URL(".",o).href:new URL(".",location.href).href}function P(){const e=new Map,t=(r,o)=>void e.get(r)?.delete(o);return{on(r,o){let n=e.get(r);return n||e.set(r,n=new Set),n.add(o),()=>t(r,o)},off:t,emit(r,o){const n=e.get(r);if(n)for(const c of[...n])try{c(o)}catch(i){console.error(`[${v}] listener for "${r}" threw`,i)}document.dispatchEvent(new CustomEvent(`${O}${r}`,{detail:o,bubbles:!1,composed:!1}))}}}function X(e,t,r){let o=!1;const n=()=>{o||(o=!0,console.info(`[${v}] not activated: ${r}`))},c=P(),i={version:S,config:e,assetBase:t,state:"inert",pointerMode:"browse",activated:!1,init:()=>(n(),Promise.resolve(i)),activate:()=>(n(),Promise.resolve(null)),deactivate:()=>{},destroy:()=>{},setMode:n,setRoute:n,open:()=>(n(),Promise.resolve({ok:!1,reason:"inert"})),resync:()=>{},close:()=>{},on:c.on,off:c.off};return i}function C(e){const t=window.requestIdleCallback;typeof t=="function"?t(e,{timeout:2e3}):setTimeout(e,1)}function j(e){if(document.readyState==="complete"){C(e);return}window.addEventListener("load",()=>requestAnimationFrame(()=>requestAnimationFrame(()=>C(e))),{once:!0})}function z(e,t,r){t.hotkey!=="off"&&document.addEventListener("keydown",o=>{if(!(!o.altKey||o.ctrlKey||o.metaKey)&&o.code==="KeyC"){if(o.preventDefault(),e.state==="active"){e.setMode(e.pointerMode==="add"?"comments":"add");return}e.activate().catch(()=>{})}},{capture:!0,signal:r})}function Q(e,t,r,o){let n=null,c,i="dormant",a=null,s=0;const d=P(),m={version:S,config:e,assetBase:t,get state(){return i},get pointerMode(){return i==="active"&&a?a.getState():"browse"},activated:!1,init(l){return l&&Object.assign(e,l),n?n.then(()=>m,()=>m):Promise.resolve(m)},activate(l){if(i==="destroyed")return Promise.resolve(null);if(a&&i!=="active"&&(i="active",d.emit("activated",{mode:a.getState()})),!n){const b=H(T.runtime,t);n=import(b).then(f=>i==="destroyed"?null:(m.activated=!0,i="active",a=f.mount(void 0,{assetBase:t,config:e,emit:d.emit,...o?{early:o}:{},...A?{reviewToken:A}:{}}),c!==void 0&&a.setRoute(c),d.emit("ready",{version:S,state:i}),d.emit("activated",{mode:a.getState()}),a)).catch(f=>{throw n=null,console.error(`[${v}] runtime failed to load from ${b}`,f),d.emit("error",{code:"runtime-load-failed",message:b,cause:f}),f})}return l?.mode?n.then(b=>(a?.setState(l.mode),b)):n},deactivate(){i!=="active"||!a||(a.closePanel(),a.setState("browse"),i="dormant",d.emit("deactivated",{}))},destroy(){if(i!=="destroyed"){r.abort(),s&&cancelAnimationFrame(s),s=0;try{a?.destroy()}catch(l){console.error(`[${v}] destroy failed`,l)}a=null,n=null,i="destroyed",m.activated=!1,d.emit("destroyed",{})}},setMode(l){if(i!=="destroyed"){if(i==="active"&&a){a.setState(l);return}m.activate({mode:l}).catch(()=>{})}},setRoute(l){c=l,a?.setRoute(l)},async open(l){return i==="destroyed"?{ok:!1,reason:"inert"}:await m.activate()?a.open(l):{ok:!1,reason:"inert"}},resync(){i!=="active"||s||(s=requestAnimationFrame(()=>{s=0,a?.refresh()}))},close(){a?.closePanel()},on:d.on,off:d.off};return Object.assign(m,{signal:r.signal})}const Z=`${O}stub-init`;function ee(){if(typeof document>"u"||typeof window>"u")return;const e=performance.now(),t=document.currentScript,r=window,o=W(r),n=V(t,o),c=J(n,t);F(n,t?.src);let i="";try{i=document.cookie}catch{}const a=n.site?!!x(n.site):!1,s=I({config:n,search:location.search,cookie:i,webdriver:navigator.webdriver,globals:r,inReview:!!A||a,...o?{configGlobal:o}:{},origin:location.origin}),d=Symbol.for(R.instance),m=r[g.api];if(m?.[d]){(m.__duplicates??=[]).push({version:S,src:t?.src??""}),console.warn(`[${v}] a second copy of the script is on this page and was ignored; the first one is running. See window.${g.api}.__duplicates.`);return}const l=m===void 0?g.api:g.collisionFallback;if(l===g.collisionFallback&&console.warn(`[${v}] window.${g.api} is taken; installing at window.${g.collisionFallback}.`),s){const h=X(n,c,s.gate);h[d]=!0,r[l]=h,s.silent||console.info(`[${v}] not activated: ${s.gate} \u2014 ${s.fix}`);return}const b=new AbortController,f=o?.breadcrumbs,p=f===!1?void 0:K(window,{early:f?.early!==!1},b.signal),u=Q(n,c,b,p);u[d]=!0,r[l]=u,te(e),z(u,n,u.signal);const w=new URLSearchParams(location.search).has($("t"));(n.mode==="on"||w||A||a)&&n.autoMount!=="false"?j(()=>void u.activate().catch(()=>{})):n.site&&n.host&&n.mode!=="off"&&n.autoMount!=="false"&&fetch(`${n.host.replace(/\/+$/,"")}/api/v1/projects/${n.site}/config`).then(h=>h.ok?h.json():null).then(h=>{h?.writeMode==="open"&&h.writable!==!1&&j(()=>void u.activate().catch(()=>{}))}).catch(()=>{})}function te(e){try{performance.measure(Z,{start:e})}catch{}}ee()})();