@snowball-tech/fractal
Version:
Fractal's (Snowball's design system) React component library based on RadixUI and PandaCSS
3 lines • 3.87 kB
JavaScript
'use client';
import{b as M}from"./chunk-MYDDW5T6.js";import{a as r,c as A}from"./chunk-K7NCX4QF.js";import{f as H}from"./chunk-2FP3EMO2.js";import{d as F}from"./chunk-262C6VLB.js";import{b as L}from"./chunk-HTOKQYVM.js";import{b as o}from"./chunk-CMFNILWJ.js";import{a as i,b as n}from"./chunk-XYM7TA65.js";import*as a from"@radix-ui/react-dialog";import{UilTimes as ee}from"@tooni/iconscout-unicons-react";import{forwardRef as ae,useEffect as te,useImperativeHandle as le,useRef as y,useState as oe}from"react";import s from"lodash/fp/isFunction";import S from"lodash/fp/isString";import b from"lodash/fp/omit";import{Fragment as re,jsx as l,jsxs as d}from"react/jsx-runtime";var B=ae(({children:v,closeButtonLabel:U="Close",condensed:h=!1,contentClassName:k,defaultOpen:x,disabled:c=!1,dismissable:z=!0,fullWidth:j=!1,modal:G=!0,onClose:w,onDismiss:X,onInteractOutside:$,onOpen:N,onPointerDownOutside:C,onToggle:P,open:D,overlayStyle:_="dark",position:T=A,root:E,scrollbarOnHover:q=!0,title:J,trigger:m,wrapper:f,...O},K)=>{let u=y(null),Q=y(null),g=y(null);le(K,()=>({get container(){return u?.current??null},get content(){return g?.current??null},get trigger(){return Q?.current??null}}));let I=!!m,V=!!v,[p,W]=oe(D===!0||x===!0),R=t=>{if(c)return;let e=p;W(t),s(P)&&e!==t&&P(t),!e&&t&&s(N)&&N(),e&&!t&&s(w)&&w()};te(()=>{R(D===!0||x===!0)},[x,D]);let Y=t=>{let{target:e}=t;e===window||e===null||e===void 0||((u?.current?.contains(e)||g?.current?.contains(e))&&t.preventDefault(),s($)&&$(t))},Z=t=>{let{target:e}=t;e===window||e===null||e===void 0||((u?.current?.contains(e)||g?.current?.contains(e))&&t.preventDefault(),s(C)&&C(t))};return l("div",{ref:u,className:n(`${o}-${r}`,p?`${o}-${r}--opened`:`${o}-${r}--closed`,c?`${o}-${r}--disabled`:"",E?.className),...b(["className"],E),children:d(a.Root,{...c?{open:!1}:{open:p},modal:G,onOpenChange:R,children:[l(a.Trigger,{asChild:!S(m),className:i(`${o}-${r}__trigger`,S(m)?"appearance-none border-none bg-unset px-unset py-unset text-left text-color-unset outline-none":"",I?"flex items-center":"invisible h-0 max-h-0 border-y-0 py-0",c?`${o}-${r}__trigger--disabled cursor-default text-disabled`:"cursor-pointer"),children:I&&m}),l(a.Portal,{children:p&&d(re,{children:[_!=="none"&&l(a.Overlay,{className:i(`${o}-${r}__overlay`,"z-[9999]","inset-0",_==="light"?"bg-[rgba(255,251,244,0.8)]":"bg-[rgba(0,0,0,0.7)]"),style:{position:T}}),l(a.Content,{ref:g,"aria-describedby":void 0,asChild:!0,className:n(`${o}-${r}__content`,"z-[9999] max-h-[calc(100dvh-theme(spacing.4))] max-w-[calc(100vw-theme(spacing.4))] to-xs:max-h-[100dvh] to-sm:max-h-[calc(100dvh-theme(spacing.2))] to-sm:w-full to-sm:max-w-[calc(100vw-theme(spacing.2))]",O.className),onInteractOutside:Y,onPointerDownOutside:Z,...b(["className","onInteractOutside","onPointerDownOutside","asChild"],O),children:d(F,{className:n("left-1/2 top-1/2 flex w-full -translate-x-1/2 -translate-y-1/2 flex-col",h?"gap-3 pr-half":"gap-5 p-3 pr-half",j?"":"w-fit to-sm:w-full",f?.className),elevation:f?.elevation||"2",style:{...f?.style,position:T},...b(["className","elevation","style"],f),children:[d("div",{className:i("flex h-fit w-full flex-row justify-between gap-1",h?"pr-one-and-half":"pr-[calc(theme(spacing.3)-theme(spacing.half))]"),children:[l(a.Title,{asChild:!0,className:i(`${o}-${r}__title`,"flex-1"),children:l(L,{variant:"heading-4",children:J})}),z&&l(a.Close,{asChild:!0,className:`${o}-${r}__dismiss`,children:l("div",{className:"mt-half place-items-end text-right",children:l(H,{icon:l(ee,{}),iconOnly:!0,label:U,variant:"text",onClick:X})})})]}),V&&l(M,{contentClassName:n("visible flex flex-col w-full",h?"gap-3 pr-one-and-half":"gap-5 pr-[calc(theme(spacing.3)-theme(spacing.half))]",k),scrollbarOnHover:q,children:v})]})})]})})]})})});B.displayName="Dialog";var De=B;export{B as a,De as b};
//# sourceMappingURL=chunk-VZVUBHTH.js.map