Files
raisfast/adminui/assets/switch-RQXz9aAm.js
T

2 lines
3.7 KiB
JavaScript

import{f as d,j as u}from"./vendor-react-j_G0Dyx0.js";import{bi as se,cb as de,b$ as oe,c9 as ie,cy as le,c0 as ce,bE as ue,W as fe,cm as V,bt as pe,cA as he,cz as me,b6 as be,bG as ye,b4 as F}from"./index-CYRNmH_j.js";import{u as ve}from"./useControlled-C_2SAunx.js";import{f as ke,u as xe,a as ge,b as Ce}from"./useRegisterFieldControl-DckdhOwn.js";import{u as Ee}from"./FormContext-DcgewsQr.js";import{u as Pe}from"./useAriaLabelledBy-ClE8wwXX.js";import{u as we}from"./useLabelableId-BWOPzzb6.js";const L=d.createContext(void 0);function Ie(){const e=d.useContext(L);if(e===void 0)throw new Error(se(63));return e}let M=(function(e){return e.checked="data-checked",e.unchecked="data-unchecked",e.disabled="data-disabled",e.readonly="data-readonly",e.required="data-required",e.valid="data-valid",e.invalid="data-invalid",e.touched="data-touched",e.dirty="data-dirty",e.filled="data-filled",e.focused="data-focused",e})({});const T={...ke,checked(e){return e?{[M.checked]:""}:{[M.unchecked]:""}}},Be=d.forwardRef(function(n,b){const{checked:x,className:N,defaultChecked:g,"aria-labelledby":y,form:f,id:q,inputRef:H,name:O,nativeButton:p=!1,onCheckedChange:v,readOnly:l=!1,required:h=!1,disabled:W=!1,render:Ke,uncheckedValue:C,value:E,style:je,...z}=n,{clearErrors:G}=Ee(),{state:P,setTouched:J,setDirty:S,validityData:U,setFilled:k,setFocused:w,shouldValidateOnChange:Y,validationMode:_,disabled:$,name:Q,validation:o}=xe(),{labelId:X}=ge(),r=$||W,c=Q??O,s=d.useRef(null),Z=de(s,H,o.inputRef),m=d.useRef(null),I=oe(),B=we({id:q,implicit:!1,controlRef:m}),R=p?void 0:B,[a,D]=ve({controlled:x,default:!!g,name:"Switch",state:"checked"});Ce(m,I,a),ie(()=>{s.current&&k(s.current.checked)},[s,k]),le(a,()=>{G(c),S(a!==U.initialValue),k(a),Y()?o.commit(a):o.commit(a,!0)});const{getButtonProps:A,buttonRef:ee}=ce({disabled:r,native:p}),te=Pe(y,X,s,!p,R),ae={id:p?B:I,role:"switch","aria-checked":a,"aria-readonly":l||void 0,"aria-required":h||void 0,"aria-labelledby":te,onFocus(){r||w(!0)},onBlur(){const t=s.current;!t||r||(J(!0),w(!1),_==="onBlur"&&o.commit(t.checked))},onClick(t){if(l||r)return;t.preventDefault();const i=s.current;i&&i.dispatchEvent(new(pe(i)).PointerEvent("click",{bubbles:!0,shiftKey:t.shiftKey,ctrlKey:t.ctrlKey,altKey:t.altKey,metaKey:t.metaKey}))}},ne=ue({checked:a,disabled:r,form:f,id:R,name:c,required:h,style:c?he:me,tabIndex:-1,type:"checkbox","aria-hidden":!0,ref:Z,onChange(t){if(t.nativeEvent.defaultPrevented)return;if(l){t.preventDefault();return}const i=t.currentTarget.checked,j=be(ye,t.nativeEvent);v==null||v(i,j),!j.isCanceled&&D(i)},onFocus(){var t;(t=m.current)==null||t.focus()}},o.getInputValidationProps,E!==void 0?{value:E}:fe),K=d.useMemo(()=>({...P,checked:a,disabled:r,readOnly:l,required:h}),[P,a,r,l,h]),re=V("span",n,{state:K,ref:[b,m,ee],props:[ae,o.getValidationProps,z,A],stateAttributesMapping:T});return u.jsxs(L.Provider,{value:K,children:[re,!a&&c&&C!==void 0&&u.jsx("input",{type:"hidden",form:f,name:c,value:C}),u.jsx("input",{...ne,suppressHydrationWarning:!0})]})}),Re=d.forwardRef(function(n,b){const{render:x,className:N,style:g,...y}=n,f=Ie();return V("span",n,{state:f,ref:b,stateAttributesMapping:T,props:y})});function He({className:e,...n}){return u.jsx(Be,{"data-slot":"switch",className:F("peer inline-flex h-5 w-9 shrink-0 items-center rounded-full border-2 border-transparent shadow-xs transition-colors outline-none focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-checked:bg-primary data-unchecked:bg-input",e),...n,children:u.jsx(Re,{"data-slot":"switch-thumb",className:F("pointer-events-none block size-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-checked:translate-x-4 data-unchecked:translate-x-0")})})}export{He as S};