@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.
- package/build/lib/native/components/BottomSheet/BottomSheet.native.js +1 -1
- package/build/lib/native/components/BottomSheet/BottomSheet.native.js.map +1 -1
- package/build/lib/native/components/BottomSheet/BottomSheetBackdrop.native.js +1 -1
- package/build/lib/native/components/BottomSheet/BottomSheetBackdrop.native.js.map +1 -1
- package/build/lib/native/components/BottomSheet/BottomSheetCommon.js +1 -1
- package/build/lib/native/components/BottomSheet/BottomSheetCommon.js.map +1 -1
- package/build/lib/native/components/BottomSheet/BottomSheetContext.js +1 -1
- package/build/lib/native/components/BottomSheet/BottomSheetContext.js.map +1 -1
- package/build/lib/native/components/BottomSheet/BottomSheetHeader.native.js +1 -1
- package/build/lib/native/components/BottomSheet/BottomSheetHeader.native.js.map +1 -1
- package/build/lib/web/development/components/BottomSheet/BottomSheet.web.js +26 -10
- package/build/lib/web/development/components/BottomSheet/BottomSheet.web.js.map +1 -1
- package/build/lib/web/development/components/BottomSheet/BottomSheetBackdrop.web.js +5 -2
- package/build/lib/web/development/components/BottomSheet/BottomSheetBackdrop.web.js.map +1 -1
- package/build/lib/web/development/components/BottomSheet/BottomSheetCommon.js +5 -2
- package/build/lib/web/development/components/BottomSheet/BottomSheetCommon.js.map +1 -1
- package/build/lib/web/development/components/BottomSheet/BottomSheetContext.js +1 -0
- package/build/lib/web/development/components/BottomSheet/BottomSheetContext.js.map +1 -1
- package/build/lib/web/development/components/BottomSheet/BottomSheetHeader.web.js +4 -3
- package/build/lib/web/development/components/BottomSheet/BottomSheetHeader.web.js.map +1 -1
- package/build/lib/web/development/components/Modal/Modal.web.js +8 -5
- package/build/lib/web/development/components/Modal/Modal.web.js.map +1 -1
- package/build/lib/web/development/components/Modal/ModalBackdrop.js +5 -2
- package/build/lib/web/development/components/Modal/ModalBackdrop.js.map +1 -1
- package/build/lib/web/development/components/Modal/ModalContext.js +1 -0
- package/build/lib/web/development/components/Modal/ModalContext.js.map +1 -1
- package/build/lib/web/development/components/Modal/ModalHeader.web.js +7 -4
- package/build/lib/web/development/components/Modal/ModalHeader.web.js.map +1 -1
- package/build/lib/web/production/components/BottomSheet/BottomSheet.web.js +26 -10
- package/build/lib/web/production/components/BottomSheet/BottomSheet.web.js.map +1 -1
- package/build/lib/web/production/components/BottomSheet/BottomSheetBackdrop.web.js +5 -2
- package/build/lib/web/production/components/BottomSheet/BottomSheetBackdrop.web.js.map +1 -1
- package/build/lib/web/production/components/BottomSheet/BottomSheetCommon.js +5 -2
- package/build/lib/web/production/components/BottomSheet/BottomSheetCommon.js.map +1 -1
- package/build/lib/web/production/components/BottomSheet/BottomSheetContext.js +1 -0
- package/build/lib/web/production/components/BottomSheet/BottomSheetContext.js.map +1 -1
- package/build/lib/web/production/components/BottomSheet/BottomSheetHeader.web.js +4 -3
- package/build/lib/web/production/components/BottomSheet/BottomSheetHeader.web.js.map +1 -1
- package/build/lib/web/production/components/Modal/Modal.web.js +8 -5
- package/build/lib/web/production/components/Modal/Modal.web.js.map +1 -1
- package/build/lib/web/production/components/Modal/ModalBackdrop.js +5 -2
- package/build/lib/web/production/components/Modal/ModalBackdrop.js.map +1 -1
- package/build/lib/web/production/components/Modal/ModalContext.js +1 -0
- package/build/lib/web/production/components/Modal/ModalContext.js.map +1 -1
- package/build/lib/web/production/components/Modal/ModalHeader.web.js +7 -4
- package/build/lib/web/production/components/Modal/ModalHeader.web.js.map +1 -1
- package/build/types/components/index.d.ts +14 -4
- package/build/types/components/index.native.d.ts +12 -2
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModalBackdrop.js","sources":["../../../../../../src/components/Modal/ModalBackdrop.tsx"],"sourcesContent":["/* eslint-disable react/display-name */\nimport React from 'react';\nimport styled from 'styled-components';\nimport { FloatingOverlay } from '@floating-ui/react';\nimport { useModalContext } from './ModalContext';\nimport { castWebType, makeMotionTime } from '~utils';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\n\nconst StyledModalBackdrop = styled(FloatingOverlay)(({ theme }) => {\n const { isVisible } = useModalContext();\n\n return {\n transitionDuration: `${makeMotionTime(theme.motion.duration.moderate)}`,\n transitionTimingFunction: isVisible\n ? castWebType(theme.motion.easing.entrance)\n : castWebType(theme.motion.easing.exit),\n transitionProperty: 'opacity',\n opacity: isVisible ? 1 : 0,\n backgroundColor: theme.colors.overlay.background.subtle,\n };\n});\n\nconst ModalBackdrop = (): React.ReactElement => {\n const { close } = useModalContext();\n\n return (\n <StyledModalBackdrop\n {...metaAttribute({ name: MetaConstants.ModalBackdrop, testID: MetaConstants.ModalBackdrop })}\n onClick={() => {\n close();\n }}\n lockScroll={true}\n />\n );\n};\n\nexport { ModalBackdrop };\n"],"names":["StyledModalBackdrop","styled","FloatingOverlay","withConfig","displayName","componentId","_ref","theme","_useModalContext","useModalContext","isVisible","transitionDuration","concat","makeMotionTime","motion","duration","moderate","transitionTimingFunction","castWebType","easing","entrance","exit","transitionProperty","opacity","backgroundColor","colors","overlay","background","subtle","ModalBackdrop","_useModalContext2","close","_jsx","_objectSpread","metaAttribute","name","MetaConstants","testID","onClick","lockScroll"],"mappings":";;;;;;;;;;;;;;;AAQA,IAAMA,mBAAmB,gBAAGC,MAAM,CAACC,eAAe,CAAC,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,oCAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAAC,CAAA,CAAA,UAAAC,IAAA,EAAe;AAAA,EAAA,IAAZC,KAAK,GAAAD,IAAA,CAALC,KAAK,CAAA;AAC1D,EAAA,IAAAC,gBAAA,GAAsBC,eAAe,EAAE;IAA/BC,SAAS,GAAAF,gBAAA,CAATE,SAAS,CAAA;EAEjB,OAAO;AACLC,IAAAA,kBAAkB,EAAAC,EAAAA,CAAAA,MAAA,CAAKC,cAAc,CAACN,KAAK,CAACO,MAAM,CAACC,QAAQ,CAACC,QAAQ,CAAC,CAAE;IACvEC,wBAAwB,EAAEP,SAAS,GAC/BQ,WAAW,CAACX,KAAK,CAACO,MAAM,CAACK,MAAM,CAACC,QAAQ,CAAC,GACzCF,WAAW,CAACX,KAAK,CAACO,MAAM,CAACK,MAAM,CAACE,IAAI,CAAC;AACzCC,IAAAA,kBAAkB,EAAE,SAAS;AAC7BC,IAAAA,OAAO,EAAEb,SAAS,GAAG,CAAC,GAAG,CAAC;IAC1Bc,eAAe,EAAEjB,KAAK,CAACkB,MAAM,CAACC,OAAO,CAACC,UAAU,CAACC,MAAAA;GAClD,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,GAA6B;AAC9C,EAAA,IAAAC,iBAAA,
|
|
1
|
+
{"version":3,"file":"ModalBackdrop.js","sources":["../../../../../../src/components/Modal/ModalBackdrop.tsx"],"sourcesContent":["/* eslint-disable react/display-name */\nimport React from 'react';\nimport styled from 'styled-components';\nimport { FloatingOverlay } from '@floating-ui/react';\nimport { useModalContext } from './ModalContext';\nimport { castWebType, makeMotionTime } from '~utils';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\n\nconst StyledModalBackdrop = styled(FloatingOverlay)(({ theme }) => {\n const { isVisible } = useModalContext();\n\n return {\n transitionDuration: `${makeMotionTime(theme.motion.duration.moderate)}`,\n transitionTimingFunction: isVisible\n ? castWebType(theme.motion.easing.entrance)\n : castWebType(theme.motion.easing.exit),\n transitionProperty: 'opacity',\n opacity: isVisible ? 1 : 0,\n backgroundColor: theme.colors.overlay.background.subtle,\n };\n});\n\nconst ModalBackdrop = (): React.ReactElement => {\n const { close, isDismissible } = useModalContext();\n\n return (\n <StyledModalBackdrop\n {...metaAttribute({ name: MetaConstants.ModalBackdrop, testID: MetaConstants.ModalBackdrop })}\n onClick={() => {\n if (isDismissible) {\n close?.();\n }\n }}\n lockScroll={true}\n />\n );\n};\n\nexport { ModalBackdrop };\n"],"names":["StyledModalBackdrop","styled","FloatingOverlay","withConfig","displayName","componentId","_ref","theme","_useModalContext","useModalContext","isVisible","transitionDuration","concat","makeMotionTime","motion","duration","moderate","transitionTimingFunction","castWebType","easing","entrance","exit","transitionProperty","opacity","backgroundColor","colors","overlay","background","subtle","ModalBackdrop","_useModalContext2","close","isDismissible","_jsx","_objectSpread","metaAttribute","name","MetaConstants","testID","onClick","lockScroll"],"mappings":";;;;;;;;;;;;;;;AAQA,IAAMA,mBAAmB,gBAAGC,MAAM,CAACC,eAAe,CAAC,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,oCAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAAC,CAAA,CAAA,UAAAC,IAAA,EAAe;AAAA,EAAA,IAAZC,KAAK,GAAAD,IAAA,CAALC,KAAK,CAAA;AAC1D,EAAA,IAAAC,gBAAA,GAAsBC,eAAe,EAAE;IAA/BC,SAAS,GAAAF,gBAAA,CAATE,SAAS,CAAA;EAEjB,OAAO;AACLC,IAAAA,kBAAkB,EAAAC,EAAAA,CAAAA,MAAA,CAAKC,cAAc,CAACN,KAAK,CAACO,MAAM,CAACC,QAAQ,CAACC,QAAQ,CAAC,CAAE;IACvEC,wBAAwB,EAAEP,SAAS,GAC/BQ,WAAW,CAACX,KAAK,CAACO,MAAM,CAACK,MAAM,CAACC,QAAQ,CAAC,GACzCF,WAAW,CAACX,KAAK,CAACO,MAAM,CAACK,MAAM,CAACE,IAAI,CAAC;AACzCC,IAAAA,kBAAkB,EAAE,SAAS;AAC7BC,IAAAA,OAAO,EAAEb,SAAS,GAAG,CAAC,GAAG,CAAC;IAC1Bc,eAAe,EAAEjB,KAAK,CAACkB,MAAM,CAACC,OAAO,CAACC,UAAU,CAACC,MAAAA;GAClD,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,GAA6B;AAC9C,EAAA,IAAAC,iBAAA,GAAiCrB,eAAe,EAAE;IAA1CsB,KAAK,GAAAD,iBAAA,CAALC,KAAK;IAAEC,aAAa,GAAAF,iBAAA,CAAbE,aAAa,CAAA;EAE5B,oBACEC,GAAA,CAACjC,mBAAmB,EAAAkC,aAAA,CAAAA,aAAA,CACdC,EAAAA,EAAAA,aAAa,CAAC;IAAEC,IAAI,EAAEC,aAAa,CAACR,aAAa;IAAES,MAAM,EAAED,aAAa,CAACR,aAAAA;AAAc,GAAC,CAAC,CAAA,EAAA,EAAA,EAAA;AAC7FU,IAAAA,OAAO,EAAE,SAATA,OAAOA,GAAQ;AACb,MAAA,IAAIP,aAAa,EAAE;AACjBD,QAAAA,KAAK,KAALA,IAAAA,IAAAA,KAAK,KAALA,KAAAA,CAAAA,IAAAA,KAAK,EAAI,CAAA;AACX,OAAA;KACA;AACFS,IAAAA,UAAU,EAAE,IAAA;AAAK,GAAA,CAClB,CAAC,CAAA;AAEN;;;;"}
|
|
@@ -4,6 +4,7 @@ import React__default from 'react';
|
|
|
4
4
|
var ModalContext = /*#__PURE__*/React__default.createContext({
|
|
5
5
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
6
6
|
close: function close() {},
|
|
7
|
+
isDismissible: true,
|
|
7
8
|
defaultInitialFocusRef: {
|
|
8
9
|
current: null
|
|
9
10
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModalContext.js","sources":["../../../../../../src/components/Modal/ModalContext.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React from 'react';\n\ntype ModalContextProps = {\n /**\n * Indicates open state of Modal\n */\n isOpen: boolean;\n /**\n * Function to close the Modal\n */\n close
|
|
1
|
+
{"version":3,"file":"ModalContext.js","sources":["../../../../../../src/components/Modal/ModalContext.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React from 'react';\n\ntype ModalContextProps = {\n /**\n * Indicates open state of Modal\n */\n isOpen: boolean;\n /**\n * Function to close the Modal\n */\n close?: () => void;\n /**\n * Whether the modal can be dismissed\n */\n isDismissible: boolean;\n /**\n * The element that will get focused when the Modal first opens\n */\n defaultInitialFocusRef: React.MutableRefObject<any>;\n /**\n * Indicates if the Modal is visible according to the usePresence hook\n */\n isVisible: boolean;\n};\n\nconst ModalContext = React.createContext<ModalContextProps>({\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n close: () => {},\n isDismissible: true,\n defaultInitialFocusRef: { current: null },\n isOpen: false,\n isVisible: false,\n});\n\nconst useModalContext = (): ModalContextProps => {\n const state = React.useContext(ModalContext);\n return state;\n};\n\nexport { ModalContext, useModalContext };\n"],"names":["ModalContext","React","createContext","close","isDismissible","defaultInitialFocusRef","current","isOpen","isVisible","useModalContext","state","useContext"],"mappings":";;AAAA;AA0BA,IAAMA,YAAY,gBAAGC,cAAK,CAACC,aAAa,CAAoB;AAC1D;AACAC,EAAAA,KAAK,EAAE,SAAPA,KAAKA,GAAQ,EAAE;AACfC,EAAAA,aAAa,EAAE,IAAI;AACnBC,EAAAA,sBAAsB,EAAE;AAAEC,IAAAA,OAAO,EAAE,IAAA;GAAM;AACzCC,EAAAA,MAAM,EAAE,KAAK;AACbC,EAAAA,SAAS,EAAE,KAAA;AACb,CAAC,EAAC;AAEF,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,GAA4B;AAC/C,EAAA,IAAMC,KAAK,GAAGT,cAAK,CAACU,UAAU,CAACX,YAAY,CAAC,CAAA;AAC5C,EAAA,OAAOU,KAAK,CAAA;AACd;;;;"}
|
|
@@ -34,7 +34,8 @@ var _ModalHeader = function _ModalHeader(_ref) {
|
|
|
34
34
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
35
35
|
var _useModalContext = useModalContext(),
|
|
36
36
|
close = _useModalContext.close,
|
|
37
|
-
defaultInitialFocusRef = _useModalContext.defaultInitialFocusRef
|
|
37
|
+
defaultInitialFocusRef = _useModalContext.defaultInitialFocusRef,
|
|
38
|
+
isDismissible = _useModalContext.isDismissible;
|
|
38
39
|
var isHeaderEmpty = !(title || subtitle || leading || trailing);
|
|
39
40
|
return isHeaderEmpty ? /*#__PURE__*/jsx(BaseBox, _objectSpread(_objectSpread({
|
|
40
41
|
display: "flex",
|
|
@@ -50,12 +51,14 @@ var _ModalHeader = function _ModalHeader(_ref) {
|
|
|
50
51
|
borderRadius: "max",
|
|
51
52
|
zIndex: componentZIndices.modal
|
|
52
53
|
}, makeAnalyticsAttribute(rest)), {}, {
|
|
53
|
-
children: /*#__PURE__*/jsx(IconButton, {
|
|
54
|
+
children: isDismissible && /*#__PURE__*/jsx(IconButton, {
|
|
54
55
|
ref: defaultInitialFocusRef,
|
|
55
56
|
size: "large",
|
|
56
57
|
icon: CloseIcon,
|
|
57
58
|
accessibilityLabel: "Close",
|
|
58
|
-
onClick:
|
|
59
|
+
onClick: function onClick() {
|
|
60
|
+
return close === null || close === void 0 ? void 0 : close();
|
|
61
|
+
}
|
|
59
62
|
})
|
|
60
63
|
})) : /*#__PURE__*/jsx(BaseHeader, _objectSpread({
|
|
61
64
|
metaComponentName: MetaConstants.ModalHeader,
|
|
@@ -65,7 +68,7 @@ var _ModalHeader = function _ModalHeader(_ref) {
|
|
|
65
68
|
trailing: trailing,
|
|
66
69
|
titleSuffix: titleSuffix,
|
|
67
70
|
closeButtonRef: defaultInitialFocusRef,
|
|
68
|
-
showCloseButton:
|
|
71
|
+
showCloseButton: isDismissible,
|
|
69
72
|
onCloseButtonClick: close
|
|
70
73
|
}, makeAnalyticsAttribute(rest)));
|
|
71
74
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModalHeader.web.js","sources":["../../../../../../src/components/Modal/ModalHeader.web.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */\nimport { useModalContext } from './ModalContext';\nimport { componentIds } from './constants';\nimport type { BaseHeaderProps } from '~components/BaseHeaderFooter/BaseHeader';\nimport { makeSize } from '~utils';\nimport { BaseHeader } from '~components/BaseHeaderFooter/BaseHeader';\nimport { BaseBox } from '~components/Box/BaseBox';\nimport { size } from '~tokens/global';\nimport { IconButton } from '~components/Button/IconButton';\nimport { CloseIcon } from '~components/Icons';\nimport { MetaConstants } from '~utils/metaAttribute';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { componentZIndices } from '~utils/componentZIndices';\nimport type { DataAnalyticsAttribute } from '~utils/types';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\ntype ModalHeaderProps = Pick<\n BaseHeaderProps,\n 'title' | 'subtitle' | 'leading' | 'trailing' | 'titleSuffix' | keyof DataAnalyticsAttribute\n>;\n\nconst _ModalHeader = ({\n leading,\n subtitle,\n title,\n titleSuffix,\n trailing,\n ...rest\n}: ModalHeaderProps): React.ReactElement => {\n const { close, defaultInitialFocusRef } = useModalContext();\n\n const isHeaderEmpty = !(title || subtitle || leading || trailing);\n return isHeaderEmpty ? (\n <BaseBox\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n position=\"absolute\"\n top=\"spacing.5\"\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={componentZIndices.modal}\n {...makeAnalyticsAttribute(rest)}\n >\n <IconButton\n
|
|
1
|
+
{"version":3,"file":"ModalHeader.web.js","sources":["../../../../../../src/components/Modal/ModalHeader.web.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */\nimport { useModalContext } from './ModalContext';\nimport { componentIds } from './constants';\nimport type { BaseHeaderProps } from '~components/BaseHeaderFooter/BaseHeader';\nimport { makeSize } from '~utils';\nimport { BaseHeader } from '~components/BaseHeaderFooter/BaseHeader';\nimport { BaseBox } from '~components/Box/BaseBox';\nimport { size } from '~tokens/global';\nimport { IconButton } from '~components/Button/IconButton';\nimport { CloseIcon } from '~components/Icons';\nimport { MetaConstants } from '~utils/metaAttribute';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { componentZIndices } from '~utils/componentZIndices';\nimport type { DataAnalyticsAttribute } from '~utils/types';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\ntype ModalHeaderProps = Pick<\n BaseHeaderProps,\n 'title' | 'subtitle' | 'leading' | 'trailing' | 'titleSuffix' | keyof DataAnalyticsAttribute\n>;\n\nconst _ModalHeader = ({\n leading,\n subtitle,\n title,\n titleSuffix,\n trailing,\n ...rest\n}: ModalHeaderProps): React.ReactElement => {\n const { close, defaultInitialFocusRef, isDismissible } = useModalContext();\n\n const isHeaderEmpty = !(title || subtitle || leading || trailing);\n return isHeaderEmpty ? (\n <BaseBox\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n position=\"absolute\"\n top=\"spacing.5\"\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={componentZIndices.modal}\n {...makeAnalyticsAttribute(rest)}\n >\n {isDismissible && (\n <IconButton\n ref={defaultInitialFocusRef}\n size=\"large\"\n icon={CloseIcon}\n accessibilityLabel=\"Close\"\n onClick={() => close?.()}\n />\n )}\n </BaseBox>\n ) : (\n <BaseHeader\n metaComponentName={MetaConstants.ModalHeader}\n title={title}\n subtitle={subtitle}\n leading={leading}\n trailing={trailing}\n titleSuffix={titleSuffix}\n closeButtonRef={defaultInitialFocusRef}\n showCloseButton={isDismissible}\n onCloseButtonClick={close}\n {...makeAnalyticsAttribute(rest)}\n />\n );\n};\nconst ModalHeader = assignWithoutSideEffects(_ModalHeader, {\n componentId: componentIds.ModalHeader,\n});\n\nexport { ModalHeader };\nexport type { ModalHeaderProps };\n"],"names":["_ModalHeader","_ref","leading","subtitle","title","titleSuffix","trailing","rest","_objectWithoutProperties","_excluded","_useModalContext","useModalContext","close","defaultInitialFocusRef","isDismissible","isHeaderEmpty","_jsx","BaseBox","_objectSpread","display","alignItems","justifyContent","position","top","right","width","makeSize","size","height","flexShrink","backgroundColor","borderRadius","zIndex","componentZIndices","modal","makeAnalyticsAttribute","children","IconButton","ref","icon","CloseIcon","accessibilityLabel","onClick","BaseHeader","metaComponentName","MetaConstants","ModalHeader","closeButtonRef","showCloseButton","onCloseButtonClick","assignWithoutSideEffects","componentId","componentIds"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,IAAMA,YAAY,GAAG,SAAfA,YAAYA,CAAAC,IAAA,EAO0B;AAAA,EAAA,IAN1CC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IACPC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IACRC,KAAK,GAAAH,IAAA,CAALG,KAAK;IACLC,WAAW,GAAAJ,IAAA,CAAXI,WAAW;IACXC,QAAQ,GAAAL,IAAA,CAARK,QAAQ;AACLC,IAAAA,IAAI,GAAAC,wBAAA,CAAAP,IAAA,EAAAQ,SAAA,CAAA,CAAA;AAEP,EAAA,IAAAC,gBAAA,GAAyDC,eAAe,EAAE;IAAlEC,KAAK,GAAAF,gBAAA,CAALE,KAAK;IAAEC,sBAAsB,GAAAH,gBAAA,CAAtBG,sBAAsB;IAAEC,aAAa,GAAAJ,gBAAA,CAAbI,aAAa,CAAA;EAEpD,IAAMC,aAAa,GAAG,EAAEX,KAAK,IAAID,QAAQ,IAAID,OAAO,IAAII,QAAQ,CAAC,CAAA;EACjE,OAAOS,aAAa,gBAClBC,GAAA,CAACC,OAAO,EAAAC,aAAA,CAAAA,aAAA,CAAA;AACNC,IAAAA,OAAO,EAAC,MAAM;AACdC,IAAAA,UAAU,EAAC,QAAQ;AACnBC,IAAAA,cAAc,EAAC,QAAQ;AACvBC,IAAAA,QAAQ,EAAC,UAAU;AACnBC,IAAAA,GAAG,EAAC,WAAW;AACfC,IAAAA,KAAK,EAAC,WAAW;AACjBC,IAAAA,KAAK,EAAEC,QAAQ,CAACC,IAAI,CAAC,EAAE,CAAC,CAAE;AAC1BC,IAAAA,MAAM,EAAEF,QAAQ,CAACC,IAAI,CAAC,EAAE,CAAC,CAAE;AAC3BE,IAAAA,UAAU,EAAE,CAAE;AACdC,IAAAA,eAAe,EAAC,yBAAyB;AACzCC,IAAAA,YAAY,EAAC,KAAK;IAClBC,MAAM,EAAEC,iBAAiB,CAACC,KAAAA;GACtBC,EAAAA,sBAAsB,CAAC5B,IAAI,CAAC,CAAA,EAAA,EAAA,EAAA;AAAA6B,IAAAA,QAAA,EAE/BtB,aAAa,iBACZE,GAAA,CAACqB,UAAU,EAAA;AACTC,MAAAA,GAAG,EAAEzB,sBAAuB;AAC5Bc,MAAAA,IAAI,EAAC,OAAO;AACZY,MAAAA,IAAI,EAAEC,SAAU;AAChBC,MAAAA,kBAAkB,EAAC,OAAO;MAC1BC,OAAO,EAAE,SAATA,OAAOA,GAAA;AAAA,QAAA,OAAQ9B,KAAK,KAALA,IAAAA,IAAAA,KAAK,KAALA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,EAAI,CAAA;AAAA,OAAA;KACzB,CAAA;AACF,GAAA,CACM,CAAC,gBAEVI,GAAA,CAAC2B,UAAU,EAAAzB,aAAA,CAAA;IACT0B,iBAAiB,EAAEC,aAAa,CAACC,WAAY;AAC7C1C,IAAAA,KAAK,EAAEA,KAAM;AACbD,IAAAA,QAAQ,EAAEA,QAAS;AACnBD,IAAAA,OAAO,EAAEA,OAAQ;AACjBI,IAAAA,QAAQ,EAAEA,QAAS;AACnBD,IAAAA,WAAW,EAAEA,WAAY;AACzB0C,IAAAA,cAAc,EAAElC,sBAAuB;AACvCmC,IAAAA,eAAe,EAAElC,aAAc;AAC/BmC,IAAAA,kBAAkB,EAAErC,KAAAA;AAAM,GAAA,EACtBuB,sBAAsB,CAAC5B,IAAI,CAAC,CACjC,CACF,CAAA;AACH,CAAC,CAAA;AACD,IAAMuC,WAAW,gBAAGI,wBAAwB,CAAClD,YAAY,EAAE;EACzDmD,WAAW,EAAEC,YAAY,CAACN,WAAAA;AAC5B,CAAC;;;;"}
|
|
@@ -41,7 +41,7 @@ import { makeAnalyticsAttribute } from '../../utils/makeAnalyticsAttribute/makeA
|
|
|
41
41
|
import { BaseBox } from '../Box/BaseBox/BaseBox.web.js';
|
|
42
42
|
import { assignWithoutSideEffects } from '../../utils/assignWithoutSideEffects/assignWithoutSideEffects.js';
|
|
43
43
|
|
|
44
|
-
var _excluded = ["isOpen", "onDismiss", "children", "initialFocusRef", "snapPoints", "zIndex"];
|
|
44
|
+
var _excluded = ["isOpen", "onDismiss", "children", "initialFocusRef", "snapPoints", "isDismissible", "zIndex"];
|
|
45
45
|
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; }
|
|
46
46
|
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; }
|
|
47
47
|
var BOTTOM_SHEET_EASING = 'cubic-bezier(.15,0,.24,.97)';
|
|
@@ -85,6 +85,8 @@ var _BottomSheet = function _BottomSheet(_ref2) {
|
|
|
85
85
|
initialFocusRef = _ref2.initialFocusRef,
|
|
86
86
|
_ref2$snapPoints = _ref2.snapPoints,
|
|
87
87
|
snapPoints = _ref2$snapPoints === void 0 ? [0.35, 0.5, 0.85] : _ref2$snapPoints,
|
|
88
|
+
_ref2$isDismissible = _ref2.isDismissible,
|
|
89
|
+
isDismissible = _ref2$isDismissible === void 0 ? true : _ref2$isDismissible,
|
|
88
90
|
_ref2$zIndex = _ref2.zIndex,
|
|
89
91
|
zIndex = _ref2$zIndex === void 0 ? componentZIndices.bottomSheet : _ref2$zIndex,
|
|
90
92
|
dataAnalyticsProps = _objectWithoutProperties(_ref2, _excluded);
|
|
@@ -234,10 +236,13 @@ var _BottomSheet = function _BottomSheet(_ref2) {
|
|
|
234
236
|
setPositionY(0);
|
|
235
237
|
}, [setPositionY]);
|
|
236
238
|
var close = React__default.useCallback(function () {
|
|
237
|
-
|
|
238
|
-
|
|
239
|
+
if (isDismissible) {
|
|
240
|
+
var _bottomSheetAndDropdo;
|
|
241
|
+
onDismiss === null || onDismiss === void 0 || onDismiss();
|
|
242
|
+
bottomSheetAndDropdownGlue === null || bottomSheetAndDropdownGlue === void 0 || (_bottomSheetAndDropdo = bottomSheetAndDropdownGlue.onBottomSheetDismiss) === null || _bottomSheetAndDropdo === void 0 || _bottomSheetAndDropdo.call(bottomSheetAndDropdownGlue);
|
|
243
|
+
}
|
|
239
244
|
returnFocus();
|
|
240
|
-
}, [
|
|
245
|
+
}, [isDismissible, onDismiss, bottomSheetAndDropdownGlue, returnFocus]);
|
|
241
246
|
|
|
242
247
|
// sync controlled state to our actions
|
|
243
248
|
React__default.useEffect(function () {
|
|
@@ -348,10 +353,20 @@ var _BottomSheet = function _BottomSheet(_ref2) {
|
|
|
348
353
|
var lowerestSnap = Math.min(lower, totalHeight) - lowerPointBuffer;
|
|
349
354
|
var shouldClose = rawY < lowerestSnap;
|
|
350
355
|
if (shouldClose) {
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
356
|
+
if (isDismissible) {
|
|
357
|
+
// Allow closing if dismissible
|
|
358
|
+
setIsDragging(false);
|
|
359
|
+
cancel();
|
|
360
|
+
close();
|
|
361
|
+
return;
|
|
362
|
+
} else {
|
|
363
|
+
// If not dismissible, snap back to first snap point instead of closing
|
|
364
|
+
setIsDragging(false);
|
|
365
|
+
cancel();
|
|
366
|
+
var firstSnapPoint = dimensions.height * snapPoints[0];
|
|
367
|
+
setPositionY(firstSnapPoint, true);
|
|
368
|
+
return;
|
|
369
|
+
}
|
|
355
370
|
}
|
|
356
371
|
|
|
357
372
|
// if we stop dragging assign snap to the nearest point
|
|
@@ -432,9 +447,10 @@ var _BottomSheet = function _BottomSheet(_ref2) {
|
|
|
432
447
|
scrollRef: scrollRef,
|
|
433
448
|
bind: bind,
|
|
434
449
|
defaultInitialFocusRef: defaultInitialFocusRef,
|
|
435
|
-
isHeaderFloating: isHeaderFloating
|
|
450
|
+
isHeaderFloating: isHeaderFloating,
|
|
451
|
+
isDismissible: isDismissible
|
|
436
452
|
};
|
|
437
|
-
}, [isVisible, close, positionY, headerHeight, contentHeight, footerHeight, setContentHeight, setFooterHeight, setHeaderHeight, setHasBodyPadding, setIsHeaderEmpty, scrollRef, bind, defaultInitialFocusRef, isHeaderFloating]);
|
|
453
|
+
}, [isVisible, close, positionY, headerHeight, contentHeight, footerHeight, setContentHeight, setFooterHeight, setHeaderHeight, setHasBodyPadding, setIsHeaderEmpty, scrollRef, bind, defaultInitialFocusRef, isHeaderFloating, isDismissible]);
|
|
438
454
|
React__default.useEffect(function () {
|
|
439
455
|
if (isMounted) {
|
|
440
456
|
addBottomSheetToStack(id);
|
|
@@ -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
|
-
|
|
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,
|
|
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:
|
|
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
|
|
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
|
|
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", "
|
|
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:
|
|
79
|
+
showCloseButton: isDismissible,
|
|
79
80
|
onCloseButtonClick: close
|
|
80
81
|
}, bind === null || bind === void 0 ? void 0 : bind()), {}, {
|
|
81
82
|
children: children
|