@vibe/dialog 4.0.0-alpha.1 → 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.
Files changed (37) hide show
  1. package/dist/Dialog/Dialog.d.ts +4 -4
  2. package/dist/Dialog/Dialog.js +1 -1
  3. package/dist/Dialog/Dialog.js.map +1 -1
  4. package/dist/Dialog/Dialog.module.scss.js +1 -1
  5. package/dist/Dialog/Dialog.types.d.ts +220 -214
  6. package/dist/Dialog/DialogConstants.d.ts +8 -8
  7. package/dist/Dialog/components/DialogContent/DialogContent.d.ts +79 -79
  8. package/dist/Dialog/components/DialogContent/DialogContent.js.map +1 -1
  9. package/dist/Dialog/components/DialogContent/DialogContent.module.scss.js +1 -1
  10. package/dist/Dialog/components/Refable/Refable.d.ts +18 -18
  11. package/dist/Dialog/components/Refable/Refable.js.map +1 -1
  12. package/dist/Dialog/hooks/useDisableScroll.d.ts +5 -5
  13. package/dist/Dialog/hooks/useDisableScroll.js.map +1 -1
  14. package/dist/Dialog/index.d.ts +3 -3
  15. package/dist/DialogContentContainer/DialogContentContainer.d.ts +36 -36
  16. package/dist/DialogContentContainer/DialogContentContainer.module.scss.js +1 -1
  17. package/dist/DialogContentContainer/index.d.ts +1 -1
  18. package/dist/index.d.ts +2 -2
  19. package/dist/mocked_classnames/Dialog/Dialog.d.ts +4 -4
  20. package/dist/mocked_classnames/Dialog/Dialog.js +1 -1
  21. package/dist/mocked_classnames/Dialog/Dialog.js.map +1 -1
  22. package/dist/mocked_classnames/Dialog/Dialog.module.scss.js +1 -1
  23. package/dist/mocked_classnames/Dialog/Dialog.types.d.ts +220 -214
  24. package/dist/mocked_classnames/Dialog/DialogConstants.d.ts +8 -8
  25. package/dist/mocked_classnames/Dialog/components/DialogContent/DialogContent.d.ts +79 -79
  26. package/dist/mocked_classnames/Dialog/components/DialogContent/DialogContent.js.map +1 -1
  27. package/dist/mocked_classnames/Dialog/components/DialogContent/DialogContent.module.scss.js +1 -1
  28. package/dist/mocked_classnames/Dialog/components/Refable/Refable.d.ts +18 -18
  29. package/dist/mocked_classnames/Dialog/components/Refable/Refable.js.map +1 -1
  30. package/dist/mocked_classnames/Dialog/hooks/useDisableScroll.d.ts +5 -5
  31. package/dist/mocked_classnames/Dialog/hooks/useDisableScroll.js.map +1 -1
  32. package/dist/mocked_classnames/Dialog/index.d.ts +3 -3
  33. package/dist/mocked_classnames/DialogContentContainer/DialogContentContainer.d.ts +36 -36
  34. package/dist/mocked_classnames/DialogContentContainer/DialogContentContainer.module.scss.js +1 -1
  35. package/dist/mocked_classnames/DialogContentContainer/index.d.ts +1 -1
  36. package/dist/mocked_classnames/index.d.ts +2 -2
  37. package/package.json +8 -7
