import{j as a,cg as L,bH as _,bN as O,bJ as N,bP as j,bI as G,n as w}from"./index-BB3C6ia3.js";import{b as d}from"./vendor-q1sfVHxQ.js";import{a as K,u as U}from"./index-Bm2nI4FA.js";var y="Checkbox",[X]=G(y),[$,I]=X(y);function J(e){const{__scopeCheckbox:r,checked:o,children:l,defaultChecked:s,disabled:t,form:p,name:f,onCheckedChange:i,required:k,value:m="on",internal_do_not_use_render:u}=e,[b,v]=O({prop:o,defaultProp:s??!1,onChange:i,caller:y}),[x,C]=d.useState(null),[g,n]=d.useState(null),c=d.useRef(!1),E=x?!!p||!!x.closest("form"):!0,R={checked:b,disabled:t,setChecked:v,control:x,setControl:C,name:f,form:p,value:m,hasConsumerStoppedPropagationRef:c,required:k,defaultChecked:h(s)?!1:s,isFormControl:E,bubbleInput:g,setBubbleInput:n};return a.jsx($,{scope:r,...R,children:Q(u)?u(R):l})}var S="CheckboxTrigger",B=d.forwardRef(({__scopeCheckbox:e,onKeyDown:r,onClick:o,...l},s)=>{const{control:t,value:p,disabled:f,checked:i,required:k,setControl:m,setChecked:u,hasConsumerStoppedPropagationRef:b,isFormControl:v,bubbleInput:x}=I(S,e),C=N(s,m),g=d.useRef(i);return d.useEffect(()=>{const n=t?.form;if(n){const c=()=>u(g.current);return n.addEventListener("reset",c),()=>n.removeEventListener("reset",c)}},[t,u]),a.jsx(_.button,{type:"button",role:"checkbox","aria-checked":h(i)?"mixed":i,"aria-required":k,"data-state":D(i),"data-disabled":f?"":void 0,disabled:f,value:p,...l,ref:C,onKeyDown:j(r,n=>{n.key==="Enter"&&n.preventDefault()}),onClick:j(o,n=>{u(c=>h(c)?!0:!c),x&&v&&(b.current=n.isPropagationStopped(),b.current||n.stopPropagation())})})});B.displayName=S;var M=d.forwardRef((e,r)=>{const{__scopeCheckbox:o,name:l,checked:s,defaultChecked:t,required:p,disabled:f,value:i,onCheckedChange:k,form:m,...u}=e;return a.jsx(J,{__scopeCheckbox:o,checked:s,defaultChecked:t,disabled:f,required:p,onCheckedChange:k,name:l,form:m,value:i,internal_do_not_use_render:({isFormControl:b})=>a.jsxs(a.Fragment,{children:[a.jsx(B,{...u,ref:r,__scopeCheckbox:o}),b&&a.jsx(z,{__scopeCheckbox:o})]})})});M.displayName=y;var T="CheckboxIndicator",q=d.forwardRef((e,r)=>{const{__scopeCheckbox:o,forceMount:l,...s}=e,t=I(T,o);return a.jsx(L,{present:l||h(t.checked)||t.checked===!0,children:a.jsx(_.span,{"data-state":D(t.checked),"data-disabled":t.disabled?"":void 0,...s,ref:r,style:{pointerEvents:"none",...e.style}})})});q.displayName=T;var A="CheckboxBubbleInput",z=d.forwardRef(({__scopeCheckbox:e,...r},o)=>{const{control:l,hasConsumerStoppedPropagationRef:s,checked:t,defaultChecked:p,required:f,disabled:i,name:k,value:m,form:u,bubbleInput:b,setBubbleInput:v}=I(A,e),x=N(o,v),C=K(t),g=U(l);d.useEffect(()=>{const c=b;if(!c)return;const E=window.HTMLInputElement.prototype,P=Object.getOwnPropertyDescriptor(E,"checked").set,F=!s.current;if(C!==t&&P){const H=new Event("click",{bubbles:F});c.indeterminate=h(t),P.call(c,h(t)?!1:t),c.dispatchEvent(H)}},[b,C,t,s]);const n=d.useRef(h(t)?!1:t);return a.jsx(_.input,{type:"checkbox","aria-hidden":!0,defaultChecked:p??n.current,required:f,disabled:i,name:k,value:m,form:u,...r,tabIndex:-1,ref:x,style:{...r.style,...g,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});z.displayName=A;function Q(e){return typeof e=="function"}function h(e){return e==="indeterminate"}function D(e){return h(e)?"indeterminate":e?"checked":"unchecked"}function V({className:e,...r}){return a.jsx(M,{"data-slot":"checkbox",className:w("peer size-4 shrink-0 rounded-[4px] border border-input shadow-xs transition-shadow outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:border-primary data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",e),...r,children:a.jsx(q,{"data-slot":"checkbox-indicator",className:"grid place-content-center text-current transition-none"})})}const W=d.forwardRef(({className:e,...r},o)=>a.jsx(V,{ref:o,className:w("size-[1.2rem] shrink-0 rounded-none shadow-none border-[var(--fig-btn-default-primary)]","data-[state=checked]:bg-[var(--fig-btn-default-primary)] data-[state=checked]:border-[var(--fig-btn-default-primary)]",e),...r}));W.displayName="Checkbox";export{W as C};