@razorpay/blade 12.22.0 → 12.23.1
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/web/development/components/Drawer/Drawer.web.js +8 -2
- package/build/lib/web/development/components/Drawer/Drawer.web.js.map +1 -1
- package/build/lib/web/development/components/ListView/ListViewFilters.web.js +2 -1
- package/build/lib/web/development/components/ListView/ListViewFilters.web.js.map +1 -1
- package/build/lib/web/production/components/Drawer/Drawer.web.js +8 -2
- package/build/lib/web/production/components/Drawer/Drawer.web.js.map +1 -1
- package/build/lib/web/production/components/ListView/ListViewFilters.web.js +2 -1
- package/build/lib/web/production/components/ListView/ListViewFilters.web.js.map +1 -1
- package/build/types/components/index.d.ts +10 -1
- package/build/types/components/index.native.d.ts +9 -1
- package/package.json +7 -7
|
@@ -31,7 +31,7 @@ import { makeAnalyticsAttribute } from '../../utils/makeAnalyticsAttribute/makeA
|
|
|
31
31
|
import { makeAccessible } from '../../utils/makeAccessible/makeAccessible.web.js';
|
|
32
32
|
import { assignWithoutSideEffects } from '../../utils/assignWithoutSideEffects/assignWithoutSideEffects.js';
|
|
33
33
|
|
|
34
|
-
var _excluded = ["isOpen", "onDismiss", "zIndex", "children", "accessibilityLabel", "showOverlay", "initialFocusRef", "isLazy", "testID"];
|
|
34
|
+
var _excluded = ["isOpen", "onDismiss", "onUnmount", "zIndex", "children", "accessibilityLabel", "showOverlay", "initialFocusRef", "isLazy", "testID"];
|
|
35
35
|
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; }
|
|
36
36
|
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; }
|
|
37
37
|
var SHOW_DRAWER = 'show-drawer';
|
|
@@ -79,6 +79,7 @@ var DrawerOverlay = /*#__PURE__*/styled(FloatingOverlay).withConfig({
|
|
|
79
79
|
var _Drawer = function _Drawer(_ref5, ref) {
|
|
80
80
|
var isOpen = _ref5.isOpen,
|
|
81
81
|
onDismiss = _ref5.onDismiss,
|
|
82
|
+
onUnmount = _ref5.onUnmount,
|
|
82
83
|
_ref5$zIndex = _ref5.zIndex,
|
|
83
84
|
zIndex = _ref5$zIndex === void 0 ? componentZIndices.drawer : _ref5$zIndex,
|
|
84
85
|
children = _ref5.children,
|
|
@@ -126,7 +127,12 @@ var _Drawer = function _Drawer(_ref5, ref) {
|
|
|
126
127
|
stackingLevel = _React$useMemo.stackingLevel,
|
|
127
128
|
isFirstDrawerInStack = _React$useMemo.isFirstDrawerInStack;
|
|
128
129
|
var _useFloating = useFloating({
|
|
129
|
-
open: isMounted
|
|
130
|
+
open: isMounted,
|
|
131
|
+
onOpenChange: function onOpenChange(open) {
|
|
132
|
+
if (!open) {
|
|
133
|
+
onUnmount === null || onUnmount === void 0 ? void 0 : onUnmount();
|
|
134
|
+
}
|
|
135
|
+
}
|
|
130
136
|
}),
|
|
131
137
|
refs = _useFloating.refs,
|
|
132
138
|
context = _useFloating.context;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Drawer.web.js","sources":["../../../../../../src/components/Drawer/Drawer.web.tsx"],"sourcesContent":["import {\n FloatingFocusManager,\n FloatingOverlay,\n FloatingPortal,\n useFloating,\n} from '@floating-ui/react';\nimport type { CSSProperties } from 'react';\nimport React from 'react';\nimport styled from 'styled-components';\nimport usePresence from 'use-presence';\nimport { drawerComponentIds } from './drawerComponentIds';\nimport { DrawerContext } from './DrawerContext';\nimport type { DrawerProps } from './types';\nimport BaseBox from '~components/Box/BaseBox';\nimport { castWebType, getMediaQuery, makeMotionTime, useTheme } from '~utils';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { componentZIndices } from '~utils/componentZIndices';\nimport { useDrawerStack } from '~components/Drawer/StackProvider';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { useId } from '~utils/useId';\nimport { useVerifyAllowedChildren } from '~utils/useVerifyAllowedChildren';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport type { BladeElementRef } from '~utils/types';\nimport { mergeRefs } from '~utils/useMergeRefs';\n\nconst SHOW_DRAWER = 'show-drawer';\n\nconst AnimatedDrawerContainer = styled(BaseBox)<{\n isFirstDrawerInStack: boolean;\n isVisible: boolean;\n}>(({ theme, isFirstDrawerInStack, isVisible }) => {\n const entranceTransition: CSSProperties['transition'] = `all ${castWebType(\n castWebType(makeMotionTime(theme.motion.duration.xmoderate)),\n )} ${castWebType(theme.motion.easing.entrance)}`;\n\n const exitTransition: CSSProperties['transition'] = `all\n ${castWebType(makeMotionTime(theme.motion.duration.moderate))}\n ${castWebType(theme.motion.easing.exit)}`;\n\n return {\n opacity: isVisible ? 1 : 0,\n transform: isVisible\n ? isFirstDrawerInStack\n ? 'translateX(calc(-100% - 16px))'\n : `translateX(-100%)`\n : 'translateX(0%)',\n transition: isVisible ? entranceTransition : exitTransition,\n animationFillMode: 'initial',\n position: 'fixed',\n top: '0px',\n bottom: '0px',\n left: '100%',\n height: 'auto',\n [`@media ${getMediaQuery({ min: theme.breakpoints.m })}`]: {\n top: isFirstDrawerInStack ? '24px' : '8px',\n bottom: isFirstDrawerInStack ? '24px' : '8px',\n transform: isVisible\n ? isFirstDrawerInStack\n ? 'translateX(calc(-100% - 24px))'\n : `translateX(calc(-100% - ${theme.spacing[3]}px))`\n : 'translateX(0%)',\n },\n };\n});\n\nconst DrawerOverlay = styled(FloatingOverlay)(({ theme }) => {\n return {\n opacity: 0,\n transition: `opacity\n ${makeMotionTime(theme.motion.duration.xmoderate)}\n ${castWebType(theme.motion.easing.exit)}`,\n backgroundColor: theme.colors.overlay.background.subtle,\n\n [`&.${SHOW_DRAWER}`]: {\n opacity: 1,\n transition: `opacity ${makeMotionTime(theme.motion.duration.gentle)} ${castWebType(\n theme.motion.easing.entrance,\n )}`,\n },\n };\n});\n\nconst _Drawer: React.ForwardRefRenderFunction<BladeElementRef, DrawerProps> = (\n {\n isOpen,\n onDismiss,\n zIndex = componentZIndices.drawer,\n children,\n accessibilityLabel,\n showOverlay = true,\n initialFocusRef,\n isLazy = true,\n testID,\n ...rest\n },\n ref,\n) => {\n const closeButtonRef = React.useRef<HTMLDivElement>(null);\n const [zIndexState, setZIndexState] = React.useState<number>(zIndex);\n\n useVerifyAllowedChildren({\n children,\n componentName: 'Drawer',\n allowedComponents: [drawerComponentIds.DrawerHeader, drawerComponentIds.DrawerBody],\n });\n\n const { theme } = useTheme();\n const drawerId = useId('drawer');\n const { drawerStack, addToDrawerStack, removeFromDrawerStack } = useDrawerStack();\n\n const { isMounted, isVisible, isExiting } = usePresence(isOpen, {\n enterTransitionDuration: theme.motion.duration.gentle,\n exitTransitionDuration: theme.motion.duration.xmoderate,\n initialEnter: true,\n });\n\n const { stackingLevel, isFirstDrawerInStack } = React.useMemo(() => {\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n const level = Object.keys(drawerStack).indexOf(drawerId) + 1;\n return {\n stackingLevel: level,\n isFirstDrawerInStack: level === 1 && Object.keys(drawerStack).length > 1,\n };\n }, [drawerId, drawerStack]);\n\n const { refs, context } = useFloating({\n open: isMounted,\n });\n\n React.useEffect(() => {\n if (isOpen) {\n addToDrawerStack({ elementId: drawerId, onDismiss });\n } else {\n removeFromDrawerStack({ elementId: drawerId });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen]);\n\n // When z-index is not defined by user, we use default drawer z index and add stackingLevel to ensure\n // new drawer that opens, always opens on top of previous one.\n React.useEffect(() => {\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n setZIndexState(zIndex + stackingLevel);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isMounted]);\n\n const contextValue = React.useMemo(\n () => ({\n close: onDismiss,\n closeButtonRef,\n stackingLevel,\n isExiting,\n }),\n [isExiting, onDismiss, stackingLevel],\n );\n\n return (\n <DrawerContext.Provider value={contextValue}>\n <FloatingPortal>\n {isMounted || !isLazy ? (\n <FloatingFocusManager\n context={context}\n initialFocus={initialFocusRef ?? closeButtonRef}\n returnFocus={true}\n >\n <BaseBox\n display={isLazy ? undefined : isMounted ? 'block' : 'none'}\n position=\"fixed\"\n {...metaAttribute({\n name: MetaConstants.Drawer,\n testID,\n })}\n {...makeAnalyticsAttribute(rest)}\n zIndex={zIndexState}\n >\n {showOverlay ? (\n <DrawerOverlay\n onClick={() => {\n onDismiss();\n }}\n className={isVisible ? SHOW_DRAWER : ''}\n lockScroll={true}\n {...metaAttribute({\n testID: 'drawer-overlay',\n })}\n />\n ) : null}\n <AnimatedDrawerContainer\n isVisible={isVisible}\n isFirstDrawerInStack={isFirstDrawerInStack}\n width={{ base: '90%', s: '375px', m: '420px' }}\n {...makeAccessible({\n role: 'dialog',\n modal: true,\n label: accessibilityLabel,\n })}\n position=\"fixed\"\n backgroundColor=\"popup.background.subtle\"\n borderRadius={{ base: 'none', m: 'large' }}\n overflow=\"hidden\"\n elevation=\"highRaised\"\n display=\"flex\"\n flexDirection=\"column\"\n ref={mergeRefs(ref, refs.setFloating)}\n onKeyDown={(event) => {\n if (event?.key === 'Escape' || event?.code === 'Escape') {\n onDismiss();\n }\n }}\n >\n {children}\n </AnimatedDrawerContainer>\n </BaseBox>\n </FloatingFocusManager>\n ) : null}\n </FloatingPortal>\n </DrawerContext.Provider>\n );\n};\n\n/**\n * ### Drawer Component\n * \n * A drawer is a panel that slides in mostly from right side of the screen over the existing content in the viewport. \n * It helps in providing additional details or context and can also be used to promote product features or new products.\n * \n * ---\n * \n * #### Usage\n * \n * ```jsx\n const MyDrawer = () => {\n const [showDrawer, setShowDrawer] = React.useState(false);\n return (\n <Box>\n <Button onClick={() => setShowDrawer(true)}>Open Drawer</Button>\n <Drawer\n isOpen={showDrawer}\n onDismiss={() => setShowDrawer(false)}\n >\n <DrawerHeader title=\"Announcements\" />\n <DrawerBody>\n <FTXAnnouncement />\n <CatPictures />\n </DrawerBody>\n <Drawer>\n </Box>\n )\n }\n * ```\n *\n * ---\n *\n * Checkout {@link https://blade.razorpay.com/?path=/docs/components-drawer Drawer Documentation}\n * \n * \n */\nconst Drawer = assignWithoutSideEffects(React.forwardRef(_Drawer), {\n displayName: 'Drawer',\n componentId: drawerComponentIds.Drawer,\n});\n\nexport { Drawer };\n"],"names":["SHOW_DRAWER","AnimatedDrawerContainer","styled","BaseBox","withConfig","displayName","componentId","_ref","theme","isFirstDrawerInStack","isVisible","entranceTransition","concat","castWebType","makeMotionTime","motion","duration","xmoderate","easing","entrance","exitTransition","moderate","exit","_defineProperty","opacity","transform","transition","animationFillMode","position","top","bottom","left","height","getMediaQuery","min","breakpoints","m","spacing","DrawerOverlay","FloatingOverlay","_ref3","backgroundColor","colors","overlay","background","subtle","gentle","_Drawer","_ref5","ref","isOpen","onDismiss","_ref5$zIndex","zIndex","componentZIndices","drawer","children","accessibilityLabel","_ref5$showOverlay","showOverlay","initialFocusRef","_ref5$isLazy","isLazy","testID","rest","_objectWithoutProperties","_excluded","closeButtonRef","React","useRef","_React$useState","useState","_React$useState2","_slicedToArray","zIndexState","setZIndexState","useVerifyAllowedChildren","componentName","allowedComponents","drawerComponentIds","DrawerHeader","DrawerBody","_useTheme","useTheme","drawerId","useId","_useDrawerStack","useDrawerStack","drawerStack","addToDrawerStack","removeFromDrawerStack","_usePresence","usePresence","enterTransitionDuration","exitTransitionDuration","initialEnter","isMounted","isExiting","_React$useMemo","useMemo","level","Object","keys","indexOf","stackingLevel","length","_useFloating","useFloating","open","refs","context","useEffect","elementId","contextValue","close","_jsx","DrawerContext","Provider","value","FloatingPortal","FloatingFocusManager","initialFocus","returnFocus","_jsxs","_objectSpread","display","undefined","metaAttribute","name","MetaConstants","Drawer","makeAnalyticsAttribute","onClick","className","lockScroll","width","base","s","makeAccessible","role","modal","label","borderRadius","overflow","elevation","flexDirection","mergeRefs","setFloating","onKeyDown","event","key","code","assignWithoutSideEffects","forwardRef"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,IAAMA,WAAW,GAAG,aAAa,CAAA;AAEjC,IAAMC,uBAAuB,gBAAGC,MAAM,CAACC,OAAO,CAAC,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,oCAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAG5C,CAAA,CAAA,UAAAC,IAAA,EAAgD;AAAA,EAAA,IAA7CC,KAAK,GAAAD,IAAA,CAALC,KAAK;IAAEC,oBAAoB,GAAAF,IAAA,CAApBE,oBAAoB;IAAEC,SAAS,GAAAH,IAAA,CAATG,SAAS,CAAA;AAC1C,EAAA,IAAMC,kBAA+C,GAAA,MAAA,CAAAC,MAAA,CAAUC,WAAW,CACxEA,WAAW,CAACC,cAAc,CAACN,KAAK,CAACO,MAAM,CAACC,QAAQ,CAACC,SAAS,CAAC,CAC7D,CAAC,EAAAL,GAAAA,CAAAA,CAAAA,MAAA,CAAIC,WAAW,CAACL,KAAK,CAACO,MAAM,CAACG,MAAM,CAACC,QAAQ,CAAC,CAAE,CAAA;AAEhD,EAAA,IAAMC,cAA2C,GAAA,SAAA,CAAAR,MAAA,CAC/CC,WAAW,CAACC,cAAc,CAACN,KAAK,CAACO,MAAM,CAACC,QAAQ,CAACK,QAAQ,CAAC,CAAC,EAAAT,MAAAA,CAAAA,CAAAA,MAAA,CAC3DC,WAAW,CAACL,KAAK,CAACO,MAAM,CAACG,MAAM,CAACI,IAAI,CAAC,CAAE,CAAA;AAEzC,EAAA,OAAAC,eAAA,CAAA;AACEC,IAAAA,OAAO,EAAEd,SAAS,GAAG,CAAC,GAAG,CAAC;IAC1Be,SAAS,EAAEf,SAAS,GAChBD,oBAAoB,GAClB,gCAAgC,GAAA,mBACb,GACrB,gBAAgB;AACpBiB,IAAAA,UAAU,EAAEhB,SAAS,GAAGC,kBAAkB,GAAGS,cAAc;AAC3DO,IAAAA,iBAAiB,EAAE,SAAS;AAC5BC,IAAAA,QAAQ,EAAE,OAAO;AACjBC,IAAAA,GAAG,EAAE,KAAK;AACVC,IAAAA,MAAM,EAAE,KAAK;AACbC,IAAAA,IAAI,EAAE,MAAM;AACZC,IAAAA,MAAM,EAAE,MAAA;GAAMpB,EAAAA,SAAAA,CAAAA,MAAA,CACHqB,aAAa,CAAC;AAAEC,IAAAA,GAAG,EAAE1B,KAAK,CAAC2B,WAAW,CAACC,CAAAA;AAAE,GAAC,CAAC,CAAK,EAAA;AACzDP,IAAAA,GAAG,EAAEpB,oBAAoB,GAAG,MAAM,GAAG,KAAK;AAC1CqB,IAAAA,MAAM,EAAErB,oBAAoB,GAAG,MAAM,GAAG,KAAK;AAC7CgB,IAAAA,SAAS,EAAEf,SAAS,GAChBD,oBAAoB,GAClB,gCAAgC,GAAAG,0BAAAA,CAAAA,MAAA,CACLJ,KAAK,CAAC6B,OAAO,CAAC,CAAC,CAAC,SAAM,GACnD,gBAAA;GACL,CAAA,CAAA;AAEL,CAAC,CAAC,CAAA;AAEF,IAAMC,aAAa,gBAAGpC,MAAM,CAACqC,eAAe,CAAC,CAAAnC,UAAA,CAAA;EAAAC,WAAA,EAAA,0BAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAAC,CAAA,CAAA,UAAAkC,KAAA,EAAe;AAAA,EAAA,IAAZhC,KAAK,GAAAgC,KAAA,CAALhC,KAAK,CAAA;AACpD,EAAA,OAAAe,eAAA,CAAA;AACEC,IAAAA,OAAO,EAAE,CAAC;IACVE,UAAU,EAAA,iBAAA,CAAAd,MAAA,CACNE,cAAc,CAACN,KAAK,CAACO,MAAM,CAACC,QAAQ,CAACC,SAAS,CAAC,cAAAL,MAAA,CAC/CC,WAAW,CAACL,KAAK,CAACO,MAAM,CAACG,MAAM,CAACI,IAAI,CAAC,CAAE;IAC3CmB,eAAe,EAAEjC,KAAK,CAACkC,MAAM,CAACC,OAAO,CAACC,UAAU,CAACC,MAAAA;GAAMjC,EAAAA,IAAAA,CAAAA,MAAA,CAEjDZ,WAAW,CAAK,EAAA;AACpBwB,IAAAA,OAAO,EAAE,CAAC;IACVE,UAAU,EAAA,UAAA,CAAAd,MAAA,CAAaE,cAAc,CAACN,KAAK,CAACO,MAAM,CAACC,QAAQ,CAAC8B,MAAM,CAAC,EAAAlC,GAAAA,CAAAA,CAAAA,MAAA,CAAIC,WAAW,CAChFL,KAAK,CAACO,MAAM,CAACG,MAAM,CAACC,QACtB,CAAC,CAAA;GACF,CAAA,CAAA;AAEL,CAAC,CAAC,CAAA;AAEF,IAAM4B,OAAqE,GAAG,SAAxEA,OAAqEA,CAAAC,KAAA,EAazEC,GAAG,EACA;AAAA,EAAA,IAZDC,MAAM,GAAAF,KAAA,CAANE,MAAM;IACNC,SAAS,GAAAH,KAAA,CAATG,SAAS;IAAAC,YAAA,GAAAJ,KAAA,CACTK,MAAM;AAANA,IAAAA,MAAM,GAAAD,YAAA,KAAA,KAAA,CAAA,GAAGE,iBAAiB,CAACC,MAAM,GAAAH,YAAA;IACjCI,QAAQ,GAAAR,KAAA,CAARQ,QAAQ;IACRC,kBAAkB,GAAAT,KAAA,CAAlBS,kBAAkB;IAAAC,iBAAA,GAAAV,KAAA,CAClBW,WAAW;AAAXA,IAAAA,WAAW,GAAAD,iBAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,iBAAA;IAClBE,eAAe,GAAAZ,KAAA,CAAfY,eAAe;IAAAC,YAAA,GAAAb,KAAA,CACfc,MAAM;AAANA,IAAAA,MAAM,GAAAD,YAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,YAAA;IACbE,MAAM,GAAAf,KAAA,CAANe,MAAM;AACHC,IAAAA,IAAI,GAAAC,wBAAA,CAAAjB,KAAA,EAAAkB,SAAA,CAAA,CAAA;AAIT,EAAA,IAAMC,cAAc,GAAGC,cAAK,CAACC,MAAM,CAAiB,IAAI,CAAC,CAAA;AACzD,EAAA,IAAAC,eAAA,GAAsCF,cAAK,CAACG,QAAQ,CAASlB,MAAM,CAAC;IAAAmB,gBAAA,GAAAC,cAAA,CAAAH,eAAA,EAAA,CAAA,CAAA;AAA7DI,IAAAA,WAAW,GAAAF,gBAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,cAAc,GAAAH,gBAAA,CAAA,CAAA,CAAA,CAAA;AAElCI,EAAAA,wBAAwB,CAAC;AACvBpB,IAAAA,QAAQ,EAARA,QAAQ;AACRqB,IAAAA,aAAa,EAAE,QAAQ;IACvBC,iBAAiB,EAAE,CAACC,kBAAkB,CAACC,YAAY,EAAED,kBAAkB,CAACE,UAAU,CAAA;AACpF,GAAC,CAAC,CAAA;AAEF,EAAA,IAAAC,SAAA,GAAkBC,QAAQ,EAAE;IAApB3E,KAAK,GAAA0E,SAAA,CAAL1E,KAAK,CAAA;AACb,EAAA,IAAM4E,QAAQ,GAAGC,KAAK,CAAC,QAAQ,CAAC,CAAA;AAChC,EAAA,IAAAC,eAAA,GAAiEC,cAAc,EAAE;IAAzEC,WAAW,GAAAF,eAAA,CAAXE,WAAW;IAAEC,gBAAgB,GAAAH,eAAA,CAAhBG,gBAAgB;IAAEC,qBAAqB,GAAAJ,eAAA,CAArBI,qBAAqB,CAAA;AAE5D,EAAA,IAAAC,YAAA,GAA4CC,WAAW,CAAC1C,MAAM,EAAE;AAC9D2C,MAAAA,uBAAuB,EAAErF,KAAK,CAACO,MAAM,CAACC,QAAQ,CAAC8B,MAAM;AACrDgD,MAAAA,sBAAsB,EAAEtF,KAAK,CAACO,MAAM,CAACC,QAAQ,CAACC,SAAS;AACvD8E,MAAAA,YAAY,EAAE,IAAA;AAChB,KAAC,CAAC;IAJMC,SAAS,GAAAL,YAAA,CAATK,SAAS;IAAEtF,SAAS,GAAAiF,YAAA,CAATjF,SAAS;IAAEuF,SAAS,GAAAN,YAAA,CAATM,SAAS,CAAA;AAMvC,EAAA,IAAAC,cAAA,GAAgD9B,cAAK,CAAC+B,OAAO,CAAC,YAAM;AAClE;AACA,MAAA,IAAMC,KAAK,GAAGC,MAAM,CAACC,IAAI,CAACd,WAAW,CAAC,CAACe,OAAO,CAACnB,QAAQ,CAAC,GAAG,CAAC,CAAA;MAC5D,OAAO;AACLoB,QAAAA,aAAa,EAAEJ,KAAK;AACpB3F,QAAAA,oBAAoB,EAAE2F,KAAK,KAAK,CAAC,IAAIC,MAAM,CAACC,IAAI,CAACd,WAAW,CAAC,CAACiB,MAAM,GAAG,CAAA;OACxE,CAAA;AACH,KAAC,EAAE,CAACrB,QAAQ,EAAEI,WAAW,CAAC,CAAC;IAPnBgB,aAAa,GAAAN,cAAA,CAAbM,aAAa;IAAE/F,oBAAoB,GAAAyF,cAAA,CAApBzF,oBAAoB,CAAA;EAS3C,IAAAiG,YAAA,GAA0BC,WAAW,CAAC;AACpCC,MAAAA,IAAI,EAAEZ,SAAAA;AACR,KAAC,CAAC;IAFMa,IAAI,GAAAH,YAAA,CAAJG,IAAI;IAAEC,OAAO,GAAAJ,YAAA,CAAPI,OAAO,CAAA;EAIrB1C,cAAK,CAAC2C,SAAS,CAAC,YAAM;AACpB,IAAA,IAAI7D,MAAM,EAAE;AACVuC,MAAAA,gBAAgB,CAAC;AAAEuB,QAAAA,SAAS,EAAE5B,QAAQ;AAAEjC,QAAAA,SAAS,EAATA,SAAAA;AAAU,OAAC,CAAC,CAAA;AACtD,KAAC,MAAM;AACLuC,MAAAA,qBAAqB,CAAC;AAAEsB,QAAAA,SAAS,EAAE5B,QAAAA;AAAS,OAAC,CAAC,CAAA;AAChD,KAAA;AACA;AACF,GAAC,EAAE,CAAClC,MAAM,CAAC,CAAC,CAAA;;AAEZ;AACA;EACAkB,cAAK,CAAC2C,SAAS,CAAC,YAAM;AACpB;AACApC,IAAAA,cAAc,CAACtB,MAAM,GAAGmD,aAAa,CAAC,CAAA;AACtC;AACF,GAAC,EAAE,CAACR,SAAS,CAAC,CAAC,CAAA;AAEf,EAAA,IAAMiB,YAAY,GAAG7C,cAAK,CAAC+B,OAAO,CAChC,YAAA;IAAA,OAAO;AACLe,MAAAA,KAAK,EAAE/D,SAAS;AAChBgB,MAAAA,cAAc,EAAdA,cAAc;AACdqC,MAAAA,aAAa,EAAbA,aAAa;AACbP,MAAAA,SAAS,EAATA,SAAAA;KACD,CAAA;GAAC,EACF,CAACA,SAAS,EAAE9C,SAAS,EAAEqD,aAAa,CACtC,CAAC,CAAA;AAED,EAAA,oBACEW,GAAA,CAACC,aAAa,CAACC,QAAQ,EAAA;AAACC,IAAAA,KAAK,EAAEL,YAAa;IAAAzD,QAAA,eAC1C2D,GAAA,CAACI,cAAc,EAAA;MAAA/D,QAAA,EACZwC,SAAS,IAAI,CAAClC,MAAM,gBACnBqD,GAAA,CAACK,oBAAoB,EAAA;AACnBV,QAAAA,OAAO,EAAEA,OAAQ;AACjBW,QAAAA,YAAY,EAAE7D,eAAe,KAAA,IAAA,IAAfA,eAAe,KAAfA,KAAAA,CAAAA,GAAAA,eAAe,GAAIO,cAAe;AAChDuD,QAAAA,WAAW,EAAE,IAAK;QAAAlE,QAAA,eAElBmE,IAAA,CAACxH,OAAO,EAAAyH,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAA;UACNC,OAAO,EAAE/D,MAAM,GAAGgE,SAAS,GAAG9B,SAAS,GAAG,OAAO,GAAG,MAAO;AAC3DpE,UAAAA,QAAQ,EAAC,OAAA;AAAO,SAAA,EACZmG,aAAa,CAAC;UAChBC,IAAI,EAAEC,aAAa,CAACC,MAAM;AAC1BnE,UAAAA,MAAM,EAANA,MAAAA;AACF,SAAC,CAAC,CAAA,EACEoE,sBAAsB,CAACnE,IAAI,CAAC,CAAA,EAAA,EAAA,EAAA;AAChCX,UAAAA,MAAM,EAAEqB,WAAY;AAAAlB,UAAAA,QAAA,GAEnBG,WAAW,gBACVwD,GAAA,CAAC7E,aAAa,EAAAsF,aAAA,CAAA;YACZQ,OAAO,EAAE,SAAAA,OAAAA,GAAM;AACbjF,cAAAA,SAAS,EAAE,CAAA;aACX;AACFkF,YAAAA,SAAS,EAAE3H,SAAS,GAAGV,WAAW,GAAG,EAAG;AACxCsI,YAAAA,UAAU,EAAE,IAAA;AAAK,WAAA,EACbP,aAAa,CAAC;AAChBhE,YAAAA,MAAM,EAAE,gBAAA;AACV,WAAC,CAAC,CACH,CAAC,GACA,IAAI,eACRoD,GAAA,CAAClH,uBAAuB,EAAA2H,aAAA,CAAAA,aAAA,CAAA;AACtBlH,YAAAA,SAAS,EAAEA,SAAU;AACrBD,YAAAA,oBAAoB,EAAEA,oBAAqB;AAC3C8H,YAAAA,KAAK,EAAE;AAAEC,cAAAA,IAAI,EAAE,KAAK;AAAEC,cAAAA,CAAC,EAAE,OAAO;AAAErG,cAAAA,CAAC,EAAE,OAAA;AAAQ,aAAA;AAAE,WAAA,EAC3CsG,cAAc,CAAC;AACjBC,YAAAA,IAAI,EAAE,QAAQ;AACdC,YAAAA,KAAK,EAAE,IAAI;AACXC,YAAAA,KAAK,EAAEpF,kBAAAA;AACT,WAAC,CAAC,CAAA,EAAA,EAAA,EAAA;AACF7B,YAAAA,QAAQ,EAAC,OAAO;AAChBa,YAAAA,eAAe,EAAC,yBAAyB;AACzCqG,YAAAA,YAAY,EAAE;AAAEN,cAAAA,IAAI,EAAE,MAAM;AAAEpG,cAAAA,CAAC,EAAE,OAAA;aAAU;AAC3C2G,YAAAA,QAAQ,EAAC,QAAQ;AACjBC,YAAAA,SAAS,EAAC,YAAY;AACtBnB,YAAAA,OAAO,EAAC,MAAM;AACdoB,YAAAA,aAAa,EAAC,QAAQ;YACtBhG,GAAG,EAAEiG,SAAS,CAACjG,GAAG,EAAE4D,IAAI,CAACsC,WAAW,CAAE;AACtCC,YAAAA,SAAS,EAAE,SAAAA,SAACC,CAAAA,KAAK,EAAK;cACpB,IAAI,CAAAA,KAAK,KAALA,IAAAA,IAAAA,KAAK,uBAALA,KAAK,CAAEC,GAAG,MAAK,QAAQ,IAAI,CAAAD,KAAK,aAALA,KAAK,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAALA,KAAK,CAAEE,IAAI,MAAK,QAAQ,EAAE;AACvDpG,gBAAAA,SAAS,EAAE,CAAA;AACb,eAAA;aACA;AAAAK,YAAAA,QAAA,EAEDA,QAAAA;AAAQ,WAAA,CACc,CAAC,CAAA;SACnB,CAAA,CAAA;AAAC,OACU,CAAC,GACrB,IAAA;KACU,CAAA;AAAC,GACK,CAAC,CAAA;AAE7B,CAAC,CAAA;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACM0E,IAAAA,MAAM,gBAAGsB,wBAAwB,eAACpF,cAAK,CAACqF,UAAU,CAAC1G,OAAO,CAAC,EAAE;AACjE1C,EAAAA,WAAW,EAAE,QAAQ;EACrBC,WAAW,EAAEyE,kBAAkB,CAACmD,MAAAA;AAClC,CAAC;;;;"}
|
|
1
|
+
{"version":3,"file":"Drawer.web.js","sources":["../../../../../../src/components/Drawer/Drawer.web.tsx"],"sourcesContent":["import {\n FloatingFocusManager,\n FloatingOverlay,\n FloatingPortal,\n useFloating,\n} from '@floating-ui/react';\nimport type { CSSProperties } from 'react';\nimport React from 'react';\nimport styled from 'styled-components';\nimport usePresence from 'use-presence';\nimport { drawerComponentIds } from './drawerComponentIds';\nimport { DrawerContext } from './DrawerContext';\nimport type { DrawerProps } from './types';\nimport BaseBox from '~components/Box/BaseBox';\nimport { castWebType, getMediaQuery, makeMotionTime, useTheme } from '~utils';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { componentZIndices } from '~utils/componentZIndices';\nimport { useDrawerStack } from '~components/Drawer/StackProvider';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { useId } from '~utils/useId';\nimport { useVerifyAllowedChildren } from '~utils/useVerifyAllowedChildren';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport type { BladeElementRef } from '~utils/types';\nimport { mergeRefs } from '~utils/useMergeRefs';\n\nconst SHOW_DRAWER = 'show-drawer';\n\nconst AnimatedDrawerContainer = styled(BaseBox)<{\n isFirstDrawerInStack: boolean;\n isVisible: boolean;\n}>(({ theme, isFirstDrawerInStack, isVisible }) => {\n const entranceTransition: CSSProperties['transition'] = `all ${castWebType(\n castWebType(makeMotionTime(theme.motion.duration.xmoderate)),\n )} ${castWebType(theme.motion.easing.entrance)}`;\n\n const exitTransition: CSSProperties['transition'] = `all\n ${castWebType(makeMotionTime(theme.motion.duration.moderate))}\n ${castWebType(theme.motion.easing.exit)}`;\n\n return {\n opacity: isVisible ? 1 : 0,\n transform: isVisible\n ? isFirstDrawerInStack\n ? 'translateX(calc(-100% - 16px))'\n : `translateX(-100%)`\n : 'translateX(0%)',\n transition: isVisible ? entranceTransition : exitTransition,\n animationFillMode: 'initial',\n position: 'fixed',\n top: '0px',\n bottom: '0px',\n left: '100%',\n height: 'auto',\n [`@media ${getMediaQuery({ min: theme.breakpoints.m })}`]: {\n top: isFirstDrawerInStack ? '24px' : '8px',\n bottom: isFirstDrawerInStack ? '24px' : '8px',\n transform: isVisible\n ? isFirstDrawerInStack\n ? 'translateX(calc(-100% - 24px))'\n : `translateX(calc(-100% - ${theme.spacing[3]}px))`\n : 'translateX(0%)',\n },\n };\n});\n\nconst DrawerOverlay = styled(FloatingOverlay)(({ theme }) => {\n return {\n opacity: 0,\n transition: `opacity\n ${makeMotionTime(theme.motion.duration.xmoderate)}\n ${castWebType(theme.motion.easing.exit)}`,\n backgroundColor: theme.colors.overlay.background.subtle,\n\n [`&.${SHOW_DRAWER}`]: {\n opacity: 1,\n transition: `opacity ${makeMotionTime(theme.motion.duration.gentle)} ${castWebType(\n theme.motion.easing.entrance,\n )}`,\n },\n };\n});\n\nconst _Drawer: React.ForwardRefRenderFunction<BladeElementRef, DrawerProps> = (\n {\n isOpen,\n onDismiss,\n onUnmount,\n zIndex = componentZIndices.drawer,\n children,\n accessibilityLabel,\n showOverlay = true,\n initialFocusRef,\n isLazy = true,\n testID,\n ...rest\n },\n ref,\n) => {\n const closeButtonRef = React.useRef<HTMLDivElement>(null);\n const [zIndexState, setZIndexState] = React.useState<number>(zIndex);\n\n useVerifyAllowedChildren({\n children,\n componentName: 'Drawer',\n allowedComponents: [drawerComponentIds.DrawerHeader, drawerComponentIds.DrawerBody],\n });\n\n const { theme } = useTheme();\n const drawerId = useId('drawer');\n const { drawerStack, addToDrawerStack, removeFromDrawerStack } = useDrawerStack();\n\n const { isMounted, isVisible, isExiting } = usePresence(isOpen, {\n enterTransitionDuration: theme.motion.duration.gentle,\n exitTransitionDuration: theme.motion.duration.xmoderate,\n initialEnter: true,\n });\n\n const { stackingLevel, isFirstDrawerInStack } = React.useMemo(() => {\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n const level = Object.keys(drawerStack).indexOf(drawerId) + 1;\n return {\n stackingLevel: level,\n isFirstDrawerInStack: level === 1 && Object.keys(drawerStack).length > 1,\n };\n }, [drawerId, drawerStack]);\n\n const { refs, context } = useFloating({\n open: isMounted,\n onOpenChange: (open) => {\n if (!open) {\n onUnmount?.();\n }\n },\n });\n\n React.useEffect(() => {\n if (isOpen) {\n addToDrawerStack({ elementId: drawerId, onDismiss });\n } else {\n removeFromDrawerStack({ elementId: drawerId });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen]);\n\n // When z-index is not defined by user, we use default drawer z index and add stackingLevel to ensure\n // new drawer that opens, always opens on top of previous one.\n React.useEffect(() => {\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n setZIndexState(zIndex + stackingLevel);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isMounted]);\n\n const contextValue = React.useMemo(\n () => ({\n close: onDismiss,\n closeButtonRef,\n stackingLevel,\n isExiting,\n }),\n [isExiting, onDismiss, stackingLevel],\n );\n\n return (\n <DrawerContext.Provider value={contextValue}>\n <FloatingPortal>\n {isMounted || !isLazy ? (\n <FloatingFocusManager\n context={context}\n initialFocus={initialFocusRef ?? closeButtonRef}\n returnFocus={true}\n >\n <BaseBox\n display={isLazy ? undefined : isMounted ? 'block' : 'none'}\n position=\"fixed\"\n {...metaAttribute({\n name: MetaConstants.Drawer,\n testID,\n })}\n {...makeAnalyticsAttribute(rest)}\n zIndex={zIndexState}\n >\n {showOverlay ? (\n <DrawerOverlay\n onClick={() => {\n onDismiss();\n }}\n className={isVisible ? SHOW_DRAWER : ''}\n lockScroll={true}\n {...metaAttribute({\n testID: 'drawer-overlay',\n })}\n />\n ) : null}\n <AnimatedDrawerContainer\n isVisible={isVisible}\n isFirstDrawerInStack={isFirstDrawerInStack}\n width={{ base: '90%', s: '375px', m: '420px' }}\n {...makeAccessible({\n role: 'dialog',\n modal: true,\n label: accessibilityLabel,\n })}\n position=\"fixed\"\n backgroundColor=\"popup.background.subtle\"\n borderRadius={{ base: 'none', m: 'large' }}\n overflow=\"hidden\"\n elevation=\"highRaised\"\n display=\"flex\"\n flexDirection=\"column\"\n ref={mergeRefs(ref, refs.setFloating)}\n onKeyDown={(event) => {\n if (event?.key === 'Escape' || event?.code === 'Escape') {\n onDismiss();\n }\n }}\n >\n {children}\n </AnimatedDrawerContainer>\n </BaseBox>\n </FloatingFocusManager>\n ) : null}\n </FloatingPortal>\n </DrawerContext.Provider>\n );\n};\n\n/**\n * ### Drawer Component\n * \n * A drawer is a panel that slides in mostly from right side of the screen over the existing content in the viewport. \n * It helps in providing additional details or context and can also be used to promote product features or new products.\n * \n * ---\n * \n * #### Usage\n * \n * ```jsx\n const MyDrawer = () => {\n const [showDrawer, setShowDrawer] = React.useState(false);\n return (\n <Box>\n <Button onClick={() => setShowDrawer(true)}>Open Drawer</Button>\n <Drawer\n isOpen={showDrawer}\n onDismiss={() => setShowDrawer(false)}\n >\n <DrawerHeader title=\"Announcements\" />\n <DrawerBody>\n <FTXAnnouncement />\n <CatPictures />\n </DrawerBody>\n <Drawer>\n </Box>\n )\n }\n * ```\n *\n * ---\n *\n * Checkout {@link https://blade.razorpay.com/?path=/docs/components-drawer Drawer Documentation}\n * \n * \n */\nconst Drawer = assignWithoutSideEffects(React.forwardRef(_Drawer), {\n displayName: 'Drawer',\n componentId: drawerComponentIds.Drawer,\n});\n\nexport { Drawer };\n"],"names":["SHOW_DRAWER","AnimatedDrawerContainer","styled","BaseBox","withConfig","displayName","componentId","_ref","theme","isFirstDrawerInStack","isVisible","entranceTransition","concat","castWebType","makeMotionTime","motion","duration","xmoderate","easing","entrance","exitTransition","moderate","exit","_defineProperty","opacity","transform","transition","animationFillMode","position","top","bottom","left","height","getMediaQuery","min","breakpoints","m","spacing","DrawerOverlay","FloatingOverlay","_ref3","backgroundColor","colors","overlay","background","subtle","gentle","_Drawer","_ref5","ref","isOpen","onDismiss","onUnmount","_ref5$zIndex","zIndex","componentZIndices","drawer","children","accessibilityLabel","_ref5$showOverlay","showOverlay","initialFocusRef","_ref5$isLazy","isLazy","testID","rest","_objectWithoutProperties","_excluded","closeButtonRef","React","useRef","_React$useState","useState","_React$useState2","_slicedToArray","zIndexState","setZIndexState","useVerifyAllowedChildren","componentName","allowedComponents","drawerComponentIds","DrawerHeader","DrawerBody","_useTheme","useTheme","drawerId","useId","_useDrawerStack","useDrawerStack","drawerStack","addToDrawerStack","removeFromDrawerStack","_usePresence","usePresence","enterTransitionDuration","exitTransitionDuration","initialEnter","isMounted","isExiting","_React$useMemo","useMemo","level","Object","keys","indexOf","stackingLevel","length","_useFloating","useFloating","open","onOpenChange","refs","context","useEffect","elementId","contextValue","close","_jsx","DrawerContext","Provider","value","FloatingPortal","FloatingFocusManager","initialFocus","returnFocus","_jsxs","_objectSpread","display","undefined","metaAttribute","name","MetaConstants","Drawer","makeAnalyticsAttribute","onClick","className","lockScroll","width","base","s","makeAccessible","role","modal","label","borderRadius","overflow","elevation","flexDirection","mergeRefs","setFloating","onKeyDown","event","key","code","assignWithoutSideEffects","forwardRef"],"mappings":"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"}
|
|
@@ -176,7 +176,8 @@ var ListViewFilters = function ListViewFilters(_ref4) {
|
|
|
176
176
|
return !prev;
|
|
177
177
|
});
|
|
178
178
|
},
|
|
179
|
-
icon: FilterIcon
|
|
179
|
+
icon: FilterIcon,
|
|
180
|
+
accessibilityLabel: "Show More Filters"
|
|
180
181
|
}), /*#__PURE__*/jsx(Box, {
|
|
181
182
|
position: "absolute",
|
|
182
183
|
right: "spacing.0",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListViewFilters.web.js","sources":["../../../../../../src/components/ListView/ListViewFilters.web.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { AnimatePresence, m } from 'framer-motion';\nimport styled from 'styled-components';\nimport type { ListViewFilterProps, ListViewSelectedFiltersType } from './types';\nimport { ListViewFiltersProvider } from './ListViewFiltersContext.web';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport BaseBox from '~components/Box/BaseBox';\nimport { MetaConstants, metaAttribute } from '~utils/metaAttribute';\nimport { FilterIcon } from '~components/Icons';\nimport { Button } from '~components/Button';\nimport { Counter } from '~components/Counter';\nimport { Box } from '~components/Box';\nimport { SearchInput } from '~components/Input/SearchInput';\nimport { useId } from '~utils/useId';\nimport { useControllableState } from '~utils/useControllable';\nimport { useIsMobile } from '~utils/useIsMobile';\nimport { msToSeconds } from '~utils/msToSeconds';\nimport { useTheme } from '~components/BladeProvider';\nimport { cssBezierToArray } from '~utils/cssBezierToArray';\nimport { castWebType } from '~utils';\nimport { Divider } from '~components/Divider';\n\nconst gradientOverlyContainerWidth = '21px'; // 20px + 1px divider width\nconst gradientOverlyContainerHeight = '38px';\n\nconst StyledQuickFilterContainer = styled(BaseBox)({\n /* For Webkit (Chrome, Safari) */\n '::-webkit-scrollbar': {\n display: 'none',\n },\n /* For Firefox */\n scrollbarWidth: 'none',\n /* For Edge */\n msOverflowStyle: 'none',\n});\n\nconst GradientOverlay = styled.div<{\n gradientColorLeft: string;\n dividerColor: string;\n gradientColorRight: string;\n}>`\n height: 100%;\n width: 20px;\n background: linear-gradient(\n 270deg,\n ${({ gradientColorRight }) => gradientColorRight} 0%,\n ${({ gradientColorLeft }) => gradientColorLeft} 100%\n );\n pointer-events: none;\n &::after {\n content: '';\n position: absolute;\n right: 0;\n top: 0;\n height: 100%;\n width: 1px;\n background-color: ${({ dividerColor }) => dividerColor};\n }\n`;\n\nconst ListViewFilters = ({\n testID,\n children,\n quickFilters,\n onSearchChange,\n searchValue,\n searchValuePlaceholder,\n searchName,\n showQuickFilters,\n onShowQuickFiltersChange,\n onSearchClear,\n selectedFiltersCount = 0,\n ...rest\n}: ListViewFilterProps): React.ReactElement => {\n const [shouldShowDecorationInQuickFilters, setShouldShowDecorationInQuickFilters] = useState(\n false,\n );\n const [showFilters, setShowFilters] = useControllableState({\n defaultValue: showQuickFilters,\n value: showQuickFilters,\n onChange: onShowQuickFiltersChange,\n });\n const [\n listViewSelectedFilters,\n setListViewSelectedFilters,\n ] = useState<ListViewSelectedFiltersType>({});\n const searchId = useId('search-input');\n const searchNameValue = searchName || searchId;\n const isMobile = useIsMobile();\n const { theme } = useTheme();\n const showSearchInput = onSearchChange || onSearchClear || searchValuePlaceholder || searchName;\n\n return (\n <ListViewFiltersProvider\n value={{\n listViewSelectedFilters,\n setListViewSelectedFilters,\n selectedFiltersCount,\n }}\n >\n {isMobile && showSearchInput && (\n <SearchInput\n label=\"\"\n value={searchValue}\n placeholder={searchValuePlaceholder}\n name={searchNameValue || searchId}\n onChange={({ name, value }) => onSearchChange?.({ name, value })}\n onClearButtonClick={onSearchClear}\n />\n )}\n <BaseBox>\n <BaseBox\n {...metaAttribute({ name: MetaConstants.ListViewFilter, testID })}\n {...makeAnalyticsAttribute(rest)}\n display=\"flex\"\n justifyContent=\"space-between\"\n >\n <Box\n position=\"relative\"\n display=\"flex\"\n flexDirection=\"column\"\n width={isMobile ? '88%' : 'auto'}\n marginRight={isMobile ? 'spacing.2' : 'spacing.0'}\n >\n <StyledQuickFilterContainer\n overflow={isMobile ? 'scroll' : 'visible'}\n width={isMobile ? '100%' : 'auto'}\n ref={(node) => {\n if (node instanceof HTMLElement && quickFilters) {\n setShouldShowDecorationInQuickFilters(node.scrollWidth > node.offsetWidth);\n }\n }}\n paddingY=\"spacing.4\"\n paddingLeft={isMobile ? 'spacing.2' : 'spacing.0'}\n >\n {quickFilters}\n </StyledQuickFilterContainer>\n {isMobile && shouldShowDecorationInQuickFilters ? (\n <Box\n position=\"absolute\"\n right=\"-1px\"\n top=\"spacing.4\"\n width={gradientOverlyContainerWidth}\n height={gradientOverlyContainerHeight}\n >\n <GradientOverlay\n gradientColorLeft={theme.colors.transparent}\n gradientColorRight={theme.colors.surface.background.gray.intense}\n dividerColor={theme.colors.surface.border.gray.normal}\n />\n <Divider orientation=\"vertical\" />\n </Box>\n ) : null}\n </Box>\n\n <BaseBox display=\"flex\" gap=\"spacing.4\" alignItems=\"center\">\n <Box position=\"relative\" display=\"inline-block\">\n <Button\n variant=\"tertiary\"\n size=\"medium\"\n color=\"primary\"\n onClick={() => {\n setShowFilters((prev) => !prev);\n }}\n icon={FilterIcon}\n />\n <Box\n position=\"absolute\"\n right=\"spacing.0\"\n top=\"spacing.0\"\n transform=\"translate(50%, -50%)\"\n >\n <Counter\n value={selectedFiltersCount || Object.keys(listViewSelectedFilters).length}\n color=\"primary\"\n emphasis=\"intense\"\n size=\"small\"\n />\n </Box>\n </Box>\n {!isMobile && showSearchInput && (\n <Box width=\"256px\">\n <SearchInput\n label=\"\"\n value={searchValue}\n placeholder={searchValuePlaceholder}\n name={searchNameValue || searchId}\n onChange={({ name, value }) => onSearchChange?.({ name, value })}\n onClearButtonClick={onSearchClear}\n size=\"medium\"\n />\n </Box>\n )}\n </BaseBox>\n </BaseBox>\n <AnimatePresence>\n {showFilters && (\n <m.div\n initial={{ height: 0 }}\n animate={{ height: showFilters ? 'auto' : 0 }}\n transition={{\n duration: msToSeconds(theme.motion.duration.moderate),\n ease: cssBezierToArray(castWebType(theme.motion.easing.standard)),\n }}\n exit={{ height: 0 }}\n >\n <BaseBox\n display=\"flex\"\n backgroundColor={\n isMobile ? 'surface.background.white' : 'surface.background.gray.moderate'\n }\n borderTop={!isMobile ? '1ps solid' : undefined}\n borderTopColor={!isMobile ? 'surface.border.gray.muted' : undefined}\n >\n {children}\n </BaseBox>\n </m.div>\n )}\n </AnimatePresence>\n </BaseBox>\n </ListViewFiltersProvider>\n );\n};\n\nexport { ListViewFilters };\n"],"names":["gradientOverlyContainerWidth","gradientOverlyContainerHeight","StyledQuickFilterContainer","styled","BaseBox","withConfig","displayName","componentId","display","scrollbarWidth","msOverflowStyle","GradientOverlay","div","_ref","gradientColorRight","_ref2","gradientColorLeft","_ref3","dividerColor","ListViewFilters","_ref4","testID","children","quickFilters","onSearchChange","searchValue","searchValuePlaceholder","searchName","showQuickFilters","onShowQuickFiltersChange","onSearchClear","_ref4$selectedFilters","selectedFiltersCount","rest","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","shouldShowDecorationInQuickFilters","setShouldShowDecorationInQuickFilters","_useControllableState","useControllableState","defaultValue","value","onChange","_useControllableState2","showFilters","setShowFilters","_useState3","_useState4","listViewSelectedFilters","setListViewSelectedFilters","searchId","useId","searchNameValue","isMobile","useIsMobile","_useTheme","useTheme","theme","showSearchInput","_jsxs","ListViewFiltersProvider","_jsx","SearchInput","label","placeholder","name","_ref5","onClearButtonClick","_objectSpread","metaAttribute","MetaConstants","ListViewFilter","makeAnalyticsAttribute","justifyContent","Box","position","flexDirection","width","marginRight","overflow","ref","node","HTMLElement","scrollWidth","offsetWidth","paddingY","paddingLeft","right","top","height","colors","transparent","surface","background","gray","intense","border","normal","Divider","orientation","gap","alignItems","Button","variant","size","color","onClick","prev","icon","FilterIcon","transform","Counter","Object","keys","length","emphasis","_ref6","AnimatePresence","m","initial","animate","transition","duration","msToSeconds","motion","moderate","ease","cssBezierToArray","castWebType","easing","standard","exit","backgroundColor","borderTop","undefined","borderTopColor"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ListViewFilters.web.js","sources":["../../../../../../src/components/ListView/ListViewFilters.web.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { AnimatePresence, m } from 'framer-motion';\nimport styled from 'styled-components';\nimport type { ListViewFilterProps, ListViewSelectedFiltersType } from './types';\nimport { ListViewFiltersProvider } from './ListViewFiltersContext.web';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport BaseBox from '~components/Box/BaseBox';\nimport { MetaConstants, metaAttribute } from '~utils/metaAttribute';\nimport { FilterIcon } from '~components/Icons';\nimport { Button } from '~components/Button';\nimport { Counter } from '~components/Counter';\nimport { Box } from '~components/Box';\nimport { SearchInput } from '~components/Input/SearchInput';\nimport { useId } from '~utils/useId';\nimport { useControllableState } from '~utils/useControllable';\nimport { useIsMobile } from '~utils/useIsMobile';\nimport { msToSeconds } from '~utils/msToSeconds';\nimport { useTheme } from '~components/BladeProvider';\nimport { cssBezierToArray } from '~utils/cssBezierToArray';\nimport { castWebType } from '~utils';\nimport { Divider } from '~components/Divider';\n\nconst gradientOverlyContainerWidth = '21px'; // 20px + 1px divider width\nconst gradientOverlyContainerHeight = '38px';\n\nconst StyledQuickFilterContainer = styled(BaseBox)({\n /* For Webkit (Chrome, Safari) */\n '::-webkit-scrollbar': {\n display: 'none',\n },\n /* For Firefox */\n scrollbarWidth: 'none',\n /* For Edge */\n msOverflowStyle: 'none',\n});\n\nconst GradientOverlay = styled.div<{\n gradientColorLeft: string;\n dividerColor: string;\n gradientColorRight: string;\n}>`\n height: 100%;\n width: 20px;\n background: linear-gradient(\n 270deg,\n ${({ gradientColorRight }) => gradientColorRight} 0%,\n ${({ gradientColorLeft }) => gradientColorLeft} 100%\n );\n pointer-events: none;\n &::after {\n content: '';\n position: absolute;\n right: 0;\n top: 0;\n height: 100%;\n width: 1px;\n background-color: ${({ dividerColor }) => dividerColor};\n }\n`;\n\nconst ListViewFilters = ({\n testID,\n children,\n quickFilters,\n onSearchChange,\n searchValue,\n searchValuePlaceholder,\n searchName,\n showQuickFilters,\n onShowQuickFiltersChange,\n onSearchClear,\n selectedFiltersCount = 0,\n ...rest\n}: ListViewFilterProps): React.ReactElement => {\n const [shouldShowDecorationInQuickFilters, setShouldShowDecorationInQuickFilters] = useState(\n false,\n );\n const [showFilters, setShowFilters] = useControllableState({\n defaultValue: showQuickFilters,\n value: showQuickFilters,\n onChange: onShowQuickFiltersChange,\n });\n const [\n listViewSelectedFilters,\n setListViewSelectedFilters,\n ] = useState<ListViewSelectedFiltersType>({});\n const searchId = useId('search-input');\n const searchNameValue = searchName || searchId;\n const isMobile = useIsMobile();\n const { theme } = useTheme();\n const showSearchInput = onSearchChange || onSearchClear || searchValuePlaceholder || searchName;\n\n return (\n <ListViewFiltersProvider\n value={{\n listViewSelectedFilters,\n setListViewSelectedFilters,\n selectedFiltersCount,\n }}\n >\n {isMobile && showSearchInput && (\n <SearchInput\n label=\"\"\n value={searchValue}\n placeholder={searchValuePlaceholder}\n name={searchNameValue || searchId}\n onChange={({ name, value }) => onSearchChange?.({ name, value })}\n onClearButtonClick={onSearchClear}\n />\n )}\n <BaseBox>\n <BaseBox\n {...metaAttribute({ name: MetaConstants.ListViewFilter, testID })}\n {...makeAnalyticsAttribute(rest)}\n display=\"flex\"\n justifyContent=\"space-between\"\n >\n <Box\n position=\"relative\"\n display=\"flex\"\n flexDirection=\"column\"\n width={isMobile ? '88%' : 'auto'}\n marginRight={isMobile ? 'spacing.2' : 'spacing.0'}\n >\n <StyledQuickFilterContainer\n overflow={isMobile ? 'scroll' : 'visible'}\n width={isMobile ? '100%' : 'auto'}\n ref={(node) => {\n if (node instanceof HTMLElement && quickFilters) {\n setShouldShowDecorationInQuickFilters(node.scrollWidth > node.offsetWidth);\n }\n }}\n paddingY=\"spacing.4\"\n paddingLeft={isMobile ? 'spacing.2' : 'spacing.0'}\n >\n {quickFilters}\n </StyledQuickFilterContainer>\n {isMobile && shouldShowDecorationInQuickFilters ? (\n <Box\n position=\"absolute\"\n right=\"-1px\"\n top=\"spacing.4\"\n width={gradientOverlyContainerWidth}\n height={gradientOverlyContainerHeight}\n >\n <GradientOverlay\n gradientColorLeft={theme.colors.transparent}\n gradientColorRight={theme.colors.surface.background.gray.intense}\n dividerColor={theme.colors.surface.border.gray.normal}\n />\n <Divider orientation=\"vertical\" />\n </Box>\n ) : null}\n </Box>\n\n <BaseBox display=\"flex\" gap=\"spacing.4\" alignItems=\"center\">\n <Box position=\"relative\" display=\"inline-block\">\n <Button\n variant=\"tertiary\"\n size=\"medium\"\n color=\"primary\"\n onClick={() => {\n setShowFilters((prev) => !prev);\n }}\n icon={FilterIcon}\n accessibilityLabel=\"Show More Filters\"\n />\n <Box\n position=\"absolute\"\n right=\"spacing.0\"\n top=\"spacing.0\"\n transform=\"translate(50%, -50%)\"\n >\n <Counter\n value={selectedFiltersCount || Object.keys(listViewSelectedFilters).length}\n color=\"primary\"\n emphasis=\"intense\"\n size=\"small\"\n />\n </Box>\n </Box>\n {!isMobile && showSearchInput && (\n <Box width=\"256px\">\n <SearchInput\n label=\"\"\n value={searchValue}\n placeholder={searchValuePlaceholder}\n name={searchNameValue || searchId}\n onChange={({ name, value }) => onSearchChange?.({ name, value })}\n onClearButtonClick={onSearchClear}\n size=\"medium\"\n />\n </Box>\n )}\n </BaseBox>\n </BaseBox>\n <AnimatePresence>\n {showFilters && (\n <m.div\n initial={{ height: 0 }}\n animate={{ height: showFilters ? 'auto' : 0 }}\n transition={{\n duration: msToSeconds(theme.motion.duration.moderate),\n ease: cssBezierToArray(castWebType(theme.motion.easing.standard)),\n }}\n exit={{ height: 0 }}\n >\n <BaseBox\n display=\"flex\"\n backgroundColor={\n isMobile ? 'surface.background.white' : 'surface.background.gray.moderate'\n }\n borderTop={!isMobile ? '1ps solid' : undefined}\n borderTopColor={!isMobile ? 'surface.border.gray.muted' : undefined}\n >\n {children}\n </BaseBox>\n </m.div>\n )}\n </AnimatePresence>\n </BaseBox>\n </ListViewFiltersProvider>\n );\n};\n\nexport { ListViewFilters };\n"],"names":["gradientOverlyContainerWidth","gradientOverlyContainerHeight","StyledQuickFilterContainer","styled","BaseBox","withConfig","displayName","componentId","display","scrollbarWidth","msOverflowStyle","GradientOverlay","div","_ref","gradientColorRight","_ref2","gradientColorLeft","_ref3","dividerColor","ListViewFilters","_ref4","testID","children","quickFilters","onSearchChange","searchValue","searchValuePlaceholder","searchName","showQuickFilters","onShowQuickFiltersChange","onSearchClear","_ref4$selectedFilters","selectedFiltersCount","rest","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","shouldShowDecorationInQuickFilters","setShouldShowDecorationInQuickFilters","_useControllableState","useControllableState","defaultValue","value","onChange","_useControllableState2","showFilters","setShowFilters","_useState3","_useState4","listViewSelectedFilters","setListViewSelectedFilters","searchId","useId","searchNameValue","isMobile","useIsMobile","_useTheme","useTheme","theme","showSearchInput","_jsxs","ListViewFiltersProvider","_jsx","SearchInput","label","placeholder","name","_ref5","onClearButtonClick","_objectSpread","metaAttribute","MetaConstants","ListViewFilter","makeAnalyticsAttribute","justifyContent","Box","position","flexDirection","width","marginRight","overflow","ref","node","HTMLElement","scrollWidth","offsetWidth","paddingY","paddingLeft","right","top","height","colors","transparent","surface","background","gray","intense","border","normal","Divider","orientation","gap","alignItems","Button","variant","size","color","onClick","prev","icon","FilterIcon","accessibilityLabel","transform","Counter","Object","keys","length","emphasis","_ref6","AnimatePresence","m","initial","animate","transition","duration","msToSeconds","motion","moderate","ease","cssBezierToArray","castWebType","easing","standard","exit","backgroundColor","borderTop","undefined","borderTopColor"],"mappings":"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"}
|
|
@@ -31,7 +31,7 @@ import { makeAnalyticsAttribute } from '../../utils/makeAnalyticsAttribute/makeA
|
|
|
31
31
|
import { makeAccessible } from '../../utils/makeAccessible/makeAccessible.web.js';
|
|
32
32
|
import { assignWithoutSideEffects } from '../../utils/assignWithoutSideEffects/assignWithoutSideEffects.js';
|
|
33
33
|
|
|
34
|
-
var _excluded = ["isOpen", "onDismiss", "zIndex", "children", "accessibilityLabel", "showOverlay", "initialFocusRef", "isLazy", "testID"];
|
|
34
|
+
var _excluded = ["isOpen", "onDismiss", "onUnmount", "zIndex", "children", "accessibilityLabel", "showOverlay", "initialFocusRef", "isLazy", "testID"];
|
|
35
35
|
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; }
|
|
36
36
|
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; }
|
|
37
37
|
var SHOW_DRAWER = 'show-drawer';
|
|
@@ -79,6 +79,7 @@ var DrawerOverlay = /*#__PURE__*/styled(FloatingOverlay).withConfig({
|
|
|
79
79
|
var _Drawer = function _Drawer(_ref5, ref) {
|
|
80
80
|
var isOpen = _ref5.isOpen,
|
|
81
81
|
onDismiss = _ref5.onDismiss,
|
|
82
|
+
onUnmount = _ref5.onUnmount,
|
|
82
83
|
_ref5$zIndex = _ref5.zIndex,
|
|
83
84
|
zIndex = _ref5$zIndex === void 0 ? componentZIndices.drawer : _ref5$zIndex,
|
|
84
85
|
children = _ref5.children,
|
|
@@ -126,7 +127,12 @@ var _Drawer = function _Drawer(_ref5, ref) {
|
|
|
126
127
|
stackingLevel = _React$useMemo.stackingLevel,
|
|
127
128
|
isFirstDrawerInStack = _React$useMemo.isFirstDrawerInStack;
|
|
128
129
|
var _useFloating = useFloating({
|
|
129
|
-
open: isMounted
|
|
130
|
+
open: isMounted,
|
|
131
|
+
onOpenChange: function onOpenChange(open) {
|
|
132
|
+
if (!open) {
|
|
133
|
+
onUnmount === null || onUnmount === void 0 ? void 0 : onUnmount();
|
|
134
|
+
}
|
|
135
|
+
}
|
|
130
136
|
}),
|
|
131
137
|
refs = _useFloating.refs,
|
|
132
138
|
context = _useFloating.context;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Drawer.web.js","sources":["../../../../../../src/components/Drawer/Drawer.web.tsx"],"sourcesContent":["import {\n FloatingFocusManager,\n FloatingOverlay,\n FloatingPortal,\n useFloating,\n} from '@floating-ui/react';\nimport type { CSSProperties } from 'react';\nimport React from 'react';\nimport styled from 'styled-components';\nimport usePresence from 'use-presence';\nimport { drawerComponentIds } from './drawerComponentIds';\nimport { DrawerContext } from './DrawerContext';\nimport type { DrawerProps } from './types';\nimport BaseBox from '~components/Box/BaseBox';\nimport { castWebType, getMediaQuery, makeMotionTime, useTheme } from '~utils';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { componentZIndices } from '~utils/componentZIndices';\nimport { useDrawerStack } from '~components/Drawer/StackProvider';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { useId } from '~utils/useId';\nimport { useVerifyAllowedChildren } from '~utils/useVerifyAllowedChildren';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport type { BladeElementRef } from '~utils/types';\nimport { mergeRefs } from '~utils/useMergeRefs';\n\nconst SHOW_DRAWER = 'show-drawer';\n\nconst AnimatedDrawerContainer = styled(BaseBox)<{\n isFirstDrawerInStack: boolean;\n isVisible: boolean;\n}>(({ theme, isFirstDrawerInStack, isVisible }) => {\n const entranceTransition: CSSProperties['transition'] = `all ${castWebType(\n castWebType(makeMotionTime(theme.motion.duration.xmoderate)),\n )} ${castWebType(theme.motion.easing.entrance)}`;\n\n const exitTransition: CSSProperties['transition'] = `all\n ${castWebType(makeMotionTime(theme.motion.duration.moderate))}\n ${castWebType(theme.motion.easing.exit)}`;\n\n return {\n opacity: isVisible ? 1 : 0,\n transform: isVisible\n ? isFirstDrawerInStack\n ? 'translateX(calc(-100% - 16px))'\n : `translateX(-100%)`\n : 'translateX(0%)',\n transition: isVisible ? entranceTransition : exitTransition,\n animationFillMode: 'initial',\n position: 'fixed',\n top: '0px',\n bottom: '0px',\n left: '100%',\n height: 'auto',\n [`@media ${getMediaQuery({ min: theme.breakpoints.m })}`]: {\n top: isFirstDrawerInStack ? '24px' : '8px',\n bottom: isFirstDrawerInStack ? '24px' : '8px',\n transform: isVisible\n ? isFirstDrawerInStack\n ? 'translateX(calc(-100% - 24px))'\n : `translateX(calc(-100% - ${theme.spacing[3]}px))`\n : 'translateX(0%)',\n },\n };\n});\n\nconst DrawerOverlay = styled(FloatingOverlay)(({ theme }) => {\n return {\n opacity: 0,\n transition: `opacity\n ${makeMotionTime(theme.motion.duration.xmoderate)}\n ${castWebType(theme.motion.easing.exit)}`,\n backgroundColor: theme.colors.overlay.background.subtle,\n\n [`&.${SHOW_DRAWER}`]: {\n opacity: 1,\n transition: `opacity ${makeMotionTime(theme.motion.duration.gentle)} ${castWebType(\n theme.motion.easing.entrance,\n )}`,\n },\n };\n});\n\nconst _Drawer: React.ForwardRefRenderFunction<BladeElementRef, DrawerProps> = (\n {\n isOpen,\n onDismiss,\n zIndex = componentZIndices.drawer,\n children,\n accessibilityLabel,\n showOverlay = true,\n initialFocusRef,\n isLazy = true,\n testID,\n ...rest\n },\n ref,\n) => {\n const closeButtonRef = React.useRef<HTMLDivElement>(null);\n const [zIndexState, setZIndexState] = React.useState<number>(zIndex);\n\n useVerifyAllowedChildren({\n children,\n componentName: 'Drawer',\n allowedComponents: [drawerComponentIds.DrawerHeader, drawerComponentIds.DrawerBody],\n });\n\n const { theme } = useTheme();\n const drawerId = useId('drawer');\n const { drawerStack, addToDrawerStack, removeFromDrawerStack } = useDrawerStack();\n\n const { isMounted, isVisible, isExiting } = usePresence(isOpen, {\n enterTransitionDuration: theme.motion.duration.gentle,\n exitTransitionDuration: theme.motion.duration.xmoderate,\n initialEnter: true,\n });\n\n const { stackingLevel, isFirstDrawerInStack } = React.useMemo(() => {\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n const level = Object.keys(drawerStack).indexOf(drawerId) + 1;\n return {\n stackingLevel: level,\n isFirstDrawerInStack: level === 1 && Object.keys(drawerStack).length > 1,\n };\n }, [drawerId, drawerStack]);\n\n const { refs, context } = useFloating({\n open: isMounted,\n });\n\n React.useEffect(() => {\n if (isOpen) {\n addToDrawerStack({ elementId: drawerId, onDismiss });\n } else {\n removeFromDrawerStack({ elementId: drawerId });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen]);\n\n // When z-index is not defined by user, we use default drawer z index and add stackingLevel to ensure\n // new drawer that opens, always opens on top of previous one.\n React.useEffect(() => {\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n setZIndexState(zIndex + stackingLevel);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isMounted]);\n\n const contextValue = React.useMemo(\n () => ({\n close: onDismiss,\n closeButtonRef,\n stackingLevel,\n isExiting,\n }),\n [isExiting, onDismiss, stackingLevel],\n );\n\n return (\n <DrawerContext.Provider value={contextValue}>\n <FloatingPortal>\n {isMounted || !isLazy ? (\n <FloatingFocusManager\n context={context}\n initialFocus={initialFocusRef ?? closeButtonRef}\n returnFocus={true}\n >\n <BaseBox\n display={isLazy ? undefined : isMounted ? 'block' : 'none'}\n position=\"fixed\"\n {...metaAttribute({\n name: MetaConstants.Drawer,\n testID,\n })}\n {...makeAnalyticsAttribute(rest)}\n zIndex={zIndexState}\n >\n {showOverlay ? (\n <DrawerOverlay\n onClick={() => {\n onDismiss();\n }}\n className={isVisible ? SHOW_DRAWER : ''}\n lockScroll={true}\n {...metaAttribute({\n testID: 'drawer-overlay',\n })}\n />\n ) : null}\n <AnimatedDrawerContainer\n isVisible={isVisible}\n isFirstDrawerInStack={isFirstDrawerInStack}\n width={{ base: '90%', s: '375px', m: '420px' }}\n {...makeAccessible({\n role: 'dialog',\n modal: true,\n label: accessibilityLabel,\n })}\n position=\"fixed\"\n backgroundColor=\"popup.background.subtle\"\n borderRadius={{ base: 'none', m: 'large' }}\n overflow=\"hidden\"\n elevation=\"highRaised\"\n display=\"flex\"\n flexDirection=\"column\"\n ref={mergeRefs(ref, refs.setFloating)}\n onKeyDown={(event) => {\n if (event?.key === 'Escape' || event?.code === 'Escape') {\n onDismiss();\n }\n }}\n >\n {children}\n </AnimatedDrawerContainer>\n </BaseBox>\n </FloatingFocusManager>\n ) : null}\n </FloatingPortal>\n </DrawerContext.Provider>\n );\n};\n\n/**\n * ### Drawer Component\n * \n * A drawer is a panel that slides in mostly from right side of the screen over the existing content in the viewport. \n * It helps in providing additional details or context and can also be used to promote product features or new products.\n * \n * ---\n * \n * #### Usage\n * \n * ```jsx\n const MyDrawer = () => {\n const [showDrawer, setShowDrawer] = React.useState(false);\n return (\n <Box>\n <Button onClick={() => setShowDrawer(true)}>Open Drawer</Button>\n <Drawer\n isOpen={showDrawer}\n onDismiss={() => setShowDrawer(false)}\n >\n <DrawerHeader title=\"Announcements\" />\n <DrawerBody>\n <FTXAnnouncement />\n <CatPictures />\n </DrawerBody>\n <Drawer>\n </Box>\n )\n }\n * ```\n *\n * ---\n *\n * Checkout {@link https://blade.razorpay.com/?path=/docs/components-drawer Drawer Documentation}\n * \n * \n */\nconst Drawer = assignWithoutSideEffects(React.forwardRef(_Drawer), {\n displayName: 'Drawer',\n componentId: drawerComponentIds.Drawer,\n});\n\nexport { Drawer };\n"],"names":["SHOW_DRAWER","AnimatedDrawerContainer","styled","BaseBox","withConfig","displayName","componentId","_ref","theme","isFirstDrawerInStack","isVisible","entranceTransition","concat","castWebType","makeMotionTime","motion","duration","xmoderate","easing","entrance","exitTransition","moderate","exit","_defineProperty","opacity","transform","transition","animationFillMode","position","top","bottom","left","height","getMediaQuery","min","breakpoints","m","spacing","DrawerOverlay","FloatingOverlay","_ref3","backgroundColor","colors","overlay","background","subtle","gentle","_Drawer","_ref5","ref","isOpen","onDismiss","_ref5$zIndex","zIndex","componentZIndices","drawer","children","accessibilityLabel","_ref5$showOverlay","showOverlay","initialFocusRef","_ref5$isLazy","isLazy","testID","rest","_objectWithoutProperties","_excluded","closeButtonRef","React","useRef","_React$useState","useState","_React$useState2","_slicedToArray","zIndexState","setZIndexState","useVerifyAllowedChildren","componentName","allowedComponents","drawerComponentIds","DrawerHeader","DrawerBody","_useTheme","useTheme","drawerId","useId","_useDrawerStack","useDrawerStack","drawerStack","addToDrawerStack","removeFromDrawerStack","_usePresence","usePresence","enterTransitionDuration","exitTransitionDuration","initialEnter","isMounted","isExiting","_React$useMemo","useMemo","level","Object","keys","indexOf","stackingLevel","length","_useFloating","useFloating","open","refs","context","useEffect","elementId","contextValue","close","_jsx","DrawerContext","Provider","value","FloatingPortal","FloatingFocusManager","initialFocus","returnFocus","_jsxs","_objectSpread","display","undefined","metaAttribute","name","MetaConstants","Drawer","makeAnalyticsAttribute","onClick","className","lockScroll","width","base","s","makeAccessible","role","modal","label","borderRadius","overflow","elevation","flexDirection","mergeRefs","setFloating","onKeyDown","event","key","code","assignWithoutSideEffects","forwardRef"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Drawer.web.js","sources":["../../../../../../src/components/Drawer/Drawer.web.tsx"],"sourcesContent":["import {\n FloatingFocusManager,\n FloatingOverlay,\n FloatingPortal,\n useFloating,\n} from '@floating-ui/react';\nimport type { CSSProperties } from 'react';\nimport React from 'react';\nimport styled from 'styled-components';\nimport usePresence from 'use-presence';\nimport { drawerComponentIds } from './drawerComponentIds';\nimport { DrawerContext } from './DrawerContext';\nimport type { DrawerProps } from './types';\nimport BaseBox from '~components/Box/BaseBox';\nimport { castWebType, getMediaQuery, makeMotionTime, useTheme } from '~utils';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { componentZIndices } from '~utils/componentZIndices';\nimport { useDrawerStack } from '~components/Drawer/StackProvider';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { useId } from '~utils/useId';\nimport { useVerifyAllowedChildren } from '~utils/useVerifyAllowedChildren';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport type { BladeElementRef } from '~utils/types';\nimport { mergeRefs } from '~utils/useMergeRefs';\n\nconst SHOW_DRAWER = 'show-drawer';\n\nconst AnimatedDrawerContainer = styled(BaseBox)<{\n isFirstDrawerInStack: boolean;\n isVisible: boolean;\n}>(({ theme, isFirstDrawerInStack, isVisible }) => {\n const entranceTransition: CSSProperties['transition'] = `all ${castWebType(\n castWebType(makeMotionTime(theme.motion.duration.xmoderate)),\n )} ${castWebType(theme.motion.easing.entrance)}`;\n\n const exitTransition: CSSProperties['transition'] = `all\n ${castWebType(makeMotionTime(theme.motion.duration.moderate))}\n ${castWebType(theme.motion.easing.exit)}`;\n\n return {\n opacity: isVisible ? 1 : 0,\n transform: isVisible\n ? isFirstDrawerInStack\n ? 'translateX(calc(-100% - 16px))'\n : `translateX(-100%)`\n : 'translateX(0%)',\n transition: isVisible ? entranceTransition : exitTransition,\n animationFillMode: 'initial',\n position: 'fixed',\n top: '0px',\n bottom: '0px',\n left: '100%',\n height: 'auto',\n [`@media ${getMediaQuery({ min: theme.breakpoints.m })}`]: {\n top: isFirstDrawerInStack ? '24px' : '8px',\n bottom: isFirstDrawerInStack ? '24px' : '8px',\n transform: isVisible\n ? isFirstDrawerInStack\n ? 'translateX(calc(-100% - 24px))'\n : `translateX(calc(-100% - ${theme.spacing[3]}px))`\n : 'translateX(0%)',\n },\n };\n});\n\nconst DrawerOverlay = styled(FloatingOverlay)(({ theme }) => {\n return {\n opacity: 0,\n transition: `opacity\n ${makeMotionTime(theme.motion.duration.xmoderate)}\n ${castWebType(theme.motion.easing.exit)}`,\n backgroundColor: theme.colors.overlay.background.subtle,\n\n [`&.${SHOW_DRAWER}`]: {\n opacity: 1,\n transition: `opacity ${makeMotionTime(theme.motion.duration.gentle)} ${castWebType(\n theme.motion.easing.entrance,\n )}`,\n },\n };\n});\n\nconst _Drawer: React.ForwardRefRenderFunction<BladeElementRef, DrawerProps> = (\n {\n isOpen,\n onDismiss,\n onUnmount,\n zIndex = componentZIndices.drawer,\n children,\n accessibilityLabel,\n showOverlay = true,\n initialFocusRef,\n isLazy = true,\n testID,\n ...rest\n },\n ref,\n) => {\n const closeButtonRef = React.useRef<HTMLDivElement>(null);\n const [zIndexState, setZIndexState] = React.useState<number>(zIndex);\n\n useVerifyAllowedChildren({\n children,\n componentName: 'Drawer',\n allowedComponents: [drawerComponentIds.DrawerHeader, drawerComponentIds.DrawerBody],\n });\n\n const { theme } = useTheme();\n const drawerId = useId('drawer');\n const { drawerStack, addToDrawerStack, removeFromDrawerStack } = useDrawerStack();\n\n const { isMounted, isVisible, isExiting } = usePresence(isOpen, {\n enterTransitionDuration: theme.motion.duration.gentle,\n exitTransitionDuration: theme.motion.duration.xmoderate,\n initialEnter: true,\n });\n\n const { stackingLevel, isFirstDrawerInStack } = React.useMemo(() => {\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n const level = Object.keys(drawerStack).indexOf(drawerId) + 1;\n return {\n stackingLevel: level,\n isFirstDrawerInStack: level === 1 && Object.keys(drawerStack).length > 1,\n };\n }, [drawerId, drawerStack]);\n\n const { refs, context } = useFloating({\n open: isMounted,\n onOpenChange: (open) => {\n if (!open) {\n onUnmount?.();\n }\n },\n });\n\n React.useEffect(() => {\n if (isOpen) {\n addToDrawerStack({ elementId: drawerId, onDismiss });\n } else {\n removeFromDrawerStack({ elementId: drawerId });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen]);\n\n // When z-index is not defined by user, we use default drawer z index and add stackingLevel to ensure\n // new drawer that opens, always opens on top of previous one.\n React.useEffect(() => {\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n setZIndexState(zIndex + stackingLevel);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isMounted]);\n\n const contextValue = React.useMemo(\n () => ({\n close: onDismiss,\n closeButtonRef,\n stackingLevel,\n isExiting,\n }),\n [isExiting, onDismiss, stackingLevel],\n );\n\n return (\n <DrawerContext.Provider value={contextValue}>\n <FloatingPortal>\n {isMounted || !isLazy ? (\n <FloatingFocusManager\n context={context}\n initialFocus={initialFocusRef ?? closeButtonRef}\n returnFocus={true}\n >\n <BaseBox\n display={isLazy ? undefined : isMounted ? 'block' : 'none'}\n position=\"fixed\"\n {...metaAttribute({\n name: MetaConstants.Drawer,\n testID,\n })}\n {...makeAnalyticsAttribute(rest)}\n zIndex={zIndexState}\n >\n {showOverlay ? (\n <DrawerOverlay\n onClick={() => {\n onDismiss();\n }}\n className={isVisible ? SHOW_DRAWER : ''}\n lockScroll={true}\n {...metaAttribute({\n testID: 'drawer-overlay',\n })}\n />\n ) : null}\n <AnimatedDrawerContainer\n isVisible={isVisible}\n isFirstDrawerInStack={isFirstDrawerInStack}\n width={{ base: '90%', s: '375px', m: '420px' }}\n {...makeAccessible({\n role: 'dialog',\n modal: true,\n label: accessibilityLabel,\n })}\n position=\"fixed\"\n backgroundColor=\"popup.background.subtle\"\n borderRadius={{ base: 'none', m: 'large' }}\n overflow=\"hidden\"\n elevation=\"highRaised\"\n display=\"flex\"\n flexDirection=\"column\"\n ref={mergeRefs(ref, refs.setFloating)}\n onKeyDown={(event) => {\n if (event?.key === 'Escape' || event?.code === 'Escape') {\n onDismiss();\n }\n }}\n >\n {children}\n </AnimatedDrawerContainer>\n </BaseBox>\n </FloatingFocusManager>\n ) : null}\n </FloatingPortal>\n </DrawerContext.Provider>\n );\n};\n\n/**\n * ### Drawer Component\n * \n * A drawer is a panel that slides in mostly from right side of the screen over the existing content in the viewport. \n * It helps in providing additional details or context and can also be used to promote product features or new products.\n * \n * ---\n * \n * #### Usage\n * \n * ```jsx\n const MyDrawer = () => {\n const [showDrawer, setShowDrawer] = React.useState(false);\n return (\n <Box>\n <Button onClick={() => setShowDrawer(true)}>Open Drawer</Button>\n <Drawer\n isOpen={showDrawer}\n onDismiss={() => setShowDrawer(false)}\n >\n <DrawerHeader title=\"Announcements\" />\n <DrawerBody>\n <FTXAnnouncement />\n <CatPictures />\n </DrawerBody>\n <Drawer>\n </Box>\n )\n }\n * ```\n *\n * ---\n *\n * Checkout {@link https://blade.razorpay.com/?path=/docs/components-drawer Drawer Documentation}\n * \n * \n */\nconst Drawer = assignWithoutSideEffects(React.forwardRef(_Drawer), {\n displayName: 'Drawer',\n componentId: drawerComponentIds.Drawer,\n});\n\nexport { Drawer };\n"],"names":["SHOW_DRAWER","AnimatedDrawerContainer","styled","BaseBox","withConfig","displayName","componentId","_ref","theme","isFirstDrawerInStack","isVisible","entranceTransition","concat","castWebType","makeMotionTime","motion","duration","xmoderate","easing","entrance","exitTransition","moderate","exit","_defineProperty","opacity","transform","transition","animationFillMode","position","top","bottom","left","height","getMediaQuery","min","breakpoints","m","spacing","DrawerOverlay","FloatingOverlay","_ref3","backgroundColor","colors","overlay","background","subtle","gentle","_Drawer","_ref5","ref","isOpen","onDismiss","onUnmount","_ref5$zIndex","zIndex","componentZIndices","drawer","children","accessibilityLabel","_ref5$showOverlay","showOverlay","initialFocusRef","_ref5$isLazy","isLazy","testID","rest","_objectWithoutProperties","_excluded","closeButtonRef","React","useRef","_React$useState","useState","_React$useState2","_slicedToArray","zIndexState","setZIndexState","useVerifyAllowedChildren","componentName","allowedComponents","drawerComponentIds","DrawerHeader","DrawerBody","_useTheme","useTheme","drawerId","useId","_useDrawerStack","useDrawerStack","drawerStack","addToDrawerStack","removeFromDrawerStack","_usePresence","usePresence","enterTransitionDuration","exitTransitionDuration","initialEnter","isMounted","isExiting","_React$useMemo","useMemo","level","Object","keys","indexOf","stackingLevel","length","_useFloating","useFloating","open","onOpenChange","refs","context","useEffect","elementId","contextValue","close","_jsx","DrawerContext","Provider","value","FloatingPortal","FloatingFocusManager","initialFocus","returnFocus","_jsxs","_objectSpread","display","undefined","metaAttribute","name","MetaConstants","Drawer","makeAnalyticsAttribute","onClick","className","lockScroll","width","base","s","makeAccessible","role","modal","label","borderRadius","overflow","elevation","flexDirection","mergeRefs","setFloating","onKeyDown","event","key","code","assignWithoutSideEffects","forwardRef"],"mappings":"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"}
|
|
@@ -176,7 +176,8 @@ var ListViewFilters = function ListViewFilters(_ref4) {
|
|
|
176
176
|
return !prev;
|
|
177
177
|
});
|
|
178
178
|
},
|
|
179
|
-
icon: FilterIcon
|
|
179
|
+
icon: FilterIcon,
|
|
180
|
+
accessibilityLabel: "Show More Filters"
|
|
180
181
|
}), /*#__PURE__*/jsx(Box, {
|
|
181
182
|
position: "absolute",
|
|
182
183
|
right: "spacing.0",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListViewFilters.web.js","sources":["../../../../../../src/components/ListView/ListViewFilters.web.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { AnimatePresence, m } from 'framer-motion';\nimport styled from 'styled-components';\nimport type { ListViewFilterProps, ListViewSelectedFiltersType } from './types';\nimport { ListViewFiltersProvider } from './ListViewFiltersContext.web';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport BaseBox from '~components/Box/BaseBox';\nimport { MetaConstants, metaAttribute } from '~utils/metaAttribute';\nimport { FilterIcon } from '~components/Icons';\nimport { Button } from '~components/Button';\nimport { Counter } from '~components/Counter';\nimport { Box } from '~components/Box';\nimport { SearchInput } from '~components/Input/SearchInput';\nimport { useId } from '~utils/useId';\nimport { useControllableState } from '~utils/useControllable';\nimport { useIsMobile } from '~utils/useIsMobile';\nimport { msToSeconds } from '~utils/msToSeconds';\nimport { useTheme } from '~components/BladeProvider';\nimport { cssBezierToArray } from '~utils/cssBezierToArray';\nimport { castWebType } from '~utils';\nimport { Divider } from '~components/Divider';\n\nconst gradientOverlyContainerWidth = '21px'; // 20px + 1px divider width\nconst gradientOverlyContainerHeight = '38px';\n\nconst StyledQuickFilterContainer = styled(BaseBox)({\n /* For Webkit (Chrome, Safari) */\n '::-webkit-scrollbar': {\n display: 'none',\n },\n /* For Firefox */\n scrollbarWidth: 'none',\n /* For Edge */\n msOverflowStyle: 'none',\n});\n\nconst GradientOverlay = styled.div<{\n gradientColorLeft: string;\n dividerColor: string;\n gradientColorRight: string;\n}>`\n height: 100%;\n width: 20px;\n background: linear-gradient(\n 270deg,\n ${({ gradientColorRight }) => gradientColorRight} 0%,\n ${({ gradientColorLeft }) => gradientColorLeft} 100%\n );\n pointer-events: none;\n &::after {\n content: '';\n position: absolute;\n right: 0;\n top: 0;\n height: 100%;\n width: 1px;\n background-color: ${({ dividerColor }) => dividerColor};\n }\n`;\n\nconst ListViewFilters = ({\n testID,\n children,\n quickFilters,\n onSearchChange,\n searchValue,\n searchValuePlaceholder,\n searchName,\n showQuickFilters,\n onShowQuickFiltersChange,\n onSearchClear,\n selectedFiltersCount = 0,\n ...rest\n}: ListViewFilterProps): React.ReactElement => {\n const [shouldShowDecorationInQuickFilters, setShouldShowDecorationInQuickFilters] = useState(\n false,\n );\n const [showFilters, setShowFilters] = useControllableState({\n defaultValue: showQuickFilters,\n value: showQuickFilters,\n onChange: onShowQuickFiltersChange,\n });\n const [\n listViewSelectedFilters,\n setListViewSelectedFilters,\n ] = useState<ListViewSelectedFiltersType>({});\n const searchId = useId('search-input');\n const searchNameValue = searchName || searchId;\n const isMobile = useIsMobile();\n const { theme } = useTheme();\n const showSearchInput = onSearchChange || onSearchClear || searchValuePlaceholder || searchName;\n\n return (\n <ListViewFiltersProvider\n value={{\n listViewSelectedFilters,\n setListViewSelectedFilters,\n selectedFiltersCount,\n }}\n >\n {isMobile && showSearchInput && (\n <SearchInput\n label=\"\"\n value={searchValue}\n placeholder={searchValuePlaceholder}\n name={searchNameValue || searchId}\n onChange={({ name, value }) => onSearchChange?.({ name, value })}\n onClearButtonClick={onSearchClear}\n />\n )}\n <BaseBox>\n <BaseBox\n {...metaAttribute({ name: MetaConstants.ListViewFilter, testID })}\n {...makeAnalyticsAttribute(rest)}\n display=\"flex\"\n justifyContent=\"space-between\"\n >\n <Box\n position=\"relative\"\n display=\"flex\"\n flexDirection=\"column\"\n width={isMobile ? '88%' : 'auto'}\n marginRight={isMobile ? 'spacing.2' : 'spacing.0'}\n >\n <StyledQuickFilterContainer\n overflow={isMobile ? 'scroll' : 'visible'}\n width={isMobile ? '100%' : 'auto'}\n ref={(node) => {\n if (node instanceof HTMLElement && quickFilters) {\n setShouldShowDecorationInQuickFilters(node.scrollWidth > node.offsetWidth);\n }\n }}\n paddingY=\"spacing.4\"\n paddingLeft={isMobile ? 'spacing.2' : 'spacing.0'}\n >\n {quickFilters}\n </StyledQuickFilterContainer>\n {isMobile && shouldShowDecorationInQuickFilters ? (\n <Box\n position=\"absolute\"\n right=\"-1px\"\n top=\"spacing.4\"\n width={gradientOverlyContainerWidth}\n height={gradientOverlyContainerHeight}\n >\n <GradientOverlay\n gradientColorLeft={theme.colors.transparent}\n gradientColorRight={theme.colors.surface.background.gray.intense}\n dividerColor={theme.colors.surface.border.gray.normal}\n />\n <Divider orientation=\"vertical\" />\n </Box>\n ) : null}\n </Box>\n\n <BaseBox display=\"flex\" gap=\"spacing.4\" alignItems=\"center\">\n <Box position=\"relative\" display=\"inline-block\">\n <Button\n variant=\"tertiary\"\n size=\"medium\"\n color=\"primary\"\n onClick={() => {\n setShowFilters((prev) => !prev);\n }}\n icon={FilterIcon}\n />\n <Box\n position=\"absolute\"\n right=\"spacing.0\"\n top=\"spacing.0\"\n transform=\"translate(50%, -50%)\"\n >\n <Counter\n value={selectedFiltersCount || Object.keys(listViewSelectedFilters).length}\n color=\"primary\"\n emphasis=\"intense\"\n size=\"small\"\n />\n </Box>\n </Box>\n {!isMobile && showSearchInput && (\n <Box width=\"256px\">\n <SearchInput\n label=\"\"\n value={searchValue}\n placeholder={searchValuePlaceholder}\n name={searchNameValue || searchId}\n onChange={({ name, value }) => onSearchChange?.({ name, value })}\n onClearButtonClick={onSearchClear}\n size=\"medium\"\n />\n </Box>\n )}\n </BaseBox>\n </BaseBox>\n <AnimatePresence>\n {showFilters && (\n <m.div\n initial={{ height: 0 }}\n animate={{ height: showFilters ? 'auto' : 0 }}\n transition={{\n duration: msToSeconds(theme.motion.duration.moderate),\n ease: cssBezierToArray(castWebType(theme.motion.easing.standard)),\n }}\n exit={{ height: 0 }}\n >\n <BaseBox\n display=\"flex\"\n backgroundColor={\n isMobile ? 'surface.background.white' : 'surface.background.gray.moderate'\n }\n borderTop={!isMobile ? '1ps solid' : undefined}\n borderTopColor={!isMobile ? 'surface.border.gray.muted' : undefined}\n >\n {children}\n </BaseBox>\n </m.div>\n )}\n </AnimatePresence>\n </BaseBox>\n </ListViewFiltersProvider>\n );\n};\n\nexport { ListViewFilters };\n"],"names":["gradientOverlyContainerWidth","gradientOverlyContainerHeight","StyledQuickFilterContainer","styled","BaseBox","withConfig","displayName","componentId","display","scrollbarWidth","msOverflowStyle","GradientOverlay","div","_ref","gradientColorRight","_ref2","gradientColorLeft","_ref3","dividerColor","ListViewFilters","_ref4","testID","children","quickFilters","onSearchChange","searchValue","searchValuePlaceholder","searchName","showQuickFilters","onShowQuickFiltersChange","onSearchClear","_ref4$selectedFilters","selectedFiltersCount","rest","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","shouldShowDecorationInQuickFilters","setShouldShowDecorationInQuickFilters","_useControllableState","useControllableState","defaultValue","value","onChange","_useControllableState2","showFilters","setShowFilters","_useState3","_useState4","listViewSelectedFilters","setListViewSelectedFilters","searchId","useId","searchNameValue","isMobile","useIsMobile","_useTheme","useTheme","theme","showSearchInput","_jsxs","ListViewFiltersProvider","_jsx","SearchInput","label","placeholder","name","_ref5","onClearButtonClick","_objectSpread","metaAttribute","MetaConstants","ListViewFilter","makeAnalyticsAttribute","justifyContent","Box","position","flexDirection","width","marginRight","overflow","ref","node","HTMLElement","scrollWidth","offsetWidth","paddingY","paddingLeft","right","top","height","colors","transparent","surface","background","gray","intense","border","normal","Divider","orientation","gap","alignItems","Button","variant","size","color","onClick","prev","icon","FilterIcon","transform","Counter","Object","keys","length","emphasis","_ref6","AnimatePresence","m","initial","animate","transition","duration","msToSeconds","motion","moderate","ease","cssBezierToArray","castWebType","easing","standard","exit","backgroundColor","borderTop","undefined","borderTopColor"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ListViewFilters.web.js","sources":["../../../../../../src/components/ListView/ListViewFilters.web.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { AnimatePresence, m } from 'framer-motion';\nimport styled from 'styled-components';\nimport type { ListViewFilterProps, ListViewSelectedFiltersType } from './types';\nimport { ListViewFiltersProvider } from './ListViewFiltersContext.web';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport BaseBox from '~components/Box/BaseBox';\nimport { MetaConstants, metaAttribute } from '~utils/metaAttribute';\nimport { FilterIcon } from '~components/Icons';\nimport { Button } from '~components/Button';\nimport { Counter } from '~components/Counter';\nimport { Box } from '~components/Box';\nimport { SearchInput } from '~components/Input/SearchInput';\nimport { useId } from '~utils/useId';\nimport { useControllableState } from '~utils/useControllable';\nimport { useIsMobile } from '~utils/useIsMobile';\nimport { msToSeconds } from '~utils/msToSeconds';\nimport { useTheme } from '~components/BladeProvider';\nimport { cssBezierToArray } from '~utils/cssBezierToArray';\nimport { castWebType } from '~utils';\nimport { Divider } from '~components/Divider';\n\nconst gradientOverlyContainerWidth = '21px'; // 20px + 1px divider width\nconst gradientOverlyContainerHeight = '38px';\n\nconst StyledQuickFilterContainer = styled(BaseBox)({\n /* For Webkit (Chrome, Safari) */\n '::-webkit-scrollbar': {\n display: 'none',\n },\n /* For Firefox */\n scrollbarWidth: 'none',\n /* For Edge */\n msOverflowStyle: 'none',\n});\n\nconst GradientOverlay = styled.div<{\n gradientColorLeft: string;\n dividerColor: string;\n gradientColorRight: string;\n}>`\n height: 100%;\n width: 20px;\n background: linear-gradient(\n 270deg,\n ${({ gradientColorRight }) => gradientColorRight} 0%,\n ${({ gradientColorLeft }) => gradientColorLeft} 100%\n );\n pointer-events: none;\n &::after {\n content: '';\n position: absolute;\n right: 0;\n top: 0;\n height: 100%;\n width: 1px;\n background-color: ${({ dividerColor }) => dividerColor};\n }\n`;\n\nconst ListViewFilters = ({\n testID,\n children,\n quickFilters,\n onSearchChange,\n searchValue,\n searchValuePlaceholder,\n searchName,\n showQuickFilters,\n onShowQuickFiltersChange,\n onSearchClear,\n selectedFiltersCount = 0,\n ...rest\n}: ListViewFilterProps): React.ReactElement => {\n const [shouldShowDecorationInQuickFilters, setShouldShowDecorationInQuickFilters] = useState(\n false,\n );\n const [showFilters, setShowFilters] = useControllableState({\n defaultValue: showQuickFilters,\n value: showQuickFilters,\n onChange: onShowQuickFiltersChange,\n });\n const [\n listViewSelectedFilters,\n setListViewSelectedFilters,\n ] = useState<ListViewSelectedFiltersType>({});\n const searchId = useId('search-input');\n const searchNameValue = searchName || searchId;\n const isMobile = useIsMobile();\n const { theme } = useTheme();\n const showSearchInput = onSearchChange || onSearchClear || searchValuePlaceholder || searchName;\n\n return (\n <ListViewFiltersProvider\n value={{\n listViewSelectedFilters,\n setListViewSelectedFilters,\n selectedFiltersCount,\n }}\n >\n {isMobile && showSearchInput && (\n <SearchInput\n label=\"\"\n value={searchValue}\n placeholder={searchValuePlaceholder}\n name={searchNameValue || searchId}\n onChange={({ name, value }) => onSearchChange?.({ name, value })}\n onClearButtonClick={onSearchClear}\n />\n )}\n <BaseBox>\n <BaseBox\n {...metaAttribute({ name: MetaConstants.ListViewFilter, testID })}\n {...makeAnalyticsAttribute(rest)}\n display=\"flex\"\n justifyContent=\"space-between\"\n >\n <Box\n position=\"relative\"\n display=\"flex\"\n flexDirection=\"column\"\n width={isMobile ? '88%' : 'auto'}\n marginRight={isMobile ? 'spacing.2' : 'spacing.0'}\n >\n <StyledQuickFilterContainer\n overflow={isMobile ? 'scroll' : 'visible'}\n width={isMobile ? '100%' : 'auto'}\n ref={(node) => {\n if (node instanceof HTMLElement && quickFilters) {\n setShouldShowDecorationInQuickFilters(node.scrollWidth > node.offsetWidth);\n }\n }}\n paddingY=\"spacing.4\"\n paddingLeft={isMobile ? 'spacing.2' : 'spacing.0'}\n >\n {quickFilters}\n </StyledQuickFilterContainer>\n {isMobile && shouldShowDecorationInQuickFilters ? (\n <Box\n position=\"absolute\"\n right=\"-1px\"\n top=\"spacing.4\"\n width={gradientOverlyContainerWidth}\n height={gradientOverlyContainerHeight}\n >\n <GradientOverlay\n gradientColorLeft={theme.colors.transparent}\n gradientColorRight={theme.colors.surface.background.gray.intense}\n dividerColor={theme.colors.surface.border.gray.normal}\n />\n <Divider orientation=\"vertical\" />\n </Box>\n ) : null}\n </Box>\n\n <BaseBox display=\"flex\" gap=\"spacing.4\" alignItems=\"center\">\n <Box position=\"relative\" display=\"inline-block\">\n <Button\n variant=\"tertiary\"\n size=\"medium\"\n color=\"primary\"\n onClick={() => {\n setShowFilters((prev) => !prev);\n }}\n icon={FilterIcon}\n accessibilityLabel=\"Show More Filters\"\n />\n <Box\n position=\"absolute\"\n right=\"spacing.0\"\n top=\"spacing.0\"\n transform=\"translate(50%, -50%)\"\n >\n <Counter\n value={selectedFiltersCount || Object.keys(listViewSelectedFilters).length}\n color=\"primary\"\n emphasis=\"intense\"\n size=\"small\"\n />\n </Box>\n </Box>\n {!isMobile && showSearchInput && (\n <Box width=\"256px\">\n <SearchInput\n label=\"\"\n value={searchValue}\n placeholder={searchValuePlaceholder}\n name={searchNameValue || searchId}\n onChange={({ name, value }) => onSearchChange?.({ name, value })}\n onClearButtonClick={onSearchClear}\n size=\"medium\"\n />\n </Box>\n )}\n </BaseBox>\n </BaseBox>\n <AnimatePresence>\n {showFilters && (\n <m.div\n initial={{ height: 0 }}\n animate={{ height: showFilters ? 'auto' : 0 }}\n transition={{\n duration: msToSeconds(theme.motion.duration.moderate),\n ease: cssBezierToArray(castWebType(theme.motion.easing.standard)),\n }}\n exit={{ height: 0 }}\n >\n <BaseBox\n display=\"flex\"\n backgroundColor={\n isMobile ? 'surface.background.white' : 'surface.background.gray.moderate'\n }\n borderTop={!isMobile ? '1ps solid' : undefined}\n borderTopColor={!isMobile ? 'surface.border.gray.muted' : undefined}\n >\n {children}\n </BaseBox>\n </m.div>\n )}\n </AnimatePresence>\n </BaseBox>\n </ListViewFiltersProvider>\n );\n};\n\nexport { ListViewFilters };\n"],"names":["gradientOverlyContainerWidth","gradientOverlyContainerHeight","StyledQuickFilterContainer","styled","BaseBox","withConfig","displayName","componentId","display","scrollbarWidth","msOverflowStyle","GradientOverlay","div","_ref","gradientColorRight","_ref2","gradientColorLeft","_ref3","dividerColor","ListViewFilters","_ref4","testID","children","quickFilters","onSearchChange","searchValue","searchValuePlaceholder","searchName","showQuickFilters","onShowQuickFiltersChange","onSearchClear","_ref4$selectedFilters","selectedFiltersCount","rest","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","shouldShowDecorationInQuickFilters","setShouldShowDecorationInQuickFilters","_useControllableState","useControllableState","defaultValue","value","onChange","_useControllableState2","showFilters","setShowFilters","_useState3","_useState4","listViewSelectedFilters","setListViewSelectedFilters","searchId","useId","searchNameValue","isMobile","useIsMobile","_useTheme","useTheme","theme","showSearchInput","_jsxs","ListViewFiltersProvider","_jsx","SearchInput","label","placeholder","name","_ref5","onClearButtonClick","_objectSpread","metaAttribute","MetaConstants","ListViewFilter","makeAnalyticsAttribute","justifyContent","Box","position","flexDirection","width","marginRight","overflow","ref","node","HTMLElement","scrollWidth","offsetWidth","paddingY","paddingLeft","right","top","height","colors","transparent","surface","background","gray","intense","border","normal","Divider","orientation","gap","alignItems","Button","variant","size","color","onClick","prev","icon","FilterIcon","accessibilityLabel","transform","Counter","Object","keys","length","emphasis","_ref6","AnimatePresence","m","initial","animate","transition","duration","msToSeconds","motion","moderate","ease","cssBezierToArray","castWebType","easing","standard","exit","backgroundColor","borderTop","undefined","borderTopColor"],"mappings":"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"}
|
|
@@ -14951,6 +14951,7 @@ declare const Divider: React__default.ForwardRefExoticComponent<{
|
|
|
14951
14951
|
declare const Drawer: React__default.ForwardRefExoticComponent<{
|
|
14952
14952
|
isOpen: boolean;
|
|
14953
14953
|
onDismiss: () => void;
|
|
14954
|
+
onUnmount?: (() => void) | undefined;
|
|
14954
14955
|
showOverlay?: boolean | undefined;
|
|
14955
14956
|
children: React__default.ReactNode;
|
|
14956
14957
|
zIndex?: number | undefined;
|
|
@@ -14965,9 +14966,17 @@ type DrawerProps = {
|
|
|
14965
14966
|
*/
|
|
14966
14967
|
isOpen: boolean;
|
|
14967
14968
|
/**
|
|
14968
|
-
* Callback function triggered when the drawer is dismissed or closed
|
|
14969
|
+
* Callback function triggered when the drawer is dismissed or closed.
|
|
14970
|
+
*
|
|
14971
|
+
* **Note**: onDismiss gets triggered immediately on close button click. Use onUnmount if you want to perform actions after the animations are complete
|
|
14969
14972
|
*/
|
|
14970
14973
|
onDismiss: () => void;
|
|
14974
|
+
/**
|
|
14975
|
+
* Callback function triggered when the drawer is unmounted.
|
|
14976
|
+
*
|
|
14977
|
+
* Unlike onDismiss, this gets called after the animations are complete
|
|
14978
|
+
*/
|
|
14979
|
+
onUnmount?: () => void;
|
|
14971
14980
|
/**
|
|
14972
14981
|
* Show or hide overlay.
|
|
14973
14982
|
*
|
|
@@ -9731,9 +9731,17 @@ type DrawerProps = {
|
|
|
9731
9731
|
*/
|
|
9732
9732
|
isOpen: boolean;
|
|
9733
9733
|
/**
|
|
9734
|
-
* Callback function triggered when the drawer is dismissed or closed
|
|
9734
|
+
* Callback function triggered when the drawer is dismissed or closed.
|
|
9735
|
+
*
|
|
9736
|
+
* **Note**: onDismiss gets triggered immediately on close button click. Use onUnmount if you want to perform actions after the animations are complete
|
|
9735
9737
|
*/
|
|
9736
9738
|
onDismiss: () => void;
|
|
9739
|
+
/**
|
|
9740
|
+
* Callback function triggered when the drawer is unmounted.
|
|
9741
|
+
*
|
|
9742
|
+
* Unlike onDismiss, this gets called after the animations are complete
|
|
9743
|
+
*/
|
|
9744
|
+
onUnmount?: () => void;
|
|
9737
9745
|
/**
|
|
9738
9746
|
* Show or hide overlay.
|
|
9739
9747
|
*
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@razorpay/blade",
|
|
3
3
|
"description": "The Design System that powers Razorpay",
|
|
4
|
-
"version": "12.
|
|
4
|
+
"version": "12.23.1",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"engines": {
|
|
7
7
|
"node": ">=18.12.1"
|
|
@@ -189,19 +189,19 @@
|
|
|
189
189
|
"@storybook/addon-a11y": "7.1.0",
|
|
190
190
|
"@storybook/addon-actions": "7.1.0",
|
|
191
191
|
"@storybook/addon-controls": "7.1.0",
|
|
192
|
-
"@storybook/addon-docs": "7.
|
|
193
|
-
"@storybook/addon-essentials": "7.
|
|
194
|
-
"@storybook/addon-links": "7.
|
|
192
|
+
"@storybook/addon-docs": "7.2.0",
|
|
193
|
+
"@storybook/addon-essentials": "7.6.20",
|
|
194
|
+
"@storybook/addon-links": "7.6.20",
|
|
195
195
|
"@storybook/addon-ondevice-actions": "7.0.0-alpha.5",
|
|
196
196
|
"@storybook/addon-ondevice-backgrounds": "7.0.0-alpha.5",
|
|
197
197
|
"@storybook/addon-ondevice-controls": "7.0.0-alpha.5",
|
|
198
198
|
"@storybook/addon-ondevice-notes": "7.0.0-alpha.5",
|
|
199
199
|
"@storybook/design-system": "7.15.13",
|
|
200
200
|
"@storybook/node-logger": "7.1.0",
|
|
201
|
-
"@storybook/preset-create-react-app": "7.
|
|
202
|
-
"@storybook/react": "7.
|
|
201
|
+
"@storybook/preset-create-react-app": "7.6.6",
|
|
202
|
+
"@storybook/react": "7.6.20",
|
|
203
203
|
"@storybook/react-native": "7.0.0-alpha.5",
|
|
204
|
-
"@storybook/react-webpack5": "7.
|
|
204
|
+
"@storybook/react-webpack5": "7.6.6",
|
|
205
205
|
"@stackblitz/sdk": "1.11.0",
|
|
206
206
|
"storybook-react-router": "1.0.8",
|
|
207
207
|
"react-router-dom": "5.3.4",
|