import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{Pr as t,ki as n}from"./lucide-icons-BjbcRgLk.js";import{t as r}from"./jsx-runtime-By8HlURe.js";import{t as i}from"./utils-BFSTDHdM.js";import{n as a}from"./dist-DvXXZeEa.js";import{r as o}from"./dist-D7Bu0-nC.js";import{t as s}from"./dist-CcIWO21i2.js";import{t as c}from"./dist-kXp6QuJv.js";import{t as l}from"./dist-CxcvWxxD2.js";import{t as u}from"./dist-CDe9cWnA.js";import{t as d}from"./dist-VfIIxYhK.js";import{t as f}from"./dist-l851fJFf.js";import{n as p,r as m,t as h}from"./dist-QlrhncJe.js";import{t as g}from"./dist-C7V3QC0v.js";var _=e(n(),1),v=r(),y=`Radio`,[b,x]=o(y),[S,C]=b(y),w=_.forwardRef((e,t)=>{let{__scopeRadio:n,name:r,checked:i=!1,required:o,disabled:s,value:c=`on`,onCheck:d,form:f,...p}=e,[m,h]=_.useState(null),g=a(t,e=>h(e)),y=_.useRef(!1),b=m?f||!!m.closest(`form`):!0;return(0,v.jsxs)(S,{scope:n,checked:i,disabled:s,children:[(0,v.jsx)(u.button,{type:`button`,role:`radio`,"aria-checked":i,"data-state":k(i),"data-disabled":s?``:void 0,disabled:s,value:c,...p,ref:g,onClick:l(e.onClick,e=>{i||d?.(),b&&(y.current=e.isPropagationStopped(),y.current||e.stopPropagation())})}),b&&(0,v.jsx)(O,{control:m,bubbles:!y.current,name:r,value:c,checked:i,required:o,disabled:s,form:f,style:{transform:`translateX(-100%)`}})]})});w.displayName=y;var T=`RadioIndicator`,E=_.forwardRef((e,t)=>{let{__scopeRadio:n,forceMount:r,...i}=e,a=C(T,n);return(0,v.jsx)(d,{present:r||a.checked,children:(0,v.jsx)(u.span,{"data-state":k(a.checked),"data-disabled":a.disabled?``:void 0,...i,ref:t})})});E.displayName=T;var D=`RadioBubbleInput`,O=_.forwardRef(({__scopeRadio:e,control:t,checked:n,bubbles:r=!0,...i},o)=>{let s=_.useRef(null),l=a(s,o),d=g(n),f=c(t);return _.useEffect(()=>{let e=s.current;if(!e)return;let t=window.HTMLInputElement.prototype,i=Object.getOwnPropertyDescriptor(t,`checked`).set;if(d!==n&&i){let t=new Event(`click`,{bubbles:r});i.call(e,n),e.dispatchEvent(t)}},[d,n,r]),(0,v.jsx)(u.input,{type:`radio`,"aria-hidden":!0,defaultChecked:n,...i,tabIndex:-1,ref:l,style:{...i.style,...f,position:`absolute`,pointerEvents:`none`,opacity:0,margin:0}})});O.displayName=D;function k(e){return e?`checked`:`unchecked`}var A=[`ArrowUp`,`ArrowDown`,`ArrowLeft`,`ArrowRight`],j=`RadioGroup`,[M,N]=o(j,[m,x]),P=m(),F=x(),[I,L]=M(j),R=_.forwardRef((e,t)=>{let{__scopeRadioGroup:n,name:r,defaultValue:i,value:a,required:o=!1,disabled:c=!1,orientation:l,dir:d,loop:m=!0,onValueChange:h,...g}=e,_=P(n),y=f(d),[b,x]=s({prop:a,defaultProp:i??``,onChange:h,caller:j});return(0,v.jsx)(I,{scope:n,name:r,required:o,disabled:c,value:b,onValueChange:x,children:(0,v.jsx)(p,{asChild:!0,..._,orientation:l,dir:y,loop:m,children:(0,v.jsx)(u.div,{role:`radiogroup`,"aria-required":o,"aria-orientation":l,"data-disabled":c?``:void 0,dir:y,...g,ref:t})})})});R.displayName=j;var z=`RadioGroupItem`,B=_.forwardRef((e,t)=>{let{__scopeRadioGroup:n,disabled:r,...i}=e,o=L(z,n),s=o.disabled||r,c=P(n),u=F(n),d=_.useRef(null),f=a(t,d),p=o.value===i.value,m=_.useRef(!1);return _.useEffect(()=>{let e=e=>{A.includes(e.key)&&(m.current=!0)},t=()=>m.current=!1;return document.addEventListener(`keydown`,e),document.addEventListener(`keyup`,t),()=>{document.removeEventListener(`keydown`,e),document.removeEventListener(`keyup`,t)}},[]),(0,v.jsx)(h,{asChild:!0,...c,focusable:!s,active:p,children:(0,v.jsx)(w,{disabled:s,required:o.required,checked:p,...u,...i,name:o.name,ref:f,onCheck:()=>o.onValueChange(i.value),onKeyDown:l(e=>{e.key===`Enter`&&e.preventDefault()}),onFocus:l(i.onFocus,()=>{m.current&&d.current?.click()})})})});B.displayName=z;var V=`RadioGroupIndicator`,H=_.forwardRef((e,t)=>{let{__scopeRadioGroup:n,...r}=e;return(0,v.jsx)(E,{...F(n),...r,ref:t})});H.displayName=V;var U=R,W=B,G=H,K=_.forwardRef(({className:e,...t},n)=>(0,v.jsx)(U,{className:i(`grid gap-2`,e),...t,ref:n}));K.displayName=U.displayName;var q=_.forwardRef(({className:e,...n},r)=>(0,v.jsx)(W,{ref:r,className:i(`aspect-square h-[18px] w-[18px] rounded-full border border-primary text-primary ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50`,e),...n,children:(0,v.jsx)(G,{className:`flex items-center justify-center`,children:(0,v.jsx)(t,{className:`h-3 w-3 fill-current text-current`})})}));q.displayName=W.displayName;export{q as n,K as t};