termdock 1.4.98 → 1.4.99

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 (69) hide show
  1. package/.desktop-dist/main.js +211 -34
  2. package/dist/client/assets/{ModelPreview-Drqv0OTg.js → ModelPreview-CJK3Nmg4.js} +1 -1
  3. package/dist/client/assets/{abnfDiagram-VRR7QNED-Cl8CT45X.js → abnfDiagram-VRR7QNED-C-QKkcSr.js} +1 -1
  4. package/dist/client/assets/{arc-2Sc638oe.js → arc-BpjFutHZ.js} +1 -1
  5. package/dist/client/assets/{architectureDiagram-ZJ3FMSHR-CNH9w9eN.js → architectureDiagram-ZJ3FMSHR-DeeuzGsk.js} +1 -1
  6. package/dist/client/assets/{blockDiagram-677ZJIJ3-ClvE_yP1.js → blockDiagram-677ZJIJ3-BkDiKR3-.js} +1 -1
  7. package/dist/client/assets/{c4Diagram-LMCZKHZV-CxIMU8l9.js → c4Diagram-LMCZKHZV-BX6424vk.js} +1 -1
  8. package/dist/client/assets/channel-BiaGwVDJ.js +1 -0
  9. package/dist/client/assets/{chunk-2Q5K7J3B-CdvXmc6Z.js → chunk-2Q5K7J3B-DwNMfRvw.js} +1 -1
  10. package/dist/client/assets/{chunk-32BRIVSS-B1dA4l5A.js → chunk-32BRIVSS-D5g3chKu.js} +1 -1
  11. package/dist/client/assets/{chunk-5VM5RSS4-CVk_pzpf.js → chunk-5VM5RSS4-B2rw8Ldu.js} +1 -1
  12. package/dist/client/assets/{chunk-EX3LRPZG-B46zhCa0.js → chunk-EX3LRPZG-j3CVdb45.js} +1 -1
  13. package/dist/client/assets/{chunk-JWPE2WC7-1wRPE3eO.js → chunk-JWPE2WC7-iHTR9CAX.js} +1 -1
  14. package/dist/client/assets/{chunk-MOJQB5TN-BzPrhNIS.js → chunk-MOJQB5TN-DVD1wXze.js} +1 -1
  15. package/dist/client/assets/{chunk-RYQCIY6F-D0sDGnBf.js → chunk-RYQCIY6F-zZRopnRd.js} +1 -1
  16. package/dist/client/assets/{chunk-V7JOEXUC-BRo0103H.js → chunk-V7JOEXUC-h4EZpc4k.js} +1 -1
  17. package/dist/client/assets/{chunk-VR4S4FIN-CW-wSkDE.js → chunk-VR4S4FIN-C9MZH2Oy.js} +1 -1
  18. package/dist/client/assets/{chunk-XXDRQBXY-BuWiQ0uq.js → chunk-XXDRQBXY-BNPDO5fQ.js} +1 -1
  19. package/dist/client/assets/classDiagram-OUVF2IWQ-DYljVZD_.js +1 -0
  20. package/dist/client/assets/classDiagram-v2-EOCWNBFH-DYljVZD_.js +1 -0
  21. package/dist/client/assets/{cose-bilkent-JH36ORCC-WzKVd03Q.js → cose-bilkent-JH36ORCC-DlqULumX.js} +1 -1
  22. package/dist/client/assets/{cynefin-VYW2F7L2-CfXYAqnq.js → cynefin-VYW2F7L2-D6pWZSwi.js} +1 -1
  23. package/dist/client/assets/{cynefinDiagram-TSTJHNR4-BnJGle_X.js → cynefinDiagram-TSTJHNR4-B6SI7XOe.js} +1 -1
  24. package/dist/client/assets/{dagre-VKFMJZFB-CDDlGCQy.js → dagre-VKFMJZFB-DXnKJ4XD.js} +1 -1
  25. package/dist/client/assets/{diagram-FQU43EPY-t8DNZS7P.js → diagram-FQU43EPY-B5NTAhw6.js} +1 -1
  26. package/dist/client/assets/{diagram-G47NLZAW-CZpQd91k.js → diagram-G47NLZAW-Dihaal0B.js} +1 -1
  27. package/dist/client/assets/{diagram-NH7WQ7WH-OET0EFlt.js → diagram-NH7WQ7WH-Be987DPJ.js} +1 -1
  28. package/dist/client/assets/{diagram-OA4YK3LP-COgju4NX.js → diagram-OA4YK3LP-CfgTeXAJ.js} +1 -1
  29. package/dist/client/assets/{diagram-WEI45ONY-6gNSoIek.js → diagram-WEI45ONY-BgrK8rP2.js} +1 -1
  30. package/dist/client/assets/{ebnfDiagram-CCIWWBDH-CTlIMc8W.js → ebnfDiagram-CCIWWBDH-BPsH1_QO.js} +1 -1
  31. package/dist/client/assets/{erDiagram-Q63AITRT-BDsEvZvq.js → erDiagram-Q63AITRT-F3s7Ytrc.js} +1 -1
  32. package/dist/client/assets/{flowDiagram-23GEKE2U-ggl4zaY9.js → flowDiagram-23GEKE2U-ByL-8svD.js} +1 -1
  33. package/dist/client/assets/{ganttDiagram-NO4QXBWP-D9Ca5oWS.js → ganttDiagram-NO4QXBWP-Dtv-fi06.js} +1 -1
  34. package/dist/client/assets/{gitGraphDiagram-IHSO6WYX-THPUH6Bg.js → gitGraphDiagram-IHSO6WYX-CeD48POl.js} +1 -1
  35. package/dist/client/assets/{index-BuMMW0wS.js → index-C82Uc6Vy.js} +4 -4
  36. package/dist/client/assets/{infoDiagram-FWYZ7A6U-CKF-vSTz.js → infoDiagram-FWYZ7A6U-BxvLe33p.js} +1 -1
  37. package/dist/client/assets/{ishikawaDiagram-FXEZZL3T-CBFlmgI3.js → ishikawaDiagram-FXEZZL3T-XPW1aoJK.js} +1 -1
  38. package/dist/client/assets/{journeyDiagram-5HDEW3XC-lbXIqX5a.js → journeyDiagram-5HDEW3XC-Bhiae04Z.js} +1 -1
  39. package/dist/client/assets/{kanban-definition-HUTT4EX6-BUuO_e54.js → kanban-definition-HUTT4EX6-D5iOY3Zc.js} +1 -1
  40. package/dist/client/assets/{linear-D_uoNzR8.js → linear-PCgLsFTe.js} +1 -1
  41. package/dist/client/assets/{mermaid.core-D4Yy5OxZ.js → mermaid.core-DWuc-xG5.js} +4 -4
  42. package/dist/client/assets/{mindmap-definition-LN4V7U3C-B0Ml-jaq.js → mindmap-definition-LN4V7U3C-C0EFK91v.js} +1 -1
  43. package/dist/client/assets/{pegDiagram-2B236MQR-CKF9cuqx.js → pegDiagram-2B236MQR-ClTz8aHa.js} +1 -1
  44. package/dist/client/assets/{pieDiagram-ENE6RG2P-DL3XisAD.js → pieDiagram-ENE6RG2P-BuTv1DGN.js} +1 -1
  45. package/dist/client/assets/{quadrantDiagram-ABIIQ3AL-DrsHXXqd.js → quadrantDiagram-ABIIQ3AL-FLZC-cqI.js} +1 -1
  46. package/dist/client/assets/{railroadDiagram-RFXS5EU6-DMAz8hLg.js → railroadDiagram-RFXS5EU6-DK68FlFh.js} +1 -1
  47. package/dist/client/assets/{requirementDiagram-TGXJPOKE-CCHretnQ.js → requirementDiagram-TGXJPOKE-B_701AJ1.js} +1 -1
  48. package/dist/client/assets/{sankeyDiagram-HTMAVEWB-Btb7ZNwU.js → sankeyDiagram-HTMAVEWB-Bk87L7JG.js} +1 -1
  49. package/dist/client/assets/{sequenceDiagram-DBY2YBRQ-DcZk1PdX.js → sequenceDiagram-DBY2YBRQ-Biy5tPTS.js} +1 -1
  50. package/dist/client/assets/{sizeCapture-X5ZJPWSS-vMYb_VZU.js → sizeCapture-X5ZJPWSS-__4zzUuh.js} +1 -1
  51. package/dist/client/assets/{stateDiagram-2N3HPSRC-CltexqJj.js → stateDiagram-2N3HPSRC-B_400cf9.js} +1 -1
  52. package/dist/client/assets/stateDiagram-v2-6OUMAXLB-CK77br3V.js +1 -0
  53. package/dist/client/assets/{swimlanes-5IMT3BWC-DPnwlpXX.js → swimlanes-5IMT3BWC-CxWZz0n0.js} +2 -2
  54. package/dist/client/assets/swimlanesDiagram-G3AALYLV-DbYe8ax3.js +8 -0
  55. package/dist/client/assets/{timeline-definition-FHXFAJF6-l78vfKln.js → timeline-definition-FHXFAJF6-DSrIUp8H.js} +1 -1
  56. package/dist/client/assets/{vennDiagram-L72KCM5P-BggNEe_f.js → vennDiagram-L72KCM5P-CdwaUmpL.js} +1 -1
  57. package/dist/client/assets/{wardleyDiagram-EHGQE667-v04USz2e.js → wardleyDiagram-EHGQE667-DwxlF0Xk.js} +1 -1
  58. package/dist/client/assets/{xychartDiagram-FW5EYKEG-CInHBOpK.js → xychartDiagram-FW5EYKEG-CQNmEc_n.js} +1 -1
  59. package/dist/client/index.html +1 -1
  60. package/dist/client/sw.js +1 -1
  61. package/dist/server/agent/sessionSearchStore.js +38 -10
  62. package/dist/server/routes/terminal.js +206 -30
  63. package/package.json +3 -2
  64. package/runtime-manifest.json +2 -2
  65. package/dist/client/assets/channel-DPt818Jx.js +0 -1
  66. package/dist/client/assets/classDiagram-OUVF2IWQ-C2hZbTnO.js +0 -1
  67. package/dist/client/assets/classDiagram-v2-EOCWNBFH-C2hZbTnO.js +0 -1
  68. package/dist/client/assets/stateDiagram-v2-6OUMAXLB-BslbFNw3.js +0 -1
  69. package/dist/client/assets/swimlanesDiagram-G3AALYLV-B0V1XVQb.js +0 -8
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-Ca-rq7yX.js","assets/react-XDCjal2T.js","assets/ModelPreview-Drqv0OTg.js","assets/dnd-BCFAPC0L.js","assets/terminal-C7X98Amf.js","assets/katex-55ZPZeOF.css","assets/mermaid.core-D4Yy5OxZ.js","assets/purify.es-CC4Brkr_.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-Ca-rq7yX.js","assets/react-XDCjal2T.js","assets/ModelPreview-CJK3Nmg4.js","assets/dnd-BCFAPC0L.js","assets/terminal-C7X98Amf.js","assets/katex-55ZPZeOF.css","assets/mermaid.core-DWuc-xG5.js","assets/purify.es-CC4Brkr_.js"])))=>i.map(i=>d[i]);
2
2
  import{r as Km,a as vk,g as X4}from"./react-XDCjal2T.js";import{b,R as j,r as qa,a as wk}from"./dnd-BCFAPC0L.js";import{L as Sk,l as Ak}from"./terminal-C7X98Amf.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const i of s)if(i.type==="childList")for(const l of i.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&r(l)}).observe(document,{childList:!0,subtree:!0});function n(s){const i={};return s.integrity&&(i.integrity=s.integrity),s.referrerPolicy&&(i.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?i.credentials="include":s.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(s){if(s.ep)return;s.ep=!0;const i=n(s);fetch(s.href,i)}})();var o1={exports:{}},D0={};var o5;function Tk(){if(o5)return D0;o5=1;var e=Km(),t=Symbol.for("react.element"),n=Symbol.for("react.fragment"),r=Object.prototype.hasOwnProperty,s=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,i={key:!0,ref:!0,__self:!0,__source:!0};function l(c,u,h){var p,g={},y=null,v=null;h!==void 0&&(y=""+h),u.key!==void 0&&(y=""+u.key),u.ref!==void 0&&(v=u.ref);for(p in u)r.call(u,p)&&!i.hasOwnProperty(p)&&(g[p]=u[p]);if(c&&c.defaultProps)for(p in u=c.defaultProps,u)g[p]===void 0&&(g[p]=u[p]);return{$$typeof:t,type:c,key:y,ref:v,props:g,_owner:s.current}}return D0.Fragment=n,D0.jsx=l,D0.jsxs=l,D0}var a5;function Ck(){return a5||(a5=1,o1.exports=Tk()),o1.exports}var a=Ck(),Yh={},l5;function kk(){if(l5)return Yh;l5=1;var e=vk();return Yh.createRoot=e.createRoot,Yh.hydrateRoot=e.hydrateRoot,Yh}var _k=kk();const Lk=X4(_k);function c5(e){return e!==null&&typeof e=="object"&&"constructor"in e&&e.constructor===Object}function _2(e={},t={}){const n=["__proto__","constructor","prototype"];Object.keys(t).filter(r=>n.indexOf(r)<0).forEach(r=>{typeof e[r]>"u"?e[r]=t[r]:c5(t[r])&&c5(e[r])&&Object.keys(t[r]).length>0&&_2(e[r],t[r])})}const Z4={body:{},addEventListener(){},removeEventListener(){},activeElement:{blur(){},nodeName:""},querySelector(){return null},querySelectorAll(){return[]},getElementById(){return null},createEvent(){return{initEvent(){}}},createElement(){return{children:[],childNodes:[],style:{},setAttribute(){},getElementsByTagName(){return[]}}},createElementNS(){return{}},importNode(){return null},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}};function Qu(){const e=typeof document<"u"?document:{};return _2(e,Z4),e}const Ek={document:Z4,navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""},history:{replaceState(){},pushState(){},go(){},back(){}},CustomEvent:function(){return this},addEventListener(){},removeEventListener(){},getComputedStyle(){return{getPropertyValue(){return""}}},Image(){},Date(){},screen:{},setTimeout(){},clearTimeout(){},matchMedia(){return{}},requestAnimationFrame(e){return typeof setTimeout>"u"?(e(),null):setTimeout(e,0)},cancelAnimationFrame(e){typeof setTimeout>"u"||clearTimeout(e)}};function Mo(){const e=typeof window<"u"?window:{};return _2(e,Ek),e}function Ik(e=""){return e.trim().split(" ").filter(t=>!!t.trim())}function Rk(e){const t=e;Object.keys(t).forEach(n=>{try{t[n]=null}catch{}try{delete t[n]}catch{}})}function J4(e,t=0){return setTimeout(e,t)}function um(){return Date.now()}function Nk(e){const t=Mo();let n;return t.getComputedStyle&&(n=t.getComputedStyle(e,null)),!n&&e.currentStyle&&(n=e.currentStyle),n||(n=e.style),n}function Mk(e,t="x"){const n=Mo();let r,s,i;const l=Nk(e);return n.WebKitCSSMatrix?(s=l.transform||l.webkitTransform,s.split(",").length>6&&(s=s.split(", ").map(c=>c.replace(",",".")).join(", ")),i=new n.WebKitCSSMatrix(s==="none"?"":s)):(i=l.MozTransform||l.OTransform||l.MsTransform||l.msTransform||l.transform||l.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,"),r=i.toString().split(",")),t==="x"&&(n.WebKitCSSMatrix?s=i.m41:r.length===16?s=parseFloat(r[12]):s=parseFloat(r[4])),t==="y"&&(n.WebKitCSSMatrix?s=i.m42:r.length===16?s=parseFloat(r[13]):s=parseFloat(r[5])),s||0}function Kh(e){return typeof e=="object"&&e!==null&&e.constructor&&Object.prototype.toString.call(e).slice(8,-1)==="Object"}function Dk(e){return typeof window<"u"&&typeof window.HTMLElement<"u"?e instanceof HTMLElement:e&&(e.nodeType===1||e.nodeType===11)}function da(...e){const t=Object(e[0]);for(let n=1;n<e.length;n+=1){const r=e[n];if(r!=null&&!Dk(r)){const s=Object.keys(Object(r)).filter(i=>i!=="__proto__"&&i!=="constructor"&&i!=="prototype");for(let i=0,l=s.length;i<l;i+=1){const c=s[i],u=Object.getOwnPropertyDescriptor(r,c);u!==void 0&&u.enumerable&&(Kh(t[c])&&Kh(r[c])?r[c].__swiper__?t[c]=r[c]:da(t[c],r[c]):!Kh(t[c])&&Kh(r[c])?(t[c]={},r[c].__swiper__?t[c]=r[c]:da(t[c],r[c])):t[c]=r[c])}}}return t}function cd(e,t,n){e.style.setProperty(t,n)}function e7({swiper:e,targetPosition:t,side:n}){const r=Mo(),s=-e.translate;let i=null,l;const c=e.params.speed;e.wrapperEl.style.scrollSnapType="none",r.cancelAnimationFrame(e.cssModeFrameID);const u=t>s?"next":"prev",h=(g,y)=>u==="next"&&g>=y||u==="prev"&&g<=y,p=()=>{l=new Date().getTime(),i===null&&(i=l);const g=Math.max(Math.min((l-i)/c,1),0),y=.5-Math.cos(g*Math.PI)/2;let v=s+y*(t-s);if(h(v,t)&&(v=t),e.wrapperEl.scrollTo({[n]:v}),h(v,t)){e.wrapperEl.style.overflow="hidden",e.wrapperEl.style.scrollSnapType="",setTimeout(()=>{e.wrapperEl.style.overflow="",e.wrapperEl.scrollTo({[n]:v})}),r.cancelAnimationFrame(e.cssModeFrameID);return}e.cssModeFrameID=r.requestAnimationFrame(p)};p()}function lc(e,t=""){const n=Mo(),r=[...e.children];return n.HTMLSlotElement&&e instanceof HTMLSlotElement&&r.push(...e.assignedElements()),t?r.filter(s=>s.matches(t)):r}function jk(e,t){const n=[t];for(;n.length>0;){const r=n.shift();if(e===r)return!0;n.push(...r.children,...r.shadowRoot?r.shadowRoot.children:[],...r.assignedElements?r.assignedElements():[])}}function Pk(e,t){const n=Mo();let r=t.contains(e);return!r&&n.HTMLSlotElement&&t instanceof HTMLSlotElement&&(r=[...t.assignedElements()].includes(e),r||(r=jk(e,t))),r}function dm(e){try{console.warn(e);return}catch{}}function Xx(e,t=[]){const n=document.createElement(e);return n.classList.add(...Array.isArray(t)?t:Ik(t)),n}function Bk(e,t){const n=[];for(;e.previousElementSibling;){const r=e.previousElementSibling;t?r.matches(t)&&n.push(r):n.push(r),e=r}return n}function Fk(e,t){const n=[];for(;e.nextElementSibling;){const r=e.nextElementSibling;t?r.matches(t)&&n.push(r):n.push(r),e=r}return n}function zc(e,t){return Mo().getComputedStyle(e,null).getPropertyValue(t)}function u5(e){let t=e,n;if(t){for(n=0;(t=t.previousSibling)!==null;)t.nodeType===1&&(n+=1);return n}}function Ok(e,t){const n=[];let r=e.parentElement;for(;r;)n.push(r),r=r.parentElement;return n}function d5(e,t,n){const r=Mo();return e[t==="width"?"offsetWidth":"offsetHeight"]+parseFloat(r.getComputedStyle(e,null).getPropertyValue(t==="width"?"margin-right":"margin-top"))+parseFloat(r.getComputedStyle(e,null).getPropertyValue(t==="width"?"margin-left":"margin-bottom"))}function f5(e,t=""){typeof trustedTypes<"u"?e.innerHTML=trustedTypes.createPolicy("html",{createHTML:n=>n}).createHTML(t):e.innerHTML=t}let a1;function Qk(){const e=Mo(),t=Qu();return{smoothScroll:t.documentElement&&t.documentElement.style&&"scrollBehavior"in t.documentElement.style,touch:!!("ontouchstart"in e||e.DocumentTouch&&t instanceof e.DocumentTouch)}}function t7(){return a1||(a1=Qk()),a1}let l1;function $k({userAgent:e}={}){const t=t7(),n=Mo(),r=n.navigator.platform,s=e||n.navigator.userAgent,i={ios:!1,android:!1},l=n.screen.width,c=n.screen.height,u=s.match(/(Android);?[\s\/]+([\d.]+)?/);let h=s.match(/(iPad)(?!\1).*OS\s([\d_]+)/);const p=s.match(/(iPod)(.*OS\s([\d_]+))?/),g=!h&&s.match(/(iPhone\sOS|iOS)\s([\d_]+)/),y=r==="Win32";let v=r==="MacIntel";const S=["1024x1366","1366x1024","834x1194","1194x834","834x1112","1112x834","768x1024","1024x768","820x1180","1180x820","810x1080","1080x810"];return!h&&v&&t.touch&&S.indexOf(`${l}x${c}`)>=0&&(h=s.match(/(Version)\/([\d.]+)/),h||(h=[0,1,"13_0_0"]),v=!1),u&&!y&&(i.os="android",i.android=!0),(h||g||p)&&(i.os="ios",i.ios=!0),i}function n7(e={}){return l1||(l1=$k(e)),l1}let c1;function Hk(){const e=Mo(),t=n7();let n=!1;function r(){const c=e.navigator.userAgent.toLowerCase();return c.indexOf("safari")>=0&&c.indexOf("chrome")<0&&c.indexOf("android")<0}if(r()){const c=String(e.navigator.userAgent);if(c.includes("Version/")){const[u,h]=c.split("Version/")[1].split(" ")[0].split(".").map(p=>Number(p));n=u<16||u===16&&h<2}}const s=/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(e.navigator.userAgent),i=r(),l=i||s&&t.ios;return{isSafari:n||i,needPerspectiveFix:n,need3dFix:l,isWebView:s}}function r7(){return c1||(c1=Hk()),c1}function Uk({swiper:e,on:t,emit:n}){const r=Mo();let s=null,i=null;const l=()=>{!e||e.destroyed||!e.initialized||(n("beforeResize"),n("resize"))},c=()=>{!e||e.destroyed||!e.initialized||(s=new ResizeObserver(p=>{i=r.requestAnimationFrame(()=>{const{width:g,height:y}=e;let v=g,S=y;p.forEach(({contentBoxSize:A,contentRect:T,target:L})=>{L&&L!==e.el||(v=T?T.width:(A[0]||A).inlineSize,S=T?T.height:(A[0]||A).blockSize)}),(v!==g||S!==y)&&l()})}),s.observe(e.el))},u=()=>{i&&r.cancelAnimationFrame(i),s&&s.unobserve&&e.el&&(s.unobserve(e.el),s=null)},h=()=>{!e||e.destroyed||!e.initialized||n("orientationchange")};t("init",()=>{if(e.params.resizeObserver&&typeof r.ResizeObserver<"u"){c();return}r.addEventListener("resize",l),r.addEventListener("orientationchange",h)}),t("destroy",()=>{u(),r.removeEventListener("resize",l),r.removeEventListener("orientationchange",h)})}function zk({swiper:e,extendParams:t,on:n,emit:r}){const s=[],i=Mo(),l=(h,p={})=>{const g=i.MutationObserver||i.WebkitMutationObserver,y=new g(v=>{if(e.__preventObserver__)return;if(v.length===1){r("observerUpdate",v[0]);return}const S=function(){r("observerUpdate",v[0])};i.requestAnimationFrame?i.requestAnimationFrame(S):i.setTimeout(S,0)});y.observe(h,{attributes:typeof p.attributes>"u"?!0:p.attributes,childList:e.isElement||(typeof p.childList>"u"?!0:p).childList,characterData:typeof p.characterData>"u"?!0:p.characterData}),s.push(y)},c=()=>{if(e.params.observer){if(e.params.observeParents){const h=Ok(e.hostEl);for(let p=0;p<h.length;p+=1)l(h[p])}l(e.hostEl,{childList:e.params.observeSlideChildren}),l(e.wrapperEl,{attributes:!1})}},u=()=>{s.forEach(h=>{h.disconnect()}),s.splice(0,s.length)};t({observer:!1,observeParents:!1,observeSlideChildren:!1}),n("init",c),n("destroy",u)}var Gk={on(e,t,n){const r=this;if(!r.eventsListeners||r.destroyed||typeof t!="function")return r;const s=n?"unshift":"push";return e.split(" ").forEach(i=>{r.eventsListeners[i]||(r.eventsListeners[i]=[]),r.eventsListeners[i][s](t)}),r},once(e,t,n){const r=this;if(!r.eventsListeners||r.destroyed||typeof t!="function")return r;function s(...i){r.off(e,s),s.__emitterProxy&&delete s.__emitterProxy,t.apply(r,i)}return s.__emitterProxy=t,r.on(e,s,n)},onAny(e,t){const n=this;if(!n.eventsListeners||n.destroyed||typeof e!="function")return n;const r=t?"unshift":"push";return n.eventsAnyListeners.indexOf(e)<0&&n.eventsAnyListeners[r](e),n},offAny(e){const t=this;if(!t.eventsListeners||t.destroyed||!t.eventsAnyListeners)return t;const n=t.eventsAnyListeners.indexOf(e);return n>=0&&t.eventsAnyListeners.splice(n,1),t},off(e,t){const n=this;return!n.eventsListeners||n.destroyed||!n.eventsListeners||e.split(" ").forEach(r=>{typeof t>"u"?n.eventsListeners[r]=[]:n.eventsListeners[r]&&n.eventsListeners[r].forEach((s,i)=>{(s===t||s.__emitterProxy&&s.__emitterProxy===t)&&n.eventsListeners[r].splice(i,1)})}),n},emit(...e){const t=this;if(!t.eventsListeners||t.destroyed||!t.eventsListeners)return t;let n,r,s;return typeof e[0]=="string"||Array.isArray(e[0])?(n=e[0],r=e.slice(1,e.length),s=t):(n=e[0].events,r=e[0].data,s=e[0].context||t),r.unshift(s),(Array.isArray(n)?n:n.split(" ")).forEach(l=>{t.eventsAnyListeners&&t.eventsAnyListeners.length&&t.eventsAnyListeners.forEach(c=>{c.apply(s,[l,...r])}),t.eventsListeners&&t.eventsListeners[l]&&t.eventsListeners[l].forEach(c=>{c.apply(s,r)})}),t}};function Wk(){const e=this;let t,n;const r=e.el;typeof e.params.width<"u"&&e.params.width!==null?t=e.params.width:t=r.clientWidth,typeof e.params.height<"u"&&e.params.height!==null?n=e.params.height:n=r.clientHeight,!(t===0&&e.isHorizontal()||n===0&&e.isVertical())&&(t=t-parseInt(zc(r,"padding-left")||0,10)-parseInt(zc(r,"padding-right")||0,10),n=n-parseInt(zc(r,"padding-top")||0,10)-parseInt(zc(r,"padding-bottom")||0,10),Number.isNaN(t)&&(t=0),Number.isNaN(n)&&(n=0),Object.assign(e,{width:t,height:n,size:e.isHorizontal()?t:n}))}function Vk(){const e=this;function t(G,z){return parseFloat(G.getPropertyValue(e.getDirectionLabel(z))||0)}const n=e.params,{wrapperEl:r,slidesEl:s,rtlTranslate:i,wrongRTL:l}=e,c=e.virtual&&n.virtual.enabled,u=c?e.virtual.slides.length:e.slides.length,h=lc(s,`.${e.params.slideClass}, swiper-slide`),p=c?e.virtual.slides.length:h.length;let g=[];const y=[],v=[];let S=n.slidesOffsetBefore;typeof S=="function"&&(S=n.slidesOffsetBefore.call(e));let A=n.slidesOffsetAfter;typeof A=="function"&&(A=n.slidesOffsetAfter.call(e));const T=e.snapGrid.length,L=e.slidesGrid.length,R=e.size-S-A;let D=n.spaceBetween,P=-S,O=0,M=0;if(typeof R>"u")return;typeof D=="string"&&D.indexOf("%")>=0?D=parseFloat(D.replace("%",""))/100*R:typeof D=="string"&&(D=parseFloat(D)),e.virtualSize=-D-S-A,h.forEach(G=>{i?G.style.marginLeft="":G.style.marginRight="",G.style.marginBottom="",G.style.marginTop=""}),n.centeredSlides&&n.cssMode&&(cd(r,"--swiper-centered-offset-before",""),cd(r,"--swiper-centered-offset-after","")),n.cssMode&&(cd(r,"--swiper-slides-offset-before",`${S}px`),cd(r,"--swiper-slides-offset-after",`${A}px`));const C=n.grid&&n.grid.rows>1&&e.grid;C?e.grid.initSlides(h):e.grid&&e.grid.unsetSlides();let H;const $=n.slidesPerView==="auto"&&n.breakpoints&&Object.keys(n.breakpoints).filter(G=>typeof n.breakpoints[G].slidesPerView<"u").length>0;for(let G=0;G<p;G+=1){H=0;const z=h[G];if(!(z&&(C&&e.grid.updateSlide(G,z,h),zc(z,"display")==="none"))){if(c&&n.slidesPerView==="auto")n.virtual.slidesPerViewAutoSlideSize&&(H=n.virtual.slidesPerViewAutoSlideSize),H&&z&&(n.roundLengths&&(H=Math.floor(H)),z.style[e.getDirectionLabel("width")]=`${H}px`);else if(n.slidesPerView==="auto"){$&&(z.style[e.getDirectionLabel("width")]="");const q=getComputedStyle(z),se=z.style.transform,xe=z.style.webkitTransform;if(se&&(z.style.transform="none"),xe&&(z.style.webkitTransform="none"),n.roundLengths)H=e.isHorizontal()?d5(z,"width"):d5(z,"height");else{const be=t(q,"width"),X=t(q,"padding-left"),J=t(q,"padding-right"),K=t(q,"margin-left"),V=t(q,"margin-right"),ae=q.getPropertyValue("box-sizing");if(ae&&ae==="border-box")H=be+K+V;else{const{clientWidth:ue,offsetWidth:pe}=z;H=be+X+J+K+V+(pe-ue)}}se&&(z.style.transform=se),xe&&(z.style.webkitTransform=xe),n.roundLengths&&(H=Math.floor(H))}else H=(R-(n.slidesPerView-1)*D)/n.slidesPerView,n.roundLengths&&(H=Math.floor(H)),z&&(z.style[e.getDirectionLabel("width")]=`${H}px`);z&&(z.swiperSlideSize=H),v.push(H),n.centeredSlides?(P=P+H/2+O/2+D,O===0&&G!==0&&(P=P-R/2-D),G===0&&(P=P-R/2-D),Math.abs(P)<1/1e3&&(P=0),n.roundLengths&&(P=Math.floor(P)),M%n.slidesPerGroup===0&&g.push(P),y.push(P)):(n.roundLengths&&(P=Math.floor(P)),(M-Math.min(e.params.slidesPerGroupSkip,M))%e.params.slidesPerGroup===0&&g.push(P),y.push(P),P=P+H+D),e.virtualSize+=H+D,O=H,M+=1}}if(e.virtualSize=Math.max(e.virtualSize,R)+A,i&&l&&(n.effect==="slide"||n.effect==="coverflow")&&(r.style.width=`${e.virtualSize+D}px`),n.setWrapperSize&&(r.style[e.getDirectionLabel("width")]=`${e.virtualSize+D}px`),C&&e.grid.updateWrapperSize(H,g),!n.centeredSlides){const G=n.slidesPerView!=="auto"&&n.slidesPerView%1!==0,z=n.snapToSlideEdge&&!n.loop&&(n.slidesPerView==="auto"||G);let q=g.length;if(z){let xe;if(n.slidesPerView==="auto"){xe=1;let be=0;for(let X=v.length-1;X>=0&&(be+=v[X]+(X<v.length-1?D:0),be<=R);X-=1)xe=v.length-X}else xe=Math.floor(n.slidesPerView);q=Math.max(p-xe,0)}const se=[];for(let xe=0;xe<g.length;xe+=1){let be=g[xe];n.roundLengths&&(be=Math.floor(be)),z?xe<=q&&se.push(be):g[xe]<=e.virtualSize-R&&se.push(be)}g=se,Math.floor(e.virtualSize-R)-Math.floor(g[g.length-1])>1&&(z||g.push(e.virtualSize-R))}if(c&&n.loop){const G=v[0]+D;if(n.slidesPerGroup>1){const z=Math.ceil((e.virtual.slidesBefore+e.virtual.slidesAfter)/n.slidesPerGroup),q=G*n.slidesPerGroup;for(let se=0;se<z;se+=1)g.push(g[g.length-1]+q)}for(let z=0;z<e.virtual.slidesBefore+e.virtual.slidesAfter;z+=1)n.slidesPerGroup===1&&g.push(g[g.length-1]+G),y.push(y[y.length-1]+G),e.virtualSize+=G}if(g.length===0&&(g=[0]),D!==0){const G=e.isHorizontal()&&i?"marginLeft":e.getDirectionLabel("marginRight");h.filter((z,q)=>!n.cssMode||n.loop?!0:q!==h.length-1).forEach(z=>{z.style[G]=`${D}px`})}if(n.centeredSlides&&n.centeredSlidesBounds){let G=0;v.forEach(q=>{G+=q+(D||0)}),G-=D;const z=G>R?G-R:0;g=g.map(q=>q<=0?-S:q>z?z+A:q)}if(n.centerInsufficientSlides){let G=0;if(v.forEach(z=>{G+=z+(D||0)}),G-=D,G<R){const z=(R-G)/2;g.forEach((q,se)=>{g[se]=q-z}),y.forEach((q,se)=>{y[se]=q+z})}}if(Object.assign(e,{slides:h,snapGrid:g,slidesGrid:y,slidesSizesGrid:v}),n.centeredSlides&&n.cssMode&&!n.centeredSlidesBounds){cd(r,"--swiper-centered-offset-before",`${-g[0]}px`),cd(r,"--swiper-centered-offset-after",`${e.size/2-v[v.length-1]/2}px`);const G=-e.snapGrid[0],z=-e.slidesGrid[0];e.snapGrid=e.snapGrid.map(q=>q+G),e.slidesGrid=e.slidesGrid.map(q=>q+z)}if(p!==u&&e.emit("slidesLengthChange"),g.length!==T&&(e.params.watchOverflow&&e.checkOverflow(),e.emit("snapGridLengthChange")),y.length!==L&&e.emit("slidesGridLengthChange"),n.watchSlidesProgress&&e.updateSlidesOffset(),e.emit("slidesUpdated"),!c&&!n.cssMode&&(n.effect==="slide"||n.effect==="fade")){const G=`${n.containerModifierClass}backface-hidden`,z=e.el.classList.contains(G);p<=n.maxBackfaceHiddenSlides?z||e.el.classList.add(G):z&&e.el.classList.remove(G)}}function qk(e){const t=this,n=[],r=t.virtual&&t.params.virtual.enabled;let s=0,i;typeof e=="number"?t.setTransition(e):e===!0&&t.setTransition(t.params.speed);const l=c=>r?t.slides[t.getSlideIndexByData(c)]:t.slides[c];if(t.params.slidesPerView!=="auto"&&t.params.slidesPerView>1)if(t.params.centeredSlides)(t.visibleSlides||[]).forEach(c=>{n.push(c)});else for(i=0;i<Math.ceil(t.params.slidesPerView);i+=1){const c=t.activeIndex+i;if(c>t.slides.length&&!r)break;n.push(l(c))}else n.push(l(t.activeIndex));for(i=0;i<n.length;i+=1)if(typeof n[i]<"u"){const c=n[i].offsetHeight;s=c>s?c:s}(s||s===0)&&(t.wrapperEl.style.height=`${s}px`)}function Yk(){const e=this,t=e.slides,n=e.isElement?e.isHorizontal()?e.wrapperEl.offsetLeft:e.wrapperEl.offsetTop:0;for(let r=0;r<t.length;r+=1)t[r].swiperSlideOffset=(e.isHorizontal()?t[r].offsetLeft:t[r].offsetTop)-n-e.cssOverflowAdjustment()}const h5=(e,t,n)=>{t&&!e.classList.contains(n)?e.classList.add(n):!t&&e.classList.contains(n)&&e.classList.remove(n)};function Kk(e=this&&this.translate||0){const t=this,n=t.params,{slides:r,rtlTranslate:s,snapGrid:i}=t;if(r.length===0)return;typeof r[0].swiperSlideOffset>"u"&&t.updateSlidesOffset();let l=-e;s&&(l=e),t.visibleSlidesIndexes=[],t.visibleSlides=[];let c=n.spaceBetween;typeof c=="string"&&c.indexOf("%")>=0?c=parseFloat(c.replace("%",""))/100*t.size:typeof c=="string"&&(c=parseFloat(c));for(let u=0;u<r.length;u+=1){const h=r[u];let p=h.swiperSlideOffset;n.cssMode&&n.centeredSlides&&(p-=r[0].swiperSlideOffset);const g=(l+(n.centeredSlides?t.minTranslate():0)-p)/(h.swiperSlideSize+c),y=(l-i[0]+(n.centeredSlides?t.minTranslate():0)-p)/(h.swiperSlideSize+c),v=-(l-p),S=v+t.slidesSizesGrid[u],A=v>=0&&v<=t.size-t.slidesSizesGrid[u],T=v>=0&&v<t.size-1||S>1&&S<=t.size||v<=0&&S>=t.size;T&&(t.visibleSlides.push(h),t.visibleSlidesIndexes.push(u)),h5(h,T,n.slideVisibleClass),h5(h,A,n.slideFullyVisibleClass),h.progress=s?-g:g,h.originalProgress=s?-y:y}}function Xk(e){const t=this;if(typeof e>"u"){const p=t.rtlTranslate?-1:1;e=t&&t.translate&&t.translate*p||0}const n=t.params,r=t.maxTranslate()-t.minTranslate();let{progress:s,isBeginning:i,isEnd:l,progressLoop:c}=t;const u=i,h=l;if(r===0)s=0,i=!0,l=!0;else{s=(e-t.minTranslate())/r;const p=Math.abs(e-t.minTranslate())<1,g=Math.abs(e-t.maxTranslate())<1;i=p||s<=0,l=g||s>=1,p&&(s=0),g&&(s=1)}if(n.loop){const p=t.getSlideIndexByData(0),g=t.getSlideIndexByData(t.slides.length-1),y=t.slidesGrid[p],v=t.slidesGrid[g],S=t.slidesGrid[t.slidesGrid.length-1],A=Math.abs(e);A>=y?c=(A-y)/S:c=(A+S-v)/S,c>1&&(c-=1)}Object.assign(t,{progress:s,progressLoop:c,isBeginning:i,isEnd:l}),(n.watchSlidesProgress||n.centeredSlides&&n.autoHeight)&&t.updateSlidesProgress(e),i&&!u&&t.emit("reachBeginning toEdge"),l&&!h&&t.emit("reachEnd toEdge"),(u&&!i||h&&!l)&&t.emit("fromEdge"),t.emit("progress",s)}const u1=(e,t,n)=>{t&&!e.classList.contains(n)?e.classList.add(n):!t&&e.classList.contains(n)&&e.classList.remove(n)};function Zk(){const e=this,{slides:t,params:n,slidesEl:r,activeIndex:s}=e,i=e.virtual&&n.virtual.enabled,l=e.grid&&n.grid&&n.grid.rows>1,c=g=>lc(r,`.${n.slideClass}${g}, swiper-slide${g}`)[0];let u,h,p;if(i)if(n.loop){let g=s-e.virtual.slidesBefore;g<0&&(g=e.virtual.slides.length+g),g>=e.virtual.slides.length&&(g-=e.virtual.slides.length),u=c(`[data-swiper-slide-index="${g}"]`)}else u=c(`[data-swiper-slide-index="${s}"]`);else l?(u=t.find(g=>g.column===s),p=t.find(g=>g.column===s+1),h=t.find(g=>g.column===s-1)):u=t[s];u&&(l||(p=Fk(u,`.${n.slideClass}, swiper-slide`)[0],n.loop&&!p&&(p=t[0]),h=Bk(u,`.${n.slideClass}, swiper-slide`)[0],n.loop&&!h===0&&(h=t[t.length-1]))),t.forEach(g=>{u1(g,g===u,n.slideActiveClass),u1(g,g===p,n.slideNextClass),u1(g,g===h,n.slidePrevClass)}),e.emitSlidesClasses()}const Qp=(e,t)=>{if(!e||e.destroyed||!e.params)return;const n=()=>e.isElement?"swiper-slide":`.${e.params.slideClass}`,r=t.closest(n());if(r){let s=r.querySelector(`.${e.params.lazyPreloaderClass}`);!s&&e.isElement&&(r.shadowRoot?s=r.shadowRoot.querySelector(`.${e.params.lazyPreloaderClass}`):requestAnimationFrame(()=>{r.shadowRoot&&(s=r.shadowRoot.querySelector(`.${e.params.lazyPreloaderClass}`),s&&!s.lazyPreloaderManaged&&s.remove())})),s&&!s.lazyPreloaderManaged&&s.remove()}},d1=(e,t)=>{if(!e.slides[t])return;const n=e.slides[t].querySelector('[loading="lazy"]');n&&n.removeAttribute("loading")},Zx=e=>{if(!e||e.destroyed||!e.params)return;let t=e.params.lazyPreloadPrevNext;const n=e.slides.length;if(!n||!t||t<0)return;t=Math.min(t,n);const r=e.params.slidesPerView==="auto"?e.slidesPerViewDynamic():Math.ceil(e.params.slidesPerView),s=e.activeIndex;if(e.params.grid&&e.params.grid.rows>1){const l=s,c=[l-t];c.push(...Array.from({length:t}).map((u,h)=>l+r+h)),e.slides.forEach((u,h)=>{c.includes(u.column)&&d1(e,h)});return}const i=s+r-1;if(e.params.rewind||e.params.loop)for(let l=s-t;l<=i+t;l+=1){const c=(l%n+n)%n;(c<s||c>i)&&d1(e,c)}else for(let l=Math.max(s-t,0);l<=Math.min(i+t,n-1);l+=1)l!==s&&(l>i||l<s)&&d1(e,l)};function Jk(e){const{slidesGrid:t,params:n}=e,r=e.rtlTranslate?e.translate:-e.translate;let s;for(let i=0;i<t.length;i+=1)typeof t[i+1]<"u"?r>=t[i]&&r<t[i+1]-(t[i+1]-t[i])/2?s=i:r>=t[i]&&r<t[i+1]&&(s=i+1):r>=t[i]&&(s=i);return n.normalizeSlideIndex&&(s<0||typeof s>"u")&&(s=0),s}function e_(e){const t=this,n=t.rtlTranslate?t.translate:-t.translate,{snapGrid:r,params:s,activeIndex:i,realIndex:l,snapIndex:c}=t;let u=e,h;const p=v=>{let S=v-t.virtual.slidesBefore;return S<0&&(S=t.virtual.slides.length+S),S>=t.virtual.slides.length&&(S-=t.virtual.slides.length),S};if(typeof u>"u"&&(u=Jk(t)),r.indexOf(n)>=0)h=r.indexOf(n);else{const v=Math.min(s.slidesPerGroupSkip,u);h=v+Math.floor((u-v)/s.slidesPerGroup)}if(h>=r.length&&(h=r.length-1),u===i&&!t.params.loop){h!==c&&(t.snapIndex=h,t.emit("snapIndexChange"));return}if(u===i&&t.params.loop&&t.virtual&&t.params.virtual.enabled){t.realIndex=p(u);return}const g=t.grid&&s.grid&&s.grid.rows>1;let y;if(t.virtual&&s.virtual.enabled)s.loop?y=p(u):y=u;else if(g){const v=t.slides.find(A=>A.column===u);let S=parseInt(v.getAttribute("data-swiper-slide-index"),10);Number.isNaN(S)&&(S=Math.max(t.slides.indexOf(v),0)),y=Math.floor(S/s.grid.rows)}else if(t.slides[u]){const v=t.slides[u].getAttribute("data-swiper-slide-index");v?y=parseInt(v,10):y=u}else y=u;Object.assign(t,{previousSnapIndex:c,snapIndex:h,previousRealIndex:l,realIndex:y,previousIndex:i,activeIndex:u}),t.initialized&&Zx(t),t.emit("activeIndexChange"),t.emit("snapIndexChange"),(t.initialized||t.params.runCallbacksOnInit)&&(l!==y&&t.emit("realIndexChange"),t.emit("slideChange"))}function t_(e,t){const n=this,r=n.params;let s=e.closest(`.${r.slideClass}, swiper-slide`);!s&&n.isElement&&t&&t.length>1&&t.includes(e)&&[...t.slice(t.indexOf(e)+1,t.length)].forEach(c=>{!s&&c.matches&&c.matches(`.${r.slideClass}, swiper-slide`)&&(s=c)});let i=!1,l;if(s){for(let c=0;c<n.slides.length;c+=1)if(n.slides[c]===s){i=!0,l=c;break}}if(s&&i)n.clickedSlide=s,n.virtual&&n.params.virtual.enabled?n.clickedIndex=parseInt(s.getAttribute("data-swiper-slide-index"),10):n.clickedIndex=l;else{n.clickedSlide=void 0,n.clickedIndex=void 0;return}r.slideToClickedSlide&&n.clickedIndex!==void 0&&n.clickedIndex!==n.activeIndex&&n.slideToClickedSlide()}var n_={updateSize:Wk,updateSlides:Vk,updateAutoHeight:qk,updateSlidesOffset:Yk,updateSlidesProgress:Kk,updateProgress:Xk,updateSlidesClasses:Zk,updateActiveIndex:e_,updateClickedSlide:t_};function r_(e=this.isHorizontal()?"x":"y"){const t=this,{params:n,rtlTranslate:r,translate:s,wrapperEl:i}=t;if(n.virtualTranslate)return r?-s:s;if(n.cssMode)return s;let l=Mk(i,e);return l+=t.cssOverflowAdjustment(),r&&(l=-l),l||0}function s_(e,t){const n=this,{rtlTranslate:r,params:s,wrapperEl:i,progress:l}=n;let c=0,u=0;const h=0;n.isHorizontal()?c=r?-e:e:u=e,s.roundLengths&&(c=Math.floor(c),u=Math.floor(u)),n.previousTranslate=n.translate,n.translate=n.isHorizontal()?c:u,s.cssMode?i[n.isHorizontal()?"scrollLeft":"scrollTop"]=n.isHorizontal()?-c:-u:s.virtualTranslate||(n.isHorizontal()?c-=n.cssOverflowAdjustment():u-=n.cssOverflowAdjustment(),i.style.transform=`translate3d(${c}px, ${u}px, ${h}px)`);let p;const g=n.maxTranslate()-n.minTranslate();g===0?p=0:p=(e-n.minTranslate())/g,p!==l&&n.updateProgress(e),n.emit("setTranslate",n.translate,t)}function i_(){return-this.snapGrid[0]}function o_(){return-this.snapGrid[this.snapGrid.length-1]}function a_(e=0,t=this.params.speed,n=!0,r=!0,s){const i=this,{params:l,wrapperEl:c}=i;if(i.animating&&l.preventInteractionOnTransition)return!1;const u=i.minTranslate(),h=i.maxTranslate();let p;if(r&&e>u?p=u:r&&e<h?p=h:p=e,i.updateProgress(p),l.cssMode){const g=i.isHorizontal();if(t===0)c[g?"scrollLeft":"scrollTop"]=-p;else{if(!i.support.smoothScroll)return e7({swiper:i,targetPosition:-p,side:g?"left":"top"}),!0;c.scrollTo({[g?"left":"top"]:-p,behavior:"smooth"})}return!0}return t===0?(i.setTransition(0),i.setTranslate(p),n&&(i.emit("beforeTransitionStart",t,s),i.emit("transitionEnd"))):(i.setTransition(t),i.setTranslate(p),n&&(i.emit("beforeTransitionStart",t,s),i.emit("transitionStart")),i.animating||(i.animating=!0,i.onTranslateToWrapperTransitionEnd||(i.onTranslateToWrapperTransitionEnd=function(y){!i||i.destroyed||y.target===this&&(i.wrapperEl.removeEventListener("transitionend",i.onTranslateToWrapperTransitionEnd),i.onTranslateToWrapperTransitionEnd=null,delete i.onTranslateToWrapperTransitionEnd,i.animating=!1,n&&i.emit("transitionEnd"))}),i.wrapperEl.addEventListener("transitionend",i.onTranslateToWrapperTransitionEnd))),!0}var l_={getTranslate:r_,setTranslate:s_,minTranslate:i_,maxTranslate:o_,translateTo:a_};function c_(e,t){const n=this;n.params.cssMode||(n.wrapperEl.style.transitionDuration=`${e}ms`,n.wrapperEl.style.transitionDelay=e===0?"0ms":""),n.emit("setTransition",e,t)}function s7({swiper:e,runCallbacks:t,direction:n,step:r}){const{activeIndex:s,previousIndex:i}=e;let l=n;l||(s>i?l="next":s<i?l="prev":l="reset"),e.emit(`transition${r}`),t&&l==="reset"?e.emit(`slideResetTransition${r}`):t&&s!==i&&(e.emit(`slideChangeTransition${r}`),l==="next"?e.emit(`slideNextTransition${r}`):e.emit(`slidePrevTransition${r}`))}function u_(e=!0,t){const n=this,{params:r}=n;r.cssMode||(r.autoHeight&&n.updateAutoHeight(),s7({swiper:n,runCallbacks:e,direction:t,step:"Start"}))}function d_(e=!0,t){const n=this,{params:r}=n;n.animating=!1,!r.cssMode&&(n.setTransition(0),s7({swiper:n,runCallbacks:e,direction:t,step:"End"}))}var f_={setTransition:c_,transitionStart:u_,transitionEnd:d_};function h_(e=0,t,n=!0,r,s){typeof e=="string"&&(e=parseInt(e,10));const i=this;let l=e;l<0&&(l=0);const{params:c,snapGrid:u,slidesGrid:h,previousIndex:p,activeIndex:g,rtlTranslate:y,wrapperEl:v,enabled:S}=i;if(!S&&!r&&!s||i.destroyed||i.animating&&c.preventInteractionOnTransition)return!1;typeof t>"u"&&(t=i.params.speed);const A=Math.min(i.params.slidesPerGroupSkip,l);let T=A+Math.floor((l-A)/i.params.slidesPerGroup);T>=u.length&&(T=u.length-1);const L=-u[T];if(c.normalizeSlideIndex)for(let C=0;C<h.length;C+=1){const H=-Math.floor(L*100),$=Math.floor(h[C]*100),G=Math.floor(h[C+1]*100);typeof h[C+1]<"u"?H>=$&&H<G-(G-$)/2?l=C:H>=$&&H<G&&(l=C+1):H>=$&&(l=C)}if(i.initialized&&l!==g&&(!i.allowSlideNext&&(y?L>i.translate&&L>i.minTranslate():L<i.translate&&L<i.minTranslate())||!i.allowSlidePrev&&L>i.translate&&L>i.maxTranslate()&&(g||0)!==l))return!1;l!==(p||0)&&n&&i.emit("beforeSlideChangeStart"),i.updateProgress(L);let R;l>g?R="next":l<g?R="prev":R="reset";const D=i.virtual&&i.params.virtual.enabled;if(!(D&&s)&&(y&&-L===i.translate||!y&&L===i.translate))return i.updateActiveIndex(l),c.autoHeight&&i.updateAutoHeight(),i.updateSlidesClasses(),c.effect!=="slide"&&i.setTranslate(L),R!=="reset"&&(i.transitionStart(n,R),i.transitionEnd(n,R)),!1;if(c.cssMode){const C=i.isHorizontal(),H=y?L:-L;if(t===0)D&&(i.wrapperEl.style.scrollSnapType="none",i._immediateVirtual=!0),D&&!i._cssModeVirtualInitialSet&&i.params.initialSlide>0?(i._cssModeVirtualInitialSet=!0,requestAnimationFrame(()=>{v[C?"scrollLeft":"scrollTop"]=H})):v[C?"scrollLeft":"scrollTop"]=H,D&&requestAnimationFrame(()=>{i.wrapperEl.style.scrollSnapType="",i._immediateVirtual=!1});else{if(!i.support.smoothScroll)return e7({swiper:i,targetPosition:H,side:C?"left":"top"}),!0;v.scrollTo({[C?"left":"top"]:H,behavior:"smooth"})}return!0}const M=r7().isSafari;return D&&!s&&M&&i.isElement&&i.virtual.update(!1,!1,l),i.setTransition(t),i.setTranslate(L),i.updateActiveIndex(l),i.updateSlidesClasses(),i.emit("beforeTransitionStart",t,r),i.transitionStart(n,R),t===0?i.transitionEnd(n,R):i.animating||(i.animating=!0,i.onSlideToWrapperTransitionEnd||(i.onSlideToWrapperTransitionEnd=function(H){!i||i.destroyed||H.target===this&&(i.wrapperEl.removeEventListener("transitionend",i.onSlideToWrapperTransitionEnd),i.onSlideToWrapperTransitionEnd=null,delete i.onSlideToWrapperTransitionEnd,i.transitionEnd(n,R))}),i.wrapperEl.addEventListener("transitionend",i.onSlideToWrapperTransitionEnd)),!0}function p_(e=0,t,n=!0,r){typeof e=="string"&&(e=parseInt(e,10));const s=this;if(s.destroyed)return;typeof t>"u"&&(t=s.params.speed);const i=s.grid&&s.params.grid&&s.params.grid.rows>1;let l=e;if(s.params.loop)if(s.virtual&&s.params.virtual.enabled)l=l+s.virtual.slidesBefore;else{let c;if(i){const A=l*s.params.grid.rows;c=s.slides.find(T=>T.getAttribute("data-swiper-slide-index")*1===A).column}else c=s.getSlideIndexByData(l);const u=i?Math.ceil(s.slides.length/s.params.grid.rows):s.slides.length,{centeredSlides:h,slidesOffsetBefore:p,slidesOffsetAfter:g}=s.params,y=h||!!p||!!g;let v=s.params.slidesPerView;v==="auto"?v=s.slidesPerViewDynamic():(v=Math.ceil(parseFloat(s.params.slidesPerView,10)),y&&v%2===0&&(v=v+1));let S=u-c<v;if(y&&(S=S||c<Math.ceil(v/2)),r&&y&&s.params.slidesPerView!=="auto"&&!i&&(S=!1),S){const A=y?c<s.activeIndex?"prev":"next":c-s.activeIndex-1<s.params.slidesPerView?"next":"prev";s.loopFix({direction:A,slideTo:!0,activeSlideIndex:A==="next"?c+1:c-u+1,slideRealIndex:A==="next"?s.realIndex:void 0})}if(i){const A=l*s.params.grid.rows;l=s.slides.find(T=>T.getAttribute("data-swiper-slide-index")*1===A).column}else l=s.getSlideIndexByData(l)}return requestAnimationFrame(()=>{s.slideTo(l,t,n,r)}),s}function m_(e,t=!0,n){const r=this,{enabled:s,params:i,animating:l}=r;if(!s||r.destroyed)return r;typeof e>"u"&&(e=r.params.speed);let c=i.slidesPerGroup;i.slidesPerView==="auto"&&i.slidesPerGroup===1&&i.slidesPerGroupAuto&&(c=Math.max(r.slidesPerViewDynamic("current",!0),1));const u=r.activeIndex<i.slidesPerGroupSkip?1:c,h=r.virtual&&i.virtual.enabled;if(i.loop){if(l&&!h&&i.loopPreventsSliding)return!1;if(r.loopFix({direction:"next"}),r._clientLeft=r.wrapperEl.clientLeft,r.activeIndex===r.slides.length-1&&i.cssMode)return requestAnimationFrame(()=>{r.slideTo(r.activeIndex+u,e,t,n)}),!0}return i.rewind&&r.isEnd?r.slideTo(0,e,t,n):r.slideTo(r.activeIndex+u,e,t,n)}function g_(e,t=!0,n){const r=this,{params:s,snapGrid:i,slidesGrid:l,rtlTranslate:c,enabled:u,animating:h}=r;if(!u||r.destroyed)return r;typeof e>"u"&&(e=r.params.speed);const p=r.virtual&&s.virtual.enabled;if(s.loop){if(h&&!p&&s.loopPreventsSliding)return!1;r.loopFix({direction:"prev"}),r._clientLeft=r.wrapperEl.clientLeft}const g=c?r.translate:-r.translate;function y(R){return R<0?-Math.floor(Math.abs(R)):Math.floor(R)}const v=y(g),S=i.map(R=>y(R)),A=s.freeMode&&s.freeMode.enabled;let T=i[S.indexOf(v)-1];if(typeof T>"u"&&(s.cssMode||A)){let R;i.forEach((D,P)=>{v>=D&&(R=P)}),typeof R<"u"&&(T=A?i[R]:i[R>0?R-1:R])}let L=0;if(typeof T<"u"&&(L=l.indexOf(T),L<0&&(L=r.activeIndex-1),s.slidesPerView==="auto"&&s.slidesPerGroup===1&&s.slidesPerGroupAuto&&(L=L-r.slidesPerViewDynamic("previous",!0)+1,L=Math.max(L,0))),s.rewind&&r.isBeginning){const R=r.params.virtual&&r.params.virtual.enabled&&r.virtual?r.virtual.slides.length-1:r.slides.length-1;return r.slideTo(R,e,t,n)}else if(s.loop&&r.activeIndex===0&&s.cssMode)return requestAnimationFrame(()=>{r.slideTo(L,e,t,n)}),!0;return r.slideTo(L,e,t,n)}function x_(e,t=!0,n){const r=this;if(!r.destroyed)return typeof e>"u"&&(e=r.params.speed),r.slideTo(r.activeIndex,e,t,n)}function b_(e,t=!0,n,r=.5){const s=this;if(s.destroyed)return;typeof e>"u"&&(e=s.params.speed);let i=s.activeIndex;const l=Math.min(s.params.slidesPerGroupSkip,i),c=l+Math.floor((i-l)/s.params.slidesPerGroup),u=s.rtlTranslate?s.translate:-s.translate;if(u>=s.snapGrid[c]){const h=s.snapGrid[c],p=s.snapGrid[c+1];u-h>(p-h)*r&&(i+=s.params.slidesPerGroup)}else{const h=s.snapGrid[c-1],p=s.snapGrid[c];u-h<=(p-h)*r&&(i-=s.params.slidesPerGroup)}return i=Math.max(i,0),i=Math.min(i,s.slidesGrid.length-1),s.slideTo(i,e,t,n)}function y_(){const e=this;if(e.destroyed)return;const{params:t,slidesEl:n}=e,r=t.slidesPerView==="auto"?e.slidesPerViewDynamic():t.slidesPerView;let s=e.getSlideIndexWhenGrid(e.clickedIndex),i;const l=e.isElement?"swiper-slide":`.${t.slideClass}`,c=e.grid&&e.params.grid&&e.params.grid.rows>1;if(t.loop){if(e.animating)return;i=parseInt(e.clickedSlide.getAttribute("data-swiper-slide-index"),10),t.centeredSlides?e.slideToLoop(i):s>(c?(e.slides.length-r)/2-(e.params.grid.rows-1):e.slides.length-r)?(e.loopFix(),s=e.getSlideIndex(lc(n,`${l}[data-swiper-slide-index="${i}"]`)[0]),J4(()=>{e.slideTo(s)})):e.slideTo(s)}else e.slideTo(s)}var v_={slideTo:h_,slideToLoop:p_,slideNext:m_,slidePrev:g_,slideReset:x_,slideToClosest:b_,slideToClickedSlide:y_};function w_(e,t){const n=this,{params:r,slidesEl:s}=n;if(!r.loop||n.virtual&&n.params.virtual.enabled)return;const i=()=>{lc(s,`.${r.slideClass}, swiper-slide`).forEach((S,A)=>{S.setAttribute("data-swiper-slide-index",A)})},l=()=>{const v=lc(s,`.${r.slideBlankClass}`);v.forEach(S=>{S.remove()}),v.length>0&&(n.recalcSlides(),n.updateSlides())},c=n.grid&&r.grid&&r.grid.rows>1;r.loopAddBlankSlides&&(r.slidesPerGroup>1||c)&&l();const u=r.slidesPerGroup*(c?r.grid.rows:1),h=n.slides.length%u!==0,p=c&&n.slides.length%r.grid.rows!==0,g=v=>{for(let S=0;S<v;S+=1){const A=n.isElement?Xx("swiper-slide",[r.slideBlankClass]):Xx("div",[r.slideClass,r.slideBlankClass]);n.slidesEl.append(A)}};if(h){if(r.loopAddBlankSlides){const v=u-n.slides.length%u;g(v),n.recalcSlides(),n.updateSlides()}else dm("Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)");i()}else if(p){if(r.loopAddBlankSlides){const v=r.grid.rows-n.slides.length%r.grid.rows;g(v),n.recalcSlides(),n.updateSlides()}else dm("Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)");i()}else i();const y=r.centeredSlides||!!r.slidesOffsetBefore||!!r.slidesOffsetAfter;n.loopFix({slideRealIndex:e,direction:y?void 0:"next",initial:t})}function S_({slideRealIndex:e,slideTo:t=!0,direction:n,setTranslate:r,activeSlideIndex:s,initial:i,byController:l,byMousewheel:c}={}){const u=this;if(!u.params.loop)return;u.emit("beforeLoopFix");const{slides:h,allowSlidePrev:p,allowSlideNext:g,slidesEl:y,params:v}=u,{centeredSlides:S,slidesOffsetBefore:A,slidesOffsetAfter:T,initialSlide:L}=v,R=S||!!A||!!T;if(u.allowSlidePrev=!0,u.allowSlideNext=!0,u.virtual&&v.virtual.enabled){t&&(!R&&u.snapIndex===0?u.slideTo(u.virtual.slides.length,0,!1,!0):R&&u.snapIndex<v.slidesPerView?u.slideTo(u.virtual.slides.length+u.snapIndex,0,!1,!0):u.snapIndex===u.snapGrid.length-1&&u.slideTo(u.virtual.slidesBefore,0,!1,!0)),u.allowSlidePrev=p,u.allowSlideNext=g,u.emit("loopFix");return}let D=v.slidesPerView;D==="auto"?D=u.slidesPerViewDynamic():(D=Math.ceil(parseFloat(v.slidesPerView,10)),R&&D%2===0&&(D=D+1));const P=v.slidesPerGroupAuto?D:v.slidesPerGroup;let O=R?Math.max(P,Math.ceil(D/2)):P;O%P!==0&&(O+=P-O%P),O+=v.loopAdditionalSlides,u.loopedSlides=O;const M=u.grid&&v.grid&&v.grid.rows>1;h.length<D+O||u.params.effect==="cards"&&h.length<D+O*2?dm("Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled or not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters"):M&&v.grid.fill==="row"&&dm("Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`");const C=[],H=[],$=M?Math.ceil(h.length/v.grid.rows):h.length,G=i&&$-L<D&&!R;let z=G?L:u.activeIndex;typeof s>"u"?s=u.getSlideIndex(h.find(K=>K.classList.contains(v.slideActiveClass))):z=s;const q=n==="next"||!n,se=n==="prev"||!n;let xe=0,be=0;const J=(M?h[s].column:s)+(R&&typeof r>"u"?-D/2+.5:0);if(J<O){xe=Math.max(O-J,P);for(let K=0;K<O-J;K+=1){const V=K-Math.floor(K/$)*$;if(M){const ae=$-V-1;for(let ue=h.length-1;ue>=0;ue-=1)h[ue].column===ae&&C.push(ue)}else C.push($-V-1)}}else if(J+D>$-O){be=Math.max(J-($-O*2),P),G&&(be=Math.max(be,D-$+L+1));for(let K=0;K<be;K+=1){const V=K-Math.floor(K/$)*$;M?h.forEach((ae,ue)=>{ae.column===V&&H.push(ue)}):H.push(V)}}if(u.__preventObserver__=!0,requestAnimationFrame(()=>{u.__preventObserver__=!1}),u.params.effect==="cards"&&h.length<D+O*2&&(H.includes(s)&&H.splice(H.indexOf(s),1),C.includes(s)&&C.splice(C.indexOf(s),1)),se&&C.forEach(K=>{h[K].swiperLoopMoveDOM=!0,y.prepend(h[K]),h[K].swiperLoopMoveDOM=!1}),q&&H.forEach(K=>{h[K].swiperLoopMoveDOM=!0,y.append(h[K]),h[K].swiperLoopMoveDOM=!1}),u.recalcSlides(),v.slidesPerView==="auto"?u.updateSlides():M&&(C.length>0&&se||H.length>0&&q)&&u.slides.forEach((K,V)=>{u.grid.updateSlide(V,K,u.slides)}),v.watchSlidesProgress&&u.updateSlidesOffset(),t){if(C.length>0&&se){if(typeof e>"u"){const K=u.slidesGrid[z],ae=u.slidesGrid[z+xe]-K;c?u.setTranslate(u.translate-ae):(u.slideTo(z+Math.ceil(xe),0,!1,!0),r&&(u.touchEventsData.startTranslate=u.touchEventsData.startTranslate-ae,u.touchEventsData.currentTranslate=u.touchEventsData.currentTranslate-ae))}else if(r){const K=M?C.length/v.grid.rows:C.length;u.slideTo(u.activeIndex+K,0,!1,!0),u.touchEventsData.currentTranslate=u.translate}}else if(H.length>0&&q)if(typeof e>"u"){const K=u.slidesGrid[z],ae=u.slidesGrid[z-be]-K;c?u.setTranslate(u.translate-ae):(u.slideTo(z-be,0,!1,!0),r&&(u.touchEventsData.startTranslate=u.touchEventsData.startTranslate-ae,u.touchEventsData.currentTranslate=u.touchEventsData.currentTranslate-ae))}else{const K=M?H.length/v.grid.rows:H.length;u.slideTo(u.activeIndex-K,0,!1,!0)}}if(u.allowSlidePrev=p,u.allowSlideNext=g,u.controller&&u.controller.control&&!l){const K={slideRealIndex:e,direction:n,setTranslate:r,activeSlideIndex:s,byController:!0};Array.isArray(u.controller.control)?u.controller.control.forEach(V=>{!V.destroyed&&V.params.loop&&V.loopFix({...K,slideTo:V.params.slidesPerView===v.slidesPerView?t:!1})}):u.controller.control instanceof u.constructor&&u.controller.control.params.loop&&u.controller.control.loopFix({...K,slideTo:u.controller.control.params.slidesPerView===v.slidesPerView?t:!1})}u.emit("loopFix")}function A_(){const e=this,{params:t,slidesEl:n}=e;if(!t.loop||!n||e.virtual&&e.params.virtual.enabled)return;e.recalcSlides();const r=[];e.slides.forEach(s=>{const i=typeof s.swiperSlideIndex>"u"?s.getAttribute("data-swiper-slide-index")*1:s.swiperSlideIndex;r[i]=s}),e.slides.forEach(s=>{s.removeAttribute("data-swiper-slide-index")}),r.forEach(s=>{n.append(s)}),e.recalcSlides(),e.slideTo(e.realIndex,0)}var T_={loopCreate:w_,loopFix:S_,loopDestroy:A_};function C_(e){const t=this;if(!t.params.simulateTouch||t.params.watchOverflow&&t.isLocked||t.params.cssMode)return;const n=t.params.touchEventsTarget==="container"?t.el:t.wrapperEl;t.isElement&&(t.__preventObserver__=!0),n.style.cursor="move",n.style.cursor=e?"grabbing":"grab",t.isElement&&requestAnimationFrame(()=>{t.__preventObserver__=!1})}function k_(){const e=this;e.params.watchOverflow&&e.isLocked||e.params.cssMode||(e.isElement&&(e.__preventObserver__=!0),e[e.params.touchEventsTarget==="container"?"el":"wrapperEl"].style.cursor="",e.isElement&&requestAnimationFrame(()=>{e.__preventObserver__=!1}))}var __={setGrabCursor:C_,unsetGrabCursor:k_};function L_(e,t=this){function n(r){if(!r||r===Qu()||r===Mo())return null;r.assignedSlot&&(r=r.assignedSlot);const s=r.closest(e);return!s&&!r.getRootNode?null:s||n(r.getRootNode().host)}return n(t)}function p5(e,t,n){const r=Mo(),{params:s}=e,i=s.edgeSwipeDetection,l=s.edgeSwipeThreshold;return i&&(n<=l||n>=r.innerWidth-l)?i==="prevent"?(t.preventDefault(),!0):!1:!0}function E_(e){const t=this;if(t.destroyed)return;const n=Qu();let r=e;r.originalEvent&&(r=r.originalEvent);const s=t.touchEventsData;if(r.type==="pointerdown"){if(s.pointerId!==null&&s.pointerId!==r.pointerId)return;s.pointerId=r.pointerId}else r.type==="touchstart"&&r.targetTouches.length===1&&(s.touchId=r.targetTouches[0].identifier);if(r.type==="touchstart"){p5(t,r,r.targetTouches[0].pageX);return}const{params:i,touches:l,enabled:c}=t;if(!c||!i.simulateTouch&&r.pointerType==="mouse"||t.animating&&i.preventInteractionOnTransition)return;!t.animating&&i.cssMode&&i.loop&&t.loopFix();let u=r.target;if(i.touchEventsTarget==="wrapper"&&!Pk(u,t.wrapperEl)||"which"in r&&r.which===3||"button"in r&&r.button>0||s.isTouched&&s.isMoved)return;const h=!!i.noSwipingClass&&i.noSwipingClass!=="",p=r.composedPath?r.composedPath():r.path;h&&r.target&&r.target.shadowRoot&&p&&(u=p[0]);const g=i.noSwipingSelector?i.noSwipingSelector:`.${i.noSwipingClass}`,y=!!(r.target&&r.target.shadowRoot);if(i.noSwiping&&(y?L_(g,u):u.closest(g))){t.allowClick=!0;return}if(i.swipeHandler&&!u.closest(i.swipeHandler))return;l.currentX=r.pageX,l.currentY=r.pageY;const v=l.currentX,S=l.currentY;if(!p5(t,r,v))return;Object.assign(s,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),l.startX=v,l.startY=S,s.touchStartTime=um(),t.allowClick=!0,t.updateSize(),t.swipeDirection=void 0,i.threshold>0&&(s.allowThresholdMove=!1);let A=!0;u.matches(s.focusableElements)&&(A=!1,u.nodeName==="SELECT"&&(s.isTouched=!1)),n.activeElement&&n.activeElement.matches(s.focusableElements)&&n.activeElement!==u&&(r.pointerType==="mouse"||r.pointerType!=="mouse"&&!u.matches(s.focusableElements))&&n.activeElement.blur();const T=A&&t.allowTouchMove&&i.touchStartPreventDefault;(i.touchStartForcePreventDefault||T)&&!u.isContentEditable&&r.preventDefault(),i.freeMode&&i.freeMode.enabled&&t.freeMode&&t.animating&&!i.cssMode&&t.freeMode.onTouchStart(),t.emit("touchStart",r)}function I_(e){const t=Qu(),n=this;if(n.destroyed)return;const r=n.touchEventsData,{params:s,touches:i,rtlTranslate:l,enabled:c}=n;if(!c||!s.simulateTouch&&e.pointerType==="mouse")return;let u=e;if(u.originalEvent&&(u=u.originalEvent),u.type==="pointermove"&&(r.touchId!==null||u.pointerId!==r.pointerId))return;let h;if(u.type==="touchmove"){if(h=[...u.changedTouches].find(O=>O.identifier===r.touchId),!h||h.identifier!==r.touchId)return}else h=u;if(!r.isTouched){r.startMoving&&r.isScrolling&&n.emit("touchMoveOpposite",u);return}const p=h.pageX,g=h.pageY;if(u.preventedByNestedSwiper){i.startX=p,i.startY=g;return}if(!n.allowTouchMove){u.target.matches(r.focusableElements)||(n.allowClick=!1),r.isTouched&&(Object.assign(i,{startX:p,startY:g,currentX:p,currentY:g}),r.touchStartTime=um());return}if(s.touchReleaseOnEdges&&!s.loop)if(n.isVertical()){if(g<i.startY&&n.translate<=n.maxTranslate()||g>i.startY&&n.translate>=n.minTranslate()){r.isTouched=!1,r.isMoved=!1;return}}else{if(l&&(p>i.startX&&-n.translate<=n.maxTranslate()||p<i.startX&&-n.translate>=n.minTranslate()))return;if(!l&&(p<i.startX&&n.translate<=n.maxTranslate()||p>i.startX&&n.translate>=n.minTranslate()))return}if(t.activeElement&&t.activeElement.matches(r.focusableElements)&&t.activeElement!==u.target&&u.pointerType!=="mouse"&&t.activeElement.blur(),t.activeElement&&u.target===t.activeElement&&u.target.matches(r.focusableElements)){r.isMoved=!0,n.allowClick=!1;return}r.allowTouchCallbacks&&n.emit("touchMove",u),i.previousX=i.currentX,i.previousY=i.currentY,i.currentX=p,i.currentY=g;const y=i.currentX-i.startX,v=i.currentY-i.startY;if(n.params.threshold&&Math.sqrt(y**2+v**2)<n.params.threshold)return;if(typeof r.isScrolling>"u"){let O;n.isHorizontal()&&i.currentY===i.startY||n.isVertical()&&i.currentX===i.startX?r.isScrolling=!1:y*y+v*v>=25&&(O=Math.atan2(Math.abs(v),Math.abs(y))*180/Math.PI,r.isScrolling=n.isHorizontal()?O>s.touchAngle:90-O>s.touchAngle)}if(r.isScrolling&&n.emit("touchMoveOpposite",u),typeof r.startMoving>"u"&&(i.currentX!==i.startX||i.currentY!==i.startY)&&(r.startMoving=!0),r.isScrolling||u.type==="touchmove"&&r.preventTouchMoveFromPointerMove){r.isTouched=!1;return}if(!r.startMoving)return;n.allowClick=!1,!s.cssMode&&u.cancelable&&u.preventDefault(),s.touchMoveStopPropagation&&!s.nested&&u.stopPropagation();let S=n.isHorizontal()?y:v,A=n.isHorizontal()?i.currentX-i.previousX:i.currentY-i.previousY;s.oneWayMovement&&(S=Math.abs(S)*(l?1:-1),A=Math.abs(A)*(l?1:-1)),i.diff=S,S*=s.touchRatio,l&&(S=-S,A=-A);const T=n.touchesDirection;n.swipeDirection=S>0?"prev":"next",n.touchesDirection=A>0?"prev":"next";const L=n.params.loop&&!s.cssMode,R=n.touchesDirection==="next"&&n.allowSlideNext||n.touchesDirection==="prev"&&n.allowSlidePrev;if(!r.isMoved){if(L&&R&&n.loopFix({direction:n.swipeDirection}),r.startTranslate=n.getTranslate(),n.setTransition(0),n.animating){const O=new window.CustomEvent("transitionend",{bubbles:!0,cancelable:!0,detail:{bySwiperTouchMove:!0}});n.wrapperEl.dispatchEvent(O)}r.allowMomentumBounce=!1,s.grabCursor&&(n.allowSlideNext===!0||n.allowSlidePrev===!0)&&n.setGrabCursor(!0),n.emit("sliderFirstMove",u)}if(new Date().getTime(),s._loopSwapReset!==!1&&r.isMoved&&r.allowThresholdMove&&T!==n.touchesDirection&&L&&R&&Math.abs(S)>=1){Object.assign(i,{startX:p,startY:g,currentX:p,currentY:g,startTranslate:r.currentTranslate}),r.loopSwapReset=!0,r.startTranslate=r.currentTranslate;return}n.emit("sliderMove",u),r.isMoved=!0,r.currentTranslate=S+r.startTranslate;let D=!0,P=s.resistanceRatio;if(s.touchReleaseOnEdges&&(P=0),S>0?(L&&R&&r.allowThresholdMove&&r.currentTranslate>(s.centeredSlides?n.minTranslate()-n.slidesSizesGrid[n.activeIndex+1]-(s.slidesPerView!=="auto"&&n.slides.length-s.slidesPerView>=2?n.slidesSizesGrid[n.activeIndex+1]+n.params.spaceBetween:0)-n.params.spaceBetween:n.minTranslate())&&n.loopFix({direction:"prev",setTranslate:!0,activeSlideIndex:0}),r.currentTranslate>n.minTranslate()&&(D=!1,s.resistance&&(r.currentTranslate=n.minTranslate()-1+(-n.minTranslate()+r.startTranslate+S)**P))):S<0&&(L&&R&&r.allowThresholdMove&&r.currentTranslate<(s.centeredSlides?n.maxTranslate()+n.slidesSizesGrid[n.slidesSizesGrid.length-1]+n.params.spaceBetween+(s.slidesPerView!=="auto"&&n.slides.length-s.slidesPerView>=2?n.slidesSizesGrid[n.slidesSizesGrid.length-1]+n.params.spaceBetween:0):n.maxTranslate())&&n.loopFix({direction:"next",setTranslate:!0,activeSlideIndex:n.slides.length-(s.slidesPerView==="auto"?n.slidesPerViewDynamic():Math.ceil(parseFloat(s.slidesPerView,10)))}),r.currentTranslate<n.maxTranslate()&&(D=!1,s.resistance&&(r.currentTranslate=n.maxTranslate()+1-(n.maxTranslate()-r.startTranslate-S)**P))),D&&(u.preventedByNestedSwiper=!0),!n.allowSlideNext&&n.swipeDirection==="next"&&r.currentTranslate<r.startTranslate&&(r.currentTranslate=r.startTranslate),!n.allowSlidePrev&&n.swipeDirection==="prev"&&r.currentTranslate>r.startTranslate&&(r.currentTranslate=r.startTranslate),!n.allowSlidePrev&&!n.allowSlideNext&&(r.currentTranslate=r.startTranslate),s.threshold>0)if(Math.abs(S)>s.threshold||r.allowThresholdMove){if(!r.allowThresholdMove){r.allowThresholdMove=!0,i.startX=i.currentX,i.startY=i.currentY,r.currentTranslate=r.startTranslate,i.diff=n.isHorizontal()?i.currentX-i.startX:i.currentY-i.startY;return}}else{r.currentTranslate=r.startTranslate;return}!s.followFinger||s.cssMode||((s.freeMode&&s.freeMode.enabled&&n.freeMode||s.watchSlidesProgress)&&(n.updateActiveIndex(),n.updateSlidesClasses()),s.freeMode&&s.freeMode.enabled&&n.freeMode&&n.freeMode.onTouchMove(),n.updateProgress(r.currentTranslate),n.setTranslate(r.currentTranslate))}function R_(e){const t=this;if(t.destroyed)return;const n=t.touchEventsData;let r=e;r.originalEvent&&(r=r.originalEvent);let s;if(r.type==="touchend"||r.type==="touchcancel"){if(s=[...r.changedTouches].find(O=>O.identifier===n.touchId),!s||s.identifier!==n.touchId)return}else{if(n.touchId!==null||r.pointerId!==n.pointerId)return;s=r}if(["pointercancel","pointerout","pointerleave","contextmenu"].includes(r.type)&&!(["pointercancel","contextmenu"].includes(r.type)&&(t.browser.isSafari||t.browser.isWebView)))return;n.pointerId=null,n.touchId=null;const{params:l,touches:c,rtlTranslate:u,slidesGrid:h,enabled:p}=t;if(!p||!l.simulateTouch&&r.pointerType==="mouse")return;if(n.allowTouchCallbacks&&t.emit("touchEnd",r),n.allowTouchCallbacks=!1,!n.isTouched){n.isMoved&&l.grabCursor&&t.setGrabCursor(!1),n.isMoved=!1,n.startMoving=!1;return}l.grabCursor&&n.isMoved&&n.isTouched&&(t.allowSlideNext===!0||t.allowSlidePrev===!0)&&t.setGrabCursor(!1);const g=um(),y=g-n.touchStartTime;if(t.allowClick){const O=r.path||r.composedPath&&r.composedPath();t.updateClickedSlide(O&&O[0]||r.target,O),t.emit("tap click",r),y<300&&g-n.lastClickTime<300&&t.emit("doubleTap doubleClick",r)}if(n.lastClickTime=um(),J4(()=>{t.destroyed||(t.allowClick=!0)}),!n.isTouched||!n.isMoved||!t.swipeDirection||c.diff===0&&!n.loopSwapReset||n.currentTranslate===n.startTranslate&&!n.loopSwapReset){n.isTouched=!1,n.isMoved=!1,n.startMoving=!1;return}n.isTouched=!1,n.isMoved=!1,n.startMoving=!1;let v;if(l.followFinger?v=u?t.translate:-t.translate:v=-n.currentTranslate,l.cssMode)return;if(l.freeMode&&l.freeMode.enabled){t.freeMode.onTouchEnd({currentPos:v});return}const S=v>=-t.maxTranslate()&&!t.params.loop;let A=0,T=t.slidesSizesGrid[0];for(let O=0;O<h.length;O+=O<l.slidesPerGroupSkip?1:l.slidesPerGroup){const M=O<l.slidesPerGroupSkip-1?1:l.slidesPerGroup;typeof h[O+M]<"u"?(S||v>=h[O]&&v<h[O+M])&&(A=O,T=h[O+M]-h[O]):(S||v>=h[O])&&(A=O,T=h[h.length-1]-h[h.length-2])}let L=null,R=null;l.rewind&&(t.isBeginning?R=l.virtual&&l.virtual.enabled&&t.virtual?t.virtual.slides.length-1:t.slides.length-1:t.isEnd&&(L=0));const D=(v-h[A])/T,P=A<l.slidesPerGroupSkip-1?1:l.slidesPerGroup;if(y>l.longSwipesMs){if(!l.longSwipes){t.slideTo(t.activeIndex);return}t.swipeDirection==="next"&&(D>=l.longSwipesRatio?t.slideTo(l.rewind&&t.isEnd?L:A+P):t.slideTo(A)),t.swipeDirection==="prev"&&(D>1-l.longSwipesRatio?t.slideTo(A+P):R!==null&&D<0&&Math.abs(D)>l.longSwipesRatio?t.slideTo(R):t.slideTo(A))}else{if(!l.shortSwipes){t.slideTo(t.activeIndex);return}t.navigation&&(r.target===t.navigation.nextEl||r.target===t.navigation.prevEl)?r.target===t.navigation.nextEl?t.slideTo(A+P):t.slideTo(A):(t.swipeDirection==="next"&&t.slideTo(L!==null?L:A+P),t.swipeDirection==="prev"&&t.slideTo(R!==null?R:A))}}function m5(){const e=this,{params:t,el:n}=e;if(n&&n.offsetWidth===0)return;t.breakpoints&&e.setBreakpoint();const{allowSlideNext:r,allowSlidePrev:s,snapGrid:i}=e,l=e.virtual&&e.params.virtual.enabled;e.allowSlideNext=!0,e.allowSlidePrev=!0,e.updateSize(),e.updateSlides(),e.updateSlidesClasses();const c=l&&t.loop;if((t.slidesPerView==="auto"||t.slidesPerView>1)&&e.isEnd&&!e.isBeginning&&!e.params.centeredSlides&&!c){const u=l?e.virtual.slides:e.slides;e.slideTo(u.length-1,0,!1,!0)}else e.params.loop&&!l?e.slideToLoop(e.realIndex,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0);e.autoplay&&e.autoplay.running&&e.autoplay.paused&&(clearTimeout(e.autoplay.resizeTimeout),e.autoplay.resizeTimeout=setTimeout(()=>{e.autoplay&&e.autoplay.running&&e.autoplay.paused&&e.autoplay.resume()},500)),e.allowSlidePrev=s,e.allowSlideNext=r,e.params.watchOverflow&&i!==e.snapGrid&&e.checkOverflow()}function N_(e){const t=this;t.destroyed||t.enabled&&(t.allowClick||(t.params.preventClicks&&e.preventDefault(),t.params.preventClicksPropagation&&t.animating&&(e.stopPropagation(),e.stopImmediatePropagation())))}function M_(){const e=this;if(e.destroyed)return;const{wrapperEl:t,rtlTranslate:n,enabled:r}=e;if(!r)return;e.previousTranslate=e.translate,e.isHorizontal()?e.translate=-t.scrollLeft:e.translate=-t.scrollTop,e.translate===0&&(e.translate=0),e.updateActiveIndex(),e.updateSlidesClasses();let s;const i=e.maxTranslate()-e.minTranslate();i===0?s=0:s=(e.translate-e.minTranslate())/i,s!==e.progress&&e.updateProgress(n?-e.translate:e.translate),e.emit("setTranslate",e.translate,!1)}function D_(e){const t=this;t.destroyed||(Qp(t,e.target),!(t.params.cssMode||t.params.slidesPerView!=="auto"&&!t.params.autoHeight)&&t.update())}function j_(){const e=this;e.destroyed||e.documentTouchHandlerProceeded||(e.documentTouchHandlerProceeded=!0,e.params.touchReleaseOnEdges&&(e.el.style.touchAction="auto"))}const i7=(e,t)=>{const n=Qu(),{params:r,el:s,wrapperEl:i,device:l}=e,c=!!r.nested,u=t==="on"?"addEventListener":"removeEventListener",h=t;!s||typeof s=="string"||(n[u]("touchstart",e.onDocumentTouchStart,{passive:!1,capture:c}),s[u]("touchstart",e.onTouchStart,{passive:!1}),s[u]("pointerdown",e.onTouchStart,{passive:!1}),n[u]("touchmove",e.onTouchMove,{passive:!1,capture:c}),n[u]("pointermove",e.onTouchMove,{passive:!1,capture:c}),n[u]("touchend",e.onTouchEnd,{passive:!0}),n[u]("pointerup",e.onTouchEnd,{passive:!0}),n[u]("pointercancel",e.onTouchEnd,{passive:!0}),n[u]("touchcancel",e.onTouchEnd,{passive:!0}),n[u]("pointerout",e.onTouchEnd,{passive:!0}),n[u]("pointerleave",e.onTouchEnd,{passive:!0}),n[u]("contextmenu",e.onTouchEnd,{passive:!0}),(r.preventClicks||r.preventClicksPropagation)&&s[u]("click",e.onClick,!0),r.cssMode&&i[u]("scroll",e.onScroll),r.updateOnWindowResize?e[h](l.ios||l.android?"resize orientationchange observerUpdate":"resize observerUpdate",m5,!0):e[h]("observerUpdate",m5,!0),s[u]("load",e.onLoad,{capture:!0}))};function P_(){const e=this,{params:t}=e;e.onTouchStart=E_.bind(e),e.onTouchMove=I_.bind(e),e.onTouchEnd=R_.bind(e),e.onDocumentTouchStart=j_.bind(e),t.cssMode&&(e.onScroll=M_.bind(e)),e.onClick=N_.bind(e),e.onLoad=D_.bind(e),i7(e,"on")}function B_(){i7(this,"off")}var F_={attachEvents:P_,detachEvents:B_};const g5=(e,t)=>e.grid&&t.grid&&t.grid.rows>1;function O_(){const e=this,{realIndex:t,initialized:n,params:r,el:s}=e,i=r.breakpoints;if(!i||i&&Object.keys(i).length===0)return;const l=Qu(),c=r.breakpointsBase==="window"||!r.breakpointsBase?r.breakpointsBase:"container",u=["window","container"].includes(r.breakpointsBase)||!r.breakpointsBase?e.el:l.querySelector(r.breakpointsBase),h=e.getBreakpoint(i,c,u);if(!h||e.currentBreakpoint===h)return;const g=(h in i?i[h]:void 0)||e.originalParams,y=g5(e,r),v=g5(e,g),S=e.params.grabCursor,A=g.grabCursor,T=r.enabled;y&&!v?(s.classList.remove(`${r.containerModifierClass}grid`,`${r.containerModifierClass}grid-column`),e.emitContainerClasses()):!y&&v&&(s.classList.add(`${r.containerModifierClass}grid`),(g.grid.fill&&g.grid.fill==="column"||!g.grid.fill&&r.grid.fill==="column")&&s.classList.add(`${r.containerModifierClass}grid-column`),e.emitContainerClasses()),S&&!A?e.unsetGrabCursor():!S&&A&&e.setGrabCursor(),["navigation","pagination","scrollbar"].forEach(M=>{if(typeof g[M]>"u")return;const C=r[M]&&r[M].enabled,H=g[M]&&g[M].enabled;C&&!H&&e[M].disable(),!C&&H&&e[M].enable()});const L=g.direction&&g.direction!==r.direction,R=r.loop&&(g.slidesPerView!==r.slidesPerView||L),D=r.loop;L&&n&&e.changeDirection(),da(e.params,g);const P=e.params.enabled,O=e.params.loop;Object.assign(e,{allowTouchMove:e.params.allowTouchMove,allowSlideNext:e.params.allowSlideNext,allowSlidePrev:e.params.allowSlidePrev}),T&&!P?e.disable():!T&&P&&e.enable(),e.currentBreakpoint=h,e.emit("_beforeBreakpoint",g),n&&(R?(e.loopDestroy(),e.loopCreate(t),e.updateSlides()):!D&&O?(e.loopCreate(t),e.updateSlides()):D&&!O&&e.loopDestroy()),e.emit("breakpoint",g)}function Q_(e,t="window",n){if(!e||t==="container"&&!n)return;let r=!1;const s=Mo(),i=t==="window"?s.innerHeight:n.clientHeight,l=Object.keys(e).map(c=>{if(typeof c=="string"&&c.indexOf("@")===0){const u=parseFloat(c.substr(1));return{value:i*u,point:c}}return{value:c,point:c}});l.sort((c,u)=>parseInt(c.value,10)-parseInt(u.value,10));for(let c=0;c<l.length;c+=1){const{point:u,value:h}=l[c];t==="window"?s.matchMedia(`(min-width: ${h}px)`).matches&&(r=u):h<=n.clientWidth&&(r=u)}return r||"max"}var $_={setBreakpoint:O_,getBreakpoint:Q_};function H_(e,t){const n=[];return e.forEach(r=>{typeof r=="object"?Object.keys(r).forEach(s=>{r[s]&&n.push(t+s)}):typeof r=="string"&&n.push(t+r)}),n}function U_(){const e=this,{classNames:t,params:n,rtl:r,el:s,device:i}=e,l=H_(["initialized",n.direction,{"free-mode":e.params.freeMode&&n.freeMode.enabled},{autoheight:n.autoHeight},{rtl:r},{grid:n.grid&&n.grid.rows>1},{"grid-column":n.grid&&n.grid.rows>1&&n.grid.fill==="column"},{android:i.android},{ios:i.ios},{"css-mode":n.cssMode},{centered:n.cssMode&&n.centeredSlides},{"watch-progress":n.watchSlidesProgress}],n.containerModifierClass);t.push(...l),s.classList.add(...t),e.emitContainerClasses()}function z_(){const e=this,{el:t,classNames:n}=e;!t||typeof t=="string"||(t.classList.remove(...n),e.emitContainerClasses())}var G_={addClasses:U_,removeClasses:z_};function W_(){const e=this,{isLocked:t,params:n}=e,{slidesOffsetBefore:r}=n;if(r){const s=e.slides.length-1,i=e.slidesGrid[s]+e.slidesSizesGrid[s]+r*2;e.isLocked=e.size>i}else e.isLocked=e.snapGrid.length===1;n.allowSlideNext===!0&&(e.allowSlideNext=!e.isLocked),n.allowSlidePrev===!0&&(e.allowSlidePrev=!e.isLocked),t&&t!==e.isLocked&&(e.isEnd=!1),t!==e.isLocked&&e.emit(e.isLocked?"lock":"unlock")}var V_={checkOverflow:W_},Jx={init:!0,direction:"horizontal",oneWayMovement:!1,swiperElementNodeName:"SWIPER-CONTAINER",touchEventsTarget:"wrapper",initialSlide:0,speed:300,cssMode:!1,updateOnWindowResize:!0,resizeObserver:!0,nested:!1,createElements:!1,eventsPrefix:"swiper",enabled:!0,focusableElements:"input, select, option, textarea, button, video, label",width:null,height:null,preventInteractionOnTransition:!1,userAgent:null,url:null,edgeSwipeDetection:!1,edgeSwipeThreshold:20,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:"slide",breakpoints:void 0,breakpointsBase:"window",spaceBetween:0,slidesPerView:1,slidesPerGroup:1,slidesPerGroupSkip:0,slidesPerGroupAuto:!1,centeredSlides:!1,centeredSlidesBounds:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,normalizeSlideIndex:!0,centerInsufficientSlides:!1,snapToSlideEdge:!1,watchOverflow:!0,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,allowTouchMove:!0,threshold:5,touchMoveStopPropagation:!1,touchStartPreventDefault:!0,touchStartForcePreventDefault:!1,touchReleaseOnEdges:!1,uniqueNavElements:!0,resistance:!0,resistanceRatio:.85,watchSlidesProgress:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,loop:!1,loopAddBlankSlides:!0,loopAdditionalSlides:0,loopPreventsSliding:!0,rewind:!1,allowSlidePrev:!0,allowSlideNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-swiping",noSwipingSelector:null,passiveListeners:!0,maxBackfaceHiddenSlides:10,containerModifierClass:"swiper-",slideClass:"swiper-slide",slideBlankClass:"swiper-slide-blank",slideActiveClass:"swiper-slide-active",slideVisibleClass:"swiper-slide-visible",slideFullyVisibleClass:"swiper-slide-fully-visible",slideNextClass:"swiper-slide-next",slidePrevClass:"swiper-slide-prev",wrapperClass:"swiper-wrapper",lazyPreloaderClass:"swiper-lazy-preloader",lazyPreloadPrevNext:0,runCallbacksOnInit:!0,_emitClasses:!1};function q_(e,t){return function(r={}){const s=Object.keys(r)[0],i=r[s];if(typeof i!="object"||i===null){da(t,r);return}if(e[s]===!0&&(e[s]={enabled:!0}),s==="navigation"&&e[s]&&e[s].enabled&&!e[s].prevEl&&!e[s].nextEl&&(e[s].auto=!0),["pagination","scrollbar"].indexOf(s)>=0&&e[s]&&e[s].enabled&&!e[s].el&&(e[s].auto=!0),!(s in e&&"enabled"in i)){da(t,r);return}typeof e[s]=="object"&&!("enabled"in e[s])&&(e[s].enabled=!0),e[s]||(e[s]={enabled:!1}),da(t,r)}}const f1={eventsEmitter:Gk,update:n_,translate:l_,transition:f_,slide:v_,loop:T_,grabCursor:__,events:F_,breakpoints:$_,checkOverflow:V_,classes:G_},h1={};let L2=class oc{constructor(...t){let n,r;t.length===1&&t[0].constructor&&Object.prototype.toString.call(t[0]).slice(8,-1)==="Object"?r=t[0]:[n,r]=t,r||(r={}),r=da({},r),n&&!r.el&&(r.el=n);const s=Qu();if(r.el&&typeof r.el=="string"&&s.querySelectorAll(r.el).length>1){const u=[];return s.querySelectorAll(r.el).forEach(h=>{const p=da({},r,{el:h});u.push(new oc(p))}),u}const i=this;i.__swiper__=!0,i.support=t7(),i.device=n7({userAgent:r.userAgent}),i.browser=r7(),i.eventsListeners={},i.eventsAnyListeners=[],i.modules=[...i.__modules__],r.modules&&Array.isArray(r.modules)&&r.modules.forEach(u=>{typeof u=="function"&&i.modules.indexOf(u)<0&&i.modules.push(u)});const l={};i.modules.forEach(u=>{u({params:r,swiper:i,extendParams:q_(r,l),on:i.on.bind(i),once:i.once.bind(i),off:i.off.bind(i),emit:i.emit.bind(i)})});const c=da({},Jx,l);return i.params=da({},c,h1,r),i.originalParams=da({},i.params),i.passedParams=da({},r),i.params&&i.params.on&&Object.keys(i.params.on).forEach(u=>{i.on(u,i.params.on[u])}),i.params&&i.params.onAny&&i.onAny(i.params.onAny),Object.assign(i,{enabled:i.params.enabled,el:n,classNames:[],slides:[],slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal(){return i.params.direction==="horizontal"},isVertical(){return i.params.direction==="vertical"},activeIndex:0,realIndex:0,isBeginning:!0,isEnd:!1,translate:0,previousTranslate:0,progress:0,velocity:0,animating:!1,cssOverflowAdjustment(){return Math.trunc(this.translate/2**23)*2**23},allowSlideNext:i.params.allowSlideNext,allowSlidePrev:i.params.allowSlidePrev,touchEventsData:{isTouched:void 0,isMoved:void 0,allowTouchCallbacks:void 0,touchStartTime:void 0,isScrolling:void 0,currentTranslate:void 0,startTranslate:void 0,allowThresholdMove:void 0,focusableElements:i.params.focusableElements,lastClickTime:0,clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,startMoving:void 0,pointerId:null,touchId:null},allowClick:!0,allowTouchMove:i.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),i.emit("_swiper"),i.params.init&&i.init(),i}getDirectionLabel(t){return this.isHorizontal()?t:{width:"height","margin-top":"margin-left","margin-bottom ":"margin-right","margin-left":"margin-top","margin-right":"margin-bottom","padding-left":"padding-top","padding-right":"padding-bottom",marginRight:"marginBottom"}[t]}getSlideIndex(t){const{slidesEl:n,params:r}=this,s=lc(n,`.${r.slideClass}, swiper-slide`),i=u5(s[0]);return u5(t)-i}getSlideIndexByData(t){return this.getSlideIndex(this.slides.find(n=>n.getAttribute("data-swiper-slide-index")*1===t))}getSlideIndexWhenGrid(t){return this.grid&&this.params.grid&&this.params.grid.rows>1&&(this.params.grid.fill==="column"?t=Math.floor(t/this.params.grid.rows):this.params.grid.fill==="row"&&(t=t%Math.ceil(this.slides.length/this.params.grid.rows))),t}recalcSlides(){const t=this,{slidesEl:n,params:r}=t;t.slides=lc(n,`.${r.slideClass}, swiper-slide`)}enable(){const t=this;t.enabled||(t.enabled=!0,t.params.grabCursor&&t.setGrabCursor(),t.emit("enable"))}disable(){const t=this;t.enabled&&(t.enabled=!1,t.params.grabCursor&&t.unsetGrabCursor(),t.emit("disable"))}setProgress(t,n){const r=this;t=Math.min(Math.max(t,0),1);const s=r.minTranslate(),l=(r.maxTranslate()-s)*t+s;r.translateTo(l,typeof n>"u"?0:n),r.updateActiveIndex(),r.updateSlidesClasses()}emitContainerClasses(){const t=this;if(!t.params._emitClasses||!t.el)return;const n=t.el.className.split(" ").filter(r=>r.indexOf("swiper")===0||r.indexOf(t.params.containerModifierClass)===0);t.emit("_containerClasses",n.join(" "))}getSlideClasses(t){const n=this;return n.destroyed?"":t.className.split(" ").filter(r=>r.indexOf("swiper-slide")===0||r.indexOf(n.params.slideClass)===0).join(" ")}emitSlidesClasses(){const t=this;if(!t.params._emitClasses||!t.el)return;const n=[];t.slides.forEach(r=>{const s=t.getSlideClasses(r);n.push({slideEl:r,classNames:s}),t.emit("_slideClass",r,s)}),t.emit("_slideClasses",n)}slidesPerViewDynamic(t="current",n=!1){const r=this,{params:s,slides:i,slidesGrid:l,slidesSizesGrid:c,size:u,activeIndex:h}=r;let p=1;if(typeof s.slidesPerView=="number")return s.slidesPerView;if(s.centeredSlides){let g=i[h]?Math.ceil(i[h].swiperSlideSize):0,y;for(let v=h+1;v<i.length;v+=1)i[v]&&!y&&(g+=Math.ceil(i[v].swiperSlideSize),p+=1,g>u&&(y=!0));for(let v=h-1;v>=0;v-=1)i[v]&&!y&&(g+=i[v].swiperSlideSize,p+=1,g>u&&(y=!0))}else if(t==="current")for(let g=h+1;g<i.length;g+=1)(n?l[g]+c[g]-l[h]<u:l[g]-l[h]<u)&&(p+=1);else for(let g=h-1;g>=0;g-=1)l[h]-l[g]<u&&(p+=1);return p}update(){const t=this;if(!t||t.destroyed)return;const{snapGrid:n,params:r}=t;r.breakpoints&&t.setBreakpoint(),[...t.el.querySelectorAll('[loading="lazy"]')].forEach(l=>{l.complete&&Qp(t,l)}),t.updateSize(),t.updateSlides(),t.updateProgress(),t.updateSlidesClasses();function s(){const l=t.rtlTranslate?t.translate*-1:t.translate,c=Math.min(Math.max(l,t.maxTranslate()),t.minTranslate());t.setTranslate(c),t.updateActiveIndex(),t.updateSlidesClasses()}let i;if(r.freeMode&&r.freeMode.enabled&&!r.cssMode)s(),r.autoHeight&&t.updateAutoHeight();else{if((r.slidesPerView==="auto"||r.slidesPerView>1)&&t.isEnd&&!r.centeredSlides){const l=t.virtual&&r.virtual.enabled?t.virtual.slides:t.slides;i=t.slideTo(l.length-1,0,!1,!0)}else i=t.slideTo(t.activeIndex,0,!1,!0);i||s()}r.watchOverflow&&n!==t.snapGrid&&t.checkOverflow(),t.emit("update")}changeDirection(t,n=!0){const r=this,s=r.params.direction;return t||(t=s==="horizontal"?"vertical":"horizontal"),t===s||t!=="horizontal"&&t!=="vertical"||(r.el.classList.remove(`${r.params.containerModifierClass}${s}`),r.el.classList.add(`${r.params.containerModifierClass}${t}`),r.emitContainerClasses(),r.params.direction=t,r.slides.forEach(i=>{t==="vertical"?i.style.width="":i.style.height=""}),r.emit("changeDirection"),n&&r.update()),r}changeLanguageDirection(t){const n=this;n.rtl&&t==="rtl"||!n.rtl&&t==="ltr"||(n.rtl=t==="rtl",n.rtlTranslate=n.params.direction==="horizontal"&&n.rtl,n.rtl?(n.el.classList.add(`${n.params.containerModifierClass}rtl`),n.el.dir="rtl"):(n.el.classList.remove(`${n.params.containerModifierClass}rtl`),n.el.dir="ltr"),n.update())}mount(t){const n=this;if(n.mounted)return!0;let r=t||n.params.el;if(typeof r=="string"&&(r=document.querySelector(r)),!r)return!1;r.swiper=n,r.parentNode&&r.parentNode.host&&r.parentNode.host.nodeName===n.params.swiperElementNodeName.toUpperCase()&&(n.isElement=!0);const s=()=>`.${(n.params.wrapperClass||"").trim().split(" ").join(".")}`;let l=r&&r.shadowRoot&&r.shadowRoot.querySelector?r.shadowRoot.querySelector(s()):lc(r,s())[0];return!l&&n.params.createElements&&(l=Xx("div",n.params.wrapperClass),r.append(l),lc(r,`.${n.params.slideClass}`).forEach(c=>{l.append(c)})),Object.assign(n,{el:r,wrapperEl:l,slidesEl:n.isElement&&!r.parentNode.host.slideSlots?r.parentNode.host:l,hostEl:n.isElement?r.parentNode.host:r,mounted:!0,rtl:r.dir.toLowerCase()==="rtl"||zc(r,"direction")==="rtl",rtlTranslate:n.params.direction==="horizontal"&&(r.dir.toLowerCase()==="rtl"||zc(r,"direction")==="rtl"),wrongRTL:zc(l,"display")==="-webkit-box"}),!0}init(t){const n=this;if(n.initialized||n.mount(t)===!1)return n;n.emit("beforeInit"),n.params.breakpoints&&n.setBreakpoint(),n.addClasses(),n.updateSize(),n.updateSlides(),n.params.watchOverflow&&n.checkOverflow(),n.params.grabCursor&&n.enabled&&n.setGrabCursor(),n.params.loop&&n.virtual&&n.params.virtual.enabled?n.slideTo(n.params.initialSlide+n.virtual.slidesBefore,0,n.params.runCallbacksOnInit,!1,!0):n.slideTo(n.params.initialSlide,0,n.params.runCallbacksOnInit,!1,!0),n.params.loop&&n.loopCreate(void 0,!0),n.attachEvents();const s=[...n.el.querySelectorAll('[loading="lazy"]')];return n.isElement&&s.push(...n.hostEl.querySelectorAll('[loading="lazy"]')),s.forEach(i=>{i.complete?Qp(n,i):i.addEventListener("load",l=>{Qp(n,l.target)})}),Zx(n),n.initialized=!0,Zx(n),n.emit("init"),n.emit("afterInit"),n}destroy(t=!0,n=!0){const r=this,{params:s,el:i,wrapperEl:l,slides:c}=r;return typeof r.params>"u"||r.destroyed||(r.emit("beforeDestroy"),r.initialized=!1,r.detachEvents(),s.loop&&r.loopDestroy(),n&&(r.removeClasses(),i&&typeof i!="string"&&i.removeAttribute("style"),l&&l.removeAttribute("style"),c&&c.length&&c.forEach(u=>{u.classList.remove(s.slideVisibleClass,s.slideFullyVisibleClass,s.slideActiveClass,s.slideNextClass,s.slidePrevClass),u.removeAttribute("style"),u.removeAttribute("data-swiper-slide-index")})),r.emit("destroy"),Object.keys(r.eventsListeners).forEach(u=>{r.off(u)}),t!==!1&&(r.el&&typeof r.el!="string"&&(r.el.swiper=null),Rk(r)),r.destroyed=!0),null}static extendDefaults(t){da(h1,t)}static get extendedDefaults(){return h1}static get defaults(){return Jx}static installModule(t){oc.prototype.__modules__||(oc.prototype.__modules__=[]);const n=oc.prototype.__modules__;typeof t=="function"&&n.indexOf(t)<0&&n.push(t)}static use(t){return Array.isArray(t)?(t.forEach(n=>oc.installModule(n)),oc):(oc.installModule(t),oc)}};Object.keys(f1).forEach(e=>{Object.keys(f1[e]).forEach(t=>{L2.prototype[t]=f1[e][t]})});L2.use([Uk,zk]);const o7=["eventsPrefix","injectStyles","injectStylesUrls","modules","init","_direction","oneWayMovement","swiperElementNodeName","touchEventsTarget","initialSlide","_speed","cssMode","updateOnWindowResize","resizeObserver","nested","focusableElements","_enabled","_width","_height","preventInteractionOnTransition","userAgent","url","_edgeSwipeDetection","_edgeSwipeThreshold","_freeMode","_autoHeight","setWrapperSize","virtualTranslate","_effect","breakpoints","breakpointsBase","_spaceBetween","_slidesPerView","maxBackfaceHiddenSlides","_grid","_slidesPerGroup","_slidesPerGroupSkip","_slidesPerGroupAuto","_centeredSlides","_centeredSlidesBounds","_slidesOffsetBefore","_slidesOffsetAfter","normalizeSlideIndex","_centerInsufficientSlides","_snapToSlideEdge","_watchOverflow","roundLengths","touchRatio","touchAngle","simulateTouch","_shortSwipes","_longSwipes","longSwipesRatio","longSwipesMs","_followFinger","allowTouchMove","_threshold","touchMoveStopPropagation","touchStartPreventDefault","touchStartForcePreventDefault","touchReleaseOnEdges","uniqueNavElements","_resistance","_resistanceRatio","_watchSlidesProgress","_grabCursor","preventClicks","preventClicksPropagation","_slideToClickedSlide","_loop","loopAdditionalSlides","loopAddBlankSlides","loopPreventsSliding","_rewind","_allowSlidePrev","_allowSlideNext","_swipeHandler","_noSwiping","noSwipingClass","noSwipingSelector","passiveListeners","containerModifierClass","slideClass","slideActiveClass","slideVisibleClass","slideFullyVisibleClass","slideNextClass","slidePrevClass","slideBlankClass","wrapperClass","lazyPreloaderClass","lazyPreloadPrevNext","runCallbacksOnInit","observer","observeParents","observeSlideChildren","a11y","_autoplay","_controller","coverflowEffect","cubeEffect","fadeEffect","flipEffect","creativeEffect","cardsEffect","hashNavigation","history","keyboard","mousewheel","_navigation","_pagination","parallax","_scrollbar","_thumbs","virtual","zoom","control"];function ju(e){return typeof e=="object"&&e!==null&&e.constructor&&Object.prototype.toString.call(e).slice(8,-1)==="Object"&&!e.__swiper__}function Od(e,t){const n=["__proto__","constructor","prototype"];Object.keys(t).filter(r=>n.indexOf(r)<0).forEach(r=>{typeof e[r]>"u"?e[r]=t[r]:ju(t[r])&&ju(e[r])&&Object.keys(t[r]).length>0?t[r].__swiper__?e[r]=t[r]:Od(e[r],t[r]):e[r]=t[r]})}function a7(e={}){return e.navigation&&typeof e.navigation.nextEl>"u"&&typeof e.navigation.prevEl>"u"}function l7(e={}){return e.pagination&&typeof e.pagination.el>"u"}function c7(e={}){return e.scrollbar&&typeof e.scrollbar.el>"u"}function u7(e=""){const t=e.split(" ").map(r=>r.trim()).filter(r=>!!r),n=[];return t.forEach(r=>{n.indexOf(r)<0&&n.push(r)}),n.join(" ")}function Y_(e=""){return e?e.includes("swiper-wrapper")?e:`swiper-wrapper ${e}`:"swiper-wrapper"}function K_({swiper:e,slides:t,passedParams:n,changedParams:r,nextEl:s,prevEl:i,scrollbarEl:l,paginationEl:c}){const u=r.filter(H=>H!=="children"&&H!=="direction"&&H!=="wrapperClass"),{params:h,pagination:p,navigation:g,scrollbar:y,virtual:v,thumbs:S}=e;let A,T,L,R,D,P,O,M;r.includes("thumbs")&&n.thumbs&&n.thumbs.swiper&&!n.thumbs.swiper.destroyed&&h.thumbs&&(!h.thumbs.swiper||h.thumbs.swiper.destroyed)&&(A=!0),r.includes("controller")&&n.controller&&n.controller.control&&h.controller&&!h.controller.control&&(T=!0),r.includes("pagination")&&n.pagination&&(n.pagination.el||c)&&(h.pagination||h.pagination===!1)&&p&&!p.el&&(L=!0),r.includes("scrollbar")&&n.scrollbar&&(n.scrollbar.el||l)&&(h.scrollbar||h.scrollbar===!1)&&y&&!y.el&&(R=!0),r.includes("navigation")&&n.navigation&&(n.navigation.prevEl||i)&&(n.navigation.nextEl||s)&&(h.navigation||h.navigation===!1)&&g&&!g.prevEl&&!g.nextEl&&(D=!0);const C=H=>{e[H]&&(e[H].destroy(),H==="navigation"?(e.isElement&&(e[H].prevEl.remove(),e[H].nextEl.remove()),h[H].prevEl=void 0,h[H].nextEl=void 0,e[H].prevEl=void 0,e[H].nextEl=void 0):(e.isElement&&e[H].el.remove(),h[H].el=void 0,e[H].el=void 0))};r.includes("loop")&&e.isElement&&(h.loop&&!n.loop?P=!0:!h.loop&&n.loop?O=!0:M=!0),u.forEach(H=>{if(ju(h[H])&&ju(n[H]))Object.assign(h[H],n[H]),(H==="navigation"||H==="pagination"||H==="scrollbar")&&"enabled"in n[H]&&!n[H].enabled&&C(H);else{const $=n[H];($===!0||$===!1)&&(H==="navigation"||H==="pagination"||H==="scrollbar")?$===!1&&C(H):h[H]=n[H]}}),u.includes("controller")&&!T&&e.controller&&e.controller.control&&h.controller&&h.controller.control&&(e.controller.control=h.controller.control),r.includes("children")&&t&&v&&h.virtual.enabled?(v.slides=t,v.update(!0)):r.includes("virtual")&&v&&h.virtual.enabled&&(t&&(v.slides=t),v.update(!0)),r.includes("children")&&t&&h.loop&&(M=!0),A&&S.init()&&S.update(!0),T&&(e.controller.control=h.controller.control),L&&(e.isElement&&(!c||typeof c=="string")&&(c=document.createElement("div"),c.classList.add("swiper-pagination"),c.part.add("pagination"),e.el.appendChild(c)),c&&(h.pagination.el=c),p.init(),p.render(),p.update()),R&&(e.isElement&&(!l||typeof l=="string")&&(l=document.createElement("div"),l.classList.add("swiper-scrollbar"),l.part.add("scrollbar"),e.el.appendChild(l)),l&&(h.scrollbar.el=l),y.init(),y.updateSize(),y.setTranslate()),D&&(e.isElement&&((!s||typeof s=="string")&&(s=document.createElement("div"),s.classList.add("swiper-button-next"),f5(s,e.navigation.arrowSvg),s.part.add("button-next"),e.el.appendChild(s)),(!i||typeof i=="string")&&(i=document.createElement("div"),i.classList.add("swiper-button-prev"),f5(i,e.navigation.arrowSvg),i.part.add("button-prev"),e.el.appendChild(i))),s&&(h.navigation.nextEl=s),i&&(h.navigation.prevEl=i),g.init(),g.update()),r.includes("allowSlideNext")&&(e.allowSlideNext=n.allowSlideNext),r.includes("allowSlidePrev")&&(e.allowSlidePrev=n.allowSlidePrev),r.includes("direction")&&e.changeDirection(n.direction,!1),(P||M)&&e.loopDestroy(),(O||M)&&e.loopCreate(),e.update()}function X_(e={},t=!0){const n={on:{}},r={},s={};Od(n,Jx),n._emitClasses=!0,n.init=!1;const i={},l=o7.map(u=>u.replace(/_/,"")),c=Object.assign({},e);return Object.keys(c).forEach(u=>{typeof e[u]>"u"||(l.indexOf(u)>=0?ju(e[u])?(n[u]={},s[u]={},Od(n[u],e[u]),Od(s[u],e[u])):(n[u]=e[u],s[u]=e[u]):u.search(/on[A-Z]/)===0&&typeof e[u]=="function"?t?r[`${u[2].toLowerCase()}${u.substr(3)}`]=e[u]:n.on[`${u[2].toLowerCase()}${u.substr(3)}`]=e[u]:i[u]=e[u])}),["navigation","pagination","scrollbar"].forEach(u=>{n[u]===!0&&(n[u]={}),n[u]===!1&&delete n[u]}),{params:n,passedParams:s,rest:i,events:r}}function Z_({el:e,nextEl:t,prevEl:n,paginationEl:r,scrollbarEl:s,swiper:i},l){a7(l)&&t&&n&&(i.params.navigation.nextEl=t,i.originalParams.navigation.nextEl=t,i.params.navigation.prevEl=n,i.originalParams.navigation.prevEl=n),l7(l)&&r&&(i.params.pagination.el=r,i.originalParams.pagination.el=r),c7(l)&&s&&(i.params.scrollbar.el=s,i.originalParams.scrollbar.el=s),i.init(e)}function J_(e,t,n,r,s){const i=[];if(!t)return i;const l=u=>{i.indexOf(u)<0&&i.push(u)};if(n&&r){const u=r.map(s),h=n.map(s);u.join("")!==h.join("")&&l("children"),r.length!==n.length&&l("children")}return o7.filter(u=>u[0]==="_").map(u=>u.replace(/_/,"")).forEach(u=>{if(u in e&&u in t)if(ju(e[u])&&ju(t[u])){const h=Object.keys(e[u]),p=Object.keys(t[u]);h.length!==p.length?l(u):(h.forEach(g=>{e[u][g]!==t[u][g]&&l(u)}),p.forEach(g=>{e[u][g]!==t[u][g]&&l(u)}))}else e[u]!==t[u]&&l(u)}),i}const eL=e=>{!e||e.destroyed||!e.params.virtual||e.params.virtual&&!e.params.virtual.enabled||(e.updateSlides(),e.updateProgress(),e.updateSlidesClasses(),e.emit("_virtualUpdated"),e.parallax&&e.params.parallax&&e.params.parallax.enabled&&e.parallax.setTranslate())};function fm(){return fm=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},fm.apply(this,arguments)}function d7(e){return e.type&&e.type.displayName&&e.type.displayName.includes("SwiperSlide")}function f7(e){const t=[];return j.Children.toArray(e).forEach(n=>{d7(n)?t.push(n):n.props&&n.props.children&&f7(n.props.children).forEach(r=>t.push(r))}),t}function tL(e){const t=[],n={"container-start":[],"container-end":[],"wrapper-start":[],"wrapper-end":[]};return j.Children.toArray(e).forEach(r=>{if(d7(r))t.push(r);else if(r.props&&r.props.slot&&n[r.props.slot])n[r.props.slot].push(r);else if(r.props&&r.props.children){const s=f7(r.props.children);s.length>0?s.forEach(i=>t.push(i)):n["container-end"].push(r)}else n["container-end"].push(r)}),{slides:t,slots:n}}function nL(e,t,n){if(!n)return null;const r=p=>{let g=p;return p<0?g=t.length+p:g>=t.length&&(g=g-t.length),g},s=e.isHorizontal()?{[e.rtlTranslate?"right":"left"]:`${n.offset}px`}:{top:`${n.offset}px`},{from:i,to:l}=n,c=e.params.loop?-t.length:0,u=e.params.loop?t.length*2:t.length,h=[];for(let p=c;p<u;p+=1)p>=i&&p<=l&&h.push(t[r(p)]);return h.map((p,g)=>j.cloneElement(p,{swiper:e,style:s,key:p.props.virtualIndex||p.key||`slide-${g}`}))}function wf(e,t){return typeof window>"u"?b.useEffect(e,t):b.useLayoutEffect(e,t)}const x5=b.createContext(null),rL=b.createContext(null),th=b.forwardRef(({className:e,tag:t="div",wrapperTag:n="div",children:r,onSwiper:s,...i}={},l)=>{let c=!1;const[u,h]=b.useState("swiper"),[p,g]=b.useState(null),[y,v]=b.useState(!1),S=b.useRef(!1),A=b.useRef(null),T=b.useRef(null),L=b.useRef(null),R=b.useRef(null),D=b.useRef(null),P=b.useRef(null),O=b.useRef(null),M=b.useRef(null),{params:C,passedParams:H,rest:$,events:G}=X_(i),{slides:z,slots:q}=tL(r),se=()=>{v(!y)};Object.assign(C.on,{_containerClasses(K,V){h(V)}});const xe=()=>{Object.assign(C.on,G),c=!0;const K={...C};if(delete K.wrapperClass,T.current=new L2(K),T.current.virtual&&T.current.params.virtual.enabled){T.current.virtual.slides=z;const V={cache:!1,slides:z,renderExternal:g,renderExternalUpdate:!1};Od(T.current.params.virtual,V),Od(T.current.originalParams.virtual,V)}};A.current||xe(),T.current&&T.current.on("_beforeBreakpoint",se);const be=()=>{c||!G||!T.current||Object.keys(G).forEach(K=>{T.current.on(K,G[K])})},X=()=>{!G||!T.current||Object.keys(G).forEach(K=>{T.current.off(K,G[K])})};b.useEffect(()=>()=>{T.current&&T.current.off("_beforeBreakpoint",se)}),b.useEffect(()=>{!S.current&&T.current&&(T.current.emitSlidesClasses(),S.current=!0)}),wf(()=>{if(l&&(l.current=A.current),!!A.current)return T.current.destroyed&&xe(),Z_({el:A.current,nextEl:D.current,prevEl:P.current,paginationEl:O.current,scrollbarEl:M.current,swiper:T.current},C),s&&!T.current.destroyed&&s(T.current),()=>{T.current&&!T.current.destroyed&&T.current.destroy(!0,!1)}},[]),wf(()=>{be();const K=J_(H,L.current,z,R.current,V=>V.key);return L.current=H,R.current=z,K.length&&T.current&&!T.current.destroyed&&K_({swiper:T.current,slides:z,passedParams:H,changedParams:K,nextEl:D.current,prevEl:P.current,scrollbarEl:M.current,paginationEl:O.current}),()=>{X()}}),wf(()=>{eL(T.current)},[p]);function J(){return C.virtual?nL(T.current,z,p):z.map((K,V)=>j.cloneElement(K,{swiper:T.current,swiperSlideIndex:V}))}return j.createElement(t,fm({ref:A,className:u7(`${u}${e?` ${e}`:""}`)},$),j.createElement(rL.Provider,{value:T.current},q["container-start"],j.createElement(n,{className:Y_(C.wrapperClass)},q["wrapper-start"],J(),q["wrapper-end"]),a7(C)&&j.createElement(j.Fragment,null,j.createElement("div",{ref:P,className:"swiper-button-prev"}),j.createElement("div",{ref:D,className:"swiper-button-next"})),c7(C)&&j.createElement("div",{ref:M,className:"swiper-scrollbar"}),l7(C)&&j.createElement("div",{ref:O,className:"swiper-pagination"}),q["container-end"]))});th.displayName="Swiper";const Pu=b.forwardRef(({tag:e="div",children:t,className:n="",swiper:r,zoom:s,lazy:i,virtualIndex:l,swiperSlideIndex:c,...u}={},h)=>{const p=b.useRef(null),[g,y]=b.useState("swiper-slide"),[v,S]=b.useState(!1);function A(D,P,O){P===p.current&&y(O)}wf(()=>{if(typeof c<"u"&&(p.current.swiperSlideIndex=c),h&&(h.current=p.current),!(!p.current||!r)){if(r.destroyed){g!=="swiper-slide"&&y("swiper-slide");return}return r.on("_slideClass",A),()=>{r&&r.off("_slideClass",A)}}}),wf(()=>{r&&p.current&&!r.destroyed&&y(r.getSlideClasses(p.current))},[r]);const T={isActive:g.indexOf("swiper-slide-active")>=0,isVisible:g.indexOf("swiper-slide-visible")>=0,isFullyVisible:g.indexOf("swiper-slide-fully-visible")>=0,isPrev:g.indexOf("swiper-slide-prev")>=0,isNext:g.indexOf("swiper-slide-next")>=0},L=()=>typeof t=="function"?t(T):t,R=()=>{S(!0)};return j.createElement(e,fm({ref:p,className:u7(`${g}${n?` ${n}`:""}`),"data-swiper-slide-index":l,onLoad:R},u),s&&j.createElement(x5.Provider,{value:T},j.createElement("div",{className:"swiper-zoom-container","data-swiper-zoom":typeof s=="number"?s:void 0},L(),i&&!v&&j.createElement("div",{className:"swiper-lazy-preloader",ref:D=>{D&&(D.lazyPreloaderManaged=!0)}}))),!s&&j.createElement(x5.Provider,{value:T},L(),i&&!v&&j.createElement("div",{className:"swiper-lazy-preloader",ref:D=>{D&&(D.lazyPreloaderManaged=!0)}})))});Pu.displayName="SwiperSlide";const Ui=[];for(let e=0;e<256;++e)Ui.push((e+256).toString(16).slice(1));function sL(e,t=0){return(Ui[e[t+0]]+Ui[e[t+1]]+Ui[e[t+2]]+Ui[e[t+3]]+"-"+Ui[e[t+4]]+Ui[e[t+5]]+"-"+Ui[e[t+6]]+Ui[e[t+7]]+"-"+Ui[e[t+8]]+Ui[e[t+9]]+"-"+Ui[e[t+10]]+Ui[e[t+11]]+Ui[e[t+12]]+Ui[e[t+13]]+Ui[e[t+14]]+Ui[e[t+15]]).toLowerCase()}let p1;const iL=new Uint8Array(16);function oL(){if(!p1){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");p1=crypto.getRandomValues.bind(crypto)}return p1(iL)}const aL=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),b5={randomUUID:aL};function lL(e,t,n){e=e||{};const r=e.random??e.rng?.()??oL();if(r.length<16)throw new Error("Random bytes length must be >= 16");return r[6]=r[6]&15|64,r[8]=r[8]&63|128,sL(r)}function cL(e,t,n){return b5.randomUUID&&!e?b5.randomUUID():lL(e)}const uL={},y5=e=>{let t;const n=new Set,r=(p,g)=>{const y=typeof p=="function"?p(t):p;if(!Object.is(y,t)){const v=t;t=g??(typeof y!="object"||y===null)?y:Object.assign({},t,y),n.forEach(S=>S(t,v))}},s=()=>t,u={setState:r,getState:s,getInitialState:()=>h,subscribe:p=>(n.add(p),()=>n.delete(p)),destroy:()=>{(uL?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},h=t=e(r,s,u);return u},dL=e=>e?y5(e):y5;var m1={exports:{}},g1={},x1={exports:{}},b1={};var v5;function fL(){if(v5)return b1;v5=1;var e=Km();function t(g,y){return g===y&&(g!==0||1/g===1/y)||g!==g&&y!==y}var n=typeof Object.is=="function"?Object.is:t,r=e.useState,s=e.useEffect,i=e.useLayoutEffect,l=e.useDebugValue;function c(g,y){var v=y(),S=r({inst:{value:v,getSnapshot:y}}),A=S[0].inst,T=S[1];return i(function(){A.value=v,A.getSnapshot=y,u(A)&&T({inst:A})},[g,v,y]),s(function(){return u(A)&&T({inst:A}),g(function(){u(A)&&T({inst:A})})},[g]),l(v),v}function u(g){var y=g.getSnapshot;g=g.value;try{var v=y();return!n(g,v)}catch{return!0}}function h(g,y){return y()}var p=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?h:c;return b1.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:p,b1}var w5;function hL(){return w5||(w5=1,x1.exports=fL()),x1.exports}var S5;function pL(){if(S5)return g1;S5=1;var e=Km(),t=hL();function n(h,p){return h===p&&(h!==0||1/h===1/p)||h!==h&&p!==p}var r=typeof Object.is=="function"?Object.is:n,s=t.useSyncExternalStore,i=e.useRef,l=e.useEffect,c=e.useMemo,u=e.useDebugValue;return g1.useSyncExternalStoreWithSelector=function(h,p,g,y,v){var S=i(null);if(S.current===null){var A={hasValue:!1,value:null};S.current=A}else A=S.current;S=c(function(){function L(M){if(!R){if(R=!0,D=M,M=y(M),v!==void 0&&A.hasValue){var C=A.value;if(v(C,M))return P=C}return P=M}if(C=P,r(D,M))return C;var H=y(M);return v!==void 0&&v(C,H)?(D=M,C):(D=M,P=H)}var R=!1,D,P,O=g===void 0?null:g;return[function(){return L(p())},O===null?void 0:function(){return L(O())}]},[p,g,y,v]);var T=s(h,S[0],S[1]);return l(function(){A.hasValue=!0,A.value=T},[T]),u(T),T},g1}var A5;function mL(){return A5||(A5=1,m1.exports=pL()),m1.exports}var gL=mL();const xL=X4(gL),h7={},{useDebugValue:bL}=j,{useSyncExternalStoreWithSelector:yL}=xL;let T5=!1;const vL=e=>e;function wL(e,t=vL,n){(h7?"production":void 0)!=="production"&&n&&!T5&&(console.warn("[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937"),T5=!0);const r=yL(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return bL(r),r}const C5=e=>{(h7?"production":void 0)!=="production"&&typeof e!="function"&&console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.");const t=typeof e=="function"?dL(e):e,n=(r,s)=>wL(t,r,s);return Object.assign(n,t),n},p7=e=>e?C5(e):C5,hm="auth:unauthorized";let jd=null;class pl extends Error{constructor(t,n,r){super(t),this.status=n,this.code=r,this.name="TerminalApiError"}status;code}async function SL(){const e=await fetch("/api/terminal/update");if(!e.ok)throw new pl("Failed to load update state",e.status);return e.json()}async function AL(){const e=await tr(),t=await fetch("/api/terminal/update/check",{method:"POST",headers:{"X-XSRF-TOKEN":e}});if(!t.ok)throw new pl("Failed to check for updates",t.status);return t.json()}async function TL(){const e=await tr(),t=await fetch("/api/terminal/update/restart",{method:"POST",headers:{"X-XSRF-TOKEN":e}});if(!t.ok){const n=await t.json().catch(()=>({error:"Failed to restart Termdock"}));throw new pl(n.error||"Failed to restart Termdock",t.status)}return t.json()}async function CL(){const e=await fetch("/api/terminal/quota");if(!e.ok)throw new pl("Failed to fetch quota",e.status);return e.json()}async function kL(){const e=await tr(),t=await fetch("/api/terminal/quota/refresh",{method:"POST",headers:{"X-XSRF-TOKEN":e}});if(!t.ok)throw new pl("Failed to refresh quota",t.status);return t.json()}const Jc=8e3,Ul=1e4,Qd=45e3,_L=8e3,LL=8e3,EL=15e3,IL=1e4,Vd=5e3;let RL=0;const $p=[];let y1=!1;function Mc(e,t={}){if(typeof window>"u")return;const n=JSON.stringify({level:e==="error"||e==="timeout_or_abort"||e==="response_body_timeout"||e==="response_body_parse_error"?"warn":"info",message:`DIFF_API ${e}`,data:{seq:++RL,ts:Date.now(),...t}});$p.push(n),NL()}async function NL(){if(!y1){y1=!0;try{for(;$p.length>0;){const e=$p[0];try{await fetch("/api/client-log",{method:"POST",headers:{"Content-Type":"application/json"},body:e,keepalive:!0}),$p.shift()}catch{break}}}finally{y1=!1}}}function ML(e,t,n){const r=new AbortController;let s=setTimeout(()=>{r.abort(new DOMException(n,"TimeoutError"))},t);const i=()=>r.abort(e?.reason);return e&&(e.aborted?i():e.addEventListener("abort",i,{once:!0})),{signal:r.signal,cleanup:()=>{s&&(clearTimeout(s),s=null),e?.removeEventListener("abort",i)}}}async function Ts(e,t,n,r){const{signal:s,cleanup:i}=ML(t?.signal??void 0,n,r);try{return await fetch(e,{...t,signal:s})}catch(l){throw l instanceof DOMException&&l.name==="TimeoutError"?new Error(r):l}finally{i()}}async function m7(e,t,n){let r=null;const s=new Promise((i,l)=>{r=setTimeout(()=>l(new Error(n)),t)});try{return await Promise.race([e.text(),s])}finally{r&&clearTimeout(r)}}async function qd(e,t,n){const r=await m7(e,t,n);return JSON.parse(r)}if(typeof window<"u"&&!window.__termdockFetchPatched){window.__termdockFetchPatched=!0;const e=window.fetch.bind(window);window.fetch=async(...t)=>{const n=await e(...t);if(n.status===401){jd=null;try{window.dispatchEvent(new CustomEvent(hm))}catch{}}return n}}async function tr(){if(jd)return jd;const e=await Ts("/api/csrf-token",void 0,_L,"CSRF token request timed out");if(!e.ok)throw new Error("Failed to get CSRF token");const t=await qd(e,Vd,"CSRF token response timed out");if(!t.csrfToken)throw new Error("Invalid CSRF token response");return jd=t.csrfToken,jd}function g7(){jd=null}const DL=2e4,k5=8e3,jL=1500,Xo=new Map,PL=24,BL=40,FL=40;function OL(e){return e.retryState.retryCount>=2||e.pendingInputs.length>=FL?"congested":e.retryState.retryCount>=1||e.pendingInputs.length>=8?"degraded":"good"}function _5(e){if(e.pendingInputs.length===0||e.ws.readyState!==WebSocket.OPEN)return;const t=e.pendingInputs.splice(0);for(const n of t)try{e.ws.send(JSON.stringify({type:"input",data:n}))}catch{}}function x7(e){if(e.ws.readyState!==WebSocket.OPEN)return;const t=OL(e);if(t==="good"){_5(e);return}if(e.inputFlushTimer)return;const n=t==="congested"?BL:PL;e.inputFlushTimer=setTimeout(()=>{e.inputFlushTimer=null,_5(e)},n)}const Sf=new Map;function QL(e,t,n,r){const s=Sf.get(e);s&&(Sf.delete(e),t?s.resolve({success:!0,layout:n}):s.reject(new Error(r||"Tmux action failed")))}function $L(e,t){const r=`${window.location.protocol==="https:"?"wss":"ws"}://${window.location.host}/api/terminal/${e}/ws`;return t>0?`${r}?since=${t}`:r}const L5=new Map;async function HL(e){const t=await tr(),n=await fetch("/api/terminal/create",{method:"POST",headers:{"Content-Type":"application/json","X-XSRF-TOKEN":t},body:JSON.stringify({cols:e.cols||80,rows:e.rows||24,mode:e.mode||"shell",tmuxSessionName:e.tmuxSessionName,cwd:e.cwd,termType:e.termType})});if(!n.ok){const r=await n.json().catch(()=>({error:"Failed to create terminal"}));throw new Error(r.error||"Failed to create terminal session")}return n.json()}function UL(e,t,n,r={}){const{maxRetries:s=10,initialRetryDelay:i=1e3,maxRetryDelay:l=2e4,connectionTimeout:c=15e3}=r,u={maxRetries:s,initialDelayMs:i,maxDelayMs:l,connectionTimeoutMs:c,retryCount:0,retryTimeout:null,connectionTimeoutId:null,isClosed:!1};let h=null,p=L5.get(e)??0;L5.delete(e);const g=[];let y=!1,v=null;const S=new WeakSet,A=()=>{u.retryTimeout&&(clearTimeout(u.retryTimeout),u.retryTimeout=null),u.connectionTimeoutId&&(clearTimeout(u.connectionTimeoutId),u.connectionTimeoutId=null),v&&(clearTimeout(v),v=null)},T=O=>{O.heartbeatTimer&&(clearInterval(O.heartbeatTimer),O.heartbeatTimer=null),O.pongTimer&&(clearTimeout(O.pongTimer),O.pongTimer=null),O.inputFlushTimer&&(clearTimeout(O.inputFlushTimer),O.inputFlushTimer=null)},L=O=>{T(O),O.heartbeatTimer=setInterval(()=>{if(O.ws.readyState===WebSocket.OPEN){try{O.ws.send(JSON.stringify({type:"ping"}))}catch{}O.pongTimer&&clearTimeout(O.pongTimer),O.pongTimer=setTimeout(()=>{if(Date.now()-O.lastInboundAt>=k5)try{O.ws.close()}catch{}},k5)}},DL)},R=()=>{if(u.isClosed=!0,A(),h){T(h),Xo.delete(e);try{h.ws.close()}catch{}h=null}},D=()=>{if(u.isClosed)return;if(h){S.add(h.ws),T(h);try{h.ws.close()}catch{}}const O=$L(e,p),M=new WebSocket(O);y=!1,u.connectionTimeoutId=setTimeout(()=>{M.readyState!==WebSocket.OPEN&&(y=!0,M.close(),P(new Error("WebSocket connection timeout"),!1))},c);const C={ws:M,onEvent:t,onError:n,reconnectNow:()=>{if(!u.isClosed&&!v){if(A(),h){S.add(h.ws),T(h);try{h.ws.close()}catch{}}t({type:"reconnecting",attempt:Math.min(u.retryCount+1,s),maxAttempts:s}),u.retryCount=Math.min(u.retryCount+1,s),y=!0,v=setTimeout(()=>{v=null,y=!1,D()},0)}},retryState:u,lastSeq:p,pendingInputs:g,inputFlushTimer:null,heartbeatTimer:null,pongTimer:null,lastInboundAt:Date.now()};M.onopen=()=>{A(),u.retryCount=0,C.lastInboundAt=Date.now(),L(C),x7(C)},M.onmessage=H=>{C.lastInboundAt=Date.now();try{const $=JSON.parse(H.data);if($.type==="pong"){C.pongTimer&&(clearTimeout(C.pongTimer),C.pongTimer=null);return}if($.type==="tmux-result"&&$.reqId){QL($.reqId,$.success!==!1,$.layout,$.error);return}if($.type==="tmux-layout"&&$.layout){t({type:"tmux-layout",layout:$.layout});return}if($.type==="tmux-screen-sync"&&Array.isArray($.chunks)){t({type:"tmux-screen-sync",chunks:$.chunks.filter(z=>typeof z=="string"),cols:typeof $.cols=="number"?$.cols:void 0,rows:typeof $.rows=="number"?$.rows:void 0,generation:typeof $.generation=="number"?$.generation:void 0});return}if($.type==="active-program"){t({type:"active-program",activeProgram:$.activeProgram,activeProgramRaw:$.activeProgramRaw,activeProgramSource:$.activeProgramSource});return}if($.type==="cwd"){t({type:"cwd",cwd:$.cwd});return}if($.type==="agent-status"){t({type:"agent-status",agentStatus:$.agentStatus??null,agentIndicator:$.agentIndicator??null,agentStatusDetail:$.agentStatusDetail??null,agent:$.agent??null,agentMessage:$.agentMessage??null,agentNativeSessionId:$.agentNativeSessionId??null,agentResumeRecovered:$.agentResumeRecovered===!0,agentRich:$.agentRich===!0,agentActivity:typeof $.agentActivity=="number"?$.agentActivity:0,agentCwd:$.agentCwd??null,reviewed:typeof $.reviewed=="boolean"?$.reviewed:null});return}if($.type==="git-status"){t({type:"git-status",gitStatus:$.gitStatus??null});return}if($.type==="quota-status"&&Array.isArray($.providers)){window.dispatchEvent(new CustomEvent("termdock:quota-update",{detail:$.providers}));return}if($.type==="focus-mode"){t({type:"focus-mode",focusTrackingRequested:$.focusTrackingRequested===!0});return}if($.type==="resize-ack"){t({type:"resize-ack",seq:typeof $.seq=="number"?$.seq:void 0,cols:typeof $.cols=="number"?$.cols:void 0,rows:typeof $.rows=="number"?$.rows:void 0,ok:$.ok!==!1,error:typeof $.error=="string"?$.error:void 0});return}if($.type==="pty-size"){t({type:"pty-size",cols:typeof $.cols=="number"?$.cols:void 0,rows:typeof $.rows=="number"?$.rows:void 0,source:typeof $.source=="string"?$.source:void 0});return}if($.type==="shell-title"){t({type:"shell-title",title:typeof $.title=="string"?$.title:""});return}if($.type==="prompt-state"){t({type:"prompt-state",state:$.state==="running"?"running":"idle",exitCode:typeof $.exitCode=="number"?$.exitCode:void 0});return}const G=$;if(G.type==="connected"){typeof G.replayLastSeq=="number"&&G.replayLastSeq>0&&(p=G.replayLastSeq,C.lastSeq=p),t(G);return}if(G.type==="exit"){R(),t(G);return}t(G),G.type==="data"&&typeof G.seq=="number"&&Number.isFinite(G.seq)&&G.seq>p&&(p=G.seq,C.lastSeq=p)}catch($){n?.($,!1)}},M.onerror=()=>{S.has(M)||(A(),T(C),y||(y=!0,P(new Error("WebSocket connection error"),!1)))},M.onclose=H=>{if(!S.has(M)&&(A(),T(C),!u.isClosed&&!y)){if(y=!0,H.code===4001){console.warn("[Terminal] WS 4001: Session not found on server",{code:H.code,reason:H.reason,stack:new Error().stack}),P(new Error("Session not found on server"),!0);return}if(H.code===4003||H.code===4401){try{window.dispatchEvent(new CustomEvent(hm))}catch{}P(new Error("Authentication required"),!0);return}P(new Error("WebSocket connection closed"),!1)}},h=C,Xo.set(e,h)},P=(O,M)=>{if(!u.isClosed)if(M)n?.(O,!0),R();else{u.retryCount=Math.min(u.retryCount+1,Math.max(1,s));const C=Math.min(i*Math.pow(2,u.retryCount-1),l);t({type:"reconnecting",attempt:u.retryCount,maxAttempts:s}),u.retryTimeout=setTimeout(()=>{u.isClosed||D()},C)}};return D(),R}async function b7(e,t){const n=Xo.get(e);if(n){if(n.ws.readyState===WebSocket.OPEN){n.pendingInputs.push(t),x7(n);return}if(n.ws.readyState===WebSocket.CONNECTING){n.pendingInputs.push(t);return}}const r=await tr(),s=await fetch(`/api/terminal/${e}/input`,{method:"POST",headers:{"Content-Type":"text/plain","X-XSRF-TOKEN":r},body:t});if(!s.ok){const i=await s.json().catch(()=>({error:"Failed to send input"}));throw new Error(i.error||"Failed to send terminal input")}}function zL(e){const t=Xo.get(e);if(!t)return!1;if(t.ws.readyState!==WebSocket.OPEN)return t.reconnectNow(),!0;const n=t.lastInboundAt;try{t.ws.send(JSON.stringify({type:"ping"}))}catch{}return setTimeout(()=>{t.lastInboundAt<=n&&t.reconnectNow()},jL),!0}function E5(e,t,n){const r=Xo.get(e);if(!(!r||r.ws.readyState!==WebSocket.OPEN))try{r.ws.send(JSON.stringify({type:"focus",focused:t,reason:n}))}catch{}}function I5(e,t,n){const r=Xo.get(e);if(!(!r||r.ws.readyState!==WebSocket.OPEN))try{r.ws.send(JSON.stringify({type:"viewing",viewing:t,reason:n}))}catch{}}function R5(e){const t=Xo.get(e);if(!(!t||t.ws.readyState!==WebSocket.OPEN))try{t.ws.send(JSON.stringify({type:"agent-review-ack"}))}catch{}}function N5(e,t,n){const r=Xo.get(e);if(!(!r||r.ws.readyState!==WebSocket.OPEN))try{r.ws.send(JSON.stringify({type:"flow-control",paused:t,reason:n}))}catch{}}async function GL(e,t,n,r){const s=Xo.get(e);if(s&&s.ws.readyState===WebSocket.OPEN)try{s.ws.send(JSON.stringify({type:"resize",cols:t,rows:n,seq:r}));return}catch{}const i=await tr(),l=await fetch(`/api/terminal/${e}/resize`,{method:"POST",headers:{"Content-Type":"application/json","X-XSRF-TOKEN":i},body:JSON.stringify({cols:t,rows:n,seq:r})});if(!l.ok){const u=await l.json().catch(()=>({error:"Failed to resize terminal"}));throw new Error(u.error||"Failed to resize terminal")}const c=await l.json().catch(()=>({success:!0}));if(c?.success===!1||c?.ok===!1)throw new Error(c?.error||"Failed to resize terminal")}async function WL(e,t){const n=Xo.get(e);if(n&&n.ws.readyState===WebSocket.OPEN)return t.action==="scroll"?(n.ws.send(JSON.stringify({type:"tmux",...t})),{success:!0}):new Promise((i,l)=>{const c=Math.random().toString(36).substring(7);Sf.set(c,{resolve:i,reject:l}),n.ws.send(JSON.stringify({type:"tmux",reqId:c,...t})),setTimeout(()=>{Sf.has(c)&&(Sf.delete(c),l(new Error("Tmux action timed out")))},3e4)});const r=await tr(),s=await fetch(`/api/terminal/${e}/tmux`,{method:"POST",headers:{"Content-Type":"application/json","X-XSRF-TOKEN":r},body:JSON.stringify(t)});if(!s.ok){const i=await s.json().catch(()=>({error:"Failed to execute tmux action"}));throw new Error(i.error||"Failed to execute tmux action")}return s.json()}async function y7(e){const t=Xo.get(e);if(t){t.retryState.isClosed=!0;try{t.ws.close()}catch{}Xo.delete(e)}const n=await tr(),r=await fetch(`/api/terminal/${e}`,{method:"DELETE",headers:{"X-XSRF-TOKEN":n}});if(r.status!==404&&!r.ok){const s=await r.json().catch(()=>({error:"Failed to close terminal"}));throw new Error(s.error||"Failed to close terminal")}}async function VL(e,t){const n=Xo.get(e);if(n){n.retryState.isClosed=!0;try{n.ws.close()}catch{}Xo.delete(e)}const r=await tr(),s=await fetch(`/api/terminal/${e}/restart`,{method:"POST",headers:{"Content-Type":"application/json","X-XSRF-TOKEN":r},body:JSON.stringify({...t.cwd?{cwd:t.cwd}:{},cols:t.cols??80,rows:t.rows??24,mode:t.mode,tmuxSessionName:t.tmuxSessionName})});if(!s.ok){const i=await s.json().catch(()=>({error:"Failed to restart terminal"}));throw new Error(i.error||"Failed to restart terminal session")}return s.json()}async function qL(e){const t=await Ts(`/api/terminal/${e}/health`,{method:"GET"},LL,"Terminal health check timed out");if(!t.ok){if(t.status===404)return{healthy:!1,sessionId:e};const n=await qd(t,Vd,"Terminal health error response timed out").catch(()=>({error:"Failed to check terminal health"}));throw new Error(n.error||"Failed to check terminal health")}return qd(t,Vd,"Terminal health response timed out")}async function YL(e){const t=await tr(),n=await Ts("/api/terminal/force-kill",{method:"POST",headers:{"Content-Type":"application/json","X-XSRF-TOKEN":t},body:JSON.stringify(e)},IL,"Terminal force-kill request timed out");if(!n.ok){const r=await qd(n,Vd,"Terminal force-kill error response timed out").catch(()=>({error:"Failed to force kill terminal"}));throw new Error(r.error||"Failed to force kill terminal")}}async function eb(){const e=await fetch("/api/terminal/tmux/sessions",{method:"GET"});if(!e.ok){const n=await e.json().catch(()=>({error:"Failed to list tmux sessions"}));throw new Error(n.error||"Failed to list tmux sessions")}const t=await e.json();return Array.isArray(t.sessions)?t.sessions:[]}async function tb(){const e=await fetch("/api/terminal/tmux/status",{method:"GET"});if(!e.ok){const t=await e.json().catch(()=>({error:"Failed to get tmux status"}));throw new Error(t.error||"Failed to get tmux status")}return e.json()}async function v7(e){const t=e.trim();if(!t)throw new Error("tmux session name is required");const n=await tr(),r=await fetch(`/api/terminal/tmux/sessions/${encodeURIComponent(t)}`,{method:"DELETE",headers:{"X-XSRF-TOKEN":n}});if(!r.ok){const i=await r.json().catch(()=>({error:"Failed to kill tmux session"}));throw new Error(i.error||"Failed to kill tmux session")}const s=await r.json();return{cleanedSessions:Array.isArray(s.cleanedSessions)?s.cleanedSessions:[],alreadyGone:!!s.alreadyGone}}const Xh=new Map;function KL(e){return JSON.stringify({preferredFrontendSessionId:e.preferredFrontendSessionId??null,mode:e.mode??null,tmuxSessionName:e.tmuxSessionName??null,cwd:e.cwd??null,termType:e.termType??null,createIfEmpty:e.createIfEmpty===!0,requireExisting:e.requireExisting===!0})}async function XL(){const e=await fetch("/api/terminal/session-inventory",{method:"GET"});if(!e.ok){const t=await e.json().catch(()=>({error:"Failed to load session inventory"}));throw new Error(t.error||"Failed to load session inventory")}return e.json()}async function w7(e){const t=KL(e),n=Xh.get(t);if(n)return n;const r=await tr(),s=Ts("/api/terminal/session-inventory/open",{method:"POST",headers:{"Content-Type":"application/json","X-XSRF-TOKEN":r},body:JSON.stringify(e)},EL,"Terminal session open request timed out").then(async i=>{if(!i.ok){const l=await qd(i,Vd,"Terminal session open error response timed out").catch(()=>({error:"Failed to open session"}));throw new pl(l.error||"Failed to open session",i.status,typeof l.code=="string"?l.code:void 0)}return qd(i,Vd,"Terminal session open response timed out")}).finally(()=>{Xh.get(t)===s&&Xh.delete(t)});return Xh.set(t,s),s}async function Hp(e,t){const n=await tr(),r=await fetch(`/api/terminal/session-inventory/sessions/${encodeURIComponent(e)}`,{method:"PATCH",headers:{"Content-Type":"application/json","X-XSRF-TOKEN":n},body:JSON.stringify(t)});if(!r.ok){const s=await r.json().catch(()=>({error:"Failed to update session"}));throw new Error(s.error||"Failed to update session")}return r.json()}async function ZL(e){const t=await tr(),n=await fetch("/api/terminal/session-inventory/reorder",{method:"POST",headers:{"Content-Type":"application/json","X-XSRF-TOKEN":t},body:JSON.stringify({sessionIds:e})});if(!n.ok){const r=await n.json().catch(()=>({error:"Failed to reorder sessions"}));throw new Error(r.error||"Failed to reorder sessions")}return n.json()}async function JL(e){const t=await tr(),n=await fetch(`/api/terminal/session-inventory/sessions/${encodeURIComponent(e)}`,{method:"DELETE",headers:{"X-XSRF-TOKEN":t}});if(!n.ok){const r=await n.json().catch(()=>({error:"Failed to remove session"}));throw new Error(r.error||"Failed to remove session")}}async function eE(){const e=await tr(),t=await fetch("/api/terminal/session-inventory/sessions",{method:"DELETE",headers:{"X-XSRF-TOKEN":e}});if(!t.ok){const n=await t.json().catch(()=>({error:"Failed to clear sessions"}));throw new Error(n.error||"Failed to clear sessions")}}async function M5(){const e=await fetch("/api/terminal/toolbar-presets",{method:"GET"});if(!e.ok){const t=await e.json().catch(()=>({error:"Failed to load toolbar presets"}));throw new Error(t.error||"Failed to load toolbar presets")}return e.json()}async function tE(e){const t=await tr(),n=await fetch("/api/terminal/toolbar-presets",{method:"PUT",headers:{"Content-Type":"application/json","X-XSRF-TOKEN":t},body:JSON.stringify(e)});if(!n.ok){const r=await n.json().catch(()=>({error:"Failed to save toolbar presets"})),s=new Error(r.error||"Failed to save toolbar presets");throw s.current=r.current,s.code=r.code,s}return n.json()}async function Xm(){const e=await fetch("/api/terminal/settings",{method:"GET"});if(!e.ok){const t=await e.json().catch(()=>({error:"Failed to load settings"}));throw new Error(t.error||"Failed to load settings")}return e.json()}async function cl(e){const t=await tr(),n=await fetch("/api/terminal/settings",{method:"PUT",headers:{"Content-Type":"application/json","X-XSRF-TOKEN":t},body:JSON.stringify(e)});if(!n.ok){const r=await n.json().catch(()=>({error:"Failed to update settings"}));throw new Error(r.error||"Failed to update settings")}return n.json()}async function j0(e=!1){const t=await fetch(`/api/terminal/auto-title/catalog${e?"?refresh=1":""}`);if(!t.ok)throw new Error("Failed to discover title models");const n=await t.json();return Array.isArray(n?.namers)?n.namers:[]}async function nE(){const e=await fetch("/api/terminal/context-draft",{method:"GET"});if(!e.ok){const t=await e.json().catch(()=>({error:"Failed to load context draft"}));throw new Error(t.error||"Failed to load context draft")}return e.json()}async function rE(e,t){const n=await tr(),r=await fetch("/api/terminal/context-draft",{method:"PUT",headers:{"Content-Type":"application/json","X-XSRF-TOKEN":n},body:JSON.stringify({text:e,origin:t})});if(!r.ok){const s=await r.json().catch(()=>({error:"Failed to update context draft"}));throw new Error(s.error||"Failed to update context draft")}return r.json()}async function sE(){const e=await fetch("/api/auth/status");if(!e.ok)throw new Error("Failed to query auth status");return e.json()}async function iE(e){const t=await fetch("/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({password:e})});if(t.ok)return g7(),{ok:!0};const n=await t.json().catch(()=>null);return t.status===429?{ok:!1,rateLimited:!0,retryAfterMs:typeof n?.retryAfterMs=="number"?n.retryAfterMs:void 0,error:n?.error||"Too many failed attempts. Please wait and try again."}:{ok:!1,error:n?.error||"Login failed"}}async function oE(){const e=await tr();await fetch("/api/auth/logout",{method:"POST",headers:{"X-XSRF-TOKEN":e}}),g7()}async function S7(){const e=await fetch("/api/terminal/agent-launchers");if(!e.ok)throw new Error("Failed to detect agent launchers");const t=await e.json();return Array.isArray(t?.agents)?t.agents:[]}async function aE(e,t){const n=new URLSearchParams({q:e}),r=await fetch(`/api/terminal/directory-suggestions?${n}`,{signal:t});if(!r.ok)throw new Error("Failed to suggest directories");const s=await r.json();return Array.isArray(s?.directories)?s.directories.filter(i=>typeof i=="string"):[]}async function lE(){const e=await fetch("/api/terminal/agent-hooks");if(!e.ok)throw new Error("Failed to get agent hooks");const t=await e.json();return Array.isArray(t?.agents)?t.agents:[]}async function cE(e){const t=await tr(),n=await fetch(`/api/terminal/agent-hooks/${encodeURIComponent(e)}/install`,{method:"POST",headers:{"X-XSRF-TOKEN":t}}),r=await n.json().catch(()=>({}));if(!n.ok)throw new Error(r.error||"Failed to install agent hooks");return{summary:r.summary??"Installed",devMode:r.devMode===!0}}async function uE(e){const t=await tr(),n=await fetch(`/api/terminal/agent-hooks/${encodeURIComponent(e)}/uninstall`,{method:"POST",headers:{"X-XSRF-TOKEN":t}}),r=await n.json().catch(()=>({}));if(!n.ok)throw new Error(r.error||"Failed to uninstall agent hooks");return r.summary??"Removed"}class E2 extends Error{constructor(t,n,r){super(t),this.code=n,this.migration=r,this.name="AgentPluginManifestError"}code;migration}async function dE(){const e=await fetch("/api/terminal/agent-plugins");if(!e.ok)throw new Error("Failed to get agent plugins");return await e.json()}async function fE(e){const t=await tr(),n=await fetch("/api/terminal/agent-plugins",{method:"POST",headers:{"Content-Type":"application/json","X-XSRF-TOKEN":t},body:JSON.stringify(e)}),r=await n.json().catch(()=>({}));if(!n.ok)throw new E2(r.error||"Failed to create agent plugin",r.code,r.migration);return r}async function hE(e){const t=await tr(),n=await fetch("/api/terminal/agent-plugins/install",{method:"POST",headers:{"Content-Type":"application/json","X-XSRF-TOKEN":t},body:JSON.stringify({source:e})}),r=await n.json().catch(()=>({}));if(!n.ok)throw new E2(r.error||"Failed to install agent plugin",r.code,r.migration);return r}async function pE(e){const t=await tr(),n=await fetch(`/api/terminal/agent-plugins/${encodeURIComponent(e)}/check-update`,{method:"POST",headers:{"X-XSRF-TOKEN":t}}),r=await n.json().catch(()=>({}));if(!n.ok)throw new Error(r.error||"Failed to check plugin updates");return r}async function mE(e){const t=await tr(),n=await fetch(`/api/terminal/agent-plugins/${encodeURIComponent(e)}/update`,{method:"POST",headers:{"X-XSRF-TOKEN":t}}),r=await n.json().catch(()=>({}));if(!n.ok)throw new Error(r.error||"Failed to update plugin");return r}async function gE(e){const t=await tr(),n=await fetch(`/api/terminal/agent-plugins/${encodeURIComponent(e)}/doctor`,{method:"POST",headers:{"X-XSRF-TOKEN":t}}),r=await n.json().catch(()=>({}));if(!n.ok)throw new Error(r.error||"Failed to diagnose plugin");return r}async function xE(e){const t=await tr(),n=await fetch(`/api/terminal/agent-plugins/${encodeURIComponent(e)}`,{method:"DELETE",headers:{"X-XSRF-TOKEN":t}});if(!n.ok){const r=await n.json().catch(()=>({}));throw new Error(r.error||"Failed to delete agent plugin")}}async function bE(e){const t=await tr(),n=await fetch(`/api/terminal/${encodeURIComponent(e)}/agent-resume`,{method:"POST",headers:{"X-XSRF-TOKEN":t}}),r=await n.json().catch(()=>({}));if(!n.ok)throw new pl(r.error||"Failed to resume agent session",n.status,typeof r.code=="string"?r.code:void 0);return{command:r.command??""}}async function D5(){const e=await fetch("/api/terminal/agent-resume-history",{method:"GET"});if(!e.ok)throw new Error("Failed to load Agent resume history");const t=await e.json().catch(()=>({entries:[]}));return Array.isArray(t.entries)?t.entries:[]}async function A7(e){const t=await tr(),n=await fetch(`/api/terminal/agent-resume-history/${encodeURIComponent(e)}/prepare`,{method:"POST",headers:{"X-XSRF-TOKEN":t}}),r=await n.json().catch(()=>({}));if(!n.ok)throw new pl(r.error||"Failed to prepare Agent session resume",n.status,typeof r.code=="string"?r.code:void 0);return r}async function yE(e){const t=await tr(),n=await fetch(`/api/terminal/agent-resume-history/${encodeURIComponent(e)}`,{method:"DELETE",headers:{"X-XSRF-TOKEN":t}});if(!n.ok&&n.status!==404)throw new Error("Failed to remove Agent resume history")}async function ud(e){const t=await tr(),n=await fetch("/api/terminal/program-rules",{method:"PUT",headers:{"Content-Type":"application/json","X-XSRF-TOKEN":t},body:JSON.stringify(e)});if(!n.ok){const r=await n.json().catch(()=>({error:"Failed to update program rules"}));throw new Error(r.error||"Failed to update program rules")}return n.json()}async function vE(){const e=await tr(),t=await fetch("/api/terminal/program-rules",{method:"DELETE",headers:{"X-XSRF-TOKEN":e}});if(!t.ok)throw new Error("Failed to reset program rules");return t.json()}async function wE(){const e=await fetch("/api/terminal/program-detection");if(!e.ok)throw new Error("Failed to get program detection config");return e.json()}async function j5(e){const t=await tr(),n=await fetch("/api/terminal/program-detection",{method:"PUT",headers:{"Content-Type":"application/json","X-XSRF-TOKEN":t},body:JSON.stringify(e)});if(!n.ok)throw new Error("Failed to save program detection config");return n.json()}async function SE(){const e=await tr(),t=await fetch("/api/terminal/program-detection",{method:"DELETE",headers:{"X-XSRF-TOKEN":e}});if(!t.ok)throw new Error("Failed to reset program detection config");return t.json()}const AE={".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".webp":"image/webp",".avif":"image/avif",".bmp":"image/bmp",".ico":"image/x-icon",".svg":"image/svg+xml"};function T7(e){const t=e.lastIndexOf(".");return t<0?null:AE[e.slice(t).toLowerCase()]??null}function I2(e){return T7(e)!==null}const TE={".mp4":"video/mp4",".m4v":"video/x-m4v",".webm":"video/webm",".mov":"video/quicktime",".ogv":"video/ogg",".mpeg":"video/mpeg",".mpg":"video/mpeg"};function C7(e){const t=e.lastIndexOf(".");return t<0?null:TE[e.slice(t).toLowerCase()]??null}function k7(e){return C7(e)!==null}function CE(e){return`/api/terminal/fs/video?path=${encodeURIComponent(e)}&action=view_file`}const kE=[".stl",".glb",".gltf"];function _7(e){const t=e.lastIndexOf(".");if(t<0)return null;const n=e.slice(t).toLowerCase();return kE.includes(n)?n:null}function L7(e){return _7(e)!==null}function E7(e){const t=e.toLowerCase();return t.endsWith(".kicad_sch")?".kicad_sch":t.endsWith(".kicad_pcb")?".kicad_pcb":null}function _E(e){return E7(e)!==null}function LE(e){return E7(e)===".kicad_pcb"?"pcb-front":"schematic"}const EE=[".html",".htm"];function Zh(e){const t=e.lastIndexOf(".");if(t<0)return!1;const n=e.slice(t).toLowerCase();return EE.includes(n)}function IE(e){return`/api/terminal/fs/preview/${e.split(/[\\/]+/).filter(Boolean).map(n=>encodeURIComponent(n)).join("/")}`}const RE={".stl":"model/stl",".glb":"model/gltf-binary",".gltf":"model/gltf+json"};async function I7(e,t,n,r="list_directory",s){const i=new URLSearchParams({path:e});n&&i.set("showHidden","true"),i.set("action",r),s&&i.set("requestSlotId",s);const l=await Ts(`/api/terminal/fs/list?${i}`,{signal:t},Jc,"Directory listing took too long. The folder may be on slow storage or blocked by another process.");if(!l.ok){const c=await l.json().catch(()=>({error:"Failed to list directory"}));throw new Error(c.error||"Failed to list directory")}return l.json()}async function NE(e,t,n,r,s,i="name",l){const c=new URLSearchParams({path:e,query:t,stream:"true"});s&&c.set("showHidden","true"),i==="content"&&c.set("mode","content"),l&&c.set("requestSlotId",l);const u=await fetch(`/api/terminal/fs/search?${c}`,{signal:r});if(!u.ok||!u.body){const v=await u.json().catch(()=>({error:"Failed to search files"}));throw new Error(v.error||"Failed to search files")}const h=u.body.getReader(),p=new TextDecoder;let g="";const y=v=>{if(!v.trim())return;const S=JSON.parse(v);if(S.type==="meta")n({path:S.path,query:S.query,engine:S.engine,mode:S.mode,limited:S.limited});else if(S.type==="batch")n({entries:S.entries??[]});else if(S.type==="content-batch")n({contentEntries:S.contentEntries??[]});else{if(S.type==="error")throw new Error(S.message||"Search failed");S.type==="done"&&n({total:S.total,truncated:S.truncated,limited:S.limited,engine:S.engine,mode:S.mode,done:!0})}};for(;;){const{value:v,done:S}=await h.read();if(S)break;g+=p.decode(v,{stream:!0});let A=g.indexOf(`
3
3
  `);for(;A>=0;)y(g.slice(0,A)),g=g.slice(A+1),A=g.indexOf(`
4
4
  `)}g+=p.decode(),y(g)}async function ME(e,t,n){const r=new URLSearchParams;r.set("roots",e.join("|"));const s=await fetch(`/api/terminal/fs/watch?${r}`,{signal:n});if(!s.ok||!s.body){const h=await s.json().catch(()=>({error:"Failed to watch files"}));throw new Error(h.error||"Failed to watch files")}const i=s.body.getReader(),l=new TextDecoder;let c="";const u=h=>{if(!h.trim())return;const p=JSON.parse(h);p.type==="events"&&p.events?.length&&t(p.events)};for(;;){const{value:h,done:p}=await i.read();if(p)break;c+=l.decode(h,{stream:!0});let g=c.indexOf(`
@@ -170,12 +170,12 @@ ${V.desc}`:""}`,"aria-pressed":T===V.key,onPointerEnter:()=>A(V.key),onPointerLe
170
170
  `:`
171
171
 
172
172
  `;return`${e}${r}${n}`}function nZ(e,t){const n=e.trim();return n?t?`${n}\r`:/\s$/.test(e)?e:`${n} `:""}const f2="termdock:right-sidebar:html-view-mode-by-file:v1";function rZ(e){return e==="preview"||e==="source"}function q9(e){return!e||typeof e!="object"||Array.isArray(e)?!1:Object.values(e).every(rZ)}function Y9(e,t){if(!t)return null;const n=e&&!t.startsWith("/")?`${e}/${t}`:t;return e?`${e}::${n}`:n}function J6(e,t){const n=Y9(e,t);return n?Br(f2,q9)?.[n]??"source":"source"}function sZ(e,t,n){const r=Y9(e,t);if(!r)return;const s=Br(f2,q9)??{};Hn(f2,{...s,[r]:n})}function Rx(e){const t=Number.isFinite(e)&&e>0?Math.floor(e):0,n=Math.floor(t/3600),r=Math.floor(t%3600/60),s=t%60,i=String(r).padStart(2,"0"),l=String(s).padStart(2,"0");return n>0?`${n}:${i}:${l}`:`${i}:${l}`}function iZ(e,t,n){return!Number.isFinite(n)||n<=0||!t.width?0:Math.min(1,Math.max(0,(e-t.left)/t.width))*n}const oZ=350,aZ=12,lZ=90;function cZ({url:e,onLoadError:t}){const{t:n}=Un(),r=b.useRef(null),s=b.useRef(null),i=b.useRef(null),l=b.useRef(null),c=b.useRef(!1),u=b.useRef(null),h=b.useRef(null),p=b.useRef(0),g=b.useRef(!1),y=b.useRef(!1),v=b.useRef(!1),S=b.useRef(null),A=b.useRef(null),T=b.useRef(!1),L=b.useRef(1),R=b.useRef(!1),[D,P]=b.useState(0),[O,M]=b.useState(0),[C,H]=b.useState(!1),[$,G]=b.useState(!1),[z,q]=b.useState(null),[se,xe]=b.useState(!1),[be,X]=b.useState(0),[J,K]=b.useState(!1),[V,ae]=b.useState({width:0,height:0}),ue=b.useCallback(()=>{S.current!==null&&(clearTimeout(S.current),S.current=null)},[]),pe=b.useCallback(()=>{if(ue(),A.current=null,!T.current)return!1;const Le=i.current;return Le&&(Le.playbackRate=L.current),T.current=!1,xe(!1),!0},[ue]);b.useEffect(()=>()=>{u.current!==null&&cancelAnimationFrame(u.current),h.current!==null&&clearTimeout(h.current),ue();const Le=i.current;Le&&T.current&&(Le.playbackRate=L.current)},[ue]),b.useEffect(()=>{const Le=s.current;if(!Le||typeof ResizeObserver>"u")return;const tt=new ResizeObserver(([mt])=>{mt&&ae({width:mt.contentRect.width,height:mt.contentRect.height})});return tt.observe(Le),()=>tt.disconnect()},[]),b.useEffect(()=>{const Le=()=>K(document.fullscreenElement===r.current);return document.addEventListener("fullscreenchange",Le),()=>document.removeEventListener("fullscreenchange",Le)},[]);const Ne=b.useCallback((Le,tt=!1)=>{const mt=i.current;if(!mt)return!1;const bt=Number.isFinite(mt.duration)?mt.duration:Le,rn=Math.min(Math.max(Le,0),bt);if(M(rn),Math.abs(mt.currentTime-rn)<1/120)return!1;const ln=mt.fastSeek;return tt&&typeof ln=="function"?ln.call(mt,rn):mt.currentTime=rn,!0},[]),he=b.useCallback(()=>{u.current===null&&(u.current=requestAnimationFrame(()=>{u.current=null;const Le=i.current;if(!Le||!g.current||y.current||Le.seeking)return;const tt=v.current;v.current=!1,y.current=Ne(p.current,!tt)}))},[Ne]),ve=b.useCallback(Le=>{const tt=l.current,mt=i.current;if(!tt||!mt)return;const bt=tt.getBoundingClientRect(),rn=iZ(Le,bt,mt.duration);p.current=rn,q(rn),v.current=!1,he(),h.current!==null&&clearTimeout(h.current),h.current=setTimeout(()=>{h.current=null,v.current=!0,he()},lZ)},[he]),Ie=b.useCallback(()=>{u.current!==null&&(cancelAnimationFrame(u.current),u.current=null),h.current!==null&&(clearTimeout(h.current),h.current=null),v.current=!1,y.current=!1,Ne(p.current)},[Ne]),oe=b.useCallback(Le=>{const tt=i.current;if(!(!tt||!Number.isFinite(tt.duration)||tt.duration<=0)){c.current=!tt.paused,tt.pause(),g.current=!0,G(!0);try{Le.currentTarget.setPointerCapture(Le.pointerId)}catch{}ve(Le.clientX)}},[ve]),We=b.useCallback(()=>{g.current=!1,Ie(),G(!1),q(null);const Le=i.current;Le&&c.current&&!Le.ended&&Le.play().catch(()=>{}),c.current=!1},[Ie]),ft=b.useCallback(()=>{const Le=i.current;if(Le){if(R.current){R.current=!1;return}Le.paused?Le.play().catch(()=>{}):Le.pause()}},[]),ot=b.useCallback(Le=>{const tt=i.current;!tt||tt.paused||Le.button!==0||(ue(),A.current={id:Le.pointerId,x:Le.clientX,y:Le.clientY},S.current=setTimeout(()=>{S.current=null,L.current=tt.playbackRate,tt.playbackRate=2,T.current=!0,xe(!0)},oZ))},[ue]),ke=b.useCallback(Le=>{const tt=A.current;!tt||tt.id!==Le.pointerId||T.current||Math.hypot(Le.clientX-tt.x,Le.clientY-tt.y)>aZ&&(ue(),A.current=null)},[ue]),Te=b.useCallback(()=>{pe()&&(R.current=!0)},[pe]);b.useEffect(()=>(window.addEventListener("pointerup",Te),window.addEventListener("pointercancel",Te),window.addEventListener("blur",Te),()=>{window.removeEventListener("pointerup",Te),window.removeEventListener("pointercancel",Te),window.removeEventListener("blur",Te)}),[Te]);const fe=b.useCallback(async()=>{const Le=r.current,tt=i.current;if(!(!Le||!tt))try{document.fullscreenElement===Le?await document.exitFullscreen():Le.requestFullscreen?await Le.requestFullscreen():tt.webkitEnterFullscreen?.()}catch{tt.webkitEnterFullscreen?.()}},[]),Oe=b.useCallback(()=>X(Le=>(Le+90)%360),[]),Ve=b.useCallback(Le=>{const tt=i.current;if(!tt||!Number.isFinite(tt.duration))return;const mt=Le.shiftKey?10:5;let bt=null;Le.key==="ArrowLeft"?bt=tt.currentTime-mt:Le.key==="ArrowRight"?bt=tt.currentTime+mt:Le.key==="Home"?bt=0:Le.key==="End"&&(bt=tt.duration),bt!==null&&(Le.preventDefault(),Ne(bt))},[Ne]),qe=$&&z!==null?z:O,de=D>0?Math.min(1,Math.max(0,qe/D)):0,Ye=(be===90||be===270)&&V.width>0&&V.height>0?{width:`${V.height}px`,height:`${V.width}px`}:{width:"100%",height:"100%"};return a.jsxs("div",{ref:r,className:"flex h-full min-h-0 flex-col overflow-hidden rounded-lg bg-background fullscreen:h-screen fullscreen:w-screen fullscreen:rounded-none","data-testid":"file-preview-video-player","data-rotation":be,children:[a.jsxs("div",{ref:s,className:"relative min-h-0 flex-1 overflow-hidden bg-background",children:[a.jsx("video",{ref:i,"data-testid":"file-preview-video",className:"absolute left-1/2 top-1/2 max-w-none object-contain transition-transform duration-200",style:{...Ye,transform:`translate(-50%, -50%) rotate(${be}deg)`},src:e,preload:"auto",playsInline:!0,onClick:ft,onPointerDown:ot,onPointerMove:ke,onPointerUp:Te,onPointerCancel:Te,onContextMenu:Le=>{T.current&&Le.preventDefault()},onPlay:()=>H(!0),onPause:()=>H(!1),onTimeUpdate:Le=>M(Le.currentTarget.currentTime),onSeeked:Le=>{const tt=Le.currentTarget;if(M(tt.currentTime),y.current=!1,!g.current)return;const mt=tt.requestVideoFrameCallback;typeof mt=="function"?mt.call(tt,()=>{g.current&&he()}):requestAnimationFrame(()=>{g.current&&he()})},onLoadedMetadata:Le=>P(Number.isFinite(Le.currentTarget.duration)?Le.currentTarget.duration:0),onDurationChange:Le=>P(Number.isFinite(Le.currentTarget.duration)?Le.currentTarget.duration:0),onError:t,children:n("rightSidebar.videoUnsupported")}),se&&a.jsx("div",{className:"pointer-events-none absolute left-1/2 top-3 z-10 -translate-x-1/2 rounded-full bg-surface-elevated px-3 py-1 text-xs font-semibold tabular-nums text-foreground shadow-md",children:n("rightSidebar.videoLongPressSpeed")}),$&&z!==null&&a.jsx("div",{className:"pointer-events-none absolute bottom-1 z-10 -translate-x-1/2 rounded-md bg-surface-elevated px-2 py-1 text-[11px] font-medium text-foreground shadow-md",style:{left:`${de*100}%`},"data-testid":"file-preview-video-scrub-time",children:Rx(z)})]}),a.jsx("div",{"data-testid":"file-preview-video-controls",className:`shrink-0 border-t border-border/60 bg-background px-2 py-1.5 ${GA}`,[WA]:"",children:a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("button",{type:"button",onClick:ft,"aria-label":n(C?"rightSidebar.videoPause":"rightSidebar.videoPlay"),title:n(C?"rightSidebar.videoPause":"rightSidebar.videoPlay"),className:"inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-full text-foreground transition hover:bg-surface-elevated active:scale-95","data-testid":"file-preview-video-play",children:C?a.jsx(RN,{size:14}):a.jsx(X7,{size:14})}),a.jsxs("div",{ref:l,role:"slider","aria-label":"Seek","aria-valuemin":0,"aria-valuemax":Math.floor(D),"aria-valuenow":Math.floor(qe),tabIndex:0,className:"group relative h-5 min-w-0 flex-1 cursor-pointer touch-none py-2","data-testid":"file-preview-video-track",onPointerDown:oe,onPointerMove:Le=>{$&&ve(Le.clientX)},onPointerUp:We,onPointerCancel:We,onKeyDown:Ve,children:[a.jsx("div",{className:"h-1 w-full rounded-full bg-surface-elevated"}),a.jsx("div",{className:"absolute inset-y-0 left-0 my-auto h-1 rounded-full bg-primary",style:{width:`${de*100}%`}}),a.jsx("div",{className:"absolute top-1/2 h-3 w-3 -translate-x-1/2 -translate-y-1/2 rounded-full bg-primary shadow",style:{left:`${de*100}%`}})]}),a.jsxs("div",{className:"shrink-0 text-[11px] tabular-nums text-muted-foreground","data-testid":"file-preview-video-time",children:[Rx(qe)," / ",Rx(D)]}),a.jsx("button",{type:"button",onClick:Oe,"aria-label":n("rightSidebar.videoRotate"),title:n("rightSidebar.videoRotate"),className:"inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-full text-foreground transition hover:bg-surface-elevated active:scale-95","data-testid":"file-preview-video-rotate",children:a.jsx(GN,{size:14})}),a.jsx("button",{type:"button",onClick:()=>{fe()},"aria-label":n(J?"rightSidebar.videoFullscreenExit":"rightSidebar.videoFullscreenEnter"),title:n(J?"rightSidebar.videoFullscreenExit":"rightSidebar.videoFullscreenEnter"),className:"inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-full text-foreground transition hover:bg-surface-elevated active:scale-95","data-testid":"file-preview-video-fullscreen",children:J?a.jsx(yN,{size:14}):a.jsx(pN,{size:14})})]})})]})}function uZ(e){const t=Math.max(0,Math.min(100,e.xPercent)),n=Math.max(0,Math.min(100,e.yPercent));return{...t<=50?{left:`calc(${t}% + 8px)`}:{right:`calc(${100-t}% + 8px)`},...n<=50?{top:`calc(${n}% + 8px)`}:{bottom:`calc(${100-n}% + 8px)`}}}function Ag({anchor:e,children:t,disabled:n=!1,onClick:r,title:s}){return a.jsxs("button",{type:"button","data-floating-annotation-button":!0,disabled:n,onClick:i=>{i.stopPropagation(),r()},title:s,style:uZ(e),className:"absolute z-30 inline-flex h-7 items-center gap-1 rounded-full bg-primary px-3 text-[11px] font-semibold text-primary-foreground shadow-lg ring-1 ring-primary/30 transition hover:bg-primary/90 active:scale-95 disabled:cursor-wait disabled:opacity-50",children:[a.jsx(xl,{size:11}),t]})}function dZ(e,t,n,r){if(n.width<=0||n.height<=0||r.width<=0||r.height<=0)return null;const s=Math.min(n.width/r.width,n.height/r.height);if(!Number.isFinite(s)||s<=0)return null;const i=r.width*s,l=r.height*s,c=n.left+(n.width-i)/2,u=n.top+(n.height-l)/2,h=e-c,p=t-u;if(h<0||p<0||h>i||p>l)return null;const g=h/i*100,y=p/l*100;return{x:r.x+r.width*g/100,y:r.y+r.height*y/100,xPercent:g,yPercent:y}}function fZ(e,t,n){const r=[`SVG标注: ${e}`,`视图: ${t}`,`SVG坐标: (${n.x.toFixed(2)},${n.y.toFixed(2)}) [viewBox坐标]`,`图片位置: (${n.xPercent.toFixed(1)}%,${n.yPercent.toFixed(1)}%) [相对内容边界左上角]`];return n.nearestText&&r.push(`最近文字: ${n.nearestText}`),`"${r.join(" / ")}"`}function hZ(e){const t=new DOMParser().parseFromString(e,"image/svg+xml"),n=t.documentElement;if(n.nodeName.toLowerCase()!=="svg"||t.querySelector("parsererror"))throw new Error("Invalid SVG document");return t.querySelectorAll("script,foreignObject,iframe,object,embed").forEach(r=>r.remove()),t.querySelectorAll("*").forEach(r=>{for(const s of Array.from(r.attributes)){const i=s.name.toLowerCase(),l=s.value.trim();(i.startsWith("on")||(i==="href"||i.endsWith(":href"))&&l&&!l.startsWith("#"))&&r.removeAttribute(s.name)}}),n.removeAttribute("width"),n.removeAttribute("height"),n.setAttribute("preserveAspectRatio","xMidYMid meet"),new XMLSerializer().serializeToString(n)}function pZ(e,t,n){let r=null;for(const s of Array.from(e.querySelectorAll("text"))){const i=(s.textContent??"").replace(/\s+/g," ").trim();if(!i)continue;const l=Number(s.getAttribute("x")),c=Number(s.getAttribute("y"));if(!Number.isFinite(l)||!Number.isFinite(c))continue;const u=Math.hypot(l-t,c-n);(!r||u<r.distance)&&(r={text:i,distance:u})}return r?.text.slice(0,120)}function K9({blobUrl:e,filePath:t,viewLabel:n,onInsertAnnotation:r}){const s=b.useRef(null),i=b.useRef(null),[l,c]=b.useState(null),[u,h]=b.useState(null),[p,g]=b.useState(1),[y,v]=b.useState(!1),[S,A]=b.useState(null),T=b.useRef(new Map),L=b.useRef(null),R=b.useRef(!1),D=b.useRef(null),P=b.useRef(p);P.current=p,b.useEffect(()=>{const J=new AbortController;return c(null),h(null),A(null),g(1),fetch(e,{signal:J.signal}).then(K=>K.text()).then(K=>c(hZ(K))).catch(K=>{J.signal.aborted||h(K instanceof Error?K.message:"SVG preview failed")}),()=>J.abort()},[e]),b.useEffect(()=>{if(!y)return;const J=K=>{K.key==="Escape"&&v(!1)};return window.addEventListener("keydown",J),()=>window.removeEventListener("keydown",J)},[y]),b.useLayoutEffect(()=>{const J=i.current,K=J?.querySelector("[data-svg-document] > svg");if(!J||!K)return;let V;try{V=K.getBBox()}catch{return}if(!V.width||!V.height)return;const ae=Math.max(2,Math.min(V.width,V.height)*.025);K.setAttribute("viewBox",`${V.x-ae} ${V.y-ae} ${V.width+2*ae} ${V.height+2*ae}`),K.style.width=`${p*100}%`,K.style.height=`${p*100}%`,K.style.minWidth=`${p*100}%`,K.style.minHeight=`${p*100}%`,K.style.display="block"},[l,p]);const O=b.useMemo(()=>S?fZ(t,n,S):null,[t,S,n]),M=J=>{if(R.current){R.current=!1;return}const K=i.current,V=K?.querySelector("[data-svg-document] > svg"),ae=s.current;if(!K||!V||!ae)return;const ue=V.viewBox.baseVal,pe=dZ(J.clientX,J.clientY,V.getBoundingClientRect(),ue);if(!pe)return;const Ne=ae.getBoundingClientRect();A({...pe,nearestText:pZ(V,pe.x,pe.y),stageX:J.clientX-Ne.left,stageY:J.clientY-Ne.top,stageXPercent:(J.clientX-Ne.left)/Ne.width*100,stageYPercent:(J.clientY-Ne.top)/Ne.height*100})},C=J=>Math.max(1,Math.min(12,J)),H=(J,K)=>{const V=C(K),ae=J.querySelector("[data-svg-document] > svg");if(!ae)return V;const ue=`${V*100}%`;return ae.style.width=ue,ae.style.height=ue,ae.style.minWidth=ue,ae.style.minHeight=ue,P.current=V,V},$=(J,K,V,ae)=>{const ue=P.current,pe=J.getBoundingClientRect(),Ne=V-pe.left,he=ae-pe.top,ve=(J.scrollLeft+Ne)/ue,Ie=(J.scrollTop+he)/ue,oe=H(J,K);return J.scrollLeft=ve*oe-Ne,J.scrollTop=Ie*oe-he,oe},G=()=>{const J=Array.from(T.current.values());return J.length>=2?Math.hypot(J[0].x-J[1].x,J[0].y-J[1].y):0},z=J=>{if(J.pointerType==="mouse"&&J.button!==0)return;const K=i.current;K&&(T.current.set(J.pointerId,{x:J.clientX,y:J.clientY}),K.setPointerCapture?.(J.pointerId),T.current.size>=2?(L.current={kind:"pinch",startX:J.clientX,startY:J.clientY,startScrollLeft:K.scrollLeft,startScrollTop:K.scrollTop,startDistance:G(),startZoom:P.current,moved:!1},R.current=!0):P.current>1&&(L.current={kind:"pan",startX:J.clientX,startY:J.clientY,startScrollLeft:K.scrollLeft,startScrollTop:K.scrollTop,startZoom:P.current,moved:!1}))},q=J=>{if(!T.current.has(J.pointerId))return;T.current.set(J.pointerId,{x:J.clientX,y:J.clientY});const K=i.current,V=L.current;if(!(!K||!V)){if(T.current.size>=2&&V.kind==="pinch"){const ae=G();if(!V.startDistance||!ae)return;const ue=C(V.startZoom*ae/V.startDistance);if(Math.abs(ue-P.current)<.01)return;const pe=Array.from(T.current.values()),Ne=(pe[0].x+pe[1].x)/2,he=(pe[0].y+pe[1].y)/2;V.moved=!0,R.current=!0,$(K,ue,Ne,he),J.preventDefault();return}if(V.kind==="pan"&&T.current.size===1){const ae=J.clientX-V.startX,ue=J.clientY-V.startY;if(!V.moved&&Math.hypot(ae,ue)<6)return;V.moved=!0,R.current=!0,K.scrollLeft=V.startScrollLeft-ae,K.scrollTop=V.startScrollTop-ue,J.preventDefault()}}},se=J=>{const K=i.current,V=L.current,ae=T.current.size===1&&!V?.moved;T.current.delete(J.pointerId);try{K?.releasePointerCapture?.(J.pointerId)}catch{}if(T.current.size===1&&V?.kind==="pinch"){const Ne=Array.from(T.current.values())[0];L.current=K?{kind:"pan",startX:Ne.x,startY:Ne.y,startScrollLeft:K.scrollLeft,startScrollTop:K.scrollTop,startZoom:P.current,moved:!1}:null;return}if(T.current.size>0||(L.current=null,V?.kind==="pinch"&&g(P.current),!ae||R.current))return;const ue=Date.now(),pe=D.current;pe&&ue-pe.time<350&&Math.hypot(J.clientX-pe.x,J.clientY-pe.y)<24?(D.current=null,R.current=!0,g(Ne=>Ne>1?1:2.5)):D.current={time:ue,x:J.clientX,y:J.clientY}},xe=J=>{if(!J.ctrlKey&&!J.metaKey)return;const K=i.current;if(!K)return;J.preventDefault();const V=$(K,P.current*Math.exp(-J.deltaY*.01),J.clientX,J.clientY);g(V)},be=()=>{g(1),P.current=1,i.current&&(i.current.scrollLeft=0,i.current.scrollTop=0)},X=a.jsxs("div",{className:y?"fixed inset-0 z-modal-panel flex min-h-0 flex-col bg-surface pt-[env(safe-area-inset-top,0px)]":"flex h-full min-h-0 flex-col bg-surface",children:[a.jsxs("div",{ref:s,className:"relative min-h-0 flex-1",children:[a.jsx("div",{ref:i,role:"button",tabIndex:0,onClick:M,onDoubleClick:J=>{J.preventDefault(),g(K=>K>1?1:2.5)},onPointerDown:z,onPointerMove:q,onPointerUp:se,onPointerCancel:se,onWheel:xe,onScroll:()=>A(null),className:"h-full touch-none cursor-crosshair overflow-auto bg-white p-3 text-slate-900",children:u?a.jsx("div",{className:"p-4 text-sm text-destructive",children:u}):l?a.jsx("div",{"data-svg-document":!0,className:"h-full min-h-[240px] w-full",dangerouslySetInnerHTML:{__html:l}}):a.jsx("div",{className:"p-4 text-sm text-muted-foreground",children:"Loading SVG…"})}),S&&a.jsx("span",{"data-svg-pick-marker":!0,className:"pointer-events-none absolute z-10 h-4 w-4 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-primary bg-white shadow-sm",style:{left:S.stageX,top:S.stageY}}),S&&O&&a.jsx(Ag,{anchor:{xPercent:S.stageXPercent,yPercent:S.stageYPercent},title:"引用 SVG 标注",onClick:()=>{r?.(O,`svg:${S.x.toFixed(2)}:${S.y.toFixed(2)}`),A(null)},children:"引用 SVG 标注"}),a.jsxs("div",{"data-svg-toolbar":!0,className:"absolute right-2 top-2 z-20 flex gap-1",children:[p>1.001&&a.jsx("button",{type:"button","aria-label":"适合窗口",title:"适合窗口",onClick:J=>{J.stopPropagation(),be()},className:"inline-flex h-9 w-9 items-center justify-center rounded-full border border-slate-200 bg-white/95 text-slate-600 shadow-sm backdrop-blur transition active:scale-95",children:a.jsx(qN,{size:14})}),a.jsx("button",{type:"button","aria-label":y?"退出全屏 SVG":"全屏 SVG",title:y?"退出全屏 SVG":"全屏 SVG",onClick:J=>{J.stopPropagation(),v(K=>!K)},className:"inline-flex h-9 w-9 items-center justify-center rounded-full border border-slate-200 bg-white/95 text-slate-600 shadow-sm backdrop-blur transition active:scale-95",children:y?a.jsx(Y7,{size:14}):a.jsx(q7,{size:14})})]})]}),a.jsx("div",{className:"flex shrink-0 items-center justify-between gap-3 border-t border-border/15 px-3 py-2",children:a.jsx("span",{className:"min-w-0 truncate text-[11px] text-muted-foreground",children:S?`SVG (${S.x.toFixed(2)}, ${S.y.toFixed(2)}) · ${S.nearestText??"附近无文字"}`:"点击 SVG 的问题位置生成精确引用"})})]});return y?qa.createPortal(X,document.body):X}function am(e){switch(e){case"schematic":return"原理图第1页";case"pcb-front":return"PCB正面";case"pcb-back":return"PCB背面(镜像)";case"pcb-3d":return"PCB 3D正面"}}function mZ(e,t,n,r){const s=[`电子标注: ${e}`,`视图: ${am(t)}`,`图片位置: (${n.xPercent.toFixed(1)}%,${n.yPercent.toFixed(1)}%) [相对渲染图左上角]`];if(r?.available&&r.xMm!==void 0&&r.yMm!==void 0&&(s.push(`PCB坐标: (${r.xMm.toFixed(2)},${r.yMm.toFixed(2)})mm [KiCad板坐标]`),r.layer&&s.push(`显示层: ${r.layer}`),r.nearest)){const i=[r.nearest.net?`网络 ${r.nearest.net}`:null,`对象层 ${r.nearest.layer}`,`距离 ${r.nearest.distanceMm.toFixed(2)}mm`].filter(Boolean).join(",");s.push(`最近对象: ${r.nearest.label}${i?`(${i})`:""}`)}return`"${s.join(" / ")}"`}function gZ({blobUrl:e,filePath:t,view:n,board:r,onViewChange:s,onInsertAnnotation:i,onRefresh:l,interactive3d:c}){const{t:u}=Un(),h=b.useRef(null),p=b.useRef(null),g=b.useRef(null),[y,v]=b.useState(null),[S,A]=b.useState(!1);b.useEffect(()=>(g.current?.abort(),v(null),A(!1),()=>g.current?.abort()),[e,n]);const T=b.useMemo(()=>y?mZ(t,n,y,y.inspection):null,[t,y,n]),L=D=>{const P=h.current,O=p.current;if(!P||!O||!O.naturalWidth||!O.naturalHeight)return;const M=P.getBoundingClientRect(),C=Math.min(M.width/O.naturalWidth,M.height/O.naturalHeight),H=O.naturalWidth*C,$=O.naturalHeight*C,G=M.left+(M.width-H)/2,z=M.top+(M.height-$)/2,q=D.clientX-G,se=D.clientY-z;if(q<0||se<0||q>H||se>$)return;const xe={xPercent:Math.max(0,Math.min(100,q/H*100)),yPercent:Math.max(0,Math.min(100,se/$*100)),stageXPercent:(D.clientX-M.left)/M.width*100,stageYPercent:(D.clientY-M.top)/M.height*100,inspecting:r&&n!=="pcb-3d"};if(v(xe),g.current?.abort(),!xe.inspecting)return;const be=new AbortController;g.current=be,PE(t,n,xe.xPercent,xe.yPercent,be.signal).then(X=>v(J=>J===xe?{...J,inspection:X,inspecting:!1}:J)).catch(()=>{be.signal.aborted||v(X=>X===xe?{...X,inspection:{available:!1},inspecting:!1}:X)})},R=r?["pcb-front","pcb-back","pcb-3d"]:["schematic"];return a.jsxs("div",{className:"flex h-full min-h-0 flex-col bg-surface",children:[a.jsxs("div",{className:"flex shrink-0 items-center gap-1 border-b border-border/15 px-3 py-2",children:[a.jsx("div",{className:"flex min-w-0 flex-1 items-center gap-1 overflow-x-auto",children:R.map(D=>a.jsx("button",{type:"button",onClick:()=>s(D),className:`h-8 shrink-0 rounded-full px-3 text-xs font-semibold transition active:scale-95 ${D===n?"bg-primary/15 text-primary":"bg-surface-2 text-muted-foreground hover:bg-surface-elevated hover:text-foreground"}`,children:am(D)},D))}),a.jsx("button",{type:"button",onClick:l,className:"inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-surface-2 text-muted-foreground transition hover:bg-surface-elevated hover:text-foreground active:scale-95",title:u("rightSidebar.edaRefresh"),"aria-label":u("rightSidebar.edaRefresh"),children:a.jsx(Zi,{size:13})})]}),r&&c?a.jsx("div",{className:n==="pcb-3d"?"flex min-h-0 flex-1 flex-col overflow-hidden":"hidden",children:c}):null,r?n==="pcb-3d"?c?null:a.jsx("div",{className:"min-h-0 flex-1"}):a.jsxs(a.Fragment,{children:[a.jsxs("div",{ref:h,role:"button",tabIndex:0,onClick:L,onKeyDown:D=>{D.key!=="Enter"&&D.key!==" "||(D.preventDefault(),v({xPercent:50,yPercent:50,stageXPercent:50,stageYPercent:50}))},className:"relative min-h-0 flex-1 cursor-crosshair overflow-hidden bg-surface p-3 outline-none",title:u("rightSidebar.edaPickHint"),children:[a.jsx("img",{ref:p,src:e,alt:`${t} ${am(n)}`,onLoad:()=>A(!0),className:`pointer-events-none h-full w-full object-contain transition-opacity ${S?"opacity-100":"opacity-0"}`}),y&&a.jsx("span",{className:"pointer-events-none absolute h-4 w-4 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-primary bg-surface shadow-sm",style:{left:`${y.stageXPercent}%`,top:`${y.stageYPercent}%`}}),y&&T&&a.jsx(Ag,{anchor:{xPercent:y.stageXPercent,yPercent:y.stageYPercent},disabled:y.inspecting,title:u("rightSidebar.edaInsertAnnotation"),onClick:()=>{i?.(T,`eda:${n}:${y.xPercent.toFixed(1)}:${y.yPercent.toFixed(1)}`),v(null)},children:u("rightSidebar.edaInsertAnnotation")})]}),a.jsx("div",{className:"flex shrink-0 items-center justify-between gap-3 border-t border-border/15 px-3 py-2",children:a.jsx("span",{className:"min-w-0 truncate text-[11px] text-muted-foreground",children:y?y.inspecting?u("rightSidebar.edaInspecting"):y.inspection?.available?u("rightSidebar.edaPickedBoardPosition",{x:y.inspection.xMm?.toFixed(2)??"—",y:y.inspection.yMm?.toFixed(2)??"—",object:y.inspection.nearest?.label??u("rightSidebar.edaNoNearbyObject")}):u("rightSidebar.edaPickedPosition",{x:y.xPercent.toFixed(1),y:y.yPercent.toFixed(1)}):u("rightSidebar.edaPickHint")})})]}):a.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:a.jsx(K9,{blobUrl:e,filePath:t,viewLabel:am(n),onInsertAnnotation:i})})]})}function xZ(e){const t=[];let n=[],r="",s=!1;for(let i=0;i<e.length;i+=1){const l=e[i];s?l==='"'&&e[i+1]==='"'?(r+='"',i+=1):l==='"'?s=!1:r+=l:l==='"'?s=!0:l===","?(n.push(r),r=""):l===`
173
- `?(n.push(r.replace(/\r$/,"")),t.push(n),n=[],r=""):r+=l}return(r||n.length>0)&&(n.push(r.replace(/\r$/,"")),t.push(n)),t}function bZ(e,t,n,r,s){const i=t[s]||`第${s+1}列`,l=n[s]??"",c=t.map((u,h)=>`${u||`第${h+1}列`}=${n[h]??""}`).join(";");return`"表格标注: ${e} / 数据行: ${r+1} / 列: ${i} / 值: ${l} / 记录: ${c}"`}function yZ({content:e,filePath:t,onInsertAnnotation:n}){const{t:r}=Un(),s=b.useMemo(()=>xZ(e),[e]),i=s[0]??[],l=s.slice(1),c=b.useRef(null),[u,h]=b.useState(null),p=u?l[u.row]:null,g=u&&p?bZ(t,i,p,u.row+1,u.column):null;return a.jsxs("div",{className:"flex min-h-0 flex-1 flex-col bg-surface",children:[a.jsxs("div",{ref:c,className:"relative min-h-0 flex-1",children:[a.jsx("div",{className:"h-full overflow-auto",children:a.jsxs("table",{className:"min-w-full border-separate border-spacing-0 text-left text-xs",children:[a.jsx("thead",{children:a.jsxs("tr",{children:[a.jsx("th",{className:"sticky left-0 top-0 z-20 border-b border-r border-border/20 bg-surface-elevated px-2 py-2 text-[10px] font-semibold text-muted-foreground",children:"#"}),i.map((y,v)=>a.jsx("th",{className:"sticky top-0 z-10 min-w-28 border-b border-r border-border/20 bg-surface-elevated px-3 py-2 font-semibold text-foreground",children:y||r("rightSidebar.csvUnnamedColumn",{index:v+1})},`${y}:${v}`))]})}),a.jsx("tbody",{children:l.map((y,v)=>a.jsxs("tr",{className:"hover:bg-surface-2",children:[a.jsx("th",{className:"sticky left-0 z-10 border-b border-r border-border/15 bg-surface px-2 py-2 text-right text-[10px] font-normal text-muted-foreground",children:v+1}),i.map((S,A)=>{const T=u?.row===v&&u.column===A;return a.jsx("td",{className:`border-b border-r border-border/15 p-0 ${T?"bg-primary/15":""}`,children:a.jsx("button",{type:"button",onClick:L=>{const R=c.current?.getBoundingClientRect(),D=L.currentTarget.getBoundingClientRect();if(!R?.width||!R.height)return;const P=L.clientX||D.left+D.width/2,O=L.clientY||D.top+D.height/2;h({row:v,column:A,xPercent:(P-R.left)/R.width*100,yPercent:(O-R.top)/R.height*100})},className:"block h-full min-h-9 w-full whitespace-pre-wrap px-3 py-2 text-left text-foreground outline-none hover:bg-primary/10 focus-visible:bg-primary/10",children:y[A]||" "})},`cell:${v}:${A}`)})]},`row:${v}`))})]})}),u&&g&&a.jsx(Ag,{anchor:{xPercent:u.xPercent,yPercent:u.yPercent},title:r("rightSidebar.csvInsertAnnotation"),onClick:()=>{n?.(g,`csv:${t}:${u.row+1}:${u.column+1}`),h(null)},children:r("rightSidebar.csvInsertAnnotation")})]}),a.jsx("div",{className:"flex shrink-0 items-center justify-between gap-3 border-t border-border/15 px-3 py-2",children:a.jsx("span",{className:"min-w-0 truncate text-[11px] text-muted-foreground",children:u&&p?r("rightSidebar.csvSelectedCell",{row:u.row+1,column:i[u.column]||u.column+1}):r("rightSidebar.csvPickHint",{rows:l.length,columns:i.length})})})]})}function Sd(e,t){let n=e;for(const r of t){if(!n||typeof n!="object")return;n=n[r]}return n}function vZ(e,t){const n=JSON.parse(e),r=Sd(n,["meta","version"]);if(t)return[{label:"文件性质",value:"KiCad 本机界面状态,不属于电气设计源文件"},{label:"格式版本",value:String(r??"未知")},{label:"活动层编号",value:String(Sd(n,["board","active_layer"])??"未知")},{label:"可见层掩码",value:String(Sd(n,["board","visible_layers"])??"未知")},{label:"Git 集成",value:Sd(n,["git","integration_disabled"])===!0?"已禁用":"未禁用"}];const s=Sd(n,["net_settings","classes"]),i=Array.isArray(s)?s.find(c=>c&&typeof c=="object"&&c.name==="Default"):void 0,l=Sd(n,["board","design_settings","drc_exclusions"]);return[{label:"文件性质",value:"KiCad 工程配置"},{label:"格式版本",value:String(r??"未知")},{label:"网络类数量",value:String(Array.isArray(s)?s.length:0)},{label:"默认间距",value:i?.clearance!==void 0?`${i.clearance} mm`:"未设置"},{label:"默认线宽",value:i?.track_width!==void 0?`${i.track_width} mm`:"未设置"},{label:"默认过孔",value:i?.via_diameter!==void 0?`${i.via_diameter} / ${i.via_drill??"—"} mm(外径/钻孔)`:"未设置"},{label:"DRC 排除项",value:String(Array.isArray(l)?l.length:0)}]}function wZ(e,t){return`"KiCad项目标注: ${e} / 项: ${t.label} / 值: ${t.value}"`}function SZ({content:e,filePath:t,localState:n,onInsertAnnotation:r}){const{t:s}=Un(),i=b.useRef(null),[l,c]=b.useState(null),u=b.useMemo(()=>{try{return{items:vZ(e,n),error:null}}catch(p){return{items:[],error:p instanceof Error?p.message:String(p)}}},[e,n]),h=l===null?null:u.items[l.index];return u.error?a.jsx("pre",{className:"min-h-0 flex-1 overflow-auto whitespace-pre-wrap p-3 font-mono text-xs text-foreground",children:e}):a.jsxs("div",{className:"flex min-h-0 flex-1 flex-col bg-surface",children:[n&&a.jsx("div",{className:"border-b border-[color:var(--warning)]/20 bg-[color:var(--warning)]/5 px-3 py-2 text-xs text-[color:var(--warning)]",children:s("rightSidebar.kicadLocalStateNotice")}),a.jsxs("div",{ref:i,className:"relative min-h-0 flex-1",children:[a.jsxs("div",{className:"h-full overflow-auto px-3 py-2",children:[a.jsx("div",{className:"divide-y divide-border/15",children:u.items.map((p,g)=>a.jsxs("button",{type:"button",onClick:y=>{const v=i.current?.getBoundingClientRect(),S=y.currentTarget.getBoundingClientRect();if(!v?.width||!v.height)return;const A=y.clientX||S.left+S.width/2,T=y.clientY||S.top+S.height/2;c({index:g,xPercent:(A-v.left)/v.width*100,yPercent:(T-v.top)/v.height*100})},className:`grid w-full grid-cols-[minmax(7rem,0.8fr)_minmax(0,1.4fr)] gap-3 px-2 py-3 text-left transition hover:bg-surface-2 ${l?.index===g?"bg-primary/10":""}`,children:[a.jsx("span",{className:"text-xs font-semibold text-muted-foreground",children:p.label}),a.jsx("span",{className:"break-words text-xs text-foreground",children:p.value})]},p.label))}),a.jsxs("details",{className:"mt-3 border-t border-border/15 pt-3",children:[a.jsx("summary",{className:"cursor-pointer text-xs font-semibold text-muted-foreground",children:s("rightSidebar.kicadShowRawJson")}),a.jsx("pre",{className:"mt-2 overflow-auto whitespace-pre p-2 font-mono text-[10px] leading-relaxed text-foreground",children:e})]})]}),h&&l&&a.jsx(Ag,{anchor:{xPercent:l.xPercent,yPercent:l.yPercent},title:s("rightSidebar.kicadInsertSetting"),onClick:()=>{r?.(wZ(t,h),`kicad-project:${t}:${h.label}`),c(null)},children:s("rightSidebar.kicadInsertSetting")})]}),a.jsx("div",{className:"flex shrink-0 items-center justify-between gap-3 border-t border-border/15 px-3 py-2",children:a.jsx("span",{className:"min-w-0 truncate text-[11px] text-muted-foreground",children:h?`${h.label}: ${h.value}`:s("rightSidebar.kicadProjectPickHint")})})]})}const By="termdock:right-sidebar:file-tree-scroll:v1",Fy="termdock:right-sidebar:file-preview-reading-state:v1",yf="termdock:right-sidebar:file-tree-width:v1",X9="termdock:right-sidebar:markdown-view-mode:v1",Z9="termdock:right-sidebar:diff-change-list-mode:v1",J9="termdock:right-sidebar:diff-wrap:v1",eT="termdock:diff-viewer:view-type:v1",tT="termdock:right-sidebar:file-search-mode:v1",Nx="termdock:right-sidebar:collapsed-git-repo-groups:v1",e4="termdock:right-sidebar:collapsed-diff-directories:v1",Mx="termdock:right-sidebar:branch-audit-module-open:v1",nT="termdock:right-sidebar:branch-audit-module:v1",AZ=150,rT="termdock:right-sidebar:active-git-repo:v1",t4="termdock:right-sidebar:context-draft-enabled:v1",n4="termdock:right-sidebar:context-draft-collapsed:v1",r4="termdock:right-sidebar:context-draft-auto-collapse:v1",Dx="termdock:right-sidebar:context-draft-text:v1",TZ=300,CZ=20,kZ=120,_Z=250,LZ=250,EZ=120,IZ=700,jx=600,s4=[2e3,5e3,15e3,3e4],RZ=320,NZ=500,MZ=20,DZ=12e3,h2=300,i4=240,jZ=560,PZ=600,sT="border-r px-2 py-1.5 sm:px-3 sm:py-2",Um="max-w-[18rem] whitespace-normal break-words sm:max-w-[27rem]",iT=`${sT} border-b border-border/15 font-semibold last:border-r-0`,oT=`${sT} border-border/10 align-top text-muted-foreground last:border-r-0`,Oy="termdock-file-preview-horizontal-scroll",o4=b.lazy(()=>i0(()=>import("./ModelPreview-Drqv0OTg.js"),__vite__mapDeps([2,3,1,4]))),aT=`${Oy} termdock-md-table-scroll max-w-full overflow-x-auto overflow-y-hidden rounded-lg border border-border/20 bg-surface`,BZ=new Set([".md",".markdown",".mdown",".mkdn",".mkd"]);function FZ(e){return e==="preview"||e==="source"}function OZ(e){return e==="list"||e==="tree"||e==="ai"}function a4(){return Br(X9,FZ)??"preview"}function QZ(){return Br(Z9,OZ)??"tree"}function vf(e){return typeof e=="boolean"}function $Z(e){return typeof e=="string"}function HZ(){return Br(J9,vf)??!0}function UZ(e){return e==="unified"||e==="split"}function zZ(){return Br(eT,UZ)??"unified"}function GZ(e){return e==="name"||e==="content"||e==="regex"}function WZ(){return Br(tT,GZ)??"name"}function VZ(e){return e.repositories??(e.context?.root?[{id:e.context.root,root:e.context.root,relativeRoot:".",name:Io(e.context.root)||e.context.root,depth:0,nested:!1,available:e.available,files:e.files,context:e.context,error:e.error}]:[])}function qZ(e){return!!e&&typeof e=="object"&&!Array.isArray(e)&&Object.values(e).every(t=>t===null||typeof t=="string")}function lT(){return Br(rT,qZ)??{}}function l4(e){if(!e)return;const t=lT();return Object.prototype.hasOwnProperty.call(t,e)?t[e]:void 0}function Px(e,t){e&&Hn(rT,{...lT(),[e]:t})}function YZ(e,t){if(!t)return null;const n=new Set((e.repoFilters??[]).map(r=>r.root));return n.has(t)?t:n.size>0?null:(e.repositories??[]).some(r=>r.root===t)?t:null}function p2(e){return Array.isArray(e)&&e.every(t=>typeof t=="string")}function c4(e){const t=Br(e,p2);return t?new Set(t):new Set}function Bx(e,t){Hn(e,[...t])}function KZ(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;const t=e;return typeof t.filePath=="string"&&typeof t.hunkHeader=="string"&&typeof t.hunkIndex=="number"&&typeof t.fingerprint=="string"&&typeof t.additions=="number"&&typeof t.deletions=="number"&&typeof t.diff=="string"&&(t.oldPath===void 0||t.oldPath===null||typeof t.oldPath=="string")&&(t.newPath===void 0||t.newPath===null||typeof t.newPath=="string")&&(t.source===void 0||t.source==="committed"||t.source==="uncommitted"||t.source==="unknown")&&(t.commit===void 0||t.commit===null||typeof t.commit=="string")}function XZ(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;const t=e;return typeof t.available=="boolean"&&(t.repoRoot===void 0||typeof t.repoRoot=="string")&&(t.workspaceRoot===void 0||typeof t.workspaceRoot=="string")&&(t.baseRef===void 0||typeof t.baseRef=="string")&&(t.baseBranch===void 0||typeof t.baseBranch=="string")&&(t.currentBranch===void 0||t.currentBranch===null||typeof t.currentBranch=="string")&&(t.headRef===void 0||t.headRef===null||typeof t.headRef=="string")&&(t.diffFingerprint===void 0||typeof t.diffFingerprint=="string")&&(t.stat===void 0||typeof t.stat=="string")&&(t.files===void 0||p2(t.files))&&(t.hunks===void 0||Array.isArray(t.hunks)&&t.hunks.every(KZ))&&(t.commits===void 0||p2(t.commits))&&(t.commitCount===void 0||typeof t.commitCount=="number")&&(t.diff===void 0||typeof t.diff=="string")&&(t.truncated===void 0||typeof t.truncated=="boolean")&&(t.error===void 0||typeof t.error=="string")}function ZZ(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;const t=e;return typeof t.key=="string"&&XZ(t.diff)&&typeof t.repoLabel=="string"&&typeof t.createdAt=="number"}function JZ(e){return!e||typeof e!="object"||Array.isArray(e)?!1:Object.values(e).every(t=>{if(!t||typeof t!="object"||Array.isArray(t))return!1;const n=t;return Array.isArray(n.selectedRepoRoots)&&n.selectedRepoRoots.every(r=>typeof r=="string")&&!!n.repoTargetBranches&&typeof n.repoTargetBranches=="object"&&!Array.isArray(n.repoTargetBranches)&&Object.values(n.repoTargetBranches).every(r=>typeof r=="string")&&(n.repoBaseBranches===void 0||!!n.repoBaseBranches&&typeof n.repoBaseBranches=="object"&&!Array.isArray(n.repoBaseBranches)&&Object.values(n.repoBaseBranches).every(r=>typeof r=="string"))&&(n.previewEntries===void 0||Array.isArray(n.previewEntries)&&n.previewEntries.every(ZZ))&&(n.selectedPreviewKey===void 0||n.selectedPreviewKey===null||typeof n.selectedPreviewKey=="string")&&(n.selectedPreviewFileKey===void 0||n.selectedPreviewFileKey===null||typeof n.selectedPreviewFileKey=="string")&&(n.previewDetailOpen===void 0||typeof n.previewDetailOpen=="boolean")&&(n.previewScrollTops===void 0||!!n.previewScrollTops&&typeof n.previewScrollTops=="object"&&!Array.isArray(n.previewScrollTops)&&Object.values(n.previewScrollTops).every(r=>typeof r=="number"))&&(n.previewMobileSlideIndex===void 0||typeof n.previewMobileSlideIndex=="number")&&(n.includeUncommitted===void 0||typeof n.includeUncommitted=="boolean")&&typeof n.updatedAt=="number"})}function u4(){return Br(nT,JZ)??{}}function d4(e){return[e.repoRoot,e.baseRef,e.branchName??"",e.headRef??"",e.diffFingerprint??""].join("\0")}function f4(e){const t=e?.trim()??"",n=t.indexOf("/");return n>=0?t.slice(n+1):t}function cT(e,t){const n=e?.trim(),r=t?.trim();return!n||!r?!1:n===r||f4(n)===f4(r)}function h4(e){const t=e?.branch??null;return[e?.upstream,...e?.remoteBranches??[],...e?.branches??[]].find(r=>r&&!cT(r,t))??""}function m2(e,t){const n=Math.max(i4,t-320),r=Math.min(jZ,n);return Math.min(r,Math.max(i4,e))}function eJ(e){return typeof e=="number"&&Number.isFinite(e)}function tJ(e){return m2(Br(yf,eJ)??h2,e)}function uT(e){const t=e.split(/[\\/]/).pop()??e,n=t.lastIndexOf(".");return n>=0?t.slice(n).toLowerCase():""}function of(e){return BZ.has(uT(e))}function dT(e){const t=e.trim().replace(/\s+/g,"");return/^-{3,}$/.test(t)||/^\*{3,}$/.test(t)||/^_{3,}$/.test(t)}function g2(e){const t=e.trim();return/^#{1,6}\s+/.test(t)||dT(e)||/^>\s?/.test(t)||/^(```|~~~)/.test(t)||/^(?:[-+*]|\d+[.)])\s+/.test(t)}function nJ(e){const t=e.trim();return/^(https?:|mailto:|#|\/|\.\/|\.\.\/)/i.test(t)||!/^[a-z][a-z0-9+.-]*:/i.test(t)&&!/[<>]/.test(t)?t:null}const fT=b.createContext(null);function lm(e){return e.trim().replace(/\s+/g," ").toLowerCase()}function hT(e){return e.replace(/!\[([^\]]*)\]\([^)]+\)/g,"$1").replace(/\[([^\]]+)\]\([^)]+\)/g,"$1").replace(/\[([^\]]+)\]\[[^\]]*\]/g,"$1").replace(/[`*_~]/g,"").replace(/<[^>]+>/g,"").trim()}function pT(e){return e.replace(/\s+#+\s*$/,"").trim()}function x2(e,t){const r=hT(e).toLowerCase().replace(/[^\p{L}\p{N}\s-]/gu,"").trim().replace(/\s+/g,"-")||"section",s=t.headingSlugCounts.get(r)??0;return t.headingSlugCounts.set(r,s+1),s===0?r:`${r}-${s}`}function p4(e){return hT(e)||e.trim()}function zm(e){const t=e.match(/^\s{0,3}\[([^\]]+)\]:\s+(.+?)\s*$/);if(!t)return null;const n=y2(t[2]);return n?{id:lm(t[1]),definition:{href:n.href,title:n.title}}:null}function rJ(e){const t=new Map;for(const n of e){const r=zm(n);r&&t.set(r.id,r.definition)}return t}function mT(e){return e.trim().toLowerCase()}function gT(e){const t=e.match(/^\s{0,3}\[\^([^\]]+)\]:\s+(.+)\s*$/);return t?{id:mT(t[1]),text:t[2]}:null}function sJ(e){const t=new Map;let n=null;for(const r of e){const s=gT(r);if(s){n=s.id,t.set(s.id,{id:s.id,text:s.text,index:t.size+1});continue}if(n&&/^\s{4,}\S/.test(r)){const i=t.get(n);i&&(i.text=`${i.text} ${r.trim()}`);continue}r.trim()&&(n=null)}return t}function iJ(e){const t=new Set;let n=!1;return e.forEach((r,s)=>{if(gT(r)){t.add(s),n=!0;return}if(n&&/^\s{4,}\S/.test(r)){t.add(s);return}r.trim()&&(n=!1)}),t}function oJ(e){const t=[...e];let n=0;const r=e[0]?.trim();if(r==="---"||r==="+++"){for(t[0]="",n=1;n<e.length&&e[n].trim()!==r;)t[n]="",n+=1;n<e.length&&(t[n]="",n+=1)}for(;n<e.length;){const s=e[n].trim();if(s.startsWith("<!--")){if(t[n]="",!s.includes("-->")){for(n+=1;n<e.length&&!e[n].includes("-->");)t[n]="",n+=1;n<e.length&&(t[n]="")}n+=1;continue}n+=1}return t}function xT(e){const t=e.replace(/\/+$/,""),n=t.lastIndexOf("/");return n<=0?n===0?"/":"":t.slice(0,n)}function Df(e){const t=e.split(/[?#]/,1)[0],n=t.startsWith("/"),r=[];for(const i of t.split("/"))if(!(!i||i===".")){if(i===".."){r.length>0&&r.pop();continue}r.push(i)}return`${n?"/":""}${r.join("/")}`||(n?"/":".")}function aJ(e,t,n){const r=e.trim();if(!r||/^(?:https?:|mailto:|javascript:|data:|#)/i.test(r)||/^[a-z][a-z0-9+.-]*:/i.test(r))return null;const s=r.indexOf("#"),i=s>=0?r.slice(0,s):r,l=s>=0?r.slice(s+1):"",c=i.split("?",1)[0];if(!c)return null;let u,h=null;try{u=decodeURIComponent(c),h=l?decodeURIComponent(l):null}catch{return null}const p=n?Df(n):null;let g;if(u.startsWith("/")){const y=p&&(u===p||u.startsWith(`${p}/`));g=Df(p&&!y?`${p}/${u.slice(1)}`:u)}else{if(!t)return null;g=Df(`${xT(t)}/${u}`)}return p&&g!==p&&!g.startsWith(`${p}/`)?null:{path:g,fragment:h,directory:/\/$/.test(c)}}function lJ(e,t,n){const r=e.trim();if(!r||/^(?:javascript|data):/i.test(r))return null;if(/^https?:\/\//i.test(r))return r;if(!I2(r.split(/[?#]/,1)[0]))return null;let s;if(r.startsWith("/")){const i=n&&(r===n||r.startsWith(`${n}/`));s=Df(n&&!i?`${n}/${r.slice(1)}`:r)}else{if(!t)return null;s=Df(`${xT(t)}/${r}`)}return`/api/terminal/fs/blob?path=${encodeURIComponent(s)}`}const b2=128,cJ=360,Fx=480;function Qy(e){try{return/\.svg(?=$|[?#&])/i.test(decodeURIComponent(e))}catch{return!1}}function uJ(e,t,n,r){if(!t||!n)return null;let s,i;return Qy(e)?(i=Math.min(Math.max(n,b2),cJ),s=t*i/n):(s=t,i=n),r>0&&s>r&&(i=i*r/s,s=r),i>Fx&&(s=s*Fx/i,i=Fx),{width:Math.max(1,Math.round(s)),height:Math.max(1,Math.round(i))}}function dJ(e){if(!e.startsWith("/api/terminal/fs/blob?"))return null;try{return new URLSearchParams(e.slice(e.indexOf("?"))).get("path")}catch{return null}}function bT(e){const t=dJ(e),n=yt(r=>t?(r.fileChangeVersions.get(t)??0)+r.fileWatchEpoch:0);return t&&n>0?`${e}&v=${n}`:e}function fJ({src:e,alt:t,title:n}){const r=Qy(e),s=bT(e),i=b.useRef(null),[l,c]=b.useState(!1),[u,h]=b.useState(0),[p,g]=b.useState({status:"loading"}),[y,v]=b.useState(null);b.useLayoutEffect(()=>{const T=i.current,L=T?.parentElement?.parentElement??T?.parentElement;if(!L)return;const R=()=>h(L.clientWidth);if(R(),typeof ResizeObserver>"u")return;const D=new ResizeObserver(R);return D.observe(L),()=>D.disconnect()},[]),b.useEffect(()=>{if(l)return;const T=i.current;if(!T||typeof IntersectionObserver>"u"){c(!0);return}const L=new IntersectionObserver(R=>{R.some(D=>D.isIntersecting)&&(c(!0),L.disconnect())},{rootMargin:"400px"});return L.observe(T),()=>L.disconnect()},[l]),b.useEffect(()=>{if(!l)return;const T=new AbortController;let L=null;g({status:"loading"});const R=window.setTimeout(()=>{T.abort(new DOMException("Image fetch timed out","TimeoutError"))},15e3);return fetch(s,{signal:T.signal}).then(async D=>{if(!D.ok)throw new Error(`HTTP ${D.status}`);const P=Number(D.headers.get("X-Image-Width"))||0,O=Number(D.headers.get("X-Image-Height"))||0;return{blob:await D.blob(),width:P,height:O}}).then(({blob:D,width:P,height:O})=>{T.signal.aborted||(L=URL.createObjectURL(D),P>0&&O>0&&v({width:P,height:O}),g({status:"ready",objectUrl:L}))}).catch(()=>{const D=T.signal.reason;T.signal.aborted&&!(D instanceof DOMException&&D.name==="TimeoutError")||g({status:"fallback"})}).finally(()=>{window.clearTimeout(R)}),()=>{window.clearTimeout(R),T.abort(),L&&URL.revokeObjectURL(L)}},[l,s]);const S=uJ(e,y?.width??0,y?.height??0,u),A=S??{width:b2*2,height:b2};return a.jsx("div",{ref:i,className:"block max-w-full",style:S?{width:S.width,height:S.height}:void 0,children:p.status==="ready"?a.jsx("img",{src:p.objectUrl,alt:t,title:n,decoding:"async",className:`${r?"":"termdock-fade-in "}block max-h-[480px] max-w-full object-contain`,style:S?{width:S.width,height:S.height}:void 0,onLoad:T=>{if(y)return;const L=T.currentTarget;L.naturalWidth>0&&L.naturalHeight>0&&v({width:L.naturalWidth,height:L.naturalHeight})}}):p.status==="fallback"?a.jsx("img",{src:s,alt:t,title:n,loading:"lazy",decoding:"async",className:"block max-h-[480px] max-w-full object-contain",style:S?{width:S.width,height:S.height}:void 0,onLoad:T=>{if(y)return;const L=T.currentTarget;L.naturalWidth>0&&L.naturalHeight>0&&v({width:L.naturalWidth,height:L.naturalHeight})}}):a.jsx("div",{"aria-hidden":!0,className:"flex max-w-full animate-pulse items-center justify-center rounded bg-surface-elevated/60",style:{width:A.width,height:A.height},children:a.jsx("span",{className:"text-[10px] text-muted-foreground/60",children:t||"…"})})})}function Ox(e,t,n,r,s){const i=lJ(n,s.markdownFilePath,s.rootPath);if(!i)return`![${t}](${n})`;const l=s.images.length;s.images.push({kind:"image",src:i,alt:t,title:r});const c=a.jsx(fJ,{src:i,alt:t,title:r});return s.onImageOpen?a.jsx("button",{type:"button",className:"my-2 block max-w-full overflow-hidden rounded-md border border-border/20 bg-surface-2 text-left transition hover:border-border-strong focus:outline-none focus:ring-2 focus:ring-ring/45",title:r||t||"Open image",onClick:u=>{u.stopPropagation(),s.onImageOpen?.(l)},children:c},e):a.jsx("span",{className:"my-2 block max-w-full overflow-hidden rounded-md border border-border/20 bg-surface-2",children:c},e)}function Qx(e){let t=e,n="";for(;/[.,;:!?)]$/.test(t);)n=`${t.slice(-1)}${n}`,t=t.slice(0,-1);return{linkText:t,suffix:n}}function m4(e){return/^[^\s@<>]+@[^\s@<>]+\.[^\s@<>]+$/.test(e)}function y2(e){const t=e.trim(),n=t.match(/^<([^>]+)>(?:\s+(?:"([^"]*)"|'([^']*)'|\(([^)]*)\)))?$/);if(n)return{href:n[1],title:n[2]??n[3]??n[4]};const r=t.match(/^(\S+)(?:\s+(?:"([^"]*)"|'([^']*)'|\(([^)]*)\)))?$/);return r?{href:r[1],title:r[2]??r[3]??r[4]}:null}const yT="",hJ=/\\([\\`*{}\[\]#+\-.!_|~>$])/g;function pJ(e){return e.replace(hJ,(t,n)=>`${yT}${n.charCodeAt(0).toString(16).padStart(4,"0")}`)}function g4(e){return e.replace(new RegExp(`${yT}([0-9a-f]{4})`,"g"),(t,n)=>String.fromCharCode(Number.parseInt(n,16))).replace(/\\([()])/g,"$1")}function mJ(e){const t=e.replace(/[\r\n]+/g," ");return/^ .+ $/.test(t)&&/[^ ]/.test(t.slice(1,-1))?t.slice(1,-1):t}const vT={ALLOWED_TAGS:["a","abbr","b","blockquote","br","code","del","details","div","em","i","kbd","li","mark","ol","p","pre","s","span","strong","sub","summary","sup","table","tbody","td","th","thead","tr","u","ul"],ALLOWED_ATTR:["href","title","class","id","colspan","rowspan"],ALLOW_DATA_ATTR:!1,ALLOW_ARIA_ATTR:!0};let Np=null;function wT(){return Np||(Np=i0(()=>import("./purify.es-CC4Brkr_.js"),[]).then(e=>e.default??e).catch(e=>{throw Np=null,e})),Np}function ST({html:e}){const{t}=Un(),[n,r]=b.useState(null);return b.useEffect(()=>{let s=!1;return r(null),wT().then(i=>{s||r(i.sanitize(e,vT))}).catch(()=>{s||r("")}),()=>{s=!0}},[e]),n===null?a.jsx("div",{className:"py-2 text-xs text-muted-foreground",children:t("rightSidebar.renderingHtml")}):n?a.jsx("div",{className:"text-muted-foreground",dangerouslySetInnerHTML:{__html:n}}):null}function gJ({html:e}){const[t,n]=b.useState(null);return b.useEffect(()=>{let r=!1;return n(null),wT().then(s=>{r||n(s.sanitize(e,vT))}).catch(()=>{r||n("")}),()=>{r=!0}},[e]),t===null?null:t?a.jsx("span",{dangerouslySetInnerHTML:{__html:t}}):e}function AT(e){const t=e.trim().match(/^<(div|section|article|aside|table|p|ul|ol|li|blockquote|pre|figure|figcaption)\b[^>]*>/i);if(!t)return null;const n=t[1].toLowerCase();return{tag:n,selfContained:new RegExp(`</${n}>`,"i").test(e)}}let Mp=null;function xJ(){return Mp||(Mp=Promise.all([i0(()=>import("./katex-DnlPpQZa.js"),[]),i0(()=>Promise.resolve({}),__vite__mapDeps([5]))]).then(([e])=>e.default??e).catch(e=>{throw Mp=null,e})),Mp}function Jf({tex:e,display:t=!1}){const[n,r]=b.useState(null),[s,i]=b.useState(!1);if(b.useEffect(()=>{let c=!1;return r(null),i(!1),xJ().then(u=>{c||r(u.renderToString(e,{displayMode:t,throwOnError:!1,trust:!1,strict:"ignore"}))}).catch(()=>{c||i(!0)}),()=>{c=!0}},[t,e]),s)return a.jsx("code",{className:"rounded bg-surface-2 px-1 py-0.5 font-mono text-[0.92em] text-foreground",children:t?`$$${e}$$`:`$${e}$`});if(!n)return a.jsx("span",{className:"text-muted-foreground/70",children:t?"Rendering formula...":e});const l=t?"my-2 overflow-auto rounded-md bg-surface-2 px-3 py-2 text-center":"inline-block align-middle";return a.jsx("span",{className:l,dangerouslySetInnerHTML:{__html:n}})}function bJ(e,t,n){if(/^<br\s*\/?>$/i.test(e))return a.jsx("br",{},t);const r=e.match(/^<(kbd|mark|sub|sup)>(.*?)<\/\1>$/i);if(!r)return/^<(a|abbr|span|b|strong|em|i|u|s|del|code)\b[\s\S]*<\/\1>$/i.test(e)?a.jsx(gJ,{html:e},t):null;const s=r[1].toLowerCase(),i=Ti(r[2],`${t}-${s}`,!0,n);return s==="kbd"?a.jsx("kbd",{className:"rounded border border-border/30 bg-surface-2 px-1.5 py-0.5 font-mono text-[0.85em] text-foreground shadow-sm",children:i},t):s==="mark"?a.jsx("mark",{className:"rounded bg-warning/25 px-0.5 text-foreground",children:i},t):s==="sub"?a.jsx("sub",{children:i},t):a.jsx("sup",{children:i},t)}function Ti(e,t,n=!0,r){const s=pJ(e),i=/(\\\([^)]*\\\)|\$[^$\n]+\$|<br\s*\/?>|<(?:a|abbr|span|b|strong|em|i|u|s|del|code|kbd|mark|sub|sup)\b[\s\S]*?<\/(?:a|abbr|span|b|strong|em|i|u|s|del|code|kbd|mark|sub|sup)>|!?\[[^\]]*\]\((?:<[^>]+>|(?:[^\s()]+|\([^()\s]*\))+)(?:\s+(?:"[^"]*"|'[^']*'|\([^)]*\)))?\)|!?\[[^\]]+\]\[[^\]]*\]|!?\[[^\]]+\]|\[\^[^\]]+\]|(`+)([\s\S]*?)\2|~~[^~]+~~|\*\*[^*]+\*\*|__[^_]+__|\*[^*\s][^*]*\*|_[^_\s][^_]*_|<https?:\/\/[^>\s]+>|<[^\s@<>]+@[^\s@<>]+\.[^\s@<>]+>|https?:\/\/[^\s<]+|www\.[^\s<]+|[^\s@<>]+@[^\s@<>]+\.[^\s@<>]+)/gi,l=[];let c=0,u;for(;(u=i.exec(s))!==null;){u.index>c&&l.push(g4(s.slice(c,u.index)));const h=u[0],p=`${t}-${u.index}`,g=h.startsWith("<")?bJ(h,p,r):null;if(g)l.push(g);else if(h.startsWith("\\(")&&h.endsWith("\\)"))l.push(a.jsx(Jf,{tex:h.slice(2,-2)},p));else if(h.startsWith("$")&&h.endsWith("$"))l.push(a.jsx(Jf,{tex:h.slice(1,-1)},p));else if(h.startsWith("`")){const y=h.match(/^`+/)?.[0].length??1;l.push(a.jsx("code",{className:`${n?"break-all":"whitespace-nowrap"} rounded bg-surface-2 px-1 py-0.5 font-mono text-[0.92em] text-foreground`,children:mJ(h.slice(y,-y))},p))}else if(h.startsWith("~~"))l.push(a.jsx("del",{className:"text-muted-foreground decoration-border-strong",children:Ti(h.slice(2,-2),`${p}-del`,n,r)},p));else if(h.startsWith("**")||h.startsWith("__"))l.push(a.jsx("strong",{className:"font-semibold text-foreground",children:Ti(h.slice(2,-2),`${p}-strong`,n,r)},p));else if(h.startsWith("*")||h.startsWith("_"))l.push(a.jsx("em",{className:"italic",children:Ti(h.slice(1,-1),`${p}-em`,n,r)},p));else if(h.startsWith("![")){const y=h.match(/^!\[([^\]]*)\]\((.*)\)$/),v=h.match(/^!\[([^\]]+)\]\[([^\]]*)\]$/),S=h.match(/^!\[([^\]]+)\]$/);if(y){const A=y2(y[2]);l.push(A?Ox(p,y[1],A.href,A.title,r):h)}else if(v){const A=v[2]||v[1],T=r.referenceDefinitions.get(lm(A));l.push(T?Ox(p,v[1],T.href,T.title,r):h)}else if(S){const A=r.referenceDefinitions.get(lm(S[1]));l.push(A?Ox(p,S[1],A.href,A.title,r):h)}else l.push(h)}else if(h.startsWith("[^")){const y=mT(h.slice(2,-1)),v=r.footnoteDefinitions.get(y);l.push(v?a.jsx("sup",{id:`fnref-${v.id}`,title:v.text,className:"ml-0.5 rounded bg-surface-2 px-1 text-[0.72em] font-semibold text-primary",children:a.jsx("a",{href:`#fn-${v.id}`,className:"text-primary no-underline",children:v.index})},p):h)}else if(h.startsWith("<http")){const y=h.slice(1,-1);l.push(a.jsx("a",{href:y,target:"_blank",rel:"noreferrer",className:`${n?"break-all":"whitespace-nowrap"} text-primary underline decoration-primary/40 underline-offset-2 hover:decoration-primary`,children:y},p))}else if(h.startsWith("<")&&h.endsWith(">")&&m4(h.slice(1,-1))){const y=h.slice(1,-1);l.push(a.jsx("a",{href:`mailto:${y}`,className:`${n?"break-all":"whitespace-nowrap"} text-primary underline decoration-primary/40 underline-offset-2 hover:decoration-primary`,children:y},p))}else if(m4(Qx(h).linkText)){const{linkText:y,suffix:v}=Qx(h);l.push(a.jsx("a",{href:`mailto:${y}`,className:`${n?"break-all":"whitespace-nowrap"} text-primary underline decoration-primary/40 underline-offset-2 hover:decoration-primary`,children:y},p)),v&&l.push(v)}else if(h.startsWith("http")||h.startsWith("www.")){const{linkText:y,suffix:v}=Qx(h),S=y.startsWith("www.")?`https://${y}`:y;l.push(a.jsx("a",{href:S,target:"_blank",rel:"noreferrer",className:`${n?"break-all":"whitespace-nowrap"} text-primary underline decoration-primary/40 underline-offset-2 hover:decoration-primary`,children:y},p)),v&&l.push(v)}else{const y=h.match(/^\[([^\]]+)\]\((.*)\)$/),v=h.match(/^\[([^\]]+)\]\[([^\]]*)\]$/),S=h.match(/^\[([^\]]+)\]$/),A=v?v[2]||v[1]:S?.[1]??null,T=A?r.referenceDefinitions.get(lm(A)):null,L=y?y2(y[2]):null,R=L?.href??T?.href??null,D=R?nJ(R):null,P=y?.[1]??v?.[1]??S?.[1]??"";l.push(D?a.jsx("a",{href:D,title:L?.title??T?.title,target:"_blank",rel:"noreferrer",className:`${n?"break-all":"whitespace-nowrap"} text-primary underline decoration-primary/40 underline-offset-2 hover:decoration-primary`,children:Ti(P,`${p}-link`,n,r)},p):h)}c=i.lastIndex}return c<s.length&&l.push(g4(s.slice(c))),l.length>0?l:[e]}function TT(e){return/(?: {2,}|\\)$/.test(e)}function CT(e){return e.replace(/(?: {2,}|\\)$/,"")}function Gm(e){return/^(?: {4}|\t)/.test(e)}function kT(e){return e.startsWith(" ")?e.slice(1):e.replace(/^ {4}/,"")}function _T(e,t,n){const r=[];return e.forEach((s,i)=>{const l=TT(s);r.push(...Ti(CT(s),`${t}-${i}`,!0,n)),i<e.length-1&&r.push(l?a.jsx("br",{},`${t}-${i}-br`):" ")}),r}function v2(e,t,n){const r=[],s=[];return e.forEach((i,l)=>{s.push(TT(i)),r.push(Ti(CT(i),`${t}-${l}`,!0,n))}),{perLine:r,hardBreaks:s}}function w2(e,t,n,r,s){const i=[];return e.forEach((l,c)=>{const u=n[c]??0,h=!!(s&&u>=s.start&&u<=s.end);i.push(a.jsx("span",{"data-md-ref-start":u,"data-md-ref-end":u,"data-selected":h?"true":void 0,children:l},`${r}-ref-${c}`)),c<e.length-1&&i.push(t[c]?a.jsx("br",{},`${r}-${c}-br`):" ")}),i}function eh(e){const t=e.trim().replace(/^\|/,"").replace(/\|$/,""),n=[];let r="",s=!1,i=0,l=0;for(let c=0;c<t.length;c+=1){const u=t[c];if(s){r+=u,s=!1;continue}if(u==="\\"){s=!0;continue}if(u==="`"){const h=c;for(;c+1<t.length&&t[c+1]==="`";)c+=1;const p=c-h+1;r+="`".repeat(p),i===0?i=p:i===p&&(i=0);continue}if(i===0&&u==="["?l+=1:i===0&&u==="]"&&l>0&&(l-=1),u==="|"&&i===0&&l===0){n.push(r.trim()),r="";continue}r+=u}return s&&(r+="\\"),n.push(r.trim()),n}function LT(e){return eh(e).map(t=>/^:-+:$/.test(t)?"center":/^-+:$/.test(t)?"right":/^:-+$/.test(t)?"left":null)}function Wm(e){return e==="center"?"text-center":e==="right"?"text-right":"text-left"}function Vm(e){return/^\|?\s*:?-{3,}:?\s*(?:\|\s*:?-{3,}:?\s*)*\|?$/.test(e.trim())}function yJ(e,t){return e>96||e>44&&t>.35}function $y(e){return(e.match(/^\s*/)?.[0]??"").replace(/\t/g," ").length}function Hy(e){const t=e.trim().match(/^([-+*]|\d+[.)])\s+(.+)$/);if(!t)return null;const n=/^\d+[.)]$/.test(t[1]);return{ordered:n,start:n?Number.parseInt(t[1],10):void 0,content:t[2]}}function ET(e,t,n,r,s,i=new Set){const l=[],c=[];let u=t;for(;u<e.length;){const h=e[u];if(s&&(zm(h)||i.has(u))){u+=1;continue}const p=Hy(h),g=$y(h);if(!p){if(g>n&&c.length>0){([...c].reverse().find(A=>A.indent<g)?.item??c[c.length-1].item).paragraphs.push(h.trim());for(const A of c)A.item.lineEnd=u+1;u+=1;continue}break}if(g<n||g===n&&p.ordered!==r)break;const y={content:p.content,ordered:p.ordered,start:p.start,children:[],paragraphs:[],lineStart:u+1,lineEnd:u+1};for(;c.length>0&&c[c.length-1].indent>=g;)c.pop();const v=c[c.length-1]?.item??null;v?v.children.push(y):l.push(y),c.push({indent:g,item:y});for(const S of c)S.item.lineEnd=u+1;u+=1}return{items:l,nextIndex:u}}function Uy(e,t,n,r=0){return e.map((s,i)=>{const l=s.content.match(/^\[([ xX])\]\s+(.+)$/);return{key:`item-${i}`,taskItem:!!l,refStart:s.lineStart+r,refEnd:s.lineEnd+r,content:a.jsxs(a.Fragment,{children:[l?a.jsx("input",{type:"checkbox",checked:l[1].toLowerCase()==="x",readOnly:!0,className:"mr-2 align-[-2px] accent-primary"}):null,Ti(l?.[2]??s.content,`li-${t}-${i}`,!0,n),s.paragraphs.length>0&&a.jsx("div",{className:"mt-1 space-y-1 text-muted-foreground",children:s.paragraphs.map((c,u)=>a.jsx("p",{children:Ti(c,`li-${t}-${i}-p-${u}`,!0,n)},`paragraph-${u}`))})]}),groups:vJ(s.children,`${t}-${i}`,n,r)}})}function vJ(e,t,n,r=0){const s=[];for(const i of e){const l=s[s.length-1];l&&l.ordered===i.ordered?l.items.push(i):s.push({ordered:i.ordered,items:[i]})}return s.map((i,l)=>({ordered:i.ordered,start:i.ordered?i.items[0]?.start:void 0,items:Uy(i.items,`${t}-g${l}`,n,r)}))}function zy(e,t){return e.map(n=>{const r=!!(t&&n.refStart<=t.end&&n.refEnd>=t.start);return a.jsxs("li",{className:n.taskItem?"list-none":void 0,"data-md-ref-start":n.refStart,"data-md-ref-end":n.refEnd,"data-selected":r?"true":void 0,children:[n.content,n.groups.length>0&&wJ(n.groups,t)]},n.key)})}function wJ(e,t){return e.map((n,r)=>{const s=n.ordered?"ol":"ul";return a.jsx(s,{start:n.start,className:`${n.ordered?"list-decimal":"list-disc"} mt-1 space-y-0.5 pl-4 marker:text-muted-foreground/60`,children:zy(n.items,t)},`nested-${r}`)})}function SJ(e){const t=Array.from(e.footnoteDefinitions.values()).sort((n,r)=>n.index-r.index);return t.length===0?null:a.jsxs("section",{className:"mt-3 border-t border-border/20 pt-2 text-[12px] leading-5 text-muted-foreground",children:[a.jsx("div",{className:"mb-1 text-[10px] font-semibold uppercase tracking-wide text-muted-foreground/80",children:e.footnotesLabel}),a.jsx("ol",{className:"list-decimal space-y-1 pl-5",children:t.map(n=>a.jsxs("li",{id:`fn-${n.id}`,children:[Ti(n.text,`footnote-${n.id}`,!0,e)," ",a.jsx("a",{href:`#fnref-${n.id}`,className:"text-primary no-underline","aria-label":e.backToFootnoteLabel(n.index),children:"↩"})]},n.id))})]})}function AJ(e,t,n,r){const s=[];let i=0;const l=c=>r?.[c]??c+1;for(;i<e.length;){const c=e[i],u=c.trim();if(!u){i+=1;continue}if(/^<details>\s*$/i.test(u)){const L=i;let R="Details";const D=[];for(i+=1;i<e.length&&!/^<\/details>\s*$/i.test(e[i].trim());){const P=e[i].trim().match(/^<summary>(.*?)<\/summary>\s*$/i);P?R=P[1].trim()||R:D.push(e[i].trimStart()),i+=1}i<e.length&&(i+=1),s.push({kind:"static",node:a.jsxs("details",{className:"overflow-hidden rounded-lg border border-border/20 bg-surface px-3 py-2 text-muted-foreground",children:[a.jsx("summary",{className:"cursor-pointer text-sm font-semibold text-foreground",children:Ti(R,`${t}-details-${L}-summary`,!0,n)}),D.length>0&&a.jsx("div",{className:"mt-2 text-sm leading-6",children:_T(D,`${t}-details-${L}`,n)})]},`${t}-details-${L}`)});continue}const h=AT(c);if(h){const L=[c],R=i;for(i+=1;i<e.length&&!h.selfContained&&!new RegExp(`</${h.tag}>`,"i").test(e[i]);)L.push(e[i]),i+=1;i<e.length&&!h.selfContained&&(L.push(e[i]),i+=1),s.push({kind:"static",node:a.jsx(ST,{html:L.join(`
173
+ `?(n.push(r.replace(/\r$/,"")),t.push(n),n=[],r=""):r+=l}return(r||n.length>0)&&(n.push(r.replace(/\r$/,"")),t.push(n)),t}function bZ(e,t,n,r,s){const i=t[s]||`第${s+1}列`,l=n[s]??"",c=t.map((u,h)=>`${u||`第${h+1}列`}=${n[h]??""}`).join(";");return`"表格标注: ${e} / 数据行: ${r+1} / 列: ${i} / 值: ${l} / 记录: ${c}"`}function yZ({content:e,filePath:t,onInsertAnnotation:n}){const{t:r}=Un(),s=b.useMemo(()=>xZ(e),[e]),i=s[0]??[],l=s.slice(1),c=b.useRef(null),[u,h]=b.useState(null),p=u?l[u.row]:null,g=u&&p?bZ(t,i,p,u.row+1,u.column):null;return a.jsxs("div",{className:"flex min-h-0 flex-1 flex-col bg-surface",children:[a.jsxs("div",{ref:c,className:"relative min-h-0 flex-1",children:[a.jsx("div",{className:"h-full overflow-auto",children:a.jsxs("table",{className:"min-w-full border-separate border-spacing-0 text-left text-xs",children:[a.jsx("thead",{children:a.jsxs("tr",{children:[a.jsx("th",{className:"sticky left-0 top-0 z-20 border-b border-r border-border/20 bg-surface-elevated px-2 py-2 text-[10px] font-semibold text-muted-foreground",children:"#"}),i.map((y,v)=>a.jsx("th",{className:"sticky top-0 z-10 min-w-28 border-b border-r border-border/20 bg-surface-elevated px-3 py-2 font-semibold text-foreground",children:y||r("rightSidebar.csvUnnamedColumn",{index:v+1})},`${y}:${v}`))]})}),a.jsx("tbody",{children:l.map((y,v)=>a.jsxs("tr",{className:"hover:bg-surface-2",children:[a.jsx("th",{className:"sticky left-0 z-10 border-b border-r border-border/15 bg-surface px-2 py-2 text-right text-[10px] font-normal text-muted-foreground",children:v+1}),i.map((S,A)=>{const T=u?.row===v&&u.column===A;return a.jsx("td",{className:`border-b border-r border-border/15 p-0 ${T?"bg-primary/15":""}`,children:a.jsx("button",{type:"button",onClick:L=>{const R=c.current?.getBoundingClientRect(),D=L.currentTarget.getBoundingClientRect();if(!R?.width||!R.height)return;const P=L.clientX||D.left+D.width/2,O=L.clientY||D.top+D.height/2;h({row:v,column:A,xPercent:(P-R.left)/R.width*100,yPercent:(O-R.top)/R.height*100})},className:"block h-full min-h-9 w-full whitespace-pre-wrap px-3 py-2 text-left text-foreground outline-none hover:bg-primary/10 focus-visible:bg-primary/10",children:y[A]||" "})},`cell:${v}:${A}`)})]},`row:${v}`))})]})}),u&&g&&a.jsx(Ag,{anchor:{xPercent:u.xPercent,yPercent:u.yPercent},title:r("rightSidebar.csvInsertAnnotation"),onClick:()=>{n?.(g,`csv:${t}:${u.row+1}:${u.column+1}`),h(null)},children:r("rightSidebar.csvInsertAnnotation")})]}),a.jsx("div",{className:"flex shrink-0 items-center justify-between gap-3 border-t border-border/15 px-3 py-2",children:a.jsx("span",{className:"min-w-0 truncate text-[11px] text-muted-foreground",children:u&&p?r("rightSidebar.csvSelectedCell",{row:u.row+1,column:i[u.column]||u.column+1}):r("rightSidebar.csvPickHint",{rows:l.length,columns:i.length})})})]})}function Sd(e,t){let n=e;for(const r of t){if(!n||typeof n!="object")return;n=n[r]}return n}function vZ(e,t){const n=JSON.parse(e),r=Sd(n,["meta","version"]);if(t)return[{label:"文件性质",value:"KiCad 本机界面状态,不属于电气设计源文件"},{label:"格式版本",value:String(r??"未知")},{label:"活动层编号",value:String(Sd(n,["board","active_layer"])??"未知")},{label:"可见层掩码",value:String(Sd(n,["board","visible_layers"])??"未知")},{label:"Git 集成",value:Sd(n,["git","integration_disabled"])===!0?"已禁用":"未禁用"}];const s=Sd(n,["net_settings","classes"]),i=Array.isArray(s)?s.find(c=>c&&typeof c=="object"&&c.name==="Default"):void 0,l=Sd(n,["board","design_settings","drc_exclusions"]);return[{label:"文件性质",value:"KiCad 工程配置"},{label:"格式版本",value:String(r??"未知")},{label:"网络类数量",value:String(Array.isArray(s)?s.length:0)},{label:"默认间距",value:i?.clearance!==void 0?`${i.clearance} mm`:"未设置"},{label:"默认线宽",value:i?.track_width!==void 0?`${i.track_width} mm`:"未设置"},{label:"默认过孔",value:i?.via_diameter!==void 0?`${i.via_diameter} / ${i.via_drill??"—"} mm(外径/钻孔)`:"未设置"},{label:"DRC 排除项",value:String(Array.isArray(l)?l.length:0)}]}function wZ(e,t){return`"KiCad项目标注: ${e} / 项: ${t.label} / 值: ${t.value}"`}function SZ({content:e,filePath:t,localState:n,onInsertAnnotation:r}){const{t:s}=Un(),i=b.useRef(null),[l,c]=b.useState(null),u=b.useMemo(()=>{try{return{items:vZ(e,n),error:null}}catch(p){return{items:[],error:p instanceof Error?p.message:String(p)}}},[e,n]),h=l===null?null:u.items[l.index];return u.error?a.jsx("pre",{className:"min-h-0 flex-1 overflow-auto whitespace-pre-wrap p-3 font-mono text-xs text-foreground",children:e}):a.jsxs("div",{className:"flex min-h-0 flex-1 flex-col bg-surface",children:[n&&a.jsx("div",{className:"border-b border-[color:var(--warning)]/20 bg-[color:var(--warning)]/5 px-3 py-2 text-xs text-[color:var(--warning)]",children:s("rightSidebar.kicadLocalStateNotice")}),a.jsxs("div",{ref:i,className:"relative min-h-0 flex-1",children:[a.jsxs("div",{className:"h-full overflow-auto px-3 py-2",children:[a.jsx("div",{className:"divide-y divide-border/15",children:u.items.map((p,g)=>a.jsxs("button",{type:"button",onClick:y=>{const v=i.current?.getBoundingClientRect(),S=y.currentTarget.getBoundingClientRect();if(!v?.width||!v.height)return;const A=y.clientX||S.left+S.width/2,T=y.clientY||S.top+S.height/2;c({index:g,xPercent:(A-v.left)/v.width*100,yPercent:(T-v.top)/v.height*100})},className:`grid w-full grid-cols-[minmax(7rem,0.8fr)_minmax(0,1.4fr)] gap-3 px-2 py-3 text-left transition hover:bg-surface-2 ${l?.index===g?"bg-primary/10":""}`,children:[a.jsx("span",{className:"text-xs font-semibold text-muted-foreground",children:p.label}),a.jsx("span",{className:"break-words text-xs text-foreground",children:p.value})]},p.label))}),a.jsxs("details",{className:"mt-3 border-t border-border/15 pt-3",children:[a.jsx("summary",{className:"cursor-pointer text-xs font-semibold text-muted-foreground",children:s("rightSidebar.kicadShowRawJson")}),a.jsx("pre",{className:"mt-2 overflow-auto whitespace-pre p-2 font-mono text-[10px] leading-relaxed text-foreground",children:e})]})]}),h&&l&&a.jsx(Ag,{anchor:{xPercent:l.xPercent,yPercent:l.yPercent},title:s("rightSidebar.kicadInsertSetting"),onClick:()=>{r?.(wZ(t,h),`kicad-project:${t}:${h.label}`),c(null)},children:s("rightSidebar.kicadInsertSetting")})]}),a.jsx("div",{className:"flex shrink-0 items-center justify-between gap-3 border-t border-border/15 px-3 py-2",children:a.jsx("span",{className:"min-w-0 truncate text-[11px] text-muted-foreground",children:h?`${h.label}: ${h.value}`:s("rightSidebar.kicadProjectPickHint")})})]})}const By="termdock:right-sidebar:file-tree-scroll:v1",Fy="termdock:right-sidebar:file-preview-reading-state:v1",yf="termdock:right-sidebar:file-tree-width:v1",X9="termdock:right-sidebar:markdown-view-mode:v1",Z9="termdock:right-sidebar:diff-change-list-mode:v1",J9="termdock:right-sidebar:diff-wrap:v1",eT="termdock:diff-viewer:view-type:v1",tT="termdock:right-sidebar:file-search-mode:v1",Nx="termdock:right-sidebar:collapsed-git-repo-groups:v1",e4="termdock:right-sidebar:collapsed-diff-directories:v1",Mx="termdock:right-sidebar:branch-audit-module-open:v1",nT="termdock:right-sidebar:branch-audit-module:v1",AZ=150,rT="termdock:right-sidebar:active-git-repo:v1",t4="termdock:right-sidebar:context-draft-enabled:v1",n4="termdock:right-sidebar:context-draft-collapsed:v1",r4="termdock:right-sidebar:context-draft-auto-collapse:v1",Dx="termdock:right-sidebar:context-draft-text:v1",TZ=300,CZ=20,kZ=120,_Z=250,LZ=250,EZ=120,IZ=700,jx=600,s4=[2e3,5e3,15e3,3e4],RZ=320,NZ=500,MZ=20,DZ=12e3,h2=300,i4=240,jZ=560,PZ=600,sT="border-r px-2 py-1.5 sm:px-3 sm:py-2",Um="max-w-[18rem] whitespace-normal break-words sm:max-w-[27rem]",iT=`${sT} border-b border-border/15 font-semibold last:border-r-0`,oT=`${sT} border-border/10 align-top text-muted-foreground last:border-r-0`,Oy="termdock-file-preview-horizontal-scroll",o4=b.lazy(()=>i0(()=>import("./ModelPreview-CJK3Nmg4.js"),__vite__mapDeps([2,3,1,4]))),aT=`${Oy} termdock-md-table-scroll max-w-full overflow-x-auto overflow-y-hidden rounded-lg border border-border/20 bg-surface`,BZ=new Set([".md",".markdown",".mdown",".mkdn",".mkd"]);function FZ(e){return e==="preview"||e==="source"}function OZ(e){return e==="list"||e==="tree"||e==="ai"}function a4(){return Br(X9,FZ)??"preview"}function QZ(){return Br(Z9,OZ)??"tree"}function vf(e){return typeof e=="boolean"}function $Z(e){return typeof e=="string"}function HZ(){return Br(J9,vf)??!0}function UZ(e){return e==="unified"||e==="split"}function zZ(){return Br(eT,UZ)??"unified"}function GZ(e){return e==="name"||e==="content"||e==="regex"}function WZ(){return Br(tT,GZ)??"name"}function VZ(e){return e.repositories??(e.context?.root?[{id:e.context.root,root:e.context.root,relativeRoot:".",name:Io(e.context.root)||e.context.root,depth:0,nested:!1,available:e.available,files:e.files,context:e.context,error:e.error}]:[])}function qZ(e){return!!e&&typeof e=="object"&&!Array.isArray(e)&&Object.values(e).every(t=>t===null||typeof t=="string")}function lT(){return Br(rT,qZ)??{}}function l4(e){if(!e)return;const t=lT();return Object.prototype.hasOwnProperty.call(t,e)?t[e]:void 0}function Px(e,t){e&&Hn(rT,{...lT(),[e]:t})}function YZ(e,t){if(!t)return null;const n=new Set((e.repoFilters??[]).map(r=>r.root));return n.has(t)?t:n.size>0?null:(e.repositories??[]).some(r=>r.root===t)?t:null}function p2(e){return Array.isArray(e)&&e.every(t=>typeof t=="string")}function c4(e){const t=Br(e,p2);return t?new Set(t):new Set}function Bx(e,t){Hn(e,[...t])}function KZ(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;const t=e;return typeof t.filePath=="string"&&typeof t.hunkHeader=="string"&&typeof t.hunkIndex=="number"&&typeof t.fingerprint=="string"&&typeof t.additions=="number"&&typeof t.deletions=="number"&&typeof t.diff=="string"&&(t.oldPath===void 0||t.oldPath===null||typeof t.oldPath=="string")&&(t.newPath===void 0||t.newPath===null||typeof t.newPath=="string")&&(t.source===void 0||t.source==="committed"||t.source==="uncommitted"||t.source==="unknown")&&(t.commit===void 0||t.commit===null||typeof t.commit=="string")}function XZ(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;const t=e;return typeof t.available=="boolean"&&(t.repoRoot===void 0||typeof t.repoRoot=="string")&&(t.workspaceRoot===void 0||typeof t.workspaceRoot=="string")&&(t.baseRef===void 0||typeof t.baseRef=="string")&&(t.baseBranch===void 0||typeof t.baseBranch=="string")&&(t.currentBranch===void 0||t.currentBranch===null||typeof t.currentBranch=="string")&&(t.headRef===void 0||t.headRef===null||typeof t.headRef=="string")&&(t.diffFingerprint===void 0||typeof t.diffFingerprint=="string")&&(t.stat===void 0||typeof t.stat=="string")&&(t.files===void 0||p2(t.files))&&(t.hunks===void 0||Array.isArray(t.hunks)&&t.hunks.every(KZ))&&(t.commits===void 0||p2(t.commits))&&(t.commitCount===void 0||typeof t.commitCount=="number")&&(t.diff===void 0||typeof t.diff=="string")&&(t.truncated===void 0||typeof t.truncated=="boolean")&&(t.error===void 0||typeof t.error=="string")}function ZZ(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;const t=e;return typeof t.key=="string"&&XZ(t.diff)&&typeof t.repoLabel=="string"&&typeof t.createdAt=="number"}function JZ(e){return!e||typeof e!="object"||Array.isArray(e)?!1:Object.values(e).every(t=>{if(!t||typeof t!="object"||Array.isArray(t))return!1;const n=t;return Array.isArray(n.selectedRepoRoots)&&n.selectedRepoRoots.every(r=>typeof r=="string")&&!!n.repoTargetBranches&&typeof n.repoTargetBranches=="object"&&!Array.isArray(n.repoTargetBranches)&&Object.values(n.repoTargetBranches).every(r=>typeof r=="string")&&(n.repoBaseBranches===void 0||!!n.repoBaseBranches&&typeof n.repoBaseBranches=="object"&&!Array.isArray(n.repoBaseBranches)&&Object.values(n.repoBaseBranches).every(r=>typeof r=="string"))&&(n.previewEntries===void 0||Array.isArray(n.previewEntries)&&n.previewEntries.every(ZZ))&&(n.selectedPreviewKey===void 0||n.selectedPreviewKey===null||typeof n.selectedPreviewKey=="string")&&(n.selectedPreviewFileKey===void 0||n.selectedPreviewFileKey===null||typeof n.selectedPreviewFileKey=="string")&&(n.previewDetailOpen===void 0||typeof n.previewDetailOpen=="boolean")&&(n.previewScrollTops===void 0||!!n.previewScrollTops&&typeof n.previewScrollTops=="object"&&!Array.isArray(n.previewScrollTops)&&Object.values(n.previewScrollTops).every(r=>typeof r=="number"))&&(n.previewMobileSlideIndex===void 0||typeof n.previewMobileSlideIndex=="number")&&(n.includeUncommitted===void 0||typeof n.includeUncommitted=="boolean")&&typeof n.updatedAt=="number"})}function u4(){return Br(nT,JZ)??{}}function d4(e){return[e.repoRoot,e.baseRef,e.branchName??"",e.headRef??"",e.diffFingerprint??""].join("\0")}function f4(e){const t=e?.trim()??"",n=t.indexOf("/");return n>=0?t.slice(n+1):t}function cT(e,t){const n=e?.trim(),r=t?.trim();return!n||!r?!1:n===r||f4(n)===f4(r)}function h4(e){const t=e?.branch??null;return[e?.upstream,...e?.remoteBranches??[],...e?.branches??[]].find(r=>r&&!cT(r,t))??""}function m2(e,t){const n=Math.max(i4,t-320),r=Math.min(jZ,n);return Math.min(r,Math.max(i4,e))}function eJ(e){return typeof e=="number"&&Number.isFinite(e)}function tJ(e){return m2(Br(yf,eJ)??h2,e)}function uT(e){const t=e.split(/[\\/]/).pop()??e,n=t.lastIndexOf(".");return n>=0?t.slice(n).toLowerCase():""}function of(e){return BZ.has(uT(e))}function dT(e){const t=e.trim().replace(/\s+/g,"");return/^-{3,}$/.test(t)||/^\*{3,}$/.test(t)||/^_{3,}$/.test(t)}function g2(e){const t=e.trim();return/^#{1,6}\s+/.test(t)||dT(e)||/^>\s?/.test(t)||/^(```|~~~)/.test(t)||/^(?:[-+*]|\d+[.)])\s+/.test(t)}function nJ(e){const t=e.trim();return/^(https?:|mailto:|#|\/|\.\/|\.\.\/)/i.test(t)||!/^[a-z][a-z0-9+.-]*:/i.test(t)&&!/[<>]/.test(t)?t:null}const fT=b.createContext(null);function lm(e){return e.trim().replace(/\s+/g," ").toLowerCase()}function hT(e){return e.replace(/!\[([^\]]*)\]\([^)]+\)/g,"$1").replace(/\[([^\]]+)\]\([^)]+\)/g,"$1").replace(/\[([^\]]+)\]\[[^\]]*\]/g,"$1").replace(/[`*_~]/g,"").replace(/<[^>]+>/g,"").trim()}function pT(e){return e.replace(/\s+#+\s*$/,"").trim()}function x2(e,t){const r=hT(e).toLowerCase().replace(/[^\p{L}\p{N}\s-]/gu,"").trim().replace(/\s+/g,"-")||"section",s=t.headingSlugCounts.get(r)??0;return t.headingSlugCounts.set(r,s+1),s===0?r:`${r}-${s}`}function p4(e){return hT(e)||e.trim()}function zm(e){const t=e.match(/^\s{0,3}\[([^\]]+)\]:\s+(.+?)\s*$/);if(!t)return null;const n=y2(t[2]);return n?{id:lm(t[1]),definition:{href:n.href,title:n.title}}:null}function rJ(e){const t=new Map;for(const n of e){const r=zm(n);r&&t.set(r.id,r.definition)}return t}function mT(e){return e.trim().toLowerCase()}function gT(e){const t=e.match(/^\s{0,3}\[\^([^\]]+)\]:\s+(.+)\s*$/);return t?{id:mT(t[1]),text:t[2]}:null}function sJ(e){const t=new Map;let n=null;for(const r of e){const s=gT(r);if(s){n=s.id,t.set(s.id,{id:s.id,text:s.text,index:t.size+1});continue}if(n&&/^\s{4,}\S/.test(r)){const i=t.get(n);i&&(i.text=`${i.text} ${r.trim()}`);continue}r.trim()&&(n=null)}return t}function iJ(e){const t=new Set;let n=!1;return e.forEach((r,s)=>{if(gT(r)){t.add(s),n=!0;return}if(n&&/^\s{4,}\S/.test(r)){t.add(s);return}r.trim()&&(n=!1)}),t}function oJ(e){const t=[...e];let n=0;const r=e[0]?.trim();if(r==="---"||r==="+++"){for(t[0]="",n=1;n<e.length&&e[n].trim()!==r;)t[n]="",n+=1;n<e.length&&(t[n]="",n+=1)}for(;n<e.length;){const s=e[n].trim();if(s.startsWith("<!--")){if(t[n]="",!s.includes("-->")){for(n+=1;n<e.length&&!e[n].includes("-->");)t[n]="",n+=1;n<e.length&&(t[n]="")}n+=1;continue}n+=1}return t}function xT(e){const t=e.replace(/\/+$/,""),n=t.lastIndexOf("/");return n<=0?n===0?"/":"":t.slice(0,n)}function Df(e){const t=e.split(/[?#]/,1)[0],n=t.startsWith("/"),r=[];for(const i of t.split("/"))if(!(!i||i===".")){if(i===".."){r.length>0&&r.pop();continue}r.push(i)}return`${n?"/":""}${r.join("/")}`||(n?"/":".")}function aJ(e,t,n){const r=e.trim();if(!r||/^(?:https?:|mailto:|javascript:|data:|#)/i.test(r)||/^[a-z][a-z0-9+.-]*:/i.test(r))return null;const s=r.indexOf("#"),i=s>=0?r.slice(0,s):r,l=s>=0?r.slice(s+1):"",c=i.split("?",1)[0];if(!c)return null;let u,h=null;try{u=decodeURIComponent(c),h=l?decodeURIComponent(l):null}catch{return null}const p=n?Df(n):null;let g;if(u.startsWith("/")){const y=p&&(u===p||u.startsWith(`${p}/`));g=Df(p&&!y?`${p}/${u.slice(1)}`:u)}else{if(!t)return null;g=Df(`${xT(t)}/${u}`)}return p&&g!==p&&!g.startsWith(`${p}/`)?null:{path:g,fragment:h,directory:/\/$/.test(c)}}function lJ(e,t,n){const r=e.trim();if(!r||/^(?:javascript|data):/i.test(r))return null;if(/^https?:\/\//i.test(r))return r;if(!I2(r.split(/[?#]/,1)[0]))return null;let s;if(r.startsWith("/")){const i=n&&(r===n||r.startsWith(`${n}/`));s=Df(n&&!i?`${n}/${r.slice(1)}`:r)}else{if(!t)return null;s=Df(`${xT(t)}/${r}`)}return`/api/terminal/fs/blob?path=${encodeURIComponent(s)}`}const b2=128,cJ=360,Fx=480;function Qy(e){try{return/\.svg(?=$|[?#&])/i.test(decodeURIComponent(e))}catch{return!1}}function uJ(e,t,n,r){if(!t||!n)return null;let s,i;return Qy(e)?(i=Math.min(Math.max(n,b2),cJ),s=t*i/n):(s=t,i=n),r>0&&s>r&&(i=i*r/s,s=r),i>Fx&&(s=s*Fx/i,i=Fx),{width:Math.max(1,Math.round(s)),height:Math.max(1,Math.round(i))}}function dJ(e){if(!e.startsWith("/api/terminal/fs/blob?"))return null;try{return new URLSearchParams(e.slice(e.indexOf("?"))).get("path")}catch{return null}}function bT(e){const t=dJ(e),n=yt(r=>t?(r.fileChangeVersions.get(t)??0)+r.fileWatchEpoch:0);return t&&n>0?`${e}&v=${n}`:e}function fJ({src:e,alt:t,title:n}){const r=Qy(e),s=bT(e),i=b.useRef(null),[l,c]=b.useState(!1),[u,h]=b.useState(0),[p,g]=b.useState({status:"loading"}),[y,v]=b.useState(null);b.useLayoutEffect(()=>{const T=i.current,L=T?.parentElement?.parentElement??T?.parentElement;if(!L)return;const R=()=>h(L.clientWidth);if(R(),typeof ResizeObserver>"u")return;const D=new ResizeObserver(R);return D.observe(L),()=>D.disconnect()},[]),b.useEffect(()=>{if(l)return;const T=i.current;if(!T||typeof IntersectionObserver>"u"){c(!0);return}const L=new IntersectionObserver(R=>{R.some(D=>D.isIntersecting)&&(c(!0),L.disconnect())},{rootMargin:"400px"});return L.observe(T),()=>L.disconnect()},[l]),b.useEffect(()=>{if(!l)return;const T=new AbortController;let L=null;g({status:"loading"});const R=window.setTimeout(()=>{T.abort(new DOMException("Image fetch timed out","TimeoutError"))},15e3);return fetch(s,{signal:T.signal}).then(async D=>{if(!D.ok)throw new Error(`HTTP ${D.status}`);const P=Number(D.headers.get("X-Image-Width"))||0,O=Number(D.headers.get("X-Image-Height"))||0;return{blob:await D.blob(),width:P,height:O}}).then(({blob:D,width:P,height:O})=>{T.signal.aborted||(L=URL.createObjectURL(D),P>0&&O>0&&v({width:P,height:O}),g({status:"ready",objectUrl:L}))}).catch(()=>{const D=T.signal.reason;T.signal.aborted&&!(D instanceof DOMException&&D.name==="TimeoutError")||g({status:"fallback"})}).finally(()=>{window.clearTimeout(R)}),()=>{window.clearTimeout(R),T.abort(),L&&URL.revokeObjectURL(L)}},[l,s]);const S=uJ(e,y?.width??0,y?.height??0,u),A=S??{width:b2*2,height:b2};return a.jsx("div",{ref:i,className:"block max-w-full",style:S?{width:S.width,height:S.height}:void 0,children:p.status==="ready"?a.jsx("img",{src:p.objectUrl,alt:t,title:n,decoding:"async",className:`${r?"":"termdock-fade-in "}block max-h-[480px] max-w-full object-contain`,style:S?{width:S.width,height:S.height}:void 0,onLoad:T=>{if(y)return;const L=T.currentTarget;L.naturalWidth>0&&L.naturalHeight>0&&v({width:L.naturalWidth,height:L.naturalHeight})}}):p.status==="fallback"?a.jsx("img",{src:s,alt:t,title:n,loading:"lazy",decoding:"async",className:"block max-h-[480px] max-w-full object-contain",style:S?{width:S.width,height:S.height}:void 0,onLoad:T=>{if(y)return;const L=T.currentTarget;L.naturalWidth>0&&L.naturalHeight>0&&v({width:L.naturalWidth,height:L.naturalHeight})}}):a.jsx("div",{"aria-hidden":!0,className:"flex max-w-full animate-pulse items-center justify-center rounded bg-surface-elevated/60",style:{width:A.width,height:A.height},children:a.jsx("span",{className:"text-[10px] text-muted-foreground/60",children:t||"…"})})})}function Ox(e,t,n,r,s){const i=lJ(n,s.markdownFilePath,s.rootPath);if(!i)return`![${t}](${n})`;const l=s.images.length;s.images.push({kind:"image",src:i,alt:t,title:r});const c=a.jsx(fJ,{src:i,alt:t,title:r});return s.onImageOpen?a.jsx("button",{type:"button",className:"my-2 block max-w-full overflow-hidden rounded-md border border-border/20 bg-surface-2 text-left transition hover:border-border-strong focus:outline-none focus:ring-2 focus:ring-ring/45",title:r||t||"Open image",onClick:u=>{u.stopPropagation(),s.onImageOpen?.(l)},children:c},e):a.jsx("span",{className:"my-2 block max-w-full overflow-hidden rounded-md border border-border/20 bg-surface-2",children:c},e)}function Qx(e){let t=e,n="";for(;/[.,;:!?)]$/.test(t);)n=`${t.slice(-1)}${n}`,t=t.slice(0,-1);return{linkText:t,suffix:n}}function m4(e){return/^[^\s@<>]+@[^\s@<>]+\.[^\s@<>]+$/.test(e)}function y2(e){const t=e.trim(),n=t.match(/^<([^>]+)>(?:\s+(?:"([^"]*)"|'([^']*)'|\(([^)]*)\)))?$/);if(n)return{href:n[1],title:n[2]??n[3]??n[4]};const r=t.match(/^(\S+)(?:\s+(?:"([^"]*)"|'([^']*)'|\(([^)]*)\)))?$/);return r?{href:r[1],title:r[2]??r[3]??r[4]}:null}const yT="",hJ=/\\([\\`*{}\[\]#+\-.!_|~>$])/g;function pJ(e){return e.replace(hJ,(t,n)=>`${yT}${n.charCodeAt(0).toString(16).padStart(4,"0")}`)}function g4(e){return e.replace(new RegExp(`${yT}([0-9a-f]{4})`,"g"),(t,n)=>String.fromCharCode(Number.parseInt(n,16))).replace(/\\([()])/g,"$1")}function mJ(e){const t=e.replace(/[\r\n]+/g," ");return/^ .+ $/.test(t)&&/[^ ]/.test(t.slice(1,-1))?t.slice(1,-1):t}const vT={ALLOWED_TAGS:["a","abbr","b","blockquote","br","code","del","details","div","em","i","kbd","li","mark","ol","p","pre","s","span","strong","sub","summary","sup","table","tbody","td","th","thead","tr","u","ul"],ALLOWED_ATTR:["href","title","class","id","colspan","rowspan"],ALLOW_DATA_ATTR:!1,ALLOW_ARIA_ATTR:!0};let Np=null;function wT(){return Np||(Np=i0(()=>import("./purify.es-CC4Brkr_.js"),[]).then(e=>e.default??e).catch(e=>{throw Np=null,e})),Np}function ST({html:e}){const{t}=Un(),[n,r]=b.useState(null);return b.useEffect(()=>{let s=!1;return r(null),wT().then(i=>{s||r(i.sanitize(e,vT))}).catch(()=>{s||r("")}),()=>{s=!0}},[e]),n===null?a.jsx("div",{className:"py-2 text-xs text-muted-foreground",children:t("rightSidebar.renderingHtml")}):n?a.jsx("div",{className:"text-muted-foreground",dangerouslySetInnerHTML:{__html:n}}):null}function gJ({html:e}){const[t,n]=b.useState(null);return b.useEffect(()=>{let r=!1;return n(null),wT().then(s=>{r||n(s.sanitize(e,vT))}).catch(()=>{r||n("")}),()=>{r=!0}},[e]),t===null?null:t?a.jsx("span",{dangerouslySetInnerHTML:{__html:t}}):e}function AT(e){const t=e.trim().match(/^<(div|section|article|aside|table|p|ul|ol|li|blockquote|pre|figure|figcaption)\b[^>]*>/i);if(!t)return null;const n=t[1].toLowerCase();return{tag:n,selfContained:new RegExp(`</${n}>`,"i").test(e)}}let Mp=null;function xJ(){return Mp||(Mp=Promise.all([i0(()=>import("./katex-DnlPpQZa.js"),[]),i0(()=>Promise.resolve({}),__vite__mapDeps([5]))]).then(([e])=>e.default??e).catch(e=>{throw Mp=null,e})),Mp}function Jf({tex:e,display:t=!1}){const[n,r]=b.useState(null),[s,i]=b.useState(!1);if(b.useEffect(()=>{let c=!1;return r(null),i(!1),xJ().then(u=>{c||r(u.renderToString(e,{displayMode:t,throwOnError:!1,trust:!1,strict:"ignore"}))}).catch(()=>{c||i(!0)}),()=>{c=!0}},[t,e]),s)return a.jsx("code",{className:"rounded bg-surface-2 px-1 py-0.5 font-mono text-[0.92em] text-foreground",children:t?`$$${e}$$`:`$${e}$`});if(!n)return a.jsx("span",{className:"text-muted-foreground/70",children:t?"Rendering formula...":e});const l=t?"my-2 overflow-auto rounded-md bg-surface-2 px-3 py-2 text-center":"inline-block align-middle";return a.jsx("span",{className:l,dangerouslySetInnerHTML:{__html:n}})}function bJ(e,t,n){if(/^<br\s*\/?>$/i.test(e))return a.jsx("br",{},t);const r=e.match(/^<(kbd|mark|sub|sup)>(.*?)<\/\1>$/i);if(!r)return/^<(a|abbr|span|b|strong|em|i|u|s|del|code)\b[\s\S]*<\/\1>$/i.test(e)?a.jsx(gJ,{html:e},t):null;const s=r[1].toLowerCase(),i=Ti(r[2],`${t}-${s}`,!0,n);return s==="kbd"?a.jsx("kbd",{className:"rounded border border-border/30 bg-surface-2 px-1.5 py-0.5 font-mono text-[0.85em] text-foreground shadow-sm",children:i},t):s==="mark"?a.jsx("mark",{className:"rounded bg-warning/25 px-0.5 text-foreground",children:i},t):s==="sub"?a.jsx("sub",{children:i},t):a.jsx("sup",{children:i},t)}function Ti(e,t,n=!0,r){const s=pJ(e),i=/(\\\([^)]*\\\)|\$[^$\n]+\$|<br\s*\/?>|<(?:a|abbr|span|b|strong|em|i|u|s|del|code|kbd|mark|sub|sup)\b[\s\S]*?<\/(?:a|abbr|span|b|strong|em|i|u|s|del|code|kbd|mark|sub|sup)>|!?\[[^\]]*\]\((?:<[^>]+>|(?:[^\s()]+|\([^()\s]*\))+)(?:\s+(?:"[^"]*"|'[^']*'|\([^)]*\)))?\)|!?\[[^\]]+\]\[[^\]]*\]|!?\[[^\]]+\]|\[\^[^\]]+\]|(`+)([\s\S]*?)\2|~~[^~]+~~|\*\*[^*]+\*\*|__[^_]+__|\*[^*\s][^*]*\*|_[^_\s][^_]*_|<https?:\/\/[^>\s]+>|<[^\s@<>]+@[^\s@<>]+\.[^\s@<>]+>|https?:\/\/[^\s<]+|www\.[^\s<]+|[^\s@<>]+@[^\s@<>]+\.[^\s@<>]+)/gi,l=[];let c=0,u;for(;(u=i.exec(s))!==null;){u.index>c&&l.push(g4(s.slice(c,u.index)));const h=u[0],p=`${t}-${u.index}`,g=h.startsWith("<")?bJ(h,p,r):null;if(g)l.push(g);else if(h.startsWith("\\(")&&h.endsWith("\\)"))l.push(a.jsx(Jf,{tex:h.slice(2,-2)},p));else if(h.startsWith("$")&&h.endsWith("$"))l.push(a.jsx(Jf,{tex:h.slice(1,-1)},p));else if(h.startsWith("`")){const y=h.match(/^`+/)?.[0].length??1;l.push(a.jsx("code",{className:`${n?"break-all":"whitespace-nowrap"} rounded bg-surface-2 px-1 py-0.5 font-mono text-[0.92em] text-foreground`,children:mJ(h.slice(y,-y))},p))}else if(h.startsWith("~~"))l.push(a.jsx("del",{className:"text-muted-foreground decoration-border-strong",children:Ti(h.slice(2,-2),`${p}-del`,n,r)},p));else if(h.startsWith("**")||h.startsWith("__"))l.push(a.jsx("strong",{className:"font-semibold text-foreground",children:Ti(h.slice(2,-2),`${p}-strong`,n,r)},p));else if(h.startsWith("*")||h.startsWith("_"))l.push(a.jsx("em",{className:"italic",children:Ti(h.slice(1,-1),`${p}-em`,n,r)},p));else if(h.startsWith("![")){const y=h.match(/^!\[([^\]]*)\]\((.*)\)$/),v=h.match(/^!\[([^\]]+)\]\[([^\]]*)\]$/),S=h.match(/^!\[([^\]]+)\]$/);if(y){const A=y2(y[2]);l.push(A?Ox(p,y[1],A.href,A.title,r):h)}else if(v){const A=v[2]||v[1],T=r.referenceDefinitions.get(lm(A));l.push(T?Ox(p,v[1],T.href,T.title,r):h)}else if(S){const A=r.referenceDefinitions.get(lm(S[1]));l.push(A?Ox(p,S[1],A.href,A.title,r):h)}else l.push(h)}else if(h.startsWith("[^")){const y=mT(h.slice(2,-1)),v=r.footnoteDefinitions.get(y);l.push(v?a.jsx("sup",{id:`fnref-${v.id}`,title:v.text,className:"ml-0.5 rounded bg-surface-2 px-1 text-[0.72em] font-semibold text-primary",children:a.jsx("a",{href:`#fn-${v.id}`,className:"text-primary no-underline",children:v.index})},p):h)}else if(h.startsWith("<http")){const y=h.slice(1,-1);l.push(a.jsx("a",{href:y,target:"_blank",rel:"noreferrer",className:`${n?"break-all":"whitespace-nowrap"} text-primary underline decoration-primary/40 underline-offset-2 hover:decoration-primary`,children:y},p))}else if(h.startsWith("<")&&h.endsWith(">")&&m4(h.slice(1,-1))){const y=h.slice(1,-1);l.push(a.jsx("a",{href:`mailto:${y}`,className:`${n?"break-all":"whitespace-nowrap"} text-primary underline decoration-primary/40 underline-offset-2 hover:decoration-primary`,children:y},p))}else if(m4(Qx(h).linkText)){const{linkText:y,suffix:v}=Qx(h);l.push(a.jsx("a",{href:`mailto:${y}`,className:`${n?"break-all":"whitespace-nowrap"} text-primary underline decoration-primary/40 underline-offset-2 hover:decoration-primary`,children:y},p)),v&&l.push(v)}else if(h.startsWith("http")||h.startsWith("www.")){const{linkText:y,suffix:v}=Qx(h),S=y.startsWith("www.")?`https://${y}`:y;l.push(a.jsx("a",{href:S,target:"_blank",rel:"noreferrer",className:`${n?"break-all":"whitespace-nowrap"} text-primary underline decoration-primary/40 underline-offset-2 hover:decoration-primary`,children:y},p)),v&&l.push(v)}else{const y=h.match(/^\[([^\]]+)\]\((.*)\)$/),v=h.match(/^\[([^\]]+)\]\[([^\]]*)\]$/),S=h.match(/^\[([^\]]+)\]$/),A=v?v[2]||v[1]:S?.[1]??null,T=A?r.referenceDefinitions.get(lm(A)):null,L=y?y2(y[2]):null,R=L?.href??T?.href??null,D=R?nJ(R):null,P=y?.[1]??v?.[1]??S?.[1]??"";l.push(D?a.jsx("a",{href:D,title:L?.title??T?.title,target:"_blank",rel:"noreferrer",className:`${n?"break-all":"whitespace-nowrap"} text-primary underline decoration-primary/40 underline-offset-2 hover:decoration-primary`,children:Ti(P,`${p}-link`,n,r)},p):h)}c=i.lastIndex}return c<s.length&&l.push(g4(s.slice(c))),l.length>0?l:[e]}function TT(e){return/(?: {2,}|\\)$/.test(e)}function CT(e){return e.replace(/(?: {2,}|\\)$/,"")}function Gm(e){return/^(?: {4}|\t)/.test(e)}function kT(e){return e.startsWith(" ")?e.slice(1):e.replace(/^ {4}/,"")}function _T(e,t,n){const r=[];return e.forEach((s,i)=>{const l=TT(s);r.push(...Ti(CT(s),`${t}-${i}`,!0,n)),i<e.length-1&&r.push(l?a.jsx("br",{},`${t}-${i}-br`):" ")}),r}function v2(e,t,n){const r=[],s=[];return e.forEach((i,l)=>{s.push(TT(i)),r.push(Ti(CT(i),`${t}-${l}`,!0,n))}),{perLine:r,hardBreaks:s}}function w2(e,t,n,r,s){const i=[];return e.forEach((l,c)=>{const u=n[c]??0,h=!!(s&&u>=s.start&&u<=s.end);i.push(a.jsx("span",{"data-md-ref-start":u,"data-md-ref-end":u,"data-selected":h?"true":void 0,children:l},`${r}-ref-${c}`)),c<e.length-1&&i.push(t[c]?a.jsx("br",{},`${r}-${c}-br`):" ")}),i}function eh(e){const t=e.trim().replace(/^\|/,"").replace(/\|$/,""),n=[];let r="",s=!1,i=0,l=0;for(let c=0;c<t.length;c+=1){const u=t[c];if(s){r+=u,s=!1;continue}if(u==="\\"){s=!0;continue}if(u==="`"){const h=c;for(;c+1<t.length&&t[c+1]==="`";)c+=1;const p=c-h+1;r+="`".repeat(p),i===0?i=p:i===p&&(i=0);continue}if(i===0&&u==="["?l+=1:i===0&&u==="]"&&l>0&&(l-=1),u==="|"&&i===0&&l===0){n.push(r.trim()),r="";continue}r+=u}return s&&(r+="\\"),n.push(r.trim()),n}function LT(e){return eh(e).map(t=>/^:-+:$/.test(t)?"center":/^-+:$/.test(t)?"right":/^:-+$/.test(t)?"left":null)}function Wm(e){return e==="center"?"text-center":e==="right"?"text-right":"text-left"}function Vm(e){return/^\|?\s*:?-{3,}:?\s*(?:\|\s*:?-{3,}:?\s*)*\|?$/.test(e.trim())}function yJ(e,t){return e>96||e>44&&t>.35}function $y(e){return(e.match(/^\s*/)?.[0]??"").replace(/\t/g," ").length}function Hy(e){const t=e.trim().match(/^([-+*]|\d+[.)])\s+(.+)$/);if(!t)return null;const n=/^\d+[.)]$/.test(t[1]);return{ordered:n,start:n?Number.parseInt(t[1],10):void 0,content:t[2]}}function ET(e,t,n,r,s,i=new Set){const l=[],c=[];let u=t;for(;u<e.length;){const h=e[u];if(s&&(zm(h)||i.has(u))){u+=1;continue}const p=Hy(h),g=$y(h);if(!p){if(g>n&&c.length>0){([...c].reverse().find(A=>A.indent<g)?.item??c[c.length-1].item).paragraphs.push(h.trim());for(const A of c)A.item.lineEnd=u+1;u+=1;continue}break}if(g<n||g===n&&p.ordered!==r)break;const y={content:p.content,ordered:p.ordered,start:p.start,children:[],paragraphs:[],lineStart:u+1,lineEnd:u+1};for(;c.length>0&&c[c.length-1].indent>=g;)c.pop();const v=c[c.length-1]?.item??null;v?v.children.push(y):l.push(y),c.push({indent:g,item:y});for(const S of c)S.item.lineEnd=u+1;u+=1}return{items:l,nextIndex:u}}function Uy(e,t,n,r=0){return e.map((s,i)=>{const l=s.content.match(/^\[([ xX])\]\s+(.+)$/);return{key:`item-${i}`,taskItem:!!l,refStart:s.lineStart+r,refEnd:s.lineEnd+r,content:a.jsxs(a.Fragment,{children:[l?a.jsx("input",{type:"checkbox",checked:l[1].toLowerCase()==="x",readOnly:!0,className:"mr-2 align-[-2px] accent-primary"}):null,Ti(l?.[2]??s.content,`li-${t}-${i}`,!0,n),s.paragraphs.length>0&&a.jsx("div",{className:"mt-1 space-y-1 text-muted-foreground",children:s.paragraphs.map((c,u)=>a.jsx("p",{children:Ti(c,`li-${t}-${i}-p-${u}`,!0,n)},`paragraph-${u}`))})]}),groups:vJ(s.children,`${t}-${i}`,n,r)}})}function vJ(e,t,n,r=0){const s=[];for(const i of e){const l=s[s.length-1];l&&l.ordered===i.ordered?l.items.push(i):s.push({ordered:i.ordered,items:[i]})}return s.map((i,l)=>({ordered:i.ordered,start:i.ordered?i.items[0]?.start:void 0,items:Uy(i.items,`${t}-g${l}`,n,r)}))}function zy(e,t){return e.map(n=>{const r=!!(t&&n.refStart<=t.end&&n.refEnd>=t.start);return a.jsxs("li",{className:n.taskItem?"list-none":void 0,"data-md-ref-start":n.refStart,"data-md-ref-end":n.refEnd,"data-selected":r?"true":void 0,children:[n.content,n.groups.length>0&&wJ(n.groups,t)]},n.key)})}function wJ(e,t){return e.map((n,r)=>{const s=n.ordered?"ol":"ul";return a.jsx(s,{start:n.start,className:`${n.ordered?"list-decimal":"list-disc"} mt-1 space-y-0.5 pl-4 marker:text-muted-foreground/60`,children:zy(n.items,t)},`nested-${r}`)})}function SJ(e){const t=Array.from(e.footnoteDefinitions.values()).sort((n,r)=>n.index-r.index);return t.length===0?null:a.jsxs("section",{className:"mt-3 border-t border-border/20 pt-2 text-[12px] leading-5 text-muted-foreground",children:[a.jsx("div",{className:"mb-1 text-[10px] font-semibold uppercase tracking-wide text-muted-foreground/80",children:e.footnotesLabel}),a.jsx("ol",{className:"list-decimal space-y-1 pl-5",children:t.map(n=>a.jsxs("li",{id:`fn-${n.id}`,children:[Ti(n.text,`footnote-${n.id}`,!0,e)," ",a.jsx("a",{href:`#fnref-${n.id}`,className:"text-primary no-underline","aria-label":e.backToFootnoteLabel(n.index),children:"↩"})]},n.id))})]})}function AJ(e,t,n,r){const s=[];let i=0;const l=c=>r?.[c]??c+1;for(;i<e.length;){const c=e[i],u=c.trim();if(!u){i+=1;continue}if(/^<details>\s*$/i.test(u)){const L=i;let R="Details";const D=[];for(i+=1;i<e.length&&!/^<\/details>\s*$/i.test(e[i].trim());){const P=e[i].trim().match(/^<summary>(.*?)<\/summary>\s*$/i);P?R=P[1].trim()||R:D.push(e[i].trimStart()),i+=1}i<e.length&&(i+=1),s.push({kind:"static",node:a.jsxs("details",{className:"overflow-hidden rounded-lg border border-border/20 bg-surface px-3 py-2 text-muted-foreground",children:[a.jsx("summary",{className:"cursor-pointer text-sm font-semibold text-foreground",children:Ti(R,`${t}-details-${L}-summary`,!0,n)}),D.length>0&&a.jsx("div",{className:"mt-2 text-sm leading-6",children:_T(D,`${t}-details-${L}`,n)})]},`${t}-details-${L}`)});continue}const h=AT(c);if(h){const L=[c],R=i;for(i+=1;i<e.length&&!h.selfContained&&!new RegExp(`</${h.tag}>`,"i").test(e[i]);)L.push(e[i]),i+=1;i<e.length&&!h.selfContained&&(L.push(e[i]),i+=1),s.push({kind:"static",node:a.jsx(ST,{html:L.join(`
174
174
  `)},`${t}-html-${R}`)});continue}const p=u.match(/^(```|~~~)\s*(.*)$/);if(p){const L=[],R=p[1],D=p[2]?.trim(),P=i;for(i+=1;i<e.length&&!e[i].trim().startsWith(R);)L.push(e[i]),i+=1;i<e.length&&(i+=1),D.toLowerCase()==="mermaid"?s.push({kind:"static",node:a.jsx(RT,{code:L.join(`
175
175
  `),blockKey:`${t}-code-${P}`},`${t}-code-${P}`)}):["math","latex","tex"].includes(D.toLowerCase())?s.push({kind:"static",node:a.jsx(Jf,{tex:L.join(`
176
176
  `),display:!0},`${t}-code-${P}`)}):s.push({kind:"code",key:`${t}-code-${P}`,code:L.join(`
177
177
  `),lang:D,blockKey:`${t}-code-${P}`,codeStartLine:l(P)+1});continue}if(Gm(c)){const L=[],R=i;for(;i<e.length&&(Gm(e[i])||!e[i].trim());)L.push(e[i].trim()?kT(e[i]):""),i+=1;s.push({kind:"code",key:`${t}-indented-code-${R}`,code:L.join(`
178
- `).replace(/\n+$/,""),lang:"",blockKey:`${t}-indented-code-${R}`,codeStartLine:l(R)});continue}const g=u.match(/^(#{1,6})\s+(.+)$/);if(g){const R=`h${Math.min(6,g[1].length+1)}`,D=pT(g[2]),P=x2(D,n);s.push({kind:"static",node:a.jsx(R,{id:P,className:"scroll-mt-16 font-semibold text-foreground",children:Ti(D,`${t}-heading-${i}`,!0,n)},`${t}-heading-${i}`)}),i+=1;continue}if(i+1<e.length&&c.includes("|")&&Vm(e[i+1])){const L=eh(c),R=LT(e[i+1]),D=[],P=i;for(i+=2;i<e.length&&e[i].includes("|")&&e[i].trim();)D.push(eh(e[i])),i+=1;s.push({kind:"static",node:a.jsx("div",{className:aT,"data-markdown-table-scroll":!0,children:a.jsxs("table",{className:"w-max min-w-full max-w-none table-auto border-collapse text-left text-[11px] sm:text-xs",children:[a.jsx("thead",{className:"bg-surface-2 text-foreground",children:a.jsx("tr",{children:L.map((O,M)=>a.jsx("th",{className:`${iT} ${Wm(R[M]??null)}`,children:a.jsx("div",{className:Um,children:Ti(O,`${t}-th-${P}-${M}`,!0,n)})},`h-${M}`))})}),a.jsx("tbody",{children:D.map((O,M)=>a.jsx("tr",{className:"border-t border-border/10",children:L.map((C,H)=>a.jsx("td",{className:`${oT} ${Wm(R[H]??null)}`,children:a.jsx("div",{className:Um,children:Ti(O[H]??"",`${t}-td-${P}-${M}-${H}`,!0,n)})},`c-${H}`))},`r-${M}`))})]})},`${t}-table-${P}`)});continue}const y=Hy(c);if(y){const L=y.ordered,R=$y(c),D=y.start,P=i,O=ET(e,i,R,L,!1);i=O.nextIndex,s.push({kind:"list",keyPrefix:`${t}-list-${P}`,ordered:L,start:L?D:void 0,renders:Uy(O.items,`${t}-list-${P}`,n,l(0)-1)});continue}const v=[c.trimStart()],S=[l(i)],A=i;for(i+=1;i<e.length&&e[i].trim()&&!g2(e[i])&&!(i+1<e.length&&e[i].includes("|")&&Vm(e[i+1]));)v.push(e[i].trimStart()),S.push(l(i)),i+=1;const T=v2(v,`${t}-p-${A}`,n);s.push({kind:"paragraph",keyPrefix:`${t}-p-${A}`,perLine:T.perLine,hardBreaks:T.hardBreaks,lineNums:S})}return s}function TJ(e,t){return e.map(n=>{switch(n.kind){case"static":return n.node;case"paragraph":return a.jsx("p",{children:w2(n.perLine,n.hardBreaks,n.lineNums,n.keyPrefix,t)},n.keyPrefix);case"list":{const r=n.ordered?"ol":"ul";return a.jsx(r,{start:n.start,className:`${n.ordered?"list-decimal":"list-disc"} space-y-0.5 pl-4 marker:text-muted-foreground/70`,children:zy(n.renders,t)},n.keyPrefix)}case"code":return a.jsx(qm,{code:n.code,lang:n.lang,blockKey:n.blockKey,codeStartLine:n.codeStartLine,lineRange:t},n.key)}})}let Dp=null,x4=!1;const jp=16,IT=192;function CJ(){return Dp||(Dp=i0(()=>import("./mermaid.core-D4Yy5OxZ.js").then(e=>e.aJ),__vite__mapDeps([6,1,7])).then(e=>e.default??e).catch(e=>{throw Dp=null,e})),Dp}function kJ(e){x4||(e.initialize({startOnLoad:!1,securityLevel:"strict",theme:"neutral"}),x4=!0)}function _J(e){const t=e.match(/\sviewBox=(["'])([^"']+)\1/i);if(!t)return e;const[,,n]=t,r=n.trim().split(/[\s,]+/).map(Number),[,,s,i]=r;if(!Number.isFinite(s)||!Number.isFinite(i)||s<=0||i<=0)return e;const l=Math.max(IT,Math.ceil(s)),c=Math.ceil(l/s*i);return e.replace(/<svg\b([^>]*)>/i,(u,h)=>`<svg${h.replace(/\s(?:width|height)=(["']).*?\1/gi,"").replace(/\sstyle=(["']).*?\1/gi,"")} width="${l}" height="${c}">`)}function LJ(e){const t=e?.querySelector("svg");if(!t)return;let n;try{n=t.getBBox()}catch{return}if(!Number.isFinite(n.width)||!Number.isFinite(n.height)||n.width<=0||n.height<=0)return;const r=n.x-jp,s=n.y-jp,i=n.width+jp*2,l=n.height+jp*2,c=Math.max(IT,Math.ceil(i)),u=Math.ceil(c/i*l);t.setAttribute("viewBox",`${r} ${s} ${i} ${l}`),t.setAttribute("width",String(c)),t.setAttribute("height",String(u)),t.removeAttribute("style")}function EJ(e){const t=e.trim().split(/\s+/,1)[0]?.toLowerCase();if(!t)return null;const n=t.replace(/^language-/,"");return Xf(`code.${n}`)??n}function RT({code:e,blockKey:t}){const{t:n}=Un(),[r,s]=b.useState(null),[i,l]=b.useState(!1),c=b.useRef(null),u=b.useContext(fT);b.useEffect(()=>{let p=!1;return s(null),l(!1),CJ().then(async g=>{kJ(g);const y=`termdock-md-mermaid-${t.replace(/[^a-zA-Z0-9_-]/g,"-")}`,{svg:v}=await g.render(y,e);p||s(_J(v))}).catch(()=>{p||l(!0)}),()=>{p=!0}},[t,e]),b.useLayoutEffect(()=>{r&&LJ(c.current)},[r]);const h=b.useCallback(()=>{const p=c.current?.querySelector("svg")?.outerHTML??r;p&&u?.(p)},[u,r]);return i?a.jsx(qm,{code:e,lang:"mermaid",blockKey:`${t}-fallback`}):a.jsxs("div",{className:"overflow-hidden rounded-lg border border-border/20 bg-surface shadow-sm",children:[a.jsx("div",{className:"border-b border-border/15 bg-surface-2 px-3 py-1.5 text-[10px] uppercase tracking-wide text-muted-foreground",children:"mermaid"}),a.jsx("div",{className:"bg-surface p-3",children:r?a.jsx("button",{type:"button",className:"block max-w-full rounded text-left focus:outline-none focus:ring-2 focus:ring-ring/45",title:n("rightSidebar.openMermaidDiagram"),onClick:p=>{p.stopPropagation(),h()},children:a.jsx("span",{ref:c,role:"img","aria-label":n("rightSidebar.mermaidDiagram"),className:"block max-h-[70vh] max-w-full overflow-auto rounded bg-white p-2 text-slate-900 [&_svg]:block [&_svg]:h-auto [&_svg]:max-w-full",dangerouslySetInnerHTML:{__html:r}})}):a.jsx("div",{className:"py-6 text-center text-xs text-muted-foreground",children:n("rightSidebar.renderingDiagram")})})]})}function qm({code:e,lang:t,blockKey:n,codeStartLine:r,lineRange:s}){const i=EJ(t),[l,c]=b.useState(null);b.useEffect(()=>{if(!i||!E9(e)){c(null);return}let h=!1;return I9().then(p=>{if(h||!p.registered(i)){h||c(null);return}try{c(R9(p,e,i))}catch{h||c(null)}}).catch(()=>{h||c(null)}),()=>{h=!0}},[n,e,i]);const u=l??(e||" ").split(`
178
+ `).replace(/\n+$/,""),lang:"",blockKey:`${t}-indented-code-${R}`,codeStartLine:l(R)});continue}const g=u.match(/^(#{1,6})\s+(.+)$/);if(g){const R=`h${Math.min(6,g[1].length+1)}`,D=pT(g[2]),P=x2(D,n);s.push({kind:"static",node:a.jsx(R,{id:P,className:"scroll-mt-16 font-semibold text-foreground",children:Ti(D,`${t}-heading-${i}`,!0,n)},`${t}-heading-${i}`)}),i+=1;continue}if(i+1<e.length&&c.includes("|")&&Vm(e[i+1])){const L=eh(c),R=LT(e[i+1]),D=[],P=i;for(i+=2;i<e.length&&e[i].includes("|")&&e[i].trim();)D.push(eh(e[i])),i+=1;s.push({kind:"static",node:a.jsx("div",{className:aT,"data-markdown-table-scroll":!0,children:a.jsxs("table",{className:"w-max min-w-full max-w-none table-auto border-collapse text-left text-[11px] sm:text-xs",children:[a.jsx("thead",{className:"bg-surface-2 text-foreground",children:a.jsx("tr",{children:L.map((O,M)=>a.jsx("th",{className:`${iT} ${Wm(R[M]??null)}`,children:a.jsx("div",{className:Um,children:Ti(O,`${t}-th-${P}-${M}`,!0,n)})},`h-${M}`))})}),a.jsx("tbody",{children:D.map((O,M)=>a.jsx("tr",{className:"border-t border-border/10",children:L.map((C,H)=>a.jsx("td",{className:`${oT} ${Wm(R[H]??null)}`,children:a.jsx("div",{className:Um,children:Ti(O[H]??"",`${t}-td-${P}-${M}-${H}`,!0,n)})},`c-${H}`))},`r-${M}`))})]})},`${t}-table-${P}`)});continue}const y=Hy(c);if(y){const L=y.ordered,R=$y(c),D=y.start,P=i,O=ET(e,i,R,L,!1);i=O.nextIndex,s.push({kind:"list",keyPrefix:`${t}-list-${P}`,ordered:L,start:L?D:void 0,renders:Uy(O.items,`${t}-list-${P}`,n,l(0)-1)});continue}const v=[c.trimStart()],S=[l(i)],A=i;for(i+=1;i<e.length&&e[i].trim()&&!g2(e[i])&&!(i+1<e.length&&e[i].includes("|")&&Vm(e[i+1]));)v.push(e[i].trimStart()),S.push(l(i)),i+=1;const T=v2(v,`${t}-p-${A}`,n);s.push({kind:"paragraph",keyPrefix:`${t}-p-${A}`,perLine:T.perLine,hardBreaks:T.hardBreaks,lineNums:S})}return s}function TJ(e,t){return e.map(n=>{switch(n.kind){case"static":return n.node;case"paragraph":return a.jsx("p",{children:w2(n.perLine,n.hardBreaks,n.lineNums,n.keyPrefix,t)},n.keyPrefix);case"list":{const r=n.ordered?"ol":"ul";return a.jsx(r,{start:n.start,className:`${n.ordered?"list-decimal":"list-disc"} space-y-0.5 pl-4 marker:text-muted-foreground/70`,children:zy(n.renders,t)},n.keyPrefix)}case"code":return a.jsx(qm,{code:n.code,lang:n.lang,blockKey:n.blockKey,codeStartLine:n.codeStartLine,lineRange:t},n.key)}})}let Dp=null,x4=!1;const jp=16,IT=192;function CJ(){return Dp||(Dp=i0(()=>import("./mermaid.core-DWuc-xG5.js").then(e=>e.aJ),__vite__mapDeps([6,1,7])).then(e=>e.default??e).catch(e=>{throw Dp=null,e})),Dp}function kJ(e){x4||(e.initialize({startOnLoad:!1,securityLevel:"strict",theme:"neutral"}),x4=!0)}function _J(e){const t=e.match(/\sviewBox=(["'])([^"']+)\1/i);if(!t)return e;const[,,n]=t,r=n.trim().split(/[\s,]+/).map(Number),[,,s,i]=r;if(!Number.isFinite(s)||!Number.isFinite(i)||s<=0||i<=0)return e;const l=Math.max(IT,Math.ceil(s)),c=Math.ceil(l/s*i);return e.replace(/<svg\b([^>]*)>/i,(u,h)=>`<svg${h.replace(/\s(?:width|height)=(["']).*?\1/gi,"").replace(/\sstyle=(["']).*?\1/gi,"")} width="${l}" height="${c}">`)}function LJ(e){const t=e?.querySelector("svg");if(!t)return;let n;try{n=t.getBBox()}catch{return}if(!Number.isFinite(n.width)||!Number.isFinite(n.height)||n.width<=0||n.height<=0)return;const r=n.x-jp,s=n.y-jp,i=n.width+jp*2,l=n.height+jp*2,c=Math.max(IT,Math.ceil(i)),u=Math.ceil(c/i*l);t.setAttribute("viewBox",`${r} ${s} ${i} ${l}`),t.setAttribute("width",String(c)),t.setAttribute("height",String(u)),t.removeAttribute("style")}function EJ(e){const t=e.trim().split(/\s+/,1)[0]?.toLowerCase();if(!t)return null;const n=t.replace(/^language-/,"");return Xf(`code.${n}`)??n}function RT({code:e,blockKey:t}){const{t:n}=Un(),[r,s]=b.useState(null),[i,l]=b.useState(!1),c=b.useRef(null),u=b.useContext(fT);b.useEffect(()=>{let p=!1;return s(null),l(!1),CJ().then(async g=>{kJ(g);const y=`termdock-md-mermaid-${t.replace(/[^a-zA-Z0-9_-]/g,"-")}`,{svg:v}=await g.render(y,e);p||s(_J(v))}).catch(()=>{p||l(!0)}),()=>{p=!0}},[t,e]),b.useLayoutEffect(()=>{r&&LJ(c.current)},[r]);const h=b.useCallback(()=>{const p=c.current?.querySelector("svg")?.outerHTML??r;p&&u?.(p)},[u,r]);return i?a.jsx(qm,{code:e,lang:"mermaid",blockKey:`${t}-fallback`}):a.jsxs("div",{className:"overflow-hidden rounded-lg border border-border/20 bg-surface shadow-sm",children:[a.jsx("div",{className:"border-b border-border/15 bg-surface-2 px-3 py-1.5 text-[10px] uppercase tracking-wide text-muted-foreground",children:"mermaid"}),a.jsx("div",{className:"bg-surface p-3",children:r?a.jsx("button",{type:"button",className:"block max-w-full rounded text-left focus:outline-none focus:ring-2 focus:ring-ring/45",title:n("rightSidebar.openMermaidDiagram"),onClick:p=>{p.stopPropagation(),h()},children:a.jsx("span",{ref:c,role:"img","aria-label":n("rightSidebar.mermaidDiagram"),className:"block max-h-[70vh] max-w-full overflow-auto rounded bg-white p-2 text-slate-900 [&_svg]:block [&_svg]:h-auto [&_svg]:max-w-full",dangerouslySetInnerHTML:{__html:r}})}):a.jsx("div",{className:"py-6 text-center text-xs text-muted-foreground",children:n("rightSidebar.renderingDiagram")})})]})}function qm({code:e,lang:t,blockKey:n,codeStartLine:r,lineRange:s}){const i=EJ(t),[l,c]=b.useState(null);b.useEffect(()=>{if(!i||!E9(e)){c(null);return}let h=!1;return I9().then(p=>{if(h||!p.registered(i)){h||c(null);return}try{c(R9(p,e,i))}catch{h||c(null)}}).catch(()=>{h||c(null)}),()=>{h=!0}},[n,e,i]);const u=l??(e||" ").split(`
179
179
  `).map(h=>[h||" "]);return a.jsxs("div",{className:"overflow-hidden rounded-lg border border-border/20 bg-surface shadow-sm",children:[t&&a.jsx("div",{className:"border-b border-border/15 bg-surface-2 px-3 py-1.5 text-[10px] uppercase tracking-wide text-muted-foreground",children:t}),a.jsx("pre",{className:`${Oy} termdock-code overflow-auto p-3 text-[11px] leading-relaxed text-foreground`,children:a.jsx("code",{children:u.map((h,p)=>{const g=r!=null?r+p:null,y=!!(s&&g!=null&&g>=s.start&&g<=s.end);return a.jsxs("span",{"data-md-ref-start":g??void 0,"data-md-ref-end":g??void 0,"data-selected":y?"true":void 0,children:[h,p<u.length-1?`
180
180
  `:null]},`${n}-line-${p}`)})})})]})}function IJ(e,t,n,r,s){e=oJ(e);const i=rJ(e),l=iJ(e),c=[],u={markdownFilePath:t,rootPath:n,referenceDefinitions:i,footnoteDefinitions:sJ(e),headingSlugCounts:new Map,images:c,onImageOpen:r,footnotesLabel:s?.footnotes??"Footnotes",backToFootnoteLabel:s?.backToFootnote??(y=>`Back to footnote ${y}`)},h=[];let p=0;for(;p<e.length;){const y=e[p],v=y.trim();if(zm(y)||l.has(p)){p+=1;continue}if(!v){p+=1;continue}if(/^<details>\s*$/i.test(v)){const M=p;let C="Details";const H=[];for(p+=1;p<e.length&&!/^<\/details>\s*$/i.test(e[p].trim());){const $=e[p].trim().match(/^<summary>(.*?)<\/summary>\s*$/i);$?C=$[1].trim()||C:H.push(e[p].trimStart()),p+=1}p<e.length&&(p+=1),h.push({key:`details-${M}`,startLine:M+1,endLine:p,content:a.jsxs("details",{className:"overflow-hidden rounded-lg border border-border/20 bg-surface px-3 py-2 text-muted-foreground",children:[a.jsx("summary",{className:"cursor-pointer text-sm font-semibold text-foreground",children:Ti(C,`details-${M}-summary`,!0,u)}),H.length>0&&a.jsx("div",{className:"mt-2 text-sm leading-6",children:_T(H,`details-${M}`,u)})]})});continue}const S=AT(y);if(S){const M=[y],C=p;for(p+=1;p<e.length&&!S.selfContained&&!new RegExp(`</${S.tag}>`,"i").test(e[p]);)M.push(e[p]),p+=1;p<e.length&&!S.selfContained&&(M.push(e[p]),p+=1),h.push({key:`html-${C}`,startLine:C+1,endLine:p,content:a.jsx(ST,{html:M.join(`
181
181
  `)})});continue}const A=v.match(/^(```|~~~)\s*(.*)$/);if(A){const M=[],C=A[1],H=A[2]?.trim(),$=p;for(p+=1;p<e.length&&!e[p].trim().startsWith(C);)M.push(e[p]),p+=1;p<e.length&&(p+=1),h.push({key:`code-${$}`,startLine:$+1,endLine:p,fineGrained:H.toLowerCase()!=="mermaid"&&!["math","latex","tex"].includes(H.toLowerCase()),content:H.toLowerCase()==="mermaid"?a.jsx(RT,{code:M.join(`
@@ -448,4 +448,4 @@ ${Qe}
448
448
  + }
449
449
  return context;
450
450
  }`}};function z4(){if(typeof window>"u")return"kotlin";const t=new URLSearchParams(window.location.search).get("fixture");return t&&t in T2?t:"kotlin"}function G4(){return typeof window>"u"?"unified":new URLSearchParams(window.location.search).get("view")==="split"?"split":"unified"}function W4(){if(typeof window>"u")return"words";const e=new URLSearchParams(window.location.search).get("inline");return e==="none"||e==="chars"||e==="words"?e:"words"}function V4(){return typeof window>"u"?!0:new URLSearchParams(window.location.search).get("wrap")!=="off"}function $ee(){const[e,t]=b.useState(()=>z4()),[n,r]=b.useState(()=>G4()),[s,i]=b.useState(()=>W4()),[l,c]=b.useState(()=>V4()),u=T2[e],h=b.useMemo(()=>Object.entries(T2),[]);return b.useEffect(()=>{if(typeof window>"u")return;let p=window.location.search;const g=()=>{window.location.search!==p&&(p=window.location.search,t(z4()),r(G4()),i(W4()),c(V4()))};window.addEventListener("popstate",g),window.addEventListener("pageshow",g),window.addEventListener("focus",g);const y=window.setInterval(g,250);return()=>{window.removeEventListener("popstate",g),window.removeEventListener("pageshow",g),window.removeEventListener("focus",g),window.clearInterval(y)}},[]),a.jsx("div",{className:"min-h-screen bg-background-subtle text-foreground","data-diff-lab":!0,"data-diff-lab-fixture":e,"data-diff-lab-view":n,"data-diff-lab-inline":s,"data-diff-lab-wrap":l?"on":"off",children:a.jsxs("div",{className:"mx-auto flex min-h-screen max-w-[1180px] flex-col px-4 py-4",children:[a.jsxs("header",{className:"mb-3 flex flex-wrap items-center justify-between gap-3 border-b border-border/20 pb-3",children:[a.jsxs("div",{children:[a.jsx("div",{className:"text-sm font-semibold",children:"Diff Lab"}),a.jsx("div",{className:"mt-0.5 text-[11px] text-muted-foreground",children:"Fixed fixtures for iterating diff rendering without app auth, PWA state, or live Git data."})]}),a.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[a.jsx("select",{value:e,onChange:p=>t(p.target.value),"aria-label":"Fixture",className:"h-8 rounded-md border border-border/30 bg-surface px-2 text-xs text-foreground outline-none",children:h.map(([p,g])=>a.jsx("option",{value:p,children:g.label},p))}),a.jsxs("div",{className:"inline-flex h-8 overflow-hidden rounded-full bg-surface-2 p-0.5",children:[a.jsx("button",{type:"button",onClick:()=>r("unified"),className:`rounded-full px-3 text-xs font-semibold ${n==="unified"?"bg-surface-elevated text-foreground":"text-muted-foreground"}`,children:"Unified"}),a.jsx("button",{type:"button",onClick:()=>r("split"),className:`rounded-full px-3 text-xs font-semibold ${n==="split"?"bg-surface-elevated text-foreground":"text-muted-foreground"}`,children:"Split"})]}),a.jsx("div",{className:"inline-flex h-8 overflow-hidden rounded-full bg-surface-2 p-0.5",children:["none","words","chars"].map(p=>a.jsx("button",{type:"button",onClick:()=>i(p),className:`rounded-full px-3 text-xs font-semibold ${s===p?"bg-surface-elevated text-foreground":"text-muted-foreground"}`,children:p},p))}),a.jsxs("button",{type:"button",onClick:()=>c(p=>!p),className:`h-8 rounded-full px-3 text-xs font-semibold ${l?"bg-primary/15 text-primary":"bg-surface-2 text-muted-foreground"}`,children:["Wrap ",l?"on":"off"]})]})]}),a.jsx("main",{className:"min-h-0 flex-1 overflow-auto rounded-lg border border-border/20 bg-surface",children:a.jsx(z9,{filePath:u.path,repoRoot:"/tmp/termdock-diff-lab",changedFile:{path:u.path,absolutePath:`/tmp/termdock-diff-lab/${u.path}`,repoRoot:"/tmp/termdock-diff-lab",status:"modified",staged:!1,unstaged:!0,untracked:!1,tracked:!0,canStage:!1,canUnstage:!1,canStash:!1,canRestoreWorktree:!1},diffOverride:u.diff,oldSourceOverride:u.oldSource,active:!0,wrap:l,showScrollHint:!l,viewType:n,inlineMode:s})})]})})}const zT=40,C2="/tmp/termdock-diff-review-lab";function q4(e,t){const n=[`diff --git a/${e} b/${e}`,`--- a/${e}`,`+++ b/${e}`,`@@ -1,${t} +1,${t} @@`];for(let r=0;r<t;r+=1)r%5===0&&n.push(`-const removed_${r} = ${r};`),r%3===0&&n.push(`+const added_${r} = ${r} * 2;`),n.push(` context line ${r} in ${e}`);return n.join(`
451
- `)}function Hee(e,t){return Array.from({length:zT},(n,r)=>{const s=6+r*7%60,i=`src/module${String(r).padStart(2,"0")}/File${r}.ts`,l=`${C2}/${i}`,c=q4(i,s),u=q4(i,1);return{key:l,path:i,absolutePath:l,status:"modified",repoRoot:C2,displayName:`File${r}.ts`,displayDir:`src/module${String(r).padStart(2,"0")} · ${s} lines`,diffOverride:!t||e.has(r)?c:u,auditRecords:[]}})}function Uee(){const e=b.useMemo(()=>{if(typeof window>"u")return 0;const L=new URLSearchParams(window.location.search).get("delay"),R=L===null?0:Number.parseInt(L,10);return Number.isInteger(R)&&R>0?R:0},[]),t=e>0,[n,r]=b.useState(()=>new Set);b.useEffect(()=>{if(!t)return;const L=Array.from({length:zT},(R,D)=>window.setTimeout(()=>{r(P=>{const O=new Set(P);return O.add(D),O})},e+D*20));return()=>L.forEach(R=>window.clearTimeout(R))},[t,e]);const s=b.useMemo(()=>Hee(n,t),[n,t]),i=b.useMemo(()=>[{key:"mock-repo",root:C2,label:"diff-review-lab",files:s.map(L=>({key:L.key,path:L.path,absolutePath:L.absolutePath,displayName:L.displayName,displayDir:L.displayDir,status:L.status}))}],[s]),l=b.useMemo(()=>{if(typeof window>"u")return null;const L=new URLSearchParams(window.location.search).get("select");if(L===null)return null;const R=Number.parseInt(L,10);return Number.isInteger(R)&&R>=0&&R<s.length?R:null},[s.length]),[c,u]=b.useState(()=>l!==null?s[l].key:null),[h,p]=b.useState(()=>({key:l!==null?s[l].key:null,nonce:l!==null?1:0})),[g,y]=b.useState("list"),[v,S]=b.useState(new Set),[A,T]=b.useState(l!==null?1:0);return a.jsxs("div",{className:"flex h-screen flex-col bg-background text-foreground","data-diff-review-lab":!0,children:[a.jsxs("div",{className:"shrink-0 border-b border-border/20 px-3 py-2 text-xs text-muted-foreground",children:["DiffReview Lab · ",s.length," mock files · selected: ",a.jsx("span",{"data-lab-selected":!0,children:c??"none"})," · slide ",A]}),a.jsx("div",{className:"min-h-0 flex-1",children:a.jsx(Qm,{mobile:!0,backLabel:"Back",files:s,groups:i,selectedKey:c,scrollToKey:h.key,scrollToKeyNonce:h.nonce,mode:g,onModeChange:L=>{L!=="ai"&&y(L)},collapsedDirectoryKeys:v,onToggleDirectory:L=>S(R=>{const D=new Set(R);return D.has(L)?D.delete(L):D.add(L),D}),onSelectFile:L=>{u(L.key),p(R=>({key:L.key,nonce:R.nonce+1}))},onMobileSlideChange:T,renderLeading:()=>null,renderStreamBadge:L=>a.jsx("span",{className:"text-[10px] text-muted-foreground",children:L}),wrap:!0,showScrollHint:!1,activePane:!0})})]})}const zee=6e4,Kx="termdock:build-id:v1";let Y4=!1;function K4(){Y4||(Y4=!0,window.setTimeout(()=>{window.location.reload()},80))}function k2(e){e.waiting?.postMessage({type:"SKIP_WAITING"})}async function Gee(){if(typeof caches>"u")return;const e=await caches.keys();await Promise.all(e.map(t=>caches.delete(t)))}function Wee(e){e.addEventListener("updatefound",()=>{const t=e.installing;t&&t.addEventListener("statechange",()=>{t.state==="installed"&&navigator.serviceWorker.controller&&k2(e)})})}function Vee(){if(typeof window>"u"||!("serviceWorker"in navigator))return;const e="1787996876060",t=window.localStorage.getItem(Kx);if(t&&t!==e){Gee().finally(()=>{window.localStorage.setItem(Kx,e),K4()});return}t!==e&&window.localStorage.setItem(Kx,e);let n=null;navigator.serviceWorker.addEventListener("controllerchange",K4),window.addEventListener("load",()=>{navigator.serviceWorker.register("/sw.js",{scope:"/"}).then(r=>{Wee(r),k2(r);const s=()=>{document.visibilityState==="visible"&&r.update().then(()=>k2(r)).catch(()=>{})};s(),n=window.setInterval(s,zee),document.addEventListener("visibilitychange",s)}).catch(()=>{})}),window.addEventListener("beforeunload",()=>{n!==null&&window.clearInterval(n)})}hF();Vee();try{const e=JSON.parse(window.localStorage.getItem("termdock-color-theme")||"null");(e==="dark"||e==="light")&&(document.documentElement.dataset.theme=e,RA(e))}catch{}function qee(){const{t:e}=Un(),[t,n]=b.useState(null),[r,s]=b.useState(null),i=b.useCallback(async()=>{try{const l=await sE();n(l),s(null)}catch(l){s(l instanceof Error?l.message:"Failed to query auth status")}},[]);return b.useEffect(()=>{i()},[i]),b.useEffect(()=>{const l=()=>{n(c=>c&&{...c,authenticated:!1})};return window.addEventListener(hm,l),()=>window.removeEventListener(hm,l)},[]),t===null?a.jsx("div",{className:"flex w-screen items-center justify-center bg-background text-muted-foreground",style:{height:"var(--app-vh, 100vh)"},children:r?`${e("common.error")}: ${r}`:e("common.loading")}):t.enabled&&!t.authenticated?a.jsx(Oee,{onLoginSuccess:i}):a.jsx(Bee,{})}Lk.createRoot(document.getElementById("root")).render(a.jsx(j.StrictMode,{children:a.jsx(UI,{children:a.jsx(O8,{children:(()=>{const e=new URLSearchParams(window.location.search);return e.get("dag-playground")==="1"?a.jsx(Qee,{}):e.get("diff-review-lab")==="1"?a.jsx(Uee,{}):e.get("diff-lab")==="1"?a.jsx($ee,{}):a.jsx(qee,{})})()})})}));export{pN as M,Zi as R,iM as S,i0 as _,yN as a,wN as b,It as c,a as j,Un as u,cL as v};
451
+ `)}function Hee(e,t){return Array.from({length:zT},(n,r)=>{const s=6+r*7%60,i=`src/module${String(r).padStart(2,"0")}/File${r}.ts`,l=`${C2}/${i}`,c=q4(i,s),u=q4(i,1);return{key:l,path:i,absolutePath:l,status:"modified",repoRoot:C2,displayName:`File${r}.ts`,displayDir:`src/module${String(r).padStart(2,"0")} · ${s} lines`,diffOverride:!t||e.has(r)?c:u,auditRecords:[]}})}function Uee(){const e=b.useMemo(()=>{if(typeof window>"u")return 0;const L=new URLSearchParams(window.location.search).get("delay"),R=L===null?0:Number.parseInt(L,10);return Number.isInteger(R)&&R>0?R:0},[]),t=e>0,[n,r]=b.useState(()=>new Set);b.useEffect(()=>{if(!t)return;const L=Array.from({length:zT},(R,D)=>window.setTimeout(()=>{r(P=>{const O=new Set(P);return O.add(D),O})},e+D*20));return()=>L.forEach(R=>window.clearTimeout(R))},[t,e]);const s=b.useMemo(()=>Hee(n,t),[n,t]),i=b.useMemo(()=>[{key:"mock-repo",root:C2,label:"diff-review-lab",files:s.map(L=>({key:L.key,path:L.path,absolutePath:L.absolutePath,displayName:L.displayName,displayDir:L.displayDir,status:L.status}))}],[s]),l=b.useMemo(()=>{if(typeof window>"u")return null;const L=new URLSearchParams(window.location.search).get("select");if(L===null)return null;const R=Number.parseInt(L,10);return Number.isInteger(R)&&R>=0&&R<s.length?R:null},[s.length]),[c,u]=b.useState(()=>l!==null?s[l].key:null),[h,p]=b.useState(()=>({key:l!==null?s[l].key:null,nonce:l!==null?1:0})),[g,y]=b.useState("list"),[v,S]=b.useState(new Set),[A,T]=b.useState(l!==null?1:0);return a.jsxs("div",{className:"flex h-screen flex-col bg-background text-foreground","data-diff-review-lab":!0,children:[a.jsxs("div",{className:"shrink-0 border-b border-border/20 px-3 py-2 text-xs text-muted-foreground",children:["DiffReview Lab · ",s.length," mock files · selected: ",a.jsx("span",{"data-lab-selected":!0,children:c??"none"})," · slide ",A]}),a.jsx("div",{className:"min-h-0 flex-1",children:a.jsx(Qm,{mobile:!0,backLabel:"Back",files:s,groups:i,selectedKey:c,scrollToKey:h.key,scrollToKeyNonce:h.nonce,mode:g,onModeChange:L=>{L!=="ai"&&y(L)},collapsedDirectoryKeys:v,onToggleDirectory:L=>S(R=>{const D=new Set(R);return D.has(L)?D.delete(L):D.add(L),D}),onSelectFile:L=>{u(L.key),p(R=>({key:L.key,nonce:R.nonce+1}))},onMobileSlideChange:T,renderLeading:()=>null,renderStreamBadge:L=>a.jsx("span",{className:"text-[10px] text-muted-foreground",children:L}),wrap:!0,showScrollHint:!1,activePane:!0})})]})}const zee=6e4,Kx="termdock:build-id:v1";let Y4=!1;function K4(){Y4||(Y4=!0,window.setTimeout(()=>{window.location.reload()},80))}function k2(e){e.waiting?.postMessage({type:"SKIP_WAITING"})}async function Gee(){if(typeof caches>"u")return;const e=await caches.keys();await Promise.all(e.map(t=>caches.delete(t)))}function Wee(e){e.addEventListener("updatefound",()=>{const t=e.installing;t&&t.addEventListener("statechange",()=>{t.state==="installed"&&navigator.serviceWorker.controller&&k2(e)})})}function Vee(){if(typeof window>"u"||!("serviceWorker"in navigator))return;const e="1788015194596",t=window.localStorage.getItem(Kx);if(t&&t!==e){Gee().finally(()=>{window.localStorage.setItem(Kx,e),K4()});return}t!==e&&window.localStorage.setItem(Kx,e);let n=null;navigator.serviceWorker.addEventListener("controllerchange",K4),window.addEventListener("load",()=>{navigator.serviceWorker.register("/sw.js",{scope:"/"}).then(r=>{Wee(r),k2(r);const s=()=>{document.visibilityState==="visible"&&r.update().then(()=>k2(r)).catch(()=>{})};s(),n=window.setInterval(s,zee),document.addEventListener("visibilitychange",s)}).catch(()=>{})}),window.addEventListener("beforeunload",()=>{n!==null&&window.clearInterval(n)})}hF();Vee();try{const e=JSON.parse(window.localStorage.getItem("termdock-color-theme")||"null");(e==="dark"||e==="light")&&(document.documentElement.dataset.theme=e,RA(e))}catch{}function qee(){const{t:e}=Un(),[t,n]=b.useState(null),[r,s]=b.useState(null),i=b.useCallback(async()=>{try{const l=await sE();n(l),s(null)}catch(l){s(l instanceof Error?l.message:"Failed to query auth status")}},[]);return b.useEffect(()=>{i()},[i]),b.useEffect(()=>{const l=()=>{n(c=>c&&{...c,authenticated:!1})};return window.addEventListener(hm,l),()=>window.removeEventListener(hm,l)},[]),t===null?a.jsx("div",{className:"flex w-screen items-center justify-center bg-background text-muted-foreground",style:{height:"var(--app-vh, 100vh)"},children:r?`${e("common.error")}: ${r}`:e("common.loading")}):t.enabled&&!t.authenticated?a.jsx(Oee,{onLoginSuccess:i}):a.jsx(Bee,{})}Lk.createRoot(document.getElementById("root")).render(a.jsx(j.StrictMode,{children:a.jsx(UI,{children:a.jsx(O8,{children:(()=>{const e=new URLSearchParams(window.location.search);return e.get("dag-playground")==="1"?a.jsx(Qee,{}):e.get("diff-review-lab")==="1"?a.jsx(Uee,{}):e.get("diff-lab")==="1"?a.jsx($ee,{}):a.jsx(qee,{})})()})})}));export{pN as M,Zi as R,iM as S,i0 as _,yN as a,wN as b,It as c,a as j,Un as u,cL as v};