UNPKG

@anoki/fse-ui

Version:

FSE UI components library

3 lines (2 loc) 2.6 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const T=require("react"),N=require("./index.cjs466.js"),P=require("./index.cjs465.js"),O=require("./index.cjs464.js"),B=require("./index.cjs472.js"),M=require("./index.cjs499.js"),I=require("./index.cjs500.js"),y=require("./index.cjs477.js"),d=require("./index.cjs237.js");function $(t){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const e in t)if(e!=="default"){const r=Object.getOwnPropertyDescriptor(t,e);Object.defineProperty(o,e,r.get?r:{enumerable:!0,get:()=>t[e]})}}return o.default=t,Object.freeze(o)}const s=$(T);var m="Switch",[H]=O.createContextScope(m),[z,A]=H(m),R=s.forwardRef((t,o)=>{const{__scopeSwitch:e,name:r,checked:n,defaultChecked:b,required:a,disabled:c,value:u="on",onCheckedChange:x,form:i,...S}=t,[p,l]=s.useState(null),v=P.useComposedRefs(o,h=>l(h)),w=s.useRef(!1),j=p?i||!!p.closest("form"):!0,[f,_]=B.useControllableState({prop:n,defaultProp:b??!1,onChange:x,caller:m});return d.jsxRuntimeExports.jsxs(z,{scope:e,checked:f,disabled:c,children:[d.jsxRuntimeExports.jsx(y.Primitive.button,{type:"button",role:"switch","aria-checked":f,"aria-required":a,"data-state":E(f),"data-disabled":c?"":void 0,disabled:c,value:u,...S,ref:v,onClick:N.composeEventHandlers(t.onClick,h=>{_(q=>!q),j&&(w.current=h.isPropagationStopped(),w.current||h.stopPropagation())})}),j&&d.jsxRuntimeExports.jsx(k,{control:p,bubbles:!w.current,name:r,value:u,checked:f,required:a,disabled:c,form:i,style:{transform:"translateX(-100%)"}})]})});R.displayName=m;var g="SwitchThumb",C=s.forwardRef((t,o)=>{const{__scopeSwitch:e,...r}=t,n=A(g,e);return d.jsxRuntimeExports.jsx(y.Primitive.span,{"data-state":E(n.checked),"data-disabled":n.disabled?"":void 0,...r,ref:o})});C.displayName=g;var D="SwitchBubbleInput",k=s.forwardRef(({__scopeSwitch:t,control:o,checked:e,bubbles:r=!0,...n},b)=>{const a=s.useRef(null),c=P.useComposedRefs(a,b),u=M.usePrevious(e),x=I.useSize(o);return s.useEffect(()=>{const i=a.current;if(!i)return;const S=window.HTMLInputElement.prototype,l=Object.getOwnPropertyDescriptor(S,"checked").set;if(u!==e&&l){const v=new Event("click",{bubbles:r});l.call(i,e),i.dispatchEvent(v)}},[u,e,r]),d.jsxRuntimeExports.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:e,...n,tabIndex:-1,ref:c,style:{...n.style,...x,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});k.displayName=D;function E(t){return t?"checked":"unchecked"}var U=R,L=C;exports.Root=U;exports.Switch=R;exports.SwitchThumb=C;exports.Thumb=L; //# sourceMappingURL=index.cjs440.js.map