react-modular-datepicker 0.0.2-canary.21 → 0.0.2-canary.22

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.
Files changed (47) hide show
  1. package/README.md +1 -6
  2. package/dist/adapters/dayjs.d.ts +21 -0
  3. package/dist/classNames.d.ts +67 -0
  4. package/dist/components/Calendar.d.ts +14 -0
  5. package/dist/components/CalendarHeader.d.ts +19 -0
  6. package/dist/components/Day.d.ts +13 -0
  7. package/dist/components/MonthSelection.d.ts +13 -0
  8. package/dist/components/YearSelection.d.ts +12 -0
  9. package/dist/i18n.d.ts +9 -0
  10. package/dist/index.css +10 -0
  11. package/dist/index.d.ts +12 -0
  12. package/dist/index.js +2 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/index.mjs +316 -0
  15. package/dist/index.mjs.map +1 -0
  16. package/dist/types.d.ts +42 -0
  17. package/dist/useDates-D9EvVlhK.js +2 -0
  18. package/dist/useDates-D9EvVlhK.js.map +1 -0
  19. package/dist/useDates-DQabq6Ux.mjs +201 -0
  20. package/dist/useDates-DQabq6Ux.mjs.map +1 -0
  21. package/dist/useDates.d.ts +63 -0
  22. package/dist/useDates.js +1 -0
  23. package/dist/useDates.mjs +3 -0
  24. package/dist/utils.d.ts +42 -0
  25. package/dist/utils.js +2 -0
  26. package/dist/utils.js.map +1 -0
  27. package/dist/utils.mjs +169 -0
  28. package/dist/utils.mjs.map +1 -0
  29. package/package.json +23 -20
  30. package/dist/cjs/index.d.ts +0 -196
  31. package/dist/cjs/index.js +0 -2
  32. package/dist/cjs/index.js.map +0 -1
  33. package/dist/cjs/useDates.d.ts +0 -110
  34. package/dist/cjs/useDates.js +0 -2
  35. package/dist/cjs/useDates.js.map +0 -1
  36. package/dist/cjs/utils.d.ts +0 -85
  37. package/dist/cjs/utils.js +0 -2
  38. package/dist/cjs/utils.js.map +0 -1
  39. package/dist/es/index.d.mts +0 -196
  40. package/dist/es/index.mjs +0 -2
  41. package/dist/es/index.mjs.map +0 -1
  42. package/dist/es/useDates.d.mts +0 -110
  43. package/dist/es/useDates.mjs +0 -2
  44. package/dist/es/useDates.mjs.map +0 -1
  45. package/dist/es/utils.d.mts +0 -85
  46. package/dist/es/utils.mjs +0 -2
  47. package/dist/es/utils.mjs.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-modular-datepicker",
3
- "version": "0.0.2-canary.21",
3
+ "version": "0.0.2-canary.22",
4
4
  "description": "Another react datepicker",
5
5
  "keywords": [],
6
6
  "author": "",
@@ -18,62 +18,65 @@
18
18
  "devDependencies": {
19
19
  "@playwright/test": "^1.60.0",
20
20
  "@tailwindcss/cli": "^4.3.0",
21
+ "@tailwindcss/vite": "^4.3.3",
21
22
  "@types/react": "^19.2.15",
22
23
  "@types/react-dom": "^19.2.3",
23
- "bunchee": "^6.10.0",
24
+ "@vitejs/plugin-react": "^6.1.1",
24
25
  "dayjs": "^1.11.20",
25
26
  "react": "^19.2.6",
26
27
  "react-dom": "^19.2.6",
27
28
  "semver": "^7.8.1",
28
29
  "tailwindcss": "^4.3.0",
29
- "typescript": "^6.0.3"
30
+ "typescript": "^6.0.3",
31
+ "vite": "^8.3.0",
32
+ "vite-plugin-dts": "^5.1.0"
30
33
  },
31
34
  "files": [
32
35
  "dist"
33
36
  ],
34
- "main": "./dist/cjs/index.js",
35
- "module": "./dist/es/index.mjs",
36
- "types": "./dist/cjs/index.d.ts",
37
+ "main": "./dist/index.js",
38
+ "module": "./dist/index.mjs",
39
+ "types": "./dist/index.d.ts",
37
40
  "exports": {
38
41
  ".": {
39
42
  "import": {
40
- "types": "./dist/es/index.d.mts",
41
- "default": "./dist/es/index.mjs"
43
+ "types": "./dist/index.d.ts",
44
+ "default": "./dist/index.mjs"
42
45
  },
43
46
  "require": {
44
- "types": "./dist/cjs/index.d.ts",
45
- "default": "./dist/cjs/index.js"
47
+ "types": "./dist/index.d.ts",
48
+ "default": "./dist/index.js"
46
49
  }
47
50
  },
48
51
  "./useDates": {
49
52
  "import": {
50
- "types": "./dist/es/useDates.d.mts",
51
- "default": "./dist/es/useDates.mjs"
53
+ "types": "./dist/useDates.d.ts",
54
+ "default": "./dist/useDates.mjs"
52
55
  },
53
56
  "require": {
54
- "types": "./dist/cjs/useDates.d.ts",
55
- "default": "./dist/cjs/useDates.js"
57
+ "types": "./dist/useDates.d.ts",
58
+ "default": "./dist/useDates.js"
56
59
  }
57
60
  },
58
61
  "./utils": {
59
62
  "import": {
60
- "types": "./dist/es/utils.d.mts",
61
- "default": "./dist/es/utils.mjs"
63
+ "types": "./dist/utils.d.ts",
64
+ "default": "./dist/utils.mjs"
62
65
  },
63
66
  "require": {
64
- "types": "./dist/cjs/utils.d.ts",
65
- "default": "./dist/cjs/utils.js"
67
+ "types": "./dist/utils.d.ts",
68
+ "default": "./dist/utils.js"
66
69
  }
67
70
  },
68
71
  "./dist/index.css": "./dist/index.css"
69
72
  },
70
73
  "scripts": {
71
74
  "dev": "pnpm run -p \"/^dev:.*/\"",
72
- "dev:watch": "bunchee -w",
75
+ "dev:watch": "vite build --watch",
73
76
  "dev:css": "tailwindcss -i src/index.css -o dist/index.css --watch",
74
77
  "dev:example": "pnpm --filter example-app-router dev",
75
78
  "build": "pnpm run build:js && pnpm run build:css",
76
- "build:js": "bunchee -m",
79
+ "build:js": "vite build",
77
80
  "build:css": "tailwindcss -i src/index.css -o dist/index.css",
78
81
  "test:e2e": "playwright test"
79
82
  }
