podo-ui 1.0.12 → 1.0.14

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.
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Podo UI DatePicker CSS v1.0.12
2
+ * Podo UI DatePicker CSS v1.0.14
3
3
  * https://podoui.com
4
4
  * MIT License
5
5
  */
@@ -197,6 +197,59 @@
197
197
  flex-shrink: 0;
198
198
  }
199
199
 
200
+ /* ============================================
201
+ Navigation (quickSelect + period mode, integrated in input)
202
+ ============================================ */
203
+ .podo-datepicker__input--with-nav {
204
+ padding: 0;
205
+ }
206
+
207
+ .podo-datepicker__nav-arrow {
208
+ display: flex;
209
+ align-items: center;
210
+ justify-content: center;
211
+ width: 40px;
212
+ min-height: 100%;
213
+ background: none;
214
+ border: none;
215
+ cursor: pointer;
216
+ transition: background 0.2s;
217
+ flex-shrink: 0;
218
+ }
219
+
220
+ .podo-datepicker__nav-arrow:hover:not(:disabled) {
221
+ background: var(--podo-default-hover);
222
+ }
223
+
224
+ .podo-datepicker__nav-arrow:disabled {
225
+ opacity: 0.4;
226
+ cursor: not-allowed;
227
+ }
228
+
229
+ .podo-datepicker__nav-arrow i {
230
+ font-size: 16px;
231
+ color: var(--podo-text-body);
232
+ }
233
+
234
+ .podo-datepicker__nav-arrow--left {
235
+ border-right: 1px solid var(--podo-border);
236
+ border-radius: var(--podo-radius-md) 0 0 var(--podo-radius-md);
237
+ }
238
+
239
+ .podo-datepicker__nav-arrow--right {
240
+ border-left: 1px solid var(--podo-border);
241
+ border-radius: 0 var(--podo-radius-md) var(--podo-radius-md) 0;
242
+ }
243
+
244
+ .podo-datepicker__preset-label {
245
+ font-size: var(--podo-font-size-md);
246
+ color: var(--podo-text-body);
247
+ white-space: nowrap;
248
+ flex-shrink: 0;
249
+ padding-left: var(--podo-spacing-3);
250
+ font-weight: 600;
251
+ }
252
+
200
253
  /* ============================================
201
254
  Dropdown
202
255
  ============================================ */
@@ -488,6 +541,57 @@
488
541
  background: var(--podo-primary-hover);
489
542
  }
490
543
 
544
+ /* ==============================================
545
+ Quick Select Panel
546
+ ============================================== */
547
+
548
+ .podo-datepicker__dropdown-body {
549
+ display: flex;
550
+ gap: var(--podo-spacing-4);
551
+ min-width: 0;
552
+ }
553
+
554
+ .podo-datepicker__quick-select-panel {
555
+ display: flex;
556
+ flex-direction: column;
557
+ gap: var(--podo-spacing-1);
558
+ min-width: 100px;
559
+ padding-right: var(--podo-spacing-4);
560
+ border-right: 1px solid var(--podo-border);
561
+ flex-shrink: 0;
562
+ }
563
+
564
+ .podo-datepicker__quick-select-item {
565
+ display: flex;
566
+ align-items: center;
567
+ padding: var(--podo-spacing-2) var(--podo-spacing-3);
568
+ background: none;
569
+ border: none;
570
+ border-radius: var(--podo-radius-sm);
571
+ cursor: pointer;
572
+ transition: background 0.2s, color 0.2s;
573
+ color: var(--podo-text-body);
574
+ white-space: nowrap;
575
+ text-align: left;
576
+ font-size: 14px;
577
+ line-height: 1.5;
578
+ }
579
+
580
+ .podo-datepicker__quick-select-item:hover:not(.podo-datepicker__quick-select-item--disabled):not(.podo-datepicker__quick-select-item--active) {
581
+ background: var(--podo-default-hover);
582
+ }
583
+
584
+ .podo-datepicker__quick-select-item--active {
585
+ color: var(--podo-primary);
586
+ background: var(--podo-primary-fill, rgba(124, 58, 237, 0.08));
587
+ font-weight: 600;
588
+ }
589
+
590
+ .podo-datepicker__quick-select-item--disabled {
591
+ color: var(--podo-text-disabled, #adb5bd);
592
+ cursor: not-allowed;
593
+ }
594
+
491
595
  /* ==============================================
492
596
  Responsive Styles (min 360px support)
493
597
  ============================================== */
@@ -497,6 +601,16 @@
497
601
  .podo-datepicker__period-calendar-right {
498
602
  display: none;
499
603
  }
604
+
605
+ .podo-datepicker__quick-select-panel {
606
+ min-width: 80px;
607
+ padding-right: var(--podo-spacing-3);
608
+ }
609
+
610
+ .podo-datepicker__quick-select-item {
611
+ font-size: 13px;
612
+ padding: var(--podo-spacing-2);
613
+ }
500
614
  }
501
615
 
502
616
  /* 480px 이하: padding/gap 축소 */
@@ -574,4 +688,20 @@
574
688
  height: 16px;
575
689
  font-size: 16px;
576
690
  }
691
+
692
+ .podo-datepicker__quick-select-panel {
693
+ display: none;
694
+ }
695
+
696
+ .podo-datepicker__nav-arrow {
697
+ width: 32px;
698
+ }
699
+
700
+ .podo-datepicker__nav-arrow i {
701
+ font-size: 14px;
702
+ }
703
+
704
+ .podo-datepicker__preset-label {
705
+ display: none;
706
+ }
577
707
  }
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Podo UI DatePicker v1.0.12
2
+ * Podo UI DatePicker v1.0.14
3
3
  * https://podoui.com
4
4
  * MIT License
5
5
  */
@@ -31,8 +31,115 @@
31
31
  yearSuffix: '년',
32
32
  reset: '초기화',
33
33
  apply: '적용',
34
+ quickSelect: {
35
+ today: '오늘',
36
+ yesterday: '어제',
37
+ thisWeek: '이번 주',
38
+ lastWeek: '지난 주',
39
+ last7Days: '최근 7일',
40
+ last30Days: '최근 30일',
41
+ thisMonth: '이번 달',
42
+ lastMonth: '지난 달',
43
+ },
34
44
  };
35
45
 
