asterui 0.12.2 → 0.12.3

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 (298) hide show
  1. package/dist/index.d.ts +0 -3
  2. package/dist/index.js +196 -201
  3. package/dist/index.js.map +1 -1
  4. package/dist/index100.js +11 -44
  5. package/dist/index100.js.map +1 -1
  6. package/dist/index101.js +12 -10
  7. package/dist/index101.js.map +1 -1
  8. package/dist/index102.js +7 -14
  9. package/dist/index102.js.map +1 -1
  10. package/dist/index103.js +12 -7
  11. package/dist/index103.js.map +1 -1
  12. package/dist/index104.js +29 -11
  13. package/dist/index104.js.map +1 -1
  14. package/dist/index105.js +16 -29
  15. package/dist/index105.js.map +1 -1
  16. package/dist/index13.js +95 -35
  17. package/dist/index13.js.map +1 -1
  18. package/dist/index14.js +153 -90
  19. package/dist/index14.js.map +1 -1
  20. package/dist/index15.js +146 -154
  21. package/dist/index15.js.map +1 -1
  22. package/dist/index16.js +5 -150
  23. package/dist/index16.js.map +1 -1
  24. package/dist/index17.js +71 -5
  25. package/dist/index17.js.map +1 -1
  26. package/dist/index18.js +17 -71
  27. package/dist/index18.js.map +1 -1
  28. package/dist/index19.js +96 -15
  29. package/dist/index19.js.map +1 -1
  30. package/dist/index20.js +105 -89
  31. package/dist/index20.js.map +1 -1
  32. package/dist/index21.js +177 -107
  33. package/dist/index21.js.map +1 -1
  34. package/dist/index22.js +107 -181
  35. package/dist/index22.js.map +1 -1
  36. package/dist/index23.js +19 -110
  37. package/dist/index23.js.map +1 -1
  38. package/dist/index24.js +41 -17
  39. package/dist/index24.js.map +1 -1
  40. package/dist/index25.js +32 -43
  41. package/dist/index25.js.map +1 -1
  42. package/dist/index26.js +41 -32
  43. package/dist/index26.js.map +1 -1
  44. package/dist/index27.js +12 -41
  45. package/dist/index27.js.map +1 -1
  46. package/dist/index28.js +33 -12
  47. package/dist/index28.js.map +1 -1
  48. package/dist/index29.js +63 -33
  49. package/dist/index29.js.map +1 -1
  50. package/dist/index30.js +77 -60
  51. package/dist/index30.js.map +1 -1
  52. package/dist/index31.js +18 -80
  53. package/dist/index31.js.map +1 -1
  54. package/dist/index32.js +217 -15
  55. package/dist/index32.js.map +1 -1
  56. package/dist/index33.js +1078 -216
  57. package/dist/index33.js.map +1 -1
  58. package/dist/index34.js +17 -1081
  59. package/dist/index34.js.map +1 -1
  60. package/dist/index35.js +121 -17
  61. package/dist/index35.js.map +1 -1
  62. package/dist/index36.js +37 -119
  63. package/dist/index36.js.map +1 -1
  64. package/dist/index37.js +182 -31
  65. package/dist/index37.js.map +1 -1
  66. package/dist/index38.js +97 -191
  67. package/dist/index38.js.map +1 -1
  68. package/dist/index39.js +158 -93
  69. package/dist/index39.js.map +1 -1
  70. package/dist/index40.js +139 -155
  71. package/dist/index40.js.map +1 -1
  72. package/dist/index41.js +15 -146
  73. package/dist/index41.js.map +1 -1
  74. package/dist/index42.js +17 -14
  75. package/dist/index42.js.map +1 -1
  76. package/dist/index43.js +21 -18
  77. package/dist/index43.js.map +1 -1
  78. package/dist/index44.js +116 -18
  79. package/dist/index44.js.map +1 -1
  80. package/dist/index45.js +10 -116
  81. package/dist/index45.js.map +1 -1
  82. package/dist/index46.js +35 -13
  83. package/dist/index46.js.map +1 -1
  84. package/dist/index47.js +10 -35
  85. package/dist/index47.js.map +1 -1
  86. package/dist/index48.js +116 -10
  87. package/dist/index48.js.map +1 -1
  88. package/dist/index49.js +174 -114
  89. package/dist/index49.js.map +1 -1
  90. package/dist/index50.js +136 -165
  91. package/dist/index50.js.map +1 -1
  92. package/dist/index51.js +11 -146
  93. package/dist/index51.js.map +1 -1
  94. package/dist/index52.js +20 -10
  95. package/dist/index52.js.map +1 -1
  96. package/dist/index53.js +14 -22
  97. package/dist/index53.js.map +1 -1
  98. package/dist/index54.js +7 -14
  99. package/dist/index54.js.map +1 -1
  100. package/dist/index55.js +265 -6
  101. package/dist/index55.js.map +1 -1
  102. package/dist/index56.js +17 -266
  103. package/dist/index56.js.map +1 -1
  104. package/dist/index57.js +122 -17
  105. package/dist/index57.js.map +1 -1
  106. package/dist/index58.js +108 -120
  107. package/dist/index58.js.map +1 -1
  108. package/dist/index59.js +167 -107
  109. package/dist/index59.js.map +1 -1
  110. package/dist/index60.js +29 -167
  111. package/dist/index60.js.map +1 -1
  112. package/dist/index61.js +120 -30
  113. package/dist/index61.js.map +1 -1
  114. package/dist/index62.js +80 -116
  115. package/dist/index62.js.map +1 -1
  116. package/dist/index63.js +19 -85
  117. package/dist/index63.js.map +1 -1
  118. package/dist/index64.js +73 -19
  119. package/dist/index64.js.map +1 -1
  120. package/dist/index65.js +54 -71
  121. package/dist/index65.js.map +1 -1
  122. package/dist/index66.js +44 -56
  123. package/dist/index66.js.map +1 -1
  124. package/dist/index67.js +49 -42
  125. package/dist/index67.js.map +1 -1
  126. package/dist/index68.js +62 -52
  127. package/dist/index68.js.map +1 -1
  128. package/dist/index69.js +101 -56
  129. package/dist/index69.js.map +1 -1
  130. package/dist/index70.js +41 -107
  131. package/dist/index70.js.map +1 -1
  132. package/dist/index71.js +68 -41
  133. package/dist/index71.js.map +1 -1
  134. package/dist/index72.js +19 -66
  135. package/dist/index72.js.map +1 -1
  136. package/dist/index73.js +43 -18
  137. package/dist/index73.js.map +1 -1
  138. package/dist/index74.js +132 -44
  139. package/dist/index74.js.map +1 -1
  140. package/dist/index75.js +50 -132
  141. package/dist/index75.js.map +1 -1
  142. package/dist/index76.js +21 -51
  143. package/dist/index76.js.map +1 -1
  144. package/dist/index77.js +31 -22
  145. package/dist/index77.js.map +1 -1
  146. package/dist/index78.js +22 -31
  147. package/dist/index78.js.map +1 -1
  148. package/dist/index79.js +327 -20
  149. package/dist/index79.js.map +1 -1
  150. package/dist/index80.js +50 -323
  151. package/dist/index80.js.map +1 -1
  152. package/dist/index81.js +40 -56
  153. package/dist/index81.js.map +1 -1
  154. package/dist/index82.js +23 -40
  155. package/dist/index82.js.map +1 -1
  156. package/dist/index83.js +93 -21
  157. package/dist/index83.js.map +1 -1
  158. package/dist/index84.js +123 -88
  159. package/dist/index84.js.map +1 -1
  160. package/dist/index85.js +154 -123
  161. package/dist/index85.js.map +1 -1
  162. package/dist/index86.js +63 -159
  163. package/dist/index86.js.map +1 -1
  164. package/dist/index87.js +35 -65
  165. package/dist/index87.js.map +1 -1
  166. package/dist/index88.js +234 -35
  167. package/dist/index88.js.map +1 -1
  168. package/dist/index89.js +31 -231
  169. package/dist/index89.js.map +1 -1
  170. package/dist/index90.js +210 -34
  171. package/dist/index90.js.map +1 -1
  172. package/dist/index91.js +198 -195
  173. package/dist/index91.js.map +1 -1
  174. package/dist/index92.js +241 -159
  175. package/dist/index92.js.map +1 -1
  176. package/dist/index93.js +166 -283
  177. package/dist/index93.js.map +1 -1
  178. package/dist/index94.js +253 -173
  179. package/dist/index94.js.map +1 -1
  180. package/dist/index95.js +14 -258
  181. package/dist/index95.js.map +1 -1
  182. package/dist/index96.js +31 -12
  183. package/dist/index96.js.map +1 -1
  184. package/dist/index97.js +5 -32
  185. package/dist/index97.js.map +1 -1
  186. package/dist/index98.js +13 -5
  187. package/dist/index98.js.map +1 -1
  188. package/dist/index99.js +43 -11
  189. package/dist/index99.js.map +1 -1
  190. package/package.json +11 -5
  191. package/dist/components/Calendar.d.ts +0 -23
  192. package/dist/index.css +0 -1
  193. package/dist/index106.js +0 -21
  194. package/dist/index106.js.map +0 -1
  195. package/dist/index107.js +0 -177
  196. package/dist/index107.js.map +0 -1
  197. package/dist/index109.js +0 -10796
  198. package/dist/index109.js.map +0 -1
  199. package/dist/index110.js +0 -8
  200. package/dist/index110.js.map +0 -1
  201. package/dist/index111.js +0 -45
  202. package/dist/index111.js.map +0 -1
  203. package/dist/index112.js +0 -5
  204. package/dist/index112.js.map +0 -1
  205. package/dist/index113.js +0 -10
  206. package/dist/index113.js.map +0 -1
  207. package/dist/index114.js +0 -155
  208. package/dist/index114.js.map +0 -1
  209. package/dist/index115.js +0 -33
  210. package/dist/index115.js.map +0 -1
  211. package/dist/index116.js +0 -33
  212. package/dist/index116.js.map +0 -1
  213. package/dist/index117.js +0 -5
  214. package/dist/index117.js.map +0 -1
  215. package/dist/index118.js +0 -75
  216. package/dist/index118.js.map +0 -1
  217. package/dist/index119.js +0 -42
  218. package/dist/index119.js.map +0 -1
  219. package/dist/index120.js +0 -29
  220. package/dist/index120.js.map +0 -1
  221. package/dist/index121.js +0 -24
  222. package/dist/index121.js.map +0 -1
  223. package/dist/index122.js +0 -27
  224. package/dist/index122.js.map +0 -1
  225. package/dist/index123.js +0 -23
  226. package/dist/index123.js.map +0 -1
  227. package/dist/index124.js +0 -103
  228. package/dist/index124.js.map +0 -1
  229. package/dist/index125.js +0 -363
  230. package/dist/index125.js.map +0 -1
  231. package/dist/index126.js +0 -28
  232. package/dist/index126.js.map +0 -1
  233. package/dist/index127.js +0 -76
  234. package/dist/index127.js.map +0 -1
  235. package/dist/index128.js +0 -19
  236. package/dist/index128.js.map +0 -1
  237. package/dist/index129.js +0 -69
  238. package/dist/index129.js.map +0 -1
  239. package/dist/index130.js +0 -147
  240. package/dist/index130.js.map +0 -1
  241. package/dist/index131.js +0 -5
  242. package/dist/index131.js.map +0 -1
  243. package/dist/index132.js +0 -59
  244. package/dist/index132.js.map +0 -1
  245. package/dist/index133.js +0 -5
  246. package/dist/index133.js.map +0 -1
  247. package/dist/index134.js +0 -5
  248. package/dist/index134.js.map +0 -1
  249. package/dist/index135.js +0 -5
  250. package/dist/index135.js.map +0 -1
  251. package/dist/index136.js +0 -5
  252. package/dist/index136.js.map +0 -1
  253. package/dist/index137.js +0 -5
  254. package/dist/index137.js.map +0 -1
  255. package/dist/index138.js +0 -5
  256. package/dist/index138.js.map +0 -1
  257. package/dist/index139.js +0 -5
  258. package/dist/index139.js.map +0 -1
  259. package/dist/index140.js +0 -5
  260. package/dist/index140.js.map +0 -1
  261. package/dist/index141.js +0 -35
  262. package/dist/index141.js.map +0 -1
  263. package/dist/index142.js +0 -5
  264. package/dist/index142.js.map +0 -1
  265. package/dist/index143.js +0 -11
  266. package/dist/index143.js.map +0 -1
  267. package/dist/index144.js +0 -5
  268. package/dist/index144.js.map +0 -1
  269. package/dist/index145.js +0 -5
  270. package/dist/index145.js.map +0 -1
  271. package/dist/index146.js +0 -24
  272. package/dist/index146.js.map +0 -1
  273. package/dist/index147.js +0 -5
  274. package/dist/index147.js.map +0 -1
  275. package/dist/index148.js +0 -27
  276. package/dist/index148.js.map +0 -1
  277. package/dist/index149.js +0 -74
  278. package/dist/index149.js.map +0 -1
  279. package/dist/index150.js +0 -24
  280. package/dist/index150.js.map +0 -1
  281. package/dist/index151.js +0 -37
  282. package/dist/index151.js.map +0 -1
  283. package/dist/index152.js +0 -73
  284. package/dist/index152.js.map +0 -1
  285. package/dist/index153.js +0 -5
  286. package/dist/index153.js.map +0 -1
  287. package/dist/index154.js +0 -25
  288. package/dist/index154.js.map +0 -1
  289. package/dist/index155.js +0 -5
  290. package/dist/index155.js.map +0 -1
  291. package/dist/index156.js +0 -5
  292. package/dist/index156.js.map +0 -1
  293. package/dist/index157.js +0 -5
  294. package/dist/index157.js.map +0 -1
  295. package/dist/index158.js +0 -5
  296. package/dist/index158.js.map +0 -1
  297. package/dist/index159.js +0 -7
  298. package/dist/index159.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "asterui",
