@mirohq/design-system-calendar 2.1.20-fix-button-types.2 → 2.1.20

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.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sources":["../src/partials/trigger.styled.tsx","../src/partials/clear-action.styled.tsx","../src/partials/clear-action.tsx","../src/use-calendar-context.tsx","../src/partials/trigger.tsx","../src/partials/content.styled.tsx","../src/partials/header.styled.tsx","../src/partials/header-button.tsx","../src/partials/header.tsx","../src/partials/cell.styled.tsx","../src/partials/cell.tsx","../src/partials/grid.styled.tsx","../src/partials/grid.tsx","../src/partials/predefined-ranges.styled.tsx","../src/partials/predefined-ranges.tsx","../src/partials/content.tsx","../src/partials/value.styled.tsx","../src/partials/value.tsx","../src/partials/clear-button.tsx","../src/partials/save-button.tsx","../src/calendar.styled.tsx","../src/calendar.tsx"],"sourcesContent":["import { Primitive } from '@mirohq/design-system-primitive'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { textFieldStyles } from '@mirohq/design-system-base-text-field'\nimport { focus } from '@mirohq/design-system-styles'\nimport { BaseButton } from '@mirohq/design-system-base-button'\n\nexport const StyledPlaceholder = styled(Primitive.span, {\n color: textFieldStyles.base.placeholder.color,\n padding: '0 $50',\n})\n\nexport const StyledValue = styled(Primitive.span, {\n padding: '0 $50',\n})\n\nexport const StyledIconContainer = styled(Primitive.span, {\n display: 'flex',\n justifyContent: 'center',\n padding: '6px',\n color: '$text-neutrals-subtle',\n})\n\nexport const StyledTrigger = styled(BaseButton, {\n display: 'inline-flex',\n gap: '$50',\n justifyContent: 'space-between',\n alignItems: 'center',\n height: '$10',\n padding: '0 $100',\n minWidth: '230px',\n\n ...textFieldStyles.variants.idle,\n\n _hover: textFieldStyles.variants.hovered,\n ...focus.css({\n boxShadow: '$focus',\n }),\n\n '&:disabled, &[aria-disabled=\"true\"]': {\n ...textFieldStyles.variants.disabled,\n color: '$text-neutrals-disabled',\n },\n\n variants: {\n withClearButton: {\n true: {\n paddingRight: 'calc($100 + $400)', // initial left padding + clear button width + gap\n },\n },\n },\n})\n\nexport const StyledCustomTrigger = styled(BaseButton, {\n width: '100%',\n height: 'unset',\n padding: '0',\n backgroundColor: '$transparent',\n border: 'none',\n cursor: 'pointer',\n})\n\nexport type StyledTriggerProps = StrictComponentProps<typeof StyledTrigger>\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { ComponentPropsWithRef } from 'react'\nimport { actionButtonStyles } from '@mirohq/design-system-base-text-field'\nimport { BaseButton } from '@mirohq/design-system-base-button'\n\nexport const StyledClearAction = styled(BaseButton, {\n position: 'absolute',\n top: 0,\n bottom: 0,\n right: 'calc($100 + 1px)', // to compensate border width\n margin: 'auto',\n\n ...actionButtonStyles,\n\n '&:disabled, &[aria-disabled=\"true\"]': {\n color: '$icon-neutrals-disabled',\n },\n})\n\nexport type StyledClearActionProps = ComponentPropsWithRef<\n typeof StyledClearAction\n>\n","import type { ElementRef } from 'react'\nimport React from 'react'\nimport { IconCross } from '@mirohq/design-system-icons'\nimport { Tooltip } from '@mirohq/design-system-tooltip'\n\nimport type { StyledClearActionProps } from './clear-action.styled'\nimport { StyledClearAction } from './clear-action.styled'\n\ninterface ClearActionProps extends Omit<StyledClearActionProps, 'children'> {\n label: string\n}\n\nexport const ClearAction = React.forwardRef<\n ElementRef<typeof StyledClearAction>,\n ClearActionProps\n>(({ 'aria-label': ariaLabel, label, ...restProps }, forwardRef) => (\n <Tooltip>\n <Tooltip.Trigger asChild>\n <StyledClearAction\n {...restProps}\n ref={forwardRef}\n aria-label={ariaLabel ?? label}\n >\n <IconCross />\n </StyledClearAction>\n </Tooltip.Trigger>\n <Tooltip.Content>{label}</Tooltip.Content>\n </Tooltip>\n))\n","import React, {\n createContext,\n useCallback,\n useContext,\n useMemo,\n useState,\n} from 'react'\nimport type { DateRange, DateValue } from 'react-aria'\nimport type { DateDuration } from '@internationalized/date'\nimport { useControllableState } from '@radix-ui/react-use-controllable-state'\nimport type { Booleanish } from '@mirohq/design-system-types'\n\nimport type { PredefinedValue } from './types'\n\ninterface SharedProps<T extends DateRange | DateValue> {\n picker: 'single' | 'range'\n minDate?: DateValue\n maxDate?: DateValue\n disabled?: boolean\n ariaDisabled?: Booleanish\n predefinedValues?: Array<PredefinedValue<T>>\n}\n\ninterface CalendarContextProps<T extends DateRange | DateValue>\n extends SharedProps<T> {\n visibleDuration: DateDuration\n\n value?: T\n setValue: React.Dispatch<React.SetStateAction<T | undefined>>\n\n open: boolean\n setOpen: React.Dispatch<React.SetStateAction<boolean | undefined>>\n\n setImmediateSave: React.Dispatch<React.SetStateAction<boolean>>\n\n calendarValue?: T | null\n calendarDefaultValue?: T | null\n onCalendarDateClick: (date: T) => void\n onSaveClick: () => void\n}\n\nexport interface CalendarProviderProps<T extends DateRange | DateValue>\n extends SharedProps<T> {\n children?: React.ReactNode\n visibleMonths?: number\n\n defaultValue?: T\n value?: T\n onValueChange?: (value: T | undefined) => void\n\n defaultOpen?: boolean\n open?: boolean\n onOpen?: () => void\n onClose?: () => void\n}\n\nconst CalendarContext = createContext<CalendarContextProps<any>>({} as any)\n\nexport const CalendarProvider = <T extends DateRange | DateValue>({\n children,\n visibleMonths = 1,\n value: valueProp,\n defaultValue: defaultValueProp,\n onValueChange,\n open: openProp,\n defaultOpen: defaultOpenProp,\n onOpen,\n onClose,\n ...restProps\n}: CalendarProviderProps<T>): JSX.Element => {\n const [immediateSave, setImmediateSave] = useState(false)\n const [internalCalendarValue, setInternalCalendarValue] = useState<\n T | undefined\n >(valueProp ?? defaultValueProp)\n\n const visibleDuration = useMemo(\n () => ({\n months: visibleMonths,\n }),\n [visibleMonths]\n )\n\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValueProp,\n onChange: onValueChange,\n })\n\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpenProp,\n onChange: state => {\n if (state) {\n onOpen?.()\n } else {\n onClose?.()\n }\n },\n })\n\n const onCalendarDateClick = useCallback(\n (value: T): void => {\n if (immediateSave) {\n setInternalCalendarValue(value)\n } else {\n setValue(value)\n setOpen(false)\n }\n },\n [setValue, setOpen, immediateSave, setInternalCalendarValue]\n )\n\n const onSaveClick = (): void => {\n setValue(internalCalendarValue)\n setOpen(false)\n }\n\n return (\n <CalendarContext.Provider\n value={{\n ...restProps,\n visibleDuration,\n value: value,\n setValue,\n open,\n setOpen,\n onCalendarDateClick,\n setImmediateSave,\n onSaveClick,\n // value should not be undefined otherwise react-aria calendar will complain in console\n calendarValue: (immediateSave ? internalCalendarValue : value) ?? null,\n }}\n >\n {children}\n </CalendarContext.Provider>\n )\n}\n\nexport const useCalendarContext = <\n T extends DateRange | DateValue\n>(): CalendarContextProps<T> => useContext(CalendarContext)\n","import type { ElementRef } from 'react'\nimport React from 'react'\nimport { IconCalendarBlank } from '@mirohq/design-system-icons'\nimport { useFormFieldContext } from '@mirohq/design-system-base-form'\nimport { Trigger as RadixTrigger } from '@radix-ui/react-popover'\nimport { booleanify, stringAttrValue } from '@mirohq/design-system-utils'\n\nimport type { StyledTriggerProps } from './trigger.styled'\nimport {\n StyledIconContainer,\n StyledCustomTrigger,\n StyledPlaceholder,\n StyledTrigger,\n StyledValue,\n} from './trigger.styled'\nimport { ClearAction } from './clear-action'\nimport { useCalendarContext } from '../use-calendar-context'\n\ntype TriggerSharedProps = Omit<StyledTriggerProps, 'withClearButton'> & {\n /**\n * The content that will be rendered inside the Calendar trigger when there is no value\n */\n placeholder?: string\n\n /**\n * Show a button to clear the Calendar value\n * @default false\n */\n clearable?: boolean\n\n /**\n * The content\n */\n children: React.ReactNode\n}\n\nexport type TriggerProps = TriggerSharedProps &\n (\n | { clearable: false; clearLabel?: never; onClear?: never }\n | {\n /**\n * Event handler called when the calendar is cleared\n */\n onClear?: () => void\n\n /**\n * The label text for Trigger's action button when Combobox has values selected. Will be rendered in a Tooltip.\n */\n clearLabel: string\n }\n )\n\nexport const Trigger = React.forwardRef<ElementRef<'button'>, TriggerProps>(\n (\n {\n id,\n 'aria-describedby': ariaDescribedBy,\n placeholder,\n asChild = false,\n clearable = true,\n clearLabel,\n onClear,\n children,\n ...restProps\n },\n forwardRef\n ) => {\n const { value, setValue, disabled, ariaDisabled } = useCalendarContext()\n\n const { formElementId, ariaDescribedBy: formFieldContextDescribedBy } =\n useFormFieldContext()\n\n if (asChild) {\n return (\n <RadixTrigger ref={forwardRef} asChild>\n <StyledCustomTrigger asChild {...restProps}>\n {children}\n </StyledCustomTrigger>\n </RadixTrigger>\n )\n }\n\n const onClearHandler = (): void => {\n setValue(undefined)\n if (onClear !== undefined) {\n onClear()\n }\n }\n\n const clearButtonVisible =\n clearable && value != null && clearLabel !== undefined\n\n return (\n <>\n <RadixTrigger ref={forwardRef} asChild>\n <StyledTrigger\n id={id ?? formElementId}\n aria-describedby={stringAttrValue(\n ariaDescribedBy,\n formFieldContextDescribedBy\n )}\n withClearButton={clearButtonVisible}\n disabled={disabled}\n aria-disabled={ariaDisabled}\n {...restProps}\n >\n {value != null ? (\n <StyledValue>{children}</StyledValue>\n ) : (\n <StyledPlaceholder>{placeholder}</StyledPlaceholder>\n )}\n\n {!clearButtonVisible && (\n <StyledIconContainer>\n <IconCalendarBlank size='small' />\n </StyledIconContainer>\n )}\n </StyledTrigger>\n </RadixTrigger>\n {clearButtonVisible && (\n <ClearAction\n label={clearLabel}\n onPress={onClearHandler}\n disabled={disabled ?? booleanify(ariaDisabled)}\n />\n )}\n </>\n )\n }\n)\n","import type { ComponentPropsWithRef } from 'react'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { Flex } from '@mirohq/design-system-flex'\nimport { Content as RadixContent } from '@radix-ui/react-popover'\n\nexport const StyledContent = styled(RadixContent, {\n zIndex: '$calendar',\n background: '$background-neutrals',\n borderRadius: '$100',\n boxShadow: '$100',\n})\n\nexport const StyledCalendarBody = styled(Flex, {\n padding: '$200',\n gap: '$200',\n})\n\nexport const StyledGridContent = styled(Flex, {})\n\nexport const StyledBodyContentLeft = styled(Primitive.div, {})\n\nexport const StyledBodyContentRight = styled(Primitive.div, {\n paddingLeft: '$200',\n})\n\nexport const StyledClearContent = styled(Primitive.div, {\n display: 'flex',\n gap: '$100',\n padding: '$200',\n borderTop: '1px solid $border-neutrals',\n})\n\nexport type StyledContentProps = ComponentPropsWithRef<typeof StyledContent>\n","import { styled } from '@mirohq/design-system-stitches'\nimport { Flex } from '@mirohq/design-system-flex'\nimport { Heading } from '@mirohq/design-system-typography'\n\nexport const StyledHeaderTitle = styled(Heading, {\n margin: 0,\n flex: '2',\n textAlign: 'center',\n})\n\nexport const StyledHeaderPlaceholder = styled('div', {\n height: '$8',\n // to compensate icon buttons' width and space between 2 calendars\n width: 'calc($8 * 2 + $space$200)',\n})\n\nexport const StyledHeader = styled(Flex, {\n color: '$text-neutrals',\n height: '$8',\n alignItems: 'center',\n justifyContent: 'space-between',\n})\n","import type { ElementRef } from 'react'\nimport React from 'react'\nimport type { IconButtonProps } from '@mirohq/design-system-icon-button'\nimport { IconButton } from '@mirohq/design-system-icon-button'\n\nexport type HeaderButtonProps = IconButtonProps & {\n onFocus?: () => void\n onPress?: () => void\n isDisabled?: boolean // name comes from react-aria\n 'aria-label': string\n}\n\nexport const HeaderButton = React.forwardRef<\n ElementRef<'button'>,\n HeaderButtonProps\n>(({ isDisabled, children, ...restProps }, forwardRef) => (\n <IconButton\n {...restProps}\n size='medium'\n disabled={isDisabled}\n ref={forwardRef}\n >\n {children}\n </IconButton>\n)) as React.ForwardRefExoticComponent<HeaderButtonProps>\n","import React from 'react'\nimport { useDateFormatter } from 'react-aria'\nimport type { CalendarState, RangeCalendarState } from 'react-stately'\nimport { IconChevronLeft, IconChevronRight } from '@mirohq/design-system-icons'\n\nimport {\n StyledHeaderPlaceholder,\n StyledHeader,\n StyledHeaderTitle,\n} from './header.styled'\nimport type { HeaderButtonProps } from './header-button'\nimport { HeaderButton } from './header-button'\n\ninterface IHeader {\n state: RangeCalendarState | CalendarState\n prevButtonProps: HeaderButtonProps\n nextButtonProps: HeaderButtonProps\n visibleMonths?: number\n}\n\nexport const Header = ({\n state,\n prevButtonProps,\n nextButtonProps,\n visibleMonths,\n}: IHeader): React.ReactNode => {\n const monthDateFormatter = useDateFormatter({\n month: 'long',\n year: 'numeric',\n timeZone: state.timeZone,\n })\n\n return (\n <StyledHeader>\n <HeaderButton {...prevButtonProps}>\n <IconChevronLeft />\n </HeaderButton>\n <StyledHeaderTitle level={2} styledAs='h3'>\n {monthDateFormatter.format(\n state.visibleRange.start.toDate(state.timeZone)\n )}\n </StyledHeaderTitle>\n {visibleMonths === 2 && (\n <>\n <StyledHeaderPlaceholder />\n <StyledHeaderTitle level={2} styledAs='h3'>\n {monthDateFormatter.format(\n state.visibleRange.start.add({ months: 1 }).toDate(state.timeZone)\n )}\n </StyledHeaderTitle>\n </>\n )}\n <HeaderButton {...nextButtonProps}>\n <IconChevronRight />\n </HeaderButton>\n </StyledHeader>\n )\n}\n","import type { ComponentPropsWithRef } from 'react'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { focus } from '@mirohq/design-system-styles'\n\nexport const StyledCell = styled(Primitive.td, {\n square: '$10',\n marginTop: '$50',\n position: 'relative',\n})\n\nexport const StyledCellContent = styled(Primitive.div, {\n cursor: 'pointer',\n square: '$10',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: '$50',\n color: '$text-neutrals',\n\n ...focus.css({\n top: '0',\n left: '0',\n position: 'absolute',\n zIndex: '1',\n boxShadow: '$focus',\n outline: '1px solid transparent',\n }),\n\n '&[aria-disabled=\"true\"]': {\n textDecoration: 'line-through',\n color: '$text-neutrals-disabled',\n cursor: 'default',\n },\n\n '&:not([aria-disabled=\"true\"])': {\n _hover: {\n backgroundColor: '$background-neutrals-subtle-hover',\n color: '$text-neutrals',\n },\n },\n\n variants: {\n today: {\n true: {\n backgroundColor: '$background-neutrals-subtle-hover',\n color: '$text-neutrals',\n },\n },\n selected: {\n true: {\n backgroundColor: '$background-primary-prominent-selected',\n color: '$text-neutrals-inverted',\n\n '&:not([aria-disabled=\"true\"])': {\n _hover: {\n backgroundColor: '$background-primary-prominent-hover',\n color: '$text-neutrals-inverted',\n },\n },\n },\n },\n range: {\n middle: {\n backgroundColor: '$background-primary-subtle-selected',\n color: '$text-neutrals',\n borderRadius: 0,\n\n '&:not([aria-disabled=\"true\"])': {\n _hover: {\n backgroundColor: '$background-primary-subtle-hover',\n },\n },\n },\n start: {\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n },\n end: {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n },\n },\n hidden: {\n true: {\n display: 'none',\n },\n },\n },\n})\n\nexport type StyledCellProps = ComponentPropsWithRef<typeof StyledCell>\n","import React, { useRef } from 'react'\nimport { useCalendarCell, useFocusRing, mergeProps } from 'react-aria'\nimport type { CalendarDate } from '@internationalized/date'\nimport {\n isSameDay,\n isSameMonth,\n isToday,\n getLocalTimeZone,\n} from '@internationalized/date'\nimport type { CalendarState, RangeCalendarState } from 'react-stately'\n\nimport type { StyledCellProps } from './cell.styled'\nimport { StyledCell, StyledCellContent } from './cell.styled'\n\nexport interface CellProps extends StyledCellProps {\n state: RangeCalendarState | CalendarState\n date: CalendarDate\n currentMonth: CalendarDate\n}\n\nexport const Cell = (props: CellProps): React.ReactNode => {\n let { state, date, currentMonth } = props\n const ref = useRef(null)\n const { cellProps, buttonProps, isSelected, formattedDate } = useCalendarCell(\n { date },\n state,\n ref\n )\n\n const isOutsideMonth = !isSameMonth(currentMonth, date)\n\n state = state as RangeCalendarState\n\n // The start and end date of the selected range will have\n // an emphasized appearance.\n const isSelectionStart =\n state.highlightedRange !== undefined && state.highlightedRange !== null\n ? isSameDay(date, state.highlightedRange.start)\n : isSelected\n const isSelectionEnd =\n state.highlightedRange !== undefined && state.highlightedRange !== null\n ? isSameDay(date, state.highlightedRange.end)\n : isSelected\n\n const { focusProps } = useFocusRing()\n\n // when it's both start and end, it's single date\n const isRange = isSelected && (!isSelectionStart || !isSelectionEnd)\n\n const rangeVariant = isRange\n ? isSelectionStart\n ? 'start'\n : isSelectionEnd\n ? 'end'\n : 'middle'\n : undefined\n\n return (\n <StyledCell {...cellProps}>\n <StyledCellContent\n {...mergeProps(buttonProps, focusProps)}\n ref={ref}\n selected={isSelected && (isSelectionStart || isSelectionEnd)}\n today={isToday(date, getLocalTimeZone())}\n range={rangeVariant}\n hidden={isOutsideMonth}\n >\n {formattedDate}\n </StyledCellContent>\n </StyledCell>\n )\n}\n","import type { ComponentPropsWithRef } from 'react'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\n\nexport const StyledGrid = styled(Primitive.table, {\n borderCollapse: 'separate',\n borderSpacing: ' 0 $50',\n})\n\nexport const StyledDays = styled(Primitive.th, {\n height: '$10',\n color: '$text-neutrals-subtle',\n fontWeight: '$regular',\n paddingTop: '$50',\n})\n\nexport type StyledGridProps = ComponentPropsWithRef<typeof StyledGrid>\n","import type { ElementRef } from 'react'\nimport React from 'react'\nimport type { CalendarDate, DateDuration } from '@internationalized/date'\nimport { getWeeksInMonth } from '@internationalized/date'\nimport type { AriaCalendarGridProps, DateRange } from 'react-aria'\nimport { useLocale, useCalendarGrid } from 'react-aria'\nimport type { CalendarState, RangeCalendarState } from 'react-stately'\n\nimport { Cell } from './cell'\nimport type { StyledGridProps } from './grid.styled'\nimport { StyledDays, StyledGrid } from './grid.styled'\n\nexport interface GridProps extends Omit<StyledGridProps, 'onChange'> {\n state: RangeCalendarState | CalendarState\n offset?: DateDuration\n onChange?: (value: DateRange) => void\n}\n\nexport const Grid = React.forwardRef<ElementRef<typeof StyledGrid>, GridProps>(\n (props, forwardRef) => {\n const { locale } = useLocale()\n const { state, offset = {} } = props\n const startDate: CalendarDate = state.visibleRange.start.add(offset)\n const { gridProps, headerProps, weekDays } = useCalendarGrid(\n props as AriaCalendarGridProps,\n state\n )\n\n // Get the number of weeks in the month so we can render the proper number of rows.\n const weeksInMonth = getWeeksInMonth(startDate, locale)\n\n return (\n <StyledGrid ref={forwardRef} {...gridProps} cellPadding='0'>\n <thead {...headerProps}>\n <tr>\n {weekDays.map((day, i) => (\n <StyledDays key={i}>\n <div>{day}</div>\n </StyledDays>\n ))}\n </tr>\n </thead>\n <tbody>\n {Array.from(Array(weeksInMonth).keys()).map(weekIndex => (\n <tr key={weekIndex}>\n {state\n .getDatesInWeek(weekIndex, startDate)\n .map((date: CalendarDate | null, i: number) =>\n date !== null ? (\n <Cell\n key={i}\n state={state}\n date={date}\n currentMonth={startDate}\n />\n ) : (\n <td key={i} />\n )\n )}\n </tr>\n ))}\n </tbody>\n </StyledGrid>\n )\n }\n)\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\n\nexport const StyledPredefinedRanges = styled(Primitive.div, {\n display: 'flex',\n flexDirection: 'column',\n borderRight: '1px solid $border-neutrals',\n padding: '$300 $200 0 0',\n\n '& button': {\n backgroundColor: '$transparent',\n border: 'none',\n fontSize: '$200',\n padding: '0 0 0 $100',\n textAlign: 'left',\n lineHeight: '24px',\n color: '$text-neutrals',\n marginBottom: '$150',\n borderRadius: '$50',\n minWidth: '125px',\n cursor: 'pointer',\n\n '&:hover': {\n backgroundColor: '$background-primary-prominent-hover',\n color: '$text-primary-inverted',\n fontWeight: '600',\n },\n },\n})\n","import React from 'react'\nimport { Button } from '@mirohq/design-system-button'\nimport type { DateRange, DateValue } from 'react-aria'\n\nimport { StyledPredefinedRanges } from './predefined-ranges.styled'\nimport { useCalendarContext } from '../use-calendar-context'\n\nexport const PredefinedRanges = (): React.ReactElement | null => {\n const { predefinedValues, onCalendarDateClick } = useCalendarContext<\n DateRange | DateValue\n >()\n\n if (predefinedValues === undefined) {\n return null\n }\n\n return (\n <StyledPredefinedRanges>\n {predefinedValues.map(item => (\n <Button\n variant='ghost'\n size='medium'\n key={item.id}\n type='button'\n onClick={() => onCalendarDateClick(item.value)}\n >\n {item.label}\n </Button>\n ))}\n </StyledPredefinedRanges>\n )\n}\n","import type { ElementRef, ReactElement, ReactNode } from 'react'\nimport React, { useRef } from 'react'\nimport { useCalendarState, useRangeCalendarState } from 'react-stately'\nimport { useCalendar, useRangeCalendar, useLocale } from 'react-aria'\nimport { createCalendar } from '@internationalized/date'\nimport { Flex } from '@mirohq/design-system-flex'\nimport type { DateRange, DateValue, AriaButtonProps } from 'react-aria'\nimport type { DOMAttributes } from '@react-types/shared'\nimport type { CalendarState, RangeCalendarState } from 'react-stately'\nimport { theme } from '@mirohq/design-system-stitches'\n\nimport { useCalendarContext } from '../use-calendar-context'\nimport type { StyledContentProps } from './content.styled'\nimport {\n StyledContent,\n StyledClearContent,\n StyledCalendarBody,\n StyledBodyContentLeft,\n StyledBodyContentRight,\n StyledGridContent,\n} from './content.styled'\nimport { Header } from './header'\nimport { Grid } from './grid'\nimport type { Align, PointerDownOutsideEvent, Side, Sticky } from '../types'\nimport type { HeaderButtonProps } from './header-button'\nimport { PredefinedRanges } from './predefined-ranges'\n\nexport const CONTENT_OFFSET = parseInt(theme.space[50])\n\nexport type ContentProps = StyledContentProps & {\n /**\n * Calendar's content.\n */\n children?: ReactNode\n\n /**\n * Event handler called when focus moves to the trigger after closing. It can\n * be prevented by calling event.preventDefault.\n */\n onCloseAutoFocus?: (event: Event) => void\n\n /**\n * Event handler called when focus moves to the trigger after closing. It can\n * be prevented by 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 * The preferred side of the anchor to render against when open. Will be\n * reversed when collisions occur and avoidCollisions is enabled.\n * @default 'bottom'\n */\n side?: Side\n\n /**\n * The distance in pixels from the anchor.\n * @default CONTENT_OFFSET\n */\n sideOffset?: number\n\n /**\n * The preferred alignment against the anchor. May change when collisions\n * occur.\n * @default 'start'\n */\n align?: Align\n\n /**\n * An offset in pixels from the \"start\" or \"end\" alignment options.\n * @default 0\n */\n alignOffset?: number\n\n /**\n * When true, overrides the side and align preferences to prevent collisions\n * with boundary edges.\n * @default true\n */\n avoidCollisions?: boolean\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 distance in pixels from the boundary edges where collision detection\n * should occur. Accepts a number (same for all sides), or a partial padding\n * object, for example: { top: 20, left: 20 }.\n * @default 0\n */\n collisionPadding?: number | Partial<Record<Side, number>>\n\n /**\n * The sticky behavior on the align axis. \"partial\" will keep the content in the\n * boundary as long as the trigger is at least partially in the boundary whilst\n * \"always\" will keep the content in the boundary regardless.\n * @default 'partial'\n */\n sticky?: Sticky\n\n /**\n * Whether to hide the content when the trigger becomes fully occluded.\n * @default true\n */\n hideWhenDetached?: boolean\n}\n\ninterface SharedContentProps {\n calendarProps: DOMAttributes\n prevButtonProps: AriaButtonProps\n nextButtonProps: AriaButtonProps\n state: RangeCalendarState | CalendarState\n}\n\nconst SharedContent = React.forwardRef<HTMLDivElement, SharedContentProps>(\n ({ calendarProps, prevButtonProps, nextButtonProps, state }, forwardRef) => {\n const { visibleDuration } = useCalendarContext<DateValue>()\n\n return (\n <StyledCalendarBody {...calendarProps} ref={forwardRef}>\n <PredefinedRanges />\n <Flex direction='column'>\n <Header\n state={state}\n prevButtonProps={prevButtonProps as HeaderButtonProps}\n nextButtonProps={nextButtonProps as HeaderButtonProps}\n visibleMonths={visibleDuration.months}\n />\n <StyledGridContent>\n <StyledBodyContentLeft>\n <Grid state={state} />\n </StyledBodyContentLeft>\n {visibleDuration.months === 2 && (\n <StyledBodyContentRight>\n <Grid state={state} offset={{ months: 1 }} />\n </StyledBodyContentRight>\n )}\n </StyledGridContent>\n </Flex>\n </StyledCalendarBody>\n )\n }\n)\n\nconst DatePickerContent = (): ReactElement => {\n const { locale } = useLocale()\n\n const {\n calendarValue,\n visibleDuration,\n minDate,\n maxDate,\n onCalendarDateClick,\n } = useCalendarContext<DateValue>()\n\n const state = useCalendarState({\n value: calendarValue,\n visibleDuration,\n minValue: minDate,\n maxValue: maxDate,\n autoFocus: true,\n onChange: onCalendarDateClick,\n locale,\n createCalendar,\n })\n\n const { calendarProps, prevButtonProps, nextButtonProps } = useCalendar(\n {},\n state\n )\n\n return (\n <SharedContent\n calendarProps={calendarProps}\n prevButtonProps={prevButtonProps}\n nextButtonProps={nextButtonProps}\n state={state}\n />\n )\n}\n\nconst RangePickerContent = (): ReactElement => {\n const { locale } = useLocale()\n\n const {\n calendarValue,\n visibleDuration,\n minDate,\n maxDate,\n onCalendarDateClick,\n } = useCalendarContext<DateRange>()\n\n const ref = useRef<HTMLDivElement>(null)\n\n const state = useRangeCalendarState({\n value: calendarValue,\n visibleDuration,\n minValue: minDate,\n maxValue: maxDate,\n autoFocus: true,\n onChange: onCalendarDateClick,\n locale,\n createCalendar,\n })\n\n const { calendarProps, prevButtonProps, nextButtonProps } = useRangeCalendar(\n {},\n state,\n ref\n )\n\n return (\n <SharedContent\n ref={ref}\n calendarProps={calendarProps}\n prevButtonProps={prevButtonProps}\n nextButtonProps={nextButtonProps}\n state={state}\n />\n )\n}\n\nexport const Content = React.forwardRef<\n ElementRef<typeof StyledContent>,\n ContentProps\n>(\n (\n {\n side = 'bottom',\n sideOffset = CONTENT_OFFSET,\n align = 'start',\n alignOffset = 0,\n collisionPadding = 0,\n avoidCollisions = true,\n sticky = 'partial',\n hideWhenDetached = true,\n children,\n ...restProps\n },\n forwardRef\n ) => {\n const { picker, open } = useCalendarContext()\n\n if (!open) {\n return null\n }\n\n return (\n <StyledContent\n {...restProps}\n ref={forwardRef}\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n collisionPadding={collisionPadding}\n avoidCollisions={avoidCollisions}\n sticky={sticky}\n hideWhenDetached={hideWhenDetached}\n >\n <Flex direction='column'>\n {picker === 'single' ? <DatePickerContent /> : <RangePickerContent />}\n {children != null && (\n <StyledClearContent>{children}</StyledClearContent>\n )}\n </Flex>\n </StyledContent>\n )\n }\n)\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { ComponentPropsWithRef } from 'react'\n\nexport const StyledValue = styled(Primitive.span, {})\n\nexport type StyledValueProps = ComponentPropsWithRef<typeof StyledValue>\n","import type { ElementRef } from 'react'\nimport React, { useMemo } from 'react'\nimport type { DateRange, DateValue } from '@react-types/datepicker'\nimport type { DateFormatter } from 'react-aria'\nimport { useDateFormatter } from 'react-aria'\nimport { getLocalTimeZone } from '@internationalized/date'\n\nimport type { StyledValueProps } from './value.styled'\nimport { StyledValue } from './value.styled'\nimport { useCalendarContext } from '../use-calendar-context'\n\ntype FormatOptions = Pick<\n Intl.DateTimeFormatOptions,\n 'weekday' | 'era' | 'year' | 'month' | 'day' | 'formatMatcher'\n>\n\nexport type ValueProps = StyledValueProps & {\n format?: FormatOptions\n}\n\nconst DEFAULT_FORMAT: FormatOptions = {\n day: '2-digit',\n month: 'short',\n year: 'numeric',\n}\n\nfunction formatDate(\n date: DateValue,\n formatter: DateFormatter,\n timeZone: string\n): string | undefined {\n return formatter.format(date.toDate(timeZone))\n}\n\nfunction formatValue(\n value: DateValue | DateRange | undefined | null,\n formatter: DateFormatter,\n timeZone: string\n): string | undefined {\n if (value == null || value === undefined) {\n return undefined\n }\n\n if ('start' in value) {\n if (value.start == null || value.end == null) {\n return undefined\n }\n\n return `${formatDate(value.start, formatter, timeZone)} - ${formatDate(\n value.end,\n formatter,\n timeZone\n )}`\n }\n\n return formatDate(value, formatter, timeZone)\n}\n\nexport const Value = React.forwardRef<\n ElementRef<typeof StyledValue>,\n ValueProps\n>(({ format = DEFAULT_FORMAT, ...restProps }, forwardRef) => {\n const { value } = useCalendarContext()\n\n const timeZone = useMemo(getLocalTimeZone, [format])\n\n const formatWithTimeZone = useMemo(\n () => ({ ...format, timeZone }),\n [format, timeZone]\n )\n const dateFormatter = useDateFormatter(formatWithTimeZone)\n\n const valueToDisplay = formatValue(value, dateFormatter, timeZone)\n\n return (\n <StyledValue ref={forwardRef} {...restProps}>\n {valueToDisplay}\n </StyledValue>\n )\n})\n","import type { ElementRef } from 'react'\nimport React from 'react'\nimport { Button } from '@mirohq/design-system-button'\nimport type { BaseButtonProps } from '@mirohq/design-system-base-button'\n\nimport { useCalendarContext } from '../use-calendar-context'\n\nexport type ClearButtonProps = BaseButtonProps & {\n /**\n * Event handler called when the calendar value is cleared\n */\n onClear?: () => void\n}\n\nexport const ClearButton = React.forwardRef<\n ElementRef<typeof Button>,\n ClearButtonProps\n>(({ onClear, children, ...restProps }, forwardRef) => {\n const { value, setValue } = useCalendarContext()\n\n const onClearHandler = (): void => {\n setValue(undefined)\n if (onClear !== undefined) {\n onClear()\n }\n }\n\n return (\n <Button\n {...restProps}\n ref={forwardRef}\n variant='ghost'\n size='medium'\n onClick={onClearHandler}\n disabled={value === null}\n >\n {children}\n </Button>\n )\n}) as React.ForwardRefExoticComponent<ClearButtonProps>\n","import type { ElementRef } from 'react'\nimport React, { useEffect } from 'react'\nimport { Button } from '@mirohq/design-system-button'\nimport type { BaseButtonProps } from '@mirohq/design-system-base-button'\n\nimport { useCalendarContext } from '../use-calendar-context'\n\nexport type SaveButtonProps = BaseButtonProps & {\n /**\n * Event handler called when the calendar value is saved\n */\n onSave?: () => void\n}\n\nexport const SaveButton = React.forwardRef<\n ElementRef<typeof Button>,\n SaveButtonProps\n>(({ onSave, children, ...restProps }, forwardRef) => {\n const { setImmediateSave, onSaveClick } = useCalendarContext()\n\n useEffect(() => {\n setImmediateSave(true)\n\n return () => setImmediateSave(false)\n }, [setImmediateSave])\n\n const onSaveHandler = (): void => {\n onSaveClick()\n if (onSave !== undefined) {\n onSave()\n }\n }\n\n return (\n <Button\n ref={forwardRef}\n {...restProps}\n variant='primary'\n size='medium'\n onClick={onSaveHandler}\n >\n {children}\n </Button>\n )\n}) as React.ForwardRefExoticComponent<SaveButtonProps>\n","import { styled } from '@mirohq/design-system-stitches'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport type { ComponentPropsWithRef } from 'react'\n\nexport const StyledCalendar = styled(Primitive.div, {\n position: 'relative',\n})\nexport type StyledCalendarProps = ComponentPropsWithRef<typeof StyledCalendar>\n","import type { ElementRef, ForwardRefExoticComponent } from 'react'\nimport React from 'react'\nimport { I18nProvider } from 'react-aria'\nimport * as RadixPopover from '@radix-ui/react-popover'\nimport type { DateRange, DateValue } from 'react-aria'\n\nimport type { CalendarDatePickerProps, CalendarRangePickerProps } from './types'\nimport { Trigger } from './partials/trigger'\nimport { Content } from './partials/content'\nimport type { CalendarProviderProps } from './use-calendar-context'\nimport { CalendarProvider, useCalendarContext } from './use-calendar-context'\nimport { Value } from './partials/value'\nimport { ClearButton } from './partials/clear-button'\nimport { SaveButton } from './partials/save-button'\nimport { StyledCalendar } from './calendar.styled'\n\n// If an unrecognised locale string is passed in, the component will error, this protects from that by defaulting to English\n// https://github.com/adobe/react-spectrum/issues/7457\nfunction getValidLocale(locale: string | undefined): string {\n if (locale === undefined) {\n return 'en'\n }\n\n try {\n Intl.DateTimeFormat.supportedLocalesOf(locale)\n return locale\n } catch {\n try {\n // the client locale is in the format of ja_JP, but Intl.DateTimeFormat expects ja-JP\n // https://github.com/formatjs/formatjs/discussions/2440\n const localeWithDashes = locale.replace(/_/g, '-')\n Intl.DateTimeFormat.supportedLocalesOf(localeWithDashes)\n return localeWithDashes\n } catch {\n return 'en'\n }\n }\n}\n\nexport type CalendarProps = (\n | CalendarDatePickerProps\n | CalendarRangePickerProps\n) & {\n /**\n * The locale for Calendar internationalization\n */\n locale?: string\n}\n\ninterface CalendarRootProps {\n children: React.ReactNode\n}\n\nconst Root = React.forwardRef<\n ElementRef<typeof StyledCalendar>,\n CalendarRootProps\n>(({ children, ...restProps }, forwardRef) => {\n const { open, setOpen } = useCalendarContext()\n\n return (\n <RadixPopover.Root open={open} onOpenChange={setOpen}>\n <StyledCalendar ref={forwardRef} {...restProps}>\n {children}\n </StyledCalendar>\n </RadixPopover.Root>\n )\n})\n\nexport const Calendar = React.forwardRef<\n ElementRef<typeof StyledCalendar>,\n CalendarProps\n>(\n (\n {\n picker,\n defaultValue,\n value,\n onValueChange,\n defaultOpen,\n open,\n onClose,\n onOpen,\n locale,\n visibleMonths,\n minDate,\n maxDate,\n disabled,\n 'aria-disabled': ariaDisabled,\n children,\n predefinedValues,\n ...props\n },\n forwardRef\n ) => {\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n const providerProps = {\n picker,\n defaultValue,\n value,\n onValueChange,\n visibleMonths,\n minDate,\n maxDate,\n defaultOpen,\n open,\n onClose,\n onOpen,\n disabled,\n ariaDisabled,\n predefinedValues,\n } as CalendarProviderProps<DateValue> | CalendarProviderProps<DateRange>\n\n const validatedLocale = getValidLocale(locale)\n\n return (\n <I18nProvider locale={validatedLocale}>\n <CalendarProvider {...(providerProps as any)}>\n <Root {...props} ref={forwardRef}>\n {children}\n </Root>\n </CalendarProvider>\n </I18nProvider>\n )\n }\n) as ForwardRefExoticComponent<CalendarProps> & Partials\n\nexport interface Partials {\n Trigger: typeof Trigger\n Content: typeof Content\n Value: typeof Value\n ClearButton: typeof ClearButton\n SaveButton: typeof SaveButton\n}\n\nCalendar.Trigger = Trigger\nCalendar.Content = Content\nCalendar.Value = Value\nCalendar.ClearButton = ClearButton\nCalendar.SaveButton = SaveButton\n"],"names":["styled","Primitive","textFieldStyles","StyledValue","BaseButton","focus","actionButtonStyles","React","Tooltip","jsx","IconCross","createContext","useState","useMemo","useControllableState","useCallback","value","useContext","useFormFieldContext","RadixTrigger","jsxs","Fragment","stringAttrValue","IconCalendarBlank","booleanify","RadixContent","Flex","Heading","IconButton","useDateFormatter","IconChevronLeft","IconChevronRight","date","useRef","useCalendarCell","isSameMonth","isSameDay","useFocusRing","mergeProps","isToday","getLocalTimeZone","useLocale","useCalendarGrid","getWeeksInMonth","Button","theme","useCalendarState","createCalendar","useCalendar","useRangeCalendarState","useRangeCalendar","useEffect","RadixPopover","I18nProvider"],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sources":["../src/partials/trigger.styled.tsx","../src/partials/clear-action.styled.tsx","../src/partials/clear-action.tsx","../src/use-calendar-context.tsx","../src/partials/trigger.tsx","../src/partials/content.styled.tsx","../src/partials/header.styled.tsx","../src/partials/header-button.tsx","../src/partials/header.tsx","../src/partials/cell.styled.tsx","../src/partials/cell.tsx","../src/partials/grid.styled.tsx","../src/partials/grid.tsx","../src/partials/predefined-ranges.styled.tsx","../src/partials/predefined-ranges.tsx","../src/partials/content.tsx","../src/partials/value.styled.tsx","../src/partials/value.tsx","../src/partials/clear-button.tsx","../src/partials/save-button.tsx","../src/calendar.styled.tsx","../src/calendar.tsx"],"sourcesContent":["import { Primitive } from '@mirohq/design-system-primitive'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { textFieldStyles } from '@mirohq/design-system-base-text-field'\nimport { focus } from '@mirohq/design-system-styles'\nimport { BaseButton } from '@mirohq/design-system-base-button'\n\nexport const StyledPlaceholder = styled(Primitive.span, {\n color: textFieldStyles.base.placeholder.color,\n padding: '0 $50',\n})\n\nexport const StyledValue = styled(Primitive.span, {\n padding: '0 $50',\n})\n\nexport const StyledIconContainer = styled(Primitive.span, {\n display: 'flex',\n justifyContent: 'center',\n padding: '6px',\n color: '$text-neutrals-subtle',\n})\n\nexport const StyledTrigger = styled(BaseButton, {\n display: 'inline-flex',\n gap: '$50',\n justifyContent: 'space-between',\n alignItems: 'center',\n height: '$10',\n padding: '0 $100',\n minWidth: '230px',\n\n ...textFieldStyles.variants.idle,\n\n _hover: textFieldStyles.variants.hovered,\n ...focus.css({\n boxShadow: '$focus',\n }),\n\n '&:disabled, &[aria-disabled=\"true\"]': {\n ...textFieldStyles.variants.disabled,\n color: '$text-neutrals-disabled',\n },\n\n variants: {\n withClearButton: {\n true: {\n paddingRight: 'calc($100 + $400)', // initial left padding + clear button width + gap\n },\n },\n },\n})\n\nexport const StyledCustomTrigger = styled(BaseButton, {\n width: '100%',\n height: 'unset',\n padding: '0',\n backgroundColor: '$transparent',\n border: 'none',\n cursor: 'pointer',\n})\n\nexport type StyledTriggerProps = StrictComponentProps<typeof StyledTrigger>\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { ComponentPropsWithRef } from 'react'\nimport { actionButtonStyles } from '@mirohq/design-system-base-text-field'\nimport { BaseButton } from '@mirohq/design-system-base-button'\n\nexport const StyledClearAction = styled(BaseButton, {\n position: 'absolute',\n top: 0,\n bottom: 0,\n right: 'calc($100 + 1px)', // to compensate border width\n margin: 'auto',\n\n ...actionButtonStyles,\n\n '&:disabled, &[aria-disabled=\"true\"]': {\n color: '$icon-neutrals-disabled',\n },\n})\n\nexport type StyledClearActionProps = ComponentPropsWithRef<\n typeof StyledClearAction\n>\n","import type { ElementRef } from 'react'\nimport React from 'react'\nimport { IconCross } from '@mirohq/design-system-icons'\nimport { Tooltip } from '@mirohq/design-system-tooltip'\n\nimport type { StyledClearActionProps } from './clear-action.styled'\nimport { StyledClearAction } from './clear-action.styled'\n\ninterface ClearActionProps extends Omit<StyledClearActionProps, 'children'> {\n label: string\n}\n\nexport const ClearAction = React.forwardRef<\n ElementRef<typeof StyledClearAction>,\n ClearActionProps\n>(({ 'aria-label': ariaLabel, label, ...restProps }, forwardRef) => (\n <Tooltip>\n <Tooltip.Trigger asChild>\n <StyledClearAction\n {...restProps}\n ref={forwardRef}\n aria-label={ariaLabel ?? label}\n >\n <IconCross />\n </StyledClearAction>\n </Tooltip.Trigger>\n <Tooltip.Content>{label}</Tooltip.Content>\n </Tooltip>\n))\n","import React, {\n createContext,\n useCallback,\n useContext,\n useMemo,\n useState,\n} from 'react'\nimport type { DateRange, DateValue } from 'react-aria'\nimport type { DateDuration } from '@internationalized/date'\nimport { useControllableState } from '@radix-ui/react-use-controllable-state'\nimport type { Booleanish } from '@mirohq/design-system-types'\n\nimport type { PredefinedValue } from './types'\n\ninterface SharedProps<T extends DateRange | DateValue> {\n picker: 'single' | 'range'\n minDate?: DateValue\n maxDate?: DateValue\n disabled?: boolean\n ariaDisabled?: Booleanish\n predefinedValues?: Array<PredefinedValue<T>>\n}\n\ninterface CalendarContextProps<T extends DateRange | DateValue>\n extends SharedProps<T> {\n visibleDuration: DateDuration\n\n value?: T\n setValue: React.Dispatch<React.SetStateAction<T | undefined>>\n\n open: boolean\n setOpen: React.Dispatch<React.SetStateAction<boolean | undefined>>\n\n setImmediateSave: React.Dispatch<React.SetStateAction<boolean>>\n\n calendarValue?: T | null\n calendarDefaultValue?: T | null\n onCalendarDateClick: (date: T) => void\n onSaveClick: () => void\n}\n\nexport interface CalendarProviderProps<T extends DateRange | DateValue>\n extends SharedProps<T> {\n children?: React.ReactNode\n visibleMonths?: number\n\n defaultValue?: T\n value?: T\n onValueChange?: (value: T | undefined) => void\n\n defaultOpen?: boolean\n open?: boolean\n onOpen?: () => void\n onClose?: () => void\n}\n\nconst CalendarContext = createContext<CalendarContextProps<any>>({} as any)\n\nexport const CalendarProvider = <T extends DateRange | DateValue>({\n children,\n visibleMonths = 1,\n value: valueProp,\n defaultValue: defaultValueProp,\n onValueChange,\n open: openProp,\n defaultOpen: defaultOpenProp,\n onOpen,\n onClose,\n ...restProps\n}: CalendarProviderProps<T>): JSX.Element => {\n const [immediateSave, setImmediateSave] = useState(false)\n const [internalCalendarValue, setInternalCalendarValue] = useState<\n T | undefined\n >(valueProp ?? defaultValueProp)\n\n const visibleDuration = useMemo(\n () => ({\n months: visibleMonths,\n }),\n [visibleMonths]\n )\n\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValueProp,\n onChange: onValueChange,\n })\n\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpenProp,\n onChange: state => {\n if (state) {\n onOpen?.()\n } else {\n onClose?.()\n }\n },\n })\n\n const onCalendarDateClick = useCallback(\n (value: T): void => {\n if (immediateSave) {\n setInternalCalendarValue(value)\n } else {\n setValue(value)\n setOpen(false)\n }\n },\n [setValue, setOpen, immediateSave, setInternalCalendarValue]\n )\n\n const onSaveClick = (): void => {\n setValue(internalCalendarValue)\n setOpen(false)\n }\n\n return (\n <CalendarContext.Provider\n value={{\n ...restProps,\n visibleDuration,\n value: value,\n setValue,\n open,\n setOpen,\n onCalendarDateClick,\n setImmediateSave,\n onSaveClick,\n // value should not be undefined otherwise react-aria calendar will complain in console\n calendarValue: (immediateSave ? internalCalendarValue : value) ?? null,\n }}\n >\n {children}\n </CalendarContext.Provider>\n )\n}\n\nexport const useCalendarContext = <\n T extends DateRange | DateValue\n>(): CalendarContextProps<T> => useContext(CalendarContext)\n","import type { ElementRef } from 'react'\nimport React from 'react'\nimport { IconCalendarBlank } from '@mirohq/design-system-icons'\nimport { useFormFieldContext } from '@mirohq/design-system-base-form'\nimport { Trigger as RadixTrigger } from '@radix-ui/react-popover'\nimport { booleanify, stringAttrValue } from '@mirohq/design-system-utils'\n\nimport type { StyledTriggerProps } from './trigger.styled'\nimport {\n StyledIconContainer,\n StyledCustomTrigger,\n StyledPlaceholder,\n StyledTrigger,\n StyledValue,\n} from './trigger.styled'\nimport { ClearAction } from './clear-action'\nimport { useCalendarContext } from '../use-calendar-context'\n\ntype TriggerSharedProps = Omit<StyledTriggerProps, 'withClearButton'> & {\n /**\n * The content that will be rendered inside the Calendar trigger when there is no value\n */\n placeholder?: string\n\n /**\n * Show a button to clear the Calendar value\n * @default false\n */\n clearable?: boolean\n\n /**\n * The content\n */\n children: React.ReactNode\n}\n\nexport type TriggerProps = TriggerSharedProps &\n (\n | { clearable: false; clearLabel?: never; onClear?: never }\n | {\n /**\n * Event handler called when the calendar is cleared\n */\n onClear?: () => void\n\n /**\n * The label text for Trigger's action button when Combobox has values selected. Will be rendered in a Tooltip.\n */\n clearLabel: string\n }\n )\n\nexport const Trigger = React.forwardRef<ElementRef<'button'>, TriggerProps>(\n (\n {\n id,\n 'aria-describedby': ariaDescribedBy,\n placeholder,\n asChild = false,\n clearable = true,\n clearLabel,\n onClear,\n children,\n ...restProps\n },\n forwardRef\n ) => {\n const { value, setValue, disabled, ariaDisabled } = useCalendarContext()\n\n const { formElementId, ariaDescribedBy: formFieldContextDescribedBy } =\n useFormFieldContext()\n\n if (asChild) {\n return (\n <RadixTrigger ref={forwardRef} asChild>\n <StyledCustomTrigger asChild {...restProps}>\n {children}\n </StyledCustomTrigger>\n </RadixTrigger>\n )\n }\n\n const onClearHandler = (): void => {\n setValue(undefined)\n if (onClear !== undefined) {\n onClear()\n }\n }\n\n const clearButtonVisible =\n clearable && value != null && clearLabel !== undefined\n\n return (\n <>\n <RadixTrigger ref={forwardRef} asChild>\n <StyledTrigger\n id={id ?? formElementId}\n aria-describedby={stringAttrValue(\n ariaDescribedBy,\n formFieldContextDescribedBy\n )}\n withClearButton={clearButtonVisible}\n disabled={disabled}\n aria-disabled={ariaDisabled}\n {...restProps}\n >\n {value != null ? (\n <StyledValue>{children}</StyledValue>\n ) : (\n <StyledPlaceholder>{placeholder}</StyledPlaceholder>\n )}\n\n {!clearButtonVisible && (\n <StyledIconContainer>\n <IconCalendarBlank size='small' />\n </StyledIconContainer>\n )}\n </StyledTrigger>\n </RadixTrigger>\n {clearButtonVisible && (\n <ClearAction\n label={clearLabel}\n onPress={onClearHandler}\n disabled={disabled ?? booleanify(ariaDisabled)}\n />\n )}\n </>\n )\n }\n)\n","import type { ComponentPropsWithRef } from 'react'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { Flex } from '@mirohq/design-system-flex'\nimport { Content as RadixContent } from '@radix-ui/react-popover'\n\nexport const StyledContent = styled(RadixContent, {\n zIndex: '$calendar',\n background: '$background-neutrals',\n borderRadius: '$100',\n boxShadow: '$100',\n})\n\nexport const StyledCalendarBody = styled(Flex, {\n padding: '$200',\n gap: '$200',\n})\n\nexport const StyledGridContent = styled(Flex, {})\n\nexport const StyledBodyContentLeft = styled(Primitive.div, {})\n\nexport const StyledBodyContentRight = styled(Primitive.div, {\n paddingLeft: '$200',\n})\n\nexport const StyledClearContent = styled(Primitive.div, {\n display: 'flex',\n gap: '$100',\n padding: '$200',\n borderTop: '1px solid $border-neutrals',\n})\n\nexport type StyledContentProps = ComponentPropsWithRef<typeof StyledContent>\n","import { styled } from '@mirohq/design-system-stitches'\nimport { Flex } from '@mirohq/design-system-flex'\nimport { Heading } from '@mirohq/design-system-typography'\n\nexport const StyledHeaderTitle = styled(Heading, {\n margin: 0,\n flex: '2',\n textAlign: 'center',\n})\n\nexport const StyledHeaderPlaceholder = styled('div', {\n height: '$8',\n // to compensate icon buttons' width and space between 2 calendars\n width: 'calc($8 * 2 + $space$200)',\n})\n\nexport const StyledHeader = styled(Flex, {\n color: '$text-neutrals',\n height: '$8',\n alignItems: 'center',\n justifyContent: 'space-between',\n})\n","import type { ElementRef } from 'react'\nimport React from 'react'\nimport type { IconButtonProps } from '@mirohq/design-system-icon-button'\nimport { IconButton } from '@mirohq/design-system-icon-button'\n\nexport type HeaderButtonProps = IconButtonProps & {\n onFocus?: () => void\n onPress?: () => void\n isDisabled?: boolean // name comes from react-aria\n 'aria-label': string\n}\n\nexport const HeaderButton = React.forwardRef<\n ElementRef<'button'>,\n HeaderButtonProps\n>(({ isDisabled, children, ...restProps }, forwardRef) => (\n <IconButton\n {...restProps}\n size='medium'\n disabled={isDisabled}\n ref={forwardRef}\n >\n {children}\n </IconButton>\n)) as React.ForwardRefExoticComponent<HeaderButtonProps>\n","import React from 'react'\nimport { useDateFormatter } from 'react-aria'\nimport type { CalendarState, RangeCalendarState } from 'react-stately'\nimport { IconChevronLeft, IconChevronRight } from '@mirohq/design-system-icons'\n\nimport {\n StyledHeaderPlaceholder,\n StyledHeader,\n StyledHeaderTitle,\n} from './header.styled'\nimport type { HeaderButtonProps } from './header-button'\nimport { HeaderButton } from './header-button'\n\ninterface IHeader {\n state: RangeCalendarState | CalendarState\n prevButtonProps: HeaderButtonProps\n nextButtonProps: HeaderButtonProps\n visibleMonths?: number\n}\n\nexport const Header = ({\n state,\n prevButtonProps,\n nextButtonProps,\n visibleMonths,\n}: IHeader): React.ReactNode => {\n const monthDateFormatter = useDateFormatter({\n month: 'long',\n year: 'numeric',\n timeZone: state.timeZone,\n })\n\n return (\n <StyledHeader>\n <HeaderButton {...prevButtonProps}>\n <IconChevronLeft />\n </HeaderButton>\n <StyledHeaderTitle level={2} styledAs='h3'>\n {monthDateFormatter.format(\n state.visibleRange.start.toDate(state.timeZone)\n )}\n </StyledHeaderTitle>\n {visibleMonths === 2 && (\n <>\n <StyledHeaderPlaceholder />\n <StyledHeaderTitle level={2} styledAs='h3'>\n {monthDateFormatter.format(\n state.visibleRange.start.add({ months: 1 }).toDate(state.timeZone)\n )}\n </StyledHeaderTitle>\n </>\n )}\n <HeaderButton {...nextButtonProps}>\n <IconChevronRight />\n </HeaderButton>\n </StyledHeader>\n )\n}\n","import type { ComponentPropsWithRef } from 'react'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { focus } from '@mirohq/design-system-styles'\n\nexport const StyledCell = styled(Primitive.td, {\n square: '$10',\n marginTop: '$50',\n position: 'relative',\n})\n\nexport const StyledCellContent = styled(Primitive.div, {\n cursor: 'pointer',\n square: '$10',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: '$50',\n color: '$text-neutrals',\n\n ...focus.css({\n top: '0',\n left: '0',\n position: 'absolute',\n zIndex: '1',\n boxShadow: '$focus',\n outline: '1px solid transparent',\n }),\n\n '&[aria-disabled=\"true\"]': {\n textDecoration: 'line-through',\n color: '$text-neutrals-disabled',\n cursor: 'default',\n },\n\n '&:not([aria-disabled=\"true\"])': {\n _hover: {\n backgroundColor: '$background-neutrals-subtle-hover',\n color: '$text-neutrals',\n },\n },\n\n variants: {\n today: {\n true: {\n backgroundColor: '$background-neutrals-subtle-hover',\n color: '$text-neutrals',\n },\n },\n selected: {\n true: {\n backgroundColor: '$background-primary-prominent-selected',\n color: '$text-neutrals-inverted',\n\n '&:not([aria-disabled=\"true\"])': {\n _hover: {\n backgroundColor: '$background-primary-prominent-hover',\n color: '$text-neutrals-inverted',\n },\n },\n },\n },\n range: {\n middle: {\n backgroundColor: '$background-primary-subtle-selected',\n color: '$text-neutrals',\n borderRadius: 0,\n\n '&:not([aria-disabled=\"true\"])': {\n _hover: {\n backgroundColor: '$background-primary-subtle-hover',\n },\n },\n },\n start: {\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n },\n end: {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n },\n },\n hidden: {\n true: {\n display: 'none',\n },\n },\n },\n})\n\nexport type StyledCellProps = ComponentPropsWithRef<typeof StyledCell>\n","import React, { useRef } from 'react'\nimport { useCalendarCell, useFocusRing, mergeProps } from 'react-aria'\nimport type { CalendarDate } from '@internationalized/date'\nimport {\n isSameDay,\n isSameMonth,\n isToday,\n getLocalTimeZone,\n} from '@internationalized/date'\nimport type { CalendarState, RangeCalendarState } from 'react-stately'\n\nimport type { StyledCellProps } from './cell.styled'\nimport { StyledCell, StyledCellContent } from './cell.styled'\n\nexport interface CellProps extends StyledCellProps {\n state: RangeCalendarState | CalendarState\n date: CalendarDate\n currentMonth: CalendarDate\n}\n\nexport const Cell = (props: CellProps): React.ReactNode => {\n let { state, date, currentMonth } = props\n const ref = useRef(null)\n const { cellProps, buttonProps, isSelected, formattedDate } = useCalendarCell(\n { date },\n state,\n ref\n )\n\n const isOutsideMonth = !isSameMonth(currentMonth, date)\n\n state = state as RangeCalendarState\n\n // The start and end date of the selected range will have\n // an emphasized appearance.\n const isSelectionStart =\n state.highlightedRange !== undefined && state.highlightedRange !== null\n ? isSameDay(date, state.highlightedRange.start)\n : isSelected\n const isSelectionEnd =\n state.highlightedRange !== undefined && state.highlightedRange !== null\n ? isSameDay(date, state.highlightedRange.end)\n : isSelected\n\n const { focusProps } = useFocusRing()\n\n // when it's both start and end, it's single date\n const isRange = isSelected && (!isSelectionStart || !isSelectionEnd)\n\n const rangeVariant = isRange\n ? isSelectionStart\n ? 'start'\n : isSelectionEnd\n ? 'end'\n : 'middle'\n : undefined\n\n return (\n <StyledCell {...cellProps}>\n <StyledCellContent\n {...mergeProps(buttonProps, focusProps)}\n ref={ref}\n selected={isSelected && (isSelectionStart || isSelectionEnd)}\n today={isToday(date, getLocalTimeZone())}\n range={rangeVariant}\n hidden={isOutsideMonth}\n >\n {formattedDate}\n </StyledCellContent>\n </StyledCell>\n )\n}\n","import type { ComponentPropsWithRef } from 'react'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\n\nexport const StyledGrid = styled(Primitive.table, {\n borderCollapse: 'separate',\n borderSpacing: ' 0 $50',\n})\n\nexport const StyledDays = styled(Primitive.th, {\n height: '$10',\n color: '$text-neutrals-subtle',\n fontWeight: '$regular',\n paddingTop: '$50',\n})\n\nexport type StyledGridProps = ComponentPropsWithRef<typeof StyledGrid>\n","import type { ElementRef } from 'react'\nimport React from 'react'\nimport type { CalendarDate, DateDuration } from '@internationalized/date'\nimport { getWeeksInMonth } from '@internationalized/date'\nimport type { AriaCalendarGridProps, DateRange } from 'react-aria'\nimport { useLocale, useCalendarGrid } from 'react-aria'\nimport type { CalendarState, RangeCalendarState } from 'react-stately'\n\nimport { Cell } from './cell'\nimport type { StyledGridProps } from './grid.styled'\nimport { StyledDays, StyledGrid } from './grid.styled'\n\nexport interface GridProps extends Omit<StyledGridProps, 'onChange'> {\n state: RangeCalendarState | CalendarState\n offset?: DateDuration\n onChange?: (value: DateRange) => void\n}\n\nexport const Grid = React.forwardRef<ElementRef<typeof StyledGrid>, GridProps>(\n (props, forwardRef) => {\n const { locale } = useLocale()\n const { state, offset = {} } = props\n const startDate: CalendarDate = state.visibleRange.start.add(offset)\n const { gridProps, headerProps, weekDays } = useCalendarGrid(\n props as AriaCalendarGridProps,\n state\n )\n\n // Get the number of weeks in the month so we can render the proper number of rows.\n const weeksInMonth = getWeeksInMonth(startDate, locale)\n\n return (\n <StyledGrid ref={forwardRef} {...gridProps} cellPadding='0'>\n <thead {...headerProps}>\n <tr>\n {weekDays.map((day, i) => (\n <StyledDays key={i}>\n <div>{day}</div>\n </StyledDays>\n ))}\n </tr>\n </thead>\n <tbody>\n {Array.from(Array(weeksInMonth).keys()).map(weekIndex => (\n <tr key={weekIndex}>\n {state\n .getDatesInWeek(weekIndex, startDate)\n .map((date: CalendarDate | null, i: number) =>\n date !== null ? (\n <Cell\n key={i}\n state={state}\n date={date}\n currentMonth={startDate}\n />\n ) : (\n <td key={i} />\n )\n )}\n </tr>\n ))}\n </tbody>\n </StyledGrid>\n )\n }\n)\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\n\nexport const StyledPredefinedRanges = styled(Primitive.div, {\n display: 'flex',\n flexDirection: 'column',\n borderRight: '1px solid $border-neutrals',\n padding: '$300 $200 0 0',\n\n '& button': {\n backgroundColor: '$transparent',\n border: 'none',\n fontSize: '$200',\n padding: '0 0 0 $100',\n textAlign: 'left',\n lineHeight: '24px',\n color: '$text-neutrals',\n marginBottom: '$150',\n borderRadius: '$50',\n minWidth: '125px',\n cursor: 'pointer',\n\n '&:hover': {\n backgroundColor: '$background-primary-prominent-hover',\n color: '$text-primary-inverted',\n fontWeight: '600',\n },\n },\n})\n","import React from 'react'\nimport { Button } from '@mirohq/design-system-button'\nimport type { DateRange, DateValue } from 'react-aria'\n\nimport { StyledPredefinedRanges } from './predefined-ranges.styled'\nimport { useCalendarContext } from '../use-calendar-context'\n\nexport const PredefinedRanges = (): React.ReactElement | null => {\n const { predefinedValues, onCalendarDateClick } = useCalendarContext<\n DateRange | DateValue\n >()\n\n if (predefinedValues === undefined) {\n return null\n }\n\n return (\n <StyledPredefinedRanges>\n {predefinedValues.map(item => (\n <Button\n variant='ghost'\n size='medium'\n key={item.id}\n type='button'\n onClick={() => onCalendarDateClick(item.value)}\n >\n {item.label}\n </Button>\n ))}\n </StyledPredefinedRanges>\n )\n}\n","import type { ElementRef, ReactElement, ReactNode } from 'react'\nimport React, { useRef } from 'react'\nimport { useCalendarState, useRangeCalendarState } from 'react-stately'\nimport { useCalendar, useRangeCalendar, useLocale } from 'react-aria'\nimport { createCalendar } from '@internationalized/date'\nimport { Flex } from '@mirohq/design-system-flex'\nimport type { DateRange, DateValue, AriaButtonProps } from 'react-aria'\nimport type { DOMAttributes } from '@react-types/shared'\nimport type { CalendarState, RangeCalendarState } from 'react-stately'\nimport { theme } from '@mirohq/design-system-stitches'\n\nimport { useCalendarContext } from '../use-calendar-context'\nimport type { StyledContentProps } from './content.styled'\nimport {\n StyledContent,\n StyledClearContent,\n StyledCalendarBody,\n StyledBodyContentLeft,\n StyledBodyContentRight,\n StyledGridContent,\n} from './content.styled'\nimport { Header } from './header'\nimport { Grid } from './grid'\nimport type { Align, PointerDownOutsideEvent, Side, Sticky } from '../types'\nimport type { HeaderButtonProps } from './header-button'\nimport { PredefinedRanges } from './predefined-ranges'\n\nexport const CONTENT_OFFSET = parseInt(theme.space[50])\n\nexport type ContentProps = StyledContentProps & {\n /**\n * Calendar's content.\n */\n children?: ReactNode\n\n /**\n * Event handler called when focus moves to the trigger after closing. It can\n * be prevented by calling event.preventDefault.\n */\n onCloseAutoFocus?: (event: Event) => void\n\n /**\n * Event handler called when focus moves to the trigger after closing. It can\n * be prevented by 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 * The preferred side of the anchor to render against when open. Will be\n * reversed when collisions occur and avoidCollisions is enabled.\n * @default 'bottom'\n */\n side?: Side\n\n /**\n * The distance in pixels from the anchor.\n * @default CONTENT_OFFSET\n */\n sideOffset?: number\n\n /**\n * The preferred alignment against the anchor. May change when collisions\n * occur.\n * @default 'start'\n */\n align?: Align\n\n /**\n * An offset in pixels from the \"start\" or \"end\" alignment options.\n * @default 0\n */\n alignOffset?: number\n\n /**\n * When true, overrides the side and align preferences to prevent collisions\n * with boundary edges.\n * @default true\n */\n avoidCollisions?: boolean\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 distance in pixels from the boundary edges where collision detection\n * should occur. Accepts a number (same for all sides), or a partial padding\n * object, for example: { top: 20, left: 20 }.\n * @default 0\n */\n collisionPadding?: number | Partial<Record<Side, number>>\n\n /**\n * The sticky behavior on the align axis. \"partial\" will keep the content in the\n * boundary as long as the trigger is at least partially in the boundary whilst\n * \"always\" will keep the content in the boundary regardless.\n * @default 'partial'\n */\n sticky?: Sticky\n\n /**\n * Whether to hide the content when the trigger becomes fully occluded.\n * @default true\n */\n hideWhenDetached?: boolean\n}\n\ninterface SharedContentProps {\n calendarProps: DOMAttributes\n prevButtonProps: AriaButtonProps\n nextButtonProps: AriaButtonProps\n state: RangeCalendarState | CalendarState\n}\n\nconst SharedContent = React.forwardRef<HTMLDivElement, SharedContentProps>(\n ({ calendarProps, prevButtonProps, nextButtonProps, state }, forwardRef) => {\n const { visibleDuration } = useCalendarContext<DateValue>()\n\n return (\n <StyledCalendarBody {...calendarProps} ref={forwardRef}>\n <PredefinedRanges />\n <Flex direction='column'>\n <Header\n state={state}\n prevButtonProps={prevButtonProps as HeaderButtonProps}\n nextButtonProps={nextButtonProps as HeaderButtonProps}\n visibleMonths={visibleDuration.months}\n />\n <StyledGridContent>\n <StyledBodyContentLeft>\n <Grid state={state} />\n </StyledBodyContentLeft>\n {visibleDuration.months === 2 && (\n <StyledBodyContentRight>\n <Grid state={state} offset={{ months: 1 }} />\n </StyledBodyContentRight>\n )}\n </StyledGridContent>\n </Flex>\n </StyledCalendarBody>\n )\n }\n)\n\nconst DatePickerContent = (): ReactElement => {\n const { locale } = useLocale()\n\n const {\n calendarValue,\n visibleDuration,\n minDate,\n maxDate,\n onCalendarDateClick,\n } = useCalendarContext<DateValue>()\n\n const state = useCalendarState({\n value: calendarValue,\n visibleDuration,\n minValue: minDate,\n maxValue: maxDate,\n autoFocus: true,\n onChange: onCalendarDateClick,\n locale,\n createCalendar,\n })\n\n const { calendarProps, prevButtonProps, nextButtonProps } = useCalendar(\n {},\n state\n )\n\n return (\n <SharedContent\n calendarProps={calendarProps}\n prevButtonProps={prevButtonProps}\n nextButtonProps={nextButtonProps}\n state={state}\n />\n )\n}\n\nconst RangePickerContent = (): ReactElement => {\n const { locale } = useLocale()\n\n const {\n calendarValue,\n visibleDuration,\n minDate,\n maxDate,\n onCalendarDateClick,\n } = useCalendarContext<DateRange>()\n\n const ref = useRef<HTMLDivElement>(null)\n\n const state = useRangeCalendarState({\n value: calendarValue,\n visibleDuration,\n minValue: minDate,\n maxValue: maxDate,\n autoFocus: true,\n onChange: onCalendarDateClick,\n locale,\n createCalendar,\n })\n\n const { calendarProps, prevButtonProps, nextButtonProps } = useRangeCalendar(\n {},\n state,\n ref\n )\n\n return (\n <SharedContent\n ref={ref}\n calendarProps={calendarProps}\n prevButtonProps={prevButtonProps}\n nextButtonProps={nextButtonProps}\n state={state}\n />\n )\n}\n\nexport const Content = React.forwardRef<\n ElementRef<typeof StyledContent>,\n ContentProps\n>(\n (\n {\n side = 'bottom',\n sideOffset = CONTENT_OFFSET,\n align = 'start',\n alignOffset = 0,\n collisionPadding = 0,\n avoidCollisions = true,\n sticky = 'partial',\n hideWhenDetached = true,\n children,\n ...restProps\n },\n forwardRef\n ) => {\n const { picker, open } = useCalendarContext()\n\n if (!open) {\n return null\n }\n\n return (\n <StyledContent\n {...restProps}\n ref={forwardRef}\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n collisionPadding={collisionPadding}\n avoidCollisions={avoidCollisions}\n sticky={sticky}\n hideWhenDetached={hideWhenDetached}\n >\n <Flex direction='column'>\n {picker === 'single' ? <DatePickerContent /> : <RangePickerContent />}\n {children != null && (\n <StyledClearContent>{children}</StyledClearContent>\n )}\n </Flex>\n </StyledContent>\n )\n }\n)\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { ComponentPropsWithRef } from 'react'\n\nexport const StyledValue = styled(Primitive.span, {})\n\nexport type StyledValueProps = ComponentPropsWithRef<typeof StyledValue>\n","import type { ElementRef } from 'react'\nimport React, { useMemo } from 'react'\nimport type { DateRange, DateValue } from '@react-types/datepicker'\nimport type { DateFormatter } from 'react-aria'\nimport { useDateFormatter } from 'react-aria'\nimport { getLocalTimeZone } from '@internationalized/date'\n\nimport type { StyledValueProps } from './value.styled'\nimport { StyledValue } from './value.styled'\nimport { useCalendarContext } from '../use-calendar-context'\n\ntype FormatOptions = Pick<\n Intl.DateTimeFormatOptions,\n 'weekday' | 'era' | 'year' | 'month' | 'day' | 'formatMatcher'\n>\n\nexport type ValueProps = StyledValueProps & {\n format?: FormatOptions\n}\n\nconst DEFAULT_FORMAT: FormatOptions = {\n day: '2-digit',\n month: 'short',\n year: 'numeric',\n}\n\nfunction formatDate(\n date: DateValue,\n formatter: DateFormatter,\n timeZone: string\n): string | undefined {\n return formatter.format(date.toDate(timeZone))\n}\n\nfunction formatValue(\n value: DateValue | DateRange | undefined | null,\n formatter: DateFormatter,\n timeZone: string\n): string | undefined {\n if (value == null || value === undefined) {\n return undefined\n }\n\n if ('start' in value) {\n if (value.start == null || value.end == null) {\n return undefined\n }\n\n return `${formatDate(value.start, formatter, timeZone)} - ${formatDate(\n value.end,\n formatter,\n timeZone\n )}`\n }\n\n return formatDate(value, formatter, timeZone)\n}\n\nexport const Value = React.forwardRef<\n ElementRef<typeof StyledValue>,\n ValueProps\n>(({ format = DEFAULT_FORMAT, ...restProps }, forwardRef) => {\n const { value } = useCalendarContext()\n\n const timeZone = useMemo(getLocalTimeZone, [format])\n\n const formatWithTimeZone = useMemo(\n () => ({ ...format, timeZone }),\n [format, timeZone]\n )\n const dateFormatter = useDateFormatter(formatWithTimeZone)\n\n const valueToDisplay = formatValue(value, dateFormatter, timeZone)\n\n return (\n <StyledValue ref={forwardRef} {...restProps}>\n {valueToDisplay}\n </StyledValue>\n )\n})\n","import type { ElementRef } from 'react'\nimport React from 'react'\nimport { Button } from '@mirohq/design-system-button'\nimport type { BaseButtonProps } from '@mirohq/design-system-base-button'\nimport type { AddToUnion } from '@mirohq/design-system-types'\n\nimport { useCalendarContext } from '../use-calendar-context'\n\nexport type ClearButtonProps = AddToUnion<\n BaseButtonProps,\n {\n /**\n * Event handler called when the calendar value is cleared\n */\n onClear?: () => void\n }\n>\n\nexport const ClearButton = React.forwardRef<\n ElementRef<typeof Button>,\n ClearButtonProps\n>(({ onClear, children, ...restProps }, forwardRef) => {\n const { value, setValue } = useCalendarContext()\n\n const onClearHandler = (): void => {\n setValue(undefined)\n if (onClear !== undefined) {\n onClear()\n }\n }\n\n return (\n <Button\n {...restProps}\n ref={forwardRef}\n variant='ghost'\n size='medium'\n onClick={onClearHandler}\n disabled={value === null}\n >\n {children}\n </Button>\n )\n}) as React.ForwardRefExoticComponent<ClearButtonProps>\n","import type { ElementRef } from 'react'\nimport React, { useEffect } from 'react'\nimport { Button } from '@mirohq/design-system-button'\nimport type { BaseButtonProps } from '@mirohq/design-system-base-button'\nimport type { AddToUnion } from '@mirohq/design-system-types'\n\nimport { useCalendarContext } from '../use-calendar-context'\n\nexport type SaveButtonProps = AddToUnion<\n BaseButtonProps,\n {\n /**\n * Event handler called when the calendar value is saved\n */\n onSave?: () => void\n }\n>\n\nexport const SaveButton = React.forwardRef<\n ElementRef<typeof Button>,\n SaveButtonProps\n>(({ onSave, children, ...restProps }, forwardRef) => {\n const { setImmediateSave, onSaveClick } = useCalendarContext()\n\n useEffect(() => {\n setImmediateSave(true)\n\n return () => setImmediateSave(false)\n }, [setImmediateSave])\n\n const onSaveHandler = (): void => {\n onSaveClick()\n if (onSave !== undefined) {\n onSave()\n }\n }\n\n return (\n <Button\n ref={forwardRef}\n {...restProps}\n variant='primary'\n size='medium'\n onClick={onSaveHandler}\n >\n {children}\n </Button>\n )\n}) as React.ForwardRefExoticComponent<SaveButtonProps>\n","import { styled } from '@mirohq/design-system-stitches'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport type { ComponentPropsWithRef } from 'react'\n\nexport const StyledCalendar = styled(Primitive.div, {\n position: 'relative',\n})\nexport type StyledCalendarProps = ComponentPropsWithRef<typeof StyledCalendar>\n","import type { ElementRef, ForwardRefExoticComponent } from 'react'\nimport React from 'react'\nimport { I18nProvider } from 'react-aria'\nimport * as RadixPopover from '@radix-ui/react-popover'\nimport type { DateRange, DateValue } from 'react-aria'\n\nimport type { CalendarDatePickerProps, CalendarRangePickerProps } from './types'\nimport { Trigger } from './partials/trigger'\nimport { Content } from './partials/content'\nimport type { CalendarProviderProps } from './use-calendar-context'\nimport { CalendarProvider, useCalendarContext } from './use-calendar-context'\nimport { Value } from './partials/value'\nimport { ClearButton } from './partials/clear-button'\nimport { SaveButton } from './partials/save-button'\nimport { StyledCalendar } from './calendar.styled'\n\n// If an unrecognised locale string is passed in, the component will error, this protects from that by defaulting to English\n// https://github.com/adobe/react-spectrum/issues/7457\nfunction getValidLocale(locale: string | undefined): string {\n if (locale === undefined) {\n return 'en'\n }\n\n try {\n Intl.DateTimeFormat.supportedLocalesOf(locale)\n return locale\n } catch {\n try {\n // the client locale is in the format of ja_JP, but Intl.DateTimeFormat expects ja-JP\n // https://github.com/formatjs/formatjs/discussions/2440\n const localeWithDashes = locale.replace(/_/g, '-')\n Intl.DateTimeFormat.supportedLocalesOf(localeWithDashes)\n return localeWithDashes\n } catch {\n return 'en'\n }\n }\n}\n\nexport type CalendarProps = (\n | CalendarDatePickerProps\n | CalendarRangePickerProps\n) & {\n /**\n * The locale for Calendar internationalization\n */\n locale?: string\n}\n\ninterface CalendarRootProps {\n children: React.ReactNode\n}\n\nconst Root = React.forwardRef<\n ElementRef<typeof StyledCalendar>,\n CalendarRootProps\n>(({ children, ...restProps }, forwardRef) => {\n const { open, setOpen } = useCalendarContext()\n\n return (\n <RadixPopover.Root open={open} onOpenChange={setOpen}>\n <StyledCalendar ref={forwardRef} {...restProps}>\n {children}\n </StyledCalendar>\n </RadixPopover.Root>\n )\n})\n\nexport const Calendar = React.forwardRef<\n ElementRef<typeof StyledCalendar>,\n CalendarProps\n>(\n (\n {\n picker,\n defaultValue,\n value,\n onValueChange,\n defaultOpen,\n open,\n onClose,\n onOpen,\n locale,\n visibleMonths,\n minDate,\n maxDate,\n disabled,\n 'aria-disabled': ariaDisabled,\n children,\n predefinedValues,\n ...props\n },\n forwardRef\n ) => {\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n const providerProps = {\n picker,\n defaultValue,\n value,\n onValueChange,\n visibleMonths,\n minDate,\n maxDate,\n defaultOpen,\n open,\n onClose,\n onOpen,\n disabled,\n ariaDisabled,\n predefinedValues,\n } as CalendarProviderProps<DateValue> | CalendarProviderProps<DateRange>\n\n const validatedLocale = getValidLocale(locale)\n\n return (\n <I18nProvider locale={validatedLocale}>\n <CalendarProvider {...(providerProps as any)}>\n <Root {...props} ref={forwardRef}>\n {children}\n </Root>\n </CalendarProvider>\n </I18nProvider>\n )\n }\n) as ForwardRefExoticComponent<CalendarProps> & Partials\n\nexport interface Partials {\n Trigger: typeof Trigger\n Content: typeof Content\n Value: typeof Value\n ClearButton: typeof ClearButton\n SaveButton: typeof SaveButton\n}\n\nCalendar.Trigger = Trigger\nCalendar.Content = Content\nCalendar.Value = Value\nCalendar.ClearButton = ClearButton\nCalendar.SaveButton = SaveButton\n"],"names":["styled","Primitive","textFieldStyles","StyledValue","BaseButton","focus","actionButtonStyles","React","Tooltip","jsx","IconCross","createContext","useState","useMemo","useControllableState","useCallback","value","useContext","useFormFieldContext","RadixTrigger","jsxs","Fragment","stringAttrValue","IconCalendarBlank","booleanify","RadixContent","Flex","Heading","IconButton","useDateFormatter","IconChevronLeft","IconChevronRight","date","useRef","useCalendarCell","isSameMonth","isSameDay","useFocusRing","mergeProps","isToday","getLocalTimeZone","useLocale","useCalendarGrid","getWeeksInMonth","Button","theme","useCalendarState","createCalendar","useCalendar","useRangeCalendarState","useRangeCalendar","useEffect","RadixPopover","I18nProvider"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOa,MAAA,iBAAA,GAAoBA,2BAAO,CAAAC,+BAAA,CAAU,IAAM,EAAA;AAAA,EACtD,KAAA,EAAOC,yCAAgB,CAAA,IAAA,CAAK,WAAY,CAAA,KAAA;AAAA,EACxC,OAAS,EAAA,OAAA;AACX,CAAC,CAAA,CAAA;AAEY,MAAAC,aAAA,GAAcH,2BAAO,CAAAC,+BAAA,CAAU,IAAM,EAAA;AAAA,EAChD,OAAS,EAAA,OAAA;AACX,CAAC,CAAA,CAAA;AAEY,MAAA,mBAAA,GAAsBD,2BAAO,CAAAC,+BAAA,CAAU,IAAM,EAAA;AAAA,EACxD,OAAS,EAAA,MAAA;AAAA,EACT,cAAgB,EAAA,QAAA;AAAA,EAChB,OAAS,EAAA,KAAA;AAAA,EACT,KAAO,EAAA,uBAAA;AACT,CAAC,CAAA,CAAA;AAEY,MAAA,aAAA,GAAgBD,4BAAOI,iCAAY,EAAA;AAAA,EAC9C,OAAS,EAAA,aAAA;AAAA,EACT,GAAK,EAAA,KAAA;AAAA,EACL,cAAgB,EAAA,eAAA;AAAA,EAChB,UAAY,EAAA,QAAA;AAAA,EACZ,MAAQ,EAAA,KAAA;AAAA,EACR,OAAS,EAAA,QAAA;AAAA,EACT,QAAU,EAAA,OAAA;AAAA,EAEV,GAAGF,0CAAgB,QAAS,CAAA,IAAA;AAAA,EAE5B,MAAA,EAAQA,0CAAgB,QAAS,CAAA,OAAA;AAAA,EACjC,GAAGG,yBAAM,GAAI,CAAA;AAAA,IACX,SAAW,EAAA,QAAA;AAAA,GACZ,CAAA;AAAA,EAED,qCAAuC,EAAA;AAAA,IACrC,GAAGH,0CAAgB,QAAS,CAAA,QAAA;AAAA,IAC5B,KAAO,EAAA,yBAAA;AAAA,GACT;AAAA,EAEA,QAAU,EAAA;AAAA,IACR,eAAiB,EAAA;AAAA,MACf,IAAM,EAAA;AAAA,QACJ,YAAc,EAAA,mBAAA;AAAA;AAAA,OAChB;AAAA,KACF;AAAA,GACF;AACF,CAAC,CAAA,CAAA;AAEY,MAAA,mBAAA,GAAsBF,4BAAOI,iCAAY,EAAA;AAAA,EACpD,KAAO,EAAA,MAAA;AAAA,EACP,MAAQ,EAAA,OAAA;AAAA,EACR,OAAS,EAAA,GAAA;AAAA,EACT,eAAiB,EAAA,cAAA;AAAA,EACjB,MAAQ,EAAA,MAAA;AAAA,EACR,MAAQ,EAAA,SAAA;AACV,CAAC,CAAA;;ACvDY,MAAA,iBAAA,GAAoBJ,4BAAOI,iCAAY,EAAA;AAAA,EAClD,QAAU,EAAA,UAAA;AAAA,EACV,GAAK,EAAA,CAAA;AAAA,EACL,MAAQ,EAAA,CAAA;AAAA,EACR,KAAO,EAAA,kBAAA;AAAA;AAAA,EACP,MAAQ,EAAA,MAAA;AAAA,EAER,GAAGE,4CAAA;AAAA,EAEH,qCAAuC,EAAA;AAAA,IACrC,KAAO,EAAA,yBAAA;AAAA,GACT;AACF,CAAC,CAAA;;ACLM,MAAM,WAAc,GAAAC,yBAAA,CAAM,UAG/B,CAAA,CAAC,EAAE,YAAA,EAAc,SAAW,EAAA,KAAA,EAAO,GAAG,SAAA,EAAa,EAAA,UAAA,qCAClDC,2BACC,EAAA,EAAA,QAAA,EAAA;AAAA,kBAAAC,cAAA,CAACD,2BAAQ,CAAA,OAAA,EAAR,EAAgB,OAAA,EAAO,IACtB,EAAA,QAAA,kBAAAC,cAAA;AAAA,IAAC,iBAAA;AAAA,IAAA;AAAA,MACE,GAAG,SAAA;AAAA,MACJ,GAAK,EAAA,UAAA;AAAA,MACL,cAAY,SAAa,IAAA,IAAA,GAAA,SAAA,GAAA,KAAA;AAAA,MAEzB,yCAACC,2BAAU,EAAA,EAAA,CAAA;AAAA,KAAA;AAAA,GAEf,EAAA,CAAA;AAAA,kBACCD,cAAA,CAAAD,2BAAA,CAAQ,OAAR,EAAA,EAAiB,QAAM,EAAA,KAAA,EAAA,CAAA;AAAA,CAAA,EAC1B,CACD,CAAA;;AC4BD,MAAM,eAAA,GAAkBG,mBAAyC,CAAA,EAAS,CAAA,CAAA;AAEnE,MAAM,mBAAmB,CAAkC;AAAA,EAChE,QAAA;AAAA,EACA,aAAgB,GAAA,CAAA;AAAA,EAChB,KAAO,EAAA,SAAA;AAAA,EACP,YAAc,EAAA,gBAAA;AAAA,EACd,aAAA;AAAA,EACA,IAAM,EAAA,QAAA;AAAA,EACN,WAAa,EAAA,eAAA;AAAA,EACb,MAAA;AAAA,EACA,OAAA;AAAA,EACA,GAAG,SAAA;AACL,CAA6C,KAAA;AArE7C,EAAA,IAAA,EAAA,CAAA;AAsEE,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAIC,eAAS,KAAK,CAAA,CAAA;AACxD,EAAA,MAAM,CAAC,qBAAuB,EAAA,wBAAwB,CAAI,GAAAA,cAAA,CAExD,gCAAa,gBAAgB,CAAA,CAAA;AAE/B,EAAA,MAAM,eAAkB,GAAAC,aAAA;AAAA,IACtB,OAAO;AAAA,MACL,MAAQ,EAAA,aAAA;AAAA,KACV,CAAA;AAAA,IACA,CAAC,aAAa,CAAA;AAAA,GAChB,CAAA;AAEA,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAIC,8CAAqB,CAAA;AAAA,IAC7C,IAAM,EAAA,SAAA;AAAA,IACN,WAAa,EAAA,gBAAA;AAAA,IACb,QAAU,EAAA,aAAA;AAAA,GACX,CAAA,CAAA;AAED,EAAA,MAAM,CAAC,IAAA,GAAO,KAAO,EAAA,OAAO,IAAIA,8CAAqB,CAAA;AAAA,IACnD,IAAM,EAAA,QAAA;AAAA,IACN,WAAa,EAAA,eAAA;AAAA,IACb,UAAU,CAAS,KAAA,KAAA;AACjB,MAAA,IAAI,KAAO,EAAA;AACT,QAAA,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,EAAA,CAAA;AAAA,OACK,MAAA;AACL,QAAA,OAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,OAAA,EAAA,CAAA;AAAA,OACF;AAAA,KACF;AAAA,GACD,CAAA,CAAA;AAED,EAAA,MAAM,mBAAsB,GAAAC,iBAAA;AAAA,IAC1B,CAACC,MAAmB,KAAA;AAClB,MAAA,IAAI,aAAe,EAAA;AACjB,QAAA,wBAAA,CAAyBA,MAAK,CAAA,CAAA;AAAA,OACzB,MAAA;AACL,QAAA,QAAA,CAASA,MAAK,CAAA,CAAA;AACd,QAAA,OAAA,CAAQ,KAAK,CAAA,CAAA;AAAA,OACf;AAAA,KACF;AAAA,IACA,CAAC,QAAA,EAAU,OAAS,EAAA,aAAA,EAAe,wBAAwB,CAAA;AAAA,GAC7D,CAAA;AAEA,EAAA,MAAM,cAAc,MAAY;AAC9B,IAAA,QAAA,CAAS,qBAAqB,CAAA,CAAA;AAC9B,IAAA,OAAA,CAAQ,KAAK,CAAA,CAAA;AAAA,GACf,CAAA;AAEA,EACE,uBAAAP,cAAA;AAAA,IAAC,eAAgB,CAAA,QAAA;AAAA,IAAhB;AAAA,MACC,KAAO,EAAA;AAAA,QACL,GAAG,SAAA;AAAA,QACH,eAAA;AAAA,QACA,KAAA;AAAA,QACA,QAAA;AAAA,QACA,IAAA;AAAA,QACA,OAAA;AAAA,QACA,mBAAA;AAAA,QACA,gBAAA;AAAA,QACA,WAAA;AAAA;AAAA,QAEA,aAAgB,EAAA,CAAA,EAAA,GAAA,aAAA,GAAgB,qBAAwB,GAAA,KAAA,KAAxC,IAAkD,GAAA,EAAA,GAAA,IAAA;AAAA,OACpE;AAAA,MAEC,QAAA;AAAA,KAAA;AAAA,GACH,CAAA;AAEJ,CAAA,CAAA;AAEa,MAAA,kBAAA,GAAqB,MAEFQ,gBAAA,CAAW,eAAe,CAAA;;ACxFnD,MAAM,UAAUV,yBAAM,CAAA,UAAA;AAAA,EAC3B,CACE;AAAA,IACE,EAAA;AAAA,IACA,kBAAoB,EAAA,eAAA;AAAA,IACpB,WAAA;AAAA,IACA,OAAU,GAAA,KAAA;AAAA,IACV,SAAY,GAAA,IAAA;AAAA,IACZ,UAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAG,SAAA;AAAA,KAEL,UACG,KAAA;AACH,IAAA,MAAM,EAAE,KAAO,EAAA,QAAA,EAAU,QAAU,EAAA,YAAA,KAAiB,kBAAmB,EAAA,CAAA;AAEvE,IAAA,MAAM,EAAE,aAAA,EAAe,eAAiB,EAAA,2BAAA,KACtCW,wCAAoB,EAAA,CAAA;AAEtB,IAAA,IAAI,OAAS,EAAA;AACX,MAAA,uBACGT,cAAA,CAAAU,oBAAA,EAAA,EAAa,GAAK,EAAA,UAAA,EAAY,OAAO,EAAA,IAAA,EACpC,QAAC,kBAAAV,cAAA,CAAA,mBAAA,EAAA,EAAoB,OAAO,EAAA,IAAA,EAAE,GAAG,SAAA,EAC9B,UACH,CACF,EAAA,CAAA,CAAA;AAAA,KAEJ;AAEA,IAAA,MAAM,iBAAiB,MAAY;AACjC,MAAA,QAAA,CAAS,KAAS,CAAA,CAAA,CAAA;AAClB,MAAA,IAAI,YAAY,KAAW,CAAA,EAAA;AACzB,QAAQ,OAAA,EAAA,CAAA;AAAA,OACV;AAAA,KACF,CAAA;AAEA,IAAA,MAAM,kBACJ,GAAA,SAAA,IAAa,KAAS,IAAA,IAAA,IAAQ,UAAe,KAAA,KAAA,CAAA,CAAA;AAE/C,IAAA,uBAEIW,eAAA,CAAAC,mBAAA,EAAA,EAAA,QAAA,EAAA;AAAA,sBAAAZ,cAAA,CAACU,oBAAa,EAAA,EAAA,GAAA,EAAK,UAAY,EAAA,OAAA,EAAO,IACpC,EAAA,QAAA,kBAAAC,eAAA;AAAA,QAAC,aAAA;AAAA,QAAA;AAAA,UACC,IAAI,EAAM,IAAA,IAAA,GAAA,EAAA,GAAA,aAAA;AAAA,UACV,kBAAkB,EAAAE,iCAAA;AAAA,YAChB,eAAA;AAAA,YACA,2BAAA;AAAA,WACF;AAAA,UACA,eAAiB,EAAA,kBAAA;AAAA,UACjB,QAAA;AAAA,UACA,eAAe,EAAA,YAAA;AAAA,UACd,GAAG,SAAA;AAAA,UAEH,QAAA,EAAA;AAAA,YAAA,KAAA,IAAS,uBACPb,cAAA,CAAAN,aAAA,EAAA,EAAa,UAAS,CAEvB,mBAAAM,cAAA,CAAC,qBAAmB,QAAY,EAAA,WAAA,EAAA,CAAA;AAAA,YAGjC,CAAC,sCACCA,cAAA,CAAA,mBAAA,EAAA,EACC,yCAACc,mCAAkB,EAAA,EAAA,IAAA,EAAK,SAAQ,CAClC,EAAA,CAAA;AAAA,WAAA;AAAA,SAAA;AAAA,OAGN,EAAA,CAAA;AAAA,MACC,kBACC,oBAAAd,cAAA;AAAA,QAAC,WAAA;AAAA,QAAA;AAAA,UACC,KAAO,EAAA,UAAA;AAAA,UACP,OAAS,EAAA,cAAA;AAAA,UACT,QAAA,EAAU,QAAY,IAAA,IAAA,GAAA,QAAA,GAAAe,4BAAA,CAAW,YAAY,CAAA;AAAA,SAAA;AAAA,OAC/C;AAAA,KAEJ,EAAA,CAAA,CAAA;AAAA,GAEJ;AACF,CAAA;;AC3Ha,MAAA,aAAA,GAAgBxB,4BAAOyB,oBAAc,EAAA;AAAA,EAChD,MAAQ,EAAA,WAAA;AAAA,EACR,UAAY,EAAA,sBAAA;AAAA,EACZ,YAAc,EAAA,MAAA;AAAA,EACd,SAAW,EAAA,MAAA;AACb,CAAC,CAAA,CAAA;AAEY,MAAA,kBAAA,GAAqBzB,4BAAO0B,qBAAM,EAAA;AAAA,EAC7C,OAAS,EAAA,MAAA;AAAA,EACT,GAAK,EAAA,MAAA;AACP,CAAC,CAAA,CAAA;AAEM,MAAM,iBAAoB,GAAA1B,2BAAA,CAAO0B,qBAAM,EAAA,EAAE,CAAA,CAAA;AAEzC,MAAM,qBAAwB,GAAA1B,2BAAA,CAAOC,+BAAU,CAAA,GAAA,EAAK,EAAE,CAAA,CAAA;AAEhD,MAAA,sBAAA,GAAyBD,2BAAO,CAAAC,+BAAA,CAAU,GAAK,EAAA;AAAA,EAC1D,WAAa,EAAA,MAAA;AACf,CAAC,CAAA,CAAA;AAEY,MAAA,kBAAA,GAAqBD,2BAAO,CAAAC,+BAAA,CAAU,GAAK,EAAA;AAAA,EACtD,OAAS,EAAA,MAAA;AAAA,EACT,GAAK,EAAA,MAAA;AAAA,EACL,OAAS,EAAA,MAAA;AAAA,EACT,SAAW,EAAA,4BAAA;AACb,CAAC,CAAA;;AC3BY,MAAA,iBAAA,GAAoBD,4BAAO2B,8BAAS,EAAA;AAAA,EAC/C,MAAQ,EAAA,CAAA;AAAA,EACR,IAAM,EAAA,GAAA;AAAA,EACN,SAAW,EAAA,QAAA;AACb,CAAC,CAAA,CAAA;AAEY,MAAA,uBAAA,GAA0B3B,4BAAO,KAAO,EAAA;AAAA,EACnD,MAAQ,EAAA,IAAA;AAAA;AAAA,EAER,KAAO,EAAA,2BAAA;AACT,CAAC,CAAA,CAAA;AAEY,MAAA,YAAA,GAAeA,4BAAO0B,qBAAM,EAAA;AAAA,EACvC,KAAO,EAAA,gBAAA;AAAA,EACP,MAAQ,EAAA,IAAA;AAAA,EACR,UAAY,EAAA,QAAA;AAAA,EACZ,cAAgB,EAAA,eAAA;AAClB,CAAC,CAAA;;ACTY,MAAA,YAAA,GAAenB,yBAAM,CAAA,UAAA,CAGhC,CAAC,EAAE,YAAY,QAAU,EAAA,GAAG,SAAU,EAAA,EAAG,UACzC,qBAAAE,cAAA;AAAA,EAACmB,iCAAA;AAAA,EAAA;AAAA,IACE,GAAG,SAAA;AAAA,IACJ,IAAK,EAAA,QAAA;AAAA,IACL,QAAU,EAAA,UAAA;AAAA,IACV,GAAK,EAAA,UAAA;AAAA,IAEJ,QAAA;AAAA,GAAA;AACH,CACD,CAAA;;ACJM,MAAM,SAAS,CAAC;AAAA,EACrB,KAAA;AAAA,EACA,eAAA;AAAA,EACA,eAAA;AAAA,EACA,aAAA;AACF,CAAgC,KAAA;AAC9B,EAAA,MAAM,qBAAqBC,0BAAiB,CAAA;AAAA,IAC1C,KAAO,EAAA,MAAA;AAAA,IACP,IAAM,EAAA,SAAA;AAAA,IACN,UAAU,KAAM,CAAA,QAAA;AAAA,GACjB,CAAA,CAAA;AAED,EAAA,uCACG,YACC,EAAA,EAAA,QAAA,EAAA;AAAA,oBAAApB,cAAA,CAAC,YAAc,EAAA,EAAA,GAAG,eAChB,EAAA,QAAA,kBAAAA,cAAA,CAACqB,qCAAgB,CACnB,EAAA,CAAA;AAAA,mCACC,iBAAkB,EAAA,EAAA,KAAA,EAAO,CAAG,EAAA,QAAA,EAAS,MACnC,QAAmB,EAAA,kBAAA,CAAA,MAAA;AAAA,MAClB,KAAM,CAAA,YAAA,CAAa,KAAM,CAAA,MAAA,CAAO,MAAM,QAAQ,CAAA;AAAA,KAElD,EAAA,CAAA;AAAA,IACC,aAAA,KAAkB,qBAEfV,eAAA,CAAAC,mBAAA,EAAA,EAAA,QAAA,EAAA;AAAA,sBAAAZ,cAAA,CAAC,uBAAwB,EAAA,EAAA,CAAA;AAAA,qCACxB,iBAAkB,EAAA,EAAA,KAAA,EAAO,CAAG,EAAA,QAAA,EAAS,MACnC,QAAmB,EAAA,kBAAA,CAAA,MAAA;AAAA,QAClB,KAAA,CAAM,YAAa,CAAA,KAAA,CAAM,GAAI,CAAA,EAAE,MAAQ,EAAA,CAAA,EAAG,CAAA,CAAE,MAAO,CAAA,KAAA,CAAM,QAAQ,CAAA;AAAA,OAErE,EAAA,CAAA;AAAA,KACF,EAAA,CAAA;AAAA,mCAED,YAAc,EAAA,EAAA,GAAG,eAChB,EAAA,QAAA,kBAAAA,cAAA,CAACsB,sCAAiB,CACpB,EAAA,CAAA;AAAA,GACF,EAAA,CAAA,CAAA;AAEJ,CAAA;;ACpDa,MAAA,UAAA,GAAa/B,2BAAO,CAAAC,+BAAA,CAAU,EAAI,EAAA;AAAA,EAC7C,MAAQ,EAAA,KAAA;AAAA,EACR,SAAW,EAAA,KAAA;AAAA,EACX,QAAU,EAAA,UAAA;AACZ,CAAC,CAAA,CAAA;AAEY,MAAA,iBAAA,GAAoBD,2BAAO,CAAAC,+BAAA,CAAU,GAAK,EAAA;AAAA,EACrD,MAAQ,EAAA,SAAA;AAAA,EACR,MAAQ,EAAA,KAAA;AAAA,EACR,OAAS,EAAA,MAAA;AAAA,EACT,UAAY,EAAA,QAAA;AAAA,EACZ,cAAgB,EAAA,QAAA;AAAA,EAChB,YAAc,EAAA,KAAA;AAAA,EACd,KAAO,EAAA,gBAAA;AAAA,EAEP,GAAGI,yBAAM,GAAI,CAAA;AAAA,IACX,GAAK,EAAA,GAAA;AAAA,IACL,IAAM,EAAA,GAAA;AAAA,IACN,QAAU,EAAA,UAAA;AAAA,IACV,MAAQ,EAAA,GAAA;AAAA,IACR,SAAW,EAAA,QAAA;AAAA,IACX,OAAS,EAAA,uBAAA;AAAA,GACV,CAAA;AAAA,EAED,yBAA2B,EAAA;AAAA,IACzB,cAAgB,EAAA,cAAA;AAAA,IAChB,KAAO,EAAA,yBAAA;AAAA,IACP,MAAQ,EAAA,SAAA;AAAA,GACV;AAAA,EAEA,+BAAiC,EAAA;AAAA,IAC/B,MAAQ,EAAA;AAAA,MACN,eAAiB,EAAA,mCAAA;AAAA,MACjB,KAAO,EAAA,gBAAA;AAAA,KACT;AAAA,GACF;AAAA,EAEA,QAAU,EAAA;AAAA,IACR,KAAO,EAAA;AAAA,MACL,IAAM,EAAA;AAAA,QACJ,eAAiB,EAAA,mCAAA;AAAA,QACjB,KAAO,EAAA,gBAAA;AAAA,OACT;AAAA,KACF;AAAA,IACA,QAAU,EAAA;AAAA,MACR,IAAM,EAAA;AAAA,QACJ,eAAiB,EAAA,wCAAA;AAAA,QACjB,KAAO,EAAA,yBAAA;AAAA,QAEP,+BAAiC,EAAA;AAAA,UAC/B,MAAQ,EAAA;AAAA,YACN,eAAiB,EAAA,qCAAA;AAAA,YACjB,KAAO,EAAA,yBAAA;AAAA,WACT;AAAA,SACF;AAAA,OACF;AAAA,KACF;AAAA,IACA,KAAO,EAAA;AAAA,MACL,MAAQ,EAAA;AAAA,QACN,eAAiB,EAAA,qCAAA;AAAA,QACjB,KAAO,EAAA,gBAAA;AAAA,QACP,YAAc,EAAA,CAAA;AAAA,QAEd,+BAAiC,EAAA;AAAA,UAC/B,MAAQ,EAAA;AAAA,YACN,eAAiB,EAAA,kCAAA;AAAA,WACnB;AAAA,SACF;AAAA,OACF;AAAA,MACA,KAAO,EAAA;AAAA,QACL,oBAAsB,EAAA,CAAA;AAAA,QACtB,uBAAyB,EAAA,CAAA;AAAA,OAC3B;AAAA,MACA,GAAK,EAAA;AAAA,QACH,mBAAqB,EAAA,CAAA;AAAA,QACrB,sBAAwB,EAAA,CAAA;AAAA,OAC1B;AAAA,KACF;AAAA,IACA,MAAQ,EAAA;AAAA,MACN,IAAM,EAAA;AAAA,QACJ,OAAS,EAAA,MAAA;AAAA,OACX;AAAA,KACF;AAAA,GACF;AACF,CAAC,CAAA;;ACrEY,MAAA,IAAA,GAAO,CAAC,KAAsC,KAAA;AACzD,EAAA,IAAI,EAAE,KAAA,QAAO2B,MAAM,EAAA,YAAA,EAAiB,GAAA,KAAA,CAAA;AACpC,EAAM,MAAA,GAAA,GAAMC,aAAO,IAAI,CAAA,CAAA;AACvB,EAAA,MAAM,EAAE,SAAA,EAAW,WAAa,EAAA,UAAA,EAAY,eAAkB,GAAAC,yBAAA;AAAA,IAC5D,QAAEF,MAAK,EAAA;AAAA,IACP,KAAA;AAAA,IACA,GAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,cAAiB,GAAA,CAACG,gBAAY,CAAA,YAAA,EAAcH,MAAI,CAAA,CAAA;AAEtD,EAAQ,KAAA,GAAA,KAAA,CAAA;AAIR,EAAA,MAAM,gBACJ,GAAA,KAAA,CAAM,gBAAqB,KAAA,KAAA,CAAA,IAAa,KAAM,CAAA,gBAAA,KAAqB,IAC/D,GAAAI,cAAA,CAAUJ,MAAM,EAAA,KAAA,CAAM,gBAAiB,CAAA,KAAK,CAC5C,GAAA,UAAA,CAAA;AACN,EAAA,MAAM,cACJ,GAAA,KAAA,CAAM,gBAAqB,KAAA,KAAA,CAAA,IAAa,KAAM,CAAA,gBAAA,KAAqB,IAC/D,GAAAI,cAAA,CAAUJ,MAAM,EAAA,KAAA,CAAM,gBAAiB,CAAA,GAAG,CAC1C,GAAA,UAAA,CAAA;AAEN,EAAM,MAAA,EAAE,UAAW,EAAA,GAAIK,sBAAa,EAAA,CAAA;AAGpC,EAAA,MAAM,OAAU,GAAA,UAAA,KAAe,CAAC,gBAAA,IAAoB,CAAC,cAAA,CAAA,CAAA;AAErD,EAAA,MAAM,eAAe,OACjB,GAAA,gBAAA,GACE,OACA,GAAA,cAAA,GACA,QACA,QACF,GAAA,KAAA,CAAA,CAAA;AAEJ,EACE,uBAAA5B,cAAA,CAAC,UAAY,EAAA,EAAA,GAAG,SACd,EAAA,QAAA,kBAAAA,cAAA;AAAA,IAAC,iBAAA;AAAA,IAAA;AAAA,MACE,GAAG6B,oBAAW,CAAA,WAAA,EAAa,UAAU,CAAA;AAAA,MACtC,GAAA;AAAA,MACA,QAAA,EAAU,eAAe,gBAAoB,IAAA,cAAA,CAAA;AAAA,MAC7C,KAAO,EAAAC,YAAA,CAAQP,MAAM,EAAAQ,qBAAA,EAAkB,CAAA;AAAA,MACvC,KAAO,EAAA,YAAA;AAAA,MACP,MAAQ,EAAA,cAAA;AAAA,MAEP,QAAA,EAAA,aAAA;AAAA,KAAA;AAAA,GAEL,EAAA,CAAA,CAAA;AAEJ,CAAA;;ACnEa,MAAA,UAAA,GAAaxC,2BAAO,CAAAC,+BAAA,CAAU,KAAO,EAAA;AAAA,EAChD,cAAgB,EAAA,UAAA;AAAA,EAChB,aAAe,EAAA,QAAA;AACjB,CAAC,CAAA,CAAA;AAEY,MAAA,UAAA,GAAaD,2BAAO,CAAAC,+BAAA,CAAU,EAAI,EAAA;AAAA,EAC7C,MAAQ,EAAA,KAAA;AAAA,EACR,KAAO,EAAA,uBAAA;AAAA,EACP,UAAY,EAAA,UAAA;AAAA,EACZ,UAAY,EAAA,KAAA;AACd,CAAC,CAAA;;ACIM,MAAM,OAAOM,yBAAM,CAAA,UAAA;AAAA,EACxB,CAAC,OAAO,UAAe,KAAA;AACrB,IAAM,MAAA,EAAE,MAAO,EAAA,GAAIkC,mBAAU,EAAA,CAAA;AAC7B,IAAA,MAAM,EAAE,KAAA,EAAO,MAAS,GAAA,IAAO,GAAA,KAAA,CAAA;AAC/B,IAAA,MAAM,SAA0B,GAAA,KAAA,CAAM,YAAa,CAAA,KAAA,CAAM,IAAI,MAAM,CAAA,CAAA;AACnE,IAAA,MAAM,EAAE,SAAA,EAAW,WAAa,EAAA,QAAA,EAAa,GAAAC,yBAAA;AAAA,MAC3C,KAAA;AAAA,MACA,KAAA;AAAA,KACF,CAAA;AAGA,IAAM,MAAA,YAAA,GAAeC,oBAAgB,CAAA,SAAA,EAAW,MAAM,CAAA,CAAA;AAEtD,IAAA,uCACG,UAAW,EAAA,EAAA,GAAA,EAAK,YAAa,GAAG,SAAA,EAAW,aAAY,GACtD,EAAA,QAAA,EAAA;AAAA,sBAAAlC,cAAA,CAAC,WAAO,GAAG,WAAA,EACT,yCAAC,IACE,EAAA,EAAA,QAAA,EAAA,QAAA,CAAS,IAAI,CAAC,GAAA,EAAK,sBACjBA,cAAA,CAAA,UAAA,EAAA,EACC,yCAAC,KAAK,EAAA,EAAA,QAAA,EAAA,GAAA,EAAI,KADK,CAEjB,CACD,GACH,CACF,EAAA,CAAA;AAAA,qCACC,OACE,EAAA,EAAA,QAAA,EAAA,KAAA,CAAM,KAAK,KAAM,CAAA,YAAY,EAAE,IAAK,EAAC,CAAE,CAAA,GAAA,CAAI,+BACzCA,cAAA,CAAA,IAAA,EAAA,EACE,gBACE,cAAe,CAAA,SAAA,EAAW,SAAS,CACnC,CAAA,GAAA;AAAA,QAAI,CAAC,IAAA,EAA2B,CAC/B,KAAA,IAAA,KAAS,IACP,mBAAAA,cAAA;AAAA,UAAC,IAAA;AAAA,UAAA;AAAA,YAEC,KAAA;AAAA,YACA,IAAA;AAAA,YACA,YAAc,EAAA,SAAA;AAAA,WAAA;AAAA,UAHT,CAAA;AAAA,SAIP,mBAECA,cAAA,CAAA,IAAA,EAAA,EAAA,EAAQ,CAAG,CAAA;AAAA,OAEhB,EAAA,EAdK,SAeT,CACD,CACH,EAAA,CAAA;AAAA,KACF,EAAA,CAAA,CAAA;AAAA,GAEJ;AACF,CAAA;;AC9Da,MAAA,sBAAA,GAAyBT,2BAAO,CAAAC,+BAAA,CAAU,GAAK,EAAA;AAAA,EAC1D,OAAS,EAAA,MAAA;AAAA,EACT,aAAe,EAAA,QAAA;AAAA,EACf,WAAa,EAAA,4BAAA;AAAA,EACb,OAAS,EAAA,eAAA;AAAA,EAET,UAAY,EAAA;AAAA,IACV,eAAiB,EAAA,cAAA;AAAA,IACjB,MAAQ,EAAA,MAAA;AAAA,IACR,QAAU,EAAA,MAAA;AAAA,IACV,OAAS,EAAA,YAAA;AAAA,IACT,SAAW,EAAA,MAAA;AAAA,IACX,UAAY,EAAA,MAAA;AAAA,IACZ,KAAO,EAAA,gBAAA;AAAA,IACP,YAAc,EAAA,MAAA;AAAA,IACd,YAAc,EAAA,KAAA;AAAA,IACd,QAAU,EAAA,OAAA;AAAA,IACV,MAAQ,EAAA,SAAA;AAAA,IAER,SAAW,EAAA;AAAA,MACT,eAAiB,EAAA,qCAAA;AAAA,MACjB,KAAO,EAAA,wBAAA;AAAA,MACP,UAAY,EAAA,KAAA;AAAA,KACd;AAAA,GACF;AACF,CAAC,CAAA;;ACrBM,MAAM,mBAAmB,MAAiC;AAC/D,EAAA,MAAM,EAAE,gBAAA,EAAkB,mBAAoB,EAAA,GAAI,kBAEhD,EAAA,CAAA;AAEF,EAAA,IAAI,qBAAqB,KAAW,CAAA,EAAA;AAClC,IAAO,OAAA,IAAA,CAAA;AAAA,GACT;AAEA,EAAA,uBACGQ,cAAA,CAAA,sBAAA,EAAA,EACE,QAAiB,EAAA,gBAAA,CAAA,GAAA,CAAI,CACpB,IAAA,qBAAAA,cAAA;AAAA,IAACmC,yBAAA;AAAA,IAAA;AAAA,MACC,OAAQ,EAAA,OAAA;AAAA,MACR,IAAK,EAAA,QAAA;AAAA,MAEL,IAAK,EAAA,QAAA;AAAA,MACL,OAAS,EAAA,MAAM,mBAAoB,CAAA,IAAA,CAAK,KAAK,CAAA;AAAA,MAE5C,QAAK,EAAA,IAAA,CAAA,KAAA;AAAA,KAAA;AAAA,IAJD,IAAK,CAAA,EAAA;AAAA,GAMb,CACH,EAAA,CAAA,CAAA;AAEJ,CAAA;;ACJO,MAAM,cAAiB,GAAA,QAAA,CAASC,0BAAM,CAAA,KAAA,CAAM,EAAE,CAAC,CAAA,CAAA;AAgGtD,MAAM,gBAAgBtC,yBAAM,CAAA,UAAA;AAAA,EAC1B,CAAC,EAAE,aAAA,EAAe,iBAAiB,eAAiB,EAAA,KAAA,IAAS,UAAe,KAAA;AAC1E,IAAM,MAAA,EAAE,eAAgB,EAAA,GAAI,kBAA8B,EAAA,CAAA;AAE1D,IAAA,uBACGa,eAAA,CAAA,kBAAA,EAAA,EAAoB,GAAG,aAAA,EAAe,KAAK,UAC1C,EAAA,QAAA,EAAA;AAAA,sBAAAX,cAAA,CAAC,gBAAiB,EAAA,EAAA,CAAA;AAAA,sBAClBW,eAAA,CAACM,qBAAK,EAAA,EAAA,SAAA,EAAU,QACd,EAAA,QAAA,EAAA;AAAA,wBAAAjB,cAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,KAAA;AAAA,YACA,eAAA;AAAA,YACA,eAAA;AAAA,YACA,eAAe,eAAgB,CAAA,MAAA;AAAA,WAAA;AAAA,SACjC;AAAA,wCACC,iBACC,EAAA,EAAA,QAAA,EAAA;AAAA,0BAAAA,cAAA,CAAC,qBACC,EAAA,EAAA,QAAA,kBAAAA,cAAA,CAAC,IAAK,EAAA,EAAA,KAAA,EAAc,CACtB,EAAA,CAAA;AAAA,UACC,eAAgB,CAAA,MAAA,KAAW,CAC1B,oBAAAA,cAAA,CAAC,sBACC,EAAA,EAAA,QAAA,kBAAAA,cAAA,CAAC,IAAK,EAAA,EAAA,KAAA,EAAc,MAAQ,EAAA,EAAE,MAAQ,EAAA,CAAA,IAAK,CAC7C,EAAA,CAAA;AAAA,SAEJ,EAAA,CAAA;AAAA,OACF,EAAA,CAAA;AAAA,KACF,EAAA,CAAA,CAAA;AAAA,GAEJ;AACF,CAAA,CAAA;AAEA,MAAM,oBAAoB,MAAoB;AAC5C,EAAM,MAAA,EAAE,MAAO,EAAA,GAAIgC,mBAAU,EAAA,CAAA;AAE7B,EAAM,MAAA;AAAA,IACJ,aAAA;AAAA,IACA,eAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAA;AAAA,IACA,mBAAA;AAAA,MACE,kBAA8B,EAAA,CAAA;AAElC,EAAA,MAAM,QAAQK,6BAAiB,CAAA;AAAA,IAC7B,KAAO,EAAA,aAAA;AAAA,IACP,eAAA;AAAA,IACA,QAAU,EAAA,OAAA;AAAA,IACV,QAAU,EAAA,OAAA;AAAA,IACV,SAAW,EAAA,IAAA;AAAA,IACX,QAAU,EAAA,mBAAA;AAAA,IACV,MAAA;AAAA,oBACAC,mBAAA;AAAA,GACD,CAAA,CAAA;AAED,EAAA,MAAM,EAAE,aAAA,EAAe,eAAiB,EAAA,eAAA,EAAoB,GAAAC,qBAAA;AAAA,IAC1D,EAAC;AAAA,IACD,KAAA;AAAA,GACF,CAAA;AAEA,EACE,uBAAAvC,cAAA;AAAA,IAAC,aAAA;AAAA,IAAA;AAAA,MACC,aAAA;AAAA,MACA,eAAA;AAAA,MACA,eAAA;AAAA,MACA,KAAA;AAAA,KAAA;AAAA,GACF,CAAA;AAEJ,CAAA,CAAA;AAEA,MAAM,qBAAqB,MAAoB;AAC7C,EAAM,MAAA,EAAE,MAAO,EAAA,GAAIgC,mBAAU,EAAA,CAAA;AAE7B,EAAM,MAAA;AAAA,IACJ,aAAA;AAAA,IACA,eAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAA;AAAA,IACA,mBAAA;AAAA,MACE,kBAA8B,EAAA,CAAA;AAElC,EAAM,MAAA,GAAA,GAAMR,aAAuB,IAAI,CAAA,CAAA;AAEvC,EAAA,MAAM,QAAQgB,kCAAsB,CAAA;AAAA,IAClC,KAAO,EAAA,aAAA;AAAA,IACP,eAAA;AAAA,IACA,QAAU,EAAA,OAAA;AAAA,IACV,QAAU,EAAA,OAAA;AAAA,IACV,SAAW,EAAA,IAAA;AAAA,IACX,QAAU,EAAA,mBAAA;AAAA,IACV,MAAA;AAAA,oBACAF,mBAAA;AAAA,GACD,CAAA,CAAA;AAED,EAAA,MAAM,EAAE,aAAA,EAAe,eAAiB,EAAA,eAAA,EAAoB,GAAAG,0BAAA;AAAA,IAC1D,EAAC;AAAA,IACD,KAAA;AAAA,IACA,GAAA;AAAA,GACF,CAAA;AAEA,EACE,uBAAAzC,cAAA;AAAA,IAAC,aAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,aAAA;AAAA,MACA,eAAA;AAAA,MACA,eAAA;AAAA,MACA,KAAA;AAAA,KAAA;AAAA,GACF,CAAA;AAEJ,CAAA,CAAA;AAEO,MAAM,UAAUF,yBAAM,CAAA,UAAA;AAAA,EAI3B,CACE;AAAA,IACE,IAAO,GAAA,QAAA;AAAA,IACP,UAAa,GAAA,cAAA;AAAA,IACb,KAAQ,GAAA,OAAA;AAAA,IACR,WAAc,GAAA,CAAA;AAAA,IACd,gBAAmB,GAAA,CAAA;AAAA,IACnB,eAAkB,GAAA,IAAA;AAAA,IAClB,MAAS,GAAA,SAAA;AAAA,IACT,gBAAmB,GAAA,IAAA;AAAA,IACnB,QAAA;AAAA,IACA,GAAG,SAAA;AAAA,KAEL,UACG,KAAA;AACH,IAAA,MAAM,EAAE,MAAA,EAAQ,IAAK,EAAA,GAAI,kBAAmB,EAAA,CAAA;AAE5C,IAAA,IAAI,CAAC,IAAM,EAAA;AACT,MAAO,OAAA,IAAA,CAAA;AAAA,KACT;AAEA,IACE,uBAAAE,cAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACE,GAAG,SAAA;AAAA,QACJ,GAAK,EAAA,UAAA;AAAA,QACL,IAAA;AAAA,QACA,UAAA;AAAA,QACA,KAAA;AAAA,QACA,WAAA;AAAA,QACA,gBAAA;AAAA,QACA,eAAA;AAAA,QACA,MAAA;AAAA,QACA,gBAAA;AAAA,QAEA,QAAA,kBAAAW,eAAA,CAACM,qBAAK,EAAA,EAAA,SAAA,EAAU,QACb,EAAA,QAAA,EAAA;AAAA,UAAA,MAAA,KAAW,QAAW,mBAAAjB,cAAA,CAAC,iBAAkB,EAAA,EAAA,CAAA,kCAAM,kBAAmB,EAAA,EAAA,CAAA;AAAA,UAClE,QAAY,IAAA,IAAA,oBACVA,cAAA,CAAA,kBAAA,EAAA,EAAoB,QAAS,EAAA,CAAA;AAAA,SAElC,EAAA,CAAA;AAAA,OAAA;AAAA,KACF,CAAA;AAAA,GAEJ;AACF,CAAA;;AClRO,MAAM,WAAc,GAAAT,2BAAA,CAAOC,+BAAU,CAAA,IAAA,EAAM,EAAE,CAAA;;ACgBpD,MAAM,cAAgC,GAAA;AAAA,EACpC,GAAK,EAAA,SAAA;AAAA,EACL,KAAO,EAAA,OAAA;AAAA,EACP,IAAM,EAAA,SAAA;AACR,CAAA,CAAA;AAEA,SAAS,UAAA,CACP,IACA,EAAA,SAAA,EACA,QACoB,EAAA;AACpB,EAAA,OAAO,SAAU,CAAA,MAAA,CAAO,IAAK,CAAA,MAAA,CAAO,QAAQ,CAAC,CAAA,CAAA;AAC/C,CAAA;AAEA,SAAS,WAAA,CACP,KACA,EAAA,SAAA,EACA,QACoB,EAAA;AACpB,EAAI,IAAA,KAAA,IAAS,IAAQ,IAAA,KAAA,KAAU,KAAW,CAAA,EAAA;AACxC,IAAO,OAAA,KAAA,CAAA,CAAA;AAAA,GACT;AAEA,EAAA,IAAI,WAAW,KAAO,EAAA;AACpB,IAAA,IAAI,KAAM,CAAA,KAAA,IAAS,IAAQ,IAAA,KAAA,CAAM,OAAO,IAAM,EAAA;AAC5C,MAAO,OAAA,KAAA,CAAA,CAAA;AAAA,KACT;AAEA,IAAA,OAAO,GAAG,MAAW,CAAA,UAAA,CAAA,KAAA,CAAM,OAAO,SAAW,EAAA,QAAQ,GAAC,KAAM,CAAA,CAAA,MAAA,CAAA,UAAA;AAAA,MAC1D,KAAM,CAAA,GAAA;AAAA,MACN,SAAA;AAAA,MACA,QAAA;AAAA,KACF,CAAA,CAAA;AAAA,GACF;AAEA,EAAO,OAAA,UAAA,CAAW,KAAO,EAAA,SAAA,EAAW,QAAQ,CAAA,CAAA;AAC9C,CAAA;AAEa,MAAA,KAAA,GAAQM,yBAAM,CAAA,UAAA,CAGzB,CAAC,EAAE,SAAS,cAAgB,EAAA,GAAG,SAAU,EAAA,EAAG,UAAe,KAAA;AAC3D,EAAM,MAAA,EAAE,KAAM,EAAA,GAAI,kBAAmB,EAAA,CAAA;AAErC,EAAA,MAAM,QAAW,GAAAM,aAAA,CAAQ2B,qBAAkB,EAAA,CAAC,MAAM,CAAC,CAAA,CAAA;AAEnD,EAAA,MAAM,kBAAqB,GAAA3B,aAAA;AAAA,IACzB,OAAO,EAAE,GAAG,MAAA,EAAQ,QAAS,EAAA,CAAA;AAAA,IAC7B,CAAC,QAAQ,QAAQ,CAAA;AAAA,GACnB,CAAA;AACA,EAAM,MAAA,aAAA,GAAgBgB,2BAAiB,kBAAkB,CAAA,CAAA;AAEzD,EAAA,MAAM,cAAiB,GAAA,WAAA,CAAY,KAAO,EAAA,aAAA,EAAe,QAAQ,CAAA,CAAA;AAEjE,EAAA,sCACG,WAAY,EAAA,EAAA,GAAA,EAAK,UAAa,EAAA,GAAG,WAC/B,QACH,EAAA,cAAA,EAAA,CAAA,CAAA;AAEJ,CAAC,CAAA;;AC7DY,MAAA,WAAA,GAActB,yBAAM,CAAA,UAAA,CAG/B,CAAC,EAAE,SAAS,QAAU,EAAA,GAAG,SAAU,EAAA,EAAG,UAAe,KAAA;AACrD,EAAA,MAAM,EAAE,KAAA,EAAO,QAAS,EAAA,GAAI,kBAAmB,EAAA,CAAA;AAE/C,EAAA,MAAM,iBAAiB,MAAY;AACjC,IAAA,QAAA,CAAS,KAAS,CAAA,CAAA,CAAA;AAClB,IAAA,IAAI,YAAY,KAAW,CAAA,EAAA;AACzB,MAAQ,OAAA,EAAA,CAAA;AAAA,KACV;AAAA,GACF,CAAA;AAEA,EACE,uBAAAE,cAAA;AAAA,IAACmC,yBAAA;AAAA,IAAA;AAAA,MACE,GAAG,SAAA;AAAA,MACJ,GAAK,EAAA,UAAA;AAAA,MACL,OAAQ,EAAA,OAAA;AAAA,MACR,IAAK,EAAA,QAAA;AAAA,MACL,OAAS,EAAA,cAAA;AAAA,MACT,UAAU,KAAU,KAAA,IAAA;AAAA,MAEnB,QAAA;AAAA,KAAA;AAAA,GACH,CAAA;AAEJ,CAAC,CAAA;;ACzBY,MAAA,UAAA,GAAarC,yBAAM,CAAA,UAAA,CAG9B,CAAC,EAAE,QAAQ,QAAU,EAAA,GAAG,SAAU,EAAA,EAAG,UAAe,KAAA;AACpD,EAAA,MAAM,EAAE,gBAAA,EAAkB,WAAY,EAAA,GAAI,kBAAmB,EAAA,CAAA;AAE7D,EAAA4C,eAAA,CAAU,MAAM;AACd,IAAA,gBAAA,CAAiB,IAAI,CAAA,CAAA;AAErB,IAAO,OAAA,MAAM,iBAAiB,KAAK,CAAA,CAAA;AAAA,GACrC,EAAG,CAAC,gBAAgB,CAAC,CAAA,CAAA;AAErB,EAAA,MAAM,gBAAgB,MAAY;AAChC,IAAY,WAAA,EAAA,CAAA;AACZ,IAAA,IAAI,WAAW,KAAW,CAAA,EAAA;AACxB,MAAO,MAAA,EAAA,CAAA;AAAA,KACT;AAAA,GACF,CAAA;AAEA,EACE,uBAAA1C,cAAA;AAAA,IAACmC,yBAAA;AAAA,IAAA;AAAA,MACC,GAAK,EAAA,UAAA;AAAA,MACJ,GAAG,SAAA;AAAA,MACJ,OAAQ,EAAA,SAAA;AAAA,MACR,IAAK,EAAA,QAAA;AAAA,MACL,OAAS,EAAA,aAAA;AAAA,MAER,QAAA;AAAA,KAAA;AAAA,GACH,CAAA;AAEJ,CAAC,CAAA;;AC5CY,MAAA,cAAA,GAAiB5C,2BAAO,CAAAC,+BAAA,CAAU,GAAK,EAAA;AAAA,EAClD,QAAU,EAAA,UAAA;AACZ,CAAC,CAAA;;ACYD,SAAS,eAAe,MAAoC,EAAA;AAC1D,EAAA,IAAI,WAAW,KAAW,CAAA,EAAA;AACxB,IAAO,OAAA,IAAA,CAAA;AAAA,GACT;AAEA,EAAI,IAAA;AACF,IAAK,IAAA,CAAA,cAAA,CAAe,mBAAmB,MAAM,CAAA,CAAA;AAC7C,IAAO,OAAA,MAAA,CAAA;AAAA,GACD,CAAA,MAAA;AACN,IAAI,IAAA;AAGF,MAAA,MAAM,gBAAmB,GAAA,MAAA,CAAO,OAAQ,CAAA,IAAA,EAAM,GAAG,CAAA,CAAA;AACjD,MAAK,IAAA,CAAA,cAAA,CAAe,mBAAmB,gBAAgB,CAAA,CAAA;AACvD,MAAO,OAAA,gBAAA,CAAA;AAAA,KACD,CAAA,MAAA;AACN,MAAO,OAAA,IAAA,CAAA;AAAA,KACT;AAAA,GACF;AACF,CAAA;AAgBA,MAAM,IAAA,GAAOM,0BAAM,UAGjB,CAAA,CAAC,EAAE,QAAU,EAAA,GAAG,SAAU,EAAA,EAAG,UAAe,KAAA;AAC5C,EAAA,MAAM,EAAE,IAAA,EAAM,OAAQ,EAAA,GAAI,kBAAmB,EAAA,CAAA;AAE7C,EAAA,uBACGE,cAAA,CAAA2C,uBAAA,CAAa,IAAb,EAAA,EAAkB,MAAY,YAAc,EAAA,OAAA,EAC3C,QAAC,kBAAA3C,cAAA,CAAA,cAAA,EAAA,EAAe,GAAK,EAAA,UAAA,EAAa,GAAG,SAAA,EAClC,UACH,CACF,EAAA,CAAA,CAAA;AAEJ,CAAC,CAAA,CAAA;AAEM,MAAM,WAAWF,yBAAM,CAAA,UAAA;AAAA,EAI5B,CACE;AAAA,IACE,MAAA;AAAA,IACA,YAAA;AAAA,IACA,KAAA;AAAA,IACA,aAAA;AAAA,IACA,WAAA;AAAA,IACA,IAAA;AAAA,IACA,OAAA;AAAA,IACA,MAAA;AAAA,IACA,MAAA;AAAA,IACA,aAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAA;AAAA,IACA,eAAiB,EAAA,YAAA;AAAA,IACjB,QAAA;AAAA,IACA,gBAAA;AAAA,IACA,GAAG,KAAA;AAAA,KAEL,UACG,KAAA;AAEH,IAAA,MAAM,aAAgB,GAAA;AAAA,MACpB,MAAA;AAAA,MACA,YAAA;AAAA,MACA,KAAA;AAAA,MACA,aAAA;AAAA,MACA,aAAA;AAAA,MACA,OAAA;AAAA,MACA,OAAA;AAAA,MACA,WAAA;AAAA,MACA,IAAA;AAAA,MACA,OAAA;AAAA,MACA,MAAA;AAAA,MACA,QAAA;AAAA,MACA,YAAA;AAAA,MACA,gBAAA;AAAA,KACF,CAAA;AAEA,IAAM,MAAA,eAAA,GAAkB,eAAe,MAAM,CAAA,CAAA;AAE7C,IAAA,sCACG8C,sBAAa,EAAA,EAAA,MAAA,EAAQ,eACpB,EAAA,QAAA,kBAAA5C,cAAA,CAAC,oBAAkB,GAAI,aAAA,EACrB,QAAC,kBAAAA,cAAA,CAAA,IAAA,EAAA,EAAM,GAAG,KAAO,EAAA,GAAA,EAAK,UACnB,EAAA,QAAA,EACH,GACF,CACF,EAAA,CAAA,CAAA;AAAA,GAEJ;AACF,EAAA;AAUA,QAAA,CAAS,OAAU,GAAA,OAAA,CAAA;AACnB,QAAA,CAAS,OAAU,GAAA,OAAA,CAAA;AACnB,QAAA,CAAS,KAAQ,GAAA,KAAA,CAAA;AACjB,QAAA,CAAS,WAAc,GAAA,WAAA,CAAA;AACvB,QAAA,CAAS,UAAa,GAAA,UAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sources":["../src/partials/trigger.styled.tsx","../src/partials/clear-action.styled.tsx","../src/partials/clear-action.tsx","../src/use-calendar-context.tsx","../src/partials/trigger.tsx","../src/partials/content.styled.tsx","../src/partials/header.styled.tsx","../src/partials/header-button.tsx","../src/partials/header.tsx","../src/partials/cell.styled.tsx","../src/partials/cell.tsx","../src/partials/grid.styled.tsx","../src/partials/grid.tsx","../src/partials/predefined-ranges.styled.tsx","../src/partials/predefined-ranges.tsx","../src/partials/content.tsx","../src/partials/value.styled.tsx","../src/partials/value.tsx","../src/partials/clear-button.tsx","../src/partials/save-button.tsx","../src/calendar.styled.tsx","../src/calendar.tsx"],"sourcesContent":["import { Primitive } from '@mirohq/design-system-primitive'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { textFieldStyles } from '@mirohq/design-system-base-text-field'\nimport { focus } from '@mirohq/design-system-styles'\nimport { BaseButton } from '@mirohq/design-system-base-button'\n\nexport const StyledPlaceholder = styled(Primitive.span, {\n color: textFieldStyles.base.placeholder.color,\n padding: '0 $50',\n})\n\nexport const StyledValue = styled(Primitive.span, {\n padding: '0 $50',\n})\n\nexport const StyledIconContainer = styled(Primitive.span, {\n display: 'flex',\n justifyContent: 'center',\n padding: '6px',\n color: '$text-neutrals-subtle',\n})\n\nexport const StyledTrigger = styled(BaseButton, {\n display: 'inline-flex',\n gap: '$50',\n justifyContent: 'space-between',\n alignItems: 'center',\n height: '$10',\n padding: '0 $100',\n minWidth: '230px',\n\n ...textFieldStyles.variants.idle,\n\n _hover: textFieldStyles.variants.hovered,\n ...focus.css({\n boxShadow: '$focus',\n }),\n\n '&:disabled, &[aria-disabled=\"true\"]': {\n ...textFieldStyles.variants.disabled,\n color: '$text-neutrals-disabled',\n },\n\n variants: {\n withClearButton: {\n true: {\n paddingRight: 'calc($100 + $400)', // initial left padding + clear button width + gap\n },\n },\n },\n})\n\nexport const StyledCustomTrigger = styled(BaseButton, {\n width: '100%',\n height: 'unset',\n padding: '0',\n backgroundColor: '$transparent',\n border: 'none',\n cursor: 'pointer',\n})\n\nexport type StyledTriggerProps = StrictComponentProps<typeof StyledTrigger>\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { ComponentPropsWithRef } from 'react'\nimport { actionButtonStyles } from '@mirohq/design-system-base-text-field'\nimport { BaseButton } from '@mirohq/design-system-base-button'\n\nexport const StyledClearAction = styled(BaseButton, {\n position: 'absolute',\n top: 0,\n bottom: 0,\n right: 'calc($100 + 1px)', // to compensate border width\n margin: 'auto',\n\n ...actionButtonStyles,\n\n '&:disabled, &[aria-disabled=\"true\"]': {\n color: '$icon-neutrals-disabled',\n },\n})\n\nexport type StyledClearActionProps = ComponentPropsWithRef<\n typeof StyledClearAction\n>\n","import type { ElementRef } from 'react'\nimport React from 'react'\nimport { IconCross } from '@mirohq/design-system-icons'\nimport { Tooltip } from '@mirohq/design-system-tooltip'\n\nimport type { StyledClearActionProps } from './clear-action.styled'\nimport { StyledClearAction } from './clear-action.styled'\n\ninterface ClearActionProps extends Omit<StyledClearActionProps, 'children'> {\n label: string\n}\n\nexport const ClearAction = React.forwardRef<\n ElementRef<typeof StyledClearAction>,\n ClearActionProps\n>(({ 'aria-label': ariaLabel, label, ...restProps }, forwardRef) => (\n <Tooltip>\n <Tooltip.Trigger asChild>\n <StyledClearAction\n {...restProps}\n ref={forwardRef}\n aria-label={ariaLabel ?? label}\n >\n <IconCross />\n </StyledClearAction>\n </Tooltip.Trigger>\n <Tooltip.Content>{label}</Tooltip.Content>\n </Tooltip>\n))\n","import React, {\n createContext,\n useCallback,\n useContext,\n useMemo,\n useState,\n} from 'react'\nimport type { DateRange, DateValue } from 'react-aria'\nimport type { DateDuration } from '@internationalized/date'\nimport { useControllableState } from '@radix-ui/react-use-controllable-state'\nimport type { Booleanish } from '@mirohq/design-system-types'\n\nimport type { PredefinedValue } from './types'\n\ninterface SharedProps<T extends DateRange | DateValue> {\n picker: 'single' | 'range'\n minDate?: DateValue\n maxDate?: DateValue\n disabled?: boolean\n ariaDisabled?: Booleanish\n predefinedValues?: Array<PredefinedValue<T>>\n}\n\ninterface CalendarContextProps<T extends DateRange | DateValue>\n extends SharedProps<T> {\n visibleDuration: DateDuration\n\n value?: T\n setValue: React.Dispatch<React.SetStateAction<T | undefined>>\n\n open: boolean\n setOpen: React.Dispatch<React.SetStateAction<boolean | undefined>>\n\n setImmediateSave: React.Dispatch<React.SetStateAction<boolean>>\n\n calendarValue?: T | null\n calendarDefaultValue?: T | null\n onCalendarDateClick: (date: T) => void\n onSaveClick: () => void\n}\n\nexport interface CalendarProviderProps<T extends DateRange | DateValue>\n extends SharedProps<T> {\n children?: React.ReactNode\n visibleMonths?: number\n\n defaultValue?: T\n value?: T\n onValueChange?: (value: T | undefined) => void\n\n defaultOpen?: boolean\n open?: boolean\n onOpen?: () => void\n onClose?: () => void\n}\n\nconst CalendarContext = createContext<CalendarContextProps<any>>({} as any)\n\nexport const CalendarProvider = <T extends DateRange | DateValue>({\n children,\n visibleMonths = 1,\n value: valueProp,\n defaultValue: defaultValueProp,\n onValueChange,\n open: openProp,\n defaultOpen: defaultOpenProp,\n onOpen,\n onClose,\n ...restProps\n}: CalendarProviderProps<T>): JSX.Element => {\n const [immediateSave, setImmediateSave] = useState(false)\n const [internalCalendarValue, setInternalCalendarValue] = useState<\n T | undefined\n >(valueProp ?? defaultValueProp)\n\n const visibleDuration = useMemo(\n () => ({\n months: visibleMonths,\n }),\n [visibleMonths]\n )\n\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValueProp,\n onChange: onValueChange,\n })\n\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpenProp,\n onChange: state => {\n if (state) {\n onOpen?.()\n } else {\n onClose?.()\n }\n },\n })\n\n const onCalendarDateClick = useCallback(\n (value: T): void => {\n if (immediateSave) {\n setInternalCalendarValue(value)\n } else {\n setValue(value)\n setOpen(false)\n }\n },\n [setValue, setOpen, immediateSave, setInternalCalendarValue]\n )\n\n const onSaveClick = (): void => {\n setValue(internalCalendarValue)\n setOpen(false)\n }\n\n return (\n <CalendarContext.Provider\n value={{\n ...restProps,\n visibleDuration,\n value: value,\n setValue,\n open,\n setOpen,\n onCalendarDateClick,\n setImmediateSave,\n onSaveClick,\n // value should not be undefined otherwise react-aria calendar will complain in console\n calendarValue: (immediateSave ? internalCalendarValue : value) ?? null,\n }}\n >\n {children}\n </CalendarContext.Provider>\n )\n}\n\nexport const useCalendarContext = <\n T extends DateRange | DateValue\n>(): CalendarContextProps<T> => useContext(CalendarContext)\n","import type { ElementRef } from 'react'\nimport React from 'react'\nimport { IconCalendarBlank } from '@mirohq/design-system-icons'\nimport { useFormFieldContext } from '@mirohq/design-system-base-form'\nimport { Trigger as RadixTrigger } from '@radix-ui/react-popover'\nimport { booleanify, stringAttrValue } from '@mirohq/design-system-utils'\n\nimport type { StyledTriggerProps } from './trigger.styled'\nimport {\n StyledIconContainer,\n StyledCustomTrigger,\n StyledPlaceholder,\n StyledTrigger,\n StyledValue,\n} from './trigger.styled'\nimport { ClearAction } from './clear-action'\nimport { useCalendarContext } from '../use-calendar-context'\n\ntype TriggerSharedProps = Omit<StyledTriggerProps, 'withClearButton'> & {\n /**\n * The content that will be rendered inside the Calendar trigger when there is no value\n */\n placeholder?: string\n\n /**\n * Show a button to clear the Calendar value\n * @default false\n */\n clearable?: boolean\n\n /**\n * The content\n */\n children: React.ReactNode\n}\n\nexport type TriggerProps = TriggerSharedProps &\n (\n | { clearable: false; clearLabel?: never; onClear?: never }\n | {\n /**\n * Event handler called when the calendar is cleared\n */\n onClear?: () => void\n\n /**\n * The label text for Trigger's action button when Combobox has values selected. Will be rendered in a Tooltip.\n */\n clearLabel: string\n }\n )\n\nexport const Trigger = React.forwardRef<ElementRef<'button'>, TriggerProps>(\n (\n {\n id,\n 'aria-describedby': ariaDescribedBy,\n placeholder,\n asChild = false,\n clearable = true,\n clearLabel,\n onClear,\n children,\n ...restProps\n },\n forwardRef\n ) => {\n const { value, setValue, disabled, ariaDisabled } = useCalendarContext()\n\n const { formElementId, ariaDescribedBy: formFieldContextDescribedBy } =\n useFormFieldContext()\n\n if (asChild) {\n return (\n <RadixTrigger ref={forwardRef} asChild>\n <StyledCustomTrigger asChild {...restProps}>\n {children}\n </StyledCustomTrigger>\n </RadixTrigger>\n )\n }\n\n const onClearHandler = (): void => {\n setValue(undefined)\n if (onClear !== undefined) {\n onClear()\n }\n }\n\n const clearButtonVisible =\n clearable && value != null && clearLabel !== undefined\n\n return (\n <>\n <RadixTrigger ref={forwardRef} asChild>\n <StyledTrigger\n id={id ?? formElementId}\n aria-describedby={stringAttrValue(\n ariaDescribedBy,\n formFieldContextDescribedBy\n )}\n withClearButton={clearButtonVisible}\n disabled={disabled}\n aria-disabled={ariaDisabled}\n {...restProps}\n >\n {value != null ? (\n <StyledValue>{children}</StyledValue>\n ) : (\n <StyledPlaceholder>{placeholder}</StyledPlaceholder>\n )}\n\n {!clearButtonVisible && (\n <StyledIconContainer>\n <IconCalendarBlank size='small' />\n </StyledIconContainer>\n )}\n </StyledTrigger>\n </RadixTrigger>\n {clearButtonVisible && (\n <ClearAction\n label={clearLabel}\n onPress={onClearHandler}\n disabled={disabled ?? booleanify(ariaDisabled)}\n />\n )}\n </>\n )\n }\n)\n","import type { ComponentPropsWithRef } from 'react'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { Flex } from '@mirohq/design-system-flex'\nimport { Content as RadixContent } from '@radix-ui/react-popover'\n\nexport const StyledContent = styled(RadixContent, {\n zIndex: '$calendar',\n background: '$background-neutrals',\n borderRadius: '$100',\n boxShadow: '$100',\n})\n\nexport const StyledCalendarBody = styled(Flex, {\n padding: '$200',\n gap: '$200',\n})\n\nexport const StyledGridContent = styled(Flex, {})\n\nexport const StyledBodyContentLeft = styled(Primitive.div, {})\n\nexport const StyledBodyContentRight = styled(Primitive.div, {\n paddingLeft: '$200',\n})\n\nexport const StyledClearContent = styled(Primitive.div, {\n display: 'flex',\n gap: '$100',\n padding: '$200',\n borderTop: '1px solid $border-neutrals',\n})\n\nexport type StyledContentProps = ComponentPropsWithRef<typeof StyledContent>\n","import { styled } from '@mirohq/design-system-stitches'\nimport { Flex } from '@mirohq/design-system-flex'\nimport { Heading } from '@mirohq/design-system-typography'\n\nexport const StyledHeaderTitle = styled(Heading, {\n margin: 0,\n flex: '2',\n textAlign: 'center',\n})\n\nexport const StyledHeaderPlaceholder = styled('div', {\n height: '$8',\n // to compensate icon buttons' width and space between 2 calendars\n width: 'calc($8 * 2 + $space$200)',\n})\n\nexport const StyledHeader = styled(Flex, {\n color: '$text-neutrals',\n height: '$8',\n alignItems: 'center',\n justifyContent: 'space-between',\n})\n","import type { ElementRef } from 'react'\nimport React from 'react'\nimport type { IconButtonProps } from '@mirohq/design-system-icon-button'\nimport { IconButton } from '@mirohq/design-system-icon-button'\n\nexport type HeaderButtonProps = IconButtonProps & {\n onFocus?: () => void\n onPress?: () => void\n isDisabled?: boolean // name comes from react-aria\n 'aria-label': string\n}\n\nexport const HeaderButton = React.forwardRef<\n ElementRef<'button'>,\n HeaderButtonProps\n>(({ isDisabled, children, ...restProps }, forwardRef) => (\n <IconButton\n {...restProps}\n size='medium'\n disabled={isDisabled}\n ref={forwardRef}\n >\n {children}\n </IconButton>\n)) as React.ForwardRefExoticComponent<HeaderButtonProps>\n","import React from 'react'\nimport { useDateFormatter } from 'react-aria'\nimport type { CalendarState, RangeCalendarState } from 'react-stately'\nimport { IconChevronLeft, IconChevronRight } from '@mirohq/design-system-icons'\n\nimport {\n StyledHeaderPlaceholder,\n StyledHeader,\n StyledHeaderTitle,\n} from './header.styled'\nimport type { HeaderButtonProps } from './header-button'\nimport { HeaderButton } from './header-button'\n\ninterface IHeader {\n state: RangeCalendarState | CalendarState\n prevButtonProps: HeaderButtonProps\n nextButtonProps: HeaderButtonProps\n visibleMonths?: number\n}\n\nexport const Header = ({\n state,\n prevButtonProps,\n nextButtonProps,\n visibleMonths,\n}: IHeader): React.ReactNode => {\n const monthDateFormatter = useDateFormatter({\n month: 'long',\n year: 'numeric',\n timeZone: state.timeZone,\n })\n\n return (\n <StyledHeader>\n <HeaderButton {...prevButtonProps}>\n <IconChevronLeft />\n </HeaderButton>\n <StyledHeaderTitle level={2} styledAs='h3'>\n {monthDateFormatter.format(\n state.visibleRange.start.toDate(state.timeZone)\n )}\n </StyledHeaderTitle>\n {visibleMonths === 2 && (\n <>\n <StyledHeaderPlaceholder />\n <StyledHeaderTitle level={2} styledAs='h3'>\n {monthDateFormatter.format(\n state.visibleRange.start.add({ months: 1 }).toDate(state.timeZone)\n )}\n </StyledHeaderTitle>\n </>\n )}\n <HeaderButton {...nextButtonProps}>\n <IconChevronRight />\n </HeaderButton>\n </StyledHeader>\n )\n}\n","import type { ComponentPropsWithRef } from 'react'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { focus } from '@mirohq/design-system-styles'\n\nexport const StyledCell = styled(Primitive.td, {\n square: '$10',\n marginTop: '$50',\n position: 'relative',\n})\n\nexport const StyledCellContent = styled(Primitive.div, {\n cursor: 'pointer',\n square: '$10',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: '$50',\n color: '$text-neutrals',\n\n ...focus.css({\n top: '0',\n left: '0',\n position: 'absolute',\n zIndex: '1',\n boxShadow: '$focus',\n outline: '1px solid transparent',\n }),\n\n '&[aria-disabled=\"true\"]': {\n textDecoration: 'line-through',\n color: '$text-neutrals-disabled',\n cursor: 'default',\n },\n\n '&:not([aria-disabled=\"true\"])': {\n _hover: {\n backgroundColor: '$background-neutrals-subtle-hover',\n color: '$text-neutrals',\n },\n },\n\n variants: {\n today: {\n true: {\n backgroundColor: '$background-neutrals-subtle-hover',\n color: '$text-neutrals',\n },\n },\n selected: {\n true: {\n backgroundColor: '$background-primary-prominent-selected',\n color: '$text-neutrals-inverted',\n\n '&:not([aria-disabled=\"true\"])': {\n _hover: {\n backgroundColor: '$background-primary-prominent-hover',\n color: '$text-neutrals-inverted',\n },\n },\n },\n },\n range: {\n middle: {\n backgroundColor: '$background-primary-subtle-selected',\n color: '$text-neutrals',\n borderRadius: 0,\n\n '&:not([aria-disabled=\"true\"])': {\n _hover: {\n backgroundColor: '$background-primary-subtle-hover',\n },\n },\n },\n start: {\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n },\n end: {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n },\n },\n hidden: {\n true: {\n display: 'none',\n },\n },\n },\n})\n\nexport type StyledCellProps = ComponentPropsWithRef<typeof StyledCell>\n","import React, { useRef } from 'react'\nimport { useCalendarCell, useFocusRing, mergeProps } from 'react-aria'\nimport type { CalendarDate } from '@internationalized/date'\nimport {\n isSameDay,\n isSameMonth,\n isToday,\n getLocalTimeZone,\n} from '@internationalized/date'\nimport type { CalendarState, RangeCalendarState } from 'react-stately'\n\nimport type { StyledCellProps } from './cell.styled'\nimport { StyledCell, StyledCellContent } from './cell.styled'\n\nexport interface CellProps extends StyledCellProps {\n state: RangeCalendarState | CalendarState\n date: CalendarDate\n currentMonth: CalendarDate\n}\n\nexport const Cell = (props: CellProps): React.ReactNode => {\n let { state, date, currentMonth } = props\n const ref = useRef(null)\n const { cellProps, buttonProps, isSelected, formattedDate } = useCalendarCell(\n { date },\n state,\n ref\n )\n\n const isOutsideMonth = !isSameMonth(currentMonth, date)\n\n state = state as RangeCalendarState\n\n // The start and end date of the selected range will have\n // an emphasized appearance.\n const isSelectionStart =\n state.highlightedRange !== undefined && state.highlightedRange !== null\n ? isSameDay(date, state.highlightedRange.start)\n : isSelected\n const isSelectionEnd =\n state.highlightedRange !== undefined && state.highlightedRange !== null\n ? isSameDay(date, state.highlightedRange.end)\n : isSelected\n\n const { focusProps } = useFocusRing()\n\n // when it's both start and end, it's single date\n const isRange = isSelected && (!isSelectionStart || !isSelectionEnd)\n\n const rangeVariant = isRange\n ? isSelectionStart\n ? 'start'\n : isSelectionEnd\n ? 'end'\n : 'middle'\n : undefined\n\n return (\n <StyledCell {...cellProps}>\n <StyledCellContent\n {...mergeProps(buttonProps, focusProps)}\n ref={ref}\n selected={isSelected && (isSelectionStart || isSelectionEnd)}\n today={isToday(date, getLocalTimeZone())}\n range={rangeVariant}\n hidden={isOutsideMonth}\n >\n {formattedDate}\n </StyledCellContent>\n </StyledCell>\n )\n}\n","import type { ComponentPropsWithRef } from 'react'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\n\nexport const StyledGrid = styled(Primitive.table, {\n borderCollapse: 'separate',\n borderSpacing: ' 0 $50',\n})\n\nexport const StyledDays = styled(Primitive.th, {\n height: '$10',\n color: '$text-neutrals-subtle',\n fontWeight: '$regular',\n paddingTop: '$50',\n})\n\nexport type StyledGridProps = ComponentPropsWithRef<typeof StyledGrid>\n","import type { ElementRef } from 'react'\nimport React from 'react'\nimport type { CalendarDate, DateDuration } from '@internationalized/date'\nimport { getWeeksInMonth } from '@internationalized/date'\nimport type { AriaCalendarGridProps, DateRange } from 'react-aria'\nimport { useLocale, useCalendarGrid } from 'react-aria'\nimport type { CalendarState, RangeCalendarState } from 'react-stately'\n\nimport { Cell } from './cell'\nimport type { StyledGridProps } from './grid.styled'\nimport { StyledDays, StyledGrid } from './grid.styled'\n\nexport interface GridProps extends Omit<StyledGridProps, 'onChange'> {\n state: RangeCalendarState | CalendarState\n offset?: DateDuration\n onChange?: (value: DateRange) => void\n}\n\nexport const Grid = React.forwardRef<ElementRef<typeof StyledGrid>, GridProps>(\n (props, forwardRef) => {\n const { locale } = useLocale()\n const { state, offset = {} } = props\n const startDate: CalendarDate = state.visibleRange.start.add(offset)\n const { gridProps, headerProps, weekDays } = useCalendarGrid(\n props as AriaCalendarGridProps,\n state\n )\n\n // Get the number of weeks in the month so we can render the proper number of rows.\n const weeksInMonth = getWeeksInMonth(startDate, locale)\n\n return (\n <StyledGrid ref={forwardRef} {...gridProps} cellPadding='0'>\n <thead {...headerProps}>\n <tr>\n {weekDays.map((day, i) => (\n <StyledDays key={i}>\n <div>{day}</div>\n </StyledDays>\n ))}\n </tr>\n </thead>\n <tbody>\n {Array.from(Array(weeksInMonth).keys()).map(weekIndex => (\n <tr key={weekIndex}>\n {state\n .getDatesInWeek(weekIndex, startDate)\n .map((date: CalendarDate | null, i: number) =>\n date !== null ? (\n <Cell\n key={i}\n state={state}\n date={date}\n currentMonth={startDate}\n />\n ) : (\n <td key={i} />\n )\n )}\n </tr>\n ))}\n </tbody>\n </StyledGrid>\n )\n }\n)\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\n\nexport const StyledPredefinedRanges = styled(Primitive.div, {\n display: 'flex',\n flexDirection: 'column',\n borderRight: '1px solid $border-neutrals',\n padding: '$300 $200 0 0',\n\n '& button': {\n backgroundColor: '$transparent',\n border: 'none',\n fontSize: '$200',\n padding: '0 0 0 $100',\n textAlign: 'left',\n lineHeight: '24px',\n color: '$text-neutrals',\n marginBottom: '$150',\n borderRadius: '$50',\n minWidth: '125px',\n cursor: 'pointer',\n\n '&:hover': {\n backgroundColor: '$background-primary-prominent-hover',\n color: '$text-primary-inverted',\n fontWeight: '600',\n },\n },\n})\n","import React from 'react'\nimport { Button } from '@mirohq/design-system-button'\nimport type { DateRange, DateValue } from 'react-aria'\n\nimport { StyledPredefinedRanges } from './predefined-ranges.styled'\nimport { useCalendarContext } from '../use-calendar-context'\n\nexport const PredefinedRanges = (): React.ReactElement | null => {\n const { predefinedValues, onCalendarDateClick } = useCalendarContext<\n DateRange | DateValue\n >()\n\n if (predefinedValues === undefined) {\n return null\n }\n\n return (\n <StyledPredefinedRanges>\n {predefinedValues.map(item => (\n <Button\n variant='ghost'\n size='medium'\n key={item.id}\n type='button'\n onClick={() => onCalendarDateClick(item.value)}\n >\n {item.label}\n </Button>\n ))}\n </StyledPredefinedRanges>\n )\n}\n","import type { ElementRef, ReactElement, ReactNode } from 'react'\nimport React, { useRef } from 'react'\nimport { useCalendarState, useRangeCalendarState } from 'react-stately'\nimport { useCalendar, useRangeCalendar, useLocale } from 'react-aria'\nimport { createCalendar } from '@internationalized/date'\nimport { Flex } from '@mirohq/design-system-flex'\nimport type { DateRange, DateValue, AriaButtonProps } from 'react-aria'\nimport type { DOMAttributes } from '@react-types/shared'\nimport type { CalendarState, RangeCalendarState } from 'react-stately'\nimport { theme } from '@mirohq/design-system-stitches'\n\nimport { useCalendarContext } from '../use-calendar-context'\nimport type { StyledContentProps } from './content.styled'\nimport {\n StyledContent,\n StyledClearContent,\n StyledCalendarBody,\n StyledBodyContentLeft,\n StyledBodyContentRight,\n StyledGridContent,\n} from './content.styled'\nimport { Header } from './header'\nimport { Grid } from './grid'\nimport type { Align, PointerDownOutsideEvent, Side, Sticky } from '../types'\nimport type { HeaderButtonProps } from './header-button'\nimport { PredefinedRanges } from './predefined-ranges'\n\nexport const CONTENT_OFFSET = parseInt(theme.space[50])\n\nexport type ContentProps = StyledContentProps & {\n /**\n * Calendar's content.\n */\n children?: ReactNode\n\n /**\n * Event handler called when focus moves to the trigger after closing. It can\n * be prevented by calling event.preventDefault.\n */\n onCloseAutoFocus?: (event: Event) => void\n\n /**\n * Event handler called when focus moves to the trigger after closing. It can\n * be prevented by 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 * The preferred side of the anchor to render against when open. Will be\n * reversed when collisions occur and avoidCollisions is enabled.\n * @default 'bottom'\n */\n side?: Side\n\n /**\n * The distance in pixels from the anchor.\n * @default CONTENT_OFFSET\n */\n sideOffset?: number\n\n /**\n * The preferred alignment against the anchor. May change when collisions\n * occur.\n * @default 'start'\n */\n align?: Align\n\n /**\n * An offset in pixels from the \"start\" or \"end\" alignment options.\n * @default 0\n */\n alignOffset?: number\n\n /**\n * When true, overrides the side and align preferences to prevent collisions\n * with boundary edges.\n * @default true\n */\n avoidCollisions?: boolean\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 distance in pixels from the boundary edges where collision detection\n * should occur. Accepts a number (same for all sides), or a partial padding\n * object, for example: { top: 20, left: 20 }.\n * @default 0\n */\n collisionPadding?: number | Partial<Record<Side, number>>\n\n /**\n * The sticky behavior on the align axis. \"partial\" will keep the content in the\n * boundary as long as the trigger is at least partially in the boundary whilst\n * \"always\" will keep the content in the boundary regardless.\n * @default 'partial'\n */\n sticky?: Sticky\n\n /**\n * Whether to hide the content when the trigger becomes fully occluded.\n * @default true\n */\n hideWhenDetached?: boolean\n}\n\ninterface SharedContentProps {\n calendarProps: DOMAttributes\n prevButtonProps: AriaButtonProps\n nextButtonProps: AriaButtonProps\n state: RangeCalendarState | CalendarState\n}\n\nconst SharedContent = React.forwardRef<HTMLDivElement, SharedContentProps>(\n ({ calendarProps, prevButtonProps, nextButtonProps, state }, forwardRef) => {\n const { visibleDuration } = useCalendarContext<DateValue>()\n\n return (\n <StyledCalendarBody {...calendarProps} ref={forwardRef}>\n <PredefinedRanges />\n <Flex direction='column'>\n <Header\n state={state}\n prevButtonProps={prevButtonProps as HeaderButtonProps}\n nextButtonProps={nextButtonProps as HeaderButtonProps}\n visibleMonths={visibleDuration.months}\n />\n <StyledGridContent>\n <StyledBodyContentLeft>\n <Grid state={state} />\n </StyledBodyContentLeft>\n {visibleDuration.months === 2 && (\n <StyledBodyContentRight>\n <Grid state={state} offset={{ months: 1 }} />\n </StyledBodyContentRight>\n )}\n </StyledGridContent>\n </Flex>\n </StyledCalendarBody>\n )\n }\n)\n\nconst DatePickerContent = (): ReactElement => {\n const { locale } = useLocale()\n\n const {\n calendarValue,\n visibleDuration,\n minDate,\n maxDate,\n onCalendarDateClick,\n } = useCalendarContext<DateValue>()\n\n const state = useCalendarState({\n value: calendarValue,\n visibleDuration,\n minValue: minDate,\n maxValue: maxDate,\n autoFocus: true,\n onChange: onCalendarDateClick,\n locale,\n createCalendar,\n })\n\n const { calendarProps, prevButtonProps, nextButtonProps } = useCalendar(\n {},\n state\n )\n\n return (\n <SharedContent\n calendarProps={calendarProps}\n prevButtonProps={prevButtonProps}\n nextButtonProps={nextButtonProps}\n state={state}\n />\n )\n}\n\nconst RangePickerContent = (): ReactElement => {\n const { locale } = useLocale()\n\n const {\n calendarValue,\n visibleDuration,\n minDate,\n maxDate,\n onCalendarDateClick,\n } = useCalendarContext<DateRange>()\n\n const ref = useRef<HTMLDivElement>(null)\n\n const state = useRangeCalendarState({\n value: calendarValue,\n visibleDuration,\n minValue: minDate,\n maxValue: maxDate,\n autoFocus: true,\n onChange: onCalendarDateClick,\n locale,\n createCalendar,\n })\n\n const { calendarProps, prevButtonProps, nextButtonProps } = useRangeCalendar(\n {},\n state,\n ref\n )\n\n return (\n <SharedContent\n ref={ref}\n calendarProps={calendarProps}\n prevButtonProps={prevButtonProps}\n nextButtonProps={nextButtonProps}\n state={state}\n />\n )\n}\n\nexport const Content = React.forwardRef<\n ElementRef<typeof StyledContent>,\n ContentProps\n>(\n (\n {\n side = 'bottom',\n sideOffset = CONTENT_OFFSET,\n align = 'start',\n alignOffset = 0,\n collisionPadding = 0,\n avoidCollisions = true,\n sticky = 'partial',\n hideWhenDetached = true,\n children,\n ...restProps\n },\n forwardRef\n ) => {\n const { picker, open } = useCalendarContext()\n\n if (!open) {\n return null\n }\n\n return (\n <StyledContent\n {...restProps}\n ref={forwardRef}\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n collisionPadding={collisionPadding}\n avoidCollisions={avoidCollisions}\n sticky={sticky}\n hideWhenDetached={hideWhenDetached}\n >\n <Flex direction='column'>\n {picker === 'single' ? <DatePickerContent /> : <RangePickerContent />}\n {children != null && (\n <StyledClearContent>{children}</StyledClearContent>\n )}\n </Flex>\n </StyledContent>\n )\n }\n)\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { ComponentPropsWithRef } from 'react'\n\nexport const StyledValue = styled(Primitive.span, {})\n\nexport type StyledValueProps = ComponentPropsWithRef<typeof StyledValue>\n","import type { ElementRef } from 'react'\nimport React, { useMemo } from 'react'\nimport type { DateRange, DateValue } from '@react-types/datepicker'\nimport type { DateFormatter } from 'react-aria'\nimport { useDateFormatter } from 'react-aria'\nimport { getLocalTimeZone } from '@internationalized/date'\n\nimport type { StyledValueProps } from './value.styled'\nimport { StyledValue } from './value.styled'\nimport { useCalendarContext } from '../use-calendar-context'\n\ntype FormatOptions = Pick<\n Intl.DateTimeFormatOptions,\n 'weekday' | 'era' | 'year' | 'month' | 'day' | 'formatMatcher'\n>\n\nexport type ValueProps = StyledValueProps & {\n format?: FormatOptions\n}\n\nconst DEFAULT_FORMAT: FormatOptions = {\n day: '2-digit',\n month: 'short',\n year: 'numeric',\n}\n\nfunction formatDate(\n date: DateValue,\n formatter: DateFormatter,\n timeZone: string\n): string | undefined {\n return formatter.format(date.toDate(timeZone))\n}\n\nfunction formatValue(\n value: DateValue | DateRange | undefined | null,\n formatter: DateFormatter,\n timeZone: string\n): string | undefined {\n if (value == null || value === undefined) {\n return undefined\n }\n\n if ('start' in value) {\n if (value.start == null || value.end == null) {\n return undefined\n }\n\n return `${formatDate(value.start, formatter, timeZone)} - ${formatDate(\n value.end,\n formatter,\n timeZone\n )}`\n }\n\n return formatDate(value, formatter, timeZone)\n}\n\nexport const Value = React.forwardRef<\n ElementRef<typeof StyledValue>,\n ValueProps\n>(({ format = DEFAULT_FORMAT, ...restProps }, forwardRef) => {\n const { value } = useCalendarContext()\n\n const timeZone = useMemo(getLocalTimeZone, [format])\n\n const formatWithTimeZone = useMemo(\n () => ({ ...format, timeZone }),\n [format, timeZone]\n )\n const dateFormatter = useDateFormatter(formatWithTimeZone)\n\n const valueToDisplay = formatValue(value, dateFormatter, timeZone)\n\n return (\n <StyledValue ref={forwardRef} {...restProps}>\n {valueToDisplay}\n </StyledValue>\n )\n})\n","import type { ElementRef } from 'react'\nimport React from 'react'\nimport { Button } from '@mirohq/design-system-button'\nimport type { BaseButtonProps } from '@mirohq/design-system-base-button'\n\nimport { useCalendarContext } from '../use-calendar-context'\n\nexport type ClearButtonProps = BaseButtonProps & {\n /**\n * Event handler called when the calendar value is cleared\n */\n onClear?: () => void\n}\n\nexport const ClearButton = React.forwardRef<\n ElementRef<typeof Button>,\n ClearButtonProps\n>(({ onClear, children, ...restProps }, forwardRef) => {\n const { value, setValue } = useCalendarContext()\n\n const onClearHandler = (): void => {\n setValue(undefined)\n if (onClear !== undefined) {\n onClear()\n }\n }\n\n return (\n <Button\n {...restProps}\n ref={forwardRef}\n variant='ghost'\n size='medium'\n onClick={onClearHandler}\n disabled={value === null}\n >\n {children}\n </Button>\n )\n}) as React.ForwardRefExoticComponent<ClearButtonProps>\n","import type { ElementRef } from 'react'\nimport React, { useEffect } from 'react'\nimport { Button } from '@mirohq/design-system-button'\nimport type { BaseButtonProps } from '@mirohq/design-system-base-button'\n\nimport { useCalendarContext } from '../use-calendar-context'\n\nexport type SaveButtonProps = BaseButtonProps & {\n /**\n * Event handler called when the calendar value is saved\n */\n onSave?: () => void\n}\n\nexport const SaveButton = React.forwardRef<\n ElementRef<typeof Button>,\n SaveButtonProps\n>(({ onSave, children, ...restProps }, forwardRef) => {\n const { setImmediateSave, onSaveClick } = useCalendarContext()\n\n useEffect(() => {\n setImmediateSave(true)\n\n return () => setImmediateSave(false)\n }, [setImmediateSave])\n\n const onSaveHandler = (): void => {\n onSaveClick()\n if (onSave !== undefined) {\n onSave()\n }\n }\n\n return (\n <Button\n ref={forwardRef}\n {...restProps}\n variant='primary'\n size='medium'\n onClick={onSaveHandler}\n >\n {children}\n </Button>\n )\n}) as React.ForwardRefExoticComponent<SaveButtonProps>\n","import { styled } from '@mirohq/design-system-stitches'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport type { ComponentPropsWithRef } from 'react'\n\nexport const StyledCalendar = styled(Primitive.div, {\n position: 'relative',\n})\nexport type StyledCalendarProps = ComponentPropsWithRef<typeof StyledCalendar>\n","import type { ElementRef, ForwardRefExoticComponent } from 'react'\nimport React from 'react'\nimport { I18nProvider } from 'react-aria'\nimport * as RadixPopover from '@radix-ui/react-popover'\nimport type { DateRange, DateValue } from 'react-aria'\n\nimport type { CalendarDatePickerProps, CalendarRangePickerProps } from './types'\nimport { Trigger } from './partials/trigger'\nimport { Content } from './partials/content'\nimport type { CalendarProviderProps } from './use-calendar-context'\nimport { CalendarProvider, useCalendarContext } from './use-calendar-context'\nimport { Value } from './partials/value'\nimport { ClearButton } from './partials/clear-button'\nimport { SaveButton } from './partials/save-button'\nimport { StyledCalendar } from './calendar.styled'\n\n// If an unrecognised locale string is passed in, the component will error, this protects from that by defaulting to English\n// https://github.com/adobe/react-spectrum/issues/7457\nfunction getValidLocale(locale: string | undefined): string {\n if (locale === undefined) {\n return 'en'\n }\n\n try {\n Intl.DateTimeFormat.supportedLocalesOf(locale)\n return locale\n } catch {\n try {\n // the client locale is in the format of ja_JP, but Intl.DateTimeFormat expects ja-JP\n // https://github.com/formatjs/formatjs/discussions/2440\n const localeWithDashes = locale.replace(/_/g, '-')\n Intl.DateTimeFormat.supportedLocalesOf(localeWithDashes)\n return localeWithDashes\n } catch {\n return 'en'\n }\n }\n}\n\nexport type CalendarProps = (\n | CalendarDatePickerProps\n | CalendarRangePickerProps\n) & {\n /**\n * The locale for Calendar internationalization\n */\n locale?: string\n}\n\ninterface CalendarRootProps {\n children: React.ReactNode\n}\n\nconst Root = React.forwardRef<\n ElementRef<typeof StyledCalendar>,\n CalendarRootProps\n>(({ children, ...restProps }, forwardRef) => {\n const { open, setOpen } = useCalendarContext()\n\n return (\n <RadixPopover.Root open={open} onOpenChange={setOpen}>\n <StyledCalendar ref={forwardRef} {...restProps}>\n {children}\n </StyledCalendar>\n </RadixPopover.Root>\n )\n})\n\nexport const Calendar = React.forwardRef<\n ElementRef<typeof StyledCalendar>,\n CalendarProps\n>(\n (\n {\n picker,\n defaultValue,\n value,\n onValueChange,\n defaultOpen,\n open,\n onClose,\n onOpen,\n locale,\n visibleMonths,\n minDate,\n maxDate,\n disabled,\n 'aria-disabled': ariaDisabled,\n children,\n predefinedValues,\n ...props\n },\n forwardRef\n ) => {\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n const providerProps = {\n picker,\n defaultValue,\n value,\n onValueChange,\n visibleMonths,\n minDate,\n maxDate,\n defaultOpen,\n open,\n onClose,\n onOpen,\n disabled,\n ariaDisabled,\n predefinedValues,\n } as CalendarProviderProps<DateValue> | CalendarProviderProps<DateRange>\n\n const validatedLocale = getValidLocale(locale)\n\n return (\n <I18nProvider locale={validatedLocale}>\n <CalendarProvider {...(providerProps as any)}>\n <Root {...props} ref={forwardRef}>\n {children}\n </Root>\n </CalendarProvider>\n </I18nProvider>\n )\n }\n) as ForwardRefExoticComponent<CalendarProps> & Partials\n\nexport interface Partials {\n Trigger: typeof Trigger\n Content: typeof Content\n Value: typeof Value\n ClearButton: typeof ClearButton\n SaveButton: typeof SaveButton\n}\n\nCalendar.Trigger = Trigger\nCalendar.Content = Content\nCalendar.Value = Value\nCalendar.ClearButton = ClearButton\nCalendar.SaveButton = SaveButton\n"],"names":["StyledValue","value","RadixTrigger","RadixContent"],"mappings":"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"}
1
+ {"version":3,"file":"module.js","sources":["../src/partials/trigger.styled.tsx","../src/partials/clear-action.styled.tsx","../src/partials/clear-action.tsx","../src/use-calendar-context.tsx","../src/partials/trigger.tsx","../src/partials/content.styled.tsx","../src/partials/header.styled.tsx","../src/partials/header-button.tsx","../src/partials/header.tsx","../src/partials/cell.styled.tsx","../src/partials/cell.tsx","../src/partials/grid.styled.tsx","../src/partials/grid.tsx","../src/partials/predefined-ranges.styled.tsx","../src/partials/predefined-ranges.tsx","../src/partials/content.tsx","../src/partials/value.styled.tsx","../src/partials/value.tsx","../src/partials/clear-button.tsx","../src/partials/save-button.tsx","../src/calendar.styled.tsx","../src/calendar.tsx"],"sourcesContent":["import { Primitive } from '@mirohq/design-system-primitive'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { textFieldStyles } from '@mirohq/design-system-base-text-field'\nimport { focus } from '@mirohq/design-system-styles'\nimport { BaseButton } from '@mirohq/design-system-base-button'\n\nexport const StyledPlaceholder = styled(Primitive.span, {\n color: textFieldStyles.base.placeholder.color,\n padding: '0 $50',\n})\n\nexport const StyledValue = styled(Primitive.span, {\n padding: '0 $50',\n})\n\nexport const StyledIconContainer = styled(Primitive.span, {\n display: 'flex',\n justifyContent: 'center',\n padding: '6px',\n color: '$text-neutrals-subtle',\n})\n\nexport const StyledTrigger = styled(BaseButton, {\n display: 'inline-flex',\n gap: '$50',\n justifyContent: 'space-between',\n alignItems: 'center',\n height: '$10',\n padding: '0 $100',\n minWidth: '230px',\n\n ...textFieldStyles.variants.idle,\n\n _hover: textFieldStyles.variants.hovered,\n ...focus.css({\n boxShadow: '$focus',\n }),\n\n '&:disabled, &[aria-disabled=\"true\"]': {\n ...textFieldStyles.variants.disabled,\n color: '$text-neutrals-disabled',\n },\n\n variants: {\n withClearButton: {\n true: {\n paddingRight: 'calc($100 + $400)', // initial left padding + clear button width + gap\n },\n },\n },\n})\n\nexport const StyledCustomTrigger = styled(BaseButton, {\n width: '100%',\n height: 'unset',\n padding: '0',\n backgroundColor: '$transparent',\n border: 'none',\n cursor: 'pointer',\n})\n\nexport type StyledTriggerProps = StrictComponentProps<typeof StyledTrigger>\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { ComponentPropsWithRef } from 'react'\nimport { actionButtonStyles } from '@mirohq/design-system-base-text-field'\nimport { BaseButton } from '@mirohq/design-system-base-button'\n\nexport const StyledClearAction = styled(BaseButton, {\n position: 'absolute',\n top: 0,\n bottom: 0,\n right: 'calc($100 + 1px)', // to compensate border width\n margin: 'auto',\n\n ...actionButtonStyles,\n\n '&:disabled, &[aria-disabled=\"true\"]': {\n color: '$icon-neutrals-disabled',\n },\n})\n\nexport type StyledClearActionProps = ComponentPropsWithRef<\n typeof StyledClearAction\n>\n","import type { ElementRef } from 'react'\nimport React from 'react'\nimport { IconCross } from '@mirohq/design-system-icons'\nimport { Tooltip } from '@mirohq/design-system-tooltip'\n\nimport type { StyledClearActionProps } from './clear-action.styled'\nimport { StyledClearAction } from './clear-action.styled'\n\ninterface ClearActionProps extends Omit<StyledClearActionProps, 'children'> {\n label: string\n}\n\nexport const ClearAction = React.forwardRef<\n ElementRef<typeof StyledClearAction>,\n ClearActionProps\n>(({ 'aria-label': ariaLabel, label, ...restProps }, forwardRef) => (\n <Tooltip>\n <Tooltip.Trigger asChild>\n <StyledClearAction\n {...restProps}\n ref={forwardRef}\n aria-label={ariaLabel ?? label}\n >\n <IconCross />\n </StyledClearAction>\n </Tooltip.Trigger>\n <Tooltip.Content>{label}</Tooltip.Content>\n </Tooltip>\n))\n","import React, {\n createContext,\n useCallback,\n useContext,\n useMemo,\n useState,\n} from 'react'\nimport type { DateRange, DateValue } from 'react-aria'\nimport type { DateDuration } from '@internationalized/date'\nimport { useControllableState } from '@radix-ui/react-use-controllable-state'\nimport type { Booleanish } from '@mirohq/design-system-types'\n\nimport type { PredefinedValue } from './types'\n\ninterface SharedProps<T extends DateRange | DateValue> {\n picker: 'single' | 'range'\n minDate?: DateValue\n maxDate?: DateValue\n disabled?: boolean\n ariaDisabled?: Booleanish\n predefinedValues?: Array<PredefinedValue<T>>\n}\n\ninterface CalendarContextProps<T extends DateRange | DateValue>\n extends SharedProps<T> {\n visibleDuration: DateDuration\n\n value?: T\n setValue: React.Dispatch<React.SetStateAction<T | undefined>>\n\n open: boolean\n setOpen: React.Dispatch<React.SetStateAction<boolean | undefined>>\n\n setImmediateSave: React.Dispatch<React.SetStateAction<boolean>>\n\n calendarValue?: T | null\n calendarDefaultValue?: T | null\n onCalendarDateClick: (date: T) => void\n onSaveClick: () => void\n}\n\nexport interface CalendarProviderProps<T extends DateRange | DateValue>\n extends SharedProps<T> {\n children?: React.ReactNode\n visibleMonths?: number\n\n defaultValue?: T\n value?: T\n onValueChange?: (value: T | undefined) => void\n\n defaultOpen?: boolean\n open?: boolean\n onOpen?: () => void\n onClose?: () => void\n}\n\nconst CalendarContext = createContext<CalendarContextProps<any>>({} as any)\n\nexport const CalendarProvider = <T extends DateRange | DateValue>({\n children,\n visibleMonths = 1,\n value: valueProp,\n defaultValue: defaultValueProp,\n onValueChange,\n open: openProp,\n defaultOpen: defaultOpenProp,\n onOpen,\n onClose,\n ...restProps\n}: CalendarProviderProps<T>): JSX.Element => {\n const [immediateSave, setImmediateSave] = useState(false)\n const [internalCalendarValue, setInternalCalendarValue] = useState<\n T | undefined\n >(valueProp ?? defaultValueProp)\n\n const visibleDuration = useMemo(\n () => ({\n months: visibleMonths,\n }),\n [visibleMonths]\n )\n\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValueProp,\n onChange: onValueChange,\n })\n\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpenProp,\n onChange: state => {\n if (state) {\n onOpen?.()\n } else {\n onClose?.()\n }\n },\n })\n\n const onCalendarDateClick = useCallback(\n (value: T): void => {\n if (immediateSave) {\n setInternalCalendarValue(value)\n } else {\n setValue(value)\n setOpen(false)\n }\n },\n [setValue, setOpen, immediateSave, setInternalCalendarValue]\n )\n\n const onSaveClick = (): void => {\n setValue(internalCalendarValue)\n setOpen(false)\n }\n\n return (\n <CalendarContext.Provider\n value={{\n ...restProps,\n visibleDuration,\n value: value,\n setValue,\n open,\n setOpen,\n onCalendarDateClick,\n setImmediateSave,\n onSaveClick,\n // value should not be undefined otherwise react-aria calendar will complain in console\n calendarValue: (immediateSave ? internalCalendarValue : value) ?? null,\n }}\n >\n {children}\n </CalendarContext.Provider>\n )\n}\n\nexport const useCalendarContext = <\n T extends DateRange | DateValue\n>(): CalendarContextProps<T> => useContext(CalendarContext)\n","import type { ElementRef } from 'react'\nimport React from 'react'\nimport { IconCalendarBlank } from '@mirohq/design-system-icons'\nimport { useFormFieldContext } from '@mirohq/design-system-base-form'\nimport { Trigger as RadixTrigger } from '@radix-ui/react-popover'\nimport { booleanify, stringAttrValue } from '@mirohq/design-system-utils'\n\nimport type { StyledTriggerProps } from './trigger.styled'\nimport {\n StyledIconContainer,\n StyledCustomTrigger,\n StyledPlaceholder,\n StyledTrigger,\n StyledValue,\n} from './trigger.styled'\nimport { ClearAction } from './clear-action'\nimport { useCalendarContext } from '../use-calendar-context'\n\ntype TriggerSharedProps = Omit<StyledTriggerProps, 'withClearButton'> & {\n /**\n * The content that will be rendered inside the Calendar trigger when there is no value\n */\n placeholder?: string\n\n /**\n * Show a button to clear the Calendar value\n * @default false\n */\n clearable?: boolean\n\n /**\n * The content\n */\n children: React.ReactNode\n}\n\nexport type TriggerProps = TriggerSharedProps &\n (\n | { clearable: false; clearLabel?: never; onClear?: never }\n | {\n /**\n * Event handler called when the calendar is cleared\n */\n onClear?: () => void\n\n /**\n * The label text for Trigger's action button when Combobox has values selected. Will be rendered in a Tooltip.\n */\n clearLabel: string\n }\n )\n\nexport const Trigger = React.forwardRef<ElementRef<'button'>, TriggerProps>(\n (\n {\n id,\n 'aria-describedby': ariaDescribedBy,\n placeholder,\n asChild = false,\n clearable = true,\n clearLabel,\n onClear,\n children,\n ...restProps\n },\n forwardRef\n ) => {\n const { value, setValue, disabled, ariaDisabled } = useCalendarContext()\n\n const { formElementId, ariaDescribedBy: formFieldContextDescribedBy } =\n useFormFieldContext()\n\n if (asChild) {\n return (\n <RadixTrigger ref={forwardRef} asChild>\n <StyledCustomTrigger asChild {...restProps}>\n {children}\n </StyledCustomTrigger>\n </RadixTrigger>\n )\n }\n\n const onClearHandler = (): void => {\n setValue(undefined)\n if (onClear !== undefined) {\n onClear()\n }\n }\n\n const clearButtonVisible =\n clearable && value != null && clearLabel !== undefined\n\n return (\n <>\n <RadixTrigger ref={forwardRef} asChild>\n <StyledTrigger\n id={id ?? formElementId}\n aria-describedby={stringAttrValue(\n ariaDescribedBy,\n formFieldContextDescribedBy\n )}\n withClearButton={clearButtonVisible}\n disabled={disabled}\n aria-disabled={ariaDisabled}\n {...restProps}\n >\n {value != null ? (\n <StyledValue>{children}</StyledValue>\n ) : (\n <StyledPlaceholder>{placeholder}</StyledPlaceholder>\n )}\n\n {!clearButtonVisible && (\n <StyledIconContainer>\n <IconCalendarBlank size='small' />\n </StyledIconContainer>\n )}\n </StyledTrigger>\n </RadixTrigger>\n {clearButtonVisible && (\n <ClearAction\n label={clearLabel}\n onPress={onClearHandler}\n disabled={disabled ?? booleanify(ariaDisabled)}\n />\n )}\n </>\n )\n }\n)\n","import type { ComponentPropsWithRef } from 'react'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { Flex } from '@mirohq/design-system-flex'\nimport { Content as RadixContent } from '@radix-ui/react-popover'\n\nexport const StyledContent = styled(RadixContent, {\n zIndex: '$calendar',\n background: '$background-neutrals',\n borderRadius: '$100',\n boxShadow: '$100',\n})\n\nexport const StyledCalendarBody = styled(Flex, {\n padding: '$200',\n gap: '$200',\n})\n\nexport const StyledGridContent = styled(Flex, {})\n\nexport const StyledBodyContentLeft = styled(Primitive.div, {})\n\nexport const StyledBodyContentRight = styled(Primitive.div, {\n paddingLeft: '$200',\n})\n\nexport const StyledClearContent = styled(Primitive.div, {\n display: 'flex',\n gap: '$100',\n padding: '$200',\n borderTop: '1px solid $border-neutrals',\n})\n\nexport type StyledContentProps = ComponentPropsWithRef<typeof StyledContent>\n","import { styled } from '@mirohq/design-system-stitches'\nimport { Flex } from '@mirohq/design-system-flex'\nimport { Heading } from '@mirohq/design-system-typography'\n\nexport const StyledHeaderTitle = styled(Heading, {\n margin: 0,\n flex: '2',\n textAlign: 'center',\n})\n\nexport const StyledHeaderPlaceholder = styled('div', {\n height: '$8',\n // to compensate icon buttons' width and space between 2 calendars\n width: 'calc($8 * 2 + $space$200)',\n})\n\nexport const StyledHeader = styled(Flex, {\n color: '$text-neutrals',\n height: '$8',\n alignItems: 'center',\n justifyContent: 'space-between',\n})\n","import type { ElementRef } from 'react'\nimport React from 'react'\nimport type { IconButtonProps } from '@mirohq/design-system-icon-button'\nimport { IconButton } from '@mirohq/design-system-icon-button'\n\nexport type HeaderButtonProps = IconButtonProps & {\n onFocus?: () => void\n onPress?: () => void\n isDisabled?: boolean // name comes from react-aria\n 'aria-label': string\n}\n\nexport const HeaderButton = React.forwardRef<\n ElementRef<'button'>,\n HeaderButtonProps\n>(({ isDisabled, children, ...restProps }, forwardRef) => (\n <IconButton\n {...restProps}\n size='medium'\n disabled={isDisabled}\n ref={forwardRef}\n >\n {children}\n </IconButton>\n)) as React.ForwardRefExoticComponent<HeaderButtonProps>\n","import React from 'react'\nimport { useDateFormatter } from 'react-aria'\nimport type { CalendarState, RangeCalendarState } from 'react-stately'\nimport { IconChevronLeft, IconChevronRight } from '@mirohq/design-system-icons'\n\nimport {\n StyledHeaderPlaceholder,\n StyledHeader,\n StyledHeaderTitle,\n} from './header.styled'\nimport type { HeaderButtonProps } from './header-button'\nimport { HeaderButton } from './header-button'\n\ninterface IHeader {\n state: RangeCalendarState | CalendarState\n prevButtonProps: HeaderButtonProps\n nextButtonProps: HeaderButtonProps\n visibleMonths?: number\n}\n\nexport const Header = ({\n state,\n prevButtonProps,\n nextButtonProps,\n visibleMonths,\n}: IHeader): React.ReactNode => {\n const monthDateFormatter = useDateFormatter({\n month: 'long',\n year: 'numeric',\n timeZone: state.timeZone,\n })\n\n return (\n <StyledHeader>\n <HeaderButton {...prevButtonProps}>\n <IconChevronLeft />\n </HeaderButton>\n <StyledHeaderTitle level={2} styledAs='h3'>\n {monthDateFormatter.format(\n state.visibleRange.start.toDate(state.timeZone)\n )}\n </StyledHeaderTitle>\n {visibleMonths === 2 && (\n <>\n <StyledHeaderPlaceholder />\n <StyledHeaderTitle level={2} styledAs='h3'>\n {monthDateFormatter.format(\n state.visibleRange.start.add({ months: 1 }).toDate(state.timeZone)\n )}\n </StyledHeaderTitle>\n </>\n )}\n <HeaderButton {...nextButtonProps}>\n <IconChevronRight />\n </HeaderButton>\n </StyledHeader>\n )\n}\n","import type { ComponentPropsWithRef } from 'react'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { focus } from '@mirohq/design-system-styles'\n\nexport const StyledCell = styled(Primitive.td, {\n square: '$10',\n marginTop: '$50',\n position: 'relative',\n})\n\nexport const StyledCellContent = styled(Primitive.div, {\n cursor: 'pointer',\n square: '$10',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: '$50',\n color: '$text-neutrals',\n\n ...focus.css({\n top: '0',\n left: '0',\n position: 'absolute',\n zIndex: '1',\n boxShadow: '$focus',\n outline: '1px solid transparent',\n }),\n\n '&[aria-disabled=\"true\"]': {\n textDecoration: 'line-through',\n color: '$text-neutrals-disabled',\n cursor: 'default',\n },\n\n '&:not([aria-disabled=\"true\"])': {\n _hover: {\n backgroundColor: '$background-neutrals-subtle-hover',\n color: '$text-neutrals',\n },\n },\n\n variants: {\n today: {\n true: {\n backgroundColor: '$background-neutrals-subtle-hover',\n color: '$text-neutrals',\n },\n },\n selected: {\n true: {\n backgroundColor: '$background-primary-prominent-selected',\n color: '$text-neutrals-inverted',\n\n '&:not([aria-disabled=\"true\"])': {\n _hover: {\n backgroundColor: '$background-primary-prominent-hover',\n color: '$text-neutrals-inverted',\n },\n },\n },\n },\n range: {\n middle: {\n backgroundColor: '$background-primary-subtle-selected',\n color: '$text-neutrals',\n borderRadius: 0,\n\n '&:not([aria-disabled=\"true\"])': {\n _hover: {\n backgroundColor: '$background-primary-subtle-hover',\n },\n },\n },\n start: {\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n },\n end: {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n },\n },\n hidden: {\n true: {\n display: 'none',\n },\n },\n },\n})\n\nexport type StyledCellProps = ComponentPropsWithRef<typeof StyledCell>\n","import React, { useRef } from 'react'\nimport { useCalendarCell, useFocusRing, mergeProps } from 'react-aria'\nimport type { CalendarDate } from '@internationalized/date'\nimport {\n isSameDay,\n isSameMonth,\n isToday,\n getLocalTimeZone,\n} from '@internationalized/date'\nimport type { CalendarState, RangeCalendarState } from 'react-stately'\n\nimport type { StyledCellProps } from './cell.styled'\nimport { StyledCell, StyledCellContent } from './cell.styled'\n\nexport interface CellProps extends StyledCellProps {\n state: RangeCalendarState | CalendarState\n date: CalendarDate\n currentMonth: CalendarDate\n}\n\nexport const Cell = (props: CellProps): React.ReactNode => {\n let { state, date, currentMonth } = props\n const ref = useRef(null)\n const { cellProps, buttonProps, isSelected, formattedDate } = useCalendarCell(\n { date },\n state,\n ref\n )\n\n const isOutsideMonth = !isSameMonth(currentMonth, date)\n\n state = state as RangeCalendarState\n\n // The start and end date of the selected range will have\n // an emphasized appearance.\n const isSelectionStart =\n state.highlightedRange !== undefined && state.highlightedRange !== null\n ? isSameDay(date, state.highlightedRange.start)\n : isSelected\n const isSelectionEnd =\n state.highlightedRange !== undefined && state.highlightedRange !== null\n ? isSameDay(date, state.highlightedRange.end)\n : isSelected\n\n const { focusProps } = useFocusRing()\n\n // when it's both start and end, it's single date\n const isRange = isSelected && (!isSelectionStart || !isSelectionEnd)\n\n const rangeVariant = isRange\n ? isSelectionStart\n ? 'start'\n : isSelectionEnd\n ? 'end'\n : 'middle'\n : undefined\n\n return (\n <StyledCell {...cellProps}>\n <StyledCellContent\n {...mergeProps(buttonProps, focusProps)}\n ref={ref}\n selected={isSelected && (isSelectionStart || isSelectionEnd)}\n today={isToday(date, getLocalTimeZone())}\n range={rangeVariant}\n hidden={isOutsideMonth}\n >\n {formattedDate}\n </StyledCellContent>\n </StyledCell>\n )\n}\n","import type { ComponentPropsWithRef } from 'react'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\n\nexport const StyledGrid = styled(Primitive.table, {\n borderCollapse: 'separate',\n borderSpacing: ' 0 $50',\n})\n\nexport const StyledDays = styled(Primitive.th, {\n height: '$10',\n color: '$text-neutrals-subtle',\n fontWeight: '$regular',\n paddingTop: '$50',\n})\n\nexport type StyledGridProps = ComponentPropsWithRef<typeof StyledGrid>\n","import type { ElementRef } from 'react'\nimport React from 'react'\nimport type { CalendarDate, DateDuration } from '@internationalized/date'\nimport { getWeeksInMonth } from '@internationalized/date'\nimport type { AriaCalendarGridProps, DateRange } from 'react-aria'\nimport { useLocale, useCalendarGrid } from 'react-aria'\nimport type { CalendarState, RangeCalendarState } from 'react-stately'\n\nimport { Cell } from './cell'\nimport type { StyledGridProps } from './grid.styled'\nimport { StyledDays, StyledGrid } from './grid.styled'\n\nexport interface GridProps extends Omit<StyledGridProps, 'onChange'> {\n state: RangeCalendarState | CalendarState\n offset?: DateDuration\n onChange?: (value: DateRange) => void\n}\n\nexport const Grid = React.forwardRef<ElementRef<typeof StyledGrid>, GridProps>(\n (props, forwardRef) => {\n const { locale } = useLocale()\n const { state, offset = {} } = props\n const startDate: CalendarDate = state.visibleRange.start.add(offset)\n const { gridProps, headerProps, weekDays } = useCalendarGrid(\n props as AriaCalendarGridProps,\n state\n )\n\n // Get the number of weeks in the month so we can render the proper number of rows.\n const weeksInMonth = getWeeksInMonth(startDate, locale)\n\n return (\n <StyledGrid ref={forwardRef} {...gridProps} cellPadding='0'>\n <thead {...headerProps}>\n <tr>\n {weekDays.map((day, i) => (\n <StyledDays key={i}>\n <div>{day}</div>\n </StyledDays>\n ))}\n </tr>\n </thead>\n <tbody>\n {Array.from(Array(weeksInMonth).keys()).map(weekIndex => (\n <tr key={weekIndex}>\n {state\n .getDatesInWeek(weekIndex, startDate)\n .map((date: CalendarDate | null, i: number) =>\n date !== null ? (\n <Cell\n key={i}\n state={state}\n date={date}\n currentMonth={startDate}\n />\n ) : (\n <td key={i} />\n )\n )}\n </tr>\n ))}\n </tbody>\n </StyledGrid>\n )\n }\n)\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\n\nexport const StyledPredefinedRanges = styled(Primitive.div, {\n display: 'flex',\n flexDirection: 'column',\n borderRight: '1px solid $border-neutrals',\n padding: '$300 $200 0 0',\n\n '& button': {\n backgroundColor: '$transparent',\n border: 'none',\n fontSize: '$200',\n padding: '0 0 0 $100',\n textAlign: 'left',\n lineHeight: '24px',\n color: '$text-neutrals',\n marginBottom: '$150',\n borderRadius: '$50',\n minWidth: '125px',\n cursor: 'pointer',\n\n '&:hover': {\n backgroundColor: '$background-primary-prominent-hover',\n color: '$text-primary-inverted',\n fontWeight: '600',\n },\n },\n})\n","import React from 'react'\nimport { Button } from '@mirohq/design-system-button'\nimport type { DateRange, DateValue } from 'react-aria'\n\nimport { StyledPredefinedRanges } from './predefined-ranges.styled'\nimport { useCalendarContext } from '../use-calendar-context'\n\nexport const PredefinedRanges = (): React.ReactElement | null => {\n const { predefinedValues, onCalendarDateClick } = useCalendarContext<\n DateRange | DateValue\n >()\n\n if (predefinedValues === undefined) {\n return null\n }\n\n return (\n <StyledPredefinedRanges>\n {predefinedValues.map(item => (\n <Button\n variant='ghost'\n size='medium'\n key={item.id}\n type='button'\n onClick={() => onCalendarDateClick(item.value)}\n >\n {item.label}\n </Button>\n ))}\n </StyledPredefinedRanges>\n )\n}\n","import type { ElementRef, ReactElement, ReactNode } from 'react'\nimport React, { useRef } from 'react'\nimport { useCalendarState, useRangeCalendarState } from 'react-stately'\nimport { useCalendar, useRangeCalendar, useLocale } from 'react-aria'\nimport { createCalendar } from '@internationalized/date'\nimport { Flex } from '@mirohq/design-system-flex'\nimport type { DateRange, DateValue, AriaButtonProps } from 'react-aria'\nimport type { DOMAttributes } from '@react-types/shared'\nimport type { CalendarState, RangeCalendarState } from 'react-stately'\nimport { theme } from '@mirohq/design-system-stitches'\n\nimport { useCalendarContext } from '../use-calendar-context'\nimport type { StyledContentProps } from './content.styled'\nimport {\n StyledContent,\n StyledClearContent,\n StyledCalendarBody,\n StyledBodyContentLeft,\n StyledBodyContentRight,\n StyledGridContent,\n} from './content.styled'\nimport { Header } from './header'\nimport { Grid } from './grid'\nimport type { Align, PointerDownOutsideEvent, Side, Sticky } from '../types'\nimport type { HeaderButtonProps } from './header-button'\nimport { PredefinedRanges } from './predefined-ranges'\n\nexport const CONTENT_OFFSET = parseInt(theme.space[50])\n\nexport type ContentProps = StyledContentProps & {\n /**\n * Calendar's content.\n */\n children?: ReactNode\n\n /**\n * Event handler called when focus moves to the trigger after closing. It can\n * be prevented by calling event.preventDefault.\n */\n onCloseAutoFocus?: (event: Event) => void\n\n /**\n * Event handler called when focus moves to the trigger after closing. It can\n * be prevented by 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 * The preferred side of the anchor to render against when open. Will be\n * reversed when collisions occur and avoidCollisions is enabled.\n * @default 'bottom'\n */\n side?: Side\n\n /**\n * The distance in pixels from the anchor.\n * @default CONTENT_OFFSET\n */\n sideOffset?: number\n\n /**\n * The preferred alignment against the anchor. May change when collisions\n * occur.\n * @default 'start'\n */\n align?: Align\n\n /**\n * An offset in pixels from the \"start\" or \"end\" alignment options.\n * @default 0\n */\n alignOffset?: number\n\n /**\n * When true, overrides the side and align preferences to prevent collisions\n * with boundary edges.\n * @default true\n */\n avoidCollisions?: boolean\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 distance in pixels from the boundary edges where collision detection\n * should occur. Accepts a number (same for all sides), or a partial padding\n * object, for example: { top: 20, left: 20 }.\n * @default 0\n */\n collisionPadding?: number | Partial<Record<Side, number>>\n\n /**\n * The sticky behavior on the align axis. \"partial\" will keep the content in the\n * boundary as long as the trigger is at least partially in the boundary whilst\n * \"always\" will keep the content in the boundary regardless.\n * @default 'partial'\n */\n sticky?: Sticky\n\n /**\n * Whether to hide the content when the trigger becomes fully occluded.\n * @default true\n */\n hideWhenDetached?: boolean\n}\n\ninterface SharedContentProps {\n calendarProps: DOMAttributes\n prevButtonProps: AriaButtonProps\n nextButtonProps: AriaButtonProps\n state: RangeCalendarState | CalendarState\n}\n\nconst SharedContent = React.forwardRef<HTMLDivElement, SharedContentProps>(\n ({ calendarProps, prevButtonProps, nextButtonProps, state }, forwardRef) => {\n const { visibleDuration } = useCalendarContext<DateValue>()\n\n return (\n <StyledCalendarBody {...calendarProps} ref={forwardRef}>\n <PredefinedRanges />\n <Flex direction='column'>\n <Header\n state={state}\n prevButtonProps={prevButtonProps as HeaderButtonProps}\n nextButtonProps={nextButtonProps as HeaderButtonProps}\n visibleMonths={visibleDuration.months}\n />\n <StyledGridContent>\n <StyledBodyContentLeft>\n <Grid state={state} />\n </StyledBodyContentLeft>\n {visibleDuration.months === 2 && (\n <StyledBodyContentRight>\n <Grid state={state} offset={{ months: 1 }} />\n </StyledBodyContentRight>\n )}\n </StyledGridContent>\n </Flex>\n </StyledCalendarBody>\n )\n }\n)\n\nconst DatePickerContent = (): ReactElement => {\n const { locale } = useLocale()\n\n const {\n calendarValue,\n visibleDuration,\n minDate,\n maxDate,\n onCalendarDateClick,\n } = useCalendarContext<DateValue>()\n\n const state = useCalendarState({\n value: calendarValue,\n visibleDuration,\n minValue: minDate,\n maxValue: maxDate,\n autoFocus: true,\n onChange: onCalendarDateClick,\n locale,\n createCalendar,\n })\n\n const { calendarProps, prevButtonProps, nextButtonProps } = useCalendar(\n {},\n state\n )\n\n return (\n <SharedContent\n calendarProps={calendarProps}\n prevButtonProps={prevButtonProps}\n nextButtonProps={nextButtonProps}\n state={state}\n />\n )\n}\n\nconst RangePickerContent = (): ReactElement => {\n const { locale } = useLocale()\n\n const {\n calendarValue,\n visibleDuration,\n minDate,\n maxDate,\n onCalendarDateClick,\n } = useCalendarContext<DateRange>()\n\n const ref = useRef<HTMLDivElement>(null)\n\n const state = useRangeCalendarState({\n value: calendarValue,\n visibleDuration,\n minValue: minDate,\n maxValue: maxDate,\n autoFocus: true,\n onChange: onCalendarDateClick,\n locale,\n createCalendar,\n })\n\n const { calendarProps, prevButtonProps, nextButtonProps } = useRangeCalendar(\n {},\n state,\n ref\n )\n\n return (\n <SharedContent\n ref={ref}\n calendarProps={calendarProps}\n prevButtonProps={prevButtonProps}\n nextButtonProps={nextButtonProps}\n state={state}\n />\n )\n}\n\nexport const Content = React.forwardRef<\n ElementRef<typeof StyledContent>,\n ContentProps\n>(\n (\n {\n side = 'bottom',\n sideOffset = CONTENT_OFFSET,\n align = 'start',\n alignOffset = 0,\n collisionPadding = 0,\n avoidCollisions = true,\n sticky = 'partial',\n hideWhenDetached = true,\n children,\n ...restProps\n },\n forwardRef\n ) => {\n const { picker, open } = useCalendarContext()\n\n if (!open) {\n return null\n }\n\n return (\n <StyledContent\n {...restProps}\n ref={forwardRef}\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n collisionPadding={collisionPadding}\n avoidCollisions={avoidCollisions}\n sticky={sticky}\n hideWhenDetached={hideWhenDetached}\n >\n <Flex direction='column'>\n {picker === 'single' ? <DatePickerContent /> : <RangePickerContent />}\n {children != null && (\n <StyledClearContent>{children}</StyledClearContent>\n )}\n </Flex>\n </StyledContent>\n )\n }\n)\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { ComponentPropsWithRef } from 'react'\n\nexport const StyledValue = styled(Primitive.span, {})\n\nexport type StyledValueProps = ComponentPropsWithRef<typeof StyledValue>\n","import type { ElementRef } from 'react'\nimport React, { useMemo } from 'react'\nimport type { DateRange, DateValue } from '@react-types/datepicker'\nimport type { DateFormatter } from 'react-aria'\nimport { useDateFormatter } from 'react-aria'\nimport { getLocalTimeZone } from '@internationalized/date'\n\nimport type { StyledValueProps } from './value.styled'\nimport { StyledValue } from './value.styled'\nimport { useCalendarContext } from '../use-calendar-context'\n\ntype FormatOptions = Pick<\n Intl.DateTimeFormatOptions,\n 'weekday' | 'era' | 'year' | 'month' | 'day' | 'formatMatcher'\n>\n\nexport type ValueProps = StyledValueProps & {\n format?: FormatOptions\n}\n\nconst DEFAULT_FORMAT: FormatOptions = {\n day: '2-digit',\n month: 'short',\n year: 'numeric',\n}\n\nfunction formatDate(\n date: DateValue,\n formatter: DateFormatter,\n timeZone: string\n): string | undefined {\n return formatter.format(date.toDate(timeZone))\n}\n\nfunction formatValue(\n value: DateValue | DateRange | undefined | null,\n formatter: DateFormatter,\n timeZone: string\n): string | undefined {\n if (value == null || value === undefined) {\n return undefined\n }\n\n if ('start' in value) {\n if (value.start == null || value.end == null) {\n return undefined\n }\n\n return `${formatDate(value.start, formatter, timeZone)} - ${formatDate(\n value.end,\n formatter,\n timeZone\n )}`\n }\n\n return formatDate(value, formatter, timeZone)\n}\n\nexport const Value = React.forwardRef<\n ElementRef<typeof StyledValue>,\n ValueProps\n>(({ format = DEFAULT_FORMAT, ...restProps }, forwardRef) => {\n const { value } = useCalendarContext()\n\n const timeZone = useMemo(getLocalTimeZone, [format])\n\n const formatWithTimeZone = useMemo(\n () => ({ ...format, timeZone }),\n [format, timeZone]\n )\n const dateFormatter = useDateFormatter(formatWithTimeZone)\n\n const valueToDisplay = formatValue(value, dateFormatter, timeZone)\n\n return (\n <StyledValue ref={forwardRef} {...restProps}>\n {valueToDisplay}\n </StyledValue>\n )\n})\n","import type { ElementRef } from 'react'\nimport React from 'react'\nimport { Button } from '@mirohq/design-system-button'\nimport type { BaseButtonProps } from '@mirohq/design-system-base-button'\nimport type { AddToUnion } from '@mirohq/design-system-types'\n\nimport { useCalendarContext } from '../use-calendar-context'\n\nexport type ClearButtonProps = AddToUnion<\n BaseButtonProps,\n {\n /**\n * Event handler called when the calendar value is cleared\n */\n onClear?: () => void\n }\n>\n\nexport const ClearButton = React.forwardRef<\n ElementRef<typeof Button>,\n ClearButtonProps\n>(({ onClear, children, ...restProps }, forwardRef) => {\n const { value, setValue } = useCalendarContext()\n\n const onClearHandler = (): void => {\n setValue(undefined)\n if (onClear !== undefined) {\n onClear()\n }\n }\n\n return (\n <Button\n {...restProps}\n ref={forwardRef}\n variant='ghost'\n size='medium'\n onClick={onClearHandler}\n disabled={value === null}\n >\n {children}\n </Button>\n )\n}) as React.ForwardRefExoticComponent<ClearButtonProps>\n","import type { ElementRef } from 'react'\nimport React, { useEffect } from 'react'\nimport { Button } from '@mirohq/design-system-button'\nimport type { BaseButtonProps } from '@mirohq/design-system-base-button'\nimport type { AddToUnion } from '@mirohq/design-system-types'\n\nimport { useCalendarContext } from '../use-calendar-context'\n\nexport type SaveButtonProps = AddToUnion<\n BaseButtonProps,\n {\n /**\n * Event handler called when the calendar value is saved\n */\n onSave?: () => void\n }\n>\n\nexport const SaveButton = React.forwardRef<\n ElementRef<typeof Button>,\n SaveButtonProps\n>(({ onSave, children, ...restProps }, forwardRef) => {\n const { setImmediateSave, onSaveClick } = useCalendarContext()\n\n useEffect(() => {\n setImmediateSave(true)\n\n return () => setImmediateSave(false)\n }, [setImmediateSave])\n\n const onSaveHandler = (): void => {\n onSaveClick()\n if (onSave !== undefined) {\n onSave()\n }\n }\n\n return (\n <Button\n ref={forwardRef}\n {...restProps}\n variant='primary'\n size='medium'\n onClick={onSaveHandler}\n >\n {children}\n </Button>\n )\n}) as React.ForwardRefExoticComponent<SaveButtonProps>\n","import { styled } from '@mirohq/design-system-stitches'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport type { ComponentPropsWithRef } from 'react'\n\nexport const StyledCalendar = styled(Primitive.div, {\n position: 'relative',\n})\nexport type StyledCalendarProps = ComponentPropsWithRef<typeof StyledCalendar>\n","import type { ElementRef, ForwardRefExoticComponent } from 'react'\nimport React from 'react'\nimport { I18nProvider } from 'react-aria'\nimport * as RadixPopover from '@radix-ui/react-popover'\nimport type { DateRange, DateValue } from 'react-aria'\n\nimport type { CalendarDatePickerProps, CalendarRangePickerProps } from './types'\nimport { Trigger } from './partials/trigger'\nimport { Content } from './partials/content'\nimport type { CalendarProviderProps } from './use-calendar-context'\nimport { CalendarProvider, useCalendarContext } from './use-calendar-context'\nimport { Value } from './partials/value'\nimport { ClearButton } from './partials/clear-button'\nimport { SaveButton } from './partials/save-button'\nimport { StyledCalendar } from './calendar.styled'\n\n// If an unrecognised locale string is passed in, the component will error, this protects from that by defaulting to English\n// https://github.com/adobe/react-spectrum/issues/7457\nfunction getValidLocale(locale: string | undefined): string {\n if (locale === undefined) {\n return 'en'\n }\n\n try {\n Intl.DateTimeFormat.supportedLocalesOf(locale)\n return locale\n } catch {\n try {\n // the client locale is in the format of ja_JP, but Intl.DateTimeFormat expects ja-JP\n // https://github.com/formatjs/formatjs/discussions/2440\n const localeWithDashes = locale.replace(/_/g, '-')\n Intl.DateTimeFormat.supportedLocalesOf(localeWithDashes)\n return localeWithDashes\n } catch {\n return 'en'\n }\n }\n}\n\nexport type CalendarProps = (\n | CalendarDatePickerProps\n | CalendarRangePickerProps\n) & {\n /**\n * The locale for Calendar internationalization\n */\n locale?: string\n}\n\ninterface CalendarRootProps {\n children: React.ReactNode\n}\n\nconst Root = React.forwardRef<\n ElementRef<typeof StyledCalendar>,\n CalendarRootProps\n>(({ children, ...restProps }, forwardRef) => {\n const { open, setOpen } = useCalendarContext()\n\n return (\n <RadixPopover.Root open={open} onOpenChange={setOpen}>\n <StyledCalendar ref={forwardRef} {...restProps}>\n {children}\n </StyledCalendar>\n </RadixPopover.Root>\n )\n})\n\nexport const Calendar = React.forwardRef<\n ElementRef<typeof StyledCalendar>,\n CalendarProps\n>(\n (\n {\n picker,\n defaultValue,\n value,\n onValueChange,\n defaultOpen,\n open,\n onClose,\n onOpen,\n locale,\n visibleMonths,\n minDate,\n maxDate,\n disabled,\n 'aria-disabled': ariaDisabled,\n children,\n predefinedValues,\n ...props\n },\n forwardRef\n ) => {\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n const providerProps = {\n picker,\n defaultValue,\n value,\n onValueChange,\n visibleMonths,\n minDate,\n maxDate,\n defaultOpen,\n open,\n onClose,\n onOpen,\n disabled,\n ariaDisabled,\n predefinedValues,\n } as CalendarProviderProps<DateValue> | CalendarProviderProps<DateRange>\n\n const validatedLocale = getValidLocale(locale)\n\n return (\n <I18nProvider locale={validatedLocale}>\n <CalendarProvider {...(providerProps as any)}>\n <Root {...props} ref={forwardRef}>\n {children}\n </Root>\n </CalendarProvider>\n </I18nProvider>\n )\n }\n) as ForwardRefExoticComponent<CalendarProps> & Partials\n\nexport interface Partials {\n Trigger: typeof Trigger\n Content: typeof Content\n Value: typeof Value\n ClearButton: typeof ClearButton\n SaveButton: typeof SaveButton\n}\n\nCalendar.Trigger = Trigger\nCalendar.Content = Content\nCalendar.Value = Value\nCalendar.ClearButton = ClearButton\nCalendar.SaveButton = SaveButton\n"],"names":["StyledValue","value","RadixTrigger","RadixContent"],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,14 +1,15 @@
1
1
  import * as react from 'react';
2
2
  import react__default, { ComponentPropsWithRef, ReactNode, ForwardRefExoticComponent } from 'react';
3
3
  import { DateValue, DateRange } from 'react-aria';
4
- import { Booleanish } from '@mirohq/design-system-types';
4
+ import { Booleanish, AddToUnion } from '@mirohq/design-system-types';
5
5
  import * as _stitches_react_types_styled_component from '@stitches/react/types/styled-component';
6
6
  import * as _mirohq_design_system_stitches from '@mirohq/design-system-stitches';
7
7
  import { StrictComponentProps } from '@mirohq/design-system-stitches';
8
8
  import * as _mirohq_design_system_primitive from '@mirohq/design-system-primitive';
9
- import * as _mirohq_design_system_base_button from '@mirohq/design-system-base-button';
10
- import { BaseButtonProps } from '@mirohq/design-system-base-button';
9
+ import * as packages_components_internal_base_button_src_base_button from 'packages/components/internal/base-button/src/base-button';
10
+ import * as _mirohq_design_system_hooks_use_press from '@mirohq/design-system-hooks/use-press';
11
11
  import * as _radix_ui_react_popover from '@radix-ui/react-popover';
12
+ import { BaseButtonProps } from '@mirohq/design-system-base-button';
12
13
 
13
14
  declare const StyledCalendar: react.ForwardRefExoticComponent<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<_mirohq_design_system_primitive.PrimitiveProps<"div">>>, never> & _stitches_react_types_styled_component.TransformProps<{}, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLDivElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<_mirohq_design_system_primitive.PrimitiveProps<"div">>, {}, {}>;
14
15
  type StyledCalendarProps = ComponentPropsWithRef<typeof StyledCalendar>;
@@ -117,9 +118,31 @@ type Side = 'top' | 'right' | 'bottom' | 'left';
117
118
  type Align = 'start' | 'center' | 'end';
118
119
  type Sticky = 'partial' | 'always';
119
120
 
120
- declare const StyledTrigger: react.ForwardRefExoticComponent<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<Omit<_mirohq_design_system_base_button.BaseButtonProps, "ref"> & react.RefAttributes<HTMLAnchorElement | HTMLButtonElement>>>, "withClearButton"> & _stitches_react_types_styled_component.TransformProps<{
121
+ declare const StyledTrigger: react.ForwardRefExoticComponent<(Omit<Omit<Omit<Omit<Omit<Omit<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<_mirohq_design_system_primitive.PrimitiveProps<"button">>>, never> & _stitches_react_types_styled_component.TransformProps<{}, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLButtonElement>, "ref"> & {
122
+ ref?: ((instance: HTMLButtonElement | null) => void | react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | react.RefObject<HTMLButtonElement> | null | undefined;
123
+ } & _mirohq_design_system_hooks_use_press.PressProps & packages_components_internal_base_button_src_base_button.HoverEvents, "ref"> & react.RefAttributes<HTMLAnchorElement | HTMLButtonElement>, "ref"> & {
124
+ ref?: ((instance: HTMLAnchorElement | HTMLButtonElement | null) => void | react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | react.RefObject<HTMLAnchorElement | HTMLButtonElement> | null | undefined;
125
+ }, _mirohq_design_system_stitches.ForbiddenProps> & {
126
+ children?: React.ReactNode;
127
+ }, "withClearButton"> & _stitches_react_types_styled_component.TransformProps<{
121
128
  withClearButton?: boolean | "true" | undefined;
122
- }, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLAnchorElement | HTMLButtonElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<Omit<_mirohq_design_system_base_button.BaseButtonProps, "ref"> & react.RefAttributes<HTMLAnchorElement | HTMLButtonElement>>, {
129
+ }, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> | Omit<Omit<Omit<Omit<Omit<Omit<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<_mirohq_design_system_primitive.PrimitiveProps<"button">>>, never> & _stitches_react_types_styled_component.TransformProps<{}, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLButtonElement>, "ref"> & {
130
+ ref?: ((instance: HTMLButtonElement | null) => void | react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | react.RefObject<HTMLButtonElement> | null | undefined;
131
+ } & _mirohq_design_system_hooks_use_press.PressProps & packages_components_internal_base_button_src_base_button.HoverEvents & react.AnchorHTMLAttributes<"a"> & {
132
+ href: string;
133
+ }, "ref"> & react.RefAttributes<HTMLAnchorElement | HTMLButtonElement>, "ref"> & {
134
+ ref?: ((instance: HTMLAnchorElement | HTMLButtonElement | null) => void | react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | react.RefObject<HTMLAnchorElement | HTMLButtonElement> | null | undefined;
135
+ }, _mirohq_design_system_stitches.ForbiddenProps> & {
136
+ children?: React.ReactNode;
137
+ }, "withClearButton"> & _stitches_react_types_styled_component.TransformProps<{
138
+ withClearButton?: boolean | "true" | undefined;
139
+ }, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref">) & react.RefAttributes<HTMLAnchorElement | HTMLButtonElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<(Omit<Omit<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<_mirohq_design_system_primitive.PrimitiveProps<"button">>>, never> & _stitches_react_types_styled_component.TransformProps<{}, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLButtonElement>, "ref"> & {
140
+ ref?: ((instance: HTMLButtonElement | null) => void | react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | react.RefObject<HTMLButtonElement> | null | undefined;
141
+ } & _mirohq_design_system_hooks_use_press.PressProps & packages_components_internal_base_button_src_base_button.HoverEvents, "ref"> | Omit<Omit<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<_mirohq_design_system_primitive.PrimitiveProps<"button">>>, never> & _stitches_react_types_styled_component.TransformProps<{}, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLButtonElement>, "ref"> & {
142
+ ref?: ((instance: HTMLButtonElement | null) => void | react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | react.RefObject<HTMLButtonElement> | null | undefined;
143
+ } & _mirohq_design_system_hooks_use_press.PressProps & packages_components_internal_base_button_src_base_button.HoverEvents & react.AnchorHTMLAttributes<"a"> & {
144
+ href: string;
145
+ }, "ref">) & react.RefAttributes<HTMLAnchorElement | HTMLButtonElement>>, {
123
146
  withClearButton?: boolean | "true" | undefined;
124
147
  }, {}>;
125
148
  type StyledTriggerProps = StrictComponentProps<typeof StyledTrigger>;
@@ -284,20 +307,20 @@ type ValueProps = StyledValueProps & {
284
307
  };
285
308
  declare const Value: react__default.ForwardRefExoticComponent<Omit<ValueProps, "ref"> & react__default.RefAttributes<HTMLSpanElement>>;
286
309
 
287
- type ClearButtonProps = BaseButtonProps & {
310
+ type ClearButtonProps = AddToUnion<BaseButtonProps, {
288
311
  /**
289
312
  * Event handler called when the calendar value is cleared
290
313
  */
291
314
  onClear?: () => void;
292
- };
315
+ }>;
293
316
  declare const ClearButton: react__default.ForwardRefExoticComponent<ClearButtonProps>;
294
317
 
295
- type SaveButtonProps = BaseButtonProps & {
318
+ type SaveButtonProps = AddToUnion<BaseButtonProps, {
296
319
  /**
297
320
  * Event handler called when the calendar value is saved
298
321
  */
299
322
  onSave?: () => void;
300
- };
323
+ }>;
301
324
  declare const SaveButton: react__default.ForwardRefExoticComponent<SaveButtonProps>;
302
325
 
303
326
  type CalendarProps = (CalendarDatePickerProps | CalendarRangePickerProps) & {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mirohq/design-system-calendar",
3
- "version": "2.1.20-fix-button-types.2",
3
+ "version": "2.1.20",
4
4
  "description": "",
5
5
  "author": "Miro",
6
6
  "source": "src/index.ts",
@@ -34,20 +34,20 @@
34
34
  "@react-types/shared": "^3.18.1",
35
35
  "react-aria": "^3.25.0",
36
36
  "react-stately": "^3.23.0",
37
- "@mirohq/design-system-base-button": "^1.1.3-fix-button-types.2",
37
+ "@mirohq/design-system-base-button": "^1.1.2",
38
+ "@mirohq/design-system-base-form": "^1.1.3",
38
39
  "@mirohq/design-system-base-text-field": "^1.2.1",
39
- "@mirohq/design-system-button": "^5.1.5-fix-button-types.2",
40
+ "@mirohq/design-system-button": "^5.1.4",
40
41
  "@mirohq/design-system-flex": "^3.1.2",
41
- "@mirohq/design-system-icon-button": "^4.1.5-fix-button-types.2",
42
- "@mirohq/design-system-base-form": "^1.1.3",
43
- "@mirohq/design-system-icons": "^1.27.0",
42
+ "@mirohq/design-system-icon-button": "^4.1.4",
43
+ "@mirohq/design-system-icons": "^1.27.1",
44
44
  "@mirohq/design-system-primitive": "^2.1.0",
45
45
  "@mirohq/design-system-stitches": "^3.1.2",
46
46
  "@mirohq/design-system-styles": "^3.0.1",
47
47
  "@mirohq/design-system-tooltip": "^4.2.0",
48
48
  "@mirohq/design-system-types": "^1.0.1",
49
- "@mirohq/design-system-utils": "^1.2.1",
50
- "@mirohq/design-system-typography": "^1.2.1"
49
+ "@mirohq/design-system-typography": "^1.2.1",
50
+ "@mirohq/design-system-utils": "^1.2.1"
51
51
  },
52
52
  "scripts": {
53
53
  "build": "rollup -c ../../../rollup.config.js",