UNPKG

@mantine/dates

Version:

Calendars, date and time pickers based on Mantine components

1 lines 5.63 kB
{"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"}