46
+ // ============================================
47
+ // Quick Select Presets
48
+ // ============================================
49
+
50
+ const QUICK_SELECT_KEYS = [
51
+ 'today', 'yesterday', 'thisWeek', 'lastWeek',
52
+ 'last7Days', 'last30Days', 'thisMonth', 'lastMonth',
53
+ ];
54
+
55
+ function getPresetRange(key) {
56
+ const today = new Date();
57
+ const todayStart = new Date(today.getFullYear(), today.getMonth(), today.getDate());
58
+
59
+ switch (key) {
60
+ case 'today':
61
+ return { start: new Date(todayStart), end: new Date(todayStart) };
62
+ case 'yesterday': {
63
+ const d = new Date(todayStart);
64
+ d.setDate(d.getDate() - 1);
65
+ return { start: d, end: new Date(d) };
66
+ }
67
+ case 'thisWeek': {
68
+ const dayOfWeek = todayStart.getDay();
69
+ const start = new Date(todayStart);
70
+ start.setDate(start.getDate() - dayOfWeek);
71
+ const end = new Date(start);
72
+ end.setDate(end.getDate() + 6);
73
+ return { start, end };
74
+ }
75
+ case 'lastWeek': {
76
+ const dayOfWeek = todayStart.getDay();
77
+ const thisWeekStart = new Date(todayStart);
78
+ thisWeekStart.setDate(thisWeekStart.getDate() - dayOfWeek);
79
+ const start = new Date(thisWeekStart);
80
+ start.setDate(start.getDate() - 7);
81
+ const end = new Date(start);
82
+ end.setDate(end.getDate() + 6);
83
+ return { start, end };
84
+ }
85
+ case 'last7Days': {
86
+ const start = new Date(todayStart);
87
+ start.setDate(start.getDate() - 6);
88
+ return { start, end: new Date(todayStart) };
89
+ }
90
+ case 'last30Days': {
91
+ const start = new Date(todayStart);
92
+ start.setDate(start.getDate() - 29);
93
+ return { start, end: new Date(todayStart) };
94
+ }
95
+ case 'thisMonth': {
96
+ const start = new Date(todayStart.getFullYear(), todayStart.getMonth(), 1);
97
+ const end = new Date(todayStart.getFullYear(), todayStart.getMonth() + 1, 0);
98
+ return { start, end };
99
+ }
100
+ case 'lastMonth': {
101
+ const start = new Date(todayStart.getFullYear(), todayStart.getMonth() - 1, 1);
102
+ const end = new Date(todayStart.getFullYear(), todayStart.getMonth(), 0);
103
+ return { start, end };
104
+ }
105
+ default:
106
+ return { start: todayStart, end: todayStart };
107
+ }
108
+ }
109
+
110
+ // ============================================
111
+ // Navigation Helpers
112
+ // ============================================
113
+
114
+ function getNavigationStepForPreset(key) {
115
+ switch (key) {
116
+ case 'today': case 'yesterday': return { type: 'days', count: 1 };
117
+ case 'thisWeek': case 'lastWeek': case 'last7Days': return { type: 'days', count: 7 };
118
+ case 'last30Days': return { type: 'days', count: 30 };
119
+ case 'thisMonth': case 'lastMonth': return { type: 'month', count: 1 };
120
+ default: return { type: 'days', count: 1 };
121
+ }
122
+ }
123
+
124
+ function calculateNavigationStep(start, end) {
125
+ const diffMs = new Date(end.getFullYear(), end.getMonth(), end.getDate()).getTime()
126
+ - new Date(start.getFullYear(), start.getMonth(), start.getDate()).getTime();
127
+ return { type: 'days', count: Math.round(diffMs / 86400000) + 1 };
128
+ }
129
+
130
+ function shiftDateRange(start, end, step, dir) {
131
+ if (step.type === 'month') {
132
+ const shift = step.count * dir;
133
+ const newStart = new Date(start.getFullYear(), start.getMonth() + shift, 1);
134
+ const newEnd = new Date(newStart.getFullYear(), newStart.getMonth() + 1, 0);
135
+ return { start: newStart, end: newEnd };
136
+ }
137
+ const shift = step.count * dir;
138
+ const s = new Date(start); s.setDate(s.getDate() + shift);
139
+ const e = new Date(end); e.setDate(e.getDate() + shift);
140
+ return { start: s, end: e };
141
+ }
142
+
36
143
  // ============================================
37
144
  // Helper Functions
38
145
  // ============================================
@@ -234,6 +341,7 @@
234
341
  * @param {string} [options.format] - Date/time format (y: year, m: month, d: day, h: hour, i: minute)
235
342
  * @param {Object} [options.initialCalendar] - Initial calendar display month { start, end }
236
343
  * @param {Object} [options.yearRange] - Year range for year selector { min, max }
344
+ * @param {boolean} [options.quickSelect=false] - Show quick select preset panel (period mode only)
237
345
  */
