@yamada-ui/calendar
Version:
Yamada UI calendar component
1 lines • 5.24 kB
Source Map (JSON)
{"version":3,"sources":["../src/month-list.tsx"],"sourcesContent":["import type { ButtonProps } from \"@yamada-ui/button\"\nimport type { FC, HTMLUIProps } from \"@yamada-ui/core\"\nimport type { CalendarHeaderProps } from \"./calendar-header\"\nimport { Button } from \"@yamada-ui/button\"\nimport { ui } from \"@yamada-ui/core\"\nimport { cx, filterUndefined } from \"@yamada-ui/utils\"\nimport { CalendarHeader } from \"./calendar-header\"\nimport { useCalendarContext } from \"./use-calendar\"\nimport { useMonthList } from \"./use-month-list\"\n\ninterface MonthListOptions {\n /**\n * Props for calendar header element.\n */\n headerProps?: HTMLUIProps\n /**\n * Props for calendar month grid element.\n */\n monthGridProps?: HTMLUIProps\n /**\n * Props for calendar month button element.\n */\n monthProps?: {\n component?: FC<{ index: number; month: string; year: number }>\n } & ButtonProps\n}\n\nexport interface MonthListProps\n extends HTMLUIProps,\n Omit<CalendarHeaderProps, \"index\" | \"label\">,\n MonthListOptions {}\n\nexport const MonthList: FC<MonthListProps> = ({\n className,\n controlProps,\n headerProps,\n labelProps,\n monthGridProps,\n monthProps,\n nextProps,\n prevProps,\n ...rest\n}) => {\n const { styles, year } = useCalendarContext()\n const { label, rangeMonths, getButtonProps, getGridProps } = useMonthList()\n\n const { component: customMonth, ...computedMonthProps } = monthProps ?? {}\n\n const w = rest.w ?? rest.width\n const minW = rest.minW ?? rest.minWidth\n const maxW = rest.maxW ?? rest.maxWidth\n const h = rest.h ?? rest.height\n const minH = rest.minH ?? rest.minHeight\n const maxH = rest.maxH ?? rest.maxHeight\n\n return (\n <ui.div __css={{ ...styles.content }} {...filterUndefined(rest)}>\n <CalendarHeader\n {...{\n ...headerProps,\n label,\n controlProps,\n labelProps,\n nextProps,\n prevProps,\n }}\n />\n\n <ui.div\n className={cx(\"ui-calendar__month-list\", className)}\n __css={{\n display: \"grid\",\n h: styles.content?.h ?? styles.content?.height,\n maxH: styles.content?.maxH ?? styles.content?.maxHeight,\n maxW: styles.content?.maxW ?? styles.content?.maxWidth,\n minH: styles.content?.minH ?? styles.content?.minHeight,\n minW: styles.content?.minW ?? styles.content?.minWidth,\n w: styles.content?.w ?? styles.content?.width,\n ...styles.month,\n }}\n {...getGridProps({\n ...filterUndefined({ h, maxH, maxW, minH, minW, w }),\n ...monthGridProps,\n })}\n >\n {rangeMonths.map((month, index) => (\n <Button\n key={index}\n className=\"ui-calendar__month-list__button\"\n variant=\"ghost\"\n __css={{\n fontSize: undefined,\n fontWeight: \"normal\",\n h: \"auto\",\n minW: \"auto\",\n p: 0,\n ...styles.button,\n }}\n {...getButtonProps({ ...computedMonthProps, value: index })}\n >\n {customMonth ? customMonth({ index, month, year }) : month}\n </Button>\n ))}\n </ui.div>\n </ui.div>\n )\n}\n\nMonthList.displayName = \"MonthList\"\nMonthList.__ui__ = \"MonthList\"\n"],"mappings":";;;;;;;;;;;;AAGA,SAAS,cAAc;AACvB,SAAS,UAAU;AACnB,SAAS,IAAI,uBAAuB;AAmDhC,SACE,KADF;AAxBG,IAAM,YAAgC,CAAC;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AA1CN;AA2CE,QAAM,EAAE,QAAQ,KAAK,IAAI,mBAAmB;AAC5C,QAAM,EAAE,OAAO,aAAa,gBAAgB,aAAa,IAAI,aAAa;AAE1E,QAAM,EAAE,WAAW,aAAa,GAAG,mBAAmB,IAAI,kCAAc,CAAC;AAEzE,QAAM,KAAI,UAAK,MAAL,YAAU,KAAK;AACzB,QAAM,QAAO,UAAK,SAAL,YAAa,KAAK;AAC/B,QAAM,QAAO,UAAK,SAAL,YAAa,KAAK;AAC/B,QAAM,KAAI,UAAK,MAAL,YAAU,KAAK;AACzB,QAAM,QAAO,UAAK,SAAL,YAAa,KAAK;AAC/B,QAAM,QAAO,UAAK,SAAL,YAAa,KAAK;AAE/B,SACE,qBAAC,GAAG,KAAH,EAAO,OAAO,EAAE,GAAG,OAAO,QAAQ,GAAI,GAAG,gBAAgB,IAAI,GAC5D;AAAA;AAAA,MAAC;AAAA;AAAA,QACE,GAAG;AAAA,UACF,GAAG;AAAA,UACH;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA;AAAA,IACF;AAAA,IAEA;AAAA,MAAC,GAAG;AAAA,MAAH;AAAA,QACC,WAAW,GAAG,2BAA2B,SAAS;AAAA,QAClD,OAAO;AAAA,UACL,SAAS;AAAA,UACT,IAAG,kBAAO,YAAP,mBAAgB,MAAhB,aAAqB,YAAO,YAAP,mBAAgB;AAAA,UACxC,OAAM,kBAAO,YAAP,mBAAgB,SAAhB,aAAwB,YAAO,YAAP,mBAAgB;AAAA,UAC9C,OAAM,kBAAO,YAAP,mBAAgB,SAAhB,aAAwB,YAAO,YAAP,mBAAgB;AAAA,UAC9C,OAAM,kBAAO,YAAP,mBAAgB,SAAhB,aAAwB,YAAO,YAAP,mBAAgB;AAAA,UAC9C,OAAM,kBAAO,YAAP,mBAAgB,SAAhB,aAAwB,YAAO,YAAP,mBAAgB;AAAA,UAC9C,IAAG,kBAAO,YAAP,mBAAgB,MAAhB,aAAqB,YAAO,YAAP,mBAAgB;AAAA,UACxC,GAAG,OAAO;AAAA,QACZ;AAAA,QACC,GAAG,aAAa;AAAA,UACf,GAAG,gBAAgB,EAAE,GAAG,MAAM,MAAM,MAAM,MAAM,EAAE,CAAC;AAAA,UACnD,GAAG;AAAA,QACL,CAAC;AAAA,QAEA,sBAAY,IAAI,CAAC,OAAO,UACvB;AAAA,UAAC;AAAA;AAAA,YAEC,WAAU;AAAA,YACV,SAAQ;AAAA,YACR,OAAO;AAAA,cACL,UAAU;AAAA,cACV,YAAY;AAAA,cACZ,GAAG;AAAA,cACH,MAAM;AAAA,cACN,GAAG;AAAA,cACH,GAAG,OAAO;AAAA,YACZ;AAAA,YACC,GAAG,eAAe,EAAE,GAAG,oBAAoB,OAAO,MAAM,CAAC;AAAA,YAEzD,wBAAc,YAAY,EAAE,OAAO,OAAO,KAAK,CAAC,IAAI;AAAA;AAAA,UAbhD;AAAA,QAcP,CACD;AAAA;AAAA,IACH;AAAA,KACF;AAEJ;AAEA,UAAU,cAAc;AACxB,UAAU,SAAS;","names":[]}