@mirohq/design-system-popover 4.3.8 → 4.3.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/main.js +13 -28
- package/dist/main.js.map +1 -1
- package/dist/module.js +14 -29
- package/dist/module.js.map +1 -1
- package/package.json +2 -1
package/dist/main.js
CHANGED
|
@@ -9,6 +9,7 @@ var reactUseSize = require('@radix-ui/react-use-size');
|
|
|
9
9
|
var designSystemStyles = require('@mirohq/design-system-styles');
|
|
10
10
|
var designSystemPrimitive = require('@mirohq/design-system-primitive');
|
|
11
11
|
var reactComposeRefs = require('@radix-ui/react-compose-refs');
|
|
12
|
+
var designSystemIcons = require('@mirohq/design-system-icons');
|
|
12
13
|
|
|
13
14
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
14
15
|
|
|
@@ -357,17 +358,6 @@ const Content = React__default["default"].forwardRef(
|
|
|
357
358
|
}
|
|
358
359
|
);
|
|
359
360
|
|
|
360
|
-
const StyledCloseIcon = designSystemStitches.styled(designSystemPrimitive.Primitive.svg, {
|
|
361
|
-
fill: "$white",
|
|
362
|
-
width: "$3",
|
|
363
|
-
height: "$3",
|
|
364
|
-
path: {
|
|
365
|
-
stroke: "$white",
|
|
366
|
-
strokeWidth: "2",
|
|
367
|
-
strokeLinecap: "round",
|
|
368
|
-
strokeLinejoin: "round"
|
|
369
|
-
}
|
|
370
|
-
});
|
|
371
361
|
const StyledClose = designSystemStitches.styled(RadixPopover.Close, {
|
|
372
362
|
all: "unset",
|
|
373
363
|
fontFamily: "inherit",
|
|
@@ -378,37 +368,30 @@ const StyledClose = designSystemStitches.styled(RadixPopover.Close, {
|
|
|
378
368
|
justifyContent: "center",
|
|
379
369
|
color: "$white",
|
|
380
370
|
position: "absolute",
|
|
381
|
-
top: "
|
|
382
|
-
right: "
|
|
371
|
+
top: "5px",
|
|
372
|
+
right: "5px",
|
|
383
373
|
borderRadius: "$50",
|
|
384
374
|
cursor: "pointer",
|
|
385
375
|
"&:hover": {
|
|
386
376
|
backgroundColor: "rgba(255, 255, 255, 0.12)"
|
|
387
377
|
},
|
|
388
378
|
"&:focus-visible": {
|
|
389
|
-
boxShadow:
|
|
379
|
+
boxShadow: "$focus-controls"
|
|
390
380
|
},
|
|
391
381
|
variants: {
|
|
392
382
|
variant: {
|
|
393
383
|
light: {
|
|
394
|
-
|
|
395
|
-
path: {
|
|
396
|
-
stroke: "$black"
|
|
397
|
-
}
|
|
398
|
-
}
|
|
384
|
+
color: "$black"
|
|
399
385
|
},
|
|
400
|
-
dark: {
|
|
386
|
+
dark: {
|
|
387
|
+
"&:focus-visible": {
|
|
388
|
+
boxShadow: "0 0 0 1px #0F0F0F, 0 0 0 3px #6881FF, 0 0 0 5px #4961f699"
|
|
389
|
+
}
|
|
390
|
+
}
|
|
401
391
|
}
|
|
402
392
|
}
|
|
403
393
|
});
|
|
404
394
|
|
|
405
|
-
const CloseIcon = () => /* @__PURE__ */ React__default["default"].createElement(StyledCloseIcon, {
|
|
406
|
-
viewBox: "0 0 12 12"
|
|
407
|
-
}, /* @__PURE__ */ React__default["default"].createElement("path", {
|
|
408
|
-
d: "M1.99878 10.0025L10.0013 2"
|
|
409
|
-
}), /* @__PURE__ */ React__default["default"].createElement("path", {
|
|
410
|
-
d: "M10.0013 10.0024L1.99878 1.99996"
|
|
411
|
-
}));
|
|
412
395
|
const Close = React__default["default"].forwardRef((props, forwardRef) => {
|
|
413
396
|
const { closeBtnRef, variant } = usePopoverContext();
|
|
414
397
|
const composedTriggerRef = reactComposeRefs.useComposedRefs(forwardRef, closeBtnRef);
|
|
@@ -417,7 +400,9 @@ const Close = React__default["default"].forwardRef((props, forwardRef) => {
|
|
|
417
400
|
ref: composedTriggerRef,
|
|
418
401
|
"data-testid": "close-icon",
|
|
419
402
|
variant
|
|
420
|
-
}, /* @__PURE__ */ React__default["default"].createElement(
|
|
403
|
+
}, /* @__PURE__ */ React__default["default"].createElement(designSystemIcons.IconCross, {
|
|
404
|
+
size: "small"
|
|
405
|
+
}));
|
|
421
406
|
});
|
|
422
407
|
|
|
423
408
|
const Portal = (props) => /* @__PURE__ */ React__default["default"].createElement(RadixPopover.Portal, {
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sources":["../src/partials/trigger.styled.tsx","../src/use-popover-context.tsx","../src/partials/trigger.tsx","../src/partials/content.styled.tsx","../src/partials/line.styled.tsx","../src/partials/line.tsx","../src/partials/arrow.styled.tsx","../src/partials/arrow.tsx","../src/partials/content.tsx","../src/partials/close.styled.tsx","../src/partials/close.tsx","../src/partials/portal.tsx","../src/popover.tsx"],"sourcesContent":["import { Trigger as RadixTrigger } from '@radix-ui/react-popover'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledTrigger = styled(RadixTrigger)\nexport type StyledTriggerProps = StrictComponentProps<typeof StyledTrigger>\n","import React, { createContext, useState, useRef, useContext } from 'react'\nimport type { PropsWithChildren } from 'react'\n\nimport type { Variant, TriggersOn } from './types'\n\ninterface PopoverValues {\n open: boolean\n onOpen?: () => void\n onClose?: () => void\n triggersOn: TriggersOn\n variant?: Variant\n}\n\ninterface PopoverContextProps {\n openState: boolean\n pressed: boolean\n hoveredOut: boolean\n hoveredIn: boolean\n setOpenState: (open: boolean) => void\n setPressed: (pressed: boolean) => void\n handleEnter: () => void\n handleLeave: () => void\n handleOpenChange: (open: boolean) => void\n setHoveredOut: (hoveredOut: boolean) => void\n closeBtnRef: React.RefObject<HTMLButtonElement>\n variant?: Variant\n}\n\nconst ON_LEAVE_DURATION = 220\nconst ON_ENTER_DURATION = 200\n\nconst PopoverContext = createContext<PopoverContextProps>({} as any)\n\n/**\n * The PopoverProvider is used to manage the state of the popover,\n * when it opens or closes, and what triggers it.\n */\nexport const PopoverProvider = ({\n open,\n onOpen,\n onClose,\n children,\n triggersOn,\n variant,\n}: PropsWithChildren<PopoverValues>): any => {\n const [openState, setOpenState] = useState(open)\n const [pressed, setPressed] = useState(false)\n const [hoveredOut, setHoveredOut] = useState(false)\n const [hoveredIn, setHoveredIn] = useState(false)\n const [hoveredInFirstTime, setHoveredInFirstTime] = useState(false)\n\n const leaveTimer = useRef<ReturnType<typeof setTimeout>>()\n const enterTimer = useRef<ReturnType<typeof setTimeout>>()\n const closeBtnRef = React.useRef<HTMLButtonElement>(null)\n\n const handleLeave = (): void => {\n if (triggersOn === 'press') {\n return\n }\n\n clearTimeout(leaveTimer.current)\n clearTimeout(enterTimer.current)\n\n leaveTimer.current = setTimeout(() => {\n setOpenState(false)\n setHoveredOut(true)\n setHoveredIn(false)\n handleOnOpenCloseChange(false)\n }, ON_LEAVE_DURATION)\n }\n\n const handleEnter = (): void => {\n if (triggersOn === 'press') {\n return\n }\n\n if (!pressed) {\n clearTimeout(leaveTimer.current)\n clearTimeout(enterTimer.current)\n\n enterTimer.current = setTimeout(() => {\n setHoveredIn(true)\n setOpenState(true)\n handleOnOpenCloseChange(true)\n }, ON_ENTER_DURATION)\n }\n }\n\n const handleOpenChange = (newOpen: boolean): void => {\n if (pressed && triggersOn === 'hover') {\n return setPressed(false)\n }\n\n if (newOpen !== openState) {\n setOpenState(newOpen)\n handleOnOpenCloseChange(newOpen)\n\n clearTimeout(enterTimer.current)\n\n if (!newOpen && leaveTimer.current !== undefined) {\n clearTimeout(leaveTimer.current)\n leaveTimer.current = undefined\n }\n }\n }\n\n const handleOnOpenCloseChange = (newOpen: boolean): void => {\n if (!hoveredInFirstTime && newOpen) {\n setHoveredInFirstTime(true)\n onOpen?.()\n }\n\n if (!newOpen) {\n if (triggersOn === 'hover' && hoveredInFirstTime) {\n setHoveredInFirstTime(false)\n }\n onClose?.()\n }\n }\n\n return (\n <PopoverContext.Provider\n value={{\n openState,\n hoveredIn,\n hoveredOut,\n pressed,\n setOpenState,\n setHoveredOut,\n setPressed,\n handleEnter,\n handleLeave,\n handleOpenChange,\n closeBtnRef,\n variant,\n }}\n >\n {children}\n </PopoverContext.Provider>\n )\n}\n\n/**\n * The usePopoverContext hook is used to access the state of the popover.\n */\nexport const usePopoverContext = (): PopoverContextProps =>\n useContext(PopoverContext)\n","import React from 'react'\nimport type { ElementRef, DOMAttributes } from 'react'\n\nimport { StyledTrigger } from './trigger.styled'\nimport { usePopoverContext } from '../use-popover-context'\nimport type { StyledTriggerProps } from './trigger.styled'\n\nexport interface TriggerProps extends StyledTriggerProps {\n /**\n * temporary the same as onClick, later will be added touch events support\n */\n onPress?: DOMAttributes<HTMLElement>['onClick']\n}\n\n/**\n * The trigger component is used to render the trigger element for the popover.\n */\nexport const Trigger = React.forwardRef<\n ElementRef<typeof StyledTrigger>,\n TriggerProps\n>(({ onPress, onClick, ...restProps }, forwardRef) => {\n const { handleEnter, handleLeave, setPressed } = usePopoverContext()\n\n return (\n <StyledTrigger\n {...restProps}\n onClick={e => {\n ;(onPress ?? onClick)?.(e)\n\n // @ts-expect-error\n if (e.pointerType === 'keyboard') {\n return\n }\n\n setPressed(true)\n }}\n onMouseEnter={handleEnter}\n onMouseLeave={handleLeave}\n ref={forwardRef}\n />\n )\n})\n","import { Content as RadixContent } from '@radix-ui/react-popover'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { animations } from '@mirohq/design-system-styles'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledContent = styled(RadixContent, {\n backgroundColor: '$black',\n borderRadius: '$50',\n color: '$white',\n padding: '$200',\n boxShadow: '0 $1 $4 rgba(9, 9, 9, 0.4)',\n fontSize: '14px',\n lineHeight: '20px',\n '@media (prefers-reduced-motion: no-preference)': {\n animationDuration: '220ms',\n animationTimingFunction: 'ease',\n willChange: 'opacity',\n '&[data-state=\"open\"]': {\n animationName: animations.fadeIn,\n },\n '&[data-state=\"closed\"]': {\n animationName: animations.fadeOut,\n },\n },\n variants: {\n variant: {\n light: {\n background: '$white',\n boxShadow: '$50',\n color: '$black',\n },\n dark: {},\n },\n },\n zIndex: '$popover',\n})\n\nexport type StyledContentProps = StrictComponentProps<typeof StyledContent>\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { CSSProperties } from '@stitches/react'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\ntype Side = 'top' | 'right' | 'bottom' | 'left'\n\ninterface AlignStyle {\n [x: string]: CSSProperties\n}\n\nconst getAlignXStyle = (side: Side, width: number): AlignStyle => ({\n [`[data-side=\"${side}\"][data-align=\"start\"] > &`]: {\n left: `${width * 2}px`,\n },\n [`[data-side=\"${side}\"][data-align=\"center\"] > &`]: {\n left: `calc(50% - ${width / 2}px)`,\n },\n [`[data-side=\"${side}\"][data-align=\"end\"] > &`]: {\n left: `calc(100% - ${width * 3}px)`,\n },\n})\n\nconst getAlignYStyle = (\n side: Side,\n width: number,\n height: number\n): AlignStyle => ({\n [`[data-side=\"${side}\"][data-align=\"start\"] > &`]: {\n bottom: `calc(100% - (${height - width}px))`,\n },\n [`[data-side=\"${side}\"][data-align=\"center\"] > &`]: {\n bottom: `calc(50% - ${height / 2}px)`,\n },\n [`[data-side=\"${side}\"][data-align=\"end\"] > &`]: { bottom: `-${width}px` },\n})\n\nexport const getPlacement = (width: number, height: number): any => {\n const halfHeight = height / 2\n const halfWidth = width / 2\n\n return {\n '[data-side=\"top\"] > &': { bottom: `-${height}px` },\n ...getAlignXStyle('top', width),\n '[data-side=\"bottom\"] > &': {\n bottom: '100%',\n transform: 'rotate(180deg)',\n },\n ...getAlignXStyle('bottom', width),\n '[data-side=\"right\"] > &': {\n left: `-${halfHeight + halfWidth}px`,\n transform: 'rotate(90deg)',\n },\n ...getAlignYStyle('right', width, height),\n '[data-side=\"left\"] > &': {\n left: `calc(100% + ${halfHeight - halfWidth}px)`,\n transform: 'rotate(270deg)',\n },\n ...getAlignYStyle('left', width, height),\n }\n}\n\nexport const StyledLine = styled(Primitive.svg, {\n fill: 'none',\n width: '6px',\n height: '50px',\n position: 'absolute',\n '& rect': {\n fill: 'rgba(66, 98, 255, 1)',\n },\n '& [id=\"line\"]': {\n width: '44px',\n height: '1px',\n transform: 'rotate(90 3.5 0)',\n },\n '& [id=\"circle\"]': {\n width: '6px',\n height: '6px',\n rx: '3px',\n transform: 'rotate(90 6 44)',\n },\n})\n\nexport type StyledLineProps = StrictComponentProps<typeof StyledLine>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledLine, getPlacement } from './line.styled'\nimport type { StyledLineProps } from './line.styled'\n\nexport interface LineProps extends StyledLineProps {}\n\nexport const Line = React.forwardRef<ElementRef<typeof StyledLine>, LineProps>(\n (props, forwardRef) => {\n const placement = getPlacement(6, 50)\n return (\n <StyledLine\n {...props}\n css={{ ...placement }}\n ref={forwardRef}\n viewBox='0 0 6 50'\n aria-hidden\n >\n <rect id='line' x='3.5' transform='rotate(90 3.5 0)' />\n <rect id='circle' x='6' y='44' transform='rotate(90 6 44)' />\n </StyledLine>\n )\n }\n)\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { Arrow as RadixArrow } from '@radix-ui/react-popover'\n\nexport const StyledArrow = styled(RadixArrow, {\n fill: '$black',\n height: '$1',\n paddingX: '2px',\n width: '$3',\n variants: {\n variant: {\n light: {\n fill: '$white',\n },\n dark: {},\n },\n },\n})\n\nexport type StyledArrowProps = StrictComponentProps<typeof StyledArrow>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledArrow } from './arrow.styled'\nimport type { StyledArrowProps } from './arrow.styled'\nimport { usePopoverContext } from '../use-popover-context'\n\nexport interface ArrowProps extends StyledArrowProps {}\n\nexport const Arrow = React.forwardRef<\n ElementRef<typeof StyledArrow>,\n ArrowProps\n>((props, forwardRef) => {\n const { variant } = usePopoverContext()\n return (\n <StyledArrow {...props} variant={variant} aria-hidden ref={forwardRef} />\n )\n})\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport { useSize } from '@radix-ui/react-use-size'\n\nimport { StyledContent } from './content.styled'\nimport { Line } from './line'\nimport { Arrow } from './arrow'\nimport { usePopoverContext } from '../use-popover-context'\nimport type { StyledContentProps } from './content.styled'\nimport type {\n Align,\n Side,\n AnchorType,\n PointerDownOutsideEvent,\n FocusOutsideEvent,\n} from '../types'\n\nexport interface ContentProps extends StyledContentProps {\n /**\n * When true, overrides the side and align preferences to prevent collisions\n * with window edges.\n */\n avoidCollisions?: boolean\n\n /**\n * The preferred alignment against the trigger. May change when collisions occur.\n */\n align?: Align\n\n /**\n * An offset in pixels from the \"start\" or \"end\" alignment option.\n */\n alignOffset?: number\n\n /**\n * The preferred side of the trigger to render against when open.\n * Will be reversed when collisions occur and avoidCollisions is enabled.\n */\n side?: Side\n\n /**\n * The distance in pixels from the boundary edges where collision detection\n * should occur. Accepts a number (same for all sides).\n */\n collisionPadding?: number\n\n /**\n * The type of anchor to render.\n */\n anchor?: AnchorType\n\n /**\n * Whether to render in a Portal when open.\n */\n portalled?: boolean\n\n /**\n * Used to force mounting when more control is needed. Useful when controlling\n * animation with React animation libraries.\n */\n forceMount?: true\n\n /**\n * The element used as the collision boundary. By default this is the\n * viewport, though you can provide additional element(s) to be included in\n * this check.\n */\n collisionBoundary?: Element | null\n\n /**\n * The sticky behavior on the align axis. \"partial\" will keep the content in\n * the boundary as long as the trigger is at least partially in the boundary\n * whilst \"always\" will keep the content in the boundary regardless.\n */\n sticky?: 'partial' | 'always'\n\n /**\n * Whether to hide the content when the trigger becomes fully occluded.\n */\n hideWhenDetached?: boolean\n\n /**\n * Event handler called when a pointer event occurs outside the bounds of the\n * component. It can be prevented by calling event.preventDefault.\n */\n onPointerDownOutside?: (event: PointerDownOutsideEvent) => void\n\n /**\n * Event handler called when focus moves outside the bounds of the component.\n * It can be prevented by calling event.preventDefault.\n */\n onFocusOutside?: (event: FocusOutsideEvent) => void\n\n /**\n * Event handler called when the escape key is down. It can be prevented by\n * calling event.preventDefault.\n */\n onEscapeKeyDown?: (event: KeyboardEvent) => void\n\n /**\n * Event handler called when an interaction (pointer or focus event) happens\n * outside the bounds of the component. It can be prevented by calling\n * event.preventDefault.\n */\n onInteractOutside?: (\n event: PointerDownOutsideEvent | FocusOutsideEvent\n ) => void\n}\n\n/**\n * The content component is used to render rich content elements for the popover.\n */\nexport const Content = React.forwardRef<\n ElementRef<typeof StyledContent>,\n ContentProps\n>(\n (\n {\n align = 'center',\n alignOffset = 0,\n avoidCollisions = true,\n collisionPadding = 0,\n side = 'top',\n children,\n anchor = 'line',\n sticky = 'partial',\n hideWhenDetached = false,\n ...restProps\n },\n forwardRef\n ) => {\n const [line, setLine] = React.useState<SVGElement | null>(null)\n const lineSize = useSize(line)\n const {\n handleLeave,\n handleEnter,\n hoveredIn,\n hoveredOut,\n setHoveredOut,\n closeBtnRef,\n variant,\n } = usePopoverContext()\n\n const anchorEl = React.useMemo(() => {\n switch (anchor) {\n case 'arrow':\n return <Arrow />\n case 'line':\n return <Line ref={setLine} />\n default:\n return null\n }\n }, [anchor, setLine])\n\n return (\n <StyledContent\n {...restProps}\n align={align}\n alignOffset={alignOffset}\n avoidCollisions={avoidCollisions}\n collisionPadding={collisionPadding}\n side={side}\n sideOffset={anchor === 'line' ? lineSize?.height : 0}\n ref={forwardRef}\n onMouseEnter={handleEnter}\n onMouseLeave={handleLeave}\n role='dialog'\n aria-modal='true'\n sticky={sticky}\n hideWhenDetached={hideWhenDetached}\n variant={variant}\n onCloseAutoFocus={(e: Event) => {\n if (hoveredOut) {\n e.preventDefault()\n setHoveredOut(false)\n }\n }}\n onOpenAutoFocus={(e: Event) => {\n e.preventDefault()\n\n if (hoveredIn) {\n return\n }\n closeBtnRef?.current?.focus()\n }}\n >\n {children}\n {anchorEl}\n </StyledContent>\n )\n }\n)\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { Close as RadixClose } from '@radix-ui/react-popover'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { focus } from '@mirohq/design-system-styles'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledCloseIcon = styled(Primitive.svg, {\n fill: '$white',\n width: '$3',\n height: '$3',\n path: {\n stroke: '$white',\n strokeWidth: '2',\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n },\n})\n\nexport const StyledClose = styled(RadixClose, {\n all: 'unset',\n fontFamily: 'inherit',\n height: '$6',\n width: '$6',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: '$white',\n position: 'absolute',\n top: '$50',\n right: '$50',\n borderRadius: '$50',\n cursor: 'pointer',\n\n '&:hover': {\n backgroundColor: 'rgba(255, 255, 255, 0.12)',\n },\n '&:focus-visible': {\n boxShadow: `inset 0 0 0 1px white, ${focus.defaults['&:focus-visible'].boxShadow}`,\n },\n\n variants: {\n variant: {\n light: {\n [`& ${StyledCloseIcon}`]: {\n path: {\n stroke: '$black',\n },\n },\n },\n dark: {},\n },\n },\n})\n\nexport type StyledCloseProps = StrictComponentProps<typeof StyledClose>\n","import React from 'react'\nimport { useComposedRefs } from '@radix-ui/react-compose-refs'\nimport type { ElementRef } from 'react'\n\nimport { StyledClose, StyledCloseIcon } from './close.styled'\nimport { usePopoverContext } from '../use-popover-context'\nimport type { StyledCloseProps } from './close.styled'\n\nexport interface CloseProps extends StyledCloseProps {}\n\nexport const CloseIcon = (): JSX.Element => (\n <StyledCloseIcon viewBox='0 0 12 12'>\n <path d='M1.99878 10.0025L10.0013 2' />\n <path d='M10.0013 10.0024L1.99878 1.99996' />\n </StyledCloseIcon>\n)\n\nexport const Close = React.forwardRef<\n ElementRef<typeof StyledClose>,\n CloseProps\n>((props, forwardRef) => {\n const { closeBtnRef, variant } = usePopoverContext()\n const composedTriggerRef = useComposedRefs(forwardRef, closeBtnRef)\n\n return (\n <StyledClose\n {...props}\n ref={composedTriggerRef}\n data-testid='close-icon'\n variant={variant}\n >\n <CloseIcon />\n </StyledClose>\n )\n})\n","import React from 'react'\nimport type { PopoverPortalProps } from '@radix-ui/react-popover'\nimport { Portal as RadixPortal } from '@radix-ui/react-popover'\n\nexport interface PortalProps extends PopoverPortalProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries. If used on this part,\n * it will be inherited by Popover.Content.\n */\n forceMount?: true\n\n /**\n * Specify a container element to portal the content into.\n */\n container?: HTMLElement | null\n}\n\nexport const Portal: React.FC<PortalProps> = props => <RadixPortal {...props} />\n","import React from 'react'\nimport * as RadixPopover from '@radix-ui/react-popover'\n\nimport { Trigger } from './partials/trigger'\nimport { Content } from './partials/content'\nimport { Close } from './partials/close'\nimport { Portal } from './partials/portal'\nimport { PopoverProvider, usePopoverContext } from './use-popover-context'\nimport type { Variant, TriggersOn } from './types'\n\nexport interface PopoverProps {\n /**\n * The current controlled state of the popover.\n */\n open?: boolean\n\n /**\n * Event handler called when the popover opens.\n */\n onOpen?: () => void\n\n /**\n * Event handler called when the popover closes.\n */\n onClose?: () => void\n\n /**\n * Defines whether the interaction with outside elements will be enabled.\n */\n interactOutside?: boolean\n\n /**\n * The event that will trigger the popover to open.\n */\n triggersOn?: TriggersOn\n\n /**\n * Change the popover's appearance\n */\n variant?: Variant\n}\n\nconst Root: React.FC<PopoverProps> = ({ onOpen, onClose, ...restProps }) => {\n const { openState, handleOpenChange } = usePopoverContext()\n return (\n <RadixPopover.Root\n {...restProps}\n open={openState}\n onOpenChange={newOpen => handleOpenChange(newOpen)}\n modal={false}\n />\n )\n}\n\nexport const Popover: React.FC<PopoverProps> & Partials = ({\n open = false,\n onOpen,\n onClose,\n triggersOn = 'press',\n variant = 'dark',\n ...restProps\n}) => (\n <PopoverProvider\n open={open}\n onOpen={onOpen}\n onClose={onClose}\n triggersOn={triggersOn}\n variant={variant}\n >\n <Root {...restProps} />\n </PopoverProvider>\n)\n\n// Partials\n// -----------------------------------------------------------------------------\ninterface Partials {\n Trigger: typeof Trigger\n Content: typeof Content\n Close: typeof Close\n Portal: typeof Portal\n}\n\nPopover.Trigger = Trigger\nPopover.Content = Content\nPopover.Close = Close\nPopover.Portal = Portal\n"],"names":["styled","RadixTrigger","createContext","useState","useRef","React","useContext","RadixContent","animations","Primitive","RadixArrow","useSize","RadixClose","focus","useComposedRefs","RadixPortal","RadixPopover"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"main.js","sources":["../src/partials/trigger.styled.tsx","../src/use-popover-context.tsx","../src/partials/trigger.tsx","../src/partials/content.styled.tsx","../src/partials/line.styled.tsx","../src/partials/line.tsx","../src/partials/arrow.styled.tsx","../src/partials/arrow.tsx","../src/partials/content.tsx","../src/partials/close.styled.tsx","../src/partials/close.tsx","../src/partials/portal.tsx","../src/popover.tsx"],"sourcesContent":["import { Trigger as RadixTrigger } from '@radix-ui/react-popover'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledTrigger = styled(RadixTrigger)\nexport type StyledTriggerProps = StrictComponentProps<typeof StyledTrigger>\n","import React, { createContext, useState, useRef, useContext } from 'react'\nimport type { PropsWithChildren } from 'react'\n\nimport type { Variant, TriggersOn } from './types'\n\ninterface PopoverValues {\n open: boolean\n onOpen?: () => void\n onClose?: () => void\n triggersOn: TriggersOn\n variant?: Variant\n}\n\ninterface PopoverContextProps {\n openState: boolean\n pressed: boolean\n hoveredOut: boolean\n hoveredIn: boolean\n setOpenState: (open: boolean) => void\n setPressed: (pressed: boolean) => void\n handleEnter: () => void\n handleLeave: () => void\n handleOpenChange: (open: boolean) => void\n setHoveredOut: (hoveredOut: boolean) => void\n closeBtnRef: React.RefObject<HTMLButtonElement>\n variant?: Variant\n}\n\nconst ON_LEAVE_DURATION = 220\nconst ON_ENTER_DURATION = 200\n\nconst PopoverContext = createContext<PopoverContextProps>({} as any)\n\n/**\n * The PopoverProvider is used to manage the state of the popover,\n * when it opens or closes, and what triggers it.\n */\nexport const PopoverProvider = ({\n open,\n onOpen,\n onClose,\n children,\n triggersOn,\n variant,\n}: PropsWithChildren<PopoverValues>): any => {\n const [openState, setOpenState] = useState(open)\n const [pressed, setPressed] = useState(false)\n const [hoveredOut, setHoveredOut] = useState(false)\n const [hoveredIn, setHoveredIn] = useState(false)\n const [hoveredInFirstTime, setHoveredInFirstTime] = useState(false)\n\n const leaveTimer = useRef<ReturnType<typeof setTimeout>>()\n const enterTimer = useRef<ReturnType<typeof setTimeout>>()\n const closeBtnRef = React.useRef<HTMLButtonElement>(null)\n\n const handleLeave = (): void => {\n if (triggersOn === 'press') {\n return\n }\n\n clearTimeout(leaveTimer.current)\n clearTimeout(enterTimer.current)\n\n leaveTimer.current = setTimeout(() => {\n setOpenState(false)\n setHoveredOut(true)\n setHoveredIn(false)\n handleOnOpenCloseChange(false)\n }, ON_LEAVE_DURATION)\n }\n\n const handleEnter = (): void => {\n if (triggersOn === 'press') {\n return\n }\n\n if (!pressed) {\n clearTimeout(leaveTimer.current)\n clearTimeout(enterTimer.current)\n\n enterTimer.current = setTimeout(() => {\n setHoveredIn(true)\n setOpenState(true)\n handleOnOpenCloseChange(true)\n }, ON_ENTER_DURATION)\n }\n }\n\n const handleOpenChange = (newOpen: boolean): void => {\n if (pressed && triggersOn === 'hover') {\n return setPressed(false)\n }\n\n if (newOpen !== openState) {\n setOpenState(newOpen)\n handleOnOpenCloseChange(newOpen)\n\n clearTimeout(enterTimer.current)\n\n if (!newOpen && leaveTimer.current !== undefined) {\n clearTimeout(leaveTimer.current)\n leaveTimer.current = undefined\n }\n }\n }\n\n const handleOnOpenCloseChange = (newOpen: boolean): void => {\n if (!hoveredInFirstTime && newOpen) {\n setHoveredInFirstTime(true)\n onOpen?.()\n }\n\n if (!newOpen) {\n if (triggersOn === 'hover' && hoveredInFirstTime) {\n setHoveredInFirstTime(false)\n }\n onClose?.()\n }\n }\n\n return (\n <PopoverContext.Provider\n value={{\n openState,\n hoveredIn,\n hoveredOut,\n pressed,\n setOpenState,\n setHoveredOut,\n setPressed,\n handleEnter,\n handleLeave,\n handleOpenChange,\n closeBtnRef,\n variant,\n }}\n >\n {children}\n </PopoverContext.Provider>\n )\n}\n\n/**\n * The usePopoverContext hook is used to access the state of the popover.\n */\nexport const usePopoverContext = (): PopoverContextProps =>\n useContext(PopoverContext)\n","import React from 'react'\nimport type { ElementRef, DOMAttributes } from 'react'\n\nimport { StyledTrigger } from './trigger.styled'\nimport { usePopoverContext } from '../use-popover-context'\nimport type { StyledTriggerProps } from './trigger.styled'\n\nexport interface TriggerProps extends StyledTriggerProps {\n /**\n * temporary the same as onClick, later will be added touch events support\n */\n onPress?: DOMAttributes<HTMLElement>['onClick']\n}\n\n/**\n * The trigger component is used to render the trigger element for the popover.\n */\nexport const Trigger = React.forwardRef<\n ElementRef<typeof StyledTrigger>,\n TriggerProps\n>(({ onPress, onClick, ...restProps }, forwardRef) => {\n const { handleEnter, handleLeave, setPressed } = usePopoverContext()\n\n return (\n <StyledTrigger\n {...restProps}\n onClick={e => {\n ;(onPress ?? onClick)?.(e)\n\n // @ts-expect-error\n if (e.pointerType === 'keyboard') {\n return\n }\n\n setPressed(true)\n }}\n onMouseEnter={handleEnter}\n onMouseLeave={handleLeave}\n ref={forwardRef}\n />\n )\n})\n","import { Content as RadixContent } from '@radix-ui/react-popover'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { animations } from '@mirohq/design-system-styles'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledContent = styled(RadixContent, {\n backgroundColor: '$black',\n borderRadius: '$50',\n color: '$white',\n padding: '$200',\n boxShadow: '0 $1 $4 rgba(9, 9, 9, 0.4)',\n fontSize: '14px',\n lineHeight: '20px',\n '@media (prefers-reduced-motion: no-preference)': {\n animationDuration: '220ms',\n animationTimingFunction: 'ease',\n willChange: 'opacity',\n '&[data-state=\"open\"]': {\n animationName: animations.fadeIn,\n },\n '&[data-state=\"closed\"]': {\n animationName: animations.fadeOut,\n },\n },\n variants: {\n variant: {\n light: {\n background: '$white',\n boxShadow: '$50',\n color: '$black',\n },\n dark: {},\n },\n },\n zIndex: '$popover',\n})\n\nexport type StyledContentProps = StrictComponentProps<typeof StyledContent>\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { CSSProperties } from '@stitches/react'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\ntype Side = 'top' | 'right' | 'bottom' | 'left'\n\ninterface AlignStyle {\n [x: string]: CSSProperties\n}\n\nconst getAlignXStyle = (side: Side, width: number): AlignStyle => ({\n [`[data-side=\"${side}\"][data-align=\"start\"] > &`]: {\n left: `${width * 2}px`,\n },\n [`[data-side=\"${side}\"][data-align=\"center\"] > &`]: {\n left: `calc(50% - ${width / 2}px)`,\n },\n [`[data-side=\"${side}\"][data-align=\"end\"] > &`]: {\n left: `calc(100% - ${width * 3}px)`,\n },\n})\n\nconst getAlignYStyle = (\n side: Side,\n width: number,\n height: number\n): AlignStyle => ({\n [`[data-side=\"${side}\"][data-align=\"start\"] > &`]: {\n bottom: `calc(100% - (${height - width}px))`,\n },\n [`[data-side=\"${side}\"][data-align=\"center\"] > &`]: {\n bottom: `calc(50% - ${height / 2}px)`,\n },\n [`[data-side=\"${side}\"][data-align=\"end\"] > &`]: { bottom: `-${width}px` },\n})\n\nexport const getPlacement = (width: number, height: number): any => {\n const halfHeight = height / 2\n const halfWidth = width / 2\n\n return {\n '[data-side=\"top\"] > &': { bottom: `-${height}px` },\n ...getAlignXStyle('top', width),\n '[data-side=\"bottom\"] > &': {\n bottom: '100%',\n transform: 'rotate(180deg)',\n },\n ...getAlignXStyle('bottom', width),\n '[data-side=\"right\"] > &': {\n left: `-${halfHeight + halfWidth}px`,\n transform: 'rotate(90deg)',\n },\n ...getAlignYStyle('right', width, height),\n '[data-side=\"left\"] > &': {\n left: `calc(100% + ${halfHeight - halfWidth}px)`,\n transform: 'rotate(270deg)',\n },\n ...getAlignYStyle('left', width, height),\n }\n}\n\nexport const StyledLine = styled(Primitive.svg, {\n fill: 'none',\n width: '6px',\n height: '50px',\n position: 'absolute',\n '& rect': {\n fill: 'rgba(66, 98, 255, 1)',\n },\n '& [id=\"line\"]': {\n width: '44px',\n height: '1px',\n transform: 'rotate(90 3.5 0)',\n },\n '& [id=\"circle\"]': {\n width: '6px',\n height: '6px',\n rx: '3px',\n transform: 'rotate(90 6 44)',\n },\n})\n\nexport type StyledLineProps = StrictComponentProps<typeof StyledLine>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledLine, getPlacement } from './line.styled'\nimport type { StyledLineProps } from './line.styled'\n\nexport interface LineProps extends StyledLineProps {}\n\nexport const Line = React.forwardRef<ElementRef<typeof StyledLine>, LineProps>(\n (props, forwardRef) => {\n const placement = getPlacement(6, 50)\n return (\n <StyledLine\n {...props}\n css={{ ...placement }}\n ref={forwardRef}\n viewBox='0 0 6 50'\n aria-hidden\n >\n <rect id='line' x='3.5' transform='rotate(90 3.5 0)' />\n <rect id='circle' x='6' y='44' transform='rotate(90 6 44)' />\n </StyledLine>\n )\n }\n)\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { Arrow as RadixArrow } from '@radix-ui/react-popover'\n\nexport const StyledArrow = styled(RadixArrow, {\n fill: '$black',\n height: '$1',\n paddingX: '2px',\n width: '$3',\n variants: {\n variant: {\n light: {\n fill: '$white',\n },\n dark: {},\n },\n },\n})\n\nexport type StyledArrowProps = StrictComponentProps<typeof StyledArrow>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledArrow } from './arrow.styled'\nimport type { StyledArrowProps } from './arrow.styled'\nimport { usePopoverContext } from '../use-popover-context'\n\nexport interface ArrowProps extends StyledArrowProps {}\n\nexport const Arrow = React.forwardRef<\n ElementRef<typeof StyledArrow>,\n ArrowProps\n>((props, forwardRef) => {\n const { variant } = usePopoverContext()\n return (\n <StyledArrow {...props} variant={variant} aria-hidden ref={forwardRef} />\n )\n})\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport { useSize } from '@radix-ui/react-use-size'\n\nimport { StyledContent } from './content.styled'\nimport { Line } from './line'\nimport { Arrow } from './arrow'\nimport { usePopoverContext } from '../use-popover-context'\nimport type { StyledContentProps } from './content.styled'\nimport type {\n Align,\n Side,\n AnchorType,\n PointerDownOutsideEvent,\n FocusOutsideEvent,\n} from '../types'\n\nexport interface ContentProps extends StyledContentProps {\n /**\n * When true, overrides the side and align preferences to prevent collisions\n * with window edges.\n */\n avoidCollisions?: boolean\n\n /**\n * The preferred alignment against the trigger. May change when collisions occur.\n */\n align?: Align\n\n /**\n * An offset in pixels from the \"start\" or \"end\" alignment option.\n */\n alignOffset?: number\n\n /**\n * The preferred side of the trigger to render against when open.\n * Will be reversed when collisions occur and avoidCollisions is enabled.\n */\n side?: Side\n\n /**\n * The distance in pixels from the boundary edges where collision detection\n * should occur. Accepts a number (same for all sides).\n */\n collisionPadding?: number\n\n /**\n * The type of anchor to render.\n */\n anchor?: AnchorType\n\n /**\n * Whether to render in a Portal when open.\n */\n portalled?: boolean\n\n /**\n * Used to force mounting when more control is needed. Useful when controlling\n * animation with React animation libraries.\n */\n forceMount?: true\n\n /**\n * The element used as the collision boundary. By default this is the\n * viewport, though you can provide additional element(s) to be included in\n * this check.\n */\n collisionBoundary?: Element | null\n\n /**\n * The sticky behavior on the align axis. \"partial\" will keep the content in\n * the boundary as long as the trigger is at least partially in the boundary\n * whilst \"always\" will keep the content in the boundary regardless.\n */\n sticky?: 'partial' | 'always'\n\n /**\n * Whether to hide the content when the trigger becomes fully occluded.\n */\n hideWhenDetached?: boolean\n\n /**\n * Event handler called when a pointer event occurs outside the bounds of the\n * component. It can be prevented by calling event.preventDefault.\n */\n onPointerDownOutside?: (event: PointerDownOutsideEvent) => void\n\n /**\n * Event handler called when focus moves outside the bounds of the component.\n * It can be prevented by calling event.preventDefault.\n */\n onFocusOutside?: (event: FocusOutsideEvent) => void\n\n /**\n * Event handler called when the escape key is down. It can be prevented by\n * calling event.preventDefault.\n */\n onEscapeKeyDown?: (event: KeyboardEvent) => void\n\n /**\n * Event handler called when an interaction (pointer or focus event) happens\n * outside the bounds of the component. It can be prevented by calling\n * event.preventDefault.\n */\n onInteractOutside?: (\n event: PointerDownOutsideEvent | FocusOutsideEvent\n ) => void\n}\n\n/**\n * The content component is used to render rich content elements for the popover.\n */\nexport const Content = React.forwardRef<\n ElementRef<typeof StyledContent>,\n ContentProps\n>(\n (\n {\n align = 'center',\n alignOffset = 0,\n avoidCollisions = true,\n collisionPadding = 0,\n side = 'top',\n children,\n anchor = 'line',\n sticky = 'partial',\n hideWhenDetached = false,\n ...restProps\n },\n forwardRef\n ) => {\n const [line, setLine] = React.useState<SVGElement | null>(null)\n const lineSize = useSize(line)\n const {\n handleLeave,\n handleEnter,\n hoveredIn,\n hoveredOut,\n setHoveredOut,\n closeBtnRef,\n variant,\n } = usePopoverContext()\n\n const anchorEl = React.useMemo(() => {\n switch (anchor) {\n case 'arrow':\n return <Arrow />\n case 'line':\n return <Line ref={setLine} />\n default:\n return null\n }\n }, [anchor, setLine])\n\n return (\n <StyledContent\n {...restProps}\n align={align}\n alignOffset={alignOffset}\n avoidCollisions={avoidCollisions}\n collisionPadding={collisionPadding}\n side={side}\n sideOffset={anchor === 'line' ? lineSize?.height : 0}\n ref={forwardRef}\n onMouseEnter={handleEnter}\n onMouseLeave={handleLeave}\n role='dialog'\n aria-modal='true'\n sticky={sticky}\n hideWhenDetached={hideWhenDetached}\n variant={variant}\n onCloseAutoFocus={(e: Event) => {\n if (hoveredOut) {\n e.preventDefault()\n setHoveredOut(false)\n }\n }}\n onOpenAutoFocus={(e: Event) => {\n e.preventDefault()\n\n if (hoveredIn) {\n return\n }\n closeBtnRef?.current?.focus()\n }}\n >\n {children}\n {anchorEl}\n </StyledContent>\n )\n }\n)\n","import { Close as RadixClose } from '@radix-ui/react-popover'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledClose = styled(RadixClose, {\n all: 'unset',\n fontFamily: 'inherit',\n height: '$6',\n width: '$6',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: '$white',\n position: 'absolute',\n top: '5px',\n right: '5px',\n borderRadius: '$50',\n cursor: 'pointer',\n\n '&:hover': {\n backgroundColor: 'rgba(255, 255, 255, 0.12)',\n },\n '&:focus-visible': {\n boxShadow: '$focus-controls',\n },\n\n variants: {\n variant: {\n light: {\n color: '$black',\n },\n dark: {\n '&:focus-visible': {\n boxShadow:\n '0 0 0 1px #0F0F0F, 0 0 0 3px #6881FF, 0 0 0 5px #4961f699',\n },\n },\n },\n },\n})\n\nexport type StyledCloseProps = StrictComponentProps<typeof StyledClose>\n","import React from 'react'\nimport { useComposedRefs } from '@radix-ui/react-compose-refs'\nimport { IconCross } from '@mirohq/design-system-icons'\nimport type { ElementRef } from 'react'\n\nimport { StyledClose } from './close.styled'\nimport { usePopoverContext } from '../use-popover-context'\nimport type { StyledCloseProps } from './close.styled'\n\nexport interface CloseProps extends StyledCloseProps {}\n\nexport const Close = React.forwardRef<\n ElementRef<typeof StyledClose>,\n CloseProps\n>((props, forwardRef) => {\n const { closeBtnRef, variant } = usePopoverContext()\n const composedTriggerRef = useComposedRefs(forwardRef, closeBtnRef)\n\n return (\n <StyledClose\n {...props}\n ref={composedTriggerRef}\n data-testid='close-icon'\n variant={variant}\n >\n <IconCross size='small' />\n </StyledClose>\n )\n})\n","import React from 'react'\nimport type { PopoverPortalProps } from '@radix-ui/react-popover'\nimport { Portal as RadixPortal } from '@radix-ui/react-popover'\n\nexport interface PortalProps extends PopoverPortalProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries. If used on this part,\n * it will be inherited by Popover.Content.\n */\n forceMount?: true\n\n /**\n * Specify a container element to portal the content into.\n */\n container?: HTMLElement | null\n}\n\nexport const Portal: React.FC<PortalProps> = props => <RadixPortal {...props} />\n","import React from 'react'\nimport * as RadixPopover from '@radix-ui/react-popover'\n\nimport { Trigger } from './partials/trigger'\nimport { Content } from './partials/content'\nimport { Close } from './partials/close'\nimport { Portal } from './partials/portal'\nimport { PopoverProvider, usePopoverContext } from './use-popover-context'\nimport type { Variant, TriggersOn } from './types'\n\nexport interface PopoverProps {\n /**\n * The current controlled state of the popover.\n */\n open?: boolean\n\n /**\n * Event handler called when the popover opens.\n */\n onOpen?: () => void\n\n /**\n * Event handler called when the popover closes.\n */\n onClose?: () => void\n\n /**\n * Defines whether the interaction with outside elements will be enabled.\n */\n interactOutside?: boolean\n\n /**\n * The event that will trigger the popover to open.\n */\n triggersOn?: TriggersOn\n\n /**\n * Change the popover's appearance\n */\n variant?: Variant\n}\n\nconst Root: React.FC<PopoverProps> = ({ onOpen, onClose, ...restProps }) => {\n const { openState, handleOpenChange } = usePopoverContext()\n return (\n <RadixPopover.Root\n {...restProps}\n open={openState}\n onOpenChange={newOpen => handleOpenChange(newOpen)}\n modal={false}\n />\n )\n}\n\nexport const Popover: React.FC<PopoverProps> & Partials = ({\n open = false,\n onOpen,\n onClose,\n triggersOn = 'press',\n variant = 'dark',\n ...restProps\n}) => (\n <PopoverProvider\n open={open}\n onOpen={onOpen}\n onClose={onClose}\n triggersOn={triggersOn}\n variant={variant}\n >\n <Root {...restProps} />\n </PopoverProvider>\n)\n\n// Partials\n// -----------------------------------------------------------------------------\ninterface Partials {\n Trigger: typeof Trigger\n Content: typeof Content\n Close: typeof Close\n Portal: typeof Portal\n}\n\nPopover.Trigger = Trigger\nPopover.Content = Content\nPopover.Close = Close\nPopover.Portal = Portal\n"],"names":["styled","RadixTrigger","createContext","useState","useRef","React","useContext","RadixContent","animations","Primitive","RadixArrow","useSize","RadixClose","useComposedRefs","IconCross","RadixPortal","RadixPopover"],"mappings":"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"}
|
package/dist/module.js
CHANGED
|
@@ -3,9 +3,10 @@ import * as RadixPopover from '@radix-ui/react-popover';
|
|
|
3
3
|
import { Trigger as Trigger$1, Content as Content$1, Arrow as Arrow$1, Close as Close$1, Portal as Portal$1 } from '@radix-ui/react-popover';
|
|
4
4
|
import { styled } from '@mirohq/design-system-stitches';
|
|
5
5
|
import { useSize } from '@radix-ui/react-use-size';
|
|
6
|
-
import { animations
|
|
6
|
+
import { animations } from '@mirohq/design-system-styles';
|
|
7
7
|
import { Primitive } from '@mirohq/design-system-primitive';
|
|
8
8
|
import { useComposedRefs } from '@radix-ui/react-compose-refs';
|
|
9
|
+
import { IconCross } from '@mirohq/design-system-icons';
|
|
9
10
|
|
|
10
11
|
const StyledTrigger = styled(Trigger$1);
|
|
11
12
|
|
|
@@ -331,17 +332,6 @@ const Content = React.forwardRef(
|
|
|
331
332
|
}
|
|
332
333
|
);
|
|
333
334
|
|
|
334
|
-
const StyledCloseIcon = styled(Primitive.svg, {
|
|
335
|
-
fill: "$white",
|
|
336
|
-
width: "$3",
|
|
337
|
-
height: "$3",
|
|
338
|
-
path: {
|
|
339
|
-
stroke: "$white",
|
|
340
|
-
strokeWidth: "2",
|
|
341
|
-
strokeLinecap: "round",
|
|
342
|
-
strokeLinejoin: "round"
|
|
343
|
-
}
|
|
344
|
-
});
|
|
345
335
|
const StyledClose = styled(Close$1, {
|
|
346
336
|
all: "unset",
|
|
347
337
|
fontFamily: "inherit",
|
|
@@ -352,37 +342,30 @@ const StyledClose = styled(Close$1, {
|
|
|
352
342
|
justifyContent: "center",
|
|
353
343
|
color: "$white",
|
|
354
344
|
position: "absolute",
|
|
355
|
-
top: "
|
|
356
|
-
right: "
|
|
345
|
+
top: "5px",
|
|
346
|
+
right: "5px",
|
|
357
347
|
borderRadius: "$50",
|
|
358
348
|
cursor: "pointer",
|
|
359
349
|
"&:hover": {
|
|
360
350
|
backgroundColor: "rgba(255, 255, 255, 0.12)"
|
|
361
351
|
},
|
|
362
352
|
"&:focus-visible": {
|
|
363
|
-
boxShadow:
|
|
353
|
+
boxShadow: "$focus-controls"
|
|
364
354
|
},
|
|
365
355
|
variants: {
|
|
366
356
|
variant: {
|
|
367
357
|
light: {
|
|
368
|
-
|
|
369
|
-
path: {
|
|
370
|
-
stroke: "$black"
|
|
371
|
-
}
|
|
372
|
-
}
|
|
358
|
+
color: "$black"
|
|
373
359
|
},
|
|
374
|
-
dark: {
|
|
360
|
+
dark: {
|
|
361
|
+
"&:focus-visible": {
|
|
362
|
+
boxShadow: "0 0 0 1px #0F0F0F, 0 0 0 3px #6881FF, 0 0 0 5px #4961f699"
|
|
363
|
+
}
|
|
364
|
+
}
|
|
375
365
|
}
|
|
376
366
|
}
|
|
377
367
|
});
|
|
378
368
|
|
|
379
|
-
const CloseIcon = () => /* @__PURE__ */ React.createElement(StyledCloseIcon, {
|
|
380
|
-
viewBox: "0 0 12 12"
|
|
381
|
-
}, /* @__PURE__ */ React.createElement("path", {
|
|
382
|
-
d: "M1.99878 10.0025L10.0013 2"
|
|
383
|
-
}), /* @__PURE__ */ React.createElement("path", {
|
|
384
|
-
d: "M10.0013 10.0024L1.99878 1.99996"
|
|
385
|
-
}));
|
|
386
369
|
const Close = React.forwardRef((props, forwardRef) => {
|
|
387
370
|
const { closeBtnRef, variant } = usePopoverContext();
|
|
388
371
|
const composedTriggerRef = useComposedRefs(forwardRef, closeBtnRef);
|
|
@@ -391,7 +374,9 @@ const Close = React.forwardRef((props, forwardRef) => {
|
|
|
391
374
|
ref: composedTriggerRef,
|
|
392
375
|
"data-testid": "close-icon",
|
|
393
376
|
variant
|
|
394
|
-
}, /* @__PURE__ */ React.createElement(
|
|
377
|
+
}, /* @__PURE__ */ React.createElement(IconCross, {
|
|
378
|
+
size: "small"
|
|
379
|
+
}));
|
|
395
380
|
});
|
|
396
381
|
|
|
397
382
|
const Portal = (props) => /* @__PURE__ */ React.createElement(Portal$1, {
|
package/dist/module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sources":["../src/partials/trigger.styled.tsx","../src/use-popover-context.tsx","../src/partials/trigger.tsx","../src/partials/content.styled.tsx","../src/partials/line.styled.tsx","../src/partials/line.tsx","../src/partials/arrow.styled.tsx","../src/partials/arrow.tsx","../src/partials/content.tsx","../src/partials/close.styled.tsx","../src/partials/close.tsx","../src/partials/portal.tsx","../src/popover.tsx"],"sourcesContent":["import { Trigger as RadixTrigger } from '@radix-ui/react-popover'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledTrigger = styled(RadixTrigger)\nexport type StyledTriggerProps = StrictComponentProps<typeof StyledTrigger>\n","import React, { createContext, useState, useRef, useContext } from 'react'\nimport type { PropsWithChildren } from 'react'\n\nimport type { Variant, TriggersOn } from './types'\n\ninterface PopoverValues {\n open: boolean\n onOpen?: () => void\n onClose?: () => void\n triggersOn: TriggersOn\n variant?: Variant\n}\n\ninterface PopoverContextProps {\n openState: boolean\n pressed: boolean\n hoveredOut: boolean\n hoveredIn: boolean\n setOpenState: (open: boolean) => void\n setPressed: (pressed: boolean) => void\n handleEnter: () => void\n handleLeave: () => void\n handleOpenChange: (open: boolean) => void\n setHoveredOut: (hoveredOut: boolean) => void\n closeBtnRef: React.RefObject<HTMLButtonElement>\n variant?: Variant\n}\n\nconst ON_LEAVE_DURATION = 220\nconst ON_ENTER_DURATION = 200\n\nconst PopoverContext = createContext<PopoverContextProps>({} as any)\n\n/**\n * The PopoverProvider is used to manage the state of the popover,\n * when it opens or closes, and what triggers it.\n */\nexport const PopoverProvider = ({\n open,\n onOpen,\n onClose,\n children,\n triggersOn,\n variant,\n}: PropsWithChildren<PopoverValues>): any => {\n const [openState, setOpenState] = useState(open)\n const [pressed, setPressed] = useState(false)\n const [hoveredOut, setHoveredOut] = useState(false)\n const [hoveredIn, setHoveredIn] = useState(false)\n const [hoveredInFirstTime, setHoveredInFirstTime] = useState(false)\n\n const leaveTimer = useRef<ReturnType<typeof setTimeout>>()\n const enterTimer = useRef<ReturnType<typeof setTimeout>>()\n const closeBtnRef = React.useRef<HTMLButtonElement>(null)\n\n const handleLeave = (): void => {\n if (triggersOn === 'press') {\n return\n }\n\n clearTimeout(leaveTimer.current)\n clearTimeout(enterTimer.current)\n\n leaveTimer.current = setTimeout(() => {\n setOpenState(false)\n setHoveredOut(true)\n setHoveredIn(false)\n handleOnOpenCloseChange(false)\n }, ON_LEAVE_DURATION)\n }\n\n const handleEnter = (): void => {\n if (triggersOn === 'press') {\n return\n }\n\n if (!pressed) {\n clearTimeout(leaveTimer.current)\n clearTimeout(enterTimer.current)\n\n enterTimer.current = setTimeout(() => {\n setHoveredIn(true)\n setOpenState(true)\n handleOnOpenCloseChange(true)\n }, ON_ENTER_DURATION)\n }\n }\n\n const handleOpenChange = (newOpen: boolean): void => {\n if (pressed && triggersOn === 'hover') {\n return setPressed(false)\n }\n\n if (newOpen !== openState) {\n setOpenState(newOpen)\n handleOnOpenCloseChange(newOpen)\n\n clearTimeout(enterTimer.current)\n\n if (!newOpen && leaveTimer.current !== undefined) {\n clearTimeout(leaveTimer.current)\n leaveTimer.current = undefined\n }\n }\n }\n\n const handleOnOpenCloseChange = (newOpen: boolean): void => {\n if (!hoveredInFirstTime && newOpen) {\n setHoveredInFirstTime(true)\n onOpen?.()\n }\n\n if (!newOpen) {\n if (triggersOn === 'hover' && hoveredInFirstTime) {\n setHoveredInFirstTime(false)\n }\n onClose?.()\n }\n }\n\n return (\n <PopoverContext.Provider\n value={{\n openState,\n hoveredIn,\n hoveredOut,\n pressed,\n setOpenState,\n setHoveredOut,\n setPressed,\n handleEnter,\n handleLeave,\n handleOpenChange,\n closeBtnRef,\n variant,\n }}\n >\n {children}\n </PopoverContext.Provider>\n )\n}\n\n/**\n * The usePopoverContext hook is used to access the state of the popover.\n */\nexport const usePopoverContext = (): PopoverContextProps =>\n useContext(PopoverContext)\n","import React from 'react'\nimport type { ElementRef, DOMAttributes } from 'react'\n\nimport { StyledTrigger } from './trigger.styled'\nimport { usePopoverContext } from '../use-popover-context'\nimport type { StyledTriggerProps } from './trigger.styled'\n\nexport interface TriggerProps extends StyledTriggerProps {\n /**\n * temporary the same as onClick, later will be added touch events support\n */\n onPress?: DOMAttributes<HTMLElement>['onClick']\n}\n\n/**\n * The trigger component is used to render the trigger element for the popover.\n */\nexport const Trigger = React.forwardRef<\n ElementRef<typeof StyledTrigger>,\n TriggerProps\n>(({ onPress, onClick, ...restProps }, forwardRef) => {\n const { handleEnter, handleLeave, setPressed } = usePopoverContext()\n\n return (\n <StyledTrigger\n {...restProps}\n onClick={e => {\n ;(onPress ?? onClick)?.(e)\n\n // @ts-expect-error\n if (e.pointerType === 'keyboard') {\n return\n }\n\n setPressed(true)\n }}\n onMouseEnter={handleEnter}\n onMouseLeave={handleLeave}\n ref={forwardRef}\n />\n )\n})\n","import { Content as RadixContent } from '@radix-ui/react-popover'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { animations } from '@mirohq/design-system-styles'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledContent = styled(RadixContent, {\n backgroundColor: '$black',\n borderRadius: '$50',\n color: '$white',\n padding: '$200',\n boxShadow: '0 $1 $4 rgba(9, 9, 9, 0.4)',\n fontSize: '14px',\n lineHeight: '20px',\n '@media (prefers-reduced-motion: no-preference)': {\n animationDuration: '220ms',\n animationTimingFunction: 'ease',\n willChange: 'opacity',\n '&[data-state=\"open\"]': {\n animationName: animations.fadeIn,\n },\n '&[data-state=\"closed\"]': {\n animationName: animations.fadeOut,\n },\n },\n variants: {\n variant: {\n light: {\n background: '$white',\n boxShadow: '$50',\n color: '$black',\n },\n dark: {},\n },\n },\n zIndex: '$popover',\n})\n\nexport type StyledContentProps = StrictComponentProps<typeof StyledContent>\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { CSSProperties } from '@stitches/react'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\ntype Side = 'top' | 'right' | 'bottom' | 'left'\n\ninterface AlignStyle {\n [x: string]: CSSProperties\n}\n\nconst getAlignXStyle = (side: Side, width: number): AlignStyle => ({\n [`[data-side=\"${side}\"][data-align=\"start\"] > &`]: {\n left: `${width * 2}px`,\n },\n [`[data-side=\"${side}\"][data-align=\"center\"] > &`]: {\n left: `calc(50% - ${width / 2}px)`,\n },\n [`[data-side=\"${side}\"][data-align=\"end\"] > &`]: {\n left: `calc(100% - ${width * 3}px)`,\n },\n})\n\nconst getAlignYStyle = (\n side: Side,\n width: number,\n height: number\n): AlignStyle => ({\n [`[data-side=\"${side}\"][data-align=\"start\"] > &`]: {\n bottom: `calc(100% - (${height - width}px))`,\n },\n [`[data-side=\"${side}\"][data-align=\"center\"] > &`]: {\n bottom: `calc(50% - ${height / 2}px)`,\n },\n [`[data-side=\"${side}\"][data-align=\"end\"] > &`]: { bottom: `-${width}px` },\n})\n\nexport const getPlacement = (width: number, height: number): any => {\n const halfHeight = height / 2\n const halfWidth = width / 2\n\n return {\n '[data-side=\"top\"] > &': { bottom: `-${height}px` },\n ...getAlignXStyle('top', width),\n '[data-side=\"bottom\"] > &': {\n bottom: '100%',\n transform: 'rotate(180deg)',\n },\n ...getAlignXStyle('bottom', width),\n '[data-side=\"right\"] > &': {\n left: `-${halfHeight + halfWidth}px`,\n transform: 'rotate(90deg)',\n },\n ...getAlignYStyle('right', width, height),\n '[data-side=\"left\"] > &': {\n left: `calc(100% + ${halfHeight - halfWidth}px)`,\n transform: 'rotate(270deg)',\n },\n ...getAlignYStyle('left', width, height),\n }\n}\n\nexport const StyledLine = styled(Primitive.svg, {\n fill: 'none',\n width: '6px',\n height: '50px',\n position: 'absolute',\n '& rect': {\n fill: 'rgba(66, 98, 255, 1)',\n },\n '& [id=\"line\"]': {\n width: '44px',\n height: '1px',\n transform: 'rotate(90 3.5 0)',\n },\n '& [id=\"circle\"]': {\n width: '6px',\n height: '6px',\n rx: '3px',\n transform: 'rotate(90 6 44)',\n },\n})\n\nexport type StyledLineProps = StrictComponentProps<typeof StyledLine>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledLine, getPlacement } from './line.styled'\nimport type { StyledLineProps } from './line.styled'\n\nexport interface LineProps extends StyledLineProps {}\n\nexport const Line = React.forwardRef<ElementRef<typeof StyledLine>, LineProps>(\n (props, forwardRef) => {\n const placement = getPlacement(6, 50)\n return (\n <StyledLine\n {...props}\n css={{ ...placement }}\n ref={forwardRef}\n viewBox='0 0 6 50'\n aria-hidden\n >\n <rect id='line' x='3.5' transform='rotate(90 3.5 0)' />\n <rect id='circle' x='6' y='44' transform='rotate(90 6 44)' />\n </StyledLine>\n )\n }\n)\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { Arrow as RadixArrow } from '@radix-ui/react-popover'\n\nexport const StyledArrow = styled(RadixArrow, {\n fill: '$black',\n height: '$1',\n paddingX: '2px',\n width: '$3',\n variants: {\n variant: {\n light: {\n fill: '$white',\n },\n dark: {},\n },\n },\n})\n\nexport type StyledArrowProps = StrictComponentProps<typeof StyledArrow>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledArrow } from './arrow.styled'\nimport type { StyledArrowProps } from './arrow.styled'\nimport { usePopoverContext } from '../use-popover-context'\n\nexport interface ArrowProps extends StyledArrowProps {}\n\nexport const Arrow = React.forwardRef<\n ElementRef<typeof StyledArrow>,\n ArrowProps\n>((props, forwardRef) => {\n const { variant } = usePopoverContext()\n return (\n <StyledArrow {...props} variant={variant} aria-hidden ref={forwardRef} />\n )\n})\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport { useSize } from '@radix-ui/react-use-size'\n\nimport { StyledContent } from './content.styled'\nimport { Line } from './line'\nimport { Arrow } from './arrow'\nimport { usePopoverContext } from '../use-popover-context'\nimport type { StyledContentProps } from './content.styled'\nimport type {\n Align,\n Side,\n AnchorType,\n PointerDownOutsideEvent,\n FocusOutsideEvent,\n} from '../types'\n\nexport interface ContentProps extends StyledContentProps {\n /**\n * When true, overrides the side and align preferences to prevent collisions\n * with window edges.\n */\n avoidCollisions?: boolean\n\n /**\n * The preferred alignment against the trigger. May change when collisions occur.\n */\n align?: Align\n\n /**\n * An offset in pixels from the \"start\" or \"end\" alignment option.\n */\n alignOffset?: number\n\n /**\n * The preferred side of the trigger to render against when open.\n * Will be reversed when collisions occur and avoidCollisions is enabled.\n */\n side?: Side\n\n /**\n * The distance in pixels from the boundary edges where collision detection\n * should occur. Accepts a number (same for all sides).\n */\n collisionPadding?: number\n\n /**\n * The type of anchor to render.\n */\n anchor?: AnchorType\n\n /**\n * Whether to render in a Portal when open.\n */\n portalled?: boolean\n\n /**\n * Used to force mounting when more control is needed. Useful when controlling\n * animation with React animation libraries.\n */\n forceMount?: true\n\n /**\n * The element used as the collision boundary. By default this is the\n * viewport, though you can provide additional element(s) to be included in\n * this check.\n */\n collisionBoundary?: Element | null\n\n /**\n * The sticky behavior on the align axis. \"partial\" will keep the content in\n * the boundary as long as the trigger is at least partially in the boundary\n * whilst \"always\" will keep the content in the boundary regardless.\n */\n sticky?: 'partial' | 'always'\n\n /**\n * Whether to hide the content when the trigger becomes fully occluded.\n */\n hideWhenDetached?: boolean\n\n /**\n * Event handler called when a pointer event occurs outside the bounds of the\n * component. It can be prevented by calling event.preventDefault.\n */\n onPointerDownOutside?: (event: PointerDownOutsideEvent) => void\n\n /**\n * Event handler called when focus moves outside the bounds of the component.\n * It can be prevented by calling event.preventDefault.\n */\n onFocusOutside?: (event: FocusOutsideEvent) => void\n\n /**\n * Event handler called when the escape key is down. It can be prevented by\n * calling event.preventDefault.\n */\n onEscapeKeyDown?: (event: KeyboardEvent) => void\n\n /**\n * Event handler called when an interaction (pointer or focus event) happens\n * outside the bounds of the component. It can be prevented by calling\n * event.preventDefault.\n */\n onInteractOutside?: (\n event: PointerDownOutsideEvent | FocusOutsideEvent\n ) => void\n}\n\n/**\n * The content component is used to render rich content elements for the popover.\n */\nexport const Content = React.forwardRef<\n ElementRef<typeof StyledContent>,\n ContentProps\n>(\n (\n {\n align = 'center',\n alignOffset = 0,\n avoidCollisions = true,\n collisionPadding = 0,\n side = 'top',\n children,\n anchor = 'line',\n sticky = 'partial',\n hideWhenDetached = false,\n ...restProps\n },\n forwardRef\n ) => {\n const [line, setLine] = React.useState<SVGElement | null>(null)\n const lineSize = useSize(line)\n const {\n handleLeave,\n handleEnter,\n hoveredIn,\n hoveredOut,\n setHoveredOut,\n closeBtnRef,\n variant,\n } = usePopoverContext()\n\n const anchorEl = React.useMemo(() => {\n switch (anchor) {\n case 'arrow':\n return <Arrow />\n case 'line':\n return <Line ref={setLine} />\n default:\n return null\n }\n }, [anchor, setLine])\n\n return (\n <StyledContent\n {...restProps}\n align={align}\n alignOffset={alignOffset}\n avoidCollisions={avoidCollisions}\n collisionPadding={collisionPadding}\n side={side}\n sideOffset={anchor === 'line' ? lineSize?.height : 0}\n ref={forwardRef}\n onMouseEnter={handleEnter}\n onMouseLeave={handleLeave}\n role='dialog'\n aria-modal='true'\n sticky={sticky}\n hideWhenDetached={hideWhenDetached}\n variant={variant}\n onCloseAutoFocus={(e: Event) => {\n if (hoveredOut) {\n e.preventDefault()\n setHoveredOut(false)\n }\n }}\n onOpenAutoFocus={(e: Event) => {\n e.preventDefault()\n\n if (hoveredIn) {\n return\n }\n closeBtnRef?.current?.focus()\n }}\n >\n {children}\n {anchorEl}\n </StyledContent>\n )\n }\n)\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { Close as RadixClose } from '@radix-ui/react-popover'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { focus } from '@mirohq/design-system-styles'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledCloseIcon = styled(Primitive.svg, {\n fill: '$white',\n width: '$3',\n height: '$3',\n path: {\n stroke: '$white',\n strokeWidth: '2',\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n },\n})\n\nexport const StyledClose = styled(RadixClose, {\n all: 'unset',\n fontFamily: 'inherit',\n height: '$6',\n width: '$6',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: '$white',\n position: 'absolute',\n top: '$50',\n right: '$50',\n borderRadius: '$50',\n cursor: 'pointer',\n\n '&:hover': {\n backgroundColor: 'rgba(255, 255, 255, 0.12)',\n },\n '&:focus-visible': {\n boxShadow: `inset 0 0 0 1px white, ${focus.defaults['&:focus-visible'].boxShadow}`,\n },\n\n variants: {\n variant: {\n light: {\n [`& ${StyledCloseIcon}`]: {\n path: {\n stroke: '$black',\n },\n },\n },\n dark: {},\n },\n },\n})\n\nexport type StyledCloseProps = StrictComponentProps<typeof StyledClose>\n","import React from 'react'\nimport { useComposedRefs } from '@radix-ui/react-compose-refs'\nimport type { ElementRef } from 'react'\n\nimport { StyledClose, StyledCloseIcon } from './close.styled'\nimport { usePopoverContext } from '../use-popover-context'\nimport type { StyledCloseProps } from './close.styled'\n\nexport interface CloseProps extends StyledCloseProps {}\n\nexport const CloseIcon = (): JSX.Element => (\n <StyledCloseIcon viewBox='0 0 12 12'>\n <path d='M1.99878 10.0025L10.0013 2' />\n <path d='M10.0013 10.0024L1.99878 1.99996' />\n </StyledCloseIcon>\n)\n\nexport const Close = React.forwardRef<\n ElementRef<typeof StyledClose>,\n CloseProps\n>((props, forwardRef) => {\n const { closeBtnRef, variant } = usePopoverContext()\n const composedTriggerRef = useComposedRefs(forwardRef, closeBtnRef)\n\n return (\n <StyledClose\n {...props}\n ref={composedTriggerRef}\n data-testid='close-icon'\n variant={variant}\n >\n <CloseIcon />\n </StyledClose>\n )\n})\n","import React from 'react'\nimport type { PopoverPortalProps } from '@radix-ui/react-popover'\nimport { Portal as RadixPortal } from '@radix-ui/react-popover'\n\nexport interface PortalProps extends PopoverPortalProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries. If used on this part,\n * it will be inherited by Popover.Content.\n */\n forceMount?: true\n\n /**\n * Specify a container element to portal the content into.\n */\n container?: HTMLElement | null\n}\n\nexport const Portal: React.FC<PortalProps> = props => <RadixPortal {...props} />\n","import React from 'react'\nimport * as RadixPopover from '@radix-ui/react-popover'\n\nimport { Trigger } from './partials/trigger'\nimport { Content } from './partials/content'\nimport { Close } from './partials/close'\nimport { Portal } from './partials/portal'\nimport { PopoverProvider, usePopoverContext } from './use-popover-context'\nimport type { Variant, TriggersOn } from './types'\n\nexport interface PopoverProps {\n /**\n * The current controlled state of the popover.\n */\n open?: boolean\n\n /**\n * Event handler called when the popover opens.\n */\n onOpen?: () => void\n\n /**\n * Event handler called when the popover closes.\n */\n onClose?: () => void\n\n /**\n * Defines whether the interaction with outside elements will be enabled.\n */\n interactOutside?: boolean\n\n /**\n * The event that will trigger the popover to open.\n */\n triggersOn?: TriggersOn\n\n /**\n * Change the popover's appearance\n */\n variant?: Variant\n}\n\nconst Root: React.FC<PopoverProps> = ({ onOpen, onClose, ...restProps }) => {\n const { openState, handleOpenChange } = usePopoverContext()\n return (\n <RadixPopover.Root\n {...restProps}\n open={openState}\n onOpenChange={newOpen => handleOpenChange(newOpen)}\n modal={false}\n />\n )\n}\n\nexport const Popover: React.FC<PopoverProps> & Partials = ({\n open = false,\n onOpen,\n onClose,\n triggersOn = 'press',\n variant = 'dark',\n ...restProps\n}) => (\n <PopoverProvider\n open={open}\n onOpen={onOpen}\n onClose={onClose}\n triggersOn={triggersOn}\n variant={variant}\n >\n <Root {...restProps} />\n </PopoverProvider>\n)\n\n// Partials\n// -----------------------------------------------------------------------------\ninterface Partials {\n Trigger: typeof Trigger\n Content: typeof Content\n Close: typeof Close\n Portal: typeof Portal\n}\n\nPopover.Trigger = Trigger\nPopover.Content = Content\nPopover.Close = Close\nPopover.Portal = Portal\n"],"names":["RadixTrigger","RadixContent","RadixArrow","RadixClose","RadixPortal"],"mappings":";;;;;;;;;AAIa,MAAA,aAAA,GAAgB,OAAOA,SAAY,CAAA;;ACwBhD,MAAM,iBAAoB,GAAA,GAAA,CAAA;AAC1B,MAAM,iBAAoB,GAAA,GAAA,CAAA;AAE1B,MAAM,cAAA,GAAiB,aAAmC,CAAA,EAAS,CAAA,CAAA;AAM5D,MAAM,kBAAkB,CAAC;AAAA,EAC9B,IAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AAAA,EACA,OAAA;AACF,CAA6C,KAAA;AAC3C,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,SAAS,IAAI,CAAA,CAAA;AAC/C,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,SAAS,KAAK,CAAA,CAAA;AAC5C,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAI,SAAS,KAAK,CAAA,CAAA;AAClD,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,SAAS,KAAK,CAAA,CAAA;AAChD,EAAA,MAAM,CAAC,kBAAA,EAAoB,qBAAqB,CAAA,GAAI,SAAS,KAAK,CAAA,CAAA;AAElE,EAAA,MAAM,aAAa,MAAsC,EAAA,CAAA;AACzD,EAAA,MAAM,aAAa,MAAsC,EAAA,CAAA;AACzD,EAAM,MAAA,WAAA,GAAc,KAAM,CAAA,MAAA,CAA0B,IAAI,CAAA,CAAA;AAExD,EAAA,MAAM,cAAc,MAAY;AAC9B,IAAA,IAAI,eAAe,OAAS,EAAA;AAC1B,MAAA,OAAA;AAAA,KACF;AAEA,IAAA,YAAA,CAAa,WAAW,OAAO,CAAA,CAAA;AAC/B,IAAA,YAAA,CAAa,WAAW,OAAO,CAAA,CAAA;AAE/B,IAAW,UAAA,CAAA,OAAA,GAAU,WAAW,MAAM;AACpC,MAAA,YAAA,CAAa,KAAK,CAAA,CAAA;AAClB,MAAA,aAAA,CAAc,IAAI,CAAA,CAAA;AAClB,MAAA,YAAA,CAAa,KAAK,CAAA,CAAA;AAClB,MAAA,uBAAA,CAAwB,KAAK,CAAA,CAAA;AAAA,OAC5B,iBAAiB,CAAA,CAAA;AAAA,GACtB,CAAA;AAEA,EAAA,MAAM,cAAc,MAAY;AAC9B,IAAA,IAAI,eAAe,OAAS,EAAA;AAC1B,MAAA,OAAA;AAAA,KACF;AAEA,IAAA,IAAI,CAAC,OAAS,EAAA;AACZ,MAAA,YAAA,CAAa,WAAW,OAAO,CAAA,CAAA;AAC/B,MAAA,YAAA,CAAa,WAAW,OAAO,CAAA,CAAA;AAE/B,MAAW,UAAA,CAAA,OAAA,GAAU,WAAW,MAAM;AACpC,QAAA,YAAA,CAAa,IAAI,CAAA,CAAA;AACjB,QAAA,YAAA,CAAa,IAAI,CAAA,CAAA;AACjB,QAAA,uBAAA,CAAwB,IAAI,CAAA,CAAA;AAAA,SAC3B,iBAAiB,CAAA,CAAA;AAAA,KACtB;AAAA,GACF,CAAA;AAEA,EAAM,MAAA,gBAAA,GAAmB,CAAC,OAA2B,KAAA;AACnD,IAAI,IAAA,OAAA,IAAW,eAAe,OAAS,EAAA;AACrC,MAAA,OAAO,WAAW,KAAK,CAAA,CAAA;AAAA,KACzB;AAEA,IAAA,IAAI,YAAY,SAAW,EAAA;AACzB,MAAA,YAAA,CAAa,OAAO,CAAA,CAAA;AACpB,MAAA,uBAAA,CAAwB,OAAO,CAAA,CAAA;AAE/B,MAAA,YAAA,CAAa,WAAW,OAAO,CAAA,CAAA;AAE/B,MAAA,IAAI,CAAC,OAAA,IAAW,UAAW,CAAA,OAAA,KAAY,KAAW,CAAA,EAAA;AAChD,QAAA,YAAA,CAAa,WAAW,OAAO,CAAA,CAAA;AAC/B,QAAA,UAAA,CAAW,OAAU,GAAA,KAAA,CAAA,CAAA;AAAA,OACvB;AAAA,KACF;AAAA,GACF,CAAA;AAEA,EAAM,MAAA,uBAAA,GAA0B,CAAC,OAA2B,KAAA;AAC1D,IAAI,IAAA,CAAC,sBAAsB,OAAS,EAAA;AAClC,MAAA,qBAAA,CAAsB,IAAI,CAAA,CAAA;AAC1B,MAAA,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,EAAA,CAAA;AAAA,KACF;AAEA,IAAA,IAAI,CAAC,OAAS,EAAA;AACZ,MAAI,IAAA,UAAA,KAAe,WAAW,kBAAoB,EAAA;AAChD,QAAA,qBAAA,CAAsB,KAAK,CAAA,CAAA;AAAA,OAC7B;AACA,MAAA,OAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,OAAA,EAAA,CAAA;AAAA,KACF;AAAA,GACF,CAAA;AAEA,EACE,uBAAA,KAAA,CAAA,aAAA,CAAC,eAAe,QAAf,EAAA;AAAA,IACC,KAAO,EAAA;AAAA,MACL,SAAA;AAAA,MACA,SAAA;AAAA,MACA,UAAA;AAAA,MACA,OAAA;AAAA,MACA,YAAA;AAAA,MACA,aAAA;AAAA,MACA,UAAA;AAAA,MACA,WAAA;AAAA,MACA,WAAA;AAAA,MACA,gBAAA;AAAA,MACA,WAAA;AAAA,MACA,OAAA;AAAA,KACF;AAAA,GAAA,EAEC,QACH,CAAA,CAAA;AAEJ,CAAA,CAAA;AAKa,MAAA,iBAAA,GAAoB,MAC/B,UAAA,CAAW,cAAc,CAAA;;ACjId,MAAA,OAAA,GAAU,MAAM,UAG3B,CAAA,CAAC,EAAE,OAAS,EAAA,OAAA,EAAA,GAAY,SAAU,EAAA,EAAG,UAAe,KAAA;AACpD,EAAA,MAAM,EAAE,WAAA,EAAa,WAAa,EAAA,UAAA,KAAe,iBAAkB,EAAA,CAAA;AAEnE,EAAA,uBACG,KAAA,CAAA,aAAA,CAAA,aAAA,EAAA;AAAA,IACE,GAAG,SAAA;AAAA,IACJ,SAAS,CAAK,CAAA,KAAA;AA1BpB,MAAA,IAAA,EAAA,CAAA;AA2BS,MAAC,CAAA,EAAA,GAAA,OAAA,IAAA,IAAA,GAAA,OAAA,GAAW,YAAX,IAAsB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA;AAGxB,MAAI,IAAA,CAAA,CAAE,gBAAgB,UAAY,EAAA;AAChC,QAAA,OAAA;AAAA,OACF;AAEA,MAAA,UAAA,CAAW,IAAI,CAAA,CAAA;AAAA,KACjB;AAAA,IACA,YAAc,EAAA,WAAA;AAAA,IACd,YAAc,EAAA,WAAA;AAAA,IACd,GAAK,EAAA,UAAA;AAAA,GACP,CAAA,CAAA;AAEJ,CAAC,CAAA;;ACpCY,MAAA,aAAA,GAAgB,OAAOC,SAAc,EAAA;AAAA,EAChD,eAAiB,EAAA,QAAA;AAAA,EACjB,YAAc,EAAA,KAAA;AAAA,EACd,KAAO,EAAA,QAAA;AAAA,EACP,OAAS,EAAA,MAAA;AAAA,EACT,SAAW,EAAA,4BAAA;AAAA,EACX,QAAU,EAAA,MAAA;AAAA,EACV,UAAY,EAAA,MAAA;AAAA,EACZ,gDAAkD,EAAA;AAAA,IAChD,iBAAmB,EAAA,OAAA;AAAA,IACnB,uBAAyB,EAAA,MAAA;AAAA,IACzB,UAAY,EAAA,SAAA;AAAA,IACZ,sBAAwB,EAAA;AAAA,MACtB,eAAe,UAAW,CAAA,MAAA;AAAA,KAC5B;AAAA,IACA,wBAA0B,EAAA;AAAA,MACxB,eAAe,UAAW,CAAA,OAAA;AAAA,KAC5B;AAAA,GACF;AAAA,EACA,QAAU,EAAA;AAAA,IACR,OAAS,EAAA;AAAA,MACP,KAAO,EAAA;AAAA,QACL,UAAY,EAAA,QAAA;AAAA,QACZ,SAAW,EAAA,KAAA;AAAA,QACX,KAAO,EAAA,QAAA;AAAA,OACT;AAAA,MACA,MAAM,EAAC;AAAA,KACT;AAAA,GACF;AAAA,EACA,MAAQ,EAAA,UAAA;AACV,CAAC,CAAA;;ACxBD,MAAM,cAAA,GAAiB,CAAC,IAAA,EAAY,KAA+B,MAAA;AAAA,EACjE,CAAC,eAAe,IAAmC,CAAA,0BAAA,CAAA,GAAA;AAAA,IACjD,IAAA,EAAM,GAAG,KAAQ,GAAA,CAAA,CAAA,EAAA,CAAA;AAAA,GACnB;AAAA,EACA,CAAC,eAAe,IAAoC,CAAA,2BAAA,CAAA,GAAA;AAAA,IAClD,IAAA,EAAM,cAAc,KAAQ,GAAA,CAAA,CAAA,GAAA,CAAA;AAAA,GAC9B;AAAA,EACA,CAAC,eAAe,IAAiC,CAAA,wBAAA,CAAA,GAAA;AAAA,IAC/C,IAAA,EAAM,eAAe,KAAQ,GAAA,CAAA,CAAA,GAAA,CAAA;AAAA,GAC/B;AACF,CAAA,CAAA,CAAA;AAEA,MAAM,cAAiB,GAAA,CACrB,IACA,EAAA,KAAA,EACA,MACgB,MAAA;AAAA,EAChB,CAAC,eAAe,IAAmC,CAAA,0BAAA,CAAA,GAAA;AAAA,IACjD,MAAA,EAAQ,gBAAgB,MAAS,GAAA,KAAA,CAAA,IAAA,CAAA;AAAA,GACnC;AAAA,EACA,CAAC,eAAe,IAAoC,CAAA,2BAAA,CAAA,GAAA;AAAA,IAClD,MAAA,EAAQ,cAAc,MAAS,GAAA,CAAA,CAAA,GAAA,CAAA;AAAA,GACjC;AAAA,EACA,CAAC,CAAe,YAAA,EAAA,IAAA,CAAA,wBAAA,CAAA,GAAiC,EAAE,MAAA,EAAQ,IAAI,KAAU,CAAA,EAAA,CAAA,EAAA;AAC3E,CAAA,CAAA,CAAA;AAEa,MAAA,YAAA,GAAe,CAAC,KAAA,EAAe,MAAwB,KAAA;AAClE,EAAA,MAAM,aAAa,MAAS,GAAA,CAAA,CAAA;AAC5B,EAAA,MAAM,YAAY,KAAQ,GAAA,CAAA,CAAA;AAE1B,EAAO,OAAA;AAAA,IACL,uBAAyB,EAAA,EAAE,MAAQ,EAAA,CAAA,CAAA,EAAI,MAAW,CAAA,EAAA,CAAA,EAAA;AAAA,IAClD,GAAG,cAAe,CAAA,KAAA,EAAO,KAAK,CAAA;AAAA,IAC9B,0BAA4B,EAAA;AAAA,MAC1B,MAAQ,EAAA,MAAA;AAAA,MACR,SAAW,EAAA,gBAAA;AAAA,KACb;AAAA,IACA,GAAG,cAAe,CAAA,QAAA,EAAU,KAAK,CAAA;AAAA,IACjC,yBAA2B,EAAA;AAAA,MACzB,IAAA,EAAM,IAAI,UAAa,GAAA,SAAA,CAAA,EAAA,CAAA;AAAA,MACvB,SAAW,EAAA,eAAA;AAAA,KACb;AAAA,IACA,GAAG,cAAA,CAAe,OAAS,EAAA,KAAA,EAAO,MAAM,CAAA;AAAA,IACxC,wBAA0B,EAAA;AAAA,MACxB,IAAA,EAAM,eAAe,UAAa,GAAA,SAAA,CAAA,GAAA,CAAA;AAAA,MAClC,SAAW,EAAA,gBAAA;AAAA,KACb;AAAA,IACA,GAAG,cAAA,CAAe,MAAQ,EAAA,KAAA,EAAO,MAAM,CAAA;AAAA,GACzC,CAAA;AACF,CAAA,CAAA;AAEa,MAAA,UAAA,GAAa,MAAO,CAAA,SAAA,CAAU,GAAK,EAAA;AAAA,EAC9C,IAAM,EAAA,MAAA;AAAA,EACN,KAAO,EAAA,KAAA;AAAA,EACP,MAAQ,EAAA,MAAA;AAAA,EACR,QAAU,EAAA,UAAA;AAAA,EACV,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,sBAAA;AAAA,GACR;AAAA,EACA,eAAiB,EAAA;AAAA,IACf,KAAO,EAAA,MAAA;AAAA,IACP,MAAQ,EAAA,KAAA;AAAA,IACR,SAAW,EAAA,kBAAA;AAAA,GACb;AAAA,EACA,iBAAmB,EAAA;AAAA,IACjB,KAAO,EAAA,KAAA;AAAA,IACP,MAAQ,EAAA,KAAA;AAAA,IACR,EAAI,EAAA,KAAA;AAAA,IACJ,SAAW,EAAA,iBAAA;AAAA,GACb;AACF,CAAC,CAAA;;ACzEM,MAAM,OAAO,KAAM,CAAA,UAAA;AAAA,EACxB,CAAC,OAAO,UAAe,KAAA;AACrB,IAAM,MAAA,SAAA,GAAY,YAAa,CAAA,CAAA,EAAG,EAAE,CAAA,CAAA;AACpC,IAAA,uBACG,KAAA,CAAA,aAAA,CAAA,UAAA,EAAA;AAAA,MACE,GAAG,KAAA;AAAA,MACJ,GAAA,EAAK,EAAE,GAAG,SAAU,EAAA;AAAA,MACpB,GAAK,EAAA,UAAA;AAAA,MACL,OAAQ,EAAA,UAAA;AAAA,MACR,aAAW,EAAA,IAAA;AAAA,KAAA,kBAEV,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AAAA,MAAK,EAAG,EAAA,MAAA;AAAA,MAAO,CAAE,EAAA,KAAA;AAAA,MAAM,SAAU,EAAA,kBAAA;AAAA,KAAmB,mBACpD,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AAAA,MAAK,EAAG,EAAA,QAAA;AAAA,MAAS,CAAE,EAAA,GAAA;AAAA,MAAI,CAAE,EAAA,IAAA;AAAA,MAAK,SAAU,EAAA,iBAAA;AAAA,KAAkB,CAC7D,CAAA,CAAA;AAAA,GAEJ;AACF,CAAA;;ACpBa,MAAA,WAAA,GAAc,OAAOC,OAAY,EAAA;AAAA,EAC5C,IAAM,EAAA,QAAA;AAAA,EACN,MAAQ,EAAA,IAAA;AAAA,EACR,QAAU,EAAA,KAAA;AAAA,EACV,KAAO,EAAA,IAAA;AAAA,EACP,QAAU,EAAA;AAAA,IACR,OAAS,EAAA;AAAA,MACP,KAAO,EAAA;AAAA,QACL,IAAM,EAAA,QAAA;AAAA,OACR;AAAA,MACA,MAAM,EAAC;AAAA,KACT;AAAA,GACF;AACF,CAAC,CAAA;;ACRM,MAAM,KAAQ,GAAA,KAAA,CAAM,UAGzB,CAAA,CAAC,OAAO,UAAe,KAAA;AACvB,EAAM,MAAA,EAAE,OAAQ,EAAA,GAAI,iBAAkB,EAAA,CAAA;AACtC,EAAA,uBACG,KAAA,CAAA,aAAA,CAAA,WAAA,EAAA;AAAA,IAAa,GAAG,KAAA;AAAA,IAAO,OAAA;AAAA,IAAkB,aAAW,EAAA,IAAA;AAAA,IAAC,GAAK,EAAA,UAAA;AAAA,GAAY,CAAA,CAAA;AAE3E,CAAC,CAAA;;AC+FM,MAAM,UAAU,KAAM,CAAA,UAAA;AAAA,EAI3B,CACE;AAAA,IACE,KAAQ,GAAA,QAAA;AAAA,IACR,WAAc,GAAA,CAAA;AAAA,IACd,eAAkB,GAAA,IAAA;AAAA,IAClB,gBAAmB,GAAA,CAAA;AAAA,IACnB,IAAO,GAAA,KAAA;AAAA,IACP,QAAA;AAAA,IACA,MAAS,GAAA,MAAA;AAAA,IACT,MAAS,GAAA,SAAA;AAAA,IACT,gBAAmB,GAAA,KAAA;AAAA,IAChB,GAAA,SAAA;AAAA,KAEL,UACG,KAAA;AACH,IAAA,MAAM,CAAC,IAAM,EAAA,OAAO,CAAI,GAAA,KAAA,CAAM,SAA4B,IAAI,CAAA,CAAA;AAC9D,IAAM,MAAA,QAAA,GAAW,QAAQ,IAAI,CAAA,CAAA;AAC7B,IAAM,MAAA;AAAA,MACJ,WAAA;AAAA,MACA,WAAA;AAAA,MACA,SAAA;AAAA,MACA,UAAA;AAAA,MACA,aAAA;AAAA,MACA,WAAA;AAAA,MACA,OAAA;AAAA,QACE,iBAAkB,EAAA,CAAA;AAEtB,IAAM,MAAA,QAAA,GAAW,KAAM,CAAA,OAAA,CAAQ,MAAM;AACnC,MAAA,QAAQ,MAAQ;AAAA,QACd,KAAK,OAAA;AACH,UAAA,2CAAQ,KAAM,EAAA,IAAA,CAAA,CAAA;AAAA,QAChB,KAAK,MAAA;AACH,UAAA,uBAAQ,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA;AAAA,YAAK,GAAK,EAAA,OAAA;AAAA,WAAS,CAAA,CAAA;AAAA,QAC7B;AACE,UAAO,OAAA,IAAA,CAAA;AAAA,OACX;AAAA,KACC,EAAA,CAAC,MAAQ,EAAA,OAAO,CAAC,CAAA,CAAA;AAEpB,IAAA,uBACG,KAAA,CAAA,aAAA,CAAA,aAAA,EAAA;AAAA,MACE,GAAG,SAAA;AAAA,MACJ,KAAA;AAAA,MACA,WAAA;AAAA,MACA,eAAA;AAAA,MACA,gBAAA;AAAA,MACA,IAAA;AAAA,MACA,UAAY,EAAA,MAAA,KAAW,MAAS,GAAA,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAU,MAAS,GAAA,CAAA;AAAA,MACnD,GAAK,EAAA,UAAA;AAAA,MACL,YAAc,EAAA,WAAA;AAAA,MACd,YAAc,EAAA,WAAA;AAAA,MACd,IAAK,EAAA,QAAA;AAAA,MACL,YAAW,EAAA,MAAA;AAAA,MACX,MAAA;AAAA,MACA,gBAAA;AAAA,MACA,OAAA;AAAA,MACA,gBAAA,EAAkB,CAAC,CAAa,KAAA;AAC9B,QAAA,IAAI,UAAY,EAAA;AACd,UAAA,CAAA,CAAE,cAAe,EAAA,CAAA;AACjB,UAAA,aAAA,CAAc,KAAK,CAAA,CAAA;AAAA,SACrB;AAAA,OACF;AAAA,MACA,eAAA,EAAiB,CAAC,CAAa,KAAA;AAjLvC,QAAA,IAAA,EAAA,CAAA;AAkLU,QAAA,CAAA,CAAE,cAAe,EAAA,CAAA;AAEjB,QAAA,IAAI,SAAW,EAAA;AACb,UAAA,OAAA;AAAA,SACF;AACA,QAAA,CAAA,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CAAa,YAAb,IAAsB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAA,EAAA,CAAA;AAAA,OACxB;AAAA,KAAA,EAEC,UACA,QACH,CAAA,CAAA;AAAA,GAEJ;AACF,CAAA;;ACzLa,MAAA,eAAA,GAAkB,MAAO,CAAA,SAAA,CAAU,GAAK,EAAA;AAAA,EACnD,IAAM,EAAA,QAAA;AAAA,EACN,KAAO,EAAA,IAAA;AAAA,EACP,MAAQ,EAAA,IAAA;AAAA,EACR,IAAM,EAAA;AAAA,IACJ,MAAQ,EAAA,QAAA;AAAA,IACR,WAAa,EAAA,GAAA;AAAA,IACb,aAAe,EAAA,OAAA;AAAA,IACf,cAAgB,EAAA,OAAA;AAAA,GAClB;AACF,CAAC,CAAA,CAAA;AAEY,MAAA,WAAA,GAAc,OAAOC,OAAY,EAAA;AAAA,EAC5C,GAAK,EAAA,OAAA;AAAA,EACL,UAAY,EAAA,SAAA;AAAA,EACZ,MAAQ,EAAA,IAAA;AAAA,EACR,KAAO,EAAA,IAAA;AAAA,EACP,OAAS,EAAA,MAAA;AAAA,EACT,UAAY,EAAA,QAAA;AAAA,EACZ,cAAgB,EAAA,QAAA;AAAA,EAChB,KAAO,EAAA,QAAA;AAAA,EACP,QAAU,EAAA,UAAA;AAAA,EACV,GAAK,EAAA,KAAA;AAAA,EACL,KAAO,EAAA,KAAA;AAAA,EACP,YAAc,EAAA,KAAA;AAAA,EACd,MAAQ,EAAA,SAAA;AAAA,EAER,SAAW,EAAA;AAAA,IACT,eAAiB,EAAA,2BAAA;AAAA,GACnB;AAAA,EACA,iBAAmB,EAAA;AAAA,IACjB,SAAW,EAAA,CAAA,uBAAA,EAA0B,KAAM,CAAA,QAAA,CAAS,iBAAmB,CAAA,CAAA,SAAA,CAAA,CAAA;AAAA,GACzE;AAAA,EAEA,QAAU,EAAA;AAAA,IACR,OAAS,EAAA;AAAA,MACP,KAAO,EAAA;AAAA,QACL,CAAC,KAAK,eAAoB,CAAA,CAAA,GAAA;AAAA,UACxB,IAAM,EAAA;AAAA,YACJ,MAAQ,EAAA,QAAA;AAAA,WACV;AAAA,SACF;AAAA,OACF;AAAA,MACA,MAAM,EAAC;AAAA,KACT;AAAA,GACF;AACF,CAAC,CAAA;;AC1CY,MAAA,SAAA,GAAY,sBACtB,KAAA,CAAA,aAAA,CAAA,eAAA,EAAA;AAAA,EAAgB,OAAQ,EAAA,WAAA;AAAA,CAAA,kBACtB,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AAAA,EAAK,CAAE,EAAA,4BAAA;AAAA,CAA6B,mBACpC,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AAAA,EAAK,CAAE,EAAA,kCAAA;AAAA,CAAmC,CAC7C,CAAA,CAAA;AAGK,MAAM,KAAQ,GAAA,KAAA,CAAM,UAGzB,CAAA,CAAC,OAAO,UAAe,KAAA;AACvB,EAAA,MAAM,EAAE,WAAA,EAAa,OAAQ,EAAA,GAAI,iBAAkB,EAAA,CAAA;AACnD,EAAM,MAAA,kBAAA,GAAqB,eAAgB,CAAA,UAAA,EAAY,WAAW,CAAA,CAAA;AAElE,EAAA,uBACG,KAAA,CAAA,aAAA,CAAA,WAAA,EAAA;AAAA,IACE,GAAG,KAAA;AAAA,IACJ,GAAK,EAAA,kBAAA;AAAA,IACL,aAAY,EAAA,YAAA;AAAA,IACZ,OAAA;AAAA,GAEA,kBAAA,KAAA,CAAA,aAAA,CAAC,eAAU,CACb,CAAA,CAAA;AAEJ,CAAC,CAAA;;AChBY,MAAA,MAAA,GAAgC,2BAAU,KAAA,CAAA,aAAA,CAAAC,QAAA,EAAA;AAAA,EAAa,GAAG,KAAA;AAAA,CAAO,CAAA;;ACwB9E,MAAM,OAA+B,CAAC,EAAE,MAAQ,EAAA,OAAA,EAAA,GAAY,WAAgB,KAAA;AAC1E,EAAA,MAAM,EAAE,SAAA,EAAW,gBAAiB,EAAA,GAAI,iBAAkB,EAAA,CAAA;AAC1D,EACE,uBAAA,KAAA,CAAA,aAAA,CAAC,aAAa,IAAb,EAAA;AAAA,IACE,GAAG,SAAA;AAAA,IACJ,IAAM,EAAA,SAAA;AAAA,IACN,YAAA,EAAc,CAAW,OAAA,KAAA,gBAAA,CAAiB,OAAO,CAAA;AAAA,IACjD,KAAO,EAAA,KAAA;AAAA,GACT,CAAA,CAAA;AAEJ,CAAA,CAAA;AAEO,MAAM,UAA6C,CAAC;AAAA,EACzD,IAAO,GAAA,KAAA;AAAA,EACP,MAAA;AAAA,EACA,OAAA;AAAA,EACA,UAAa,GAAA,OAAA;AAAA,EACb,OAAU,GAAA,MAAA;AAAA,EACP,GAAA,SAAA;AACL,CAAA,qBACG,KAAA,CAAA,aAAA,CAAA,eAAA,EAAA;AAAA,EACC,IAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,UAAA;AAAA,EACA,OAAA;AAAA,CAAA,kBAEC,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA;AAAA,EAAM,GAAG,SAAA;AAAA,CAAW,CACvB,EAAA;AAYF,OAAA,CAAQ,OAAU,GAAA,OAAA,CAAA;AAClB,OAAA,CAAQ,OAAU,GAAA,OAAA,CAAA;AAClB,OAAA,CAAQ,KAAQ,GAAA,KAAA,CAAA;AAChB,OAAA,CAAQ,MAAS,GAAA,MAAA;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"module.js","sources":["../src/partials/trigger.styled.tsx","../src/use-popover-context.tsx","../src/partials/trigger.tsx","../src/partials/content.styled.tsx","../src/partials/line.styled.tsx","../src/partials/line.tsx","../src/partials/arrow.styled.tsx","../src/partials/arrow.tsx","../src/partials/content.tsx","../src/partials/close.styled.tsx","../src/partials/close.tsx","../src/partials/portal.tsx","../src/popover.tsx"],"sourcesContent":["import { Trigger as RadixTrigger } from '@radix-ui/react-popover'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledTrigger = styled(RadixTrigger)\nexport type StyledTriggerProps = StrictComponentProps<typeof StyledTrigger>\n","import React, { createContext, useState, useRef, useContext } from 'react'\nimport type { PropsWithChildren } from 'react'\n\nimport type { Variant, TriggersOn } from './types'\n\ninterface PopoverValues {\n open: boolean\n onOpen?: () => void\n onClose?: () => void\n triggersOn: TriggersOn\n variant?: Variant\n}\n\ninterface PopoverContextProps {\n openState: boolean\n pressed: boolean\n hoveredOut: boolean\n hoveredIn: boolean\n setOpenState: (open: boolean) => void\n setPressed: (pressed: boolean) => void\n handleEnter: () => void\n handleLeave: () => void\n handleOpenChange: (open: boolean) => void\n setHoveredOut: (hoveredOut: boolean) => void\n closeBtnRef: React.RefObject<HTMLButtonElement>\n variant?: Variant\n}\n\nconst ON_LEAVE_DURATION = 220\nconst ON_ENTER_DURATION = 200\n\nconst PopoverContext = createContext<PopoverContextProps>({} as any)\n\n/**\n * The PopoverProvider is used to manage the state of the popover,\n * when it opens or closes, and what triggers it.\n */\nexport const PopoverProvider = ({\n open,\n onOpen,\n onClose,\n children,\n triggersOn,\n variant,\n}: PropsWithChildren<PopoverValues>): any => {\n const [openState, setOpenState] = useState(open)\n const [pressed, setPressed] = useState(false)\n const [hoveredOut, setHoveredOut] = useState(false)\n const [hoveredIn, setHoveredIn] = useState(false)\n const [hoveredInFirstTime, setHoveredInFirstTime] = useState(false)\n\n const leaveTimer = useRef<ReturnType<typeof setTimeout>>()\n const enterTimer = useRef<ReturnType<typeof setTimeout>>()\n const closeBtnRef = React.useRef<HTMLButtonElement>(null)\n\n const handleLeave = (): void => {\n if (triggersOn === 'press') {\n return\n }\n\n clearTimeout(leaveTimer.current)\n clearTimeout(enterTimer.current)\n\n leaveTimer.current = setTimeout(() => {\n setOpenState(false)\n setHoveredOut(true)\n setHoveredIn(false)\n handleOnOpenCloseChange(false)\n }, ON_LEAVE_DURATION)\n }\n\n const handleEnter = (): void => {\n if (triggersOn === 'press') {\n return\n }\n\n if (!pressed) {\n clearTimeout(leaveTimer.current)\n clearTimeout(enterTimer.current)\n\n enterTimer.current = setTimeout(() => {\n setHoveredIn(true)\n setOpenState(true)\n handleOnOpenCloseChange(true)\n }, ON_ENTER_DURATION)\n }\n }\n\n const handleOpenChange = (newOpen: boolean): void => {\n if (pressed && triggersOn === 'hover') {\n return setPressed(false)\n }\n\n if (newOpen !== openState) {\n setOpenState(newOpen)\n handleOnOpenCloseChange(newOpen)\n\n clearTimeout(enterTimer.current)\n\n if (!newOpen && leaveTimer.current !== undefined) {\n clearTimeout(leaveTimer.current)\n leaveTimer.current = undefined\n }\n }\n }\n\n const handleOnOpenCloseChange = (newOpen: boolean): void => {\n if (!hoveredInFirstTime && newOpen) {\n setHoveredInFirstTime(true)\n onOpen?.()\n }\n\n if (!newOpen) {\n if (triggersOn === 'hover' && hoveredInFirstTime) {\n setHoveredInFirstTime(false)\n }\n onClose?.()\n }\n }\n\n return (\n <PopoverContext.Provider\n value={{\n openState,\n hoveredIn,\n hoveredOut,\n pressed,\n setOpenState,\n setHoveredOut,\n setPressed,\n handleEnter,\n handleLeave,\n handleOpenChange,\n closeBtnRef,\n variant,\n }}\n >\n {children}\n </PopoverContext.Provider>\n )\n}\n\n/**\n * The usePopoverContext hook is used to access the state of the popover.\n */\nexport const usePopoverContext = (): PopoverContextProps =>\n useContext(PopoverContext)\n","import React from 'react'\nimport type { ElementRef, DOMAttributes } from 'react'\n\nimport { StyledTrigger } from './trigger.styled'\nimport { usePopoverContext } from '../use-popover-context'\nimport type { StyledTriggerProps } from './trigger.styled'\n\nexport interface TriggerProps extends StyledTriggerProps {\n /**\n * temporary the same as onClick, later will be added touch events support\n */\n onPress?: DOMAttributes<HTMLElement>['onClick']\n}\n\n/**\n * The trigger component is used to render the trigger element for the popover.\n */\nexport const Trigger = React.forwardRef<\n ElementRef<typeof StyledTrigger>,\n TriggerProps\n>(({ onPress, onClick, ...restProps }, forwardRef) => {\n const { handleEnter, handleLeave, setPressed } = usePopoverContext()\n\n return (\n <StyledTrigger\n {...restProps}\n onClick={e => {\n ;(onPress ?? onClick)?.(e)\n\n // @ts-expect-error\n if (e.pointerType === 'keyboard') {\n return\n }\n\n setPressed(true)\n }}\n onMouseEnter={handleEnter}\n onMouseLeave={handleLeave}\n ref={forwardRef}\n />\n )\n})\n","import { Content as RadixContent } from '@radix-ui/react-popover'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { animations } from '@mirohq/design-system-styles'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledContent = styled(RadixContent, {\n backgroundColor: '$black',\n borderRadius: '$50',\n color: '$white',\n padding: '$200',\n boxShadow: '0 $1 $4 rgba(9, 9, 9, 0.4)',\n fontSize: '14px',\n lineHeight: '20px',\n '@media (prefers-reduced-motion: no-preference)': {\n animationDuration: '220ms',\n animationTimingFunction: 'ease',\n willChange: 'opacity',\n '&[data-state=\"open\"]': {\n animationName: animations.fadeIn,\n },\n '&[data-state=\"closed\"]': {\n animationName: animations.fadeOut,\n },\n },\n variants: {\n variant: {\n light: {\n background: '$white',\n boxShadow: '$50',\n color: '$black',\n },\n dark: {},\n },\n },\n zIndex: '$popover',\n})\n\nexport type StyledContentProps = StrictComponentProps<typeof StyledContent>\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { CSSProperties } from '@stitches/react'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\ntype Side = 'top' | 'right' | 'bottom' | 'left'\n\ninterface AlignStyle {\n [x: string]: CSSProperties\n}\n\nconst getAlignXStyle = (side: Side, width: number): AlignStyle => ({\n [`[data-side=\"${side}\"][data-align=\"start\"] > &`]: {\n left: `${width * 2}px`,\n },\n [`[data-side=\"${side}\"][data-align=\"center\"] > &`]: {\n left: `calc(50% - ${width / 2}px)`,\n },\n [`[data-side=\"${side}\"][data-align=\"end\"] > &`]: {\n left: `calc(100% - ${width * 3}px)`,\n },\n})\n\nconst getAlignYStyle = (\n side: Side,\n width: number,\n height: number\n): AlignStyle => ({\n [`[data-side=\"${side}\"][data-align=\"start\"] > &`]: {\n bottom: `calc(100% - (${height - width}px))`,\n },\n [`[data-side=\"${side}\"][data-align=\"center\"] > &`]: {\n bottom: `calc(50% - ${height / 2}px)`,\n },\n [`[data-side=\"${side}\"][data-align=\"end\"] > &`]: { bottom: `-${width}px` },\n})\n\nexport const getPlacement = (width: number, height: number): any => {\n const halfHeight = height / 2\n const halfWidth = width / 2\n\n return {\n '[data-side=\"top\"] > &': { bottom: `-${height}px` },\n ...getAlignXStyle('top', width),\n '[data-side=\"bottom\"] > &': {\n bottom: '100%',\n transform: 'rotate(180deg)',\n },\n ...getAlignXStyle('bottom', width),\n '[data-side=\"right\"] > &': {\n left: `-${halfHeight + halfWidth}px`,\n transform: 'rotate(90deg)',\n },\n ...getAlignYStyle('right', width, height),\n '[data-side=\"left\"] > &': {\n left: `calc(100% + ${halfHeight - halfWidth}px)`,\n transform: 'rotate(270deg)',\n },\n ...getAlignYStyle('left', width, height),\n }\n}\n\nexport const StyledLine = styled(Primitive.svg, {\n fill: 'none',\n width: '6px',\n height: '50px',\n position: 'absolute',\n '& rect': {\n fill: 'rgba(66, 98, 255, 1)',\n },\n '& [id=\"line\"]': {\n width: '44px',\n height: '1px',\n transform: 'rotate(90 3.5 0)',\n },\n '& [id=\"circle\"]': {\n width: '6px',\n height: '6px',\n rx: '3px',\n transform: 'rotate(90 6 44)',\n },\n})\n\nexport type StyledLineProps = StrictComponentProps<typeof StyledLine>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledLine, getPlacement } from './line.styled'\nimport type { StyledLineProps } from './line.styled'\n\nexport interface LineProps extends StyledLineProps {}\n\nexport const Line = React.forwardRef<ElementRef<typeof StyledLine>, LineProps>(\n (props, forwardRef) => {\n const placement = getPlacement(6, 50)\n return (\n <StyledLine\n {...props}\n css={{ ...placement }}\n ref={forwardRef}\n viewBox='0 0 6 50'\n aria-hidden\n >\n <rect id='line' x='3.5' transform='rotate(90 3.5 0)' />\n <rect id='circle' x='6' y='44' transform='rotate(90 6 44)' />\n </StyledLine>\n )\n }\n)\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { Arrow as RadixArrow } from '@radix-ui/react-popover'\n\nexport const StyledArrow = styled(RadixArrow, {\n fill: '$black',\n height: '$1',\n paddingX: '2px',\n width: '$3',\n variants: {\n variant: {\n light: {\n fill: '$white',\n },\n dark: {},\n },\n },\n})\n\nexport type StyledArrowProps = StrictComponentProps<typeof StyledArrow>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledArrow } from './arrow.styled'\nimport type { StyledArrowProps } from './arrow.styled'\nimport { usePopoverContext } from '../use-popover-context'\n\nexport interface ArrowProps extends StyledArrowProps {}\n\nexport const Arrow = React.forwardRef<\n ElementRef<typeof StyledArrow>,\n ArrowProps\n>((props, forwardRef) => {\n const { variant } = usePopoverContext()\n return (\n <StyledArrow {...props} variant={variant} aria-hidden ref={forwardRef} />\n )\n})\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport { useSize } from '@radix-ui/react-use-size'\n\nimport { StyledContent } from './content.styled'\nimport { Line } from './line'\nimport { Arrow } from './arrow'\nimport { usePopoverContext } from '../use-popover-context'\nimport type { StyledContentProps } from './content.styled'\nimport type {\n Align,\n Side,\n AnchorType,\n PointerDownOutsideEvent,\n FocusOutsideEvent,\n} from '../types'\n\nexport interface ContentProps extends StyledContentProps {\n /**\n * When true, overrides the side and align preferences to prevent collisions\n * with window edges.\n */\n avoidCollisions?: boolean\n\n /**\n * The preferred alignment against the trigger. May change when collisions occur.\n */\n align?: Align\n\n /**\n * An offset in pixels from the \"start\" or \"end\" alignment option.\n */\n alignOffset?: number\n\n /**\n * The preferred side of the trigger to render against when open.\n * Will be reversed when collisions occur and avoidCollisions is enabled.\n */\n side?: Side\n\n /**\n * The distance in pixels from the boundary edges where collision detection\n * should occur. Accepts a number (same for all sides).\n */\n collisionPadding?: number\n\n /**\n * The type of anchor to render.\n */\n anchor?: AnchorType\n\n /**\n * Whether to render in a Portal when open.\n */\n portalled?: boolean\n\n /**\n * Used to force mounting when more control is needed. Useful when controlling\n * animation with React animation libraries.\n */\n forceMount?: true\n\n /**\n * The element used as the collision boundary. By default this is the\n * viewport, though you can provide additional element(s) to be included in\n * this check.\n */\n collisionBoundary?: Element | null\n\n /**\n * The sticky behavior on the align axis. \"partial\" will keep the content in\n * the boundary as long as the trigger is at least partially in the boundary\n * whilst \"always\" will keep the content in the boundary regardless.\n */\n sticky?: 'partial' | 'always'\n\n /**\n * Whether to hide the content when the trigger becomes fully occluded.\n */\n hideWhenDetached?: boolean\n\n /**\n * Event handler called when a pointer event occurs outside the bounds of the\n * component. It can be prevented by calling event.preventDefault.\n */\n onPointerDownOutside?: (event: PointerDownOutsideEvent) => void\n\n /**\n * Event handler called when focus moves outside the bounds of the component.\n * It can be prevented by calling event.preventDefault.\n */\n onFocusOutside?: (event: FocusOutsideEvent) => void\n\n /**\n * Event handler called when the escape key is down. It can be prevented by\n * calling event.preventDefault.\n */\n onEscapeKeyDown?: (event: KeyboardEvent) => void\n\n /**\n * Event handler called when an interaction (pointer or focus event) happens\n * outside the bounds of the component. It can be prevented by calling\n * event.preventDefault.\n */\n onInteractOutside?: (\n event: PointerDownOutsideEvent | FocusOutsideEvent\n ) => void\n}\n\n/**\n * The content component is used to render rich content elements for the popover.\n */\nexport const Content = React.forwardRef<\n ElementRef<typeof StyledContent>,\n ContentProps\n>(\n (\n {\n align = 'center',\n alignOffset = 0,\n avoidCollisions = true,\n collisionPadding = 0,\n side = 'top',\n children,\n anchor = 'line',\n sticky = 'partial',\n hideWhenDetached = false,\n ...restProps\n },\n forwardRef\n ) => {\n const [line, setLine] = React.useState<SVGElement | null>(null)\n const lineSize = useSize(line)\n const {\n handleLeave,\n handleEnter,\n hoveredIn,\n hoveredOut,\n setHoveredOut,\n closeBtnRef,\n variant,\n } = usePopoverContext()\n\n const anchorEl = React.useMemo(() => {\n switch (anchor) {\n case 'arrow':\n return <Arrow />\n case 'line':\n return <Line ref={setLine} />\n default:\n return null\n }\n }, [anchor, setLine])\n\n return (\n <StyledContent\n {...restProps}\n align={align}\n alignOffset={alignOffset}\n avoidCollisions={avoidCollisions}\n collisionPadding={collisionPadding}\n side={side}\n sideOffset={anchor === 'line' ? lineSize?.height : 0}\n ref={forwardRef}\n onMouseEnter={handleEnter}\n onMouseLeave={handleLeave}\n role='dialog'\n aria-modal='true'\n sticky={sticky}\n hideWhenDetached={hideWhenDetached}\n variant={variant}\n onCloseAutoFocus={(e: Event) => {\n if (hoveredOut) {\n e.preventDefault()\n setHoveredOut(false)\n }\n }}\n onOpenAutoFocus={(e: Event) => {\n e.preventDefault()\n\n if (hoveredIn) {\n return\n }\n closeBtnRef?.current?.focus()\n }}\n >\n {children}\n {anchorEl}\n </StyledContent>\n )\n }\n)\n","import { Close as RadixClose } from '@radix-ui/react-popover'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledClose = styled(RadixClose, {\n all: 'unset',\n fontFamily: 'inherit',\n height: '$6',\n width: '$6',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: '$white',\n position: 'absolute',\n top: '5px',\n right: '5px',\n borderRadius: '$50',\n cursor: 'pointer',\n\n '&:hover': {\n backgroundColor: 'rgba(255, 255, 255, 0.12)',\n },\n '&:focus-visible': {\n boxShadow: '$focus-controls',\n },\n\n variants: {\n variant: {\n light: {\n color: '$black',\n },\n dark: {\n '&:focus-visible': {\n boxShadow:\n '0 0 0 1px #0F0F0F, 0 0 0 3px #6881FF, 0 0 0 5px #4961f699',\n },\n },\n },\n },\n})\n\nexport type StyledCloseProps = StrictComponentProps<typeof StyledClose>\n","import React from 'react'\nimport { useComposedRefs } from '@radix-ui/react-compose-refs'\nimport { IconCross } from '@mirohq/design-system-icons'\nimport type { ElementRef } from 'react'\n\nimport { StyledClose } from './close.styled'\nimport { usePopoverContext } from '../use-popover-context'\nimport type { StyledCloseProps } from './close.styled'\n\nexport interface CloseProps extends StyledCloseProps {}\n\nexport const Close = React.forwardRef<\n ElementRef<typeof StyledClose>,\n CloseProps\n>((props, forwardRef) => {\n const { closeBtnRef, variant } = usePopoverContext()\n const composedTriggerRef = useComposedRefs(forwardRef, closeBtnRef)\n\n return (\n <StyledClose\n {...props}\n ref={composedTriggerRef}\n data-testid='close-icon'\n variant={variant}\n >\n <IconCross size='small' />\n </StyledClose>\n )\n})\n","import React from 'react'\nimport type { PopoverPortalProps } from '@radix-ui/react-popover'\nimport { Portal as RadixPortal } from '@radix-ui/react-popover'\n\nexport interface PortalProps extends PopoverPortalProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries. If used on this part,\n * it will be inherited by Popover.Content.\n */\n forceMount?: true\n\n /**\n * Specify a container element to portal the content into.\n */\n container?: HTMLElement | null\n}\n\nexport const Portal: React.FC<PortalProps> = props => <RadixPortal {...props} />\n","import React from 'react'\nimport * as RadixPopover from '@radix-ui/react-popover'\n\nimport { Trigger } from './partials/trigger'\nimport { Content } from './partials/content'\nimport { Close } from './partials/close'\nimport { Portal } from './partials/portal'\nimport { PopoverProvider, usePopoverContext } from './use-popover-context'\nimport type { Variant, TriggersOn } from './types'\n\nexport interface PopoverProps {\n /**\n * The current controlled state of the popover.\n */\n open?: boolean\n\n /**\n * Event handler called when the popover opens.\n */\n onOpen?: () => void\n\n /**\n * Event handler called when the popover closes.\n */\n onClose?: () => void\n\n /**\n * Defines whether the interaction with outside elements will be enabled.\n */\n interactOutside?: boolean\n\n /**\n * The event that will trigger the popover to open.\n */\n triggersOn?: TriggersOn\n\n /**\n * Change the popover's appearance\n */\n variant?: Variant\n}\n\nconst Root: React.FC<PopoverProps> = ({ onOpen, onClose, ...restProps }) => {\n const { openState, handleOpenChange } = usePopoverContext()\n return (\n <RadixPopover.Root\n {...restProps}\n open={openState}\n onOpenChange={newOpen => handleOpenChange(newOpen)}\n modal={false}\n />\n )\n}\n\nexport const Popover: React.FC<PopoverProps> & Partials = ({\n open = false,\n onOpen,\n onClose,\n triggersOn = 'press',\n variant = 'dark',\n ...restProps\n}) => (\n <PopoverProvider\n open={open}\n onOpen={onOpen}\n onClose={onClose}\n triggersOn={triggersOn}\n variant={variant}\n >\n <Root {...restProps} />\n </PopoverProvider>\n)\n\n// Partials\n// -----------------------------------------------------------------------------\ninterface Partials {\n Trigger: typeof Trigger\n Content: typeof Content\n Close: typeof Close\n Portal: typeof Portal\n}\n\nPopover.Trigger = Trigger\nPopover.Content = Content\nPopover.Close = Close\nPopover.Portal = Portal\n"],"names":["RadixTrigger","RadixContent","RadixArrow","RadixClose","RadixPortal"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mirohq/design-system-popover",
|
|
3
|
-
"version": "4.3.
|
|
3
|
+
"version": "4.3.9",
|
|
4
4
|
"description": "",
|
|
5
5
|
"author": "Miro",
|
|
6
6
|
"source": "src/index.ts",
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
"@radix-ui/react-compose-refs": "^0.0.5",
|
|
31
31
|
"@radix-ui/react-popover": "^1.0.0",
|
|
32
32
|
"@radix-ui/react-use-size": "^0.1.1",
|
|
33
|
+
"@mirohq/design-system-icons": "^0.15.1",
|
|
33
34
|
"@mirohq/design-system-primitive": "^1.1.0",
|
|
34
35
|
"@mirohq/design-system-stitches": "^2.2.5",
|
|
35
36
|
"@mirohq/design-system-styles": "^1.0.21"
|