{"version":3,"file":"static/js/814.17d08bbc.chunk.js","mappings":"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","sources":["components/Feature/Reusable/YouTubeGetID.js","components/Feature/Testimonial/Testimonial.js","../../../../node_modules/@sitecore-jss/sitecore-jss-react/dist/esm/components/Text.js","../../../../node_modules/dom-helpers/esm/scrollbarSize.js","../../../../node_modules/react-bootstrap/esm/ModalBody.js","../../../../node_modules/react-bootstrap/esm/ModalDialog.js","../../../../node_modules/react-bootstrap/esm/ModalFooter.js","../../../../node_modules/react-bootstrap/esm/ModalHeader.js","../../../../node_modules/react-bootstrap/esm/ModalTitle.js","../../../../node_modules/react-bootstrap/esm/Modal.js"],"sourcesContent":["const YouTubeGetID = (url) => {\r\n if (typeof url !== 'string') {\r\n console.error('Invalid URL type. Expected a string:', url);\r\n return null;\r\n }\r\n\r\n // RegEx to match various YouTube video URL formats\r\n const regex =\r\n /(?:youtube\\.com\\/(?:embed\\/([\\w\\-]{11})|watch\\?v=([\\w\\-]{11})|.+\\/(?:v|e(?:mbed)?)\\/([\\w\\-]{11}))|youtu\\.be\\/([\\w\\-]{11}))/;\r\n const match = url.match(regex);\r\n\r\n if (match) {\r\n // Extract the video ID from matched groups\r\n return match[1] || match[2] || match[3] || match[4];\r\n } else {\r\n // Log the expected error message\r\n console.error('No video ID found in the URL', url);\r\n return null;\r\n }\r\n};\r\n\r\nexport default YouTubeGetID;\r\n","import React, { useState } from 'react';\r\nimport Slider from 'react-slick';\r\nimport { Image, Text, withSitecoreContext } from '@sitecore-jss/sitecore-jss-react';\r\nimport 'bootstrap/dist/css/bootstrap.min.css';\r\nimport { Modal } from 'react-bootstrap';\r\nimport YouTubeGetID from '../Reusable/YouTubeGetID';\r\n\r\nconst Testimonial = (props) => {\r\n const isEditing = props.sitecoreContext.pageEditing;\r\n\r\n const settings = {\r\n infinite: false,\r\n slidesToShow: 2.5,\r\n slidesToScroll: 1,\r\n responsive: [\r\n {\r\n breakpoint: 1440,\r\n settings: {\r\n slidesToShow: 2.5,\r\n slidesToScroll: 1,\r\n },\r\n },\r\n {\r\n breakpoint: 768,\r\n settings: {\r\n slidesToShow: 1.2,\r\n slidesToScroll: 1,\r\n arrows: false,\r\n },\r\n },\r\n ],\r\n };\r\n\r\n const [show, setShow] = useState(false);\r\n const [videoUrl, setVideoUrl] = useState('');\r\n\r\n const modalClose = () => setShow(false);\r\n const modalShow = (url) => {\r\n const videoID = YouTubeGetID(url); // Extract the video ID from the URL\r\n const embedUrl = `https://www.youtube.com/embed/${videoID}`; // Fallback URL\r\n setVideoUrl(embedUrl); // Set the generated embed URL\r\n setShow(true);\r\n };\r\n\r\n return (\r\n <>\r\n <div className={!isEditing ? 'testimonial-wrapper' : ''}>\r\n <div className=\"bg-image\">\r\n <Image field={props?.fields?.BackgroundImage} />\r\n </div>\r\n <div className=\"testimonial-content\">\r\n <div className=\"top-content\">\r\n <Text field={props?.fields?.Title} tag=\"h2\" />\r\n </div>\r\n <Slider {...settings} className=\"testimonial-slider\">\r\n {props?.fields?.Card?.map((card, index) => (\r\n <div key={index} className=\"spaceLR\">\r\n <div className=\"review-box\">\r\n <div className=\"image-box\">\r\n <Image field={card?.fields?.cardImage} />\r\n <Text field={card?.fields?.overlayTitle} tag=\"h3\" />\r\n </div>\r\n <div className=\"review-content\">\r\n <span>\r\n <Image field={card?.fields?.CommaImage} />\r\n </span>\r\n <Text field={card?.fields?.overlayText} tag=\"p\" />\r\n <a className=\"play-btn\" onClick={() => modalShow(card?.fields?.VideoUrl.value)}>\r\n <i>\r\n <Image field={card?.fields?.VideoIcon} />\r\n </i>\r\n <span>Watch Video</span>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n ))}\r\n </Slider>\r\n </div>\r\n </div>\r\n <div className=\"modal-wrapper\">\r\n <Modal show={show} onHide={modalClose} className=\"testimonial-video-wrapper\">\r\n <Modal.Header closeButton></Modal.Header>\r\n <Modal.Body>\r\n <div className=\"ratio ratio-16x9\">\r\n <iframe\r\n src={`${videoUrl}?autoplay=1&rel=0&showinfo=0`}\r\n title=\"YouTube video\"\r\n allow=\"autoplay; encrypted-media\"\r\n allowFullScreen\r\n ></iframe>\r\n </div>\r\n </Modal.Body>\r\n </Modal>\r\n </div>\r\n </>\r\n );\r\n};\r\n\r\nexport default withSitecoreContext()(Testimonial);\r\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React from 'react';\nimport PropTypes from 'prop-types';\nexport const Text = (_a) => {\n var { field, tag, editable, encode } = _a, otherProps = __rest(_a, [\"field\", \"tag\", \"editable\", \"encode\"]);\n if (!field || (!field.editable && (field.value === undefined || field.value === ''))) {\n return null;\n }\n // can't use editable value if we want to output unencoded\n if (!encode) {\n // eslint-disable-next-line no-param-reassign\n editable = false;\n }\n const isEditable = field.editable && editable;\n let output = isEditable\n ? field.editable || ''\n : field.value === undefined\n ? ''\n : field.value;\n // when string value isn't formatted, we should format line breaks\n if (!field.editable && typeof output === 'string') {\n const splitted = String(output).split('\\n');\n if (splitted.length) {\n const formatted = [];\n splitted.forEach((str, i) => {\n const isLast = i === splitted.length - 1;\n formatted.push(str);\n if (!isLast) {\n formatted.push(React.createElement(\"br\", { key: i }));\n }\n });\n output = formatted;\n }\n }\n const setDangerously = isEditable || !encode;\n let children = null;\n const htmlProps = Object.assign({}, otherProps);\n if (setDangerously) {\n htmlProps.dangerouslySetInnerHTML = {\n __html: output,\n };\n }\n else {\n children = output;\n }\n if (tag || setDangerously) {\n return React.createElement(tag || 'span', htmlProps, children);\n }\n else {\n return React.createElement(React.Fragment, null, children);\n }\n};\nText.propTypes = {\n field: PropTypes.shape({\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n editable: PropTypes.string,\n }),\n tag: PropTypes.string,\n editable: PropTypes.bool,\n encode: PropTypes.bool,\n};\nText.defaultProps = {\n editable: true,\n encode: true,\n};\nText.displayName = 'Text';\n","import canUseDOM from './canUseDOM';\nvar size;\nexport default function scrollbarSize(recalc) {\n if (!size && size !== 0 || recalc) {\n if (canUseDOM) {\n var scrollDiv = document.createElement('div');\n scrollDiv.style.position = 'absolute';\n scrollDiv.style.top = '-9999px';\n scrollDiv.style.width = '50px';\n scrollDiv.style.height = '50px';\n scrollDiv.style.overflow = 'scroll';\n document.body.appendChild(scrollDiv);\n size = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n }\n }\n\n return size;\n}","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst ModalBody = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = 'div',\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'modal-body');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nModalBody.displayName = 'ModalBody';\nexport default ModalBody;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst ModalDialog = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n contentClassName,\n centered,\n size,\n fullscreen,\n children,\n scrollable,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'modal');\n const dialogClass = `${bsPrefix}-dialog`;\n const fullScreenClass = typeof fullscreen === 'string' ? `${bsPrefix}-fullscreen-${fullscreen}` : `${bsPrefix}-fullscreen`;\n return /*#__PURE__*/_jsx(\"div\", {\n ...props,\n ref: ref,\n className: classNames(dialogClass, className, size && `${bsPrefix}-${size}`, centered && `${dialogClass}-centered`, scrollable && `${dialogClass}-scrollable`, fullscreen && fullScreenClass),\n children: /*#__PURE__*/_jsx(\"div\", {\n className: classNames(`${bsPrefix}-content`, contentClassName),\n children: children\n })\n });\n});\nModalDialog.displayName = 'ModalDialog';\nexport default ModalDialog;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst ModalFooter = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = 'div',\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'modal-footer');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nModalFooter.displayName = 'ModalFooter';\nexport default ModalFooter;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport AbstractModalHeader from './AbstractModalHeader';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst ModalHeader = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n closeLabel = 'Close',\n closeButton = false,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'modal-header');\n return /*#__PURE__*/_jsx(AbstractModalHeader, {\n ref: ref,\n ...props,\n className: classNames(className, bsPrefix),\n closeLabel: closeLabel,\n closeButton: closeButton\n });\n});\nModalHeader.displayName = 'ModalHeader';\nexport default ModalHeader;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport divWithClassName from './divWithClassName';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DivStyledAsH4 = divWithClassName('h4');\nconst ModalTitle = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = DivStyledAsH4,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'modal-title');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nModalTitle.displayName = 'ModalTitle';\nexport default ModalTitle;","\"use client\";\n\nimport classNames from 'classnames';\nimport addEventListener from 'dom-helpers/addEventListener';\nimport canUseDOM from 'dom-helpers/canUseDOM';\nimport ownerDocument from 'dom-helpers/ownerDocument';\nimport removeEventListener from 'dom-helpers/removeEventListener';\nimport getScrollbarSize from 'dom-helpers/scrollbarSize';\nimport useCallbackRef from '@restart/hooks/useCallbackRef';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nimport useWillUnmount from '@restart/hooks/useWillUnmount';\nimport transitionEnd from 'dom-helpers/transitionEnd';\nimport * as React from 'react';\nimport { useCallback, useMemo, useRef, useState } from 'react';\nimport BaseModal from '@restart/ui/Modal';\nimport { getSharedManager } from './BootstrapModalManager';\nimport Fade from './Fade';\nimport ModalBody from './ModalBody';\nimport ModalContext from './ModalContext';\nimport ModalDialog from './ModalDialog';\nimport ModalFooter from './ModalFooter';\nimport ModalHeader from './ModalHeader';\nimport ModalTitle from './ModalTitle';\nimport { useBootstrapPrefix, useIsRTL } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/* eslint-disable no-use-before-define, react/no-multi-comp */\nfunction DialogTransition(props) {\n return /*#__PURE__*/_jsx(Fade, {\n ...props,\n timeout: null\n });\n}\nfunction BackdropTransition(props) {\n return /*#__PURE__*/_jsx(Fade, {\n ...props,\n timeout: null\n });\n}\n\n/* eslint-enable no-use-before-define */\nconst Modal = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n style,\n dialogClassName,\n contentClassName,\n children,\n dialogAs: Dialog = ModalDialog,\n 'data-bs-theme': dataBsTheme,\n 'aria-labelledby': ariaLabelledby,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n /* BaseModal props */\n\n show = false,\n animation = true,\n backdrop = true,\n keyboard = true,\n onEscapeKeyDown,\n onShow,\n onHide,\n container,\n autoFocus = true,\n enforceFocus = true,\n restoreFocus = true,\n restoreFocusOptions,\n onEntered,\n onExit,\n onExiting,\n onEnter,\n onEntering,\n onExited,\n backdropClassName,\n manager: propsManager,\n ...props\n}, ref) => {\n const [modalStyle, setStyle] = useState({});\n const [animateStaticModal, setAnimateStaticModal] = useState(false);\n const waitingForMouseUpRef = useRef(false);\n const ignoreBackdropClickRef = useRef(false);\n const removeStaticModalAnimationRef = useRef(null);\n const [modal, setModalRef] = useCallbackRef();\n const mergedRef = useMergedRefs(ref, setModalRef);\n const handleHide = useEventCallback(onHide);\n const isRTL = useIsRTL();\n bsPrefix = useBootstrapPrefix(bsPrefix, 'modal');\n const modalContext = useMemo(() => ({\n onHide: handleHide\n }), [handleHide]);\n function getModalManager() {\n if (propsManager) return propsManager;\n return getSharedManager({\n isRTL\n });\n }\n function updateDialogStyle(node) {\n if (!canUseDOM) return;\n const containerIsOverflowing = getModalManager().getScrollbarWidth() > 0;\n const modalIsOverflowing = node.scrollHeight > ownerDocument(node).documentElement.clientHeight;\n setStyle({\n paddingRight: containerIsOverflowing && !modalIsOverflowing ? getScrollbarSize() : undefined,\n paddingLeft: !containerIsOverflowing && modalIsOverflowing ? getScrollbarSize() : undefined\n });\n }\n const handleWindowResize = useEventCallback(() => {\n if (modal) {\n updateDialogStyle(modal.dialog);\n }\n });\n useWillUnmount(() => {\n removeEventListener(window, 'resize', handleWindowResize);\n removeStaticModalAnimationRef.current == null || removeStaticModalAnimationRef.current();\n });\n\n // We prevent the modal from closing during a drag by detecting where the\n // click originates from. If it starts in the modal and then ends outside\n // don't close.\n const handleDialogMouseDown = () => {\n waitingForMouseUpRef.current = true;\n };\n const handleMouseUp = e => {\n if (waitingForMouseUpRef.current && modal && e.target === modal.dialog) {\n ignoreBackdropClickRef.current = true;\n }\n waitingForMouseUpRef.current = false;\n };\n const handleStaticModalAnimation = () => {\n setAnimateStaticModal(true);\n removeStaticModalAnimationRef.current = transitionEnd(modal.dialog, () => {\n setAnimateStaticModal(false);\n });\n };\n const handleStaticBackdropClick = e => {\n if (e.target !== e.currentTarget) {\n return;\n }\n handleStaticModalAnimation();\n };\n const handleClick = e => {\n if (backdrop === 'static') {\n handleStaticBackdropClick(e);\n return;\n }\n if (ignoreBackdropClickRef.current || e.target !== e.currentTarget) {\n ignoreBackdropClickRef.current = false;\n return;\n }\n onHide == null || onHide();\n };\n const handleEscapeKeyDown = e => {\n if (keyboard) {\n onEscapeKeyDown == null || onEscapeKeyDown(e);\n } else {\n // Call preventDefault to stop modal from closing in @restart/ui.\n e.preventDefault();\n if (backdrop === 'static') {\n // Play static modal animation.\n handleStaticModalAnimation();\n }\n }\n };\n const handleEnter = (node, isAppearing) => {\n if (node) {\n updateDialogStyle(node);\n }\n onEnter == null || onEnter(node, isAppearing);\n };\n const handleExit = node => {\n removeStaticModalAnimationRef.current == null || removeStaticModalAnimationRef.current();\n onExit == null || onExit(node);\n };\n const handleEntering = (node, isAppearing) => {\n onEntering == null || onEntering(node, isAppearing);\n\n // FIXME: This should work even when animation is disabled.\n addEventListener(window, 'resize', handleWindowResize);\n };\n const handleExited = node => {\n if (node) node.style.display = ''; // RHL removes it sometimes\n onExited == null || onExited(node);\n\n // FIXME: This should work even when animation is disabled.\n removeEventListener(window, 'resize', handleWindowResize);\n };\n const renderBackdrop = useCallback(backdropProps => /*#__PURE__*/_jsx(\"div\", {\n ...backdropProps,\n className: classNames(`${bsPrefix}-backdrop`, backdropClassName, !animation && 'show')\n }), [animation, backdropClassName, bsPrefix]);\n const baseModalStyle = {\n ...style,\n ...modalStyle\n };\n\n // If `display` is not set to block, autoFocus inside the modal fails\n // https://github.com/react-bootstrap/react-bootstrap/issues/5102\n baseModalStyle.display = 'block';\n const renderDialog = dialogProps => /*#__PURE__*/_jsx(\"div\", {\n role: \"dialog\",\n ...dialogProps,\n style: baseModalStyle,\n className: classNames(className, bsPrefix, animateStaticModal && `${bsPrefix}-static`, !animation && 'show'),\n onClick: backdrop ? handleClick : undefined,\n onMouseUp: handleMouseUp,\n \"data-bs-theme\": dataBsTheme,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledby,\n \"aria-describedby\": ariaDescribedby,\n children: /*#__PURE__*/_jsx(Dialog, {\n ...props,\n onMouseDown: handleDialogMouseDown,\n className: dialogClassName,\n contentClassName: contentClassName,\n children: children\n })\n });\n return /*#__PURE__*/_jsx(ModalContext.Provider, {\n value: modalContext,\n children: /*#__PURE__*/_jsx(BaseModal, {\n show: show,\n ref: mergedRef,\n backdrop: backdrop,\n container: container,\n keyboard: true // Always set true - see handleEscapeKeyDown\n ,\n autoFocus: autoFocus,\n enforceFocus: enforceFocus,\n restoreFocus: restoreFocus,\n restoreFocusOptions: restoreFocusOptions,\n onEscapeKeyDown: handleEscapeKeyDown,\n onShow: onShow,\n onHide: onHide,\n onEnter: handleEnter,\n onEntering: handleEntering,\n onEntered: onEntered,\n onExit: handleExit,\n onExiting: onExiting,\n onExited: handleExited,\n manager: getModalManager(),\n transition: animation ? DialogTransition : undefined,\n backdropTransition: animation ? BackdropTransition : undefined,\n renderBackdrop: renderBackdrop,\n renderDialog: renderDialog\n })\n });\n});\nModal.displayName = 'Modal';\nexport default Object.assign(Modal, {\n Body: ModalBody,\n Header: ModalHeader,\n Title: ModalTitle,\n Footer: ModalFooter,\n Dialog: ModalDialog,\n TRANSITION_DURATION: 300,\n BACKDROP_TRANSITION_DURATION: 150\n});"],"names":["url","console","error","match","withSitecoreContext","props","_props$fields","_props$fields2","_props$fields3","_props$fields3$Card","isEditing","sitecoreContext","pageEditing","show","setShow","useState","videoUrl","setVideoUrl","_jsxs","_Fragment","children","className","_jsx","Image","field","fields","BackgroundImage","Text","Title","tag","Slider","infinite","slidesToShow","slidesToScroll","responsive","breakpoint","settings","arrows","Card","map","card","index","_card$fields","_card$fields2","_card$fields3","_card$fields4","_card$fields6","cardImage","overlayTitle","CommaImage","overlayText","onClick","_card$fields5","videoID","YouTubeGetID","modalShow","VideoUrl","value","VideoIcon","Modal","onHide","modalClose","closeButton","src","title","allow","allowFullScreen","__rest","s","e","t","p","Object","prototype","hasOwnProperty","call","indexOf","getOwnPropertySymbols","i","length","propertyIsEnumerable","_a","editable","encode","otherProps","undefined","isEditable","output","splitted","String","split","formatted","forEach","str","isLast","push","React","key","setDangerously","htmlProps","assign","dangerouslySetInnerHTML","__html","propTypes","PropTypes","defaultProps","displayName","size","scrollbarSize","recalc","canUseDOM","scrollDiv","document","createElement","style","position","top","width","height","overflow","body","appendChild","offsetWidth","clientWidth","removeChild","ModalBody","_ref","ref","bsPrefix","as","Component","useBootstrapPrefix","classNames","ModalDialog","contentClassName","centered","fullscreen","scrollable","dialogClass","fullScreenClass","ModalFooter","ModalHeader","closeLabel","AbstractModalHeader","DivStyledAsH4","divWithClassName","ModalTitle","DialogTransition","Fade","timeout","BackdropTransition","dialogClassName","dialogAs","Dialog","dataBsTheme","ariaLabelledby","ariaDescribedby","ariaLabel","animation","backdrop","keyboard","onEscapeKeyDown","onShow","container","autoFocus","enforceFocus","restoreFocus","restoreFocusOptions","onEntered","onExit","onExiting","onEnter","onEntering","onExited","backdropClassName","manager","propsManager","modalStyle","setStyle","animateStaticModal","setAnimateStaticModal","waitingForMouseUpRef","useRef","ignoreBackdropClickRef","removeStaticModalAnimationRef","modal","setModalRef","useCallbackRef","mergedRef","useMergedRefs","handleHide","useEventCallback","isRTL","useIsRTL","modalContext","useMemo","getModalManager","getSharedManager","updateDialogStyle","node","containerIsOverflowing","getScrollbarWidth","modalIsOverflowing","scrollHeight","ownerDocument","documentElement","clientHeight","paddingRight","getScrollbarSize","paddingLeft","handleWindowResize","dialog","useWillUnmount","removeEventListener","window","current","handleDialogMouseDown","handleMouseUp","target","handleStaticModalAnimation","transitionEnd","handleClick","currentTarget","handleStaticBackdropClick","renderBackdrop","useCallback","backdropProps","baseModalStyle","display","ModalContext","BaseModal","preventDefault","handleEnter","isAppearing","handleEntering","addEventListener","transition","backdropTransition","renderDialog","dialogProps","role","onMouseUp","onMouseDown","Body","Header","Footer","TRANSITION_DURATION","BACKDROP_TRANSITION_DURATION"],"sourceRoot":""}