best-react-datepicker 0.2.0

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 (46) hide show
  1. package/dist/chunk-A3NQUSC5.cjs +1155 -0
  2. package/dist/chunk-A3NQUSC5.cjs.map +1 -0
  3. package/dist/chunk-FBN3SFQJ.js +1140 -0
  4. package/dist/chunk-FBN3SFQJ.js.map +1 -0
  5. package/dist/chunk-HI4J64KK.cjs +592 -0
  6. package/dist/chunk-HI4J64KK.cjs.map +1 -0
  7. package/dist/chunk-NF5M43IO.js +49 -0
  8. package/dist/chunk-NF5M43IO.js.map +1 -0
  9. package/dist/chunk-QW2CUEX4.js +117 -0
  10. package/dist/chunk-QW2CUEX4.js.map +1 -0
  11. package/dist/chunk-R7HLYS5V.cjs +120 -0
  12. package/dist/chunk-R7HLYS5V.cjs.map +1 -0
  13. package/dist/chunk-W6KEY2SO.js +526 -0
  14. package/dist/chunk-W6KEY2SO.js.map +1 -0
  15. package/dist/chunk-WBWQ5RKN.cjs +51 -0
  16. package/dist/chunk-WBWQ5RKN.cjs.map +1 -0
  17. package/dist/hooks.cjs +66 -0
  18. package/dist/hooks.cjs.map +1 -0
  19. package/dist/hooks.d.cts +555 -0
  20. package/dist/hooks.d.ts +555 -0
  21. package/dist/hooks.js +5 -0
  22. package/dist/hooks.js.map +1 -0
  23. package/dist/index.cjs +1502 -0
  24. package/dist/index.cjs.map +1 -0
  25. package/dist/index.d.cts +239 -0
  26. package/dist/index.d.ts +239 -0
  27. package/dist/index.js +1303 -0
  28. package/dist/index.js.map +1 -0
  29. package/dist/locales.cjs +16 -0
  30. package/dist/locales.cjs.map +1 -0
  31. package/dist/locales.d.cts +6 -0
  32. package/dist/locales.d.ts +6 -0
  33. package/dist/locales.js +3 -0
  34. package/dist/locales.js.map +1 -0
  35. package/dist/presets-B8wfaoTj.d.cts +54 -0
  36. package/dist/presets-CB5Rt4Li.d.ts +54 -0
  37. package/dist/styles.css +751 -0
  38. package/dist/types-DA2PcEiy.d.cts +104 -0
  39. package/dist/types-DA2PcEiy.d.ts +104 -0
  40. package/dist/utils.cjs +282 -0
  41. package/dist/utils.cjs.map +1 -0
  42. package/dist/utils.d.cts +57 -0
  43. package/dist/utils.d.ts +57 -0
  44. package/dist/utils.js +5 -0
  45. package/dist/utils.js.map +1 -0
  46. package/package.json +79 -0
