UNPKG

@stanfordspezi/spezi-web-design-system

Version:

Stanford Biodesign Digital Health Spezi Web Design System

2 lines (1 loc) 3.29 kB
"use strict";const c=require("react/jsx-runtime"),C=require("./index-DwV9MiDB.js"),O=require("react"),T=require("./index-DMAkK3b-.js"),g=require("./index-CajSSBH7.js"),$=require("./index-DO-atGp-.js"),B=require("./index-BhY3ui5c.js"),I=require("./index-DYxWvftI.js"),M=require("./index-BaZ5IcWd.js");require("react-dom");function z(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,o.get?o:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const a=z(O);var D=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],y=D.reduce((e,t)=>{const r=g.createSlot(`Primitive.${t}`),o=a.forwardRef((n,l)=>{const{asChild:i,...s}=n,u=i?r:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),c.jsx(u,{...s,ref:l})});return o.displayName=`Primitive.${t}`,{...e,[t]:o}},{}),b="Switch",[H]=$.createContextScope(b),[A,U]=H(b),P=a.forwardRef((e,t)=>{const{__scopeSwitch:r,name:o,checked:n,defaultChecked:l,required:i,disabled:s,value:u="on",onCheckedChange:w,form:d,...v}=e,[p,f]=a.useState(null),S=g.useComposedRefs(t,m=>f(m)),x=a.useRef(!1),k=p?d||!!p.closest("form"):!0,[h,q]=B.useControllableState({prop:n,defaultProp:l??!1,onChange:w,caller:b});return c.jsxs(A,{scope:r,checked:h,disabled:s,children:[c.jsx(y.button,{type:"button",role:"switch","aria-checked":h,"aria-required":i,"data-state":_(h),"data-disabled":s?"":void 0,disabled:s,value:u,...v,ref:S,onClick:T.composeEventHandlers(e.onClick,m=>{q(E=>!E),k&&(x.current=m.isPropagationStopped(),x.current||m.stopPropagation())})}),k&&c.jsx(N,{control:p,bubbles:!x.current,name:o,value:u,checked:h,required:i,disabled:s,form:d,style:{transform:"translateX(-100%)"}})]})});P.displayName=b;var R="SwitchThumb",j=a.forwardRef((e,t)=>{const{__scopeSwitch:r,...o}=e,n=U(R,r);return c.jsx(y.span,{"data-state":_(n.checked),"data-disabled":n.disabled?"":void 0,...o,ref:t})});j.displayName=R;var L="SwitchBubbleInput",N=a.forwardRef(({__scopeSwitch:e,control:t,checked:r,bubbles:o=!0,...n},l)=>{const i=a.useRef(null),s=g.useComposedRefs(i,l),u=I.usePrevious(r),w=M.useSize(t);return a.useEffect(()=>{const d=i.current;if(!d)return;const v=window.HTMLInputElement.prototype,f=Object.getOwnPropertyDescriptor(v,"checked").set;if(u!==r&&f){const S=new Event("click",{bubbles:o});f.call(d,r),d.dispatchEvent(S)}},[u,r,o]),c.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:r,...n,tabIndex:-1,ref:s,style:{...n.style,...w,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});N.displayName=L;function _(e){return e?"checked":"unchecked"}var F=P,W=j;const X=({className:e,...t})=>c.jsx(F,{"data-slot":"switch",className:C.cn("focus-ring data-[state=checked]:bg-primary data-[state=unchecked]:bg-input peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-xs transition disabled:cursor-not-allowed disabled:opacity-50",e),...t,children:c.jsx(W,{"data-slot":"switch-thumb",className:C.cn("bg-surface-primary pointer-events-none block size-4 rounded-full shadow-lg ring-0 transition data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0")})});exports.Switch=X;