@razorpay/blade 12.66.0 → 12.68.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/build/lib/native/components/Popover/Popover.native.js +1 -1
  2. package/build/lib/native/components/Popover/Popover.native.js.map +1 -1
  3. package/build/lib/native/components/Popover/PopoverContent.js +1 -1
  4. package/build/lib/native/components/Popover/PopoverContent.js.map +1 -1
  5. package/build/lib/native/components/Popover/PopoverContext.js.map +1 -1
  6. package/build/lib/web/development/components/FilterChip/BaseFilterChip.web.js +7 -3
  7. package/build/lib/web/development/components/FilterChip/BaseFilterChip.web.js.map +1 -1
  8. package/build/lib/web/development/components/Popover/Popover.web.js +13 -7
  9. package/build/lib/web/development/components/Popover/Popover.web.js.map +1 -1
  10. package/build/lib/web/development/components/Popover/PopoverContent.js +8 -3
  11. package/build/lib/web/development/components/Popover/PopoverContent.js.map +1 -1
  12. package/build/lib/web/development/components/Popover/PopoverContext.js.map +1 -1
  13. package/build/lib/web/development/components/SpotlightPopoverTour/TourPopover.web.js +2 -1
  14. package/build/lib/web/development/components/SpotlightPopoverTour/TourPopover.web.js.map +1 -1
  15. package/build/lib/web/development/components/Toast/ToastContainer.web.js +15 -5
  16. package/build/lib/web/development/components/Toast/ToastContainer.web.js.map +1 -1
  17. package/build/lib/web/development/components/Toast/constants.js +1 -1
  18. package/build/lib/web/development/components/Toast/constants.js.map +1 -1
  19. package/build/lib/web/production/components/FilterChip/BaseFilterChip.web.js +7 -3
  20. package/build/lib/web/production/components/FilterChip/BaseFilterChip.web.js.map +1 -1
  21. package/build/lib/web/production/components/Popover/Popover.web.js +13 -7
  22. package/build/lib/web/production/components/Popover/Popover.web.js.map +1 -1
  23. package/build/lib/web/production/components/Popover/PopoverContent.js +8 -3
  24. package/build/lib/web/production/components/Popover/PopoverContent.js.map +1 -1
  25. package/build/lib/web/production/components/Popover/PopoverContext.js.map +1 -1
  26. package/build/lib/web/production/components/SpotlightPopoverTour/TourPopover.web.js +2 -1
  27. package/build/lib/web/production/components/SpotlightPopoverTour/TourPopover.web.js.map +1 -1
  28. package/build/lib/web/production/components/Toast/ToastContainer.web.js +15 -5
  29. package/build/lib/web/production/components/Toast/ToastContainer.web.js.map +1 -1
  30. package/build/lib/web/production/components/Toast/constants.js +1 -1
  31. package/build/lib/web/production/components/Toast/constants.js.map +1 -1
  32. package/build/types/components/index.d.ts +15 -2
  33. package/build/types/components/index.native.d.ts +6 -0
  34. package/package.json +2 -2
@@ -19,7 +19,7 @@ import { PopupArrow } from '../PopupArrow/PopupArrow.native.js';
19
19
  import { getFloatingPlacementParts } from '../../utils/getFloatingPlacementParts.js';
20
20
  import { componentZIndices } from '../../utils/componentZIndices.js';
21
21
 
22
- var Popover=function Popover(_ref){var content=_ref.content,children=_ref.children,_ref$placement=_ref.placement,placement=_ref$placement===void 0?'top':_ref$placement,onOpenChange=_ref.onOpenChange,_ref$zIndex=_ref.zIndex,zIndex=_ref$zIndex===void 0?componentZIndices.popover:_ref$zIndex,title=_ref.title,titleLeading=_ref.titleLeading,footer=_ref.footer,isOpen=_ref.isOpen,defaultIsOpen=_ref.defaultIsOpen;var _useTheme=useTheme(),theme=_useTheme.theme;var defaultInitialFocusRef=React__default.useRef(null);var _useControllableState=useControllableState({value:isOpen,defaultValue:defaultIsOpen,onChange:function onChange(isOpen){return onOpenChange==null?void 0:onOpenChange({isOpen:isOpen});}}),_useControllableState2=_slicedToArray(_useControllableState,2),controllableIsOpen=_useControllableState2[0],controllableSetIsOpen=_useControllableState2[1];var gap=theme.spacing[2];var _getFloatingPlacement=getFloatingPlacementParts(placement),_getFloatingPlacement2=_slicedToArray(_getFloatingPlacement,1),side=_getFloatingPlacement2[0];var isHorizontal=side==='left'||side==='right';var arrowRef=React__default.useRef();var context=useFloating({sameScrollView:false,placement:placement,middleware:[shift({crossAxis:false,padding:gap}),flip({padding:gap,fallbackAxisSideDirection:'start'}),offset(gap+ARROW_HEIGHT),arrow({element:arrowRef,padding:isHorizontal?0:ARROW_WIDTH})]});var refs=context.refs,floatingStyles=context.floatingStyles;var _getFloatingPlacement3=getFloatingPlacementParts(context.placement),_getFloatingPlacement4=_slicedToArray(_getFloatingPlacement3,1),computedSide=_getFloatingPlacement4[0];var handleOpen=React__default.useCallback(function(){controllableSetIsOpen(function(){return true;});onOpenChange==null?void 0:onOpenChange({isOpen:true});},[controllableSetIsOpen,onOpenChange]);var handleClose=React__default.useCallback(function(){controllableSetIsOpen(function(){return false;});onOpenChange==null?void 0:onOpenChange({isOpen:false});},[controllableSetIsOpen,onOpenChange]);var _React$useState=React__default.useState(function(){return controllableIsOpen;}),_React$useState2=_slicedToArray(_React$useState,2),isVisible=_React$useState2[0],setIsVisible=_React$useState2[1];React__default.useEffect(function(){var id=setTimeout(function(){if(!controllableIsOpen){setIsVisible(false);}},theme.motion.duration.gentle);if(controllableIsOpen){setIsVisible(true);}return function(){return clearTimeout(id);};},[controllableIsOpen]);var contextValue=React__default.useMemo(function(){return {close:handleClose,defaultInitialFocusRef:defaultInitialFocusRef,titleId:undefined};},[handleClose]);return jsxs(PopoverContext.Provider,{value:contextValue,children:[React__default.cloneElement(children,Object.assign({},mergeProps({onTouchEnd:children.props.onTouchEnd},{onTouchEnd:handleOpen}),{ref:refs.setReference})),jsxs(Modal,Object.assign({collapsable:false,transparent:true,visible:Boolean(isVisible)},metaAttribute({testID:'popover-modal'}),{children:[jsx(TouchableOpacity,Object.assign({style:{position:'absolute',top:0,bottom:0,left:0,right:0},onPress:handleClose,activeOpacity:1,testID:"popover-modal-backdrop"},metaAttribute({name:MetaConstants.Popover}))),jsx(PopoverContent,{titleLeading:titleLeading,title:title,footer:footer,isVisible:controllableIsOpen,ref:refs.setFloating,side:computedSide,style:Object.assign({},floatingStyles,{zIndex:zIndex}),arrow:jsx(PopupArrow,{ref:arrowRef,context:context,width:ARROW_WIDTH,height:ARROW_HEIGHT,fillColor:theme.colors.popup.background.subtle,strokeColor:theme.colors.popup.border.subtle}),children:content})]}))]});};
22
+ var Popover=function Popover(_ref){var content=_ref.content,children=_ref.children,_ref$placement=_ref.placement,placement=_ref$placement===void 0?'top':_ref$placement,onOpenChange=_ref.onOpenChange,_ref$zIndex=_ref.zIndex,zIndex=_ref$zIndex===void 0?componentZIndices.popover:_ref$zIndex,title=_ref.title,titleLeading=_ref.titleLeading,footer=_ref.footer,isOpen=_ref.isOpen,defaultIsOpen=_ref.defaultIsOpen;var _useTheme=useTheme(),theme=_useTheme.theme;var defaultInitialFocusRef=React__default.useRef(null);var _useControllableState=useControllableState({value:isOpen,defaultValue:defaultIsOpen,onChange:function onChange(isOpen){return onOpenChange==null?void 0:onOpenChange({isOpen:isOpen});}}),_useControllableState2=_slicedToArray(_useControllableState,2),controllableIsOpen=_useControllableState2[0],controllableSetIsOpen=_useControllableState2[1];var gap=theme.spacing[2];var _getFloatingPlacement=getFloatingPlacementParts(placement),_getFloatingPlacement2=_slicedToArray(_getFloatingPlacement,1),side=_getFloatingPlacement2[0];var isHorizontal=side==='left'||side==='right';var arrowRef=React__default.useRef();var context=useFloating({sameScrollView:false,placement:placement,middleware:[shift({crossAxis:false,padding:gap}),flip({padding:gap,fallbackAxisSideDirection:'start'}),offset(gap+ARROW_HEIGHT),arrow({element:arrowRef,padding:isHorizontal?0:ARROW_WIDTH})]});var refs=context.refs,floatingStyles=context.floatingStyles;var _getFloatingPlacement3=getFloatingPlacementParts(context.placement),_getFloatingPlacement4=_slicedToArray(_getFloatingPlacement3,1),computedSide=_getFloatingPlacement4[0];var handleOpen=React__default.useCallback(function(){controllableSetIsOpen(function(){return true;});onOpenChange==null?void 0:onOpenChange({isOpen:true});},[controllableSetIsOpen,onOpenChange]);var handleClose=React__default.useCallback(function(){controllableSetIsOpen(function(){return false;});onOpenChange==null?void 0:onOpenChange({isOpen:false});},[controllableSetIsOpen,onOpenChange]);var _React$useState=React__default.useState(function(){return controllableIsOpen;}),_React$useState2=_slicedToArray(_React$useState,2),isVisible=_React$useState2[0],setIsVisible=_React$useState2[1];React__default.useEffect(function(){var id=setTimeout(function(){if(!controllableIsOpen){setIsVisible(false);}},theme.motion.duration.gentle);if(controllableIsOpen){setIsVisible(true);}return function(){return clearTimeout(id);};},[controllableIsOpen]);var contextValue=React__default.useMemo(function(){return {close:handleClose,defaultInitialFocusRef:defaultInitialFocusRef,titleId:undefined,openInteraction:'click'};},[handleClose]);return jsxs(PopoverContext.Provider,{value:contextValue,children:[React__default.cloneElement(children,Object.assign({},mergeProps({onTouchEnd:children.props.onTouchEnd},{onTouchEnd:handleOpen}),{ref:refs.setReference})),jsxs(Modal,Object.assign({collapsable:false,transparent:true,visible:Boolean(isVisible)},metaAttribute({testID:'popover-modal'}),{children:[jsx(TouchableOpacity,Object.assign({style:{position:'absolute',top:0,bottom:0,left:0,right:0},onPress:handleClose,activeOpacity:1,testID:"popover-modal-backdrop"},metaAttribute({name:MetaConstants.Popover}))),jsx(PopoverContent,{titleLeading:titleLeading,title:title,footer:footer,isVisible:controllableIsOpen,ref:refs.setFloating,side:computedSide,style:Object.assign({},floatingStyles,{zIndex:zIndex}),arrow:jsx(PopupArrow,{ref:arrowRef,context:context,width:ARROW_WIDTH,height:ARROW_HEIGHT,fillColor:theme.colors.popup.background.subtle,strokeColor:theme.colors.popup.border.subtle}),children:content})]}))]});};
23
23
 
24
24
  export { Popover };
25
25
  //# sourceMappingURL=Popover.native.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Popover.native.js","sources":["../../../../../src/components/Popover/Popover.native.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/restrict-plus-operands */\nimport { arrow, shift, useFloating, flip, offset } from '@floating-ui/react-native';\nimport React from 'react';\nimport { Modal, TouchableOpacity } from 'react-native';\nimport { PopoverContent } from './PopoverContent';\nimport type { PopoverProps } from './types';\nimport { ARROW_HEIGHT, ARROW_WIDTH } from './constants';\nimport { PopoverContext } from './PopoverContext';\nimport { useTheme } from '~components/BladeProvider';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { mergeProps } from '~utils/mergeProps';\nimport { useControllableState } from '~utils/useControllable';\nimport { PopupArrow } from '~components/PopupArrow';\nimport { getFloatingPlacementParts } from '~utils/getFloatingPlacementParts';\nimport { componentZIndices } from '~utils/componentZIndices';\n\nconst Popover = ({\n content,\n children,\n placement = 'top',\n onOpenChange,\n zIndex = componentZIndices.popover,\n title,\n titleLeading,\n footer,\n isOpen,\n defaultIsOpen,\n}: PopoverProps): React.ReactElement => {\n const { theme } = useTheme();\n const defaultInitialFocusRef = React.useRef(null);\n const [controllableIsOpen, controllableSetIsOpen] = useControllableState({\n value: isOpen,\n defaultValue: defaultIsOpen,\n onChange: (isOpen) => onOpenChange?.({ isOpen }),\n });\n\n const gap = theme.spacing[2];\n const [side] = getFloatingPlacementParts(placement);\n const isHorizontal = side === 'left' || side === 'right';\n const arrowRef = React.useRef();\n const context = useFloating({\n sameScrollView: false,\n placement,\n middleware: [\n shift({ crossAxis: false, padding: gap }),\n flip({ padding: gap, fallbackAxisSideDirection: 'start' }),\n offset(gap + ARROW_HEIGHT),\n arrow({\n element: arrowRef,\n padding: isHorizontal ? 0 : ARROW_WIDTH,\n }),\n ],\n });\n\n const { refs, floatingStyles } = context;\n const [computedSide] = getFloatingPlacementParts(context.placement);\n\n const handleOpen = React.useCallback(() => {\n controllableSetIsOpen(() => true);\n onOpenChange?.({ isOpen: true });\n }, [controllableSetIsOpen, onOpenChange]);\n\n const handleClose = React.useCallback(() => {\n controllableSetIsOpen(() => false);\n onOpenChange?.({ isOpen: false });\n }, [controllableSetIsOpen, onOpenChange]);\n\n // wait for animation to finish before unmounting modal\n const [isVisible, setIsVisible] = React.useState(() => controllableIsOpen);\n React.useEffect(() => {\n const id = setTimeout(() => {\n if (!controllableIsOpen) {\n setIsVisible(false);\n }\n }, theme.motion.duration.gentle);\n\n if (controllableIsOpen) {\n setIsVisible(true);\n }\n return () => clearTimeout(id);\n }, [controllableIsOpen]);\n\n const contextValue = React.useMemo(() => {\n return {\n close: handleClose,\n defaultInitialFocusRef,\n titleId: undefined,\n };\n }, [handleClose]);\n\n return (\n <PopoverContext.Provider value={contextValue}>\n {/* Cloning the trigger children to enhance it with ref and event handler */}\n {React.cloneElement(children, {\n ...mergeProps(\n {\n onTouchEnd: children.props.onTouchEnd,\n },\n { onTouchEnd: handleOpen },\n ),\n ref: refs.setReference,\n })}\n <Modal\n collapsable={false}\n transparent\n visible={Boolean(isVisible)}\n {...metaAttribute({ testID: 'popover-modal' })}\n >\n <TouchableOpacity\n style={{\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n }}\n onPress={handleClose}\n activeOpacity={1}\n testID=\"popover-modal-backdrop\"\n {...metaAttribute({ name: MetaConstants.Popover })}\n />\n <PopoverContent\n titleLeading={titleLeading}\n title={title}\n footer={footer}\n isVisible={controllableIsOpen}\n ref={refs.setFloating}\n side={computedSide}\n style={{\n ...floatingStyles,\n // TODO: Tokenize zIndex values\n zIndex,\n }}\n arrow={\n <PopupArrow\n ref={arrowRef as never}\n context={context}\n width={ARROW_WIDTH}\n height={ARROW_HEIGHT}\n fillColor={theme.colors.popup.background.subtle}\n strokeColor={theme.colors.popup.border.subtle}\n />\n }\n >\n {content}\n </PopoverContent>\n </Modal>\n </PopoverContext.Provider>\n );\n};\n\nexport { Popover };\n"],"names":["Popover","_ref","content","children","_ref$placement","placement","onOpenChange","_ref$zIndex","zIndex","componentZIndices","popover","title","titleLeading","footer","isOpen","defaultIsOpen","_useTheme","useTheme","theme","defaultInitialFocusRef","React","useRef","_useControllableState","useControllableState","value","defaultValue","onChange","_useControllableState2","_slicedToArray","controllableIsOpen","controllableSetIsOpen","gap","spacing","_getFloatingPlacement","getFloatingPlacementParts","_getFloatingPlacement2","side","isHorizontal","arrowRef","context","useFloating","sameScrollView","middleware","shift","crossAxis","padding","flip","fallbackAxisSideDirection","offset","ARROW_HEIGHT","arrow","element","ARROW_WIDTH","refs","floatingStyles","_getFloatingPlacement3","_getFloatingPlacement4","computedSide","handleOpen","useCallback","handleClose","_React$useState","useState","_React$useState2","isVisible","setIsVisible","useEffect","id","setTimeout","motion","duration","gentle","clearTimeout","contextValue","useMemo","close","titleId","undefined","_jsxs","PopoverContext","Provider","cloneElement","Object","assign","mergeProps","onTouchEnd","props","ref","setReference","Modal","collapsable","transparent","visible","Boolean","metaAttribute","testID","_jsx","TouchableOpacity","style","position","top","bottom","left","right","onPress","activeOpacity","name","MetaConstants","PopoverContent","setFloating","PopupArrow","width","height","fillColor","colors","popup","background","subtle","strokeColor","border"],"mappings":"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"}
