zenkit-css 1.0.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 (96) hide show
  1. package/README.md +182 -0
  2. package/dist/zenkit.css +33721 -0
  3. package/dist/zenkit.css.map +1 -0
  4. package/dist/zenkit.min.css +1 -0
  5. package/dist/zenkit.min.css.map +1 -0
  6. package/package.json +41 -0
  7. package/scss/abstracts/_functions.scss +174 -0
  8. package/scss/abstracts/_mixins.scss +272 -0
  9. package/scss/abstracts/_variables.scss +216 -0
  10. package/scss/base/_reset.scss +130 -0
  11. package/scss/base/_root.scss +194 -0
  12. package/scss/base/_typography.scss +271 -0
  13. package/scss/components/_accordion.scss +200 -0
  14. package/scss/components/_affix.scss +278 -0
  15. package/scss/components/_alerts.scss +175 -0
  16. package/scss/components/_anchor.scss +438 -0
  17. package/scss/components/_autocomplete.scss +530 -0
  18. package/scss/components/_avatar.scss +256 -0
  19. package/scss/components/_backtop.scss +329 -0
  20. package/scss/components/_badges.scss +266 -0
  21. package/scss/components/_breadcrumb.scss +102 -0
  22. package/scss/components/_buttons.scss +340 -0
  23. package/scss/components/_calendar.scss +787 -0
  24. package/scss/components/_cards.scss +265 -0
  25. package/scss/components/_carousel.scss +306 -0
  26. package/scss/components/_cascader.scss +510 -0
  27. package/scss/components/_close-button.scss +106 -0
  28. package/scss/components/_colorpicker.scss +593 -0
  29. package/scss/components/_datepicker.scss +625 -0
  30. package/scss/components/_descriptions.scss +453 -0
  31. package/scss/components/_divider.scss +253 -0
  32. package/scss/components/_drawer.scss +485 -0
  33. package/scss/components/_dropdown.scss +323 -0
  34. package/scss/components/_empty.scss +321 -0
  35. package/scss/components/_floatbutton.scss +400 -0
  36. package/scss/components/_forms.scss +753 -0
  37. package/scss/components/_image.scss +497 -0
  38. package/scss/components/_inputnumber.scss +475 -0
  39. package/scss/components/_layout.scss +538 -0
  40. package/scss/components/_list-group.scss +227 -0
  41. package/scss/components/_list.scss +528 -0
  42. package/scss/components/_mentions.scss +479 -0
  43. package/scss/components/_menu.scss +510 -0
  44. package/scss/components/_message.scss +412 -0
  45. package/scss/components/_modal.scss +304 -0
  46. package/scss/components/_navbar.scss +329 -0
  47. package/scss/components/_notification.scss +499 -0
  48. package/scss/components/_offcanvas.scss +274 -0
  49. package/scss/components/_pagination.scss +176 -0
  50. package/scss/components/_placeholder.scss +237 -0
  51. package/scss/components/_popconfirm.scss +393 -0
  52. package/scss/components/_popover.scss +298 -0
  53. package/scss/components/_progress.scss +225 -0
  54. package/scss/components/_rating.scss +314 -0
  55. package/scss/components/_result.scss +383 -0
  56. package/scss/components/_segmented.scss +441 -0
  57. package/scss/components/_select.scss +412 -0
  58. package/scss/components/_spinners.scss +229 -0
  59. package/scss/components/_statistic.scss +336 -0
  60. package/scss/components/_steps.scss +343 -0
  61. package/scss/components/_tabs.scss +239 -0
  62. package/scss/components/_tag.scss +317 -0
  63. package/scss/components/_timeline.scss +341 -0
  64. package/scss/components/_timepicker.scss +468 -0
  65. package/scss/components/_toast.scss +279 -0
  66. package/scss/components/_tooltip.scss +305 -0
  67. package/scss/components/_tour.scss +488 -0
  68. package/scss/components/_transfer.scss +556 -0
  69. package/scss/components/_tree.scss +518 -0
  70. package/scss/components/_treeselect.scss +531 -0
  71. package/scss/components/_upload.scss +510 -0
  72. package/scss/components/_watermark.scss +314 -0
  73. package/scss/content/_figures.scss +38 -0
  74. package/scss/content/_images.scss +138 -0
  75. package/scss/content/_tables.scss +232 -0
  76. package/scss/layout/_container.scss +71 -0
  77. package/scss/layout/_grid.scss +258 -0
  78. package/scss/utilities/_animations.scss +494 -0
  79. package/scss/utilities/_borders.scss +246 -0
  80. package/scss/utilities/_colors.scss +194 -0
  81. package/scss/utilities/_display.scss +263 -0
  82. package/scss/utilities/_filters.scss +328 -0
  83. package/scss/utilities/_flex.scss +178 -0
  84. package/scss/utilities/_float.scss +70 -0
  85. package/scss/utilities/_grid-utils.scss +151 -0
  86. package/scss/utilities/_helpers.scss +479 -0
  87. package/scss/utilities/_interactions.scss +249 -0
  88. package/scss/utilities/_overflow.scss +204 -0
  89. package/scss/utilities/_position.scss +245 -0
  90. package/scss/utilities/_shadows.scss +67 -0
  91. package/scss/utilities/_sizing.scss +217 -0
  92. package/scss/utilities/_spacing.scss +207 -0
  93. package/scss/utilities/_text.scss +237 -0
  94. package/scss/utilities/_transforms.scss +368 -0
  95. package/scss/utilities/_visibility.scss +251 -0
  96. package/scss/zenkit.scss +121 -0