@@ -0,0 +1,751 @@
1
+ :root {
2
+ /* === Accent (change this one variable to theme everything) === */
3
+ --brdp-color-accent: #2563eb;
4
+ --brdp-color-accent-light: #dbeafe;
5
+ --brdp-color-accent-dark: #1d4ed8;
6
+
7
+ /* === Backgrounds === */
8
+ --brdp-color-bg: #ffffff;
9
+ --brdp-color-bg-hover: #f3f4f6;
10
+ --brdp-color-bg-disabled: #f9fafb;
11
+ --brdp-color-bg-selected: var(--brdp-color-accent);
12
+ --brdp-color-bg-selected-hover: var(--brdp-color-accent-dark);
13
+ --brdp-color-bg-range: var(--brdp-color-accent-light);
14
+ --brdp-color-bg-range-hover: #bfdbfe;
15
+ --brdp-color-bg-today: #eff6ff;
16
+ --brdp-color-bg-highlighted: #fef3c7;
17
+ --brdp-color-bg-popover: #ffffff;
18
+ --brdp-color-bg-preset-hover: #f3f4f6;
19
+ --brdp-color-bg-preset-active: #eff6ff;
20
+ --brdp-color-bg-time-option-hover: #f3f4f6;
21
+ --brdp-color-bg-time-option-active: var(--brdp-color-accent);
22
+
23
+ /* === Text === */
24
+ --brdp-color-text: #111827;
25
+ --brdp-color-text-muted: #6b7280;
26
+ --brdp-color-text-disabled: #d1d5db;
27
+ --brdp-color-text-selected: #ffffff;
28
+ --brdp-color-text-outside: #d1d5db;
29
+ --brdp-color-text-today: var(--brdp-color-accent);
30
+ --brdp-color-text-range: #1e40af;
31
+ --brdp-color-text-weekend: inherit;
32
+ --brdp-color-text-week-number: #9ca3af;
33
+ --brdp-color-text-header: #111827;
34
+ --brdp-color-text-placeholder: #9ca3af;
35
+ --brdp-color-text-time-active: #ffffff;
36
+
37
+ /* === Borders === */
38
+ --brdp-color-border: #e5e7eb;
39
+ --brdp-color-border-input: #d1d5db;
40
+ --brdp-color-border-input-focus: var(--brdp-color-accent);
41
+ --brdp-color-border-today: var(--brdp-color-accent);
42
+ --brdp-color-border-popover: #e5e7eb;
43
+
44
+ /* === Sizing === */
45
+ --brdp-cell-size: 40px;
46
+ --brdp-header-height: 48px;
47
+ --brdp-input-height: 40px;
48
+ --brdp-time-column-width: 60px;
49
+ --brdp-time-column-height: 200px;
50
+ --brdp-preset-width: 160px;
51
+
52
+ /* === Spacing === */
53
+ --brdp-spacing-xs: 4px;
54
+ --brdp-spacing-sm: 8px;
55
+ --brdp-spacing-md: 12px;
56
+ --brdp-spacing-lg: 16px;
57
+ --brdp-spacing-xl: 24px;
58
+ --brdp-cell-gap: 2px;
59
+
60
+ /* === Typography === */
61
+ --brdp-font-family: inherit;
62
+ --brdp-font-size: 14px;
63
+ --brdp-font-size-sm: 12px;
64
+ --brdp-font-size-lg: 16px;
65
+ --brdp-font-weight-normal: 400;
66
+ --brdp-font-weight-medium: 500;
67
+ --brdp-font-weight-bold: 600;
68
+
69
+ /* === Border Radius === */
70
+ --brdp-radius-sm: 4px;
71
+ --brdp-radius-md: 6px;
72
+ --brdp-radius-lg: 8px;
73
+ --brdp-radius-xl: 12px;
74
+ --brdp-radius-full: 9999px;
75
+ --brdp-radius-day: var(--brdp-radius-full);
76
+ --brdp-radius-input: var(--brdp-radius-md);
77
+ --brdp-radius-popover: var(--brdp-radius-xl);
78
+
79
+ /* === Shadows === */
80
+ --brdp-shadow-popover: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
81
+ --brdp-shadow-input-focus: 0 0 0 3px rgb(37 99 235 / 0.1);
82
+
83
+ /* === Transitions === */
84
+ --brdp-transition-duration: 150ms;
85
+ --brdp-transition-timing: ease-in-out;
86
+
87
+ /* === Z-Index === */
88
+ --brdp-z-popover: 1000;
89
+ --brdp-z-portal: 1100;
90
+ }
91
+
92
+ /* === Dark Mode === */
93
+ [data-brdp-theme="dark"],
94
+ .brdp-dark {
95
+ --brdp-color-bg: #1f2937;
96
+ --brdp-color-bg-hover: #374151;
97
+ --brdp-color-bg-disabled: #1f2937;
98
+ --brdp-color-bg-selected: #3b82f6;
99
+ --brdp-color-bg-selected-hover: #2563eb;
100
+ --brdp-color-bg-range: #1e3a5f;
101
+ --brdp-color-bg-range-hover: #1e40af;
102
+ --brdp-color-bg-today: #1e3a5f;
103
+ --brdp-color-bg-highlighted: #78350f;
104
+ --brdp-color-bg-popover: #1f2937;
105
+ --brdp-color-bg-preset-hover: #374151;
106
+ --brdp-color-bg-preset-active: #1e3a5f;
107
+ --brdp-color-bg-time-option-hover: #374151;
108
+
109
+ --brdp-color-text: #f9fafb;
110
+ --brdp-color-text-muted: #9ca3af;
111
+ --brdp-color-text-disabled: #4b5563;
112
+ --brdp-color-text-outside: #4b5563;
113
+ --brdp-color-text-today: #60a5fa;
114
+ --brdp-color-text-header: #f9fafb;
115
+ --brdp-color-text-placeholder: #6b7280;
116
+
117
+ --brdp-color-border: #374151;
118
+ --brdp-color-border-input: #4b5563;
119
+ --brdp-color-border-input-focus: #3b82f6;
120
+ --brdp-color-border-popover: #374151;
121
+
122
+ --brdp-shadow-popover: 0 10px 15px -3px rgb(0 0 0 / 0.3), 0 4px 6px -4px rgb(0 0 0 / 0.3);
123
+ }
124
+
125
+ /* === Global scrollbar hide === */
126
+ .brdp-root *,
127
+ .brdp-popover * {
128
+ scrollbar-width: none;
129
+ -ms-overflow-style: none;
130
+ }
131
+
132
+ .brdp-root *::-webkit-scrollbar,
133
+ .brdp-popover *::-webkit-scrollbar {
134
+ display: none;
135
+ }
136
+
137
+ /* === Root container === */
138
+ .brdp-root {
139
+ position: relative;
140
+ display: inline-block;
141
+ font-family: var(--brdp-font-family);
142
+ font-size: var(--brdp-font-size);
143
+ color: var(--brdp-color-text);
144
+ }
145
+
146
+ /* === Input === */
147
+ .brdp-input {
148
+ height: var(--brdp-input-height);
149
+ padding: var(--brdp-spacing-sm) var(--brdp-spacing-md);
150
+ border: 1px solid var(--brdp-color-border-input);
151
+ border-radius: var(--brdp-radius-input);
152
+ background: var(--brdp-color-bg);
153
+ color: var(--brdp-color-text);
154
+ font-family: var(--brdp-font-family);
155
+ font-size: var(--brdp-font-size);
156
+ outline: none;
157
+ transition: border-color var(--brdp-transition-duration) var(--brdp-transition-timing),
158
+ box-shadow var(--brdp-transition-duration) var(--brdp-transition-timing);
159
+ box-sizing: border-box;
160
+ width: 100%;
161
+ }
162
+
163
+ .brdp-input::placeholder {
164
+ color: var(--brdp-color-text-placeholder);
165
+ }
166
+
167
+ .brdp-input:focus {
168
+ border-color: var(--brdp-color-border-input-focus);
169
+ box-shadow: var(--brdp-shadow-input-focus);
170
+ }
171
+
172
+ .brdp-input:disabled {
173
+ background: var(--brdp-color-bg-disabled);
174
+ color: var(--brdp-color-text-disabled);
175
+ cursor: not-allowed;
176
+ }
177
+
178
+ /* === Range Input === */
179
+ .brdp-range-input {
180
+ display: flex;
181
+ align-items: center;
182
+ gap: var(--brdp-spacing-sm);
183
+ }
184
+
185
+ .brdp-range-input__start,
186
+ .brdp-range-input__end {
187
+ flex: 1;
188
+ min-width: 0;
189
+ }
190
+
191
+ .brdp-range-input__separator {
192
+ color: var(--brdp-color-text-muted);
193
+ flex-shrink: 0;
194
+ }
195
+
196
+ /* === Footer === */
197
+ .brdp-footer {
198
+ display: flex;
199
+ justify-content: flex-end;
200
+ gap: var(--brdp-spacing-sm);
201
+ padding: var(--brdp-spacing-sm) var(--brdp-spacing-md);
202
+ border-top: 1px solid var(--brdp-color-border);
203
+ }
204
+
205
+ .brdp-footer__btn {
206
+ padding: var(--brdp-spacing-xs) var(--brdp-spacing-md);
207
+ border: none;
208
+ border-radius: var(--brdp-radius-sm);
209
+ background: none;
210
+ color: var(--brdp-color-accent);
211
+ font-family: var(--brdp-font-family);
212
+ font-size: var(--brdp-font-size-sm);
213
+ font-weight: var(--brdp-font-weight-medium);
214
+ cursor: pointer;
215
+ transition: background var(--brdp-transition-duration) var(--brdp-transition-timing);
216
+ }
217
+
218
+ .brdp-footer__btn:hover {
219
+ background: var(--brdp-color-bg-hover);
220
+ }
221
+
222
+ .brdp-footer__btn--apply {
223
+ background: var(--brdp-color-accent);
224
+ color: var(--brdp-color-text-selected);
225
+ border-radius: var(--brdp-radius-md);
226
+ }
227
+
228
+ .brdp-footer__btn--apply:hover {
229
+ background: var(--brdp-color-accent-dark);
230
+ }
231
+
232
+ /* === Popover === */
233
+ .brdp-popover {
234
+ background: var(--brdp-color-bg-popover);
235
+ border: 1px solid var(--brdp-color-border-popover);
236
+ border-radius: var(--brdp-radius-popover);
237
+ box-shadow: var(--brdp-shadow-popover);
238
+ overflow: hidden;
239
+ }
240
+
241
+ /* === Range Popover Layout === */
242
+ .brdp-range-popover {
243
+ display: flex;
244
+ }
245
+
246
+ /* === DateTime Layout === */
247
+ .brdp-datetime {
248
+ display: flex;
249
+ flex-direction: column;
250
+ }
251
+
252
+ .brdp-datetime__tabs {
253
+ display: flex;
254
+ border-bottom: 1px solid var(--brdp-color-border);
255
+ }
256
+
257
+ .brdp-datetime__tab {
258
+ flex: 1;
259
+ padding: var(--brdp-spacing-sm) var(--brdp-spacing-md);
260
+ border: none;
261
+ background: none;
262
+ color: var(--brdp-color-text-muted);
263
+ font-family: var(--brdp-font-family);
264
+ font-size: var(--brdp-font-size-sm);
265
+ font-weight: var(--brdp-font-weight-medium);
266
+ cursor: pointer;
267
+ transition: color var(--brdp-transition-duration) var(--brdp-transition-timing),
268
+ border-color var(--brdp-transition-duration) var(--brdp-transition-timing);
269
+ border-bottom: 2px solid transparent;
270
+ margin-bottom: -1px;
271
+ }
272
+
273
+ .brdp-datetime__tab--active {
274
+ color: var(--brdp-color-accent);
275
+ border-bottom-color: var(--brdp-color-accent);
276
+ }
277
+
278
+ .brdp-datetime__tab:hover {
279
+ color: var(--brdp-color-text);
280
+ }
281
+
282
+ /* === Calendar Header === */
283
+ .brdp-header {
284
+ display: flex;
285
+ align-items: center;
286
+ justify-content: space-between;
287
+ height: var(--brdp-header-height);
288
+ padding: 0 var(--brdp-spacing-sm);
289
+ }
290
+
291
+ .brdp-header__label {
292
+ font-size: var(--brdp-font-size);
293
+ font-weight: var(--brdp-font-weight-bold);
294
+ color: var(--brdp-color-text-header);
295
+ background: none;
296
+ border: none;
297
+ cursor: pointer;
298
+ padding: var(--brdp-spacing-xs) var(--brdp-spacing-sm);
299
+ border-radius: var(--brdp-radius-sm);
300
+ font-family: var(--brdp-font-family);
301
+ transition: background var(--brdp-transition-duration) var(--brdp-transition-timing);
302
+ }
303
+
304
+ .brdp-header__label:hover {
305
+ background: var(--brdp-color-bg-hover);
306
+ }
307
+
308
+ .brdp-header__nav-btn {
309
+ display: inline-flex;
310
+ align-items: center;
311
+ justify-content: center;
312
+ width: 32px;
313
+ height: 32px;
314
+ padding: 0;
315
+ border: none;
316
+ border-radius: var(--brdp-radius-full);
317
+ background: none;
318
+ color: var(--brdp-color-text-muted);
319
+ cursor: pointer;
320
+ transition: background var(--brdp-transition-duration) var(--brdp-transition-timing),
321
+ color var(--brdp-transition-duration) var(--brdp-transition-timing);
322
+ }
323
+
324
+ .brdp-header__nav-btn:hover {
325
+ background: var(--brdp-color-bg-hover);
326
+ color: var(--brdp-color-text);
327
+ }
328
+
329
+ .brdp-header__nav-btn:disabled {
330
+ color: var(--brdp-color-text-disabled);
331
+ cursor: not-allowed;
332
+ }
333
+
334
+ /* === Month/Year Dropdowns === */
335
+ .brdp-header__selects {
336
+ display: flex;
337
+ align-items: center;
338
+ gap: 2px;
339
+ }
340
+
341
+ .brdp-header__select-wrapper {
342
+ position: relative;
343
+ display: inline-flex;
344
+ align-items: center;
345
+ }
346
+
347
+ .brdp-header__select {
348
+ font-size: var(--brdp-font-size);
349
+ font-weight: var(--brdp-font-weight-bold);
350
+ font-family: var(--brdp-font-family);
351
+ color: var(--brdp-color-text-header);
352
+ background: transparent;
353
+ border: 1px solid transparent;
354
+ border-radius: var(--brdp-radius-md);
355
+ padding: 4px 20px 4px 8px;
356
+ cursor: pointer;
357
+ outline: none;
358
+ transition: background var(--brdp-transition-duration) var(--brdp-transition-timing),
359
+ border-color var(--brdp-transition-duration) var(--brdp-transition-timing);
360
+ -webkit-appearance: none;
361
+ -moz-appearance: none;
362
+ appearance: none;
363
+ line-height: 1.4;
364
+ }
365
+
366
+ .brdp-header__select:hover {
367
+ background: var(--brdp-color-bg-hover);
368
+ }
369
+
370
+ .brdp-header__select:focus {
371
+ border-color: var(--brdp-color-accent);
372
+ background: var(--brdp-color-bg-hover);
373
+ }
374
+
375
+ .brdp-header__select-chevron {
376
+ position: absolute;
377
+ right: 6px;
378
+ top: 50%;
379
+ transform: translateY(-50%);
380
+ pointer-events: none;
381
+ color: var(--brdp-color-text-muted);
382
+ display: flex;
383
+ align-items: center;
384
+ }
385
+
386
+ /* === Calendar === */
387
+ .brdp-calendar {
388
+ padding: var(--brdp-spacing-md);
389
+ }
390
+
391
+ .brdp-calendar__months {
392
+ display: flex;
393
+ gap: var(--brdp-spacing-lg);
394
+ }
395
+
396
+ .brdp-calendar__month {
397
+ min-width: calc(var(--brdp-cell-size) * 7 + var(--brdp-cell-gap) * 6);
398
+ }
399
+
400
+ /* === Grid === */
401
+ .brdp-grid {
402
+ border-collapse: separate;
403
+ border-spacing: var(--brdp-cell-gap);
404
+ }
405
+
406
+ .brdp-grid__weekdays {
407
+ height: var(--brdp-cell-size);
408
+ }
409
+
410
+ .brdp-grid__weekday {
411
+ width: var(--brdp-cell-size);
412
+ font-size: var(--brdp-font-size-sm);
413
+ font-weight: var(--brdp-font-weight-medium);
414
+ color: var(--brdp-color-text-muted);
415
+ text-align: center;
416
+ padding: 0;
417
+ }
418
+
419
+ .brdp-grid__week {
420
+ height: var(--brdp-cell-size);
421
+ }
422
+
423
+ /* === Week Number === */
424
+ .brdp-week-number {
425
+ width: var(--brdp-cell-size);
426
+ font-size: var(--brdp-font-size-sm);
427
+ color: var(--brdp-color-text-week-number);
428
+ text-align: center;
429
+ padding: 0;
430
+ }
431
+
432
+ .brdp-week-number--header {
433
+ font-weight: var(--brdp-font-weight-medium);
434
+ }
435
+
436
+ /* === Day Cell === */
437
+ .brdp-day {
438
+ padding: 0;
439
+ text-align: center;
440
+ vertical-align: middle;
441
+ }
442
+
443
+ .brdp-day--empty {
444
+ pointer-events: none;
445
+ }
446
+
447
+ .brdp-day__btn {
448
+ display: inline-flex;
449
+ align-items: center;
450
+ justify-content: center;
451
+ width: var(--brdp-cell-size);
452
+ height: var(--brdp-cell-size);
453
+ padding: 0;
454
+ border: none;
455
+ border-radius: var(--brdp-radius-day);
456
+ background: transparent;
457
+ color: var(--brdp-color-text);
458
+ font-family: var(--brdp-font-family);
459
+ font-size: var(--brdp-font-size);
460
+ font-weight: var(--brdp-font-weight-normal);
461
+ cursor: pointer;
462
+ transition: background var(--brdp-transition-duration) var(--brdp-transition-timing),
463
+ color var(--brdp-transition-duration) var(--brdp-transition-timing),
464
+ box-shadow var(--brdp-transition-duration) var(--brdp-transition-timing);
465
+ outline: none;
466
+ position: relative;
467
+ }
468
+
469
+ .brdp-day__btn:hover:not(:disabled) {
470
+ background: var(--brdp-color-bg-hover);
471
+ }
472
+
473
+ .brdp-day__btn:focus-visible {
474
+ box-shadow: 0 0 0 2px var(--brdp-color-accent);
475
+ }
476
+
477
+ /* === States === */
478
+ .brdp-day--today .brdp-day__btn {
479
+ background: var(--brdp-color-bg-today);
480
+ color: var(--brdp-color-text-today);
481
+ font-weight: var(--brdp-font-weight-bold);
482
+ }
483
+
484
+ .brdp-day--selected .brdp-day__btn {
485
+ background: var(--brdp-color-bg-selected);
486
+ color: var(--brdp-color-text-selected);
487
+ font-weight: var(--brdp-font-weight-medium);
488
+ }
489
+
490
+ .brdp-day--selected .brdp-day__btn:hover {
491
+ background: var(--brdp-color-bg-selected-hover);
492
+ }
493
+
494
+ .brdp-day--disabled .brdp-day__btn {
495
+ color: var(--brdp-color-text-disabled);
496
+ cursor: not-allowed;
497
+ pointer-events: none;
498
+ }
499
+
500
+ .brdp-day--outside .brdp-day__btn {
501
+ color: var(--brdp-color-text-outside);
502
+ }
503
+
504
+ .brdp-day--weekend .brdp-day__btn {
505
+ color: var(--brdp-color-text-weekend);
506
+ }
507
+
508
+ .brdp-day--highlighted .brdp-day__btn {
509
+ background: var(--brdp-color-bg-highlighted);
510
+ }
511
+
512
+ .brdp-day--focused .brdp-day__btn {
513
+ box-shadow: 0 0 0 2px var(--brdp-color-accent);
514
+ }
515
+
516
+ /* === Range Selection === */
517
+ .brdp-day--range-start .brdp-day__btn {
518
+ background: var(--brdp-color-bg-selected);
519
+ color: var(--brdp-color-text-selected);
520
+ border-radius: var(--brdp-radius-day) 0 0 var(--brdp-radius-day);
521
+ }
522
+
523
+ .brdp-day--range-end .brdp-day__btn {
524
+ background: var(--brdp-color-bg-selected);
525
+ color: var(--brdp-color-text-selected);
526
+ border-radius: 0 var(--brdp-radius-day) var(--brdp-radius-day) 0;
527
+ }
528
+
529
+ .brdp-day--range-start.brdp-day--range-end .brdp-day__btn {
530
+ border-radius: var(--brdp-radius-day);
531
+ }
532
+
533
+ .brdp-day--range-middle .brdp-day__btn {
534
+ background: var(--brdp-color-bg-range);
535
+ color: var(--brdp-color-text-range);
536
+ border-radius: 0;
537
+ }
538
+
539
+ .brdp-day--range-middle .brdp-day__btn:hover {
540
+ background: var(--brdp-color-bg-range-hover);
541
+ }
542
+
543
+ .brdp-day--range-preview .brdp-day__btn {
544
+ background: var(--brdp-color-bg-range);
545
+ border-radius: 0;
546
+ opacity: 0.6;
547
+ }
548
+
549
+ /* === Time Picker === */
550
+ .brdp-time {
551
+ display: flex;
552
+ gap: var(--brdp-spacing-xs);
553
+ padding: var(--brdp-spacing-md);
554
+ }
555
+
556
+ .brdp-time__column {
557
+ width: var(--brdp-time-column-width);
558
+ max-height: var(--brdp-time-column-height);
559
+ overflow-y: auto;
560
+ display: flex;
561
+ flex-direction: column;
562
+ gap: var(--brdp-spacing-xs);
563
+ scroll-behavior: smooth;
564
+ }
565
+
566
+ .brdp-time__option {
567
+ display: flex;
568
+ align-items: center;
569
+ justify-content: center;
570
+ padding: var(--brdp-spacing-xs) var(--brdp-spacing-sm);
571
+ border: none;
572
+ border-radius: var(--brdp-radius-sm);
573
+ background: transparent;
574
+ color: var(--brdp-color-text);
575
+ font-family: var(--brdp-font-family);
576
+ font-size: var(--brdp-font-size);
577
+ cursor: pointer;
578
+ transition: background var(--brdp-transition-duration) var(--brdp-transition-timing);
579
+ min-height: 32px;
580
+ flex-shrink: 0;
581
+ }
582
+
583
+ .brdp-time__option:hover {
584
+ background: var(--brdp-color-bg-time-option-hover);
585
+ }
586
+
587
+ .brdp-time__option--active {
588
+ background: var(--brdp-color-bg-time-option-active);
589
+ color: var(--brdp-color-text-time-active);
590
+ font-weight: var(--brdp-font-weight-medium);
591
+ }
592
+
593
+ .brdp-time__option--active:hover {
594
+ background: var(--brdp-color-bg-selected-hover);
595
+ }
596
+
597
+ /* === Month Grid === */
598
+ .brdp-month-picker,
599
+ .brdp-year-picker {
600
+ padding: var(--brdp-spacing-md);
601
+ }
602
+
603
+ .brdp-month-grid,
604
+ .brdp-year-grid {
605
+ display: grid;
606
+ grid-template-columns: repeat(3, 1fr);
607
+ gap: var(--brdp-spacing-sm);
608
+ padding: var(--brdp-spacing-sm) 0;
609
+ }
610
+
611
+ .brdp-year-grid {
612
+ grid-template-columns: repeat(4, 1fr);
613
+ }
614
+
615
+ .brdp-month-grid__cell,
616
+ .brdp-year-grid__cell {
617
+ display: flex;
618
+ align-items: center;
619
+ justify-content: center;
620
+ padding: var(--brdp-spacing-sm) var(--brdp-spacing-md);
621
+ border: none;
622
+ border-radius: var(--brdp-radius-md);
623
+ background: transparent;
624
+ color: var(--brdp-color-text);
625
+ font-family: var(--brdp-font-family);
626
+ font-size: var(--brdp-font-size);
627
+ cursor: pointer;
628
+ transition: background var(--brdp-transition-duration) var(--brdp-transition-timing);
629
+ min-height: 40px;
630
+ }
631
+
632
+ .brdp-month-grid__cell:hover,
633
+ .brdp-year-grid__cell:hover {
634
+ background: var(--brdp-color-bg-hover);
635
+ }
636
+
637
+ .brdp-month-grid__cell--selected,
638
+ .brdp-year-grid__cell--selected {
639
+ background: var(--brdp-color-bg-selected);
640
+ color: var(--brdp-color-text-selected);
641
+ font-weight: var(--brdp-font-weight-medium);
642
+ }
643
+
644
+ .brdp-month-grid__cell--selected:hover,
645
+ .brdp-year-grid__cell--selected:hover {
646
+ background: var(--brdp-color-bg-selected-hover);
647
+ }
648
+
649
+ .brdp-month-grid__cell--disabled,
650
+ .brdp-year-grid__cell--disabled {
651
+ color: var(--brdp-color-text-disabled);
652
+ cursor: not-allowed;
653
+ pointer-events: none;
654
+ }
655
+
656
+ .brdp-year-grid__cell--current {
657
+ color: var(--brdp-color-text-today);
658
+ font-weight: var(--brdp-font-weight-bold);
659
+ }
660
+
661
+ /* === Presets Sidebar === */
662
+ .brdp-presets {
663
+ display: flex;
664
+ flex-direction: column;
665
+ gap: var(--brdp-spacing-xs);
666
+ padding: var(--brdp-spacing-md);
667
+ border-right: 1px solid var(--brdp-color-border);
668
+ min-width: var(--brdp-preset-width);
669
+ }
670
+
671
+ .brdp-presets__item {
672
+ padding: var(--brdp-spacing-sm) var(--brdp-spacing-md);
673
+ border: none;
674
+ border-radius: var(--brdp-radius-sm);
675
+ background: transparent;
676
+ color: var(--brdp-color-text);
677
+ font-family: var(--brdp-font-family);
678
+ font-size: var(--brdp-font-size-sm);
679
+ text-align: left;
680
+ cursor: pointer;
681
+ transition: background var(--brdp-transition-duration) var(--brdp-transition-timing);
682
+ white-space: nowrap;
683
+ }
684
+
685
+ .brdp-presets__item:hover {
686
+ background: var(--brdp-color-bg-preset-hover);
687
+ }
688
+
689
+ .brdp-presets__item--active {
690
+ background: var(--brdp-color-bg-preset-active);
691
+ color: var(--brdp-color-accent);
692
+ font-weight: var(--brdp-font-weight-medium);
693
+ }
694
+
695
+ /* === Presets Bottom (compact mode) === */
696
+ .brdp-presets--bottom {
697
+ flex-direction: row;
698
+ flex-wrap: wrap;
699
+ border-right: none;
700
+ border-top: 1px solid var(--brdp-color-border);
701
+ min-width: 0;
702
+ }
703
+
704
+ /* === Optional Animations === */
705
+ @keyframes brdp-fade-in {
706
+ from { opacity: 0; transform: translateY(-4px); }
707
+ to { opacity: 1; transform: translateY(0); }
708
+ }
709
+
710
+ @keyframes brdp-fade-out {
711
+ from { opacity: 1; transform: translateY(0); }
712
+ to { opacity: 0; transform: translateY(-4px); }
713
+ }
714
+
715
+ @keyframes brdp-scale-in {
716
+ from { opacity: 0; transform: scale(0.95); }
717
+ to { opacity: 1; transform: scale(1); }
718
+ }
719
+
720
+ .brdp-popover {
721
+ animation: brdp-fade-in var(--brdp-transition-duration) var(--brdp-transition-timing);
722
+ }
723
+
724
+ /* Slide transition for month change */
725
+ @keyframes brdp-slide-left {
726
+ from { opacity: 0; transform: translateX(20px); }
727
+ to { opacity: 1; transform: translateX(0); }
728
+ }
729
+
730
+ @keyframes brdp-slide-right {
731
+ from { opacity: 0; transform: translateX(-20px); }
732
+ to { opacity: 1; transform: translateX(0); }
733
+ }
734
+
735
+ /* === RTL Support === */
736
+ [dir="rtl"] .brdp-day--range-start .brdp-day__btn {
737
+ border-radius: 0 var(--brdp-radius-day) var(--brdp-radius-day) 0;
738
+ }
739
+
740
+ [dir="rtl"] .brdp-day--range-end .brdp-day__btn {
741
+ border-radius: var(--brdp-radius-day) 0 0 var(--brdp-radius-day);
742
+ }
743
+
744
+ [dir="rtl"] .brdp-day--range-start.brdp-day--range-end .brdp-day__btn {
745
+ border-radius: var(--brdp-radius-day);
746
+ }
747
+
748
+ [dir="rtl"] .brdp-presets {
749
+ border-right: none;
750
+ border-left: 1px solid var(--brdp-color-border);
751
+ }