1
+ {"version":3,"file":"Popover.native.js","sources":["../../../../../src/components/Popover/Popover.native.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/restrict-plus-operands */\nimport { arrow, shift, useFloating, flip, offset } from '@floating-ui/react-native';\nimport React from 'react';\nimport { Modal, TouchableOpacity } from 'react-native';\nimport { PopoverContent } from './PopoverContent';\nimport type { PopoverProps } from './types';\nimport { ARROW_HEIGHT, ARROW_WIDTH } from './constants';\nimport { PopoverContext } from './PopoverContext';\nimport { useTheme } from '~components/BladeProvider';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { mergeProps } from '~utils/mergeProps';\nimport { useControllableState } from '~utils/useControllable';\nimport { PopupArrow } from '~components/PopupArrow';\nimport { getFloatingPlacementParts } from '~utils/getFloatingPlacementParts';\nimport { componentZIndices } from '~utils/componentZIndices';\n\nconst Popover = ({\n content,\n children,\n placement = 'top',\n onOpenChange,\n zIndex = componentZIndices.popover,\n title,\n titleLeading,\n footer,\n isOpen,\n defaultIsOpen,\n}: PopoverProps): React.ReactElement => {\n const { theme } = useTheme();\n const defaultInitialFocusRef = React.useRef(null);\n const [controllableIsOpen, controllableSetIsOpen] = useControllableState({\n value: isOpen,\n defaultValue: defaultIsOpen,\n onChange: (isOpen) => onOpenChange?.({ isOpen }),\n });\n\n const gap = theme.spacing[2];\n const [side] = getFloatingPlacementParts(placement);\n const isHorizontal = side === 'left' || side === 'right';\n const arrowRef = React.useRef();\n const context = useFloating({\n sameScrollView: false,\n placement,\n middleware: [\n shift({ crossAxis: false, padding: gap }),\n flip({ padding: gap, fallbackAxisSideDirection: 'start' }),\n offset(gap + ARROW_HEIGHT),\n arrow({\n element: arrowRef,\n padding: isHorizontal ? 0 : ARROW_WIDTH,\n }),\n ],\n });\n\n const { refs, floatingStyles } = context;\n const [computedSide] = getFloatingPlacementParts(context.placement);\n\n const handleOpen = React.useCallback(() => {\n controllableSetIsOpen(() => true);\n onOpenChange?.({ isOpen: true });\n }, [controllableSetIsOpen, onOpenChange]);\n\n const handleClose = React.useCallback(() => {\n controllableSetIsOpen(() => false);\n onOpenChange?.({ isOpen: false });\n }, [controllableSetIsOpen, onOpenChange]);\n\n // wait for animation to finish before unmounting modal\n const [isVisible, setIsVisible] = React.useState(() => controllableIsOpen);\n React.useEffect(() => {\n const id = setTimeout(() => {\n if (!controllableIsOpen) {\n setIsVisible(false);\n }\n }, theme.motion.duration.gentle);\n\n if (controllableIsOpen) {\n setIsVisible(true);\n }\n return () => clearTimeout(id);\n }, [controllableIsOpen]);\n\n const contextValue = React.useMemo(() => {\n return {\n close: handleClose,\n defaultInitialFocusRef,\n titleId: undefined,\n openInteraction: 'click' as const,\n };\n }, [handleClose]);\n\n return (\n <PopoverContext.Provider value={contextValue}>\n {/* Cloning the trigger children to enhance it with ref and event handler */}\n {React.cloneElement(children, {\n ...mergeProps(\n {\n onTouchEnd: children.props.onTouchEnd,\n },\n { onTouchEnd: handleOpen },\n ),\n ref: refs.setReference,\n })}\n <Modal\n collapsable={false}\n transparent\n visible={Boolean(isVisible)}\n {...metaAttribute({ testID: 'popover-modal' })}\n >\n <TouchableOpacity\n style={{\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n }}\n onPress={handleClose}\n activeOpacity={1}\n testID=\"popover-modal-backdrop\"\n {...metaAttribute({ name: MetaConstants.Popover })}\n />\n <PopoverContent\n titleLeading={titleLeading}\n title={title}\n footer={footer}\n isVisible={controllableIsOpen}\n ref={refs.setFloating}\n side={computedSide}\n style={{\n ...floatingStyles,\n // TODO: Tokenize zIndex values\n zIndex,\n }}\n arrow={\n <PopupArrow\n ref={arrowRef as never}\n context={context}\n width={ARROW_WIDTH}\n height={ARROW_HEIGHT}\n fillColor={theme.colors.popup.background.subtle}\n strokeColor={theme.colors.popup.border.subtle}\n />\n }\n >\n {content}\n </PopoverContent>\n </Modal>\n </PopoverContext.Provider>\n );\n};\n\nexport { Popover };\n"],"names":["Popover","_ref","content","children","_ref$placement","placement","onOpenChange","_ref$zIndex","zIndex","componentZIndices","popover","title","titleLeading","footer","isOpen","defaultIsOpen","_useTheme","useTheme","theme","defaultInitialFocusRef","React","useRef","_useControllableState","useControllableState","value","defaultValue","onChange","_useControllableState2","_slicedToArray","controllableIsOpen","controllableSetIsOpen","gap","spacing","_getFloatingPlacement","getFloatingPlacementParts","_getFloatingPlacement2","side","isHorizontal","arrowRef","context","useFloating","sameScrollView","middleware","shift","crossAxis","padding","flip","fallbackAxisSideDirection","offset","ARROW_HEIGHT","arrow","element","ARROW_WIDTH","refs","floatingStyles","_getFloatingPlacement3","_getFloatingPlacement4","computedSide","handleOpen","useCallback","handleClose","_React$useState","useState","_React$useState2","isVisible","setIsVisible","useEffect","id","setTimeout","motion","duration","gentle","clearTimeout","contextValue","useMemo","close","titleId","undefined","openInteraction","_jsxs","PopoverContext","Provider","cloneElement","Object","assign","mergeProps","onTouchEnd","props","ref","setReference","Modal","collapsable","transparent","visible","Boolean","metaAttribute","testID","_jsx","TouchableOpacity","style","position","top","bottom","left","right","onPress","activeOpacity","name","MetaConstants","PopoverContent","setFloating","PopupArrow","width","height","fillColor","colors","popup","background","subtle","strokeColor","border"],"mappings":"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"}
@@ -14,7 +14,7 @@ import '../BladeProvider/useTheme.js';
14
14
  import { useIsMobile } from '../../utils/useIsMobile.js';
15
15
  import { jsxs, jsx } from 'react/jsx-runtime';
16
16
 
17
- var PopoverHeader=function PopoverHeader(_ref){var title=_ref.title,titleLeading=_ref.titleLeading;var _usePopoverContext=usePopoverContext(),titleId=_usePopoverContext.titleId;var isFloating=!(title||titleLeading);if(isFloating){return jsx(BaseBox,{borderRadius:"max",position:"absolute",padding:"spacing.2",top:"spacing.2",right:"spacing.2",zIndex:1,children:jsx(PopoverCloseButton,{})});}return jsxs(BaseBox,{display:"flex",flexDirection:"row",flexWrap:isReactNative()?'wrap':'nowrap',alignItems:"center",gap:"spacing.3",children:[titleLeading?React__default.cloneElement(titleLeading,{size:'large'}):null,title?jsx(BaseBox,{id:titleId,paddingRight:"spacing.4",children:jsx(Text,{size:"large",weight:"semibold",children:title})}):null,jsx(BaseBox,{marginLeft:"auto",children:jsx(PopoverCloseButton,{})})]});};var PopoverContent=React__default.forwardRef(function(_ref2,ref){var children=_ref2.children,title=_ref2.title,titleLeading=_ref2.titleLeading,footer=_ref2.footer,arrow=_ref2.arrow,side=_ref2.side,style=_ref2.style,isVisible=_ref2.isVisible;var isMobile=useIsMobile();return jsxs(PopoverContentWrapper,{ref:ref,styles:style,side:side,isVisible:isVisible,isMobile:isMobile,children:[jsxs(BaseBox,{padding:"spacing.4",display:"flex",flexDirection:"column",gap:"spacing.4",children:[jsx(PopoverHeader,{title:title,titleLeading:titleLeading}),jsx(BaseBox,{children:children}),footer?jsx(BaseBox,{children:footer}):null]}),arrow]});});
17
+ var PopoverHeader=function PopoverHeader(_ref){var title=_ref.title,titleLeading=_ref.titleLeading;var _usePopoverContext=usePopoverContext(),titleId=_usePopoverContext.titleId,openInteraction=_usePopoverContext.openInteraction;var showCloseButton=openInteraction==='click';var isFloating=!(title||titleLeading);if(isFloating){if(!showCloseButton){return null;}return jsx(BaseBox,{borderRadius:"max",position:"absolute",padding:"spacing.2",top:"spacing.2",right:"spacing.2",zIndex:1,children:jsx(PopoverCloseButton,{})});}return jsxs(BaseBox,{display:"flex",flexDirection:"row",flexWrap:isReactNative()?'wrap':'nowrap',alignItems:"center",gap:"spacing.3",children:[titleLeading?React__default.cloneElement(titleLeading,{size:'large'}):null,title?jsx(BaseBox,{id:titleId,paddingRight:"spacing.4",children:jsx(Text,{size:"large",weight:"semibold",children:title})}):null,showCloseButton?jsx(BaseBox,{marginLeft:"auto",children:jsx(PopoverCloseButton,{})}):null]});};var PopoverContent=React__default.forwardRef(function(_ref2,ref){var children=_ref2.children,title=_ref2.title,titleLeading=_ref2.titleLeading,footer=_ref2.footer,arrow=_ref2.arrow,side=_ref2.side,style=_ref2.style,isVisible=_ref2.isVisible;var isMobile=useIsMobile();return jsxs(PopoverContentWrapper,{ref:ref,styles:style,side:side,isVisible:isVisible,isMobile:isMobile,children:[jsxs(BaseBox,{padding:"spacing.4",display:"flex",flexDirection:"column",gap:"spacing.4",children:[jsx(PopoverHeader,{title:title,titleLeading:titleLeading}),jsx(BaseBox,{children:children}),footer?jsx(BaseBox,{children:footer}):null]}),arrow]});});
18
18
 
19
19
  export { PopoverContent };
20
20
  //# sourceMappingURL=PopoverContent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PopoverContent.js","sources":["../../../../../src/components/Popover/PopoverContent.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */\nimport React from 'react';\nimport { PopoverContentWrapper } from './PopoverContentWrapper';\nimport type { PopoverContentProps } from './types';\nimport { PopoverCloseButton } from './PopoverCloseButton';\nimport { usePopoverContext } from './PopoverContext';\nimport BaseBox from '~components/Box/BaseBox';\nimport { Text } from '~components/Typography';\nimport { isReactNative } from '~utils';\nimport { useIsMobile } from '~utils/useIsMobile';\n\ntype PopoverHeaderProps = {\n title?: string;\n titleLeading?: React.ReactNode;\n};\n\nconst PopoverHeader = ({ title, titleLeading }: PopoverHeaderProps): React.ReactElement => {\n const { titleId } = usePopoverContext();\n\n const isFloating = !(title || titleLeading);\n if (isFloating) {\n return (\n <BaseBox\n borderRadius=\"max\"\n position=\"absolute\"\n padding=\"spacing.2\"\n top=\"spacing.2\"\n right=\"spacing.2\"\n zIndex={1}\n >\n <PopoverCloseButton />\n </BaseBox>\n );\n }\n\n return (\n <BaseBox\n display=\"flex\"\n flexDirection=\"row\"\n flexWrap={isReactNative() ? 'wrap' : 'nowrap'}\n alignItems=\"center\"\n gap=\"spacing.3\"\n >\n {titleLeading\n ? React.cloneElement(titleLeading as React.ReactElement, { size: 'large' })\n : null}\n {title ? (\n <BaseBox id={titleId} paddingRight=\"spacing.4\">\n <Text size=\"large\" weight=\"semibold\">\n {title}\n </Text>\n </BaseBox>\n ) : null}\n <BaseBox marginLeft=\"auto\">\n <PopoverCloseButton />\n </BaseBox>\n </BaseBox>\n );\n};\n\nconst PopoverContent = React.forwardRef<HTMLDivElement, PopoverContentProps>(\n ({ children, title, titleLeading, footer, arrow, side, style, isVisible }, ref) => {\n const isMobile = useIsMobile();\n return (\n <PopoverContentWrapper\n ref={ref as never}\n styles={style}\n side={side}\n isVisible={isVisible}\n isMobile={isMobile}\n >\n <BaseBox padding=\"spacing.4\" display=\"flex\" flexDirection=\"column\" gap=\"spacing.4\">\n <PopoverHeader title={title} titleLeading={titleLeading} />\n <BaseBox>{children}</BaseBox>\n {footer ? <BaseBox>{footer}</BaseBox> : null}\n </BaseBox>\n {arrow}\n </PopoverContentWrapper>\n );\n },\n);\n\nexport { PopoverContent };\n"],"names":["PopoverHeader","_ref","title","titleLeading","_usePopoverContext","usePopoverContext","titleId","isFloating","_jsx","BaseBox","borderRadius","position","padding","top","right","zIndex","children","PopoverCloseButton","_jsxs","display","flexDirection","flexWrap","isReactNative","alignItems","gap","React","cloneElement","size","id","paddingRight","Text","weight","marginLeft","PopoverContent","forwardRef","_ref2","ref","footer","arrow","side","style","isVisible","isMobile","useIsMobile","PopoverContentWrapper","styles"],"mappings":"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"}