@@ -0,0 +1,625 @@
1
+ // ========================================
2
+ // ZenKit - DatePicker Component
3
+ // Calendar-based date selection
4
+ // ========================================
5
+
6
+ @use '../abstracts/variables' as *;
7
+
8
+ // ----------------------------------------
9
+ // DatePicker Wrapper
10
+ // ----------------------------------------
11
+ .datepicker {
12
+ position: relative;
13
+ display: inline-block;
14
+ width: 100%;
15
+ }
16
+
17
+ // ----------------------------------------
18
+ // DatePicker Input
19
+ // ----------------------------------------
20
+ .datepicker-input {
21
+ display: flex;
22
+ align-items: center;
23
+ width: 100%;
24
+ padding: 0.5rem 0.75rem;
25
+ font-size: 1rem;
26
+ font-weight: 400;
27
+ line-height: 1.5;
28
+ color: var(--text-primary);
29
+ background-color: var(--bg-primary);
30
+ border: 1px solid var(--border-color);
31
+ border-radius: $border-radius;
32
+ cursor: pointer;
33
+ transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
34
+
35
+ &:hover {
36
+ border-color: var(--primary);
37
+ }
38
+
39
+ &:focus,
40
+ &.is-open {
41
+ border-color: var(--primary);
42
+ outline: 0;
43
+ box-shadow: 0 0 0 0.2rem rgba(var(--primary-rgb), 0.25);
44
+ }
45
+
46
+ &.is-disabled {
47
+ background-color: var(--bg-secondary);
48
+ cursor: not-allowed;
49
+ opacity: 0.65;
50
+ }
51
+ }
52
+
53
+ .datepicker-input-text {
54
+ flex: 1;
55
+ overflow: hidden;
56
+ text-overflow: ellipsis;
57
+ white-space: nowrap;
58
+ }
59
+
60
+ .datepicker-input-placeholder {
61
+ color: var(--text-muted);
62
+ }
63
+
64
+ .datepicker-input-icon {
65
+ display: flex;
66
+ align-items: center;
67
+ color: var(--text-muted);
68
+ }
69
+
70
+ .datepicker-input-clear {
71
+ display: flex;
72
+ align-items: center;
73
+ margin-left: 0.25rem;
74
+ padding: 0.125rem;
75
+ color: var(--text-muted);
76
+ cursor: pointer;
77
+ border-radius: 50%;
78
+ transition: color 0.15s ease, background-color 0.15s ease;
79
+
80
+ &:hover {
81
+ color: var(--text-primary);
82
+ background-color: var(--bg-tertiary);
83
+ }
84
+ }
85
+
86
+ // ----------------------------------------
87
+ // DatePicker Dropdown Panel
88
+ // ----------------------------------------
89
+ .datepicker-dropdown {
90
+ position: absolute;
91
+ top: 100%;
92
+ left: 0;
93
+ z-index: $z-dropdown;
94
+ display: none;
95
+ margin-top: 4px;
96
+ background-color: var(--bg-primary);
97
+ border: 1px solid var(--border-color);
98
+ border-radius: $border-radius;
99
+ box-shadow: $shadow-lg;
100
+
101
+ &.is-open {
102
+ display: block;
103
+ }
104
+
105
+ &.datepicker-dropdown-up {
106
+ top: auto;
107
+ bottom: 100%;
108
+ margin-top: 0;
109
+ margin-bottom: 4px;
110
+ }
111
+ }
112
+
113
+ // ----------------------------------------
114
+ // DatePicker Header
115
+ // ----------------------------------------
116
+ .datepicker-header {
117
+ display: flex;
118
+ align-items: center;
119
+ justify-content: space-between;
120
+ padding: 0.75rem;
121
+ border-bottom: 1px solid var(--border-color);
122
+ }
123
+
124
+ .datepicker-nav {
125
+ display: flex;
126
+ align-items: center;
127
+ justify-content: center;
128
+ width: 1.75rem;
129
+ height: 1.75rem;
130
+ padding: 0;
131
+ color: var(--text-muted);
132
+ background: transparent;
133
+ border: none;
134
+ border-radius: $border-radius-sm;
135
+ cursor: pointer;
136
+ transition: color 0.15s ease, background-color 0.15s ease;
137
+
138
+ &:hover {
139
+ color: var(--text-primary);
140
+ background-color: var(--bg-secondary);
141
+ }
142
+
143
+ &:disabled {
144
+ opacity: 0.5;
145
+ cursor: not-allowed;
146
+ }
147
+ }
148
+
149
+ .datepicker-nav-prev-year,
150
+ .datepicker-nav-next-year {
151
+ color: var(--text-muted);
152
+ }
153
+
154
+ .datepicker-title {
155
+ display: flex;
156
+ align-items: center;
157
+ gap: 0.25rem;
158
+ }
159
+
160
+ .datepicker-title-btn {
161
+ padding: 0.25rem 0.5rem;
162
+ font-size: 1rem;
163
+ font-weight: 500;
164
+ color: var(--text-primary);
165
+ background: transparent;
166
+ border: none;
167
+ border-radius: $border-radius-sm;
168
+ cursor: pointer;
169
+ transition: background-color 0.15s ease;
170
+
171
+ &:hover {
172
+ background-color: var(--bg-secondary);
173
+ }
174
+ }
175
+
176
+ // ----------------------------------------
177
+ // DatePicker Body (Calendar)
178
+ // ----------------------------------------
179
+ .datepicker-body {
180
+ padding: 0.5rem;
181
+ }
182
+
183
+ // Week days header
184
+ .datepicker-weekdays {
185
+ display: grid;
186
+ grid-template-columns: repeat(7, 1fr);
187
+ margin-bottom: 0.25rem;
188
+ }
189
+
190
+ .datepicker-weekday {
191
+ display: flex;
192
+ align-items: center;
193
+ justify-content: center;
194
+ height: 2rem;
195
+ font-size: 0.75rem;
196
+ font-weight: 600;
197
+ color: var(--text-muted);
198
+ text-transform: uppercase;
199
+ }
200
+
201
+ // Days grid
202
+ .datepicker-days {
203
+ display: grid;
204
+ grid-template-columns: repeat(7, 1fr);
205
+ gap: 2px;
206
+ }
207
+
208
+ .datepicker-day {
209
+ display: flex;
210
+ align-items: center;
211
+ justify-content: center;
212
+ width: 2.25rem;
213
+ height: 2.25rem;
214
+ font-size: 0.875rem;
215
+ color: var(--text-primary);
216
+ background: transparent;
217
+ border: none;
218
+ border-radius: $border-radius-sm;
219
+ cursor: pointer;
220
+ transition: color 0.15s ease, background-color 0.15s ease;
221
+
222
+ &:hover:not(.is-disabled):not(.is-selected) {
223
+ background-color: var(--bg-secondary);
224
+ }
225
+
226
+ &.is-today {
227
+ font-weight: 600;
228
+ color: var(--primary);
229
+ border: 1px solid var(--primary);
230
+ }
231
+
232
+ &.is-selected {
233
+ color: #fff;
234
+ background-color: var(--primary);
235
+ }
236
+
237
+ &.is-in-range {
238
+ background-color: rgba(var(--primary-rgb), 0.1);
239
+ border-radius: 0;
240
+ }
241
+
242
+ &.is-range-start {
243
+ border-radius: $border-radius-sm 0 0 $border-radius-sm;
244
+ }
245
+
246
+ &.is-range-end {
247
+ border-radius: 0 $border-radius-sm $border-radius-sm 0;
248
+ }
249
+
250
+ &.is-other-month {
251
+ color: var(--text-muted);
252
+ opacity: 0.5;
253
+ }
254
+
255
+ &.is-disabled {
256
+ color: var(--text-muted);
257
+ cursor: not-allowed;
258
+ opacity: 0.35;
259
+ }
260
+
261
+ &.is-weekend {
262
+ color: var(--danger);
263
+ }
264
+ }
265
+
266
+ // ----------------------------------------
267
+ // DatePicker Months View
268
+ // ----------------------------------------
269
+ .datepicker-months {
270
+ display: grid;
271
+ grid-template-columns: repeat(3, 1fr);
272
+ gap: 0.5rem;
273
+ padding: 0.5rem;
274
+ }
275
+
276
+ .datepicker-month {
277
+ display: flex;
278
+ align-items: center;
279
+ justify-content: center;
280
+ height: 2.5rem;
281
+ font-size: 0.875rem;
282
+ color: var(--text-primary);
283
+ background: transparent;
284
+ border: none;
285
+ border-radius: $border-radius-sm;
286
+ cursor: pointer;
287
+ transition: color 0.15s ease, background-color 0.15s ease;
288
+
289
+ &:hover:not(.is-disabled):not(.is-selected) {
290
+ background-color: var(--bg-secondary);
291
+ }
292
+
293
+ &.is-current {
294
+ font-weight: 600;
295
+ color: var(--primary);
296
+ border: 1px solid var(--primary);
297
+ }
298
+
299
+ &.is-selected {
300
+ color: #fff;
301
+ background-color: var(--primary);
302
+ }
303
+
304
+ &.is-disabled {
305
+ color: var(--text-muted);
306
+ cursor: not-allowed;
307
+ opacity: 0.35;
308
+ }
309
+ }
310
+
311
+ // ----------------------------------------
312
+ // DatePicker Years View
313
+ // ----------------------------------------
314
+ .datepicker-years {
315
+ display: grid;
316
+ grid-template-columns: repeat(3, 1fr);
317
+ gap: 0.5rem;
318
+ padding: 0.5rem;
319
+ }
320
+
321
+ .datepicker-year {
322
+ display: flex;
323
+ align-items: center;
324
+ justify-content: center;
325
+ height: 2.5rem;
326
+ font-size: 0.875rem;
327
+ color: var(--text-primary);
328
+ background: transparent;
329
+ border: none;
330
+ border-radius: $border-radius-sm;
331
+ cursor: pointer;
332
+ transition: color 0.15s ease, background-color 0.15s ease;
333
+
334
+ &:hover:not(.is-disabled):not(.is-selected) {
335
+ background-color: var(--bg-secondary);
336
+ }
337
+
338
+ &.is-current {
339
+ font-weight: 600;
340
+ color: var(--primary);
341
+ border: 1px solid var(--primary);
342
+ }
343
+
344
+ &.is-selected {
345
+ color: #fff;
346
+ background-color: var(--primary);
347
+ }
348
+
349
+ &.is-disabled {
350
+ color: var(--text-muted);
351
+ cursor: not-allowed;
352
+ opacity: 0.35;
353
+ }
354
+ }
355
+
356
+ // ----------------------------------------
357
+ // DatePicker Decades View
358
+ // ----------------------------------------
359
+ .datepicker-decades {
360
+ display: grid;
361
+ grid-template-columns: repeat(3, 1fr);
362
+ gap: 0.5rem;
363
+ padding: 0.5rem;
364
+ }
365
+
366
+ .datepicker-decade {
367
+ display: flex;
368
+ align-items: center;
369
+ justify-content: center;
370
+ height: 2.5rem;
371
+ font-size: 0.75rem;
372
+ color: var(--text-primary);
373
+ background: transparent;
374
+ border: none;
375
+ border-radius: $border-radius-sm;
376
+ cursor: pointer;
377
+ transition: color 0.15s ease, background-color 0.15s ease;
378
+
379
+ &:hover:not(.is-disabled):not(.is-selected) {
380
+ background-color: var(--bg-secondary);
381
+ }
382
+
383
+ &.is-selected {
384
+ color: #fff;
385
+ background-color: var(--primary);
386
+ }
387
+ }
388
+
389
+ // ----------------------------------------
390
+ // DatePicker Footer
391
+ // ----------------------------------------
392
+ .datepicker-footer {
393
+ display: flex;
394
+ align-items: center;
395
+ justify-content: space-between;
396
+ padding: 0.5rem 0.75rem;
397
+ border-top: 1px solid var(--border-color);
398
+ }
399
+
400
+ .datepicker-today-btn,
401
+ .datepicker-clear-btn {
402
+ padding: 0.25rem 0.75rem;
403
+ font-size: 0.875rem;
404
+ color: var(--primary);
405
+ background: transparent;
406
+ border: none;
407
+ border-radius: $border-radius-sm;
408
+ cursor: pointer;
409
+ transition: background-color 0.15s ease;
410
+
411
+ &:hover {
412
+ background-color: rgba(var(--primary-rgb), 0.1);
413
+ }
414
+ }
415
+
416
+ // ----------------------------------------
417
+ // DatePicker Shortcuts
418
+ // ----------------------------------------
419
+ .datepicker-shortcuts {
420
+ display: flex;
421
+ flex-direction: column;
422
+ gap: 0.25rem;
423
+ padding: 0.5rem;
424
+ border-right: 1px solid var(--border-color);
425
+ }
426
+
427
+ .datepicker-shortcut {
428
+ padding: 0.375rem 0.75rem;
429
+ font-size: 0.875rem;
430
+ color: var(--text-primary);
431
+ text-align: left;
432
+ background: transparent;
433
+ border: none;
434
+ border-radius: $border-radius-sm;
435
+ cursor: pointer;
436
+ white-space: nowrap;
437
+ transition: background-color 0.15s ease;
438
+
439
+ &:hover {
440
+ background-color: var(--bg-secondary);
441
+ }
442
+
443
+ &.is-active {
444
+ color: var(--primary);
445
+ background-color: rgba(var(--primary-rgb), 0.1);
446
+ }
447
+ }
448
+
449
+ // ----------------------------------------
450
+ // DatePicker with Shortcuts Layout
451
+ // ----------------------------------------
452
+ .datepicker-with-shortcuts {
453
+ display: flex;
454
+ }
455
+
456
+ .datepicker-panel {
457
+ flex: 1;
458
+ }
459
+
460
+ // ----------------------------------------
461
+ // Date Range Picker
462
+ // ----------------------------------------
463
+ .daterangepicker-dropdown {
464
+ display: flex;
465
+ }
466
+
467
+ .daterangepicker-panel {
468
+ &:not(:last-child) {
469
+ border-right: 1px solid var(--border-color);
470
+ }
471
+ }
472
+
473
+ .daterangepicker-separator {
474
+ display: flex;
475
+ align-items: center;
476
+ padding: 0 0.5rem;
477
+ color: var(--text-muted);
478
+ }
479
+
480
+ // ----------------------------------------
481
+ // DatePicker Sizes
482
+ // ----------------------------------------
483
+ .datepicker-sm .datepicker-input {
484
+ padding: 0.25rem 0.5rem;
485
+ font-size: 0.875rem;
486
+ }
487
+
488
+ .datepicker-sm .datepicker-day {
489
+ width: 1.75rem;
490
+ height: 1.75rem;
491
+ font-size: 0.75rem;
492
+ }
493
+
494
+ .datepicker-lg .datepicker-input {
495
+ padding: 0.75rem 1rem;
496
+ font-size: 1.125rem;
497
+ }
498
+
499
+ .datepicker-lg .datepicker-day {
500
+ width: 2.75rem;
501
+ height: 2.75rem;
502
+ font-size: 1rem;
503
+ }
504
+
505
+ // ----------------------------------------
506
+ // DatePicker States
507
+ // ----------------------------------------
508
+ .datepicker-error .datepicker-input {
509
+ border-color: var(--danger);
510
+
511
+ &:focus,
512
+ &.is-open {
513
+ box-shadow: 0 0 0 0.2rem rgba(var(--danger-rgb), 0.25);
514
+ }
515
+ }
516
+
517
+ .datepicker-success .datepicker-input {
518
+ border-color: var(--success);
519
+
520
+ &:focus,
521
+ &.is-open {
522
+ box-shadow: 0 0 0 0.2rem rgba(var(--success-rgb), 0.25);
523
+ }
524
+ }
525
+
526
+ // ----------------------------------------
527
+ // DatePicker Variants
528
+ // ----------------------------------------
529
+ .datepicker-borderless .datepicker-input {
530
+ border-color: transparent;
531
+ background-color: transparent;
532
+
533
+ &:hover,
534
+ &:focus,
535
+ &.is-open {
536
+ border-color: transparent;
537
+ background-color: var(--bg-secondary);
538
+ box-shadow: none;
539
+ }
540
+ }
541
+
542
+ .datepicker-filled .datepicker-input {
543
+ border-color: transparent;
544
+ background-color: var(--bg-secondary);
545
+
546
+ &:hover {
547
+ background-color: var(--bg-tertiary);
548
+ }
549
+
550
+ &:focus,
551
+ &.is-open {
552
+ border-color: var(--primary);
553
+ background-color: var(--bg-primary);
554
+ }
555
+ }
556
+
557
+ // ----------------------------------------
558
+ // Week Picker
559
+ // ----------------------------------------
560
+ .weekpicker .datepicker-day {
561
+ &.is-in-week {
562
+ background-color: rgba(var(--primary-rgb), 0.1);
563
+ border-radius: 0;
564
+ }
565
+
566
+ &.is-week-start {
567
+ border-radius: $border-radius-sm 0 0 $border-radius-sm;
568
+ }
569
+
570
+ &.is-week-end {
571
+ border-radius: 0 $border-radius-sm $border-radius-sm 0;
572
+ }
573
+ }
574
+
575
+ // ----------------------------------------
576
+ // Quarter Picker
577
+ // ----------------------------------------
578
+ .datepicker-quarters {
579
+ display: grid;
580
+ grid-template-columns: repeat(2, 1fr);
581
+ gap: 0.5rem;
582
+ padding: 0.5rem;
583
+ }
584
+
585
+ .datepicker-quarter {
586
+ display: flex;
587
+ align-items: center;
588
+ justify-content: center;
589
+ height: 3rem;
590
+ font-size: 0.875rem;
591
+ color: var(--text-primary);
592
+ background: transparent;
593
+ border: none;
594
+ border-radius: $border-radius-sm;
595
+ cursor: pointer;
596
+ transition: color 0.15s ease, background-color 0.15s ease;
597
+
598
+ &:hover:not(.is-disabled):not(.is-selected) {
599
+ background-color: var(--bg-secondary);
600
+ }
601
+
602
+ &.is-current {
603
+ font-weight: 600;
604
+ color: var(--primary);
605
+ border: 1px solid var(--primary);
606
+ }
607
+
608
+ &.is-selected {
609
+ color: #fff;
610
+ background-color: var(--primary);
611
+ }
612
+ }
613
+
614
+ // ----------------------------------------
615
+ // Inline DatePicker
616
+ // ----------------------------------------
617
+ .datepicker-inline {
618
+ .datepicker-dropdown {
619
+ position: static;
620
+ display: block;
621
+ margin-top: 0;
622
+ box-shadow: none;
623
+ border: 1px solid var(--border-color);
624
+ }
625
+ }