@@ -1 +1 @@
1
- {"version":3,"file":"DialogContent.js","sources":["../../../../src/Dialog/components/DialogContent/DialogContent.tsx"],"sourcesContent":["import React, {\n cloneElement,\n type CSSProperties,\n forwardRef,\n type ReactElement,\n useCallback,\n useEffect,\n useMemo,\n useRef\n} from \"react\";\nimport cx from \"classnames\";\nimport { camelCase } from \"es-toolkit\";\nimport { CSSTransition } from \"react-transition-group\";\nimport { type CSSTransitionProps } from \"react-transition-group/CSSTransition\";\nimport { useClickOutside } from \"@vibe/hooks\";\nimport {\n chainFunctions,\n NOOP,\n useKeyEvent,\n type VibeComponentProps,\n keyCodes,\n getStyle,\n useMergeRef\n} from \"@vibe/shared\";\nimport {\n type DialogAnimationType,\n type DialogTriggerEvent,\n type DialogStartingEdge,\n type DialogPlacement\n} from \"../../Dialog.types\";\nimport styles from \"./DialogContent.module.scss\";\nimport useDisableScroll from \"../../hooks/useDisableScroll\";\n\nconst EMPTY_OBJECT: CSSProperties = {};\nconst ESCAPE_KEYS = [keyCodes.ESCAPE];\n\nexport interface DialogContentProps extends VibeComponentProps {\n /**\n * The content inside the dialog.\n */\n children?: ReactElement | ReactElement[];\n /**\n * The placement of the dialog relative to the reference element.\n */\n position?: DialogPlacement;\n /**\n * Class name applied to the dialog wrapper.\n */\n wrapperClassName?: string;\n /**\n * If true, the dialog is open.\n */\n isOpen?: boolean;\n /**\n * The starting edge for animation direction.\n */\n startingEdge?: DialogStartingEdge;\n /**\n * The animation type used for showing/hiding the dialog.\n */\n animationType?: DialogAnimationType;\n /**\n * Callback fired when the Escape key is pressed.\n */\n onEsc?: (event: React.KeyboardEvent) => void;\n /**\n * Callback fired when the mouse enters the dialog.\n */\n onMouseEnter?: (event: React.MouseEvent) => void;\n /**\n * Callback fired when the mouse leaves the dialog.\n */\n onMouseLeave?: (event: React.MouseEvent) => void;\n /**\n * Callback fired when clicking outside the dialog.\n */\n onClickOutside?: (event: React.MouseEvent, hideShowEvent: DialogTriggerEvent) => void;\n /**\n * Callback fired when clicking inside the dialog.\n */\n onClick?: (event: React.MouseEvent) => void;\n /**\n * Delay before showing the dialog (used for animation timing).\n */\n showDelay?: number;\n /**\n * Inline styles applied to the dialog wrapper.\n */\n styleObject?: CSSProperties;\n /**\n * If true, indicates the reference element is hidden.\n */\n isReferenceHidden?: boolean;\n /**\n * If true, applies tooltip arrow styling.\n */\n hasTooltip?: boolean;\n /**\n * CSS selector of the container for scroll disabling.\n */\n containerSelector?: string;\n /**\n * If true or a selector string, disables scrolling when open.\n */\n disableContainerScroll?: boolean | string;\n /**\n * Callback fired on context menu (right-click) events.\n */\n onContextMenu?: (e: React.MouseEvent) => void;\n}\n\nconst DialogContent = forwardRef<HTMLElement, DialogContentProps>(\n (\n {\n onEsc = NOOP,\n children,\n position,\n wrapperClassName,\n isOpen = false,\n startingEdge,\n animationType = \"expand\",\n onMouseEnter = NOOP,\n onMouseLeave = NOOP,\n onClickOutside = NOOP,\n onClick = NOOP,\n onContextMenu = NOOP,\n showDelay,\n styleObject = EMPTY_OBJECT,\n isReferenceHidden,\n hasTooltip = false,\n containerSelector,\n disableContainerScroll = false,\n \"data-testid\": dataTestId\n },\n forwardedRef\n ) => {\n const contentRef = useRef<HTMLDivElement>(null);\n const wrapperRef = useRef<HTMLSpanElement>(null);\n const mergedWrapperRef = useMergeRef(forwardedRef, wrapperRef);\n\n const onOutsideClick = useCallback(\n (event: React.MouseEvent) => {\n if (isOpen) {\n return onClickOutside(event, \"clickoutside\");\n }\n },\n [isOpen, onClickOutside]\n );\n const overrideOnContextMenu = useCallback(\n (event: React.MouseEvent) => {\n if (isOpen) {\n onContextMenu(event);\n }\n },\n [isOpen, onContextMenu]\n );\n\n // Wrap escape callback to ensure useKeyEvent always receives a valid function\n const escapeCallback = useMemo(\n () => (event: KeyboardEvent) => {\n if (isOpen && onEsc !== NOOP) {\n onEsc(event as unknown as React.KeyboardEvent);\n }\n },\n [isOpen, onEsc]\n );\n useKeyEvent({ keys: ESCAPE_KEYS, callback: escapeCallback });\n\n // Watch the wrapper ref to include padding area, tooltip arrows, and nested Dialogs\n useClickOutside({ callback: onOutsideClick, ref: wrapperRef });\n useClickOutside({ eventName: \"contextmenu\", callback: overrideOnContextMenu, ref: wrapperRef });\n const selectorToDisable = typeof disableContainerScroll === \"string\" ? disableContainerScroll : containerSelector;\n const { disableScroll, enableScroll } = useDisableScroll(selectorToDisable);\n\n useEffect(() => {\n if (disableContainerScroll) {\n if (isOpen) {\n disableScroll();\n } else {\n enableScroll();\n }\n }\n }, [disableContainerScroll, disableScroll, enableScroll, isOpen]);\n\n const transitionOptions: Partial<CSSTransitionProps> = { classNames: undefined };\n\n switch (animationType) {\n case \"expand\":\n transitionOptions.classNames = {\n appear: styles.expandAppear,\n appearActive: styles.expandAppearActive,\n exit: styles.expandExit\n };\n break;\n case \"opacity-and-slide\":\n transitionOptions.classNames = {\n appear: styles.opacitySlideAppear,\n appearActive: styles.opacitySlideAppearActive\n };\n break;\n }\n\n // Clone children to attach mouse event handlers, with proper type checking\n const childrenWithHandlers = React.Children.map(children, child => {\n // Only clone valid React elements, pass through primitives unchanged\n if (!React.isValidElement(child)) {\n return child;\n }\n\n return cloneElement(child as ReactElement, {\n onMouseEnter: chainFunctions([(child as ReactElement).props.onMouseEnter, onMouseEnter]),\n onMouseLeave: chainFunctions([(child as ReactElement).props.onMouseLeave, onMouseLeave])\n });\n });\n\n return (\n <span\n // Legacy class name preserved for Monolith overrides\n className={cx(\"monday-style-dialog-content-wrapper\", styles.contentWrapper, wrapperClassName)}\n ref={mergedWrapperRef}\n data-testid={dataTestId}\n style={styleObject}\n onClickCapture={onClick}\n data-dialog-reference-hidden={isReferenceHidden}\n >\n <CSSTransition\n classNames={transitionOptions.classNames}\n nodeRef={contentRef}\n in={isOpen}\n appear={!!animationType}\n timeout={showDelay}\n >\n <div\n className={cx(styles.contentComponent, getStyle(styles, camelCase(position)), {\n [getStyle(styles, camelCase(\"edge-\" + startingEdge))]: startingEdge,\n [styles.hasTooltip]: hasTooltip\n })}\n ref={contentRef}\n >\n {childrenWithHandlers}\n </div>\n </CSSTransition>\n </span>\n );\n }\n);\n\nexport default DialogContent;\n"],"names":["EMPTY_OBJECT","ESCAPE_KEYS","keyCodes","ESCAPE","DialogContent","forwardRef","onEsc","NOOP","children","position","wrapperClassName","isOpen","startingEdge","animationType","onMouseEnter","onMouseLeave","onClickOutside","onClick","onContextMenu","showDelay","styleObject","isReferenceHidden","hasTooltip","containerSelector","disableContainerScroll","dataTestId","forwardedRef","contentRef","useRef","wrapperRef","mergedWrapperRef","useMergeRef","onOutsideClick","useCallback","event","overrideOnContextMenu","escapeCallback","useMemo","useKeyEvent","keys","callback","useClickOutside","ref","eventName","selectorToDisable","disableScroll","enableScroll","useDisableScroll","useEffect","transitionOptions","classNames","undefined","appear","styles","expandAppear","appearActive","expandAppearActive","exit","expandExit","opacitySlideAppear","opacitySlideAppearActive","childrenWithHandlers","React","Children","map","child","isValidElement","cloneElement","chainFunctions","props","createElement","className","cx","contentWrapper","style","onClickCapture","CSSTransition","nodeRef","in","timeout","contentComponent","getStyle","camelCase"],"mappings":"0eAiCA,MAAMA,EAA8B,CAAA,EAC9BC,EAAc,CAACC,EAASC,QA6ExBC,EAAgBC,GACpB,EAEIC,QAAQC,EACRC,WACAC,WACAC,mBACAC,UAAS,EACTC,eACAC,gBAAgB,SAChBC,eAAeP,EACfQ,eAAeR,EACfS,iBAAiBT,EACjBU,UAAUV,EACVW,gBAAgBX,EAChBY,YACAC,cAAcpB,EACdqB,oBACAC,cAAa,EACbC,oBACAC,0BAAyB,EACzB,cAAeC,GAEjBC,KAEA,MAAMC,EAAaC,EAAuB,MACpCC,EAAaD,EAAwB,MACrCE,EAAmBC,EAAYL,EAAcG,GAE7CG,EAAiBC,GACpBC,IACC,GAAIvB,EACF,OAAOK,EAAekB,EAAO,eAC9B,GAEH,CAACvB,EAAQK,IAELmB,EAAwBF,GAC3BC,IACKvB,GACFO,EAAcgB,EACf,GAEH,CAACvB,EAAQO,IAILkB,EAAiBC,GACrB,IAAOH,IACDvB,GAAUL,IAAUC,GACtBD,EAAM4B,EACP,GAEH,CAACvB,EAAQL,IAEXgC,EAAY,CAAEC,KAAMtC,EAAauC,SAAUJ,IAG3CK,EAAgB,CAAED,SAAUR,EAAgBU,IAAKb,IACjDY,EAAgB,CAAEE,UAAW,cAAeH,SAAUL,EAAuBO,IAAKb,IAClF,MAAMe,EAAsD,iBAA3BpB,EAAsCA,EAAyBD,GAC1FsB,cAAEA,EAAaC,aAAEA,GAAiBC,EAAiBH,GAEzDI,GAAU,KACJxB,IACEb,EACFkC,IAEAC,IAEH,GACA,CAACtB,EAAwBqB,EAAeC,EAAcnC,IAEzD,MAAMsC,EAAiD,CAAEC,gBAAYC,GAErE,OAAQtC,GACN,IAAK,SACHoC,EAAkBC,WAAa,CAC7BE,OAAQC,EAAOC,aACfC,aAAcF,EAAOG,mBACrBC,KAAMJ,EAAOK,YAEf,MACF,IAAK,oBACHT,EAAkBC,WAAa,CAC7BE,OAAQC,EAAOM,mBACfJ,aAAcF,EAAOO,0BAM3B,MAAMC,EAAuBC,EAAMC,SAASC,IAAIxD,GAAUyD,GAEnDH,EAAMI,eAAeD,GAInBE,EAAaF,EAAuB,CACzCnD,aAAcsD,EAAe,CAAEH,EAAuBI,MAAMvD,aAAcA,IAC1EC,aAAcqD,EAAe,CAAEH,EAAuBI,MAAMtD,aAAcA,MALnEkD,IASX,OACEH,EAAAQ,cAAA,OAAA,CAEEC,UAAWC,EAAG,sCAAuCnB,EAAOoB,eAAgB/D,GAC5EgC,IAAKZ,EAAgB,cACRL,EACbiD,MAAOtD,EACPuD,eAAgB1D,EAAO,+BACOI,GAE9ByC,EAACQ,cAAAM,EACC,CAAA1B,WAAYD,EAAkBC,WAC9B2B,QAASlD,EACTmD,GAAInE,EACJyC,SAAUvC,EACVkE,QAAS5D,GAET2C,EAAAQ,cAAA,MAAA,CACEC,UAAWC,EAAGnB,EAAO2B,iBAAkBC,EAAS5B,EAAQ6B,EAAUzE,IAAY,CAC5E,CAACwE,EAAS5B,EAAQ6B,EAAU,QAAUtE,KAAiBA,EACvD,CAACyC,EAAO/B,YAAaA,IAEvBoB,IAAKf,GAEJkC,IAGA"}
1
+ {"version":3,"file":"DialogContent.js","sources":["../../../../src/Dialog/components/DialogContent/DialogContent.tsx"],"sourcesContent":["import React, {\n cloneElement,\n type CSSProperties,\n forwardRef,\n type ReactElement,\n useCallback,\n useEffect,\n useMemo,\n useRef\n} from \"react\";\nimport cx from \"classnames\";\nimport { camelCase } from \"es-toolkit\";\nimport { CSSTransition } from \"react-transition-group\";\nimport { type CSSTransitionProps } from \"react-transition-group/CSSTransition\";\nimport { useClickOutside } from \"@vibe/hooks\";\nimport {\n chainFunctions,\n NOOP,\n useKeyEvent,\n type VibeComponentProps,\n keyCodes,\n getStyle,\n useMergeRef\n} from \"@vibe/shared\";\nimport {\n type DialogAnimationType,\n type DialogTriggerEvent,\n type DialogStartingEdge,\n type DialogPlacement\n} from \"../../Dialog.types\";\nimport styles from \"./DialogContent.module.scss\";\nimport useDisableScroll from \"../../hooks/useDisableScroll\";\n\nconst EMPTY_OBJECT: CSSProperties = {};\nconst ESCAPE_KEYS = [keyCodes.ESCAPE];\n\nexport interface DialogContentProps extends VibeComponentProps {\n /**\n * The content inside the dialog.\n */\n children?: ReactElement | ReactElement[];\n /**\n * The placement of the dialog relative to the reference element.\n */\n position?: DialogPlacement;\n /**\n * Class name applied to the dialog wrapper.\n */\n wrapperClassName?: string;\n /**\n * If true, the dialog is open.\n */\n isOpen?: boolean;\n /**\n * The starting edge for animation direction.\n */\n startingEdge?: DialogStartingEdge;\n /**\n * The animation type used for showing/hiding the dialog.\n */\n animationType?: DialogAnimationType;\n /**\n * Callback fired when the Escape key is pressed.\n */\n onEsc?: (event: React.KeyboardEvent) => void;\n /**\n * Callback fired when the mouse enters the dialog.\n */\n onMouseEnter?: (event: React.MouseEvent) => void;\n /**\n * Callback fired when the mouse leaves the dialog.\n */\n onMouseLeave?: (event: React.MouseEvent) => void;\n /**\n * Callback fired when clicking outside the dialog.\n */\n onClickOutside?: (event: React.MouseEvent, hideShowEvent: DialogTriggerEvent) => void;\n /**\n * Callback fired when clicking inside the dialog.\n */\n onClick?: (event: React.MouseEvent) => void;\n /**\n * Delay before showing the dialog (used for animation timing).\n */\n showDelay?: number;\n /**\n * Inline styles applied to the dialog wrapper.\n */\n styleObject?: CSSProperties;\n /**\n * If true, indicates the reference element is hidden.\n */\n isReferenceHidden?: boolean;\n /**\n * If true, applies tooltip arrow styling.\n */\n hasTooltip?: boolean;\n /**\n * CSS selector of the container for scroll disabling.\n */\n containerSelector?: string;\n /**\n * If true or a selector string, disables scrolling when open.\n */\n disableContainerScroll?: boolean | string;\n /**\n * Callback fired on context menu (right-click) events.\n */\n onContextMenu?: (e: React.MouseEvent) => void;\n}\n\nconst DialogContent = forwardRef<HTMLElement, DialogContentProps>(\n (\n {\n onEsc = NOOP,\n children,\n position,\n wrapperClassName,\n isOpen = false,\n startingEdge,\n animationType = \"expand\",\n onMouseEnter = NOOP,\n onMouseLeave = NOOP,\n onClickOutside = NOOP,\n onClick = NOOP,\n onContextMenu = NOOP,\n showDelay,\n styleObject = EMPTY_OBJECT,\n isReferenceHidden,\n hasTooltip = false,\n containerSelector,\n disableContainerScroll = false,\n \"data-testid\": dataTestId\n },\n forwardedRef\n ) => {\n const contentRef = useRef<HTMLDivElement>(null);\n const wrapperRef = useRef<HTMLSpanElement>(null);\n const mergedWrapperRef = useMergeRef(forwardedRef, wrapperRef);\n\n const onOutsideClick = useCallback(\n (event: React.MouseEvent) => {\n if (isOpen) {\n return onClickOutside(event, \"clickoutside\");\n }\n },\n [isOpen, onClickOutside]\n );\n const overrideOnContextMenu = useCallback(\n (event: React.MouseEvent) => {\n if (isOpen) {\n onContextMenu(event);\n }\n },\n [isOpen, onContextMenu]\n );\n\n // Wrap escape callback to ensure useKeyEvent always receives a valid function\n const escapeCallback = useMemo(\n () => (event: KeyboardEvent) => {\n if (isOpen && onEsc !== NOOP) {\n onEsc(event as unknown as React.KeyboardEvent);\n }\n },\n [isOpen, onEsc]\n );\n useKeyEvent({ keys: ESCAPE_KEYS, callback: escapeCallback });\n\n // Watch the wrapper ref to include padding area, tooltip arrows, and nested Dialogs\n useClickOutside({ callback: onOutsideClick, ref: wrapperRef });\n useClickOutside({ eventName: \"contextmenu\", callback: overrideOnContextMenu, ref: wrapperRef });\n const selectorToDisable = typeof disableContainerScroll === \"string\" ? disableContainerScroll : containerSelector;\n const { disableScroll, enableScroll } = useDisableScroll(selectorToDisable);\n\n useEffect(() => {\n if (disableContainerScroll) {\n if (isOpen) {\n disableScroll();\n } else {\n enableScroll();\n }\n }\n }, [disableContainerScroll, disableScroll, enableScroll, isOpen]);\n\n const transitionOptions: Partial<CSSTransitionProps> = { classNames: undefined };\n\n switch (animationType) {\n case \"expand\":\n transitionOptions.classNames = {\n appear: styles.expandAppear,\n appearActive: styles.expandAppearActive,\n exit: styles.expandExit\n };\n break;\n case \"opacity-and-slide\":\n transitionOptions.classNames = {\n appear: styles.opacitySlideAppear,\n appearActive: styles.opacitySlideAppearActive\n };\n break;\n }\n\n // Clone children to attach mouse event handlers, with proper type checking\n const childrenWithHandlers = React.Children.map(children, child => {\n // Only clone valid React elements, pass through primitives unchanged\n if (!React.isValidElement(child)) {\n return child;\n }\n\n return cloneElement(child as ReactElement, {\n onMouseEnter: chainFunctions([(child as ReactElement).props.onMouseEnter, onMouseEnter]),\n onMouseLeave: chainFunctions([(child as ReactElement).props.onMouseLeave, onMouseLeave])\n });\n });\n\n return (\n <span\n // Legacy class name preserved for Monolith overrides\n className={cx(\"monday-style-dialog-content-wrapper\", styles.contentWrapper, wrapperClassName)}\n ref={mergedWrapperRef}\n data-testid={dataTestId}\n style={styleObject}\n onClickCapture={onClick}\n data-dialog-reference-hidden={isReferenceHidden}\n >\n <CSSTransition\n classNames={transitionOptions.classNames}\n nodeRef={contentRef}\n in={isOpen}\n appear={!!animationType}\n timeout={showDelay}\n >\n <div\n className={cx(styles.contentComponent, getStyle(styles, camelCase(position)), {\n [getStyle(styles, camelCase(\"edge-\" + startingEdge))]: startingEdge,\n [styles.hasTooltip]: hasTooltip\n })}\n ref={contentRef}\n >\n {childrenWithHandlers}\n </div>\n </CSSTransition>\n </span>\n );\n }\n);\n\nexport default DialogContent;\n"],"names":["EMPTY_OBJECT","ESCAPE_KEYS","keyCodes","ESCAPE","DialogContent","forwardRef","onEsc","NOOP","children","position","wrapperClassName","isOpen","startingEdge","animationType","onMouseEnter","onMouseLeave","onClickOutside","onClick","onContextMenu","showDelay","styleObject","isReferenceHidden","hasTooltip","containerSelector","disableContainerScroll","dataTestId","forwardedRef","contentRef","useRef","wrapperRef","mergedWrapperRef","useMergeRef","onOutsideClick","useCallback","event","overrideOnContextMenu","escapeCallback","useMemo","useKeyEvent","keys","callback","useClickOutside","ref","eventName","selectorToDisable","disableScroll","enableScroll","useDisableScroll","useEffect","transitionOptions","classNames","undefined","appear","styles","expandAppear","appearActive","expandAppearActive","exit","expandExit","opacitySlideAppear","opacitySlideAppearActive","childrenWithHandlers","React","Children","map","child","isValidElement","cloneElement","chainFunctions","props","createElement","className","cx","contentWrapper","style","onClickCapture","CSSTransition","nodeRef","in","timeout","contentComponent","getStyle","camelCase"],"mappings":"0eAiCA,MAAMA,EAA8B,CAAA,EAC9BC,EAAc,CAACC,EAASC,QA6ExBC,EAAgBC,GACpB,EAEIC,QAAQC,EACRC,WACAC,WACAC,mBACAC,UAAS,EACTC,eACAC,gBAAgB,SAChBC,eAAeP,EACfQ,eAAeR,EACfS,iBAAiBT,EACjBU,UAAUV,EACVW,gBAAgBX,EAChBY,YACAC,cAAcpB,EACdqB,oBACAC,cAAa,EACbC,oBACAC,0BAAyB,EACzB,cAAeC,GAEjBC,KAEA,MAAMC,EAAaC,EAAuB,MACpCC,EAAaD,EAAwB,MACrCE,EAAmBC,EAAYL,EAAcG,GAE7CG,EAAiBC,GACpBC,IACC,GAAIvB,EACF,OAAOK,EAAekB,EAAO,eAC/B,GAEF,CAACvB,EAAQK,IAELmB,EAAwBF,GAC3BC,IACKvB,GACFO,EAAcgB,EAChB,GAEF,CAACvB,EAAQO,IAILkB,EAAiBC,GACrB,IAAOH,IACDvB,GAAUL,IAAUC,GACtBD,EAAM4B,EACR,GAEF,CAACvB,EAAQL,IAEXgC,EAAY,CAAEC,KAAMtC,EAAauC,SAAUJ,IAG3CK,EAAgB,CAAED,SAAUR,EAAgBU,IAAKb,IACjDY,EAAgB,CAAEE,UAAW,cAAeH,SAAUL,EAAuBO,IAAKb,IAClF,MAAMe,EAAsD,iBAA3BpB,EAAsCA,EAAyBD,GAC1FsB,cAAEA,EAAaC,aAAEA,GAAiBC,EAAiBH,GAEzDI,GAAU,KACJxB,IACEb,EACFkC,IAEAC,IAEJ,GACC,CAACtB,EAAwBqB,EAAeC,EAAcnC,IAEzD,MAAMsC,EAAiD,CAAEC,gBAAYC,GAErE,OAAQtC,GACN,IAAK,SACHoC,EAAkBC,WAAa,CAC7BE,OAAQC,EAAOC,aACfC,aAAcF,EAAOG,mBACrBC,KAAMJ,EAAOK,YAEf,MACF,IAAK,oBACHT,EAAkBC,WAAa,CAC7BE,OAAQC,EAAOM,mBACfJ,aAAcF,EAAOO,0BAM3B,MAAMC,EAAuBC,EAAMC,SAASC,IAAIxD,GAAUyD,GAEnDH,EAAMI,eAAeD,GAInBE,EAAaF,EAAuB,CACzCnD,aAAcsD,EAAe,CAAEH,EAAuBI,MAAMvD,aAAcA,IAC1EC,aAAcqD,EAAe,CAAEH,EAAuBI,MAAMtD,aAAcA,MALnEkD,IASX,OACEH,EAAAQ,cAAA,OAAA,CAEEC,UAAWC,EAAG,sCAAuCnB,EAAOoB,eAAgB/D,GAC5EgC,IAAKZ,EAAgB,cACRL,EACbiD,MAAOtD,EACPuD,eAAgB1D,EAAO,+BACOI,GAE9ByC,EAACQ,cAAAM,EACC,CAAA1B,WAAYD,EAAkBC,WAC9B2B,QAASlD,EACTmD,GAAInE,EACJyC,SAAUvC,EACVkE,QAAS5D,GAET2C,EAAAQ,cAAA,MAAA,CACEC,UAAWC,EAAGnB,EAAO2B,iBAAkBC,EAAS5B,EAAQ6B,EAAUzE,IAAY,CAC5E,CAACwE,EAAS5B,EAAQ6B,EAAU,QAAUtE,KAAiBA,EACvD,CAACyC,EAAO/B,YAAaA,IAEvBoB,IAAKf,GAEJkC,IAGA"}
@@ -1,2 +1,2 @@
1
- var e={contentWrapper:"contentWrapper_6feaf8446d",top:"top_f3ab5496b5",right:"right_03166b8107",left:"left_7f5be6bc29",bottom:"bottom_bec308977b",bottomStart:"bottomStart_e346db0baf",topStart:"topStart_e35ade4416",bottomEnd:"bottomEnd_209d0a582b",topEnd:"topEnd_28a829270a",leftStart:"leftStart_28a64bc8b2",rightStart:"rightStart_20072f7e5b",leftEnd:"leftEnd_f1501c25bd",rightEnd:"rightEnd_cf254ed741",contentComponent:"contentComponent_b39a5e38e7",hasTooltip:"hasTooltip_0d5fcff08a",opacitySlideAppear:"opacitySlideAppear_1e10667b12",opacitySlideAppearActive:"opacitySlideAppearActive_72f3c5e9f2",expandAppear:"expandAppear_9c54d58d1e",expandExit:"expandExit_2693370975",edgeBottom:"edgeBottom_6290eaa1b3",edgeTop:"edgeTop_b3acdf2e66",expandAppearActive:"expandAppearActive_7e09f7c88d"};!function(e){const t="s_id-b5fc9eb29715_4_0_0-alpha_0";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_6feaf8446d {\n outline: 0;\n}\n.contentWrapper_6feaf8446d.top_f3ab5496b5, .contentWrapper_6feaf8446d.right_03166b8107, .contentWrapper_6feaf8446d.left_7f5be6bc29, .contentWrapper_6feaf8446d.bottom_bec308977b {\n padding: var(--space-4);\n}\n.contentWrapper_6feaf8446d.bottomStart_e346db0baf, .contentWrapper_6feaf8446d.topStart_e35ade4416, .contentWrapper_6feaf8446d.bottomEnd_209d0a582b, .contentWrapper_6feaf8446d.topEnd_28a829270a {\n padding-block: var(--space-4);\n}\n.contentWrapper_6feaf8446d.bottomStart_e346db0baf, .contentWrapper_6feaf8446d.topStart_e35ade4416 {\n padding-inline-end: var(--space-4);\n}\n.contentWrapper_6feaf8446d.bottomEnd_209d0a582b, .contentWrapper_6feaf8446d.topEnd_28a829270a {\n padding-inline-start: var(--space-4);\n}\n.contentWrapper_6feaf8446d.leftStart_28a64bc8b2, .contentWrapper_6feaf8446d.rightStart_20072f7e5b, .contentWrapper_6feaf8446d.leftEnd_f1501c25bd, .contentWrapper_6feaf8446d.rightEnd_cf254ed741 {\n padding-inline: var(--space-4);\n}\n.contentWrapper_6feaf8446d.leftStart_28a64bc8b2, .contentWrapper_6feaf8446d.rightStart_20072f7e5b {\n padding-block-end: var(--space-4);\n}\n.contentWrapper_6feaf8446d.leftEnd_f1501c25bd, .contentWrapper_6feaf8446d.rightEnd_cf254ed741 {\n padding-block-start: var(--space-4);\n}\n.contentWrapper_6feaf8446d[data-dialog-reference-hidden=true] {\n visibility: hidden;\n pointer-events: none;\n}\n.contentComponent_b39a5e38e7:focus {\n outline: none;\n}\n.contentComponent_b39a5e38e7.hasTooltip_0d5fcff08a {\n padding: 6px;\n}\n.opacitySlideAppear_1e10667b12 {\n opacity: 0;\n}\n.opacitySlideAppear_1e10667b12.top_f3ab5496b5 {\n transform: translateY(var(--space-16));\n}\n.opacitySlideAppear_1e10667b12.right_03166b8107 {\n transform: translateX(calc(var(--space-16) * -1));\n}\n.opacitySlideAppear_1e10667b12.bottom_bec308977b {\n transform: translateY(calc(var(--space-16) * -1));\n}\n.opacitySlideAppear_1e10667b12.left_7f5be6bc29 {\n transform: translateX(var(--space-16));\n}\n.opacitySlideAppearActive_72f3c5e9f2 {\n transition: opacity 0.2s ease, transform 0.2s ease-out;\n opacity: 1;\n pointer-events: none;\n}\n.opacitySlideAppearActive_72f3c5e9f2.top_f3ab5496b5, .opacitySlideAppearActive_72f3c5e9f2.bottom_bec308977b {\n transform: translateY(0);\n}\n.opacitySlideAppearActive_72f3c5e9f2.right_03166b8107, .opacitySlideAppearActive_72f3c5e9f2.left_7f5be6bc29 {\n transform: translateX(0);\n}\n.expandAppear_9c54d58d1e,\n.expandExit_2693370975 {\n transition: transform 0.1s cubic-bezier(0, 0, 0.35, 1);\n}\n.expandAppear_9c54d58d1e.top_f3ab5496b5, .expandAppear_9c54d58d1e.topStart_e35ade4416, .expandAppear_9c54d58d1e.topEnd_28a829270a,\n.expandExit_2693370975.top_f3ab5496b5,\n.expandExit_2693370975.topStart_e35ade4416,\n.expandExit_2693370975.topEnd_28a829270a {\n transform-origin: bottom center;\n transform: scale(0.8);\n}\n.expandAppear_9c54d58d1e.top_f3ab5496b5.edgeBottom_6290eaa1b3, .expandAppear_9c54d58d1e.topStart_e35ade4416.edgeBottom_6290eaa1b3, .expandAppear_9c54d58d1e.topEnd_28a829270a.edgeBottom_6290eaa1b3,\n.expandExit_2693370975.top_f3ab5496b5.edgeBottom_6290eaa1b3,\n.expandExit_2693370975.topStart_e35ade4416.edgeBottom_6290eaa1b3,\n.expandExit_2693370975.topEnd_28a829270a.edgeBottom_6290eaa1b3 {\n transform-origin: bottom left;\n}\n.expandAppear_9c54d58d1e.top_f3ab5496b5.edgeTop_b3acdf2e66, .expandAppear_9c54d58d1e.topStart_e35ade4416.edgeTop_b3acdf2e66, .expandAppear_9c54d58d1e.topEnd_28a829270a.edgeTop_b3acdf2e66,\n.expandExit_2693370975.top_f3ab5496b5.edgeTop_b3acdf2e66,\n.expandExit_2693370975.topStart_e35ade4416.edgeTop_b3acdf2e66,\n.expandExit_2693370975.topEnd_28a829270a.edgeTop_b3acdf2e66 {\n transform-origin: bottom right;\n}\n.expandAppear_9c54d58d1e.right_03166b8107, .expandAppear_9c54d58d1e.rightStart_20072f7e5b, .expandAppear_9c54d58d1e.rightEnd_cf254ed741,\n.expandExit_2693370975.right_03166b8107,\n.expandExit_2693370975.rightStart_20072f7e5b,\n.expandExit_2693370975.rightEnd_cf254ed741 {\n transform-origin: left;\n transform: scale(0.8);\n}\n.expandAppear_9c54d58d1e.right_03166b8107.edgeBottom_6290eaa1b3, .expandAppear_9c54d58d1e.rightStart_20072f7e5b.edgeBottom_6290eaa1b3, .expandAppear_9c54d58d1e.rightEnd_cf254ed741.edgeBottom_6290eaa1b3,\n.expandExit_2693370975.right_03166b8107.edgeBottom_6290eaa1b3,\n.expandExit_2693370975.rightStart_20072f7e5b.edgeBottom_6290eaa1b3,\n.expandExit_2693370975.rightEnd_cf254ed741.edgeBottom_6290eaa1b3 {\n transform-origin: top left;\n}\n.expandAppear_9c54d58d1e.right_03166b8107.edgeTop_b3acdf2e66, .expandAppear_9c54d58d1e.rightStart_20072f7e5b.edgeTop_b3acdf2e66, .expandAppear_9c54d58d1e.rightEnd_cf254ed741.edgeTop_b3acdf2e66,\n.expandExit_2693370975.right_03166b8107.edgeTop_b3acdf2e66,\n.expandExit_2693370975.rightStart_20072f7e5b.edgeTop_b3acdf2e66,\n.expandExit_2693370975.rightEnd_cf254ed741.edgeTop_b3acdf2e66 {\n transform-origin: bottom left;\n}\n.expandAppear_9c54d58d1e.bottom_bec308977b, .expandAppear_9c54d58d1e.bottomStart_e346db0baf, .expandAppear_9c54d58d1e.bottomEnd_209d0a582b,\n.expandExit_2693370975.bottom_bec308977b,\n.expandExit_2693370975.bottomStart_e346db0baf,\n.expandExit_2693370975.bottomEnd_209d0a582b {\n transform-origin: top;\n transform: scale(0.8);\n}\n.expandAppear_9c54d58d1e.bottom_bec308977b.edgeBottom_6290eaa1b3, .expandAppear_9c54d58d1e.bottomStart_e346db0baf.edgeBottom_6290eaa1b3, .expandAppear_9c54d58d1e.bottomEnd_209d0a582b.edgeBottom_6290eaa1b3,\n.expandExit_2693370975.bottom_bec308977b.edgeBottom_6290eaa1b3,\n.expandExit_2693370975.bottomStart_e346db0baf.edgeBottom_6290eaa1b3,\n.expandExit_2693370975.bottomEnd_209d0a582b.edgeBottom_6290eaa1b3 {\n transform-origin: top left;\n}\n.expandAppear_9c54d58d1e.bottom_bec308977b.edgeTop_b3acdf2e66, .expandAppear_9c54d58d1e.bottomStart_e346db0baf.edgeTop_b3acdf2e66, .expandAppear_9c54d58d1e.bottomEnd_209d0a582b.edgeTop_b3acdf2e66,\n.expandExit_2693370975.bottom_bec308977b.edgeTop_b3acdf2e66,\n.expandExit_2693370975.bottomStart_e346db0baf.edgeTop_b3acdf2e66,\n.expandExit_2693370975.bottomEnd_209d0a582b.edgeTop_b3acdf2e66 {\n transform-origin: top right;\n}\n.expandAppear_9c54d58d1e.left_7f5be6bc29, .expandAppear_9c54d58d1e.leftStart_28a64bc8b2, .expandAppear_9c54d58d1e.leftEnd_f1501c25bd,\n.expandExit_2693370975.left_7f5be6bc29,\n.expandExit_2693370975.leftStart_28a64bc8b2,\n.expandExit_2693370975.leftEnd_f1501c25bd {\n transform-origin: right;\n transform: scale(0.8);\n}\n.expandAppear_9c54d58d1e.left_7f5be6bc29.edgeBottom_6290eaa1b3, .expandAppear_9c54d58d1e.leftStart_28a64bc8b2.edgeBottom_6290eaa1b3, .expandAppear_9c54d58d1e.leftEnd_f1501c25bd.edgeBottom_6290eaa1b3,\n.expandExit_2693370975.left_7f5be6bc29.edgeBottom_6290eaa1b3,\n.expandExit_2693370975.leftStart_28a64bc8b2.edgeBottom_6290eaa1b3,\n.expandExit_2693370975.leftEnd_f1501c25bd.edgeBottom_6290eaa1b3 {\n transform-origin: top right;\n}\n.expandAppear_9c54d58d1e.left_7f5be6bc29.edgeTop_b3acdf2e66, .expandAppear_9c54d58d1e.leftStart_28a64bc8b2.edgeTop_b3acdf2e66, .expandAppear_9c54d58d1e.leftEnd_f1501c25bd.edgeTop_b3acdf2e66,\n.expandExit_2693370975.left_7f5be6bc29.edgeTop_b3acdf2e66,\n.expandExit_2693370975.leftStart_28a64bc8b2.edgeTop_b3acdf2e66,\n.expandExit_2693370975.leftEnd_f1501c25bd.edgeTop_b3acdf2e66 {\n transform-origin: bottom right;\n}\n.expandExit_2693370975 {\n transition: transform 0.1s cubic-bezier(0, 0, 0.35, 1);\n}\n.expandAppearActive_7e09f7c88d {\n transition: transform 0.1s cubic-bezier(0, 0, 0.35, 1);\n pointer-events: none;\n}\n.expandAppearActive_7e09f7c88d.top_f3ab5496b5, .expandAppearActive_7e09f7c88d.topStart_e35ade4416, .expandAppearActive_7e09f7c88d.topEnd_28a829270a, .expandAppearActive_7e09f7c88d.bottom_bec308977b, .expandAppearActive_7e09f7c88d.bottomStart_e346db0baf, .expandAppearActive_7e09f7c88d.bottomEnd_209d0a582b, .expandAppearActive_7e09f7c88d.right_03166b8107, .expandAppearActive_7e09f7c88d.rightStart_20072f7e5b, .expandAppearActive_7e09f7c88d.rightEnd_cf254ed741, .expandAppearActive_7e09f7c88d.left_7f5be6bc29, .expandAppearActive_7e09f7c88d.leftStart_28a64bc8b2, .expandAppearActive_7e09f7c88d.leftEnd_f1501c25bd {\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,18 +1,18 @@
1
- import React, { type HTMLProps, type ReactElement } from "react";
2
- import { type VibeComponentProps } from "@vibe/shared";
3
- export interface RefableProps extends React.PropsWithChildren<HTMLProps<HTMLElement> & VibeComponentProps> {
4
- children: ReactElement | ReactElement[] | string;
5
- /**
6
- * The wrapper element type to use for React components. Defaults to "span".
7
- */
8
- wrapperElement?: "span" | "div";
9
- }
10
- /**
11
- * Refable is a utility component that enables ref forwarding to children elements.
12
- *
13
- * For native HTML elements: Clones the child and merges refs and event handlers.
14
- * For React components: Wraps in a span/div and attaches the ref to the wrapper.
15
- *
16
- * This allows Dialog to get a reference to the trigger element for positioning.
17
- */
18
- export declare const Refable: React.ForwardRefExoticComponent<Omit<RefableProps, "ref"> & React.RefAttributes<HTMLElement>>;
1
+ import React, { type HTMLProps, type ReactElement } from "react";
2
+ import { type VibeComponentProps } from "@vibe/shared";
3
+ export interface RefableProps extends React.PropsWithChildren<HTMLProps<HTMLElement> & VibeComponentProps> {
4
+ children: ReactElement | ReactElement[] | string;
5
+ /**
6
+ * The wrapper element type to use for React components. Defaults to "span".
7
+ */
8
+ wrapperElement?: "span" | "div";
9
+ }
10
+ /**
11
+ * Refable is a utility component that enables ref forwarding to children elements.
12
+ *
13
+ * For native HTML elements: Clones the child and merges refs and event handlers.
14
+ * For React components: Wraps in a span/div and attaches the ref to the wrapper.
15
+ *
16
+ * This allows Dialog to get a reference to the trigger element for positioning.
17
+ */
18
+ export declare const Refable: React.ForwardRefExoticComponent<Omit<RefableProps, "ref"> & React.RefAttributes<HTMLElement>>;
@@ -1 +1 @@
1
- {"version":3,"file":"Refable.js","sources":["../../../../src/Dialog/components/Refable/Refable.tsx"],"sourcesContent":["import React, { type HTMLProps, type ReactElement } from \"react\";\nimport { chainFunctions, chainRefFunctions, type VibeComponentProps } from \"@vibe/shared\";\n\nexport interface RefableProps extends React.PropsWithChildren<HTMLProps<HTMLElement> & VibeComponentProps> {\n children: ReactElement | ReactElement[] | string;\n /**\n * The wrapper element type to use for React components. Defaults to \"span\".\n */\n wrapperElement?: \"span\" | \"div\";\n}\n\n/**\n * Refable is a utility component that enables ref forwarding to children elements.\n *\n * For native HTML elements: Clones the child and merges refs and event handlers.\n * For React components: Wraps in a span/div and attaches the ref to the wrapper.\n *\n * This allows Dialog to get a reference to the trigger element for positioning.\n */\nexport const Refable = React.forwardRef<HTMLElement, RefableProps>(\n ({ children, wrapperElement = \"span\", ...rest }, ref) => {\n return React.Children.map(children, child => {\n if (!React.isValidElement(child)) return null;\n\n // For React components, wrap in a native element to attach the ref\n if (typeof child.type !== \"string\") {\n const WrapperElement = wrapperElement;\n return (\n // @ts-expect-error - TypeScript can't infer the correct ref type when using a variable as JSX tag\n <WrapperElement ref={ref} {...rest}>\n {child}\n </WrapperElement>\n );\n }\n\n // For native HTML elements, clone and merge props/refs\n const childProps = child.props as React.HTMLProps<HTMLElement>;\n\n return React.cloneElement(child, {\n ...rest,\n ...childProps,\n // Chain all event handlers to preserve both parent and child handlers\n onClick: getChainedFunction(\"onClick\", childProps, rest),\n onBlur: getChainedFunction(\"onBlur\", childProps, rest),\n onFocus: getChainedFunction(\"onFocus\", childProps, rest),\n onMouseEnter: getChainedFunction(\"onMouseEnter\", childProps, rest),\n onMouseLeave: getChainedFunction(\"onMouseLeave\", childProps, rest),\n onMouseDown: getChainedFunction(\"onMouseDown\", childProps, rest),\n onKeyDown: getChainedFunction(\"onKeyDown\", childProps, rest),\n onContextMenu: getChainedFunction(\"onContextMenu\", childProps, rest),\n ref: chainRefFunctions([(child as any).ref, ref])\n } as any);\n }) as any;\n }\n);\n\nfunction getChainedFunction(\n name: keyof React.HTMLProps<unknown>,\n childProps: React.PropsWithChildren<React.HTMLProps<unknown>>,\n wrapperProps: React.HTMLProps<unknown>\n) {\n return chainFunctions([childProps[name], wrapperProps[name]], true);\n}\n"],"names":["Refable","React","forwardRef","_a","ref","children","wrapperElement","rest","__rest","Children","map","child","isValidElement","type","createElement","Object","assign","childProps","props","cloneElement","onClick","getChainedFunction","onBlur","onFocus","onMouseEnter","onMouseLeave","onMouseDown","onKeyDown","onContextMenu","chainRefFunctions","name","wrapperProps","chainFunctions"],"mappings":"+IAmBO,MAAMA,EAAUC,EAAMC,YAC3B,CAACC,EAAgDC,SAAhDC,SAAEA,EAAQC,eAAEA,EAAiB,UAAWC,EAAxCC,EAAAL,EAAA,CAAA,WAAA,mBACC,OAAOF,EAAMQ,SAASC,IAAIL,GAAUM,IAClC,IAAKV,EAAMW,eAAeD,GAAQ,OAAO,KAGzC,GAA0B,iBAAfA,EAAME,KAAmB,CAElC,OAEEZ,EAACa,cAHoBR,EAGLS,OAAAC,OAAA,CAAAZ,IAAKA,GAASG,GAC3BI,EAGN,CAGD,MAAMM,EAAaN,EAAMO,MAEzB,OAAOjB,EAAMkB,aAAaR,EAAOI,OAAAC,OAAAD,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EAC5BT,GACAU,GAAU,CAEbG,QAASC,EAAmB,UAAWJ,EAAYV,GACnDe,OAAQD,EAAmB,SAAUJ,EAAYV,GACjDgB,QAASF,EAAmB,UAAWJ,EAAYV,GACnDiB,aAAcH,EAAmB,eAAgBJ,EAAYV,GAC7DkB,aAAcJ,EAAmB,eAAgBJ,EAAYV,GAC7DmB,YAAaL,EAAmB,cAAeJ,EAAYV,GAC3DoB,UAAWN,EAAmB,YAAaJ,EAAYV,GACvDqB,cAAeP,EAAmB,gBAAiBJ,EAAYV,GAC/DH,IAAKyB,EAAkB,CAAElB,EAAcP,IAAKA,MACrC,GACF,IAIb,SAASiB,EACPS,EACAb,EACAc,GAEA,OAAOC,EAAe,CAACf,EAAWa,GAAOC,EAAaD,KAAQ,EAChE"}
1
+ {"version":3,"file":"Refable.js","sources":["../../../../src/Dialog/components/Refable/Refable.tsx"],"sourcesContent":["import React, { type HTMLProps, type ReactElement } from \"react\";\nimport { chainFunctions, chainRefFunctions, type VibeComponentProps } from \"@vibe/shared\";\n\nexport interface RefableProps extends React.PropsWithChildren<HTMLProps<HTMLElement> & VibeComponentProps> {\n children: ReactElement | ReactElement[] | string;\n /**\n * The wrapper element type to use for React components. Defaults to \"span\".\n */\n wrapperElement?: \"span\" | \"div\";\n}\n\n/**\n * Refable is a utility component that enables ref forwarding to children elements.\n *\n * For native HTML elements: Clones the child and merges refs and event handlers.\n * For React components: Wraps in a span/div and attaches the ref to the wrapper.\n *\n * This allows Dialog to get a reference to the trigger element for positioning.\n */\nexport const Refable = React.forwardRef<HTMLElement, RefableProps>(\n ({ children, wrapperElement = \"span\", ...rest }, ref) => {\n return React.Children.map(children, child => {\n if (!React.isValidElement(child)) return null;\n\n // For React components, wrap in a native element to attach the ref\n if (typeof child.type !== \"string\") {\n const WrapperElement = wrapperElement;\n return (\n // @ts-expect-error - TypeScript can't infer the correct ref type when using a variable as JSX tag\n <WrapperElement ref={ref} {...rest}>\n {child}\n </WrapperElement>\n );\n }\n\n // For native HTML elements, clone and merge props/refs\n const childProps = child.props as React.HTMLProps<HTMLElement>;\n\n return React.cloneElement(child, {\n ...rest,\n ...childProps,\n // Chain all event handlers to preserve both parent and child handlers\n onClick: getChainedFunction(\"onClick\", childProps, rest),\n onBlur: getChainedFunction(\"onBlur\", childProps, rest),\n onFocus: getChainedFunction(\"onFocus\", childProps, rest),\n onMouseEnter: getChainedFunction(\"onMouseEnter\", childProps, rest),\n onMouseLeave: getChainedFunction(\"onMouseLeave\", childProps, rest),\n onMouseDown: getChainedFunction(\"onMouseDown\", childProps, rest),\n onKeyDown: getChainedFunction(\"onKeyDown\", childProps, rest),\n onContextMenu: getChainedFunction(\"onContextMenu\", childProps, rest),\n ref: chainRefFunctions([(child as any).ref, ref])\n } as any);\n }) as any;\n }\n);\n\nfunction getChainedFunction(\n name: keyof React.HTMLProps<unknown>,\n childProps: React.PropsWithChildren<React.HTMLProps<unknown>>,\n wrapperProps: React.HTMLProps<unknown>\n) {\n return chainFunctions([childProps[name], wrapperProps[name]], true);\n}\n"],"names":["Refable","React","forwardRef","_a","ref","children","wrapperElement","rest","__rest","Children","map","child","isValidElement","type","createElement","Object","assign","childProps","props","cloneElement","onClick","getChainedFunction","onBlur","onFocus","onMouseEnter","onMouseLeave","onMouseDown","onKeyDown","onContextMenu","chainRefFunctions","name","wrapperProps","chainFunctions"],"mappings":"+IAmBO,MAAMA,EAAUC,EAAMC,YAC3B,CAACC,EAAgDC,SAAhDC,SAAEA,EAAQC,eAAEA,EAAiB,UAAWC,EAAxCC,EAAAL,EAAA,CAAA,WAAA,mBACC,OAAOF,EAAMQ,SAASC,IAAIL,GAAUM,IAClC,IAAKV,EAAMW,eAAeD,GAAQ,OAAO,KAGzC,GAA0B,iBAAfA,EAAME,KAAmB,CAElC,OAEEZ,EAACa,cAHoBR,EAGLS,OAAAC,OAAA,CAAAZ,IAAKA,GAASG,GAC3BI,EAGP,CAGA,MAAMM,EAAaN,EAAMO,MAEzB,OAAOjB,EAAMkB,aAAaR,EAAOI,OAAAC,OAAAD,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EAC5BT,GACAU,GAAU,CAEbG,QAASC,EAAmB,UAAWJ,EAAYV,GACnDe,OAAQD,EAAmB,SAAUJ,EAAYV,GACjDgB,QAASF,EAAmB,UAAWJ,EAAYV,GACnDiB,aAAcH,EAAmB,eAAgBJ,EAAYV,GAC7DkB,aAAcJ,EAAmB,eAAgBJ,EAAYV,GAC7DmB,YAAaL,EAAmB,cAAeJ,EAAYV,GAC3DoB,UAAWN,EAAmB,YAAaJ,EAAYV,GACvDqB,cAAeP,EAAmB,gBAAiBJ,EAAYV,GAC/DH,IAAKyB,EAAkB,CAAElB,EAAcP,IAAKA,MACrC,GACF,IAIb,SAASiB,EACPS,EACAb,EACAc,GAEA,OAAOC,EAAe,CAACf,EAAWa,GAAOC,EAAaD,KAAQ,EAChE"}
@@ -1,5 +1,5 @@
1
- declare const useDisableScroll: (scrollableQuerySelector: string | undefined) => {
2
- disableScroll: () => void;
3
- enableScroll: () => void;
4
- };
5
- export default useDisableScroll;
1
+ declare const useDisableScroll: (scrollableQuerySelector: string | undefined) => {
2
+ disableScroll: () => void;
3
+ enableScroll: () => void;
4
+ };
5
+ export default useDisableScroll;
@@ -1 +1 @@
1
- {"version":3,"file":"useDisableScroll.js","sources":["../../../src/Dialog/hooks/useDisableScroll.ts"],"sourcesContent":["import { useCallback, useEffect } from \"react\";\n\nconst useDisableScroll = (scrollableQuerySelector: string | undefined) => {\n const _disableScroll = useCallback((e: Event) => {\n e.preventDefault();\n e.stopPropagation();\n\n return false;\n }, []);\n\n const disableScroll = useCallback(() => {\n if (scrollableQuerySelector?.length && scrollableQuerySelector.length > 0) {\n document.querySelectorAll(scrollableQuerySelector).forEach((item: Element) => {\n item.addEventListener(\"wheel\", _disableScroll, { passive: false });\n });\n }\n }, [_disableScroll, scrollableQuerySelector]);\n\n const enableScroll = useCallback(() => {\n if (scrollableQuerySelector?.length && scrollableQuerySelector.length > 0) {\n document.querySelectorAll(scrollableQuerySelector).forEach((item: Element) => {\n item.removeEventListener(\"wheel\", _disableScroll);\n });\n }\n }, [_disableScroll, scrollableQuerySelector]);\n\n useEffect(() => {\n return enableScroll;\n }, [enableScroll]);\n\n return {\n disableScroll,\n enableScroll\n };\n};\n\nexport default useDisableScroll;\n"],"names":["useDisableScroll","scrollableQuerySelector","_disableScroll","useCallback","e","preventDefault","stopPropagation","disableScroll","length","document","querySelectorAll","forEach","item","addEventListener","passive","enableScroll","removeEventListener","useEffect"],"mappings":"mDAEMA,MAAAA,EAAoBC,IACxB,MAAMC,EAAiBC,GAAaC,IAClCA,EAAEC,iBACFD,EAAEE,mBAEK,IACN,IAEGC,EAAgBJ,GAAY,MAC5BF,eAAAA,EAAyBO,SAAUP,EAAwBO,OAAS,GACtEC,SAASC,iBAAiBT,GAAyBU,SAASC,IAC1DA,EAAKC,iBAAiB,QAASX,EAAgB,CAAEY,SAAS,GAAQ,GAErE,GACA,CAACZ,EAAgBD,IAEdc,EAAeZ,GAAY,MAC3BF,eAAAA,EAAyBO,SAAUP,EAAwBO,OAAS,GACtEC,SAASC,iBAAiBT,GAAyBU,SAASC,IAC1DA,EAAKI,oBAAoB,QAASd,EAAe,GAEpD,GACA,CAACA,EAAgBD,IAMpB,OAJAgB,GAAU,IACDF,GACN,CAACA,IAEG,CACLR,gBACAQ,eACD"}
1
+ {"version":3,"file":"useDisableScroll.js","sources":["../../../src/Dialog/hooks/useDisableScroll.ts"],"sourcesContent":["import { useCallback, useEffect } from \"react\";\n\nconst useDisableScroll = (scrollableQuerySelector: string | undefined) => {\n const _disableScroll = useCallback((e: Event) => {\n e.preventDefault();\n e.stopPropagation();\n\n return false;\n }, []);\n\n const disableScroll = useCallback(() => {\n if (scrollableQuerySelector?.length && scrollableQuerySelector.length > 0) {\n document.querySelectorAll(scrollableQuerySelector).forEach((item: Element) => {\n item.addEventListener(\"wheel\", _disableScroll, { passive: false });\n });\n }\n }, [_disableScroll, scrollableQuerySelector]);\n\n const enableScroll = useCallback(() => {\n if (scrollableQuerySelector?.length && scrollableQuerySelector.length > 0) {\n document.querySelectorAll(scrollableQuerySelector).forEach((item: Element) => {\n item.removeEventListener(\"wheel\", _disableScroll);\n });\n }\n }, [_disableScroll, scrollableQuerySelector]);\n\n useEffect(() => {\n return enableScroll;\n }, [enableScroll]);\n\n return {\n disableScroll,\n enableScroll\n };\n};\n\nexport default useDisableScroll;\n"],"names":["useDisableScroll","scrollableQuerySelector","_disableScroll","useCallback","e","preventDefault","stopPropagation","disableScroll","length","document","querySelectorAll","forEach","item","addEventListener","passive","enableScroll","removeEventListener","useEffect"],"mappings":"mDAEMA,MAAAA,EAAoBC,IACxB,MAAMC,EAAiBC,GAAaC,IAClCA,EAAEC,iBACFD,EAAEE,mBAEK,IACN,IAEGC,EAAgBJ,GAAY,MAC5BF,eAAAA,EAAyBO,SAAUP,EAAwBO,OAAS,GACtEC,SAASC,iBAAiBT,GAAyBU,SAASC,IAC1DA,EAAKC,iBAAiB,QAASX,EAAgB,CAAEY,SAAS,GAAQ,GAEtE,GACC,CAACZ,EAAgBD,IAEdc,EAAeZ,GAAY,MAC3BF,eAAAA,EAAyBO,SAAUP,EAAwBO,OAAS,GACtEC,SAASC,iBAAiBT,GAAyBU,SAASC,IAC1DA,EAAKI,oBAAoB,QAASd,EAAe,GAErD,GACC,CAACA,EAAgBD,IAMpB,OAJAgB,GAAU,IACDF,GACN,CAACA,IAEG,CACLR,gBACAQ,eACD"}
@@ -1,3 +1,3 @@
1
- export { default as Dialog } from "./Dialog";
2
- export { DialogPlacement as DialogPlacementEnum } from "./DialogConstants";
3
- export * from "./Dialog.types";
1
+ export { default as Dialog } from "./Dialog";
2
+ export { DialogPlacement as DialogPlacementEnum } from "./DialogConstants";
3
+ export * from "./Dialog.types";
@@ -1,36 +1,36 @@
1
- import React from "react";
2
- import { type VibeComponentProps } from "@vibe/shared";
3
- import { type DialogSize, type DialogType } from "../Dialog";
4
- export interface DialogContentContainerProps extends VibeComponentProps {
5
- /**
6
- * The content inside the dialog container.
7
- */
8
- children?: React.ReactNode;
9
- /**
10
- * The ID of the element that labels this dialog.
11
- */
12
- "aria-labelledby"?: string;
13
- /**
14
- * The ID of the element that describes this dialog.
15
- */
16
- "aria-describedby"?: string;
17
- /**
18
- * The type of dialog.
19
- */
20
- type?: DialogType;
21
- /**
22
- * The size of the dialog.
23
- */
24
- size?: DialogSize;
25
- /**
26
- * Custom styles applied to the dialog container.
27
- */
28
- style?: React.CSSProperties;
29
- /**
30
- * The ARIA role applied to the dialog container.
31
- * Defaults to "dialog" when not provided. Pass `null` to remove the role attribute entirely.
32
- */
33
- role?: string | null;
34
- }
35
- declare const DialogContentContainer: React.ForwardRefExoticComponent<DialogContentContainerProps & React.RefAttributes<HTMLElement>>;
36
- export default DialogContentContainer;
1
+ import React from "react";
2
+ import { type VibeComponentProps } from "@vibe/shared";
3
+ import { type DialogSize, type DialogType } from "../Dialog";
4
+ export interface DialogContentContainerProps extends VibeComponentProps {
5
+ /**
6
+ * The content inside the dialog container.
7
+ */
8
+ children?: React.ReactNode;
9
+ /**
10
+ * The ID of the element that labels this dialog.
11
+ */
12
+ "aria-labelledby"?: string;
13
+ /**
14
+ * The ID of the element that describes this dialog.
15
+ */
16
+ "aria-describedby"?: string;
17
+ /**
18
+ * The type of dialog.
19
+ */
20
+ type?: DialogType;
21
+ /**
22
+ * The size of the dialog.
23
+ */
24
+ size?: DialogSize;
25
+ /**
26
+ * Custom styles applied to the dialog container.
27
+ */
28
+ style?: React.CSSProperties;
29
+ /**
30
+ * The ARIA role applied to the dialog container.
31
+ * Defaults to "dialog" when not provided. Pass `null` to remove the role attribute entirely.
32
+ */
33
+ role?: string | null;
34
+ }
35
+ declare const DialogContentContainer: React.ForwardRefExoticComponent<DialogContentContainerProps & React.RefAttributes<HTMLElement>>;
36
+ export default DialogContentContainer;
@@ -1,2 +1,2 @@
1
- var e={dialogContentContainer:"dialogContentContainer_f2f62c2e2d",sizeSmall:"sizeSmall_4508cfa6f6",sizeMedium:"sizeMedium_0f125514c7",sizeLarge:"sizeLarge_a4af870e12",typePopover:"typePopover_b9d20be306",typeModal:"typeModal_31ea6f7140"};!function(e){const a="s_id-e25392b9c982_4_0_0-alpha_0";if("undefined"!=typeof document){const o=document.head||document.getElementsByTagName("head")[0];if(o.querySelector("#"+a))return;const n=document.createElement("style");n.id=a,o.firstChild?o.insertBefore(n,o.firstChild):o.appendChild(n),n.appendChild(document.createTextNode(e))}else globalThis.injectedStyles&&(globalThis.injectedStyles[a]=e)}(".dialogContentContainer_f2f62c2e2d:focus {\n outline: none;\n}\n\n.sizeSmall_4508cfa6f6 {\n padding: var(--space-8);\n}\n\n.sizeMedium_0f125514c7 {\n padding: var(--space-16);\n}\n\n.sizeLarge_a4af870e12 {\n padding: var(--space-24);\n}\n\n.typePopover_b9d20be306 {\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_b9d20be306, .black-app-theme .typePopover_b9d20be306, .hacker-app-theme .typePopover_b9d20be306 {\n box-shadow: 0 0 0 1px var(--layout-border-color), var(--box-shadow-medium);\n}\n\n.typeModal_31ea6f7140 {\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 +1 @@
1
- export { default as DialogContentContainer, type DialogContentContainerProps } from "./DialogContentContainer";
1
+ export { default as DialogContentContainer, type DialogContentContainerProps } from "./DialogContentContainer";
package/dist/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export * from "./Dialog";
2
- export * from "./DialogContentContainer";
1
+ export * from "./Dialog";
2
+ export * from "./DialogContentContainer";
@@ -1,4 +1,4 @@
1
- import React from "react";
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;
4
- export default Dialog;
1
+ import React from "react";
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, enableNestedDialogLayer }: DialogProps): React.JSX.Element;
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"};!function(a){const e="s_id-3fb64cda561a_4_0_0-alpha_0";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