pulls.review 0.3.1 → 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.
Files changed (93) hide show
  1. package/README.md +1 -1
  2. package/dist/client/assets/ActionButton-wEgApzce.js +1 -0
  3. package/dist/client/assets/ActionIconButton-wh9iuTi4.js +1 -0
  4. package/dist/client/assets/{ChatMessage-Ccffh_8Z.js → ChatMessage-wZOblr2O.js} +23 -23
  5. package/dist/client/assets/ChatWidget-Dbic6F6V.js +1 -0
  6. package/dist/client/assets/DisplayFileIcon-DffhOXN6.js +151 -0
  7. package/dist/client/assets/GithubAvatar-eLlc5vap.js +1 -0
  8. package/dist/client/assets/LandingHero-Bb_CGwOP.js +1 -0
  9. package/dist/client/assets/LocalAgentSettings-CWvSCuNr.js +1 -0
  10. package/dist/client/assets/ModelPicker-CLoBWotf.js +3 -0
  11. package/dist/client/assets/SelectViewport-Dt28PIGK.js +1 -0
  12. package/dist/client/assets/_repo_-BIF9MuRW.js +22 -0
  13. package/dist/client/assets/analyze-B3YV6_zK.js +1 -0
  14. package/dist/client/assets/{core-messages-ClW97ZVa.js → core-messages-E0LWb5xA.js} +1 -1
  15. package/dist/client/assets/de-BfUc2exP.js +1 -0
  16. package/dist/client/assets/{diagnostics-wATZy2jc.js → diagnostics-DundJi2s.js} +1 -1
  17. package/dist/client/assets/diff-BwixkBTz.js +1 -0
  18. package/dist/client/assets/{diff-Cx43r-a6.js → diff-Coo81SbJ.js} +3 -3
  19. package/dist/client/assets/diffs-store-BPvgHGVY.js +1431 -0
  20. package/dist/client/assets/en-OkC_9BLh.js +1 -0
  21. package/dist/client/assets/es-DuVRv3jP.js +1 -0
  22. package/dist/client/assets/fr-BI5_M_ty.js +1 -0
  23. package/dist/client/assets/glimmer-js-BheR6Tf0.js +1 -0
  24. package/dist/client/assets/glimmer-ts-B3Q3-uij.js +1 -0
  25. package/dist/client/assets/handlebars-qjPKy-PP.js +1 -0
  26. package/dist/client/assets/i18n-DtZTpAlH.js +2 -0
  27. package/dist/client/assets/id-BU9INgNZ.js +1 -0
  28. package/dist/client/assets/{index-KDAJXf4E.js → index-Buksdj5x.js} +2 -2
  29. package/dist/client/assets/{index-De-UtOit.css → index-m8kW8Q0V.css} +1 -1
  30. package/dist/client/assets/{install-D-S32JY7.js → install-BrSGg9K8.js} +3 -3
  31. package/dist/client/assets/it-C2TUiK_A.js +1 -0
  32. package/dist/client/assets/ja-BQDWzjgo.js +1 -0
  33. package/dist/client/assets/ko-Ca7kDPia.js +1 -0
  34. package/dist/client/assets/{llm-Le5CPsNn.js → llm-5e9k-gOP.js} +1 -1
  35. package/dist/client/assets/llm-store-1j45N-6d.js +1 -0
  36. package/dist/client/assets/local-agents-0SHBuj0A.js +1 -0
  37. package/dist/client/assets/{pages-ByEfDjFa.js → pages-hDJHVoGR.js} +1 -1
  38. package/dist/client/assets/pages-local-0BoMyVi4.js +1 -0
  39. package/dist/client/assets/pages-web-QiNoFNlt.js +21 -0
  40. package/dist/client/assets/{portalTarget-DQg8GgWm.js → portalTarget-I9JDQCD2.js} +1 -1
  41. package/dist/client/assets/pt-BR-DcjGEP2y.js +1 -0
  42. package/dist/client/assets/{rpc-backends-DYtuJyeF.js → rpc-backends-arDnFRtp.js} +1 -1
  43. package/dist/client/assets/ru-DhCHBcLb.js +1 -0
  44. package/dist/client/assets/{ruby-CfFGiaYl.js → ruby-CaMjWH7T.js} +1 -1
  45. package/dist/client/assets/runtime-dom.esm-bundler-DL194Z-s.js +2 -0
  46. package/dist/client/assets/upload-Bi-0MPhd.js +1 -0
  47. package/dist/client/assets/useDocumentTitle-DSsMzDvH.js +92 -0
  48. package/dist/client/assets/useNonce-DujRSGP5.js +1 -0
  49. package/dist/client/assets/useTypeahead-CV0JPPYe.js +1 -0
  50. package/dist/client/assets/utils-bzkWQhBP.js +1 -0
  51. package/dist/client/assets/vue-i18n-B4RRzKT-.js +5 -0
  52. package/dist/client/assets/zh-CN-DKqrk-nJ.js +1 -0
  53. package/dist/client/assets/zh-TW-CXhwUL4C.js +1 -0
  54. package/dist/client/index.html +7 -7
  55. package/dist/{devframe-DH2vpasJ.mjs → devframe-Z3sgjlMJ.mjs} +153 -6
  56. package/dist/devframe.mjs +1 -1
  57. package/dist/index.mjs +1 -1
  58. package/package.json +2 -2
  59. package/dist/client/assets/ActionButton-V4dY2wPS.js +0 -1
  60. package/dist/client/assets/ActionIconButton-4b5xelMn.js +0 -1
  61. package/dist/client/assets/ChatWidget-BFjNWi3R.js +0 -1
  62. package/dist/client/assets/DisplayFileIcon-DWj5Zxib.js +0 -151
  63. package/dist/client/assets/GithubAvatar-DGJrpCsX.js +0 -1
  64. package/dist/client/assets/LandingHero-DWdx6_8g.js +0 -1
  65. package/dist/client/assets/LocalAgentSettings-COjAszEL.js +0 -1
  66. package/dist/client/assets/ModelPicker-CDTiUMZ3.js +0 -3
  67. package/dist/client/assets/SelectViewport-DF4P4Akh.js +0 -1
  68. package/dist/client/assets/_repo_-D3lApLQL.js +0 -22
  69. package/dist/client/assets/analyze-BgWIIbl3.js +0 -1
  70. package/dist/client/assets/de-BoIOg_UW.js +0 -1
  71. package/dist/client/assets/diff-CNRGXNmw.js +0 -1
  72. package/dist/client/assets/diffs-store-D3BzIMVi.js +0 -1431
  73. package/dist/client/assets/en-CbWYrCM5.js +0 -1
  74. package/dist/client/assets/es-CqEudTln.js +0 -1
  75. package/dist/client/assets/fr-qiQQ-4AO.js +0 -1
  76. package/dist/client/assets/i18n-Cx8anq4V.js +0 -2
  77. package/dist/client/assets/id-BkDzu8gq.js +0 -1
  78. package/dist/client/assets/it-tZZZbUKN.js +0 -1
  79. package/dist/client/assets/ja-kGPK4Fmt.js +0 -1
  80. package/dist/client/assets/ko-CULiae40.js +0 -1
  81. package/dist/client/assets/llm-store-CzMnTJNa.js +0 -1
  82. package/dist/client/assets/local-agents-BQLn-Ppw.js +0 -1
  83. package/dist/client/assets/pages-local-CVPpEWZ_.js +0 -1
  84. package/dist/client/assets/pages-web-BLxMupU5.js +0 -21
  85. package/dist/client/assets/pt-BR-BcwoZLSs.js +0 -1
  86. package/dist/client/assets/ru-DOordgLF.js +0 -1
  87. package/dist/client/assets/runtime-dom.esm-bundler-Du_ZCcVN.js +0 -2
  88. package/dist/client/assets/upload-DRO7bkBV.js +0 -1
  89. package/dist/client/assets/useDocumentTitle-BQJCa6Lm.js +0 -92
  90. package/dist/client/assets/useNonce-CwUrgryd.js +0 -1
  91. package/dist/client/assets/vue-i18n-CGHHpbTP.js +0 -5
  92. package/dist/client/assets/zh-CN-CmTqGY9s.js +0 -1
  93. package/dist/client/assets/zh-TW-DKGtbJQy.js +0 -1
