@vibe/dialog 4.0.0-alpha.2 → 4.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
2
  import { type DialogProps } from "./Dialog.types";
3
- declare function Dialog({ id, "data-testid": dataTestId, children, content, position, moveBy, middleware: middlewareProp, startingEdge, showDelay, hideDelay, instantShowAndHide, getDynamicShowDelay, showTrigger, hideTrigger, showOnDialogEnter, showTriggerIgnoreClass, hideTriggerIgnoreClass, addKeyboardHideShowTriggersByDefault, shouldShowOnMount, disable, open, isOpen: isOpenProp, useDerivedStateFromProps, animationType, preventAnimationOnMount, tooltip, tooltipClassName, containerSelector, disableContainerScroll, zIndex, wrapperClassName, referenceWrapperClassName, referenceWrapperElement, onBlur: onBlurProp, onKeyDown: onKeyDownProp, onClick: onClickProp, onFocus: onFocusProp, onMouseDown: onMouseDownProp, onMouseEnter: onMouseEnterProp, onMouseLeave: onMouseLeaveProp, onContextMenu: onContextMenuProp, onDialogDidShow, onDialogDidHide, onClickOutside: onClickOutsideProp, onContentClick: onContentClickProp, hideWhenReferenceHidden, shouldCallbackOnMount, observeContentResize }: DialogProps): React.JSX.Element;
3
+ declare function Dialog({ id, "data-testid": dataTestId, children, content, position, moveBy, middleware: middlewareProp, startingEdge, showDelay, hideDelay, instantShowAndHide, getDynamicShowDelay, showTrigger, hideTrigger, showOnDialogEnter, showTriggerIgnoreClass, hideTriggerIgnoreClass, addKeyboardHideShowTriggersByDefault, shouldShowOnMount, disable, open, isOpen: isOpenProp, useDerivedStateFromProps, animationType, preventAnimationOnMount, tooltip, tooltipClassName, containerSelector, disableContainerScroll, zIndex, wrapperClassName, referenceWrapperClassName, referenceWrapperElement, onBlur: onBlurProp, onKeyDown: onKeyDownProp, onClick: onClickProp, onFocus: onFocusProp, onMouseDown: onMouseDownProp, onMouseEnter: onMouseEnterProp, onMouseLeave: onMouseLeaveProp, onContextMenu: onContextMenuProp, onDialogDidShow, onDialogDidHide, onClickOutside: onClickOutsideProp, onContentClick: onContentClickProp, hideWhenReferenceHidden, shouldCallbackOnMount, observeContentResize, enableNestedDialogLayer }: DialogProps): React.JSX.Element;
4
4
  export default Dialog;
@@ -1,2 +1,2 @@
1
- import e from"classnames";import n,{useState as t,useRef as r,useContext as o,useMemo as a,useCallback as l,useEffect as i}from"react";import{createPortal as s}from"react-dom";import{offset as u,flip as c,shift as m,arrow as d,hide as p,autoUpdate as f,useFloating as g}from"@floating-ui/react-dom";import{isFunction as y}from"es-toolkit";import{convertToArray as h,isInsideClass as v,chainFunctions as w,isClient as C,getTestId as b,ComponentDefaultTestId as D,chainRefFunctions as E,NOOP as k}from"@vibe/shared";import T from"./components/DialogContent/DialogContent.js";import{Refable as x}from"./components/Refable/Refable.js";import M from"./Dialog.module.scss.js";import{LayerContext as S,LayerProvider as O}from"@vibe/layer";function R({id:R,"data-testid":A,children:H,content:j,position:L="top",moveBy:F={main:0,secondary:0},middleware:N=[],startingEdge:I,showDelay:z=100,hideDelay:B=100,instantShowAndHide:K=!1,getDynamicShowDelay:W,showTrigger:q="mouseenter",hideTrigger:G="mouseleave",showOnDialogEnter:P=!1,showTriggerIgnoreClass:V,hideTriggerIgnoreClass:J,addKeyboardHideShowTriggersByDefault:Q=!0,shouldShowOnMount:U=!1,disable:X=!1,open:Y=!1,isOpen:Z,useDerivedStateFromProps:$=!1,animationType:_="expand",preventAnimationOnMount:ee=!1,tooltip:ne=!1,tooltipClassName:te,containerSelector:re,disableContainerScroll:oe,zIndex:ae,wrapperClassName:le,referenceWrapperClassName:ie,referenceWrapperElement:se,onBlur:ue,onKeyDown:ce,onClick:me,onFocus:de,onMouseDown:pe,onMouseEnter:fe,onMouseLeave:ge,onContextMenu:ye,onDialogDidShow:he=k,onDialogDidHide:ve=k,onClickOutside:we=k,onContentClick:Ce=k,hideWhenReferenceHidden:be=!1,shouldCallbackOnMount:De=!1,observeContentResize:Ee=!1}){var ke,Te;const[xe,Me]=t(U),[Se,Oe]=t(!1),[Re,Ae]=t(null),He=r(null),je=r(null),Le=r(null),Fe=r(null),Ne=n.Children.toArray(H).some((e=>n.isValidElement(e))),{layerRef:Ie}=o(S),ze=($?Z:xe)||Y,Be=a((()=>{const e=[],n=N.filter((e=>null!=e&&"object"==typeof e&&"function"==typeof e.fn)),t=n.some((e=>"offset"===e.name)),r=n.some((e=>"flip"===e.name)),o=n.some((e=>"shift"===e.name));return t||0===F.main&&0===F.secondary||e.push(u({mainAxis:F.main||0,crossAxis:F.secondary||0})),r||e.push(c()),o||e.push(m()),e.push(...n),ne&&e.push(d({element:Fe})),be&&e.push(p()),e}),[F.main,F.secondary,ne,be,N]),Ke=l(((e,n,t)=>f(e,n,t,{elementResize:Ee,layoutShift:!1})),[Ee]),{refs:We,floatingStyles:qe,placement:Ge,middlewareData:Pe}=g({placement:L,middleware:Be,whileElementsMounted:Ke,elements:{reference:Re}}),Ve=null!==(Te=null===(ke=Pe.hide)||void 0===ke?void 0:ke.referenceHidden)&&void 0!==Te&&Te,Je=l((e=>{const n=h(q);return!(!Q||"focus"!==e||!n.includes("mouseenter"))||n.includes(e)}),[q,Q]),Qe=l((e=>{const n=h(G);return!(!Q||"blur"!==e||!n.includes("mouseleave"))||n.includes(e)}),[G,Q]),Ue=l(((e,n,t={})=>{let r=z,o=t.preventAnimation;if(W){const e=W();r=e.showDelay||0,o=null!=o?o:e.preventAnimation}K?(he(e,n),Me(!0),Oe(!!o),He.current=null):He.current=setTimeout((()=>{he(e,n),He.current=null,Me(!0),Oe(!!o)}),r)}),[z,W,K,he]),Xe=l(((e,n)=>{K?(ve(e,n),Me(!1),je.current=null):je.current=setTimeout((()=>{ve(e,n),Me(!1),je.current=null}),B)}),[B,K,ve]),Ye=l(((e,n,t={})=>{X||(je.current&&(clearTimeout(je.current),je.current=null),He.current||Ue(e,n,t))}),[X,Ue]),Ze=l(((e,n)=>{He.current&&(clearTimeout(He.current),He.current=null),je.current||Xe(e,n)}),[Xe]),$e=l(((e,n,t)=>{if(n)return!Je(e)||ze||v(n,V)?Qe(e)&&!v(n,J)?Ze(t,e):void 0:Ye(t,e)}),[Je,Qe,ze,V,J,Ye,Ze]),_e=l((()=>{if(re){const e=document.querySelector(re);if(e instanceof Element)return e}return(null==Ie?void 0:Ie.current)||document.body}),[re,Ie]),en=l((e=>$e("mouseenter",e.target,e)),[$e]),nn=l((e=>$e("mouseleave",e.target,e)),[$e]),tn=l((e=>{e.button||$e("click",e.target,e)}),[$e]),rn=l((e=>{"Enter"===e.key&&$e("enter",e.target,e),"Tab"===e.key&&$e("tab",e.target,e)}),[$e]),on=l((e=>{e.button||$e("mousedown",e.target,e)}),[$e]),an=l((e=>$e("focus",e.target,e)),[$e]),ln=l((e=>{$e("blur",e.relatedTarget||e.target,e)}),[$e]),sn=l((e=>$e("esckey",e.target,e)),[$e]),un=l((e=>{(Je("contextmenu")&&!ze||Qe("contextmenu")&&ze)&&e.preventDefault(),$e("contextmenu",e.target,e)}),[ze,Je,Qe,$e]),cn=l((e=>{$e("clickoutside",e.target,e),we(e)}),[$e,we]),mn=l((e=>{P&&Ye(e,"DialogEnter")}),[P,Ye]),dn=l((e=>{P&&Ze(e,"DialogLeave")}),[P,Ze]),pn=l((e=>{$e("onContentClick",e.target,e),Ce(e)}),[$e,Ce]),fn=a((()=>w([ue,ln],!0)),[ue,ln]),gn=a((()=>w([ce,rn],!0)),[ce,rn]),yn=a((()=>w([me,tn],!0)),[me,tn]),hn=a((()=>w([de,an],!0)),[de,an]),vn=a((()=>w([pe,on],!0)),[pe,on]),wn=a((()=>w([fe,en],!0)),[fe,en]),Cn=a((()=>w([ge,nn],!0)),[ge,nn]),bn=a((()=>w([ye,un],!0)),[ye,un]),Dn=r();Dn.current=e=>{if(ze)switch(e.key){case"Escape":Ze(e,"esckey");break;case"Tab":$e("tab",e.target,e);break;case"Enter":$e("enter",e.target,e)}},i((()=>{De&&U&&he()}),[]),i((()=>()=>{He.current&&clearTimeout(He.current),je.current&&clearTimeout(je.current)}),[]),i((()=>{if(!C())return;const e=e=>{var n;return null===(n=Dn.current)||void 0===n?void 0:n.call(Dn,e)};return document.addEventListener("keyup",e),()=>document.removeEventListener("keyup",e)}),[]),i((()=>{if(be&&Ve&&ze){const e=new CustomEvent("onReferenceHidden");Xe(e,"onReferenceHidden")}}),[be,Ve,ze,Xe]);const En=A||b(D.DIALOG,R),kn=a((()=>{if(!Pe.arrow)return{};const{x:e,y:n}=Pe.arrow;return{left:null!=e?e+"px":"",top:null!=n?n+"px":"",transform:"rotate(45deg)"}}),[Pe.arrow]),Tn=a((()=>Object.assign(Ne?Object.assign({},qe):{},void 0!==ae&&{zIndex:ae})),[qe,ae,Ne]),xn=ee||Se?void 0:_,Mn=y(j)?j():j;if(!Mn)return n.createElement(n.Fragment,null,H);const Sn=E([We.setFloating,Le]),On=n.createElement(T,{"data-testid":En,isReferenceHidden:be&&Ve,onMouseEnter:mn,onMouseLeave:dn,onClickOutside:cn,onContextMenu:un,onEsc:sn,animationType:xn,position:Ge,wrapperClassName:le,startingEdge:I,isOpen:ze,showDelay:z,styleObject:Tn,ref:Sn,onClick:pn,hasTooltip:!!ne,containerSelector:re,disableContainerScroll:oe},Mn,ne&&n.createElement("div",{style:kn,ref:Fe,className:e(M.arrow,te),"data-placement":Ge}));return n.createElement(n.Fragment,null,n.createElement(x,{className:e(ie),wrapperElement:se,ref:Ae,onBlur:fn,onKeyDown:gn,onClick:yn,onFocus:hn,onMouseDown:vn,onMouseEnter:wn,onMouseLeave:Cn,onContextMenu:bn},H),C()&&ze&&s(n.createElement(O,{layerRef:Le},On),_e()))}export{R as default};
1
+ import e from"classnames";import n,{useState as t,useRef as r,useContext as o,useMemo as a,useCallback as l,useEffect as i}from"react";import{createPortal as s}from"react-dom";import{offset as u,flip as c,shift as m,arrow as d,hide as p,autoUpdate as f,useFloating as g}from"@floating-ui/react-dom";import{isFunction as y}from"es-toolkit";import{convertToArray as h,isInsideClass as v,chainFunctions as w,isClient as b,getTestId as C,ComponentDefaultTestId as D,chainRefFunctions as E,NOOP as k}from"@vibe/shared";import T from"./components/DialogContent/DialogContent.js";import{Refable as x}from"./components/Refable/Refable.js";import M from"./Dialog.module.scss.js";import{LayerContext as S,LayerProvider as O}from"@vibe/layer";function R({id:R,"data-testid":A,children:H,content:L,position:j="top",moveBy:N={main:0,secondary:0},middleware:F=[],startingEdge:I,showDelay:z=100,hideDelay:B=100,instantShowAndHide:K=!1,getDynamicShowDelay:W,showTrigger:q="mouseenter",hideTrigger:G="mouseleave",showOnDialogEnter:P=!1,showTriggerIgnoreClass:V,hideTriggerIgnoreClass:J,addKeyboardHideShowTriggersByDefault:Q=!0,shouldShowOnMount:U=!1,disable:X=!1,open:Y=!1,isOpen:Z,useDerivedStateFromProps:$=!1,animationType:_="expand",preventAnimationOnMount:ee=!1,tooltip:ne=!1,tooltipClassName:te,containerSelector:re,disableContainerScroll:oe,zIndex:ae,wrapperClassName:le,referenceWrapperClassName:ie,referenceWrapperElement:se,onBlur:ue,onKeyDown:ce,onClick:me,onFocus:de,onMouseDown:pe,onMouseEnter:fe,onMouseLeave:ge,onContextMenu:ye,onDialogDidShow:he=k,onDialogDidHide:ve=k,onClickOutside:we=k,onContentClick:be=k,hideWhenReferenceHidden:Ce=!1,shouldCallbackOnMount:De=!1,observeContentResize:Ee=!1,enableNestedDialogLayer:ke=!0}){var Te,xe;const[Me,Se]=t(U),[Oe,Re]=t(!1),[Ae,He]=t(null),Le=r(null),je=r(null),Ne=r(null),Fe=r(null),Ie=n.Children.toArray(H).some((e=>n.isValidElement(e))),{layerRef:ze}=o(S),Be=($?Z:Me)||Y,Ke=a((()=>{const e=[],n=F.filter((e=>null!=e&&"object"==typeof e&&"function"==typeof e.fn)),t=n.some((e=>"offset"===e.name)),r=n.some((e=>"flip"===e.name)),o=n.some((e=>"shift"===e.name));return t||0===N.main&&0===N.secondary||e.push(u({mainAxis:N.main||0,crossAxis:N.secondary||0})),r||e.push(c()),o||e.push(m()),e.push(...n),ne&&e.push(d({element:Fe})),Ce&&e.push(p()),e}),[N.main,N.secondary,ne,Ce,F]),We=l(((e,n,t)=>f(e,n,t,{elementResize:Ee,layoutShift:!1})),[Ee]),{refs:qe,floatingStyles:Ge,placement:Pe,middlewareData:Ve}=g({placement:j,middleware:Ke,whileElementsMounted:We,elements:{reference:Ae}}),Je=null!==(xe=null===(Te=Ve.hide)||void 0===Te?void 0:Te.referenceHidden)&&void 0!==xe&&xe,Qe=l((e=>{const n=h(q);return!(!Q||"focus"!==e||!n.includes("mouseenter"))||n.includes(e)}),[q,Q]),Ue=l((e=>{const n=h(G);return!(!Q||"blur"!==e||!n.includes("mouseleave"))||n.includes(e)}),[G,Q]),Xe=l(((e,n,t={})=>{let r=z,o=t.preventAnimation;if(W){const e=W();r=e.showDelay||0,o=null!=o?o:e.preventAnimation}K?(he(e,n),Se(!0),Re(!!o),Le.current=null):Le.current=setTimeout((()=>{he(e,n),Le.current=null,Se(!0),Re(!!o)}),r)}),[z,W,K,he]),Ye=l(((e,n)=>{K?(ve(e,n),Se(!1),je.current=null):je.current=setTimeout((()=>{ve(e,n),Se(!1),je.current=null}),B)}),[B,K,ve]),Ze=l(((e,n,t={})=>{X||(je.current&&(clearTimeout(je.current),je.current=null),Le.current||Xe(e,n,t))}),[X,Xe]),$e=l(((e,n)=>{Le.current&&(clearTimeout(Le.current),Le.current=null),je.current||Ye(e,n)}),[Ye]),_e=l(((e,n,t)=>{if(n)return!Qe(e)||Be||v(n,V)?Ue(e)&&!v(n,J)?$e(t,e):void 0:Ze(t,e)}),[Qe,Ue,Be,V,J,Ze,$e]),en=l((()=>{if(re){const e=document.querySelector(re);if(e instanceof Element)return e}return(null==ze?void 0:ze.current)||document.body}),[re,ze]),nn=l((e=>_e("mouseenter",e.target,e)),[_e]),tn=l((e=>_e("mouseleave",e.target,e)),[_e]),rn=l((e=>{e.button||_e("click",e.target,e)}),[_e]),on=l((e=>{"Enter"===e.key&&_e("enter",e.target,e),"Tab"===e.key&&_e("tab",e.target,e)}),[_e]),an=l((e=>{e.button||_e("mousedown",e.target,e)}),[_e]),ln=l((e=>_e("focus",e.target,e)),[_e]),sn=l((e=>{_e("blur",e.relatedTarget||e.target,e)}),[_e]),un=l((e=>_e("esckey",e.target,e)),[_e]),cn=l((e=>{(Qe("contextmenu")&&!Be||Ue("contextmenu")&&Be)&&e.preventDefault(),_e("contextmenu",e.target,e)}),[Be,Qe,Ue,_e]),mn=l((e=>{_e("clickoutside",e.target,e),we(e)}),[_e,we]),dn=l((e=>{P&&Ze(e,"DialogEnter")}),[P,Ze]),pn=l((e=>{P&&$e(e,"DialogLeave")}),[P,$e]),fn=l((e=>{_e("onContentClick",e.target,e),be(e)}),[_e,be]),gn=a((()=>w([ue,sn],!0)),[ue,sn]),yn=a((()=>w([ce,on],!0)),[ce,on]),hn=a((()=>w([me,rn],!0)),[me,rn]),vn=a((()=>w([de,ln],!0)),[de,ln]),wn=a((()=>w([pe,an],!0)),[pe,an]),bn=a((()=>w([fe,nn],!0)),[fe,nn]),Cn=a((()=>w([ge,tn],!0)),[ge,tn]),Dn=a((()=>w([ye,cn],!0)),[ye,cn]),En=r();En.current=e=>{if(Be)switch(e.key){case"Escape":$e(e,"esckey");break;case"Tab":_e("tab",e.target,e);break;case"Enter":_e("enter",e.target,e)}},i((()=>{De&&U&&he()}),[]),i((()=>()=>{Le.current&&clearTimeout(Le.current),je.current&&clearTimeout(je.current)}),[]),i((()=>{if(!b())return;const e=e=>{var n;return null===(n=En.current)||void 0===n?void 0:n.call(En,e)};return document.addEventListener("keyup",e),()=>document.removeEventListener("keyup",e)}),[]),i((()=>{if(Ce&&Je&&Be){const e=new CustomEvent("onReferenceHidden");Ye(e,"onReferenceHidden")}}),[Ce,Je,Be,Ye]);const kn=A||C(D.DIALOG,R),Tn=a((()=>{if(!Ve.arrow)return{};const{x:e,y:n}=Ve.arrow;return{left:null!=e?e+"px":"",top:null!=n?n+"px":"",transform:"rotate(45deg)"}}),[Ve.arrow]),xn=a((()=>Object.assign(Ie?Object.assign({},Ge):{},void 0!==ae&&{zIndex:ae})),[Ge,ae,Ie]),Mn=ee||Oe?void 0:_,Sn=y(L)?L():L;if(!Sn)return n.createElement(n.Fragment,null,H);const On=E([qe.setFloating,Ne]),Rn=n.createElement(T,{"data-testid":kn,isReferenceHidden:Ce&&Je,onMouseEnter:dn,onMouseLeave:pn,onClickOutside:mn,onContextMenu:cn,onEsc:un,animationType:Mn,position:Pe,wrapperClassName:le,startingEdge:I,isOpen:Be,showDelay:z,styleObject:xn,ref:On,onClick:fn,hasTooltip:!!ne,containerSelector:re,disableContainerScroll:oe},Sn,ne&&n.createElement("div",{style:Tn,ref:Fe,className:e(M.arrow,te),"data-placement":Pe}));return n.createElement(n.Fragment,null,n.createElement(x,{className:e(ie),wrapperElement:se,ref:He,onBlur:gn,onKeyDown:yn,onClick:hn,onFocus:vn,onMouseDown:wn,onMouseEnter:bn,onMouseLeave:Cn,onContextMenu:Dn},H),b()&&Be&&s(ke?n.createElement(O,{layerRef:Ne},Rn):Rn,en()))}export{R as default};
2
2
  //# sourceMappingURL=Dialog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Dialog.js","sources":["../../src/Dialog/Dialog.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport React, { useState, useEffect, useRef, useContext, useCallback, useMemo } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport {\n useFloating,\n offset,\n flip,\n shift,\n hide,\n arrow as arrowMiddleware,\n autoUpdate,\n type Placement,\n type Middleware\n} from \"@floating-ui/react-dom\";\nimport { isFunction } from \"es-toolkit\";\nimport {\n chainFunctions,\n chainRefFunctions,\n convertToArray,\n NOOP,\n isInsideClass,\n ComponentDefaultTestId,\n getTestId,\n isClient\n} from \"@vibe/shared\";\nimport DialogContent from \"./components/DialogContent/DialogContent\";\nimport { Refable } from \"./components/Refable/Refable\";\nimport styles from \"./Dialog.module.scss\";\nimport { type DialogTriggerEvent, type DialogEvent, type DialogProps } from \"./Dialog.types\";\nimport { LayerContext, LayerProvider } from \"@vibe/layer\";\n\nfunction Dialog({\n // Core props\n id,\n \"data-testid\": dataTestId,\n children,\n content,\n position = \"top\",\n moveBy = { main: 0, secondary: 0 },\n middleware: middlewareProp = [],\n startingEdge,\n showDelay = 100,\n hideDelay = 100,\n instantShowAndHide = false,\n getDynamicShowDelay,\n showTrigger = \"mouseenter\",\n hideTrigger = \"mouseleave\",\n showOnDialogEnter = false,\n showTriggerIgnoreClass,\n hideTriggerIgnoreClass,\n addKeyboardHideShowTriggersByDefault = true,\n shouldShowOnMount = false,\n disable = false,\n open = false,\n isOpen: isOpenProp,\n useDerivedStateFromProps = false,\n animationType = \"expand\",\n preventAnimationOnMount = false,\n tooltip = false,\n tooltipClassName,\n containerSelector,\n disableContainerScroll,\n zIndex,\n wrapperClassName,\n referenceWrapperClassName,\n referenceWrapperElement,\n onBlur: onBlurProp,\n onKeyDown: onKeyDownProp,\n onClick: onClickProp,\n onFocus: onFocusProp,\n onMouseDown: onMouseDownProp,\n onMouseEnter: onMouseEnterProp,\n onMouseLeave: onMouseLeaveProp,\n onContextMenu: onContextMenuProp,\n onDialogDidShow = NOOP,\n onDialogDidHide = NOOP,\n onClickOutside: onClickOutsideProp = NOOP,\n onContentClick: onContentClickProp = NOOP,\n hideWhenReferenceHidden = false,\n shouldCallbackOnMount = false,\n observeContentResize = false\n}: DialogProps) {\n const [isOpenState, setIsOpenState] = useState(shouldShowOnMount);\n const [preventAnimation, setPreventAnimation] = useState(false);\n const [referenceElement, setReferenceElement] = useState<HTMLElement | null>(null);\n\n const showTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const hideTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const arrowRef = useRef<HTMLDivElement>(null);\n\n // Check if children are valid React elements (Refable returns null for non-elements)\n const hasValidChildren = React.Children.toArray(children).some(child => React.isValidElement(child));\n\n const { layerRef } = useContext(LayerContext);\n\n // Derived state\n const isOpenInternal = useDerivedStateFromProps ? isOpenProp : isOpenState;\n const isShown = isOpenInternal || open;\n\n // Build middleware array for Floating UI\n const floatingMiddleware = useMemo<Middleware[]>(() => {\n const middlewareList: Middleware[] = [];\n\n // Get user-provided middleware (filter out invalid ones)\n const validMiddleware = middlewareProp.filter(\n (m): m is Middleware => m != null && typeof m === \"object\" && typeof m.fn === \"function\"\n );\n\n // Check if user provided their own middleware to override defaults\n const hasCustomOffset = validMiddleware.some(m => m.name === \"offset\");\n const hasCustomFlip = validMiddleware.some(m => m.name === \"flip\");\n const hasCustomShift = validMiddleware.some(m => m.name === \"shift\");\n\n // Offset middleware - skip if user provided their own\n if (!hasCustomOffset && (moveBy.main !== 0 || moveBy.secondary !== 0)) {\n middlewareList.push(offset({ mainAxis: moveBy.main || 0, crossAxis: moveBy.secondary || 0 }));\n }\n\n // Core positioning middleware - skip if user provided their own\n if (!hasCustomFlip) {\n middlewareList.push(flip());\n }\n if (!hasCustomShift) {\n middlewareList.push(shift());\n }\n\n // Add user-provided middleware\n middlewareList.push(...validMiddleware);\n\n // Arrow middleware - pass ref directly, Floating UI handles null refs\n if (tooltip) {\n middlewareList.push(arrowMiddleware({ element: arrowRef }));\n }\n\n // Hide middleware for detecting when reference is hidden\n if (hideWhenReferenceHidden) {\n middlewareList.push(hide());\n }\n\n return middlewareList;\n }, [moveBy.main, moveBy.secondary, tooltip, hideWhenReferenceHidden, middlewareProp]);\n\n // Configure autoUpdate for position tracking\n const whileElementsMounted = useCallback(\n (reference: HTMLElement, floating: HTMLElement, update: () => void) => {\n return autoUpdate(reference, floating, update, {\n elementResize: observeContentResize,\n layoutShift: false\n });\n },\n [observeContentResize]\n );\n\n // Use Floating UI hook\n const { refs, floatingStyles, placement, middlewareData } = useFloating({\n placement: position as Placement,\n middleware: floatingMiddleware,\n whileElementsMounted,\n elements: {\n reference: referenceElement\n }\n });\n\n // Check if reference is hidden (from hide middleware)\n const isReferenceHidden = middlewareData.hide?.referenceHidden ?? false;\n\n const isShowTrigger = useCallback(\n (eventName: DialogTriggerEvent) => {\n const showTriggersArray = convertToArray(showTrigger);\n if (addKeyboardHideShowTriggersByDefault && eventName === \"focus\" && showTriggersArray.includes(\"mouseenter\")) {\n return true;\n }\n return showTriggersArray.includes(eventName);\n },\n [showTrigger, addKeyboardHideShowTriggersByDefault]\n );\n\n const isHideTrigger = useCallback(\n (eventName: DialogTriggerEvent) => {\n const hideTriggersArray = convertToArray(hideTrigger);\n if (addKeyboardHideShowTriggersByDefault && eventName === \"blur\" && hideTriggersArray.includes(\"mouseleave\")) {\n return true;\n }\n return hideTriggersArray.includes(eventName);\n },\n [hideTrigger, addKeyboardHideShowTriggersByDefault]\n );\n\n const showDialog = useCallback(\n (event: DialogEvent, eventName: DialogTriggerEvent | string, options: { preventAnimation?: boolean } = {}) => {\n let finalShowDelay = showDelay;\n let preventAnimationValue = options.preventAnimation;\n if (getDynamicShowDelay) {\n const dynamicDelayObj = getDynamicShowDelay();\n finalShowDelay = dynamicDelayObj.showDelay || 0;\n preventAnimationValue = preventAnimationValue ?? dynamicDelayObj.preventAnimation;\n }\n\n if (instantShowAndHide) {\n onDialogDidShow(event, eventName);\n setIsOpenState(true);\n setPreventAnimation(!!preventAnimationValue);\n showTimeoutRef.current = null;\n } else {\n showTimeoutRef.current = setTimeout(() => {\n onDialogDidShow(event, eventName);\n showTimeoutRef.current = null;\n setIsOpenState(true);\n setPreventAnimation(!!preventAnimationValue);\n }, finalShowDelay);\n }\n },\n [showDelay, getDynamicShowDelay, instantShowAndHide, onDialogDidShow]\n );\n\n const hideDialog = useCallback(\n (event: DialogEvent, eventName: DialogTriggerEvent | string) => {\n if (instantShowAndHide) {\n onDialogDidHide(event, eventName);\n setIsOpenState(false);\n hideTimeoutRef.current = null;\n } else {\n hideTimeoutRef.current = setTimeout(() => {\n onDialogDidHide(event, eventName);\n setIsOpenState(false);\n hideTimeoutRef.current = null;\n }, hideDelay);\n }\n },\n [hideDelay, instantShowAndHide, onDialogDidHide]\n );\n\n const showDialogIfNeeded = useCallback(\n (event: DialogEvent, eventName: DialogTriggerEvent | string, options = {}) => {\n if (disable) {\n return;\n }\n\n if (hideTimeoutRef.current) {\n clearTimeout(hideTimeoutRef.current);\n hideTimeoutRef.current = null;\n }\n\n if (!showTimeoutRef.current) {\n showDialog(event, eventName, options);\n }\n },\n [disable, showDialog]\n );\n\n const hideDialogIfNeeded = useCallback(\n (event: DialogEvent, eventName: DialogTriggerEvent | string) => {\n if (showTimeoutRef.current) {\n clearTimeout(showTimeoutRef.current);\n showTimeoutRef.current = null;\n }\n\n if (!hideTimeoutRef.current) {\n hideDialog(event, eventName);\n }\n },\n [hideDialog]\n );\n\n // Event handling\n const handleEvent = useCallback(\n (eventName: DialogTriggerEvent, target: EventTarget | null, event: DialogEvent) => {\n if (!target) return; // Guard against null targets (e.g., when focus leaves the document)\n if (isShowTrigger(eventName) && !isShown && !isInsideClass(target as HTMLElement, showTriggerIgnoreClass)) {\n return showDialogIfNeeded(event, eventName);\n }\n\n if (isHideTrigger(eventName) && !isInsideClass(target as HTMLElement, hideTriggerIgnoreClass)) {\n return hideDialogIfNeeded(event, eventName);\n }\n },\n [\n isShowTrigger,\n isHideTrigger,\n isShown,\n showTriggerIgnoreClass,\n hideTriggerIgnoreClass,\n showDialogIfNeeded,\n hideDialogIfNeeded\n ]\n );\n\n const getContainer = useCallback(() => {\n if (containerSelector) {\n const containerElement = document.querySelector(containerSelector);\n if (containerElement instanceof Element) {\n return containerElement;\n }\n }\n return layerRef?.current || document.body;\n }, [containerSelector, layerRef]);\n\n // Memoized event handlers to prevent unnecessary re-renders\n const onMouseEnter = useCallback((e: React.MouseEvent) => handleEvent(\"mouseenter\", e.target, e), [handleEvent]);\n const onMouseLeave = useCallback((e: React.MouseEvent) => handleEvent(\"mouseleave\", e.target, e), [handleEvent]);\n const onClick = useCallback(\n (e: React.MouseEvent) => {\n if (e.button) return;\n handleEvent(\"click\", e.target, e);\n },\n [handleEvent]\n );\n const onKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n // Handle element-level keyboard events for triggers\n if (event.key === \"Enter\") handleEvent(\"enter\", event.target, event);\n if (event.key === \"Tab\") handleEvent(\"tab\", event.target, event);\n },\n [handleEvent]\n );\n\n const onMouseDown = useCallback(\n (e: React.MouseEvent) => {\n if (e.button) return;\n handleEvent(\"mousedown\", e.target, e);\n },\n [handleEvent]\n );\n const onFocus = useCallback((e: React.FocusEvent) => handleEvent(\"focus\", e.target, e), [handleEvent]);\n const onBlur = useCallback(\n (e: React.FocusEvent) => {\n const target = e.relatedTarget || e.target;\n handleEvent(\"blur\", target, e);\n },\n [handleEvent]\n );\n const onEsc = useCallback((e: React.KeyboardEvent) => handleEvent(\"esckey\", e.target, e), [handleEvent]);\n const onContextMenu = useCallback(\n (e: React.MouseEvent) => {\n if ((isShowTrigger(\"contextmenu\") && !isShown) || (isHideTrigger(\"contextmenu\") && isShown)) {\n e.preventDefault();\n }\n handleEvent(\"contextmenu\", e.target, e);\n },\n [isShown, isShowTrigger, isHideTrigger, handleEvent]\n );\n\n const onClickOutside = useCallback(\n (event: React.MouseEvent) => {\n handleEvent(\"clickoutside\", event.target, event);\n onClickOutsideProp(event);\n },\n [handleEvent, onClickOutsideProp]\n );\n\n const onDialogEnter = useCallback(\n (event: React.MouseEvent) => {\n if (showOnDialogEnter) showDialogIfNeeded(event, \"DialogEnter\");\n },\n [showOnDialogEnter, showDialogIfNeeded]\n );\n\n const onDialogLeave = useCallback(\n (event: React.MouseEvent) => {\n if (showOnDialogEnter) hideDialogIfNeeded(event, \"DialogLeave\");\n },\n [showOnDialogEnter, hideDialogIfNeeded]\n );\n\n const onContentClick = useCallback(\n (e: React.MouseEvent) => {\n handleEvent(\"onContentClick\", e.target, e);\n onContentClickProp(e);\n },\n [handleEvent, onContentClickProp]\n );\n\n // Memoized chained event handlers to prevent Refable children re-renders\n const chainedOnBlur = useMemo(() => chainFunctions([onBlurProp, onBlur], true), [onBlurProp, onBlur]);\n const chainedOnKeyDown = useMemo(() => chainFunctions([onKeyDownProp, onKeyDown], true), [onKeyDownProp, onKeyDown]);\n const chainedOnClick = useMemo(() => chainFunctions([onClickProp, onClick], true), [onClickProp, onClick]);\n const chainedOnFocus = useMemo(() => chainFunctions([onFocusProp, onFocus], true), [onFocusProp, onFocus]);\n const chainedOnMouseDown = useMemo(\n () => chainFunctions([onMouseDownProp, onMouseDown], true),\n [onMouseDownProp, onMouseDown]\n );\n const chainedOnMouseEnter = useMemo(\n () => chainFunctions([onMouseEnterProp, onMouseEnter], true),\n [onMouseEnterProp, onMouseEnter]\n );\n const chainedOnMouseLeave = useMemo(\n () => chainFunctions([onMouseLeaveProp, onMouseLeave], true),\n [onMouseLeaveProp, onMouseLeave]\n );\n const chainedOnContextMenu = useMemo(\n () => chainFunctions([onContextMenuProp, onContextMenu], true),\n [onContextMenuProp, onContextMenu]\n );\n\n // Document-level keyboard handler using stable ref pattern\n // Must handle Escape, Tab, and Enter at document level to match old behavior\n const closeDialogOnEscapeRef = useRef<(event: KeyboardEvent) => void>();\n closeDialogOnEscapeRef.current = (event: KeyboardEvent) => {\n if (!isShown) return;\n\n switch (event.key) {\n case \"Escape\":\n hideDialogIfNeeded(event, \"esckey\");\n break;\n case \"Tab\":\n handleEvent(\"tab\", event.target, event);\n break;\n case \"Enter\":\n handleEvent(\"enter\", event.target, event);\n break;\n }\n };\n\n // Effects\n\n // Callback on mount\n useEffect(() => {\n if (shouldCallbackOnMount && shouldShowOnMount) {\n onDialogDidShow();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // Cleanup timeouts on unmount\n useEffect(() => {\n return () => {\n if (showTimeoutRef.current) clearTimeout(showTimeoutRef.current);\n if (hideTimeoutRef.current) clearTimeout(hideTimeoutRef.current);\n };\n }, []);\n\n // Document keyboard listener (stable reference via ref)\n useEffect(() => {\n if (!isClient()) return;\n\n const handler = (event: KeyboardEvent) => closeDialogOnEscapeRef.current?.(event);\n document.addEventListener(\"keyup\", handler);\n return () => document.removeEventListener(\"keyup\", handler);\n }, []);\n\n // Handle reference hidden state\n useEffect(() => {\n if (hideWhenReferenceHidden && isReferenceHidden && isShown) {\n const event = new CustomEvent(\"onReferenceHidden\");\n hideDialog(event, \"onReferenceHidden\");\n }\n }, [hideWhenReferenceHidden, isReferenceHidden, isShown, hideDialog]);\n\n // Computed values\n const overrideDataTestId = dataTestId || getTestId(ComponentDefaultTestId.DIALOG, id);\n\n const arrowStyles = useMemo<React.CSSProperties>(() => {\n if (!middlewareData.arrow) return {};\n const { x, y } = middlewareData.arrow;\n return {\n left: x != null ? `${x}px` : \"\",\n top: y != null ? `${y}px` : \"\",\n transform: \"rotate(45deg)\"\n };\n }, [middlewareData.arrow]);\n\n // Skip Floating UI positioning when no children (e.g. floating Tipseen) — let CSS handle it\n const finalFloatingStyles = useMemo<React.CSSProperties>(\n () =>\n hasValidChildren\n ? { ...floatingStyles, ...(zIndex !== undefined && { zIndex }) }\n : { ...(zIndex !== undefined && { zIndex }) },\n [floatingStyles, zIndex, hasValidChildren]\n );\n\n const animationTypeCalculated = preventAnimationOnMount || preventAnimation ? undefined : animationType;\n const contentRendered = isFunction(content) ? content() : content;\n\n // Early return if no content - wrap in fragment for type safety\n if (!contentRendered) {\n return <>{children}</>;\n }\n\n const mergedFloatingRef = chainRefFunctions([refs.setFloating, containerRef]);\n\n const dialogContent = (\n <DialogContent\n data-testid={overrideDataTestId}\n isReferenceHidden={hideWhenReferenceHidden && isReferenceHidden}\n onMouseEnter={onDialogEnter}\n onMouseLeave={onDialogLeave}\n onClickOutside={onClickOutside}\n onContextMenu={onContextMenu}\n onEsc={onEsc}\n animationType={animationTypeCalculated}\n position={placement}\n wrapperClassName={wrapperClassName}\n startingEdge={startingEdge}\n isOpen={isShown}\n showDelay={showDelay}\n styleObject={finalFloatingStyles}\n ref={mergedFloatingRef}\n onClick={onContentClick}\n hasTooltip={!!tooltip}\n containerSelector={containerSelector}\n disableContainerScroll={disableContainerScroll}\n >\n {contentRendered}\n {tooltip && (\n <div\n style={arrowStyles}\n ref={arrowRef}\n className={cx(styles.arrow, tooltipClassName)}\n data-placement={placement}\n />\n )}\n </DialogContent>\n );\n\n return (\n <>\n <Refable\n className={cx(referenceWrapperClassName)}\n wrapperElement={referenceWrapperElement}\n ref={setReferenceElement}\n onBlur={chainedOnBlur}\n onKeyDown={chainedOnKeyDown}\n onClick={chainedOnClick}\n onFocus={chainedOnFocus}\n onMouseDown={chainedOnMouseDown}\n onMouseEnter={chainedOnMouseEnter}\n onMouseLeave={chainedOnMouseLeave}\n onContextMenu={chainedOnContextMenu}\n >\n {children}\n </Refable>\n {isClient() &&\n isShown &&\n createPortal(<LayerProvider layerRef={containerRef}>{dialogContent}</LayerProvider>, getContainer())}\n </>\n );\n}\n\nexport default Dialog;\n"],"names":["Dialog","id","dataTestId","children","content","position","moveBy","main","secondary","middleware","middlewareProp","startingEdge","showDelay","hideDelay","instantShowAndHide","getDynamicShowDelay","showTrigger","hideTrigger","showOnDialogEnter","showTriggerIgnoreClass","hideTriggerIgnoreClass","addKeyboardHideShowTriggersByDefault","shouldShowOnMount","disable","open","isOpen","isOpenProp","useDerivedStateFromProps","animationType","preventAnimationOnMount","tooltip","tooltipClassName","containerSelector","disableContainerScroll","zIndex","wrapperClassName","referenceWrapperClassName","referenceWrapperElement","onBlur","onBlurProp","onKeyDown","onKeyDownProp","onClick","onClickProp","onFocus","onFocusProp","onMouseDown","onMouseDownProp","onMouseEnter","onMouseEnterProp","onMouseLeave","onMouseLeaveProp","onContextMenu","onContextMenuProp","onDialogDidShow","NOOP","onDialogDidHide","onClickOutside","onClickOutsideProp","onContentClick","onContentClickProp","hideWhenReferenceHidden","shouldCallbackOnMount","observeContentResize","isOpenState","setIsOpenState","useState","preventAnimation","setPreventAnimation","referenceElement","setReferenceElement","showTimeoutRef","useRef","hideTimeoutRef","containerRef","arrowRef","hasValidChildren","React","Children","toArray","some","child","isValidElement","layerRef","useContext","LayerContext","isShown","floatingMiddleware","useMemo","middlewareList","validMiddleware","filter","m","fn","hasCustomOffset","name","hasCustomFlip","hasCustomShift","push","offset","mainAxis","crossAxis","flip","shift","arrowMiddleware","element","hide","whileElementsMounted","useCallback","reference","floating","update","autoUpdate","elementResize","layoutShift","refs","floatingStyles","placement","middlewareData","useFloating","elements","isReferenceHidden","_b","_a","referenceHidden","isShowTrigger","eventName","showTriggersArray","convertToArray","includes","isHideTrigger","hideTriggersArray","showDialog","event","options","finalShowDelay","preventAnimationValue","dynamicDelayObj","current","setTimeout","hideDialog","showDialogIfNeeded","clearTimeout","hideDialogIfNeeded","handleEvent","target","isInsideClass","getContainer","containerElement","document","querySelector","Element","body","e","button","key","relatedTarget","onEsc","preventDefault","onDialogEnter","onDialogLeave","chainedOnBlur","chainFunctions","chainedOnKeyDown","chainedOnClick","chainedOnFocus","chainedOnMouseDown","chainedOnMouseEnter","chainedOnMouseLeave","chainedOnContextMenu","closeDialogOnEscapeRef","useEffect","isClient","handler","call","addEventListener","removeEventListener","CustomEvent","overrideDataTestId","getTestId","ComponentDefaultTestId","DIALOG","arrowStyles","arrow","x","y","left","top","transform","finalFloatingStyles","Object","assign","undefined","animationTypeCalculated","contentRendered","isFunction","createElement","Fragment","mergedFloatingRef","chainRefFunctions","setFloating","dialogContent","DialogContent","styleObject","ref","hasTooltip","style","className","cx","styles","Refable","wrapperElement","createPortal","LayerProvider"],"mappings":"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"}
