UNPKG

@anoki/fse-ui

Version:

FSE UI components library

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