@contentful/f36-modal 4.15.0 → 4.17.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/CHANGELOG.md CHANGED
@@ -1,5 +1,39 @@
1
1
  # Change Log
2
2
 
3
+ ## 4.17.0
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies []:
8
+ - @contentful/f36-button@4.17.0
9
+ - @contentful/f36-icons@4.17.0
10
+ - @contentful/f36-typography@4.17.0
11
+ - @contentful/f36-core@4.17.0
12
+
13
+ ## 4.16.0
14
+
15
+ ### Minor Changes
16
+
17
+ - [#2175](https://github.com/contentful/forma-36/pull/2175) [`438ccb1d`](https://github.com/contentful/forma-36/commit/438ccb1d28e7e7d309b050d1d5510fc15dd1ffa6) Thanks [@maxcheremisin](https://github.com/maxcheremisin)! - Add 'overlayProps' to Modal component
18
+
19
+ ### Patch Changes
20
+
21
+ - Updated dependencies []:
22
+ - @contentful/f36-button@4.16.0
23
+ - @contentful/f36-icons@4.16.0
24
+ - @contentful/f36-typography@4.16.0
25
+ - @contentful/f36-core@4.16.0
26
+
27
+ ## 4.15.1
28
+
29
+ ### Patch Changes
30
+
31
+ - Updated dependencies []:
32
+ - @contentful/f36-button@4.15.1
33
+ - @contentful/f36-icons@4.15.1
34
+ - @contentful/f36-typography@4.15.1
35
+ - @contentful/f36-core@4.15.1
36
+
3
37
  ## 4.15.0
4
38
 
5
39
  ### Patch Changes
package/dist/main.js CHANGED
@@ -185,7 +185,7 @@ function $a1d799ea27882387$export$9af97f4b0b4c597a(props) {
185
185
  }), props.position === "center" ? /*#__PURE__*/ (0, $a6cQm$emotion.css)({
186
186
  name: "1qe4tyl",
187
187
  styles: "align-items:center;justify-content:center;"
188
- }) : null),
188
+ }) : null, props.overlayClassName),
189
189
  afterOpen: /*#__PURE__*/ (0, $a6cQm$emotion.css)({
190
190
  name: "whh5e5",
191
191
  styles: "opacity:1;"
@@ -218,6 +218,7 @@ function $854b6d713fe70fc9$var$focusFirstWithinNode(node) {
218
218
  }
219
219
  }
220
220
  const $854b6d713fe70fc9$export$2b77a92f1a5ad772 = ({ allowHeightOverflow: allowHeightOverflow = false , position: position = "center" , shouldCloseOnEscapePress: shouldCloseOnEscapePress = true , shouldCloseOnOverlayClick: shouldCloseOnOverlayClick = true , size: size = "medium" , testId: testId = "cf-ui-modal" , topOffset: topOffset = "50px" , aria: aria , ...otherProps })=>{
221
+ var ref2, ref1;
221
222
  const contentRef = $a6cQm$react.useRef(null);
222
223
  const props = {
223
224
  ...otherProps,
@@ -233,7 +234,8 @@ const $854b6d713fe70fc9$export$2b77a92f1a5ad772 = ({ allowHeightOverflow: allowH
233
234
  position: position,
234
235
  size: size,
235
236
  allowHeightOverflow: allowHeightOverflow,
236
- className: otherProps.className
237
+ className: otherProps.className,
238
+ overlayClassName: (ref2 = otherProps.overlayProps) === null || ref2 === void 0 ? void 0 : ref2.className
237
239
  });
238
240
  $a6cQm$react.useEffect(()=>{
239
241
  if (props.isShown) setTimeout(()=>{
@@ -266,7 +268,8 @@ const $854b6d713fe70fc9$export$2b77a92f1a5ad772 = ({ allowHeightOverflow: allowH
266
268
  style: {
267
269
  content: {
268
270
  top: position === "center" ? 0 : topOffset
269
- }
271
+ },
272
+ overlay: (ref1 = otherProps.overlayProps) === null || ref1 === void 0 ? void 0 : ref1.style
270
273
  },
271
274
  className: {
272
275
  base: styles.base.root,
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/components/modal/src/index.ts","packages/components/modal/src/CompoundModal.tsx","packages/components/modal/src/Modal.tsx","packages/components/modal/src/ModalHeader/ModalHeader.tsx","packages/components/modal/src/ModalHeader/ModalHeader.styles.ts","packages/components/modal/src/ModalContent/ModalContent.tsx","packages/components/modal/src/ModalContent/ModalContent.styles.ts","packages/components/modal/src/Modal.styles.ts","packages/components/modal/src/ModalControls/ModalControls.tsx","packages/components/modal/src/ModalConfirm/ModalConfirm.tsx","packages/components/modal/src/ModalLauncher/ModalLauncher.tsx"],"sourcesContent":["export { Modal } from './CompoundModal';\nexport type { ModalProps } from './Modal';\nexport { ModalConfirm } from './ModalConfirm/ModalConfirm';\nexport type { ModalConfirmProps } from './ModalConfirm/ModalConfirm';\nexport { ModalContent } from './ModalContent/ModalContent';\nexport type { ModalContentProps } from './ModalContent/ModalContent';\nexport { ModalControls } from './ModalControls/ModalControls';\nexport type { ModalControlsProps } from './ModalControls/ModalControls';\nexport { ModalHeader } from './ModalHeader/ModalHeader';\nexport type { ModalHeaderProps } from './ModalHeader/ModalHeader';\nexport { ModalLauncher } from './ModalLauncher/ModalLauncher';\n","import { Modal as OriginalModal } from './Modal';\nimport { ModalContent } from './ModalContent/ModalContent';\nimport { ModalHeader } from './ModalHeader/ModalHeader';\nimport { ModalControls } from './ModalControls/ModalControls';\n\ntype CompoundModal = typeof OriginalModal & {\n Content: typeof ModalContent;\n Header: typeof ModalHeader;\n Controls: typeof ModalControls;\n};\n\nexport const Modal = OriginalModal as CompoundModal;\nModal.Content = ModalContent;\nModal.Header = ModalHeader;\nModal.Controls = ModalControls;\n","import * as React from 'react';\nimport ReactModal from 'react-modal';\n\nimport { Box } from '@contentful/f36-core';\nimport type { CommonProps, ExpandProps } from '@contentful/f36-core';\n\nimport { ModalHeader, ModalHeaderProps } from './ModalHeader/ModalHeader';\nimport { ModalContent, ModalContentProps } from './ModalContent/ModalContent';\nimport { getModalStyles } from './Modal.styles';\nimport type { ModalSizeType, ModalPositionType } from './types';\n\nconst ModalSizesMapper: { [key in ModalSizeType]: string } = {\n medium: '520px',\n small: '400px',\n large: '700px',\n fullWidth: '100vw',\n zen: '100vw',\n};\n\nexport interface ModalProps extends CommonProps {\n /**\n * When true, the dialog is shown.\n */\n isShown: boolean;\n\n /**\n * Function that will be run when the modal is requested to be closed, prior to actually closing.\n */\n onClose: ReactModal.Props['onRequestClose'];\n\n /**\n * Function that will be run after the modal has opened.\n */\n onAfterOpen?: ReactModal.Props['onAfterOpen'];\n\n /**\n * Additional aria attributes\n */\n aria?: ReactModal.Props['aria'];\n\n /**\n * Boolean indicating if clicking the overlay should close the overlay.\n * @default true\n */\n shouldCloseOnOverlayClick?: boolean;\n /**\n * Boolean indicating if pressing the esc key should close the overlay.\n * @default true\n */\n shouldCloseOnEscapePress?: boolean;\n /**\n * Indicating if modal is centered or linked to the top\n * @default center\n */\n position?: ModalPositionType;\n /**\n * Top offset if position is 'top'\n * @default 50px\n */\n topOffset?: number | string;\n /**\n * Modal title that is used in header\n */\n title?: string;\n /**\n * Size of the modal window\n * @default medium\n */\n size?: ModalSizeType | string | number;\n /**\n * Are modals higher than viewport allowed\n * @default false\n */\n allowHeightOverflow?: boolean;\n\n /**\n * Optional props to override ModalHeader behaviour\n */\n modalHeaderProps?: Partial<ModalHeaderProps>;\n\n /**\n * Optional props to override ModalContent behaviour\n */\n modalContentProps?: Partial<ModalContentProps>;\n\n /**\n * Optional property to set initial focus\n */\n initialFocusRef?: React.RefObject<HTMLElement>;\n\n children: React.ReactNode | RenderModal;\n}\n\ntype RenderModal = (modalProps: ModalProps) => React.ReactNode;\n\nfunction focusFirstWithinNode(node: HTMLElement) {\n if (node && node.querySelectorAll) {\n const elements = node.querySelectorAll('input, button');\n if (elements.length > 0) {\n const firstElement = elements[0];\n // @ts-expect-error focus might be missing\n if (typeof firstElement.focus === 'function') {\n // @ts-expect-error focus might be missing\n firstElement.focus();\n }\n }\n }\n}\n\nexport const Modal = ({\n allowHeightOverflow = false,\n position = 'center',\n shouldCloseOnEscapePress = true,\n shouldCloseOnOverlayClick = true,\n size = 'medium',\n testId = 'cf-ui-modal',\n topOffset = '50px',\n aria,\n ...otherProps\n}: ExpandProps<ModalProps>) => {\n const contentRef = React.useRef<HTMLDivElement>(null);\n\n const props = {\n ...otherProps,\n allowHeightOverflow,\n position,\n shouldCloseOnEscapePress,\n shouldCloseOnOverlayClick,\n size,\n testId,\n topOffset,\n };\n\n const styles = getModalStyles({\n position,\n size,\n allowHeightOverflow,\n className: otherProps.className,\n });\n\n React.useEffect(() => {\n if (props.isShown) {\n setTimeout(() => {\n if (props.initialFocusRef && props.initialFocusRef.current) {\n if (props.initialFocusRef.current.focus) {\n props.initialFocusRef.current.focus();\n }\n } else if (contentRef.current) {\n focusFirstWithinNode(contentRef.current);\n }\n }, 100);\n }\n }, [props.isShown, props.initialFocusRef]);\n\n const renderDefault = () => {\n return (\n <>\n {otherProps.title && (\n <ModalHeader\n title={otherProps.title}\n onClose={props.onClose}\n {...otherProps.modalHeaderProps}\n />\n )}\n <ModalContent {...otherProps.modalContentProps}>\n {otherProps.children}\n </ModalContent>\n </>\n );\n };\n\n return (\n <ReactModal\n ariaHideApp={false}\n aria={aria}\n onRequestClose={props.onClose}\n isOpen={otherProps.isShown}\n onAfterOpen={props.onAfterOpen}\n shouldCloseOnEsc={shouldCloseOnEscapePress}\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\n shouldFocusAfterRender\n shouldReturnFocusAfterClose\n portalClassName={styles.portal}\n style={{\n content: {\n top: position === 'center' ? 0 : topOffset,\n },\n }}\n className={{\n base: styles.base.root,\n afterOpen: styles.base.afterOpen,\n beforeClose: styles.base.beforeClose,\n }}\n overlayClassName={{\n base: styles.modalOverlay.root,\n afterOpen: styles.modalOverlay.afterOpen,\n beforeClose: styles.modalOverlay.beforeClose,\n }}\n closeTimeoutMS={200}\n contentRef={(ref) => {\n contentRef.current = ref;\n }}\n >\n <Box\n testId={testId}\n style={{\n width: ModalSizesMapper[size] || size,\n }}\n className={styles.modal}\n data-modal-root\n >\n {typeof otherProps.children === 'function'\n ? otherProps.children(props)\n : renderDefault()}\n </Box>\n </ReactModal>\n );\n};\n\nModal.displayName = 'Modal';\n","import React from 'react';\nimport { cx } from 'emotion';\nimport { CloseIcon } from '@contentful/f36-icons';\nimport { Flex } from '@contentful/f36-core';\nimport type { PropsWithHTMLElement, CommonProps } from '@contentful/f36-core';\nimport { Button } from '@contentful/f36-button';\nimport { Subheading } from '@contentful/f36-typography';\n\nimport { getModalHeaderStyles } from './ModalHeader.styles';\n\ninterface ModalHeaderInternalProps extends CommonProps {\n title: string;\n onClose?: Function;\n}\n\nexport type ModalHeaderProps = PropsWithHTMLElement<\n ModalHeaderInternalProps,\n 'div'\n>;\n\nexport const ModalHeader = ({\n onClose,\n title,\n testId = 'cf-ui-modal-header',\n className,\n ...otherProps\n}: ModalHeaderProps): React.ReactElement => {\n const styles = getModalHeaderStyles();\n\n return (\n <Flex\n {...otherProps}\n className={cx(styles.root, className)}\n testId={testId}\n alignItems=\"center\"\n justifyContent=\"space-between\"\n >\n <Subheading as=\"h2\" isTruncated marginBottom=\"none\">\n {title}\n </Subheading>\n {onClose && (\n <Flex alignItems=\"center\" className={styles.buttonContainer}>\n <Button\n variant=\"transparent\"\n aria-label=\"Close\"\n startIcon={<CloseIcon size=\"small\" />}\n onClick={() => {\n onClose();\n }}\n size=\"small\"\n />\n </Flex>\n )}\n </Flex>\n );\n};\n\nModalHeader.displayName = 'ModalHeader';\n","import tokens from '@contentful/f36-tokens';\nimport { css } from 'emotion';\n\nexport function getModalHeaderStyles() {\n return {\n root: css({\n position: 'relative',\n padding: `${tokens.spacingM} ${tokens.spacingM} ${tokens.spacingM} ${tokens.spacingL}`,\n borderRadius: `${tokens.borderRadiusMedium} ${tokens.borderRadiusMedium} 0 0`,\n borderBottom: `1px solid ${tokens.gray300}`,\n }),\n buttonContainer: css({\n position: 'relative',\n width: tokens.spacing2Xl,\n height: tokens.spacingL,\n button: {\n position: 'absolute',\n top: `calc(-1 * ${tokens.spacing2Xs})`,\n right: 0,\n },\n }),\n };\n}\n","import React from 'react';\nimport { cx } from 'emotion';\nimport type { PropsWithHTMLElement, CommonProps } from '@contentful/f36-core';\nimport { Box } from '@contentful/f36-core';\nimport { getModalContentStyles } from './ModalContent.styles';\n\ninterface ModalContentInternalProps extends CommonProps {\n children: React.ReactNode;\n}\n\nexport type ModalContentProps = PropsWithHTMLElement<\n ModalContentInternalProps,\n 'div'\n>;\n\nexport const ModalContent = ({\n testId = 'cf-ui-modal-content',\n className,\n children,\n ...otherProps\n}: ModalContentProps) => {\n const styles = getModalContentStyles();\n return (\n <Box\n {...otherProps}\n as=\"div\"\n className={cx(styles.root, className)}\n testId={testId}\n >\n {children}\n </Box>\n );\n};\n\nModalContent.displayName = 'ModalContent';\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport function getModalContentStyles() {\n return {\n root: css({\n padding: `${tokens.spacingM} ${tokens.spacingL}`,\n color: tokens.gray700,\n fontSize: tokens.fontSizeM,\n fontFamily: tokens.fontStackPrimary,\n lineHeight: tokens.lineHeightM,\n overflowY: 'auto',\n overflowX: 'auto',\n boxSizing: 'border-box',\n }),\n };\n}\n","import tokens from '@contentful/f36-tokens';\nimport { css, cx } from 'emotion';\n\nimport type { ModalProps } from './Modal';\n\nexport function getModalStyles(props: {\n size: ModalProps['size'];\n position: ModalProps['position'];\n allowHeightOverflow?: boolean;\n className?: string;\n}) {\n const modal = cx(\n css({\n margin: tokens.spacing2Xl,\n backgroundColor: tokens.colorWhite,\n borderRadius: props.size === 'zen' ? 0 : tokens.borderRadiusMedium,\n boxShadow: tokens.boxShadowHeavy,\n maxHeight: `calc(100vh - 1rem * (100 / ${tokens.fontBaseDefault}))`,\n maxWidth: `calc(100vw - 1rem * (100 / ${tokens.fontBaseDefault}))`,\n overflow: 'hidden',\n display: 'flex',\n flexDirection: 'column',\n }),\n props.allowHeightOverflow\n ? css({\n overflow: 'auto',\n maxHeight: 'none',\n })\n : null,\n props.size === 'zen'\n ? css({\n maxWidth: 'none',\n maxHeight: 'none',\n margin: 0,\n height: '100%',\n width: '100%',\n })\n : null,\n props.className,\n );\n\n return {\n portal: css({\n display: 'block',\n }),\n base: {\n root: cx(\n css({\n zIndex: tokens.zIndexModalContent,\n position: 'relative',\n padding: 0,\n display: 'inline-block',\n margin: '0 auto',\n textAlign: 'left',\n outline: 'none',\n transform: props.size === 'zen' ? 'scale(1)' : 'scale(0.85)',\n transition: `transform ${tokens.transitionDurationDefault} ${tokens.transitionEasingDefault}`,\n }),\n props.size === 'zen'\n ? css({\n width: '100%',\n height: '100%',\n })\n : null,\n ),\n afterOpen: css({\n transform: 'scale(1) !important',\n }),\n beforeClose: css({\n transform: props.size === 'zen' ? 'scale(1)' : 'scale(0.85)',\n }),\n },\n modalOverlay: {\n root: cx(\n css({\n display: 'flex',\n alignItems: 'baseline',\n flexWrap: 'wrap',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n zIndex: tokens.zIndexModal,\n opacity: 0,\n transition: `opacity ${tokens.transitionDurationDefault} ${tokens.transitionEasingDefault}`,\n position: 'fixed',\n overflowY: 'auto',\n backgroundColor: 'rgba(12, 20, 28, 0.74902)',\n textAlign: 'center',\n }),\n props.position === 'center'\n ? css({\n alignItems: 'center',\n justifyContent: 'center',\n })\n : null,\n ),\n afterOpen: css({\n opacity: 1,\n }),\n beforeClose: css({\n opacity: 0,\n }),\n },\n modal,\n };\n}\n","import React from 'react';\n\nimport type { PropsWithHTMLElement, CommonProps } from '@contentful/f36-core';\nimport { Flex } from '@contentful/f36-core';\nimport { ButtonGroup } from '@contentful/f36-button';\n\ninterface ModalControlsInternalProps extends CommonProps {\n children: React.ReactElement[] | React.ReactElement;\n}\n\nexport type ModalControlsProps = PropsWithHTMLElement<\n ModalControlsInternalProps,\n 'div'\n>;\n\nexport const ModalControls = ({\n testId = 'cf-ui-modal-controls',\n className,\n children,\n ...otherProps\n}: ModalControlsProps): React.ReactElement => {\n return (\n <Flex\n {...otherProps}\n className={className}\n testId={testId}\n flexDirection=\"row\"\n justifyContent=\"flex-end\"\n margin=\"spacingL\"\n marginTop=\"none\"\n >\n <ButtonGroup variant=\"spaced\" spacing=\"spacingS\">\n {children}\n </ButtonGroup>\n </Flex>\n );\n};\n\nModalControls.displayName = 'ModalControls';\n","import React from 'react';\n\nimport { Modal } from '../CompoundModal';\nimport type { ModalProps } from '../Modal';\nimport type { ModalHeaderProps } from '../ModalHeader/ModalHeader';\nimport type { ModalContentProps } from '../ModalContent/ModalContent';\nimport type { ModalControlsProps } from '../ModalControls/ModalControls';\nimport { Button } from '@contentful/f36-button';\n\nexport interface ModalConfirmProps {\n /**\n * When true, the dialog is shown.\n */\n isShown: boolean;\n /**\n * Function that will be called when the confirm button is clicked. This does not close the ModalConfirm.\n */\n onConfirm(): void;\n /**\n * Function that will be called when the cancel button is clicked. This does not close the ModalConfirm.\n */\n onCancel: ModalProps['onClose'];\n /**\n Modal title that is used in header\n */\n title?: string;\n /**\n * Label of the confirm button\n */\n confirmLabel?: string | false;\n /**\n * Label of the cancel button\n */\n cancelLabel?: string | false;\n /**\n * The intent of the ModalConfirm. Used for the Button.\n */\n intent?: 'primary' | 'positive' | 'negative';\n /**\n * Size of the modal window\n */\n size?: ModalProps['size'];\n /**\n * Boolean indicating if clicking the overlay should close the overlay.\n */\n shouldCloseOnOverlayClick?: boolean;\n /**\n * Boolean indicating if pressing the esc key should close the overlay.\n */\n shouldCloseOnEscapePress?: boolean;\n /**\n * When true, the confirm button is set to disabled.\n */\n isConfirmDisabled?: boolean;\n /**\n * When true, the confirm button is set to loading.\n */\n isConfirmLoading?: boolean;\n /**\n * Are modals higher than viewport allowed\n */\n allowHeightOverflow?: boolean;\n\n /**\n * Optional props to override ModalHeader behaviour\n */\n modalHeaderProps?: Partial<ModalHeaderProps>;\n\n /**\n * Optional props to override ModalContent behaviour\n */\n modalContentProps?: Partial<ModalContentProps>;\n\n /**\n * Optional props to override ModalControl behaviour\n */\n modalControlsProps?: Partial<ModalControlsProps>;\n\n /**\n * Optional property to set initial focus\n */\n initialFocusRef?: React.RefObject<HTMLElement>;\n\n testId?: string;\n confirmTestId?: string;\n cancelTestId?: string;\n children: React.ReactNode;\n}\n\nexport const ModalConfirm = ({\n allowHeightOverflow = false,\n cancelLabel = 'Cancel',\n cancelTestId = 'cf-ui-modal-confirm-cancel-button',\n children,\n confirmLabel = 'Confirm',\n confirmTestId = 'cf-ui-modal-confirm-confirm-button',\n intent = 'positive',\n isConfirmDisabled = false,\n isConfirmLoading = false,\n isShown,\n modalContentProps,\n modalControlsProps,\n modalHeaderProps,\n onCancel,\n onConfirm,\n shouldCloseOnEscapePress = true,\n shouldCloseOnOverlayClick = true,\n size = 'medium',\n testId = 'cf-ui-modal-confirm',\n title = 'Are you sure?',\n initialFocusRef,\n}: ModalConfirmProps) => {\n const cancelRef = React.useRef(null);\n\n const confirmButton = confirmLabel ? (\n <Button\n testId={confirmTestId}\n isDisabled={isConfirmDisabled}\n isLoading={isConfirmLoading}\n variant={intent}\n size=\"small\"\n onClick={() => onConfirm()}\n >\n {confirmLabel}\n </Button>\n ) : null;\n\n const cancelButton = cancelLabel ? (\n <Button\n testId={cancelTestId}\n variant=\"secondary\"\n onClick={onCancel}\n size=\"small\"\n ref={initialFocusRef || cancelRef}\n >\n {cancelLabel}\n </Button>\n ) : null;\n\n return (\n <Modal\n testId={testId}\n isShown={isShown}\n onClose={onCancel}\n size={size}\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\n shouldCloseOnEscapePress={shouldCloseOnEscapePress}\n allowHeightOverflow={allowHeightOverflow}\n initialFocusRef={cancelRef}\n >\n {() => {\n return (\n <React.Fragment>\n <Modal.Header title={title || ''} {...modalHeaderProps} />\n <Modal.Content {...modalContentProps}>{children}</Modal.Content>\n <Modal.Controls {...modalControlsProps}>\n {cancelButton}\n {confirmButton}\n </Modal.Controls>\n </React.Fragment>\n );\n }}\n </Modal>\n );\n};\n\nModalConfirm.displayName = 'ModalConfirm';\n","/* global Promise */\nimport ReactDOM from 'react-dom';\n\n// @todo: change any to unknown\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ninterface ModalLauncherComponentRendererProps<T = any> {\n isShown: boolean;\n onClose: (result?: T) => void;\n}\n\ninterface ModalLauncherOpenOptions {\n /**\n * Unique id to be used as identifier for the modal contianer\n */\n modalId?: string;\n /**\n * ms before removing the component from the tree\n * @default 300\n */\n delay?: number;\n}\n\ninterface CloseModalData {\n delay: number;\n render: (args: ModalLauncherComponentRendererProps<any>) => void;\n currentConfig: ModalLauncherComponentRendererProps<any>;\n}\n\nconst getRoot = (rootElId: string): HTMLElement => {\n // Reuse the container if we find it\n let rootDom = document.getElementById(rootElId);\n if (rootDom !== null) {\n return rootDom;\n }\n\n // Otherwise create it\n rootDom = document.createElement('div');\n rootDom.setAttribute('id', rootElId);\n document.body.appendChild(rootDom);\n return rootDom;\n};\n\nconst openModalsIds: Map<string, CloseModalData> = new Map();\nfunction closeAll() {\n openModalsIds.forEach(async ({ render, currentConfig, delay }, rootElId) => {\n const config = { ...currentConfig, isShown: false };\n render(config);\n await new Promise((resolveDelay) => setTimeout(resolveDelay, delay));\n ReactDOM.unmountComponentAtNode(getRoot(rootElId));\n openModalsIds.delete(rootElId);\n });\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction open<T = any>(\n componentRenderer: (\n props: ModalLauncherComponentRendererProps<T>,\n ) => JSX.Element,\n options: ModalLauncherOpenOptions = {},\n): Promise<T> {\n options = { delay: 300, ...options };\n\n // Allow components to specify if they wish to reuse the modal container\n const rootElId = `modals-root${options.modalId || Date.now()}`;\n const rootDom = getRoot(rootElId);\n\n return new Promise((resolve) => {\n let currentConfig = { onClose, isShown: true };\n\n function render({\n onClose,\n isShown,\n }: ModalLauncherComponentRendererProps<T>) {\n ReactDOM.render(componentRenderer({ onClose, isShown }), rootDom);\n }\n\n async function onClose(arg?: T) {\n currentConfig = {\n ...currentConfig,\n isShown: false,\n };\n render(currentConfig);\n await new Promise((resolveDelay) =>\n setTimeout(resolveDelay, options.delay),\n );\n ReactDOM.unmountComponentAtNode(rootDom);\n rootDom.remove();\n openModalsIds.delete(rootElId);\n resolve(arg);\n }\n\n render(currentConfig);\n openModalsIds.set(rootElId, {\n render,\n currentConfig,\n delay: options.delay,\n });\n });\n}\n\nexport const ModalLauncher = {\n open,\n closeAll,\n};\n"],"names":["Modal","ModalProps","ModalConfirm","ModalConfirmProps","ModalContent","ModalContentProps","ModalControls","ModalControlsProps","ModalHeader","ModalHeaderProps","ModalLauncher","OriginalModal","CompoundModal","Content","Header","Controls","React","ReactModal","Box","CommonProps","ExpandProps","getModalStyles","ModalSizeType","ModalPositionType","ModalSizesMapper","medium","small","large","fullWidth","zen","isShown","onClose","Props","onAfterOpen","aria","shouldCloseOnOverlayClick","shouldCloseOnEscapePress","position","topOffset","title","size","allowHeightOverflow","modalHeaderProps","Partial","modalContentProps","initialFocusRef","RefObject","HTMLElement","children","ReactNode","RenderModal","modalProps","focusFirstWithinNode","node","querySelectorAll","elements","length","firstElement","focus","testId","otherProps","contentRef","useRef","HTMLDivElement","props","styles","className","useEffect","setTimeout","current","renderDefault","portal","content","top","base","root","afterOpen","beforeClose","modalOverlay","ref","width","modal","displayName","CloseIcon","Flex","PropsWithHTMLElement","Button","Subheading","getModalHeaderStyles","ModalHeaderInternalProps","Function","ReactElement","buttonContainer","tokens","padding","spacingM","spacingL","borderRadius","borderRadiusMedium","borderBottom","gray300","spacing2Xl","height","button","spacing2Xs","right","getModalContentStyles","ModalContentInternalProps","color","gray700","fontSize","fontSizeM","fontFamily","fontStackPrimary","lineHeight","lineHeightM","overflowY","overflowX","boxSizing","margin","backgroundColor","colorWhite","boxShadow","boxShadowHeavy","maxHeight","fontBaseDefault","maxWidth","overflow","display","flexDirection","zIndex","zIndexModalContent","textAlign","outline","transform","transition","transitionDurationDefault","transitionEasingDefault","alignItems","flexWrap","bottom","left","zIndexModal","opacity","ButtonGroup","ModalControlsInternalProps","onConfirm","onCancel","confirmLabel","cancelLabel","intent","isConfirmDisabled","isConfirmLoading","modalControlsProps","confirmTestId","cancelTestId","cancelRef","confirmButton","cancelButton","ReactDOM","ModalLauncherComponentRendererProps","result","T","ModalLauncherOpenOptions","modalId","delay","CloseModalData","render","args","currentConfig","getRoot","rootElId","rootDom","document","getElementById","createElement","setAttribute","body","appendChild","openModalsIds","Map","closeAll","forEach","config","Promise","resolveDelay","unmountComponentAtNode","delete","open","componentRenderer","JSX","Element","options","Date","now","resolve","arg","remove","set"],"version":3,"file":"main.js.map"}
1
+ {"mappings":"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","sources":["packages/components/modal/src/index.ts","packages/components/modal/src/CompoundModal.tsx","packages/components/modal/src/Modal.tsx","packages/components/modal/src/ModalHeader/ModalHeader.tsx","packages/components/modal/src/ModalHeader/ModalHeader.styles.ts","packages/components/modal/src/ModalContent/ModalContent.tsx","packages/components/modal/src/ModalContent/ModalContent.styles.ts","packages/components/modal/src/Modal.styles.ts","packages/components/modal/src/ModalControls/ModalControls.tsx","packages/components/modal/src/ModalConfirm/ModalConfirm.tsx","packages/components/modal/src/ModalLauncher/ModalLauncher.tsx"],"sourcesContent":["export { Modal } from './CompoundModal';\nexport type { ModalProps } from './Modal';\nexport { ModalConfirm } from './ModalConfirm/ModalConfirm';\nexport type { ModalConfirmProps } from './ModalConfirm/ModalConfirm';\nexport { ModalContent } from './ModalContent/ModalContent';\nexport type { ModalContentProps } from './ModalContent/ModalContent';\nexport { ModalControls } from './ModalControls/ModalControls';\nexport type { ModalControlsProps } from './ModalControls/ModalControls';\nexport { ModalHeader } from './ModalHeader/ModalHeader';\nexport type { ModalHeaderProps } from './ModalHeader/ModalHeader';\nexport { ModalLauncher } from './ModalLauncher/ModalLauncher';\n","import { Modal as OriginalModal } from './Modal';\nimport { ModalContent } from './ModalContent/ModalContent';\nimport { ModalHeader } from './ModalHeader/ModalHeader';\nimport { ModalControls } from './ModalControls/ModalControls';\n\ntype CompoundModal = typeof OriginalModal & {\n Content: typeof ModalContent;\n Header: typeof ModalHeader;\n Controls: typeof ModalControls;\n};\n\nexport const Modal = OriginalModal as CompoundModal;\nModal.Content = ModalContent;\nModal.Header = ModalHeader;\nModal.Controls = ModalControls;\n","import * as React from 'react';\nimport ReactModal from 'react-modal';\n\nimport { Box, type CommonProps, type ExpandProps } from '@contentful/f36-core';\n\nimport { ModalHeader, ModalHeaderProps } from './ModalHeader/ModalHeader';\nimport { ModalContent, ModalContentProps } from './ModalContent/ModalContent';\nimport { getModalStyles } from './Modal.styles';\nimport type { ModalSizeType, ModalPositionType } from './types';\n\nconst ModalSizesMapper: { [key in ModalSizeType]: string } = {\n medium: '520px',\n small: '400px',\n large: '700px',\n fullWidth: '100vw',\n zen: '100vw',\n};\n\nexport interface ModalProps extends CommonProps {\n /**\n * When true, the dialog is shown.\n */\n isShown: boolean;\n\n /**\n * Function that will be run when the modal is requested to be closed, prior to actually closing.\n */\n onClose: ReactModal.Props['onRequestClose'];\n\n /**\n * Function that will be run after the modal has opened.\n */\n onAfterOpen?: ReactModal.Props['onAfterOpen'];\n\n /**\n * Additional aria attributes\n */\n aria?: ReactModal.Props['aria'];\n\n /**\n * Boolean indicating if clicking the overlay should close the overlay.\n * @default true\n */\n shouldCloseOnOverlayClick?: boolean;\n /**\n * Boolean indicating if pressing the esc key should close the overlay.\n * @default true\n */\n shouldCloseOnEscapePress?: boolean;\n /**\n * Indicating if modal is centered or linked to the top\n * @default center\n */\n position?: ModalPositionType;\n /**\n * Top offset if position is 'top'\n * @default 50px\n */\n topOffset?: number | string;\n /**\n * Modal title that is used in header\n */\n title?: string;\n /**\n * Size of the modal window\n * @default medium\n */\n size?: ModalSizeType | string | number;\n /**\n * Are modals higher than viewport allowed\n * @default false\n */\n allowHeightOverflow?: boolean;\n\n /**\n * Optional props to override overlay behaviour\n */\n overlayProps?: Pick<CommonProps, 'className' | 'style'>;\n\n /**\n * Optional props to override ModalHeader behaviour\n */\n modalHeaderProps?: Partial<ModalHeaderProps>;\n\n /**\n * Optional props to override ModalContent behaviour\n */\n modalContentProps?: Partial<ModalContentProps>;\n\n /**\n * Optional property to set initial focus\n */\n initialFocusRef?: React.RefObject<HTMLElement>;\n\n children: React.ReactNode | RenderModal;\n}\n\ntype RenderModal = (modalProps: ModalProps) => React.ReactNode;\n\nfunction focusFirstWithinNode(node: HTMLElement) {\n if (node && node.querySelectorAll) {\n const elements = node.querySelectorAll('input, button');\n if (elements.length > 0) {\n const firstElement = elements[0];\n // @ts-expect-error focus might be missing\n if (typeof firstElement.focus === 'function') {\n // @ts-expect-error focus might be missing\n firstElement.focus();\n }\n }\n }\n}\n\nexport const Modal = ({\n allowHeightOverflow = false,\n position = 'center',\n shouldCloseOnEscapePress = true,\n shouldCloseOnOverlayClick = true,\n size = 'medium',\n testId = 'cf-ui-modal',\n topOffset = '50px',\n aria,\n ...otherProps\n}: ExpandProps<ModalProps>) => {\n const contentRef = React.useRef<HTMLDivElement>(null);\n\n const props = {\n ...otherProps,\n allowHeightOverflow,\n position,\n shouldCloseOnEscapePress,\n shouldCloseOnOverlayClick,\n size,\n testId,\n topOffset,\n };\n\n const styles = getModalStyles({\n position,\n size,\n allowHeightOverflow,\n className: otherProps.className,\n overlayClassName: otherProps.overlayProps?.className,\n });\n\n React.useEffect(() => {\n if (props.isShown) {\n setTimeout(() => {\n if (props.initialFocusRef && props.initialFocusRef.current) {\n if (props.initialFocusRef.current.focus) {\n props.initialFocusRef.current.focus();\n }\n } else if (contentRef.current) {\n focusFirstWithinNode(contentRef.current);\n }\n }, 100);\n }\n }, [props.isShown, props.initialFocusRef]);\n\n const renderDefault = () => {\n return (\n <>\n {otherProps.title && (\n <ModalHeader\n title={otherProps.title}\n onClose={props.onClose}\n {...otherProps.modalHeaderProps}\n />\n )}\n <ModalContent {...otherProps.modalContentProps}>\n {otherProps.children}\n </ModalContent>\n </>\n );\n };\n\n return (\n <ReactModal\n ariaHideApp={false}\n aria={aria}\n onRequestClose={props.onClose}\n isOpen={otherProps.isShown}\n onAfterOpen={props.onAfterOpen}\n shouldCloseOnEsc={shouldCloseOnEscapePress}\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\n shouldFocusAfterRender\n shouldReturnFocusAfterClose\n portalClassName={styles.portal}\n style={{\n content: {\n top: position === 'center' ? 0 : topOffset,\n },\n overlay: otherProps.overlayProps?.style,\n }}\n className={{\n base: styles.base.root,\n afterOpen: styles.base.afterOpen,\n beforeClose: styles.base.beforeClose,\n }}\n overlayClassName={{\n base: styles.modalOverlay.root,\n afterOpen: styles.modalOverlay.afterOpen,\n beforeClose: styles.modalOverlay.beforeClose,\n }}\n closeTimeoutMS={200}\n contentRef={(ref) => {\n contentRef.current = ref;\n }}\n >\n <Box\n testId={testId}\n style={{\n width: ModalSizesMapper[size] || size,\n }}\n className={styles.modal}\n data-modal-root\n >\n {typeof otherProps.children === 'function'\n ? otherProps.children(props)\n : renderDefault()}\n </Box>\n </ReactModal>\n );\n};\n\nModal.displayName = 'Modal';\n","import React from 'react';\nimport { cx } from 'emotion';\nimport { CloseIcon } from '@contentful/f36-icons';\nimport {\n Flex,\n type PropsWithHTMLElement,\n type CommonProps,\n} from '@contentful/f36-core';\nimport { Button } from '@contentful/f36-button';\nimport { Subheading } from '@contentful/f36-typography';\n\nimport { getModalHeaderStyles } from './ModalHeader.styles';\n\ninterface ModalHeaderInternalProps extends CommonProps {\n title: string;\n onClose?: Function;\n}\n\nexport type ModalHeaderProps = PropsWithHTMLElement<\n ModalHeaderInternalProps,\n 'div'\n>;\n\nexport const ModalHeader = ({\n onClose,\n title,\n testId = 'cf-ui-modal-header',\n className,\n ...otherProps\n}: ModalHeaderProps): React.ReactElement => {\n const styles = getModalHeaderStyles();\n\n return (\n <Flex\n {...otherProps}\n className={cx(styles.root, className)}\n testId={testId}\n alignItems=\"center\"\n justifyContent=\"space-between\"\n >\n <Subheading as=\"h2\" isTruncated marginBottom=\"none\">\n {title}\n </Subheading>\n {onClose && (\n <Flex alignItems=\"center\" className={styles.buttonContainer}>\n <Button\n variant=\"transparent\"\n aria-label=\"Close\"\n startIcon={<CloseIcon size=\"small\" />}\n onClick={() => {\n onClose();\n }}\n size=\"small\"\n />\n </Flex>\n )}\n </Flex>\n );\n};\n\nModalHeader.displayName = 'ModalHeader';\n","import tokens from '@contentful/f36-tokens';\nimport { css } from 'emotion';\n\nexport function getModalHeaderStyles() {\n return {\n root: css({\n position: 'relative',\n padding: `${tokens.spacingM} ${tokens.spacingM} ${tokens.spacingM} ${tokens.spacingL}`,\n borderRadius: `${tokens.borderRadiusMedium} ${tokens.borderRadiusMedium} 0 0`,\n borderBottom: `1px solid ${tokens.gray300}`,\n }),\n buttonContainer: css({\n position: 'relative',\n width: tokens.spacing2Xl,\n height: tokens.spacingL,\n button: {\n position: 'absolute',\n top: `calc(-1 * ${tokens.spacing2Xs})`,\n right: 0,\n },\n }),\n };\n}\n","import React from 'react';\nimport { cx } from 'emotion';\nimport {\n Box,\n type PropsWithHTMLElement,\n type CommonProps,\n} from '@contentful/f36-core';\nimport { getModalContentStyles } from './ModalContent.styles';\n\ninterface ModalContentInternalProps extends CommonProps {\n children: React.ReactNode;\n}\n\nexport type ModalContentProps = PropsWithHTMLElement<\n ModalContentInternalProps,\n 'div'\n>;\n\nexport const ModalContent = ({\n testId = 'cf-ui-modal-content',\n className,\n children,\n ...otherProps\n}: ModalContentProps) => {\n const styles = getModalContentStyles();\n return (\n <Box\n {...otherProps}\n as=\"div\"\n className={cx(styles.root, className)}\n testId={testId}\n >\n {children}\n </Box>\n );\n};\n\nModalContent.displayName = 'ModalContent';\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport function getModalContentStyles() {\n return {\n root: css({\n padding: `${tokens.spacingM} ${tokens.spacingL}`,\n color: tokens.gray700,\n fontSize: tokens.fontSizeM,\n fontFamily: tokens.fontStackPrimary,\n lineHeight: tokens.lineHeightM,\n overflowY: 'auto',\n overflowX: 'auto',\n boxSizing: 'border-box',\n }),\n };\n}\n","import tokens from '@contentful/f36-tokens';\nimport { css, cx } from 'emotion';\n\nimport type { ModalProps } from './Modal';\n\nexport function getModalStyles(props: {\n size: ModalProps['size'];\n position: ModalProps['position'];\n allowHeightOverflow?: boolean;\n className?: string;\n overlayClassName?: string;\n}) {\n const modal = cx(\n css({\n margin: tokens.spacing2Xl,\n backgroundColor: tokens.colorWhite,\n borderRadius: props.size === 'zen' ? 0 : tokens.borderRadiusMedium,\n boxShadow: tokens.boxShadowHeavy,\n maxHeight: `calc(100vh - 1rem * (100 / ${tokens.fontBaseDefault}))`,\n maxWidth: `calc(100vw - 1rem * (100 / ${tokens.fontBaseDefault}))`,\n overflow: 'hidden',\n display: 'flex',\n flexDirection: 'column',\n }),\n props.allowHeightOverflow\n ? css({\n overflow: 'auto',\n maxHeight: 'none',\n })\n : null,\n props.size === 'zen'\n ? css({\n maxWidth: 'none',\n maxHeight: 'none',\n margin: 0,\n height: '100%',\n width: '100%',\n })\n : null,\n props.className,\n );\n\n return {\n portal: css({\n display: 'block',\n }),\n base: {\n root: cx(\n css({\n zIndex: tokens.zIndexModalContent,\n position: 'relative',\n padding: 0,\n display: 'inline-block',\n margin: '0 auto',\n textAlign: 'left',\n outline: 'none',\n transform: props.size === 'zen' ? 'scale(1)' : 'scale(0.85)',\n transition: `transform ${tokens.transitionDurationDefault} ${tokens.transitionEasingDefault}`,\n }),\n props.size === 'zen'\n ? css({\n width: '100%',\n height: '100%',\n })\n : null,\n ),\n afterOpen: css({\n transform: 'scale(1) !important',\n }),\n beforeClose: css({\n transform: props.size === 'zen' ? 'scale(1)' : 'scale(0.85)',\n }),\n },\n modalOverlay: {\n root: cx(\n css({\n display: 'flex',\n alignItems: 'baseline',\n flexWrap: 'wrap',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n zIndex: tokens.zIndexModal,\n opacity: 0,\n transition: `opacity ${tokens.transitionDurationDefault} ${tokens.transitionEasingDefault}`,\n position: 'fixed',\n overflowY: 'auto',\n backgroundColor: 'rgba(12, 20, 28, 0.74902)',\n textAlign: 'center',\n }),\n props.position === 'center'\n ? css({\n alignItems: 'center',\n justifyContent: 'center',\n })\n : null,\n props.overlayClassName,\n ),\n afterOpen: css({\n opacity: 1,\n }),\n beforeClose: css({\n opacity: 0,\n }),\n },\n modal,\n };\n}\n","import React from 'react';\n\nimport {\n Flex,\n type PropsWithHTMLElement,\n type CommonProps,\n} from '@contentful/f36-core';\nimport { ButtonGroup } from '@contentful/f36-button';\n\ninterface ModalControlsInternalProps extends CommonProps {\n children: React.ReactElement[] | React.ReactElement;\n}\n\nexport type ModalControlsProps = PropsWithHTMLElement<\n ModalControlsInternalProps,\n 'div'\n>;\n\nexport const ModalControls = ({\n testId = 'cf-ui-modal-controls',\n className,\n children,\n ...otherProps\n}: ModalControlsProps): React.ReactElement => {\n return (\n <Flex\n {...otherProps}\n className={className}\n testId={testId}\n flexDirection=\"row\"\n justifyContent=\"flex-end\"\n margin=\"spacingL\"\n marginTop=\"none\"\n >\n <ButtonGroup variant=\"spaced\" spacing=\"spacingS\">\n {children}\n </ButtonGroup>\n </Flex>\n );\n};\n\nModalControls.displayName = 'ModalControls';\n","import React from 'react';\n\nimport { Modal } from '../CompoundModal';\nimport type { ModalProps } from '../Modal';\nimport type { ModalHeaderProps } from '../ModalHeader/ModalHeader';\nimport type { ModalContentProps } from '../ModalContent/ModalContent';\nimport type { ModalControlsProps } from '../ModalControls/ModalControls';\nimport { Button } from '@contentful/f36-button';\n\nexport interface ModalConfirmProps {\n /**\n * When true, the dialog is shown.\n */\n isShown: boolean;\n /**\n * Function that will be called when the confirm button is clicked. This does not close the ModalConfirm.\n */\n onConfirm(): void;\n /**\n * Function that will be called when the cancel button is clicked. This does not close the ModalConfirm.\n */\n onCancel: ModalProps['onClose'];\n /**\n Modal title that is used in header\n */\n title?: string;\n /**\n * Label of the confirm button\n */\n confirmLabel?: string | false;\n /**\n * Label of the cancel button\n */\n cancelLabel?: string | false;\n /**\n * The intent of the ModalConfirm. Used for the Button.\n */\n intent?: 'primary' | 'positive' | 'negative';\n /**\n * Size of the modal window\n */\n size?: ModalProps['size'];\n /**\n * Boolean indicating if clicking the overlay should close the overlay.\n */\n shouldCloseOnOverlayClick?: boolean;\n /**\n * Boolean indicating if pressing the esc key should close the overlay.\n */\n shouldCloseOnEscapePress?: boolean;\n /**\n * When true, the confirm button is set to disabled.\n */\n isConfirmDisabled?: boolean;\n /**\n * When true, the confirm button is set to loading.\n */\n isConfirmLoading?: boolean;\n /**\n * Are modals higher than viewport allowed\n */\n allowHeightOverflow?: boolean;\n\n /**\n * Optional props to override ModalHeader behaviour\n */\n modalHeaderProps?: Partial<ModalHeaderProps>;\n\n /**\n * Optional props to override ModalContent behaviour\n */\n modalContentProps?: Partial<ModalContentProps>;\n\n /**\n * Optional props to override ModalControl behaviour\n */\n modalControlsProps?: Partial<ModalControlsProps>;\n\n /**\n * Optional property to set initial focus\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- we don't know the type of element to give initial focus\n initialFocusRef?: React.RefObject<any>;\n\n testId?: string;\n confirmTestId?: string;\n cancelTestId?: string;\n children: React.ReactNode;\n}\n\nexport const ModalConfirm = ({\n allowHeightOverflow = false,\n cancelLabel = 'Cancel',\n cancelTestId = 'cf-ui-modal-confirm-cancel-button',\n children,\n confirmLabel = 'Confirm',\n confirmTestId = 'cf-ui-modal-confirm-confirm-button',\n intent = 'positive',\n isConfirmDisabled = false,\n isConfirmLoading = false,\n isShown,\n modalContentProps,\n modalControlsProps,\n modalHeaderProps,\n onCancel,\n onConfirm,\n shouldCloseOnEscapePress = true,\n shouldCloseOnOverlayClick = true,\n size = 'medium',\n testId = 'cf-ui-modal-confirm',\n title = 'Are you sure?',\n initialFocusRef,\n}: ModalConfirmProps) => {\n const cancelRef = React.useRef(null);\n\n const confirmButton = confirmLabel ? (\n <Button\n testId={confirmTestId}\n isDisabled={isConfirmDisabled}\n isLoading={isConfirmLoading}\n variant={intent}\n size=\"small\"\n onClick={() => onConfirm()}\n >\n {confirmLabel}\n </Button>\n ) : null;\n\n const cancelButton = cancelLabel ? (\n <Button\n testId={cancelTestId}\n variant=\"secondary\"\n onClick={onCancel}\n size=\"small\"\n ref={initialFocusRef || cancelRef}\n >\n {cancelLabel}\n </Button>\n ) : null;\n\n return (\n <Modal\n testId={testId}\n isShown={isShown}\n onClose={onCancel}\n size={size}\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\n shouldCloseOnEscapePress={shouldCloseOnEscapePress}\n allowHeightOverflow={allowHeightOverflow}\n initialFocusRef={cancelRef}\n >\n {() => {\n return (\n <React.Fragment>\n <Modal.Header title={title || ''} {...modalHeaderProps} />\n <Modal.Content {...modalContentProps}>{children}</Modal.Content>\n <Modal.Controls {...modalControlsProps}>\n {cancelButton}\n {confirmButton}\n </Modal.Controls>\n </React.Fragment>\n );\n }}\n </Modal>\n );\n};\n\nModalConfirm.displayName = 'ModalConfirm';\n","/* global Promise */\nimport ReactDOM from 'react-dom';\n\n// @todo: change any to unknown\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ninterface ModalLauncherComponentRendererProps<T = any> {\n isShown: boolean;\n onClose: (result?: T) => void;\n}\n\ninterface ModalLauncherOpenOptions {\n /**\n * Unique id to be used as identifier for the modal contianer\n */\n modalId?: string;\n /**\n * ms before removing the component from the tree\n * @default 300\n */\n delay?: number;\n}\n\ninterface CloseModalData {\n delay: number;\n render: (args: ModalLauncherComponentRendererProps<any>) => void;\n currentConfig: ModalLauncherComponentRendererProps<any>;\n}\n\nconst getRoot = (rootElId: string): HTMLElement => {\n // Reuse the container if we find it\n let rootDom = document.getElementById(rootElId);\n if (rootDom !== null) {\n return rootDom;\n }\n\n // Otherwise create it\n rootDom = document.createElement('div');\n rootDom.setAttribute('id', rootElId);\n document.body.appendChild(rootDom);\n return rootDom;\n};\n\nconst openModalsIds: Map<string, CloseModalData> = new Map();\nfunction closeAll() {\n openModalsIds.forEach(async ({ render, currentConfig, delay }, rootElId) => {\n const config = { ...currentConfig, isShown: false };\n render(config);\n await new Promise((resolveDelay) => setTimeout(resolveDelay, delay));\n ReactDOM.unmountComponentAtNode(getRoot(rootElId));\n openModalsIds.delete(rootElId);\n });\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction open<T = any>(\n componentRenderer: (\n props: ModalLauncherComponentRendererProps<T>,\n ) => JSX.Element,\n options: ModalLauncherOpenOptions = {},\n): Promise<T> {\n options = { delay: 300, ...options };\n\n // Allow components to specify if they wish to reuse the modal container\n const rootElId = `modals-root${options.modalId || Date.now()}`;\n const rootDom = getRoot(rootElId);\n\n return new Promise((resolve) => {\n let currentConfig = { onClose, isShown: true };\n\n function render({\n onClose,\n isShown,\n }: ModalLauncherComponentRendererProps<T>) {\n ReactDOM.render(componentRenderer({ onClose, isShown }), rootDom);\n }\n\n async function onClose(arg?: T) {\n currentConfig = {\n ...currentConfig,\n isShown: false,\n };\n render(currentConfig);\n await new Promise((resolveDelay) =>\n setTimeout(resolveDelay, options.delay),\n );\n ReactDOM.unmountComponentAtNode(rootDom);\n rootDom.remove();\n openModalsIds.delete(rootElId);\n resolve(arg);\n }\n\n render(currentConfig);\n openModalsIds.set(rootElId, {\n render,\n currentConfig,\n delay: options.delay,\n });\n });\n}\n\nexport const ModalLauncher = {\n open,\n closeAll,\n};\n"],"names":["Modal","ModalProps","ModalConfirm","ModalConfirmProps","ModalContent","ModalContentProps","ModalControls","ModalControlsProps","ModalHeader","ModalHeaderProps","ModalLauncher","OriginalModal","CompoundModal","Content","Header","Controls","React","ReactModal","Box","CommonProps","ExpandProps","getModalStyles","ModalSizeType","ModalPositionType","ModalSizesMapper","medium","small","large","fullWidth","zen","isShown","onClose","Props","onAfterOpen","aria","shouldCloseOnOverlayClick","shouldCloseOnEscapePress","position","topOffset","title","size","allowHeightOverflow","overlayProps","Pick","modalHeaderProps","Partial","modalContentProps","initialFocusRef","RefObject","HTMLElement","children","ReactNode","RenderModal","modalProps","focusFirstWithinNode","node","querySelectorAll","elements","length","firstElement","focus","testId","otherProps","contentRef","useRef","HTMLDivElement","props","styles","className","overlayClassName","useEffect","setTimeout","current","renderDefault","portal","content","top","overlay","style","base","root","afterOpen","beforeClose","modalOverlay","ref","width","modal","displayName","CloseIcon","Flex","PropsWithHTMLElement","Button","Subheading","getModalHeaderStyles","ModalHeaderInternalProps","Function","ReactElement","buttonContainer","tokens","padding","spacingM","spacingL","borderRadius","borderRadiusMedium","borderBottom","gray300","spacing2Xl","height","button","spacing2Xs","right","getModalContentStyles","ModalContentInternalProps","color","gray700","fontSize","fontSizeM","fontFamily","fontStackPrimary","lineHeight","lineHeightM","overflowY","overflowX","boxSizing","margin","backgroundColor","colorWhite","boxShadow","boxShadowHeavy","maxHeight","fontBaseDefault","maxWidth","overflow","display","flexDirection","zIndex","zIndexModalContent","textAlign","outline","transform","transition","transitionDurationDefault","transitionEasingDefault","alignItems","flexWrap","bottom","left","zIndexModal","opacity","ButtonGroup","ModalControlsInternalProps","onConfirm","onCancel","confirmLabel","cancelLabel","intent","isConfirmDisabled","isConfirmLoading","modalControlsProps","confirmTestId","cancelTestId","cancelRef","confirmButton","cancelButton","ReactDOM","ModalLauncherComponentRendererProps","result","T","ModalLauncherOpenOptions","modalId","delay","CloseModalData","render","args","currentConfig","getRoot","rootElId","rootDom","document","getElementById","createElement","setAttribute","body","appendChild","openModalsIds","Map","closeAll","forEach","config","Promise","resolveDelay","unmountComponentAtNode","delete","open","componentRenderer","JSX","Element","options","Date","now","resolve","arg","remove","set"],"version":3,"file":"main.js.map"}
package/dist/module.js CHANGED
@@ -172,7 +172,7 @@ function $f482f3cd8cb551fb$export$9af97f4b0b4c597a(props) {
172
172
  }), props.position === "center" ? /*#__PURE__*/ (0, $ggPfR$css)({
173
173
  name: "1qe4tyl",
174
174
  styles: "align-items:center;justify-content:center;"
175
- }) : null),
175
+ }) : null, props.overlayClassName),
176
176
  afterOpen: /*#__PURE__*/ (0, $ggPfR$css)({
177
177
  name: "whh5e5",
178
178
  styles: "opacity:1;"
@@ -205,6 +205,7 @@ function $bfd2aa2f2cc9e088$var$focusFirstWithinNode(node) {
205
205
  }
206
206
  }
207
207
  const $bfd2aa2f2cc9e088$export$2b77a92f1a5ad772 = ({ allowHeightOverflow: allowHeightOverflow = false , position: position = "center" , shouldCloseOnEscapePress: shouldCloseOnEscapePress = true , shouldCloseOnOverlayClick: shouldCloseOnOverlayClick = true , size: size = "medium" , testId: testId = "cf-ui-modal" , topOffset: topOffset = "50px" , aria: aria , ...otherProps })=>{
208
+ var ref2, ref1;
208
209
  const contentRef = $ggPfR$useRef(null);
209
210
  const props = {
210
211
  ...otherProps,
@@ -220,7 +221,8 @@ const $bfd2aa2f2cc9e088$export$2b77a92f1a5ad772 = ({ allowHeightOverflow: allowH
220
221
  position: position,
221
222
  size: size,
222
223
  allowHeightOverflow: allowHeightOverflow,
223
- className: otherProps.className
224
+ className: otherProps.className,
225
+ overlayClassName: (ref2 = otherProps.overlayProps) === null || ref2 === void 0 ? void 0 : ref2.className
224
226
  });
225
227
  $ggPfR$useEffect(()=>{
226
228
  if (props.isShown) setTimeout(()=>{
@@ -253,7 +255,8 @@ const $bfd2aa2f2cc9e088$export$2b77a92f1a5ad772 = ({ allowHeightOverflow: allowH
253
255
  style: {
254
256
  content: {
255
257
  top: position === "center" ? 0 : topOffset
256
- }
258
+ },
259
+ overlay: (ref1 = otherProps.overlayProps) === null || ref1 === void 0 ? void 0 : ref1.style
257
260
  },
258
261
  className: {
259
262
  base: styles.base.root,
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/components/modal/src/index.ts","packages/components/modal/src/CompoundModal.tsx","packages/components/modal/src/Modal.tsx","packages/components/modal/src/ModalHeader/ModalHeader.tsx","packages/components/modal/src/ModalHeader/ModalHeader.styles.ts","packages/components/modal/src/ModalContent/ModalContent.tsx","packages/components/modal/src/ModalContent/ModalContent.styles.ts","packages/components/modal/src/Modal.styles.ts","packages/components/modal/src/ModalControls/ModalControls.tsx","packages/components/modal/src/ModalConfirm/ModalConfirm.tsx","packages/components/modal/src/ModalLauncher/ModalLauncher.tsx"],"sourcesContent":["export { Modal } from './CompoundModal';\nexport type { ModalProps } from './Modal';\nexport { ModalConfirm } from './ModalConfirm/ModalConfirm';\nexport type { ModalConfirmProps } from './ModalConfirm/ModalConfirm';\nexport { ModalContent } from './ModalContent/ModalContent';\nexport type { ModalContentProps } from './ModalContent/ModalContent';\nexport { ModalControls } from './ModalControls/ModalControls';\nexport type { ModalControlsProps } from './ModalControls/ModalControls';\nexport { ModalHeader } from './ModalHeader/ModalHeader';\nexport type { ModalHeaderProps } from './ModalHeader/ModalHeader';\nexport { ModalLauncher } from './ModalLauncher/ModalLauncher';\n","import { Modal as OriginalModal } from './Modal';\nimport { ModalContent } from './ModalContent/ModalContent';\nimport { ModalHeader } from './ModalHeader/ModalHeader';\nimport { ModalControls } from './ModalControls/ModalControls';\n\ntype CompoundModal = typeof OriginalModal & {\n Content: typeof ModalContent;\n Header: typeof ModalHeader;\n Controls: typeof ModalControls;\n};\n\nexport const Modal = OriginalModal as CompoundModal;\nModal.Content = ModalContent;\nModal.Header = ModalHeader;\nModal.Controls = ModalControls;\n","import * as React from 'react';\nimport ReactModal from 'react-modal';\n\nimport { Box } from '@contentful/f36-core';\nimport type { CommonProps, ExpandProps } from '@contentful/f36-core';\n\nimport { ModalHeader, ModalHeaderProps } from './ModalHeader/ModalHeader';\nimport { ModalContent, ModalContentProps } from './ModalContent/ModalContent';\nimport { getModalStyles } from './Modal.styles';\nimport type { ModalSizeType, ModalPositionType } from './types';\n\nconst ModalSizesMapper: { [key in ModalSizeType]: string } = {\n medium: '520px',\n small: '400px',\n large: '700px',\n fullWidth: '100vw',\n zen: '100vw',\n};\n\nexport interface ModalProps extends CommonProps {\n /**\n * When true, the dialog is shown.\n */\n isShown: boolean;\n\n /**\n * Function that will be run when the modal is requested to be closed, prior to actually closing.\n */\n onClose: ReactModal.Props['onRequestClose'];\n\n /**\n * Function that will be run after the modal has opened.\n */\n onAfterOpen?: ReactModal.Props['onAfterOpen'];\n\n /**\n * Additional aria attributes\n */\n aria?: ReactModal.Props['aria'];\n\n /**\n * Boolean indicating if clicking the overlay should close the overlay.\n * @default true\n */\n shouldCloseOnOverlayClick?: boolean;\n /**\n * Boolean indicating if pressing the esc key should close the overlay.\n * @default true\n */\n shouldCloseOnEscapePress?: boolean;\n /**\n * Indicating if modal is centered or linked to the top\n * @default center\n */\n position?: ModalPositionType;\n /**\n * Top offset if position is 'top'\n * @default 50px\n */\n topOffset?: number | string;\n /**\n * Modal title that is used in header\n */\n title?: string;\n /**\n * Size of the modal window\n * @default medium\n */\n size?: ModalSizeType | string | number;\n /**\n * Are modals higher than viewport allowed\n * @default false\n */\n allowHeightOverflow?: boolean;\n\n /**\n * Optional props to override ModalHeader behaviour\n */\n modalHeaderProps?: Partial<ModalHeaderProps>;\n\n /**\n * Optional props to override ModalContent behaviour\n */\n modalContentProps?: Partial<ModalContentProps>;\n\n /**\n * Optional property to set initial focus\n */\n initialFocusRef?: React.RefObject<HTMLElement>;\n\n children: React.ReactNode | RenderModal;\n}\n\ntype RenderModal = (modalProps: ModalProps) => React.ReactNode;\n\nfunction focusFirstWithinNode(node: HTMLElement) {\n if (node && node.querySelectorAll) {\n const elements = node.querySelectorAll('input, button');\n if (elements.length > 0) {\n const firstElement = elements[0];\n // @ts-expect-error focus might be missing\n if (typeof firstElement.focus === 'function') {\n // @ts-expect-error focus might be missing\n firstElement.focus();\n }\n }\n }\n}\n\nexport const Modal = ({\n allowHeightOverflow = false,\n position = 'center',\n shouldCloseOnEscapePress = true,\n shouldCloseOnOverlayClick = true,\n size = 'medium',\n testId = 'cf-ui-modal',\n topOffset = '50px',\n aria,\n ...otherProps\n}: ExpandProps<ModalProps>) => {\n const contentRef = React.useRef<HTMLDivElement>(null);\n\n const props = {\n ...otherProps,\n allowHeightOverflow,\n position,\n shouldCloseOnEscapePress,\n shouldCloseOnOverlayClick,\n size,\n testId,\n topOffset,\n };\n\n const styles = getModalStyles({\n position,\n size,\n allowHeightOverflow,\n className: otherProps.className,\n });\n\n React.useEffect(() => {\n if (props.isShown) {\n setTimeout(() => {\n if (props.initialFocusRef && props.initialFocusRef.current) {\n if (props.initialFocusRef.current.focus) {\n props.initialFocusRef.current.focus();\n }\n } else if (contentRef.current) {\n focusFirstWithinNode(contentRef.current);\n }\n }, 100);\n }\n }, [props.isShown, props.initialFocusRef]);\n\n const renderDefault = () => {\n return (\n <>\n {otherProps.title && (\n <ModalHeader\n title={otherProps.title}\n onClose={props.onClose}\n {...otherProps.modalHeaderProps}\n />\n )}\n <ModalContent {...otherProps.modalContentProps}>\n {otherProps.children}\n </ModalContent>\n </>\n );\n };\n\n return (\n <ReactModal\n ariaHideApp={false}\n aria={aria}\n onRequestClose={props.onClose}\n isOpen={otherProps.isShown}\n onAfterOpen={props.onAfterOpen}\n shouldCloseOnEsc={shouldCloseOnEscapePress}\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\n shouldFocusAfterRender\n shouldReturnFocusAfterClose\n portalClassName={styles.portal}\n style={{\n content: {\n top: position === 'center' ? 0 : topOffset,\n },\n }}\n className={{\n base: styles.base.root,\n afterOpen: styles.base.afterOpen,\n beforeClose: styles.base.beforeClose,\n }}\n overlayClassName={{\n base: styles.modalOverlay.root,\n afterOpen: styles.modalOverlay.afterOpen,\n beforeClose: styles.modalOverlay.beforeClose,\n }}\n closeTimeoutMS={200}\n contentRef={(ref) => {\n contentRef.current = ref;\n }}\n >\n <Box\n testId={testId}\n style={{\n width: ModalSizesMapper[size] || size,\n }}\n className={styles.modal}\n data-modal-root\n >\n {typeof otherProps.children === 'function'\n ? otherProps.children(props)\n : renderDefault()}\n </Box>\n </ReactModal>\n );\n};\n\nModal.displayName = 'Modal';\n","import React from 'react';\nimport { cx } from 'emotion';\nimport { CloseIcon } from '@contentful/f36-icons';\nimport { Flex } from '@contentful/f36-core';\nimport type { PropsWithHTMLElement, CommonProps } from '@contentful/f36-core';\nimport { Button } from '@contentful/f36-button';\nimport { Subheading } from '@contentful/f36-typography';\n\nimport { getModalHeaderStyles } from './ModalHeader.styles';\n\ninterface ModalHeaderInternalProps extends CommonProps {\n title: string;\n onClose?: Function;\n}\n\nexport type ModalHeaderProps = PropsWithHTMLElement<\n ModalHeaderInternalProps,\n 'div'\n>;\n\nexport const ModalHeader = ({\n onClose,\n title,\n testId = 'cf-ui-modal-header',\n className,\n ...otherProps\n}: ModalHeaderProps): React.ReactElement => {\n const styles = getModalHeaderStyles();\n\n return (\n <Flex\n {...otherProps}\n className={cx(styles.root, className)}\n testId={testId}\n alignItems=\"center\"\n justifyContent=\"space-between\"\n >\n <Subheading as=\"h2\" isTruncated marginBottom=\"none\">\n {title}\n </Subheading>\n {onClose && (\n <Flex alignItems=\"center\" className={styles.buttonContainer}>\n <Button\n variant=\"transparent\"\n aria-label=\"Close\"\n startIcon={<CloseIcon size=\"small\" />}\n onClick={() => {\n onClose();\n }}\n size=\"small\"\n />\n </Flex>\n )}\n </Flex>\n );\n};\n\nModalHeader.displayName = 'ModalHeader';\n","import tokens from '@contentful/f36-tokens';\nimport { css } from 'emotion';\n\nexport function getModalHeaderStyles() {\n return {\n root: css({\n position: 'relative',\n padding: `${tokens.spacingM} ${tokens.spacingM} ${tokens.spacingM} ${tokens.spacingL}`,\n borderRadius: `${tokens.borderRadiusMedium} ${tokens.borderRadiusMedium} 0 0`,\n borderBottom: `1px solid ${tokens.gray300}`,\n }),\n buttonContainer: css({\n position: 'relative',\n width: tokens.spacing2Xl,\n height: tokens.spacingL,\n button: {\n position: 'absolute',\n top: `calc(-1 * ${tokens.spacing2Xs})`,\n right: 0,\n },\n }),\n };\n}\n","import React from 'react';\nimport { cx } from 'emotion';\nimport type { PropsWithHTMLElement, CommonProps } from '@contentful/f36-core';\nimport { Box } from '@contentful/f36-core';\nimport { getModalContentStyles } from './ModalContent.styles';\n\ninterface ModalContentInternalProps extends CommonProps {\n children: React.ReactNode;\n}\n\nexport type ModalContentProps = PropsWithHTMLElement<\n ModalContentInternalProps,\n 'div'\n>;\n\nexport const ModalContent = ({\n testId = 'cf-ui-modal-content',\n className,\n children,\n ...otherProps\n}: ModalContentProps) => {\n const styles = getModalContentStyles();\n return (\n <Box\n {...otherProps}\n as=\"div\"\n className={cx(styles.root, className)}\n testId={testId}\n >\n {children}\n </Box>\n );\n};\n\nModalContent.displayName = 'ModalContent';\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport function getModalContentStyles() {\n return {\n root: css({\n padding: `${tokens.spacingM} ${tokens.spacingL}`,\n color: tokens.gray700,\n fontSize: tokens.fontSizeM,\n fontFamily: tokens.fontStackPrimary,\n lineHeight: tokens.lineHeightM,\n overflowY: 'auto',\n overflowX: 'auto',\n boxSizing: 'border-box',\n }),\n };\n}\n","import tokens from '@contentful/f36-tokens';\nimport { css, cx } from 'emotion';\n\nimport type { ModalProps } from './Modal';\n\nexport function getModalStyles(props: {\n size: ModalProps['size'];\n position: ModalProps['position'];\n allowHeightOverflow?: boolean;\n className?: string;\n}) {\n const modal = cx(\n css({\n margin: tokens.spacing2Xl,\n backgroundColor: tokens.colorWhite,\n borderRadius: props.size === 'zen' ? 0 : tokens.borderRadiusMedium,\n boxShadow: tokens.boxShadowHeavy,\n maxHeight: `calc(100vh - 1rem * (100 / ${tokens.fontBaseDefault}))`,\n maxWidth: `calc(100vw - 1rem * (100 / ${tokens.fontBaseDefault}))`,\n overflow: 'hidden',\n display: 'flex',\n flexDirection: 'column',\n }),\n props.allowHeightOverflow\n ? css({\n overflow: 'auto',\n maxHeight: 'none',\n })\n : null,\n props.size === 'zen'\n ? css({\n maxWidth: 'none',\n maxHeight: 'none',\n margin: 0,\n height: '100%',\n width: '100%',\n })\n : null,\n props.className,\n );\n\n return {\n portal: css({\n display: 'block',\n }),\n base: {\n root: cx(\n css({\n zIndex: tokens.zIndexModalContent,\n position: 'relative',\n padding: 0,\n display: 'inline-block',\n margin: '0 auto',\n textAlign: 'left',\n outline: 'none',\n transform: props.size === 'zen' ? 'scale(1)' : 'scale(0.85)',\n transition: `transform ${tokens.transitionDurationDefault} ${tokens.transitionEasingDefault}`,\n }),\n props.size === 'zen'\n ? css({\n width: '100%',\n height: '100%',\n })\n : null,\n ),\n afterOpen: css({\n transform: 'scale(1) !important',\n }),\n beforeClose: css({\n transform: props.size === 'zen' ? 'scale(1)' : 'scale(0.85)',\n }),\n },\n modalOverlay: {\n root: cx(\n css({\n display: 'flex',\n alignItems: 'baseline',\n flexWrap: 'wrap',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n zIndex: tokens.zIndexModal,\n opacity: 0,\n transition: `opacity ${tokens.transitionDurationDefault} ${tokens.transitionEasingDefault}`,\n position: 'fixed',\n overflowY: 'auto',\n backgroundColor: 'rgba(12, 20, 28, 0.74902)',\n textAlign: 'center',\n }),\n props.position === 'center'\n ? css({\n alignItems: 'center',\n justifyContent: 'center',\n })\n : null,\n ),\n afterOpen: css({\n opacity: 1,\n }),\n beforeClose: css({\n opacity: 0,\n }),\n },\n modal,\n };\n}\n","import React from 'react';\n\nimport type { PropsWithHTMLElement, CommonProps } from '@contentful/f36-core';\nimport { Flex } from '@contentful/f36-core';\nimport { ButtonGroup } from '@contentful/f36-button';\n\ninterface ModalControlsInternalProps extends CommonProps {\n children: React.ReactElement[] | React.ReactElement;\n}\n\nexport type ModalControlsProps = PropsWithHTMLElement<\n ModalControlsInternalProps,\n 'div'\n>;\n\nexport const ModalControls = ({\n testId = 'cf-ui-modal-controls',\n className,\n children,\n ...otherProps\n}: ModalControlsProps): React.ReactElement => {\n return (\n <Flex\n {...otherProps}\n className={className}\n testId={testId}\n flexDirection=\"row\"\n justifyContent=\"flex-end\"\n margin=\"spacingL\"\n marginTop=\"none\"\n >\n <ButtonGroup variant=\"spaced\" spacing=\"spacingS\">\n {children}\n </ButtonGroup>\n </Flex>\n );\n};\n\nModalControls.displayName = 'ModalControls';\n","import React from 'react';\n\nimport { Modal } from '../CompoundModal';\nimport type { ModalProps } from '../Modal';\nimport type { ModalHeaderProps } from '../ModalHeader/ModalHeader';\nimport type { ModalContentProps } from '../ModalContent/ModalContent';\nimport type { ModalControlsProps } from '../ModalControls/ModalControls';\nimport { Button } from '@contentful/f36-button';\n\nexport interface ModalConfirmProps {\n /**\n * When true, the dialog is shown.\n */\n isShown: boolean;\n /**\n * Function that will be called when the confirm button is clicked. This does not close the ModalConfirm.\n */\n onConfirm(): void;\n /**\n * Function that will be called when the cancel button is clicked. This does not close the ModalConfirm.\n */\n onCancel: ModalProps['onClose'];\n /**\n Modal title that is used in header\n */\n title?: string;\n /**\n * Label of the confirm button\n */\n confirmLabel?: string | false;\n /**\n * Label of the cancel button\n */\n cancelLabel?: string | false;\n /**\n * The intent of the ModalConfirm. Used for the Button.\n */\n intent?: 'primary' | 'positive' | 'negative';\n /**\n * Size of the modal window\n */\n size?: ModalProps['size'];\n /**\n * Boolean indicating if clicking the overlay should close the overlay.\n */\n shouldCloseOnOverlayClick?: boolean;\n /**\n * Boolean indicating if pressing the esc key should close the overlay.\n */\n shouldCloseOnEscapePress?: boolean;\n /**\n * When true, the confirm button is set to disabled.\n */\n isConfirmDisabled?: boolean;\n /**\n * When true, the confirm button is set to loading.\n */\n isConfirmLoading?: boolean;\n /**\n * Are modals higher than viewport allowed\n */\n allowHeightOverflow?: boolean;\n\n /**\n * Optional props to override ModalHeader behaviour\n */\n modalHeaderProps?: Partial<ModalHeaderProps>;\n\n /**\n * Optional props to override ModalContent behaviour\n */\n modalContentProps?: Partial<ModalContentProps>;\n\n /**\n * Optional props to override ModalControl behaviour\n */\n modalControlsProps?: Partial<ModalControlsProps>;\n\n /**\n * Optional property to set initial focus\n */\n initialFocusRef?: React.RefObject<HTMLElement>;\n\n testId?: string;\n confirmTestId?: string;\n cancelTestId?: string;\n children: React.ReactNode;\n}\n\nexport const ModalConfirm = ({\n allowHeightOverflow = false,\n cancelLabel = 'Cancel',\n cancelTestId = 'cf-ui-modal-confirm-cancel-button',\n children,\n confirmLabel = 'Confirm',\n confirmTestId = 'cf-ui-modal-confirm-confirm-button',\n intent = 'positive',\n isConfirmDisabled = false,\n isConfirmLoading = false,\n isShown,\n modalContentProps,\n modalControlsProps,\n modalHeaderProps,\n onCancel,\n onConfirm,\n shouldCloseOnEscapePress = true,\n shouldCloseOnOverlayClick = true,\n size = 'medium',\n testId = 'cf-ui-modal-confirm',\n title = 'Are you sure?',\n initialFocusRef,\n}: ModalConfirmProps) => {\n const cancelRef = React.useRef(null);\n\n const confirmButton = confirmLabel ? (\n <Button\n testId={confirmTestId}\n isDisabled={isConfirmDisabled}\n isLoading={isConfirmLoading}\n variant={intent}\n size=\"small\"\n onClick={() => onConfirm()}\n >\n {confirmLabel}\n </Button>\n ) : null;\n\n const cancelButton = cancelLabel ? (\n <Button\n testId={cancelTestId}\n variant=\"secondary\"\n onClick={onCancel}\n size=\"small\"\n ref={initialFocusRef || cancelRef}\n >\n {cancelLabel}\n </Button>\n ) : null;\n\n return (\n <Modal\n testId={testId}\n isShown={isShown}\n onClose={onCancel}\n size={size}\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\n shouldCloseOnEscapePress={shouldCloseOnEscapePress}\n allowHeightOverflow={allowHeightOverflow}\n initialFocusRef={cancelRef}\n >\n {() => {\n return (\n <React.Fragment>\n <Modal.Header title={title || ''} {...modalHeaderProps} />\n <Modal.Content {...modalContentProps}>{children}</Modal.Content>\n <Modal.Controls {...modalControlsProps}>\n {cancelButton}\n {confirmButton}\n </Modal.Controls>\n </React.Fragment>\n );\n }}\n </Modal>\n );\n};\n\nModalConfirm.displayName = 'ModalConfirm';\n","/* global Promise */\nimport ReactDOM from 'react-dom';\n\n// @todo: change any to unknown\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ninterface ModalLauncherComponentRendererProps<T = any> {\n isShown: boolean;\n onClose: (result?: T) => void;\n}\n\ninterface ModalLauncherOpenOptions {\n /**\n * Unique id to be used as identifier for the modal contianer\n */\n modalId?: string;\n /**\n * ms before removing the component from the tree\n * @default 300\n */\n delay?: number;\n}\n\ninterface CloseModalData {\n delay: number;\n render: (args: ModalLauncherComponentRendererProps<any>) => void;\n currentConfig: ModalLauncherComponentRendererProps<any>;\n}\n\nconst getRoot = (rootElId: string): HTMLElement => {\n // Reuse the container if we find it\n let rootDom = document.getElementById(rootElId);\n if (rootDom !== null) {\n return rootDom;\n }\n\n // Otherwise create it\n rootDom = document.createElement('div');\n rootDom.setAttribute('id', rootElId);\n document.body.appendChild(rootDom);\n return rootDom;\n};\n\nconst openModalsIds: Map<string, CloseModalData> = new Map();\nfunction closeAll() {\n openModalsIds.forEach(async ({ render, currentConfig, delay }, rootElId) => {\n const config = { ...currentConfig, isShown: false };\n render(config);\n await new Promise((resolveDelay) => setTimeout(resolveDelay, delay));\n ReactDOM.unmountComponentAtNode(getRoot(rootElId));\n openModalsIds.delete(rootElId);\n });\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction open<T = any>(\n componentRenderer: (\n props: ModalLauncherComponentRendererProps<T>,\n ) => JSX.Element,\n options: ModalLauncherOpenOptions = {},\n): Promise<T> {\n options = { delay: 300, ...options };\n\n // Allow components to specify if they wish to reuse the modal container\n const rootElId = `modals-root${options.modalId || Date.now()}`;\n const rootDom = getRoot(rootElId);\n\n return new Promise((resolve) => {\n let currentConfig = { onClose, isShown: true };\n\n function render({\n onClose,\n isShown,\n }: ModalLauncherComponentRendererProps<T>) {\n ReactDOM.render(componentRenderer({ onClose, isShown }), rootDom);\n }\n\n async function onClose(arg?: T) {\n currentConfig = {\n ...currentConfig,\n isShown: false,\n };\n render(currentConfig);\n await new Promise((resolveDelay) =>\n setTimeout(resolveDelay, options.delay),\n );\n ReactDOM.unmountComponentAtNode(rootDom);\n rootDom.remove();\n openModalsIds.delete(rootElId);\n resolve(arg);\n }\n\n render(currentConfig);\n openModalsIds.set(rootElId, {\n render,\n currentConfig,\n delay: options.delay,\n });\n });\n}\n\nexport const ModalLauncher = {\n open,\n closeAll,\n};\n"],"names":["Modal","ModalProps","ModalConfirm","ModalConfirmProps","ModalContent","ModalContentProps","ModalControls","ModalControlsProps","ModalHeader","ModalHeaderProps","ModalLauncher","OriginalModal","CompoundModal","Content","Header","Controls","React","ReactModal","Box","CommonProps","ExpandProps","getModalStyles","ModalSizeType","ModalPositionType","ModalSizesMapper","medium","small","large","fullWidth","zen","isShown","onClose","Props","onAfterOpen","aria","shouldCloseOnOverlayClick","shouldCloseOnEscapePress","position","topOffset","title","size","allowHeightOverflow","modalHeaderProps","Partial","modalContentProps","initialFocusRef","RefObject","HTMLElement","children","ReactNode","RenderModal","modalProps","focusFirstWithinNode","node","querySelectorAll","elements","length","firstElement","focus","testId","otherProps","contentRef","useRef","HTMLDivElement","props","styles","className","useEffect","setTimeout","current","renderDefault","portal","content","top","base","root","afterOpen","beforeClose","modalOverlay","ref","width","modal","displayName","CloseIcon","Flex","PropsWithHTMLElement","Button","Subheading","getModalHeaderStyles","ModalHeaderInternalProps","Function","ReactElement","buttonContainer","tokens","padding","spacingM","spacingL","borderRadius","borderRadiusMedium","borderBottom","gray300","spacing2Xl","height","button","spacing2Xs","right","getModalContentStyles","ModalContentInternalProps","color","gray700","fontSize","fontSizeM","fontFamily","fontStackPrimary","lineHeight","lineHeightM","overflowY","overflowX","boxSizing","margin","backgroundColor","colorWhite","boxShadow","boxShadowHeavy","maxHeight","fontBaseDefault","maxWidth","overflow","display","flexDirection","zIndex","zIndexModalContent","textAlign","outline","transform","transition","transitionDurationDefault","transitionEasingDefault","alignItems","flexWrap","bottom","left","zIndexModal","opacity","ButtonGroup","ModalControlsInternalProps","onConfirm","onCancel","confirmLabel","cancelLabel","intent","isConfirmDisabled","isConfirmLoading","modalControlsProps","confirmTestId","cancelTestId","cancelRef","confirmButton","cancelButton","ReactDOM","ModalLauncherComponentRendererProps","result","T","ModalLauncherOpenOptions","modalId","delay","CloseModalData","render","args","currentConfig","getRoot","rootElId","rootDom","document","getElementById","createElement","setAttribute","body","appendChild","openModalsIds","Map","closeAll","forEach","config","Promise","resolveDelay","unmountComponentAtNode","delete","open","componentRenderer","JSX","Element","options","Date","now","resolve","arg","remove","set"],"version":3,"file":"module.js.map"}
1
+ {"mappings":"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","sources":["packages/components/modal/src/index.ts","packages/components/modal/src/CompoundModal.tsx","packages/components/modal/src/Modal.tsx","packages/components/modal/src/ModalHeader/ModalHeader.tsx","packages/components/modal/src/ModalHeader/ModalHeader.styles.ts","packages/components/modal/src/ModalContent/ModalContent.tsx","packages/components/modal/src/ModalContent/ModalContent.styles.ts","packages/components/modal/src/Modal.styles.ts","packages/components/modal/src/ModalControls/ModalControls.tsx","packages/components/modal/src/ModalConfirm/ModalConfirm.tsx","packages/components/modal/src/ModalLauncher/ModalLauncher.tsx"],"sourcesContent":["export { Modal } from './CompoundModal';\nexport type { ModalProps } from './Modal';\nexport { ModalConfirm } from './ModalConfirm/ModalConfirm';\nexport type { ModalConfirmProps } from './ModalConfirm/ModalConfirm';\nexport { ModalContent } from './ModalContent/ModalContent';\nexport type { ModalContentProps } from './ModalContent/ModalContent';\nexport { ModalControls } from './ModalControls/ModalControls';\nexport type { ModalControlsProps } from './ModalControls/ModalControls';\nexport { ModalHeader } from './ModalHeader/ModalHeader';\nexport type { ModalHeaderProps } from './ModalHeader/ModalHeader';\nexport { ModalLauncher } from './ModalLauncher/ModalLauncher';\n","import { Modal as OriginalModal } from './Modal';\nimport { ModalContent } from './ModalContent/ModalContent';\nimport { ModalHeader } from './ModalHeader/ModalHeader';\nimport { ModalControls } from './ModalControls/ModalControls';\n\ntype CompoundModal = typeof OriginalModal & {\n Content: typeof ModalContent;\n Header: typeof ModalHeader;\n Controls: typeof ModalControls;\n};\n\nexport const Modal = OriginalModal as CompoundModal;\nModal.Content = ModalContent;\nModal.Header = ModalHeader;\nModal.Controls = ModalControls;\n","import * as React from 'react';\nimport ReactModal from 'react-modal';\n\nimport { Box, type CommonProps, type ExpandProps } from '@contentful/f36-core';\n\nimport { ModalHeader, ModalHeaderProps } from './ModalHeader/ModalHeader';\nimport { ModalContent, ModalContentProps } from './ModalContent/ModalContent';\nimport { getModalStyles } from './Modal.styles';\nimport type { ModalSizeType, ModalPositionType } from './types';\n\nconst ModalSizesMapper: { [key in ModalSizeType]: string } = {\n medium: '520px',\n small: '400px',\n large: '700px',\n fullWidth: '100vw',\n zen: '100vw',\n};\n\nexport interface ModalProps extends CommonProps {\n /**\n * When true, the dialog is shown.\n */\n isShown: boolean;\n\n /**\n * Function that will be run when the modal is requested to be closed, prior to actually closing.\n */\n onClose: ReactModal.Props['onRequestClose'];\n\n /**\n * Function that will be run after the modal has opened.\n */\n onAfterOpen?: ReactModal.Props['onAfterOpen'];\n\n /**\n * Additional aria attributes\n */\n aria?: ReactModal.Props['aria'];\n\n /**\n * Boolean indicating if clicking the overlay should close the overlay.\n * @default true\n */\n shouldCloseOnOverlayClick?: boolean;\n /**\n * Boolean indicating if pressing the esc key should close the overlay.\n * @default true\n */\n shouldCloseOnEscapePress?: boolean;\n /**\n * Indicating if modal is centered or linked to the top\n * @default center\n */\n position?: ModalPositionType;\n /**\n * Top offset if position is 'top'\n * @default 50px\n */\n topOffset?: number | string;\n /**\n * Modal title that is used in header\n */\n title?: string;\n /**\n * Size of the modal window\n * @default medium\n */\n size?: ModalSizeType | string | number;\n /**\n * Are modals higher than viewport allowed\n * @default false\n */\n allowHeightOverflow?: boolean;\n\n /**\n * Optional props to override overlay behaviour\n */\n overlayProps?: Pick<CommonProps, 'className' | 'style'>;\n\n /**\n * Optional props to override ModalHeader behaviour\n */\n modalHeaderProps?: Partial<ModalHeaderProps>;\n\n /**\n * Optional props to override ModalContent behaviour\n */\n modalContentProps?: Partial<ModalContentProps>;\n\n /**\n * Optional property to set initial focus\n */\n initialFocusRef?: React.RefObject<HTMLElement>;\n\n children: React.ReactNode | RenderModal;\n}\n\ntype RenderModal = (modalProps: ModalProps) => React.ReactNode;\n\nfunction focusFirstWithinNode(node: HTMLElement) {\n if (node && node.querySelectorAll) {\n const elements = node.querySelectorAll('input, button');\n if (elements.length > 0) {\n const firstElement = elements[0];\n // @ts-expect-error focus might be missing\n if (typeof firstElement.focus === 'function') {\n // @ts-expect-error focus might be missing\n firstElement.focus();\n }\n }\n }\n}\n\nexport const Modal = ({\n allowHeightOverflow = false,\n position = 'center',\n shouldCloseOnEscapePress = true,\n shouldCloseOnOverlayClick = true,\n size = 'medium',\n testId = 'cf-ui-modal',\n topOffset = '50px',\n aria,\n ...otherProps\n}: ExpandProps<ModalProps>) => {\n const contentRef = React.useRef<HTMLDivElement>(null);\n\n const props = {\n ...otherProps,\n allowHeightOverflow,\n position,\n shouldCloseOnEscapePress,\n shouldCloseOnOverlayClick,\n size,\n testId,\n topOffset,\n };\n\n const styles = getModalStyles({\n position,\n size,\n allowHeightOverflow,\n className: otherProps.className,\n overlayClassName: otherProps.overlayProps?.className,\n });\n\n React.useEffect(() => {\n if (props.isShown) {\n setTimeout(() => {\n if (props.initialFocusRef && props.initialFocusRef.current) {\n if (props.initialFocusRef.current.focus) {\n props.initialFocusRef.current.focus();\n }\n } else if (contentRef.current) {\n focusFirstWithinNode(contentRef.current);\n }\n }, 100);\n }\n }, [props.isShown, props.initialFocusRef]);\n\n const renderDefault = () => {\n return (\n <>\n {otherProps.title && (\n <ModalHeader\n title={otherProps.title}\n onClose={props.onClose}\n {...otherProps.modalHeaderProps}\n />\n )}\n <ModalContent {...otherProps.modalContentProps}>\n {otherProps.children}\n </ModalContent>\n </>\n );\n };\n\n return (\n <ReactModal\n ariaHideApp={false}\n aria={aria}\n onRequestClose={props.onClose}\n isOpen={otherProps.isShown}\n onAfterOpen={props.onAfterOpen}\n shouldCloseOnEsc={shouldCloseOnEscapePress}\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\n shouldFocusAfterRender\n shouldReturnFocusAfterClose\n portalClassName={styles.portal}\n style={{\n content: {\n top: position === 'center' ? 0 : topOffset,\n },\n overlay: otherProps.overlayProps?.style,\n }}\n className={{\n base: styles.base.root,\n afterOpen: styles.base.afterOpen,\n beforeClose: styles.base.beforeClose,\n }}\n overlayClassName={{\n base: styles.modalOverlay.root,\n afterOpen: styles.modalOverlay.afterOpen,\n beforeClose: styles.modalOverlay.beforeClose,\n }}\n closeTimeoutMS={200}\n contentRef={(ref) => {\n contentRef.current = ref;\n }}\n >\n <Box\n testId={testId}\n style={{\n width: ModalSizesMapper[size] || size,\n }}\n className={styles.modal}\n data-modal-root\n >\n {typeof otherProps.children === 'function'\n ? otherProps.children(props)\n : renderDefault()}\n </Box>\n </ReactModal>\n );\n};\n\nModal.displayName = 'Modal';\n","import React from 'react';\nimport { cx } from 'emotion';\nimport { CloseIcon } from '@contentful/f36-icons';\nimport {\n Flex,\n type PropsWithHTMLElement,\n type CommonProps,\n} from '@contentful/f36-core';\nimport { Button } from '@contentful/f36-button';\nimport { Subheading } from '@contentful/f36-typography';\n\nimport { getModalHeaderStyles } from './ModalHeader.styles';\n\ninterface ModalHeaderInternalProps extends CommonProps {\n title: string;\n onClose?: Function;\n}\n\nexport type ModalHeaderProps = PropsWithHTMLElement<\n ModalHeaderInternalProps,\n 'div'\n>;\n\nexport const ModalHeader = ({\n onClose,\n title,\n testId = 'cf-ui-modal-header',\n className,\n ...otherProps\n}: ModalHeaderProps): React.ReactElement => {\n const styles = getModalHeaderStyles();\n\n return (\n <Flex\n {...otherProps}\n className={cx(styles.root, className)}\n testId={testId}\n alignItems=\"center\"\n justifyContent=\"space-between\"\n >\n <Subheading as=\"h2\" isTruncated marginBottom=\"none\">\n {title}\n </Subheading>\n {onClose && (\n <Flex alignItems=\"center\" className={styles.buttonContainer}>\n <Button\n variant=\"transparent\"\n aria-label=\"Close\"\n startIcon={<CloseIcon size=\"small\" />}\n onClick={() => {\n onClose();\n }}\n size=\"small\"\n />\n </Flex>\n )}\n </Flex>\n );\n};\n\nModalHeader.displayName = 'ModalHeader';\n","import tokens from '@contentful/f36-tokens';\nimport { css } from 'emotion';\n\nexport function getModalHeaderStyles() {\n return {\n root: css({\n position: 'relative',\n padding: `${tokens.spacingM} ${tokens.spacingM} ${tokens.spacingM} ${tokens.spacingL}`,\n borderRadius: `${tokens.borderRadiusMedium} ${tokens.borderRadiusMedium} 0 0`,\n borderBottom: `1px solid ${tokens.gray300}`,\n }),\n buttonContainer: css({\n position: 'relative',\n width: tokens.spacing2Xl,\n height: tokens.spacingL,\n button: {\n position: 'absolute',\n top: `calc(-1 * ${tokens.spacing2Xs})`,\n right: 0,\n },\n }),\n };\n}\n","import React from 'react';\nimport { cx } from 'emotion';\nimport {\n Box,\n type PropsWithHTMLElement,\n type CommonProps,\n} from '@contentful/f36-core';\nimport { getModalContentStyles } from './ModalContent.styles';\n\ninterface ModalContentInternalProps extends CommonProps {\n children: React.ReactNode;\n}\n\nexport type ModalContentProps = PropsWithHTMLElement<\n ModalContentInternalProps,\n 'div'\n>;\n\nexport const ModalContent = ({\n testId = 'cf-ui-modal-content',\n className,\n children,\n ...otherProps\n}: ModalContentProps) => {\n const styles = getModalContentStyles();\n return (\n <Box\n {...otherProps}\n as=\"div\"\n className={cx(styles.root, className)}\n testId={testId}\n >\n {children}\n </Box>\n );\n};\n\nModalContent.displayName = 'ModalContent';\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport function getModalContentStyles() {\n return {\n root: css({\n padding: `${tokens.spacingM} ${tokens.spacingL}`,\n color: tokens.gray700,\n fontSize: tokens.fontSizeM,\n fontFamily: tokens.fontStackPrimary,\n lineHeight: tokens.lineHeightM,\n overflowY: 'auto',\n overflowX: 'auto',\n boxSizing: 'border-box',\n }),\n };\n}\n","import tokens from '@contentful/f36-tokens';\nimport { css, cx } from 'emotion';\n\nimport type { ModalProps } from './Modal';\n\nexport function getModalStyles(props: {\n size: ModalProps['size'];\n position: ModalProps['position'];\n allowHeightOverflow?: boolean;\n className?: string;\n overlayClassName?: string;\n}) {\n const modal = cx(\n css({\n margin: tokens.spacing2Xl,\n backgroundColor: tokens.colorWhite,\n borderRadius: props.size === 'zen' ? 0 : tokens.borderRadiusMedium,\n boxShadow: tokens.boxShadowHeavy,\n maxHeight: `calc(100vh - 1rem * (100 / ${tokens.fontBaseDefault}))`,\n maxWidth: `calc(100vw - 1rem * (100 / ${tokens.fontBaseDefault}))`,\n overflow: 'hidden',\n display: 'flex',\n flexDirection: 'column',\n }),\n props.allowHeightOverflow\n ? css({\n overflow: 'auto',\n maxHeight: 'none',\n })\n : null,\n props.size === 'zen'\n ? css({\n maxWidth: 'none',\n maxHeight: 'none',\n margin: 0,\n height: '100%',\n width: '100%',\n })\n : null,\n props.className,\n );\n\n return {\n portal: css({\n display: 'block',\n }),\n base: {\n root: cx(\n css({\n zIndex: tokens.zIndexModalContent,\n position: 'relative',\n padding: 0,\n display: 'inline-block',\n margin: '0 auto',\n textAlign: 'left',\n outline: 'none',\n transform: props.size === 'zen' ? 'scale(1)' : 'scale(0.85)',\n transition: `transform ${tokens.transitionDurationDefault} ${tokens.transitionEasingDefault}`,\n }),\n props.size === 'zen'\n ? css({\n width: '100%',\n height: '100%',\n })\n : null,\n ),\n afterOpen: css({\n transform: 'scale(1) !important',\n }),\n beforeClose: css({\n transform: props.size === 'zen' ? 'scale(1)' : 'scale(0.85)',\n }),\n },\n modalOverlay: {\n root: cx(\n css({\n display: 'flex',\n alignItems: 'baseline',\n flexWrap: 'wrap',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n zIndex: tokens.zIndexModal,\n opacity: 0,\n transition: `opacity ${tokens.transitionDurationDefault} ${tokens.transitionEasingDefault}`,\n position: 'fixed',\n overflowY: 'auto',\n backgroundColor: 'rgba(12, 20, 28, 0.74902)',\n textAlign: 'center',\n }),\n props.position === 'center'\n ? css({\n alignItems: 'center',\n justifyContent: 'center',\n })\n : null,\n props.overlayClassName,\n ),\n afterOpen: css({\n opacity: 1,\n }),\n beforeClose: css({\n opacity: 0,\n }),\n },\n modal,\n };\n}\n","import React from 'react';\n\nimport {\n Flex,\n type PropsWithHTMLElement,\n type CommonProps,\n} from '@contentful/f36-core';\nimport { ButtonGroup } from '@contentful/f36-button';\n\ninterface ModalControlsInternalProps extends CommonProps {\n children: React.ReactElement[] | React.ReactElement;\n}\n\nexport type ModalControlsProps = PropsWithHTMLElement<\n ModalControlsInternalProps,\n 'div'\n>;\n\nexport const ModalControls = ({\n testId = 'cf-ui-modal-controls',\n className,\n children,\n ...otherProps\n}: ModalControlsProps): React.ReactElement => {\n return (\n <Flex\n {...otherProps}\n className={className}\n testId={testId}\n flexDirection=\"row\"\n justifyContent=\"flex-end\"\n margin=\"spacingL\"\n marginTop=\"none\"\n >\n <ButtonGroup variant=\"spaced\" spacing=\"spacingS\">\n {children}\n </ButtonGroup>\n </Flex>\n );\n};\n\nModalControls.displayName = 'ModalControls';\n","import React from 'react';\n\nimport { Modal } from '../CompoundModal';\nimport type { ModalProps } from '../Modal';\nimport type { ModalHeaderProps } from '../ModalHeader/ModalHeader';\nimport type { ModalContentProps } from '../ModalContent/ModalContent';\nimport type { ModalControlsProps } from '../ModalControls/ModalControls';\nimport { Button } from '@contentful/f36-button';\n\nexport interface ModalConfirmProps {\n /**\n * When true, the dialog is shown.\n */\n isShown: boolean;\n /**\n * Function that will be called when the confirm button is clicked. This does not close the ModalConfirm.\n */\n onConfirm(): void;\n /**\n * Function that will be called when the cancel button is clicked. This does not close the ModalConfirm.\n */\n onCancel: ModalProps['onClose'];\n /**\n Modal title that is used in header\n */\n title?: string;\n /**\n * Label of the confirm button\n */\n confirmLabel?: string | false;\n /**\n * Label of the cancel button\n */\n cancelLabel?: string | false;\n /**\n * The intent of the ModalConfirm. Used for the Button.\n */\n intent?: 'primary' | 'positive' | 'negative';\n /**\n * Size of the modal window\n */\n size?: ModalProps['size'];\n /**\n * Boolean indicating if clicking the overlay should close the overlay.\n */\n shouldCloseOnOverlayClick?: boolean;\n /**\n * Boolean indicating if pressing the esc key should close the overlay.\n */\n shouldCloseOnEscapePress?: boolean;\n /**\n * When true, the confirm button is set to disabled.\n */\n isConfirmDisabled?: boolean;\n /**\n * When true, the confirm button is set to loading.\n */\n isConfirmLoading?: boolean;\n /**\n * Are modals higher than viewport allowed\n */\n allowHeightOverflow?: boolean;\n\n /**\n * Optional props to override ModalHeader behaviour\n */\n modalHeaderProps?: Partial<ModalHeaderProps>;\n\n /**\n * Optional props to override ModalContent behaviour\n */\n modalContentProps?: Partial<ModalContentProps>;\n\n /**\n * Optional props to override ModalControl behaviour\n */\n modalControlsProps?: Partial<ModalControlsProps>;\n\n /**\n * Optional property to set initial focus\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- we don't know the type of element to give initial focus\n initialFocusRef?: React.RefObject<any>;\n\n testId?: string;\n confirmTestId?: string;\n cancelTestId?: string;\n children: React.ReactNode;\n}\n\nexport const ModalConfirm = ({\n allowHeightOverflow = false,\n cancelLabel = 'Cancel',\n cancelTestId = 'cf-ui-modal-confirm-cancel-button',\n children,\n confirmLabel = 'Confirm',\n confirmTestId = 'cf-ui-modal-confirm-confirm-button',\n intent = 'positive',\n isConfirmDisabled = false,\n isConfirmLoading = false,\n isShown,\n modalContentProps,\n modalControlsProps,\n modalHeaderProps,\n onCancel,\n onConfirm,\n shouldCloseOnEscapePress = true,\n shouldCloseOnOverlayClick = true,\n size = 'medium',\n testId = 'cf-ui-modal-confirm',\n title = 'Are you sure?',\n initialFocusRef,\n}: ModalConfirmProps) => {\n const cancelRef = React.useRef(null);\n\n const confirmButton = confirmLabel ? (\n <Button\n testId={confirmTestId}\n isDisabled={isConfirmDisabled}\n isLoading={isConfirmLoading}\n variant={intent}\n size=\"small\"\n onClick={() => onConfirm()}\n >\n {confirmLabel}\n </Button>\n ) : null;\n\n const cancelButton = cancelLabel ? (\n <Button\n testId={cancelTestId}\n variant=\"secondary\"\n onClick={onCancel}\n size=\"small\"\n ref={initialFocusRef || cancelRef}\n >\n {cancelLabel}\n </Button>\n ) : null;\n\n return (\n <Modal\n testId={testId}\n isShown={isShown}\n onClose={onCancel}\n size={size}\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\n shouldCloseOnEscapePress={shouldCloseOnEscapePress}\n allowHeightOverflow={allowHeightOverflow}\n initialFocusRef={cancelRef}\n >\n {() => {\n return (\n <React.Fragment>\n <Modal.Header title={title || ''} {...modalHeaderProps} />\n <Modal.Content {...modalContentProps}>{children}</Modal.Content>\n <Modal.Controls {...modalControlsProps}>\n {cancelButton}\n {confirmButton}\n </Modal.Controls>\n </React.Fragment>\n );\n }}\n </Modal>\n );\n};\n\nModalConfirm.displayName = 'ModalConfirm';\n","/* global Promise */\nimport ReactDOM from 'react-dom';\n\n// @todo: change any to unknown\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ninterface ModalLauncherComponentRendererProps<T = any> {\n isShown: boolean;\n onClose: (result?: T) => void;\n}\n\ninterface ModalLauncherOpenOptions {\n /**\n * Unique id to be used as identifier for the modal contianer\n */\n modalId?: string;\n /**\n * ms before removing the component from the tree\n * @default 300\n */\n delay?: number;\n}\n\ninterface CloseModalData {\n delay: number;\n render: (args: ModalLauncherComponentRendererProps<any>) => void;\n currentConfig: ModalLauncherComponentRendererProps<any>;\n}\n\nconst getRoot = (rootElId: string): HTMLElement => {\n // Reuse the container if we find it\n let rootDom = document.getElementById(rootElId);\n if (rootDom !== null) {\n return rootDom;\n }\n\n // Otherwise create it\n rootDom = document.createElement('div');\n rootDom.setAttribute('id', rootElId);\n document.body.appendChild(rootDom);\n return rootDom;\n};\n\nconst openModalsIds: Map<string, CloseModalData> = new Map();\nfunction closeAll() {\n openModalsIds.forEach(async ({ render, currentConfig, delay }, rootElId) => {\n const config = { ...currentConfig, isShown: false };\n render(config);\n await new Promise((resolveDelay) => setTimeout(resolveDelay, delay));\n ReactDOM.unmountComponentAtNode(getRoot(rootElId));\n openModalsIds.delete(rootElId);\n });\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction open<T = any>(\n componentRenderer: (\n props: ModalLauncherComponentRendererProps<T>,\n ) => JSX.Element,\n options: ModalLauncherOpenOptions = {},\n): Promise<T> {\n options = { delay: 300, ...options };\n\n // Allow components to specify if they wish to reuse the modal container\n const rootElId = `modals-root${options.modalId || Date.now()}`;\n const rootDom = getRoot(rootElId);\n\n return new Promise((resolve) => {\n let currentConfig = { onClose, isShown: true };\n\n function render({\n onClose,\n isShown,\n }: ModalLauncherComponentRendererProps<T>) {\n ReactDOM.render(componentRenderer({ onClose, isShown }), rootDom);\n }\n\n async function onClose(arg?: T) {\n currentConfig = {\n ...currentConfig,\n isShown: false,\n };\n render(currentConfig);\n await new Promise((resolveDelay) =>\n setTimeout(resolveDelay, options.delay),\n );\n ReactDOM.unmountComponentAtNode(rootDom);\n rootDom.remove();\n openModalsIds.delete(rootElId);\n resolve(arg);\n }\n\n render(currentConfig);\n openModalsIds.set(rootElId, {\n render,\n currentConfig,\n delay: options.delay,\n });\n });\n}\n\nexport const ModalLauncher = {\n open,\n closeAll,\n};\n"],"names":["Modal","ModalProps","ModalConfirm","ModalConfirmProps","ModalContent","ModalContentProps","ModalControls","ModalControlsProps","ModalHeader","ModalHeaderProps","ModalLauncher","OriginalModal","CompoundModal","Content","Header","Controls","React","ReactModal","Box","CommonProps","ExpandProps","getModalStyles","ModalSizeType","ModalPositionType","ModalSizesMapper","medium","small","large","fullWidth","zen","isShown","onClose","Props","onAfterOpen","aria","shouldCloseOnOverlayClick","shouldCloseOnEscapePress","position","topOffset","title","size","allowHeightOverflow","overlayProps","Pick","modalHeaderProps","Partial","modalContentProps","initialFocusRef","RefObject","HTMLElement","children","ReactNode","RenderModal","modalProps","focusFirstWithinNode","node","querySelectorAll","elements","length","firstElement","focus","testId","otherProps","contentRef","useRef","HTMLDivElement","props","styles","className","overlayClassName","useEffect","setTimeout","current","renderDefault","portal","content","top","overlay","style","base","root","afterOpen","beforeClose","modalOverlay","ref","width","modal","displayName","CloseIcon","Flex","PropsWithHTMLElement","Button","Subheading","getModalHeaderStyles","ModalHeaderInternalProps","Function","ReactElement","buttonContainer","tokens","padding","spacingM","spacingL","borderRadius","borderRadiusMedium","borderBottom","gray300","spacing2Xl","height","button","spacing2Xs","right","getModalContentStyles","ModalContentInternalProps","color","gray700","fontSize","fontSizeM","fontFamily","fontStackPrimary","lineHeight","lineHeightM","overflowY","overflowX","boxSizing","margin","backgroundColor","colorWhite","boxShadow","boxShadowHeavy","maxHeight","fontBaseDefault","maxWidth","overflow","display","flexDirection","zIndex","zIndexModalContent","textAlign","outline","transform","transition","transitionDurationDefault","transitionEasingDefault","alignItems","flexWrap","bottom","left","zIndexModal","opacity","ButtonGroup","ModalControlsInternalProps","onConfirm","onCancel","confirmLabel","cancelLabel","intent","isConfirmDisabled","isConfirmLoading","modalControlsProps","confirmTestId","cancelTestId","cancelRef","confirmButton","cancelButton","ReactDOM","ModalLauncherComponentRendererProps","result","T","ModalLauncherOpenOptions","modalId","delay","CloseModalData","render","args","currentConfig","getRoot","rootElId","rootDom","document","getElementById","createElement","setAttribute","body","appendChild","openModalsIds","Map","closeAll","forEach","config","Promise","resolveDelay","unmountComponentAtNode","delete","open","componentRenderer","JSX","Element","options","Date","now","resolve","arg","remove","set"],"version":3,"file":"module.js.map"}
package/dist/types.d.ts CHANGED
@@ -71,6 +71,10 @@ export interface ModalProps extends CommonProps {
71
71
  * @default false
72
72
  */
73
73
  allowHeightOverflow?: boolean;
74
+ /**
75
+ * Optional props to override overlay behaviour
76
+ */
77
+ overlayProps?: Pick<CommonProps, 'className' | 'style'>;
74
78
  /**
75
79
  * Optional props to override ModalHeader behaviour
76
80
  */
@@ -172,7 +176,7 @@ export interface ModalConfirmProps {
172
176
  /**
173
177
  * Optional property to set initial focus
174
178
  */
175
- initialFocusRef?: React.RefObject<HTMLElement>;
179
+ initialFocusRef?: React.RefObject<any>;
176
180
  testId?: string;
177
181
  confirmTestId?: string;
178
182
  cancelTestId?: string;
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/components/modal/src/src/ModalHeader/ModalHeader.styles.ts","packages/components/modal/src/src/ModalHeader/ModalHeader.tsx","packages/components/modal/src/src/ModalContent/ModalContent.styles.ts","packages/components/modal/src/src/ModalContent/ModalContent.tsx","packages/components/modal/src/src/Modal.styles.ts","packages/components/modal/src/src/types.ts","packages/components/modal/src/src/Modal.tsx","packages/components/modal/src/src/ModalControls/ModalControls.tsx","packages/components/modal/src/src/CompoundModal.tsx","packages/components/modal/src/src/ModalConfirm/ModalConfirm.tsx","packages/components/modal/src/src/ModalLauncher/ModalLauncher.tsx","packages/components/modal/src/src/index.ts","packages/components/modal/src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,"export { Modal } from './CompoundModal';\nexport type { ModalProps } from './Modal';\nexport { ModalConfirm } from './ModalConfirm/ModalConfirm';\nexport type { ModalConfirmProps } from './ModalConfirm/ModalConfirm';\nexport { ModalContent } from './ModalContent/ModalContent';\nexport type { ModalContentProps } from './ModalContent/ModalContent';\nexport { ModalControls } from './ModalControls/ModalControls';\nexport type { ModalControlsProps } from './ModalControls/ModalControls';\nexport { ModalHeader } from './ModalHeader/ModalHeader';\nexport type { ModalHeaderProps } from './ModalHeader/ModalHeader';\nexport { ModalLauncher } from './ModalLauncher/ModalLauncher';\n"],"names":[],"version":3,"file":"types.d.ts.map"}
1
+ {"mappings":"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","sources":["packages/components/modal/src/src/ModalHeader/ModalHeader.styles.ts","packages/components/modal/src/src/ModalHeader/ModalHeader.tsx","packages/components/modal/src/src/ModalContent/ModalContent.styles.ts","packages/components/modal/src/src/ModalContent/ModalContent.tsx","packages/components/modal/src/src/Modal.styles.ts","packages/components/modal/src/src/types.ts","packages/components/modal/src/src/Modal.tsx","packages/components/modal/src/src/ModalControls/ModalControls.tsx","packages/components/modal/src/src/CompoundModal.tsx","packages/components/modal/src/src/ModalConfirm/ModalConfirm.tsx","packages/components/modal/src/src/ModalLauncher/ModalLauncher.tsx","packages/components/modal/src/src/index.ts","packages/components/modal/src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,"export { Modal } from './CompoundModal';\nexport type { ModalProps } from './Modal';\nexport { ModalConfirm } from './ModalConfirm/ModalConfirm';\nexport type { ModalConfirmProps } from './ModalConfirm/ModalConfirm';\nexport { ModalContent } from './ModalContent/ModalContent';\nexport type { ModalContentProps } from './ModalContent/ModalContent';\nexport { ModalControls } from './ModalControls/ModalControls';\nexport type { ModalControlsProps } from './ModalControls/ModalControls';\nexport { ModalHeader } from './ModalHeader/ModalHeader';\nexport type { ModalHeaderProps } from './ModalHeader/ModalHeader';\nexport { ModalLauncher } from './ModalLauncher/ModalLauncher';\n"],"names":[],"version":3,"file":"types.d.ts.map"}
package/package.json CHANGED
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "name": "@contentful/f36-modal",
3
- "version": "4.15.0",
3
+ "version": "4.17.0",
4
4
  "description": "Forma 36: Modal component",
5
5
  "scripts": {
6
6
  "build": "parcel build"
7
7
  },
8
8
  "dependencies": {
9
9
  "@babel/runtime": "^7.6.2",
10
- "@contentful/f36-button": "^4.15.0",
11
- "@contentful/f36-core": "^4.15.0",
12
- "@contentful/f36-icons": "^4.15.0",
10
+ "@contentful/f36-button": "^4.17.0",
11
+ "@contentful/f36-core": "^4.17.0",
12
+ "@contentful/f36-icons": "^4.17.0",
13
13
  "@contentful/f36-tokens": "^4.0.1",
14
- "@contentful/f36-typography": "^4.15.0",
14
+ "@contentful/f36-typography": "^4.17.0",
15
15
  "@types/react-modal": "^3.12.1",
16
16
  "emotion": "^10.0.17",
17
17
  "react-modal": "^3.14.3"