1
+ {"version":3,"file":"Dialog.js","sources":["../../src/Dialog/Dialog.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport React, { useState, useEffect, useRef, useContext, useCallback, useMemo } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport {\n useFloating,\n offset,\n flip,\n shift,\n hide,\n arrow as arrowMiddleware,\n autoUpdate,\n type Placement,\n type Middleware\n} from \"@floating-ui/react-dom\";\nimport { isFunction } from \"es-toolkit\";\nimport {\n chainFunctions,\n chainRefFunctions,\n convertToArray,\n NOOP,\n isInsideClass,\n ComponentDefaultTestId,\n getTestId,\n isClient\n} from \"@vibe/shared\";\nimport DialogContent from \"./components/DialogContent/DialogContent\";\nimport { Refable } from \"./components/Refable/Refable\";\nimport styles from \"./Dialog.module.scss\";\nimport { type DialogTriggerEvent, type DialogEvent, type DialogProps } from \"./Dialog.types\";\nimport { LayerContext, LayerProvider } from \"@vibe/layer\";\n\nfunction Dialog({\n // Core props\n id,\n \"data-testid\": dataTestId,\n children,\n content,\n position = \"top\",\n moveBy = { main: 0, secondary: 0 },\n middleware: middlewareProp = [],\n startingEdge,\n showDelay = 100,\n hideDelay = 100,\n instantShowAndHide = false,\n getDynamicShowDelay,\n showTrigger = \"mouseenter\",\n hideTrigger = \"mouseleave\",\n showOnDialogEnter = false,\n showTriggerIgnoreClass,\n hideTriggerIgnoreClass,\n addKeyboardHideShowTriggersByDefault = true,\n shouldShowOnMount = false,\n disable = false,\n open = false,\n isOpen: isOpenProp,\n useDerivedStateFromProps = false,\n animationType = \"expand\",\n preventAnimationOnMount = false,\n tooltip = false,\n tooltipClassName,\n containerSelector,\n disableContainerScroll,\n zIndex,\n wrapperClassName,\n referenceWrapperClassName,\n referenceWrapperElement,\n onBlur: onBlurProp,\n onKeyDown: onKeyDownProp,\n onClick: onClickProp,\n onFocus: onFocusProp,\n onMouseDown: onMouseDownProp,\n onMouseEnter: onMouseEnterProp,\n onMouseLeave: onMouseLeaveProp,\n onContextMenu: onContextMenuProp,\n onDialogDidShow = NOOP,\n onDialogDidHide = NOOP,\n onClickOutside: onClickOutsideProp = NOOP,\n onContentClick: onContentClickProp = NOOP,\n hideWhenReferenceHidden = false,\n shouldCallbackOnMount = false,\n observeContentResize = false,\n enableNestedDialogLayer = true\n}: DialogProps) {\n const [isOpenState, setIsOpenState] = useState(shouldShowOnMount);\n const [preventAnimation, setPreventAnimation] = useState(false);\n const [referenceElement, setReferenceElement] = useState<HTMLElement | null>(null);\n\n const showTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const hideTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const arrowRef = useRef<HTMLDivElement>(null);\n\n // Check if children are valid React elements (Refable returns null for non-elements)\n const hasValidChildren = React.Children.toArray(children).some(child => React.isValidElement(child));\n\n const { layerRef } = useContext(LayerContext);\n\n // Derived state\n const isOpenInternal = useDerivedStateFromProps ? isOpenProp : isOpenState;\n const isShown = isOpenInternal || open;\n\n // Build middleware array for Floating UI\n const floatingMiddleware = useMemo<Middleware[]>(() => {\n const middlewareList: Middleware[] = [];\n\n // Get user-provided middleware (filter out invalid ones)\n const validMiddleware = middlewareProp.filter(\n (m): m is Middleware => m != null && typeof m === \"object\" && typeof m.fn === \"function\"\n );\n\n // Check if user provided their own middleware to override defaults\n const hasCustomOffset = validMiddleware.some(m => m.name === \"offset\");\n const hasCustomFlip = validMiddleware.some(m => m.name === \"flip\");\n const hasCustomShift = validMiddleware.some(m => m.name === \"shift\");\n\n // Offset middleware - skip if user provided their own\n if (!hasCustomOffset && (moveBy.main !== 0 || moveBy.secondary !== 0)) {\n middlewareList.push(offset({ mainAxis: moveBy.main || 0, crossAxis: moveBy.secondary || 0 }));\n }\n\n // Core positioning middleware - skip if user provided their own\n if (!hasCustomFlip) {\n middlewareList.push(flip());\n }\n if (!hasCustomShift) {\n middlewareList.push(shift());\n }\n\n // Add user-provided middleware\n middlewareList.push(...validMiddleware);\n\n // Arrow middleware - pass ref directly, Floating UI handles null refs\n if (tooltip) {\n middlewareList.push(arrowMiddleware({ element: arrowRef }));\n }\n\n // Hide middleware for detecting when reference is hidden\n if (hideWhenReferenceHidden) {\n middlewareList.push(hide());\n }\n\n return middlewareList;\n }, [moveBy.main, moveBy.secondary, tooltip, hideWhenReferenceHidden, middlewareProp]);\n\n // Configure autoUpdate for position tracking\n const whileElementsMounted = useCallback(\n (reference: HTMLElement, floating: HTMLElement, update: () => void) => {\n return autoUpdate(reference, floating, update, {\n elementResize: observeContentResize,\n layoutShift: false\n });\n },\n [observeContentResize]\n );\n\n // Use Floating UI hook\n const { refs, floatingStyles, placement, middlewareData } = useFloating({\n placement: position as Placement,\n middleware: floatingMiddleware,\n whileElementsMounted,\n elements: {\n reference: referenceElement\n }\n });\n\n // Check if reference is hidden (from hide middleware)\n const isReferenceHidden = middlewareData.hide?.referenceHidden ?? false;\n\n const isShowTrigger = useCallback(\n (eventName: DialogTriggerEvent) => {\n const showTriggersArray = convertToArray(showTrigger);\n if (addKeyboardHideShowTriggersByDefault && eventName === \"focus\" && showTriggersArray.includes(\"mouseenter\")) {\n return true;\n }\n return showTriggersArray.includes(eventName);\n },\n [showTrigger, addKeyboardHideShowTriggersByDefault]\n );\n\n const isHideTrigger = useCallback(\n (eventName: DialogTriggerEvent) => {\n const hideTriggersArray = convertToArray(hideTrigger);\n if (addKeyboardHideShowTriggersByDefault && eventName === \"blur\" && hideTriggersArray.includes(\"mouseleave\")) {\n return true;\n }\n return hideTriggersArray.includes(eventName);\n },\n [hideTrigger, addKeyboardHideShowTriggersByDefault]\n );\n\n const showDialog = useCallback(\n (event: DialogEvent, eventName: DialogTriggerEvent | string, options: { preventAnimation?: boolean } = {}) => {\n let finalShowDelay = showDelay;\n let preventAnimationValue = options.preventAnimation;\n if (getDynamicShowDelay) {\n const dynamicDelayObj = getDynamicShowDelay();\n finalShowDelay = dynamicDelayObj.showDelay || 0;\n preventAnimationValue = preventAnimationValue ?? dynamicDelayObj.preventAnimation;\n }\n\n if (instantShowAndHide) {\n onDialogDidShow(event, eventName);\n setIsOpenState(true);\n setPreventAnimation(!!preventAnimationValue);\n showTimeoutRef.current = null;\n } else {\n showTimeoutRef.current = setTimeout(() => {\n onDialogDidShow(event, eventName);\n showTimeoutRef.current = null;\n setIsOpenState(true);\n setPreventAnimation(!!preventAnimationValue);\n }, finalShowDelay);\n }\n },\n [showDelay, getDynamicShowDelay, instantShowAndHide, onDialogDidShow]\n );\n\n const hideDialog = useCallback(\n (event: DialogEvent, eventName: DialogTriggerEvent | string) => {\n if (instantShowAndHide) {\n onDialogDidHide(event, eventName);\n setIsOpenState(false);\n hideTimeoutRef.current = null;\n } else {\n hideTimeoutRef.current = setTimeout(() => {\n onDialogDidHide(event, eventName);\n setIsOpenState(false);\n hideTimeoutRef.current = null;\n }, hideDelay);\n }\n },\n [hideDelay, instantShowAndHide, onDialogDidHide]\n );\n\n const showDialogIfNeeded = useCallback(\n (event: DialogEvent, eventName: DialogTriggerEvent | string, options = {}) => {\n if (disable) {\n return;\n }\n\n if (hideTimeoutRef.current) {\n clearTimeout(hideTimeoutRef.current);\n hideTimeoutRef.current = null;\n }\n\n if (!showTimeoutRef.current) {\n showDialog(event, eventName, options);\n }\n },\n [disable, showDialog]\n );\n\n const hideDialogIfNeeded = useCallback(\n (event: DialogEvent, eventName: DialogTriggerEvent | string) => {\n if (showTimeoutRef.current) {\n clearTimeout(showTimeoutRef.current);\n showTimeoutRef.current = null;\n }\n\n if (!hideTimeoutRef.current) {\n hideDialog(event, eventName);\n }\n },\n [hideDialog]\n );\n\n // Event handling\n const handleEvent = useCallback(\n (eventName: DialogTriggerEvent, target: EventTarget | null, event: DialogEvent) => {\n if (!target) return; // Guard against null targets (e.g., when focus leaves the document)\n if (isShowTrigger(eventName) && !isShown && !isInsideClass(target as HTMLElement, showTriggerIgnoreClass)) {\n return showDialogIfNeeded(event, eventName);\n }\n\n if (isHideTrigger(eventName) && !isInsideClass(target as HTMLElement, hideTriggerIgnoreClass)) {\n return hideDialogIfNeeded(event, eventName);\n }\n },\n [\n isShowTrigger,\n isHideTrigger,\n isShown,\n showTriggerIgnoreClass,\n hideTriggerIgnoreClass,\n showDialogIfNeeded,\n hideDialogIfNeeded\n ]\n );\n\n const getContainer = useCallback(() => {\n if (containerSelector) {\n const containerElement = document.querySelector(containerSelector);\n if (containerElement instanceof Element) {\n return containerElement;\n }\n }\n return layerRef?.current || document.body;\n }, [containerSelector, layerRef]);\n\n // Memoized event handlers to prevent unnecessary re-renders\n const onMouseEnter = useCallback((e: React.MouseEvent) => handleEvent(\"mouseenter\", e.target, e), [handleEvent]);\n const onMouseLeave = useCallback((e: React.MouseEvent) => handleEvent(\"mouseleave\", e.target, e), [handleEvent]);\n const onClick = useCallback(\n (e: React.MouseEvent) => {\n if (e.button) return;\n handleEvent(\"click\", e.target, e);\n },\n [handleEvent]\n );\n const onKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n // Handle element-level keyboard events for triggers\n if (event.key === \"Enter\") handleEvent(\"enter\", event.target, event);\n if (event.key === \"Tab\") handleEvent(\"tab\", event.target, event);\n },\n [handleEvent]\n );\n\n const onMouseDown = useCallback(\n (e: React.MouseEvent) => {\n if (e.button) return;\n handleEvent(\"mousedown\", e.target, e);\n },\n [handleEvent]\n );\n const onFocus = useCallback((e: React.FocusEvent) => handleEvent(\"focus\", e.target, e), [handleEvent]);\n const onBlur = useCallback(\n (e: React.FocusEvent) => {\n const target = e.relatedTarget || e.target;\n handleEvent(\"blur\", target, e);\n },\n [handleEvent]\n );\n const onEsc = useCallback((e: React.KeyboardEvent) => handleEvent(\"esckey\", e.target, e), [handleEvent]);\n const onContextMenu = useCallback(\n (e: React.MouseEvent) => {\n if ((isShowTrigger(\"contextmenu\") && !isShown) || (isHideTrigger(\"contextmenu\") && isShown)) {\n e.preventDefault();\n }\n handleEvent(\"contextmenu\", e.target, e);\n },\n [isShown, isShowTrigger, isHideTrigger, handleEvent]\n );\n\n const onClickOutside = useCallback(\n (event: React.MouseEvent) => {\n handleEvent(\"clickoutside\", event.target, event);\n onClickOutsideProp(event);\n },\n [handleEvent, onClickOutsideProp]\n );\n\n const onDialogEnter = useCallback(\n (event: React.MouseEvent) => {\n if (showOnDialogEnter) showDialogIfNeeded(event, \"DialogEnter\");\n },\n [showOnDialogEnter, showDialogIfNeeded]\n );\n\n const onDialogLeave = useCallback(\n (event: React.MouseEvent) => {\n if (showOnDialogEnter) hideDialogIfNeeded(event, \"DialogLeave\");\n },\n [showOnDialogEnter, hideDialogIfNeeded]\n );\n\n const onContentClick = useCallback(\n (e: React.MouseEvent) => {\n handleEvent(\"onContentClick\", e.target, e);\n onContentClickProp(e);\n },\n [handleEvent, onContentClickProp]\n );\n\n // Memoized chained event handlers to prevent Refable children re-renders\n const chainedOnBlur = useMemo(() => chainFunctions([onBlurProp, onBlur], true), [onBlurProp, onBlur]);\n const chainedOnKeyDown = useMemo(() => chainFunctions([onKeyDownProp, onKeyDown], true), [onKeyDownProp, onKeyDown]);\n const chainedOnClick = useMemo(() => chainFunctions([onClickProp, onClick], true), [onClickProp, onClick]);\n const chainedOnFocus = useMemo(() => chainFunctions([onFocusProp, onFocus], true), [onFocusProp, onFocus]);\n const chainedOnMouseDown = useMemo(\n () => chainFunctions([onMouseDownProp, onMouseDown], true),\n [onMouseDownProp, onMouseDown]\n );\n const chainedOnMouseEnter = useMemo(\n () => chainFunctions([onMouseEnterProp, onMouseEnter], true),\n [onMouseEnterProp, onMouseEnter]\n );\n const chainedOnMouseLeave = useMemo(\n () => chainFunctions([onMouseLeaveProp, onMouseLeave], true),\n [onMouseLeaveProp, onMouseLeave]\n );\n const chainedOnContextMenu = useMemo(\n () => chainFunctions([onContextMenuProp, onContextMenu], true),\n [onContextMenuProp, onContextMenu]\n );\n\n // Document-level keyboard handler using stable ref pattern\n // Must handle Escape, Tab, and Enter at document level to match old behavior\n const closeDialogOnEscapeRef = useRef<(event: KeyboardEvent) => void>();\n closeDialogOnEscapeRef.current = (event: KeyboardEvent) => {\n if (!isShown) return;\n\n switch (event.key) {\n case \"Escape\":\n hideDialogIfNeeded(event, \"esckey\");\n break;\n case \"Tab\":\n handleEvent(\"tab\", event.target, event);\n break;\n case \"Enter\":\n handleEvent(\"enter\", event.target, event);\n break;\n }\n };\n\n // Effects\n\n // Callback on mount\n useEffect(() => {\n if (shouldCallbackOnMount && shouldShowOnMount) {\n onDialogDidShow();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // Cleanup timeouts on unmount\n useEffect(() => {\n return () => {\n if (showTimeoutRef.current) clearTimeout(showTimeoutRef.current);\n if (hideTimeoutRef.current) clearTimeout(hideTimeoutRef.current);\n };\n }, []);\n\n // Document keyboard listener (stable reference via ref)\n useEffect(() => {\n if (!isClient()) return;\n\n const handler = (event: KeyboardEvent) => closeDialogOnEscapeRef.current?.(event);\n document.addEventListener(\"keyup\", handler);\n return () => document.removeEventListener(\"keyup\", handler);\n }, []);\n\n // Handle reference hidden state\n useEffect(() => {\n if (hideWhenReferenceHidden && isReferenceHidden && isShown) {\n const event = new CustomEvent(\"onReferenceHidden\");\n hideDialog(event, \"onReferenceHidden\");\n }\n }, [hideWhenReferenceHidden, isReferenceHidden, isShown, hideDialog]);\n\n // Computed values\n const overrideDataTestId = dataTestId || getTestId(ComponentDefaultTestId.DIALOG, id);\n\n const arrowStyles = useMemo<React.CSSProperties>(() => {\n if (!middlewareData.arrow) return {};\n const { x, y } = middlewareData.arrow;\n return {\n left: x != null ? `${x}px` : \"\",\n top: y != null ? `${y}px` : \"\",\n transform: \"rotate(45deg)\"\n };\n }, [middlewareData.arrow]);\n\n // Skip Floating UI positioning when no children (e.g. floating Tipseen) — let CSS handle it\n const finalFloatingStyles = useMemo<React.CSSProperties>(\n () =>\n hasValidChildren\n ? { ...floatingStyles, ...(zIndex !== undefined && { zIndex }) }\n : { ...(zIndex !== undefined && { zIndex }) },\n [floatingStyles, zIndex, hasValidChildren]\n );\n\n const animationTypeCalculated = preventAnimationOnMount || preventAnimation ? undefined : animationType;\n const contentRendered = isFunction(content) ? content() : content;\n\n // Early return if no content - wrap in fragment for type safety\n if (!contentRendered) {\n return <>{children}</>;\n }\n\n const mergedFloatingRef = chainRefFunctions([refs.setFloating, containerRef]);\n\n const dialogContent = (\n <DialogContent\n data-testid={overrideDataTestId}\n isReferenceHidden={hideWhenReferenceHidden && isReferenceHidden}\n onMouseEnter={onDialogEnter}\n onMouseLeave={onDialogLeave}\n onClickOutside={onClickOutside}\n onContextMenu={onContextMenu}\n onEsc={onEsc}\n animationType={animationTypeCalculated}\n position={placement}\n wrapperClassName={wrapperClassName}\n startingEdge={startingEdge}\n isOpen={isShown}\n showDelay={showDelay}\n styleObject={finalFloatingStyles}\n ref={mergedFloatingRef}\n onClick={onContentClick}\n hasTooltip={!!tooltip}\n containerSelector={containerSelector}\n disableContainerScroll={disableContainerScroll}\n >\n {contentRendered}\n {tooltip && (\n <div\n style={arrowStyles}\n ref={arrowRef}\n className={cx(styles.arrow, tooltipClassName)}\n data-placement={placement}\n />\n )}\n </DialogContent>\n );\n\n return (\n <>\n <Refable\n className={cx(referenceWrapperClassName)}\n wrapperElement={referenceWrapperElement}\n ref={setReferenceElement}\n onBlur={chainedOnBlur}\n onKeyDown={chainedOnKeyDown}\n onClick={chainedOnClick}\n onFocus={chainedOnFocus}\n onMouseDown={chainedOnMouseDown}\n onMouseEnter={chainedOnMouseEnter}\n onMouseLeave={chainedOnMouseLeave}\n onContextMenu={chainedOnContextMenu}\n >\n {children}\n </Refable>\n {isClient() &&\n isShown &&\n createPortal(\n enableNestedDialogLayer ? (\n <LayerProvider layerRef={containerRef}>{dialogContent}</LayerProvider>\n ) : (\n dialogContent\n ),\n getContainer()\n )}\n </>\n );\n}\n\nexport default Dialog;\n"],"names":["Dialog","id","dataTestId","children","content","position","moveBy","main","secondary","middleware","middlewareProp","startingEdge","showDelay","hideDelay","instantShowAndHide","getDynamicShowDelay","showTrigger","hideTrigger","showOnDialogEnter","showTriggerIgnoreClass","hideTriggerIgnoreClass","addKeyboardHideShowTriggersByDefault","shouldShowOnMount","disable","open","isOpen","isOpenProp","useDerivedStateFromProps","animationType","preventAnimationOnMount","tooltip","tooltipClassName","containerSelector","disableContainerScroll","zIndex","wrapperClassName","referenceWrapperClassName","referenceWrapperElement","onBlur","onBlurProp","onKeyDown","onKeyDownProp","onClick","onClickProp","onFocus","onFocusProp","onMouseDown","onMouseDownProp","onMouseEnter","onMouseEnterProp","onMouseLeave","onMouseLeaveProp","onContextMenu","onContextMenuProp","onDialogDidShow","NOOP","onDialogDidHide","onClickOutside","onClickOutsideProp","onContentClick","onContentClickProp","hideWhenReferenceHidden","shouldCallbackOnMount","observeContentResize","enableNestedDialogLayer","isOpenState","setIsOpenState","useState","preventAnimation","setPreventAnimation","referenceElement","setReferenceElement","showTimeoutRef","useRef","hideTimeoutRef","containerRef","arrowRef","hasValidChildren","React","Children","toArray","some","child","isValidElement","layerRef","useContext","LayerContext","isShown","floatingMiddleware","useMemo","middlewareList","validMiddleware","filter","m","fn","hasCustomOffset","name","hasCustomFlip","hasCustomShift","push","offset","mainAxis","crossAxis","flip","shift","arrowMiddleware","element","hide","whileElementsMounted","useCallback","reference","floating","update","autoUpdate","elementResize","layoutShift","refs","floatingStyles","placement","middlewareData","useFloating","elements","isReferenceHidden","_b","_a","referenceHidden","isShowTrigger","eventName","showTriggersArray","convertToArray","includes","isHideTrigger","hideTriggersArray","showDialog","event","options","finalShowDelay","preventAnimationValue","dynamicDelayObj","current","setTimeout","hideDialog","showDialogIfNeeded","clearTimeout","hideDialogIfNeeded","handleEvent","target","isInsideClass","getContainer","containerElement","document","querySelector","Element","body","e","button","key","relatedTarget","onEsc","preventDefault","onDialogEnter","onDialogLeave","chainedOnBlur","chainFunctions","chainedOnKeyDown","chainedOnClick","chainedOnFocus","chainedOnMouseDown","chainedOnMouseEnter","chainedOnMouseLeave","chainedOnContextMenu","closeDialogOnEscapeRef","useEffect","isClient","handler","call","addEventListener","removeEventListener","CustomEvent","overrideDataTestId","getTestId","ComponentDefaultTestId","DIALOG","arrowStyles","arrow","x","y","left","top","transform","finalFloatingStyles","Object","assign","undefined","animationTypeCalculated","contentRendered","isFunction","createElement","Fragment","mergedFloatingRef","chainRefFunctions","setFloating","dialogContent","DialogContent","styleObject","ref","hasTooltip","style","className","cx","styles","Refable","wrapperElement","createPortal","LayerProvider"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- var a={arrow:"arrow_0f548a71ff"};!function(a){const e="s_id-3fb64cda561a_4_0_0-alpha_1";if("undefined"!=typeof document){const t=document.head||document.getElementsByTagName("head")[0];if(t.querySelector("#"+e))return;const r=document.createElement("style");r.id=e,t.firstChild?t.insertBefore(r,t.firstChild):t.appendChild(r),r.appendChild(document.createTextNode(a))}else globalThis.injectedStyles&&(globalThis.injectedStyles[e]=a)}(".arrow_0f548a71ff {\n width: 12px;\n height: 12px;\n position: absolute;\n border-radius: 2px;\n background-color: var(--secondary-background-color);\n}\n.dark-app-theme .arrow_0f548a71ff[data-placement*=right], .black-app-theme .arrow_0f548a71ff[data-placement*=right], .hacker-app-theme .arrow_0f548a71ff[data-placement*=right] {\n box-shadow: -1px 1px 0px 0px var(--layout-border-color);\n}\n.dark-app-theme .arrow_0f548a71ff[data-placement*=left], .black-app-theme .arrow_0f548a71ff[data-placement*=left], .hacker-app-theme .arrow_0f548a71ff[data-placement*=left] {\n box-shadow: 1px -1px 0px 0px var(--layout-border-color);\n}\n.dark-app-theme .arrow_0f548a71ff[data-placement*=bottom], .black-app-theme .arrow_0f548a71ff[data-placement*=bottom], .hacker-app-theme .arrow_0f548a71ff[data-placement*=bottom] {\n box-shadow: -1px -1px 0px 0px var(--layout-border-color);\n}\n.dark-app-theme .arrow_0f548a71ff[data-placement*=top], .black-app-theme .arrow_0f548a71ff[data-placement*=top], .hacker-app-theme .arrow_0f548a71ff[data-placement*=top] {\n box-shadow: 1px 1px 0px 0px var(--layout-border-color);\n}\n.arrow_0f548a71ff[data-placement*=bottom] {\n top: 1px;\n}\n.arrow_0f548a71ff[data-placement*=top] {\n bottom: 1px;\n}\n.arrow_0f548a71ff[data-placement*=left] {\n right: 1px;\n}\n.arrow_0f548a71ff[data-placement*=right] {\n left: 1px;\n}");export{a as default};
1
+ var a={arrow:"arrow_c3a9024f82"};!function(a){const e="s_id-3fb64cda561a_4_0_0-alpha_2";if("undefined"!=typeof document){const t=document.head||document.getElementsByTagName("head")[0];if(t.querySelector("#"+e))return;const r=document.createElement("style");r.id=e,t.firstChild?t.insertBefore(r,t.firstChild):t.appendChild(r),r.appendChild(document.createTextNode(a))}else globalThis.injectedStyles&&(globalThis.injectedStyles[e]=a)}(".arrow_c3a9024f82 {\n width: 12px;\n height: 12px;\n position: absolute;\n border-radius: 2px;\n background-color: var(--secondary-background-color);\n}\n.dark-app-theme .arrow_c3a9024f82[data-placement*=right], .black-app-theme .arrow_c3a9024f82[data-placement*=right], .hacker-app-theme .arrow_c3a9024f82[data-placement*=right] {\n box-shadow: -1px 1px 0px 0px var(--layout-border-color);\n}\n.dark-app-theme .arrow_c3a9024f82[data-placement*=left], .black-app-theme .arrow_c3a9024f82[data-placement*=left], .hacker-app-theme .arrow_c3a9024f82[data-placement*=left] {\n box-shadow: 1px -1px 0px 0px var(--layout-border-color);\n}\n.dark-app-theme .arrow_c3a9024f82[data-placement*=bottom], .black-app-theme .arrow_c3a9024f82[data-placement*=bottom], .hacker-app-theme .arrow_c3a9024f82[data-placement*=bottom] {\n box-shadow: -1px -1px 0px 0px var(--layout-border-color);\n}\n.dark-app-theme .arrow_c3a9024f82[data-placement*=top], .black-app-theme .arrow_c3a9024f82[data-placement*=top], .hacker-app-theme .arrow_c3a9024f82[data-placement*=top] {\n box-shadow: 1px 1px 0px 0px var(--layout-border-color);\n}\n.arrow_c3a9024f82[data-placement*=bottom] {\n top: 1px;\n}\n.arrow_c3a9024f82[data-placement*=top] {\n bottom: 1px;\n}\n.arrow_c3a9024f82[data-placement*=left] {\n right: 1px;\n}\n.arrow_c3a9024f82[data-placement*=right] {\n left: 1px;\n}");export{a as default};
2
2
  //# sourceMappingURL=Dialog.module.scss.js.map
@@ -211,4 +211,10 @@ export interface DialogProps extends VibeComponentProps {
211
211
  * If true, automatically updates position when content resizes.
212
212
  */
213
213
  observeContentResize?: boolean;
214
+ /**
215
+ * If true, provides a LayerProvider context for nested dialogs to render correctly.
216
+ * This is useful when you have components that use Dialog internally (like Dropdown)
217
+ * inside another Dialog, ensuring proper z-index stacking and click-outside behavior.
218
+ */
219
+ enableNestedDialogLayer?: boolean;
214
220
  }
@@ -1,2 +1,2 @@
1
- var e={contentWrapper:"contentWrapper_8668232f0e",top:"top_4ba4151aa8",right:"right_e179e42aa9",left:"left_77fc68d0df",bottom:"bottom_9f5adc5420",bottomStart:"bottomStart_fbd1e25e89",topStart:"topStart_9a8c4a01bc",bottomEnd:"bottomEnd_ba529273ef",topEnd:"topEnd_0e38f20f92",leftStart:"leftStart_cf0b3a6bb9",rightStart:"rightStart_580e8aef51",leftEnd:"leftEnd_ce9e71cb01",rightEnd:"rightEnd_d96bee3181",contentComponent:"contentComponent_b34301a306",hasTooltip:"hasTooltip_a1adbdc630",opacitySlideAppear:"opacitySlideAppear_f6f46e5a82",opacitySlideAppearActive:"opacitySlideAppearActive_85cf766591",expandAppear:"expandAppear_06c51691ba",expandExit:"expandExit_a6a8ffad6c",edgeBottom:"edgeBottom_9b900eb12f",edgeTop:"edgeTop_ca42d0fbe4",expandAppearActive:"expandAppearActive_33fb953403"};!function(e){const a="s_id-b5fc9eb29715_4_0_0-alpha_1";if("undefined"!=typeof document){const t=document.head||document.getElementsByTagName("head")[0];if(t.querySelector("#"+a))return;const n=document.createElement("style");n.id=a,t.firstChild?t.insertBefore(n,t.firstChild):t.appendChild(n),n.appendChild(document.createTextNode(e))}else globalThis.injectedStyles&&(globalThis.injectedStyles[a]=e)}("/* stylelint-disable */\n/* stylelint-enable */\n.contentWrapper_8668232f0e {\n outline: 0;\n}\n.contentWrapper_8668232f0e.top_4ba4151aa8, .contentWrapper_8668232f0e.right_e179e42aa9, .contentWrapper_8668232f0e.left_77fc68d0df, .contentWrapper_8668232f0e.bottom_9f5adc5420 {\n padding: var(--space-4);\n}\n.contentWrapper_8668232f0e.bottomStart_fbd1e25e89, .contentWrapper_8668232f0e.topStart_9a8c4a01bc, .contentWrapper_8668232f0e.bottomEnd_ba529273ef, .contentWrapper_8668232f0e.topEnd_0e38f20f92 {\n padding-block: var(--space-4);\n}\n.contentWrapper_8668232f0e.bottomStart_fbd1e25e89, .contentWrapper_8668232f0e.topStart_9a8c4a01bc {\n padding-inline-end: var(--space-4);\n}\n.contentWrapper_8668232f0e.bottomEnd_ba529273ef, .contentWrapper_8668232f0e.topEnd_0e38f20f92 {\n padding-inline-start: var(--space-4);\n}\n.contentWrapper_8668232f0e.leftStart_cf0b3a6bb9, .contentWrapper_8668232f0e.rightStart_580e8aef51, .contentWrapper_8668232f0e.leftEnd_ce9e71cb01, .contentWrapper_8668232f0e.rightEnd_d96bee3181 {\n padding-inline: var(--space-4);\n}\n.contentWrapper_8668232f0e.leftStart_cf0b3a6bb9, .contentWrapper_8668232f0e.rightStart_580e8aef51 {\n padding-block-end: var(--space-4);\n}\n.contentWrapper_8668232f0e.leftEnd_ce9e71cb01, .contentWrapper_8668232f0e.rightEnd_d96bee3181 {\n padding-block-start: var(--space-4);\n}\n.contentWrapper_8668232f0e[data-dialog-reference-hidden=true] {\n visibility: hidden;\n pointer-events: none;\n}\n.contentComponent_b34301a306:focus {\n outline: none;\n}\n.contentComponent_b34301a306.hasTooltip_a1adbdc630 {\n padding: 6px;\n}\n.opacitySlideAppear_f6f46e5a82 {\n opacity: 0;\n}\n.opacitySlideAppear_f6f46e5a82.top_4ba4151aa8 {\n transform: translateY(var(--space-16));\n}\n.opacitySlideAppear_f6f46e5a82.right_e179e42aa9 {\n transform: translateX(calc(var(--space-16) * -1));\n}\n.opacitySlideAppear_f6f46e5a82.bottom_9f5adc5420 {\n transform: translateY(calc(var(--space-16) * -1));\n}\n.opacitySlideAppear_f6f46e5a82.left_77fc68d0df {\n transform: translateX(var(--space-16));\n}\n.opacitySlideAppearActive_85cf766591 {\n transition: opacity 0.2s ease, transform 0.2s ease-out;\n opacity: 1;\n pointer-events: none;\n}\n.opacitySlideAppearActive_85cf766591.top_4ba4151aa8, .opacitySlideAppearActive_85cf766591.bottom_9f5adc5420 {\n transform: translateY(0);\n}\n.opacitySlideAppearActive_85cf766591.right_e179e42aa9, .opacitySlideAppearActive_85cf766591.left_77fc68d0df {\n transform: translateX(0);\n}\n.expandAppear_06c51691ba,\n.expandExit_a6a8ffad6c {\n transition: transform 0.1s cubic-bezier(0, 0, 0.35, 1);\n}\n.expandAppear_06c51691ba.top_4ba4151aa8, .expandAppear_06c51691ba.topStart_9a8c4a01bc, .expandAppear_06c51691ba.topEnd_0e38f20f92,\n.expandExit_a6a8ffad6c.top_4ba4151aa8,\n.expandExit_a6a8ffad6c.topStart_9a8c4a01bc,\n.expandExit_a6a8ffad6c.topEnd_0e38f20f92 {\n transform-origin: bottom center;\n transform: scale(0.8);\n}\n.expandAppear_06c51691ba.top_4ba4151aa8.edgeBottom_9b900eb12f, .expandAppear_06c51691ba.topStart_9a8c4a01bc.edgeBottom_9b900eb12f, .expandAppear_06c51691ba.topEnd_0e38f20f92.edgeBottom_9b900eb12f,\n.expandExit_a6a8ffad6c.top_4ba4151aa8.edgeBottom_9b900eb12f,\n.expandExit_a6a8ffad6c.topStart_9a8c4a01bc.edgeBottom_9b900eb12f,\n.expandExit_a6a8ffad6c.topEnd_0e38f20f92.edgeBottom_9b900eb12f {\n transform-origin: bottom left;\n}\n.expandAppear_06c51691ba.top_4ba4151aa8.edgeTop_ca42d0fbe4, .expandAppear_06c51691ba.topStart_9a8c4a01bc.edgeTop_ca42d0fbe4, .expandAppear_06c51691ba.topEnd_0e38f20f92.edgeTop_ca42d0fbe4,\n.expandExit_a6a8ffad6c.top_4ba4151aa8.edgeTop_ca42d0fbe4,\n.expandExit_a6a8ffad6c.topStart_9a8c4a01bc.edgeTop_ca42d0fbe4,\n.expandExit_a6a8ffad6c.topEnd_0e38f20f92.edgeTop_ca42d0fbe4 {\n transform-origin: bottom right;\n}\n.expandAppear_06c51691ba.right_e179e42aa9, .expandAppear_06c51691ba.rightStart_580e8aef51, .expandAppear_06c51691ba.rightEnd_d96bee3181,\n.expandExit_a6a8ffad6c.right_e179e42aa9,\n.expandExit_a6a8ffad6c.rightStart_580e8aef51,\n.expandExit_a6a8ffad6c.rightEnd_d96bee3181 {\n transform-origin: left;\n transform: scale(0.8);\n}\n.expandAppear_06c51691ba.right_e179e42aa9.edgeBottom_9b900eb12f, .expandAppear_06c51691ba.rightStart_580e8aef51.edgeBottom_9b900eb12f, .expandAppear_06c51691ba.rightEnd_d96bee3181.edgeBottom_9b900eb12f,\n.expandExit_a6a8ffad6c.right_e179e42aa9.edgeBottom_9b900eb12f,\n.expandExit_a6a8ffad6c.rightStart_580e8aef51.edgeBottom_9b900eb12f,\n.expandExit_a6a8ffad6c.rightEnd_d96bee3181.edgeBottom_9b900eb12f {\n transform-origin: top left;\n}\n.expandAppear_06c51691ba.right_e179e42aa9.edgeTop_ca42d0fbe4, .expandAppear_06c51691ba.rightStart_580e8aef51.edgeTop_ca42d0fbe4, .expandAppear_06c51691ba.rightEnd_d96bee3181.edgeTop_ca42d0fbe4,\n.expandExit_a6a8ffad6c.right_e179e42aa9.edgeTop_ca42d0fbe4,\n.expandExit_a6a8ffad6c.rightStart_580e8aef51.edgeTop_ca42d0fbe4,\n.expandExit_a6a8ffad6c.rightEnd_d96bee3181.edgeTop_ca42d0fbe4 {\n transform-origin: bottom left;\n}\n.expandAppear_06c51691ba.bottom_9f5adc5420, .expandAppear_06c51691ba.bottomStart_fbd1e25e89, .expandAppear_06c51691ba.bottomEnd_ba529273ef,\n.expandExit_a6a8ffad6c.bottom_9f5adc5420,\n.expandExit_a6a8ffad6c.bottomStart_fbd1e25e89,\n.expandExit_a6a8ffad6c.bottomEnd_ba529273ef {\n transform-origin: top;\n transform: scale(0.8);\n}\n.expandAppear_06c51691ba.bottom_9f5adc5420.edgeBottom_9b900eb12f, .expandAppear_06c51691ba.bottomStart_fbd1e25e89.edgeBottom_9b900eb12f, .expandAppear_06c51691ba.bottomEnd_ba529273ef.edgeBottom_9b900eb12f,\n.expandExit_a6a8ffad6c.bottom_9f5adc5420.edgeBottom_9b900eb12f,\n.expandExit_a6a8ffad6c.bottomStart_fbd1e25e89.edgeBottom_9b900eb12f,\n.expandExit_a6a8ffad6c.bottomEnd_ba529273ef.edgeBottom_9b900eb12f {\n transform-origin: top left;\n}\n.expandAppear_06c51691ba.bottom_9f5adc5420.edgeTop_ca42d0fbe4, .expandAppear_06c51691ba.bottomStart_fbd1e25e89.edgeTop_ca42d0fbe4, .expandAppear_06c51691ba.bottomEnd_ba529273ef.edgeTop_ca42d0fbe4,\n.expandExit_a6a8ffad6c.bottom_9f5adc5420.edgeTop_ca42d0fbe4,\n.expandExit_a6a8ffad6c.bottomStart_fbd1e25e89.edgeTop_ca42d0fbe4,\n.expandExit_a6a8ffad6c.bottomEnd_ba529273ef.edgeTop_ca42d0fbe4 {\n transform-origin: top right;\n}\n.expandAppear_06c51691ba.left_77fc68d0df, .expandAppear_06c51691ba.leftStart_cf0b3a6bb9, .expandAppear_06c51691ba.leftEnd_ce9e71cb01,\n.expandExit_a6a8ffad6c.left_77fc68d0df,\n.expandExit_a6a8ffad6c.leftStart_cf0b3a6bb9,\n.expandExit_a6a8ffad6c.leftEnd_ce9e71cb01 {\n transform-origin: right;\n transform: scale(0.8);\n}\n.expandAppear_06c51691ba.left_77fc68d0df.edgeBottom_9b900eb12f, .expandAppear_06c51691ba.leftStart_cf0b3a6bb9.edgeBottom_9b900eb12f, .expandAppear_06c51691ba.leftEnd_ce9e71cb01.edgeBottom_9b900eb12f,\n.expandExit_a6a8ffad6c.left_77fc68d0df.edgeBottom_9b900eb12f,\n.expandExit_a6a8ffad6c.leftStart_cf0b3a6bb9.edgeBottom_9b900eb12f,\n.expandExit_a6a8ffad6c.leftEnd_ce9e71cb01.edgeBottom_9b900eb12f {\n transform-origin: top right;\n}\n.expandAppear_06c51691ba.left_77fc68d0df.edgeTop_ca42d0fbe4, .expandAppear_06c51691ba.leftStart_cf0b3a6bb9.edgeTop_ca42d0fbe4, .expandAppear_06c51691ba.leftEnd_ce9e71cb01.edgeTop_ca42d0fbe4,\n.expandExit_a6a8ffad6c.left_77fc68d0df.edgeTop_ca42d0fbe4,\n.expandExit_a6a8ffad6c.leftStart_cf0b3a6bb9.edgeTop_ca42d0fbe4,\n.expandExit_a6a8ffad6c.leftEnd_ce9e71cb01.edgeTop_ca42d0fbe4 {\n transform-origin: bottom right;\n}\n.expandExit_a6a8ffad6c {\n transition: transform 0.1s cubic-bezier(0, 0, 0.35, 1);\n}\n.expandAppearActive_33fb953403 {\n transition: transform 0.1s cubic-bezier(0, 0, 0.35, 1);\n pointer-events: none;\n}\n.expandAppearActive_33fb953403.top_4ba4151aa8, .expandAppearActive_33fb953403.topStart_9a8c4a01bc, .expandAppearActive_33fb953403.topEnd_0e38f20f92, .expandAppearActive_33fb953403.bottom_9f5adc5420, .expandAppearActive_33fb953403.bottomStart_fbd1e25e89, .expandAppearActive_33fb953403.bottomEnd_ba529273ef, .expandAppearActive_33fb953403.right_e179e42aa9, .expandAppearActive_33fb953403.rightStart_580e8aef51, .expandAppearActive_33fb953403.rightEnd_d96bee3181, .expandAppearActive_33fb953403.left_77fc68d0df, .expandAppearActive_33fb953403.leftStart_cf0b3a6bb9, .expandAppearActive_33fb953403.leftEnd_ce9e71cb01 {\n transform: scale(1);\n}");export{e as default};
1
+ var e={contentWrapper:"contentWrapper_3fbfee23f8",top:"top_44b2257c8f",right:"right_24813ec7e5",left:"left_2deaf3fc10",bottom:"bottom_5f305e4525",bottomStart:"bottomStart_994df2a823",topStart:"topStart_994cbbe261",bottomEnd:"bottomEnd_be13ff4c77",topEnd:"topEnd_834f45440a",leftStart:"leftStart_9b0063641c",rightStart:"rightStart_c3e30e4072",leftEnd:"leftEnd_1393c353a0",rightEnd:"rightEnd_8d06427d72",contentComponent:"contentComponent_755074fdd6",hasTooltip:"hasTooltip_3ecaad3fa2",opacitySlideAppear:"opacitySlideAppear_fa1661f6a1",opacitySlideAppearActive:"opacitySlideAppearActive_1dcd85ac0e",expandAppear:"expandAppear_8d03bbc080",expandExit:"expandExit_1fba8cf36f",edgeBottom:"edgeBottom_af98b65ff4",edgeTop:"edgeTop_4a45a972e6",expandAppearActive:"expandAppearActive_88e4d6481d"};!function(e){const t="s_id-b5fc9eb29715_4_0_0-alpha_2";if("undefined"!=typeof document){const a=document.head||document.getElementsByTagName("head")[0];if(a.querySelector("#"+t))return;const n=document.createElement("style");n.id=t,a.firstChild?a.insertBefore(n,a.firstChild):a.appendChild(n),n.appendChild(document.createTextNode(e))}else globalThis.injectedStyles&&(globalThis.injectedStyles[t]=e)}("/* stylelint-disable */\n/* stylelint-enable */\n.contentWrapper_3fbfee23f8 {\n outline: 0;\n}\n.contentWrapper_3fbfee23f8.top_44b2257c8f, .contentWrapper_3fbfee23f8.right_24813ec7e5, .contentWrapper_3fbfee23f8.left_2deaf3fc10, .contentWrapper_3fbfee23f8.bottom_5f305e4525 {\n padding: var(--space-4);\n}\n.contentWrapper_3fbfee23f8.bottomStart_994df2a823, .contentWrapper_3fbfee23f8.topStart_994cbbe261, .contentWrapper_3fbfee23f8.bottomEnd_be13ff4c77, .contentWrapper_3fbfee23f8.topEnd_834f45440a {\n padding-block: var(--space-4);\n}\n.contentWrapper_3fbfee23f8.bottomStart_994df2a823, .contentWrapper_3fbfee23f8.topStart_994cbbe261 {\n padding-inline-end: var(--space-4);\n}\n.contentWrapper_3fbfee23f8.bottomEnd_be13ff4c77, .contentWrapper_3fbfee23f8.topEnd_834f45440a {\n padding-inline-start: var(--space-4);\n}\n.contentWrapper_3fbfee23f8.leftStart_9b0063641c, .contentWrapper_3fbfee23f8.rightStart_c3e30e4072, .contentWrapper_3fbfee23f8.leftEnd_1393c353a0, .contentWrapper_3fbfee23f8.rightEnd_8d06427d72 {\n padding-inline: var(--space-4);\n}\n.contentWrapper_3fbfee23f8.leftStart_9b0063641c, .contentWrapper_3fbfee23f8.rightStart_c3e30e4072 {\n padding-block-end: var(--space-4);\n}\n.contentWrapper_3fbfee23f8.leftEnd_1393c353a0, .contentWrapper_3fbfee23f8.rightEnd_8d06427d72 {\n padding-block-start: var(--space-4);\n}\n.contentWrapper_3fbfee23f8[data-dialog-reference-hidden=true] {\n visibility: hidden;\n pointer-events: none;\n}\n.contentComponent_755074fdd6:focus {\n outline: none;\n}\n.contentComponent_755074fdd6.hasTooltip_3ecaad3fa2 {\n padding: 6px;\n}\n.opacitySlideAppear_fa1661f6a1 {\n opacity: 0;\n}\n.opacitySlideAppear_fa1661f6a1.top_44b2257c8f {\n transform: translateY(var(--space-16));\n}\n.opacitySlideAppear_fa1661f6a1.right_24813ec7e5 {\n transform: translateX(calc(var(--space-16) * -1));\n}\n.opacitySlideAppear_fa1661f6a1.bottom_5f305e4525 {\n transform: translateY(calc(var(--space-16) * -1));\n}\n.opacitySlideAppear_fa1661f6a1.left_2deaf3fc10 {\n transform: translateX(var(--space-16));\n}\n.opacitySlideAppearActive_1dcd85ac0e {\n transition: opacity 0.2s ease, transform 0.2s ease-out;\n opacity: 1;\n pointer-events: none;\n}\n.opacitySlideAppearActive_1dcd85ac0e.top_44b2257c8f, .opacitySlideAppearActive_1dcd85ac0e.bottom_5f305e4525 {\n transform: translateY(0);\n}\n.opacitySlideAppearActive_1dcd85ac0e.right_24813ec7e5, .opacitySlideAppearActive_1dcd85ac0e.left_2deaf3fc10 {\n transform: translateX(0);\n}\n.expandAppear_8d03bbc080,\n.expandExit_1fba8cf36f {\n transition: transform 0.1s cubic-bezier(0, 0, 0.35, 1);\n}\n.expandAppear_8d03bbc080.top_44b2257c8f, .expandAppear_8d03bbc080.topStart_994cbbe261, .expandAppear_8d03bbc080.topEnd_834f45440a,\n.expandExit_1fba8cf36f.top_44b2257c8f,\n.expandExit_1fba8cf36f.topStart_994cbbe261,\n.expandExit_1fba8cf36f.topEnd_834f45440a {\n transform-origin: bottom center;\n transform: scale(0.8);\n}\n.expandAppear_8d03bbc080.top_44b2257c8f.edgeBottom_af98b65ff4, .expandAppear_8d03bbc080.topStart_994cbbe261.edgeBottom_af98b65ff4, .expandAppear_8d03bbc080.topEnd_834f45440a.edgeBottom_af98b65ff4,\n.expandExit_1fba8cf36f.top_44b2257c8f.edgeBottom_af98b65ff4,\n.expandExit_1fba8cf36f.topStart_994cbbe261.edgeBottom_af98b65ff4,\n.expandExit_1fba8cf36f.topEnd_834f45440a.edgeBottom_af98b65ff4 {\n transform-origin: bottom left;\n}\n.expandAppear_8d03bbc080.top_44b2257c8f.edgeTop_4a45a972e6, .expandAppear_8d03bbc080.topStart_994cbbe261.edgeTop_4a45a972e6, .expandAppear_8d03bbc080.topEnd_834f45440a.edgeTop_4a45a972e6,\n.expandExit_1fba8cf36f.top_44b2257c8f.edgeTop_4a45a972e6,\n.expandExit_1fba8cf36f.topStart_994cbbe261.edgeTop_4a45a972e6,\n.expandExit_1fba8cf36f.topEnd_834f45440a.edgeTop_4a45a972e6 {\n transform-origin: bottom right;\n}\n.expandAppear_8d03bbc080.right_24813ec7e5, .expandAppear_8d03bbc080.rightStart_c3e30e4072, .expandAppear_8d03bbc080.rightEnd_8d06427d72,\n.expandExit_1fba8cf36f.right_24813ec7e5,\n.expandExit_1fba8cf36f.rightStart_c3e30e4072,\n.expandExit_1fba8cf36f.rightEnd_8d06427d72 {\n transform-origin: left;\n transform: scale(0.8);\n}\n.expandAppear_8d03bbc080.right_24813ec7e5.edgeBottom_af98b65ff4, .expandAppear_8d03bbc080.rightStart_c3e30e4072.edgeBottom_af98b65ff4, .expandAppear_8d03bbc080.rightEnd_8d06427d72.edgeBottom_af98b65ff4,\n.expandExit_1fba8cf36f.right_24813ec7e5.edgeBottom_af98b65ff4,\n.expandExit_1fba8cf36f.rightStart_c3e30e4072.edgeBottom_af98b65ff4,\n.expandExit_1fba8cf36f.rightEnd_8d06427d72.edgeBottom_af98b65ff4 {\n transform-origin: top left;\n}\n.expandAppear_8d03bbc080.right_24813ec7e5.edgeTop_4a45a972e6, .expandAppear_8d03bbc080.rightStart_c3e30e4072.edgeTop_4a45a972e6, .expandAppear_8d03bbc080.rightEnd_8d06427d72.edgeTop_4a45a972e6,\n.expandExit_1fba8cf36f.right_24813ec7e5.edgeTop_4a45a972e6,\n.expandExit_1fba8cf36f.rightStart_c3e30e4072.edgeTop_4a45a972e6,\n.expandExit_1fba8cf36f.rightEnd_8d06427d72.edgeTop_4a45a972e6 {\n transform-origin: bottom left;\n}\n.expandAppear_8d03bbc080.bottom_5f305e4525, .expandAppear_8d03bbc080.bottomStart_994df2a823, .expandAppear_8d03bbc080.bottomEnd_be13ff4c77,\n.expandExit_1fba8cf36f.bottom_5f305e4525,\n.expandExit_1fba8cf36f.bottomStart_994df2a823,\n.expandExit_1fba8cf36f.bottomEnd_be13ff4c77 {\n transform-origin: top;\n transform: scale(0.8);\n}\n.expandAppear_8d03bbc080.bottom_5f305e4525.edgeBottom_af98b65ff4, .expandAppear_8d03bbc080.bottomStart_994df2a823.edgeBottom_af98b65ff4, .expandAppear_8d03bbc080.bottomEnd_be13ff4c77.edgeBottom_af98b65ff4,\n.expandExit_1fba8cf36f.bottom_5f305e4525.edgeBottom_af98b65ff4,\n.expandExit_1fba8cf36f.bottomStart_994df2a823.edgeBottom_af98b65ff4,\n.expandExit_1fba8cf36f.bottomEnd_be13ff4c77.edgeBottom_af98b65ff4 {\n transform-origin: top left;\n}\n.expandAppear_8d03bbc080.bottom_5f305e4525.edgeTop_4a45a972e6, .expandAppear_8d03bbc080.bottomStart_994df2a823.edgeTop_4a45a972e6, .expandAppear_8d03bbc080.bottomEnd_be13ff4c77.edgeTop_4a45a972e6,\n.expandExit_1fba8cf36f.bottom_5f305e4525.edgeTop_4a45a972e6,\n.expandExit_1fba8cf36f.bottomStart_994df2a823.edgeTop_4a45a972e6,\n.expandExit_1fba8cf36f.bottomEnd_be13ff4c77.edgeTop_4a45a972e6 {\n transform-origin: top right;\n}\n.expandAppear_8d03bbc080.left_2deaf3fc10, .expandAppear_8d03bbc080.leftStart_9b0063641c, .expandAppear_8d03bbc080.leftEnd_1393c353a0,\n.expandExit_1fba8cf36f.left_2deaf3fc10,\n.expandExit_1fba8cf36f.leftStart_9b0063641c,\n.expandExit_1fba8cf36f.leftEnd_1393c353a0 {\n transform-origin: right;\n transform: scale(0.8);\n}\n.expandAppear_8d03bbc080.left_2deaf3fc10.edgeBottom_af98b65ff4, .expandAppear_8d03bbc080.leftStart_9b0063641c.edgeBottom_af98b65ff4, .expandAppear_8d03bbc080.leftEnd_1393c353a0.edgeBottom_af98b65ff4,\n.expandExit_1fba8cf36f.left_2deaf3fc10.edgeBottom_af98b65ff4,\n.expandExit_1fba8cf36f.leftStart_9b0063641c.edgeBottom_af98b65ff4,\n.expandExit_1fba8cf36f.leftEnd_1393c353a0.edgeBottom_af98b65ff4 {\n transform-origin: top right;\n}\n.expandAppear_8d03bbc080.left_2deaf3fc10.edgeTop_4a45a972e6, .expandAppear_8d03bbc080.leftStart_9b0063641c.edgeTop_4a45a972e6, .expandAppear_8d03bbc080.leftEnd_1393c353a0.edgeTop_4a45a972e6,\n.expandExit_1fba8cf36f.left_2deaf3fc10.edgeTop_4a45a972e6,\n.expandExit_1fba8cf36f.leftStart_9b0063641c.edgeTop_4a45a972e6,\n.expandExit_1fba8cf36f.leftEnd_1393c353a0.edgeTop_4a45a972e6 {\n transform-origin: bottom right;\n}\n.expandExit_1fba8cf36f {\n transition: transform 0.1s cubic-bezier(0, 0, 0.35, 1);\n}\n.expandAppearActive_88e4d6481d {\n transition: transform 0.1s cubic-bezier(0, 0, 0.35, 1);\n pointer-events: none;\n}\n.expandAppearActive_88e4d6481d.top_44b2257c8f, .expandAppearActive_88e4d6481d.topStart_994cbbe261, .expandAppearActive_88e4d6481d.topEnd_834f45440a, .expandAppearActive_88e4d6481d.bottom_5f305e4525, .expandAppearActive_88e4d6481d.bottomStart_994df2a823, .expandAppearActive_88e4d6481d.bottomEnd_be13ff4c77, .expandAppearActive_88e4d6481d.right_24813ec7e5, .expandAppearActive_88e4d6481d.rightStart_c3e30e4072, .expandAppearActive_88e4d6481d.rightEnd_8d06427d72, .expandAppearActive_88e4d6481d.left_2deaf3fc10, .expandAppearActive_88e4d6481d.leftStart_9b0063641c, .expandAppearActive_88e4d6481d.leftEnd_1393c353a0 {\n transform: scale(1);\n}");export{e as default};
2
2
  //# sourceMappingURL=DialogContent.module.scss.js.map
@@ -1,2 +1,2 @@
1
- var e={dialogContentContainer:"dialogContentContainer_493dbd2e99",sizeSmall:"sizeSmall_9e9c8067b8",sizeMedium:"sizeMedium_3286626b1e",sizeLarge:"sizeLarge_5d4db17b94",typePopover:"typePopover_1d5948d907",typeModal:"typeModal_11b65ba91d"};!function(e){const d="s_id-e25392b9c982_4_0_0-alpha_1";if("undefined"!=typeof document){const o=document.head||document.getElementsByTagName("head")[0];if(o.querySelector("#"+d))return;const a=document.createElement("style");a.id=d,o.firstChild?o.insertBefore(a,o.firstChild):o.appendChild(a),a.appendChild(document.createTextNode(e))}else globalThis.injectedStyles&&(globalThis.injectedStyles[d]=e)}(".dialogContentContainer_493dbd2e99:focus {\n outline: none;\n}\n\n.sizeSmall_9e9c8067b8 {\n padding: var(--space-8);\n}\n\n.sizeMedium_3286626b1e {\n padding: var(--space-16);\n}\n\n.sizeLarge_5d4db17b94 {\n padding: var(--space-24);\n}\n\n.typePopover_1d5948d907 {\n box-shadow: var(--box-shadow-medium);\n border-radius: var(--border-radius-medium);\n background-color: var(--secondary-background-color);\n}\n\n.dark-app-theme .typePopover_1d5948d907, .black-app-theme .typePopover_1d5948d907, .hacker-app-theme .typePopover_1d5948d907 {\n box-shadow: 0 0 0 1px var(--layout-border-color), var(--box-shadow-medium);\n}\n\n.typeModal_11b65ba91d {\n box-shadow: var(--box-shadow-large);\n border-radius: var(--border-radius-big);\n background-color: var(--primary-background-color);\n}");export{e as default};
1
+ var e={dialogContentContainer:"dialogContentContainer_38287d6580",sizeSmall:"sizeSmall_64d9277fc1",sizeMedium:"sizeMedium_cb5ed42a7a",sizeLarge:"sizeLarge_8ad17bfb08",typePopover:"typePopover_2f7430d9cf",typeModal:"typeModal_465d56470f"};!function(e){const a="s_id-e25392b9c982_4_0_0-alpha_2";if("undefined"!=typeof document){const o=document.head||document.getElementsByTagName("head")[0];if(o.querySelector("#"+a))return;const d=document.createElement("style");d.id=a,o.firstChild?o.insertBefore(d,o.firstChild):o.appendChild(d),d.appendChild(document.createTextNode(e))}else globalThis.injectedStyles&&(globalThis.injectedStyles[a]=e)}(".dialogContentContainer_38287d6580:focus {\n outline: none;\n}\n\n.sizeSmall_64d9277fc1 {\n padding: var(--space-8);\n}\n\n.sizeMedium_cb5ed42a7a {\n padding: var(--space-16);\n}\n\n.sizeLarge_8ad17bfb08 {\n padding: var(--space-24);\n}\n\n.typePopover_2f7430d9cf {\n box-shadow: var(--box-shadow-medium);\n border-radius: var(--border-radius-medium);\n background-color: var(--secondary-background-color);\n}\n\n.dark-app-theme .typePopover_2f7430d9cf, .black-app-theme .typePopover_2f7430d9cf, .hacker-app-theme .typePopover_2f7430d9cf {\n box-shadow: 0 0 0 1px var(--layout-border-color), var(--box-shadow-medium);\n}\n\n.typeModal_465d56470f {\n box-shadow: var(--box-shadow-large);\n border-radius: var(--border-radius-big);\n background-color: var(--primary-background-color);\n}");export{e as default};
2
2
  //# sourceMappingURL=DialogContentContainer.module.scss.js.map
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
2
  import { type DialogProps } from "./Dialog.types";
3
- declare function Dialog({ id, "data-testid": dataTestId, children, content, position, moveBy, middleware: middlewareProp, startingEdge, showDelay, hideDelay, instantShowAndHide, getDynamicShowDelay, showTrigger, hideTrigger, showOnDialogEnter, showTriggerIgnoreClass, hideTriggerIgnoreClass, addKeyboardHideShowTriggersByDefault, shouldShowOnMount, disable, open, isOpen: isOpenProp, useDerivedStateFromProps, animationType, preventAnimationOnMount, tooltip, tooltipClassName, containerSelector, disableContainerScroll, zIndex, wrapperClassName, referenceWrapperClassName, referenceWrapperElement, onBlur: onBlurProp, onKeyDown: onKeyDownProp, onClick: onClickProp, onFocus: onFocusProp, onMouseDown: onMouseDownProp, onMouseEnter: onMouseEnterProp, onMouseLeave: onMouseLeaveProp, onContextMenu: onContextMenuProp, onDialogDidShow, onDialogDidHide, onClickOutside: onClickOutsideProp, onContentClick: onContentClickProp, hideWhenReferenceHidden, shouldCallbackOnMount, observeContentResize }: DialogProps): React.JSX.Element;
3
+ declare function Dialog({ id, "data-testid": dataTestId, children, content, position, moveBy, middleware: middlewareProp, startingEdge, showDelay, hideDelay, instantShowAndHide, getDynamicShowDelay, showTrigger, hideTrigger, showOnDialogEnter, showTriggerIgnoreClass, hideTriggerIgnoreClass, addKeyboardHideShowTriggersByDefault, shouldShowOnMount, disable, open, isOpen: isOpenProp, useDerivedStateFromProps, animationType, preventAnimationOnMount, tooltip, tooltipClassName, containerSelector, disableContainerScroll, zIndex, wrapperClassName, referenceWrapperClassName, referenceWrapperElement, onBlur: onBlurProp, onKeyDown: onKeyDownProp, onClick: onClickProp, onFocus: onFocusProp, onMouseDown: onMouseDownProp, onMouseEnter: onMouseEnterProp, onMouseLeave: onMouseLeaveProp, onContextMenu: onContextMenuProp, onDialogDidShow, onDialogDidHide, onClickOutside: onClickOutsideProp, onContentClick: onContentClickProp, hideWhenReferenceHidden, shouldCallbackOnMount, observeContentResize, enableNestedDialogLayer }: DialogProps): React.JSX.Element;
4
4
  export default Dialog;
@@ -1,2 +1,2 @@
1
- import e from"classnames";import n,{useState as t,useRef as r,useContext as o,useMemo as a,useCallback as l,useEffect as i}from"react";import{createPortal as s}from"react-dom";import{offset as u,flip as c,shift as m,arrow as d,hide as p,autoUpdate as f,useFloating as g}from"@floating-ui/react-dom";import{isFunction as y}from"es-toolkit";import{convertToArray as h,isInsideClass as v,chainFunctions as w,isClient as C,getTestId as b,ComponentDefaultTestId as D,chainRefFunctions as E,NOOP as k}from"@vibe/shared";import T from"./components/DialogContent/DialogContent.js";import{Refable as x}from"./components/Refable/Refable.js";import M from"./Dialog.module.scss.js";import{LayerContext as S,LayerProvider as O}from"@vibe/layer";function R({id:R,"data-testid":A,children:H,content:j,position:L="top",moveBy:F={main:0,secondary:0},middleware:N=[],startingEdge:I,showDelay:z=100,hideDelay:B=100,instantShowAndHide:K=!1,getDynamicShowDelay:W,showTrigger:q="mouseenter",hideTrigger:G="mouseleave",showOnDialogEnter:P=!1,showTriggerIgnoreClass:V,hideTriggerIgnoreClass:J,addKeyboardHideShowTriggersByDefault:Q=!0,shouldShowOnMount:U=!1,disable:X=!1,open:Y=!1,isOpen:Z,useDerivedStateFromProps:$=!1,animationType:_="expand",preventAnimationOnMount:ee=!1,tooltip:ne=!1,tooltipClassName:te,containerSelector:re,disableContainerScroll:oe,zIndex:ae,wrapperClassName:le,referenceWrapperClassName:ie,referenceWrapperElement:se,onBlur:ue,onKeyDown:ce,onClick:me,onFocus:de,onMouseDown:pe,onMouseEnter:fe,onMouseLeave:ge,onContextMenu:ye,onDialogDidShow:he=k,onDialogDidHide:ve=k,onClickOutside:we=k,onContentClick:Ce=k,hideWhenReferenceHidden:be=!1,shouldCallbackOnMount:De=!1,observeContentResize:Ee=!1}){var ke,Te;const[xe,Me]=t(U),[Se,Oe]=t(!1),[Re,Ae]=t(null),He=r(null),je=r(null),Le=r(null),Fe=r(null),Ne=n.Children.toArray(H).some((e=>n.isValidElement(e))),{layerRef:Ie}=o(S),ze=($?Z:xe)||Y,Be=a((()=>{const e=[],n=N.filter((e=>null!=e&&"object"==typeof e&&"function"==typeof e.fn)),t=n.some((e=>"offset"===e.name)),r=n.some((e=>"flip"===e.name)),o=n.some((e=>"shift"===e.name));return t||0===F.main&&0===F.secondary||e.push(u({mainAxis:F.main||0,crossAxis:F.secondary||0})),r||e.push(c()),o||e.push(m()),e.push(...n),ne&&e.push(d({element:Fe})),be&&e.push(p()),e}),[F.main,F.secondary,ne,be,N]),Ke=l(((e,n,t)=>f(e,n,t,{elementResize:Ee,layoutShift:!1})),[Ee]),{refs:We,floatingStyles:qe,placement:Ge,middlewareData:Pe}=g({placement:L,middleware:Be,whileElementsMounted:Ke,elements:{reference:Re}}),Ve=null!==(Te=null===(ke=Pe.hide)||void 0===ke?void 0:ke.referenceHidden)&&void 0!==Te&&Te,Je=l((e=>{const n=h(q);return!(!Q||"focus"!==e||!n.includes("mouseenter"))||n.includes(e)}),[q,Q]),Qe=l((e=>{const n=h(G);return!(!Q||"blur"!==e||!n.includes("mouseleave"))||n.includes(e)}),[G,Q]),Ue=l(((e,n,t={})=>{let r=z,o=t.preventAnimation;if(W){const e=W();r=e.showDelay||0,o=null!=o?o:e.preventAnimation}K?(he(e,n),Me(!0),Oe(!!o),He.current=null):He.current=setTimeout((()=>{he(e,n),He.current=null,Me(!0),Oe(!!o)}),r)}),[z,W,K,he]),Xe=l(((e,n)=>{K?(ve(e,n),Me(!1),je.current=null):je.current=setTimeout((()=>{ve(e,n),Me(!1),je.current=null}),B)}),[B,K,ve]),Ye=l(((e,n,t={})=>{X||(je.current&&(clearTimeout(je.current),je.current=null),He.current||Ue(e,n,t))}),[X,Ue]),Ze=l(((e,n)=>{He.current&&(clearTimeout(He.current),He.current=null),je.current||Xe(e,n)}),[Xe]),$e=l(((e,n,t)=>{if(n)return!Je(e)||ze||v(n,V)?Qe(e)&&!v(n,J)?Ze(t,e):void 0:Ye(t,e)}),[Je,Qe,ze,V,J,Ye,Ze]),_e=l((()=>{if(re){const e=document.querySelector(re);if(e instanceof Element)return e}return(null==Ie?void 0:Ie.current)||document.body}),[re,Ie]),en=l((e=>$e("mouseenter",e.target,e)),[$e]),nn=l((e=>$e("mouseleave",e.target,e)),[$e]),tn=l((e=>{e.button||$e("click",e.target,e)}),[$e]),rn=l((e=>{"Enter"===e.key&&$e("enter",e.target,e),"Tab"===e.key&&$e("tab",e.target,e)}),[$e]),on=l((e=>{e.button||$e("mousedown",e.target,e)}),[$e]),an=l((e=>$e("focus",e.target,e)),[$e]),ln=l((e=>{$e("blur",e.relatedTarget||e.target,e)}),[$e]),sn=l((e=>$e("esckey",e.target,e)),[$e]),un=l((e=>{(Je("contextmenu")&&!ze||Qe("contextmenu")&&ze)&&e.preventDefault(),$e("contextmenu",e.target,e)}),[ze,Je,Qe,$e]),cn=l((e=>{$e("clickoutside",e.target,e),we(e)}),[$e,we]),mn=l((e=>{P&&Ye(e,"DialogEnter")}),[P,Ye]),dn=l((e=>{P&&Ze(e,"DialogLeave")}),[P,Ze]),pn=l((e=>{$e("onContentClick",e.target,e),Ce(e)}),[$e,Ce]),fn=a((()=>w([ue,ln],!0)),[ue,ln]),gn=a((()=>w([ce,rn],!0)),[ce,rn]),yn=a((()=>w([me,tn],!0)),[me,tn]),hn=a((()=>w([de,an],!0)),[de,an]),vn=a((()=>w([pe,on],!0)),[pe,on]),wn=a((()=>w([fe,en],!0)),[fe,en]),Cn=a((()=>w([ge,nn],!0)),[ge,nn]),bn=a((()=>w([ye,un],!0)),[ye,un]),Dn=r();Dn.current=e=>{if(ze)switch(e.key){case"Escape":Ze(e,"esckey");break;case"Tab":$e("tab",e.target,e);break;case"Enter":$e("enter",e.target,e)}},i((()=>{De&&U&&he()}),[]),i((()=>()=>{He.current&&clearTimeout(He.current),je.current&&clearTimeout(je.current)}),[]),i((()=>{if(!C())return;const e=e=>{var n;return null===(n=Dn.current)||void 0===n?void 0:n.call(Dn,e)};return document.addEventListener("keyup",e),()=>document.removeEventListener("keyup",e)}),[]),i((()=>{if(be&&Ve&&ze){const e=new CustomEvent("onReferenceHidden");Xe(e,"onReferenceHidden")}}),[be,Ve,ze,Xe]);const En=A||b(D.DIALOG,R),kn=a((()=>{if(!Pe.arrow)return{};const{x:e,y:n}=Pe.arrow;return{left:null!=e?e+"px":"",top:null!=n?n+"px":"",transform:"rotate(45deg)"}}),[Pe.arrow]),Tn=a((()=>Object.assign(Ne?Object.assign({},qe):{},void 0!==ae&&{zIndex:ae})),[qe,ae,Ne]),xn=ee||Se?void 0:_,Mn=y(j)?j():j;if(!Mn)return n.createElement(n.Fragment,null,H);const Sn=E([We.setFloating,Le]),On=n.createElement(T,{"data-testid":En,isReferenceHidden:be&&Ve,onMouseEnter:mn,onMouseLeave:dn,onClickOutside:cn,onContextMenu:un,onEsc:sn,animationType:xn,position:Ge,wrapperClassName:le,startingEdge:I,isOpen:ze,showDelay:z,styleObject:Tn,ref:Sn,onClick:pn,hasTooltip:!!ne,containerSelector:re,disableContainerScroll:oe},Mn,ne&&n.createElement("div",{style:kn,ref:Fe,className:e(M.arrow,te),"data-placement":Ge}));return n.createElement(n.Fragment,null,n.createElement(x,{className:e(ie),wrapperElement:se,ref:Ae,onBlur:fn,onKeyDown:gn,onClick:yn,onFocus:hn,onMouseDown:vn,onMouseEnter:wn,onMouseLeave:Cn,onContextMenu:bn},H),C()&&ze&&s(n.createElement(O,{layerRef:Le},On),_e()))}export{R as default};
1
+ import e from"classnames";import n,{useState as t,useRef as r,useContext as o,useMemo as a,useCallback as l,useEffect as i}from"react";import{createPortal as s}from"react-dom";import{offset as u,flip as c,shift as m,arrow as d,hide as p,autoUpdate as f,useFloating as g}from"@floating-ui/react-dom";import{isFunction as y}from"es-toolkit";import{convertToArray as h,isInsideClass as v,chainFunctions as w,isClient as b,getTestId as C,ComponentDefaultTestId as D,chainRefFunctions as E,NOOP as k}from"@vibe/shared";import T from"./components/DialogContent/DialogContent.js";import{Refable as x}from"./components/Refable/Refable.js";import M from"./Dialog.module.scss.js";import{LayerContext as S,LayerProvider as O}from"@vibe/layer";function R({id:R,"data-testid":A,children:H,content:L,position:j="top",moveBy:N={main:0,secondary:0},middleware:F=[],startingEdge:I,showDelay:z=100,hideDelay:B=100,instantShowAndHide:K=!1,getDynamicShowDelay:W,showTrigger:q="mouseenter",hideTrigger:G="mouseleave",showOnDialogEnter:P=!1,showTriggerIgnoreClass:V,hideTriggerIgnoreClass:J,addKeyboardHideShowTriggersByDefault:Q=!0,shouldShowOnMount:U=!1,disable:X=!1,open:Y=!1,isOpen:Z,useDerivedStateFromProps:$=!1,animationType:_="expand",preventAnimationOnMount:ee=!1,tooltip:ne=!1,tooltipClassName:te,containerSelector:re,disableContainerScroll:oe,zIndex:ae,wrapperClassName:le,referenceWrapperClassName:ie,referenceWrapperElement:se,onBlur:ue,onKeyDown:ce,onClick:me,onFocus:de,onMouseDown:pe,onMouseEnter:fe,onMouseLeave:ge,onContextMenu:ye,onDialogDidShow:he=k,onDialogDidHide:ve=k,onClickOutside:we=k,onContentClick:be=k,hideWhenReferenceHidden:Ce=!1,shouldCallbackOnMount:De=!1,observeContentResize:Ee=!1,enableNestedDialogLayer:ke=!0}){var Te,xe;const[Me,Se]=t(U),[Oe,Re]=t(!1),[Ae,He]=t(null),Le=r(null),je=r(null),Ne=r(null),Fe=r(null),Ie=n.Children.toArray(H).some((e=>n.isValidElement(e))),{layerRef:ze}=o(S),Be=($?Z:Me)||Y,Ke=a((()=>{const e=[],n=F.filter((e=>null!=e&&"object"==typeof e&&"function"==typeof e.fn)),t=n.some((e=>"offset"===e.name)),r=n.some((e=>"flip"===e.name)),o=n.some((e=>"shift"===e.name));return t||0===N.main&&0===N.secondary||e.push(u({mainAxis:N.main||0,crossAxis:N.secondary||0})),r||e.push(c()),o||e.push(m()),e.push(...n),ne&&e.push(d({element:Fe})),Ce&&e.push(p()),e}),[N.main,N.secondary,ne,Ce,F]),We=l(((e,n,t)=>f(e,n,t,{elementResize:Ee,layoutShift:!1})),[Ee]),{refs:qe,floatingStyles:Ge,placement:Pe,middlewareData:Ve}=g({placement:j,middleware:Ke,whileElementsMounted:We,elements:{reference:Ae}}),Je=null!==(xe=null===(Te=Ve.hide)||void 0===Te?void 0:Te.referenceHidden)&&void 0!==xe&&xe,Qe=l((e=>{const n=h(q);return!(!Q||"focus"!==e||!n.includes("mouseenter"))||n.includes(e)}),[q,Q]),Ue=l((e=>{const n=h(G);return!(!Q||"blur"!==e||!n.includes("mouseleave"))||n.includes(e)}),[G,Q]),Xe=l(((e,n,t={})=>{let r=z,o=t.preventAnimation;if(W){const e=W();r=e.showDelay||0,o=null!=o?o:e.preventAnimation}K?(he(e,n),Se(!0),Re(!!o),Le.current=null):Le.current=setTimeout((()=>{he(e,n),Le.current=null,Se(!0),Re(!!o)}),r)}),[z,W,K,he]),Ye=l(((e,n)=>{K?(ve(e,n),Se(!1),je.current=null):je.current=setTimeout((()=>{ve(e,n),Se(!1),je.current=null}),B)}),[B,K,ve]),Ze=l(((e,n,t={})=>{X||(je.current&&(clearTimeout(je.current),je.current=null),Le.current||Xe(e,n,t))}),[X,Xe]),$e=l(((e,n)=>{Le.current&&(clearTimeout(Le.current),Le.current=null),je.current||Ye(e,n)}),[Ye]),_e=l(((e,n,t)=>{if(n)return!Qe(e)||Be||v(n,V)?Ue(e)&&!v(n,J)?$e(t,e):void 0:Ze(t,e)}),[Qe,Ue,Be,V,J,Ze,$e]),en=l((()=>{if(re){const e=document.querySelector(re);if(e instanceof Element)return e}return(null==ze?void 0:ze.current)||document.body}),[re,ze]),nn=l((e=>_e("mouseenter",e.target,e)),[_e]),tn=l((e=>_e("mouseleave",e.target,e)),[_e]),rn=l((e=>{e.button||_e("click",e.target,e)}),[_e]),on=l((e=>{"Enter"===e.key&&_e("enter",e.target,e),"Tab"===e.key&&_e("tab",e.target,e)}),[_e]),an=l((e=>{e.button||_e("mousedown",e.target,e)}),[_e]),ln=l((e=>_e("focus",e.target,e)),[_e]),sn=l((e=>{_e("blur",e.relatedTarget||e.target,e)}),[_e]),un=l((e=>_e("esckey",e.target,e)),[_e]),cn=l((e=>{(Qe("contextmenu")&&!Be||Ue("contextmenu")&&Be)&&e.preventDefault(),_e("contextmenu",e.target,e)}),[Be,Qe,Ue,_e]),mn=l((e=>{_e("clickoutside",e.target,e),we(e)}),[_e,we]),dn=l((e=>{P&&Ze(e,"DialogEnter")}),[P,Ze]),pn=l((e=>{P&&$e(e,"DialogLeave")}),[P,$e]),fn=l((e=>{_e("onContentClick",e.target,e),be(e)}),[_e,be]),gn=a((()=>w([ue,sn],!0)),[ue,sn]),yn=a((()=>w([ce,on],!0)),[ce,on]),hn=a((()=>w([me,rn],!0)),[me,rn]),vn=a((()=>w([de,ln],!0)),[de,ln]),wn=a((()=>w([pe,an],!0)),[pe,an]),bn=a((()=>w([fe,nn],!0)),[fe,nn]),Cn=a((()=>w([ge,tn],!0)),[ge,tn]),Dn=a((()=>w([ye,cn],!0)),[ye,cn]),En=r();En.current=e=>{if(Be)switch(e.key){case"Escape":$e(e,"esckey");break;case"Tab":_e("tab",e.target,e);break;case"Enter":_e("enter",e.target,e)}},i((()=>{De&&U&&he()}),[]),i((()=>()=>{Le.current&&clearTimeout(Le.current),je.current&&clearTimeout(je.current)}),[]),i((()=>{if(!b())return;const e=e=>{var n;return null===(n=En.current)||void 0===n?void 0:n.call(En,e)};return document.addEventListener("keyup",e),()=>document.removeEventListener("keyup",e)}),[]),i((()=>{if(Ce&&Je&&Be){const e=new CustomEvent("onReferenceHidden");Ye(e,"onReferenceHidden")}}),[Ce,Je,Be,Ye]);const kn=A||C(D.DIALOG,R),Tn=a((()=>{if(!Ve.arrow)return{};const{x:e,y:n}=Ve.arrow;return{left:null!=e?e+"px":"",top:null!=n?n+"px":"",transform:"rotate(45deg)"}}),[Ve.arrow]),xn=a((()=>Object.assign(Ie?Object.assign({},Ge):{},void 0!==ae&&{zIndex:ae})),[Ge,ae,Ie]),Mn=ee||Oe?void 0:_,Sn=y(L)?L():L;if(!Sn)return n.createElement(n.Fragment,null,H);const On=E([qe.setFloating,Ne]),Rn=n.createElement(T,{"data-testid":kn,isReferenceHidden:Ce&&Je,onMouseEnter:dn,onMouseLeave:pn,onClickOutside:mn,onContextMenu:cn,onEsc:un,animationType:Mn,position:Pe,wrapperClassName:le,startingEdge:I,isOpen:Be,showDelay:z,styleObject:xn,ref:On,onClick:fn,hasTooltip:!!ne,containerSelector:re,disableContainerScroll:oe},Sn,ne&&n.createElement("div",{style:Tn,ref:Fe,className:e(M.arrow,te),"data-placement":Pe}));return n.createElement(n.Fragment,null,n.createElement(x,{className:e(ie),wrapperElement:se,ref:He,onBlur:gn,onKeyDown:yn,onClick:hn,onFocus:vn,onMouseDown:wn,onMouseEnter:bn,onMouseLeave:Cn,onContextMenu:Dn},H),b()&&Be&&s(ke?n.createElement(O,{layerRef:Ne},Rn):Rn,en()))}export{R as default};
2
2
  //# sourceMappingURL=Dialog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Dialog.js","sources":["../../../src/Dialog/Dialog.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport React, { useState, useEffect, useRef, useContext, useCallback, useMemo } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport {\n useFloating,\n offset,\n flip,\n shift,\n hide,\n arrow as arrowMiddleware,\n autoUpdate,\n type Placement,\n type Middleware\n} from \"@floating-ui/react-dom\";\nimport { isFunction } from \"es-toolkit\";\nimport {\n chainFunctions,\n chainRefFunctions,\n convertToArray,\n NOOP,\n isInsideClass,\n ComponentDefaultTestId,\n getTestId,\n isClient\n} from \"@vibe/shared\";\nimport DialogContent from \"./components/DialogContent/DialogContent\";\nimport { Refable } from \"./components/Refable/Refable\";\nimport styles from \"./Dialog.module.scss\";\nimport { type DialogTriggerEvent, type DialogEvent, type DialogProps } from \"./Dialog.types\";\nimport { LayerContext, LayerProvider } from \"@vibe/layer\";\n\nfunction Dialog({\n // Core props\n id,\n \"data-testid\": dataTestId,\n children,\n content,\n position = \"top\",\n moveBy = { main: 0, secondary: 0 },\n middleware: middlewareProp = [],\n startingEdge,\n showDelay = 100,\n hideDelay = 100,\n instantShowAndHide = false,\n getDynamicShowDelay,\n showTrigger = \"mouseenter\",\n hideTrigger = \"mouseleave\",\n showOnDialogEnter = false,\n showTriggerIgnoreClass,\n hideTriggerIgnoreClass,\n addKeyboardHideShowTriggersByDefault = true,\n shouldShowOnMount = false,\n disable = false,\n open = false,\n isOpen: isOpenProp,\n useDerivedStateFromProps = false,\n animationType = \"expand\",\n preventAnimationOnMount = false,\n tooltip = false,\n tooltipClassName,\n containerSelector,\n disableContainerScroll,\n zIndex,\n wrapperClassName,\n referenceWrapperClassName,\n referenceWrapperElement,\n onBlur: onBlurProp,\n onKeyDown: onKeyDownProp,\n onClick: onClickProp,\n onFocus: onFocusProp,\n onMouseDown: onMouseDownProp,\n onMouseEnter: onMouseEnterProp,\n onMouseLeave: onMouseLeaveProp,\n onContextMenu: onContextMenuProp,\n onDialogDidShow = NOOP,\n onDialogDidHide = NOOP,\n onClickOutside: onClickOutsideProp = NOOP,\n onContentClick: onContentClickProp = NOOP,\n hideWhenReferenceHidden = false,\n shouldCallbackOnMount = false,\n observeContentResize = false\n}: DialogProps) {\n const [isOpenState, setIsOpenState] = useState(shouldShowOnMount);\n const [preventAnimation, setPreventAnimation] = useState(false);\n const [referenceElement, setReferenceElement] = useState<HTMLElement | null>(null);\n\n const showTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const hideTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const arrowRef = useRef<HTMLDivElement>(null);\n\n // Check if children are valid React elements (Refable returns null for non-elements)\n const hasValidChildren = React.Children.toArray(children).some(child => React.isValidElement(child));\n\n const { layerRef } = useContext(LayerContext);\n\n // Derived state\n const isOpenInternal = useDerivedStateFromProps ? isOpenProp : isOpenState;\n const isShown = isOpenInternal || open;\n\n // Build middleware array for Floating UI\n const floatingMiddleware = useMemo<Middleware[]>(() => {\n const middlewareList: Middleware[] = [];\n\n // Get user-provided middleware (filter out invalid ones)\n const validMiddleware = middlewareProp.filter(\n (m): m is Middleware => m != null && typeof m === \"object\" && typeof m.fn === \"function\"\n );\n\n // Check if user provided their own middleware to override defaults\n const hasCustomOffset = validMiddleware.some(m => m.name === \"offset\");\n const hasCustomFlip = validMiddleware.some(m => m.name === \"flip\");\n const hasCustomShift = validMiddleware.some(m => m.name === \"shift\");\n\n // Offset middleware - skip if user provided their own\n if (!hasCustomOffset && (moveBy.main !== 0 || moveBy.secondary !== 0)) {\n middlewareList.push(offset({ mainAxis: moveBy.main || 0, crossAxis: moveBy.secondary || 0 }));\n }\n\n // Core positioning middleware - skip if user provided their own\n if (!hasCustomFlip) {\n middlewareList.push(flip());\n }\n if (!hasCustomShift) {\n middlewareList.push(shift());\n }\n\n // Add user-provided middleware\n middlewareList.push(...validMiddleware);\n\n // Arrow middleware - pass ref directly, Floating UI handles null refs\n if (tooltip) {\n middlewareList.push(arrowMiddleware({ element: arrowRef }));\n }\n\n // Hide middleware for detecting when reference is hidden\n if (hideWhenReferenceHidden) {\n middlewareList.push(hide());\n }\n\n return middlewareList;\n }, [moveBy.main, moveBy.secondary, tooltip, hideWhenReferenceHidden, middlewareProp]);\n\n // Configure autoUpdate for position tracking\n const whileElementsMounted = useCallback(\n (reference: HTMLElement, floating: HTMLElement, update: () => void) => {\n return autoUpdate(reference, floating, update, {\n elementResize: observeContentResize,\n layoutShift: false\n });\n },\n [observeContentResize]\n );\n\n // Use Floating UI hook\n const { refs, floatingStyles, placement, middlewareData } = useFloating({\n placement: position as Placement,\n middleware: floatingMiddleware,\n whileElementsMounted,\n elements: {\n reference: referenceElement\n }\n });\n\n // Check if reference is hidden (from hide middleware)\n const isReferenceHidden = middlewareData.hide?.referenceHidden ?? false;\n\n const isShowTrigger = useCallback(\n (eventName: DialogTriggerEvent) => {\n const showTriggersArray = convertToArray(showTrigger);\n if (addKeyboardHideShowTriggersByDefault && eventName === \"focus\" && showTriggersArray.includes(\"mouseenter\")) {\n return true;\n }\n return showTriggersArray.includes(eventName);\n },\n [showTrigger, addKeyboardHideShowTriggersByDefault]\n );\n\n const isHideTrigger = useCallback(\n (eventName: DialogTriggerEvent) => {\n const hideTriggersArray = convertToArray(hideTrigger);\n if (addKeyboardHideShowTriggersByDefault && eventName === \"blur\" && hideTriggersArray.includes(\"mouseleave\")) {\n return true;\n }\n return hideTriggersArray.includes(eventName);\n },\n [hideTrigger, addKeyboardHideShowTriggersByDefault]\n );\n\n const showDialog = useCallback(\n (event: DialogEvent, eventName: DialogTriggerEvent | string, options: { preventAnimation?: boolean } = {}) => {\n let finalShowDelay = showDelay;\n let preventAnimationValue = options.preventAnimation;\n if (getDynamicShowDelay) {\n const dynamicDelayObj = getDynamicShowDelay();\n finalShowDelay = dynamicDelayObj.showDelay || 0;\n preventAnimationValue = preventAnimationValue ?? dynamicDelayObj.preventAnimation;\n }\n\n if (instantShowAndHide) {\n onDialogDidShow(event, eventName);\n setIsOpenState(true);\n setPreventAnimation(!!preventAnimationValue);\n showTimeoutRef.current = null;\n } else {\n showTimeoutRef.current = setTimeout(() => {\n onDialogDidShow(event, eventName);\n showTimeoutRef.current = null;\n setIsOpenState(true);\n setPreventAnimation(!!preventAnimationValue);\n }, finalShowDelay);\n }\n },\n [showDelay, getDynamicShowDelay, instantShowAndHide, onDialogDidShow]\n );\n\n const hideDialog = useCallback(\n (event: DialogEvent, eventName: DialogTriggerEvent | string) => {\n if (instantShowAndHide) {\n onDialogDidHide(event, eventName);\n setIsOpenState(false);\n hideTimeoutRef.current = null;\n } else {\n hideTimeoutRef.current = setTimeout(() => {\n onDialogDidHide(event, eventName);\n setIsOpenState(false);\n hideTimeoutRef.current = null;\n }, hideDelay);\n }\n },\n [hideDelay, instantShowAndHide, onDialogDidHide]\n );\n\n const showDialogIfNeeded = useCallback(\n (event: DialogEvent, eventName: DialogTriggerEvent | string, options = {}) => {\n if (disable) {\n return;\n }\n\n if (hideTimeoutRef.current) {\n clearTimeout(hideTimeoutRef.current);\n hideTimeoutRef.current = null;\n }\n\n if (!showTimeoutRef.current) {\n showDialog(event, eventName, options);\n }\n },\n [disable, showDialog]\n );\n\n const hideDialogIfNeeded = useCallback(\n (event: DialogEvent, eventName: DialogTriggerEvent | string) => {\n if (showTimeoutRef.current) {\n clearTimeout(showTimeoutRef.current);\n showTimeoutRef.current = null;\n }\n\n if (!hideTimeoutRef.current) {\n hideDialog(event, eventName);\n }\n },\n [hideDialog]\n );\n\n // Event handling\n const handleEvent = useCallback(\n (eventName: DialogTriggerEvent, target: EventTarget | null, event: DialogEvent) => {\n if (!target) return; // Guard against null targets (e.g., when focus leaves the document)\n if (isShowTrigger(eventName) && !isShown && !isInsideClass(target as HTMLElement, showTriggerIgnoreClass)) {\n return showDialogIfNeeded(event, eventName);\n }\n\n if (isHideTrigger(eventName) && !isInsideClass(target as HTMLElement, hideTriggerIgnoreClass)) {\n return hideDialogIfNeeded(event, eventName);\n }\n },\n [\n isShowTrigger,\n isHideTrigger,\n isShown,\n showTriggerIgnoreClass,\n hideTriggerIgnoreClass,\n showDialogIfNeeded,\n hideDialogIfNeeded\n ]\n );\n\n const getContainer = useCallback(() => {\n if (containerSelector) {\n const containerElement = document.querySelector(containerSelector);\n if (containerElement instanceof Element) {\n return containerElement;\n }\n }\n return layerRef?.current || document.body;\n }, [containerSelector, layerRef]);\n\n // Memoized event handlers to prevent unnecessary re-renders\n const onMouseEnter = useCallback((e: React.MouseEvent) => handleEvent(\"mouseenter\", e.target, e), [handleEvent]);\n const onMouseLeave = useCallback((e: React.MouseEvent) => handleEvent(\"mouseleave\", e.target, e), [handleEvent]);\n const onClick = useCallback(\n (e: React.MouseEvent) => {\n if (e.button) return;\n handleEvent(\"click\", e.target, e);\n },\n [handleEvent]\n );\n const onKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n // Handle element-level keyboard events for triggers\n if (event.key === \"Enter\") handleEvent(\"enter\", event.target, event);\n if (event.key === \"Tab\") handleEvent(\"tab\", event.target, event);\n },\n [handleEvent]\n );\n\n const onMouseDown = useCallback(\n (e: React.MouseEvent) => {\n if (e.button) return;\n handleEvent(\"mousedown\", e.target, e);\n },\n [handleEvent]\n );\n const onFocus = useCallback((e: React.FocusEvent) => handleEvent(\"focus\", e.target, e), [handleEvent]);\n const onBlur = useCallback(\n (e: React.FocusEvent) => {\n const target = e.relatedTarget || e.target;\n handleEvent(\"blur\", target, e);\n },\n [handleEvent]\n );\n const onEsc = useCallback((e: React.KeyboardEvent) => handleEvent(\"esckey\", e.target, e), [handleEvent]);\n const onContextMenu = useCallback(\n (e: React.MouseEvent) => {\n if ((isShowTrigger(\"contextmenu\") && !isShown) || (isHideTrigger(\"contextmenu\") && isShown)) {\n e.preventDefault();\n }\n handleEvent(\"contextmenu\", e.target, e);\n },\n [isShown, isShowTrigger, isHideTrigger, handleEvent]\n );\n\n const onClickOutside = useCallback(\n (event: React.MouseEvent) => {\n handleEvent(\"clickoutside\", event.target, event);\n onClickOutsideProp(event);\n },\n [handleEvent, onClickOutsideProp]\n );\n\n const onDialogEnter = useCallback(\n (event: React.MouseEvent) => {\n if (showOnDialogEnter) showDialogIfNeeded(event, \"DialogEnter\");\n },\n [showOnDialogEnter, showDialogIfNeeded]\n );\n\n const onDialogLeave = useCallback(\n (event: React.MouseEvent) => {\n if (showOnDialogEnter) hideDialogIfNeeded(event, \"DialogLeave\");\n },\n [showOnDialogEnter, hideDialogIfNeeded]\n );\n\n const onContentClick = useCallback(\n (e: React.MouseEvent) => {\n handleEvent(\"onContentClick\", e.target, e);\n onContentClickProp(e);\n },\n [handleEvent, onContentClickProp]\n );\n\n // Memoized chained event handlers to prevent Refable children re-renders\n const chainedOnBlur = useMemo(() => chainFunctions([onBlurProp, onBlur], true), [onBlurProp, onBlur]);\n const chainedOnKeyDown = useMemo(() => chainFunctions([onKeyDownProp, onKeyDown], true), [onKeyDownProp, onKeyDown]);\n const chainedOnClick = useMemo(() => chainFunctions([onClickProp, onClick], true), [onClickProp, onClick]);\n const chainedOnFocus = useMemo(() => chainFunctions([onFocusProp, onFocus], true), [onFocusProp, onFocus]);\n const chainedOnMouseDown = useMemo(\n () => chainFunctions([onMouseDownProp, onMouseDown], true),\n [onMouseDownProp, onMouseDown]\n );\n const chainedOnMouseEnter = useMemo(\n () => chainFunctions([onMouseEnterProp, onMouseEnter], true),\n [onMouseEnterProp, onMouseEnter]\n );\n const chainedOnMouseLeave = useMemo(\n () => chainFunctions([onMouseLeaveProp, onMouseLeave], true),\n [onMouseLeaveProp, onMouseLeave]\n );\n const chainedOnContextMenu = useMemo(\n () => chainFunctions([onContextMenuProp, onContextMenu], true),\n [onContextMenuProp, onContextMenu]\n );\n\n // Document-level keyboard handler using stable ref pattern\n // Must handle Escape, Tab, and Enter at document level to match old behavior\n const closeDialogOnEscapeRef = useRef<(event: KeyboardEvent) => void>();\n closeDialogOnEscapeRef.current = (event: KeyboardEvent) => {\n if (!isShown) return;\n\n switch (event.key) {\n case \"Escape\":\n hideDialogIfNeeded(event, \"esckey\");\n break;\n case \"Tab\":\n handleEvent(\"tab\", event.target, event);\n break;\n case \"Enter\":\n handleEvent(\"enter\", event.target, event);\n break;\n }\n };\n\n // Effects\n\n // Callback on mount\n useEffect(() => {\n if (shouldCallbackOnMount && shouldShowOnMount) {\n onDialogDidShow();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // Cleanup timeouts on unmount\n useEffect(() => {\n return () => {\n if (showTimeoutRef.current) clearTimeout(showTimeoutRef.current);\n if (hideTimeoutRef.current) clearTimeout(hideTimeoutRef.current);\n };\n }, []);\n\n // Document keyboard listener (stable reference via ref)\n useEffect(() => {\n if (!isClient()) return;\n\n const handler = (event: KeyboardEvent) => closeDialogOnEscapeRef.current?.(event);\n document.addEventListener(\"keyup\", handler);\n return () => document.removeEventListener(\"keyup\", handler);\n }, []);\n\n // Handle reference hidden state\n useEffect(() => {\n if (hideWhenReferenceHidden && isReferenceHidden && isShown) {\n const event = new CustomEvent(\"onReferenceHidden\");\n hideDialog(event, \"onReferenceHidden\");\n }\n }, [hideWhenReferenceHidden, isReferenceHidden, isShown, hideDialog]);\n\n // Computed values\n const overrideDataTestId = dataTestId || getTestId(ComponentDefaultTestId.DIALOG, id);\n\n const arrowStyles = useMemo<React.CSSProperties>(() => {\n if (!middlewareData.arrow) return {};\n const { x, y } = middlewareData.arrow;\n return {\n left: x != null ? `${x}px` : \"\",\n top: y != null ? `${y}px` : \"\",\n transform: \"rotate(45deg)\"\n };\n }, [middlewareData.arrow]);\n\n // Skip Floating UI positioning when no children (e.g. floating Tipseen) — let CSS handle it\n const finalFloatingStyles = useMemo<React.CSSProperties>(\n () =>\n hasValidChildren\n ? { ...floatingStyles, ...(zIndex !== undefined && { zIndex }) }\n : { ...(zIndex !== undefined && { zIndex }) },\n [floatingStyles, zIndex, hasValidChildren]\n );\n\n const animationTypeCalculated = preventAnimationOnMount || preventAnimation ? undefined : animationType;\n const contentRendered = isFunction(content) ? content() : content;\n\n // Early return if no content - wrap in fragment for type safety\n if (!contentRendered) {\n return <>{children}</>;\n }\n\n const mergedFloatingRef = chainRefFunctions([refs.setFloating, containerRef]);\n\n const dialogContent = (\n <DialogContent\n data-testid={overrideDataTestId}\n isReferenceHidden={hideWhenReferenceHidden && isReferenceHidden}\n onMouseEnter={onDialogEnter}\n onMouseLeave={onDialogLeave}\n onClickOutside={onClickOutside}\n onContextMenu={onContextMenu}\n onEsc={onEsc}\n animationType={animationTypeCalculated}\n position={placement}\n wrapperClassName={wrapperClassName}\n startingEdge={startingEdge}\n isOpen={isShown}\n showDelay={showDelay}\n styleObject={finalFloatingStyles}\n ref={mergedFloatingRef}\n onClick={onContentClick}\n hasTooltip={!!tooltip}\n containerSelector={containerSelector}\n disableContainerScroll={disableContainerScroll}\n >\n {contentRendered}\n {tooltip && (\n <div\n style={arrowStyles}\n ref={arrowRef}\n className={cx(styles.arrow, tooltipClassName)}\n data-placement={placement}\n />\n )}\n </DialogContent>\n );\n\n return (\n <>\n <Refable\n className={cx(referenceWrapperClassName)}\n wrapperElement={referenceWrapperElement}\n ref={setReferenceElement}\n onBlur={chainedOnBlur}\n onKeyDown={chainedOnKeyDown}\n onClick={chainedOnClick}\n onFocus={chainedOnFocus}\n onMouseDown={chainedOnMouseDown}\n onMouseEnter={chainedOnMouseEnter}\n onMouseLeave={chainedOnMouseLeave}\n onContextMenu={chainedOnContextMenu}\n >\n {children}\n </Refable>\n {isClient() &&\n isShown &&\n createPortal(<LayerProvider layerRef={containerRef}>{dialogContent}</LayerProvider>, getContainer())}\n </>\n );\n}\n\nexport default Dialog;\n"],"names":["Dialog","id","dataTestId","children","content","position","moveBy","main","secondary","middleware","middlewareProp","startingEdge","showDelay","hideDelay","instantShowAndHide","getDynamicShowDelay","showTrigger","hideTrigger","showOnDialogEnter","showTriggerIgnoreClass","hideTriggerIgnoreClass","addKeyboardHideShowTriggersByDefault","shouldShowOnMount","disable","open","isOpen","isOpenProp","useDerivedStateFromProps","animationType","preventAnimationOnMount","tooltip","tooltipClassName","containerSelector","disableContainerScroll","zIndex","wrapperClassName","referenceWrapperClassName","referenceWrapperElement","onBlur","onBlurProp","onKeyDown","onKeyDownProp","onClick","onClickProp","onFocus","onFocusProp","onMouseDown","onMouseDownProp","onMouseEnter","onMouseEnterProp","onMouseLeave","onMouseLeaveProp","onContextMenu","onContextMenuProp","onDialogDidShow","NOOP","onDialogDidHide","onClickOutside","onClickOutsideProp","onContentClick","onContentClickProp","hideWhenReferenceHidden","shouldCallbackOnMount","observeContentResize","isOpenState","setIsOpenState","useState","preventAnimation","setPreventAnimation","referenceElement","setReferenceElement","showTimeoutRef","useRef","hideTimeoutRef","containerRef","arrowRef","hasValidChildren","React","Children","toArray","some","child","isValidElement","layerRef","useContext","LayerContext","isShown","floatingMiddleware","useMemo","middlewareList","validMiddleware","filter","m","fn","hasCustomOffset","name","hasCustomFlip","hasCustomShift","push","offset","mainAxis","crossAxis","flip","shift","arrowMiddleware","element","hide","whileElementsMounted","useCallback","reference","floating","update","autoUpdate","elementResize","layoutShift","refs","floatingStyles","placement","middlewareData","useFloating","elements","isReferenceHidden","_b","_a","referenceHidden","isShowTrigger","eventName","showTriggersArray","convertToArray","includes","isHideTrigger","hideTriggersArray","showDialog","event","options","finalShowDelay","preventAnimationValue","dynamicDelayObj","current","setTimeout","hideDialog","showDialogIfNeeded","clearTimeout","hideDialogIfNeeded","handleEvent","target","isInsideClass","getContainer","containerElement","document","querySelector","Element","body","e","button","key","relatedTarget","onEsc","preventDefault","onDialogEnter","onDialogLeave","chainedOnBlur","chainFunctions","chainedOnKeyDown","chainedOnClick","chainedOnFocus","chainedOnMouseDown","chainedOnMouseEnter","chainedOnMouseLeave","chainedOnContextMenu","closeDialogOnEscapeRef","useEffect","isClient","handler","call","addEventListener","removeEventListener","CustomEvent","overrideDataTestId","getTestId","ComponentDefaultTestId","DIALOG","arrowStyles","arrow","x","y","left","top","transform","finalFloatingStyles","Object","assign","undefined","animationTypeCalculated","contentRendered","isFunction","createElement","Fragment","mergedFloatingRef","chainRefFunctions","setFloating","dialogContent","DialogContent","styleObject","ref","hasTooltip","style","className","cx","styles","Refable","wrapperElement","createPortal","LayerProvider"],"mappings":"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"}
1
+ {"version":3,"file":"Dialog.js","sources":["../../../src/Dialog/Dialog.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport React, { useState, useEffect, useRef, useContext, useCallback, useMemo } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport {\n useFloating,\n offset,\n flip,\n shift,\n hide,\n arrow as arrowMiddleware,\n autoUpdate,\n type Placement,\n type Middleware\n} from \"@floating-ui/react-dom\";\nimport { isFunction } from \"es-toolkit\";\nimport {\n chainFunctions,\n chainRefFunctions,\n convertToArray,\n NOOP,\n isInsideClass,\n ComponentDefaultTestId,\n getTestId,\n isClient\n} from \"@vibe/shared\";\nimport DialogContent from \"./components/DialogContent/DialogContent\";\nimport { Refable } from \"./components/Refable/Refable\";\nimport styles from \"./Dialog.module.scss\";\nimport { type DialogTriggerEvent, type DialogEvent, type DialogProps } from \"./Dialog.types\";\nimport { LayerContext, LayerProvider } from \"@vibe/layer\";\n\nfunction Dialog({\n // Core props\n id,\n \"data-testid\": dataTestId,\n children,\n content,\n position = \"top\",\n moveBy = { main: 0, secondary: 0 },\n middleware: middlewareProp = [],\n startingEdge,\n showDelay = 100,\n hideDelay = 100,\n instantShowAndHide = false,\n getDynamicShowDelay,\n showTrigger = \"mouseenter\",\n hideTrigger = \"mouseleave\",\n showOnDialogEnter = false,\n showTriggerIgnoreClass,\n hideTriggerIgnoreClass,\n addKeyboardHideShowTriggersByDefault = true,\n shouldShowOnMount = false,\n disable = false,\n open = false,\n isOpen: isOpenProp,\n useDerivedStateFromProps = false,\n animationType = \"expand\",\n preventAnimationOnMount = false,\n tooltip = false,\n tooltipClassName,\n containerSelector,\n disableContainerScroll,\n zIndex,\n wrapperClassName,\n referenceWrapperClassName,\n referenceWrapperElement,\n onBlur: onBlurProp,\n onKeyDown: onKeyDownProp,\n onClick: onClickProp,\n onFocus: onFocusProp,\n onMouseDown: onMouseDownProp,\n onMouseEnter: onMouseEnterProp,\n onMouseLeave: onMouseLeaveProp,\n onContextMenu: onContextMenuProp,\n onDialogDidShow = NOOP,\n onDialogDidHide = NOOP,\n onClickOutside: onClickOutsideProp = NOOP,\n onContentClick: onContentClickProp = NOOP,\n hideWhenReferenceHidden = false,\n shouldCallbackOnMount = false,\n observeContentResize = false,\n enableNestedDialogLayer = true\n}: DialogProps) {\n const [isOpenState, setIsOpenState] = useState(shouldShowOnMount);\n const [preventAnimation, setPreventAnimation] = useState(false);\n const [referenceElement, setReferenceElement] = useState<HTMLElement | null>(null);\n\n const showTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const hideTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const arrowRef = useRef<HTMLDivElement>(null);\n\n // Check if children are valid React elements (Refable returns null for non-elements)\n const hasValidChildren = React.Children.toArray(children).some(child => React.isValidElement(child));\n\n const { layerRef } = useContext(LayerContext);\n\n // Derived state\n const isOpenInternal = useDerivedStateFromProps ? isOpenProp : isOpenState;\n const isShown = isOpenInternal || open;\n\n // Build middleware array for Floating UI\n const floatingMiddleware = useMemo<Middleware[]>(() => {\n const middlewareList: Middleware[] = [];\n\n // Get user-provided middleware (filter out invalid ones)\n const validMiddleware = middlewareProp.filter(\n (m): m is Middleware => m != null && typeof m === \"object\" && typeof m.fn === \"function\"\n );\n\n // Check if user provided their own middleware to override defaults\n const hasCustomOffset = validMiddleware.some(m => m.name === \"offset\");\n const hasCustomFlip = validMiddleware.some(m => m.name === \"flip\");\n const hasCustomShift = validMiddleware.some(m => m.name === \"shift\");\n\n // Offset middleware - skip if user provided their own\n if (!hasCustomOffset && (moveBy.main !== 0 || moveBy.secondary !== 0)) {\n middlewareList.push(offset({ mainAxis: moveBy.main || 0, crossAxis: moveBy.secondary || 0 }));\n }\n\n // Core positioning middleware - skip if user provided their own\n if (!hasCustomFlip) {\n middlewareList.push(flip());\n }\n if (!hasCustomShift) {\n middlewareList.push(shift());\n }\n\n // Add user-provided middleware\n middlewareList.push(...validMiddleware);\n\n // Arrow middleware - pass ref directly, Floating UI handles null refs\n if (tooltip) {\n middlewareList.push(arrowMiddleware({ element: arrowRef }));\n }\n\n // Hide middleware for detecting when reference is hidden\n if (hideWhenReferenceHidden) {\n middlewareList.push(hide());\n }\n\n return middlewareList;\n }, [moveBy.main, moveBy.secondary, tooltip, hideWhenReferenceHidden, middlewareProp]);\n\n // Configure autoUpdate for position tracking\n const whileElementsMounted = useCallback(\n (reference: HTMLElement, floating: HTMLElement, update: () => void) => {\n return autoUpdate(reference, floating, update, {\n elementResize: observeContentResize,\n layoutShift: false\n });\n },\n [observeContentResize]\n );\n\n // Use Floating UI hook\n const { refs, floatingStyles, placement, middlewareData } = useFloating({\n placement: position as Placement,\n middleware: floatingMiddleware,\n whileElementsMounted,\n elements: {\n reference: referenceElement\n }\n });\n\n // Check if reference is hidden (from hide middleware)\n const isReferenceHidden = middlewareData.hide?.referenceHidden ?? false;\n\n const isShowTrigger = useCallback(\n (eventName: DialogTriggerEvent) => {\n const showTriggersArray = convertToArray(showTrigger);\n if (addKeyboardHideShowTriggersByDefault && eventName === \"focus\" && showTriggersArray.includes(\"mouseenter\")) {\n return true;\n }\n return showTriggersArray.includes(eventName);\n },\n [showTrigger, addKeyboardHideShowTriggersByDefault]\n );\n\n const isHideTrigger = useCallback(\n (eventName: DialogTriggerEvent) => {\n const hideTriggersArray = convertToArray(hideTrigger);\n if (addKeyboardHideShowTriggersByDefault && eventName === \"blur\" && hideTriggersArray.includes(\"mouseleave\")) {\n return true;\n }\n return hideTriggersArray.includes(eventName);\n },\n [hideTrigger, addKeyboardHideShowTriggersByDefault]\n );\n\n const showDialog = useCallback(\n (event: DialogEvent, eventName: DialogTriggerEvent | string, options: { preventAnimation?: boolean } = {}) => {\n let finalShowDelay = showDelay;\n let preventAnimationValue = options.preventAnimation;\n if (getDynamicShowDelay) {\n const dynamicDelayObj = getDynamicShowDelay();\n finalShowDelay = dynamicDelayObj.showDelay || 0;\n preventAnimationValue = preventAnimationValue ?? dynamicDelayObj.preventAnimation;\n }\n\n if (instantShowAndHide) {\n onDialogDidShow(event, eventName);\n setIsOpenState(true);\n setPreventAnimation(!!preventAnimationValue);\n showTimeoutRef.current = null;\n } else {\n showTimeoutRef.current = setTimeout(() => {\n onDialogDidShow(event, eventName);\n showTimeoutRef.current = null;\n setIsOpenState(true);\n setPreventAnimation(!!preventAnimationValue);\n }, finalShowDelay);\n }\n },\n [showDelay, getDynamicShowDelay, instantShowAndHide, onDialogDidShow]\n );\n\n const hideDialog = useCallback(\n (event: DialogEvent, eventName: DialogTriggerEvent | string) => {\n if (instantShowAndHide) {\n onDialogDidHide(event, eventName);\n setIsOpenState(false);\n hideTimeoutRef.current = null;\n } else {\n hideTimeoutRef.current = setTimeout(() => {\n onDialogDidHide(event, eventName);\n setIsOpenState(false);\n hideTimeoutRef.current = null;\n }, hideDelay);\n }\n },\n [hideDelay, instantShowAndHide, onDialogDidHide]\n );\n\n const showDialogIfNeeded = useCallback(\n (event: DialogEvent, eventName: DialogTriggerEvent | string, options = {}) => {\n if (disable) {\n return;\n }\n\n if (hideTimeoutRef.current) {\n clearTimeout(hideTimeoutRef.current);\n hideTimeoutRef.current = null;\n }\n\n if (!showTimeoutRef.current) {\n showDialog(event, eventName, options);\n }\n },\n [disable, showDialog]\n );\n\n const hideDialogIfNeeded = useCallback(\n (event: DialogEvent, eventName: DialogTriggerEvent | string) => {\n if (showTimeoutRef.current) {\n clearTimeout(showTimeoutRef.current);\n showTimeoutRef.current = null;\n }\n\n if (!hideTimeoutRef.current) {\n hideDialog(event, eventName);\n }\n },\n [hideDialog]\n );\n\n // Event handling\n const handleEvent = useCallback(\n (eventName: DialogTriggerEvent, target: EventTarget | null, event: DialogEvent) => {\n if (!target) return; // Guard against null targets (e.g., when focus leaves the document)\n if (isShowTrigger(eventName) && !isShown && !isInsideClass(target as HTMLElement, showTriggerIgnoreClass)) {\n return showDialogIfNeeded(event, eventName);\n }\n\n if (isHideTrigger(eventName) && !isInsideClass(target as HTMLElement, hideTriggerIgnoreClass)) {\n return hideDialogIfNeeded(event, eventName);\n }\n },\n [\n isShowTrigger,\n isHideTrigger,\n isShown,\n showTriggerIgnoreClass,\n hideTriggerIgnoreClass,\n showDialogIfNeeded,\n hideDialogIfNeeded\n ]\n );\n\n const getContainer = useCallback(() => {\n if (containerSelector) {\n const containerElement = document.querySelector(containerSelector);\n if (containerElement instanceof Element) {\n return containerElement;\n }\n }\n return layerRef?.current || document.body;\n }, [containerSelector, layerRef]);\n\n // Memoized event handlers to prevent unnecessary re-renders\n const onMouseEnter = useCallback((e: React.MouseEvent) => handleEvent(\"mouseenter\", e.target, e), [handleEvent]);\n const onMouseLeave = useCallback((e: React.MouseEvent) => handleEvent(\"mouseleave\", e.target, e), [handleEvent]);\n const onClick = useCallback(\n (e: React.MouseEvent) => {\n if (e.button) return;\n handleEvent(\"click\", e.target, e);\n },\n [handleEvent]\n );\n const onKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n // Handle element-level keyboard events for triggers\n if (event.key === \"Enter\") handleEvent(\"enter\", event.target, event);\n if (event.key === \"Tab\") handleEvent(\"tab\", event.target, event);\n },\n [handleEvent]\n );\n\n const onMouseDown = useCallback(\n (e: React.MouseEvent) => {\n if (e.button) return;\n handleEvent(\"mousedown\", e.target, e);\n },\n [handleEvent]\n );\n const onFocus = useCallback((e: React.FocusEvent) => handleEvent(\"focus\", e.target, e), [handleEvent]);\n const onBlur = useCallback(\n (e: React.FocusEvent) => {\n const target = e.relatedTarget || e.target;\n handleEvent(\"blur\", target, e);\n },\n [handleEvent]\n );\n const onEsc = useCallback((e: React.KeyboardEvent) => handleEvent(\"esckey\", e.target, e), [handleEvent]);\n const onContextMenu = useCallback(\n (e: React.MouseEvent) => {\n if ((isShowTrigger(\"contextmenu\") && !isShown) || (isHideTrigger(\"contextmenu\") && isShown)) {\n e.preventDefault();\n }\n handleEvent(\"contextmenu\", e.target, e);\n },\n [isShown, isShowTrigger, isHideTrigger, handleEvent]\n );\n\n const onClickOutside = useCallback(\n (event: React.MouseEvent) => {\n handleEvent(\"clickoutside\", event.target, event);\n onClickOutsideProp(event);\n },\n [handleEvent, onClickOutsideProp]\n );\n\n const onDialogEnter = useCallback(\n (event: React.MouseEvent) => {\n if (showOnDialogEnter) showDialogIfNeeded(event, \"DialogEnter\");\n },\n [showOnDialogEnter, showDialogIfNeeded]\n );\n\n const onDialogLeave = useCallback(\n (event: React.MouseEvent) => {\n if (showOnDialogEnter) hideDialogIfNeeded(event, \"DialogLeave\");\n },\n [showOnDialogEnter, hideDialogIfNeeded]\n );\n\n const onContentClick = useCallback(\n (e: React.MouseEvent) => {\n handleEvent(\"onContentClick\", e.target, e);\n onContentClickProp(e);\n },\n [handleEvent, onContentClickProp]\n );\n\n // Memoized chained event handlers to prevent Refable children re-renders\n const chainedOnBlur = useMemo(() => chainFunctions([onBlurProp, onBlur], true), [onBlurProp, onBlur]);\n const chainedOnKeyDown = useMemo(() => chainFunctions([onKeyDownProp, onKeyDown], true), [onKeyDownProp, onKeyDown]);\n const chainedOnClick = useMemo(() => chainFunctions([onClickProp, onClick], true), [onClickProp, onClick]);\n const chainedOnFocus = useMemo(() => chainFunctions([onFocusProp, onFocus], true), [onFocusProp, onFocus]);\n const chainedOnMouseDown = useMemo(\n () => chainFunctions([onMouseDownProp, onMouseDown], true),\n [onMouseDownProp, onMouseDown]\n );\n const chainedOnMouseEnter = useMemo(\n () => chainFunctions([onMouseEnterProp, onMouseEnter], true),\n [onMouseEnterProp, onMouseEnter]\n );\n const chainedOnMouseLeave = useMemo(\n () => chainFunctions([onMouseLeaveProp, onMouseLeave], true),\n [onMouseLeaveProp, onMouseLeave]\n );\n const chainedOnContextMenu = useMemo(\n () => chainFunctions([onContextMenuProp, onContextMenu], true),\n [onContextMenuProp, onContextMenu]\n );\n\n // Document-level keyboard handler using stable ref pattern\n // Must handle Escape, Tab, and Enter at document level to match old behavior\n const closeDialogOnEscapeRef = useRef<(event: KeyboardEvent) => void>();\n closeDialogOnEscapeRef.current = (event: KeyboardEvent) => {\n if (!isShown) return;\n\n switch (event.key) {\n case \"Escape\":\n hideDialogIfNeeded(event, \"esckey\");\n break;\n case \"Tab\":\n handleEvent(\"tab\", event.target, event);\n break;\n case \"Enter\":\n handleEvent(\"enter\", event.target, event);\n break;\n }\n };\n\n // Effects\n\n // Callback on mount\n useEffect(() => {\n if (shouldCallbackOnMount && shouldShowOnMount) {\n onDialogDidShow();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // Cleanup timeouts on unmount\n useEffect(() => {\n return () => {\n if (showTimeoutRef.current) clearTimeout(showTimeoutRef.current);\n if (hideTimeoutRef.current) clearTimeout(hideTimeoutRef.current);\n };\n }, []);\n\n // Document keyboard listener (stable reference via ref)\n useEffect(() => {\n if (!isClient()) return;\n\n const handler = (event: KeyboardEvent) => closeDialogOnEscapeRef.current?.(event);\n document.addEventListener(\"keyup\", handler);\n return () => document.removeEventListener(\"keyup\", handler);\n }, []);\n\n // Handle reference hidden state\n useEffect(() => {\n if (hideWhenReferenceHidden && isReferenceHidden && isShown) {\n const event = new CustomEvent(\"onReferenceHidden\");\n hideDialog(event, \"onReferenceHidden\");\n }\n }, [hideWhenReferenceHidden, isReferenceHidden, isShown, hideDialog]);\n\n // Computed values\n const overrideDataTestId = dataTestId || getTestId(ComponentDefaultTestId.DIALOG, id);\n\n const arrowStyles = useMemo<React.CSSProperties>(() => {\n if (!middlewareData.arrow) return {};\n const { x, y } = middlewareData.arrow;\n return {\n left: x != null ? `${x}px` : \"\",\n top: y != null ? `${y}px` : \"\",\n transform: \"rotate(45deg)\"\n };\n }, [middlewareData.arrow]);\n\n // Skip Floating UI positioning when no children (e.g. floating Tipseen) — let CSS handle it\n const finalFloatingStyles = useMemo<React.CSSProperties>(\n () =>\n hasValidChildren\n ? { ...floatingStyles, ...(zIndex !== undefined && { zIndex }) }\n : { ...(zIndex !== undefined && { zIndex }) },\n [floatingStyles, zIndex, hasValidChildren]\n );\n\n const animationTypeCalculated = preventAnimationOnMount || preventAnimation ? undefined : animationType;\n const contentRendered = isFunction(content) ? content() : content;\n\n // Early return if no content - wrap in fragment for type safety\n if (!contentRendered) {\n return <>{children}</>;\n }\n\n const mergedFloatingRef = chainRefFunctions([refs.setFloating, containerRef]);\n\n const dialogContent = (\n <DialogContent\n data-testid={overrideDataTestId}\n isReferenceHidden={hideWhenReferenceHidden && isReferenceHidden}\n onMouseEnter={onDialogEnter}\n onMouseLeave={onDialogLeave}\n onClickOutside={onClickOutside}\n onContextMenu={onContextMenu}\n onEsc={onEsc}\n animationType={animationTypeCalculated}\n position={placement}\n wrapperClassName={wrapperClassName}\n startingEdge={startingEdge}\n isOpen={isShown}\n showDelay={showDelay}\n styleObject={finalFloatingStyles}\n ref={mergedFloatingRef}\n onClick={onContentClick}\n hasTooltip={!!tooltip}\n containerSelector={containerSelector}\n disableContainerScroll={disableContainerScroll}\n >\n {contentRendered}\n {tooltip && (\n <div\n style={arrowStyles}\n ref={arrowRef}\n className={cx(styles.arrow, tooltipClassName)}\n data-placement={placement}\n />\n )}\n </DialogContent>\n );\n\n return (\n <>\n <Refable\n className={cx(referenceWrapperClassName)}\n wrapperElement={referenceWrapperElement}\n ref={setReferenceElement}\n onBlur={chainedOnBlur}\n onKeyDown={chainedOnKeyDown}\n onClick={chainedOnClick}\n onFocus={chainedOnFocus}\n onMouseDown={chainedOnMouseDown}\n onMouseEnter={chainedOnMouseEnter}\n onMouseLeave={chainedOnMouseLeave}\n onContextMenu={chainedOnContextMenu}\n >\n {children}\n </Refable>\n {isClient() &&\n isShown &&\n createPortal(\n enableNestedDialogLayer ? (\n <LayerProvider layerRef={containerRef}>{dialogContent}</LayerProvider>\n ) : (\n dialogContent\n ),\n getContainer()\n )}\n </>\n );\n}\n\nexport default Dialog;\n"],"names":["Dialog","id","dataTestId","children","content","position","moveBy","main","secondary","middleware","middlewareProp","startingEdge","showDelay","hideDelay","instantShowAndHide","getDynamicShowDelay","showTrigger","hideTrigger","showOnDialogEnter","showTriggerIgnoreClass","hideTriggerIgnoreClass","addKeyboardHideShowTriggersByDefault","shouldShowOnMount","disable","open","isOpen","isOpenProp","useDerivedStateFromProps","animationType","preventAnimationOnMount","tooltip","tooltipClassName","containerSelector","disableContainerScroll","zIndex","wrapperClassName","referenceWrapperClassName","referenceWrapperElement","onBlur","onBlurProp","onKeyDown","onKeyDownProp","onClick","onClickProp","onFocus","onFocusProp","onMouseDown","onMouseDownProp","onMouseEnter","onMouseEnterProp","onMouseLeave","onMouseLeaveProp","onContextMenu","onContextMenuProp","onDialogDidShow","NOOP","onDialogDidHide","onClickOutside","onClickOutsideProp","onContentClick","onContentClickProp","hideWhenReferenceHidden","shouldCallbackOnMount","observeContentResize","enableNestedDialogLayer","isOpenState","setIsOpenState","useState","preventAnimation","setPreventAnimation","referenceElement","setReferenceElement","showTimeoutRef","useRef","hideTimeoutRef","containerRef","arrowRef","hasValidChildren","React","Children","toArray","some","child","isValidElement","layerRef","useContext","LayerContext","isShown","floatingMiddleware","useMemo","middlewareList","validMiddleware","filter","m","fn","hasCustomOffset","name","hasCustomFlip","hasCustomShift","push","offset","mainAxis","crossAxis","flip","shift","arrowMiddleware","element","hide","whileElementsMounted","useCallback","reference","floating","update","autoUpdate","elementResize","layoutShift","refs","floatingStyles","placement","middlewareData","useFloating","elements","isReferenceHidden","_b","_a","referenceHidden","isShowTrigger","eventName","showTriggersArray","convertToArray","includes","isHideTrigger","hideTriggersArray","showDialog","event","options","finalShowDelay","preventAnimationValue","dynamicDelayObj","current","setTimeout","hideDialog","showDialogIfNeeded","clearTimeout","hideDialogIfNeeded","handleEvent","target","isInsideClass","getContainer","containerElement","document","querySelector","Element","body","e","button","key","relatedTarget","onEsc","preventDefault","onDialogEnter","onDialogLeave","chainedOnBlur","chainFunctions","chainedOnKeyDown","chainedOnClick","chainedOnFocus","chainedOnMouseDown","chainedOnMouseEnter","chainedOnMouseLeave","chainedOnContextMenu","closeDialogOnEscapeRef","useEffect","isClient","handler","call","addEventListener","removeEventListener","CustomEvent","overrideDataTestId","getTestId","ComponentDefaultTestId","DIALOG","arrowStyles","arrow","x","y","left","top","transform","finalFloatingStyles","Object","assign","undefined","animationTypeCalculated","contentRendered","isFunction","createElement","Fragment","mergedFloatingRef","chainRefFunctions","setFloating","dialogContent","DialogContent","styleObject","ref","hasTooltip","style","className","cx","styles","Refable","wrapperElement","createPortal","LayerProvider"],"mappings":"4tBA+BA,SAASA,GAAOC,GAEdA,EACA,cAAeC,EAAUC,SACzBA,EAAQC,QACRA,EAAOC,SACPA,EAAW,MAAKC,OAChBA,EAAS,CAAEC,KAAM,EAAGC,UAAW,GAC/BC,WAAYC,EAAiB,GAAEC,aAC/BA,EAAYC,UACZA,EAAY,IAAGC,UACfA,EAAY,IAAGC,mBACfA,GAAqB,EAAKC,oBAC1BA,EAAmBC,YACnBA,EAAc,aAAYC,YAC1BA,EAAc,aAAYC,kBAC1BA,GAAoB,EAAKC,uBACzBA,EAAsBC,uBACtBA,EAAsBC,qCACtBA,GAAuC,EAAIC,kBAC3CA,GAAoB,EAAKC,QACzBA,GAAU,EAAKC,KACfA,GAAO,EACPC,OAAQC,EAAUC,yBAClBA,GAA2B,EAAKC,cAChCA,EAAgB,SAAQC,wBACxBA,IAA0B,EAAKC,QAC/BA,IAAU,EAAKC,iBACfA,GAAgBC,kBAChBA,GAAiBC,uBACjBA,GAAsBC,OACtBA,GAAMC,iBACNA,GAAgBC,0BAChBA,GAAyBC,wBACzBA,GACAC,OAAQC,GACRC,UAAWC,GACXC,QAASC,GACTC,QAASC,GACTC,YAAaC,GACbC,aAAcC,GACdC,aAAcC,GACdC,cAAeC,GAAiBC,gBAChCA,GAAkBC,EAAIC,gBACtBA,GAAkBD,EAClBE,eAAgBC,GAAqBH,EACrCI,eAAgBC,GAAqBL,EAAIM,wBACzCA,IAA0B,EAAKC,sBAC/BA,IAAwB,EAAKC,qBAC7BA,IAAuB,EAAKC,wBAC5BA,IAA0B,cAE1B,MAAOC,GAAaC,IAAkBC,EAAS7C,IACxC8C,GAAkBC,IAAuBF,GAAS,IAClDG,GAAkBC,IAAuBJ,EAA6B,MAEvEK,GAAiBC,EAA6C,MAC9DC,GAAiBD,EAA6C,MAC9DE,GAAeF,EAAuB,MACtCG,GAAWH,EAAuB,MAGlCI,GAAmBC,EAAMC,SAASC,QAAQ7E,GAAU8E,MAAKC,GAASJ,EAAMK,eAAeD,MAEvFE,SAAEA,IAAaC,EAAWC,GAI1BC,IADiB5D,EAA2BD,EAAauC,KAC7BzC,EAG5BgE,GAAqBC,GAAsB,KAC/C,MAAMC,EAA+B,GAG/BC,EAAkBjF,EAAekF,QACpCC,GAA4B,MAALA,GAA0B,iBAANA,GAAkC,mBAATA,EAAEC,KAInEC,EAAkBJ,EAAgBV,MAAKY,GAAgB,WAAXA,EAAEG,OAC9CC,EAAgBN,EAAgBV,MAAKY,GAAgB,SAAXA,EAAEG,OAC5CE,EAAiBP,EAAgBV,MAAKY,GAAgB,UAAXA,EAAEG,OA4BnD,OAzBKD,GAAoC,IAAhBzF,EAAOC,MAAmC,IAArBD,EAAOE,WACnDkF,EAAeS,KAAKC,EAAO,CAAEC,SAAU/F,EAAOC,MAAQ,EAAG+F,UAAWhG,EAAOE,WAAa,KAIrFyF,GACHP,EAAeS,KAAKI,KAEjBL,GACHR,EAAeS,KAAKK,KAItBd,EAAeS,QAAQR,GAGnB7D,IACF4D,EAAeS,KAAKM,EAAgB,CAAEC,QAAS9B,MAI7Cf,IACF6B,EAAeS,KAAKQ,KAGfjB,CAAc,GACpB,CAACpF,EAAOC,KAAMD,EAAOE,UAAWsB,GAAS+B,GAAyBnD,IAG/DkG,GAAuBC,GAC3B,CAACC,EAAwBC,EAAuBC,IACvCC,EAAWH,EAAWC,EAAUC,EAAQ,CAC7CE,cAAenD,GACfoD,aAAa,KAGjB,CAACpD,MAIGqD,KAAEA,GAAIC,eAAEA,GAAcC,UAAEA,GAASC,eAAEA,IAAmBC,EAAY,CACtEF,UAAWjH,EACXI,WAAY+E,GACZoB,wBACAa,SAAU,CACRX,UAAWxC,MAKToD,GAA4D,QAAxCC,GAAqB,QAArBC,GAAAL,GAAeZ,YAAM,IAAAiB,QAAA,EAAAA,GAAAC,uBAAmB,IAAAF,IAAAA,GAE5DG,GAAgBjB,GACnBkB,IACC,MAAMC,EAAoBC,EAAejH,GACzC,SAAIK,GAAsD,UAAd0G,IAAyBC,EAAkBE,SAAS,gBAGzFF,EAAkBE,SAASH,EAAU,GAE9C,CAAC/G,EAAaK,IAGV8G,GAAgBtB,GACnBkB,IACC,MAAMK,EAAoBH,EAAehH,GACzC,SAAII,GAAsD,SAAd0G,IAAwBK,EAAkBF,SAAS,gBAGxFE,EAAkBF,SAASH,EAAU,GAE9C,CAAC9G,EAAaI,IAGVgH,GAAaxB,GACjB,CAACyB,EAAoBP,EAAwCQ,EAA0C,MACrG,IAAIC,EAAiB5H,EACjB6H,EAAwBF,EAAQnE,iBACpC,GAAIrD,EAAqB,CACvB,MAAM2H,EAAkB3H,IACxByH,EAAiBE,EAAgB9H,WAAa,EAC9C6H,EAAwBA,QAAAA,EAAyBC,EAAgBtE,gBACnE,CAEItD,GACFwC,GAAgBgF,EAAOP,GACvB7D,IAAe,GACfG,KAAsBoE,GACtBjE,GAAemE,QAAU,MAEzBnE,GAAemE,QAAUC,YAAW,KAClCtF,GAAgBgF,EAAOP,GACvBvD,GAAemE,QAAU,KACzBzE,IAAe,GACfG,KAAsBoE,EAAsB,GAC3CD,EACL,GAEF,CAAC5H,EAAWG,EAAqBD,EAAoBwC,KAGjDuF,GAAahC,GACjB,CAACyB,EAAoBP,KACfjH,GACF0C,GAAgB8E,EAAOP,GACvB7D,IAAe,GACfQ,GAAeiE,QAAU,MAEzBjE,GAAeiE,QAAUC,YAAW,KAClCpF,GAAgB8E,EAAOP,GACvB7D,IAAe,GACfQ,GAAeiE,QAAU,IAAI,GAC5B9H,EACL,GAEF,CAACA,EAAWC,EAAoB0C,KAG5BsF,GAAqBjC,GACzB,CAACyB,EAAoBP,EAAwCQ,EAAU,MACjEhH,IAIAmD,GAAeiE,UACjBI,aAAarE,GAAeiE,SAC5BjE,GAAeiE,QAAU,MAGtBnE,GAAemE,SAClBN,GAAWC,EAAOP,EAAWQ,GAC/B,GAEF,CAAChH,EAAS8G,KAGNW,GAAqBnC,GACzB,CAACyB,EAAoBP,KACfvD,GAAemE,UACjBI,aAAavE,GAAemE,SAC5BnE,GAAemE,QAAU,MAGtBjE,GAAeiE,SAClBE,GAAWP,EAAOP,EACpB,GAEF,CAACc,KAIGI,GAAcpC,GAClB,CAACkB,EAA+BmB,EAA4BZ,KAC1D,GAAKY,EACL,OAAIpB,GAAcC,IAAexC,IAAY4D,EAAcD,EAAuB/H,GAI9EgH,GAAcJ,KAAeoB,EAAcD,EAAuB9H,GAC7D4H,GAAmBV,EAAOP,QADnC,EAHSe,GAAmBR,EAAOP,EAKnC,GAEF,CACED,GACAK,GACA5C,GACApE,EACAC,EACA0H,GACAE,KAIEI,GAAevC,GAAY,KAC/B,GAAI7E,GAAmB,CACrB,MAAMqH,EAAmBC,SAASC,cAAcvH,IAChD,GAAIqH,aAA4BG,QAC9B,OAAOH,CAEX,CACA,OAAOjE,cAAA,EAAAA,GAAUuD,UAAWW,SAASG,IAAI,GACxC,CAACzH,GAAmBoD,KAGjBpC,GAAe6D,GAAa6C,GAAwBT,GAAY,aAAcS,EAAER,OAAQQ,IAAI,CAACT,KAC7F/F,GAAe2D,GAAa6C,GAAwBT,GAAY,aAAcS,EAAER,OAAQQ,IAAI,CAACT,KAC7FvG,GAAUmE,GACb6C,IACKA,EAAEC,QACNV,GAAY,QAASS,EAAER,OAAQQ,EAAE,GAEnC,CAACT,KAEGzG,GAAYqE,GACfyB,IAEmB,UAAdA,EAAMsB,KAAiBX,GAAY,QAASX,EAAMY,OAAQZ,GAC5C,QAAdA,EAAMsB,KAAeX,GAAY,MAAOX,EAAMY,OAAQZ,EAAM,GAElE,CAACW,KAGGnG,GAAc+D,GACjB6C,IACKA,EAAEC,QACNV,GAAY,YAAaS,EAAER,OAAQQ,EAAE,GAEvC,CAACT,KAEGrG,GAAUiE,GAAa6C,GAAwBT,GAAY,QAASS,EAAER,OAAQQ,IAAI,CAACT,KACnF3G,GAASuE,GACZ6C,IAECT,GAAY,OADGS,EAAEG,eAAiBH,EAAER,OACRQ,EAAE,GAEhC,CAACT,KAEGa,GAAQjD,GAAa6C,GAA2BT,GAAY,SAAUS,EAAER,OAAQQ,IAAI,CAACT,KACrF7F,GAAgByD,GACnB6C,KACM5B,GAAc,iBAAmBvC,IAAa4C,GAAc,gBAAkB5C,KACjFmE,EAAEK,iBAEJd,GAAY,cAAeS,EAAER,OAAQQ,EAAE,GAEzC,CAACnE,GAASuC,GAAeK,GAAec,KAGpCxF,GAAiBoD,GACpByB,IACCW,GAAY,eAAgBX,EAAMY,OAAQZ,GAC1C5E,GAAmB4E,EAAM,GAE3B,CAACW,GAAavF,KAGVsG,GAAgBnD,GACnByB,IACKpH,GAAmB4H,GAAmBR,EAAO,cAAc,GAEjE,CAACpH,EAAmB4H,KAGhBmB,GAAgBpD,GACnByB,IACKpH,GAAmB8H,GAAmBV,EAAO,cAAc,GAEjE,CAACpH,EAAmB8H,KAGhBrF,GAAiBkD,GACpB6C,IACCT,GAAY,iBAAkBS,EAAER,OAAQQ,GACxC9F,GAAmB8F,EAAE,GAEvB,CAACT,GAAarF,KAIVsG,GAAgBzE,GAAQ,IAAM0E,EAAe,CAAC5H,GAAYD,KAAS,IAAO,CAACC,GAAYD,KACvF8H,GAAmB3E,GAAQ,IAAM0E,EAAe,CAAC1H,GAAeD,KAAY,IAAO,CAACC,GAAeD,KACnG6H,GAAiB5E,GAAQ,IAAM0E,EAAe,CAACxH,GAAaD,KAAU,IAAO,CAACC,GAAaD,KAC3F4H,GAAiB7E,GAAQ,IAAM0E,EAAe,CAACtH,GAAaD,KAAU,IAAO,CAACC,GAAaD,KAC3F2H,GAAqB9E,GACzB,IAAM0E,EAAe,CAACpH,GAAiBD,KAAc,IACrD,CAACC,GAAiBD,KAEd0H,GAAsB/E,GAC1B,IAAM0E,EAAe,CAAClH,GAAkBD,KAAe,IACvD,CAACC,GAAkBD,KAEfyH,GAAsBhF,GAC1B,IAAM0E,EAAe,CAAChH,GAAkBD,KAAe,IACvD,CAACC,GAAkBD,KAEfwH,GAAuBjF,GAC3B,IAAM0E,EAAe,CAAC9G,GAAmBD,KAAgB,IACzD,CAACC,GAAmBD,KAKhBuH,GAAyBlG,IAC/BkG,GAAuBhC,QAAWL,IAChC,GAAK/C,GAEL,OAAQ+C,EAAMsB,KACZ,IAAK,SACHZ,GAAmBV,EAAO,UAC1B,MACF,IAAK,MACHW,GAAY,MAAOX,EAAMY,OAAQZ,GACjC,MACF,IAAK,QACHW,GAAY,QAASX,EAAMY,OAAQZ,GAEvC,EAMFsC,GAAU,KACJ9G,IAAyBxC,GAC3BgC,IACF,GAEC,IAGHsH,GAAU,IACD,KACDpG,GAAemE,SAASI,aAAavE,GAAemE,SACpDjE,GAAeiE,SAASI,aAAarE,GAAeiE,QAAQ,GAEjE,IAGHiC,GAAU,KACR,IAAKC,IAAY,OAEjB,MAAMC,EAAWxC,IAAyB,IAAAV,EAAA,OAA8B,QAA9BA,EAAA+C,GAAuBhC,eAAO,IAAAf,OAAA,EAAAA,EAAAmD,KAAAJ,GAAGrC,EAAM,EAEjF,OADAgB,SAAS0B,iBAAiB,QAASF,GAC5B,IAAMxB,SAAS2B,oBAAoB,QAASH,EAAQ,GAC1D,IAGHF,GAAU,KACR,GAAI/G,IAA2B6D,IAAqBnC,GAAS,CAC3D,MAAM+C,EAAQ,IAAI4C,YAAY,qBAC9BrC,GAAWP,EAAO,oBACpB,IACC,CAACzE,GAAyB6D,GAAmBnC,GAASsD,KAGzD,MAAMsC,GAAqBjL,GAAckL,EAAUC,EAAuBC,OAAQrL,GAE5EsL,GAAc9F,GAA6B,KAC/C,IAAK8B,GAAeiE,MAAO,MAAO,GAClC,MAAMC,EAAEA,EAACC,EAAEA,GAAMnE,GAAeiE,MAChC,MAAO,CACLG,KAAW,MAALF,EAAeA,EAAH,KAAW,GAC7BG,IAAU,MAALF,EAAeA,EAAH,KAAW,GAC5BG,UAAW,gBACZ,GACA,CAACtE,GAAeiE,QAGbM,GAAsBrG,GAC1B,IAEWsG,OAAAC,OADTnH,GACSkH,OAAAC,OAAA,CAAA,EAAA3E,YAA+B4E,IAAX/J,IAAwB,CAAEA,aAEzD,CAACmF,GAAgBnF,GAAQ2C,KAGrBqH,GAA0BrK,IAA2BuC,QAAmB6H,EAAYrK,EACpFuK,GAAkBC,EAAWhM,GAAWA,IAAYA,EAG1D,IAAK+L,GACH,OAAOrH,EAAAuH,cAAAvH,EAAAwH,SAAA,KAAGnM,GAGZ,MAAMoM,GAAoBC,EAAkB,CAACpF,GAAKqF,YAAa9H,KAEzD+H,GACJ5H,EAACuH,cAAAM,iBACcxB,GACbzD,kBAAmB7D,IAA2B6D,GAC9C1E,aAAcgH,GACd9G,aAAc+G,GACdxG,eAAgBA,GAChBL,cAAeA,GACf0G,MAAOA,GACPlI,cAAesK,GACf7L,SAAUiH,GACVnF,iBAAkBA,GAClBxB,aAAcA,EACdc,OAAQ8D,GACR3E,UAAWA,EACXgM,YAAad,GACbe,IAAKN,GACL7J,QAASiB,GACTmJ,aAAchL,GACdE,kBAAmBA,GACnBC,uBAAwBA,IAEvBkK,GACArK,IACCgD,EAAAuH,cAAA,MAAA,CACEU,MAAOxB,GACPsB,IAAKjI,GACLoI,UAAWC,EAAGC,EAAO1B,MAAOzJ,IACZ,iBAAAuF,MAMxB,OACExC,EAAAuH,cAAAvH,EAAAwH,SAAA,KACExH,EAACuH,cAAAc,GACCH,UAAWC,EAAG7K,IACdgL,eAAgB/K,GAChBwK,IAAKtI,GACLjC,OAAQ4H,GACR1H,UAAW4H,GACX1H,QAAS2H,GACTzH,QAAS0H,GACTxH,YAAayH,GACbvH,aAAcwH,GACdtH,aAAcuH,GACdrH,cAAesH,IAEdvK,GAEF0K,KACCtF,IACA8H,EACErJ,GACEc,EAACuH,cAAAiB,EAAc,CAAAlI,SAAUT,IAAe+H,IAExCA,GAEFtD,MAIV"}
@@ -1,2 +1,2 @@
1
- var a={arrow:"arrow"};!function(a){const e="s_id-3fb64cda561a_4_0_0-alpha_1";if("undefined"!=typeof document){const t=document.head||document.getElementsByTagName("head")[0];if(t.querySelector("#"+e))return;const r=document.createElement("style");r.id=e,t.firstChild?t.insertBefore(r,t.firstChild):t.appendChild(r),r.appendChild(document.createTextNode(a))}else globalThis.injectedStyles&&(globalThis.injectedStyles[e]=a)}(".arrow {\n width: 12px;\n height: 12px;\n position: absolute;\n border-radius: 2px;\n background-color: var(--secondary-background-color);\n}\n.dark-app-theme .arrow[data-placement*=right], .black-app-theme .arrow[data-placement*=right], .hacker-app-theme .arrow[data-placement*=right] {\n box-shadow: -1px 1px 0px 0px var(--layout-border-color);\n}\n.dark-app-theme .arrow[data-placement*=left], .black-app-theme .arrow[data-placement*=left], .hacker-app-theme .arrow[data-placement*=left] {\n box-shadow: 1px -1px 0px 0px var(--layout-border-color);\n}\n.dark-app-theme .arrow[data-placement*=bottom], .black-app-theme .arrow[data-placement*=bottom], .hacker-app-theme .arrow[data-placement*=bottom] {\n box-shadow: -1px -1px 0px 0px var(--layout-border-color);\n}\n.dark-app-theme .arrow[data-placement*=top], .black-app-theme .arrow[data-placement*=top], .hacker-app-theme .arrow[data-placement*=top] {\n box-shadow: 1px 1px 0px 0px var(--layout-border-color);\n}\n.arrow[data-placement*=bottom] {\n top: 1px;\n}\n.arrow[data-placement*=top] {\n bottom: 1px;\n}\n.arrow[data-placement*=left] {\n right: 1px;\n}\n.arrow[data-placement*=right] {\n left: 1px;\n}");export{a as default};
1
+ var a={arrow:"arrow"};!function(a){const e="s_id-3fb64cda561a_4_0_0-alpha_2";if("undefined"!=typeof document){const t=document.head||document.getElementsByTagName("head")[0];if(t.querySelector("#"+e))return;const r=document.createElement("style");r.id=e,t.firstChild?t.insertBefore(r,t.firstChild):t.appendChild(r),r.appendChild(document.createTextNode(a))}else globalThis.injectedStyles&&(globalThis.injectedStyles[e]=a)}(".arrow {\n width: 12px;\n height: 12px;\n position: absolute;\n border-radius: 2px;\n background-color: var(--secondary-background-color);\n}\n.dark-app-theme .arrow[data-placement*=right], .black-app-theme .arrow[data-placement*=right], .hacker-app-theme .arrow[data-placement*=right] {\n box-shadow: -1px 1px 0px 0px var(--layout-border-color);\n}\n.dark-app-theme .arrow[data-placement*=left], .black-app-theme .arrow[data-placement*=left], .hacker-app-theme .arrow[data-placement*=left] {\n box-shadow: 1px -1px 0px 0px var(--layout-border-color);\n}\n.dark-app-theme .arrow[data-placement*=bottom], .black-app-theme .arrow[data-placement*=bottom], .hacker-app-theme .arrow[data-placement*=bottom] {\n box-shadow: -1px -1px 0px 0px var(--layout-border-color);\n}\n.dark-app-theme .arrow[data-placement*=top], .black-app-theme .arrow[data-placement*=top], .hacker-app-theme .arrow[data-placement*=top] {\n box-shadow: 1px 1px 0px 0px var(--layout-border-color);\n}\n.arrow[data-placement*=bottom] {\n top: 1px;\n}\n.arrow[data-placement*=top] {\n bottom: 1px;\n}\n.arrow[data-placement*=left] {\n right: 1px;\n}\n.arrow[data-placement*=right] {\n left: 1px;\n}");export{a as default};
2
2
  //# sourceMappingURL=Dialog.module.scss.js.map
@@ -211,4 +211,10 @@ export interface DialogProps extends VibeComponentProps {
211
211
  * If true, automatically updates position when content resizes.
212
212
  */
213
213
  observeContentResize?: boolean;
214
+ /**
215
+ * If true, provides a LayerProvider context for nested dialogs to render correctly.
216
+ * This is useful when you have components that use Dialog internally (like Dropdown)
217
+ * inside another Dialog, ensuring proper z-index stacking and click-outside behavior.
218
+ */
219
+ enableNestedDialogLayer?: boolean;
214
220
  }
@@ -1,2 +1,2 @@
1
- var t={contentWrapper:"contentWrapper",top:"top",right:"right",left:"left",bottom:"bottom",bottomStart:"bottomStart",topStart:"topStart",bottomEnd:"bottomEnd",topEnd:"topEnd",leftStart:"leftStart",rightStart:"rightStart",leftEnd:"leftEnd",rightEnd:"rightEnd",contentComponent:"contentComponent",hasTooltip:"hasTooltip",opacitySlideAppear:"opacitySlideAppear",opacitySlideAppearActive:"opacitySlideAppearActive",expandAppear:"expandAppear",expandExit:"expandExit",edgeBottom:"edgeBottom",edgeTop:"edgeTop",expandAppearActive:"expandAppearActive"};!function(t){const e="s_id-b5fc9eb29715_4_0_0-alpha_1";if("undefined"!=typeof document){const n=document.head||document.getElementsByTagName("head")[0];if(n.querySelector("#"+e))return;const p=document.createElement("style");p.id=e,n.firstChild?n.insertBefore(p,n.firstChild):n.appendChild(p),p.appendChild(document.createTextNode(t))}else globalThis.injectedStyles&&(globalThis.injectedStyles[e]=t)}("/* stylelint-disable */\n/* stylelint-enable */\n.contentWrapper {\n outline: 0;\n}\n.contentWrapper.top, .contentWrapper.right, .contentWrapper.left, .contentWrapper.bottom {\n padding: var(--space-4);\n}\n.contentWrapper.bottomStart, .contentWrapper.topStart, .contentWrapper.bottomEnd, .contentWrapper.topEnd {\n padding-block: var(--space-4);\n}\n.contentWrapper.bottomStart, .contentWrapper.topStart {\n padding-inline-end: var(--space-4);\n}\n.contentWrapper.bottomEnd, .contentWrapper.topEnd {\n padding-inline-start: var(--space-4);\n}\n.contentWrapper.leftStart, .contentWrapper.rightStart, .contentWrapper.leftEnd, .contentWrapper.rightEnd {\n padding-inline: var(--space-4);\n}\n.contentWrapper.leftStart, .contentWrapper.rightStart {\n padding-block-end: var(--space-4);\n}\n.contentWrapper.leftEnd, .contentWrapper.rightEnd {\n padding-block-start: var(--space-4);\n}\n.contentWrapper[data-dialog-reference-hidden=true] {\n visibility: hidden;\n pointer-events: none;\n}\n.contentComponent:focus {\n outline: none;\n}\n.contentComponent.hasTooltip {\n padding: 6px;\n}\n.opacitySlideAppear {\n opacity: 0;\n}\n.opacitySlideAppear.top {\n transform: translateY(var(--space-16));\n}\n.opacitySlideAppear.right {\n transform: translateX(calc(var(--space-16) * -1));\n}\n.opacitySlideAppear.bottom {\n transform: translateY(calc(var(--space-16) * -1));\n}\n.opacitySlideAppear.left {\n transform: translateX(var(--space-16));\n}\n.opacitySlideAppearActive {\n transition: opacity 0.2s ease, transform 0.2s ease-out;\n opacity: 1;\n pointer-events: none;\n}\n.opacitySlideAppearActive.top, .opacitySlideAppearActive.bottom {\n transform: translateY(0);\n}\n.opacitySlideAppearActive.right, .opacitySlideAppearActive.left {\n transform: translateX(0);\n}\n.expandAppear,\n.expandExit {\n transition: transform 0.1s cubic-bezier(0, 0, 0.35, 1);\n}\n.expandAppear.top, .expandAppear.topStart, .expandAppear.topEnd,\n.expandExit.top,\n.expandExit.topStart,\n.expandExit.topEnd {\n transform-origin: bottom center;\n transform: scale(0.8);\n}\n.expandAppear.top.edgeBottom, .expandAppear.topStart.edgeBottom, .expandAppear.topEnd.edgeBottom,\n.expandExit.top.edgeBottom,\n.expandExit.topStart.edgeBottom,\n.expandExit.topEnd.edgeBottom {\n transform-origin: bottom left;\n}\n.expandAppear.top.edgeTop, .expandAppear.topStart.edgeTop, .expandAppear.topEnd.edgeTop,\n.expandExit.top.edgeTop,\n.expandExit.topStart.edgeTop,\n.expandExit.topEnd.edgeTop {\n transform-origin: bottom right;\n}\n.expandAppear.right, .expandAppear.rightStart, .expandAppear.rightEnd,\n.expandExit.right,\n.expandExit.rightStart,\n.expandExit.rightEnd {\n transform-origin: left;\n transform: scale(0.8);\n}\n.expandAppear.right.edgeBottom, .expandAppear.rightStart.edgeBottom, .expandAppear.rightEnd.edgeBottom,\n.expandExit.right.edgeBottom,\n.expandExit.rightStart.edgeBottom,\n.expandExit.rightEnd.edgeBottom {\n transform-origin: top left;\n}\n.expandAppear.right.edgeTop, .expandAppear.rightStart.edgeTop, .expandAppear.rightEnd.edgeTop,\n.expandExit.right.edgeTop,\n.expandExit.rightStart.edgeTop,\n.expandExit.rightEnd.edgeTop {\n transform-origin: bottom left;\n}\n.expandAppear.bottom, .expandAppear.bottomStart, .expandAppear.bottomEnd,\n.expandExit.bottom,\n.expandExit.bottomStart,\n.expandExit.bottomEnd {\n transform-origin: top;\n transform: scale(0.8);\n}\n.expandAppear.bottom.edgeBottom, .expandAppear.bottomStart.edgeBottom, .expandAppear.bottomEnd.edgeBottom,\n.expandExit.bottom.edgeBottom,\n.expandExit.bottomStart.edgeBottom,\n.expandExit.bottomEnd.edgeBottom {\n transform-origin: top left;\n}\n.expandAppear.bottom.edgeTop, .expandAppear.bottomStart.edgeTop, .expandAppear.bottomEnd.edgeTop,\n.expandExit.bottom.edgeTop,\n.expandExit.bottomStart.edgeTop,\n.expandExit.bottomEnd.edgeTop {\n transform-origin: top right;\n}\n.expandAppear.left, .expandAppear.leftStart, .expandAppear.leftEnd,\n.expandExit.left,\n.expandExit.leftStart,\n.expandExit.leftEnd {\n transform-origin: right;\n transform: scale(0.8);\n}\n.expandAppear.left.edgeBottom, .expandAppear.leftStart.edgeBottom, .expandAppear.leftEnd.edgeBottom,\n.expandExit.left.edgeBottom,\n.expandExit.leftStart.edgeBottom,\n.expandExit.leftEnd.edgeBottom {\n transform-origin: top right;\n}\n.expandAppear.left.edgeTop, .expandAppear.leftStart.edgeTop, .expandAppear.leftEnd.edgeTop,\n.expandExit.left.edgeTop,\n.expandExit.leftStart.edgeTop,\n.expandExit.leftEnd.edgeTop {\n transform-origin: bottom right;\n}\n.expandExit {\n transition: transform 0.1s cubic-bezier(0, 0, 0.35, 1);\n}\n.expandAppearActive {\n transition: transform 0.1s cubic-bezier(0, 0, 0.35, 1);\n pointer-events: none;\n}\n.expandAppearActive.top, .expandAppearActive.topStart, .expandAppearActive.topEnd, .expandAppearActive.bottom, .expandAppearActive.bottomStart, .expandAppearActive.bottomEnd, .expandAppearActive.right, .expandAppearActive.rightStart, .expandAppearActive.rightEnd, .expandAppearActive.left, .expandAppearActive.leftStart, .expandAppearActive.leftEnd {\n transform: scale(1);\n}");export{t as default};
1
+ var t={contentWrapper:"contentWrapper",top:"top",right:"right",left:"left",bottom:"bottom",bottomStart:"bottomStart",topStart:"topStart",bottomEnd:"bottomEnd",topEnd:"topEnd",leftStart:"leftStart",rightStart:"rightStart",leftEnd:"leftEnd",rightEnd:"rightEnd",contentComponent:"contentComponent",hasTooltip:"hasTooltip",opacitySlideAppear:"opacitySlideAppear",opacitySlideAppearActive:"opacitySlideAppearActive",expandAppear:"expandAppear",expandExit:"expandExit",edgeBottom:"edgeBottom",edgeTop:"edgeTop",expandAppearActive:"expandAppearActive"};!function(t){const e="s_id-b5fc9eb29715_4_0_0-alpha_2";if("undefined"!=typeof document){const n=document.head||document.getElementsByTagName("head")[0];if(n.querySelector("#"+e))return;const p=document.createElement("style");p.id=e,n.firstChild?n.insertBefore(p,n.firstChild):n.appendChild(p),p.appendChild(document.createTextNode(t))}else globalThis.injectedStyles&&(globalThis.injectedStyles[e]=t)}("/* stylelint-disable */\n/* stylelint-enable */\n.contentWrapper {\n outline: 0;\n}\n.contentWrapper.top, .contentWrapper.right, .contentWrapper.left, .contentWrapper.bottom {\n padding: var(--space-4);\n}\n.contentWrapper.bottomStart, .contentWrapper.topStart, .contentWrapper.bottomEnd, .contentWrapper.topEnd {\n padding-block: var(--space-4);\n}\n.contentWrapper.bottomStart, .contentWrapper.topStart {\n padding-inline-end: var(--space-4);\n}\n.contentWrapper.bottomEnd, .contentWrapper.topEnd {\n padding-inline-start: var(--space-4);\n}\n.contentWrapper.leftStart, .contentWrapper.rightStart, .contentWrapper.leftEnd, .contentWrapper.rightEnd {\n padding-inline: var(--space-4);\n}\n.contentWrapper.leftStart, .contentWrapper.rightStart {\n padding-block-end: var(--space-4);\n}\n.contentWrapper.leftEnd, .contentWrapper.rightEnd {\n padding-block-start: var(--space-4);\n}\n.contentWrapper[data-dialog-reference-hidden=true] {\n visibility: hidden;\n pointer-events: none;\n}\n.contentComponent:focus {\n outline: none;\n}\n.contentComponent.hasTooltip {\n padding: 6px;\n}\n.opacitySlideAppear {\n opacity: 0;\n}\n.opacitySlideAppear.top {\n transform: translateY(var(--space-16));\n}\n.opacitySlideAppear.right {\n transform: translateX(calc(var(--space-16) * -1));\n}\n.opacitySlideAppear.bottom {\n transform: translateY(calc(var(--space-16) * -1));\n}\n.opacitySlideAppear.left {\n transform: translateX(var(--space-16));\n}\n.opacitySlideAppearActive {\n transition: opacity 0.2s ease, transform 0.2s ease-out;\n opacity: 1;\n pointer-events: none;\n}\n.opacitySlideAppearActive.top, .opacitySlideAppearActive.bottom {\n transform: translateY(0);\n}\n.opacitySlideAppearActive.right, .opacitySlideAppearActive.left {\n transform: translateX(0);\n}\n.expandAppear,\n.expandExit {\n transition: transform 0.1s cubic-bezier(0, 0, 0.35, 1);\n}\n.expandAppear.top, .expandAppear.topStart, .expandAppear.topEnd,\n.expandExit.top,\n.expandExit.topStart,\n.expandExit.topEnd {\n transform-origin: bottom center;\n transform: scale(0.8);\n}\n.expandAppear.top.edgeBottom, .expandAppear.topStart.edgeBottom, .expandAppear.topEnd.edgeBottom,\n.expandExit.top.edgeBottom,\n.expandExit.topStart.edgeBottom,\n.expandExit.topEnd.edgeBottom {\n transform-origin: bottom left;\n}\n.expandAppear.top.edgeTop, .expandAppear.topStart.edgeTop, .expandAppear.topEnd.edgeTop,\n.expandExit.top.edgeTop,\n.expandExit.topStart.edgeTop,\n.expandExit.topEnd.edgeTop {\n transform-origin: bottom right;\n}\n.expandAppear.right, .expandAppear.rightStart, .expandAppear.rightEnd,\n.expandExit.right,\n.expandExit.rightStart,\n.expandExit.rightEnd {\n transform-origin: left;\n transform: scale(0.8);\n}\n.expandAppear.right.edgeBottom, .expandAppear.rightStart.edgeBottom, .expandAppear.rightEnd.edgeBottom,\n.expandExit.right.edgeBottom,\n.expandExit.rightStart.edgeBottom,\n.expandExit.rightEnd.edgeBottom {\n transform-origin: top left;\n}\n.expandAppear.right.edgeTop, .expandAppear.rightStart.edgeTop, .expandAppear.rightEnd.edgeTop,\n.expandExit.right.edgeTop,\n.expandExit.rightStart.edgeTop,\n.expandExit.rightEnd.edgeTop {\n transform-origin: bottom left;\n}\n.expandAppear.bottom, .expandAppear.bottomStart, .expandAppear.bottomEnd,\n.expandExit.bottom,\n.expandExit.bottomStart,\n.expandExit.bottomEnd {\n transform-origin: top;\n transform: scale(0.8);\n}\n.expandAppear.bottom.edgeBottom, .expandAppear.bottomStart.edgeBottom, .expandAppear.bottomEnd.edgeBottom,\n.expandExit.bottom.edgeBottom,\n.expandExit.bottomStart.edgeBottom,\n.expandExit.bottomEnd.edgeBottom {\n transform-origin: top left;\n}\n.expandAppear.bottom.edgeTop, .expandAppear.bottomStart.edgeTop, .expandAppear.bottomEnd.edgeTop,\n.expandExit.bottom.edgeTop,\n.expandExit.bottomStart.edgeTop,\n.expandExit.bottomEnd.edgeTop {\n transform-origin: top right;\n}\n.expandAppear.left, .expandAppear.leftStart, .expandAppear.leftEnd,\n.expandExit.left,\n.expandExit.leftStart,\n.expandExit.leftEnd {\n transform-origin: right;\n transform: scale(0.8);\n}\n.expandAppear.left.edgeBottom, .expandAppear.leftStart.edgeBottom, .expandAppear.leftEnd.edgeBottom,\n.expandExit.left.edgeBottom,\n.expandExit.leftStart.edgeBottom,\n.expandExit.leftEnd.edgeBottom {\n transform-origin: top right;\n}\n.expandAppear.left.edgeTop, .expandAppear.leftStart.edgeTop, .expandAppear.leftEnd.edgeTop,\n.expandExit.left.edgeTop,\n.expandExit.leftStart.edgeTop,\n.expandExit.leftEnd.edgeTop {\n transform-origin: bottom right;\n}\n.expandExit {\n transition: transform 0.1s cubic-bezier(0, 0, 0.35, 1);\n}\n.expandAppearActive {\n transition: transform 0.1s cubic-bezier(0, 0, 0.35, 1);\n pointer-events: none;\n}\n.expandAppearActive.top, .expandAppearActive.topStart, .expandAppearActive.topEnd, .expandAppearActive.bottom, .expandAppearActive.bottomStart, .expandAppearActive.bottomEnd, .expandAppearActive.right, .expandAppearActive.rightStart, .expandAppearActive.rightEnd, .expandAppearActive.left, .expandAppearActive.leftStart, .expandAppearActive.leftEnd {\n transform: scale(1);\n}");export{t as default};
2
2
  //# sourceMappingURL=DialogContent.module.scss.js.map
@@ -1,2 +1,2 @@
1
- var e={dialogContentContainer:"dialogContentContainer",sizeSmall:"sizeSmall",sizeMedium:"sizeMedium",sizeLarge:"sizeLarge",typePopover:"typePopover",typeModal:"typeModal"};!function(e){const o="s_id-e25392b9c982_4_0_0-alpha_1";if("undefined"!=typeof document){const n=document.head||document.getElementsByTagName("head")[0];if(n.querySelector("#"+o))return;const a=document.createElement("style");a.id=o,n.firstChild?n.insertBefore(a,n.firstChild):n.appendChild(a),a.appendChild(document.createTextNode(e))}else globalThis.injectedStyles&&(globalThis.injectedStyles[o]=e)}(".dialogContentContainer:focus {\n outline: none;\n}\n\n.sizeSmall {\n padding: var(--space-8);\n}\n\n.sizeMedium {\n padding: var(--space-16);\n}\n\n.sizeLarge {\n padding: var(--space-24);\n}\n\n.typePopover {\n box-shadow: var(--box-shadow-medium);\n border-radius: var(--border-radius-medium);\n background-color: var(--secondary-background-color);\n}\n\n.dark-app-theme .typePopover, .black-app-theme .typePopover, .hacker-app-theme .typePopover {\n box-shadow: 0 0 0 1px var(--layout-border-color), var(--box-shadow-medium);\n}\n\n.typeModal {\n box-shadow: var(--box-shadow-large);\n border-radius: var(--border-radius-big);\n background-color: var(--primary-background-color);\n}");export{e as default};
1
+ var e={dialogContentContainer:"dialogContentContainer",sizeSmall:"sizeSmall",sizeMedium:"sizeMedium",sizeLarge:"sizeLarge",typePopover:"typePopover",typeModal:"typeModal"};!function(e){const o="s_id-e25392b9c982_4_0_0-alpha_2";if("undefined"!=typeof document){const n=document.head||document.getElementsByTagName("head")[0];if(n.querySelector("#"+o))return;const a=document.createElement("style");a.id=o,n.firstChild?n.insertBefore(a,n.firstChild):n.appendChild(a),a.appendChild(document.createTextNode(e))}else globalThis.injectedStyles&&(globalThis.injectedStyles[o]=e)}(".dialogContentContainer:focus {\n outline: none;\n}\n\n.sizeSmall {\n padding: var(--space-8);\n}\n\n.sizeMedium {\n padding: var(--space-16);\n}\n\n.sizeLarge {\n padding: var(--space-24);\n}\n\n.typePopover {\n box-shadow: var(--box-shadow-medium);\n border-radius: var(--border-radius-medium);\n background-color: var(--secondary-background-color);\n}\n\n.dark-app-theme .typePopover, .black-app-theme .typePopover, .hacker-app-theme .typePopover {\n box-shadow: 0 0 0 1px var(--layout-border-color), var(--box-shadow-medium);\n}\n\n.typeModal {\n box-shadow: var(--box-shadow-large);\n border-radius: var(--border-radius-big);\n background-color: var(--primary-background-color);\n}");export{e as default};
2
2
  //# sourceMappingURL=DialogContentContainer.module.scss.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibe/dialog",
3
- "version": "4.0.0-alpha.2",
3
+ "version": "4.0.0-beta.0",
4
4
  "description": "Vibe sub-package for dialog components",
5
5
  "repository": {
6
6
  "type": "git",
@@ -39,10 +39,10 @@
39
39
  },
40
40
  "dependencies": {
41
41
  "@floating-ui/react-dom": "^2.1.2",
42
- "@vibe/hooks": "^4.0.0-alpha.2",
43
- "@vibe/layer": "^4.0.0-alpha.2",
44
- "@vibe/shared": "^4.0.0-alpha.2",
45
- "@vibe/style": "^4.0.0-alpha.2",
42
+ "@vibe/hooks": "^4.0.0-beta.0",
43
+ "@vibe/layer": "^4.0.0-beta.0",
44
+ "@vibe/shared": "^4.0.0-beta.0",
45
+ "@vibe/style": "^4.0.0-beta.0",
46
46
  "classnames": "^2.5.1",
47
47
  "es-toolkit": "^1.39.10",
48
48
  "react-transition-group": "^4.4.5"
@@ -52,7 +52,7 @@
52
52
  "@testing-library/react-hooks": "^7.0.2",
53
53
  "@testing-library/user-event": "^13.5.0",
54
54
  "@types/react-transition-group": "^4.4.5",
55
- "@vibe/config": "^4.0.0-alpha.2",
55
+ "@vibe/config": "^4.0.0-beta.0",
56
56
  "react": "^16.13.0",
57
57
  "react-dom": "^16.13.0",
58
58
  "react-test-renderer": "16",
@@ -74,5 +74,5 @@
74
74
  "../../../node_modules/@vibe/config/.eslintrc.cjs"
75
75
  ]
76
76
  },
77
- "gitHead": "8c8df239f258a1ae3f81c1dff9304693fe466ab0"
77
+ "gitHead": "91790ad83a8f09e257c21dd0d0abfe9eaecf9e82"
78
78
  }