@vibe/dialog 3.0.11 → 3.1.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.
- package/dist/Dialog/Dialog.d.ts +3 -7
- package/dist/Dialog/Dialog.js +1 -1
- package/dist/Dialog/Dialog.js.map +1 -1
- package/dist/Dialog/Dialog.module.scss.js +1 -1
- package/dist/Dialog/DialogConstants.d.ts +0 -57
- package/dist/Dialog/DialogConstants.js +1 -1
- package/dist/Dialog/DialogConstants.js.map +1 -1
- package/dist/Dialog/DialogContent/DialogContent.module.scss.js +1 -1
- package/dist/Dialog/index.d.ts +0 -1
- package/dist/DialogContentContainer/DialogContentContainer.d.ts +2 -6
- package/dist/DialogContentContainer/DialogContentContainer.js +1 -1
- package/dist/DialogContentContainer/DialogContentContainer.js.map +1 -1
- package/dist/DialogContentContainer/DialogContentContainer.module.scss.js +1 -1
- package/dist/index.js +1 -1
- package/dist/mocked_classnames/Dialog/Dialog.d.ts +3 -7
- package/dist/mocked_classnames/Dialog/Dialog.js +1 -1
- package/dist/mocked_classnames/Dialog/Dialog.js.map +1 -1
- package/dist/mocked_classnames/Dialog/Dialog.module.scss.js +1 -1
- package/dist/mocked_classnames/Dialog/DialogConstants.d.ts +0 -57
- package/dist/mocked_classnames/Dialog/DialogConstants.js +1 -1
- package/dist/mocked_classnames/Dialog/DialogConstants.js.map +1 -1
- package/dist/mocked_classnames/Dialog/DialogContent/DialogContent.module.scss.js +1 -1
- package/dist/mocked_classnames/Dialog/index.d.ts +0 -1
- package/dist/mocked_classnames/DialogContentContainer/DialogContentContainer.d.ts +2 -6
- package/dist/mocked_classnames/DialogContentContainer/DialogContentContainer.js +1 -1
- package/dist/mocked_classnames/DialogContentContainer/DialogContentContainer.js.map +1 -1
- package/dist/mocked_classnames/DialogContentContainer/DialogContentContainer.module.scss.js +1 -1
- package/dist/mocked_classnames/index.js +1 -1
- package/package.json +5 -5
- package/dist/Dialog/DialogContent/useDisableScroll.test.d.ts +0 -1
- package/dist/mocked_classnames/Dialog/DialogContent/useDisableScroll.test.d.ts +0 -1
package/dist/Dialog/Dialog.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import React, { PureComponent, type ReactElement } from "react";
|
|
2
2
|
import { type Modifier } from "react-popper";
|
|
3
3
|
import { NOOP, type VibeComponentProps } from "@vibe/shared";
|
|
4
|
-
import { AnimationType as AnimationTypeEnum, HideShowEvent as DialogTriggerEventEnum, DialogPosition as DialogPositionEnum } from "./DialogConstants";
|
|
5
4
|
import type * as PopperJS from "@popperjs/core";
|
|
6
5
|
import { type DialogAnimationType, type DialogPosition, type DialogTriggerEvent, type DialogEvent } from "./Dialog.types";
|
|
7
6
|
import { LayerContext } from "@vibe/layer";
|
|
@@ -194,9 +193,6 @@ export interface DialogState {
|
|
|
194
193
|
preventAnimation?: boolean;
|
|
195
194
|
}
|
|
196
195
|
export default class Dialog extends PureComponent<DialogProps, DialogState> {
|
|
197
|
-
static hideShowTriggers: typeof DialogTriggerEventEnum;
|
|
198
|
-
static positions: typeof DialogPositionEnum;
|
|
199
|
-
static animationTypes: typeof AnimationTypeEnum;
|
|
200
196
|
static defaultProps: {
|
|
201
197
|
position: string;
|
|
202
198
|
modifiers: (import("react-popper").StrictModifier<any> | Partial<PopperJS.Modifier<any, object>>)[];
|
|
@@ -206,13 +202,13 @@ export default class Dialog extends PureComponent<DialogProps, DialogState> {
|
|
|
206
202
|
};
|
|
207
203
|
showDelay: number;
|
|
208
204
|
hideDelay: number;
|
|
209
|
-
showTrigger:
|
|
210
|
-
hideTrigger:
|
|
205
|
+
showTrigger: string;
|
|
206
|
+
hideTrigger: string;
|
|
211
207
|
showOnDialogEnter: boolean;
|
|
212
208
|
shouldShowOnMount: boolean;
|
|
213
209
|
disable: boolean;
|
|
214
210
|
open: boolean;
|
|
215
|
-
animationType:
|
|
211
|
+
animationType: string;
|
|
216
212
|
preventAnimationOnMount: boolean;
|
|
217
213
|
tooltip: boolean;
|
|
218
214
|
onDialogDidShow: typeof NOOP;
|
package/dist/Dialog/Dialog.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e from"classnames";import t,{PureComponent as i}from"react";import{createPortal as o}from"react-dom";import{Manager as n,Reference as s,Popper as r}from"react-popper";import{isFunction as
|
|
1
|
+
import e from"classnames";import t,{PureComponent as i}from"react";import{createPortal as o}from"react-dom";import{Manager as n,Reference as s,Popper as r}from"react-popper";import{isFunction as a}from"es-toolkit";import{NOOP as h,isClient as l,isInsideClass as d,convertToArray as u,getTestId as c,ComponentDefaultTestId as p,chainRefFunctions as m,chainFunctions as g}from"@vibe/shared";import D from"./DialogContent/DialogContent.js";import{Refable as f}from"../Refable/Refable.js";import w from"./Dialog.module.scss.js";import{LayerContext as C,LayerProvider as v}from"@vibe/layer";import{createObserveContentResizeModifier as E}from"./modifiers/observeContentResizeModifier.js";class T extends i{constructor(e){super(e),this.state={shouldUseDerivedStateFromProps:e.useDerivedStateFromProps,isOpen:e.shouldShowOnMount},this.containerRef=t.createRef(),this.onMouseEnter=this.onMouseEnter.bind(this),this.onMouseLeave=this.onMouseLeave.bind(this),this.onMouseDown=this.onMouseDown.bind(this),this.onClick=this.onClick.bind(this),this.onFocus=this.onFocus.bind(this),this.onBlur=this.onBlur.bind(this),this.isShown=this.isShown.bind(this),this.onEsc=this.onEsc.bind(this),this.onClickOutside=this.onClickOutside.bind(this),this.onDialogEnter=this.onDialogEnter.bind(this),this.onDialogLeave=this.onDialogLeave.bind(this),this.getContainer=this.getContainer.bind(this),this.onContentClick=this.onContentClick.bind(this),this.onKeyDown=this.onKeyDown.bind(this),this.closeDialogOnEscape=this.closeDialogOnEscape.bind(this),this.onContextMenu=this.onContextMenu.bind(this),this.getDefaultContainer=this.getDefaultContainer.bind(this),this.hideTimeout=null,this.showTimeout=null}closeDialogOnEscape(e){const{isOpen:t}=this.state;if(t)switch(e.key){case"Escape":this.hideDialogIfNeeded(e,"esckey");break;case"Tab":this.handleEvent("tab",e.target,e);break;case"Enter":this.handleEvent("enter",e.target,e)}}componentDidMount(){const{shouldCallbackOnMount:e,onDialogDidShow:t}=this.props,{isOpen:i}=this.state;l()&&document.addEventListener("keyup",this.closeDialogOnEscape),e&&i&&t&&t()}componentWillUnmount(){l()&&document.removeEventListener("keyup",this.closeDialogOnEscape),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=null),this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=null)}static getDerivedStateFromProps(e,t){return t.shouldUseDerivedStateFromProps?{isOpen:e.isOpen}:null}getDefaultContainer(){const{layerRef:e}=this.context;return(null==e?void 0:e.current)?e.current:document.body}getContainer(){const{containerSelector:e}=this.props;if(!e)return this.getDefaultContainer();const t=document.querySelector(e);return t&&t instanceof Element?t:this.getDefaultContainer()}showDialog(e,t,i={}){const{showDelay:o,instantShowAndHide:n,getDynamicShowDelay:s}=this.props;let r=o,a=i.preventAnimation;if(s){const e=s();r=e.showDelay||0,a=a||e.preventAnimation}n?(this.onShowDialog(e,t),this.setState({isOpen:!0,preventAnimation:a}),this.showTimeout=null):this.showTimeout=setTimeout((()=>{this.onShowDialog(e,t),this.showTimeout=null,this.setState({isOpen:!0,preventAnimation:a})}),r)}onShowDialog(e,t){if(this.isShown())return;const{onDialogDidShow:i}=this.props;i(e,t)}showDialogIfNeeded(e,t,i={}){const{disable:o}=this.props;o||(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=null),this.showTimeout||this.showDialog(e,t,i))}hideDialog(e,t){const{hideDelay:i,instantShowAndHide:o}=this.props;o?(this.onHideDialog(e,t),this.setState({isOpen:!1}),this.hideTimeout=null):this.hideTimeout=setTimeout((()=>{this.onHideDialog(e,t),this.setState({isOpen:!1}),this.hideTimeout=null}),i)}onHideDialog(e,t){const{onDialogDidHide:i}=this.props;i&&i(e,t)}hideDialogIfNeeded(e,t){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=null),this.hideTimeout||this.hideDialog(e,t)}handleEvent(e,t,i){const{showTriggerIgnoreClass:o,hideTriggerIgnoreClass:n}=this.props;return!this.isShowTrigger(e)||this.isShown()||d(t,o)?this.isHideTrigger(e)&&!d(t,n)?this.hideDialogIfNeeded(i,e):void 0:this.showDialogIfNeeded(i,e)}isShown(){const{isOpen:e}=this.state,{open:t}=this.props;return e||t}isShowTrigger(e){const{showTrigger:t,addKeyboardHideShowTriggersByDefault:i}=this.props,o=u(t);return!(!i||"focus"!==e||-1>=o.indexOf("mouseenter"))||o.indexOf(e)>-1}isHideTrigger(e){const{hideTrigger:t,addKeyboardHideShowTriggersByDefault:i}=this.props,o=u(t);return!(!i||"blur"!==e||-1>=o.indexOf("mouseleave"))||o.indexOf(e)>-1}onMouseEnter(e){this.handleEvent("mouseenter",e.target,e)}onMouseLeave(e){this.handleEvent("mouseleave",e.target,e)}onClick(e){e.button||this.handleEvent("click",e.target,e)}onKeyDown(e){"Enter"===e.key&&this.handleEvent("enter",e.target,e),"Tab"===e.key&&this.handleEvent("tab",e.target,e)}onMouseDown(e){e.button||this.handleEvent("mousedown",e.target,e)}onFocus(e){this.handleEvent("focus",e.target,e)}onBlur(e){this.handleEvent("blur",e.relatedTarget,e)}onEsc(e){this.handleEvent("esckey",e.target,e)}onContextMenu(e){const t=this.isShown();(this.isShowTrigger("contextmenu")&&!t||this.isHideTrigger("contextmenu")&&t)&&e.preventDefault(),this.handleEvent("contextmenu",e.target,e)}onClickOutside(e){const{onClickOutside:t}=this.props;this.handleEvent("clickoutside",e.target,e),t(e)}onDialogEnter(e){const{showOnDialogEnter:t}=this.props;t&&this.showDialogIfNeeded(e,"DialogEnter")}onDialogLeave(e){const{showOnDialogEnter:t}=this.props;t&&this.hideDialogIfNeeded(e,"DialogLeave")}onContentClick(e){const{onContentClick:t}=this.props;this.handleEvent("onContentClick",e.target,e),t(e)}render(){const{wrapperClassName:i,content:h,startingEdge:d,children:u,preventAnimationOnMount:g,animationType:C,position:T,showDelay:b,moveBy:S,modifiers:O,tooltip:k,tooltipClassName:M,referenceWrapperClassName:x,referenceWrapperElement:H,zIndex:R,hideWhenReferenceHidden:L,disableContainerScroll:N,containerSelector:I,observeContentResize:A,enableNestedDialogLayer:B,id:F,"data-testid":K}=this.props,{preventAnimation:P}=this.state,z=K||c(p.DIALOG,F),j=g||P?void 0:C,W=a(h)?h():h;return W?t.createElement(n,null,t.createElement(s,null,(({ref:i})=>t.createElement(f,{className:e(x),wrapperElement:H,ref:i,onBlur:y("onBlur",this,this.props),onKeyDown:y("onKeyDown",this,this.props),onClick:y("onClick",this,this.props),onFocus:y("onFocus",this,this.props),onMouseDown:y("onMouseDown",this,this.props),onMouseEnter:y("onMouseEnter",this,this.props),onMouseLeave:y("onMouseLeave",this,this.props),onContextMenu:y("onContextMenu",this,this.props)},u))),l()&&o(t.createElement(r,{placement:T,modifiers:[{name:"offset",options:{offset:[S.secondary,S.main]}},{name:"zIndex",enabled:!0,phase:"write",fn:({state:e})=>(R&&(e.styles.popper.zIndex=R+""),e)},{name:"rotator",enabled:!0,phase:"write",fn:({state:e})=>e.styles.arrow?(e.styles.arrow.transform=e.styles.arrow.transform+" rotate(45deg)",e):e},E(A),...O]},(({placement:o,style:n,ref:s,arrowProps:r,isReferenceHidden:a})=>{if(!this.isShown()&&o)return null;if(L&&a){const e=new CustomEvent("onReferenceHidden");this.hideDialog(e,"onReferenceHidden")}const h=m([s,this.containerRef]),l=t.createElement(D,{"data-testid":z,isReferenceHidden:L&&a,onMouseEnter:this.onDialogEnter,onMouseLeave:this.onDialogLeave,onClickOutside:this.onClickOutside,onContextMenu:this.onContextMenu,onEsc:this.onEsc,animationType:j,position:o,wrapperClassName:i,startingEdge:d,isOpen:this.isShown(),showDelay:b,styleObject:n,ref:h,onClick:this.onContentClick,hasTooltip:!!k,containerSelector:I,disableContainerScroll:N},W,k&&t.createElement("div",{style:r.style,ref:r.ref,className:e(w.arrow,M),"data-placement":o}));return B?t.createElement(v,{layerRef:this.containerRef},l):l})),this.getContainer())):u}}function y(e,t,i){return g([i[e],t[e]],!0)}T.defaultProps={position:"top",modifiers:[],moveBy:{main:0,secondary:0},showDelay:100,hideDelay:100,showTrigger:"mouseenter",hideTrigger:"mouseleave",showOnDialogEnter:!1,shouldShowOnMount:!1,disable:!1,open:!1,animationType:"expand",preventAnimationOnMount:!1,tooltip:!1,onDialogDidShow:h,onDialogDidHide:h,onClickOutside:h,onContentClick:h,useDerivedStateFromProps:!1,hideWhenReferenceHidden:!1,shouldCallbackOnMount:!1,instantShowAndHide:!1,addKeyboardHideShowTriggersByDefault:!1,observeContentResize:!1,enableNestedDialogLayer:!1},T.contextType=C;export{T 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, { PureComponent, type ReactElement } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { Manager, type Modifier, Popper, Reference } from \"react-popper\";\nimport { isFunction } from \"es-toolkit\";\nimport {\n chainFunctions,\n chainRefFunctions,\n convertToArray,\n NOOP,\n isInsideClass,\n type VibeComponentProps,\n ComponentDefaultTestId,\n getTestId,\n isClient\n} from \"@vibe/shared\";\nimport DialogContent from \"./DialogContent/DialogContent\";\nimport { Refable } from \"../Refable/Refable\";\nimport {\n AnimationType as AnimationTypeEnum,\n HideShowEvent as DialogTriggerEventEnum,\n DialogPosition as DialogPositionEnum\n} from \"./DialogConstants\";\nimport type * as PopperJS from \"@popperjs/core\";\nimport styles from \"./Dialog.module.scss\";\nimport {\n type DialogAnimationType,\n type DialogPosition,\n type DialogTriggerEvent,\n type DialogEvent\n} from \"./Dialog.types\";\nimport { LayerContext, LayerProvider } from \"@vibe/layer\";\nimport { createObserveContentResizeModifier } from \"./modifiers/observeContentResizeModifier\";\n\nexport interface DialogProps extends VibeComponentProps {\n /**\n * Class name applied to the reference wrapper element.\n */\n referenceWrapperClassName?: string;\n /**\n * The wrapper element type to use for React components. Defaults to \"span\".\n */\n referenceWrapperElement?: \"span\" | \"div\";\n /**\n * The placement of the dialog relative to the reference element.\n */\n position?: DialogPosition;\n /**\n * Custom Popper.js modifiers.\n * https://popper.js.org/docs/v2/modifiers/\n */\n modifiers?: Modifier<any>[];\n /**\n * The starting edge of the dialog.\n */\n startingEdge?: string;\n /**\n * Offset values for positioning adjustments.\n * `main` - horizontal offset\n * `secondary` - vertical offset\n */\n moveBy?: { main?: number; secondary?: number };\n /**\n * Delay in milliseconds before showing the dialog.\n */\n showDelay?: number;\n /**\n * Delay in milliseconds before hiding the dialog.\n */\n hideDelay?: number;\n /**\n * Events that trigger showing the dialog.\n */\n showTrigger?: DialogTriggerEvent | DialogTriggerEvent[];\n /**\n * Events that trigger hiding the dialog.\n */\n hideTrigger?: DialogTriggerEvent | DialogTriggerEvent[];\n /**\n * If true, prevents closing the dialog when the mouse enters it.\n */\n showOnDialogEnter?: boolean;\n /**\n * If true, shows the dialog when the component mounts.\n */\n shouldShowOnMount?: boolean;\n /**\n * If true, disables opening the dialog.\n */\n disable?: boolean;\n /**\n * Controls the open state of the dialog.\n */\n open?: boolean;\n /**\n * Derived state control for managing dialog visibility.\n */\n isOpen?: boolean;\n /**\n * Classes that prevent showing the dialog when present.\n */\n showTriggerIgnoreClass?: string | Array<string>;\n /**\n * Classes that prevent hiding the dialog when present.\n */\n hideTriggerIgnoreClass?: string | Array<string>;\n /**\n * The animation type used for the dialog.\n */\n animationType?: DialogAnimationType;\n /**\n * Class name applied to the dialog content container.\n */\n wrapperClassName?: string;\n /**\n * If true, prevents animation when mounting.\n */\n preventAnimationOnMount?: boolean;\n /**\n * The CSS selector of the container where the dialog is rendered.\n */\n containerSelector?: string;\n /**\n * If true, positions the tooltip element.\n */\n tooltip?: boolean;\n /**\n * Class name applied to the tooltip element.\n */\n tooltipClassName?: string;\n /**\n * Callback fired when the dialog is shown.\n */\n onDialogDidShow?: (event?: DialogEvent, eventName?: DialogTriggerEvent | string) => void;\n /**\n * Callback fired when the dialog is hidden.\n */\n onDialogDidHide?: (event: DialogEvent, eventName: DialogTriggerEvent | string) => void;\n /**\n * Callback fired when clicking outside the dialog.\n */\n onClickOutside?: (event: React.MouseEvent) => void;\n /**\n * Callback fired when clicking inside the dialog content.\n */\n onContentClick?: (event: React.MouseEvent) => void;\n /**\n * The z-index applied to the dialog.\n */\n zIndex?: number;\n /**\n * If true, uses derived state from props.\n */\n useDerivedStateFromProps?: boolean;\n /**\n * If true, makes the dialog disappear when the reference element is hidden.\n */\n hideWhenReferenceHidden?: boolean;\n /**\n * If true, triggers the callback when the dialog mounts.\n */\n shouldCallbackOnMount?: boolean;\n /**\n * If true, instantly shows and hides the dialog without delay.\n */\n instantShowAndHide?: boolean;\n /**\n * Callback to dynamically adjust show delay and animation behavior.\n */\n getDynamicShowDelay?: () => { showDelay: number; preventAnimation: boolean };\n /**\n * The content displayed inside the dialog.\n */\n content?: (() => JSX.Element) | JSX.Element;\n /**\n * The element to position the dialog beside.\n */\n children?: ReactElement | ReactElement[] | string;\n /**\n * If true, keyboard focus/blur events behave like mouse enter/leave.\n */\n addKeyboardHideShowTriggersByDefault?: boolean;\n /**\n * If true, disables scrolling for the container element.\n */\n disableContainerScroll?: boolean | string;\n /**\n * Enables the observation of content resize for the popper element.\n * When set to `true`, a ResizeObserver is attached to the popper content,\n * automatically triggering repositioning when the size of the content changes.\n *\n * This is useful for dialogs, tooltips, or popovers with dynamic content\n * that may grow or shrink without a re-render being triggered.\n */\n observeContentResize?: boolean;\n /**\n * If true, provides a LayerProvider context for nested dialogs to render correctly.\n * This is useful when you have components that use Dialog internally (like Dropdown)\n * inside another Dialog, ensuring proper z-index stacking and click-outside behavior.\n */\n enableNestedDialogLayer?: boolean;\n}\n\nexport interface DialogState {\n /**\n * If true, the dialog is open.\n */\n isOpen?: boolean;\n /**\n * If true, the dialog state is derived from props.\n */\n shouldUseDerivedStateFromProps?: boolean;\n /**\n * If true, prevents animation when opening or closing the dialog.\n */\n preventAnimation?: boolean;\n}\n\nexport default class Dialog extends PureComponent<DialogProps, DialogState> {\n static hideShowTriggers = DialogTriggerEventEnum;\n static positions = DialogPositionEnum;\n static animationTypes = AnimationTypeEnum;\n static defaultProps = {\n position: \"top\",\n modifiers: [] as Modifier<any>[],\n moveBy: { main: 0, secondary: 0 },\n showDelay: 100,\n hideDelay: 100,\n showTrigger: Dialog.hideShowTriggers.MOUSE_ENTER,\n hideTrigger: Dialog.hideShowTriggers.MOUSE_LEAVE,\n showOnDialogEnter: false,\n shouldShowOnMount: false,\n disable: false,\n open: false,\n animationType: Dialog.animationTypes.EXPAND,\n preventAnimationOnMount: false,\n tooltip: false,\n onDialogDidShow: NOOP,\n onDialogDidHide: NOOP,\n onClickOutside: NOOP,\n onContentClick: NOOP,\n useDerivedStateFromProps: false,\n hideWhenReferenceHidden: false,\n shouldCallbackOnMount: false,\n instantShowAndHide: false,\n addKeyboardHideShowTriggersByDefault: false,\n observeContentResize: false,\n enableNestedDialogLayer: false\n };\n private showTimeout: NodeJS.Timeout;\n private hideTimeout: NodeJS.Timeout;\n private containerRef: React.RefObject<HTMLDivElement>;\n context!: React.ContextType<typeof LayerContext>;\n\n constructor(props: DialogProps) {\n super(props);\n this.state = {\n shouldUseDerivedStateFromProps: props.useDerivedStateFromProps,\n isOpen: props.shouldShowOnMount\n };\n\n this.containerRef = React.createRef<HTMLDivElement>();\n\n // Binding section.\n this.onMouseEnter = this.onMouseEnter.bind(this);\n this.onMouseLeave = this.onMouseLeave.bind(this);\n this.onMouseDown = this.onMouseDown.bind(this);\n this.onClick = this.onClick.bind(this);\n this.onFocus = this.onFocus.bind(this);\n this.onBlur = this.onBlur.bind(this);\n this.isShown = this.isShown.bind(this);\n this.onEsc = this.onEsc.bind(this);\n this.onClickOutside = this.onClickOutside.bind(this);\n this.onDialogEnter = this.onDialogEnter.bind(this);\n this.onDialogLeave = this.onDialogLeave.bind(this);\n this.getContainer = this.getContainer.bind(this);\n this.onContentClick = this.onContentClick.bind(this);\n this.onKeyDown = this.onKeyDown.bind(this);\n this.closeDialogOnEscape = this.closeDialogOnEscape.bind(this);\n this.onContextMenu = this.onContextMenu.bind(this);\n this.getDefaultContainer = this.getDefaultContainer.bind(this);\n\n // Timeouts\n this.hideTimeout = null;\n this.showTimeout = null;\n }\n\n closeDialogOnEscape(event: KeyboardEvent) {\n const { isOpen } = this.state;\n if (!isOpen) {\n return;\n }\n switch (event.key) {\n case \"Escape\":\n this.hideDialogIfNeeded(event, DialogTriggerEventEnum.ESCAPE_KEY);\n break;\n case \"Tab\":\n this.handleEvent(DialogTriggerEventEnum.TAB_KEY, event.target, event);\n break;\n case \"Enter\":\n this.handleEvent(DialogTriggerEventEnum.ENTER, event.target, event);\n break;\n default:\n break;\n }\n }\n\n componentDidMount() {\n const { shouldCallbackOnMount, onDialogDidShow } = this.props;\n const { isOpen } = this.state;\n if (isClient()) {\n document.addEventListener(\"keyup\", this.closeDialogOnEscape);\n }\n if (shouldCallbackOnMount && isOpen) {\n onDialogDidShow && onDialogDidShow();\n }\n }\n\n componentWillUnmount() {\n if (isClient()) {\n document.removeEventListener(\"keyup\", this.closeDialogOnEscape);\n }\n if (this.showTimeout) {\n clearTimeout(this.showTimeout);\n this.showTimeout = null;\n }\n if (this.hideTimeout) {\n clearTimeout(this.hideTimeout);\n this.hideTimeout = null;\n }\n }\n\n static getDerivedStateFromProps(nextProps: DialogProps, state: DialogState): DialogState {\n if (state.shouldUseDerivedStateFromProps) {\n return { isOpen: nextProps.isOpen };\n }\n return null;\n }\n\n getDefaultContainer() {\n const { layerRef } = this.context;\n if (layerRef?.current) {\n return layerRef.current;\n }\n return document.body;\n }\n\n getContainer() {\n const { containerSelector } = this.props;\n if (!containerSelector) {\n return this.getDefaultContainer();\n }\n\n const containerElement = document.querySelector(containerSelector);\n if (!containerElement || !(containerElement instanceof Element)) {\n return this.getDefaultContainer();\n }\n return containerElement;\n }\n\n showDialog(event: DialogEvent, eventName: DialogTriggerEvent | string, options: { preventAnimation?: boolean } = {}) {\n const { showDelay, instantShowAndHide, getDynamicShowDelay } = this.props;\n let finalShowDelay = showDelay;\n let preventAnimation = options.preventAnimation;\n if (getDynamicShowDelay) {\n const dynamicDelayObj = getDynamicShowDelay();\n finalShowDelay = dynamicDelayObj.showDelay || 0;\n preventAnimation = preventAnimation || dynamicDelayObj.preventAnimation;\n }\n\n if (instantShowAndHide) {\n this.onShowDialog(event, eventName);\n this.setState({ isOpen: true, preventAnimation });\n this.showTimeout = null;\n } else {\n this.showTimeout = setTimeout(() => {\n this.onShowDialog(event, eventName);\n this.showTimeout = null;\n this.setState({ isOpen: true, preventAnimation });\n }, finalShowDelay);\n }\n }\n\n onShowDialog(event: DialogEvent, eventName: DialogTriggerEvent | string) {\n if (this.isShown()) return;\n const { onDialogDidShow } = this.props;\n onDialogDidShow(event, eventName);\n }\n\n showDialogIfNeeded(event: DialogEvent, eventName: DialogTriggerEvent | string, options = {}) {\n const { disable } = this.props;\n if (disable) {\n return;\n }\n\n if (this.hideTimeout) {\n clearTimeout(this.hideTimeout);\n this.hideTimeout = null;\n }\n\n if (!this.showTimeout) {\n this.showDialog(event, eventName, options);\n }\n }\n\n hideDialog(event: DialogEvent, eventName: DialogTriggerEvent | string) {\n const { hideDelay, instantShowAndHide } = this.props;\n if (instantShowAndHide) {\n this.onHideDialog(event, eventName);\n this.setState({ isOpen: false });\n this.hideTimeout = null;\n } else {\n this.hideTimeout = setTimeout(() => {\n this.onHideDialog(event, eventName);\n this.setState({ isOpen: false });\n this.hideTimeout = null;\n }, hideDelay);\n }\n }\n\n onHideDialog(event: DialogEvent, eventName: DialogTriggerEvent | string) {\n const { onDialogDidHide } = this.props;\n if (onDialogDidHide) onDialogDidHide(event, eventName);\n }\n\n hideDialogIfNeeded(event: DialogEvent, eventName: DialogTriggerEvent | string) {\n if (this.showTimeout) {\n clearTimeout(this.showTimeout);\n this.showTimeout = null;\n }\n\n if (this.hideTimeout) {\n return;\n }\n this.hideDialog(event, eventName);\n }\n\n handleEvent(eventName: DialogTriggerEvent, target: EventTarget, event: DialogEvent) {\n const { showTriggerIgnoreClass, hideTriggerIgnoreClass } = this.props;\n if (\n this.isShowTrigger(eventName) &&\n !this.isShown() &&\n !isInsideClass(target as HTMLElement, showTriggerIgnoreClass)\n ) {\n return this.showDialogIfNeeded(event, eventName);\n }\n\n if (this.isHideTrigger(eventName) && !isInsideClass(target as HTMLElement, hideTriggerIgnoreClass)) {\n return this.hideDialogIfNeeded(event, eventName);\n }\n }\n\n isShown() {\n const { isOpen } = this.state;\n const { open } = this.props;\n\n return isOpen || open;\n }\n\n isShowTrigger(eventName: DialogTriggerEvent) {\n const { showTrigger, addKeyboardHideShowTriggersByDefault } = this.props;\n const showTriggersArray = convertToArray(showTrigger);\n\n if (addKeyboardHideShowTriggersByDefault) {\n if (eventName === \"focus\" && showTriggersArray.indexOf(\"mouseenter\") > -1) {\n return true;\n }\n }\n\n return showTriggersArray.indexOf(eventName) > -1;\n }\n\n isHideTrigger(eventName: DialogTriggerEvent) {\n const { hideTrigger, addKeyboardHideShowTriggersByDefault } = this.props;\n const hideTriggersArray = convertToArray(hideTrigger);\n\n if (addKeyboardHideShowTriggersByDefault) {\n if (eventName === \"blur\" && hideTriggersArray.indexOf(\"mouseleave\") > -1) {\n return true;\n }\n }\n\n return hideTriggersArray.indexOf(eventName) > -1;\n }\n\n onMouseEnter(e: React.MouseEvent) {\n this.handleEvent(\"mouseenter\", e.target, e);\n }\n\n onMouseLeave(e: React.MouseEvent) {\n this.handleEvent(\"mouseleave\", e.target, e);\n }\n\n onClick(e: React.MouseEvent) {\n if (e.button) return;\n this.handleEvent(\"click\", e.target, e);\n }\n\n onKeyDown(event: React.KeyboardEvent) {\n if (event.key === \"Enter\") {\n this.handleEvent(\"enter\", event.target, event);\n }\n\n if (event.key === \"Tab\") {\n this.handleEvent(\"tab\", event.target, event);\n }\n }\n\n onMouseDown(e: React.MouseEvent) {\n if (e.button) return;\n this.handleEvent(\"mousedown\", e.target, e);\n }\n\n onFocus(e: React.FocusEvent) {\n this.handleEvent(\"focus\", e.target, e);\n }\n\n onBlur(e: React.FocusEvent) {\n this.handleEvent(\"blur\", e.relatedTarget, e);\n }\n\n onEsc(e: React.KeyboardEvent) {\n this.handleEvent(\"esckey\", e.target, e);\n }\n\n onContextMenu(e: React.MouseEvent) {\n const isShown = this.isShown();\n if ((this.isShowTrigger(\"contextmenu\") && !isShown) || (this.isHideTrigger(\"contextmenu\") && isShown)) {\n e.preventDefault();\n }\n this.handleEvent(\"contextmenu\", e.target, e);\n }\n\n onClickOutside(event: React.MouseEvent) {\n const { onClickOutside } = this.props;\n this.handleEvent(\"clickoutside\", event.target, event);\n onClickOutside(event);\n }\n\n onDialogEnter(event: React.MouseEvent) {\n const { showOnDialogEnter } = this.props;\n if (showOnDialogEnter) this.showDialogIfNeeded(event, \"DialogEnter\");\n }\n\n onDialogLeave(event: React.MouseEvent) {\n const { showOnDialogEnter } = this.props;\n if (showOnDialogEnter) this.hideDialogIfNeeded(event, \"DialogLeave\");\n }\n\n onContentClick(e: React.MouseEvent) {\n const { onContentClick } = this.props;\n this.handleEvent(\"onContentClick\", e.target, e);\n onContentClick(e);\n }\n\n render() {\n const {\n wrapperClassName,\n content,\n startingEdge,\n children,\n preventAnimationOnMount,\n animationType,\n position,\n showDelay,\n moveBy,\n modifiers,\n tooltip,\n tooltipClassName,\n referenceWrapperClassName,\n referenceWrapperElement,\n zIndex,\n hideWhenReferenceHidden,\n disableContainerScroll,\n containerSelector,\n observeContentResize,\n enableNestedDialogLayer,\n id,\n \"data-testid\": dataTestId\n } = this.props;\n const { preventAnimation } = this.state;\n const overrideDataTestId = dataTestId || getTestId(ComponentDefaultTestId.DIALOG, id);\n\n const animationTypeCalculated = preventAnimationOnMount || preventAnimation ? undefined : animationType;\n const contentRendered = isFunction(content) ? content() : content;\n\n if (!contentRendered) {\n return children;\n }\n return (\n <Manager>\n <Reference>\n {({ ref }) => {\n return (\n <Refable\n className={cx(referenceWrapperClassName)}\n wrapperElement={referenceWrapperElement}\n ref={ref}\n onBlur={chainOnPropsAndInstance(\"onBlur\", this, this.props)}\n onKeyDown={chainOnPropsAndInstance(\"onKeyDown\", this, this.props)}\n onClick={chainOnPropsAndInstance(\"onClick\", this, this.props)}\n onFocus={chainOnPropsAndInstance(\"onFocus\", this, this.props)}\n onMouseDown={chainOnPropsAndInstance(\"onMouseDown\", this, this.props)}\n onMouseEnter={chainOnPropsAndInstance(\"onMouseEnter\", this, this.props)}\n onMouseLeave={chainOnPropsAndInstance(\"onMouseLeave\", this, this.props)}\n onContextMenu={chainOnPropsAndInstance(\"onContextMenu\", this, this.props)}\n >\n {children}\n </Refable>\n );\n }}\n </Reference>\n {isClient() &&\n createPortal(\n <Popper\n placement={position as unknown as PopperJS.Placement}\n modifiers={[\n {\n name: \"offset\",\n options: {\n offset: [moveBy.secondary, moveBy.main]\n }\n },\n {\n name: \"zIndex\",\n enabled: true,\n phase: \"write\",\n fn({ state }) {\n if (zIndex) {\n state.styles.popper.zIndex = String(zIndex);\n }\n return state;\n }\n },\n {\n name: \"rotator\",\n enabled: true,\n phase: \"write\",\n fn({ state }) {\n if (!state.styles.arrow) {\n return state;\n }\n // const reg = new RegExp(\n // /translate\\(([0-9].*)px, ([0-9].*)px\\)/\n // );\n // const transform = state.styles.arrow.transform;\n // const res = reg.exec(transform);\n // state.styles.popper.transformOrigin = `${100 -\n // res[1]}% ${100 - res[2]}%`;\n state.styles.arrow.transform = `${state.styles.arrow.transform} rotate(45deg)`;\n return state;\n }\n },\n createObserveContentResizeModifier(observeContentResize),\n ...modifiers\n ]}\n >\n {({ placement, style, ref, arrowProps, isReferenceHidden }) => {\n if (!this.isShown() && placement) {\n return null;\n }\n\n if (hideWhenReferenceHidden && isReferenceHidden) {\n const event = new CustomEvent(\"onReferenceHidden\");\n this.hideDialog(event, \"onReferenceHidden\");\n }\n\n const mergedRef = chainRefFunctions([ref, this.containerRef]);\n\n const dialogContent = (\n <DialogContent\n data-testid={overrideDataTestId}\n isReferenceHidden={hideWhenReferenceHidden && isReferenceHidden}\n onMouseEnter={this.onDialogEnter}\n onMouseLeave={this.onDialogLeave}\n onClickOutside={this.onClickOutside}\n onContextMenu={this.onContextMenu}\n onEsc={this.onEsc}\n animationType={animationTypeCalculated}\n position={placement}\n wrapperClassName={wrapperClassName}\n startingEdge={startingEdge}\n isOpen={this.isShown()}\n showDelay={showDelay}\n styleObject={style}\n ref={mergedRef}\n onClick={this.onContentClick}\n hasTooltip={!!tooltip}\n containerSelector={containerSelector}\n disableContainerScroll={disableContainerScroll}\n >\n {contentRendered}\n {tooltip && (\n <div\n style={arrowProps.style}\n ref={arrowProps.ref}\n className={cx(styles.arrow, tooltipClassName)}\n data-placement={placement}\n />\n )}\n </DialogContent>\n );\n\n return enableNestedDialogLayer ? (\n <LayerProvider layerRef={this.containerRef}>{dialogContent}</LayerProvider>\n ) : (\n dialogContent\n );\n }}\n </Popper>,\n this.getContainer()\n )}\n </Manager>\n );\n }\n}\n\nfunction chainOnPropsAndInstance(name: string, instance: Dialog, props: DialogProps) {\n // @ts-ignore\n return chainFunctions([props[name], instance[name]], true);\n}\n\nDialog.contextType = LayerContext;\n"],"names":["Dialog","PureComponent","constructor","props","super","this","state","shouldUseDerivedStateFromProps","useDerivedStateFromProps","isOpen","shouldShowOnMount","containerRef","React","createRef","onMouseEnter","bind","onMouseLeave","onMouseDown","onClick","onFocus","onBlur","isShown","onEsc","onClickOutside","onDialogEnter","onDialogLeave","getContainer","onContentClick","onKeyDown","closeDialogOnEscape","onContextMenu","getDefaultContainer","hideTimeout","showTimeout","event","key","hideDialogIfNeeded","DialogTriggerEventEnum","ESCAPE_KEY","handleEvent","TAB_KEY","target","ENTER","componentDidMount","shouldCallbackOnMount","onDialogDidShow","isClient","document","addEventListener","componentWillUnmount","removeEventListener","clearTimeout","getDerivedStateFromProps","nextProps","layerRef","context","current","body","containerSelector","containerElement","querySelector","Element","showDialog","eventName","options","showDelay","instantShowAndHide","getDynamicShowDelay","finalShowDelay","preventAnimation","dynamicDelayObj","onShowDialog","setState","setTimeout","showDialogIfNeeded","disable","hideDialog","hideDelay","onHideDialog","onDialogDidHide","showTriggerIgnoreClass","hideTriggerIgnoreClass","isShowTrigger","isInsideClass","isHideTrigger","open","showTrigger","addKeyboardHideShowTriggersByDefault","showTriggersArray","convertToArray","indexOf","hideTrigger","hideTriggersArray","e","button","relatedTarget","preventDefault","showOnDialogEnter","render","wrapperClassName","content","startingEdge","children","preventAnimationOnMount","animationType","position","moveBy","modifiers","tooltip","tooltipClassName","referenceWrapperClassName","referenceWrapperElement","zIndex","hideWhenReferenceHidden","disableContainerScroll","observeContentResize","enableNestedDialogLayer","id","dataTestId","overrideDataTestId","getTestId","ComponentDefaultTestId","DIALOG","animationTypeCalculated","undefined","contentRendered","isFunction","Manager","createElement","Reference","ref","Refable","className","cx","wrapperElement","chainOnPropsAndInstance","createPortal","Popper","placement","name","offset","secondary","main","enabled","phase","fn","styles","popper","String","arrow","transform","createObserveContentResizeModifier","style","arrowProps","isReferenceHidden","CustomEvent","mergedRef","chainRefFunctions","dialogContent","DialogContent","styleObject","hasTooltip","LayerProvider","instance","chainFunctions","hideShowTriggers","positions","DialogPositionEnum","animationTypes","AnimationTypeEnum","defaultProps","MOUSE_ENTER","MOUSE_LEAVE","EXPAND","NOOP","contextType","LayerContext"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Dialog.js","sources":["../../src/Dialog/Dialog.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport React, { PureComponent, type ReactElement } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { Manager, type Modifier, Popper, Reference } from \"react-popper\";\nimport { isFunction } from \"es-toolkit\";\nimport {\n chainFunctions,\n chainRefFunctions,\n convertToArray,\n NOOP,\n isInsideClass,\n type VibeComponentProps,\n ComponentDefaultTestId,\n getTestId,\n isClient\n} from \"@vibe/shared\";\nimport DialogContent from \"./DialogContent/DialogContent\";\nimport { Refable } from \"../Refable/Refable\";\nimport type * as PopperJS from \"@popperjs/core\";\nimport styles from \"./Dialog.module.scss\";\nimport {\n type DialogAnimationType,\n type DialogPosition,\n type DialogTriggerEvent,\n type DialogEvent\n} from \"./Dialog.types\";\nimport { LayerContext, LayerProvider } from \"@vibe/layer\";\nimport { createObserveContentResizeModifier } from \"./modifiers/observeContentResizeModifier\";\n\nexport interface DialogProps extends VibeComponentProps {\n /**\n * Class name applied to the reference wrapper element.\n */\n referenceWrapperClassName?: string;\n /**\n * The wrapper element type to use for React components. Defaults to \"span\".\n */\n referenceWrapperElement?: \"span\" | \"div\";\n /**\n * The placement of the dialog relative to the reference element.\n */\n position?: DialogPosition;\n /**\n * Custom Popper.js modifiers.\n * https://popper.js.org/docs/v2/modifiers/\n */\n modifiers?: Modifier<any>[];\n /**\n * The starting edge of the dialog.\n */\n startingEdge?: string;\n /**\n * Offset values for positioning adjustments.\n * `main` - horizontal offset\n * `secondary` - vertical offset\n */\n moveBy?: { main?: number; secondary?: number };\n /**\n * Delay in milliseconds before showing the dialog.\n */\n showDelay?: number;\n /**\n * Delay in milliseconds before hiding the dialog.\n */\n hideDelay?: number;\n /**\n * Events that trigger showing the dialog.\n */\n showTrigger?: DialogTriggerEvent | DialogTriggerEvent[];\n /**\n * Events that trigger hiding the dialog.\n */\n hideTrigger?: DialogTriggerEvent | DialogTriggerEvent[];\n /**\n * If true, prevents closing the dialog when the mouse enters it.\n */\n showOnDialogEnter?: boolean;\n /**\n * If true, shows the dialog when the component mounts.\n */\n shouldShowOnMount?: boolean;\n /**\n * If true, disables opening the dialog.\n */\n disable?: boolean;\n /**\n * Controls the open state of the dialog.\n */\n open?: boolean;\n /**\n * Derived state control for managing dialog visibility.\n */\n isOpen?: boolean;\n /**\n * Classes that prevent showing the dialog when present.\n */\n showTriggerIgnoreClass?: string | Array<string>;\n /**\n * Classes that prevent hiding the dialog when present.\n */\n hideTriggerIgnoreClass?: string | Array<string>;\n /**\n * The animation type used for the dialog.\n */\n animationType?: DialogAnimationType;\n /**\n * Class name applied to the dialog content container.\n */\n wrapperClassName?: string;\n /**\n * If true, prevents animation when mounting.\n */\n preventAnimationOnMount?: boolean;\n /**\n * The CSS selector of the container where the dialog is rendered.\n */\n containerSelector?: string;\n /**\n * If true, positions the tooltip element.\n */\n tooltip?: boolean;\n /**\n * Class name applied to the tooltip element.\n */\n tooltipClassName?: string;\n /**\n * Callback fired when the dialog is shown.\n */\n onDialogDidShow?: (event?: DialogEvent, eventName?: DialogTriggerEvent | string) => void;\n /**\n * Callback fired when the dialog is hidden.\n */\n onDialogDidHide?: (event: DialogEvent, eventName: DialogTriggerEvent | string) => void;\n /**\n * Callback fired when clicking outside the dialog.\n */\n onClickOutside?: (event: React.MouseEvent) => void;\n /**\n * Callback fired when clicking inside the dialog content.\n */\n onContentClick?: (event: React.MouseEvent) => void;\n /**\n * The z-index applied to the dialog.\n */\n zIndex?: number;\n /**\n * If true, uses derived state from props.\n */\n useDerivedStateFromProps?: boolean;\n /**\n * If true, makes the dialog disappear when the reference element is hidden.\n */\n hideWhenReferenceHidden?: boolean;\n /**\n * If true, triggers the callback when the dialog mounts.\n */\n shouldCallbackOnMount?: boolean;\n /**\n * If true, instantly shows and hides the dialog without delay.\n */\n instantShowAndHide?: boolean;\n /**\n * Callback to dynamically adjust show delay and animation behavior.\n */\n getDynamicShowDelay?: () => { showDelay: number; preventAnimation: boolean };\n /**\n * The content displayed inside the dialog.\n */\n content?: (() => JSX.Element) | JSX.Element;\n /**\n * The element to position the dialog beside.\n */\n children?: ReactElement | ReactElement[] | string;\n /**\n * If true, keyboard focus/blur events behave like mouse enter/leave.\n */\n addKeyboardHideShowTriggersByDefault?: boolean;\n /**\n * If true, disables scrolling for the container element.\n */\n disableContainerScroll?: boolean | string;\n /**\n * Enables the observation of content resize for the popper element.\n * When set to `true`, a ResizeObserver is attached to the popper content,\n * automatically triggering repositioning when the size of the content changes.\n *\n * This is useful for dialogs, tooltips, or popovers with dynamic content\n * that may grow or shrink without a re-render being triggered.\n */\n observeContentResize?: boolean;\n /**\n * If true, provides a LayerProvider context for nested dialogs to render correctly.\n * This is useful when you have components that use Dialog internally (like Dropdown)\n * inside another Dialog, ensuring proper z-index stacking and click-outside behavior.\n */\n enableNestedDialogLayer?: boolean;\n}\n\nexport interface DialogState {\n /**\n * If true, the dialog is open.\n */\n isOpen?: boolean;\n /**\n * If true, the dialog state is derived from props.\n */\n shouldUseDerivedStateFromProps?: boolean;\n /**\n * If true, prevents animation when opening or closing the dialog.\n */\n preventAnimation?: boolean;\n}\n\nexport default class Dialog extends PureComponent<DialogProps, DialogState> {\n static defaultProps = {\n position: \"top\",\n modifiers: [] as Modifier<any>[],\n moveBy: { main: 0, secondary: 0 },\n showDelay: 100,\n hideDelay: 100,\n showTrigger: \"mouseenter\",\n hideTrigger: \"mouseleave\",\n showOnDialogEnter: false,\n shouldShowOnMount: false,\n disable: false,\n open: false,\n animationType: \"expand\",\n preventAnimationOnMount: false,\n tooltip: false,\n onDialogDidShow: NOOP,\n onDialogDidHide: NOOP,\n onClickOutside: NOOP,\n onContentClick: NOOP,\n useDerivedStateFromProps: false,\n hideWhenReferenceHidden: false,\n shouldCallbackOnMount: false,\n instantShowAndHide: false,\n addKeyboardHideShowTriggersByDefault: false,\n observeContentResize: false,\n enableNestedDialogLayer: false\n };\n private showTimeout: NodeJS.Timeout;\n private hideTimeout: NodeJS.Timeout;\n private containerRef: React.RefObject<HTMLDivElement>;\n context!: React.ContextType<typeof LayerContext>;\n\n constructor(props: DialogProps) {\n super(props);\n this.state = {\n shouldUseDerivedStateFromProps: props.useDerivedStateFromProps,\n isOpen: props.shouldShowOnMount\n };\n\n this.containerRef = React.createRef<HTMLDivElement>();\n\n // Binding section.\n this.onMouseEnter = this.onMouseEnter.bind(this);\n this.onMouseLeave = this.onMouseLeave.bind(this);\n this.onMouseDown = this.onMouseDown.bind(this);\n this.onClick = this.onClick.bind(this);\n this.onFocus = this.onFocus.bind(this);\n this.onBlur = this.onBlur.bind(this);\n this.isShown = this.isShown.bind(this);\n this.onEsc = this.onEsc.bind(this);\n this.onClickOutside = this.onClickOutside.bind(this);\n this.onDialogEnter = this.onDialogEnter.bind(this);\n this.onDialogLeave = this.onDialogLeave.bind(this);\n this.getContainer = this.getContainer.bind(this);\n this.onContentClick = this.onContentClick.bind(this);\n this.onKeyDown = this.onKeyDown.bind(this);\n this.closeDialogOnEscape = this.closeDialogOnEscape.bind(this);\n this.onContextMenu = this.onContextMenu.bind(this);\n this.getDefaultContainer = this.getDefaultContainer.bind(this);\n\n // Timeouts\n this.hideTimeout = null;\n this.showTimeout = null;\n }\n\n closeDialogOnEscape(event: KeyboardEvent) {\n const { isOpen } = this.state;\n if (!isOpen) {\n return;\n }\n switch (event.key) {\n case \"Escape\":\n this.hideDialogIfNeeded(event, \"esckey\");\n break;\n case \"Tab\":\n this.handleEvent(\"tab\", event.target, event);\n break;\n case \"Enter\":\n this.handleEvent(\"enter\", event.target, event);\n break;\n default:\n break;\n }\n }\n\n componentDidMount() {\n const { shouldCallbackOnMount, onDialogDidShow } = this.props;\n const { isOpen } = this.state;\n if (isClient()) {\n document.addEventListener(\"keyup\", this.closeDialogOnEscape);\n }\n if (shouldCallbackOnMount && isOpen) {\n onDialogDidShow && onDialogDidShow();\n }\n }\n\n componentWillUnmount() {\n if (isClient()) {\n document.removeEventListener(\"keyup\", this.closeDialogOnEscape);\n }\n if (this.showTimeout) {\n clearTimeout(this.showTimeout);\n this.showTimeout = null;\n }\n if (this.hideTimeout) {\n clearTimeout(this.hideTimeout);\n this.hideTimeout = null;\n }\n }\n\n static getDerivedStateFromProps(nextProps: DialogProps, state: DialogState): DialogState {\n if (state.shouldUseDerivedStateFromProps) {\n return { isOpen: nextProps.isOpen };\n }\n return null;\n }\n\n getDefaultContainer() {\n const { layerRef } = this.context;\n if (layerRef?.current) {\n return layerRef.current;\n }\n return document.body;\n }\n\n getContainer() {\n const { containerSelector } = this.props;\n if (!containerSelector) {\n return this.getDefaultContainer();\n }\n\n const containerElement = document.querySelector(containerSelector);\n if (!containerElement || !(containerElement instanceof Element)) {\n return this.getDefaultContainer();\n }\n return containerElement;\n }\n\n showDialog(event: DialogEvent, eventName: DialogTriggerEvent | string, options: { preventAnimation?: boolean } = {}) {\n const { showDelay, instantShowAndHide, getDynamicShowDelay } = this.props;\n let finalShowDelay = showDelay;\n let preventAnimation = options.preventAnimation;\n if (getDynamicShowDelay) {\n const dynamicDelayObj = getDynamicShowDelay();\n finalShowDelay = dynamicDelayObj.showDelay || 0;\n preventAnimation = preventAnimation || dynamicDelayObj.preventAnimation;\n }\n\n if (instantShowAndHide) {\n this.onShowDialog(event, eventName);\n this.setState({ isOpen: true, preventAnimation });\n this.showTimeout = null;\n } else {\n this.showTimeout = setTimeout(() => {\n this.onShowDialog(event, eventName);\n this.showTimeout = null;\n this.setState({ isOpen: true, preventAnimation });\n }, finalShowDelay);\n }\n }\n\n onShowDialog(event: DialogEvent, eventName: DialogTriggerEvent | string) {\n if (this.isShown()) return;\n const { onDialogDidShow } = this.props;\n onDialogDidShow(event, eventName);\n }\n\n showDialogIfNeeded(event: DialogEvent, eventName: DialogTriggerEvent | string, options = {}) {\n const { disable } = this.props;\n if (disable) {\n return;\n }\n\n if (this.hideTimeout) {\n clearTimeout(this.hideTimeout);\n this.hideTimeout = null;\n }\n\n if (!this.showTimeout) {\n this.showDialog(event, eventName, options);\n }\n }\n\n hideDialog(event: DialogEvent, eventName: DialogTriggerEvent | string) {\n const { hideDelay, instantShowAndHide } = this.props;\n if (instantShowAndHide) {\n this.onHideDialog(event, eventName);\n this.setState({ isOpen: false });\n this.hideTimeout = null;\n } else {\n this.hideTimeout = setTimeout(() => {\n this.onHideDialog(event, eventName);\n this.setState({ isOpen: false });\n this.hideTimeout = null;\n }, hideDelay);\n }\n }\n\n onHideDialog(event: DialogEvent, eventName: DialogTriggerEvent | string) {\n const { onDialogDidHide } = this.props;\n if (onDialogDidHide) onDialogDidHide(event, eventName);\n }\n\n hideDialogIfNeeded(event: DialogEvent, eventName: DialogTriggerEvent | string) {\n if (this.showTimeout) {\n clearTimeout(this.showTimeout);\n this.showTimeout = null;\n }\n\n if (this.hideTimeout) {\n return;\n }\n this.hideDialog(event, eventName);\n }\n\n handleEvent(eventName: DialogTriggerEvent, target: EventTarget, event: DialogEvent) {\n const { showTriggerIgnoreClass, hideTriggerIgnoreClass } = this.props;\n if (\n this.isShowTrigger(eventName) &&\n !this.isShown() &&\n !isInsideClass(target as HTMLElement, showTriggerIgnoreClass)\n ) {\n return this.showDialogIfNeeded(event, eventName);\n }\n\n if (this.isHideTrigger(eventName) && !isInsideClass(target as HTMLElement, hideTriggerIgnoreClass)) {\n return this.hideDialogIfNeeded(event, eventName);\n }\n }\n\n isShown() {\n const { isOpen } = this.state;\n const { open } = this.props;\n\n return isOpen || open;\n }\n\n isShowTrigger(eventName: DialogTriggerEvent) {\n const { showTrigger, addKeyboardHideShowTriggersByDefault } = this.props;\n const showTriggersArray = convertToArray(showTrigger);\n\n if (addKeyboardHideShowTriggersByDefault) {\n if (eventName === \"focus\" && showTriggersArray.indexOf(\"mouseenter\") > -1) {\n return true;\n }\n }\n\n return showTriggersArray.indexOf(eventName) > -1;\n }\n\n isHideTrigger(eventName: DialogTriggerEvent) {\n const { hideTrigger, addKeyboardHideShowTriggersByDefault } = this.props;\n const hideTriggersArray = convertToArray(hideTrigger);\n\n if (addKeyboardHideShowTriggersByDefault) {\n if (eventName === \"blur\" && hideTriggersArray.indexOf(\"mouseleave\") > -1) {\n return true;\n }\n }\n\n return hideTriggersArray.indexOf(eventName) > -1;\n }\n\n onMouseEnter(e: React.MouseEvent) {\n this.handleEvent(\"mouseenter\", e.target, e);\n }\n\n onMouseLeave(e: React.MouseEvent) {\n this.handleEvent(\"mouseleave\", e.target, e);\n }\n\n onClick(e: React.MouseEvent) {\n if (e.button) return;\n this.handleEvent(\"click\", e.target, e);\n }\n\n onKeyDown(event: React.KeyboardEvent) {\n if (event.key === \"Enter\") {\n this.handleEvent(\"enter\", event.target, event);\n }\n\n if (event.key === \"Tab\") {\n this.handleEvent(\"tab\", event.target, event);\n }\n }\n\n onMouseDown(e: React.MouseEvent) {\n if (e.button) return;\n this.handleEvent(\"mousedown\", e.target, e);\n }\n\n onFocus(e: React.FocusEvent) {\n this.handleEvent(\"focus\", e.target, e);\n }\n\n onBlur(e: React.FocusEvent) {\n this.handleEvent(\"blur\", e.relatedTarget, e);\n }\n\n onEsc(e: React.KeyboardEvent) {\n this.handleEvent(\"esckey\", e.target, e);\n }\n\n onContextMenu(e: React.MouseEvent) {\n const isShown = this.isShown();\n if ((this.isShowTrigger(\"contextmenu\") && !isShown) || (this.isHideTrigger(\"contextmenu\") && isShown)) {\n e.preventDefault();\n }\n this.handleEvent(\"contextmenu\", e.target, e);\n }\n\n onClickOutside(event: React.MouseEvent) {\n const { onClickOutside } = this.props;\n this.handleEvent(\"clickoutside\", event.target, event);\n onClickOutside(event);\n }\n\n onDialogEnter(event: React.MouseEvent) {\n const { showOnDialogEnter } = this.props;\n if (showOnDialogEnter) this.showDialogIfNeeded(event, \"DialogEnter\");\n }\n\n onDialogLeave(event: React.MouseEvent) {\n const { showOnDialogEnter } = this.props;\n if (showOnDialogEnter) this.hideDialogIfNeeded(event, \"DialogLeave\");\n }\n\n onContentClick(e: React.MouseEvent) {\n const { onContentClick } = this.props;\n this.handleEvent(\"onContentClick\", e.target, e);\n onContentClick(e);\n }\n\n render() {\n const {\n wrapperClassName,\n content,\n startingEdge,\n children,\n preventAnimationOnMount,\n animationType,\n position,\n showDelay,\n moveBy,\n modifiers,\n tooltip,\n tooltipClassName,\n referenceWrapperClassName,\n referenceWrapperElement,\n zIndex,\n hideWhenReferenceHidden,\n disableContainerScroll,\n containerSelector,\n observeContentResize,\n enableNestedDialogLayer,\n id,\n \"data-testid\": dataTestId\n } = this.props;\n const { preventAnimation } = this.state;\n const overrideDataTestId = dataTestId || getTestId(ComponentDefaultTestId.DIALOG, id);\n\n const animationTypeCalculated = preventAnimationOnMount || preventAnimation ? undefined : animationType;\n const contentRendered = isFunction(content) ? content() : content;\n\n if (!contentRendered) {\n return children;\n }\n return (\n <Manager>\n <Reference>\n {({ ref }) => {\n return (\n <Refable\n className={cx(referenceWrapperClassName)}\n wrapperElement={referenceWrapperElement}\n ref={ref}\n onBlur={chainOnPropsAndInstance(\"onBlur\", this, this.props)}\n onKeyDown={chainOnPropsAndInstance(\"onKeyDown\", this, this.props)}\n onClick={chainOnPropsAndInstance(\"onClick\", this, this.props)}\n onFocus={chainOnPropsAndInstance(\"onFocus\", this, this.props)}\n onMouseDown={chainOnPropsAndInstance(\"onMouseDown\", this, this.props)}\n onMouseEnter={chainOnPropsAndInstance(\"onMouseEnter\", this, this.props)}\n onMouseLeave={chainOnPropsAndInstance(\"onMouseLeave\", this, this.props)}\n onContextMenu={chainOnPropsAndInstance(\"onContextMenu\", this, this.props)}\n >\n {children}\n </Refable>\n );\n }}\n </Reference>\n {isClient() &&\n createPortal(\n <Popper\n placement={position as unknown as PopperJS.Placement}\n modifiers={[\n {\n name: \"offset\",\n options: {\n offset: [moveBy.secondary, moveBy.main]\n }\n },\n {\n name: \"zIndex\",\n enabled: true,\n phase: \"write\",\n fn({ state }) {\n if (zIndex) {\n state.styles.popper.zIndex = String(zIndex);\n }\n return state;\n }\n },\n {\n name: \"rotator\",\n enabled: true,\n phase: \"write\",\n fn({ state }) {\n if (!state.styles.arrow) {\n return state;\n }\n // const reg = new RegExp(\n // /translate\\(([0-9].*)px, ([0-9].*)px\\)/\n // );\n // const transform = state.styles.arrow.transform;\n // const res = reg.exec(transform);\n // state.styles.popper.transformOrigin = `${100 -\n // res[1]}% ${100 - res[2]}%`;\n state.styles.arrow.transform = `${state.styles.arrow.transform} rotate(45deg)`;\n return state;\n }\n },\n createObserveContentResizeModifier(observeContentResize),\n ...modifiers\n ]}\n >\n {({ placement, style, ref, arrowProps, isReferenceHidden }) => {\n if (!this.isShown() && placement) {\n return null;\n }\n\n if (hideWhenReferenceHidden && isReferenceHidden) {\n const event = new CustomEvent(\"onReferenceHidden\");\n this.hideDialog(event, \"onReferenceHidden\");\n }\n\n const mergedRef = chainRefFunctions([ref, this.containerRef]);\n\n const dialogContent = (\n <DialogContent\n data-testid={overrideDataTestId}\n isReferenceHidden={hideWhenReferenceHidden && isReferenceHidden}\n onMouseEnter={this.onDialogEnter}\n onMouseLeave={this.onDialogLeave}\n onClickOutside={this.onClickOutside}\n onContextMenu={this.onContextMenu}\n onEsc={this.onEsc}\n animationType={animationTypeCalculated}\n position={placement}\n wrapperClassName={wrapperClassName}\n startingEdge={startingEdge}\n isOpen={this.isShown()}\n showDelay={showDelay}\n styleObject={style}\n ref={mergedRef}\n onClick={this.onContentClick}\n hasTooltip={!!tooltip}\n containerSelector={containerSelector}\n disableContainerScroll={disableContainerScroll}\n >\n {contentRendered}\n {tooltip && (\n <div\n style={arrowProps.style}\n ref={arrowProps.ref}\n className={cx(styles.arrow, tooltipClassName)}\n data-placement={placement}\n />\n )}\n </DialogContent>\n );\n\n return enableNestedDialogLayer ? (\n <LayerProvider layerRef={this.containerRef}>{dialogContent}</LayerProvider>\n ) : (\n dialogContent\n );\n }}\n </Popper>,\n this.getContainer()\n )}\n </Manager>\n );\n }\n}\n\nfunction chainOnPropsAndInstance(name: string, instance: Dialog, props: DialogProps) {\n // @ts-ignore\n return chainFunctions([props[name], instance[name]], true);\n}\n\nDialog.contextType = LayerContext;\n"],"names":["Dialog","PureComponent","constructor","props","super","this","state","shouldUseDerivedStateFromProps","useDerivedStateFromProps","isOpen","shouldShowOnMount","containerRef","React","createRef","onMouseEnter","bind","onMouseLeave","onMouseDown","onClick","onFocus","onBlur","isShown","onEsc","onClickOutside","onDialogEnter","onDialogLeave","getContainer","onContentClick","onKeyDown","closeDialogOnEscape","onContextMenu","getDefaultContainer","hideTimeout","showTimeout","event","key","hideDialogIfNeeded","handleEvent","target","componentDidMount","shouldCallbackOnMount","onDialogDidShow","isClient","document","addEventListener","componentWillUnmount","removeEventListener","clearTimeout","getDerivedStateFromProps","nextProps","layerRef","context","current","body","containerSelector","containerElement","querySelector","Element","showDialog","eventName","options","showDelay","instantShowAndHide","getDynamicShowDelay","finalShowDelay","preventAnimation","dynamicDelayObj","onShowDialog","setState","setTimeout","showDialogIfNeeded","disable","hideDialog","hideDelay","onHideDialog","onDialogDidHide","showTriggerIgnoreClass","hideTriggerIgnoreClass","isShowTrigger","isInsideClass","isHideTrigger","open","showTrigger","addKeyboardHideShowTriggersByDefault","showTriggersArray","convertToArray","indexOf","hideTrigger","hideTriggersArray","e","button","relatedTarget","preventDefault","showOnDialogEnter","render","wrapperClassName","content","startingEdge","children","preventAnimationOnMount","animationType","position","moveBy","modifiers","tooltip","tooltipClassName","referenceWrapperClassName","referenceWrapperElement","zIndex","hideWhenReferenceHidden","disableContainerScroll","observeContentResize","enableNestedDialogLayer","id","dataTestId","overrideDataTestId","getTestId","ComponentDefaultTestId","DIALOG","animationTypeCalculated","undefined","contentRendered","isFunction","Manager","createElement","Reference","ref","Refable","className","cx","wrapperElement","chainOnPropsAndInstance","createPortal","Popper","placement","name","offset","secondary","main","enabled","phase","fn","styles","popper","String","arrow","transform","createObserveContentResizeModifier","style","arrowProps","isReferenceHidden","CustomEvent","mergedRef","chainRefFunctions","dialogContent","DialogContent","styleObject","hasTooltip","LayerProvider","instance","chainFunctions","defaultProps","NOOP","contextType","LayerContext"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var a={arrow:"
|
|
1
|
+
var a={arrow:"arrow_0b4c7d234a"};!function(a){const e="s_id-3fb64cda561a_3_0_11";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_0b4c7d234a {\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_0b4c7d234a[data-placement*=right], .black-app-theme .arrow_0b4c7d234a[data-placement*=right], .hacker-app-theme .arrow_0b4c7d234a[data-placement*=right] {\n box-shadow: -1px 1px 0px 0px var(--layout-border-color);\n}\n.dark-app-theme .arrow_0b4c7d234a[data-placement*=left], .black-app-theme .arrow_0b4c7d234a[data-placement*=left], .hacker-app-theme .arrow_0b4c7d234a[data-placement*=left] {\n box-shadow: 1px -1px 0px 0px var(--layout-border-color);\n}\n.dark-app-theme .arrow_0b4c7d234a[data-placement*=bottom], .black-app-theme .arrow_0b4c7d234a[data-placement*=bottom], .hacker-app-theme .arrow_0b4c7d234a[data-placement*=bottom] {\n box-shadow: -1px -1px 0px 0px var(--layout-border-color);\n}\n.dark-app-theme .arrow_0b4c7d234a[data-placement*=top], .black-app-theme .arrow_0b4c7d234a[data-placement*=top], .hacker-app-theme .arrow_0b4c7d234a[data-placement*=top] {\n box-shadow: 1px 1px 0px 0px var(--layout-border-color);\n}\n.arrow_0b4c7d234a[data-placement*=bottom] {\n top: 1px;\n}\n.arrow_0b4c7d234a[data-placement*=top] {\n bottom: 1px;\n}\n.arrow_0b4c7d234a[data-placement*=left] {\n right: 1px;\n}\n.arrow_0b4c7d234a[data-placement*=right] {\n left: 1px;\n}");export{a as default};
|
|
2
2
|
//# sourceMappingURL=Dialog.module.scss.js.map
|
|
@@ -1,60 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @deprecated
|
|
3
|
-
*/
|
|
4
|
-
export declare enum HideShowEvent {
|
|
5
|
-
CLICK = "click",
|
|
6
|
-
CLICK_OUTSIDE = "clickoutside",
|
|
7
|
-
ESCAPE_KEY = "esckey",
|
|
8
|
-
TAB_KEY = "tab",
|
|
9
|
-
MOUSE_ENTER = "mouseenter",
|
|
10
|
-
MOUSE_LEAVE = "mouseleave",
|
|
11
|
-
ENTER = "enter",
|
|
12
|
-
MOUSE_DOWN = "mousedown",
|
|
13
|
-
FOCUS = "focus",
|
|
14
|
-
BLUR = "blur",
|
|
15
|
-
CONTENT_CLICK = "onContentClick",
|
|
16
|
-
CONTEXT_MENU = "contextmenu"
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* @deprecated
|
|
20
|
-
*/
|
|
21
|
-
export declare enum AnimationType {
|
|
22
|
-
OPACITY_AND_SLIDE = "opacity-and-slide",
|
|
23
|
-
EXPAND = "expand"
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* @deprecated
|
|
27
|
-
*/
|
|
28
|
-
export declare enum DialogType {
|
|
29
|
-
MODAL = "modal",
|
|
30
|
-
POPOVER = "popover"
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* @deprecated
|
|
34
|
-
*/
|
|
35
|
-
export declare enum DialogSize {
|
|
36
|
-
NONE = "none",
|
|
37
|
-
SMALL = "small",
|
|
38
|
-
MEDIUM = "medium",
|
|
39
|
-
LARGE = "large"
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* @deprecated
|
|
43
|
-
*/
|
|
44
|
-
export declare enum DialogPosition {
|
|
45
|
-
LEFT = "left",
|
|
46
|
-
LEFT_START = "left-start",
|
|
47
|
-
LEFT_END = "left-end",
|
|
48
|
-
RIGHT = "right",
|
|
49
|
-
RIGHT_START = "right-start",
|
|
50
|
-
RIGHT_END = "right-end",
|
|
51
|
-
TOP = "top",
|
|
52
|
-
TOP_START = "top-start",
|
|
53
|
-
TOP_END = "top-end",
|
|
54
|
-
BOTTOM = "bottom",
|
|
55
|
-
BOTTOM_START = "bottom-start",
|
|
56
|
-
BOTTOM_END = "bottom-end"
|
|
57
|
-
}
|
|
58
1
|
export declare enum DialogPlacement {
|
|
59
2
|
RIGHT = "right",
|
|
60
3
|
RIGHT_START = "right-start",
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var t
|
|
1
|
+
var t;!function(t){t.RIGHT="right",t.RIGHT_START="right-start",t.RIGHT_END="right-end",t.LEFT="left",t.LEFT_START="left-start",t.LEFT_END="left-end"}(t||(t={}));export{t as DialogPlacement};
|
|
2
2
|
//# sourceMappingURL=DialogConstants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DialogConstants.js","sources":["../../src/Dialog/DialogConstants.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"DialogConstants.js","sources":["../../src/Dialog/DialogConstants.ts"],"sourcesContent":["export enum DialogPlacement {\n RIGHT = \"right\",\n RIGHT_START = \"right-start\",\n RIGHT_END = \"right-end\",\n LEFT = \"left\",\n LEFT_START = \"left-start\",\n LEFT_END = \"left-end\"\n}\n"],"names":["DialogPlacement"],"mappings":"IAAYA,GAAZ,SAAYA,GACVA,EAAA,MAAA,QACAA,EAAA,YAAA,cACAA,EAAA,UAAA,YACAA,EAAA,KAAA,OACAA,EAAA,WAAA,aACAA,EAAA,SAAA,UACD,CAPD,CAAYA,IAAAA,EAOX,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e={contentWrapper:"
|
|
1
|
+
var e={contentWrapper:"contentWrapper_187ed4f114",top:"top_df6c555d51",right:"right_c8ecf788b2",left:"left_398797c38e",bottom:"bottom_1e12c8dc7f",bottomStart:"bottomStart_a35f149a00",topStart:"topStart_26f5b9daea",bottomEnd:"bottomEnd_e7024fdf31",topEnd:"topEnd_44d2601331",leftStart:"leftStart_cfa8ac70aa",rightStart:"rightStart_7e16f16d69",leftEnd:"leftEnd_d87ac4a24c",rightEnd:"rightEnd_ebba7da78f",contentComponent:"contentComponent_effd6286d7",hasTooltip:"hasTooltip_8a2aa0b04f",opacitySlideAppear:"opacitySlideAppear_44fef1cba2",opacitySlideAppearActive:"opacitySlideAppearActive_0b7383c958",expandAppear:"expandAppear_691bfe57f1",expandExit:"expandExit_d5a9eccb8d",edgeBottom:"edgeBottom_d7f91dad73",edgeTop:"edgeTop_a2a5f5f2dc",expandAppearActive:"expandAppearActive_5a54c26ad6"};!function(e){const a="s_id-ca4097b848ab_3_0_11";if("undefined"!=typeof document){const t=document.head||document.getElementsByTagName("head")[0];if(t.querySelector("#"+a))return;const d=document.createElement("style");d.id=a,t.firstChild?t.insertBefore(d,t.firstChild):t.appendChild(d),d.appendChild(document.createTextNode(e))}else globalThis.injectedStyles&&(globalThis.injectedStyles[a]=e)}("/* stylelint-disable */\n/* stylelint-enable */\n.contentWrapper_187ed4f114 {\n outline: 0;\n}\n.contentWrapper_187ed4f114.top_df6c555d51, .contentWrapper_187ed4f114.right_c8ecf788b2, .contentWrapper_187ed4f114.left_398797c38e, .contentWrapper_187ed4f114.bottom_1e12c8dc7f {\n padding: var(--spacing-xs);\n}\n.contentWrapper_187ed4f114.bottomStart_a35f149a00, .contentWrapper_187ed4f114.topStart_26f5b9daea, .contentWrapper_187ed4f114.bottomEnd_e7024fdf31, .contentWrapper_187ed4f114.topEnd_44d2601331 {\n padding-block: var(--spacing-xs);\n}\n.contentWrapper_187ed4f114.bottomStart_a35f149a00, .contentWrapper_187ed4f114.topStart_26f5b9daea {\n padding-inline-end: var(--spacing-xs);\n}\n.contentWrapper_187ed4f114.bottomEnd_e7024fdf31, .contentWrapper_187ed4f114.topEnd_44d2601331 {\n padding-inline-start: var(--spacing-xs);\n}\n.contentWrapper_187ed4f114.leftStart_cfa8ac70aa, .contentWrapper_187ed4f114.rightStart_7e16f16d69, .contentWrapper_187ed4f114.leftEnd_d87ac4a24c, .contentWrapper_187ed4f114.rightEnd_ebba7da78f {\n padding-inline: var(--spacing-xs);\n}\n.contentWrapper_187ed4f114.leftStart_cfa8ac70aa, .contentWrapper_187ed4f114.rightStart_7e16f16d69 {\n padding-block-end: var(--spacing-xs);\n}\n.contentWrapper_187ed4f114.leftEnd_d87ac4a24c, .contentWrapper_187ed4f114.rightEnd_ebba7da78f {\n padding-block-start: var(--spacing-xs);\n}\n.contentWrapper_187ed4f114[data-popper-reference-hidden=true] {\n visibility: hidden;\n pointer-events: none;\n}\n.contentComponent_effd6286d7:focus {\n outline: none;\n}\n.contentComponent_effd6286d7.hasTooltip_8a2aa0b04f {\n padding: 6px;\n}\n.opacitySlideAppear_44fef1cba2 {\n opacity: 0;\n}\n.opacitySlideAppear_44fef1cba2.top_df6c555d51 {\n transform: translateY(var(--spacing-medium));\n}\n.opacitySlideAppear_44fef1cba2.right_c8ecf788b2 {\n transform: translateX(calc(var(--spacing-medium) * -1));\n}\n.opacitySlideAppear_44fef1cba2.bottom_1e12c8dc7f {\n transform: translateY(calc(var(--spacing-medium) * -1));\n}\n.opacitySlideAppear_44fef1cba2.left_398797c38e {\n transform: translateX(var(--spacing-medium));\n}\n.opacitySlideAppearActive_0b7383c958 {\n transition: opacity 0.2s ease, transform 0.2s ease-out;\n opacity: 1;\n pointer-events: none;\n}\n.opacitySlideAppearActive_0b7383c958.top_df6c555d51, .opacitySlideAppearActive_0b7383c958.bottom_1e12c8dc7f {\n transform: translateY(0);\n}\n.opacitySlideAppearActive_0b7383c958.right_c8ecf788b2, .opacitySlideAppearActive_0b7383c958.left_398797c38e {\n transform: translateX(0);\n}\n.expandAppear_691bfe57f1,\n.expandExit_d5a9eccb8d {\n transition: transform 0.1s cubic-bezier(0, 0, 0.35, 1);\n}\n.expandAppear_691bfe57f1.top_df6c555d51, .expandAppear_691bfe57f1.topStart_26f5b9daea, .expandAppear_691bfe57f1.topEnd_44d2601331,\n.expandExit_d5a9eccb8d.top_df6c555d51,\n.expandExit_d5a9eccb8d.topStart_26f5b9daea,\n.expandExit_d5a9eccb8d.topEnd_44d2601331 {\n transform-origin: bottom center;\n transform: scale(0.8);\n}\n.expandAppear_691bfe57f1.top_df6c555d51.edgeBottom_d7f91dad73, .expandAppear_691bfe57f1.topStart_26f5b9daea.edgeBottom_d7f91dad73, .expandAppear_691bfe57f1.topEnd_44d2601331.edgeBottom_d7f91dad73,\n.expandExit_d5a9eccb8d.top_df6c555d51.edgeBottom_d7f91dad73,\n.expandExit_d5a9eccb8d.topStart_26f5b9daea.edgeBottom_d7f91dad73,\n.expandExit_d5a9eccb8d.topEnd_44d2601331.edgeBottom_d7f91dad73 {\n transform-origin: bottom left;\n}\n.expandAppear_691bfe57f1.top_df6c555d51.edgeTop_a2a5f5f2dc, .expandAppear_691bfe57f1.topStart_26f5b9daea.edgeTop_a2a5f5f2dc, .expandAppear_691bfe57f1.topEnd_44d2601331.edgeTop_a2a5f5f2dc,\n.expandExit_d5a9eccb8d.top_df6c555d51.edgeTop_a2a5f5f2dc,\n.expandExit_d5a9eccb8d.topStart_26f5b9daea.edgeTop_a2a5f5f2dc,\n.expandExit_d5a9eccb8d.topEnd_44d2601331.edgeTop_a2a5f5f2dc {\n transform-origin: bottom right;\n}\n.expandAppear_691bfe57f1.right_c8ecf788b2, .expandAppear_691bfe57f1.rightStart_7e16f16d69, .expandAppear_691bfe57f1.rightEnd_ebba7da78f,\n.expandExit_d5a9eccb8d.right_c8ecf788b2,\n.expandExit_d5a9eccb8d.rightStart_7e16f16d69,\n.expandExit_d5a9eccb8d.rightEnd_ebba7da78f {\n transform-origin: left;\n transform: scale(0.8);\n}\n.expandAppear_691bfe57f1.right_c8ecf788b2.edgeBottom_d7f91dad73, .expandAppear_691bfe57f1.rightStart_7e16f16d69.edgeBottom_d7f91dad73, .expandAppear_691bfe57f1.rightEnd_ebba7da78f.edgeBottom_d7f91dad73,\n.expandExit_d5a9eccb8d.right_c8ecf788b2.edgeBottom_d7f91dad73,\n.expandExit_d5a9eccb8d.rightStart_7e16f16d69.edgeBottom_d7f91dad73,\n.expandExit_d5a9eccb8d.rightEnd_ebba7da78f.edgeBottom_d7f91dad73 {\n transform-origin: top left;\n}\n.expandAppear_691bfe57f1.right_c8ecf788b2.edgeTop_a2a5f5f2dc, .expandAppear_691bfe57f1.rightStart_7e16f16d69.edgeTop_a2a5f5f2dc, .expandAppear_691bfe57f1.rightEnd_ebba7da78f.edgeTop_a2a5f5f2dc,\n.expandExit_d5a9eccb8d.right_c8ecf788b2.edgeTop_a2a5f5f2dc,\n.expandExit_d5a9eccb8d.rightStart_7e16f16d69.edgeTop_a2a5f5f2dc,\n.expandExit_d5a9eccb8d.rightEnd_ebba7da78f.edgeTop_a2a5f5f2dc {\n transform-origin: bottom left;\n}\n.expandAppear_691bfe57f1.bottom_1e12c8dc7f, .expandAppear_691bfe57f1.bottomStart_a35f149a00, .expandAppear_691bfe57f1.bottomEnd_e7024fdf31,\n.expandExit_d5a9eccb8d.bottom_1e12c8dc7f,\n.expandExit_d5a9eccb8d.bottomStart_a35f149a00,\n.expandExit_d5a9eccb8d.bottomEnd_e7024fdf31 {\n transform-origin: top;\n transform: scale(0.8);\n}\n.expandAppear_691bfe57f1.bottom_1e12c8dc7f.edgeBottom_d7f91dad73, .expandAppear_691bfe57f1.bottomStart_a35f149a00.edgeBottom_d7f91dad73, .expandAppear_691bfe57f1.bottomEnd_e7024fdf31.edgeBottom_d7f91dad73,\n.expandExit_d5a9eccb8d.bottom_1e12c8dc7f.edgeBottom_d7f91dad73,\n.expandExit_d5a9eccb8d.bottomStart_a35f149a00.edgeBottom_d7f91dad73,\n.expandExit_d5a9eccb8d.bottomEnd_e7024fdf31.edgeBottom_d7f91dad73 {\n transform-origin: top left;\n}\n.expandAppear_691bfe57f1.bottom_1e12c8dc7f.edgeTop_a2a5f5f2dc, .expandAppear_691bfe57f1.bottomStart_a35f149a00.edgeTop_a2a5f5f2dc, .expandAppear_691bfe57f1.bottomEnd_e7024fdf31.edgeTop_a2a5f5f2dc,\n.expandExit_d5a9eccb8d.bottom_1e12c8dc7f.edgeTop_a2a5f5f2dc,\n.expandExit_d5a9eccb8d.bottomStart_a35f149a00.edgeTop_a2a5f5f2dc,\n.expandExit_d5a9eccb8d.bottomEnd_e7024fdf31.edgeTop_a2a5f5f2dc {\n transform-origin: top right;\n}\n.expandAppear_691bfe57f1.left_398797c38e, .expandAppear_691bfe57f1.leftStart_cfa8ac70aa, .expandAppear_691bfe57f1.leftEnd_d87ac4a24c,\n.expandExit_d5a9eccb8d.left_398797c38e,\n.expandExit_d5a9eccb8d.leftStart_cfa8ac70aa,\n.expandExit_d5a9eccb8d.leftEnd_d87ac4a24c {\n transform-origin: right;\n transform: scale(0.8);\n}\n.expandAppear_691bfe57f1.left_398797c38e.edgeBottom_d7f91dad73, .expandAppear_691bfe57f1.leftStart_cfa8ac70aa.edgeBottom_d7f91dad73, .expandAppear_691bfe57f1.leftEnd_d87ac4a24c.edgeBottom_d7f91dad73,\n.expandExit_d5a9eccb8d.left_398797c38e.edgeBottom_d7f91dad73,\n.expandExit_d5a9eccb8d.leftStart_cfa8ac70aa.edgeBottom_d7f91dad73,\n.expandExit_d5a9eccb8d.leftEnd_d87ac4a24c.edgeBottom_d7f91dad73 {\n transform-origin: top right;\n}\n.expandAppear_691bfe57f1.left_398797c38e.edgeTop_a2a5f5f2dc, .expandAppear_691bfe57f1.leftStart_cfa8ac70aa.edgeTop_a2a5f5f2dc, .expandAppear_691bfe57f1.leftEnd_d87ac4a24c.edgeTop_a2a5f5f2dc,\n.expandExit_d5a9eccb8d.left_398797c38e.edgeTop_a2a5f5f2dc,\n.expandExit_d5a9eccb8d.leftStart_cfa8ac70aa.edgeTop_a2a5f5f2dc,\n.expandExit_d5a9eccb8d.leftEnd_d87ac4a24c.edgeTop_a2a5f5f2dc {\n transform-origin: bottom right;\n}\n.expandExit_d5a9eccb8d {\n transition: transform 0.1s cubic-bezier(0, 0, 0.35, 1);\n}\n.expandAppearActive_5a54c26ad6 {\n transition: transform 0.1s cubic-bezier(0, 0, 0.35, 1);\n pointer-events: none;\n}\n.expandAppearActive_5a54c26ad6.top_df6c555d51, .expandAppearActive_5a54c26ad6.topStart_26f5b9daea, .expandAppearActive_5a54c26ad6.topEnd_44d2601331, .expandAppearActive_5a54c26ad6.bottom_1e12c8dc7f, .expandAppearActive_5a54c26ad6.bottomStart_a35f149a00, .expandAppearActive_5a54c26ad6.bottomEnd_e7024fdf31, .expandAppearActive_5a54c26ad6.right_c8ecf788b2, .expandAppearActive_5a54c26ad6.rightStart_7e16f16d69, .expandAppearActive_5a54c26ad6.rightEnd_ebba7da78f, .expandAppearActive_5a54c26ad6.left_398797c38e, .expandAppearActive_5a54c26ad6.leftStart_cfa8ac70aa, .expandAppearActive_5a54c26ad6.leftEnd_d87ac4a24c {\n transform: scale(1);\n}");export{e as default};
|
|
2
2
|
//# sourceMappingURL=DialogContent.module.scss.js.map
|
package/dist/Dialog/index.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
export { default as Dialog, type DialogProps } from "./Dialog";
|
|
2
|
-
export { HideShowEvent as DialogTriggerEventEnum, AnimationType as DialogAnimationTypeEnum, DialogPosition as DialogPositionEnum, DialogSize as DialogSizeEnum, DialogPlacement as DialogPlacementEnum } from "./DialogConstants";
|
|
3
2
|
export { default as usePopover } from "./usePopover";
|
|
4
3
|
export * from "./Dialog.types";
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { type VibeComponentProps } from "@vibe/shared";
|
|
3
|
-
import { DialogSize as DialogSizeEnum, DialogType as DialogTypeEnum } from "../Dialog/DialogConstants";
|
|
4
3
|
import { type DialogSize, type DialogType } from "../Dialog";
|
|
5
4
|
export interface DialogContentContainerProps extends VibeComponentProps {
|
|
6
5
|
/**
|
|
@@ -33,8 +32,5 @@ export interface DialogContentContainerProps extends VibeComponentProps {
|
|
|
33
32
|
*/
|
|
34
33
|
role?: string | null;
|
|
35
34
|
}
|
|
36
|
-
declare const
|
|
37
|
-
|
|
38
|
-
sizes: typeof DialogSizeEnum;
|
|
39
|
-
};
|
|
40
|
-
export default _default;
|
|
35
|
+
declare const DialogContentContainer: React.ForwardRefExoticComponent<DialogContentContainerProps & React.RefAttributes<HTMLElement>>;
|
|
36
|
+
export default DialogContentContainer;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__rest as e}from"../_virtual/_tslib.js";import{camelCase as a}from"es-toolkit";import t from"classnames";import i,{forwardRef as r,useRef as s}from"react";import{getTestId as l,ComponentDefaultTestId as o,useMergeRef as d,getStyle as m
|
|
1
|
+
import{__rest as e}from"../_virtual/_tslib.js";import{camelCase as a}from"es-toolkit";import t from"classnames";import i,{forwardRef as r,useRef as s}from"react";import{getTestId as l,ComponentDefaultTestId as o,useMergeRef as d,getStyle as m}from"@vibe/shared";import n from"./DialogContentContainer.module.scss.js";const b=r(((r,b)=>{var{id:c,className:p="",ariaLabelledby:y="",ariaDescribedby:f="",type:N="popover",size:u="small",children:v,style:C,role:g,"data-testid":D=l(o.DIALOG_CONTENT_CONTAINER,c)}=r,O=e(r,["id","className","ariaLabelledby","ariaDescribedby","type","size","children","style","role","data-testid"]);const _=s(null),h=d(b,_);return i.createElement("div",Object.assign({id:c,role:null===g?void 0:g||"dialog","data-testid":D,"aria-labelledby":y,"aria-describedby":f,ref:h,style:C,className:t(n.dialogContentContainer,p,m(n,a("type--"+N)),m(n,a("size--"+u)))},O),v)}));export{b as default};
|
|
2
2
|
//# sourceMappingURL=DialogContentContainer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DialogContentContainer.js","sources":["../../src/DialogContentContainer/DialogContentContainer.tsx"],"sourcesContent":["import { camelCase } from \"es-toolkit\";\nimport cx from \"classnames\";\nimport React, { useRef, forwardRef } from \"react\";\nimport {
|
|
1
|
+
{"version":3,"file":"DialogContentContainer.js","sources":["../../src/DialogContentContainer/DialogContentContainer.tsx"],"sourcesContent":["import { camelCase } from \"es-toolkit\";\nimport cx from \"classnames\";\nimport React, { useRef, forwardRef } from \"react\";\nimport { useMergeRef, type VibeComponentProps, ComponentDefaultTestId, getTestId, getStyle } from \"@vibe/shared\";\nimport { type DialogSize, type DialogType } from \"../Dialog\";\nimport styles from \"./DialogContentContainer.module.scss\";\n\nexport interface DialogContentContainerProps extends VibeComponentProps {\n /**\n * The content inside the dialog container.\n */\n children?: React.ReactNode;\n /**\n * The ID of the element that labels this dialog.\n */\n ariaLabelledby?: string;\n /**\n * The ID of the element that describes this dialog.\n */\n ariaDescribedby?: string;\n /**\n * The type of dialog.\n */\n type?: DialogType;\n /**\n * The size of the dialog.\n */\n size?: DialogSize;\n /**\n * Custom styles applied to the dialog container.\n */\n style?: React.CSSProperties;\n /**\n * The ARIA role applied to the dialog container.\n * Defaults to \"dialog\" when not provided. Pass `null` to remove the role attribute entirely.\n */\n role?: string | null;\n}\n\nconst DialogContentContainer = forwardRef(\n (\n {\n id,\n className = \"\",\n ariaLabelledby = \"\",\n ariaDescribedby = \"\",\n type = \"popover\",\n size = \"small\",\n children,\n style,\n role,\n \"data-testid\": dataTestId = getTestId(ComponentDefaultTestId.DIALOG_CONTENT_CONTAINER, id),\n ...props\n }: DialogContentContainerProps,\n ref: React.Ref<HTMLElement>\n ) => {\n const componentRef = useRef(null);\n const mergedRef = useMergeRef(ref, componentRef);\n\n const roleValue = role === null ? undefined : role || \"dialog\";\n\n return (\n <div\n id={id}\n role={roleValue}\n data-testid={dataTestId}\n aria-labelledby={ariaLabelledby}\n aria-describedby={ariaDescribedby}\n ref={mergedRef}\n style={style}\n className={cx(\n styles.dialogContentContainer,\n className,\n getStyle(styles, camelCase(\"type--\" + type)),\n getStyle(styles, camelCase(\"size--\" + size))\n )}\n {...props}\n >\n {children}\n </div>\n );\n }\n);\n\nexport default DialogContentContainer;\n"],"names":["DialogContentContainer","forwardRef","_a","ref","id","className","ariaLabelledby","ariaDescribedby","type","size","children","style","role","dataTestId","getTestId","ComponentDefaultTestId","DIALOG_CONTENT_CONTAINER","props","__rest","componentRef","useRef","mergedRef","useMergeRef","React","createElement","Object","assign","undefined","cx","styles","dialogContentContainer","getStyle","camelCase"],"mappings":"6TAuCMA,MAAAA,EAAyBC,GAC7B,CACEC,EAaAC,SAbAC,GACEA,EAAEC,UACFA,EAAY,GAAEC,eACdA,EAAiB,GAAEC,gBACnBA,EAAkB,GAAEC,KACpBA,EAAO,UAASC,KAChBA,EAAO,QAAOC,SACdA,EAAQC,MACRA,EAAKC,KACLA,EACA,cAAeC,EAAaC,EAAUC,EAAuBC,yBAA0BZ,MACpFa,EAXLC,EAAAhB,EAAA,CAAA,KAAA,YAAA,iBAAA,kBAAA,OAAA,OAAA,WAAA,QAAA,OAAA,gBAeA,MAAMiB,EAAeC,EAAO,MACtBC,EAAYC,EAAYnB,EAAKgB,GAInC,OACEI,EAAAC,cAAA,MAAAC,OAAAC,OAAA,CACEtB,GAAIA,EACJQ,KALuB,OAATA,OAAgBe,EAAYf,GAAQ,SAKnC,cACFC,EAAU,kBACNP,EACC,mBAAAC,EAClBJ,IAAKkB,EACLV,MAAOA,EACPN,UAAWuB,EACTC,EAAOC,uBACPzB,EACA0B,EAASF,EAAQG,EAAU,SAAWxB,IACtCuB,EAASF,EAAQG,EAAU,SAAWvB,MAEpCQ,GAEHP,EACG"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e={dialogContentContainer:"
|
|
1
|
+
var e={dialogContentContainer:"dialogContentContainer_1b8a1c0f7b",sizeSmall:"sizeSmall_b4c7368703",sizeMedium:"sizeMedium_07d35767fe",sizeLarge:"sizeLarge_98b56b6e62",typePopover:"typePopover_80845ab7fd",typeModal:"typeModal_bd1fb0ee9a"};!function(e){const a="s_id-f752ec1c8102_3_0_11";if("undefined"!=typeof document){const n=document.head||document.getElementsByTagName("head")[0];if(n.querySelector("#"+a))return;const o=document.createElement("style");o.id=a,n.firstChild?n.insertBefore(o,n.firstChild):n.appendChild(o),o.appendChild(document.createTextNode(e))}else globalThis.injectedStyles&&(globalThis.injectedStyles[a]=e)}(".dialogContentContainer_1b8a1c0f7b:focus {\n outline: none;\n}\n\n.sizeSmall_b4c7368703 {\n padding: var(--spacing-small);\n}\n\n.sizeMedium_07d35767fe {\n padding: var(--spacing-medium);\n}\n\n.sizeLarge_98b56b6e62 {\n padding: var(--spacing-large);\n}\n\n.typePopover_80845ab7fd {\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_80845ab7fd, .black-app-theme .typePopover_80845ab7fd, .hacker-app-theme .typePopover_80845ab7fd {\n box-shadow: 0 0 0 1px var(--layout-border-color), var(--box-shadow-medium);\n}\n\n.typeModal_bd1fb0ee9a {\n box-shadow: var(--box-shadow-large);\n border-radius: var(--border-radius-big);\n background-color: var(--primary-background-color);\n}");export{e as default};
|
|
2
2
|
//# sourceMappingURL=DialogContentContainer.module.scss.js.map
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{default as Dialog}from"./Dialog/Dialog.js";export{
|
|
1
|
+
export{default as Dialog}from"./Dialog/Dialog.js";export{default as usePopover}from"./Dialog/usePopover.js";export{default as DialogContentContainer}from"./DialogContentContainer/DialogContentContainer.js";
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import React, { PureComponent, type ReactElement } from "react";
|
|
2
2
|
import { type Modifier } from "react-popper";
|
|
3
3
|
import { NOOP, type VibeComponentProps } from "@vibe/shared";
|
|
4
|
-
import { AnimationType as AnimationTypeEnum, HideShowEvent as DialogTriggerEventEnum, DialogPosition as DialogPositionEnum } from "./DialogConstants";
|
|
5
4
|
import type * as PopperJS from "@popperjs/core";
|
|
6
5
|
import { type DialogAnimationType, type DialogPosition, type DialogTriggerEvent, type DialogEvent } from "./Dialog.types";
|
|
7
6
|
import { LayerContext } from "@vibe/layer";
|
|
@@ -194,9 +193,6 @@ export interface DialogState {
|
|
|
194
193
|
preventAnimation?: boolean;
|
|
195
194
|
}
|
|
196
195
|
export default class Dialog extends PureComponent<DialogProps, DialogState> {
|
|
197
|
-
static hideShowTriggers: typeof DialogTriggerEventEnum;
|
|
198
|
-
static positions: typeof DialogPositionEnum;
|
|
199
|
-
static animationTypes: typeof AnimationTypeEnum;
|
|
200
196
|
static defaultProps: {
|
|
201
197
|
position: string;
|
|
202
198
|
modifiers: (import("react-popper").StrictModifier<any> | Partial<PopperJS.Modifier<any, object>>)[];
|
|
@@ -206,13 +202,13 @@ export default class Dialog extends PureComponent<DialogProps, DialogState> {
|
|
|
206
202
|
};
|
|
207
203
|
showDelay: number;
|
|
208
204
|
hideDelay: number;
|
|
209
|
-
showTrigger:
|
|
210
|
-
hideTrigger:
|
|
205
|
+
showTrigger: string;
|
|
206
|
+
hideTrigger: string;
|
|
211
207
|
showOnDialogEnter: boolean;
|
|
212
208
|
shouldShowOnMount: boolean;
|
|
213
209
|
disable: boolean;
|
|
214
210
|
open: boolean;
|
|
215
|
-
animationType:
|
|
211
|
+
animationType: string;
|
|
216
212
|
preventAnimationOnMount: boolean;
|
|
217
213
|
tooltip: boolean;
|
|
218
214
|
onDialogDidShow: typeof NOOP;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e from"classnames";import t,{PureComponent as i}from"react";import{createPortal as o}from"react-dom";import{Manager as n,Reference as s,Popper as r}from"react-popper";import{isFunction as
|
|
1
|
+
import e from"classnames";import t,{PureComponent as i}from"react";import{createPortal as o}from"react-dom";import{Manager as n,Reference as s,Popper as r}from"react-popper";import{isFunction as a}from"es-toolkit";import{NOOP as h,isClient as l,isInsideClass as d,convertToArray as u,getTestId as c,ComponentDefaultTestId as p,chainRefFunctions as m,chainFunctions as g}from"@vibe/shared";import D from"./DialogContent/DialogContent.js";import{Refable as f}from"../Refable/Refable.js";import w from"./Dialog.module.scss.js";import{LayerContext as C,LayerProvider as v}from"@vibe/layer";import{createObserveContentResizeModifier as E}from"./modifiers/observeContentResizeModifier.js";class T extends i{constructor(e){super(e),this.state={shouldUseDerivedStateFromProps:e.useDerivedStateFromProps,isOpen:e.shouldShowOnMount},this.containerRef=t.createRef(),this.onMouseEnter=this.onMouseEnter.bind(this),this.onMouseLeave=this.onMouseLeave.bind(this),this.onMouseDown=this.onMouseDown.bind(this),this.onClick=this.onClick.bind(this),this.onFocus=this.onFocus.bind(this),this.onBlur=this.onBlur.bind(this),this.isShown=this.isShown.bind(this),this.onEsc=this.onEsc.bind(this),this.onClickOutside=this.onClickOutside.bind(this),this.onDialogEnter=this.onDialogEnter.bind(this),this.onDialogLeave=this.onDialogLeave.bind(this),this.getContainer=this.getContainer.bind(this),this.onContentClick=this.onContentClick.bind(this),this.onKeyDown=this.onKeyDown.bind(this),this.closeDialogOnEscape=this.closeDialogOnEscape.bind(this),this.onContextMenu=this.onContextMenu.bind(this),this.getDefaultContainer=this.getDefaultContainer.bind(this),this.hideTimeout=null,this.showTimeout=null}closeDialogOnEscape(e){const{isOpen:t}=this.state;if(t)switch(e.key){case"Escape":this.hideDialogIfNeeded(e,"esckey");break;case"Tab":this.handleEvent("tab",e.target,e);break;case"Enter":this.handleEvent("enter",e.target,e)}}componentDidMount(){const{shouldCallbackOnMount:e,onDialogDidShow:t}=this.props,{isOpen:i}=this.state;l()&&document.addEventListener("keyup",this.closeDialogOnEscape),e&&i&&t&&t()}componentWillUnmount(){l()&&document.removeEventListener("keyup",this.closeDialogOnEscape),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=null),this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=null)}static getDerivedStateFromProps(e,t){return t.shouldUseDerivedStateFromProps?{isOpen:e.isOpen}:null}getDefaultContainer(){const{layerRef:e}=this.context;return(null==e?void 0:e.current)?e.current:document.body}getContainer(){const{containerSelector:e}=this.props;if(!e)return this.getDefaultContainer();const t=document.querySelector(e);return t&&t instanceof Element?t:this.getDefaultContainer()}showDialog(e,t,i={}){const{showDelay:o,instantShowAndHide:n,getDynamicShowDelay:s}=this.props;let r=o,a=i.preventAnimation;if(s){const e=s();r=e.showDelay||0,a=a||e.preventAnimation}n?(this.onShowDialog(e,t),this.setState({isOpen:!0,preventAnimation:a}),this.showTimeout=null):this.showTimeout=setTimeout((()=>{this.onShowDialog(e,t),this.showTimeout=null,this.setState({isOpen:!0,preventAnimation:a})}),r)}onShowDialog(e,t){if(this.isShown())return;const{onDialogDidShow:i}=this.props;i(e,t)}showDialogIfNeeded(e,t,i={}){const{disable:o}=this.props;o||(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=null),this.showTimeout||this.showDialog(e,t,i))}hideDialog(e,t){const{hideDelay:i,instantShowAndHide:o}=this.props;o?(this.onHideDialog(e,t),this.setState({isOpen:!1}),this.hideTimeout=null):this.hideTimeout=setTimeout((()=>{this.onHideDialog(e,t),this.setState({isOpen:!1}),this.hideTimeout=null}),i)}onHideDialog(e,t){const{onDialogDidHide:i}=this.props;i&&i(e,t)}hideDialogIfNeeded(e,t){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=null),this.hideTimeout||this.hideDialog(e,t)}handleEvent(e,t,i){const{showTriggerIgnoreClass:o,hideTriggerIgnoreClass:n}=this.props;return!this.isShowTrigger(e)||this.isShown()||d(t,o)?this.isHideTrigger(e)&&!d(t,n)?this.hideDialogIfNeeded(i,e):void 0:this.showDialogIfNeeded(i,e)}isShown(){const{isOpen:e}=this.state,{open:t}=this.props;return e||t}isShowTrigger(e){const{showTrigger:t,addKeyboardHideShowTriggersByDefault:i}=this.props,o=u(t);return!(!i||"focus"!==e||-1>=o.indexOf("mouseenter"))||o.indexOf(e)>-1}isHideTrigger(e){const{hideTrigger:t,addKeyboardHideShowTriggersByDefault:i}=this.props,o=u(t);return!(!i||"blur"!==e||-1>=o.indexOf("mouseleave"))||o.indexOf(e)>-1}onMouseEnter(e){this.handleEvent("mouseenter",e.target,e)}onMouseLeave(e){this.handleEvent("mouseleave",e.target,e)}onClick(e){e.button||this.handleEvent("click",e.target,e)}onKeyDown(e){"Enter"===e.key&&this.handleEvent("enter",e.target,e),"Tab"===e.key&&this.handleEvent("tab",e.target,e)}onMouseDown(e){e.button||this.handleEvent("mousedown",e.target,e)}onFocus(e){this.handleEvent("focus",e.target,e)}onBlur(e){this.handleEvent("blur",e.relatedTarget,e)}onEsc(e){this.handleEvent("esckey",e.target,e)}onContextMenu(e){const t=this.isShown();(this.isShowTrigger("contextmenu")&&!t||this.isHideTrigger("contextmenu")&&t)&&e.preventDefault(),this.handleEvent("contextmenu",e.target,e)}onClickOutside(e){const{onClickOutside:t}=this.props;this.handleEvent("clickoutside",e.target,e),t(e)}onDialogEnter(e){const{showOnDialogEnter:t}=this.props;t&&this.showDialogIfNeeded(e,"DialogEnter")}onDialogLeave(e){const{showOnDialogEnter:t}=this.props;t&&this.hideDialogIfNeeded(e,"DialogLeave")}onContentClick(e){const{onContentClick:t}=this.props;this.handleEvent("onContentClick",e.target,e),t(e)}render(){const{wrapperClassName:i,content:h,startingEdge:d,children:u,preventAnimationOnMount:g,animationType:C,position:T,showDelay:b,moveBy:S,modifiers:O,tooltip:k,tooltipClassName:M,referenceWrapperClassName:x,referenceWrapperElement:H,zIndex:R,hideWhenReferenceHidden:L,disableContainerScroll:N,containerSelector:I,observeContentResize:A,enableNestedDialogLayer:B,id:F,"data-testid":K}=this.props,{preventAnimation:P}=this.state,z=K||c(p.DIALOG,F),j=g||P?void 0:C,W=a(h)?h():h;return W?t.createElement(n,null,t.createElement(s,null,(({ref:i})=>t.createElement(f,{className:e(x),wrapperElement:H,ref:i,onBlur:y("onBlur",this,this.props),onKeyDown:y("onKeyDown",this,this.props),onClick:y("onClick",this,this.props),onFocus:y("onFocus",this,this.props),onMouseDown:y("onMouseDown",this,this.props),onMouseEnter:y("onMouseEnter",this,this.props),onMouseLeave:y("onMouseLeave",this,this.props),onContextMenu:y("onContextMenu",this,this.props)},u))),l()&&o(t.createElement(r,{placement:T,modifiers:[{name:"offset",options:{offset:[S.secondary,S.main]}},{name:"zIndex",enabled:!0,phase:"write",fn:({state:e})=>(R&&(e.styles.popper.zIndex=R+""),e)},{name:"rotator",enabled:!0,phase:"write",fn:({state:e})=>e.styles.arrow?(e.styles.arrow.transform=e.styles.arrow.transform+" rotate(45deg)",e):e},E(A),...O]},(({placement:o,style:n,ref:s,arrowProps:r,isReferenceHidden:a})=>{if(!this.isShown()&&o)return null;if(L&&a){const e=new CustomEvent("onReferenceHidden");this.hideDialog(e,"onReferenceHidden")}const h=m([s,this.containerRef]),l=t.createElement(D,{"data-testid":z,isReferenceHidden:L&&a,onMouseEnter:this.onDialogEnter,onMouseLeave:this.onDialogLeave,onClickOutside:this.onClickOutside,onContextMenu:this.onContextMenu,onEsc:this.onEsc,animationType:j,position:o,wrapperClassName:i,startingEdge:d,isOpen:this.isShown(),showDelay:b,styleObject:n,ref:h,onClick:this.onContentClick,hasTooltip:!!k,containerSelector:I,disableContainerScroll:N},W,k&&t.createElement("div",{style:r.style,ref:r.ref,className:e(w.arrow,M),"data-placement":o}));return B?t.createElement(v,{layerRef:this.containerRef},l):l})),this.getContainer())):u}}function y(e,t,i){return g([i[e],t[e]],!0)}T.defaultProps={position:"top",modifiers:[],moveBy:{main:0,secondary:0},showDelay:100,hideDelay:100,showTrigger:"mouseenter",hideTrigger:"mouseleave",showOnDialogEnter:!1,shouldShowOnMount:!1,disable:!1,open:!1,animationType:"expand",preventAnimationOnMount:!1,tooltip:!1,onDialogDidShow:h,onDialogDidHide:h,onClickOutside:h,onContentClick:h,useDerivedStateFromProps:!1,hideWhenReferenceHidden:!1,shouldCallbackOnMount:!1,instantShowAndHide:!1,addKeyboardHideShowTriggersByDefault:!1,observeContentResize:!1,enableNestedDialogLayer:!1},T.contextType=C;export{T 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, { PureComponent, type ReactElement } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { Manager, type Modifier, Popper, Reference } from \"react-popper\";\nimport { isFunction } from \"es-toolkit\";\nimport {\n chainFunctions,\n chainRefFunctions,\n convertToArray,\n NOOP,\n isInsideClass,\n type VibeComponentProps,\n ComponentDefaultTestId,\n getTestId,\n isClient\n} from \"@vibe/shared\";\nimport DialogContent from \"./DialogContent/DialogContent\";\nimport { Refable } from \"../Refable/Refable\";\nimport {\n AnimationType as AnimationTypeEnum,\n HideShowEvent as DialogTriggerEventEnum,\n DialogPosition as DialogPositionEnum\n} from \"./DialogConstants\";\nimport type * as PopperJS from \"@popperjs/core\";\nimport styles from \"./Dialog.module.scss\";\nimport {\n type DialogAnimationType,\n type DialogPosition,\n type DialogTriggerEvent,\n type DialogEvent\n} from \"./Dialog.types\";\nimport { LayerContext, LayerProvider } from \"@vibe/layer\";\nimport { createObserveContentResizeModifier } from \"./modifiers/observeContentResizeModifier\";\n\nexport interface DialogProps extends VibeComponentProps {\n /**\n * Class name applied to the reference wrapper element.\n */\n referenceWrapperClassName?: string;\n /**\n * The wrapper element type to use for React components. Defaults to \"span\".\n */\n referenceWrapperElement?: \"span\" | \"div\";\n /**\n * The placement of the dialog relative to the reference element.\n */\n position?: DialogPosition;\n /**\n * Custom Popper.js modifiers.\n * https://popper.js.org/docs/v2/modifiers/\n */\n modifiers?: Modifier<any>[];\n /**\n * The starting edge of the dialog.\n */\n startingEdge?: string;\n /**\n * Offset values for positioning adjustments.\n * `main` - horizontal offset\n * `secondary` - vertical offset\n */\n moveBy?: { main?: number; secondary?: number };\n /**\n * Delay in milliseconds before showing the dialog.\n */\n showDelay?: number;\n /**\n * Delay in milliseconds before hiding the dialog.\n */\n hideDelay?: number;\n /**\n * Events that trigger showing the dialog.\n */\n showTrigger?: DialogTriggerEvent | DialogTriggerEvent[];\n /**\n * Events that trigger hiding the dialog.\n */\n hideTrigger?: DialogTriggerEvent | DialogTriggerEvent[];\n /**\n * If true, prevents closing the dialog when the mouse enters it.\n */\n showOnDialogEnter?: boolean;\n /**\n * If true, shows the dialog when the component mounts.\n */\n shouldShowOnMount?: boolean;\n /**\n * If true, disables opening the dialog.\n */\n disable?: boolean;\n /**\n * Controls the open state of the dialog.\n */\n open?: boolean;\n /**\n * Derived state control for managing dialog visibility.\n */\n isOpen?: boolean;\n /**\n * Classes that prevent showing the dialog when present.\n */\n showTriggerIgnoreClass?: string | Array<string>;\n /**\n * Classes that prevent hiding the dialog when present.\n */\n hideTriggerIgnoreClass?: string | Array<string>;\n /**\n * The animation type used for the dialog.\n */\n animationType?: DialogAnimationType;\n /**\n * Class name applied to the dialog content container.\n */\n wrapperClassName?: string;\n /**\n * If true, prevents animation when mounting.\n */\n preventAnimationOnMount?: boolean;\n /**\n * The CSS selector of the container where the dialog is rendered.\n */\n containerSelector?: string;\n /**\n * If true, positions the tooltip element.\n */\n tooltip?: boolean;\n /**\n * Class name applied to the tooltip element.\n */\n tooltipClassName?: string;\n /**\n * Callback fired when the dialog is shown.\n */\n onDialogDidShow?: (event?: DialogEvent, eventName?: DialogTriggerEvent | string) => void;\n /**\n * Callback fired when the dialog is hidden.\n */\n onDialogDidHide?: (event: DialogEvent, eventName: DialogTriggerEvent | string) => void;\n /**\n * Callback fired when clicking outside the dialog.\n */\n onClickOutside?: (event: React.MouseEvent) => void;\n /**\n * Callback fired when clicking inside the dialog content.\n */\n onContentClick?: (event: React.MouseEvent) => void;\n /**\n * The z-index applied to the dialog.\n */\n zIndex?: number;\n /**\n * If true, uses derived state from props.\n */\n useDerivedStateFromProps?: boolean;\n /**\n * If true, makes the dialog disappear when the reference element is hidden.\n */\n hideWhenReferenceHidden?: boolean;\n /**\n * If true, triggers the callback when the dialog mounts.\n */\n shouldCallbackOnMount?: boolean;\n /**\n * If true, instantly shows and hides the dialog without delay.\n */\n instantShowAndHide?: boolean;\n /**\n * Callback to dynamically adjust show delay and animation behavior.\n */\n getDynamicShowDelay?: () => { showDelay: number; preventAnimation: boolean };\n /**\n * The content displayed inside the dialog.\n */\n content?: (() => JSX.Element) | JSX.Element;\n /**\n * The element to position the dialog beside.\n */\n children?: ReactElement | ReactElement[] | string;\n /**\n * If true, keyboard focus/blur events behave like mouse enter/leave.\n */\n addKeyboardHideShowTriggersByDefault?: boolean;\n /**\n * If true, disables scrolling for the container element.\n */\n disableContainerScroll?: boolean | string;\n /**\n * Enables the observation of content resize for the popper element.\n * When set to `true`, a ResizeObserver is attached to the popper content,\n * automatically triggering repositioning when the size of the content changes.\n *\n * This is useful for dialogs, tooltips, or popovers with dynamic content\n * that may grow or shrink without a re-render being triggered.\n */\n observeContentResize?: boolean;\n /**\n * If true, provides a LayerProvider context for nested dialogs to render correctly.\n * This is useful when you have components that use Dialog internally (like Dropdown)\n * inside another Dialog, ensuring proper z-index stacking and click-outside behavior.\n */\n enableNestedDialogLayer?: boolean;\n}\n\nexport interface DialogState {\n /**\n * If true, the dialog is open.\n */\n isOpen?: boolean;\n /**\n * If true, the dialog state is derived from props.\n */\n shouldUseDerivedStateFromProps?: boolean;\n /**\n * If true, prevents animation when opening or closing the dialog.\n */\n preventAnimation?: boolean;\n}\n\nexport default class Dialog extends PureComponent<DialogProps, DialogState> {\n static hideShowTriggers = DialogTriggerEventEnum;\n static positions = DialogPositionEnum;\n static animationTypes = AnimationTypeEnum;\n static defaultProps = {\n position: \"top\",\n modifiers: [] as Modifier<any>[],\n moveBy: { main: 0, secondary: 0 },\n showDelay: 100,\n hideDelay: 100,\n showTrigger: Dialog.hideShowTriggers.MOUSE_ENTER,\n hideTrigger: Dialog.hideShowTriggers.MOUSE_LEAVE,\n showOnDialogEnter: false,\n shouldShowOnMount: false,\n disable: false,\n open: false,\n animationType: Dialog.animationTypes.EXPAND,\n preventAnimationOnMount: false,\n tooltip: false,\n onDialogDidShow: NOOP,\n onDialogDidHide: NOOP,\n onClickOutside: NOOP,\n onContentClick: NOOP,\n useDerivedStateFromProps: false,\n hideWhenReferenceHidden: false,\n shouldCallbackOnMount: false,\n instantShowAndHide: false,\n addKeyboardHideShowTriggersByDefault: false,\n observeContentResize: false,\n enableNestedDialogLayer: false\n };\n private showTimeout: NodeJS.Timeout;\n private hideTimeout: NodeJS.Timeout;\n private containerRef: React.RefObject<HTMLDivElement>;\n context!: React.ContextType<typeof LayerContext>;\n\n constructor(props: DialogProps) {\n super(props);\n this.state = {\n shouldUseDerivedStateFromProps: props.useDerivedStateFromProps,\n isOpen: props.shouldShowOnMount\n };\n\n this.containerRef = React.createRef<HTMLDivElement>();\n\n // Binding section.\n this.onMouseEnter = this.onMouseEnter.bind(this);\n this.onMouseLeave = this.onMouseLeave.bind(this);\n this.onMouseDown = this.onMouseDown.bind(this);\n this.onClick = this.onClick.bind(this);\n this.onFocus = this.onFocus.bind(this);\n this.onBlur = this.onBlur.bind(this);\n this.isShown = this.isShown.bind(this);\n this.onEsc = this.onEsc.bind(this);\n this.onClickOutside = this.onClickOutside.bind(this);\n this.onDialogEnter = this.onDialogEnter.bind(this);\n this.onDialogLeave = this.onDialogLeave.bind(this);\n this.getContainer = this.getContainer.bind(this);\n this.onContentClick = this.onContentClick.bind(this);\n this.onKeyDown = this.onKeyDown.bind(this);\n this.closeDialogOnEscape = this.closeDialogOnEscape.bind(this);\n this.onContextMenu = this.onContextMenu.bind(this);\n this.getDefaultContainer = this.getDefaultContainer.bind(this);\n\n // Timeouts\n this.hideTimeout = null;\n this.showTimeout = null;\n }\n\n closeDialogOnEscape(event: KeyboardEvent) {\n const { isOpen } = this.state;\n if (!isOpen) {\n return;\n }\n switch (event.key) {\n case \"Escape\":\n this.hideDialogIfNeeded(event, DialogTriggerEventEnum.ESCAPE_KEY);\n break;\n case \"Tab\":\n this.handleEvent(DialogTriggerEventEnum.TAB_KEY, event.target, event);\n break;\n case \"Enter\":\n this.handleEvent(DialogTriggerEventEnum.ENTER, event.target, event);\n break;\n default:\n break;\n }\n }\n\n componentDidMount() {\n const { shouldCallbackOnMount, onDialogDidShow } = this.props;\n const { isOpen } = this.state;\n if (isClient()) {\n document.addEventListener(\"keyup\", this.closeDialogOnEscape);\n }\n if (shouldCallbackOnMount && isOpen) {\n onDialogDidShow && onDialogDidShow();\n }\n }\n\n componentWillUnmount() {\n if (isClient()) {\n document.removeEventListener(\"keyup\", this.closeDialogOnEscape);\n }\n if (this.showTimeout) {\n clearTimeout(this.showTimeout);\n this.showTimeout = null;\n }\n if (this.hideTimeout) {\n clearTimeout(this.hideTimeout);\n this.hideTimeout = null;\n }\n }\n\n static getDerivedStateFromProps(nextProps: DialogProps, state: DialogState): DialogState {\n if (state.shouldUseDerivedStateFromProps) {\n return { isOpen: nextProps.isOpen };\n }\n return null;\n }\n\n getDefaultContainer() {\n const { layerRef } = this.context;\n if (layerRef?.current) {\n return layerRef.current;\n }\n return document.body;\n }\n\n getContainer() {\n const { containerSelector } = this.props;\n if (!containerSelector) {\n return this.getDefaultContainer();\n }\n\n const containerElement = document.querySelector(containerSelector);\n if (!containerElement || !(containerElement instanceof Element)) {\n return this.getDefaultContainer();\n }\n return containerElement;\n }\n\n showDialog(event: DialogEvent, eventName: DialogTriggerEvent | string, options: { preventAnimation?: boolean } = {}) {\n const { showDelay, instantShowAndHide, getDynamicShowDelay } = this.props;\n let finalShowDelay = showDelay;\n let preventAnimation = options.preventAnimation;\n if (getDynamicShowDelay) {\n const dynamicDelayObj = getDynamicShowDelay();\n finalShowDelay = dynamicDelayObj.showDelay || 0;\n preventAnimation = preventAnimation || dynamicDelayObj.preventAnimation;\n }\n\n if (instantShowAndHide) {\n this.onShowDialog(event, eventName);\n this.setState({ isOpen: true, preventAnimation });\n this.showTimeout = null;\n } else {\n this.showTimeout = setTimeout(() => {\n this.onShowDialog(event, eventName);\n this.showTimeout = null;\n this.setState({ isOpen: true, preventAnimation });\n }, finalShowDelay);\n }\n }\n\n onShowDialog(event: DialogEvent, eventName: DialogTriggerEvent | string) {\n if (this.isShown()) return;\n const { onDialogDidShow } = this.props;\n onDialogDidShow(event, eventName);\n }\n\n showDialogIfNeeded(event: DialogEvent, eventName: DialogTriggerEvent | string, options = {}) {\n const { disable } = this.props;\n if (disable) {\n return;\n }\n\n if (this.hideTimeout) {\n clearTimeout(this.hideTimeout);\n this.hideTimeout = null;\n }\n\n if (!this.showTimeout) {\n this.showDialog(event, eventName, options);\n }\n }\n\n hideDialog(event: DialogEvent, eventName: DialogTriggerEvent | string) {\n const { hideDelay, instantShowAndHide } = this.props;\n if (instantShowAndHide) {\n this.onHideDialog(event, eventName);\n this.setState({ isOpen: false });\n this.hideTimeout = null;\n } else {\n this.hideTimeout = setTimeout(() => {\n this.onHideDialog(event, eventName);\n this.setState({ isOpen: false });\n this.hideTimeout = null;\n }, hideDelay);\n }\n }\n\n onHideDialog(event: DialogEvent, eventName: DialogTriggerEvent | string) {\n const { onDialogDidHide } = this.props;\n if (onDialogDidHide) onDialogDidHide(event, eventName);\n }\n\n hideDialogIfNeeded(event: DialogEvent, eventName: DialogTriggerEvent | string) {\n if (this.showTimeout) {\n clearTimeout(this.showTimeout);\n this.showTimeout = null;\n }\n\n if (this.hideTimeout) {\n return;\n }\n this.hideDialog(event, eventName);\n }\n\n handleEvent(eventName: DialogTriggerEvent, target: EventTarget, event: DialogEvent) {\n const { showTriggerIgnoreClass, hideTriggerIgnoreClass } = this.props;\n if (\n this.isShowTrigger(eventName) &&\n !this.isShown() &&\n !isInsideClass(target as HTMLElement, showTriggerIgnoreClass)\n ) {\n return this.showDialogIfNeeded(event, eventName);\n }\n\n if (this.isHideTrigger(eventName) && !isInsideClass(target as HTMLElement, hideTriggerIgnoreClass)) {\n return this.hideDialogIfNeeded(event, eventName);\n }\n }\n\n isShown() {\n const { isOpen } = this.state;\n const { open } = this.props;\n\n return isOpen || open;\n }\n\n isShowTrigger(eventName: DialogTriggerEvent) {\n const { showTrigger, addKeyboardHideShowTriggersByDefault } = this.props;\n const showTriggersArray = convertToArray(showTrigger);\n\n if (addKeyboardHideShowTriggersByDefault) {\n if (eventName === \"focus\" && showTriggersArray.indexOf(\"mouseenter\") > -1) {\n return true;\n }\n }\n\n return showTriggersArray.indexOf(eventName) > -1;\n }\n\n isHideTrigger(eventName: DialogTriggerEvent) {\n const { hideTrigger, addKeyboardHideShowTriggersByDefault } = this.props;\n const hideTriggersArray = convertToArray(hideTrigger);\n\n if (addKeyboardHideShowTriggersByDefault) {\n if (eventName === \"blur\" && hideTriggersArray.indexOf(\"mouseleave\") > -1) {\n return true;\n }\n }\n\n return hideTriggersArray.indexOf(eventName) > -1;\n }\n\n onMouseEnter(e: React.MouseEvent) {\n this.handleEvent(\"mouseenter\", e.target, e);\n }\n\n onMouseLeave(e: React.MouseEvent) {\n this.handleEvent(\"mouseleave\", e.target, e);\n }\n\n onClick(e: React.MouseEvent) {\n if (e.button) return;\n this.handleEvent(\"click\", e.target, e);\n }\n\n onKeyDown(event: React.KeyboardEvent) {\n if (event.key === \"Enter\") {\n this.handleEvent(\"enter\", event.target, event);\n }\n\n if (event.key === \"Tab\") {\n this.handleEvent(\"tab\", event.target, event);\n }\n }\n\n onMouseDown(e: React.MouseEvent) {\n if (e.button) return;\n this.handleEvent(\"mousedown\", e.target, e);\n }\n\n onFocus(e: React.FocusEvent) {\n this.handleEvent(\"focus\", e.target, e);\n }\n\n onBlur(e: React.FocusEvent) {\n this.handleEvent(\"blur\", e.relatedTarget, e);\n }\n\n onEsc(e: React.KeyboardEvent) {\n this.handleEvent(\"esckey\", e.target, e);\n }\n\n onContextMenu(e: React.MouseEvent) {\n const isShown = this.isShown();\n if ((this.isShowTrigger(\"contextmenu\") && !isShown) || (this.isHideTrigger(\"contextmenu\") && isShown)) {\n e.preventDefault();\n }\n this.handleEvent(\"contextmenu\", e.target, e);\n }\n\n onClickOutside(event: React.MouseEvent) {\n const { onClickOutside } = this.props;\n this.handleEvent(\"clickoutside\", event.target, event);\n onClickOutside(event);\n }\n\n onDialogEnter(event: React.MouseEvent) {\n const { showOnDialogEnter } = this.props;\n if (showOnDialogEnter) this.showDialogIfNeeded(event, \"DialogEnter\");\n }\n\n onDialogLeave(event: React.MouseEvent) {\n const { showOnDialogEnter } = this.props;\n if (showOnDialogEnter) this.hideDialogIfNeeded(event, \"DialogLeave\");\n }\n\n onContentClick(e: React.MouseEvent) {\n const { onContentClick } = this.props;\n this.handleEvent(\"onContentClick\", e.target, e);\n onContentClick(e);\n }\n\n render() {\n const {\n wrapperClassName,\n content,\n startingEdge,\n children,\n preventAnimationOnMount,\n animationType,\n position,\n showDelay,\n moveBy,\n modifiers,\n tooltip,\n tooltipClassName,\n referenceWrapperClassName,\n referenceWrapperElement,\n zIndex,\n hideWhenReferenceHidden,\n disableContainerScroll,\n containerSelector,\n observeContentResize,\n enableNestedDialogLayer,\n id,\n \"data-testid\": dataTestId\n } = this.props;\n const { preventAnimation } = this.state;\n const overrideDataTestId = dataTestId || getTestId(ComponentDefaultTestId.DIALOG, id);\n\n const animationTypeCalculated = preventAnimationOnMount || preventAnimation ? undefined : animationType;\n const contentRendered = isFunction(content) ? content() : content;\n\n if (!contentRendered) {\n return children;\n }\n return (\n <Manager>\n <Reference>\n {({ ref }) => {\n return (\n <Refable\n className={cx(referenceWrapperClassName)}\n wrapperElement={referenceWrapperElement}\n ref={ref}\n onBlur={chainOnPropsAndInstance(\"onBlur\", this, this.props)}\n onKeyDown={chainOnPropsAndInstance(\"onKeyDown\", this, this.props)}\n onClick={chainOnPropsAndInstance(\"onClick\", this, this.props)}\n onFocus={chainOnPropsAndInstance(\"onFocus\", this, this.props)}\n onMouseDown={chainOnPropsAndInstance(\"onMouseDown\", this, this.props)}\n onMouseEnter={chainOnPropsAndInstance(\"onMouseEnter\", this, this.props)}\n onMouseLeave={chainOnPropsAndInstance(\"onMouseLeave\", this, this.props)}\n onContextMenu={chainOnPropsAndInstance(\"onContextMenu\", this, this.props)}\n >\n {children}\n </Refable>\n );\n }}\n </Reference>\n {isClient() &&\n createPortal(\n <Popper\n placement={position as unknown as PopperJS.Placement}\n modifiers={[\n {\n name: \"offset\",\n options: {\n offset: [moveBy.secondary, moveBy.main]\n }\n },\n {\n name: \"zIndex\",\n enabled: true,\n phase: \"write\",\n fn({ state }) {\n if (zIndex) {\n state.styles.popper.zIndex = String(zIndex);\n }\n return state;\n }\n },\n {\n name: \"rotator\",\n enabled: true,\n phase: \"write\",\n fn({ state }) {\n if (!state.styles.arrow) {\n return state;\n }\n // const reg = new RegExp(\n // /translate\\(([0-9].*)px, ([0-9].*)px\\)/\n // );\n // const transform = state.styles.arrow.transform;\n // const res = reg.exec(transform);\n // state.styles.popper.transformOrigin = `${100 -\n // res[1]}% ${100 - res[2]}%`;\n state.styles.arrow.transform = `${state.styles.arrow.transform} rotate(45deg)`;\n return state;\n }\n },\n createObserveContentResizeModifier(observeContentResize),\n ...modifiers\n ]}\n >\n {({ placement, style, ref, arrowProps, isReferenceHidden }) => {\n if (!this.isShown() && placement) {\n return null;\n }\n\n if (hideWhenReferenceHidden && isReferenceHidden) {\n const event = new CustomEvent(\"onReferenceHidden\");\n this.hideDialog(event, \"onReferenceHidden\");\n }\n\n const mergedRef = chainRefFunctions([ref, this.containerRef]);\n\n const dialogContent = (\n <DialogContent\n data-testid={overrideDataTestId}\n isReferenceHidden={hideWhenReferenceHidden && isReferenceHidden}\n onMouseEnter={this.onDialogEnter}\n onMouseLeave={this.onDialogLeave}\n onClickOutside={this.onClickOutside}\n onContextMenu={this.onContextMenu}\n onEsc={this.onEsc}\n animationType={animationTypeCalculated}\n position={placement}\n wrapperClassName={wrapperClassName}\n startingEdge={startingEdge}\n isOpen={this.isShown()}\n showDelay={showDelay}\n styleObject={style}\n ref={mergedRef}\n onClick={this.onContentClick}\n hasTooltip={!!tooltip}\n containerSelector={containerSelector}\n disableContainerScroll={disableContainerScroll}\n >\n {contentRendered}\n {tooltip && (\n <div\n style={arrowProps.style}\n ref={arrowProps.ref}\n className={cx(styles.arrow, tooltipClassName)}\n data-placement={placement}\n />\n )}\n </DialogContent>\n );\n\n return enableNestedDialogLayer ? (\n <LayerProvider layerRef={this.containerRef}>{dialogContent}</LayerProvider>\n ) : (\n dialogContent\n );\n }}\n </Popper>,\n this.getContainer()\n )}\n </Manager>\n );\n }\n}\n\nfunction chainOnPropsAndInstance(name: string, instance: Dialog, props: DialogProps) {\n // @ts-ignore\n return chainFunctions([props[name], instance[name]], true);\n}\n\nDialog.contextType = LayerContext;\n"],"names":["Dialog","PureComponent","constructor","props","super","this","state","shouldUseDerivedStateFromProps","useDerivedStateFromProps","isOpen","shouldShowOnMount","containerRef","React","createRef","onMouseEnter","bind","onMouseLeave","onMouseDown","onClick","onFocus","onBlur","isShown","onEsc","onClickOutside","onDialogEnter","onDialogLeave","getContainer","onContentClick","onKeyDown","closeDialogOnEscape","onContextMenu","getDefaultContainer","hideTimeout","showTimeout","event","key","hideDialogIfNeeded","DialogTriggerEventEnum","ESCAPE_KEY","handleEvent","TAB_KEY","target","ENTER","componentDidMount","shouldCallbackOnMount","onDialogDidShow","isClient","document","addEventListener","componentWillUnmount","removeEventListener","clearTimeout","getDerivedStateFromProps","nextProps","layerRef","context","current","body","containerSelector","containerElement","querySelector","Element","showDialog","eventName","options","showDelay","instantShowAndHide","getDynamicShowDelay","finalShowDelay","preventAnimation","dynamicDelayObj","onShowDialog","setState","setTimeout","showDialogIfNeeded","disable","hideDialog","hideDelay","onHideDialog","onDialogDidHide","showTriggerIgnoreClass","hideTriggerIgnoreClass","isShowTrigger","isInsideClass","isHideTrigger","open","showTrigger","addKeyboardHideShowTriggersByDefault","showTriggersArray","convertToArray","indexOf","hideTrigger","hideTriggersArray","e","button","relatedTarget","preventDefault","showOnDialogEnter","render","wrapperClassName","content","startingEdge","children","preventAnimationOnMount","animationType","position","moveBy","modifiers","tooltip","tooltipClassName","referenceWrapperClassName","referenceWrapperElement","zIndex","hideWhenReferenceHidden","disableContainerScroll","observeContentResize","enableNestedDialogLayer","id","dataTestId","overrideDataTestId","getTestId","ComponentDefaultTestId","DIALOG","animationTypeCalculated","undefined","contentRendered","isFunction","Manager","createElement","Reference","ref","Refable","className","cx","wrapperElement","chainOnPropsAndInstance","createPortal","Popper","placement","name","offset","secondary","main","enabled","phase","fn","styles","popper","String","arrow","transform","createObserveContentResizeModifier","style","arrowProps","isReferenceHidden","CustomEvent","mergedRef","chainRefFunctions","dialogContent","DialogContent","styleObject","hasTooltip","LayerProvider","instance","chainFunctions","hideShowTriggers","positions","DialogPositionEnum","animationTypes","AnimationTypeEnum","defaultProps","MOUSE_ENTER","MOUSE_LEAVE","EXPAND","NOOP","contextType","LayerContext"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Dialog.js","sources":["../../../src/Dialog/Dialog.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport React, { PureComponent, type ReactElement } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { Manager, type Modifier, Popper, Reference } from \"react-popper\";\nimport { isFunction } from \"es-toolkit\";\nimport {\n chainFunctions,\n chainRefFunctions,\n convertToArray,\n NOOP,\n isInsideClass,\n type VibeComponentProps,\n ComponentDefaultTestId,\n getTestId,\n isClient\n} from \"@vibe/shared\";\nimport DialogContent from \"./DialogContent/DialogContent\";\nimport { Refable } from \"../Refable/Refable\";\nimport type * as PopperJS from \"@popperjs/core\";\nimport styles from \"./Dialog.module.scss\";\nimport {\n type DialogAnimationType,\n type DialogPosition,\n type DialogTriggerEvent,\n type DialogEvent\n} from \"./Dialog.types\";\nimport { LayerContext, LayerProvider } from \"@vibe/layer\";\nimport { createObserveContentResizeModifier } from \"./modifiers/observeContentResizeModifier\";\n\nexport interface DialogProps extends VibeComponentProps {\n /**\n * Class name applied to the reference wrapper element.\n */\n referenceWrapperClassName?: string;\n /**\n * The wrapper element type to use for React components. Defaults to \"span\".\n */\n referenceWrapperElement?: \"span\" | \"div\";\n /**\n * The placement of the dialog relative to the reference element.\n */\n position?: DialogPosition;\n /**\n * Custom Popper.js modifiers.\n * https://popper.js.org/docs/v2/modifiers/\n */\n modifiers?: Modifier<any>[];\n /**\n * The starting edge of the dialog.\n */\n startingEdge?: string;\n /**\n * Offset values for positioning adjustments.\n * `main` - horizontal offset\n * `secondary` - vertical offset\n */\n moveBy?: { main?: number; secondary?: number };\n /**\n * Delay in milliseconds before showing the dialog.\n */\n showDelay?: number;\n /**\n * Delay in milliseconds before hiding the dialog.\n */\n hideDelay?: number;\n /**\n * Events that trigger showing the dialog.\n */\n showTrigger?: DialogTriggerEvent | DialogTriggerEvent[];\n /**\n * Events that trigger hiding the dialog.\n */\n hideTrigger?: DialogTriggerEvent | DialogTriggerEvent[];\n /**\n * If true, prevents closing the dialog when the mouse enters it.\n */\n showOnDialogEnter?: boolean;\n /**\n * If true, shows the dialog when the component mounts.\n */\n shouldShowOnMount?: boolean;\n /**\n * If true, disables opening the dialog.\n */\n disable?: boolean;\n /**\n * Controls the open state of the dialog.\n */\n open?: boolean;\n /**\n * Derived state control for managing dialog visibility.\n */\n isOpen?: boolean;\n /**\n * Classes that prevent showing the dialog when present.\n */\n showTriggerIgnoreClass?: string | Array<string>;\n /**\n * Classes that prevent hiding the dialog when present.\n */\n hideTriggerIgnoreClass?: string | Array<string>;\n /**\n * The animation type used for the dialog.\n */\n animationType?: DialogAnimationType;\n /**\n * Class name applied to the dialog content container.\n */\n wrapperClassName?: string;\n /**\n * If true, prevents animation when mounting.\n */\n preventAnimationOnMount?: boolean;\n /**\n * The CSS selector of the container where the dialog is rendered.\n */\n containerSelector?: string;\n /**\n * If true, positions the tooltip element.\n */\n tooltip?: boolean;\n /**\n * Class name applied to the tooltip element.\n */\n tooltipClassName?: string;\n /**\n * Callback fired when the dialog is shown.\n */\n onDialogDidShow?: (event?: DialogEvent, eventName?: DialogTriggerEvent | string) => void;\n /**\n * Callback fired when the dialog is hidden.\n */\n onDialogDidHide?: (event: DialogEvent, eventName: DialogTriggerEvent | string) => void;\n /**\n * Callback fired when clicking outside the dialog.\n */\n onClickOutside?: (event: React.MouseEvent) => void;\n /**\n * Callback fired when clicking inside the dialog content.\n */\n onContentClick?: (event: React.MouseEvent) => void;\n /**\n * The z-index applied to the dialog.\n */\n zIndex?: number;\n /**\n * If true, uses derived state from props.\n */\n useDerivedStateFromProps?: boolean;\n /**\n * If true, makes the dialog disappear when the reference element is hidden.\n */\n hideWhenReferenceHidden?: boolean;\n /**\n * If true, triggers the callback when the dialog mounts.\n */\n shouldCallbackOnMount?: boolean;\n /**\n * If true, instantly shows and hides the dialog without delay.\n */\n instantShowAndHide?: boolean;\n /**\n * Callback to dynamically adjust show delay and animation behavior.\n */\n getDynamicShowDelay?: () => { showDelay: number; preventAnimation: boolean };\n /**\n * The content displayed inside the dialog.\n */\n content?: (() => JSX.Element) | JSX.Element;\n /**\n * The element to position the dialog beside.\n */\n children?: ReactElement | ReactElement[] | string;\n /**\n * If true, keyboard focus/blur events behave like mouse enter/leave.\n */\n addKeyboardHideShowTriggersByDefault?: boolean;\n /**\n * If true, disables scrolling for the container element.\n */\n disableContainerScroll?: boolean | string;\n /**\n * Enables the observation of content resize for the popper element.\n * When set to `true`, a ResizeObserver is attached to the popper content,\n * automatically triggering repositioning when the size of the content changes.\n *\n * This is useful for dialogs, tooltips, or popovers with dynamic content\n * that may grow or shrink without a re-render being triggered.\n */\n observeContentResize?: boolean;\n /**\n * If true, provides a LayerProvider context for nested dialogs to render correctly.\n * This is useful when you have components that use Dialog internally (like Dropdown)\n * inside another Dialog, ensuring proper z-index stacking and click-outside behavior.\n */\n enableNestedDialogLayer?: boolean;\n}\n\nexport interface DialogState {\n /**\n * If true, the dialog is open.\n */\n isOpen?: boolean;\n /**\n * If true, the dialog state is derived from props.\n */\n shouldUseDerivedStateFromProps?: boolean;\n /**\n * If true, prevents animation when opening or closing the dialog.\n */\n preventAnimation?: boolean;\n}\n\nexport default class Dialog extends PureComponent<DialogProps, DialogState> {\n static defaultProps = {\n position: \"top\",\n modifiers: [] as Modifier<any>[],\n moveBy: { main: 0, secondary: 0 },\n showDelay: 100,\n hideDelay: 100,\n showTrigger: \"mouseenter\",\n hideTrigger: \"mouseleave\",\n showOnDialogEnter: false,\n shouldShowOnMount: false,\n disable: false,\n open: false,\n animationType: \"expand\",\n preventAnimationOnMount: false,\n tooltip: false,\n onDialogDidShow: NOOP,\n onDialogDidHide: NOOP,\n onClickOutside: NOOP,\n onContentClick: NOOP,\n useDerivedStateFromProps: false,\n hideWhenReferenceHidden: false,\n shouldCallbackOnMount: false,\n instantShowAndHide: false,\n addKeyboardHideShowTriggersByDefault: false,\n observeContentResize: false,\n enableNestedDialogLayer: false\n };\n private showTimeout: NodeJS.Timeout;\n private hideTimeout: NodeJS.Timeout;\n private containerRef: React.RefObject<HTMLDivElement>;\n context!: React.ContextType<typeof LayerContext>;\n\n constructor(props: DialogProps) {\n super(props);\n this.state = {\n shouldUseDerivedStateFromProps: props.useDerivedStateFromProps,\n isOpen: props.shouldShowOnMount\n };\n\n this.containerRef = React.createRef<HTMLDivElement>();\n\n // Binding section.\n this.onMouseEnter = this.onMouseEnter.bind(this);\n this.onMouseLeave = this.onMouseLeave.bind(this);\n this.onMouseDown = this.onMouseDown.bind(this);\n this.onClick = this.onClick.bind(this);\n this.onFocus = this.onFocus.bind(this);\n this.onBlur = this.onBlur.bind(this);\n this.isShown = this.isShown.bind(this);\n this.onEsc = this.onEsc.bind(this);\n this.onClickOutside = this.onClickOutside.bind(this);\n this.onDialogEnter = this.onDialogEnter.bind(this);\n this.onDialogLeave = this.onDialogLeave.bind(this);\n this.getContainer = this.getContainer.bind(this);\n this.onContentClick = this.onContentClick.bind(this);\n this.onKeyDown = this.onKeyDown.bind(this);\n this.closeDialogOnEscape = this.closeDialogOnEscape.bind(this);\n this.onContextMenu = this.onContextMenu.bind(this);\n this.getDefaultContainer = this.getDefaultContainer.bind(this);\n\n // Timeouts\n this.hideTimeout = null;\n this.showTimeout = null;\n }\n\n closeDialogOnEscape(event: KeyboardEvent) {\n const { isOpen } = this.state;\n if (!isOpen) {\n return;\n }\n switch (event.key) {\n case \"Escape\":\n this.hideDialogIfNeeded(event, \"esckey\");\n break;\n case \"Tab\":\n this.handleEvent(\"tab\", event.target, event);\n break;\n case \"Enter\":\n this.handleEvent(\"enter\", event.target, event);\n break;\n default:\n break;\n }\n }\n\n componentDidMount() {\n const { shouldCallbackOnMount, onDialogDidShow } = this.props;\n const { isOpen } = this.state;\n if (isClient()) {\n document.addEventListener(\"keyup\", this.closeDialogOnEscape);\n }\n if (shouldCallbackOnMount && isOpen) {\n onDialogDidShow && onDialogDidShow();\n }\n }\n\n componentWillUnmount() {\n if (isClient()) {\n document.removeEventListener(\"keyup\", this.closeDialogOnEscape);\n }\n if (this.showTimeout) {\n clearTimeout(this.showTimeout);\n this.showTimeout = null;\n }\n if (this.hideTimeout) {\n clearTimeout(this.hideTimeout);\n this.hideTimeout = null;\n }\n }\n\n static getDerivedStateFromProps(nextProps: DialogProps, state: DialogState): DialogState {\n if (state.shouldUseDerivedStateFromProps) {\n return { isOpen: nextProps.isOpen };\n }\n return null;\n }\n\n getDefaultContainer() {\n const { layerRef } = this.context;\n if (layerRef?.current) {\n return layerRef.current;\n }\n return document.body;\n }\n\n getContainer() {\n const { containerSelector } = this.props;\n if (!containerSelector) {\n return this.getDefaultContainer();\n }\n\n const containerElement = document.querySelector(containerSelector);\n if (!containerElement || !(containerElement instanceof Element)) {\n return this.getDefaultContainer();\n }\n return containerElement;\n }\n\n showDialog(event: DialogEvent, eventName: DialogTriggerEvent | string, options: { preventAnimation?: boolean } = {}) {\n const { showDelay, instantShowAndHide, getDynamicShowDelay } = this.props;\n let finalShowDelay = showDelay;\n let preventAnimation = options.preventAnimation;\n if (getDynamicShowDelay) {\n const dynamicDelayObj = getDynamicShowDelay();\n finalShowDelay = dynamicDelayObj.showDelay || 0;\n preventAnimation = preventAnimation || dynamicDelayObj.preventAnimation;\n }\n\n if (instantShowAndHide) {\n this.onShowDialog(event, eventName);\n this.setState({ isOpen: true, preventAnimation });\n this.showTimeout = null;\n } else {\n this.showTimeout = setTimeout(() => {\n this.onShowDialog(event, eventName);\n this.showTimeout = null;\n this.setState({ isOpen: true, preventAnimation });\n }, finalShowDelay);\n }\n }\n\n onShowDialog(event: DialogEvent, eventName: DialogTriggerEvent | string) {\n if (this.isShown()) return;\n const { onDialogDidShow } = this.props;\n onDialogDidShow(event, eventName);\n }\n\n showDialogIfNeeded(event: DialogEvent, eventName: DialogTriggerEvent | string, options = {}) {\n const { disable } = this.props;\n if (disable) {\n return;\n }\n\n if (this.hideTimeout) {\n clearTimeout(this.hideTimeout);\n this.hideTimeout = null;\n }\n\n if (!this.showTimeout) {\n this.showDialog(event, eventName, options);\n }\n }\n\n hideDialog(event: DialogEvent, eventName: DialogTriggerEvent | string) {\n const { hideDelay, instantShowAndHide } = this.props;\n if (instantShowAndHide) {\n this.onHideDialog(event, eventName);\n this.setState({ isOpen: false });\n this.hideTimeout = null;\n } else {\n this.hideTimeout = setTimeout(() => {\n this.onHideDialog(event, eventName);\n this.setState({ isOpen: false });\n this.hideTimeout = null;\n }, hideDelay);\n }\n }\n\n onHideDialog(event: DialogEvent, eventName: DialogTriggerEvent | string) {\n const { onDialogDidHide } = this.props;\n if (onDialogDidHide) onDialogDidHide(event, eventName);\n }\n\n hideDialogIfNeeded(event: DialogEvent, eventName: DialogTriggerEvent | string) {\n if (this.showTimeout) {\n clearTimeout(this.showTimeout);\n this.showTimeout = null;\n }\n\n if (this.hideTimeout) {\n return;\n }\n this.hideDialog(event, eventName);\n }\n\n handleEvent(eventName: DialogTriggerEvent, target: EventTarget, event: DialogEvent) {\n const { showTriggerIgnoreClass, hideTriggerIgnoreClass } = this.props;\n if (\n this.isShowTrigger(eventName) &&\n !this.isShown() &&\n !isInsideClass(target as HTMLElement, showTriggerIgnoreClass)\n ) {\n return this.showDialogIfNeeded(event, eventName);\n }\n\n if (this.isHideTrigger(eventName) && !isInsideClass(target as HTMLElement, hideTriggerIgnoreClass)) {\n return this.hideDialogIfNeeded(event, eventName);\n }\n }\n\n isShown() {\n const { isOpen } = this.state;\n const { open } = this.props;\n\n return isOpen || open;\n }\n\n isShowTrigger(eventName: DialogTriggerEvent) {\n const { showTrigger, addKeyboardHideShowTriggersByDefault } = this.props;\n const showTriggersArray = convertToArray(showTrigger);\n\n if (addKeyboardHideShowTriggersByDefault) {\n if (eventName === \"focus\" && showTriggersArray.indexOf(\"mouseenter\") > -1) {\n return true;\n }\n }\n\n return showTriggersArray.indexOf(eventName) > -1;\n }\n\n isHideTrigger(eventName: DialogTriggerEvent) {\n const { hideTrigger, addKeyboardHideShowTriggersByDefault } = this.props;\n const hideTriggersArray = convertToArray(hideTrigger);\n\n if (addKeyboardHideShowTriggersByDefault) {\n if (eventName === \"blur\" && hideTriggersArray.indexOf(\"mouseleave\") > -1) {\n return true;\n }\n }\n\n return hideTriggersArray.indexOf(eventName) > -1;\n }\n\n onMouseEnter(e: React.MouseEvent) {\n this.handleEvent(\"mouseenter\", e.target, e);\n }\n\n onMouseLeave(e: React.MouseEvent) {\n this.handleEvent(\"mouseleave\", e.target, e);\n }\n\n onClick(e: React.MouseEvent) {\n if (e.button) return;\n this.handleEvent(\"click\", e.target, e);\n }\n\n onKeyDown(event: React.KeyboardEvent) {\n if (event.key === \"Enter\") {\n this.handleEvent(\"enter\", event.target, event);\n }\n\n if (event.key === \"Tab\") {\n this.handleEvent(\"tab\", event.target, event);\n }\n }\n\n onMouseDown(e: React.MouseEvent) {\n if (e.button) return;\n this.handleEvent(\"mousedown\", e.target, e);\n }\n\n onFocus(e: React.FocusEvent) {\n this.handleEvent(\"focus\", e.target, e);\n }\n\n onBlur(e: React.FocusEvent) {\n this.handleEvent(\"blur\", e.relatedTarget, e);\n }\n\n onEsc(e: React.KeyboardEvent) {\n this.handleEvent(\"esckey\", e.target, e);\n }\n\n onContextMenu(e: React.MouseEvent) {\n const isShown = this.isShown();\n if ((this.isShowTrigger(\"contextmenu\") && !isShown) || (this.isHideTrigger(\"contextmenu\") && isShown)) {\n e.preventDefault();\n }\n this.handleEvent(\"contextmenu\", e.target, e);\n }\n\n onClickOutside(event: React.MouseEvent) {\n const { onClickOutside } = this.props;\n this.handleEvent(\"clickoutside\", event.target, event);\n onClickOutside(event);\n }\n\n onDialogEnter(event: React.MouseEvent) {\n const { showOnDialogEnter } = this.props;\n if (showOnDialogEnter) this.showDialogIfNeeded(event, \"DialogEnter\");\n }\n\n onDialogLeave(event: React.MouseEvent) {\n const { showOnDialogEnter } = this.props;\n if (showOnDialogEnter) this.hideDialogIfNeeded(event, \"DialogLeave\");\n }\n\n onContentClick(e: React.MouseEvent) {\n const { onContentClick } = this.props;\n this.handleEvent(\"onContentClick\", e.target, e);\n onContentClick(e);\n }\n\n render() {\n const {\n wrapperClassName,\n content,\n startingEdge,\n children,\n preventAnimationOnMount,\n animationType,\n position,\n showDelay,\n moveBy,\n modifiers,\n tooltip,\n tooltipClassName,\n referenceWrapperClassName,\n referenceWrapperElement,\n zIndex,\n hideWhenReferenceHidden,\n disableContainerScroll,\n containerSelector,\n observeContentResize,\n enableNestedDialogLayer,\n id,\n \"data-testid\": dataTestId\n } = this.props;\n const { preventAnimation } = this.state;\n const overrideDataTestId = dataTestId || getTestId(ComponentDefaultTestId.DIALOG, id);\n\n const animationTypeCalculated = preventAnimationOnMount || preventAnimation ? undefined : animationType;\n const contentRendered = isFunction(content) ? content() : content;\n\n if (!contentRendered) {\n return children;\n }\n return (\n <Manager>\n <Reference>\n {({ ref }) => {\n return (\n <Refable\n className={cx(referenceWrapperClassName)}\n wrapperElement={referenceWrapperElement}\n ref={ref}\n onBlur={chainOnPropsAndInstance(\"onBlur\", this, this.props)}\n onKeyDown={chainOnPropsAndInstance(\"onKeyDown\", this, this.props)}\n onClick={chainOnPropsAndInstance(\"onClick\", this, this.props)}\n onFocus={chainOnPropsAndInstance(\"onFocus\", this, this.props)}\n onMouseDown={chainOnPropsAndInstance(\"onMouseDown\", this, this.props)}\n onMouseEnter={chainOnPropsAndInstance(\"onMouseEnter\", this, this.props)}\n onMouseLeave={chainOnPropsAndInstance(\"onMouseLeave\", this, this.props)}\n onContextMenu={chainOnPropsAndInstance(\"onContextMenu\", this, this.props)}\n >\n {children}\n </Refable>\n );\n }}\n </Reference>\n {isClient() &&\n createPortal(\n <Popper\n placement={position as unknown as PopperJS.Placement}\n modifiers={[\n {\n name: \"offset\",\n options: {\n offset: [moveBy.secondary, moveBy.main]\n }\n },\n {\n name: \"zIndex\",\n enabled: true,\n phase: \"write\",\n fn({ state }) {\n if (zIndex) {\n state.styles.popper.zIndex = String(zIndex);\n }\n return state;\n }\n },\n {\n name: \"rotator\",\n enabled: true,\n phase: \"write\",\n fn({ state }) {\n if (!state.styles.arrow) {\n return state;\n }\n // const reg = new RegExp(\n // /translate\\(([0-9].*)px, ([0-9].*)px\\)/\n // );\n // const transform = state.styles.arrow.transform;\n // const res = reg.exec(transform);\n // state.styles.popper.transformOrigin = `${100 -\n // res[1]}% ${100 - res[2]}%`;\n state.styles.arrow.transform = `${state.styles.arrow.transform} rotate(45deg)`;\n return state;\n }\n },\n createObserveContentResizeModifier(observeContentResize),\n ...modifiers\n ]}\n >\n {({ placement, style, ref, arrowProps, isReferenceHidden }) => {\n if (!this.isShown() && placement) {\n return null;\n }\n\n if (hideWhenReferenceHidden && isReferenceHidden) {\n const event = new CustomEvent(\"onReferenceHidden\");\n this.hideDialog(event, \"onReferenceHidden\");\n }\n\n const mergedRef = chainRefFunctions([ref, this.containerRef]);\n\n const dialogContent = (\n <DialogContent\n data-testid={overrideDataTestId}\n isReferenceHidden={hideWhenReferenceHidden && isReferenceHidden}\n onMouseEnter={this.onDialogEnter}\n onMouseLeave={this.onDialogLeave}\n onClickOutside={this.onClickOutside}\n onContextMenu={this.onContextMenu}\n onEsc={this.onEsc}\n animationType={animationTypeCalculated}\n position={placement}\n wrapperClassName={wrapperClassName}\n startingEdge={startingEdge}\n isOpen={this.isShown()}\n showDelay={showDelay}\n styleObject={style}\n ref={mergedRef}\n onClick={this.onContentClick}\n hasTooltip={!!tooltip}\n containerSelector={containerSelector}\n disableContainerScroll={disableContainerScroll}\n >\n {contentRendered}\n {tooltip && (\n <div\n style={arrowProps.style}\n ref={arrowProps.ref}\n className={cx(styles.arrow, tooltipClassName)}\n data-placement={placement}\n />\n )}\n </DialogContent>\n );\n\n return enableNestedDialogLayer ? (\n <LayerProvider layerRef={this.containerRef}>{dialogContent}</LayerProvider>\n ) : (\n dialogContent\n );\n }}\n </Popper>,\n this.getContainer()\n )}\n </Manager>\n );\n }\n}\n\nfunction chainOnPropsAndInstance(name: string, instance: Dialog, props: DialogProps) {\n // @ts-ignore\n return chainFunctions([props[name], instance[name]], true);\n}\n\nDialog.contextType = LayerContext;\n"],"names":["Dialog","PureComponent","constructor","props","super","this","state","shouldUseDerivedStateFromProps","useDerivedStateFromProps","isOpen","shouldShowOnMount","containerRef","React","createRef","onMouseEnter","bind","onMouseLeave","onMouseDown","onClick","onFocus","onBlur","isShown","onEsc","onClickOutside","onDialogEnter","onDialogLeave","getContainer","onContentClick","onKeyDown","closeDialogOnEscape","onContextMenu","getDefaultContainer","hideTimeout","showTimeout","event","key","hideDialogIfNeeded","handleEvent","target","componentDidMount","shouldCallbackOnMount","onDialogDidShow","isClient","document","addEventListener","componentWillUnmount","removeEventListener","clearTimeout","getDerivedStateFromProps","nextProps","layerRef","context","current","body","containerSelector","containerElement","querySelector","Element","showDialog","eventName","options","showDelay","instantShowAndHide","getDynamicShowDelay","finalShowDelay","preventAnimation","dynamicDelayObj","onShowDialog","setState","setTimeout","showDialogIfNeeded","disable","hideDialog","hideDelay","onHideDialog","onDialogDidHide","showTriggerIgnoreClass","hideTriggerIgnoreClass","isShowTrigger","isInsideClass","isHideTrigger","open","showTrigger","addKeyboardHideShowTriggersByDefault","showTriggersArray","convertToArray","indexOf","hideTrigger","hideTriggersArray","e","button","relatedTarget","preventDefault","showOnDialogEnter","render","wrapperClassName","content","startingEdge","children","preventAnimationOnMount","animationType","position","moveBy","modifiers","tooltip","tooltipClassName","referenceWrapperClassName","referenceWrapperElement","zIndex","hideWhenReferenceHidden","disableContainerScroll","observeContentResize","enableNestedDialogLayer","id","dataTestId","overrideDataTestId","getTestId","ComponentDefaultTestId","DIALOG","animationTypeCalculated","undefined","contentRendered","isFunction","Manager","createElement","Reference","ref","Refable","className","cx","wrapperElement","chainOnPropsAndInstance","createPortal","Popper","placement","name","offset","secondary","main","enabled","phase","fn","styles","popper","String","arrow","transform","createObserveContentResizeModifier","style","arrowProps","isReferenceHidden","CustomEvent","mergedRef","chainRefFunctions","dialogContent","DialogContent","styleObject","hasTooltip","LayerProvider","instance","chainFunctions","defaultProps","NOOP","contextType","LayerContext"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var a={arrow:"arrow"};!function(a){const e="s_id-
|
|
1
|
+
var a={arrow:"arrow"};!function(a){const e="s_id-3fb64cda561a_3_0_11";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
|
|
@@ -1,60 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @deprecated
|
|
3
|
-
*/
|
|
4
|
-
export declare enum HideShowEvent {
|
|
5
|
-
CLICK = "click",
|
|
6
|
-
CLICK_OUTSIDE = "clickoutside",
|
|
7
|
-
ESCAPE_KEY = "esckey",
|
|
8
|
-
TAB_KEY = "tab",
|
|
9
|
-
MOUSE_ENTER = "mouseenter",
|
|
10
|
-
MOUSE_LEAVE = "mouseleave",
|
|
11
|
-
ENTER = "enter",
|
|
12
|
-
MOUSE_DOWN = "mousedown",
|
|
13
|
-
FOCUS = "focus",
|
|
14
|
-
BLUR = "blur",
|
|
15
|
-
CONTENT_CLICK = "onContentClick",
|
|
16
|
-
CONTEXT_MENU = "contextmenu"
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* @deprecated
|
|
20
|
-
*/
|
|
21
|
-
export declare enum AnimationType {
|
|
22
|
-
OPACITY_AND_SLIDE = "opacity-and-slide",
|
|
23
|
-
EXPAND = "expand"
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* @deprecated
|
|
27
|
-
*/
|
|
28
|
-
export declare enum DialogType {
|
|
29
|
-
MODAL = "modal",
|
|
30
|
-
POPOVER = "popover"
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* @deprecated
|
|
34
|
-
*/
|
|
35
|
-
export declare enum DialogSize {
|
|
36
|
-
NONE = "none",
|
|
37
|
-
SMALL = "small",
|
|
38
|
-
MEDIUM = "medium",
|
|
39
|
-
LARGE = "large"
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* @deprecated
|
|
43
|
-
*/
|
|
44
|
-
export declare enum DialogPosition {
|
|
45
|
-
LEFT = "left",
|
|
46
|
-
LEFT_START = "left-start",
|
|
47
|
-
LEFT_END = "left-end",
|
|
48
|
-
RIGHT = "right",
|
|
49
|
-
RIGHT_START = "right-start",
|
|
50
|
-
RIGHT_END = "right-end",
|
|
51
|
-
TOP = "top",
|
|
52
|
-
TOP_START = "top-start",
|
|
53
|
-
TOP_END = "top-end",
|
|
54
|
-
BOTTOM = "bottom",
|
|
55
|
-
BOTTOM_START = "bottom-start",
|
|
56
|
-
BOTTOM_END = "bottom-end"
|
|
57
|
-
}
|
|
58
1
|
export declare enum DialogPlacement {
|
|
59
2
|
RIGHT = "right",
|
|
60
3
|
RIGHT_START = "right-start",
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var t
|
|
1
|
+
var t;!function(t){t.RIGHT="right",t.RIGHT_START="right-start",t.RIGHT_END="right-end",t.LEFT="left",t.LEFT_START="left-start",t.LEFT_END="left-end"}(t||(t={}));export{t as DialogPlacement};
|
|
2
2
|
//# sourceMappingURL=DialogConstants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DialogConstants.js","sources":["../../../src/Dialog/DialogConstants.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"DialogConstants.js","sources":["../../../src/Dialog/DialogConstants.ts"],"sourcesContent":["export enum DialogPlacement {\n RIGHT = \"right\",\n RIGHT_START = \"right-start\",\n RIGHT_END = \"right-end\",\n LEFT = \"left\",\n LEFT_START = \"left-start\",\n LEFT_END = \"left-end\"\n}\n"],"names":["DialogPlacement"],"mappings":"IAAYA,GAAZ,SAAYA,GACVA,EAAA,MAAA,QACAA,EAAA,YAAA,cACAA,EAAA,UAAA,YACAA,EAAA,KAAA,OACAA,EAAA,WAAA,aACAA,EAAA,SAAA,UACD,CAPD,CAAYA,IAAAA,EAOX,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var t={contentWrapper:"contentWrapper",top:"top",right:"right",left:"left",bottom:"bottom",bottomStart:"bottomStart",topStart:"topStart",bottomEnd:"bottomEnd",topEnd:"topEnd",leftStart:"leftStart",rightStart:"rightStart",leftEnd:"leftEnd",rightEnd:"rightEnd",contentComponent:"contentComponent",hasTooltip:"hasTooltip",opacitySlideAppear:"opacitySlideAppear",opacitySlideAppearActive:"opacitySlideAppearActive",expandAppear:"expandAppear",expandExit:"expandExit",edgeBottom:"edgeBottom",edgeTop:"edgeTop",expandAppearActive:"expandAppearActive"};!function(t){const e="s_id-
|
|
1
|
+
var t={contentWrapper:"contentWrapper",top:"top",right:"right",left:"left",bottom:"bottom",bottomStart:"bottomStart",topStart:"topStart",bottomEnd:"bottomEnd",topEnd:"topEnd",leftStart:"leftStart",rightStart:"rightStart",leftEnd:"leftEnd",rightEnd:"rightEnd",contentComponent:"contentComponent",hasTooltip:"hasTooltip",opacitySlideAppear:"opacitySlideAppear",opacitySlideAppearActive:"opacitySlideAppearActive",expandAppear:"expandAppear",expandExit:"expandExit",edgeBottom:"edgeBottom",edgeTop:"edgeTop",expandAppearActive:"expandAppearActive"};!function(t){const e="s_id-ca4097b848ab_3_0_11";if("undefined"!=typeof document){const n=document.head||document.getElementsByTagName("head")[0];if(n.querySelector("#"+e))return;const p=document.createElement("style");p.id=e,n.firstChild?n.insertBefore(p,n.firstChild):n.appendChild(p),p.appendChild(document.createTextNode(t))}else globalThis.injectedStyles&&(globalThis.injectedStyles[e]=t)}("/* stylelint-disable */\n/* stylelint-enable */\n.contentWrapper {\n outline: 0;\n}\n.contentWrapper.top, .contentWrapper.right, .contentWrapper.left, .contentWrapper.bottom {\n padding: var(--spacing-xs);\n}\n.contentWrapper.bottomStart, .contentWrapper.topStart, .contentWrapper.bottomEnd, .contentWrapper.topEnd {\n padding-block: var(--spacing-xs);\n}\n.contentWrapper.bottomStart, .contentWrapper.topStart {\n padding-inline-end: var(--spacing-xs);\n}\n.contentWrapper.bottomEnd, .contentWrapper.topEnd {\n padding-inline-start: var(--spacing-xs);\n}\n.contentWrapper.leftStart, .contentWrapper.rightStart, .contentWrapper.leftEnd, .contentWrapper.rightEnd {\n padding-inline: var(--spacing-xs);\n}\n.contentWrapper.leftStart, .contentWrapper.rightStart {\n padding-block-end: var(--spacing-xs);\n}\n.contentWrapper.leftEnd, .contentWrapper.rightEnd {\n padding-block-start: var(--spacing-xs);\n}\n.contentWrapper[data-popper-reference-hidden=true] {\n visibility: hidden;\n pointer-events: none;\n}\n.contentComponent:focus {\n outline: none;\n}\n.contentComponent.hasTooltip {\n padding: 6px;\n}\n.opacitySlideAppear {\n opacity: 0;\n}\n.opacitySlideAppear.top {\n transform: translateY(var(--spacing-medium));\n}\n.opacitySlideAppear.right {\n transform: translateX(calc(var(--spacing-medium) * -1));\n}\n.opacitySlideAppear.bottom {\n transform: translateY(calc(var(--spacing-medium) * -1));\n}\n.opacitySlideAppear.left {\n transform: translateX(var(--spacing-medium));\n}\n.opacitySlideAppearActive {\n transition: opacity 0.2s ease, transform 0.2s ease-out;\n opacity: 1;\n pointer-events: none;\n}\n.opacitySlideAppearActive.top, .opacitySlideAppearActive.bottom {\n transform: translateY(0);\n}\n.opacitySlideAppearActive.right, .opacitySlideAppearActive.left {\n transform: translateX(0);\n}\n.expandAppear,\n.expandExit {\n transition: transform 0.1s cubic-bezier(0, 0, 0.35, 1);\n}\n.expandAppear.top, .expandAppear.topStart, .expandAppear.topEnd,\n.expandExit.top,\n.expandExit.topStart,\n.expandExit.topEnd {\n transform-origin: bottom center;\n transform: scale(0.8);\n}\n.expandAppear.top.edgeBottom, .expandAppear.topStart.edgeBottom, .expandAppear.topEnd.edgeBottom,\n.expandExit.top.edgeBottom,\n.expandExit.topStart.edgeBottom,\n.expandExit.topEnd.edgeBottom {\n transform-origin: bottom left;\n}\n.expandAppear.top.edgeTop, .expandAppear.topStart.edgeTop, .expandAppear.topEnd.edgeTop,\n.expandExit.top.edgeTop,\n.expandExit.topStart.edgeTop,\n.expandExit.topEnd.edgeTop {\n transform-origin: bottom right;\n}\n.expandAppear.right, .expandAppear.rightStart, .expandAppear.rightEnd,\n.expandExit.right,\n.expandExit.rightStart,\n.expandExit.rightEnd {\n transform-origin: left;\n transform: scale(0.8);\n}\n.expandAppear.right.edgeBottom, .expandAppear.rightStart.edgeBottom, .expandAppear.rightEnd.edgeBottom,\n.expandExit.right.edgeBottom,\n.expandExit.rightStart.edgeBottom,\n.expandExit.rightEnd.edgeBottom {\n transform-origin: top left;\n}\n.expandAppear.right.edgeTop, .expandAppear.rightStart.edgeTop, .expandAppear.rightEnd.edgeTop,\n.expandExit.right.edgeTop,\n.expandExit.rightStart.edgeTop,\n.expandExit.rightEnd.edgeTop {\n transform-origin: bottom left;\n}\n.expandAppear.bottom, .expandAppear.bottomStart, .expandAppear.bottomEnd,\n.expandExit.bottom,\n.expandExit.bottomStart,\n.expandExit.bottomEnd {\n transform-origin: top;\n transform: scale(0.8);\n}\n.expandAppear.bottom.edgeBottom, .expandAppear.bottomStart.edgeBottom, .expandAppear.bottomEnd.edgeBottom,\n.expandExit.bottom.edgeBottom,\n.expandExit.bottomStart.edgeBottom,\n.expandExit.bottomEnd.edgeBottom {\n transform-origin: top left;\n}\n.expandAppear.bottom.edgeTop, .expandAppear.bottomStart.edgeTop, .expandAppear.bottomEnd.edgeTop,\n.expandExit.bottom.edgeTop,\n.expandExit.bottomStart.edgeTop,\n.expandExit.bottomEnd.edgeTop {\n transform-origin: top right;\n}\n.expandAppear.left, .expandAppear.leftStart, .expandAppear.leftEnd,\n.expandExit.left,\n.expandExit.leftStart,\n.expandExit.leftEnd {\n transform-origin: right;\n transform: scale(0.8);\n}\n.expandAppear.left.edgeBottom, .expandAppear.leftStart.edgeBottom, .expandAppear.leftEnd.edgeBottom,\n.expandExit.left.edgeBottom,\n.expandExit.leftStart.edgeBottom,\n.expandExit.leftEnd.edgeBottom {\n transform-origin: top right;\n}\n.expandAppear.left.edgeTop, .expandAppear.leftStart.edgeTop, .expandAppear.leftEnd.edgeTop,\n.expandExit.left.edgeTop,\n.expandExit.leftStart.edgeTop,\n.expandExit.leftEnd.edgeTop {\n transform-origin: bottom right;\n}\n.expandExit {\n transition: transform 0.1s cubic-bezier(0, 0, 0.35, 1);\n}\n.expandAppearActive {\n transition: transform 0.1s cubic-bezier(0, 0, 0.35, 1);\n pointer-events: none;\n}\n.expandAppearActive.top, .expandAppearActive.topStart, .expandAppearActive.topEnd, .expandAppearActive.bottom, .expandAppearActive.bottomStart, .expandAppearActive.bottomEnd, .expandAppearActive.right, .expandAppearActive.rightStart, .expandAppearActive.rightEnd, .expandAppearActive.left, .expandAppearActive.leftStart, .expandAppearActive.leftEnd {\n transform: scale(1);\n}");export{t as default};
|
|
2
2
|
//# sourceMappingURL=DialogContent.module.scss.js.map
|
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
export { default as Dialog, type DialogProps } from "./Dialog";
|
|
2
|
-
export { HideShowEvent as DialogTriggerEventEnum, AnimationType as DialogAnimationTypeEnum, DialogPosition as DialogPositionEnum, DialogSize as DialogSizeEnum, DialogPlacement as DialogPlacementEnum } from "./DialogConstants";
|
|
3
2
|
export { default as usePopover } from "./usePopover";
|
|
4
3
|
export * from "./Dialog.types";
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { type VibeComponentProps } from "@vibe/shared";
|
|
3
|
-
import { DialogSize as DialogSizeEnum, DialogType as DialogTypeEnum } from "../Dialog/DialogConstants";
|
|
4
3
|
import { type DialogSize, type DialogType } from "../Dialog";
|
|
5
4
|
export interface DialogContentContainerProps extends VibeComponentProps {
|
|
6
5
|
/**
|
|
@@ -33,8 +32,5 @@ export interface DialogContentContainerProps extends VibeComponentProps {
|
|
|
33
32
|
*/
|
|
34
33
|
role?: string | null;
|
|
35
34
|
}
|
|
36
|
-
declare const
|
|
37
|
-
|
|
38
|
-
sizes: typeof DialogSizeEnum;
|
|
39
|
-
};
|
|
40
|
-
export default _default;
|
|
35
|
+
declare const DialogContentContainer: React.ForwardRefExoticComponent<DialogContentContainerProps & React.RefAttributes<HTMLElement>>;
|
|
36
|
+
export default DialogContentContainer;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__rest as e}from"../_virtual/_tslib.js";import{camelCase as a}from"es-toolkit";import t from"classnames";import i,{forwardRef as r,useRef as s}from"react";import{getTestId as l,ComponentDefaultTestId as o,useMergeRef as d,getStyle as m
|
|
1
|
+
import{__rest as e}from"../_virtual/_tslib.js";import{camelCase as a}from"es-toolkit";import t from"classnames";import i,{forwardRef as r,useRef as s}from"react";import{getTestId as l,ComponentDefaultTestId as o,useMergeRef as d,getStyle as m}from"@vibe/shared";import n from"./DialogContentContainer.module.scss.js";const b=r(((r,b)=>{var{id:c,className:p="",ariaLabelledby:y="",ariaDescribedby:f="",type:N="popover",size:u="small",children:v,style:C,role:g,"data-testid":D=l(o.DIALOG_CONTENT_CONTAINER,c)}=r,O=e(r,["id","className","ariaLabelledby","ariaDescribedby","type","size","children","style","role","data-testid"]);const _=s(null),h=d(b,_);return i.createElement("div",Object.assign({id:c,role:null===g?void 0:g||"dialog","data-testid":D,"aria-labelledby":y,"aria-describedby":f,ref:h,style:C,className:t(n.dialogContentContainer,p,m(n,a("type--"+N)),m(n,a("size--"+u)))},O),v)}));export{b as default};
|
|
2
2
|
//# sourceMappingURL=DialogContentContainer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DialogContentContainer.js","sources":["../../../src/DialogContentContainer/DialogContentContainer.tsx"],"sourcesContent":["import { camelCase } from \"es-toolkit\";\nimport cx from \"classnames\";\nimport React, { useRef, forwardRef } from \"react\";\nimport {
|
|
1
|
+
{"version":3,"file":"DialogContentContainer.js","sources":["../../../src/DialogContentContainer/DialogContentContainer.tsx"],"sourcesContent":["import { camelCase } from \"es-toolkit\";\nimport cx from \"classnames\";\nimport React, { useRef, forwardRef } from \"react\";\nimport { useMergeRef, type VibeComponentProps, ComponentDefaultTestId, getTestId, getStyle } from \"@vibe/shared\";\nimport { type DialogSize, type DialogType } from \"../Dialog\";\nimport styles from \"./DialogContentContainer.module.scss\";\n\nexport interface DialogContentContainerProps extends VibeComponentProps {\n /**\n * The content inside the dialog container.\n */\n children?: React.ReactNode;\n /**\n * The ID of the element that labels this dialog.\n */\n ariaLabelledby?: string;\n /**\n * The ID of the element that describes this dialog.\n */\n ariaDescribedby?: string;\n /**\n * The type of dialog.\n */\n type?: DialogType;\n /**\n * The size of the dialog.\n */\n size?: DialogSize;\n /**\n * Custom styles applied to the dialog container.\n */\n style?: React.CSSProperties;\n /**\n * The ARIA role applied to the dialog container.\n * Defaults to \"dialog\" when not provided. Pass `null` to remove the role attribute entirely.\n */\n role?: string | null;\n}\n\nconst DialogContentContainer = forwardRef(\n (\n {\n id,\n className = \"\",\n ariaLabelledby = \"\",\n ariaDescribedby = \"\",\n type = \"popover\",\n size = \"small\",\n children,\n style,\n role,\n \"data-testid\": dataTestId = getTestId(ComponentDefaultTestId.DIALOG_CONTENT_CONTAINER, id),\n ...props\n }: DialogContentContainerProps,\n ref: React.Ref<HTMLElement>\n ) => {\n const componentRef = useRef(null);\n const mergedRef = useMergeRef(ref, componentRef);\n\n const roleValue = role === null ? undefined : role || \"dialog\";\n\n return (\n <div\n id={id}\n role={roleValue}\n data-testid={dataTestId}\n aria-labelledby={ariaLabelledby}\n aria-describedby={ariaDescribedby}\n ref={mergedRef}\n style={style}\n className={cx(\n styles.dialogContentContainer,\n className,\n getStyle(styles, camelCase(\"type--\" + type)),\n getStyle(styles, camelCase(\"size--\" + size))\n )}\n {...props}\n >\n {children}\n </div>\n );\n }\n);\n\nexport default DialogContentContainer;\n"],"names":["DialogContentContainer","forwardRef","_a","ref","id","className","ariaLabelledby","ariaDescribedby","type","size","children","style","role","dataTestId","getTestId","ComponentDefaultTestId","DIALOG_CONTENT_CONTAINER","props","__rest","componentRef","useRef","mergedRef","useMergeRef","React","createElement","Object","assign","undefined","cx","styles","dialogContentContainer","getStyle","camelCase"],"mappings":"6TAuCMA,MAAAA,EAAyBC,GAC7B,CACEC,EAaAC,SAbAC,GACEA,EAAEC,UACFA,EAAY,GAAEC,eACdA,EAAiB,GAAEC,gBACnBA,EAAkB,GAAEC,KACpBA,EAAO,UAASC,KAChBA,EAAO,QAAOC,SACdA,EAAQC,MACRA,EAAKC,KACLA,EACA,cAAeC,EAAaC,EAAUC,EAAuBC,yBAA0BZ,MACpFa,EAXLC,EAAAhB,EAAA,CAAA,KAAA,YAAA,iBAAA,kBAAA,OAAA,OAAA,WAAA,QAAA,OAAA,gBAeA,MAAMiB,EAAeC,EAAO,MACtBC,EAAYC,EAAYnB,EAAKgB,GAInC,OACEI,EAAAC,cAAA,MAAAC,OAAAC,OAAA,CACEtB,GAAIA,EACJQ,KALuB,OAATA,OAAgBe,EAAYf,GAAQ,SAKnC,cACFC,EAAU,kBACNP,EACC,mBAAAC,EAClBJ,IAAKkB,EACLV,MAAOA,EACPN,UAAWuB,EACTC,EAAOC,uBACPzB,EACA0B,EAASF,EAAQG,EAAU,SAAWxB,IACtCuB,EAASF,EAAQG,EAAU,SAAWvB,MAEpCQ,GAEHP,EACG"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e={dialogContentContainer:"dialogContentContainer",sizeSmall:"sizeSmall",sizeMedium:"sizeMedium",sizeLarge:"sizeLarge",typePopover:"typePopover",typeModal:"typeModal"};!function(e){const n="s_id-
|
|
1
|
+
var e={dialogContentContainer:"dialogContentContainer",sizeSmall:"sizeSmall",sizeMedium:"sizeMedium",sizeLarge:"sizeLarge",typePopover:"typePopover",typeModal:"typeModal"};!function(e){const n="s_id-f752ec1c8102_3_0_11";if("undefined"!=typeof document){const o=document.head||document.getElementsByTagName("head")[0];if(o.querySelector("#"+n))return;const a=document.createElement("style");a.id=n,o.firstChild?o.insertBefore(a,o.firstChild):o.appendChild(a),a.appendChild(document.createTextNode(e))}else globalThis.injectedStyles&&(globalThis.injectedStyles[n]=e)}(".dialogContentContainer:focus {\n outline: none;\n}\n\n.sizeSmall {\n padding: var(--spacing-small);\n}\n\n.sizeMedium {\n padding: var(--spacing-medium);\n}\n\n.sizeLarge {\n padding: var(--spacing-large);\n}\n\n.typePopover {\n box-shadow: var(--box-shadow-medium);\n border-radius: var(--border-radius-medium);\n background-color: var(--secondary-background-color);\n}\n\n.dark-app-theme .typePopover, .black-app-theme .typePopover, .hacker-app-theme .typePopover {\n box-shadow: 0 0 0 1px var(--layout-border-color), var(--box-shadow-medium);\n}\n\n.typeModal {\n box-shadow: var(--box-shadow-large);\n border-radius: var(--border-radius-big);\n background-color: var(--primary-background-color);\n}");export{e as default};
|
|
2
2
|
//# sourceMappingURL=DialogContentContainer.module.scss.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{default as Dialog}from"./Dialog/Dialog.js";export{
|
|
1
|
+
export{default as Dialog}from"./Dialog/Dialog.js";export{default as usePopover}from"./Dialog/usePopover.js";export{default as DialogContentContainer}from"./DialogContentContainer/DialogContentContainer.js";
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vibe/dialog",
|
|
3
|
-
"version": "3.0
|
|
3
|
+
"version": "3.1.0",
|
|
4
4
|
"description": "Vibe sub-package for dialog components",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -39,9 +39,9 @@
|
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
41
|
"@popperjs/core": "2.11.6",
|
|
42
|
-
"@vibe/hooks": "3.0.
|
|
43
|
-
"@vibe/layer": "3.0.
|
|
44
|
-
"@vibe/shared": "3.0
|
|
42
|
+
"@vibe/hooks": "3.0.4",
|
|
43
|
+
"@vibe/layer": "3.0.11",
|
|
44
|
+
"@vibe/shared": "3.1.0",
|
|
45
45
|
"classnames": "^2.5.1",
|
|
46
46
|
"es-toolkit": "^1.39.10",
|
|
47
47
|
"react-popper": "^2.3.0",
|
|
@@ -74,5 +74,5 @@
|
|
|
74
74
|
"../../../node_modules/@vibe/config/.eslintrc.cjs"
|
|
75
75
|
]
|
|
76
76
|
},
|
|
77
|
-
"gitHead": "
|
|
77
|
+
"gitHead": "1e0ebec593676a7a3e8b4a965d688397a5f44c22"
|
|
78
78
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|