238
346
  constructor(container, options = {}) {
239
347
  this.container =
@@ -268,10 +376,17 @@
268
376
  this.format = options.format;
269
377
  this.initialCalendar = options.initialCalendar || {};
270
378
  this.yearRange = options.yearRange;
379
+ this.quickSelect = options.quickSelect || false;
380
+
381
+ // Merge quickSelect texts
382
+ if (options.texts?.quickSelect) {
383
+ this.texts.quickSelect = { ...DEFAULT_TEXTS.quickSelect, ...options.texts.quickSelect };
384
+ }
271
385
 
272
386
  // State
273
387
  this.isOpen = false;
274
388
  this.selectingPart = null;
389
+ this.navigationStep = null;
275
390
 
276
391
  // 초기 달력 표시 월 계산
277
392
  if (this.value.date) {
@@ -330,6 +445,8 @@
330
445
  this.container.innerHTML = '';
331
446
  this.container.className = PREFIX;
332
447
 
448
+ const showNavigation = this.quickSelect && this.mode === 'period';
449
+
333
450
  // Input wrapper
334
451
  this.inputEl = createElement('div', `${PREFIX}__input`);
335
452
  if (this.disabled) this.inputEl.classList.add(`${PREFIX}__input--disabled`);
@@ -343,6 +460,36 @@
343
460
  this.iconEl = createElement('i', `${PREFIX}__icon ${iconClass}`);
344
461
  this.inputEl.appendChild(this.iconEl);
345
462
 
463
+ if (showNavigation) {
464
+ this.inputEl.classList.add(`${PREFIX}__input--with-nav`);
465
+
466
+ // Left arrow (prepend before inputContent)
467
+ this._prevArrowBtn = createElement('button', `${PREFIX}__nav-arrow ${PREFIX}__nav-arrow--left`);
468
+ this._prevArrowBtn.type = 'button';
469
+ this._prevArrowBtn.innerHTML = '<i class="icon-expand-left"></i>';
470
+ this._prevArrowBtn.disabled = this.disabled || this.isNavDisabled(-1);
471
+ this._prevArrowBtn.addEventListener('click', (e) => { e.stopPropagation(); this.handleNavigate(-1); });
472
+ this.inputEl.insertBefore(this._prevArrowBtn, this.inputContentEl);
473
+
474
+ // Preset label
475
+ this._presetLabelEl = createElement('span', `${PREFIX}__preset-label`);
476
+ this.updatePresetLabel();
477
+ this.inputEl.insertBefore(this._presetLabelEl, this.inputContentEl);
478
+
479
+ // Remove calendar icon
480
+ if (this.iconEl && this.iconEl.parentNode) {
481
+ this.iconEl.parentNode.removeChild(this.iconEl);
482
+ }
483
+
484
+ // Right arrow (append after content)
485
+ this._nextArrowBtn = createElement('button', `${PREFIX}__nav-arrow ${PREFIX}__nav-arrow--right`);
486
+ this._nextArrowBtn.type = 'button';
487
+ this._nextArrowBtn.innerHTML = '<i class="icon-expand-right"></i>';
488
+ this._nextArrowBtn.disabled = this.disabled || this.isNavDisabled(1);
489
+ this._nextArrowBtn.addEventListener('click', (e) => { e.stopPropagation(); this.handleNavigate(1); });
490
+ this.inputEl.appendChild(this._nextArrowBtn);
491
+ }
492
+
346
493
  this.container.appendChild(this.inputEl);
347
494
 
348
495
  // Dropdown
@@ -550,7 +697,18 @@
550
697
 
551
698
  // Calendar(s)
552
699
  if (this.mode === 'period') {
553
- this.renderPeriodCalendars();
700
+ const showQS = this.quickSelect && this.mode === 'period';
701
+
702
+ if (showQS) {
703
+ const body = createElement('div', `${PREFIX}__dropdown-body`);
704
+ body.appendChild(this.renderQuickSelectPanel());
705
+ const calWrapper = createElement('div', `${PREFIX}__period-calendars-wrapper`);
706
+ this.renderPeriodCalendarsInto(calWrapper);
707
+ body.appendChild(calWrapper);
708
+ this.dropdownEl.appendChild(body);
709
+ } else {
710
+ this.renderPeriodCalendars();
711
+ }
554
712
  } else {
555
713
  this.renderCalendar(this.viewDate, (date) => this.handleViewDateChange(date));
556
714
  }
@@ -561,6 +719,123 @@
561
719
  }
562
720
  }
563
721
 
722
+ /**
723
+ * Quick Select 패널 렌더링
724
+ * @returns {HTMLElement}
725
+ */
726
+ renderQuickSelectPanel() {
727
+ const panel = createElement('div', `${PREFIX}__quick-select-panel`);
728
+
729
+ QUICK_SELECT_KEYS.forEach((key) => {
730
+ const label = this.texts.quickSelect?.[key] || key;
731
+ const disabled = this.isQSPresetDisabled(key);
732
+ const active = this.isQSPresetActive(key);
733
+
734
+ const btn = document.createElement('button');
735
+ btn.type = 'button';
736
+ btn.textContent = label;
737
+ btn.className = `${PREFIX}__quick-select-item`;
738
+ if (active) btn.classList.add(`${PREFIX}__quick-select-item--active`);
739
+ if (disabled) {
740
+ btn.classList.add(`${PREFIX}__quick-select-item--disabled`);
741
+ btn.disabled = true;
742
+ }
743
+
744
+ if (!disabled) {
745
+ btn.addEventListener('mousedown', (e) => {
746
+ e.preventDefault();
747
+ e.stopPropagation();
748
+ this.handleQuickSelect(key);
749
+ });
750
+ }
751
+
752
+ panel.appendChild(btn);
753
+ });
754
+
755
+ return panel;
756
+ }
757
+
758
+ isQSPresetDisabled(key) {
759
+ const { start, end } = getPresetRange(key);
760
+
761
+ if (this.minDate) {
762
+ const min = this.minDate instanceof Date ? this.minDate : this.minDate.date;
763
+ const minDay = new Date(min.getFullYear(), min.getMonth(), min.getDate());
764
+ if (end < minDay) return true;
765
+ }
766
+
767
+ if (this.maxDate) {
768
+ const max = this.maxDate instanceof Date ? this.maxDate : this.maxDate.date;
769
+ const maxDay = new Date(max.getFullYear(), max.getMonth(), max.getDate());
770
+ if (start > maxDay) return true;
771
+ }
772
+
773
+ return false;
774
+ }
775
+
776
+ isQSPresetActive(key) {
777
+ if (!this.tempValue.date || !this.tempValue.endDate) return false;
778
+ const { start, end } = getPresetRange(key);
779
+ return isSameDay(this.tempValue.date, start) && isSameDay(this.tempValue.endDate, end);
780
+ }
781
+
782
+ handleQuickSelect(key) {
783
+ let { start, end } = getPresetRange(key);
784
+ // minDate/maxDate로 클램핑
785
+ if (this.minDate) {
786
+ const min = this.minDate instanceof Date ? this.minDate : this.minDate.date;
787
+ const minDay = new Date(min.getFullYear(), min.getMonth(), min.getDate());
788
+ if (start < minDay) start = minDay;
789
+ }
790
+ if (this.maxDate) {
791
+ const max = this.maxDate instanceof Date ? this.maxDate : this.maxDate.date;
792
+ const maxDay = new Date(max.getFullYear(), max.getMonth(), max.getDate());
793
+ if (end > maxDay) end = maxDay;
794
+ }
795
+ this.tempValue = { date: start, endDate: end, time: this.tempValue.time, endTime: this.tempValue.endTime };
796
+ this.viewDate = new Date(start.getFullYear(), start.getMonth(), 1);
797
+ this.endViewDate = new Date(end.getFullYear(), end.getMonth(), 1);
798
+ this.navigationStep = getNavigationStepForPreset(key);
799
+
800
+ if (!this.showActions) {
801
+ this.value = { ...this.tempValue };
802
+ this.onChange?.(this.value);
803
+ this.close();
804
+ }
805
+ this.renderInputContent();
806
+ this.updateNavArrows();
807
+ this.renderDropdown();
808
+ }
809
+
810
+ /**
811
+ * PeriodCalendars를 지정된 컨테이너에 렌더링
812
+ * @param {HTMLElement} container
813
+ */
814
+ renderPeriodCalendarsInto(container) {
815
+ const wrapper = createElement('div', `${PREFIX}__period-calendars`);
816
+ const isMobile = this.isMobileView();
817
+
818
+ const leftCal = createElement('div', `${PREFIX}__period-calendar-left`);
819
+ const leftCalendar = this.createCalendarElement(
820
+ this.viewDate,
821
+ (date) => this.handleViewDateChange(date),
822
+ { maxViewDate: isMobile ? undefined : this.endViewDate }
823
+ );
824
+ leftCal.appendChild(leftCalendar);
825
+ wrapper.appendChild(leftCal);
826
+
827
+ const rightCal = createElement('div', `${PREFIX}__period-calendar-right`);
828
+ const rightCalendar = this.createCalendarElement(
829
+ this.endViewDate,
830
+ (date) => this.handleEndViewDateChange(date),
831
+ { minViewDate: this.viewDate }
832
+ );
833
+ rightCal.appendChild(rightCalendar);
834
+ wrapper.appendChild(rightCal);
835
+
836
+ container.appendChild(wrapper);
837
+ }
838
+
564
839
  renderCalendar(viewDate, onViewDateChange, opts = {}) {
565
840
  const calendar = createElement('div', `${PREFIX}__calendar`);
566
841
 
@@ -1033,9 +1308,11 @@
1033
1308
  endDate: existingStartDate,
1034
1309
  endTime: adjustedEndTime,
1035
1310
  };