3
- "version": "0.12.2",
3
+ "version": "0.12.3",
4
4
  "description": "React UI component library with DaisyUI",
5
5
  "homepage": "https://asterui.com",
6
6
  "repository": {
@@ -26,10 +26,19 @@
26
26
  "sideEffects": false,
27
27
  "peerDependencies": {
28
28
  "apexcharts": "^5.3.6",
29
+ "qrcode": "^1.5.4",
29
30
  "react": "^18.0.0 || ^19.0.0",
30
31
  "react-dom": "^18.0.0 || ^19.0.0",
31
32
  "react-hook-form": "^7.0.0"
32
33
  },
34
+ "peerDependenciesMeta": {
35
+ "apexcharts": {
36
+ "optional": true
37
+ },
38
+ "qrcode": {
39
+ "optional": true
40
+ }
41
+ },
33
42
  "devDependencies": {
34
43
  "@tailwindcss/vite": "^4.1.17",
35
44
  "@types/qrcode": "^1.5.6",
@@ -38,6 +47,7 @@
38
47
  "@vitejs/plugin-react": "^5.1.1",
39
48
  "apexcharts": "^5.3.6",
40
49
  "daisyui": "^5.5.5",
50
+ "qrcode": "^1.5.4",
41
51
  "react": "^19.2.0",
42
52
  "react-dom": "^19.2.0",
43
53
  "react-hook-form": "^7.66.1",
@@ -61,10 +71,6 @@
61
71
  "frontend"
62
72
  ],
63
73
  "license": "ISC",
64
- "dependencies": {
65
- "@vinctus/calendar": "^0.2.1",
66
- "qrcode": "^1.5.4"
67
- },
68
74
  "scripts": {
69
75
  "build": "vite build",
70
76
  "dev": "vite build --watch"
@@ -1,23 +0,0 @@
1
- import { en, fr, MonthCalendarProps as BaseMonthCalendarProps, WeekCalendarProps as BaseWeekCalendarProps, CalendarEvent, CalendarLocale } from '@vinctus/calendar';
2
- export type { CalendarEvent, CalendarLocale };
3
- export { en, fr };
4
- export interface MonthCalendarProps<T extends CalendarEvent = CalendarEvent> extends Omit<BaseMonthCalendarProps<T>, 'theme'> {
5
- className?: string;
6
- }
7
- export interface WeekCalendarProps<T extends CalendarEvent = CalendarEvent> extends Omit<BaseWeekCalendarProps<T>, 'theme'> {
8
- className?: string;
9
- }
10
- declare const MonthCalendar: {
11
- <T extends CalendarEvent = CalendarEvent>({ className, ...props }: MonthCalendarProps<T>): import("react/jsx-runtime").JSX.Element;
12
- displayName: string;
13
- };
14
- declare const WeekCalendar: {
15
- <T extends CalendarEvent = CalendarEvent>({ className, ...props }: WeekCalendarProps<T>): import("react/jsx-runtime").JSX.Element;
16
- displayName: string;
17
- };
18
- interface CalendarComponent {
19
- Month: typeof MonthCalendar;
20
- Week: typeof WeekCalendar;
21
- }
22
- export declare const Calendar: CalendarComponent;
23
- export default Calendar;
package/dist/index.css DELETED
@@ -1 +0,0 @@
1
- .month-calendar{background-color:var(--calendar-bg-primary);display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;height:100%;width:100%}.month-calendar .month-calendar-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.month-calendar .month-calendar-month-display h2{font-size:18px;font-weight:500;margin:0}.month-calendar .month-calendar-weekday-header{border-bottom:1px solid var(--calendar-border-primary);display:grid;grid-template-columns:repeat(7,1fr)}.month-calendar .month-calendar-weekday-header .month-calendar-weekday-cell{color:var(--calendar-text-secondary);font-size:12px;font-weight:500;padding:4px 0;text-align:center;text-transform:uppercase}.month-calendar .month-calendar-grid{border-left:1px solid var(--calendar-border-primary);display:grid;flex:1;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(6,1fr)}.month-calendar .month-calendar-cell{border-bottom:1px solid var(--calendar-border-primary);border-right:1px solid var(--calendar-border-primary);cursor:pointer;overflow:hidden;padding:4px;position:relative}.month-calendar .month-calendar-cell:hover{background-color:var(--calendar-bg-hover)}.month-calendar .month-calendar-cell .month-calendar-date-number-container{display:flex;justify-content:center;margin-bottom:2px}.month-calendar .month-calendar-cell .month-calendar-date-number{align-items:center;color:var(--calendar-text-primary);display:flex;font-size:12px;justify-content:center;line-height:1}.month-calendar .month-calendar-cell .month-calendar-events-container{display:flex;flex-direction:column}.month-calendar .month-calendar-other-month{background-color:var(--calendar-bg-secondary)}.month-calendar .month-calendar-other-month .month-calendar-date-number{color:var(--calendar-text-muted)}.month-calendar .month-calendar-past{opacity:.6}.month-calendar .month-calendar-past .month-calendar-date-number{color:var(--calendar-text-muted)}.month-calendar .month-calendar-past .month-calendar-event{opacity:.8}.month-calendar .month-calendar-past-non-interactive{cursor:not-allowed}.month-calendar .month-calendar-past-non-interactive .month-calendar-event{cursor:pointer}.month-calendar .month-calendar-today{background-color:var(--calendar-bg-today)}.month-calendar .month-calendar-today .month-calendar-today-number{color:var(--calendar-accent-primary);font-weight:700}.month-calendar .month-calendar-selected{outline:2px solid var(--calendar-accent-primary);z-index:1}.month-calendar .month-calendar-event{align-items:center;border-radius:3px;color:var(--calendar-text-event);cursor:pointer;display:flex;font-size:12px;line-height:1;overflow:hidden;padding:3px 4px;transition:background-color .1s ease;white-space:nowrap}.month-calendar .month-calendar-event:hover{background-color:var(--calendar-bg-event-hover)}.month-calendar .month-calendar-event .month-calendar-event-dot{border-radius:50%;display:inline-block;flex-shrink:0;height:8px;margin-right:6px;width:8px}.month-calendar .month-calendar-event .month-calendar-event-title{overflow:hidden;white-space:nowrap}.month-calendar .month-calendar-ellipsis{text-overflow:ellipsis}.month-calendar .month-calendar-cancelled-event{text-decoration:line-through}.month-calendar .month-calendar-future-event{color:var(--calendar-text-future-event)}.month-calendar .month-calendar-more-events{border-radius:3px;color:var(--calendar-text-secondary);cursor:pointer;font-size:11px}.month-calendar .month-calendar-more-events:hover{background-color:var(--calendar-bg-event-hover)}.calendar-light{--calendar-bg-primary:#fff;--calendar-bg-secondary:#f8f9fa;--calendar-bg-hover:#f8f9fa;--calendar-bg-today:#e8f0fe;--calendar-bg-time-label:#fafafa;--calendar-bg-day-hover:#f0f6ff;--calendar-bg-event-hover:rgba(0,0,0,.04);--calendar-border-primary:#e0e0e0;--calendar-border-secondary:#f0f0f0;--calendar-text-primary:#3c4043;--calendar-text-secondary:#70757a;--calendar-text-muted:#80868b;--calendar-text-time:#8c8c8c;--calendar-text-event:#000;--calendar-text-future-event:#3c4043;--calendar-accent-primary:#1a73e8;--calendar-scrollbar-track:#f1f1f1;--calendar-scrollbar-thumb:#c1c1c1;--calendar-scrollbar-thumb-hover:#a8a8a8}.calendar-dark{--calendar-bg-primary:#1f1f1f;--calendar-bg-secondary:#2a2a2a;--calendar-bg-hover:#2a2a2a;--calendar-bg-today:#1e3a5f;--calendar-bg-time-label:#1a1a1a;--calendar-bg-day-hover:#2a3f5f;--calendar-bg-event-hover:hsla(0,0%,100%,.08);--calendar-border-primary:#434343;--calendar-border-secondary:#383838;--calendar-text-primary:#e8e8e8;--calendar-text-secondary:#b8b8b8;--calendar-text-muted:grey;--calendar-text-time:#999;--calendar-text-event:#fff;--calendar-text-future-event:#d0d0d0;--calendar-accent-primary:#4a9eff;--calendar-scrollbar-track:#2a2a2a;--calendar-scrollbar-thumb:#4a4a4a;--calendar-scrollbar-thumb-hover:#5a5a5a}.week-calendar{display:flex;flex-direction:column;height:100%;overflow:hidden}.week-calendar,.week-calendar .week-calendar-header{background:var(--calendar-bg-primary);border-bottom:1px solid var(--calendar-border-secondary)}.week-calendar .week-calendar-header{display:grid;grid-template-columns:80px repeat(7,1fr)}.week-calendar .week-calendar-day-header{cursor:pointer;padding:2px 8px;text-align:center;transition:background-color .2s}.week-calendar .week-calendar-day-header:hover{background-color:var(--calendar-bg-day-hover)}.week-calendar .week-calendar-day-header.week-calendar-day-header-past-non-interactive{cursor:not-allowed}.week-calendar .week-calendar-day-name{color:var(--calendar-text-secondary);font-size:12px;font-weight:500;margin-bottom:0;text-transform:uppercase}.week-calendar .week-calendar-day-name.week-calendar-day-name-past{color:var(--calendar-text-muted)}.week-calendar .week-calendar-day-number{align-items:center;color:var(--calendar-text-primary);display:flex;font-size:12px;font-weight:500;justify-content:center;margin:0 auto;transition:all .2s}.week-calendar .week-calendar-day-number.week-calendar-day-number-today{color:var(--calendar-accent-primary);font-weight:700}.week-calendar .week-calendar-day-number.week-calendar-day-number-past{color:var(--calendar-text-muted)}.week-calendar .week-calendar-body{flex:1;overflow-y:auto}.week-calendar .week-calendar-time-row{border-bottom:1px solid var(--calendar-border-secondary);display:grid;grid-template-columns:80px repeat(7,1fr);height:80px}.week-calendar .week-calendar-time-row:last-child{border-bottom:none}.week-calendar .week-calendar-time-label{align-items:flex-start;background:var(--calendar-bg-time-label);border-left:1px solid var(--calendar-border-secondary);border-right:1px solid var(--calendar-border-secondary);color:var(--calendar-text-time);display:flex;font-size:12px;justify-content:flex-end;padding:4px 8px 8px;text-align:right}.week-calendar .week-calendar-time-cell{border-right:1px solid var(--calendar-border-secondary);cursor:pointer;display:flex;flex-direction:column;height:80px;justify-content:flex-start;overflow-y:auto;padding:4px 2px;position:relative}.week-calendar .week-calendar-time-cell:last-child{border-right:none}.week-calendar .week-calendar-time-cell:hover{background-color:var(--calendar-bg-day-hover)}.week-calendar .week-calendar-time-cell.week-calendar-time-cell-non-interactive{cursor:not-allowed}.week-calendar .week-calendar-time-cell.week-calendar-time-cell-non-interactive:hover{background-color:var(--calendar-bg-day-hover);cursor:not-allowed}.week-calendar .week-calendar-time-cell.week-calendar-time-cell-non-interactive .week-calendar-event{cursor:pointer}.week-calendar .week-calendar-event{align-items:center;border-radius:3px;color:var(--calendar-text-event);cursor:pointer;display:flex;flex-shrink:0;font-size:12px;line-height:1;margin-bottom:1px;overflow:hidden;padding:3px 4px;transition:background-color .1s ease;white-space:nowrap}.week-calendar .week-calendar-event:hover{background-color:var(--calendar-bg-event-hover)}.week-calendar .week-calendar-event:last-child{margin-bottom:0}.week-calendar .week-calendar-event.week-calendar-event-cancelled{text-decoration:line-through}.week-calendar .week-calendar-event.week-calendar-event-future{color:var(--calendar-text-primary)}.week-calendar .week-calendar-event-dot{border-radius:50%;display:inline-block;flex-shrink:0;height:8px;margin-right:6px;width:8px}.week-calendar .week-calendar-event-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.week-calendar-body::-webkit-scrollbar{width:8px}.week-calendar-body::-webkit-scrollbar-track{background:var(--calendar-scrollbar-track)}.week-calendar-body::-webkit-scrollbar-thumb{background:var(--calendar-scrollbar-thumb);border-radius:4px}.week-calendar-body::-webkit-scrollbar-thumb:hover{background:var(--calendar-scrollbar-thumb-hover)}@media(max-width:768px){.week-calendar .week-calendar-time-column{width:60px}.week-calendar .week-calendar-header,.week-calendar .week-calendar-time-row{grid-template-columns:60px repeat(7,1fr)}.week-calendar .week-calendar-time-label{font-size:10px;padding:4px}.week-calendar .week-calendar-day-name,.week-calendar .week-calendar-day-number{font-size:10px}.week-calendar .week-calendar-event{font-size:10px;padding:2px 4px}}
package/dist/index106.js DELETED
@@ -1,21 +0,0 @@
1
- import { useState as t, useEffect as d } from "react";
2
- function r() {
3
- const [i, n] = t(() => typeof window > "u" ? { width: 0, height: 0 } : {
4
- width: window.innerWidth,
5
- height: window.innerHeight
6
- });
7
- return d(() => {
8
- if (typeof window > "u") return;
9
- const e = () => {
10
- n({
11
- width: window.innerWidth,
12
- height: window.innerHeight
13
- });
14
- };
15
- return window.addEventListener("resize", e), () => window.removeEventListener("resize", e);
16
- }, []), i;
17
- }
18
- export {
19
- r as useWindowSize
20
- };
21
- //# sourceMappingURL=index106.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index106.js","sources":["../src/hooks/useWindowSize.ts"],"sourcesContent":["import { useState, useEffect } from 'react'\n\nexport interface WindowSize {\n width: number\n height: number\n}\n\n/**\n * Hook that tracks window dimensions.\n * Updates on window resize.\n *\n * @returns Object with current width and height\n *\n * @example\n * const { width, height } = useWindowSize()\n *\n * return (\n * <div>\n * Window: {width} x {height}\n * {width < 768 && <MobileNav />}\n * </div>\n * )\n */\nexport function useWindowSize(): WindowSize {\n const [windowSize, setWindowSize] = useState<WindowSize>(() => {\n if (typeof window === 'undefined') {\n return { width: 0, height: 0 }\n }\n return {\n width: window.innerWidth,\n height: window.innerHeight,\n }\n })\n\n useEffect(() => {\n if (typeof window === 'undefined') return\n\n const handleResize = () => {\n setWindowSize({\n width: window.innerWidth,\n height: window.innerHeight,\n })\n }\n\n window.addEventListener('resize', handleResize)\n return () => window.removeEventListener('resize', handleResize)\n }, [])\n\n return windowSize\n}\n"],"names":["useWindowSize","windowSize","setWindowSize","useState","useEffect","handleResize"],"mappings":";AAuBO,SAASA,IAA4B;AAC1C,QAAM,CAACC,GAAYC,CAAa,IAAIC,EAAqB,MACnD,OAAO,SAAW,MACb,EAAE,OAAO,GAAG,QAAQ,EAAA,IAEtB;AAAA,IACL,OAAO,OAAO;AAAA,IACd,QAAQ,OAAO;AAAA,EAAA,CAElB;AAED,SAAAC,EAAU,MAAM;AACd,QAAI,OAAO,SAAW,IAAa;AAEnC,UAAMC,IAAe,MAAM;AACzB,MAAAH,EAAc;AAAA,QACZ,OAAO,OAAO;AAAA,QACd,QAAQ,OAAO;AAAA,MAAA,CAChB;AAAA,IACH;AAEA,kBAAO,iBAAiB,UAAUG,CAAY,GACvC,MAAM,OAAO,oBAAoB,UAAUA,CAAY;AAAA,EAChE,GAAG,CAAA,CAAE,GAEEJ;AACT;"}
package/dist/index107.js DELETED
@@ -1,177 +0,0 @@
1
- import { jsxs as f, jsx as l } from "react/jsx-runtime";
2
- import b, { useMemo as A, useState as R } from "react";
3
- const M = (n) => L(n, /* @__PURE__ */ new Date()), L = (n, t) => {
4
- const a = new Date(n), s = new Date(t);
5
- return a.setHours(0, 0, 0, 0), s.setHours(0, 0, 0, 0), s.getTime() === a.getTime();
6
- }, W = (n) => {
7
- const t = /* @__PURE__ */ new Date(), a = new Date(n);
8
- return t.setHours(0, 0, 0, 0), a.setHours(0, 0, 0, 0), a > t;
9
- }, H = (n) => {
10
- const t = /* @__PURE__ */ new Date(), a = new Date(n);
11
- return t.setHours(0, 0, 0, 0), a.setHours(0, 0, 0, 0), a < t;
12
- }, E = (n, t) => n.filter((a) => a.date.getDate() === t.getDate() && a.date.getMonth() === t.getMonth() && a.date.getFullYear() === t.getFullYear()), F = (n, t) => new Date(n, t + 1, 0).getDate(), J = (n, t) => new Date(n, t, 1).getDay(), z = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], _ = [
13
- "January",
14
- "February",
15
- "March",
16
- "April",
17
- "May",
18
- "June",
19
- "July",
20
- "August",
21
- "September",
22
- "October",
23
- "November",
24
- "December"
25
- ], q = "more", B = (n) => {
26
- const t = {
27
- hour: "numeric",
28
- // removes leading zeros automatically
29
- minute: "2-digit",
30
- hour12: !0
31
- };
32
- return n.toLocaleTimeString("en-US", t).replace(" ", "").toLowerCase().replace(":00", "");
33
- }, C = {
34
- locale: "en",
35
- daysShort: z,
36
- monthsLong: _,
37
- moreText: q,
38
- formatTime: B
39
- }, G = ["dim", "lun", "mar", "mer", "jeu", "ven", "sam"], I = [
40
- "janvier",
41
- "février",
42
- "mars",
43
- "avril",
44
- "mai",
45
- "juin",
46
- "juillet",
47
- "août",
48
- "septembre",
49
- "octobre",
50
- "novembre",
51
- "décembre"
52
- ], U = "autres", K = (n) => n.toLocaleTimeString("fr-FR", {
53
- hour: "2-digit",
54
- minute: "2-digit",
55
- hour12: !1
56
- }), j = {
57
- locale: "fr",
58
- daysShort: G,
59
- monthsLong: I,
60
- moreText: U,
61
- formatTime: K
62
- }, P = (n, t) => {
63
- const a = F(n, t), s = J(n, t), h = [];
64
- if (s > 0) {
65
- const o = t === 0 ? 11 : t - 1, g = t === 0 ? n - 1 : n, m = F(g, o);
66
- for (let y = 0; y < s; y++) {
67
- const v = m - s + y + 1;
68
- h.push({
69
- day: v,
70
- month: o,
71
- year: g,
72
- isCurrentMonth: !1,
73
- date: new Date(g, o, v)
74
- });
75
- }
76
- }
77
- const D = [];
78
- for (let o = 1; o <= a; o++)
79
- D.push({
80
- day: o,
81
- month: t,
82
- year: n,
83
- isCurrentMonth: !0,
84
- date: new Date(n, t, o)
85
- });
86
- const w = [], i = 42 - (h.length + D.length);
87
- if (i > 0) {
88
- const o = t === 11 ? 0 : t + 1, g = t === 11 ? n + 1 : n;
89
- for (let m = 1; m <= i; m++)
90
- w.push({
91
- day: m,
92
- month: o,
93
- year: g,
94
- isCurrentMonth: !1,
95
- date: new Date(g, o, m)
96
- });
97
- }
98
- return [...h, ...D, ...w];
99
- }, O = ({ date: n = /* @__PURE__ */ new Date(), events: t = [], maxEventsPerDay: a = 5, onEventClick: s, onDayClick: h, onMoreEventsClick: D, header: w, daySelector: p, locale: i = C, ellipsis: o, theme: g = "light", allowPastInteraction: m = !1 }) => {
100
- const [y, v] = R(/* @__PURE__ */ new Date()), T = n.getFullYear(), S = n.getMonth();
101
- return f("div", { className: `month-calendar calendar-${g}`, children: [w && l("div", { className: "month-calendar-header", children: l("div", { className: "month-calendar-month-display", children: f("h2", { children: [i.monthsLong[S], " ", T] }) }) }), l("div", { className: "month-calendar-weekday-header", children: i.daysShort.map((e, r) => l("div", { className: "month-calendar-weekday-cell", children: e }, r)) }), l("div", { className: "month-calendar-grid", children: P(T, S).map((e, r) => {
102
- const c = E(t, e.date);
103
- return f("div", { className: `month-calendar-cell ${e.isCurrentMonth ? "" : "month-calendar-other-month"}
104
- ${M(e.date) ? "month-calendar-today" : ""}
105
- ${H(e.date) && !M(e.date) ? `month-calendar-past${m ? "" : " month-calendar-past-non-interactive"}` : ""}
106
- ${p && L(e.date, y) ? "month-calendar-selected" : ""}`, onClick: () => {
107
- H(e.date) && !M(e.date) && !m || (p && v(e.date), setTimeout(() => {
108
- h?.(e.date);
109
- }, 0));
110
- }, children: [l("div", { className: "month-calendar-date-number-container", children: l("span", { className: `month-calendar-date-number ${M(e.date) ? "month-calendar-today-number" : ""}`, children: e.day }) }), f("div", { className: "month-calendar-events-container", children: [c.slice(0, c.length > a ? a - 1 : a).map((d, k) => f("div", { className: `
111
- month-calendar-event
112
- ${W(d.date) ? "month-calendar-future-event" : ""}
113
- ${d.strikethrough ? "month-calendar-cancelled-event" : ""}
114
- `, style: d.style, onClick: (u) => {
115
- u.stopPropagation(), s && s(d);
116
- }, title: d.title, children: [l("span", { className: "month-calendar-event-dot", style: { backgroundColor: d.color } }), l("span", { className: `month-calendar-event-title ${o ? "month-calendar-ellipsis" : ""}`, children: d.title })] }, k)), c.length > a && f("div", { className: "month-calendar-more-events", onClick: (d) => {
117
- d.stopPropagation(), D && D(e.date, c);
118
- }, children: ["+", c.length - a + 1, " ", i.moreText] })] })] }, r);
119
- }) })] });
120
- }, Q = (n) => {
121
- const t = new Date(n), a = t.getDay(), s = t.getDate() - a;
122
- return new Date(t.setDate(s));
123
- }, V = (n, t) => {
124
- const a = new Date(n);
125
- return a.setDate(a.getDate() + t), a;
126
- }, $ = (n, t) => {
127
- const a = n.getDate(), s = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"][n.getDay()];
128
- return t === "YYYY-MM-DD" ? n.toISOString().split("T")[0] : t === "ddd" ? s : t === "D" ? a.toString() : n.toISOString();
129
- }, ee = ({ date: n, events: t, locale: a = C, onEventClick: s, onDayClick: h, onSelectSlot: D, theme: w = "light", allowPastInteraction: p = !1 }) => {
130
- const i = b.useRef(null), o = b.useRef(null);
131
- b.useEffect(() => {
132
- const e = () => {
133
- if (i.current && o.current) {
134
- const r = i.current, c = o.current, d = r.offsetWidth - r.clientWidth;
135
- c.style.paddingRight = `${d}px`;
136
- }
137
- };
138
- return e(), window.addEventListener("resize", e), () => window.removeEventListener("resize", e);
139
- }, []), b.useEffect(() => {
140
- i.current && (i.current.scrollTop = 240);
141
- }, [n]);
142
- const g = Q(n), m = Array.from({ length: 7 }, (e, r) => V(g, r)), y = A(() => {
143
- const e = {};
144
- return t.forEach((r) => {
145
- const c = $(r.date, "YYYY-MM-DD");
146
- e[c] || (e[c] = []), e[c].push(r);
147
- }), e;
148
- }, [t]), v = Array.from({ length: 17 }, (e, r) => r + 6), T = (e) => a.formatTime ? a.formatTime(new Date(2e3, 0, 1, e, 0)) : `${e === 0 ? 12 : e > 12 ? e - 12 : e}:00 ${e < 12 ? "AM" : "PM"}`, S = (e, r) => (y[e] || []).filter((d) => d.date.getHours() === r);
149
- return f("div", { className: `week-calendar calendar-${w}`, children: [f("div", { className: "week-calendar-header", ref: o, children: [l("div", { className: "week-calendar-time-column" }), m.map((e) => {
150
- const r = H(e), c = M(e);
151
- return f("div", { className: `week-calendar-day-header ${r ? `week-calendar-day-header-past${p ? "" : " week-calendar-day-header-past-non-interactive"}` : ""}`, onClick: () => {
152
- r && !p || h?.(e);
153
- }, children: [l("div", { className: `week-calendar-day-name ${r ? "week-calendar-day-name-past" : ""}`, children: $(e, "ddd") }), l("div", { className: `week-calendar-day-number ${c ? "week-calendar-day-number-today" : ""} ${r ? "week-calendar-day-number-past" : ""}`, children: $(e, "D") })] }, $(e, "YYYY-MM-DD"));
154
- })] }), l("div", { className: "week-calendar-body", ref: i, children: v.map((e) => f("div", { className: "week-calendar-time-row", children: [l("div", { className: "week-calendar-time-label", children: T(e) }), m.map((r) => {
155
- const c = $(r, "YYYY-MM-DD"), d = S(c, e), k = H(r) && !M(r);
156
- return l("div", { className: `week-calendar-time-cell ${k ? `week-calendar-time-cell-past${p ? "" : " week-calendar-time-cell-non-interactive"}` : ""}`, onClick: (u) => {
157
- if (!(k && !p) && D && (u.target === u.currentTarget || u.target.classList.contains("week-calendar-time-cell"))) {
158
- const Y = new Date(r);
159
- Y.setHours(e, 0, 0, 0);
160
- const N = new Date(r);
161
- N.setHours(e + 1, 0, 0, 0), D({ start: Y, end: N });
162
- }
163
- }, children: d.map((u, Y) => {
164
- const N = ["week-calendar-event"];
165
- return u.strikethrough && N.push("week-calendar-event-cancelled"), f("div", { className: N.join(" "), style: u.style, title: u.title, onClick: (x) => {
166
- x.stopPropagation(), s?.(u);
167
- }, children: [l("div", { className: "week-calendar-event-dot", style: { backgroundColor: u.color || "#bfbfbf" } }), l("div", { className: "week-calendar-event-title", children: u.title })] }, Y);
168
- }) }, `${c}-${e}`);
169
- })] }, e)) })] });
170
- };
171
- export {
172
- O as MonthCalendar,
173
- ee as WeekCalendar,
174
- C as en,
175
- j as fr
176
- };
177
- //# sourceMappingURL=index107.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index107.js","sources":["../../../node_modules/.pnpm/@vinctus+calendar@0.2.1_react-dom@19.2.0_react@19.2.0__react-router-dom@7.10.1_react-dom@19.2_5r2kgk6bwao76phqhq32c4ooqu/node_modules/@vinctus/calendar/dist/index.esm.js"],"sourcesContent":["import { jsxs, jsx } from 'react/jsx-runtime';\nimport React, { useState, useMemo } from 'react';\n\nconst isToday = (date) => isEqual(date, new Date());\nconst isEqual = (a, b) => {\n const acopy = new Date(a);\n const bcopy = new Date(b);\n acopy.setHours(0, 0, 0, 0);\n bcopy.setHours(0, 0, 0, 0);\n return bcopy.getTime() === acopy.getTime();\n};\nconst isFutureDate = (date) => {\n const today = new Date();\n const checkDate = new Date(date);\n today.setHours(0, 0, 0, 0);\n checkDate.setHours(0, 0, 0, 0);\n return checkDate > today;\n};\nconst isPastDate = (date) => {\n const today = new Date();\n const checkDate = new Date(date);\n today.setHours(0, 0, 0, 0);\n checkDate.setHours(0, 0, 0, 0);\n return checkDate < today;\n};\nconst getEventsForDate = (events, date) => {\n return events.filter((event) => event.date.getDate() === date.getDate() &&\n event.date.getMonth() === date.getMonth() &&\n event.date.getFullYear() === date.getFullYear());\n};\nconst getDaysInMonth = (year, month) => {\n return new Date(year, month + 1, 0).getDate();\n};\nconst getFirstDayOfMonth = (year, month) => {\n return new Date(year, month, 1).getDay();\n};\n\nconst daysShort$1 = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\nconst monthsLong$1 = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n];\nconst moreText$1 = 'more';\nconst formatTime$1 = (date) => {\n const options = {\n hour: 'numeric', // removes leading zeros automatically\n minute: '2-digit',\n hour12: true,\n };\n const formatted = date.toLocaleTimeString('en-US', options);\n return formatted.replace(' ', '').toLowerCase().replace(':00', '');\n};\nconst en = {\n locale: 'en',\n daysShort: daysShort$1,\n monthsLong: monthsLong$1,\n moreText: moreText$1,\n formatTime: formatTime$1,\n};\n\nconst daysShort = ['dim', 'lun', 'mar', 'mer', 'jeu', 'ven', 'sam']; // No periods, Google Calendar style\nconst monthsLong = [\n 'janvier',\n 'février',\n 'mars',\n 'avril',\n 'mai',\n 'juin',\n 'juillet',\n 'août',\n 'septembre',\n 'octobre',\n 'novembre',\n 'décembre',\n];\nconst moreText = 'autres';\nconst formatTime = (date) => {\n return date.toLocaleTimeString('fr-FR', {\n hour: '2-digit',\n minute: '2-digit',\n hour12: false,\n });\n};\nconst fr = {\n locale: 'fr',\n daysShort,\n monthsLong,\n moreText,\n formatTime,\n};\n\nconst generateCalendarGrid = (year, month) => {\n const daysInMonth = getDaysInMonth(year, month);\n const firstDayOfMonth = getFirstDayOfMonth(year, month);\n const prevMonthDays = [];\n if (firstDayOfMonth > 0) {\n const prevMonth = month === 0 ? 11 : month - 1;\n const prevMonthYear = month === 0 ? year - 1 : year;\n const daysInPrevMonth = getDaysInMonth(prevMonthYear, prevMonth);\n for (let i = 0; i < firstDayOfMonth; i++) {\n const day = daysInPrevMonth - firstDayOfMonth + i + 1;\n prevMonthDays.push({\n day,\n month: prevMonth,\n year: prevMonthYear,\n isCurrentMonth: false,\n date: new Date(prevMonthYear, prevMonth, day),\n });\n }\n }\n const currentMonthDays = [];\n for (let day = 1; day <= daysInMonth; day++) {\n currentMonthDays.push({\n day,\n month,\n year,\n isCurrentMonth: true,\n date: new Date(year, month, day),\n });\n }\n const nextMonthDays = [];\n const totalDaysDisplayed = prevMonthDays.length + currentMonthDays.length;\n const daysToAdd = 6 * 7 - totalDaysDisplayed;\n if (daysToAdd > 0) {\n const nextMonth = month === 11 ? 0 : month + 1;\n const nextMonthYear = month === 11 ? year + 1 : year;\n for (let day = 1; day <= daysToAdd; day++) {\n nextMonthDays.push({\n day,\n month: nextMonth,\n year: nextMonthYear,\n isCurrentMonth: false,\n date: new Date(nextMonthYear, nextMonth, day),\n });\n }\n }\n return [...prevMonthDays, ...currentMonthDays, ...nextMonthDays];\n};\nconst MonthCalendar = ({ date = new Date(), events = [], maxEventsPerDay = 5, onEventClick, onDayClick, onMoreEventsClick, header, daySelector, locale = en, ellipsis, theme = 'light', allowPastInteraction = false, }) => {\n const [selectedDate, setSelectedDate] = useState(new Date());\n const year = date.getFullYear();\n const month = date.getMonth();\n return (jsxs(\"div\", { className: `month-calendar calendar-${theme}`, children: [header && (jsx(\"div\", { className: \"month-calendar-header\", children: jsx(\"div\", { className: \"month-calendar-month-display\", children: jsxs(\"h2\", { children: [locale.monthsLong[month], \" \", year] }) }) })), jsx(\"div\", { className: \"month-calendar-weekday-header\", children: locale.daysShort.map((day, index) => (jsx(\"div\", { className: \"month-calendar-weekday-cell\", children: day }, index))) }), jsx(\"div\", { className: \"month-calendar-grid\", children: generateCalendarGrid(year, month).map((dateObj, index) => {\n const dateEvents = getEventsForDate(events, dateObj.date);\n return (jsxs(\"div\", { className: `month-calendar-cell ${!dateObj.isCurrentMonth ? 'month-calendar-other-month' : ''}\n ${isToday(dateObj.date) ? 'month-calendar-today' : ''}\n ${isPastDate(dateObj.date) && !isToday(dateObj.date) ? `month-calendar-past${!allowPastInteraction ? ' month-calendar-past-non-interactive' : ''}` : ''}\n ${daySelector && isEqual(dateObj.date, selectedDate) ? 'month-calendar-selected' : ''}`, onClick: () => {\n // Prevent interaction with past dates when allowPastInteraction is false\n if (isPastDate(dateObj.date) && !isToday(dateObj.date) && !allowPastInteraction) {\n return;\n }\n if (daySelector) {\n setSelectedDate(dateObj.date);\n }\n // Defer the callback to allow React to re-render first\n setTimeout(() => {\n onDayClick === null || onDayClick === void 0 ? void 0 : onDayClick(dateObj.date);\n }, 0);\n }, children: [jsx(\"div\", { className: \"month-calendar-date-number-container\", children: jsx(\"span\", { className: `month-calendar-date-number ${isToday(dateObj.date) ? 'month-calendar-today-number' : ''}`, children: dateObj.day }) }), jsxs(\"div\", { className: \"month-calendar-events-container\", children: [dateEvents\n .slice(0, dateEvents.length > maxEventsPerDay ? maxEventsPerDay - 1 : maxEventsPerDay)\n .map((event, eventIndex) => (jsxs(\"div\", { className: `\n month-calendar-event \n ${isFutureDate(event.date) ? 'month-calendar-future-event' : ''} \n ${event.strikethrough ? 'month-calendar-cancelled-event' : ''}\n `, style: event.style, onClick: (e) => {\n e.stopPropagation();\n if (onEventClick) {\n onEventClick(event);\n }\n }, title: event.title, children: [jsx(\"span\", { className: \"month-calendar-event-dot\", style: { backgroundColor: event.color } }), jsx(\"span\", { className: `month-calendar-event-title ${ellipsis ? 'month-calendar-ellipsis' : ''}`, children: event.title })] }, eventIndex))), dateEvents.length > maxEventsPerDay && (jsxs(\"div\", { className: \"month-calendar-more-events\", onClick: (e) => {\n e.stopPropagation();\n if (onMoreEventsClick) {\n onMoreEventsClick(dateObj.date, dateEvents);\n }\n }, children: [\"+\", dateEvents.length - maxEventsPerDay + 1, \" \", locale.moreText] }))] })] }, index));\n }) })] }));\n};\n\n// Simple date utility functions to replace dayjs\nconst getWeekStart = (date) => {\n const d = new Date(date);\n const day = d.getDay();\n const diff = d.getDate() - day;\n return new Date(d.setDate(diff));\n};\nconst addDays = (date, days) => {\n const result = new Date(date);\n result.setDate(result.getDate() + days);\n return result;\n};\nconst formatDate = (date, format) => {\n const day = date.getDate();\n const dayName = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'][date.getDay()];\n if (format === 'YYYY-MM-DD') {\n return date.toISOString().split('T')[0];\n }\n if (format === 'ddd') {\n return dayName;\n }\n if (format === 'D') {\n return day.toString();\n }\n return date.toISOString();\n};\nconst WeekCalendar = ({ date, events, locale = en, onEventClick, onDayClick, onSelectSlot, theme = 'light', allowPastInteraction = false, }) => {\n const bodyRef = React.useRef(null);\n const headerRef = React.useRef(null);\n // Adjust header padding to account for scrollbar\n React.useEffect(() => {\n const adjustScrollbar = () => {\n if (bodyRef.current && headerRef.current) {\n const bodyElement = bodyRef.current;\n const headerElement = headerRef.current;\n const scrollbarWidth = bodyElement.offsetWidth - bodyElement.clientWidth;\n headerElement.style.paddingRight = `${scrollbarWidth}px`;\n }\n };\n adjustScrollbar();\n window.addEventListener('resize', adjustScrollbar);\n return () => window.removeEventListener('resize', adjustScrollbar);\n }, []);\n // Scroll to 9am on mount\n React.useEffect(() => {\n if (bodyRef.current) {\n // 9am is the 4th time slot (6am=0, 7am=1, 8am=2, 9am=3)\n // Each time slot is 80px tall\n bodyRef.current.scrollTop = 3 * 80;\n }\n }, [date]); // Re-scroll when date changes\n const weekStart = getWeekStart(date);\n const weekDays = Array.from({ length: 7 }, (_, i) => addDays(weekStart, i));\n // Group events by day\n const eventsByDay = useMemo(() => {\n const grouped = {};\n events.forEach((event) => {\n const eventDate = formatDate(event.date, 'YYYY-MM-DD');\n if (!grouped[eventDate]) {\n grouped[eventDate] = [];\n }\n grouped[eventDate].push(event);\n });\n return grouped;\n }, [events]);\n // Time slots from 6 AM to 10 PM\n const timeSlots = Array.from({ length: 17 }, (_, i) => i + 6); // 6-22 (6 AM to 10 PM)\n const formatHour = (hour) => {\n return locale.formatTime\n ? locale.formatTime(new Date(2000, 0, 1, hour, 0))\n : `${hour === 0 ? 12 : hour > 12 ? hour - 12 : hour}:00 ${hour < 12 ? 'AM' : 'PM'}`;\n };\n const getEventsForDayAndHour = (dayStr, hour) => {\n const dayEvents = eventsByDay[dayStr] || [];\n return dayEvents.filter((event) => {\n const eventHour = event.date.getHours();\n return eventHour === hour;\n });\n };\n return (jsxs(\"div\", { className: `week-calendar calendar-${theme}`, children: [jsxs(\"div\", { className: \"week-calendar-header\", ref: headerRef, children: [jsx(\"div\", { className: \"week-calendar-time-column\" }), weekDays.map((day) => {\n const isPast = isPastDate(day);\n const isTodayDate = isToday(day);\n return (jsxs(\"div\", { className: `week-calendar-day-header ${isPast ? `week-calendar-day-header-past${!allowPastInteraction ? ' week-calendar-day-header-past-non-interactive' : ''}` : ''}`, onClick: () => {\n // Prevent interaction with past day headers when allowPastInteraction is false\n if (isPast && !allowPastInteraction) {\n return;\n }\n onDayClick === null || onDayClick === void 0 ? void 0 : onDayClick(day);\n }, children: [jsx(\"div\", { className: `week-calendar-day-name ${isPast ? 'week-calendar-day-name-past' : ''}`, children: formatDate(day, 'ddd') }), jsx(\"div\", { className: `week-calendar-day-number ${isTodayDate ? 'week-calendar-day-number-today' : ''} ${isPast ? 'week-calendar-day-number-past' : ''}`, children: formatDate(day, 'D') })] }, formatDate(day, 'YYYY-MM-DD')));\n })] }), jsx(\"div\", { className: \"week-calendar-body\", ref: bodyRef, children: timeSlots.map((hour) => (jsxs(\"div\", { className: \"week-calendar-time-row\", children: [jsx(\"div\", { className: \"week-calendar-time-label\", children: formatHour(hour) }), weekDays.map((day) => {\n const dayStr = formatDate(day, 'YYYY-MM-DD');\n const hourEvents = getEventsForDayAndHour(dayStr, hour);\n const isPast = isPastDate(day) && !isToday(day);\n return (jsx(\"div\", { className: `week-calendar-time-cell ${isPast ? `week-calendar-time-cell-past${!allowPastInteraction ? ' week-calendar-time-cell-non-interactive' : ''}` : ''}`, onClick: (e) => {\n // Prevent interaction with past time slots when allowPastInteraction is false\n if (isPast && !allowPastInteraction) {\n return;\n }\n // Only trigger if clicking on empty space, not on an event\n if (onSelectSlot &&\n (e.target === e.currentTarget ||\n e.target.classList.contains('week-calendar-time-cell'))) {\n // Create start and end dates for the time slot\n const start = new Date(day);\n start.setHours(hour, 0, 0, 0);\n const end = new Date(day);\n end.setHours(hour + 1, 0, 0, 0);\n onSelectSlot({ start, end });\n }\n }, children: hourEvents.map((event, idx) => {\n const eventClasses = ['week-calendar-event'];\n if (event.strikethrough) {\n eventClasses.push('week-calendar-event-cancelled');\n }\n return (jsxs(\"div\", { className: eventClasses.join(' '), style: event.style, title: event.title, onClick: (e) => {\n e.stopPropagation();\n onEventClick === null || onEventClick === void 0 ? void 0 : onEventClick(event);\n }, children: [jsx(\"div\", { className: \"week-calendar-event-dot\", style: { backgroundColor: event.color || '#bfbfbf' } }), jsx(\"div\", { className: \"week-calendar-event-title\", children: event.title })] }, idx));\n }) }, `${dayStr}-${hour}`));\n })] }, hour))) })] }));\n};\n\nexport { MonthCalendar, WeekCalendar, en, fr };\n//# sourceMappingURL=index.esm.js.map\n"],"names":["isToday","date","isEqual","a","b","acopy","bcopy","isFutureDate","today","checkDate","isPastDate","getEventsForDate","events","event","getDaysInMonth","year","month","getFirstDayOfMonth","daysShort$1","monthsLong$1","moreText$1","formatTime$1","options","en","daysShort","monthsLong","moreText","formatTime","fr","generateCalendarGrid","daysInMonth","firstDayOfMonth","prevMonthDays","prevMonth","prevMonthYear","daysInPrevMonth","i","day","currentMonthDays","nextMonthDays","daysToAdd","nextMonth","nextMonthYear","MonthCalendar","maxEventsPerDay","onEventClick","onDayClick","onMoreEventsClick","header","daySelector","locale","ellipsis","theme","allowPastInteraction","selectedDate","setSelectedDate","useState","jsxs","jsx","index","dateObj","dateEvents","eventIndex","e","getWeekStart","d","diff","addDays","days","result","formatDate","format","dayName","WeekCalendar","onSelectSlot","bodyRef","React","headerRef","adjustScrollbar","bodyElement","headerElement","scrollbarWidth","weekStart","weekDays","_","eventsByDay","useMemo","grouped","eventDate","timeSlots","formatHour","hour","getEventsForDayAndHour","dayStr","isPast","isTodayDate","hourEvents","start","end","idx","eventClasses"],"mappings":"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","x_google_ignoreList":[0]}