@razorpay/blade 12.54.0 → 12.55.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/build/lib/native/components/BottomSheet/BottomSheet.native.js +1 -1
  2. package/build/lib/native/components/BottomSheet/BottomSheet.native.js.map +1 -1
  3. package/build/lib/native/components/BottomSheet/BottomSheetBackdrop.native.js +1 -1
  4. package/build/lib/native/components/BottomSheet/BottomSheetBackdrop.native.js.map +1 -1
  5. package/build/lib/native/components/BottomSheet/BottomSheetCommon.js +1 -1
  6. package/build/lib/native/components/BottomSheet/BottomSheetCommon.js.map +1 -1
  7. package/build/lib/native/components/BottomSheet/BottomSheetContext.js +1 -1
  8. package/build/lib/native/components/BottomSheet/BottomSheetContext.js.map +1 -1
  9. package/build/lib/native/components/BottomSheet/BottomSheetHeader.native.js +1 -1
  10. package/build/lib/native/components/BottomSheet/BottomSheetHeader.native.js.map +1 -1
  11. package/build/lib/web/development/components/BottomSheet/BottomSheet.web.js +26 -10
  12. package/build/lib/web/development/components/BottomSheet/BottomSheet.web.js.map +1 -1
  13. package/build/lib/web/development/components/BottomSheet/BottomSheetBackdrop.web.js +5 -2
  14. package/build/lib/web/development/components/BottomSheet/BottomSheetBackdrop.web.js.map +1 -1
  15. package/build/lib/web/development/components/BottomSheet/BottomSheetCommon.js +5 -2
  16. package/build/lib/web/development/components/BottomSheet/BottomSheetCommon.js.map +1 -1
  17. package/build/lib/web/development/components/BottomSheet/BottomSheetContext.js +1 -0
  18. package/build/lib/web/development/components/BottomSheet/BottomSheetContext.js.map +1 -1
  19. package/build/lib/web/development/components/BottomSheet/BottomSheetHeader.web.js +4 -3
  20. package/build/lib/web/development/components/BottomSheet/BottomSheetHeader.web.js.map +1 -1
  21. package/build/lib/web/development/components/Modal/Modal.web.js +8 -5
  22. package/build/lib/web/development/components/Modal/Modal.web.js.map +1 -1
  23. package/build/lib/web/development/components/Modal/ModalBackdrop.js +5 -2
  24. package/build/lib/web/development/components/Modal/ModalBackdrop.js.map +1 -1
  25. package/build/lib/web/development/components/Modal/ModalContext.js +1 -0
  26. package/build/lib/web/development/components/Modal/ModalContext.js.map +1 -1
  27. package/build/lib/web/development/components/Modal/ModalHeader.web.js +7 -4
  28. package/build/lib/web/development/components/Modal/ModalHeader.web.js.map +1 -1
  29. package/build/lib/web/production/components/BottomSheet/BottomSheet.web.js +26 -10
  30. package/build/lib/web/production/components/BottomSheet/BottomSheet.web.js.map +1 -1
  31. package/build/lib/web/production/components/BottomSheet/BottomSheetBackdrop.web.js +5 -2
  32. package/build/lib/web/production/components/BottomSheet/BottomSheetBackdrop.web.js.map +1 -1
  33. package/build/lib/web/production/components/BottomSheet/BottomSheetCommon.js +5 -2
  34. package/build/lib/web/production/components/BottomSheet/BottomSheetCommon.js.map +1 -1
  35. package/build/lib/web/production/components/BottomSheet/BottomSheetContext.js +1 -0
  36. package/build/lib/web/production/components/BottomSheet/BottomSheetContext.js.map +1 -1
  37. package/build/lib/web/production/components/BottomSheet/BottomSheetHeader.web.js +4 -3
  38. package/build/lib/web/production/components/BottomSheet/BottomSheetHeader.web.js.map +1 -1
  39. package/build/lib/web/production/components/Modal/Modal.web.js +8 -5
  40. package/build/lib/web/production/components/Modal/Modal.web.js.map +1 -1
  41. package/build/lib/web/production/components/Modal/ModalBackdrop.js +5 -2
  42. package/build/lib/web/production/components/Modal/ModalBackdrop.js.map +1 -1
  43. package/build/lib/web/production/components/Modal/ModalContext.js +1 -0
  44. package/build/lib/web/production/components/Modal/ModalContext.js.map +1 -1
  45. package/build/lib/web/production/components/Modal/ModalHeader.web.js +7 -4
  46. package/build/lib/web/production/components/Modal/ModalHeader.web.js.map +1 -1
  47. package/build/types/components/index.d.ts +14 -4
  48. package/build/types/components/index.native.d.ts +12 -2
  49. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"BottomSheet.web.js","sources":["../../../../../../src/components/BottomSheet/BottomSheet.web.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable react/jsx-no-useless-fragment */\n/* eslint-disable consistent-return */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport React from 'react';\nimport styled from 'styled-components';\nimport { rubberbandIfOutOfBounds, useDrag } from '@use-gesture/react';\nimport usePresence from 'use-presence';\nimport { clearAllBodyScrollLocks, enableBodyScroll } from 'body-scroll-lock-upgrade';\nimport { BottomSheetHeader } from './BottomSheetHeader';\nimport { BottomSheetFooter } from './BottomSheetFooter';\nimport { BottomSheetBody } from './BottomSheetBody';\nimport type { SnapPoints } from './utils';\nimport { computeMaxContent, computeSnapPointBounds } from './utils';\nimport { BottomSheetBackdrop } from './BottomSheetBackdrop';\nimport type { BottomSheetContextProps } from './BottomSheetContext';\nimport { BottomSheetContext, useBottomSheetAndDropdownGlue } from './BottomSheetContext';\nimport { ComponentIds } from './componentIds';\nimport type { BottomSheetProps } from './types';\nimport { BottomSheetGrabHandle } from './BottomSheetGrabHandle';\nimport { useBottomSheetStack } from './BottomSheetStack';\nimport BaseBox from '~components/Box/BaseBox';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { useScrollLock } from '~utils/useScrollLock';\nimport { useWindowSize } from '~utils/useWindowSize';\nimport { useIsomorphicLayoutEffect } from '~utils/useIsomorphicLayoutEffect';\nimport { useTheme } from '~components/BladeProvider';\nimport { useId } from '~utils/useId';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { makeSize } from '~utils/makeSize';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { size } from '~tokens/global';\nimport { makeMotionTime } from '~utils/makeMotionTime';\nimport { componentZIndices } from '~utils/componentZIndices';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\nexport const BOTTOM_SHEET_EASING = 'cubic-bezier(.15,0,.24,.97)';\nconst AUTOCOMPLETE_DEFAULT_SNAPPOINT = 0.85;\n\nconst BottomSheetSurface = styled.div<{\n windowHeight: number;\n isDragging: boolean;\n}>(({ theme, windowHeight, isDragging }) => {\n return {\n background: theme.colors.popup.background.subtle,\n borderTopLeftRadius: makeSize(size[16]),\n borderTopRightRadius: makeSize(size[16]),\n borderColor: theme.colors.popup.border.subtle,\n // this is reverse top elevation of highRaised elevation token\n boxShadow: '0px -24px 48px -12px hsla(217, 56%, 17%, 0.18)',\n opacity: 0,\n pointerEvents: 'none',\n transitionDuration: isDragging\n ? undefined\n : `${makeMotionTime(theme.motion.duration.moderate)}`,\n transitionTimingFunction: BOTTOM_SHEET_EASING,\n willChange: 'transform, opacity, height',\n transitionProperty: 'transform, opacity, height',\n position: 'fixed',\n left: 0,\n right: 0,\n bottom: 0,\n top: windowHeight,\n backgroundColor: theme.colors.popup.background.subtle,\n justifyContent: 'center',\n alignItems: 'center',\n touchAction: 'none',\n overflow: 'hidden',\n };\n});\n\nconst _BottomSheet = ({\n isOpen,\n onDismiss,\n children,\n initialFocusRef,\n snapPoints = [0.35, 0.5, 0.85],\n zIndex = componentZIndices.bottomSheet,\n ...dataAnalyticsProps\n}: BottomSheetProps): React.ReactElement => {\n const { theme } = useTheme();\n const dimensions = useWindowSize();\n const [contentHeight, setContentHeight] = React.useState(0);\n const [headerHeight, setHeaderHeight] = React.useState(0);\n const [footerHeight, setFooterHeight] = React.useState(0);\n const [grabHandleHeight, setGrabHandleHeight] = React.useState(0);\n const [hasBodyPadding, setHasBodyPadding] = React.useState(true);\n const [isHeaderEmpty, setIsHeaderEmpty] = React.useState(false);\n\n const bottomSheetAndDropdownGlue = useBottomSheetAndDropdownGlue();\n const [positionY, _setPositionY] = React.useState(0);\n const _isOpen = isOpen ?? bottomSheetAndDropdownGlue?.isOpen;\n const [isDragging, setIsDragging] = React.useState(false);\n\n const preventScrollingRef = React.useRef(true);\n const scrollRef = React.useRef<HTMLDivElement>(null);\n const grabHandleRef = React.useRef<HTMLDivElement>(null);\n const defaultInitialFocusRef = React.useRef<any>(null);\n const originalFocusElement = React.useRef<HTMLElement | null>(null);\n const initialSnapPoint = React.useRef<number>(snapPoints[1]);\n const totalHeight = React.useMemo(() => {\n return grabHandleHeight + headerHeight + footerHeight + contentHeight;\n }, [contentHeight, footerHeight, grabHandleHeight, headerHeight]);\n\n const id = useId();\n const {\n stack,\n addBottomSheetToStack,\n removeBottomSheetFromStack,\n getTopOfTheStack,\n getCurrentStackIndexById,\n } = useBottomSheetStack();\n const currentStackIndex = getCurrentStackIndexById(id);\n const isOnTopOfStack = getTopOfTheStack() === id;\n const bottomSheetZIndex = zIndex - currentStackIndex;\n\n const setPositionY = React.useCallback(\n (value: number, limit = true) => {\n // In AutoComplete, we want BottomSheet to be docked to top snappoint so we remove the limits\n const shouldLimitPositionY = limit && !bottomSheetAndDropdownGlue?.hasAutoCompleteInHeader;\n\n const maxValue = computeMaxContent({\n contentHeight,\n footerHeight,\n // If headerHeight is zero no need to add height of grabHandleHeight.\n headerHeight: headerHeight > 0 ? headerHeight + grabHandleHeight : 0,\n maxHeight: value,\n });\n _setPositionY(shouldLimitPositionY ? maxValue : value);\n },\n [\n bottomSheetAndDropdownGlue?.hasAutoCompleteInHeader,\n contentHeight,\n footerHeight,\n grabHandleHeight,\n headerHeight,\n ],\n );\n\n // locks the body scroll to prevent accidental scrolling of content when we drag the sheet\n // We are ready when we calculated the height of the content\n const isReady = contentHeight > 0;\n // only lock the body when we atleast have 1 bottomsheet open\n const shouldLock = isReady && stack.length > 0;\n const scrollLockRef = useScrollLock({\n enabled: shouldLock,\n targetRef: scrollRef,\n reserveScrollBarGap: true,\n });\n\n // clear all body locks to avoid memory leaks & accidental body locking\n React.useEffect(() => {\n const hasNoBottomSheets = stack.length < 1;\n if (hasNoBottomSheets) {\n clearAllBodyScrollLocks();\n }\n }, [stack]);\n\n // take the grabHandle's height into headerHeight too\n useIsomorphicLayoutEffect(() => {\n if (!grabHandleRef.current) return;\n setGrabHandleHeight(grabHandleRef.current.getBoundingClientRect().height);\n }, [grabHandleRef.current, _isOpen]);\n\n // if bottomSheet height is >35% & <50% then set initial snapPoint to 35%\n useIsomorphicLayoutEffect(() => {\n if (bottomSheetAndDropdownGlue?.hasAutoCompleteInHeader) {\n initialSnapPoint.current = AUTOCOMPLETE_DEFAULT_SNAPPOINT;\n } else {\n const middleSnapPoint = snapPoints[1] * dimensions.height;\n const lowerSnapPoint = snapPoints[0] * dimensions.height;\n if (totalHeight > lowerSnapPoint && totalHeight < middleSnapPoint) {\n initialSnapPoint.current = snapPoints[0];\n }\n }\n }, [dimensions.height, snapPoints, totalHeight]);\n\n const returnFocus = React.useCallback(() => {\n if (!originalFocusElement.current) return;\n originalFocusElement.current.focus();\n // After returning focus we will clear the original focus\n // Because if sheet can be opened up via multiple triggers\n // We want to ensure the focus returns back to the most recent triggerer\n originalFocusElement.current = null;\n }, [originalFocusElement]);\n\n const focusOnInitialRef = React.useCallback(() => {\n if (!initialFocusRef) {\n // focus on close button\n defaultInitialFocusRef.current?.focus();\n } else {\n // focus on the initialRef passed by the user\n initialFocusRef.current?.focus();\n }\n }, [initialFocusRef]);\n\n // focus on the initial ref when the sheet is opened\n React.useLayoutEffect(() => {\n if (_isOpen) {\n focusOnInitialRef();\n }\n }, [_isOpen, focusOnInitialRef]);\n\n const handleOnOpen = React.useCallback(() => {\n setPositionY(dimensions.height * initialSnapPoint.current);\n scrollLockRef.current.activate();\n // initialize the original focused element\n // On first render it will be the activeElement, eg: the button trigger or select input\n // On Subsequent open operations it won't further update the original focus\n originalFocusElement.current =\n originalFocusElement.current ?? (document.activeElement as HTMLElement);\n }, [dimensions.height, scrollLockRef, setPositionY]);\n\n const handleOnClose = React.useCallback(() => {\n setPositionY(0);\n }, [setPositionY]);\n\n const close = React.useCallback(() => {\n onDismiss?.();\n bottomSheetAndDropdownGlue?.onBottomSheetDismiss();\n returnFocus();\n }, [bottomSheetAndDropdownGlue, onDismiss, returnFocus]);\n\n // sync controlled state to our actions\n React.useEffect(() => {\n if (_isOpen) {\n // open on the next frame, otherwise the animations will not run on first render\n window.setTimeout(() => {\n handleOnOpen();\n });\n } else {\n handleOnClose();\n }\n }, [_isOpen, handleOnClose, handleOnOpen]);\n\n // let the Dropdown component know that it's rendering a bottomsheet\n React.useEffect(() => {\n if (!bottomSheetAndDropdownGlue) return;\n bottomSheetAndDropdownGlue.setDropdownHasBottomSheet(true);\n }, [bottomSheetAndDropdownGlue]);\n\n const bind = useDrag(\n ({\n active,\n last,\n cancel,\n tap,\n movement: [_movementX, movementY],\n velocity: [_velocityX, velocityY],\n lastOffset: [_, lastOffsetY],\n down,\n dragging,\n event,\n args: [{ isContentDragging = false } = {}] = [],\n }) => {\n // Check if the touch started on a scrollable element (e.g., SpinWheel in TimePicker)\n // This prevents BottomSheet drag gestures from interfering with internal scrolling\n const touchTarget = event?.target as Element | undefined;\n const isScrollableContent = touchTarget?.closest('[data-allow-scroll]');\n\n if (isScrollableContent) {\n return;\n }\n setIsDragging(Boolean(dragging));\n // lastOffsetY is the previous position user stopped dragging the sheet\n // movementY is the drag amount from the bottom of the screen, so as you drag up the movementY goes into negatives\n // and rawY is the calculated offset from the last position of the bottomsheet to current drag amount.\n const rawY = lastOffsetY - movementY;\n\n const lowerSnapPoint = dimensions.height * snapPoints[0];\n const upperSnapPoint = dimensions.height * snapPoints[snapPoints.length - 1];\n\n // predictedY is used to create velocity driven swipe\n // the faster you swipe the more distance you cover\n // this enables users to reach upper & lower snappoint with a single swipe\n const predictedDistance = movementY * (velocityY / 2);\n const predictedY = Math.max(\n lowerSnapPoint,\n Math.min(upperSnapPoint, rawY - predictedDistance * 2),\n );\n\n let newY = rawY;\n\n if (down) {\n // Ensure that users aren't able to drag the sheet\n // more than the upperSnapPoint or maximum height of the sheet\n // this is basically a clamp() function but creates a nice rubberband effect\n const dampening = 0.55;\n if (totalHeight < upperSnapPoint) {\n newY = rubberbandIfOutOfBounds(rawY, 0, totalHeight, dampening);\n } else {\n newY = rubberbandIfOutOfBounds(rawY, 0, upperSnapPoint, dampening);\n }\n } else {\n newY = predictedY;\n }\n\n const isPosAtUpperSnapPoint = newY >= upperSnapPoint;\n\n if (isContentDragging) {\n if (isPosAtUpperSnapPoint) {\n newY = upperSnapPoint;\n }\n\n // keep the newY at upper snap point\n // until the scrollable content is not at top\n // and previously saved Y position is greater than or equal to upper snap point\n // Note: how using newY won't work here since we need the previous value of the newY\n // since we always keep updating the newY,\n // this is cruicial in making the scroll feel natural\n const isContentScrolledAtTop = scrollRef.current && scrollRef.current.scrollTop <= 0;\n if (lastOffsetY === upperSnapPoint && !isContentScrolledAtTop) {\n newY = upperSnapPoint;\n }\n preventScrollingRef.current = newY < upperSnapPoint;\n }\n\n if (last) {\n // calculate the nearest snapPoint\n const [nearest, lower] = computeSnapPointBounds(\n newY,\n snapPoints.map((point) => dimensions.height * point) as SnapPoints,\n );\n\n // This ensure that the lower snapPoint will always have atleast some buffer\n // When the bottomsheet total height is less than the lower snapPoint\n // Video walkthrough: https://www.loom.com/share/a9a8db7688d64194b13df8b3e25859ae\n const lowerPointBuffer = 60;\n const lowerestSnap = Math.min(lower, totalHeight) - lowerPointBuffer;\n\n const shouldClose = rawY < lowerestSnap;\n if (shouldClose) {\n setIsDragging(false);\n cancel();\n close();\n return;\n }\n\n // if we stop dragging assign snap to the nearest point\n if (!active && !tap) {\n newY = nearest;\n }\n }\n\n setPositionY(newY, !down);\n },\n {\n from: [0, positionY],\n filterTaps: true,\n enabled: isOnTopOfStack && _isOpen,\n },\n );\n\n // Here we are preventing the scrolling of the content, until the preventScrollingRef value is true\n useIsomorphicLayoutEffect(() => {\n const scrollElement = scrollRef.current;\n if (!scrollElement) return;\n\n const preventScrolling = (e: Event) => {\n if (preventScrollingRef?.current) {\n // Allow scrolling for components that explicitly need scroll functionality\n const target = e.target as Element;\n const isAllowedComponent = target.closest('[data-allow-scroll]');\n\n if (!isAllowedComponent) {\n e.preventDefault();\n }\n }\n };\n\n // https://www.bram.us/2016/05/02/prevent-overscroll-bounce-in-ios-mobilesafari-pure-css/\n const preventSafariOverscroll = (e: Event) => {\n if (scrollElement.scrollTop < 0) {\n // TODO: figure this out, it doesn't seem to work >iOS12\n // requestAnimationFrame(() => {\n // elem.style.overflow = 'hidden';\n // elem.scrollTop = 0;\n // elem.style.removeProperty('overflow');\n // });\n e.preventDefault();\n }\n };\n\n scrollElement.addEventListener('scroll', preventScrolling);\n scrollElement.addEventListener('touchmove', preventScrolling);\n scrollElement.addEventListener('touchstart', preventSafariOverscroll);\n return () => {\n scrollElement.removeEventListener('scroll', preventScrolling);\n scrollElement.removeEventListener('touchmove', preventScrolling);\n scrollElement.removeEventListener('touchstart', preventSafariOverscroll);\n };\n // Only run this hook when we know all the layout calculations are done,\n // Otherwise the scrollRef.current will be null.\n // isReady prop will ensure that we are done measuring the content height\n }, [isReady]);\n\n // usePresence hook waits for the animation to finish before unmounting the component\n // It's similar to motion/react's usePresence hook\n // https://www.framer.com/docs/animate-presence/#usepresence\n const { isMounted, isVisible } = usePresence(Boolean(_isOpen), {\n transitionDuration: theme.motion.duration.moderate,\n });\n\n const isHeaderFloating = !hasBodyPadding && isHeaderEmpty;\n const contextValue: BottomSheetContextProps = React.useMemo(\n () => ({\n isInBottomSheet: true,\n isOpen: Boolean(isVisible),\n close,\n positionY,\n headerHeight,\n contentHeight,\n footerHeight,\n setContentHeight,\n setFooterHeight,\n setHeaderHeight,\n setHasBodyPadding,\n setIsHeaderEmpty,\n scrollRef,\n bind,\n defaultInitialFocusRef,\n isHeaderFloating,\n }),\n [\n isVisible,\n close,\n positionY,\n headerHeight,\n contentHeight,\n footerHeight,\n setContentHeight,\n setFooterHeight,\n setHeaderHeight,\n setHasBodyPadding,\n setIsHeaderEmpty,\n scrollRef,\n bind,\n defaultInitialFocusRef,\n isHeaderFloating,\n ],\n );\n\n React.useEffect(() => {\n if (isMounted) {\n addBottomSheetToStack(id);\n } else {\n removeBottomSheetFromStack(id);\n }\n }, [addBottomSheetToStack, id, isMounted, removeBottomSheetFromStack]);\n\n // Remove the bottomsheet from the stack, if it's unmounted forcefully\n React.useEffect(() => {\n return () => {\n if (id === undefined) return;\n removeBottomSheetFromStack(id);\n };\n }, [id, removeBottomSheetFromStack]);\n\n // Disable body scroll lock when the component is unmounted forcefully\n React.useEffect(() => {\n const lockTarget = scrollRef.current;\n return () => {\n if (lockTarget) {\n enableBodyScroll(lockTarget);\n }\n };\n // when BottomSheet is mounted with isOpen={false}, then BottomSheetBody does not set scrollRef\n // so, we added scrollRef to dependencies array to ensure that we update lockTarget when scrollRef is updated\n // which will avoid passing null to enableBodyScroll\n }, [scrollRef]);\n\n // We will need to reset these values otherwise the next time the bottomsheet opens\n // this will be populated and the animations won't run\n // why?: because how the usePresence hook works, we actually just unmount the\n // html contents not the whole <BottomSheet /> react component\n React.useEffect(() => {\n if (!isMounted) {\n setHeaderHeight(0);\n setFooterHeight(0);\n setContentHeight(0);\n setGrabHandleHeight(0);\n _setPositionY(0);\n }\n }, [isMounted, scrollLockRef]);\n\n // We don't want to destroy the react tree when we are rendering inside Dropdown\n // Because if we bail out early then ActionList won't render,\n // and Dropdown manages it's state based on the rendered JSX of ActionList\n // If we don't render ActionList Dropdown state will reset each time we open/close BottomSheet\n const isInsideDropdown = Boolean(bottomSheetAndDropdownGlue);\n if (!isMounted && !isInsideDropdown) {\n return <></>;\n }\n\n return (\n <BottomSheetContext.Provider value={contextValue}>\n <BottomSheetBackdrop zIndex={bottomSheetZIndex} />\n <BottomSheetSurface\n {...metaAttribute({\n name: MetaConstants.BottomSheet,\n testID: 'bottomsheet-surface',\n })}\n {...makeAccessible({ modal: true, role: 'dialog' })}\n windowHeight={dimensions.height}\n isDragging={isDragging}\n style={{\n opacity: isVisible ? 1 : 0,\n pointerEvents: isVisible ? 'all' : 'none',\n height: positionY,\n bottom: 0,\n top: 'auto',\n zIndex: bottomSheetZIndex,\n }}\n {...makeAnalyticsAttribute(dataAnalyticsProps)}\n >\n <BaseBox height=\"100%\" display=\"flex\" flexDirection=\"column\">\n <BottomSheetGrabHandle\n ref={grabHandleRef}\n isHeaderFloating={isHeaderFloating}\n {...metaAttribute({ name: ComponentIds.BottomSheetGrabHandle })}\n {...bind()}\n />\n {children}\n </BaseBox>\n </BottomSheetSurface>\n </BottomSheetContext.Provider>\n );\n};\n\nconst BottomSheet = assignWithoutSideEffects(_BottomSheet, {\n componentId: ComponentIds.BottomSheet,\n});\n\nexport { BottomSheet, BottomSheetBody, BottomSheetHeader, BottomSheetFooter };\nexport type { BottomSheetProps };\n"],"names":["BOTTOM_SHEET_EASING","AUTOCOMPLETE_DEFAULT_SNAPPOINT","BottomSheetSurface","styled","div","withConfig","displayName","componentId","_ref","theme","windowHeight","isDragging","background","colors","popup","subtle","borderTopLeftRadius","makeSize","size","borderTopRightRadius","borderColor","border","boxShadow","opacity","pointerEvents","transitionDuration","undefined","concat","makeMotionTime","motion","duration","moderate","transitionTimingFunction","willChange","transitionProperty","position","left","right","bottom","top","backgroundColor","justifyContent","alignItems","touchAction","overflow","_BottomSheet","_ref2","isOpen","onDismiss","children","initialFocusRef","_ref2$snapPoints","snapPoints","_ref2$zIndex","zIndex","componentZIndices","bottomSheet","dataAnalyticsProps","_objectWithoutProperties","_excluded","_useTheme","useTheme","dimensions","useWindowSize","_React$useState","React","useState","_React$useState2","_slicedToArray","contentHeight","setContentHeight","_React$useState3","_React$useState4","headerHeight","setHeaderHeight","_React$useState5","_React$useState6","footerHeight","setFooterHeight","_React$useState7","_React$useState8","grabHandleHeight","setGrabHandleHeight","_React$useState9","_React$useState0","hasBodyPadding","setHasBodyPadding","_React$useState1","_React$useState10","isHeaderEmpty","setIsHeaderEmpty","bottomSheetAndDropdownGlue","useBottomSheetAndDropdownGlue","_React$useState11","_React$useState12","positionY","_setPositionY","_isOpen","_React$useState13","_React$useState14","setIsDragging","preventScrollingRef","useRef","scrollRef","grabHandleRef","defaultInitialFocusRef","originalFocusElement","initialSnapPoint","totalHeight","useMemo","id","useId","_useBottomSheetStack","useBottomSheetStack","stack","addBottomSheetToStack","removeBottomSheetFromStack","getTopOfTheStack","getCurrentStackIndexById","currentStackIndex","isOnTopOfStack","bottomSheetZIndex","setPositionY","useCallback","value","limit","arguments","length","shouldLimitPositionY","hasAutoCompleteInHeader","maxValue","computeMaxContent","maxHeight","isReady","shouldLock","scrollLockRef","useScrollLock","enabled","targetRef","reserveScrollBarGap","useEffect","hasNoBottomSheets","clearAllBodyScrollLocks","useIsomorphicLayoutEffect","current","getBoundingClientRect","height","middleSnapPoint","lowerSnapPoint","returnFocus","focus","focusOnInitialRef","_defaultInitialFocusR","_initialFocusRef$curr","useLayoutEffect","handleOnOpen","_originalFocusElement","activate","document","activeElement","handleOnClose","close","onBottomSheetDismiss","window","setTimeout","setDropdownHasBottomSheet","bind","useDrag","_ref3","active","last","cancel","tap","_ref3$movement","movement","_movementX","movementY","_ref3$velocity","velocity","_velocityX","velocityY","_ref3$lastOffset","lastOffset","_","lastOffsetY","down","dragging","event","_ref3$args","args","_ref3$args2","_ref3$args3","_ref3$args3$","_ref3$args3$2","_ref3$args3$2$isConte","isContentDragging","touchTarget","target","isScrollableContent","closest","Boolean","rawY","upperSnapPoint","predictedDistance","predictedY","Math","max","min","newY","dampening","rubberbandIfOutOfBounds","isPosAtUpperSnapPoint","isContentScrolledAtTop","scrollTop","_computeSnapPointBoun","computeSnapPointBounds","map","point","_computeSnapPointBoun2","nearest","lower","lowerPointBuffer","lowerestSnap","shouldClose","from","filterTaps","scrollElement","preventScrolling","e","isAllowedComponent","preventDefault","preventSafariOverscroll","addEventListener","removeEventListener","_usePresence","usePresence","isMounted","isVisible","isHeaderFloating","contextValue","isInBottomSheet","lockTarget","enableBodyScroll","isInsideDropdown","_jsx","_Fragment","_jsxs","BottomSheetContext","Provider","BottomSheetBackdrop","_objectSpread","metaAttribute","name","MetaConstants","BottomSheet","testID","makeAccessible","modal","role","style","makeAnalyticsAttribute","BaseBox","display","flexDirection","BottomSheetGrabHandle","ref","ComponentIds","assignWithoutSideEffects"],"mappings":"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"}