package/README.md CHANGED
@@ -14,7 +14,7 @@ npx pulls.review owner/repo#1 # a GitHub pull request (or a github.com PR, comp
14
14
 
15
15
  Run it inside a git repository. It serves on `localhost` through [devframe](https://github.com/devframes/devframe) and opens the page for the argument; any other branch, range or commit can be picked from `/`. The tab is trusted with a one-time code printed in the terminal. Reviewed marks and AI results are cached in `.git/pulls-review`.
16
16
 
17
- AI analysis can run through a coding agent already installed and signed in on the machine - [Claude Code](https://docs.anthropic.com/en/docs/claude-code), [OpenCode](https://opencode.ai), or [Pi](https://github.com/earendil-works/pi) - instead of an API key: pick **Local agent** as the provider in Settings. The agent reads the patch and, for a local diff, the repository, with read-only tools; follow-up chat continues in its session.
17
+ AI analysis can run through a coding agent already installed and signed in on the machine - [Claude Code](https://docs.anthropic.com/en/docs/claude-code), [OpenCode](https://opencode.ai), [Pi](https://github.com/earendil-works/pi), or [Codex](https://developers.openai.com/codex/cli) - instead of an API key: pick **Local agent** as the provider in Settings. The agent reads the patch and, for a local diff, the repository, with read-only tools; follow-up chat continues in its session.
18
18
 
19
19
  GitHub pull requests open on the same `/gh/{owner}/{repo}/{number}` pages as the site, with comments and reviews, using the token from `GITHUB_TOKEN` (or `PULLS_REVIEW_GITHUB_TOKEN`), else from `gh auth token`.
20
20
 
@@ -0,0 +1 @@
1
+ import{Ht as e,J as t,K as n,Or as r,Qt as i,Tr as a,W as o,Yt as s,q as c,rt as l,xn as u}from"./vue-i18n-B4RRzKT-.js";var d=l({__name:`FeedbackSpinner`,props:{size:{default:`1em`}},setup(n){let i=n,a=o(()=>typeof i.size==`number`?`${i.size}px`:i.size);return(n,i)=>(e(),t(`span`,{class:`border-2 border-current border-t-transparent rounded-full inline-block animate-spin`,style:r({width:a.value,height:a.value}),role:`status`,"aria-label":`Loading`},null,4))}}),f=l({__name:`ActionButton`,props:{as:{},to:{},href:{},icon:{},variant:{default:`action`},size:{default:`md`},loading:{type:Boolean},disabled:{type:Boolean}},setup(r){let l=r,f=o(()=>l.as?l.as:l.href!=null||l.to!=null?`a`:`button`),p=o(()=>f.value===`a`),m=o(()=>f.value===`button`),h=o(()=>l.size===`sm`),g=o(()=>l.variant===`primary`?h.value?`btn-primary text-sm`:`btn-primary`:l.variant===`text`?h.value?`btn-text text-sm`:`btn-text`:h.value?`btn-action-sm`:`btn-action`),_=o(()=>l.disabled||l.loading);return(o,l)=>(e(),n(i(f.value),{class:a([g.value,{"pointer-events-none op-mute":_.value&&!m.value}]),href:p.value?r.href??r.to:void 0,to:r.as&&r.to!=null?r.to:void 0,disabled:m.value?_.value:void 0,"aria-disabled":_.value||void 0,"aria-busy":r.loading||void 0},{default:u(()=>[r.loading?(e(),n(d,{key:0,size:`1em`})):r.icon?(e(),t(`span`,{key:1,class:a(r.icon),"aria-hidden":`true`},null,2)):c(``,!0),s(o.$slots,`default`)]),_:3},8,[`class`,`href`,`to`,`disabled`,`aria-disabled`,`aria-busy`]))}});export{d as n,f as t};
@@ -0,0 +1 @@
1
+ import{At as e,Cn as t,Ht as n,It as r,J as i,K as a,Kn as o,Mt as s,Pt as c,Qt as l,St as u,Tr as d,W as f,Wn as p,Wt as m,Yt as h,dt as g,gn as _,kt as v,mt as y,nr as b,q as x,rt as S,xn as C}from"./vue-i18n-B4RRzKT-.js";import{i as w}from"./runtime-dom.esm-bundler-DL194Z-s.js";import{a as T,c as E,f as ee,i as te,l as D,n as O,t as k}from"./floating-ui.dom-CfpSQvPs.js";var A=[`auto`,`top`,`bottom`,`left`,`right`].reduce((e,t)=>e.concat([t,`${t}-start`,`${t}-end`]),[]),j={targetNodes:{type:Function,required:!0},referenceNode:{type:Function,default:null},popperNode:{type:Function,required:!0},shown:{type:Boolean,default:!1},ariaId:{default:null},delay:{type:[String,Number,Object],default:0},triggers:{type:Array,default:()=>[]},showTriggers:{type:[Array,Function],default:void 0},hideTriggers:{type:[Array,Function],default:void 0},popperShowTriggers:{type:[Array,Function],default:void 0},popperHideTriggers:{type:[Array,Function],default:void 0},autoHide:{type:[Boolean,Function],default:!1},handleResize:{type:Boolean,default:!1},eagerMount:{type:Boolean,default:!1},popperClass:{type:[String,Array,Object],default:void 0},noAutoFocus:{type:Boolean,default:!1},disabled:{type:Boolean,default:void 0},placement:{type:String,validator:e=>A.includes(e),default:void 0},distance:{type:[Number,String],default:void 0},skidding:{type:[Number,String],default:void 0},popperTriggers:{type:Array,default:void 0},container:{type:[String,Object,Boolean],default:void 0},boundary:{type:[String,Object],default:void 0},strategy:{type:String,validator:e=>[`absolute`,`fixed`].includes(e),default:void 0},instantMove:{type:Boolean,default:void 0},preventOverflow:{type:Boolean,default:void 0},overflowPadding:{type:[Number,String],default:void 0},arrowPadding:{type:[Number,String],default:void 0},noArrow:{type:Boolean,default:void 0},flip:{type:Boolean,default:void 0},shift:{type:Boolean,default:void 0},shiftCrossAxis:{type:Boolean,default:void 0},disposeTimeout:{type:Number,default:void 0}},M={show:()=>!0,hide:()=>!0,"update:shown":e=>!0,"apply-show":()=>!0,"apply-hide":()=>!0,"close-directive":()=>!0,"auto-hide":()=>!0,resize:()=>!0},N=Object.freeze({disabled:!1,placement:`bottom`,distance:5,skidding:0,container:`body`,boundary:void 0,instantMove:!1,disposeTimeout:150,popperTriggers:[],strategy:`absolute`,preventOverflow:!0,flip:!0,shift:!0,shiftCrossAxis:!1,overflowPadding:0,arrowPadding:0,noArrow:!1,autoHideOnMousedown:!1});function ne(){return g()?.appContext.provides.$_vueAfloatGlobalOptions??{}}function P(e){let t={};if(!e)return t;for(let n in e)e[n]!==void 0&&(t[n]=e[n]);return t}function re(e,t=ne()){return Object.assign({},N,P(t),P(e))}var ie={hover:`mouseenter`,focus:`focus`,click:`click`,touch:`touchstart`,pointer:`pointerdown`},ae={hover:`mouseleave`,focus:`blur`,click:`click`,touch:`touchend`,pointer:`pointerup`};function oe(){return new Promise(e=>requestAnimationFrame(()=>{requestAnimationFrame(e)}))}var F=0,I=0,L=0,R=0,z=0;function se(e){F=L,I=R,L=e.clientX,R=e.clientY}function ce(){z++,z===1&&window.addEventListener(`mousemove`,se,{passive:!0})}function le(){z--,z===0&&window.removeEventListener(`mousemove`,se)}function ue(e,t){let n=e.getBoundingClientRect();if(L>=n.left&&L<=n.right&&R>=n.top&&R<=n.bottom){let e=t.getBoundingClientRect(),n=L-F,r=R-I,i=e.left+e.width/2-F+(e.top+e.height/2)-I+e.width+e.height,a=F+n*i,o=I+r*i;return B(F,I,a,o,e.left,e.top,e.left,e.bottom)||B(F,I,a,o,e.left,e.top,e.right,e.top)||B(F,I,a,o,e.right,e.top,e.right,e.bottom)||B(F,I,a,o,e.left,e.bottom,e.right,e.bottom)}return!1}function B(e,t,n,r,i,a,o,s){let c=((o-i)*(t-a)-(s-a)*(e-i))/((s-a)*(n-e)-(o-i)*(r-t)),l=((n-e)*(t-a)-(r-t)*(e-i))/((s-a)*(n-e)-(o-i)*(r-t));return c>=0&&c<=1&&l>=0&&l<=1}var de=typeof window<`u`&&typeof navigator<`u`&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,V=null,H=0;function fe(){return H++,V||=W(),V}function pe(){H--,H===0&&V&&(V.dispose(),V=null)}function U(){if(V)for(let e of V.shownPoppers)e.computePosition()}function W(){let e=new Set,t=new Map;function n(){for(let t of e)if(t.options.value.autoHideOnMousedown)return!0;return!1}function r(t,r){if(n())a(t,r);else{let n=t.composedPath();for(let t of e)try{t.mouseDownContains=n.includes(t.popperNode())}catch{}}}function i(e,t){n()||a(e,t)}function a(t,n){let r={},i=t.composedPath(),a=[...e].reverse();for(let e of a)try{let o=Array.from(e.shownChildren).some(e=>{let t=a.find(t=>t.randomId===e);return t&&i.includes(t.popperNode())}),s=e.containsGlobalTarget=e.mouseDownContains||i.includes(e.popperNode())||o;e.pendingHide=!1,requestAnimationFrame(()=>{if(e.pendingHide=!1,!r[e.randomId]&&G(e,s,t)){if(e.handleGlobalClose(t,n),!t.closeAllPopover&&t.closePopover&&s){let t=e.parentPopper;for(;t;)r[t.randomId]=!0,t=t.parentPopper;return}let i=e.parentPopper;for(;i&&G(i,i.containsGlobalTarget,t);)i.handleGlobalClose(t,n),i=i.parentPopper}})}catch{}}let o=e=>r(e,!1),s=e=>i(e,!1),c=e=>r(e,!0),l=e=>i(e,!0);if(de){let e={passive:!0,capture:!0};document.addEventListener(`touchstart`,c,e),document.addEventListener(`touchend`,l,e)}else window.addEventListener(`mousedown`,o,!0),window.addEventListener(`click`,s,!0);window.addEventListener(`resize`,U);function u(e){let t=e.popperNode().getRootNode();return t instanceof ShadowRoot?t.host:document.body}function d(e){e&&![...t.values()].includes(e)&&e.classList.remove(`vue-afloat--some-open`)}let f={shownPoppers:e,hidingPopper:null,markShown(n){e.add(n);let r=t.get(n),i=u(n);t.set(n,i),d(r),i.classList.add(`vue-afloat--some-open`)},markHidden(n){e.delete(n);let r=t.get(n);t.delete(n),d(r),f.hidingPopper===n&&(f.hidingPopper=null)},dispose(){de?(document.removeEventListener(`touchstart`,c,{capture:!0}),document.removeEventListener(`touchend`,l,{capture:!0})):(window.removeEventListener(`mousedown`,o,!0),window.removeEventListener(`click`,s,!0)),window.removeEventListener(`resize`,U)}};return f}function G(e,t,n){return n.closeAllPopover||n.closePopover&&t||K(e,n)&&!t}function K(e,t){if(typeof e.autoHide==`function`){let n=e.autoHide(t);return e.lastAutoHide=n,n}return e.autoHide}function me(e,t){let n=[],r={strategy:e.strategy,middleware:n},i=e.boundary;(e.distance||e.skidding)&&n.push(E({mainAxis:e.distance,crossAxis:e.skidding}));let a=e.placement.startsWith(`auto`);return a?n.push(O({alignment:e.placement.split(`-`)[1]??``})):r.placement=e.placement,e.preventOverflow&&(e.shift&&n.push(D({padding:e.overflowPadding,boundary:i,crossAxis:e.shiftCrossAxis})),!a&&e.flip&&n.push(T({padding:e.overflowPadding,boundary:i}))),n.push(k({element:t,padding:e.arrowPadding})),r}var he=class{entries=[];add(e,t,n){this.entries.push({targetNodes:e,eventType:t,handler:n});for(let r of e)r.addEventListener(t,n,{passive:!0})}addTriggers(e,t,n,r,i){let a=n;r!=null&&(a=typeof r==`function`?r(a):r);for(let n of a){let r=t[n];r&&this.add(e,r,i)}}remove(e){this.entries=this.entries.filter(t=>{if(!e||e===t.eventType){for(let e of t.targetNodes)e.removeEventListener(t.eventType,t.handler);return!1}return!0})}},ge=`__floating-vue__popper`;function _e(t,n){let i=g(),a=ne(),l=f(()=>re(t,a)),d=o(!1),h=o(!1),v=o(!1),y=p({showFrom:!1,showTo:!1,hideFrom:!1,hideTo:!0}),b=p({x:0,y:0,placement:``,strategy:l.value.strategy,arrow:{x:0,y:0,centerOffset:0}}),x=o(!0),S=`popper_${[Math.random(),Date.now()].map(e=>e.toString(36).substring(2,10)).join(`_`)}`,C=new Set,w=!0,T=!1,E=!1,D=!1,O,k,A,j=[],M,N,P=new he,F=null,I=!1,L=u(ge,null)?.parentPopper??null,R={randomId:S,options:l,get autoHide(){return t.autoHide},parentPopper:L,lockedChild:null,lockedChildTimer:null,shownChildren:C,pendingHide:!1,mouseDownContains:!1,containsGlobalTarget:!1,get lastAutoHide(){return x.value},set lastAutoHide(e){x.value=e},popperNode:()=>t.popperNode(),hide:H,applyHide:Y,computePosition:()=>{K()},handleGlobalClose:we};m(ge,{parentPopper:R});let z=f(()=>t.ariaId??S),se=f(()=>t.eagerMount||h.value),B=f(()=>l.value.popperTriggers.includes(`hover`)||Array.isArray(t.popperShowTriggers)&&t.popperShowTriggers.includes(`hover`)),de=f(()=>({popperId:z.value,isShown:d.value,shouldMountContent:se.value,skipTransition:v.value,noArrow:l.value.noArrow,autoHide:typeof t.autoHide==`function`?x.value:t.autoHide,show:V,hide:H,handleResize:t.handleResize,onResize:G,classes:{...y,popperClass:t.popperClass},result:b}));function V({skipDelay:e=!1,force:t=!1}={}){L?.lockedChild&&L.lockedChild!==R||(R.pendingHide=!1,(t||!l.value.disabled)&&(L?.lockedChild===R&&(L.lockedChild=null),_e(e),n(`show`),E=!0,requestAnimationFrame(()=>{E=!1})),n(`update:shown`,!0))}function H({skipDelay:e=!1}={}){if(!D){if(C.size>0){R.pendingHide=!0;return}if(B.value&&ue(A,M)){L&&(L.lockedChild=R,L.lockedChildTimer&&clearTimeout(L.lockedChildTimer),L.lockedChildTimer=setTimeout(()=>{L.lockedChild===R&&(L.lockedChild.hide({skipDelay:e}),L.lockedChild=null)},1e3));return}L?.lockedChild===R&&(L.lockedChild=null),R.pendingHide=!1,ve(e),n(`hide`),n(`update:shown`,!1)}}function U(){w&&(w=!1,h.value=!1,T=!1,A=t.referenceNode?.()??i.proxy.$el,j=t.targetNodes().filter(e=>e.nodeType===e.ELEMENT_NODE),M=t.popperNode(),N=M.querySelector(`.vue-afloat__arrow-container`),Q(`title`,`data-original-title`),Z(),F=fe(),X(),t.triggers.length&&Se(),t.shown&&V())}function W(){w||(w=!0,P.remove(),H({skipDelay:!0}),Z(),h.value=!1,d.value=!1,$(!1),Q(`data-original-title`,`title`),X(),F&&=(pe(),null))}async function G(){d.value&&(await K(),n(`resize`))}async function K(){if(w)return;let e=me(l.value,N),t=await te(A,M,e);Object.assign(b,{x:t.x,y:t.y,placement:t.placement,strategy:t.strategy,arrow:t.middlewareData.arrow})}function _e(e=!1){$(!0),D=!1,clearTimeout(O);let t=F?.hidingPopper;if(t&&l.value.instantMove&&t.options.value.instantMove&&t!==L){t.applyHide(!0),J(!0);return}e?J():O=setTimeout(J,q(`show`))}function ve(e=!1){if(C.size>0){R.pendingHide=!0;return}$(!1),D=!0,clearTimeout(O),d.value&&F&&(F.hidingPopper=R),e?Y():O=setTimeout(Y,q(`hide`))}function q(e){let n=t.delay;return parseInt(n&&n[e]||n||0)}async function J(e=!1){clearTimeout(k),clearTimeout(O),v.value=e,!d.value&&(xe(),await oe(),await K(),await ye(),P.add([...ee(A),...ee(M)],`scroll`,()=>{K()}))}async function ye(){D||(d.value=!0,Te({"aria-describedby":z.value,"data-popper-shown":``}),F?.markShown(R),n(`apply-show`),y.showFrom=!0,y.showTo=!1,y.hideFrom=!1,y.hideTo=!1,await oe(),y.showFrom=!1,y.showTo=!0,t.noAutoFocus||M.focus())}async function Y(e=!1){if(C.size>0){R.pendingHide=!0,D=!1;return}if(clearTimeout(O),!d.value)return;v.value=e,F?.markHidden(R),d.value=!1,Te({"aria-describedby":void 0,"data-popper-shown":void 0}),clearTimeout(k);let t=l.value.disposeTimeout;t!==null&&(k=setTimeout(()=>{M&&(Z(),h.value=!1)},t)),P.remove(`scroll`),n(`apply-hide`),y.showFrom=!1,y.showTo=!1,y.hideFrom=!0,y.hideTo=!1,await oe(),y.hideFrom=!1,y.hideTo=!0}function be(){t.shown?V():H()}function xe(){if(w)return;let e=l.value.container,t;if(typeof e==`string`){let n=A.getRootNode();t=n instanceof ShadowRoot?e===`body`?n:n.querySelector(e):A.ownerDocument.querySelector(e)}else t=e===!1?j[0].parentNode:e;if(!t)throw Error(`No container for popover: ${e}`);t.appendChild(M),h.value=!0}function Se(){let e=e=>{(!d.value||D)&&(e.usedByTooltip=!0,!T&&V({event:e}))};P.addTriggers(j,ie,t.triggers,t.showTriggers,e),P.addTriggers([M],ie,l.value.popperTriggers,t.popperShowTriggers,e);let n=e=>{e.usedByTooltip||H({event:e})};P.addTriggers(j,ae,t.triggers,t.hideTriggers,n),P.addTriggers([M],ae,l.value.popperTriggers,t.popperHideTriggers,n)}function Ce(){w||(P.remove(),Se(),X())}function X(){let e=!w&&B.value;e!==I&&(I=e,e?ce():le())}function we(e,t){E||(H({event:e}),e.closePopover?n(`close-directive`):n(`auto-hide`),t&&(T=!0,setTimeout(()=>{T=!1},300)))}function Z(){M.parentNode&&M.parentNode.removeChild(M)}function Q(e,t){for(let n of j){let r=n.getAttribute(e);r&&(n.removeAttribute(e),n.setAttribute(t,r))}}function Te(e){for(let t of j)for(let n in e){let r=e[n];r==null?t.removeAttribute(n):t.setAttribute(n,r)}}function $(e){let t=L;for(;t;)e?t.shownChildren.add(S):(t.shownChildren.delete(S),t.pendingHide&&t.hide()),t=t.parentPopper}return _(()=>t.shown,be),_(()=>l.value.disabled,e=>{e?W():U()}),_(()=>l.value.container,async()=>{d.value&&(xe(),F?.markShown(R),await K())}),_(()=>t.triggers,Ce,{deep:!0}),_(l,()=>K()),r(()=>{U(),Z()}),e(be),c(()=>{H()}),s(W),{show:V,hide:H,dispose:W,onResize:G,slotData:de}}var ve=S({name:`VPopperRoot`,props:j,emits:M,setup(e,{emit:t,slots:n,expose:r}){let{show:i,hide:a,dispose:o,onResize:s,slotData:c}=_e(e,t);return r({show:i,hide:a,dispose:o,onResize:s}),()=>y(`div`,{ref:`reference`,class:[`vue-afloat`,{"vue-afloat--shown":c.value.isShown}]},n.default?.(c.value))}}),q=S({name:`VPopperContent`,props:{popperId:String,shown:Boolean,mounted:Boolean,skipTransition:Boolean,noArrow:Boolean,autoHide:Boolean,handleResize:Boolean,classes:{type:Object,required:!0},result:{type:Object,required:!0}},emits:[`hide`,`resize`],setup(e,{emit:t,slots:n}){let i=o(),a;r(()=>{e.handleResize&&(a=new ResizeObserver(()=>t(`resize`)),a.observe(i.value))}),s(()=>{a?.disconnect()});function c(e){return e!=null&&!Number.isNaN(e)?`${e}px`:null}return()=>{let{autoHide:r,classes:a,result:o,shown:s}=e,l=o.placement.split(`-`)[0];return y(`div`,{id:e.popperId,ref:`popover`,"data-allow-mismatch":``,class:[`vue-afloat`,`vue-afloat--${l}`,a.popperClass,{"vue-afloat--shown":s,"vue-afloat--hidden":!s,"vue-afloat--show-from":a.showFrom,"vue-afloat--show-to":a.showTo,"vue-afloat--hide-from":a.hideFrom,"vue-afloat--hide-to":a.hideTo,"vue-afloat--skip-transition":e.skipTransition,"vue-afloat--no-arrow":e.noArrow}],style:{position:o.strategy,transform:`translate3d(${Math.round(o.x)}px,${Math.round(o.y)}px,0)`},"aria-hidden":s||r?`false`:`true`,tabindex:r?0:void 0,"data-popper-placement":o.placement,onKeyup:e=>{e.key===`Escape`&&r&&t(`hide`)}},[y(`div`,{class:`vue-afloat__backdrop`,onClick:()=>r&&t(`hide`)}),y(`div`,{class:`vue-afloat__wrapper`},[y(`div`,{ref:i,class:`vue-afloat__inner`},e.mounted?[y(`div`,n.default?.())]:void 0),y(`div`,{ref:`arrow`,class:`vue-afloat__arrow-container`,style:{left:c(o.arrow.x),top:c(o.arrow.y)}},[y(`div`,{class:`vue-afloat__arrow-outer`}),y(`div`,{class:`vue-afloat__arrow-inner`})])])])}}}),J=new Set([`targetNodes`,`popperNode`]);function ye(e){let t={};for(let n in j){if(J.has(n))continue;let r=j[n];t[n]=n in e?{...r,default:e[n]}:r}return t}function Y(e,t,n={}){return S({name:e,props:ye(n),emits:M,setup(e,{emit:n,slots:r,expose:i}){let a,o;function s(){return Array.from(a.$el.children).filter(e=>e!==o.$el)}return i({show:(...e)=>a.show(...e),hide:(...e)=>a.hide(...e),dispose:()=>a.dispose(),onResize:()=>a.onResize()}),()=>y(ve,{ref:e=>{a=e},...e,targetNodes:s,popperNode:()=>o.$el,class:t,onShow:()=>n(`show`),onHide:()=>n(`hide`),"onUpdate:shown":e=>n(`update:shown`,e),onApplyShow:()=>n(`apply-show`),onApplyHide:()=>n(`apply-hide`),onCloseDirective:()=>n(`close-directive`),onAutoHide:()=>n(`auto-hide`),onResize:()=>n(`resize`)},{default:({popperId:e,isShown:n,shouldMountContent:i,skipTransition:a,noArrow:s,autoHide:c,show:l,hide:u,handleResize:d,onResize:f,classes:p,result:m})=>[r.default?.({shown:n,show:l,hide:u}),y(q,{ref:e=>{o=e},class:t,popperId:e,shown:n,mounted:i,skipTransition:a,noArrow:s,autoHide:c,handleResize:d,classes:p,result:m,onHide:u,onResize:f},{default:()=>r.popper?.({shown:n,hide:u})})]})}})}Y(`VDropdown`,`vue-afloat-dropdown`,{placement:`bottom`,triggers:()=>[`click`],delay:0,handleResize:!0,autoHide:!0}),Y(`VMenu`,`vue-afloat-menu`,{placement:`bottom`,triggers:()=>[`hover`,`focus`],popperTriggers:()=>[`hover`],delay:()=>({show:0,hide:400}),handleResize:!0,autoHide:!0,noArrow:!0}),Y(`VTooltip`,`vue-afloat-tooltip`,{placement:`top`,triggers:()=>[`hover`,`focus`,`touch`],hideTriggers:()=>e=>[...e,`click`],delay:()=>({show:200,hide:0})});function be(){return S({name:`VPopper`,props:j,emits:M,setup(e,{emit:t,slots:n,expose:r}){let{show:i,hide:a,dispose:o,onResize:s,slotData:c}=_e(e,t);return r({show:i,hide:a,dispose:o,onResize:s}),()=>n.default?.(c.value)}})}var xe=be(),Se=S({name:`VTooltipDirective`,inheritAttrs:!1,props:{html:{type:Boolean,default:!1},content:{type:[String,Number,Function],default:null},loadingContent:{type:String,default:`...`},targetNodes:{type:Function,required:!0}},setup(e,{attrs:t,expose:n}){let r=o(null),i=f(()=>typeof e.content==`function`),a=f(()=>i.value&&r.value==null),s=f(()=>i.value?a.value?e.loadingContent:r.value:e.content),c,l,u=!1,d=!1,p=0;function m(t=!1){if(typeof e.content==`function`&&u&&(t||!d&&r.value==null)){r.value=null,d=!0;let t=++p,n=e.content(e);n.then?n.then(e=>h(t,e)):h(t,n)}}function h(e,t){e===p&&(d=!1,r.value=t)}_(()=>e.content,()=>m(!0),{immediate:!0}),_(s,async()=>{await v(),c.onResize()});function g(){u=!0,m()}function b(){u=!1}return n({show:(...e)=>c.show(...e),hide:(...e)=>c.hide(...e),dispose:()=>c.dispose(),onResize:()=>c.onResize()}),()=>y(xe,{ref:e=>{c=e},placement:`top`,triggers:[`hover`,`focus`,`touch`],hideTriggers:e=>[...e,`click`],delay:{show:200,hide:0},...t,targetNodes:e.targetNodes,popperNode:()=>l.$el,onApplyShow:g,onApplyHide:b},{default:({popperId:t,isShown:n,shouldMountContent:r,skipTransition:i,noArrow:o,autoHide:c,hide:u,handleResize:d,onResize:f,classes:p,result:m})=>y(q,{ref:e=>{l=e},class:[`vue-afloat-tooltip`,{"vue-afloat--tooltip-loading":a.value}],popperId:t,shown:n,mounted:r,skipTransition:i,noArrow:o,autoHide:c,handleResize:d,classes:p,result:m,onHide:u,onResize:f},{default:()=>e.html?y(`div`,{innerHTML:s.value}):y(`div`,{textContent:s.value})})})}}),Ce=`vue-afloat--has-tooltip`;function X(e,t){let n=e.placement;if(!n&&t)for(let e of A)t[e]&&(n=e);return n||=`top`,n}function we(e,t,n){let r,i=typeof t;return r=i===`string`?{content:t}:t&&i===`object`?t:{content:!1},r.placement=X(r,n),r.targetNodes=()=>[e],r.referenceNode=()=>e,r}var Z,Q,Te=0;function $(){if(Z)return;Q=o([]),Z=w({name:`VTooltipDirectiveApp`,setup(){return{directives:Q}},render(){return this.directives.map(e=>{let t={...e.options,shown:e.shown||e.options.shown,key:e.id};return y(Se,t)})},devtools:{hide:!0}});let e=document.createElement(`div`);Z.mount(e)}function Ee(e,t,n){$();let r=o(we(e,t,n)),i=o(!1),a={id:Te++,options:r,shown:i};return Q.value.push(a),e.classList&&e.classList.add(Ce),e.$_vueAfloat={options:r,item:a,show(){i.value=!0},hide(){i.value=!1}}}function De(e){if(e.$_vueAfloat){let t=Q.value.indexOf(e.$_vueAfloat.item);t!==-1&&Q.value.splice(t,1),delete e.$_vueAfloat,delete e.$_vueAfloatOldShown,delete e.$_vueAfloatMountTarget}e.classList&&e.classList.remove(Ce)}function Oe(e,{value:t,modifiers:n}){let r=we(e,t,n);if(!r.content||N.disabled)De(e);else{let i;e.$_vueAfloat?(i=e.$_vueAfloat,i.options.value=r):i=Ee(e,t,n);let a=typeof t==`object`?t.shown:void 0;a!==void 0&&a!==e.$_vueAfloatOldShown&&(e.$_vueAfloatOldShown=a,a?i.show():i.hide())}}var ke={beforeMount:Oe,updated:Oe,beforeUnmount(e){De(e)}},Ae=S({__name:`ActionIconButton`,props:{as:{},to:{},href:{},icon:{},tooltip:{},active:{type:Boolean},disabled:{type:Boolean},label:{},compact:{type:Boolean},activeClass:{}},setup(e){let r=e,o=f(()=>r.as?r.as:r.href!=null||r.to!=null?`a`:`button`),s=f(()=>o.value===`a`),c=f(()=>o.value===`button`),u=f(()=>r.compact?`btn-icon-compact`:`btn-icon`),p=f(()=>r.compact?`w-auto! h-auto! p-[0.25em]`:`w-auto! h-auto! p-[0.5em]`),m=f(()=>r.active?r.activeClass||`color-active bg-active op100`:``);return(r,f)=>t((n(),a(l(o.value),{type:c.value?`button`:void 0,class:d([u.value,p.value,m.value,{"pointer-events-none op-mute":e.disabled&&!c.value}]),href:s.value?e.href??e.to:void 0,to:e.as&&e.to!=null?e.to:void 0,disabled:c.value?e.disabled:void 0,"aria-disabled":e.disabled&&!c.value||void 0,"aria-label":e.label??e.tooltip,"aria-pressed":e.active||void 0},{default:C(()=>[e.icon?(n(),i(`span`,{key:0,class:d(e.icon),"aria-hidden":`true`},null,2)):x(``,!0),h(r.$slots,`default`),h(r.$slots,`badge`)]),_:3},8,[`type`,`class`,`href`,`to`,`disabled`,`aria-disabled`,`aria-label`,`aria-pressed`])),[[b(ke),e.tooltip??``]])}});export{ke as n,Ae as t};