pulls.review 0.3.0 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/client/assets/ActionButton-wEgApzce.js +1 -0
- package/dist/client/assets/ActionIconButton-wh9iuTi4.js +1 -0
- package/dist/client/assets/{ChatMessage-Ccffh_8Z.js → ChatMessage-wZOblr2O.js} +23 -23
- package/dist/client/assets/ChatWidget-Dbic6F6V.js +1 -0
- package/dist/client/assets/DisplayFileIcon-DffhOXN6.js +151 -0
- package/dist/client/assets/GithubAvatar-eLlc5vap.js +1 -0
- package/dist/client/assets/LandingHero-Bb_CGwOP.js +1 -0
- package/dist/client/assets/LocalAgentSettings-CWvSCuNr.js +1 -0
- package/dist/client/assets/ModelPicker-CLoBWotf.js +3 -0
- package/dist/client/assets/SelectViewport-Dt28PIGK.js +1 -0
- package/dist/client/assets/_repo_-BIF9MuRW.js +22 -0
- package/dist/client/assets/analyze-B3YV6_zK.js +1 -0
- package/dist/client/assets/{core-messages-CsAgH4H9.js → core-messages-E0LWb5xA.js} +1 -1
- package/dist/client/assets/de-BfUc2exP.js +1 -0
- package/dist/client/assets/{diagnostics-CrG4-M7r.js → diagnostics-DundJi2s.js} +1 -1
- package/dist/client/assets/diff-BwixkBTz.js +1 -0
- package/dist/client/assets/{diff-Bq6jHPox.js → diff-Coo81SbJ.js} +3 -3
- package/dist/client/assets/diffs-store-BPvgHGVY.js +1431 -0
- package/dist/client/assets/en-OkC_9BLh.js +1 -0
- package/dist/client/assets/es-DuVRv3jP.js +1 -0
- package/dist/client/assets/fr-BI5_M_ty.js +1 -0
- package/dist/client/assets/glimmer-js-BheR6Tf0.js +1 -0
- package/dist/client/assets/glimmer-ts-B3Q3-uij.js +1 -0
- package/dist/client/assets/handlebars-qjPKy-PP.js +1 -0
- package/dist/client/assets/i18n-DtZTpAlH.js +2 -0
- package/dist/client/assets/id-BU9INgNZ.js +1 -0
- package/dist/client/assets/{index-DP4XBqUv.js → index-Buksdj5x.js} +2 -2
- package/dist/client/assets/index-m8kW8Q0V.css +1 -0
- package/dist/client/assets/{install-DKy8VRs5.js → install-BrSGg9K8.js} +3 -3
- package/dist/client/assets/it-C2TUiK_A.js +1 -0
- package/dist/client/assets/ja-BQDWzjgo.js +1 -0
- package/dist/client/assets/ko-Ca7kDPia.js +1 -0
- package/dist/client/assets/{llm-XBWohzAo.js → llm-5e9k-gOP.js} +5 -4
- package/dist/client/assets/llm-store-1j45N-6d.js +1 -0
- package/dist/client/assets/local-agents-0SHBuj0A.js +1 -0
- package/dist/client/assets/{pages-Tf2MYsp8.js → pages-hDJHVoGR.js} +1 -1
- package/dist/client/assets/pages-local-0BoMyVi4.js +1 -0
- package/dist/client/assets/pages-web-QiNoFNlt.js +21 -0
- package/dist/client/assets/{portalTarget-DQg8GgWm.js → portalTarget-I9JDQCD2.js} +1 -1
- package/dist/client/assets/pt-BR-DcjGEP2y.js +1 -0
- package/dist/client/assets/{rpc-backends-CLzNPIWN.js → rpc-backends-arDnFRtp.js} +1 -1
- package/dist/client/assets/ru-DhCHBcLb.js +1 -0
- package/dist/client/assets/{ruby-CfFGiaYl.js → ruby-CaMjWH7T.js} +1 -1
- package/dist/client/assets/runtime-dom.esm-bundler-DL194Z-s.js +2 -0
- package/dist/client/assets/{source-Dk1PNoY7.js → source-CvnvCX42.js} +1 -1
- package/dist/client/assets/upload-Bi-0MPhd.js +1 -0
- package/dist/client/assets/useDocumentTitle-DSsMzDvH.js +92 -0
- package/dist/client/assets/useNonce-DujRSGP5.js +1 -0
- package/dist/client/assets/useTypeahead-CV0JPPYe.js +1 -0
- package/dist/client/assets/utils-bzkWQhBP.js +1 -0
- package/dist/client/assets/vue-i18n-B4RRzKT-.js +5 -0
- package/dist/client/assets/zh-CN-DKqrk-nJ.js +1 -0
- package/dist/client/assets/zh-TW-CXhwUL4C.js +1 -0
- package/dist/client/index.html +8 -8
- package/dist/{devframe-D66W-pHy.mjs → devframe-Z3sgjlMJ.mjs} +325 -56
- package/dist/devframe.mjs +1 -1
- package/dist/index.mjs +2 -2
- package/package.json +2 -2
- package/dist/client/assets/ActionButton-V4dY2wPS.js +0 -1
- package/dist/client/assets/ActionIconButton-4b5xelMn.js +0 -1
- package/dist/client/assets/ChatWidget-BFjNWi3R.js +0 -1
- package/dist/client/assets/DisplayFileIcon-DIcJdZir.js +0 -151
- package/dist/client/assets/GithubAvatar-DGJrpCsX.js +0 -1
- package/dist/client/assets/LandingHero-CS9lP7Qs.js +0 -1
- package/dist/client/assets/LocalAgentSettings-C4AeYCZ0.js +0 -1
- package/dist/client/assets/ModelPicker-CDTiUMZ3.js +0 -3
- package/dist/client/assets/SelectViewport-DF4P4Akh.js +0 -1
- package/dist/client/assets/_repo_-DtGh1V5_.js +0 -22
- package/dist/client/assets/analyze-CTcNbJBk.js +0 -1
- package/dist/client/assets/de-DQCc3irO.js +0 -1
- package/dist/client/assets/diff-BsZcYqbE.js +0 -1
- package/dist/client/assets/diffs-store-CzecLzBW.js +0 -1431
- package/dist/client/assets/en-CBwAorrh.js +0 -1
- package/dist/client/assets/es-hetdr90_.js +0 -1
- package/dist/client/assets/fr-Cayf6fbk.js +0 -1
- package/dist/client/assets/i18n-CgsK6PK3.js +0 -2
- package/dist/client/assets/id-lw2zLhUO.js +0 -1
- package/dist/client/assets/index-DSHKSKKf.css +0 -1
- package/dist/client/assets/it-BfFzmCsC.js +0 -1
- package/dist/client/assets/ja-DxaV4C1r.js +0 -1
- package/dist/client/assets/ko-D93r2P2k.js +0 -1
- package/dist/client/assets/llm-store-7CdL0d74.js +0 -1
- package/dist/client/assets/local-agents-BQLn-Ppw.js +0 -1
- package/dist/client/assets/pages-local-iBHcLWBK.js +0 -1
- package/dist/client/assets/pages-web-Bmq8l7JI.js +0 -21
- package/dist/client/assets/pt-BR-Isafy_5V.js +0 -1
- package/dist/client/assets/ru-Bx9Wj7Aa.js +0 -1
- package/dist/client/assets/runtime-dom.esm-bundler-Du_ZCcVN.js +0 -2
- package/dist/client/assets/upload-CFwsDMhO.js +0 -1
- package/dist/client/assets/useDocumentTitle-ByFCALbG.js +0 -92
- package/dist/client/assets/useNonce-CwUrgryd.js +0 -1
- package/dist/client/assets/vue-i18n-CGHHpbTP.js +0 -5
- package/dist/client/assets/zh-CN-CgGEKuLF.js +0 -1
- package/dist/client/assets/zh-TW-DzNR26_1.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$n as e,Bt as t,C as n,Dr as r,Dt as i,E as a,G as o,Ht as s,It as c,J as l,Jt as u,K as d,Kn as f,Ot as p,P as m,Qt as h,Rn as g,St as _,Tr as v,W as y,Xt as b,Yt as x,an as S,b as C,dt as w,et as T,gn as E,kr as D,kt as O,ln as k,n as A,nr as j,pt as M,q as N,rt as P,tt as F,wn as I,xn as L,y as R,yn as z}from"./vue-i18n-B4RRzKT-.js";import{C as B,w as V}from"./runtime-dom.esm-bundler-DL194Z-s.js";import{A as H,C as ee,D as U,O as W,_ as G,a as K,b as te,c as ne,d as re,f as q,g as ie,h as ae,i as oe,k as J,l as se,m as ce,n as le,o as ue,p as Y,u as de,v as fe,w as pe,x as me,y as X}from"./ModelPicker-CLoBWotf.js";import{dt as he,t as ge,ut as _e}from"./useDocumentTitle-DSsMzDvH.js";import{i as ve,s as ye}from"./index-Buksdj5x.js";import{t as be}from"./ActionButton-wEgApzce.js";import{t as xe}from"./useTypeahead-CV0JPPYe.js";import{t as Se}from"./useNonce-DujRSGP5.js";import{a as Ce,n as we,r as Z}from"./pages-hDJHVoGR.js";import{i as Te,n as Ee,r as De,t as Oe}from"./LandingHero-Bb_CGwOP.js";import{t as ke}from"./portalTarget-I9JDQCD2.js";function Ae(e,t,n){let r=e.findIndex(e=>H(e,t)),i=e.findIndex(e=>H(e,n));if(r===-1||i===-1)return[];let[a,o]=[r,i].sort((e,t)=>e-t);return e.slice(a,o+1)}var je=/[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}\p{Script=Bopomofo}]/u,Me=/android/i;function Ne(){return typeof navigator<`u`&&Me.test(navigator.userAgent)}function Pe(e){let t=f(!1),n=f(!0),r=f(!1),i=y(()=>t.value&&n.value);function a(){t.value=!0,n.value=!0,r.value=!1}function o(e){e.data&&(je.test(e.data)?(n.value=!0,r.value=!0):Ne()&&!r.value&&(n.value=!1))}function s(n){O(()=>{t.value=!1,e?.(n)})}return{isComposing:t,shouldDeferInput:i,handleCompositionStart:a,handleCompositionUpdate:o,handleCompositionEnd:s}}function Fe(e){let t=y(()=>j(e)),n=y(()=>new Intl.Collator(`en`,{usage:`search`,...t.value}));return{startsWith:(e,t)=>t.length===0||(e=e.normalize(`NFC`),t=t.normalize(`NFC`),n.value.compare(e.slice(0,t.length),t)===0),endsWith:(e,t)=>t.length===0||(e=e.normalize(`NFC`),t=t.normalize(`NFC`),n.value.compare(e.slice(-t.length),t)===0),contains:(e,t)=>{if(t.length===0)return!0;if(e=e.normalize(`NFC`),t=t.normalize(`NFC`),t.length>e.length)return!1;let r=n.value.compare;if(e.includes(t))return!0;let i=t.length;for(let n=0;n+i<=e.length;n++)if(r(t,e.slice(n,n+i))===0)return!0;return!1}}}function Ie(){return{ALT:`Alt`,ARROW_DOWN:`ArrowDown`,ARROW_LEFT:`ArrowLeft`,ARROW_RIGHT:`ArrowRight`,ARROW_UP:`ArrowUp`,BACKSPACE:`Backspace`,CAPS_LOCK:`CapsLock`,CONTROL:`Control`,DELETE:`Delete`,END:`End`,ENTER:`Enter`,ESCAPE:`Escape`,F1:`F1`,F10:`F10`,F11:`F11`,F12:`F12`,F2:`F2`,F3:`F3`,F4:`F4`,F5:`F5`,F6:`F6`,F7:`F7`,F8:`F8`,F9:`F9`,HOME:`Home`,META:`Meta`,PAGE_DOWN:`PageDown`,PAGE_UP:`PageUp`,SHIFT:`Shift`,SPACE:` `,TAB:`Tab`,CTRL:`Control`,ASTERISK:`*`,SPACE_CODE:`Space`}}function Le(e,t,n){return e===void 0?!1:Array.isArray(e)?e.some(e=>Q(e,t,n)):Q(e,t,n)}function Q(e,t,n){return e===void 0||t===void 0?!1:typeof e==`string`?e===t:typeof n==`function`?n(e,t):typeof n==`string`?e?.[n]===t?.[n]:H(e,t)}var[Re,ze]=J(`ListboxRoot`),[Be,Ve]=J(`ListboxHighlightScroll`),He=P({__name:`ListboxRoot`,props:{modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1},multiple:{type:Boolean,required:!1},orientation:{type:String,required:!1,default:`vertical`},dir:{type:String,required:!1},disabled:{type:Boolean,required:!1},selectionBehavior:{type:String,required:!1,default:`toggle`},highlightOnHover:{type:Boolean,required:!1},by:{type:[String,Function],required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:[`update:modelValue`,`highlight`,`entryFocus`,`leave`],setup(t,{expose:r,emit:i}){let a=t,o=i,{multiple:c,highlightOnHover:l,orientation:u,disabled:p,selectionBehavior:m,dir:h}=e(a),{getItems:g,getItem:_}=ne({isProvider:!0}),{handleTypeaheadSearch:v}=xe(),{primitiveElement:y,currentElement:b}=q(),S=Ie(),w=ee(h),T=Be(null);Ve({suppressHighlightScroll:f(!1),onHighlightScrollRequest:()=>{}});let D=te(b),k=f(),A=f(!1),M=f(!0),P=R(a,`modelValue`,o,{defaultValue:a.defaultValue??(c.value?[]:void 0),passive:a.modelValue===void 0,deep:!0});function F(e){if(A.value=!0,a.multiple){let t=Array.isArray(P.value)?[...P.value]:[],n=t.findIndex(t=>Q(t,e,a.by));a.selectionBehavior===`toggle`?(n===-1?t.push(e):t.splice(n,1),P.value=t):(P.value=[e],k.value=e)}else a.selectionBehavior===`toggle`&&Q(P.value,e,a.by)?P.value=void 0:P.value=e;setTimeout(()=>{A.value=!1},1)}let I=f(null),z=f(null),B=f(!1),V=f(!1),H=C(),U=C(),W=C();function G(){return g().map(e=>e.ref).filter(e=>e.dataset.disabled!==``)}function K(e,t=!0,n){if(!e)return;I.value=e;let r=T?.suppressHighlightScroll.value??!1;(n??M.value)&&(r?I.value.focus({preventScroll:!0}):I.value.focus()),r?T?.onHighlightScrollRequest(t?()=>{let e=I.value;e?.isConnected&&e.scrollIntoView({block:`nearest`})}:void 0):t&&I.value.scrollIntoView({block:`nearest`});let i=_(e);o(`highlight`,i)}function re(e){if(B.value)W.trigger(e);else{let t=g().find(t=>Q(t.value,e,a.by));t&&(I.value=t.ref,K(t.ref))}}function ie(e){if(I.value&&I.value.isConnected){if(e.ctrlKey||e.metaKey||e.altKey)return;e.preventDefault(),e.stopPropagation(),V.value||I.value.click()}}function ae(e){if(M.value){if(A.value=!0,B.value)U.trigger(e);else{let t=e.altKey||e.ctrlKey||e.metaKey;if(t&&e.key===`a`&&c.value){let t=g(),n=t.map(e=>e.value);P.value=[...n],e.preventDefault();let r=t.at(-1);r&&K(r.ref)}else if(!t){let t=v(e.key,g());t&&K(t)}}setTimeout(()=>{A.value=!1},1)}}function oe(){V.value=!0}function J(){O(()=>{V.value=!1})}function se(){O(()=>{ue(new KeyboardEvent(`keydown`,{key:`PageUp`}))})}function ce(e){let t=I.value;t?.isConnected&&(z.value=t),I.value=null,o(`leave`,e)}function le(e){let t=new CustomEvent(`listbox.entryFocus`,{bubbles:!1,cancelable:!0});if(e.currentTarget?.dispatchEvent(t),o(`entryFocus`,t),!t.defaultPrevented){if(z.value)K(z.value);else{let e=G()?.[0];K(e)}}}function ue(e){let t=_e(e,u.value,w.value);if(!t)return;let n=G();if(I.value){if(t===`last`)n.reverse();else if(t===`prev`||t===`next`){t===`prev`&&n.reverse();let e=n.indexOf(I.value);n=n.slice(e+1)}de(e,n[0])}if(n.length){let e=!I.value&&t===`prev`?n.length-1:0;K(n[e])}if(B.value)return U.trigger(e)}function de(e,t){if(!B.value&&a.selectionBehavior===`replace`&&c.value&&Array.isArray(P.value)&&(!e.altKey&&!e.ctrlKey&&!e.metaKey||e.shiftKey)&&e.shiftKey){let n=g().filter(e=>e.ref.dataset.disabled!==``),r=n.find(e=>e.ref===t)?.value;if(e.key===S.END?r=n.at(-1)?.value:e.key===S.HOME&&(r=n[0]?.value),!r||!k.value)return;let i=Ae(n.map(e=>e.value),k.value,r);P.value=i}}async function fe(e,t=!0){if(n){if(await O(),B.value)H.trigger({event:e,scroll:t});else{let e=G(),n=e.find(e=>e.dataset.state===`checked`),r=t?void 0:!1;n?K(n,t,r):e.length&&K(e[0],t,r)}}}let pe=!1;return E(P,()=>{if(!A.value){let e=pe;pe=!0,O(()=>{fe(void 0,e)})}},{immediate:!0,deep:!0}),r({highlightedElement:I,highlightItem:re,highlightFirstItem:se,highlightSelected:fe,getItems:g}),ze({modelValue:P,onValueChange:F,multiple:c,orientation:u,dir:w,disabled:p,highlightOnHover:l,highlightedElement:I,isVirtual:B,virtualFocusHook:H,virtualKeydownHook:U,virtualHighlightHook:W,by:a.by,firstValue:k,selectionBehavior:m,focusable:M,onLeave:ce,onEnter:le,changeHighlight:K,onKeydownEnter:ie,onKeydownNavigation:ue,onKeydownTypeAhead:ae,onCompositionStart:oe,onCompositionEnd:J,highlightFirstItem:se}),(e,t)=>(s(),d(j(Y),{ref_key:`primitiveElement`,ref:y,as:e.as,"as-child":e.asChild,dir:j(w),"data-disabled":j(p)?``:void 0,onPointerleave:ce,onFocusout:t[0]||=async e=>{let t=e.relatedTarget||e.target;await O(),I.value&&j(b)&&!j(b).contains(t)&&ce(e)}},{default:L(()=>[x(e.$slots,`default`,{modelValue:j(P)}),j(D)&&e.name?(s(),d(j(he),{key:0,name:e.name,value:j(P),disabled:j(p),required:e.required},null,8,[`name`,`value`,`disabled`,`required`])):N(`v-if`,!0)]),_:3},8,[`as`,`as-child`,`dir`,`data-disabled`]))}}),Ue=P({__name:`ListboxContent`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let{CollectionSlot:t}=ne(),n=Re(),r=a(!1,10);return(e,i)=>(s(),d(j(t),null,{default:L(()=>[F(j(Y),{role:`listbox`,as:e.as,"as-child":e.asChild,tabindex:j(n).focusable.value?j(n).highlightedElement.value?`-1`:`0`:`-1`,"aria-orientation":j(n).orientation.value,"aria-multiselectable":!!j(n).multiple.value,"data-orientation":j(n).orientation.value,onMousedown:i[0]||=V(e=>r.value=!0,[`left`]),onFocus:i[1]||=e=>{j(r)||j(n).onEnter(e)},onKeydown:[i[2]||=B(e=>{(j(n).orientation.value!==`vertical`||e.key!==`ArrowLeft`&&e.key!==`ArrowRight`)&&(j(n).orientation.value!==`horizontal`||e.key!==`ArrowUp`&&e.key!==`ArrowDown`)&&(e.preventDefault(),j(n).focusable.value&&j(n).onKeydownNavigation(e))},[`down`,`up`,`left`,`right`,`home`,`end`]),B(j(n).onKeydownEnter,[`enter`]),j(n).onKeydownTypeAhead]},{default:L(()=>[x(e.$slots,`default`)]),_:3},8,[`as`,`as-child`,`tabindex`,`aria-orientation`,`aria-multiselectable`,`data-orientation`,`onKeydown`])]),_:3}))}}),We=P({__name:`ListboxFilter`,props:{modelValue:{type:String,required:!1},autoFocus:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`input`}},emits:[`update:modelValue`],setup(e,{emit:n}){let r=e,i=R(r,`modelValue`,n,{defaultValue:``,passive:r.modelValue===void 0}),a=Re(),{primitiveElement:o,currentElement:l}=q(),u=y(()=>r.disabled||a.disabled.value||!1),p=f();z(()=>p.value=a.highlightedElement.value?.id),c(()=>{a.focusable.value=!1,setTimeout(()=>{r.autoFocus&&l.value?.focus()},1)}),t(()=>{a.focusable.value=!0});let{isComposing:m,shouldDeferInput:h,handleCompositionStart:g,handleCompositionUpdate:_,handleCompositionEnd:v}=Pe(e=>{i.value=e.target.value,a.onCompositionEnd(),a.highlightFirstItem()});function b(){a.onCompositionStart(),g()}function S(e){h.value||(i.value=e.target.value,a.highlightFirstItem())}function C(e){m.value||(e.preventDefault(),a.onKeydownNavigation(e))}function w(e){m.value||a.onKeydownEnter(e)}return(e,t)=>(s(),d(j(Y),{ref_key:`primitiveElement`,ref:o,as:e.as,"as-child":e.asChild,value:j(i),disabled:u.value?``:void 0,"data-disabled":u.value?``:void 0,"aria-disabled":u.value??void 0,"aria-activedescendant":p.value,type:`text`,onKeydown:[B(C,[`down`,`up`,`home`,`end`]),B(w,[`enter`])],onInput:S,onCompositionstart:b,onCompositionupdate:j(_),onCompositionend:j(v)},{default:L(()=>[x(e.$slots,`default`,{modelValue:j(i)})]),_:3},8,[`as`,`as-child`,`value`,`disabled`,`data-disabled`,`aria-disabled`,`aria-activedescendant`,`onCompositionupdate`,`onCompositionend`]))}}),Ge=`listbox.select`,[Ke,qe]=J(`ListboxItem`),Je=P({__name:`ListboxItem`,props:{value:{type:null,required:!0},disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`div`}},emits:[`select`],setup(e,{emit:t}){let n=e,r=t,i=ae(void 0,`reka-listbox-item`),{CollectionItem:a}=ne(),{forwardRef:o,currentElement:c}=X(),l=Re(),u=y(()=>c.value!=null&&c.value===l.highlightedElement.value),f=y(()=>Le(l.modelValue.value,n.value,l.by)),m=y(()=>l.disabled.value||n.disabled);async function h(e){r(`select`,e),!e?.defaultPrevented&&!m.value&&e&&(l.onValueChange(n.value),l.changeHighlight(c.value))}function g(e){let t={originalEvent:e,value:n.value};U(Ge,h,t)}return qe({isSelected:f}),(e,t)=>(s(),d(j(a),{value:e.value},{default:L(()=>[I([u.value,f.value,m.value,j(l).focusable.value,...Object.entries(e.$attrs).flat()],()=>F(j(Y),p({id:j(i)},e.$attrs,{ref:j(o),role:`option`,tabindex:j(l).focusable.value?u.value?`0`:`-1`:-1,"aria-selected":f.value,as:e.as,"as-child":e.asChild,disabled:m.value?``:void 0,"data-disabled":m.value?``:void 0,"data-highlighted":u.value?``:void 0,"data-state":f.value?`checked`:`unchecked`,onClick:g,onKeydown:B(V(g,[`prevent`]),[`space`]),onPointermove:t[0]||=()=>{j(l).highlightedElement.value!==j(c)&&j(l).highlightOnHover.value&&j(l).changeHighlight(j(c),!1,!1)}}),{default:L(()=>[x(e.$slots,`default`)]),_:3},16,[`id`,`tabindex`,`aria-selected`,`as`,`as-child`,`disabled`,`data-disabled`,`data-highlighted`,`data-state`,`onKeydown`]),t,1)]),_:3},8,[`value`]))}});function Ye(e){let t=f(`inline`),n=f(!1),r=f(),i=y(()=>t.value===`popper`&&!n.value),a;Ve({suppressHighlightScroll:i,onHighlightScrollRequest(e){a=e}});function o(e,i){(r.value!==e||t.value!==i)&&(n.value=!1,a=void 0),r.value=e,t.value=i}function s(i){if(r.value!==i||t.value!==`popper`||n.value)return;n.value=!0;let o=a;a=void 0,e.value&&o?.()}function c(e){r.value===e&&(r.value=void 0,t.value=`inline`,n.value=!1,a=void 0)}return{onContentPositionChange:o,onContentPlaced:s,onContentUnmount:c}}var[$,Xe]=J(`ComboboxRoot`),[Ze,Qe]=J(`AutocompleteRoot`),$e=P({__name:`AutocompleteRoot`,props:{modelValue:{type:String,required:!1},defaultValue:{type:String,required:!1},open:{type:Boolean,required:!1,default:void 0},defaultOpen:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},dir:{type:String,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1},resetSearchTermOnBlur:{type:Boolean,required:!1,default:!1},openOnFocus:{type:Boolean,required:!1,default:!1},openOnClick:{type:Boolean,required:!1,default:!1},ignoreFilter:{type:Boolean,required:!1},highlightOnHover:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`update:modelValue`,`highlight`,`update:open`],setup(t,{expose:n,emit:r}){let i=t,a=r,{primitiveElement:o,currentElement:l}=q(),{disabled:u,ignoreFilter:m,openOnFocus:h,openOnClick:g,dir:_,highlightOnHover:v}=e(i),b=ee(_),S=R(i,`modelValue`,a,{defaultValue:i.defaultValue??``,passive:i.modelValue===void 0}),T=R(i,`open`,a,{defaultValue:i.defaultOpen,passive:i.open===void 0}),E=y({get:()=>S.value,set:e=>{e==null?S.value=``:S.value=String(e)}});async function D(e){T.value=e,e?(U.value=S.value||``,await O(),o.value?.highlightSelected(),A.value=!0,N.value?.focus()):(A.value=!1,U.value=``,setTimeout(()=>{!e&&i.resetSearchTermOnBlur&&k.trigger()},1))}let k=C(),A=f(!1),M=f(!1),N=f(),P=f(),I=y(()=>o.value?.highlightedElement??void 0),z=Ye(T),B=f(new Map),V=f(new Map),{contains:H}=Fe({sensitivity:`base`}),U=f(``),W=y(e=>{if(!U.value||i.ignoreFilter||M.value)return{count:B.value.size,items:e?.items??new Map,groups:e?.groups??new Set(V.value.keys())};let t=0,n=new Map,r=new Set;for(let[e,r]of B.value){let i=H(r,U.value);n.set(e,+!!i),i&&t++}for(let[e,t]of V.value)for(let i of t)if(n.get(i)>0){r.add(e);break}return{count:t,items:n,groups:r}}),G=w();return c(()=>{G?.exposed&&(G.exposed.highlightItem=o.value?.highlightItem,G.exposed.highlightFirstItem=o.value?.highlightFirstItem,G.exposed.highlightSelected=o.value?.highlightSelected)}),n({filtered:W,highlightedElement:I,highlightItem:o.value?.highlightItem,highlightFirstItem:o.value?.highlightFirstItem,highlightSelected:o.value?.highlightSelected}),Xe({modelValue:E,multiple:f(!1),disabled:u,open:T,onOpenChange:D,...z,contentId:``,isUserInputted:A,isVirtual:M,inputElement:N,highlightedElement:I,onInputElementChange:e=>N.value=e,triggerElement:P,onTriggerElementChange:e=>P.value=e,parentElement:l,resetSearchTermOnSelect:f(!1),onResetSearchTerm:k.on,allItems:B,allGroups:V,filterSearch:U,filterState:W,ignoreFilter:m,openOnFocus:h,openOnClick:g,resetModelValueOnClear:f(!0)}),Qe({modelValue:S}),(e,t)=>(s(),d(j(ue),null,{default:L(()=>[F(j(He),p({ref_key:`primitiveElement`,ref:o},e.$attrs,{modelValue:E.value,"onUpdate:modelValue":t[0]||=e=>E.value=e,style:{pointerEvents:j(T)?`auto`:void 0},as:e.as,"as-child":e.asChild,dir:j(b),name:e.name,required:e.required,disabled:j(u),"highlight-on-hover":j(v),onHighlight:t[1]||=e=>a(`highlight`,e)}),{default:L(()=>[x(e.$slots,`default`,{open:j(T),modelValue:j(S)})]),_:3},16,[`modelValue`,`style`,`as`,`as-child`,`dir`,`name`,`required`,`disabled`,`highlight-on-hover`])]),_:3}))}}),et=P({__name:`AutocompleteInput`,props:{modelValue:{type:String,required:!1},autoFocus:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`input`}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=e,r=t,i=$(),a=Ze(),o=Re(),{primitiveElement:l,currentElement:u}=q(),f=R(n,`modelValue`,r,{passive:n.modelValue===void 0});a.modelValue.value&&(f.value=a.modelValue.value),c(()=>{u.value&&i.onInputElementChange(u.value)});let{isComposing:p,shouldDeferInput:m,handleCompositionStart:h,handleCompositionUpdate:_,handleCompositionEnd:v}=Pe(e=>{let t=e.target;t&&b(t.value)});function y(e){p.value||(e.preventDefault(),i.open.value||i.onOpenChange(!0))}function b(e){i.open.value?i.filterSearch.value=e:(i.onOpenChange(!0),O(()=>{e&&(i.filterSearch.value=e,o.highlightFirstItem())})),a.modelValue.value=e}function S(e){m.value||b(e.target.value)}function C(){i.openOnFocus.value&&!i.open.value&&i.onOpenChange(!0)}function w(){i.openOnClick.value&&!i.open.value&&i.onOpenChange(!0)}return E(a.modelValue,e=>{let t=e??``;f.value!==t&&(f.value=t)}),i.onResetSearchTerm(()=>{f.value=a.modelValue.value??``}),E(i.filterState,(e,t)=>{!i.isVirtual.value&&t.count===0&&o.highlightFirstItem()}),(e,t)=>(s(),d(j(We),{ref_key:`primitiveElement`,ref:l,modelValue:j(f),"onUpdate:modelValue":t[0]||=e=>g(f)?f.value=e:null,as:e.as,"as-child":e.asChild,"auto-focus":e.autoFocus,disabled:e.disabled,"aria-expanded":j(i).open.value,"aria-controls":j(i).contentId,"aria-autocomplete":`list`,role:`combobox`,autocomplete:`off`,onClick:w,onInput:S,onKeydown:B(y,[`down`,`up`]),onFocus:C,onCompositionstart:j(h),onCompositionupdate:j(_),onCompositionend:j(v)},{default:L(()=>[x(e.$slots,`default`)]),_:3},8,[`modelValue`,`as`,`as-child`,`auto-focus`,`disabled`,`aria-expanded`,`aria-controls`,`onCompositionstart`,`onCompositionupdate`,`onCompositionend`]))}}),tt=P({__name:`ComboboxAnchor`,props:{reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let{forwardRef:t}=X();return(e,n)=>(s(),d(j(K),{"as-child":``,reference:e.reference},{default:L(()=>[F(j(Y),p({ref:j(t),"as-child":e.asChild,as:e.as},e.$attrs),{default:L(()=>[x(e.$slots,`default`)]),_:3},16,[`as-child`,`as`])]),_:3},8,[`reference`]))}}),[nt,rt]=J(`ComboboxContent`),it=P({__name:`ComboboxContentImpl`,props:{position:{type:String,required:!1,default:`inline`},bodyLock:{type:Boolean,required:!1},hideWhenEmpty:{type:Boolean,required:!1},memoDependencies:{type:Array,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},dir:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`],setup(n,{emit:r}){let i=n,a=r,{position:o}=e(i),l=$(),u=Symbol(`ComboboxContent`);E(o,e=>l.onContentPositionChange(u,e),{immediate:!0});let m=y(()=>l.ignoreFilter.value?l.allItems.value.size===0:l.filterState.value.count===0),{forwardRef:g,currentElement:_}=X();pe(i.bodyLock),me(),ie(l.parentElement);let v=y(()=>i.position===`popper`?i:{}),b=fe(v.value),C={boxSizing:`border-box`,"--reka-combobox-content-transform-origin":`var(--reka-popper-transform-origin)`,"--reka-combobox-content-available-width":`var(--reka-popper-available-width)`,"--reka-combobox-content-available-height":`var(--reka-popper-available-height)`,"--reka-combobox-trigger-width":`var(--reka-popper-anchor-width)`,"--reka-combobox-trigger-height":`var(--reka-popper-anchor-height)`};rt({position:o});let w=f(!1);c(()=>{l.inputElement.value&&(w.value=_.value.contains(l.inputElement.value),w.value&&l.inputElement.value.focus())}),t(()=>{l.onContentUnmount(u);let e=W();w.value&&(!e||e===document.body)&&l.triggerElement.value?.focus()});function T(e){if(l.parentElement.value?.contains(e))return!0;let t=(e instanceof Element?e.closest(`label`):null)?.control;return!!t&&!!l.parentElement.value?.contains(t)}let D={placed:()=>l.onContentPlaced(u)};return(e,t)=>(s(),d(j(Ue),{"as-child":``},{default:L(()=>[F(j(de),{"as-child":``,onMountAutoFocus:t[5]||=V(()=>{},[`prevent`]),onUnmountAutoFocus:t[6]||=V(()=>{},[`prevent`])},{default:L(()=>[F(j(re),{"as-child":``,"disable-outside-pointer-events":e.disableOutsidePointerEvents,onDismiss:t[0]||=e=>j(l).onOpenChange(!1),onFocusOutside:t[1]||=e=>{T(e.target)&&e.preventDefault(),a(`focusOutside`,e)},onInteractOutside:t[2]||=e=>a(`interactOutside`,e),onEscapeKeyDown:t[3]||=e=>a(`escapeKeyDown`,e),onPointerDownOutside:t[4]||=e=>{T(e.target)&&e.preventDefault(),a(`pointerDownOutside`,e)}},{default:L(()=>[(s(),d(h(j(o)===`popper`?j(oe):j(Y)),p({...e.$attrs,...j(b)},{id:j(l).contentId,ref:j(g),"memo-dependencies":j(o)===`popper`?[j(l).filterSearch.value,j(l).filterState.value]:void 0,"data-state":j(l).open.value?`open`:`closed`,"data-empty":m.value?``:void 0,style:{display:i.hideWhenEmpty&&m.value?`none`:`flex`,flexDirection:`column`,outline:`none`,...j(o)===`popper`?C:{}}},S(j(o)===`popper`?D:{})),{default:L(()=>[x(e.$slots,`default`)]),_:3},16,[`id`,`memo-dependencies`,`data-state`,`data-empty`,`style`]))]),_:3},8,[`disable-outside-pointer-events`])]),_:3})]),_:3}))}}),at=P({__name:`ComboboxContent`,props:{forceMount:{type:Boolean,required:!1},position:{type:String,required:!1},bodyLock:{type:Boolean,required:!1},hideWhenEmpty:{type:Boolean,required:!1},memoDependencies:{type:Array,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},dir:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`],setup(e,{emit:t}){let n=G(e,t),{forwardRef:r}=X(),i=$();return i.contentId||=ae(void 0,`reka-combobox-content`),(e,t)=>(s(),d(j(ce),{present:e.forceMount||j(i).open.value},{default:L(()=>[F(it,p({...j(n),...e.$attrs},{ref:j(r)}),{default:L(()=>[x(e.$slots,`default`)]),_:3},16)]),_:3},8,[`present`]))}}),[ot,st]=J(`ComboboxGroup`),ct=P({__name:`ComboboxItem`,props:{textValue:{type:String,required:!1},value:{type:null,required:!0},disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`select`],setup(e,{emit:n}){let r=e,i=n,a=ae(void 0,`reka-combobox-item`),o=$(),l=ot(null),{primitiveElement:u,currentElement:f}=q();if(r.value===``)throw Error(`A <ComboboxItem /> must have a value prop that is not an empty string. This is because the Combobox value can be set to an empty string to clear the selection and show the placeholder.`);let m=y(()=>{if(o.isVirtual.value||o.ignoreFilter.value||!o.filterSearch.value)return!0;{let e=o.filterState.value.items.get(a);return e===void 0||e>0}});return c(()=>{o.allItems.value.set(a,r.textValue||f.value.textContent||f.value.innerText);let e=l?.id;e&&(o.allGroups.value.has(e)?o.allGroups.value.get(e)?.add(a):o.allGroups.value.set(e,new Set([a])))}),t(()=>{o.allItems.value.delete(a)}),(e,t)=>m.value?I([m.value,j(o).filterSearch.value,j(o).disabled.value,e.disabled,r.value,r.as,r.asChild,...Object.values(e.$attrs)],()=>(s(),d(j(Je),p({key:0},r,{id:j(a),ref_key:`primitiveElement`,ref:u,disabled:j(o).disabled.value||e.disabled,onSelect:t[0]||=t=>{i(`select`,t),!t.defaultPrevented&&(!j(o).multiple.value&&!e.disabled&&!j(o).disabled.value?(t.preventDefault(),j(o).onOpenChange(!1),j(o).modelValue.value=r.value):j(o).multiple.value&&j(o).inputElement.value?.focus())}}),{default:L(()=>[x(e.$slots,`default`,{},()=>[T(D(e.value),1)])]),_:3},16,[`id`,`disabled`])),t,1):N(`v-if`,!0)}}),lt=P({__name:`ComboboxPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let t=e;return(e,n)=>(s(),d(j(se),r(M(t)),{default:L(()=>[x(e.$slots,`default`)]),_:3},16))}}),ut=P({__name:`ComboboxViewport`,props:{nonce:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t){let n=t,{forwardRef:r}=X(),{nonce:i}=e(n),a=Se(i),o=$();return(e,t)=>(s(),l(m,null,[F(j(Y),p({...e.$attrs,...n},{ref:j(r),"data-reka-combobox-viewport":``,role:`presentation`,style:{position:`relative`,flex:j(o).isVirtual.value?void 0:1,overflow:`auto`}}),{default:L(()=>[x(e.$slots,`default`)]),_:3},16,[`style`]),F(j(Y),{as:`style`,nonce:j(a)},{default:L(()=>t[0]||=[T(` /* Hide scrollbars cross-browser and enable momentum scroll for touch devices */ [data-reka-combobox-viewport] { scrollbar-width:none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; } [data-reka-combobox-viewport]::-webkit-scrollbar { display: none; } `)]),_:1,__:[0]},8,[`nonce`])],64))}}),dt={class:`truncate`},ft=P({inheritAttrs:!1,__name:`RefAutocomplete`,props:i({suggestions:{},placeholder:{},icon:{}},{modelValue:{default:``},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let t=k(e,`modelValue`),n=ke(()=>void 0),r={branch:`i-ph:git-branch-duotone`,tag:`i-ph:tag-duotone`};return(i,a)=>(s(),d(j($e),{modelValue:t.value,"onUpdate:modelValue":a[0]||=e=>t.value=e,"open-on-focus":``,"open-on-click":``},{default:L(()=>[F(j(tt),p(i.$attrs,{class:`h-9 min-w-0 inline-flex items-center gap-2 border border-base rounded bg-raised px-2 text-sm transition focus-within:ring-2 focus-within:ring-primary-500/40`}),{default:L(()=>[e.icon?(s(),l(`span`,{key:0,class:v([e.icon,`shrink-0 op-fade`]),"aria-hidden":`true`},null,2)):N(``,!0),F(j(et),{placeholder:e.placeholder,"aria-label":e.placeholder,class:`min-w-0 flex-1 bg-transparent color-base font-mono outline-none placeholder:op-mute`},null,8,[`placeholder`,`aria-label`])]),_:1},16),F(j(lt),{to:j(n)},{default:L(()=>[F(j(at),{position:`popper`,"side-offset":6,class:`z-dropdown max-h-72 min-w-[--reka-combobox-trigger-width] overflow-auto border border-base rounded-lg bg-glass:75 p-1 shadow-lg`,"data-af-animate":``},{default:L(()=>[F(j(ut),null,{default:L(()=>[(s(!0),l(m,null,u(e.suggestions,e=>(s(),d(j(ct),{key:`${e.kind}:${e.name}`,value:e.name,class:`flex cursor-pointer select-none items-center gap-2 rounded-md px-2 py-1.5 text-sm color-base font-mono outline-none transition data-[highlighted]:bg-hover`},{default:L(()=>[o(`span`,{class:v([r[e.kind],`shrink-0 op-fade`]),"aria-hidden":`true`},null,2),o(`span`,dt,D(e.name),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1})]),_:1},8,[`to`])]),_:1},8,[`modelValue`]))}}),pt={class:`relative min-h-screen flex flex-col`},mt={class:`mxa max-w-6xl w-full flex flex-1 flex-col px-6 py-16 sm:py-20`},ht={class:`grid items-start gap-12 lg:grid-cols-[minmax(0,1fr)_minmax(0,30rem)] lg:gap-16`},gt={class:`flex flex-col gap-8`},_t={class:`max-w-md text-sm leading-relaxed op-fade`},vt={class:`flex flex-col gap-3`},yt={class:`text-xs font-mono op-fade`},bt={class:`flex flex-wrap gap-2`},xt={class:`text-xs op-fade`},St={class:`max-w-md flex flex-col gap-3`},Ct={class:`text-xs font-mono op-fade`},wt={class:`min-w-0 flex flex-col gap-6`},Tt={key:0,class:`flex flex-col gap-2`},Et={class:`text-xs font-mono op-fade`},Dt={class:`flex flex-col border border-base rounded-lg py-1`},Ot={class:`min-w-0 flex-1 truncate font-mono`},kt=[`title`],At={key:1,class:`flex flex-col gap-2`},jt={class:`text-xs font-mono op-fade`},Mt={class:`flex flex-col border border-base rounded-lg py-1`},Nt={class:`shrink-0 text-xs op-fade`},Pt={class:`min-w-0 flex-1 truncate`},Ft=10,It=P({__name:`index`,setup(e){let t=_(Ce),n=ye(),{t:r}=A(),i=f(),a=f(``),p=f(``),h=y(()=>[...(i.value?.branches??[]).map(e=>({name:e,kind:`branch`})),...(i.value?.tags??[]).map(e=>({name:e,kind:`tag`}))]),g=y(()=>{let e=i.value?.currentBranch;return e&&e!==i.value?.defaultBranch?.name?e:void 0}),v=y(()=>(i.value?.branches??[]).filter(e=>e!==i.value?.defaultBranch?.name).slice(0,Ft));c(async()=>{i.value=await we(t),a.value||=i.value.defaultBranch?.ref??``,p.value||=i.value.currentBranch??`HEAD`});function x(){n.push(Z({kind:`compare`,range:`${a.value.trim()}...${p.value.trim()}`}))}let S=f(``),C=y(()=>ve(S.value));function w(){C.value&&n.push(C.value)}return ge(()=>r(`local.picker.title`)),(e,t)=>{let n=b(`RouterLink`);return s(),l(`div`,pt,[F(De),o(`main`,mt,[o(`section`,ht,[o(`div`,gt,[F(Oe),o(`p`,_t,D(e.$t(`local.picker.tagline`)),1),o(`form`,{class:`max-w-md flex items-stretch gap-2`,onSubmit:V(x,[`prevent`])},[F(ft,{modelValue:a.value,"onUpdate:modelValue":t[0]||=e=>a.value=e,suggestions:h.value,placeholder:e.$t(`local.picker.base`),icon:`i-ph:git-branch-duotone`,class:`flex-1`},null,8,[`modelValue`,`suggestions`,`placeholder`]),t[3]||=o(`span`,{class:`self-center font-mono op-fade`,"aria-hidden":`true`},`...`,-1),F(ft,{modelValue:p.value,"onUpdate:modelValue":t[1]||=e=>p.value=e,suggestions:h.value,placeholder:e.$t(`local.picker.head`),class:`flex-1`},null,8,[`modelValue`,`suggestions`,`placeholder`]),F(be,{type:`submit`,variant:`primary`,class:`pl-3 pr-4`,icon:`i-ph-arrow-right-bold`,disabled:!a.value.trim()||!p.value.trim()},{default:L(()=>[T(D(e.$t(`local.picker.compare`)),1)]),_:1},8,[`disabled`])],32),o(`div`,vt,[o(`h2`,yt,D(e.$t(`local.picker.shortcuts`)),1),o(`div`,bt,[g.value&&i.value?.defaultBranch?(s(),d(Ee,{key:0,to:j(Z)({kind:`branch`,branch:g.value}),parent:g.value},{default:L(()=>[o(`span`,xt,D(e.$t(`local.picker.against`,{base:i.value.defaultBranch.ref})),1)]),_:1},8,[`to`,`parent`])):N(``,!0),F(Ee,{to:j(Z)({kind:`worktree`}),parent:e.$t(`local.picker.worktree`)},null,8,[`to`,`parent`])])]),o(`div`,St,[o(`h2`,Ct,D(e.$t(`local.picker.github`)),1),o(`form`,{class:`flex items-stretch gap-2`,onSubmit:V(w,[`prevent`])},[F(le,{modelValue:S.value,"onUpdate:modelValue":t[2]||=e=>S.value=e,icon:`i-ph:link-simple-duotone`,placeholder:`https://github.com/owner/repo/pull/123`,class:`flex-1`},null,8,[`modelValue`]),F(be,{type:`submit`,variant:`primary`,class:`pl-3 pr-4`,icon:`i-ph-arrow-right-bold`,disabled:!C.value},{default:L(()=>[T(D(e.$t(`landing.open`)),1)]),_:1},8,[`disabled`])],32)])]),o(`div`,wt,[v.value.length&&i.value?.defaultBranch?(s(),l(`section`,Tt,[o(`h2`,Et,D(e.$t(`local.picker.branches`)),1),o(`ul`,Dt,[(s(!0),l(m,null,u(v.value,r=>(s(),l(`li`,{key:r},[F(n,{to:j(Z)({kind:`branch`,branch:r}),class:`flex items-center gap-2 px-3 py-1.5 text-sm transition hover:bg-hover`},{default:L(()=>[t[4]||=o(`span`,{class:`i-ph:git-branch-duotone shrink-0 op-fade`,"aria-hidden":`true`},null,-1),o(`span`,Ot,D(r),1),r===g.value?(s(),l(`span`,{key:0,class:`i-ph:check-circle-duotone shrink-0 color-accent-teal`,title:e.$t(`local.picker.current`)},null,8,kt)):N(``,!0)]),_:2},1032,[`to`])]))),128))])])):N(``,!0),i.value?.commits.length?(s(),l(`section`,At,[o(`h2`,jt,D(e.$t(`local.picker.recentCommits`)),1),o(`ul`,Mt,[(s(!0),l(m,null,u(i.value.commits,e=>(s(),l(`li`,{key:e.sha},[F(n,{to:j(Z)({kind:`commit`,sha:e.sha}),title:e.subject,class:`flex items-center gap-3 px-3 py-1.5 text-sm transition hover:bg-hover`},{default:L(()=>[o(`code`,Nt,D(e.sha.slice(0,7)),1),o(`span`,Pt,D(e.subject),1)]),_:2},1032,[`to`,`title`])]))),128))])])):N(``,!0)])])]),F(Te)])}}});export{It as default};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import{Cn as e,G as t,Ht as n,It as r,J as i,Jt as a,K as o,Kn as s,Mt as c,O as l,Or as u,P as d,Tr as f,W as p,Wn as m,Xt as h,Yt as g,_,_n as v,et as y,f as b,fn as x,g as S,gn as C,kr as w,ln as T,n as E,nr as D,q as O,rt as k,tt as A,xn as j}from"./vue-i18n-B4RRzKT-.js";import{w as M,x as N}from"./runtime-dom.esm-bundler-DL194Z-s.js";import{j as P,n as ee}from"./ModelPicker-CLoBWotf.js";import{a as F,n as te,t as ne,u as re}from"./useDocumentTitle-DSsMzDvH.js";import{d as ie,i as ae,n as oe,r as se,s as ce,t as I}from"./index-Buksdj5x.js";import{t as L}from"./ActionButton-wEgApzce.js";import{a as le,r as ue,s as de,t as fe}from"./DisplayFileIcon-DffhOXN6.js";import{n as pe,t as R}from"./GithubAvatar-eLlc5vap.js";import{i as me,n as he,r as ge,t as _e}from"./LandingHero-Bb_CGwOP.js";import{t as ve}from"./time-ago-Bdao9Hh1.js";import{t as ye}from"./uploadSession-BUj4FNau.js";var be=`javascript:${String.raw`(()=>{const R={'github.com':['https://pulls.review',[[/^\/([^/]+)\/([^/]+)\/pull\/(\d+).*$/,'/gh/$1/$2/$3'],[/^\/([^/]+)\/([^/]+)\/(commit\/[^/]+|compare\/.+\.\.\..+)$/,'/gh/$1/$2/$3'],[/^\/([^/]+)\/([^/]+)\/pulls\/?$/,'/gh/$1/$2']]],'pulls.review':['https://github.com',[[/^\/gh\/([^/]+)\/([^/]+)\/(\d+)\/?$/,'/$1/$2/pull/$3'],[/^\/gh\/([^/]+)\/([^/]+)\/(commit\/[^/]+|compare\/.+\.\.\..+)$/,'/$1/$2/$3'],[/^\/gh\/([^/]+)\/([^/]+)\/?$/,'/$1/$2/pulls']]]};const[o,r]=R[location.hostname]||[];const p=location.pathname;const m=r&&r.find(([x])=>x.test(p));m?location.href=o+p.replace(m[0],m[1]):alert('Open a pull request, commit or compare page on github.com or pulls.review.')})();`}`,xe=k({__name:`BookmarkletButton`,setup(e){return(e,t)=>(n(),o(L,{href:D(be),icon:`i-ph:bookmark-simple-duotone`,class:`cursor-grab active:cursor-grabbing`,title:e.$t(`landing.bookmarkletDrag`),onClick:t[0]||=M(()=>{},[`prevent`])},{default:j(()=>[...t[1]||=[y(` pulls.review ⇄ GitHub `,-1)]]),_:1},8,[`href`,`title`]))}}),Se=[`href`],Ce=k({__name:`ExternalLink`,props:{href:{}},setup(e){return(r,a)=>(n(),i(`a`,{href:e.href,target:`_blank`,rel:`noopener`,class:`inline-flex items-center gap-0.5 color-active hover:underline`},[g(r.$slots,`default`),a[0]||=t(`span`,{class:`i-ph:arrow-square-out text-[0.85em]`,"aria-hidden":`true`},null,-1)],8,Se))}}),we=typeof window<`u`,Te=we?window:null,Ee=we?document:null,z={OBJECT:0,ATTRIBUTE:1,CSS:2,TRANSFORM:3,CSS_VAR:4},B={NUMBER:0,UNIT:1,COLOR:2,COMPLEX:3},V={NONE:0,AUTO:1,FORCE:2},H={replace:0,none:1,blend:2},De=Symbol(),Oe=Symbol(),ke=Symbol(),Ae=Symbol(),je=Symbol(),U=1e-11,Me=0xe8d4a51000,Ne=1e3,Pe=[],Fe=(()=>{let e=new Map;return e.set(`x`,`translateX`),e.set(`y`,`translateY`),e.set(`z`,`translateZ`),e})(),Ie=[`perspective`,`translateX`,`translateY`,`translateZ`,`rotate`,`rotateX`,`rotateY`,`rotateZ`,`scale`,`scaleX`,`scaleY`,`scaleZ`,`skew`,`skewX`,`skewY`],Le=Ie.reduce((e,t)=>({...e,[t]:t+`(`}),{}),W=()=>{},Re=e=>e,ze=/\)\s*[-.\d]/,Be=/(^#([\da-f]{3}){1,2}$)|(^#([\da-f]{4}){1,2}$)/i,Ve=/rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/i,He=/rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*(-?\d+|-?\d*.\d+)\s*\)/i,Ue=/hsl\(\s*(-?\d+|-?\d*.\d+)\s*,\s*(-?\d+|-?\d*.\d+)%\s*,\s*(-?\d+|-?\d*.\d+)%\s*\)/i,We=/hsla\(\s*(-?\d+|-?\d*.\d+)\s*,\s*(-?\d+|-?\d*.\d+)%\s*,\s*(-?\d+|-?\d*.\d+)%\s*,\s*(-?\d+|-?\d*.\d+)\s*\)/i,Ge=/[-+]?\d*\.?\d+(?:e[-+]?\d)?/gi,Ke=/^([-+]?\d*\.?\d+(?:e[-+]?\d+)?)([a-z]+|%)$/i,qe=/([a-z])([A-Z])/g,Je=/(\*=|\+=|-=)/,Ye=/var\(\s*(--[\w-]+)(?:\s*,\s*([^)]+))?\s*\)/,Xe={id:null,keyframes:null,playbackEase:null,playbackRate:1,frameRate:240,loop:0,reversed:!1,alternate:!1,autoplay:!0,persist:!1,duration:Ne,delay:0,loopDelay:0,ease:`out(2)`,composition:H.replace,modifier:Re,onBegin:W,onBeforeUpdate:W,onUpdate:W,onLoop:W,onPause:W,onComplete:W,onRender:W},Ze={current:null,root:Ee},G={defaults:Xe,precision:4,timeScale:1,tickThreshold:200,editor:null},Qe={version:`4.5.0`,engine:null};we&&(Te.AnimeJS||=[],Te.AnimeJS.push(Qe));var $e=e=>e.replace(qe,`$1-$2`).toLowerCase(),et=(e,t)=>e.indexOf(t)===0,tt=Date.now,nt=Array.isArray,rt=e=>e&&e.constructor===Object,it=e=>typeof e==`number`&&!isNaN(e),at=e=>typeof e==`string`,ot=e=>typeof e==`function`,K=e=>e===void 0,st=e=>K(e)||e===null,ct=e=>we&&e instanceof SVGElement,lt=e=>Be.test(e),ut=e=>et(e,`rgb`),dt=e=>et(e,`hsl`),ft=e=>lt(e)||(ut(e)||dt(e))&&(e[e.length-1]===`)`||!ze.test(e)),pt=e=>!G.defaults.hasOwnProperty(e),mt=[`opacity`,`rotate`,`overflow`,`color`],ht=(e,t)=>{if(mt.includes(t))return!1;if(e.getAttribute(t)||t in e){if(t===`scale`){let t=e.parentNode;return t&&t.tagName===`filter`}return!0}},gt=e=>at(e)?parseFloat(e):e,_t=Math.pow,vt=Math.sqrt,yt=Math.sin,bt=Math.cos,xt=Math.abs,St=Math.floor,Ct=Math.asin,wt=Math.PI,Tt=Math.round,Et=(e,t,n)=>e<t?t:e>n?n:e,q=(e,t)=>{if(t<0)return e;if(!t)return Tt(e);let n=10**t;return Tt(e*n)/n},Dt=(e,t,n)=>n===1?t:n===0?e:e+(t-e)*n,Ot=e=>e===1/0?Me:e===-1/0?-Me:e,kt=e=>e<=1e-11?U:Ot(q(e,11)),J=e=>nt(e)?[...e]:e,At=(e,t)=>{let n={...e};for(let r in t){let i=e[r];n[r]=K(i)?t[r]:i}return n},Y=(e,t,n,r=`_prev`,i=`_next`)=>{let a=e._head,o=i;for(n&&(a=e._tail,o=r);a;){let e=a[o];t(a),a=e}},jt=(e,t,n=`_prev`,r=`_next`)=>{let i=t[n],a=t[r];i?i[r]=a:e._head=a,a?a[n]=i:e._tail=i,t[n]=null,t[r]=null},Mt=(e,t,n,r=`_prev`,i=`_next`)=>{let a=e._tail;for(;a&&n&&n(a,t);)a=a[r];let o=a?a[i]:e._head;a?a[i]=t:e._head=t,o?o[r]=t:e._tail=t,t[r]=a,t[i]=o},Nt=(e,t,n)=>{let r=e.style.transform;if(r){let i=e[Ae],a=0,o=r.length,s;for(;a<o;){for(;a<o&&r.charCodeAt(a)===32;)a++;if(a>=o)break;let e=a;for(;a<o&&r.charCodeAt(a)!==40;)a++;if(a>=o)break;let t=r.substring(e,a),n=1,c=a+1,l=-1,u=-1;for(a++;a<o&&n>0;){let e=r.charCodeAt(a);e===40?n++:e===41?n--:e===44&&n===1&&(l===-1?l=a:u===-1&&(u=a)),a++}let d=a-1;t===`translate`||t===`translate3d`?(l===-1?i.translateX=r.substring(c,d).trim():(i.translateX=r.substring(c,l).trim(),u===-1?i.translateY=r.substring(l+1,d).trim():(i.translateY=r.substring(l+1,u).trim(),i.translateZ=r.substring(u+1,d).trim())),s=r.substring(c,d)):t===`scale`||t===`scale3d`?l===-1?i.scale=r.substring(c,d).trim():(i.scaleX=r.substring(c,l).trim(),u===-1?i.scaleY=r.substring(l+1,d).trim():(i.scaleY=r.substring(l+1,u).trim(),i.scaleZ=r.substring(u+1,d).trim())):i[t]=r.substring(c,d)}if(t===`translate3d`&&s)return n&&(n[t]=s),s;let c=i[t];if(!K(c))return n&&(n[t]=c),c}return t===`translate3d`?`0px, 0px, 0px`:t===`rotate3d`?`0, 0, 0, 0deg`:et(t,`scale`)?`1`:et(t,`rotate`)||et(t,`skew`)?`0deg`:`0px`},Pt=e=>{let t=``;for(let n=0,r=Ie.length;n<r;n++){let r=Ie[n],i=e[r];if(i!==void 0){if(r===`translateX`){let r=e.translateY;if(r!==void 0){let a=e.translateZ;a===void 0?(t+=`translate(${i},${r}) `,n+=1):(t+=`translate3d(${i},${r},${a}) `,n+=2);continue}}if(r===`scaleX`&&e.scale===void 0){let r=e.scaleY;if(r!==void 0){let a=e.scaleZ;a===void 0?(t+=`scale(${i},${r}) `,n+=1):(t+=`scale3d(${i},${r},${a}) `,n+=2);continue}}t+=`${Le[r]}${i}) `}r===`rotateZ`&&e.rotate3d!==void 0&&(t+=`rotate3d(${e.rotate3d}) `)}return e.matrix!==void 0&&(t+=`matrix(${e.matrix}) `),e.matrix3d!==void 0&&(t+=`matrix3d(${e.matrix3d}) `),t},Ft=[];function It(e,t){if(!e)return null;let n=Ft.length;outer:for(let r=0;r<n;r++){let n=Ft[r];if(n.detect&&!n.detect(e))continue;let i=n.targetAdapters;for(let n=0,r=i.length;n<r;n++){let r=i[n];if(r.detect(e)){let n=r.props[t];if(n&&(!n.gate||n.gate(e)))return n;break outer}}}for(let r=0;r<n;r++){let n=Ft[r];if(n.detect&&!n.detect(e))continue;let i=n.propertyResolvers;for(let n=0,r=i.length;n<r;n++){let r=i[n](e,t);if(r)return r}}return null}var Lt=e=>{let t=Ve.exec(e)||He.exec(e),n=K(t[4])?1:+t[4];return[+t[1],+t[2],+t[3],n]},Rt=e=>{let t=e.length,n=t===4||t===5;return[+(`0x`+e[1]+e[n?1:2]),+(`0x`+e[n?2:3]+e[n?2:4]),+(`0x`+e[n?3:5]+e[n?3:6]),t===5||t===9?+((`0x`+e[n?4:7]+e[n?4:8])/255).toFixed(3):1]},zt=(e,t,n)=>(n<0&&(n+=1),n>1&&--n,n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e),Bt=e=>{let t=Ue.exec(e)||We.exec(e),n=t[1]/360,r=t[2]/100,i=t[3]/100,a=K(t[4])?1:+t[4],o,s,c;if(r===0)o=s=c=i;else{let e=i<.5?i*(1+r):i+r-i*r,t=2*i-e;o=q(zt(t,e,n+1/3)*255,0),s=q(zt(t,e,n)*255,0),c=q(zt(t,e,n-1/3)*255,0)}return[o,s,c,a]},Vt=e=>ut(e)?Lt(e):lt(e)?Rt(e):dt(e)?Bt(e):[0,0,0,1],X=(e,t)=>K(e)?t:e,Ht=(e,t)=>{let n=e.match(Ye),r=t[Oe]?t:document.documentElement,i=getComputedStyle(r)?.getPropertyValue(n[1]);return(!i||i.trim()===``)&&n[2]&&(i=n[2].trim()),i||0},Ut=(e,t,n,r,i,a)=>{if(ot(e)){if(!i){let i=e(t,n,r,a);return isNaN(+i)?i||0:+i}let o=()=>{let i=e(t,n,r,a);return isNaN(+i)?i||0:+i};return i.func=o,o()}if(at(e)&&et(e,`var(`)){if(!i)return Ht(e,t);let n=()=>Ht(e,t);return i.func=n,n()}return e},Wt=(e,t)=>e[Oe]?e[ke]&&ht(e,t)?z.ATTRIBUTE:Ie.includes(t)||Fe.get(t)?z.TRANSFORM:et(t,`--`)?z.CSS_VAR:t in e.style?z.CSS:t in e?z.OBJECT:z.ATTRIBUTE:z.OBJECT,Gt=(e,t,n)=>{let r=e.style[t];r&&n&&(n[t]=r);let i=r||getComputedStyle(e[je]||e).getPropertyValue(t);return i===`auto`?`0`:i},Kt=(e,t,n,r)=>{let i=K(n)?Wt(e,t):n,a=It(e,t);if(a){let n=a.get(e);return n&&r&&(r[t]=n),n??0}if(i===z.OBJECT){let n=e[t];return n&&r&&(r[t]=n),n||0}if(i===z.ATTRIBUTE){let n=e.getAttribute(t);return n&&r&&(r[t]=n),n}return i===z.TRANSFORM?Nt(e,t,r):i===z.CSS_VAR?Gt(e,t,r).trimStart():Gt(e,t,r)},qt=(e,t,n)=>n===`-`?e-t:n===`+`?e+t:e*t,Jt=()=>({t:B.NUMBER,n:0,u:null,o:null,d:null,s:null}),Yt=(e,t)=>{if(t.t=B.NUMBER,t.n=0,t.u=null,t.o=null,t.d=null,t.s=null,!e)return t;let n=+e;if(!isNaN(n))return t.n=n,t;let r=e;r[1]===`=`&&(t.o=r[0],r=r.slice(2));let i=!r.includes(` `)&&Ke.exec(r);if(i)return t.t=B.UNIT,t.n=+i[1],t.u=i[2],t;if(t.o)return t.n=+r,t;if(ft(r))return t.t=B.COLOR,t.d=Vt(r),t;{let e=r.match(Ge);return t.t=B.COMPLEX,t.d=e?e.map(Number):[],t.s=r.split(Ge)||[],t}},Xt=(e,t)=>(t.t=e._valueType,t.n=e._toNumber,t.u=e._unit,t.o=null,t.d=J(e._toNumbers),t.s=J(e._strings),t),Zt=Jt(),Qt=(e,t,n)=>{let r=e._modifier,i=e._fromNumbers,a=e._toNumbers,o=e._strings,s=o[0];for(let c=0,l=a.length;c<l;c++){let l=r(q(Dt(i[c],a[c],t),n)),u=o[c+1];s+=`${u?l+u:l}`,e._numbers[c]=l}return s},$t=(e,t,n,r,i)=>{let a=e.parent,o=e.duration,s=e.completed,c=e.iterationDuration,l=e.iterationCount,u=e._currentIteration,d=e._loopDelay,f=e._reversed,p=e._alternate,m=e._hasChildren,h=e._delay,g=e._currentTime,_=h+c,v=t-h,y=Et(g,-h,o),b=Et(v,-h,o),x=v-g,S=b>0,C=b>=o,w=o<=U,T=i===V.FORCE,E=0,D=v,O=0;if(l>1){let t=c+(C?0:d),n=~~(b/t);e._currentIteration=Et(n,0,l),C&&e._currentIteration--,E=e._currentIteration%2,D=b-n*t||0}let k=f^(p&&E),A=e._ease,j=C?k?0:o:k?c-D:D;A&&(j=c*A(j/c)||0);let M=(a?a.backwards:v<g)?!k:!!k;if(e._currentTime=v,e._iterationTime=j,e.backwards=M,S&&!e.began?(e.began=!0,!n&&(!a||!M&&a.began)&&e.onBegin(e)):v<=0&&(e.began=!1),!n&&!m&&S&&e._currentIteration!==u&&e.onLoop(e),T||i===V.AUTO&&(t>=(a&&h>0?0:h)&&t<=_||t<=h&&y>h||t>=_&&y!==o)||j>=_&&y!==o||j<=h&&y>0&&!C||t<=y&&y===o&&s||C&&!s&&w){if(S&&(e.computeDeltaTime(y),n||e.onBeforeUpdate(e)),!m){let t=T||(M?x*-1:x)>=G.tickThreshold,i=q(e._offset+(a?a._offset:0)+h+j,12),o=e._head,s,c,l,u,d=0;for(;o;){let e=o._composition,n=o._currentTime,a=o._changeDuration,f=o._absoluteStartTime+o._changeDuration,p=o._nextRep,m=o._prevRep,h=e!==H.none,g=m?m._absoluteStartTime+m._changeDuration:0,_=m&&m.parent!==o.parent,v=!p||p._isOverridden?f:p.parent===o.parent?f+p._delay:p._absoluteStartTime<p._absoluteUpdateStartTime?p._absoluteStartTime:p._absoluteUpdateStartTime;if((t||(n!==a||i<=v||m&&!_&&(!p||p.parent!==o.parent))&&(n!==0||i>=o._absoluteStartTime||_&&!o._hasFromValue&&!m._isOverridden&&i>=g||p&&!p._isOverridden&&p.parent===o.parent&&p._currentTime!==0&&j<p._startTime))&&(!m||_||j>=o._startTime)&&(!h||!o._isOverridden&&(!o._isOverlapped||i<=f)&&(!p||p._isOverridden||i<=v)&&(!m||m._isOverridden||(_?i>=o._absoluteStartTime||!o._hasFromValue&&i>=g:i>=g+o._delay)))){let t=o._currentTime=Et(j-o._startTime,0,a),n=o._ease(t/o._updateDuration),i=o._modifier,f=o._valueType,p=o._tweenType,m=p===z.OBJECT,g=f===B.NUMBER,_=g&&m||n===0||n===1?-1:G.precision,v,y;if(g)v=y=i(q(Dt(o._fromNumber,o._toNumber,n),_));else if(f===B.UNIT)y=i(q(Dt(o._fromNumber,o._toNumber,n),_)),v=`${y}${o._unit}`;else if(f===B.COLOR){let e=o._numbers,t=o._fromNumbers,a=o._toNumbers,s=1-n,c=t[0],l=t[1],u=t[2],d=a[0],f=a[1],p=a[2];e[0]=i(Math.sqrt(c*c*s+d*d*n)),e[1]=i(Math.sqrt(l*l*s+f*f*n)),e[2]=i(Math.sqrt(u*u*s+p*p*n)),e[3]=i(Dt(t[3],a[3],n)),(!o._setter||r)&&(v=`rgba(${q(e[0],0)},${q(e[1],0)},${q(e[2],0)},${e[3]})`)}else f===B.COMPLEX&&(v=Qt(o,n,_));if(h&&(o._number=y),!r&&e!==H.blend){let e=o.property;s=o.target,o._setter?o._setter(s,y,o):m?s[e]=v:p===z.ATTRIBUTE?s.setAttribute(e,v):(c=s.style,p===z.TRANSFORM?(s!==l&&(l=s,u=s[Ae]),u[e]=v,d=1):p===z.CSS?c[e]=v:p===z.CSS_VAR&&c.setProperty(e,v)),S&&(O=1)}else o._value=v}else n&&m&&!_&&j<o._startTime&&(o._currentTime=0);d&&o._renderTransforms&&(c.transform=Pt(u),d=0),o=o._next}!n&&O&&e.onRender(e)}!n&&S&&e.onUpdate(e)}return a&&w?!n&&(a.began&&!M&&v>0&&!s||M&&v<=1e-11&&s)&&(e.onComplete(e),e.completed=!M):S&&C?l===1/0?e._startTime+=e.duration:e._currentIteration>=l-1&&(e.paused=!0,!s&&!m&&(e.completed=!0,!n&&(!a||!M&&a.began)&&(e.onComplete(e),e._resolve(e)))):e.completed=!1,O},en=(e,t,n,r,i)=>{let a=e._currentIteration;if($t(e,t,n,r,i),e._hasChildren){let o=e,s=o.backwards,c=r?t:o._iterationTime,l=tt(),u=0,d=!0;if(!r&&o._currentIteration!==a){let e=o.iterationDuration;Y(o,t=>{if(!s)!t.completed&&!t.backwards&&t._currentTime<t.iterationDuration&&$t(t,e,n,1,V.FORCE),t.began=!1,t.completed=!1;else{let r=t.duration,i=t._offset+t._delay,a=i+r;!n&&r<=1e-11&&(!i||a===e)&&t.onComplete(t)}}),n||o.onLoop(o)}Y(o,e=>{let t=q((c-e._offset)*e._speed,12);if(s&&t>e._delay+e.duration)return;let a=e._fps<o._fps?e.requestTick(l):i;u+=$t(e,t,n,r,a),!e.completed&&d&&(d=!1)},s),!n&&u&&o.onRender(o),(d||s)&&o._currentTime>=o.duration&&(o.paused=!0,o.completed||(o.completed=!0,n||(o.onComplete(o),o._resolve(o))))}},tn={},nn=(e,t,n)=>{if(n===z.TRANSFORM)return Fe.get(e)||e;if(n===z.CSS||n===z.ATTRIBUTE&&ct(t)&&e in t.style){let t=tn[e];if(t)return t;{let t=e&&$e(e);return tn[e]=t,t}}return e},rn=(e,t=!1)=>{if(e._hasChildren)Y(e,e=>rn(e,t),!0);else{let n=e;n.pause(),Y(n,e=>{let r=e.property,i=e.target,a=e._tweenType,o=e._inlineValue,s=st(o)||o===``;if(e._setter){if(!t&&!s){if(Yt(o,Zt),Zt.d){let t=Zt.d,n=e._numbers;for(let e=0,r=t.length;e<r;e++)n[e]=t[e]}else e._number=Zt.n;e._setter(e.target,e._number,e)}}else if(a===z.OBJECT)!t&&!s&&(i[r]=o);else if(i[Oe]){if(a===z.ATTRIBUTE)t||(s?i.removeAttribute(r):i.setAttribute(r,o));else{let t=i.style;if(a===z.TRANSFORM){let n=i[Ae];s?delete n[r]:n[r]=o,e._renderTransforms&&(Object.keys(n).length?t.transform=Pt(n):t.removeProperty(`transform`))}else s?t.removeProperty($e(r)):t[r]=o}}i[Oe]&&n._tail===e&&n.targets.forEach(e=>{e.getAttribute&&e.getAttribute(`style`)===``&&e.removeAttribute(`style`)})})}return e},an=class{constructor(e=0){this.deltaTime=0,this._currentTime=e,this._lastTickTime=e,this._startTime=e,this._lastTime=e,this._frameDuration=Ne/240,this._fps=240,this._speed=1,this._hasChildren=!1,this._head=null,this._tail=null}get fps(){return this._fps}set fps(e){let t=+e,n=t<1e-11?U:t,r=Ne/n;n>Xe.frameRate&&(Xe.frameRate=n),this._fps=n,this._frameDuration=r}get speed(){return this._speed}set speed(e){let t=+e;this._speed=t<1e-11?U:t}requestTick(e){let t=this._frameDuration,n=e-this._lastTickTime,r=t*.25;return n+(r<4?r:4)<t?V.NONE:(this._lastTickTime=n>=t?e-n%t:e,V.AUTO)}computeDeltaTime(e){let t=e-this._lastTime;return this.deltaTime=t,this._lastTime=e,t}},on={animation:null,update:W},sn=e=>{let t=on.animation;return t||(t={duration:U,computeDeltaTime:W,_offset:0,_delay:0,_head:null,_tail:null},on.animation=t,on.update=()=>{e.forEach(e=>{for(let t in e){let n=e[t],r=n._head;if(r){let e=r._valueType,t=e===B.COMPLEX||e===B.COLOR?J(r._fromNumbers):null,i=r._fromNumber,a=n._tail;for(;a&&a!==r;){if(t)for(let e=0,n=a._numbers.length;e<n;e++)t[e]+=a._numbers[e];else i+=a._number;a=a._prevAdd}r._toNumber=i,r._toNumbers=t}}}),$t(t,1,1,0,V.FORCE)}),t},cn=we?requestAnimationFrame:setImmediate,ln=we?cancelAnimationFrame:clearImmediate,un=class extends an{constructor(e){super(e),this.useDefaultMainLoop=!0,this.pauseOnDocumentHidden=!0,this.defaults=Xe,this.paused=!0,this.reqId=0}update(){let e=this._currentTime=tt();if(this.requestTick(e)){this.computeDeltaTime(e);let t=this._speed,n=this._fps,r=this._head;for(;r;){let i=r._next;r.paused?(jt(this,r),this._hasChildren=!!this._tail,r._running=!1,r.completed&&!r._cancelled&&r.cancel()):en(r,(e-r._startTime)*r._speed*t,0,0,r._fps<n?r.requestTick(e):V.AUTO),r=i}on.update()}}wake(){return this.useDefaultMainLoop&&!this.reqId&&(this.requestTick(tt()),this.reqId=cn(dn)),this}pause(){if(this.reqId)return this.paused=!0,fn()}resume(){if(this.paused)return this.paused=!1,Y(this,e=>e.resetTime()),this.wake()}get speed(){return this._speed*(G.timeScale===1?1:Ne)}set speed(e){let t=e*G.timeScale;this._speed!==t&&(this._speed=t,Y(this,e=>e.speed=e._speed))}get timeUnit(){return G.timeScale===1?`ms`:`s`}set timeUnit(e){let t=.001,n=e===`s`,r=n?t:1;if(G.timeScale!==r){G.timeScale=r,G.tickThreshold=200*r;let e=n?t:Ne;this.defaults.duration*=e,this._speed*=e}}get precision(){return G.precision}set precision(e){G.precision=e}},Z=(()=>{let e=new un(tt());return we&&(Qe.engine=e,Ee.addEventListener(`visibilitychange`,()=>{e.pauseOnDocumentHidden&&(Ee.hidden?e.pause():e.resume())})),e})(),dn=()=>{Z._head?(Z.reqId=cn(dn),Z.update()):Z.reqId=0},fn=()=>(ln(Z.reqId),Z.reqId=0,Z),pn={_rep:new WeakMap,_add:new Map},mn=(e,t,n=`_rep`)=>{let r=pn[n],i=r.get(e);return i||(i={},r.set(e,i)),i[t]?i[t]:i[t]={_head:null,_tail:null}},hn=(e,t)=>e._isOverridden||e._absoluteStartTime>t._absoluteStartTime,gn=e=>{e._isOverlapped=1,e._isOverridden=1,e._changeDuration=U,e._currentTime=U},_n=(e,t)=>{let n=e._composition;if(n===H.replace){let n=e._absoluteStartTime;Mt(t,e,hn,`_prevRep`,`_nextRep`);let r=e._prevRep;if(r){let t=r.parent,i=r._absoluteEndTime;if(e.parent.id!==t.id&&t.iterationCount>1&&i+(t.duration-t.iterationDuration)>n){gn(r);let e=r._prevRep;for(;e&&e.parent.id===t.id;)gn(e),e=e._prevRep}let a=e._absoluteUpdateStartTime;if(i>a){let e=r._startTime,t=q(a-(i-(e+r._updateDuration))-e,12);r._changeDuration=t,r._currentTime=t,r._isOverlapped=1,t<1e-11&&gn(r)}let o=e.parent.parent;if(!o||o!==t.parent){let e=!0;if(Y(t,t=>{t._isOverlapped||(e=!1)}),e){let e=t.parent;if(e){let n=!0;Y(e,e=>{e!==t&&Y(e,e=>{e._isOverlapped||(n=!1)})}),n&&e.cancel()}else t.cancel()}}}}else if(n===H.blend){let t=mn(e.target,e.property,`_add`),n=sn(pn._add),r=t._head;r||(r={...e},r._composition=H.replace,r._updateDuration=U,r._startTime=0,r._numbers=J(e._fromNumbers),r._number=0,r._next=null,r._prev=null,Mt(t,r),Mt(n,r));let i=e._toNumber;if(e._fromNumber=r._fromNumber-i,e._toNumber=0,e._numbers=J(e._fromNumbers),e._number=0,r._fromNumber=i,e._toNumbers.length){let t=J(e._toNumbers);t.forEach((t,n)=>{e._fromNumbers[n]=r._fromNumbers[n]-t,e._toNumbers[n]=0}),r._fromNumbers=t}Mt(t,e,null,`_prevAdd`,`_nextAdd`)}return e},vn=e=>{let t=e._composition;if(t!==H.none){let n=e.target,r=e.property,i=pn._rep.get(n)[r];if(jt(i,e,`_prevRep`,`_nextRep`),t===H.blend){let t=pn._add,i=t.get(n);if(!i)return;let a=i[r],o=on.animation;jt(a,e,`_prevAdd`,`_nextAdd`);let s=a._head;if(s&&s===a._tail){jt(a,s,`_prevAdd`,`_nextAdd`),jt(o,s);let e=!0;for(let t in i)if(i[t]._head){e=!1;break}e&&t.delete(n)}}}return e},yn=(e,t,n)=>{let r=!1;return Y(t,i=>{let a=i.target;if(e.includes(a)){let e=i.property,o=i._tweenType,s=nn(n,a,o);(!s||s&&s===e)&&(i.parent._tail===i&&i._tweenType===z.TRANSFORM&&i._prev&&i._prev._tweenType===z.TRANSFORM&&(i._prev._renderTransforms=1),jt(t,i),vn(i),r=!0)}},!0),r},bn=(e,t,n)=>{let r=t||Z,i;if(r._hasChildren){let t=0;Y(r,a=>{if(!a._hasChildren){if(i=yn(e,a,n),i&&!a._head)a.cancel(),jt(r,a);else{let e=a._offset+a._delay+a.duration;e>t&&(t=e)}}a._head?bn(e,a,n):a._hasChildren=!1},!0),K(r.iterationDuration)||(r.iterationDuration=t)}else i=yn(e,r,n);i&&!r._head&&(r._hasChildren=!1,r.cancel&&r.cancel())},xn=e=>(e.paused=!0,e.began=!1,e.completed=!1,e),Sn=e=>e._cancelled?(e._hasChildren?Y(e,Sn):Y(e,e=>{e._composition!==H.none&&_n(e,mn(e.target,e.property))}),e._cancelled=0,e):e,Cn=0,wn=(e,t)=>e._priority>t._priority,Tn=class extends an{constructor(e={},t=null,n=0){super(0),++Cn;let{id:r,delay:i,duration:a,reversed:o,alternate:s,loop:c,loopDelay:l,autoplay:u,frameRate:d,playbackRate:f,priority:p,onComplete:m,onLoop:h,onPause:g,onBegin:_,onBeforeUpdate:v,onUpdate:y}=e;Ze.current&&Ze.current.register(this);let b=t?0:Z._lastTickTime,x=t?t.defaults:G.defaults,S=ot(i)||K(i)?x.delay:+i,C=ot(a)||K(a)?1/0:+a,w=X(c,x.loop),T=X(l,x.loopDelay),E=w===!0||w===1/0||w<0?1/0:w+1,D=0;t?D=n:(Z.reqId||Z.requestTick(tt()),D=(Z._lastTickTime-Z._startTime)*G.timeScale),this.id=K(r)?Cn:r,this.parent=t,this.duration=Ot((C+T)*E-T)||1e-11,this.backwards=!1,this.paused=!0,this.began=!1,this.completed=!1,this.onBegin=_||x.onBegin,this.onBeforeUpdate=v||x.onBeforeUpdate,this.onUpdate=y||x.onUpdate,this.onLoop=h||x.onLoop,this.onPause=g||x.onPause,this.onComplete=m||x.onComplete,this.iterationDuration=C,this.iterationCount=E,this._autoplay=!t&&X(u,x.autoplay),this._offset=D,this._delay=S,this._loopDelay=T,this._iterationTime=0,this._currentIteration=0,this._resolve=W,this._running=!1,this._reversed=+X(o,x.reversed),this._reverse=this._reversed,this._cancelled=0,this._alternate=X(s,x.alternate),this._prev=null,this._next=null,this._lastTickTime=b,this._startTime=b,this._lastTime=b,this._fps=X(d,x.frameRate),this._speed=X(f,x.playbackRate),this._priority=+X(p,1)}get cancelled(){return!!this._cancelled}set cancelled(e){e?this.cancel():this.reset(!0).play()}get currentTime(){return Et(q(this._currentTime,G.precision),-this._delay,this.duration)}set currentTime(e){let t=this.paused;this.pause().seek(+e),t||this.resume()}get iterationCurrentTime(){return Et(q(this._iterationTime,G.precision),0,this.iterationDuration)}set iterationCurrentTime(e){this.currentTime=this.iterationDuration*this._currentIteration+e}get progress(){return Et(q(this._currentTime/this.duration,10),0,1)}set progress(e){this.currentTime=this.duration*e}get iterationProgress(){return Et(q(this._iterationTime/this.iterationDuration,10),0,1)}set iterationProgress(e){let t=this.iterationDuration;this.currentTime=t*this._currentIteration+t*e}get currentIteration(){return this._currentIteration}set currentIteration(e){this.currentTime=this.iterationDuration*Et(+e,0,this.iterationCount-1)}get reversed(){return!!this._reversed}set reversed(e){e?this.reverse():this.play()}get speed(){return super.speed}set speed(e){super.speed=e,this.resetTime()}reset(e=!1){return Sn(this),this._reversed&&!this._reverse&&(this.reversed=!1),this._iterationTime=this.iterationDuration,en(this,0,1,~~e,V.FORCE),xn(this),this._hasChildren&&Y(this,xn),this}init(e=!1){this.fps=this._fps,this.speed=this._speed,!e&&this._hasChildren&&en(this,this.duration,1,~~e,V.FORCE),this.reset(e);let t=this._autoplay;return t===!0?this.resume():t&&!K(t.linked)&&t.link(this),this}resetTime(){let e=1/(this._speed*Z._speed);return this._startTime=tt()-(this._currentTime+this._delay)*e,this}pause(){return this.paused?this:(this.paused=!0,this.onPause(this),this)}resume(){return this.paused?(this.paused=!1,this.duration<=1e-11&&!this._hasChildren?en(this,U,0,0,V.FORCE):(this._running||=(Mt(Z,this,wn),Z._hasChildren=!0,!0),this.resetTime(),this._startTime-=12,Z.wake()),this):this}restart(){return this.reset().resume()}seek(e,t=0,n=0){Sn(this),this.completed=!1;let r=this.paused;return this.paused=!0,en(this,e+this._delay,~~t,~~n,V.AUTO),r?this:this.resume()}alternate(){let e=this._reversed,t=this.iterationCount,n=this.iterationDuration,r=t===1/0?St(Me/n):t;return this._reversed=+(this._alternate&&!(r%2)?e:!e),t===1/0?this.iterationProgress=this._reversed?1-this.iterationProgress:this.iterationProgress:this.seek(n*r-this._currentTime),this.resetTime(),this}play(){return this._reversed&&this.alternate(),this.resume()}reverse(){return this._reversed||this.alternate(),this.resume()}cancel(){return this._hasChildren?Y(this,e=>e.cancel(),!0):Y(this,vn),this._cancelled=1,this.pause()}stretch(e){let t=this.duration,n=kt(e);if(t===n)return this;let r=e/t,i=e<=U;return this.duration=i?U:n,this.iterationDuration=i?U:kt(this.iterationDuration*r),this._offset*=r,this._delay*=r,this._loopDelay*=r,this}revert(){en(this,0,1,0,V.AUTO);let e=this._autoplay;return e&&e.linked&&e.linked===this&&e.revert(),this.cancel()}complete(e=0){return this.seek(this.duration,e).cancel()}then(e=W){let t=this.then,n=()=>{this.then=null,e(this),this.then=t,this._resolve=W};return new Promise(e=>(this._resolve=()=>e(n()),this.completed&&this._resolve(),this))}};function En(e){let t=at(e)?Ze.root.querySelectorAll(e):e;if(t instanceof NodeList||t instanceof HTMLCollection)return t}function Dn(e){if(st(e))return[];if(!we)return nt(e)&&e.flat(1/0)||[e];if(nt(e)){let t=e.flat(1/0),n=[];for(let e=0,r=t.length;e<r;e++){let r=t[e];if(!st(r)){let e=En(r);if(e)for(let t=0,r=e.length;t<r;t++){let r=e[t];if(!st(r)){let e=!1;for(let t=0,i=n.length;t<i;t++)if(n[t]===r){e=!0;break}e||n.push(r)}}else{let e=!1;for(let t=0,i=n.length;t<i;t++)if(n[t]===r){e=!0;break}e||n.push(r)}}}return n}let t=En(e);return t?Array.from(t):[e]}function On(e){let t=Dn(e),n=t.length;for(let e=0;e<n;e++){let n=t[e];if(!n[De]){n[De]=!0;let e=ct(n);(n.nodeType||e)&&(n[Oe]=!0,n[ke]=e,n[Ae]={})}}return t}var kn={deg:1,rad:180/wt,turn:360},An={},jn=(e,t,n,r=!1)=>{let i=t.u,a=t.n;if(t.t===B.UNIT&&i===n)return t;let o=a+i+n,s=An[o];if(!K(s)&&!r)t.n=s;else{let r;if(i in kn)r=a*kn[i]/kn[n];else{let t=e.cloneNode(),o=e.parentNode,s=o&&o!==Ee?o:Ee.body;s.appendChild(t);let c=t.style;c.width=100+i;let l=t.offsetWidth||100;c.width=100+n;let u=l/(t.offsetWidth||100);s.removeChild(t),r=u*a}t.n=r,An[o]=r}return t.t,B.UNIT,t.u=n,t},Mn=e=>e,Nn=(e=1.68)=>t=>_t(t,+e),Pn={in:e=>t=>e(t),out:e=>t=>1-e(1-t),inOut:e=>t=>t<.5?e(t*2)/2:1-e(t*-2+2)/2,outIn:e=>t=>t<.5?(1-e(1-t*2))/2:(e(t*2-1)+1)/2},Fn=wt/2,In=wt*2,Ln={"":Nn,Quad:Nn(2),Cubic:Nn(3),Quart:Nn(4),Quint:Nn(5),Sine:e=>1-bt(e*Fn),Circ:e=>1-vt(1-e*e),Expo:e=>e?_t(2,10*e-10):0,Bounce:e=>{let t,n=4;for(;e<((t=_t(2,--n))-1)/11;);return 1/_t(4,3-n)-7.5625*_t((t*3-2)/22-e,2)},Back:(e=1.7)=>t=>(+e+1)*t*t*t-+e*t*t,Elastic:(e=1,t=.3)=>{let n=Et(+e,1,10),r=Et(+t,U,2),i=r/In*Ct(1/n),a=In/r;return e=>e===0||e===1?e:-n*_t(2,-10*(1-e))*yt((1-e-i)*a)}},Rn=(()=>{let e={linear:Mn,none:Mn};for(let t in Pn)for(let n in Ln){let r=Ln[n],i=Pn[t];e[t+n]=n===``||n===`Back`||n===`Elastic`?(e,t)=>i(r(e,t)):i(r)}return e})(),zn={linear:Mn,none:Mn},Bn=e=>{if(zn[e])return zn[e];if(e.indexOf(`(`)<=-1){let t=Pn[e]||e.includes(`Back`)||e.includes(`Elastic`)?Rn[e]():Rn[e];return t?zn[e]=t:Mn}{let t=e.slice(0,-1).split(`(`),n=Rn[t[0]];return n?zn[e]=n(...t[1].split(`,`)):Mn}},Vn=[`steps(`,`irregular(`,`linear(`,`cubicBezier(`],Hn=e=>{if(at(e)){for(let t=0,n=Vn.length;t<n;t++)if(et(e,Vn[t]))return console.warn(`String syntax for \`ease: "${e}"\` has been removed from the core and replaced by importing and passing the easing function directly: \`ease: ${e}\``),Mn}return ot(e)?e:at(e)?Bn(e):Mn},Q=Jt(),$=Jt(),Un={},Wn={func:null},Gn={func:null},Kn=[null],qn=[null,null],Jn={to:null},Yn=0,Xn=0,Zn,Qn,$n=(e,t)=>{let n={};if(nt(e)){let t=[].concat(...e.map(e=>Object.keys(e))).filter(pt);for(let r=0,i=t.length;r<i;r++){let i=t[r];n[i]=e.map(e=>{let t={};for(let n in e){let r=e[n];pt(n)?n===i&&(t.to=r):t[n]=r}return t})}}else{let r=X(t.duration,G.defaults.duration);Object.keys(e).map(t=>({o:parseFloat(t)/100,p:e[t]})).sort((e,t)=>e.o-t.o).forEach(e=>{let t=e.o,i=e.p;for(let e in i)if(pt(e)){let a=n[e];a||=n[e]=[];let o=t*r,s=a.length,c=a[s-1],l={to:i[e]},u=0;for(let e=0;e<s;e++)u+=a[e].duration;s===1&&(l.from=c.to),i.ease&&(l.ease=i.ease),l.duration=o-(s?u:0),a.push(l)}return e});for(let e in n){let t=n[e],r;for(let e=0,n=t.length;e<n;e++){let n=t[e],i=n.ease;n.ease=r||void 0,r=i}t[0].duration||t.shift()}}return n},er=class extends Tn{constructor(e,t,n,r,i=!1,a=0,o){super(t,n,r),this._head,this._tail,++Xn;let s=On(e),c=s.length,l=t.keyframes,u=l?At($n(l,t),t):t,{id:d,delay:f,duration:p,ease:m,playbackEase:h,modifier:g,composition:_,onRender:v}=u,y=n?n.defaults:G.defaults,b=X(m,y.ease),x=X(h,y.playbackEase),S=x?Hn(x):null,C=!K(b.ease),w=C?b.ease:X(m,S?`linear`:y.ease),T=C?b.settlingDuration:X(p,y.duration),E=X(f,y.delay),D=g||y.modifier,O=K(_)&&c>=1e3?H.none:K(_)?y.composition:_,k=this._offset+(n?n._offset:0);C&&(b.parent=this);let A=NaN,j=NaN,M=0,N=0;for(let e=0;e<c;e++){let t=s[e],r=a||e,c=o||s,l=NaN,d=NaN;for(let e in u)if(pt(e)){let a=Wt(t,e),o=It(t,e),s=nn(e,t,a),f=u[e],p=nt(f);if(i&&!p&&(qn[0]=f,qn[1]=f,f=qn),p){let e=f.length,t=!rt(f[0]);e===2&&t?(Jn.to=f,Kn[0]=Jn,Zn=Kn):e>2&&t?(Zn=[],f.forEach((e,t)=>{t?t===1?(qn[1]=e,Zn.push(qn)):Zn.push(e):qn[0]=e})):Zn=f}else Kn[0]=f,Zn=Kn;let m=null,h=null,g=NaN,_=0,v=0;for(let e=Zn.length;v<e;v++){let i=Zn[v];rt(i)?Qn=i:(Jn.to=i,Qn=Jn),Wn.func=null,Gn.func=null;let l=Ut(X(Qn.composition,O),t,r,c,null,null),u=it(l)?l:H[l];!m&&u!==H.none&&(m=mn(t,s));let d=m?m._tail:null,f=n&&d&&d.parent.parent===n?d:h,p=Ut(Qn.to,t,r,c,Wn,f),y;rt(p)&&!K(p.to)?(Qn=p,y=p.to):y=p;let b=Ut(Qn.from,t,r,c,Gn,f),x=Qn.ease||w,S=Ut(x,t,r,c,null,f),C=ot(S)||at(S)?S:x,A=!K(C)&&!K(C.ease),j=A?C.ease:C,P=A?C.settlingDuration:Ut(X(Qn.duration,e>1?Ut(T,t,r,c,null,f)/e:T),t,r,c,null,f),ee=Ut(X(Qn.delay,v?0:E),t,r,c,null,f),F=Qn.modifier||D,te=!K(b),ne=!K(y),re=nt(y),ie=re||te&&ne,ae=h?_:0,oe=h?_+ee:ee,se=q(k+oe,12),ce=q(k+ae,12);!N&&(te||re)&&(N=1);let I=h;if(u!==H.none){let e=m._head;for(;e&&e._absoluteStartTime<=se;)if(e._isOverridden||(I=e),e=e._nextRep,e&&e._absoluteStartTime>=se)for(;e;)gn(e),e=e._nextRep}if(ie){Yt(re?Ut(y[0],t,r,c,Gn,f):b,Q),Yt(re?Ut(y[1],t,r,c,Wn,f):y,$);let e=Kt(t,s,a,Un);Q.t===B.NUMBER&&(I?I._valueType===B.UNIT&&(Q.t=B.UNIT,Q.u=I._unit):(Yt(e,Zt),Zt.t===B.UNIT&&(Q.t=B.UNIT,Q.u=Zt.u)))}else ne?Yt(y,$):h?Xt(h,$):Yt(n&&I&&I.parent.parent===n?I._value:Kt(t,s,a,Un),$),te?Yt(b,Q):h?Xt(h,Q):Yt(n&&I&&I.parent.parent===n?I._value:Kt(t,s,a,Un),Q);if(Q.o&&(Q.n=qt(I?I._toNumber:Yt(Kt(t,s,a,Un),Zt).n,Q.n,Q.o)),$.o&&($.n=qt(Q.n,$.n,$.o)),Q.t!==$.t){if(Q.t===B.COMPLEX||$.t===B.COMPLEX){let e=Q.t===B.COMPLEX?Q:$,t=Q.t===B.COMPLEX?$:Q;t.t=B.COMPLEX,t.s=J(e.s),t.d=e.d.map(()=>t.n)}else if(Q.t===B.UNIT||$.t===B.UNIT){let e=Q.t===B.UNIT?Q:$,t=Q.t===B.UNIT?$:Q;t.t=B.UNIT,t.u=e.u}else if(Q.t===B.COLOR||$.t===B.COLOR){let e=Q.t===B.COLOR?Q:$,t=Q.t===B.COLOR?$:Q;t.t=B.COLOR,t.d=e.d.map(()=>0)}}if(Q.u!==$.u){let e=$.u?Q:$;e=jn(t,e,$.u?$.u:Q.u,!1)}if($.d&&Q.d&&$.d.length!==Q.d.length){let e=Q.d.length>$.d.length?Q:$,t=e===Q?$:Q;t.d=e.d.map((e,n)=>K(t.d[n])?0:t.d[n]),t.s=J(e.s)}let L=q(+P||1e-11,12),le=Un[s];st(le)||(Un[s]=null);let ue=o?o.set:null;_=q(oe+L,12);let de=Q.d,fe=$.d,pe=$.s,R={parent:this,id:Yn++,property:s,target:t,_value:null,_toFunc:Wn.func,_fromFunc:Gn.func,_ease:Hn(j),_fromNumbers:de?J(de):Pe,_toNumbers:fe?J(fe):Pe,_strings:pe?J(pe):Pe,_fromNumber:Q.n,_toNumber:$.n,_numbers:de?J(de):Pe,_number:Q.n,_unit:$.u,_modifier:F,_currentTime:0,_startTime:oe,_delay:+ee,_updateDuration:L,_changeDuration:L,_absoluteStartTime:se,_absoluteUpdateStartTime:ce,_absoluteEndTime:q(k+_,12),_hasFromValue:te||re?1:0,_tweenType:a,_setter:ue,_valueType:$.t,_composition:u,_isOverlapped:0,_isOverridden:0,_renderTransforms:0,_inlineValue:le,_prevRep:null,_nextRep:null,_prevAdd:null,_nextAdd:null,_prev:null,_next:null};u!==H.none&&_n(R,m);let me=R._valueType;if(me===B.COMPLEX)R._value=Qt(R,1,-1);else if(me===B.UNIT)R._value=`${F(R._toNumber)}${R._unit}`;else if(me===B.COLOR){let e=$.d;R._value=`rgba(${q(e[0],0)},${q(e[1],0)},${q(e[2],0)},${e[3]})`}else R._value=F(R._toNumber);isNaN(g)&&(g=R._startTime),h=R,M++,Mt(this,R)}(isNaN(j)||g<j)&&(j=g),(isNaN(A)||_>A)&&(A=_),a===z.TRANSFORM&&(l=M-v,d=M)}if(!isNaN(l)){let e=0;Y(this,t=>{e>=l&&e<d&&(t._renderTransforms=1,t._composition===H.blend&&Y(on.animation,e=>{e.id===t.id&&(e._renderTransforms=1)})),e++})}}c||console.warn(`No target found. Make sure the element you're trying to animate is accessible before creating your animation.`),j?(Y(this,e=>{e._startTime-e._delay||(e._delay-=j),e._startTime-=j}),A-=j):j=0,A||(A=U,this.iterationCount=0),this.targets=s,this.id=K(d)?Xn:d,this.duration=A===1e-11?U:Ot((A+this._loopDelay)*this.iterationCount-this._loopDelay)||1e-11,this.onRender=v||y.onRender,this._ease=S,this._delay=j,this.iterationDuration=A,!this._autoplay&&N&&this.onRender(this)}stretch(e){let t=this.duration;if(t===kt(e))return this;let n=e/t;return Y(this,e=>{e._updateDuration=kt(e._updateDuration*n),e._changeDuration=kt(e._changeDuration*n),e._currentTime*=n,e._delay*=n,e._startTime*=n,e._absoluteStartTime*=n,e._absoluteUpdateStartTime*=n,e._absoluteEndTime*=n}),super.stretch(e)}refresh(){return Y(this,e=>{let t=e._toFunc,n=e._fromFunc;(t||n)&&(n?(Yt(n(),Q),Q.u!==e._unit&&e.target[Oe]&&jn(e.target,Q,e._unit,!0),e._fromNumbers=J(Q.d),e._fromNumber=Q.n):t&&(Yt(Kt(e.target,e.property,e._tweenType),Zt),e._fromNumbers=J(Zt.d),e._fromNumber=Zt.n),t&&(Yt(t(),$),e._toNumbers=J($.d),e._strings=J($.s),e._toNumber=$.o?qt(e._fromNumber,$.n,$.o):$.n))}),this.duration===1e-11&&this.restart(),this}revert(){return super.revert(),rn(this)}then(e){return super.then(e)}},tr=(e,t)=>{if(et(t,`<`)){let n=t[1]===`<`,r=e._tail,i=r?r._offset+r._delay:0;return n?i:i+r.duration}},nr=(e,t)=>{let n=e.iterationDuration;if(n===1e-11&&(n=0),K(t))return n;if(it(+t))return+t;let r=t,i=e?e.labels:null,a=!st(i),o=tr(e,r),s=!K(o),c=Je.exec(r);if(c){let e=c[0],t=r.split(e),l=a&&t[0]?i[t[0]]:n;return qt(s?o:a?l:n,+t[1],e[0])}return s?o:a?K(i[r])?n:i[r]:n};function rr(e){return Ot((e.iterationDuration+e._loopDelay)*e.iterationCount-e._loopDelay)||1e-11}function ir(e,t,n,r,i,a){let o=it(e.duration)&&e.duration<=1e-11?n-U:n;t.composition&&en(t,o,1,1,V.AUTO);let s=r?new er(r,e,t,o,!1,i,a):new Tn(e,t,o);return t.composition&&s.init(!0),Mt(t,s),Y(t,e=>{let n=e._offset+e._delay+e.duration;n>t.iterationDuration&&(t.iterationDuration=n)}),t.duration=rr(t),t}var ar=0,or=class extends Tn{constructor(e={}){super(e,null,0),++ar,this.id=K(e.id)?ar:e.id,this.duration=0,this.labels={};let t=e.defaults,n=G.defaults;this.defaults=t?At(t,n):n,this.composition=X(e.composition,!0),this.onRender=e.onRender||n.onRender;let r=X(e.playbackEase,n.playbackEase);this._ease=r?Hn(r):null,this.iterationDuration=0}add(e,t,n){let r=rt(t),i=rt(e);if(r||i){if(this._hasChildren=!0,r){let r=t,i=G.editor&&G.editor.addTimelineChild,a=n&&n.type===`Stagger`&&G.editor,o=ot(n)?n:null;if(o||a){let t=Dn(e),a=this.duration,s=this.iterationDuration,c=r.id,l=0,u=t.length,d=i?i(e,r,this.id,n,u):null,f=o||G.editor.resolveStagger(n.defaultValue);t.forEach(e=>{let n={...d||r};this.duration=a,this.iterationDuration=s,K(c)||(n.id=c+`-`+l);let i=nr(this,f(e,l,t,null,this));ir(n,this,i,e,l,t),l++})}else{let t=i?i(e,r,this.id,n):r,a=n&&n.type?n.defaultValue:n;ir(t,this,nr(this,a),e)}}else ir(e,this,nr(this,t));return this.composition&&this.init(!0),this}}sync(e,t){if(K(e)||e&&K(e.pause))return this;e.pause();let n=+(e.effect?e.effect.getTiming().duration:e.duration);!K(e)&&!K(e.persist)&&(e.persist=!0);let r=G.editor,i=r&&r.addTimelineChild;r&&r.addTimelineSync&&(t=r.addTimelineSync(e,t,this.id),r.addTimelineChild=null);let a=this.add(e,{currentTime:[0,n],duration:n,delay:0,ease:`linear`,playbackEase:`linear`},t);return r&&(r.addTimelineChild=i),a}set(e,t,n){return K(t)?this:(t.duration=U,t.composition=H.replace,this.add(e,t,n))}call(e,t){return K(e)||e&&!ot(e)?this:(G.editor&&G.editor.addTimelineCall&&(t=G.editor.addTimelineCall(e,t,this.id)),this.add({duration:0,delay:0,onComplete:()=>e(this)},t))}label(e,t){return K(e)||e&&!at(e)?this:(G.editor&&G.editor.addTimelineLabel&&(t=G.editor.addTimelineLabel(e,t,this.id)),this.labels[e]=nr(this,t),this)}remove(e,t){return bn(Dn(e),this,t),this}stretch(e){let t=this.duration;if(t===kt(e))return this;let n=e/t,r=this.labels;Y(this,e=>e.stretch(e.duration*n));for(let e in r)r[e]*=n;return super.stretch(e)}refresh(){return Y(this,e=>{e.refresh&&e.refresh()}),this}revert(){return super.revert(),Y(this,e=>e.revert,!0),rn(this)}then(e){return super.then(e)}},sr=e=>G.editor?G.editor.addTimeline(e):new or(e).init(),cr=(e=0,t=1,n=0)=>{let r=10**n;return Math.floor((Math.random()*(t-e+1/r)+e)*r)/r},lr=0,ur=(e,t=0,n=1,r=0)=>{let i=e===void 0?lr++:e;return(e=t,a=n,o=r)=>{i+=1831565813,i=Math.imul(i^i>>>15,i|1),i^=i+Math.imul(i^i>>>7,i|61);let s=10**o;return Math.floor((((i^i>>>14)>>>0)/4294967296*(a-e+1/s)+e)*s)/s}},dr=(e,t=cr)=>{let n=e.length,r,i;for(;n;)i=t(0,--n),r=e[n],e[n]=e[i],e[i]=r;return e},fr=(e,t={})=>{let n=[],r=0,i,a=null,o=t.from,s=t.reversed,c=t.ease,l=!K(c),u=l&&!K(c.ease)?c.ease:l?Hn(c):null,d=t.grid,f=d===!0,p=t.axis,m=t.total,h=K(o)||o===0||o===`first`,g=o===`center`,_=o===`last`,v=o===`random`,y=nt(o),b=nt(e),x=t.use,S=gt(b?e[0]:e),C=b?gt(e[1]):0,w=Ke.exec((b?e[1]:e)+``),T=t.start||0+(b?S:0),E=t.seed,D=!K(E)&&E!==!1?ur(E===!0?0:E):cr,O=t.jitter,k=!K(O),A=nt(O),j=A?O[0]:O||0,M=A?O[1]:O||0,N=h?0:it(o)?o:0;return(e,c,l,h,E)=>{let[O]=On(e),A=K(m)?l.length:m,P=K(x)?!1:ot(x)?x(O,c,A):Kt(O,x),ee=it(P)||at(P)&&it(+P)?+P:c,F=ee>=0&&ee<A?ee:c;if(g&&(N=(A-1)/2),_&&(N=A-1),!n.length){if(f){let e=!0,t=!1,r=1/0,i=1/0,a=1/0,s=-1/0,c=-1/0,u=-1/0,d=[],f=[],m=[];for(let n=0;n<A;n++){let o=l[n],p=0,h=0,g=0,_=!1;if(o&&ot(o.getBoundingClientRect)){let e=o.getBoundingClientRect();p=e.left+e.width/2,h=e.top+e.height/2,_=!0}else{let e=o;e&&it(e.x)&&it(e.y)&&(p=e.x,h=e.y,it(e.z)&&(g=e.z,t=!0),_=!0)}if(!_){e=!1;break}d.push(p),f.push(h),m.push(g),p<r&&(r=p),h<i&&(i=h),g<a&&(a=g),p>s&&(s=p),h>c&&(c=h),g>u&&(u=g)}if(e){let e=d[0],l=f[0],h=m[0];y?(e=r+o[0]*(s-r),l=i+o[1]*(c-i),h=t?a+(o.length>=3?o[2]:.5)*(u-a):0):g?(e=(r+s)/2,l=(i+c)/2,h=(a+u)/2):_?(e=d[A-1],l=f[A-1],h=m[A-1]):it(o)&&(e=d[o],l=f[o],h=m[o]);for(let r=0;r<A;r++){let i=e-d[r],a=l-f[r],o=h-m[r],s=vt(i*i+a*a+(t?o*o:0));p===`x`&&(s=-i),p===`y`&&(s=-a),p===`z`&&(s=-o),n.push(s)}let v=1/0;for(let e=0;e<A;e++){let t=xt(n[e]);t>0&&t<v&&(v=t)}if(v>0&&v<1/0)for(let e=0;e<A;e++)n[e]=n[e]/v}else for(let e=0;e<A;e++)n.push(xt(N-e))}else for(let e=0;e<A;e++)if(!d)n.push(xt(N-e));else{let t=d.length,r=d[0]*d[1],i,a,s;y?(i=o[0]*(d[0]-1),a=o[1]*(d[1]-1),s=t===3?(o.length>=3?o[2]:.5)*(d[2]-1):0):g?(i=(d[0]-1)/2,a=(d[1]-1)/2,s=t===3?(d[2]-1)/2:0):(i=N%d[0],a=St(N/d[0])%d[1],s=t===3?St(N/r):0);let c=e%d[0],l=St(e/d[0])%d[1],u=t===3?St(e/r):0,f=i-c,m=a-l,h=s-u,_=vt(f*f+m*m+(t===3?h*h:0));p===`x`&&(_=-f),p===`y`&&(_=-m),p===`z`&&(_=-h),n.push(_)}r=n[0];for(let e=1;e<A;e++)n[e]>r&&(r=n[e]);if(u||s)for(let e=0;e<A;e++){let t=n[e];u&&(t=u(t/r)*r),s&&(t=p?-t:xt(r-t)),n[e]=t}if(k){a=Array(A);for(let e=0;e<A;e++)a[e]=D(-1,1,4)}v&&(n=dr(n,D))}let te=b?(C-S)/r:S;K(i)&&(i=E?nr(E,K(t.start)?E.iterationDuration:T):T);let ne=i+(te*q(n[F],2)||0);if(k){let e=r?n[F]/r:0,t=j+(M-j)*e;ne+=a[F]*t}return t.modifier&&(ne=t.modifier(ne)),w&&(ne=`${ne}${w[2]}`),ne}},pr={number:9,additions:1358,deletions:156,files:37},mr=[{key:`store`,category:`api`,additions:363,deletions:3,files:8,expanded:!0},{key:`ui`,category:`ui`,additions:331,deletions:31,files:11,expanded:!0},{key:`refactor`,category:`core`,additions:182,deletions:77,files:9,expanded:!0},{key:`tests`,category:`tests`,additions:353,deletions:1,files:4},{key:`docs`,category:`docs`,additions:129,deletions:44,files:5}],hr=[{path:`app/stores/shared-analysis-store.ts`,group:0},{path:`app/components/diff/ShareResultModal.vue`,group:1},{path:`.agents/01-architecture.md`,group:4},{path:`app/providers/github/shared-analysis-comment.ts`,group:0},{path:`app/stores/diffs-store.ts`,group:2},{path:`app/stores/diffs-store.test.ts`,group:3},{path:`app/stores/shared-analysis-store.test.ts`,group:3},{path:`pnpm-lock.yaml`,group:4},{path:`app/components/diff/DiffsHeader.vue`,group:1},{path:`app/cache/pr-cache.ts`,group:0},{path:`test/fixtures/shared-analysis/comment.json`,group:3},{path:`app/stores/reviews-store.ts`,group:2},{path:`app/components/diff/share-result.css`,group:1},{path:`plans/07-share-result.md`,group:4},{path:`plans/04-local-provider.md`,group:4}],gr={flat:2e3,morph:1200,grouped:1e3,review:700,complete:2e3,reset:500};function _r(e){let t=[],n=0,r=(e,r)=>{t.push({name:e,at:n,duration:r}),n+=r};r(`flat`,gr.flat),r(`morph`,gr.morph),r(`grouped`,gr.grouped);for(let t=0;t<e;t++)r(`review-${t}`,gr.review);return r(`complete`,gr.complete),r(`reset`,gr.reset),t}function vr(e,t){let n=e.find(e=>e.name===t);if(!n)throw Error(`[LandingDemo] no beat named ${t}`);return n}var yr={key:0,class:`mb2 text-xs font-mono op-fade`},br={class:`flex items-start gap-2`},xr={class:`min-w-0 flex-1`},Sr={class:`flex items-start gap-3`},Cr={class:`min-w-0 flex-1 text-sm font-medium leading-snug`},wr={class:`op-fade`},Tr={class:`grid grid-cols-1 mt-1.5`},Er={class:`whitespace-nowrap op-fade`},Dr={class:`op-fade`},Or={class:`min-w-0 truncate`},kr={class:`op-fade`},Ar={"data-tail":``,class:`h-8 flex items-center op-fade`},jr={"data-label":``,class:`min-w-0 truncate text-sm font-medium`},Mr={class:`whitespace-nowrap op-fade`},Nr={class:`grid size-4 shrink-0 place-items-center color-accent-teal`},Pr={key:0,class:`flex flex-col pl-5`},Fr=[`data-target`],Ir={class:`min-w-0 truncate`},Lr={class:`op-fade`},Rr={class:`op-fade`},zr=k({__name:`LandingDemo`,props:{still:{type:Boolean,default:!1},showHeader:{type:Boolean,default:!0}},setup(e){let o=e,u=S(),h=p(()=>o.still||u.value===`reduce`),g=x(`root`),v=x(`body`),T=mr.map(()=>m({value:0})),E=s(!1);function k(e){let t=e.lastIndexOf(`/`);return{dir:e.slice(0,t+1),base:e.slice(t+1)}}let j=hr.map(e=>({...e,...k(e.path)})),M=pr.files-hr.length,N=mr.map((e,t)=>{let n=j.filter(e=>e.group===t);return{...e,shown:e.expanded?n:[],hidden:e.files-n.length}}),P,ee=!1;function F(e){return Array.from(g.value?.querySelectorAll(e)??[])}function ne(){if(!g.value||!v.value)return;let e=_r(mr.length),t=vr(e,`morph`),n=vr(e,`reset`),r=F(`[data-row]`),i=F(`[data-card]`),a=F(`[data-detail]`),o=F(`[data-donut]`),s=F(`[data-check]`),[c]=F(`[data-total]`),[l]=F(`[data-summary]`),[u]=F(`[data-tail]`),[d]=F(`[data-grouped]`),f=sr({loop:!0,autoplay:!1,defaults:{ease:`inOutQuad`}});f.add(v.value,{opacity:[0,1],duration:400},0),c&&f.add(c,{opacity:0,duration:400},t.at),l&&f.add(l,{opacity:[0,1],duration:400},t.at+300),u&&f.add(u,{opacity:0,duration:300},t.at);let p=t.at+t.duration*.3;f.call(()=>E.value=!0,p),f.call(()=>E.value=!1,n.at),d&&f.set(d,{opacity:1},p),f.add(i,{opacity:[0,1],y:[12,0],duration:500,delay:fr(60)},p);let m=t.duration*.55;r.forEach((e,n)=>{let r=j[n],i=e.getBoundingClientRect(),a=t.at+n*30,o=g.value.querySelector(`[data-target="${r.path}"]`);if(o){let t=o.getBoundingClientRect();f.add(e,{x:t.left-i.left,y:t.top-i.top,duration:m,ease:`inOutCubic`},a),f.set(e,{opacity:0},a+m),f.set(o,{opacity:1},a+m)}else f.add(e,{opacity:0,duration:m*.6},a)}),f.add(a,{opacity:[0,1],duration:300,delay:fr(60)},t.at+m),mr.forEach((t,n)=>{let r=vr(e,`review-${n}`),i=r.duration*.7;f.add(T[n],{value:1,duration:i},r.at),f.add(o[n],{opacity:0,duration:150},r.at+i),f.add(s[n],{opacity:[0,1],scale:[0,1],duration:300,ease:`outBack`},r.at+i)}),f.add(v.value,{opacity:0,duration:n.duration},n.at),P=f,ee&&f.play()}function re(){P?.revert(),P=void 0,E.value=!1}function ie(){re(),h.value||ne()}let ae=0;return r(()=>{ae=g.value?.clientWidth??0,ie()}),c(re),C(h,ie),_(g,l(([e])=>{let t=e?.contentRect.width??0;t!==ae&&(ae=t,ie())},200)),b(g,([e])=>{ee=e?.isIntersecting??!1,ee?P?.play():P?.pause()}),(r,o)=>(n(),i(`div`,{ref_key:`root`,ref:g,class:`select-none rounded-lg p4 text-xs lt-md:border lt-md:border-base`,"aria-hidden":`true`},[e.showHeader?(n(),i(`h2`,yr,w(r.$t(h.value||E.value?`landing.demoAfter`:`landing.demoBefore`)),1)):O(``,!0),t(`div`,br,[A(te,{state:`open`,class:`mt-0.5`}),t(`div`,xr,[t(`div`,Sr,[t(`div`,Cr,[y(w(r.$t(`landing.demoTitle`))+` `,1),t(`span`,wr,`#`+w(D(pr).number),1)])]),t(`div`,Tr,[t(`span`,{"data-total":``,class:f([`col-start-1 row-start-1 flex items-center self-start gap-2`,{"op-0":h.value}])},[A(pe,{additions:D(pr).additions,deletions:D(pr).deletions},null,8,[`additions`,`deletions`]),t(`span`,Er,w(r.$t(`common.files`,{n:D(pr).files},D(pr).files)),1)],2),t(`span`,{"data-summary":``,class:f([`col-start-1 row-start-1 flex items-start gap-1.5`,{"op-0":!h.value}])},[o[0]||=t(`span`,{class:`i-ph-sparkle-duotone mt-0.5 shrink-0 color-accent-magenta`},null,-1),t(`span`,Dr,w(r.$t(`landing.demoSummary`)),1)],2)])])]),t(`div`,{ref_key:`body`,ref:v,class:`grid grid-cols-1 mt-4 pl-6`},[t(`ul`,{class:f([`col-start-1 row-start-1 mt--5 flex flex-col pl2`,{"op-0":h.value}])},[(n(!0),i(d,null,a(D(j),e=>(n(),i(`li`,{key:e.path,"data-row":``,class:`h-6 flex origin-left items-center gap-1`},[A(fe,{path:e.path,class:`shrink-0`},null,8,[`path`]),t(`span`,Or,[t(`span`,kr,w(e.dir),1),y(w(e.base),1)])]))),128)),t(`li`,Ar,w(r.$t(`landing.moreFiles`,{n:M})),1)],2),t(`div`,{"data-grouped":``,class:f([`col-start-1 row-start-1 flex flex-col gap-2`,{"op-0":!h.value}])},[(n(!0),i(d,null,a(D(N),(e,s)=>(n(),i(`div`,{key:e.key,class:`flex flex-col`},[t(`div`,{"data-card":``,class:f([`ml--5 flex items-center gap-2 py-1`,{"op-0":!h.value}])},[t(`span`,{class:f([`shrink-0 op-fade`,e.expanded?`i-ph-caret-down-bold`:`i-ph-caret-right-bold`])},null,2),A(ue,{category:e.category,class:`text-sm`},null,8,[`category`]),t(`span`,jr,w(r.$t(`landing.demoGroups.${e.key}`)),1),o[1]||=t(`span`,{class:`flex-1`},null,-1),A(pe,{additions:e.additions,deletions:e.deletions},null,8,[`additions`,`deletions`]),t(`span`,Mr,w(r.$t(`common.files`,{n:e.files},e.files)),1),t(`span`,Nr,[t(`span`,{"data-donut":``,class:f([`col-start-1 row-start-1 flex`,{"op-0":h.value}])},[A(le,{value:h.value?1:D(T)[s].value,size:14,thickness:2.5,color:`currentColor`},null,8,[`value`])],2),t(`span`,{"data-check":``,class:f([`i-ph-check-circle-duotone col-start-1 row-start-1 m--0.5 text-base`,{"op-0":!h.value}])},null,2)])],2),e.shown.length?(n(),i(`ul`,Pr,[(n(!0),i(d,null,a(e.shown,e=>(n(),i(`li`,{key:e.path,"data-target":e.path,class:f([`h-6 flex items-center gap-1`,{"op-0":!h.value}])},[A(fe,{path:e.path,class:`shrink-0`},null,8,[`path`]),t(`span`,Ir,[t(`span`,Lr,w(e.dir),1),y(w(e.base),1)])],10,Fr))),128)),e.hidden?(n(),i(`li`,{key:0,"data-detail":``,class:f([`h-6 flex items-center`,{"op-0":!h.value}])},[t(`span`,Rr,w(r.$t(`landing.moreFiles`,{n:e.hidden})),1)],2)):O(``,!0)])):O(``,!0)]))),128))],2)],512)],512))}}),Br={class:`mt-2 max-w-full overflow-x-auto border border-base rounded-md bg-code p-3 text-xs leading-relaxed`},Vr={key:0},Hr={key:1},Ur=k({__name:`GuideCode`,props:{code:{},lang:{}},setup(e){let t=e,r=s();return v(async()=>{let{light:e,dark:n}=re.value,i=await de({themes:[e,n],langs:[t.lang]});r.value=i.codeToTokens(t.code,{lang:t.lang,themes:{light:e,dark:n},defaultColor:`light-dark()`}).tokens}),(t,o)=>(n(),i(`pre`,Br,[r.value?(n(),i(`code`,Vr,[(n(!0),i(d,null,a(r.value,(e,t)=>(n(),i(d,{key:t},[y(w(t?`
|
|
2
|
+
`:``),1),(n(!0),i(d,null,a(e,(e,t)=>(n(),i(`span`,{key:t,style:u(e.htmlStyle)},w(e.content),5))),128))],64))),128))])):(n(),i(`code`,Hr,w(e.code),1))]))}}),Wr={key:0,class:`flex flex-col gap-4 text-sm`},Gr={class:`leading-relaxed`},Kr={class:`flex flex-col list-decimal gap-3 pl-5`},qr={class:`mt-2 flex`},Jr={class:`color-base`},Yr={class:`mt-2 flex`},Xr=`# .github/workflows/pulls-review.yml
|
|
3
|
+
name: pulls.review
|
|
4
|
+
on:
|
|
5
|
+
# Only reads the diff through the API and never checks out PR code,
|
|
6
|
+
# so \`pull_request_target\` is safe and fork PRs get a comment too.
|
|
7
|
+
pull_request_target:
|
|
8
|
+
types: [opened, synchronize, reopened]
|
|
9
|
+
|
|
10
|
+
permissions:
|
|
11
|
+
pull-requests: write
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
analyze:
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
steps:
|
|
17
|
+
- uses: antfu/pulls.review@main
|
|
18
|
+
with:
|
|
19
|
+
api-key: \${{ secrets.VERCEL_AI_GATEWAY_API_KEY }}`,Zr=`npx pulls.review main...feat # what feat adds since it forked from main
|
|
20
|
+
npx pulls.review HEAD # the last commit
|
|
21
|
+
npx pulls.review --worktree # uncommitted changes, new files included`,Qr=k({__name:`LandingGuideModal`,props:{guide:{required:!0},guideModifiers:{}},emits:[`update:guide`],setup(e){let r=T(e,`guide`);return(e,a)=>{let s=h(`i18n-t`);return n(),o(F,{open:!!r.value,title:r.value&&e.$t(`guide.${r.value}.title`),padding:`medium`,"onUpdate:open":a[0]||=e=>r.value=void 0},{default:j(()=>[r.value?(n(),i(`div`,Wr,[t(`p`,Gr,w(e.$t(`guide.${r.value}.intro`)),1),t(`ol`,Kr,[r.value===`userscript`?(n(),i(d,{key:0},[A(s,{keypath:`guide.userscript.manager`,tag:`li`,scope:`global`},{tampermonkey:j(()=>[A(Ce,{href:`https://www.tampermonkey.net/`},{default:j(()=>[...a[1]||=[y(` Tampermonkey `,-1)]]),_:1})]),violentmonkey:j(()=>[A(Ce,{href:`https://violentmonkey.github.io/`},{default:j(()=>[...a[2]||=[y(` Violentmonkey `,-1)]]),_:1})]),_:1}),t(`li`,null,[y(w(e.$t(`guide.userscript.install`))+` `,1),t(`div`,qr,[A(L,{href:`https://pulls.review/pulls-review-github.user.js`,icon:`i-ph:download-duotone`},{default:j(()=>[y(w(e.$t(`landing.installUserscript`)),1)]),_:1})])]),A(s,{keypath:`guide.userscript.open`,tag:`li`,scope:`global`},{tab:j(()=>[t(`strong`,Jr,w(e.$t(`embed.reviewChanges`)),1)]),_:1}),t(`li`,null,w(e.$t(`guide.userscript.ai`)),1)],64)):r.value===`bookmarklet`?(n(),i(d,{key:1},[A(s,{keypath:`guide.bookmarklet.bar`,tag:`li`,scope:`global`},{shortcut:j(()=>[...a[3]||=[t(`kbd`,{class:`rounded bg-code px-1 text-[0.85em] font-mono`},`Ctrl/⌘ + Shift + B`,-1)]]),_:1}),t(`li`,null,[y(w(e.$t(`guide.bookmarklet.drag`))+` `,1),t(`div`,Yr,[A(xe)])]),t(`li`,null,w(e.$t(`guide.bookmarklet.use`)),1)],64)):r.value===`actions`?(n(),i(d,{key:2},[A(s,{keypath:`guide.actions.secret`,tag:`li`,scope:`global`},{name:j(()=>[...a[4]||=[t(`code`,{class:`rounded bg-code px-1 text-[0.85em]`},`VERCEL_AI_GATEWAY_API_KEY`,-1)]]),_:1}),t(`li`,null,[y(w(e.$t(`guide.actions.workflow`))+` `,1),A(Ur,{code:Xr,lang:`yaml`})]),t(`li`,null,w(e.$t(`guide.actions.result`)),1),A(s,{keypath:`guide.actions.options`,tag:`li`,scope:`global`},{provider:j(()=>[...a[5]||=[t(`code`,{class:`rounded bg-code px-1 text-[0.85em]`},`provider`,-1)]]),model:j(()=>[...a[6]||=[t(`code`,{class:`rounded bg-code px-1 text-[0.85em]`},`model`,-1)]]),locale:j(()=>[...a[7]||=[t(`code`,{class:`rounded bg-code px-1 text-[0.85em]`},`locale`,-1)]]),readme:j(()=>[A(Ce,{href:`https://github.com/antfu/pulls.review#analyze-pull-requests-from-ci-experimental`},{default:j(()=>[...a[8]||=[y(` README `,-1)]]),_:1})]),_:1})],64)):r.value===`cli`?(n(),i(d,{key:3},[t(`li`,null,[y(w(e.$t(`guide.cli.branch`))+` `,1),A(Ur,{code:`npx pulls.review`,lang:`shellscript`})]),t(`li`,null,[y(w(e.$t(`guide.cli.target`))+` `,1),A(Ur,{code:Zr,lang:`shellscript`})]),A(s,{keypath:`guide.cli.browser`,tag:`li`,scope:`global`},{url:j(()=>[...a[9]||=[t(`code`,{class:`rounded bg-code px-1 text-[0.85em]`},`http://localhost:<port>/`,-1)]]),_:1})],64)):O(``,!0)])])):O(``,!0)]),_:1},8,[`open`,`title`])}}}),$r={class:`flex flex-col gap-3`},ei={class:`cursor-pointer text-sm color-muted`},ti=k({__name:`LoadDiffPanel`,emits:[`submit`],setup(r,{emit:a}){let o=a,c=s(``),l=s(!1);function u(){c.value.trim()&&o(`submit`,c.value)}async function d(e){c.value=await e.text()}function p(e){l.value=!1;let t=e.dataTransfer?.files[0];t&&d(t)}function m(e){let t=e.target.files?.[0];t&&d(t)}return(r,a)=>(n(),i(`div`,$r,[A(P,{label:r.$t(`load.pasteLabel`)},{default:j(()=>[e(t(`textarea`,{"onUpdate:modelValue":a[0]||=e=>c.value=e,rows:`10`,placeholder:`diff --git a/foo b/foo…`,class:f([`w-full resize-y border border-base rounded bg-raised p-2 text-sm font-mono outline-none focus-visible:ring-2 focus-visible:ring-primary-500/40`,{"border-primary-500 ring-2 ring-primary-500/40":l.value}]),onDragover:a[1]||=M(e=>l.value=!0,[`prevent`]),onDragleave:a[2]||=M(e=>l.value=!1,[`prevent`]),onDrop:M(p,[`prevent`])},null,34),[[N,c.value]])]),_:1},8,[`label`]),t(`label`,ei,[y(w(r.$t(`load.chooseFile`))+` `,1),t(`input`,{type:`file`,accept:`.diff,.patch,text/plain`,class:`hidden`,onChange:m},null,32)]),A(L,{variant:`primary`,disabled:!c.value.trim(),onClick:u},{default:j(()=>[y(w(r.$t(`load.loadButton`)),1)]),_:1},8,[`disabled`])]))}}),ni=k({__name:`LoadDiffModal`,props:{open:{type:Boolean},document:{}},emits:[`update:open`],setup(e,{emit:t}){let r=t,i=ce();function a(e,t){sessionStorage.setItem(ye,JSON.stringify({text:e,title:t})),r(`update:open`,!1),i.push(`/upload`)}return(t,i)=>(n(),o(F,{title:t.$t(`load.title`),description:t.$t(`load.description`),open:e.open,document:e.document,"onUpdate:open":i[0]||=e=>r(`update:open`,e??!1)},{default:j(()=>[A(ti,{onSubmit:a})]),_:1},8,[`title`,`description`,`open`,`document`]))}}),ri={class:`whitespace-nowrap font-medium`},ii={class:`op-fade`},ai=k({__name:`RepositoryPill`,props:{owner:{},repo:{}},setup(e){return(r,i)=>{let a=h(`RouterLink`);return n(),o(a,{to:D(oe)(e.owner,e.repo),class:`max-w-full flex items-center gap-2 border border-base rounded-full px-3 py-1.5 text-sm transition hover:border-accent-teal-400/50 hover:bg-hover`},{default:j(()=>[A(R,{login:e.owner,size:16},null,8,[`login`]),t(`span`,ri,[t(`span`,ii,w(e.owner)+`/`,1),y(w(e.repo),1)]),g(r.$slots,`default`)]),_:3},8,[`to`])}}});function oi(e=8){let{cache:t}=ie(),n=s([]);async function r(){let r=[];for(let n of await t.diffs.listRecent(e)){let e=se(n.ref);if(!e)continue;let i=await t.reviewMarks.get(n.fileShas);r.push({route:e,parent:I(n.ref)?.label,label:n.label,title:n.title,state:n.pullRequestState,reviewedCount:n.fileShas.filter(e=>i.has(e)).length,totalFiles:n.fileShas.length,lastViewedAt:n.lastViewedAt})}n.value=r}return{recent:n,load:r}}function si(e=8){let{cache:t}=ie(),n=s([]);async function r(){n.value=(await t.pullRequestLists.listRecent(e)).map(e=>({owner:e.owner,repo:e.repo,openCount:e.page.totalCount,lastViewedAt:e.lastViewedAt}))}return{recent:n,load:r}}var ci={key:0,class:`pointer-events-none fixed inset-4 z-toast flex items-center justify-center border-4 border-accent-teal-400 rounded-2xl border-dashed bg-accent-teal-400/10 text-lg color-accent-teal font-medium backdrop-blur-sm`},li={class:`mxa max-w-6xl w-full flex flex-1 flex-col gap-20 px-6 py-16 sm:py-20`},ui={class:`grid items-center gap-12 lg:grid-cols-[minmax(0,1fr)_minmax(0,30rem)] lg:gap-16`},di={class:`flex flex-col gap-8`},fi={class:`max-w-md text-sm leading-relaxed op-fade`},pi={class:`max-w-md flex flex-col gap-2`},mi={class:`text-xs op-fade`},hi={key:0,class:`flex flex-col gap-3`},gi={class:`text-xs font-mono op-fade`},_i={class:`flex flex-wrap gap-2`},vi={class:`flex color-accent-teal`},yi={class:`text-xs op-fade`},bi={key:1,class:`flex flex-col gap-3`},xi={class:`text-xs font-mono op-fade`},Si={class:`flex flex-wrap gap-2`},Ci={class:`text-xs op-fade`},wi={class:`text-xs op-fade`},Ti={class:`flex flex-col gap-3`},Ei={class:`text-xs font-mono op-fade`},Di={class:`flex flex-wrap gap-2`},Oi={class:`max-w-56 truncate text-xs op-fade`},ki={class:`grid gap-4 sm:grid-cols-2`},Ai={class:`flex flex-col gap-4 border border-base rounded-lg p-5`},ji={class:`flex items-start gap-3`},Mi={class:`flex-1`},Ni={class:`font-semibold`},Pi={class:`mt-auto flex`},Fi={class:`flex flex-col gap-4 border border-base rounded-lg p-5`},Ii={class:`flex items-start gap-3`},Li={class:`flex-1`},Ri={class:`font-semibold`},zi={class:`mt-auto flex gap-2`},Bi={class:`flex flex-col gap-4 border border-base rounded-lg p-5`},Vi={class:`flex items-start gap-3`},Hi={class:`flex-1`},Ui={class:`font-semibold`},Wi={class:`text-sm op-fade`},Gi={class:`mt-auto flex gap-2`},Ki={class:`flex flex-col gap-4 border border-base rounded-lg p-5`},qi={class:`flex items-start gap-3`},Ji={class:`flex-1`},Yi={class:`font-semibold`},Xi={class:`text-sm op-fade`},Zi={class:`mt-auto flex`},Qi={class:`flex flex-col gap-4 border border-base rounded-lg p-5`},$i={class:`flex items-start gap-3`},ea={class:`flex-1`},ta={class:`font-semibold`},na={class:`text-sm op-fade`},ra={class:`mt-auto flex`},ia=`github-actions[bot]`,aa=k({__name:`index`,setup(e){let c=[{owner:`antfu`,repo:`pulls.review`,number:45,state:`merged`,title:`feat: review any GitHub compare range or single commit`},{owner:`antfu`,repo:`pulls.review`,number:46,state:`merged`,title:`feat(app): sidebar tree mode for the group list`}],l=ce(),{locale:u,t:f}=E(),m=s(``),g=s(!1),_=s(),v=p(()=>ae(m.value));function b(){v.value&&l.push(v.value)}async function x(e){let t=await e.text();sessionStorage.setItem(ye,JSON.stringify({text:t,title:e.name})),l.push(`/upload`)}let S=0,C=s(!1);function T(e){C.value=!1;let t=e.dataTransfer?.files[0];t&&x(t)}function k(e){e.dataTransfer?.types.includes(`Files`)&&(S++,C.value=!0)}function N(){S=Math.max(0,S-1),S===0&&(C.value=!1)}let{recent:P,load:F}=oi(),{recent:te,load:re}=si();return r(()=>{F(),re()}),ne(()=>f(`landing.documentTitle`),` - `),(e,r)=>{let s=h(`i18n-t`);return n(),i(`div`,{class:`relative min-h-screen flex flex-col`,onDragenter:M(k,[`prevent`]),onDragleave:M(N,[`prevent`]),onDragover:r[8]||=M(()=>{},[`prevent`]),onDrop:M(T,[`prevent`])},[A(ge),C.value?(n(),i(`div`,ci,w(e.$t(`landing.dropHint`)),1)):O(``,!0),t(`main`,li,[t(`section`,ui,[t(`div`,di,[A(_e),t(`p`,fi,w(e.$t(`landing.tagline`)),1),t(`div`,pi,[t(`form`,{class:`flex items-stretch gap-2`,onSubmit:M(b,[`prevent`])},[A(ee,{modelValue:m.value,"onUpdate:modelValue":r[0]||=e=>m.value=e,icon:`i-ph:link-simple-duotone`,placeholder:`https://github.com/owner/repo/pull/123`,class:`flex-1`},null,8,[`modelValue`]),A(L,{type:`submit`,variant:`primary`,class:`pl-3 pr-4`,icon:`i-ph-arrow-right-bold`,disabled:!v.value},{default:j(()=>[y(w(e.$t(`landing.open`)),1)]),_:1},8,[`disabled`])],32),t(`p`,mi,w(e.$t(`landing.pasteHint`)),1)])]),A(zr,{class:`min-w-0 w-full`})]),D(P).length?(n(),i(`section`,hi,[t(`h2`,gi,w(e.$t(`landing.recentlyViewed`)),1),t(`div`,_i,[(n(!0),i(d,null,a(D(P),e=>(n(),o(he,{key:e.route,to:e.route,parent:e.parent,label:e.label,state:e.state,title:e.title},{default:j(()=>[t(`span`,vi,[A(le,{value:e.totalFiles?e.reviewedCount/e.totalFiles:0,size:14,thickness:2.5,color:`currentColor`},null,8,[`value`])]),t(`span`,yi,w(D(ve)(new Date(e.lastViewedAt),D(u))),1)]),_:2},1032,[`to`,`parent`,`label`,`state`,`title`]))),128))])])):O(``,!0),D(te).length?(n(),i(`section`,bi,[t(`h2`,xi,w(e.$t(`landing.recentRepositories`)),1),t(`div`,Si,[(n(!0),i(d,null,a(D(te),r=>(n(),o(ai,{key:`${r.owner}/${r.repo}`,owner:r.owner,repo:r.repo},{default:j(()=>[t(`span`,Ci,w(e.$t(`pulls.open`,{n:r.openCount})),1),t(`span`,wi,w(D(ve)(new Date(r.lastViewedAt),D(u))),1)]),_:2},1032,[`owner`,`repo`]))),128))])])):O(``,!0),t(`section`,Ti,[t(`h2`,Ei,w(e.$t(`landing.tryDemos`)),1),t(`div`,Di,[(n(),i(d,null,a(c,e=>A(he,{key:`${e.owner}/${e.repo}#${e.number}`,to:`${D(se)({kind:`github-pr`,owner:e.owner,repo:e.repo,number:String(e.number)})}?from=${encodeURIComponent(ia)}`,parent:`${e.owner}/${e.repo}`,label:`#${e.number}`,state:e.state,title:e.title},{default:j(()=>[t(`span`,Oi,w(e.title),1)]),_:2},1032,[`to`,`parent`,`label`,`state`,`title`])),64))])]),t(`section`,ki,[t(`div`,Ai,[t(`div`,ji,[r[11]||=t(`span`,{class:`i-ph:upload-simple-duotone mt-0.5 shrink-0 text-xl color-accent-teal`,"aria-hidden":`true`},null,-1),t(`div`,Mi,[t(`h2`,Ni,w(e.$t(`landing.uploadTitle`)),1),A(s,{keypath:`landing.uploadDescription`,tag:`p`,class:`text-sm op-fade`,scope:`global`},{diff:j(()=>[...r[9]||=[t(`code`,{class:`rounded bg-code px-1`},`.diff`,-1)]]),patch:j(()=>[...r[10]||=[t(`code`,{class:`rounded bg-code px-1`},`.patch`,-1)]]),_:1})])]),t(`div`,Pi,[A(L,{icon:`i-ph:upload-simple-duotone`,onClick:r[1]||=e=>g.value=!0},{default:j(()=>[y(w(e.$t(`landing.uploadButton`)),1)]),_:1})])]),t(`div`,Fi,[t(`div`,Ii,[r[14]||=t(`span`,{class:`i-ph:puzzle-piece-duotone mt-0.5 shrink-0 text-xl color-accent-magenta`,"aria-hidden":`true`},null,-1),t(`div`,Li,[t(`h2`,Ri,w(e.$t(`landing.embedTitle`)),1),A(s,{keypath:`landing.embedDescription`,tag:`p`,class:`text-sm op-fade`,scope:`global`},{tampermonkey:j(()=>[A(Ce,{href:`https://www.tampermonkey.net/`},{default:j(()=>[...r[12]||=[y(` Tampermonkey `,-1)]]),_:1})]),violentmonkey:j(()=>[A(Ce,{href:`https://violentmonkey.github.io/`},{default:j(()=>[...r[13]||=[y(` Violentmonkey `,-1)]]),_:1})]),_:1})])]),t(`div`,zi,[A(L,{href:`https://pulls.review/pulls-review-github.user.js`,icon:`i-ph:download-duotone`},{default:j(()=>[y(w(e.$t(`landing.installUserscript`)),1)]),_:1}),A(L,{icon:`i-ph:book-open-duotone`,onClick:r[2]||=e=>_.value=`userscript`},{default:j(()=>[y(w(e.$t(`landing.viewGuide`)),1)]),_:1})])]),t(`div`,Bi,[t(`div`,Vi,[r[15]||=t(`span`,{class:`i-ph:bookmark-simple-duotone mt-0.5 shrink-0 text-xl color-accent-magenta`,"aria-hidden":`true`},null,-1),t(`div`,Hi,[t(`h2`,Ui,w(e.$t(`landing.bookmarkletTitle`)),1),t(`p`,Wi,w(e.$t(`landing.bookmarkletDescription`)),1)])]),t(`div`,Gi,[A(xe),A(L,{icon:`i-ph:book-open-duotone`,onClick:r[3]||=e=>_.value=`bookmarklet`},{default:j(()=>[y(w(e.$t(`landing.viewGuide`)),1)]),_:1})])]),t(`div`,Ki,[t(`div`,qi,[r[16]||=t(`span`,{class:`i-ph:lightning-duotone mt-0.5 shrink-0 text-xl color-accent-orange`,"aria-hidden":`true`},null,-1),t(`div`,Ji,[t(`h2`,Yi,w(e.$t(`landing.actionsTitle`)),1),t(`p`,Xi,w(e.$t(`landing.actionsDescription`)),1)])]),t(`div`,Zi,[A(L,{icon:`i-ph:book-open-duotone`,onClick:r[4]||=e=>_.value=`actions`},{default:j(()=>[y(w(e.$t(`landing.viewGuide`)),1)]),_:1})])]),t(`div`,Qi,[t(`div`,$i,[r[17]||=t(`span`,{class:`i-ph:terminal-window-duotone mt-0.5 shrink-0 text-xl color-accent-teal`,"aria-hidden":`true`},null,-1),t(`div`,ea,[t(`h2`,ta,w(e.$t(`landing.cliTitle`)),1),t(`p`,na,w(e.$t(`landing.cliDescription`)),1)])]),t(`div`,ra,[A(L,{icon:`i-ph:book-open-duotone`,onClick:r[5]||=e=>_.value=`cli`},{default:j(()=>[y(w(e.$t(`landing.viewGuide`)),1)]),_:1})])])])]),A(me),A(ni,{open:g.value,"onUpdate:open":r[6]||=e=>g.value=e},null,8,[`open`]),A(Qr,{guide:_.value,"onUpdate:guide":r[7]||=e=>_.value=e},null,8,[`guide`])],32)}}});export{aa as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{It as e,Mt as t,W as n,Yn as r,dt as i}from"./vue-i18n-B4RRzKT-.js";function a(a){let o=i(),s=r(),c;return e(()=>{let e=o?.proxy?.$el,t=e?.getRootNode();if(!(t instanceof ShadowRoot))return;let n=document.createElement(`div`);t.append(n),s.value=n;let r=(e instanceof Element?e:e?.parentElement)?.closest(`.dark, .light`);if(r){let e=()=>{n.className=r.classList.contains(`dark`)?`dark`:`light`};e(),c=new MutationObserver(e),c.observe(r,{attributeFilter:[`class`]})}}),t(()=>{c?.disconnect(),s.value?.remove(),s.value=void 0}),n(()=>a?.()??s.value)}export{a as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={cancel:`Cancelar`,save:`Salvar`,remove:`Remover`,retry:`Tentar novamente`,close:`Fechar`,dismiss:`Dispensar`,refresh:`Atualizar`,settings:`Configurações`,you:`você`,loading:`Carregando…`,send:`Enviar`,stop:`Parar`,clear:`Limpar`,reply:`Responder`,submit:`Enviar`,abort:`Abortar`,rerun:`Executar novamente`,files:`{n} arquivo | {n} arquivos`,subgroups:`{n} subgrupo | {n} subgrupos`,githubRepository:`Repositório no GitHub`,avatar:`Avatar de {login}`},t={dropHint:`Solte para carregar seu arquivo diff / .patch`,tagline:`Agrupa os arquivos alterados, resume o que importa e permite revisar um escopo por vez. Tudo funciona localmente no seu navegador.`,documentTitle:`Revisões de pull requests claras e organizadas`,open:`Abrir`,pasteHint:`Cole a URL de qualquer pull request do GitHub ou escolha uma demo abaixo.`,recentlyViewed:`// vistos recentemente`,recentRepositories:`// repositórios vistos recentemente`,tryDemos:`// experimente algumas demos`,demoBefore:`// antes`,demoAfter:`// depois`,moreFiles:`... mais {n} arquivos`,demoTitle:`feat: compartilhar uma análise de IA como comentário do PR e carregar resultados compartilhados`,demoSummary:`Um revisor com API key publica sua análise no PR; todos os outros a carregam sem token.`,demoGroups:{store:`Store de análises compartilhadas e contrato do comentário`,ui:`UI de compartilhamento de resultado`,refactor:`Refatoração do store: resultado na raiz`,tests:`Testes`,docs:`Docs e dependências`},uploadTitle:`Revise um diff sem PR`,uploadDescription:`Envie ou cole um unified diff, ou solte um arquivo {diff} / {patch} em qualquer lugar desta página.`,uploadButton:`Enviar um diff`,embedTitle:`Use integrado ao github.com`,embedDescription:`Com {tampermonkey} ou {violentmonkey} instalado, um painel do pulls.review aparece em cada página de pull request.`,installUserscript:`Instalar userscript`,bookmarkletTitle:`Alterne entre github.com e pulls.review`,bookmarkletDescription:`Não pode instalar extensões? Arraste este bookmarklet para a barra de favoritos para abrir o pull request atual no pulls.review, e voltar.`,bookmarkletDrag:`Arraste-me para a barra de favoritos`,actionsTitle:`Configure a análise automática com GitHub Actions`,actionsDescription:`Analise cada pull request uma vez na CI e publique o resultado como comentário, para que cada revisor não precise da própria chave de modelo.`,cliTitle:`Rode em mudanças locais do git com a CLI`,cliDescription:`Revise sua árvore de trabalho, um commit ou uma branch antes do push, agrupados e resumidos como um PR.`,viewGuide:`Ver guia`},n={userscript:{title:`Use o pulls.review integrado ao github.com`,intro:`O userscript adiciona um painel do pulls.review diretamente às páginas de pull request no github.com, com arquivos agrupados e resumos, para você não precisar trocar de aba.`,manager:`Instale um gerenciador de userscripts: {tampermonkey} ou {violentmonkey}.`,install:`Instale o userscript do pulls.review. Seu gerenciador pede confirmação.`,open:`Abra qualquer pull request no github.com e clique na aba {tab} ao lado de "Files changed".`,ai:`O github.com bloqueia as requisições de que a análise por IA precisa, então o painel mostra análises compartilhadas como comentários do PR. Abra o PR no pulls.review para rodar uma nova.`},bookmarklet:{title:`Alterne entre github.com e pulls.review`,intro:`Um bookmarklet é um favorito que executa um pequeno script. Funciona em qualquer navegador, sem instalar extensões, e abre a página atual no outro site.`,bar:`Mostre a barra de favoritos, por exemplo com {shortcut}.`,drag:`Arraste este botão para a barra de favoritos:`,use:`Em uma página de pull request, commit ou comparação no github.com, clique no favorito para abri-la no pulls.review. Clique de novo para voltar.`},actions:{title:`Análise automática com GitHub Actions`,intro:`Deixe a CI analisar cada pull request uma vez, assim que ele é aberto ou atualizado. Todos que abrem o PR, aqui ou no painel do github.com, veem na hora o mesmo resumo agrupado. Ninguém precisa da própria chave de modelo, e pull requests de forks também recebem.`,secret:`Adicione sua chave de modelo como secret do repositório, por exemplo {name}.`,workflow:`Adicione este workflow ao repositório:`,result:`Abra ou atualize um pull request para testar. A análise chega como comentário, e novas execuções em um PR sem mudanças pulam a chamada ao modelo.`,options:`O {provider} é inferido a partir da chave. Defina {provider}, {model} ou {locale} para substituí-lo. Veja o {readme} para todas as opções.`},cli:{title:`Revise mudanças locais do git com a CLI`,intro:`Revise sua própria mudança antes de qualquer outra pessoa. A CLI abre no pulls.review sua branch, um commit ou o trabalho ainda sem commit, para você ver como a mudança se lê, agrupada e resumida, antes do push ou de abrir um PR.`,branch:`Em um repositório git, rode isto para revisar sua branch atual em relação à branch padrão:`,target:`Ou escolha o que revisar:`,browser:`Ela abre {url} no navegador para visualizar suas mudanças locais. Confirme a aba com o código de uso único exibido no terminal. Lá você também pode escolher outras branches ou commits para comparar.`}},r={title:`Carregar um diff`,description:`Cole ou solte um arquivo unified diff / .patch para revisá-lo.`,pasteLabel:`Cole um unified diff / .patch`,chooseFile:`Ou escolha um arquivo .diff/.patch`,loadButton:`Carregar diff`,parsing:`Analisando o diff…`,parseFailed:`Não foi possível analisar este diff`,noDiff:`Nenhum diff carregado`,noDiffHint:`Volte à página inicial e use o botão de envio para colar ou soltar um diff.`,goHome:`Ir para o início`},i={description:`Descrição`,descriptionExpand:`Mostrar descrição completa`,descriptionCollapse:`Recolher descrição`,loading:`Carregando pull request…`,loadFailed:`Não foi possível carregar este pull request`,somethingWrong:`Algo deu errado`,newCommits:`Este pull request tem novos commits desde que foi armazenado em cache.`,autoRefreshNextTime:`Atualizar automaticamente na próxima vez`,endOfDiff:`Você chegou ao fim do diff.`,analyzeBy:`Analisar por`,rules:`Regras`,ai:`IA`,by:`por`,sharedBy:`Vendo a análise de IA compartilhada por`,sharedAnalysis:`Vendo a análise compartilhada`,reviewedOf:`/ {total} revisados`,openInSite:`Abrir no pulls.review`},a={reviewChanges:`Revisar alterações`,updateUserscript:`Atualizar userscript`},o={loading:`Carregando pull requests…`,loadFailed:`Não foi possível carregar os pull requests`,open:`{n} abertos`,search:`Filtrar pull requests`,empty:`Não há pull requests abertos`,noMatches:`Nenhum pull request corresponde à sua busca`,searchingAll:`Buscando em todos os {n} pull requests abertos…`,loadingMore:`Carregando mais…`,openedBy:`aberto {time} por {author}`,milestone:`Marco`,comments:`{n} comentário | {n} comentários`,linkedIssues:`{n} issue vinculada | {n} issues vinculadas`,assignedTo:`Atribuído a {login}`,groups:`{n} grupo | {n} grupos`,viewedHint:`Visto neste navegador`,aiAvailable:`Análise de IA disponível`,sort:{label:`Ordenar`,"recently-updated":`Atualizados recentemente`,"least-recently-updated":`Atualizados há mais tempo`,newest:`Mais recentes`,oldest:`Mais antigos`,"most-commented":`Mais comentados`,"least-commented":`Menos comentados`},review:{approved:`Aprovado`,changes_requested:`Alterações solicitadas`,review_required:`Revisão necessária`},checks:{success:`Todas as verificações passaram`,failure:`Algumas verificações falharam`,pending:`Algumas verificações ainda não terminaram`}},s={setupKeys:`Configurar chaves de API`,analyzing:`Analisando…`,failed:`A análise falhou`,failedTitle:`A análise de IA falhou: {message}`,reanalyze:`Analisar novamente`,withAi:`Analisar com IA`,statusTitle:`Análise de IA`,starting:`Iniciando…`,thinking:`Pensando… (etapa {step})`,reading:`Lendo {n} arquivo: {first} | Lendo {n} arquivos: {first}`,organizing:`Organizando grupos…`,notConfigured:`A análise de IA não está configurada: adicione um token de gateway ou uma API key de fornecedor nas Configurações`,chatFailed:`A solicitação do chat falhou`,agentSessionLost:`O agente não tem mais esta conversa. Reanalise para conversar.`},c={button:`Compartilhar resultado`,updateButton:`Atualizar comentário compartilhado`,sharing:`Compartilhando…`,tooltip:`Publica esta análise como comentário no pull request para que outros possam carregá-la`,needsToken:`É necessário um token do GitHub com acesso de escrita para compartilhar`,failed:`Falha ao compartilhar: {message}`,titleUpdate:`Atualizar sua análise compartilhada`,titleShare:`Compartilhar esta análise no GitHub`,willUpdate:`Seu {comment} existente neste pull request será atualizado como {user} com seu token do GitHub.`,willPost:`Um comentário público será publicado neste pull request como {user} com seu token do GitHub.`,commentLink:`comentário`,contains:`O comentário contém:`,containsLink:`um link para abrir esta revisão no {site}`,containsJson:`o agrupamento e os resumos desta análise de IA como JSON dentro de um bloco recolhido`,excludes:`Suas mensagens de chat, chaves de API ou qualquer outra coisa das suas configurações não serão incluídas.`,anyoneCanLoad:`Qualquer pessoa que veja o pull request pode carregar a análise compartilhada.`,englishRecommended:`Se você trabalha em um projeto público, recomendamos compartilhar o resultado em inglês para que seja útil à comunidade.`,share:`Compartilhar`,update:`Atualizar`,shareAnyway:`Compartilhar mesmo assim`,updateAnyway:`Atualizar mesmo assim`,loadReplaces:`Carregar uma análise de IA compartilhada? Ela substituirá a sua:`,available:`Análises de IA compartilhadas deste pull request disponíveis:`,staleTitle:`Analisado antes dos commits mais recentes`,outdated:`(desatualizado)`,inLanguage:`Analisado em {language}`,notShared:`{login} não compartilhou uma análise deste pull request.`},l={toggle:`Expandir ou recolher grupo`,filesReviewed:`{reviewed} / {total} arquivos revisados`,subgroupsOf:`subgrupos de`,hideSubgroups:`Ocultar subgrupos`,showSubgroups:`Mostrar subgrupos`,navTabs:`Mostrar grupos como abas`,navSidebar:`Mostrar grupos como barra lateral`,uncategorized:`Sem categoria`,uncategorizedSummary:`Arquivos não cobertos pela análise atual.`,resize:`Arraste para redimensionar; clique duas vezes para redefinir`},u={critical:`Revisar com atenção`},d={layoutTree:`Mostrar arquivos como árvore`,layoutList:`Mostrar arquivos como lista`,markReviewed:`Marcar como revisado`,markFolderReviewed:`Marcar todos os arquivos em {name} como revisados`,changedSinceReviewed:`Este arquivo já foi revisado, mas mudou em commits posteriores`,resolved:`{n} resolvidos`,binary:`Arquivo binário`,binaryNotShown:`Arquivo binário não exibido.`,tooLarge:`Diff grande demais para ser exibido.`,loadFailed:`Falha ao carregar`,loadFull:`Carregar conteúdo completo do arquivo`,expand:`Expandir arquivo`,collapse:`Recolher arquivo`,collapseMenu:`Expandir ou recolher arquivos`,expandAll:`Expandir todos os arquivos`,collapseAll:`Recolher todos os arquivos`,collapseReviewed:`Recolher arquivos revisados`,noLongerInDiff:`Não está mais neste diff`,removed:`removido`},f={title:`Progresso da revisão`,markAll:`Marcar todos como revisados`,reset:`Redefinir estado da revisão`,invert:`Inverter estado da revisão`,status:{reviewed:`Revisado`,changed:`Alterado após a revisão`,unreviewed:`Não revisado`}},p={added:`adicionado`,removed:`removido`,modified:`modificado`,renamed:`renomeado`,copied:`copiado`},m={open:`aberto`,draft:`rascunho`,closed:`fechado`,merged:`mesclado`},h={ui:`UI`,api:`API`,core:`núcleo`,data:`dados`,cli:`CLI`,security:`segurança`,tests:`testes`,docs:`documentação`,examples:`exemplos`,deps:`dependências`,build:`build`,scripts:`scripts`,config:`configuração`,i18n:`i18n`,assets:`recursos`,other:`outros`},g={addReview:`Adicionar revisão`,hideComments:`Ocultar comentários de revisão`,showComments:`Mostrar comentários de revisão`,reviews:`Revisões`,approved:`aprovou`,changesRequested:`solicitou alterações`,commented:`comentou`,dismissed:`revisão descartada`,reviewChanges:`Revisar alterações`,includesPending:`O envio inclui seu {n} comentário pendente. | O envio inclui seus {n} comentários pendentes.`,summaryPlaceholder:`Deixe um resumo (opcional para aprovar)`,comment:`Comentar`,approve:`Aprovar`,requestChanges:`Solicitar alterações`,discard:`Descartar revisão`,leaveComment:`Deixe um comentário`,addSingle:`Adicionar comentário único`,addToReview:`Adicionar comentário de revisão`,startReview:`Iniciar uma revisão`,pending:`Pendente`,editComment:`Editar comentário`,deleteComment:`Excluir comentário`,replyPlaceholder:`Responder…`,resolve:`Resolver`},_={title:`Perguntar sobre este PR`,collapse:`Recolher`,reanalyzeToEnable:`Analise novamente para habilitar o chat`,thinking:`Pensando…`,placeholder:`Pergunte sobre este PR…`,updatedGrouping:`Agrupamento atualizado: {n} grupos`,readFiles:`Leu {n} arquivo | Leu {n} arquivos`,updatingGrouping:`Atualizando agrupamento…`,submittingGrouping:`Enviando agrupamento…`,requestFailed:`A solicitação falhou`,stopped:`parado`},v={layout:`Layout do diff`,wrapLines:`Quebrar linhas`,unified:`Unificado`,split:`Dividido`,syntaxTheme:{label:`Tema de sintaxe`,light:`Modo claro`,dark:`Modo escuro`},cached:`Pull requests em cache`,autoRefresh:`Atualizar automaticamente quando novos commits forem encontrados`,navigation:`Navegação`,smoothScroll:`Animar a rolagem ao pular para um grupo ou arquivo`,autoFetchFullFile:`Corrigir de forma inteligente o destaque de sintaxe incorreto`,autoFetchFullFileHint:`Detecta erros de sintaxe no conteúdo parcial e carrega a versão completa.`,language:`Idioma`,token:{label:`Token de acesso pessoal do GitHub`,optional:`Opcional para repositórios públicos; obrigatório para repositórios privados ou para deixar revisões.`,scopes:`Revisões precisam do escopo {repo} (token clássico) ou {fineGrained} (token granular)`,storedLocally:`Armazenado apenas neste navegador.`,generate:`Gerar um no GitHub →`,fineGrained:`Token granular (sem escopos clássicos)`,updated:`Atualizado`,expires:`Expira`,neverExpires:`Nunca expira`,change:`Alterar token`,checking:`Verificando token…`,couldNotVerify:`Não foi possível verificar este token.`},tabs:{appearance:`Aparência`,behavior:`Comportamento`,github:`GitHub`,ai:`Análise com IA`,notSetUp:`Ainda não configurado`},llm:{title:`Análise de IA`,description:`Configure um provedor de modelos para habilitar resumos gerados por IA. Armazenado apenas neste navegador e enviado somente ao provedor que você escolher.`,provider:`Provedor`,baseUrl:`URL base`,baseUrlDescription:`Qualquer endpoint de chat completions compatível com OpenAI (a própria OpenAI, um servidor local etc.).`,apiKey:`API key`,gatewayHint:`Um token do {link}, que alcança qualquer um dos fornecedores suportados com um único token.`,anthropicHint:`Uma {link}, chamada diretamente deste navegador (sem gateway).`,anthropicLink:`API key da Anthropic`,openaiHint:`A API key do endpoint acima.`,createKey:`Criar uma no {provider} →`,configured:`Configurada`,changeKey:`Alterar chave`,model:`Modelo`,modelListFailed:`Não foi possível carregar a lista de modelos ({error}). Digite um id de modelo manualmente.`,embedUnavailable:`Os recursos de IA não estão disponíveis no modo incorporado`,embedReason:`A rígida CSP do github.com bloqueia as solicitações de que os recursos de IA precisam aqui. {link} para usá-los.`,goToWebsite:`Acesse o site`,agent:`Agente`,agentNeedsCli:"Agentes locais rodam na CLI do pulls.review: inicie-a em um repositório com `npx pulls.review` e escolha um lá.",agentDetecting:`Procurando CLIs de agentes…`,agentNone:`Nenhuma CLI de agente encontrada nesta máquina.`,agentHint:`Um agente de código instalado nesta máquina, com sua própria conta: {claude}, {codex} ou {opencode}. Ele lê o patch e o repositório, nunca escreve.`,agentPick:`Escolha um agente…`},models:{placeholder:`id do modelo`,loading:`Carregando modelos…`,search:`Buscar modelos…`,noMatch:`Nenhum modelo correspondente`,useCustom:`Usar “{id}”`,free:`Grátis`,priceTitle:`Entrada {input}/M · Saída {output}/M tokens`,agentDefault:`Padrão do agente`}},y={allFiles:`Todos os arquivos`,code:{label:`Código`,summary:`Alterações no código-fonte.`},other:{label:`Outros`,summary:`Outras alterações que não se encaixam em uma categoria existente.`},docs:{label:`Documentação`,summary:`Atualizações de documentação.`},tests:{label:`Testes`,summary:`Cobertura de testes da alteração.`},config:{label:`Configuração`,summary:`Alterações de configuração.`},deps:{label:`Dependências`,summary:`Alterações de versão de dependências.`},generated:{label:`Gerados`,summary:`Alterações em arquivos gerados ou de build.`}},b={tokenRequired:`É necessário um token do GitHub para escrever neste pull request.`,diffNotLoaded:`O diff ainda não terminou de carregar.`,noViewer:`Não foi possível determinar o usuário do GitHub deste token.`,tokenRejected:`O GitHub rejeitou este token (401). Verifique se ele foi colado por completo e não foi revogado.`,tooLarge:`A análise é grande demais para ser compartilhada como comentário ({n} caracteres).`},x={loading:`Carregando alterações locais…`,loadFailed:`Não foi possível carregar estas alterações`,auth:{title:`Digite o código do seu terminal`,hint:`O pulls.review exibiu um código de 6 dígitos no terminal em que está rodando.`,invalid:`Esse código não funcionou. Confira o terminal e tente novamente.`,submit:`Continuar`},picker:{tagline:`Revise suas branches locais, intervalos e alterações não commitadas como um pull request: agrupados, resumidos, um escopo por vez.`,title:`Revisar alterações locais`,base:`Base`,head:`Head`,compare:`Comparar`,shortcuts:`Atalhos`,worktree:`Alterações não commitadas`,recentCommits:`Commits recentes`,branches:`Branches`,against:`em relação a {base}`,current:`Branch atual`,github:`Ou um pull request, comparação ou commit do GitHub`}},S={common:e,landing:t,guide:n,load:r,pr:i,embed:a,pulls:o,analyze:s,share:c,group:l,note:u,file:d,reviewProgress:f,fileStatus:p,prState:m,category:h,review:g,chat:_,settings:v,rules:y,errors:b,local:x};export{s as analyze,h as category,_ as chat,e as common,S as default,a as embed,b as errors,d as file,p as fileStatus,l as group,n as guide,t as landing,r as load,x as local,u as note,i as pr,m as prState,o as pulls,g as review,f as reviewProgress,y as rules,v as settings,c as share};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{T as e,_ as t,b as n,f as r,x as i}from"./source-
|
|
1
|
+
import{T as e,_ as t,b as n,f as r,x as i}from"./source-CvnvCX42.js";import{m as a}from"./index-Buksdj5x.js";import{u as o}from"./pages-hDJHVoGR.js";function s(n){return{name:`pulls-review-rpc`,hasItem:async r=>i(t(e()),await n.call(o.storageGetItem,{key:r}))!==null,getItem:async r=>i(t(e()),await n.call(o.storageGetItem,{key:r})),setItem:async(e,t)=>{await n.call(o.storageSetItem,{key:e,value:t})},removeItem:async e=>{await n.call(o.storageRemoveItem,{key:e})},getKeys:async t=>i(r(e()),await n.call(o.storageGetKeys,{base:t}))}}function c(t,r){let a;return{async githubToken(){return a??=t.call(o.githubToken).then(t=>i(n(e()),t??void 0)),await a??r.githubToken()}}}function l(t,r){return{key:async()=>i(e(),await t.call(o.sourceKey,{target:await r})),fetch:async()=>i(a,await t.call(o.sourceFetch,{target:await r})),fingerprint:async()=>i(e(),await t.call(o.sourceFingerprint,{target:await r})),loadFile:async(a,s)=>i(n(e()),await t.call(o.sourceLoadFile,{target:await r,path:a,sha:s})??void 0)}}export{s as n,l as r,c as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={cancel:`Отмена`,save:`Сохранить`,remove:`Удалить`,retry:`Повторить`,close:`Закрыть`,dismiss:`Скрыть`,refresh:`Обновить`,settings:`Настройки`,you:`вы`,loading:`Загрузка…`,send:`Отправить`,stop:`Стоп`,clear:`Очистить`,reply:`Ответить`,submit:`Отправить`,abort:`Прервать`,rerun:`Запустить снова`,files:`{n} файлов | {n} файл | {n} файла | {n} файлов`,subgroups:`{n} подгрупп | {n} подгруппа | {n} подгруппы | {n} подгрупп`,githubRepository:`Репозиторий на GitHub`,avatar:`Аватар {login}`},t={dropHint:`Отпустите, чтобы загрузить файл diff / .patch`,tagline:`Группирует изменённые файлы, кратко излагает главное и позволяет ревьюить по одной области за раз. Всё работает локально в вашем браузере.`,documentTitle:`Понятные и упорядоченные ревью пул-реквестов`,open:`Открыть`,pasteHint:`Вставьте ссылку на любой pull request GitHub или выберите демо ниже.`,recentlyViewed:`// недавно просмотренные`,recentRepositories:`// недавно просмотренные репозитории`,tryDemos:`// попробуйте демо`,demoBefore:`// до`,demoAfter:`// после`,moreFiles:`... ещё {n} файлов`,demoTitle:`feat: делиться ИИ-анализом в комментарии к PR и загружать общие результаты`,demoSummary:`Один ревьюер с API-ключом публикует свой анализ в PR; все остальные загружают его без токена.`,demoGroups:{store:`Store общих анализов и контракт комментария`,ui:`UI публикации результата`,refactor:`Рефакторинг store: результат в корень`,tests:`Тесты`,docs:`Документация и зависимости`},uploadTitle:`Ревью diff без PR`,uploadDescription:`Загрузите или вставьте unified diff либо перетащите файл {diff} / {patch} в любое место этой страницы.`,uploadButton:`Загрузить diff`,embedTitle:`Встроенный режим на github.com`,embedDescription:`С установленным {tampermonkey} или {violentmonkey} панель pulls.review появляется на каждой странице pull request.`,installUserscript:`Установить userscript`,bookmarkletTitle:`Переход между github.com и pulls.review`,bookmarkletDescription:`Нельзя устанавливать расширения? Перетащите этот букмарклет на панель закладок, чтобы открыть текущий pull request на pulls.review и вернуться обратно.`,bookmarkletDrag:`Перетащите меня на панель закладок`,actionsTitle:`Настройте автоанализ через GitHub Actions`,actionsDescription:`Анализируйте каждый pull request один раз в CI и публикуйте результат комментарием, чтобы каждому ревьюеру не нужен был свой ключ модели.`,cliTitle:`Запуск на локальных изменениях git через CLI`,cliDescription:`Проверяйте рабочее дерево, коммит или ветку до push, сгруппированными и с описанием, как в PR.`,viewGuide:`Открыть руководство`},n={userscript:{title:`pulls.review, встроенный в github.com`,intro:`Пользовательский скрипт добавляет панель pulls.review прямо на страницы pull request'ов на github.com: сгруппированные файлы и описания, без переключения вкладок.`,manager:`Установите менеджер пользовательских скриптов: {tampermonkey} или {violentmonkey}.`,install:`Установите пользовательский скрипт pulls.review. Менеджер попросит подтверждение.`,open:`Откройте любой pull request на github.com и нажмите вкладку {tab} рядом с "Files changed".`,ai:`github.com блокирует запросы, нужные для ИИ-анализа, поэтому панель показывает анализы, опубликованные комментариями в PR. Чтобы запустить новый, откройте PR на pulls.review.`},bookmarklet:{title:`Переход между github.com и pulls.review`,intro:`Букмарклет это закладка, которая запускает небольшой скрипт. Он работает в любом браузере без расширений и открывает текущую страницу на другом сайте.`,bar:`Покажите панель закладок, например с помощью {shortcut}.`,drag:`Перетащите эту кнопку на панель закладок:`,use:`На странице pull request, коммита или сравнения на github.com нажмите на закладку, чтобы открыть её на pulls.review. Нажмите ещё раз, чтобы вернуться.`},actions:{title:`Автоанализ через GitHub Actions`,intro:`Пусть CI анализирует каждый pull request один раз, как только его открыли или обновили. Все, кто открывает PR, здесь или в панели на github.com, сразу видят одно и то же сгруппированное описание. Никому не нужен свой ключ модели, и pull request'ы из форков тоже его получают.`,secret:`Добавьте ключ модели как секрет репозитория, например {name}.`,workflow:`Добавьте этот workflow в репозиторий:`,result:`Откройте или обновите pull request, чтобы попробовать. Анализ придёт комментарием, а повторные запуски на неизменённом PR не обращаются к модели.`,options:`{provider} определяется по ключу. Задайте {provider}, {model} или {locale}, чтобы переопределить. Все параметры описаны в {readme}.`},cli:{title:`Проверка локальных изменений git через CLI`,intro:`Проверьте своё изменение раньше всех. CLI открывает в pulls.review вашу ветку, коммит или незакоммиченную работу, чтобы до push или открытия PR увидеть, как изменение выглядит в сгруппированном и описанном виде.`,branch:`В git-репозитории запустите это, чтобы сравнить текущую ветку с веткой по умолчанию:`,target:`Или выберите, что проверить:`,browser:`Он откроет {url} в браузере и покажет ваши локальные изменения. Подтвердите вкладку одноразовым кодом из терминала. Там же можно выбрать другие ветки или коммиты для сравнения.`}},r={title:`Загрузить diff`,description:`Вставьте или перетащите файл unified diff / .patch для ревью.`,pasteLabel:`Вставьте unified diff / .patch`,chooseFile:`Или выберите файл .diff/.patch`,loadButton:`Загрузить diff`,parsing:`Разбор diff…`,parseFailed:`Не удалось разобрать этот diff`,noDiff:`Diff не загружен`,noDiffHint:`Перейдите на главную и воспользуйтесь кнопкой загрузки, чтобы вставить или перетащить diff.`,goHome:`На главную`},i={description:`Описание`,descriptionExpand:`Показать описание полностью`,descriptionCollapse:`Свернуть описание`,loading:`Загрузка pull request…`,loadFailed:`Не удалось загрузить этот pull request`,somethingWrong:`Что-то пошло не так`,newCommits:`В этом pull request появились новые коммиты с момента кэширования.`,autoRefreshNextTime:`В следующий раз обновлять автоматически`,endOfDiff:`Вы дошли до конца diff.`,analyzeBy:`Анализ`,rules:`Правила`,ai:`ИИ`,by:`автор`,sharedBy:`Просмотр ИИ-анализа, которым поделился`,sharedAnalysis:`Просмотр общего анализа`,reviewedOf:`/ {total} проверено`,openInSite:`Открыть в pulls.review`},a={reviewChanges:`Ревью изменений`,updateUserscript:`Обновить userscript`},o={loading:`Загрузка pull request'ов…`,loadFailed:`Не удалось загрузить pull request'ы`,open:`{n} открытых`,search:`Фильтр pull request'ов`,empty:`Открытых pull request'ов нет`,noMatches:`Ни один pull request не соответствует запросу`,searchingAll:`Поиск по всем {n} открытым pull request'ам…`,loadingMore:`Загрузка…`,openedBy:`открыт {time}, автор {author}`,milestone:`Этап`,comments:`{n} комментарий | {n} комментария | {n} комментариев`,linkedIssues:`{n} связанный issue | {n} связанных issue | {n} связанных issue`,assignedTo:`Назначен на {login}`,groups:`{n} группа | {n} группы | {n} групп`,viewedHint:`Просмотрен в этом браузере`,aiAvailable:`Доступен ИИ-анализ`,sort:{label:`Сортировка`,"recently-updated":`Недавно обновлённые`,"least-recently-updated":`Давно не обновлялись`,newest:`Сначала новые`,oldest:`Сначала старые`,"most-commented":`Больше комментариев`,"least-commented":`Меньше комментариев`},review:{approved:`Одобрен`,changes_requested:`Запрошены изменения`,review_required:`Требуется ревью`},checks:{success:`Все проверки пройдены`,failure:`Некоторые проверки не пройдены`,pending:`Некоторые проверки ещё не завершены`}},s={setupKeys:`Настроить API-ключи`,analyzing:`Анализ…`,failed:`Анализ не удался`,failedTitle:`ИИ-анализ не удался: {message}`,reanalyze:`Повторить анализ`,withAi:`Анализировать с ИИ`,statusTitle:`ИИ-анализ`,starting:`Запуск…`,thinking:`Думаю… (шаг {step})`,reading:`Чтение {n} файлов: {first} | Чтение {n} файла: {first} | Чтение {n} файлов: {first} | Чтение {n} файлов: {first}`,organizing:`Формирование групп…`,notConfigured:`ИИ-анализ не настроен: добавьте токен gateway или API-ключ провайдера в настройках`,chatFailed:`Запрос чата не удался`,agentSessionLost:`У агента больше нет этого разговора. Проанализируйте заново, чтобы продолжить чат.`},c={button:`Поделиться результатом`,updateButton:`Обновить опубликованный комментарий`,sharing:`Публикация…`,tooltip:`Опубликовать этот анализ комментарием к pull request, чтобы другие могли его загрузить`,needsToken:`Для публикации нужен токен GitHub с правом записи`,failed:`Не удалось поделиться: {message}`,titleUpdate:`Обновить опубликованный анализ`,titleShare:`Поделиться этим анализом на GitHub`,willUpdate:`Ваш существующий {comment} к этому pull request будет обновлён от имени {user} с помощью вашего токена GitHub.`,willPost:`Публичный комментарий будет добавлен к этому pull request от имени {user} с помощью вашего токена GitHub.`,commentLink:`комментарий`,contains:`Комментарий содержит:`,containsLink:`ссылку для открытия этого ревью на {site}`,containsJson:`группировку и краткие описания этого ИИ-анализа в виде JSON в свёрнутом блоке`,excludes:`Ваши сообщения чата, API-ключи и другие данные из настроек не будут включены.`,anyoneCanLoad:`Любой, кто просматривает pull request, может загрузить опубликованный анализ.`,englishRecommended:`Если вы работаете над публичным проектом, рекомендуем делиться результатом на английском, чтобы он был полезен сообществу.`,share:`Поделиться`,update:`Обновить`,shareAnyway:`Всё равно поделиться`,updateAnyway:`Всё равно обновить`,loadReplaces:`Загрузить опубликованный ИИ-анализ? Он заменит ваш:`,available:`Доступны опубликованные ИИ-анализы этого pull request:`,staleTitle:`Проанализирован до последних коммитов`,outdated:`(устарел)`,inLanguage:`Проанализирован на языке: {language}`,notShared:`{login} не делился анализом этого pull request.`},l={toggle:`Свернуть или развернуть группу`,filesReviewed:`Проверено файлов: {reviewed} / {total}`,subgroupsOf:`подгруппы:`,hideSubgroups:`Скрыть подгруппы`,showSubgroups:`Показать подгруппы`,navTabs:`Показать группы вкладками`,navSidebar:`Показать группы в боковой панели`,uncategorized:`Без категории`,uncategorizedSummary:`Файлы, не охваченные текущим анализом.`,resize:`Перетащите, чтобы изменить ширину; дважды щёлкните, чтобы сбросить`},u={critical:`Проверьте внимательно`},d={layoutTree:`Показать файлы деревом`,layoutList:`Показать файлы списком`,markReviewed:`Отметить как проверенный`,markFolderReviewed:`Отметить все файлы в {name} как проверенные`,changedSinceReviewed:`Этот файл уже был проверен, но изменился в последующих коммитах`,resolved:`{n} решено`,binary:`Бинарный файл`,binaryNotShown:`Бинарный файл не отображается.`,tooLarge:`Diff слишком большой для отображения.`,loadFailed:`Не удалось загрузить`,loadFull:`Загрузить полное содержимое файла`,expand:`Развернуть файл`,collapse:`Свернуть файл`,collapseMenu:`Развернуть или свернуть файлы`,expandAll:`Развернуть все файлы`,collapseAll:`Свернуть все файлы`,collapseReviewed:`Свернуть проверенные файлы`,noLongerInDiff:`Больше нет в этом diff`,removed:`удалён`},f={title:`Ход проверки`,markAll:`Отметить все как проверенные`,reset:`Сбросить состояние проверки`,invert:`Инвертировать состояние проверки`,status:{reviewed:`Проверен`,changed:`Изменён после проверки`,unreviewed:`Не проверен`}},p={added:`добавлен`,removed:`удалён`,modified:`изменён`,renamed:`переименован`,copied:`скопирован`},m={open:`открыт`,draft:`черновик`,closed:`закрыт`,merged:`влит`},h={ui:`UI`,api:`API`,core:`ядро`,data:`данные`,cli:`CLI`,security:`безопасность`,tests:`тесты`,docs:`документация`,examples:`примеры`,deps:`зависимости`,build:`сборка`,scripts:`скрипты`,config:`конфигурация`,i18n:`i18n`,assets:`ресурсы`,other:`прочее`},g={addReview:`Добавить ревью`,hideComments:`Скрыть комментарии ревью`,showComments:`Показать комментарии ревью`,reviews:`Ревью`,approved:`одобрил`,changesRequested:`запросил изменения`,commented:`прокомментировал`,dismissed:`ревью отклонено`,reviewChanges:`Ревью изменений`,includesPending:`Отправка включает {n} ожидающих комментариев. | Отправка включает {n} ожидающий комментарий. | Отправка включает {n} ожидающих комментария. | Отправка включает {n} ожидающих комментариев.`,summaryPlaceholder:`Оставьте резюме (необязательно при одобрении)`,comment:`Комментировать`,approve:`Одобрить`,requestChanges:`Запросить изменения`,discard:`Отменить ревью`,leaveComment:`Оставьте комментарий`,addSingle:`Добавить одиночный комментарий`,addToReview:`Добавить комментарий ревью`,startReview:`Начать ревью`,pending:`Ожидает`,editComment:`Редактировать комментарий`,deleteComment:`Удалить комментарий`,replyPlaceholder:`Ответить…`,resolve:`Решено`},_={title:`Спросить об этом PR`,collapse:`Свернуть`,reanalyzeToEnable:`Повторите анализ, чтобы включить чат`,thinking:`Думаю…`,placeholder:`Спросите об этом PR…`,updatedGrouping:`Группировка обновлена: {n} групп`,readFiles:`Прочитано {n} файлов | Прочитан {n} файл | Прочитано {n} файла | Прочитано {n} файлов`,updatingGrouping:`Обновление группировки…`,submittingGrouping:`Отправка группировки…`,requestFailed:`Запрос не удался`,stopped:`остановлено`},v={layout:`Вид diff`,wrapLines:`Переносить строки`,unified:`Единый`,split:`Раздельный`,syntaxTheme:{label:`Тема подсветки синтаксиса`,light:`Светлый режим`,dark:`Тёмный режим`},cached:`Кэшированные pull request`,autoRefresh:`Автоматически обновлять при обнаружении новых коммитов`,navigation:`Навигация`,smoothScroll:`Плавно прокручивать при переходе к группе или файлу`,autoFetchFullFile:`Интеллектуально исправлять ошибки подсветки синтаксиса`,autoFetchFullFileHint:`Обнаруживает синтаксические ошибки в частичном содержимом и загружает полную версию.`,language:`Язык`,token:{label:`GitHub Personal Access Token`,optional:`Необязателен для публичных репозиториев; нужен для приватных репозиториев и для отправки ревью.`,scopes:`Для ревью нужен scope {repo} (классический токен) или {fineGrained} (детализированный токен)`,storedLocally:`Хранится только в этом браузере.`,generate:`Создать на GitHub →`,fineGrained:`Детализированный токен (без классических scope)`,updated:`Обновлён`,expires:`Истекает`,neverExpires:`Бессрочный`,change:`Сменить токен`,checking:`Проверка токена…`,couldNotVerify:`Не удалось проверить этот токен.`},tabs:{appearance:`Внешний вид`,behavior:`Поведение`,github:`GitHub`,ai:`ИИ-анализ`,notSetUp:`Ещё не настроено`},llm:{title:`ИИ-анализ`,description:`Настройте провайдера моделей, чтобы включить сгенерированные ИИ описания. Хранится только в этом браузере и отправляется только выбранному провайдеру.`,provider:`Провайдер`,baseUrl:`Базовый URL`,baseUrlDescription:`Любой OpenAI-совместимый endpoint chat completions (сам OpenAI, локальный сервер и т. д.).`,apiKey:`API-ключ`,gatewayHint:`Токен {link}, дающий доступ ко всем поддерживаемым вендорам одним токеном.`,anthropicHint:`{link}, вызываемый напрямую из этого браузера (без gateway).`,anthropicLink:`API-ключ Anthropic`,openaiHint:`API-ключ для указанного выше endpoint.`,createKey:`Создать на {provider} →`,configured:`Настроен`,changeKey:`Сменить ключ`,model:`Модель`,modelListFailed:`Не удалось загрузить список моделей ({error}). Введите id модели вручную.`,embedUnavailable:`Функции ИИ недоступны во встроенном режиме`,embedReason:`Строгая CSP github.com блокирует запросы, необходимые функциям ИИ. {link}, чтобы использовать их.`,goToWebsite:`Перейдите на сайт`,agent:`Агент`,agentNeedsCli:"Локальные агенты работают в CLI pulls.review: запустите её в репозитории командой `npx pulls.review` и выберите агента там.",agentDetecting:`Поиск CLI агентов…`,agentNone:`На этом компьютере не найдено CLI агентов.`,agentHint:`Установленный на этом компьютере агент для кода со своей учётной записью: {claude}, {codex} или {opencode}. Он читает патч и репозиторий и ничего не записывает.`,agentPick:`Выберите агента…`},models:{placeholder:`id модели`,loading:`Загрузка моделей…`,search:`Поиск моделей…`,noMatch:`Подходящих моделей нет`,useCustom:`Использовать «{id}»`,free:`Бесплатно`,priceTitle:`Вход {input}/M · Выход {output}/M токенов`,agentDefault:`По умолчанию для агента`}},y={allFiles:`Все файлы`,code:{label:`Код`,summary:`Изменения исходного кода.`},other:{label:`Прочее`,summary:`Другие изменения, не подходящие под существующие категории.`},docs:{label:`Документация`,summary:`Обновления документации.`},tests:{label:`Тесты`,summary:`Тестовое покрытие изменения.`},config:{label:`Конфигурация`,summary:`Изменения конфигурации.`},deps:{label:`Зависимости`,summary:`Изменения версий зависимостей.`},generated:{label:`Сгенерированное`,summary:`Изменения сгенерированных файлов или артефактов сборки.`}},b={tokenRequired:`Для записи в этот pull request нужен токен GitHub.`,diffNotLoaded:`Diff ещё не загрузился.`,noViewer:`Не удалось определить пользователя GitHub для этого токена.`,tokenRejected:`GitHub отклонил этот токен (401). Проверьте, что он вставлен полностью и не отозван.`,tooLarge:`Анализ слишком велик, чтобы поделиться им в комментарии ({n} символов).`},x={loading:`Загрузка локальных изменений…`,loadFailed:`Не удалось загрузить эти изменения`,auth:{title:`Введите код из терминала`,hint:`pulls.review вывел 6-значный код в терминале, где он запущен.`,invalid:`Этот код не подошёл. Проверьте терминал и попробуйте ещё раз.`,submit:`Продолжить`},picker:{tagline:`Ревьюйте локальные ветки, диапазоны и незакоммиченные изменения как pull request: по группам, с кратким описанием, по одной области за раз.`,title:`Ревью локальных изменений`,base:`База`,head:`Head`,compare:`Сравнить`,shortcuts:`Быстрые ссылки`,worktree:`Незакоммиченные изменения`,recentCommits:`Последние коммиты`,branches:`Ветки`,against:`относительно {base}`,current:`Текущая ветка`,github:`Или pull request, сравнение или коммит на GitHub`}},S={common:e,landing:t,guide:n,load:r,pr:i,embed:a,pulls:o,analyze:s,share:c,group:l,note:u,file:d,reviewProgress:f,fileStatus:p,prState:m,category:h,review:g,chat:_,settings:v,rules:y,errors:b,local:x};export{s as analyze,h as category,_ as chat,e as common,S as default,a as embed,b as errors,d as file,p as fileStatus,l as group,n as guide,t as landing,r as load,x as local,u as note,i as pr,m as prState,o as pulls,g as review,f as reviewProgress,y as rules,v as settings,c as share};
|