1
+ {"version":3,"file":"PopoverContent.js","sources":["../../../../../src/components/Popover/PopoverContent.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */\nimport React from 'react';\nimport { PopoverContentWrapper } from './PopoverContentWrapper';\nimport type { PopoverContentProps } from './types';\nimport { PopoverCloseButton } from './PopoverCloseButton';\nimport { usePopoverContext } from './PopoverContext';\nimport BaseBox from '~components/Box/BaseBox';\nimport { Text } from '~components/Typography';\nimport { isReactNative } from '~utils';\nimport { useIsMobile } from '~utils/useIsMobile';\n\ntype PopoverHeaderProps = {\n title?: string;\n titleLeading?: React.ReactNode;\n};\n\nconst PopoverHeader = ({ title, titleLeading }: PopoverHeaderProps): React.ReactElement | null => {\n const { titleId, openInteraction } = usePopoverContext();\n\n const showCloseButton = openInteraction === 'click';\n const isFloating = !(title || titleLeading);\n\n if (isFloating) {\n if (!showCloseButton) {\n return null;\n }\n return (\n <BaseBox\n borderRadius=\"max\"\n position=\"absolute\"\n padding=\"spacing.2\"\n top=\"spacing.2\"\n right=\"spacing.2\"\n zIndex={1}\n >\n <PopoverCloseButton />\n </BaseBox>\n );\n }\n\n return (\n <BaseBox\n display=\"flex\"\n flexDirection=\"row\"\n flexWrap={isReactNative() ? 'wrap' : 'nowrap'}\n alignItems=\"center\"\n gap=\"spacing.3\"\n >\n {titleLeading\n ? React.cloneElement(titleLeading as React.ReactElement, { size: 'large' })\n : null}\n {title ? (\n <BaseBox id={titleId} paddingRight=\"spacing.4\">\n <Text size=\"large\" weight=\"semibold\">\n {title}\n </Text>\n </BaseBox>\n ) : null}\n {showCloseButton ? (\n <BaseBox marginLeft=\"auto\">\n <PopoverCloseButton />\n </BaseBox>\n ) : null}\n </BaseBox>\n );\n};\n\nconst PopoverContent = React.forwardRef<HTMLDivElement, PopoverContentProps>(\n ({ children, title, titleLeading, footer, arrow, side, style, isVisible }, ref) => {\n const isMobile = useIsMobile();\n return (\n <PopoverContentWrapper\n ref={ref as never}\n styles={style}\n side={side}\n isVisible={isVisible}\n isMobile={isMobile}\n >\n <BaseBox padding=\"spacing.4\" display=\"flex\" flexDirection=\"column\" gap=\"spacing.4\">\n <PopoverHeader title={title} titleLeading={titleLeading} />\n <BaseBox>{children}</BaseBox>\n {footer ? <BaseBox>{footer}</BaseBox> : null}\n </BaseBox>\n {arrow}\n </PopoverContentWrapper>\n );\n },\n);\n\nexport { PopoverContent };\n"],"names":["PopoverHeader","_ref","title","titleLeading","_usePopoverContext","usePopoverContext","titleId","openInteraction","showCloseButton","isFloating","_jsx","BaseBox","borderRadius","position","padding","top","right","zIndex","children","PopoverCloseButton","_jsxs","display","flexDirection","flexWrap","isReactNative","alignItems","gap","React","cloneElement","size","id","paddingRight","Text","weight","marginLeft","PopoverContent","forwardRef","_ref2","ref","footer","arrow","side","style","isVisible","isMobile","useIsMobile","PopoverContentWrapper","styles"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"PopoverContext.js","sources":["../../../../../src/components/Popover/PopoverContext.ts"],"sourcesContent":["import React from 'react';\nimport { throwBladeError } from '~utils/logger';\n\ntype PopoverContextProps = {\n close: () => void;\n defaultInitialFocusRef: React.RefObject<HTMLElement>;\n titleId?: string;\n} | null;\nconst PopoverContext = React.createContext<PopoverContextProps>(null);\n\nconst usePopoverContext = (): NonNullable<PopoverContextProps> => {\n const context = React.useContext(PopoverContext);\n\n if (__DEV__) {\n if (!context) {\n throwBladeError({\n message: `usePopoverContext must be used within Popover`,\n moduleName: 'Popover',\n });\n }\n }\n\n return context!;\n};\n\nexport { PopoverContext, usePopoverContext };\n"],"names":["PopoverContext","React","createContext","usePopoverContext","context","useContext","__DEV__","throwBladeError","message","moduleName"],"mappings":";;;AAQM,IAAAA,cAAc,CAAGC,cAAK,CAACC,aAAa,CAAsB,IAAI,EAE9D,IAAAC,iBAAiB,CAAG,SAApBA,iBAAiBA,EAA2C,CAChE,IAAMC,OAAO,CAAGH,cAAK,CAACI,UAAU,CAACL,cAAc,CAAC,CAEhD,GAAIM,OAAO,CAAE,CACX,GAAI,CAACF,OAAO,CAAE,CACZG,eAAe,CAAC,CACdC,OAAO,CAAE,CAAA,6CAAA,CAA+C,CACxDC,UAAU,CAAE,SACd,CAAC,CAAC,CACJ,CACF,CAEA,OAAOL,OAAO,CAChB;;;;"}
1
+ {"version":3,"file":"PopoverContext.js","sources":["../../../../../src/components/Popover/PopoverContext.ts"],"sourcesContent":["import React from 'react';\nimport { throwBladeError } from '~utils/logger';\n\ntype PopoverContextProps = {\n close: () => void;\n defaultInitialFocusRef: React.RefObject<HTMLElement>;\n titleId?: string;\n openInteraction?: 'hover' | 'click';\n} | null;\nconst PopoverContext = React.createContext<PopoverContextProps>(null);\n\nconst usePopoverContext = (): NonNullable<PopoverContextProps> => {\n const context = React.useContext(PopoverContext);\n\n if (__DEV__) {\n if (!context) {\n throwBladeError({\n message: `usePopoverContext must be used within Popover`,\n moduleName: 'Popover',\n });\n }\n }\n\n return context!;\n};\n\nexport { PopoverContext, usePopoverContext };\n"],"names":["PopoverContext","React","createContext","usePopoverContext","context","useContext","__DEV__","throwBladeError","message","moduleName"],"mappings":";;;AASM,IAAAA,cAAc,CAAGC,cAAK,CAACC,aAAa,CAAsB,IAAI,EAE9D,IAAAC,iBAAiB,CAAG,SAApBA,iBAAiBA,EAA2C,CAChE,IAAMC,OAAO,CAAGH,cAAK,CAACI,UAAU,CAACL,cAAc,CAAC,CAEhD,GAAIM,OAAO,CAAE,CACX,GAAI,CAACF,OAAO,CAAE,CACZG,eAAe,CAAC,CACdC,OAAO,CAAE,CAAA,6CAAA,CAA+C,CACxDC,UAAU,CAAE,SACd,CAAC,CAAC,CACJ,CACF,CAEA,OAAOL,OAAO,CAChB;;;;"}
@@ -165,6 +165,7 @@ var _BaseFilterChip = function _BaseFilterChip(_ref5, ref) {
165
165
  }, makeAccessible(_objectSpread(_objectSpread({}, accessibilityProps), {}, {
166
166
  role: (_accessibilityProps$r = accessibilityProps === null || accessibilityProps === void 0 ? void 0 : accessibilityProps.role) !== null && _accessibilityProps$r !== void 0 ? _accessibilityProps$r : 'button'
167
167
  }))), getStyledProps(rest)), makeAnalyticsAttribute(rest)), metaAttribute({
168
+ name: 'filter-chip-trigger',
168
169
  testID: rest.testID
169
170
  })), {}, {
170
171
  children: [/*#__PURE__*/jsxs(Box, {
@@ -191,7 +192,7 @@ var _BaseFilterChip = function _BaseFilterChip(_ref5, ref) {
191
192
  children: [/*#__PURE__*/jsx(Divider, {
192
193
  orientation: "vertical",
193
194
  variant: isDisabled ? 'muted' : 'subtle'
194
- }), /*#__PURE__*/jsx(StyledFilterCloseButton, {
195
+ }), /*#__PURE__*/jsx(StyledFilterCloseButton, _objectSpread(_objectSpread({
195
196
  "aria-label": "Clear ".concat(label, " value")
196
197
  // value can never be undefined because when it's undefined the button itself doesn't render/
197
198
  ,
@@ -200,12 +201,15 @@ var _BaseFilterChip = function _BaseFilterChip(_ref5, ref) {
200
201
  value: value !== null && value !== void 0 ? value : ''
201
202
  });
202
203
  },
203
- disabled: isDisabled,
204
+ disabled: isDisabled
205
+ }, metaAttribute({
206
+ name: 'filter-chip-close-button'
207
+ })), {}, {
204
208
  children: /*#__PURE__*/jsx(CloseIcon, {
205
209
  size: "small",
206
210
  color: "interactive.icon.gray.muted"
207
211
  })
208
- })]
212
+ }))]
209
213
  }) : null]
210
214
  });
211
215
  };
