podo-ui 0.8.0 → 0.8.2

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.
Binary file
@@ -0,0 +1,486 @@
1
+ /*!
2
+ * Podo UI DatePicker CSS v0.8.2
3
+ * https://podoui.com
4
+ * MIT License
5
+ */
6
+ /**
7
+ * Podo UI DatePicker - Vanilla CSS
8
+ * @version 0.8.0
9
+ * @license MIT
10
+ */
11
+
12
+ /* ============================================
13
+ CSS Variables
14
+ - Uses podo-ui.css variables if available (--color-*)
15
+ - Falls back to standalone values if podo-ui.css is not loaded
16
+ ============================================ */
17
+ .podo-datepicker {
18
+ /* Colors from podo-ui.css with fallbacks */
19
+ --podo-bg-block: var(--color-bg-block, #ffffff);
20
+ --podo-bg-modal: var(--color-bg-modal, #ffffff);
21
+ --podo-bg-disabled: var(--color-bg-disabled, #f5f5f5);
22
+ --podo-border: var(--color-border, #e0e0e0);
23
+ --podo-border-hover: var(--color-border-hover, #bdbdbd);
24
+ --podo-text-body: var(--color-text-body, #212121);
25
+ --podo-text-sub: var(--color-text-sub, #757575);
26
+ --podo-text-disabled: var(--color-text-disabled, #9e9e9e);
27
+ --podo-primary: var(--color-primary, #7c3aed);
28
+ --podo-primary-hover: var(--color-primary-hover, #6d28d9);
29
+ --podo-primary-fill: var(--color-primary-fill, rgba(124, 58, 237, 0.1));
30
+ --podo-primary-reverse: var(--color-primary-reverse, #ffffff);
31
+ --podo-default: var(--color-default, #f5f5f5);
32
+ --podo-default-fill: var(--color-default-fill, #eeeeee);
33
+ --podo-default-hover: var(--color-default-hover, #e0e0e0);
34
+ --podo-default-reverse: var(--color-default-reverse, #212121);
35
+ --podo-radius-sm: var(--radius-2, 4px);
36
+ --podo-radius-md: var(--radius-3, 8px);
37
+ --podo-spacing-1: var(--spacing-1, 4px);
38
+ --podo-spacing-2: var(--spacing-2, 8px);
39
+ --podo-spacing-3: var(--spacing-3, 12px);
40
+ --podo-spacing-4: var(--spacing-4, 16px);
41
+ --podo-spacing-5: var(--spacing-5, 20px);
42
+ --podo-font-size-sm: 13px;
43
+ --podo-font-size-md: 14px;
44
+ --podo-font-size-lg: 16px;
45
+ }
46
+
47
+ /* ============================================
48
+ Container
49
+ ============================================ */
50
+ .podo-datepicker {
51
+ position: relative;
52
+ display: inline-block;
53
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
54
+ font-size: var(--podo-font-size-md);
55
+ line-height: 1.5;
56
+ }
57
+
58
+ /* ============================================
59
+ Input
60
+ ============================================ */
61
+ .podo-datepicker__input {
62
+ display: flex;
63
+ align-items: center;
64
+ gap: var(--podo-spacing-2);
65
+ padding: var(--podo-spacing-3) var(--podo-spacing-4);
66
+ background: var(--podo-bg-block);
67
+ border: 1px solid var(--podo-border);
68
+ border-radius: var(--podo-radius-md);
69
+ cursor: pointer;
70
+ transition: border-color 0.2s;
71
+ }
72
+
73
+ .podo-datepicker__input:hover {
74
+ border-color: var(--podo-border-hover);
75
+ }
76
+
77
+ .podo-datepicker__input--active {
78
+ border-color: var(--podo-primary);
79
+ }
80
+
81
+ .podo-datepicker__input--disabled {
82
+ background: var(--podo-bg-disabled);
83
+ cursor: not-allowed;
84
+ opacity: 0.6;
85
+ }
86
+
87
+ .podo-datepicker__input-content {
88
+ flex: 1;
89
+ display: flex;
90
+ align-items: center;
91
+ gap: var(--podo-spacing-2);
92
+ }
93
+
94
+ /* ============================================
95
+ Input Parts
96
+ ============================================ */
97
+ .podo-datepicker__part {
98
+ display: flex;
99
+ flex: 1;
100
+ align-items: center;
101
+ justify-content: center;
102
+ padding: 0 var(--podo-spacing-2);
103
+ background: none;
104
+ border: none;
105
+ border-radius: var(--podo-radius-sm);
106
+ cursor: pointer;
107
+ transition: background 0.2s;
108
+ color: var(--podo-text-body);
109
+ white-space: nowrap;
110
+ font-variant-numeric: tabular-nums;
111
+ font-family: inherit;
112
+ font-size: var(--podo-font-size-md);
113
+ }
114
+
115
+ .podo-datepicker__part:hover {
116
+ background: var(--podo-default);
117
+ }
118
+
119
+ .podo-datepicker__part--active {
120
+ background: var(--podo-default-fill);
121
+ }
122
+
123
+ .podo-datepicker__part--placeholder {
124
+ color: var(--podo-text-disabled);
125
+ }
126
+
127
+ .podo-datepicker__separator {
128
+ color: var(--podo-text-body);
129
+ padding: 0 var(--podo-spacing-1);
130
+ font-size: var(--podo-font-size-md);
131
+ }
132
+
133
+ /* ============================================
134
+ Time Section
135
+ ============================================ */
136
+ .podo-datepicker__time-section {
137
+ display: flex;
138
+ align-items: center;
139
+ justify-content: center;
140
+ gap: 0;
141
+ }
142
+
143
+ .podo-datepicker__time-select {
144
+ appearance: none;
145
+ -webkit-appearance: none;
146
+ -moz-appearance: none;
147
+ background: none;
148
+ border: none;
149
+ padding: 0 var(--podo-spacing-2);
150
+ flex: 1;
151
+ text-align: center;
152
+ text-align-last: center;
153
+ color: var(--podo-text-body);
154
+ cursor: pointer;
155
+ border-radius: var(--podo-radius-sm);
156
+ transition: background 0.2s;
157
+ font-variant-numeric: tabular-nums;
158
+ font-family: inherit;
159
+ font-size: var(--podo-font-size-md);
160
+ }
161
+
162
+ .podo-datepicker__time-select:hover {
163
+ background: var(--podo-default);
164
+ }
165
+
166
+ .podo-datepicker__time-select:focus {
167
+ outline: none;
168
+ background: var(--podo-default-fill);
169
+ }
170
+
171
+ .podo-datepicker__time-select--placeholder {
172
+ color: var(--podo-text-disabled);
173
+ }
174
+
175
+ .podo-datepicker__time-select:disabled {
176
+ cursor: not-allowed;
177
+ opacity: 0.6;
178
+ }
179
+
180
+ .podo-datepicker__time-separator {
181
+ color: var(--podo-text-body);
182
+ font-size: var(--podo-font-size-md);
183
+ }
184
+
185
+ /* ============================================
186
+ Icon
187
+ ============================================ */
188
+ .podo-datepicker__icon {
189
+ display: flex;
190
+ align-items: center;
191
+ justify-content: center;
192
+ width: 20px;
193
+ height: 20px;
194
+ font-size: 20px;
195
+ line-height: 1;
196
+ color: var(--podo-text-sub);
197
+ flex-shrink: 0;
198
+ }
199
+
200
+ /* ============================================
201
+ Dropdown
202
+ ============================================ */
203
+ .podo-datepicker__dropdown {
204
+ position: absolute;
205
+ top: calc(100% + var(--podo-spacing-2));
206
+ left: 0;
207
+ z-index: 1000;
208
+ display: flex;
209
+ flex-direction: column;
210
+ gap: 10px;
211
+ padding: var(--podo-spacing-5);
212
+ background: var(--podo-bg-modal);
213
+ border-radius: var(--podo-radius-md);
214
+ box-shadow: 0 6px 18px -3px rgba(50, 50, 50, 0.12);
215
+ }
216
+
217
+ .podo-datepicker__dropdown--right {
218
+ left: auto;
219
+ right: 0;
220
+ }
221
+
222
+ /* ============================================
223
+ Calendar
224
+ ============================================ */
225
+ .podo-datepicker__calendar {
226
+ display: flex;
227
+ flex-direction: column;
228
+ gap: 10px;
229
+ min-width: 280px;
230
+ }
231
+
232
+ /* Navigation */
233
+ .podo-datepicker__calendar-nav {
234
+ display: flex;
235
+ align-items: center;
236
+ gap: var(--podo-spacing-4);
237
+ height: 40px;
238
+ }
239
+
240
+ .podo-datepicker__nav-button {
241
+ display: flex;
242
+ align-items: center;
243
+ justify-content: center;
244
+ width: 40px;
245
+ height: 40px;
246
+ background: var(--podo-default);
247
+ border: none;
248
+ border-radius: var(--podo-radius-md);
249
+ cursor: pointer;
250
+ transition: background 0.2s;
251
+ }
252
+
253
+ .podo-datepicker__nav-button:hover {
254
+ background: var(--podo-default-hover);
255
+ }
256
+
257
+ .podo-datepicker__nav-button:disabled {
258
+ opacity: 0.5;
259
+ cursor: not-allowed;
260
+ }
261
+
262
+ .podo-datepicker__nav-button i {
263
+ font-size: 20px;
264
+ color: var(--podo-text-body);
265
+ }
266
+
267
+ .podo-datepicker__nav-title {
268
+ flex: 1;
269
+ display: flex;
270
+ align-items: center;
271
+ justify-content: center;
272
+ gap: var(--podo-spacing-1);
273
+ }
274
+
275
+ .podo-datepicker__nav-select-wrapper {
276
+ position: relative;
277
+ display: flex;
278
+ align-items: center;
279
+ }
280
+
281
+ .podo-datepicker__nav-select-wrapper::after {
282
+ content: '';
283
+ position: absolute;
284
+ right: var(--podo-spacing-2);
285
+ top: 50%;
286
+ transform: translateY(-50%);
287
+ width: 0;
288
+ height: 0;
289
+ border-left: 4px solid transparent;
290
+ border-right: 4px solid transparent;
291
+ border-top: 5px solid var(--podo-text-body);
292
+ pointer-events: none;
293
+ }
294
+
295
+ .podo-datepicker__nav-select {
296
+ appearance: none;
297
+ -webkit-appearance: none;
298
+ -moz-appearance: none;
299
+ background: none;
300
+ border: none;
301
+ padding: var(--podo-spacing-2) 24px var(--podo-spacing-2) var(--podo-spacing-2);
302
+ border-radius: var(--podo-radius-sm);
303
+ cursor: pointer;
304
+ transition: background 0.2s;
305
+ color: var(--podo-text-body);
306
+ font-family: inherit;
307
+ font-size: var(--podo-font-size-lg);
308
+ font-weight: 600;
309
+ }
310
+
311
+ .podo-datepicker__nav-select:hover {
312
+ background: var(--podo-default);
313
+ }
314
+
315
+ .podo-datepicker__nav-select:focus {
316
+ outline: none;
317
+ background: var(--podo-default-fill);
318
+ }
319
+
320
+ /* Calendar Grid */
321
+ .podo-datepicker__calendar-grid {
322
+ display: flex;
323
+ flex-direction: column;
324
+ gap: var(--podo-spacing-2);
325
+ padding-top: var(--podo-spacing-3);
326
+ border-top: 1px solid var(--podo-border);
327
+ }
328
+
329
+ .podo-datepicker__calendar-row {
330
+ display: flex;
331
+ width: 100%;
332
+ }
333
+
334
+ .podo-datepicker__calendar-cell {
335
+ flex: 1;
336
+ display: flex;
337
+ align-items: center;
338
+ justify-content: center;
339
+ height: 40px;
340
+ font-size: var(--podo-font-size-md);
341
+ background: none;
342
+ border: none;
343
+ border-radius: var(--podo-radius-md);
344
+ cursor: pointer;
345
+ transition: background 0.2s;
346
+ font-family: inherit;
347
+ color: var(--podo-text-body);
348
+ }
349
+
350
+ .podo-datepicker__calendar-cell--header {
351
+ color: var(--podo-text-sub);
352
+ cursor: default;
353
+ font-weight: 500;
354
+ }
355
+
356
+ .podo-datepicker__calendar-cell--other {
357
+ color: var(--podo-text-disabled);
358
+ }
359
+
360
+ .podo-datepicker__calendar-cell--today {
361
+ font-weight: 600;
362
+ color: var(--podo-primary);
363
+ }
364
+
365
+ .podo-datepicker__calendar-cell--selected {
366
+ background: var(--podo-primary);
367
+ color: var(--podo-primary-reverse);
368
+ font-weight: 600;
369
+ }
370
+
371
+ .podo-datepicker__calendar-cell--in-range {
372
+ background: var(--podo-primary-fill);
373
+ border-radius: 0;
374
+ }
375
+
376
+ .podo-datepicker__calendar-cell--range-start {
377
+ background: var(--podo-primary);
378
+ color: var(--podo-primary-reverse);
379
+ font-weight: 600;
380
+ border-radius: var(--podo-radius-md);
381
+ }
382
+
383
+ .podo-datepicker__calendar-cell--range-end {
384
+ background: var(--podo-primary);
385
+ color: var(--podo-primary-reverse);
386
+ font-weight: 600;
387
+ border-radius: var(--podo-radius-md);
388
+ }
389
+
390
+ .podo-datepicker__calendar-cell--disabled {
391
+ color: var(--podo-text-disabled);
392
+ background: var(--podo-default);
393
+ border: none;
394
+ border-radius: 0;
395
+ outline: none;
396
+ cursor: not-allowed;
397
+ }
398
+
399
+ .podo-datepicker__calendar-cell--disabled:hover {
400
+ background: var(--podo-default);
401
+ }
402
+
403
+ .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 {
404
+ background: var(--podo-default);
405
+ }
406
+
407
+ /* ============================================
408
+ Period Calendars
409
+ ============================================ */
410
+ .podo-datepicker__period-calendars {
411
+ display: flex;
412
+ gap: var(--podo-spacing-4);
413
+ }
414
+
415
+ .podo-datepicker__period-calendar-left,
416
+ .podo-datepicker__period-calendar-right {
417
+ flex: 1;
418
+ }
419
+
420
+ /* ============================================
421
+ Actions
422
+ ============================================ */
423
+ .podo-datepicker__actions {
424
+ display: flex;
425
+ align-items: center;
426
+ justify-content: space-between;
427
+ gap: var(--podo-spacing-3);
428
+ padding-top: var(--podo-spacing-3);
429
+ border-top: 1px solid var(--podo-border);
430
+ }
431
+
432
+ .podo-datepicker__period-text {
433
+ font-size: var(--podo-font-size-md);
434
+ color: var(--podo-primary);
435
+ flex: 1;
436
+ }
437
+
438
+ .podo-datepicker__action-buttons {
439
+ display: flex;
440
+ gap: var(--podo-spacing-3);
441
+ flex-shrink: 0;
442
+ }
443
+
444
+ .podo-datepicker__action-button {
445
+ display: inline-flex;
446
+ align-items: center;
447
+ justify-content: center;
448
+ gap: var(--podo-spacing-2);
449
+ padding: var(--podo-spacing-3) var(--podo-spacing-4);
450
+ border-radius: var(--podo-radius-md);
451
+ cursor: pointer;
452
+ transition: background 0.2s;
453
+ white-space: nowrap;
454
+ font-family: inherit;
455
+ font-size: var(--podo-font-size-md);
456
+ }
457
+
458
+ .podo-datepicker__action-button i {
459
+ display: flex;
460
+ align-items: center;
461
+ justify-content: center;
462
+ width: 18px;
463
+ height: 18px;
464
+ font-size: 18px;
465
+ line-height: 1;
466
+ }
467
+
468
+ .podo-datepicker__action-button--reset {
469
+ background: var(--podo-default-fill);
470
+ border: 1px solid var(--podo-border);
471
+ color: var(--podo-default-reverse);
472
+ }
473
+
474
+ .podo-datepicker__action-button--reset:hover {
475
+ background: var(--podo-default-hover);
476
+ }
477
+
478
+ .podo-datepicker__action-button--apply {
479
+ background: var(--podo-primary);
480
+ border: none;
481
+ color: var(--podo-primary-reverse);
482
+ }
483
+
484
+ .podo-datepicker__action-button--apply:hover {
485
+ background: var(--podo-primary-hover);
486
+ }