@mirohq/design-system-dropdown-menu 3.5.10 → 3.5.11-select.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/main.js +4 -4
- package/dist/main.js.map +1 -1
- package/dist/module.js +1 -1
- package/dist/module.js.map +1 -1
- package/dist/types.d.ts +24 -3
- package/package.json +7 -7
package/dist/main.js
CHANGED
|
@@ -11,7 +11,7 @@ var designSystemPrimitive = require('@mirohq/design-system-primitive');
|
|
|
11
11
|
var designSystemStitches = require('@mirohq/design-system-stitches');
|
|
12
12
|
var designSystemStyles = require('@mirohq/design-system-styles');
|
|
13
13
|
var designSystemUseLayoutEffect = require('@mirohq/design-system-use-layout-effect');
|
|
14
|
-
var
|
|
14
|
+
var designSystemScrollArea = require('@mirohq/design-system-scroll-area');
|
|
15
15
|
var designSystemBaseSwitch = require('@mirohq/design-system-base-switch');
|
|
16
16
|
var utils = require('@react-aria/utils');
|
|
17
17
|
var designSystemBaseIcon = require('@mirohq/design-system-base-icon');
|
|
@@ -437,13 +437,13 @@ const ScrollableContent = ({
|
|
|
437
437
|
}, [maxHeight, overflow, containerSpacing]);
|
|
438
438
|
if (overflow === "auto") {
|
|
439
439
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
440
|
-
|
|
440
|
+
designSystemScrollArea.ScrollArea,
|
|
441
441
|
{
|
|
442
442
|
css: { margin: "-".concat(CONTENT_BORDER_FOCUS_ITEM) },
|
|
443
443
|
type: "always",
|
|
444
444
|
children: [
|
|
445
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
446
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
445
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystemScrollArea.ScrollArea.Viewport, { css: { ...getOverflowMaxHeight() }, children }),
|
|
446
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystemScrollArea.ScrollArea.Scrollbar, { orientation: "vertical", children: /* @__PURE__ */ jsxRuntime.jsx(designSystemScrollArea.ScrollArea.Thumb, {}) })
|
|
447
447
|
]
|
|
448
448
|
}
|
|
449
449
|
);
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sources":["../src/partials/item-description.tsx","../src/partials/left-slot.tsx","../src/partials/illustration-slot.styled.ts","../src/hooks/use-content.tsx","../src/partials/right-slot.styled.ts","../src/partials/right-slot.tsx","../src/partials/hotkey-slot.tsx","../src/styles/item.ts","../src/partials/checkbox-item.styled.tsx","../src/hooks/use-aria-disabled.ts","../src/hooks/use-item.tsx","../src/partials/checkbox-item.tsx","../src/styles/content.ts","../src/partials/content.styled.tsx","../src/partials/scrollable-content.tsx","../src/partials/content.tsx","../src/partials/item.styled.tsx","../src/partials/item.tsx","../src/partials/link-item.tsx","../src/partials/radio-group.styled.tsx","../src/partials/radio-group.tsx","../src/partials/radio-item.styled.tsx","../src/partials/radio-item.tsx","../src/partials/separator.styled.tsx","../src/partials/separator.tsx","../src/partials/switch-item.styled.ts","../src/partials/switch-item.tsx","../src/partials/trigger.styled.tsx","../src/partials/trigger.tsx","../src/partials/sub-trigger.styled.tsx","../src/partials/sub-trigger.tsx","../src/partials/sub-content.styled.tsx","../src/partials/sub-content.tsx","../src/partials/sub.styled.tsx","../src/partials/sub.tsx","../src/partials/portal.tsx","../src/partials/icon-slot.styled.ts","../src/partials/icon-slot.tsx","../src/partials/illustration-slot.tsx","../src/dropdown-menu.tsx"],"sourcesContent":["import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\n\nexport const ItemDescription = styled(Primitive.div, {\n display: '-webkit-box',\n width: '100%',\n WebkitBoxOrient: 'vertical',\n WebkitLineClamp: 2,\n overflow: 'hidden',\n gridArea: 'item-description',\n fontSize: '$150',\n lineHeight: 1.5,\n color: '$text-neutrals-subtle',\n})\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\n\nexport const LeftSlot = styled(Primitive.div, {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n marginRight: '$100',\n gridArea: 'left-slot',\n})\n","import type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { styled } from '@mirohq/design-system-stitches'\n\nimport { LeftSlot } from './left-slot'\n\nexport const StyledIllustrationSlot = styled(LeftSlot, {\n width: '$13',\n})\n\nexport type StyledIllustrationSlotProps = StrictComponentProps<\n typeof StyledIllustrationSlot\n>\n","import React, {\n createContext,\n useContext,\n useState,\n useRef,\n useCallback,\n} from 'react'\nimport type { PropsWithChildren } from 'react'\nimport { addPropsToChildren } from '@mirohq/design-system-utils'\n\nimport type { ContainerSpacing } from '../types'\n\ninterface ContentContext {\n rightSlotMount: (width: number) => number\n rightSlotDestroy: (index: number) => void\n containerSpacing: ContainerSpacing\n}\n\nconst Context = createContext<ContentContext>({\n rightSlotMount: () => 0,\n rightSlotDestroy: () => {},\n containerSpacing: 'medium',\n})\n\nexport const ContentProvider = ({\n children,\n containerSpacing = 'medium',\n}: PropsWithChildren<{\n containerSpacing?: ContainerSpacing\n}>): JSX.Element => {\n const [maxWidth, setMaxWidth] = useState<number>(0)\n\n // we need maxRef, so we don't rerender RightSlot whenever we change maxWidth\n const maxRef = useRef<number>(0)\n\n // rightSlot index to remove width from map on destroy\n const indexRef = useRef<number>(0)\n\n const widthMapRef = useRef<Map<number, number>>(new Map())\n\n const updateMaxWith = useCallback((value: number) => {\n maxRef.current = value\n setMaxWidth(value)\n }, [])\n\n // do not use state here, otherwise it will case many rerenders in RightSlot\n const rightSlotMount = useCallback(\n (width: number): number => {\n indexRef.current++\n\n widthMapRef.current.set(indexRef.current, width)\n\n if (width > maxRef.current) {\n updateMaxWith(width)\n }\n\n return indexRef.current\n },\n [updateMaxWith]\n )\n\n // do not use state here, otherwise it will case many rerenders in RightSlot\n const rightSlotDestroy = useCallback(\n (index: number): void => {\n widthMapRef.current.delete(index)\n\n if (widthMapRef.current.size === 0) {\n updateMaxWith(0)\n } else {\n const maximum = Math.max(...Array.from(widthMapRef.current.values()))\n updateMaxWith(maximum)\n }\n },\n [updateMaxWith]\n )\n\n const formattedChildren = addPropsToChildren(children, () => true, {\n UNSAFE_style: {\n '--right-slot-max-width': `${Math.ceil(maxWidth)}px`,\n },\n })\n\n return (\n <Context.Provider\n value={{\n rightSlotMount,\n rightSlotDestroy,\n containerSpacing,\n }}\n >\n {formattedChildren}\n </Context.Provider>\n )\n}\n\nexport const useContent = (): ContentContext => useContext(Context)\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\n\nexport const StyledRightSlot = styled(Primitive.div, {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n marginLeft: 'auto',\n paddingLeft: '$200',\n gridArea: 'right-slot',\n height: '$5',\n width: '$7',\n minWidth: 'max-content',\n textAlign: 'right',\n '&:empty': {\n paddingLeft: '$0',\n },\n})\n","import React, { useRef } from 'react'\nimport type { ComponentPropsWithRef } from 'react'\nimport { useLayoutEffect } from '@mirohq/design-system-use-layout-effect'\n\nimport { useContent } from '../hooks/use-content'\nimport { StyledRightSlot } from './right-slot.styled'\n\nexport const RightSlot = (\n props: ComponentPropsWithRef<typeof StyledRightSlot>\n): JSX.Element => {\n const { rightSlotMount, rightSlotDestroy } = useContent()\n\n const ref = useRef<HTMLDivElement>(null)\n\n useLayoutEffect(() => {\n if (ref.current !== null) {\n const width = ref.current.getBoundingClientRect().width\n const index = rightSlotMount(width)\n\n return () => rightSlotDestroy(index)\n }\n\n return () => {}\n }, [rightSlotMount, rightSlotDestroy, ref])\n\n return <StyledRightSlot ref={ref} {...props} />\n}\n","import { styled } from '@mirohq/design-system-stitches'\n\nimport { RightSlot } from './right-slot'\n\nexport const HotkeySlot = styled(RightSlot, {\n color: '$text-neutrals-subtle',\n})\n","import { focus } from '@mirohq/design-system-styles'\n\nimport { ItemDescription } from '../partials/item-description'\nimport { StyledIllustrationSlot } from '../partials/illustration-slot.styled'\nimport { HotkeySlot } from '../partials/hotkey-slot'\n\nexport const itemDefaults = {\n all: 'unset',\n boxSizing: 'border-box',\n fontSize: 14,\n lineHeight: '20px',\n color: '$text-neutrals',\n borderRadius: '$50',\n display: 'grid',\n gridTemplateColumns:\n 'auto 1fr minmax(min-content, var(--right-slot-max-width))',\n gridTemplateRows: 'auto 1fr',\n gridTemplateAreas: `'left-slot item-text right-slot'\n 'left-slot item-description right-slot'`,\n alignItems: 'start',\n padding: '10px $100',\n position: 'relative',\n userSelect: 'none',\n cursor: 'pointer',\n\n '&[data-no-left-slot]': {\n gridTemplateColumns: '1fr minmax(auto, var(--right-slot-max-width))',\n gridTemplateAreas: `'item-text right-slot'\n 'item-description right-slot'`,\n },\n\n ...focus.css({\n boxShadow: '$focus-small',\n outline: '1px solid transparent',\n }),\n\n '&:disabled, &[aria-disabled=\"true\"], &[data-disabled]': {\n cursor: 'default',\n\n [`&, & ${ItemDescription}, & ${HotkeySlot}`]: {\n color: '$text-neutrals-disabled',\n },\n [`& ${StyledIllustrationSlot}`]: {\n filter: 'grayscale(1)',\n },\n },\n\n '&:disabled, &[data-disabled]': {\n pointerEvents: 'none',\n },\n\n '&:hover:not([aria-disabled=\"true\"])': {\n background: '$background-primary-subtle-hover',\n color: '$text-primary-hover',\n '&:not([aria-disabled=\"true\"])': {\n boxShadow: 'none',\n },\n },\n\n '&:active:not([aria-disabled=\"true\"])': {\n background: '$background-primary-subtle-active',\n boxShadow: 'none',\n color: '$text-primary-active',\n },\n\n '&[tabindex=\"0\"]': {\n zIndex: '1',\n },\n}\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\n\nimport { itemDefaults } from '../styles/item'\n\nexport const StyledIndicator = styled(Primitive.span, {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n})\n\nexport const StyledCheckboxItem = styled(RadixDropdownMenu.CheckboxItem, {\n ...itemDefaults,\n [`&[data-state=\"checked\"] ${StyledIndicator}`]: {\n color: '$icon-primary',\n },\n [`&[data-state=\"checked\"]:hover:not([aria-disabled=\"true\"]) ${StyledIndicator}`]:\n {\n color: '$icon-primary-hover',\n },\n [`\n &[aria-disabled=\"true\"] ${StyledIndicator},\n &[data-disabled] ${StyledIndicator}\n `]: {\n color: '$icon-neutrals-disabled',\n },\n})\n\nexport type StyledCheckboxItemProps = StrictComponentProps<\n typeof StyledCheckboxItem\n>\n","import { useMemo } from 'react'\nimport type {\n KeyboardEventHandler,\n PointerEventHandler,\n MouseEventHandler,\n} from 'react'\nimport type { Booleanish } from '@mirohq/design-system-types'\nimport { booleanify } from '@mirohq/design-system-utils'\n\ninterface AriaDisabledProps extends Object {\n 'aria-disabled'?: Booleanish\n onKeyDown?: KeyboardEventHandler\n onSelect?: (event: Event) => void\n onPointerMove?: PointerEventHandler\n onClick?: MouseEventHandler\n}\n\nexport const useAriaDisabled = (\n {\n 'aria-disabled': ariaDisabled,\n onKeyDown,\n onSelect,\n onPointerMove,\n onClick,\n }: AriaDisabledProps,\n closeOnCheck: boolean | undefined = true\n): AriaDisabledProps =>\n useMemo(\n () => ({\n 'aria-disabled': booleanify(ariaDisabled) ? ariaDisabled : undefined,\n onKeyDown: e => {\n if (\n booleanify(ariaDisabled) &&\n e.code !== 'ArrowUp' &&\n e.code !== 'ArrowDown' &&\n e.code !== 'Escape'\n ) {\n e.preventDefault()\n e.stopPropagation()\n return\n }\n\n onKeyDown?.(e)\n },\n onSelect: e => {\n if (booleanify(ariaDisabled)) {\n e.preventDefault()\n return\n }\n\n if (!closeOnCheck) {\n e.preventDefault()\n }\n\n onSelect?.(e)\n },\n onPointerMove: e => {\n if (booleanify(ariaDisabled)) {\n e.preventDefault()\n return\n }\n\n onPointerMove?.(e)\n },\n onClick: e => {\n if (booleanify(ariaDisabled)) {\n e.preventDefault()\n return\n }\n\n onClick?.(e)\n },\n }),\n [ariaDisabled, onKeyDown, onSelect, onPointerMove, onClick, closeOnCheck]\n )\n","import React, { createContext, useContext, useState, useCallback } from 'react'\nimport type { PropsWithChildren } from 'react'\nimport { addPropsToChildren } from '@mirohq/design-system-utils'\n\ninterface ItemContext {\n leftSlotMount: () => void\n leftSlotDestroy: () => void\n}\n\nconst Context = createContext<ItemContext>({\n leftSlotMount: () => {},\n leftSlotDestroy: () => {},\n})\n\nexport const ItemProvider = ({\n children,\n}: PropsWithChildren<{}>): JSX.Element => {\n const [hasSlot, setHasSlot] = useState(false)\n\n const leftSlotMount = useCallback(() => {\n setHasSlot(true)\n }, [])\n\n const leftSlotDestroy = useCallback(() => {\n setHasSlot(false)\n }, [])\n\n const formattedChildren = hasSlot\n ? children\n : addPropsToChildren(children, () => true, {\n 'data-no-left-slot': '',\n })\n\n return (\n <Context.Provider\n value={{\n leftSlotMount,\n leftSlotDestroy,\n }}\n >\n {formattedChildren}\n </Context.Provider>\n )\n}\n\nexport const useItem = (): ItemContext => useContext(Context)\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport { IconCheckMark, IconProhibit } from '@mirohq/design-system-icons'\nimport { booleanify } from '@mirohq/design-system-utils'\n\nimport { StyledCheckboxItem, StyledIndicator } from './checkbox-item.styled'\nimport type { StyledCheckboxItemProps } from './checkbox-item.styled'\nimport { RightSlot } from './right-slot'\nimport { useAriaDisabled } from '../hooks/use-aria-disabled'\nimport { ItemProvider } from '../hooks/use-item'\n\nexport interface CheckboxItemProps\n extends Omit<StyledCheckboxItemProps, 'onChange'> {\n /**\n * The checked state of the item.\n */\n checked: boolean\n\n /**\n * Event handler called when the checked state changes.\n */\n onChange: (checked: boolean) => void\n\n /**\n * When true, prevents the user from interacting with the item.\n */\n disabled?: boolean\n\n /**\n * Event handler called when the user selects an item (via mouse of keyboard).\n */\n onSelect?: (event: Event) => void\n\n /**\n * Closes the dropdown when the user selects an item.\n */\n closeOnSelect?: boolean\n\n /**\n * Optional text used for typeahead purposes. By default the typeahead behavior will use the .textContent of the item.\n * Use this when the content is complex, or you have non-textual content inside.\n */\n textValue?: string\n}\n\nexport const CheckboxItem = React.forwardRef<\n ElementRef<typeof StyledCheckboxItem>,\n CheckboxItemProps\n>(\n (\n {\n children,\n checked,\n onChange,\n disabled,\n closeOnSelect = false,\n ...restProps\n },\n forwardRef\n ) => {\n const ariaDisabledProps = useAriaDisabled(restProps, closeOnSelect)\n const { 'aria-disabled': ariaDisabled } = ariaDisabledProps\n\n return (\n <ItemProvider>\n <StyledCheckboxItem\n {...restProps}\n {...ariaDisabledProps}\n ref={forwardRef}\n checked={checked}\n disabled={disabled}\n onCheckedChange={onChange}\n >\n {children}\n <RightSlot>\n <StyledIndicator>\n {(disabled === true || booleanify(ariaDisabled)) && !checked && (\n <IconProhibit\n weight='thin'\n css={{ square: '$3', display: 'block' }}\n />\n )}\n {checked && (\n <IconCheckMark css={{ square: '$3', display: 'block' }} />\n )}\n </StyledIndicator>\n </RightSlot>\n </StyledCheckboxItem>\n </ItemProvider>\n )\n }\n)\n","import { theme } from '@mirohq/design-system-stitches'\nimport { animations } from '@mirohq/design-system-styles'\n\nexport const CONTENT_GAP = '$50'\nexport const CONTENT_GUTTER = parseInt(theme.space[150])\nexport const CONTENT_OFFSET = parseInt(theme.space[50])\nexport const CONTENT_BORDER_FOCUS_ITEM = '2px'\nexport const CONTENT_PADDING = {\n small: '$50 $150',\n medium: '$150',\n large: '$150 $300',\n}\n\nexport const contentDefaults = {\n maxWidth: '$125',\n backgroundColor: '$background-neutrals-container',\n borderRadius: '$50',\n boxShadow: '$50',\n\n '& [data-radix-scroll-area-viewport]': {\n padding: `${CONTENT_BORDER_FOCUS_ITEM} $50 ${CONTENT_BORDER_FOCUS_ITEM} ${CONTENT_BORDER_FOCUS_ITEM}`,\n boxSizing: 'border-box',\n },\n\n '@media (prefers-reduced-motion: no-preference)': {\n animationDuration: '150ms',\n animationTimingFunction: 'cubic-bezier(0.25, 0.5, 0.5, 0.9)',\n willChange: 'transform, opacity',\n '&[data-state=\"open\"]': { animationName: animations.fadeInScaled },\n '&[data-state=\"closed\"]': { animationName: animations.fadeOutScaled },\n '&[data-side=\"top\"]': {\n '&[data-align=\"start\"]': { transformOrigin: 'bottom left' },\n '&[data-align=\"center\"]': { transformOrigin: 'bottom center' },\n '&[data-align=\"end\"]': { transformOrigin: 'bottom right' },\n },\n '&[data-side=\"right\"]': {\n '&[data-align=\"start\"]': { transformOrigin: 'top left' },\n '&[data-align=\"center\"]': { transformOrigin: 'center left' },\n '&[data-align=\"end\"]': { transformOrigin: 'bottom left' },\n },\n '&[data-side=\"bottom\"]': {\n '&[data-align=\"start\"]': { transformOrigin: 'top left' },\n '&[data-align=\"center\"]': { transformOrigin: 'top center' },\n '&[data-align=\"end\"]': { transformOrigin: 'top right' },\n },\n '&[data-side=\"left\"]': {\n '&[data-align=\"start\"]': { transformOrigin: 'top right' },\n '&[data-align=\"center\"]': { transformOrigin: 'center right' },\n '&[data-align=\"end\"]': { transformOrigin: 'bottom right' },\n },\n },\n position: 'relative',\n zIndex: '$dropdownMenu',\n}\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\n\nimport {\n contentDefaults,\n CONTENT_PADDING,\n CONTENT_GAP,\n} from '../styles/content'\n\nexport const StyledItemsContainer = styled('div', {\n display: 'grid',\n gap: CONTENT_GAP,\n})\n\nexport const StyledContent = styled(RadixDropdownMenu.Content, {\n ...contentDefaults,\n variants: {\n containerSpacing: {\n small: {\n '&, [role=\"menu\"]': {\n padding: CONTENT_PADDING.small,\n },\n },\n medium: {\n '&, [role=\"menu\"]': {\n padding: CONTENT_PADDING.medium,\n },\n },\n large: {\n '&, [role=\"menu\"]': {\n padding: CONTENT_PADDING.large,\n },\n },\n },\n },\n})\n\nexport type StyledContentProps = StrictComponentProps<typeof StyledContent>\n","import React, { useCallback } from 'react'\nimport { ScrollArea } from '@mirohq/design-system'\nimport type { CSS } from '@mirohq/design-system-stitches'\nimport type { CSSProperties } from '@stitches/react'\n\nimport { CONTENT_PADDING, CONTENT_BORDER_FOCUS_ITEM } from '../styles/content'\nimport type { ContainerSpacing, Overflow } from '../types'\n\ninterface ScrollableContentProps {\n children?: React.ReactNode\n containerSpacing: ContainerSpacing\n maxHeight?: CSSProperties['maxHeight']\n overflow: Overflow\n}\n\nexport const ScrollableContent = ({\n children,\n maxHeight,\n overflow,\n containerSpacing,\n}: ScrollableContentProps): JSX.Element => {\n const getOverflowMaxHeight = useCallback((): CSS => {\n const [top, , bottom] = CONTENT_PADDING[containerSpacing]\n .split(' ')\n .map(value => value.replace('$', ''))\n\n const topBottom =\n top !== undefined && bottom !== undefined\n ? `var(--space-${top}) + var(--space-${bottom})`\n : `var(--space-${top}) + var(--space-${top})`\n\n const overflowMaxHeigh =\n overflow === 'auto'\n ? `calc(var(--radix-dropdown-menu-content-available-height) - (${topBottom}))`\n : 'auto'\n\n const newMaxHeight = `calc(${maxHeight} - (${topBottom}))`\n\n return {\n maxHeight: maxHeight === undefined ? overflowMaxHeigh : newMaxHeight,\n }\n }, [maxHeight, overflow, containerSpacing])\n\n if (overflow === 'auto') {\n return (\n <ScrollArea\n css={{ margin: `-${CONTENT_BORDER_FOCUS_ITEM}` }}\n type='always'\n >\n <ScrollArea.Viewport css={{ ...getOverflowMaxHeight() }}>\n {children}\n </ScrollArea.Viewport>\n <ScrollArea.Scrollbar orientation='vertical'>\n <ScrollArea.Thumb />\n </ScrollArea.Scrollbar>\n </ScrollArea>\n )\n }\n\n return <>{children}</>\n}\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport type { CSSProperties } from '@stitches/react'\n\nimport { StyledContent, StyledItemsContainer } from './content.styled'\nimport { CONTENT_OFFSET } from '../styles/content'\nimport { ContentProvider } from '../hooks/use-content'\nimport { ScrollableContent } from './scrollable-content'\nimport type { StyledContentProps } from './content.styled'\nimport type {\n PointerDownOutsideEvent,\n FocusOutsideEvent,\n Side,\n Align,\n StickyBehavior,\n ContainerSpacing,\n Overflow,\n} from '../types'\n\nexport interface ContentProps extends StyledContentProps {\n /**\n * Whether keyboard navigation should loop around\n */\n loop?: boolean\n\n /**\n * Event handler called when focus moves to the trigger after closing. It can\n * be prevented by calling event.preventDefault. This prop is ignored within\n * submenus.\n */\n onCloseAutoFocus?: (event: Event) => 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 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 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 * The preferred side of the trigger to render against when open. Will be\n * reversed when collisions occur and avoidCollisions is enabled. This prop is\n * ignored within submenus.\n */\n side?: Side\n\n /**\n * The distance in pixels from the trigger\n */\n sideOffset?: number\n\n /**\n * The preferred alignment against the trigger. May change when collisions\n * occur. This prop is ignored within submenus.\n */\n align?: Align\n\n /**\n * An offset in pixels from the \"start\" or \"end\" alignment options\n */\n alignOffset?: number\n\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 distance in pixels from window edges where collision detection should\n * occur.\n */\n collisionPadding?: number\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?: StickyBehavior\n\n /**\n * Used to force mounting when more control is needed. Useful when controlling\n * animation with React animation libraries. It inherits from\n * DropdownMenu.Portal.\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 * Whether to hide the content when the trigger becomes fully occluded.\n */\n hideWhenDetached?: boolean\n\n /**\n * The spacing around container\n */\n containerSpacing?: ContainerSpacing\n\n /**\n * The max height for the content.\n */\n maxHeight?: CSSProperties['maxHeight']\n\n /**\n * Setting overflow as \"visible\" means that the content can extend beyond the\n * its collision boundary without any clipping or scrolling being\n * applied.\n * When set to \"auto,\" a scrollbar is added if the content exceeds its\n * boundaries. If no maxHeight is defined, it will be automatically adjusted\n * to fit the remaining space between the trigger and the boundary edge.\n */\n overflow?: Overflow\n}\n\nexport const Content = React.forwardRef<\n ElementRef<typeof StyledContent>,\n ContentProps\n>(\n (\n {\n loop = false,\n side = 'bottom',\n sideOffset = CONTENT_OFFSET,\n align = 'center',\n alignOffset = 0,\n collisionPadding = 0,\n avoidCollisions = true,\n sticky = 'partial',\n hideWhenDetached = false,\n containerSpacing = 'medium',\n overflow = 'visible',\n maxHeight,\n children,\n ...restProps\n },\n forwardRef\n ) => (\n <ContentProvider containerSpacing={containerSpacing}>\n <StyledContent\n {...restProps}\n ref={forwardRef}\n loop={loop}\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n avoidCollisions={avoidCollisions}\n collisionPadding={collisionPadding}\n sticky={sticky}\n hideWhenDetached={hideWhenDetached}\n containerSpacing={containerSpacing}\n >\n <ScrollableContent {...{ containerSpacing, maxHeight, overflow }}>\n <StyledItemsContainer>{children}</StyledItemsContainer>\n </ScrollableContent>\n </StyledContent>\n </ContentProvider>\n )\n)\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\n\nimport { itemDefaults } from '../styles/item'\n\nexport const StyledItem = styled(RadixDropdownMenu.Item, {\n ...itemDefaults,\n variants: {\n // This is a hack for the :has() selector\n // Remove it after Firefox implements it\n hasRightSlot: {\n true: {\n paddingRight: '$600',\n },\n },\n },\n})\n\nexport type StyledItemProps = StrictComponentProps<typeof StyledItem>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledItem } from './item.styled'\nimport type { StyledItemProps } from './item.styled'\nimport { useAriaDisabled } from '../hooks/use-aria-disabled'\nimport { ItemProvider } from '../hooks/use-item'\n\nexport interface ItemProps extends StyledItemProps {\n /**\n * When true, prevents the user from interacting with the item\n */\n disabled?: boolean\n\n /**\n * Event handler called when the user selects an item (via mouse of keyboard). Calling event.preventDefault in this handler will prevent the dropdown menu from closing when selecting that item\n */\n onSelect?: (event: Event) => void\n\n /**\n * Optional text used for typeahead purposes. By default the typeahead behavior will use the .textContent of the item. Use this when the content is complex, or you have non-textual content inside\n */\n textValue?: string\n}\n\nexport const Item = React.forwardRef<ElementRef<typeof StyledItem>, ItemProps>(\n ({ disabled = false, ...restProps }, forwardRef) => {\n const ariaDisabledProps = useAriaDisabled(restProps)\n\n return (\n <ItemProvider>\n <StyledItem\n {...restProps}\n {...ariaDisabledProps}\n disabled={disabled}\n ref={forwardRef}\n />\n </ItemProvider>\n )\n }\n)\n","import React from 'react'\nimport type { ElementRef, AnchorHTMLAttributes } from 'react'\n\nimport { Item } from './item'\nimport type { ItemProps } from './item'\nimport { useAriaDisabled } from '../hooks/use-aria-disabled'\n\ntype ItemPropsWithAnchor = ItemProps & AnchorHTMLAttributes<typeof Item>\nexport interface LinkItemProps extends ItemPropsWithAnchor {}\n\nexport const LinkItem = React.forwardRef<\n ElementRef<typeof Item>,\n LinkItemProps\n>(({ children, href, ...restProps }, forwardRef) => {\n const ariaDisabledProps = useAriaDisabled(restProps)\n return (\n <Item asChild ref={forwardRef} {...restProps} {...ariaDisabledProps}>\n <a href={href}>{children}</a>\n </Item>\n )\n})\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\n\nimport { CONTENT_GAP } from '../styles/content'\n\nexport const StyledRadioGroup = styled(RadixDropdownMenu.RadioGroup, {\n display: 'grid',\n gap: CONTENT_GAP,\n})\n\nexport type StyledRadioGroupProps = StrictComponentProps<\n typeof StyledRadioGroup\n>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledRadioGroup } from './radio-group.styled'\nimport type { StyledRadioGroupProps } from './radio-group.styled'\n\nexport interface RadioGroupProps\n extends Omit<StyledRadioGroupProps, 'onChange'> {\n /**\n * The value of the selected item in the group\n */\n value: string\n\n /**\n * Event handler called when the selected radio changes\n */\n onChange: (value: string) => void\n}\n\nexport const RadioGroup = React.forwardRef<\n ElementRef<typeof StyledRadioGroup>,\n RadioGroupProps\n>((props, forwardRef) => {\n const { onChange, ...restProps } = props\n\n return (\n <StyledRadioGroup\n {...restProps}\n ref={forwardRef}\n onValueChange={onChange}\n />\n )\n})\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport { IconProhibit } from '@mirohq/design-system-icons'\n\nimport { itemDefaults } from '../styles/item'\n\nexport const StyledRadioContainer = styled(Primitive.div, {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '$4',\n height: '$4',\n boxSizing: 'border-box',\n border: '1px solid $border-neutrals',\n borderRadius: '$half',\n})\n\nexport const StyledPill = styled(Primitive.div, {\n display: 'none',\n width: '$2',\n height: '$2',\n borderRadius: '$half',\n})\n\nexport const StyledProhibited = styled(IconProhibit, {\n display: 'none',\n width: '$3 !important',\n})\n\nexport const StyledRadioItem = styled(RadixDropdownMenu.RadioItem, {\n ...itemDefaults,\n [`&[data-state=\"checked\"] ${StyledRadioContainer}`]: {\n color: '$icon-primary',\n borderColor: '$border-primary',\n\n [`& ${StyledPill}`]: {\n display: 'block',\n backgroundColor: '$background-primary-prominent-selected',\n },\n },\n\n [`&:hover:not([aria-disabled=\"true\"]) ${StyledRadioContainer}`]: {\n borderColor: '$border-primary-hover',\n\n [`& ${StyledPill}`]: {\n backgroundColor: '$background-primary-prominent-hover',\n },\n },\n\n [`\n &[aria-disabled=\"true\"] ${StyledRadioContainer},\n &[data-disabled] ${StyledRadioContainer}\n `]: {\n color: '$icon-neutrals-disabled',\n borderColor: '$border-neutrals-disabled',\n\n [`& ${StyledPill}`]: {\n backgroundColor: '$icon-neutrals-disabled',\n },\n },\n '&[data-state=\"unchecked\"]': {\n [`\n &[aria-disabled=\"true\"] ${StyledProhibited},\n &[data-disabled] ${StyledProhibited}\n `]: {\n display: 'flex',\n },\n },\n})\n\nexport type StyledRadioItemProps = StrictComponentProps<typeof StyledRadioItem>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport {\n StyledPill,\n StyledProhibited,\n StyledRadioContainer,\n StyledRadioItem,\n} from './radio-item.styled'\nimport type { StyledRadioItemProps } from './radio-item.styled'\nimport { RightSlot } from './right-slot'\nimport { useAriaDisabled } from '../hooks/use-aria-disabled'\nimport { ItemProvider } from '../hooks/use-item'\n\nexport interface RadioItemProps extends StyledRadioItemProps {\n /**\n * The unique value of the item.\n */\n value: string\n\n /**\n * When true, prevents the user from interacting with the item.\n */\n disabled?: boolean\n\n /**\n * Event handler called when the user selects an item (via mouse of keyboard).\n */\n onSelect?: (event: Event) => void\n\n /**\n * Closes the dropdown when the user selects an item.\n */\n closeOnSelect?: boolean\n\n /**\n * Optional text used for typeahead purposes. By default the typeahead behavior will use the .textContent of the item.\n * Use this when the content is complex, or you have non-textual content inside.\n */\n textValue?: string\n}\n\nexport const RadioItem = React.forwardRef<\n ElementRef<typeof StyledRadioItem>,\n RadioItemProps\n>(({ disabled, children, closeOnSelect = false, ...restProps }, forwardRef) => {\n const ariaDisabledProps = useAriaDisabled(restProps, closeOnSelect)\n return (\n <ItemProvider>\n <StyledRadioItem\n {...restProps}\n {...ariaDisabledProps}\n disabled={disabled}\n ref={forwardRef}\n >\n {children}\n <RightSlot>\n <StyledRadioContainer>\n <StyledPill />\n <StyledProhibited weight='thin' />\n </StyledRadioContainer>\n </RightSlot>\n </StyledRadioItem>\n </ItemProvider>\n )\n})\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\n\nexport const StyledSeparator = styled(RadixDropdownMenu.Separator, {\n borderTop: '1px solid $border-neutrals-subtle',\n})\n\nexport type StyledSeparatorProps = StrictComponentProps<typeof StyledSeparator>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledSeparator } from './separator.styled'\nimport type { StyledSeparatorProps } from './separator.styled'\n\nexport interface SeparatorProps extends StyledSeparatorProps {}\n\nexport const Separator = React.forwardRef<\n ElementRef<typeof StyledSeparator>,\n SeparatorProps\n>((props, forwardRef) => <StyledSeparator {...props} ref={forwardRef} />)\n","import type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { styled } from '@mirohq/design-system-stitches'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\nimport { styles } from '@mirohq/design-system-base-switch'\nimport { Primitive } from '@mirohq/design-system-primitive'\n\nimport { itemDefaults } from '../styles/item'\n\nexport const StyledSwitch = styled(Primitive.span, {\n ...styles.default,\n width: '$7',\n height: '$4',\n})\n\nexport const StyledSwitchItem = styled(RadixDropdownMenu.CheckboxItem, {\n ...itemDefaults,\n\n [`&[data-state=\"checked\"] ${StyledSwitch}`]: styles.checked,\n [`&[data-state=\"checked\"]:hover:not([aria-disabled=\"true\"]) ${StyledSwitch}`]:\n styles.checkedHovered,\n\n [`&:hover:not([aria-disabled=\"true\"]) ${StyledSwitch}`]: styles.hovered,\n [`\n &[aria-disabled=\"true\"] ${StyledSwitch},\n &[data-disabled] ${StyledSwitch}\n `]: styles.disabled,\n})\n\nexport type StyledSwitchItemProps = StrictComponentProps<\n typeof StyledSwitchItem\n>\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport { Thumb } from '@mirohq/design-system-base-switch'\n\nimport { RightSlot } from './right-slot'\nimport type { StyledSwitchItemProps } from './switch-item.styled'\nimport { StyledSwitch, StyledSwitchItem } from './switch-item.styled'\nimport { useAriaDisabled } from '../hooks/use-aria-disabled'\nimport { ItemProvider } from '../hooks/use-item'\n\nexport interface SwitchItemProps\n extends Omit<StyledSwitchItemProps, 'onChange'> {\n /**\n * The checked state of the item.\n */\n checked: boolean\n\n /**\n * Event handler called when the checked state changes.\n */\n onChange: (checked: boolean) => void\n\n /**\n * When true, prevents the user from interacting with the item.\n */\n disabled?: boolean\n\n /**\n * Event handler called when the user selects an item (via mouse of keyboard).\n */\n onSelect?: (event: Event) => void\n\n /**\n * Closes the dropdown when the user selects an item.\n */\n closeOnSelect?: boolean\n\n /**\n * Optional text used for typeahead purposes. By default the typeahead behavior will use the .textContent of the item.\n * Use this when the content is complex, or you have non-textual content inside.\n */\n textValue?: string\n}\n\nexport const SwitchItem = React.forwardRef<\n ElementRef<typeof StyledSwitchItem>,\n SwitchItemProps\n>(\n (\n {\n disabled,\n checked,\n onChange,\n children,\n closeOnSelect = false,\n ...restProps\n },\n forwardRef\n ) => {\n const ariaDisabledProps = useAriaDisabled(restProps, closeOnSelect)\n\n return (\n <ItemProvider>\n <StyledSwitchItem\n {...restProps}\n {...ariaDisabledProps}\n disabled={disabled}\n checked={checked}\n onCheckedChange={onChange}\n ref={forwardRef}\n >\n {children}\n <RightSlot>\n <StyledSwitch>\n <Thumb />\n </StyledSwitch>\n </RightSlot>\n </StyledSwitchItem>\n </ItemProvider>\n )\n }\n)\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\nimport { focus } from '@mirohq/design-system-styles'\n\nexport const StyledTrigger = styled(RadixDropdownMenu.Trigger, {\n variants: {\n unstyled: {\n true: {\n all: 'unset',\n boxSizing: 'border-box',\n cursor: 'pointer',\n ...focus.css({\n boxShadow: '$focus-small',\n outline: '1px solid transparent',\n }),\n },\n false: {\n cursor: 'pointer',\n },\n },\n },\n})\n\nexport type StyledTriggerProps = StrictComponentProps<typeof StyledTrigger>\n","import React, { useRef } from 'react'\nimport { isVirtualClick } from '@react-aria/utils'\nimport { mergeRefs } from '@mirohq/design-system-utils'\nimport type { MouseEventHandler, ElementRef } from 'react'\n\nimport { StyledTrigger } from './trigger.styled'\nimport type { StyledTriggerProps } from './trigger.styled'\n\nexport interface TriggerProps extends StyledTriggerProps {}\n\nexport const Trigger = React.forwardRef<\n ElementRef<typeof StyledTrigger>,\n TriggerProps\n>(({ asChild = false, onClick, ...restProps }, forwardRef) => {\n const ref = useRef<HTMLButtonElement>(null)\n\n /**\n * It forces the trigger of pointerDow on the Dropdown.Trigger.\n * This had to be done because when using Ctrl + Option + Space on safari it\n * triggers onClick, and Radix only listens to onPointerDown.\n * https://github.com/radix-ui/primitives/blob/bc28fb42b81e4f95ce41eef3ed683ea0dd823dd8/packages/react/dropdown-menu/src/DropdownMenu.tsx#L117\n */\n const handleVirtualClick: MouseEventHandler<Element> = e => {\n if (e?.nativeEvent === undefined) {\n console.error(\n 'DropdownMenu.Trigger onClick expected a MouseEvent but got different one. It usually happens due to a element used asChild with a different onClick interface.\\n' +\n `Event: ${JSON.stringify(e, null, 2)}`\n )\n return\n }\n\n const nativeEvent = e.nativeEvent as any\n\n if (nativeEvent.mozInputSource === undefined) {\n nativeEvent.mozInputSource = null\n }\n\n if (isVirtualClick(e.nativeEvent) && ref.current !== null) {\n const pointerDownEvent = new MouseEvent('pointerdown', {\n bubbles: true,\n cancelable: true,\n })\n\n ref.current?.dispatchEvent(pointerDownEvent)\n }\n }\n return (\n <StyledTrigger\n {...restProps}\n onClick={e => {\n handleVirtualClick(e)\n onClick?.(e)\n }}\n ref={mergeRefs([ref, forwardRef])}\n unstyled={!asChild}\n asChild={asChild}\n />\n )\n})\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\nimport { Primitive } from '@mirohq/design-system-primitive'\n\nimport { itemDefaults } from '../styles/item'\n\nexport const StyledIconContainer = styled(Primitive.span, {\n color: '$icon-neutrals-with-text',\n display: 'flex',\n alignItems: 'center',\n})\n\nexport const StyledSubTrigger = styled(RadixDropdownMenu.SubTrigger, {\n ...itemDefaults,\n '&[data-state=\"open\"]': itemDefaults['&:hover:not([aria-disabled=\"true\"])'],\n\n [`&[data-state=\"open\"] ${StyledIconContainer}, &:hover:not([aria-disabled=\"true\"]) ${StyledIconContainer}`]:\n {\n color: '$icon-primary-hover',\n },\n})\n\nexport type StyledSubTriggerProps = StrictComponentProps<\n typeof StyledSubTrigger\n>\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport { IconChevronRight } from '@mirohq/design-system-icons'\n\nimport { StyledIconContainer, StyledSubTrigger } from './sub-trigger.styled'\nimport type { StyledSubTriggerProps } from './sub-trigger.styled'\nimport { RightSlot } from './right-slot'\nimport { useAriaDisabled } from '../hooks/use-aria-disabled'\n\nexport interface SubTriggerProps extends StyledSubTriggerProps {\n /**\n * Prevents the user from interacting with the switch\n */\n disabled?: boolean\n\n /**\n * Optional text used for type ahead purposes. By default the type ahead\n * behavior will use the .textContent of the item. Use this when the content\n * is complex, or you have.\n */\n textValue?: string\n}\n\nexport const SubTrigger = React.forwardRef<\n ElementRef<typeof StyledSubTrigger>,\n StyledSubTriggerProps\n>(({ children, disabled = false, ...restProps }, forwardRef) => {\n const { onSelect, ...ariaDisabledProps } = useAriaDisabled({\n onKeyDown: restProps.onKeyDown,\n 'aria-disabled': restProps['aria-disabled'],\n })\n\n return (\n <StyledSubTrigger\n {...restProps}\n {...ariaDisabledProps}\n disabled={disabled}\n ref={forwardRef}\n >\n {children}\n <RightSlot>\n <StyledIconContainer\n data-testid={\n process.env.NODE_ENV === 'test' ? 'submenu-arrow-icon' : undefined\n }\n >\n <IconChevronRight size='small' weight='thin' />\n </StyledIconContainer>\n </RightSlot>\n </StyledSubTrigger>\n )\n})\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\n\nimport { contentDefaults } from '../styles/content'\n\nexport const StyledSubContent = styled(\n RadixDropdownMenu.SubContent,\n contentDefaults\n)\n\nexport type StyledSubContentProps = StrictComponentProps<\n typeof StyledSubContent\n>\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport type { CSSProperties } from '@stitches/react'\n\nimport { StyledSubContent } from './sub-content.styled'\nimport { CONTENT_GUTTER, CONTENT_OFFSET } from '../styles/content'\nimport { ContentProvider, useContent } from '../hooks/use-content'\nimport { ScrollableContent } from './scrollable-content'\nimport type { StyledSubContentProps } from './sub-content.styled'\nimport { StyledItemsContainer } from './content.styled'\nimport type {\n PointerDownOutsideEvent,\n FocusOutsideEvent,\n StickyBehavior,\n Overflow,\n} from '../types'\n\nexport interface SubContentProps extends StyledSubContentProps {\n /**\n * Whether keyboard navigation should loop around\n * @default false\n */\n loop?: boolean\n\n /**\n * Event handler called when focus moves to the trigger after closing. It can\n * be prevented by calling event.preventDefault. This prop is ignored within\n * submenus.\n */\n onCloseAutoFocus?: (event: Event) => 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 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 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 * 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 distance in pixels from the trigger.\n */\n sideOffset?: number\n\n /**\n * An offset in pixels from the \"start\" or \"end\" alignment options.\n */\n alignOffset?: number\n\n /**\n * When true, overrides the side andalign preferences to prevent collisions\n * with window edges.\n * @default true\n */\n avoidCollisions?: boolean\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 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 * @default partial\n */\n sticky?: StickyBehavior\n\n /**\n * Whether to hide the content when the trigger becomes fully occluded.\n * @default false\n */\n hideWhenDetached?: boolean\n\n /**\n * The max height for the subContent.\n */\n maxHeight?: CSSProperties['maxHeight']\n\n /**\n * Setting overflow as \"visible\" means that the content can extend beyond the\n * its collision boundary without any clipping or scrolling being\n * applied.\n * When set to \"auto,\" a scrollbar is added if the content exceeds its\n * boundaries. If no maxHeight is defined, it will be automatically adjusted\n * to fit the remaining space between the trigger and the boundary edge.\n */\n overflow?: Overflow\n}\n\n// without CONTENT_GUTTER submenu would overlap the menu\nconst SIDE_OFFSET = CONTENT_GUTTER + CONTENT_OFFSET\n\nexport const SubContent = React.forwardRef<\n ElementRef<typeof StyledSubContent>,\n SubContentProps\n>(\n (\n {\n sideOffset = SIDE_OFFSET,\n alignOffset = -CONTENT_GUTTER,\n collisionPadding = 0,\n loop = false,\n hideWhenDetached = true,\n sticky = 'partial',\n overflow = 'visible',\n maxHeight,\n children,\n ...restProps\n },\n forwardRef\n ) => {\n /* A new ContentProvider instance is created per Content and SubContent,\n using the context from the parent is necessary to preserve this value. */\n const { containerSpacing } = useContent()\n return (\n <ContentProvider containerSpacing={containerSpacing}>\n <StyledSubContent\n {...restProps}\n ref={forwardRef}\n sideOffset={sideOffset}\n alignOffset={alignOffset}\n collisionPadding={collisionPadding}\n loop={loop}\n hideWhenDetached={hideWhenDetached}\n sticky={sticky}\n >\n <ScrollableContent {...{ containerSpacing, maxHeight, overflow }}>\n <StyledItemsContainer>{children}</StyledItemsContainer>\n </ScrollableContent>\n </StyledSubContent>\n </ContentProvider>\n )\n }\n)\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\n\nexport const StyledSub = styled(RadixDropdownMenu.Sub, {})\n\nexport type StyledSubProps = StrictComponentProps<typeof StyledSub>\n","import React, { useState } from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledSub } from './sub.styled'\nimport type { StyledSubProps } from './sub.styled'\n\nexport interface SubProps extends StyledSubProps {\n /**\n * The open state of the submenu when it is initially rendered. Use when you\n * do not need to control its open state.\n */\n defaultOpen?: boolean\n\n /**\n * The controlled open state of the submenu. Must be used in conjunction with\n * onOpenChange.\n */\n open?: boolean\n\n /**\n * Event handler called when the submenu opens.\n */\n onOpen?: () => void\n\n /**\n * Event handler called when the submenu closes.\n */\n onClose?: () => void\n}\n\nexport const Sub = React.forwardRef<ElementRef<typeof StyledSub>, SubProps>(\n ({ defaultOpen, onOpen, onClose, open, ...restProps }, forwardRef) => {\n const [openState, setOpenState] = useState(defaultOpen)\n return (\n <StyledSub\n {...restProps}\n open={open ?? openState}\n onOpenChange={newOpen => {\n if (open == null) {\n setOpenState(newOpen)\n }\n\n newOpen ? onOpen?.() : onClose?.()\n }}\n ref={forwardRef}\n />\n )\n }\n)\n","import React from 'react'\nimport type { DropdownMenuPortalProps } from '@radix-ui/react-dropdown-menu'\nimport { Portal as RadixPortal } from '@radix-ui/react-dropdown-menu'\n\nexport interface PortalProps extends DropdownMenuPortalProps {\n /**\n * Used to force mounting when more control is needed. Useful when controlling\n * animation with React animation libraries. If used on this part, it will be\n * inherited by DropdownMenu.Content and DropdownMenu.SubContent respectively.\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 type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { styles as baseIconStyles } from '@mirohq/design-system-base-icon'\n\nimport { LeftSlot } from './left-slot'\n\nexport const StyledIconSlot = styled(LeftSlot, {\n square: '$5',\n\n '& svg:not([data-icon-component]), & img:not([data-icon-component])': {\n ...baseIconStyles.size.small,\n ...baseIconStyles.weight.thin,\n },\n})\n\nexport type StyledIconSlotProps = StrictComponentProps<typeof StyledIconSlot>\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport { useLayoutEffect } from '@mirohq/design-system-use-layout-effect'\nimport type { IconSizes, IconWeights } from '@mirohq/design-system-base-icon'\nimport { isIconComponent } from '@mirohq/design-system-base-icon'\nimport { addPropsToChildren } from '@mirohq/design-system-utils'\nimport { Primitive } from '@mirohq/design-system-primitive'\n\nimport type { StyledIconSlotProps } from './icon-slot.styled'\nimport { StyledIconSlot } from './icon-slot.styled'\nimport { useItem } from '../hooks/use-item'\n\nexport type IconSlotProps = Omit<StyledIconSlotProps, 'custom'>\n\ninterface IconComponentProps {\n 'data-icon-component': ''\n size: IconSizes\n weight: IconWeights\n}\n\nexport const IconSlot = React.forwardRef<\n ElementRef<typeof StyledIconSlot>,\n IconSlotProps\n>(({ children, ...restProps }, forwardRef) => {\n const { leftSlotMount, leftSlotDestroy } = useItem()\n\n const formattedChildren = addPropsToChildren<IconComponentProps>(\n children,\n isIconComponent,\n {\n 'data-icon-component': '',\n size: 'small',\n weight: 'thin',\n }\n )\n\n useLayoutEffect(() => {\n leftSlotMount()\n return () => leftSlotDestroy()\n }, [leftSlotMount, leftSlotDestroy])\n\n return (\n <StyledIconSlot ref={forwardRef} {...restProps}>\n <Primitive.svg asChild aria-hidden>\n {formattedChildren}\n </Primitive.svg>\n </StyledIconSlot>\n )\n})\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport { useLayoutEffect } from '@mirohq/design-system-use-layout-effect'\n\nimport { useItem } from '../hooks/use-item'\nimport type { StyledIllustrationSlotProps } from './illustration-slot.styled'\nimport { StyledIllustrationSlot } from './illustration-slot.styled'\n\nexport const IllustrationSlot = React.forwardRef<\n ElementRef<typeof StyledIllustrationSlot>,\n StyledIllustrationSlotProps\n>((props, forwardRef) => {\n const { leftSlotMount, leftSlotDestroy } = useItem()\n\n useLayoutEffect(() => {\n leftSlotMount()\n return () => leftSlotDestroy()\n }, [leftSlotMount, leftSlotDestroy])\n\n return <StyledIllustrationSlot ref={forwardRef} {...props} />\n})\n","import React, { useState } from 'react'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\n\nimport { CheckboxItem } from './partials/checkbox-item'\nimport { Content } from './partials/content'\nimport { Item } from './partials/item'\nimport { LinkItem } from './partials/link-item'\nimport { RadioGroup } from './partials/radio-group'\nimport { RadioItem } from './partials/radio-item'\nimport { Separator } from './partials/separator'\nimport { SwitchItem } from './partials/switch-item'\nimport { Trigger } from './partials/trigger'\nimport { SubTrigger } from './partials/sub-trigger'\nimport { SubContent } from './partials/sub-content'\nimport { Sub } from './partials/sub'\nimport { Portal } from './partials/portal'\nimport { ItemDescription } from './partials/item-description'\nimport { IconSlot } from './partials/icon-slot'\nimport { HotkeySlot } from './partials/hotkey-slot'\nimport { IllustrationSlot } from './partials/illustration-slot'\n\nexport interface DropdownMenuProps {\n /**\n * The open state of the dropdown menu when it is initially rendered. Use when\n * you do not need to control its open state.\n */\n defaultOpen?: boolean\n\n /**\n * The reading direction of submenus when applicable. If omitted, assumes LTR\n * (left-to-right) reading mode.\n */\n direction?: 'ltr' | 'rtl'\n\n /**\n * The current dropdown open state.\n */\n open?: boolean\n\n /**\n * Event handler called when the dropdown opens.\n */\n onOpen?: () => void\n\n /**\n * Event handler called when the dropdown closes.\n */\n onClose?: () => void\n\n /**\n * Defines whether the interaction with outside elements will be disabled and\n * only menu content will be visible to screen readers. This prop is ignored\n * within submenus.\n */\n interactOutside?: boolean\n\n /**\n * The content\n */\n children: React.ReactNode\n}\n\nexport const DropdownMenu: React.FC<DropdownMenuProps> & Partials = ({\n defaultOpen = false,\n direction = 'ltr',\n interactOutside = false,\n open,\n onOpen,\n onClose,\n ...restProps\n}) => {\n const [openState, setOpenState] = useState(defaultOpen)\n\n return (\n <RadixDropdownMenu.Root\n {...restProps}\n dir={direction}\n modal={interactOutside}\n open={open ?? openState}\n onOpenChange={newOpen => {\n if (open == null) {\n setOpenState(newOpen)\n }\n\n newOpen ? onOpen?.() : onClose?.()\n }}\n />\n )\n}\n\n// Partials\n// -----------------------------------------------------------------------------\n\ninterface Partials {\n CheckboxItem: typeof CheckboxItem\n Content: typeof Content\n HotkeySlot: typeof HotkeySlot\n IconSlot: typeof IconSlot\n IllustrationSlot: typeof IllustrationSlot\n Item: typeof Item\n ItemDescription: typeof ItemDescription\n LinkItem: typeof LinkItem\n Portal: typeof Portal\n RadioGroup: typeof RadioGroup\n RadioItem: typeof RadioItem\n Separator: typeof Separator\n Sub: typeof Sub\n SubContent: typeof SubContent\n SubTrigger: typeof SubTrigger\n SwitchItem: typeof SwitchItem\n Trigger: typeof Trigger\n}\n\nDropdownMenu.CheckboxItem = CheckboxItem\nDropdownMenu.Content = Content\nDropdownMenu.HotkeySlot = HotkeySlot\nDropdownMenu.IconSlot = IconSlot\nDropdownMenu.IllustrationSlot = IllustrationSlot\nDropdownMenu.Item = Item\nDropdownMenu.ItemDescription = ItemDescription\nDropdownMenu.LinkItem = LinkItem\nDropdownMenu.Portal = Portal\nDropdownMenu.RadioGroup = RadioGroup\nDropdownMenu.RadioItem = RadioItem\nDropdownMenu.Separator = Separator\nDropdownMenu.Sub = Sub\nDropdownMenu.SubContent = SubContent\nDropdownMenu.SubTrigger = SubTrigger\nDropdownMenu.SwitchItem = SwitchItem\nDropdownMenu.Trigger = Trigger\n"],"names":["styled","Primitive","Context","createContext","useState","useRef","useCallback","addPropsToChildren","jsx","useContext","useLayoutEffect","focus","RadixDropdownMenu","useMemo","booleanify","React","jsxs","IconProhibit","IconCheckMark","theme","animations","ScrollArea","styles","Thumb","isVirtualClick","mergeRefs","IconChevronRight","RadixPortal","baseIconStyles","isIconComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"main.js","sources":["../src/partials/item-description.tsx","../src/partials/left-slot.tsx","../src/partials/illustration-slot.styled.ts","../src/hooks/use-content.tsx","../src/partials/right-slot.styled.ts","../src/partials/right-slot.tsx","../src/partials/hotkey-slot.tsx","../src/styles/item.ts","../src/partials/checkbox-item.styled.tsx","../src/hooks/use-aria-disabled.ts","../src/hooks/use-item.tsx","../src/partials/checkbox-item.tsx","../src/styles/content.ts","../src/partials/content.styled.tsx","../src/partials/scrollable-content.tsx","../src/partials/content.tsx","../src/partials/item.styled.tsx","../src/partials/item.tsx","../src/partials/link-item.tsx","../src/partials/radio-group.styled.tsx","../src/partials/radio-group.tsx","../src/partials/radio-item.styled.tsx","../src/partials/radio-item.tsx","../src/partials/separator.styled.tsx","../src/partials/separator.tsx","../src/partials/switch-item.styled.ts","../src/partials/switch-item.tsx","../src/partials/trigger.styled.tsx","../src/partials/trigger.tsx","../src/partials/sub-trigger.styled.tsx","../src/partials/sub-trigger.tsx","../src/partials/sub-content.styled.tsx","../src/partials/sub-content.tsx","../src/partials/sub.styled.tsx","../src/partials/sub.tsx","../src/partials/portal.tsx","../src/partials/icon-slot.styled.ts","../src/partials/icon-slot.tsx","../src/partials/illustration-slot.tsx","../src/dropdown-menu.tsx"],"sourcesContent":["import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\n\nexport const ItemDescription = styled(Primitive.div, {\n display: '-webkit-box',\n width: '100%',\n WebkitBoxOrient: 'vertical',\n WebkitLineClamp: 2,\n overflow: 'hidden',\n gridArea: 'item-description',\n fontSize: '$150',\n lineHeight: 1.5,\n color: '$text-neutrals-subtle',\n})\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\n\nexport const LeftSlot = styled(Primitive.div, {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n marginRight: '$100',\n gridArea: 'left-slot',\n})\n","import type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { styled } from '@mirohq/design-system-stitches'\n\nimport { LeftSlot } from './left-slot'\n\nexport const StyledIllustrationSlot = styled(LeftSlot, {\n width: '$13',\n})\n\nexport type StyledIllustrationSlotProps = StrictComponentProps<\n typeof StyledIllustrationSlot\n>\n","import React, {\n createContext,\n useContext,\n useState,\n useRef,\n useCallback,\n} from 'react'\nimport type { PropsWithChildren } from 'react'\nimport { addPropsToChildren } from '@mirohq/design-system-utils'\n\nimport type { ContainerSpacing } from '../types'\n\ninterface ContentContext {\n rightSlotMount: (width: number) => number\n rightSlotDestroy: (index: number) => void\n containerSpacing: ContainerSpacing\n}\n\nconst Context = createContext<ContentContext>({\n rightSlotMount: () => 0,\n rightSlotDestroy: () => {},\n containerSpacing: 'medium',\n})\n\nexport const ContentProvider = ({\n children,\n containerSpacing = 'medium',\n}: PropsWithChildren<{\n containerSpacing?: ContainerSpacing\n}>): JSX.Element => {\n const [maxWidth, setMaxWidth] = useState<number>(0)\n\n // we need maxRef, so we don't rerender RightSlot whenever we change maxWidth\n const maxRef = useRef<number>(0)\n\n // rightSlot index to remove width from map on destroy\n const indexRef = useRef<number>(0)\n\n const widthMapRef = useRef<Map<number, number>>(new Map())\n\n const updateMaxWith = useCallback((value: number) => {\n maxRef.current = value\n setMaxWidth(value)\n }, [])\n\n // do not use state here, otherwise it will case many rerenders in RightSlot\n const rightSlotMount = useCallback(\n (width: number): number => {\n indexRef.current++\n\n widthMapRef.current.set(indexRef.current, width)\n\n if (width > maxRef.current) {\n updateMaxWith(width)\n }\n\n return indexRef.current\n },\n [updateMaxWith]\n )\n\n // do not use state here, otherwise it will case many rerenders in RightSlot\n const rightSlotDestroy = useCallback(\n (index: number): void => {\n widthMapRef.current.delete(index)\n\n if (widthMapRef.current.size === 0) {\n updateMaxWith(0)\n } else {\n const maximum = Math.max(...Array.from(widthMapRef.current.values()))\n updateMaxWith(maximum)\n }\n },\n [updateMaxWith]\n )\n\n const formattedChildren = addPropsToChildren(children, () => true, {\n UNSAFE_style: {\n '--right-slot-max-width': `${Math.ceil(maxWidth)}px`,\n },\n })\n\n return (\n <Context.Provider\n value={{\n rightSlotMount,\n rightSlotDestroy,\n containerSpacing,\n }}\n >\n {formattedChildren}\n </Context.Provider>\n )\n}\n\nexport const useContent = (): ContentContext => useContext(Context)\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\n\nexport const StyledRightSlot = styled(Primitive.div, {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n marginLeft: 'auto',\n paddingLeft: '$200',\n gridArea: 'right-slot',\n height: '$5',\n width: '$7',\n minWidth: 'max-content',\n textAlign: 'right',\n '&:empty': {\n paddingLeft: '$0',\n },\n})\n","import React, { useRef } from 'react'\nimport type { ComponentPropsWithRef } from 'react'\nimport { useLayoutEffect } from '@mirohq/design-system-use-layout-effect'\n\nimport { useContent } from '../hooks/use-content'\nimport { StyledRightSlot } from './right-slot.styled'\n\nexport const RightSlot = (\n props: ComponentPropsWithRef<typeof StyledRightSlot>\n): JSX.Element => {\n const { rightSlotMount, rightSlotDestroy } = useContent()\n\n const ref = useRef<HTMLDivElement>(null)\n\n useLayoutEffect(() => {\n if (ref.current !== null) {\n const width = ref.current.getBoundingClientRect().width\n const index = rightSlotMount(width)\n\n return () => rightSlotDestroy(index)\n }\n\n return () => {}\n }, [rightSlotMount, rightSlotDestroy, ref])\n\n return <StyledRightSlot ref={ref} {...props} />\n}\n","import { styled } from '@mirohq/design-system-stitches'\n\nimport { RightSlot } from './right-slot'\n\nexport const HotkeySlot = styled(RightSlot, {\n color: '$text-neutrals-subtle',\n})\n","import { focus } from '@mirohq/design-system-styles'\n\nimport { ItemDescription } from '../partials/item-description'\nimport { StyledIllustrationSlot } from '../partials/illustration-slot.styled'\nimport { HotkeySlot } from '../partials/hotkey-slot'\n\nexport const itemDefaults = {\n all: 'unset',\n boxSizing: 'border-box',\n fontSize: 14,\n lineHeight: '20px',\n color: '$text-neutrals',\n borderRadius: '$50',\n display: 'grid',\n gridTemplateColumns:\n 'auto 1fr minmax(min-content, var(--right-slot-max-width))',\n gridTemplateRows: 'auto 1fr',\n gridTemplateAreas: `'left-slot item-text right-slot'\n 'left-slot item-description right-slot'`,\n alignItems: 'start',\n padding: '10px $100',\n position: 'relative',\n userSelect: 'none',\n cursor: 'pointer',\n\n '&[data-no-left-slot]': {\n gridTemplateColumns: '1fr minmax(auto, var(--right-slot-max-width))',\n gridTemplateAreas: `'item-text right-slot'\n 'item-description right-slot'`,\n },\n\n ...focus.css({\n boxShadow: '$focus-small',\n outline: '1px solid transparent',\n }),\n\n '&:disabled, &[aria-disabled=\"true\"], &[data-disabled]': {\n cursor: 'default',\n\n [`&, & ${ItemDescription}, & ${HotkeySlot}`]: {\n color: '$text-neutrals-disabled',\n },\n [`& ${StyledIllustrationSlot}`]: {\n filter: 'grayscale(1)',\n },\n },\n\n '&:disabled, &[data-disabled]': {\n pointerEvents: 'none',\n },\n\n '&:hover:not([aria-disabled=\"true\"])': {\n background: '$background-primary-subtle-hover',\n color: '$text-primary-hover',\n '&:not([aria-disabled=\"true\"])': {\n boxShadow: 'none',\n },\n },\n\n '&:active:not([aria-disabled=\"true\"])': {\n background: '$background-primary-subtle-active',\n boxShadow: 'none',\n color: '$text-primary-active',\n },\n\n '&[tabindex=\"0\"]': {\n zIndex: '1',\n },\n}\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\n\nimport { itemDefaults } from '../styles/item'\n\nexport const StyledIndicator = styled(Primitive.span, {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n})\n\nexport const StyledCheckboxItem = styled(RadixDropdownMenu.CheckboxItem, {\n ...itemDefaults,\n [`&[data-state=\"checked\"] ${StyledIndicator}`]: {\n color: '$icon-primary',\n },\n [`&[data-state=\"checked\"]:hover:not([aria-disabled=\"true\"]) ${StyledIndicator}`]:\n {\n color: '$icon-primary-hover',\n },\n [`\n &[aria-disabled=\"true\"] ${StyledIndicator},\n &[data-disabled] ${StyledIndicator}\n `]: {\n color: '$icon-neutrals-disabled',\n },\n})\n\nexport type StyledCheckboxItemProps = StrictComponentProps<\n typeof StyledCheckboxItem\n>\n","import { useMemo } from 'react'\nimport type {\n KeyboardEventHandler,\n PointerEventHandler,\n MouseEventHandler,\n} from 'react'\nimport type { Booleanish } from '@mirohq/design-system-types'\nimport { booleanify } from '@mirohq/design-system-utils'\n\ninterface AriaDisabledProps extends Object {\n 'aria-disabled'?: Booleanish\n onKeyDown?: KeyboardEventHandler\n onSelect?: (event: Event) => void\n onPointerMove?: PointerEventHandler\n onClick?: MouseEventHandler\n}\n\nexport const useAriaDisabled = (\n {\n 'aria-disabled': ariaDisabled,\n onKeyDown,\n onSelect,\n onPointerMove,\n onClick,\n }: AriaDisabledProps,\n closeOnCheck: boolean | undefined = true\n): AriaDisabledProps =>\n useMemo(\n () => ({\n 'aria-disabled': booleanify(ariaDisabled) ? ariaDisabled : undefined,\n onKeyDown: e => {\n if (\n booleanify(ariaDisabled) &&\n e.code !== 'ArrowUp' &&\n e.code !== 'ArrowDown' &&\n e.code !== 'Escape'\n ) {\n e.preventDefault()\n e.stopPropagation()\n return\n }\n\n onKeyDown?.(e)\n },\n onSelect: e => {\n if (booleanify(ariaDisabled)) {\n e.preventDefault()\n return\n }\n\n if (!closeOnCheck) {\n e.preventDefault()\n }\n\n onSelect?.(e)\n },\n onPointerMove: e => {\n if (booleanify(ariaDisabled)) {\n e.preventDefault()\n return\n }\n\n onPointerMove?.(e)\n },\n onClick: e => {\n if (booleanify(ariaDisabled)) {\n e.preventDefault()\n return\n }\n\n onClick?.(e)\n },\n }),\n [ariaDisabled, onKeyDown, onSelect, onPointerMove, onClick, closeOnCheck]\n )\n","import React, { createContext, useContext, useState, useCallback } from 'react'\nimport type { PropsWithChildren } from 'react'\nimport { addPropsToChildren } from '@mirohq/design-system-utils'\n\ninterface ItemContext {\n leftSlotMount: () => void\n leftSlotDestroy: () => void\n}\n\nconst Context = createContext<ItemContext>({\n leftSlotMount: () => {},\n leftSlotDestroy: () => {},\n})\n\nexport const ItemProvider = ({\n children,\n}: PropsWithChildren<{}>): JSX.Element => {\n const [hasSlot, setHasSlot] = useState(false)\n\n const leftSlotMount = useCallback(() => {\n setHasSlot(true)\n }, [])\n\n const leftSlotDestroy = useCallback(() => {\n setHasSlot(false)\n }, [])\n\n const formattedChildren = hasSlot\n ? children\n : addPropsToChildren(children, () => true, {\n 'data-no-left-slot': '',\n })\n\n return (\n <Context.Provider\n value={{\n leftSlotMount,\n leftSlotDestroy,\n }}\n >\n {formattedChildren}\n </Context.Provider>\n )\n}\n\nexport const useItem = (): ItemContext => useContext(Context)\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport { IconCheckMark, IconProhibit } from '@mirohq/design-system-icons'\nimport { booleanify } from '@mirohq/design-system-utils'\n\nimport { StyledCheckboxItem, StyledIndicator } from './checkbox-item.styled'\nimport type { StyledCheckboxItemProps } from './checkbox-item.styled'\nimport { RightSlot } from './right-slot'\nimport { useAriaDisabled } from '../hooks/use-aria-disabled'\nimport { ItemProvider } from '../hooks/use-item'\n\nexport interface CheckboxItemProps\n extends Omit<StyledCheckboxItemProps, 'onChange'> {\n /**\n * The checked state of the item.\n */\n checked: boolean\n\n /**\n * Event handler called when the checked state changes.\n */\n onChange: (checked: boolean) => void\n\n /**\n * When true, prevents the user from interacting with the item.\n */\n disabled?: boolean\n\n /**\n * Event handler called when the user selects an item (via mouse of keyboard).\n */\n onSelect?: (event: Event) => void\n\n /**\n * Closes the dropdown when the user selects an item.\n */\n closeOnSelect?: boolean\n\n /**\n * Optional text used for typeahead purposes. By default the typeahead behavior will use the .textContent of the item.\n * Use this when the content is complex, or you have non-textual content inside.\n */\n textValue?: string\n}\n\nexport const CheckboxItem = React.forwardRef<\n ElementRef<typeof StyledCheckboxItem>,\n CheckboxItemProps\n>(\n (\n {\n children,\n checked,\n onChange,\n disabled,\n closeOnSelect = false,\n ...restProps\n },\n forwardRef\n ) => {\n const ariaDisabledProps = useAriaDisabled(restProps, closeOnSelect)\n const { 'aria-disabled': ariaDisabled } = ariaDisabledProps\n\n return (\n <ItemProvider>\n <StyledCheckboxItem\n {...restProps}\n {...ariaDisabledProps}\n ref={forwardRef}\n checked={checked}\n disabled={disabled}\n onCheckedChange={onChange}\n >\n {children}\n <RightSlot>\n <StyledIndicator>\n {(disabled === true || booleanify(ariaDisabled)) && !checked && (\n <IconProhibit\n weight='thin'\n css={{ square: '$3', display: 'block' }}\n />\n )}\n {checked && (\n <IconCheckMark css={{ square: '$3', display: 'block' }} />\n )}\n </StyledIndicator>\n </RightSlot>\n </StyledCheckboxItem>\n </ItemProvider>\n )\n }\n)\n","import { theme } from '@mirohq/design-system-stitches'\nimport { animations } from '@mirohq/design-system-styles'\n\nexport const CONTENT_GAP = '$50'\nexport const CONTENT_GUTTER = parseInt(theme.space[150])\nexport const CONTENT_OFFSET = parseInt(theme.space[50])\nexport const CONTENT_BORDER_FOCUS_ITEM = '2px'\nexport const CONTENT_PADDING = {\n small: '$50 $150',\n medium: '$150',\n large: '$150 $300',\n}\n\nexport const contentDefaults = {\n maxWidth: '$125',\n backgroundColor: '$background-neutrals-container',\n borderRadius: '$50',\n boxShadow: '$50',\n\n '& [data-radix-scroll-area-viewport]': {\n padding: `${CONTENT_BORDER_FOCUS_ITEM} $50 ${CONTENT_BORDER_FOCUS_ITEM} ${CONTENT_BORDER_FOCUS_ITEM}`,\n boxSizing: 'border-box',\n },\n\n '@media (prefers-reduced-motion: no-preference)': {\n animationDuration: '150ms',\n animationTimingFunction: 'cubic-bezier(0.25, 0.5, 0.5, 0.9)',\n willChange: 'transform, opacity',\n '&[data-state=\"open\"]': { animationName: animations.fadeInScaled },\n '&[data-state=\"closed\"]': { animationName: animations.fadeOutScaled },\n '&[data-side=\"top\"]': {\n '&[data-align=\"start\"]': { transformOrigin: 'bottom left' },\n '&[data-align=\"center\"]': { transformOrigin: 'bottom center' },\n '&[data-align=\"end\"]': { transformOrigin: 'bottom right' },\n },\n '&[data-side=\"right\"]': {\n '&[data-align=\"start\"]': { transformOrigin: 'top left' },\n '&[data-align=\"center\"]': { transformOrigin: 'center left' },\n '&[data-align=\"end\"]': { transformOrigin: 'bottom left' },\n },\n '&[data-side=\"bottom\"]': {\n '&[data-align=\"start\"]': { transformOrigin: 'top left' },\n '&[data-align=\"center\"]': { transformOrigin: 'top center' },\n '&[data-align=\"end\"]': { transformOrigin: 'top right' },\n },\n '&[data-side=\"left\"]': {\n '&[data-align=\"start\"]': { transformOrigin: 'top right' },\n '&[data-align=\"center\"]': { transformOrigin: 'center right' },\n '&[data-align=\"end\"]': { transformOrigin: 'bottom right' },\n },\n },\n position: 'relative',\n zIndex: '$dropdownMenu',\n}\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\n\nimport {\n contentDefaults,\n CONTENT_PADDING,\n CONTENT_GAP,\n} from '../styles/content'\n\nexport const StyledItemsContainer = styled('div', {\n display: 'grid',\n gap: CONTENT_GAP,\n})\n\nexport const StyledContent = styled(RadixDropdownMenu.Content, {\n ...contentDefaults,\n variants: {\n containerSpacing: {\n small: {\n '&, [role=\"menu\"]': {\n padding: CONTENT_PADDING.small,\n },\n },\n medium: {\n '&, [role=\"menu\"]': {\n padding: CONTENT_PADDING.medium,\n },\n },\n large: {\n '&, [role=\"menu\"]': {\n padding: CONTENT_PADDING.large,\n },\n },\n },\n },\n})\n\nexport type StyledContentProps = StrictComponentProps<typeof StyledContent>\n","import React, { useCallback } from 'react'\nimport { ScrollArea } from '@mirohq/design-system-scroll-area'\nimport type { CSS } from '@mirohq/design-system-stitches'\nimport type { CSSProperties } from '@stitches/react'\n\nimport { CONTENT_PADDING, CONTENT_BORDER_FOCUS_ITEM } from '../styles/content'\nimport type { ContainerSpacing, Overflow } from '../types'\n\ninterface ScrollableContentProps {\n children?: React.ReactNode\n containerSpacing: ContainerSpacing\n maxHeight?: CSSProperties['maxHeight']\n overflow: Overflow\n}\n\nexport const ScrollableContent = ({\n children,\n maxHeight,\n overflow,\n containerSpacing,\n}: ScrollableContentProps): JSX.Element => {\n const getOverflowMaxHeight = useCallback((): CSS => {\n const [top, , bottom] = CONTENT_PADDING[containerSpacing]\n .split(' ')\n .map(value => value.replace('$', ''))\n\n const topBottom =\n top !== undefined && bottom !== undefined\n ? `var(--space-${top}) + var(--space-${bottom})`\n : `var(--space-${top}) + var(--space-${top})`\n\n const overflowMaxHeigh =\n overflow === 'auto'\n ? `calc(var(--radix-dropdown-menu-content-available-height) - (${topBottom}))`\n : 'auto'\n\n const newMaxHeight = `calc(${maxHeight} - (${topBottom}))`\n\n return {\n maxHeight: maxHeight === undefined ? overflowMaxHeigh : newMaxHeight,\n }\n }, [maxHeight, overflow, containerSpacing])\n\n if (overflow === 'auto') {\n return (\n <ScrollArea\n css={{ margin: `-${CONTENT_BORDER_FOCUS_ITEM}` }}\n type='always'\n >\n <ScrollArea.Viewport css={{ ...getOverflowMaxHeight() }}>\n {children}\n </ScrollArea.Viewport>\n <ScrollArea.Scrollbar orientation='vertical'>\n <ScrollArea.Thumb />\n </ScrollArea.Scrollbar>\n </ScrollArea>\n )\n }\n\n return <>{children}</>\n}\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport type { CSSProperties } from '@stitches/react'\n\nimport { StyledContent, StyledItemsContainer } from './content.styled'\nimport { CONTENT_OFFSET } from '../styles/content'\nimport { ContentProvider } from '../hooks/use-content'\nimport { ScrollableContent } from './scrollable-content'\nimport type { StyledContentProps } from './content.styled'\nimport type {\n PointerDownOutsideEvent,\n FocusOutsideEvent,\n Side,\n Align,\n StickyBehavior,\n ContainerSpacing,\n Overflow,\n} from '../types'\n\nexport interface ContentProps extends StyledContentProps {\n /**\n * Whether keyboard navigation should loop around\n */\n loop?: boolean\n\n /**\n * Event handler called when focus moves to the trigger after closing. It can\n * be prevented by calling event.preventDefault. This prop is ignored within\n * submenus.\n */\n onCloseAutoFocus?: (event: Event) => 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 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 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 * The preferred side of the trigger to render against when open. Will be\n * reversed when collisions occur and avoidCollisions is enabled. This prop is\n * ignored within submenus.\n */\n side?: Side\n\n /**\n * The distance in pixels from the trigger\n */\n sideOffset?: number\n\n /**\n * The preferred alignment against the trigger. May change when collisions\n * occur. This prop is ignored within submenus.\n */\n align?: Align\n\n /**\n * An offset in pixels from the \"start\" or \"end\" alignment options\n */\n alignOffset?: number\n\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 distance in pixels from window edges where collision detection should\n * occur.\n */\n collisionPadding?: number\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?: StickyBehavior\n\n /**\n * Used to force mounting when more control is needed. Useful when controlling\n * animation with React animation libraries. It inherits from\n * DropdownMenu.Portal.\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 * Whether to hide the content when the trigger becomes fully occluded.\n */\n hideWhenDetached?: boolean\n\n /**\n * The spacing around container\n */\n containerSpacing?: ContainerSpacing\n\n /**\n * The max height for the content.\n */\n maxHeight?: CSSProperties['maxHeight']\n\n /**\n * Setting overflow as \"visible\" means that the content can extend beyond the\n * its collision boundary without any clipping or scrolling being\n * applied.\n * When set to \"auto,\" a scrollbar is added if the content exceeds its\n * boundaries. If no maxHeight is defined, it will be automatically adjusted\n * to fit the remaining space between the trigger and the boundary edge.\n */\n overflow?: Overflow\n}\n\nexport const Content = React.forwardRef<\n ElementRef<typeof StyledContent>,\n ContentProps\n>(\n (\n {\n loop = false,\n side = 'bottom',\n sideOffset = CONTENT_OFFSET,\n align = 'center',\n alignOffset = 0,\n collisionPadding = 0,\n avoidCollisions = true,\n sticky = 'partial',\n hideWhenDetached = false,\n containerSpacing = 'medium',\n overflow = 'visible',\n maxHeight,\n children,\n ...restProps\n },\n forwardRef\n ) => (\n <ContentProvider containerSpacing={containerSpacing}>\n <StyledContent\n {...restProps}\n ref={forwardRef}\n loop={loop}\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n avoidCollisions={avoidCollisions}\n collisionPadding={collisionPadding}\n sticky={sticky}\n hideWhenDetached={hideWhenDetached}\n containerSpacing={containerSpacing}\n >\n <ScrollableContent {...{ containerSpacing, maxHeight, overflow }}>\n <StyledItemsContainer>{children}</StyledItemsContainer>\n </ScrollableContent>\n </StyledContent>\n </ContentProvider>\n )\n)\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\n\nimport { itemDefaults } from '../styles/item'\n\nexport const StyledItem = styled(RadixDropdownMenu.Item, {\n ...itemDefaults,\n variants: {\n // This is a hack for the :has() selector\n // Remove it after Firefox implements it\n hasRightSlot: {\n true: {\n paddingRight: '$600',\n },\n },\n },\n})\n\nexport type StyledItemProps = StrictComponentProps<typeof StyledItem>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledItem } from './item.styled'\nimport type { StyledItemProps } from './item.styled'\nimport { useAriaDisabled } from '../hooks/use-aria-disabled'\nimport { ItemProvider } from '../hooks/use-item'\n\nexport interface ItemProps extends StyledItemProps {\n /**\n * When true, prevents the user from interacting with the item\n */\n disabled?: boolean\n\n /**\n * Event handler called when the user selects an item (via mouse of keyboard). Calling event.preventDefault in this handler will prevent the dropdown menu from closing when selecting that item\n */\n onSelect?: (event: Event) => void\n\n /**\n * Optional text used for typeahead purposes. By default the typeahead behavior will use the .textContent of the item. Use this when the content is complex, or you have non-textual content inside\n */\n textValue?: string\n}\n\nexport const Item = React.forwardRef<ElementRef<typeof StyledItem>, ItemProps>(\n ({ disabled = false, ...restProps }, forwardRef) => {\n const ariaDisabledProps = useAriaDisabled(restProps)\n\n return (\n <ItemProvider>\n <StyledItem\n {...restProps}\n {...ariaDisabledProps}\n disabled={disabled}\n ref={forwardRef}\n />\n </ItemProvider>\n )\n }\n)\n","import React from 'react'\nimport type { ElementRef, AnchorHTMLAttributes } from 'react'\n\nimport { Item } from './item'\nimport type { ItemProps } from './item'\nimport { useAriaDisabled } from '../hooks/use-aria-disabled'\n\ntype ItemPropsWithAnchor = ItemProps & AnchorHTMLAttributes<typeof Item>\nexport interface LinkItemProps extends ItemPropsWithAnchor {}\n\nexport const LinkItem = React.forwardRef<\n ElementRef<typeof Item>,\n LinkItemProps\n>(({ children, href, ...restProps }, forwardRef) => {\n const ariaDisabledProps = useAriaDisabled(restProps)\n return (\n <Item asChild ref={forwardRef} {...restProps} {...ariaDisabledProps}>\n <a href={href}>{children}</a>\n </Item>\n )\n})\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\n\nimport { CONTENT_GAP } from '../styles/content'\n\nexport const StyledRadioGroup = styled(RadixDropdownMenu.RadioGroup, {\n display: 'grid',\n gap: CONTENT_GAP,\n})\n\nexport type StyledRadioGroupProps = StrictComponentProps<\n typeof StyledRadioGroup\n>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledRadioGroup } from './radio-group.styled'\nimport type { StyledRadioGroupProps } from './radio-group.styled'\n\nexport interface RadioGroupProps\n extends Omit<StyledRadioGroupProps, 'onChange'> {\n /**\n * The value of the selected item in the group\n */\n value: string\n\n /**\n * Event handler called when the selected radio changes\n */\n onChange: (value: string) => void\n}\n\nexport const RadioGroup = React.forwardRef<\n ElementRef<typeof StyledRadioGroup>,\n RadioGroupProps\n>((props, forwardRef) => {\n const { onChange, ...restProps } = props\n\n return (\n <StyledRadioGroup\n {...restProps}\n ref={forwardRef}\n onValueChange={onChange}\n />\n )\n})\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport { IconProhibit } from '@mirohq/design-system-icons'\n\nimport { itemDefaults } from '../styles/item'\n\nexport const StyledRadioContainer = styled(Primitive.div, {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '$4',\n height: '$4',\n boxSizing: 'border-box',\n border: '1px solid $border-neutrals',\n borderRadius: '$half',\n})\n\nexport const StyledPill = styled(Primitive.div, {\n display: 'none',\n width: '$2',\n height: '$2',\n borderRadius: '$half',\n})\n\nexport const StyledProhibited = styled(IconProhibit, {\n display: 'none',\n width: '$3 !important',\n})\n\nexport const StyledRadioItem = styled(RadixDropdownMenu.RadioItem, {\n ...itemDefaults,\n [`&[data-state=\"checked\"] ${StyledRadioContainer}`]: {\n color: '$icon-primary',\n borderColor: '$border-primary',\n\n [`& ${StyledPill}`]: {\n display: 'block',\n backgroundColor: '$background-primary-prominent-selected',\n },\n },\n\n [`&:hover:not([aria-disabled=\"true\"]) ${StyledRadioContainer}`]: {\n borderColor: '$border-primary-hover',\n\n [`& ${StyledPill}`]: {\n backgroundColor: '$background-primary-prominent-hover',\n },\n },\n\n [`\n &[aria-disabled=\"true\"] ${StyledRadioContainer},\n &[data-disabled] ${StyledRadioContainer}\n `]: {\n color: '$icon-neutrals-disabled',\n borderColor: '$border-neutrals-disabled',\n\n [`& ${StyledPill}`]: {\n backgroundColor: '$icon-neutrals-disabled',\n },\n },\n '&[data-state=\"unchecked\"]': {\n [`\n &[aria-disabled=\"true\"] ${StyledProhibited},\n &[data-disabled] ${StyledProhibited}\n `]: {\n display: 'flex',\n },\n },\n})\n\nexport type StyledRadioItemProps = StrictComponentProps<typeof StyledRadioItem>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport {\n StyledPill,\n StyledProhibited,\n StyledRadioContainer,\n StyledRadioItem,\n} from './radio-item.styled'\nimport type { StyledRadioItemProps } from './radio-item.styled'\nimport { RightSlot } from './right-slot'\nimport { useAriaDisabled } from '../hooks/use-aria-disabled'\nimport { ItemProvider } from '../hooks/use-item'\n\nexport interface RadioItemProps extends StyledRadioItemProps {\n /**\n * The unique value of the item.\n */\n value: string\n\n /**\n * When true, prevents the user from interacting with the item.\n */\n disabled?: boolean\n\n /**\n * Event handler called when the user selects an item (via mouse of keyboard).\n */\n onSelect?: (event: Event) => void\n\n /**\n * Closes the dropdown when the user selects an item.\n */\n closeOnSelect?: boolean\n\n /**\n * Optional text used for typeahead purposes. By default the typeahead behavior will use the .textContent of the item.\n * Use this when the content is complex, or you have non-textual content inside.\n */\n textValue?: string\n}\n\nexport const RadioItem = React.forwardRef<\n ElementRef<typeof StyledRadioItem>,\n RadioItemProps\n>(({ disabled, children, closeOnSelect = false, ...restProps }, forwardRef) => {\n const ariaDisabledProps = useAriaDisabled(restProps, closeOnSelect)\n return (\n <ItemProvider>\n <StyledRadioItem\n {...restProps}\n {...ariaDisabledProps}\n disabled={disabled}\n ref={forwardRef}\n >\n {children}\n <RightSlot>\n <StyledRadioContainer>\n <StyledPill />\n <StyledProhibited weight='thin' />\n </StyledRadioContainer>\n </RightSlot>\n </StyledRadioItem>\n </ItemProvider>\n )\n})\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\n\nexport const StyledSeparator = styled(RadixDropdownMenu.Separator, {\n borderTop: '1px solid $border-neutrals-subtle',\n})\n\nexport type StyledSeparatorProps = StrictComponentProps<typeof StyledSeparator>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledSeparator } from './separator.styled'\nimport type { StyledSeparatorProps } from './separator.styled'\n\nexport interface SeparatorProps extends StyledSeparatorProps {}\n\nexport const Separator = React.forwardRef<\n ElementRef<typeof StyledSeparator>,\n SeparatorProps\n>((props, forwardRef) => <StyledSeparator {...props} ref={forwardRef} />)\n","import type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { styled } from '@mirohq/design-system-stitches'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\nimport { styles } from '@mirohq/design-system-base-switch'\nimport { Primitive } from '@mirohq/design-system-primitive'\n\nimport { itemDefaults } from '../styles/item'\n\nexport const StyledSwitch = styled(Primitive.span, {\n ...styles.default,\n width: '$7',\n height: '$4',\n})\n\nexport const StyledSwitchItem = styled(RadixDropdownMenu.CheckboxItem, {\n ...itemDefaults,\n\n [`&[data-state=\"checked\"] ${StyledSwitch}`]: styles.checked,\n [`&[data-state=\"checked\"]:hover:not([aria-disabled=\"true\"]) ${StyledSwitch}`]:\n styles.checkedHovered,\n\n [`&:hover:not([aria-disabled=\"true\"]) ${StyledSwitch}`]: styles.hovered,\n [`\n &[aria-disabled=\"true\"] ${StyledSwitch},\n &[data-disabled] ${StyledSwitch}\n `]: styles.disabled,\n})\n\nexport type StyledSwitchItemProps = StrictComponentProps<\n typeof StyledSwitchItem\n>\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport { Thumb } from '@mirohq/design-system-base-switch'\n\nimport { RightSlot } from './right-slot'\nimport type { StyledSwitchItemProps } from './switch-item.styled'\nimport { StyledSwitch, StyledSwitchItem } from './switch-item.styled'\nimport { useAriaDisabled } from '../hooks/use-aria-disabled'\nimport { ItemProvider } from '../hooks/use-item'\n\nexport interface SwitchItemProps\n extends Omit<StyledSwitchItemProps, 'onChange'> {\n /**\n * The checked state of the item.\n */\n checked: boolean\n\n /**\n * Event handler called when the checked state changes.\n */\n onChange: (checked: boolean) => void\n\n /**\n * When true, prevents the user from interacting with the item.\n */\n disabled?: boolean\n\n /**\n * Event handler called when the user selects an item (via mouse of keyboard).\n */\n onSelect?: (event: Event) => void\n\n /**\n * Closes the dropdown when the user selects an item.\n */\n closeOnSelect?: boolean\n\n /**\n * Optional text used for typeahead purposes. By default the typeahead behavior will use the .textContent of the item.\n * Use this when the content is complex, or you have non-textual content inside.\n */\n textValue?: string\n}\n\nexport const SwitchItem = React.forwardRef<\n ElementRef<typeof StyledSwitchItem>,\n SwitchItemProps\n>(\n (\n {\n disabled,\n checked,\n onChange,\n children,\n closeOnSelect = false,\n ...restProps\n },\n forwardRef\n ) => {\n const ariaDisabledProps = useAriaDisabled(restProps, closeOnSelect)\n\n return (\n <ItemProvider>\n <StyledSwitchItem\n {...restProps}\n {...ariaDisabledProps}\n disabled={disabled}\n checked={checked}\n onCheckedChange={onChange}\n ref={forwardRef}\n >\n {children}\n <RightSlot>\n <StyledSwitch>\n <Thumb />\n </StyledSwitch>\n </RightSlot>\n </StyledSwitchItem>\n </ItemProvider>\n )\n }\n)\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\nimport { focus } from '@mirohq/design-system-styles'\n\nexport const StyledTrigger = styled(RadixDropdownMenu.Trigger, {\n variants: {\n unstyled: {\n true: {\n all: 'unset',\n boxSizing: 'border-box',\n cursor: 'pointer',\n ...focus.css({\n boxShadow: '$focus-small',\n outline: '1px solid transparent',\n }),\n },\n false: {\n cursor: 'pointer',\n },\n },\n },\n})\n\nexport type StyledTriggerProps = StrictComponentProps<typeof StyledTrigger>\n","import React, { useRef } from 'react'\nimport { isVirtualClick } from '@react-aria/utils'\nimport { mergeRefs } from '@mirohq/design-system-utils'\nimport type { MouseEventHandler, ElementRef } from 'react'\n\nimport { StyledTrigger } from './trigger.styled'\nimport type { StyledTriggerProps } from './trigger.styled'\n\nexport interface TriggerProps extends StyledTriggerProps {}\n\nexport const Trigger = React.forwardRef<\n ElementRef<typeof StyledTrigger>,\n TriggerProps\n>(({ asChild = false, onClick, ...restProps }, forwardRef) => {\n const ref = useRef<HTMLButtonElement>(null)\n\n /**\n * It forces the trigger of pointerDow on the Dropdown.Trigger.\n * This had to be done because when using Ctrl + Option + Space on safari it\n * triggers onClick, and Radix only listens to onPointerDown.\n * https://github.com/radix-ui/primitives/blob/bc28fb42b81e4f95ce41eef3ed683ea0dd823dd8/packages/react/dropdown-menu/src/DropdownMenu.tsx#L117\n */\n const handleVirtualClick: MouseEventHandler<Element> = e => {\n if (e?.nativeEvent === undefined) {\n console.error(\n 'DropdownMenu.Trigger onClick expected a MouseEvent but got different one. It usually happens due to a element used asChild with a different onClick interface.\\n' +\n `Event: ${JSON.stringify(e, null, 2)}`\n )\n return\n }\n\n const nativeEvent = e.nativeEvent as any\n\n if (nativeEvent.mozInputSource === undefined) {\n nativeEvent.mozInputSource = null\n }\n\n if (isVirtualClick(e.nativeEvent) && ref.current !== null) {\n const pointerDownEvent = new MouseEvent('pointerdown', {\n bubbles: true,\n cancelable: true,\n })\n\n ref.current?.dispatchEvent(pointerDownEvent)\n }\n }\n return (\n <StyledTrigger\n {...restProps}\n onClick={e => {\n handleVirtualClick(e)\n onClick?.(e)\n }}\n ref={mergeRefs([ref, forwardRef])}\n unstyled={!asChild}\n asChild={asChild}\n />\n )\n})\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\nimport { Primitive } from '@mirohq/design-system-primitive'\n\nimport { itemDefaults } from '../styles/item'\n\nexport const StyledIconContainer = styled(Primitive.span, {\n color: '$icon-neutrals-with-text',\n display: 'flex',\n alignItems: 'center',\n})\n\nexport const StyledSubTrigger = styled(RadixDropdownMenu.SubTrigger, {\n ...itemDefaults,\n '&[data-state=\"open\"]': itemDefaults['&:hover:not([aria-disabled=\"true\"])'],\n\n [`&[data-state=\"open\"] ${StyledIconContainer}, &:hover:not([aria-disabled=\"true\"]) ${StyledIconContainer}`]:\n {\n color: '$icon-primary-hover',\n },\n})\n\nexport type StyledSubTriggerProps = StrictComponentProps<\n typeof StyledSubTrigger\n>\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport { IconChevronRight } from '@mirohq/design-system-icons'\n\nimport { StyledIconContainer, StyledSubTrigger } from './sub-trigger.styled'\nimport type { StyledSubTriggerProps } from './sub-trigger.styled'\nimport { RightSlot } from './right-slot'\nimport { useAriaDisabled } from '../hooks/use-aria-disabled'\n\nexport interface SubTriggerProps extends StyledSubTriggerProps {\n /**\n * Prevents the user from interacting with the switch\n */\n disabled?: boolean\n\n /**\n * Optional text used for type ahead purposes. By default the type ahead\n * behavior will use the .textContent of the item. Use this when the content\n * is complex, or you have.\n */\n textValue?: string\n}\n\nexport const SubTrigger = React.forwardRef<\n ElementRef<typeof StyledSubTrigger>,\n StyledSubTriggerProps\n>(({ children, disabled = false, ...restProps }, forwardRef) => {\n const { onSelect, ...ariaDisabledProps } = useAriaDisabled({\n onKeyDown: restProps.onKeyDown,\n 'aria-disabled': restProps['aria-disabled'],\n })\n\n return (\n <StyledSubTrigger\n {...restProps}\n {...ariaDisabledProps}\n disabled={disabled}\n ref={forwardRef}\n >\n {children}\n <RightSlot>\n <StyledIconContainer\n data-testid={\n process.env.NODE_ENV === 'test' ? 'submenu-arrow-icon' : undefined\n }\n >\n <IconChevronRight size='small' weight='thin' />\n </StyledIconContainer>\n </RightSlot>\n </StyledSubTrigger>\n )\n})\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\n\nimport { contentDefaults } from '../styles/content'\n\nexport const StyledSubContent = styled(\n RadixDropdownMenu.SubContent,\n contentDefaults\n)\n\nexport type StyledSubContentProps = StrictComponentProps<\n typeof StyledSubContent\n>\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport type { CSSProperties } from '@stitches/react'\n\nimport { StyledSubContent } from './sub-content.styled'\nimport { CONTENT_GUTTER, CONTENT_OFFSET } from '../styles/content'\nimport { ContentProvider, useContent } from '../hooks/use-content'\nimport { ScrollableContent } from './scrollable-content'\nimport type { StyledSubContentProps } from './sub-content.styled'\nimport { StyledItemsContainer } from './content.styled'\nimport type {\n PointerDownOutsideEvent,\n FocusOutsideEvent,\n StickyBehavior,\n Overflow,\n} from '../types'\n\nexport interface SubContentProps extends StyledSubContentProps {\n /**\n * Whether keyboard navigation should loop around\n * @default false\n */\n loop?: boolean\n\n /**\n * Event handler called when focus moves to the trigger after closing. It can\n * be prevented by calling event.preventDefault. This prop is ignored within\n * submenus.\n */\n onCloseAutoFocus?: (event: Event) => 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 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 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 * 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 distance in pixels from the trigger.\n */\n sideOffset?: number\n\n /**\n * An offset in pixels from the \"start\" or \"end\" alignment options.\n */\n alignOffset?: number\n\n /**\n * When true, overrides the side andalign preferences to prevent collisions\n * with window edges.\n * @default true\n */\n avoidCollisions?: boolean\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 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 * @default partial\n */\n sticky?: StickyBehavior\n\n /**\n * Whether to hide the content when the trigger becomes fully occluded.\n * @default false\n */\n hideWhenDetached?: boolean\n\n /**\n * The max height for the subContent.\n */\n maxHeight?: CSSProperties['maxHeight']\n\n /**\n * Setting overflow as \"visible\" means that the content can extend beyond the\n * its collision boundary without any clipping or scrolling being\n * applied.\n * When set to \"auto,\" a scrollbar is added if the content exceeds its\n * boundaries. If no maxHeight is defined, it will be automatically adjusted\n * to fit the remaining space between the trigger and the boundary edge.\n */\n overflow?: Overflow\n}\n\n// without CONTENT_GUTTER submenu would overlap the menu\nconst SIDE_OFFSET = CONTENT_GUTTER + CONTENT_OFFSET\n\nexport const SubContent = React.forwardRef<\n ElementRef<typeof StyledSubContent>,\n SubContentProps\n>(\n (\n {\n sideOffset = SIDE_OFFSET,\n alignOffset = -CONTENT_GUTTER,\n collisionPadding = 0,\n loop = false,\n hideWhenDetached = true,\n sticky = 'partial',\n overflow = 'visible',\n maxHeight,\n children,\n ...restProps\n },\n forwardRef\n ) => {\n /* A new ContentProvider instance is created per Content and SubContent,\n using the context from the parent is necessary to preserve this value. */\n const { containerSpacing } = useContent()\n return (\n <ContentProvider containerSpacing={containerSpacing}>\n <StyledSubContent\n {...restProps}\n ref={forwardRef}\n sideOffset={sideOffset}\n alignOffset={alignOffset}\n collisionPadding={collisionPadding}\n loop={loop}\n hideWhenDetached={hideWhenDetached}\n sticky={sticky}\n >\n <ScrollableContent {...{ containerSpacing, maxHeight, overflow }}>\n <StyledItemsContainer>{children}</StyledItemsContainer>\n </ScrollableContent>\n </StyledSubContent>\n </ContentProvider>\n )\n }\n)\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\n\nexport const StyledSub = styled(RadixDropdownMenu.Sub, {})\n\nexport type StyledSubProps = StrictComponentProps<typeof StyledSub>\n","import React, { useState } from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledSub } from './sub.styled'\nimport type { StyledSubProps } from './sub.styled'\n\nexport interface SubProps extends StyledSubProps {\n /**\n * The open state of the submenu when it is initially rendered. Use when you\n * do not need to control its open state.\n */\n defaultOpen?: boolean\n\n /**\n * The controlled open state of the submenu. Must be used in conjunction with\n * onOpenChange.\n */\n open?: boolean\n\n /**\n * Event handler called when the submenu opens.\n */\n onOpen?: () => void\n\n /**\n * Event handler called when the submenu closes.\n */\n onClose?: () => void\n}\n\nexport const Sub = React.forwardRef<ElementRef<typeof StyledSub>, SubProps>(\n ({ defaultOpen, onOpen, onClose, open, ...restProps }, forwardRef) => {\n const [openState, setOpenState] = useState(defaultOpen)\n return (\n <StyledSub\n {...restProps}\n open={open ?? openState}\n onOpenChange={newOpen => {\n if (open == null) {\n setOpenState(newOpen)\n }\n\n newOpen ? onOpen?.() : onClose?.()\n }}\n ref={forwardRef}\n />\n )\n }\n)\n","import React from 'react'\nimport type { DropdownMenuPortalProps } from '@radix-ui/react-dropdown-menu'\nimport { Portal as RadixPortal } from '@radix-ui/react-dropdown-menu'\n\nexport interface PortalProps extends DropdownMenuPortalProps {\n /**\n * Used to force mounting when more control is needed. Useful when controlling\n * animation with React animation libraries. If used on this part, it will be\n * inherited by DropdownMenu.Content and DropdownMenu.SubContent respectively.\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 type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { styles as baseIconStyles } from '@mirohq/design-system-base-icon'\n\nimport { LeftSlot } from './left-slot'\n\nexport const StyledIconSlot = styled(LeftSlot, {\n square: '$5',\n\n '& svg:not([data-icon-component]), & img:not([data-icon-component])': {\n ...baseIconStyles.size.small,\n ...baseIconStyles.weight.thin,\n },\n})\n\nexport type StyledIconSlotProps = StrictComponentProps<typeof StyledIconSlot>\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport { useLayoutEffect } from '@mirohq/design-system-use-layout-effect'\nimport type { IconSizes, IconWeights } from '@mirohq/design-system-base-icon'\nimport { isIconComponent } from '@mirohq/design-system-base-icon'\nimport { addPropsToChildren } from '@mirohq/design-system-utils'\nimport { Primitive } from '@mirohq/design-system-primitive'\n\nimport type { StyledIconSlotProps } from './icon-slot.styled'\nimport { StyledIconSlot } from './icon-slot.styled'\nimport { useItem } from '../hooks/use-item'\n\nexport type IconSlotProps = Omit<StyledIconSlotProps, 'custom'>\n\ninterface IconComponentProps {\n 'data-icon-component': ''\n size: IconSizes\n weight: IconWeights\n}\n\nexport const IconSlot = React.forwardRef<\n ElementRef<typeof StyledIconSlot>,\n IconSlotProps\n>(({ children, ...restProps }, forwardRef) => {\n const { leftSlotMount, leftSlotDestroy } = useItem()\n\n const formattedChildren = addPropsToChildren<IconComponentProps>(\n children,\n isIconComponent,\n {\n 'data-icon-component': '',\n size: 'small',\n weight: 'thin',\n }\n )\n\n useLayoutEffect(() => {\n leftSlotMount()\n return () => leftSlotDestroy()\n }, [leftSlotMount, leftSlotDestroy])\n\n return (\n <StyledIconSlot ref={forwardRef} {...restProps}>\n <Primitive.svg asChild aria-hidden>\n {formattedChildren}\n </Primitive.svg>\n </StyledIconSlot>\n )\n})\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport { useLayoutEffect } from '@mirohq/design-system-use-layout-effect'\n\nimport { useItem } from '../hooks/use-item'\nimport type { StyledIllustrationSlotProps } from './illustration-slot.styled'\nimport { StyledIllustrationSlot } from './illustration-slot.styled'\n\nexport const IllustrationSlot = React.forwardRef<\n ElementRef<typeof StyledIllustrationSlot>,\n StyledIllustrationSlotProps\n>((props, forwardRef) => {\n const { leftSlotMount, leftSlotDestroy } = useItem()\n\n useLayoutEffect(() => {\n leftSlotMount()\n return () => leftSlotDestroy()\n }, [leftSlotMount, leftSlotDestroy])\n\n return <StyledIllustrationSlot ref={forwardRef} {...props} />\n})\n","import React, { useState } from 'react'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\n\nimport { CheckboxItem } from './partials/checkbox-item'\nimport { Content } from './partials/content'\nimport { Item } from './partials/item'\nimport { LinkItem } from './partials/link-item'\nimport { RadioGroup } from './partials/radio-group'\nimport { RadioItem } from './partials/radio-item'\nimport { Separator } from './partials/separator'\nimport { SwitchItem } from './partials/switch-item'\nimport { Trigger } from './partials/trigger'\nimport { SubTrigger } from './partials/sub-trigger'\nimport { SubContent } from './partials/sub-content'\nimport { Sub } from './partials/sub'\nimport { Portal } from './partials/portal'\nimport { ItemDescription } from './partials/item-description'\nimport { IconSlot } from './partials/icon-slot'\nimport { HotkeySlot } from './partials/hotkey-slot'\nimport { IllustrationSlot } from './partials/illustration-slot'\n\nexport interface DropdownMenuProps {\n /**\n * The open state of the dropdown menu when it is initially rendered. Use when\n * you do not need to control its open state.\n */\n defaultOpen?: boolean\n\n /**\n * The reading direction of submenus when applicable. If omitted, assumes LTR\n * (left-to-right) reading mode.\n */\n direction?: 'ltr' | 'rtl'\n\n /**\n * The current dropdown open state.\n */\n open?: boolean\n\n /**\n * Event handler called when the dropdown opens.\n */\n onOpen?: () => void\n\n /**\n * Event handler called when the dropdown closes.\n */\n onClose?: () => void\n\n /**\n * Defines whether the interaction with outside elements will be disabled and\n * only menu content will be visible to screen readers. This prop is ignored\n * within submenus.\n */\n interactOutside?: boolean\n\n /**\n * The content\n */\n children: React.ReactNode\n}\n\nexport const DropdownMenu: React.FC<DropdownMenuProps> & Partials = ({\n defaultOpen = false,\n direction = 'ltr',\n interactOutside = false,\n open,\n onOpen,\n onClose,\n ...restProps\n}) => {\n const [openState, setOpenState] = useState(defaultOpen)\n\n return (\n <RadixDropdownMenu.Root\n {...restProps}\n dir={direction}\n modal={interactOutside}\n open={open ?? openState}\n onOpenChange={newOpen => {\n if (open == null) {\n setOpenState(newOpen)\n }\n\n newOpen ? onOpen?.() : onClose?.()\n }}\n />\n )\n}\n\n// Partials\n// -----------------------------------------------------------------------------\n\ninterface Partials {\n CheckboxItem: typeof CheckboxItem\n Content: typeof Content\n HotkeySlot: typeof HotkeySlot\n IconSlot: typeof IconSlot\n IllustrationSlot: typeof IllustrationSlot\n Item: typeof Item\n ItemDescription: typeof ItemDescription\n LinkItem: typeof LinkItem\n Portal: typeof Portal\n RadioGroup: typeof RadioGroup\n RadioItem: typeof RadioItem\n Separator: typeof Separator\n Sub: typeof Sub\n SubContent: typeof SubContent\n SubTrigger: typeof SubTrigger\n SwitchItem: typeof SwitchItem\n Trigger: typeof Trigger\n}\n\nDropdownMenu.CheckboxItem = CheckboxItem\nDropdownMenu.Content = Content\nDropdownMenu.HotkeySlot = HotkeySlot\nDropdownMenu.IconSlot = IconSlot\nDropdownMenu.IllustrationSlot = IllustrationSlot\nDropdownMenu.Item = Item\nDropdownMenu.ItemDescription = ItemDescription\nDropdownMenu.LinkItem = LinkItem\nDropdownMenu.Portal = Portal\nDropdownMenu.RadioGroup = RadioGroup\nDropdownMenu.RadioItem = RadioItem\nDropdownMenu.Separator = Separator\nDropdownMenu.Sub = Sub\nDropdownMenu.SubContent = SubContent\nDropdownMenu.SubTrigger = SubTrigger\nDropdownMenu.SwitchItem = SwitchItem\nDropdownMenu.Trigger = Trigger\n"],"names":["styled","Primitive","Context","createContext","useState","useRef","useCallback","addPropsToChildren","jsx","useContext","useLayoutEffect","focus","RadixDropdownMenu","useMemo","booleanify","React","jsxs","IconProhibit","IconCheckMark","theme","animations","ScrollArea","styles","Thumb","isVirtualClick","mergeRefs","IconChevronRight","RadixPortal","baseIconStyles","isIconComponent"],"mappings":"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"}
|
package/dist/module.js
CHANGED
|
@@ -8,7 +8,7 @@ import { Primitive } from '@mirohq/design-system-primitive';
|
|
|
8
8
|
import { styled, theme } from '@mirohq/design-system-stitches';
|
|
9
9
|
import { focus, animations } from '@mirohq/design-system-styles';
|
|
10
10
|
import { useLayoutEffect } from '@mirohq/design-system-use-layout-effect';
|
|
11
|
-
import { ScrollArea } from '@mirohq/design-system';
|
|
11
|
+
import { ScrollArea } from '@mirohq/design-system-scroll-area';
|
|
12
12
|
import { styles, Thumb } from '@mirohq/design-system-base-switch';
|
|
13
13
|
import { isVirtualClick } from '@react-aria/utils';
|
|
14
14
|
import { styles as styles$1, isIconComponent } from '@mirohq/design-system-base-icon';
|
package/dist/module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sources":["../src/partials/item-description.tsx","../src/partials/left-slot.tsx","../src/partials/illustration-slot.styled.ts","../src/hooks/use-content.tsx","../src/partials/right-slot.styled.ts","../src/partials/right-slot.tsx","../src/partials/hotkey-slot.tsx","../src/styles/item.ts","../src/partials/checkbox-item.styled.tsx","../src/hooks/use-aria-disabled.ts","../src/hooks/use-item.tsx","../src/partials/checkbox-item.tsx","../src/styles/content.ts","../src/partials/content.styled.tsx","../src/partials/scrollable-content.tsx","../src/partials/content.tsx","../src/partials/item.styled.tsx","../src/partials/item.tsx","../src/partials/link-item.tsx","../src/partials/radio-group.styled.tsx","../src/partials/radio-group.tsx","../src/partials/radio-item.styled.tsx","../src/partials/radio-item.tsx","../src/partials/separator.styled.tsx","../src/partials/separator.tsx","../src/partials/switch-item.styled.ts","../src/partials/switch-item.tsx","../src/partials/trigger.styled.tsx","../src/partials/trigger.tsx","../src/partials/sub-trigger.styled.tsx","../src/partials/sub-trigger.tsx","../src/partials/sub-content.styled.tsx","../src/partials/sub-content.tsx","../src/partials/sub.styled.tsx","../src/partials/sub.tsx","../src/partials/portal.tsx","../src/partials/icon-slot.styled.ts","../src/partials/icon-slot.tsx","../src/partials/illustration-slot.tsx","../src/dropdown-menu.tsx"],"sourcesContent":["import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\n\nexport const ItemDescription = styled(Primitive.div, {\n display: '-webkit-box',\n width: '100%',\n WebkitBoxOrient: 'vertical',\n WebkitLineClamp: 2,\n overflow: 'hidden',\n gridArea: 'item-description',\n fontSize: '$150',\n lineHeight: 1.5,\n color: '$text-neutrals-subtle',\n})\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\n\nexport const LeftSlot = styled(Primitive.div, {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n marginRight: '$100',\n gridArea: 'left-slot',\n})\n","import type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { styled } from '@mirohq/design-system-stitches'\n\nimport { LeftSlot } from './left-slot'\n\nexport const StyledIllustrationSlot = styled(LeftSlot, {\n width: '$13',\n})\n\nexport type StyledIllustrationSlotProps = StrictComponentProps<\n typeof StyledIllustrationSlot\n>\n","import React, {\n createContext,\n useContext,\n useState,\n useRef,\n useCallback,\n} from 'react'\nimport type { PropsWithChildren } from 'react'\nimport { addPropsToChildren } from '@mirohq/design-system-utils'\n\nimport type { ContainerSpacing } from '../types'\n\ninterface ContentContext {\n rightSlotMount: (width: number) => number\n rightSlotDestroy: (index: number) => void\n containerSpacing: ContainerSpacing\n}\n\nconst Context = createContext<ContentContext>({\n rightSlotMount: () => 0,\n rightSlotDestroy: () => {},\n containerSpacing: 'medium',\n})\n\nexport const ContentProvider = ({\n children,\n containerSpacing = 'medium',\n}: PropsWithChildren<{\n containerSpacing?: ContainerSpacing\n}>): JSX.Element => {\n const [maxWidth, setMaxWidth] = useState<number>(0)\n\n // we need maxRef, so we don't rerender RightSlot whenever we change maxWidth\n const maxRef = useRef<number>(0)\n\n // rightSlot index to remove width from map on destroy\n const indexRef = useRef<number>(0)\n\n const widthMapRef = useRef<Map<number, number>>(new Map())\n\n const updateMaxWith = useCallback((value: number) => {\n maxRef.current = value\n setMaxWidth(value)\n }, [])\n\n // do not use state here, otherwise it will case many rerenders in RightSlot\n const rightSlotMount = useCallback(\n (width: number): number => {\n indexRef.current++\n\n widthMapRef.current.set(indexRef.current, width)\n\n if (width > maxRef.current) {\n updateMaxWith(width)\n }\n\n return indexRef.current\n },\n [updateMaxWith]\n )\n\n // do not use state here, otherwise it will case many rerenders in RightSlot\n const rightSlotDestroy = useCallback(\n (index: number): void => {\n widthMapRef.current.delete(index)\n\n if (widthMapRef.current.size === 0) {\n updateMaxWith(0)\n } else {\n const maximum = Math.max(...Array.from(widthMapRef.current.values()))\n updateMaxWith(maximum)\n }\n },\n [updateMaxWith]\n )\n\n const formattedChildren = addPropsToChildren(children, () => true, {\n UNSAFE_style: {\n '--right-slot-max-width': `${Math.ceil(maxWidth)}px`,\n },\n })\n\n return (\n <Context.Provider\n value={{\n rightSlotMount,\n rightSlotDestroy,\n containerSpacing,\n }}\n >\n {formattedChildren}\n </Context.Provider>\n )\n}\n\nexport const useContent = (): ContentContext => useContext(Context)\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\n\nexport const StyledRightSlot = styled(Primitive.div, {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n marginLeft: 'auto',\n paddingLeft: '$200',\n gridArea: 'right-slot',\n height: '$5',\n width: '$7',\n minWidth: 'max-content',\n textAlign: 'right',\n '&:empty': {\n paddingLeft: '$0',\n },\n})\n","import React, { useRef } from 'react'\nimport type { ComponentPropsWithRef } from 'react'\nimport { useLayoutEffect } from '@mirohq/design-system-use-layout-effect'\n\nimport { useContent } from '../hooks/use-content'\nimport { StyledRightSlot } from './right-slot.styled'\n\nexport const RightSlot = (\n props: ComponentPropsWithRef<typeof StyledRightSlot>\n): JSX.Element => {\n const { rightSlotMount, rightSlotDestroy } = useContent()\n\n const ref = useRef<HTMLDivElement>(null)\n\n useLayoutEffect(() => {\n if (ref.current !== null) {\n const width = ref.current.getBoundingClientRect().width\n const index = rightSlotMount(width)\n\n return () => rightSlotDestroy(index)\n }\n\n return () => {}\n }, [rightSlotMount, rightSlotDestroy, ref])\n\n return <StyledRightSlot ref={ref} {...props} />\n}\n","import { styled } from '@mirohq/design-system-stitches'\n\nimport { RightSlot } from './right-slot'\n\nexport const HotkeySlot = styled(RightSlot, {\n color: '$text-neutrals-subtle',\n})\n","import { focus } from '@mirohq/design-system-styles'\n\nimport { ItemDescription } from '../partials/item-description'\nimport { StyledIllustrationSlot } from '../partials/illustration-slot.styled'\nimport { HotkeySlot } from '../partials/hotkey-slot'\n\nexport const itemDefaults = {\n all: 'unset',\n boxSizing: 'border-box',\n fontSize: 14,\n lineHeight: '20px',\n color: '$text-neutrals',\n borderRadius: '$50',\n display: 'grid',\n gridTemplateColumns:\n 'auto 1fr minmax(min-content, var(--right-slot-max-width))',\n gridTemplateRows: 'auto 1fr',\n gridTemplateAreas: `'left-slot item-text right-slot'\n 'left-slot item-description right-slot'`,\n alignItems: 'start',\n padding: '10px $100',\n position: 'relative',\n userSelect: 'none',\n cursor: 'pointer',\n\n '&[data-no-left-slot]': {\n gridTemplateColumns: '1fr minmax(auto, var(--right-slot-max-width))',\n gridTemplateAreas: `'item-text right-slot'\n 'item-description right-slot'`,\n },\n\n ...focus.css({\n boxShadow: '$focus-small',\n outline: '1px solid transparent',\n }),\n\n '&:disabled, &[aria-disabled=\"true\"], &[data-disabled]': {\n cursor: 'default',\n\n [`&, & ${ItemDescription}, & ${HotkeySlot}`]: {\n color: '$text-neutrals-disabled',\n },\n [`& ${StyledIllustrationSlot}`]: {\n filter: 'grayscale(1)',\n },\n },\n\n '&:disabled, &[data-disabled]': {\n pointerEvents: 'none',\n },\n\n '&:hover:not([aria-disabled=\"true\"])': {\n background: '$background-primary-subtle-hover',\n color: '$text-primary-hover',\n '&:not([aria-disabled=\"true\"])': {\n boxShadow: 'none',\n },\n },\n\n '&:active:not([aria-disabled=\"true\"])': {\n background: '$background-primary-subtle-active',\n boxShadow: 'none',\n color: '$text-primary-active',\n },\n\n '&[tabindex=\"0\"]': {\n zIndex: '1',\n },\n}\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\n\nimport { itemDefaults } from '../styles/item'\n\nexport const StyledIndicator = styled(Primitive.span, {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n})\n\nexport const StyledCheckboxItem = styled(RadixDropdownMenu.CheckboxItem, {\n ...itemDefaults,\n [`&[data-state=\"checked\"] ${StyledIndicator}`]: {\n color: '$icon-primary',\n },\n [`&[data-state=\"checked\"]:hover:not([aria-disabled=\"true\"]) ${StyledIndicator}`]:\n {\n color: '$icon-primary-hover',\n },\n [`\n &[aria-disabled=\"true\"] ${StyledIndicator},\n &[data-disabled] ${StyledIndicator}\n `]: {\n color: '$icon-neutrals-disabled',\n },\n})\n\nexport type StyledCheckboxItemProps = StrictComponentProps<\n typeof StyledCheckboxItem\n>\n","import { useMemo } from 'react'\nimport type {\n KeyboardEventHandler,\n PointerEventHandler,\n MouseEventHandler,\n} from 'react'\nimport type { Booleanish } from '@mirohq/design-system-types'\nimport { booleanify } from '@mirohq/design-system-utils'\n\ninterface AriaDisabledProps extends Object {\n 'aria-disabled'?: Booleanish\n onKeyDown?: KeyboardEventHandler\n onSelect?: (event: Event) => void\n onPointerMove?: PointerEventHandler\n onClick?: MouseEventHandler\n}\n\nexport const useAriaDisabled = (\n {\n 'aria-disabled': ariaDisabled,\n onKeyDown,\n onSelect,\n onPointerMove,\n onClick,\n }: AriaDisabledProps,\n closeOnCheck: boolean | undefined = true\n): AriaDisabledProps =>\n useMemo(\n () => ({\n 'aria-disabled': booleanify(ariaDisabled) ? ariaDisabled : undefined,\n onKeyDown: e => {\n if (\n booleanify(ariaDisabled) &&\n e.code !== 'ArrowUp' &&\n e.code !== 'ArrowDown' &&\n e.code !== 'Escape'\n ) {\n e.preventDefault()\n e.stopPropagation()\n return\n }\n\n onKeyDown?.(e)\n },\n onSelect: e => {\n if (booleanify(ariaDisabled)) {\n e.preventDefault()\n return\n }\n\n if (!closeOnCheck) {\n e.preventDefault()\n }\n\n onSelect?.(e)\n },\n onPointerMove: e => {\n if (booleanify(ariaDisabled)) {\n e.preventDefault()\n return\n }\n\n onPointerMove?.(e)\n },\n onClick: e => {\n if (booleanify(ariaDisabled)) {\n e.preventDefault()\n return\n }\n\n onClick?.(e)\n },\n }),\n [ariaDisabled, onKeyDown, onSelect, onPointerMove, onClick, closeOnCheck]\n )\n","import React, { createContext, useContext, useState, useCallback } from 'react'\nimport type { PropsWithChildren } from 'react'\nimport { addPropsToChildren } from '@mirohq/design-system-utils'\n\ninterface ItemContext {\n leftSlotMount: () => void\n leftSlotDestroy: () => void\n}\n\nconst Context = createContext<ItemContext>({\n leftSlotMount: () => {},\n leftSlotDestroy: () => {},\n})\n\nexport const ItemProvider = ({\n children,\n}: PropsWithChildren<{}>): JSX.Element => {\n const [hasSlot, setHasSlot] = useState(false)\n\n const leftSlotMount = useCallback(() => {\n setHasSlot(true)\n }, [])\n\n const leftSlotDestroy = useCallback(() => {\n setHasSlot(false)\n }, [])\n\n const formattedChildren = hasSlot\n ? children\n : addPropsToChildren(children, () => true, {\n 'data-no-left-slot': '',\n })\n\n return (\n <Context.Provider\n value={{\n leftSlotMount,\n leftSlotDestroy,\n }}\n >\n {formattedChildren}\n </Context.Provider>\n )\n}\n\nexport const useItem = (): ItemContext => useContext(Context)\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport { IconCheckMark, IconProhibit } from '@mirohq/design-system-icons'\nimport { booleanify } from '@mirohq/design-system-utils'\n\nimport { StyledCheckboxItem, StyledIndicator } from './checkbox-item.styled'\nimport type { StyledCheckboxItemProps } from './checkbox-item.styled'\nimport { RightSlot } from './right-slot'\nimport { useAriaDisabled } from '../hooks/use-aria-disabled'\nimport { ItemProvider } from '../hooks/use-item'\n\nexport interface CheckboxItemProps\n extends Omit<StyledCheckboxItemProps, 'onChange'> {\n /**\n * The checked state of the item.\n */\n checked: boolean\n\n /**\n * Event handler called when the checked state changes.\n */\n onChange: (checked: boolean) => void\n\n /**\n * When true, prevents the user from interacting with the item.\n */\n disabled?: boolean\n\n /**\n * Event handler called when the user selects an item (via mouse of keyboard).\n */\n onSelect?: (event: Event) => void\n\n /**\n * Closes the dropdown when the user selects an item.\n */\n closeOnSelect?: boolean\n\n /**\n * Optional text used for typeahead purposes. By default the typeahead behavior will use the .textContent of the item.\n * Use this when the content is complex, or you have non-textual content inside.\n */\n textValue?: string\n}\n\nexport const CheckboxItem = React.forwardRef<\n ElementRef<typeof StyledCheckboxItem>,\n CheckboxItemProps\n>(\n (\n {\n children,\n checked,\n onChange,\n disabled,\n closeOnSelect = false,\n ...restProps\n },\n forwardRef\n ) => {\n const ariaDisabledProps = useAriaDisabled(restProps, closeOnSelect)\n const { 'aria-disabled': ariaDisabled } = ariaDisabledProps\n\n return (\n <ItemProvider>\n <StyledCheckboxItem\n {...restProps}\n {...ariaDisabledProps}\n ref={forwardRef}\n checked={checked}\n disabled={disabled}\n onCheckedChange={onChange}\n >\n {children}\n <RightSlot>\n <StyledIndicator>\n {(disabled === true || booleanify(ariaDisabled)) && !checked && (\n <IconProhibit\n weight='thin'\n css={{ square: '$3', display: 'block' }}\n />\n )}\n {checked && (\n <IconCheckMark css={{ square: '$3', display: 'block' }} />\n )}\n </StyledIndicator>\n </RightSlot>\n </StyledCheckboxItem>\n </ItemProvider>\n )\n }\n)\n","import { theme } from '@mirohq/design-system-stitches'\nimport { animations } from '@mirohq/design-system-styles'\n\nexport const CONTENT_GAP = '$50'\nexport const CONTENT_GUTTER = parseInt(theme.space[150])\nexport const CONTENT_OFFSET = parseInt(theme.space[50])\nexport const CONTENT_BORDER_FOCUS_ITEM = '2px'\nexport const CONTENT_PADDING = {\n small: '$50 $150',\n medium: '$150',\n large: '$150 $300',\n}\n\nexport const contentDefaults = {\n maxWidth: '$125',\n backgroundColor: '$background-neutrals-container',\n borderRadius: '$50',\n boxShadow: '$50',\n\n '& [data-radix-scroll-area-viewport]': {\n padding: `${CONTENT_BORDER_FOCUS_ITEM} $50 ${CONTENT_BORDER_FOCUS_ITEM} ${CONTENT_BORDER_FOCUS_ITEM}`,\n boxSizing: 'border-box',\n },\n\n '@media (prefers-reduced-motion: no-preference)': {\n animationDuration: '150ms',\n animationTimingFunction: 'cubic-bezier(0.25, 0.5, 0.5, 0.9)',\n willChange: 'transform, opacity',\n '&[data-state=\"open\"]': { animationName: animations.fadeInScaled },\n '&[data-state=\"closed\"]': { animationName: animations.fadeOutScaled },\n '&[data-side=\"top\"]': {\n '&[data-align=\"start\"]': { transformOrigin: 'bottom left' },\n '&[data-align=\"center\"]': { transformOrigin: 'bottom center' },\n '&[data-align=\"end\"]': { transformOrigin: 'bottom right' },\n },\n '&[data-side=\"right\"]': {\n '&[data-align=\"start\"]': { transformOrigin: 'top left' },\n '&[data-align=\"center\"]': { transformOrigin: 'center left' },\n '&[data-align=\"end\"]': { transformOrigin: 'bottom left' },\n },\n '&[data-side=\"bottom\"]': {\n '&[data-align=\"start\"]': { transformOrigin: 'top left' },\n '&[data-align=\"center\"]': { transformOrigin: 'top center' },\n '&[data-align=\"end\"]': { transformOrigin: 'top right' },\n },\n '&[data-side=\"left\"]': {\n '&[data-align=\"start\"]': { transformOrigin: 'top right' },\n '&[data-align=\"center\"]': { transformOrigin: 'center right' },\n '&[data-align=\"end\"]': { transformOrigin: 'bottom right' },\n },\n },\n position: 'relative',\n zIndex: '$dropdownMenu',\n}\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\n\nimport {\n contentDefaults,\n CONTENT_PADDING,\n CONTENT_GAP,\n} from '../styles/content'\n\nexport const StyledItemsContainer = styled('div', {\n display: 'grid',\n gap: CONTENT_GAP,\n})\n\nexport const StyledContent = styled(RadixDropdownMenu.Content, {\n ...contentDefaults,\n variants: {\n containerSpacing: {\n small: {\n '&, [role=\"menu\"]': {\n padding: CONTENT_PADDING.small,\n },\n },\n medium: {\n '&, [role=\"menu\"]': {\n padding: CONTENT_PADDING.medium,\n },\n },\n large: {\n '&, [role=\"menu\"]': {\n padding: CONTENT_PADDING.large,\n },\n },\n },\n },\n})\n\nexport type StyledContentProps = StrictComponentProps<typeof StyledContent>\n","import React, { useCallback } from 'react'\nimport { ScrollArea } from '@mirohq/design-system'\nimport type { CSS } from '@mirohq/design-system-stitches'\nimport type { CSSProperties } from '@stitches/react'\n\nimport { CONTENT_PADDING, CONTENT_BORDER_FOCUS_ITEM } from '../styles/content'\nimport type { ContainerSpacing, Overflow } from '../types'\n\ninterface ScrollableContentProps {\n children?: React.ReactNode\n containerSpacing: ContainerSpacing\n maxHeight?: CSSProperties['maxHeight']\n overflow: Overflow\n}\n\nexport const ScrollableContent = ({\n children,\n maxHeight,\n overflow,\n containerSpacing,\n}: ScrollableContentProps): JSX.Element => {\n const getOverflowMaxHeight = useCallback((): CSS => {\n const [top, , bottom] = CONTENT_PADDING[containerSpacing]\n .split(' ')\n .map(value => value.replace('$', ''))\n\n const topBottom =\n top !== undefined && bottom !== undefined\n ? `var(--space-${top}) + var(--space-${bottom})`\n : `var(--space-${top}) + var(--space-${top})`\n\n const overflowMaxHeigh =\n overflow === 'auto'\n ? `calc(var(--radix-dropdown-menu-content-available-height) - (${topBottom}))`\n : 'auto'\n\n const newMaxHeight = `calc(${maxHeight} - (${topBottom}))`\n\n return {\n maxHeight: maxHeight === undefined ? overflowMaxHeigh : newMaxHeight,\n }\n }, [maxHeight, overflow, containerSpacing])\n\n if (overflow === 'auto') {\n return (\n <ScrollArea\n css={{ margin: `-${CONTENT_BORDER_FOCUS_ITEM}` }}\n type='always'\n >\n <ScrollArea.Viewport css={{ ...getOverflowMaxHeight() }}>\n {children}\n </ScrollArea.Viewport>\n <ScrollArea.Scrollbar orientation='vertical'>\n <ScrollArea.Thumb />\n </ScrollArea.Scrollbar>\n </ScrollArea>\n )\n }\n\n return <>{children}</>\n}\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport type { CSSProperties } from '@stitches/react'\n\nimport { StyledContent, StyledItemsContainer } from './content.styled'\nimport { CONTENT_OFFSET } from '../styles/content'\nimport { ContentProvider } from '../hooks/use-content'\nimport { ScrollableContent } from './scrollable-content'\nimport type { StyledContentProps } from './content.styled'\nimport type {\n PointerDownOutsideEvent,\n FocusOutsideEvent,\n Side,\n Align,\n StickyBehavior,\n ContainerSpacing,\n Overflow,\n} from '../types'\n\nexport interface ContentProps extends StyledContentProps {\n /**\n * Whether keyboard navigation should loop around\n */\n loop?: boolean\n\n /**\n * Event handler called when focus moves to the trigger after closing. It can\n * be prevented by calling event.preventDefault. This prop is ignored within\n * submenus.\n */\n onCloseAutoFocus?: (event: Event) => 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 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 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 * The preferred side of the trigger to render against when open. Will be\n * reversed when collisions occur and avoidCollisions is enabled. This prop is\n * ignored within submenus.\n */\n side?: Side\n\n /**\n * The distance in pixels from the trigger\n */\n sideOffset?: number\n\n /**\n * The preferred alignment against the trigger. May change when collisions\n * occur. This prop is ignored within submenus.\n */\n align?: Align\n\n /**\n * An offset in pixels from the \"start\" or \"end\" alignment options\n */\n alignOffset?: number\n\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 distance in pixels from window edges where collision detection should\n * occur.\n */\n collisionPadding?: number\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?: StickyBehavior\n\n /**\n * Used to force mounting when more control is needed. Useful when controlling\n * animation with React animation libraries. It inherits from\n * DropdownMenu.Portal.\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 * Whether to hide the content when the trigger becomes fully occluded.\n */\n hideWhenDetached?: boolean\n\n /**\n * The spacing around container\n */\n containerSpacing?: ContainerSpacing\n\n /**\n * The max height for the content.\n */\n maxHeight?: CSSProperties['maxHeight']\n\n /**\n * Setting overflow as \"visible\" means that the content can extend beyond the\n * its collision boundary without any clipping or scrolling being\n * applied.\n * When set to \"auto,\" a scrollbar is added if the content exceeds its\n * boundaries. If no maxHeight is defined, it will be automatically adjusted\n * to fit the remaining space between the trigger and the boundary edge.\n */\n overflow?: Overflow\n}\n\nexport const Content = React.forwardRef<\n ElementRef<typeof StyledContent>,\n ContentProps\n>(\n (\n {\n loop = false,\n side = 'bottom',\n sideOffset = CONTENT_OFFSET,\n align = 'center',\n alignOffset = 0,\n collisionPadding = 0,\n avoidCollisions = true,\n sticky = 'partial',\n hideWhenDetached = false,\n containerSpacing = 'medium',\n overflow = 'visible',\n maxHeight,\n children,\n ...restProps\n },\n forwardRef\n ) => (\n <ContentProvider containerSpacing={containerSpacing}>\n <StyledContent\n {...restProps}\n ref={forwardRef}\n loop={loop}\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n avoidCollisions={avoidCollisions}\n collisionPadding={collisionPadding}\n sticky={sticky}\n hideWhenDetached={hideWhenDetached}\n containerSpacing={containerSpacing}\n >\n <ScrollableContent {...{ containerSpacing, maxHeight, overflow }}>\n <StyledItemsContainer>{children}</StyledItemsContainer>\n </ScrollableContent>\n </StyledContent>\n </ContentProvider>\n )\n)\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\n\nimport { itemDefaults } from '../styles/item'\n\nexport const StyledItem = styled(RadixDropdownMenu.Item, {\n ...itemDefaults,\n variants: {\n // This is a hack for the :has() selector\n // Remove it after Firefox implements it\n hasRightSlot: {\n true: {\n paddingRight: '$600',\n },\n },\n },\n})\n\nexport type StyledItemProps = StrictComponentProps<typeof StyledItem>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledItem } from './item.styled'\nimport type { StyledItemProps } from './item.styled'\nimport { useAriaDisabled } from '../hooks/use-aria-disabled'\nimport { ItemProvider } from '../hooks/use-item'\n\nexport interface ItemProps extends StyledItemProps {\n /**\n * When true, prevents the user from interacting with the item\n */\n disabled?: boolean\n\n /**\n * Event handler called when the user selects an item (via mouse of keyboard). Calling event.preventDefault in this handler will prevent the dropdown menu from closing when selecting that item\n */\n onSelect?: (event: Event) => void\n\n /**\n * Optional text used for typeahead purposes. By default the typeahead behavior will use the .textContent of the item. Use this when the content is complex, or you have non-textual content inside\n */\n textValue?: string\n}\n\nexport const Item = React.forwardRef<ElementRef<typeof StyledItem>, ItemProps>(\n ({ disabled = false, ...restProps }, forwardRef) => {\n const ariaDisabledProps = useAriaDisabled(restProps)\n\n return (\n <ItemProvider>\n <StyledItem\n {...restProps}\n {...ariaDisabledProps}\n disabled={disabled}\n ref={forwardRef}\n />\n </ItemProvider>\n )\n }\n)\n","import React from 'react'\nimport type { ElementRef, AnchorHTMLAttributes } from 'react'\n\nimport { Item } from './item'\nimport type { ItemProps } from './item'\nimport { useAriaDisabled } from '../hooks/use-aria-disabled'\n\ntype ItemPropsWithAnchor = ItemProps & AnchorHTMLAttributes<typeof Item>\nexport interface LinkItemProps extends ItemPropsWithAnchor {}\n\nexport const LinkItem = React.forwardRef<\n ElementRef<typeof Item>,\n LinkItemProps\n>(({ children, href, ...restProps }, forwardRef) => {\n const ariaDisabledProps = useAriaDisabled(restProps)\n return (\n <Item asChild ref={forwardRef} {...restProps} {...ariaDisabledProps}>\n <a href={href}>{children}</a>\n </Item>\n )\n})\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\n\nimport { CONTENT_GAP } from '../styles/content'\n\nexport const StyledRadioGroup = styled(RadixDropdownMenu.RadioGroup, {\n display: 'grid',\n gap: CONTENT_GAP,\n})\n\nexport type StyledRadioGroupProps = StrictComponentProps<\n typeof StyledRadioGroup\n>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledRadioGroup } from './radio-group.styled'\nimport type { StyledRadioGroupProps } from './radio-group.styled'\n\nexport interface RadioGroupProps\n extends Omit<StyledRadioGroupProps, 'onChange'> {\n /**\n * The value of the selected item in the group\n */\n value: string\n\n /**\n * Event handler called when the selected radio changes\n */\n onChange: (value: string) => void\n}\n\nexport const RadioGroup = React.forwardRef<\n ElementRef<typeof StyledRadioGroup>,\n RadioGroupProps\n>((props, forwardRef) => {\n const { onChange, ...restProps } = props\n\n return (\n <StyledRadioGroup\n {...restProps}\n ref={forwardRef}\n onValueChange={onChange}\n />\n )\n})\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport { IconProhibit } from '@mirohq/design-system-icons'\n\nimport { itemDefaults } from '../styles/item'\n\nexport const StyledRadioContainer = styled(Primitive.div, {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '$4',\n height: '$4',\n boxSizing: 'border-box',\n border: '1px solid $border-neutrals',\n borderRadius: '$half',\n})\n\nexport const StyledPill = styled(Primitive.div, {\n display: 'none',\n width: '$2',\n height: '$2',\n borderRadius: '$half',\n})\n\nexport const StyledProhibited = styled(IconProhibit, {\n display: 'none',\n width: '$3 !important',\n})\n\nexport const StyledRadioItem = styled(RadixDropdownMenu.RadioItem, {\n ...itemDefaults,\n [`&[data-state=\"checked\"] ${StyledRadioContainer}`]: {\n color: '$icon-primary',\n borderColor: '$border-primary',\n\n [`& ${StyledPill}`]: {\n display: 'block',\n backgroundColor: '$background-primary-prominent-selected',\n },\n },\n\n [`&:hover:not([aria-disabled=\"true\"]) ${StyledRadioContainer}`]: {\n borderColor: '$border-primary-hover',\n\n [`& ${StyledPill}`]: {\n backgroundColor: '$background-primary-prominent-hover',\n },\n },\n\n [`\n &[aria-disabled=\"true\"] ${StyledRadioContainer},\n &[data-disabled] ${StyledRadioContainer}\n `]: {\n color: '$icon-neutrals-disabled',\n borderColor: '$border-neutrals-disabled',\n\n [`& ${StyledPill}`]: {\n backgroundColor: '$icon-neutrals-disabled',\n },\n },\n '&[data-state=\"unchecked\"]': {\n [`\n &[aria-disabled=\"true\"] ${StyledProhibited},\n &[data-disabled] ${StyledProhibited}\n `]: {\n display: 'flex',\n },\n },\n})\n\nexport type StyledRadioItemProps = StrictComponentProps<typeof StyledRadioItem>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport {\n StyledPill,\n StyledProhibited,\n StyledRadioContainer,\n StyledRadioItem,\n} from './radio-item.styled'\nimport type { StyledRadioItemProps } from './radio-item.styled'\nimport { RightSlot } from './right-slot'\nimport { useAriaDisabled } from '../hooks/use-aria-disabled'\nimport { ItemProvider } from '../hooks/use-item'\n\nexport interface RadioItemProps extends StyledRadioItemProps {\n /**\n * The unique value of the item.\n */\n value: string\n\n /**\n * When true, prevents the user from interacting with the item.\n */\n disabled?: boolean\n\n /**\n * Event handler called when the user selects an item (via mouse of keyboard).\n */\n onSelect?: (event: Event) => void\n\n /**\n * Closes the dropdown when the user selects an item.\n */\n closeOnSelect?: boolean\n\n /**\n * Optional text used for typeahead purposes. By default the typeahead behavior will use the .textContent of the item.\n * Use this when the content is complex, or you have non-textual content inside.\n */\n textValue?: string\n}\n\nexport const RadioItem = React.forwardRef<\n ElementRef<typeof StyledRadioItem>,\n RadioItemProps\n>(({ disabled, children, closeOnSelect = false, ...restProps }, forwardRef) => {\n const ariaDisabledProps = useAriaDisabled(restProps, closeOnSelect)\n return (\n <ItemProvider>\n <StyledRadioItem\n {...restProps}\n {...ariaDisabledProps}\n disabled={disabled}\n ref={forwardRef}\n >\n {children}\n <RightSlot>\n <StyledRadioContainer>\n <StyledPill />\n <StyledProhibited weight='thin' />\n </StyledRadioContainer>\n </RightSlot>\n </StyledRadioItem>\n </ItemProvider>\n )\n})\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\n\nexport const StyledSeparator = styled(RadixDropdownMenu.Separator, {\n borderTop: '1px solid $border-neutrals-subtle',\n})\n\nexport type StyledSeparatorProps = StrictComponentProps<typeof StyledSeparator>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledSeparator } from './separator.styled'\nimport type { StyledSeparatorProps } from './separator.styled'\n\nexport interface SeparatorProps extends StyledSeparatorProps {}\n\nexport const Separator = React.forwardRef<\n ElementRef<typeof StyledSeparator>,\n SeparatorProps\n>((props, forwardRef) => <StyledSeparator {...props} ref={forwardRef} />)\n","import type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { styled } from '@mirohq/design-system-stitches'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\nimport { styles } from '@mirohq/design-system-base-switch'\nimport { Primitive } from '@mirohq/design-system-primitive'\n\nimport { itemDefaults } from '../styles/item'\n\nexport const StyledSwitch = styled(Primitive.span, {\n ...styles.default,\n width: '$7',\n height: '$4',\n})\n\nexport const StyledSwitchItem = styled(RadixDropdownMenu.CheckboxItem, {\n ...itemDefaults,\n\n [`&[data-state=\"checked\"] ${StyledSwitch}`]: styles.checked,\n [`&[data-state=\"checked\"]:hover:not([aria-disabled=\"true\"]) ${StyledSwitch}`]:\n styles.checkedHovered,\n\n [`&:hover:not([aria-disabled=\"true\"]) ${StyledSwitch}`]: styles.hovered,\n [`\n &[aria-disabled=\"true\"] ${StyledSwitch},\n &[data-disabled] ${StyledSwitch}\n `]: styles.disabled,\n})\n\nexport type StyledSwitchItemProps = StrictComponentProps<\n typeof StyledSwitchItem\n>\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport { Thumb } from '@mirohq/design-system-base-switch'\n\nimport { RightSlot } from './right-slot'\nimport type { StyledSwitchItemProps } from './switch-item.styled'\nimport { StyledSwitch, StyledSwitchItem } from './switch-item.styled'\nimport { useAriaDisabled } from '../hooks/use-aria-disabled'\nimport { ItemProvider } from '../hooks/use-item'\n\nexport interface SwitchItemProps\n extends Omit<StyledSwitchItemProps, 'onChange'> {\n /**\n * The checked state of the item.\n */\n checked: boolean\n\n /**\n * Event handler called when the checked state changes.\n */\n onChange: (checked: boolean) => void\n\n /**\n * When true, prevents the user from interacting with the item.\n */\n disabled?: boolean\n\n /**\n * Event handler called when the user selects an item (via mouse of keyboard).\n */\n onSelect?: (event: Event) => void\n\n /**\n * Closes the dropdown when the user selects an item.\n */\n closeOnSelect?: boolean\n\n /**\n * Optional text used for typeahead purposes. By default the typeahead behavior will use the .textContent of the item.\n * Use this when the content is complex, or you have non-textual content inside.\n */\n textValue?: string\n}\n\nexport const SwitchItem = React.forwardRef<\n ElementRef<typeof StyledSwitchItem>,\n SwitchItemProps\n>(\n (\n {\n disabled,\n checked,\n onChange,\n children,\n closeOnSelect = false,\n ...restProps\n },\n forwardRef\n ) => {\n const ariaDisabledProps = useAriaDisabled(restProps, closeOnSelect)\n\n return (\n <ItemProvider>\n <StyledSwitchItem\n {...restProps}\n {...ariaDisabledProps}\n disabled={disabled}\n checked={checked}\n onCheckedChange={onChange}\n ref={forwardRef}\n >\n {children}\n <RightSlot>\n <StyledSwitch>\n <Thumb />\n </StyledSwitch>\n </RightSlot>\n </StyledSwitchItem>\n </ItemProvider>\n )\n }\n)\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\nimport { focus } from '@mirohq/design-system-styles'\n\nexport const StyledTrigger = styled(RadixDropdownMenu.Trigger, {\n variants: {\n unstyled: {\n true: {\n all: 'unset',\n boxSizing: 'border-box',\n cursor: 'pointer',\n ...focus.css({\n boxShadow: '$focus-small',\n outline: '1px solid transparent',\n }),\n },\n false: {\n cursor: 'pointer',\n },\n },\n },\n})\n\nexport type StyledTriggerProps = StrictComponentProps<typeof StyledTrigger>\n","import React, { useRef } from 'react'\nimport { isVirtualClick } from '@react-aria/utils'\nimport { mergeRefs } from '@mirohq/design-system-utils'\nimport type { MouseEventHandler, ElementRef } from 'react'\n\nimport { StyledTrigger } from './trigger.styled'\nimport type { StyledTriggerProps } from './trigger.styled'\n\nexport interface TriggerProps extends StyledTriggerProps {}\n\nexport const Trigger = React.forwardRef<\n ElementRef<typeof StyledTrigger>,\n TriggerProps\n>(({ asChild = false, onClick, ...restProps }, forwardRef) => {\n const ref = useRef<HTMLButtonElement>(null)\n\n /**\n * It forces the trigger of pointerDow on the Dropdown.Trigger.\n * This had to be done because when using Ctrl + Option + Space on safari it\n * triggers onClick, and Radix only listens to onPointerDown.\n * https://github.com/radix-ui/primitives/blob/bc28fb42b81e4f95ce41eef3ed683ea0dd823dd8/packages/react/dropdown-menu/src/DropdownMenu.tsx#L117\n */\n const handleVirtualClick: MouseEventHandler<Element> = e => {\n if (e?.nativeEvent === undefined) {\n console.error(\n 'DropdownMenu.Trigger onClick expected a MouseEvent but got different one. It usually happens due to a element used asChild with a different onClick interface.\\n' +\n `Event: ${JSON.stringify(e, null, 2)}`\n )\n return\n }\n\n const nativeEvent = e.nativeEvent as any\n\n if (nativeEvent.mozInputSource === undefined) {\n nativeEvent.mozInputSource = null\n }\n\n if (isVirtualClick(e.nativeEvent) && ref.current !== null) {\n const pointerDownEvent = new MouseEvent('pointerdown', {\n bubbles: true,\n cancelable: true,\n })\n\n ref.current?.dispatchEvent(pointerDownEvent)\n }\n }\n return (\n <StyledTrigger\n {...restProps}\n onClick={e => {\n handleVirtualClick(e)\n onClick?.(e)\n }}\n ref={mergeRefs([ref, forwardRef])}\n unstyled={!asChild}\n asChild={asChild}\n />\n )\n})\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\nimport { Primitive } from '@mirohq/design-system-primitive'\n\nimport { itemDefaults } from '../styles/item'\n\nexport const StyledIconContainer = styled(Primitive.span, {\n color: '$icon-neutrals-with-text',\n display: 'flex',\n alignItems: 'center',\n})\n\nexport const StyledSubTrigger = styled(RadixDropdownMenu.SubTrigger, {\n ...itemDefaults,\n '&[data-state=\"open\"]': itemDefaults['&:hover:not([aria-disabled=\"true\"])'],\n\n [`&[data-state=\"open\"] ${StyledIconContainer}, &:hover:not([aria-disabled=\"true\"]) ${StyledIconContainer}`]:\n {\n color: '$icon-primary-hover',\n },\n})\n\nexport type StyledSubTriggerProps = StrictComponentProps<\n typeof StyledSubTrigger\n>\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport { IconChevronRight } from '@mirohq/design-system-icons'\n\nimport { StyledIconContainer, StyledSubTrigger } from './sub-trigger.styled'\nimport type { StyledSubTriggerProps } from './sub-trigger.styled'\nimport { RightSlot } from './right-slot'\nimport { useAriaDisabled } from '../hooks/use-aria-disabled'\n\nexport interface SubTriggerProps extends StyledSubTriggerProps {\n /**\n * Prevents the user from interacting with the switch\n */\n disabled?: boolean\n\n /**\n * Optional text used for type ahead purposes. By default the type ahead\n * behavior will use the .textContent of the item. Use this when the content\n * is complex, or you have.\n */\n textValue?: string\n}\n\nexport const SubTrigger = React.forwardRef<\n ElementRef<typeof StyledSubTrigger>,\n StyledSubTriggerProps\n>(({ children, disabled = false, ...restProps }, forwardRef) => {\n const { onSelect, ...ariaDisabledProps } = useAriaDisabled({\n onKeyDown: restProps.onKeyDown,\n 'aria-disabled': restProps['aria-disabled'],\n })\n\n return (\n <StyledSubTrigger\n {...restProps}\n {...ariaDisabledProps}\n disabled={disabled}\n ref={forwardRef}\n >\n {children}\n <RightSlot>\n <StyledIconContainer\n data-testid={\n process.env.NODE_ENV === 'test' ? 'submenu-arrow-icon' : undefined\n }\n >\n <IconChevronRight size='small' weight='thin' />\n </StyledIconContainer>\n </RightSlot>\n </StyledSubTrigger>\n )\n})\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\n\nimport { contentDefaults } from '../styles/content'\n\nexport const StyledSubContent = styled(\n RadixDropdownMenu.SubContent,\n contentDefaults\n)\n\nexport type StyledSubContentProps = StrictComponentProps<\n typeof StyledSubContent\n>\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport type { CSSProperties } from '@stitches/react'\n\nimport { StyledSubContent } from './sub-content.styled'\nimport { CONTENT_GUTTER, CONTENT_OFFSET } from '../styles/content'\nimport { ContentProvider, useContent } from '../hooks/use-content'\nimport { ScrollableContent } from './scrollable-content'\nimport type { StyledSubContentProps } from './sub-content.styled'\nimport { StyledItemsContainer } from './content.styled'\nimport type {\n PointerDownOutsideEvent,\n FocusOutsideEvent,\n StickyBehavior,\n Overflow,\n} from '../types'\n\nexport interface SubContentProps extends StyledSubContentProps {\n /**\n * Whether keyboard navigation should loop around\n * @default false\n */\n loop?: boolean\n\n /**\n * Event handler called when focus moves to the trigger after closing. It can\n * be prevented by calling event.preventDefault. This prop is ignored within\n * submenus.\n */\n onCloseAutoFocus?: (event: Event) => 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 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 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 * 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 distance in pixels from the trigger.\n */\n sideOffset?: number\n\n /**\n * An offset in pixels from the \"start\" or \"end\" alignment options.\n */\n alignOffset?: number\n\n /**\n * When true, overrides the side andalign preferences to prevent collisions\n * with window edges.\n * @default true\n */\n avoidCollisions?: boolean\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 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 * @default partial\n */\n sticky?: StickyBehavior\n\n /**\n * Whether to hide the content when the trigger becomes fully occluded.\n * @default false\n */\n hideWhenDetached?: boolean\n\n /**\n * The max height for the subContent.\n */\n maxHeight?: CSSProperties['maxHeight']\n\n /**\n * Setting overflow as \"visible\" means that the content can extend beyond the\n * its collision boundary without any clipping or scrolling being\n * applied.\n * When set to \"auto,\" a scrollbar is added if the content exceeds its\n * boundaries. If no maxHeight is defined, it will be automatically adjusted\n * to fit the remaining space between the trigger and the boundary edge.\n */\n overflow?: Overflow\n}\n\n// without CONTENT_GUTTER submenu would overlap the menu\nconst SIDE_OFFSET = CONTENT_GUTTER + CONTENT_OFFSET\n\nexport const SubContent = React.forwardRef<\n ElementRef<typeof StyledSubContent>,\n SubContentProps\n>(\n (\n {\n sideOffset = SIDE_OFFSET,\n alignOffset = -CONTENT_GUTTER,\n collisionPadding = 0,\n loop = false,\n hideWhenDetached = true,\n sticky = 'partial',\n overflow = 'visible',\n maxHeight,\n children,\n ...restProps\n },\n forwardRef\n ) => {\n /* A new ContentProvider instance is created per Content and SubContent,\n using the context from the parent is necessary to preserve this value. */\n const { containerSpacing } = useContent()\n return (\n <ContentProvider containerSpacing={containerSpacing}>\n <StyledSubContent\n {...restProps}\n ref={forwardRef}\n sideOffset={sideOffset}\n alignOffset={alignOffset}\n collisionPadding={collisionPadding}\n loop={loop}\n hideWhenDetached={hideWhenDetached}\n sticky={sticky}\n >\n <ScrollableContent {...{ containerSpacing, maxHeight, overflow }}>\n <StyledItemsContainer>{children}</StyledItemsContainer>\n </ScrollableContent>\n </StyledSubContent>\n </ContentProvider>\n )\n }\n)\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\n\nexport const StyledSub = styled(RadixDropdownMenu.Sub, {})\n\nexport type StyledSubProps = StrictComponentProps<typeof StyledSub>\n","import React, { useState } from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledSub } from './sub.styled'\nimport type { StyledSubProps } from './sub.styled'\n\nexport interface SubProps extends StyledSubProps {\n /**\n * The open state of the submenu when it is initially rendered. Use when you\n * do not need to control its open state.\n */\n defaultOpen?: boolean\n\n /**\n * The controlled open state of the submenu. Must be used in conjunction with\n * onOpenChange.\n */\n open?: boolean\n\n /**\n * Event handler called when the submenu opens.\n */\n onOpen?: () => void\n\n /**\n * Event handler called when the submenu closes.\n */\n onClose?: () => void\n}\n\nexport const Sub = React.forwardRef<ElementRef<typeof StyledSub>, SubProps>(\n ({ defaultOpen, onOpen, onClose, open, ...restProps }, forwardRef) => {\n const [openState, setOpenState] = useState(defaultOpen)\n return (\n <StyledSub\n {...restProps}\n open={open ?? openState}\n onOpenChange={newOpen => {\n if (open == null) {\n setOpenState(newOpen)\n }\n\n newOpen ? onOpen?.() : onClose?.()\n }}\n ref={forwardRef}\n />\n )\n }\n)\n","import React from 'react'\nimport type { DropdownMenuPortalProps } from '@radix-ui/react-dropdown-menu'\nimport { Portal as RadixPortal } from '@radix-ui/react-dropdown-menu'\n\nexport interface PortalProps extends DropdownMenuPortalProps {\n /**\n * Used to force mounting when more control is needed. Useful when controlling\n * animation with React animation libraries. If used on this part, it will be\n * inherited by DropdownMenu.Content and DropdownMenu.SubContent respectively.\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 type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { styles as baseIconStyles } from '@mirohq/design-system-base-icon'\n\nimport { LeftSlot } from './left-slot'\n\nexport const StyledIconSlot = styled(LeftSlot, {\n square: '$5',\n\n '& svg:not([data-icon-component]), & img:not([data-icon-component])': {\n ...baseIconStyles.size.small,\n ...baseIconStyles.weight.thin,\n },\n})\n\nexport type StyledIconSlotProps = StrictComponentProps<typeof StyledIconSlot>\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport { useLayoutEffect } from '@mirohq/design-system-use-layout-effect'\nimport type { IconSizes, IconWeights } from '@mirohq/design-system-base-icon'\nimport { isIconComponent } from '@mirohq/design-system-base-icon'\nimport { addPropsToChildren } from '@mirohq/design-system-utils'\nimport { Primitive } from '@mirohq/design-system-primitive'\n\nimport type { StyledIconSlotProps } from './icon-slot.styled'\nimport { StyledIconSlot } from './icon-slot.styled'\nimport { useItem } from '../hooks/use-item'\n\nexport type IconSlotProps = Omit<StyledIconSlotProps, 'custom'>\n\ninterface IconComponentProps {\n 'data-icon-component': ''\n size: IconSizes\n weight: IconWeights\n}\n\nexport const IconSlot = React.forwardRef<\n ElementRef<typeof StyledIconSlot>,\n IconSlotProps\n>(({ children, ...restProps }, forwardRef) => {\n const { leftSlotMount, leftSlotDestroy } = useItem()\n\n const formattedChildren = addPropsToChildren<IconComponentProps>(\n children,\n isIconComponent,\n {\n 'data-icon-component': '',\n size: 'small',\n weight: 'thin',\n }\n )\n\n useLayoutEffect(() => {\n leftSlotMount()\n return () => leftSlotDestroy()\n }, [leftSlotMount, leftSlotDestroy])\n\n return (\n <StyledIconSlot ref={forwardRef} {...restProps}>\n <Primitive.svg asChild aria-hidden>\n {formattedChildren}\n </Primitive.svg>\n </StyledIconSlot>\n )\n})\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport { useLayoutEffect } from '@mirohq/design-system-use-layout-effect'\n\nimport { useItem } from '../hooks/use-item'\nimport type { StyledIllustrationSlotProps } from './illustration-slot.styled'\nimport { StyledIllustrationSlot } from './illustration-slot.styled'\n\nexport const IllustrationSlot = React.forwardRef<\n ElementRef<typeof StyledIllustrationSlot>,\n StyledIllustrationSlotProps\n>((props, forwardRef) => {\n const { leftSlotMount, leftSlotDestroy } = useItem()\n\n useLayoutEffect(() => {\n leftSlotMount()\n return () => leftSlotDestroy()\n }, [leftSlotMount, leftSlotDestroy])\n\n return <StyledIllustrationSlot ref={forwardRef} {...props} />\n})\n","import React, { useState } from 'react'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\n\nimport { CheckboxItem } from './partials/checkbox-item'\nimport { Content } from './partials/content'\nimport { Item } from './partials/item'\nimport { LinkItem } from './partials/link-item'\nimport { RadioGroup } from './partials/radio-group'\nimport { RadioItem } from './partials/radio-item'\nimport { Separator } from './partials/separator'\nimport { SwitchItem } from './partials/switch-item'\nimport { Trigger } from './partials/trigger'\nimport { SubTrigger } from './partials/sub-trigger'\nimport { SubContent } from './partials/sub-content'\nimport { Sub } from './partials/sub'\nimport { Portal } from './partials/portal'\nimport { ItemDescription } from './partials/item-description'\nimport { IconSlot } from './partials/icon-slot'\nimport { HotkeySlot } from './partials/hotkey-slot'\nimport { IllustrationSlot } from './partials/illustration-slot'\n\nexport interface DropdownMenuProps {\n /**\n * The open state of the dropdown menu when it is initially rendered. Use when\n * you do not need to control its open state.\n */\n defaultOpen?: boolean\n\n /**\n * The reading direction of submenus when applicable. If omitted, assumes LTR\n * (left-to-right) reading mode.\n */\n direction?: 'ltr' | 'rtl'\n\n /**\n * The current dropdown open state.\n */\n open?: boolean\n\n /**\n * Event handler called when the dropdown opens.\n */\n onOpen?: () => void\n\n /**\n * Event handler called when the dropdown closes.\n */\n onClose?: () => void\n\n /**\n * Defines whether the interaction with outside elements will be disabled and\n * only menu content will be visible to screen readers. This prop is ignored\n * within submenus.\n */\n interactOutside?: boolean\n\n /**\n * The content\n */\n children: React.ReactNode\n}\n\nexport const DropdownMenu: React.FC<DropdownMenuProps> & Partials = ({\n defaultOpen = false,\n direction = 'ltr',\n interactOutside = false,\n open,\n onOpen,\n onClose,\n ...restProps\n}) => {\n const [openState, setOpenState] = useState(defaultOpen)\n\n return (\n <RadixDropdownMenu.Root\n {...restProps}\n dir={direction}\n modal={interactOutside}\n open={open ?? openState}\n onOpenChange={newOpen => {\n if (open == null) {\n setOpenState(newOpen)\n }\n\n newOpen ? onOpen?.() : onClose?.()\n }}\n />\n )\n}\n\n// Partials\n// -----------------------------------------------------------------------------\n\ninterface Partials {\n CheckboxItem: typeof CheckboxItem\n Content: typeof Content\n HotkeySlot: typeof HotkeySlot\n IconSlot: typeof IconSlot\n IllustrationSlot: typeof IllustrationSlot\n Item: typeof Item\n ItemDescription: typeof ItemDescription\n LinkItem: typeof LinkItem\n Portal: typeof Portal\n RadioGroup: typeof RadioGroup\n RadioItem: typeof RadioItem\n Separator: typeof Separator\n Sub: typeof Sub\n SubContent: typeof SubContent\n SubTrigger: typeof SubTrigger\n SwitchItem: typeof SwitchItem\n Trigger: typeof Trigger\n}\n\nDropdownMenu.CheckboxItem = CheckboxItem\nDropdownMenu.Content = Content\nDropdownMenu.HotkeySlot = HotkeySlot\nDropdownMenu.IconSlot = IconSlot\nDropdownMenu.IllustrationSlot = IllustrationSlot\nDropdownMenu.Item = Item\nDropdownMenu.ItemDescription = ItemDescription\nDropdownMenu.LinkItem = LinkItem\nDropdownMenu.Portal = Portal\nDropdownMenu.RadioGroup = RadioGroup\nDropdownMenu.RadioItem = RadioItem\nDropdownMenu.Separator = Separator\nDropdownMenu.Sub = Sub\nDropdownMenu.SubContent = SubContent\nDropdownMenu.SubTrigger = SubTrigger\nDropdownMenu.SwitchItem = SwitchItem\nDropdownMenu.Trigger = Trigger\n"],"names":["Context","RadixPortal","baseIconStyles"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"module.js","sources":["../src/partials/item-description.tsx","../src/partials/left-slot.tsx","../src/partials/illustration-slot.styled.ts","../src/hooks/use-content.tsx","../src/partials/right-slot.styled.ts","../src/partials/right-slot.tsx","../src/partials/hotkey-slot.tsx","../src/styles/item.ts","../src/partials/checkbox-item.styled.tsx","../src/hooks/use-aria-disabled.ts","../src/hooks/use-item.tsx","../src/partials/checkbox-item.tsx","../src/styles/content.ts","../src/partials/content.styled.tsx","../src/partials/scrollable-content.tsx","../src/partials/content.tsx","../src/partials/item.styled.tsx","../src/partials/item.tsx","../src/partials/link-item.tsx","../src/partials/radio-group.styled.tsx","../src/partials/radio-group.tsx","../src/partials/radio-item.styled.tsx","../src/partials/radio-item.tsx","../src/partials/separator.styled.tsx","../src/partials/separator.tsx","../src/partials/switch-item.styled.ts","../src/partials/switch-item.tsx","../src/partials/trigger.styled.tsx","../src/partials/trigger.tsx","../src/partials/sub-trigger.styled.tsx","../src/partials/sub-trigger.tsx","../src/partials/sub-content.styled.tsx","../src/partials/sub-content.tsx","../src/partials/sub.styled.tsx","../src/partials/sub.tsx","../src/partials/portal.tsx","../src/partials/icon-slot.styled.ts","../src/partials/icon-slot.tsx","../src/partials/illustration-slot.tsx","../src/dropdown-menu.tsx"],"sourcesContent":["import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\n\nexport const ItemDescription = styled(Primitive.div, {\n display: '-webkit-box',\n width: '100%',\n WebkitBoxOrient: 'vertical',\n WebkitLineClamp: 2,\n overflow: 'hidden',\n gridArea: 'item-description',\n fontSize: '$150',\n lineHeight: 1.5,\n color: '$text-neutrals-subtle',\n})\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\n\nexport const LeftSlot = styled(Primitive.div, {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n marginRight: '$100',\n gridArea: 'left-slot',\n})\n","import type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { styled } from '@mirohq/design-system-stitches'\n\nimport { LeftSlot } from './left-slot'\n\nexport const StyledIllustrationSlot = styled(LeftSlot, {\n width: '$13',\n})\n\nexport type StyledIllustrationSlotProps = StrictComponentProps<\n typeof StyledIllustrationSlot\n>\n","import React, {\n createContext,\n useContext,\n useState,\n useRef,\n useCallback,\n} from 'react'\nimport type { PropsWithChildren } from 'react'\nimport { addPropsToChildren } from '@mirohq/design-system-utils'\n\nimport type { ContainerSpacing } from '../types'\n\ninterface ContentContext {\n rightSlotMount: (width: number) => number\n rightSlotDestroy: (index: number) => void\n containerSpacing: ContainerSpacing\n}\n\nconst Context = createContext<ContentContext>({\n rightSlotMount: () => 0,\n rightSlotDestroy: () => {},\n containerSpacing: 'medium',\n})\n\nexport const ContentProvider = ({\n children,\n containerSpacing = 'medium',\n}: PropsWithChildren<{\n containerSpacing?: ContainerSpacing\n}>): JSX.Element => {\n const [maxWidth, setMaxWidth] = useState<number>(0)\n\n // we need maxRef, so we don't rerender RightSlot whenever we change maxWidth\n const maxRef = useRef<number>(0)\n\n // rightSlot index to remove width from map on destroy\n const indexRef = useRef<number>(0)\n\n const widthMapRef = useRef<Map<number, number>>(new Map())\n\n const updateMaxWith = useCallback((value: number) => {\n maxRef.current = value\n setMaxWidth(value)\n }, [])\n\n // do not use state here, otherwise it will case many rerenders in RightSlot\n const rightSlotMount = useCallback(\n (width: number): number => {\n indexRef.current++\n\n widthMapRef.current.set(indexRef.current, width)\n\n if (width > maxRef.current) {\n updateMaxWith(width)\n }\n\n return indexRef.current\n },\n [updateMaxWith]\n )\n\n // do not use state here, otherwise it will case many rerenders in RightSlot\n const rightSlotDestroy = useCallback(\n (index: number): void => {\n widthMapRef.current.delete(index)\n\n if (widthMapRef.current.size === 0) {\n updateMaxWith(0)\n } else {\n const maximum = Math.max(...Array.from(widthMapRef.current.values()))\n updateMaxWith(maximum)\n }\n },\n [updateMaxWith]\n )\n\n const formattedChildren = addPropsToChildren(children, () => true, {\n UNSAFE_style: {\n '--right-slot-max-width': `${Math.ceil(maxWidth)}px`,\n },\n })\n\n return (\n <Context.Provider\n value={{\n rightSlotMount,\n rightSlotDestroy,\n containerSpacing,\n }}\n >\n {formattedChildren}\n </Context.Provider>\n )\n}\n\nexport const useContent = (): ContentContext => useContext(Context)\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\n\nexport const StyledRightSlot = styled(Primitive.div, {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n marginLeft: 'auto',\n paddingLeft: '$200',\n gridArea: 'right-slot',\n height: '$5',\n width: '$7',\n minWidth: 'max-content',\n textAlign: 'right',\n '&:empty': {\n paddingLeft: '$0',\n },\n})\n","import React, { useRef } from 'react'\nimport type { ComponentPropsWithRef } from 'react'\nimport { useLayoutEffect } from '@mirohq/design-system-use-layout-effect'\n\nimport { useContent } from '../hooks/use-content'\nimport { StyledRightSlot } from './right-slot.styled'\n\nexport const RightSlot = (\n props: ComponentPropsWithRef<typeof StyledRightSlot>\n): JSX.Element => {\n const { rightSlotMount, rightSlotDestroy } = useContent()\n\n const ref = useRef<HTMLDivElement>(null)\n\n useLayoutEffect(() => {\n if (ref.current !== null) {\n const width = ref.current.getBoundingClientRect().width\n const index = rightSlotMount(width)\n\n return () => rightSlotDestroy(index)\n }\n\n return () => {}\n }, [rightSlotMount, rightSlotDestroy, ref])\n\n return <StyledRightSlot ref={ref} {...props} />\n}\n","import { styled } from '@mirohq/design-system-stitches'\n\nimport { RightSlot } from './right-slot'\n\nexport const HotkeySlot = styled(RightSlot, {\n color: '$text-neutrals-subtle',\n})\n","import { focus } from '@mirohq/design-system-styles'\n\nimport { ItemDescription } from '../partials/item-description'\nimport { StyledIllustrationSlot } from '../partials/illustration-slot.styled'\nimport { HotkeySlot } from '../partials/hotkey-slot'\n\nexport const itemDefaults = {\n all: 'unset',\n boxSizing: 'border-box',\n fontSize: 14,\n lineHeight: '20px',\n color: '$text-neutrals',\n borderRadius: '$50',\n display: 'grid',\n gridTemplateColumns:\n 'auto 1fr minmax(min-content, var(--right-slot-max-width))',\n gridTemplateRows: 'auto 1fr',\n gridTemplateAreas: `'left-slot item-text right-slot'\n 'left-slot item-description right-slot'`,\n alignItems: 'start',\n padding: '10px $100',\n position: 'relative',\n userSelect: 'none',\n cursor: 'pointer',\n\n '&[data-no-left-slot]': {\n gridTemplateColumns: '1fr minmax(auto, var(--right-slot-max-width))',\n gridTemplateAreas: `'item-text right-slot'\n 'item-description right-slot'`,\n },\n\n ...focus.css({\n boxShadow: '$focus-small',\n outline: '1px solid transparent',\n }),\n\n '&:disabled, &[aria-disabled=\"true\"], &[data-disabled]': {\n cursor: 'default',\n\n [`&, & ${ItemDescription}, & ${HotkeySlot}`]: {\n color: '$text-neutrals-disabled',\n },\n [`& ${StyledIllustrationSlot}`]: {\n filter: 'grayscale(1)',\n },\n },\n\n '&:disabled, &[data-disabled]': {\n pointerEvents: 'none',\n },\n\n '&:hover:not([aria-disabled=\"true\"])': {\n background: '$background-primary-subtle-hover',\n color: '$text-primary-hover',\n '&:not([aria-disabled=\"true\"])': {\n boxShadow: 'none',\n },\n },\n\n '&:active:not([aria-disabled=\"true\"])': {\n background: '$background-primary-subtle-active',\n boxShadow: 'none',\n color: '$text-primary-active',\n },\n\n '&[tabindex=\"0\"]': {\n zIndex: '1',\n },\n}\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\n\nimport { itemDefaults } from '../styles/item'\n\nexport const StyledIndicator = styled(Primitive.span, {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n})\n\nexport const StyledCheckboxItem = styled(RadixDropdownMenu.CheckboxItem, {\n ...itemDefaults,\n [`&[data-state=\"checked\"] ${StyledIndicator}`]: {\n color: '$icon-primary',\n },\n [`&[data-state=\"checked\"]:hover:not([aria-disabled=\"true\"]) ${StyledIndicator}`]:\n {\n color: '$icon-primary-hover',\n },\n [`\n &[aria-disabled=\"true\"] ${StyledIndicator},\n &[data-disabled] ${StyledIndicator}\n `]: {\n color: '$icon-neutrals-disabled',\n },\n})\n\nexport type StyledCheckboxItemProps = StrictComponentProps<\n typeof StyledCheckboxItem\n>\n","import { useMemo } from 'react'\nimport type {\n KeyboardEventHandler,\n PointerEventHandler,\n MouseEventHandler,\n} from 'react'\nimport type { Booleanish } from '@mirohq/design-system-types'\nimport { booleanify } from '@mirohq/design-system-utils'\n\ninterface AriaDisabledProps extends Object {\n 'aria-disabled'?: Booleanish\n onKeyDown?: KeyboardEventHandler\n onSelect?: (event: Event) => void\n onPointerMove?: PointerEventHandler\n onClick?: MouseEventHandler\n}\n\nexport const useAriaDisabled = (\n {\n 'aria-disabled': ariaDisabled,\n onKeyDown,\n onSelect,\n onPointerMove,\n onClick,\n }: AriaDisabledProps,\n closeOnCheck: boolean | undefined = true\n): AriaDisabledProps =>\n useMemo(\n () => ({\n 'aria-disabled': booleanify(ariaDisabled) ? ariaDisabled : undefined,\n onKeyDown: e => {\n if (\n booleanify(ariaDisabled) &&\n e.code !== 'ArrowUp' &&\n e.code !== 'ArrowDown' &&\n e.code !== 'Escape'\n ) {\n e.preventDefault()\n e.stopPropagation()\n return\n }\n\n onKeyDown?.(e)\n },\n onSelect: e => {\n if (booleanify(ariaDisabled)) {\n e.preventDefault()\n return\n }\n\n if (!closeOnCheck) {\n e.preventDefault()\n }\n\n onSelect?.(e)\n },\n onPointerMove: e => {\n if (booleanify(ariaDisabled)) {\n e.preventDefault()\n return\n }\n\n onPointerMove?.(e)\n },\n onClick: e => {\n if (booleanify(ariaDisabled)) {\n e.preventDefault()\n return\n }\n\n onClick?.(e)\n },\n }),\n [ariaDisabled, onKeyDown, onSelect, onPointerMove, onClick, closeOnCheck]\n )\n","import React, { createContext, useContext, useState, useCallback } from 'react'\nimport type { PropsWithChildren } from 'react'\nimport { addPropsToChildren } from '@mirohq/design-system-utils'\n\ninterface ItemContext {\n leftSlotMount: () => void\n leftSlotDestroy: () => void\n}\n\nconst Context = createContext<ItemContext>({\n leftSlotMount: () => {},\n leftSlotDestroy: () => {},\n})\n\nexport const ItemProvider = ({\n children,\n}: PropsWithChildren<{}>): JSX.Element => {\n const [hasSlot, setHasSlot] = useState(false)\n\n const leftSlotMount = useCallback(() => {\n setHasSlot(true)\n }, [])\n\n const leftSlotDestroy = useCallback(() => {\n setHasSlot(false)\n }, [])\n\n const formattedChildren = hasSlot\n ? children\n : addPropsToChildren(children, () => true, {\n 'data-no-left-slot': '',\n })\n\n return (\n <Context.Provider\n value={{\n leftSlotMount,\n leftSlotDestroy,\n }}\n >\n {formattedChildren}\n </Context.Provider>\n )\n}\n\nexport const useItem = (): ItemContext => useContext(Context)\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport { IconCheckMark, IconProhibit } from '@mirohq/design-system-icons'\nimport { booleanify } from '@mirohq/design-system-utils'\n\nimport { StyledCheckboxItem, StyledIndicator } from './checkbox-item.styled'\nimport type { StyledCheckboxItemProps } from './checkbox-item.styled'\nimport { RightSlot } from './right-slot'\nimport { useAriaDisabled } from '../hooks/use-aria-disabled'\nimport { ItemProvider } from '../hooks/use-item'\n\nexport interface CheckboxItemProps\n extends Omit<StyledCheckboxItemProps, 'onChange'> {\n /**\n * The checked state of the item.\n */\n checked: boolean\n\n /**\n * Event handler called when the checked state changes.\n */\n onChange: (checked: boolean) => void\n\n /**\n * When true, prevents the user from interacting with the item.\n */\n disabled?: boolean\n\n /**\n * Event handler called when the user selects an item (via mouse of keyboard).\n */\n onSelect?: (event: Event) => void\n\n /**\n * Closes the dropdown when the user selects an item.\n */\n closeOnSelect?: boolean\n\n /**\n * Optional text used for typeahead purposes. By default the typeahead behavior will use the .textContent of the item.\n * Use this when the content is complex, or you have non-textual content inside.\n */\n textValue?: string\n}\n\nexport const CheckboxItem = React.forwardRef<\n ElementRef<typeof StyledCheckboxItem>,\n CheckboxItemProps\n>(\n (\n {\n children,\n checked,\n onChange,\n disabled,\n closeOnSelect = false,\n ...restProps\n },\n forwardRef\n ) => {\n const ariaDisabledProps = useAriaDisabled(restProps, closeOnSelect)\n const { 'aria-disabled': ariaDisabled } = ariaDisabledProps\n\n return (\n <ItemProvider>\n <StyledCheckboxItem\n {...restProps}\n {...ariaDisabledProps}\n ref={forwardRef}\n checked={checked}\n disabled={disabled}\n onCheckedChange={onChange}\n >\n {children}\n <RightSlot>\n <StyledIndicator>\n {(disabled === true || booleanify(ariaDisabled)) && !checked && (\n <IconProhibit\n weight='thin'\n css={{ square: '$3', display: 'block' }}\n />\n )}\n {checked && (\n <IconCheckMark css={{ square: '$3', display: 'block' }} />\n )}\n </StyledIndicator>\n </RightSlot>\n </StyledCheckboxItem>\n </ItemProvider>\n )\n }\n)\n","import { theme } from '@mirohq/design-system-stitches'\nimport { animations } from '@mirohq/design-system-styles'\n\nexport const CONTENT_GAP = '$50'\nexport const CONTENT_GUTTER = parseInt(theme.space[150])\nexport const CONTENT_OFFSET = parseInt(theme.space[50])\nexport const CONTENT_BORDER_FOCUS_ITEM = '2px'\nexport const CONTENT_PADDING = {\n small: '$50 $150',\n medium: '$150',\n large: '$150 $300',\n}\n\nexport const contentDefaults = {\n maxWidth: '$125',\n backgroundColor: '$background-neutrals-container',\n borderRadius: '$50',\n boxShadow: '$50',\n\n '& [data-radix-scroll-area-viewport]': {\n padding: `${CONTENT_BORDER_FOCUS_ITEM} $50 ${CONTENT_BORDER_FOCUS_ITEM} ${CONTENT_BORDER_FOCUS_ITEM}`,\n boxSizing: 'border-box',\n },\n\n '@media (prefers-reduced-motion: no-preference)': {\n animationDuration: '150ms',\n animationTimingFunction: 'cubic-bezier(0.25, 0.5, 0.5, 0.9)',\n willChange: 'transform, opacity',\n '&[data-state=\"open\"]': { animationName: animations.fadeInScaled },\n '&[data-state=\"closed\"]': { animationName: animations.fadeOutScaled },\n '&[data-side=\"top\"]': {\n '&[data-align=\"start\"]': { transformOrigin: 'bottom left' },\n '&[data-align=\"center\"]': { transformOrigin: 'bottom center' },\n '&[data-align=\"end\"]': { transformOrigin: 'bottom right' },\n },\n '&[data-side=\"right\"]': {\n '&[data-align=\"start\"]': { transformOrigin: 'top left' },\n '&[data-align=\"center\"]': { transformOrigin: 'center left' },\n '&[data-align=\"end\"]': { transformOrigin: 'bottom left' },\n },\n '&[data-side=\"bottom\"]': {\n '&[data-align=\"start\"]': { transformOrigin: 'top left' },\n '&[data-align=\"center\"]': { transformOrigin: 'top center' },\n '&[data-align=\"end\"]': { transformOrigin: 'top right' },\n },\n '&[data-side=\"left\"]': {\n '&[data-align=\"start\"]': { transformOrigin: 'top right' },\n '&[data-align=\"center\"]': { transformOrigin: 'center right' },\n '&[data-align=\"end\"]': { transformOrigin: 'bottom right' },\n },\n },\n position: 'relative',\n zIndex: '$dropdownMenu',\n}\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\n\nimport {\n contentDefaults,\n CONTENT_PADDING,\n CONTENT_GAP,\n} from '../styles/content'\n\nexport const StyledItemsContainer = styled('div', {\n display: 'grid',\n gap: CONTENT_GAP,\n})\n\nexport const StyledContent = styled(RadixDropdownMenu.Content, {\n ...contentDefaults,\n variants: {\n containerSpacing: {\n small: {\n '&, [role=\"menu\"]': {\n padding: CONTENT_PADDING.small,\n },\n },\n medium: {\n '&, [role=\"menu\"]': {\n padding: CONTENT_PADDING.medium,\n },\n },\n large: {\n '&, [role=\"menu\"]': {\n padding: CONTENT_PADDING.large,\n },\n },\n },\n },\n})\n\nexport type StyledContentProps = StrictComponentProps<typeof StyledContent>\n","import React, { useCallback } from 'react'\nimport { ScrollArea } from '@mirohq/design-system-scroll-area'\nimport type { CSS } from '@mirohq/design-system-stitches'\nimport type { CSSProperties } from '@stitches/react'\n\nimport { CONTENT_PADDING, CONTENT_BORDER_FOCUS_ITEM } from '../styles/content'\nimport type { ContainerSpacing, Overflow } from '../types'\n\ninterface ScrollableContentProps {\n children?: React.ReactNode\n containerSpacing: ContainerSpacing\n maxHeight?: CSSProperties['maxHeight']\n overflow: Overflow\n}\n\nexport const ScrollableContent = ({\n children,\n maxHeight,\n overflow,\n containerSpacing,\n}: ScrollableContentProps): JSX.Element => {\n const getOverflowMaxHeight = useCallback((): CSS => {\n const [top, , bottom] = CONTENT_PADDING[containerSpacing]\n .split(' ')\n .map(value => value.replace('$', ''))\n\n const topBottom =\n top !== undefined && bottom !== undefined\n ? `var(--space-${top}) + var(--space-${bottom})`\n : `var(--space-${top}) + var(--space-${top})`\n\n const overflowMaxHeigh =\n overflow === 'auto'\n ? `calc(var(--radix-dropdown-menu-content-available-height) - (${topBottom}))`\n : 'auto'\n\n const newMaxHeight = `calc(${maxHeight} - (${topBottom}))`\n\n return {\n maxHeight: maxHeight === undefined ? overflowMaxHeigh : newMaxHeight,\n }\n }, [maxHeight, overflow, containerSpacing])\n\n if (overflow === 'auto') {\n return (\n <ScrollArea\n css={{ margin: `-${CONTENT_BORDER_FOCUS_ITEM}` }}\n type='always'\n >\n <ScrollArea.Viewport css={{ ...getOverflowMaxHeight() }}>\n {children}\n </ScrollArea.Viewport>\n <ScrollArea.Scrollbar orientation='vertical'>\n <ScrollArea.Thumb />\n </ScrollArea.Scrollbar>\n </ScrollArea>\n )\n }\n\n return <>{children}</>\n}\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport type { CSSProperties } from '@stitches/react'\n\nimport { StyledContent, StyledItemsContainer } from './content.styled'\nimport { CONTENT_OFFSET } from '../styles/content'\nimport { ContentProvider } from '../hooks/use-content'\nimport { ScrollableContent } from './scrollable-content'\nimport type { StyledContentProps } from './content.styled'\nimport type {\n PointerDownOutsideEvent,\n FocusOutsideEvent,\n Side,\n Align,\n StickyBehavior,\n ContainerSpacing,\n Overflow,\n} from '../types'\n\nexport interface ContentProps extends StyledContentProps {\n /**\n * Whether keyboard navigation should loop around\n */\n loop?: boolean\n\n /**\n * Event handler called when focus moves to the trigger after closing. It can\n * be prevented by calling event.preventDefault. This prop is ignored within\n * submenus.\n */\n onCloseAutoFocus?: (event: Event) => 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 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 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 * The preferred side of the trigger to render against when open. Will be\n * reversed when collisions occur and avoidCollisions is enabled. This prop is\n * ignored within submenus.\n */\n side?: Side\n\n /**\n * The distance in pixels from the trigger\n */\n sideOffset?: number\n\n /**\n * The preferred alignment against the trigger. May change when collisions\n * occur. This prop is ignored within submenus.\n */\n align?: Align\n\n /**\n * An offset in pixels from the \"start\" or \"end\" alignment options\n */\n alignOffset?: number\n\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 distance in pixels from window edges where collision detection should\n * occur.\n */\n collisionPadding?: number\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?: StickyBehavior\n\n /**\n * Used to force mounting when more control is needed. Useful when controlling\n * animation with React animation libraries. It inherits from\n * DropdownMenu.Portal.\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 * Whether to hide the content when the trigger becomes fully occluded.\n */\n hideWhenDetached?: boolean\n\n /**\n * The spacing around container\n */\n containerSpacing?: ContainerSpacing\n\n /**\n * The max height for the content.\n */\n maxHeight?: CSSProperties['maxHeight']\n\n /**\n * Setting overflow as \"visible\" means that the content can extend beyond the\n * its collision boundary without any clipping or scrolling being\n * applied.\n * When set to \"auto,\" a scrollbar is added if the content exceeds its\n * boundaries. If no maxHeight is defined, it will be automatically adjusted\n * to fit the remaining space between the trigger and the boundary edge.\n */\n overflow?: Overflow\n}\n\nexport const Content = React.forwardRef<\n ElementRef<typeof StyledContent>,\n ContentProps\n>(\n (\n {\n loop = false,\n side = 'bottom',\n sideOffset = CONTENT_OFFSET,\n align = 'center',\n alignOffset = 0,\n collisionPadding = 0,\n avoidCollisions = true,\n sticky = 'partial',\n hideWhenDetached = false,\n containerSpacing = 'medium',\n overflow = 'visible',\n maxHeight,\n children,\n ...restProps\n },\n forwardRef\n ) => (\n <ContentProvider containerSpacing={containerSpacing}>\n <StyledContent\n {...restProps}\n ref={forwardRef}\n loop={loop}\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n avoidCollisions={avoidCollisions}\n collisionPadding={collisionPadding}\n sticky={sticky}\n hideWhenDetached={hideWhenDetached}\n containerSpacing={containerSpacing}\n >\n <ScrollableContent {...{ containerSpacing, maxHeight, overflow }}>\n <StyledItemsContainer>{children}</StyledItemsContainer>\n </ScrollableContent>\n </StyledContent>\n </ContentProvider>\n )\n)\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\n\nimport { itemDefaults } from '../styles/item'\n\nexport const StyledItem = styled(RadixDropdownMenu.Item, {\n ...itemDefaults,\n variants: {\n // This is a hack for the :has() selector\n // Remove it after Firefox implements it\n hasRightSlot: {\n true: {\n paddingRight: '$600',\n },\n },\n },\n})\n\nexport type StyledItemProps = StrictComponentProps<typeof StyledItem>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledItem } from './item.styled'\nimport type { StyledItemProps } from './item.styled'\nimport { useAriaDisabled } from '../hooks/use-aria-disabled'\nimport { ItemProvider } from '../hooks/use-item'\n\nexport interface ItemProps extends StyledItemProps {\n /**\n * When true, prevents the user from interacting with the item\n */\n disabled?: boolean\n\n /**\n * Event handler called when the user selects an item (via mouse of keyboard). Calling event.preventDefault in this handler will prevent the dropdown menu from closing when selecting that item\n */\n onSelect?: (event: Event) => void\n\n /**\n * Optional text used for typeahead purposes. By default the typeahead behavior will use the .textContent of the item. Use this when the content is complex, or you have non-textual content inside\n */\n textValue?: string\n}\n\nexport const Item = React.forwardRef<ElementRef<typeof StyledItem>, ItemProps>(\n ({ disabled = false, ...restProps }, forwardRef) => {\n const ariaDisabledProps = useAriaDisabled(restProps)\n\n return (\n <ItemProvider>\n <StyledItem\n {...restProps}\n {...ariaDisabledProps}\n disabled={disabled}\n ref={forwardRef}\n />\n </ItemProvider>\n )\n }\n)\n","import React from 'react'\nimport type { ElementRef, AnchorHTMLAttributes } from 'react'\n\nimport { Item } from './item'\nimport type { ItemProps } from './item'\nimport { useAriaDisabled } from '../hooks/use-aria-disabled'\n\ntype ItemPropsWithAnchor = ItemProps & AnchorHTMLAttributes<typeof Item>\nexport interface LinkItemProps extends ItemPropsWithAnchor {}\n\nexport const LinkItem = React.forwardRef<\n ElementRef<typeof Item>,\n LinkItemProps\n>(({ children, href, ...restProps }, forwardRef) => {\n const ariaDisabledProps = useAriaDisabled(restProps)\n return (\n <Item asChild ref={forwardRef} {...restProps} {...ariaDisabledProps}>\n <a href={href}>{children}</a>\n </Item>\n )\n})\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\n\nimport { CONTENT_GAP } from '../styles/content'\n\nexport const StyledRadioGroup = styled(RadixDropdownMenu.RadioGroup, {\n display: 'grid',\n gap: CONTENT_GAP,\n})\n\nexport type StyledRadioGroupProps = StrictComponentProps<\n typeof StyledRadioGroup\n>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledRadioGroup } from './radio-group.styled'\nimport type { StyledRadioGroupProps } from './radio-group.styled'\n\nexport interface RadioGroupProps\n extends Omit<StyledRadioGroupProps, 'onChange'> {\n /**\n * The value of the selected item in the group\n */\n value: string\n\n /**\n * Event handler called when the selected radio changes\n */\n onChange: (value: string) => void\n}\n\nexport const RadioGroup = React.forwardRef<\n ElementRef<typeof StyledRadioGroup>,\n RadioGroupProps\n>((props, forwardRef) => {\n const { onChange, ...restProps } = props\n\n return (\n <StyledRadioGroup\n {...restProps}\n ref={forwardRef}\n onValueChange={onChange}\n />\n )\n})\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport { IconProhibit } from '@mirohq/design-system-icons'\n\nimport { itemDefaults } from '../styles/item'\n\nexport const StyledRadioContainer = styled(Primitive.div, {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '$4',\n height: '$4',\n boxSizing: 'border-box',\n border: '1px solid $border-neutrals',\n borderRadius: '$half',\n})\n\nexport const StyledPill = styled(Primitive.div, {\n display: 'none',\n width: '$2',\n height: '$2',\n borderRadius: '$half',\n})\n\nexport const StyledProhibited = styled(IconProhibit, {\n display: 'none',\n width: '$3 !important',\n})\n\nexport const StyledRadioItem = styled(RadixDropdownMenu.RadioItem, {\n ...itemDefaults,\n [`&[data-state=\"checked\"] ${StyledRadioContainer}`]: {\n color: '$icon-primary',\n borderColor: '$border-primary',\n\n [`& ${StyledPill}`]: {\n display: 'block',\n backgroundColor: '$background-primary-prominent-selected',\n },\n },\n\n [`&:hover:not([aria-disabled=\"true\"]) ${StyledRadioContainer}`]: {\n borderColor: '$border-primary-hover',\n\n [`& ${StyledPill}`]: {\n backgroundColor: '$background-primary-prominent-hover',\n },\n },\n\n [`\n &[aria-disabled=\"true\"] ${StyledRadioContainer},\n &[data-disabled] ${StyledRadioContainer}\n `]: {\n color: '$icon-neutrals-disabled',\n borderColor: '$border-neutrals-disabled',\n\n [`& ${StyledPill}`]: {\n backgroundColor: '$icon-neutrals-disabled',\n },\n },\n '&[data-state=\"unchecked\"]': {\n [`\n &[aria-disabled=\"true\"] ${StyledProhibited},\n &[data-disabled] ${StyledProhibited}\n `]: {\n display: 'flex',\n },\n },\n})\n\nexport type StyledRadioItemProps = StrictComponentProps<typeof StyledRadioItem>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport {\n StyledPill,\n StyledProhibited,\n StyledRadioContainer,\n StyledRadioItem,\n} from './radio-item.styled'\nimport type { StyledRadioItemProps } from './radio-item.styled'\nimport { RightSlot } from './right-slot'\nimport { useAriaDisabled } from '../hooks/use-aria-disabled'\nimport { ItemProvider } from '../hooks/use-item'\n\nexport interface RadioItemProps extends StyledRadioItemProps {\n /**\n * The unique value of the item.\n */\n value: string\n\n /**\n * When true, prevents the user from interacting with the item.\n */\n disabled?: boolean\n\n /**\n * Event handler called when the user selects an item (via mouse of keyboard).\n */\n onSelect?: (event: Event) => void\n\n /**\n * Closes the dropdown when the user selects an item.\n */\n closeOnSelect?: boolean\n\n /**\n * Optional text used for typeahead purposes. By default the typeahead behavior will use the .textContent of the item.\n * Use this when the content is complex, or you have non-textual content inside.\n */\n textValue?: string\n}\n\nexport const RadioItem = React.forwardRef<\n ElementRef<typeof StyledRadioItem>,\n RadioItemProps\n>(({ disabled, children, closeOnSelect = false, ...restProps }, forwardRef) => {\n const ariaDisabledProps = useAriaDisabled(restProps, closeOnSelect)\n return (\n <ItemProvider>\n <StyledRadioItem\n {...restProps}\n {...ariaDisabledProps}\n disabled={disabled}\n ref={forwardRef}\n >\n {children}\n <RightSlot>\n <StyledRadioContainer>\n <StyledPill />\n <StyledProhibited weight='thin' />\n </StyledRadioContainer>\n </RightSlot>\n </StyledRadioItem>\n </ItemProvider>\n )\n})\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\n\nexport const StyledSeparator = styled(RadixDropdownMenu.Separator, {\n borderTop: '1px solid $border-neutrals-subtle',\n})\n\nexport type StyledSeparatorProps = StrictComponentProps<typeof StyledSeparator>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledSeparator } from './separator.styled'\nimport type { StyledSeparatorProps } from './separator.styled'\n\nexport interface SeparatorProps extends StyledSeparatorProps {}\n\nexport const Separator = React.forwardRef<\n ElementRef<typeof StyledSeparator>,\n SeparatorProps\n>((props, forwardRef) => <StyledSeparator {...props} ref={forwardRef} />)\n","import type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { styled } from '@mirohq/design-system-stitches'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\nimport { styles } from '@mirohq/design-system-base-switch'\nimport { Primitive } from '@mirohq/design-system-primitive'\n\nimport { itemDefaults } from '../styles/item'\n\nexport const StyledSwitch = styled(Primitive.span, {\n ...styles.default,\n width: '$7',\n height: '$4',\n})\n\nexport const StyledSwitchItem = styled(RadixDropdownMenu.CheckboxItem, {\n ...itemDefaults,\n\n [`&[data-state=\"checked\"] ${StyledSwitch}`]: styles.checked,\n [`&[data-state=\"checked\"]:hover:not([aria-disabled=\"true\"]) ${StyledSwitch}`]:\n styles.checkedHovered,\n\n [`&:hover:not([aria-disabled=\"true\"]) ${StyledSwitch}`]: styles.hovered,\n [`\n &[aria-disabled=\"true\"] ${StyledSwitch},\n &[data-disabled] ${StyledSwitch}\n `]: styles.disabled,\n})\n\nexport type StyledSwitchItemProps = StrictComponentProps<\n typeof StyledSwitchItem\n>\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport { Thumb } from '@mirohq/design-system-base-switch'\n\nimport { RightSlot } from './right-slot'\nimport type { StyledSwitchItemProps } from './switch-item.styled'\nimport { StyledSwitch, StyledSwitchItem } from './switch-item.styled'\nimport { useAriaDisabled } from '../hooks/use-aria-disabled'\nimport { ItemProvider } from '../hooks/use-item'\n\nexport interface SwitchItemProps\n extends Omit<StyledSwitchItemProps, 'onChange'> {\n /**\n * The checked state of the item.\n */\n checked: boolean\n\n /**\n * Event handler called when the checked state changes.\n */\n onChange: (checked: boolean) => void\n\n /**\n * When true, prevents the user from interacting with the item.\n */\n disabled?: boolean\n\n /**\n * Event handler called when the user selects an item (via mouse of keyboard).\n */\n onSelect?: (event: Event) => void\n\n /**\n * Closes the dropdown when the user selects an item.\n */\n closeOnSelect?: boolean\n\n /**\n * Optional text used for typeahead purposes. By default the typeahead behavior will use the .textContent of the item.\n * Use this when the content is complex, or you have non-textual content inside.\n */\n textValue?: string\n}\n\nexport const SwitchItem = React.forwardRef<\n ElementRef<typeof StyledSwitchItem>,\n SwitchItemProps\n>(\n (\n {\n disabled,\n checked,\n onChange,\n children,\n closeOnSelect = false,\n ...restProps\n },\n forwardRef\n ) => {\n const ariaDisabledProps = useAriaDisabled(restProps, closeOnSelect)\n\n return (\n <ItemProvider>\n <StyledSwitchItem\n {...restProps}\n {...ariaDisabledProps}\n disabled={disabled}\n checked={checked}\n onCheckedChange={onChange}\n ref={forwardRef}\n >\n {children}\n <RightSlot>\n <StyledSwitch>\n <Thumb />\n </StyledSwitch>\n </RightSlot>\n </StyledSwitchItem>\n </ItemProvider>\n )\n }\n)\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\nimport { focus } from '@mirohq/design-system-styles'\n\nexport const StyledTrigger = styled(RadixDropdownMenu.Trigger, {\n variants: {\n unstyled: {\n true: {\n all: 'unset',\n boxSizing: 'border-box',\n cursor: 'pointer',\n ...focus.css({\n boxShadow: '$focus-small',\n outline: '1px solid transparent',\n }),\n },\n false: {\n cursor: 'pointer',\n },\n },\n },\n})\n\nexport type StyledTriggerProps = StrictComponentProps<typeof StyledTrigger>\n","import React, { useRef } from 'react'\nimport { isVirtualClick } from '@react-aria/utils'\nimport { mergeRefs } from '@mirohq/design-system-utils'\nimport type { MouseEventHandler, ElementRef } from 'react'\n\nimport { StyledTrigger } from './trigger.styled'\nimport type { StyledTriggerProps } from './trigger.styled'\n\nexport interface TriggerProps extends StyledTriggerProps {}\n\nexport const Trigger = React.forwardRef<\n ElementRef<typeof StyledTrigger>,\n TriggerProps\n>(({ asChild = false, onClick, ...restProps }, forwardRef) => {\n const ref = useRef<HTMLButtonElement>(null)\n\n /**\n * It forces the trigger of pointerDow on the Dropdown.Trigger.\n * This had to be done because when using Ctrl + Option + Space on safari it\n * triggers onClick, and Radix only listens to onPointerDown.\n * https://github.com/radix-ui/primitives/blob/bc28fb42b81e4f95ce41eef3ed683ea0dd823dd8/packages/react/dropdown-menu/src/DropdownMenu.tsx#L117\n */\n const handleVirtualClick: MouseEventHandler<Element> = e => {\n if (e?.nativeEvent === undefined) {\n console.error(\n 'DropdownMenu.Trigger onClick expected a MouseEvent but got different one. It usually happens due to a element used asChild with a different onClick interface.\\n' +\n `Event: ${JSON.stringify(e, null, 2)}`\n )\n return\n }\n\n const nativeEvent = e.nativeEvent as any\n\n if (nativeEvent.mozInputSource === undefined) {\n nativeEvent.mozInputSource = null\n }\n\n if (isVirtualClick(e.nativeEvent) && ref.current !== null) {\n const pointerDownEvent = new MouseEvent('pointerdown', {\n bubbles: true,\n cancelable: true,\n })\n\n ref.current?.dispatchEvent(pointerDownEvent)\n }\n }\n return (\n <StyledTrigger\n {...restProps}\n onClick={e => {\n handleVirtualClick(e)\n onClick?.(e)\n }}\n ref={mergeRefs([ref, forwardRef])}\n unstyled={!asChild}\n asChild={asChild}\n />\n )\n})\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\nimport { Primitive } from '@mirohq/design-system-primitive'\n\nimport { itemDefaults } from '../styles/item'\n\nexport const StyledIconContainer = styled(Primitive.span, {\n color: '$icon-neutrals-with-text',\n display: 'flex',\n alignItems: 'center',\n})\n\nexport const StyledSubTrigger = styled(RadixDropdownMenu.SubTrigger, {\n ...itemDefaults,\n '&[data-state=\"open\"]': itemDefaults['&:hover:not([aria-disabled=\"true\"])'],\n\n [`&[data-state=\"open\"] ${StyledIconContainer}, &:hover:not([aria-disabled=\"true\"]) ${StyledIconContainer}`]:\n {\n color: '$icon-primary-hover',\n },\n})\n\nexport type StyledSubTriggerProps = StrictComponentProps<\n typeof StyledSubTrigger\n>\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport { IconChevronRight } from '@mirohq/design-system-icons'\n\nimport { StyledIconContainer, StyledSubTrigger } from './sub-trigger.styled'\nimport type { StyledSubTriggerProps } from './sub-trigger.styled'\nimport { RightSlot } from './right-slot'\nimport { useAriaDisabled } from '../hooks/use-aria-disabled'\n\nexport interface SubTriggerProps extends StyledSubTriggerProps {\n /**\n * Prevents the user from interacting with the switch\n */\n disabled?: boolean\n\n /**\n * Optional text used for type ahead purposes. By default the type ahead\n * behavior will use the .textContent of the item. Use this when the content\n * is complex, or you have.\n */\n textValue?: string\n}\n\nexport const SubTrigger = React.forwardRef<\n ElementRef<typeof StyledSubTrigger>,\n StyledSubTriggerProps\n>(({ children, disabled = false, ...restProps }, forwardRef) => {\n const { onSelect, ...ariaDisabledProps } = useAriaDisabled({\n onKeyDown: restProps.onKeyDown,\n 'aria-disabled': restProps['aria-disabled'],\n })\n\n return (\n <StyledSubTrigger\n {...restProps}\n {...ariaDisabledProps}\n disabled={disabled}\n ref={forwardRef}\n >\n {children}\n <RightSlot>\n <StyledIconContainer\n data-testid={\n process.env.NODE_ENV === 'test' ? 'submenu-arrow-icon' : undefined\n }\n >\n <IconChevronRight size='small' weight='thin' />\n </StyledIconContainer>\n </RightSlot>\n </StyledSubTrigger>\n )\n})\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\n\nimport { contentDefaults } from '../styles/content'\n\nexport const StyledSubContent = styled(\n RadixDropdownMenu.SubContent,\n contentDefaults\n)\n\nexport type StyledSubContentProps = StrictComponentProps<\n typeof StyledSubContent\n>\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport type { CSSProperties } from '@stitches/react'\n\nimport { StyledSubContent } from './sub-content.styled'\nimport { CONTENT_GUTTER, CONTENT_OFFSET } from '../styles/content'\nimport { ContentProvider, useContent } from '../hooks/use-content'\nimport { ScrollableContent } from './scrollable-content'\nimport type { StyledSubContentProps } from './sub-content.styled'\nimport { StyledItemsContainer } from './content.styled'\nimport type {\n PointerDownOutsideEvent,\n FocusOutsideEvent,\n StickyBehavior,\n Overflow,\n} from '../types'\n\nexport interface SubContentProps extends StyledSubContentProps {\n /**\n * Whether keyboard navigation should loop around\n * @default false\n */\n loop?: boolean\n\n /**\n * Event handler called when focus moves to the trigger after closing. It can\n * be prevented by calling event.preventDefault. This prop is ignored within\n * submenus.\n */\n onCloseAutoFocus?: (event: Event) => 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 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 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 * 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 distance in pixels from the trigger.\n */\n sideOffset?: number\n\n /**\n * An offset in pixels from the \"start\" or \"end\" alignment options.\n */\n alignOffset?: number\n\n /**\n * When true, overrides the side andalign preferences to prevent collisions\n * with window edges.\n * @default true\n */\n avoidCollisions?: boolean\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 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 * @default partial\n */\n sticky?: StickyBehavior\n\n /**\n * Whether to hide the content when the trigger becomes fully occluded.\n * @default false\n */\n hideWhenDetached?: boolean\n\n /**\n * The max height for the subContent.\n */\n maxHeight?: CSSProperties['maxHeight']\n\n /**\n * Setting overflow as \"visible\" means that the content can extend beyond the\n * its collision boundary without any clipping or scrolling being\n * applied.\n * When set to \"auto,\" a scrollbar is added if the content exceeds its\n * boundaries. If no maxHeight is defined, it will be automatically adjusted\n * to fit the remaining space between the trigger and the boundary edge.\n */\n overflow?: Overflow\n}\n\n// without CONTENT_GUTTER submenu would overlap the menu\nconst SIDE_OFFSET = CONTENT_GUTTER + CONTENT_OFFSET\n\nexport const SubContent = React.forwardRef<\n ElementRef<typeof StyledSubContent>,\n SubContentProps\n>(\n (\n {\n sideOffset = SIDE_OFFSET,\n alignOffset = -CONTENT_GUTTER,\n collisionPadding = 0,\n loop = false,\n hideWhenDetached = true,\n sticky = 'partial',\n overflow = 'visible',\n maxHeight,\n children,\n ...restProps\n },\n forwardRef\n ) => {\n /* A new ContentProvider instance is created per Content and SubContent,\n using the context from the parent is necessary to preserve this value. */\n const { containerSpacing } = useContent()\n return (\n <ContentProvider containerSpacing={containerSpacing}>\n <StyledSubContent\n {...restProps}\n ref={forwardRef}\n sideOffset={sideOffset}\n alignOffset={alignOffset}\n collisionPadding={collisionPadding}\n loop={loop}\n hideWhenDetached={hideWhenDetached}\n sticky={sticky}\n >\n <ScrollableContent {...{ containerSpacing, maxHeight, overflow }}>\n <StyledItemsContainer>{children}</StyledItemsContainer>\n </ScrollableContent>\n </StyledSubContent>\n </ContentProvider>\n )\n }\n)\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\n\nexport const StyledSub = styled(RadixDropdownMenu.Sub, {})\n\nexport type StyledSubProps = StrictComponentProps<typeof StyledSub>\n","import React, { useState } from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledSub } from './sub.styled'\nimport type { StyledSubProps } from './sub.styled'\n\nexport interface SubProps extends StyledSubProps {\n /**\n * The open state of the submenu when it is initially rendered. Use when you\n * do not need to control its open state.\n */\n defaultOpen?: boolean\n\n /**\n * The controlled open state of the submenu. Must be used in conjunction with\n * onOpenChange.\n */\n open?: boolean\n\n /**\n * Event handler called when the submenu opens.\n */\n onOpen?: () => void\n\n /**\n * Event handler called when the submenu closes.\n */\n onClose?: () => void\n}\n\nexport const Sub = React.forwardRef<ElementRef<typeof StyledSub>, SubProps>(\n ({ defaultOpen, onOpen, onClose, open, ...restProps }, forwardRef) => {\n const [openState, setOpenState] = useState(defaultOpen)\n return (\n <StyledSub\n {...restProps}\n open={open ?? openState}\n onOpenChange={newOpen => {\n if (open == null) {\n setOpenState(newOpen)\n }\n\n newOpen ? onOpen?.() : onClose?.()\n }}\n ref={forwardRef}\n />\n )\n }\n)\n","import React from 'react'\nimport type { DropdownMenuPortalProps } from '@radix-ui/react-dropdown-menu'\nimport { Portal as RadixPortal } from '@radix-ui/react-dropdown-menu'\n\nexport interface PortalProps extends DropdownMenuPortalProps {\n /**\n * Used to force mounting when more control is needed. Useful when controlling\n * animation with React animation libraries. If used on this part, it will be\n * inherited by DropdownMenu.Content and DropdownMenu.SubContent respectively.\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 type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { styles as baseIconStyles } from '@mirohq/design-system-base-icon'\n\nimport { LeftSlot } from './left-slot'\n\nexport const StyledIconSlot = styled(LeftSlot, {\n square: '$5',\n\n '& svg:not([data-icon-component]), & img:not([data-icon-component])': {\n ...baseIconStyles.size.small,\n ...baseIconStyles.weight.thin,\n },\n})\n\nexport type StyledIconSlotProps = StrictComponentProps<typeof StyledIconSlot>\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport { useLayoutEffect } from '@mirohq/design-system-use-layout-effect'\nimport type { IconSizes, IconWeights } from '@mirohq/design-system-base-icon'\nimport { isIconComponent } from '@mirohq/design-system-base-icon'\nimport { addPropsToChildren } from '@mirohq/design-system-utils'\nimport { Primitive } from '@mirohq/design-system-primitive'\n\nimport type { StyledIconSlotProps } from './icon-slot.styled'\nimport { StyledIconSlot } from './icon-slot.styled'\nimport { useItem } from '../hooks/use-item'\n\nexport type IconSlotProps = Omit<StyledIconSlotProps, 'custom'>\n\ninterface IconComponentProps {\n 'data-icon-component': ''\n size: IconSizes\n weight: IconWeights\n}\n\nexport const IconSlot = React.forwardRef<\n ElementRef<typeof StyledIconSlot>,\n IconSlotProps\n>(({ children, ...restProps }, forwardRef) => {\n const { leftSlotMount, leftSlotDestroy } = useItem()\n\n const formattedChildren = addPropsToChildren<IconComponentProps>(\n children,\n isIconComponent,\n {\n 'data-icon-component': '',\n size: 'small',\n weight: 'thin',\n }\n )\n\n useLayoutEffect(() => {\n leftSlotMount()\n return () => leftSlotDestroy()\n }, [leftSlotMount, leftSlotDestroy])\n\n return (\n <StyledIconSlot ref={forwardRef} {...restProps}>\n <Primitive.svg asChild aria-hidden>\n {formattedChildren}\n </Primitive.svg>\n </StyledIconSlot>\n )\n})\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport { useLayoutEffect } from '@mirohq/design-system-use-layout-effect'\n\nimport { useItem } from '../hooks/use-item'\nimport type { StyledIllustrationSlotProps } from './illustration-slot.styled'\nimport { StyledIllustrationSlot } from './illustration-slot.styled'\n\nexport const IllustrationSlot = React.forwardRef<\n ElementRef<typeof StyledIllustrationSlot>,\n StyledIllustrationSlotProps\n>((props, forwardRef) => {\n const { leftSlotMount, leftSlotDestroy } = useItem()\n\n useLayoutEffect(() => {\n leftSlotMount()\n return () => leftSlotDestroy()\n }, [leftSlotMount, leftSlotDestroy])\n\n return <StyledIllustrationSlot ref={forwardRef} {...props} />\n})\n","import React, { useState } from 'react'\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'\n\nimport { CheckboxItem } from './partials/checkbox-item'\nimport { Content } from './partials/content'\nimport { Item } from './partials/item'\nimport { LinkItem } from './partials/link-item'\nimport { RadioGroup } from './partials/radio-group'\nimport { RadioItem } from './partials/radio-item'\nimport { Separator } from './partials/separator'\nimport { SwitchItem } from './partials/switch-item'\nimport { Trigger } from './partials/trigger'\nimport { SubTrigger } from './partials/sub-trigger'\nimport { SubContent } from './partials/sub-content'\nimport { Sub } from './partials/sub'\nimport { Portal } from './partials/portal'\nimport { ItemDescription } from './partials/item-description'\nimport { IconSlot } from './partials/icon-slot'\nimport { HotkeySlot } from './partials/hotkey-slot'\nimport { IllustrationSlot } from './partials/illustration-slot'\n\nexport interface DropdownMenuProps {\n /**\n * The open state of the dropdown menu when it is initially rendered. Use when\n * you do not need to control its open state.\n */\n defaultOpen?: boolean\n\n /**\n * The reading direction of submenus when applicable. If omitted, assumes LTR\n * (left-to-right) reading mode.\n */\n direction?: 'ltr' | 'rtl'\n\n /**\n * The current dropdown open state.\n */\n open?: boolean\n\n /**\n * Event handler called when the dropdown opens.\n */\n onOpen?: () => void\n\n /**\n * Event handler called when the dropdown closes.\n */\n onClose?: () => void\n\n /**\n * Defines whether the interaction with outside elements will be disabled and\n * only menu content will be visible to screen readers. This prop is ignored\n * within submenus.\n */\n interactOutside?: boolean\n\n /**\n * The content\n */\n children: React.ReactNode\n}\n\nexport const DropdownMenu: React.FC<DropdownMenuProps> & Partials = ({\n defaultOpen = false,\n direction = 'ltr',\n interactOutside = false,\n open,\n onOpen,\n onClose,\n ...restProps\n}) => {\n const [openState, setOpenState] = useState(defaultOpen)\n\n return (\n <RadixDropdownMenu.Root\n {...restProps}\n dir={direction}\n modal={interactOutside}\n open={open ?? openState}\n onOpenChange={newOpen => {\n if (open == null) {\n setOpenState(newOpen)\n }\n\n newOpen ? onOpen?.() : onClose?.()\n }}\n />\n )\n}\n\n// Partials\n// -----------------------------------------------------------------------------\n\ninterface Partials {\n CheckboxItem: typeof CheckboxItem\n Content: typeof Content\n HotkeySlot: typeof HotkeySlot\n IconSlot: typeof IconSlot\n IllustrationSlot: typeof IllustrationSlot\n Item: typeof Item\n ItemDescription: typeof ItemDescription\n LinkItem: typeof LinkItem\n Portal: typeof Portal\n RadioGroup: typeof RadioGroup\n RadioItem: typeof RadioItem\n Separator: typeof Separator\n Sub: typeof Sub\n SubContent: typeof SubContent\n SubTrigger: typeof SubTrigger\n SwitchItem: typeof SwitchItem\n Trigger: typeof Trigger\n}\n\nDropdownMenu.CheckboxItem = CheckboxItem\nDropdownMenu.Content = Content\nDropdownMenu.HotkeySlot = HotkeySlot\nDropdownMenu.IconSlot = IconSlot\nDropdownMenu.IllustrationSlot = IllustrationSlot\nDropdownMenu.Item = Item\nDropdownMenu.ItemDescription = ItemDescription\nDropdownMenu.LinkItem = LinkItem\nDropdownMenu.Portal = Portal\nDropdownMenu.RadioGroup = RadioGroup\nDropdownMenu.RadioItem = RadioItem\nDropdownMenu.Separator = Separator\nDropdownMenu.Sub = Sub\nDropdownMenu.SubContent = SubContent\nDropdownMenu.SubTrigger = SubTrigger\nDropdownMenu.SwitchItem = SwitchItem\nDropdownMenu.Trigger = Trigger\n"],"names":["Context","RadixPortal","baseIconStyles"],"mappings":";;;;;;;;;;;;;;;AAGa,MAAA,eAAA,GAAkB,MAAO,CAAA,SAAA,CAAU,GAAK,EAAA;AAAA,EACnD,OAAS,EAAA,aAAA;AAAA,EACT,KAAO,EAAA,MAAA;AAAA,EACP,eAAiB,EAAA,UAAA;AAAA,EACjB,eAAiB,EAAA,CAAA;AAAA,EACjB,QAAU,EAAA,QAAA;AAAA,EACV,QAAU,EAAA,kBAAA;AAAA,EACV,QAAU,EAAA,MAAA;AAAA,EACV,UAAY,EAAA,GAAA;AAAA,EACZ,KAAO,EAAA,uBAAA;AACT,CAAC,CAAA;;ACVY,MAAA,QAAA,GAAW,MAAO,CAAA,SAAA,CAAU,GAAK,EAAA;AAAA,EAC5C,OAAS,EAAA,MAAA;AAAA,EACT,UAAY,EAAA,QAAA;AAAA,EACZ,cAAgB,EAAA,QAAA;AAAA,EAChB,WAAa,EAAA,MAAA;AAAA,EACb,QAAU,EAAA,WAAA;AACZ,CAAC,CAAA;;ACJY,MAAA,sBAAA,GAAyB,OAAO,QAAU,EAAA;AAAA,EACrD,KAAO,EAAA,KAAA;AACT,CAAC,CAAA;;ACWD,MAAMA,YAAU,aAA8B,CAAA;AAAA,EAC5C,gBAAgB,MAAM,CAAA;AAAA,EACtB,kBAAkB,MAAM;AAAA,GAAC;AAAA,EACzB,gBAAkB,EAAA,QAAA;AACpB,CAAC,CAAA,CAAA;AAEM,MAAM,kBAAkB,CAAC;AAAA,EAC9B,QAAA;AAAA,EACA,gBAAmB,GAAA,QAAA;AACrB,CAEoB,KAAA;AAClB,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,SAAiB,CAAC,CAAA,CAAA;AAGlD,EAAM,MAAA,MAAA,GAAS,OAAe,CAAC,CAAA,CAAA;AAG/B,EAAM,MAAA,QAAA,GAAW,OAAe,CAAC,CAAA,CAAA;AAEjC,EAAA,MAAM,WAAc,GAAA,MAAA,iBAAgC,IAAA,GAAA,EAAK,CAAA,CAAA;AAEzD,EAAM,MAAA,aAAA,GAAgB,WAAY,CAAA,CAAC,KAAkB,KAAA;AACnD,IAAA,MAAA,CAAO,OAAU,GAAA,KAAA,CAAA;AACjB,IAAA,WAAA,CAAY,KAAK,CAAA,CAAA;AAAA,GACnB,EAAG,EAAE,CAAA,CAAA;AAGL,EAAA,MAAM,cAAiB,GAAA,WAAA;AAAA,IACrB,CAAC,KAA0B,KAAA;AACzB,MAAS,QAAA,CAAA,OAAA,EAAA,CAAA;AAET,MAAA,WAAA,CAAY,OAAQ,CAAA,GAAA,CAAI,QAAS,CAAA,OAAA,EAAS,KAAK,CAAA,CAAA;AAE/C,MAAI,IAAA,KAAA,GAAQ,OAAO,OAAS,EAAA;AAC1B,QAAA,aAAA,CAAc,KAAK,CAAA,CAAA;AAAA,OACrB;AAEA,MAAA,OAAO,QAAS,CAAA,OAAA,CAAA;AAAA,KAClB;AAAA,IACA,CAAC,aAAa,CAAA;AAAA,GAChB,CAAA;AAGA,EAAA,MAAM,gBAAmB,GAAA,WAAA;AAAA,IACvB,CAAC,KAAwB,KAAA;AACvB,MAAY,WAAA,CAAA,OAAA,CAAQ,OAAO,KAAK,CAAA,CAAA;AAEhC,MAAI,IAAA,WAAA,CAAY,OAAQ,CAAA,IAAA,KAAS,CAAG,EAAA;AAClC,QAAA,aAAA,CAAc,CAAC,CAAA,CAAA;AAAA,OACV,MAAA;AACL,QAAM,MAAA,OAAA,GAAU,IAAK,CAAA,GAAA,CAAI,GAAG,KAAA,CAAM,KAAK,WAAY,CAAA,OAAA,CAAQ,MAAO,EAAC,CAAC,CAAA,CAAA;AACpE,QAAA,aAAA,CAAc,OAAO,CAAA,CAAA;AAAA,OACvB;AAAA,KACF;AAAA,IACA,CAAC,aAAa,CAAA;AAAA,GAChB,CAAA;AAEA,EAAA,MAAM,iBAAoB,GAAA,kBAAA,CAAmB,QAAU,EAAA,MAAM,IAAM,EAAA;AAAA,IACjE,YAAc,EAAA;AAAA,MACZ,wBAA0B,EAAA,EAAA,CAAG,MAAK,CAAA,IAAA,CAAA,IAAA,CAAK,QAAQ,CAAC,EAAA,IAAA,CAAA;AAAA,KAClD;AAAA,GACD,CAAA,CAAA;AAED,EACE,uBAAA,GAAA;AAAA,IAACA,SAAQ,CAAA,QAAA;AAAA,IAAR;AAAA,MACC,KAAO,EAAA;AAAA,QACL,cAAA;AAAA,QACA,gBAAA;AAAA,QACA,gBAAA;AAAA,OACF;AAAA,MAEC,QAAA,EAAA,iBAAA;AAAA,KAAA;AAAA,GACH,CAAA;AAEJ,CAAA,CAAA;AAEa,MAAA,UAAA,GAAa,MAAsB,UAAA,CAAWA,SAAO,CAAA;;AC5FrD,MAAA,eAAA,GAAkB,MAAO,CAAA,SAAA,CAAU,GAAK,EAAA;AAAA,EACnD,OAAS,EAAA,MAAA;AAAA,EACT,UAAY,EAAA,QAAA;AAAA,EACZ,cAAgB,EAAA,QAAA;AAAA,EAChB,UAAY,EAAA,MAAA;AAAA,EACZ,WAAa,EAAA,MAAA;AAAA,EACb,QAAU,EAAA,YAAA;AAAA,EACV,MAAQ,EAAA,IAAA;AAAA,EACR,KAAO,EAAA,IAAA;AAAA,EACP,QAAU,EAAA,aAAA;AAAA,EACV,SAAW,EAAA,OAAA;AAAA,EACX,SAAW,EAAA;AAAA,IACT,WAAa,EAAA,IAAA;AAAA,GACf;AACF,CAAC,CAAA;;ACVY,MAAA,SAAA,GAAY,CACvB,KACgB,KAAA;AAChB,EAAA,MAAM,EAAE,cAAA,EAAgB,gBAAiB,EAAA,GAAI,UAAW,EAAA,CAAA;AAExD,EAAM,MAAA,GAAA,GAAM,OAAuB,IAAI,CAAA,CAAA;AAEvC,EAAA,eAAA,CAAgB,MAAM;AACpB,IAAI,IAAA,GAAA,CAAI,YAAY,IAAM,EAAA;AACxB,MAAA,MAAM,KAAQ,GAAA,GAAA,CAAI,OAAQ,CAAA,qBAAA,EAAwB,CAAA,KAAA,CAAA;AAClD,MAAM,MAAA,KAAA,GAAQ,eAAe,KAAK,CAAA,CAAA;AAElC,MAAO,OAAA,MAAM,iBAAiB,KAAK,CAAA,CAAA;AAAA,KACrC;AAEA,IAAA,OAAO,MAAM;AAAA,KAAC,CAAA;AAAA,GACb,EAAA,CAAC,cAAgB,EAAA,gBAAA,EAAkB,GAAG,CAAC,CAAA,CAAA;AAE1C,EAAA,uBAAQ,GAAA,CAAA,eAAA,EAAA,EAAgB,GAAW,EAAA,GAAG,KAAO,EAAA,CAAA,CAAA;AAC/C,CAAA;;ACtBa,MAAA,UAAA,GAAa,OAAO,SAAW,EAAA;AAAA,EAC1C,KAAO,EAAA,uBAAA;AACT,CAAC,CAAA;;ACAM,MAAM,YAAe,GAAA;AAAA,EAC1B,GAAK,EAAA,OAAA;AAAA,EACL,SAAW,EAAA,YAAA;AAAA,EACX,QAAU,EAAA,EAAA;AAAA,EACV,UAAY,EAAA,MAAA;AAAA,EACZ,KAAO,EAAA,gBAAA;AAAA,EACP,YAAc,EAAA,KAAA;AAAA,EACd,OAAS,EAAA,MAAA;AAAA,EACT,mBACE,EAAA,2DAAA;AAAA,EACF,gBAAkB,EAAA,UAAA;AAAA,EAClB,iBAAmB,EAAA,+EAAA;AAAA,EAEnB,UAAY,EAAA,OAAA;AAAA,EACZ,OAAS,EAAA,WAAA;AAAA,EACT,QAAU,EAAA,UAAA;AAAA,EACV,UAAY,EAAA,MAAA;AAAA,EACZ,MAAQ,EAAA,SAAA;AAAA,EAER,sBAAwB,EAAA;AAAA,IACtB,mBAAqB,EAAA,+CAAA;AAAA,IACrB,iBAAmB,EAAA,2DAAA;AAAA,GAErB;AAAA,EAEA,GAAG,MAAM,GAAI,CAAA;AAAA,IACX,SAAW,EAAA,cAAA;AAAA,IACX,OAAS,EAAA,uBAAA;AAAA,GACV,CAAA;AAAA,EAED,uDAAyD,EAAA;AAAA,IACvD,MAAQ,EAAA,SAAA;AAAA,IAER,CAAC,OAAA,CAAQ,MAAe,CAAA,eAAA,EAAA,MAAA,CAAA,CAAO,kBAAY,GAAG;AAAA,MAC5C,KAAO,EAAA,yBAAA;AAAA,KACT;AAAA,IACA,CAAC,IAAK,CAAA,MAAA,CAAA,sBAAA,CAAwB,GAAG;AAAA,MAC/B,MAAQ,EAAA,cAAA;AAAA,KACV;AAAA,GACF;AAAA,EAEA,8BAAgC,EAAA;AAAA,IAC9B,aAAe,EAAA,MAAA;AAAA,GACjB;AAAA,EAEA,qCAAuC,EAAA;AAAA,IACrC,UAAY,EAAA,kCAAA;AAAA,IACZ,KAAO,EAAA,qBAAA;AAAA,IACP,+BAAiC,EAAA;AAAA,MAC/B,SAAW,EAAA,MAAA;AAAA,KACb;AAAA,GACF;AAAA,EAEA,sCAAwC,EAAA;AAAA,IACtC,UAAY,EAAA,mCAAA;AAAA,IACZ,SAAW,EAAA,MAAA;AAAA,IACX,KAAO,EAAA,sBAAA;AAAA,GACT;AAAA,EAEA,iBAAmB,EAAA;AAAA,IACjB,MAAQ,EAAA,GAAA;AAAA,GACV;AACF,CAAA;;AC7Da,MAAA,eAAA,GAAkB,MAAO,CAAA,SAAA,CAAU,IAAM,EAAA;AAAA,EACpD,OAAS,EAAA,MAAA;AAAA,EACT,UAAY,EAAA,QAAA;AAAA,EACZ,cAAgB,EAAA,QAAA;AAClB,CAAC,CAAA,CAAA;AAEY,MAAA,kBAAA,GAAqB,MAAO,CAAA,iBAAA,CAAkB,YAAc,EAAA;AAAA,EACvE,GAAG,YAAA;AAAA,EACH,CAAC,0BAA2B,CAAA,MAAA,CAAA,eAAA,CAAiB,GAAG;AAAA,IAC9C,KAAO,EAAA,eAAA;AAAA,GACT;AAAA,EACA,CAAC,4DAA6D,CAAA,MAAA,CAAA,eAAA,CAAiB,GAC7E;AAAA,IACE,KAAO,EAAA,qBAAA;AAAA,GACT;AAAA,EACF,CAAC,gCAC2B,CAAA,MAAA,CAAA,eAAA,EAAe,0BACtB,CAAA,CAAA,MAAA,CAAA,eAAA,EAAe,OACnC,GAAG;AAAA,IACF,KAAO,EAAA,yBAAA;AAAA,GACT;AACF,CAAC,CAAA;;ACXM,MAAM,kBAAkB,CAC7B;AAAA,EACE,eAAiB,EAAA,YAAA;AAAA,EACjB,SAAA;AAAA,EACA,QAAA;AAAA,EACA,aAAA;AAAA,EACA,OAAA;AACF,CAAA,EACA,eAAoC,IAEpC,KAAA,OAAA;AAAA,EACE,OAAO;AAAA,IACL,eAAiB,EAAA,UAAA,CAAW,YAAY,CAAA,GAAI,YAAe,GAAA,KAAA,CAAA;AAAA,IAC3D,WAAW,CAAK,CAAA,KAAA;AACd,MACE,IAAA,UAAA,CAAW,YAAY,CAAA,IACvB,CAAE,CAAA,IAAA,KAAS,SACX,IAAA,CAAA,CAAE,IAAS,KAAA,WAAA,IACX,CAAE,CAAA,IAAA,KAAS,QACX,EAAA;AACA,QAAA,CAAA,CAAE,cAAe,EAAA,CAAA;AACjB,QAAA,CAAA,CAAE,eAAgB,EAAA,CAAA;AAClB,QAAA,OAAA;AAAA,OACF;AAEA,MAAY,SAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAA,KACd;AAAA,IACA,UAAU,CAAK,CAAA,KAAA;AACb,MAAI,IAAA,UAAA,CAAW,YAAY,CAAG,EAAA;AAC5B,QAAA,CAAA,CAAE,cAAe,EAAA,CAAA;AACjB,QAAA,OAAA;AAAA,OACF;AAEA,MAAA,IAAI,CAAC,YAAc,EAAA;AACjB,QAAA,CAAA,CAAE,cAAe,EAAA,CAAA;AAAA,OACnB;AAEA,MAAW,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,CAAA,CAAA,CAAA;AAAA,KACb;AAAA,IACA,eAAe,CAAK,CAAA,KAAA;AAClB,MAAI,IAAA,UAAA,CAAW,YAAY,CAAG,EAAA;AAC5B,QAAA,CAAA,CAAE,cAAe,EAAA,CAAA;AACjB,QAAA,OAAA;AAAA,OACF;AAEA,MAAgB,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAA,CAAA,CAAA,CAAA;AAAA,KAClB;AAAA,IACA,SAAS,CAAK,CAAA,KAAA;AACZ,MAAI,IAAA,UAAA,CAAW,YAAY,CAAG,EAAA;AAC5B,QAAA,CAAA,CAAE,cAAe,EAAA,CAAA;AACjB,QAAA,OAAA;AAAA,OACF;AAEA,MAAU,OAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,OAAA,CAAA,CAAA,CAAA,CAAA;AAAA,KACZ;AAAA,GACF,CAAA;AAAA,EACA,CAAC,YAAc,EAAA,SAAA,EAAW,QAAU,EAAA,aAAA,EAAe,SAAS,YAAY,CAAA;AAC1E,CAAA;;ACjEF,MAAM,UAAU,aAA2B,CAAA;AAAA,EACzC,eAAe,MAAM;AAAA,GAAC;AAAA,EACtB,iBAAiB,MAAM;AAAA,GAAC;AAC1B,CAAC,CAAA,CAAA;AAEM,MAAM,eAAe,CAAC;AAAA,EAC3B,QAAA;AACF,CAA0C,KAAA;AACxC,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,SAAS,KAAK,CAAA,CAAA;AAE5C,EAAM,MAAA,aAAA,GAAgB,YAAY,MAAM;AACtC,IAAA,UAAA,CAAW,IAAI,CAAA,CAAA;AAAA,GACjB,EAAG,EAAE,CAAA,CAAA;AAEL,EAAM,MAAA,eAAA,GAAkB,YAAY,MAAM;AACxC,IAAA,UAAA,CAAW,KAAK,CAAA,CAAA;AAAA,GAClB,EAAG,EAAE,CAAA,CAAA;AAEL,EAAA,MAAM,oBAAoB,OACtB,GAAA,QAAA,GACA,kBAAmB,CAAA,QAAA,EAAU,MAAM,IAAM,EAAA;AAAA,IACvC,mBAAqB,EAAA,EAAA;AAAA,GACtB,CAAA,CAAA;AAEL,EACE,uBAAA,GAAA;AAAA,IAAC,OAAQ,CAAA,QAAA;AAAA,IAAR;AAAA,MACC,KAAO,EAAA;AAAA,QACL,aAAA;AAAA,QACA,eAAA;AAAA,OACF;AAAA,MAEC,QAAA,EAAA,iBAAA;AAAA,KAAA;AAAA,GACH,CAAA;AAEJ,CAAA,CAAA;AAEa,MAAA,OAAA,GAAU,MAAmB,UAAA,CAAW,OAAO,CAAA;;ACArD,MAAM,eAAe,KAAM,CAAA,UAAA;AAAA,EAIhC,CACE;AAAA,IACE,QAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,aAAgB,GAAA,KAAA;AAAA,IAChB,GAAG,SAAA;AAAA,KAEL,UACG,KAAA;AACH,IAAM,MAAA,iBAAA,GAAoB,eAAgB,CAAA,SAAA,EAAW,aAAa,CAAA,CAAA;AAClE,IAAM,MAAA,EAAE,eAAiB,EAAA,YAAA,EAAiB,GAAA,iBAAA,CAAA;AAE1C,IAAA,2BACG,YACC,EAAA,EAAA,QAAA,kBAAA,IAAA;AAAA,MAAC,kBAAA;AAAA,MAAA;AAAA,QACE,GAAG,SAAA;AAAA,QACH,GAAG,iBAAA;AAAA,QACJ,GAAK,EAAA,UAAA;AAAA,QACL,OAAA;AAAA,QACA,QAAA;AAAA,QACA,eAAiB,EAAA,QAAA;AAAA,QAEhB,QAAA,EAAA;AAAA,UAAA,QAAA;AAAA,0BACD,GAAA,CAAC,SACC,EAAA,EAAA,QAAA,kBAAA,IAAA,CAAC,eACG,EAAA,EAAA,QAAA,EAAA;AAAA,YAAA,CAAA,QAAA,KAAa,IAAQ,IAAA,UAAA,CAAW,YAAY,CAAA,KAAM,CAAC,OACnD,oBAAA,GAAA;AAAA,cAAC,YAAA;AAAA,cAAA;AAAA,gBACC,MAAO,EAAA,MAAA;AAAA,gBACP,GAAK,EAAA,EAAE,MAAQ,EAAA,IAAA,EAAM,SAAS,OAAQ,EAAA;AAAA,eAAA;AAAA,aACxC;AAAA,YAED,OAAA,wBACE,aAAc,EAAA,EAAA,GAAA,EAAK,EAAE,MAAQ,EAAA,IAAA,EAAM,OAAS,EAAA,OAAA,EAAW,EAAA,CAAA;AAAA,WAAA,EAE5D,CACF,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA;AAAA,KAEJ,EAAA,CAAA,CAAA;AAAA,GAEJ;AACF,CAAA;;ACxFO,MAAM,WAAc,GAAA,KAAA,CAAA;AACpB,MAAM,cAAiB,GAAA,QAAA,CAAS,KAAM,CAAA,KAAA,CAAM,GAAG,CAAC,CAAA,CAAA;AAChD,MAAM,cAAiB,GAAA,QAAA,CAAS,KAAM,CAAA,KAAA,CAAM,EAAE,CAAC,CAAA,CAAA;AAC/C,MAAM,yBAA4B,GAAA,KAAA,CAAA;AAClC,MAAM,eAAkB,GAAA;AAAA,EAC7B,KAAO,EAAA,UAAA;AAAA,EACP,MAAQ,EAAA,MAAA;AAAA,EACR,KAAO,EAAA,WAAA;AACT,CAAA,CAAA;AAEO,MAAM,eAAkB,GAAA;AAAA,EAC7B,QAAU,EAAA,MAAA;AAAA,EACV,eAAiB,EAAA,gCAAA;AAAA,EACjB,YAAc,EAAA,KAAA;AAAA,EACd,SAAW,EAAA,KAAA;AAAA,EAEX,qCAAuC,EAAA;AAAA,IACrC,OAAS,EAAA,EAAA,CAAG,MAAyB,CAAA,yBAAA,EAAA,OAAA,CAAA,CAAQ,kCAAyB,GAAI,CAAA,CAAA,MAAA,CAAA,yBAAA,CAAA;AAAA,IAC1E,SAAW,EAAA,YAAA;AAAA,GACb;AAAA,EAEA,gDAAkD,EAAA;AAAA,IAChD,iBAAmB,EAAA,OAAA;AAAA,IACnB,uBAAyB,EAAA,mCAAA;AAAA,IACzB,UAAY,EAAA,oBAAA;AAAA,IACZ,sBAAwB,EAAA,EAAE,aAAe,EAAA,UAAA,CAAW,YAAa,EAAA;AAAA,IACjE,wBAA0B,EAAA,EAAE,aAAe,EAAA,UAAA,CAAW,aAAc,EAAA;AAAA,IACpE,oBAAsB,EAAA;AAAA,MACpB,uBAAA,EAAyB,EAAE,eAAA,EAAiB,aAAc,EAAA;AAAA,MAC1D,wBAAA,EAA0B,EAAE,eAAA,EAAiB,eAAgB,EAAA;AAAA,MAC7D,qBAAA,EAAuB,EAAE,eAAA,EAAiB,cAAe,EAAA;AAAA,KAC3D;AAAA,IACA,sBAAwB,EAAA;AAAA,MACtB,uBAAA,EAAyB,EAAE,eAAA,EAAiB,UAAW,EAAA;AAAA,MACvD,wBAAA,EAA0B,EAAE,eAAA,EAAiB,aAAc,EAAA;AAAA,MAC3D,qBAAA,EAAuB,EAAE,eAAA,EAAiB,aAAc,EAAA;AAAA,KAC1D;AAAA,IACA,uBAAyB,EAAA;AAAA,MACvB,uBAAA,EAAyB,EAAE,eAAA,EAAiB,UAAW,EAAA;AAAA,MACvD,wBAAA,EAA0B,EAAE,eAAA,EAAiB,YAAa,EAAA;AAAA,MAC1D,qBAAA,EAAuB,EAAE,eAAA,EAAiB,WAAY,EAAA;AAAA,KACxD;AAAA,IACA,qBAAuB,EAAA;AAAA,MACrB,uBAAA,EAAyB,EAAE,eAAA,EAAiB,WAAY,EAAA;AAAA,MACxD,wBAAA,EAA0B,EAAE,eAAA,EAAiB,cAAe,EAAA;AAAA,MAC5D,qBAAA,EAAuB,EAAE,eAAA,EAAiB,cAAe,EAAA;AAAA,KAC3D;AAAA,GACF;AAAA,EACA,QAAU,EAAA,UAAA;AAAA,EACV,MAAQ,EAAA,eAAA;AACV,CAAA;;AC3Ca,MAAA,oBAAA,GAAuB,OAAO,KAAO,EAAA;AAAA,EAChD,OAAS,EAAA,MAAA;AAAA,EACT,GAAK,EAAA,WAAA;AACP,CAAC,CAAA,CAAA;AAEY,MAAA,aAAA,GAAgB,MAAO,CAAA,iBAAA,CAAkB,OAAS,EAAA;AAAA,EAC7D,GAAG,eAAA;AAAA,EACH,QAAU,EAAA;AAAA,IACR,gBAAkB,EAAA;AAAA,MAChB,KAAO,EAAA;AAAA,QACL,kBAAoB,EAAA;AAAA,UAClB,SAAS,eAAgB,CAAA,KAAA;AAAA,SAC3B;AAAA,OACF;AAAA,MACA,MAAQ,EAAA;AAAA,QACN,kBAAoB,EAAA;AAAA,UAClB,SAAS,eAAgB,CAAA,MAAA;AAAA,SAC3B;AAAA,OACF;AAAA,MACA,KAAO,EAAA;AAAA,QACL,kBAAoB,EAAA;AAAA,UAClB,SAAS,eAAgB,CAAA,KAAA;AAAA,SAC3B;AAAA,OACF;AAAA,KACF;AAAA,GACF;AACF,CAAC,CAAA;;ACrBM,MAAM,oBAAoB,CAAC;AAAA,EAChC,QAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,gBAAA;AACF,CAA2C,KAAA;AACzC,EAAM,MAAA,oBAAA,GAAuB,YAAY,MAAW;AAClD,IAAA,MAAM,CAAC,GAAK,IAAE,MAAM,CAAA,GAAI,gBAAgB,gBAAgB,CAAA,CACrD,KAAM,CAAA,GAAG,EACT,GAAI,CAAA,CAAA,KAAA,KAAS,MAAM,OAAQ,CAAA,GAAA,EAAK,EAAE,CAAC,CAAA,CAAA;AAEtC,IAAA,MAAM,SACJ,GAAA,GAAA,KAAQ,KAAa,CAAA,IAAA,MAAA,KAAW,KAC5B,CAAA,GAAA,cAAA,CAAe,MAAG,CAAA,GAAA,EAAA,kBAAA,CAAA,CAAmB,MAAM,CAAA,MAAA,EAAA,GAAA,CAAA,GAC3C,cAAe,CAAA,MAAA,CAAA,GAAA,EAAG,oBAAmB,MAAG,CAAA,GAAA,EAAA,GAAA,CAAA,CAAA;AAE9C,IAAA,MAAM,gBACJ,GAAA,QAAA,KAAa,MACT,GAAA,8DAAA,CAA+D,kBAAS,IACxE,CAAA,GAAA,MAAA,CAAA;AAEN,IAAA,MAAM,YAAe,GAAA,OAAA,CAAQ,MAAS,CAAA,SAAA,EAAA,MAAA,CAAA,CAAO,MAAS,CAAA,SAAA,EAAA,IAAA,CAAA,CAAA;AAEtD,IAAO,OAAA;AAAA,MACL,SAAA,EAAW,SAAc,KAAA,KAAA,CAAA,GAAY,gBAAmB,GAAA,YAAA;AAAA,KAC1D,CAAA;AAAA,GACC,EAAA,CAAC,SAAW,EAAA,QAAA,EAAU,gBAAgB,CAAC,CAAA,CAAA;AAE1C,EAAA,IAAI,aAAa,MAAQ,EAAA;AACvB,IACE,uBAAA,IAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,GAAK,EAAA,EAAE,MAAQ,EAAA,GAAA,CAAI,MAA4B,CAAA,yBAAA,CAAA,EAAA;AAAA,QAC/C,IAAK,EAAA,QAAA;AAAA,QAEL,QAAA,EAAA;AAAA,0BAAC,GAAA,CAAA,UAAA,CAAW,UAAX,EAAoB,GAAA,EAAK,EAAE,GAAG,oBAAA,EAAuB,EAAA,EACnD,QACH,EAAA,CAAA;AAAA,0BACA,GAAA,CAAC,UAAW,CAAA,SAAA,EAAX,EAAqB,WAAA,EAAY,YAChC,QAAC,kBAAA,GAAA,CAAA,UAAA,CAAW,KAAX,EAAA,EAAiB,CACpB,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA;AAAA,KACF,CAAA;AAAA,GAEJ;AAEA,EAAA,uCAAU,QAAS,EAAA,CAAA,CAAA;AACrB,CAAA;;ACiFO,MAAM,UAAU,KAAM,CAAA,UAAA;AAAA,EAI3B,CACE;AAAA,IACE,IAAO,GAAA,KAAA;AAAA,IACP,IAAO,GAAA,QAAA;AAAA,IACP,UAAa,GAAA,cAAA;AAAA,IACb,KAAQ,GAAA,QAAA;AAAA,IACR,WAAc,GAAA,CAAA;AAAA,IACd,gBAAmB,GAAA,CAAA;AAAA,IACnB,eAAkB,GAAA,IAAA;AAAA,IAClB,MAAS,GAAA,SAAA;AAAA,IACT,gBAAmB,GAAA,KAAA;AAAA,IACnB,gBAAmB,GAAA,QAAA;AAAA,IACnB,QAAW,GAAA,SAAA;AAAA,IACX,SAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAG,SAAA;AAAA,GAEL,EAAA,UAAA,qBAEC,GAAA,CAAA,eAAA,EAAA,EAAgB,gBACf,EAAA,QAAA,kBAAA,GAAA;AAAA,IAAC,aAAA;AAAA,IAAA;AAAA,MACE,GAAG,SAAA;AAAA,MACJ,GAAK,EAAA,UAAA;AAAA,MACL,IAAA;AAAA,MACA,IAAA;AAAA,MACA,UAAA;AAAA,MACA,KAAA;AAAA,MACA,WAAA;AAAA,MACA,eAAA;AAAA,MACA,gBAAA;AAAA,MACA,MAAA;AAAA,MACA,gBAAA;AAAA,MACA,gBAAA;AAAA,MAEA,QAAA,kBAAA,GAAA,CAAC,iBAAmB,EAAA,EAAA,GAAG,EAAE,gBAAA,EAAkB,SAAW,EAAA,QAAA,EACpD,EAAA,QAAA,kBAAA,GAAA,CAAC,oBAAsB,EAAA,EAAA,QAAA,EAAS,CAClC,EAAA,CAAA;AAAA,KAAA;AAAA,GAEJ,EAAA,CAAA;AAEJ,CAAA;;ACnLa,MAAA,UAAA,GAAa,MAAO,CAAA,iBAAA,CAAkB,IAAM,EAAA;AAAA,EACvD,GAAG,YAAA;AAAA,EACH,QAAU,EAAA;AAAA;AAAA;AAAA,IAGR,YAAc,EAAA;AAAA,MACZ,IAAM,EAAA;AAAA,QACJ,YAAc,EAAA,MAAA;AAAA,OAChB;AAAA,KACF;AAAA,GACF;AACF,CAAC,CAAA;;ACQM,MAAM,OAAO,KAAM,CAAA,UAAA;AAAA,EACxB,CAAC,EAAE,QAAA,GAAW,OAAO,GAAG,SAAA,IAAa,UAAe,KAAA;AAClD,IAAM,MAAA,iBAAA,GAAoB,gBAAgB,SAAS,CAAA,CAAA;AAEnD,IAAA,2BACG,YACC,EAAA,EAAA,QAAA,kBAAA,GAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACE,GAAG,SAAA;AAAA,QACH,GAAG,iBAAA;AAAA,QACJ,QAAA;AAAA,QACA,GAAK,EAAA,UAAA;AAAA,OAAA;AAAA,KAET,EAAA,CAAA,CAAA;AAAA,GAEJ;AACF,CAAA;;AC9Ba,MAAA,QAAA,GAAW,KAAM,CAAA,UAAA,CAG5B,CAAC,EAAE,UAAU,IAAM,EAAA,GAAG,SAAU,EAAA,EAAG,UAAe,KAAA;AAClD,EAAM,MAAA,iBAAA,GAAoB,gBAAgB,SAAS,CAAA,CAAA;AACnD,EAAA,uBACG,GAAA,CAAA,IAAA,EAAA,EAAK,OAAO,EAAA,IAAA,EAAC,KAAK,UAAa,EAAA,GAAG,SAAY,EAAA,GAAG,iBAChD,EAAA,QAAA,kBAAA,GAAA,CAAC,GAAE,EAAA,EAAA,IAAA,EAAa,UAAS,CAC3B,EAAA,CAAA,CAAA;AAEJ,CAAC,CAAA;;ACdY,MAAA,gBAAA,GAAmB,MAAO,CAAA,iBAAA,CAAkB,UAAY,EAAA;AAAA,EACnE,OAAS,EAAA,MAAA;AAAA,EACT,GAAK,EAAA,WAAA;AACP,CAAC,CAAA;;ACUM,MAAM,UAAa,GAAA,KAAA,CAAM,UAG9B,CAAA,CAAC,OAAO,UAAe,KAAA;AACvB,EAAA,MAAM,EAAE,QAAA,EAAU,GAAG,SAAA,EAAc,GAAA,KAAA,CAAA;AAEnC,EACE,uBAAA,GAAA;AAAA,IAAC,gBAAA;AAAA,IAAA;AAAA,MACE,GAAG,SAAA;AAAA,MACJ,GAAK,EAAA,UAAA;AAAA,MACL,aAAe,EAAA,QAAA;AAAA,KAAA;AAAA,GACjB,CAAA;AAEJ,CAAC,CAAA;;ACxBY,MAAA,oBAAA,GAAuB,MAAO,CAAA,SAAA,CAAU,GAAK,EAAA;AAAA,EACxD,OAAS,EAAA,MAAA;AAAA,EACT,UAAY,EAAA,QAAA;AAAA,EACZ,cAAgB,EAAA,QAAA;AAAA,EAChB,KAAO,EAAA,IAAA;AAAA,EACP,MAAQ,EAAA,IAAA;AAAA,EACR,SAAW,EAAA,YAAA;AAAA,EACX,MAAQ,EAAA,4BAAA;AAAA,EACR,YAAc,EAAA,OAAA;AAChB,CAAC,CAAA,CAAA;AAEY,MAAA,UAAA,GAAa,MAAO,CAAA,SAAA,CAAU,GAAK,EAAA;AAAA,EAC9C,OAAS,EAAA,MAAA;AAAA,EACT,KAAO,EAAA,IAAA;AAAA,EACP,MAAQ,EAAA,IAAA;AAAA,EACR,YAAc,EAAA,OAAA;AAChB,CAAC,CAAA,CAAA;AAEY,MAAA,gBAAA,GAAmB,OAAO,YAAc,EAAA;AAAA,EACnD,OAAS,EAAA,MAAA;AAAA,EACT,KAAO,EAAA,eAAA;AACT,CAAC,CAAA,CAAA;AAEY,MAAA,eAAA,GAAkB,MAAO,CAAA,iBAAA,CAAkB,SAAW,EAAA;AAAA,EACjE,GAAG,YAAA;AAAA,EACH,CAAC,0BAA2B,CAAA,MAAA,CAAA,oBAAA,CAAsB,GAAG;AAAA,IACnD,KAAO,EAAA,eAAA;AAAA,IACP,WAAa,EAAA,iBAAA;AAAA,IAEb,CAAC,IAAK,CAAA,MAAA,CAAA,UAAA,CAAY,GAAG;AAAA,MACnB,OAAS,EAAA,OAAA;AAAA,MACT,eAAiB,EAAA,wCAAA;AAAA,KACnB;AAAA,GACF;AAAA,EAEA,CAAC,sCAAuC,CAAA,MAAA,CAAA,oBAAA,CAAsB,GAAG;AAAA,IAC/D,WAAa,EAAA,uBAAA;AAAA,IAEb,CAAC,IAAK,CAAA,MAAA,CAAA,UAAA,CAAY,GAAG;AAAA,MACnB,eAAiB,EAAA,qCAAA;AAAA,KACnB;AAAA,GACF;AAAA,EAEA,CAAC,gCAC2B,CAAA,MAAA,CAAA,oBAAA,EAAoB,0BAC3B,CAAA,CAAA,MAAA,CAAA,oBAAA,EAAoB,OACxC,GAAG;AAAA,IACF,KAAO,EAAA,yBAAA;AAAA,IACP,WAAa,EAAA,2BAAA;AAAA,IAEb,CAAC,IAAK,CAAA,MAAA,CAAA,UAAA,CAAY,GAAG;AAAA,MACnB,eAAiB,EAAA,yBAAA;AAAA,KACnB;AAAA,GACF;AAAA,EACA,2BAA6B,EAAA;AAAA,IAC3B,CAAC,kCAC2B,CAAA,MAAA,CAAA,gBAAA,EAAgB,4BACvB,CAAA,CAAA,MAAA,CAAA,gBAAA,EAAgB,SACpC,GAAG;AAAA,MACF,OAAS,EAAA,MAAA;AAAA,KACX;AAAA,GACF;AACF,CAAC,CAAA;;AC5BM,MAAM,SAAY,GAAA,KAAA,CAAM,UAG7B,CAAA,CAAC,EAAE,QAAA,EAAU,QAAU,EAAA,aAAA,GAAgB,KAAO,EAAA,GAAG,SAAU,EAAA,EAAG,UAAe,KAAA;AAC7E,EAAM,MAAA,iBAAA,GAAoB,eAAgB,CAAA,SAAA,EAAW,aAAa,CAAA,CAAA;AAClE,EAAA,2BACG,YACC,EAAA,EAAA,QAAA,kBAAA,IAAA;AAAA,IAAC,eAAA;AAAA,IAAA;AAAA,MACE,GAAG,SAAA;AAAA,MACH,GAAG,iBAAA;AAAA,MACJ,QAAA;AAAA,MACA,GAAK,EAAA,UAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,wBACD,GAAA,CAAC,SACC,EAAA,EAAA,QAAA,kBAAA,IAAA,CAAC,oBACC,EAAA,EAAA,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,UAAW,EAAA,EAAA,CAAA;AAAA,0BACZ,GAAA,CAAC,gBAAiB,EAAA,EAAA,MAAA,EAAO,MAAO,EAAA,CAAA;AAAA,SAAA,EAClC,CACF,EAAA,CAAA;AAAA,OAAA;AAAA,KAAA;AAAA,GAEJ,EAAA,CAAA,CAAA;AAEJ,CAAC,CAAA;;AC7DY,MAAA,eAAA,GAAkB,MAAO,CAAA,iBAAA,CAAkB,SAAW,EAAA;AAAA,EACjE,SAAW,EAAA,mCAAA;AACb,CAAC,CAAA;;ACEM,MAAM,SAAY,GAAA,KAAA,CAAM,UAG7B,CAAA,CAAC,KAAO,EAAA,UAAA,qBAAgB,GAAA,CAAA,eAAA,EAAA,EAAiB,GAAG,KAAA,EAAO,GAAK,EAAA,UAAA,EAAY,CAAE,CAAA;;ACH3D,MAAA,YAAA,GAAe,MAAO,CAAA,SAAA,CAAU,IAAM,EAAA;AAAA,EACjD,GAAG,MAAO,CAAA,OAAA;AAAA,EACV,KAAO,EAAA,IAAA;AAAA,EACP,MAAQ,EAAA,IAAA;AACV,CAAC,CAAA,CAAA;AAEY,MAAA,gBAAA,GAAmB,MAAO,CAAA,iBAAA,CAAkB,YAAc,EAAA;AAAA,EACrE,GAAG,YAAA;AAAA,EAEH,CAAC,0BAAA,CAA2B,MAAc,CAAA,YAAA,CAAA,GAAG,MAAO,CAAA,OAAA;AAAA,EACpD,CAAC,4DAAA,CAA6D,MAAc,CAAA,YAAA,CAAA,GAC1E,MAAO,CAAA,cAAA;AAAA,EAET,CAAC,sCAAA,CAAuC,MAAc,CAAA,YAAA,CAAA,GAAG,MAAO,CAAA,OAAA;AAAA,EAChE,CAAC,gCAC2B,CAAA,MAAA,CAAA,YAAA,EAAY,4BACnB,MAAY,CAAA,YAAA,EAAA,MAAA,CAChC,GAAG,MAAO,CAAA,QAAA;AACb,CAAC,CAAA;;ACkBM,MAAM,aAAa,KAAM,CAAA,UAAA;AAAA,EAI9B,CACE;AAAA,IACE,QAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,aAAgB,GAAA,KAAA;AAAA,IAChB,GAAG,SAAA;AAAA,KAEL,UACG,KAAA;AACH,IAAM,MAAA,iBAAA,GAAoB,eAAgB,CAAA,SAAA,EAAW,aAAa,CAAA,CAAA;AAElE,IAAA,2BACG,YACC,EAAA,EAAA,QAAA,kBAAA,IAAA;AAAA,MAAC,gBAAA;AAAA,MAAA;AAAA,QACE,GAAG,SAAA;AAAA,QACH,GAAG,iBAAA;AAAA,QACJ,QAAA;AAAA,QACA,OAAA;AAAA,QACA,eAAiB,EAAA,QAAA;AAAA,QACjB,GAAK,EAAA,UAAA;AAAA,QAEJ,QAAA,EAAA;AAAA,UAAA,QAAA;AAAA,8BACA,SACC,EAAA,EAAA,QAAA,kBAAA,GAAA,CAAC,gBACC,QAAC,kBAAA,GAAA,CAAA,KAAA,EAAA,EAAM,GACT,CACF,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA;AAAA,KAEJ,EAAA,CAAA,CAAA;AAAA,GAEJ;AACF,CAAA;;AC5Ea,MAAA,aAAA,GAAgB,MAAO,CAAA,iBAAA,CAAkB,OAAS,EAAA;AAAA,EAC7D,QAAU,EAAA;AAAA,IACR,QAAU,EAAA;AAAA,MACR,IAAM,EAAA;AAAA,QACJ,GAAK,EAAA,OAAA;AAAA,QACL,SAAW,EAAA,YAAA;AAAA,QACX,MAAQ,EAAA,SAAA;AAAA,QACR,GAAG,MAAM,GAAI,CAAA;AAAA,UACX,SAAW,EAAA,cAAA;AAAA,UACX,OAAS,EAAA,uBAAA;AAAA,SACV,CAAA;AAAA,OACH;AAAA,MACA,KAAO,EAAA;AAAA,QACL,MAAQ,EAAA,SAAA;AAAA,OACV;AAAA,KACF;AAAA,GACF;AACF,CAAC,CAAA;;ACZY,MAAA,OAAA,GAAU,KAAM,CAAA,UAAA,CAG3B,CAAC,EAAE,OAAU,GAAA,KAAA,EAAO,OAAS,EAAA,GAAG,SAAU,EAAA,EAAG,UAAe,KAAA;AAC5D,EAAM,MAAA,GAAA,GAAM,OAA0B,IAAI,CAAA,CAAA;AAQ1C,EAAA,MAAM,qBAAiD,CAAK,CAAA,KAAA;AAtB9D,IAAA,IAAA,EAAA,CAAA;AAuBI,IAAI,IAAA,CAAA,CAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,CAAA,CAAG,iBAAgB,KAAW,CAAA,EAAA;AAChC,MAAQ,OAAA,CAAA,KAAA;AAAA,QACN,qKACE,SAAU,CAAA,MAAA,CAAA,IAAA,CAAK,SAAU,CAAA,CAAA,EAAG,MAAM,CAAC,CAAA,CAAA;AAAA,OACvC,CAAA;AACA,MAAA,OAAA;AAAA,KACF;AAEA,IAAA,MAAM,cAAc,CAAE,CAAA,WAAA,CAAA;AAEtB,IAAI,IAAA,WAAA,CAAY,mBAAmB,KAAW,CAAA,EAAA;AAC5C,MAAA,WAAA,CAAY,cAAiB,GAAA,IAAA,CAAA;AAAA,KAC/B;AAEA,IAAA,IAAI,eAAe,CAAE,CAAA,WAAW,CAAK,IAAA,GAAA,CAAI,YAAY,IAAM,EAAA;AACzD,MAAM,MAAA,gBAAA,GAAmB,IAAI,UAAA,CAAW,aAAe,EAAA;AAAA,QACrD,OAAS,EAAA,IAAA;AAAA,QACT,UAAY,EAAA,IAAA;AAAA,OACb,CAAA,CAAA;AAED,MAAI,CAAA,EAAA,GAAA,GAAA,CAAA,OAAA,KAAJ,mBAAa,aAAc,CAAA,gBAAA,CAAA,CAAA;AAAA,KAC7B;AAAA,GACF,CAAA;AACA,EACE,uBAAA,GAAA;AAAA,IAAC,aAAA;AAAA,IAAA;AAAA,MACE,GAAG,SAAA;AAAA,MACJ,SAAS,CAAK,CAAA,KAAA;AACZ,QAAA,kBAAA,CAAmB,CAAC,CAAA,CAAA;AACpB,QAAU,OAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,OAAA,CAAA,CAAA,CAAA,CAAA;AAAA,OACZ;AAAA,MACA,GAAK,EAAA,SAAA,CAAU,CAAC,GAAA,EAAK,UAAU,CAAC,CAAA;AAAA,MAChC,UAAU,CAAC,OAAA;AAAA,MACX,OAAA;AAAA,KAAA;AAAA,GACF,CAAA;AAEJ,CAAC,CAAA;;ACnDY,MAAA,mBAAA,GAAsB,MAAO,CAAA,SAAA,CAAU,IAAM,EAAA;AAAA,EACxD,KAAO,EAAA,0BAAA;AAAA,EACP,OAAS,EAAA,MAAA;AAAA,EACT,UAAY,EAAA,QAAA;AACd,CAAC,CAAA,CAAA;AAEY,MAAA,gBAAA,GAAmB,MAAO,CAAA,iBAAA,CAAkB,UAAY,EAAA;AAAA,EACnE,GAAG,YAAA;AAAA,EACH,sBAAA,EAAwB,aAAa,qCAAqC,CAAA;AAAA,EAE1E,CAAC,uBAAA,CAAwB,MAAmB,CAAA,mBAAA,EAAA,wCAAA,CAAA,CAAyC,2BAAqB,GACxG;AAAA,IACE,KAAO,EAAA,qBAAA;AAAA,GACT;AACJ,CAAC,CAAA;;ACEY,MAAA,UAAA,GAAa,KAAM,CAAA,UAAA,CAG9B,CAAC,EAAE,QAAU,EAAA,QAAA,GAAW,KAAO,EAAA,GAAG,SAAU,EAAA,EAAG,UAAe,KAAA;AAC9D,EAAA,MAAM,EAAE,QAAA,EAAU,GAAG,iBAAA,KAAsB,eAAgB,CAAA;AAAA,IACzD,WAAW,SAAU,CAAA,SAAA;AAAA,IACrB,eAAA,EAAiB,UAAU,eAAe,CAAA;AAAA,GAC3C,CAAA,CAAA;AAED,EACE,uBAAA,IAAA;AAAA,IAAC,gBAAA;AAAA,IAAA;AAAA,MACE,GAAG,SAAA;AAAA,MACH,GAAG,iBAAA;AAAA,MACJ,QAAA;AAAA,MACA,GAAK,EAAA,UAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,4BACA,SACC,EAAA,EAAA,QAAA,kBAAA,GAAA;AAAA,UAAC,mBAAA;AAAA,UAAA;AAAA,YACC,aACE,EAAA,OAAA,CAAQ,GAAI,CAAA,QAAA,KAAa,SAAS,oBAAuB,GAAA,KAAA,CAAA;AAAA,YAG3D,QAAC,kBAAA,GAAA,CAAA,gBAAA,EAAA,EAAiB,IAAK,EAAA,OAAA,EAAQ,QAAO,MAAO,EAAA,CAAA;AAAA,WAAA;AAAA,SAEjD,EAAA,CAAA;AAAA,OAAA;AAAA,KAAA;AAAA,GACF,CAAA;AAEJ,CAAC,CAAA;;AC7CM,MAAM,gBAAmB,GAAA,MAAA;AAAA,EAC9B,iBAAkB,CAAA,UAAA;AAAA,EAClB,eAAA;AACF,CAAA;;ACoHA,MAAM,cAAc,cAAiB,GAAA,cAAA,CAAA;AAE9B,MAAM,aAAa,KAAM,CAAA,UAAA;AAAA,EAI9B,CACE;AAAA,IACE,UAAa,GAAA,WAAA;AAAA,IACb,cAAc,CAAC,cAAA;AAAA,IACf,gBAAmB,GAAA,CAAA;AAAA,IACnB,IAAO,GAAA,KAAA;AAAA,IACP,gBAAmB,GAAA,IAAA;AAAA,IACnB,MAAS,GAAA,SAAA;AAAA,IACT,QAAW,GAAA,SAAA;AAAA,IACX,SAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAG,SAAA;AAAA,KAEL,UACG,KAAA;AAGH,IAAM,MAAA,EAAE,gBAAiB,EAAA,GAAI,UAAW,EAAA,CAAA;AACxC,IACE,uBAAA,GAAA,CAAC,mBAAgB,gBACf,EAAA,QAAA,kBAAA,GAAA;AAAA,MAAC,gBAAA;AAAA,MAAA;AAAA,QACE,GAAG,SAAA;AAAA,QACJ,GAAK,EAAA,UAAA;AAAA,QACL,UAAA;AAAA,QACA,WAAA;AAAA,QACA,gBAAA;AAAA,QACA,IAAA;AAAA,QACA,gBAAA;AAAA,QACA,MAAA;AAAA,QAEA,QAAA,kBAAA,GAAA,CAAC,iBAAmB,EAAA,EAAA,GAAG,EAAE,gBAAA,EAAkB,SAAW,EAAA,QAAA,EACpD,EAAA,QAAA,kBAAA,GAAA,CAAC,oBAAsB,EAAA,EAAA,QAAA,EAAS,CAClC,EAAA,CAAA;AAAA,OAAA;AAAA,KAEJ,EAAA,CAAA,CAAA;AAAA,GAEJ;AACF,CAAA;;ACpKO,MAAM,SAAY,GAAA,MAAA,CAAO,iBAAkB,CAAA,GAAA,EAAK,EAAE,CAAA;;AC0BlD,MAAM,MAAM,KAAM,CAAA,UAAA;AAAA,EACvB,CAAC,EAAE,WAAa,EAAA,MAAA,EAAQ,SAAS,IAAM,EAAA,GAAG,SAAU,EAAA,EAAG,UAAe,KAAA;AACpE,IAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,SAAS,WAAW,CAAA,CAAA;AACtD,IACE,uBAAA,GAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QACE,GAAG,SAAA;AAAA,QACJ,MAAM,IAAQ,IAAA,IAAA,GAAA,IAAA,GAAA,SAAA;AAAA,QACd,cAAc,CAAW,OAAA,KAAA;AACvB,UAAA,IAAI,QAAQ,IAAM,EAAA;AAChB,YAAA,YAAA,CAAa,OAAO,CAAA,CAAA;AAAA,WACtB;AAEA,UAAA,OAAA,GAAU,MAAa,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,EAAA,GAAA,OAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,OAAA,EAAA,CAAA;AAAA,SACzB;AAAA,QACA,GAAK,EAAA,UAAA;AAAA,OAAA;AAAA,KACP,CAAA;AAAA,GAEJ;AACF,CAAA;;AC9BO,MAAM,MAAgC,GAAA,CAAA,KAAA,qBAAU,GAAA,CAAAC,QAAA,EAAA,EAAa,GAAG,KAAO,EAAA,CAAA;;ACZjE,MAAA,cAAA,GAAiB,OAAO,QAAU,EAAA;AAAA,EAC7C,MAAQ,EAAA,IAAA;AAAA,EAER,oEAAsE,EAAA;AAAA,IACpE,GAAGC,SAAe,IAAK,CAAA,KAAA;AAAA,IACvB,GAAGA,SAAe,MAAO,CAAA,IAAA;AAAA,GAC3B;AACF,CAAC,CAAA;;ACOY,MAAA,QAAA,GAAW,MAAM,UAG5B,CAAA,CAAC,EAAE,QAAU,EAAA,GAAG,SAAU,EAAA,EAAG,UAAe,KAAA;AAC5C,EAAA,MAAM,EAAE,aAAA,EAAe,eAAgB,EAAA,GAAI,OAAQ,EAAA,CAAA;AAEnD,EAAA,MAAM,iBAAoB,GAAA,kBAAA;AAAA,IACxB,QAAA;AAAA,IACA,eAAA;AAAA,IACA;AAAA,MACE,qBAAuB,EAAA,EAAA;AAAA,MACvB,IAAM,EAAA,OAAA;AAAA,MACN,MAAQ,EAAA,MAAA;AAAA,KACV;AAAA,GACF,CAAA;AAEA,EAAA,eAAA,CAAgB,MAAM;AACpB,IAAc,aAAA,EAAA,CAAA;AACd,IAAA,OAAO,MAAM,eAAgB,EAAA,CAAA;AAAA,GAC5B,EAAA,CAAC,aAAe,EAAA,eAAe,CAAC,CAAA,CAAA;AAEnC,EAAA,uBACG,GAAA,CAAA,cAAA,EAAA,EAAe,GAAK,EAAA,UAAA,EAAa,GAAG,SACnC,EAAA,QAAA,kBAAA,GAAA,CAAC,SAAU,CAAA,GAAA,EAAV,EAAc,OAAO,EAAA,IAAA,EAAC,aAAW,EAAA,IAAA,EAC/B,6BACH,CACF,EAAA,CAAA,CAAA;AAEJ,CAAC,CAAA;;ACxCM,MAAM,gBAAmB,GAAA,KAAA,CAAM,UAGpC,CAAA,CAAC,OAAO,UAAe,KAAA;AACvB,EAAA,MAAM,EAAE,aAAA,EAAe,eAAgB,EAAA,GAAI,OAAQ,EAAA,CAAA;AAEnD,EAAA,eAAA,CAAgB,MAAM;AACpB,IAAc,aAAA,EAAA,CAAA;AACd,IAAA,OAAO,MAAM,eAAgB,EAAA,CAAA;AAAA,GAC5B,EAAA,CAAC,aAAe,EAAA,eAAe,CAAC,CAAA,CAAA;AAEnC,EAAA,uBAAQ,GAAA,CAAA,sBAAA,EAAA,EAAuB,GAAK,EAAA,UAAA,EAAa,GAAG,KAAO,EAAA,CAAA,CAAA;AAC7D,CAAC,CAAA;;AC0CM,MAAM,eAAuD,CAAC;AAAA,EACnE,WAAc,GAAA,KAAA;AAAA,EACd,SAAY,GAAA,KAAA;AAAA,EACZ,eAAkB,GAAA,KAAA;AAAA,EAClB,IAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,GAAG,SAAA;AACL,CAAM,KAAA;AACJ,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,SAAS,WAAW,CAAA,CAAA;AAEtD,EACE,uBAAA,GAAA;AAAA,IAAC,iBAAkB,CAAA,IAAA;AAAA,IAAlB;AAAA,MACE,GAAG,SAAA;AAAA,MACJ,GAAK,EAAA,SAAA;AAAA,MACL,KAAO,EAAA,eAAA;AAAA,MACP,MAAM,IAAQ,IAAA,IAAA,GAAA,IAAA,GAAA,SAAA;AAAA,MACd,cAAc,CAAW,OAAA,KAAA;AACvB,QAAA,IAAI,QAAQ,IAAM,EAAA;AAChB,UAAA,YAAA,CAAa,OAAO,CAAA,CAAA;AAAA,SACtB;AAEA,QAAA,OAAA,GAAU,MAAa,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,EAAA,GAAA,OAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,OAAA,EAAA,CAAA;AAAA,OACzB;AAAA,KAAA;AAAA,GACF,CAAA;AAEJ,EAAA;AAyBA,YAAA,CAAa,YAAe,GAAA,YAAA,CAAA;AAC5B,YAAA,CAAa,OAAU,GAAA,OAAA,CAAA;AACvB,YAAA,CAAa,UAAa,GAAA,UAAA,CAAA;AAC1B,YAAA,CAAa,QAAW,GAAA,QAAA,CAAA;AACxB,YAAA,CAAa,gBAAmB,GAAA,gBAAA,CAAA;AAChC,YAAA,CAAa,IAAO,GAAA,IAAA,CAAA;AACpB,YAAA,CAAa,eAAkB,GAAA,eAAA,CAAA;AAC/B,YAAA,CAAa,QAAW,GAAA,QAAA,CAAA;AACxB,YAAA,CAAa,MAAS,GAAA,MAAA,CAAA;AACtB,YAAA,CAAa,UAAa,GAAA,UAAA,CAAA;AAC1B,YAAA,CAAa,SAAY,GAAA,SAAA,CAAA;AACzB,YAAA,CAAa,SAAY,GAAA,SAAA,CAAA;AACzB,YAAA,CAAa,GAAM,GAAA,GAAA,CAAA;AACnB,YAAA,CAAa,UAAa,GAAA,UAAA,CAAA;AAC1B,YAAA,CAAa,UAAa,GAAA,UAAA,CAAA;AAC1B,YAAA,CAAa,UAAa,GAAA,UAAA,CAAA;AAC1B,YAAA,CAAa,OAAU,GAAA,OAAA;;;;;;;;"}
|
package/dist/types.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ import { DropdownMenuPortalProps } from '@radix-ui/react-dropdown-menu';
|
|
|
9
9
|
import { CSSProperties } from '@stitches/react';
|
|
10
10
|
import { ExtractValidKeys } from '@mirohq/design-system-types';
|
|
11
11
|
import * as _mirohq_design_system_primitive from '@mirohq/design-system-primitive';
|
|
12
|
-
import * as
|
|
12
|
+
import * as _mirohq_design_system_components_primitive from '@mirohq/design-system-components/primitive';
|
|
13
13
|
|
|
14
14
|
declare const StyledCheckboxItem: react.ForwardRefExoticComponent<Omit<Omit<{}, never> & _stitches_react_types_styled_component.TransformProps<{}, {}> & _mirohq_design_system_stitches.SafeProps<Omit<RadixDropdownMenu.DropdownMenuCheckboxItemProps & react.RefAttributes<HTMLDivElement>, "css"> & _stitches_react_types_styled_component.TransformProps<{}, {}> & {
|
|
15
15
|
css?: _stitches_react_types_css_util.CSS<{}, {
|
|
@@ -223,6 +223,7 @@ declare const StyledCheckboxItem: react.ForwardRefExoticComponent<Omit<Omit<{},
|
|
|
223
223
|
readonly 'focus-small-outline': "0 0 0 2px $colors$border-focus-outer, inset 0 0 0 1px $colors$border-focus-middle, inset 0 0 0 2px $colors$border-focus-inner";
|
|
224
224
|
readonly 'focus-large': "0 0 0 4px $colors$border-focus-inner, inset 0 0 0 2px $colors$border-focus-middle, inset 0 0 0 3px $colors$border-focus-outer";
|
|
225
225
|
readonly 'focus-controls': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-focus-middle, 0 0 0 5px $colors$border-focus-outer";
|
|
226
|
+
readonly 'focus-controls-error': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-danger, 0 0 0 5px $colors$background-danger-subtle-hover";
|
|
226
227
|
};
|
|
227
228
|
sizes: {
|
|
228
229
|
readonly number: string;
|
|
@@ -726,6 +727,7 @@ declare const StyledContent: react.ForwardRefExoticComponent<Omit<Omit<{
|
|
|
726
727
|
readonly 'focus-small-outline': "0 0 0 2px $colors$border-focus-outer, inset 0 0 0 1px $colors$border-focus-middle, inset 0 0 0 2px $colors$border-focus-inner";
|
|
727
728
|
readonly 'focus-large': "0 0 0 4px $colors$border-focus-inner, inset 0 0 0 2px $colors$border-focus-middle, inset 0 0 0 3px $colors$border-focus-outer";
|
|
728
729
|
readonly 'focus-controls': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-focus-middle, 0 0 0 5px $colors$border-focus-outer";
|
|
730
|
+
readonly 'focus-controls-error': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-danger, 0 0 0 5px $colors$background-danger-subtle-hover";
|
|
729
731
|
};
|
|
730
732
|
sizes: {
|
|
731
733
|
readonly number: string;
|
|
@@ -1336,6 +1338,7 @@ declare const StyledItem: react.ForwardRefExoticComponent<Omit<Omit<{
|
|
|
1336
1338
|
readonly 'focus-small-outline': "0 0 0 2px $colors$border-focus-outer, inset 0 0 0 1px $colors$border-focus-middle, inset 0 0 0 2px $colors$border-focus-inner";
|
|
1337
1339
|
readonly 'focus-large': "0 0 0 4px $colors$border-focus-inner, inset 0 0 0 2px $colors$border-focus-middle, inset 0 0 0 3px $colors$border-focus-outer";
|
|
1338
1340
|
readonly 'focus-controls': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-focus-middle, 0 0 0 5px $colors$border-focus-outer";
|
|
1341
|
+
readonly 'focus-controls-error': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-danger, 0 0 0 5px $colors$background-danger-subtle-hover";
|
|
1339
1342
|
};
|
|
1340
1343
|
sizes: {
|
|
1341
1344
|
readonly number: string;
|
|
@@ -1829,6 +1832,7 @@ declare const StyledRadioGroup: react.ForwardRefExoticComponent<Omit<Omit<{}, ne
|
|
|
1829
1832
|
readonly 'focus-small-outline': "0 0 0 2px $colors$border-focus-outer, inset 0 0 0 1px $colors$border-focus-middle, inset 0 0 0 2px $colors$border-focus-inner";
|
|
1830
1833
|
readonly 'focus-large': "0 0 0 4px $colors$border-focus-inner, inset 0 0 0 2px $colors$border-focus-middle, inset 0 0 0 3px $colors$border-focus-outer";
|
|
1831
1834
|
readonly 'focus-controls': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-focus-middle, 0 0 0 5px $colors$border-focus-outer";
|
|
1835
|
+
readonly 'focus-controls-error': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-danger, 0 0 0 5px $colors$background-danger-subtle-hover";
|
|
1832
1836
|
};
|
|
1833
1837
|
sizes: {
|
|
1834
1838
|
readonly number: string;
|
|
@@ -2311,6 +2315,7 @@ declare const StyledRadioItem: react.ForwardRefExoticComponent<Omit<Omit<{}, nev
|
|
|
2311
2315
|
readonly 'focus-small-outline': "0 0 0 2px $colors$border-focus-outer, inset 0 0 0 1px $colors$border-focus-middle, inset 0 0 0 2px $colors$border-focus-inner";
|
|
2312
2316
|
readonly 'focus-large': "0 0 0 4px $colors$border-focus-inner, inset 0 0 0 2px $colors$border-focus-middle, inset 0 0 0 3px $colors$border-focus-outer";
|
|
2313
2317
|
readonly 'focus-controls': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-focus-middle, 0 0 0 5px $colors$border-focus-outer";
|
|
2318
|
+
readonly 'focus-controls-error': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-danger, 0 0 0 5px $colors$background-danger-subtle-hover";
|
|
2314
2319
|
};
|
|
2315
2320
|
sizes: {
|
|
2316
2321
|
readonly number: string;
|
|
@@ -2806,6 +2811,7 @@ declare const StyledSeparator: react.ForwardRefExoticComponent<Omit<Omit<{}, nev
|
|
|
2806
2811
|
readonly 'focus-small-outline': "0 0 0 2px $colors$border-focus-outer, inset 0 0 0 1px $colors$border-focus-middle, inset 0 0 0 2px $colors$border-focus-inner";
|
|
2807
2812
|
readonly 'focus-large': "0 0 0 4px $colors$border-focus-inner, inset 0 0 0 2px $colors$border-focus-middle, inset 0 0 0 3px $colors$border-focus-outer";
|
|
2808
2813
|
readonly 'focus-controls': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-focus-middle, 0 0 0 5px $colors$border-focus-outer";
|
|
2814
|
+
readonly 'focus-controls-error': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-danger, 0 0 0 5px $colors$background-danger-subtle-hover";
|
|
2809
2815
|
};
|
|
2810
2816
|
sizes: {
|
|
2811
2817
|
readonly number: string;
|
|
@@ -3280,6 +3286,7 @@ declare const StyledSwitchItem: react.ForwardRefExoticComponent<Omit<Omit<{}, ne
|
|
|
3280
3286
|
readonly 'focus-small-outline': "0 0 0 2px $colors$border-focus-outer, inset 0 0 0 1px $colors$border-focus-middle, inset 0 0 0 2px $colors$border-focus-inner";
|
|
3281
3287
|
readonly 'focus-large': "0 0 0 4px $colors$border-focus-inner, inset 0 0 0 2px $colors$border-focus-middle, inset 0 0 0 3px $colors$border-focus-outer";
|
|
3282
3288
|
readonly 'focus-controls': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-focus-middle, 0 0 0 5px $colors$border-focus-outer";
|
|
3289
|
+
readonly 'focus-controls-error': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-danger, 0 0 0 5px $colors$background-danger-subtle-hover";
|
|
3283
3290
|
};
|
|
3284
3291
|
sizes: {
|
|
3285
3292
|
readonly number: string;
|
|
@@ -3783,6 +3790,7 @@ declare const StyledTrigger: react.ForwardRefExoticComponent<Omit<Omit<{
|
|
|
3783
3790
|
readonly 'focus-small-outline': "0 0 0 2px $colors$border-focus-outer, inset 0 0 0 1px $colors$border-focus-middle, inset 0 0 0 2px $colors$border-focus-inner";
|
|
3784
3791
|
readonly 'focus-large': "0 0 0 4px $colors$border-focus-inner, inset 0 0 0 2px $colors$border-focus-middle, inset 0 0 0 3px $colors$border-focus-outer";
|
|
3785
3792
|
readonly 'focus-controls': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-focus-middle, 0 0 0 5px $colors$border-focus-outer";
|
|
3793
|
+
readonly 'focus-controls-error': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-danger, 0 0 0 5px $colors$background-danger-subtle-hover";
|
|
3786
3794
|
};
|
|
3787
3795
|
sizes: {
|
|
3788
3796
|
readonly number: string;
|
|
@@ -4259,6 +4267,7 @@ declare const StyledSubTrigger: react.ForwardRefExoticComponent<Omit<Omit<{}, ne
|
|
|
4259
4267
|
readonly 'focus-small-outline': "0 0 0 2px $colors$border-focus-outer, inset 0 0 0 1px $colors$border-focus-middle, inset 0 0 0 2px $colors$border-focus-inner";
|
|
4260
4268
|
readonly 'focus-large': "0 0 0 4px $colors$border-focus-inner, inset 0 0 0 2px $colors$border-focus-middle, inset 0 0 0 3px $colors$border-focus-outer";
|
|
4261
4269
|
readonly 'focus-controls': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-focus-middle, 0 0 0 5px $colors$border-focus-outer";
|
|
4270
|
+
readonly 'focus-controls-error': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-danger, 0 0 0 5px $colors$background-danger-subtle-hover";
|
|
4262
4271
|
};
|
|
4263
4272
|
sizes: {
|
|
4264
4273
|
readonly number: string;
|
|
@@ -4743,6 +4752,7 @@ declare const StyledSubContent: react.ForwardRefExoticComponent<Omit<Omit<{}, ne
|
|
|
4743
4752
|
readonly 'focus-small-outline': "0 0 0 2px $colors$border-focus-outer, inset 0 0 0 1px $colors$border-focus-middle, inset 0 0 0 2px $colors$border-focus-inner";
|
|
4744
4753
|
readonly 'focus-large': "0 0 0 4px $colors$border-focus-inner, inset 0 0 0 2px $colors$border-focus-middle, inset 0 0 0 3px $colors$border-focus-outer";
|
|
4745
4754
|
readonly 'focus-controls': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-focus-middle, 0 0 0 5px $colors$border-focus-outer";
|
|
4755
|
+
readonly 'focus-controls-error': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-danger, 0 0 0 5px $colors$background-danger-subtle-hover";
|
|
4746
4756
|
};
|
|
4747
4757
|
sizes: {
|
|
4748
4758
|
readonly number: string;
|
|
@@ -5304,6 +5314,7 @@ declare const StyledSub: react.ForwardRefExoticComponent<Omit<{}, never> & _stit
|
|
|
5304
5314
|
readonly 'focus-small-outline': "0 0 0 2px $colors$border-focus-outer, inset 0 0 0 1px $colors$border-focus-middle, inset 0 0 0 2px $colors$border-focus-inner";
|
|
5305
5315
|
readonly 'focus-large': "0 0 0 4px $colors$border-focus-inner, inset 0 0 0 2px $colors$border-focus-middle, inset 0 0 0 3px $colors$border-focus-outer";
|
|
5306
5316
|
readonly 'focus-controls': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-focus-middle, 0 0 0 5px $colors$border-focus-outer";
|
|
5317
|
+
readonly 'focus-controls-error': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-danger, 0 0 0 5px $colors$background-danger-subtle-hover";
|
|
5307
5318
|
};
|
|
5308
5319
|
sizes: {
|
|
5309
5320
|
readonly number: string;
|
|
@@ -5814,6 +5825,7 @@ declare const ItemDescription: react.ForwardRefExoticComponent<Omit<Omit<{}, nev
|
|
|
5814
5825
|
readonly 'focus-small-outline': "0 0 0 2px $colors$border-focus-outer, inset 0 0 0 1px $colors$border-focus-middle, inset 0 0 0 2px $colors$border-focus-inner";
|
|
5815
5826
|
readonly 'focus-large': "0 0 0 4px $colors$border-focus-inner, inset 0 0 0 2px $colors$border-focus-middle, inset 0 0 0 3px $colors$border-focus-outer";
|
|
5816
5827
|
readonly 'focus-controls': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-focus-middle, 0 0 0 5px $colors$border-focus-outer";
|
|
5828
|
+
readonly 'focus-controls-error': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-danger, 0 0 0 5px $colors$background-danger-subtle-hover";
|
|
5817
5829
|
};
|
|
5818
5830
|
sizes: {
|
|
5819
5831
|
readonly number: string;
|
|
@@ -6287,6 +6299,7 @@ declare const StyledIconSlot: react.ForwardRefExoticComponent<Omit<Omit<{}, neve
|
|
|
6287
6299
|
readonly 'focus-small-outline': "0 0 0 2px $colors$border-focus-outer, inset 0 0 0 1px $colors$border-focus-middle, inset 0 0 0 2px $colors$border-focus-inner";
|
|
6288
6300
|
readonly 'focus-large': "0 0 0 4px $colors$border-focus-inner, inset 0 0 0 2px $colors$border-focus-middle, inset 0 0 0 3px $colors$border-focus-outer";
|
|
6289
6301
|
readonly 'focus-controls': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-focus-middle, 0 0 0 5px $colors$border-focus-outer";
|
|
6302
|
+
readonly 'focus-controls-error': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-danger, 0 0 0 5px $colors$background-danger-subtle-hover";
|
|
6290
6303
|
};
|
|
6291
6304
|
sizes: {
|
|
6292
6305
|
readonly number: string;
|
|
@@ -6754,6 +6767,7 @@ declare const StyledIconSlot: react.ForwardRefExoticComponent<Omit<Omit<{}, neve
|
|
|
6754
6767
|
readonly 'focus-small-outline': "0 0 0 2px $colors$border-focus-outer, inset 0 0 0 1px $colors$border-focus-middle, inset 0 0 0 2px $colors$border-focus-inner";
|
|
6755
6768
|
readonly 'focus-large': "0 0 0 4px $colors$border-focus-inner, inset 0 0 0 2px $colors$border-focus-middle, inset 0 0 0 3px $colors$border-focus-outer";
|
|
6756
6769
|
readonly 'focus-controls': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-focus-middle, 0 0 0 5px $colors$border-focus-outer";
|
|
6770
|
+
readonly 'focus-controls-error': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-danger, 0 0 0 5px $colors$background-danger-subtle-hover";
|
|
6757
6771
|
};
|
|
6758
6772
|
sizes: {
|
|
6759
6773
|
readonly number: string;
|
|
@@ -7225,6 +7239,7 @@ declare const StyledIconSlot: react.ForwardRefExoticComponent<Omit<Omit<{}, neve
|
|
|
7225
7239
|
readonly 'focus-small-outline': "0 0 0 2px $colors$border-focus-outer, inset 0 0 0 1px $colors$border-focus-middle, inset 0 0 0 2px $colors$border-focus-inner";
|
|
7226
7240
|
readonly 'focus-large': "0 0 0 4px $colors$border-focus-inner, inset 0 0 0 2px $colors$border-focus-middle, inset 0 0 0 3px $colors$border-focus-outer";
|
|
7227
7241
|
readonly 'focus-controls': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-focus-middle, 0 0 0 5px $colors$border-focus-outer";
|
|
7242
|
+
readonly 'focus-controls-error': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-danger, 0 0 0 5px $colors$background-danger-subtle-hover";
|
|
7228
7243
|
};
|
|
7229
7244
|
sizes: {
|
|
7230
7245
|
readonly number: string;
|
|
@@ -7480,7 +7495,7 @@ declare const StyledIconSlot: react.ForwardRefExoticComponent<Omit<Omit<{}, neve
|
|
|
7480
7495
|
}> | undefined;
|
|
7481
7496
|
}> & {
|
|
7482
7497
|
children?: react.ReactNode;
|
|
7483
|
-
} & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLDivElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<
|
|
7498
|
+
} & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLDivElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<_mirohq_design_system_components_primitive.PrimitiveProps<"div">>, {}, {}>, {}, {}>;
|
|
7484
7499
|
declare type StyledIconSlotProps = StrictComponentProps<typeof StyledIconSlot>;
|
|
7485
7500
|
|
|
7486
7501
|
declare type IconSlotProps = Omit<StyledIconSlotProps, 'custom'>;
|
|
@@ -7702,6 +7717,7 @@ declare const HotkeySlot: react.ForwardRefExoticComponent<Omit<Omit<{}, never> &
|
|
|
7702
7717
|
readonly 'focus-small-outline': "0 0 0 2px $colors$border-focus-outer, inset 0 0 0 1px $colors$border-focus-middle, inset 0 0 0 2px $colors$border-focus-inner";
|
|
7703
7718
|
readonly 'focus-large': "0 0 0 4px $colors$border-focus-inner, inset 0 0 0 2px $colors$border-focus-middle, inset 0 0 0 3px $colors$border-focus-outer";
|
|
7704
7719
|
readonly 'focus-controls': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-focus-middle, 0 0 0 5px $colors$border-focus-outer";
|
|
7720
|
+
readonly 'focus-controls-error': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-danger, 0 0 0 5px $colors$background-danger-subtle-hover";
|
|
7705
7721
|
};
|
|
7706
7722
|
sizes: {
|
|
7707
7723
|
readonly number: string;
|
|
@@ -8169,6 +8185,7 @@ declare const HotkeySlot: react.ForwardRefExoticComponent<Omit<Omit<{}, never> &
|
|
|
8169
8185
|
readonly 'focus-small-outline': "0 0 0 2px $colors$border-focus-outer, inset 0 0 0 1px $colors$border-focus-middle, inset 0 0 0 2px $colors$border-focus-inner";
|
|
8170
8186
|
readonly 'focus-large': "0 0 0 4px $colors$border-focus-inner, inset 0 0 0 2px $colors$border-focus-middle, inset 0 0 0 3px $colors$border-focus-outer";
|
|
8171
8187
|
readonly 'focus-controls': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-focus-middle, 0 0 0 5px $colors$border-focus-outer";
|
|
8188
|
+
readonly 'focus-controls-error': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-danger, 0 0 0 5px $colors$background-danger-subtle-hover";
|
|
8172
8189
|
};
|
|
8173
8190
|
sizes: {
|
|
8174
8191
|
readonly number: string;
|
|
@@ -8640,6 +8657,7 @@ declare const HotkeySlot: react.ForwardRefExoticComponent<Omit<Omit<{}, never> &
|
|
|
8640
8657
|
readonly 'focus-small-outline': "0 0 0 2px $colors$border-focus-outer, inset 0 0 0 1px $colors$border-focus-middle, inset 0 0 0 2px $colors$border-focus-inner";
|
|
8641
8658
|
readonly 'focus-large': "0 0 0 4px $colors$border-focus-inner, inset 0 0 0 2px $colors$border-focus-middle, inset 0 0 0 3px $colors$border-focus-outer";
|
|
8642
8659
|
readonly 'focus-controls': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-focus-middle, 0 0 0 5px $colors$border-focus-outer";
|
|
8660
|
+
readonly 'focus-controls-error': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-danger, 0 0 0 5px $colors$background-danger-subtle-hover";
|
|
8643
8661
|
};
|
|
8644
8662
|
sizes: {
|
|
8645
8663
|
readonly number: string;
|
|
@@ -9113,6 +9131,7 @@ declare const StyledIllustrationSlot: react.ForwardRefExoticComponent<Omit<Omit<
|
|
|
9113
9131
|
readonly 'focus-small-outline': "0 0 0 2px $colors$border-focus-outer, inset 0 0 0 1px $colors$border-focus-middle, inset 0 0 0 2px $colors$border-focus-inner";
|
|
9114
9132
|
readonly 'focus-large': "0 0 0 4px $colors$border-focus-inner, inset 0 0 0 2px $colors$border-focus-middle, inset 0 0 0 3px $colors$border-focus-outer";
|
|
9115
9133
|
readonly 'focus-controls': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-focus-middle, 0 0 0 5px $colors$border-focus-outer";
|
|
9134
|
+
readonly 'focus-controls-error': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-danger, 0 0 0 5px $colors$background-danger-subtle-hover";
|
|
9116
9135
|
};
|
|
9117
9136
|
sizes: {
|
|
9118
9137
|
readonly number: string;
|
|
@@ -9580,6 +9599,7 @@ declare const StyledIllustrationSlot: react.ForwardRefExoticComponent<Omit<Omit<
|
|
|
9580
9599
|
readonly 'focus-small-outline': "0 0 0 2px $colors$border-focus-outer, inset 0 0 0 1px $colors$border-focus-middle, inset 0 0 0 2px $colors$border-focus-inner";
|
|
9581
9600
|
readonly 'focus-large': "0 0 0 4px $colors$border-focus-inner, inset 0 0 0 2px $colors$border-focus-middle, inset 0 0 0 3px $colors$border-focus-outer";
|
|
9582
9601
|
readonly 'focus-controls': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-focus-middle, 0 0 0 5px $colors$border-focus-outer";
|
|
9602
|
+
readonly 'focus-controls-error': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-danger, 0 0 0 5px $colors$background-danger-subtle-hover";
|
|
9583
9603
|
};
|
|
9584
9604
|
sizes: {
|
|
9585
9605
|
readonly number: string;
|
|
@@ -10051,6 +10071,7 @@ declare const StyledIllustrationSlot: react.ForwardRefExoticComponent<Omit<Omit<
|
|
|
10051
10071
|
readonly 'focus-small-outline': "0 0 0 2px $colors$border-focus-outer, inset 0 0 0 1px $colors$border-focus-middle, inset 0 0 0 2px $colors$border-focus-inner";
|
|
10052
10072
|
readonly 'focus-large': "0 0 0 4px $colors$border-focus-inner, inset 0 0 0 2px $colors$border-focus-middle, inset 0 0 0 3px $colors$border-focus-outer";
|
|
10053
10073
|
readonly 'focus-controls': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-focus-middle, 0 0 0 5px $colors$border-focus-outer";
|
|
10074
|
+
readonly 'focus-controls-error': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-danger, 0 0 0 5px $colors$background-danger-subtle-hover";
|
|
10054
10075
|
};
|
|
10055
10076
|
sizes: {
|
|
10056
10077
|
readonly number: string;
|
|
@@ -10306,7 +10327,7 @@ declare const StyledIllustrationSlot: react.ForwardRefExoticComponent<Omit<Omit<
|
|
|
10306
10327
|
}> | undefined;
|
|
10307
10328
|
}> & {
|
|
10308
10329
|
children?: react.ReactNode;
|
|
10309
|
-
} & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLDivElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<
|
|
10330
|
+
} & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLDivElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<_mirohq_design_system_components_primitive.PrimitiveProps<"div">>, {}, {}>, {}, {}>;
|
|
10310
10331
|
declare type StyledIllustrationSlotProps = StrictComponentProps<typeof StyledIllustrationSlot>;
|
|
10311
10332
|
|
|
10312
10333
|
declare const IllustrationSlot: react__default.ForwardRefExoticComponent<Omit<StyledIllustrationSlotProps, "ref"> & react__default.RefAttributes<HTMLDivElement>>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mirohq/design-system-dropdown-menu",
|
|
3
|
-
"version": "3.5.
|
|
3
|
+
"version": "3.5.11-select.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"author": "Miro",
|
|
6
6
|
"source": "src/index.ts",
|
|
@@ -29,15 +29,15 @@
|
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"@radix-ui/react-dropdown-menu": "^2.0.5",
|
|
31
31
|
"@react-aria/utils": "^3.13.0",
|
|
32
|
-
"@mirohq/design-system-base-icon": "^0.1.
|
|
33
|
-
"@mirohq/design-system-stitches": "^2.3.9",
|
|
34
|
-
"@mirohq/design-system-base-switch": "^0.1.7",
|
|
32
|
+
"@mirohq/design-system-base-icon": "^0.1.9-select.0",
|
|
35
33
|
"@mirohq/design-system-primitive": "^1.1.1",
|
|
36
|
-
"@mirohq/design-system-scroll-area": "^0.1.
|
|
37
|
-
"@mirohq/design-system-
|
|
34
|
+
"@mirohq/design-system-scroll-area": "^0.1.9-select.0",
|
|
35
|
+
"@mirohq/design-system-stitches": "^2.3.10-select.0",
|
|
36
|
+
"@mirohq/design-system-styles": "^1.1.6-select.0",
|
|
38
37
|
"@mirohq/design-system-types": "^0.6.2",
|
|
39
38
|
"@mirohq/design-system-use-layout-effect": "^0.2.1",
|
|
40
|
-
"@mirohq/design-system-utils": "^0.14.3"
|
|
39
|
+
"@mirohq/design-system-utils": "^0.14.3",
|
|
40
|
+
"@mirohq/design-system-base-switch": "^0.1.8-select.0"
|
|
41
41
|
},
|
|
42
42
|
"scripts": {
|
|
43
43
|
"build": "rollup -c ../../../rollup.config.js",
|