{"version":3,"file":"Day.cjs","names":["UnstyledButton","classes"],"sources":["../../../src/components/Day/Day.tsx"],"sourcesContent":["import dayjs from 'dayjs';\nimport {\n  BoxProps,\n  createVarsResolver,\n  ElementProps,\n  factory,\n  Factory,\n  getSize,\n  MantineSize,\n  StylesApiProps,\n  UnstyledButton,\n  useProps,\n  useStyles,\n} from '@mantine/core';\nimport { DateStringValue } from '../../types';\nimport classes from './Day.module.css';\n\nexport type RenderDay = (date: DateStringValue) => React.ReactNode;\n\nexport type DayStylesNames = 'day';\nexport type DayCssVariables = {\n  day: '--day-size';\n};\n\nexport interface DayProps extends BoxProps, StylesApiProps<DayFactory>, ElementProps<'button'> {\n  __staticSelector?: string;\n\n  /** Determines which element is used as root, `'button'` by default, `'div'` if static prop is set */\n  static?: boolean;\n\n  /** Date that is displayed in `YYYY-MM-DD` format */\n  date: DateStringValue;\n\n  /** Control width and height of the day @default 'sm' */\n  size?: MantineSize;\n\n  /** Determines whether the day is considered to be a weekend @default false */\n  weekend?: boolean;\n\n  /** Determines whether the day is outside of the current month @default false */\n  outside?: boolean;\n\n  /** Determines whether the day is selected @default false */\n  selected?: boolean;\n\n  /** Determines whether the day should not be displayed @default false */\n  hidden?: boolean;\n\n  /** Determines whether the day is selected in range @default false */\n  inRange?: boolean;\n\n  /** Determines whether the day is first in range selection @default false */\n  firstInRange?: boolean;\n\n  /** Determines whether the day is last in range selection @default false */\n  lastInRange?: boolean;\n\n  /** Controls day value rendering */\n  renderDay?: RenderDay;\n\n  /** Determines whether today should be highlighted with a border @default false */\n  highlightToday?: boolean;\n\n  /** Determines whether the day should take the full width of its cell @default false */\n  fullWidth?: boolean;\n}\n\nexport type DayFactory = Factory<{\n  props: DayProps;\n  ref: HTMLButtonElement;\n  stylesNames: DayStylesNames;\n  vars: DayCssVariables;\n}>;\n\nconst varsResolver = createVarsResolver<DayFactory>((_, { size }) => ({\n  day: {\n    '--day-size': getSize(size, 'day-size'),\n  },\n}));\n\nexport const Day = factory<DayFactory>((_props) => {\n  const props = useProps('Day', null, _props);\n  const {\n    classNames,\n    className,\n    style,\n    styles,\n    unstyled,\n    vars,\n    date,\n    disabled,\n    __staticSelector,\n    weekend,\n    outside,\n    selected,\n    renderDay,\n    inRange,\n    firstInRange,\n    lastInRange,\n    hidden,\n    static: isStatic,\n    highlightToday,\n    fullWidth,\n    attributes,\n    ...others\n  } = props;\n\n  const getStyles = useStyles<DayFactory>({\n    name: __staticSelector || 'Day',\n    classes,\n    props,\n    className,\n    style,\n    classNames,\n    styles,\n    unstyled,\n    attributes,\n    vars,\n    varsResolver,\n    rootSelector: 'day',\n  });\n\n  return (\n    <UnstyledButton<any>\n      {...getStyles('day', { style: hidden ? { display: 'none' } : undefined })}\n      component={isStatic ? 'div' : 'button'}\n      disabled={disabled}\n      data-today={dayjs(date).isSame(new Date(), 'day') || undefined}\n      data-hidden={hidden || undefined}\n      data-highlight-today={highlightToday || undefined}\n      data-disabled={disabled || undefined}\n      data-weekend={(!disabled && !outside && weekend) || undefined}\n      data-outside={(!disabled && outside) || undefined}\n      data-selected={(!disabled && selected) || undefined}\n      data-in-range={(inRange && !disabled) || undefined}\n      data-first-in-range={(firstInRange && !disabled) || undefined}\n      data-last-in-range={(lastInRange && !disabled) || undefined}\n      data-static={isStatic || undefined}\n      data-full-width={fullWidth || undefined}\n      unstyled={unstyled}\n      {...others}\n    >\n      {renderDay?.(date) || dayjs(date).date()}\n    </UnstyledButton>\n  );\n});\n\nDay.classes = classes;\nDay.varsResolver = varsResolver;\nDay.displayName = '@mantine/dates/Day';\n\nexport namespace Day {\n  export type Props = DayProps;\n  export type StylesNames = DayStylesNames;\n  export type Factory = DayFactory;\n  export type CssVariables = DayCssVariables;\n}\n"],"mappings":";;;;;;;;AA0EA,MAAM,gBAAA,GAAA,cAAA,mBAAA,EAA+C,GAAG,EAAE,YAAY,EACpE,KAAK,EACH,eAAA,GAAA,cAAA,QAAA,CAAsB,MAAM,UAAU,EACxC,EACF,EAAE;AAEF,MAAa,OAAA,GAAA,cAAA,QAAA,EAA2B,WAAW;CACjD,MAAM,SAAA,GAAA,cAAA,SAAA,CAAiB,OAAO,MAAM,MAAM;CAC1C,MAAM,EACJ,YACA,WACA,OACA,QACA,UACA,MACA,MACA,UACA,kBACA,SACA,SACA,UACA,WACA,SACA,cACA,aACA,QACA,QAAQ,UACR,gBACA,WACA,YACA,GAAG,WACD;CAiBJ,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACA,cAAAA,gBAAD;EACE,IAAA,GAAA,cAAA,UAAA,CAjBoC;GACtC,MAAM,oBAAoB;GAC1B,SAAA,mBAAA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,cAAc;EAChB,CAIgB,CAAC,CAAC,OAAO,EAAE,OAAO,SAAS,EAAE,SAAS,OAAO,IAAI,KAAA,EAAU,CAAC;EACxE,WAAW,WAAW,QAAQ;EACpB;EACV,eAAA,GAAA,MAAA,QAAA,CAAkB,IAAI,CAAC,CAAC,uBAAO,IAAI,KAAK,GAAG,KAAK,KAAK,KAAA;EACrD,eAAa,UAAU,KAAA;EACvB,wBAAsB,kBAAkB,KAAA;EACxC,iBAAe,YAAY,KAAA;EAC3B,gBAAe,CAAC,YAAY,CAAC,WAAW,WAAY,KAAA;EACpD,gBAAe,CAAC,YAAY,WAAY,KAAA;EACxC,iBAAgB,CAAC,YAAY,YAAa,KAAA;EAC1C,iBAAgB,WAAW,CAAC,YAAa,KAAA;EACzC,uBAAsB,gBAAgB,CAAC,YAAa,KAAA;EACpD,sBAAqB,eAAe,CAAC,YAAa,KAAA;EAClD,eAAa,YAAY,KAAA;EACzB,mBAAiB,aAAa,KAAA;EACpB;EACV,GAAI;YAEH,YAAY,IAAI,MAAA,GAAA,MAAA,QAAA,CAAW,IAAI,CAAC,CAAC,KAAK;CACzB,CAAA;AAEpB,CAAC;AAED,IAAI,UAAUC,mBAAAA;AACd,IAAI,eAAe;AACnB,IAAI,cAAc"}