difit 5.0.4 → 5.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/assets/{arc-Cvpc9wox.js → arc-jpxKSIAg.js} +1 -1
- package/dist/client/assets/architecture-7EHR7CIX-CGrQkVgf.js +1 -0
- package/dist/client/assets/{architectureDiagram-3BPJPVTR-BXHirrDj.js → architectureDiagram-3BPJPVTR-B92ZxjNC.js} +1 -1
- package/dist/client/assets/{blockDiagram-GPEHLZMM-BRpLgv-q.js → blockDiagram-GPEHLZMM-D3ySUhR3.js} +1 -1
- package/dist/client/assets/{c4Diagram-AAUBKEIU-CplX8jYc.js → c4Diagram-AAUBKEIU-BUzdNEmx.js} +1 -1
- package/dist/client/assets/channel-DG8kr4eK.js +1 -0
- package/dist/client/assets/{chunk-2J33WTMH-dwJ5nvQw.js → chunk-2J33WTMH-1DQ-4Bz3.js} +1 -1
- package/dist/client/assets/{chunk-3OPIFGDE-OGeVbDPg.js → chunk-3OPIFGDE-BQmtgKnq.js} +1 -1
- package/dist/client/assets/{chunk-4BX2VUAB-DnfHVruI.js → chunk-4BX2VUAB-DFX6Qy74.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-pd_S37YA.js → chunk-55IACEB6-DtWki8a-.js} +1 -1
- package/dist/client/assets/{chunk-5ZQYHXKU-ArfAMqoG.js → chunk-5ZQYHXKU-uSJ_ZgCu.js} +1 -1
- package/dist/client/assets/{chunk-727SXJPM-BzheIKau.js → chunk-727SXJPM-BB6xZgSD.js} +1 -1
- package/dist/client/assets/{chunk-AQP2D5EJ-CQGDMarb.js → chunk-AQP2D5EJ-B1Cm665s.js} +1 -1
- package/dist/client/assets/{chunk-BSJP7CBP-DSqewdYw.js → chunk-BSJP7CBP-C15Vti01.js} +1 -1
- package/dist/client/assets/{chunk-CSCIHK7Q-BoaeRdfe.js → chunk-CSCIHK7Q-CaTF_T3W.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-RpzTnrOP.js → chunk-FMBD7UC4-D1irlAGU.js} +1 -1
- package/dist/client/assets/{chunk-KSCS5N6A-BHs8-MAV.js → chunk-KSCS5N6A-DGAjxObb.js} +1 -1
- package/dist/client/assets/{chunk-L5ZTLDWV-BYcWSQbM.js → chunk-L5ZTLDWV-F5Tij0A9.js} +1 -1
- package/dist/client/assets/{chunk-LZXEDZCA-DRj6J5dJ.js → chunk-LZXEDZCA-BkUKm4Z2.js} +2 -2
- package/dist/client/assets/{chunk-ND2GUHAM-ug2Wjvb9.js → chunk-ND2GUHAM-C0rukZcz.js} +1 -1
- package/dist/client/assets/{chunk-NZK2D7GU-Dk4MKRH9.js → chunk-NZK2D7GU-DRm_z6tq.js} +1 -1
- package/dist/client/assets/{chunk-O5CBEL6O-BOdHabw3.js → chunk-O5CBEL6O-BAuwNGEL.js} +1 -1
- package/dist/client/assets/chunk-QZHKN3VN-M1-XSu5b.js +1 -0
- package/dist/client/assets/chunk-WU5MYG2G-BvFjxMiG.js +1 -0
- package/dist/client/assets/{chunk-XPW4576I-Da7NoPX_.js → chunk-XPW4576I-2r3neXxa.js} +1 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-BtF02SOc.js +1 -0
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-BtF02SOc.js +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-CEk26C4c.js → cose-bilkent-S5V4N54A-BF8GqjYH.js} +1 -1
- package/dist/client/assets/{dagre-BM42HDAG-ongG9iKI.js → dagre-BM42HDAG-BcWO-l21.js} +1 -1
- package/dist/client/assets/{diagram-2AECGRRQ-sHrC0YpK.js → diagram-2AECGRRQ-ChdDM46l.js} +1 -1
- package/dist/client/assets/{diagram-5GNKFQAL-DiyuWJTy.js → diagram-5GNKFQAL-DOPYGuMt.js} +1 -1
- package/dist/client/assets/{diagram-KO2AKTUF-rq33v0EM.js → diagram-KO2AKTUF-D6gmyyoA.js} +1 -1
- package/dist/client/assets/{diagram-LMA3HP47-B9MduJJI.js → diagram-LMA3HP47-C93nmtac.js} +1 -1
- package/dist/client/assets/{diagram-OG6HWLK6-D9aMN1s2.js → diagram-OG6HWLK6-Cgm6DAM8.js} +1 -1
- package/dist/client/assets/{dist-Bc1sirV7.js → dist-C7Q1SrJ8.js} +1 -1
- package/dist/client/assets/{erDiagram-TEJ5UH35-BCPWxE2V.js → erDiagram-TEJ5UH35-WzvVTKP0.js} +1 -1
- package/dist/client/assets/eventmodeling-FCH6USID-D2pfiIpz.js +1 -0
- package/dist/client/assets/{flowDiagram-I6XJVG4X-BVXDTNsX.js → flowDiagram-I6XJVG4X-BRAzB7RU.js} +1 -1
- package/dist/client/assets/{ganttDiagram-6RSMTGT7-DzMX72py.js → ganttDiagram-6RSMTGT7-Bned6Md4.js} +1 -1
- package/dist/client/assets/{gitGraph-WXDBUCRP-CXRMm5E-.js → gitGraph-WXDBUCRP-BsCF41a6.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-PVQCEYII-CA28Hjr8.js → gitGraphDiagram-PVQCEYII-sjN-t2iw.js} +1 -1
- package/dist/client/assets/{index-DTbJkNAl.js → index-BC8r72Kq.js} +8 -8
- package/dist/client/assets/index-DxvaSOa7.css +2 -0
- package/dist/client/assets/{info-J43DQDTF-BhHYZyCA.js → info-J43DQDTF-BnH-OC8Z.js} +1 -1
- package/dist/client/assets/{infoDiagram-5YYISTIA-B_7heMXk.js → infoDiagram-5YYISTIA-s8VJEWX-.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-_B2eFxp0.js → ishikawaDiagram-YF4QCWOH-Cr3iGWKj.js} +1 -1
- package/dist/client/assets/{journeyDiagram-JHISSGLW-UuAvsIpQ.js → journeyDiagram-JHISSGLW-DsSeOYHM.js} +1 -1
- package/dist/client/assets/{kanban-definition-UN3LZRKU-C26IuBtK.js → kanban-definition-UN3LZRKU--hgCxMq5.js} +1 -1
- package/dist/client/assets/{line-CUZl-1rD.js → line-BgzUTU3B.js} +1 -1
- package/dist/client/assets/{linear-C5wWifgE.js → linear-Cj1FBal1.js} +1 -1
- package/dist/client/assets/{mermaid-parser.core-Dy_tHulQ.js → mermaid-parser.core-oUly7wXy.js} +2 -2
- package/dist/client/assets/{mermaid.core-B1QeZlh2.js → mermaid.core-QvJGj5O5.js} +3 -3
- package/dist/client/assets/{mindmap-definition-RKZ34NQL-DxlxhHRW.js → mindmap-definition-RKZ34NQL-Cwyk4Byp.js} +1 -1
- package/dist/client/assets/{packet-YPE3B663-MeWxgXnU.js → packet-YPE3B663-C559rspA.js} +1 -1
- package/dist/client/assets/{pie-LRSECV5Y-CbHVt5dp.js → pie-LRSECV5Y-DZyJ170B.js} +1 -1
- package/dist/client/assets/{pieDiagram-4H26LBE5-CZzfh-MX.js → pieDiagram-4H26LBE5-lGuBsE2s.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-W4KKPZXB-qPv_lJql.js → quadrantDiagram-W4KKPZXB-BCczJuw5.js} +1 -1
- package/dist/client/assets/{radar-GUYGQ44K-Ds84e0qa.js → radar-GUYGQ44K-Ckz6UanW.js} +1 -1
- package/dist/client/assets/{requirementDiagram-4Y6WPE33-B9M14J9w.js → requirementDiagram-4Y6WPE33-C4-ojYg3.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-5OEKKPKP-B_eZhIpl.js → sankeyDiagram-5OEKKPKP-CFpy-I_l.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-3UESZ5HK-D8bbvIqJ.js → sequenceDiagram-3UESZ5HK-DmD28UaM.js} +1 -1
- package/dist/client/assets/{src-lpL9sRFD.js → src-BWoEPgyG.js} +1 -1
- package/dist/client/assets/{stateDiagram-AJRCARHV-CHfIufae.js → stateDiagram-AJRCARHV-BNaiNMdT.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-CkEmqrGj.js +1 -0
- package/dist/client/assets/{timeline-definition-PNZ67QCA-Dj4aoMn0.js → timeline-definition-PNZ67QCA-DQyT9Hys.js} +1 -1
- package/dist/client/assets/{treeView-BLDUP644-m4X-eiWs.js → treeView-BLDUP644-BDNxHT3u.js} +1 -1
- package/dist/client/assets/{treemap-LRROVOQU-BQq5Je7q.js → treemap-LRROVOQU-mnVB3buf.js} +1 -1
- package/dist/client/assets/{vennDiagram-CIIHVFJN-CKHrjfK0.js → vennDiagram-CIIHVFJN-BaDh5wWt.js} +1 -1
- package/dist/client/assets/{wardley-L42UT6IY-DCtVey1O.js → wardley-L42UT6IY-CZ9sEBPa.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-YWT4CUSO-B_ihHaBM.js → wardleyDiagram-YWT4CUSO-B_afE6fY.js} +1 -1
- package/dist/client/assets/{xychartDiagram-2RQKCTM6-D1KQhecc.js → xychartDiagram-2RQKCTM6-6Na9BohO.js} +1 -1
- package/dist/client/index.html +2 -2
- package/package.json +2 -2
- package/dist/client/assets/architecture-7EHR7CIX-DahBIMOa.js +0 -1
- package/dist/client/assets/channel-zUPxmEG4.js +0 -1
- package/dist/client/assets/chunk-QZHKN3VN-CQOadPiD.js +0 -1
- package/dist/client/assets/chunk-WU5MYG2G-C3gvwYdI.js +0 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-DaLrWqpH.js +0 -1
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-DaLrWqpH.js +0 -1
- package/dist/client/assets/eventmodeling-FCH6USID-D7SA99fe.js +0 -1
- package/dist/client/assets/index-CFVmjhs_.css +0 -2
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-CDpBjmeQ.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/mermaid.core-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/mermaid.core-QvJGj5O5.js","assets/chunk-O5CBEL6O-BAuwNGEL.js","assets/src-BWoEPgyG.js","assets/chunk-5ZQYHXKU-uSJ_ZgCu.js","assets/dist-C7Q1SrJ8.js","assets/chunk-CSCIHK7Q-CaTF_T3W.js","assets/chunk-3OPIFGDE-BQmtgKnq.js","assets/chunk-L5ZTLDWV-F5Tij0A9.js","assets/chunk-NZK2D7GU-DRm_z6tq.js","assets/rough.esm-CSKSodPl.js","assets/chunk-BSJP7CBP-C15Vti01.js","assets/chunk-KSCS5N6A-DGAjxObb.js","assets/line-BgzUTU3B.js","assets/path-BWPyau1x.js","assets/array-BifhSqXX.js","assets/chunk-LZXEDZCA-BkUKm4Z2.js","assets/chunk-WU5MYG2G-BvFjxMiG.js","assets/chunk-XPW4576I-2r3neXxa.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},c=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},l=(n,r,a)=>(a=n==null?{}:e(i(n)),c(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var u=`data-theme`,d={dark:{"--color-github-bg-primary":`#0d1117`,"--color-github-bg-secondary":`#161b22`,"--color-github-bg-tertiary":`#21262d`,"--color-github-border":`#30363d`,"--color-github-text-primary":`#f0f6fc`,"--color-github-text-secondary":`#8b949e`,"--color-github-text-muted":`#6e7681`,"--color-github-accent":`#238636`,"--color-github-danger":`#da3633`,"--color-github-warning":`#d29922`,"--color-diff-addition-bg":`#0d4429`,"--color-diff-addition-border":`#1b7c3d`,"--color-diff-deletion-bg":`#67060c`,"--color-diff-deletion-border":`#da3633`,"--color-diff-neutral-bg":`#21262d`,"--color-comment-bg":`#1c2128`,"--color-comment-border":`#373e47`,"--color-comment-text":`#e6edf3`,"--color-yellow-btn-bg":`rgba(180, 83, 9, 0.2)`,"--color-yellow-btn-border":`rgba(217, 119, 6, 0.5)`,"--color-yellow-btn-text":`#fbbf24`,"--color-yellow-btn-hover-bg":`rgba(180, 83, 9, 0.3)`,"--color-yellow-btn-hover-border":`#d97706`,"--color-yellow-path-bg":`rgba(180, 83, 9, 0.3)`,"--color-yellow-path-text":`#fbbf24`,"--color-editor-btn-bg":`rgba(248, 250, 252, 0.1)`,"--color-editor-btn-border":`rgba(248, 250, 252, 0.3)`,"--color-editor-btn-text":`#f0f6fc`,"--color-editor-btn-hover-bg":`rgba(248, 250, 252, 0.2)`,"--color-editor-btn-hover-border":`rgba(248, 250, 252, 0.45)`},light:{"--color-github-bg-primary":`#ffffff`,"--color-github-bg-secondary":`#f6f8fa`,"--color-github-bg-tertiary":`#f1f3f4`,"--color-github-border":`#d1d9e0`,"--color-github-text-primary":`#24292f`,"--color-github-text-secondary":`#656d76`,"--color-github-text-muted":`#8c959f`,"--color-github-accent":`#1f883d`,"--color-github-danger":`#cf222e`,"--color-github-warning":`#bf8700`,"--color-diff-addition-bg":`#d1f4cd`,"--color-diff-addition-border":`#1f883d`,"--color-diff-deletion-bg":`#ffd8d3`,"--color-diff-deletion-border":`#cf222e`,"--color-diff-neutral-bg":`#f1f3f4`,"--color-comment-bg":`#fff8e1`,"--color-comment-border":`#ffd54f`,"--color-comment-text":`#5d4037`,"--color-yellow-btn-bg":`#fef3c7`,"--color-yellow-btn-border":`#f59e0b`,"--color-yellow-btn-text":`#92400e`,"--color-yellow-btn-hover-bg":`#fde68a`,"--color-yellow-btn-hover-border":`#d97706`,"--color-yellow-path-bg":`#fde68a`,"--color-yellow-path-text":`#92400e`,"--color-editor-btn-bg":`rgba(248, 250, 252, 0.1)`,"--color-editor-btn-border":`rgba(31, 41, 55, 0.35)`,"--color-editor-btn-text":`#1f2937`,"--color-editor-btn-hover-bg":`rgba(248, 250, 252, 0.2)`,"--color-editor-btn-hover-border":`rgba(31, 41, 55, 0.5)`}},f=`reviewit-appearance-settings`,p=e=>e===`light`||e===`dark`||e===`auto`,m=e=>e===`normal`||e===`deuteranopia`,h=e=>e===`light`||e===`dark`,g=()=>{if(!(typeof window>`u`))try{return window.localStorage}catch{return}},_=()=>{if(!(typeof window>`u`))return window};function v(e=g()){if(!e)return null;try{let t=e.getItem(f);if(!t)return null;let n=JSON.parse(t);if(n&&typeof n==`object`){let e={},t=n;return p(t.theme)&&(e.theme=t.theme),m(t.colorVision)&&(e.colorVision=t.colorVision),e}}catch{return null}return null}function y(e=_()){return e?.matchMedia(`(prefers-color-scheme: dark)`).matches??!0?`dark`:`light`}function b(e,t=y()){return e===`light`||e===`dark`?e:t}function x(e=typeof document>`u`?void 0:document,t=g(),n=_()){let r=e?.documentElement.getAttribute(u)??null;return h(r)?r:b(v(t)?.theme,y(n))}var S={dark:{"--color-github-accent":`#58a6ff`,"--color-github-danger":`#d29922`,"--color-diff-addition-bg":`#0c2d6b`,"--color-diff-addition-border":`#388bfd`,"--color-diff-deletion-bg":`#5a3600`,"--color-diff-deletion-border":`#d29922`},light:{"--color-github-accent":`#0969da`,"--color-github-danger":`#bf8700`,"--color-diff-addition-bg":`#ddf4ff`,"--color-diff-addition-border":`#0969da`,"--color-diff-deletion-bg":`#fff8c5`,"--color-diff-deletion-border":`#bf8700`}};function C(e,t=`normal`,n=document){let r=n.documentElement;r.setAttribute(u,e),r.setAttribute(`data-color-vision`,t);let i=d[e];if(Object.entries(i).forEach(([e,t])=>{r.style.setProperty(e,t)}),t===`deuteranopia`){let t=S[e];Object.entries(t).forEach(([e,t])=>{r.style.setProperty(e,t)})}n.body&&(n.body.style.backgroundColor=`var(--color-github-bg-primary)`,n.body.style.color=`var(--color-github-text-primary)`)}function w(e=typeof document>`u`?void 0:document,t=g(),n=_()){if(!e)return null;let r=v(t),i=b(r?.theme,y(n));return C(i,r?.colorVision??`normal`,e),i}w();var T=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.iterator;function m(e){return typeof e!=`object`||!e?null:(e=p&&e[p]||e[`@@iterator`],typeof e==`function`?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,_={};function v(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function y(){}y.prototype=v.prototype;function b(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}var x=b.prototype=new y;x.constructor=b,g(x,v.prototype),x.isPureReactComponent=!0;var S=Array.isArray;function C(){}var w={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function E(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function D(e,t){return E(e.type,t,e.props)}function O(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function k(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var A=/\/+/g;function j(e,t){return typeof e==`object`&&e&&e.key!=null?k(``+e.key):t.toString(36)}function M(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(C,C):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function N(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,N(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+j(e,0):a,S(o)?(i=``,c!=null&&(i=c.replace(A,`$&/`)+`/`),N(o,r,i,``,function(e){return e})):o!=null&&(O(o)&&(o=D(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(A,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(S(e))for(var u=0;u<e.length;u++)a=e[u],s=l+j(a,u),c+=N(a,r,i,s,o);else if(u=m(e),typeof u==`function`)for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,s=l+j(a,u++),c+=N(a,r,i,s,o);else if(s===`object`){if(typeof e.then==`function`)return N(M(e),r,i,a,o);throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`)}return c}function P(e,t,n){if(e==null)return e;var r=[],i=0;return N(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function ee(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t)},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var F=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},I={map:P,forEach:function(e,t,n){P(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return P(e,function(){t++}),t},toArray:function(e){return P(e,function(e){return e})||[]},only:function(e){if(!O(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}};e.Activity=f,e.Children=I,e.Component=v,e.Fragment=r,e.Profiler=a,e.PureComponent=b,e.StrictMode=i,e.Suspense=l,e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=w,e.__COMPILER_RUNTIME={__proto__:null,c:function(e){return w.H.useMemoCache(e)}},e.cache=function(e){return function(){return e.apply(null,arguments)}},e.cacheSignal=function(){return null},e.cloneElement=function(e,t,n){if(e==null)throw Error(`The argument must be a React element, but you passed `+e+`.`);var r=g({},e.props),i=e.key;if(t!=null)for(a in t.key!==void 0&&(i=``+t.key),t)!T.call(t,a)||a===`key`||a===`__self`||a===`__source`||a===`ref`&&t.ref===void 0||(r[a]=t[a]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var o=Array(a),s=0;s<a;s++)o[s]=arguments[s+2];r.children=o}return E(e.type,i,r)},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:o,_context:e},e},e.createElement=function(e,t,n){var r,i={},a=null;if(t!=null)for(r in t.key!==void 0&&(a=``+t.key),t)T.call(t,r)&&r!==`key`&&r!==`__self`&&r!==`__source`&&(i[r]=t[r]);var o=arguments.length-2;if(o===1)i.children=n;else if(1<o){for(var s=Array(o),c=0;c<o;c++)s[c]=arguments[c+2];i.children=s}if(e&&e.defaultProps)for(r in o=e.defaultProps,o)i[r]===void 0&&(i[r]=o[r]);return E(e,a,i)},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=O,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:ee}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=function(e){var t=w.T,n={};w.T=n;try{var r=e(),i=w.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&r.then(C,F)}catch(e){F(e)}finally{t!==null&&n.types!==null&&(t.types=n.types),w.T=t}},e.unstable_useCacheRefresh=function(){return w.H.useCacheRefresh()},e.use=function(e){return w.H.use(e)},e.useActionState=function(e,t,n){return w.H.useActionState(e,t,n)},e.useCallback=function(e,t){return w.H.useCallback(e,t)},e.useContext=function(e){return w.H.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e,t){return w.H.useDeferredValue(e,t)},e.useEffect=function(e,t){return w.H.useEffect(e,t)},e.useEffectEvent=function(e){return w.H.useEffectEvent(e)},e.useId=function(){return w.H.useId()},e.useImperativeHandle=function(e,t,n){return w.H.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return w.H.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return w.H.useLayoutEffect(e,t)},e.useMemo=function(e,t){return w.H.useMemo(e,t)},e.useOptimistic=function(e,t){return w.H.useOptimistic(e,t)},e.useReducer=function(e,t,n){return w.H.useReducer(e,t,n)},e.useRef=function(e){return w.H.useRef(e)},e.useState=function(e){return w.H.useState(e)},e.useSyncExternalStore=function(e,t,n){return w.H.useSyncExternalStore(e,t,n)},e.useTransition=function(){return w.H.useTransition()},e.version=`19.2.7`})),E=o(((e,t)=>{t.exports=T()})),D=o((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0<n;){var r=n-1>>>1,a=e[r];if(0<i(a,t))e[r]=t,e[n]=a,n=r;else break a}}function n(e){return e.length===0?null:e[0]}function r(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;a:for(var r=0,a=e.length,o=a>>>1;r<o;){var s=2*(r+1)-1,c=e[s],l=s+1,u=e[l];if(0>i(c,n))l<a&&0>i(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(l<a&&0>i(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m)if(n(c)!==null)m=!0,S||(S=!0,O());else{var t=n(l);t!==null&&j(x,t.startTime-e)}}var S=!1,C=-1,w=5,T=-1;function E(){return g?!0:!(e.unstable_now()-T<w)}function D(){if(g=!1,S){var t=e.unstable_now();T=t;var i=!0;try{a:{m=!1,h&&(h=!1,v(C),C=-1),p=!0;var a=f;try{b:{for(b(t),d=n(c);d!==null&&!(d.expirationTime>t&&E());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&j(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?O():S=!1}}}var O;if(typeof y==`function`)O=function(){y(D)};else if(typeof MessageChannel<`u`){var k=new MessageChannel,A=k.port2;k.port1.onmessage=D,O=function(){A.postMessage(null)}}else O=function(){_(D,0)};function j(t,n){C=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125<e?console.error(`forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported`):w=0<e?Math.floor(1e3/e):5},e.unstable_getCurrentPriorityLevel=function(){return f},e.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},e.unstable_requestPaint=function(){g=!0},e.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},e.unstable_scheduleCallback=function(r,i,a){var o=e.unstable_now();switch(typeof a==`object`&&a?(a=a.delay,a=typeof a==`number`&&0<a?o+a:o):a=o,r){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return s=a+s,r={id:u++,callback:i,priorityLevel:r,startTime:a,expirationTime:s,sortIndex:-1},a>o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,j(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,O()))),r},e.unstable_shouldYield=E,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),O=o(((e,t)=>{t.exports=D()})),k=o((e=>{var t=E();function n(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function r(){}var i={d:{f:r,r:function(){throw Error(n(522))},D:r,C:r,L:r,m:r,X:r,S:r,M:r},p:0,findDOMNode:null},a=Symbol.for(`react.portal`);function o(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:a,key:r==null?null:``+r,children:e,containerInfo:t,implementation:n}}var s=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function c(e,t){if(e===`font`)return``;if(typeof t==`string`)return t===`use-credentials`?t:``}e.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=i,e.createPortal=function(e,t){var r=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)throw Error(n(299));return o(e,t,null,r)},e.flushSync=function(e){var t=s.T,n=i.p;try{if(s.T=null,i.p=2,e)return e()}finally{s.T=t,i.p=n,i.d.f()}},e.preconnect=function(e,t){typeof e==`string`&&(t?(t=t.crossOrigin,t=typeof t==`string`?t===`use-credentials`?t:``:void 0):t=null,i.d.C(e,t))},e.prefetchDNS=function(e){typeof e==`string`&&i.d.D(e)},e.preinit=function(e,t){if(typeof e==`string`&&t&&typeof t.as==`string`){var n=t.as,r=c(n,t.crossOrigin),a=typeof t.integrity==`string`?t.integrity:void 0,o=typeof t.fetchPriority==`string`?t.fetchPriority:void 0;n===`style`?i.d.S(e,typeof t.precedence==`string`?t.precedence:void 0,{crossOrigin:r,integrity:a,fetchPriority:o}):n===`script`&&i.d.X(e,{crossOrigin:r,integrity:a,fetchPriority:o,nonce:typeof t.nonce==`string`?t.nonce:void 0})}},e.preinitModule=function(e,t){if(typeof e==`string`)if(typeof t==`object`&&t){if(t.as==null||t.as===`script`){var n=c(t.as,t.crossOrigin);i.d.M(e,{crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0})}}else t??i.d.M(e)},e.preload=function(e,t){if(typeof e==`string`&&typeof t==`object`&&t&&typeof t.as==`string`){var n=t.as,r=c(n,t.crossOrigin);i.d.L(e,n,{crossOrigin:r,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,type:typeof t.type==`string`?t.type:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0,referrerPolicy:typeof t.referrerPolicy==`string`?t.referrerPolicy:void 0,imageSrcSet:typeof t.imageSrcSet==`string`?t.imageSrcSet:void 0,imageSizes:typeof t.imageSizes==`string`?t.imageSizes:void 0,media:typeof t.media==`string`?t.media:void 0})}},e.preloadModule=function(e,t){if(typeof e==`string`)if(t){var n=c(t.as,t.crossOrigin);i.d.m(e,{as:typeof t.as==`string`&&t.as!==`script`?t.as:void 0,crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0})}else i.d.m(e)},e.requestFormReset=function(e){i.d.r(e)},e.unstable_batchedUpdates=function(e,t){return e(t)},e.useFormState=function(e,t,n){return s.H.useFormState(e,t,n)},e.useFormStatus=function(){return s.H.useHostTransitionStatus()},e.version=`19.2.7`})),A=o(((e,t)=>{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=k()})),j=o((e=>{var t=O(),n=E(),r=A();function i(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function a(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function o(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function s(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function c(e){if(e.tag===31){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function l(e){if(o(e)!==e)throw Error(i(188))}function u(e){var t=e.alternate;if(!t){if(t=o(e),t===null)throw Error(i(188));return t===e?e:null}for(var n=e,r=t;;){var a=n.return;if(a===null)break;var s=a.alternate;if(s===null){if(r=a.return,r!==null){n=r;continue}break}if(a.child===s.child){for(s=a.child;s;){if(s===n)return l(a),e;if(s===r)return l(a),t;s=s.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=s;else{for(var c=!1,u=a.child;u;){if(u===n){c=!0,n=a,r=s;break}if(u===r){c=!0,r=a,n=s;break}u=u.sibling}if(!c){for(u=s.child;u;){if(u===n){c=!0,n=s,r=a;break}if(u===r){c=!0,r=s,n=a;break}u=u.sibling}if(!c)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(n.tag!==3)throw Error(i(188));return n.stateNode.current===n?e:t}function d(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=d(e),t!==null)return t;e=e.sibling}return null}var f=Object.assign,p=Symbol.for(`react.element`),m=Symbol.for(`react.transitional.element`),h=Symbol.for(`react.portal`),g=Symbol.for(`react.fragment`),_=Symbol.for(`react.strict_mode`),v=Symbol.for(`react.profiler`),y=Symbol.for(`react.consumer`),b=Symbol.for(`react.context`),x=Symbol.for(`react.forward_ref`),S=Symbol.for(`react.suspense`),C=Symbol.for(`react.suspense_list`),w=Symbol.for(`react.memo`),T=Symbol.for(`react.lazy`),D=Symbol.for(`react.activity`),k=Symbol.for(`react.memo_cache_sentinel`),j=Symbol.iterator;function M(e){return typeof e!=`object`||!e?null:(e=j&&e[j]||e[`@@iterator`],typeof e==`function`?e:null)}var N=Symbol.for(`react.client.reference`);function P(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===N?null:e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case g:return`Fragment`;case v:return`Profiler`;case _:return`StrictMode`;case S:return`Suspense`;case C:return`SuspenseList`;case D:return`Activity`}if(typeof e==`object`)switch(e.$$typeof){case h:return`Portal`;case b:return e.displayName||`Context`;case y:return(e._context.displayName||`Context`)+`.Consumer`;case x:var t=e.render;return e=e.displayName,e||=(e=t.displayName||t.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case w:return t=e.displayName||null,t===null?P(e.type)||`Memo`:t;case T:t=e._payload,e=e._init;try{return P(e(t))}catch{}}return null}var ee=Array.isArray,F=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,I=r.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,te={pending:!1,data:null,method:null,action:null},ne=[],re=-1;function L(e){return{current:e}}function ie(e){0>re||(e.current=ne[re],ne[re]=null,re--)}function R(e,t){re++,ne[re]=e.current,e.current=t}var ae=L(null),oe=L(null),se=L(null),ce=L(null);function le(e,t){switch(R(se,t),R(oe,e),R(ae,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Vd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Vd(t),e=Hd(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}ie(ae),R(ae,e)}function ue(){ie(ae),ie(oe),ie(se)}function de(e){e.memoizedState!==null&&R(ce,e);var t=ae.current,n=Hd(t,e.type);t!==n&&(R(oe,e),R(ae,n))}function fe(e){oe.current===e&&(ie(ae),ie(oe)),ce.current===e&&(ie(ce),Qf._currentValue=te)}var pe,me;function he(e){if(pe===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);pe=t&&t[1]||``,me=-1<e.stack.indexOf(`
|
|
3
3
|
at`)?` (<anonymous>)`:-1<e.stack.indexOf(`@`)?`@unknown:0:0`:``}return`
|
|
4
4
|
`+pe+e+me}var ge=!1;function _e(e,t){if(!e||ge)return``;ge=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var r={DetermineComponentFrameRoot:function(){try{if(t){var n=function(){throw Error()};if(Object.defineProperty(n.prototype,"props",{set:function(){throw Error()}}),typeof Reflect==`object`&&Reflect.construct){try{Reflect.construct(n,[])}catch(e){var r=e}Reflect.construct(e,[],n)}else{try{n.call()}catch(e){r=e}e.call(n.prototype)}}else{try{throw Error()}catch(e){r=e}(n=e())&&typeof n.catch==`function`&&n.catch(function(){})}}catch(e){if(e&&r&&typeof e.stack==`string`)return[e.stack,r.stack]}return[null,null]}};r.DetermineComponentFrameRoot.displayName=`DetermineComponentFrameRoot`;var i=Object.getOwnPropertyDescriptor(r.DetermineComponentFrameRoot,`name`);i&&i.configurable&&Object.defineProperty(r.DetermineComponentFrameRoot,"name",{value:`DetermineComponentFrameRoot`});var a=r.DetermineComponentFrameRoot(),o=a[0],s=a[1];if(o&&s){var c=o.split(`
|
|
@@ -49,18 +49,18 @@ Error generating stack: `+e.message+`
|
|
|
49
49
|
`))+1))}let o=`#`.repeat(i),s=n.enter(`headingAtx`),c=n.enter(`phrasing`);a.move(o+` `);let l=n.containerPhrasing(e,{before:`# `,after:`
|
|
50
50
|
`,...a.current()});return/^[\t ]/.test(l)&&(l=Wg(l.charCodeAt(0))+l.slice(1)),l=l?o+` `+l:o,n.options.closeAtx&&(l+=` `+o),c(),s(),l}Xg.peek=Zg;function Xg(e){return e.value||``}function Zg(){return`<`}Qg.peek=$g;function Qg(e,t,n,r){let i=Vg(n),a=i===`"`?`Quote`:`Apostrophe`,o=n.enter(`image`),s=n.enter(`label`),c=n.createTracker(r),l=c.move(`![`);return l+=c.move(n.safe(e.alt,{before:l,after:`]`,...c.current()})),l+=c.move(`](`),s(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(s=n.enter(`destinationLiteral`),l+=c.move(`<`),l+=c.move(n.safe(e.url,{before:l,after:`>`,...c.current()})),l+=c.move(`>`)):(s=n.enter(`destinationRaw`),l+=c.move(n.safe(e.url,{before:l,after:e.title?` `:`)`,...c.current()}))),s(),e.title&&(s=n.enter(`title${a}`),l+=c.move(` `+i),l+=c.move(n.safe(e.title,{before:l,after:i,...c.current()})),l+=c.move(i),s()),l+=c.move(`)`),o(),l}function $g(){return`!`}e_.peek=t_;function e_(e,t,n,r){let i=e.referenceType,a=n.enter(`imageReference`),o=n.enter(`label`),s=n.createTracker(r),c=s.move(`![`),l=n.safe(e.alt,{before:c,after:`]`,...s.current()});c+=s.move(l+`][`),o();let u=n.stack;n.stack=[],o=n.enter(`reference`);let d=n.safe(n.associationId(e),{before:c,after:`]`,...s.current()});return o(),n.stack=u,a(),i===`full`||!l||l!==d?c+=s.move(d+`]`):i===`shortcut`?c=c.slice(0,-1):c+=s.move(`]`),c}function t_(){return`!`}n_.peek=r_;function n_(e,t,n){let r=e.value||``,i="`",a=-1;for(;RegExp("(^|[^`])"+i+"([^`]|$)").test(r);)i+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=` `+r+` `);++a<n.unsafe.length;){let e=n.unsafe[a],t=n.compilePattern(e),i;if(e.atBreak)for(;i=t.exec(r);){let e=i.index;r.charCodeAt(e)===10&&r.charCodeAt(e-1)===13&&e--,r=r.slice(0,e)+` `+r.slice(i.index+1)}}return i+r+i}function r_(){return"`"}function i_(e,t){let n=Pu(e);return!!(!t.options.resourceLink&&e.url&&!e.title&&e.children&&e.children.length===1&&e.children[0].type===`text`&&(n===e.url||`mailto:`+n===e.url)&&/^[a-z][a-z+.-]+:/i.test(e.url)&&!/[\0- <>\u007F]/.test(e.url))}a_.peek=o_;function a_(e,t,n,r){let i=Vg(n),a=i===`"`?`Quote`:`Apostrophe`,o=n.createTracker(r),s,c;if(i_(e,n)){let t=n.stack;n.stack=[],s=n.enter(`autolink`);let r=o.move(`<`);return r+=o.move(n.containerPhrasing(e,{before:r,after:`>`,...o.current()})),r+=o.move(`>`),s(),n.stack=t,r}s=n.enter(`link`),c=n.enter(`label`);let l=o.move(`[`);return l+=o.move(n.containerPhrasing(e,{before:l,after:`](`,...o.current()})),l+=o.move(`](`),c(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(c=n.enter(`destinationLiteral`),l+=o.move(`<`),l+=o.move(n.safe(e.url,{before:l,after:`>`,...o.current()})),l+=o.move(`>`)):(c=n.enter(`destinationRaw`),l+=o.move(n.safe(e.url,{before:l,after:e.title?` `:`)`,...o.current()}))),c(),e.title&&(c=n.enter(`title${a}`),l+=o.move(` `+i),l+=o.move(n.safe(e.title,{before:l,after:i,...o.current()})),l+=o.move(i),c()),l+=o.move(`)`),s(),l}function o_(e,t,n){return i_(e,n)?`<`:`[`}s_.peek=c_;function s_(e,t,n,r){let i=e.referenceType,a=n.enter(`linkReference`),o=n.enter(`label`),s=n.createTracker(r),c=s.move(`[`),l=n.containerPhrasing(e,{before:c,after:`]`,...s.current()});c+=s.move(l+`][`),o();let u=n.stack;n.stack=[],o=n.enter(`reference`);let d=n.safe(n.associationId(e),{before:c,after:`]`,...s.current()});return o(),n.stack=u,a(),i===`full`||!l||l!==d?c+=s.move(d+`]`):i===`shortcut`?c=c.slice(0,-1):c+=s.move(`]`),c}function c_(){return`[`}function l_(e){let t=e.options.bullet||`*`;if(t!==`*`&&t!==`+`&&t!==`-`)throw Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function u_(e){let t=l_(e),n=e.options.bulletOther;if(!n)return t===`*`?`-`:`*`;if(n!==`*`&&n!==`+`&&n!==`-`)throw Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function d_(e){let t=e.options.bulletOrdered||`.`;if(t!==`.`&&t!==`)`)throw Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function f_(e){let t=e.options.rule||`*`;if(t!==`*`&&t!==`-`&&t!==`_`)throw Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function p_(e,t,n,r){let i=n.enter(`list`),a=n.bulletCurrent,o=e.ordered?d_(n):l_(n),s=e.ordered?o===`.`?`)`:`.`:u_(n),c=t&&n.bulletLastUsed?o===n.bulletLastUsed:!1;if(!e.ordered){let t=e.children?e.children[0]:void 0;if((o===`*`||o===`-`)&&t&&(!t.children||!t.children[0])&&n.stack[n.stack.length-1]===`list`&&n.stack[n.stack.length-2]===`listItem`&&n.stack[n.stack.length-3]===`list`&&n.stack[n.stack.length-4]===`listItem`&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(c=!0),f_(n)===o&&t){let t=-1;for(;++t<e.children.length;){let n=e.children[t];if(n&&n.type===`listItem`&&n.children&&n.children[0]&&n.children[0].type===`thematicBreak`){c=!0;break}}}}c&&(o=s),n.bulletCurrent=o;let l=n.containerFlow(e,r);return n.bulletLastUsed=o,n.bulletCurrent=a,i(),l}function m_(e){let t=e.options.listItemIndent||`one`;if(t!==`tab`&&t!==`one`&&t!==`mixed`)throw Error("Cannot serialize items with `"+t+"` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`");return t}function h_(e,t,n,r){let i=m_(n),a=n.bulletCurrent||l_(n);t&&t.type===`list`&&t.ordered&&(a=(typeof t.start==`number`&&t.start>-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+a);let o=a.length+1;(i===`tab`||i===`mixed`&&(t&&t.type===`list`&&t.spread||e.spread))&&(o=Math.ceil(o/4)*4);let s=n.createTracker(r);s.move(a+` `.repeat(o-a.length)),s.shift(o);let c=n.enter(`listItem`),l=n.indentLines(n.containerFlow(e,s.current()),u);return c(),l;function u(e,t,n){return t?(n?``:` `.repeat(o))+e:(n?a:a+` `.repeat(o-a.length))+e}}function g_(e,t,n,r){let i=n.enter(`paragraph`),a=n.enter(`phrasing`),o=n.containerPhrasing(e,r);return a(),i(),o}var __=wm([`break`,`delete`,`emphasis`,`footnote`,`footnoteReference`,`image`,`imageReference`,`inlineCode`,`inlineMath`,`link`,`linkReference`,`mdxJsxTextElement`,`mdxTextExpression`,`strong`,`text`,`textDirective`]);function v_(e,t,n,r){return(e.children.some(function(e){return __(e)})?n.containerPhrasing:n.containerFlow).call(n,e,r)}function y_(e){let t=e.options.strong||`*`;if(t!==`*`&&t!==`_`)throw Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}b_.peek=x_;function b_(e,t,n,r){let i=y_(n),a=n.enter(`strong`),o=n.createTracker(r),s=o.move(i+i),c=o.move(n.containerPhrasing(e,{after:i,before:s,...o.current()})),l=c.charCodeAt(0),u=Gg(r.before.charCodeAt(r.before.length-1),l,i);u.inside&&(c=Wg(l)+c.slice(1));let d=c.charCodeAt(c.length-1),f=Gg(r.after.charCodeAt(0),d,i);f.inside&&(c=c.slice(0,-1)+Wg(d));let p=o.move(i+i);return a(),n.attentionEncodeSurroundingInfo={after:f.outside,before:u.outside},s+c+p}function x_(e,t,n){return n.options.strong||`*`}function S_(e,t,n,r){return n.safe(e.value,r)}function C_(e){let t=e.options.ruleRepetition||3;if(t<3)throw Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function w_(e,t,n){let r=(f_(n)+(n.options.ruleSpaces?` `:``)).repeat(C_(n));return n.options.ruleSpaces?r.slice(0,-1):r}var T_={blockquote:jg,break:Fg,code:zg,definition:Hg,emphasis:Kg,hardBreak:Fg,heading:Yg,html:Xg,image:Qg,imageReference:e_,inlineCode:n_,link:a_,linkReference:s_,list:p_,listItem:h_,paragraph:g_,root:v_,strong:b_,text:S_,thematicBreak:w_};function E_(){return{enter:{table:D_,tableData:j_,tableHeader:j_,tableRow:k_},exit:{codeText:M_,table:O_,tableData:A_,tableHeader:A_,tableRow:A_}}}function D_(e){let t=e._align;this.enter({type:`table`,align:t.map(function(e){return e===`none`?null:e}),children:[]},e),this.data.inTable=!0}function O_(e){this.exit(e),this.data.inTable=void 0}function k_(e){this.enter({type:`tableRow`,children:[]},e)}function A_(e){this.exit(e)}function j_(e){this.enter({type:`tableCell`,children:[]},e)}function M_(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,N_));let n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function N_(e,t){return t===`|`?t:e}function P_(e){let t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,i=t.stringLength,a=n?` `:`|`;return{unsafe:[{character:`\r`,inConstruct:`tableCell`},{character:`
|
|
51
51
|
`,inConstruct:`tableCell`},{atBreak:!0,character:`|`,after:`[ :-]`},{character:`|`,inConstruct:`tableCell`},{atBreak:!0,character:`:`,after:`-`},{atBreak:!0,character:`-`,after:`[:|-]`}],handlers:{inlineCode:f,table:o,tableCell:c,tableRow:s}};function o(e,t,n,r){return l(u(e,n,r),e.align)}function s(e,t,n,r){let i=l([d(e,n,r)]);return i.slice(0,i.indexOf(`
|
|
52
|
-
`))}function c(e,t,n,r){let i=n.enter(`tableCell`),o=n.enter(`phrasing`),s=n.containerPhrasing(e,{...r,before:a,after:a});return o(),i(),s}function l(e,t){return Og(e,{align:t,alignDelimiters:r,padding:n,stringLength:i})}function u(e,t,n){let r=e.children,i=-1,a=[],o=t.enter(`table`);for(;++i<r.length;)a[i]=d(r[i],t,n);return o(),a}function d(e,t,n){let r=e.children,i=-1,a=[],o=t.enter(`tableRow`);for(;++i<r.length;)a[i]=c(r[i],e,t,n);return o(),a}function f(e,t,n){let r=T_.inlineCode(e,t,n);return n.stack.includes(`tableCell`)&&(r=r.replace(/\|/g,`\\$&`)),r}}function F_(){return{exit:{taskListCheckValueChecked:L_,taskListCheckValueUnchecked:L_,paragraph:R_}}}function I_(){return{unsafe:[{atBreak:!0,character:`-`,after:`[:|-]`}],handlers:{listItem:z_}}}function L_(e){let t=this.stack[this.stack.length-2];t.type,t.checked=e.type===`taskListCheckValueChecked`}function R_(e){let t=this.stack[this.stack.length-2];if(t&&t.type===`listItem`&&typeof t.checked==`boolean`){let e=this.stack[this.stack.length-1];e.type;let n=e.children[0];if(n&&n.type===`text`){let r=t.children,i=-1,a;for(;++i<r.length;){let e=r[i];if(e.type===`paragraph`){a=e;break}}a===e&&(n.value=n.value.slice(1),n.value.length===0?e.children.shift():e.position&&n.position&&typeof n.position.start.offset==`number`&&(n.position.start.column++,n.position.start.offset++,e.position.start=Object.assign({},n.position.start)))}}this.exit(e)}function z_(e,t,n,r){let i=e.children[0],a=typeof e.checked==`boolean`&&i&&i.type===`paragraph`,o=`[`+(e.checked?`x`:` `)+`] `,s=n.createTracker(r);a&&s.move(o);let c=T_.listItem(e,t,n,{...r,...s.current()});return a&&(c=c.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/,l)),c;function l(e){return e+o}}function B_(){return[Kh(),gg(),xg(),E_(),F_()]}function V_(e){return{extensions:[qh(),_g(e),Sg(),P_(e),I_()]}}var H_={tokenize:nv,partial:!0},U_={tokenize:rv,partial:!0},W_={tokenize:iv,partial:!0},G_={tokenize:av,partial:!0},K_={tokenize:ov,partial:!0},q_={name:`wwwAutolink`,tokenize:ev,previous:sv},J_={name:`protocolAutolink`,tokenize:tv,previous:cv},Y_={name:`emailAutolink`,tokenize:$_,previous:lv},X_={};function Z_(){return{text:X_}}for(var Q_=48;Q_<123;)X_[Q_]=Y_,Q_++,Q_===58?Q_=65:Q_===91&&(Q_=97);X_[43]=Y_,X_[45]=Y_,X_[46]=Y_,X_[95]=Y_,X_[72]=[Y_,J_],X_[104]=[Y_,J_],X_[87]=[Y_,q_],X_[119]=[Y_,q_];function $_(e,t,n){let r=this,i,a;return o;function o(t){return!uv(t)||!lv.call(r,r.previous)||dv(r.events)?n(t):(e.enter(`literalAutolink`),e.enter(`literalAutolinkEmail`),s(t))}function s(t){return uv(t)?(e.consume(t),s):t===64?(e.consume(t),c):n(t)}function c(t){return t===46?e.check(K_,u,l)(t):t===45||t===95||Yu(t)?(a=!0,e.consume(t),c):u(t)}function l(t){return e.consume(t),i=!0,c}function u(o){return a&&i&&Ju(r.previous)?(e.exit(`literalAutolinkEmail`),e.exit(`literalAutolink`),t(o)):n(o)}}function ev(e,t,n){let r=this;return i;function i(t){return t!==87&&t!==119||!sv.call(r,r.previous)||dv(r.events)?n(t):(e.enter(`literalAutolink`),e.enter(`literalAutolinkWww`),e.check(H_,e.attempt(U_,e.attempt(W_,a),n),n)(t))}function a(n){return e.exit(`literalAutolinkWww`),e.exit(`literalAutolink`),t(n)}}function tv(e,t,n){let r=this,i=``,a=!1;return o;function o(t){return(t===72||t===104)&&cv.call(r,r.previous)&&!dv(r.events)?(e.enter(`literalAutolink`),e.enter(`literalAutolinkHttp`),i+=String.fromCodePoint(t),e.consume(t),s):n(t)}function s(t){if(Ju(t)&&i.length<5)return i+=String.fromCodePoint(t),e.consume(t),s;if(t===58){let n=i.toLowerCase();if(n===`http`||n===`https`)return e.consume(t),c}return n(t)}function c(t){return t===47?(e.consume(t),a?l:(a=!0,c)):n(t)}function l(t){return t===null||Zu(t)||td(t)||rd(t)||nd(t)?n(t):e.attempt(U_,e.attempt(W_,u),n)(t)}function u(n){return e.exit(`literalAutolinkHttp`),e.exit(`literalAutolink`),t(n)}}function nv(e,t,n){let r=0;return i;function i(t){return(t===87||t===119)&&r<3?(r++,e.consume(t),i):t===46&&r===3?(e.consume(t),a):n(t)}function a(e){return e===null?n(e):t(e)}}function rv(e,t,n){let r,i,a;return o;function o(t){return t===46||t===95?e.check(G_,c,s)(t):t===null||td(t)||rd(t)||t!==45&&nd(t)?c(t):(a=!0,e.consume(t),o)}function s(t){return t===95?r=!0:(i=r,r=void 0),e.consume(t),o}function c(e){return i||r||!a?n(e):t(e)}}function iv(e,t){let n=0,r=0;return i;function i(o){return o===40?(n++,e.consume(o),i):o===41&&r<n?a(o):o===33||o===34||o===38||o===39||o===41||o===42||o===44||o===46||o===58||o===59||o===60||o===63||o===93||o===95||o===126?e.check(G_,t,a)(o):o===null||td(o)||rd(o)?t(o):(e.consume(o),i)}function a(t){return t===41&&r++,e.consume(t),i}}function av(e,t,n){return r;function r(o){return o===33||o===34||o===39||o===41||o===42||o===44||o===46||o===58||o===59||o===63||o===95||o===126?(e.consume(o),r):o===38?(e.consume(o),a):o===93?(e.consume(o),i):o===60||o===null||td(o)||rd(o)?t(o):n(o)}function i(e){return e===null||e===40||e===91||td(e)||rd(e)?t(e):r(e)}function a(e){return Ju(e)?o(e):n(e)}function o(t){return t===59?(e.consume(t),r):Ju(t)?(e.consume(t),o):n(t)}}function ov(e,t,n){return r;function r(t){return e.consume(t),i}function i(e){return Yu(e)?n(e):t(e)}}function sv(e){return e===null||e===40||e===42||e===95||e===91||e===93||e===126||td(e)}function cv(e){return!Ju(e)}function lv(e){return!(e===47||uv(e))}function uv(e){return e===43||e===45||e===46||e===95||Yu(e)}function dv(e){let t=e.length,n=!1;for(;t--;){let r=e[t][1];if((r.type===`labelLink`||r.type===`labelImage`)&&!r._balanced){n=!0;break}if(r._gfmAutolinkLiteralWalkedInto){n=!1;break}}return e.length>0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}var fv={tokenize:bv,partial:!0};function pv(){return{document:{91:{name:`gfmFootnoteDefinition`,tokenize:_v,continuation:{tokenize:vv},exit:yv}},text:{91:{name:`gfmFootnoteCall`,tokenize:gv},93:{name:`gfmPotentialFootnoteCall`,add:`after`,tokenize:mv,resolveTo:hv}}}}function mv(e,t,n){let r=this,i=r.events.length,a=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),o;for(;i--;){let e=r.events[i][1];if(e.type===`labelImage`){o=e;break}if(e.type===`gfmFootnoteCall`||e.type===`labelLink`||e.type===`label`||e.type===`image`||e.type===`link`)break}return s;function s(i){if(!o||!o._balanced)return n(i);let s=qu(r.sliceSerialize({start:o.end,end:r.now()}));return s.codePointAt(0)!==94||!a.includes(s.slice(1))?n(i):(e.enter(`gfmFootnoteCallLabelMarker`),e.consume(i),e.exit(`gfmFootnoteCallLabelMarker`),t(i))}}function hv(e,t){let n=e.length;for(;n--;)if(e[n][1].type===`labelImage`&&e[n][0]===`enter`){e[n][1];break}e[n+1][1].type=`data`,e[n+3][1].type=`gfmFootnoteCallLabelMarker`;let r={type:`gfmFootnoteCall`,start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},i={type:`gfmFootnoteCallMarker`,start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};i.end.column++,i.end.offset++,i.end._bufferIndex++;let a={type:`gfmFootnoteCallString`,start:Object.assign({},i.end),end:Object.assign({},e[e.length-1][1].start)},o={type:`chunkString`,contentType:`string`,start:Object.assign({},a.start),end:Object.assign({},a.end)},s=[e[n+1],e[n+2],[`enter`,r,t],e[n+3],e[n+4],[`enter`,i,t],[`exit`,i,t],[`enter`,a,t],[`enter`,o,t],[`exit`,o,t],[`exit`,a,t],e[e.length-2],e[e.length-1],[`exit`,r,t]];return e.splice(n,e.length-n+1,...s),e}function gv(e,t,n){let r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),a=0,o;return s;function s(t){return e.enter(`gfmFootnoteCall`),e.enter(`gfmFootnoteCallLabelMarker`),e.consume(t),e.exit(`gfmFootnoteCallLabelMarker`),c}function c(t){return t===94?(e.enter(`gfmFootnoteCallMarker`),e.consume(t),e.exit(`gfmFootnoteCallMarker`),e.enter(`gfmFootnoteCallString`),e.enter(`chunkString`).contentType=`string`,l):n(t)}function l(s){if(a>999||s===93&&!o||s===null||s===91||td(s))return n(s);if(s===93){e.exit(`chunkString`);let a=e.exit(`gfmFootnoteCallString`);return i.includes(qu(r.sliceSerialize(a)))?(e.enter(`gfmFootnoteCallLabelMarker`),e.consume(s),e.exit(`gfmFootnoteCallLabelMarker`),e.exit(`gfmFootnoteCall`),t):n(s)}return td(s)||(o=!0),a++,e.consume(s),s===92?u:l}function u(t){return t===91||t===92||t===93?(e.consume(t),a++,l):l(t)}}function _v(e,t,n){let r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),a,o=0,s;return c;function c(t){return e.enter(`gfmFootnoteDefinition`)._container=!0,e.enter(`gfmFootnoteDefinitionLabel`),e.enter(`gfmFootnoteDefinitionLabelMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionLabelMarker`),l}function l(t){return t===94?(e.enter(`gfmFootnoteDefinitionMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionMarker`),e.enter(`gfmFootnoteDefinitionLabelString`),e.enter(`chunkString`).contentType=`string`,u):n(t)}function u(t){if(o>999||t===93&&!s||t===null||t===91||td(t))return n(t);if(t===93){e.exit(`chunkString`);let n=e.exit(`gfmFootnoteDefinitionLabelString`);return a=qu(r.sliceSerialize(n)),e.enter(`gfmFootnoteDefinitionLabelMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionLabelMarker`),e.exit(`gfmFootnoteDefinitionLabel`),f}return td(t)||(s=!0),o++,e.consume(t),t===92?d:u}function d(t){return t===91||t===92||t===93?(e.consume(t),o++,u):u(t)}function f(t){return t===58?(e.enter(`definitionMarker`),e.consume(t),e.exit(`definitionMarker`),i.includes(a)||i.push(a),Q(e,p,`gfmFootnoteDefinitionWhitespace`)):n(t)}function p(e){return t(e)}}function vv(e,t,n){return e.check(yd,t,e.attempt(fv,t,n))}function yv(e){e.exit(`gfmFootnoteDefinition`)}function bv(e,t,n){let r=this;return Q(e,i,`gfmFootnoteDefinitionIndent`,5);function i(e){let i=r.events[r.events.length-1];return i&&i[1].type===`gfmFootnoteDefinitionIndent`&&i[2].sliceSerialize(i[1],!0).length===4?t(e):n(e)}}function xv(e){let t=(e||{}).singleTilde,n={name:`strikethrough`,tokenize:i,resolveAll:r};return t??=!0,{text:{126:n},insideSpan:{null:[n]},attentionMarkers:{null:[126]}};function r(e,t){let n=-1;for(;++n<e.length;)if(e[n][0]===`enter`&&e[n][1].type===`strikethroughSequenceTemporary`&&e[n][1]._close){let r=n;for(;r--;)if(e[r][0]===`exit`&&e[r][1].type===`strikethroughSequenceTemporary`&&e[r][1]._open&&e[n][1].end.offset-e[n][1].start.offset===e[r][1].end.offset-e[r][1].start.offset){e[n][1].type=`strikethroughSequence`,e[r][1].type=`strikethroughSequence`;let i={type:`strikethrough`,start:Object.assign({},e[r][1].start),end:Object.assign({},e[n][1].end)},a={type:`strikethroughText`,start:Object.assign({},e[r][1].end),end:Object.assign({},e[n][1].start)},o=[[`enter`,i,t],[`enter`,e[r][1],t],[`exit`,e[r][1],t],[`enter`,a,t]],s=t.parser.constructs.insideSpan.null;s&&Bu(o,o.length,0,pd(s,e.slice(r+1,n),t)),Bu(o,o.length,0,[[`exit`,a,t],[`enter`,e[n][1],t],[`exit`,e[n][1],t],[`exit`,i,t]]),Bu(e,r-1,n-r+3,o),n=r+o.length-2;break}}for(n=-1;++n<e.length;)e[n][1].type===`strikethroughSequenceTemporary`&&(e[n][1].type=`data`);return e}function i(e,n,r){let i=this.previous,a=this.events,o=0;return s;function s(t){return i===126&&a[a.length-1][1].type!==`characterEscape`?r(t):(e.enter(`strikethroughSequenceTemporary`),c(t))}function c(a){let s=fd(i);if(a===126)return o>1?r(a):(e.consume(a),o++,c);if(o<2&&!t)return r(a);let l=e.exit(`strikethroughSequenceTemporary`),u=fd(a);return l._open=!u||u===2&&!!s,l._close=!s||s===2&&!!u,n(a)}}}var Sv=class{constructor(){this.map=[]}add(e,t,n){Cv(this,e,t,n)}consume(e){if(this.map.sort(function(e,t){return e[0]-t[0]}),this.map.length===0)return;let t=this.map.length,n=[];for(;t>0;)--t,n.push(e.slice(this.map[t][0]+this.map[t][1]),this.map[t][2]),e.length=this.map[t][0];n.push(e.slice()),e.length=0;let r=n.pop();for(;r;){for(let t of r)e.push(t);r=n.pop()}this.map.length=0}};function Cv(e,t,n,r){let i=0;if(!(n===0&&r.length===0)){for(;i<e.map.length;){if(e.map[i][0]===t){e.map[i][1]+=n,e.map[i][2].push(...r);return}i+=1}e.map.push([t,n,r])}}function wv(e,t){let n=!1,r=[];for(;t<e.length;){let i=e[t];if(n){if(i[0]===`enter`)i[1].type===`tableContent`&&r.push(e[t+1][1].type===`tableDelimiterMarker`?`left`:`none`);else if(i[1].type===`tableContent`){if(e[t-1][1].type===`tableDelimiterMarker`){let e=r.length-1;r[e]=r[e]===`left`?`center`:`right`}}else if(i[1].type===`tableDelimiterRow`)break}else i[0]===`enter`&&i[1].type===`tableDelimiterRow`&&(n=!0);t+=1}return r}function Tv(){return{flow:{null:{name:`table`,tokenize:Ev,resolveAll:Dv}}}}function Ev(e,t,n){let r=this,i=0,a=0,o;return s;function s(e){let t=r.events.length-1;for(;t>-1;){let e=r.events[t][1].type;if(e===`lineEnding`||e===`linePrefix`)t--;else break}let i=t>-1?r.events[t][1].type:null,a=i===`tableHead`||i===`tableRow`?S:c;return a===S&&r.parser.lazy[r.now().line]?n(e):a(e)}function c(t){return e.enter(`tableHead`),e.enter(`tableRow`),l(t)}function l(e){return e===124?u(e):(o=!0,a+=1,u(e))}function u(t){return t===null?n(t):X(t)?a>1?(a=0,r.interrupt=!0,e.exit(`tableRow`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),p):n(t):Z(t)?Q(e,u,`whitespace`)(t):(a+=1,o&&(o=!1,i+=1),t===124?(e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),o=!0,u):(e.enter(`data`),d(t)))}function d(t){return t===null||t===124||td(t)?(e.exit(`data`),u(t)):(e.consume(t),t===92?f:d)}function f(t){return t===92||t===124?(e.consume(t),d):d(t)}function p(t){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(t):(e.enter(`tableDelimiterRow`),o=!1,Z(t)?Q(e,m,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):m(t))}function m(t){return t===45||t===58?g(t):t===124?(o=!0,e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),h):x(t)}function h(t){return Z(t)?Q(e,g,`whitespace`)(t):g(t)}function g(t){return t===58?(a+=1,o=!0,e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),_):t===45?(a+=1,_(t)):t===null||X(t)?b(t):x(t)}function _(t){return t===45?(e.enter(`tableDelimiterFiller`),v(t)):x(t)}function v(t){return t===45?(e.consume(t),v):t===58?(o=!0,e.exit(`tableDelimiterFiller`),e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),y):(e.exit(`tableDelimiterFiller`),y(t))}function y(t){return Z(t)?Q(e,b,`whitespace`)(t):b(t)}function b(n){return n===124?m(n):n===null||X(n)?!o||i!==a?x(n):(e.exit(`tableDelimiterRow`),e.exit(`tableHead`),t(n)):x(n)}function x(e){return n(e)}function S(t){return e.enter(`tableRow`),C(t)}function C(n){return n===124?(e.enter(`tableCellDivider`),e.consume(n),e.exit(`tableCellDivider`),C):n===null||X(n)?(e.exit(`tableRow`),t(n)):Z(n)?Q(e,C,`whitespace`)(n):(e.enter(`data`),w(n))}function w(t){return t===null||t===124||td(t)?(e.exit(`data`),C(t)):(e.consume(t),t===92?T:w)}function T(t){return t===92||t===124?(e.consume(t),w):w(t)}}function Dv(e,t){let n=-1,r=!0,i=0,a=[0,0,0,0],o=[0,0,0,0],s=!1,c=0,l,u,d,f=new Sv;for(;++n<e.length;){let p=e[n],m=p[1];p[0]===`enter`?m.type===`tableHead`?(s=!1,c!==0&&(kv(f,t,c,l,u),u=void 0,c=0),l={type:`table`,start:Object.assign({},m.start),end:Object.assign({},m.end)},f.add(n,0,[[`enter`,l,t]])):m.type===`tableRow`||m.type===`tableDelimiterRow`?(r=!0,d=void 0,a=[0,0,0,0],o=[0,n+1,0,0],s&&(s=!1,u={type:`tableBody`,start:Object.assign({},m.start),end:Object.assign({},m.end)},f.add(n,0,[[`enter`,u,t]])),i=m.type===`tableDelimiterRow`?2:u?3:1):i&&(m.type===`data`||m.type===`tableDelimiterMarker`||m.type===`tableDelimiterFiller`)?(r=!1,o[2]===0&&(a[1]!==0&&(o[0]=o[1],d=Ov(f,t,a,i,void 0,d),a=[0,0,0,0]),o[2]=n)):m.type===`tableCellDivider`&&(r?r=!1:(a[1]!==0&&(o[0]=o[1],d=Ov(f,t,a,i,void 0,d)),a=o,o=[a[1],n,0,0])):m.type===`tableHead`?(s=!0,c=n):m.type===`tableRow`||m.type===`tableDelimiterRow`?(c=n,a[1]===0?o[1]!==0&&(d=Ov(f,t,o,i,n,d)):(o[0]=o[1],d=Ov(f,t,a,i,n,d)),i=0):i&&(m.type===`data`||m.type===`tableDelimiterMarker`||m.type===`tableDelimiterFiller`)&&(o[3]=n)}for(c!==0&&kv(f,t,c,l,u),f.consume(t.events),n=-1;++n<t.events.length;){let e=t.events[n];e[0]===`enter`&&e[1].type===`table`&&(e[1]._align=wv(t.events,n))}return e}function Ov(e,t,n,r,i,a){let o=r===1?`tableHeader`:r===2?`tableDelimiter`:`tableData`;n[0]!==0&&(a.end=Object.assign({},Av(t.events,n[0])),e.add(n[0],0,[[`exit`,a,t]]));let s=Av(t.events,n[1]);if(a={type:o,start:Object.assign({},s),end:Object.assign({},s)},e.add(n[1],0,[[`enter`,a,t]]),n[2]!==0){let i=Av(t.events,n[2]),a=Av(t.events,n[3]),o={type:`tableContent`,start:Object.assign({},i),end:Object.assign({},a)};if(e.add(n[2],0,[[`enter`,o,t]]),r!==2){let r=t.events[n[2]],i=t.events[n[3]];if(r[1].end=Object.assign({},i[1].end),r[1].type=`chunkText`,r[1].contentType=`text`,n[3]>n[2]+1){let t=n[2]+1,r=n[3]-n[2]-1;e.add(t,r,[])}}e.add(n[3]+1,0,[[`exit`,o,t]])}return i!==void 0&&(a.end=Object.assign({},Av(t.events,i)),e.add(i,0,[[`exit`,a,t]]),a=void 0),a}function kv(e,t,n,r,i){let a=[],o=Av(t.events,n);i&&(i.end=Object.assign({},o),a.push([`exit`,i,t])),r.end=Object.assign({},o),a.push([`exit`,r,t]),e.add(n+1,0,a)}function Av(e,t){let n=e[t],r=n[0]===`enter`?`start`:`end`;return n[1][r]}var jv={name:`tasklistCheck`,tokenize:Nv};function Mv(){return{text:{91:jv}}}function Nv(e,t,n){let r=this;return i;function i(t){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(t):(e.enter(`taskListCheck`),e.enter(`taskListCheckMarker`),e.consume(t),e.exit(`taskListCheckMarker`),a)}function a(t){return td(t)?(e.enter(`taskListCheckValueUnchecked`),e.consume(t),e.exit(`taskListCheckValueUnchecked`),o):t===88||t===120?(e.enter(`taskListCheckValueChecked`),e.consume(t),e.exit(`taskListCheckValueChecked`),o):n(t)}function o(t){return t===93?(e.enter(`taskListCheckMarker`),e.consume(t),e.exit(`taskListCheckMarker`),e.exit(`taskListCheck`),s):n(t)}function s(r){return X(r)?t(r):Z(r)?e.check({tokenize:Pv},t,n)(r):n(r)}}function Pv(e,t,n){return Q(e,r,`whitespace`);function r(e){return e===null?n(e):t(e)}}function Fv(e){return Uu([Z_(),pv(),xv(e),Tv(),Mv()])}var Iv={};function Lv(e){let t=this,n=e||Iv,r=t.data(),i=r.micromarkExtensions||=[],a=r.fromMarkdownExtensions||=[],o=r.toMarkdownExtensions||=[];i.push(Fv(n)),a.push(B_()),o.push(V_(n))}var Rv=null,zv=()=>(Rv??=H(()=>import(`./mermaid.core-B1QeZlh2.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17])),Rv),Bv=e=>e===`light`?`default`:`dark`;function Vv({chart:e}){let t=(0,F.useRef)(null),n=(0,F.useId)().replace(/:/g,`-`),[r,i]=(0,F.useState)(()=>x()),[a,o]=(0,F.useState)(null),s=Bv(r);return(0,F.useEffect)(()=>{let e=document.documentElement,t=()=>{let e=x();i(t=>t===e?t:e)};t();let n=new MutationObserver(e=>{e.some(e=>e.attributeName===`data-theme`)&&t()});return n.observe(e,{attributes:!0,attributeFilter:[`data-theme`]}),()=>{n.disconnect()}},[]),(0,F.useEffect)(()=>{let r=!1,i=t.current;return(async()=>{if(i){i.innerHTML=``,o(null);try{let{default:t}=await zv();t.initialize({startOnLoad:!1,securityLevel:`strict`,theme:s});let{svg:a,bindFunctions:o}=await t.render(`mermaid-diagram-${n}`,e);if(r)return;i.innerHTML=a,o?.(i)}catch(e){if(r)return;i.innerHTML=``,o(e instanceof Error?e.message:`Failed to render Mermaid diagram`)}}})(),()=>{r=!0,i&&(i.innerHTML=``)}},[e,n,s]),a?(0,I.jsxs)(`div`,{className:`space-y-2`,children:[(0,I.jsx)(`div`,{className:`text-sm text-github-danger`,title:a,children:`Unable to render Mermaid diagram.`}),(0,I.jsx)(`pre`,{className:`markdown-preview-code whitespace-pre-wrap border border-github-border bg-github-bg-secondary p-3 overflow-x-auto text-sm font-mono text-github-text-primary`,children:e})]}):(0,I.jsx)(`div`,{ref:t,"aria-label":`Mermaid diagram`,className:`mermaid-diagram overflow-x-auto rounded border border-github-border bg-github-bg-secondary p-3`})}var Hv=({mode:e,hasFullPreview:t,onModeChange:n})=>(0,I.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,I.jsxs)(`button`,{onClick:()=>n(`diff`),className:`px-2 py-1 text-xs font-medium rounded transition-colors duration-200 flex items-center gap-1 cursor-pointer ${e===`diff`?`text-github-text-primary`:`text-github-text-secondary hover:text-github-text-primary`}`,title:`Code Diff`,children:[(0,I.jsx)($e,{size:14}),`Diff`]}),(0,I.jsxs)(`button`,{onClick:()=>n(`diff-preview`),className:`px-2 py-1 text-xs font-medium rounded transition-colors duration-200 flex items-center gap-1 cursor-pointer ${e===`diff-preview`?`text-github-text-primary`:`text-github-text-secondary hover:text-github-text-primary`}`,title:`Diff Preview`,children:[(0,I.jsx)(Qe,{size:14}),`Diff Preview`]}),t&&(0,I.jsxs)(`button`,{onClick:()=>n(`full-preview`),className:`px-2 py-1 text-xs font-medium rounded transition-colors duration-200 flex items-center gap-1 cursor-pointer ${e===`full-preview`?`text-github-text-primary`:`text-github-text-secondary hover:text-github-text-primary`}`,title:`Full Preview`,children:[(0,I.jsx)(Qe,{size:14}),`Full Preview`]})]}),Uv=class{diff(e,t,n={}){let r;typeof n==`function`?(r=n,n={}):`callback`in n&&(r=n.callback);let i=this.castInput(e,n),a=this.castInput(t,n),o=this.removeEmpty(this.tokenize(i,n)),s=this.removeEmpty(this.tokenize(a,n));return this.diffWithOptionsObj(o,s,n,r)}diffWithOptionsObj(e,t,n,r){let i=e=>{if(e=this.postProcess(e,n),r){setTimeout(function(){r(e)},0);return}else return e},a=t.length,o=e.length,s=1,c=a+o;n.maxEditLength!=null&&(c=Math.min(c,n.maxEditLength));let l=n.timeout??1/0,u=Date.now()+l,d=[{oldPos:-1,lastComponent:void 0}],f=this.extractCommon(d[0],t,e,0,n);if(d[0].oldPos+1>=o&&f+1>=a)return i(this.buildValues(d[0].lastComponent,t,e));let p=-1/0,m=1/0,h=()=>{for(let r=Math.max(p,-s);r<=Math.min(m,s);r+=2){let s,c=d[r-1],l=d[r+1];c&&(d[r-1]=void 0);let u=!1;if(l){let e=l.oldPos-r;u=l&&0<=e&&e<a}let h=c&&c.oldPos+1<o;if(!u&&!h){d[r]=void 0;continue}if(s=!h||u&&c.oldPos<l.oldPos?this.addToPath(l,!0,!1,0,n):this.addToPath(c,!1,!0,1,n),f=this.extractCommon(s,t,e,r,n),s.oldPos+1>=o&&f+1>=a)return i(this.buildValues(s.lastComponent,t,e))||!0;d[r]=s,s.oldPos+1>=o&&(m=Math.min(m,r-1)),f+1>=a&&(p=Math.max(p,r+1))}s++};if(r)(function e(){setTimeout(function(){if(s>c||Date.now()>u)return r(void 0);h()||e()},0)})();else for(;s<=c&&Date.now()<=u;){let e=h();if(e)return e}}addToPath(e,t,n,r,i){let a=e.lastComponent;return a&&!i.oneChangePerToken&&a.added===t&&a.removed===n?{oldPos:e.oldPos+r,lastComponent:{count:a.count+1,added:t,removed:n,previousComponent:a.previousComponent}}:{oldPos:e.oldPos+r,lastComponent:{count:1,added:t,removed:n,previousComponent:a}}}extractCommon(e,t,n,r,i){let a=t.length,o=n.length,s=e.oldPos,c=s-r,l=0;for(;c+1<a&&s+1<o&&this.equals(n[s+1],t[c+1],i);)c++,s++,l++,i.oneChangePerToken&&(e.lastComponent={count:1,previousComponent:e.lastComponent,added:!1,removed:!1});return l&&!i.oneChangePerToken&&(e.lastComponent={count:l,previousComponent:e.lastComponent,added:!1,removed:!1}),e.oldPos=s,c}equals(e,t,n){return n.comparator?n.comparator(e,t):e===t||!!n.ignoreCase&&e.toLowerCase()===t.toLowerCase()}removeEmpty(e){let t=[];for(let n=0;n<e.length;n++)e[n]&&t.push(e[n]);return t}castInput(e,t){return e}tokenize(e,t){return Array.from(e)}join(e){return e.join(``)}postProcess(e,t){return e}get useLongestToken(){return!1}buildValues(e,t,n){let r=[],i;for(;e;)r.push(e),i=e.previousComponent,delete e.previousComponent,e=i;r.reverse();let a=r.length,o=0,s=0,c=0;for(;o<a;o++){let e=r[o];if(e.removed)e.value=this.join(n.slice(c,c+e.count)),c+=e.count;else{if(!e.added&&this.useLongestToken){let r=t.slice(s,s+e.count);r=r.map(function(e,t){let r=n[c+t];return r.length>e.length?r:e}),e.value=this.join(r)}else e.value=this.join(t.slice(s,s+e.count));s+=e.count,e.added||(c+=e.count)}}return r}};new class extends Uv{};function Wv(e,t){let n;for(n=0;n<e.length&&n<t.length;n++)if(e[n]!=t[n])return e.slice(0,n);return e.slice(0,n)}function Gv(e,t){let n;if(!e||!t||e[e.length-1]!=t[t.length-1])return``;for(n=0;n<e.length&&n<t.length;n++)if(e[e.length-(n+1)]!=t[t.length-(n+1)])return e.slice(-n);return e.slice(-n)}function Kv(e,t,n){if(e.slice(0,t.length)!=t)throw Error(`string ${JSON.stringify(e)} doesn't start with prefix ${JSON.stringify(t)}; this is a bug`);return n+e.slice(t.length)}function qv(e,t,n){if(!t)return e+n;if(e.slice(-t.length)!=t)throw Error(`string ${JSON.stringify(e)} doesn't end with suffix ${JSON.stringify(t)}; this is a bug`);return e.slice(0,-t.length)+n}function Jv(e,t){return Kv(e,t,``)}function Yv(e,t){return qv(e,t,``)}function Xv(e,t){return t.slice(0,Zv(e,t))}function Zv(e,t){let n=0;e.length>t.length&&(n=e.length-t.length);let r=t.length;e.length<t.length&&(r=e.length);let i=Array(r),a=0;i[0]=0;for(let e=1;e<r;e++){for(t[e]==t[a]?i[e]=i[a]:i[e]=a;a>0&&t[e]!=t[a];)a=i[a];t[e]==t[a]&&a++}a=0;for(let r=n;r<e.length;r++){for(;a>0&&e[r]!=t[a];)a=i[a];e[r]==t[a]&&a++}return a}function Qv(e,t){let n=[];for(let r of Array.from(t.segment(e))){let e=r.segment;n.length&&/\s/.test(n[n.length-1])&&/\s/.test(e)?n[n.length-1]+=e:n.push(e)}return n}function $v(e,t){if(t)return ty(e,t)[1];let n;for(n=e.length-1;n>=0&&e[n].match(/\s/);n--);return e.substring(n+1)}function ey(e,t){if(t)return ty(e,t)[0];let n=e.match(/^\s*/);return n?n[0]:``}function ty(e,t){if(!t)return[ey(e),$v(e)];if(t.resolvedOptions().granularity!=`word`)throw Error(`The segmenter passed must have a granularity of "word"`);let n=Qv(e,t),r=n[0],i=n[n.length-1];return[/\s/.test(r)?r:``,/\s/.test(i)?i:``]}var ny=`a-zA-Z0-9_\\u{AD}\\u{C0}-\\u{D6}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}`,ry=RegExp(`[${ny}]+|\\s+|[^${ny}]`,`ug`),iy=new class extends Uv{equals(e,t,n){return n.ignoreCase&&(e=e.toLowerCase(),t=t.toLowerCase()),e.trim()===t.trim()}tokenize(e,t={}){let n;if(t.intlSegmenter){let r=t.intlSegmenter;if(r.resolvedOptions().granularity!=`word`)throw Error(`The segmenter passed must have a granularity of "word"`);n=Qv(e,r)}else n=e.match(ry)||[];let r=[],i=null;return n.forEach(e=>{/\s/.test(e)?i==null?r.push(e):r.push(r.pop()+e):i!=null&&/\s/.test(i)?r[r.length-1]==i?r.push(r.pop()+e):r.push(i+e):r.push(e),i=e}),r}join(e){return e.map((e,t)=>t==0?e:e.replace(/^\s+/,``)).join(``)}postProcess(e,t){if(!e||t.oneChangePerToken)return e;let n=null,r=null,i=null;return e.forEach(e=>{e.added?r=e:e.removed?i=e:((r||i)&&oy(n,i,r,e,t.intlSegmenter),n=e,r=null,i=null)}),(r||i)&&oy(n,i,r,null,t.intlSegmenter),e}};function ay(e,t,n){return n?.ignoreWhitespace!=null&&!n.ignoreWhitespace?cy(e,t,n):iy.diff(e,t,n)}function oy(e,t,n,r,i){if(t&&n){let[a,o]=ty(t.value,i),[s,c]=ty(n.value,i);if(e){let r=Wv(a,s);e.value=qv(e.value,s,r),t.value=Jv(t.value,r),n.value=Jv(n.value,r)}if(r){let e=Gv(o,c);r.value=Kv(r.value,c,e),t.value=Yv(t.value,e),n.value=Yv(n.value,e)}}else if(n){if(e){let e=ey(n.value,i);n.value=n.value.substring(e.length)}if(r){let e=ey(r.value,i);r.value=r.value.substring(e.length)}}else if(e&&r){let n=ey(r.value,i),[a,o]=ty(t.value,i),s=Wv(n,a);t.value=Jv(t.value,s);let c=Gv(Jv(n,s),o);t.value=Yv(t.value,c),r.value=Kv(r.value,n,c),e.value=qv(e.value,n,n.slice(0,n.length-c.length))}else if(r){let e=ey(r.value,i),n=Xv($v(t.value,i),e);t.value=Yv(t.value,n)}else if(e){let n=Xv($v(e.value,i),ey(t.value,i));t.value=Jv(t.value,n)}}var sy=new class extends Uv{tokenize(e){let t=RegExp(`(\\r?\\n)|[${ny}]+|[^\\S\\n\\r]+|[^${ny}]`,`ug`);return e.match(t)||[]}};function cy(e,t,n){return sy.diff(e,t,n)}var ly=new class extends Uv{constructor(){super(...arguments),this.tokenize=dy}equals(e,t,n){return n.ignoreWhitespace?((!n.newlineIsToken||!e.includes(`
|
|
52
|
+
`))}function c(e,t,n,r){let i=n.enter(`tableCell`),o=n.enter(`phrasing`),s=n.containerPhrasing(e,{...r,before:a,after:a});return o(),i(),s}function l(e,t){return Og(e,{align:t,alignDelimiters:r,padding:n,stringLength:i})}function u(e,t,n){let r=e.children,i=-1,a=[],o=t.enter(`table`);for(;++i<r.length;)a[i]=d(r[i],t,n);return o(),a}function d(e,t,n){let r=e.children,i=-1,a=[],o=t.enter(`tableRow`);for(;++i<r.length;)a[i]=c(r[i],e,t,n);return o(),a}function f(e,t,n){let r=T_.inlineCode(e,t,n);return n.stack.includes(`tableCell`)&&(r=r.replace(/\|/g,`\\$&`)),r}}function F_(){return{exit:{taskListCheckValueChecked:L_,taskListCheckValueUnchecked:L_,paragraph:R_}}}function I_(){return{unsafe:[{atBreak:!0,character:`-`,after:`[:|-]`}],handlers:{listItem:z_}}}function L_(e){let t=this.stack[this.stack.length-2];t.type,t.checked=e.type===`taskListCheckValueChecked`}function R_(e){let t=this.stack[this.stack.length-2];if(t&&t.type===`listItem`&&typeof t.checked==`boolean`){let e=this.stack[this.stack.length-1];e.type;let n=e.children[0];if(n&&n.type===`text`){let r=t.children,i=-1,a;for(;++i<r.length;){let e=r[i];if(e.type===`paragraph`){a=e;break}}a===e&&(n.value=n.value.slice(1),n.value.length===0?e.children.shift():e.position&&n.position&&typeof n.position.start.offset==`number`&&(n.position.start.column++,n.position.start.offset++,e.position.start=Object.assign({},n.position.start)))}}this.exit(e)}function z_(e,t,n,r){let i=e.children[0],a=typeof e.checked==`boolean`&&i&&i.type===`paragraph`,o=`[`+(e.checked?`x`:` `)+`] `,s=n.createTracker(r);a&&s.move(o);let c=T_.listItem(e,t,n,{...r,...s.current()});return a&&(c=c.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/,l)),c;function l(e){return e+o}}function B_(){return[Kh(),gg(),xg(),E_(),F_()]}function V_(e){return{extensions:[qh(),_g(e),Sg(),P_(e),I_()]}}var H_={tokenize:nv,partial:!0},U_={tokenize:rv,partial:!0},W_={tokenize:iv,partial:!0},G_={tokenize:av,partial:!0},K_={tokenize:ov,partial:!0},q_={name:`wwwAutolink`,tokenize:ev,previous:sv},J_={name:`protocolAutolink`,tokenize:tv,previous:cv},Y_={name:`emailAutolink`,tokenize:$_,previous:lv},X_={};function Z_(){return{text:X_}}for(var Q_=48;Q_<123;)X_[Q_]=Y_,Q_++,Q_===58?Q_=65:Q_===91&&(Q_=97);X_[43]=Y_,X_[45]=Y_,X_[46]=Y_,X_[95]=Y_,X_[72]=[Y_,J_],X_[104]=[Y_,J_],X_[87]=[Y_,q_],X_[119]=[Y_,q_];function $_(e,t,n){let r=this,i,a;return o;function o(t){return!uv(t)||!lv.call(r,r.previous)||dv(r.events)?n(t):(e.enter(`literalAutolink`),e.enter(`literalAutolinkEmail`),s(t))}function s(t){return uv(t)?(e.consume(t),s):t===64?(e.consume(t),c):n(t)}function c(t){return t===46?e.check(K_,u,l)(t):t===45||t===95||Yu(t)?(a=!0,e.consume(t),c):u(t)}function l(t){return e.consume(t),i=!0,c}function u(o){return a&&i&&Ju(r.previous)?(e.exit(`literalAutolinkEmail`),e.exit(`literalAutolink`),t(o)):n(o)}}function ev(e,t,n){let r=this;return i;function i(t){return t!==87&&t!==119||!sv.call(r,r.previous)||dv(r.events)?n(t):(e.enter(`literalAutolink`),e.enter(`literalAutolinkWww`),e.check(H_,e.attempt(U_,e.attempt(W_,a),n),n)(t))}function a(n){return e.exit(`literalAutolinkWww`),e.exit(`literalAutolink`),t(n)}}function tv(e,t,n){let r=this,i=``,a=!1;return o;function o(t){return(t===72||t===104)&&cv.call(r,r.previous)&&!dv(r.events)?(e.enter(`literalAutolink`),e.enter(`literalAutolinkHttp`),i+=String.fromCodePoint(t),e.consume(t),s):n(t)}function s(t){if(Ju(t)&&i.length<5)return i+=String.fromCodePoint(t),e.consume(t),s;if(t===58){let n=i.toLowerCase();if(n===`http`||n===`https`)return e.consume(t),c}return n(t)}function c(t){return t===47?(e.consume(t),a?l:(a=!0,c)):n(t)}function l(t){return t===null||Zu(t)||td(t)||rd(t)||nd(t)?n(t):e.attempt(U_,e.attempt(W_,u),n)(t)}function u(n){return e.exit(`literalAutolinkHttp`),e.exit(`literalAutolink`),t(n)}}function nv(e,t,n){let r=0;return i;function i(t){return(t===87||t===119)&&r<3?(r++,e.consume(t),i):t===46&&r===3?(e.consume(t),a):n(t)}function a(e){return e===null?n(e):t(e)}}function rv(e,t,n){let r,i,a;return o;function o(t){return t===46||t===95?e.check(G_,c,s)(t):t===null||td(t)||rd(t)||t!==45&&nd(t)?c(t):(a=!0,e.consume(t),o)}function s(t){return t===95?r=!0:(i=r,r=void 0),e.consume(t),o}function c(e){return i||r||!a?n(e):t(e)}}function iv(e,t){let n=0,r=0;return i;function i(o){return o===40?(n++,e.consume(o),i):o===41&&r<n?a(o):o===33||o===34||o===38||o===39||o===41||o===42||o===44||o===46||o===58||o===59||o===60||o===63||o===93||o===95||o===126?e.check(G_,t,a)(o):o===null||td(o)||rd(o)?t(o):(e.consume(o),i)}function a(t){return t===41&&r++,e.consume(t),i}}function av(e,t,n){return r;function r(o){return o===33||o===34||o===39||o===41||o===42||o===44||o===46||o===58||o===59||o===63||o===95||o===126?(e.consume(o),r):o===38?(e.consume(o),a):o===93?(e.consume(o),i):o===60||o===null||td(o)||rd(o)?t(o):n(o)}function i(e){return e===null||e===40||e===91||td(e)||rd(e)?t(e):r(e)}function a(e){return Ju(e)?o(e):n(e)}function o(t){return t===59?(e.consume(t),r):Ju(t)?(e.consume(t),o):n(t)}}function ov(e,t,n){return r;function r(t){return e.consume(t),i}function i(e){return Yu(e)?n(e):t(e)}}function sv(e){return e===null||e===40||e===42||e===95||e===91||e===93||e===126||td(e)}function cv(e){return!Ju(e)}function lv(e){return!(e===47||uv(e))}function uv(e){return e===43||e===45||e===46||e===95||Yu(e)}function dv(e){let t=e.length,n=!1;for(;t--;){let r=e[t][1];if((r.type===`labelLink`||r.type===`labelImage`)&&!r._balanced){n=!0;break}if(r._gfmAutolinkLiteralWalkedInto){n=!1;break}}return e.length>0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}var fv={tokenize:bv,partial:!0};function pv(){return{document:{91:{name:`gfmFootnoteDefinition`,tokenize:_v,continuation:{tokenize:vv},exit:yv}},text:{91:{name:`gfmFootnoteCall`,tokenize:gv},93:{name:`gfmPotentialFootnoteCall`,add:`after`,tokenize:mv,resolveTo:hv}}}}function mv(e,t,n){let r=this,i=r.events.length,a=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),o;for(;i--;){let e=r.events[i][1];if(e.type===`labelImage`){o=e;break}if(e.type===`gfmFootnoteCall`||e.type===`labelLink`||e.type===`label`||e.type===`image`||e.type===`link`)break}return s;function s(i){if(!o||!o._balanced)return n(i);let s=qu(r.sliceSerialize({start:o.end,end:r.now()}));return s.codePointAt(0)!==94||!a.includes(s.slice(1))?n(i):(e.enter(`gfmFootnoteCallLabelMarker`),e.consume(i),e.exit(`gfmFootnoteCallLabelMarker`),t(i))}}function hv(e,t){let n=e.length;for(;n--;)if(e[n][1].type===`labelImage`&&e[n][0]===`enter`){e[n][1];break}e[n+1][1].type=`data`,e[n+3][1].type=`gfmFootnoteCallLabelMarker`;let r={type:`gfmFootnoteCall`,start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},i={type:`gfmFootnoteCallMarker`,start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};i.end.column++,i.end.offset++,i.end._bufferIndex++;let a={type:`gfmFootnoteCallString`,start:Object.assign({},i.end),end:Object.assign({},e[e.length-1][1].start)},o={type:`chunkString`,contentType:`string`,start:Object.assign({},a.start),end:Object.assign({},a.end)},s=[e[n+1],e[n+2],[`enter`,r,t],e[n+3],e[n+4],[`enter`,i,t],[`exit`,i,t],[`enter`,a,t],[`enter`,o,t],[`exit`,o,t],[`exit`,a,t],e[e.length-2],e[e.length-1],[`exit`,r,t]];return e.splice(n,e.length-n+1,...s),e}function gv(e,t,n){let r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),a=0,o;return s;function s(t){return e.enter(`gfmFootnoteCall`),e.enter(`gfmFootnoteCallLabelMarker`),e.consume(t),e.exit(`gfmFootnoteCallLabelMarker`),c}function c(t){return t===94?(e.enter(`gfmFootnoteCallMarker`),e.consume(t),e.exit(`gfmFootnoteCallMarker`),e.enter(`gfmFootnoteCallString`),e.enter(`chunkString`).contentType=`string`,l):n(t)}function l(s){if(a>999||s===93&&!o||s===null||s===91||td(s))return n(s);if(s===93){e.exit(`chunkString`);let a=e.exit(`gfmFootnoteCallString`);return i.includes(qu(r.sliceSerialize(a)))?(e.enter(`gfmFootnoteCallLabelMarker`),e.consume(s),e.exit(`gfmFootnoteCallLabelMarker`),e.exit(`gfmFootnoteCall`),t):n(s)}return td(s)||(o=!0),a++,e.consume(s),s===92?u:l}function u(t){return t===91||t===92||t===93?(e.consume(t),a++,l):l(t)}}function _v(e,t,n){let r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),a,o=0,s;return c;function c(t){return e.enter(`gfmFootnoteDefinition`)._container=!0,e.enter(`gfmFootnoteDefinitionLabel`),e.enter(`gfmFootnoteDefinitionLabelMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionLabelMarker`),l}function l(t){return t===94?(e.enter(`gfmFootnoteDefinitionMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionMarker`),e.enter(`gfmFootnoteDefinitionLabelString`),e.enter(`chunkString`).contentType=`string`,u):n(t)}function u(t){if(o>999||t===93&&!s||t===null||t===91||td(t))return n(t);if(t===93){e.exit(`chunkString`);let n=e.exit(`gfmFootnoteDefinitionLabelString`);return a=qu(r.sliceSerialize(n)),e.enter(`gfmFootnoteDefinitionLabelMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionLabelMarker`),e.exit(`gfmFootnoteDefinitionLabel`),f}return td(t)||(s=!0),o++,e.consume(t),t===92?d:u}function d(t){return t===91||t===92||t===93?(e.consume(t),o++,u):u(t)}function f(t){return t===58?(e.enter(`definitionMarker`),e.consume(t),e.exit(`definitionMarker`),i.includes(a)||i.push(a),Q(e,p,`gfmFootnoteDefinitionWhitespace`)):n(t)}function p(e){return t(e)}}function vv(e,t,n){return e.check(yd,t,e.attempt(fv,t,n))}function yv(e){e.exit(`gfmFootnoteDefinition`)}function bv(e,t,n){let r=this;return Q(e,i,`gfmFootnoteDefinitionIndent`,5);function i(e){let i=r.events[r.events.length-1];return i&&i[1].type===`gfmFootnoteDefinitionIndent`&&i[2].sliceSerialize(i[1],!0).length===4?t(e):n(e)}}function xv(e){let t=(e||{}).singleTilde,n={name:`strikethrough`,tokenize:i,resolveAll:r};return t??=!0,{text:{126:n},insideSpan:{null:[n]},attentionMarkers:{null:[126]}};function r(e,t){let n=-1;for(;++n<e.length;)if(e[n][0]===`enter`&&e[n][1].type===`strikethroughSequenceTemporary`&&e[n][1]._close){let r=n;for(;r--;)if(e[r][0]===`exit`&&e[r][1].type===`strikethroughSequenceTemporary`&&e[r][1]._open&&e[n][1].end.offset-e[n][1].start.offset===e[r][1].end.offset-e[r][1].start.offset){e[n][1].type=`strikethroughSequence`,e[r][1].type=`strikethroughSequence`;let i={type:`strikethrough`,start:Object.assign({},e[r][1].start),end:Object.assign({},e[n][1].end)},a={type:`strikethroughText`,start:Object.assign({},e[r][1].end),end:Object.assign({},e[n][1].start)},o=[[`enter`,i,t],[`enter`,e[r][1],t],[`exit`,e[r][1],t],[`enter`,a,t]],s=t.parser.constructs.insideSpan.null;s&&Bu(o,o.length,0,pd(s,e.slice(r+1,n),t)),Bu(o,o.length,0,[[`exit`,a,t],[`enter`,e[n][1],t],[`exit`,e[n][1],t],[`exit`,i,t]]),Bu(e,r-1,n-r+3,o),n=r+o.length-2;break}}for(n=-1;++n<e.length;)e[n][1].type===`strikethroughSequenceTemporary`&&(e[n][1].type=`data`);return e}function i(e,n,r){let i=this.previous,a=this.events,o=0;return s;function s(t){return i===126&&a[a.length-1][1].type!==`characterEscape`?r(t):(e.enter(`strikethroughSequenceTemporary`),c(t))}function c(a){let s=fd(i);if(a===126)return o>1?r(a):(e.consume(a),o++,c);if(o<2&&!t)return r(a);let l=e.exit(`strikethroughSequenceTemporary`),u=fd(a);return l._open=!u||u===2&&!!s,l._close=!s||s===2&&!!u,n(a)}}}var Sv=class{constructor(){this.map=[]}add(e,t,n){Cv(this,e,t,n)}consume(e){if(this.map.sort(function(e,t){return e[0]-t[0]}),this.map.length===0)return;let t=this.map.length,n=[];for(;t>0;)--t,n.push(e.slice(this.map[t][0]+this.map[t][1]),this.map[t][2]),e.length=this.map[t][0];n.push(e.slice()),e.length=0;let r=n.pop();for(;r;){for(let t of r)e.push(t);r=n.pop()}this.map.length=0}};function Cv(e,t,n,r){let i=0;if(!(n===0&&r.length===0)){for(;i<e.map.length;){if(e.map[i][0]===t){e.map[i][1]+=n,e.map[i][2].push(...r);return}i+=1}e.map.push([t,n,r])}}function wv(e,t){let n=!1,r=[];for(;t<e.length;){let i=e[t];if(n){if(i[0]===`enter`)i[1].type===`tableContent`&&r.push(e[t+1][1].type===`tableDelimiterMarker`?`left`:`none`);else if(i[1].type===`tableContent`){if(e[t-1][1].type===`tableDelimiterMarker`){let e=r.length-1;r[e]=r[e]===`left`?`center`:`right`}}else if(i[1].type===`tableDelimiterRow`)break}else i[0]===`enter`&&i[1].type===`tableDelimiterRow`&&(n=!0);t+=1}return r}function Tv(){return{flow:{null:{name:`table`,tokenize:Ev,resolveAll:Dv}}}}function Ev(e,t,n){let r=this,i=0,a=0,o;return s;function s(e){let t=r.events.length-1;for(;t>-1;){let e=r.events[t][1].type;if(e===`lineEnding`||e===`linePrefix`)t--;else break}let i=t>-1?r.events[t][1].type:null,a=i===`tableHead`||i===`tableRow`?S:c;return a===S&&r.parser.lazy[r.now().line]?n(e):a(e)}function c(t){return e.enter(`tableHead`),e.enter(`tableRow`),l(t)}function l(e){return e===124?u(e):(o=!0,a+=1,u(e))}function u(t){return t===null?n(t):X(t)?a>1?(a=0,r.interrupt=!0,e.exit(`tableRow`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),p):n(t):Z(t)?Q(e,u,`whitespace`)(t):(a+=1,o&&(o=!1,i+=1),t===124?(e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),o=!0,u):(e.enter(`data`),d(t)))}function d(t){return t===null||t===124||td(t)?(e.exit(`data`),u(t)):(e.consume(t),t===92?f:d)}function f(t){return t===92||t===124?(e.consume(t),d):d(t)}function p(t){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(t):(e.enter(`tableDelimiterRow`),o=!1,Z(t)?Q(e,m,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):m(t))}function m(t){return t===45||t===58?g(t):t===124?(o=!0,e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),h):x(t)}function h(t){return Z(t)?Q(e,g,`whitespace`)(t):g(t)}function g(t){return t===58?(a+=1,o=!0,e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),_):t===45?(a+=1,_(t)):t===null||X(t)?b(t):x(t)}function _(t){return t===45?(e.enter(`tableDelimiterFiller`),v(t)):x(t)}function v(t){return t===45?(e.consume(t),v):t===58?(o=!0,e.exit(`tableDelimiterFiller`),e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),y):(e.exit(`tableDelimiterFiller`),y(t))}function y(t){return Z(t)?Q(e,b,`whitespace`)(t):b(t)}function b(n){return n===124?m(n):n===null||X(n)?!o||i!==a?x(n):(e.exit(`tableDelimiterRow`),e.exit(`tableHead`),t(n)):x(n)}function x(e){return n(e)}function S(t){return e.enter(`tableRow`),C(t)}function C(n){return n===124?(e.enter(`tableCellDivider`),e.consume(n),e.exit(`tableCellDivider`),C):n===null||X(n)?(e.exit(`tableRow`),t(n)):Z(n)?Q(e,C,`whitespace`)(n):(e.enter(`data`),w(n))}function w(t){return t===null||t===124||td(t)?(e.exit(`data`),C(t)):(e.consume(t),t===92?T:w)}function T(t){return t===92||t===124?(e.consume(t),w):w(t)}}function Dv(e,t){let n=-1,r=!0,i=0,a=[0,0,0,0],o=[0,0,0,0],s=!1,c=0,l,u,d,f=new Sv;for(;++n<e.length;){let p=e[n],m=p[1];p[0]===`enter`?m.type===`tableHead`?(s=!1,c!==0&&(kv(f,t,c,l,u),u=void 0,c=0),l={type:`table`,start:Object.assign({},m.start),end:Object.assign({},m.end)},f.add(n,0,[[`enter`,l,t]])):m.type===`tableRow`||m.type===`tableDelimiterRow`?(r=!0,d=void 0,a=[0,0,0,0],o=[0,n+1,0,0],s&&(s=!1,u={type:`tableBody`,start:Object.assign({},m.start),end:Object.assign({},m.end)},f.add(n,0,[[`enter`,u,t]])),i=m.type===`tableDelimiterRow`?2:u?3:1):i&&(m.type===`data`||m.type===`tableDelimiterMarker`||m.type===`tableDelimiterFiller`)?(r=!1,o[2]===0&&(a[1]!==0&&(o[0]=o[1],d=Ov(f,t,a,i,void 0,d),a=[0,0,0,0]),o[2]=n)):m.type===`tableCellDivider`&&(r?r=!1:(a[1]!==0&&(o[0]=o[1],d=Ov(f,t,a,i,void 0,d)),a=o,o=[a[1],n,0,0])):m.type===`tableHead`?(s=!0,c=n):m.type===`tableRow`||m.type===`tableDelimiterRow`?(c=n,a[1]===0?o[1]!==0&&(d=Ov(f,t,o,i,n,d)):(o[0]=o[1],d=Ov(f,t,a,i,n,d)),i=0):i&&(m.type===`data`||m.type===`tableDelimiterMarker`||m.type===`tableDelimiterFiller`)&&(o[3]=n)}for(c!==0&&kv(f,t,c,l,u),f.consume(t.events),n=-1;++n<t.events.length;){let e=t.events[n];e[0]===`enter`&&e[1].type===`table`&&(e[1]._align=wv(t.events,n))}return e}function Ov(e,t,n,r,i,a){let o=r===1?`tableHeader`:r===2?`tableDelimiter`:`tableData`;n[0]!==0&&(a.end=Object.assign({},Av(t.events,n[0])),e.add(n[0],0,[[`exit`,a,t]]));let s=Av(t.events,n[1]);if(a={type:o,start:Object.assign({},s),end:Object.assign({},s)},e.add(n[1],0,[[`enter`,a,t]]),n[2]!==0){let i=Av(t.events,n[2]),a=Av(t.events,n[3]),o={type:`tableContent`,start:Object.assign({},i),end:Object.assign({},a)};if(e.add(n[2],0,[[`enter`,o,t]]),r!==2){let r=t.events[n[2]],i=t.events[n[3]];if(r[1].end=Object.assign({},i[1].end),r[1].type=`chunkText`,r[1].contentType=`text`,n[3]>n[2]+1){let t=n[2]+1,r=n[3]-n[2]-1;e.add(t,r,[])}}e.add(n[3]+1,0,[[`exit`,o,t]])}return i!==void 0&&(a.end=Object.assign({},Av(t.events,i)),e.add(i,0,[[`exit`,a,t]]),a=void 0),a}function kv(e,t,n,r,i){let a=[],o=Av(t.events,n);i&&(i.end=Object.assign({},o),a.push([`exit`,i,t])),r.end=Object.assign({},o),a.push([`exit`,r,t]),e.add(n+1,0,a)}function Av(e,t){let n=e[t],r=n[0]===`enter`?`start`:`end`;return n[1][r]}var jv={name:`tasklistCheck`,tokenize:Nv};function Mv(){return{text:{91:jv}}}function Nv(e,t,n){let r=this;return i;function i(t){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(t):(e.enter(`taskListCheck`),e.enter(`taskListCheckMarker`),e.consume(t),e.exit(`taskListCheckMarker`),a)}function a(t){return td(t)?(e.enter(`taskListCheckValueUnchecked`),e.consume(t),e.exit(`taskListCheckValueUnchecked`),o):t===88||t===120?(e.enter(`taskListCheckValueChecked`),e.consume(t),e.exit(`taskListCheckValueChecked`),o):n(t)}function o(t){return t===93?(e.enter(`taskListCheckMarker`),e.consume(t),e.exit(`taskListCheckMarker`),e.exit(`taskListCheck`),s):n(t)}function s(r){return X(r)?t(r):Z(r)?e.check({tokenize:Pv},t,n)(r):n(r)}}function Pv(e,t,n){return Q(e,r,`whitespace`);function r(e){return e===null?n(e):t(e)}}function Fv(e){return Uu([Z_(),pv(),xv(e),Tv(),Mv()])}var Iv={};function Lv(e){let t=this,n=e||Iv,r=t.data(),i=r.micromarkExtensions||=[],a=r.fromMarkdownExtensions||=[],o=r.toMarkdownExtensions||=[];i.push(Fv(n)),a.push(B_()),o.push(V_(n))}var Rv=null,zv=()=>(Rv??=H(()=>import(`./mermaid.core-QvJGj5O5.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17])),Rv),Bv=e=>e===`light`?`default`:`dark`;function Vv({chart:e}){let t=(0,F.useRef)(null),n=(0,F.useId)().replace(/:/g,`-`),[r,i]=(0,F.useState)(()=>x()),[a,o]=(0,F.useState)(null),s=Bv(r);return(0,F.useEffect)(()=>{let e=document.documentElement,t=()=>{let e=x();i(t=>t===e?t:e)};t();let n=new MutationObserver(e=>{e.some(e=>e.attributeName===`data-theme`)&&t()});return n.observe(e,{attributes:!0,attributeFilter:[`data-theme`]}),()=>{n.disconnect()}},[]),(0,F.useEffect)(()=>{let r=!1,i=t.current;return(async()=>{if(i){i.innerHTML=``,o(null);try{let{default:t}=await zv();t.initialize({startOnLoad:!1,securityLevel:`strict`,theme:s});let{svg:a,bindFunctions:o}=await t.render(`mermaid-diagram-${n}`,e);if(r)return;i.innerHTML=a,o?.(i)}catch(e){if(r)return;i.innerHTML=``,o(e instanceof Error?e.message:`Failed to render Mermaid diagram`)}}})(),()=>{r=!0,i&&(i.innerHTML=``)}},[e,n,s]),a?(0,I.jsxs)(`div`,{className:`space-y-2`,children:[(0,I.jsx)(`div`,{className:`text-sm text-github-danger`,title:a,children:`Unable to render Mermaid diagram.`}),(0,I.jsx)(`pre`,{className:`markdown-preview-code whitespace-pre-wrap border border-github-border bg-github-bg-secondary p-3 overflow-x-auto text-sm font-mono text-github-text-primary`,children:e})]}):(0,I.jsx)(`div`,{ref:t,"aria-label":`Mermaid diagram`,className:`mermaid-diagram overflow-x-auto rounded border border-github-border bg-github-bg-secondary p-3`})}var Hv=({mode:e,hasFullPreview:t,onModeChange:n})=>(0,I.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,I.jsxs)(`button`,{onClick:()=>n(`diff`),className:`px-2 py-1 text-xs font-medium rounded transition-colors duration-200 flex items-center gap-1 cursor-pointer ${e===`diff`?`text-github-text-primary`:`text-github-text-secondary hover:text-github-text-primary`}`,title:`Code Diff`,children:[(0,I.jsx)($e,{size:14}),`Diff`]}),(0,I.jsxs)(`button`,{onClick:()=>n(`diff-preview`),className:`px-2 py-1 text-xs font-medium rounded transition-colors duration-200 flex items-center gap-1 cursor-pointer ${e===`diff-preview`?`text-github-text-primary`:`text-github-text-secondary hover:text-github-text-primary`}`,title:`Diff Preview`,children:[(0,I.jsx)(Qe,{size:14}),`Diff Preview`]}),t&&(0,I.jsxs)(`button`,{onClick:()=>n(`full-preview`),className:`px-2 py-1 text-xs font-medium rounded transition-colors duration-200 flex items-center gap-1 cursor-pointer ${e===`full-preview`?`text-github-text-primary`:`text-github-text-secondary hover:text-github-text-primary`}`,title:`Full Preview`,children:[(0,I.jsx)(Qe,{size:14}),`Full Preview`]})]}),Uv=class{diff(e,t,n={}){let r;typeof n==`function`?(r=n,n={}):`callback`in n&&(r=n.callback);let i=this.castInput(e,n),a=this.castInput(t,n),o=this.removeEmpty(this.tokenize(i,n)),s=this.removeEmpty(this.tokenize(a,n));return this.diffWithOptionsObj(o,s,n,r)}diffWithOptionsObj(e,t,n,r){let i=e=>{if(e=this.postProcess(e,n),r){setTimeout(function(){r(e)},0);return}else return e},a=t.length,o=e.length,s=1,c=a+o;n.maxEditLength!=null&&(c=Math.min(c,n.maxEditLength));let l=n.timeout??1/0,u=Date.now()+l,d=[{oldPos:-1,lastComponent:void 0}],f=this.extractCommon(d[0],t,e,0,n);if(d[0].oldPos+1>=o&&f+1>=a)return i(this.buildValues(d[0].lastComponent,t,e));let p=-1/0,m=1/0,h=()=>{for(let r=Math.max(p,-s);r<=Math.min(m,s);r+=2){let s,c=d[r-1],l=d[r+1];c&&(d[r-1]=void 0);let u=!1;if(l){let e=l.oldPos-r;u=l&&0<=e&&e<a}let h=c&&c.oldPos+1<o;if(!u&&!h){d[r]=void 0;continue}if(s=!h||u&&c.oldPos<l.oldPos?this.addToPath(l,!0,!1,0,n):this.addToPath(c,!1,!0,1,n),f=this.extractCommon(s,t,e,r,n),s.oldPos+1>=o&&f+1>=a)return i(this.buildValues(s.lastComponent,t,e))||!0;d[r]=s,s.oldPos+1>=o&&(m=Math.min(m,r-1)),f+1>=a&&(p=Math.max(p,r+1))}s++};if(r)(function e(){setTimeout(function(){if(s>c||Date.now()>u)return r(void 0);h()||e()},0)})();else for(;s<=c&&Date.now()<=u;){let e=h();if(e)return e}}addToPath(e,t,n,r,i){let a=e.lastComponent;return a&&!i.oneChangePerToken&&a.added===t&&a.removed===n?{oldPos:e.oldPos+r,lastComponent:{count:a.count+1,added:t,removed:n,previousComponent:a.previousComponent}}:{oldPos:e.oldPos+r,lastComponent:{count:1,added:t,removed:n,previousComponent:a}}}extractCommon(e,t,n,r,i){let a=t.length,o=n.length,s=e.oldPos,c=s-r,l=0;for(;c+1<a&&s+1<o&&this.equals(n[s+1],t[c+1],i);)c++,s++,l++,i.oneChangePerToken&&(e.lastComponent={count:1,previousComponent:e.lastComponent,added:!1,removed:!1});return l&&!i.oneChangePerToken&&(e.lastComponent={count:l,previousComponent:e.lastComponent,added:!1,removed:!1}),e.oldPos=s,c}equals(e,t,n){return n.comparator?n.comparator(e,t):e===t||!!n.ignoreCase&&e.toLowerCase()===t.toLowerCase()}removeEmpty(e){let t=[];for(let n=0;n<e.length;n++)e[n]&&t.push(e[n]);return t}castInput(e,t){return e}tokenize(e,t){return Array.from(e)}join(e){return e.join(``)}postProcess(e,t){return e}get useLongestToken(){return!1}buildValues(e,t,n){let r=[],i;for(;e;)r.push(e),i=e.previousComponent,delete e.previousComponent,e=i;r.reverse();let a=r.length,o=0,s=0,c=0;for(;o<a;o++){let e=r[o];if(e.removed)e.value=this.join(n.slice(c,c+e.count)),c+=e.count;else{if(!e.added&&this.useLongestToken){let r=t.slice(s,s+e.count);r=r.map(function(e,t){let r=n[c+t];return r.length>e.length?r:e}),e.value=this.join(r)}else e.value=this.join(t.slice(s,s+e.count));s+=e.count,e.added||(c+=e.count)}}return r}};new class extends Uv{};function Wv(e,t){let n;for(n=0;n<e.length&&n<t.length;n++)if(e[n]!=t[n])return e.slice(0,n);return e.slice(0,n)}function Gv(e,t){let n;if(!e||!t||e[e.length-1]!=t[t.length-1])return``;for(n=0;n<e.length&&n<t.length;n++)if(e[e.length-(n+1)]!=t[t.length-(n+1)])return e.slice(-n);return e.slice(-n)}function Kv(e,t,n){if(e.slice(0,t.length)!=t)throw Error(`string ${JSON.stringify(e)} doesn't start with prefix ${JSON.stringify(t)}; this is a bug`);return n+e.slice(t.length)}function qv(e,t,n){if(!t)return e+n;if(e.slice(-t.length)!=t)throw Error(`string ${JSON.stringify(e)} doesn't end with suffix ${JSON.stringify(t)}; this is a bug`);return e.slice(0,-t.length)+n}function Jv(e,t){return Kv(e,t,``)}function Yv(e,t){return qv(e,t,``)}function Xv(e,t){return t.slice(0,Zv(e,t))}function Zv(e,t){let n=0;e.length>t.length&&(n=e.length-t.length);let r=t.length;e.length<t.length&&(r=e.length);let i=Array(r),a=0;i[0]=0;for(let e=1;e<r;e++){for(t[e]==t[a]?i[e]=i[a]:i[e]=a;a>0&&t[e]!=t[a];)a=i[a];t[e]==t[a]&&a++}a=0;for(let r=n;r<e.length;r++){for(;a>0&&e[r]!=t[a];)a=i[a];e[r]==t[a]&&a++}return a}function Qv(e,t){let n=[];for(let r of Array.from(t.segment(e))){let e=r.segment;n.length&&/\s/.test(n[n.length-1])&&/\s/.test(e)?n[n.length-1]+=e:n.push(e)}return n}function $v(e,t){if(t)return ty(e,t)[1];let n;for(n=e.length-1;n>=0&&e[n].match(/\s/);n--);return e.substring(n+1)}function ey(e,t){if(t)return ty(e,t)[0];let n=e.match(/^\s*/);return n?n[0]:``}function ty(e,t){if(!t)return[ey(e),$v(e)];if(t.resolvedOptions().granularity!=`word`)throw Error(`The segmenter passed must have a granularity of "word"`);let n=Qv(e,t),r=n[0],i=n[n.length-1];return[/\s/.test(r)?r:``,/\s/.test(i)?i:``]}var ny=`a-zA-Z0-9_\\u{AD}\\u{C0}-\\u{D6}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}`,ry=RegExp(`[${ny}]+|\\s+|[^${ny}]`,`ug`),iy=new class extends Uv{equals(e,t,n){return n.ignoreCase&&(e=e.toLowerCase(),t=t.toLowerCase()),e.trim()===t.trim()}tokenize(e,t={}){let n;if(t.intlSegmenter){let r=t.intlSegmenter;if(r.resolvedOptions().granularity!=`word`)throw Error(`The segmenter passed must have a granularity of "word"`);n=Qv(e,r)}else n=e.match(ry)||[];let r=[],i=null;return n.forEach(e=>{/\s/.test(e)?i==null?r.push(e):r.push(r.pop()+e):i!=null&&/\s/.test(i)?r[r.length-1]==i?r.push(r.pop()+e):r.push(i+e):r.push(e),i=e}),r}join(e){return e.map((e,t)=>t==0?e:e.replace(/^\s+/,``)).join(``)}postProcess(e,t){if(!e||t.oneChangePerToken)return e;let n=null,r=null,i=null;return e.forEach(e=>{e.added?r=e:e.removed?i=e:((r||i)&&oy(n,i,r,e,t.intlSegmenter),n=e,r=null,i=null)}),(r||i)&&oy(n,i,r,null,t.intlSegmenter),e}};function ay(e,t,n){return n?.ignoreWhitespace!=null&&!n.ignoreWhitespace?cy(e,t,n):iy.diff(e,t,n)}function oy(e,t,n,r,i){if(t&&n){let[a,o]=ty(t.value,i),[s,c]=ty(n.value,i);if(e){let r=Wv(a,s);e.value=qv(e.value,s,r),t.value=Jv(t.value,r),n.value=Jv(n.value,r)}if(r){let e=Gv(o,c);r.value=Kv(r.value,c,e),t.value=Yv(t.value,e),n.value=Yv(n.value,e)}}else if(n){if(e){let e=ey(n.value,i);n.value=n.value.substring(e.length)}if(r){let e=ey(r.value,i);r.value=r.value.substring(e.length)}}else if(e&&r){let n=ey(r.value,i),[a,o]=ty(t.value,i),s=Wv(n,a);t.value=Jv(t.value,s);let c=Gv(Jv(n,s),o);t.value=Yv(t.value,c),r.value=Kv(r.value,n,c),e.value=qv(e.value,n,n.slice(0,n.length-c.length))}else if(r){let e=ey(r.value,i),n=Xv($v(t.value,i),e);t.value=Yv(t.value,n)}else if(e){let n=Xv($v(e.value,i),ey(t.value,i));t.value=Jv(t.value,n)}}var sy=new class extends Uv{tokenize(e){let t=RegExp(`(\\r?\\n)|[${ny}]+|[^\\S\\n\\r]+|[^${ny}]`,`ug`);return e.match(t)||[]}};function cy(e,t,n){return sy.diff(e,t,n)}var ly=new class extends Uv{constructor(){super(...arguments),this.tokenize=dy}equals(e,t,n){return n.ignoreWhitespace?((!n.newlineIsToken||!e.includes(`
|
|
53
53
|
`))&&(e=e.trim()),(!n.newlineIsToken||!t.includes(`
|
|
54
54
|
`))&&(t=t.trim())):n.ignoreNewlineAtEof&&!n.newlineIsToken&&(e.endsWith(`
|
|
55
55
|
`)&&(e=e.slice(0,-1)),t.endsWith(`
|
|
56
56
|
`)&&(t=t.slice(0,-1))),super.equals(e,t,n)}};function uy(e,t,n){return ly.diff(e,t,n)}function dy(e,t){t.stripTrailingCr&&(e=e.replace(/\r\n/g,`
|
|
57
|
-
`));let n=[],r=e.split(/(\n|\r\n)/);r[r.length-1]||r.pop();for(let e=0;e<r.length;e++){let i=r[e];e%2&&!t.newlineIsToken?n[n.length-1]+=i:n.push(i)}return n}function fy(e){return e==`.`||e==`!`||e==`?`}new class extends Uv{tokenize(e){let t=[],n=0;for(let r=0;r<e.length;r++){if(r==e.length-1){t.push(e.slice(n));break}if(fy(e[r])&&e[r+1].match(/\s/)){for(t.push(e.slice(n,r+1)),r=n=r+1;e[r+1]?.match(/\s/);)r++;t.push(e.slice(n,r+1)),n=r+1}}return t}},new class extends Uv{tokenize(e){return e.split(/([{}:;,]|\s+)/)}},new class extends Uv{constructor(){super(...arguments),this.tokenize=dy}get useLongestToken(){return!0}castInput(e,t){let{undefinedReplacement:n,stringifyReplacer:r=(e,t)=>t===void 0?n:t}=t;return typeof e==`string`?e:JSON.stringify(py(e,null,null,r),null,` `)}equals(e,t,n){return super.equals(e.replace(/,([\r\n])/g,`$1`),t.replace(/,([\r\n])/g,`$1`),n)}};function py(e,t,n,r,i){t||=[],n||=[],r&&(e=r(i===void 0?``:i,e));let a;for(a=0;a<t.length;a+=1)if(t[a]===e)return n[a];let o;if(Object.prototype.toString.call(e)===`[object Array]`){for(t.push(e),o=Array(e.length),n.push(o),a=0;a<e.length;a+=1)o[a]=py(e[a],t,n,r,String(a));return t.pop(),n.pop(),o}if(e&&e.toJSON&&(e=e.toJSON()),typeof e==`object`&&e){t.push(e),o={},n.push(o);let i=[],s;for(s in e)Object.prototype.hasOwnProperty.call(e,s)&&i.push(s);for(i.sort(),a=0;a<i.length;a+=1)s=i[a],o[s]=py(e[s],t,n,r,s);t.pop(),n.pop()}else o=e;return o}new class extends Uv{tokenize(e){return e.slice()}join(e){return e}removeEmpty(e){return e}};function my(e,t){let n=cy(e,t),r=[],i=[];for(let e of n)e.added?i.push({value:e.value,type:`added`}):e.removed?r.push({value:e.value,type:`removed`}):(r.push({value:e.value,type:`unchanged`}),i.push({value:e.value,type:`unchanged`}));return{oldSegments:r,newSegments:i}}function hy(e,t){if(!e.trim()||!t.trim()||e===t)return!1;let n=ay(e,t),r=0,i=0;for(let e of n)i+=e.value.length,!e.added&&!e.removed&&(r+=e.value.length);return r/i>=.2}var gy=F.memo(({onMouseDown:e,
|
|
58
|
-
`)}},[E,e.lines]),N=(0,F.useCallback)(async e=>{if(E!==null){let t=M();await i(E.lineNumber,e,t,E.side),D(null)}},[E,i,M]),P=(0,F.useCallback)((e,t)=>{if(t==null)return null;let n=e?.(t)??null;return n?[n]:null},[]),ee=(e,t)=>n.filter(n=>{let r=Array.isArray(n.line)?n.line[1]===e:n.line===e,i=!n.side||n.side===t;return r&&i}).sort((e,t)=>e.createdAt.localeCompare(t.createdAt)),te=e=>e.oldLine?.type===`delete`&&e.newLine?.type===`add`?e.newLineNumber?`right`:`left`:e.oldLine?.type===`delete`?`left`:e.newLine?.type===`add`?`right`:`full`,ne=(e,t)=>{let n=e===`old`?t.oldLineNumber:t.newLineNumber;if(!n)return``;if(w&&b&&S&&b.side===e&&S.side===e){let e=Math.min(b.lineNumber,S.lineNumber),t=Math.max(b.lineNumber,S.lineNumber);if(n>=e&&n<=t){let r=`after:bg-blue-100 after:absolute after:inset-0 after:opacity-30 after:border-l-4 after:border-blue-500 after:pointer-events-none`;return n===e&&(r+=` after:border-t-2`),n===t&&(r+=` after:border-b-2`),r}}if(E&&E.side===e){let e=Array.isArray(E.lineNumber)?E.lineNumber:[E.lineNumber,E.lineNumber],t=e[0],r=e[1];if(t!==void 0&&r!==void 0&&n>=t&&n<=r)return`after:bg-diff-selected-bg after:absolute after:inset-0 after:border-l-5 after:border-l-diff-selected-border after:pointer-events-none`}return``},re=(0,F.useCallback)(t=>{let n=[],r=e.oldStart,i=e.newStart,a=0;for(;a<t.length;){let e=t[a];if(!e){a++;continue}if(e.type===`normal`)n.push({oldLine:e,newLine:{...e},oldLineNumber:e.oldLineNumber??r,newLineNumber:e.newLineNumber??i,oldLineOriginalIndex:a,newLineOriginalIndex:a}),r++,i++,a++;else if(e.type===`delete`){let e=a+1;for(;e<t.length&&t[e]?.type===`delete`;)e++;let o=t.slice(a,e),s=a,c=[],l=e;for(;e<t.length&&t[e]?.type===`add`;){let n=t[e];n&&c.push(n),e++}let u=Math.max(o.length,c.length);for(let e=0;e<u;e++){let t=o[e],a=c[e],u;t&&a&&hy(t.content,a.content)&&(u=my(t.content,a.content)),n.push({oldLine:t,newLine:a,oldLineNumber:t?t.oldLineNumber??r+e:void 0,newLineNumber:a?a.newLineNumber??i+e:void 0,oldLineOriginalIndex:t?s+e:void 0,newLineOriginalIndex:a?l+e:void 0,wordLevelDiff:u})}r+=o.length,i+=c.length,a=e}else e.type===`add`&&(n.push({newLine:e,newLineNumber:e.newLineNumber??i,newLineOriginalIndex:a}),i++,a++)}return n},[e.oldStart,e.newStart]);return(0,I.jsx)(`div`,{className:`bg-github-bg-primary overflow-hidden`,children:(0,I.jsx)(`table`,{className:`w-full table-fixed border-collapse font-mono text-sm leading-5`,children:(0,I.jsx)(`tbody`,{children:(0,F.useMemo)(()=>re(e.lines),[e.lines,re]).map((e,n)=>{let i=e.oldLineNumber?ee(e.oldLineNumber,`old`):[],m=e.newLineNumber?ee(e.newLineNumber,`new`):[],h=[...i,...m],D=e.oldLineOriginalIndex??-1,re=e.newLineOriginalIndex??-1,L=d?d.side===`left`&&D>=0?d.chunkIndex===t&&d.lineIndex===D:d.side===`right`&&re>=0?d.chunkIndex===t&&d.lineIndex===re:!1:!1,ie=D>=0?`file-${f}-chunk-${t}-line-${D}-left`:void 0,R=re>=0?`file-${f}-chunk-${t}-line-${re}-right`:void 0,ae=L&&d?.side===`left`,oe=L&&d?.side===`right`,se=`keyboard-cursor`;return(0,I.jsxs)(F.Fragment,{children:[(0,I.jsxs)(`tr`,{className:`group cursor-pointer`,onClick:e=>{if(!w){let n=e.target;if(!(n instanceof HTMLElement))return;let r=n.closest(`td:nth-child(1)`)||n.closest(`td:nth-child(2)`),i=n.closest(`td:nth-child(3)`)||n.closest(`td:nth-child(4)`);r&&D>=0?p?.(f,t,D,`left`):i&&re>=0&&p?.(f,t,re,`right`)}},onMouseEnter:t=>{let n=t.target;if(!(n instanceof HTMLElement))return;let r=n.closest(`td:nth-child(1)`)||n.closest(`td:nth-child(2)`),i=n.closest(`td:nth-child(3)`)||n.closest(`td:nth-child(4)`);r&&e.oldLineNumber?k({side:`old`,lineNumber:e.oldLineNumber}):i&&e.newLineNumber&&k({side:`new`,lineNumber:e.newLineNumber})},onMouseMove:t=>{let n=t.target;if(!(n instanceof HTMLElement))return;let r=n.closest(`td:nth-child(1)`)||n.closest(`td:nth-child(2)`),i=n.closest(`td:nth-child(3)`)||n.closest(`td:nth-child(4)`);r&&e.oldLineNumber?(O?.side!==`old`||O?.lineNumber!==e.oldLineNumber)&&k({side:`old`,lineNumber:e.oldLineNumber}):i&&e.newLineNumber&&(O?.side!==`new`||O?.lineNumber!==e.newLineNumber)&&k({side:`new`,lineNumber:e.newLineNumber}),w&&b&&(b.side===`old`&&e.oldLineNumber?C({side:`old`,lineNumber:e.oldLineNumber}):b.side===`new`&&e.newLineNumber&&C({side:`new`,lineNumber:e.newLineNumber}))},onMouseLeave:()=>k(null),children:[(0,I.jsxs)(`td`,{id:ie,className:`w-[var(--line-number-width)] min-w-[var(--line-number-width)] max-w-[var(--line-number-width)] px-2 text-right text-github-text-muted bg-github-bg-secondary border-r border-github-border select-none align-top relative overflow-visible ${ae?se:``}`,children:[(0,I.jsx)(`span`,{children:e.oldLineNumber||``}),O?.side===`old`&&O?.lineNumber===e.oldLineNumber&&(0,I.jsxs)(I.Fragment,{children:[_&&g&&e.oldLine?.type!==`delete`&&e.newLineNumber!==void 0&&(0,I.jsx)(_y,{onClick:()=>{let t=e.newLineNumber;!g||t===void 0||_(g,t)}}),(0,I.jsx)(gy,{onMouseDown:t=>{t.stopPropagation(),e.oldLineNumber&&(x({side:`old`,lineNumber:e.oldLineNumber}),C({side:`old`,lineNumber:e.oldLineNumber}),T(!0))},onMouseUp:t=>{if(t.stopPropagation(),!e.oldLineNumber||!b){T(!1),x(null),C(null);return}let n=S&&S.side===`old`?S.lineNumber:e.oldLineNumber;b.side!==`old`||b.lineNumber===n?A(`old`,e.oldLineNumber):A(`old`,[Math.min(b.lineNumber,n),Math.max(b.lineNumber,n)]),T(!1),x(null),C(null)}})]})]}),(0,I.jsx)(`td`,{className:`w-1/2 p-0 align-top border-r border-github-border relative ${xy(e.oldLine,by(e.oldLine))} ${ne(`old`,e)} ${ae?se:``}`,children:e.oldLine&&(0,I.jsx)(`div`,{className:`flex items-center relative min-h-[20px] px-3`,children:e.wordLevelDiff?(0,I.jsx)(Rr,{segments:e.wordLevelDiff.oldSegments,className:`flex-1 text-github-text-primary whitespace-pre-wrap break-all overflow-wrap-break-word select-text`}):(0,I.jsx)(Lr,{code:e.oldLine.content,className:`flex-1 text-github-text-primary whitespace-pre-wrap break-all overflow-wrap-break-word select-text [&_pre]:m-0 [&_pre]:p-0 [&_pre]:!bg-transparent [&_pre]:font-inherit [&_pre]:text-inherit [&_pre]:leading-inherit [&_code]:!bg-transparent [&_code]:font-inherit [&_code]:text-inherit [&_code]:leading-inherit`,syntaxTheme:u,filename:g,precomputedTokens:P(v,e.oldLine.oldLineNumber)})})}),(0,I.jsxs)(`td`,{id:R,className:`w-[var(--line-number-width)] min-w-[var(--line-number-width)] max-w-[var(--line-number-width)] px-2 text-right text-github-text-muted bg-github-bg-secondary border-r border-github-border select-none align-top relative overflow-visible ${oe?se:``}`,children:[(0,I.jsx)(`span`,{children:e.newLineNumber||``}),O?.side===`new`&&O?.lineNumber===e.newLineNumber&&(0,I.jsxs)(I.Fragment,{children:[_&&g&&e.newLineNumber!==void 0&&(0,I.jsx)(_y,{onClick:()=>{let t=e.newLineNumber;!g||t===void 0||_(g,t)}}),(0,I.jsx)(gy,{onMouseDown:t=>{t.stopPropagation(),e.newLineNumber&&(x({side:`new`,lineNumber:e.newLineNumber}),C({side:`new`,lineNumber:e.newLineNumber}),T(!0))},onMouseUp:t=>{if(t.stopPropagation(),!e.newLineNumber||!b){T(!1),x(null),C(null);return}let n=S&&S.side===`new`?S.lineNumber:e.newLineNumber;b.side!==`new`||b.lineNumber===n?A(`new`,e.newLineNumber):A(`new`,[Math.min(b.lineNumber,n),Math.max(b.lineNumber,n)]),T(!1),x(null),C(null)}})]})]}),(0,I.jsx)(`td`,{className:`w-1/2 p-0 align-top relative ${xy(e.newLine,by(e.newLine))} ${ne(`new`,e)} ${oe?se:``}`,children:e.newLine&&(0,I.jsx)(`div`,{className:`flex items-center relative min-h-[20px] px-3`,children:e.wordLevelDiff?(0,I.jsx)(Rr,{segments:e.wordLevelDiff.newSegments,className:`flex-1 text-github-text-primary whitespace-pre-wrap break-all overflow-wrap-break-word select-text`}):(0,I.jsx)(Lr,{code:e.newLine.content,className:`flex-1 text-github-text-primary whitespace-pre-wrap break-all overflow-wrap-break-word select-text [&_pre]:m-0 [&_pre]:p-0 [&_pre]:!bg-transparent [&_pre]:font-inherit [&_pre]:text-inherit [&_pre]:leading-inherit [&_code]:!bg-transparent [&_code]:font-inherit [&_code]:text-inherit [&_code]:leading-inherit`,syntaxTheme:u,filename:g,precomputedTokens:P(y,e.newLine.newLineNumber)})})})]}),h.length>0&&(0,I.jsx)(`tr`,{className:`bg-github-bg-secondary`,children:(0,I.jsx)(`td`,{colSpan:4,className:`p-0 border-t border-github-border`,children:h.map(t=>{let n=t.side||`new`,i;return i=n===`old`&&e.oldLineNumber?`left`:n===`new`&&e.newLineNumber?`right`:te(e),(0,I.jsx)(`div`,{className:`flex ${i===`left`?`justify-start`:i===`right`?`justify-end`:`justify-center`}`,children:(0,I.jsx)(`div`,{className:`${i===`full`?`w-full`:`w-1/2`}`,children:(0,I.jsx)(`div`,{className:`m-2 mx-3`,children:(0,I.jsx)(Zr,{thread:t,showAuthorBadges:r,onGeneratePrompt:a,onRemoveThread:o,onReplyToThread:s,onRemoveMessage:c,onUpdateMessage:l,syntaxTheme:u})})})},t.id)})})}),E&&(E.side===`old`&&E.lineNumber===e.oldLineNumber||E.side===`new`&&E.lineNumber===e.newLineNumber||Array.isArray(E.lineNumber)&&(E.side===`new`&&E.lineNumber[1]===e.newLineNumber||E.side===`old`&&E.lineNumber[1]===e.oldLineNumber))&&(0,I.jsx)(`tr`,{className:`bg-github-bg-secondary`,children:(0,I.jsx)(`td`,{colSpan:4,className:`p-0`,children:(0,I.jsx)(`div`,{className:`flex ${E.side===`old`?`justify-start`:E.side===`new`?`justify-end`:`justify-center`}`,children:(0,I.jsx)(`div`,{className:`w-1/2`,children:(0,I.jsx)(Yr,{onSubmit:N,onCancel:j,selectedCode:M(),syntaxTheme:u,filename:g})})})})})]},n)})})})})}var Cy=(0,F.memo)(function({chunk:e,chunkIndex:t,threads:n,showAuthorBadges:r=!1,onAddComment:i,onGenerateThreadPrompt:a,onRemoveThread:o,onReplyToThread:s,onRemoveMessage:c,onUpdateMessage:l,mode:u=St,syntaxTheme:d,cursor:f=null,fileIndex:p=0,onLineClick:m,commentTrigger:h,onCommentTriggerHandled:g,filename:_,onOpenInEditor:v}){let[y,b]=(0,F.useState)(null),[x,S]=(0,F.useState)(null),[C,w]=(0,F.useState)(!1),[T,E]=(0,F.useState)(null),[D,O]=(0,F.useState)(null);(0,F.useEffect)(()=>{if(h?.lineIndex!==void 0){let t=e.lines[h.lineIndex];if(t){let e=t.newLineNumber||t.oldLineNumber,n=t.type===`delete`?`old`:`new`;e&&(E({side:n,lineNumber:e}),g?.())}}},[h,e.lines,g]),(0,F.useEffect)(()=>{if(C){let e=()=>{w(!1),b(null),S(null)};return document.addEventListener(`mouseup`,e),()=>{document.removeEventListener(`mouseup`,e)}}},[C]);let k=(0,F.useCallback)((e,t)=>{T?.side===e&&T?.lineNumber===t?E(null):E({side:e,lineNumber:t})},[T]),A=(0,F.useCallback)(()=>{E(null)},[]),j=(0,F.useCallback)(()=>{if(!T)return``;let{side:t,lineNumber:n}=T,r=e.lines;if(typeof n==`number`)return r.find(e=>t===`old`?e.oldLineNumber===n:e.newLineNumber===n)?.content??``;{let[e,i]=n;return r.filter(n=>{let r=t===`old`?n.oldLineNumber:n.newLineNumber;return r!==void 0&&r>=e&&r<=i}).map(e=>e.content??``).join(`
|
|
59
|
-
`)}},[T,e.lines]),M=(0,F.useCallback)(async e=>{if(T!==null){let t=j();await i(T.lineNumber,e,t,T.side),E(null)}},[T,i,j]),N=(e,t)=>n.filter(n=>{let r=Array.isArray(n.line)?n.line[1]===e:n.line===e,i=!n.side||n.side===t;return r&&i}).sort((e,t)=>e.createdAt.localeCompare(t.createdAt)),P=e=>{if(u===`unified`)return`full`;switch(e.type){case`delete`:return`left`;case`add`:return`right`;default:return`full`}},ee=(e,t)=>{if(!e)return``;if(C&&y&&x){let t=Math.min(y,x),n=Math.max(y,x);if(e>=t&&e<=n){let r=`after:bg-blue-100 after:absolute after:inset-0 after:opacity-30 after:border-l-4 after:border-blue-500 after:pointer-events-none`;return e===t&&(r+=` after:border-t-2`),e===n&&(r+=` after:border-b-2`),r}}if(T&&T.side===t){let t=Array.isArray(T.lineNumber)?T.lineNumber[0]:T.lineNumber,n=Array.isArray(T.lineNumber)?T.lineNumber[1]:T.lineNumber;if(e>=t&&e<=n)return`after:bg-diff-selected-bg after:absolute after:inset-0 after:border-l-5 after:border-l-diff-selected-border after:pointer-events-none`}return``},te=(0,F.useMemo)(()=>{let t=new Map,n=e.lines,r=0;for(;r<n.length;){let e=n[r];if(!e){r++;continue}if(e.type===`delete`){let e=r+1;for(;e<n.length&&n[e]?.type===`delete`;)e++;let i=n.slice(r,e),a=r,o=[];for(;e<n.length&&n[e]?.type===`add`;){let t=n[e];t&&o.push({line:t,index:e}),e++}let s=Math.max(i.length,o.length);for(let e=0;e<s;e++){let n=i[e],r=o[e];if(n&&r&&hy(n.content,r.line.content)){let i=my(n.content,r.line.content);t.set(a+e,i.oldSegments),t.set(r.index,i.newSegments)}}r=e}else r++}return t},[e.lines]);return u===`split`?(0,I.jsx)(Sy,{chunk:e,chunkIndex:t,threads:n,showAuthorBadges:r,onAddComment:i,onGenerateThreadPrompt:a,onRemoveThread:o,onReplyToThread:s,onRemoveMessage:c,onUpdateMessage:l,onOpenInEditor:v,syntaxTheme:d,cursor:f,fileIndex:p,onLineClick:m,filename:_,commentTrigger:h,onCommentTriggerHandled:g}):(0,I.jsx)(`div`,{className:`bg-github-bg-primary`,children:(0,I.jsx)(`table`,{className:`w-full table-fixed border-collapse font-mono text-sm leading-5`,children:(0,I.jsx)(`tbody`,{children:e.lines.map((e,n)=>{let i=e.newLineNumber||e.oldLineNumber||0,u=e.type===`delete`?`old`:`new`,h=T?Array.isArray(T.lineNumber)?T.lineNumber[1]:T.lineNumber:null,g=e.type===`delete`?e.oldLineNumber:e.newLineNumber,E=e.type===`delete`?`old`:`new`,ne=g?N(g,E):[],re=`file-${p}-chunk-${t}-line-${n}`,L=f&&f.chunkIndex===t&&f.lineIndex===n;return(0,I.jsxs)(F.Fragment,{children:[(0,I.jsx)(yy,{line:e,index:n,lineId:re,isCurrentLine:L||!1,hoveredLineIndex:D,selectedLineStyle:ee(e.newLineNumber||e.oldLineNumber,e.type===`delete`?`old`:`new`),onMouseEnter:()=>{O(n)},onMouseLeave:()=>O(null),onMouseMove:()=>{if(C&&y){let t=e.newLineNumber||e.oldLineNumber;t&&S(t)}},onCommentButtonMouseDown:t=>{t.stopPropagation();let n=e.newLineNumber||e.oldLineNumber;n&&(b(n),S(n),w(!0))},onCommentButtonMouseUp:t=>{t.stopPropagation();let n=e.newLineNumber||e.oldLineNumber,r=e.type===`delete`?`old`:`new`;if(!n||!y){w(!1),b(null),S(null);return}let i=x||n;y===i?k(r,n):k(r,[Math.min(y,i),Math.max(y,i)]),w(!1),b(null),S(null)},onOpenInEditor:v&&_&&e.type!==`delete`&&(e.newLineNumber||e.oldLineNumber)?()=>{let t=e.newLineNumber||e.oldLineNumber;t&&_&&v(_,t)}:void 0,syntaxTheme:d,filename:_,diffSegments:te.get(n),onClick:()=>{let r=e.type===`delete`?`left`:`right`;m?.(p,t,n,r)}}),ne.map(t=>{let n=P(e);return(0,I.jsx)(`tr`,{className:`bg-github-bg-secondary`,children:(0,I.jsx)(`td`,{colSpan:3,className:`p-0 border-t border-github-border`,children:(0,I.jsx)(`div`,{className:`flex ${n===`left`?`justify-start`:n===`right`?`justify-end`:`justify-center`}`,children:(0,I.jsx)(`div`,{className:`${n===`full`?`w-full`:`w-1/2`} m-2 mx-4`,children:(0,I.jsx)(Zr,{thread:t,showAuthorBadges:r,onGeneratePrompt:a,onRemoveThread:o,onReplyToThread:s,onRemoveMessage:c,onUpdateMessage:l,syntaxTheme:d})})})})},t.id)}),T&&T.side===u&&h===i&&(0,I.jsx)(`tr`,{className:`bg-[var(--bg-secondary)]`,children:(0,I.jsx)(`td`,{colSpan:3,className:`p-0`,children:(0,I.jsx)(`div`,{className:`flex ${P(e)===`left`?`justify-start`:P(e)===`right`?`justify-end`:`justify-center`}`,children:(0,I.jsx)(`div`,{className:`${P(e)===`full`?`w-full`:`w-1/2`}`,children:(0,I.jsx)(Yr,{onSubmit:M,onCancel:A,selectedCode:j(),syntaxTheme:d,filename:_})})})})})]},n)})})})})}),wy=20,Ty=(0,F.memo)(function({direction:e,hiddenLines:t,onExpandUp:n,onExpandDown:r,onExpandAll:i,isLoading:a=!1}){if(t<=0)return null;let o=`${t} ${t===1?`line`:`lines`}`,s=t<=wy,c=[];return s?c.push({key:`all`,onClick:i,ariaLabel:`Expand all ${t} hidden lines`,icon:(0,I.jsx)(bt,{size:16,"aria-hidden":`true`})}):((e===`up`||e===`both`)&&c.push({key:`up`,onClick:n,ariaLabel:`Expand ${wy} hidden lines above`,icon:(0,I.jsx)(Be,{size:12,"aria-hidden":`true`,className:`translate-y-0.5`})}),(e===`down`||e===`both`)&&c.push({key:`down`,onClick:r,ariaLabel:`Expand ${wy} hidden lines below`,icon:(0,I.jsx)(ze,{size:12,"aria-hidden":`true`,className:`-translate-y-0.5`})})),(0,I.jsxs)(`div`,{className:`grid w-full border-l border-r border-github-border bg-github-bg-tertiary text-sm grid-cols-[var(--line-number-width)_1fr]`,children:[(0,I.jsx)(`div`,{className:`flex flex-col items-stretch justify-center gap-0.5 border-r border-github-border`,children:a?(0,I.jsx)(ct,{size:14,className:`animate-spin text-github-text-muted self-center`,"aria-hidden":`true`}):c.map(e=>(0,I.jsx)(`button`,{type:`button`,onClick:e.onClick,disabled:a||!e.onClick,className:`flex flex-1 w-full items-center justify-center py-1 text-github-text-primary hover:bg-github-bg-secondary hover:text-github-text-muted transition-all duration-200 disabled:opacity-50 disabled:cursor-not-allowed`,title:e.ariaLabel,"aria-label":e.ariaLabel,children:e.icon},e.key))}),(0,I.jsx)(`div`,{className:`flex items-center justify-start px-3 py-1.5 font-mono text-github-text-muted select-none`,children:o})]})});function Ey({file:e,threads:t,showAuthorBadges:n,diffMode:r,syntaxTheme:i,cursor:a,fileIndex:o,mergedChunks:s,isExpandLoading:c,expandHiddenLines:l,expandAllBetweenChunks:u,onAddComment:d,onGenerateThreadPrompt:f,onRemoveThread:p,onReplyToThread:m,onRemoveMessage:h,onUpdateMessage:g,onLineClick:_,onOpenInEditor:v,commentTrigger:y,onCommentTriggerHandled:b}){let x=(t,n,r,i)=>t===`top`&&n.hiddenLinesBefore>0?(0,I.jsx)(Ty,{direction:`down`,hiddenLines:n.hiddenLinesBefore,onExpandDown:()=>l(e,r,`up`),onExpandAll:()=>u(e,r,n.hiddenLinesBefore),isLoading:c}):t===`middle`&&n.hiddenLinesBefore>0?(0,I.jsx)(Ty,{direction:`both`,hiddenLines:n.hiddenLinesBefore,onExpandUp:()=>l(e,r-1,`down`),onExpandDown:()=>l(e,r,`up`),onExpandAll:()=>u(e,r,n.hiddenLinesBefore),isLoading:c}):t===`bottom`&&n.hiddenLinesAfter>0?(0,I.jsx)(Ty,{direction:`up`,hiddenLines:n.hiddenLinesAfter,onExpandUp:()=>l(e,i,`down`),onExpandAll:()=>l(e,i,`down`,n.hiddenLinesAfter),isLoading:c}):null;return(0,I.jsx)(I.Fragment,{children:s.map((c,l)=>{let u=l===0,S=l===s.length-1,C=c.originalIndices[0]??0,w=c.originalIndices[c.originalIndices.length-1]??0;return(0,I.jsxs)(F.Fragment,{children:[u&&x(`top`,c,C,w),!u&&x(`middle`,c,C,w),(0,I.jsx)(`div`,{id:`chunk-${e.path.replace(/[^a-zA-Z0-9]/g,`-`)}-${l}`,children:(0,I.jsx)(Cy,{chunk:c,chunkIndex:l,threads:t,showAuthorBadges:n,onAddComment:d,onGenerateThreadPrompt:f,onRemoveThread:p,onReplyToThread:m,onRemoveMessage:h,onUpdateMessage:g,onOpenInEditor:v,mode:r,syntaxTheme:i,cursor:a&&a.chunkIndex===l?a:null,fileIndex:o,onLineClick:_,commentTrigger:y&&y.chunkIndex===l?y:null,onCommentTriggerHandled:b,filename:e.path})}),S&&x(`bottom`,c,C,w)]},l)})})}var Dy=e=>!!(e&&e!==`stdin`),Oy=[`text-[26px] font-semibold`,`text-[22px] font-semibold`,`text-xl font-semibold`,`text-lg font-semibold`,`text-base font-semibold uppercase tracking-wide`,`text-base font-semibold`],ky=e=>e.type===`delete`||e.type===`remove`,Ay=e=>e.type===`normal`||e.type===`context`,jy=e=>/^(https?:|mailto:|#|\.{0,2}\/|\/)/i.test(e.trim()),My=(e,t,n)=>{let r=e[e.length-1];if(r&&r.type===t){r.lines.push(n);return}e.push({type:t,lines:[n]})},Ny=(e,t)=>{t.forEach(t=>My(e,`delete`,t)),t.length=0},Py=e=>{let t=[],n=[],r=!1;return e.forEach(e=>{e.lines.forEach(e=>{if(!(e.type===`header`||e.type===`hunk`)){if(ky(e)){n.push(e.content);return}if(e.type===`add`){n.length>0&&(Ny(t,n),r=!0),My(t,r?`change`:`add`,e.content);return}Ay(e)&&(Ny(t,n),r=!1,My(t,`context`,e.content))}}),Ny(t,n),r=!1}),t},Fy=e=>F.isValidElement(e),Iy=e=>F.isValidElement(e),Ly=e=>e==null||typeof e==`boolean`?``:typeof e==`string`||typeof e==`number`?String(e):Array.isArray(e)?e.map(Ly).join(``):Fy(e)?Ly(e.props.children):``,Ry=e=>({h1:({children:e})=>(0,I.jsx)(`h1`,{className:`${Oy[0]} mt-6 mb-2 first:mt-0`,children:e}),h2:({children:e})=>(0,I.jsx)(`h2`,{className:`${Oy[1]} mt-6 mb-2 first:mt-0`,children:e}),h3:({children:e})=>(0,I.jsx)(`h3`,{className:`${Oy[2]} mt-6 mb-2 first:mt-0`,children:e}),h4:({children:e})=>(0,I.jsx)(`h4`,{className:`${Oy[3]} mt-6 mb-2 first:mt-0`,children:e}),h5:({children:e})=>(0,I.jsx)(`h5`,{className:`${Oy[4]} mt-6 mb-2 first:mt-0`,children:e}),h6:({children:e})=>(0,I.jsx)(`h6`,{className:`${Oy[5]} mt-6 mb-2 first:mt-0`,children:e}),p:({children:e})=>(0,I.jsx)(`p`,{className:`text-base leading-7`,children:e}),ul:({children:e})=>(0,I.jsx)(`ul`,{className:`list-disc pl-6 text-base space-y-1`,children:e}),ol:({children:e})=>(0,I.jsx)(`ol`,{className:`list-decimal pl-6 text-base space-y-1`,children:e}),li:({children:e})=>(0,I.jsx)(`li`,{children:e}),blockquote:({children:e})=>(0,I.jsx)(`blockquote`,{className:`border-l-4 border-github-border pl-4 text-github-text-muted italic`,children:e}),hr:()=>(0,I.jsx)(`hr`,{className:`border-github-border`}),a:({href:e,children:t})=>{let n=e??``;if(!n||!jy(n))return(0,I.jsx)(`span`,{children:t});let r=n.startsWith(`http`);return(0,I.jsx)(`a`,{href:n,target:r?`_blank`:void 0,rel:r?`noreferrer`:void 0,className:`text-sky-400 hover:text-sky-300 underline underline-offset-4`,children:t})},img:({src:e,alt:t})=>{let n=e??``;return!n||!jy(n)?null:(0,I.jsx)(`img`,{src:n,alt:t??``,loading:`lazy`,className:`max-w-full rounded border border-github-border`})},pre:({children:t})=>{let n=(Array.isArray(t)?t:[t]).find(Iy),r=Ly(n??t),i=/language-(\S+)/.exec(n?.props.className??``)?.[1],a=r.replace(/\n$/,``);return i===`mermaid`&&a.trim()?(0,I.jsx)(Vv,{chart:a}):r.trim()?(0,I.jsx)(`pre`,{className:`markdown-preview-code border border-github-border bg-github-bg-secondary p-3 overflow-x-auto text-sm`,children:(0,I.jsx)(Ir,{code:a,language:i,syntaxTheme:e,className:`font-mono text-github-text-primary`})}):(0,I.jsx)(`pre`,{className:`markdown-preview-code border border-github-border bg-github-bg-secondary p-3 overflow-x-auto text-sm`,children:t})},code:({className:e,children:t})=>e?(0,I.jsx)(`code`,{className:e,children:t}):(0,I.jsx)(`code`,{className:`px-1 py-0.5 rounded bg-github-bg-tertiary border border-github-border text-sm font-mono`,children:t}),table:({children:e})=>(0,I.jsx)(`div`,{className:`overflow-x-auto`,children:(0,I.jsx)(`table`,{className:`w-full border-collapse text-sm`,children:e})}),thead:({children:e})=>(0,I.jsx)(`thead`,{className:`bg-github-bg-secondary`,children:e}),tbody:({children:e})=>(0,I.jsx)(`tbody`,{children:e}),tr:({children:e})=>(0,I.jsx)(`tr`,{className:`border-b border-github-border`,children:e}),th:({children:e})=>(0,I.jsx)(`th`,{className:`px-3 py-2 text-left font-semibold border border-github-border`,children:e}),td:({children:e})=>(0,I.jsx)(`td`,{className:`px-3 py-2 border border-github-border`,children:e})}),zy=e=>{switch(e){case`add`:return`border-l-4 border-diff-addition-border`;case`delete`:return`border-l-4 border-diff-deletion-border`;case`change`:return`border-l-4 border-diff-addition-border`;default:return`border-l-4 border-transparent`}},By=e=>/^\s*\[[^\]]+\]:\s+\S+/.test(e),Vy=e=>/^\s*\[\^[^\]]+\]:\s+/.test(e),Hy=e=>{let t=e.trim();return t.length>=7&&t.startsWith(`<!--`)&&t.endsWith(`-->`)},Uy=e=>e.trim()===``||By(e)||Vy(e)||Hy(e),Wy=e=>e.every(Uy),Gy=e=>{let t=e.match(/^\s{0,3}(`{3,}|~{3,})(.*)$/);if(!t)return null;let n=t[1];return n?{marker:n[0],length:n.length,raw:e}:null},Ky=(e,t)=>{let n=e.match(/^\s{0,3}(`{3,}|~{3,})\s*$/);return n?.[1]?n[1][0]===t.marker&&n[1].length>=t.length:!1},qy=e=>{let t=[],n=null,r=null,i=()=>{n&&=(t.push(n),null)},a=(e,t)=>{if(n?.type===e){n.lines.push(t);return}i(),n={kind:`markdown`,type:e,lines:[t]}},o=e=>{if(!r)return;let n=r.lines.every(e=>e.type===`context`);e&&n?(a(`context`,r.fence.raw),r.lines.forEach(e=>{a(`context`,e.content)}),a(`context`,e)):(i(),t.push({kind:`fenced-code`,lines:r.lines})),r=null};return e.forEach(e=>{e.lines.forEach(t=>{if(r){if(Ky(t,r.fence)){o(t);return}r.lines.push({type:e.type,content:t});return}let n=Gy(t);if(n){i(),r={fence:n,lines:[]};return}a(e.type,t)})}),o(),i(),t},Jy=e=>{switch(e){case`add`:case`change`:return`border-l-4 border-diff-addition-border bg-diff-addition-bg`;case`delete`:return`border-l-4 border-diff-deletion-border bg-diff-deletion-bg`;default:return`border-l-4 border-transparent`}},Yy=({blocks:e,syntaxTheme:t})=>{let n=(0,F.useMemo)(()=>Ry(t),[t]);return(0,I.jsx)(`div`,{className:`space-y-4`,children:(0,F.useMemo)(()=>qy(e),[e]).map((e,t)=>{if(e.kind===`fenced-code`)return(0,I.jsx)(`div`,{className:`px-4`,children:(0,I.jsx)(`div`,{className:`markdown-preview-code overflow-x-auto rounded border border-github-border bg-github-bg-secondary text-sm font-mono text-github-text-primary`,children:e.lines.map((e,n)=>(0,I.jsx)(`div`,{className:`${Jy(e.type)} whitespace-pre px-3 py-1`,children:e.content||` `},`preview-code-line-${t}-${n}`))})},`preview-block-${t}`);let r=e.lines.join(`
|
|
57
|
+
`));let n=[],r=e.split(/(\n|\r\n)/);r[r.length-1]||r.pop();for(let e=0;e<r.length;e++){let i=r[e];e%2&&!t.newlineIsToken?n[n.length-1]+=i:n.push(i)}return n}function fy(e){return e==`.`||e==`!`||e==`?`}new class extends Uv{tokenize(e){let t=[],n=0;for(let r=0;r<e.length;r++){if(r==e.length-1){t.push(e.slice(n));break}if(fy(e[r])&&e[r+1].match(/\s/)){for(t.push(e.slice(n,r+1)),r=n=r+1;e[r+1]?.match(/\s/);)r++;t.push(e.slice(n,r+1)),n=r+1}}return t}},new class extends Uv{tokenize(e){return e.split(/([{}:;,]|\s+)/)}},new class extends Uv{constructor(){super(...arguments),this.tokenize=dy}get useLongestToken(){return!0}castInput(e,t){let{undefinedReplacement:n,stringifyReplacer:r=(e,t)=>t===void 0?n:t}=t;return typeof e==`string`?e:JSON.stringify(py(e,null,null,r),null,` `)}equals(e,t,n){return super.equals(e.replace(/,([\r\n])/g,`$1`),t.replace(/,([\r\n])/g,`$1`),n)}};function py(e,t,n,r,i){t||=[],n||=[],r&&(e=r(i===void 0?``:i,e));let a;for(a=0;a<t.length;a+=1)if(t[a]===e)return n[a];let o;if(Object.prototype.toString.call(e)===`[object Array]`){for(t.push(e),o=Array(e.length),n.push(o),a=0;a<e.length;a+=1)o[a]=py(e[a],t,n,r,String(a));return t.pop(),n.pop(),o}if(e&&e.toJSON&&(e=e.toJSON()),typeof e==`object`&&e){t.push(e),o={},n.push(o);let i=[],s;for(s in e)Object.prototype.hasOwnProperty.call(e,s)&&i.push(s);for(i.sort(),a=0;a<i.length;a+=1)s=i[a],o[s]=py(e[s],t,n,r,s);t.pop(),n.pop()}else o=e;return o}new class extends Uv{tokenize(e){return e.slice()}join(e){return e}removeEmpty(e){return e}};function my(e,t){let n=cy(e,t),r=[],i=[];for(let e of n)e.added?i.push({value:e.value,type:`added`}):e.removed?r.push({value:e.value,type:`removed`}):(r.push({value:e.value,type:`unchanged`}),i.push({value:e.value,type:`unchanged`}));return{oldSegments:r,newSegments:i}}function hy(e,t){if(!e.trim()||!t.trim()||e===t)return!1;let n=ay(e,t),r=0,i=0;for(let e of n)i+=e.value.length,!e.added&&!e.removed&&(r+=e.value.length);return r/i>=.2}var gy=F.memo(({onMouseDown:e,title:t=`Add a comment`})=>(0,I.jsx)(`button`,{className:`absolute -right-2 top-1/2 -translate-y-1/2 w-7 h-7 flex items-center justify-center rounded transition-all duration-150 hover:scale-110 z-10`,"data-comment-button":`true`,style:{backgroundColor:`var(--color-yellow-btn-bg)`,color:`var(--color-yellow-btn-text)`,border:`1px solid var(--color-yellow-btn-border)`},onMouseEnter:e=>{e.currentTarget.style.backgroundColor=`var(--color-yellow-btn-hover-bg)`,e.currentTarget.style.borderColor=`var(--color-yellow-btn-hover-border)`},onMouseLeave:e=>{e.currentTarget.style.backgroundColor=`var(--color-yellow-btn-bg)`,e.currentTarget.style.borderColor=`var(--color-yellow-btn-border)`},onMouseDown:e,title:t,children:(0,I.jsx)(ut,{className:`w-4 h-4`})}));gy.displayName=`CommentButton`;var _y=F.memo(({onClick:e,title:t=`Open in editor`,className:n})=>(0,I.jsx)(`button`,{className:`absolute -right-10 top-1/2 -translate-y-1/2 w-7 h-7 flex items-center justify-center rounded transition-all duration-150 hover:scale-110 z-10 ${n||``}`,"data-open-in-editor-button":`true`,style:{backgroundColor:`var(--color-editor-btn-bg)`,color:`var(--color-editor-btn-text)`,border:`1px solid var(--color-editor-btn-border)`},onMouseEnter:e=>{e.currentTarget.style.backgroundColor=`var(--color-editor-btn-hover-bg)`,e.currentTarget.style.borderColor=`var(--color-editor-btn-hover-border)`},onMouseLeave:e=>{e.currentTarget.style.backgroundColor=`var(--color-editor-btn-bg)`,e.currentTarget.style.borderColor=`var(--color-editor-btn-border)`},onMouseDown:e=>{e.stopPropagation()},onClick:t=>{t.stopPropagation(),e(t)},title:t,children:(0,I.jsx)(Ze,{className:`w-4 h-4 opacity-80`})}));_y.displayName=`OpenInEditorButton`;var vy=e=>{if(`isExpanded`in e&&e.isExpanded)return`bg-github-bg-tertiary/80`;switch(e.type){case`add`:return`bg-diff-addition-bg`;case`delete`:return`bg-diff-deletion-bg`;default:return`bg-transparent`}},yy=F.memo(({line:e,index:t,lineId:n,isCurrentLine:r=!1,hoveredLineIndex:i,selectedLineStyle:a,onMouseEnter:o,onMouseLeave:s,onMouseMove:c,onCommentButtonMouseDown:l,onOpenInEditor:u,syntaxTheme:d,onClick:f,filename:p,diffSegments:m})=>{let h=e.newLineNumber||e.oldLineNumber,g=i===t&&h,_=r?`keyboard-cursor`:``;return(0,I.jsxs)(`tr`,{id:n,className:`group ${vy(e)} relative ${a} ${_} cursor-pointer`,onMouseEnter:o,onMouseLeave:s,onMouseMove:c,onClick:f,children:[(0,I.jsx)(`td`,{className:`w-[var(--line-number-width)] min-w-[var(--line-number-width)] max-w-[var(--line-number-width)] px-2 text-right text-github-text-muted bg-github-bg-secondary border-r border-github-border select-none align-top relative`,children:e.oldLineNumber||``}),(0,I.jsxs)(`td`,{className:`w-[var(--line-number-width)] min-w-[var(--line-number-width)] max-w-[var(--line-number-width)] px-2 text-right text-github-text-muted bg-github-bg-secondary border-r border-github-border select-none align-top relative overflow-visible`,children:[(0,I.jsx)(`span`,{children:e.newLineNumber||``}),g&&(0,I.jsxs)(I.Fragment,{children:[u&&(0,I.jsx)(_y,{onClick:u}),(0,I.jsx)(gy,{onMouseDown:l})]})]}),(0,I.jsx)(`td`,{className:`p-0 w-full relative align-top`,children:(0,I.jsx)(Vr,{line:e,syntaxTheme:d,filename:p,diffSegments:m})})]})});yy.displayName=`DiffLineRow`;var by=e=>e!==void 0&&`isExpanded`in e&&e.isExpanded===!0,xy=(e,t)=>t?`bg-github-bg-tertiary/80`:e?.type===`delete`?`bg-diff-deletion-bg`:e?.type===`add`?`bg-diff-addition-bg`:e?.type===`normal`?`bg-transparent`:`bg-github-bg-secondary`;function Sy({chunk:e,chunkIndex:t,threads:n,showAuthorBadges:r=!1,onAddComment:i,onGenerateThreadPrompt:a,onRemoveThread:o,onReplyToThread:s,onRemoveMessage:c,onUpdateMessage:l,syntaxTheme:u,cursor:d=null,fileIndex:f=0,onLineClick:p,commentTrigger:m,onCommentTriggerHandled:h,filename:g,onOpenInEditor:_}){let{getOldTokens:v,getNewTokens:y}=ln(),[b,x]=(0,F.useState)(null),[S,C]=(0,F.useState)(null),[w,T]=(0,F.useState)(!1),[E,D]=(0,F.useState)(null),[O,k]=(0,F.useState)(null);(0,F.useEffect)(()=>{if(m?.lineIndex!==void 0){let t=e.lines[m.lineIndex];if(t&&t.type!==`delete`){let e=t.newLineNumber;e&&(D({side:`new`,lineNumber:e}),h?.())}}},[m,e.lines,h]);let A=(0,F.useCallback)((e,t)=>{E?.side===e&&E?.lineNumber===t?D(null):D({side:e,lineNumber:t})},[E]);(0,F.useEffect)(()=>{if(!w)return;let e=()=>{setTimeout(()=>{if(b){let e=S&&S.side===b.side?S.lineNumber:b.lineNumber;if(b.lineNumber===e)A(b.side,b.lineNumber);else{let t=Math.min(b.lineNumber,e),n=Math.max(b.lineNumber,e);A(b.side,[t,n])}}T(!1),x(null),C(null)},0)};return document.addEventListener(`mouseup`,e),()=>{document.removeEventListener(`mouseup`,e)}},[w,b,S,A]);let j=(0,F.useCallback)(()=>{D(null)},[]),M=(0,F.useCallback)(()=>{if(!E)return``;let{side:t,lineNumber:n}=E,r=e.lines;if(typeof n==`number`)return r.find(e=>t===`old`?e.oldLineNumber===n:e.newLineNumber===n)?.content??``;{let[e,i]=n;return r.filter(n=>{let r=t===`old`?n.oldLineNumber:n.newLineNumber;return r!==void 0&&r>=e&&r<=i}).map(e=>e.content??``).join(`
|
|
58
|
+
`)}},[E,e.lines]),N=(0,F.useCallback)(async e=>{if(E!==null){let t=M();await i(E.lineNumber,e,t,E.side),D(null)}},[E,i,M]),P=(0,F.useCallback)((e,t)=>{if(t==null)return null;let n=e?.(t)??null;return n?[n]:null},[]),ee=(e,t)=>n.filter(n=>{let r=Array.isArray(n.line)?n.line[1]===e:n.line===e,i=!n.side||n.side===t;return r&&i}).sort((e,t)=>e.createdAt.localeCompare(t.createdAt)),te=e=>e.oldLine?.type===`delete`&&e.newLine?.type===`add`?e.newLineNumber?`right`:`left`:e.oldLine?.type===`delete`?`left`:e.newLine?.type===`add`?`right`:`full`,ne=(e,t)=>{let n=e===`old`?t.oldLineNumber:t.newLineNumber;if(!n)return``;if(w&&b&&S&&b.side===e&&S.side===e){let e=Math.min(b.lineNumber,S.lineNumber),t=Math.max(b.lineNumber,S.lineNumber);if(n>=e&&n<=t){let r=`after:bg-blue-100 after:absolute after:inset-0 after:opacity-30 after:border-l-4 after:border-blue-500 after:pointer-events-none`;return n===e&&(r+=` after:border-t-2`),n===t&&(r+=` after:border-b-2`),r}}if(E&&E.side===e){let e=Array.isArray(E.lineNumber)?E.lineNumber:[E.lineNumber,E.lineNumber],t=e[0],r=e[1];if(t!==void 0&&r!==void 0&&n>=t&&n<=r)return`after:bg-diff-selected-bg after:absolute after:inset-0 after:border-l-5 after:border-l-diff-selected-border after:pointer-events-none`}return``},re=(0,F.useCallback)(t=>{let n=[],r=e.oldStart,i=e.newStart,a=0;for(;a<t.length;){let e=t[a];if(!e){a++;continue}if(e.type===`normal`)n.push({oldLine:e,newLine:{...e},oldLineNumber:e.oldLineNumber??r,newLineNumber:e.newLineNumber??i,oldLineOriginalIndex:a,newLineOriginalIndex:a}),r++,i++,a++;else if(e.type===`delete`){let e=a+1;for(;e<t.length&&t[e]?.type===`delete`;)e++;let o=t.slice(a,e),s=a,c=[],l=e;for(;e<t.length&&t[e]?.type===`add`;){let n=t[e];n&&c.push(n),e++}let u=Math.max(o.length,c.length);for(let e=0;e<u;e++){let t=o[e],a=c[e],u;t&&a&&hy(t.content,a.content)&&(u=my(t.content,a.content)),n.push({oldLine:t,newLine:a,oldLineNumber:t?t.oldLineNumber??r+e:void 0,newLineNumber:a?a.newLineNumber??i+e:void 0,oldLineOriginalIndex:t?s+e:void 0,newLineOriginalIndex:a?l+e:void 0,wordLevelDiff:u})}r+=o.length,i+=c.length,a=e}else e.type===`add`&&(n.push({newLine:e,newLineNumber:e.newLineNumber??i,newLineOriginalIndex:a}),i++,a++)}return n},[e.oldStart,e.newStart]);return(0,I.jsx)(`div`,{className:`bg-github-bg-primary overflow-hidden`,children:(0,I.jsx)(`table`,{className:`w-full table-fixed border-collapse font-mono text-sm leading-5`,children:(0,I.jsx)(`tbody`,{children:(0,F.useMemo)(()=>re(e.lines),[e.lines,re]).map((e,n)=>{let i=e.oldLineNumber?ee(e.oldLineNumber,`old`):[],m=e.newLineNumber?ee(e.newLineNumber,`new`):[],h=[...i,...m],S=e.oldLineOriginalIndex??-1,D=e.newLineOriginalIndex??-1,A=d?d.side===`left`&&S>=0?d.chunkIndex===t&&d.lineIndex===S:d.side===`right`&&D>=0?d.chunkIndex===t&&d.lineIndex===D:!1:!1,re=S>=0?`file-${f}-chunk-${t}-line-${S}-left`:void 0,L=D>=0?`file-${f}-chunk-${t}-line-${D}-right`:void 0,ie=A&&d?.side===`left`,R=A&&d?.side===`right`,ae=`keyboard-cursor`;return(0,I.jsxs)(F.Fragment,{children:[(0,I.jsxs)(`tr`,{className:`group cursor-pointer`,onClick:e=>{if(!w){let n=e.target;if(!(n instanceof HTMLElement))return;let r=n.closest(`td:nth-child(1)`)||n.closest(`td:nth-child(2)`),i=n.closest(`td:nth-child(3)`)||n.closest(`td:nth-child(4)`);r&&S>=0?p?.(f,t,S,`left`):i&&D>=0&&p?.(f,t,D,`right`)}},onMouseEnter:t=>{let n=t.target;if(!(n instanceof HTMLElement))return;let r=n.closest(`td:nth-child(1)`)||n.closest(`td:nth-child(2)`),i=n.closest(`td:nth-child(3)`)||n.closest(`td:nth-child(4)`);r&&e.oldLineNumber?k({side:`old`,lineNumber:e.oldLineNumber}):i&&e.newLineNumber&&k({side:`new`,lineNumber:e.newLineNumber})},onMouseMove:t=>{let n=t.target;if(!(n instanceof HTMLElement))return;let r=n.closest(`td:nth-child(1)`)||n.closest(`td:nth-child(2)`),i=n.closest(`td:nth-child(3)`)||n.closest(`td:nth-child(4)`);r&&e.oldLineNumber?(O?.side!==`old`||O?.lineNumber!==e.oldLineNumber)&&k({side:`old`,lineNumber:e.oldLineNumber}):i&&e.newLineNumber&&(O?.side!==`new`||O?.lineNumber!==e.newLineNumber)&&k({side:`new`,lineNumber:e.newLineNumber}),w&&b&&(b.side===`old`&&e.oldLineNumber?C({side:`old`,lineNumber:e.oldLineNumber}):b.side===`new`&&e.newLineNumber&&C({side:`new`,lineNumber:e.newLineNumber}))},onMouseLeave:()=>k(null),children:[(0,I.jsxs)(`td`,{id:re,className:`w-[var(--line-number-width)] min-w-[var(--line-number-width)] max-w-[var(--line-number-width)] px-2 text-right text-github-text-muted bg-github-bg-secondary border-r border-github-border select-none align-top relative overflow-visible ${ie?ae:``}`,children:[(0,I.jsx)(`span`,{children:e.oldLineNumber||``}),O?.side===`old`&&O?.lineNumber===e.oldLineNumber&&(0,I.jsxs)(I.Fragment,{children:[_&&g&&e.oldLine?.type!==`delete`&&e.newLineNumber!==void 0&&(0,I.jsx)(_y,{onClick:()=>{let t=e.newLineNumber;!g||t===void 0||_(g,t)}}),(0,I.jsx)(gy,{onMouseDown:t=>{t.stopPropagation(),e.oldLineNumber&&(x({side:`old`,lineNumber:e.oldLineNumber}),C({side:`old`,lineNumber:e.oldLineNumber}),T(!0))}})]})]}),(0,I.jsx)(`td`,{className:`w-1/2 p-0 align-top border-r border-github-border relative ${xy(e.oldLine,by(e.oldLine))} ${ne(`old`,e)} ${ie?ae:``}`,children:e.oldLine&&(0,I.jsx)(`div`,{className:`flex items-center relative min-h-[20px] px-3`,children:e.wordLevelDiff?(0,I.jsx)(Rr,{segments:e.wordLevelDiff.oldSegments,className:`flex-1 text-github-text-primary whitespace-pre-wrap break-all overflow-wrap-break-word select-text`}):(0,I.jsx)(Lr,{code:e.oldLine.content,className:`flex-1 text-github-text-primary whitespace-pre-wrap break-all overflow-wrap-break-word select-text [&_pre]:m-0 [&_pre]:p-0 [&_pre]:!bg-transparent [&_pre]:font-inherit [&_pre]:text-inherit [&_pre]:leading-inherit [&_code]:!bg-transparent [&_code]:font-inherit [&_code]:text-inherit [&_code]:leading-inherit`,syntaxTheme:u,filename:g,precomputedTokens:P(v,e.oldLine.oldLineNumber)})})}),(0,I.jsxs)(`td`,{id:L,className:`w-[var(--line-number-width)] min-w-[var(--line-number-width)] max-w-[var(--line-number-width)] px-2 text-right text-github-text-muted bg-github-bg-secondary border-r border-github-border select-none align-top relative overflow-visible ${R?ae:``}`,children:[(0,I.jsx)(`span`,{children:e.newLineNumber||``}),O?.side===`new`&&O?.lineNumber===e.newLineNumber&&(0,I.jsxs)(I.Fragment,{children:[_&&g&&e.newLineNumber!==void 0&&(0,I.jsx)(_y,{onClick:()=>{let t=e.newLineNumber;!g||t===void 0||_(g,t)}}),(0,I.jsx)(gy,{onMouseDown:t=>{t.stopPropagation(),e.newLineNumber&&(x({side:`new`,lineNumber:e.newLineNumber}),C({side:`new`,lineNumber:e.newLineNumber}),T(!0))}})]})]}),(0,I.jsx)(`td`,{className:`w-1/2 p-0 align-top relative ${xy(e.newLine,by(e.newLine))} ${ne(`new`,e)} ${R?ae:``}`,children:e.newLine&&(0,I.jsx)(`div`,{className:`flex items-center relative min-h-[20px] px-3`,children:e.wordLevelDiff?(0,I.jsx)(Rr,{segments:e.wordLevelDiff.newSegments,className:`flex-1 text-github-text-primary whitespace-pre-wrap break-all overflow-wrap-break-word select-text`}):(0,I.jsx)(Lr,{code:e.newLine.content,className:`flex-1 text-github-text-primary whitespace-pre-wrap break-all overflow-wrap-break-word select-text [&_pre]:m-0 [&_pre]:p-0 [&_pre]:!bg-transparent [&_pre]:font-inherit [&_pre]:text-inherit [&_pre]:leading-inherit [&_code]:!bg-transparent [&_code]:font-inherit [&_code]:text-inherit [&_code]:leading-inherit`,syntaxTheme:u,filename:g,precomputedTokens:P(y,e.newLine.newLineNumber)})})})]}),h.length>0&&(0,I.jsx)(`tr`,{className:`bg-github-bg-secondary`,children:(0,I.jsx)(`td`,{colSpan:4,className:`p-0 border-t border-github-border`,children:h.map(t=>{let n=t.side||`new`,i;return i=n===`old`&&e.oldLineNumber?`left`:n===`new`&&e.newLineNumber?`right`:te(e),(0,I.jsx)(`div`,{className:`flex ${i===`left`?`justify-start`:i===`right`?`justify-end`:`justify-center`}`,children:(0,I.jsx)(`div`,{className:`${i===`full`?`w-full`:`w-1/2`}`,children:(0,I.jsx)(`div`,{className:`m-2 mx-3`,children:(0,I.jsx)(Zr,{thread:t,showAuthorBadges:r,onGeneratePrompt:a,onRemoveThread:o,onReplyToThread:s,onRemoveMessage:c,onUpdateMessage:l,syntaxTheme:u})})})},t.id)})})}),E&&(E.side===`old`&&E.lineNumber===e.oldLineNumber||E.side===`new`&&E.lineNumber===e.newLineNumber||Array.isArray(E.lineNumber)&&(E.side===`new`&&E.lineNumber[1]===e.newLineNumber||E.side===`old`&&E.lineNumber[1]===e.oldLineNumber))&&(0,I.jsx)(`tr`,{className:`bg-github-bg-secondary`,children:(0,I.jsx)(`td`,{colSpan:4,className:`p-0`,children:(0,I.jsx)(`div`,{className:`flex ${E.side===`old`?`justify-start`:E.side===`new`?`justify-end`:`justify-center`}`,children:(0,I.jsx)(`div`,{className:`w-1/2`,children:(0,I.jsx)(Yr,{onSubmit:N,onCancel:j,selectedCode:M(),syntaxTheme:u,filename:g})})})})})]},n)})})})})}var Cy=(0,F.memo)(function({chunk:e,chunkIndex:t,threads:n,showAuthorBadges:r=!1,onAddComment:i,onGenerateThreadPrompt:a,onRemoveThread:o,onReplyToThread:s,onRemoveMessage:c,onUpdateMessage:l,mode:u=St,syntaxTheme:d,cursor:f=null,fileIndex:p=0,onLineClick:m,commentTrigger:h,onCommentTriggerHandled:g,filename:_,onOpenInEditor:v}){let[y,b]=(0,F.useState)(null),[x,S]=(0,F.useState)(null),[C,w]=(0,F.useState)(null),[T,E]=(0,F.useState)(!1),[D,O]=(0,F.useState)(null),[k,A]=(0,F.useState)(null);(0,F.useEffect)(()=>{if(h?.lineIndex!==void 0){let t=e.lines[h.lineIndex];if(t){let e=t.newLineNumber||t.oldLineNumber,n=t.type===`delete`?`old`:`new`;e&&(O({side:n,lineNumber:e}),g?.())}}},[h,e.lines,g]);let j=(0,F.useCallback)((e,t)=>{D?.side===e&&D?.lineNumber===t?O(null):O({side:e,lineNumber:t})},[D]);(0,F.useEffect)(()=>{if(!T)return;let e=()=>{setTimeout(()=>{if(y&&C){let e=x??y;y===e?j(C,y):j(C,[Math.min(y,e),Math.max(y,e)])}E(!1),b(null),S(null),w(null)},0)};return document.addEventListener(`mouseup`,e),()=>{document.removeEventListener(`mouseup`,e)}},[T,y,x,C,j]);let M=(0,F.useCallback)(()=>{O(null)},[]),N=(0,F.useCallback)(()=>{if(!D)return``;let{side:t,lineNumber:n}=D,r=e.lines;if(typeof n==`number`)return r.find(e=>t===`old`?e.oldLineNumber===n:e.newLineNumber===n)?.content??``;{let[e,i]=n;return r.filter(n=>{let r=t===`old`?n.oldLineNumber:n.newLineNumber;return r!==void 0&&r>=e&&r<=i}).map(e=>e.content??``).join(`
|
|
59
|
+
`)}},[D,e.lines]),P=(0,F.useCallback)(async e=>{if(D!==null){let t=N();await i(D.lineNumber,e,t,D.side),O(null)}},[D,i,N]),ee=(e,t)=>n.filter(n=>{let r=Array.isArray(n.line)?n.line[1]===e:n.line===e,i=!n.side||n.side===t;return r&&i}).sort((e,t)=>e.createdAt.localeCompare(t.createdAt)),te=e=>{if(u===`unified`)return`full`;switch(e.type){case`delete`:return`left`;case`add`:return`right`;default:return`full`}},ne=(e,t)=>{if(!e)return``;if(T&&y&&x){let t=Math.min(y,x),n=Math.max(y,x);if(e>=t&&e<=n){let r=`drag-selected`;return e===t&&(r+=` drag-selected-first`),e===n&&(r+=` drag-selected-last`),r}}if(D&&D.side===t){let t=Array.isArray(D.lineNumber)?D.lineNumber[0]:D.lineNumber,n=Array.isArray(D.lineNumber)?D.lineNumber[1]:D.lineNumber;if(e>=t&&e<=n)return`comment-selected`}return``},re=(0,F.useMemo)(()=>{let t=new Map,n=e.lines,r=0;for(;r<n.length;){let e=n[r];if(!e){r++;continue}if(e.type===`delete`){let e=r+1;for(;e<n.length&&n[e]?.type===`delete`;)e++;let i=n.slice(r,e),a=r,o=[];for(;e<n.length&&n[e]?.type===`add`;){let t=n[e];t&&o.push({line:t,index:e}),e++}let s=Math.max(i.length,o.length);for(let e=0;e<s;e++){let n=i[e],r=o[e];if(n&&r&&hy(n.content,r.line.content)){let i=my(n.content,r.line.content);t.set(a+e,i.oldSegments),t.set(r.index,i.newSegments)}}r=e}else r++}return t},[e.lines]);return u===`split`?(0,I.jsx)(Sy,{chunk:e,chunkIndex:t,threads:n,showAuthorBadges:r,onAddComment:i,onGenerateThreadPrompt:a,onRemoveThread:o,onReplyToThread:s,onRemoveMessage:c,onUpdateMessage:l,onOpenInEditor:v,syntaxTheme:d,cursor:f,fileIndex:p,onLineClick:m,filename:_,commentTrigger:h,onCommentTriggerHandled:g}):(0,I.jsx)(`div`,{className:`bg-github-bg-primary`,children:(0,I.jsx)(`table`,{className:`w-full table-fixed border-collapse font-mono text-sm leading-5`,children:(0,I.jsx)(`tbody`,{children:e.lines.map((e,n)=>{let i=e.newLineNumber||e.oldLineNumber||0,u=e.type===`delete`?`old`:`new`,h=D?Array.isArray(D.lineNumber)?D.lineNumber[1]:D.lineNumber:null,g=e.type===`delete`?e.oldLineNumber:e.newLineNumber,x=e.type===`delete`?`old`:`new`,C=g?ee(g,x):[],O=`file-${p}-chunk-${t}-line-${n}`,j=f&&f.chunkIndex===t&&f.lineIndex===n;return(0,I.jsxs)(F.Fragment,{children:[(0,I.jsx)(yy,{line:e,index:n,lineId:O,isCurrentLine:j||!1,hoveredLineIndex:k,selectedLineStyle:ne(e.newLineNumber||e.oldLineNumber,e.type===`delete`?`old`:`new`),onMouseEnter:()=>{A(n)},onMouseLeave:()=>A(null),onMouseMove:()=>{if(T&&y){let t=e.newLineNumber||e.oldLineNumber;t&&S(t)}},onCommentButtonMouseDown:t=>{t.stopPropagation();let n=e.newLineNumber||e.oldLineNumber;n&&(b(n),S(n),w(e.type===`delete`?`old`:`new`),E(!0))},onOpenInEditor:v&&_&&e.type!==`delete`&&(e.newLineNumber||e.oldLineNumber)?()=>{let t=e.newLineNumber||e.oldLineNumber;t&&_&&v(_,t)}:void 0,syntaxTheme:d,filename:_,diffSegments:re.get(n),onClick:()=>{let r=e.type===`delete`?`left`:`right`;m?.(p,t,n,r)}}),C.map(t=>{let n=te(e);return(0,I.jsx)(`tr`,{className:`bg-github-bg-secondary`,children:(0,I.jsx)(`td`,{colSpan:3,className:`p-0 border-t border-github-border`,children:(0,I.jsx)(`div`,{className:`flex ${n===`left`?`justify-start`:n===`right`?`justify-end`:`justify-center`}`,children:(0,I.jsx)(`div`,{className:`${n===`full`?`w-full`:`w-1/2`} m-2 mx-4`,children:(0,I.jsx)(Zr,{thread:t,showAuthorBadges:r,onGeneratePrompt:a,onRemoveThread:o,onReplyToThread:s,onRemoveMessage:c,onUpdateMessage:l,syntaxTheme:d})})})})},t.id)}),D&&D.side===u&&h===i&&(0,I.jsx)(`tr`,{className:`bg-[var(--bg-secondary)]`,children:(0,I.jsx)(`td`,{colSpan:3,className:`p-0`,children:(0,I.jsx)(`div`,{className:`flex ${te(e)===`left`?`justify-start`:te(e)===`right`?`justify-end`:`justify-center`}`,children:(0,I.jsx)(`div`,{className:`${te(e)===`full`?`w-full`:`w-1/2`}`,children:(0,I.jsx)(Yr,{onSubmit:P,onCancel:M,selectedCode:N(),syntaxTheme:d,filename:_})})})})})]},n)})})})})}),wy=20,Ty=(0,F.memo)(function({direction:e,hiddenLines:t,onExpandUp:n,onExpandDown:r,onExpandAll:i,isLoading:a=!1}){if(t<=0)return null;let o=`${t} ${t===1?`line`:`lines`}`,s=t<=wy,c=[];return s?c.push({key:`all`,onClick:i,ariaLabel:`Expand all ${t} hidden lines`,icon:(0,I.jsx)(bt,{size:16,"aria-hidden":`true`})}):((e===`up`||e===`both`)&&c.push({key:`up`,onClick:n,ariaLabel:`Expand ${wy} hidden lines above`,icon:(0,I.jsx)(Be,{size:12,"aria-hidden":`true`,className:`translate-y-0.5`})}),(e===`down`||e===`both`)&&c.push({key:`down`,onClick:r,ariaLabel:`Expand ${wy} hidden lines below`,icon:(0,I.jsx)(ze,{size:12,"aria-hidden":`true`,className:`-translate-y-0.5`})})),(0,I.jsxs)(`div`,{className:`grid w-full border-l border-r border-github-border bg-github-bg-tertiary text-sm grid-cols-[var(--line-number-width)_1fr]`,children:[(0,I.jsx)(`div`,{className:`flex flex-col items-stretch justify-center gap-0.5 border-r border-github-border`,children:a?(0,I.jsx)(ct,{size:14,className:`animate-spin text-github-text-muted self-center`,"aria-hidden":`true`}):c.map(e=>(0,I.jsx)(`button`,{type:`button`,onClick:e.onClick,disabled:a||!e.onClick,className:`flex flex-1 w-full items-center justify-center py-1 text-github-text-primary hover:bg-github-bg-secondary hover:text-github-text-muted transition-all duration-200 disabled:opacity-50 disabled:cursor-not-allowed`,title:e.ariaLabel,"aria-label":e.ariaLabel,children:e.icon},e.key))}),(0,I.jsx)(`div`,{className:`flex items-center justify-start px-3 py-1.5 font-mono text-github-text-muted select-none`,children:o})]})});function Ey({file:e,threads:t,showAuthorBadges:n,diffMode:r,syntaxTheme:i,cursor:a,fileIndex:o,mergedChunks:s,isExpandLoading:c,expandHiddenLines:l,expandAllBetweenChunks:u,onAddComment:d,onGenerateThreadPrompt:f,onRemoveThread:p,onReplyToThread:m,onRemoveMessage:h,onUpdateMessage:g,onLineClick:_,onOpenInEditor:v,commentTrigger:y,onCommentTriggerHandled:b}){let x=(t,n,r,i)=>t===`top`&&n.hiddenLinesBefore>0?(0,I.jsx)(Ty,{direction:`down`,hiddenLines:n.hiddenLinesBefore,onExpandDown:()=>l(e,r,`up`),onExpandAll:()=>u(e,r,n.hiddenLinesBefore),isLoading:c}):t===`middle`&&n.hiddenLinesBefore>0?(0,I.jsx)(Ty,{direction:`both`,hiddenLines:n.hiddenLinesBefore,onExpandUp:()=>l(e,r-1,`down`),onExpandDown:()=>l(e,r,`up`),onExpandAll:()=>u(e,r,n.hiddenLinesBefore),isLoading:c}):t===`bottom`&&n.hiddenLinesAfter>0?(0,I.jsx)(Ty,{direction:`up`,hiddenLines:n.hiddenLinesAfter,onExpandUp:()=>l(e,i,`down`),onExpandAll:()=>l(e,i,`down`,n.hiddenLinesAfter),isLoading:c}):null;return(0,I.jsx)(I.Fragment,{children:s.map((c,l)=>{let u=l===0,S=l===s.length-1,C=c.originalIndices[0]??0,w=c.originalIndices[c.originalIndices.length-1]??0;return(0,I.jsxs)(F.Fragment,{children:[u&&x(`top`,c,C,w),!u&&x(`middle`,c,C,w),(0,I.jsx)(`div`,{id:`chunk-${e.path.replace(/[^a-zA-Z0-9]/g,`-`)}-${l}`,children:(0,I.jsx)(Cy,{chunk:c,chunkIndex:l,threads:t,showAuthorBadges:n,onAddComment:d,onGenerateThreadPrompt:f,onRemoveThread:p,onReplyToThread:m,onRemoveMessage:h,onUpdateMessage:g,onOpenInEditor:v,mode:r,syntaxTheme:i,cursor:a&&a.chunkIndex===l?a:null,fileIndex:o,onLineClick:_,commentTrigger:y&&y.chunkIndex===l?y:null,onCommentTriggerHandled:b,filename:e.path})}),S&&x(`bottom`,c,C,w)]},l)})})}var Dy=e=>!!(e&&e!==`stdin`),Oy=[`text-[26px] font-semibold`,`text-[22px] font-semibold`,`text-xl font-semibold`,`text-lg font-semibold`,`text-base font-semibold uppercase tracking-wide`,`text-base font-semibold`],ky=e=>e.type===`delete`||e.type===`remove`,Ay=e=>e.type===`normal`||e.type===`context`,jy=e=>/^(https?:|mailto:|#|\.{0,2}\/|\/)/i.test(e.trim()),My=(e,t,n)=>{let r=e[e.length-1];if(r&&r.type===t){r.lines.push(n);return}e.push({type:t,lines:[n]})},Ny=(e,t)=>{t.forEach(t=>My(e,`delete`,t)),t.length=0},Py=e=>{let t=[],n=[],r=!1;return e.forEach(e=>{e.lines.forEach(e=>{if(!(e.type===`header`||e.type===`hunk`)){if(ky(e)){n.push(e.content);return}if(e.type===`add`){n.length>0&&(Ny(t,n),r=!0),My(t,r?`change`:`add`,e.content);return}Ay(e)&&(Ny(t,n),r=!1,My(t,`context`,e.content))}}),Ny(t,n),r=!1}),t},Fy=e=>F.isValidElement(e),Iy=e=>F.isValidElement(e),Ly=e=>e==null||typeof e==`boolean`?``:typeof e==`string`||typeof e==`number`?String(e):Array.isArray(e)?e.map(Ly).join(``):Fy(e)?Ly(e.props.children):``,Ry=e=>({h1:({children:e})=>(0,I.jsx)(`h1`,{className:`${Oy[0]} mt-6 mb-2 first:mt-0`,children:e}),h2:({children:e})=>(0,I.jsx)(`h2`,{className:`${Oy[1]} mt-6 mb-2 first:mt-0`,children:e}),h3:({children:e})=>(0,I.jsx)(`h3`,{className:`${Oy[2]} mt-6 mb-2 first:mt-0`,children:e}),h4:({children:e})=>(0,I.jsx)(`h4`,{className:`${Oy[3]} mt-6 mb-2 first:mt-0`,children:e}),h5:({children:e})=>(0,I.jsx)(`h5`,{className:`${Oy[4]} mt-6 mb-2 first:mt-0`,children:e}),h6:({children:e})=>(0,I.jsx)(`h6`,{className:`${Oy[5]} mt-6 mb-2 first:mt-0`,children:e}),p:({children:e})=>(0,I.jsx)(`p`,{className:`text-base leading-7`,children:e}),ul:({children:e})=>(0,I.jsx)(`ul`,{className:`list-disc pl-6 text-base space-y-1`,children:e}),ol:({children:e})=>(0,I.jsx)(`ol`,{className:`list-decimal pl-6 text-base space-y-1`,children:e}),li:({children:e})=>(0,I.jsx)(`li`,{children:e}),blockquote:({children:e})=>(0,I.jsx)(`blockquote`,{className:`border-l-4 border-github-border pl-4 text-github-text-muted italic`,children:e}),hr:()=>(0,I.jsx)(`hr`,{className:`border-github-border`}),a:({href:e,children:t})=>{let n=e??``;if(!n||!jy(n))return(0,I.jsx)(`span`,{children:t});let r=n.startsWith(`http`);return(0,I.jsx)(`a`,{href:n,target:r?`_blank`:void 0,rel:r?`noreferrer`:void 0,className:`text-sky-400 hover:text-sky-300 underline underline-offset-4`,children:t})},img:({src:e,alt:t})=>{let n=e??``;return!n||!jy(n)?null:(0,I.jsx)(`img`,{src:n,alt:t??``,loading:`lazy`,className:`max-w-full rounded border border-github-border`})},pre:({children:t})=>{let n=(Array.isArray(t)?t:[t]).find(Iy),r=Ly(n??t),i=/language-(\S+)/.exec(n?.props.className??``)?.[1],a=r.replace(/\n$/,``);return i===`mermaid`&&a.trim()?(0,I.jsx)(Vv,{chart:a}):r.trim()?(0,I.jsx)(`pre`,{className:`markdown-preview-code border border-github-border bg-github-bg-secondary p-3 overflow-x-auto text-sm`,children:(0,I.jsx)(Ir,{code:a,language:i,syntaxTheme:e,className:`font-mono text-github-text-primary`})}):(0,I.jsx)(`pre`,{className:`markdown-preview-code border border-github-border bg-github-bg-secondary p-3 overflow-x-auto text-sm`,children:t})},code:({className:e,children:t})=>e?(0,I.jsx)(`code`,{className:e,children:t}):(0,I.jsx)(`code`,{className:`px-1 py-0.5 rounded bg-github-bg-tertiary border border-github-border text-sm font-mono`,children:t}),table:({children:e})=>(0,I.jsx)(`div`,{className:`overflow-x-auto`,children:(0,I.jsx)(`table`,{className:`w-full border-collapse text-sm`,children:e})}),thead:({children:e})=>(0,I.jsx)(`thead`,{className:`bg-github-bg-secondary`,children:e}),tbody:({children:e})=>(0,I.jsx)(`tbody`,{children:e}),tr:({children:e})=>(0,I.jsx)(`tr`,{className:`border-b border-github-border`,children:e}),th:({children:e})=>(0,I.jsx)(`th`,{className:`px-3 py-2 text-left font-semibold border border-github-border`,children:e}),td:({children:e})=>(0,I.jsx)(`td`,{className:`px-3 py-2 border border-github-border`,children:e})}),zy=e=>{switch(e){case`add`:return`border-l-4 border-diff-addition-border`;case`delete`:return`border-l-4 border-diff-deletion-border`;case`change`:return`border-l-4 border-diff-addition-border`;default:return`border-l-4 border-transparent`}},By=e=>/^\s*\[[^\]]+\]:\s+\S+/.test(e),Vy=e=>/^\s*\[\^[^\]]+\]:\s+/.test(e),Hy=e=>{let t=e.trim();return t.length>=7&&t.startsWith(`<!--`)&&t.endsWith(`-->`)},Uy=e=>e.trim()===``||By(e)||Vy(e)||Hy(e),Wy=e=>e.every(Uy),Gy=e=>{let t=e.match(/^\s{0,3}(`{3,}|~{3,})(.*)$/);if(!t)return null;let n=t[1];return n?{marker:n[0],length:n.length,raw:e}:null},Ky=(e,t)=>{let n=e.match(/^\s{0,3}(`{3,}|~{3,})\s*$/);return n?.[1]?n[1][0]===t.marker&&n[1].length>=t.length:!1},qy=e=>{let t=[],n=null,r=null,i=()=>{n&&=(t.push(n),null)},a=(e,t)=>{if(n?.type===e){n.lines.push(t);return}i(),n={kind:`markdown`,type:e,lines:[t]}},o=e=>{if(!r)return;let n=r.lines.every(e=>e.type===`context`);e&&n?(a(`context`,r.fence.raw),r.lines.forEach(e=>{a(`context`,e.content)}),a(`context`,e)):(i(),t.push({kind:`fenced-code`,lines:r.lines})),r=null};return e.forEach(e=>{e.lines.forEach(t=>{if(r){if(Ky(t,r.fence)){o(t);return}r.lines.push({type:e.type,content:t});return}let n=Gy(t);if(n){i(),r={fence:n,lines:[]};return}a(e.type,t)})}),o(),i(),t},Jy=e=>{switch(e){case`add`:case`change`:return`border-l-4 border-diff-addition-border bg-diff-addition-bg`;case`delete`:return`border-l-4 border-diff-deletion-border bg-diff-deletion-bg`;default:return`border-l-4 border-transparent`}},Yy=({blocks:e,syntaxTheme:t})=>{let n=(0,F.useMemo)(()=>Ry(t),[t]);return(0,I.jsx)(`div`,{className:`space-y-4`,children:(0,F.useMemo)(()=>qy(e),[e]).map((e,t)=>{if(e.kind===`fenced-code`)return(0,I.jsx)(`div`,{className:`px-4`,children:(0,I.jsx)(`div`,{className:`markdown-preview-code overflow-x-auto rounded border border-github-border bg-github-bg-secondary text-sm font-mono text-github-text-primary`,children:e.lines.map((e,n)=>(0,I.jsx)(`div`,{className:`${Jy(e.type)} whitespace-pre px-3 py-1`,children:e.content||` `},`preview-code-line-${t}-${n}`))})},`preview-block-${t}`);let r=e.lines.join(`
|
|
60
60
|
`).trim();if(!r)return null;let i=Wy(e.lines);return(0,I.jsx)(`div`,{className:`px-4 ${zy(e.type)}`,children:i?(0,I.jsx)(`pre`,{className:`whitespace-pre-wrap text-sm text-github-text-primary font-mono`,children:r}):(0,I.jsx)(Nh,{remarkPlugins:[Lv],urlTransform:e=>jy(e)?e:``,components:n,children:r})},`preview-block-${t}`)})})},Xy=({content:e,syntaxTheme:t})=>{let n=(0,F.useMemo)(()=>Ry(t),[t]);return(0,I.jsx)(`div`,{className:`space-y-4`,children:(0,I.jsx)(Nh,{remarkPlugins:[Lv],urlTransform:e=>jy(e)?e:``,components:n,children:e})})};function Zy(e){let{file:t,baseCommitish:n,targetCommitish:r,mergedChunks:i,syntaxTheme:a}=e,[o,s]=(0,F.useState)(`diff`),[c,l]=(0,F.useState)(null),[u,d]=(0,F.useState)(!1),[f,p]=(0,F.useState)(null),[m,h]=(0,F.useState)(null),g=(0,F.useMemo)(()=>Py(i),[i]),_=(0,F.useMemo)(()=>!n&&!r?null:t.status===`added`?r?{path:t.path,ref:r}:null:t.status===`deleted`?n?{path:t.oldPath||t.path,ref:n}:null:r?{path:t.path,ref:r}:n?{path:t.oldPath||t.path,ref:n}:null,[n,r,t.path,t.oldPath,t.status]),v=(0,F.useMemo)(()=>_?`${_.ref}:${_.path}`:null,[_]);(0,F.useEffect)(()=>{if(!_||!v||!Dy(_.ref)){l(null),h(null),p(null),d(!1);return}let e=!1;return(v!==m||c===null)&&(async()=>{v!==m&&l(null),d(!0),p(null);try{let t=encodeURIComponent(_.path),n=await fetch(`/api/blob/${t}?ref=${encodeURIComponent(_.ref)}`);if(!n.ok)throw Error(`Failed to fetch preview: ${n.statusText}`);let r=await n.text();e||(l(r),h(v))}catch(t){e||(l(null),h(null),p(t instanceof Error?t.message:`Failed to load preview`))}finally{e||d(!1)}})(),()=>{e=!0}},[c,m,_,v]);let y=(0,F.useMemo)(()=>v===m&&c!==null,[c,m,v]);return(0,F.useEffect)(()=>{o===`full-preview`&&!y&&s(`diff-preview`)},[y,o]),(0,I.jsxs)(`div`,{className:`bg-github-bg-primary`,children:[(0,I.jsx)(`div`,{className:`flex items-center justify-between border-b border-github-border px-4 py-2`,children:(0,I.jsx)(Hv,{mode:o,hasFullPreview:y,onModeChange:s})}),o===`diff`&&(0,I.jsx)(Ey,{...e}),o===`diff-preview`&&(0,I.jsx)(`div`,{className:`p-4`,children:(0,I.jsx)(Yy,{blocks:g,syntaxTheme:a})}),o===`full-preview`&&(0,I.jsxs)(`div`,{className:`p-4`,children:[u&&(0,I.jsx)(`div`,{className:`text-sm text-github-text-muted mb-3`,children:`Loading preview...`}),f&&(0,I.jsx)(`div`,{className:`text-sm text-github-danger mb-3`,children:f}),!u&&!f&&c!==null&&(0,I.jsx)(Xy,{content:c,syntaxTheme:a}),!u&&!f&&c===null&&(0,I.jsx)(`div`,{className:`text-sm text-github-text-muted`,children:`Preview unavailable.`})]})]})}var Qy=[`text-2xl font-semibold`,`text-xl font-semibold`,`text-lg font-semibold`,`text-base font-semibold`,`text-sm font-semibold uppercase tracking-wide`,`text-sm font-semibold`],$y={markdown:`Markdown`,code:`Code`,raw:`Raw`,unknown:`Cell`},eb=/"cell_type"\s*:\s*"([^"]+)"/,tb=/"source"\s*:/,nb=/"execution_count"\s*:\s*(null|[0-9]+)/,rb=/"id"\s*:\s*"([^"]+)"/,ib=e=>e.type===`delete`||e.type===`remove`,ab=e=>e.type===`normal`||e.type===`context`,ob=e=>e.type===`add`?`add`:ib(e)?`delete`:ab(e)?`context`:null,sb=e=>e===`markdown`||e===`code`||e===`raw`?e:`unknown`,cb=e=>{let t=e.trim();if(!t.startsWith(`"`))return null;let n=t;n.endsWith(`,`)&&(n=n.slice(0,-1));try{let e=JSON.parse(n);return typeof e==`string`?e:null}catch{return n.replace(/^"/,``).replace(/"$/,``).replace(/\\n/g,`
|
|
61
61
|
`).replace(/\\t/g,` `).replace(/\\"/g,`"`).replace(/\\\\/g,`\\`)}},lb=e=>{let t=e.indexOf(`"source"`);if(t===-1)return null;let n=e.indexOf(`:`,t);if(n===-1)return null;let r=e.slice(n+1).trim();if(!r)return null;if(r.endsWith(`,`)&&(r=r.slice(0,-1).trim()),r.startsWith(`[`)){let e=r.lastIndexOf(`]`);if(e===-1)return null;let t=r.slice(0,e+1);try{let e=JSON.parse(t);if(Array.isArray(e))return e.filter(e=>typeof e==`string`)}catch{return null}return[]}if(r.startsWith(`"`))try{let e=JSON.parse(r);return typeof e==`string`?[e]:null}catch{return null}return null},ub=e=>{let t=db(e);if(t)return t;let n=[],r=null,i=!1,a=!1,o=!1,s=()=>{r&&(r.status=i&&a?`change`:i?`add`:a?`delete`:`context`,n.push(r),r=null,i=!1,a=!1,o=!1)},c=e=>{s(),r={cellType:e,sourceLines:[],status:`context`}};return e.forEach(e=>{e.lines.forEach(e=>{let t=ob(e);if(!t)return;let n=e.content.match(eb);if(n?c(sb(n[1]??``)):!r&&tb.test(e.content)&&c(`unknown`),!r)return;if(t===`add`&&(i=!0),t===`delete`&&(a=!0),!r.id){let t=e.content.match(rb);t&&(r.id=t[1])}if(r.executionCount===void 0){let t=e.content.match(nb);t&&(r.executionCount=t[1]===`null`?null:t[1])}if(tb.test(e.content)){let n=lb(e.content);if(n){n.forEach(e=>{r?.sourceLines.push({type:t,content:e})}),o=!1;return}o=!0;return}if(!o)return;if(e.content.trim().startsWith(`]`)){o=!1;return}let s=cb(e.content);s!==null&&r.sourceLines.push({type:t,content:s})})}),s(),{cells:n}},db=e=>{let t=fb(e,[`add`,`context`]),n=fb(e,[`delete`,`context`]),r=pb(t),i=pb(n);if(!r&&!i||r&&r.cells.length===0&&!i)return null;let a=r?.language??i?.language;return{cells:_b(i?.cells??[],r?.cells??[]),language:a}},fb=(e,t)=>e.flatMap(e=>e.lines).map(e=>{let n=ob(e);return!n||!t.includes(n)?null:e.content}).filter(e=>e!==null).join(`
|
|
62
62
|
`),pb=e=>{if(!e.trim())return null;try{let t=JSON.parse(e);if(!t||typeof t!=`object`||!(`cells`in t))return null;let n=t.cells;if(!Array.isArray(n))return null;let r=t.metadata,i=mb(r);return{cells:n.map(e=>hb(e)),language:i}}catch{return null}},mb=e=>{if(!e||typeof e!=`object`)return;let t=e,n=t.language_info;if(n&&typeof n==`object`){let e=n.name;if(typeof e==`string`&&e.trim())return e}let r=t.kernelspec;if(r&&typeof r==`object`){let e=r.language;if(typeof e==`string`&&e.trim())return e}},hb=e=>{let t=typeof e==`object`&&e?e:{},n=sb(typeof t.cell_type==`string`?t.cell_type:``),r=typeof t.id==`string`?t.id:void 0,i=t.execution_count,a=i===null?null:typeof i==`number`?String(i):typeof i==`string`?i:void 0;return{cellType:n,sourceText:gb(t.source),id:r,executionCount:a}},gb=e=>typeof e==`string`?e:Array.isArray(e)?e.filter(e=>typeof e==`string`).join(``):``,_b=(e,t)=>{let n=[];if(e.some(e=>!!e.id)||t.some(e=>!!e.id)){let r=new Map;e.forEach((e,t)=>{e.id&&r.set(e.id,{cell:e,index:t})});let i=new Set;return t.forEach(e=>{let t=e.id?r.get(e.id):void 0;t&&i.add(t.index),n.push(vb(t?.cell??null,e))}),e.forEach((e,t)=>{i.has(t)||n.push(vb(e,null))}),n}let r=Math.max(e.length,t.length);for(let i=0;i<r;i+=1){let r=e[i]??null,a=t[i]??null;n.push(vb(r,a))}return n},vb=(e,t)=>{if(!t&&e)return{cellType:e.cellType,sourceLines:yb(e.sourceText,`delete`),status:`delete`,id:e.id,executionCount:e.executionCount};if(t&&!e)return{cellType:t.cellType,sourceLines:yb(t.sourceText,`add`),status:`add`,id:t.id,executionCount:t.executionCount};let n=e?.sourceText??``,r=t?.sourceText??``,i=t?.cellType??e?.cellType??`unknown`,a=t?.id??e?.id,o=t?.executionCount??e?.executionCount;return n===r&&(e?.cellType??``)===(t?.cellType??``)?{cellType:i,sourceLines:yb(r,`context`),status:`context`,id:a,executionCount:o}:{cellType:i,sourceLines:[...yb(n,`delete`),...yb(r,`add`)],status:`change`,id:a,executionCount:o}},yb=(e,t)=>e?[{type:t,content:e}]:[],bb=e=>!!(e&&e!==`stdin`),xb=async(e,t)=>{let n=await fetch(`/api/blob/${encodeURIComponent(e)}?ref=${encodeURIComponent(t)}`);return n.ok?n.text():null},Sb=(e,t)=>e.filter(e=>t.includes(e.type)).map(e=>e.content).join(``),Cb=e=>{if(!e)return[];let t=e.split(`
|
|
63
|
-
`);return t.length>0&&t[t.length-1]===``&&t.pop(),t},wb=(e,t)=>!e&&!t?[]:e?t?uy(e,t).flatMap(e=>{let t=e.added?`add`:e.removed?`delete`:`context`;return Cb(e.value).map(e=>({type:t,content:e}))}):Cb(e).map(e=>({type:`delete`,content:e})):Cb(t).map(e=>({type:`add`,content:e})),Tb=e=>F.isValidElement(e),Eb=e=>F.isValidElement(e),Db=e=>e==null||typeof e==`boolean`?``:typeof e==`string`||typeof e==`number`?String(e):Array.isArray(e)?e.map(Db).join(``):Tb(e)?Db(e.props.children):``,Ob=e=>{switch(e){case`add`:return`border-l-4 border-diff-addition-border`;case`delete`:return`border-l-4 border-diff-deletion-border`;case`change`:return`border-l-4 border-diff-addition-border`;default:return`border-l-4 border-transparent`}},kb=e=>{switch(e){case`before`:return`border-l-4 border-diff-deletion-border`;case`after`:return`border-l-4 border-diff-addition-border`;default:return`border-l-4 border-transparent`}},Ab=e=>{switch(e){case`add`:return`bg-diff-addition-bg`;case`delete`:return`bg-diff-deletion-bg`;default:return`bg-transparent`}},jb=e=>{switch(e){case`add`:return`+`;case`delete`:return`-`;default:return` `}},Mb=e=>{switch(e){case`add`:return`text-github-accent`;case`delete`:return`text-github-danger`;default:return`text-github-text-muted`}},Nb=e=>/^(https?:|mailto:|#|\.{0,2}\/|\/)/i.test(e.trim()),Pb=e=>({h1:({children:e})=>(0,I.jsx)(`h1`,{className:`${Qy[0]} mb-2`,children:e}),h2:({children:e})=>(0,I.jsx)(`h2`,{className:`${Qy[1]} mb-2`,children:e}),h3:({children:e})=>(0,I.jsx)(`h3`,{className:`${Qy[2]} mb-2`,children:e}),h4:({children:e})=>(0,I.jsx)(`h4`,{className:`${Qy[3]} mb-2`,children:e}),h5:({children:e})=>(0,I.jsx)(`h5`,{className:`${Qy[4]} mb-2`,children:e}),h6:({children:e})=>(0,I.jsx)(`h6`,{className:`${Qy[5]} mb-2`,children:e}),p:({children:e})=>(0,I.jsx)(`p`,{className:`text-sm leading-7`,children:e}),ul:({children:e})=>(0,I.jsx)(`ul`,{className:`list-disc pl-6 text-sm space-y-1`,children:e}),ol:({children:e})=>(0,I.jsx)(`ol`,{className:`list-decimal pl-6 text-sm space-y-1`,children:e}),li:({children:e})=>(0,I.jsx)(`li`,{children:e}),blockquote:({children:e})=>(0,I.jsx)(`blockquote`,{className:`border-l-4 border-github-border pl-4 text-github-text-muted italic`,children:e}),hr:()=>(0,I.jsx)(`hr`,{className:`border-github-border`}),a:({href:e,children:t})=>{let n=e??``;if(!n||!Nb(n))return(0,I.jsx)(`span`,{children:t});let r=n.startsWith(`http`);return(0,I.jsx)(`a`,{href:n,target:r?`_blank`:void 0,rel:r?`noreferrer`:void 0,className:`text-sky-400 hover:text-sky-300 underline underline-offset-4`,children:t})},img:({src:e,alt:t})=>{let n=e??``;return!n||!Nb(n)?null:(0,I.jsx)(`img`,{src:n,alt:t??``,loading:`lazy`,className:`max-w-full rounded border border-github-border`})},pre:({children:t})=>{let n=(Array.isArray(t)?t:[t]).find(Eb),r=Db(n??t),i=/language-(\S+)/.exec(n?.props.className??``)?.[1];return r.trim()?(0,I.jsx)(`pre`,{className:`border border-github-border bg-github-bg-secondary p-3 overflow-x-auto text-xs`,children:(0,I.jsx)(Ir,{code:r.replace(/\n$/,``),language:i,syntaxTheme:e,className:`font-mono text-github-text-primary [&_.token-line]:block [&_.token-line]:whitespace-pre`})}):(0,I.jsx)(`pre`,{className:`border border-github-border bg-github-bg-secondary p-3 overflow-x-auto text-xs`,children:t})},code:({className:e,children:t})=>e?(0,I.jsx)(`code`,{className:e,children:t}):(0,I.jsx)(`code`,{className:`px-1 py-0.5 rounded bg-github-bg-tertiary border border-github-border text-xs font-mono`,children:t}),table:({children:e})=>(0,I.jsx)(`div`,{className:`overflow-x-auto`,children:(0,I.jsx)(`table`,{className:`min-w-full border border-github-border`,children:e})}),th:({children:e})=>(0,I.jsx)(`th`,{className:`border border-github-border px-2 py-1 bg-github-bg-tertiary text-sm`,children:e}),td:({children:e})=>(0,I.jsx)(`td`,{className:`border border-github-border px-2 py-1 text-sm`,children:e})}),Fb=e=>{let t=Sb(e.sourceLines,[`context`,`delete`]),n=Sb(e.sourceLines,[`context`,`add`]),r=[];return e.status===`change`?(t.trim()&&r.push({label:`Before`,content:t,tone:`before`}),n.trim()&&r.push({label:`After`,content:n,tone:`after`}),r.length===0&&r.push({label:`After`,content:n,tone:`after`}),r):e.status===`delete`?(r.push({label:`Before`,content:t||n,tone:`before`}),r):(r.push({label:`After`,content:n||t,tone:`after`}),r)},Ib=(e,t,n,r)=>{if(!t.trim())return(0,I.jsx)(`span`,{className:`text-xs text-github-text-muted`,children:`Empty cell`});if(e===`markdown`){let e=Pb(n);return(0,I.jsx)(Nh,{remarkPlugins:[Lv],urlTransform:e=>Nb(e)?e:``,components:e,children:t})}return e===`raw`?(0,I.jsx)(`pre`,{className:`whitespace-pre-wrap break-words text-xs font-mono text-github-text-primary`,children:t}):(0,I.jsx)(`pre`,{className:`overflow-x-auto text-xs`,children:(0,I.jsx)(Lr,{code:t.replace(/\n$/,``),language:r||`python`,syntaxTheme:n,className:`font-mono text-github-text-primary [&_.token-line]:block [&_.token-line]:whitespace-pre`})})},Lb=({lines:e,syntaxTheme:t,language:n})=>e.length===0?(0,I.jsx)(`span`,{className:`text-xs text-github-text-muted`,children:`Empty cell`}):(0,I.jsx)(`div`,{className:`overflow-x-auto`,children:(0,I.jsx)(`div`,{className:`font-mono text-xs`,children:e.map((e,r)=>(0,I.jsxs)(`div`,{className:`flex items-start min-h-[16px] ${Ab(e.type)}`,children:[(0,I.jsx)(`span`,{className:`w-5 text-center flex-shrink-0 select-none ${Mb(e.type)}`,children:jb(e.type)}),(0,I.jsx)(Lr,{code:e.content||` `,language:n||`python`,syntaxTheme:t,className:`flex-1 px-3 text-github-text-primary whitespace-pre-wrap break-all overflow-wrap-break-word select-text [&_pre]:m-0 [&_pre]:p-0 [&_pre]:!bg-transparent [&_pre]:font-inherit [&_pre]:text-inherit [&_pre]:leading-inherit [&_code]:!bg-transparent [&_code]:font-inherit [&_code]:text-inherit [&_code]:leading-inherit`})]},`notebook-code-line-${r}`))})}),Rb=({cells:e,syntaxTheme:t,language:n})=>(0,I.jsx)(`div`,{className:`space-y-4`,children:e.map((e,r)=>{let i=Fb(e),a=e.cellType===`code`&&e.executionCount!==void 0?`In[${e.executionCount??` `}]`:null,o=e.cellType===`code`,s=o?wb(Sb(e.sourceLines,[`context`,`delete`]),Sb(e.sourceLines,[`context`,`add`])).filter(e=>e.type!==`context`):[];return o&&s.length===0?null:(0,I.jsxs)(`div`,{className:`rounded border border-github-border bg-github-bg-secondary/40 p-4 ${Ob(e.status)}`,children:[(0,I.jsx)(`div`,{className:`flex flex-wrap items-center justify-between gap-2 mb-3`,children:(0,I.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,I.jsx)(`span`,{className:`text-xs font-semibold uppercase tracking-wide text-github-text-muted`,children:$y[e.cellType]}),a&&(0,I.jsx)(`span`,{className:`text-xs font-mono text-github-text-secondary`,children:a}),e.id&&(0,I.jsx)(`span`,{className:`text-xs font-mono text-github-text-muted`,children:e.id})]})}),(0,I.jsx)(`div`,{className:`space-y-3`,children:o?(0,I.jsx)(`div`,{className:`px-4 py-3 ${kb(e.status===`delete`?`before`:`after`)}`,children:(0,I.jsx)(Lb,{lines:s,syntaxTheme:t,language:n})}):i.map((i,a)=>(0,I.jsx)(`div`,{className:`px-4 py-3 ${kb(i.tone)}`,children:(0,I.jsx)(`div`,{className:`text-sm text-github-text-primary`,children:Ib(e.cellType,i.content,t,n)})},`notebook-cell-${r}-section-${a}`))})]},`notebook-cell-${r}`)})}),zb=({cells:e,syntaxTheme:t,language:n})=>(0,I.jsx)(`div`,{className:`space-y-4`,children:e.map((e,r)=>{let i=e.cellType===`code`&&e.executionCount!==void 0?`In[${e.executionCount??` `}]`:null;return(0,I.jsxs)(`div`,{className:`rounded border border-github-border bg-github-bg-secondary/40 p-4`,children:[(0,I.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 mb-3`,children:[(0,I.jsx)(`span`,{className:`text-xs font-semibold uppercase tracking-wide text-github-text-muted`,children:$y[e.cellType]}),i&&(0,I.jsx)(`span`,{className:`text-xs font-mono text-github-text-secondary`,children:i}),e.id&&(0,I.jsx)(`span`,{className:`text-xs font-mono text-github-text-muted`,children:e.id})]}),(0,I.jsx)(`div`,{className:`text-sm text-github-text-primary`,children:Ib(e.cellType,e.sourceText,t,n)})]},`notebook-full-cell-${r}`)})});function Bb(e){let{file:t,baseCommitish:n,targetCommitish:r}=e,[i,a]=(0,F.useState)(`diff`),o=(0,F.useMemo)(()=>ub(e.mergedChunks),[e.mergedChunks]),[s,c]=(0,F.useState)({status:`idle`,cells:o.cells,language:o.language}),l=(0,F.useMemo)(()=>s.cells.filter(e=>e.status===`context`?!1:e.cellType===`code`?wb(Sb(e.sourceLines,[`context`,`delete`]),Sb(e.sourceLines,[`context`,`add`])).filter(e=>e.type!==`context`).length>0:!0),[s.cells]),[u,d]=(0,F.useState)(null),[f,p]=(0,F.useState)(o.language),[m,h]=(0,F.useState)(!1),[g,_]=(0,F.useState)(null),[v,y]=(0,F.useState)(null),b=(0,F.useMemo)(()=>!n&&!r?null:t.status===`added`?r?{path:t.path,ref:r}:null:t.status===`deleted`?n?{path:t.oldPath||t.path,ref:n}:null:r?{path:t.path,ref:r}:n?{path:t.oldPath||t.path,ref:n}:null,[n,r,t.oldPath,t.path,t.status]),x=(0,F.useMemo)(()=>b?`${b.ref}:${b.path}`:null,[b]);(0,F.useEffect)(()=>{let e=!1;return(async()=>{let i=n||`HEAD~1`,a=r||`HEAD`,s=t.oldPath||t.path,l=t.status!==`added`&&bb(i),u=t.status!==`deleted`&&bb(a);if(b&&x&&bb(b?.ref)?(d(null),_(null),h(!0)):(d(null),y(null),_(null),h(!1)),!l&&!u){c({status:`ready`,cells:o.cells,language:o.language,source:`diff`,message:`Notebook content could not be loaded, falling back to diff preview.`});return}c(e=>({...e,status:`loading`}));try{let[n,r]=await Promise.all([l?xb(s,i):Promise.resolve(null),u?xb(t.path,a):Promise.resolve(null)]),f=n?pb(n):null,m=r?pb(r):null;if(!f&&!m){e||c({status:`ready`,cells:o.cells,language:o.language,source:`diff`,message:`Notebook content could not be parsed, falling back to diff preview.`});return}let h=m?.language??f?.language??o.language,g=_b(f?.cells??[],m?.cells??[]),v=b?.ref===a&&b.path===t.path?m:b?.ref===i&&b.path===s?f:null;e||(c({status:`ready`,cells:g,source:`blob`,language:h}),v&&x?(d(v.cells),p(v.language??o.language),y(x),_(null)):(d(null),y(null),_(null)))}catch(t){e||(c({status:`error`,cells:o.cells,language:o.language,source:`diff`,message:t instanceof Error?t.message:`Failed to load notebook preview.`}),d(null),y(null),_(t instanceof Error?t.message:`Failed to load preview`))}finally{e||h(!1)}})(),()=>{e=!0}},[n,t.oldPath,t.path,t.status,e.mergedChunks,b,x,r,o]),(0,F.useEffect)(()=>{if(i!==`full-preview`)return;if(!b||!x||!bb(b.ref)){d(null),y(null),_(null),h(!1);return}let e=!1;return(x!==v||!u)&&(async()=>{x!==v&&d(null),h(!0),_(null);try{let t=await xb(b.path,b.ref);if(!t)throw Error(`Failed to load preview.`);let n=pb(t);if(!n)throw Error(`Notebook content could not be parsed.`);e||(d(n.cells),p(n.language??o.language),y(x))}catch(t){e||(d(null),y(null),_(t instanceof Error?t.message:`Failed to load preview`))}finally{e||h(!1)}})(),()=>{e=!0}},[o.language,u,v,i,b,x]);let S=(0,F.useMemo)(()=>x===v&&u!==null,[u,v,x]);return(0,F.useEffect)(()=>{i===`full-preview`&&!S&&a(`diff-preview`)},[S,i]),(0,I.jsxs)(`div`,{className:`bg-github-bg-primary`,children:[(0,I.jsx)(`div`,{className:`flex items-center justify-between border-b border-github-border px-4 py-2`,children:(0,I.jsx)(Hv,{mode:i,hasFullPreview:S,onModeChange:a})}),i===`diff`&&(0,I.jsx)(Ey,{...e}),i===`diff-preview`&&(0,I.jsxs)(`div`,{className:`p-4`,children:[s.status===`loading`&&(0,I.jsx)(`div`,{className:`text-xs text-github-text-muted mb-3`,children:`Loading notebook preview…`}),s.message&&(0,I.jsx)(`div`,{className:`text-xs text-github-text-muted mb-3`,children:s.message}),l.length===0?(0,I.jsxs)(`div`,{children:[(0,I.jsx)(`div`,{className:`text-xs text-github-text-muted mb-3`,children:`No changed notebook cells were found. Showing raw diff instead.`}),(0,I.jsx)(Ey,{...e})]}):(0,I.jsx)(Rb,{cells:l,syntaxTheme:e.syntaxTheme,language:s.language})]}),i===`full-preview`&&(0,I.jsxs)(`div`,{className:`p-4`,children:[m&&(0,I.jsx)(`div`,{className:`text-sm text-github-text-muted mb-3`,children:`Loading preview...`}),g&&(0,I.jsx)(`div`,{className:`text-sm text-github-danger mb-3`,children:g}),!m&&!g&&u&&(0,I.jsx)(zb,{cells:u,syntaxTheme:e.syntaxTheme,language:f??o.language}),!m&&!g&&!u&&(0,I.jsx)(`div`,{className:`text-sm text-github-text-muted`,children:`Preview unavailable.`})]})]})}var Vb=[{id:`image`,match:e=>Zc(e.path),Component:il,canExpandHiddenLines:()=>!1},{id:`markdown`,match:e=>$c(e.path),Component:Zy,canExpandHiddenLines:e=>e.status!==`added`&&e.status!==`deleted`},{id:`notebook`,match:e=>tl(e.path),Component:Bb,canExpandHiddenLines:e=>e.status!==`added`&&e.status!==`deleted`},{id:`default`,match:()=>!0,Component:Ey,canExpandHiddenLines:e=>e.status!==`added`&&e.status!==`deleted`}],Hb=e=>{let t=Vb[Vb.length-1];if(!t)throw Error(`No diff viewers registered`);return Vb.find(t=>t.match(e))??t},Ub=e=>{switch(e){case`added`:return(0,I.jsx)(tt,{size:16,className:`text-github-accent`});case`deleted`:return(0,I.jsx)(nt,{size:16,className:`text-github-danger`});case`renamed`:return(0,I.jsx)(et,{size:16,className:`text-github-warning`});default:return(0,I.jsx)($e,{size:16,className:`text-github-text-secondary`})}},Wb=({file:e,isCollapsed:t,isReviewed:n,isChangedSinceViewed:r=!1,onToggleCollapsed:i,onToggleAllCollapsed:a,onToggleReviewed:o})=>{let[s,c]=(0,F.useState)(!1);return(0,I.jsxs)(`div`,{className:`bg-github-bg-secondary border-t-2 border-t-github-accent border-b border-github-border px-5 py-4 flex items-center justify-between flex-wrap gap-3 sticky top-0 z-10`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-2 flex-1 min-w-0`,children:[(0,I.jsx)(`button`,{onClick:n=>{n.altKey?a(!t):i(e.path)},className:`text-github-text-muted hover:text-github-text-primary transition-colors cursor-pointer`,title:t?`Expand file (Alt+Click to expand all)`:`Collapse file (Alt+Click to collapse all)`,children:t?(0,I.jsx)(We,{size:16}):(0,I.jsx)(He,{size:16})}),Ub(e.status),(0,I.jsx)(`h2`,{className:`text-sm font-mono text-github-text-primary m-0 overflow-hidden text-ellipsis whitespace-nowrap`,children:e.path}),(0,I.jsx)(`button`,{className:`bg-transparent border-none cursor-pointer px-1.5 py-1 rounded text-sm transition-all hover:bg-github-bg-tertiary ${s?`text-github-accent`:`text-github-text-secondary hover:text-github-text-primary`}`,onClick:()=>{nn(e.path).then(()=>{console.log(`File path copied to clipboard:`,e.path),c(!0),setTimeout(()=>c(!1),2e3)}).catch(e=>{console.error(`Failed to copy file path:`,e)})},title:`Copy file path`,children:s?(0,I.jsx)(Ve,{size:14}):(0,I.jsx)(Ye,{size:14})}),e.oldPath&&e.oldPath!==e.path&&(0,I.jsxs)(`span`,{className:`text-xs text-github-text-muted italic`,children:[`(renamed from `,e.oldPath,`)`]})]}),(0,I.jsxs)(`div`,{className:`flex items-center gap-3`,children:[r&&!n&&(0,I.jsx)(`span`,{className:`inline-flex h-6 items-center rounded-full border border-github-warning px-2.5 text-xs font-medium text-github-warning`,title:`Updated since you last viewed this file`,"aria-label":`Updated since you last viewed this file`,children:`Updated`}),(0,I.jsxs)(`div`,{className:`flex items-center gap-2 text-xs`,children:[(0,I.jsxs)(`span`,{className:`font-medium px-1 py-0.5 rounded text-github-accent bg-green-100/10`,children:[`+`,e.additions]}),(0,I.jsxs)(`span`,{className:`font-medium px-1 py-0.5 rounded text-github-danger bg-red-100/10`,children:[`-`,e.deletions]})]}),(0,I.jsxs)(`button`,{onClick:()=>o(e.path),className:`flex items-center gap-2 px-3 py-1.5 rounded-md text-sm font-medium transition-all duration-200 ${n?`bg-github-accent text-white`:`dark:bg-slate-600 dark:text-white dark:border-slate-500 dark:hover:bg-slate-500 dark:hover:border-slate-400 bg-github-bg-secondary text-github-text-primary border border-github-border hover:bg-github-bg-tertiary hover:border-github-text-muted`}`,title:n?`Mark as not reviewed`:`Mark as reviewed`,children:[n?(0,I.jsx)(Ve,{size:14}):(0,I.jsx)(_t,{size:14}),`Viewed`]})]})]})},Gb=e=>{let t={old:[],new:[]};return e.forEach(e=>{let n=e.side??`new`,[r,i]=Array.isArray(e.line)?[e.line[0],e.line[1]]:[e.line,e.line];r<=0||i<=0||t[n].push({start:Math.min(r,i),end:Math.max(r,i)})}),t},Kb=(e,t)=>e.chunks.map((e,n)=>{let r=t===`old`?e.oldStart:e.newStart,i=t===`old`?e.oldLines:e.newLines;return!r||i<=0?null:{start:r,end:r+i-1,index:n}}).filter(e=>!!e),qb=e=>{let t=[],n=e[0];if(!n)return t;n.start>1&&t.push({type:`before`,start:1,end:n.start-1,nextChunkIndex:n.index});for(let n=1;n<e.length;n+=1){let r=e[n-1],i=e[n];!r||!i||i.start>r.end+1&&t.push({type:`between`,start:r.end+1,end:i.start-1,prevChunkIndex:r.index,nextChunkIndex:i.index})}let r=e[e.length-1];return r&&t.push({type:`after`,start:r.end+1,end:1/0,prevChunkIndex:r.index}),t},Jb=e=>{let t=new Map;return e.forEach(e=>{let n=e.originalIndices[0];n!==void 0&&t.set(n,e)}),t},Yb=e=>{let t=e[e.length-1];return t?.originalIndices[t.originalIndices.length-1]??null},Xb=(0,F.memo)(function({file:e,threads:t,showAuthorBadges:n=!1,diffMode:r,reviewedFiles:i,isChangedSinceViewed:a=!1,onToggleReviewed:o,collapsedFiles:s,onToggleCollapsed:c,onToggleAllCollapsed:l,onAddComment:u,onGenerateThreadPrompt:d,onRemoveThread:f,onReplyToThread:p,onRemoveMessage:m,onUpdateMessage:h,onOpenInEditor:g,syntaxTheme:_,baseCommitish:v,targetCommitish:y,cursor:b=null,fileIndex:x=0,onLineClick:S,commentTrigger:C,onCommentTriggerHandled:w,mergedChunks:T,expandLines:E,expandAllBetweenChunks:D,prefetchFileContent:O,isExpandLoading:k,diffVersion:A}){let j=s.has(e.path),M=(0,F.useRef)(null),[N,P]=(0,F.useState)(!1),ee=Hb(e),te=ee.canExpandHiddenLines?.(e)??!1,ne=ee.id==="default"&&Nr(e.path);(0,F.useEffect)(()=>{if(!te)return;let e=M.current;if(!e)return;let t=new IntersectionObserver(([e])=>{e?.isIntersecting&&P(!0)},{rootMargin:`200px`});return t.observe(e),()=>t.disconnect()},[te]),(0,F.useEffect)(()=>{N&&!j&&te&&O(e)},[N,j,te,e,O]);let re=(0,F.useCallback)(async(t,n,r,i)=>{try{await u(e.path,t,n,r,i)}catch(e){console.error(`Failed to add comment:`,e)}},[e.path,u]);(0,F.useEffect)(()=>{if(j||k||!te||t.length===0||e.chunks.length===0||T.length===0)return;let n=Gb(t),r=Jb(T),i=Yb(T),a=T[T.length-1],o=new Set,s=(e,t)=>{o.has(e)||(o.add(e),t())};[`old`,`new`].forEach(t=>{let o=n[t];o.length!==0&&qb(Kb(e,t)).forEach(t=>{if(!o.some(e=>e.start<=t.end&&e.end>=t.start))return;if(t.type===`after`&&a&&i!==null){a.hiddenLinesAfter>0&&s(`after-${i}`,()=>{E(e,i,`down`,a.hiddenLinesAfter)});return}let n=t.nextChunkIndex;if(n===void 0)return;let c=r.get(n);!c||c.hiddenLinesBefore<=0||(t.type===`before`?s(`before-${n}`,()=>{E(e,n,`up`,c.hiddenLinesBefore)}):t.type===`between`&&s(`between-${n}`,()=>{D(e,n,c.hiddenLinesBefore)}))})})},[t,D,E,e,j,k,T,te]);let L=Yc({file:e,enabled:ne,baseCommitish:v,targetCommitish:y,reloadKey:A}),ie=ee.Component,R={file:e,threads:t,showAuthorBadges:n,diffMode:r,syntaxTheme:_,baseCommitish:v,targetCommitish:y,cursor:b,fileIndex:x,mergedChunks:T,isExpandLoading:k,expandHiddenLines:E,expandAllBetweenChunks:D,onAddComment:re,onGenerateThreadPrompt:d,onRemoveThread:f,onReplyToThread:p,onRemoveMessage:m,onUpdateMessage:h,onOpenInEditor:g,onLineClick:S,commentTrigger:C,onCommentTriggerHandled:w};return(0,I.jsxs)(`div`,{ref:M,className:`bg-github-bg-primary`,style:{"--line-number-width":`4em`},children:[(0,I.jsx)(Wb,{file:e,isCollapsed:j,isReviewed:i.has(e.path),isChangedSinceViewed:a,onToggleCollapsed:c,onToggleAllCollapsed:l,onToggleReviewed:o}),!j&&(0,I.jsx)(cn,{value:L,children:(0,I.jsx)(`div`,{className:`overflow-y-auto`,children:(0,I.jsx)(ie,{...R})})})]})});function Zb(e){if(!e)return!1;let t=e.toLowerCase();return t.includes(`safari`)&&!t.includes(`chrome`)&&!t.includes(`chromium`)&&!t.includes(`crios`)&&!t.includes(`fxios`)&&!t.includes(`edg/`)&&!t.includes(`android`)}var Qb=16,$b=24;function ex(e){return`${e*$b+Qb}px`}function tx(e){if(!e.isDirectory||!e.children)return[];let t=[];return e.path&&t.push(e.path),e.children.forEach(e=>{t.push(...tx(e))}),t}function nx(e,t){let n=new Set,r=e=>{if(e.file)return t.has(e.file.path);if(!e.isDirectory||!e.children||e.children.length===0)return!1;let i=e.children.map(e=>r(e)).every(Boolean);return i&&e.path&&n.add(e.path),i};return r(e),n}function rx(e){let t={name:``,path:``,isDirectory:!0,children:[]};e.forEach(e=>{let n=e.path.split(`/`),r=t;for(let t=0;t<n.length;t++){let i=n[t];if(!i)continue;let a=t===n.length-1,o=n.slice(0,t+1).join(`/`);r.children||=[];let s=r.children.find(e=>e.name===i);s||(s={name:i,path:o,isDirectory:!a,children:a?void 0:[],file:a?e:void 0},r.children.push(s)),r=s}});let n=e=>{if(!e.isDirectory||!e.children)return e;if(e.children=e.children.map(n),e.children.length===1&&e.children[0]?.isDirectory&&e.children[0]?.children){let t=e.children[0];if(t)return e.name?{...e,name:`${e.name}/${t.name}`,path:t.path,children:t.children}:e}return e};return n(t)}var ix=(0,F.memo)(function({files:e,onScrollToFile:t,onFileSelected:n,comments:r,reviewedFiles:i,onToggleReviewed:a,selectedFileIndex:o}){let s=(0,F.useMemo)(()=>rx(e),[e]),c=(0,F.useMemo)(()=>!Zb(typeof navigator>`u`?``:navigator.userAgent),[]),l=(0,F.useRef)(null),u=(0,F.useRef)(new Map),d={"--dir-row-height":`calc(var(--spacing, 0.25rem) * 9)`},[f,p]=(0,F.useState)(()=>new Set(tx(s))),[m,h]=(0,F.useState)(``),g=(0,F.useMemo)(()=>{let e=new Map;return r.forEach(t=>{e.set(t.file,(e.get(t.file)??0)+1)}),e},[r]),_=(0,F.useMemo)(()=>{let t=new Map;return e.forEach((e,n)=>{t.set(e.path,n)}),t},[e]),v=(0,F.useMemo)(()=>e.reduce((e,t)=>({additions:e.additions+t.additions,deletions:e.deletions+t.deletions}),{additions:0,deletions:0}),[e]),y=(0,F.useMemo)(()=>nx(s,i),[s,i]),b=(0,F.useMemo)(()=>{let e=m.trim().toLowerCase(),t=n=>{if(!e)return n;if(n.isDirectory&&n.children){let e=n.children.map(e=>t(e)).filter(e=>e!==null);return e.length>0?{...n,children:e}:null}else if(n.file)return n.file.path.toLowerCase().includes(e)?n:null;return null};return t(s)||{...s,children:[]}},[s,m]),x=e=>{switch(e){case`added`:return(0,I.jsx)(tt,{size:16,className:`text-github-accent`});case`deleted`:return(0,I.jsx)(nt,{size:16,className:`text-github-danger`});case`renamed`:return(0,I.jsx)(et,{size:16,className:`text-github-warning`});default:return(0,I.jsx)($e,{size:16,className:`text-github-text-secondary`})}},S=e=>{p(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},C=(0,F.useMemo)(()=>tx(s),[s]),w=f.size===C.length&&C.length>0,T=()=>{p(w?new Set:new Set(C))},E=(e,t)=>{if(!c){S(t);return}let n=l.current,r=e.currentTarget;if(!n){S(t);return}let i=n.getBoundingClientRect(),a=r.getBoundingClientRect(),o=Number.parseFloat(getComputedStyle(r).top||`0`);if(a.top-i.top<=o+1){let e=u.current.get(t)?.querySelector(`[data-tree-row="true"]:not([data-dir-header="true"])`),i=r.getBoundingClientRect().height||0,a=e??r,o=i*Number.parseInt(a.dataset.depth||r.dataset.depth||`0`,10),s=Math.max(0,a.offsetTop-o);if(Math.abs(n.scrollTop-s)<=1){S(t);return}n.scrollTo({top:s});return}S(t)},D=(e,r=0)=>{if(e.isDirectory&&e.children){let t=f.has(e.path),n=y.has(e.path);return(0,I.jsxs)(`div`,{"data-dir-container":e.path||void 0,ref:t=>{e.path&&(t?u.current.set(e.path,t):u.current.delete(e.path))},children:[e.name&&(0,I.jsxs)(`div`,{className:`${c?`sticky `:``}flex h-9 items-center gap-2 bg-github-bg-secondary px-4 hover:bg-github-bg-tertiary cursor-pointer ${n?`opacity-70`:``}`,"data-dir-header":`true`,"data-tree-row":`true`,"data-depth":r,style:{paddingLeft:ex(r),top:c?`calc(${r} * var(--dir-row-height))`:void 0,zIndex:c?1e3-r:void 0},onClick:t=>E(t,e.path),children:[t?(0,I.jsx)(He,{size:16}):(0,I.jsx)(We,{size:16}),t?(0,I.jsx)(rt,{size:16,className:`text-github-text-secondary`}):(0,I.jsx)(it,{size:16,className:`text-github-text-secondary`}),(0,I.jsx)(`span`,{className:`text-sm text-github-text-primary font-medium flex-1 overflow-hidden text-ellipsis whitespace-nowrap ${n?`line-through text-github-text-muted`:``}`,title:e.name,children:e.name})]}),(t||!e.name)&&e.children.map(t=>D(t,e.name?r+1:r))]},e.path)}else if(e.file){let s=e.file,c=g.get(s.path)??0,l=i.has(s.path),u=_.get(s.path)??-1;return(0,I.jsxs)(`div`,{className:`flex items-center gap-2 px-4 py-2 hover:bg-github-bg-tertiary cursor-pointer transition-colors ${l?`opacity-70`:``} ${o!==null&&o===u?`bg-github-bg-tertiary`:``}`,"data-file-row":`true`,"data-tree-row":`true`,"data-depth":r,style:{paddingLeft:ex(r)},onClick:()=>{t(s.path),n?.()},children:[(0,I.jsx)($t,{checked:l,onChange:()=>{a(s.path)},title:l?`Mark as not reviewed`:`Mark as reviewed`,className:`z-10`}),x(e.file.status),(0,I.jsx)(`span`,{className:`text-sm text-github-text-primary flex-1 overflow-hidden text-ellipsis whitespace-nowrap ${l?`line-through text-github-text-muted`:``}`,title:e.file.path,children:e.name}),c>0&&(0,I.jsxs)(`span`,{className:`text-github-warning text-sm font-medium ml-auto flex items-center gap-1`,children:[(0,I.jsx)(ut,{size:14}),c]})]},s.path)}return null};return(0,I.jsxs)(`div`,{className:`h-full flex flex-col`,children:[(0,I.jsxs)(`div`,{className:`px-4 py-3 border-b border-github-border bg-github-bg-tertiary`,children:[(0,I.jsxs)(`div`,{className:`flex items-center justify-between mb-3`,children:[(0,I.jsxs)(`h3`,{className:`text-sm font-semibold text-github-text-primary m-0`,children:[`Files changed (`,e.length,`)`]}),(0,I.jsxs)(`div`,{className:`ml-auto flex items-center gap-2`,children:[(0,I.jsxs)(`span`,{className:`inline-flex gap-1 text-right text-xs font-medium whitespace-nowrap`,title:`Total additions and deletions`,"aria-label":`${v.additions} additions and ${v.deletions} deletions`,children:[(0,I.jsxs)(`span`,{className:`text-github-accent`,children:[`+`,v.additions]}),(0,I.jsxs)(`span`,{className:`text-github-danger`,children:[`-`,v.deletions]})]}),(0,I.jsx)(`button`,{onClick:T,className:`p-1 hover:bg-github-bg-primary rounded transition-colors`,title:w?`Collapse all`:`Expand all`,children:w?(0,I.jsx)(Ge,{size:16,className:`text-github-text-secondary`}):(0,I.jsx)(Ke,{size:16,className:`text-github-text-secondary`})})]})]}),(0,I.jsxs)(`div`,{className:`relative`,children:[(0,I.jsx)(ht,{size:16,className:`absolute left-3 top-1/2 transform -translate-y-1/2 text-github-text-muted`}),(0,I.jsx)(`input`,{type:`text`,placeholder:`Filter files...`,value:m,onChange:e=>h(e.target.value),className:`w-full pl-9 pr-3 py-2 text-sm bg-github-bg-primary border border-github-border rounded-md focus:outline-none focus:border-github-accent text-github-text-primary placeholder-github-text-muted`})]})]}),(0,I.jsx)(`div`,{className:`flex-1 overflow-y-auto relative z-0`,style:d,ref:l,children:b.children?.map(e=>D(e))})]})});function ax({style:e}){return(0,I.jsx)(`svg`,{width:`98`,height:`96`,viewBox:`0, 0, 98, 96`,style:e,xmlns:`http://www.w3.org/2000/svg`,"aria-label":`GitHub`,role:`img`,children:(0,I.jsx)(`path`,{fillRule:`evenodd`,clipRule:`evenodd`,d:`M48.854 0C21.839 0 0 22 0 49.217c0 21.756 13.993 40.172 33.405 46.69 2.427.49 3.316-1.059 3.316-2.362 0-1.141-.08-5.052-.08-9.127-13.59 2.934-16.42-5.867-16.42-5.867-2.184-5.704-5.42-7.17-5.42-7.17-4.448-3.015.324-3.015.324-3.015 4.934.326 7.523 5.052 7.523 5.052 4.367 7.496 11.404 5.378 14.235 4.074.404-3.178 1.699-5.378 3.074-6.6-10.839-1.141-22.243-5.378-22.243-24.283 0-5.378 1.94-9.778 5.014-13.2-.485-1.222-2.184-6.275.486-13.038 0 0 4.125-1.304 13.426 5.052a46.97 46.97 0 0 1 12.214-1.63c4.125 0 8.33.571 12.213 1.63 9.302-6.356 13.427-5.052 13.427-5.052 2.67 6.763.97 11.816.485 13.038 3.155 3.422 5.015 7.822 5.015 13.2 0 18.905-11.404 23.06-22.324 24.283 1.78 1.548 3.316 4.481 3.316 9.126 0 6.6-.08 11.897-.08 13.526 0 1.304.89 2.853 3.316 2.364 19.412-6.52 33.405-24.935 33.405-46.691C97.707 22 75.788 0 48.854 0z`,fill:`currentColor`})})}function ox({isOpen:e,onClose:t}){let{enableScope:n,disableScope:r}=we();return z(`escape`,()=>t(),{enabled:e},[t,e]),(0,F.useEffect)(()=>(e?r(`navigation`):n(`navigation`),()=>{n(`navigation`)}),[e,n,r]),e?(0,I.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center`,children:[(0,I.jsx)(`div`,{className:`absolute inset-0 bg-black/50`,onClick:t}),(0,I.jsxs)(`div`,{className:`relative bg-github-bg-primary border border-github-border rounded-lg shadow-lg max-w-4xl w-full mx-4 max-h-[80vh] overflow-y-auto`,children:[(0,I.jsxs)(`div`,{className:`sticky top-0 bg-github-bg-primary border-b border-github-border px-6 py-4 flex items-center justify-between`,children:[(0,I.jsx)(`h2`,{className:`text-lg font-semibold text-github-text-primary`,children:`Keyboard Shortcuts`}),(0,I.jsx)(`button`,{onClick:t,className:`text-github-text-secondary hover:text-github-text-primary transition-colors`,"aria-label":`Close help modal`,children:(0,I.jsx)(xt,{size:20})})]}),(0,I.jsxs)(`div`,{className:`px-6 py-4 grid grid-cols-1 lg:grid-cols-2 gap-6`,children:[(0,I.jsxs)(`section`,{children:[(0,I.jsx)(`h3`,{className:`text-sm font-semibold text-github-text-primary mb-2`,children:`Line Navigation`}),(0,I.jsxs)(`div`,{className:`space-y-1`,children:[(0,I.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,I.jsxs)(`div`,{className:`flex gap-2`,children:[(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`j`}),(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`↓`})]}),(0,I.jsx)(`span`,{className:`text-github-text-secondary`,children:`Next line`})]}),(0,I.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,I.jsxs)(`div`,{className:`flex gap-2`,children:[(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`k`}),(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`↑`})]}),(0,I.jsx)(`span`,{className:`text-github-text-secondary`,children:`Previous line`})]})]})]}),(0,I.jsxs)(`section`,{children:[(0,I.jsx)(`h3`,{className:`text-sm font-semibold text-github-text-primary mb-2`,children:`File Navigation`}),(0,I.jsxs)(`div`,{className:`space-y-1`,children:[(0,I.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`]`}),(0,I.jsx)(`span`,{className:`text-github-text-secondary`,children:`Next file`})]}),(0,I.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`[`}),(0,I.jsx)(`span`,{className:`text-github-text-secondary`,children:`Previous file`})]}),(0,I.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`Shift`}),(0,I.jsx)(`span`,{className:`text-github-text-muted`,children:`+`}),(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`[`})]}),(0,I.jsx)(`span`,{className:`text-github-text-secondary`,children:`Jump to first file`})]}),(0,I.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`Shift`}),(0,I.jsx)(`span`,{className:`text-github-text-muted`,children:`+`}),(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`]`})]}),(0,I.jsx)(`span`,{className:`text-github-text-secondary`,children:`Jump to last file`})]})]})]}),(0,I.jsxs)(`section`,{children:[(0,I.jsx)(`h3`,{className:`text-sm font-semibold text-github-text-primary mb-2`,children:`Chunk Navigation`}),(0,I.jsxs)(`div`,{className:`space-y-1`,children:[(0,I.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`n`}),(0,I.jsx)(`span`,{className:`text-github-text-secondary`,children:`Next change chunk (added/deleted lines)`})]}),(0,I.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`p`}),(0,I.jsx)(`span`,{className:`text-github-text-secondary`,children:`Previous change chunk (added/deleted lines)`})]})]})]}),(0,I.jsxs)(`section`,{children:[(0,I.jsx)(`h3`,{className:`text-sm font-semibold text-github-text-primary mb-2`,children:`Comment Navigation`}),(0,I.jsxs)(`div`,{className:`space-y-1`,children:[(0,I.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`N`}),(0,I.jsx)(`span`,{className:`text-github-text-secondary`,children:`Next comment`})]}),(0,I.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`P`}),(0,I.jsx)(`span`,{className:`text-github-text-secondary`,children:`Previous comment`})]})]})]}),(0,I.jsxs)(`section`,{children:[(0,I.jsx)(`h3`,{className:`text-sm font-semibold text-github-text-primary mb-2`,children:`Side Navigation (Side-by-side mode)`}),(0,I.jsxs)(`div`,{className:`space-y-1`,children:[(0,I.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,I.jsxs)(`div`,{className:`flex gap-2`,children:[(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`h`}),(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`←`})]}),(0,I.jsx)(`span`,{className:`text-github-text-secondary`,children:`Focus left side`})]}),(0,I.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,I.jsxs)(`div`,{className:`flex gap-2`,children:[(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`l`}),(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`→`})]}),(0,I.jsx)(`span`,{className:`text-github-text-secondary`,children:`Focus right side`})]})]})]}),(0,I.jsxs)(`section`,{children:[(0,I.jsx)(`h3`,{className:`text-sm font-semibold text-github-text-primary mb-2`,children:`Comment Management`}),(0,I.jsxs)(`div`,{className:`space-y-1`,children:[(0,I.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`Shift`}),(0,I.jsx)(`span`,{className:`text-github-text-muted`,children:`+`}),(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`L`})]}),(0,I.jsx)(`span`,{className:`text-github-text-secondary`,children:`View all comments list`})]}),(0,I.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`Shift`}),(0,I.jsx)(`span`,{className:`text-github-text-muted`,children:`+`}),(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`C`})]}),(0,I.jsx)(`span`,{className:`text-github-text-secondary`,children:`Copy all comments prompt`})]}),(0,I.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`Shift`}),(0,I.jsx)(`span`,{className:`text-github-text-muted`,children:`+`}),(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`D`})]}),(0,I.jsx)(`span`,{className:`text-github-text-secondary`,children:`Delete all comments`})]})]})]}),(0,I.jsxs)(`section`,{children:[(0,I.jsx)(`h3`,{className:`text-sm font-semibold text-github-text-primary mb-2`,children:`Actions`}),(0,I.jsxs)(`div`,{className:`space-y-1`,children:[(0,I.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`v`}),(0,I.jsx)(`span`,{className:`text-github-text-secondary`,children:`Toggle viewed state of current file`})]}),(0,I.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`Shift`}),(0,I.jsx)(`span`,{className:`text-github-text-muted`,children:`+`}),(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`R`})]}),(0,I.jsx)(`span`,{className:`text-github-text-secondary`,children:`Refresh diff when changes detected`})]}),(0,I.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`c`}),(0,I.jsx)(`span`,{className:`text-github-text-secondary`,children:`Add comment at current line`})]}),(0,I.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`.`}),(0,I.jsx)(`span`,{className:`text-github-text-secondary`,children:`Move cursor to center of viewport`})]}),(0,I.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`?`}),(0,I.jsx)(`span`,{className:`text-github-text-secondary`,children:`Show/hide this help`})]})]})]}),(0,I.jsx)(`div`,{className:`pt-4 border-t border-github-border lg:col-span-2`,children:(0,I.jsx)(`p`,{className:`text-xs text-github-text-secondary`,children:`Shortcuts are disabled when typing in input fields.`})})]})]})]}):null}function sx({style:e}){return(0,I.jsxs)(`svg`,{style:e,viewBox:`0 0 720 190`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,"aria-label":`difit`,role:`img`,children:[(0,I.jsx)(`path`,{fillRule:`evenodd`,clipRule:`evenodd`,d:`M440.487 5.90627C432.164 9.01695 427.318 16.2817 427.318 25.649C427.318 35.9474 433.206 43.6458 442.714 45.7819C451.336 47.7188 459.606 44.3893 464.84 36.8737C466.923 33.8843 467.35 32.4073 467.606 27.3105C467.773 23.9957 467.492 20.0154 466.983 18.4654C465.699 14.5629 460.869 9.13088 456.854 7.07513C452.57 4.88086 444.73 4.32102 440.487 5.90627ZM596.658 6.653C588.927 9.55794 584.572 15.4908 583.887 24.0465C583.17 33.0212 586.83 39.8868 594.382 43.7278C603.739 48.4877 615.574 44.5081 620.482 34.9515C625.35 25.4728 622.15 13.4916 613.37 8.32678C608.986 5.74808 601.154 4.96365 596.658 6.653ZM368.585 7.68006C367.464 8.80629 367.302 12.903 367.302 40.2286V71.4878L363.832 68.1329C353.432 58.0787 335.595 52.668 319.246 54.6082C310.542 55.641 299.81 59.1369 293.3 63.0607C278.56 71.9427 266.453 89.5576 263.139 106.945C261.765 114.155 261.602 129.431 262.825 136.365C265.723 152.796 274.795 168.36 286.716 177.355C298.275 186.077 310.237 190 325.274 190C340.687 190 353.943 185.273 362.869 176.594L367.302 172.284V178.215C367.302 186.902 366.946 186.724 384.303 186.709C392.243 186.702 399.29 186.347 399.964 185.919C401.04 185.236 401.189 174.47 401.189 97.1224C401.189 23.7236 401.003 8.87842 400.068 7.74809C398.433 5.77021 370.547 5.71037 368.585 7.68006ZM526.937 7.94153C519.783 10.0325 515.359 12.5834 510.029 17.6867C501.959 25.4129 498.766 34.4597 498.766 49.5975V58.8517H490.659C484.378 58.8517 482.263 59.1418 481.268 60.1394C480.214 61.1976 479.986 63.6558 479.986 73.91C479.986 82.5264 480.289 86.6977 480.966 87.3764C481.601 88.0141 484.903 88.36 490.356 88.36H498.766V136.692C498.766 183.638 498.811 185.048 500.345 185.873C502.433 186.994 529.394 186.994 531.482 185.873C533.016 185.048 533.061 183.638 533.061 136.692V88.36H549.334C563.038 88.36 565.809 88.1568 566.89 87.0723C568.782 85.1723 568.782 62.0394 566.89 60.1394C565.808 59.0541 563.029 58.8517 549.231 58.8517H532.856L533.216 51.9721C533.604 44.5499 534.721 41.9147 538.546 39.3958C540.377 38.1901 543.049 37.904 554.661 37.6737C562.626 37.5155 569.018 37.0343 569.602 36.5483C570.892 35.4761 571.046 10.3579 569.777 7.9776C568.978 6.47923 567.918 6.39562 550.384 6.45054C535.269 6.49808 530.93 6.77431 526.937 7.94153ZM654.931 26.4834C653.136 27.7662 653.094 28.1572 653.094 43.3245V58.8517H644.567C633.342 58.8517 633.497 58.6443 633.497 73.6059C633.497 88.5674 633.342 88.36 644.567 88.36H653.094V122.636C653.094 159.998 653.439 163.935 657.362 171.354C661.848 179.838 669.111 184.99 680.857 188.022C687.996 189.866 707.647 189.269 714.309 187.007C719.756 185.158 719.86 184.87 719.969 171.298C720.082 157.364 720.441 157.791 709.174 158.48C695.386 159.324 689.341 156.938 687.388 149.883C686.927 148.214 686.58 134.435 686.577 117.663L686.572 88.36H702.068H717.564L718.87 86.3592C719.946 84.7108 720.129 82.3461 719.91 72.9575C719.719 64.8279 719.321 61.1689 718.522 60.2041C717.553 59.0345 715.315 58.8517 701.987 58.8517H686.572L686.546 43.8926C686.526 31.8556 686.28 28.613 685.288 27.2941C684.156 25.7884 682.945 25.6351 670.412 25.4129C658.94 25.2088 656.476 25.3793 654.931 26.4834ZM431.459 60.1394C430.316 61.2877 430.178 68.0001 430.188 121.82C430.197 168.838 430.429 182.667 431.232 184.262L432.264 186.311L446.657 186.535C458.941 186.725 461.242 186.567 462.353 185.452C463.521 184.279 463.655 177.845 463.655 122.786C463.655 68.0985 463.515 61.2877 462.372 60.1394C460.469 58.2287 433.362 58.2287 431.459 60.1394ZM587.799 60.4369C587.238 61.4894 586.954 82.56 586.954 123.084C586.954 177.502 587.093 184.285 588.236 185.434C590.138 187.342 616.431 187.342 618.333 185.434C619.476 184.285 619.615 177.447 619.615 122.482C619.615 75.6149 619.38 60.5828 618.636 59.8353C617.947 59.1443 613.344 58.8517 603.15 58.8517C589.644 58.8517 588.586 58.9607 587.799 60.4369ZM347.956 87.3469C362.023 93.9543 369.138 107.306 367.775 124.535C366.623 139.097 359.678 149.866 347.83 155.463C337.073 160.544 325.541 160.523 315.049 155.403C293.381 144.83 288.765 112.315 306.417 94.5961C313.92 87.0641 322.021 84.1412 334.301 84.5354C341.49 84.7666 343.224 85.124 347.956 87.3469Z`,fill:`currentColor`}),(0,I.jsx)(`path`,{fillRule:`evenodd`,clipRule:`evenodd`,d:`M9.42299 0.744751C4.61699 2.15275 2.03999 5.66375 0.956994 12.2768C-0.369006 20.3728 -0.294006 170.791 1.03899 176.572C2.29699 182.031 4.81699 185.308 9.65399 187.774C13.265 189.615 16.865 189.684 108.63 189.684C163.129 189.684 204.095 189.304 204.41 188.795C206 188.5 206 188.795 207.5 188C211.167 187.079 216.779 180.138 218.005 175.584C218.682 173.068 218.939 143.952 218.756 90.4718C218.487 11.7478 218.417 9.10275 216.535 6.62675C215.466 5.22075 213.441 3.19575 212.035 2.12675C209.546 0.23575 206.839 0.17975 110.978 0.0167504C55.373 -0.0782496 11.148 0.239751 9.42299 0.744751ZM203.778 14.8838C205.558 16.6638 205.509 172.577 203.728 175.005C202.577 176.574 198.865 176.688 156.978 176.446L111.478 176.184L111.226 138.684L110.974 101.184H84.059C69.255 101.184 56.808 101.52 56.397 101.931C55.986 102.343 60.674 107.82 66.814 114.104C72.954 120.388 77.978 126.202 77.978 127.026C77.978 129.577 74.769 134.267 71.896 135.916C69.609 137.229 68.75 137.278 66.704 136.217C63.533 134.572 28.705 99.1448 27.757 96.5998C27.36 95.5348 27.491 93.4308 28.049 91.9238C28.955 89.4768 68.498 49.6838 70.024 49.6838C70.366 49.6838 72.356 51.1627 74.447 52.9697C77.589 55.6867 78.118 56.6658 77.498 58.6198C77.086 59.9198 72.075 65.8308 66.363 71.7568C60.651 77.6818 55.978 83.0148 55.978 83.6068C55.978 84.3488 64.068 84.6838 81.952 84.6838H107.927H110.666C111.144 82.5 110.978 73.4537 110.978 46.2337V13.6838H156.778C191.067 13.6838 202.88 13.9858 203.778 14.8838ZM148.803 52.7217C146.51 54.0597 144.845 59.5997 145.74 62.9107C146.146 64.4107 150.657 69.9308 155.764 75.1788C161.411 80.9788 164.547 84.8988 163.764 85.1788C163.057 85.4318 151.549 85.7608 138.19 85.9108C117.896 86.1388 113.747 86.4308 112.956 87.6838C112.435 88.5088 112.002 91.7228 111.993 94.8268C111.982 99.0598 112.373 100.622 113.56 101.077C114.43 101.411 126.13 101.684 139.56 101.684C156.121 101.684 163.978 102.026 163.978 102.746C163.978 103.33 160.187 107.607 155.554 112.251C146.244 121.582 144.276 125.371 146.069 130.514C147.321 134.107 149.576 135.684 153.463 135.684C155.522 135.684 159.843 131.902 173.778 117.904C191.699 99.9008 194.978 96.0678 194.978 93.1208C194.978 91.1338 157.422 53.8238 154.163 52.5728C151.322 51.4818 150.908 51.4937 148.803 52.7217Z`,fill:`currentColor`})]})}function cx({shouldReload:e,isReloading:t,onReload:n,changeType:r,className:i=``,compact:a=!1}){return e?(0,I.jsxs)(`button`,{onClick:n,disabled:t,className:`
|
|
63
|
+
`);return t.length>0&&t[t.length-1]===``&&t.pop(),t},wb=(e,t)=>!e&&!t?[]:e?t?uy(e,t).flatMap(e=>{let t=e.added?`add`:e.removed?`delete`:`context`;return Cb(e.value).map(e=>({type:t,content:e}))}):Cb(e).map(e=>({type:`delete`,content:e})):Cb(t).map(e=>({type:`add`,content:e})),Tb=e=>F.isValidElement(e),Eb=e=>F.isValidElement(e),Db=e=>e==null||typeof e==`boolean`?``:typeof e==`string`||typeof e==`number`?String(e):Array.isArray(e)?e.map(Db).join(``):Tb(e)?Db(e.props.children):``,Ob=e=>{switch(e){case`add`:return`border-l-4 border-diff-addition-border`;case`delete`:return`border-l-4 border-diff-deletion-border`;case`change`:return`border-l-4 border-diff-addition-border`;default:return`border-l-4 border-transparent`}},kb=e=>{switch(e){case`before`:return`border-l-4 border-diff-deletion-border`;case`after`:return`border-l-4 border-diff-addition-border`;default:return`border-l-4 border-transparent`}},Ab=e=>{switch(e){case`add`:return`bg-diff-addition-bg`;case`delete`:return`bg-diff-deletion-bg`;default:return`bg-transparent`}},jb=e=>{switch(e){case`add`:return`+`;case`delete`:return`-`;default:return` `}},Mb=e=>{switch(e){case`add`:return`text-github-accent`;case`delete`:return`text-github-danger`;default:return`text-github-text-muted`}},Nb=e=>/^(https?:|mailto:|#|\.{0,2}\/|\/)/i.test(e.trim()),Pb=e=>({h1:({children:e})=>(0,I.jsx)(`h1`,{className:`${Qy[0]} mb-2`,children:e}),h2:({children:e})=>(0,I.jsx)(`h2`,{className:`${Qy[1]} mb-2`,children:e}),h3:({children:e})=>(0,I.jsx)(`h3`,{className:`${Qy[2]} mb-2`,children:e}),h4:({children:e})=>(0,I.jsx)(`h4`,{className:`${Qy[3]} mb-2`,children:e}),h5:({children:e})=>(0,I.jsx)(`h5`,{className:`${Qy[4]} mb-2`,children:e}),h6:({children:e})=>(0,I.jsx)(`h6`,{className:`${Qy[5]} mb-2`,children:e}),p:({children:e})=>(0,I.jsx)(`p`,{className:`text-sm leading-7`,children:e}),ul:({children:e})=>(0,I.jsx)(`ul`,{className:`list-disc pl-6 text-sm space-y-1`,children:e}),ol:({children:e})=>(0,I.jsx)(`ol`,{className:`list-decimal pl-6 text-sm space-y-1`,children:e}),li:({children:e})=>(0,I.jsx)(`li`,{children:e}),blockquote:({children:e})=>(0,I.jsx)(`blockquote`,{className:`border-l-4 border-github-border pl-4 text-github-text-muted italic`,children:e}),hr:()=>(0,I.jsx)(`hr`,{className:`border-github-border`}),a:({href:e,children:t})=>{let n=e??``;if(!n||!Nb(n))return(0,I.jsx)(`span`,{children:t});let r=n.startsWith(`http`);return(0,I.jsx)(`a`,{href:n,target:r?`_blank`:void 0,rel:r?`noreferrer`:void 0,className:`text-sky-400 hover:text-sky-300 underline underline-offset-4`,children:t})},img:({src:e,alt:t})=>{let n=e??``;return!n||!Nb(n)?null:(0,I.jsx)(`img`,{src:n,alt:t??``,loading:`lazy`,className:`max-w-full rounded border border-github-border`})},pre:({children:t})=>{let n=(Array.isArray(t)?t:[t]).find(Eb),r=Db(n??t),i=/language-(\S+)/.exec(n?.props.className??``)?.[1];return r.trim()?(0,I.jsx)(`pre`,{className:`border border-github-border bg-github-bg-secondary p-3 overflow-x-auto text-xs`,children:(0,I.jsx)(Ir,{code:r.replace(/\n$/,``),language:i,syntaxTheme:e,className:`font-mono text-github-text-primary [&_.token-line]:block [&_.token-line]:whitespace-pre`})}):(0,I.jsx)(`pre`,{className:`border border-github-border bg-github-bg-secondary p-3 overflow-x-auto text-xs`,children:t})},code:({className:e,children:t})=>e?(0,I.jsx)(`code`,{className:e,children:t}):(0,I.jsx)(`code`,{className:`px-1 py-0.5 rounded bg-github-bg-tertiary border border-github-border text-xs font-mono`,children:t}),table:({children:e})=>(0,I.jsx)(`div`,{className:`overflow-x-auto`,children:(0,I.jsx)(`table`,{className:`min-w-full border border-github-border`,children:e})}),th:({children:e})=>(0,I.jsx)(`th`,{className:`border border-github-border px-2 py-1 bg-github-bg-tertiary text-sm`,children:e}),td:({children:e})=>(0,I.jsx)(`td`,{className:`border border-github-border px-2 py-1 text-sm`,children:e})}),Fb=e=>{let t=Sb(e.sourceLines,[`context`,`delete`]),n=Sb(e.sourceLines,[`context`,`add`]),r=[];return e.status===`change`?(t.trim()&&r.push({label:`Before`,content:t,tone:`before`}),n.trim()&&r.push({label:`After`,content:n,tone:`after`}),r.length===0&&r.push({label:`After`,content:n,tone:`after`}),r):e.status===`delete`?(r.push({label:`Before`,content:t||n,tone:`before`}),r):(r.push({label:`After`,content:n||t,tone:`after`}),r)},Ib=(e,t,n,r)=>{if(!t.trim())return(0,I.jsx)(`span`,{className:`text-xs text-github-text-muted`,children:`Empty cell`});if(e===`markdown`){let e=Pb(n);return(0,I.jsx)(Nh,{remarkPlugins:[Lv],urlTransform:e=>Nb(e)?e:``,components:e,children:t})}return e===`raw`?(0,I.jsx)(`pre`,{className:`whitespace-pre-wrap break-words text-xs font-mono text-github-text-primary`,children:t}):(0,I.jsx)(`pre`,{className:`overflow-x-auto text-xs`,children:(0,I.jsx)(Lr,{code:t.replace(/\n$/,``),language:r||`python`,syntaxTheme:n,className:`font-mono text-github-text-primary [&_.token-line]:block [&_.token-line]:whitespace-pre`})})},Lb=({lines:e,syntaxTheme:t,language:n})=>e.length===0?(0,I.jsx)(`span`,{className:`text-xs text-github-text-muted`,children:`Empty cell`}):(0,I.jsx)(`div`,{className:`overflow-x-auto`,children:(0,I.jsx)(`div`,{className:`font-mono text-xs`,children:e.map((e,r)=>(0,I.jsxs)(`div`,{className:`flex items-start min-h-[16px] ${Ab(e.type)}`,children:[(0,I.jsx)(`span`,{className:`w-5 text-center flex-shrink-0 select-none ${Mb(e.type)}`,children:jb(e.type)}),(0,I.jsx)(Lr,{code:e.content||` `,language:n||`python`,syntaxTheme:t,className:`flex-1 px-3 text-github-text-primary whitespace-pre-wrap break-all overflow-wrap-break-word select-text [&_pre]:m-0 [&_pre]:p-0 [&_pre]:!bg-transparent [&_pre]:font-inherit [&_pre]:text-inherit [&_pre]:leading-inherit [&_code]:!bg-transparent [&_code]:font-inherit [&_code]:text-inherit [&_code]:leading-inherit`})]},`notebook-code-line-${r}`))})}),Rb=({cells:e,syntaxTheme:t,language:n})=>(0,I.jsx)(`div`,{className:`space-y-4`,children:e.map((e,r)=>{let i=Fb(e),a=e.cellType===`code`&&e.executionCount!==void 0?`In[${e.executionCount??` `}]`:null,o=e.cellType===`code`,s=o?wb(Sb(e.sourceLines,[`context`,`delete`]),Sb(e.sourceLines,[`context`,`add`])).filter(e=>e.type!==`context`):[];return o&&s.length===0?null:(0,I.jsxs)(`div`,{className:`rounded border border-github-border bg-github-bg-secondary/40 p-4 ${Ob(e.status)}`,children:[(0,I.jsx)(`div`,{className:`flex flex-wrap items-center justify-between gap-2 mb-3`,children:(0,I.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,I.jsx)(`span`,{className:`text-xs font-semibold uppercase tracking-wide text-github-text-muted`,children:$y[e.cellType]}),a&&(0,I.jsx)(`span`,{className:`text-xs font-mono text-github-text-secondary`,children:a}),e.id&&(0,I.jsx)(`span`,{className:`text-xs font-mono text-github-text-muted`,children:e.id})]})}),(0,I.jsx)(`div`,{className:`space-y-3`,children:o?(0,I.jsx)(`div`,{className:`px-4 py-3 ${kb(e.status===`delete`?`before`:`after`)}`,children:(0,I.jsx)(Lb,{lines:s,syntaxTheme:t,language:n})}):i.map((i,a)=>(0,I.jsx)(`div`,{className:`px-4 py-3 ${kb(i.tone)}`,children:(0,I.jsx)(`div`,{className:`text-sm text-github-text-primary`,children:Ib(e.cellType,i.content,t,n)})},`notebook-cell-${r}-section-${a}`))})]},`notebook-cell-${r}`)})}),zb=({cells:e,syntaxTheme:t,language:n})=>(0,I.jsx)(`div`,{className:`space-y-4`,children:e.map((e,r)=>{let i=e.cellType===`code`&&e.executionCount!==void 0?`In[${e.executionCount??` `}]`:null;return(0,I.jsxs)(`div`,{className:`rounded border border-github-border bg-github-bg-secondary/40 p-4`,children:[(0,I.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 mb-3`,children:[(0,I.jsx)(`span`,{className:`text-xs font-semibold uppercase tracking-wide text-github-text-muted`,children:$y[e.cellType]}),i&&(0,I.jsx)(`span`,{className:`text-xs font-mono text-github-text-secondary`,children:i}),e.id&&(0,I.jsx)(`span`,{className:`text-xs font-mono text-github-text-muted`,children:e.id})]}),(0,I.jsx)(`div`,{className:`text-sm text-github-text-primary`,children:Ib(e.cellType,e.sourceText,t,n)})]},`notebook-full-cell-${r}`)})});function Bb(e){let{file:t,baseCommitish:n,targetCommitish:r}=e,[i,a]=(0,F.useState)(`diff`),o=(0,F.useMemo)(()=>ub(e.mergedChunks),[e.mergedChunks]),[s,c]=(0,F.useState)({status:`idle`,cells:o.cells,language:o.language}),l=(0,F.useMemo)(()=>s.cells.filter(e=>e.status===`context`?!1:e.cellType===`code`?wb(Sb(e.sourceLines,[`context`,`delete`]),Sb(e.sourceLines,[`context`,`add`])).filter(e=>e.type!==`context`).length>0:!0),[s.cells]),[u,d]=(0,F.useState)(null),[f,p]=(0,F.useState)(o.language),[m,h]=(0,F.useState)(!1),[g,_]=(0,F.useState)(null),[v,y]=(0,F.useState)(null),b=(0,F.useMemo)(()=>!n&&!r?null:t.status===`added`?r?{path:t.path,ref:r}:null:t.status===`deleted`?n?{path:t.oldPath||t.path,ref:n}:null:r?{path:t.path,ref:r}:n?{path:t.oldPath||t.path,ref:n}:null,[n,r,t.oldPath,t.path,t.status]),x=(0,F.useMemo)(()=>b?`${b.ref}:${b.path}`:null,[b]);(0,F.useEffect)(()=>{let e=!1;return(async()=>{let i=n||`HEAD~1`,a=r||`HEAD`,s=t.oldPath||t.path,l=t.status!==`added`&&bb(i),u=t.status!==`deleted`&&bb(a);if(b&&x&&bb(b?.ref)?(d(null),_(null),h(!0)):(d(null),y(null),_(null),h(!1)),!l&&!u){c({status:`ready`,cells:o.cells,language:o.language,source:`diff`,message:`Notebook content could not be loaded, falling back to diff preview.`});return}c(e=>({...e,status:`loading`}));try{let[n,r]=await Promise.all([l?xb(s,i):Promise.resolve(null),u?xb(t.path,a):Promise.resolve(null)]),f=n?pb(n):null,m=r?pb(r):null;if(!f&&!m){e||c({status:`ready`,cells:o.cells,language:o.language,source:`diff`,message:`Notebook content could not be parsed, falling back to diff preview.`});return}let h=m?.language??f?.language??o.language,g=_b(f?.cells??[],m?.cells??[]),v=b?.ref===a&&b.path===t.path?m:b?.ref===i&&b.path===s?f:null;e||(c({status:`ready`,cells:g,source:`blob`,language:h}),v&&x?(d(v.cells),p(v.language??o.language),y(x),_(null)):(d(null),y(null),_(null)))}catch(t){e||(c({status:`error`,cells:o.cells,language:o.language,source:`diff`,message:t instanceof Error?t.message:`Failed to load notebook preview.`}),d(null),y(null),_(t instanceof Error?t.message:`Failed to load preview`))}finally{e||h(!1)}})(),()=>{e=!0}},[n,t.oldPath,t.path,t.status,e.mergedChunks,b,x,r,o]),(0,F.useEffect)(()=>{if(i!==`full-preview`)return;if(!b||!x||!bb(b.ref)){d(null),y(null),_(null),h(!1);return}let e=!1;return(x!==v||!u)&&(async()=>{x!==v&&d(null),h(!0),_(null);try{let t=await xb(b.path,b.ref);if(!t)throw Error(`Failed to load preview.`);let n=pb(t);if(!n)throw Error(`Notebook content could not be parsed.`);e||(d(n.cells),p(n.language??o.language),y(x))}catch(t){e||(d(null),y(null),_(t instanceof Error?t.message:`Failed to load preview`))}finally{e||h(!1)}})(),()=>{e=!0}},[o.language,u,v,i,b,x]);let S=(0,F.useMemo)(()=>x===v&&u!==null,[u,v,x]);return(0,F.useEffect)(()=>{i===`full-preview`&&!S&&a(`diff-preview`)},[S,i]),(0,I.jsxs)(`div`,{className:`bg-github-bg-primary`,children:[(0,I.jsx)(`div`,{className:`flex items-center justify-between border-b border-github-border px-4 py-2`,children:(0,I.jsx)(Hv,{mode:i,hasFullPreview:S,onModeChange:a})}),i===`diff`&&(0,I.jsx)(Ey,{...e}),i===`diff-preview`&&(0,I.jsxs)(`div`,{className:`p-4`,children:[s.status===`loading`&&(0,I.jsx)(`div`,{className:`text-xs text-github-text-muted mb-3`,children:`Loading notebook preview…`}),s.message&&(0,I.jsx)(`div`,{className:`text-xs text-github-text-muted mb-3`,children:s.message}),l.length===0?(0,I.jsxs)(`div`,{children:[(0,I.jsx)(`div`,{className:`text-xs text-github-text-muted mb-3`,children:`No changed notebook cells were found. Showing raw diff instead.`}),(0,I.jsx)(Ey,{...e})]}):(0,I.jsx)(Rb,{cells:l,syntaxTheme:e.syntaxTheme,language:s.language})]}),i===`full-preview`&&(0,I.jsxs)(`div`,{className:`p-4`,children:[m&&(0,I.jsx)(`div`,{className:`text-sm text-github-text-muted mb-3`,children:`Loading preview...`}),g&&(0,I.jsx)(`div`,{className:`text-sm text-github-danger mb-3`,children:g}),!m&&!g&&u&&(0,I.jsx)(zb,{cells:u,syntaxTheme:e.syntaxTheme,language:f??o.language}),!m&&!g&&!u&&(0,I.jsx)(`div`,{className:`text-sm text-github-text-muted`,children:`Preview unavailable.`})]})]})}var Vb=[{id:`image`,match:e=>Zc(e.path),Component:il,canExpandHiddenLines:()=>!1},{id:`markdown`,match:e=>$c(e.path),Component:Zy,canExpandHiddenLines:e=>e.status!==`added`&&e.status!==`deleted`},{id:`notebook`,match:e=>tl(e.path),Component:Bb,canExpandHiddenLines:e=>e.status!==`added`&&e.status!==`deleted`},{id:`default`,match:()=>!0,Component:Ey,canExpandHiddenLines:e=>e.status!==`added`&&e.status!==`deleted`}],Hb=e=>{let t=Vb[Vb.length-1];if(!t)throw Error(`No diff viewers registered`);return Vb.find(t=>t.match(e))??t},Ub=e=>{switch(e){case`added`:return(0,I.jsx)(tt,{size:16,className:`text-github-accent`});case`deleted`:return(0,I.jsx)(nt,{size:16,className:`text-github-danger`});case`renamed`:return(0,I.jsx)(et,{size:16,className:`text-github-warning`});default:return(0,I.jsx)($e,{size:16,className:`text-github-text-secondary`})}},Wb=({file:e,isCollapsed:t,isFocused:n=!1,isReviewed:r,isChangedSinceViewed:i=!1,onToggleCollapsed:a,onToggleAllCollapsed:o,onToggleReviewed:s})=>{let[c,l]=(0,F.useState)(!1);return(0,I.jsxs)(`div`,{className:`bg-github-bg-secondary border-t-2 border-t-github-accent border-b border-github-border px-5 py-4 flex items-center justify-between flex-wrap gap-3 sticky top-0 z-10 ${n?`keyboard-focused-file-header`:``}`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-2 flex-1 min-w-0`,children:[(0,I.jsx)(`button`,{onClick:n=>{n.altKey?o(!t):a(e.path)},className:`text-github-text-muted hover:text-github-text-primary transition-colors cursor-pointer`,title:t?`Expand file (Alt+Click to expand all)`:`Collapse file (Alt+Click to collapse all)`,children:t?(0,I.jsx)(We,{size:16}):(0,I.jsx)(He,{size:16})}),Ub(e.status),(0,I.jsx)(`h2`,{className:`text-sm font-mono text-github-text-primary m-0 overflow-hidden text-ellipsis whitespace-nowrap`,children:e.path}),(0,I.jsx)(`button`,{className:`bg-transparent border-none cursor-pointer px-1.5 py-1 rounded text-sm transition-all hover:bg-github-bg-tertiary ${c?`text-github-accent`:`text-github-text-secondary hover:text-github-text-primary`}`,onClick:()=>{nn(e.path).then(()=>{console.log(`File path copied to clipboard:`,e.path),l(!0),setTimeout(()=>l(!1),2e3)}).catch(e=>{console.error(`Failed to copy file path:`,e)})},title:`Copy file path`,children:c?(0,I.jsx)(Ve,{size:14}):(0,I.jsx)(Ye,{size:14})}),e.oldPath&&e.oldPath!==e.path&&(0,I.jsxs)(`span`,{className:`text-xs text-github-text-muted italic`,children:[`(renamed from `,e.oldPath,`)`]})]}),(0,I.jsxs)(`div`,{className:`flex items-center gap-3`,children:[i&&!r&&(0,I.jsx)(`span`,{className:`inline-flex h-6 items-center rounded-full border border-github-warning px-2.5 text-xs font-medium text-github-warning`,title:`Updated since you last viewed this file`,"aria-label":`Updated since you last viewed this file`,children:`Updated`}),(0,I.jsxs)(`div`,{className:`flex items-center gap-2 text-xs`,children:[(0,I.jsxs)(`span`,{className:`font-medium px-1 py-0.5 rounded text-github-accent bg-green-100/10`,children:[`+`,e.additions]}),(0,I.jsxs)(`span`,{className:`font-medium px-1 py-0.5 rounded text-github-danger bg-red-100/10`,children:[`-`,e.deletions]})]}),(0,I.jsxs)(`button`,{onClick:()=>s(e.path),className:`flex items-center gap-2 px-3 py-1.5 rounded-md text-sm font-medium transition-all duration-200 ${r?`bg-github-accent text-white`:`dark:bg-slate-600 dark:text-white dark:border-slate-500 dark:hover:bg-slate-500 dark:hover:border-slate-400 bg-github-bg-secondary text-github-text-primary border border-github-border hover:bg-github-bg-tertiary hover:border-github-text-muted`}`,title:r?`Mark as not reviewed`:`Mark as reviewed`,children:[r?(0,I.jsx)(Ve,{size:14}):(0,I.jsx)(_t,{size:14}),`Viewed`]})]})]})},Gb=e=>{let t={old:[],new:[]};return e.forEach(e=>{let n=e.side??`new`,[r,i]=Array.isArray(e.line)?[e.line[0],e.line[1]]:[e.line,e.line];r<=0||i<=0||t[n].push({start:Math.min(r,i),end:Math.max(r,i)})}),t},Kb=(e,t)=>e.chunks.map((e,n)=>{let r=t===`old`?e.oldStart:e.newStart,i=t===`old`?e.oldLines:e.newLines;return!r||i<=0?null:{start:r,end:r+i-1,index:n}}).filter(e=>!!e),qb=e=>{let t=[],n=e[0];if(!n)return t;n.start>1&&t.push({type:`before`,start:1,end:n.start-1,nextChunkIndex:n.index});for(let n=1;n<e.length;n+=1){let r=e[n-1],i=e[n];!r||!i||i.start>r.end+1&&t.push({type:`between`,start:r.end+1,end:i.start-1,prevChunkIndex:r.index,nextChunkIndex:i.index})}let r=e[e.length-1];return r&&t.push({type:`after`,start:r.end+1,end:1/0,prevChunkIndex:r.index}),t},Jb=e=>{let t=new Map;return e.forEach(e=>{let n=e.originalIndices[0];n!==void 0&&t.set(n,e)}),t},Yb=e=>{let t=e[e.length-1];return t?.originalIndices[t.originalIndices.length-1]??null},Xb=(0,F.memo)(function({file:e,threads:t,showAuthorBadges:n=!1,diffMode:r,reviewedFiles:i,isChangedSinceViewed:a=!1,onToggleReviewed:o,collapsedFiles:s,onToggleCollapsed:c,onToggleAllCollapsed:l,onAddComment:u,onGenerateThreadPrompt:d,onRemoveThread:f,onReplyToThread:p,onRemoveMessage:m,onUpdateMessage:h,onOpenInEditor:g,syntaxTheme:_,baseCommitish:v,targetCommitish:y,cursor:b=null,isFocused:x=!1,fileIndex:S=0,onLineClick:C,commentTrigger:w,onCommentTriggerHandled:T,mergedChunks:E,expandLines:D,expandAllBetweenChunks:O,prefetchFileContent:k,isExpandLoading:A,diffVersion:j}){let M=s.has(e.path),N=(0,F.useRef)(null),[P,ee]=(0,F.useState)(!1),te=Hb(e),ne=te.canExpandHiddenLines?.(e)??!1,re=te.id==="default"&&Nr(e.path);(0,F.useEffect)(()=>{if(!ne)return;let e=N.current;if(!e)return;let t=new IntersectionObserver(([e])=>{e?.isIntersecting&&ee(!0)},{rootMargin:`200px`});return t.observe(e),()=>t.disconnect()},[ne]),(0,F.useEffect)(()=>{P&&!M&&ne&&k(e)},[P,M,ne,e,k]);let L=(0,F.useCallback)(async(t,n,r,i)=>{try{await u(e.path,t,n,r,i)}catch(e){console.error(`Failed to add comment:`,e)}},[e.path,u]);(0,F.useEffect)(()=>{if(M||A||!ne||t.length===0||e.chunks.length===0||E.length===0)return;let n=Gb(t),r=Jb(E),i=Yb(E),a=E[E.length-1],o=new Set,s=(e,t)=>{o.has(e)||(o.add(e),t())};[`old`,`new`].forEach(t=>{let o=n[t];o.length!==0&&qb(Kb(e,t)).forEach(t=>{if(!o.some(e=>e.start<=t.end&&e.end>=t.start))return;if(t.type===`after`&&a&&i!==null){a.hiddenLinesAfter>0&&s(`after-${i}`,()=>{D(e,i,`down`,a.hiddenLinesAfter)});return}let n=t.nextChunkIndex;if(n===void 0)return;let c=r.get(n);!c||c.hiddenLinesBefore<=0||(t.type===`before`?s(`before-${n}`,()=>{D(e,n,`up`,c.hiddenLinesBefore)}):t.type===`between`&&s(`between-${n}`,()=>{O(e,n,c.hiddenLinesBefore)}))})})},[t,O,D,e,M,A,E,ne]);let ie=Yc({file:e,enabled:re,baseCommitish:v,targetCommitish:y,reloadKey:j}),R=te.Component,ae={file:e,threads:t,showAuthorBadges:n,diffMode:r,syntaxTheme:_,baseCommitish:v,targetCommitish:y,cursor:b,fileIndex:S,mergedChunks:E,isExpandLoading:A,expandHiddenLines:D,expandAllBetweenChunks:O,onAddComment:L,onGenerateThreadPrompt:d,onRemoveThread:f,onReplyToThread:p,onRemoveMessage:m,onUpdateMessage:h,onOpenInEditor:g,onLineClick:C,commentTrigger:w,onCommentTriggerHandled:T};return(0,I.jsxs)(`div`,{ref:N,className:`bg-github-bg-primary`,style:{"--line-number-width":`4em`},children:[(0,I.jsx)(Wb,{file:e,isCollapsed:M,isFocused:x,isReviewed:i.has(e.path),isChangedSinceViewed:a,onToggleCollapsed:c,onToggleAllCollapsed:l,onToggleReviewed:o}),!M&&(0,I.jsx)(cn,{value:ie,children:(0,I.jsx)(`div`,{className:`overflow-y-auto`,children:(0,I.jsx)(R,{...ae})})})]})});function Zb(e){if(!e)return!1;let t=e.toLowerCase();return t.includes(`safari`)&&!t.includes(`chrome`)&&!t.includes(`chromium`)&&!t.includes(`crios`)&&!t.includes(`fxios`)&&!t.includes(`edg/`)&&!t.includes(`android`)}var Qb=16,$b=24;function ex(e){return`${e*$b+Qb}px`}function tx(e){if(!e.isDirectory||!e.children)return[];let t=[];return e.path&&t.push(e.path),e.children.forEach(e=>{t.push(...tx(e))}),t}function nx(e,t){let n=new Set,r=e=>{if(e.file)return t.has(e.file.path);if(!e.isDirectory||!e.children||e.children.length===0)return!1;let i=e.children.map(e=>r(e)).every(Boolean);return i&&e.path&&n.add(e.path),i};return r(e),n}function rx(e){let t={name:``,path:``,isDirectory:!0,children:[]};e.forEach(e=>{let n=e.path.split(`/`),r=t;for(let t=0;t<n.length;t++){let i=n[t];if(!i)continue;let a=t===n.length-1,o=n.slice(0,t+1).join(`/`);r.children||=[];let s=r.children.find(e=>e.name===i);s||(s={name:i,path:o,isDirectory:!a,children:a?void 0:[],file:a?e:void 0},r.children.push(s)),r=s}});let n=e=>{if(!e.isDirectory||!e.children)return e;if(e.children=e.children.map(n),e.children.length===1&&e.children[0]?.isDirectory&&e.children[0]?.children){let t=e.children[0];if(t)return e.name?{...e,name:`${e.name}/${t.name}`,path:t.path,children:t.children}:e}return e};return n(t)}var ix=(0,F.memo)(function({files:e,onScrollToFile:t,onFileSelected:n,comments:r,reviewedFiles:i,onToggleReviewed:a,onToggleFolderReviewed:o,selectedFileIndex:s}){let c=(0,F.useMemo)(()=>rx(e),[e]),l=(0,F.useMemo)(()=>!Zb(typeof navigator>`u`?``:navigator.userAgent),[]),u=(0,F.useRef)(null),d=(0,F.useRef)(new Map),f={"--dir-row-height":`calc(var(--spacing, 0.25rem) * 9)`},[p,m]=(0,F.useState)(()=>new Set(tx(c))),[h,g]=(0,F.useState)(``),_=(0,F.useMemo)(()=>{let e=new Map;return r.forEach(t=>{e.set(t.file,(e.get(t.file)??0)+1)}),e},[r]),v=(0,F.useMemo)(()=>{let t=new Map;return e.forEach((e,n)=>{t.set(e.path,n)}),t},[e]),y=(0,F.useMemo)(()=>e.reduce((e,t)=>({additions:e.additions+t.additions,deletions:e.deletions+t.deletions}),{additions:0,deletions:0}),[e]),b=(0,F.useMemo)(()=>nx(c,i),[c,i]),x=(0,F.useMemo)(()=>{let e=h.trim().toLowerCase(),t=n=>{if(!e)return n;if(n.isDirectory&&n.children){let e=n.children.map(e=>t(e)).filter(e=>e!==null);return e.length>0?{...n,children:e}:null}else if(n.file)return n.file.path.toLowerCase().includes(e)?n:null;return null};return t(c)||{...c,children:[]}},[c,h]),S=e=>{switch(e){case`added`:return(0,I.jsx)(tt,{size:16,className:`text-github-accent`});case`deleted`:return(0,I.jsx)(nt,{size:16,className:`text-github-danger`});case`renamed`:return(0,I.jsx)(et,{size:16,className:`text-github-warning`});default:return(0,I.jsx)($e,{size:16,className:`text-github-text-secondary`})}},C=e=>{m(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},w=(0,F.useMemo)(()=>tx(c),[c]),T=p.size===w.length&&w.length>0,E=()=>{m(T?new Set:new Set(w))},D=(e,t)=>{if(!l){C(t);return}let n=u.current,r=e.currentTarget;if(!n){C(t);return}let i=n.getBoundingClientRect(),a=r.getBoundingClientRect(),o=Number.parseFloat(getComputedStyle(r).top||`0`);if(a.top-i.top<=o+1){let e=d.current.get(t)?.querySelector(`[data-tree-row="true"]:not([data-dir-header="true"])`),i=r.getBoundingClientRect().height||0,a=e??r,o=i*Number.parseInt(a.dataset.depth||r.dataset.depth||`0`,10),s=Math.max(0,a.offsetTop-o);if(Math.abs(n.scrollTop-s)<=1){C(t);return}n.scrollTo({top:s});return}C(t)},O=(e,r=0)=>{if(e.isDirectory&&e.children){let t=p.has(e.path),n=b.has(e.path);return(0,I.jsxs)(`div`,{"data-dir-container":e.path||void 0,ref:t=>{e.path&&(t?d.current.set(e.path,t):d.current.delete(e.path))},children:[e.name&&(0,I.jsxs)(`div`,{className:`${l?`sticky `:``}group flex h-9 items-center gap-2 bg-github-bg-secondary px-4 hover:bg-github-bg-tertiary cursor-pointer ${n?`opacity-70`:``}`,"data-dir-header":`true`,"data-tree-row":`true`,"data-depth":r,style:{paddingLeft:ex(r),top:l?`calc(${r} * var(--dir-row-height))`:void 0,zIndex:l?1e3-r:void 0},onClick:t=>D(t,e.path),children:[t?(0,I.jsx)(He,{size:16}):(0,I.jsx)(We,{size:16}),(0,I.jsx)(`span`,{className:`flex items-center group-hover:hidden`,children:t?(0,I.jsx)(rt,{size:16,className:`text-github-text-secondary`}):(0,I.jsx)(it,{size:16,className:`text-github-text-secondary`})}),(0,I.jsx)(`span`,{className:`hidden items-center pl-[2px] group-hover:flex`,children:(0,I.jsx)($t,{checked:n,onChange:()=>{o(e.path,!n)},title:n?`Mark all files as not reviewed`:`Mark all files as reviewed`,className:`z-10`})}),(0,I.jsx)(`span`,{className:`text-sm text-github-text-primary font-medium flex-1 overflow-hidden text-ellipsis whitespace-nowrap ${n?`line-through text-github-text-muted`:``}`,title:e.name,children:e.name})]}),(t||!e.name)&&e.children.map(t=>O(t,e.name?r+1:r))]},e.path)}else if(e.file){let o=e.file,c=_.get(o.path)??0,l=i.has(o.path),u=v.get(o.path)??-1;return(0,I.jsxs)(`div`,{className:`flex items-center gap-2 px-4 py-2 hover:bg-github-bg-tertiary cursor-pointer transition-colors ${l?`opacity-70`:``} ${s!==null&&s===u?`bg-github-bg-tertiary`:``}`,"data-file-row":`true`,"data-tree-row":`true`,"data-depth":r,style:{paddingLeft:ex(r)},onClick:()=>{t(o.path),n?.()},children:[(0,I.jsx)($t,{checked:l,onChange:()=>{a(o.path)},title:l?`Mark as not reviewed`:`Mark as reviewed`,className:`z-10`}),S(e.file.status),(0,I.jsx)(`span`,{className:`text-sm text-github-text-primary flex-1 overflow-hidden text-ellipsis whitespace-nowrap ${l?`line-through text-github-text-muted`:``}`,title:e.file.path,children:e.name}),c>0&&(0,I.jsxs)(`span`,{className:`text-github-warning text-sm font-medium ml-auto flex items-center gap-1`,children:[(0,I.jsx)(ut,{size:14}),c]})]},o.path)}return null};return(0,I.jsxs)(`div`,{className:`h-full flex flex-col`,children:[(0,I.jsxs)(`div`,{className:`px-4 py-3 border-b border-github-border bg-github-bg-tertiary`,children:[(0,I.jsxs)(`div`,{className:`flex items-center justify-between mb-3`,children:[(0,I.jsxs)(`h3`,{className:`text-sm font-semibold text-github-text-primary m-0`,children:[`Files changed (`,e.length,`)`]}),(0,I.jsxs)(`div`,{className:`ml-auto flex items-center gap-2`,children:[(0,I.jsxs)(`span`,{className:`inline-flex gap-1 text-right text-xs font-medium whitespace-nowrap`,title:`Total additions and deletions`,"aria-label":`${y.additions} additions and ${y.deletions} deletions`,children:[(0,I.jsxs)(`span`,{className:`text-github-accent`,children:[`+`,y.additions]}),(0,I.jsxs)(`span`,{className:`text-github-danger`,children:[`-`,y.deletions]})]}),(0,I.jsx)(`button`,{onClick:E,className:`p-1 hover:bg-github-bg-primary rounded transition-colors`,title:T?`Collapse all`:`Expand all`,children:T?(0,I.jsx)(Ge,{size:16,className:`text-github-text-secondary`}):(0,I.jsx)(Ke,{size:16,className:`text-github-text-secondary`})})]})]}),(0,I.jsxs)(`div`,{className:`relative`,children:[(0,I.jsx)(ht,{size:16,className:`absolute left-3 top-1/2 transform -translate-y-1/2 text-github-text-muted`}),(0,I.jsx)(`input`,{type:`text`,placeholder:`Filter files...`,value:h,onChange:e=>g(e.target.value),className:`w-full pl-9 pr-3 py-2 text-sm bg-github-bg-primary border border-github-border rounded-md focus:outline-none focus:border-github-accent text-github-text-primary placeholder-github-text-muted`})]})]}),(0,I.jsx)(`div`,{className:`flex-1 overflow-y-auto relative z-0`,style:f,ref:u,children:x.children?.map(e=>O(e))})]})});function ax({style:e}){return(0,I.jsx)(`svg`,{width:`98`,height:`96`,viewBox:`0, 0, 98, 96`,style:e,xmlns:`http://www.w3.org/2000/svg`,"aria-label":`GitHub`,role:`img`,children:(0,I.jsx)(`path`,{fillRule:`evenodd`,clipRule:`evenodd`,d:`M48.854 0C21.839 0 0 22 0 49.217c0 21.756 13.993 40.172 33.405 46.69 2.427.49 3.316-1.059 3.316-2.362 0-1.141-.08-5.052-.08-9.127-13.59 2.934-16.42-5.867-16.42-5.867-2.184-5.704-5.42-7.17-5.42-7.17-4.448-3.015.324-3.015.324-3.015 4.934.326 7.523 5.052 7.523 5.052 4.367 7.496 11.404 5.378 14.235 4.074.404-3.178 1.699-5.378 3.074-6.6-10.839-1.141-22.243-5.378-22.243-24.283 0-5.378 1.94-9.778 5.014-13.2-.485-1.222-2.184-6.275.486-13.038 0 0 4.125-1.304 13.426 5.052a46.97 46.97 0 0 1 12.214-1.63c4.125 0 8.33.571 12.213 1.63 9.302-6.356 13.427-5.052 13.427-5.052 2.67 6.763.97 11.816.485 13.038 3.155 3.422 5.015 7.822 5.015 13.2 0 18.905-11.404 23.06-22.324 24.283 1.78 1.548 3.316 4.481 3.316 9.126 0 6.6-.08 11.897-.08 13.526 0 1.304.89 2.853 3.316 2.364 19.412-6.52 33.405-24.935 33.405-46.691C97.707 22 75.788 0 48.854 0z`,fill:`currentColor`})})}function ox({isOpen:e,onClose:t}){let{enableScope:n,disableScope:r}=we();return z(`escape`,()=>t(),{enabled:e},[t,e]),(0,F.useEffect)(()=>(e?r(`navigation`):n(`navigation`),()=>{n(`navigation`)}),[e,n,r]),e?(0,I.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center`,children:[(0,I.jsx)(`div`,{className:`absolute inset-0 bg-black/50`,onClick:t}),(0,I.jsxs)(`div`,{className:`relative bg-github-bg-primary border border-github-border rounded-lg shadow-lg max-w-4xl w-full mx-4 max-h-[80vh] overflow-y-auto`,children:[(0,I.jsxs)(`div`,{className:`sticky top-0 bg-github-bg-primary border-b border-github-border px-6 py-4 flex items-center justify-between`,children:[(0,I.jsx)(`h2`,{className:`text-lg font-semibold text-github-text-primary`,children:`Keyboard Shortcuts`}),(0,I.jsx)(`button`,{onClick:t,className:`text-github-text-secondary hover:text-github-text-primary transition-colors`,"aria-label":`Close help modal`,children:(0,I.jsx)(xt,{size:20})})]}),(0,I.jsxs)(`div`,{className:`px-6 py-4 grid grid-cols-1 lg:grid-cols-2 gap-6`,children:[(0,I.jsxs)(`section`,{children:[(0,I.jsx)(`h3`,{className:`text-sm font-semibold text-github-text-primary mb-2`,children:`Line Navigation`}),(0,I.jsxs)(`div`,{className:`space-y-1`,children:[(0,I.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,I.jsxs)(`div`,{className:`flex gap-2`,children:[(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`j`}),(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`↓`})]}),(0,I.jsx)(`span`,{className:`text-github-text-secondary`,children:`Next line`})]}),(0,I.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,I.jsxs)(`div`,{className:`flex gap-2`,children:[(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`k`}),(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`↑`})]}),(0,I.jsx)(`span`,{className:`text-github-text-secondary`,children:`Previous line`})]})]})]}),(0,I.jsxs)(`section`,{children:[(0,I.jsx)(`h3`,{className:`text-sm font-semibold text-github-text-primary mb-2`,children:`File Navigation`}),(0,I.jsxs)(`div`,{className:`space-y-1`,children:[(0,I.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`]`}),(0,I.jsx)(`span`,{className:`text-github-text-secondary`,children:`Next file`})]}),(0,I.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`[`}),(0,I.jsx)(`span`,{className:`text-github-text-secondary`,children:`Previous file`})]}),(0,I.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`Shift`}),(0,I.jsx)(`span`,{className:`text-github-text-muted`,children:`+`}),(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`[`})]}),(0,I.jsx)(`span`,{className:`text-github-text-secondary`,children:`Jump to first file`})]}),(0,I.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`Shift`}),(0,I.jsx)(`span`,{className:`text-github-text-muted`,children:`+`}),(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`]`})]}),(0,I.jsx)(`span`,{className:`text-github-text-secondary`,children:`Jump to last file`})]})]})]}),(0,I.jsxs)(`section`,{children:[(0,I.jsx)(`h3`,{className:`text-sm font-semibold text-github-text-primary mb-2`,children:`Chunk Navigation`}),(0,I.jsxs)(`div`,{className:`space-y-1`,children:[(0,I.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`n`}),(0,I.jsx)(`span`,{className:`text-github-text-secondary`,children:`Next change chunk (added/deleted lines)`})]}),(0,I.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`p`}),(0,I.jsx)(`span`,{className:`text-github-text-secondary`,children:`Previous change chunk (added/deleted lines)`})]})]})]}),(0,I.jsxs)(`section`,{children:[(0,I.jsx)(`h3`,{className:`text-sm font-semibold text-github-text-primary mb-2`,children:`Comment Navigation`}),(0,I.jsxs)(`div`,{className:`space-y-1`,children:[(0,I.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`N`}),(0,I.jsx)(`span`,{className:`text-github-text-secondary`,children:`Next comment`})]}),(0,I.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`P`}),(0,I.jsx)(`span`,{className:`text-github-text-secondary`,children:`Previous comment`})]})]})]}),(0,I.jsxs)(`section`,{children:[(0,I.jsx)(`h3`,{className:`text-sm font-semibold text-github-text-primary mb-2`,children:`Side Navigation (Side-by-side mode)`}),(0,I.jsxs)(`div`,{className:`space-y-1`,children:[(0,I.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,I.jsxs)(`div`,{className:`flex gap-2`,children:[(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`h`}),(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`←`})]}),(0,I.jsx)(`span`,{className:`text-github-text-secondary`,children:`Focus left side`})]}),(0,I.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,I.jsxs)(`div`,{className:`flex gap-2`,children:[(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`l`}),(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`→`})]}),(0,I.jsx)(`span`,{className:`text-github-text-secondary`,children:`Focus right side`})]})]})]}),(0,I.jsxs)(`section`,{children:[(0,I.jsx)(`h3`,{className:`text-sm font-semibold text-github-text-primary mb-2`,children:`Comment Management`}),(0,I.jsxs)(`div`,{className:`space-y-1`,children:[(0,I.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`Shift`}),(0,I.jsx)(`span`,{className:`text-github-text-muted`,children:`+`}),(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`L`})]}),(0,I.jsx)(`span`,{className:`text-github-text-secondary`,children:`View all comments list`})]}),(0,I.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`Shift`}),(0,I.jsx)(`span`,{className:`text-github-text-muted`,children:`+`}),(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`C`})]}),(0,I.jsx)(`span`,{className:`text-github-text-secondary`,children:`Copy all comments prompt`})]}),(0,I.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`Shift`}),(0,I.jsx)(`span`,{className:`text-github-text-muted`,children:`+`}),(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`D`})]}),(0,I.jsx)(`span`,{className:`text-github-text-secondary`,children:`Delete all comments`})]})]})]}),(0,I.jsxs)(`section`,{children:[(0,I.jsx)(`h3`,{className:`text-sm font-semibold text-github-text-primary mb-2`,children:`Actions`}),(0,I.jsxs)(`div`,{className:`space-y-1`,children:[(0,I.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`v`}),(0,I.jsx)(`span`,{className:`text-github-text-secondary`,children:`Toggle viewed state of current (or hovered) file`})]}),(0,I.jsxs)(`div`,{className:`flex justify-between gap-4 text-sm`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`Shift`}),(0,I.jsx)(`span`,{className:`text-github-text-muted`,children:`+`}),(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`V`})]}),(0,I.jsx)(`span`,{className:`text-github-text-secondary text-right`,children:`Mark file as viewed and go to next unviewed file`})]}),(0,I.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`Shift`}),(0,I.jsx)(`span`,{className:`text-github-text-muted`,children:`+`}),(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`R`})]}),(0,I.jsx)(`span`,{className:`text-github-text-secondary`,children:`Refresh diff when changes detected`})]}),(0,I.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`c`}),(0,I.jsx)(`span`,{className:`text-github-text-secondary`,children:`Add comment at current line`})]}),(0,I.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`.`}),(0,I.jsx)(`span`,{className:`text-github-text-secondary`,children:`Move cursor to center of viewport`})]}),(0,I.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,I.jsx)(`kbd`,{className:`px-2 py-1 bg-github-bg-tertiary border border-github-border rounded text-github-text-primary font-mono`,children:`?`}),(0,I.jsx)(`span`,{className:`text-github-text-secondary`,children:`Show/hide this help`})]})]})]}),(0,I.jsx)(`div`,{className:`pt-4 border-t border-github-border lg:col-span-2`,children:(0,I.jsx)(`p`,{className:`text-xs text-github-text-secondary`,children:`Shortcuts are disabled when typing in input fields.`})})]})]})]}):null}function sx({style:e}){return(0,I.jsxs)(`svg`,{style:e,viewBox:`0 0 720 190`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,"aria-label":`difit`,role:`img`,children:[(0,I.jsx)(`path`,{fillRule:`evenodd`,clipRule:`evenodd`,d:`M440.487 5.90627C432.164 9.01695 427.318 16.2817 427.318 25.649C427.318 35.9474 433.206 43.6458 442.714 45.7819C451.336 47.7188 459.606 44.3893 464.84 36.8737C466.923 33.8843 467.35 32.4073 467.606 27.3105C467.773 23.9957 467.492 20.0154 466.983 18.4654C465.699 14.5629 460.869 9.13088 456.854 7.07513C452.57 4.88086 444.73 4.32102 440.487 5.90627ZM596.658 6.653C588.927 9.55794 584.572 15.4908 583.887 24.0465C583.17 33.0212 586.83 39.8868 594.382 43.7278C603.739 48.4877 615.574 44.5081 620.482 34.9515C625.35 25.4728 622.15 13.4916 613.37 8.32678C608.986 5.74808 601.154 4.96365 596.658 6.653ZM368.585 7.68006C367.464 8.80629 367.302 12.903 367.302 40.2286V71.4878L363.832 68.1329C353.432 58.0787 335.595 52.668 319.246 54.6082C310.542 55.641 299.81 59.1369 293.3 63.0607C278.56 71.9427 266.453 89.5576 263.139 106.945C261.765 114.155 261.602 129.431 262.825 136.365C265.723 152.796 274.795 168.36 286.716 177.355C298.275 186.077 310.237 190 325.274 190C340.687 190 353.943 185.273 362.869 176.594L367.302 172.284V178.215C367.302 186.902 366.946 186.724 384.303 186.709C392.243 186.702 399.29 186.347 399.964 185.919C401.04 185.236 401.189 174.47 401.189 97.1224C401.189 23.7236 401.003 8.87842 400.068 7.74809C398.433 5.77021 370.547 5.71037 368.585 7.68006ZM526.937 7.94153C519.783 10.0325 515.359 12.5834 510.029 17.6867C501.959 25.4129 498.766 34.4597 498.766 49.5975V58.8517H490.659C484.378 58.8517 482.263 59.1418 481.268 60.1394C480.214 61.1976 479.986 63.6558 479.986 73.91C479.986 82.5264 480.289 86.6977 480.966 87.3764C481.601 88.0141 484.903 88.36 490.356 88.36H498.766V136.692C498.766 183.638 498.811 185.048 500.345 185.873C502.433 186.994 529.394 186.994 531.482 185.873C533.016 185.048 533.061 183.638 533.061 136.692V88.36H549.334C563.038 88.36 565.809 88.1568 566.89 87.0723C568.782 85.1723 568.782 62.0394 566.89 60.1394C565.808 59.0541 563.029 58.8517 549.231 58.8517H532.856L533.216 51.9721C533.604 44.5499 534.721 41.9147 538.546 39.3958C540.377 38.1901 543.049 37.904 554.661 37.6737C562.626 37.5155 569.018 37.0343 569.602 36.5483C570.892 35.4761 571.046 10.3579 569.777 7.9776C568.978 6.47923 567.918 6.39562 550.384 6.45054C535.269 6.49808 530.93 6.77431 526.937 7.94153ZM654.931 26.4834C653.136 27.7662 653.094 28.1572 653.094 43.3245V58.8517H644.567C633.342 58.8517 633.497 58.6443 633.497 73.6059C633.497 88.5674 633.342 88.36 644.567 88.36H653.094V122.636C653.094 159.998 653.439 163.935 657.362 171.354C661.848 179.838 669.111 184.99 680.857 188.022C687.996 189.866 707.647 189.269 714.309 187.007C719.756 185.158 719.86 184.87 719.969 171.298C720.082 157.364 720.441 157.791 709.174 158.48C695.386 159.324 689.341 156.938 687.388 149.883C686.927 148.214 686.58 134.435 686.577 117.663L686.572 88.36H702.068H717.564L718.87 86.3592C719.946 84.7108 720.129 82.3461 719.91 72.9575C719.719 64.8279 719.321 61.1689 718.522 60.2041C717.553 59.0345 715.315 58.8517 701.987 58.8517H686.572L686.546 43.8926C686.526 31.8556 686.28 28.613 685.288 27.2941C684.156 25.7884 682.945 25.6351 670.412 25.4129C658.94 25.2088 656.476 25.3793 654.931 26.4834ZM431.459 60.1394C430.316 61.2877 430.178 68.0001 430.188 121.82C430.197 168.838 430.429 182.667 431.232 184.262L432.264 186.311L446.657 186.535C458.941 186.725 461.242 186.567 462.353 185.452C463.521 184.279 463.655 177.845 463.655 122.786C463.655 68.0985 463.515 61.2877 462.372 60.1394C460.469 58.2287 433.362 58.2287 431.459 60.1394ZM587.799 60.4369C587.238 61.4894 586.954 82.56 586.954 123.084C586.954 177.502 587.093 184.285 588.236 185.434C590.138 187.342 616.431 187.342 618.333 185.434C619.476 184.285 619.615 177.447 619.615 122.482C619.615 75.6149 619.38 60.5828 618.636 59.8353C617.947 59.1443 613.344 58.8517 603.15 58.8517C589.644 58.8517 588.586 58.9607 587.799 60.4369ZM347.956 87.3469C362.023 93.9543 369.138 107.306 367.775 124.535C366.623 139.097 359.678 149.866 347.83 155.463C337.073 160.544 325.541 160.523 315.049 155.403C293.381 144.83 288.765 112.315 306.417 94.5961C313.92 87.0641 322.021 84.1412 334.301 84.5354C341.49 84.7666 343.224 85.124 347.956 87.3469Z`,fill:`currentColor`}),(0,I.jsx)(`path`,{fillRule:`evenodd`,clipRule:`evenodd`,d:`M9.42299 0.744751C4.61699 2.15275 2.03999 5.66375 0.956994 12.2768C-0.369006 20.3728 -0.294006 170.791 1.03899 176.572C2.29699 182.031 4.81699 185.308 9.65399 187.774C13.265 189.615 16.865 189.684 108.63 189.684C163.129 189.684 204.095 189.304 204.41 188.795C206 188.5 206 188.795 207.5 188C211.167 187.079 216.779 180.138 218.005 175.584C218.682 173.068 218.939 143.952 218.756 90.4718C218.487 11.7478 218.417 9.10275 216.535 6.62675C215.466 5.22075 213.441 3.19575 212.035 2.12675C209.546 0.23575 206.839 0.17975 110.978 0.0167504C55.373 -0.0782496 11.148 0.239751 9.42299 0.744751ZM203.778 14.8838C205.558 16.6638 205.509 172.577 203.728 175.005C202.577 176.574 198.865 176.688 156.978 176.446L111.478 176.184L111.226 138.684L110.974 101.184H84.059C69.255 101.184 56.808 101.52 56.397 101.931C55.986 102.343 60.674 107.82 66.814 114.104C72.954 120.388 77.978 126.202 77.978 127.026C77.978 129.577 74.769 134.267 71.896 135.916C69.609 137.229 68.75 137.278 66.704 136.217C63.533 134.572 28.705 99.1448 27.757 96.5998C27.36 95.5348 27.491 93.4308 28.049 91.9238C28.955 89.4768 68.498 49.6838 70.024 49.6838C70.366 49.6838 72.356 51.1627 74.447 52.9697C77.589 55.6867 78.118 56.6658 77.498 58.6198C77.086 59.9198 72.075 65.8308 66.363 71.7568C60.651 77.6818 55.978 83.0148 55.978 83.6068C55.978 84.3488 64.068 84.6838 81.952 84.6838H107.927H110.666C111.144 82.5 110.978 73.4537 110.978 46.2337V13.6838H156.778C191.067 13.6838 202.88 13.9858 203.778 14.8838ZM148.803 52.7217C146.51 54.0597 144.845 59.5997 145.74 62.9107C146.146 64.4107 150.657 69.9308 155.764 75.1788C161.411 80.9788 164.547 84.8988 163.764 85.1788C163.057 85.4318 151.549 85.7608 138.19 85.9108C117.896 86.1388 113.747 86.4308 112.956 87.6838C112.435 88.5088 112.002 91.7228 111.993 94.8268C111.982 99.0598 112.373 100.622 113.56 101.077C114.43 101.411 126.13 101.684 139.56 101.684C156.121 101.684 163.978 102.026 163.978 102.746C163.978 103.33 160.187 107.607 155.554 112.251C146.244 121.582 144.276 125.371 146.069 130.514C147.321 134.107 149.576 135.684 153.463 135.684C155.522 135.684 159.843 131.902 173.778 117.904C191.699 99.9008 194.978 96.0678 194.978 93.1208C194.978 91.1338 157.422 53.8238 154.163 52.5728C151.322 51.4818 150.908 51.4937 148.803 52.7217Z`,fill:`currentColor`})]})}function cx({shouldReload:e,isReloading:t,onReload:n,changeType:r,className:i=``,compact:a=!1}){return e?(0,I.jsxs)(`button`,{onClick:n,disabled:t,className:`
|
|
64
64
|
flex items-center gap-1.5 text-xs rounded-md border ${i} ${a?`px-2 py-2`:`px-3 py-1.5`}
|
|
65
65
|
${t?`bg-github-text-primary text-github-bg-primary border-github-text-primary cursor-not-allowed`:`bg-github-text-primary text-github-bg-primary border-github-text-primary`}
|
|
66
66
|
`,title:`${(()=>{switch(r){case`commit`:return`New commits available`;case`staging`:return`Staging changes detected`;case`file`:return`File changes detected`;default:return`Changes detected`}})()} - Click to refresh`,"aria-label":a?`Refresh`:void 0,children:[(0,I.jsx)(mt,{size:12,className:`${t?`animate-spin`:``}`}),a?(0,I.jsx)(`span`,{className:`sr-only`,children:`Refresh`}):`Refresh`]}):null}var lx=new Set([`merge-base`]),ux=[];function dx({label:e,value:t,resolvedValue:n,onChange:r,options:i,disabledValues:a=ux}){let[o,s]=(0,F.useState)(!1),{refs:c,floatingStyles:l,context:u}=xc({open:o,onOpenChange:s,middleware:[is(4),os(),as({padding:8})],whileElementsMounted:qo}),{getReferenceProps:d,getFloatingProps:f}=Tc([Ms(u,{handleClose:Ic()}),hc(u),Cc(u),yc(u),Dc(u)]),p=t===`working`&&a.includes(`staged`)||t===`staged`&&a.includes(`working`),m=i.specialOptions.filter(e=>!lx.has(e.value)),h=()=>{let e=m.find(e=>e.value===t);if(e)return e.label;let n=i.branches.find(e=>e.name===t);if(n)return`${n.name}${n.current?` (current)`:``}`;let r=i.commits.find(e=>e.shortHash===t||e.hash===t);return r?`${r.shortHash} - ${r.message}`:t||`Select...`},g=e=>{r(e),s(!1)},_=e=>a.includes(e),v=(e,t)=>[`w-full text-left px-3 py-2 text-xs focus:outline-none transition-colors`,e?`hover:bg-diff-selected-bg focus:bg-diff-selected-bg`:`hover:bg-github-bg-tertiary focus:bg-github-bg-tertiary`,e?`bg-diff-selected-bg border-l-4 border-l-diff-selected-border font-semibold pl-2`:``,t?`opacity-50 cursor-not-allowed`:`cursor-pointer`].join(` `),y=(e,r)=>e===t||r===t?!0:n?e===n||r===n:!1,b=()=>{let e=0,n=m.findIndex(e=>e.value===t);if(n!==-1)return n;if(e+=m.length,!p){let n=i.commits.findIndex(e=>e.shortHash===t);if(n!==-1)return e+n;e+=i.commits.length;let r=i.branches.findIndex(e=>e.name===t);if(r!==-1)return e+r}return 0};return(0,I.jsxs)(I.Fragment,{children:[(0,I.jsxs)(`button`,{ref:c.setReference,type:`button`,className:`flex items-center gap-1.5 cursor-pointer group`,"aria-haspopup":`listbox`,"aria-expanded":o,...d(),children:[(0,I.jsxs)(`span`,{className:`text-xs text-github-text-secondary`,children:[e,`:`]}),(0,I.jsxs)(`div`,{className:`flex items-center gap-1 px-2 py-1 bg-github-bg-tertiary border border-github-border rounded hover:border-github-text-secondary transition-colors`,children:[(0,I.jsx)(`code`,{className:`text-xs text-github-text-primary max-w-[150px] truncate`,children:h()}),(0,I.jsx)(He,{size:12,className:`text-github-text-secondary group-hover:text-github-text-primary transition-colors`})]})]}),o&&(0,I.jsx)(ec,{children:(0,I.jsx)(dc,{context:u,modal:!1,initialFocus:b(),children:(0,I.jsxs)(`div`,{ref:c.setFloating,style:l,className:`bg-github-bg-secondary border border-github-border rounded shadow-lg z-50 w-[360px] max-h-[400px] overflow-y-auto`,...f(),children:[m.length>0&&(0,I.jsxs)(`div`,{className:`border-b border-github-border`,children:[(0,I.jsx)(`div`,{className:`px-3 py-2 text-xs font-semibold text-github-text-secondary bg-github-bg-tertiary`,children:`Special`}),m.map(e=>(0,I.jsx)(`button`,{onClick:()=>g(e.value),disabled:_(e.value),className:v(e.value===t,_(e.value)),children:e.label},e.value))]}),!p&&i.commits.length>0&&(0,I.jsxs)(`div`,{className:`border-b border-github-border`,children:[(0,I.jsx)(`div`,{className:`px-3 py-2 text-xs font-semibold text-github-text-secondary bg-github-bg-tertiary`,children:`Recent Commits`}),i.commits.map(e=>(0,I.jsx)(`button`,{onClick:()=>g(e.shortHash),disabled:_(e.shortHash),className:v(y(e.shortHash,e.hash),_(e.shortHash)),children:(0,I.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,I.jsx)(`code`,{className:`text-xs text-github-text-primary font-mono whitespace-nowrap`,children:e.shortHash}),(0,I.jsx)(`span`,{className:`text-xs text-github-text-secondary flex-1 break-words`,children:e.message})]})},e.hash))]}),!p&&i.branches.length>0&&(0,I.jsxs)(`div`,{children:[(0,I.jsx)(`div`,{className:`px-3 py-2 text-xs font-semibold text-github-text-secondary bg-github-bg-tertiary`,children:`Branches`}),i.branches.map(e=>(0,I.jsx)(`button`,{onClick:()=>g(e.name),disabled:_(e.name),className:v(e.name===t,_(e.name)),children:(0,I.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,I.jsx)(`span`,{className:`text-github-text-primary`,children:e.name}),e.current&&(0,I.jsx)(`span`,{className:`text-xs text-github-text-muted`,children:`(current)`})]})},e.name))]})]})})})]})}function fx({isOpen:e,onClose:t,options:n,selection:r,resolvedBaseRevision:i,resolvedTargetRevision:a,onApply:o}){let[s,c]=(0,F.useState)(r),{enableScope:l,disableScope:u}=we(),d=s.baseCommitish,f=s.targetCommitish;(0,F.useEffect)(()=>{c(r)},[r]),(0,F.useEffect)(()=>(e?u(`navigation`):l(`navigation`),()=>{l(`navigation`)}),[e,l,u]);let p=(0,F.useMemo)(()=>{let e=a||f,t=n.commits.findIndex(t=>t.shortHash===e||t.hash===e);if(t===-1)return f?[f]:[];let r=n.commits.slice(0,t+1).map(e=>e.shortHash);return f&&!r.includes(f)&&r.push(f),r.includes(`working`)||r.push(`working`),r},[f,a,n.commits]),m=(0,F.useMemo)(()=>{let e=i||d,t=n.commits.findIndex(t=>t.shortHash===e||t.hash===e);if(t===-1)return d?[d]:[];let r=n.commits.slice(t).map(e=>e.shortHash);return d&&!r.includes(d)&&r.push(d),r},[d,i,n.commits]);return e?(0,I.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center`,children:[(0,I.jsx)(`div`,{className:`absolute inset-0 bg-black/40`,onClick:t}),(0,I.jsxs)(`div`,{className:`relative bg-github-bg-secondary border border-github-border rounded-lg shadow-lg w-full max-w-lg mx-4`,children:[(0,I.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-github-border`,children:[(0,I.jsx)(`h2`,{className:`text-lg font-semibold text-github-text-primary`,children:`Detailed Diff`}),(0,I.jsx)(`button`,{onClick:t,className:`text-github-text-secondary hover:text-github-text-primary p-1`,"aria-label":`Close detailed diff`,children:(0,I.jsx)(xt,{size:18})})]}),(0,I.jsxs)(`div`,{className:`p-4 space-y-4`,children:[(0,I.jsxs)(`div`,{className:`flex items-center justify-center gap-3`,children:[(0,I.jsx)(dx,{label:`Base`,value:d,resolvedValue:i,onChange:e=>c(Xt(e,s.targetCommitish)),options:n,disabledValues:p}),(0,I.jsx)(`span`,{className:`text-github-text-muted`,children:`...`}),(0,I.jsx)(dx,{label:`Target`,value:f,resolvedValue:a,onChange:e=>c(Xt(s.baseCommitish,e)),options:n,disabledValues:m})]}),(0,I.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,I.jsx)(`button`,{onClick:t,className:`px-3 py-1.5 text-xs font-medium rounded border border-github-border text-github-text-secondary hover:text-github-text-primary transition-colors`,type:`button`,children:`Cancel`}),(0,I.jsx)(`button`,{onClick:()=>{o(Xt(s.baseCommitish,s.targetCommitish)),t()},className:`px-3 py-1.5 text-xs font-medium rounded bg-github-accent text-white hover:bg-github-accent/90 transition-colors`,type:`button`,children:`Apply`})]})]})]})]}):null}var px=[{id:`vscode`,label:`VS Code`,command:`code`,argsTemplate:`-g %file:%line`},{id:`cursor`,label:`Cursor`,command:`cursor`,argsTemplate:`-g %file:%line`},{id:`zed`,label:`Zed`,command:`zed`,argsTemplate:`%file:%line`},{id:`textmate`,label:`TextMate`,command:`mate`,argsTemplate:`-l %line %file`},{id:`bbedit`,label:`BBEdit`,command:`bbedit`,argsTemplate:`+%line %file`},{id:`emacs`,label:`Emacs`,command:`emacsclient`,argsTemplate:`--no-wait +%line %file`},{id:`macvim`,label:`MacVim`,command:`mvim`,argsTemplate:`--remote-silent +%line %file`},{id:`sublime`,label:`Sublime Text`,command:`subl`,argsTemplate:`%file:%line`},{id:`nova`,label:`Nova`,command:`nova`,argsTemplate:`open %file -l %line`},{id:`custom`,label:`Custom…`,command:``,argsTemplate:``},{id:`none`,label:`Hide “Open in editor” button`,command:``,argsTemplate:``}],mx=px.find(e=>e.id===`vscode`)??px[0],hx=e=>{let t=(e??`vscode`).toLowerCase();return px.find(e=>e.id===t)??mx};function gx(e){return e.replaceAll(`\\`,`/`).replace(/^\.\/+/,``)}function _x(e){return e.replace(/[|\\{}()[\]^$+?.]/g,`\\$&`)}function vx(e){let t=new Set;return e.forEach(e=>{let n=e.trim();n&&t.add(gx(n))}),[...t]}function yx(e){return gx(e).split(`/`).filter(e=>e.length>0)}function bx(e,t){let n=`^`;for(let e of t){if(e===`*`){n+=`.*`;continue}if(e===`?`){n+=`.`;continue}n+=_x(e)}return n+=`$`,new RegExp(n).test(e)}function xx(e,t,n=0,r=0){if(r>=t.length)return n>=e.length;let i=t[r];if(!i)return n>=e.length;if(i===`**`){let i=r+1;if(i>=t.length)return!0;for(let r=n;r<=e.length;r+=1)if(xx(e,t,r,i))return!0;return!1}let a=e[n];return!a||!bx(a,i)?!1:xx(e,t,n+1,r+1)}function Sx(e){return Array.isArray(e)?vx(e.filter(e=>typeof e==`string`)):[]}function Cx(e){return vx(e.split(/\r?\n/))}function wx(e){return Sx(e).join(`
|
|
@@ -77,6 +77,6 @@ src/generated/**`,className:`w-full p-3 bg-github-bg-tertiary border border-gith
|
|
|
77
77
|
`);return`${e.header}\n${t}`}).join(`
|
|
78
78
|
|
|
79
79
|
`);return`${e.path}\n${e.status}\n${t}`}function oS(e){return{id:e.id,file:e.filePath,line:typeof e.position.line==`number`?e.position.line:[e.position.line.start,e.position.line.end],side:e.position.side,createdAt:e.createdAt,updatedAt:e.updatedAt,codeContent:e.codeSnapshot?.content,messages:e.messages}}function sS(e){let t=e.messages[0];return t?{id:e.id,filePath:e.filePath,body:t.body,author:t.author,createdAt:t.createdAt,updatedAt:t.updatedAt,position:e.position,codeSnapshot:e.codeSnapshot}:null}function cS(e,t,n,r,i,a){let[o,s]=(0,F.useState)([]),[c,l]=(0,F.useState)(!1),u=(0,F.useCallback)(()=>!e||!t?null:nS.getDiffContextData(e,t,n,r,i,a),[e,t,n,r,i,a]),d=(0,F.useCallback)(()=>{if(!e||!t)return null;let n=new Date().toISOString();return{version:2,baseCommitish:e,targetCommitish:t,baseMode:a,createdAt:n,lastModifiedAt:n,threads:[],viewedFiles:[],appliedCommentImportIds:[]}},[e,t,a]);(0,F.useEffect)(()=>{if(!e||!t){s([]),l(!1);return}s(u()?.threads||nS.getCommentThreads(e,t,n,r,i,a)),l(!0)},[e,t,n,r,i,a,u]);let f=(0,F.useCallback)(o=>{!e||!t||(nS.saveCommentThreads(e,t,o,n,r,i,a),s(o),l(!0))},[e,t,n,r,i,a]),p=(0,F.useCallback)(e=>{f(e)},[f]),m=(0,F.useCallback)(e=>{let t=new Date().toISOString(),n=Et(),r={id:n,filePath:e.filePath,createdAt:t,updatedAt:t,position:{side:e.side,line:e.line},codeSnapshot:e.codeSnapshot||{content:``,language:Ar(e.filePath)},messages:[{id:n,body:e.body,author:`User`,createdAt:t,updatedAt:t}]};return f([...o,r]),r},[f,o]),h=(0,F.useCallback)(e=>{let t=sS(m(e));if(!t)throw Error(`Failed to create root comment`);return t},[m]),g=(0,F.useCallback)(({threadId:e,body:t})=>{let n=new Date().toISOString();f(o.map(r=>r.id===e?{...r,updatedAt:n,messages:[...r.messages,{id:Et(),body:t,author:`User`,createdAt:n,updatedAt:n}]}:r))},[f,o]),_=(0,F.useCallback)(e=>{f(o.filter(t=>t.id!==e))},[f,o]),v=(0,F.useCallback)(e=>{_(e)},[_]),y=(0,F.useCallback)((e,t)=>{let n=o.find(t=>t.id===e);if(!n)return;let r=n.messages.findIndex(e=>e.id===t);if(r<0)return;if(r===0){_(e);return}let i=new Date().toISOString();f(o.map(n=>n.id===e?{...n,updatedAt:i,messages:n.messages.filter(e=>e.id!==t)}:n))},[_,f,o]),b=(0,F.useCallback)((e,t,n)=>{let r=new Date().toISOString();f(o.map(i=>i.id===e?{...i,updatedAt:r,messages:i.messages.map(e=>e.id===t?{...e,body:n,updatedAt:r}:e)}:i))},[f,o]),x=(0,F.useCallback)((e,t)=>{b(e,e,t)},[b]),S=(0,F.useCallback)(()=>{f([])},[f]),C=(0,F.useCallback)(o=>{if(!o?.resetAppliedCommentImportIds){S();return}let c=u()||d();if(!c||!e||!t)return;let l={...c,threads:[],appliedCommentImportIds:[]};nS.saveDiffContextData(e,t,l,n,r,i,a),s([])},[e,t,r,S,d,n,u,i,a]),w=(0,F.useCallback)((o,c)=>{if(!e||!t||o.length===0||c.length===0)return[];let l=u()||d();if(!l)return[];if(l.appliedCommentImportIds.includes(c))return s(l.threads),[];let f=Jt(l.threads,o),p={...l,threads:f.threads,appliedCommentImportIds:[...l.appliedCommentImportIds,c]};return nS.saveDiffContextData(e,t,p,n,r,i,a),s(f.threads),f.warnings},[e,t,r,d,n,u,i,a]),T=(0,F.useCallback)(e=>{let t=o.find(t=>t.id===e);return t?qx(oS(t)):``},[o]),E=(0,F.useCallback)(e=>T(e),[T]),D=(0,F.useCallback)(()=>Jx(o.map(oS)),[o]);return{hasLoadedComments:c,comments:o.map(e=>sS(e)).filter(e=>e!==null),threads:o,replaceThreads:p,addComment:h,addThread:m,removeComment:v,replyToThread:g,removeThread:_,updateComment:x,removeMessage:y,updateMessage:b,clearAllComments:C,applyCommentImports:w,generatePrompt:E,generateThreadPrompt:T,generateAllCommentsPrompt:D}}var lS=20;async function uS(e,t){let n=await fetch(`/api/blob/${encodeURIComponent(e)}?ref=${encodeURIComponent(t)}`);if(!n.ok)throw Error(`Failed to fetch file content: ${n.statusText}`);let r=(await n.text()).split(`
|
|
80
|
-
`);return r.length>0&&r[r.length-1]===``&&r.pop(),{lines:r,totalLines:r.length}}async function dS(e,t,n,r){let i=encodeURIComponent(e),a=new URLSearchParams;t&&a.set(`oldRef`,t),n&&a.set(`newRef`,n),r&&r!==e&&a.set(`oldPath`,r);let o=await fetch(`/api/line-count/${i}?${a}`);if(!o.ok)throw Error(`Failed to fetch line count: ${o.statusText}`);return o.json()}function fS({baseCommitish:e,targetCommitish:t,diffIdentity:n}){let[r,i]=(0,F.useState)({}),[a,o]=(0,F.useState)(!1),[s,c]=(0,F.useState)(null),[l,u]=(0,F.useState)(0),d=(0,F.useRef)(new Map),f=(0,F.useRef)({});f.current=r;let p=(0,F.useRef)(0);(0,F.useEffect)(()=>{p.current+=1,d.current.clear(),f.current={},i({}),o(!1),c(null),u(0)},[e,t,n]);let m=(0,F.useCallback)(async n=>{let r=p.current,i=`${r}:${n.path}`,a=d.current.get(i);if(a)return a;let o=(async()=>{let i=f.current[n.path];if(i?.oldContent&&i?.newContent)return i;let a={...i,expandedRanges:i?.expandedRanges||[]};if(n.status!==`added`&&e){let t=n.oldPath||n.path;try{let{lines:n,totalLines:i}=await uS(t,e);if(p.current!==r)return null;a.oldContent=n,a.oldTotalLines=i}catch(e){console.error(`Failed to fetch old file content:`,e),a.oldContent=[],a.oldTotalLines=0}}if(n.status!==`deleted`&&t)try{let{lines:e,totalLines:i}=await uS(n.path,t);if(p.current!==r)return null;a.newContent=e,a.newTotalLines=i}catch(e){console.error(`Failed to fetch new file content:`,e),a.newContent=[],a.newTotalLines=0}return a})();d.current.set(i,o);try{return await o}finally{d.current.delete(i)}},[e,t]),h=(0,F.useCallback)(e=>{c(e),u(e=>e+1)},[]),g=(0,F.useCallback)(async(e,t,n,r=lS)=>{let a=p.current;o(!0);try{let o=await m(e);if(!o||p.current!==a)return;i(i=>{let a=i[e.path],s=a?.expandedRanges||o.expandedRanges||[],c=s.findIndex(e=>e.chunkIndex===t&&e.direction===n),l=[...s];if(c>=0&&l[c]){let e=l[c];l[c]={chunkIndex:e.chunkIndex,direction:e.direction,count:e.count+r}}else l.push({chunkIndex:t,direction:n,count:r});return{...i,[e.path]:{oldContent:a?.oldContent??o.oldContent,newContent:a?.newContent??o.newContent,oldTotalLines:a?.oldTotalLines??o.oldTotalLines,newTotalLines:a?.newTotalLines??o.newTotalLines,expandedRanges:l}}}),h(e.path)}finally{o(!1)}},[m,h]),_=(0,F.useCallback)(async(e,t,n)=>{let r=p.current;o(!0);try{let a=await m(e);if(!a||p.current!==r)return;i(r=>{let i=r[e.path],o=[...i?.expandedRanges||a.expandedRanges||[]],s=o.findIndex(e=>e.chunkIndex===t&&e.direction===`up`),c=o.findIndex(e=>e.chunkIndex===t-1&&e.direction===`down`),l=0,u=0;s>=0&&o[s]&&(l=o[s].count),c>=0&&o[c]&&(u=o[c].count);let d=l+u+n,f=o.filter(e=>!(e.chunkIndex===t-1&&e.direction===`down`)),p=f.findIndex(e=>e.chunkIndex===t&&e.direction===`up`);return p>=0&&f[p]?f[p]={chunkIndex:t,direction:`up`,count:d}:f.push({chunkIndex:t,direction:`up`,count:d}),{...r,[e.path]:{oldContent:i?.oldContent??a.oldContent,newContent:i?.newContent??a.newContent,oldTotalLines:i?.oldTotalLines??a.oldTotalLines,newTotalLines:i?.newTotalLines??a.newTotalLines,expandedRanges:f}}}),h(e.path)}finally{o(!1)}},[m,h]),v=(0,F.useCallback)(async n=>{let r=p.current,a=f.current[n.path];if(a?.oldTotalLines!==void 0||a?.newTotalLines!==void 0)return;let o=n.status===`added`?void 0:e,s=n.status===`deleted`?void 0:t;if(!(!o&&!s))try{let{oldLineCount:e,newLineCount:t}=await dS(n.path,o,s,n.oldPath);if(p.current!==r)return;i(r=>{let i=r[n.path];return i?.oldTotalLines!==void 0||i?.newTotalLines!==void 0?r:{...r,[n.path]:{...i,expandedRanges:i?.expandedRanges||[],oldTotalLines:e,newTotalLines:t}}}),h(n.path)}catch(e){console.error(`Failed to prefetch line count:`,e)}},[e,t,h]),y=(0,F.useCallback)((e,t,n)=>{let i=r[e];return i&&i.expandedRanges.find(e=>e.chunkIndex===t&&e.direction===n)?.count||0},[r]),b=(0,F.useCallback)((e,t,n)=>{if(e.status===`added`||e.status===`deleted`)return 0;let r=e.chunks[n-1],i;if(!r)i=t.oldStart-1;else{let e=r.oldStart+r.oldLines;i=t.oldStart-e}let a=y(e.path,n,`up`),o=n>0?y(e.path,n-1,`down`):0;return Math.max(0,i-a-o)},[y]),x=(0,F.useCallback)((e,t,n)=>{if(e.status===`added`||e.status===`deleted`)return 0;let i=r[e.path],a=i?.oldTotalLines||i?.newTotalLines;if(a===void 0)return e.chunks[n+1]?0:-1;if(e.chunks[n+1])return 0;let o=a-(t.oldStart+t.oldLines-1),s=y(e.path,n,`down`);return Math.max(0,o-s)},[r,y]),S=(0,F.useCallback)((e,t,n)=>{let i=r[e.path];if(!i)return t;let a=y(e.path,n,`up`),o=y(e.path,n,`down`);if(a===0&&o===0)return t;let s=i.oldContent||[],c=i.newContent||[],l=[];if(a>0){let r=e.chunks[n-1],i;i=r?r.oldStart+r.oldLines-1:Math.max(0,t.oldStart-1-a);let o=t.oldStart-1,u=t.newStart-1,d=Math.min(a,o-i),f=o-d,p=u-d;for(let e=0;e<d;e++){let t=f+e+1,n=p+e+1,r=s[t-1]??c[n-1]??``;l.push({type:`normal`,content:r,oldLineNumber:t,newLineNumber:n,isExpanded:!0})}}if(l.push(...t.lines),o>0){let r=t.oldStart+t.oldLines-1,a=t.newStart+t.newLines-1,u=e.chunks[n+1],d=u?u.oldStart-1:i.oldTotalLines||r,f=Math.min(o,d-r);for(let e=0;e<f;e++){let t=r+e+1,n=a+e+1,i=s[t-1]??c[n-1]??``;l.push({type:`normal`,content:i,oldLineNumber:t,newLineNumber:n,isExpanded:!0})}}let u=l[0],d=l[l.length-1];return{...t,lines:l,oldStart:u?.oldLineNumber??t.oldStart,newStart:u?.newLineNumber??t.newStart,oldLines:(d?.oldLineNumber??t.oldStart+t.oldLines-1)-(u?.oldLineNumber??t.oldStart)+1,newLines:(d?.newLineNumber??t.newStart+t.newLines-1)-(u?.newLineNumber??t.newStart)+1}},[r,y]);return{expandedState:r,isLoading:a,lastUpdatedFilePath:s,lastUpdatedAt:l,expandLines:g,expandAllBetweenChunks:_,prefetchFileContent:v,getMergedChunks:(0,F.useCallback)(e=>{let t=[];for(let n=0;n<e.chunks.length;n++){let r=e.chunks[n];if(!r)continue;let i=S(e,r,n),a=b(e,r,n),o=x(e,r,n),s=t[t.length-1];if(s&&a===0){s.lines=[...s.lines,...i.lines],s.originalIndices.push(n),s.hiddenLinesAfter=o;let e=s.lines[s.lines.length-1];s.oldLines=(e?.oldLineNumber??s.oldStart+s.oldLines-1)-s.oldStart+1,s.newLines=(e?.newLineNumber??s.newStart+s.newLines-1)-s.newStart+1}else t.push({...i,originalIndices:[n],hiddenLinesBefore:a,hiddenLinesAfter:o})}return t},[S,b,x]),getHiddenLinesBefore:b,getHiddenLinesAfter:x}}var pS=function(e){return e.DEFAULT=`default`,e.WORKING=`working`,e.STAGED=`staged`,e.DOT=`dot`,e.SPECIFIC=`specific`,e}({});function mS(e){return e}function hS(e,t){let n=(0,F.useRef)(null),r=(0,F.useRef)(null),i=(0,F.useRef)(0),a=3e3,[o,s]=(0,F.useState)({isWatchEnabled:!1,diffMode:pS.DEFAULT,shouldReload:!1,isReloading:!1,lastChangeTime:null,lastChangeType:null,connectionStatus:`disconnected`}),[c,l]=(0,F.useState)(null),u=(0,F.useCallback)(()=>{if(!n.current)try{let e=new EventSource(mS(`/api/watch`));n.current=e,e.onopen=()=>{console.log(`Connected to file watch service`),s(e=>({...e,connectionStatus:`connected`})),i.current=0,l(null)},e.onmessage=e=>{try{let n=JSON.parse(e.data);switch(n.type){case`connected`:s(e=>({...e,isWatchEnabled:!0,diffMode:n.diffMode,connectionStatus:`connected`}));break;case`reload`:console.log(`File changes detected, showing reload button:`,n.changeType),s(e=>({...e,shouldReload:!0,lastChangeTime:new Date,lastChangeType:n.changeType}));break;case`error`:console.error(`File watch error:`,n.message),l(n.message||`File watch error occurred`);break;case`commentsChanged`:t&&t();break}}catch(e){console.error(`Error parsing watch event:`,e)}},e.onerror=()=>{console.log(`File watch connection lost`),s(e=>({...e,connectionStatus:`disconnected`})),n.current&&=(n.current.close(),null),i.current<5?(s(e=>({...e,connectionStatus:`reconnecting`})),i.current+=1,r.current=setTimeout(()=>{console.log(`Attempting to reconnect to file watch service (${i.current}/5)...`),u()},a)):(console.error(`Max reconnection attempts reached`),l(`Lost connection to file watch service`))}}catch(e){console.error(`Failed to connect to file watch service:`,e),l(`Failed to connect to file watch service`)}},[5,t,a]),d=(0,F.useCallback)(async()=>{if(!o.isReloading){s(e=>({...e,isReloading:!0}));try{e&&await e(),s(e=>({...e,shouldReload:!1,isReloading:!1,lastChangeTime:null,lastChangeType:null}))}catch(e){console.error(`Reload failed:`,e),l(`Failed to reload diff data`),s(e=>({...e,isReloading:!1}))}}},[e,o.isReloading]),f=()=>{n.current&&=(n.current.close(),null),r.current&&=(clearTimeout(r.current),null)};return(0,F.useEffect)(()=>(u(),f),[u]),(0,F.useEffect)(()=>f,[]),{shouldReload:o.shouldReload,isConnected:o.connectionStatus===`connected`,error:c,reload:d,watchState:o}}var gS={SCROLL_CONTAINER:`main.overflow-y-auto`};function _S(e,t){let n=`file-${e.fileIndex}-chunk-${e.chunkIndex}-line-${e.lineIndex}`;return t===`split`?`${n}-${e.side}`:n}function vS(e,t,n){return`${e}:${t}:${n??`any`}`}function yS(e,t){let n=t[e.fileIndex]?.chunks[e.chunkIndex]?.lines[e.lineIndex];return n&&(n.type===`add`||n.type===`delete`||n.type===`normal`)?n.type:null}function bS(e,t){let n=yS(e,t);return n?n===`normal`?!0:n===`delete`?e.side===`left`:n===`add`?e.side===`right`:!1:!1}function xS(e,t){return bS(e,t)?e:{...e,side:e.side===`left`?`right`:`left`}}var SS={VIEWPORT_OFFSET_RATIO:1/3};function CS(e,t,n){let r=[];return t.oldLineNumber!==void 0&&(r.push(vS(e,t.oldLineNumber,`old`)),r.push(vS(e,t.oldLineNumber))),t.newLineNumber!==void 0&&(r.push(vS(e,t.newLineNumber,`new`)),r.push(vS(e,t.newLineNumber))),r.some(e=>n.has(e))}function wS(e,t,n,r){return{line:t=>{let i=e[t.fileIndex];return!i||r?.has(i.path)?!1:n===`unified`||bS(t,e)},chunk:t=>{let n=e[t.fileIndex];if(!n||r?.has(n.path))return!1;let i=n.chunks[t.chunkIndex]?.lines[t.lineIndex];if(!i||i.type===`normal`)return!1;if(t.lineIndex===0)return!0;let a=n.chunks[t.chunkIndex]?.lines[t.lineIndex-1];return!a||a.type===`normal`},comment:n=>{let i=e[n.fileIndex];if(!i||r?.has(i.path))return!1;let a=i.chunks[n.chunkIndex]?.lines[n.lineIndex];return a?CS(i.path,a,t):!1},file:e=>e.chunkIndex===0&&e.lineIndex===0}}function TS(){return e=>{let t=document.getElementById(e);if(!t)return;let n=document.querySelector(gS.SCROLL_CONTAINER);if(!n)throw Error(`Scrollable container (${gS.SCROLL_CONTAINER}) not found`);let r=t.getBoundingClientRect(),i=n.getBoundingClientRect(),a=n.clientHeight,o=n.scrollTop,s=Math.max(i.top,0),c=Math.min(i.bottom,window.innerHeight);if(!(r.top>=s&&r.bottom<=c)){let e=ES(t,n)-a*SS.VIEWPORT_OFFSET_RATIO;n.scrollTop=Math.max(0,e);return}let l=r.bottom>Math.min(i.bottom,window.innerHeight),u=t.offsetTop-n.offsetTop-a*SS.VIEWPORT_OFFSET_RATIO;l&&u>o&&(n.scrollTop=Math.max(0,u))}}function ES(e,t){let n=e,r=0;for(;n&&n!==t&&n.offsetParent;)r+=n.offsetTop,n=n.offsetParent;return n&&n!==t&&(r+=n.offsetTop),r}function DS(e){return e||{fileIndex:0,chunkIndex:0,lineIndex:-1,side:`right`}}function OS(e,t,n){return n&&e.fileIndex===t.fileIndex&&e.chunkIndex===t.chunkIndex&&e.lineIndex===t.lineIndex}function kS(e,t,n){let{fileIndex:r,chunkIndex:i,lineIndex:a}=e,o=n.length,s=0;if(t===`next`)for(a++;s<o;){if(n[r]?.chunks[i]?.lines[a])return{...e,fileIndex:r,chunkIndex:i,lineIndex:a};i++,a=0,n[r]?.chunks[i]||(r++,i=0,a=0,r>=o&&(r=0,s++))}else for(a--;s<o;){if(a<0)if(i--,i<0){r--,r<0&&(r=o-1,s++);let e=n[r];if(e&&e.chunks.length>0){i=e.chunks.length-1;let t=e.chunks[i];a=t&&t.lines.length>0?t.lines.length-1:-1}else i=-1,a=-1}else{let e=n[r]?.chunks[i];a=e&&e.lines.length>0?e.lines.length-1:-1}if(a>=0&&n[r]?.chunks[i]?.lines[a])return{...e,fileIndex:r,chunkIndex:i,lineIndex:a};a<0||a--}return null}function AS(e,t,n,r,i){let a=e,o=!1;for(;a;){let s=kS(a,t,r);if(!s||(a=s,OS(a,e,o)))break;if(o=!0,n(a,r)){let e=xS(a,r);return{position:e,scrollTarget:_S(e,i)}}}return{position:null,scrollTarget:null}}function jS({files:e,comments:t,viewMode:n=St,reviewedFiles:r,onToggleReviewed:i,onCreateComment:a,onCopyAllComments:o,onDeleteAllComments:s,onShowCommentsList:c,onRefresh:l}){let[u,d]=(0,F.useState)(null),[f,p]=(0,F.useState)(!1),m=(0,F.useMemo)(()=>TS(),[]),h=(0,F.useMemo)(()=>{let e=new Map;return t.forEach(t=>{let n=Array.isArray(t.line)?t.line[0]:t.line,r=vS(t.file,n,t.side);e.has(r)||e.set(r,[]),e.get(r)?.push(t)}),e},[t]),g=(0,F.useMemo)(()=>wS(e,h,n,r),[e,h,n,r]),_=(0,F.useCallback)((t,r)=>e.length===0?{position:null,scrollTarget:null}:AS(DS(u),t,r,e,n),[u,e,n]),v=(0,F.useCallback)(e=>t=>{let n=_(t,e);n.position&&(d(n.position),n.scrollTarget&&m(n.scrollTarget))},[_,m]),y=(0,F.useMemo)(()=>v(g.line),[v,g.line]),b=(0,F.useMemo)(()=>v(g.chunk),[v,g.chunk]),x=(0,F.useMemo)(()=>v(g.file),[v,g.file]),S=(0,F.useMemo)(()=>v(g.comment),[v,g.comment]),C=(0,F.useCallback)(t=>{if(!u||n!==`split`)return;let r={...u,side:t},i=e[u.fileIndex]?.chunks[u.chunkIndex]?.lines[u.lineIndex];if(i){if(t===`left`&&i.type===`add`&&u.lineIndex>0){if(e[u.fileIndex]?.chunks[u.chunkIndex]?.lines[u.lineIndex-1]?.type===`delete`){r={...r,lineIndex:u.lineIndex-1},d(r),m(_S(r,n));return}}else if(t===`right`&&i.type===`delete`&&e[u.fileIndex]?.chunks[u.chunkIndex]?.lines[u.lineIndex+1]?.type===`add`){r={...r,lineIndex:u.lineIndex+1},d(r),m(_S(r,n));return}}if(!bS(r,e)){let t=e[u.fileIndex];if(!t)return;let n=t.chunks[u.chunkIndex];if(n){for(let t=u.lineIndex+1;t<n.lines.length;t++){let n={...r,lineIndex:t};if(bS(n,e)){r=n;break}}if(!bS(r,e))for(let t=u.lineIndex-1;t>=0;t--){let n={...r,lineIndex:t};if(bS(n,e)){r=n;break}}}if(!bS(r,e)){for(let n=u.chunkIndex+1;n<t.chunks.length;n++){let i=t.chunks[n];if(i){for(let t=0;t<i.lines.length;t++){let i={...r,chunkIndex:n,lineIndex:t};if(bS(i,e)){r=i;break}}if(bS(r,e))break}}if(!bS(r,e))for(let n=u.chunkIndex-1;n>=0;n--){let i=t.chunks[n];if(i){for(let t=i.lines.length-1;t>=0;t--){let i={...r,chunkIndex:n,lineIndex:t};if(bS(i,e)){r=i;break}}if(bS(r,e))break}}}}d(r),m(_S(r,n))},[u,n,m,e]),w=(0,F.useCallback)(()=>{let t=document.querySelector(gS.SCROLL_CONTAINER);if(!t)return;let r=t.getBoundingClientRect(),i=r.top+r.height/2,a=1/0,o=null;e.forEach((t,s)=>{t.chunks.forEach((t,c)=>{t.lines.forEach((t,l)=>{let u=n===`split`?[`left`,`right`]:[`right`];for(let t of u){let u={fileIndex:s,chunkIndex:c,lineIndex:l,side:t};if(n===`split`&&!bS(u,e))continue;let d=_S(u,n),f=document.getElementById(d);if(f){let e=f.getBoundingClientRect(),t=e.top+e.height/2,n=Math.abs(t-i);e.top<r.bottom&&e.bottom>r.top&&n<a&&(a=n,o=u)}}})})}),o&&d(o)},[e,n,d]),T=(0,F.useCallback)(t=>{if(!t){d(null);return}let r=xS(t,e);d(r),m(_S(r,n))},[e,n,m]),E={scopes:`navigation`,enableOnFormTags:!1,preventDefault:!0};return z(`j, down`,()=>y(`next`),E,[y]),z(`k, up`,()=>y(`prev`),E,[y]),z(`n`,()=>b(`next`),E,[b]),z(`p`,()=>b(`prev`),E,[b]),z(`shift+n`,()=>S(`next`),E,[S]),z(`shift+p`,()=>S(`prev`),E,[S]),z(`]`,()=>x(`next`),{...E,useKey:!0},[x]),z(`[`,()=>x(`prev`),{...E,useKey:!0},[x]),z(`{`,()=>{e.length>0&&(d({fileIndex:0,chunkIndex:0,lineIndex:0,side:n===`split`?`left`:`right`}),m(_S({fileIndex:0,chunkIndex:0,lineIndex:0,side:n===`split`?`left`:`right`},n)))},{...E,useKey:!0},[e,n,m]),z(`}`,()=>{if(e.length>0){let t=e.length-1,r=e[t];r&&r.chunks.length>0&&(d({fileIndex:t,chunkIndex:0,lineIndex:0,side:n===`split`?`left`:`right`}),m(_S({fileIndex:t,chunkIndex:0,lineIndex:0,side:n===`split`?`left`:`right`},n)))}},{...E,useKey:!0},[e,n,m]),z(`h, left`,()=>C(`left`),{...E,enabled:n===`split`},[C,n]),z(`l, right`,()=>C(`right`),{...E,enabled:n===`split`},[C,n]),z(`v`,()=>{if(u){let t=e[u.fileIndex];t&&i(t.path)}},E,[u,e,i]),z(`shift+r`,()=>{l&&l()},E,[l]),z(`c`,()=>{if(u&&a){let t=e[u.fileIndex]?.chunks[u.chunkIndex]?.lines[u.lineIndex];t&&t.type!==`delete`&&a()}},E,[u,e,a]),z(`?`,()=>p(!f),{...E,useKey:!0},[f]),z(`.`,e=>{e.ctrlKey||e.altKey||e.shiftKey||e.metaKey||(w(),e.preventDefault())},{...E,useKey:!0,preventDefault:!1},[w]),z(`shift+c`,()=>{o&&o()},{...E,scopes:[`navigation`,`comments-list`]},[o]),z(`shift+d`,()=>{s&&s()},{...E,scopes:[`navigation`,`comments-list`]},[s]),z(`shift+l`,()=>{c&&c()},E,[c]),{cursor:u,isHelpOpen:f,setIsHelpOpen:p,setCursorPosition:T}}var MS=new Map,NS=0;function PS(e){return MS.has(e)||MS.set(e,`file-${++NS}`),MS.get(e)??``}var FS=8,IS=`1200px 0px`,LS=60,RS=180;function zS({diffData:e,diffScrollContainerRef:t,setDiffData:n}){let[r,i]=(0,F.useState)(new Set),a=(0,F.useRef)(new Set),o=(0,F.useRef)(null),s=(0,F.useRef)(new Map),c=(0,F.useRef)(new Set),l=(0,F.useRef)(null),u=(0,F.useRef)(0);(0,F.useEffect)(()=>{if(!e){let e=new Set;a.current=e,i(e),c.current.clear(),l.current=null;return}let t=`${e.requestedBaseCommitish??``}:${e.requestedTargetCommitish??``}:${e.requestedBaseMode??`direct`}`;if(l.current===t)return;l.current=t;let n=e.files.slice(0,FS).map(e=>e.path),r=new Set(n);a.current=r,i(r),c.current.clear()},[e]);let d=(0,F.useCallback)(e=>{let t=s.current.get(e);t&&o.current&&o.current.unobserve(t),i(t=>{if(t.has(e))return t;let n=new Set(t);return n.add(e),a.current=n,n})},[]),f=(0,F.useCallback)((e,t)=>{let n=o.current,r=s.current.get(e);if(r&&n&&n.unobserve(r),!t){s.current.delete(e);return}s.current.set(e,t),!(a.current.has(e)||!n)&&n.observe(t)},[]);(0,F.useEffect)(()=>{if(o.current&&o.current.disconnect(),!e){o.current=null;return}let n=new IntersectionObserver(e=>{i(t=>{let r=!1,i=new Set(t);return e.forEach(e=>{if(!e.isIntersecting)return;let t=e.target.dataset.filePath;!t||i.has(t)||(i.add(t),n.unobserve(e.target),r=!0)}),r&&(a.current=i),r?i:t})},{root:t.current,rootMargin:IS});return o.current=n,s.current.forEach((e,t)=>{a.current.has(t)||n.observe(e)}),()=>{n.disconnect(),o.current=null}},[e,t]);let p=(0,F.useCallback)(t=>{if(!e)return;let n=e.files.findIndex(e=>e.path===t);if(n<0)return;let r=o.current;i(t=>{let i=!1,o=new Set(t);for(let t=0;t<=n;t++){let n=e.files[t]?.path;if(n&&!o.has(n)){o.add(n),i=!0;let e=s.current.get(n);e&&r&&r.unobserve(e)}}return i&&(a.current=o),i?o:t})},[e]),m=(0,F.useCallback)(n=>{p(n);let r=e?.files.findIndex(e=>e.path===n)??-1,i=e&&r>=0?e.files.slice(0,r+1).map(e=>PS(e.path)):[PS(n)],a=u.current+1;u.current=a;let o=()=>{for(let e of i){let t=document.getElementById(e);if(!t||t.dataset.rendered!==`true`)return!1}return!0},s=()=>{let e=t.current,r=document.getElementById(PS(n));if(!e||!r)return!1;let i=e.getBoundingClientRect(),a=r.getBoundingClientRect(),o=e.scrollTop+(a.top-i.top);return e.scrollTo({top:Math.max(0,o)}),!0},c=0,l=()=>{requestAnimationFrame(()=>{if(u.current===a){if(!o()){c<LS&&(c++,l());return}if(!s()){c<LS&&(c++,l());return}window.setTimeout(()=>{u.current===a&&s()},RS)}})};l()},[e,t,p]);return(0,F.useEffect)(()=>{if(!e||e.targetCommitish===`stdin`)return;let t=e.targetCommitish||`HEAD`,i=`${e.requestedBaseCommitish??``}...${e.requestedTargetCommitish??``}:${e.requestedBaseMode??`direct`}`;e.files.forEach(a=>{if(!r.has(a.path)||a.isGenerated!==!1||a.status===`deleted`)return;let o=`${i}:${t}:${a.path}`;if(c.current.has(o))return;c.current.add(o);let s=encodeURIComponent(a.path);fetch(`/api/generated-status/${s}?ref=${encodeURIComponent(t)}`).then(e=>e.ok?e.json():null).then(t=>{!t||t.isGenerated!==!0||n(t=>{if(!t||t.requestedBaseCommitish!==e.requestedBaseCommitish||t.requestedTargetCommitish!==e.requestedTargetCommitish||t.requestedBaseMode!==e.requestedBaseMode)return t;let n=!1,r=t.files.map(e=>e.path!==a.path||e.isGenerated?e:(n=!0,{...e,isGenerated:!0}));return n?{...t,files:r}:t})}).catch(()=>{})})},[e,r,n]),{renderedFilePaths:r,ensureFileRendered:d,ensureFilesRenderedUpTo:p,registerLazyFileContainer:f,scrollFileIntoDiffContainer:m}}function BS(e,t,n,r,i,a,o=[],s){let[c,l]=(0,F.useState)([]),[u,d]=(0,F.useState)(null),[f,p]=(0,F.useState)(new Map),[m,h]=(0,F.useState)(new Set),g=e&&t?`${a??`default`}:${Qt({baseCommitish:e,targetCommitish:t,baseMode:s})}:${n??`no-commit`}`:null,_=g!==null&&u===g;(0,F.useEffect)(()=>{if(!e||!t||!g)return;let c=!1,u=nS.getViewedFiles(e,t,n,r,a,s);return(async()=>{let f=[];if(i&&i.length>0){let e=new Set(u.map(e=>e.filePath)),t=new Map;await Promise.all(i.map(async e=>{try{let n=await rS(aS(e));t.set(e.path,n)}catch(t){console.error(`Failed to generate hash for file:`,e.path,t)}}));for(let n of i){if(e.has(n.path)||!(n.isGenerated||n.status===`deleted`||Ex(n.path,o)))continue;let r=t.get(n.path);r&&(f.push({filePath:n.path,viewedAt:new Date().toISOString(),diffContentHash:r}),e.add(n.path))}let n=nS.getViewedHashIndex(a),r=new Map,s=new Set;for(let e of n.entries)e.hashVersion===1&&(r.set(`${e.filePath} ${e.diffContentHash}`,e),s.add(e.filePath));for(let n of i){if(e.has(n.path))continue;let i=t.get(n.path);if(!i)continue;let a=r.get(`${n.path} ${i}`);a&&(f.push({filePath:n.path,viewedAt:a.viewedAt,diffContentHash:i}),e.add(n.path))}let l=new Set;for(let n of i){if(!s.has(n.path)||e.has(n.path))continue;let i=t.get(n.path);i&&(r.has(`${n.path} ${i}`)||l.add(n.path))}c||h(l)}else c||h(new Set);if(f.length>0){let i=[...u,...f];nS.saveViewedFiles(e,t,i,n,r,a,s),c||(l(i),d(g));return}c||(l(u),d(g))})(),()=>{c=!0}},[e,t,n,r,a,g,s]);let v=(0,F.useCallback)(i=>{!e||!t||(nS.saveViewedFiles(e,t,i,n,r,a,s),l(i))},[e,t,n,r,a,s]),y=(0,F.useMemo)(()=>new Set(c.map(e=>e.filePath)),[c]),b=(0,F.useCallback)(e=>c.find(t=>t.filePath===e),[c]),x=(0,F.useCallback)(async e=>{let t=f.get(e.path);if(t)return t;let n=await rS(aS(e));return p(t=>new Map(t).set(e.path,n)),n},[f]),S=(0,F.useCallback)(async(e,t)=>{let n=b(e);if(!n)return!1;let r=await x(t);return n.diffContentHash!==r},[b,x]);return{viewedFiles:y,changedSinceViewedFiles:m,hasLoadedInitialViewedFiles:_,toggleFileViewed:(0,F.useCallback)(async(e,t)=>{let n=b(e);if(n)v(c.filter(t=>t.filePath!==e)),nS.removeViewedHashes(a,[{filePath:e,diffContentHash:n.diffContentHash}]);else{let n=await x(t),r=new Date().toISOString(),i={filePath:e,viewedAt:r,diffContentHash:n};v([...c,i]);let o={filePath:e,diffContentHash:n,hashVersion:1,viewedAt:r};nS.recordViewedHashes(a,[o])}},[c,b,x,v,a]),isFileContentChanged:S,getViewedFileRecord:b,clearViewedFiles:(0,F.useCallback)(()=>{v([]),p(new Map),h(new Set),nS.clearViewedHashIndex(a)},[v,a])}}var VS={mobileMax:767,desktopMin:1024},HS={mobile:`(max-width: ${VS.mobileMax}px)`,desktop:`(min-width: ${VS.desktopMin}px)`},US=()=>typeof window>`u`?{isMobile:!1,isDesktop:!0}:{isMobile:window.matchMedia(HS.mobile).matches,isDesktop:window.matchMedia(HS.desktop).matches};function WS(){let[e,t]=(0,F.useState)(()=>US());return(0,F.useEffect)(()=>{if(typeof window>`u`)return;let e=window.matchMedia(HS.mobile),n=window.matchMedia(HS.desktop),r=()=>{t({isMobile:e.matches,isDesktop:n.matches})};return r(),e.addEventListener(`change`,r),n.addEventListener(`change`,r),()=>{e.removeEventListener(`change`,r),n.removeEventListener(`change`,r)}},[]),e}function GS(e){let t=new Set;return e.forEach(e=>{let n=e.author?.trim();n&&t.add(n)}),[...t]}function KS(e){return GS(e).length>=2}function qS(e,t,n,r){for(let i=0;i<e.chunks.length;i++){let a=e.chunks[i];if(a)for(let e=0;e<a.lines.length;e++){let o=a.lines[e];if(o&&(r===`old`?o.oldLineNumber:r===`new`?o.newLineNumber:o.newLineNumber??o.oldLineNumber)===n)return{fileIndex:t,chunkIndex:i,lineIndex:e,side:r===`old`?`left`:r===`new`||o.newLineNumber?`right`:`left`}}}return null}function JS(e,t){let n=t.findIndex(t=>t.path===e.file);if(n===-1)return null;let r=t[n];if(!r)return null;let i=Array.isArray(e.line)?e.line[1]:e.line,a=e.side;return qS(r,n,i,a)||qS(r,n,i,`new`)||qS(r,n,i,`old`)}var YS={diffVersion:null,byFile:new Map};function XS(e,t,n,r){let i=new Map;return t.forEach(e=>{let t=n.get(e);t&&i.set(e,r(t))}),{diffVersion:e,byFile:i}}function ZS(e,t,n){if(e.diffVersion===t)return e.byFile.get(n)}function QS(e){return e.replace(/[ \t]+$/,``)}function $S(e){return e.replace(/\r\n/g,`
|
|
80
|
+
`);return r.length>0&&r[r.length-1]===``&&r.pop(),{lines:r,totalLines:r.length}}async function dS(e,t,n,r){let i=encodeURIComponent(e),a=new URLSearchParams;t&&a.set(`oldRef`,t),n&&a.set(`newRef`,n),r&&r!==e&&a.set(`oldPath`,r);let o=await fetch(`/api/line-count/${i}?${a}`);if(!o.ok)throw Error(`Failed to fetch line count: ${o.statusText}`);return o.json()}function fS({baseCommitish:e,targetCommitish:t,diffIdentity:n}){let[r,i]=(0,F.useState)({}),[a,o]=(0,F.useState)(!1),[s,c]=(0,F.useState)(null),[l,u]=(0,F.useState)(0),d=(0,F.useRef)(new Map),f=(0,F.useRef)({});f.current=r;let p=(0,F.useRef)(0);(0,F.useEffect)(()=>{p.current+=1,d.current.clear(),f.current={},i({}),o(!1),c(null),u(0)},[e,t,n]);let m=(0,F.useCallback)(async n=>{let r=p.current,i=`${r}:${n.path}`,a=d.current.get(i);if(a)return a;let o=(async()=>{let i=f.current[n.path];if(i?.oldContent&&i?.newContent)return i;let a={...i,expandedRanges:i?.expandedRanges||[]};if(n.status!==`added`&&e){let t=n.oldPath||n.path;try{let{lines:n,totalLines:i}=await uS(t,e);if(p.current!==r)return null;a.oldContent=n,a.oldTotalLines=i}catch(e){console.error(`Failed to fetch old file content:`,e),a.oldContent=[],a.oldTotalLines=0}}if(n.status!==`deleted`&&t)try{let{lines:e,totalLines:i}=await uS(n.path,t);if(p.current!==r)return null;a.newContent=e,a.newTotalLines=i}catch(e){console.error(`Failed to fetch new file content:`,e),a.newContent=[],a.newTotalLines=0}return a})();d.current.set(i,o);try{return await o}finally{d.current.delete(i)}},[e,t]),h=(0,F.useCallback)(e=>{c(e),u(e=>e+1)},[]),g=(0,F.useCallback)(async(e,t,n,r=lS)=>{let a=p.current;o(!0);try{let o=await m(e);if(!o||p.current!==a)return;i(i=>{let a=i[e.path],s=a?.expandedRanges||o.expandedRanges||[],c=s.findIndex(e=>e.chunkIndex===t&&e.direction===n),l=[...s];if(c>=0&&l[c]){let e=l[c];l[c]={chunkIndex:e.chunkIndex,direction:e.direction,count:e.count+r}}else l.push({chunkIndex:t,direction:n,count:r});return{...i,[e.path]:{oldContent:a?.oldContent??o.oldContent,newContent:a?.newContent??o.newContent,oldTotalLines:a?.oldTotalLines??o.oldTotalLines,newTotalLines:a?.newTotalLines??o.newTotalLines,expandedRanges:l}}}),h(e.path)}finally{o(!1)}},[m,h]),_=(0,F.useCallback)(async(e,t,n)=>{let r=p.current;o(!0);try{let a=await m(e);if(!a||p.current!==r)return;i(r=>{let i=r[e.path],o=[...i?.expandedRanges||a.expandedRanges||[]],s=o.findIndex(e=>e.chunkIndex===t&&e.direction===`up`),c=o.findIndex(e=>e.chunkIndex===t-1&&e.direction===`down`),l=0,u=0;s>=0&&o[s]&&(l=o[s].count),c>=0&&o[c]&&(u=o[c].count);let d=l+u+n,f=o.filter(e=>!(e.chunkIndex===t-1&&e.direction===`down`)),p=f.findIndex(e=>e.chunkIndex===t&&e.direction===`up`);return p>=0&&f[p]?f[p]={chunkIndex:t,direction:`up`,count:d}:f.push({chunkIndex:t,direction:`up`,count:d}),{...r,[e.path]:{oldContent:i?.oldContent??a.oldContent,newContent:i?.newContent??a.newContent,oldTotalLines:i?.oldTotalLines??a.oldTotalLines,newTotalLines:i?.newTotalLines??a.newTotalLines,expandedRanges:f}}}),h(e.path)}finally{o(!1)}},[m,h]),v=(0,F.useCallback)(async n=>{let r=p.current,a=f.current[n.path];if(a?.oldTotalLines!==void 0||a?.newTotalLines!==void 0)return;let o=n.status===`added`?void 0:e,s=n.status===`deleted`?void 0:t;if(!(!o&&!s))try{let{oldLineCount:e,newLineCount:t}=await dS(n.path,o,s,n.oldPath);if(p.current!==r)return;i(r=>{let i=r[n.path];return i?.oldTotalLines!==void 0||i?.newTotalLines!==void 0?r:{...r,[n.path]:{...i,expandedRanges:i?.expandedRanges||[],oldTotalLines:e,newTotalLines:t}}}),h(n.path)}catch(e){console.error(`Failed to prefetch line count:`,e)}},[e,t,h]),y=(0,F.useCallback)((e,t,n)=>{let i=r[e];return i&&i.expandedRanges.find(e=>e.chunkIndex===t&&e.direction===n)?.count||0},[r]),b=(0,F.useCallback)((e,t,n)=>{if(e.status===`added`||e.status===`deleted`)return 0;let r=e.chunks[n-1],i;if(!r)i=t.oldStart-1;else{let e=r.oldStart+r.oldLines;i=t.oldStart-e}let a=y(e.path,n,`up`),o=n>0?y(e.path,n-1,`down`):0;return Math.max(0,i-a-o)},[y]),x=(0,F.useCallback)((e,t,n)=>{if(e.status===`added`||e.status===`deleted`)return 0;let i=r[e.path],a=i?.oldTotalLines||i?.newTotalLines;if(a===void 0)return e.chunks[n+1]?0:-1;if(e.chunks[n+1])return 0;let o=a-(t.oldStart+t.oldLines-1),s=y(e.path,n,`down`);return Math.max(0,o-s)},[r,y]),S=(0,F.useCallback)((e,t,n)=>{let i=r[e.path];if(!i)return t;let a=y(e.path,n,`up`),o=y(e.path,n,`down`);if(a===0&&o===0)return t;let s=i.oldContent||[],c=i.newContent||[],l=[];if(a>0){let r=e.chunks[n-1],i;i=r?r.oldStart+r.oldLines-1:Math.max(0,t.oldStart-1-a);let o=t.oldStart-1,u=t.newStart-1,d=Math.min(a,o-i),f=o-d,p=u-d;for(let e=0;e<d;e++){let t=f+e+1,n=p+e+1,r=s[t-1]??c[n-1]??``;l.push({type:`normal`,content:r,oldLineNumber:t,newLineNumber:n,isExpanded:!0})}}if(l.push(...t.lines),o>0){let r=t.oldStart+t.oldLines-1,a=t.newStart+t.newLines-1,u=e.chunks[n+1],d=u?u.oldStart-1:i.oldTotalLines||r,f=Math.min(o,d-r);for(let e=0;e<f;e++){let t=r+e+1,n=a+e+1,i=s[t-1]??c[n-1]??``;l.push({type:`normal`,content:i,oldLineNumber:t,newLineNumber:n,isExpanded:!0})}}let u=l[0],d=l[l.length-1];return{...t,lines:l,oldStart:u?.oldLineNumber??t.oldStart,newStart:u?.newLineNumber??t.newStart,oldLines:(d?.oldLineNumber??t.oldStart+t.oldLines-1)-(u?.oldLineNumber??t.oldStart)+1,newLines:(d?.newLineNumber??t.newStart+t.newLines-1)-(u?.newLineNumber??t.newStart)+1}},[r,y]);return{expandedState:r,isLoading:a,lastUpdatedFilePath:s,lastUpdatedAt:l,expandLines:g,expandAllBetweenChunks:_,prefetchFileContent:v,getMergedChunks:(0,F.useCallback)(e=>{let t=[];for(let n=0;n<e.chunks.length;n++){let r=e.chunks[n];if(!r)continue;let i=S(e,r,n),a=b(e,r,n),o=x(e,r,n),s=t[t.length-1];if(s&&a===0){s.lines=[...s.lines,...i.lines],s.originalIndices.push(n),s.hiddenLinesAfter=o;let e=s.lines[s.lines.length-1];s.oldLines=(e?.oldLineNumber??s.oldStart+s.oldLines-1)-s.oldStart+1,s.newLines=(e?.newLineNumber??s.newStart+s.newLines-1)-s.newStart+1}else t.push({...i,originalIndices:[n],hiddenLinesBefore:a,hiddenLinesAfter:o})}return t},[S,b,x]),getHiddenLinesBefore:b,getHiddenLinesAfter:x}}var pS=function(e){return e.DEFAULT=`default`,e.WORKING=`working`,e.STAGED=`staged`,e.DOT=`dot`,e.SPECIFIC=`specific`,e}({});function mS(e){return e}function hS(e,t){let n=(0,F.useRef)(null),r=(0,F.useRef)(null),i=(0,F.useRef)(0),a=3e3,[o,s]=(0,F.useState)({isWatchEnabled:!1,diffMode:pS.DEFAULT,shouldReload:!1,isReloading:!1,lastChangeTime:null,lastChangeType:null,connectionStatus:`disconnected`}),[c,l]=(0,F.useState)(null),u=(0,F.useCallback)(()=>{if(!n.current)try{let e=new EventSource(mS(`/api/watch`));n.current=e,e.onopen=()=>{console.log(`Connected to file watch service`),s(e=>({...e,connectionStatus:`connected`})),i.current=0,l(null)},e.onmessage=e=>{try{let n=JSON.parse(e.data);switch(n.type){case`connected`:s(e=>({...e,isWatchEnabled:!0,diffMode:n.diffMode,connectionStatus:`connected`}));break;case`reload`:console.log(`File changes detected, showing reload button:`,n.changeType),s(e=>({...e,shouldReload:!0,lastChangeTime:new Date,lastChangeType:n.changeType}));break;case`error`:console.error(`File watch error:`,n.message),l(n.message||`File watch error occurred`);break;case`commentsChanged`:t&&t();break}}catch(e){console.error(`Error parsing watch event:`,e)}},e.onerror=()=>{console.log(`File watch connection lost`),s(e=>({...e,connectionStatus:`disconnected`})),n.current&&=(n.current.close(),null),i.current<5?(s(e=>({...e,connectionStatus:`reconnecting`})),i.current+=1,r.current=setTimeout(()=>{console.log(`Attempting to reconnect to file watch service (${i.current}/5)...`),u()},a)):(console.error(`Max reconnection attempts reached`),l(`Lost connection to file watch service`))}}catch(e){console.error(`Failed to connect to file watch service:`,e),l(`Failed to connect to file watch service`)}},[5,t,a]),d=(0,F.useCallback)(async()=>{if(!o.isReloading){s(e=>({...e,isReloading:!0}));try{e&&await e(),s(e=>({...e,shouldReload:!1,isReloading:!1,lastChangeTime:null,lastChangeType:null}))}catch(e){console.error(`Reload failed:`,e),l(`Failed to reload diff data`),s(e=>({...e,isReloading:!1}))}}},[e,o.isReloading]),f=()=>{n.current&&=(n.current.close(),null),r.current&&=(clearTimeout(r.current),null)};return(0,F.useEffect)(()=>(u(),f),[u]),(0,F.useEffect)(()=>f,[]),{shouldReload:o.shouldReload,isConnected:o.connectionStatus===`connected`,error:c,reload:d,watchState:o}}var gS={SCROLL_CONTAINER:`main.overflow-y-auto`};function _S(e,t){let n=`file-${e.fileIndex}-chunk-${e.chunkIndex}-line-${e.lineIndex}`;return t===`split`?`${n}-${e.side}`:n}function vS(e,t,n){return`${e}:${t}:${n??`any`}`}function yS(e,t){let n=t[e.fileIndex]?.chunks[e.chunkIndex]?.lines[e.lineIndex];return n&&(n.type===`add`||n.type===`delete`||n.type===`normal`)?n.type:null}function bS(e,t){let n=yS(e,t);return n?n===`normal`?!0:n===`delete`?e.side===`left`:n===`add`?e.side===`right`:!1:!1}function xS(e,t){return bS(e,t)?e:{...e,side:e.side===`left`?`right`:`left`}}var SS={VIEWPORT_OFFSET_RATIO:1/3};function CS(e,t,n){let r=[];return t.oldLineNumber!==void 0&&(r.push(vS(e,t.oldLineNumber,`old`)),r.push(vS(e,t.oldLineNumber))),t.newLineNumber!==void 0&&(r.push(vS(e,t.newLineNumber,`new`)),r.push(vS(e,t.newLineNumber))),r.some(e=>n.has(e))}function wS(e,t,n,r){return{line:t=>{let i=e[t.fileIndex];return!i||r?.has(i.path)?!1:n===`unified`||bS(t,e)},chunk:t=>{let n=e[t.fileIndex];if(!n||r?.has(n.path))return!1;let i=n.chunks[t.chunkIndex]?.lines[t.lineIndex];if(!i||i.type===`normal`)return!1;if(t.lineIndex===0)return!0;let a=n.chunks[t.chunkIndex]?.lines[t.lineIndex-1];return!a||a.type===`normal`},comment:n=>{let i=e[n.fileIndex];if(!i||r?.has(i.path))return!1;let a=i.chunks[n.chunkIndex]?.lines[n.lineIndex];return a?CS(i.path,a,t):!1},file:e=>e.chunkIndex===0&&e.lineIndex===0}}function TS(){return e=>{let t=document.getElementById(e);if(!t)return;let n=document.querySelector(gS.SCROLL_CONTAINER);if(!n)throw Error(`Scrollable container (${gS.SCROLL_CONTAINER}) not found`);let r=t.getBoundingClientRect(),i=n.getBoundingClientRect(),a=n.clientHeight,o=n.scrollTop,s=Math.max(i.top,0),c=Math.min(i.bottom,window.innerHeight);if(!(r.top>=s&&r.bottom<=c)){let e=ES(t,n)-a*SS.VIEWPORT_OFFSET_RATIO;n.scrollTop=Math.max(0,e);return}let l=r.bottom>Math.min(i.bottom,window.innerHeight),u=t.offsetTop-n.offsetTop-a*SS.VIEWPORT_OFFSET_RATIO;l&&u>o&&(n.scrollTop=Math.max(0,u))}}function ES(e,t){let n=e,r=0;for(;n&&n!==t&&n.offsetParent;)r+=n.offsetTop,n=n.offsetParent;return n&&n!==t&&(r+=n.offsetTop),r}function DS(e){return e||{fileIndex:0,chunkIndex:0,lineIndex:-1,side:`right`}}function OS(e,t,n){return n&&e.fileIndex===t.fileIndex&&e.chunkIndex===t.chunkIndex&&e.lineIndex===t.lineIndex}function kS(e,t,n){let{fileIndex:r,chunkIndex:i,lineIndex:a}=e,o=n.length,s=0;if(t===`next`)for(a++;s<o;){if(n[r]?.chunks[i]?.lines[a])return{...e,fileIndex:r,chunkIndex:i,lineIndex:a};i++,a=0,n[r]?.chunks[i]||(r++,i=0,a=0,r>=o&&(r=0,s++))}else for(a--;s<o;){if(a<0)if(i--,i<0){r--,r<0&&(r=o-1,s++);let e=n[r];if(e&&e.chunks.length>0){i=e.chunks.length-1;let t=e.chunks[i];a=t&&t.lines.length>0?t.lines.length-1:-1}else i=-1,a=-1}else{let e=n[r]?.chunks[i];a=e&&e.lines.length>0?e.lines.length-1:-1}if(a>=0&&n[r]?.chunks[i]?.lines[a])return{...e,fileIndex:r,chunkIndex:i,lineIndex:a};a<0||a--}return null}function AS(e,t,n,r,i){let a=e,o=!1;for(;a;){let s=kS(a,t,r);if(!s||(a=s,OS(a,e,o)))break;if(o=!0,n(a,r)){let e=xS(a,r);return{position:e,scrollTarget:_S(e,i)}}}return{position:null,scrollTarget:null}}function jS({files:e,comments:t,viewMode:n=St,reviewedFiles:r,onToggleReviewed:i,onCreateComment:a,onCopyAllComments:o,onDeleteAllComments:s,onShowCommentsList:c,onRefresh:l,getHoveredFileIndex:u}){let[d,f]=(0,F.useState)(null),[p,m]=(0,F.useState)(!1),h=(0,F.useRef)(null);(0,F.useEffect)(()=>{d&&(h.current=d)},[d]);let g=(0,F.useMemo)(()=>TS(),[]),_=(0,F.useMemo)(()=>{let e=new Map;return t.forEach(t=>{let n=Array.isArray(t.line)?t.line[0]:t.line,r=vS(t.file,n,t.side);e.has(r)||e.set(r,[]),e.get(r)?.push(t)}),e},[t]),v=(0,F.useMemo)(()=>wS(e,_,n,r),[e,_,n,r]),y=(0,F.useCallback)((t,r)=>e.length===0?{position:null,scrollTarget:null}:AS(DS(d??h.current),t,r,e,n),[d,e,n]),b=(0,F.useCallback)(e=>t=>{let n=y(t,e);n.position&&(f(n.position),n.scrollTarget&&g(n.scrollTarget))},[y,g]),x=(0,F.useMemo)(()=>b(v.line),[b,v.line]),S=(0,F.useMemo)(()=>b(v.chunk),[b,v.chunk]),C=(0,F.useMemo)(()=>b(v.file),[b,v.file]),w=(0,F.useMemo)(()=>b(v.comment),[b,v.comment]),T=(0,F.useCallback)(t=>{if(!d||n!==`split`)return;let r={...d,side:t},i=e[d.fileIndex]?.chunks[d.chunkIndex]?.lines[d.lineIndex];if(i){if(t===`left`&&i.type===`add`&&d.lineIndex>0){if(e[d.fileIndex]?.chunks[d.chunkIndex]?.lines[d.lineIndex-1]?.type===`delete`){r={...r,lineIndex:d.lineIndex-1},f(r),g(_S(r,n));return}}else if(t===`right`&&i.type===`delete`&&e[d.fileIndex]?.chunks[d.chunkIndex]?.lines[d.lineIndex+1]?.type===`add`){r={...r,lineIndex:d.lineIndex+1},f(r),g(_S(r,n));return}}if(!bS(r,e)){let t=e[d.fileIndex];if(!t)return;let n=t.chunks[d.chunkIndex];if(n){for(let t=d.lineIndex+1;t<n.lines.length;t++){let n={...r,lineIndex:t};if(bS(n,e)){r=n;break}}if(!bS(r,e))for(let t=d.lineIndex-1;t>=0;t--){let n={...r,lineIndex:t};if(bS(n,e)){r=n;break}}}if(!bS(r,e)){for(let n=d.chunkIndex+1;n<t.chunks.length;n++){let i=t.chunks[n];if(i){for(let t=0;t<i.lines.length;t++){let i={...r,chunkIndex:n,lineIndex:t};if(bS(i,e)){r=i;break}}if(bS(r,e))break}}if(!bS(r,e))for(let n=d.chunkIndex-1;n>=0;n--){let i=t.chunks[n];if(i){for(let t=i.lines.length-1;t>=0;t--){let i={...r,chunkIndex:n,lineIndex:t};if(bS(i,e)){r=i;break}}if(bS(r,e))break}}}}f(r),g(_S(r,n))},[d,n,g,e]),E=(0,F.useCallback)(()=>{let t=document.querySelector(gS.SCROLL_CONTAINER);if(!t)return;let r=t.getBoundingClientRect(),i=r.top+r.height/2,a=1/0,o=null;e.forEach((t,s)=>{t.chunks.forEach((t,c)=>{t.lines.forEach((t,l)=>{let u=n===`split`?[`left`,`right`]:[`right`];for(let t of u){let u={fileIndex:s,chunkIndex:c,lineIndex:l,side:t};if(n===`split`&&!bS(u,e))continue;let d=_S(u,n),f=document.getElementById(d);if(f){let e=f.getBoundingClientRect(),t=e.top+e.height/2,n=Math.abs(t-i);e.top<r.bottom&&e.bottom>r.top&&n<a&&(a=n,o=u)}}})})}),o&&f(o)},[e,n,f]),D=(0,F.useCallback)(t=>{if(!t){f(null);return}let r=xS(t,e);f(r),g(_S(r,n))},[e,n,g]),O={scopes:`navigation`,enableOnFormTags:!1,preventDefault:!0};z(`j, down`,()=>x(`next`),O,[x]),z(`k, up`,()=>x(`prev`),O,[x]),z(`n`,()=>S(`next`),O,[S]),z(`p`,()=>S(`prev`),O,[S]),z(`shift+n`,()=>w(`next`),O,[w]),z(`shift+p`,()=>w(`prev`),O,[w]),z(`]`,()=>C(`next`),{...O,useKey:!0},[C]),z(`[`,()=>C(`prev`),{...O,useKey:!0},[C]),z(`{`,()=>{e.length>0&&(f({fileIndex:0,chunkIndex:0,lineIndex:0,side:n===`split`?`left`:`right`}),g(_S({fileIndex:0,chunkIndex:0,lineIndex:0,side:n===`split`?`left`:`right`},n)))},{...O,useKey:!0},[e,n,g]),z(`}`,()=>{if(e.length>0){let t=e.length-1,r=e[t];r&&r.chunks.length>0&&(f({fileIndex:t,chunkIndex:0,lineIndex:0,side:n===`split`?`left`:`right`}),g(_S({fileIndex:t,chunkIndex:0,lineIndex:0,side:n===`split`?`left`:`right`},n)))}},{...O,useKey:!0},[e,n,g]),z(`h, left`,()=>T(`left`),{...O,enabled:n===`split`},[T,n]),z(`l, right`,()=>T(`right`),{...O,enabled:n===`split`},[T,n]);let k=(0,F.useCallback)(t=>{let i=e.length;for(let a=1;a<i;a++){let o=(t+a)%i,s=e[o];if(!s||!s.chunks[0]?.lines[0]||r.has(s.path))continue;let c=xS({fileIndex:o,chunkIndex:0,lineIndex:0,side:n===`split`?`left`:`right`},e);f(c),g(_S(c,n));return}},[e,r,n,g]),A=(0,F.useCallback)(t=>{let r=e[t];!r||!r.chunks[0]?.lines[0]||(h.current=xS({fileIndex:t,chunkIndex:0,lineIndex:0,side:n===`split`?`left`:`right`},e))},[e,n]);return z(`v`,()=>{let t=d?.fileIndex??u?.()??null;if(t!==null){let n=e[t];n&&i(n.path)}},O,[d,e,i,u]),z(`shift+v`,()=>{let t=d?.fileIndex??u?.()??h.current?.fileIndex??null;if(t===null)return;let n=e[t];n&&(r.has(n.path)||i(n.path),k(t))},O,[d,e,r,i,u,k]),z(`shift+r`,()=>{l&&l()},O,[l]),z(`c`,()=>{if(d&&a){let t=e[d.fileIndex]?.chunks[d.chunkIndex]?.lines[d.lineIndex];t&&t.type!==`delete`&&a()}},O,[d,e,a]),z(`?`,()=>m(!p),{...O,useKey:!0},[p]),z(`.`,e=>{e.ctrlKey||e.altKey||e.shiftKey||e.metaKey||(E(),e.preventDefault())},{...O,useKey:!0,preventDefault:!1},[E]),z(`shift+c`,()=>{o&&o()},{...O,scopes:[`navigation`,`comments-list`]},[o]),z(`shift+d`,()=>{s&&s()},{...O,scopes:[`navigation`,`comments-list`]},[s]),z(`shift+l`,()=>{c&&c()},O,[c]),{cursor:d,isHelpOpen:p,setIsHelpOpen:m,setCursorPosition:D,rememberFilePosition:A}}var MS=new Map,NS=0;function PS(e){return MS.has(e)||MS.set(e,`file-${++NS}`),MS.get(e)??``}var FS=8,IS=`1200px 0px`,LS=60,RS=180;function zS({diffData:e,diffScrollContainerRef:t,setDiffData:n}){let[r,i]=(0,F.useState)(new Set),a=(0,F.useRef)(new Set),o=(0,F.useRef)(null),s=(0,F.useRef)(new Map),c=(0,F.useRef)(new Set),l=(0,F.useRef)(null),u=(0,F.useRef)(0);(0,F.useEffect)(()=>{if(!e){let e=new Set;a.current=e,i(e),c.current.clear(),l.current=null;return}let t=`${e.requestedBaseCommitish??``}:${e.requestedTargetCommitish??``}:${e.requestedBaseMode??`direct`}`;if(l.current===t)return;l.current=t;let n=e.files.slice(0,FS).map(e=>e.path),r=new Set(n);a.current=r,i(r),c.current.clear()},[e]);let d=(0,F.useCallback)(e=>{let t=s.current.get(e);t&&o.current&&o.current.unobserve(t),i(t=>{if(t.has(e))return t;let n=new Set(t);return n.add(e),a.current=n,n})},[]),f=(0,F.useCallback)((e,t)=>{let n=o.current,r=s.current.get(e);if(r&&n&&n.unobserve(r),!t){s.current.delete(e);return}s.current.set(e,t),!(a.current.has(e)||!n)&&n.observe(t)},[]);(0,F.useEffect)(()=>{if(o.current&&o.current.disconnect(),!e){o.current=null;return}let n=new IntersectionObserver(e=>{i(t=>{let r=!1,i=new Set(t);return e.forEach(e=>{if(!e.isIntersecting)return;let t=e.target.dataset.filePath;!t||i.has(t)||(i.add(t),n.unobserve(e.target),r=!0)}),r&&(a.current=i),r?i:t})},{root:t.current,rootMargin:IS});return o.current=n,s.current.forEach((e,t)=>{a.current.has(t)||n.observe(e)}),()=>{n.disconnect(),o.current=null}},[e,t]);let p=(0,F.useCallback)(t=>{if(!e)return;let n=e.files.findIndex(e=>e.path===t);if(n<0)return;let r=o.current;i(t=>{let i=!1,o=new Set(t);for(let t=0;t<=n;t++){let n=e.files[t]?.path;if(n&&!o.has(n)){o.add(n),i=!0;let e=s.current.get(n);e&&r&&r.unobserve(e)}}return i&&(a.current=o),i?o:t})},[e]),m=(0,F.useCallback)(e=>{let n=t.current,r=document.getElementById(PS(e));if(!n||!r)return!1;let i=n.getBoundingClientRect();return r.getBoundingClientRect().top<i.top-1},[t]),h=(0,F.useCallback)(n=>{p(n);let r=e?.files.findIndex(e=>e.path===n)??-1,i=e&&r>=0?e.files.slice(0,r+1).map(e=>PS(e.path)):[PS(n)],a=u.current+1;u.current=a;let o=()=>{for(let e of i){let t=document.getElementById(e);if(!t||t.dataset.rendered!==`true`)return!1}return!0},s=()=>{let e=t.current,r=document.getElementById(PS(n));if(!e||!r)return!1;let i=e.getBoundingClientRect(),a=r.getBoundingClientRect(),o=e.scrollTop+(a.top-i.top);return e.scrollTo({top:Math.max(0,o)}),!0},c=0,l=()=>{requestAnimationFrame(()=>{if(u.current===a){if(!o()){c<LS&&(c++,l());return}if(!s()){c<LS&&(c++,l());return}window.setTimeout(()=>{u.current===a&&s()},RS)}})};l()},[e,t,p]);return(0,F.useEffect)(()=>{if(!e||e.targetCommitish===`stdin`)return;let t=e.targetCommitish||`HEAD`,i=`${e.requestedBaseCommitish??``}...${e.requestedTargetCommitish??``}:${e.requestedBaseMode??`direct`}`;e.files.forEach(a=>{if(!r.has(a.path)||a.isGenerated!==!1||a.status===`deleted`)return;let o=`${i}:${t}:${a.path}`;if(c.current.has(o))return;c.current.add(o);let s=encodeURIComponent(a.path);fetch(`/api/generated-status/${s}?ref=${encodeURIComponent(t)}`).then(e=>e.ok?e.json():null).then(t=>{!t||t.isGenerated!==!0||n(t=>{if(!t||t.requestedBaseCommitish!==e.requestedBaseCommitish||t.requestedTargetCommitish!==e.requestedTargetCommitish||t.requestedBaseMode!==e.requestedBaseMode)return t;let n=!1,r=t.files.map(e=>e.path!==a.path||e.isGenerated?e:(n=!0,{...e,isGenerated:!0}));return n?{...t,files:r}:t})}).catch(()=>{})})},[e,r,n]),{renderedFilePaths:r,ensureFileRendered:d,ensureFilesRenderedUpTo:p,registerLazyFileContainer:f,scrollFileIntoDiffContainer:h,isFileScrolledPastContainerTop:m}}function BS(e,t,n,r,i,a,o=[],s){let[c,l]=(0,F.useState)([]),[u,d]=(0,F.useState)(null),[f,p]=(0,F.useState)(new Map),[m,h]=(0,F.useState)(new Set),g=e&&t?`${a??`default`}:${Qt({baseCommitish:e,targetCommitish:t,baseMode:s})}:${n??`no-commit`}`:null,_=g!==null&&u===g;(0,F.useEffect)(()=>{if(!e||!t||!g)return;let c=!1,u=nS.getViewedFiles(e,t,n,r,a,s);return(async()=>{let f=[];if(i&&i.length>0){let e=new Set(u.map(e=>e.filePath)),t=new Map;await Promise.all(i.map(async e=>{try{let n=await rS(aS(e));t.set(e.path,n)}catch(t){console.error(`Failed to generate hash for file:`,e.path,t)}}));for(let n of i){if(e.has(n.path)||!(n.isGenerated||n.status===`deleted`||Ex(n.path,o)))continue;let r=t.get(n.path);r&&(f.push({filePath:n.path,viewedAt:new Date().toISOString(),diffContentHash:r}),e.add(n.path))}let n=nS.getViewedHashIndex(a),r=new Map,s=new Set;for(let e of n.entries)e.hashVersion===1&&(r.set(`${e.filePath} ${e.diffContentHash}`,e),s.add(e.filePath));for(let n of i){if(e.has(n.path))continue;let i=t.get(n.path);if(!i)continue;let a=r.get(`${n.path} ${i}`);a&&(f.push({filePath:n.path,viewedAt:a.viewedAt,diffContentHash:i}),e.add(n.path))}let l=new Set;for(let n of i){if(!s.has(n.path)||e.has(n.path))continue;let i=t.get(n.path);i&&(r.has(`${n.path} ${i}`)||l.add(n.path))}c||h(l)}else c||h(new Set);if(f.length>0){let i=[...u,...f];nS.saveViewedFiles(e,t,i,n,r,a,s),c||(l(i),d(g));return}c||(l(u),d(g))})(),()=>{c=!0}},[e,t,n,r,a,g,s]);let v=(0,F.useCallback)(i=>{!e||!t||(nS.saveViewedFiles(e,t,i,n,r,a,s),l(i))},[e,t,n,r,a,s]),y=(0,F.useMemo)(()=>new Set(c.map(e=>e.filePath)),[c]),b=(0,F.useCallback)(e=>c.find(t=>t.filePath===e),[c]),x=(0,F.useCallback)(async e=>{let t=f.get(e.path);if(t)return t;let n=await rS(aS(e));return p(t=>new Map(t).set(e.path,n)),n},[f]),S=(0,F.useCallback)(async(e,t)=>{let n=b(e);if(!n)return!1;let r=await x(t);return n.diffContentHash!==r},[b,x]);return{viewedFiles:y,changedSinceViewedFiles:m,hasLoadedInitialViewedFiles:_,toggleFileViewed:(0,F.useCallback)(async(e,t)=>{let n=b(e);if(n)v(c.filter(t=>t.filePath!==e)),nS.removeViewedHashes(a,[{filePath:e,diffContentHash:n.diffContentHash}]);else{let n=await x(t),r=new Date().toISOString(),i={filePath:e,viewedAt:r,diffContentHash:n};v([...c,i]);let o={filePath:e,diffContentHash:n,hashVersion:1,viewedAt:r};nS.recordViewedHashes(a,[o])}},[c,b,x,v,a]),setFilesViewed:(0,F.useCallback)(async(e,t)=>{if(t){let t=e.filter(e=>!b(e.path));if(t.length===0)return;let n=new Date().toISOString(),r=await Promise.all(t.map(async e=>({filePath:e.path,viewedAt:n,diffContentHash:await x(e)})));v([...c,...r]),nS.recordViewedHashes(a,r.map(e=>({filePath:e.filePath,diffContentHash:e.diffContentHash,hashVersion:1,viewedAt:e.viewedAt})))}else{let t=new Set(e.map(e=>e.path)),n=c.filter(e=>t.has(e.filePath));if(n.length===0)return;v(c.filter(e=>!t.has(e.filePath))),nS.removeViewedHashes(a,n.map(e=>({filePath:e.filePath,diffContentHash:e.diffContentHash})))}},[c,b,x,v,a]),isFileContentChanged:S,getViewedFileRecord:b,clearViewedFiles:(0,F.useCallback)(()=>{v([]),p(new Map),h(new Set),nS.clearViewedHashIndex(a)},[v,a])}}var VS={mobileMax:767,desktopMin:1024},HS={mobile:`(max-width: ${VS.mobileMax}px)`,desktop:`(min-width: ${VS.desktopMin}px)`},US=()=>typeof window>`u`?{isMobile:!1,isDesktop:!0}:{isMobile:window.matchMedia(HS.mobile).matches,isDesktop:window.matchMedia(HS.desktop).matches};function WS(){let[e,t]=(0,F.useState)(()=>US());return(0,F.useEffect)(()=>{if(typeof window>`u`)return;let e=window.matchMedia(HS.mobile),n=window.matchMedia(HS.desktop),r=()=>{t({isMobile:e.matches,isDesktop:n.matches})};return r(),e.addEventListener(`change`,r),n.addEventListener(`change`,r),()=>{e.removeEventListener(`change`,r),n.removeEventListener(`change`,r)}},[]),e}function GS(e){let t=new Set;return e.forEach(e=>{let n=e.author?.trim();n&&t.add(n)}),[...t]}function KS(e){return GS(e).length>=2}function qS(e,t,n,r){for(let i=0;i<e.chunks.length;i++){let a=e.chunks[i];if(a)for(let e=0;e<a.lines.length;e++){let o=a.lines[e];if(o&&(r===`old`?o.oldLineNumber:r===`new`?o.newLineNumber:o.newLineNumber??o.oldLineNumber)===n)return{fileIndex:t,chunkIndex:i,lineIndex:e,side:r===`old`?`left`:r===`new`||o.newLineNumber?`right`:`left`}}}return null}function JS(e,t){let n=t.findIndex(t=>t.path===e.file);if(n===-1)return null;let r=t[n];if(!r)return null;let i=Array.isArray(e.line)?e.line[1]:e.line,a=e.side;return qS(r,n,i,a)||qS(r,n,i,`new`)||qS(r,n,i,`old`)}var YS={diffVersion:null,byFile:new Map};function XS(e,t,n,r){let i=new Map;return t.forEach(e=>{let t=n.get(e);t&&i.set(e,r(t))}),{diffVersion:e,byFile:i}}function ZS(e,t,n){if(e.diffVersion===t)return e.byFile.get(n)}function QS(e){return e.replace(/[ \t]+$/,``)}function $S(e){return e.replace(/\r\n/g,`
|
|
81
81
|
`).split(`
|
|
82
|
-
`).map(QS)}function eC(e){let t=new Map,n=new Map;for(let r of e.chunks)for(let e of r.lines)e.oldLineNumber!==void 0&&t.set(e.oldLineNumber,e.content),e.newLineNumber!==void 0&&n.set(e.newLineNumber,e.content);return{old:t,new:n}}function tC(e,t){let n=e.codeSnapshot?.content;if(n===void 0)return!1;if(!t)return!0;let r=e.position.side===`old`?t.old:t.new,i=typeof e.position.line==`number`?{start:e.position.line,end:e.position.line}:e.position.line,a=$S(n);for(let e=0;e<=i.end-i.start;e++){let t=r.get(i.start+e);if(t===void 0)continue;let n=a[e]??``;if(QS(t)!==n)return!0}return!1}var nC=[],rC=[],iC=`difit.diffViewMode`,aC=`difit.sidebarWidth`,oC=`difit.sidebarOpen`,sC=200,cC=600,lC=280,uC=()=>{if(typeof window>`u`)return null;try{let e=window.localStorage.getItem(iC);if(e===null)return null;switch(e){case`split`:case`side-by-side`:case`unified`:case`inline`:return Ct(e);default:return null}}catch{return null}},dC=()=>uC()??`split`,fC=()=>{if(typeof window>`u`)return lC;let e=window.localStorage.getItem(aC);if(!e)return lC;let t=Number.parseInt(e,10);return Number.isFinite(t)?Math.min(cC,Math.max(sC,t)):lC},pC=()=>{if(typeof window>`u`)return!0;let e=window.localStorage.getItem(oC);return e===null||e===`true`?!0:e!==`false`};function mC(){let[e,t]=(0,F.useState)(null),[n,r]=(0,F.useState)(0),[i,a]=(0,F.useState)(dC),[o,s]=(0,F.useState)(!0),[c,l]=(0,F.useState)(!0),[u,d]=(0,F.useState)(null),[f,p]=(0,F.useState)(!1),[m,h]=(0,F.useState)(fC),[g,_]=(0,F.useState)(!1),[v,y]=(0,F.useState)(pC),[b,x]=(0,F.useState)(!1),[S,C]=(0,F.useState)(!1),[w,T]=(0,F.useState)(!1),[E,D]=(0,F.useState)(!1),[O,k]=(0,F.useState)(!1),[A,j]=(0,F.useState)(new Set),M=(0,F.useRef)(!1),N=(0,F.useRef)(null),[P,ee]=(0,F.useState)(null),[te,ne]=(0,F.useState)(Xt(``,``)),[re,L]=(0,F.useState)(``),[ie,R]=(0,F.useState)(``),ae=(0,F.useRef)(!1),oe=(0,F.useRef)(te.baseMode);oe.current=e?.requestedBaseMode??te.baseMode;let se=(0,F.useRef)(te);se.current=te;let ce=(0,F.useRef)(0),le=(0,F.useRef)(null),ue=(0,F.useMemo)(()=>!e?.baseCommitish||!e?.targetCommitish?null:Xt(e.baseCommitish,e.targetCommitish,e.requestedBaseMode),[e]),de=(0,F.useMemo)(()=>ue?Qt(ue):null,[ue]),{settings:fe,updateSettings:pe}=Wx(),{isMobile:me,isDesktop:he}=WS(),{hasLoadedComments:ge,threads:_e,replaceThreads:ve,addThread:ye,replyToThread:be,removeThread:xe,removeMessage:Se,updateMessage:Ce,clearAllComments:we,generateThreadPrompt:Te,generateAllCommentsPrompt:Ee}=cS(ue?.baseCommitish,ue?.targetCommitish,e?.commit,void 0,e?.repositoryId,ue?.baseMode),De=me&&_e.length>0,Oe=(0,F.useMemo)(()=>de?`${e?.repositoryId??`default`}:${de}`:null,[e?.repositoryId,de]),ke=(0,F.useMemo)(()=>{if(!ue)return null;let e=new URLSearchParams({base:ue.baseCommitish,target:ue.targetCommitish});return ue.baseMode===`merge-base`&&e.set(`baseMode`,ue.baseMode),e.toString()},[ue]),z=(0,F.useCallback)(e=>ke?`${e}?${ke}`:e,[ke]),[Ae,je]=(0,F.useState)(null),Me=Oe!==null&&Oe===Ae,Ne=(0,F.useRef)(null),Pe=(0,F.useRef)(!1),Fe=(0,F.useRef)(null),Ie=(0,F.useRef)(!1);(0,F.useEffect)(()=>{Oe!==Ae&&(Pe.current=!1)},[Ae,Oe]);let Le=(0,F.useCallback)(async()=>{let e=await fetch(z(`/api/comments-json`));if(!e.ok)throw Error(`Failed to fetch comments: ${e.status} ${e.statusText}`);let t=await e.json();return typeof t.version==`number`&&(Fe.current=t.version),Array.isArray(t.threads)?t.threads:[]},[z]),Re=(0,F.useCallback)(async e=>{let t=await fetch(z(`/api/comments`),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({threads:e,baseVersion:Fe.current??void 0})});if(!t.ok)return;let n=await t.json();typeof n.version==`number`&&(Fe.current=n.version),n.merged&&Array.isArray(n.threads)&&(Pe.current=!0,ve(n.threads))},[z,ve]),{viewedFiles:B,changedSinceViewedFiles:ze,hasLoadedInitialViewedFiles:Be,toggleFileViewed:Ve,clearViewedFiles:He}=BS(ue?.baseCommitish,ue?.targetCommitish,e?.commit,void 0,e?.files,e?.repositoryId,fe.autoViewedPatterns,ue?.baseMode);(0,F.useEffect)(()=>{M.current=!1},[e?.repositoryId,de,e?.commit]),(0,F.useEffect)(()=>{!M.current&&Be&&(j(new Set(B)),M.current=!0)},[B,Be]);let{renderedFilePaths:Ue,ensureFileRendered:We,ensureFilesRenderedUpTo:Ge,registerLazyFileContainer:Ke,scrollFileIntoDiffContainer:qe}=zS({diffData:e,diffScrollContainerRef:N,setDiffData:t}),Ye=(0,F.useCallback)(async t=>{if(!e)return;let n=e.files.find(e=>e.path===t);if(!n)return;let r=B.has(t);await Ve(t,n),j(e=>{let n=new Set(e);return r?n.delete(t):n.add(t),n}),r||setTimeout(()=>{qe(t)},100)},[e,qe,Ve,B]),Xe=(0,F.useCallback)(e=>{j(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),Ze=(0,F.useCallback)(t=>{e&&j(t?new Set(e.files.map(e=>e.path)):new Set)},[e]),Qe=(0,F.useCallback)(()=>{y(!1)},[]),$e=(0,F.useCallback)(e=>{a(e);try{window.localStorage.setItem(iC,e)}catch{}},[]),{isLoading:et,expandLines:tt,expandAllBetweenChunks:nt,prefetchFileContent:rt,getMergedChunks:it,lastUpdatedAt:at}=fS({baseCommitish:e?.baseCommitish,targetCommitish:e?.targetCommitish,diffIdentity:n}),st=(0,F.useRef)(it);(0,F.useEffect)(()=>{st.current=it},[it]);let[ct,lt]=(0,F.useState)(YS),ut=(0,F.useMemo)(()=>{let t=new Map;return e?.files.forEach(e=>{t.set(e.path,e)}),t},[e]);(0,F.useEffect)(()=>{if(!e){lt(YS);return}lt(XS(n,Ue,ut,e=>st.current(e)))},[e,n,ut,Ue,at]);let pt=(0,F.useMemo)(()=>e?e.files.map(e=>({...e,chunks:ZS(ct,n,e.path)||e.chunks})):[],[e,n,ct]),mt=(0,F.useMemo)(()=>{let e=new Map;return pt.forEach(t=>{e.set(t.path,eC(t))}),e},[pt]),ht=(0,F.useMemo)(()=>_e.map(e=>({id:e.id,file:e.filePath,line:typeof e.position.line==`number`?e.position.line:[e.position.line.start,e.position.line.end],side:e.position.side,createdAt:e.createdAt,updatedAt:e.updatedAt,codeContent:e.codeSnapshot?.content,isOutdated:tC(e,mt.get(e.filePath)),messages:e.messages})),[_e,mt]),_t=(0,F.useMemo)(()=>KS(ht.flatMap(e=>e.messages)),[ht]),yt=(0,F.useMemo)(()=>{let e=new Map;return ht.forEach(t=>{let n=e.get(t.file);n?n.push(t):e.set(t.file,[t])}),e},[ht]),[bt,xt]=(0,F.useState)(null),St=(0,F.useRef)(null),{shouldReload:Ct,reload:wt,watchState:Tt}=hS((0,F.useCallback)(async()=>{await St.current?.()},[]),(0,F.useCallback)(async()=>{try{let e=await Le();Pe.current=!0,ve(e),Oe&&je(Oe)}catch(e){console.error(`Failed to refresh comments from server:`,e)}},[Oe,Le,ve])),{cursor:Et,isHelpOpen:Dt,setIsHelpOpen:Ot,setCursorPosition:kt}=jS({files:pt,comments:ht,viewMode:i,reviewedFiles:B,onToggleReviewed:Ye,onCreateComment:()=>{Et&&xt({fileIndex:Et.fileIndex,chunkIndex:Et.chunkIndex,lineIndex:Et.lineIndex})},onCopyAllComments:()=>{_e.length>0&&Rt()},onDeleteAllComments:()=>{_e.length>0&&confirm(`Delete all comments?`)&&we()},onShowCommentsList:()=>{D(!0)},onRefresh:()=>{wt()}});(0,F.useEffect)(()=>{if(!e||!Et)return;let t=e.files[Et.fileIndex]?.path;!t||Ue.has(t)||(Ge(t),requestAnimationFrame(()=>{kt(Et)}))},[Et,e,Ge,Ue,kt]);let At=(0,F.useCallback)((e,t,n,r)=>{kt({fileIndex:e,chunkIndex:t,lineIndex:n,side:r})},[kt]),jt=(0,F.useCallback)(()=>{xt(null)},[xt]),Mt=(0,F.useCallback)(e=>Te(e.id),[Te]),Nt=e=>{e.preventDefault(),x(!0);let t=e.clientX,n=m,r=e=>{h(Math.max(sC,Math.min(cC,n+(e.clientX-t))))},i=()=>{x(!1),document.removeEventListener(`mousemove`,r),document.removeEventListener(`mouseup`,i)};document.addEventListener(`mousemove`,r),document.addEventListener(`mouseup`,i)},Pt=(0,F.useCallback)(async e=>{let n=ce.current+1;ce.current=n,le.current?.abort();let i=new AbortController;le.current=i;try{let a=e??(ae.current?se.current:void 0),s=new URLSearchParams({ignoreWhitespace:String(o)});a?.baseCommitish&&s.set(`base`,a.baseCommitish),a?.targetCommitish&&s.set(`target`,a.targetCommitish),a?.baseMode===`merge-base`&&s.set(`baseMode`,a.baseMode);let c=await fetch(`/api/diff?${s}`,{signal:i.signal});if(!c.ok)throw Error(`Failed to fetch diff data`);let l=await c.json();if(ce.current!==n)return;if(t(l),r(e=>e+1),L(l.baseCommitish&&l.requestedBaseMode!==`merge-base`?l.baseCommitish:``),l.targetCommitish&&R(l.targetCommitish),!ae.current){let e=l.requestedBaseCommitish??l.baseCommitish,t=l.requestedTargetCommitish??l.targetCommitish;e&&t&&ne(Xt(e,t,l.requestedBaseMode))}}catch(e){if(e?.name===`AbortError`||ce.current!==n)return;d(e instanceof Error?e.message:`Unknown error`)}finally{le.current===i&&(le.current=null),ce.current===n&&l(!1)}},[o]);St.current=Pt,(0,F.useEffect)(()=>{Pt()},[Pt]),(0,F.useEffect)(()=>()=>{le.current?.abort()},[]),(0,F.useEffect)(()=>{me&&i!==`unified`&&a(`unified`)},[i,me]),(0,F.useEffect)(()=>{try{window.localStorage.setItem(aC,String(m))}catch{}},[m]),(0,F.useEffect)(()=>{try{window.localStorage.setItem(oC,String(v))}catch{}},[v]),(0,F.useEffect)(()=>{fetch(`/api/revisions`).then(e=>e.ok?e.json():null).then(e=>{ee(e),e?.resolvedBase&&Yt(oe.current)!==`merge-base`&&L(t=>t||e.resolvedBase||``),e?.resolvedTarget&&R(t=>t||e.resolvedTarget||``)}).catch(()=>ee(null))},[]);let Ft=(0,F.useCallback)(async e=>{Zt(e,te)||(ae.current=!0,se.current=e,ne(e),l(!0),d(null),await Pt(e))},[Pt,te]),It=(0,F.useRef)(!1);(0,F.useEffect)(()=>{e?.clearComments&&!It.current&&(It.current=!0,Ie.current=!0,we({resetAppliedCommentImportIds:!0}),He(),console.log(`✅ All existing comments and viewed files cleared as requested via --clean flag`))},[e?.clearComments,we,He]),(0,F.useEffect)(()=>{if(!Oe||!ge||Ae===Oe||Ne.current===Oe)return;let e=Ie.current;Ie.current=!1,Ne.current=Oe;let t=!1;return(async()=>{try{let n=await Le(),r=e?n:qt(n,_e).threads;if(t)return;Pe.current=!0,ve(r),!e&&JSON.stringify(n)!==JSON.stringify(r)&&await Re(r)}catch(e){t||console.error(`Failed to bootstrap comments from server:`,e)}finally{t||je(Oe),Ne.current===Oe&&(Ne.current=null)}})(),()=>{t=!0,Ne.current===Oe&&(Ne.current=null)}},[Ae,Oe,Le,ge,ve,Re,_e]),(0,F.useEffect)(()=>{e&&(B.size<e.files.length?T(!1):B.size===e.files.length&&!w&&(C(!0),T(!0),setTimeout(()=>{C(!1)},1e3)))},[B.size,e,w]),(0,F.useEffect)(()=>{if(!Me)return;let e=JSON.stringify({threads:_e,baseVersion:Fe.current??void 0}),t=z(`/api/comments`),n=()=>{navigator.sendBeacon(t,e)};return window.addEventListener(`beforeunload`,n),Pe.current?(Pe.current=!1,()=>{window.removeEventListener(`beforeunload`,n)}):(Re(_e).catch(e=>{console.error(`Failed to sync comments:`,e)}),()=>{window.removeEventListener(`beforeunload`,n)})},[z,Me,Re,_e]),(0,F.useEffect)(()=>{let e=new EventSource(mS(`/api/heartbeat`));return e.onopen=()=>{console.log(`Connected to server heartbeat`)},e.onerror=()=>{console.log(`Server connection lost`),e.close()},()=>{e.close()}},[]);let Lt=(0,F.useCallback)((e,t,n,r,i)=>(ye({filePath:e,body:n,side:i||`new`,line:typeof t==`number`?t:{start:t[0],end:t[1]},codeSnapshot:r===void 0?void 0:{content:r,language:void 0}}),Promise.resolve()),[ye]),Rt=async()=>{try{await nn(Ee()),p(!0),setTimeout(()=>p(!1),2e3)}catch(e){console.error(`Failed to copy all comments prompt:`,e)}},zt=(0,F.useCallback)((e,t)=>(be({threadId:e,body:t}),Promise.resolve()),[be]),Bt=t=>{if(!e)return;let n=JS(t,e.files);n&&kt(n)},Vt=(0,F.useCallback)(async(e,t)=>{try{let n=await fetch(`/api/open-in-editor`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({filePath:e,line:t,editor:fe.editor})});if(!n.ok){let e=await n.json().catch(()=>null),t=n.statusText;e&&typeof e==`object`&&`error`in e&&typeof e.error==`string`&&(t=e.error),console.error(`Failed to open file in editor:`,t)}}catch(e){console.error(`Failed to open file in editor:`,e)}},[fe.editor]),Ht=e=>{kt(null);let t=e.target,n=t.closest(`[data-comment-button="true"]`),r=t.closest(`[data-open-in-editor-button="true"]`);!n&&!r&&Ut(e)},Ut=e=>{document.querySelectorAll(`form[data-empty="true"]`).forEach(t=>{t.contains(e.target)||t.querySelector(`button[type="button"]`)?.click()})};if(c)return(0,I.jsx)(`div`,{className:`flex items-center justify-center h-screen bg-github-bg-primary`,children:(0,I.jsx)(`div`,{className:`text-github-text-secondary text-base`,children:`Loading diff...`})});if(u)return(0,I.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-screen bg-github-bg-primary text-center gap-2`,children:[(0,I.jsx)(`h2`,{className:`text-github-danger text-2xl mb-2`,children:`Error`}),(0,I.jsx)(`p`,{className:`text-github-text-secondary text-base`,children:u})]});if(!e)return(0,I.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-screen bg-github-bg-primary text-center gap-2`,children:[(0,I.jsx)(`h2`,{className:`text-github-danger text-2xl mb-2`,children:`No data`}),(0,I.jsx)(`p`,{className:`text-github-text-secondary text-base`,children:`No diff data available`})]});let Wt=e.openInEditorAvailable!==!1&&fe.editor.id!==`none`&&fe.editor.command.trim()!==``&&fe.editor.argsTemplate.trim()!==``;return(0,I.jsx)(_n,{children:(0,I.jsxs)(`div`,{className:`h-screen flex flex-col`,onClickCapture:Ht,children:[(0,I.jsxs)(`header`,{className:`bg-github-bg-secondary border-b border-github-border flex ${me?`flex-col`:`flex-row items-center`}`,children:[(0,I.jsxs)(`div`,{className:`flex items-center justify-between w-full ${me?`px-3 py-2 gap-3`:`px-4 py-3 gap-4 w-auto`} ${b?``:`!transition-all !duration-300 !ease-in-out`}`,style:{width:me?`100%`:v?`${m}px`:`auto`,minWidth:me?`0px`:v?`200px`:`auto`,maxWidth:me?`none`:v?`600px`:`none`},children:[(0,I.jsx)(`h1`,{children:(0,I.jsx)(sx,{style:{height:`18px`,color:`var(--color-github-text-secondary)`}})}),(0,I.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,I.jsx)(`button`,{onClick:()=>y(!v),className:`p-2 text-github-text-secondary hover:text-github-text-primary hover:bg-github-bg-tertiary rounded transition-colors`,title:v?`Collapse file tree`:`Expand file tree`,"aria-expanded":v,"aria-controls":`file-tree-panel`,"aria-label":`Toggle file tree panel`,children:v?(0,I.jsx)(dt,{size:18}):(0,I.jsx)(ft,{size:18})}),(0,I.jsx)(`button`,{onClick:()=>_(!0),className:`p-2 text-github-text-secondary hover:text-github-text-primary hover:bg-github-bg-tertiary rounded transition-colors`,title:`Settings`,children:(0,I.jsx)(gt,{size:18})})]})]}),!me&&(0,I.jsx)(`div`,{className:`border-r border-github-border ${b?``:`!transition-all !duration-300 !ease-in-out`}`,style:{width:v?`4px`:`0px`,height:`calc(100% - 16px)`,margin:`8px 0`,transform:`translateX(-2px)`}}),(0,I.jsxs)(`div`,{className:`flex-1 flex flex-wrap items-center justify-between ${me?`px-3 pb-2 gap-3`:`px-4 py-3 gap-4`}`,children:[(0,I.jsxs)(`div`,{className:`flex flex-wrap items-center ${me?`gap-2`:`gap-3`}`,children:[!me&&(0,I.jsxs)(`div`,{className:`flex bg-github-bg-tertiary border border-github-border rounded-md p-1`,children:[(0,I.jsxs)(`button`,{onClick:()=>$e(`split`),className:`px-3 py-1.5 text-xs font-medium rounded transition-all duration-200 flex items-center gap-1.5 cursor-pointer ${i===`split`?`bg-github-bg-primary text-github-text-primary shadow-sm`:`text-github-text-secondary hover:text-github-text-primary`}`,children:[(0,I.jsx)(Je,{size:14}),`Split`]}),(0,I.jsxs)(`button`,{onClick:()=>$e(`unified`),className:`px-3 py-1.5 text-xs font-medium rounded transition-all duration-200 flex items-center gap-1.5 cursor-pointer ${i===`unified`?`bg-github-bg-primary text-github-text-primary shadow-sm`:`text-github-text-secondary hover:text-github-text-primary`}`,children:[(0,I.jsx)(vt,{size:14}),`Unified`]})]}),(0,I.jsx)($t,{checked:o,onChange:s,label:`Ignore Whitespace`,title:o?`Show whitespace changes`:`Ignore whitespace changes`}),(0,I.jsx)(cx,{shouldReload:Ct,isReloading:Tt.isReloading,onReload:wt,changeType:Tt.lastChangeType,compact:me})]}),(0,I.jsxs)(`div`,{className:`flex flex-wrap items-center text-sm text-github-text-secondary ${me?`gap-3`:`gap-4`}`,children:[!me&&_e.length>0&&(0,I.jsx)(en,{commentsCount:_e.length,isCopiedAll:f,onCopyAll:Rt,onDeleteAll:we,onViewAll:()=>D(!0)}),(0,I.jsxs)(`div`,{className:`flex flex-col gap-1 items-center`,children:[(0,I.jsxs)(`div`,{className:`text-xs relative`,children:[B.size===e.files.length?`All diffs difit-ed!`:`${B.size} / ${e.files.length} files viewed`,(0,I.jsx)(Vx,{isActive:S})]}),(0,I.jsx)(`div`,{className:`relative h-2 bg-github-bg-tertiary rounded-full overflow-hidden`,style:{width:`90px`,border:`1px solid var(--color-github-border)`},children:(0,I.jsx)(`div`,{className:`absolute top-0 right-0 h-full transition-all duration-300 ease-out`,style:{width:`${(e.files.length-B.size)/e.files.length*100}%`,backgroundColor:(()=>{let t=(e.files.length-B.size)/e.files.length*100;return t>50?`var(--color-github-accent)`:t>20?`var(--color-github-warning)`:`var(--color-github-danger)`})()}})})]}),P?(0,I.jsx)(Wc,{options:P,selection:te,resolvedBaseRevision:re,resolvedTargetRevision:ie,onSelectDiff:e=>void Ft(e),onOpenAdvanced:()=>k(!0),compact:!he}):(0,I.jsxs)(`span`,{className:`text-xs`,children:[`Reviewing:`,` `,(0,I.jsx)(`code`,{className:`bg-github-bg-tertiary px-1.5 py-0.5 rounded text-xs text-github-text-primary`,children:e.commit.includes(`...`)?(0,I.jsxs)(I.Fragment,{children:[(0,I.jsxs)(`span`,{className:`text-github-text-secondary font-medium`,children:[e.commit.split(`...`)[0],`...`]}),(0,I.jsx)(`span`,{className:`font-medium`,children:e.commit.split(`...`)[1]})]}):e.commit})]})]})]})]}),P&&(0,I.jsx)(fx,{isOpen:O,onClose:()=>k(!1),options:P,selection:te,resolvedBaseRevision:re,resolvedTargetRevision:ie,onApply:e=>void Ft(e)},O?Qt(te):`closed`),me&&v&&(0,I.jsx)(`button`,{type:`button`,"aria-label":`Close file tree`,className:`fixed inset-0 bg-black/40 z-30`,onClick:()=>y(!1)}),(0,I.jsxs)(`div`,{className:`flex flex-1 overflow-hidden relative`,children:[(0,I.jsx)(`div`,{className:`relative overflow-hidden ${b?``:`!transition-all !duration-300 !ease-in-out`}`,style:{width:me?`0px`:v?`${m}px`:`0px`},children:(0,I.jsxs)(`aside`,{id:`file-tree-panel`,className:`bg-github-bg-secondary overflow-y-auto flex flex-col ${me?`fixed inset-y-0 right-0 z-40 w-[min(85vw,360px)] border-l border-github-border transition-transform duration-300 ease-out`:`relative border-r border-github-border`}`,style:{width:me?`min(85vw, 360px)`:`${m}px`,minWidth:me?`0px`:`200px`,maxWidth:me?`none`:`600px`,height:`100%`,transform:me?v?`translateX(0)`:`translateX(100%)`:void 0},children:[(0,I.jsx)(`div`,{className:`flex-1 overflow-y-auto`,children:(0,I.jsx)(ix,{files:e.files,onScrollToFile:qe,onFileSelected:me?Qe:void 0,comments:ht,reviewedFiles:B,onToggleReviewed:Ye,selectedFileIndex:Et?.fileIndex??null})}),!me&&(0,I.jsxs)(`div`,{className:`p-4 border-t border-github-border flex justify-between items-center`,children:[(0,I.jsxs)(`button`,{onClick:()=>Ot(!0),className:`flex items-center gap-1.5 text-github-text-secondary hover:text-github-text-primary transition-colors`,title:`Keyboard shortcuts (Shift+?)`,children:[(0,I.jsx)(ot,{size:16}),(0,I.jsx)(`span`,{className:`text-sm`,children:`Shortcuts`})]}),(0,I.jsxs)(`a`,{href:`https://github.com/yoshiko-pg/difit`,target:`_blank`,rel:`noopener noreferrer`,className:`flex items-center gap-2 text-github-text-secondary hover:text-github-text-primary transition-colors`,title:`View on GitHub`,children:[(0,I.jsx)(`span`,{className:`text-sm`,children:`Star on GitHub`}),(0,I.jsx)(ax,{style:{height:`18px`,width:`18px`}})]})]})]})}),!me&&(0,I.jsx)(`div`,{className:`bg-github-border hover:bg-github-text-muted cursor-col-resize ${b?``:`!transition-all !duration-300 !ease-in-out`}`,style:{width:v?`4px`:`0px`},onMouseDown:Nt,title:`Drag to resize file list`}),(0,I.jsx)(`main`,{ref:N,className:`flex-1 overflow-y-auto ${De?`pb-16`:``}`,children:e.files.map((t,r)=>{let a=yt.get(t.path)??nC,o=ZS(ct,n,t.path)??rC,s=Ue.has(t.path);return(0,I.jsx)(`div`,{id:PS(t.path),"data-file-path":t.path,"data-rendered":s?`true`:`false`,ref:e=>Ke(t.path,e),className:`mb-6`,children:s?(0,I.jsx)(Xb,{file:t,threads:a,showAuthorBadges:_t,diffMode:i,reviewedFiles:B,isChangedSinceViewed:ze.has(t.path),onToggleReviewed:Ye,collapsedFiles:A,onToggleCollapsed:Xe,onToggleAllCollapsed:Ze,onAddComment:Lt,onGenerateThreadPrompt:Mt,onRemoveThread:xe,onReplyToThread:zt,onRemoveMessage:Se,onUpdateMessage:Ce,onOpenInEditor:Wt?Vt:void 0,syntaxTheme:fe.syntaxTheme,baseCommitish:e.baseCommitish,targetCommitish:e.targetCommitish,cursor:Et?.fileIndex===r?Et:null,fileIndex:r,onLineClick:At,commentTrigger:bt?.fileIndex===r?bt:null,onCommentTriggerHandled:jt,mergedChunks:o,expandLines:tt,expandAllBetweenChunks:nt,prefetchFileContent:rt,isExpandLoading:et,diffVersion:n}):(0,I.jsx)(`div`,{className:`bg-github-bg-secondary border border-github-border rounded-md px-4 py-3`,children:(0,I.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,I.jsxs)(`div`,{className:`min-w-0`,children:[(0,I.jsx)(`div`,{className:`text-xs uppercase tracking-wide text-github-text-muted`,children:`Deferred Rendering`}),(0,I.jsx)(`div`,{className:`text-sm font-mono text-github-text-primary truncate`,children:t.path})]}),(0,I.jsx)(`button`,{type:`button`,onClick:()=>We(t.path),className:`px-3 py-1.5 text-xs rounded border border-github-border text-github-text-secondary hover:text-github-text-primary hover:bg-github-bg-tertiary`,children:`Load now`})]})})},t.path)})})]}),De&&(0,I.jsx)(`div`,{className:`fixed bottom-0 left-0 right-0 z-20 bg-github-bg-secondary border-t border-github-border px-4 py-2 flex justify-end`,children:(0,I.jsx)(en,{commentsCount:_e.length,isCopiedAll:f,onCopyAll:Rt,onDeleteAll:we,onViewAll:()=>D(!0),direction:`up`,compact:!0})}),g&&(0,I.jsx)(zx,{isOpen:g,onClose:()=>_(!1),settings:fe,onSettingsChange:pe}),(0,I.jsx)(ox,{isOpen:Dt,onClose:()=>Ot(!1)}),(0,I.jsx)(Qr,{isOpen:E,onClose:()=>D(!1),onNavigate:Bt,comments:ht,showAuthorBadges:_t,onRemoveThread:xe,onGenerateThreadPrompt:Mt,onReplyToThread:zt,onRemoveMessage:Se,onUpdateMessage:Ce,syntaxTheme:fe.syntaxTheme})]})})}var hC=document.getElementById(`root`);if(!hC)throw Error(`Root element not found`);ee.createRoot(hC).render((0,I.jsx)(F.StrictMode,{children:(0,I.jsx)(Te,{initiallyActiveScopes:[`navigation`],children:(0,I.jsx)(mC,{})})}));export{o as n,l as r,H as t};
|
|
82
|
+
`).map(QS)}function eC(e){let t=new Map,n=new Map;for(let r of e.chunks)for(let e of r.lines)e.oldLineNumber!==void 0&&t.set(e.oldLineNumber,e.content),e.newLineNumber!==void 0&&n.set(e.newLineNumber,e.content);return{old:t,new:n}}function tC(e,t){let n=e.codeSnapshot?.content;if(n===void 0)return!1;if(!t)return!0;let r=e.position.side===`old`?t.old:t.new,i=typeof e.position.line==`number`?{start:e.position.line,end:e.position.line}:e.position.line,a=$S(n);for(let e=0;e<=i.end-i.start;e++){let t=r.get(i.start+e);if(t===void 0)continue;let n=a[e]??``;if(QS(t)!==n)return!0}return!1}var nC=[],rC=[],iC=`difit.diffViewMode`,aC=`difit.sidebarWidth`,oC=`difit.sidebarOpen`,sC=200,cC=600,lC=280,uC=()=>{if(typeof window>`u`)return null;try{let e=window.localStorage.getItem(iC);if(e===null)return null;switch(e){case`split`:case`side-by-side`:case`unified`:case`inline`:return Ct(e);default:return null}}catch{return null}},dC=()=>uC()??`split`,fC=()=>{if(typeof window>`u`)return lC;let e=window.localStorage.getItem(aC);if(!e)return lC;let t=Number.parseInt(e,10);return Number.isFinite(t)?Math.min(cC,Math.max(sC,t)):lC},pC=()=>{if(typeof window>`u`)return!0;let e=window.localStorage.getItem(oC);return e===null||e===`true`?!0:e!==`false`};function mC(){let[e,t]=(0,F.useState)(null),[n,r]=(0,F.useState)(0),[i,a]=(0,F.useState)(dC),[o,s]=(0,F.useState)(!0),[c,l]=(0,F.useState)(!0),[u,d]=(0,F.useState)(null),[f,p]=(0,F.useState)(!1),[m,h]=(0,F.useState)(fC),[g,_]=(0,F.useState)(!1),[v,y]=(0,F.useState)(pC),[b,x]=(0,F.useState)(!1),[S,C]=(0,F.useState)(!1),[w,T]=(0,F.useState)(!1),[E,D]=(0,F.useState)(!1),[O,k]=(0,F.useState)(!1),[A,j]=(0,F.useState)(new Set),M=(0,F.useRef)(!1),N=(0,F.useRef)(null),[P,ee]=(0,F.useState)(null),[te,ne]=(0,F.useState)(Xt(``,``)),[re,L]=(0,F.useState)(``),[ie,R]=(0,F.useState)(``),ae=(0,F.useRef)(!1),oe=(0,F.useRef)(te.baseMode);oe.current=e?.requestedBaseMode??te.baseMode;let se=(0,F.useRef)(te);se.current=te;let ce=(0,F.useRef)(0),le=(0,F.useRef)(null),ue=(0,F.useMemo)(()=>!e?.baseCommitish||!e?.targetCommitish?null:Xt(e.baseCommitish,e.targetCommitish,e.requestedBaseMode),[e]),de=(0,F.useMemo)(()=>ue?Qt(ue):null,[ue]),{settings:fe,updateSettings:pe}=Wx(),{isMobile:me,isDesktop:he}=WS(),{hasLoadedComments:ge,threads:_e,replaceThreads:ve,addThread:ye,replyToThread:be,removeThread:xe,removeMessage:Se,updateMessage:Ce,clearAllComments:we,generateThreadPrompt:Te,generateAllCommentsPrompt:Ee}=cS(ue?.baseCommitish,ue?.targetCommitish,e?.commit,void 0,e?.repositoryId,ue?.baseMode),De=me&&_e.length>0,Oe=(0,F.useMemo)(()=>de?`${e?.repositoryId??`default`}:${de}`:null,[e?.repositoryId,de]),ke=(0,F.useMemo)(()=>{if(!ue)return null;let e=new URLSearchParams({base:ue.baseCommitish,target:ue.targetCommitish});return ue.baseMode===`merge-base`&&e.set(`baseMode`,ue.baseMode),e.toString()},[ue]),z=(0,F.useCallback)(e=>ke?`${e}?${ke}`:e,[ke]),[Ae,je]=(0,F.useState)(null),Me=Oe!==null&&Oe===Ae,Ne=(0,F.useRef)(null),Pe=(0,F.useRef)(!1),Fe=(0,F.useRef)(null),Ie=(0,F.useRef)(!1);(0,F.useEffect)(()=>{Oe!==Ae&&(Pe.current=!1)},[Ae,Oe]);let Le=(0,F.useCallback)(async()=>{let e=await fetch(z(`/api/comments-json`));if(!e.ok)throw Error(`Failed to fetch comments: ${e.status} ${e.statusText}`);let t=await e.json();return typeof t.version==`number`&&(Fe.current=t.version),Array.isArray(t.threads)?t.threads:[]},[z]),Re=(0,F.useCallback)(async e=>{let t=await fetch(z(`/api/comments`),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({threads:e,baseVersion:Fe.current??void 0})});if(!t.ok)return;let n=await t.json();typeof n.version==`number`&&(Fe.current=n.version),n.merged&&Array.isArray(n.threads)&&(Pe.current=!0,ve(n.threads))},[z,ve]),{viewedFiles:B,changedSinceViewedFiles:ze,hasLoadedInitialViewedFiles:Be,toggleFileViewed:Ve,setFilesViewed:He,clearViewedFiles:Ue}=BS(ue?.baseCommitish,ue?.targetCommitish,e?.commit,void 0,e?.files,e?.repositoryId,fe.autoViewedPatterns,ue?.baseMode);(0,F.useEffect)(()=>{M.current=!1},[e?.repositoryId,de,e?.commit]),(0,F.useEffect)(()=>{!M.current&&Be&&(j(new Set(B)),M.current=!0)},[B,Be]);let{renderedFilePaths:We,ensureFileRendered:Ge,ensureFilesRenderedUpTo:Ke,registerLazyFileContainer:qe,scrollFileIntoDiffContainer:Ye,isFileScrolledPastContainerTop:Xe}=zS({diffData:e,diffScrollContainerRef:N,setDiffData:t}),Ze=(0,F.useCallback)(async t=>{if(!e)return;let n=e.files.find(e=>e.path===t);if(!n)return;let r=B.has(t),i=!r&&Xe(t);await Ve(t,n),j(e=>{let n=new Set(e);return r?n.delete(t):n.add(t),n}),i&&setTimeout(()=>{Ye(t)},100)},[e,Xe,Ye,Ve,B]),Qe=(0,F.useCallback)(async(t,n)=>{if(!e)return;let r=e.files.filter(e=>e.path.startsWith(`${t}/`));r.length!==0&&(await He(r,n),j(e=>{let t=new Set(e);return r.forEach(e=>{n?t.add(e.path):t.delete(e.path)}),t}))},[e,He]),$e=(0,F.useCallback)(e=>{j(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),et=(0,F.useCallback)(t=>{e&&j(t?new Set(e.files.map(e=>e.path)):new Set)},[e]),tt=(0,F.useCallback)(()=>{y(!1)},[]),nt=(0,F.useCallback)(e=>{a(e);try{window.localStorage.setItem(iC,e)}catch{}},[]),{isLoading:rt,expandLines:it,expandAllBetweenChunks:at,prefetchFileContent:st,getMergedChunks:ct,lastUpdatedAt:lt}=fS({baseCommitish:e?.baseCommitish,targetCommitish:e?.targetCommitish,diffIdentity:n}),ut=(0,F.useRef)(ct);(0,F.useEffect)(()=>{ut.current=ct},[ct]);let[pt,mt]=(0,F.useState)(YS),ht=(0,F.useMemo)(()=>{let t=new Map;return e?.files.forEach(e=>{t.set(e.path,e)}),t},[e]);(0,F.useEffect)(()=>{if(!e){mt(YS);return}mt(XS(n,We,ht,e=>ut.current(e)))},[e,n,ht,We,lt]);let _t=(0,F.useMemo)(()=>e?e.files.map(e=>({...e,chunks:ZS(pt,n,e.path)||e.chunks})):[],[e,n,pt]),yt=(0,F.useMemo)(()=>{let e=new Map;return _t.forEach(t=>{e.set(t.path,eC(t))}),e},[_t]),bt=(0,F.useMemo)(()=>_e.map(e=>({id:e.id,file:e.filePath,line:typeof e.position.line==`number`?e.position.line:[e.position.line.start,e.position.line.end],side:e.position.side,createdAt:e.createdAt,updatedAt:e.updatedAt,codeContent:e.codeSnapshot?.content,isOutdated:tC(e,yt.get(e.filePath)),messages:e.messages})),[_e,yt]),xt=(0,F.useMemo)(()=>KS(bt.flatMap(e=>e.messages)),[bt]),St=(0,F.useMemo)(()=>{let e=new Map;return bt.forEach(t=>{let n=e.get(t.file);n?n.push(t):e.set(t.file,[t])}),e},[bt]),[Ct,wt]=(0,F.useState)(null),Tt=(0,F.useRef)(null),{shouldReload:Et,reload:Dt,watchState:Ot}=hS((0,F.useCallback)(async()=>{await Tt.current?.()},[]),(0,F.useCallback)(async()=>{try{let e=await Le();Pe.current=!0,ve(e),Oe&&je(Oe)}catch(e){console.error(`Failed to refresh comments from server:`,e)}},[Oe,Le,ve])),kt=(0,F.useRef)(null),{cursor:At,isHelpOpen:jt,setIsHelpOpen:Mt,setCursorPosition:Nt,rememberFilePosition:Pt}=jS({files:_t,comments:bt,viewMode:i,reviewedFiles:B,onToggleReviewed:Ze,getHoveredFileIndex:(0,F.useCallback)(()=>kt.current,[]),onCreateComment:()=>{At&&wt({fileIndex:At.fileIndex,chunkIndex:At.chunkIndex,lineIndex:At.lineIndex})},onCopyAllComments:()=>{_e.length>0&&Wt()},onDeleteAllComments:()=>{_e.length>0&&confirm(`Delete all comments?`)&&we()},onShowCommentsList:()=>{D(!0)},onRefresh:()=>{Dt()}}),Ft=(0,F.useCallback)(t=>{if(Ze(t),e){let n=e.files.findIndex(e=>e.path===t);n!==-1&&Pt(n)}},[Ze,e,Pt]);(0,F.useEffect)(()=>{if(!e||!At)return;let t=e.files[At.fileIndex]?.path;!t||We.has(t)||(Ke(t),requestAnimationFrame(()=>{Nt(At)}))},[At,e,Ke,We,Nt]);let It=(0,F.useCallback)((e,t,n,r)=>{Nt({fileIndex:e,chunkIndex:t,lineIndex:n,side:r})},[Nt]),Lt=(0,F.useCallback)(()=>{wt(null)},[wt]),Rt=(0,F.useCallback)(e=>Te(e.id),[Te]),zt=e=>{e.preventDefault(),x(!0);let t=e.clientX,n=m,r=e=>{h(Math.max(sC,Math.min(cC,n+(e.clientX-t))))},i=()=>{x(!1),document.removeEventListener(`mousemove`,r),document.removeEventListener(`mouseup`,i)};document.addEventListener(`mousemove`,r),document.addEventListener(`mouseup`,i)},Bt=(0,F.useCallback)(async e=>{let n=ce.current+1;ce.current=n,le.current?.abort();let i=new AbortController;le.current=i;try{let a=e??(ae.current?se.current:void 0),s=new URLSearchParams({ignoreWhitespace:String(o)});a?.baseCommitish&&s.set(`base`,a.baseCommitish),a?.targetCommitish&&s.set(`target`,a.targetCommitish),a?.baseMode===`merge-base`&&s.set(`baseMode`,a.baseMode);let c=await fetch(`/api/diff?${s}`,{signal:i.signal});if(!c.ok)throw Error(`Failed to fetch diff data`);let l=await c.json();if(ce.current!==n)return;if(t(l),r(e=>e+1),L(l.baseCommitish&&l.requestedBaseMode!==`merge-base`?l.baseCommitish:``),l.targetCommitish&&R(l.targetCommitish),!ae.current){let e=l.requestedBaseCommitish??l.baseCommitish,t=l.requestedTargetCommitish??l.targetCommitish;e&&t&&ne(Xt(e,t,l.requestedBaseMode))}}catch(e){if(e?.name===`AbortError`||ce.current!==n)return;d(e instanceof Error?e.message:`Unknown error`)}finally{le.current===i&&(le.current=null),ce.current===n&&l(!1)}},[o]);Tt.current=Bt,(0,F.useEffect)(()=>{Bt()},[Bt]),(0,F.useEffect)(()=>()=>{le.current?.abort()},[]),(0,F.useEffect)(()=>{me&&i!==`unified`&&a(`unified`)},[i,me]),(0,F.useEffect)(()=>{try{window.localStorage.setItem(aC,String(m))}catch{}},[m]),(0,F.useEffect)(()=>{try{window.localStorage.setItem(oC,String(v))}catch{}},[v]),(0,F.useEffect)(()=>{fetch(`/api/revisions`).then(e=>e.ok?e.json():null).then(e=>{ee(e),e?.resolvedBase&&Yt(oe.current)!==`merge-base`&&L(t=>t||e.resolvedBase||``),e?.resolvedTarget&&R(t=>t||e.resolvedTarget||``)}).catch(()=>ee(null))},[]);let Vt=(0,F.useCallback)(async e=>{Zt(e,te)||(ae.current=!0,se.current=e,ne(e),l(!0),d(null),await Bt(e))},[Bt,te]),Ht=(0,F.useRef)(!1);(0,F.useEffect)(()=>{e?.clearComments&&!Ht.current&&(Ht.current=!0,Ie.current=!0,we({resetAppliedCommentImportIds:!0}),Ue(),console.log(`✅ All existing comments and viewed files cleared as requested via --clean flag`))},[e?.clearComments,we,Ue]),(0,F.useEffect)(()=>{if(!Oe||!ge||Ae===Oe||Ne.current===Oe)return;let e=Ie.current;Ie.current=!1,Ne.current=Oe;let t=!1;return(async()=>{try{let n=await Le(),r=e?n:qt(n,_e).threads;if(t)return;Pe.current=!0,ve(r),!e&&JSON.stringify(n)!==JSON.stringify(r)&&await Re(r)}catch(e){t||console.error(`Failed to bootstrap comments from server:`,e)}finally{t||je(Oe),Ne.current===Oe&&(Ne.current=null)}})(),()=>{t=!0,Ne.current===Oe&&(Ne.current=null)}},[Ae,Oe,Le,ge,ve,Re,_e]),(0,F.useEffect)(()=>{e&&(B.size<e.files.length?T(!1):B.size===e.files.length&&!w&&(C(!0),T(!0),setTimeout(()=>{C(!1)},1e3)))},[B.size,e,w]),(0,F.useEffect)(()=>{if(!Me)return;let e=JSON.stringify({threads:_e,baseVersion:Fe.current??void 0}),t=z(`/api/comments`),n=()=>{navigator.sendBeacon(t,e)};return window.addEventListener(`beforeunload`,n),Pe.current?(Pe.current=!1,()=>{window.removeEventListener(`beforeunload`,n)}):(Re(_e).catch(e=>{console.error(`Failed to sync comments:`,e)}),()=>{window.removeEventListener(`beforeunload`,n)})},[z,Me,Re,_e]),(0,F.useEffect)(()=>{let e=new EventSource(mS(`/api/heartbeat`));return e.onopen=()=>{console.log(`Connected to server heartbeat`)},e.onerror=()=>{console.log(`Server connection lost`),e.close()},()=>{e.close()}},[]);let Ut=(0,F.useCallback)((e,t,n,r,i)=>(ye({filePath:e,body:n,side:i||`new`,line:typeof t==`number`?t:{start:t[0],end:t[1]},codeSnapshot:r===void 0?void 0:{content:r,language:void 0}}),Promise.resolve()),[ye]),Wt=async()=>{try{await nn(Ee()),p(!0),setTimeout(()=>p(!1),2e3)}catch(e){console.error(`Failed to copy all comments prompt:`,e)}},Gt=(0,F.useCallback)((e,t)=>(be({threadId:e,body:t}),Promise.resolve()),[be]),Kt=t=>{if(!e)return;let n=JS(t,e.files);n&&Nt(n)},Jt=(0,F.useCallback)(async(e,t)=>{try{let n=await fetch(`/api/open-in-editor`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({filePath:e,line:t,editor:fe.editor})});if(!n.ok){let e=await n.json().catch(()=>null),t=n.statusText;e&&typeof e==`object`&&`error`in e&&typeof e.error==`string`&&(t=e.error),console.error(`Failed to open file in editor:`,t)}}catch(e){console.error(`Failed to open file in editor:`,e)}},[fe.editor]),tn=e=>{Nt(null);let t=e.target,n=t.closest(`[data-comment-button="true"]`),r=t.closest(`[data-open-in-editor-button="true"]`);!n&&!r&&rn(e)},rn=e=>{document.querySelectorAll(`form[data-empty="true"]`).forEach(t=>{t.contains(e.target)||t.querySelector(`button[type="button"]`)?.click()})};if(c)return(0,I.jsx)(`div`,{className:`flex items-center justify-center h-screen bg-github-bg-primary`,children:(0,I.jsx)(`div`,{className:`text-github-text-secondary text-base`,children:`Loading diff...`})});if(u)return(0,I.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-screen bg-github-bg-primary text-center gap-2`,children:[(0,I.jsx)(`h2`,{className:`text-github-danger text-2xl mb-2`,children:`Error`}),(0,I.jsx)(`p`,{className:`text-github-text-secondary text-base`,children:u})]});if(!e)return(0,I.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-screen bg-github-bg-primary text-center gap-2`,children:[(0,I.jsx)(`h2`,{className:`text-github-danger text-2xl mb-2`,children:`No data`}),(0,I.jsx)(`p`,{className:`text-github-text-secondary text-base`,children:`No diff data available`})]});let an=e.openInEditorAvailable!==!1&&fe.editor.id!==`none`&&fe.editor.command.trim()!==``&&fe.editor.argsTemplate.trim()!==``;return(0,I.jsx)(_n,{children:(0,I.jsxs)(`div`,{className:`h-screen flex flex-col`,onClickCapture:tn,children:[(0,I.jsxs)(`header`,{className:`bg-github-bg-secondary border-b border-github-border flex ${me?`flex-col`:`flex-row items-center`}`,children:[(0,I.jsxs)(`div`,{className:`flex items-center justify-between w-full ${me?`px-3 py-2 gap-3`:`px-4 py-3 gap-4 w-auto`} ${b?``:`!transition-all !duration-300 !ease-in-out`}`,style:{width:me?`100%`:v?`${m}px`:`auto`,minWidth:me?`0px`:v?`200px`:`auto`,maxWidth:me?`none`:v?`600px`:`none`},children:[(0,I.jsx)(`h1`,{children:(0,I.jsx)(sx,{style:{height:`18px`,color:`var(--color-github-text-secondary)`}})}),(0,I.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,I.jsx)(`button`,{onClick:()=>y(!v),className:`p-2 text-github-text-secondary hover:text-github-text-primary hover:bg-github-bg-tertiary rounded transition-colors`,title:v?`Collapse file tree`:`Expand file tree`,"aria-expanded":v,"aria-controls":`file-tree-panel`,"aria-label":`Toggle file tree panel`,children:v?(0,I.jsx)(dt,{size:18}):(0,I.jsx)(ft,{size:18})}),(0,I.jsx)(`button`,{onClick:()=>_(!0),className:`p-2 text-github-text-secondary hover:text-github-text-primary hover:bg-github-bg-tertiary rounded transition-colors`,title:`Settings`,children:(0,I.jsx)(gt,{size:18})})]})]}),!me&&(0,I.jsx)(`div`,{className:`border-r border-github-border ${b?``:`!transition-all !duration-300 !ease-in-out`}`,style:{width:v?`4px`:`0px`,height:`calc(100% - 16px)`,margin:`8px 0`,transform:`translateX(-2px)`}}),(0,I.jsxs)(`div`,{className:`flex-1 flex flex-wrap items-center justify-between ${me?`px-3 pb-2 gap-3`:`px-4 py-3 gap-4`}`,children:[(0,I.jsxs)(`div`,{className:`flex flex-wrap items-center ${me?`gap-2`:`gap-3`}`,children:[!me&&(0,I.jsxs)(`div`,{className:`flex bg-github-bg-tertiary border border-github-border rounded-md p-1`,children:[(0,I.jsxs)(`button`,{onClick:()=>nt(`split`),className:`px-3 py-1.5 text-xs font-medium rounded transition-all duration-200 flex items-center gap-1.5 cursor-pointer ${i===`split`?`bg-github-bg-primary text-github-text-primary shadow-sm`:`text-github-text-secondary hover:text-github-text-primary`}`,children:[(0,I.jsx)(Je,{size:14}),`Split`]}),(0,I.jsxs)(`button`,{onClick:()=>nt(`unified`),className:`px-3 py-1.5 text-xs font-medium rounded transition-all duration-200 flex items-center gap-1.5 cursor-pointer ${i===`unified`?`bg-github-bg-primary text-github-text-primary shadow-sm`:`text-github-text-secondary hover:text-github-text-primary`}`,children:[(0,I.jsx)(vt,{size:14}),`Unified`]})]}),(0,I.jsx)($t,{checked:o,onChange:s,label:`Ignore Whitespace`,title:o?`Show whitespace changes`:`Ignore whitespace changes`}),(0,I.jsx)(cx,{shouldReload:Et,isReloading:Ot.isReloading,onReload:Dt,changeType:Ot.lastChangeType,compact:me})]}),(0,I.jsxs)(`div`,{className:`flex flex-wrap items-center text-sm text-github-text-secondary ${me?`gap-3`:`gap-4`}`,children:[!me&&_e.length>0&&(0,I.jsx)(en,{commentsCount:_e.length,isCopiedAll:f,onCopyAll:Wt,onDeleteAll:we,onViewAll:()=>D(!0)}),(0,I.jsxs)(`div`,{className:`flex flex-col gap-1 items-center`,children:[(0,I.jsxs)(`div`,{className:`text-xs relative`,children:[B.size===e.files.length?`All diffs difit-ed!`:`${B.size} / ${e.files.length} files viewed`,(0,I.jsx)(Vx,{isActive:S})]}),(0,I.jsx)(`div`,{className:`relative h-2 bg-github-bg-tertiary rounded-full overflow-hidden`,style:{width:`90px`,border:`1px solid var(--color-github-border)`},children:(0,I.jsx)(`div`,{className:`absolute top-0 right-0 h-full transition-all duration-300 ease-out`,style:{width:`${(e.files.length-B.size)/e.files.length*100}%`,backgroundColor:(()=>{let t=(e.files.length-B.size)/e.files.length*100;return t>50?`var(--color-github-accent)`:t>20?`var(--color-github-warning)`:`var(--color-github-danger)`})()}})})]}),P?(0,I.jsx)(Wc,{options:P,selection:te,resolvedBaseRevision:re,resolvedTargetRevision:ie,onSelectDiff:e=>void Vt(e),onOpenAdvanced:()=>k(!0),compact:!he}):(0,I.jsxs)(`span`,{className:`text-xs`,children:[`Reviewing:`,` `,(0,I.jsx)(`code`,{className:`bg-github-bg-tertiary px-1.5 py-0.5 rounded text-xs text-github-text-primary`,children:e.commit.includes(`...`)?(0,I.jsxs)(I.Fragment,{children:[(0,I.jsxs)(`span`,{className:`text-github-text-secondary font-medium`,children:[e.commit.split(`...`)[0],`...`]}),(0,I.jsx)(`span`,{className:`font-medium`,children:e.commit.split(`...`)[1]})]}):e.commit})]})]})]})]}),P&&(0,I.jsx)(fx,{isOpen:O,onClose:()=>k(!1),options:P,selection:te,resolvedBaseRevision:re,resolvedTargetRevision:ie,onApply:e=>void Vt(e)},O?Qt(te):`closed`),me&&v&&(0,I.jsx)(`button`,{type:`button`,"aria-label":`Close file tree`,className:`fixed inset-0 bg-black/40 z-30`,onClick:()=>y(!1)}),(0,I.jsxs)(`div`,{className:`flex flex-1 overflow-hidden relative`,children:[(0,I.jsx)(`div`,{className:`relative overflow-hidden ${b?``:`!transition-all !duration-300 !ease-in-out`}`,style:{width:me?`0px`:v?`${m}px`:`0px`},children:(0,I.jsxs)(`aside`,{id:`file-tree-panel`,className:`bg-github-bg-secondary overflow-y-auto flex flex-col ${me?`fixed inset-y-0 right-0 z-40 w-[min(85vw,360px)] border-l border-github-border transition-transform duration-300 ease-out`:`relative border-r border-github-border`}`,style:{width:me?`min(85vw, 360px)`:`${m}px`,minWidth:me?`0px`:`200px`,maxWidth:me?`none`:`600px`,height:`100%`,transform:me?v?`translateX(0)`:`translateX(100%)`:void 0},children:[(0,I.jsx)(`div`,{className:`flex-1 overflow-y-auto`,children:(0,I.jsx)(ix,{files:e.files,onScrollToFile:Ye,onFileSelected:me?tt:void 0,comments:bt,reviewedFiles:B,onToggleReviewed:Ze,onToggleFolderReviewed:Qe,selectedFileIndex:At?.fileIndex??null})}),!me&&(0,I.jsxs)(`div`,{className:`p-4 border-t border-github-border flex justify-between items-center`,children:[(0,I.jsxs)(`button`,{onClick:()=>Mt(!0),className:`flex items-center gap-1.5 text-github-text-secondary hover:text-github-text-primary transition-colors`,title:`Keyboard shortcuts (Shift+?)`,children:[(0,I.jsx)(ot,{size:16}),(0,I.jsx)(`span`,{className:`text-sm`,children:`Shortcuts`})]}),(0,I.jsxs)(`a`,{href:`https://github.com/yoshiko-pg/difit`,target:`_blank`,rel:`noopener noreferrer`,className:`flex items-center gap-2 text-github-text-secondary hover:text-github-text-primary transition-colors`,title:`View on GitHub`,children:[(0,I.jsx)(`span`,{className:`text-sm`,children:`Star on GitHub`}),(0,I.jsx)(ax,{style:{height:`18px`,width:`18px`}})]})]})]})}),!me&&(0,I.jsx)(`div`,{className:`bg-github-border hover:bg-github-text-muted cursor-col-resize ${b?``:`!transition-all !duration-300 !ease-in-out`}`,style:{width:v?`4px`:`0px`},onMouseDown:zt,title:`Drag to resize file list`}),(0,I.jsx)(`main`,{ref:N,className:`flex-1 overflow-y-auto ${De?`pb-16`:``}`,children:e.files.map((t,r)=>{let a=St.get(t.path)??nC,o=ZS(pt,n,t.path)??rC,s=We.has(t.path);return(0,I.jsx)(`div`,{id:PS(t.path),"data-file-path":t.path,"data-rendered":s?`true`:`false`,ref:e=>qe(t.path,e),className:`mb-6`,onMouseEnter:()=>{kt.current=r},onMouseLeave:()=>{kt.current===r&&(kt.current=null)},children:s?(0,I.jsx)(Xb,{file:t,threads:a,showAuthorBadges:xt,diffMode:i,reviewedFiles:B,isChangedSinceViewed:ze.has(t.path),onToggleReviewed:Ft,collapsedFiles:A,onToggleCollapsed:$e,onToggleAllCollapsed:et,onAddComment:Ut,onGenerateThreadPrompt:Rt,onRemoveThread:xe,onReplyToThread:Gt,onRemoveMessage:Se,onUpdateMessage:Ce,onOpenInEditor:an?Jt:void 0,syntaxTheme:fe.syntaxTheme,baseCommitish:e.baseCommitish,targetCommitish:e.targetCommitish,cursor:At?.fileIndex===r?At:null,isFocused:At?.fileIndex===r,fileIndex:r,onLineClick:It,commentTrigger:Ct?.fileIndex===r?Ct:null,onCommentTriggerHandled:Lt,mergedChunks:o,expandLines:it,expandAllBetweenChunks:at,prefetchFileContent:st,isExpandLoading:rt,diffVersion:n}):(0,I.jsx)(`div`,{className:`bg-github-bg-secondary border border-github-border rounded-md px-4 py-3`,children:(0,I.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,I.jsxs)(`div`,{className:`min-w-0`,children:[(0,I.jsx)(`div`,{className:`text-xs uppercase tracking-wide text-github-text-muted`,children:`Deferred Rendering`}),(0,I.jsx)(`div`,{className:`text-sm font-mono text-github-text-primary truncate`,children:t.path})]}),(0,I.jsx)(`button`,{type:`button`,onClick:()=>Ge(t.path),className:`px-3 py-1.5 text-xs rounded border border-github-border text-github-text-secondary hover:text-github-text-primary hover:bg-github-bg-tertiary`,children:`Load now`})]})})},t.path)})})]}),De&&(0,I.jsx)(`div`,{className:`fixed bottom-0 left-0 right-0 z-20 bg-github-bg-secondary border-t border-github-border px-4 py-2 flex justify-end`,children:(0,I.jsx)(en,{commentsCount:_e.length,isCopiedAll:f,onCopyAll:Wt,onDeleteAll:we,onViewAll:()=>D(!0),direction:`up`,compact:!0})}),g&&(0,I.jsx)(zx,{isOpen:g,onClose:()=>_(!1),settings:fe,onSettingsChange:pe}),(0,I.jsx)(ox,{isOpen:jt,onClose:()=>Mt(!1)}),(0,I.jsx)(Qr,{isOpen:E,onClose:()=>D(!1),onNavigate:Kt,comments:bt,showAuthorBadges:xt,onRemoveThread:xe,onGenerateThreadPrompt:Rt,onReplyToThread:Gt,onRemoveMessage:Se,onUpdateMessage:Ce,syntaxTheme:fe.syntaxTheme})]})})}var hC=document.getElementById(`root`);if(!hC)throw Error(`Root element not found`);ee.createRoot(hC).render((0,I.jsx)(F.StrictMode,{children:(0,I.jsx)(Te,{initiallyActiveScopes:[`navigation`],children:(0,I.jsx)(mC,{})})}));export{o as n,l as r,H as t};
|