@mirohq/design-system-calendar 1.2.1 → 1.2.3-sync-design-tokens.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/main.js CHANGED
@@ -266,7 +266,8 @@ const StyledContent = designSystemStitches.styled(RadixPopover.Content, {
266
266
  boxShadow: "$100"
267
267
  });
268
268
  const StyledCalendarBody = designSystemStitches.styled(designSystemFlex.Flex, {
269
- padding: "$200"
269
+ padding: "$200",
270
+ gap: "$200"
270
271
  });
271
272
  const StyledGridContent = designSystemStitches.styled(designSystemFlex.Flex, {});
272
273
  const StyledBodyContentLeft = designSystemStitches.styled(designSystemPrimitive.Primitive.div, {});
@@ -480,33 +481,71 @@ const Grid = React__default["default"].forwardRef(
480
481
  }
481
482
  );
482
483
 
484
+ const StyledPredefinedRanges = designSystemStitches.styled(designSystemPrimitive.Primitive.div, {
485
+ display: "flex",
486
+ flexDirection: "column",
487
+ borderRight: "1px solid $border-neutrals",
488
+ padding: "$300 $200 0 0",
489
+ "& button": {
490
+ backgroundColor: "$transparent",
491
+ border: "none",
492
+ fontSize: "$200",
493
+ padding: "0 0 0 $100",
494
+ textAlign: "left",
495
+ lineHeight: "24px",
496
+ color: "$text-neutrals",
497
+ marginBottom: "$150",
498
+ borderRadius: "$50",
499
+ minWidth: "125px",
500
+ cursor: "pointer",
501
+ "&:hover": {
502
+ backgroundColor: "$background-primary-prominent-hover",
503
+ color: "$text-primary-inverted",
504
+ fontWeight: "600"
505
+ }
506
+ }
507
+ });
508
+
509
+ const PredefinedRanges = () => {
510
+ const { predefinedValues, onCalendarDateClick } = useCalendarContext();
511
+ if (predefinedValues === void 0) {
512
+ return null;
513
+ }
514
+ return /* @__PURE__ */ jsxRuntime.jsx(StyledPredefinedRanges, { children: predefinedValues.map((item) => /* @__PURE__ */ jsxRuntime.jsx(
515
+ designSystemButton.Button,
516
+ {
517
+ variant: "ghost",
518
+ size: "medium",
519
+ type: "button",
520
+ onClick: () => onCalendarDateClick(item.value),
521
+ children: item.label
522
+ },
523
+ item.id
524
+ )) });
525
+ };
526
+
483
527
  const CONTENT_OFFSET = parseInt(designSystemStitches.theme.space[50]);
484
528
  const SharedContent = React__default["default"].forwardRef(
485
529
  ({ calendarProps, prevButtonProps, nextButtonProps, state }, forwardRef) => {
486
530
  const { visibleDuration } = useCalendarContext();
487
- return /* @__PURE__ */ jsxRuntime.jsxs(
488
- StyledCalendarBody,
489
- {
490
- direction: "column",
491
- ...calendarProps,
492
- ref: forwardRef,
493
- children: [
494
- /* @__PURE__ */ jsxRuntime.jsx(
495
- Header,
496
- {
497
- state,
498
- prevButtonProps,
499
- nextButtonProps,
500
- visibleMonths: visibleDuration.months
501
- }
502
- ),
503
- /* @__PURE__ */ jsxRuntime.jsxs(StyledGridContent, { children: [
504
- /* @__PURE__ */ jsxRuntime.jsx(StyledBodyContentLeft, { children: /* @__PURE__ */ jsxRuntime.jsx(Grid, { state }) }),
505
- visibleDuration.months === 2 && /* @__PURE__ */ jsxRuntime.jsx(StyledBodyContentRight, { children: /* @__PURE__ */ jsxRuntime.jsx(Grid, { state, offset: { months: 1 } }) })
506
- ] })
507
- ]
508
- }
509
- );
531
+ return /* @__PURE__ */ jsxRuntime.jsxs(StyledCalendarBody, { ...calendarProps, ref: forwardRef, children: [
532
+ /* @__PURE__ */ jsxRuntime.jsx(PredefinedRanges, {}),
533
+ /* @__PURE__ */ jsxRuntime.jsxs(designSystemFlex.Flex, { direction: "column", children: [
534
+ /* @__PURE__ */ jsxRuntime.jsx(
535
+ Header,
536
+ {
537
+ state,
538
+ prevButtonProps,
539
+ nextButtonProps,
540
+ visibleMonths: visibleDuration.months
541
+ }
542
+ ),
543
+ /* @__PURE__ */ jsxRuntime.jsxs(StyledGridContent, { children: [
544
+ /* @__PURE__ */ jsxRuntime.jsx(StyledBodyContentLeft, { children: /* @__PURE__ */ jsxRuntime.jsx(Grid, { state }) }),
545
+ visibleDuration.months === 2 && /* @__PURE__ */ jsxRuntime.jsx(StyledBodyContentRight, { children: /* @__PURE__ */ jsxRuntime.jsx(Grid, { state, offset: { months: 1 } }) })
546
+ ] })
547
+ ] })
548
+ ] });
510
549
  }
511
550
  );