@@ -1 +1 @@
1
- {"version":3,"file":"BaseFilterChip.web.js","sources":["../../../../../../src/components/FilterChip/BaseFilterChip.web.tsx"],"sourcesContent":["import React from 'react';\nimport type { CSSObject } from 'styled-components';\nimport styled from 'styled-components';\nimport { FILTER_CHIP_HEIGHT } from './tokens';\nimport type { BaseFilterChipProps } from './types';\nimport { Box } from '~components/Box';\nimport BaseBox from '~components/Box/BaseBox';\nimport { Counter } from '~components/Counter';\nimport { Divider } from '~components/Divider';\nimport { ChevronDownIcon, CloseIcon } from '~components/Icons';\nimport { Text } from '~components/Typography';\nimport { makeBorderSize, makeSpace } from '~utils';\nimport { getFocusRingStyles } from '~utils/getFocusRingStyles';\nimport type { Theme } from '~components/BladeProvider';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport type { BladeElementRef } from '~utils/types';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\nconst getInteractiveFilterItemStyles = ({ theme }: { theme: Theme }): CSSObject => {\n return {\n display: 'flex',\n height: '100%',\n alignItems: 'center',\n border: 'none',\n cursor: 'pointer',\n color: 'currentcolor',\n '&:not([disabled]):hover': {\n backgroundColor: theme.colors.interactive.background.gray.faded,\n },\n '&[disabled]': {\n cursor: 'not-allowed',\n },\n '&:focus-visible': {\n ...getFocusRingStyles({ theme }),\n outlineOffset: makeSpace(theme.spacing[1]),\n },\n };\n};\n\nconst StyledFilterChip = styled(BaseBox)<{ $isSelected?: boolean; $isDisabled?: boolean }>(\n ({ theme, $isDisabled }) => {\n return {\n borderWidth: makeBorderSize(theme.border.width.thinner),\n borderColor: theme.colors.interactive.border.gray[$isDisabled ? 'disabled' : 'highlighted'],\n height: FILTER_CHIP_HEIGHT,\n borderRadius: theme.border.radius.max,\n display: 'flex',\n borderStyle: 'solid',\n backgroundColor: theme.colors.surface.background.gray.intense,\n color: theme.colors.interactive.text.gray[$isDisabled ? 'disabled' : 'normal'],\n width: 'fit-content',\n };\n },\n);\n\nconst StyledFilterTrigger = styled.button<{ $isSelected?: boolean }>(({ theme, $isSelected }) => {\n const { spacing } = theme;\n return {\n backgroundColor: theme.colors.transparent,\n borderRadius: $isSelected ? theme.border.radius.none : theme.border.radius.max,\n borderTopLeftRadius: theme.border.radius.max,\n borderBottomLeftRadius: theme.border.radius.max,\n paddingLeft: makeSpace(spacing[4]),\n paddingRight: $isSelected ? makeSpace(spacing[2]) : makeSpace(spacing[3]),\n gap: makeSpace(spacing[2]),\n ...getInteractiveFilterItemStyles({ theme }),\n };\n});\n\nconst StyledFilterCloseButton = styled.button(({ theme }) => {\n return {\n backgroundColor: theme.colors.transparent,\n borderTopRightRadius: theme.border.radius.max,\n borderBottomRightRadius: theme.border.radius.max,\n paddingLeft: makeSpace(theme.spacing[2]),\n paddingRight: makeSpace(theme.spacing[3]),\n justifyContent: 'center',\n ...getInteractiveFilterItemStyles({ theme }),\n };\n});\n\nconst renderValue = (\n selectionType: BaseFilterChipProps['selectionType'],\n value: BaseFilterChipProps['value'],\n isDisabled?: boolean,\n): React.ReactElement => {\n if (selectionType === 'multiple' && Array.isArray(value)) {\n return (\n <Box display=\"flex\" alignItems=\"center\">\n <Counter value={value.length} color={isDisabled ? 'neutral' : 'primary'} size=\"small\" />\n </Box>\n );\n }\n\n return (\n <Text\n as=\"span\"\n size=\"xsmall\"\n weight=\"semibold\"\n color={isDisabled ? 'interactive.text.gray.disabled' : 'interactive.text.primary.normal'}\n >\n {value}\n </Text>\n );\n};\n\nconst _BaseFilterChip: React.ForwardRefRenderFunction<BladeElementRef, BaseFilterChipProps> = (\n {\n value,\n onClearButtonClick,\n label,\n isDisabled,\n selectionType = 'single',\n onClick,\n onKeyDown,\n accessibilityProps,\n id,\n ...rest\n }: BaseFilterChipProps,\n ref: React.Ref<BladeElementRef>,\n): React.ReactElement => {\n const isSelected =\n selectionType === 'multiple' ? Array.isArray(value) && value.length > 0 : !!value;\n\n return (\n <StyledFilterChip\n $isDisabled={isDisabled}\n $isSelected={isSelected}\n ref={ref as React.Ref<HTMLDivElement>}\n >\n <StyledFilterTrigger\n $isSelected={isSelected}\n disabled={isDisabled}\n id={id}\n onClick={(e) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onClick?.(e as any);\n }}\n onKeyDown={(e) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onKeyDown?.(e as any);\n }}\n {...makeAccessible({\n ...accessibilityProps,\n role: accessibilityProps?.role ?? 'button',\n })}\n {...getStyledProps(rest)}\n {...makeAnalyticsAttribute(rest)}\n {...metaAttribute({ testID: rest.testID })}\n >\n <Box display=\"flex\" gap=\"spacing.2\" whiteSpace=\"nowrap\">\n <Text\n size=\"xsmall\"\n weight=\"medium\"\n color=\"interactive.text.gray.subtle\"\n truncateAfterLines={1}\n >\n {label}\n {isSelected ? ':' : null}\n </Text>\n {isSelected ? renderValue(selectionType, value, isDisabled) : null}\n </Box>\n <Box display=\"flex\" alignItems=\"center\" paddingRight=\"spacing.1\">\n <ChevronDownIcon size=\"small\" color=\"interactive.icon.gray.muted\" />\n </Box>\n </StyledFilterTrigger>\n {isSelected ? (\n <>\n <Divider orientation=\"vertical\" variant={isDisabled ? 'muted' : 'subtle'} />\n <StyledFilterCloseButton\n aria-label={`Clear ${label} value`}\n // value can never be undefined because when it's undefined the button itself doesn't render/\n onClick={() => onClearButtonClick?.({ value: value ?? '' })}\n disabled={isDisabled}\n >\n <CloseIcon size=\"small\" color=\"interactive.icon.gray.muted\" />\n </StyledFilterCloseButton>\n </>\n ) : null}\n </StyledFilterChip>\n );\n};\n\nconst BaseFilterChip = assignWithoutSideEffects(React.forwardRef(_BaseFilterChip), {\n componentId: MetaConstants.BaseFilterChip,\n});\n\nexport { BaseFilterChip };\n"],"names":["getInteractiveFilterItemStyles","_ref","theme","display","height","alignItems","border","cursor","color","backgroundColor","colors","interactive","background","gray","faded","_objectSpread","getFocusRingStyles","outlineOffset","makeSpace","spacing","StyledFilterChip","styled","BaseBox","withConfig","displayName","componentId","_ref2","$isDisabled","borderWidth","makeBorderSize","width","thinner","borderColor","FILTER_CHIP_HEIGHT","borderRadius","radius","max","borderStyle","surface","intense","text","StyledFilterTrigger","button","_ref3","$isSelected","transparent","none","borderTopLeftRadius","borderBottomLeftRadius","paddingLeft","paddingRight","gap","StyledFilterCloseButton","_ref4","borderTopRightRadius","borderBottomRightRadius","justifyContent","renderValue","selectionType","value","isDisabled","Array","isArray","_jsx","Box","children","Counter","length","size","Text","as","weight","_BaseFilterChip","_ref5","ref","_accessibilityProps$r","onClearButtonClick","label","_ref5$selectionType","onClick","onKeyDown","accessibilityProps","id","rest","_objectWithoutProperties","_excluded","isSelected","_jsxs","disabled","e","makeAccessible","role","getStyledProps","makeAnalyticsAttribute","metaAttribute","testID","whiteSpace","truncateAfterLines","ChevronDownIcon","_Fragment","Divider","orientation","variant","concat","CloseIcon","BaseFilterChip","assignWithoutSideEffects","React","forwardRef","MetaConstants"],"mappings":"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"}
1
+ {"version":3,"file":"BaseFilterChip.web.js","sources":["../../../../../../src/components/FilterChip/BaseFilterChip.web.tsx"],"sourcesContent":["import React from 'react';\nimport type { CSSObject } from 'styled-components';\nimport styled from 'styled-components';\nimport { FILTER_CHIP_HEIGHT } from './tokens';\nimport type { BaseFilterChipProps } from './types';\nimport { Box } from '~components/Box';\nimport BaseBox from '~components/Box/BaseBox';\nimport { Counter } from '~components/Counter';\nimport { Divider } from '~components/Divider';\nimport { ChevronDownIcon, CloseIcon } from '~components/Icons';\nimport { Text } from '~components/Typography';\nimport { makeBorderSize, makeSpace } from '~utils';\nimport { getFocusRingStyles } from '~utils/getFocusRingStyles';\nimport type { Theme } from '~components/BladeProvider';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport type { BladeElementRef } from '~utils/types';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\nconst getInteractiveFilterItemStyles = ({ theme }: { theme: Theme }): CSSObject => {\n return {\n display: 'flex',\n height: '100%',\n alignItems: 'center',\n border: 'none',\n cursor: 'pointer',\n color: 'currentcolor',\n '&:not([disabled]):hover': {\n backgroundColor: theme.colors.interactive.background.gray.faded,\n },\n '&[disabled]': {\n cursor: 'not-allowed',\n },\n '&:focus-visible': {\n ...getFocusRingStyles({ theme }),\n outlineOffset: makeSpace(theme.spacing[1]),\n },\n };\n};\n\nconst StyledFilterChip = styled(BaseBox)<{ $isSelected?: boolean; $isDisabled?: boolean }>(\n ({ theme, $isDisabled }) => {\n return {\n borderWidth: makeBorderSize(theme.border.width.thinner),\n borderColor: theme.colors.interactive.border.gray[$isDisabled ? 'disabled' : 'highlighted'],\n height: FILTER_CHIP_HEIGHT,\n borderRadius: theme.border.radius.max,\n display: 'flex',\n borderStyle: 'solid',\n backgroundColor: theme.colors.surface.background.gray.intense,\n color: theme.colors.interactive.text.gray[$isDisabled ? 'disabled' : 'normal'],\n width: 'fit-content',\n };\n },\n);\n\nconst StyledFilterTrigger = styled.button<{ $isSelected?: boolean }>(({ theme, $isSelected }) => {\n const { spacing } = theme;\n return {\n backgroundColor: theme.colors.transparent,\n borderRadius: $isSelected ? theme.border.radius.none : theme.border.radius.max,\n borderTopLeftRadius: theme.border.radius.max,\n borderBottomLeftRadius: theme.border.radius.max,\n paddingLeft: makeSpace(spacing[4]),\n paddingRight: $isSelected ? makeSpace(spacing[2]) : makeSpace(spacing[3]),\n gap: makeSpace(spacing[2]),\n ...getInteractiveFilterItemStyles({ theme }),\n };\n});\n\nconst StyledFilterCloseButton = styled.button(({ theme }) => {\n return {\n backgroundColor: theme.colors.transparent,\n borderTopRightRadius: theme.border.radius.max,\n borderBottomRightRadius: theme.border.radius.max,\n paddingLeft: makeSpace(theme.spacing[2]),\n paddingRight: makeSpace(theme.spacing[3]),\n justifyContent: 'center',\n ...getInteractiveFilterItemStyles({ theme }),\n };\n});\n\nconst renderValue = (\n selectionType: BaseFilterChipProps['selectionType'],\n value: BaseFilterChipProps['value'],\n isDisabled?: boolean,\n): React.ReactElement => {\n if (selectionType === 'multiple' && Array.isArray(value)) {\n return (\n <Box display=\"flex\" alignItems=\"center\">\n <Counter value={value.length} color={isDisabled ? 'neutral' : 'primary'} size=\"small\" />\n </Box>\n );\n }\n\n return (\n <Text\n as=\"span\"\n size=\"xsmall\"\n weight=\"semibold\"\n color={isDisabled ? 'interactive.text.gray.disabled' : 'interactive.text.primary.normal'}\n >\n {value}\n </Text>\n );\n};\n\nconst _BaseFilterChip: React.ForwardRefRenderFunction<BladeElementRef, BaseFilterChipProps> = (\n {\n value,\n onClearButtonClick,\n label,\n isDisabled,\n selectionType = 'single',\n onClick,\n onKeyDown,\n accessibilityProps,\n id,\n ...rest\n }: BaseFilterChipProps,\n ref: React.Ref<BladeElementRef>,\n): React.ReactElement => {\n const isSelected =\n selectionType === 'multiple' ? Array.isArray(value) && value.length > 0 : !!value;\n\n return (\n <StyledFilterChip\n $isDisabled={isDisabled}\n $isSelected={isSelected}\n ref={ref as React.Ref<HTMLDivElement>}\n >\n <StyledFilterTrigger\n $isSelected={isSelected}\n disabled={isDisabled}\n id={id}\n onClick={(e) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onClick?.(e as any);\n }}\n onKeyDown={(e) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onKeyDown?.(e as any);\n }}\n {...makeAccessible({\n ...accessibilityProps,\n role: accessibilityProps?.role ?? 'button',\n })}\n {...getStyledProps(rest)}\n {...makeAnalyticsAttribute(rest)}\n {...metaAttribute({ name: 'filter-chip-trigger', testID: rest.testID })}\n >\n <Box display=\"flex\" gap=\"spacing.2\" whiteSpace=\"nowrap\">\n <Text\n size=\"xsmall\"\n weight=\"medium\"\n color=\"interactive.text.gray.subtle\"\n truncateAfterLines={1}\n >\n {label}\n {isSelected ? ':' : null}\n </Text>\n {isSelected ? renderValue(selectionType, value, isDisabled) : null}\n </Box>\n <Box display=\"flex\" alignItems=\"center\" paddingRight=\"spacing.1\">\n <ChevronDownIcon size=\"small\" color=\"interactive.icon.gray.muted\" />\n </Box>\n </StyledFilterTrigger>\n {isSelected ? (\n <>\n <Divider orientation=\"vertical\" variant={isDisabled ? 'muted' : 'subtle'} />\n <StyledFilterCloseButton\n aria-label={`Clear ${label} value`}\n // value can never be undefined because when it's undefined the button itself doesn't render/\n onClick={() => onClearButtonClick?.({ value: value ?? '' })}\n disabled={isDisabled}\n {...metaAttribute({ name: 'filter-chip-close-button' })}\n >\n <CloseIcon size=\"small\" color=\"interactive.icon.gray.muted\" />\n </StyledFilterCloseButton>\n </>\n ) : null}\n </StyledFilterChip>\n );\n};\n\nconst BaseFilterChip = assignWithoutSideEffects(React.forwardRef(_BaseFilterChip), {\n componentId: MetaConstants.BaseFilterChip,\n});\n\nexport { BaseFilterChip };\n"],"names":["getInteractiveFilterItemStyles","_ref","theme","display","height","alignItems","border","cursor","color","backgroundColor","colors","interactive","background","gray","faded","_objectSpread","getFocusRingStyles","outlineOffset","makeSpace","spacing","StyledFilterChip","styled","BaseBox","withConfig","displayName","componentId","_ref2","$isDisabled","borderWidth","makeBorderSize","width","thinner","borderColor","FILTER_CHIP_HEIGHT","borderRadius","radius","max","borderStyle","surface","intense","text","StyledFilterTrigger","button","_ref3","$isSelected","transparent","none","borderTopLeftRadius","borderBottomLeftRadius","paddingLeft","paddingRight","gap","StyledFilterCloseButton","_ref4","borderTopRightRadius","borderBottomRightRadius","justifyContent","renderValue","selectionType","value","isDisabled","Array","isArray","_jsx","Box","children","Counter","length","size","Text","as","weight","_BaseFilterChip","_ref5","ref","_accessibilityProps$r","onClearButtonClick","label","_ref5$selectionType","onClick","onKeyDown","accessibilityProps","id","rest","_objectWithoutProperties","_excluded","isSelected","_jsxs","disabled","e","makeAccessible","role","getStyledProps","makeAnalyticsAttribute","metaAttribute","name","testID","whiteSpace","truncateAfterLines","ChevronDownIcon","_Fragment","Divider","orientation","variant","concat","CloseIcon","BaseFilterChip","assignWithoutSideEffects","React","forwardRef","MetaConstants"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
2
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
3
3
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
4
- import { useFloating, shift, flip, offset, arrow, autoUpdate, useTransitionStyles, useClick, useDismiss, useRole, useInteractions, FloatingPortal, FloatingFocusManager } from '@floating-ui/react';
4
+ import { useFloating, shift, flip, offset, arrow, autoUpdate, useTransitionStyles, useClick, useHover, useDismiss, useRole, useInteractions, FloatingPortal, FloatingFocusManager } from '@floating-ui/react';
5
5
  import React__default from 'react';
6
6
  import { PopoverContent } from './PopoverContent.js';
7
7
  import { ARROW_HEIGHT, ARROW_WIDTH } from './constants.js';
@@ -29,7 +29,7 @@ import { makeAccessible } from '../../utils/makeAccessible/makeAccessible.web.js
29
29
  import { makeAnalyticsAttribute } from '../../utils/makeAnalyticsAttribute/makeAnalyticsAttribute.js';
30
30
  import { PopupArrow } from '../PopupArrow/PopupArrow.web.js';
31
31
 
32
- var _excluded = ["content", "title", "titleLeading", "footer", "children", "placement", "onOpenChange", "zIndex", "isOpen", "defaultIsOpen", "initialFocusRef"];
32
+ var _excluded = ["content", "title", "titleLeading", "footer", "children", "placement", "onOpenChange", "zIndex", "isOpen", "defaultIsOpen", "initialFocusRef", "openInteraction"];
33
33
  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; }
34
34
  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; }
35
35
  var Popover = function Popover(_ref) {
@@ -46,6 +46,8 @@ var Popover = function Popover(_ref) {
46
46
  isOpen = _ref.isOpen,
47
47
  defaultIsOpen = _ref.defaultIsOpen,
48
48
  initialFocusRef = _ref.initialFocusRef,
49
+ _ref$openInteraction = _ref.openInteraction,
50
+ openInteraction = _ref$openInteraction === void 0 ? 'click' : _ref$openInteraction,
49
51
  rest = _objectWithoutProperties(_ref, _excluded);
50
52
  var _useTheme = useTheme(),
51
53
  theme = _useTheme.theme;
@@ -121,11 +123,14 @@ var Popover = function Popover(_ref) {
121
123
  // remove click handler if popover is controlled
122
124
  var isControlled = isOpen !== undefined;
123
125
  var click = useClick(context, {
124
- enabled: !isControlled
126
+ enabled: !isControlled && openInteraction === 'click'
127
+ });
128
+ var hover = useHover(context, {
129
+ enabled: !isControlled && openInteraction === 'hover'
125
130
  });
126
131
  var dismiss = useDismiss(context);
127
132
  var role = useRole(context);
128
- var _useInteractions = useInteractions([click, dismiss, role]),
133
+ var _useInteractions = useInteractions([click, dismiss, role, hover]),
129
134
  getReferenceProps = _useInteractions.getReferenceProps,
130
135
  getFloatingProps = _useInteractions.getFloatingProps;
131
136
  var triggerRef = React__default.useRef(null);
@@ -134,9 +139,10 @@ var Popover = function Popover(_ref) {
134
139
  return {
135
140
  close: close,
136
141
  defaultInitialFocusRef: defaultInitialFocusRef,
137
- titleId: titleId
142
+ titleId: titleId,
143
+ openInteraction: openInteraction
138
144
  };
139
- }, [close, titleId]);
145
+ }, [close, titleId, openInteraction]);
140
146
 
141
147
  // Inject aria attributes to trigger
142
148
  // Doing it this way instead of makeAccessible()
