ics-ui-kit 0.1.19 → 0.1.21
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/CalendarPreviousMonthButton-qT7qDPbO.js +133 -0
- package/dist/CalendarPreviousMonthButton-qT7qDPbO.js.map +1 -0
- package/dist/{DayPicker-4hE1QEvO.js → DayPicker-Cu2Kn-he.js} +68 -66
- package/dist/{DayPicker-4hE1QEvO.js.map → DayPicker-Cu2Kn-he.js.map} +1 -1
- package/dist/components/calendar/components/calendar-dropdown/CalendarDropdown.d.ts +24 -0
- package/dist/components/calendar/styles.d.ts +61 -0
- package/dist/components/calendar-scroll/CalendarScroll.d.ts +21 -0
- package/dist/components/calendar-scroll/CalendarScroll.stories.d.ts +16 -0
- package/dist/components/calendar-scroll/index.d.ts +3 -0
- package/dist/components/calendar-scroll.d.ts +2 -0
- package/dist/components/calendar-scroll.js +184 -0
- package/dist/components/calendar-scroll.js.map +1 -0
- package/dist/components/calendar.js +53 -148
- package/dist/components/calendar.js.map +1 -1
- package/dist/components/resizable.js +26 -1530
- package/dist/components/resizable.js.map +1 -1
- package/dist/components/sidebar.js +142 -141
- package/dist/components/sidebar.js.map +1 -1
- package/dist/components/textarea.js +30 -189
- package/dist/components/textarea.js.map +1 -1
- package/dist/ssr.test.d.ts +1 -0
- package/dist/styles-scoped.css +38 -18
- package/dist/styles.css +38 -18
- package/dist/useIsomorphicLayoutEffect-MNxJD61V.js +6 -0
- package/dist/useIsomorphicLayoutEffect-MNxJD61V.js.map +1 -0
- package/dist/vendors/react-day-picker.js +2 -2
- package/package.json +1 -1
- package/tailwind.preset.js +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar.js","sources":["../../src/components/calendar/components/calendar-chevron/CalendarChevron.tsx","../../src/components/calendar/components/calendar-day-button/CalendarDayButton.tsx","../../src/components/calendar/components/calendar-next-month-button/CalendarNextMonthButton.tsx","../../src/components/calendar/components/calendar-previous-month-button/CalendarPreviousMonthButton.tsx","../../src/components/calendar/components/calendar-root/CalendarRoot.tsx","../../src/components/calendar/components/calendar-week-day/CalendarWeekDay.tsx","../../src/components/calendar/Calendar.tsx"],"sourcesContent":["import { ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon } from \"lucide-react\";\nimport { ChevronProps } from \"react-day-picker\";\nimport { tv } from \"tailwind-variants\";\n\nconst calendarChevronStyles = tv({\n\tbase: \"size-4\"\n});\n\n/**\n * Компонент для отображения стрелок навигации в Calendar\n *\n * @param className - Дополнительные CSS классы\n * @param orientation - Направление стрелки ('left' | 'right' | 'up' | 'down')\n * @param props - Остальные пропсы от react-day-picker Chevron\n */\nexport const CalendarChevron = ({ className, orientation, ...props }: ChevronProps): React.JSX.Element => {\n\tif (orientation === \"left\") {\n\t\treturn <ChevronLeftIcon className={calendarChevronStyles({ className })} {...props} />;\n\t}\n\tif (orientation === \"right\") {\n\t\treturn <ChevronRightIcon className={calendarChevronStyles({ className })} {...props} />;\n\t}\n\tif (orientation === \"up\") {\n\t\treturn <ChevronUpIcon className={calendarChevronStyles({ className })} {...props} />;\n\t}\n\treturn <ChevronDownIcon className={calendarChevronStyles({ className })} {...props} />;\n};\n\nCalendarChevron.displayName = \"CalendarChevron\";\n","import { tv } from \"tailwind-variants\";\nimport { DayButton, DayButtonProps } from \"react-day-picker\";\n\nconst calendarDayButtonStyles = tv({\n\tbase: [\n\t\t\"inline-flex items-center justify-center gap-2\",\n\t\t\"aspect-square h-9 shrink-0 p-2.5\",\n\t\t\"text-xs font-medium text-foreground transition-all\",\n\t\t\"cursor-pointer select-none\",\n\t\t\"disabled:pointer-events-none disabled:text-muted-foreground disabled:opacity-50\",\n\t\t\"focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-primary\",\n\t\t\"focus-visible:rounded-md\"\n\t],\n\tvariants: {\n\t\tselected: {\n\t\t\ttrue: \"bg-primary text-primary-foreground\"\n\t\t},\n\t\trange_middle: {\n\t\t\ttrue: \"bg-secondary-bg-hover text-card-foreground\"\n\t\t},\n\t\toutside: {\n\t\t\ttrue: \"text-muted-foreground\"\n\t\t},\n\t\ttoday: {\n\t\t\ttrue: \"relative after:absolute after:bottom-1 after:left-1/2 after:h-1 after:w-1 after:-translate-x-1/2 after:rounded-full after:bg-primary\"\n\t\t}\n\t},\n\tcompoundVariants: [\n\t\t{\n\t\t\tselected: false,\n\t\t\tclassName: \"hover:bg-secondary-bg-hover\"\n\t\t},\n\t\t{\n\t\t\tselected: true,\n\t\t\trange_start: false,\n\t\t\trange_end: false,\n\t\t\trange_middle: false,\n\t\t\tclassName: \"rounded-md\"\n\t\t},\n\t\t{\n\t\t\tselected: true,\n\t\t\trange_start: true,\n\t\t\tclassName: \"rounded-l-md\"\n\t\t},\n\t\t{\n\t\t\tselected: true,\n\t\t\trange_end: true,\n\t\t\tclassName: \"rounded-r-md\"\n\t\t},\n\t\t{\n\t\t\ttoday: true,\n\t\t\tselected: true,\n\t\t\trange_middle: false,\n\t\t\tclassName: \"after:bg-primary-foreground\"\n\t\t},\n\t\t{\n\t\t\toutside: true,\n\t\t\tselected: false,\n\t\t\tclassName: \"hover:text-primary-fg\"\n\t\t}\n\t]\n});\n\nexport interface ModifiersRdp {\n\tselected?: boolean;\n\tdisabled?: boolean;\n\thidden?: boolean;\n\ttoday?: boolean;\n\tfocused?: boolean;\n\toutside?: boolean;\n\n\trange_start?: boolean;\n\trange_end?: boolean;\n\trange_middle?: boolean;\n}\n\nexport type CalendarDayButtonProps = DayButtonProps & { modifiers: ModifiersRdp };\n\n/**\n * Кнопка для отображения дня в Calendar\n *\n * @param modifiers - Модификаторы состояния дня (selected, disabled, today, etc.)\n * @param className - Дополнительные CSS классы\n * @param props - Пропсы от react-day-picker DayButton\n */\nexport const CalendarDayButton = ({ modifiers, className, ...props }: CalendarDayButtonProps) => {\n\treturn (\n\t\t<DayButton\n\t\t\tmodifiers={modifiers}\n\t\t\tclassName={calendarDayButtonStyles({ ...modifiers, className })}\n\t\t\t{...props}\n\t\t\tdisabled={modifiers.disabled}\n\t\t/>\n\t);\n};\n\nCalendarDayButton.displayName = \"CalendarDayButton\";\n","import { Button } from \"@/components/button\";\nimport { NextMonthButtonProps } from \"react-day-picker\";\n\n/**\n * Кнопка для перехода к следующему месяцу в Calendar, оборачивает компонент day-picker-chevron\n *\n * @param className - Дополнительные CSS классы\n * @param props - Пропсы от react-day-picker NextMonthButton\n */\nexport const CalendarNextMonthButton = ({ className, ...props }: NextMonthButtonProps) => {\n\treturn <Button {...props} variant=\"ghost\" className={className} />;\n};\n\nCalendarNextMonthButton.displayName = \"CalendarNextMonthButton\";\n","import { Button } from \"@/components/button\";\nimport { PreviousMonthButtonProps } from \"react-day-picker\";\n\n/**\n * Кнопка для перехода к предыдущему месяцу в Calendar, оборачивает компонент day-picker-chevron\n *\n * @param className - Дополнительные CSS классы\n * @param props - Пропсы от react-day-picker PreviousMonthButton\n */\nexport const CalendarPreviousMonthButton = ({ className, ...props }: PreviousMonthButtonProps) => {\n\treturn <Button {...props} variant=\"ghost\" className={className} />;\n};\n\nCalendarPreviousMonthButton.displayName = \"CalendarPreviousMonthButton\";\n","import { Root, RootProps } from \"react-day-picker\";\nimport { tv } from \"tailwind-variants\";\n\nconst calendarRootStyles = tv({\n\tbase: [\n\t\t\"w-fit rounded-md border bg-background\",\n\t\t\"border border-solid border-secondary-border bg-secondary-bg shadow-soft-sm\"\n\t]\n});\n\n/**\n * Корневой контейнер для Calendar\n *\n * @param className - Дополнительные CSS классы\n * @param props - Пропсы от react-day-picker Root\n */\nexport const CalendarRoot = ({ className, ...props }: RootProps) => {\n\treturn <Root {...props} className={calendarRootStyles({ className })} />;\n};\n\nCalendarRoot.displayName = \"CalendarRoot\";\n","import { tv } from \"tailwind-variants\";\nimport { Weekday, WeekdayProps } from \"react-day-picker\";\n\nconst calendarWeekDayStyles = tv({\n\tbase: [\n\t\t\"inline-flex items-center justify-center gap-2\",\n\t\t\"transition-all\",\n\t\t\"text-xs font-medium text-muted-foreground\",\n\t\t\"w-9 shrink-0 rounded p-0\",\n\t\t\"opacity-70\"\n\t]\n});\n\n/**\n * Компонент для отображения дня недели в Calendar\n *\n * @param className - Дополнительные CSS классы\n * @param props - Пропсы от react-day-picker Weekday\n */\nexport const CalendarWeekDay = ({ className, ...props }: WeekdayProps) => {\n\treturn <Weekday className={calendarWeekDayStyles({ className })} {...props}></Weekday>;\n};\n\nCalendarWeekDay.displayName = \"CalendarWeekDay\";\n","import { useMemo } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { CalendarChevron } from \"./components/calendar-chevron/CalendarChevron\";\nimport { CalendarDayButton } from \"./components/calendar-day-button/CalendarDayButton\";\nimport { CalendarNextMonthButton } from \"./components/calendar-next-month-button/CalendarNextMonthButton\";\nimport { CalendarPreviousMonthButton } from \"./components/calendar-previous-month-button/CalendarPreviousMonthButton\";\nimport { CalendarRoot } from \"./components/calendar-root/CalendarRoot\";\nimport { CalendarWeekDay } from \"./components/calendar-week-day/CalendarWeekDay\";\nimport { DayPicker, DayPickerProps } from \"react-day-picker\";\n\nconst CalendarStyles = tv({\n\tbase: [\n\t\t\"bg-background p-3 [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent\"\n\t],\n\tslots: {\n\t\tmonths: \"relative flex flex-col gap-4 md:flex-row\",\n\t\tmonth: \"flex w-full flex-col gap-4\",\n\t\tnav: \"absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1\",\n\t\tmonth_caption: \"flex h-9 w-full items-center justify-center px-2 capitalize\",\n\t\tdropdowns: \"flex h-9 w-full items-center justify-center gap-1.5 text-sm font-medium\",\n\t\tdropdown_root: [\n\t\t\t\"has-focus:border-ring has-focus:ring-ring/50 has-focus:ring-[3px]\",\n\t\t\t\"shadow-xs relative rounded-md border border-input\"\n\t\t],\n\t\tdropdown: \"absolute inset-0 bg-background opacity-0\",\n\t\ttable: \"w-full border-collapse\",\n\t\tweekdays: \"flex\",\n\t\tweek: \"mt-1 flex\",\n\t\thidden: \"invisible\",\n\t\tday: \"border-0 p-0\"\n\t}\n});\n\nconst captionLabelStyle = tv({\n\tbase: \"select-none font-medium\",\n\tvariants: {\n\t\tlayout: {\n\t\t\tlabel: \"text-sm\",\n\t\t\tdropdown:\n\t\t\t\t\"flex h-8 items-center gap-1 rounded-md pl-2 pr-1 text-sm [&>svg]:size-3.5 [&>svg]:text-muted-foreground\"\n\t\t}\n\t},\n\tdefaultVariants: {\n\t\tlayout: \"label\"\n\t}\n});\n\nexport type CalendarProps = DayPickerProps;\n\n/**\n * Calendar компонент для выбора дат\n *\n * Основан на [react-day-picker](https://Calendar.dev/) с кастомной стилизацией.\n * Поддерживает выбор одной даты, множественный выбор и выбор диапазона дат.\n *\n * @see https://ui-kit.ics-it.ru/?path=/docs/components-day-picker-Calendar--docs\n */\nexport const Calendar = ({\n\tclassName,\n\tclassNames,\n\tshowOutsideDays = true,\n\tcaptionLayout = \"dropdown\",\n\tcomponents,\n\t...props\n}: CalendarProps) => {\n\tconst styles = CalendarStyles();\n\n\t/**\n\t * По умолчанию react-day-picker ограничивает выбор даты:\n\t * - Минимум - текущий год минус 100 лет\n\t * - Максимум - последний месяц текущего года\n\t * Переопределяем это поведение, чтобы можно было выбирать даты до 2100 года.\n\t */\n\tconst endMonth = useMemo(() => {\n\t\treturn new Date(2100, 11, 31);\n\t}, []);\n\n\tconst classNamesMemoized: CalendarProps[\"classNames\"] = useMemo(() => {\n\t\treturn {\n\t\t\tmonths: styles.months(),\n\t\t\tmonth: styles.month(),\n\t\t\tnav: styles.nav(),\n\t\t\tmonth_caption: styles.month_caption(),\n\t\t\tdropdowns: styles.dropdowns(),\n\t\t\tdropdown_root: styles.dropdown_root(),\n\t\t\tdropdown: styles.dropdown(),\n\t\t\tcaption_label: captionLabelStyle({\n\t\t\t\tlayout: captionLayout === \"label\" ? captionLayout : \"dropdown\"\n\t\t\t}),\n\t\t\ttable: styles.table(),\n\t\t\tweekdays: styles.weekdays(),\n\t\t\tweek: styles.week(),\n\t\t\thidden: styles.hidden(),\n\t\t\tday: styles.day(),\n\t\t\t...classNames\n\t\t};\n\t}, [classNames]);\n\n\tconst componentsMemoized: CalendarProps[\"components\"] = useMemo(() => {\n\t\treturn {\n\t\t\tRoot: CalendarRoot,\n\t\t\tChevron: CalendarChevron,\n\t\t\tDayButton: CalendarDayButton,\n\t\t\tWeekday: CalendarWeekDay,\n\t\t\tPreviousMonthButton: CalendarPreviousMonthButton,\n\t\t\tNextMonthButton: CalendarNextMonthButton,\n\t\t\t...components\n\t\t};\n\t}, [components]);\n\n\treturn (\n\t\t<DayPicker\n\t\t\tendMonth={endMonth}\n\t\t\tshowOutsideDays={showOutsideDays}\n\t\t\tclassName={styles.base({ className })}\n\t\t\tcaptionLayout={captionLayout}\n\t\t\tclassNames={classNamesMemoized}\n\t\t\tcomponents={componentsMemoized}\n\t\t\t{...props}\n\t\t/>\n\t);\n};\n\nCalendar.displayName = \"Calendar\";\n"],"names":["calendarChevronStyles","tv","CalendarChevron","className","orientation","props","jsx","ChevronLeftIcon","ChevronRightIcon","ChevronUpIcon","ChevronDownIcon","calendarDayButtonStyles","CalendarDayButton","modifiers","DayButton","CalendarNextMonthButton","Button","CalendarPreviousMonthButton","calendarRootStyles","CalendarRoot","Root","calendarWeekDayStyles","CalendarWeekDay","Weekday","CalendarStyles","captionLabelStyle","Calendar","classNames","showOutsideDays","captionLayout","components","styles","endMonth","useMemo","classNamesMemoized","componentsMemoized","DayPicker"],"mappings":";;;;;;;;;AAIA,MAAMA,IAAwBC,EAAG;AAAA,EAChC,MAAM;AACP,CAAC,GASYC,IAAkB,CAAC,EAAE,WAAAC,GAAW,aAAAC,GAAa,GAAGC,QACxDD,MAAgB,SACZ,gBAAAE,EAACC,KAAgB,WAAWP,EAAsB,EAAE,WAAAG,EAAW,CAAA,GAAI,GAAGE,GAAO,IAEjFD,MAAgB,UACZ,gBAAAE,EAACE,KAAiB,WAAWR,EAAsB,EAAE,WAAAG,EAAW,CAAA,GAAI,GAAGE,GAAO,IAElFD,MAAgB,OACZ,gBAAAE,EAACG,KAAc,WAAWT,EAAsB,EAAE,WAAAG,EAAW,CAAA,GAAI,GAAGE,GAAO,IAE5E,gBAAAC,EAACI,KAAgB,WAAWV,EAAsB,EAAE,WAAAG,EAAW,CAAA,GAAI,GAAGE,GAAO;AAGrFH,EAAgB,cAAc;ACzB9B,MAAMS,IAA0BV,EAAG;AAAA,EAClC,MAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACA,UAAU;AAAA,IACT,UAAU;AAAA,MACT,MAAM;AAAA,IACP;AAAA,IACA,cAAc;AAAA,MACb,MAAM;AAAA,IACP;AAAA,IACA,SAAS;AAAA,MACR,MAAM;AAAA,IACP;AAAA,IACA,OAAO;AAAA,MACN,MAAM;AAAA,IAAA;AAAA,EAER;AAAA,EACA,kBAAkB;AAAA,IACjB;AAAA,MACC,UAAU;AAAA,MACV,WAAW;AAAA,IACZ;AAAA,IACA;AAAA,MACC,UAAU;AAAA,MACV,aAAa;AAAA,MACb,WAAW;AAAA,MACX,cAAc;AAAA,MACd,WAAW;AAAA,IACZ;AAAA,IACA;AAAA,MACC,UAAU;AAAA,MACV,aAAa;AAAA,MACb,WAAW;AAAA,IACZ;AAAA,IACA;AAAA,MACC,UAAU;AAAA,MACV,WAAW;AAAA,MACX,WAAW;AAAA,IACZ;AAAA,IACA;AAAA,MACC,OAAO;AAAA,MACP,UAAU;AAAA,MACV,cAAc;AAAA,MACd,WAAW;AAAA,IACZ;AAAA,IACA;AAAA,MACC,SAAS;AAAA,MACT,UAAU;AAAA,MACV,WAAW;AAAA,IAAA;AAAA,EACZ;AAEF,CAAC,GAwBYW,IAAoB,CAAC,EAAE,WAAAC,GAAW,WAAAV,GAAW,GAAGE,QAE3D,gBAAAC;AAAA,EAACQ;AAAA,EAAA;AAAA,IACA,WAAAD;AAAA,IACA,WAAWF,EAAwB,EAAE,GAAGE,GAAW,WAAAV,GAAW;AAAA,IAC7D,GAAGE;AAAA,IACJ,UAAUQ,EAAU;AAAA,EAAA;AACrB;AAIFD,EAAkB,cAAc;ACvFzB,MAAMG,IAA0B,CAAC,EAAE,WAAAZ,GAAW,GAAGE,0BAC/CW,GAAQ,EAAA,GAAGX,GAAO,SAAQ,SAAQ,WAAAF,GAAsB;AAGjEY,EAAwB,cAAc;ACJ/B,MAAME,IAA8B,CAAC,EAAE,WAAAd,GAAW,GAAGE,0BACnDW,GAAQ,EAAA,GAAGX,GAAO,SAAQ,SAAQ,WAAAF,GAAsB;AAGjEc,EAA4B,cAAc;ACV1C,MAAMC,IAAqBjB,EAAG;AAAA,EAC7B,MAAM;AAAA,IACL;AAAA,IACA;AAAA,EAAA;AAEF,CAAC,GAQYkB,IAAe,CAAC,EAAE,WAAAhB,GAAW,GAAGE,QACrC,gBAAAC,EAACc,KAAM,GAAGf,GAAO,WAAWa,EAAmB,EAAE,WAAAf,EAAW,CAAA,GAAG;AAGvEgB,EAAa,cAAc;ACjB3B,MAAME,IAAwBpB,EAAG;AAAA,EAChC,MAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEF,CAAC,GAQYqB,IAAkB,CAAC,EAAE,WAAAnB,GAAW,GAAGE,QACxC,gBAAAC,EAACiB,KAAQ,WAAWF,EAAsB,EAAE,WAAAlB,EAAW,CAAA,GAAI,GAAGE,GAAO;AAG7EiB,EAAgB,cAAc;ACb9B,MAAME,IAAiBvB,EAAG;AAAA,EACzB,MAAM;AAAA,IACL;AAAA,EACD;AAAA,EACA,OAAO;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,KAAK;AAAA,IACL,eAAe;AAAA,IACf,WAAW;AAAA,IACX,eAAe;AAAA,MACd;AAAA,MACA;AAAA,IACD;AAAA,IACA,UAAU;AAAA,IACV,OAAO;AAAA,IACP,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,KAAK;AAAA,EAAA;AAEP,CAAC,GAEKwB,IAAoBxB,EAAG;AAAA,EAC5B,MAAM;AAAA,EACN,UAAU;AAAA,IACT,QAAQ;AAAA,MACP,OAAO;AAAA,MACP,UACC;AAAA,IAAA;AAAA,EAEH;AAAA,EACA,iBAAiB;AAAA,IAChB,QAAQ;AAAA,EAAA;AAEV,CAAC,GAYYyB,IAAW,CAAC;AAAA,EACxB,WAAAvB;AAAA,EACA,YAAAwB;AAAA,EACA,iBAAAC,IAAkB;AAAA,EAClB,eAAAC,IAAgB;AAAA,EAChB,YAAAC;AAAA,EACA,GAAGzB;AACJ,MAAqB;AACpB,QAAM0B,IAASP,EAAe,GAQxBQ,IAAWC,EAAQ,MACjB,IAAI,KAAK,MAAM,IAAI,EAAE,GAC1B,EAAE,GAECC,IAAkDD,EAAQ,OACxD;AAAA,IACN,QAAQF,EAAO,OAAO;AAAA,IACtB,OAAOA,EAAO,MAAM;AAAA,IACpB,KAAKA,EAAO,IAAI;AAAA,IAChB,eAAeA,EAAO,cAAc;AAAA,IACpC,WAAWA,EAAO,UAAU;AAAA,IAC5B,eAAeA,EAAO,cAAc;AAAA,IACpC,UAAUA,EAAO,SAAS;AAAA,IAC1B,eAAeN,EAAkB;AAAA,MAChC,QAAQI,MAAkB,UAAUA,IAAgB;AAAA,IAAA,CACpD;AAAA,IACD,OAAOE,EAAO,MAAM;AAAA,IACpB,UAAUA,EAAO,SAAS;AAAA,IAC1B,MAAMA,EAAO,KAAK;AAAA,IAClB,QAAQA,EAAO,OAAO;AAAA,IACtB,KAAKA,EAAO,IAAI;AAAA,IAChB,GAAGJ;AAAA,EACJ,IACE,CAACA,CAAU,CAAC,GAETQ,IAAkDF,EAAQ,OACxD;AAAA,IACN,MAAMd;AAAA,IACN,SAASjB;AAAA,IACT,WAAWU;AAAA,IACX,SAASU;AAAA,IACT,qBAAqBL;AAAA,IACrB,iBAAiBF;AAAA,IACjB,GAAGe;AAAA,EACJ,IACE,CAACA,CAAU,CAAC;AAGd,SAAA,gBAAAxB;AAAA,IAAC8B;AAAA,IAAA;AAAA,MACA,UAAAJ;AAAA,MACA,iBAAAJ;AAAA,MACA,WAAWG,EAAO,KAAK,EAAE,WAAA5B,GAAW;AAAA,MACpC,eAAA0B;AAAA,MACA,YAAYK;AAAA,MACZ,YAAYC;AAAA,MACX,GAAG9B;AAAA,IAAA;AAAA,EACL;AAEF;AAEAqB,EAAS,cAAc;"}
|
|
1
|
+
{"version":3,"file":"calendar.js","sources":["../../src/components/calendar/components/calendar-root/CalendarRoot.tsx","../../src/components/calendar/components/calendar-week-day/CalendarWeekDay.tsx","../../src/components/calendar/Calendar.tsx"],"sourcesContent":["import { Root, RootProps } from \"react-day-picker\";\nimport { tv } from \"tailwind-variants\";\n\nconst calendarRootStyles = tv({\n\tbase: [\n\t\t\"w-fit rounded-md border bg-background\",\n\t\t\"border border-solid border-secondary-border bg-secondary-bg shadow-soft-sm\"\n\t]\n});\n\n/**\n * Корневой контейнер для Calendar\n *\n * @param className - Дополнительные CSS классы\n * @param props - Пропсы от react-day-picker Root\n */\nexport const CalendarRoot = ({ className, ...props }: RootProps) => {\n\treturn <Root {...props} className={calendarRootStyles({ className })} />;\n};\n\nCalendarRoot.displayName = \"CalendarRoot\";\n","import { tv } from \"tailwind-variants\";\nimport { Weekday, WeekdayProps } from \"react-day-picker\";\n\nconst calendarWeekDayStyles = tv({\n\tbase: [\n\t\t\"inline-flex items-center justify-center gap-2\",\n\t\t\"transition-all\",\n\t\t\"text-xs font-medium text-muted-foreground\",\n\t\t\"w-9 shrink-0 rounded p-0\",\n\t\t\"opacity-70\"\n\t]\n});\n\n/**\n * Компонент для отображения дня недели в Calendar\n *\n * @param className - Дополнительные CSS классы\n * @param props - Пропсы от react-day-picker Weekday\n */\nexport const CalendarWeekDay = ({ className, ...props }: WeekdayProps) => {\n\treturn <Weekday className={calendarWeekDayStyles({ className })} {...props}></Weekday>;\n};\n\nCalendarWeekDay.displayName = \"CalendarWeekDay\";\n","import { useMemo } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { CalendarChevron } from \"./components/calendar-chevron/CalendarChevron\";\nimport { CalendarDayButton } from \"./components/calendar-day-button/CalendarDayButton\";\nimport { CalendarDropdown } from \"./components/calendar-dropdown/CalendarDropdown\";\nimport { CalendarNextMonthButton } from \"./components/calendar-next-month-button/CalendarNextMonthButton\";\nimport { CalendarPreviousMonthButton } from \"./components/calendar-previous-month-button/CalendarPreviousMonthButton\";\nimport { CalendarRoot } from \"./components/calendar-root/CalendarRoot\";\nimport { CalendarWeekDay } from \"./components/calendar-week-day/CalendarWeekDay\";\nimport { calendarDropdownStyles } from \"./styles\";\nimport { DayPicker, DayPickerProps } from \"react-day-picker\";\n\nconst CalendarStyles = tv({\n\tbase: [\n\t\t\"bg-background p-3 [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent\"\n\t],\n\tslots: {\n\t\tmonths: \"relative flex flex-col gap-4 md:flex-row\",\n\t\tmonth: \"flex w-full flex-col gap-4\",\n\t\tnav: \"absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1\",\n\t\tmonth_caption: \"flex h-9 w-full items-center justify-center px-2 capitalize\",\n\t\tdropdowns: \"flex h-9 w-full items-center justify-center gap-1.5 text-sm font-medium\",\n\t\ttable: \"w-full border-collapse\",\n\t\tweekdays: \"flex\",\n\t\tweek: \"mt-1 flex\",\n\t\thidden: \"invisible\",\n\t\tday: \"border-0 p-0\"\n\t}\n});\n\nconst captionLabelStyle = tv({\n\tbase: \"select-none text-sm font-medium\"\n});\n\nexport type CalendarProps = DayPickerProps;\n\n/**\n * Calendar компонент для выбора дат\n *\n * Основан на [react-day-picker](https://Calendar.dev/) с кастомной стилизацией.\n * Поддерживает выбор одной даты, множественный выбор и выбор диапазона дат.\n *\n * @see https://ui-kit.ics-it.ru/?path=/docs/components-day-picker-Calendar--docs\n */\nexport const Calendar = ({\n\tclassName,\n\tclassNames,\n\tshowOutsideDays = true,\n\tcaptionLayout = \"dropdown\",\n\tcomponents,\n\t...props\n}: CalendarProps) => {\n\tconst styles = CalendarStyles();\n\tconst dropdownStyles = calendarDropdownStyles();\n\n\t/**\n\t * По умолчанию react-day-picker ограничивает выбор даты:\n\t * - Минимум - текущий год минус 100 лет\n\t * - Максимум - последний месяц текущего года\n\t * Переопределяем это поведение, чтобы можно было выбирать даты до 2100 года.\n\t */\n\tconst endMonth = useMemo(() => {\n\t\treturn new Date(2100, 11, 31);\n\t}, []);\n\n\tconst classNamesMemoized: CalendarProps[\"classNames\"] = useMemo(() => {\n\t\treturn {\n\t\t\tmonths: styles.months(),\n\t\t\tmonth: styles.month(),\n\t\t\tnav: styles.nav(),\n\t\t\tmonth_caption: styles.month_caption(),\n\t\t\tdropdowns: styles.dropdowns(),\n\t\t\tdropdown_root: dropdownStyles.root(),\n\t\t\tdropdown: dropdownStyles.select(),\n\t\t\tcaption_label: captionLayout === \"label\" ? captionLabelStyle() : dropdownStyles.label(),\n\t\t\ttable: styles.table(),\n\t\t\tweekdays: styles.weekdays(),\n\t\t\tweek: styles.week(),\n\t\t\thidden: styles.hidden(),\n\t\t\tday: styles.day(),\n\t\t\t...classNames\n\t\t};\n\t}, [classNames]);\n\n\tconst componentsMemoized: CalendarProps[\"components\"] = useMemo(() => {\n\t\treturn {\n\t\t\tRoot: CalendarRoot,\n\t\t\tChevron: CalendarChevron,\n\t\t\tDayButton: CalendarDayButton,\n\t\t\tDropdown: CalendarDropdown,\n\t\t\tWeekday: CalendarWeekDay,\n\t\t\tPreviousMonthButton: CalendarPreviousMonthButton,\n\t\t\tNextMonthButton: CalendarNextMonthButton,\n\t\t\t...components\n\t\t};\n\t}, [components]);\n\n\treturn (\n\t\t<DayPicker\n\t\t\tendMonth={endMonth}\n\t\t\tshowOutsideDays={showOutsideDays}\n\t\t\tclassName={styles.base({ className })}\n\t\t\tcaptionLayout={captionLayout}\n\t\t\tclassNames={classNamesMemoized}\n\t\t\tcomponents={componentsMemoized}\n\t\t\t{...props}\n\t\t/>\n\t);\n};\n\nCalendar.displayName = \"Calendar\";\n"],"names":["calendarRootStyles","tv","CalendarRoot","className","props","jsx","Root","calendarWeekDayStyles","CalendarWeekDay","Weekday","CalendarStyles","captionLabelStyle","Calendar","classNames","showOutsideDays","captionLayout","components","styles","dropdownStyles","calendarDropdownStyles","endMonth","useMemo","classNamesMemoized","componentsMemoized","CalendarChevron","CalendarDayButton","CalendarDropdown","CalendarPreviousMonthButton","CalendarNextMonthButton","DayPicker"],"mappings":";;;;;AAGA,MAAMA,IAAqBC,EAAG;AAAA,EAC7B,MAAM;AAAA,IACL;AAAA,IACA;AAAA,EAAA;AAEF,CAAC,GAQYC,IAAe,CAAC,EAAE,WAAAC,GAAW,GAAGC,QACrC,gBAAAC,EAACC,KAAM,GAAGF,GAAO,WAAWJ,EAAmB,EAAE,WAAAG,EAAW,CAAA,GAAG;AAGvED,EAAa,cAAc;ACjB3B,MAAMK,IAAwBN,EAAG;AAAA,EAChC,MAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEF,CAAC,GAQYO,IAAkB,CAAC,EAAE,WAAAL,GAAW,GAAGC,QACxC,gBAAAC,EAACI,KAAQ,WAAWF,EAAsB,EAAE,WAAAJ,EAAW,CAAA,GAAI,GAAGC,GAAO;AAG7EI,EAAgB,cAAc;ACX9B,MAAME,IAAiBT,EAAG;AAAA,EACzB,MAAM;AAAA,IACL;AAAA,EACD;AAAA,EACA,OAAO;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,KAAK;AAAA,IACL,eAAe;AAAA,IACf,WAAW;AAAA,IACX,OAAO;AAAA,IACP,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,KAAK;AAAA,EAAA;AAEP,CAAC,GAEKU,IAAoBV,EAAG;AAAA,EAC5B,MAAM;AACP,CAAC,GAYYW,IAAW,CAAC;AAAA,EACxB,WAAAT;AAAA,EACA,YAAAU;AAAA,EACA,iBAAAC,IAAkB;AAAA,EAClB,eAAAC,IAAgB;AAAA,EAChB,YAAAC;AAAA,EACA,GAAGZ;AACJ,MAAqB;AACpB,QAAMa,IAASP,EAAe,GACxBQ,IAAiBC,EAAuB,GAQxCC,IAAWC,EAAQ,MACjB,IAAI,KAAK,MAAM,IAAI,EAAE,GAC1B,EAAE,GAECC,IAAkDD,EAAQ,OACxD;AAAA,IACN,QAAQJ,EAAO,OAAO;AAAA,IACtB,OAAOA,EAAO,MAAM;AAAA,IACpB,KAAKA,EAAO,IAAI;AAAA,IAChB,eAAeA,EAAO,cAAc;AAAA,IACpC,WAAWA,EAAO,UAAU;AAAA,IAC5B,eAAeC,EAAe,KAAK;AAAA,IACnC,UAAUA,EAAe,OAAO;AAAA,IAChC,eAAeH,MAAkB,UAAUJ,EAAkB,IAAIO,EAAe,MAAM;AAAA,IACtF,OAAOD,EAAO,MAAM;AAAA,IACpB,UAAUA,EAAO,SAAS;AAAA,IAC1B,MAAMA,EAAO,KAAK;AAAA,IAClB,QAAQA,EAAO,OAAO;AAAA,IACtB,KAAKA,EAAO,IAAI;AAAA,IAChB,GAAGJ;AAAA,EACJ,IACE,CAACA,CAAU,CAAC,GAETU,IAAkDF,EAAQ,OACxD;AAAA,IACN,MAAMnB;AAAA,IACN,SAASsB;AAAA,IACT,WAAWC;AAAA,IACX,UAAUC;AAAA,IACV,SAASlB;AAAA,IACT,qBAAqBmB;AAAA,IACrB,iBAAiBC;AAAA,IACjB,GAAGZ;AAAA,EACJ,IACE,CAACA,CAAU,CAAC;AAGd,SAAA,gBAAAX;AAAA,IAACwB;AAAA,IAAA;AAAA,MACA,UAAAT;AAAA,MACA,iBAAAN;AAAA,MACA,WAAWG,EAAO,KAAK,EAAE,WAAAd,GAAW;AAAA,MACpC,eAAAY;AAAA,MACA,YAAYO;AAAA,MACZ,YAAYC;AAAA,MACX,GAAGnB;AAAA,IAAA;AAAA,EACL;AAEF;AAEAQ,EAAS,cAAc;"}
|