@mirohq/design-system-calendar 2.1.20-fix-button-types.2 → 2.2.0-fix-stitches-types.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
@@ -1,7 +1,5 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
3
  var jsxRuntime = require('react/jsx-runtime');
6
4
  var React = require('react');
7
5
  var reactAria = require('react-aria');
@@ -23,10 +21,7 @@ var designSystemTypography = require('@mirohq/design-system-typography');
23
21
  var designSystemIconButton = require('@mirohq/design-system-icon-button');
24
22
  var designSystemButton = require('@mirohq/design-system-button');
25
23
 
26
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
27
-
28
- function _interopNamespace(e) {
29
- if (e && e.__esModule) return e;
24
+ function _interopNamespaceDefault(e) {
30
25
  var n = Object.create(null);
31
26
  if (e) {
32
27
  Object.keys(e).forEach(function (k) {
@@ -39,12 +34,11 @@ function _interopNamespace(e) {
39
34
  }
40
35
  });
41
36
  }
42
- n["default"] = e;
37
+ n.default = e;
43
38
  return Object.freeze(n);
44
39
  }
45
40
 
46
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
47
- var RadixPopover__namespace = /*#__PURE__*/_interopNamespace(RadixPopover);
41
+ var RadixPopover__namespace = /*#__PURE__*/_interopNamespaceDefault(RadixPopover);
48
42
 
49
43
  const StyledPlaceholder = designSystemStitches.styled(designSystemPrimitive.Primitive.span, {
50
44
  color: designSystemBaseTextField.textFieldStyles.base.placeholder.color,
@@ -107,7 +101,7 @@ const StyledClearAction = designSystemStitches.styled(designSystemBaseButton.Bas
107
101
  }
108
102
  });
109
103
 
110
- const ClearAction = React__default["default"].forwardRef(({ "aria-label": ariaLabel, label, ...restProps }, forwardRef) => /* @__PURE__ */ jsxRuntime.jsxs(designSystemTooltip.Tooltip, { children: [
104
+ const ClearAction = React.forwardRef(({ "aria-label": ariaLabel, label, ...restProps }, forwardRef) => /* @__PURE__ */ jsxRuntime.jsxs(designSystemTooltip.Tooltip, { children: [
111
105
  /* @__PURE__ */ jsxRuntime.jsx(designSystemTooltip.Tooltip.Trigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
112
106
  StyledClearAction,
113
107
  {
@@ -195,7 +189,7 @@ const CalendarProvider = ({
195
189
  };
196
190
  const useCalendarContext = () => React.useContext(CalendarContext);
197
191
 
198
- const Trigger = React__default["default"].forwardRef(
192
+ const Trigger = React.forwardRef(
199
193
  ({
200
194
  id,
201
195
  "aria-describedby": ariaDescribedBy,
@@ -289,7 +283,7 @@ const StyledHeader = designSystemStitches.styled(designSystemFlex.Flex, {
289
283
  justifyContent: "space-between"
290
284
  });
291
285
 
292
- const HeaderButton = React__default["default"].forwardRef(({ isDisabled, children, ...restProps }, forwardRef) => /* @__PURE__ */ jsxRuntime.jsx(
286
+ const HeaderButton = React.forwardRef(({ isDisabled, children, ...restProps }, forwardRef) => /* @__PURE__ */ jsxRuntime.jsx(
293
287
  designSystemIconButton.IconButton,
294
288
  {
295
289
  ...restProps,
@@ -445,7 +439,7 @@ const StyledDays = designSystemStitches.styled(designSystemPrimitive.Primitive.t
445
439
  paddingTop: "$50"
446
440
  });
447
441
 
448
- const Grid = React__default["default"].forwardRef(
442
+ const Grid = React.forwardRef(
449
443
  (props, forwardRef) => {
450
444
  const { locale } = reactAria.useLocale();
451
445
  const { state, offset = {} } = props;
@@ -516,7 +510,7 @@ const PredefinedRanges = () => {
516
510
  };
517
511
 
518
512
  const CONTENT_OFFSET = parseInt(designSystemStitches.theme.space[50]);
519
- const SharedContent = React__default["default"].forwardRef(
513
+ const SharedContent = React.forwardRef(
520
514
  ({ calendarProps, prevButtonProps, nextButtonProps, state }, forwardRef) => {
521
515
  const { visibleDuration } = useCalendarContext();
522
516
  return /* @__PURE__ */ jsxRuntime.jsxs(StyledCalendarBody, { ...calendarProps, ref: forwardRef, children: [
@@ -608,7 +602,7 @@ const RangePickerContent = () => {
608
602
  }
609
603
  );
610
604
  };
611
- const Content = React__default["default"].forwardRef(
605
+ const Content = React.forwardRef(
612
606
  ({
613
607
  side = "bottom",
614
608
  sideOffset = CONTENT_OFFSET,
@@ -673,7 +667,7 @@ function formatValue(value, formatter, timeZone) {
673
667
  }
674
668
  return formatDate(value, formatter, timeZone);
675
669
  }
676
- const Value = React__default["default"].forwardRef(({ format = DEFAULT_FORMAT, ...restProps }, forwardRef) => {
670
+ const Value = React.forwardRef(({ format = DEFAULT_FORMAT, ...restProps }, forwardRef) => {
677
671
  const { value } = useCalendarContext();
678
672
  const timeZone = React.useMemo(date.getLocalTimeZone, [format]);
679
673
  const formatWithTimeZone = React.useMemo(
@@ -685,7 +679,7 @@ const Value = React__default["default"].forwardRef(({ format = DEFAULT_FORMAT, .
685
679
  return /* @__PURE__ */ jsxRuntime.jsx(StyledValue, { ref: forwardRef, ...restProps, children: valueToDisplay });
686
680
  });
687
681
 
688
- const ClearButton = React__default["default"].forwardRef(({ onClear, children, ...restProps }, forwardRef) => {
682
+ const ClearButton = React.forwardRef(({ onClear, children, ...restProps }, forwardRef) => {
689
683
  const { value, setValue } = useCalendarContext();
690
684
  const onClearHandler = () => {
691
685
  setValue(void 0);
@@ -707,7 +701,7 @@ const ClearButton = React__default["default"].forwardRef(({ onClear, children, .
707
701
  );
708
702
  });
709
703
 
710
- const SaveButton = React__default["default"].forwardRef(({ onSave, children, ...restProps }, forwardRef) => {
704
+ const SaveButton = React.forwardRef(({ onSave, children, ...restProps }, forwardRef) => {
711
705
  const { setImmediateSave, onSaveClick } = useCalendarContext();
712
706
  React.useEffect(() => {
713
707
  setImmediateSave(true);
@@ -753,11 +747,11 @@ function getValidLocale(locale) {
753
747
  }
754
748
  }
755
749
  }
756
- const Root = React__default["default"].forwardRef(({ children, ...restProps }, forwardRef) => {
750
+ const Root = React.forwardRef(({ children, ...restProps }, forwardRef) => {
757
751
  const { open, setOpen } = useCalendarContext();
758
752
  return /* @__PURE__ */ jsxRuntime.jsx(RadixPopover__namespace.Root, { open, onOpenChange: setOpen, children: /* @__PURE__ */ jsxRuntime.jsx(StyledCalendar, { ref: forwardRef, ...restProps, children }) });
759
753
  });
760
- const Calendar = React__default["default"].forwardRef(
754
+ const Calendar = React.forwardRef(
761
755
  ({
762
756
  picker,
763
757
  defaultValue,
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sources":["../src/partials/trigger.styled.tsx","../src/partials/clear-action.styled.tsx","../src/partials/clear-action.tsx","../src/use-calendar-context.tsx","../src/partials/trigger.tsx","../src/partials/content.styled.tsx","../src/partials/header.styled.tsx","../src/partials/header-button.tsx","../src/partials/header.tsx","../src/partials/cell.styled.tsx","../src/partials/cell.tsx","../src/partials/grid.styled.tsx","../src/partials/grid.tsx","../src/partials/predefined-ranges.styled.tsx","../src/partials/predefined-ranges.tsx","../src/partials/content.tsx","../src/partials/value.styled.tsx","../src/partials/value.tsx","../src/partials/clear-button.tsx","../src/partials/save-button.tsx","../src/calendar.styled.tsx","../src/calendar.tsx"],"sourcesContent":["import { Primitive } from '@mirohq/design-system-primitive'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { textFieldStyles } from '@mirohq/design-system-base-text-field'\nimport { focus } from '@mirohq/design-system-styles'\nimport { BaseButton } from '@mirohq/design-system-base-button'\n\nexport const StyledPlaceholder = styled(Primitive.span, {\n color: textFieldStyles.base.placeholder.color,\n padding: '0 $50',\n})\n\nexport const StyledValue = styled(Primitive.span, {\n padding: '0 $50',\n})\n\nexport const StyledIconContainer = styled(Primitive.span, {\n display: 'flex',\n justifyContent: 'center',\n padding: '6px',\n color: '$text-neutrals-subtle',\n})\n\nexport const StyledTrigger = styled(BaseButton, {\n display: 'inline-flex',\n gap: '$50',\n justifyContent: 'space-between',\n alignItems: 'center',\n height: '$10',\n padding: '0 $100',\n minWidth: '230px',\n\n ...textFieldStyles.variants.idle,\n\n _hover: textFieldStyles.variants.hovered,\n ...focus.css({\n boxShadow: '$focus',\n }),\n\n '&:disabled, &[aria-disabled=\"true\"]': {\n ...textFieldStyles.variants.disabled,\n color: '$text-neutrals-disabled',\n },\n\n variants: {\n withClearButton: {\n true: {\n paddingRight: 'calc($100 + $400)', // initial left padding + clear button width + gap\n },\n },\n },\n})\n\nexport const StyledCustomTrigger = styled(BaseButton, {\n width: '100%',\n height: 'unset',\n padding: '0',\n backgroundColor: '$transparent',\n border: 'none',\n cursor: 'pointer',\n})\n\nexport type StyledTriggerProps = StrictComponentProps<typeof StyledTrigger>\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { ComponentPropsWithRef } from 'react'\nimport { actionButtonStyles } from '@mirohq/design-system-base-text-field'\nimport { BaseButton } from '@mirohq/design-system-base-button'\n\nexport const StyledClearAction = styled(BaseButton, {\n position: 'absolute',\n top: 0,\n bottom: 0,\n right: 'calc($100 + 1px)', // to compensate border width\n margin: 'auto',\n\n ...actionButtonStyles,\n\n '&:disabled, &[aria-disabled=\"true\"]': {\n color: '$icon-neutrals-disabled',\n },\n})\n\nexport type StyledClearActionProps = ComponentPropsWithRef<\n typeof StyledClearAction\n>\n","import type { ElementRef } from 'react'\nimport React from 'react'\nimport { IconCross } from '@mirohq/design-system-icons'\nimport { Tooltip } from '@mirohq/design-system-tooltip'\n\nimport type { StyledClearActionProps } from './clear-action.styled'\nimport { StyledClearAction } from './clear-action.styled'\n\ninterface ClearActionProps extends Omit<StyledClearActionProps, 'children'> {\n label: string\n}\n\nexport const ClearAction = React.forwardRef<\n ElementRef<typeof StyledClearAction>,\n ClearActionProps\n>(({ 'aria-label': ariaLabel, label, ...restProps }, forwardRef) => (\n <Tooltip>\n <Tooltip.Trigger asChild>\n <StyledClearAction\n {...restProps}\n ref={forwardRef}\n aria-label={ariaLabel ?? label}\n >\n <IconCross />\n </StyledClearAction>\n </Tooltip.Trigger>\n <Tooltip.Content>{label}</Tooltip.Content>\n </Tooltip>\n))\n","import React, {\n createContext,\n useCallback,\n useContext,\n useMemo,\n useState,\n} from 'react'\nimport type { DateRange, DateValue } from 'react-aria'\nimport type { DateDuration } from '@internationalized/date'\nimport { useControllableState } from '@radix-ui/react-use-controllable-state'\nimport type { Booleanish } from '@mirohq/design-system-types'\n\nimport type { PredefinedValue } from './types'\n\ninterface SharedProps<T extends DateRange | DateValue> {\n picker: 'single' | 'range'\n minDate?: DateValue\n maxDate?: DateValue\n disabled?: boolean\n ariaDisabled?: Booleanish\n predefinedValues?: Array<PredefinedValue<T>>\n}\n\ninterface CalendarContextProps<T extends DateRange | DateValue>\n extends SharedProps<T> {\n visibleDuration: DateDuration\n\n value?: T\n setValue: React.Dispatch<React.SetStateAction<T | undefined>>\n\n open: boolean\n setOpen: React.Dispatch<React.SetStateAction<boolean | undefined>>\n\n setImmediateSave: React.Dispatch<React.SetStateAction<boolean>>\n\n calendarValue?: T | null\n calendarDefaultValue?: T | null\n onCalendarDateClick: (date: T) => void\n onSaveClick: () => void\n}\n\nexport interface CalendarProviderProps<T extends DateRange | DateValue>\n extends SharedProps<T> {\n children?: React.ReactNode\n visibleMonths?: number\n\n defaultValue?: T\n value?: T\n onValueChange?: (value: T | undefined) => void\n\n defaultOpen?: boolean\n open?: boolean\n onOpen?: () => void\n onClose?: () => void\n}\n\nconst CalendarContext = createContext<CalendarContextProps<any>>({} as any)\n\nexport const CalendarProvider = <T extends DateRange | DateValue>({\n children,\n visibleMonths = 1,\n value: valueProp,\n defaultValue: defaultValueProp,\n onValueChange,\n open: openProp,\n defaultOpen: defaultOpenProp,\n onOpen,\n onClose,\n ...restProps\n}: CalendarProviderProps<T>): JSX.Element => {\n const [immediateSave, setImmediateSave] = useState(false)\n const [internalCalendarValue, setInternalCalendarValue] = useState<\n T | undefined\n >(valueProp ?? defaultValueProp)\n\n const visibleDuration = useMemo(\n () => ({\n months: visibleMonths,\n }),\n [visibleMonths]\n )\n\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValueProp,\n onChange: onValueChange,\n })\n\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpenProp,\n onChange: state => {\n if (state) {\n onOpen?.()\n } else {\n onClose?.()\n }\n },\n })\n\n const onCalendarDateClick = useCallback(\n (value: T): void => {\n if (immediateSave) {\n setInternalCalendarValue(value)\n } else {\n setValue(value)\n setOpen(false)\n }\n },\n [setValue, setOpen, immediateSave, setInternalCalendarValue]\n )\n\n const onSaveClick = (): void => {\n setValue(internalCalendarValue)\n setOpen(false)\n }\n\n return (\n <CalendarContext.Provider\n value={{\n ...restProps,\n visibleDuration,\n value: value,\n setValue,\n open,\n setOpen,\n onCalendarDateClick,\n setImmediateSave,\n onSaveClick,\n // value should not be undefined otherwise react-aria calendar will complain in console\n calendarValue: (immediateSave ? internalCalendarValue : value) ?? null,\n }}\n >\n {children}\n </CalendarContext.Provider>\n )\n}\n\nexport const useCalendarContext = <\n T extends DateRange | DateValue\n>(): CalendarContextProps<T> => useContext(CalendarContext)\n","import type { ElementRef } from 'react'\nimport React from 'react'\nimport { IconCalendarBlank } from '@mirohq/design-system-icons'\nimport { useFormFieldContext } from '@mirohq/design-system-base-form'\nimport { Trigger as RadixTrigger } from '@radix-ui/react-popover'\nimport { booleanify, stringAttrValue } from '@mirohq/design-system-utils'\n\nimport type { StyledTriggerProps } from './trigger.styled'\nimport {\n StyledIconContainer,\n StyledCustomTrigger,\n StyledPlaceholder,\n StyledTrigger,\n StyledValue,\n} from './trigger.styled'\nimport { ClearAction } from './clear-action'\nimport { useCalendarContext } from '../use-calendar-context'\n\ntype TriggerSharedProps = Omit<StyledTriggerProps, 'withClearButton'> & {\n /**\n * The content that will be rendered inside the Calendar trigger when there is no value\n */\n placeholder?: string\n\n /**\n * Show a button to clear the Calendar value\n * @default false\n */\n clearable?: boolean\n\n /**\n * The content\n */\n children: React.ReactNode\n}\n\nexport type TriggerProps = TriggerSharedProps &\n (\n | { clearable: false; clearLabel?: never; onClear?: never }\n | {\n /**\n * Event handler called when the calendar is cleared\n */\n onClear?: () => void\n\n /**\n * The label text for Trigger's action button when Combobox has values selected. Will be rendered in a Tooltip.\n */\n clearLabel: string\n }\n )\n\nexport const Trigger = React.forwardRef<ElementRef<'button'>, TriggerProps>(\n (\n {\n id,\n 'aria-describedby': ariaDescribedBy,\n placeholder,\n asChild = false,\n clearable = true,\n clearLabel,\n onClear,\n children,\n ...restProps\n },\n forwardRef\n ) => {\n const { value, setValue, disabled, ariaDisabled } = useCalendarContext()\n\n const { formElementId, ariaDescribedBy: formFieldContextDescribedBy } =\n useFormFieldContext()\n\n if (asChild) {\n return (\n <RadixTrigger ref={forwardRef} asChild>\n <StyledCustomTrigger asChild {...restProps}>\n {children}\n </StyledCustomTrigger>\n </RadixTrigger>\n )\n }\n\n const onClearHandler = (): void => {\n setValue(undefined)\n if (onClear !== undefined) {\n onClear()\n }\n }\n\n const clearButtonVisible =\n clearable && value != null && clearLabel !== undefined\n\n return (\n <>\n <RadixTrigger ref={forwardRef} asChild>\n <StyledTrigger\n id={id ?? formElementId}\n aria-describedby={stringAttrValue(\n ariaDescribedBy,\n formFieldContextDescribedBy\n )}\n withClearButton={clearButtonVisible}\n disabled={disabled}\n aria-disabled={ariaDisabled}\n {...restProps}\n >\n {value != null ? (\n <StyledValue>{children}</StyledValue>\n ) : (\n <StyledPlaceholder>{placeholder}</StyledPlaceholder>\n )}\n\n {!clearButtonVisible && (\n <StyledIconContainer>\n <IconCalendarBlank size='small' />\n </StyledIconContainer>\n )}\n </StyledTrigger>\n </RadixTrigger>\n {clearButtonVisible && (\n <ClearAction\n label={clearLabel}\n onPress={onClearHandler}\n disabled={disabled ?? booleanify(ariaDisabled)}\n />\n )}\n </>\n )\n }\n)\n","import type { ComponentPropsWithRef } from 'react'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { Flex } from '@mirohq/design-system-flex'\nimport { Content as RadixContent } from '@radix-ui/react-popover'\n\nexport const StyledContent = styled(RadixContent, {\n zIndex: '$calendar',\n background: '$background-neutrals',\n borderRadius: '$100',\n boxShadow: '$100',\n})\n\nexport const StyledCalendarBody = styled(Flex, {\n padding: '$200',\n gap: '$200',\n})\n\nexport const StyledGridContent = styled(Flex, {})\n\nexport const StyledBodyContentLeft = styled(Primitive.div, {})\n\nexport const StyledBodyContentRight = styled(Primitive.div, {\n paddingLeft: '$200',\n})\n\nexport const StyledClearContent = styled(Primitive.div, {\n display: 'flex',\n gap: '$100',\n padding: '$200',\n borderTop: '1px solid $border-neutrals',\n})\n\nexport type StyledContentProps = ComponentPropsWithRef<typeof StyledContent>\n","import { styled } from '@mirohq/design-system-stitches'\nimport { Flex } from '@mirohq/design-system-flex'\nimport { Heading } from '@mirohq/design-system-typography'\n\nexport const StyledHeaderTitle = styled(Heading, {\n margin: 0,\n flex: '2',\n textAlign: 'center',\n})\n\nexport const StyledHeaderPlaceholder = styled('div', {\n height: '$8',\n // to compensate icon buttons' width and space between 2 calendars\n width: 'calc($8 * 2 + $space$200)',\n})\n\nexport const StyledHeader = styled(Flex, {\n color: '$text-neutrals',\n height: '$8',\n alignItems: 'center',\n justifyContent: 'space-between',\n})\n","import type { ElementRef } from 'react'\nimport React from 'react'\nimport type { IconButtonProps } from '@mirohq/design-system-icon-button'\nimport { IconButton } from '@mirohq/design-system-icon-button'\n\nexport type HeaderButtonProps = IconButtonProps & {\n onFocus?: () => void\n onPress?: () => void\n isDisabled?: boolean // name comes from react-aria\n 'aria-label': string\n}\n\nexport const HeaderButton = React.forwardRef<\n ElementRef<'button'>,\n HeaderButtonProps\n>(({ isDisabled, children, ...restProps }, forwardRef) => (\n <IconButton\n {...restProps}\n size='medium'\n disabled={isDisabled}\n ref={forwardRef}\n >\n {children}\n </IconButton>\n)) as React.ForwardRefExoticComponent<HeaderButtonProps>\n","import React from 'react'\nimport { useDateFormatter } from 'react-aria'\nimport type { CalendarState, RangeCalendarState } from 'react-stately'\nimport { IconChevronLeft, IconChevronRight } from '@mirohq/design-system-icons'\n\nimport {\n StyledHeaderPlaceholder,\n StyledHeader,\n StyledHeaderTitle,\n} from './header.styled'\nimport type { HeaderButtonProps } from './header-button'\nimport { HeaderButton } from './header-button'\n\ninterface IHeader {\n state: RangeCalendarState | CalendarState\n prevButtonProps: HeaderButtonProps\n nextButtonProps: HeaderButtonProps\n visibleMonths?: number\n}\n\nexport const Header = ({\n state,\n prevButtonProps,\n nextButtonProps,\n visibleMonths,\n}: IHeader): React.ReactNode => {\n const monthDateFormatter = useDateFormatter({\n month: 'long',\n year: 'numeric',\n timeZone: state.timeZone,\n })\n\n return (\n <StyledHeader>\n <HeaderButton {...prevButtonProps}>\n <IconChevronLeft />\n </HeaderButton>\n <StyledHeaderTitle level={2} styledAs='h3'>\n {monthDateFormatter.format(\n state.visibleRange.start.toDate(state.timeZone)\n )}\n </StyledHeaderTitle>\n {visibleMonths === 2 && (\n <>\n <StyledHeaderPlaceholder />\n <StyledHeaderTitle level={2} styledAs='h3'>\n {monthDateFormatter.format(\n state.visibleRange.start.add({ months: 1 }).toDate(state.timeZone)\n )}\n </StyledHeaderTitle>\n </>\n )}\n <HeaderButton {...nextButtonProps}>\n <IconChevronRight />\n </HeaderButton>\n </StyledHeader>\n )\n}\n","import type { ComponentPropsWithRef } from 'react'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { focus } from '@mirohq/design-system-styles'\n\nexport const StyledCell = styled(Primitive.td, {\n square: '$10',\n marginTop: '$50',\n position: 'relative',\n})\n\nexport const StyledCellContent = styled(Primitive.div, {\n cursor: 'pointer',\n square: '$10',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: '$50',\n color: '$text-neutrals',\n\n ...focus.css({\n top: '0',\n left: '0',\n position: 'absolute',\n zIndex: '1',\n boxShadow: '$focus',\n outline: '1px solid transparent',\n }),\n\n '&[aria-disabled=\"true\"]': {\n textDecoration: 'line-through',\n color: '$text-neutrals-disabled',\n cursor: 'default',\n },\n\n '&:not([aria-disabled=\"true\"])': {\n _hover: {\n backgroundColor: '$background-neutrals-subtle-hover',\n color: '$text-neutrals',\n },\n },\n\n variants: {\n today: {\n true: {\n backgroundColor: '$background-neutrals-subtle-hover',\n color: '$text-neutrals',\n },\n },\n selected: {\n true: {\n backgroundColor: '$background-primary-prominent-selected',\n color: '$text-neutrals-inverted',\n\n '&:not([aria-disabled=\"true\"])': {\n _hover: {\n backgroundColor: '$background-primary-prominent-hover',\n color: '$text-neutrals-inverted',\n },\n },\n },\n },\n range: {\n middle: {\n backgroundColor: '$background-primary-subtle-selected',\n color: '$text-neutrals',\n borderRadius: 0,\n\n '&:not([aria-disabled=\"true\"])': {\n _hover: {\n backgroundColor: '$background-primary-subtle-hover',\n },\n },\n },\n start: {\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n },\n end: {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n },\n },\n hidden: {\n true: {\n display: 'none',\n },\n },\n },\n})\n\nexport type StyledCellProps = ComponentPropsWithRef<typeof StyledCell>\n","import React, { useRef } from 'react'\nimport { useCalendarCell, useFocusRing, mergeProps } from 'react-aria'\nimport type { CalendarDate } from '@internationalized/date'\nimport {\n isSameDay,\n isSameMonth,\n isToday,\n getLocalTimeZone,\n} from '@internationalized/date'\nimport type { CalendarState, RangeCalendarState } from 'react-stately'\n\nimport type { StyledCellProps } from './cell.styled'\nimport { StyledCell, StyledCellContent } from './cell.styled'\n\nexport interface CellProps extends StyledCellProps {\n state: RangeCalendarState | CalendarState\n date: CalendarDate\n currentMonth: CalendarDate\n}\n\nexport const Cell = (props: CellProps): React.ReactNode => {\n let { state, date, currentMonth } = props\n const ref = useRef(null)\n const { cellProps, buttonProps, isSelected, formattedDate } = useCalendarCell(\n { date },\n state,\n ref\n )\n\n const isOutsideMonth = !isSameMonth(currentMonth, date)\n\n state = state as RangeCalendarState\n\n // The start and end date of the selected range will have\n // an emphasized appearance.\n const isSelectionStart =\n state.highlightedRange !== undefined && state.highlightedRange !== null\n ? isSameDay(date, state.highlightedRange.start)\n : isSelected\n const isSelectionEnd =\n state.highlightedRange !== undefined && state.highlightedRange !== null\n ? isSameDay(date, state.highlightedRange.end)\n : isSelected\n\n const { focusProps } = useFocusRing()\n\n // when it's both start and end, it's single date\n const isRange = isSelected && (!isSelectionStart || !isSelectionEnd)\n\n const rangeVariant = isRange\n ? isSelectionStart\n ? 'start'\n : isSelectionEnd\n ? 'end'\n : 'middle'\n : undefined\n\n return (\n <StyledCell {...cellProps}>\n <StyledCellContent\n {...mergeProps(buttonProps, focusProps)}\n ref={ref}\n selected={isSelected && (isSelectionStart || isSelectionEnd)}\n today={isToday(date, getLocalTimeZone())}\n range={rangeVariant}\n hidden={isOutsideMonth}\n >\n {formattedDate}\n </StyledCellContent>\n </StyledCell>\n )\n}\n","import type { ComponentPropsWithRef } from 'react'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\n\nexport const StyledGrid = styled(Primitive.table, {\n borderCollapse: 'separate',\n borderSpacing: ' 0 $50',\n})\n\nexport const StyledDays = styled(Primitive.th, {\n height: '$10',\n color: '$text-neutrals-subtle',\n fontWeight: '$regular',\n paddingTop: '$50',\n})\n\nexport type StyledGridProps = ComponentPropsWithRef<typeof StyledGrid>\n","import type { ElementRef } from 'react'\nimport React from 'react'\nimport type { CalendarDate, DateDuration } from '@internationalized/date'\nimport { getWeeksInMonth } from '@internationalized/date'\nimport type { AriaCalendarGridProps, DateRange } from 'react-aria'\nimport { useLocale, useCalendarGrid } from 'react-aria'\nimport type { CalendarState, RangeCalendarState } from 'react-stately'\n\nimport { Cell } from './cell'\nimport type { StyledGridProps } from './grid.styled'\nimport { StyledDays, StyledGrid } from './grid.styled'\n\nexport interface GridProps extends Omit<StyledGridProps, 'onChange'> {\n state: RangeCalendarState | CalendarState\n offset?: DateDuration\n onChange?: (value: DateRange) => void\n}\n\nexport const Grid = React.forwardRef<ElementRef<typeof StyledGrid>, GridProps>(\n (props, forwardRef) => {\n const { locale } = useLocale()\n const { state, offset = {} } = props\n const startDate: CalendarDate = state.visibleRange.start.add(offset)\n const { gridProps, headerProps, weekDays } = useCalendarGrid(\n props as AriaCalendarGridProps,\n state\n )\n\n // Get the number of weeks in the month so we can render the proper number of rows.\n const weeksInMonth = getWeeksInMonth(startDate, locale)\n\n return (\n <StyledGrid ref={forwardRef} {...gridProps} cellPadding='0'>\n <thead {...headerProps}>\n <tr>\n {weekDays.map((day, i) => (\n <StyledDays key={i}>\n <div>{day}</div>\n </StyledDays>\n ))}\n </tr>\n </thead>\n <tbody>\n {Array.from(Array(weeksInMonth).keys()).map(weekIndex => (\n <tr key={weekIndex}>\n {state\n .getDatesInWeek(weekIndex, startDate)\n .map((date: CalendarDate | null, i: number) =>\n date !== null ? (\n <Cell\n key={i}\n state={state}\n date={date}\n currentMonth={startDate}\n />\n ) : (\n <td key={i} />\n )\n )}\n </tr>\n ))}\n </tbody>\n </StyledGrid>\n )\n }\n)\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\n\nexport const StyledPredefinedRanges = styled(Primitive.div, {\n display: 'flex',\n flexDirection: 'column',\n borderRight: '1px solid $border-neutrals',\n padding: '$300 $200 0 0',\n\n '& button': {\n backgroundColor: '$transparent',\n border: 'none',\n fontSize: '$200',\n padding: '0 0 0 $100',\n textAlign: 'left',\n lineHeight: '24px',\n color: '$text-neutrals',\n marginBottom: '$150',\n borderRadius: '$50',\n minWidth: '125px',\n cursor: 'pointer',\n\n '&:hover': {\n backgroundColor: '$background-primary-prominent-hover',\n color: '$text-primary-inverted',\n fontWeight: '600',\n },\n },\n})\n","import React from 'react'\nimport { Button } from '@mirohq/design-system-button'\nimport type { DateRange, DateValue } from 'react-aria'\n\nimport { StyledPredefinedRanges } from './predefined-ranges.styled'\nimport { useCalendarContext } from '../use-calendar-context'\n\nexport const PredefinedRanges = (): React.ReactElement | null => {\n const { predefinedValues, onCalendarDateClick } = useCalendarContext<\n DateRange | DateValue\n >()\n\n if (predefinedValues === undefined) {\n return null\n }\n\n return (\n <StyledPredefinedRanges>\n {predefinedValues.map(item => (\n <Button\n variant='ghost'\n size='medium'\n key={item.id}\n type='button'\n onClick={() => onCalendarDateClick(item.value)}\n >\n {item.label}\n </Button>\n ))}\n </StyledPredefinedRanges>\n )\n}\n","import type { ElementRef, ReactElement, ReactNode } from 'react'\nimport React, { useRef } from 'react'\nimport { useCalendarState, useRangeCalendarState } from 'react-stately'\nimport { useCalendar, useRangeCalendar, useLocale } from 'react-aria'\nimport { createCalendar } from '@internationalized/date'\nimport { Flex } from '@mirohq/design-system-flex'\nimport type { DateRange, DateValue, AriaButtonProps } from 'react-aria'\nimport type { DOMAttributes } from '@react-types/shared'\nimport type { CalendarState, RangeCalendarState } from 'react-stately'\nimport { theme } from '@mirohq/design-system-stitches'\n\nimport { useCalendarContext } from '../use-calendar-context'\nimport type { StyledContentProps } from './content.styled'\nimport {\n StyledContent,\n StyledClearContent,\n StyledCalendarBody,\n StyledBodyContentLeft,\n StyledBodyContentRight,\n StyledGridContent,\n} from './content.styled'\nimport { Header } from './header'\nimport { Grid } from './grid'\nimport type { Align, PointerDownOutsideEvent, Side, Sticky } from '../types'\nimport type { HeaderButtonProps } from './header-button'\nimport { PredefinedRanges } from './predefined-ranges'\n\nexport const CONTENT_OFFSET = parseInt(theme.space[50])\n\nexport type ContentProps = StyledContentProps & {\n /**\n * Calendar's content.\n */\n children?: ReactNode\n\n /**\n * Event handler called when focus moves to the trigger after closing. It can\n * be prevented by calling event.preventDefault.\n */\n onCloseAutoFocus?: (event: Event) => void\n\n /**\n * Event handler called when focus moves to the trigger after closing. It can\n * be prevented by calling event.preventDefault.\n */\n onEscapeKeyDown?: (event: KeyboardEvent) => void\n\n /**\n * Event handler called when a pointer event occurs outside the bounds of the\n * component. It can be prevented by calling event.preventDefault.\n */\n onPointerDownOutside?: (event: PointerDownOutsideEvent) => void\n\n /**\n * The preferred side of the anchor to render against when open. Will be\n * reversed when collisions occur and avoidCollisions is enabled.\n * @default 'bottom'\n */\n side?: Side\n\n /**\n * The distance in pixels from the anchor.\n * @default CONTENT_OFFSET\n */\n sideOffset?: number\n\n /**\n * The preferred alignment against the anchor. May change when collisions\n * occur.\n * @default 'start'\n */\n align?: Align\n\n /**\n * An offset in pixels from the \"start\" or \"end\" alignment options.\n * @default 0\n */\n alignOffset?: number\n\n /**\n * When true, overrides the side and align preferences to prevent collisions\n * with boundary edges.\n * @default true\n */\n avoidCollisions?: boolean\n\n /**\n * The element used as the collision boundary. By default this is the\n * viewport, though you can provide additional element(s) to be included in\n * this check.\n */\n collisionBoundary?: Element | null\n\n /**\n * The distance in pixels from the boundary edges where collision detection\n * should occur. Accepts a number (same for all sides), or a partial padding\n * object, for example: { top: 20, left: 20 }.\n * @default 0\n */\n collisionPadding?: number | Partial<Record<Side, number>>\n\n /**\n * The sticky behavior on the align axis. \"partial\" will keep the content in the\n * boundary as long as the trigger is at least partially in the boundary whilst\n * \"always\" will keep the content in the boundary regardless.\n * @default 'partial'\n */\n sticky?: Sticky\n\n /**\n * Whether to hide the content when the trigger becomes fully occluded.\n * @default true\n */\n hideWhenDetached?: boolean\n}\n\ninterface SharedContentProps {\n calendarProps: DOMAttributes\n prevButtonProps: AriaButtonProps\n nextButtonProps: AriaButtonProps\n state: RangeCalendarState | CalendarState\n}\n\nconst SharedContent = React.forwardRef<HTMLDivElement, SharedContentProps>(\n ({ calendarProps, prevButtonProps, nextButtonProps, state }, forwardRef) => {\n const { visibleDuration } = useCalendarContext<DateValue>()\n\n return (\n <StyledCalendarBody {...calendarProps} ref={forwardRef}>\n <PredefinedRanges />\n <Flex direction='column'>\n <Header\n state={state}\n prevButtonProps={prevButtonProps as HeaderButtonProps}\n nextButtonProps={nextButtonProps as HeaderButtonProps}\n visibleMonths={visibleDuration.months}\n />\n <StyledGridContent>\n <StyledBodyContentLeft>\n <Grid state={state} />\n </StyledBodyContentLeft>\n {visibleDuration.months === 2 && (\n <StyledBodyContentRight>\n <Grid state={state} offset={{ months: 1 }} />\n </StyledBodyContentRight>\n )}\n </StyledGridContent>\n </Flex>\n </StyledCalendarBody>\n )\n }\n)\n\nconst DatePickerContent = (): ReactElement => {\n const { locale } = useLocale()\n\n const {\n calendarValue,\n visibleDuration,\n minDate,\n maxDate,\n onCalendarDateClick,\n } = useCalendarContext<DateValue>()\n\n const state = useCalendarState({\n value: calendarValue,\n visibleDuration,\n minValue: minDate,\n maxValue: maxDate,\n autoFocus: true,\n onChange: onCalendarDateClick,\n locale,\n createCalendar,\n })\n\n const { calendarProps, prevButtonProps, nextButtonProps } = useCalendar(\n {},\n state\n )\n\n return (\n <SharedContent\n calendarProps={calendarProps}\n prevButtonProps={prevButtonProps}\n nextButtonProps={nextButtonProps}\n state={state}\n />\n )\n}\n\nconst RangePickerContent = (): ReactElement => {\n const { locale } = useLocale()\n\n const {\n calendarValue,\n visibleDuration,\n minDate,\n maxDate,\n onCalendarDateClick,\n } = useCalendarContext<DateRange>()\n\n const ref = useRef<HTMLDivElement>(null)\n\n const state = useRangeCalendarState({\n value: calendarValue,\n visibleDuration,\n minValue: minDate,\n maxValue: maxDate,\n autoFocus: true,\n onChange: onCalendarDateClick,\n locale,\n createCalendar,\n })\n\n const { calendarProps, prevButtonProps, nextButtonProps } = useRangeCalendar(\n {},\n state,\n ref\n )\n\n return (\n <SharedContent\n ref={ref}\n calendarProps={calendarProps}\n prevButtonProps={prevButtonProps}\n nextButtonProps={nextButtonProps}\n state={state}\n />\n )\n}\n\nexport const Content = React.forwardRef<\n ElementRef<typeof StyledContent>,\n ContentProps\n>(\n (\n {\n side = 'bottom',\n sideOffset = CONTENT_OFFSET,\n align = 'start',\n alignOffset = 0,\n collisionPadding = 0,\n avoidCollisions = true,\n sticky = 'partial',\n hideWhenDetached = true,\n children,\n ...restProps\n },\n forwardRef\n ) => {\n const { picker, open } = useCalendarContext()\n\n if (!open) {\n return null\n }\n\n return (\n <StyledContent\n {...restProps}\n ref={forwardRef}\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n collisionPadding={collisionPadding}\n avoidCollisions={avoidCollisions}\n sticky={sticky}\n hideWhenDetached={hideWhenDetached}\n >\n <Flex direction='column'>\n {picker === 'single' ? <DatePickerContent /> : <RangePickerContent />}\n {children != null && (\n <StyledClearContent>{children}</StyledClearContent>\n )}\n </Flex>\n </StyledContent>\n )\n }\n)\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { ComponentPropsWithRef } from 'react'\n\nexport const StyledValue = styled(Primitive.span, {})\n\nexport type StyledValueProps = ComponentPropsWithRef<typeof StyledValue>\n","import type { ElementRef } from 'react'\nimport React, { useMemo } from 'react'\nimport type { DateRange, DateValue } from '@react-types/datepicker'\nimport type { DateFormatter } from 'react-aria'\nimport { useDateFormatter } from 'react-aria'\nimport { getLocalTimeZone } from '@internationalized/date'\n\nimport type { StyledValueProps } from './value.styled'\nimport { StyledValue } from './value.styled'\nimport { useCalendarContext } from '../use-calendar-context'\n\ntype FormatOptions = Pick<\n Intl.DateTimeFormatOptions,\n 'weekday' | 'era' | 'year' | 'month' | 'day' | 'formatMatcher'\n>\n\nexport type ValueProps = StyledValueProps & {\n format?: FormatOptions\n}\n\nconst DEFAULT_FORMAT: FormatOptions = {\n day: '2-digit',\n month: 'short',\n year: 'numeric',\n}\n\nfunction formatDate(\n date: DateValue,\n formatter: DateFormatter,\n timeZone: string\n): string | undefined {\n return formatter.format(date.toDate(timeZone))\n}\n\nfunction formatValue(\n value: DateValue | DateRange | undefined | null,\n formatter: DateFormatter,\n timeZone: string\n): string | undefined {\n if (value == null || value === undefined) {\n return undefined\n }\n\n if ('start' in value) {\n if (value.start == null || value.end == null) {\n return undefined\n }\n\n return `${formatDate(value.start, formatter, timeZone)} - ${formatDate(\n value.end,\n formatter,\n timeZone\n )}`\n }\n\n return formatDate(value, formatter, timeZone)\n}\n\nexport const Value = React.forwardRef<\n ElementRef<typeof StyledValue>,\n ValueProps\n>(({ format = DEFAULT_FORMAT, ...restProps }, forwardRef) => {\n const { value } = useCalendarContext()\n\n const timeZone = useMemo(getLocalTimeZone, [format])\n\n const formatWithTimeZone = useMemo(\n () => ({ ...format, timeZone }),\n [format, timeZone]\n )\n const dateFormatter = useDateFormatter(formatWithTimeZone)\n\n const valueToDisplay = formatValue(value, dateFormatter, timeZone)\n\n return (\n <StyledValue ref={forwardRef} {...restProps}>\n {valueToDisplay}\n </StyledValue>\n )\n})\n","import type { ElementRef } from 'react'\nimport React from 'react'\nimport { Button } from '@mirohq/design-system-button'\nimport type { BaseButtonProps } from '@mirohq/design-system-base-button'\n\nimport { useCalendarContext } from '../use-calendar-context'\n\nexport type ClearButtonProps = BaseButtonProps & {\n /**\n * Event handler called when the calendar value is cleared\n */\n onClear?: () => void\n}\n\nexport const ClearButton = React.forwardRef<\n ElementRef<typeof Button>,\n ClearButtonProps\n>(({ onClear, children, ...restProps }, forwardRef) => {\n const { value, setValue } = useCalendarContext()\n\n const onClearHandler = (): void => {\n setValue(undefined)\n if (onClear !== undefined) {\n onClear()\n }\n }\n\n return (\n <Button\n {...restProps}\n ref={forwardRef}\n variant='ghost'\n size='medium'\n onClick={onClearHandler}\n disabled={value === null}\n >\n {children}\n </Button>\n )\n}) as React.ForwardRefExoticComponent<ClearButtonProps>\n","import type { ElementRef } from 'react'\nimport React, { useEffect } from 'react'\nimport { Button } from '@mirohq/design-system-button'\nimport type { BaseButtonProps } from '@mirohq/design-system-base-button'\n\nimport { useCalendarContext } from '../use-calendar-context'\n\nexport type SaveButtonProps = BaseButtonProps & {\n /**\n * Event handler called when the calendar value is saved\n */\n onSave?: () => void\n}\n\nexport const SaveButton = React.forwardRef<\n ElementRef<typeof Button>,\n SaveButtonProps\n>(({ onSave, children, ...restProps }, forwardRef) => {\n const { setImmediateSave, onSaveClick } = useCalendarContext()\n\n useEffect(() => {\n setImmediateSave(true)\n\n return () => setImmediateSave(false)\n }, [setImmediateSave])\n\n const onSaveHandler = (): void => {\n onSaveClick()\n if (onSave !== undefined) {\n onSave()\n }\n }\n\n return (\n <Button\n ref={forwardRef}\n {...restProps}\n variant='primary'\n size='medium'\n onClick={onSaveHandler}\n >\n {children}\n </Button>\n )\n}) as React.ForwardRefExoticComponent<SaveButtonProps>\n","import { styled } from '@mirohq/design-system-stitches'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport type { ComponentPropsWithRef } from 'react'\n\nexport const StyledCalendar = styled(Primitive.div, {\n position: 'relative',\n})\nexport type StyledCalendarProps = ComponentPropsWithRef<typeof StyledCalendar>\n","import type { ElementRef, ForwardRefExoticComponent } from 'react'\nimport React from 'react'\nimport { I18nProvider } from 'react-aria'\nimport * as RadixPopover from '@radix-ui/react-popover'\nimport type { DateRange, DateValue } from 'react-aria'\n\nimport type { CalendarDatePickerProps, CalendarRangePickerProps } from './types'\nimport { Trigger } from './partials/trigger'\nimport { Content } from './partials/content'\nimport type { CalendarProviderProps } from './use-calendar-context'\nimport { CalendarProvider, useCalendarContext } from './use-calendar-context'\nimport { Value } from './partials/value'\nimport { ClearButton } from './partials/clear-button'\nimport { SaveButton } from './partials/save-button'\nimport { StyledCalendar } from './calendar.styled'\n\n// If an unrecognised locale string is passed in, the component will error, this protects from that by defaulting to English\n// https://github.com/adobe/react-spectrum/issues/7457\nfunction getValidLocale(locale: string | undefined): string {\n if (locale === undefined) {\n return 'en'\n }\n\n try {\n Intl.DateTimeFormat.supportedLocalesOf(locale)\n return locale\n } catch {\n try {\n // the client locale is in the format of ja_JP, but Intl.DateTimeFormat expects ja-JP\n // https://github.com/formatjs/formatjs/discussions/2440\n const localeWithDashes = locale.replace(/_/g, '-')\n Intl.DateTimeFormat.supportedLocalesOf(localeWithDashes)\n return localeWithDashes\n } catch {\n return 'en'\n }\n }\n}\n\nexport type CalendarProps = (\n | CalendarDatePickerProps\n | CalendarRangePickerProps\n) & {\n /**\n * The locale for Calendar internationalization\n */\n locale?: string\n}\n\ninterface CalendarRootProps {\n children: React.ReactNode\n}\n\nconst Root = React.forwardRef<\n ElementRef<typeof StyledCalendar>,\n CalendarRootProps\n>(({ children, ...restProps }, forwardRef) => {\n const { open, setOpen } = useCalendarContext()\n\n return (\n <RadixPopover.Root open={open} onOpenChange={setOpen}>\n <StyledCalendar ref={forwardRef} {...restProps}>\n {children}\n </StyledCalendar>\n </RadixPopover.Root>\n )\n})\n\nexport const Calendar = React.forwardRef<\n ElementRef<typeof StyledCalendar>,\n CalendarProps\n>(\n (\n {\n picker,\n defaultValue,\n value,\n onValueChange,\n defaultOpen,\n open,\n onClose,\n onOpen,\n locale,\n visibleMonths,\n minDate,\n maxDate,\n disabled,\n 'aria-disabled': ariaDisabled,\n children,\n predefinedValues,\n ...props\n },\n forwardRef\n ) => {\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n const providerProps = {\n picker,\n defaultValue,\n value,\n onValueChange,\n visibleMonths,\n minDate,\n maxDate,\n defaultOpen,\n open,\n onClose,\n onOpen,\n disabled,\n ariaDisabled,\n predefinedValues,\n } as CalendarProviderProps<DateValue> | CalendarProviderProps<DateRange>\n\n const validatedLocale = getValidLocale(locale)\n\n return (\n <I18nProvider locale={validatedLocale}>\n <CalendarProvider {...(providerProps as any)}>\n <Root {...props} ref={forwardRef}>\n {children}\n </Root>\n </CalendarProvider>\n </I18nProvider>\n )\n }\n) as ForwardRefExoticComponent<CalendarProps> & Partials\n\nexport interface Partials {\n Trigger: typeof Trigger\n Content: typeof Content\n Value: typeof Value\n ClearButton: typeof ClearButton\n SaveButton: typeof SaveButton\n}\n\nCalendar.Trigger = Trigger\nCalendar.Content = Content\nCalendar.Value = Value\nCalendar.ClearButton = ClearButton\nCalendar.SaveButton = SaveButton\n"],"names":["styled","Primitive","textFieldStyles","StyledValue","BaseButton","focus","actionButtonStyles","React","Tooltip","jsx","IconCross","createContext","useState","useMemo","useControllableState","useCallback","value","useContext","useFormFieldContext","RadixTrigger","jsxs","Fragment","stringAttrValue","IconCalendarBlank","booleanify","RadixContent","Flex","Heading","IconButton","useDateFormatter","IconChevronLeft","IconChevronRight","date","useRef","useCalendarCell","isSameMonth","isSameDay","useFocusRing","mergeProps","isToday","getLocalTimeZone","useLocale","useCalendarGrid","getWeeksInMonth","Button","theme","useCalendarState","createCalendar","useCalendar","useRangeCalendarState","useRangeCalendar","useEffect","RadixPopover","I18nProvider"],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sources":["../src/partials/trigger.styled.tsx","../src/partials/clear-action.styled.tsx","../src/partials/clear-action.tsx","../src/use-calendar-context.tsx","../src/partials/trigger.tsx","../src/partials/content.styled.tsx","../src/partials/header.styled.tsx","../src/partials/header-button.tsx","../src/partials/header.tsx","../src/partials/cell.styled.tsx","../src/partials/cell.tsx","../src/partials/grid.styled.tsx","../src/partials/grid.tsx","../src/partials/predefined-ranges.styled.tsx","../src/partials/predefined-ranges.tsx","../src/partials/content.tsx","../src/partials/value.styled.tsx","../src/partials/value.tsx","../src/partials/clear-button.tsx","../src/partials/save-button.tsx","../src/calendar.styled.tsx","../src/calendar.tsx"],"sourcesContent":["import { Primitive } from '@mirohq/design-system-primitive'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { textFieldStyles } from '@mirohq/design-system-base-text-field'\nimport { focus } from '@mirohq/design-system-styles'\nimport { BaseButton } from '@mirohq/design-system-base-button'\n\nexport const StyledPlaceholder = styled(Primitive.span, {\n color: textFieldStyles.base.placeholder.color,\n padding: '0 $50',\n})\n\nexport const StyledValue = styled(Primitive.span, {\n padding: '0 $50',\n})\n\nexport const StyledIconContainer = styled(Primitive.span, {\n display: 'flex',\n justifyContent: 'center',\n padding: '6px',\n color: '$text-neutrals-subtle',\n})\n\nexport const StyledTrigger = styled(BaseButton, {\n display: 'inline-flex',\n gap: '$50',\n justifyContent: 'space-between',\n alignItems: 'center',\n height: '$10',\n padding: '0 $100',\n minWidth: '230px',\n\n ...textFieldStyles.variants.idle,\n\n _hover: textFieldStyles.variants.hovered,\n ...focus.css({\n boxShadow: '$focus',\n }),\n\n '&:disabled, &[aria-disabled=\"true\"]': {\n ...textFieldStyles.variants.disabled,\n color: '$text-neutrals-disabled',\n },\n\n variants: {\n withClearButton: {\n true: {\n paddingRight: 'calc($100 + $400)', // initial left padding + clear button width + gap\n },\n },\n },\n})\n\nexport const StyledCustomTrigger = styled(BaseButton, {\n width: '100%',\n height: 'unset',\n padding: '0',\n backgroundColor: '$transparent',\n border: 'none',\n cursor: 'pointer',\n})\n\nexport type StyledTriggerProps = StrictComponentProps<typeof StyledTrigger>\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { ComponentPropsWithRef } from 'react'\nimport { actionButtonStyles } from '@mirohq/design-system-base-text-field'\nimport { BaseButton } from '@mirohq/design-system-base-button'\n\nexport const StyledClearAction = styled(BaseButton, {\n position: 'absolute',\n top: 0,\n bottom: 0,\n right: 'calc($100 + 1px)', // to compensate border width\n margin: 'auto',\n\n ...actionButtonStyles,\n\n '&:disabled, &[aria-disabled=\"true\"]': {\n color: '$icon-neutrals-disabled',\n },\n})\n\nexport type StyledClearActionProps = ComponentPropsWithRef<\n typeof StyledClearAction\n>\n","import type { ElementRef } from 'react'\nimport React from 'react'\nimport { IconCross } from '@mirohq/design-system-icons'\nimport { Tooltip } from '@mirohq/design-system-tooltip'\n\nimport type { StyledClearActionProps } from './clear-action.styled'\nimport { StyledClearAction } from './clear-action.styled'\n\ninterface ClearActionProps extends Omit<StyledClearActionProps, 'children'> {\n label: string\n}\n\nexport const ClearAction = React.forwardRef<\n ElementRef<typeof StyledClearAction>,\n ClearActionProps\n>(({ 'aria-label': ariaLabel, label, ...restProps }, forwardRef) => (\n <Tooltip>\n <Tooltip.Trigger asChild>\n <StyledClearAction\n {...restProps}\n ref={forwardRef}\n aria-label={ariaLabel ?? label}\n >\n <IconCross />\n </StyledClearAction>\n </Tooltip.Trigger>\n <Tooltip.Content>{label}</Tooltip.Content>\n </Tooltip>\n))\n","import React, {\n createContext,\n useCallback,\n useContext,\n useMemo,\n useState,\n} from 'react'\nimport type { DateRange, DateValue } from 'react-aria'\nimport type { DateDuration } from '@internationalized/date'\nimport { useControllableState } from '@radix-ui/react-use-controllable-state'\nimport type { Booleanish } from '@mirohq/design-system-types'\n\nimport type { PredefinedValue } from './types'\n\ninterface SharedProps<T extends DateRange | DateValue> {\n picker: 'single' | 'range'\n minDate?: DateValue\n maxDate?: DateValue\n disabled?: boolean\n ariaDisabled?: Booleanish\n predefinedValues?: Array<PredefinedValue<T>>\n}\n\ninterface CalendarContextProps<T extends DateRange | DateValue>\n extends SharedProps<T> {\n visibleDuration: DateDuration\n\n value?: T\n setValue: React.Dispatch<React.SetStateAction<T | undefined>>\n\n open: boolean\n setOpen: React.Dispatch<React.SetStateAction<boolean | undefined>>\n\n setImmediateSave: React.Dispatch<React.SetStateAction<boolean>>\n\n calendarValue?: T | null\n calendarDefaultValue?: T | null\n onCalendarDateClick: (date: T) => void\n onSaveClick: () => void\n}\n\nexport interface CalendarProviderProps<T extends DateRange | DateValue>\n extends SharedProps<T> {\n children?: React.ReactNode\n visibleMonths?: number\n\n defaultValue?: T\n value?: T\n onValueChange?: (value: T | undefined) => void\n\n defaultOpen?: boolean\n open?: boolean\n onOpen?: () => void\n onClose?: () => void\n}\n\nconst CalendarContext = createContext<CalendarContextProps<any>>({} as any)\n\nexport const CalendarProvider = <T extends DateRange | DateValue>({\n children,\n visibleMonths = 1,\n value: valueProp,\n defaultValue: defaultValueProp,\n onValueChange,\n open: openProp,\n defaultOpen: defaultOpenProp,\n onOpen,\n onClose,\n ...restProps\n}: CalendarProviderProps<T>): JSX.Element => {\n const [immediateSave, setImmediateSave] = useState(false)\n const [internalCalendarValue, setInternalCalendarValue] = useState<\n T | undefined\n >(valueProp ?? defaultValueProp)\n\n const visibleDuration = useMemo(\n () => ({\n months: visibleMonths,\n }),\n [visibleMonths]\n )\n\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValueProp,\n onChange: onValueChange,\n })\n\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpenProp,\n onChange: state => {\n if (state) {\n onOpen?.()\n } else {\n onClose?.()\n }\n },\n })\n\n const onCalendarDateClick = useCallback(\n (value: T): void => {\n if (immediateSave) {\n setInternalCalendarValue(value)\n } else {\n setValue(value)\n setOpen(false)\n }\n },\n [setValue, setOpen, immediateSave, setInternalCalendarValue]\n )\n\n const onSaveClick = (): void => {\n setValue(internalCalendarValue)\n setOpen(false)\n }\n\n return (\n <CalendarContext.Provider\n value={{\n ...restProps,\n visibleDuration,\n value: value,\n setValue,\n open,\n setOpen,\n onCalendarDateClick,\n setImmediateSave,\n onSaveClick,\n // value should not be undefined otherwise react-aria calendar will complain in console\n calendarValue: (immediateSave ? internalCalendarValue : value) ?? null,\n }}\n >\n {children}\n </CalendarContext.Provider>\n )\n}\n\nexport const useCalendarContext = <\n T extends DateRange | DateValue\n>(): CalendarContextProps<T> => useContext(CalendarContext)\n","import type { ElementRef } from 'react'\nimport React from 'react'\nimport { IconCalendarBlank } from '@mirohq/design-system-icons'\nimport { useFormFieldContext } from '@mirohq/design-system-base-form'\nimport { Trigger as RadixTrigger } from '@radix-ui/react-popover'\nimport { booleanify, stringAttrValue } from '@mirohq/design-system-utils'\n\nimport type { StyledTriggerProps } from './trigger.styled'\nimport {\n StyledIconContainer,\n StyledCustomTrigger,\n StyledPlaceholder,\n StyledTrigger,\n StyledValue,\n} from './trigger.styled'\nimport { ClearAction } from './clear-action'\nimport { useCalendarContext } from '../use-calendar-context'\n\ntype TriggerSharedProps = Omit<StyledTriggerProps, 'withClearButton'> & {\n /**\n * The content that will be rendered inside the Calendar trigger when there is no value\n */\n placeholder?: string\n\n /**\n * Show a button to clear the Calendar value\n * @default false\n */\n clearable?: boolean\n\n /**\n * The content\n */\n children: React.ReactNode\n}\n\nexport type TriggerProps = TriggerSharedProps &\n (\n | { clearable: false; clearLabel?: never; onClear?: never }\n | {\n /**\n * Event handler called when the calendar is cleared\n */\n onClear?: () => void\n\n /**\n * The label text for Trigger's action button when Combobox has values selected. Will be rendered in a Tooltip.\n */\n clearLabel: string\n }\n )\n\nexport const Trigger = React.forwardRef<ElementRef<'button'>, TriggerProps>(\n (\n {\n id,\n 'aria-describedby': ariaDescribedBy,\n placeholder,\n asChild = false,\n clearable = true,\n clearLabel,\n onClear,\n children,\n ...restProps\n },\n forwardRef\n ) => {\n const { value, setValue, disabled, ariaDisabled } = useCalendarContext()\n\n const { formElementId, ariaDescribedBy: formFieldContextDescribedBy } =\n useFormFieldContext()\n\n if (asChild) {\n return (\n <RadixTrigger ref={forwardRef} asChild>\n <StyledCustomTrigger asChild {...restProps}>\n {children}\n </StyledCustomTrigger>\n </RadixTrigger>\n )\n }\n\n const onClearHandler = (): void => {\n setValue(undefined)\n if (onClear !== undefined) {\n onClear()\n }\n }\n\n const clearButtonVisible =\n clearable && value != null && clearLabel !== undefined\n\n return (\n <>\n <RadixTrigger ref={forwardRef} asChild>\n <StyledTrigger\n id={id ?? formElementId}\n aria-describedby={stringAttrValue(\n ariaDescribedBy,\n formFieldContextDescribedBy\n )}\n withClearButton={clearButtonVisible}\n disabled={disabled}\n aria-disabled={ariaDisabled}\n {...restProps}\n >\n {value != null ? (\n <StyledValue>{children}</StyledValue>\n ) : (\n <StyledPlaceholder>{placeholder}</StyledPlaceholder>\n )}\n\n {!clearButtonVisible && (\n <StyledIconContainer>\n <IconCalendarBlank size='small' />\n </StyledIconContainer>\n )}\n </StyledTrigger>\n </RadixTrigger>\n {clearButtonVisible && (\n <ClearAction\n label={clearLabel}\n onPress={onClearHandler}\n disabled={disabled ?? booleanify(ariaDisabled)}\n />\n )}\n </>\n )\n }\n)\n","import type { ComponentPropsWithRef } from 'react'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { Flex } from '@mirohq/design-system-flex'\nimport { Content as RadixContent } from '@radix-ui/react-popover'\n\nexport const StyledContent = styled(RadixContent, {\n zIndex: '$calendar',\n background: '$background-neutrals',\n borderRadius: '$100',\n boxShadow: '$100',\n})\n\nexport const StyledCalendarBody = styled(Flex, {\n padding: '$200',\n gap: '$200',\n})\n\nexport const StyledGridContent = styled(Flex, {})\n\nexport const StyledBodyContentLeft = styled(Primitive.div, {})\n\nexport const StyledBodyContentRight = styled(Primitive.div, {\n paddingLeft: '$200',\n})\n\nexport const StyledClearContent = styled(Primitive.div, {\n display: 'flex',\n gap: '$100',\n padding: '$200',\n borderTop: '1px solid $border-neutrals',\n})\n\nexport type StyledContentProps = ComponentPropsWithRef<typeof StyledContent>\n","import { styled } from '@mirohq/design-system-stitches'\nimport { Flex } from '@mirohq/design-system-flex'\nimport { Heading } from '@mirohq/design-system-typography'\n\nexport const StyledHeaderTitle = styled(Heading, {\n margin: 0,\n flex: '2',\n textAlign: 'center',\n})\n\nexport const StyledHeaderPlaceholder = styled('div', {\n height: '$8',\n // to compensate icon buttons' width and space between 2 calendars\n width: 'calc($8 * 2 + $space$200)',\n})\n\nexport const StyledHeader = styled(Flex, {\n color: '$text-neutrals',\n height: '$8',\n alignItems: 'center',\n justifyContent: 'space-between',\n})\n","import type { ElementRef } from 'react'\nimport React from 'react'\nimport type { IconButtonProps } from '@mirohq/design-system-icon-button'\nimport { IconButton } from '@mirohq/design-system-icon-button'\n\nexport type HeaderButtonProps = IconButtonProps & {\n onFocus?: () => void\n onPress?: () => void\n isDisabled?: boolean // name comes from react-aria\n 'aria-label': string\n}\n\nexport const HeaderButton = React.forwardRef<\n ElementRef<'button'>,\n HeaderButtonProps\n>(({ isDisabled, children, ...restProps }, forwardRef) => (\n <IconButton\n {...restProps}\n size='medium'\n disabled={isDisabled}\n ref={forwardRef}\n >\n {children}\n </IconButton>\n)) as React.ForwardRefExoticComponent<HeaderButtonProps>\n","import React from 'react'\nimport { useDateFormatter } from 'react-aria'\nimport type { CalendarState, RangeCalendarState } from 'react-stately'\nimport { IconChevronLeft, IconChevronRight } from '@mirohq/design-system-icons'\n\nimport {\n StyledHeaderPlaceholder,\n StyledHeader,\n StyledHeaderTitle,\n} from './header.styled'\nimport type { HeaderButtonProps } from './header-button'\nimport { HeaderButton } from './header-button'\n\ninterface IHeader {\n state: RangeCalendarState | CalendarState\n prevButtonProps: HeaderButtonProps\n nextButtonProps: HeaderButtonProps\n visibleMonths?: number\n}\n\nexport const Header = ({\n state,\n prevButtonProps,\n nextButtonProps,\n visibleMonths,\n}: IHeader): React.ReactNode => {\n const monthDateFormatter = useDateFormatter({\n month: 'long',\n year: 'numeric',\n timeZone: state.timeZone,\n })\n\n return (\n <StyledHeader>\n <HeaderButton {...prevButtonProps}>\n <IconChevronLeft />\n </HeaderButton>\n <StyledHeaderTitle level={2} styledAs='h3'>\n {monthDateFormatter.format(\n state.visibleRange.start.toDate(state.timeZone)\n )}\n </StyledHeaderTitle>\n {visibleMonths === 2 && (\n <>\n <StyledHeaderPlaceholder />\n <StyledHeaderTitle level={2} styledAs='h3'>\n {monthDateFormatter.format(\n state.visibleRange.start.add({ months: 1 }).toDate(state.timeZone)\n )}\n </StyledHeaderTitle>\n </>\n )}\n <HeaderButton {...nextButtonProps}>\n <IconChevronRight />\n </HeaderButton>\n </StyledHeader>\n )\n}\n","import type { ComponentPropsWithRef } from 'react'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { focus } from '@mirohq/design-system-styles'\n\nexport const StyledCell = styled(Primitive.td, {\n square: '$10',\n marginTop: '$50',\n position: 'relative',\n})\n\nexport const StyledCellContent = styled(Primitive.div, {\n cursor: 'pointer',\n square: '$10',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: '$50',\n color: '$text-neutrals',\n\n ...focus.css({\n top: '0',\n left: '0',\n position: 'absolute',\n zIndex: '1',\n boxShadow: '$focus',\n outline: '1px solid transparent',\n }),\n\n '&[aria-disabled=\"true\"]': {\n textDecoration: 'line-through',\n color: '$text-neutrals-disabled',\n cursor: 'default',\n },\n\n '&:not([aria-disabled=\"true\"])': {\n _hover: {\n backgroundColor: '$background-neutrals-subtle-hover',\n color: '$text-neutrals',\n },\n },\n\n variants: {\n today: {\n true: {\n backgroundColor: '$background-neutrals-subtle-hover',\n color: '$text-neutrals',\n },\n },\n selected: {\n true: {\n backgroundColor: '$background-primary-prominent-selected',\n color: '$text-neutrals-inverted',\n\n '&:not([aria-disabled=\"true\"])': {\n _hover: {\n backgroundColor: '$background-primary-prominent-hover',\n color: '$text-neutrals-inverted',\n },\n },\n },\n },\n range: {\n middle: {\n backgroundColor: '$background-primary-subtle-selected',\n color: '$text-neutrals',\n borderRadius: 0,\n\n '&:not([aria-disabled=\"true\"])': {\n _hover: {\n backgroundColor: '$background-primary-subtle-hover',\n },\n },\n },\n start: {\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n },\n end: {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n },\n },\n hidden: {\n true: {\n display: 'none',\n },\n },\n },\n})\n\nexport type StyledCellProps = ComponentPropsWithRef<typeof StyledCell>\n","import React, { useRef } from 'react'\nimport { useCalendarCell, useFocusRing, mergeProps } from 'react-aria'\nimport type { CalendarDate } from '@internationalized/date'\nimport {\n isSameDay,\n isSameMonth,\n isToday,\n getLocalTimeZone,\n} from '@internationalized/date'\nimport type { CalendarState, RangeCalendarState } from 'react-stately'\n\nimport type { StyledCellProps } from './cell.styled'\nimport { StyledCell, StyledCellContent } from './cell.styled'\n\nexport interface CellProps extends StyledCellProps {\n state: RangeCalendarState | CalendarState\n date: CalendarDate\n currentMonth: CalendarDate\n}\n\nexport const Cell = (props: CellProps): React.ReactNode => {\n let { state, date, currentMonth } = props\n const ref = useRef(null)\n const { cellProps, buttonProps, isSelected, formattedDate } = useCalendarCell(\n { date },\n state,\n ref\n )\n\n const isOutsideMonth = !isSameMonth(currentMonth, date)\n\n state = state as RangeCalendarState\n\n // The start and end date of the selected range will have\n // an emphasized appearance.\n const isSelectionStart =\n state.highlightedRange !== undefined && state.highlightedRange !== null\n ? isSameDay(date, state.highlightedRange.start)\n : isSelected\n const isSelectionEnd =\n state.highlightedRange !== undefined && state.highlightedRange !== null\n ? isSameDay(date, state.highlightedRange.end)\n : isSelected\n\n const { focusProps } = useFocusRing()\n\n // when it's both start and end, it's single date\n const isRange = isSelected && (!isSelectionStart || !isSelectionEnd)\n\n const rangeVariant = isRange\n ? isSelectionStart\n ? 'start'\n : isSelectionEnd\n ? 'end'\n : 'middle'\n : undefined\n\n return (\n <StyledCell {...cellProps}>\n <StyledCellContent\n {...mergeProps(buttonProps, focusProps)}\n ref={ref}\n selected={isSelected && (isSelectionStart || isSelectionEnd)}\n today={isToday(date, getLocalTimeZone())}\n range={rangeVariant}\n hidden={isOutsideMonth}\n >\n {formattedDate}\n </StyledCellContent>\n </StyledCell>\n )\n}\n","import type { ComponentPropsWithRef } from 'react'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\n\nexport const StyledGrid = styled(Primitive.table, {\n borderCollapse: 'separate',\n borderSpacing: ' 0 $50',\n})\n\nexport const StyledDays = styled(Primitive.th, {\n height: '$10',\n color: '$text-neutrals-subtle',\n fontWeight: '$regular',\n paddingTop: '$50',\n})\n\nexport type StyledGridProps = ComponentPropsWithRef<typeof StyledGrid>\n","import type { ElementRef } from 'react'\nimport React from 'react'\nimport type { CalendarDate, DateDuration } from '@internationalized/date'\nimport { getWeeksInMonth } from '@internationalized/date'\nimport type { AriaCalendarGridProps, DateRange } from 'react-aria'\nimport { useLocale, useCalendarGrid } from 'react-aria'\nimport type { CalendarState, RangeCalendarState } from 'react-stately'\n\nimport { Cell } from './cell'\nimport type { StyledGridProps } from './grid.styled'\nimport { StyledDays, StyledGrid } from './grid.styled'\n\nexport interface GridProps extends Omit<StyledGridProps, 'onChange'> {\n state: RangeCalendarState | CalendarState\n offset?: DateDuration\n onChange?: (value: DateRange) => void\n}\n\nexport const Grid = React.forwardRef<ElementRef<typeof StyledGrid>, GridProps>(\n (props, forwardRef) => {\n const { locale } = useLocale()\n const { state, offset = {} } = props\n const startDate: CalendarDate = state.visibleRange.start.add(offset)\n const { gridProps, headerProps, weekDays } = useCalendarGrid(\n props as AriaCalendarGridProps,\n state\n )\n\n // Get the number of weeks in the month so we can render the proper number of rows.\n const weeksInMonth = getWeeksInMonth(startDate, locale)\n\n return (\n <StyledGrid ref={forwardRef} {...gridProps} cellPadding='0'>\n <thead {...headerProps}>\n <tr>\n {weekDays.map((day, i) => (\n <StyledDays key={i}>\n <div>{day}</div>\n </StyledDays>\n ))}\n </tr>\n </thead>\n <tbody>\n {Array.from(Array(weeksInMonth).keys()).map(weekIndex => (\n <tr key={weekIndex}>\n {state\n .getDatesInWeek(weekIndex, startDate)\n .map((date: CalendarDate | null, i: number) =>\n date !== null ? (\n <Cell\n key={i}\n state={state}\n date={date}\n currentMonth={startDate}\n />\n ) : (\n <td key={i} />\n )\n )}\n </tr>\n ))}\n </tbody>\n </StyledGrid>\n )\n }\n)\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\n\nexport const StyledPredefinedRanges = styled(Primitive.div, {\n display: 'flex',\n flexDirection: 'column',\n borderRight: '1px solid $border-neutrals',\n padding: '$300 $200 0 0',\n\n '& button': {\n backgroundColor: '$transparent',\n border: 'none',\n fontSize: '$200',\n padding: '0 0 0 $100',\n textAlign: 'left',\n lineHeight: '24px',\n color: '$text-neutrals',\n marginBottom: '$150',\n borderRadius: '$50',\n minWidth: '125px',\n cursor: 'pointer',\n\n '&:hover': {\n backgroundColor: '$background-primary-prominent-hover',\n color: '$text-primary-inverted',\n fontWeight: '600',\n },\n },\n})\n","import React from 'react'\nimport { Button } from '@mirohq/design-system-button'\nimport type { DateRange, DateValue } from 'react-aria'\n\nimport { StyledPredefinedRanges } from './predefined-ranges.styled'\nimport { useCalendarContext } from '../use-calendar-context'\n\nexport const PredefinedRanges = (): React.ReactElement | null => {\n const { predefinedValues, onCalendarDateClick } = useCalendarContext<\n DateRange | DateValue\n >()\n\n if (predefinedValues === undefined) {\n return null\n }\n\n return (\n <StyledPredefinedRanges>\n {predefinedValues.map(item => (\n <Button\n variant='ghost'\n size='medium'\n key={item.id}\n type='button'\n onClick={() => onCalendarDateClick(item.value)}\n >\n {item.label}\n </Button>\n ))}\n </StyledPredefinedRanges>\n )\n}\n","import type { ElementRef, ReactElement, ReactNode } from 'react'\nimport React, { useRef } from 'react'\nimport { useCalendarState, useRangeCalendarState } from 'react-stately'\nimport { useCalendar, useRangeCalendar, useLocale } from 'react-aria'\nimport { createCalendar } from '@internationalized/date'\nimport { Flex } from '@mirohq/design-system-flex'\nimport type { DateRange, DateValue, AriaButtonProps } from 'react-aria'\nimport type { DOMAttributes } from '@react-types/shared'\nimport type { CalendarState, RangeCalendarState } from 'react-stately'\nimport { theme } from '@mirohq/design-system-stitches'\n\nimport { useCalendarContext } from '../use-calendar-context'\nimport type { StyledContentProps } from './content.styled'\nimport {\n StyledContent,\n StyledClearContent,\n StyledCalendarBody,\n StyledBodyContentLeft,\n StyledBodyContentRight,\n StyledGridContent,\n} from './content.styled'\nimport { Header } from './header'\nimport { Grid } from './grid'\nimport type { Align, PointerDownOutsideEvent, Side, Sticky } from '../types'\nimport type { HeaderButtonProps } from './header-button'\nimport { PredefinedRanges } from './predefined-ranges'\n\nexport const CONTENT_OFFSET = parseInt(theme.space[50])\n\nexport type ContentProps = StyledContentProps & {\n /**\n * Calendar's content.\n */\n children?: ReactNode\n\n /**\n * Event handler called when focus moves to the trigger after closing. It can\n * be prevented by calling event.preventDefault.\n */\n onCloseAutoFocus?: (event: Event) => void\n\n /**\n * Event handler called when focus moves to the trigger after closing. It can\n * be prevented by calling event.preventDefault.\n */\n onEscapeKeyDown?: (event: KeyboardEvent) => void\n\n /**\n * Event handler called when a pointer event occurs outside the bounds of the\n * component. It can be prevented by calling event.preventDefault.\n */\n onPointerDownOutside?: (event: PointerDownOutsideEvent) => void\n\n /**\n * The preferred side of the anchor to render against when open. Will be\n * reversed when collisions occur and avoidCollisions is enabled.\n * @default 'bottom'\n */\n side?: Side\n\n /**\n * The distance in pixels from the anchor.\n * @default CONTENT_OFFSET\n */\n sideOffset?: number\n\n /**\n * The preferred alignment against the anchor. May change when collisions\n * occur.\n * @default 'start'\n */\n align?: Align\n\n /**\n * An offset in pixels from the \"start\" or \"end\" alignment options.\n * @default 0\n */\n alignOffset?: number\n\n /**\n * When true, overrides the side and align preferences to prevent collisions\n * with boundary edges.\n * @default true\n */\n avoidCollisions?: boolean\n\n /**\n * The element used as the collision boundary. By default this is the\n * viewport, though you can provide additional element(s) to be included in\n * this check.\n */\n collisionBoundary?: Element | null\n\n /**\n * The distance in pixels from the boundary edges where collision detection\n * should occur. Accepts a number (same for all sides), or a partial padding\n * object, for example: { top: 20, left: 20 }.\n * @default 0\n */\n collisionPadding?: number | Partial<Record<Side, number>>\n\n /**\n * The sticky behavior on the align axis. \"partial\" will keep the content in the\n * boundary as long as the trigger is at least partially in the boundary whilst\n * \"always\" will keep the content in the boundary regardless.\n * @default 'partial'\n */\n sticky?: Sticky\n\n /**\n * Whether to hide the content when the trigger becomes fully occluded.\n * @default true\n */\n hideWhenDetached?: boolean\n}\n\ninterface SharedContentProps {\n calendarProps: DOMAttributes\n prevButtonProps: AriaButtonProps\n nextButtonProps: AriaButtonProps\n state: RangeCalendarState | CalendarState\n}\n\nconst SharedContent = React.forwardRef<HTMLDivElement, SharedContentProps>(\n ({ calendarProps, prevButtonProps, nextButtonProps, state }, forwardRef) => {\n const { visibleDuration } = useCalendarContext<DateValue>()\n\n return (\n <StyledCalendarBody {...calendarProps} ref={forwardRef}>\n <PredefinedRanges />\n <Flex direction='column'>\n <Header\n state={state}\n prevButtonProps={prevButtonProps as HeaderButtonProps}\n nextButtonProps={nextButtonProps as HeaderButtonProps}\n visibleMonths={visibleDuration.months}\n />\n <StyledGridContent>\n <StyledBodyContentLeft>\n <Grid state={state} />\n </StyledBodyContentLeft>\n {visibleDuration.months === 2 && (\n <StyledBodyContentRight>\n <Grid state={state} offset={{ months: 1 }} />\n </StyledBodyContentRight>\n )}\n </StyledGridContent>\n </Flex>\n </StyledCalendarBody>\n )\n }\n)\n\nconst DatePickerContent = (): ReactElement => {\n const { locale } = useLocale()\n\n const {\n calendarValue,\n visibleDuration,\n minDate,\n maxDate,\n onCalendarDateClick,\n } = useCalendarContext<DateValue>()\n\n const state = useCalendarState({\n value: calendarValue,\n visibleDuration,\n minValue: minDate,\n maxValue: maxDate,\n autoFocus: true,\n onChange: onCalendarDateClick,\n locale,\n createCalendar,\n })\n\n const { calendarProps, prevButtonProps, nextButtonProps } = useCalendar(\n {},\n state\n )\n\n return (\n <SharedContent\n calendarProps={calendarProps}\n prevButtonProps={prevButtonProps}\n nextButtonProps={nextButtonProps}\n state={state}\n />\n )\n}\n\nconst RangePickerContent = (): ReactElement => {\n const { locale } = useLocale()\n\n const {\n calendarValue,\n visibleDuration,\n minDate,\n maxDate,\n onCalendarDateClick,\n } = useCalendarContext<DateRange>()\n\n const ref = useRef<HTMLDivElement>(null)\n\n const state = useRangeCalendarState({\n value: calendarValue,\n visibleDuration,\n minValue: minDate,\n maxValue: maxDate,\n autoFocus: true,\n onChange: onCalendarDateClick,\n locale,\n createCalendar,\n })\n\n const { calendarProps, prevButtonProps, nextButtonProps } = useRangeCalendar(\n {},\n state,\n ref\n )\n\n return (\n <SharedContent\n ref={ref}\n calendarProps={calendarProps}\n prevButtonProps={prevButtonProps}\n nextButtonProps={nextButtonProps}\n state={state}\n />\n )\n}\n\nexport const Content = React.forwardRef<\n ElementRef<typeof StyledContent>,\n ContentProps\n>(\n (\n {\n side = 'bottom',\n sideOffset = CONTENT_OFFSET,\n align = 'start',\n alignOffset = 0,\n collisionPadding = 0,\n avoidCollisions = true,\n sticky = 'partial',\n hideWhenDetached = true,\n children,\n ...restProps\n },\n forwardRef\n ) => {\n const { picker, open } = useCalendarContext()\n\n if (!open) {\n return null\n }\n\n return (\n <StyledContent\n {...restProps}\n ref={forwardRef}\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n collisionPadding={collisionPadding}\n avoidCollisions={avoidCollisions}\n sticky={sticky}\n hideWhenDetached={hideWhenDetached}\n >\n <Flex direction='column'>\n {picker === 'single' ? <DatePickerContent /> : <RangePickerContent />}\n {children != null && (\n <StyledClearContent>{children}</StyledClearContent>\n )}\n </Flex>\n </StyledContent>\n )\n }\n)\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { ComponentPropsWithRef } from 'react'\n\nexport const StyledValue = styled(Primitive.span, {})\n\nexport type StyledValueProps = ComponentPropsWithRef<typeof StyledValue>\n","import type { ElementRef } from 'react'\nimport React, { useMemo } from 'react'\nimport type { DateRange, DateValue } from '@react-types/datepicker'\nimport type { DateFormatter } from 'react-aria'\nimport { useDateFormatter } from 'react-aria'\nimport { getLocalTimeZone } from '@internationalized/date'\n\nimport type { StyledValueProps } from './value.styled'\nimport { StyledValue } from './value.styled'\nimport { useCalendarContext } from '../use-calendar-context'\n\ntype FormatOptions = Pick<\n Intl.DateTimeFormatOptions,\n 'weekday' | 'era' | 'year' | 'month' | 'day' | 'formatMatcher'\n>\n\nexport type ValueProps = StyledValueProps & {\n format?: FormatOptions\n}\n\nconst DEFAULT_FORMAT: FormatOptions = {\n day: '2-digit',\n month: 'short',\n year: 'numeric',\n}\n\nfunction formatDate(\n date: DateValue,\n formatter: DateFormatter,\n timeZone: string\n): string | undefined {\n return formatter.format(date.toDate(timeZone))\n}\n\nfunction formatValue(\n value: DateValue | DateRange | undefined | null,\n formatter: DateFormatter,\n timeZone: string\n): string | undefined {\n if (value == null || value === undefined) {\n return undefined\n }\n\n if ('start' in value) {\n if (value.start == null || value.end == null) {\n return undefined\n }\n\n return `${formatDate(value.start, formatter, timeZone)} - ${formatDate(\n value.end,\n formatter,\n timeZone\n )}`\n }\n\n return formatDate(value, formatter, timeZone)\n}\n\nexport const Value = React.forwardRef<\n ElementRef<typeof StyledValue>,\n ValueProps\n>(({ format = DEFAULT_FORMAT, ...restProps }, forwardRef) => {\n const { value } = useCalendarContext()\n\n const timeZone = useMemo(getLocalTimeZone, [format])\n\n const formatWithTimeZone = useMemo(\n () => ({ ...format, timeZone }),\n [format, timeZone]\n )\n const dateFormatter = useDateFormatter(formatWithTimeZone)\n\n const valueToDisplay = formatValue(value, dateFormatter, timeZone)\n\n return (\n <StyledValue ref={forwardRef} {...restProps}>\n {valueToDisplay}\n </StyledValue>\n )\n})\n","import type { ElementRef } from 'react'\nimport React from 'react'\nimport { Button } from '@mirohq/design-system-button'\nimport type { BaseButtonProps } from '@mirohq/design-system-base-button'\n\nimport { useCalendarContext } from '../use-calendar-context'\n\nexport type ClearButtonProps = BaseButtonProps & {\n /**\n * Event handler called when the calendar value is cleared\n */\n onClear?: () => void\n}\n\nexport const ClearButton = React.forwardRef<\n ElementRef<typeof Button>,\n ClearButtonProps\n>(({ onClear, children, ...restProps }, forwardRef) => {\n const { value, setValue } = useCalendarContext()\n\n const onClearHandler = (): void => {\n setValue(undefined)\n if (onClear !== undefined) {\n onClear()\n }\n }\n\n return (\n <Button\n {...restProps}\n ref={forwardRef}\n variant='ghost'\n size='medium'\n onClick={onClearHandler}\n disabled={value === null}\n >\n {children}\n </Button>\n )\n}) as React.ForwardRefExoticComponent<ClearButtonProps>\n","import type { ElementRef } from 'react'\nimport React, { useEffect } from 'react'\nimport { Button } from '@mirohq/design-system-button'\nimport type { BaseButtonProps } from '@mirohq/design-system-base-button'\n\nimport { useCalendarContext } from '../use-calendar-context'\n\nexport type SaveButtonProps = BaseButtonProps & {\n /**\n * Event handler called when the calendar value is saved\n */\n onSave?: () => void\n}\n\nexport const SaveButton = React.forwardRef<\n ElementRef<typeof Button>,\n SaveButtonProps\n>(({ onSave, children, ...restProps }, forwardRef) => {\n const { setImmediateSave, onSaveClick } = useCalendarContext()\n\n useEffect(() => {\n setImmediateSave(true)\n\n return () => setImmediateSave(false)\n }, [setImmediateSave])\n\n const onSaveHandler = (): void => {\n onSaveClick()\n if (onSave !== undefined) {\n onSave()\n }\n }\n\n return (\n <Button\n ref={forwardRef}\n {...restProps}\n variant='primary'\n size='medium'\n onClick={onSaveHandler}\n >\n {children}\n </Button>\n )\n}) as React.ForwardRefExoticComponent<SaveButtonProps>\n","import { styled } from '@mirohq/design-system-stitches'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport type { ComponentPropsWithRef } from 'react'\n\nexport const StyledCalendar = styled(Primitive.div, {\n position: 'relative',\n})\nexport type StyledCalendarProps = ComponentPropsWithRef<typeof StyledCalendar>\n","import type { ElementRef, ForwardRefExoticComponent } from 'react'\nimport React from 'react'\nimport { I18nProvider } from 'react-aria'\nimport * as RadixPopover from '@radix-ui/react-popover'\nimport type { DateRange, DateValue } from 'react-aria'\n\nimport type { CalendarDatePickerProps, CalendarRangePickerProps } from './types'\nimport { Trigger } from './partials/trigger'\nimport { Content } from './partials/content'\nimport type { CalendarProviderProps } from './use-calendar-context'\nimport { CalendarProvider, useCalendarContext } from './use-calendar-context'\nimport { Value } from './partials/value'\nimport { ClearButton } from './partials/clear-button'\nimport { SaveButton } from './partials/save-button'\nimport { StyledCalendar } from './calendar.styled'\n\n// If an unrecognised locale string is passed in, the component will error, this protects from that by defaulting to English\n// https://github.com/adobe/react-spectrum/issues/7457\nfunction getValidLocale(locale: string | undefined): string {\n if (locale === undefined) {\n return 'en'\n }\n\n try {\n Intl.DateTimeFormat.supportedLocalesOf(locale)\n return locale\n } catch {\n try {\n // the client locale is in the format of ja_JP, but Intl.DateTimeFormat expects ja-JP\n // https://github.com/formatjs/formatjs/discussions/2440\n const localeWithDashes = locale.replace(/_/g, '-')\n Intl.DateTimeFormat.supportedLocalesOf(localeWithDashes)\n return localeWithDashes\n } catch {\n return 'en'\n }\n }\n}\n\nexport type CalendarProps = (\n | CalendarDatePickerProps\n | CalendarRangePickerProps\n) & {\n /**\n * The locale for Calendar internationalization\n */\n locale?: string\n}\n\ninterface CalendarRootProps {\n children: React.ReactNode\n}\n\nconst Root = React.forwardRef<\n ElementRef<typeof StyledCalendar>,\n CalendarRootProps\n>(({ children, ...restProps }, forwardRef) => {\n const { open, setOpen } = useCalendarContext()\n\n return (\n <RadixPopover.Root open={open} onOpenChange={setOpen}>\n <StyledCalendar ref={forwardRef} {...restProps}>\n {children}\n </StyledCalendar>\n </RadixPopover.Root>\n )\n})\n\nexport const Calendar = React.forwardRef<\n ElementRef<typeof StyledCalendar>,\n CalendarProps\n>(\n (\n {\n picker,\n defaultValue,\n value,\n onValueChange,\n defaultOpen,\n open,\n onClose,\n onOpen,\n locale,\n visibleMonths,\n minDate,\n maxDate,\n disabled,\n 'aria-disabled': ariaDisabled,\n children,\n predefinedValues,\n ...props\n },\n forwardRef\n ) => {\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n const providerProps = {\n picker,\n defaultValue,\n value,\n onValueChange,\n visibleMonths,\n minDate,\n maxDate,\n defaultOpen,\n open,\n onClose,\n onOpen,\n disabled,\n ariaDisabled,\n predefinedValues,\n } as CalendarProviderProps<DateValue> | CalendarProviderProps<DateRange>\n\n const validatedLocale = getValidLocale(locale)\n\n return (\n <I18nProvider locale={validatedLocale}>\n <CalendarProvider {...(providerProps as any)}>\n <Root {...props} ref={forwardRef}>\n {children}\n </Root>\n </CalendarProvider>\n </I18nProvider>\n )\n }\n) as ForwardRefExoticComponent<CalendarProps> & Partials\n\nexport interface Partials {\n Trigger: typeof Trigger\n Content: typeof Content\n Value: typeof Value\n ClearButton: typeof ClearButton\n SaveButton: typeof SaveButton\n}\n\nCalendar.Trigger = Trigger\nCalendar.Content = Content\nCalendar.Value = Value\nCalendar.ClearButton = ClearButton\nCalendar.SaveButton = SaveButton\n"],"names":["styled","Primitive","textFieldStyles","StyledValue","BaseButton","focus","actionButtonStyles","Tooltip","jsx","IconCross","createContext","useState","useMemo","useControllableState","useCallback","value","useContext","useFormFieldContext","RadixTrigger","jsxs","Fragment","stringAttrValue","IconCalendarBlank","booleanify","RadixContent","Flex","Heading","IconButton","useDateFormatter","IconChevronLeft","IconChevronRight","date","useRef","useCalendarCell","isSameMonth","isSameDay","useFocusRing","mergeProps","isToday","getLocalTimeZone","useLocale","useCalendarGrid","getWeeksInMonth","Button","theme","useCalendarState","createCalendar","useCalendar","useRangeCalendarState","useRangeCalendar","useEffect","RadixPopover","I18nProvider"],"mappings":"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"}
package/dist/module.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
- import React, { createContext, useState, useMemo, useCallback, useContext, useRef, useEffect } from 'react';
2
+ import React, { createContext, useContext, useState, useMemo, useCallback, useRef, useEffect } from 'react';
3
3
  import { useDateFormatter, useCalendarCell, useFocusRing, mergeProps, useLocale, useCalendarGrid, useCalendar, useRangeCalendar, I18nProvider } from 'react-aria';
4
4
  import * as RadixPopover from '@radix-ui/react-popover';
5
5
  import { Trigger as Trigger$1, Content as Content$1 } from '@radix-ui/react-popover';
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sources":["../src/partials/trigger.styled.tsx","../src/partials/clear-action.styled.tsx","../src/partials/clear-action.tsx","../src/use-calendar-context.tsx","../src/partials/trigger.tsx","../src/partials/content.styled.tsx","../src/partials/header.styled.tsx","../src/partials/header-button.tsx","../src/partials/header.tsx","../src/partials/cell.styled.tsx","../src/partials/cell.tsx","../src/partials/grid.styled.tsx","../src/partials/grid.tsx","../src/partials/predefined-ranges.styled.tsx","../src/partials/predefined-ranges.tsx","../src/partials/content.tsx","../src/partials/value.styled.tsx","../src/partials/value.tsx","../src/partials/clear-button.tsx","../src/partials/save-button.tsx","../src/calendar.styled.tsx","../src/calendar.tsx"],"sourcesContent":["import { Primitive } from '@mirohq/design-system-primitive'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { textFieldStyles } from '@mirohq/design-system-base-text-field'\nimport { focus } from '@mirohq/design-system-styles'\nimport { BaseButton } from '@mirohq/design-system-base-button'\n\nexport const StyledPlaceholder = styled(Primitive.span, {\n color: textFieldStyles.base.placeholder.color,\n padding: '0 $50',\n})\n\nexport const StyledValue = styled(Primitive.span, {\n padding: '0 $50',\n})\n\nexport const StyledIconContainer = styled(Primitive.span, {\n display: 'flex',\n justifyContent: 'center',\n padding: '6px',\n color: '$text-neutrals-subtle',\n})\n\nexport const StyledTrigger = styled(BaseButton, {\n display: 'inline-flex',\n gap: '$50',\n justifyContent: 'space-between',\n alignItems: 'center',\n height: '$10',\n padding: '0 $100',\n minWidth: '230px',\n\n ...textFieldStyles.variants.idle,\n\n _hover: textFieldStyles.variants.hovered,\n ...focus.css({\n boxShadow: '$focus',\n }),\n\n '&:disabled, &[aria-disabled=\"true\"]': {\n ...textFieldStyles.variants.disabled,\n color: '$text-neutrals-disabled',\n },\n\n variants: {\n withClearButton: {\n true: {\n paddingRight: 'calc($100 + $400)', // initial left padding + clear button width + gap\n },\n },\n },\n})\n\nexport const StyledCustomTrigger = styled(BaseButton, {\n width: '100%',\n height: 'unset',\n padding: '0',\n backgroundColor: '$transparent',\n border: 'none',\n cursor: 'pointer',\n})\n\nexport type StyledTriggerProps = StrictComponentProps<typeof StyledTrigger>\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { ComponentPropsWithRef } from 'react'\nimport { actionButtonStyles } from '@mirohq/design-system-base-text-field'\nimport { BaseButton } from '@mirohq/design-system-base-button'\n\nexport const StyledClearAction = styled(BaseButton, {\n position: 'absolute',\n top: 0,\n bottom: 0,\n right: 'calc($100 + 1px)', // to compensate border width\n margin: 'auto',\n\n ...actionButtonStyles,\n\n '&:disabled, &[aria-disabled=\"true\"]': {\n color: '$icon-neutrals-disabled',\n },\n})\n\nexport type StyledClearActionProps = ComponentPropsWithRef<\n typeof StyledClearAction\n>\n","import type { ElementRef } from 'react'\nimport React from 'react'\nimport { IconCross } from '@mirohq/design-system-icons'\nimport { Tooltip } from '@mirohq/design-system-tooltip'\n\nimport type { StyledClearActionProps } from './clear-action.styled'\nimport { StyledClearAction } from './clear-action.styled'\n\ninterface ClearActionProps extends Omit<StyledClearActionProps, 'children'> {\n label: string\n}\n\nexport const ClearAction = React.forwardRef<\n ElementRef<typeof StyledClearAction>,\n ClearActionProps\n>(({ 'aria-label': ariaLabel, label, ...restProps }, forwardRef) => (\n <Tooltip>\n <Tooltip.Trigger asChild>\n <StyledClearAction\n {...restProps}\n ref={forwardRef}\n aria-label={ariaLabel ?? label}\n >\n <IconCross />\n </StyledClearAction>\n </Tooltip.Trigger>\n <Tooltip.Content>{label}</Tooltip.Content>\n </Tooltip>\n))\n","import React, {\n createContext,\n useCallback,\n useContext,\n useMemo,\n useState,\n} from 'react'\nimport type { DateRange, DateValue } from 'react-aria'\nimport type { DateDuration } from '@internationalized/date'\nimport { useControllableState } from '@radix-ui/react-use-controllable-state'\nimport type { Booleanish } from '@mirohq/design-system-types'\n\nimport type { PredefinedValue } from './types'\n\ninterface SharedProps<T extends DateRange | DateValue> {\n picker: 'single' | 'range'\n minDate?: DateValue\n maxDate?: DateValue\n disabled?: boolean\n ariaDisabled?: Booleanish\n predefinedValues?: Array<PredefinedValue<T>>\n}\n\ninterface CalendarContextProps<T extends DateRange | DateValue>\n extends SharedProps<T> {\n visibleDuration: DateDuration\n\n value?: T\n setValue: React.Dispatch<React.SetStateAction<T | undefined>>\n\n open: boolean\n setOpen: React.Dispatch<React.SetStateAction<boolean | undefined>>\n\n setImmediateSave: React.Dispatch<React.SetStateAction<boolean>>\n\n calendarValue?: T | null\n calendarDefaultValue?: T | null\n onCalendarDateClick: (date: T) => void\n onSaveClick: () => void\n}\n\nexport interface CalendarProviderProps<T extends DateRange | DateValue>\n extends SharedProps<T> {\n children?: React.ReactNode\n visibleMonths?: number\n\n defaultValue?: T\n value?: T\n onValueChange?: (value: T | undefined) => void\n\n defaultOpen?: boolean\n open?: boolean\n onOpen?: () => void\n onClose?: () => void\n}\n\nconst CalendarContext = createContext<CalendarContextProps<any>>({} as any)\n\nexport const CalendarProvider = <T extends DateRange | DateValue>({\n children,\n visibleMonths = 1,\n value: valueProp,\n defaultValue: defaultValueProp,\n onValueChange,\n open: openProp,\n defaultOpen: defaultOpenProp,\n onOpen,\n onClose,\n ...restProps\n}: CalendarProviderProps<T>): JSX.Element => {\n const [immediateSave, setImmediateSave] = useState(false)\n const [internalCalendarValue, setInternalCalendarValue] = useState<\n T | undefined\n >(valueProp ?? defaultValueProp)\n\n const visibleDuration = useMemo(\n () => ({\n months: visibleMonths,\n }),\n [visibleMonths]\n )\n\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValueProp,\n onChange: onValueChange,\n })\n\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpenProp,\n onChange: state => {\n if (state) {\n onOpen?.()\n } else {\n onClose?.()\n }\n },\n })\n\n const onCalendarDateClick = useCallback(\n (value: T): void => {\n if (immediateSave) {\n setInternalCalendarValue(value)\n } else {\n setValue(value)\n setOpen(false)\n }\n },\n [setValue, setOpen, immediateSave, setInternalCalendarValue]\n )\n\n const onSaveClick = (): void => {\n setValue(internalCalendarValue)\n setOpen(false)\n }\n\n return (\n <CalendarContext.Provider\n value={{\n ...restProps,\n visibleDuration,\n value: value,\n setValue,\n open,\n setOpen,\n onCalendarDateClick,\n setImmediateSave,\n onSaveClick,\n // value should not be undefined otherwise react-aria calendar will complain in console\n calendarValue: (immediateSave ? internalCalendarValue : value) ?? null,\n }}\n >\n {children}\n </CalendarContext.Provider>\n )\n}\n\nexport const useCalendarContext = <\n T extends DateRange | DateValue\n>(): CalendarContextProps<T> => useContext(CalendarContext)\n","import type { ElementRef } from 'react'\nimport React from 'react'\nimport { IconCalendarBlank } from '@mirohq/design-system-icons'\nimport { useFormFieldContext } from '@mirohq/design-system-base-form'\nimport { Trigger as RadixTrigger } from '@radix-ui/react-popover'\nimport { booleanify, stringAttrValue } from '@mirohq/design-system-utils'\n\nimport type { StyledTriggerProps } from './trigger.styled'\nimport {\n StyledIconContainer,\n StyledCustomTrigger,\n StyledPlaceholder,\n StyledTrigger,\n StyledValue,\n} from './trigger.styled'\nimport { ClearAction } from './clear-action'\nimport { useCalendarContext } from '../use-calendar-context'\n\ntype TriggerSharedProps = Omit<StyledTriggerProps, 'withClearButton'> & {\n /**\n * The content that will be rendered inside the Calendar trigger when there is no value\n */\n placeholder?: string\n\n /**\n * Show a button to clear the Calendar value\n * @default false\n */\n clearable?: boolean\n\n /**\n * The content\n */\n children: React.ReactNode\n}\n\nexport type TriggerProps = TriggerSharedProps &\n (\n | { clearable: false; clearLabel?: never; onClear?: never }\n | {\n /**\n * Event handler called when the calendar is cleared\n */\n onClear?: () => void\n\n /**\n * The label text for Trigger's action button when Combobox has values selected. Will be rendered in a Tooltip.\n */\n clearLabel: string\n }\n )\n\nexport const Trigger = React.forwardRef<ElementRef<'button'>, TriggerProps>(\n (\n {\n id,\n 'aria-describedby': ariaDescribedBy,\n placeholder,\n asChild = false,\n clearable = true,\n clearLabel,\n onClear,\n children,\n ...restProps\n },\n forwardRef\n ) => {\n const { value, setValue, disabled, ariaDisabled } = useCalendarContext()\n\n const { formElementId, ariaDescribedBy: formFieldContextDescribedBy } =\n useFormFieldContext()\n\n if (asChild) {\n return (\n <RadixTrigger ref={forwardRef} asChild>\n <StyledCustomTrigger asChild {...restProps}>\n {children}\n </StyledCustomTrigger>\n </RadixTrigger>\n )\n }\n\n const onClearHandler = (): void => {\n setValue(undefined)\n if (onClear !== undefined) {\n onClear()\n }\n }\n\n const clearButtonVisible =\n clearable && value != null && clearLabel !== undefined\n\n return (\n <>\n <RadixTrigger ref={forwardRef} asChild>\n <StyledTrigger\n id={id ?? formElementId}\n aria-describedby={stringAttrValue(\n ariaDescribedBy,\n formFieldContextDescribedBy\n )}\n withClearButton={clearButtonVisible}\n disabled={disabled}\n aria-disabled={ariaDisabled}\n {...restProps}\n >\n {value != null ? (\n <StyledValue>{children}</StyledValue>\n ) : (\n <StyledPlaceholder>{placeholder}</StyledPlaceholder>\n )}\n\n {!clearButtonVisible && (\n <StyledIconContainer>\n <IconCalendarBlank size='small' />\n </StyledIconContainer>\n )}\n </StyledTrigger>\n </RadixTrigger>\n {clearButtonVisible && (\n <ClearAction\n label={clearLabel}\n onPress={onClearHandler}\n disabled={disabled ?? booleanify(ariaDisabled)}\n />\n )}\n </>\n )\n }\n)\n","import type { ComponentPropsWithRef } from 'react'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { Flex } from '@mirohq/design-system-flex'\nimport { Content as RadixContent } from '@radix-ui/react-popover'\n\nexport const StyledContent = styled(RadixContent, {\n zIndex: '$calendar',\n background: '$background-neutrals',\n borderRadius: '$100',\n boxShadow: '$100',\n})\n\nexport const StyledCalendarBody = styled(Flex, {\n padding: '$200',\n gap: '$200',\n})\n\nexport const StyledGridContent = styled(Flex, {})\n\nexport const StyledBodyContentLeft = styled(Primitive.div, {})\n\nexport const StyledBodyContentRight = styled(Primitive.div, {\n paddingLeft: '$200',\n})\n\nexport const StyledClearContent = styled(Primitive.div, {\n display: 'flex',\n gap: '$100',\n padding: '$200',\n borderTop: '1px solid $border-neutrals',\n})\n\nexport type StyledContentProps = ComponentPropsWithRef<typeof StyledContent>\n","import { styled } from '@mirohq/design-system-stitches'\nimport { Flex } from '@mirohq/design-system-flex'\nimport { Heading } from '@mirohq/design-system-typography'\n\nexport const StyledHeaderTitle = styled(Heading, {\n margin: 0,\n flex: '2',\n textAlign: 'center',\n})\n\nexport const StyledHeaderPlaceholder = styled('div', {\n height: '$8',\n // to compensate icon buttons' width and space between 2 calendars\n width: 'calc($8 * 2 + $space$200)',\n})\n\nexport const StyledHeader = styled(Flex, {\n color: '$text-neutrals',\n height: '$8',\n alignItems: 'center',\n justifyContent: 'space-between',\n})\n","import type { ElementRef } from 'react'\nimport React from 'react'\nimport type { IconButtonProps } from '@mirohq/design-system-icon-button'\nimport { IconButton } from '@mirohq/design-system-icon-button'\n\nexport type HeaderButtonProps = IconButtonProps & {\n onFocus?: () => void\n onPress?: () => void\n isDisabled?: boolean // name comes from react-aria\n 'aria-label': string\n}\n\nexport const HeaderButton = React.forwardRef<\n ElementRef<'button'>,\n HeaderButtonProps\n>(({ isDisabled, children, ...restProps }, forwardRef) => (\n <IconButton\n {...restProps}\n size='medium'\n disabled={isDisabled}\n ref={forwardRef}\n >\n {children}\n </IconButton>\n)) as React.ForwardRefExoticComponent<HeaderButtonProps>\n","import React from 'react'\nimport { useDateFormatter } from 'react-aria'\nimport type { CalendarState, RangeCalendarState } from 'react-stately'\nimport { IconChevronLeft, IconChevronRight } from '@mirohq/design-system-icons'\n\nimport {\n StyledHeaderPlaceholder,\n StyledHeader,\n StyledHeaderTitle,\n} from './header.styled'\nimport type { HeaderButtonProps } from './header-button'\nimport { HeaderButton } from './header-button'\n\ninterface IHeader {\n state: RangeCalendarState | CalendarState\n prevButtonProps: HeaderButtonProps\n nextButtonProps: HeaderButtonProps\n visibleMonths?: number\n}\n\nexport const Header = ({\n state,\n prevButtonProps,\n nextButtonProps,\n visibleMonths,\n}: IHeader): React.ReactNode => {\n const monthDateFormatter = useDateFormatter({\n month: 'long',\n year: 'numeric',\n timeZone: state.timeZone,\n })\n\n return (\n <StyledHeader>\n <HeaderButton {...prevButtonProps}>\n <IconChevronLeft />\n </HeaderButton>\n <StyledHeaderTitle level={2} styledAs='h3'>\n {monthDateFormatter.format(\n state.visibleRange.start.toDate(state.timeZone)\n )}\n </StyledHeaderTitle>\n {visibleMonths === 2 && (\n <>\n <StyledHeaderPlaceholder />\n <StyledHeaderTitle level={2} styledAs='h3'>\n {monthDateFormatter.format(\n state.visibleRange.start.add({ months: 1 }).toDate(state.timeZone)\n )}\n </StyledHeaderTitle>\n </>\n )}\n <HeaderButton {...nextButtonProps}>\n <IconChevronRight />\n </HeaderButton>\n </StyledHeader>\n )\n}\n","import type { ComponentPropsWithRef } from 'react'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { focus } from '@mirohq/design-system-styles'\n\nexport const StyledCell = styled(Primitive.td, {\n square: '$10',\n marginTop: '$50',\n position: 'relative',\n})\n\nexport const StyledCellContent = styled(Primitive.div, {\n cursor: 'pointer',\n square: '$10',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: '$50',\n color: '$text-neutrals',\n\n ...focus.css({\n top: '0',\n left: '0',\n position: 'absolute',\n zIndex: '1',\n boxShadow: '$focus',\n outline: '1px solid transparent',\n }),\n\n '&[aria-disabled=\"true\"]': {\n textDecoration: 'line-through',\n color: '$text-neutrals-disabled',\n cursor: 'default',\n },\n\n '&:not([aria-disabled=\"true\"])': {\n _hover: {\n backgroundColor: '$background-neutrals-subtle-hover',\n color: '$text-neutrals',\n },\n },\n\n variants: {\n today: {\n true: {\n backgroundColor: '$background-neutrals-subtle-hover',\n color: '$text-neutrals',\n },\n },\n selected: {\n true: {\n backgroundColor: '$background-primary-prominent-selected',\n color: '$text-neutrals-inverted',\n\n '&:not([aria-disabled=\"true\"])': {\n _hover: {\n backgroundColor: '$background-primary-prominent-hover',\n color: '$text-neutrals-inverted',\n },\n },\n },\n },\n range: {\n middle: {\n backgroundColor: '$background-primary-subtle-selected',\n color: '$text-neutrals',\n borderRadius: 0,\n\n '&:not([aria-disabled=\"true\"])': {\n _hover: {\n backgroundColor: '$background-primary-subtle-hover',\n },\n },\n },\n start: {\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n },\n end: {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n },\n },\n hidden: {\n true: {\n display: 'none',\n },\n },\n },\n})\n\nexport type StyledCellProps = ComponentPropsWithRef<typeof StyledCell>\n","import React, { useRef } from 'react'\nimport { useCalendarCell, useFocusRing, mergeProps } from 'react-aria'\nimport type { CalendarDate } from '@internationalized/date'\nimport {\n isSameDay,\n isSameMonth,\n isToday,\n getLocalTimeZone,\n} from '@internationalized/date'\nimport type { CalendarState, RangeCalendarState } from 'react-stately'\n\nimport type { StyledCellProps } from './cell.styled'\nimport { StyledCell, StyledCellContent } from './cell.styled'\n\nexport interface CellProps extends StyledCellProps {\n state: RangeCalendarState | CalendarState\n date: CalendarDate\n currentMonth: CalendarDate\n}\n\nexport const Cell = (props: CellProps): React.ReactNode => {\n let { state, date, currentMonth } = props\n const ref = useRef(null)\n const { cellProps, buttonProps, isSelected, formattedDate } = useCalendarCell(\n { date },\n state,\n ref\n )\n\n const isOutsideMonth = !isSameMonth(currentMonth, date)\n\n state = state as RangeCalendarState\n\n // The start and end date of the selected range will have\n // an emphasized appearance.\n const isSelectionStart =\n state.highlightedRange !== undefined && state.highlightedRange !== null\n ? isSameDay(date, state.highlightedRange.start)\n : isSelected\n const isSelectionEnd =\n state.highlightedRange !== undefined && state.highlightedRange !== null\n ? isSameDay(date, state.highlightedRange.end)\n : isSelected\n\n const { focusProps } = useFocusRing()\n\n // when it's both start and end, it's single date\n const isRange = isSelected && (!isSelectionStart || !isSelectionEnd)\n\n const rangeVariant = isRange\n ? isSelectionStart\n ? 'start'\n : isSelectionEnd\n ? 'end'\n : 'middle'\n : undefined\n\n return (\n <StyledCell {...cellProps}>\n <StyledCellContent\n {...mergeProps(buttonProps, focusProps)}\n ref={ref}\n selected={isSelected && (isSelectionStart || isSelectionEnd)}\n today={isToday(date, getLocalTimeZone())}\n range={rangeVariant}\n hidden={isOutsideMonth}\n >\n {formattedDate}\n </StyledCellContent>\n </StyledCell>\n )\n}\n","import type { ComponentPropsWithRef } from 'react'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\n\nexport const StyledGrid = styled(Primitive.table, {\n borderCollapse: 'separate',\n borderSpacing: ' 0 $50',\n})\n\nexport const StyledDays = styled(Primitive.th, {\n height: '$10',\n color: '$text-neutrals-subtle',\n fontWeight: '$regular',\n paddingTop: '$50',\n})\n\nexport type StyledGridProps = ComponentPropsWithRef<typeof StyledGrid>\n","import type { ElementRef } from 'react'\nimport React from 'react'\nimport type { CalendarDate, DateDuration } from '@internationalized/date'\nimport { getWeeksInMonth } from '@internationalized/date'\nimport type { AriaCalendarGridProps, DateRange } from 'react-aria'\nimport { useLocale, useCalendarGrid } from 'react-aria'\nimport type { CalendarState, RangeCalendarState } from 'react-stately'\n\nimport { Cell } from './cell'\nimport type { StyledGridProps } from './grid.styled'\nimport { StyledDays, StyledGrid } from './grid.styled'\n\nexport interface GridProps extends Omit<StyledGridProps, 'onChange'> {\n state: RangeCalendarState | CalendarState\n offset?: DateDuration\n onChange?: (value: DateRange) => void\n}\n\nexport const Grid = React.forwardRef<ElementRef<typeof StyledGrid>, GridProps>(\n (props, forwardRef) => {\n const { locale } = useLocale()\n const { state, offset = {} } = props\n const startDate: CalendarDate = state.visibleRange.start.add(offset)\n const { gridProps, headerProps, weekDays } = useCalendarGrid(\n props as AriaCalendarGridProps,\n state\n )\n\n // Get the number of weeks in the month so we can render the proper number of rows.\n const weeksInMonth = getWeeksInMonth(startDate, locale)\n\n return (\n <StyledGrid ref={forwardRef} {...gridProps} cellPadding='0'>\n <thead {...headerProps}>\n <tr>\n {weekDays.map((day, i) => (\n <StyledDays key={i}>\n <div>{day}</div>\n </StyledDays>\n ))}\n </tr>\n </thead>\n <tbody>\n {Array.from(Array(weeksInMonth).keys()).map(weekIndex => (\n <tr key={weekIndex}>\n {state\n .getDatesInWeek(weekIndex, startDate)\n .map((date: CalendarDate | null, i: number) =>\n date !== null ? (\n <Cell\n key={i}\n state={state}\n date={date}\n currentMonth={startDate}\n />\n ) : (\n <td key={i} />\n )\n )}\n </tr>\n ))}\n </tbody>\n </StyledGrid>\n )\n }\n)\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\n\nexport const StyledPredefinedRanges = styled(Primitive.div, {\n display: 'flex',\n flexDirection: 'column',\n borderRight: '1px solid $border-neutrals',\n padding: '$300 $200 0 0',\n\n '& button': {\n backgroundColor: '$transparent',\n border: 'none',\n fontSize: '$200',\n padding: '0 0 0 $100',\n textAlign: 'left',\n lineHeight: '24px',\n color: '$text-neutrals',\n marginBottom: '$150',\n borderRadius: '$50',\n minWidth: '125px',\n cursor: 'pointer',\n\n '&:hover': {\n backgroundColor: '$background-primary-prominent-hover',\n color: '$text-primary-inverted',\n fontWeight: '600',\n },\n },\n})\n","import React from 'react'\nimport { Button } from '@mirohq/design-system-button'\nimport type { DateRange, DateValue } from 'react-aria'\n\nimport { StyledPredefinedRanges } from './predefined-ranges.styled'\nimport { useCalendarContext } from '../use-calendar-context'\n\nexport const PredefinedRanges = (): React.ReactElement | null => {\n const { predefinedValues, onCalendarDateClick } = useCalendarContext<\n DateRange | DateValue\n >()\n\n if (predefinedValues === undefined) {\n return null\n }\n\n return (\n <StyledPredefinedRanges>\n {predefinedValues.map(item => (\n <Button\n variant='ghost'\n size='medium'\n key={item.id}\n type='button'\n onClick={() => onCalendarDateClick(item.value)}\n >\n {item.label}\n </Button>\n ))}\n </StyledPredefinedRanges>\n )\n}\n","import type { ElementRef, ReactElement, ReactNode } from 'react'\nimport React, { useRef } from 'react'\nimport { useCalendarState, useRangeCalendarState } from 'react-stately'\nimport { useCalendar, useRangeCalendar, useLocale } from 'react-aria'\nimport { createCalendar } from '@internationalized/date'\nimport { Flex } from '@mirohq/design-system-flex'\nimport type { DateRange, DateValue, AriaButtonProps } from 'react-aria'\nimport type { DOMAttributes } from '@react-types/shared'\nimport type { CalendarState, RangeCalendarState } from 'react-stately'\nimport { theme } from '@mirohq/design-system-stitches'\n\nimport { useCalendarContext } from '../use-calendar-context'\nimport type { StyledContentProps } from './content.styled'\nimport {\n StyledContent,\n StyledClearContent,\n StyledCalendarBody,\n StyledBodyContentLeft,\n StyledBodyContentRight,\n StyledGridContent,\n} from './content.styled'\nimport { Header } from './header'\nimport { Grid } from './grid'\nimport type { Align, PointerDownOutsideEvent, Side, Sticky } from '../types'\nimport type { HeaderButtonProps } from './header-button'\nimport { PredefinedRanges } from './predefined-ranges'\n\nexport const CONTENT_OFFSET = parseInt(theme.space[50])\n\nexport type ContentProps = StyledContentProps & {\n /**\n * Calendar's content.\n */\n children?: ReactNode\n\n /**\n * Event handler called when focus moves to the trigger after closing. It can\n * be prevented by calling event.preventDefault.\n */\n onCloseAutoFocus?: (event: Event) => void\n\n /**\n * Event handler called when focus moves to the trigger after closing. It can\n * be prevented by calling event.preventDefault.\n */\n onEscapeKeyDown?: (event: KeyboardEvent) => void\n\n /**\n * Event handler called when a pointer event occurs outside the bounds of the\n * component. It can be prevented by calling event.preventDefault.\n */\n onPointerDownOutside?: (event: PointerDownOutsideEvent) => void\n\n /**\n * The preferred side of the anchor to render against when open. Will be\n * reversed when collisions occur and avoidCollisions is enabled.\n * @default 'bottom'\n */\n side?: Side\n\n /**\n * The distance in pixels from the anchor.\n * @default CONTENT_OFFSET\n */\n sideOffset?: number\n\n /**\n * The preferred alignment against the anchor. May change when collisions\n * occur.\n * @default 'start'\n */\n align?: Align\n\n /**\n * An offset in pixels from the \"start\" or \"end\" alignment options.\n * @default 0\n */\n alignOffset?: number\n\n /**\n * When true, overrides the side and align preferences to prevent collisions\n * with boundary edges.\n * @default true\n */\n avoidCollisions?: boolean\n\n /**\n * The element used as the collision boundary. By default this is the\n * viewport, though you can provide additional element(s) to be included in\n * this check.\n */\n collisionBoundary?: Element | null\n\n /**\n * The distance in pixels from the boundary edges where collision detection\n * should occur. Accepts a number (same for all sides), or a partial padding\n * object, for example: { top: 20, left: 20 }.\n * @default 0\n */\n collisionPadding?: number | Partial<Record<Side, number>>\n\n /**\n * The sticky behavior on the align axis. \"partial\" will keep the content in the\n * boundary as long as the trigger is at least partially in the boundary whilst\n * \"always\" will keep the content in the boundary regardless.\n * @default 'partial'\n */\n sticky?: Sticky\n\n /**\n * Whether to hide the content when the trigger becomes fully occluded.\n * @default true\n */\n hideWhenDetached?: boolean\n}\n\ninterface SharedContentProps {\n calendarProps: DOMAttributes\n prevButtonProps: AriaButtonProps\n nextButtonProps: AriaButtonProps\n state: RangeCalendarState | CalendarState\n}\n\nconst SharedContent = React.forwardRef<HTMLDivElement, SharedContentProps>(\n ({ calendarProps, prevButtonProps, nextButtonProps, state }, forwardRef) => {\n const { visibleDuration } = useCalendarContext<DateValue>()\n\n return (\n <StyledCalendarBody {...calendarProps} ref={forwardRef}>\n <PredefinedRanges />\n <Flex direction='column'>\n <Header\n state={state}\n prevButtonProps={prevButtonProps as HeaderButtonProps}\n nextButtonProps={nextButtonProps as HeaderButtonProps}\n visibleMonths={visibleDuration.months}\n />\n <StyledGridContent>\n <StyledBodyContentLeft>\n <Grid state={state} />\n </StyledBodyContentLeft>\n {visibleDuration.months === 2 && (\n <StyledBodyContentRight>\n <Grid state={state} offset={{ months: 1 }} />\n </StyledBodyContentRight>\n )}\n </StyledGridContent>\n </Flex>\n </StyledCalendarBody>\n )\n }\n)\n\nconst DatePickerContent = (): ReactElement => {\n const { locale } = useLocale()\n\n const {\n calendarValue,\n visibleDuration,\n minDate,\n maxDate,\n onCalendarDateClick,\n } = useCalendarContext<DateValue>()\n\n const state = useCalendarState({\n value: calendarValue,\n visibleDuration,\n minValue: minDate,\n maxValue: maxDate,\n autoFocus: true,\n onChange: onCalendarDateClick,\n locale,\n createCalendar,\n })\n\n const { calendarProps, prevButtonProps, nextButtonProps } = useCalendar(\n {},\n state\n )\n\n return (\n <SharedContent\n calendarProps={calendarProps}\n prevButtonProps={prevButtonProps}\n nextButtonProps={nextButtonProps}\n state={state}\n />\n )\n}\n\nconst RangePickerContent = (): ReactElement => {\n const { locale } = useLocale()\n\n const {\n calendarValue,\n visibleDuration,\n minDate,\n maxDate,\n onCalendarDateClick,\n } = useCalendarContext<DateRange>()\n\n const ref = useRef<HTMLDivElement>(null)\n\n const state = useRangeCalendarState({\n value: calendarValue,\n visibleDuration,\n minValue: minDate,\n maxValue: maxDate,\n autoFocus: true,\n onChange: onCalendarDateClick,\n locale,\n createCalendar,\n })\n\n const { calendarProps, prevButtonProps, nextButtonProps } = useRangeCalendar(\n {},\n state,\n ref\n )\n\n return (\n <SharedContent\n ref={ref}\n calendarProps={calendarProps}\n prevButtonProps={prevButtonProps}\n nextButtonProps={nextButtonProps}\n state={state}\n />\n )\n}\n\nexport const Content = React.forwardRef<\n ElementRef<typeof StyledContent>,\n ContentProps\n>(\n (\n {\n side = 'bottom',\n sideOffset = CONTENT_OFFSET,\n align = 'start',\n alignOffset = 0,\n collisionPadding = 0,\n avoidCollisions = true,\n sticky = 'partial',\n hideWhenDetached = true,\n children,\n ...restProps\n },\n forwardRef\n ) => {\n const { picker, open } = useCalendarContext()\n\n if (!open) {\n return null\n }\n\n return (\n <StyledContent\n {...restProps}\n ref={forwardRef}\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n collisionPadding={collisionPadding}\n avoidCollisions={avoidCollisions}\n sticky={sticky}\n hideWhenDetached={hideWhenDetached}\n >\n <Flex direction='column'>\n {picker === 'single' ? <DatePickerContent /> : <RangePickerContent />}\n {children != null && (\n <StyledClearContent>{children}</StyledClearContent>\n )}\n </Flex>\n </StyledContent>\n )\n }\n)\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { ComponentPropsWithRef } from 'react'\n\nexport const StyledValue = styled(Primitive.span, {})\n\nexport type StyledValueProps = ComponentPropsWithRef<typeof StyledValue>\n","import type { ElementRef } from 'react'\nimport React, { useMemo } from 'react'\nimport type { DateRange, DateValue } from '@react-types/datepicker'\nimport type { DateFormatter } from 'react-aria'\nimport { useDateFormatter } from 'react-aria'\nimport { getLocalTimeZone } from '@internationalized/date'\n\nimport type { StyledValueProps } from './value.styled'\nimport { StyledValue } from './value.styled'\nimport { useCalendarContext } from '../use-calendar-context'\n\ntype FormatOptions = Pick<\n Intl.DateTimeFormatOptions,\n 'weekday' | 'era' | 'year' | 'month' | 'day' | 'formatMatcher'\n>\n\nexport type ValueProps = StyledValueProps & {\n format?: FormatOptions\n}\n\nconst DEFAULT_FORMAT: FormatOptions = {\n day: '2-digit',\n month: 'short',\n year: 'numeric',\n}\n\nfunction formatDate(\n date: DateValue,\n formatter: DateFormatter,\n timeZone: string\n): string | undefined {\n return formatter.format(date.toDate(timeZone))\n}\n\nfunction formatValue(\n value: DateValue | DateRange | undefined | null,\n formatter: DateFormatter,\n timeZone: string\n): string | undefined {\n if (value == null || value === undefined) {\n return undefined\n }\n\n if ('start' in value) {\n if (value.start == null || value.end == null) {\n return undefined\n }\n\n return `${formatDate(value.start, formatter, timeZone)} - ${formatDate(\n value.end,\n formatter,\n timeZone\n )}`\n }\n\n return formatDate(value, formatter, timeZone)\n}\n\nexport const Value = React.forwardRef<\n ElementRef<typeof StyledValue>,\n ValueProps\n>(({ format = DEFAULT_FORMAT, ...restProps }, forwardRef) => {\n const { value } = useCalendarContext()\n\n const timeZone = useMemo(getLocalTimeZone, [format])\n\n const formatWithTimeZone = useMemo(\n () => ({ ...format, timeZone }),\n [format, timeZone]\n )\n const dateFormatter = useDateFormatter(formatWithTimeZone)\n\n const valueToDisplay = formatValue(value, dateFormatter, timeZone)\n\n return (\n <StyledValue ref={forwardRef} {...restProps}>\n {valueToDisplay}\n </StyledValue>\n )\n})\n","import type { ElementRef } from 'react'\nimport React from 'react'\nimport { Button } from '@mirohq/design-system-button'\nimport type { BaseButtonProps } from '@mirohq/design-system-base-button'\n\nimport { useCalendarContext } from '../use-calendar-context'\n\nexport type ClearButtonProps = BaseButtonProps & {\n /**\n * Event handler called when the calendar value is cleared\n */\n onClear?: () => void\n}\n\nexport const ClearButton = React.forwardRef<\n ElementRef<typeof Button>,\n ClearButtonProps\n>(({ onClear, children, ...restProps }, forwardRef) => {\n const { value, setValue } = useCalendarContext()\n\n const onClearHandler = (): void => {\n setValue(undefined)\n if (onClear !== undefined) {\n onClear()\n }\n }\n\n return (\n <Button\n {...restProps}\n ref={forwardRef}\n variant='ghost'\n size='medium'\n onClick={onClearHandler}\n disabled={value === null}\n >\n {children}\n </Button>\n )\n}) as React.ForwardRefExoticComponent<ClearButtonProps>\n","import type { ElementRef } from 'react'\nimport React, { useEffect } from 'react'\nimport { Button } from '@mirohq/design-system-button'\nimport type { BaseButtonProps } from '@mirohq/design-system-base-button'\n\nimport { useCalendarContext } from '../use-calendar-context'\n\nexport type SaveButtonProps = BaseButtonProps & {\n /**\n * Event handler called when the calendar value is saved\n */\n onSave?: () => void\n}\n\nexport const SaveButton = React.forwardRef<\n ElementRef<typeof Button>,\n SaveButtonProps\n>(({ onSave, children, ...restProps }, forwardRef) => {\n const { setImmediateSave, onSaveClick } = useCalendarContext()\n\n useEffect(() => {\n setImmediateSave(true)\n\n return () => setImmediateSave(false)\n }, [setImmediateSave])\n\n const onSaveHandler = (): void => {\n onSaveClick()\n if (onSave !== undefined) {\n onSave()\n }\n }\n\n return (\n <Button\n ref={forwardRef}\n {...restProps}\n variant='primary'\n size='medium'\n onClick={onSaveHandler}\n >\n {children}\n </Button>\n )\n}) as React.ForwardRefExoticComponent<SaveButtonProps>\n","import { styled } from '@mirohq/design-system-stitches'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport type { ComponentPropsWithRef } from 'react'\n\nexport const StyledCalendar = styled(Primitive.div, {\n position: 'relative',\n})\nexport type StyledCalendarProps = ComponentPropsWithRef<typeof StyledCalendar>\n","import type { ElementRef, ForwardRefExoticComponent } from 'react'\nimport React from 'react'\nimport { I18nProvider } from 'react-aria'\nimport * as RadixPopover from '@radix-ui/react-popover'\nimport type { DateRange, DateValue } from 'react-aria'\n\nimport type { CalendarDatePickerProps, CalendarRangePickerProps } from './types'\nimport { Trigger } from './partials/trigger'\nimport { Content } from './partials/content'\nimport type { CalendarProviderProps } from './use-calendar-context'\nimport { CalendarProvider, useCalendarContext } from './use-calendar-context'\nimport { Value } from './partials/value'\nimport { ClearButton } from './partials/clear-button'\nimport { SaveButton } from './partials/save-button'\nimport { StyledCalendar } from './calendar.styled'\n\n// If an unrecognised locale string is passed in, the component will error, this protects from that by defaulting to English\n// https://github.com/adobe/react-spectrum/issues/7457\nfunction getValidLocale(locale: string | undefined): string {\n if (locale === undefined) {\n return 'en'\n }\n\n try {\n Intl.DateTimeFormat.supportedLocalesOf(locale)\n return locale\n } catch {\n try {\n // the client locale is in the format of ja_JP, but Intl.DateTimeFormat expects ja-JP\n // https://github.com/formatjs/formatjs/discussions/2440\n const localeWithDashes = locale.replace(/_/g, '-')\n Intl.DateTimeFormat.supportedLocalesOf(localeWithDashes)\n return localeWithDashes\n } catch {\n return 'en'\n }\n }\n}\n\nexport type CalendarProps = (\n | CalendarDatePickerProps\n | CalendarRangePickerProps\n) & {\n /**\n * The locale for Calendar internationalization\n */\n locale?: string\n}\n\ninterface CalendarRootProps {\n children: React.ReactNode\n}\n\nconst Root = React.forwardRef<\n ElementRef<typeof StyledCalendar>,\n CalendarRootProps\n>(({ children, ...restProps }, forwardRef) => {\n const { open, setOpen } = useCalendarContext()\n\n return (\n <RadixPopover.Root open={open} onOpenChange={setOpen}>\n <StyledCalendar ref={forwardRef} {...restProps}>\n {children}\n </StyledCalendar>\n </RadixPopover.Root>\n )\n})\n\nexport const Calendar = React.forwardRef<\n ElementRef<typeof StyledCalendar>,\n CalendarProps\n>(\n (\n {\n picker,\n defaultValue,\n value,\n onValueChange,\n defaultOpen,\n open,\n onClose,\n onOpen,\n locale,\n visibleMonths,\n minDate,\n maxDate,\n disabled,\n 'aria-disabled': ariaDisabled,\n children,\n predefinedValues,\n ...props\n },\n forwardRef\n ) => {\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n const providerProps = {\n picker,\n defaultValue,\n value,\n onValueChange,\n visibleMonths,\n minDate,\n maxDate,\n defaultOpen,\n open,\n onClose,\n onOpen,\n disabled,\n ariaDisabled,\n predefinedValues,\n } as CalendarProviderProps<DateValue> | CalendarProviderProps<DateRange>\n\n const validatedLocale = getValidLocale(locale)\n\n return (\n <I18nProvider locale={validatedLocale}>\n <CalendarProvider {...(providerProps as any)}>\n <Root {...props} ref={forwardRef}>\n {children}\n </Root>\n </CalendarProvider>\n </I18nProvider>\n )\n }\n) as ForwardRefExoticComponent<CalendarProps> & Partials\n\nexport interface Partials {\n Trigger: typeof Trigger\n Content: typeof Content\n Value: typeof Value\n ClearButton: typeof ClearButton\n SaveButton: typeof SaveButton\n}\n\nCalendar.Trigger = Trigger\nCalendar.Content = Content\nCalendar.Value = Value\nCalendar.ClearButton = ClearButton\nCalendar.SaveButton = SaveButton\n"],"names":["StyledValue","value","RadixTrigger","RadixContent"],"mappings":"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"}
1
+ {"version":3,"file":"module.js","sources":["../src/partials/trigger.styled.tsx","../src/partials/clear-action.styled.tsx","../src/partials/clear-action.tsx","../src/use-calendar-context.tsx","../src/partials/trigger.tsx","../src/partials/content.styled.tsx","../src/partials/header.styled.tsx","../src/partials/header-button.tsx","../src/partials/header.tsx","../src/partials/cell.styled.tsx","../src/partials/cell.tsx","../src/partials/grid.styled.tsx","../src/partials/grid.tsx","../src/partials/predefined-ranges.styled.tsx","../src/partials/predefined-ranges.tsx","../src/partials/content.tsx","../src/partials/value.styled.tsx","../src/partials/value.tsx","../src/partials/clear-button.tsx","../src/partials/save-button.tsx","../src/calendar.styled.tsx","../src/calendar.tsx"],"sourcesContent":["import { Primitive } from '@mirohq/design-system-primitive'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { textFieldStyles } from '@mirohq/design-system-base-text-field'\nimport { focus } from '@mirohq/design-system-styles'\nimport { BaseButton } from '@mirohq/design-system-base-button'\n\nexport const StyledPlaceholder = styled(Primitive.span, {\n color: textFieldStyles.base.placeholder.color,\n padding: '0 $50',\n})\n\nexport const StyledValue = styled(Primitive.span, {\n padding: '0 $50',\n})\n\nexport const StyledIconContainer = styled(Primitive.span, {\n display: 'flex',\n justifyContent: 'center',\n padding: '6px',\n color: '$text-neutrals-subtle',\n})\n\nexport const StyledTrigger = styled(BaseButton, {\n display: 'inline-flex',\n gap: '$50',\n justifyContent: 'space-between',\n alignItems: 'center',\n height: '$10',\n padding: '0 $100',\n minWidth: '230px',\n\n ...textFieldStyles.variants.idle,\n\n _hover: textFieldStyles.variants.hovered,\n ...focus.css({\n boxShadow: '$focus',\n }),\n\n '&:disabled, &[aria-disabled=\"true\"]': {\n ...textFieldStyles.variants.disabled,\n color: '$text-neutrals-disabled',\n },\n\n variants: {\n withClearButton: {\n true: {\n paddingRight: 'calc($100 + $400)', // initial left padding + clear button width + gap\n },\n },\n },\n})\n\nexport const StyledCustomTrigger = styled(BaseButton, {\n width: '100%',\n height: 'unset',\n padding: '0',\n backgroundColor: '$transparent',\n border: 'none',\n cursor: 'pointer',\n})\n\nexport type StyledTriggerProps = StrictComponentProps<typeof StyledTrigger>\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { ComponentPropsWithRef } from 'react'\nimport { actionButtonStyles } from '@mirohq/design-system-base-text-field'\nimport { BaseButton } from '@mirohq/design-system-base-button'\n\nexport const StyledClearAction = styled(BaseButton, {\n position: 'absolute',\n top: 0,\n bottom: 0,\n right: 'calc($100 + 1px)', // to compensate border width\n margin: 'auto',\n\n ...actionButtonStyles,\n\n '&:disabled, &[aria-disabled=\"true\"]': {\n color: '$icon-neutrals-disabled',\n },\n})\n\nexport type StyledClearActionProps = ComponentPropsWithRef<\n typeof StyledClearAction\n>\n","import type { ElementRef } from 'react'\nimport React from 'react'\nimport { IconCross } from '@mirohq/design-system-icons'\nimport { Tooltip } from '@mirohq/design-system-tooltip'\n\nimport type { StyledClearActionProps } from './clear-action.styled'\nimport { StyledClearAction } from './clear-action.styled'\n\ninterface ClearActionProps extends Omit<StyledClearActionProps, 'children'> {\n label: string\n}\n\nexport const ClearAction = React.forwardRef<\n ElementRef<typeof StyledClearAction>,\n ClearActionProps\n>(({ 'aria-label': ariaLabel, label, ...restProps }, forwardRef) => (\n <Tooltip>\n <Tooltip.Trigger asChild>\n <StyledClearAction\n {...restProps}\n ref={forwardRef}\n aria-label={ariaLabel ?? label}\n >\n <IconCross />\n </StyledClearAction>\n </Tooltip.Trigger>\n <Tooltip.Content>{label}</Tooltip.Content>\n </Tooltip>\n))\n","import React, {\n createContext,\n useCallback,\n useContext,\n useMemo,\n useState,\n} from 'react'\nimport type { DateRange, DateValue } from 'react-aria'\nimport type { DateDuration } from '@internationalized/date'\nimport { useControllableState } from '@radix-ui/react-use-controllable-state'\nimport type { Booleanish } from '@mirohq/design-system-types'\n\nimport type { PredefinedValue } from './types'\n\ninterface SharedProps<T extends DateRange | DateValue> {\n picker: 'single' | 'range'\n minDate?: DateValue\n maxDate?: DateValue\n disabled?: boolean\n ariaDisabled?: Booleanish\n predefinedValues?: Array<PredefinedValue<T>>\n}\n\ninterface CalendarContextProps<T extends DateRange | DateValue>\n extends SharedProps<T> {\n visibleDuration: DateDuration\n\n value?: T\n setValue: React.Dispatch<React.SetStateAction<T | undefined>>\n\n open: boolean\n setOpen: React.Dispatch<React.SetStateAction<boolean | undefined>>\n\n setImmediateSave: React.Dispatch<React.SetStateAction<boolean>>\n\n calendarValue?: T | null\n calendarDefaultValue?: T | null\n onCalendarDateClick: (date: T) => void\n onSaveClick: () => void\n}\n\nexport interface CalendarProviderProps<T extends DateRange | DateValue>\n extends SharedProps<T> {\n children?: React.ReactNode\n visibleMonths?: number\n\n defaultValue?: T\n value?: T\n onValueChange?: (value: T | undefined) => void\n\n defaultOpen?: boolean\n open?: boolean\n onOpen?: () => void\n onClose?: () => void\n}\n\nconst CalendarContext = createContext<CalendarContextProps<any>>({} as any)\n\nexport const CalendarProvider = <T extends DateRange | DateValue>({\n children,\n visibleMonths = 1,\n value: valueProp,\n defaultValue: defaultValueProp,\n onValueChange,\n open: openProp,\n defaultOpen: defaultOpenProp,\n onOpen,\n onClose,\n ...restProps\n}: CalendarProviderProps<T>): JSX.Element => {\n const [immediateSave, setImmediateSave] = useState(false)\n const [internalCalendarValue, setInternalCalendarValue] = useState<\n T | undefined\n >(valueProp ?? defaultValueProp)\n\n const visibleDuration = useMemo(\n () => ({\n months: visibleMonths,\n }),\n [visibleMonths]\n )\n\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValueProp,\n onChange: onValueChange,\n })\n\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpenProp,\n onChange: state => {\n if (state) {\n onOpen?.()\n } else {\n onClose?.()\n }\n },\n })\n\n const onCalendarDateClick = useCallback(\n (value: T): void => {\n if (immediateSave) {\n setInternalCalendarValue(value)\n } else {\n setValue(value)\n setOpen(false)\n }\n },\n [setValue, setOpen, immediateSave, setInternalCalendarValue]\n )\n\n const onSaveClick = (): void => {\n setValue(internalCalendarValue)\n setOpen(false)\n }\n\n return (\n <CalendarContext.Provider\n value={{\n ...restProps,\n visibleDuration,\n value: value,\n setValue,\n open,\n setOpen,\n onCalendarDateClick,\n setImmediateSave,\n onSaveClick,\n // value should not be undefined otherwise react-aria calendar will complain in console\n calendarValue: (immediateSave ? internalCalendarValue : value) ?? null,\n }}\n >\n {children}\n </CalendarContext.Provider>\n )\n}\n\nexport const useCalendarContext = <\n T extends DateRange | DateValue\n>(): CalendarContextProps<T> => useContext(CalendarContext)\n","import type { ElementRef } from 'react'\nimport React from 'react'\nimport { IconCalendarBlank } from '@mirohq/design-system-icons'\nimport { useFormFieldContext } from '@mirohq/design-system-base-form'\nimport { Trigger as RadixTrigger } from '@radix-ui/react-popover'\nimport { booleanify, stringAttrValue } from '@mirohq/design-system-utils'\n\nimport type { StyledTriggerProps } from './trigger.styled'\nimport {\n StyledIconContainer,\n StyledCustomTrigger,\n StyledPlaceholder,\n StyledTrigger,\n StyledValue,\n} from './trigger.styled'\nimport { ClearAction } from './clear-action'\nimport { useCalendarContext } from '../use-calendar-context'\n\ntype TriggerSharedProps = Omit<StyledTriggerProps, 'withClearButton'> & {\n /**\n * The content that will be rendered inside the Calendar trigger when there is no value\n */\n placeholder?: string\n\n /**\n * Show a button to clear the Calendar value\n * @default false\n */\n clearable?: boolean\n\n /**\n * The content\n */\n children: React.ReactNode\n}\n\nexport type TriggerProps = TriggerSharedProps &\n (\n | { clearable: false; clearLabel?: never; onClear?: never }\n | {\n /**\n * Event handler called when the calendar is cleared\n */\n onClear?: () => void\n\n /**\n * The label text for Trigger's action button when Combobox has values selected. Will be rendered in a Tooltip.\n */\n clearLabel: string\n }\n )\n\nexport const Trigger = React.forwardRef<ElementRef<'button'>, TriggerProps>(\n (\n {\n id,\n 'aria-describedby': ariaDescribedBy,\n placeholder,\n asChild = false,\n clearable = true,\n clearLabel,\n onClear,\n children,\n ...restProps\n },\n forwardRef\n ) => {\n const { value, setValue, disabled, ariaDisabled } = useCalendarContext()\n\n const { formElementId, ariaDescribedBy: formFieldContextDescribedBy } =\n useFormFieldContext()\n\n if (asChild) {\n return (\n <RadixTrigger ref={forwardRef} asChild>\n <StyledCustomTrigger asChild {...restProps}>\n {children}\n </StyledCustomTrigger>\n </RadixTrigger>\n )\n }\n\n const onClearHandler = (): void => {\n setValue(undefined)\n if (onClear !== undefined) {\n onClear()\n }\n }\n\n const clearButtonVisible =\n clearable && value != null && clearLabel !== undefined\n\n return (\n <>\n <RadixTrigger ref={forwardRef} asChild>\n <StyledTrigger\n id={id ?? formElementId}\n aria-describedby={stringAttrValue(\n ariaDescribedBy,\n formFieldContextDescribedBy\n )}\n withClearButton={clearButtonVisible}\n disabled={disabled}\n aria-disabled={ariaDisabled}\n {...restProps}\n >\n {value != null ? (\n <StyledValue>{children}</StyledValue>\n ) : (\n <StyledPlaceholder>{placeholder}</StyledPlaceholder>\n )}\n\n {!clearButtonVisible && (\n <StyledIconContainer>\n <IconCalendarBlank size='small' />\n </StyledIconContainer>\n )}\n </StyledTrigger>\n </RadixTrigger>\n {clearButtonVisible && (\n <ClearAction\n label={clearLabel}\n onPress={onClearHandler}\n disabled={disabled ?? booleanify(ariaDisabled)}\n />\n )}\n </>\n )\n }\n)\n","import type { ComponentPropsWithRef } from 'react'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { Flex } from '@mirohq/design-system-flex'\nimport { Content as RadixContent } from '@radix-ui/react-popover'\n\nexport const StyledContent = styled(RadixContent, {\n zIndex: '$calendar',\n background: '$background-neutrals',\n borderRadius: '$100',\n boxShadow: '$100',\n})\n\nexport const StyledCalendarBody = styled(Flex, {\n padding: '$200',\n gap: '$200',\n})\n\nexport const StyledGridContent = styled(Flex, {})\n\nexport const StyledBodyContentLeft = styled(Primitive.div, {})\n\nexport const StyledBodyContentRight = styled(Primitive.div, {\n paddingLeft: '$200',\n})\n\nexport const StyledClearContent = styled(Primitive.div, {\n display: 'flex',\n gap: '$100',\n padding: '$200',\n borderTop: '1px solid $border-neutrals',\n})\n\nexport type StyledContentProps = ComponentPropsWithRef<typeof StyledContent>\n","import { styled } from '@mirohq/design-system-stitches'\nimport { Flex } from '@mirohq/design-system-flex'\nimport { Heading } from '@mirohq/design-system-typography'\n\nexport const StyledHeaderTitle = styled(Heading, {\n margin: 0,\n flex: '2',\n textAlign: 'center',\n})\n\nexport const StyledHeaderPlaceholder = styled('div', {\n height: '$8',\n // to compensate icon buttons' width and space between 2 calendars\n width: 'calc($8 * 2 + $space$200)',\n})\n\nexport const StyledHeader = styled(Flex, {\n color: '$text-neutrals',\n height: '$8',\n alignItems: 'center',\n justifyContent: 'space-between',\n})\n","import type { ElementRef } from 'react'\nimport React from 'react'\nimport type { IconButtonProps } from '@mirohq/design-system-icon-button'\nimport { IconButton } from '@mirohq/design-system-icon-button'\n\nexport type HeaderButtonProps = IconButtonProps & {\n onFocus?: () => void\n onPress?: () => void\n isDisabled?: boolean // name comes from react-aria\n 'aria-label': string\n}\n\nexport const HeaderButton = React.forwardRef<\n ElementRef<'button'>,\n HeaderButtonProps\n>(({ isDisabled, children, ...restProps }, forwardRef) => (\n <IconButton\n {...restProps}\n size='medium'\n disabled={isDisabled}\n ref={forwardRef}\n >\n {children}\n </IconButton>\n)) as React.ForwardRefExoticComponent<HeaderButtonProps>\n","import React from 'react'\nimport { useDateFormatter } from 'react-aria'\nimport type { CalendarState, RangeCalendarState } from 'react-stately'\nimport { IconChevronLeft, IconChevronRight } from '@mirohq/design-system-icons'\n\nimport {\n StyledHeaderPlaceholder,\n StyledHeader,\n StyledHeaderTitle,\n} from './header.styled'\nimport type { HeaderButtonProps } from './header-button'\nimport { HeaderButton } from './header-button'\n\ninterface IHeader {\n state: RangeCalendarState | CalendarState\n prevButtonProps: HeaderButtonProps\n nextButtonProps: HeaderButtonProps\n visibleMonths?: number\n}\n\nexport const Header = ({\n state,\n prevButtonProps,\n nextButtonProps,\n visibleMonths,\n}: IHeader): React.ReactNode => {\n const monthDateFormatter = useDateFormatter({\n month: 'long',\n year: 'numeric',\n timeZone: state.timeZone,\n })\n\n return (\n <StyledHeader>\n <HeaderButton {...prevButtonProps}>\n <IconChevronLeft />\n </HeaderButton>\n <StyledHeaderTitle level={2} styledAs='h3'>\n {monthDateFormatter.format(\n state.visibleRange.start.toDate(state.timeZone)\n )}\n </StyledHeaderTitle>\n {visibleMonths === 2 && (\n <>\n <StyledHeaderPlaceholder />\n <StyledHeaderTitle level={2} styledAs='h3'>\n {monthDateFormatter.format(\n state.visibleRange.start.add({ months: 1 }).toDate(state.timeZone)\n )}\n </StyledHeaderTitle>\n </>\n )}\n <HeaderButton {...nextButtonProps}>\n <IconChevronRight />\n </HeaderButton>\n </StyledHeader>\n )\n}\n","import type { ComponentPropsWithRef } from 'react'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { focus } from '@mirohq/design-system-styles'\n\nexport const StyledCell = styled(Primitive.td, {\n square: '$10',\n marginTop: '$50',\n position: 'relative',\n})\n\nexport const StyledCellContent = styled(Primitive.div, {\n cursor: 'pointer',\n square: '$10',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: '$50',\n color: '$text-neutrals',\n\n ...focus.css({\n top: '0',\n left: '0',\n position: 'absolute',\n zIndex: '1',\n boxShadow: '$focus',\n outline: '1px solid transparent',\n }),\n\n '&[aria-disabled=\"true\"]': {\n textDecoration: 'line-through',\n color: '$text-neutrals-disabled',\n cursor: 'default',\n },\n\n '&:not([aria-disabled=\"true\"])': {\n _hover: {\n backgroundColor: '$background-neutrals-subtle-hover',\n color: '$text-neutrals',\n },\n },\n\n variants: {\n today: {\n true: {\n backgroundColor: '$background-neutrals-subtle-hover',\n color: '$text-neutrals',\n },\n },\n selected: {\n true: {\n backgroundColor: '$background-primary-prominent-selected',\n color: '$text-neutrals-inverted',\n\n '&:not([aria-disabled=\"true\"])': {\n _hover: {\n backgroundColor: '$background-primary-prominent-hover',\n color: '$text-neutrals-inverted',\n },\n },\n },\n },\n range: {\n middle: {\n backgroundColor: '$background-primary-subtle-selected',\n color: '$text-neutrals',\n borderRadius: 0,\n\n '&:not([aria-disabled=\"true\"])': {\n _hover: {\n backgroundColor: '$background-primary-subtle-hover',\n },\n },\n },\n start: {\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n },\n end: {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n },\n },\n hidden: {\n true: {\n display: 'none',\n },\n },\n },\n})\n\nexport type StyledCellProps = ComponentPropsWithRef<typeof StyledCell>\n","import React, { useRef } from 'react'\nimport { useCalendarCell, useFocusRing, mergeProps } from 'react-aria'\nimport type { CalendarDate } from '@internationalized/date'\nimport {\n isSameDay,\n isSameMonth,\n isToday,\n getLocalTimeZone,\n} from '@internationalized/date'\nimport type { CalendarState, RangeCalendarState } from 'react-stately'\n\nimport type { StyledCellProps } from './cell.styled'\nimport { StyledCell, StyledCellContent } from './cell.styled'\n\nexport interface CellProps extends StyledCellProps {\n state: RangeCalendarState | CalendarState\n date: CalendarDate\n currentMonth: CalendarDate\n}\n\nexport const Cell = (props: CellProps): React.ReactNode => {\n let { state, date, currentMonth } = props\n const ref = useRef(null)\n const { cellProps, buttonProps, isSelected, formattedDate } = useCalendarCell(\n { date },\n state,\n ref\n )\n\n const isOutsideMonth = !isSameMonth(currentMonth, date)\n\n state = state as RangeCalendarState\n\n // The start and end date of the selected range will have\n // an emphasized appearance.\n const isSelectionStart =\n state.highlightedRange !== undefined && state.highlightedRange !== null\n ? isSameDay(date, state.highlightedRange.start)\n : isSelected\n const isSelectionEnd =\n state.highlightedRange !== undefined && state.highlightedRange !== null\n ? isSameDay(date, state.highlightedRange.end)\n : isSelected\n\n const { focusProps } = useFocusRing()\n\n // when it's both start and end, it's single date\n const isRange = isSelected && (!isSelectionStart || !isSelectionEnd)\n\n const rangeVariant = isRange\n ? isSelectionStart\n ? 'start'\n : isSelectionEnd\n ? 'end'\n : 'middle'\n : undefined\n\n return (\n <StyledCell {...cellProps}>\n <StyledCellContent\n {...mergeProps(buttonProps, focusProps)}\n ref={ref}\n selected={isSelected && (isSelectionStart || isSelectionEnd)}\n today={isToday(date, getLocalTimeZone())}\n range={rangeVariant}\n hidden={isOutsideMonth}\n >\n {formattedDate}\n </StyledCellContent>\n </StyledCell>\n )\n}\n","import type { ComponentPropsWithRef } from 'react'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\n\nexport const StyledGrid = styled(Primitive.table, {\n borderCollapse: 'separate',\n borderSpacing: ' 0 $50',\n})\n\nexport const StyledDays = styled(Primitive.th, {\n height: '$10',\n color: '$text-neutrals-subtle',\n fontWeight: '$regular',\n paddingTop: '$50',\n})\n\nexport type StyledGridProps = ComponentPropsWithRef<typeof StyledGrid>\n","import type { ElementRef } from 'react'\nimport React from 'react'\nimport type { CalendarDate, DateDuration } from '@internationalized/date'\nimport { getWeeksInMonth } from '@internationalized/date'\nimport type { AriaCalendarGridProps, DateRange } from 'react-aria'\nimport { useLocale, useCalendarGrid } from 'react-aria'\nimport type { CalendarState, RangeCalendarState } from 'react-stately'\n\nimport { Cell } from './cell'\nimport type { StyledGridProps } from './grid.styled'\nimport { StyledDays, StyledGrid } from './grid.styled'\n\nexport interface GridProps extends Omit<StyledGridProps, 'onChange'> {\n state: RangeCalendarState | CalendarState\n offset?: DateDuration\n onChange?: (value: DateRange) => void\n}\n\nexport const Grid = React.forwardRef<ElementRef<typeof StyledGrid>, GridProps>(\n (props, forwardRef) => {\n const { locale } = useLocale()\n const { state, offset = {} } = props\n const startDate: CalendarDate = state.visibleRange.start.add(offset)\n const { gridProps, headerProps, weekDays } = useCalendarGrid(\n props as AriaCalendarGridProps,\n state\n )\n\n // Get the number of weeks in the month so we can render the proper number of rows.\n const weeksInMonth = getWeeksInMonth(startDate, locale)\n\n return (\n <StyledGrid ref={forwardRef} {...gridProps} cellPadding='0'>\n <thead {...headerProps}>\n <tr>\n {weekDays.map((day, i) => (\n <StyledDays key={i}>\n <div>{day}</div>\n </StyledDays>\n ))}\n </tr>\n </thead>\n <tbody>\n {Array.from(Array(weeksInMonth).keys()).map(weekIndex => (\n <tr key={weekIndex}>\n {state\n .getDatesInWeek(weekIndex, startDate)\n .map((date: CalendarDate | null, i: number) =>\n date !== null ? (\n <Cell\n key={i}\n state={state}\n date={date}\n currentMonth={startDate}\n />\n ) : (\n <td key={i} />\n )\n )}\n </tr>\n ))}\n </tbody>\n </StyledGrid>\n )\n }\n)\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\n\nexport const StyledPredefinedRanges = styled(Primitive.div, {\n display: 'flex',\n flexDirection: 'column',\n borderRight: '1px solid $border-neutrals',\n padding: '$300 $200 0 0',\n\n '& button': {\n backgroundColor: '$transparent',\n border: 'none',\n fontSize: '$200',\n padding: '0 0 0 $100',\n textAlign: 'left',\n lineHeight: '24px',\n color: '$text-neutrals',\n marginBottom: '$150',\n borderRadius: '$50',\n minWidth: '125px',\n cursor: 'pointer',\n\n '&:hover': {\n backgroundColor: '$background-primary-prominent-hover',\n color: '$text-primary-inverted',\n fontWeight: '600',\n },\n },\n})\n","import React from 'react'\nimport { Button } from '@mirohq/design-system-button'\nimport type { DateRange, DateValue } from 'react-aria'\n\nimport { StyledPredefinedRanges } from './predefined-ranges.styled'\nimport { useCalendarContext } from '../use-calendar-context'\n\nexport const PredefinedRanges = (): React.ReactElement | null => {\n const { predefinedValues, onCalendarDateClick } = useCalendarContext<\n DateRange | DateValue\n >()\n\n if (predefinedValues === undefined) {\n return null\n }\n\n return (\n <StyledPredefinedRanges>\n {predefinedValues.map(item => (\n <Button\n variant='ghost'\n size='medium'\n key={item.id}\n type='button'\n onClick={() => onCalendarDateClick(item.value)}\n >\n {item.label}\n </Button>\n ))}\n </StyledPredefinedRanges>\n )\n}\n","import type { ElementRef, ReactElement, ReactNode } from 'react'\nimport React, { useRef } from 'react'\nimport { useCalendarState, useRangeCalendarState } from 'react-stately'\nimport { useCalendar, useRangeCalendar, useLocale } from 'react-aria'\nimport { createCalendar } from '@internationalized/date'\nimport { Flex } from '@mirohq/design-system-flex'\nimport type { DateRange, DateValue, AriaButtonProps } from 'react-aria'\nimport type { DOMAttributes } from '@react-types/shared'\nimport type { CalendarState, RangeCalendarState } from 'react-stately'\nimport { theme } from '@mirohq/design-system-stitches'\n\nimport { useCalendarContext } from '../use-calendar-context'\nimport type { StyledContentProps } from './content.styled'\nimport {\n StyledContent,\n StyledClearContent,\n StyledCalendarBody,\n StyledBodyContentLeft,\n StyledBodyContentRight,\n StyledGridContent,\n} from './content.styled'\nimport { Header } from './header'\nimport { Grid } from './grid'\nimport type { Align, PointerDownOutsideEvent, Side, Sticky } from '../types'\nimport type { HeaderButtonProps } from './header-button'\nimport { PredefinedRanges } from './predefined-ranges'\n\nexport const CONTENT_OFFSET = parseInt(theme.space[50])\n\nexport type ContentProps = StyledContentProps & {\n /**\n * Calendar's content.\n */\n children?: ReactNode\n\n /**\n * Event handler called when focus moves to the trigger after closing. It can\n * be prevented by calling event.preventDefault.\n */\n onCloseAutoFocus?: (event: Event) => void\n\n /**\n * Event handler called when focus moves to the trigger after closing. It can\n * be prevented by calling event.preventDefault.\n */\n onEscapeKeyDown?: (event: KeyboardEvent) => void\n\n /**\n * Event handler called when a pointer event occurs outside the bounds of the\n * component. It can be prevented by calling event.preventDefault.\n */\n onPointerDownOutside?: (event: PointerDownOutsideEvent) => void\n\n /**\n * The preferred side of the anchor to render against when open. Will be\n * reversed when collisions occur and avoidCollisions is enabled.\n * @default 'bottom'\n */\n side?: Side\n\n /**\n * The distance in pixels from the anchor.\n * @default CONTENT_OFFSET\n */\n sideOffset?: number\n\n /**\n * The preferred alignment against the anchor. May change when collisions\n * occur.\n * @default 'start'\n */\n align?: Align\n\n /**\n * An offset in pixels from the \"start\" or \"end\" alignment options.\n * @default 0\n */\n alignOffset?: number\n\n /**\n * When true, overrides the side and align preferences to prevent collisions\n * with boundary edges.\n * @default true\n */\n avoidCollisions?: boolean\n\n /**\n * The element used as the collision boundary. By default this is the\n * viewport, though you can provide additional element(s) to be included in\n * this check.\n */\n collisionBoundary?: Element | null\n\n /**\n * The distance in pixels from the boundary edges where collision detection\n * should occur. Accepts a number (same for all sides), or a partial padding\n * object, for example: { top: 20, left: 20 }.\n * @default 0\n */\n collisionPadding?: number | Partial<Record<Side, number>>\n\n /**\n * The sticky behavior on the align axis. \"partial\" will keep the content in the\n * boundary as long as the trigger is at least partially in the boundary whilst\n * \"always\" will keep the content in the boundary regardless.\n * @default 'partial'\n */\n sticky?: Sticky\n\n /**\n * Whether to hide the content when the trigger becomes fully occluded.\n * @default true\n */\n hideWhenDetached?: boolean\n}\n\ninterface SharedContentProps {\n calendarProps: DOMAttributes\n prevButtonProps: AriaButtonProps\n nextButtonProps: AriaButtonProps\n state: RangeCalendarState | CalendarState\n}\n\nconst SharedContent = React.forwardRef<HTMLDivElement, SharedContentProps>(\n ({ calendarProps, prevButtonProps, nextButtonProps, state }, forwardRef) => {\n const { visibleDuration } = useCalendarContext<DateValue>()\n\n return (\n <StyledCalendarBody {...calendarProps} ref={forwardRef}>\n <PredefinedRanges />\n <Flex direction='column'>\n <Header\n state={state}\n prevButtonProps={prevButtonProps as HeaderButtonProps}\n nextButtonProps={nextButtonProps as HeaderButtonProps}\n visibleMonths={visibleDuration.months}\n />\n <StyledGridContent>\n <StyledBodyContentLeft>\n <Grid state={state} />\n </StyledBodyContentLeft>\n {visibleDuration.months === 2 && (\n <StyledBodyContentRight>\n <Grid state={state} offset={{ months: 1 }} />\n </StyledBodyContentRight>\n )}\n </StyledGridContent>\n </Flex>\n </StyledCalendarBody>\n )\n }\n)\n\nconst DatePickerContent = (): ReactElement => {\n const { locale } = useLocale()\n\n const {\n calendarValue,\n visibleDuration,\n minDate,\n maxDate,\n onCalendarDateClick,\n } = useCalendarContext<DateValue>()\n\n const state = useCalendarState({\n value: calendarValue,\n visibleDuration,\n minValue: minDate,\n maxValue: maxDate,\n autoFocus: true,\n onChange: onCalendarDateClick,\n locale,\n createCalendar,\n })\n\n const { calendarProps, prevButtonProps, nextButtonProps } = useCalendar(\n {},\n state\n )\n\n return (\n <SharedContent\n calendarProps={calendarProps}\n prevButtonProps={prevButtonProps}\n nextButtonProps={nextButtonProps}\n state={state}\n />\n )\n}\n\nconst RangePickerContent = (): ReactElement => {\n const { locale } = useLocale()\n\n const {\n calendarValue,\n visibleDuration,\n minDate,\n maxDate,\n onCalendarDateClick,\n } = useCalendarContext<DateRange>()\n\n const ref = useRef<HTMLDivElement>(null)\n\n const state = useRangeCalendarState({\n value: calendarValue,\n visibleDuration,\n minValue: minDate,\n maxValue: maxDate,\n autoFocus: true,\n onChange: onCalendarDateClick,\n locale,\n createCalendar,\n })\n\n const { calendarProps, prevButtonProps, nextButtonProps } = useRangeCalendar(\n {},\n state,\n ref\n )\n\n return (\n <SharedContent\n ref={ref}\n calendarProps={calendarProps}\n prevButtonProps={prevButtonProps}\n nextButtonProps={nextButtonProps}\n state={state}\n />\n )\n}\n\nexport const Content = React.forwardRef<\n ElementRef<typeof StyledContent>,\n ContentProps\n>(\n (\n {\n side = 'bottom',\n sideOffset = CONTENT_OFFSET,\n align = 'start',\n alignOffset = 0,\n collisionPadding = 0,\n avoidCollisions = true,\n sticky = 'partial',\n hideWhenDetached = true,\n children,\n ...restProps\n },\n forwardRef\n ) => {\n const { picker, open } = useCalendarContext()\n\n if (!open) {\n return null\n }\n\n return (\n <StyledContent\n {...restProps}\n ref={forwardRef}\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n collisionPadding={collisionPadding}\n avoidCollisions={avoidCollisions}\n sticky={sticky}\n hideWhenDetached={hideWhenDetached}\n >\n <Flex direction='column'>\n {picker === 'single' ? <DatePickerContent /> : <RangePickerContent />}\n {children != null && (\n <StyledClearContent>{children}</StyledClearContent>\n )}\n </Flex>\n </StyledContent>\n )\n }\n)\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { ComponentPropsWithRef } from 'react'\n\nexport const StyledValue = styled(Primitive.span, {})\n\nexport type StyledValueProps = ComponentPropsWithRef<typeof StyledValue>\n","import type { ElementRef } from 'react'\nimport React, { useMemo } from 'react'\nimport type { DateRange, DateValue } from '@react-types/datepicker'\nimport type { DateFormatter } from 'react-aria'\nimport { useDateFormatter } from 'react-aria'\nimport { getLocalTimeZone } from '@internationalized/date'\n\nimport type { StyledValueProps } from './value.styled'\nimport { StyledValue } from './value.styled'\nimport { useCalendarContext } from '../use-calendar-context'\n\ntype FormatOptions = Pick<\n Intl.DateTimeFormatOptions,\n 'weekday' | 'era' | 'year' | 'month' | 'day' | 'formatMatcher'\n>\n\nexport type ValueProps = StyledValueProps & {\n format?: FormatOptions\n}\n\nconst DEFAULT_FORMAT: FormatOptions = {\n day: '2-digit',\n month: 'short',\n year: 'numeric',\n}\n\nfunction formatDate(\n date: DateValue,\n formatter: DateFormatter,\n timeZone: string\n): string | undefined {\n return formatter.format(date.toDate(timeZone))\n}\n\nfunction formatValue(\n value: DateValue | DateRange | undefined | null,\n formatter: DateFormatter,\n timeZone: string\n): string | undefined {\n if (value == null || value === undefined) {\n return undefined\n }\n\n if ('start' in value) {\n if (value.start == null || value.end == null) {\n return undefined\n }\n\n return `${formatDate(value.start, formatter, timeZone)} - ${formatDate(\n value.end,\n formatter,\n timeZone\n )}`\n }\n\n return formatDate(value, formatter, timeZone)\n}\n\nexport const Value = React.forwardRef<\n ElementRef<typeof StyledValue>,\n ValueProps\n>(({ format = DEFAULT_FORMAT, ...restProps }, forwardRef) => {\n const { value } = useCalendarContext()\n\n const timeZone = useMemo(getLocalTimeZone, [format])\n\n const formatWithTimeZone = useMemo(\n () => ({ ...format, timeZone }),\n [format, timeZone]\n )\n const dateFormatter = useDateFormatter(formatWithTimeZone)\n\n const valueToDisplay = formatValue(value, dateFormatter, timeZone)\n\n return (\n <StyledValue ref={forwardRef} {...restProps}>\n {valueToDisplay}\n </StyledValue>\n )\n})\n","import type { ElementRef } from 'react'\nimport React from 'react'\nimport { Button } from '@mirohq/design-system-button'\nimport type { BaseButtonProps } from '@mirohq/design-system-base-button'\n\nimport { useCalendarContext } from '../use-calendar-context'\n\nexport type ClearButtonProps = BaseButtonProps & {\n /**\n * Event handler called when the calendar value is cleared\n */\n onClear?: () => void\n}\n\nexport const ClearButton = React.forwardRef<\n ElementRef<typeof Button>,\n ClearButtonProps\n>(({ onClear, children, ...restProps }, forwardRef) => {\n const { value, setValue } = useCalendarContext()\n\n const onClearHandler = (): void => {\n setValue(undefined)\n if (onClear !== undefined) {\n onClear()\n }\n }\n\n return (\n <Button\n {...restProps}\n ref={forwardRef}\n variant='ghost'\n size='medium'\n onClick={onClearHandler}\n disabled={value === null}\n >\n {children}\n </Button>\n )\n}) as React.ForwardRefExoticComponent<ClearButtonProps>\n","import type { ElementRef } from 'react'\nimport React, { useEffect } from 'react'\nimport { Button } from '@mirohq/design-system-button'\nimport type { BaseButtonProps } from '@mirohq/design-system-base-button'\n\nimport { useCalendarContext } from '../use-calendar-context'\n\nexport type SaveButtonProps = BaseButtonProps & {\n /**\n * Event handler called when the calendar value is saved\n */\n onSave?: () => void\n}\n\nexport const SaveButton = React.forwardRef<\n ElementRef<typeof Button>,\n SaveButtonProps\n>(({ onSave, children, ...restProps }, forwardRef) => {\n const { setImmediateSave, onSaveClick } = useCalendarContext()\n\n useEffect(() => {\n setImmediateSave(true)\n\n return () => setImmediateSave(false)\n }, [setImmediateSave])\n\n const onSaveHandler = (): void => {\n onSaveClick()\n if (onSave !== undefined) {\n onSave()\n }\n }\n\n return (\n <Button\n ref={forwardRef}\n {...restProps}\n variant='primary'\n size='medium'\n onClick={onSaveHandler}\n >\n {children}\n </Button>\n )\n}) as React.ForwardRefExoticComponent<SaveButtonProps>\n","import { styled } from '@mirohq/design-system-stitches'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport type { ComponentPropsWithRef } from 'react'\n\nexport const StyledCalendar = styled(Primitive.div, {\n position: 'relative',\n})\nexport type StyledCalendarProps = ComponentPropsWithRef<typeof StyledCalendar>\n","import type { ElementRef, ForwardRefExoticComponent } from 'react'\nimport React from 'react'\nimport { I18nProvider } from 'react-aria'\nimport * as RadixPopover from '@radix-ui/react-popover'\nimport type { DateRange, DateValue } from 'react-aria'\n\nimport type { CalendarDatePickerProps, CalendarRangePickerProps } from './types'\nimport { Trigger } from './partials/trigger'\nimport { Content } from './partials/content'\nimport type { CalendarProviderProps } from './use-calendar-context'\nimport { CalendarProvider, useCalendarContext } from './use-calendar-context'\nimport { Value } from './partials/value'\nimport { ClearButton } from './partials/clear-button'\nimport { SaveButton } from './partials/save-button'\nimport { StyledCalendar } from './calendar.styled'\n\n// If an unrecognised locale string is passed in, the component will error, this protects from that by defaulting to English\n// https://github.com/adobe/react-spectrum/issues/7457\nfunction getValidLocale(locale: string | undefined): string {\n if (locale === undefined) {\n return 'en'\n }\n\n try {\n Intl.DateTimeFormat.supportedLocalesOf(locale)\n return locale\n } catch {\n try {\n // the client locale is in the format of ja_JP, but Intl.DateTimeFormat expects ja-JP\n // https://github.com/formatjs/formatjs/discussions/2440\n const localeWithDashes = locale.replace(/_/g, '-')\n Intl.DateTimeFormat.supportedLocalesOf(localeWithDashes)\n return localeWithDashes\n } catch {\n return 'en'\n }\n }\n}\n\nexport type CalendarProps = (\n | CalendarDatePickerProps\n | CalendarRangePickerProps\n) & {\n /**\n * The locale for Calendar internationalization\n */\n locale?: string\n}\n\ninterface CalendarRootProps {\n children: React.ReactNode\n}\n\nconst Root = React.forwardRef<\n ElementRef<typeof StyledCalendar>,\n CalendarRootProps\n>(({ children, ...restProps }, forwardRef) => {\n const { open, setOpen } = useCalendarContext()\n\n return (\n <RadixPopover.Root open={open} onOpenChange={setOpen}>\n <StyledCalendar ref={forwardRef} {...restProps}>\n {children}\n </StyledCalendar>\n </RadixPopover.Root>\n )\n})\n\nexport const Calendar = React.forwardRef<\n ElementRef<typeof StyledCalendar>,\n CalendarProps\n>(\n (\n {\n picker,\n defaultValue,\n value,\n onValueChange,\n defaultOpen,\n open,\n onClose,\n onOpen,\n locale,\n visibleMonths,\n minDate,\n maxDate,\n disabled,\n 'aria-disabled': ariaDisabled,\n children,\n predefinedValues,\n ...props\n },\n forwardRef\n ) => {\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n const providerProps = {\n picker,\n defaultValue,\n value,\n onValueChange,\n visibleMonths,\n minDate,\n maxDate,\n defaultOpen,\n open,\n onClose,\n onOpen,\n disabled,\n ariaDisabled,\n predefinedValues,\n } as CalendarProviderProps<DateValue> | CalendarProviderProps<DateRange>\n\n const validatedLocale = getValidLocale(locale)\n\n return (\n <I18nProvider locale={validatedLocale}>\n <CalendarProvider {...(providerProps as any)}>\n <Root {...props} ref={forwardRef}>\n {children}\n </Root>\n </CalendarProvider>\n </I18nProvider>\n )\n }\n) as ForwardRefExoticComponent<CalendarProps> & Partials\n\nexport interface Partials {\n Trigger: typeof Trigger\n Content: typeof Content\n Value: typeof Value\n ClearButton: typeof ClearButton\n SaveButton: typeof SaveButton\n}\n\nCalendar.Trigger = Trigger\nCalendar.Content = Content\nCalendar.Value = Value\nCalendar.ClearButton = ClearButton\nCalendar.SaveButton = SaveButton\n"],"names":["StyledValue","value","RadixTrigger","RadixContent"],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -2,7 +2,6 @@ import * as react from 'react';
2
2
  import react__default, { ComponentPropsWithRef, ReactNode, ForwardRefExoticComponent } from 'react';
3
3
  import { DateValue, DateRange } from 'react-aria';
4
4
  import { Booleanish } from '@mirohq/design-system-types';
5
- import * as _stitches_react_types_styled_component from '@stitches/react/types/styled-component';
6
5
  import * as _mirohq_design_system_stitches from '@mirohq/design-system-stitches';
7
6
  import { StrictComponentProps } from '@mirohq/design-system-stitches';
8
7
  import * as _mirohq_design_system_primitive from '@mirohq/design-system-primitive';
@@ -10,7 +9,27 @@ import * as _mirohq_design_system_base_button from '@mirohq/design-system-base-b
10
9
  import { BaseButtonProps } from '@mirohq/design-system-base-button';
11
10
  import * as _radix_ui_react_popover from '@radix-ui/react-popover';
12
11
 
13
- 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">>, {}, {}>;
12
+ /* Utilities */
13
+ /* ========================================================================== */
14
+
15
+ /** Returns a string with the given prefix followed by the given values. */
16
+ type Prefixed<K extends string, T> = `${K}${Extract<T, boolean | number | string>}`
17
+
18
+ type TransformProps<Props, Media> = {
19
+ [K in keyof Props]: (
20
+ | Props[K]
21
+ | (
22
+ & {
23
+ [KMedia in Prefixed<'@', 'initial' | keyof Media>]?: Props[K]
24
+ }
25
+ & {
26
+ [KMedia in string]: Props[K]
27
+ }
28
+ )
29
+ )
30
+ }
31
+
32
+ declare const StyledCalendar: react.ForwardRefExoticComponent<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<_mirohq_design_system_primitive.PrimitiveProps<"div">>>, never> & TransformProps<{}, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLDivElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<_mirohq_design_system_primitive.PrimitiveProps<"div">>, {}, {}>;
14
33
  type StyledCalendarProps = ComponentPropsWithRef<typeof StyledCalendar>;
15
34
 
16
35
  interface PredefinedValue<T extends DateRange | DateValue> {
@@ -117,9 +136,9 @@ type Side = 'top' | 'right' | 'bottom' | 'left';
117
136
  type Align = 'start' | 'center' | 'end';
118
137
  type Sticky = 'partial' | 'always';
119
138
 
120
- declare const StyledTrigger: react.ForwardRefExoticComponent<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<Omit<_mirohq_design_system_base_button.BaseButtonProps, "ref"> & react.RefAttributes<HTMLAnchorElement | HTMLButtonElement>>>, "withClearButton"> & _stitches_react_types_styled_component.TransformProps<{
139
+ declare const StyledTrigger: react.ForwardRefExoticComponent<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<Omit<_mirohq_design_system_base_button.BaseButtonProps, "ref"> & react.RefAttributes<HTMLButtonElement | HTMLAnchorElement>>>, "withClearButton"> & TransformProps<{
121
140
  withClearButton?: boolean | "true" | undefined;
122
- }, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLAnchorElement | HTMLButtonElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<Omit<_mirohq_design_system_base_button.BaseButtonProps, "ref"> & react.RefAttributes<HTMLAnchorElement | HTMLButtonElement>>, {
141
+ }, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLButtonElement | HTMLAnchorElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<Omit<_mirohq_design_system_base_button.BaseButtonProps, "ref"> & react.RefAttributes<HTMLButtonElement | HTMLAnchorElement>>, {
123
142
  withClearButton?: boolean | "true" | undefined;
124
143
  }, {}>;
125
144
  type StyledTriggerProps = StrictComponentProps<typeof StyledTrigger>;
@@ -196,7 +215,7 @@ declare const Trigger: react__default.ForwardRefExoticComponent<(Omit<Omit<Style
196
215
  clearLabel: string;
197
216
  }, "ref">) & react__default.RefAttributes<HTMLButtonElement>>;
198
217
 
199
- declare const StyledContent: react.ForwardRefExoticComponent<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<_radix_ui_react_popover.PopoverContentProps & react.RefAttributes<HTMLDivElement>>>, never> & _stitches_react_types_styled_component.TransformProps<{}, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLDivElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<_radix_ui_react_popover.PopoverContentProps & react.RefAttributes<HTMLDivElement>>, {}, {}>;
218
+ declare const StyledContent: react.ForwardRefExoticComponent<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<_radix_ui_react_popover.PopoverContentProps & react.RefAttributes<HTMLDivElement>>>, never> & TransformProps<{}, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLDivElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<_radix_ui_react_popover.PopoverContentProps & react.RefAttributes<HTMLDivElement>>, {}, {}>;
200
219
  type StyledContentProps = ComponentPropsWithRef<typeof StyledContent>;
201
220
 
202
221
  type ContentProps = StyledContentProps & {
@@ -275,7 +294,7 @@ type ContentProps = StyledContentProps & {
275
294
  };
276
295
  declare const Content: react__default.ForwardRefExoticComponent<Omit<ContentProps, "ref"> & react__default.RefAttributes<HTMLDivElement>>;
277
296
 
278
- declare const StyledValue: react.ForwardRefExoticComponent<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<_mirohq_design_system_primitive.PrimitiveProps<"span">>>, never> & _stitches_react_types_styled_component.TransformProps<{}, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLSpanElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<_mirohq_design_system_primitive.PrimitiveProps<"span">>, {}, {}>;
297
+ declare const StyledValue: react.ForwardRefExoticComponent<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<_mirohq_design_system_primitive.PrimitiveProps<"span">>>, never> & TransformProps<{}, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLSpanElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<_mirohq_design_system_primitive.PrimitiveProps<"span">>, {}, {}>;
279
298
  type StyledValueProps = ComponentPropsWithRef<typeof StyledValue>;
280
299
 
281
300
  type FormatOptions = Pick<Intl.DateTimeFormatOptions, 'weekday' | 'era' | 'year' | 'month' | 'day' | 'formatMatcher'>;
@@ -315,4 +334,5 @@ interface Partials {
315
334
  SaveButton: typeof SaveButton;
316
335
  }
317
336
 
318
- export { Calendar, ClearButtonProps as CalendarClearButtonProps, ContentProps as CalendarContentProps, CalendarProps, SaveButtonProps as CalendarSaveButtonProps, TriggerProps as CalendarTriggerProps, ValueProps as CalendarValueProps };
337
+ export { Calendar };
338
+ export type { ClearButtonProps as CalendarClearButtonProps, ContentProps as CalendarContentProps, CalendarProps, SaveButtonProps as CalendarSaveButtonProps, TriggerProps as CalendarTriggerProps, ValueProps as CalendarValueProps };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mirohq/design-system-calendar",
3
- "version": "2.1.20-fix-button-types.2",
3
+ "version": "2.2.0-fix-stitches-types.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": "^1.1.3-fix-button-types.2",
38
- "@mirohq/design-system-base-text-field": "^1.2.1",
39
- "@mirohq/design-system-button": "^5.1.5-fix-button-types.2",
40
- "@mirohq/design-system-flex": "^3.1.2",
41
- "@mirohq/design-system-icon-button": "^4.1.5-fix-button-types.2",
42
- "@mirohq/design-system-base-form": "^1.1.3",
43
- "@mirohq/design-system-icons": "^1.27.0",
44
- "@mirohq/design-system-primitive": "^2.1.0",
45
- "@mirohq/design-system-stitches": "^3.1.2",
46
- "@mirohq/design-system-styles": "^3.0.1",
47
- "@mirohq/design-system-tooltip": "^4.2.0",
37
+ "@mirohq/design-system-base-button": "^1.2.0-fix-stitches-types.0",
38
+ "@mirohq/design-system-base-form": "^1.2.0-fix-stitches-types.0",
39
+ "@mirohq/design-system-base-text-field": "^1.3.0-fix-stitches-types.0",
40
+ "@mirohq/design-system-button": "^5.2.0-fix-stitches-types.0",
41
+ "@mirohq/design-system-flex": "^3.2.0-fix-stitches-types.0",
42
+ "@mirohq/design-system-icon-button": "^4.2.0-fix-stitches-types.0",
43
+ "@mirohq/design-system-icons": "^1.28.0-fix-stitches-types.0",
44
+ "@mirohq/design-system-primitive": "^2.2.0-fix-stitches-types.0",
45
+ "@mirohq/design-system-stitches": "^3.2.0-fix-stitches-types.0",
46
+ "@mirohq/design-system-styles": "^3.1.0-fix-stitches-types.0",
47
+ "@mirohq/design-system-tooltip": "^4.3.0-fix-stitches-types.0",
48
48
  "@mirohq/design-system-types": "^1.0.1",
49
- "@mirohq/design-system-utils": "^1.2.1",
50
- "@mirohq/design-system-typography": "^1.2.1"
49
+ "@mirohq/design-system-typography": "^1.3.0-fix-stitches-types.0",
50
+ "@mirohq/design-system-utils": "^1.2.1"
51
51
  },
52
52
  "scripts": {
53
53
  "build": "rollup -c ../../../rollup.config.js",