1311
+ this.navigationStep = calculateNavigationStep(newDate, existingStartDate);
1036
1312
  } else {
1037
1313
  const adjustedEndTime = this.adjustTimeForDate(newDate, this.tempValue.endTime);
1038
1314
  this.tempValue = { ...this.tempValue, endDate: newDate, endTime: adjustedEndTime };
1315
+ this.navigationStep = calculateNavigationStep(existingStartDate, newDate);
1039
1316
  }
1040
1317
  } else {
1041
1318
  const adjustedTime = this.adjustTimeForDate(newDate, this.tempValue.time);
@@ -1131,6 +1408,81 @@
1131
1408
  this.renderInputContent();
1132
1409
  }
1133
1410
 
1411
+ handleNavigate(direction) {
1412
+ const dv = this.showActions ? this.tempValue : this.value;
1413
+ if (!dv?.date || !dv?.endDate || !this.navigationStep) return;
1414
+
1415
+ const { start, end } = shiftDateRange(dv.date, dv.endDate, this.navigationStep, direction);
1416
+
1417
+ if (this.minDate) {
1418
+ const min = this.minDate instanceof Date ? this.minDate : this.minDate.date;
1419
+ if (start < new Date(min.getFullYear(), min.getMonth(), min.getDate())) return;
1420
+ }
1421
+ if (this.maxDate) {
1422
+ const max = this.maxDate instanceof Date ? this.maxDate : this.maxDate.date;
1423
+ if (end > new Date(max.getFullYear(), max.getMonth(), max.getDate())) return;
1424
+ }
1425
+
1426
+ const newValue = { date: start, endDate: end, time: dv.time, endTime: dv.endTime };
1427
+ this.tempValue = newValue;
1428
+ this.value = { ...newValue };
1429
+ this.viewDate = new Date(start.getFullYear(), start.getMonth(), 1);
1430
+ this.endViewDate = new Date(end.getFullYear(), end.getMonth(), 1);
1431
+ this.emitChange();
1432
+ this.renderInputContent();
1433
+ this.updateNavArrows();
1434
+ if (this.isOpen) this.renderDropdown();
1435
+ }
1436
+
1437
+ isNavDisabled(direction) {
1438
+ const dv = this.showActions ? this.tempValue : this.value;
1439
+ if (!dv?.date || !dv?.endDate || !this.navigationStep) return true;
1440
+ const { start, end } = shiftDateRange(dv.date, dv.endDate, this.navigationStep, direction);
1441
+ if (direction === -1 && this.minDate) {
1442
+ const min = this.minDate instanceof Date ? this.minDate : this.minDate.date;
1443
+ return start < new Date(min.getFullYear(), min.getMonth(), min.getDate());
1444
+ }
1445
+ if (direction === 1 && this.maxDate) {
1446
+ const max = this.maxDate instanceof Date ? this.maxDate : this.maxDate.date;
1447
+ return end > new Date(max.getFullYear(), max.getMonth(), max.getDate());
1448
+ }
1449
+ return false;
1450
+ }
1451
+
1452
+ updateNavArrows() {
1453
+ if (this._prevArrowBtn) {
1454
+ this._prevArrowBtn.disabled = this.disabled || this.isNavDisabled(-1);
1455
+ }
1456
+ if (this._nextArrowBtn) {
1457
+ this._nextArrowBtn.disabled = this.disabled || this.isNavDisabled(1);
1458
+ }
1459
+ this.updatePresetLabel();
1460
+ }
1461
+
1462
+ getActivePresetLabel() {
1463
+ const dv = this.showActions ? this.tempValue : this.value;
1464
+ if (!dv?.date || !dv?.endDate) return null;
1465
+ for (const key of QUICK_SELECT_KEYS) {
1466
+ const { start, end } = getPresetRange(key);
1467
+ if (isSameDay(dv.date, start) && isSameDay(dv.endDate, end)) {
1468
+ return this.texts.quickSelect?.[key] || key;
1469
+ }
1470
+ }
1471
+ return null;
1472
+ }
1473
+
1474
+ updatePresetLabel() {
1475
+ if (!this._presetLabelEl) return;
1476
+ const label = this.getActivePresetLabel();
1477
+ if (label) {
1478
+ this._presetLabelEl.textContent = `${label} :`;
1479
+ this._presetLabelEl.style.display = '';
1480
+ } else {
1481
+ this._presetLabelEl.textContent = '';
1482
+ this._presetLabelEl.style.display = 'none';
1483
+ }
1484
+ }
1485
+
1134
1486
  handleReset() {
1135
1487
  this.tempValue = {};
1136
1488
  this.close();
@@ -1,2 +1,2 @@
1
- /*! Podo UI DatePicker CSS v1.0.12 | MIT License | https://podoui.com */
2
- .podo-datepicker{--podo-bg-block:var(--color-bg-block,#ffffff);--podo-bg-modal:var(--color-bg-modal,#ffffff);--podo-bg-disabled:var(--color-bg-disabled,#f5f5f5);--podo-border:var(--color-border,#e0e0e0);--podo-border-hover:var(--color-border-hover,#bdbdbd);--podo-text-body:var(--color-text-body,#212121);--podo-text-sub:var(--color-text-sub,#757575);--podo-text-disabled:var(--color-text-disabled,#9e9e9e);--podo-primary:var(--color-primary,#7c3aed);--podo-primary-hover:var(--color-primary-hover,#6d28d9);--podo-primary-fill:var(--color-primary-fill,rgba(124,58,237,0.1));--podo-primary-reverse:var(--color-primary-reverse,#ffffff);--podo-default:var(--color-default,#f5f5f5);--podo-default-fill:var(--color-default-fill,#eeeeee);--podo-default-hover:var(--color-default-hover,#e0e0e0);--podo-default-reverse:var(--color-default-reverse,#212121);--podo-radius-sm:var(--radius-2,4px);--podo-radius-md:var(--radius-3,8px);--podo-spacing-1:var(--spacing-1,4px);--podo-spacing-2:var(--spacing-2,8px);--podo-spacing-3:var(--spacing-3,12px);--podo-spacing-4:var(--spacing-4,16px);--podo-spacing-5:var(--spacing-5,20px);--podo-font-size-sm:13px;--podo-font-size-md:14px;--podo-font-size-lg:16px;}.podo-datepicker{position:relative;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;font-size:var(--podo-font-size-md);line-height:1.5;}.podo-datepicker__input{display:flex;align-items:center;gap:var(--podo-spacing-2);padding:var(--podo-spacing-3) var(--podo-spacing-4);background:var(--podo-bg-block);border:1px solid var(--podo-border);border-radius:var(--podo-radius-md);cursor:pointer;transition:border-color 0.2s;}.podo-datepicker__input:hover{border-color:var(--podo-border-hover);}.podo-datepicker__input--active{border-color:var(--podo-primary);}.podo-datepicker__input--disabled{background:var(--podo-bg-disabled);cursor:not-allowed;opacity:0.6;}.podo-datepicker__input-content{flex:1;display:flex;align-items:center;gap:var(--podo-spacing-2);}.podo-datepicker__part{display:flex;flex:1;align-items:center;justify-content:center;padding:0 var(--podo-spacing-2);background:none;border:none;border-radius:var(--podo-radius-sm);cursor:pointer;transition:background 0.2s;color:var(--podo-text-body);white-space:nowrap;font-variant-numeric:tabular-nums;font-family:inherit;font-size:var(--podo-font-size-md);}.podo-datepicker__part:hover{background:var(--podo-default);}.podo-datepicker__part--active{background:var(--podo-default-fill);}.podo-datepicker__part--placeholder{color:var(--podo-text-disabled);}.podo-datepicker__separator{color:var(--podo-text-body);padding:0 var(--podo-spacing-1);font-size:var(--podo-font-size-md);}.podo-datepicker__time-section{display:flex;align-items:center;justify-content:center;gap:0;}.podo-datepicker__time-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background:none;border:none;padding:0 var(--podo-spacing-2);flex:1;text-align:center;text-align-last:center;color:var(--podo-text-body);cursor:pointer;border-radius:var(--podo-radius-sm);transition:background 0.2s;font-variant-numeric:tabular-nums;font-family:inherit;font-size:var(--podo-font-size-md);}.podo-datepicker__time-select:hover{background:var(--podo-default);}.podo-datepicker__time-select:focus{outline:none;background:var(--podo-default-fill);}.podo-datepicker__time-select--placeholder{color:var(--podo-text-disabled);}.podo-datepicker__time-select:disabled{cursor:not-allowed;opacity:0.6;}.podo-datepicker__time-separator{color:var(--podo-text-body);font-size:var(--podo-font-size-md);}.podo-datepicker__icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;font-size:20px;line-height:1;color:var(--podo-text-sub);flex-shrink:0;}.podo-datepicker__dropdown{position:absolute;top:calc(100%+var(--podo-spacing-2));left:0;z-index:1000;display:flex;flex-direction:column;gap:10px;padding:var(--podo-spacing-5);background:var(--podo-bg-modal);border-radius:var(--podo-radius-md);box-shadow:0 6px 18px -3px rgba(50,50,50,0.12);}.podo-datepicker__dropdown--right{left:auto;right:0;}.podo-datepicker__calendar{display:flex;flex-direction:column;gap:10px;min-width:280px;max-width:100%;}.podo-datepicker__calendar-nav{display:flex;align-items:center;gap:var(--podo-spacing-4);height:40px;}.podo-datepicker__nav-button{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--podo-default);border:none;border-radius:var(--podo-radius-md);cursor:pointer;transition:background 0.2s;}.podo-datepicker__nav-button:hover{background:var(--podo-default-hover);}.podo-datepicker__nav-button:disabled{opacity:0.5;cursor:not-allowed;}.podo-datepicker__nav-button i{font-size:20px;color:var(--podo-text-body);}.podo-datepicker__nav-title{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--podo-spacing-1);}.podo-datepicker__nav-select-wrapper{position:relative;display:flex;align-items:center;}.podo-datepicker__nav-select-wrapper::after{content:'';position:absolute;right:var(--podo-spacing-2);top:50%;transform:translateY(-50%);width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid var(--podo-text-body);pointer-events:none;}.podo-datepicker__nav-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background:none;border:none;padding:var(--podo-spacing-2) 24px var(--podo-spacing-2) var(--podo-spacing-2);border-radius:var(--podo-radius-sm);cursor:pointer;transition:background 0.2s;color:var(--podo-text-body);font-family:inherit;font-size:var(--podo-font-size-lg);font-weight:600;}.podo-datepicker__nav-select:hover{background:var(--podo-default);}.podo-datepicker__nav-select:focus{outline:none;background:var(--podo-default-fill);}.podo-datepicker__calendar-grid{display:flex;flex-direction:column;gap:var(--podo-spacing-2);padding-top:var(--podo-spacing-3);border-top:1px solid var(--podo-border);}.podo-datepicker__calendar-row{display:flex;width:100%;min-width:0;}.podo-datepicker__calendar-cell{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;height:40px;font-size:var(--podo-font-size-md);background:none;border:none;border-radius:var(--podo-radius-md);cursor:pointer;transition:background 0.2s;font-family:inherit;color:var(--podo-text-body);}.podo-datepicker__calendar-cell--header{color:var(--podo-text-sub);cursor:default;font-weight:500;}.podo-datepicker__calendar-cell--other{color:var(--podo-text-disabled);}.podo-datepicker__calendar-cell--today{font-weight:600;color:var(--podo-primary);}.podo-datepicker__calendar-cell--selected{background:var(--podo-primary);color:var(--podo-primary-reverse);font-weight:600;}.podo-datepicker__calendar-cell--in-range{background:var(--podo-primary-fill);border-radius:0;}.podo-datepicker__calendar-cell--range-start{background:var(--podo-primary);color:var(--podo-primary-reverse);font-weight:600;border-radius:var(--podo-radius-md);}.podo-datepicker__calendar-cell--range-end{background:var(--podo-primary);color:var(--podo-primary-reverse);font-weight:600;border-radius:var(--podo-radius-md);}.podo-datepicker__calendar-cell--disabled{color:var(--podo-text-disabled);background:var(--podo-default);border:none;border-radius:0;outline:none;cursor:not-allowed;}.podo-datepicker__calendar-cell--disabled:hover{background:var(--podo-default);}.podo-datepicker__calendar-cell:not(.podo-datepicker__calendar-cell--header):not(.podo-datepicker__calendar-cell--selected):not(.podo-datepicker__calendar-cell--disabled):not(.podo-datepicker__calendar-cell--range-start):not(.podo-datepicker__calendar-cell--range-end):not(.podo-datepicker__calendar-cell--in-range):hover{background:var(--podo-default);}.podo-datepicker__period-calendars{display:flex;gap:var(--podo-spacing-4);}.podo-datepicker__period-calendar-left,.podo-datepicker__period-calendar-right{flex:1;}.podo-datepicker__actions{display:flex;align-items:center;justify-content:space-between;gap:var(--podo-spacing-3);padding-top:var(--podo-spacing-3);border-top:1px solid var(--podo-border);}.podo-datepicker__period-text{font-size:var(--podo-font-size-md);color:var(--podo-primary);flex:1;}.podo-datepicker__action-buttons{display:flex;gap:var(--podo-spacing-3);flex-shrink:0;}.podo-datepicker__action-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--podo-spacing-2);padding:var(--podo-spacing-3) var(--podo-spacing-4);border-radius:var(--podo-radius-md);cursor:pointer;transition:background 0.2s;white-space:nowrap;font-family:inherit;font-size:var(--podo-font-size-md);}.podo-datepicker__action-button i{display:flex;align-items:center;justify-content:center;width:18px;height:18px;font-size:18px;line-height:1;}.podo-datepicker__action-button--reset{background:var(--podo-default-fill);border:1px solid var(--podo-border);color:var(--podo-default-reverse);}.podo-datepicker__action-button--reset:hover{background:var(--podo-default-hover);}.podo-datepicker__action-button--apply{background:var(--podo-primary);border:none;color:var(--podo-primary-reverse);}.podo-datepicker__action-button--apply:hover{background:var(--podo-primary-hover);}@media screen and (max-width:600px){.podo-datepicker__period-calendar-right{display:none;}}@media screen and (max-width:480px){.podo-datepicker__dropdown{padding:var(--podo-spacing-4);gap:var(--podo-spacing-3);}.podo-datepicker__calendar{min-width:260px;gap:var(--podo-spacing-3);}.podo-datepicker__calendar-nav{height:36px;gap:var(--podo-spacing-3);}.podo-datepicker__nav-button{width:36px;height:36px;}.podo-datepicker__calendar-cell{height:36px;}}@media screen and (max-width:400px){.podo-datepicker__dropdown{padding:var(--podo-spacing-3);gap:var(--podo-spacing-2);max-width:calc(100vw - var(--podo-spacing-4));box-sizing:border-box;}.podo-datepicker__calendar{min-width:0;width:100%;gap:var(--podo-spacing-2);}.podo-datepicker__calendar-nav{height:32px;gap:var(--podo-spacing-2);}.podo-datepicker__nav-button{width:32px;height:32px;}.podo-datepicker__nav-button i{font-size:18px;}.podo-datepicker__calendar-cell{height:32px;}.podo-datepicker__actions{flex-wrap:wrap;gap:var(--podo-spacing-2);}.podo-datepicker__action-button{padding:var(--podo-spacing-2) var(--podo-spacing-3);}.podo-datepicker__action-button i{width:16px;height:16px;font-size:16px;}}
1
+ /*! Podo UI DatePicker CSS v1.0.14 | MIT License | https://podoui.com */
2
+ .podo-datepicker{--podo-bg-block:var(--color-bg-block,#ffffff);--podo-bg-modal:var(--color-bg-modal,#ffffff);--podo-bg-disabled:var(--color-bg-disabled,#f5f5f5);--podo-border:var(--color-border,#e0e0e0);--podo-border-hover:var(--color-border-hover,#bdbdbd);--podo-text-body:var(--color-text-body,#212121);--podo-text-sub:var(--color-text-sub,#757575);--podo-text-disabled:var(--color-text-disabled,#9e9e9e);--podo-primary:var(--color-primary,#7c3aed);--podo-primary-hover:var(--color-primary-hover,#6d28d9);--podo-primary-fill:var(--color-primary-fill,rgba(124,58,237,0.1));--podo-primary-reverse:var(--color-primary-reverse,#ffffff);--podo-default:var(--color-default,#f5f5f5);--podo-default-fill:var(--color-default-fill,#eeeeee);--podo-default-hover:var(--color-default-hover,#e0e0e0);--podo-default-reverse:var(--color-default-reverse,#212121);--podo-radius-sm:var(--radius-2,4px);--podo-radius-md:var(--radius-3,8px);--podo-spacing-1:var(--spacing-1,4px);--podo-spacing-2:var(--spacing-2,8px);--podo-spacing-3:var(--spacing-3,12px);--podo-spacing-4:var(--spacing-4,16px);--podo-spacing-5:var(--spacing-5,20px);--podo-font-size-sm:13px;--podo-font-size-md:14px;--podo-font-size-lg:16px;}.podo-datepicker{position:relative;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;font-size:var(--podo-font-size-md);line-height:1.5;}.podo-datepicker__input{display:flex;align-items:center;gap:var(--podo-spacing-2);padding:var(--podo-spacing-3) var(--podo-spacing-4);background:var(--podo-bg-block);border:1px solid var(--podo-border);border-radius:var(--podo-radius-md);cursor:pointer;transition:border-color 0.2s;}.podo-datepicker__input:hover{border-color:var(--podo-border-hover);}.podo-datepicker__input--active{border-color:var(--podo-primary);}.podo-datepicker__input--disabled{background:var(--podo-bg-disabled);cursor:not-allowed;opacity:0.6;}.podo-datepicker__input-content{flex:1;display:flex;align-items:center;gap:var(--podo-spacing-2);}.podo-datepicker__part{display:flex;flex:1;align-items:center;justify-content:center;padding:0 var(--podo-spacing-2);background:none;border:none;border-radius:var(--podo-radius-sm);cursor:pointer;transition:background 0.2s;color:var(--podo-text-body);white-space:nowrap;font-variant-numeric:tabular-nums;font-family:inherit;font-size:var(--podo-font-size-md);}.podo-datepicker__part:hover{background:var(--podo-default);}.podo-datepicker__part--active{background:var(--podo-default-fill);}.podo-datepicker__part--placeholder{color:var(--podo-text-disabled);}.podo-datepicker__separator{color:var(--podo-text-body);padding:0 var(--podo-spacing-1);font-size:var(--podo-font-size-md);}.podo-datepicker__time-section{display:flex;align-items:center;justify-content:center;gap:0;}.podo-datepicker__time-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background:none;border:none;padding:0 var(--podo-spacing-2);flex:1;text-align:center;text-align-last:center;color:var(--podo-text-body);cursor:pointer;border-radius:var(--podo-radius-sm);transition:background 0.2s;font-variant-numeric:tabular-nums;font-family:inherit;font-size:var(--podo-font-size-md);}.podo-datepicker__time-select:hover{background:var(--podo-default);}.podo-datepicker__time-select:focus{outline:none;background:var(--podo-default-fill);}.podo-datepicker__time-select--placeholder{color:var(--podo-text-disabled);}.podo-datepicker__time-select:disabled{cursor:not-allowed;opacity:0.6;}.podo-datepicker__time-separator{color:var(--podo-text-body);font-size:var(--podo-font-size-md);}.podo-datepicker__icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;font-size:20px;line-height:1;color:var(--podo-text-sub);flex-shrink:0;}.podo-datepicker__input--with-nav{padding:0;}.podo-datepicker__nav-arrow{display:flex;align-items:center;justify-content:center;width:40px;min-height:100%;background:none;border:none;cursor:pointer;transition:background 0.2s;flex-shrink:0;}.podo-datepicker__nav-arrow:hover:not(:disabled){background:var(--podo-default-hover);}.podo-datepicker__nav-arrow:disabled{opacity:0.4;cursor:not-allowed;}.podo-datepicker__nav-arrow i{font-size:16px;color:var(--podo-text-body);}.podo-datepicker__nav-arrow--left{border-right:1px solid var(--podo-border);border-radius:var(--podo-radius-md) 0 0 var(--podo-radius-md);}.podo-datepicker__nav-arrow--right{border-left:1px solid var(--podo-border);border-radius:0 var(--podo-radius-md) var(--podo-radius-md) 0;}.podo-datepicker__preset-label{font-size:var(--podo-font-size-md);color:var(--podo-text-body);white-space:nowrap;flex-shrink:0;padding-left:var(--podo-spacing-3);font-weight:600;}.podo-datepicker__dropdown{position:absolute;top:calc(100%+var(--podo-spacing-2));left:0;z-index:1000;display:flex;flex-direction:column;gap:10px;padding:var(--podo-spacing-5);background:var(--podo-bg-modal);border-radius:var(--podo-radius-md);box-shadow:0 6px 18px -3px rgba(50,50,50,0.12);}.podo-datepicker__dropdown--right{left:auto;right:0;}.podo-datepicker__calendar{display:flex;flex-direction:column;gap:10px;min-width:280px;max-width:100%;}.podo-datepicker__calendar-nav{display:flex;align-items:center;gap:var(--podo-spacing-4);height:40px;}.podo-datepicker__nav-button{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--podo-default);border:none;border-radius:var(--podo-radius-md);cursor:pointer;transition:background 0.2s;}.podo-datepicker__nav-button:hover{background:var(--podo-default-hover);}.podo-datepicker__nav-button:disabled{opacity:0.5;cursor:not-allowed;}.podo-datepicker__nav-button i{font-size:20px;color:var(--podo-text-body);}.podo-datepicker__nav-title{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--podo-spacing-1);}.podo-datepicker__nav-select-wrapper{position:relative;display:flex;align-items:center;}.podo-datepicker__nav-select-wrapper::after{content:'';position:absolute;right:var(--podo-spacing-2);top:50%;transform:translateY(-50%);width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid var(--podo-text-body);pointer-events:none;}.podo-datepicker__nav-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background:none;border:none;padding:var(--podo-spacing-2) 24px var(--podo-spacing-2) var(--podo-spacing-2);border-radius:var(--podo-radius-sm);cursor:pointer;transition:background 0.2s;color:var(--podo-text-body);font-family:inherit;font-size:var(--podo-font-size-lg);font-weight:600;}.podo-datepicker__nav-select:hover{background:var(--podo-default);}.podo-datepicker__nav-select:focus{outline:none;background:var(--podo-default-fill);}.podo-datepicker__calendar-grid{display:flex;flex-direction:column;gap:var(--podo-spacing-2);padding-top:var(--podo-spacing-3);border-top:1px solid var(--podo-border);}.podo-datepicker__calendar-row{display:flex;width:100%;min-width:0;}.podo-datepicker__calendar-cell{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;height:40px;font-size:var(--podo-font-size-md);background:none;border:none;border-radius:var(--podo-radius-md);cursor:pointer;transition:background 0.2s;font-family:inherit;color:var(--podo-text-body);}.podo-datepicker__calendar-cell--header{color:var(--podo-text-sub);cursor:default;font-weight:500;}.podo-datepicker__calendar-cell--other{color:var(--podo-text-disabled);}.podo-datepicker__calendar-cell--today{font-weight:600;color:var(--podo-primary);}.podo-datepicker__calendar-cell--selected{background:var(--podo-primary);color:var(--podo-primary-reverse);font-weight:600;}.podo-datepicker__calendar-cell--in-range{background:var(--podo-primary-fill);border-radius:0;}.podo-datepicker__calendar-cell--range-start{background:var(--podo-primary);color:var(--podo-primary-reverse);font-weight:600;border-radius:var(--podo-radius-md);}.podo-datepicker__calendar-cell--range-end{background:var(--podo-primary);color:var(--podo-primary-reverse);font-weight:600;border-radius:var(--podo-radius-md);}.podo-datepicker__calendar-cell--disabled{color:var(--podo-text-disabled);background:var(--podo-default);border:none;border-radius:0;outline:none;cursor:not-allowed;}.podo-datepicker__calendar-cell--disabled:hover{background:var(--podo-default);}.podo-datepicker__calendar-cell:not(.podo-datepicker__calendar-cell--header):not(.podo-datepicker__calendar-cell--selected):not(.podo-datepicker__calendar-cell--disabled):not(.podo-datepicker__calendar-cell--range-start):not(.podo-datepicker__calendar-cell--range-end):not(.podo-datepicker__calendar-cell--in-range):hover{background:var(--podo-default);}.podo-datepicker__period-calendars{display:flex;gap:var(--podo-spacing-4);}.podo-datepicker__period-calendar-left,.podo-datepicker__period-calendar-right{flex:1;}.podo-datepicker__actions{display:flex;align-items:center;justify-content:space-between;gap:var(--podo-spacing-3);padding-top:var(--podo-spacing-3);border-top:1px solid var(--podo-border);}.podo-datepicker__period-text{font-size:var(--podo-font-size-md);color:var(--podo-primary);flex:1;}.podo-datepicker__action-buttons{display:flex;gap:var(--podo-spacing-3);flex-shrink:0;}.podo-datepicker__action-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--podo-spacing-2);padding:var(--podo-spacing-3) var(--podo-spacing-4);border-radius:var(--podo-radius-md);cursor:pointer;transition:background 0.2s;white-space:nowrap;font-family:inherit;font-size:var(--podo-font-size-md);}.podo-datepicker__action-button i{display:flex;align-items:center;justify-content:center;width:18px;height:18px;font-size:18px;line-height:1;}.podo-datepicker__action-button--reset{background:var(--podo-default-fill);border:1px solid var(--podo-border);color:var(--podo-default-reverse);}.podo-datepicker__action-button--reset:hover{background:var(--podo-default-hover);}.podo-datepicker__action-button--apply{background:var(--podo-primary);border:none;color:var(--podo-primary-reverse);}.podo-datepicker__action-button--apply:hover{background:var(--podo-primary-hover);}.podo-datepicker__dropdown-body{display:flex;gap:var(--podo-spacing-4);min-width:0;}.podo-datepicker__quick-select-panel{display:flex;flex-direction:column;gap:var(--podo-spacing-1);min-width:100px;padding-right:var(--podo-spacing-4);border-right:1px solid var(--podo-border);flex-shrink:0;}.podo-datepicker__quick-select-item{display:flex;align-items:center;padding:var(--podo-spacing-2) var(--podo-spacing-3);background:none;border:none;border-radius:var(--podo-radius-sm);cursor:pointer;transition:background 0.2s,color 0.2s;color:var(--podo-text-body);white-space:nowrap;text-align:left;font-size:14px;line-height:1.5;}.podo-datepicker__quick-select-item:hover:not(.podo-datepicker__quick-select-item--disabled):not(.podo-datepicker__quick-select-item--active){background:var(--podo-default-hover);}.podo-datepicker__quick-select-item--active{color:var(--podo-primary);background:var(--podo-primary-fill,rgba(124,58,237,0.08));font-weight:600;}.podo-datepicker__quick-select-item--disabled{color:var(--podo-text-disabled,#adb5bd);cursor:not-allowed;}@media screen and (max-width:600px){.podo-datepicker__period-calendar-right{display:none;}.podo-datepicker__quick-select-panel{min-width:80px;padding-right:var(--podo-spacing-3);}.podo-datepicker__quick-select-item{font-size:13px;padding:var(--podo-spacing-2);}}@media screen and (max-width:480px){.podo-datepicker__dropdown{padding:var(--podo-spacing-4);gap:var(--podo-spacing-3);}.podo-datepicker__calendar{min-width:260px;gap:var(--podo-spacing-3);}.podo-datepicker__calendar-nav{height:36px;gap:var(--podo-spacing-3);}.podo-datepicker__nav-button{width:36px;height:36px;}.podo-datepicker__calendar-cell{height:36px;}}@media screen and (max-width:400px){.podo-datepicker__dropdown{padding:var(--podo-spacing-3);gap:var(--podo-spacing-2);max-width:calc(100vw - var(--podo-spacing-4));box-sizing:border-box;}.podo-datepicker__calendar{min-width:0;width:100%;gap:var(--podo-spacing-2);}.podo-datepicker__calendar-nav{height:32px;gap:var(--podo-spacing-2);}.podo-datepicker__nav-button{width:32px;height:32px;}.podo-datepicker__nav-button i{font-size:18px;}.podo-datepicker__calendar-cell{height:32px;}.podo-datepicker__actions{flex-wrap:wrap;gap:var(--podo-spacing-2);}.podo-datepicker__action-button{padding:var(--podo-spacing-2) var(--podo-spacing-3);}.podo-datepicker__action-button i{width:16px;height:16px;font-size:16px;}.podo-datepicker__quick-select-panel{display:none;}.podo-datepicker__nav-arrow{width:32px;}.podo-datepicker__nav-arrow i{font-size:14px;}.podo-datepicker__preset-label{display:none;}}