512
551
  const DatePickerContent = () => {
@@ -731,6 +770,7 @@ const Calendar = React__default["default"].forwardRef(
731
770
  disabled,
732
771
  "aria-disabled": ariaDisabled,
733
772
  children,
773
+ predefinedValues,
734
774
  ...props
735
775
  }, forwardRef) => {
736
776
  const providerProps = {
@@ -746,7 +786,8 @@ const Calendar = React__default["default"].forwardRef(
746
786
  onClose,
747
787
  onOpen,
748
788
  disabled,
749
- ariaDisabled
789
+ ariaDisabled,
790
+ predefinedValues
750
791
  };
751
792
  return /* @__PURE__ */ jsxRuntime.jsx(reactAria.I18nProvider, { locale, children: /* @__PURE__ */ jsxRuntime.jsx(CalendarProvider, { ...providerProps, children: /* @__PURE__ */ jsxRuntime.jsx(Root, { ...props, ref: forwardRef, children }) }) });
752
793
  }
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/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 ...textFieldStyles.base.placeholder.old,\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\n '&:disabled, &[aria-disabled=\"true\"]': {\n ...textFieldStyles.variants.disabled,\n color: '$text-neutrals-disabled',\n },\n\n variants: {\n v1: {\n true: {\n ...textFieldStyles.v1.idle,\n ...focus.css(textFieldStyles.v1.focused),\n },\n false: {\n ...focus.css(textFieldStyles.variants.focused),\n },\n },\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 { PropsWithChildren } 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\ninterface SharedProps {\n picker: 'single' | 'range'\n minDate?: DateValue\n maxDate?: DateValue\n disabled?: boolean\n ariaDisabled?: Booleanish\n}\n\ninterface CalendarContextProps<T extends DateRange | DateValue>\n extends SharedProps {\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 {\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}: PropsWithChildren<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 { useNewDesignLanguage } from '@mirohq/design-system-experiments'\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, 'v1' | '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 [v1] = useNewDesignLanguage()\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 v1={v1}\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 weight='thin' 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})\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))\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: React.FC<IHeader> = ({\n state,\n prevButtonProps,\n nextButtonProps,\n visibleMonths,\n}) => {\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-v1',\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: React.FC<CellProps> = props => {\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 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'\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\n direction='column'\n {...calendarProps}\n ref={forwardRef}\n >\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 </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) {\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})\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})\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 {\n ElementRef,\n ForwardRefExoticComponent,\n PropsWithChildren,\n} 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'\nimport {\n FloatingLabel,\n useFormFieldContext,\n} from '@mirohq/design-system-base-form'\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\nexport type CalendarProps = (\n | CalendarDatePickerProps\n | CalendarRangePickerProps\n) & {\n /**\n * The locale for Calendar internationalization\n */\n locale?: string\n}\n\ntype CalendarRootProps = PropsWithChildren<{}>\n\nconst Root = React.forwardRef<\n ElementRef<typeof StyledCalendar>,\n CalendarRootProps\n>(({ children, ...restProps }, forwardRef) => {\n const { open, setOpen } = useCalendarContext()\n\n const { label, isFloatingLabel } = useFormFieldContext<HTMLSelectElement>()\n\n return (\n <RadixPopover.Root open={open} onOpenChange={setOpen}>\n <StyledCalendar ref={forwardRef} {...restProps}>\n {label !== null && isFloatingLabel && (\n <FloatingLabel floating size='medium'>\n {label}\n </FloatingLabel>\n )}\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 ...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 } as CalendarProviderProps<DateValue> | CalendarProviderProps<DateRange>\n\n return (\n <I18nProvider locale={locale}>\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","useNewDesignLanguage","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","theme","useCalendarState","createCalendar","useCalendar","useRangeCalendarState","useRangeCalendar","Button","useEffect","RadixPopover","FloatingLabel","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 ...textFieldStyles.base.placeholder.old,\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\n '&:disabled, &[aria-disabled=\"true\"]': {\n ...textFieldStyles.variants.disabled,\n color: '$text-neutrals-disabled',\n },\n\n variants: {\n v1: {\n true: {\n ...textFieldStyles.v1.idle,\n ...focus.css(textFieldStyles.v1.focused),\n },\n false: {\n ...focus.css(textFieldStyles.variants.focused),\n },\n },\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 { PropsWithChildren } 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 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}: PropsWithChildren<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 { useNewDesignLanguage } from '@mirohq/design-system-experiments'\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, 'v1' | '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 [v1] = useNewDesignLanguage()\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 v1={v1}\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 weight='thin' 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))\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: React.FC<IHeader> = ({\n state,\n prevButtonProps,\n nextButtonProps,\n visibleMonths,\n}) => {\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-v1',\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: React.FC<CellProps> = props => {\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) {\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})\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})\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 {\n ElementRef,\n ForwardRefExoticComponent,\n PropsWithChildren,\n} 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'\nimport {\n FloatingLabel,\n useFormFieldContext,\n} from '@mirohq/design-system-base-form'\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\nexport type CalendarProps = (\n | CalendarDatePickerProps\n | CalendarRangePickerProps\n) & {\n /**\n * The locale for Calendar internationalization\n */\n locale?: string\n}\n\ntype CalendarRootProps = PropsWithChildren<{}>\n\nconst Root = React.forwardRef<\n ElementRef<typeof StyledCalendar>,\n CalendarRootProps\n>(({ children, ...restProps }, forwardRef) => {\n const { open, setOpen } = useCalendarContext()\n\n const { label, isFloatingLabel } = useFormFieldContext<HTMLSelectElement>()\n\n return (\n <RadixPopover.Root open={open} onOpenChange={setOpen}>\n <StyledCalendar ref={forwardRef} {...restProps}>\n {label !== null && isFloatingLabel && (\n <FloatingLabel floating size='medium'>\n {label}\n </FloatingLabel>\n )}\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 return (\n <I18nProvider locale={locale}>\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","useNewDesignLanguage","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","FloatingLabel","I18nProvider"],"mappings":"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"}
package/dist/module.js CHANGED
@@ -240,7 +240,8 @@ const StyledContent = styled(Content$1, {
240
240
  boxShadow: "$100"
241
241
  });
242
242
  const StyledCalendarBody = styled(Flex, {
243
- padding: "$200"
243
+ padding: "$200",
244
+ gap: "$200"
244
245
  });
245
246
  const StyledGridContent = styled(Flex, {});
246
247
  const StyledBodyContentLeft = styled(Primitive.div, {});
@@ -454,33 +455,71 @@ const Grid = React.forwardRef(
454
455
  }
455
456
  );
456
457
 
458
+ const StyledPredefinedRanges = styled(Primitive.div, {
459
+ display: "flex",
460
+ flexDirection: "column",
461
+ borderRight: "1px solid $border-neutrals",
462
+ padding: "$300 $200 0 0",
463
+ "& button": {
464
+ backgroundColor: "$transparent",
465
+ border: "none",
466
+ fontSize: "$200",
467
+ padding: "0 0 0 $100",
468
+ textAlign: "left",
469
+ lineHeight: "24px",
470
+ color: "$text-neutrals",
471
+ marginBottom: "$150",
472
+ borderRadius: "$50",
473
+ minWidth: "125px",
474
+ cursor: "pointer",
475
+ "&:hover": {
476
+ backgroundColor: "$background-primary-prominent-hover",
477
+ color: "$text-primary-inverted",
478
+ fontWeight: "600"
479
+ }
480
+ }
481
+ });
482
+
483
+ const PredefinedRanges = () => {
484
+ const { predefinedValues, onCalendarDateClick } = useCalendarContext();
485
+ if (predefinedValues === void 0) {
486
+ return null;
487
+ }
488
+ return /* @__PURE__ */ jsx(StyledPredefinedRanges, { children: predefinedValues.map((item) => /* @__PURE__ */ jsx(
489
+ Button,
490
+ {
491
+ variant: "ghost",
492
+ size: "medium",
493
+ type: "button",
494
+ onClick: () => onCalendarDateClick(item.value),
495
+ children: item.label
496
+ },
497
+ item.id
498
+ )) });
499
+ };
500
+
457
501
  const CONTENT_OFFSET = parseInt(theme.space[50]);
458
502
  const SharedContent = React.forwardRef(
459
503
  ({ calendarProps, prevButtonProps, nextButtonProps, state }, forwardRef) => {
460
504
  const { visibleDuration } = useCalendarContext();
461
- return /* @__PURE__ */ jsxs(
462
- StyledCalendarBody,
463
- {
464
- direction: "column",
465
- ...calendarProps,
466
- ref: forwardRef,
467
- children: [
468
- /* @__PURE__ */ jsx(
469
- Header,
470
- {
471
- state,
472
- prevButtonProps,
473
- nextButtonProps,
474
- visibleMonths: visibleDuration.months
475
- }
476
- ),
477
- /* @__PURE__ */ jsxs(StyledGridContent, { children: [
478
- /* @__PURE__ */ jsx(StyledBodyContentLeft, { children: /* @__PURE__ */ jsx(Grid, { state }) }),
479
- visibleDuration.months === 2 && /* @__PURE__ */ jsx(StyledBodyContentRight, { children: /* @__PURE__ */ jsx(Grid, { state, offset: { months: 1 } }) })
480
- ] })
481
- ]
482
- }
483
- );
505
+ return /* @__PURE__ */ jsxs(StyledCalendarBody, { ...calendarProps, ref: forwardRef, children: [
506
+ /* @__PURE__ */ jsx(PredefinedRanges, {}),
507
+ /* @__PURE__ */ jsxs(Flex, { direction: "column", children: [
508
+ /* @__PURE__ */ jsx(
509
+ Header,
510
+ {
511
+ state,
512
+ prevButtonProps,
513
+ nextButtonProps,
514
+ visibleMonths: visibleDuration.months
515
+ }
516
+ ),
517
+ /* @__PURE__ */ jsxs(StyledGridContent, { children: [
518
+ /* @__PURE__ */ jsx(StyledBodyContentLeft, { children: /* @__PURE__ */ jsx(Grid, { state }) }),
519
+ visibleDuration.months === 2 && /* @__PURE__ */ jsx(StyledBodyContentRight, { children: /* @__PURE__ */ jsx(Grid, { state, offset: { months: 1 } }) })
520
+ ] })
521
+ ] })
522
+ ] });
484
523
  }
485
524
  );
486
525
  const DatePickerContent = () => {
@@ -705,6 +744,7 @@ const Calendar = React.forwardRef(
705
744
  disabled,
706
745
  "aria-disabled": ariaDisabled,
707
746
  children,
747
+ predefinedValues,
708
748
  ...props
709
749
  }, forwardRef) => {
710
750
  const providerProps = {
@@ -720,7 +760,8 @@ const Calendar = React.forwardRef(
720
760
  onClose,
721
761
  onOpen,
722
762
  disabled,
723
- ariaDisabled
763
+ ariaDisabled,
764
+ predefinedValues
724
765
  };
725
766
  return /* @__PURE__ */ jsx(I18nProvider, { locale, children: /* @__PURE__ */ jsx(CalendarProvider, { ...providerProps, children: /* @__PURE__ */ jsx(Root, { ...props, ref: forwardRef, children }) }) });
726
767
  }
@@ -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/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 ...textFieldStyles.base.placeholder.old,\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\n '&:disabled, &[aria-disabled=\"true\"]': {\n ...textFieldStyles.variants.disabled,\n color: '$text-neutrals-disabled',\n },\n\n variants: {\n v1: {\n true: {\n ...textFieldStyles.v1.idle,\n ...focus.css(textFieldStyles.v1.focused),\n },\n false: {\n ...focus.css(textFieldStyles.variants.focused),\n },\n },\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 { PropsWithChildren } 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\ninterface SharedProps {\n picker: 'single' | 'range'\n minDate?: DateValue\n maxDate?: DateValue\n disabled?: boolean\n ariaDisabled?: Booleanish\n}\n\ninterface CalendarContextProps<T extends DateRange | DateValue>\n extends SharedProps {\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 {\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}: PropsWithChildren<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 { useNewDesignLanguage } from '@mirohq/design-system-experiments'\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, 'v1' | '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 [v1] = useNewDesignLanguage()\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 v1={v1}\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 weight='thin' 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})\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))\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: React.FC<IHeader> = ({\n state,\n prevButtonProps,\n nextButtonProps,\n visibleMonths,\n}) => {\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-v1',\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: React.FC<CellProps> = props => {\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 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'\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\n direction='column'\n {...calendarProps}\n ref={forwardRef}\n >\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 </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) {\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})\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})\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 {\n ElementRef,\n ForwardRefExoticComponent,\n PropsWithChildren,\n} 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'\nimport {\n FloatingLabel,\n useFormFieldContext,\n} from '@mirohq/design-system-base-form'\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\nexport type CalendarProps = (\n | CalendarDatePickerProps\n | CalendarRangePickerProps\n) & {\n /**\n * The locale for Calendar internationalization\n */\n locale?: string\n}\n\ntype CalendarRootProps = PropsWithChildren<{}>\n\nconst Root = React.forwardRef<\n ElementRef<typeof StyledCalendar>,\n CalendarRootProps\n>(({ children, ...restProps }, forwardRef) => {\n const { open, setOpen } = useCalendarContext()\n\n const { label, isFloatingLabel } = useFormFieldContext<HTMLSelectElement>()\n\n return (\n <RadixPopover.Root open={open} onOpenChange={setOpen}>\n <StyledCalendar ref={forwardRef} {...restProps}>\n {label !== null && isFloatingLabel && (\n <FloatingLabel floating size='medium'>\n {label}\n </FloatingLabel>\n )}\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 ...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 } as CalendarProviderProps<DateValue> | CalendarProviderProps<DateRange>\n\n return (\n <I18nProvider locale={locale}>\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 ...textFieldStyles.base.placeholder.old,\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\n '&:disabled, &[aria-disabled=\"true\"]': {\n ...textFieldStyles.variants.disabled,\n color: '$text-neutrals-disabled',\n },\n\n variants: {\n v1: {\n true: {\n ...textFieldStyles.v1.idle,\n ...focus.css(textFieldStyles.v1.focused),\n },\n false: {\n ...focus.css(textFieldStyles.variants.focused),\n },\n },\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 { PropsWithChildren } 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 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}: PropsWithChildren<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 { useNewDesignLanguage } from '@mirohq/design-system-experiments'\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, 'v1' | '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 [v1] = useNewDesignLanguage()\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 v1={v1}\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 weight='thin' 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))\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: React.FC<IHeader> = ({\n state,\n prevButtonProps,\n nextButtonProps,\n visibleMonths,\n}) => {\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-v1',\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: React.FC<CellProps> = props => {\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) {\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})\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})\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 {\n ElementRef,\n ForwardRefExoticComponent,\n PropsWithChildren,\n} 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'\nimport {\n FloatingLabel,\n useFormFieldContext,\n} from '@mirohq/design-system-base-form'\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\nexport type CalendarProps = (\n | CalendarDatePickerProps\n | CalendarRangePickerProps\n) & {\n /**\n * The locale for Calendar internationalization\n */\n locale?: string\n}\n\ntype CalendarRootProps = PropsWithChildren<{}>\n\nconst Root = React.forwardRef<\n ElementRef<typeof StyledCalendar>,\n CalendarRootProps\n>(({ children, ...restProps }, forwardRef) => {\n const { open, setOpen } = useCalendarContext()\n\n const { label, isFloatingLabel } = useFormFieldContext<HTMLSelectElement>()\n\n return (\n <RadixPopover.Root open={open} onOpenChange={setOpen}>\n <StyledCalendar ref={forwardRef} {...restProps}>\n {label !== null && isFloatingLabel && (\n <FloatingLabel floating size='medium'>\n {label}\n </FloatingLabel>\n )}\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 return (\n <I18nProvider locale={locale}>\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
@@ -15,6 +15,11 @@ import { BaseButtonProps } from '@mirohq/design-system-base-button';
15
15
  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">>, {}, {}>;
16
16
  type StyledCalendarProps = ComponentPropsWithRef<typeof StyledCalendar>;
17
17
 
18
+ interface PredefinedValue<T extends DateRange | DateValue> {
19
+ id: string;
20
+ label: string;
21
+ value: T;
22
+ }
18
23
  interface CalendarBaseProps extends Omit<StyledCalendarProps, 'defaultValue' | 'onChange'> {
19
24
  /**
20
25
  * The number of months visible on page
@@ -79,6 +84,10 @@ interface CalendarDatePickerProps extends CalendarBaseProps {
79
84
  * Event handler called when the date value changes
80
85
  */
81
86
  onValueChange?: (value: DateValue | undefined) => void;
87
+ /**
88
+ * Set of predefined dates
89
+ */
90
+ predefinedValues?: Array<PredefinedValue<DateValue>>;
82
91
  }
83
92
  interface CalendarRangePickerProps extends CalendarBaseProps {
84
93
  /**
@@ -98,6 +107,10 @@ interface CalendarRangePickerProps extends CalendarBaseProps {
98
107
  * Event handler called when the date value changes
99
108
  */
100
109
  onValueChange?: (value: DateRange | undefined) => void;
110
+ /**
111
+ * Set of predefined ranges
112
+ */
113
+ predefinedValues?: Array<PredefinedValue<DateRange>>;
101
114
  }
102
115
  type PointerDownOutsideEvent = CustomEvent<{
103
116
  originalEvent: PointerEvent;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mirohq/design-system-calendar",
3
- "version": "1.2.1",
3
+ "version": "1.2.3-sync-design-tokens.0",
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": "^0.5.0",
38
- "@mirohq/design-system-base-form": "^0.3.4",
39
- "@mirohq/design-system-base-text-field": "^0.2.3",
37
+ "@mirohq/design-system-base-button": "^0.5.1-sync-design-tokens.0",
38
+ "@mirohq/design-system-base-form": "^0.3.5-sync-design-tokens.0",
39
+ "@mirohq/design-system-button": "^4.2.8-sync-design-tokens.0",
40
+ "@mirohq/design-system-base-text-field": "^0.2.4-sync-design-tokens.0",
40
41
  "@mirohq/design-system-experiments": "^0.2.0",
41
- "@mirohq/design-system-flex": "^2.1.66",
42
- "@mirohq/design-system-button": "^4.2.7",
43
- "@mirohq/design-system-icon-button": "^3.2.8",
44
- "@mirohq/design-system-icons": "^0.65.0",
42
+ "@mirohq/design-system-flex": "^2.1.67-sync-design-tokens.0",
43
+ "@mirohq/design-system-icon-button": "^3.2.9-sync-design-tokens.0",
44
+ "@mirohq/design-system-icons": "^0.65.1-sync-design-tokens.0",
45
45
  "@mirohq/design-system-primitive": "^1.1.2",
46
- "@mirohq/design-system-stitches": "^2.6.30",
47
- "@mirohq/design-system-styles": "^1.2.30",
48
- "@mirohq/design-system-tooltip": "^3.5.10",
46
+ "@mirohq/design-system-stitches": "^2.6.31-sync-design-tokens.0",
47
+ "@mirohq/design-system-styles": "^1.2.31-sync-design-tokens.0",
48
+ "@mirohq/design-system-tooltip": "^3.5.11-sync-design-tokens.0",
49
49
  "@mirohq/design-system-types": "^0.10.0",
50
- "@mirohq/design-system-typography": "^0.6.8",
50
+ "@mirohq/design-system-typography": "^0.6.9-sync-design-tokens.0",
51
51
  "@mirohq/design-system-utils": "^0.15.5"
52
52
  },
53
53
  "scripts": {