@stanfordspezi/spezi-web-design-system
Version:
Stanford Biodesign Digital Health Spezi Web Design System
6 lines (3 loc) • 6.08 kB
JavaScript
"use strict";const H=require("react"),f=require("./index-Df0u7aLq.js"),x=require("./index-k79m3Yno.js"),_=require("./index-Bbq55jou.js"),B=require("./index-DdQ5CLAY.js"),v=require("./index-CrfcgX4I.js"),P=require("./index-CldYjOhY.js"),D=require("./index-4XkuMsix.js"),a=require("react/jsx-runtime");function V(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const s=V(H);var C="Dialog",[y,le]=f.createContextScope(C),[z,u]=y(C),N=e=>{const{__scopeDialog:t,children:n,open:r,defaultOpen:i,onOpenChange:o,modal:c=!0}=e,l=s.useRef(null),d=s.useRef(null),[p,R]=f.useControllableState({prop:r,defaultProp:i??!1,onChange:o,caller:C});return a.jsx(z,{scope:t,triggerRef:l,contentRef:d,contentId:_.useId(),titleId:_.useId(),descriptionId:_.useId(),open:p,onOpenChange:R,onOpenToggle:s.useCallback(()=>R(L=>!L),[R]),modal:c,children:n})};N.displayName=C;var I="DialogTrigger",b=s.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=u(I,n),o=x.useComposedRefs(t,i.triggerRef);return a.jsx(D.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":O(i.open),...r,ref:o,onClick:f.composeEventHandlers(e.onClick,i.onOpenToggle)})});b.displayName=I;var E="DialogPortal",[K,j]=y(E,{forceMount:void 0}),T=e=>{const{__scopeDialog:t,forceMount:n,children:r,container:i}=e,o=u(E,t);return a.jsx(K,{scope:t,forceMount:n,children:s.Children.map(r,c=>a.jsx(P.Presence,{present:n||o.open,children:a.jsx(v.Portal,{asChild:!0,container:i,children:c})}))})};T.displayName=E;var m="DialogOverlay",A=s.forwardRef((e,t)=>{const n=j(m,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,o=u(m,e.__scopeDialog);return o.modal?a.jsx(P.Presence,{present:r||o.open,children:a.jsx(Y,{...i,ref:t})}):null});A.displayName=m;var U=x.createSlot("DialogOverlay.RemoveScroll"),Y=s.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=u(m,n);return a.jsx(v.ReactRemoveScroll,{as:U,allowPinchZoom:!0,shards:[i.contentRef],children:a.jsx(D.Primitive.div,{"data-state":O(i.open),...r,ref:t,style:{pointerEvents:"auto",...r.style}})})}),g="DialogContent",M=s.forwardRef((e,t)=>{const n=j(g,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,o=u(g,e.__scopeDialog);return a.jsx(P.Presence,{present:r||o.open,children:o.modal?a.jsx(Z,{...i,ref:t}):a.jsx(J,{...i,ref:t})})});M.displayName=g;var Z=s.forwardRef((e,t)=>{const n=u(g,e.__scopeDialog),r=s.useRef(null),i=x.useComposedRefs(t,n.contentRef,r);return s.useEffect(()=>{const o=r.current;if(o)return v.hideOthers(o)},[]),a.jsx(S,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:f.composeEventHandlers(e.onCloseAutoFocus,o=>{var c;o.preventDefault(),(c=n.triggerRef.current)==null||c.focus()}),onPointerDownOutside:f.composeEventHandlers(e.onPointerDownOutside,o=>{const c=o.detail.originalEvent,l=c.button===0&&c.ctrlKey===!0;(c.button===2||l)&&o.preventDefault()}),onFocusOutside:f.composeEventHandlers(e.onFocusOutside,o=>o.preventDefault())})}),J=s.forwardRef((e,t)=>{const n=u(g,e.__scopeDialog),r=s.useRef(!1),i=s.useRef(!1);return a.jsx(S,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:o=>{var c,l;(c=e.onCloseAutoFocus)==null||c.call(e,o),o.defaultPrevented||(r.current||(l=n.triggerRef.current)==null||l.focus(),o.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:o=>{var d,p;(d=e.onInteractOutside)==null||d.call(e,o),o.defaultPrevented||(r.current=!0,o.detail.originalEvent.type==="pointerdown"&&(i.current=!0));const c=o.target;((p=n.triggerRef.current)==null?void 0:p.contains(c))&&o.preventDefault(),o.detail.originalEvent.type==="focusin"&&i.current&&o.preventDefault()}})}),S=s.forwardRef((e,t)=>{const{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:o,...c}=e,l=u(g,n),d=s.useRef(null),p=x.useComposedRefs(t,d);return v.useFocusGuards(),a.jsxs(a.Fragment,{children:[a.jsx(v.FocusScope,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:o,children:a.jsx(B.DismissableLayer,{role:"dialog",id:l.contentId,"aria-describedby":l.descriptionId,"aria-labelledby":l.titleId,"data-state":O(l.open),...c,ref:p,onDismiss:()=>l.onOpenChange(!1)})}),a.jsxs(a.Fragment,{children:[a.jsx(Q,{titleId:l.titleId}),a.jsx(ee,{contentRef:d,descriptionId:l.descriptionId})]})]})}),h="DialogTitle",w=s.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=u(h,n);return a.jsx(D.Primitive.h2,{id:i.titleId,...r,ref:t})});w.displayName=h;var F="DialogDescription",W=s.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=u(F,n);return a.jsx(D.Primitive.p,{id:i.descriptionId,...r,ref:t})});W.displayName=F;var $="DialogClose",q=s.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=u($,n);return a.jsx(D.Primitive.button,{type:"button",...r,ref:t,onClick:f.composeEventHandlers(e.onClick,()=>i.onOpenChange(!1))})});q.displayName=$;function O(e){return e?"open":"closed"}var k="DialogTitleWarning",[ue,G]=f.createContext2(k,{contentName:g,titleName:h,docsSlug:"dialog"}),Q=({titleId:e})=>{const t=G(k),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users.
If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component.
For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return s.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},X="DialogDescriptionWarning",ee=({contentRef:e,descriptionId:t})=>{const r=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${G(X).contentName}}.`;return s.useEffect(()=>{var o;const i=(o=e.current)==null?void 0:o.getAttribute("aria-describedby");t&&i&&(document.getElementById(t)||console.warn(r))},[r,e,t]),null},te=N,oe=b,ne=T,re=A,ie=M,ae=w,se=W,ce=q;exports.Close=ce;exports.Content=ie;exports.Description=se;exports.Overlay=re;exports.Portal=ne;exports.Root=te;exports.Title=ae;exports.Trigger=oe;