UNPKG

@anoki/fse-ui

Version:

FSE UI components library

7 lines (4 loc) 7.08 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const H=require("react"),p=require("./index.cjs466.js"),E=require("./index.cjs465.js"),M=require("./index.cjs464.js"),v=require("./index.cjs471.js"),B=require("./index.cjs472.js"),V=require("./index.cjs473.js"),z=require("./index.cjs474.js"),K=require("./index.cjs475.js"),j=require("./index.cjs476.js"),x=require("./index.cjs477.js"),U=require("./index.cjs478.js"),Y=require("./index.cjs479.js"),Z=require("./index.cjs480.js"),J=require("./index.cjs467.js"),s=require("./index.cjs237.js");function Q(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 a=Q(H);var D="Dialog",[S,X]=M.createContextScope(D),[ee,u]=S(D),C=e=>{const{__scopeDialog:t,children:n,open:r,defaultOpen:i,onOpenChange:o,modal:c=!0}=e,l=a.useRef(null),d=a.useRef(null),[f,R]=B.useControllableState({prop:r,defaultProp:i??!1,onChange:o,caller:D});return s.jsxRuntimeExports.jsx(ee,{scope:t,triggerRef:l,contentRef:d,contentId:v.useId(),titleId:v.useId(),descriptionId:v.useId(),open:f,onOpenChange:R,onOpenToggle:a.useCallback(()=>R(L=>!L),[R]),modal:c,children:n})};C.displayName=D;var w="DialogTrigger",P=a.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=u(w,n),o=E.useComposedRefs(t,i.triggerRef);return s.jsxRuntimeExports.jsx(x.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":A(i.open),...r,ref:o,onClick:p.composeEventHandlers(e.onClick,i.onOpenToggle)})});P.displayName=w;var _="DialogPortal",[te,F]=S(_,{forceMount:void 0}),y=e=>{const{__scopeDialog:t,forceMount:n,children:r,container:i}=e,o=u(_,t);return s.jsxRuntimeExports.jsx(te,{scope:t,forceMount:n,children:a.Children.map(r,c=>s.jsxRuntimeExports.jsx(j.Presence,{present:n||o.open,children:s.jsxRuntimeExports.jsx(K.Portal,{asChild:!0,container:i,children:c})}))})};y.displayName=_;var m="DialogOverlay",O=a.forwardRef((e,t)=>{const n=F(m,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,o=u(m,e.__scopeDialog);return o.modal?s.jsxRuntimeExports.jsx(j.Presence,{present:r||o.open,children:s.jsxRuntimeExports.jsx(ne,{...i,ref:t})}):null});O.displayName=m;var oe=J.createSlot("DialogOverlay.RemoveScroll"),ne=a.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=u(m,n);return s.jsxRuntimeExports.jsx(Y,{as:oe,allowPinchZoom:!0,shards:[i.contentRef],children:s.jsxRuntimeExports.jsx(x.Primitive.div,{"data-state":A(i.open),...r,ref:t,style:{pointerEvents:"auto",...r.style}})})}),g="DialogContent",h=a.forwardRef((e,t)=>{const n=F(g,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,o=u(g,e.__scopeDialog);return s.jsxRuntimeExports.jsx(j.Presence,{present:r||o.open,children:o.modal?s.jsxRuntimeExports.jsx(re,{...i,ref:t}):s.jsxRuntimeExports.jsx(ie,{...i,ref:t})})});h.displayName=g;var re=a.forwardRef((e,t)=>{const n=u(g,e.__scopeDialog),r=a.useRef(null),i=E.useComposedRefs(t,n.contentRef,r);return a.useEffect(()=>{const o=r.current;if(o)return Z.hideOthers(o)},[]),s.jsxRuntimeExports.jsx(q,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:p.composeEventHandlers(e.onCloseAutoFocus,o=>{var c;o.preventDefault(),(c=n.triggerRef.current)==null||c.focus()}),onPointerDownOutside:p.composeEventHandlers(e.onPointerDownOutside,o=>{const c=o.detail.originalEvent,l=c.button===0&&c.ctrlKey===!0;(c.button===2||l)&&o.preventDefault()}),onFocusOutside:p.composeEventHandlers(e.onFocusOutside,o=>o.preventDefault())})}),ie=a.forwardRef((e,t)=>{const n=u(g,e.__scopeDialog),r=a.useRef(!1),i=a.useRef(!1);return s.jsxRuntimeExports.jsx(q,{...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,f;(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;((f=n.triggerRef.current)==null?void 0:f.contains(c))&&o.preventDefault(),o.detail.originalEvent.type==="focusin"&&i.current&&o.preventDefault()}})}),q=a.forwardRef((e,t)=>{const{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:o,...c}=e,l=u(g,n),d=a.useRef(null),f=E.useComposedRefs(t,d);return U.useFocusGuards(),s.jsxRuntimeExports.jsxs(s.jsxRuntimeExports.Fragment,{children:[s.jsxRuntimeExports.jsx(z.FocusScope,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:o,children:s.jsxRuntimeExports.jsx(V.DismissableLayer,{role:"dialog",id:l.contentId,"aria-describedby":l.descriptionId,"aria-labelledby":l.titleId,"data-state":A(l.open),...c,ref:f,onDismiss:()=>l.onOpenChange(!1)})}),s.jsxRuntimeExports.jsxs(s.jsxRuntimeExports.Fragment,{children:[s.jsxRuntimeExports.jsx(ae,{titleId:l.titleId}),s.jsxRuntimeExports.jsx(le,{contentRef:d,descriptionId:l.descriptionId})]})]})}),N="DialogTitle",b=a.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=u(N,n);return s.jsxRuntimeExports.jsx(x.Primitive.h2,{id:i.titleId,...r,ref:t})});b.displayName=N;var $="DialogDescription",I=a.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=u($,n);return s.jsxRuntimeExports.jsx(x.Primitive.p,{id:i.descriptionId,...r,ref:t})});I.displayName=$;var W="DialogClose",T=a.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=u(W,n);return s.jsxRuntimeExports.jsx(x.Primitive.button,{type:"button",...r,ref:t,onClick:p.composeEventHandlers(e.onClick,()=>i.onOpenChange(!1))})});T.displayName=W;function A(e){return e?"open":"closed"}var k="DialogTitleWarning",[se,G]=M.createContext(k,{contentName:g,titleName:N,docsSlug:"dialog"}),ae=({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 a.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},ce="DialogDescriptionWarning",le=({contentRef:e,descriptionId:t})=>{const r=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${G(ce).contentName}}.`;return a.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},ue=C,de=P,ge=y,fe=O,pe=h,xe=b,me=I,De=T;exports.Close=De;exports.Content=pe;exports.Description=me;exports.Dialog=C;exports.DialogClose=T;exports.DialogContent=h;exports.DialogDescription=I;exports.DialogOverlay=O;exports.DialogPortal=y;exports.DialogTitle=b;exports.DialogTrigger=P;exports.Overlay=fe;exports.Portal=ge;exports.Root=ue;exports.Title=xe;exports.Trigger=de;exports.WarningProvider=se;exports.createDialogScope=X; //# sourceMappingURL=index.cjs312.js.map