UNPKG

@snowball-tech/fractal

Version:

Fractal's (Snowball's design system) React component library based on RadixUI and PandaCSS

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