BsPkf8Fq.js 10.6 KB
import{d as T,H as w,o as u,k as v,w as i,x as q,ag as F,ah as I,g as t,bx as O,I as U,y as G,by as Y,s as b,p as N,K as X,L as A,bl as H,f as P,S as _,aO as J,l as Q,t as M,i as Z,aP as ee,aM as E,af as te,W as j,ar as ae,O as re,aU as oe,P as se,bb as le,T as ne,U as ie,V as ue,X as de,aW as pe,n as D,aY as fe,c as L,Y as $,F as ce,m as ge,aL as R,a0 as K}from"./BtEn9SvP.js";import{h as ve,P as ye,b as be,a as me,i as _e}from"./3laQJA1P.js";import{n as qe,_ as Ce}from"./DYcig7R4.js";var he=T({__name:"TooltipArrow",props:{width:{type:Number,required:!1,default:10},height:{type:Number,required:!1,default:5},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"svg"}},setup(r){const d=r;return w(),(e,p)=>(u(),v(t(ve),F(I(d)),{default:i(()=>[q(e.$slots,"default")]),_:3},16))}}),Te=he;const z="tooltip.open",[S,Pe]=X("TooltipRoot");var we=T({__name:"TooltipRoot",props:{defaultOpen:{type:Boolean,required:!1,default:!1},open:{type:Boolean,required:!1,default:void 0},delayDuration:{type:Number,required:!1,default:void 0},disableHoverableContent:{type:Boolean,required:!1,default:void 0},disableClosingTrigger:{type:Boolean,required:!1,default:void 0},disabled:{type:Boolean,required:!1,default:void 0},ignoreNonKeyboardFocus:{type:Boolean,required:!1,default:void 0}},emits:["update:open"],setup(r,{emit:d}){const e=r,p=d;w();const a=O(),g=b(()=>e.disableHoverableContent??a.disableHoverableContent.value),n=b(()=>e.disableClosingTrigger??a.disableClosingTrigger.value),f=b(()=>e.disabled??a.disabled.value),y=b(()=>e.delayDuration??a.delayDuration.value),m=b(()=>e.ignoreNonKeyboardFocus??a.ignoreNonKeyboardFocus.value),o=U(e,"open",p,{defaultValue:e.defaultOpen,passive:e.open===void 0});G(o,B=>{a.onClose&&(B?(a.onOpen(),document.dispatchEvent(new CustomEvent(z))):a.onClose())});const s=N(!1),l=N(),C=b(()=>o.value?s.value?"delayed-open":"instant-open":"closed"),{start:x,stop:h}=Y(()=>{s.value=!0,o.value=!0},y,{immediate:!1});function c(){h(),s.value=!1,o.value=!0}function k(){h(),o.value=!1}function W(){x()}return Pe({contentId:"",open:o,stateAttribute:C,trigger:l,onTriggerChange(B){l.value=B},onTriggerEnter(){a.isOpenDelayed.value?W():c()},onTriggerLeave(){g.value?k():h()},onOpen:c,onClose:k,disableHoverableContent:g,disableClosingTrigger:n,disabled:f,ignoreNonKeyboardFocus:m}),(B,Ie)=>(u(),v(t(ye),null,{default:i(()=>[q(B.$slots,"default",{open:t(o)})]),_:3}))}}),ke=we,Be=T({__name:"TooltipContentImpl",props:{ariaLabel:{type:String,required:!1},asChild:{type:Boolean,required:!1,default:void 0},as:{type:null,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},avoidCollisions:{type:Boolean,required:!1,default:void 0},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1,default:void 0},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1}},emits:["escapeKeyDown","pointerDownOutside"],setup(r,{emit:d}){const e=r,p=d,a=S(),g=O(),{forwardRef:n,currentElement:f}=w(),y=b(()=>e.ariaLabel||f.value?.textContent),m=b(()=>{const{ariaLabel:o,...s}=e;return E(s,g.content.value??{},{side:"top",sideOffset:0,align:"center",avoidCollisions:!0,collisionBoundary:[],collisionPadding:0,arrowPadding:0,sticky:"partial",hideWhenDetached:!1})});return A(()=>{H(window,"scroll",o=>{o.target?.contains(a.trigger.value)&&a.onClose()},{capture:!0}),H(window,z,a.onClose)}),(o,s)=>(u(),v(t(ee),{"as-child":"","disable-outside-pointer-events":!1,onEscapeKeyDown:s[0]||(s[0]=l=>p("escapeKeyDown",l)),onPointerDownOutside:s[1]||(s[1]=l=>{t(a).disableClosingTrigger.value&&t(a).trigger.value?.contains(l.target)&&l.preventDefault(),p("pointerDownOutside",l)}),onFocusOutside:s[2]||(s[2]=Z(()=>{},["prevent"])),onDismiss:s[3]||(s[3]=l=>t(a).onClose())},{default:i(()=>[P(t(be),_({ref:t(n),"data-state":t(a).stateAttribute.value},{...o.$attrs,...m.value},{style:{"--reka-tooltip-content-transform-origin":"var(--reka-popper-transform-origin)","--reka-tooltip-content-available-width":"var(--reka-popper-available-width)","--reka-tooltip-content-available-height":"var(--reka-popper-available-height)","--reka-tooltip-trigger-width":"var(--reka-popper-anchor-width)","--reka-tooltip-trigger-height":"var(--reka-popper-anchor-height)"}}),{default:i(()=>[q(o.$slots,"default"),P(t(J),{id:t(a).contentId,role:"tooltip"},{default:i(()=>[Q(M(y.value),1)]),_:1},8,["id"])]),_:3},16,["data-state"])]),_:3}))}}),V=Be,Oe=T({__name:"TooltipContentHoverable",props:{ariaLabel:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1}},setup(r){const e=te(r),{forwardRef:p,currentElement:a}=w(),{trigger:g,onClose:n}=S(),f=O(),{isPointerInTransit:y,onPointerExit:m}=qe(g,a);return f.isPointerInTransitRef=y,m(()=>{n()}),(o,s)=>(u(),v(V,_({ref:t(p)},t(e)),{default:i(()=>[q(o.$slots,"default")]),_:3},16))}}),xe=Oe,De=T({__name:"TooltipContent",props:{forceMount:{type:Boolean,required:!1},ariaLabel:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1}},emits:["escapeKeyDown","pointerDownOutside"],setup(r,{emit:d}){const e=r,p=d,a=S(),g=j(e,p),{forwardRef:n}=w();return(f,y)=>(u(),v(t(re),{present:f.forceMount||t(a).open.value},{default:i(()=>[(u(),v(ae(t(a).disableHoverableContent.value?V:xe),_({ref:t(n)},t(g)),{default:i(()=>[q(f.$slots,"default")]),_:3},16))]),_:3},8,["present"]))}}),Ne=De,Se=T({__name:"TooltipPortal",props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(r){const d=r;return(e,p)=>(u(),v(t(oe),F(I(d)),{default:i(()=>[q(e.$slots,"default")]),_:3},16))}}),Le=Se,Re=T({__name:"TooltipTrigger",props:{reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(r){const d=r,e=S(),p=O();e.contentId||=me(void 0,"reka-tooltip-content");const{forwardRef:a,currentElement:g}=w(),n=N(!1),f=N(!1),y=b(()=>e.disabled.value?{}:{click:h,focus:C,pointermove:s,pointerleave:l,pointerdown:o,blur:x});A(()=>{e.onTriggerChange(g.value)});function m(){setTimeout(()=>{n.value=!1},1)}function o(){e.open&&!e.disableClosingTrigger.value&&e.onClose(),n.value=!0,document.addEventListener("pointerup",m,{once:!0})}function s(c){c.pointerType!=="touch"&&!f.value&&!p.isPointerInTransitRef.value&&(e.onTriggerEnter(),f.value=!0)}function l(){e.onTriggerLeave(),f.value=!1}function C(c){n.value||e.ignoreNonKeyboardFocus.value&&!c.target.matches?.(":focus-visible")||e.onOpen()}function x(){e.onClose()}function h(){e.disableClosingTrigger.value||e.onClose()}return(c,k)=>(u(),v(t(_e),{"as-child":"",reference:c.reference},{default:i(()=>[P(t(se),_({ref:t(a),"aria-describedby":t(e).open.value?t(e).contentId:void 0,"data-state":t(e).stateAttribute.value,as:c.as,"as-child":d.asChild,"data-grace-area-trigger":""},le(y.value)),{default:i(()=>[q(c.$slots,"default")]),_:3},16,["aria-describedby","data-state","as","as-child"])]),_:3},8,["reference"]))}}),Ee=Re;const Fe={slots:{content:"flex items-center gap-1 bg-default text-highlighted shadow-sm rounded-sm ring ring-default h-6 px-2.5 py-1 text-xs select-none data-[state=delayed-open]:animate-[scale-in_100ms_ease-out] data-[state=closed]:animate-[scale-out_100ms_ease-in] origin-(--reka-tooltip-content-transform-origin) pointer-events-auto",arrow:"fill-bg stroke-default",text:"truncate",kbds:"hidden lg:inline-flex items-center shrink-0 gap-0.5 not-first-of-type:before:content-['·'] not-first-of-type:before:me-0.5",kbdsSize:"sm"}},Ae={__name:"UTooltip",props:{text:{type:String,required:!1},kbds:{type:Array,required:!1},content:{type:Object,required:!1},arrow:{type:[Boolean,Object],required:!1},portal:{type:[Boolean,String],required:!1,skipCheck:!0,default:!0},reference:{type:null,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1},defaultOpen:{type:Boolean,required:!1},open:{type:Boolean,required:!1},delayDuration:{type:Number,required:!1},disableHoverableContent:{type:Boolean,required:!1},disableClosingTrigger:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},ignoreNonKeyboardFocus:{type:Boolean,required:!1}},emits:["update:open"],setup(r,{emit:d}){const e=r,p=d,a=ne(),g=ie(),n=ue("tooltip",e),f=O(),y=j(de(e,"defaultOpen","open","delayDuration","disableHoverableContent","disableClosingTrigger","ignoreNonKeyboardFocus"),p),m=pe(R(()=>e.portal)),o=R(()=>E(e.content,f.content.value,{side:"bottom",sideOffset:8,collisionPadding:8})),s=R(()=>E(e.arrow,{rounded:!0})),l=b(()=>K({extend:K(Fe),...g.ui?.tooltip||{}})({side:o.value.side}));return(C,x)=>(u(),v(t(ke),_(t(y),{disabled:!(r.text||r.kbds?.length||a.content)||e.disabled}),{default:i(({open:h})=>[a.default||r.reference?(u(),v(t(Ee),_({key:0},C.$attrs,{"as-child":"",reference:r.reference,class:e.class}),{default:i(()=>[q(C.$slots,"default",{open:h})]),_:2},1040,["reference","class"])):D("",!0),P(t(Le),F(I(t(m))),{default:i(()=>[P(t(fe),null,{default:i(()=>[P(t(Ne),_(o.value,{"data-slot":"content",class:l.value.content({class:[!a.default&&e.class,t(n)?.content]})}),{default:i(()=>[q(C.$slots,"content",{ui:l.value},()=>[r.text?(u(),L("span",{key:0,"data-slot":"text",class:$(l.value.text({class:t(n)?.text}))},M(r.text),3)):D("",!0),r.kbds?.length?(u(),L("span",{key:1,"data-slot":"kbds",class:$(l.value.kbds({class:t(n)?.kbds}))},[(u(!0),L(ce,null,ge(r.kbds,(c,k)=>(u(),v(Ce,_({key:k,size:t(n)?.kbdsSize||l.value.kbdsSize()},{ref_for:!0},typeof c=="string"?{value:c}:c),null,16,["size"]))),128))],2)):D("",!0)]),r.arrow?(u(),v(t(Te),_({key:0},s.value,{"data-slot":"arrow",class:l.value.arrow({class:t(n)?.arrow})}),null,16,["class"])):D("",!0)]),_:3},16,["class"])]),_:3})]),_:3},16)]),_:3},16,["disabled"]))}};export{Ae as _};