@@ -158,7 +164,7 @@ var Popover = function Popover(_ref) {
158
164
  ref: mergedRef
159
165
  }, mergeProps(children.props, getReferenceProps()))), isMounted && /*#__PURE__*/jsx(FloatingPortal, {
160
166
  children: /*#__PURE__*/jsx(FloatingFocusManager, {
161
- initialFocus: initialFocusRef !== null && initialFocusRef !== void 0 ? initialFocusRef : defaultInitialFocusRef,
167
+ initialFocus: initialFocusRef !== null && initialFocusRef !== void 0 ? initialFocusRef : openInteraction === 'hover' ? -1 : defaultInitialFocusRef,
162
168
  context: context,
163
169
  modal: true,
164
170
  guards: true,
@@ -1 +1 @@
1
- {"version":3,"file":"Popover.web.js","sources":["../../../../../../src/components/Popover/Popover.web.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/restrict-plus-operands */\nimport {\n shift,\n FloatingPortal,\n arrow,\n flip,\n offset,\n useFloating,\n useInteractions,\n useRole,\n useTransitionStyles,\n autoUpdate,\n useClick,\n useDismiss,\n FloatingFocusManager,\n} from '@floating-ui/react';\nimport React from 'react';\nimport type { PopoverProps } from './types';\nimport { PopoverContent } from './PopoverContent';\nimport { ARROW_HEIGHT, ARROW_WIDTH } from './constants';\nimport { PopoverContext } from './PopoverContext';\nimport { useTheme } from '~components/BladeProvider';\nimport BaseBox from '~components/Box/BaseBox';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { size } from '~tokens/global';\nimport { useControllableState } from '~utils/useControllable';\nimport { mergeProps } from '~utils/mergeProps';\nimport { PopupArrow } from '~components/PopupArrow';\nimport { useMergeRefs } from '~utils/useMergeRefs';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { useId } from '~utils/useId';\nimport { getFloatingPlacementParts } from '~utils/getFloatingPlacementParts';\nimport { componentZIndices } from '~utils/componentZIndices';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\nconst Popover = ({\n content,\n title,\n titleLeading,\n footer,\n children,\n placement = 'top',\n onOpenChange,\n zIndex = componentZIndices.popover,\n isOpen,\n defaultIsOpen,\n initialFocusRef,\n ...rest\n}: PopoverProps): React.ReactElement => {\n const { theme } = useTheme();\n const defaultInitialFocusRef = React.useRef<HTMLButtonElement>(null);\n const arrowRef = React.useRef<SVGSVGElement>(null);\n const titleId = useId('popover-title');\n\n const GAP = theme.spacing[2];\n const [side] = getFloatingPlacementParts(placement);\n const isHorizontal = side === 'left' || side === 'right';\n const isOppositeAxis = side === 'right' || side === 'bottom';\n\n const [controllableIsOpen, controllableSetIsOpen] = useControllableState({\n value: isOpen,\n defaultValue: defaultIsOpen,\n onChange: (isOpen) => onOpenChange?.({ isOpen }),\n });\n\n const { refs, floatingStyles, context, placement: computedPlacement } = useFloating({\n open: controllableIsOpen,\n onOpenChange: (isOpen) => controllableSetIsOpen(() => isOpen),\n placement,\n strategy: 'fixed',\n middleware: [\n shift({ crossAxis: false, padding: GAP }),\n flip({ padding: GAP, fallbackAxisSideDirection: 'end' }),\n offset(GAP + ARROW_HEIGHT),\n arrow({\n element: arrowRef,\n padding: isHorizontal ? GAP + ARROW_HEIGHT : ARROW_WIDTH,\n }),\n ],\n whileElementsMounted: autoUpdate,\n });\n\n const close = React.useCallback(() => {\n controllableSetIsOpen(() => false);\n }, [controllableSetIsOpen]);\n\n // we need to animate from the offset of the computed placement\n // because placement can change dynamically based on available space\n const [computedSide] = getFloatingPlacementParts(computedPlacement);\n const computedIsHorizontal = computedSide === 'left' || computedSide === 'right';\n const animationOffset = isOppositeAxis ? -size[4] : size[4];\n const { isMounted, styles } = useTransitionStyles(context, {\n duration: theme.motion.duration.quick,\n initial: {\n opacity: 0,\n transform: `translate${computedIsHorizontal ? 'X' : 'Y'}(${animationOffset}px)`,\n },\n });\n\n // remove click handler if popover is controlled\n const isControlled = isOpen !== undefined;\n const click = useClick(context, { enabled: !isControlled });\n const dismiss = useDismiss(context);\n const role = useRole(context);\n\n const { getReferenceProps, getFloatingProps } = useInteractions([click, dismiss, role]);\n const triggerRef = React.useRef<HTMLButtonElement>(null);\n const mergedRef = useMergeRefs(refs.setReference, triggerRef);\n\n const contextValue = React.useMemo(() => {\n return {\n close,\n defaultInitialFocusRef,\n titleId,\n };\n }, [close, titleId]);\n\n // Inject aria attributes to trigger\n // Doing it this way instead of makeAccessible()\n // because with makeAccessible we will need to make sure aria-controls, aria-expanded etc\n // are exposed from the trigger component prop, which we cannot ensure\n React.useLayoutEffect(() => {\n if (!triggerRef.current) return;\n\n const props = getReferenceProps() as Record<string, string>;\n for (const key of Object.keys(props)) {\n if (key.startsWith('aria-')) {\n triggerRef.current.setAttribute(key, props[key]);\n }\n }\n }, [getReferenceProps, triggerRef]);\n\n return (\n <PopoverContext.Provider value={contextValue}>\n {/* Cloning the trigger children to enhance it with ref and event handler */}\n {React.cloneElement(children, {\n ref: mergedRef,\n ...mergeProps(children.props, getReferenceProps()),\n })}\n {isMounted && (\n <FloatingPortal>\n <FloatingFocusManager\n initialFocus={initialFocusRef ?? defaultInitialFocusRef}\n context={context}\n modal={true}\n guards={true}\n >\n <BaseBox\n ref={refs.setFloating}\n style={floatingStyles}\n // TODO: Tokenize zIndex values\n zIndex={zIndex}\n {...getFloatingProps()}\n {...metaAttribute({ name: MetaConstants.Popover })}\n {...makeAccessible({ labelledBy: titleId })}\n {...makeAnalyticsAttribute(rest)}\n >\n <PopoverContent\n title={title}\n titleLeading={titleLeading}\n footer={footer}\n style={styles}\n arrow={\n <PopupArrow\n ref={arrowRef}\n context={context}\n width={ARROW_WIDTH}\n height={ARROW_HEIGHT}\n fillColor={theme.colors.popup.background.subtle}\n strokeColor={theme.colors.popup.border.subtle}\n />\n }\n >\n {content}\n </PopoverContent>\n </BaseBox>\n </FloatingFocusManager>\n </FloatingPortal>\n )}\n </PopoverContext.Provider>\n );\n};\n\nexport { Popover };\n"],"names":["Popover","_ref","content","title","titleLeading","footer","children","_ref$placement","placement","onOpenChange","_ref$zIndex","zIndex","componentZIndices","popover","isOpen","defaultIsOpen","initialFocusRef","rest","_objectWithoutProperties","_excluded","_useTheme","useTheme","theme","defaultInitialFocusRef","React","useRef","arrowRef","titleId","useId","GAP","spacing","_getFloatingPlacement","getFloatingPlacementParts","_getFloatingPlacement2","_slicedToArray","side","isHorizontal","isOppositeAxis","_useControllableState","useControllableState","value","defaultValue","onChange","_useControllableState2","controllableIsOpen","controllableSetIsOpen","_useFloating","useFloating","open","strategy","middleware","shift","crossAxis","padding","flip","fallbackAxisSideDirection","offset","ARROW_HEIGHT","arrow","element","ARROW_WIDTH","whileElementsMounted","autoUpdate","refs","floatingStyles","context","computedPlacement","close","useCallback","_getFloatingPlacement3","_getFloatingPlacement4","computedSide","computedIsHorizontal","animationOffset","size","_useTransitionStyles","useTransitionStyles","duration","motion","quick","initial","opacity","transform","concat","isMounted","styles","isControlled","undefined","click","useClick","enabled","dismiss","useDismiss","role","useRole","_useInteractions","useInteractions","getReferenceProps","getFloatingProps","triggerRef","mergedRef","useMergeRefs","setReference","contextValue","useMemo","useLayoutEffect","current","props","_i","_Object$keys","Object","keys","length","key","startsWith","setAttribute","_jsxs","PopoverContext","Provider","cloneElement","_objectSpread","ref","mergeProps","_jsx","FloatingPortal","FloatingFocusManager","initialFocus","modal","guards","BaseBox","setFloating","style","metaAttribute","name","MetaConstants","makeAccessible","labelledBy","makeAnalyticsAttribute","PopoverContent","PopupArrow","width","height","fillColor","colors","popup","background","subtle","strokeColor","border"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCA,IAAMA,OAAO,GAAG,SAAVA,OAAOA,CAAAC,IAAA,EAa2B;AAAA,EAAA,IAZtCC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IACPC,KAAK,GAAAF,IAAA,CAALE,KAAK;IACLC,YAAY,GAAAH,IAAA,CAAZG,YAAY;IACZC,MAAM,GAAAJ,IAAA,CAANI,MAAM;IACNC,QAAQ,GAAAL,IAAA,CAARK,QAAQ;IAAAC,cAAA,GAAAN,IAAA,CACRO,SAAS;AAATA,IAAAA,SAAS,GAAAD,cAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,cAAA;IACjBE,YAAY,GAAAR,IAAA,CAAZQ,YAAY;IAAAC,WAAA,GAAAT,IAAA,CACZU,MAAM;AAANA,IAAAA,MAAM,GAAAD,WAAA,KAAA,KAAA,CAAA,GAAGE,iBAAiB,CAACC,OAAO,GAAAH,WAAA;IAClCI,MAAM,GAAAb,IAAA,CAANa,MAAM;IACNC,aAAa,GAAAd,IAAA,CAAbc,aAAa;IACbC,eAAe,GAAAf,IAAA,CAAfe,eAAe;AACZC,IAAAA,IAAI,GAAAC,wBAAA,CAAAjB,IAAA,EAAAkB,SAAA,CAAA,CAAA;AAEP,EAAA,IAAAC,SAAA,GAAkBC,QAAQ,EAAE;IAApBC,KAAK,GAAAF,SAAA,CAALE,KAAK,CAAA;AACb,EAAA,IAAMC,sBAAsB,GAAGC,cAAK,CAACC,MAAM,CAAoB,IAAI,CAAC,CAAA;AACpE,EAAA,IAAMC,QAAQ,GAAGF,cAAK,CAACC,MAAM,CAAgB,IAAI,CAAC,CAAA;AAClD,EAAA,IAAME,OAAO,GAAGC,KAAK,CAAC,eAAe,CAAC,CAAA;AAEtC,EAAA,IAAMC,GAAG,GAAGP,KAAK,CAACQ,OAAO,CAAC,CAAC,CAAC,CAAA;AAC5B,EAAA,IAAAC,qBAAA,GAAeC,yBAAyB,CAACxB,SAAS,CAAC;IAAAyB,sBAAA,GAAAC,cAAA,CAAAH,qBAAA,EAAA,CAAA,CAAA;AAA5CI,IAAAA,IAAI,GAAAF,sBAAA,CAAA,CAAA,CAAA,CAAA;EACX,IAAMG,YAAY,GAAGD,IAAI,KAAK,MAAM,IAAIA,IAAI,KAAK,OAAO,CAAA;EACxD,IAAME,cAAc,GAAGF,IAAI,KAAK,OAAO,IAAIA,IAAI,KAAK,QAAQ,CAAA;EAE5D,IAAAG,qBAAA,GAAoDC,oBAAoB,CAAC;AACvEC,MAAAA,KAAK,EAAE1B,MAAM;AACb2B,MAAAA,YAAY,EAAE1B,aAAa;AAC3B2B,MAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAG5B,MAAM,EAAA;AAAA,QAAA,OAAKL,YAAY,KAAA,IAAA,IAAZA,YAAY,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZA,YAAY,CAAG;AAAEK,UAAAA,MAAM,EAANA,MAAAA;AAAO,SAAC,CAAC,CAAA;AAAA,OAAA;AAClD,KAAC,CAAC;IAAA6B,sBAAA,GAAAT,cAAA,CAAAI,qBAAA,EAAA,CAAA,CAAA;AAJKM,IAAAA,kBAAkB,GAAAD,sBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,qBAAqB,GAAAF,sBAAA,CAAA,CAAA,CAAA,CAAA;EAMhD,IAAAG,YAAA,GAAwEC,WAAW,CAAC;AAClFC,MAAAA,IAAI,EAAEJ,kBAAkB;AACxBnC,MAAAA,YAAY,EAAE,SAAdA,YAAYA,CAAGK,MAAM,EAAA;AAAA,QAAA,OAAK+B,qBAAqB,CAAC,YAAA;AAAA,UAAA,OAAM/B,MAAM,CAAA;SAAC,CAAA,CAAA;AAAA,OAAA;AAC7DN,MAAAA,SAAS,EAATA,SAAS;AACTyC,MAAAA,QAAQ,EAAE,OAAO;MACjBC,UAAU,EAAE,CACVC,KAAK,CAAC;AAAEC,QAAAA,SAAS,EAAE,KAAK;AAAEC,QAAAA,OAAO,EAAExB,GAAAA;OAAK,CAAC,EACzCyB,IAAI,CAAC;AAAED,QAAAA,OAAO,EAAExB,GAAG;AAAE0B,QAAAA,yBAAyB,EAAE,KAAA;OAAO,CAAC,EACxDC,MAAM,CAAC3B,GAAG,GAAG4B,YAAY,CAAC,EAC1BC,KAAK,CAAC;AACJC,QAAAA,OAAO,EAAEjC,QAAQ;AACjB2B,QAAAA,OAAO,EAAEjB,YAAY,GAAGP,GAAG,GAAG4B,YAAY,GAAGG,WAAAA;AAC/C,OAAC,CAAC,CACH;AACDC,MAAAA,oBAAoB,EAAEC,UAAAA;AACxB,KAAC,CAAC;IAfMC,IAAI,GAAAjB,YAAA,CAAJiB,IAAI;IAAEC,cAAc,GAAAlB,YAAA,CAAdkB,cAAc;IAAEC,OAAO,GAAAnB,YAAA,CAAPmB,OAAO;IAAaC,iBAAiB,GAAApB,YAAA,CAA5BtC,SAAS,CAAA;AAiBhD,EAAA,IAAM2D,KAAK,GAAG3C,cAAK,CAAC4C,WAAW,CAAC,YAAM;AACpCvB,IAAAA,qBAAqB,CAAC,YAAA;AAAA,MAAA,OAAM,KAAK,CAAA;KAAC,CAAA,CAAA;AACpC,GAAC,EAAE,CAACA,qBAAqB,CAAC,CAAC,CAAA;;AAE3B;AACA;AACA,EAAA,IAAAwB,sBAAA,GAAuBrC,yBAAyB,CAACkC,iBAAiB,CAAC;IAAAI,sBAAA,GAAApC,cAAA,CAAAmC,sBAAA,EAAA,CAAA,CAAA;AAA5DE,IAAAA,YAAY,GAAAD,sBAAA,CAAA,CAAA,CAAA,CAAA;EACnB,IAAME,oBAAoB,GAAGD,YAAY,KAAK,MAAM,IAAIA,YAAY,KAAK,OAAO,CAAA;AAChF,EAAA,IAAME,eAAe,GAAGpC,cAAc,GAAG,CAACqC,IAAI,CAAC,CAAC,CAAC,GAAGA,IAAI,CAAC,CAAC,CAAC,CAAA;AAC3D,EAAA,IAAAC,oBAAA,GAA8BC,mBAAmB,CAACX,OAAO,EAAE;AACzDY,MAAAA,QAAQ,EAAEvD,KAAK,CAACwD,MAAM,CAACD,QAAQ,CAACE,KAAK;AACrCC,MAAAA,OAAO,EAAE;AACPC,QAAAA,OAAO,EAAE,CAAC;QACVC,SAAS,EAAA,WAAA,CAAAC,MAAA,CAAcX,oBAAoB,GAAG,GAAG,GAAG,GAAG,EAAA,GAAA,CAAA,CAAAW,MAAA,CAAIV,eAAe,EAAA,KAAA,CAAA;AAC5E,OAAA;AACF,KAAC,CAAC;IANMW,SAAS,GAAAT,oBAAA,CAATS,SAAS;IAAEC,MAAM,GAAAV,oBAAA,CAANU,MAAM,CAAA;;AAQzB;AACA,EAAA,IAAMC,YAAY,GAAGxE,MAAM,KAAKyE,SAAS,CAAA;AACzC,EAAA,IAAMC,KAAK,GAAGC,QAAQ,CAACxB,OAAO,EAAE;AAAEyB,IAAAA,OAAO,EAAE,CAACJ,YAAAA;AAAa,GAAC,CAAC,CAAA;AAC3D,EAAA,IAAMK,OAAO,GAAGC,UAAU,CAAC3B,OAAO,CAAC,CAAA;AACnC,EAAA,IAAM4B,IAAI,GAAGC,OAAO,CAAC7B,OAAO,CAAC,CAAA;EAE7B,IAAA8B,gBAAA,GAAgDC,eAAe,CAAC,CAACR,KAAK,EAAEG,OAAO,EAAEE,IAAI,CAAC,CAAC;IAA/EI,iBAAiB,GAAAF,gBAAA,CAAjBE,iBAAiB;IAAEC,gBAAgB,GAAAH,gBAAA,CAAhBG,gBAAgB,CAAA;AAC3C,EAAA,IAAMC,UAAU,GAAG3E,cAAK,CAACC,MAAM,CAAoB,IAAI,CAAC,CAAA;EACxD,IAAM2E,SAAS,GAAGC,YAAY,CAACtC,IAAI,CAACuC,YAAY,EAAEH,UAAU,CAAC,CAAA;AAE7D,EAAA,IAAMI,YAAY,GAAG/E,cAAK,CAACgF,OAAO,CAAC,YAAM;IACvC,OAAO;AACLrC,MAAAA,KAAK,EAALA,KAAK;AACL5C,MAAAA,sBAAsB,EAAtBA,sBAAsB;AACtBI,MAAAA,OAAO,EAAPA,OAAAA;KACD,CAAA;AACH,GAAC,EAAE,CAACwC,KAAK,EAAExC,OAAO,CAAC,CAAC,CAAA;;AAEpB;AACA;AACA;AACA;EACAH,cAAK,CAACiF,eAAe,CAAC,YAAM;AAC1B,IAAA,IAAI,CAACN,UAAU,CAACO,OAAO,EAAE,OAAA;AAEzB,IAAA,IAAMC,KAAK,GAAGV,iBAAiB,EAA4B,CAAA;AAC3D,IAAA,KAAA,IAAAW,EAAA,GAAAC,CAAAA,EAAAA,YAAA,GAAkBC,MAAM,CAACC,IAAI,CAACJ,KAAK,CAAC,EAAAC,EAAA,GAAAC,YAAA,CAAAG,MAAA,EAAAJ,EAAA,EAAE,EAAA;AAAjC,MAAA,IAAMK,GAAG,GAAAJ,YAAA,CAAAD,EAAA,CAAA,CAAA;AACZ,MAAA,IAAIK,GAAG,CAACC,UAAU,CAAC,OAAO,CAAC,EAAE;QAC3Bf,UAAU,CAACO,OAAO,CAACS,YAAY,CAACF,GAAG,EAAEN,KAAK,CAACM,GAAG,CAAC,CAAC,CAAA;AAClD,OAAA;AACF,KAAA;AACF,GAAC,EAAE,CAAChB,iBAAiB,EAAEE,UAAU,CAAC,CAAC,CAAA;AAEnC,EAAA,oBACEiB,IAAA,CAACC,cAAc,CAACC,QAAQ,EAAA;AAAC9E,IAAAA,KAAK,EAAE+D,YAAa;AAAAjG,IAAAA,QAAA,gBAE1CkB,cAAK,CAAC+F,YAAY,CAACjH,QAAQ,EAAAkH,aAAA,CAAA;AAC1BC,MAAAA,GAAG,EAAErB,SAAAA;AAAS,KAAA,EACXsB,UAAU,CAACpH,QAAQ,CAACqG,KAAK,EAAEV,iBAAiB,EAAE,CAAC,CACnD,CAAC,EACDb,SAAS,iBACRuC,GAAA,CAACC,cAAc,EAAA;MAAAtH,QAAA,eACbqH,GAAA,CAACE,oBAAoB,EAAA;AACnBC,QAAAA,YAAY,EAAE9G,eAAe,KAAA,IAAA,IAAfA,eAAe,KAAfA,KAAAA,CAAAA,GAAAA,eAAe,GAAIO,sBAAuB;AACxD0C,QAAAA,OAAO,EAAEA,OAAQ;AACjB8D,QAAAA,KAAK,EAAE,IAAK;AACZC,QAAAA,MAAM,EAAE,IAAK;AAAA1H,QAAAA,QAAA,eAEbqH,GAAA,CAACM,OAAO,EAAAT,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAA;UACNC,GAAG,EAAE1D,IAAI,CAACmE,WAAY;AACtBC,UAAAA,KAAK,EAAEnE,cAAAA;AACP;AAAA;AACArD,UAAAA,MAAM,EAAEA,MAAAA;AAAO,SAAA,EACXuF,gBAAgB,EAAE,CAAA,EAClBkC,aAAa,CAAC;UAAEC,IAAI,EAAEC,aAAa,CAACtI,OAAAA;SAAS,CAAC,CAC9CuI,EAAAA,cAAc,CAAC;AAAEC,UAAAA,UAAU,EAAE7G,OAAAA;AAAQ,SAAC,CAAC,CAAA,EACvC8G,sBAAsB,CAACxH,IAAI,CAAC,CAAA,EAAA,EAAA,EAAA;UAAAX,QAAA,eAEhCqH,GAAA,CAACe,cAAc,EAAA;AACbvI,YAAAA,KAAK,EAAEA,KAAM;AACbC,YAAAA,YAAY,EAAEA,YAAa;AAC3BC,YAAAA,MAAM,EAAEA,MAAO;AACf8H,YAAAA,KAAK,EAAE9C,MAAO;YACd3B,KAAK,eACHiE,GAAA,CAACgB,UAAU,EAAA;AACTlB,cAAAA,GAAG,EAAE/F,QAAS;AACduC,cAAAA,OAAO,EAAEA,OAAQ;AACjB2E,cAAAA,KAAK,EAAEhF,WAAY;AACnBiF,cAAAA,MAAM,EAAEpF,YAAa;cACrBqF,SAAS,EAAExH,KAAK,CAACyH,MAAM,CAACC,KAAK,CAACC,UAAU,CAACC,MAAO;cAChDC,WAAW,EAAE7H,KAAK,CAACyH,MAAM,CAACC,KAAK,CAACI,MAAM,CAACF,MAAAA;AAAO,aAC/C,CACF;AAAA5I,YAAAA,QAAA,EAEAJ,OAAAA;WACa,CAAA;SACT,CAAA,CAAA;OACW,CAAA;AAAC,KACT,CACjB,CAAA;AAAA,GACsB,CAAC,CAAA;AAE9B;;;;"}
1
+ {"version":3,"file":"Popover.web.js","sources":["../../../../../../src/components/Popover/Popover.web.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/restrict-plus-operands */\nimport {\n shift,\n FloatingPortal,\n arrow,\n flip,\n offset,\n useFloating,\n useInteractions,\n useRole,\n useTransitionStyles,\n autoUpdate,\n useClick,\n useHover,\n useDismiss,\n FloatingFocusManager,\n} from '@floating-ui/react';\nimport React from 'react';\nimport type { PopoverProps } from './types';\nimport { PopoverContent } from './PopoverContent';\nimport { ARROW_HEIGHT, ARROW_WIDTH } from './constants';\nimport { PopoverContext } from './PopoverContext';\nimport { useTheme } from '~components/BladeProvider';\nimport BaseBox from '~components/Box/BaseBox';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { size } from '~tokens/global';\nimport { useControllableState } from '~utils/useControllable';\nimport { mergeProps } from '~utils/mergeProps';\nimport { PopupArrow } from '~components/PopupArrow';\nimport { useMergeRefs } from '~utils/useMergeRefs';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { useId } from '~utils/useId';\nimport { getFloatingPlacementParts } from '~utils/getFloatingPlacementParts';\nimport { componentZIndices } from '~utils/componentZIndices';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\nconst Popover = ({\n content,\n title,\n titleLeading,\n footer,\n children,\n placement = 'top',\n onOpenChange,\n zIndex = componentZIndices.popover,\n isOpen,\n defaultIsOpen,\n initialFocusRef,\n openInteraction = 'click',\n ...rest\n}: PopoverProps): React.ReactElement => {\n const { theme } = useTheme();\n const defaultInitialFocusRef = React.useRef<HTMLButtonElement>(null);\n const arrowRef = React.useRef<SVGSVGElement>(null);\n const titleId = useId('popover-title');\n\n const GAP = theme.spacing[2];\n const [side] = getFloatingPlacementParts(placement);\n const isHorizontal = side === 'left' || side === 'right';\n const isOppositeAxis = side === 'right' || side === 'bottom';\n\n const [controllableIsOpen, controllableSetIsOpen] = useControllableState({\n value: isOpen,\n defaultValue: defaultIsOpen,\n onChange: (isOpen) => onOpenChange?.({ isOpen }),\n });\n\n const { refs, floatingStyles, context, placement: computedPlacement } = useFloating({\n open: controllableIsOpen,\n onOpenChange: (isOpen) => controllableSetIsOpen(() => isOpen),\n placement,\n strategy: 'fixed',\n middleware: [\n shift({ crossAxis: false, padding: GAP }),\n flip({ padding: GAP, fallbackAxisSideDirection: 'end' }),\n offset(GAP + ARROW_HEIGHT),\n arrow({\n element: arrowRef,\n padding: isHorizontal ? GAP + ARROW_HEIGHT : ARROW_WIDTH,\n }),\n ],\n whileElementsMounted: autoUpdate,\n });\n\n const close = React.useCallback(() => {\n controllableSetIsOpen(() => false);\n }, [controllableSetIsOpen]);\n\n // we need to animate from the offset of the computed placement\n // because placement can change dynamically based on available space\n const [computedSide] = getFloatingPlacementParts(computedPlacement);\n const computedIsHorizontal = computedSide === 'left' || computedSide === 'right';\n const animationOffset = isOppositeAxis ? -size[4] : size[4];\n const { isMounted, styles } = useTransitionStyles(context, {\n duration: theme.motion.duration.quick,\n initial: {\n opacity: 0,\n transform: `translate${computedIsHorizontal ? 'X' : 'Y'}(${animationOffset}px)`,\n },\n });\n\n // remove click handler if popover is controlled\n const isControlled = isOpen !== undefined;\n const click = useClick(context, { enabled: !isControlled && openInteraction === 'click' });\n const hover = useHover(context, { enabled: !isControlled && openInteraction === 'hover' });\n const dismiss = useDismiss(context);\n const role = useRole(context);\n\n const { getReferenceProps, getFloatingProps } = useInteractions([click, dismiss, role, hover]);\n const triggerRef = React.useRef<HTMLButtonElement>(null);\n const mergedRef = useMergeRefs(refs.setReference, triggerRef);\n\n const contextValue = React.useMemo(() => {\n return {\n close,\n defaultInitialFocusRef,\n titleId,\n openInteraction,\n };\n }, [close, titleId, openInteraction]);\n\n // Inject aria attributes to trigger\n // Doing it this way instead of makeAccessible()\n // because with makeAccessible we will need to make sure aria-controls, aria-expanded etc\n // are exposed from the trigger component prop, which we cannot ensure\n React.useLayoutEffect(() => {\n if (!triggerRef.current) return;\n\n const props = getReferenceProps() as Record<string, string>;\n for (const key of Object.keys(props)) {\n if (key.startsWith('aria-')) {\n triggerRef.current.setAttribute(key, props[key]);\n }\n }\n }, [getReferenceProps, triggerRef]);\n\n return (\n <PopoverContext.Provider value={contextValue}>\n {/* Cloning the trigger children to enhance it with ref and event handler */}\n {React.cloneElement(children, {\n ref: mergedRef,\n ...mergeProps(children.props, getReferenceProps()),\n })}\n {isMounted && (\n <FloatingPortal>\n <FloatingFocusManager\n initialFocus={\n initialFocusRef ?? (openInteraction === 'hover' ? -1 : defaultInitialFocusRef)\n }\n context={context}\n modal={true}\n guards={true}\n >\n <BaseBox\n ref={refs.setFloating}\n style={floatingStyles}\n // TODO: Tokenize zIndex values\n zIndex={zIndex}\n {...getFloatingProps()}\n {...metaAttribute({ name: MetaConstants.Popover })}\n {...makeAccessible({ labelledBy: titleId })}\n {...makeAnalyticsAttribute(rest)}\n >\n <PopoverContent\n title={title}\n titleLeading={titleLeading}\n footer={footer}\n style={styles}\n arrow={\n <PopupArrow\n ref={arrowRef}\n context={context}\n width={ARROW_WIDTH}\n height={ARROW_HEIGHT}\n fillColor={theme.colors.popup.background.subtle}\n strokeColor={theme.colors.popup.border.subtle}\n />\n }\n >\n {content}\n </PopoverContent>\n </BaseBox>\n </FloatingFocusManager>\n </FloatingPortal>\n )}\n </PopoverContext.Provider>\n );\n};\n\nexport { Popover };\n"],"names":["Popover","_ref","content","title","titleLeading","footer","children","_ref$placement","placement","onOpenChange","_ref$zIndex","zIndex","componentZIndices","popover","isOpen","defaultIsOpen","initialFocusRef","_ref$openInteraction","openInteraction","rest","_objectWithoutProperties","_excluded","_useTheme","useTheme","theme","defaultInitialFocusRef","React","useRef","arrowRef","titleId","useId","GAP","spacing","_getFloatingPlacement","getFloatingPlacementParts","_getFloatingPlacement2","_slicedToArray","side","isHorizontal","isOppositeAxis","_useControllableState","useControllableState","value","defaultValue","onChange","_useControllableState2","controllableIsOpen","controllableSetIsOpen","_useFloating","useFloating","open","strategy","middleware","shift","crossAxis","padding","flip","fallbackAxisSideDirection","offset","ARROW_HEIGHT","arrow","element","ARROW_WIDTH","whileElementsMounted","autoUpdate","refs","floatingStyles","context","computedPlacement","close","useCallback","_getFloatingPlacement3","_getFloatingPlacement4","computedSide","computedIsHorizontal","animationOffset","size","_useTransitionStyles","useTransitionStyles","duration","motion","quick","initial","opacity","transform","concat","isMounted","styles","isControlled","undefined","click","useClick","enabled","hover","useHover","dismiss","useDismiss","role","useRole","_useInteractions","useInteractions","getReferenceProps","getFloatingProps","triggerRef","mergedRef","useMergeRefs","setReference","contextValue","useMemo","useLayoutEffect","current","props","_i","_Object$keys","Object","keys","length","key","startsWith","setAttribute","_jsxs","PopoverContext","Provider","cloneElement","_objectSpread","ref","mergeProps","_jsx","FloatingPortal","FloatingFocusManager","initialFocus","modal","guards","BaseBox","setFloating","style","metaAttribute","name","MetaConstants","makeAccessible","labelledBy","makeAnalyticsAttribute","PopoverContent","PopupArrow","width","height","fillColor","colors","popup","background","subtle","strokeColor","border"],"mappings":"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"}
@@ -16,9 +16,14 @@ var PopoverHeader = function PopoverHeader(_ref) {
16
16
  var title = _ref.title,
17
17
  titleLeading = _ref.titleLeading;
18
18
  var _usePopoverContext = usePopoverContext(),
19
- titleId = _usePopoverContext.titleId;
19
+ titleId = _usePopoverContext.titleId,
20
+ openInteraction = _usePopoverContext.openInteraction;
21
+ var showCloseButton = openInteraction === 'click';
20
22
  var isFloating = !(title || titleLeading);
21
23
  if (isFloating) {
24
+ if (!showCloseButton) {
25
+ return null;
26
+ }
22
27
  return /*#__PURE__*/jsx(BaseBox, {
23
28
  borderRadius: "max",
24
29
  position: "absolute",
@@ -45,10 +50,10 @@ var PopoverHeader = function PopoverHeader(_ref) {
45
50
  weight: "semibold",
46
51
  children: title
47
52
  })
48
- }) : null, /*#__PURE__*/jsx(BaseBox, {
53
+ }) : null, showCloseButton ? /*#__PURE__*/jsx(BaseBox, {
49
54
  marginLeft: "auto",
50
55
  children: /*#__PURE__*/jsx(PopoverCloseButton, {})
51
- })]
56
+ }) : null]
52
57
  });
53
58
  };