1
+ {"version":3,"file":"BottomSheet.web.js","sources":["../../../../../../src/components/BottomSheet/BottomSheet.web.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable react/jsx-no-useless-fragment */\n/* eslint-disable consistent-return */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport React from 'react';\nimport styled from 'styled-components';\nimport { rubberbandIfOutOfBounds, useDrag } from '@use-gesture/react';\nimport usePresence from 'use-presence';\nimport { clearAllBodyScrollLocks, enableBodyScroll } from 'body-scroll-lock-upgrade';\nimport { BottomSheetHeader } from './BottomSheetHeader';\nimport { BottomSheetFooter } from './BottomSheetFooter';\nimport { BottomSheetBody } from './BottomSheetBody';\nimport type { SnapPoints } from './utils';\nimport { computeMaxContent, computeSnapPointBounds } from './utils';\nimport { BottomSheetBackdrop } from './BottomSheetBackdrop';\nimport type { BottomSheetContextProps } from './BottomSheetContext';\nimport { BottomSheetContext, useBottomSheetAndDropdownGlue } from './BottomSheetContext';\nimport { ComponentIds } from './componentIds';\nimport type { BottomSheetProps } from './types';\nimport { BottomSheetGrabHandle } from './BottomSheetGrabHandle';\nimport { useBottomSheetStack } from './BottomSheetStack';\nimport BaseBox from '~components/Box/BaseBox';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { useScrollLock } from '~utils/useScrollLock';\nimport { useWindowSize } from '~utils/useWindowSize';\nimport { useIsomorphicLayoutEffect } from '~utils/useIsomorphicLayoutEffect';\nimport { useTheme } from '~components/BladeProvider';\nimport { useId } from '~utils/useId';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { makeSize } from '~utils/makeSize';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { size } from '~tokens/global';\nimport { makeMotionTime } from '~utils/makeMotionTime';\nimport { componentZIndices } from '~utils/componentZIndices';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\nexport const BOTTOM_SHEET_EASING = 'cubic-bezier(.15,0,.24,.97)';\nconst AUTOCOMPLETE_DEFAULT_SNAPPOINT = 0.85;\n\nconst BottomSheetSurface = styled.div<{\n windowHeight: number;\n isDragging: boolean;\n}>(({ theme, windowHeight, isDragging }) => {\n return {\n background: theme.colors.popup.background.subtle,\n borderTopLeftRadius: makeSize(size[16]),\n borderTopRightRadius: makeSize(size[16]),\n borderColor: theme.colors.popup.border.subtle,\n // this is reverse top elevation of highRaised elevation token\n boxShadow: '0px -24px 48px -12px hsla(217, 56%, 17%, 0.18)',\n opacity: 0,\n pointerEvents: 'none',\n transitionDuration: isDragging\n ? undefined\n : `${makeMotionTime(theme.motion.duration.moderate)}`,\n transitionTimingFunction: BOTTOM_SHEET_EASING,\n willChange: 'transform, opacity, height',\n transitionProperty: 'transform, opacity, height',\n position: 'fixed',\n left: 0,\n right: 0,\n bottom: 0,\n top: windowHeight,\n backgroundColor: theme.colors.popup.background.subtle,\n justifyContent: 'center',\n alignItems: 'center',\n touchAction: 'none',\n overflow: 'hidden',\n };\n});\n\nconst _BottomSheet = ({\n isOpen,\n onDismiss,\n children,\n initialFocusRef,\n snapPoints = [0.35, 0.5, 0.85],\n isDismissible = true,\n zIndex = componentZIndices.bottomSheet,\n ...dataAnalyticsProps\n}: BottomSheetProps): React.ReactElement => {\n const { theme } = useTheme();\n const dimensions = useWindowSize();\n const [contentHeight, setContentHeight] = React.useState(0);\n const [headerHeight, setHeaderHeight] = React.useState(0);\n const [footerHeight, setFooterHeight] = React.useState(0);\n const [grabHandleHeight, setGrabHandleHeight] = React.useState(0);\n const [hasBodyPadding, setHasBodyPadding] = React.useState(true);\n const [isHeaderEmpty, setIsHeaderEmpty] = React.useState(false);\n\n const bottomSheetAndDropdownGlue = useBottomSheetAndDropdownGlue();\n const [positionY, _setPositionY] = React.useState(0);\n const _isOpen = isOpen ?? bottomSheetAndDropdownGlue?.isOpen;\n const [isDragging, setIsDragging] = React.useState(false);\n\n const preventScrollingRef = React.useRef(true);\n const scrollRef = React.useRef<HTMLDivElement>(null);\n const grabHandleRef = React.useRef<HTMLDivElement>(null);\n const defaultInitialFocusRef = React.useRef<any>(null);\n const originalFocusElement = React.useRef<HTMLElement | null>(null);\n const initialSnapPoint = React.useRef<number>(snapPoints[1]);\n const totalHeight = React.useMemo(() => {\n return grabHandleHeight + headerHeight + footerHeight + contentHeight;\n }, [contentHeight, footerHeight, grabHandleHeight, headerHeight]);\n\n const id = useId();\n const {\n stack,\n addBottomSheetToStack,\n removeBottomSheetFromStack,\n getTopOfTheStack,\n getCurrentStackIndexById,\n } = useBottomSheetStack();\n const currentStackIndex = getCurrentStackIndexById(id);\n const isOnTopOfStack = getTopOfTheStack() === id;\n const bottomSheetZIndex = zIndex - currentStackIndex;\n\n const setPositionY = React.useCallback(\n (value: number, limit = true) => {\n // In AutoComplete, we want BottomSheet to be docked to top snappoint so we remove the limits\n const shouldLimitPositionY = limit && !bottomSheetAndDropdownGlue?.hasAutoCompleteInHeader;\n\n const maxValue = computeMaxContent({\n contentHeight,\n footerHeight,\n // If headerHeight is zero no need to add height of grabHandleHeight.\n headerHeight: headerHeight > 0 ? headerHeight + grabHandleHeight : 0,\n maxHeight: value,\n });\n _setPositionY(shouldLimitPositionY ? maxValue : value);\n },\n [\n bottomSheetAndDropdownGlue?.hasAutoCompleteInHeader,\n contentHeight,\n footerHeight,\n grabHandleHeight,\n headerHeight,\n ],\n );\n\n // locks the body scroll to prevent accidental scrolling of content when we drag the sheet\n // We are ready when we calculated the height of the content\n const isReady = contentHeight > 0;\n // only lock the body when we atleast have 1 bottomsheet open\n const shouldLock = isReady && stack.length > 0;\n const scrollLockRef = useScrollLock({\n enabled: shouldLock,\n targetRef: scrollRef,\n reserveScrollBarGap: true,\n });\n\n // clear all body locks to avoid memory leaks & accidental body locking\n React.useEffect(() => {\n const hasNoBottomSheets = stack.length < 1;\n if (hasNoBottomSheets) {\n clearAllBodyScrollLocks();\n }\n }, [stack]);\n\n // take the grabHandle's height into headerHeight too\n useIsomorphicLayoutEffect(() => {\n if (!grabHandleRef.current) return;\n setGrabHandleHeight(grabHandleRef.current.getBoundingClientRect().height);\n }, [grabHandleRef.current, _isOpen]);\n\n // if bottomSheet height is >35% & <50% then set initial snapPoint to 35%\n useIsomorphicLayoutEffect(() => {\n if (bottomSheetAndDropdownGlue?.hasAutoCompleteInHeader) {\n initialSnapPoint.current = AUTOCOMPLETE_DEFAULT_SNAPPOINT;\n } else {\n const middleSnapPoint = snapPoints[1] * dimensions.height;\n const lowerSnapPoint = snapPoints[0] * dimensions.height;\n if (totalHeight > lowerSnapPoint && totalHeight < middleSnapPoint) {\n initialSnapPoint.current = snapPoints[0];\n }\n }\n }, [dimensions.height, snapPoints, totalHeight]);\n\n const returnFocus = React.useCallback(() => {\n if (!originalFocusElement.current) return;\n originalFocusElement.current.focus();\n // After returning focus we will clear the original focus\n // Because if sheet can be opened up via multiple triggers\n // We want to ensure the focus returns back to the most recent triggerer\n originalFocusElement.current = null;\n }, [originalFocusElement]);\n\n const focusOnInitialRef = React.useCallback(() => {\n if (!initialFocusRef) {\n // focus on close button\n defaultInitialFocusRef.current?.focus();\n } else {\n // focus on the initialRef passed by the user\n initialFocusRef.current?.focus();\n }\n }, [initialFocusRef]);\n\n // focus on the initial ref when the sheet is opened\n React.useLayoutEffect(() => {\n if (_isOpen) {\n focusOnInitialRef();\n }\n }, [_isOpen, focusOnInitialRef]);\n\n const handleOnOpen = React.useCallback(() => {\n setPositionY(dimensions.height * initialSnapPoint.current);\n scrollLockRef.current.activate();\n // initialize the original focused element\n // On first render it will be the activeElement, eg: the button trigger or select input\n // On Subsequent open operations it won't further update the original focus\n originalFocusElement.current =\n originalFocusElement.current ?? (document.activeElement as HTMLElement);\n }, [dimensions.height, scrollLockRef, setPositionY]);\n\n const handleOnClose = React.useCallback(() => {\n setPositionY(0);\n }, [setPositionY]);\n\n const close = React.useCallback(() => {\n if (isDismissible) {\n onDismiss?.();\n bottomSheetAndDropdownGlue?.onBottomSheetDismiss?.();\n }\n returnFocus();\n }, [isDismissible, onDismiss, bottomSheetAndDropdownGlue, returnFocus]);\n\n // sync controlled state to our actions\n React.useEffect(() => {\n if (_isOpen) {\n // open on the next frame, otherwise the animations will not run on first render\n window.setTimeout(() => {\n handleOnOpen();\n });\n } else {\n handleOnClose();\n }\n }, [_isOpen, handleOnClose, handleOnOpen]);\n\n // let the Dropdown component know that it's rendering a bottomsheet\n React.useEffect(() => {\n if (!bottomSheetAndDropdownGlue) return;\n bottomSheetAndDropdownGlue.setDropdownHasBottomSheet(true);\n }, [bottomSheetAndDropdownGlue]);\n\n const bind = useDrag(\n ({\n active,\n last,\n cancel,\n tap,\n movement: [_movementX, movementY],\n velocity: [_velocityX, velocityY],\n lastOffset: [_, lastOffsetY],\n down,\n dragging,\n event,\n args: [{ isContentDragging = false } = {}] = [],\n }) => {\n // Check if the touch started on a scrollable element (e.g., SpinWheel in TimePicker)\n // This prevents BottomSheet drag gestures from interfering with internal scrolling\n const touchTarget = event?.target as Element | undefined;\n const isScrollableContent = touchTarget?.closest('[data-allow-scroll]');\n\n if (isScrollableContent) {\n return;\n }\n setIsDragging(Boolean(dragging));\n // lastOffsetY is the previous position user stopped dragging the sheet\n // movementY is the drag amount from the bottom of the screen, so as you drag up the movementY goes into negatives\n // and rawY is the calculated offset from the last position of the bottomsheet to current drag amount.\n const rawY = lastOffsetY - movementY;\n\n const lowerSnapPoint = dimensions.height * snapPoints[0];\n const upperSnapPoint = dimensions.height * snapPoints[snapPoints.length - 1];\n\n // predictedY is used to create velocity driven swipe\n // the faster you swipe the more distance you cover\n // this enables users to reach upper & lower snappoint with a single swipe\n const predictedDistance = movementY * (velocityY / 2);\n const predictedY = Math.max(\n lowerSnapPoint,\n Math.min(upperSnapPoint, rawY - predictedDistance * 2),\n );\n\n let newY = rawY;\n\n if (down) {\n // Ensure that users aren't able to drag the sheet\n // more than the upperSnapPoint or maximum height of the sheet\n // this is basically a clamp() function but creates a nice rubberband effect\n const dampening = 0.55;\n if (totalHeight < upperSnapPoint) {\n newY = rubberbandIfOutOfBounds(rawY, 0, totalHeight, dampening);\n } else {\n newY = rubberbandIfOutOfBounds(rawY, 0, upperSnapPoint, dampening);\n }\n } else {\n newY = predictedY;\n }\n\n const isPosAtUpperSnapPoint = newY >= upperSnapPoint;\n\n if (isContentDragging) {\n if (isPosAtUpperSnapPoint) {\n newY = upperSnapPoint;\n }\n\n // keep the newY at upper snap point\n // until the scrollable content is not at top\n // and previously saved Y position is greater than or equal to upper snap point\n // Note: how using newY won't work here since we need the previous value of the newY\n // since we always keep updating the newY,\n // this is cruicial in making the scroll feel natural\n const isContentScrolledAtTop = scrollRef.current && scrollRef.current.scrollTop <= 0;\n if (lastOffsetY === upperSnapPoint && !isContentScrolledAtTop) {\n newY = upperSnapPoint;\n }\n preventScrollingRef.current = newY < upperSnapPoint;\n }\n\n if (last) {\n // calculate the nearest snapPoint\n const [nearest, lower] = computeSnapPointBounds(\n newY,\n snapPoints.map((point) => dimensions.height * point) as SnapPoints,\n );\n\n // This ensure that the lower snapPoint will always have atleast some buffer\n // When the bottomsheet total height is less than the lower snapPoint\n // Video walkthrough: https://www.loom.com/share/a9a8db7688d64194b13df8b3e25859ae\n const lowerPointBuffer = 60;\n const lowerestSnap = Math.min(lower, totalHeight) - lowerPointBuffer;\n\n const shouldClose = rawY < lowerestSnap;\n if (shouldClose) {\n if (isDismissible) {\n // Allow closing if dismissible\n setIsDragging(false);\n cancel();\n close();\n return;\n } else {\n // If not dismissible, snap back to first snap point instead of closing\n setIsDragging(false);\n cancel();\n const firstSnapPoint = dimensions.height * snapPoints[0];\n setPositionY(firstSnapPoint, true);\n return;\n }\n }\n\n // if we stop dragging assign snap to the nearest point\n if (!active && !tap) {\n newY = nearest;\n }\n }\n\n setPositionY(newY, !down);\n },\n {\n from: [0, positionY],\n filterTaps: true,\n enabled: isOnTopOfStack && _isOpen,\n },\n );\n\n // Here we are preventing the scrolling of the content, until the preventScrollingRef value is true\n useIsomorphicLayoutEffect(() => {\n const scrollElement = scrollRef.current;\n if (!scrollElement) return;\n\n const preventScrolling = (e: Event) => {\n if (preventScrollingRef?.current) {\n // Allow scrolling for components that explicitly need scroll functionality\n const target = e.target as Element;\n const isAllowedComponent = target.closest('[data-allow-scroll]');\n\n if (!isAllowedComponent) {\n e.preventDefault();\n }\n }\n };\n\n // https://www.bram.us/2016/05/02/prevent-overscroll-bounce-in-ios-mobilesafari-pure-css/\n const preventSafariOverscroll = (e: Event) => {\n if (scrollElement.scrollTop < 0) {\n // TODO: figure this out, it doesn't seem to work >iOS12\n // requestAnimationFrame(() => {\n // elem.style.overflow = 'hidden';\n // elem.scrollTop = 0;\n // elem.style.removeProperty('overflow');\n // });\n e.preventDefault();\n }\n };\n\n scrollElement.addEventListener('scroll', preventScrolling);\n scrollElement.addEventListener('touchmove', preventScrolling);\n scrollElement.addEventListener('touchstart', preventSafariOverscroll);\n return () => {\n scrollElement.removeEventListener('scroll', preventScrolling);\n scrollElement.removeEventListener('touchmove', preventScrolling);\n scrollElement.removeEventListener('touchstart', preventSafariOverscroll);\n };\n // Only run this hook when we know all the layout calculations are done,\n // Otherwise the scrollRef.current will be null.\n // isReady prop will ensure that we are done measuring the content height\n }, [isReady]);\n\n // usePresence hook waits for the animation to finish before unmounting the component\n // It's similar to motion/react's usePresence hook\n // https://www.framer.com/docs/animate-presence/#usepresence\n const { isMounted, isVisible } = usePresence(Boolean(_isOpen), {\n transitionDuration: theme.motion.duration.moderate,\n });\n\n const isHeaderFloating = !hasBodyPadding && isHeaderEmpty;\n const contextValue: BottomSheetContextProps = React.useMemo(\n () => ({\n isInBottomSheet: true,\n isOpen: Boolean(isVisible),\n close,\n positionY,\n headerHeight,\n contentHeight,\n footerHeight,\n setContentHeight,\n setFooterHeight,\n setHeaderHeight,\n setHasBodyPadding,\n setIsHeaderEmpty,\n scrollRef,\n bind,\n defaultInitialFocusRef,\n isHeaderFloating,\n isDismissible,\n }),\n [\n isVisible,\n close,\n positionY,\n headerHeight,\n contentHeight,\n footerHeight,\n setContentHeight,\n setFooterHeight,\n setHeaderHeight,\n setHasBodyPadding,\n setIsHeaderEmpty,\n scrollRef,\n bind,\n defaultInitialFocusRef,\n isHeaderFloating,\n isDismissible,\n ],\n );\n\n React.useEffect(() => {\n if (isMounted) {\n addBottomSheetToStack(id);\n } else {\n removeBottomSheetFromStack(id);\n }\n }, [addBottomSheetToStack, id, isMounted, removeBottomSheetFromStack]);\n\n // Remove the bottomsheet from the stack, if it's unmounted forcefully\n React.useEffect(() => {\n return () => {\n if (id === undefined) return;\n removeBottomSheetFromStack(id);\n };\n }, [id, removeBottomSheetFromStack]);\n\n // Disable body scroll lock when the component is unmounted forcefully\n React.useEffect(() => {\n const lockTarget = scrollRef.current;\n return () => {\n if (lockTarget) {\n enableBodyScroll(lockTarget);\n }\n };\n // when BottomSheet is mounted with isOpen={false}, then BottomSheetBody does not set scrollRef\n // so, we added scrollRef to dependencies array to ensure that we update lockTarget when scrollRef is updated\n // which will avoid passing null to enableBodyScroll\n }, [scrollRef]);\n\n // We will need to reset these values otherwise the next time the bottomsheet opens\n // this will be populated and the animations won't run\n // why?: because how the usePresence hook works, we actually just unmount the\n // html contents not the whole <BottomSheet /> react component\n React.useEffect(() => {\n if (!isMounted) {\n setHeaderHeight(0);\n setFooterHeight(0);\n setContentHeight(0);\n setGrabHandleHeight(0);\n _setPositionY(0);\n }\n }, [isMounted, scrollLockRef]);\n\n // We don't want to destroy the react tree when we are rendering inside Dropdown\n // Because if we bail out early then ActionList won't render,\n // and Dropdown manages it's state based on the rendered JSX of ActionList\n // If we don't render ActionList Dropdown state will reset each time we open/close BottomSheet\n const isInsideDropdown = Boolean(bottomSheetAndDropdownGlue);\n if (!isMounted && !isInsideDropdown) {\n return <></>;\n }\n\n return (\n <BottomSheetContext.Provider value={contextValue}>\n <BottomSheetBackdrop zIndex={bottomSheetZIndex} />\n <BottomSheetSurface\n {...metaAttribute({\n name: MetaConstants.BottomSheet,\n testID: 'bottomsheet-surface',\n })}\n {...makeAccessible({ modal: true, role: 'dialog' })}\n windowHeight={dimensions.height}\n isDragging={isDragging}\n style={{\n opacity: isVisible ? 1 : 0,\n pointerEvents: isVisible ? 'all' : 'none',\n height: positionY,\n bottom: 0,\n top: 'auto',\n zIndex: bottomSheetZIndex,\n }}\n {...makeAnalyticsAttribute(dataAnalyticsProps)}\n >\n <BaseBox height=\"100%\" display=\"flex\" flexDirection=\"column\">\n <BottomSheetGrabHandle\n ref={grabHandleRef}\n isHeaderFloating={isHeaderFloating}\n {...metaAttribute({ name: ComponentIds.BottomSheetGrabHandle })}\n {...bind()}\n />\n {children}\n </BaseBox>\n </BottomSheetSurface>\n </BottomSheetContext.Provider>\n );\n};\n\nconst BottomSheet = assignWithoutSideEffects(_BottomSheet, {\n componentId: ComponentIds.BottomSheet,\n});\n\nexport { BottomSheet, BottomSheetBody, BottomSheetHeader, BottomSheetFooter };\nexport type { BottomSheetProps };\n"],"names":["BOTTOM_SHEET_EASING","AUTOCOMPLETE_DEFAULT_SNAPPOINT","BottomSheetSurface","styled","div","withConfig","displayName","componentId","_ref","theme","windowHeight","isDragging","background","colors","popup","subtle","borderTopLeftRadius","makeSize","size","borderTopRightRadius","borderColor","border","boxShadow","opacity","pointerEvents","transitionDuration","undefined","concat","makeMotionTime","motion","duration","moderate","transitionTimingFunction","willChange","transitionProperty","position","left","right","bottom","top","backgroundColor","justifyContent","alignItems","touchAction","overflow","_BottomSheet","_ref2","isOpen","onDismiss","children","initialFocusRef","_ref2$snapPoints","snapPoints","_ref2$isDismissible","isDismissible","_ref2$zIndex","zIndex","componentZIndices","bottomSheet","dataAnalyticsProps","_objectWithoutProperties","_excluded","_useTheme","useTheme","dimensions","useWindowSize","_React$useState","React","useState","_React$useState2","_slicedToArray","contentHeight","setContentHeight","_React$useState3","_React$useState4","headerHeight","setHeaderHeight","_React$useState5","_React$useState6","footerHeight","setFooterHeight","_React$useState7","_React$useState8","grabHandleHeight","setGrabHandleHeight","_React$useState9","_React$useState0","hasBodyPadding","setHasBodyPadding","_React$useState1","_React$useState10","isHeaderEmpty","setIsHeaderEmpty","bottomSheetAndDropdownGlue","useBottomSheetAndDropdownGlue","_React$useState11","_React$useState12","positionY","_setPositionY","_isOpen","_React$useState13","_React$useState14","setIsDragging","preventScrollingRef","useRef","scrollRef","grabHandleRef","defaultInitialFocusRef","originalFocusElement","initialSnapPoint","totalHeight","useMemo","id","useId","_useBottomSheetStack","useBottomSheetStack","stack","addBottomSheetToStack","removeBottomSheetFromStack","getTopOfTheStack","getCurrentStackIndexById","currentStackIndex","isOnTopOfStack","bottomSheetZIndex","setPositionY","useCallback","value","limit","arguments","length","shouldLimitPositionY","hasAutoCompleteInHeader","maxValue","computeMaxContent","maxHeight","isReady","shouldLock","scrollLockRef","useScrollLock","enabled","targetRef","reserveScrollBarGap","useEffect","hasNoBottomSheets","clearAllBodyScrollLocks","useIsomorphicLayoutEffect","current","getBoundingClientRect","height","middleSnapPoint","lowerSnapPoint","returnFocus","focus","focusOnInitialRef","_defaultInitialFocusR","_initialFocusRef$curr","useLayoutEffect","handleOnOpen","_originalFocusElement","activate","document","activeElement","handleOnClose","close","_bottomSheetAndDropdo","onBottomSheetDismiss","call","window","setTimeout","setDropdownHasBottomSheet","bind","useDrag","_ref3","active","last","cancel","tap","_ref3$movement","movement","_movementX","movementY","_ref3$velocity","velocity","_velocityX","velocityY","_ref3$lastOffset","lastOffset","_","lastOffsetY","down","dragging","event","_ref3$args","args","_ref3$args2","_ref3$args3","_ref3$args3$","_ref3$args3$2","_ref3$args3$2$isConte","isContentDragging","touchTarget","target","isScrollableContent","closest","Boolean","rawY","upperSnapPoint","predictedDistance","predictedY","Math","max","min","newY","dampening","rubberbandIfOutOfBounds","isPosAtUpperSnapPoint","isContentScrolledAtTop","scrollTop","_computeSnapPointBoun","computeSnapPointBounds","map","point","_computeSnapPointBoun2","nearest","lower","lowerPointBuffer","lowerestSnap","shouldClose","firstSnapPoint","from","filterTaps","scrollElement","preventScrolling","e","isAllowedComponent","preventDefault","preventSafariOverscroll","addEventListener","removeEventListener","_usePresence","usePresence","isMounted","isVisible","isHeaderFloating","contextValue","isInBottomSheet","lockTarget","enableBodyScroll","isInsideDropdown","_jsx","_Fragment","_jsxs","BottomSheetContext","Provider","BottomSheetBackdrop","_objectSpread","metaAttribute","name","MetaConstants","BottomSheet","testID","makeAccessible","modal","role","style","makeAnalyticsAttribute","BaseBox","display","flexDirection","BottomSheetGrabHandle","ref","ComponentIds","assignWithoutSideEffects"],"mappings":"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"}
@@ -31,12 +31,15 @@ var BottomSheetBackdrop = function BottomSheetBackdrop(_ref2) {
31
31
  var zIndex = _ref2.zIndex;
32
32
  var _useBottomSheetContex = useBottomSheetContext(),
33
33
  close = _useBottomSheetContex.close,
34
- isOpen = _useBottomSheetContex.isOpen;
34
+ isOpen = _useBottomSheetContex.isOpen,
35
+ isDismissible = _useBottomSheetContex.isDismissible;
35
36
  return /*#__PURE__*/jsx(StyledBottomSheetBackdrop, _objectSpread(_objectSpread({}, metaAttribute({
36
37
  testID: 'bottomsheet-backdrop'
37
38
  })), {}, {
38
39
  onClick: function onClick() {
39
- close();
40
+ if (isDismissible) {
41
+ close === null || close === void 0 || close();
42
+ }
40
43
  },
41
44
  isOpen: isOpen,
42
45
  opacity: isOpen ? 1 : 0,
@@ -1 +1 @@
1
- {"version":3,"file":"BottomSheetBackdrop.web.js","sources":["../../../../../../src/components/BottomSheet/BottomSheetBackdrop.web.tsx"],"sourcesContent":["/* eslint-disable react/display-name */\nimport React from 'react';\nimport styled from 'styled-components';\nimport { useBottomSheetContext } from './BottomSheetContext';\nimport BaseBox from '~components/Box/BaseBox';\nimport { castWebType } from '~utils';\nimport { metaAttribute } from '~utils/metaAttribute';\nimport { makeMotionTime } from '~utils/makeMotionTime';\n\nconst StyledBottomSheetBackdrop = styled(BaseBox)<{ isOpen: boolean }>(({ theme, isOpen }) => {\n return {\n transitionDuration: `${makeMotionTime(theme.motion.duration.moderate)}`,\n transitionTimingFunction: isOpen\n ? castWebType(theme.motion.easing.entrance)\n : castWebType(theme.motion.easing.exit),\n pointerEvents: isOpen ? 'all' : 'none',\n transitionProperty: 'opacity',\n };\n});\n\nconst BottomSheetBackdrop = ({ zIndex }: { zIndex: number }): React.ReactElement => {\n const { close, isOpen } = useBottomSheetContext();\n\n return (\n <StyledBottomSheetBackdrop\n {...metaAttribute({ testID: 'bottomsheet-backdrop' })}\n onClick={() => {\n close();\n }}\n isOpen={isOpen}\n opacity={isOpen ? 1 : 0}\n position=\"fixed\"\n left=\"spacing.0\"\n top=\"spacing.0\"\n bottom=\"spacing.0\"\n right=\"spacing.0\"\n zIndex={zIndex}\n backgroundColor=\"overlay.background.subtle\"\n />\n );\n};\n\nexport { BottomSheetBackdrop };\n"],"names":["StyledBottomSheetBackdrop","styled","BaseBox","withConfig","displayName","componentId","_ref","theme","isOpen","transitionDuration","concat","makeMotionTime","motion","duration","moderate","transitionTimingFunction","castWebType","easing","entrance","exit","pointerEvents","transitionProperty","BottomSheetBackdrop","_ref2","zIndex","_useBottomSheetContex","useBottomSheetContext","close","_jsx","_objectSpread","metaAttribute","testID","onClick","opacity","position","left","top","bottom","right","backgroundColor"],"mappings":";;;;;;;;;;;;;;;;AASA,IAAMA,yBAAyB,gBAAGC,MAAM,CAACC,OAAO,CAAC,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,mDAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAAsB,CAAA,CAAA,UAAAC,IAAA,EAAuB;AAAA,EAAA,IAApBC,KAAK,GAAAD,IAAA,CAALC,KAAK;IAAEC,MAAM,GAAAF,IAAA,CAANE,MAAM,CAAA;EACrF,OAAO;AACLC,IAAAA,kBAAkB,EAAAC,EAAAA,CAAAA,MAAA,CAAKC,cAAc,CAACJ,KAAK,CAACK,MAAM,CAACC,QAAQ,CAACC,QAAQ,CAAC,CAAE;IACvEC,wBAAwB,EAAEP,MAAM,GAC5BQ,WAAW,CAACT,KAAK,CAACK,MAAM,CAACK,MAAM,CAACC,QAAQ,CAAC,GACzCF,WAAW,CAACT,KAAK,CAACK,MAAM,CAACK,MAAM,CAACE,IAAI,CAAC;AACzCC,IAAAA,aAAa,EAAEZ,MAAM,GAAG,KAAK,GAAG,MAAM;AACtCa,IAAAA,kBAAkB,EAAE,SAAA;GACrB,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAAC,KAAA,EAA2D;AAAA,EAAA,IAArDC,MAAM,GAAAD,KAAA,CAANC,MAAM,CAAA;AACnC,EAAA,IAAAC,qBAAA,GAA0BC,qBAAqB,EAAE;IAAzCC,KAAK,GAAAF,qBAAA,CAALE,KAAK;IAAEnB,MAAM,GAAAiB,qBAAA,CAANjB,MAAM,CAAA;EAErB,oBACEoB,GAAA,CAAC5B,yBAAyB,EAAA6B,aAAA,CAAAA,aAAA,CACpBC,EAAAA,EAAAA,aAAa,CAAC;AAAEC,IAAAA,MAAM,EAAE,sBAAA;AAAuB,GAAC,CAAC,CAAA,EAAA,EAAA,EAAA;AACrDC,IAAAA,OAAO,EAAE,SAATA,OAAOA,GAAQ;AACbL,MAAAA,KAAK,EAAE,CAAA;KACP;AACFnB,IAAAA,MAAM,EAAEA,MAAO;AACfyB,IAAAA,OAAO,EAAEzB,MAAM,GAAG,CAAC,GAAG,CAAE;AACxB0B,IAAAA,QAAQ,EAAC,OAAO;AAChBC,IAAAA,IAAI,EAAC,WAAW;AAChBC,IAAAA,GAAG,EAAC,WAAW;AACfC,IAAAA,MAAM,EAAC,WAAW;AAClBC,IAAAA,KAAK,EAAC,WAAW;AACjBd,IAAAA,MAAM,EAAEA,MAAO;AACfe,IAAAA,eAAe,EAAC,2BAAA;AAA2B,GAAA,CAC5C,CAAC,CAAA;AAEN;;;;"}
1
+ {"version":3,"file":"BottomSheetBackdrop.web.js","sources":["../../../../../../src/components/BottomSheet/BottomSheetBackdrop.web.tsx"],"sourcesContent":["/* eslint-disable react/display-name */\nimport React from 'react';\nimport styled from 'styled-components';\nimport { useBottomSheetContext } from './BottomSheetContext';\nimport BaseBox from '~components/Box/BaseBox';\nimport { castWebType } from '~utils';\nimport { metaAttribute } from '~utils/metaAttribute';\nimport { makeMotionTime } from '~utils/makeMotionTime';\n\nconst StyledBottomSheetBackdrop = styled(BaseBox)<{ isOpen: boolean }>(({ theme, isOpen }) => {\n return {\n transitionDuration: `${makeMotionTime(theme.motion.duration.moderate)}`,\n transitionTimingFunction: isOpen\n ? castWebType(theme.motion.easing.entrance)\n : castWebType(theme.motion.easing.exit),\n pointerEvents: isOpen ? 'all' : 'none',\n transitionProperty: 'opacity',\n };\n});\n\nconst BottomSheetBackdrop = ({ zIndex }: { zIndex: number }): React.ReactElement => {\n const { close, isOpen, isDismissible } = useBottomSheetContext();\n\n return (\n <StyledBottomSheetBackdrop\n {...metaAttribute({ testID: 'bottomsheet-backdrop' })}\n onClick={() => {\n if (isDismissible) {\n close?.();\n }\n }}\n isOpen={isOpen}\n opacity={isOpen ? 1 : 0}\n position=\"fixed\"\n left=\"spacing.0\"\n top=\"spacing.0\"\n bottom=\"spacing.0\"\n right=\"spacing.0\"\n zIndex={zIndex}\n backgroundColor=\"overlay.background.subtle\"\n />\n );\n};\n\nexport { BottomSheetBackdrop };\n"],"names":["StyledBottomSheetBackdrop","styled","BaseBox","withConfig","displayName","componentId","_ref","theme","isOpen","transitionDuration","concat","makeMotionTime","motion","duration","moderate","transitionTimingFunction","castWebType","easing","entrance","exit","pointerEvents","transitionProperty","BottomSheetBackdrop","_ref2","zIndex","_useBottomSheetContex","useBottomSheetContext","close","isDismissible","_jsx","_objectSpread","metaAttribute","testID","onClick","opacity","position","left","top","bottom","right","backgroundColor"],"mappings":";;;;;;;;;;;;;;;;AASA,IAAMA,yBAAyB,gBAAGC,MAAM,CAACC,OAAO,CAAC,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,mDAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAAsB,CAAA,CAAA,UAAAC,IAAA,EAAuB;AAAA,EAAA,IAApBC,KAAK,GAAAD,IAAA,CAALC,KAAK;IAAEC,MAAM,GAAAF,IAAA,CAANE,MAAM,CAAA;EACrF,OAAO;AACLC,IAAAA,kBAAkB,EAAAC,EAAAA,CAAAA,MAAA,CAAKC,cAAc,CAACJ,KAAK,CAACK,MAAM,CAACC,QAAQ,CAACC,QAAQ,CAAC,CAAE;IACvEC,wBAAwB,EAAEP,MAAM,GAC5BQ,WAAW,CAACT,KAAK,CAACK,MAAM,CAACK,MAAM,CAACC,QAAQ,CAAC,GACzCF,WAAW,CAACT,KAAK,CAACK,MAAM,CAACK,MAAM,CAACE,IAAI,CAAC;AACzCC,IAAAA,aAAa,EAAEZ,MAAM,GAAG,KAAK,GAAG,MAAM;AACtCa,IAAAA,kBAAkB,EAAE,SAAA;GACrB,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAAC,KAAA,EAA2D;AAAA,EAAA,IAArDC,MAAM,GAAAD,KAAA,CAANC,MAAM,CAAA;AACnC,EAAA,IAAAC,qBAAA,GAAyCC,qBAAqB,EAAE;IAAxDC,KAAK,GAAAF,qBAAA,CAALE,KAAK;IAAEnB,MAAM,GAAAiB,qBAAA,CAANjB,MAAM;IAAEoB,aAAa,GAAAH,qBAAA,CAAbG,aAAa,CAAA;EAEpC,oBACEC,GAAA,CAAC7B,yBAAyB,EAAA8B,aAAA,CAAAA,aAAA,CACpBC,EAAAA,EAAAA,aAAa,CAAC;AAAEC,IAAAA,MAAM,EAAE,sBAAA;AAAuB,GAAC,CAAC,CAAA,EAAA,EAAA,EAAA;AACrDC,IAAAA,OAAO,EAAE,SAATA,OAAOA,GAAQ;AACb,MAAA,IAAIL,aAAa,EAAE;AACjBD,QAAAA,KAAK,KAALA,IAAAA,IAAAA,KAAK,KAALA,KAAAA,CAAAA,IAAAA,KAAK,EAAI,CAAA;AACX,OAAA;KACA;AACFnB,IAAAA,MAAM,EAAEA,MAAO;AACf0B,IAAAA,OAAO,EAAE1B,MAAM,GAAG,CAAC,GAAG,CAAE;AACxB2B,IAAAA,QAAQ,EAAC,OAAO;AAChBC,IAAAA,IAAI,EAAC,WAAW;AAChBC,IAAAA,GAAG,EAAC,WAAW;AACfC,IAAAA,MAAM,EAAC,WAAW;AAClBC,IAAAA,KAAK,EAAC,WAAW;AACjBf,IAAAA,MAAM,EAAEA,MAAO;AACfgB,IAAAA,eAAe,EAAC,2BAAA;AAA2B,GAAA,CAC5C,CAAC,CAAA;AAEN;;;;"}
@@ -30,6 +30,7 @@ var BottomSheetEmptyHeader = /*#__PURE__*/React__default.forwardRef(function (_r
30
30
  onPointerUp = _ref.onPointerUp;
31
31
  var _useBottomSheetContex = useBottomSheetContext(),
32
32
  close = _useBottomSheetContex.close,
33
+ isDismissible = _useBottomSheetContex.isDismissible,
33
34
  isHeaderFloating = _useBottomSheetContex.isHeaderFloating;
34
35
  var webOnlyEventHandlers = isReactNative() ? {} : {
35
36
  onClickCapture: onClickCapture,
@@ -56,7 +57,7 @@ var BottomSheetEmptyHeader = /*#__PURE__*/React__default.forwardRef(function (_r
56
57
  top: topOffset,
57
58
  right: "spacing.0"
58
59
  }, webOnlyEventHandlers), {}, {
59
- children: /*#__PURE__*/jsx(BaseBox, {
60
+ children: isDismissible && /*#__PURE__*/jsx(BaseBox, {
60
61
  display: "flex",
61
62
  alignItems: "center",
62
63
  justifyContent: "center",
@@ -78,7 +79,9 @@ var BottomSheetEmptyHeader = /*#__PURE__*/React__default.forwardRef(function (_r
78
79
  size: "large",
79
80
  icon: CloseIcon,
80
81
  accessibilityLabel: "Close",
81
- onClick: close
82
+ onClick: function onClick() {
83
+ return close === null || close === void 0 ? void 0 : close();
84
+ }
82
85
  })
83
86
  })
84
87
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"BottomSheetCommon.js","sources":["../../../../../../src/components/BottomSheet/BottomSheetCommon.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable react/display-name */\nimport React from 'react';\nimport type { ReactDOMAttributes } from '@use-gesture/react/dist/declarations/src/types';\nimport { useBottomSheetContext } from './BottomSheetContext';\nimport BaseBox from '~components/Box/BaseBox';\nimport { IconButton } from '~components/Button/IconButton';\nimport { CloseIcon } from '~components/Icons';\nimport type { BladeElementRef } from '~utils/types';\nimport { isReactNative } from '~utils';\nimport { size } from '~tokens/global';\nimport { makeSpace } from '~utils/makeSpace';\nimport { makeSize } from '~utils/makeSize';\n\ntype BottomSheetEmptyHeaderProps = Pick<\n ReactDOMAttributes,\n | 'onClickCapture'\n | 'onKeyDown'\n | 'onKeyUp'\n | 'onLostPointerCapture'\n | 'onPointerCancel'\n | 'onPointerDown'\n | 'onPointerMove'\n | 'onPointerUp'\n>;\n\nconst BottomSheetEmptyHeader = React.forwardRef<BladeElementRef, BottomSheetEmptyHeaderProps>(\n (\n {\n onClickCapture,\n onKeyDown,\n onKeyUp,\n onLostPointerCapture,\n onPointerCancel,\n onPointerDown,\n onPointerMove,\n onPointerUp,\n },\n ref,\n ) => {\n const { close, isHeaderFloating } = useBottomSheetContext();\n const webOnlyEventHandlers: Record<string, any> = isReactNative()\n ? {}\n : {\n onClickCapture,\n onKeyDown,\n onKeyUp,\n onLostPointerCapture,\n onPointerCancel,\n onPointerDown,\n onPointerMove,\n onPointerUp,\n };\n\n let topOffset: 'spacing.5' | 'spacing.0' | undefined = isHeaderFloating\n ? 'spacing.5'\n : undefined;\n if (isReactNative()) {\n topOffset = 'spacing.0';\n }\n\n return (\n <BaseBox\n position={isHeaderFloating ? 'absolute' : 'relative'}\n // bottomsheet empty header suppose to be 28px in height\n // the grab handle height is 20px & here we are adding 8px\n // total = 28px\n height={makeSize(size[8])}\n touchAction=\"none\"\n top={topOffset}\n right=\"spacing.0\"\n {...webOnlyEventHandlers}\n >\n <BaseBox\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n position=\"absolute\"\n // the bottomsheet handle has a height of 16px + 4px padding\n // we need to make put the close button at 16px from top so adjusting the 4px\n // cannot use position=fixed because RN won't support it\n top={isHeaderFloating ? 'spacing.0' : makeSpace(-size[4])}\n right=\"spacing.5\"\n width={makeSize(size[28])}\n height={makeSize(size[28])}\n flexShrink={0}\n backgroundColor=\"popup.background.subtle\"\n borderRadius=\"max\"\n zIndex={100}\n >\n <IconButton\n ref={ref}\n size=\"large\"\n icon={CloseIcon}\n accessibilityLabel=\"Close\"\n onClick={close}\n />\n </BaseBox>\n </BaseBox>\n );\n },\n);\n\nexport { BottomSheetEmptyHeader };\n"],"names":["BottomSheetEmptyHeader","React","forwardRef","_ref","ref","onClickCapture","onKeyDown","onKeyUp","onLostPointerCapture","onPointerCancel","onPointerDown","onPointerMove","onPointerUp","_useBottomSheetContex","useBottomSheetContext","close","isHeaderFloating","webOnlyEventHandlers","isReactNative","topOffset","undefined","_jsx","BaseBox","_objectSpread","position","height","makeSize","size","touchAction","top","right","children","display","alignItems","justifyContent","makeSpace","width","flexShrink","backgroundColor","borderRadius","zIndex","IconButton","icon","CloseIcon","accessibilityLabel","onClick"],"mappings":"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"}
1
+ {"version":3,"file":"BottomSheetCommon.js","sources":["../../../../../../src/components/BottomSheet/BottomSheetCommon.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable react/display-name */\nimport React from 'react';\nimport type { ReactDOMAttributes } from '@use-gesture/react/dist/declarations/src/types';\nimport { useBottomSheetContext } from './BottomSheetContext';\nimport BaseBox from '~components/Box/BaseBox';\nimport { IconButton } from '~components/Button/IconButton';\nimport { CloseIcon } from '~components/Icons';\nimport type { BladeElementRef } from '~utils/types';\nimport { isReactNative } from '~utils';\nimport { size } from '~tokens/global';\nimport { makeSpace } from '~utils/makeSpace';\nimport { makeSize } from '~utils/makeSize';\n\ntype BottomSheetEmptyHeaderProps = Pick<\n ReactDOMAttributes,\n | 'onClickCapture'\n | 'onKeyDown'\n | 'onKeyUp'\n | 'onLostPointerCapture'\n | 'onPointerCancel'\n | 'onPointerDown'\n | 'onPointerMove'\n | 'onPointerUp'\n>;\n\nconst BottomSheetEmptyHeader = React.forwardRef<BladeElementRef, BottomSheetEmptyHeaderProps>(\n (\n {\n onClickCapture,\n onKeyDown,\n onKeyUp,\n onLostPointerCapture,\n onPointerCancel,\n onPointerDown,\n onPointerMove,\n onPointerUp,\n },\n ref,\n ) => {\n const { close, isDismissible, isHeaderFloating } = useBottomSheetContext();\n const webOnlyEventHandlers: Record<string, any> = isReactNative()\n ? {}\n : {\n onClickCapture,\n onKeyDown,\n onKeyUp,\n onLostPointerCapture,\n onPointerCancel,\n onPointerDown,\n onPointerMove,\n onPointerUp,\n };\n\n let topOffset: 'spacing.5' | 'spacing.0' | undefined = isHeaderFloating\n ? 'spacing.5'\n : undefined;\n if (isReactNative()) {\n topOffset = 'spacing.0';\n }\n\n return (\n <BaseBox\n position={isHeaderFloating ? 'absolute' : 'relative'}\n // bottomsheet empty header suppose to be 28px in height\n // the grab handle height is 20px & here we are adding 8px\n // total = 28px\n height={makeSize(size[8])}\n touchAction=\"none\"\n top={topOffset}\n right=\"spacing.0\"\n {...webOnlyEventHandlers}\n >\n {isDismissible && (\n <BaseBox\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n position=\"absolute\"\n // the bottomsheet handle has a height of 16px + 4px padding\n // we need to make put the close button at 16px from top so adjusting the 4px\n // cannot use position=fixed because RN won't support it\n top={isHeaderFloating ? 'spacing.0' : makeSpace(-size[4])}\n right=\"spacing.5\"\n width={makeSize(size[28])}\n height={makeSize(size[28])}\n flexShrink={0}\n backgroundColor=\"popup.background.subtle\"\n borderRadius=\"max\"\n zIndex={100}\n >\n <IconButton\n ref={ref}\n size=\"large\"\n icon={CloseIcon}\n accessibilityLabel=\"Close\"\n onClick={() => close?.()}\n />\n </BaseBox>\n )}\n </BaseBox>\n );\n },\n);\n\nexport { BottomSheetEmptyHeader };\n"],"names":["BottomSheetEmptyHeader","React","forwardRef","_ref","ref","onClickCapture","onKeyDown","onKeyUp","onLostPointerCapture","onPointerCancel","onPointerDown","onPointerMove","onPointerUp","_useBottomSheetContex","useBottomSheetContext","close","isDismissible","isHeaderFloating","webOnlyEventHandlers","isReactNative","topOffset","undefined","_jsx","BaseBox","_objectSpread","position","height","makeSize","size","touchAction","top","right","children","display","alignItems","justifyContent","makeSpace","width","flexShrink","backgroundColor","borderRadius","zIndex","IconButton","icon","CloseIcon","accessibilityLabel","onClick"],"mappings":"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"}
@@ -14,6 +14,7 @@ var BottomSheetContext = /*#__PURE__*/React__default.createContext({
14
14
  setHasBodyPadding: function setHasBodyPadding() {},
15
15
  setIsHeaderEmpty: function setIsHeaderEmpty() {},
16
16
  close: function close() {},
17
+ isDismissible: true,
17
18
  scrollRef: null,
18
19
  bind: null,
19
20
  isOpen: false,
@@ -1 +1 @@
1
- {"version":3,"file":"BottomSheetContext.js","sources":["../../../../../../src/components/BottomSheet/BottomSheetContext.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { ReactDOMAttributes } from '@use-gesture/react/dist/declarations/src/types';\nimport React from 'react';\n\ntype BottomSheetContextProps = {\n headerHeight: number;\n contentHeight: number;\n footerHeight: number;\n isHeaderFloating: boolean;\n setContentHeight: React.Dispatch<React.SetStateAction<number>>;\n setHeaderHeight: React.Dispatch<React.SetStateAction<number>>;\n setFooterHeight: React.Dispatch<React.SetStateAction<number>>;\n setHasBodyPadding: React.Dispatch<React.SetStateAction<boolean>>;\n setIsHeaderEmpty: React.Dispatch<React.SetStateAction<boolean>>;\n /**\n * Closes the bottomsheet\n */\n close: () => void;\n /**\n * scrollRef is the ref to the BottomSheetBody's scrollable content\n *\n * We use this for two purposes:\n *\n * 1. Preventing the scrolling of the content, until the top snap point is reached\n * 2. We use it as the target for body scroll locking, so even when the body is locked this will remain scrollable\n */\n scrollRef: React.Ref<any>;\n /**\n * bind() function comes from useDrag hook\n * https://use-gesture.netlify.app/docs/gestures\n *\n * We spread this function's return values into the element which needs to be draggable\n */\n bind: ((...args: any[]) => ReactDOMAttributes) | null;\n /**\n * Indicates open state of bottomsheet\n */\n isOpen: boolean;\n /**\n * Vertical position of bottomsheet surface\n */\n positionY: number;\n /**\n * This flag is true whenever we access useBottomSheetContext inside BottomSheetContext provider\n */\n isInBottomSheet: boolean;\n /**\n * The element that will get focused when the bottomsheet first opens\n */\n defaultInitialFocusRef: React.MutableRefObject<any>;\n};\n\nconst BottomSheetContext = React.createContext<BottomSheetContextProps>({\n headerHeight: 0,\n contentHeight: 0,\n footerHeight: 0,\n isHeaderFloating: false,\n setContentHeight: () => {},\n setHeaderHeight: () => {},\n setFooterHeight: () => {},\n setHasBodyPadding: () => {},\n setIsHeaderEmpty: () => {},\n close: () => {},\n scrollRef: null,\n bind: null,\n isOpen: false,\n positionY: 0,\n isInBottomSheet: false,\n defaultInitialFocusRef: { current: null },\n});\n\nconst useBottomSheetContext = (): BottomSheetContextProps => {\n const state = React.useContext(BottomSheetContext);\n return state;\n};\n\ntype BottomSheetAndDropdownGlueContext = {\n isOpen: boolean;\n hasAutoCompleteInHeader: boolean;\n /**\n * This flag is true when <Dropdown> contains or renders <BottomSheet> inside of it\n * We can use this flag to alter behavior or styles of Dropdown\n */\n dropdownHasBottomSheet: boolean;\n /**\n * This is the setter for the flag, we set this flag to true inside <BottomSheet>\n */\n setDropdownHasBottomSheet: React.Dispatch<React.SetStateAction<boolean>>;\n onBottomSheetDismiss: () => void;\n} | null;\n\nconst BottomSheetAndDropdownGlueContext = React.createContext<BottomSheetAndDropdownGlueContext>(\n null,\n);\n\n/**\n * This hook provides the bridge between Dropdown And BottomSheet\n *\n * You can hover over the return types to get jsdoc and more information about each\n */\nconst useBottomSheetAndDropdownGlue = (): BottomSheetAndDropdownGlueContext => {\n const state = React.useContext(BottomSheetAndDropdownGlueContext);\n\n return state;\n};\n\nexport type { BottomSheetContextProps };\nexport {\n BottomSheetContext,\n useBottomSheetContext,\n BottomSheetAndDropdownGlueContext,\n useBottomSheetAndDropdownGlue,\n};\n"],"names":["BottomSheetContext","React","createContext","headerHeight","contentHeight","footerHeight","isHeaderFloating","setContentHeight","setHeaderHeight","setFooterHeight","setHasBodyPadding","setIsHeaderEmpty","close","scrollRef","bind","isOpen","positionY","isInBottomSheet","defaultInitialFocusRef","current","useBottomSheetContext","state","useContext","BottomSheetAndDropdownGlueContext","useBottomSheetAndDropdownGlue"],"mappings":";;AAAA;AACA;;AAoDA,IAAMA,kBAAkB,gBAAGC,cAAK,CAACC,aAAa,CAA0B;AACtEC,EAAAA,YAAY,EAAE,CAAC;AACfC,EAAAA,aAAa,EAAE,CAAC;AAChBC,EAAAA,YAAY,EAAE,CAAC;AACfC,EAAAA,gBAAgB,EAAE,KAAK;AACvBC,EAAAA,gBAAgB,EAAE,SAAlBA,gBAAgBA,GAAQ,EAAE;AAC1BC,EAAAA,eAAe,EAAE,SAAjBA,eAAeA,GAAQ,EAAE;AACzBC,EAAAA,eAAe,EAAE,SAAjBA,eAAeA,GAAQ,EAAE;AACzBC,EAAAA,iBAAiB,EAAE,SAAnBA,iBAAiBA,GAAQ,EAAE;AAC3BC,EAAAA,gBAAgB,EAAE,SAAlBA,gBAAgBA,GAAQ,EAAE;AAC1BC,EAAAA,KAAK,EAAE,SAAPA,KAAKA,GAAQ,EAAE;AACfC,EAAAA,SAAS,EAAE,IAAI;AACfC,EAAAA,IAAI,EAAE,IAAI;AACVC,EAAAA,MAAM,EAAE,KAAK;AACbC,EAAAA,SAAS,EAAE,CAAC;AACZC,EAAAA,eAAe,EAAE,KAAK;AACtBC,EAAAA,sBAAsB,EAAE;AAAEC,IAAAA,OAAO,EAAE,IAAA;AAAK,GAAA;AAC1C,CAAC,EAAC;AAEF,IAAMC,qBAAqB,GAAG,SAAxBA,qBAAqBA,GAAkC;AAC3D,EAAA,IAAMC,KAAK,GAAGpB,cAAK,CAACqB,UAAU,CAACtB,kBAAkB,CAAC,CAAA;AAClD,EAAA,OAAOqB,KAAK,CAAA;AACd,EAAC;AAiBD,IAAME,iCAAiC,gBAAGtB,cAAK,CAACC,aAAa,CAC3D,IACF,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA,IAAMsB,6BAA6B,GAAG,SAAhCA,6BAA6BA,GAA4C;AAC7E,EAAA,IAAMH,KAAK,GAAGpB,cAAK,CAACqB,UAAU,CAACC,iCAAiC,CAAC,CAAA;AAEjE,EAAA,OAAOF,KAAK,CAAA;AACd;;;;"}
1
+ {"version":3,"file":"BottomSheetContext.js","sources":["../../../../../../src/components/BottomSheet/BottomSheetContext.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { ReactDOMAttributes } from '@use-gesture/react/dist/declarations/src/types';\nimport React from 'react';\n\ntype BottomSheetContextProps = {\n headerHeight: number;\n contentHeight: number;\n footerHeight: number;\n isHeaderFloating: boolean;\n setContentHeight: React.Dispatch<React.SetStateAction<number>>;\n setHeaderHeight: React.Dispatch<React.SetStateAction<number>>;\n setFooterHeight: React.Dispatch<React.SetStateAction<number>>;\n setHasBodyPadding: React.Dispatch<React.SetStateAction<boolean>>;\n setIsHeaderEmpty: React.Dispatch<React.SetStateAction<boolean>>;\n /**\n * Closes the bottomsheet\n */\n close?: () => void;\n /**\n * Whether the bottom sheet can be dismissed by tapping backdrop, swiping down.\n * @default true\n * If isDismissible is false, the bottom sheet will not be dismissed when the user clicks outside the bottom sheet\n * and the close button will not be shown, it will also not call the onDismiss callback. Consumers will need to handle the\n * closing of the bottom sheet manually.\n */\n isDismissible: boolean;\n /**\n * scrollRef is the ref to the BottomSheetBody's scrollable content\n *\n * We use this for two purposes:\n *\n * 1. Preventing the scrolling of the content, until the top snap point is reached\n * 2. We use it as the target for body scroll locking, so even when the body is locked this will remain scrollable\n */\n scrollRef: React.Ref<any>;\n /**\n * bind() function comes from useDrag hook\n * https://use-gesture.netlify.app/docs/gestures\n *\n * We spread this function's return values into the element which needs to be draggable\n */\n bind: ((...args: any[]) => ReactDOMAttributes) | null;\n /**\n * Indicates open state of bottomsheet\n */\n isOpen: boolean;\n /**\n * Vertical position of bottomsheet surface\n */\n positionY: number;\n /**\n * This flag is true whenever we access useBottomSheetContext inside BottomSheetContext provider\n */\n isInBottomSheet: boolean;\n /**\n * The element that will get focused when the bottomsheet first opens\n */\n defaultInitialFocusRef: React.MutableRefObject<any>;\n};\n\nconst BottomSheetContext = React.createContext<BottomSheetContextProps>({\n headerHeight: 0,\n contentHeight: 0,\n footerHeight: 0,\n isHeaderFloating: false,\n setContentHeight: () => {},\n setHeaderHeight: () => {},\n setFooterHeight: () => {},\n setHasBodyPadding: () => {},\n setIsHeaderEmpty: () => {},\n close: () => {},\n isDismissible: true,\n scrollRef: null,\n bind: null,\n isOpen: false,\n positionY: 0,\n isInBottomSheet: false,\n defaultInitialFocusRef: { current: null },\n});\n\nconst useBottomSheetContext = (): BottomSheetContextProps => {\n const state = React.useContext(BottomSheetContext);\n return state;\n};\n\ntype BottomSheetAndDropdownGlueContext = {\n isOpen: boolean;\n hasAutoCompleteInHeader: boolean;\n /**\n * This flag is true when <Dropdown> contains or renders <BottomSheet> inside of it\n * We can use this flag to alter behavior or styles of Dropdown\n */\n dropdownHasBottomSheet: boolean;\n /**\n * This is the setter for the flag, we set this flag to true inside <BottomSheet>\n */\n setDropdownHasBottomSheet: React.Dispatch<React.SetStateAction<boolean>>;\n onBottomSheetDismiss: () => void;\n} | null;\n\nconst BottomSheetAndDropdownGlueContext = React.createContext<BottomSheetAndDropdownGlueContext>(\n null,\n);\n\n/**\n * This hook provides the bridge between Dropdown And BottomSheet\n *\n * You can hover over the return types to get jsdoc and more information about each\n */\nconst useBottomSheetAndDropdownGlue = (): BottomSheetAndDropdownGlueContext => {\n const state = React.useContext(BottomSheetAndDropdownGlueContext);\n\n return state;\n};\n\nexport type { BottomSheetContextProps };\nexport {\n BottomSheetContext,\n useBottomSheetContext,\n BottomSheetAndDropdownGlueContext,\n useBottomSheetAndDropdownGlue,\n};\n"],"names":["BottomSheetContext","React","createContext","headerHeight","contentHeight","footerHeight","isHeaderFloating","setContentHeight","setHeaderHeight","setFooterHeight","setHasBodyPadding","setIsHeaderEmpty","close","isDismissible","scrollRef","bind","isOpen","positionY","isInBottomSheet","defaultInitialFocusRef","current","useBottomSheetContext","state","useContext","BottomSheetAndDropdownGlueContext","useBottomSheetAndDropdownGlue"],"mappings":";;AAAA;AACA;;AA4DA,IAAMA,kBAAkB,gBAAGC,cAAK,CAACC,aAAa,CAA0B;AACtEC,EAAAA,YAAY,EAAE,CAAC;AACfC,EAAAA,aAAa,EAAE,CAAC;AAChBC,EAAAA,YAAY,EAAE,CAAC;AACfC,EAAAA,gBAAgB,EAAE,KAAK;AACvBC,EAAAA,gBAAgB,EAAE,SAAlBA,gBAAgBA,GAAQ,EAAE;AAC1BC,EAAAA,eAAe,EAAE,SAAjBA,eAAeA,GAAQ,EAAE;AACzBC,EAAAA,eAAe,EAAE,SAAjBA,eAAeA,GAAQ,EAAE;AACzBC,EAAAA,iBAAiB,EAAE,SAAnBA,iBAAiBA,GAAQ,EAAE;AAC3BC,EAAAA,gBAAgB,EAAE,SAAlBA,gBAAgBA,GAAQ,EAAE;AAC1BC,EAAAA,KAAK,EAAE,SAAPA,KAAKA,GAAQ,EAAE;AACfC,EAAAA,aAAa,EAAE,IAAI;AACnBC,EAAAA,SAAS,EAAE,IAAI;AACfC,EAAAA,IAAI,EAAE,IAAI;AACVC,EAAAA,MAAM,EAAE,KAAK;AACbC,EAAAA,SAAS,EAAE,CAAC;AACZC,EAAAA,eAAe,EAAE,KAAK;AACtBC,EAAAA,sBAAsB,EAAE;AAAEC,IAAAA,OAAO,EAAE,IAAA;AAAK,GAAA;AAC1C,CAAC,EAAC;AAEF,IAAMC,qBAAqB,GAAG,SAAxBA,qBAAqBA,GAAkC;AAC3D,EAAA,IAAMC,KAAK,GAAGrB,cAAK,CAACsB,UAAU,CAACvB,kBAAkB,CAAC,CAAA;AAClD,EAAA,OAAOsB,KAAK,CAAA;AACd,EAAC;AAiBD,IAAME,iCAAiC,gBAAGvB,cAAK,CAACC,aAAa,CAC3D,IACF,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA,IAAMuB,6BAA6B,GAAG,SAAhCA,6BAA6BA,GAA4C;AAC7E,EAAA,IAAMH,KAAK,GAAGrB,cAAK,CAACsB,UAAU,CAACC,iCAAiC,CAAC,CAAA;AAEjE,EAAA,OAAOF,KAAK,CAAA;AACd;;;;"}
@@ -17,15 +17,15 @@ import { MetaConstants } from '../../utils/metaAttribute/metaConstants.js';
17
17
  import { makeAnalyticsAttribute } from '../../utils/makeAnalyticsAttribute/makeAnalyticsAttribute.js';
18
18
  import { assignWithoutSideEffects } from '../../utils/assignWithoutSideEffects/assignWithoutSideEffects.js';
19
19
 
20
- var _excluded = ["title", "subtitle", "leading", "titleSuffix", "trailing", "showBackButton", "onBackButtonClick", "children"];
20
+ var _excluded = ["title", "subtitle", "leading", "trailing", "titleSuffix", "showBackButton", "onBackButtonClick", "children"];
21
21
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
22
22
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
23
23
  var _BottomSheetHeader = function _BottomSheetHeader(_ref) {
24
24
  var title = _ref.title,
25
25
  subtitle = _ref.subtitle,
26
26
  leading = _ref.leading,
27
- titleSuffix = _ref.titleSuffix,
28
27
  trailing = _ref.trailing,
28
+ titleSuffix = _ref.titleSuffix,
29
29
  _ref$showBackButton = _ref.showBackButton,
30
30
  showBackButton = _ref$showBackButton === void 0 ? false : _ref$showBackButton,
31
31
  onBackButtonClick = _ref.onBackButtonClick,
@@ -35,6 +35,7 @@ var _BottomSheetHeader = function _BottomSheetHeader(_ref) {
35
35
  setHeaderHeight = _useBottomSheetContex.setHeaderHeight,
36
36
  isOpen = _useBottomSheetContex.isOpen,
37
37
  close = _useBottomSheetContex.close,
38
+ isDismissible = _useBottomSheetContex.isDismissible,
38
39
  bind = _useBottomSheetContex.bind,
39
40
  setIsHeaderEmpty = _useBottomSheetContex.setIsHeaderEmpty,
40
41
  defaultInitialFocusRef = _useBottomSheetContex.defaultInitialFocusRef;
@@ -75,7 +76,7 @@ var _BottomSheetHeader = function _BottomSheetHeader(_ref) {
75
76
  onBackButtonClick: onBackButtonClick
76
77
  // close button
77
78
  ,
78
- showCloseButton: true,
79
+ showCloseButton: isDismissible,
79
80
  onCloseButtonClick: close
80
81
  }, bind === null || bind === void 0 ? void 0 : bind()), {}, {
81
82
  children: children
@@ -1 +1 @@
1
- {"version":3,"file":"BottomSheetHeader.web.js","sources":["../../../../../../src/components/BottomSheet/BottomSheetHeader.web.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */\nimport React from 'react';\nimport { ComponentIds } from './componentIds';\nimport { useBottomSheetAndDropdownGlue, useBottomSheetContext } from './BottomSheetContext';\nimport type { BottomSheetHeaderProps } from './types';\nimport { BottomSheetEmptyHeader } from './BottomSheetCommon';\nimport { BaseHeader } from '~components/BaseHeaderFooter/BaseHeader';\nimport BaseBox from '~components/Box/BaseBox';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { useIsomorphicLayoutEffect } from '~utils/useIsomorphicLayoutEffect';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\nconst _BottomSheetHeader = ({\n title,\n subtitle,\n leading,\n titleSuffix,\n trailing,\n showBackButton = false,\n onBackButtonClick,\n children,\n ...dataAnalyticsProps\n}: BottomSheetHeaderProps): React.ReactElement => {\n const {\n setHeaderHeight,\n isOpen,\n close,\n bind,\n setIsHeaderEmpty,\n defaultInitialFocusRef,\n } = useBottomSheetContext();\n const bottomSheetAndDropdownGlue = useBottomSheetAndDropdownGlue();\n const ref = React.useRef<HTMLDivElement>(null);\n\n useIsomorphicLayoutEffect(() => {\n if (!ref.current) return;\n if (!title && !subtitle) return;\n setHeaderHeight(ref.current.getBoundingClientRect().height);\n }, [ref, isOpen]);\n\n const isHeaderEmpty = !(title || subtitle || leading || trailing || showBackButton || children);\n\n React.useEffect(() => {\n setIsHeaderEmpty(isHeaderEmpty);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isHeaderEmpty]);\n\n return (\n <BaseBox\n ref={ref}\n overflow={isHeaderEmpty ? 'visible' : 'auto'}\n flexShrink={0}\n {...metaAttribute({ name: MetaConstants.BottomSheetHeader })}\n {...makeAnalyticsAttribute(dataAnalyticsProps)}\n >\n {isHeaderEmpty ? (\n <BottomSheetEmptyHeader ref={defaultInitialFocusRef} />\n ) : (\n <BaseHeader\n title={title}\n subtitle={subtitle}\n leading={leading}\n trailing={trailing}\n titleSuffix={titleSuffix}\n // we don't set focus on close button when it has AutoComplete inside.\n // We set focus on AutoComplete instead inside AutoComplete component\n closeButtonRef={\n bottomSheetAndDropdownGlue?.hasAutoCompleteInHeader ? undefined : defaultInitialFocusRef\n }\n // back button\n showBackButton={showBackButton}\n onBackButtonClick={onBackButtonClick}\n // close button\n showCloseButton={true}\n onCloseButtonClick={close}\n {...bind?.()}\n >\n {children}\n </BaseHeader>\n )}\n </BaseBox>\n );\n};\n\nconst BottomSheetHeader = assignWithoutSideEffects(_BottomSheetHeader, {\n componentId: ComponentIds.BottomSheetHeader,\n});\n\nexport { BottomSheetHeader };\n"],"names":["_BottomSheetHeader","_ref","title","subtitle","leading","titleSuffix","trailing","_ref$showBackButton","showBackButton","onBackButtonClick","children","dataAnalyticsProps","_objectWithoutProperties","_excluded","_useBottomSheetContex","useBottomSheetContext","setHeaderHeight","isOpen","close","bind","setIsHeaderEmpty","defaultInitialFocusRef","bottomSheetAndDropdownGlue","useBottomSheetAndDropdownGlue","ref","React","useRef","useIsomorphicLayoutEffect","current","getBoundingClientRect","height","isHeaderEmpty","useEffect","_jsx","BaseBox","_objectSpread","overflow","flexShrink","metaAttribute","name","MetaConstants","BottomSheetHeader","makeAnalyticsAttribute","BottomSheetEmptyHeader","BaseHeader","closeButtonRef","hasAutoCompleteInHeader","undefined","showCloseButton","onCloseButtonClick","assignWithoutSideEffects","componentId","ComponentIds"],"mappings":"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"}
1
+ {"version":3,"file":"BottomSheetHeader.web.js","sources":["../../../../../../src/components/BottomSheet/BottomSheetHeader.web.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */\nimport React from 'react';\nimport { ComponentIds } from './componentIds';\nimport { useBottomSheetAndDropdownGlue, useBottomSheetContext } from './BottomSheetContext';\nimport type { BottomSheetHeaderProps } from './types';\nimport { BottomSheetEmptyHeader } from './BottomSheetCommon';\nimport { BaseHeader } from '~components/BaseHeaderFooter/BaseHeader';\nimport BaseBox from '~components/Box/BaseBox';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { useIsomorphicLayoutEffect } from '~utils/useIsomorphicLayoutEffect';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\nconst _BottomSheetHeader = ({\n title,\n subtitle,\n leading,\n trailing,\n titleSuffix,\n showBackButton = false,\n onBackButtonClick,\n children,\n ...dataAnalyticsProps\n}: BottomSheetHeaderProps): React.ReactElement => {\n const {\n setHeaderHeight,\n isOpen,\n close,\n isDismissible,\n bind,\n setIsHeaderEmpty,\n defaultInitialFocusRef,\n } = useBottomSheetContext();\n const bottomSheetAndDropdownGlue = useBottomSheetAndDropdownGlue();\n const ref = React.useRef<HTMLDivElement>(null);\n\n useIsomorphicLayoutEffect(() => {\n if (!ref.current) return;\n if (!title && !subtitle) return;\n setHeaderHeight(ref.current.getBoundingClientRect().height);\n }, [ref, isOpen]);\n\n const isHeaderEmpty = !(title || subtitle || leading || trailing || showBackButton || children);\n\n React.useEffect(() => {\n setIsHeaderEmpty(isHeaderEmpty);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isHeaderEmpty]);\n\n return (\n <BaseBox\n ref={ref}\n overflow={isHeaderEmpty ? 'visible' : 'auto'}\n flexShrink={0}\n {...metaAttribute({ name: MetaConstants.BottomSheetHeader })}\n {...makeAnalyticsAttribute(dataAnalyticsProps)}\n >\n {isHeaderEmpty ? (\n <BottomSheetEmptyHeader ref={defaultInitialFocusRef} />\n ) : (\n <BaseHeader\n title={title}\n subtitle={subtitle}\n leading={leading}\n trailing={trailing}\n titleSuffix={titleSuffix}\n // we don't set focus on close button when it has AutoComplete inside.\n // We set focus on AutoComplete instead inside AutoComplete component\n closeButtonRef={\n bottomSheetAndDropdownGlue?.hasAutoCompleteInHeader ? undefined : defaultInitialFocusRef\n }\n // back button\n showBackButton={showBackButton}\n onBackButtonClick={onBackButtonClick}\n // close button\n showCloseButton={isDismissible}\n onCloseButtonClick={close}\n {...bind?.()}\n >\n {children}\n </BaseHeader>\n )}\n </BaseBox>\n );\n};\n\nconst BottomSheetHeader = assignWithoutSideEffects(_BottomSheetHeader, {\n componentId: ComponentIds.BottomSheetHeader,\n});\n\nexport { BottomSheetHeader };\n"],"names":["_BottomSheetHeader","_ref","title","subtitle","leading","trailing","titleSuffix","_ref$showBackButton","showBackButton","onBackButtonClick","children","dataAnalyticsProps","_objectWithoutProperties","_excluded","_useBottomSheetContex","useBottomSheetContext","setHeaderHeight","isOpen","close","isDismissible","bind","setIsHeaderEmpty","defaultInitialFocusRef","bottomSheetAndDropdownGlue","useBottomSheetAndDropdownGlue","ref","React","useRef","useIsomorphicLayoutEffect","current","getBoundingClientRect","height","isHeaderEmpty","useEffect","_jsx","BaseBox","_objectSpread","overflow","flexShrink","metaAttribute","name","MetaConstants","BottomSheetHeader","makeAnalyticsAttribute","BottomSheetEmptyHeader","BaseHeader","closeButtonRef","hasAutoCompleteInHeader","undefined","showCloseButton","onCloseButtonClick","assignWithoutSideEffects","componentId","ComponentIds"],"mappings":"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"}
@@ -32,7 +32,7 @@ import { MetaConstants } from '../../utils/metaAttribute/metaConstants.js';
32
32
  import { makeAccessible } from '../../utils/makeAccessible/makeAccessible.web.js';
33
33
  import { makeAnalyticsAttribute } from '../../utils/makeAnalyticsAttribute/makeAnalyticsAttribute.js';
34
34
 
35
- var _excluded = ["isOpen", "children", "onDismiss", "initialFocusRef", "size", "accessibilityLabel", "zIndex"];
35
+ var _excluded = ["isOpen", "children", "onDismiss", "isDismissible", "initialFocusRef", "size", "accessibilityLabel", "zIndex"];
36
36
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
37
37
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
38
38
  var ModalContent = /*#__PURE__*/styled(BaseBox).withConfig({
@@ -51,6 +51,8 @@ var Modal = function Modal(_ref2) {
51
51
  isOpen = _ref2$isOpen === void 0 ? false : _ref2$isOpen,
52
52
  children = _ref2.children,
53
53
  onDismiss = _ref2.onDismiss,
54
+ _ref2$isDismissible = _ref2.isDismissible,
55
+ isDismissible = _ref2$isDismissible === void 0 ? true : _ref2$isDismissible,
54
56
  initialFocusRef = _ref2.initialFocusRef,
55
57
  _ref2$size = _ref2.size,
56
58
  size = _ref2$size === void 0 ? 'small' : _ref2$size,
@@ -92,14 +94,15 @@ var Modal = function Modal(_ref2) {
92
94
  return {
93
95
  isOpen: isOpen,
94
96
  close: onDismiss,
97
+ isDismissible: isDismissible,
95
98
  defaultInitialFocusRef: defaultInitialFocusRef,
96
99
  isVisible: isVisible
97
100
  };
98
- }, [isOpen, onDismiss, defaultInitialFocusRef, isVisible]);
101
+ }, [isOpen, onDismiss, isDismissible, defaultInitialFocusRef, isVisible]);
99
102
  var handleKeyDown = function handleKeyDown(event) {
100
- // close modal on escape key press
101
- if ((event === null || event === void 0 ? void 0 : event.key) === 'Escape' || (event === null || event === void 0 ? void 0 : event.code) === 'Escape') {
102
- onDismiss();
103
+ // close modal on escape key press only if dismissible
104
+ if (isDismissible && ((event === null || event === void 0 ? void 0 : event.key) === 'Escape' || (event === null || event === void 0 ? void 0 : event.code) === 'Escape')) {
105
+ onDismiss === null || onDismiss === void 0 || onDismiss();
103
106
  }
104
107
  };
105
108
  return /*#__PURE__*/jsx(FloatingPortal, {
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.web.js","sources":["../../../../../../src/components/Modal/Modal.web.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useEffect } from 'react';\nimport styled, { css } from 'styled-components';\nimport { FloatingFocusManager, FloatingPortal, useFloating } from '@floating-ui/react';\nimport usePresence from 'use-presence';\nimport { ModalHeader } from './ModalHeader';\nimport type { ModalHeaderProps } from './ModalHeader';\nimport { ModalFooter } from './ModalFooter';\nimport type { ModalFooterProps } from './ModalFooter';\nimport { ModalBody } from './ModalBody';\nimport type { ModalBodyProps } from './ModalBody';\nimport { ModalContext } from './ModalContext';\nimport { ModalBackdrop } from './ModalBackdrop';\nimport {\n modalBorderRadius,\n modalMaxHeight,\n modalMaxWidth,\n modalMinWidth,\n modalResponsiveScreenGap,\n modalMargin,\n} from './modalTokens';\nimport type { ModalProps } from './types';\nimport { castWebType, makeMotionTime, makeSize } from '~utils';\nimport { BaseBox } from '~components/Box/BaseBox';\nimport { useTheme } from '~components/BladeProvider';\nimport { Box } from '~components/Box';\nimport { MetaConstants, metaAttribute } from '~utils/metaAttribute';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { logger } from '~utils/logger';\nimport { componentZIndices } from '~utils/componentZIndices';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\nconst ModalContent = styled(BaseBox)<{ isVisible: boolean; size: NonNullable<ModalProps['size']> }>(\n ({ isVisible, theme, size }) => {\n const scale = isVisible ? 1 : 0.9;\n const transform = size !== 'full' ? `translate(-50%, -50%) scale(${scale})` : ``;\n\n return css`\n box-shadow: ${theme.elevation.highRaised};\n opacity: ${isVisible ? 1 : 0};\n position: fixed;\n transform: ${transform};\n transition-property: opacity, transform;\n transition-duration: ${castWebType(makeMotionTime(theme.motion.duration.moderate))};\n transition-timing-function: ${isVisible\n ? castWebType(theme.motion.easing.entrance)\n : castWebType(theme.motion.easing.exit)};\n\n ${size === 'full' &&\n css`\n top: ${makeSize(modalMargin[size])};\n left: ${makeSize(modalMargin[size])};\n right: ${makeSize(modalMargin[size])};\n bottom: ${makeSize(modalMargin[size])};\n `}\n `;\n },\n);\n\nconst Modal = ({\n isOpen = false,\n children,\n onDismiss,\n initialFocusRef,\n size = 'small',\n accessibilityLabel,\n zIndex = componentZIndices.modal,\n ...rest\n}: ModalProps): React.ReactElement => {\n const { theme, platform } = useTheme();\n const { isMounted, isVisible } = usePresence(isOpen, {\n transitionDuration: theme.motion.duration.moderate,\n initialEnter: true,\n });\n\n // Warn consumer if modal is opened on mobile\n useEffect(() => {\n if (__DEV__) {\n if (platform === 'onMobile') {\n logger({\n message: 'Modal is not supported on mobile devices. Please use BottomSheet instead.',\n moduleName: 'Modal',\n type: 'warn',\n });\n }\n }\n }, [platform]);\n\n // required by floating ui to handle focus\n const { refs, context } = useFloating({\n open: isMounted,\n });\n\n const defaultInitialFocusRef = React.useRef<any>(null);\n\n const modalContext = React.useMemo(\n () => ({\n isOpen,\n close: onDismiss,\n defaultInitialFocusRef,\n isVisible,\n }),\n [isOpen, onDismiss, defaultInitialFocusRef, isVisible],\n );\n const handleKeyDown = (event: React.KeyboardEvent): void => {\n // close modal on escape key press\n if (event?.key === 'Escape' || event?.code === 'Escape') {\n onDismiss();\n }\n };\n\n return (\n <FloatingPortal>\n <ModalContext.Provider value={modalContext}>\n {isMounted ? (\n <FloatingFocusManager\n returnFocus\n initialFocus={initialFocusRef ?? defaultInitialFocusRef}\n context={context}\n modal={true}\n >\n <Box zIndex={zIndex} position=\"fixed\" testID=\"modal-wrapper\">\n <ModalBackdrop />\n <ModalContent\n {...metaAttribute({\n name: MetaConstants.Modal,\n })}\n {...makeAccessible({\n role: 'dialog',\n modal: true,\n label: accessibilityLabel,\n })}\n {...makeAnalyticsAttribute(rest)}\n maxWidth={size === 'full' ? '100%' : makeSize(modalMaxWidth[size])}\n minWidth={makeSize(modalMinWidth)}\n maxHeight={modalMaxHeight[size]}\n width={\n size === 'full'\n ? `calc(100vw - ${makeSize(modalMargin[size] * 2)})`\n : `calc(100vw - ${makeSize(modalResponsiveScreenGap)})`\n }\n borderRadius={modalBorderRadius}\n backgroundColor=\"popup.background.subtle\"\n display=\"flex\"\n flexDirection=\"column\"\n top=\"50%\"\n left=\"50%\"\n onKeyDown={handleKeyDown}\n isVisible={isVisible}\n size={size}\n ref={refs.setFloating}\n overflow=\"hidden\"\n >\n {children}\n </ModalContent>\n </Box>\n </FloatingFocusManager>\n ) : null}\n </ModalContext.Provider>\n </FloatingPortal>\n );\n};\n\nexport { Modal, ModalHeader, ModalFooter, ModalBody };\nexport type { ModalProps, ModalHeaderProps, ModalFooterProps, ModalBodyProps };\n"],"names":["ModalContent","styled","BaseBox","withConfig","displayName","componentId","_ref","isVisible","theme","size","scale","transform","concat","css","elevation","highRaised","castWebType","makeMotionTime","motion","duration","moderate","easing","entrance","exit","makeSize","modalMargin","Modal","_ref2","_ref2$isOpen","isOpen","children","onDismiss","initialFocusRef","_ref2$size","accessibilityLabel","_ref2$zIndex","zIndex","componentZIndices","modal","rest","_objectWithoutProperties","_excluded","_useTheme","useTheme","platform","_usePresence","usePresence","transitionDuration","initialEnter","isMounted","useEffect","logger","message","moduleName","type","_useFloating","useFloating","open","refs","context","defaultInitialFocusRef","React","useRef","modalContext","useMemo","close","handleKeyDown","event","key","code","_jsx","FloatingPortal","ModalContext","Provider","value","FloatingFocusManager","returnFocus","initialFocus","_jsxs","Box","position","testID","ModalBackdrop","_objectSpread","metaAttribute","name","MetaConstants","makeAccessible","role","label","makeAnalyticsAttribute","maxWidth","modalMaxWidth","minWidth","modalMinWidth","maxHeight","modalMaxHeight","width","modalResponsiveScreenGap","borderRadius","modalBorderRadius","backgroundColor","display","flexDirection","top","left","onKeyDown","ref","setFloating","overflow"],"mappings":"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"}
1
+ {"version":3,"file":"Modal.web.js","sources":["../../../../../../src/components/Modal/Modal.web.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useEffect } from 'react';\nimport styled, { css } from 'styled-components';\nimport { FloatingFocusManager, FloatingPortal, useFloating } from '@floating-ui/react';\nimport usePresence from 'use-presence';\nimport { ModalHeader } from './ModalHeader';\nimport type { ModalHeaderProps } from './ModalHeader';\nimport { ModalFooter } from './ModalFooter';\nimport type { ModalFooterProps } from './ModalFooter';\nimport { ModalBody } from './ModalBody';\nimport type { ModalBodyProps } from './ModalBody';\nimport { ModalContext } from './ModalContext';\nimport { ModalBackdrop } from './ModalBackdrop';\nimport {\n modalBorderRadius,\n modalMaxHeight,\n modalMaxWidth,\n modalMinWidth,\n modalResponsiveScreenGap,\n modalMargin,\n} from './modalTokens';\nimport type { ModalProps } from './types';\nimport { castWebType, makeMotionTime, makeSize } from '~utils';\nimport { BaseBox } from '~components/Box/BaseBox';\nimport { useTheme } from '~components/BladeProvider';\nimport { Box } from '~components/Box';\nimport { MetaConstants, metaAttribute } from '~utils/metaAttribute';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { logger } from '~utils/logger';\nimport { componentZIndices } from '~utils/componentZIndices';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\nconst ModalContent = styled(BaseBox)<{ isVisible: boolean; size: NonNullable<ModalProps['size']> }>(\n ({ isVisible, theme, size }) => {\n const scale = isVisible ? 1 : 0.9;\n const transform = size !== 'full' ? `translate(-50%, -50%) scale(${scale})` : ``;\n\n return css`\n box-shadow: ${theme.elevation.highRaised};\n opacity: ${isVisible ? 1 : 0};\n position: fixed;\n transform: ${transform};\n transition-property: opacity, transform;\n transition-duration: ${castWebType(makeMotionTime(theme.motion.duration.moderate))};\n transition-timing-function: ${isVisible\n ? castWebType(theme.motion.easing.entrance)\n : castWebType(theme.motion.easing.exit)};\n\n ${size === 'full' &&\n css`\n top: ${makeSize(modalMargin[size])};\n left: ${makeSize(modalMargin[size])};\n right: ${makeSize(modalMargin[size])};\n bottom: ${makeSize(modalMargin[size])};\n `}\n `;\n },\n);\n\nconst Modal = ({\n isOpen = false,\n children,\n onDismiss,\n isDismissible = true,\n initialFocusRef,\n size = 'small',\n accessibilityLabel,\n zIndex = componentZIndices.modal,\n ...rest\n}: ModalProps): React.ReactElement => {\n const { theme, platform } = useTheme();\n const { isMounted, isVisible } = usePresence(isOpen, {\n transitionDuration: theme.motion.duration.moderate,\n initialEnter: true,\n });\n\n // Warn consumer if modal is opened on mobile\n useEffect(() => {\n if (__DEV__) {\n if (platform === 'onMobile') {\n logger({\n message: 'Modal is not supported on mobile devices. Please use BottomSheet instead.',\n moduleName: 'Modal',\n type: 'warn',\n });\n }\n }\n }, [platform]);\n\n // required by floating ui to handle focus\n const { refs, context } = useFloating({\n open: isMounted,\n });\n\n const defaultInitialFocusRef = React.useRef<any>(null);\n\n const modalContext = React.useMemo(\n () => ({\n isOpen,\n close: onDismiss,\n isDismissible,\n defaultInitialFocusRef,\n isVisible,\n }),\n [isOpen, onDismiss, isDismissible, defaultInitialFocusRef, isVisible],\n );\n\n const handleKeyDown = (event: React.KeyboardEvent): void => {\n // close modal on escape key press only if dismissible\n if (isDismissible && (event?.key === 'Escape' || event?.code === 'Escape')) {\n onDismiss?.();\n }\n };\n\n return (\n <FloatingPortal>\n <ModalContext.Provider value={modalContext}>\n {isMounted ? (\n <FloatingFocusManager\n returnFocus\n initialFocus={initialFocusRef ?? defaultInitialFocusRef}\n context={context}\n modal={true}\n >\n <Box zIndex={zIndex} position=\"fixed\" testID=\"modal-wrapper\">\n <ModalBackdrop />\n <ModalContent\n {...metaAttribute({\n name: MetaConstants.Modal,\n })}\n {...makeAccessible({\n role: 'dialog',\n modal: true,\n label: accessibilityLabel,\n })}\n {...makeAnalyticsAttribute(rest)}\n maxWidth={size === 'full' ? '100%' : makeSize(modalMaxWidth[size])}\n minWidth={makeSize(modalMinWidth)}\n maxHeight={modalMaxHeight[size]}\n width={\n size === 'full'\n ? `calc(100vw - ${makeSize(modalMargin[size] * 2)})`\n : `calc(100vw - ${makeSize(modalResponsiveScreenGap)})`\n }\n borderRadius={modalBorderRadius}\n backgroundColor=\"popup.background.subtle\"\n display=\"flex\"\n flexDirection=\"column\"\n top=\"50%\"\n left=\"50%\"\n onKeyDown={handleKeyDown}\n isVisible={isVisible}\n size={size}\n ref={refs.setFloating}\n overflow=\"hidden\"\n >\n {children}\n </ModalContent>\n </Box>\n </FloatingFocusManager>\n ) : null}\n </ModalContext.Provider>\n </FloatingPortal>\n );\n};\n\nexport { Modal, ModalHeader, ModalFooter, ModalBody };\nexport type { ModalProps, ModalHeaderProps, ModalFooterProps, ModalBodyProps };\n"],"names":["ModalContent","styled","BaseBox","withConfig","displayName","componentId","_ref","isVisible","theme","size","scale","transform","concat","css","elevation","highRaised","castWebType","makeMotionTime","motion","duration","moderate","easing","entrance","exit","makeSize","modalMargin","Modal","_ref2","_ref2$isOpen","isOpen","children","onDismiss","_ref2$isDismissible","isDismissible","initialFocusRef","_ref2$size","accessibilityLabel","_ref2$zIndex","zIndex","componentZIndices","modal","rest","_objectWithoutProperties","_excluded","_useTheme","useTheme","platform","_usePresence","usePresence","transitionDuration","initialEnter","isMounted","useEffect","logger","message","moduleName","type","_useFloating","useFloating","open","refs","context","defaultInitialFocusRef","React","useRef","modalContext","useMemo","close","handleKeyDown","event","key","code","_jsx","FloatingPortal","ModalContext","Provider","value","FloatingFocusManager","returnFocus","initialFocus","_jsxs","Box","position","testID","ModalBackdrop","_objectSpread","metaAttribute","name","MetaConstants","makeAccessible","role","label","makeAnalyticsAttribute","maxWidth","modalMaxWidth","minWidth","modalMinWidth","maxHeight","modalMaxHeight","width","modalResponsiveScreenGap","borderRadius","modalBorderRadius","backgroundColor","display","flexDirection","top","left","onKeyDown","ref","setFloating","overflow"],"mappings":"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"}
@@ -30,13 +30,16 @@ var StyledModalBackdrop = /*#__PURE__*/styled(FloatingOverlay).withConfig({
30
30
  });
31
31
  var ModalBackdrop = function ModalBackdrop() {
32
32
  var _useModalContext2 = useModalContext(),
33
- close = _useModalContext2.close;
33
+ close = _useModalContext2.close,
34
+ isDismissible = _useModalContext2.isDismissible;
34
35
  return /*#__PURE__*/jsx(StyledModalBackdrop, _objectSpread(_objectSpread({}, metaAttribute({
35
36
  name: MetaConstants.ModalBackdrop,
36
37
  testID: MetaConstants.ModalBackdrop
37
38
  })), {}, {
38
39
  onClick: function onClick() {
39
- close();
40
+ if (isDismissible) {
41
+ close === null || close === void 0 || close();
42
+ }
40
43
  },
41
44
  lockScroll: true
42
45
  }));