@@ -1,196 +0,0 @@
1
- import { UseDatesProps } from './useDates.js';
2
- export { Dates, UseDatesProps, useDates } from './useDates.js';
3
- export * from './utils.js';
4
- import React from 'react';
5
- import { Dayjs } from 'dayjs';
6
-
7
- interface DayClassNames {
8
- day?: string;
9
- today?: string;
10
- selected?: string;
11
- unselected?: string;
12
- disabled?: string;
13
- outside?: string;
14
- rangeStart?: string;
15
- rangeEnd?: string;
16
- rangeBetween?: string;
17
- rangeHovering?: string;
18
- [key: string]: string | undefined;
19
- }
20
- declare const defaultClassNames: {
21
- root: string;
22
- header: string;
23
- calendarsContainer: string;
24
- calendarContainer: string;
25
- weekdayGrid: string;
26
- weekday: string;
27
- daysGrid: string;
28
- footer: string;
29
- navButton: string;
30
- monthYearContainer: string;
31
- monthYearLabel: string;
32
- monthYearButton: string;
33
- day: {
34
- day: string;
35
- today: string;
36
- selected: string;
37
- unselected: string;
38
- disabled: string;
39
- outside: string;
40
- rangeStart: string;
41
- rangeEnd: string;
42
- rangeBetween: string;
43
- rangeHovering: string;
44
- };
45
- monthsRoot: string;
46
- monthsHeader: string;
47
- monthsBackButton: string;
48
- monthsYearLabel: string;
49
- monthsGrid: string;
50
- monthButton: string;
51
- monthButtonSelected: string;
52
- monthButtonUnselected: string;
53
- yearsRoot: string;
54
- yearsHeader: string;
55
- yearsBackButton: string;
56
- yearsTitle: string;
57
- yearsGrid: string;
58
- yearButton: string;
59
- yearButtonSelected: string;
60
- yearButtonUnselected: string;
61
- };
62
- type CalendarClassNames = typeof defaultClassNames;
63
- declare const mergeClassNames: (custom?: CalendarClassNames) => Required<CalendarClassNames>;
64
-
65
- interface DateAdapter<T = any> {
66
- date(value?: any): T;
67
- add(date: T, amount: number, unit: 'day' | 'month' | 'year'): T;
68
- subtract(date: T, amount: number, unit: 'day' | 'month' | 'year'): T;
69
- startOf(date: T, unit: 'day' | 'month' | 'year'): T;
70
- endOf(date: T, unit: 'day' | 'month' | 'year'): T;
71
- isBefore(date: T, comparison: T, unit?: 'day' | 'month' | 'year'): boolean;
72
- isAfter(date: T, comparison: T, unit?: 'day' | 'month' | 'year'): boolean;
73
- isSame(date: T, comparison: T, unit?: 'day' | 'month' | 'year'): boolean;
74
- set(date: T, unit: 'day' | 'month' | 'year', value: number): T;
75
- get(date: T, unit: 'day' | 'month' | 'year'): number;
76
- format(date: T, formatStr: string, locale?: string): string;
77
- getDaysInMonth(date: T): number;
78
- toDate(date: T): Date;
79
- diff(date: T, comparison: T, unit: 'month' | 'year'): number;
80
- getMonths(locale?: string): string[];
81
- getWeekdays(locale?: string): string[];
82
- }
83
- type SelectionMode = 'single' | 'range' | 'multiple';
84
- interface DateObj {
85
- date: Date;
86
- selected: boolean;
87
- selectable: boolean;
88
- today: boolean;
89
- prevMonth: boolean;
90
- nextMonth: boolean;
91
- isRangeStart?: boolean;
92
- isRangeEnd?: boolean;
93
- isRangeBetween?: boolean;
94
- isRangeHovering?: boolean;
95
- isRangeActive?: boolean;
96
- modifiers?: string[];
97
- }
98
- interface Calendar$1 {
99
- firstDayOfMonth: Date;
100
- lastDayOfMonth: Date;
101
- month: number;
102
- year: number;
103
- weeks: (DateObj | null)[][];
104
- }
105
-
106
- interface Translations {
107
- months: string[];
108
- weekdays: string[];
109
- back: string;
110
- forward: string;
111
- }
112
- declare function getDefaults(adapter?: DateAdapter, locale?: string): Translations;
113
- declare function getTranslations(adapter?: DateAdapter, locale?: string, custom?: Partial<Translations>): Translations;
114
-
115
- interface CalendarProps extends UseDatesProps {
116
- classNames?: CalendarClassNames;
117
- locale?: string;
118
- translations?: Partial<Translations>;
119
- header?: React.ReactNode | ((props: any) => React.ReactNode);
120
- footer?: React.ReactNode;
121
- renderDayTooltip?: (dateObj: DateObj) => React.ReactNode;
122
- }
123
- declare const Calendar: React.FC<CalendarProps>;
124
-
125
- interface DayProps {
126
- dateObj: DateObj | null;
127
- getDateProps: (args: {
128
- dateObj: DateObj;
129
- [key: string]: any;
130
- }) => any;
131
- tooltip?: React.ReactNode;
132
- classNames: Required<CalendarClassNames>;
133
- }
134
- declare const Day: React.FC<DayProps>;
135
-
136
- interface MonthSelectionProps {
137
- year: number;
138
- month: number;
139
- monthNames: string[];
140
- minDate?: Date | null;
141
- maxDate?: Date | null;
142
- onMonthSelect: (month: number) => void;
143
- classNames: Required<CalendarClassNames>;
144
- }
145
- declare const MonthSelection: React.FC<MonthSelectionProps>;
146
-
147
- interface YearSelectionProps {
148
- year: number;
149
- minDate?: Date | null;
150
- maxDate?: Date | null;
151
- adapter: DateAdapter;
152
- onYearSelect: (year: number) => void;
153
- classNames: Required<CalendarClassNames>;
154
- }
155
- declare const YearSelection: React.FC<YearSelectionProps>;
156
-
157
- declare class DayjsAdapter implements DateAdapter<Dayjs> {
158
- date(value?: any): Dayjs;
159
- add(date: Dayjs, amount: number, unit: 'day' | 'month' | 'year'): Dayjs;
160
- subtract(date: Dayjs, amount: number, unit: 'day' | 'month' | 'year'): Dayjs;
161
- startOf(date: Dayjs, unit: 'day' | 'month' | 'year'): Dayjs;
162
- endOf(date: Dayjs, unit: 'day' | 'month' | 'year'): Dayjs;
163
- isBefore(date: Dayjs, comparison: Dayjs, unit?: 'day' | 'month' | 'year'): boolean;
164
- isAfter(date: Dayjs, comparison: Dayjs, unit?: 'day' | 'month' | 'year'): boolean;
165
- isSame(date: Dayjs, comparison: Dayjs, unit?: 'day' | 'month' | 'year'): boolean;
166
- set(date: Dayjs, unit: 'day' | 'month' | 'year', value: number): Dayjs;
167
- get(date: Dayjs, unit: 'day' | 'month' | 'year'): number;
168
- format(date: Dayjs, formatStr: string, locale?: string): string;
169
- getDaysInMonth(date: Dayjs): number;
170
- toDate(date: Dayjs): Date;
171
- diff(date: Dayjs, comparison: Dayjs, unit: 'month' | 'year'): number;
172
- getMonths(locale?: string): string[];
173
- getWeekdays(locale?: string): string[];
174
- }
175
- declare const defaultAdapter: DayjsAdapter;
176
-
177
- interface HeaderProps {
178
- calendars: Calendar$1[];
179
- getBackProps: (args: any) => any;
180
- getForwardProps: (args: any) => any;
181
- setView: (view: 'days' | 'months' | 'years') => void;
182
- monthNames: string[];
183
- t: {
184
- back: string;
185
- forward: string;
186
- };
187
- classNames: Required<CalendarClassNames>;
188
- slideDirection?: 'left' | 'right' | null;
189
- currentView?: 'days' | 'months' | 'years';
190
- }
191
- declare const ChevronLeftIcon: () => React.JSX.Element;
192
- declare const ChevronRightIcon: () => React.JSX.Element;
193
- declare const CalendarHeader: React.FC<HeaderProps>;
194
-
195
- export { Calendar, CalendarHeader, ChevronLeftIcon, ChevronRightIcon, Day, DayjsAdapter, MonthSelection, YearSelection, defaultAdapter, defaultClassNames, getDefaults, getTranslations, mergeClassNames };
196
- export type { CalendarClassNames, DateAdapter, DateObj, DayClassNames, SelectionMode, Translations };
package/dist/cjs/index.js DELETED
@@ -1,2 +0,0 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./useDates.js"),t=require("./utils.js"),a=require("react"),r=require("dayjs"),n=require("dayjs/plugin/isBetween"),l=require("dayjs/plugin/customParseFormat"),o=require("dayjs/plugin/localeData");function s(e){return e&&e.__esModule?e:{default:e}}var d=s(a),i=s(r),u=s(n),m=s(l),c=s(o);let f=({dateObj:e,getDateProps:t,classNames:a,tooltip:r})=>{if(!e)return d.default.createElement("div",{className:"aspect-square bg-white"});let{date:n,selected:l,selectable:o,today:s,prevMonth:i,nextMonth:u,isRangeStart:m,isRangeEnd:c,isRangeBetween:f,isRangeHovering:y,isRangeActive:g}=e,p=a.day,h="rounded-full";h=m&&c?`${p.selected} rounded-full`:m?`${p.rangeStart} ${g?"rounded-l-full rounded-r-none":"rounded-full"}`:c?`${p.rangeEnd} ${g?"rounded-r-full rounded-l-none":"rounded-full"}`:f?p.rangeBetween||"":y?p.rangeHovering||"":l?p.selected||"":s?p.today||"":o?i||u?p.outside||"":p.unselected||"":p.disabled||"";let b=[p.day,h,...(e.modifiers||[]).map(e=>p[e]||e)].filter(Boolean).join(" ");return d.default.createElement("button",{...t({dateObj:e}),className:b},n.getDate(),r&&d.default.createElement("div",{className:"absolute bottom-full left-1/2 -translate-x-1/2 mb-2 hidden group-hover:block z-10"},d.default.createElement("div",{className:"bg-gray-800 text-white text-xs py-1 px-2 rounded whitespace-nowrap shadow-lg"},r,d.default.createElement("div",{className:"absolute top-full left-1/2 -translate-x-1/2 border-8 border-transparent border-t-gray-800"}))))};i.default.extend(u.default),i.default.extend(m.default),i.default.extend(c.default);class y{date(e){return i.default(e)}add(e,t,a){return e.add(t,a)}subtract(e,t,a){return e.subtract(t,a)}startOf(e,t){return e.startOf(t)}endOf(e,t){return e.endOf(t)}isBefore(e,t,a){return e.isBefore(t,a)}isAfter(e,t,a){return e.isAfter(t,a)}isSame(e,t,a){return e.isSame(t,a)}set(e,t,a){return"day"===t?e.date(a):e.set(t,a)}get(e,t){return"day"===t?e.date():e.get(t)}format(e,t,a){return a?e.locale(a).format(t):e.format(t)}getDaysInMonth(e){return e.daysInMonth()}toDate(e){return e.toDate()}diff(e,t,a){return e.diff(t,a)}getMonths(e){return e?i.default().locale(e).localeData().months():i.default.localeData().months()}getWeekdays(e){return e?i.default().locale(e).localeData().weekdaysShort().map(e=>e.toUpperCase()):i.default.localeData().weekdaysShort().map(e=>e.toUpperCase())}}let g=new y;function p(e=g,t){return{months:e.getMonths(t),weekdays:e.getWeekdays(t),back:"Previous month",forward:"Next month"}}function h(e=g,t,a){return{...p(e,t),...a}}let b=()=>d.default.createElement("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},d.default.createElement("polyline",{points:"15 18 9 12 15 6"})),x=()=>d.default.createElement("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},d.default.createElement("polyline",{points:"9 18 15 12 9 6"})),w=({calendars:e,getBackProps:t,getForwardProps:a,setView:r,monthNames:n,t:l,classNames:o,slideDirection:s,currentView:i})=>{let u,m;return d.default.createElement("div",{className:o.header},d.default.createElement("button",{...t({calendars:e}),onMouseDown:e=>e.preventDefault(),className:`${o.navButton} ${i&&"days"!==i?"invisible pointer-events-none":""}`,"aria-label":l.back},d.default.createElement(b,null)),d.default.createElement("div",{className:o.monthYearContainer},1===e.length?d.default.createElement("div",{key:`${e[0].month}-${e[0].year}`,className:`${o.monthYearLabel} ${"left"===s?"animate-slide-in-left":"right"===s?"animate-slide-in-right":""}`},d.default.createElement("button",{onMouseDown:e=>e.preventDefault(),onClick:()=>r("months"===i?"days":"months"),className:o.monthYearButton},n[e[0].month]),d.default.createElement("button",{onMouseDown:e=>e.preventDefault(),onClick:()=>r("years"===i?"days":"years"),className:o.monthYearButton},e[0].year)):d.default.createElement("div",{className:`${o.monthYearLabel} ${"left"===s?"animate-slide-in-left":"right"===s?"animate-slide-in-right":""}`},(u=e[0],m=e[e.length-1],12===e.length&&0===u.month&&11===m.month&&u.year===m.year?d.default.createElement("span",null,u.year):u.year===m.year?d.default.createElement("span",null,n[u.month]," - ",n[m.month]," ",u.year):d.default.createElement("span",null,n[u.month]," ",u.year," - ",n[m.month]," ",m.year)))),d.default.createElement("button",{...a({calendars:e}),onMouseDown:e=>e.preventDefault(),className:`${o.navButton} ${i&&"days"!==i?"invisible pointer-events-none":""}`,"aria-label":l.forward},d.default.createElement(x,null)))},v={root:"w-fit flex flex-col p-4 bg-white rounded-lg shadow-lg",header:"flex items-center justify-between border-b-2 border-brand-gray-light/40",calendarsContainer:"flex flex-col md:flex-row gap-4",calendarContainer:"flex-1 min-w-[280px] min-h-[260px]",weekdayGrid:"grid grid-cols-7 gap-1 mb-1 border-b border-brand-gray-light/40",weekday:"text-center text-xs text-gray-400 py-2",daysGrid:"grid grid-cols-7 gap-px bg-brand-gray-light/20",footer:"mt-4",navButton:"p-2 hover:bg-gray-100 rounded-full transition-colors cursor-pointer disabled:opacity-30 disabled:pointer-events-none",monthYearContainer:"flex gap-8",monthYearLabel:"flex gap-1 items-center font-semibold text-brand-text",monthYearButton:"hover:bg-gray-100 px-2 py-1 rounded cursor-pointer",day:{day:"aspect-square flex items-center justify-center text-sm font-medium transition-all relative group cursor-pointer bg-white p-px",today:"text-brand-gold border border-brand-gold",selected:"bg-brand-gold text-white rounded-full",unselected:"hover:bg-brand-gray-light text-brand-text",disabled:"text-gray-300 cursor-not-allowed",outside:"text-gray-400",rangeStart:"bg-brand-gold text-white",rangeEnd:"bg-brand-gold text-white",rangeBetween:"bg-brand-gray-light text-brand-text",rangeHovering:"bg-brand-gray-light text-brand-text"},monthsRoot:"w-fit p-4 bg-white rounded-lg shadow-lg min-w-[280px]",monthsHeader:"flex items-center justify-between mb-4",monthsBackButton:"p-2 hover:bg-gray-100 rounded-full cursor-pointer",monthsYearLabel:"font-semibold",monthsGrid:"grid grid-cols-3 gap-2 animate-slide-in-top",monthButton:"py-4 rounded-lg hover:bg-brand-gray-light transition-colors cursor-pointer disabled:opacity-30 disabled:pointer-events-none",monthButtonSelected:"bg-brand-gold text-white",monthButtonUnselected:"text-brand-text",yearsRoot:"w-fit p-4 bg-white rounded-lg shadow-lg min-w-[280px]",yearsHeader:"flex items-center justify-between mb-4",yearsBackButton:"p-2 hover:bg-gray-100 rounded-full cursor-pointer",yearsTitle:"font-semibold",yearsGrid:"grid grid-cols-3 gap-2 max-h-[300px] overflow-y-auto pr-2 animate-slide-in-top",yearButton:"py-3 rounded-lg hover:bg-brand-gray-light transition-colors cursor-pointer disabled:opacity-30 disabled:pointer-events-none",yearButtonSelected:"bg-brand-gold text-white",yearButtonUnselected:"text-brand-text"},k=e=>{let t={...v};if(!e)return t;for(let a in e)"day"===a&&e.day?t.day={...v.day,...e.day}:e[a]&&(t[a]=e[a]);return t},E=({year:e,month:t,monthNames:a,minDate:r,maxDate:n,onMonthSelect:l,classNames:o})=>d.default.createElement("div",{className:o.monthsGrid},a.map((a,s)=>{let i=!!(r&&e===r.getFullYear()&&s<r.getMonth()||n&&e===n.getFullYear()&&s>n.getMonth());return d.default.createElement("button",{key:a,onMouseDown:e=>e.preventDefault(),onClick:()=>!i&&l(s),className:`${o.monthButton} ${s===t?o.monthButtonSelected:o.monthButtonUnselected}`,disabled:i},a)})),D=({year:e,minDate:t,maxDate:r,adapter:n,onYearSelect:l,classNames:o})=>{let s=a.useRef(null);a.useEffect(()=>{if(s.current){let e=s.current.querySelector('[data-selected="true"]');e&&e.scrollIntoView({block:"center"})}},[]);let i=t?n.get(n.date(t),"year"):e-50,u=r?n.get(n.date(r),"year"):e+50,m=[];for(let e=i;e<=u;e++)m.push(e);return d.default.createElement("div",{ref:s,className:o.yearsGrid},m.map(t=>d.default.createElement("button",{key:t,"data-selected":t===e,onMouseDown:e=>e.preventDefault(),onClick:()=>l(t),className:`${o.yearButton} ${t===e?o.yearButtonSelected:o.yearButtonUnselected}`},t)))};!function(e){if(!e||"u"<typeof document)return;let t=document.head||document.getElementsByTagName("head")[0],a=document.createElement("style");a.type="text/css",t.appendChild(a),a.styleSheet?a.styleSheet.cssText=e:a.appendChild(document.createTextNode(e))}("@theme{--color-brand-gold:#c5a059;--color-brand-gray-light:#b5bec6;--color-brand-gray-dark:#4a5660;--color-brand-text:#343a40}@keyframes slideInFromTop{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.animate-slide-in-top{animation:slideInFromTop .2s ease-out forwards}@keyframes slideInRight{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}@keyframes slideInLeft{from{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}.animate-slide-in-right{animation:slideInRight .2s ease-out forwards}.animate-slide-in-left{animation:slideInLeft .2s ease-out forwards}"),Object.defineProperty(exports,"Dates",{enumerable:!0,get:function(){return e.Dates}}),Object.defineProperty(exports,"useDates",{enumerable:!0,get:function(){return e.useDates}}),exports.Calendar=t=>{let{classNames:r,locale:n,translations:l,adapter:o=g,firstDayOfWeek:s=0,header:i,footer:u,renderDayTooltip:m,...c}=t,y=k(r),[p,b]=a.useState("days"),[x,v]=a.useState(null),N=h(o,n,l),B=N.weekdays,C=N.months,{calendars:$,getBackProps:j,getForwardProps:S,getDateProps:M,setOffset:Y}=e.useDates({...c,adapter:o,firstDayOfWeek:s}),O=[...B.slice(s),...B.slice(0,s)],{month:P,year:I}=$[0],L=e=>{let a=o.set(o.set(o.date(t.date||new Date),"year",I),"month",P),r=o.set(a,"month",e),n=o.startOf(o.date(t.date||new Date),"month"),l=o.diff(r,n,"month");v(null),Y(l),b("days")},q=e=>{let a=o.set(o.set(o.date(t.date||new Date),"year",I),"month",P),r=o.set(a,"year",e),n=o.startOf(o.date(t.date||new Date),"month"),l=o.diff(r,n,"month");v(null),Y(l),b("days")},G=e=>{let t=j(e);return{...t,onClick:e=>{v("left"),null==t.onClick||t.onClick.call(t,e)}}},F=e=>{let t=S(e);return{...t,onClick:e=>{v("right"),null==t.onClick||t.onClick.call(t,e)}}};return d.default.createElement("div",{className:y.root},"function"==typeof i?i({calendars:$,getBackProps:G,getForwardProps:F,setView:b,monthNames:C,t:N,slideDirection:x,currentView:p}):i||d.default.createElement(w,{calendars:$,getBackProps:G,getForwardProps:F,setView:b,monthNames:C,t:N,classNames:y,slideDirection:x,currentView:p}),d.default.createElement("div",{className:y.calendarsContainer},"months"===p&&$.map(e=>d.default.createElement("div",{key:`months-${e.year}`,className:y.calendarContainer},d.default.createElement(E,{year:e.year,month:e.month,monthNames:C,minDate:t.minDate,maxDate:t.maxDate,onMonthSelect:L,classNames:y}))),"years"===p&&$.map(e=>d.default.createElement("div",{key:`years-${e.year}`,className:y.calendarContainer},d.default.createElement(D,{year:e.year,minDate:t.minDate,maxDate:t.maxDate,adapter:o,onYearSelect:q,classNames:y}))),"days"===p&&$.map(e=>d.default.createElement("div",{key:`${e.month}-${e.year}`,className:y.calendarContainer},$.length>1&&d.default.createElement("div",{className:"text-center font-semibold mb-2 text-brand-text"},C[e.month]," ",$[0].year!==$[$.length-1].year?e.year:""),d.default.createElement("div",{className:y.weekdayGrid},O.map(e=>d.default.createElement("div",{key:e,className:y.weekday},e))),d.default.createElement("div",{className:`${y.daysGrid} ${"left"===x?"animate-slide-in-left":"right"===x?"animate-slide-in-right":""}`},e.weeks.map((e,t)=>e.map((e,a)=>d.default.createElement(f,{key:`${t}-${a}`,dateObj:e,getDateProps:M,classNames:y,tooltip:e&&(null==m?void 0:m(e))}))))))),u&&d.default.createElement("div",{className:y.footer},u))},exports.CalendarHeader=w,exports.ChevronLeftIcon=b,exports.ChevronRightIcon=x,exports.Day=f,exports.DayjsAdapter=y,exports.MonthSelection=E,exports.YearSelection=D,exports.defaultAdapter=g,exports.defaultClassNames=v,exports.getDefaults=p,exports.getTranslations=h,exports.mergeClassNames=k,Object.keys(t).forEach(function(e){"default"===e||Object.prototype.hasOwnProperty.call(exports,e)||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return t[e]}})});
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,110 +0,0 @@
1
- interface DateAdapter<T = any> {
2
- date(value?: any): T;
3
- add(date: T, amount: number, unit: 'day' | 'month' | 'year'): T;
4
- subtract(date: T, amount: number, unit: 'day' | 'month' | 'year'): T;
5
- startOf(date: T, unit: 'day' | 'month' | 'year'): T;
6
- endOf(date: T, unit: 'day' | 'month' | 'year'): T;
7
- isBefore(date: T, comparison: T, unit?: 'day' | 'month' | 'year'): boolean;
8
- isAfter(date: T, comparison: T, unit?: 'day' | 'month' | 'year'): boolean;
9
- isSame(date: T, comparison: T, unit?: 'day' | 'month' | 'year'): boolean;
10
- set(date: T, unit: 'day' | 'month' | 'year', value: number): T;
11
- get(date: T, unit: 'day' | 'month' | 'year'): number;
12
- format(date: T, formatStr: string, locale?: string): string;
13
- getDaysInMonth(date: T): number;
14
- toDate(date: T): Date;
15
- diff(date: T, comparison: T, unit: 'month' | 'year'): number;
16
- getMonths(locale?: string): string[];
17
- getWeekdays(locale?: string): string[];
18
- }
19
- type SelectionMode = 'single' | 'range' | 'multiple';
20
- interface DateObj {
21
- date: Date;
22
- selected: boolean;
23
- selectable: boolean;
24
- today: boolean;
25
- prevMonth: boolean;
26
- nextMonth: boolean;
27
- isRangeStart?: boolean;
28
- isRangeEnd?: boolean;
29
- isRangeBetween?: boolean;
30
- isRangeHovering?: boolean;
31
- isRangeActive?: boolean;
32
- modifiers?: string[];
33
- }
34
- interface Calendar {
35
- firstDayOfMonth: Date;
36
- lastDayOfMonth: Date;
37
- month: number;
38
- year: number;
39
- weeks: (DateObj | null)[][];
40
- }
41
-
42
- interface UseDatesProps {
43
- date?: Date;
44
- maxDate?: Date;
45
- minDate?: Date;
46
- disabledDates?: Date[];
47
- monthsToDisplay?: number;
48
- firstDayOfWeek?: number;
49
- showOutsideDays?: boolean;
50
- offset?: number;
51
- onDateSelected?: (dateObj: DateObj, event: any) => void;
52
- onOffsetChanged?: (newOffset: number) => void;
53
- selected?: Date | Date[] | {
54
- start?: Date;
55
- end?: Date;
56
- };
57
- modifiers?: Record<string, (date: Date) => boolean>;
58
- selectionMode?: SelectionMode;
59
- adapter?: DateAdapter;
60
- onChange?: (selected: Date | Date[] | {
61
- start?: Date;
62
- end?: Date;
63
- } | null) => void;
64
- onMonthChange?: (date: Date) => void;
65
- onYearChange?: (date: Date) => void;
66
- }
67
- declare function useDates({ date, maxDate, minDate, disabledDates, monthsToDisplay, firstDayOfWeek, showOutsideDays, offset, onDateSelected, onOffsetChanged, selected, modifiers, selectionMode, adapter, onChange, onMonthChange, onYearChange }: UseDatesProps): {
68
- calendars: Calendar[];
69
- getDateProps: (args: {
70
- onClick?: (event: any) => void;
71
- dateObj: DateObj;
72
- [key: string]: any;
73
- }) => {
74
- onMouseEnter: (event: any, ...args: unknown[]) => boolean;
75
- onMouseLeave: (event: any, ...args: unknown[]) => boolean;
76
- onClick: (event: any, ...args: unknown[]) => boolean;
77
- disabled: boolean;
78
- 'aria-label': string;
79
- 'aria-pressed': boolean;
80
- role: string;
81
- };
82
- getBackProps: (args_0: {
83
- [key: string]: any;
84
- onClick?: (event: any) => void;
85
- offset?: number;
86
- calendars: Calendar[];
87
- }) => {
88
- onClick: (event: any, ...args: unknown[]) => boolean;
89
- disabled: boolean;
90
- 'aria-label': string;
91
- };
92
- getForwardProps: (args_0: {
93
- [key: string]: any;
94
- onClick?: (event: any) => void;
95
- offset?: number;
96
- calendars: Calendar[];
97
- }) => {
98
- onClick: (event: any, ...args: unknown[]) => boolean;
99
- disabled: boolean;
100
- 'aria-label': string;
101
- };
102
- setOffset: (newOffset: number) => void;
103
- };
104
- declare function Dates(props: UseDatesProps & {
105
- render?: (props: any) => any;
106
- children?: (props: any) => any;
107
- }): any;
108
-
109
- export { Dates, useDates };
110
- export type { UseDatesProps };
@@ -1,2 +0,0 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("dayjs"),a=require("dayjs/plugin/isBetween"),r=require("dayjs/plugin/customParseFormat"),n=require("dayjs/plugin/localeData"),d=require("./utils.js");function s(e){return e&&e.__esModule?e:{default:e}}var o=s(t),l=s(a),u=s(r),i=s(n);o.default.extend(l.default),o.default.extend(u.default),o.default.extend(i.default);let f=new class{date(e){return o.default(e)}add(e,t,a){return e.add(t,a)}subtract(e,t,a){return e.subtract(t,a)}startOf(e,t){return e.startOf(t)}endOf(e,t){return e.endOf(t)}isBefore(e,t,a){return e.isBefore(t,a)}isAfter(e,t,a){return e.isAfter(t,a)}isSame(e,t,a){return e.isSame(t,a)}set(e,t,a){return"day"===t?e.date(a):e.set(t,a)}get(e,t){return"day"===t?e.date():e.get(t)}format(e,t,a){return a?e.locale(a).format(t):e.format(t)}getDaysInMonth(e){return e.daysInMonth()}toDate(e){return e.toDate()}diff(e,t,a){return e.diff(t,a)}getMonths(e){return e?o.default().locale(e).localeData().months():o.default.localeData().months()}getWeekdays(e){return e?o.default().locale(e).localeData().weekdaysShort().map(e=>e.toUpperCase()):o.default.localeData().weekdaysShort().map(e=>e.toUpperCase())}};function c({minDate:e,offsetMonth:t,handleOffsetChanged:a,adapter:r},{onClick:n,offset:s=1,calendars:o,...l}){return{onClick:d.composeEventHandlers(n,()=>{a(t-d.subtractMonth({calendars:o,offset:s,minDate:e,adapter:r}))}),disabled:d.isBackDisabled({calendars:o,minDate:e,adapter:r}),"aria-label":`Go back ${s} month${1===s?"":"s"}`,...l}}function p({maxDate:e,offsetMonth:t,handleOffsetChanged:a,adapter:r},{onClick:n,offset:s=1,calendars:o,...l}){return{onClick:d.composeEventHandlers(n,()=>{a(t+d.addMonth({calendars:o,offset:s,maxDate:e,adapter:r}))}),disabled:d.isForwardDisabled({calendars:o,maxDate:e,adapter:r}),"aria-label":`Go forward ${s} month${1===s?"":"s"}`,...l}}function m({date:t=new Date,maxDate:a,minDate:r,disabledDates:n,monthsToDisplay:s=1,firstDayOfWeek:o=0,showOutsideDays:l=!1,offset:u,onDateSelected:i,onOffsetChanged:b=()=>{},selected:y,modifiers:v,selectionMode:g="single",adapter:D=f,onChange:h,onMonthChange:k,onYearChange:M}){let[w,C]=e.useState(0),[S,j]=e.useState(void 0),O=function(e,t=0){return void 0!==e?e:t}(u,w),E=e.useCallback(e=>{void 0===u&&C(e),b(e);let a=D.toDate(D.add(D.startOf(D.date(t),"month"),e,"month"));null==k||k(a),null==M||M(a)},[u,b,t,D,k,M]),q=e.useCallback((e,t)=>{if(null==i||i(e,t),h){if("single"===g)h(e.date);else if("multiple"===g){let t=Array.isArray(y)?y:y?[y]:[];t.some(t=>D.isSame(D.date(t),D.date(e.date),"day"))?h(t.filter(t=>!D.isSame(D.date(t),D.date(e.date),"day"))):h([...t,e.date])}else if("range"===g){let t=y&&"object"==typeof y&&!Array.isArray(y)?y:{start:void 0,end:void 0};!t.start||t.start&&t.end?h({start:e.date,end:void 0}):D.isBefore(D.date(e.date),D.date(t.start),"day")?h({start:e.date,end:t.start}):h({start:t.start,end:e.date})}}},[i,h,g,y,D]);return{calendars:d.getCalendars({date:t,selected:y,disabledDates:n,modifiers:v,monthsToDisplay:s,minDate:r,maxDate:a,offset:O,firstDayOfWeek:o,showOutsideDays:l,adapter:D,selectionMode:g,hoveredDate:S}),getDateProps:e=>({...function(e,{onClick:t,dateObj:a,...r}){return{onClick:d.composeEventHandlers(t,t=>{e(a,t)}),disabled:!a.selectable,"aria-label":a.date.toDateString(),"aria-pressed":a.selected,role:"button",...r}}(q,e),onMouseEnter:d.composeEventHandlers(e.onMouseEnter,()=>{j(e.dateObj.date)}),onMouseLeave:d.composeEventHandlers(e.onMouseLeave,()=>{j(void 0)})}),getBackProps:c.bind(null,{minDate:r,offsetMonth:O,handleOffsetChanged:E,adapter:D}),getForwardProps:p.bind(null,{maxDate:a,offsetMonth:O,handleOffsetChanged:E,adapter:D}),setOffset:E}}exports.Dates=function(e){let t=m(e);return d.unwrapChildrenForPreact(e.render||e.children)(t)},exports.useDates=m;
2
- //# sourceMappingURL=useDates.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useDates.js","sources":["../../src/adapters/dayjs.ts","../../src/useDates.tsx"],"sourcesContent":["import dayjs from 'dayjs';\nimport type { Dayjs } from 'dayjs';\nimport isBetween from 'dayjs/plugin/isBetween';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport localeData from 'dayjs/plugin/localeData';\nimport type { DateAdapter } from '../types';\n\ndayjs.extend(isBetween);\ndayjs.extend(customParseFormat);\ndayjs.extend(localeData);\n\nexport class DayjsAdapter implements DateAdapter<Dayjs> {\n date(value?: any): Dayjs {\n return dayjs(value);\n }\n\n add(date: Dayjs, amount: number, unit: 'day' | 'month' | 'year'): Dayjs {\n return date.add(amount, unit);\n }\n\n subtract(date: Dayjs, amount: number, unit: 'day' | 'month' | 'year'): Dayjs {\n return date.subtract(amount, unit);\n }\n\n startOf(date: Dayjs, unit: 'day' | 'month' | 'year'): Dayjs {\n return date.startOf(unit);\n }\n\n endOf(date: Dayjs, unit: 'day' | 'month' | 'year'): Dayjs {\n return date.endOf(unit);\n }\n\n isBefore(date: Dayjs, comparison: Dayjs, unit?: 'day' | 'month' | 'year'): boolean {\n return date.isBefore(comparison, unit);\n }\n\n isAfter(date: Dayjs, comparison: Dayjs, unit?: 'day' | 'month' | 'year'): boolean {\n return date.isAfter(comparison, unit);\n }\n\n isSame(date: Dayjs, comparison: Dayjs, unit?: 'day' | 'month' | 'year'): boolean {\n return date.isSame(comparison, unit);\n }\n\n set(date: Dayjs, unit: 'day' | 'month' | 'year', value: number): Dayjs {\n if (unit === 'day') return date.date(value);\n return date.set(unit, value);\n }\n\n get(date: Dayjs, unit: 'day' | 'month' | 'year'): number {\n if (unit === 'day') return date.date();\n return date.get(unit);\n }\n\n format(date: Dayjs, formatStr: string, locale?: string): string {\n if (locale) {\n return date.locale(locale).format(formatStr);\n }\n return date.format(formatStr);\n }\n\n getDaysInMonth(date: Dayjs): number {\n return date.daysInMonth();\n }\n\n toDate(date: Dayjs): Date {\n return date.toDate();\n }\n\n diff(date: Dayjs, comparison: Dayjs, unit: 'month' | 'year'): number {\n return date.diff(comparison, unit);\n }\n\n getMonths(locale?: string): string[] {\n return locale ? dayjs().locale(locale).localeData().months() : dayjs.localeData().months();\n }\n\n getWeekdays(locale?: string): string[] {\n return locale ? dayjs().locale(locale).localeData().weekdaysShort().map(d => d.toUpperCase()) : dayjs.localeData().weekdaysShort().map(d => d.toUpperCase());\n }\n}\n\nexport const defaultAdapter = new DayjsAdapter();\n","import { useState, useCallback } from 'react';\nimport type { DateAdapter, DateObj, SelectionMode, Calendar } from './types';\nimport { defaultAdapter } from './adapters/dayjs';\nimport {\n addMonth,\n composeEventHandlers,\n getCalendars,\n isBackDisabled,\n isForwardDisabled,\n subtractMonth,\n unwrapChildrenForPreact\n} from './utils';\n\nfunction isOffsetControlled(propOffset?: number) {\n return propOffset !== undefined;\n}\n\nfunction getOffset(prop?: number, state: number = 0): number {\n return isOffsetControlled(prop) ? prop! : state;\n}\n\nfunction getDateProps(\n onDateSelected: (dateObj: DateObj, event: any) => void,\n { onClick, dateObj, ...rest }: { onClick?: (event: any) => void, dateObj: DateObj, [key: string]: any }\n) {\n return {\n onClick: composeEventHandlers(onClick, (event: any) => {\n onDateSelected(dateObj, event);\n }),\n disabled: !dateObj.selectable,\n 'aria-label': dateObj.date.toDateString(),\n 'aria-pressed': dateObj.selected,\n role: 'button',\n ...rest\n };\n}\n\nfunction getBackProps(\n { minDate, offsetMonth, handleOffsetChanged, adapter }: { minDate?: Date, offsetMonth: number, handleOffsetChanged: (newOffset: number) => void, adapter: DateAdapter },\n {\n onClick,\n offset = 1,\n calendars,\n ...rest\n }: { onClick?: (event: any) => void, offset?: number, calendars: Calendar[], [key: string]: any }\n) {\n return {\n onClick: composeEventHandlers(onClick, () => {\n handleOffsetChanged(\n offsetMonth - subtractMonth({ calendars, offset, minDate, adapter })\n );\n }),\n disabled: isBackDisabled({ calendars, minDate, adapter }),\n 'aria-label': `Go back ${offset} month${offset === 1 ? '' : 's'}`,\n ...rest\n };\n}\n\nfunction getForwardProps(\n { maxDate, offsetMonth, handleOffsetChanged, adapter }: { maxDate?: Date, offsetMonth: number, handleOffsetChanged: (newOffset: number) => void, adapter: DateAdapter },\n {\n onClick,\n offset = 1,\n calendars,\n ...rest\n }: { onClick?: (event: any) => void, offset?: number, calendars: Calendar[], [key: string]: any }\n) {\n return {\n onClick: composeEventHandlers(onClick, () => {\n handleOffsetChanged(\n offsetMonth + addMonth({ calendars, offset, maxDate, adapter })\n );\n }),\n disabled: isForwardDisabled({ calendars, maxDate, adapter }),\n 'aria-label': `Go forward ${offset} month${offset === 1 ? '' : 's'}`,\n ...rest\n };\n}\n\nexport interface UseDatesProps {\n date?: Date;\n maxDate?: Date;\n minDate?: Date;\n disabledDates?: Date[];\n monthsToDisplay?: number;\n firstDayOfWeek?: number;\n showOutsideDays?: boolean;\n offset?: number;\n onDateSelected?: (dateObj: DateObj, event: any) => void;\n onOffsetChanged?: (newOffset: number) => void;\n selected?: Date | Date[] | { start?: Date, end?: Date };\n modifiers?: Record<string, (date: Date) => boolean>;\n selectionMode?: SelectionMode;\n adapter?: DateAdapter;\n onChange?: (selected: Date | Date[] | { start?: Date, end?: Date } | null) => void;\n onMonthChange?: (date: Date) => void;\n onYearChange?: (date: Date) => void;\n}\n\nexport function useDates({\n date = new Date(),\n maxDate,\n minDate,\n disabledDates,\n monthsToDisplay = 1,\n firstDayOfWeek = 0,\n showOutsideDays = false,\n offset,\n onDateSelected,\n onOffsetChanged = () => { },\n selected,\n modifiers,\n selectionMode = 'single',\n adapter = defaultAdapter,\n onChange,\n onMonthChange,\n onYearChange\n}: UseDatesProps) {\n const [stateOffset, setStateOffset] = useState(0);\n const [hoveredDate, setHoveredDate] = useState<Date | undefined>(undefined);\n const offsetMonth = getOffset(offset, stateOffset);\n\n const handleOffsetChanged = useCallback((newOffset: number) => {\n if (!isOffsetControlled(offset)) {\n setStateOffset(newOffset);\n }\n onOffsetChanged(newOffset);\n\n const newDate = adapter.toDate(adapter.add(adapter.startOf(adapter.date(date), 'month'), newOffset, 'month'));\n onMonthChange?.(newDate);\n onYearChange?.(newDate);\n }, [offset, onOffsetChanged, date, adapter, onMonthChange, onYearChange]);\n\n const handleDateSelected = useCallback((dateObj: DateObj, event: any) => {\n onDateSelected?.(dateObj, event);\n\n if (!onChange) return;\n\n if (selectionMode === 'single') {\n onChange(dateObj.date);\n } else if (selectionMode === 'multiple') {\n const currentSelected = Array.isArray(selected) ? selected : (selected ? [selected as Date] : []);\n const isAlreadySelected = currentSelected.some(d => adapter.isSame(adapter.date(d), adapter.date(dateObj.date), 'day'));\n if (isAlreadySelected) {\n onChange(currentSelected.filter(d => !adapter.isSame(adapter.date(d), adapter.date(dateObj.date), 'day')));\n } else {\n onChange([...currentSelected, dateObj.date]);\n }\n } else if (selectionMode === 'range') {\n const range = (selected && typeof selected === 'object' && !Array.isArray(selected)) ? selected : { start: undefined, end: undefined };\n if (!range.start || (range.start && range.end)) {\n onChange({ start: dateObj.date, end: undefined });\n } else {\n if (adapter.isBefore(adapter.date(dateObj.date), adapter.date(range.start), 'day')) {\n onChange({ start: dateObj.date, end: range.start });\n } else {\n onChange({ start: range.start, end: dateObj.date });\n }\n }\n }\n }, [onDateSelected, onChange, selectionMode, selected, adapter]);\n\n const calendars = getCalendars({\n date,\n selected,\n disabledDates,\n modifiers,\n monthsToDisplay,\n minDate,\n maxDate,\n offset: offsetMonth,\n firstDayOfWeek,\n showOutsideDays,\n adapter,\n selectionMode,\n hoveredDate\n });\n\n return {\n calendars,\n getDateProps: (args: { onClick?: (event: any) => void, dateObj: DateObj, [key: string]: any }) => {\n const props = getDateProps(handleDateSelected, args);\n return {\n ...props,\n onMouseEnter: composeEventHandlers(args.onMouseEnter, () => {\n setHoveredDate(args.dateObj.date);\n }),\n onMouseLeave: composeEventHandlers(args.onMouseLeave, () => {\n setHoveredDate(undefined);\n })\n };\n },\n getBackProps: getBackProps.bind(null, {\n minDate,\n offsetMonth,\n handleOffsetChanged,\n adapter\n }),\n getForwardProps: getForwardProps.bind(null, {\n maxDate,\n offsetMonth,\n handleOffsetChanged,\n adapter\n }),\n setOffset: handleOffsetChanged\n };\n}\n\nexport function Dates(props: UseDatesProps & { render?: (props: any) => any, children?: (props: any) => any }) {\n const ComponentCalendar = useDates(props);\n const children = unwrapChildrenForPreact(props.render || props.children);\n //@ts-ignore\n return children(ComponentCalendar);\n}\n"],"names":["dayjs","extend","isBetween","customParseFormat","localeData","defaultAdapter","date","value","add","amount","unit","subtract","startOf","endOf","isBefore","comparison","isAfter","isSame","set","get","format","formatStr","locale","getDaysInMonth","daysInMonth","toDate","diff","getMonths","months","getWeekdays","weekdaysShort","map","d","toUpperCase","getBackProps","minDate","offsetMonth","handleOffsetChanged","adapter","onClick","offset","calendars","rest","composeEventHandlers","subtractMonth","disabled","isBackDisabled","getForwardProps","maxDate","addMonth","isForwardDisabled","useDates","Date","disabledDates","monthsToDisplay","firstDayOfWeek","showOutsideDays","onDateSelected","onOffsetChanged","selected","modifiers","selectionMode","onChange","onMonthChange","onYearChange","stateOffset","setStateOffset","useState","hoveredDate","setHoveredDate","undefined","getOffset","prop","state","isOffsetControlled","propOffset","useCallback","newOffset","newDate","handleDateSelected","dateObj","event","currentSelected","Array","isArray","some","filter","range","start","end","getCalendars","getDateProps","args","selectable","toDateString","role","onMouseEnter","onMouseLeave","bind","setOffset","props","ComponentCalendar","children","unwrapChildrenForPreact","render"],"mappings":"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"}
@@ -1,85 +0,0 @@
1
- interface DateAdapter<T = any> {
2
- date(value?: any): T;
3
- add(date: T, amount: number, unit: 'day' | 'month' | 'year'): T;
4
- subtract(date: T, amount: number, unit: 'day' | 'month' | 'year'): T;
5
- startOf(date: T, unit: 'day' | 'month' | 'year'): T;
6
- endOf(date: T, unit: 'day' | 'month' | 'year'): T;
7
- isBefore(date: T, comparison: T, unit?: 'day' | 'month' | 'year'): boolean;
8
- isAfter(date: T, comparison: T, unit?: 'day' | 'month' | 'year'): boolean;
9
- isSame(date: T, comparison: T, unit?: 'day' | 'month' | 'year'): boolean;
10
- set(date: T, unit: 'day' | 'month' | 'year', value: number): T;
11
- get(date: T, unit: 'day' | 'month' | 'year'): number;
12
- format(date: T, formatStr: string, locale?: string): string;
13
- getDaysInMonth(date: T): number;
14
- toDate(date: T): Date;
15
- diff(date: T, comparison: T, unit: 'month' | 'year'): number;
16
- getMonths(locale?: string): string[];
17
- getWeekdays(locale?: string): string[];
18
- }
19
- interface DateObj {
20
- date: Date;
21
- selected: boolean;
22
- selectable: boolean;
23
- today: boolean;
24
- prevMonth: boolean;
25
- nextMonth: boolean;
26
- isRangeStart?: boolean;
27
- isRangeEnd?: boolean;
28
- isRangeBetween?: boolean;
29
- isRangeHovering?: boolean;
30
- isRangeActive?: boolean;
31
- modifiers?: string[];
32
- }
33
- interface Calendar {
34
- firstDayOfMonth: Date;
35
- lastDayOfMonth: Date;
36
- month: number;
37
- year: number;
38
- weeks: (DateObj | null)[][];
39
- }
40
-
41
- declare function composeEventHandlers(...fns: Array<((event: any, ...args: unknown[]) => void) | undefined>): (event: any, ...args: unknown[]) => boolean;
42
- declare function unwrapChildrenForPreact<T>(arg: T | T[]): T | typeof noop;
43
- declare function noop(): void;
44
- declare function subtractMonth({ calendars, offset, minDate, adapter }: {
45
- calendars: Calendar[];
46
- offset: number;
47
- minDate?: Date;
48
- adapter?: DateAdapter;
49
- }): number;
50
- declare function addMonth({ calendars, offset, maxDate, adapter }: {
51
- calendars: Calendar[];
52
- offset: number;
53
- maxDate?: Date;
54
- adapter?: DateAdapter;
55
- }): number;
56
- declare function isBackDisabled({ calendars, minDate, adapter }: {
57
- calendars: Calendar[];
58
- minDate?: Date;
59
- adapter?: DateAdapter;
60
- }): boolean;
61
- declare function isForwardDisabled({ calendars, maxDate, adapter }: {
62
- calendars: Calendar[];
63
- maxDate?: Date;
64
- adapter?: DateAdapter;
65
- }): boolean;
66
- declare function getCalendars({ date, selected, disabledDates, monthsToDisplay, offset, minDate, maxDate, firstDayOfWeek, showOutsideDays, adapter, selectionMode, modifiers, hoveredDate }: {
67
- date: Date;
68
- selected?: Date | Date[] | {
69
- start?: Date;
70
- end?: Date;
71
- };
72
- disabledDates?: Date[];
73
- modifiers?: Record<string, (date: Date) => boolean>;
74
- monthsToDisplay: number;
75
- offset: number;
76
- minDate?: Date;
77
- maxDate?: Date;
78
- firstDayOfWeek: number;
79
- showOutsideDays: boolean;
80
- adapter?: DateAdapter;
81
- selectionMode?: 'single' | 'range' | 'multiple';
82
- hoveredDate?: Date;
83
- }): Calendar[];
84
-
85
- export { addMonth, composeEventHandlers, getCalendars, isBackDisabled, isForwardDisabled, subtractMonth, unwrapChildrenForPreact };
package/dist/cjs/utils.js DELETED
@@ -1,2 +0,0 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0});var e=require("dayjs"),t=require("dayjs/plugin/isBetween"),a=require("dayjs/plugin/customParseFormat"),r=require("dayjs/plugin/localeData");function d(e){return e&&e.__esModule?e:{default:e}}var n=d(e),s=d(t),o=d(a),i=d(r);n.default.extend(s.default),n.default.extend(o.default),n.default.extend(i.default);let u=new class{date(e){return n.default(e)}add(e,t,a){return e.add(t,a)}subtract(e,t,a){return e.subtract(t,a)}startOf(e,t){return e.startOf(t)}endOf(e,t){return e.endOf(t)}isBefore(e,t,a){return e.isBefore(t,a)}isAfter(e,t,a){return e.isAfter(t,a)}isSame(e,t,a){return e.isSame(t,a)}set(e,t,a){return"day"===t?e.date(a):e.set(t,a)}get(e,t){return"day"===t?e.date():e.get(t)}format(e,t,a){return a?e.locale(a).format(t):e.format(t)}getDaysInMonth(e){return e.daysInMonth()}toDate(e){return e.toDate()}diff(e,t,a){return e.diff(t,a)}getMonths(e){return e?n.default().locale(e).localeData().months():n.default.localeData().months()}getWeekdays(e){return e?n.default().locale(e).localeData().weekdaysShort().map(e=>e.toUpperCase()):n.default.localeData().weekdaysShort().map(e=>e.toUpperCase())}};function f(){}function l(e,t,a,r,d,n,s,o,i=!1,u){var f,y,c,h,m;let p,g,D,S,{selected:A,isRangeStart:B,isRangeEnd:v,isRangeBetween:x,isRangeHovering:M,isRangeActive:O}=function(e,t,a,r,d){if(!e&&!d)return{selected:!1};let n=a.date(t);if("single"===r&&e instanceof Date)return{selected:a.isSame(n,a.date(e),"day")};if("multiple"===r&&Array.isArray(e))return{selected:e.some(e=>a.isSame(n,a.date(e),"day"))};if("range"===r){let{start:t,end:r}=e&&"object"==typeof e&&!Array.isArray(e)?e:{start:void 0,end:void 0},s=!!t&&a.isSame(n,a.date(t),"day"),o=!!r&&a.isSame(n,a.date(r),"day"),i=!!t&&!!r&&a.isAfter(n,a.date(t),"day")&&a.isBefore(n,a.date(r),"day"),u=!1;if(t&&!r&&d){let e=a.date(d),r=a.date(t);a.isAfter(e,r,"day")?(u=a.isAfter(n,r,"day")&&a.isBefore(n,e,"day")||a.isSame(n,e,"day"),a.isSame(n,e,"day")&&(o=!0)):a.isBefore(e,r,"day")&&(u=a.isAfter(n,e,"day")&&a.isBefore(n,r,"day")||a.isSame(n,e,"day"),a.isSame(n,e,"day")&&(s=!0),a.isSame(n,r,"day")&&(s=!1,o=!0))}return{selected:s||o||i,isRangeStart:s,isRangeEnd:o,isRangeBetween:i,isRangeHovering:u,isRangeActive:!!(t&&r&&!a.isSame(a.date(t),a.date(r),"day")||t&&!r&&d&&!a.isSame(a.date(t),a.date(d),"day"))}}return Array.isArray(e)&&1===e.length&&"single"===r?{selected:a.isSame(n,a.date(e[0]),"day")}:{selected:!1}}(t,e,s,o,u),b=s.isSame(s.date(e),s.date(),"day"),w=i&&s.isBefore(s.date(e),s.startOf(s.date(e),"month")),j=i&&s.isAfter(s.date(e),s.endOf(s.date(e),"month")),k=r?Object.keys(r).filter(t=>r[t](e)):[];return b&&k.push("today"),i&&k.push("outside"),w&&k.push("prev-month"),j&&k.push("next-month"),{date:e,selected:A,modifiers:k,selectable:(f=d,y=n,c=a,h=e,p=(m=s).date(h),g=f&&m.isBefore(p,m.date(f),"day"),D=y&&m.isAfter(p,m.date(y),"day"),S=null==c?void 0:c.some(e=>m.isSame(p,m.date(e),"day")),!g&&!D&&!S),today:b,prevMonth:w,nextMonth:j,isRangeStart:B,isRangeEnd:v,isRangeBetween:x,isRangeHovering:M,isRangeActive:O}}exports.addMonth=function({calendars:e,offset:t,maxDate:a,adapter:r=u}){if(t>1&&a){let{lastDayOfMonth:d}=e[e.length-1],n=r.diff(r.date(a),r.date(d),"month");n<t&&(t=n)}return t},exports.composeEventHandlers=function(...e){return(t,...a)=>e.some(e=>(e&&e(t,...a),t.defaultPrevented))},exports.getCalendars=function({date:e,selected:t,disabledDates:a,monthsToDisplay:r,offset:d,minDate:n,maxDate:s,firstDayOfWeek:o,showOutsideDays:i,adapter:f=u,selectionMode:y="single",modifiers:c,hoveredDate:h}){let m=[],p=function(e,t,a,r=u){let d=r.startOf(r.date(e),"day");if(t){let e=r.startOf(r.date(t),"day");r.isBefore(d,e)&&(d=e)}if(a){let e=r.startOf(r.date(a),"day");r.isBefore(e,d)&&(d=e)}return d}(e,n,s,f);for(let e=0;e<r;e++){let r=function({month:e,year:t,selectedDates:a,disabledDates:r,modifiers:d,minDate:n,maxDate:s,firstDayOfWeek:o,showOutsideDays:i,adapter:u,selectionMode:f,hoveredDate:y}){let c=u.set(u.set(u.date(),"year",t),"month",e);e=u.get(c,"month"),t=u.get(c,"year");let h=u.getDaysInMonth(c),m=[];for(let e=1;e<=h;e++){let t=l(u.toDate(u.set(c,"day",e)),a,r,d,n,s,u,f,!1,y);m.push(t)}let p=u.toDate(u.startOf(c,"month")),g=u.toDate(u.endOf(c,"month")),D=function({firstDayOfMonth:e,minDate:t,maxDate:a,selectedDates:r,disabledDates:d,modifiers:n,firstDayOfWeek:s,showOutsideDays:o,adapter:i,selectionMode:u,hoveredDate:f}){let y=[],c=(i.toDate(i.date(e)).getDay()+7-s)%7;if(o){let s=i.subtract(i.date(e),1,"day");for(let e=0;e<c;e++){let e=l(i.toDate(s),r,d,n,t,a,i,u,!0,f);e.prevMonth=!0,y.unshift(e),s=i.subtract(s,1,"day")}}else for(;c>0;)y.unshift(null),c--;return y}({firstDayOfMonth:p,minDate:n,maxDate:s,selectedDates:a,disabledDates:r,modifiers:d,firstDayOfWeek:o,showOutsideDays:i,adapter:u,selectionMode:f,hoveredDate:y}),S=function({lastDayOfMonth:e,minDate:t,maxDate:a,selectedDates:r,disabledDates:d,modifiers:n,firstDayOfWeek:s,showOutsideDays:o,adapter:i,selectionMode:u,hoveredDate:f}){let y=[],c=(i.toDate(i.date(e)).getDay()+7-s)%7;if(o){let s=i.add(i.date(e),1,"day");for(let e=0;e<6-c;e++){let e=l(i.toDate(s),r,d,n,t,a,i,u,!0,f);e.nextMonth=!0,y.push(e),s=i.add(s,1,"day")}}else for(;c<6;)y.push(null),c++;return y}({lastDayOfMonth:g,minDate:n,maxDate:s,selectedDates:a,disabledDates:r,modifiers:d,firstDayOfWeek:o,showOutsideDays:i,adapter:u,selectionMode:f,hoveredDate:y});return m.unshift(...D),m.push(...S),{firstDayOfMonth:p,lastDayOfMonth:g,month:e,year:t,weeks:function(e){let t=Math.ceil(e.length/7),a=[];for(let r=0;r<t;r++){a[r]=[];for(let t=0;t<7;t++)a[r].push(e[7*r+t])}return a}(m)}}({month:f.get(p,"month")+e+d,year:f.get(p,"year"),selectedDates:t,disabledDates:a,modifiers:c,minDate:n,maxDate:s,firstDayOfWeek:o,showOutsideDays:i,adapter:f,selectionMode:y,hoveredDate:h});m.push(r)}return m},exports.isBackDisabled=function({calendars:e,minDate:t,adapter:a=u}){if(!t)return!1;let{firstDayOfMonth:r}=e[0],d=a.subtract(a.date(r),1,"day");return a.isBefore(d,a.date(t))},exports.isForwardDisabled=function({calendars:e,maxDate:t,adapter:a=u}){if(!t)return!1;let{lastDayOfMonth:r}=e[e.length-1],d=a.add(a.date(r),1,"day");return a.isBefore(a.date(t),d)},exports.subtractMonth=function({calendars:e,offset:t,minDate:a,adapter:r=u}){if(t>1&&a){let{firstDayOfMonth:d}=e[0],n=r.diff(r.date(d),r.date(a),"month");n<t&&(t=n)}return t},exports.unwrapChildrenForPreact=function(e){return(e=Array.isArray(e)?e[0]:e)||f};
2
- //# sourceMappingURL=utils.js.map