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,468 @@
1
+ // ========================================
2
+ // ZenKit - TimePicker Component
3
+ // Time selection panel
4
+ // ========================================
5
+
6
+ @use '../abstracts/variables' as *;
7
+
8
+ // ----------------------------------------
9
+ // TimePicker Wrapper
10
+ // ----------------------------------------
11
+ .timepicker {
12
+ position: relative;
13
+ display: inline-block;
14
+ width: 100%;
15
+ }
16
+
17
+ // ----------------------------------------
18
+ // TimePicker Input
19
+ // ----------------------------------------
20
+ .timepicker-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
+ .timepicker-input-text {
54
+ flex: 1;
55
+ overflow: hidden;
56
+ text-overflow: ellipsis;
57
+ white-space: nowrap;
58
+ }
59
+
60
+ .timepicker-input-placeholder {
61
+ color: var(--text-muted);
62
+ }
63
+
64
+ .timepicker-input-icon {
65
+ display: flex;
66
+ align-items: center;
67
+ color: var(--text-muted);
68
+ }
69
+
70
+ .timepicker-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
+ // TimePicker Dropdown Panel
88
+ // ----------------------------------------
89
+ .timepicker-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
+ &.timepicker-dropdown-up {
106
+ top: auto;
107
+ bottom: 100%;
108
+ margin-top: 0;
109
+ margin-bottom: 4px;
110
+ }
111
+ }
112
+
113
+ // ----------------------------------------
114
+ // TimePicker Panel (Column Layout)
115
+ // ----------------------------------------
116
+ .timepicker-panel {
117
+ display: flex;
118
+ height: 224px;
119
+ }
120
+
121
+ .timepicker-column {
122
+ position: relative;
123
+ display: flex;
124
+ flex-direction: column;
125
+ width: 56px;
126
+ height: 100%;
127
+ overflow-y: auto;
128
+ scroll-behavior: smooth;
129
+
130
+ &:not(:last-child) {
131
+ border-right: 1px solid var(--border-color);
132
+ }
133
+
134
+ // Hide scrollbar but keep functionality
135
+ scrollbar-width: none;
136
+ -ms-overflow-style: none;
137
+
138
+ &::-webkit-scrollbar {
139
+ display: none;
140
+ }
141
+ }
142
+
143
+ .timepicker-column-title {
144
+ position: sticky;
145
+ top: 0;
146
+ z-index: 1;
147
+ padding: 0.5rem;
148
+ font-size: 0.75rem;
149
+ font-weight: 600;
150
+ color: var(--text-muted);
151
+ text-align: center;
152
+ text-transform: uppercase;
153
+ background-color: var(--bg-primary);
154
+ border-bottom: 1px solid var(--border-color);
155
+ }
156
+
157
+ .timepicker-cell {
158
+ display: flex;
159
+ align-items: center;
160
+ justify-content: center;
161
+ min-height: 32px;
162
+ padding: 0.25rem 0.5rem;
163
+ font-size: 0.875rem;
164
+ color: var(--text-primary);
165
+ background: transparent;
166
+ border: none;
167
+ cursor: pointer;
168
+ transition: color 0.15s ease, background-color 0.15s ease;
169
+
170
+ &:hover:not(.is-disabled):not(.is-selected) {
171
+ background-color: var(--bg-secondary);
172
+ }
173
+
174
+ &.is-selected {
175
+ color: #fff;
176
+ background-color: var(--primary);
177
+ }
178
+
179
+ &.is-disabled {
180
+ color: var(--text-muted);
181
+ cursor: not-allowed;
182
+ opacity: 0.35;
183
+ }
184
+ }
185
+
186
+ // ----------------------------------------
187
+ // TimePicker Footer
188
+ // ----------------------------------------
189
+ .timepicker-footer {
190
+ display: flex;
191
+ align-items: center;
192
+ justify-content: space-between;
193
+ padding: 0.5rem 0.75rem;
194
+ border-top: 1px solid var(--border-color);
195
+ }
196
+
197
+ .timepicker-now-btn,
198
+ .timepicker-ok-btn {
199
+ padding: 0.25rem 0.75rem;
200
+ font-size: 0.875rem;
201
+ color: var(--primary);
202
+ background: transparent;
203
+ border: none;
204
+ border-radius: $border-radius-sm;
205
+ cursor: pointer;
206
+ transition: background-color 0.15s ease;
207
+
208
+ &:hover {
209
+ background-color: rgba(var(--primary-rgb), 0.1);
210
+ }
211
+ }
212
+
213
+ .timepicker-ok-btn {
214
+ color: #fff;
215
+ background-color: var(--primary);
216
+
217
+ &:hover {
218
+ background-color: var(--primary-dark);
219
+ }
220
+ }
221
+
222
+ // ----------------------------------------
223
+ // TimePicker with AM/PM
224
+ // ----------------------------------------
225
+ .timepicker-12h .timepicker-column-ampm {
226
+ width: 48px;
227
+ }
228
+
229
+ // ----------------------------------------
230
+ // TimePicker Sizes
231
+ // ----------------------------------------
232
+ .timepicker-sm .timepicker-input {
233
+ padding: 0.25rem 0.5rem;
234
+ font-size: 0.875rem;
235
+ }
236
+
237
+ .timepicker-sm .timepicker-panel {
238
+ height: 180px;
239
+ }
240
+
241
+ .timepicker-sm .timepicker-column {
242
+ width: 44px;
243
+ }
244
+
245
+ .timepicker-sm .timepicker-cell {
246
+ min-height: 28px;
247
+ font-size: 0.75rem;
248
+ }
249
+
250
+ .timepicker-lg .timepicker-input {
251
+ padding: 0.75rem 1rem;
252
+ font-size: 1.125rem;
253
+ }
254
+
255
+ .timepicker-lg .timepicker-panel {
256
+ height: 280px;
257
+ }
258
+
259
+ .timepicker-lg .timepicker-column {
260
+ width: 68px;
261
+ }
262
+
263
+ .timepicker-lg .timepicker-cell {
264
+ min-height: 40px;
265
+ font-size: 1rem;
266
+ }
267
+
268
+ // ----------------------------------------
269
+ // TimePicker States
270
+ // ----------------------------------------
271
+ .timepicker-error .timepicker-input {
272
+ border-color: var(--danger);
273
+
274
+ &:focus,
275
+ &.is-open {
276
+ box-shadow: 0 0 0 0.2rem rgba(var(--danger-rgb), 0.25);
277
+ }
278
+ }
279
+
280
+ .timepicker-success .timepicker-input {
281
+ border-color: var(--success);
282
+
283
+ &:focus,
284
+ &.is-open {
285
+ box-shadow: 0 0 0 0.2rem rgba(var(--success-rgb), 0.25);
286
+ }
287
+ }
288
+
289
+ // ----------------------------------------
290
+ // TimePicker Variants
291
+ // ----------------------------------------
292
+ .timepicker-borderless .timepicker-input {
293
+ border-color: transparent;
294
+ background-color: transparent;
295
+
296
+ &:hover,
297
+ &:focus,
298
+ &.is-open {
299
+ border-color: transparent;
300
+ background-color: var(--bg-secondary);
301
+ box-shadow: none;
302
+ }
303
+ }
304
+
305
+ .timepicker-filled .timepicker-input {
306
+ border-color: transparent;
307
+ background-color: var(--bg-secondary);
308
+
309
+ &:hover {
310
+ background-color: var(--bg-tertiary);
311
+ }
312
+
313
+ &:focus,
314
+ &.is-open {
315
+ border-color: var(--primary);
316
+ background-color: var(--bg-primary);
317
+ }
318
+ }
319
+
320
+ // ----------------------------------------
321
+ // Time Range Picker
322
+ // ----------------------------------------
323
+ .timerangepicker {
324
+ .timepicker-input {
325
+ display: flex;
326
+ gap: 0.5rem;
327
+ }
328
+ }
329
+
330
+ .timerangepicker-separator {
331
+ color: var(--text-muted);
332
+ }
333
+
334
+ .timerangepicker-dropdown {
335
+ display: flex;
336
+ }
337
+
338
+ .timerangepicker-panel {
339
+ &:not(:last-child) {
340
+ border-right: 1px solid var(--border-color);
341
+ }
342
+ }
343
+
344
+ // ----------------------------------------
345
+ // Clock Face Variant
346
+ // ----------------------------------------
347
+ .timepicker-clock {
348
+ .timepicker-panel {
349
+ flex-direction: column;
350
+ align-items: center;
351
+ height: auto;
352
+ padding: 1rem;
353
+ }
354
+ }
355
+
356
+ .timepicker-clock-face {
357
+ position: relative;
358
+ width: 200px;
359
+ height: 200px;
360
+ border-radius: 50%;
361
+ background-color: var(--bg-secondary);
362
+ }
363
+
364
+ .timepicker-clock-center {
365
+ position: absolute;
366
+ top: 50%;
367
+ left: 50%;
368
+ width: 8px;
369
+ height: 8px;
370
+ background-color: var(--primary);
371
+ border-radius: 50%;
372
+ transform: translate(-50%, -50%);
373
+ }
374
+
375
+ .timepicker-clock-hand {
376
+ position: absolute;
377
+ bottom: 50%;
378
+ left: 50%;
379
+ width: 2px;
380
+ height: 35%;
381
+ background-color: var(--primary);
382
+ transform-origin: center bottom;
383
+ }
384
+
385
+ .timepicker-clock-number {
386
+ position: absolute;
387
+ display: flex;
388
+ align-items: center;
389
+ justify-content: center;
390
+ width: 32px;
391
+ height: 32px;
392
+ font-size: 0.875rem;
393
+ color: var(--text-primary);
394
+ background: transparent;
395
+ border: none;
396
+ border-radius: 50%;
397
+ cursor: pointer;
398
+ transition: color 0.15s ease, background-color 0.15s ease;
399
+
400
+ &:hover {
401
+ background-color: var(--bg-tertiary);
402
+ }
403
+
404
+ &.is-selected {
405
+ color: #fff;
406
+ background-color: var(--primary);
407
+ }
408
+ }
409
+
410
+ .timepicker-clock-mode {
411
+ display: flex;
412
+ gap: 0.5rem;
413
+ margin-top: 1rem;
414
+ }
415
+
416
+ .timepicker-clock-mode-btn {
417
+ padding: 0.375rem 0.75rem;
418
+ font-size: 0.875rem;
419
+ color: var(--text-primary);
420
+ background: transparent;
421
+ border: 1px solid var(--border-color);
422
+ border-radius: $border-radius-sm;
423
+ cursor: pointer;
424
+ transition: all 0.15s ease;
425
+
426
+ &:hover {
427
+ background-color: var(--bg-secondary);
428
+ }
429
+
430
+ &.is-active {
431
+ color: #fff;
432
+ background-color: var(--primary);
433
+ border-color: var(--primary);
434
+ }
435
+ }
436
+
437
+ // ----------------------------------------
438
+ // Inline TimePicker
439
+ // ----------------------------------------
440
+ .timepicker-inline {
441
+ .timepicker-dropdown {
442
+ position: static;
443
+ display: block;
444
+ margin-top: 0;
445
+ box-shadow: none;
446
+ border: 1px solid var(--border-color);
447
+ }
448
+ }
449
+
450
+ // ----------------------------------------
451
+ // DateTime Picker Combined
452
+ // ----------------------------------------
453
+ .datetimepicker-dropdown {
454
+ display: flex;
455
+ }
456
+
457
+ .datetimepicker-date-panel {
458
+ border-right: 1px solid var(--border-color);
459
+ }
460
+
461
+ .datetimepicker-time-panel {
462
+ display: flex;
463
+ flex-direction: column;
464
+ }
465
+
466
+ .datetimepicker-time-panel .timepicker-panel {
467
+ flex: 1;
468
+ }