54
59
  var PopoverContent = /*#__PURE__*/React__default.forwardRef(function (_ref2, ref) {
@@ -1 +1 @@
1
- {"version":3,"file":"PopoverContent.js","sources":["../../../../../../src/components/Popover/PopoverContent.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */\nimport React from 'react';\nimport { PopoverContentWrapper } from './PopoverContentWrapper';\nimport type { PopoverContentProps } from './types';\nimport { PopoverCloseButton } from './PopoverCloseButton';\nimport { usePopoverContext } from './PopoverContext';\nimport BaseBox from '~components/Box/BaseBox';\nimport { Text } from '~components/Typography';\nimport { isReactNative } from '~utils';\nimport { useIsMobile } from '~utils/useIsMobile';\n\ntype PopoverHeaderProps = {\n title?: string;\n titleLeading?: React.ReactNode;\n};\n\nconst PopoverHeader = ({ title, titleLeading }: PopoverHeaderProps): React.ReactElement => {\n const { titleId } = usePopoverContext();\n\n const isFloating = !(title || titleLeading);\n if (isFloating) {\n return (\n <BaseBox\n borderRadius=\"max\"\n position=\"absolute\"\n padding=\"spacing.2\"\n top=\"spacing.2\"\n right=\"spacing.2\"\n zIndex={1}\n >\n <PopoverCloseButton />\n </BaseBox>\n );\n }\n\n return (\n <BaseBox\n display=\"flex\"\n flexDirection=\"row\"\n flexWrap={isReactNative() ? 'wrap' : 'nowrap'}\n alignItems=\"center\"\n gap=\"spacing.3\"\n >\n {titleLeading\n ? React.cloneElement(titleLeading as React.ReactElement, { size: 'large' })\n : null}\n {title ? (\n <BaseBox id={titleId} paddingRight=\"spacing.4\">\n <Text size=\"large\" weight=\"semibold\">\n {title}\n </Text>\n </BaseBox>\n ) : null}\n <BaseBox marginLeft=\"auto\">\n <PopoverCloseButton />\n </BaseBox>\n </BaseBox>\n );\n};\n\nconst PopoverContent = React.forwardRef<HTMLDivElement, PopoverContentProps>(\n ({ children, title, titleLeading, footer, arrow, side, style, isVisible }, ref) => {\n const isMobile = useIsMobile();\n return (\n <PopoverContentWrapper\n ref={ref as never}\n styles={style}\n side={side}\n isVisible={isVisible}\n isMobile={isMobile}\n >\n <BaseBox padding=\"spacing.4\" display=\"flex\" flexDirection=\"column\" gap=\"spacing.4\">\n <PopoverHeader title={title} titleLeading={titleLeading} />\n <BaseBox>{children}</BaseBox>\n {footer ? <BaseBox>{footer}</BaseBox> : null}\n </BaseBox>\n {arrow}\n </PopoverContentWrapper>\n );\n },\n);\n\nexport { PopoverContent };\n"],"names":["PopoverHeader","_ref","title","titleLeading","_usePopoverContext","usePopoverContext","titleId","isFloating","_jsx","BaseBox","borderRadius","position","padding","top","right","zIndex","children","PopoverCloseButton","_jsxs","display","flexDirection","flexWrap","isReactNative","alignItems","gap","React","cloneElement","size","id","paddingRight","Text","weight","marginLeft","PopoverContent","forwardRef","_ref2","ref","footer","arrow","side","style","isVisible","isMobile","useIsMobile","PopoverContentWrapper","styles"],"mappings":";;;;;;;;;;;;;AAAA;AAgBA,IAAMA,aAAa,GAAG,SAAhBA,aAAaA,CAAAC,IAAA,EAAwE;AAAA,EAAA,IAAlEC,KAAK,GAAAD,IAAA,CAALC,KAAK;IAAEC,YAAY,GAAAF,IAAA,CAAZE,YAAY,CAAA;AAC1C,EAAA,IAAAC,kBAAA,GAAoBC,iBAAiB,EAAE;IAA/BC,OAAO,GAAAF,kBAAA,CAAPE,OAAO,CAAA;AAEf,EAAA,IAAMC,UAAU,GAAG,EAAEL,KAAK,IAAIC,YAAY,CAAC,CAAA;AAC3C,EAAA,IAAII,UAAU,EAAE;IACd,oBACEC,GAAA,CAACC,OAAO,EAAA;AACNC,MAAAA,YAAY,EAAC,KAAK;AAClBC,MAAAA,QAAQ,EAAC,UAAU;AACnBC,MAAAA,OAAO,EAAC,WAAW;AACnBC,MAAAA,GAAG,EAAC,WAAW;AACfC,MAAAA,KAAK,EAAC,WAAW;AACjBC,MAAAA,MAAM,EAAE,CAAE;AAAAC,MAAAA,QAAA,eAEVR,GAAA,CAACS,kBAAkB,EAAE,EAAA,CAAA;AAAC,KACf,CAAC,CAAA;AAEd,GAAA;EAEA,oBACEC,IAAA,CAACT,OAAO,EAAA;AACNU,IAAAA,OAAO,EAAC,MAAM;AACdC,IAAAA,aAAa,EAAC,KAAK;AACnBC,IAAAA,QAAQ,EAAEC,aAAa,EAAE,GAAG,MAAM,GAAG,QAAS;AAC9CC,IAAAA,UAAU,EAAC,QAAQ;AACnBC,IAAAA,GAAG,EAAC,WAAW;IAAAR,QAAA,EAAA,CAEdb,YAAY,gBACTsB,cAAK,CAACC,YAAY,CAACvB,YAAY,EAAwB;AAAEwB,MAAAA,IAAI,EAAE,OAAA;KAAS,CAAC,GACzE,IAAI,EACPzB,KAAK,gBACJM,GAAA,CAACC,OAAO,EAAA;AAACmB,MAAAA,EAAE,EAAEtB,OAAQ;AAACuB,MAAAA,YAAY,EAAC,WAAW;MAAAb,QAAA,eAC5CR,GAAA,CAACsB,IAAI,EAAA;AAACH,QAAAA,IAAI,EAAC,OAAO;AAACI,QAAAA,MAAM,EAAC,UAAU;AAAAf,QAAAA,QAAA,EACjCd,KAAAA;OACG,CAAA;AAAC,KACA,CAAC,GACR,IAAI,eACRM,GAAA,CAACC,OAAO,EAAA;AAACuB,MAAAA,UAAU,EAAC,MAAM;AAAAhB,MAAAA,QAAA,eACxBR,GAAA,CAACS,kBAAkB,EAAE,EAAA,CAAA;AAAC,KACf,CAAC,CAAA;AAAA,GACH,CAAC,CAAA;AAEd,CAAC,CAAA;AAEKgB,IAAAA,cAAc,gBAAGR,cAAK,CAACS,UAAU,CACrC,UAAAC,KAAA,EAA2EC,GAAG,EAAK;AAAA,EAAA,IAAhFpB,QAAQ,GAAAmB,KAAA,CAARnB,QAAQ;IAAEd,KAAK,GAAAiC,KAAA,CAALjC,KAAK;IAAEC,YAAY,GAAAgC,KAAA,CAAZhC,YAAY;IAAEkC,MAAM,GAAAF,KAAA,CAANE,MAAM;IAAEC,KAAK,GAAAH,KAAA,CAALG,KAAK;IAAEC,IAAI,GAAAJ,KAAA,CAAJI,IAAI;IAAEC,KAAK,GAAAL,KAAA,CAALK,KAAK;IAAEC,SAAS,GAAAN,KAAA,CAATM,SAAS,CAAA;AACrE,EAAA,IAAMC,QAAQ,GAAGC,WAAW,EAAE,CAAA;EAC9B,oBACEzB,IAAA,CAAC0B,qBAAqB,EAAA;AACpBR,IAAAA,GAAG,EAAEA,GAAa;AAClBS,IAAAA,MAAM,EAAEL,KAAM;AACdD,IAAAA,IAAI,EAAEA,IAAK;AACXE,IAAAA,SAAS,EAAEA,SAAU;AACrBC,IAAAA,QAAQ,EAAEA,QAAS;IAAA1B,QAAA,EAAA,cAEnBE,IAAA,CAACT,OAAO,EAAA;AAACG,MAAAA,OAAO,EAAC,WAAW;AAACO,MAAAA,OAAO,EAAC,MAAM;AAACC,MAAAA,aAAa,EAAC,QAAQ;AAACI,MAAAA,GAAG,EAAC,WAAW;MAAAR,QAAA,EAAA,cAChFR,GAAA,CAACR,aAAa,EAAA;AAACE,QAAAA,KAAK,EAAEA,KAAM;AAACC,QAAAA,YAAY,EAAEA,YAAAA;AAAa,OAAE,CAAC,eAC3DK,GAAA,CAACC,OAAO,EAAA;AAAAO,QAAAA,QAAA,EAAEA,QAAAA;AAAQ,OAAU,CAAC,EAC5BqB,MAAM,gBAAG7B,GAAA,CAACC,OAAO,EAAA;AAAAO,QAAAA,QAAA,EAAEqB,MAAAA;OAAgB,CAAC,GAAG,IAAI,CAAA;KACrC,CAAC,EACTC,KAAK,CAAA;AAAA,GACe,CAAC,CAAA;AAE5B,CACF;;;;"}
1
+ {"version":3,"file":"PopoverContent.js","sources":["../../../../../../src/components/Popover/PopoverContent.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */\nimport React from 'react';\nimport { PopoverContentWrapper } from './PopoverContentWrapper';\nimport type { PopoverContentProps } from './types';\nimport { PopoverCloseButton } from './PopoverCloseButton';\nimport { usePopoverContext } from './PopoverContext';\nimport BaseBox from '~components/Box/BaseBox';\nimport { Text } from '~components/Typography';\nimport { isReactNative } from '~utils';\nimport { useIsMobile } from '~utils/useIsMobile';\n\ntype PopoverHeaderProps = {\n title?: string;\n titleLeading?: React.ReactNode;\n};\n\nconst PopoverHeader = ({ title, titleLeading }: PopoverHeaderProps): React.ReactElement | null => {\n const { titleId, openInteraction } = usePopoverContext();\n\n const showCloseButton = openInteraction === 'click';\n const isFloating = !(title || titleLeading);\n\n if (isFloating) {\n if (!showCloseButton) {\n return null;\n }\n return (\n <BaseBox\n borderRadius=\"max\"\n position=\"absolute\"\n padding=\"spacing.2\"\n top=\"spacing.2\"\n right=\"spacing.2\"\n zIndex={1}\n >\n <PopoverCloseButton />\n </BaseBox>\n );\n }\n\n return (\n <BaseBox\n display=\"flex\"\n flexDirection=\"row\"\n flexWrap={isReactNative() ? 'wrap' : 'nowrap'}\n alignItems=\"center\"\n gap=\"spacing.3\"\n >\n {titleLeading\n ? React.cloneElement(titleLeading as React.ReactElement, { size: 'large' })\n : null}\n {title ? (\n <BaseBox id={titleId} paddingRight=\"spacing.4\">\n <Text size=\"large\" weight=\"semibold\">\n {title}\n </Text>\n </BaseBox>\n ) : null}\n {showCloseButton ? (\n <BaseBox marginLeft=\"auto\">\n <PopoverCloseButton />\n </BaseBox>\n ) : null}\n </BaseBox>\n );\n};\n\nconst PopoverContent = React.forwardRef<HTMLDivElement, PopoverContentProps>(\n ({ children, title, titleLeading, footer, arrow, side, style, isVisible }, ref) => {\n const isMobile = useIsMobile();\n return (\n <PopoverContentWrapper\n ref={ref as never}\n styles={style}\n side={side}\n isVisible={isVisible}\n isMobile={isMobile}\n >\n <BaseBox padding=\"spacing.4\" display=\"flex\" flexDirection=\"column\" gap=\"spacing.4\">\n <PopoverHeader title={title} titleLeading={titleLeading} />\n <BaseBox>{children}</BaseBox>\n {footer ? <BaseBox>{footer}</BaseBox> : null}\n </BaseBox>\n {arrow}\n </PopoverContentWrapper>\n );\n },\n);\n\nexport { PopoverContent };\n"],"names":["PopoverHeader","_ref","title","titleLeading","_usePopoverContext","usePopoverContext","titleId","openInteraction","showCloseButton","isFloating","_jsx","BaseBox","borderRadius","position","padding","top","right","zIndex","children","PopoverCloseButton","_jsxs","display","flexDirection","flexWrap","isReactNative","alignItems","gap","React","cloneElement","size","id","paddingRight","Text","weight","marginLeft","PopoverContent","forwardRef","_ref2","ref","footer","arrow","side","style","isVisible","isMobile","useIsMobile","PopoverContentWrapper","styles"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"PopoverContext.js","sources":["../../../../../../src/components/Popover/PopoverContext.ts"],"sourcesContent":["import React from 'react';\nimport { throwBladeError } from '~utils/logger';\n\ntype PopoverContextProps = {\n close: () => void;\n defaultInitialFocusRef: React.RefObject<HTMLElement>;\n titleId?: string;\n} | null;\nconst PopoverContext = React.createContext<PopoverContextProps>(null);\n\nconst usePopoverContext = (): NonNullable<PopoverContextProps> => {\n const context = React.useContext(PopoverContext);\n\n if (__DEV__) {\n if (!context) {\n throwBladeError({\n message: `usePopoverContext must be used within Popover`,\n moduleName: 'Popover',\n });\n }\n }\n\n return context!;\n};\n\nexport { PopoverContext, usePopoverContext };\n"],"names":["PopoverContext","React","createContext","usePopoverContext","context","useContext","throwBladeError","message","moduleName"],"mappings":";;;;AAQA,IAAMA,cAAc,gBAAGC,cAAK,CAACC,aAAa,CAAsB,IAAI,EAAC;AAErE,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,GAA2C;AAChE,EAAA,IAAMC,OAAO,GAAGH,cAAK,CAACI,UAAU,CAACL,cAAc,CAAC,CAAA;AAEhD,EAAA,IAAI,IAAO,EAAE;IACX,IAAI,CAACI,OAAO,EAAE;AACZE,MAAAA,eAAe,CAAC;AACdC,QAAAA,OAAO,EAAiD,+CAAA;AACxDC,QAAAA,UAAU,EAAE,SAAA;AACd,OAAC,CAAC,CAAA;AACJ,KAAA;AACF,GAAA;AAEA,EAAA,OAAOJ,OAAO,CAAA;AAChB;;;;"}
1
+ {"version":3,"file":"PopoverContext.js","sources":["../../../../../../src/components/Popover/PopoverContext.ts"],"sourcesContent":["import React from 'react';\nimport { throwBladeError } from '~utils/logger';\n\ntype PopoverContextProps = {\n close: () => void;\n defaultInitialFocusRef: React.RefObject<HTMLElement>;\n titleId?: string;\n openInteraction?: 'hover' | 'click';\n} | null;\nconst PopoverContext = React.createContext<PopoverContextProps>(null);\n\nconst usePopoverContext = (): NonNullable<PopoverContextProps> => {\n const context = React.useContext(PopoverContext);\n\n if (__DEV__) {\n if (!context) {\n throwBladeError({\n message: `usePopoverContext must be used within Popover`,\n moduleName: 'Popover',\n });\n }\n }\n\n return context!;\n};\n\nexport { PopoverContext, usePopoverContext };\n"],"names":["PopoverContext","React","createContext","usePopoverContext","context","useContext","throwBladeError","message","moduleName"],"mappings":";;;;AASA,IAAMA,cAAc,gBAAGC,cAAK,CAACC,aAAa,CAAsB,IAAI,EAAC;AAErE,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,GAA2C;AAChE,EAAA,IAAMC,OAAO,GAAGH,cAAK,CAACI,UAAU,CAACL,cAAc,CAAC,CAAA;AAEhD,EAAA,IAAI,IAAO,EAAE;IACX,IAAI,CAACI,OAAO,EAAE;AACZE,MAAAA,eAAe,CAAC;AACdC,QAAAA,OAAO,EAAiD,+CAAA;AACxDC,QAAAA,UAAU,EAAE,SAAA;AACd,OAAC,CAAC,CAAA;AACJ,KAAA;AACF,GAAA;AAEA,EAAA,OAAOJ,OAAO,CAAA;AAChB;;;;"}
@@ -129,7 +129,8 @@ var TourPopover = function TourPopover(_ref) {
129
129
  return {
130
130
  close: close,
131
131
  defaultInitialFocusRef: defaultInitialFocusRef,
132
- titleId: titleId
132
+ titleId: titleId,
133
+ openInteraction: 'click'
133
134
  };
134
135
  }, [close, titleId]);
135
136
 
@@ -1 +1 @@
1
- {"version":3,"file":"TourPopover.web.js","sources":["../../../../../../src/components/SpotlightPopoverTour/TourPopover.web.tsx"],"sourcesContent":["/* eslint-disable react/jsx-no-useless-fragment */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\nimport {\n shift,\n FloatingPortal,\n arrow,\n flip,\n offset,\n useFloating,\n useInteractions,\n useRole,\n useTransitionStyles,\n autoUpdate,\n useClick,\n FloatingFocusManager,\n} from '@floating-ui/react';\nimport React from 'react';\nimport { PopoverContent } from '../Popover/PopoverContent';\nimport { ARROW_HEIGHT, ARROW_WIDTH } from '../Popover/constants';\nimport { PopoverContext } from '../Popover/PopoverContext';\nimport { transitionDelay } from './tourTokens';\nimport { useTheme } from '~components/BladeProvider';\nimport BaseBox from '~components/Box/BaseBox';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { size } from '~tokens/global';\nimport { useControllableState } from '~utils/useControllable';\nimport { PopupArrow } from '~components/PopupArrow';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { useId } from '~utils/useId';\nimport { getFloatingPlacementParts } from '~utils/getFloatingPlacementParts';\nimport type { PopoverProps } from '~components/Popover';\nimport { componentZIndices } from '~utils/componentZIndices';\n\ntype TourPopoverProps = Omit<PopoverProps, 'children' | 'initialFocusRef'> & {\n attachTo: React.RefObject<HTMLElement> | undefined;\n isTransitioning: boolean;\n};\n\n// TODO: Refactor out Popover/FloatingUI logic to a reusable hook/component later on\nconst TourPopover = ({\n attachTo,\n content,\n title,\n titleLeading,\n footer,\n placement = 'top',\n onOpenChange,\n zIndex = componentZIndices.popover,\n isOpen,\n defaultIsOpen,\n isTransitioning,\n}: TourPopoverProps): React.ReactElement => {\n const { theme } = useTheme();\n const defaultInitialFocusRef = React.useRef<HTMLButtonElement>(null);\n const arrowRef = React.useRef<SVGSVGElement>(null);\n const titleId = useId('popover-title');\n\n const GAP = theme.spacing[4];\n const [side] = getFloatingPlacementParts(placement);\n const isHorizontal = side === 'left' || side === 'right';\n const isOppositeAxis = side === 'right' || side === 'bottom';\n\n const [controllableIsOpen, controllableSetIsOpen] = useControllableState({\n value: isOpen,\n defaultValue: defaultIsOpen,\n onChange: (isOpen) => onOpenChange?.({ isOpen }),\n });\n\n const { refs, floatingStyles, context, placement: computedPlacement } = useFloating({\n open: controllableIsOpen,\n onOpenChange: (isOpen) => controllableSetIsOpen(() => isOpen),\n placement,\n strategy: 'fixed',\n middleware: [\n shift({ crossAxis: false, padding: GAP }),\n flip({ padding: GAP, fallbackAxisSideDirection: 'end' }),\n offset(GAP + ARROW_HEIGHT),\n arrow({\n element: arrowRef,\n padding: isHorizontal ? GAP + ARROW_HEIGHT : ARROW_WIDTH,\n }),\n ],\n transform: true,\n whileElementsMounted: autoUpdate,\n });\n\n const close = React.useCallback(() => {\n controllableSetIsOpen(() => false);\n }, [controllableSetIsOpen]);\n\n // we need to animate from the offset of the computed placement\n // because placement can change dynamically based on available space\n const [computedSide] = getFloatingPlacementParts(computedPlacement);\n const computedIsHorizontal = computedSide === 'left' || computedSide === 'right';\n const animationOffset = isOppositeAxis ? -size[4] : size[4];\n\n const { isMounted, styles } = useTransitionStyles(context, {\n duration: {\n open: transitionDelay,\n close: theme.motion.duration.xquick,\n },\n initial: {\n opacity: 0,\n transform: `translate${computedIsHorizontal ? 'X' : 'Y'}(${animationOffset}px)`,\n },\n });\n\n // remove click handler if popover is controlled\n const isControlled = isOpen !== undefined;\n const click = useClick(context, { enabled: !isControlled });\n const role = useRole(context);\n\n const { getFloatingProps } = useInteractions([click, role]);\n\n const contextValue = React.useMemo(() => {\n return {\n close,\n defaultInitialFocusRef,\n titleId,\n };\n }, [close, titleId]);\n\n // https://github.com/floating-ui/floating-ui/discussions/2352#discussioncomment-6044834\n React.useLayoutEffect(() => {\n window.setTimeout(() => {\n if (!attachTo) return;\n refs.setReference(attachTo.current);\n refs.setPositionReference(attachTo.current);\n });\n }, [attachTo, refs, isOpen]);\n\n return (\n <PopoverContext.Provider value={contextValue}>\n <FloatingPortal>\n <FloatingFocusManager\n // TODO: check if isTransitioning is enough since scrolling can take longer\n disabled={isOpen === false || !isMounted || isTransitioning}\n initialFocus={defaultInitialFocusRef}\n context={context}\n modal={true}\n guards={true}\n >\n {isMounted ? (\n <BaseBox\n ref={refs.setFloating}\n style={{ ...floatingStyles, pointerEvents: isMounted ? 'auto' : 'none' }}\n // TODO: Tokenize zIndex values\n zIndex={zIndex}\n {...getFloatingProps()}\n {...metaAttribute({ name: MetaConstants.TourPopover })}\n {...makeAccessible({ labelledBy: titleId })}\n >\n <PopoverContent\n title={title}\n titleLeading={titleLeading}\n footer={footer}\n style={styles}\n arrow={\n <PopupArrow\n ref={arrowRef}\n context={context}\n width={ARROW_WIDTH}\n height={ARROW_HEIGHT}\n fillColor={theme.colors.popup.background.subtle}\n strokeColor={theme.colors.popup.border.subtle}\n />\n }\n >\n {content}\n </PopoverContent>\n </BaseBox>\n ) : (\n <></>\n )}\n </FloatingFocusManager>\n </FloatingPortal>\n </PopoverContext.Provider>\n );\n};\n\nexport { TourPopover };\n"],"names":["TourPopover","_ref","attachTo","content","title","titleLeading","footer","_ref$placement","placement","onOpenChange","_ref$zIndex","zIndex","componentZIndices","popover","isOpen","defaultIsOpen","isTransitioning","_useTheme","useTheme","theme","defaultInitialFocusRef","React","useRef","arrowRef","titleId","useId","GAP","spacing","_getFloatingPlacement","getFloatingPlacementParts","_getFloatingPlacement2","_slicedToArray","side","isHorizontal","isOppositeAxis","_useControllableState","useControllableState","value","defaultValue","onChange","_useControllableState2","controllableIsOpen","controllableSetIsOpen","_useFloating","useFloating","open","strategy","middleware","shift","crossAxis","padding","flip","fallbackAxisSideDirection","offset","ARROW_HEIGHT","arrow","element","ARROW_WIDTH","transform","whileElementsMounted","autoUpdate","refs","floatingStyles","context","computedPlacement","close","useCallback","_getFloatingPlacement3","_getFloatingPlacement4","computedSide","computedIsHorizontal","animationOffset","size","_useTransitionStyles","useTransitionStyles","duration","transitionDelay","motion","xquick","initial","opacity","concat","isMounted","styles","isControlled","undefined","click","useClick","enabled","role","useRole","_useInteractions","useInteractions","getFloatingProps","contextValue","useMemo","useLayoutEffect","window","setTimeout","setReference","current","setPositionReference","_jsx","PopoverContext","Provider","children","FloatingPortal","FloatingFocusManager","disabled","initialFocus","modal","guards","BaseBox","_objectSpread","ref","setFloating","style","pointerEvents","metaAttribute","name","MetaConstants","makeAccessible","labelledBy","PopoverContent","PopupArrow","width","height","fillColor","colors","popup","background","subtle","strokeColor","border","_Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"TourPopover.web.js","sources":["../../../../../../src/components/SpotlightPopoverTour/TourPopover.web.tsx"],"sourcesContent":["/* eslint-disable react/jsx-no-useless-fragment */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\nimport {\n shift,\n FloatingPortal,\n arrow,\n flip,\n offset,\n useFloating,\n useInteractions,\n useRole,\n useTransitionStyles,\n autoUpdate,\n useClick,\n FloatingFocusManager,\n} from '@floating-ui/react';\nimport React from 'react';\nimport { PopoverContent } from '../Popover/PopoverContent';\nimport { ARROW_HEIGHT, ARROW_WIDTH } from '../Popover/constants';\nimport { PopoverContext } from '../Popover/PopoverContext';\nimport { transitionDelay } from './tourTokens';\nimport { useTheme } from '~components/BladeProvider';\nimport BaseBox from '~components/Box/BaseBox';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { size } from '~tokens/global';\nimport { useControllableState } from '~utils/useControllable';\nimport { PopupArrow } from '~components/PopupArrow';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { useId } from '~utils/useId';\nimport { getFloatingPlacementParts } from '~utils/getFloatingPlacementParts';\nimport type { PopoverProps } from '~components/Popover';\nimport { componentZIndices } from '~utils/componentZIndices';\n\ntype TourPopoverProps = Omit<PopoverProps, 'children' | 'initialFocusRef'> & {\n attachTo: React.RefObject<HTMLElement> | undefined;\n isTransitioning: boolean;\n};\n\n// TODO: Refactor out Popover/FloatingUI logic to a reusable hook/component later on\nconst TourPopover = ({\n attachTo,\n content,\n title,\n titleLeading,\n footer,\n placement = 'top',\n onOpenChange,\n zIndex = componentZIndices.popover,\n isOpen,\n defaultIsOpen,\n isTransitioning,\n}: TourPopoverProps): React.ReactElement => {\n const { theme } = useTheme();\n const defaultInitialFocusRef = React.useRef<HTMLButtonElement>(null);\n const arrowRef = React.useRef<SVGSVGElement>(null);\n const titleId = useId('popover-title');\n\n const GAP = theme.spacing[4];\n const [side] = getFloatingPlacementParts(placement);\n const isHorizontal = side === 'left' || side === 'right';\n const isOppositeAxis = side === 'right' || side === 'bottom';\n\n const [controllableIsOpen, controllableSetIsOpen] = useControllableState({\n value: isOpen,\n defaultValue: defaultIsOpen,\n onChange: (isOpen) => onOpenChange?.({ isOpen }),\n });\n\n const { refs, floatingStyles, context, placement: computedPlacement } = useFloating({\n open: controllableIsOpen,\n onOpenChange: (isOpen) => controllableSetIsOpen(() => isOpen),\n placement,\n strategy: 'fixed',\n middleware: [\n shift({ crossAxis: false, padding: GAP }),\n flip({ padding: GAP, fallbackAxisSideDirection: 'end' }),\n offset(GAP + ARROW_HEIGHT),\n arrow({\n element: arrowRef,\n padding: isHorizontal ? GAP + ARROW_HEIGHT : ARROW_WIDTH,\n }),\n ],\n transform: true,\n whileElementsMounted: autoUpdate,\n });\n\n const close = React.useCallback(() => {\n controllableSetIsOpen(() => false);\n }, [controllableSetIsOpen]);\n\n // we need to animate from the offset of the computed placement\n // because placement can change dynamically based on available space\n const [computedSide] = getFloatingPlacementParts(computedPlacement);\n const computedIsHorizontal = computedSide === 'left' || computedSide === 'right';\n const animationOffset = isOppositeAxis ? -size[4] : size[4];\n\n const { isMounted, styles } = useTransitionStyles(context, {\n duration: {\n open: transitionDelay,\n close: theme.motion.duration.xquick,\n },\n initial: {\n opacity: 0,\n transform: `translate${computedIsHorizontal ? 'X' : 'Y'}(${animationOffset}px)`,\n },\n });\n\n // remove click handler if popover is controlled\n const isControlled = isOpen !== undefined;\n const click = useClick(context, { enabled: !isControlled });\n const role = useRole(context);\n\n const { getFloatingProps } = useInteractions([click, role]);\n\n const contextValue = React.useMemo(() => {\n return {\n close,\n defaultInitialFocusRef,\n titleId,\n openInteraction: 'click' as const,\n };\n }, [close, titleId]);\n\n // https://github.com/floating-ui/floating-ui/discussions/2352#discussioncomment-6044834\n React.useLayoutEffect(() => {\n window.setTimeout(() => {\n if (!attachTo) return;\n refs.setReference(attachTo.current);\n refs.setPositionReference(attachTo.current);\n });\n }, [attachTo, refs, isOpen]);\n\n return (\n <PopoverContext.Provider value={contextValue}>\n <FloatingPortal>\n <FloatingFocusManager\n // TODO: check if isTransitioning is enough since scrolling can take longer\n disabled={isOpen === false || !isMounted || isTransitioning}\n initialFocus={defaultInitialFocusRef}\n context={context}\n modal={true}\n guards={true}\n >\n {isMounted ? (\n <BaseBox\n ref={refs.setFloating}\n style={{ ...floatingStyles, pointerEvents: isMounted ? 'auto' : 'none' }}\n // TODO: Tokenize zIndex values\n zIndex={zIndex}\n {...getFloatingProps()}\n {...metaAttribute({ name: MetaConstants.TourPopover })}\n {...makeAccessible({ labelledBy: titleId })}\n >\n <PopoverContent\n title={title}\n titleLeading={titleLeading}\n footer={footer}\n style={styles}\n arrow={\n <PopupArrow\n ref={arrowRef}\n context={context}\n width={ARROW_WIDTH}\n height={ARROW_HEIGHT}\n fillColor={theme.colors.popup.background.subtle}\n strokeColor={theme.colors.popup.border.subtle}\n />\n }\n >\n {content}\n </PopoverContent>\n </BaseBox>\n ) : (\n <></>\n )}\n </FloatingFocusManager>\n </FloatingPortal>\n </PopoverContext.Provider>\n );\n};\n\nexport { TourPopover };\n"],"names":["TourPopover","_ref","attachTo","content","title","titleLeading","footer","_ref$placement","placement","onOpenChange","_ref$zIndex","zIndex","componentZIndices","popover","isOpen","defaultIsOpen","isTransitioning","_useTheme","useTheme","theme","defaultInitialFocusRef","React","useRef","arrowRef","titleId","useId","GAP","spacing","_getFloatingPlacement","getFloatingPlacementParts","_getFloatingPlacement2","_slicedToArray","side","isHorizontal","isOppositeAxis","_useControllableState","useControllableState","value","defaultValue","onChange","_useControllableState2","controllableIsOpen","controllableSetIsOpen","_useFloating","useFloating","open","strategy","middleware","shift","crossAxis","padding","flip","fallbackAxisSideDirection","offset","ARROW_HEIGHT","arrow","element","ARROW_WIDTH","transform","whileElementsMounted","autoUpdate","refs","floatingStyles","context","computedPlacement","close","useCallback","_getFloatingPlacement3","_getFloatingPlacement4","computedSide","computedIsHorizontal","animationOffset","size","_useTransitionStyles","useTransitionStyles","duration","transitionDelay","motion","xquick","initial","opacity","concat","isMounted","styles","isControlled","undefined","click","useClick","enabled","role","useRole","_useInteractions","useInteractions","getFloatingProps","contextValue","useMemo","openInteraction","useLayoutEffect","window","setTimeout","setReference","current","setPositionReference","_jsx","PopoverContext","Provider","children","FloatingPortal","FloatingFocusManager","disabled","initialFocus","modal","guards","BaseBox","_objectSpread","ref","setFloating","style","pointerEvents","metaAttribute","name","MetaConstants","makeAccessible","labelledBy","PopoverContent","PopupArrow","width","height","fillColor","colors","popup","background","subtle","strokeColor","border","_Fragment"],"mappings":"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"}