@artemy-tech/datepicker 0.7.0 → 0.7.1

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.
@@ -0,0 +1,562 @@
1
+ @import 'react-day-picker/style.css';
2
+
3
+ :root {
4
+ --datepicker-font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Text',
5
+ system-ui, sans-serif;
6
+ --datepicker-font-size: 16px;
7
+ --datepicker-font-size-label: 12px;
8
+
9
+ --datepicker-color-text: #212121;
10
+ --datepicker-color-placeholder: #9e9e9e;
11
+ --datepicker-color-border: #e0e0e0;
12
+ --datepicker-color-border-focus: #1f84db;
13
+ --datepicker-color-border-error: #fb3a2f;
14
+ --datepicker-color-bg: #fff;
15
+ --datepicker-color-bg-disabled: #fafafa;
16
+ --datepicker-color-label: #9e9e9e;
17
+ --datepicker-color-label-focus: #1f84db;
18
+ --datepicker-color-label-error: #fb3a2f;
19
+ --datepicker-color-accent: #1f84db;
20
+
21
+ --datepicker-color-today-bg: #e4f1f9;
22
+ --datepicker-color-hover: #f5f5f5;
23
+
24
+ --datepicker-height: 40px;
25
+ --datepicker-padding-h: 12px;
26
+ --datepicker-label-top-filled: 4px;
27
+ --datepicker-input-padding-top: 20px;
28
+ --datepicker-radius: 4px;
29
+ --datepicker-shadow: 0 0 4px rgba(0, 0, 0, 0.04),
30
+ 0 2px 4px rgba(0, 0, 0, 0.08);
31
+
32
+ --datepicker-icon-size: 16px;
33
+ --datepicker-icon-gap: 6px;
34
+ --datepicker-icon-color: #9e9e9e;
35
+ }
36
+
37
+ .datepicker--s {
38
+ font-size: 14px;
39
+ --datepicker-height: 32px;
40
+ --datepicker-font-size: 14px;
41
+ --datepicker-padding-h: 12px;
42
+ }
43
+
44
+ .datepicker--l {
45
+ --datepicker-height: 56px;
46
+ --datepicker-padding-h: 16px;
47
+ --datepicker-label-top-filled: 8px;
48
+ --datepicker-input-padding-top: 24px;
49
+ }
50
+
51
+ .datepicker,
52
+ .daterangepicker {
53
+ position: relative;
54
+ display: inline-block;
55
+ font-family: var(--datepicker-font-family);
56
+ font-size: var(--datepicker-font-size);
57
+ }
58
+
59
+ .datepicker__field {
60
+ position: relative;
61
+ height: var(--datepicker-height);
62
+ min-width: 220px;
63
+ background: var(--datepicker-color-bg);
64
+ border: 1px solid var(--datepicker-color-border);
65
+ border-radius: var(--datepicker-radius);
66
+ box-sizing: border-box;
67
+ transition: border-color 0.15s;
68
+ cursor: text;
69
+ }
70
+
71
+ .datepicker__field--custom {
72
+ height: auto;
73
+ min-width: 0;
74
+ border: none;
75
+ background: none;
76
+ box-shadow: none;
77
+ cursor: auto;
78
+ }
79
+
80
+ .daterangepicker .datepicker__field {
81
+ min-width: 320px;
82
+ }
83
+
84
+ .datepicker[data-focused] .datepicker__field {
85
+ border-color: var(--datepicker-color-border-focus);
86
+ box-shadow: 0 0 0 3px
87
+ color-mix(in srgb, var(--datepicker-color-border-focus) 15%, transparent);
88
+ }
89
+
90
+ .datepicker[data-failed] .datepicker__field {
91
+ border-color: var(--datepicker-color-border-error);
92
+ }
93
+
94
+ .datepicker[data-disabled] .datepicker__field {
95
+ background: var(--datepicker-color-bg-disabled);
96
+ border-color: var(--datepicker-color-border);
97
+ cursor: not-allowed;
98
+ }
99
+
100
+ .datepicker__label {
101
+ position: absolute;
102
+ left: calc(var(--datepicker-padding-h) + var(--_prefix-extra, 0px));
103
+ right: calc(var(--datepicker-padding-h) + var(--_suffix-extra, 0px));
104
+ top: 50%;
105
+ transform: translateY(-50%);
106
+ font-size: var(--datepicker-font-size);
107
+ color: var(--datepicker-color-label);
108
+ pointer-events: none;
109
+ transition: top 0.15s ease, font-size 0.15s ease, color 0.15s ease,
110
+ transform 0.15s ease;
111
+ white-space: nowrap;
112
+ overflow: hidden;
113
+ text-overflow: ellipsis;
114
+ line-height: 1;
115
+ }
116
+
117
+ .datepicker[data-focused] .datepicker__label,
118
+ .datepicker[data-filled] .datepicker__label {
119
+ top: var(--datepicker-label-top-filled);
120
+ transform: none;
121
+ font-size: var(--datepicker-font-size-label);
122
+ }
123
+
124
+ .datepicker[data-focused] .datepicker__label {
125
+ color: var(--datepicker-color-label-focus);
126
+ }
127
+
128
+ .datepicker[data-failed] .datepicker__label {
129
+ color: var(--datepicker-color-label-error);
130
+ }
131
+
132
+ .datepicker--s .datepicker__label {
133
+ font-size: inherit;
134
+ transition: opacity 0.15s ease;
135
+ }
136
+
137
+ .datepicker--s[data-focused] .datepicker__label,
138
+ .datepicker--s[data-filled] .datepicker__label {
139
+ top: 50%;
140
+ transform: translateY(-50%);
141
+ font-size: inherit;
142
+ color: var(--datepicker-color-label);
143
+ opacity: 0;
144
+ }
145
+
146
+ .datepicker__icon {
147
+ position: absolute;
148
+ top: 50%;
149
+ transform: translateY(-50%);
150
+ display: flex;
151
+ align-items: center;
152
+ justify-content: center;
153
+ color: var(--datepicker-icon-color);
154
+ width: var(--datepicker-icon-size);
155
+ height: var(--datepicker-icon-size);
156
+ pointer-events: none;
157
+ }
158
+
159
+ .datepicker__icon--start {
160
+ left: var(--datepicker-padding-h);
161
+ }
162
+
163
+ .datepicker__icon--end {
164
+ right: var(--datepicker-padding-h);
165
+ }
166
+
167
+ .datepicker__input {
168
+ position: absolute;
169
+ inset: 0;
170
+ width: 100%;
171
+ height: 100%;
172
+ box-sizing: border-box;
173
+ padding-top: var(--datepicker-input-padding-top);
174
+ padding-bottom: 8px;
175
+ padding-left: calc(var(--datepicker-padding-h) + var(--_prefix-extra, 0px));
176
+ padding-right: calc(var(--datepicker-padding-h) + var(--_suffix-extra, 0px));
177
+ background: transparent;
178
+ border: none;
179
+ outline: none;
180
+ font-family: var(--datepicker-font-family);
181
+ font-size: var(--datepicker-font-size);
182
+ color: var(--datepicker-color-text);
183
+ cursor: text;
184
+ }
185
+
186
+ .datepicker__field:not(:has(.datepicker__label)) .datepicker__input {
187
+ padding-top: 0;
188
+ padding-bottom: 0;
189
+ }
190
+
191
+ .datepicker__field[data-icon-start] {
192
+ --_prefix-extra: calc(
193
+ var(--datepicker-icon-size) + var(--datepicker-icon-gap)
194
+ );
195
+ }
196
+
197
+ .datepicker__field[data-icon-end] {
198
+ --_suffix-extra: calc(
199
+ var(--datepicker-icon-size) + var(--datepicker-icon-gap)
200
+ );
201
+ }
202
+
203
+ .datepicker--s .datepicker__input {
204
+ padding-top: 0;
205
+ padding-bottom: 0;
206
+ }
207
+
208
+ .datepicker__input::placeholder {
209
+ color: var(--datepicker-color-placeholder);
210
+ }
211
+
212
+ .datepicker__input:disabled {
213
+ cursor: not-allowed;
214
+ color: var(--datepicker-color-placeholder);
215
+ }
216
+
217
+ .datepicker__popover {
218
+ position: absolute;
219
+ top: calc(var(--datepicker-height) + 6px);
220
+ left: 0;
221
+ z-index: 100;
222
+ background: var(--datepicker-color-bg);
223
+ border: 1px solid var(--datepicker-color-border);
224
+ border-radius: var(--datepicker-radius);
225
+ box-shadow: var(--datepicker-shadow);
226
+ padding: 12px;
227
+ }
228
+
229
+ .datepicker__popover--horizontal .rdp-months {
230
+ flex-wrap: nowrap;
231
+ }
232
+
233
+ .datepicker-calendar {
234
+ --rdp-accent-color: var(--datepicker-color-accent);
235
+ --rdp-accent-background-color: var(--datepicker-color-today-bg);
236
+ --rdp-background-color: var(--datepicker-color-hover);
237
+ --rdp-weekday-opacity: 1;
238
+ --rdp-selected-border: none;
239
+ margin: 0;
240
+ font-family: var(--datepicker-font-family);
241
+ font-size: var(--datepicker-font-size);
242
+ color: var(--datepicker-color-text);
243
+ }
244
+
245
+ .datepicker-calendar .rdp-month_grid {
246
+ border-spacing: 0;
247
+ }
248
+
249
+ .datepicker-calendar .rdp-day {
250
+ padding: 0;
251
+ }
252
+
253
+ .datepicker-calendar .rdp-day_button {
254
+ font-size: inherit;
255
+ font-family: inherit;
256
+ transition: background-color 0.15s ease, color 0.15s ease,
257
+ border-radius 0.15s ease;
258
+ }
259
+
260
+ .datepicker-calendar .rdp-caption_label {
261
+ text-transform: capitalize;
262
+ font-size: var(--datepicker-font-size);
263
+ font-weight: 600;
264
+ }
265
+
266
+ .datepicker-calendar .rdp-weekday {
267
+ font-size: 12px;
268
+ font-weight: 400;
269
+ color: var(--datepicker-color-label);
270
+ text-transform: capitalize;
271
+ }
272
+
273
+ .datepicker-calendar .rdp-chevron {
274
+ fill: var(--datepicker-color-text);
275
+ }
276
+
277
+ .datepicker-calendar .rdp-button_previous:hover:not(:disabled),
278
+ .datepicker-calendar .rdp-button_next:hover:not(:disabled) {
279
+ background-color: var(--datepicker-color-hover);
280
+ border-radius: var(--datepicker-radius);
281
+ }
282
+
283
+ .datepicker-calendar
284
+ .rdp-day:not(.rdp-selected):not(.rdp-range_middle)
285
+ .rdp-day_button:hover:not(:disabled) {
286
+ background-color: var(--datepicker-color-hover);
287
+ }
288
+
289
+ .datepicker-calendar
290
+ .rdp-today:not(.rdp-outside):not(.rdp-selected):not(.rdp-range_middle)
291
+ .rdp-day_button {
292
+ background-color: var(--datepicker-color-today-bg);
293
+ color: var(--datepicker-color-accent);
294
+ }
295
+
296
+ .datepicker-calendar .rdp-selected:not(.rdp-range_middle) .rdp-day_button {
297
+ background-color: var(--datepicker-color-accent);
298
+ color: #fff;
299
+ border: none;
300
+ }
301
+
302
+ .datepicker-calendar .rdp-range_middle .rdp-day_button {
303
+ border-radius: 0;
304
+ border: none;
305
+ }
306
+
307
+ .datepicker-calendar .rdp-range_middle .rdp-day_button:hover {
308
+ background-color: color-mix(
309
+ in srgb,
310
+ var(--datepicker-color-accent) 20%,
311
+ transparent
312
+ );
313
+ }
314
+
315
+ .datepicker__popover--s .datepicker-calendar {
316
+ font-size: 12px;
317
+ --rdp-day-height: 28px;
318
+ --rdp-day-width: 28px;
319
+ --rdp-day_button-height: 28px;
320
+ --rdp-day_button-width: 28px;
321
+ --rdp-nav_button-height: 1.75rem;
322
+ --rdp-nav_button-width: 1.75rem;
323
+ --rdp-nav-height: 2rem;
324
+ }
325
+
326
+ .datepicker__popover--m .datepicker-calendar {
327
+ font-size: 14px;
328
+ --rdp-day-height: 36px;
329
+ --rdp-day-width: 36px;
330
+ --rdp-day_button-height: 36px;
331
+ --rdp-day_button-width: 36px;
332
+ --rdp-nav_button-height: 2rem;
333
+ --rdp-nav_button-width: 2rem;
334
+ --rdp-nav-height: 2.5rem;
335
+ }
336
+
337
+ .datepicker__popover--with-time {
338
+ padding: 0;
339
+ display: flex;
340
+ flex-direction: column;
341
+ }
342
+
343
+ .datepicker__popover-body {
344
+ display: flex;
345
+ align-items: stretch;
346
+ }
347
+
348
+ .datepicker__popover-calendar {
349
+ padding: 12px;
350
+ }
351
+
352
+ .datepicker__time-separator {
353
+ width: 1px;
354
+ background: var(--datepicker-color-border);
355
+ align-self: stretch;
356
+ flex-shrink: 0;
357
+ }
358
+
359
+ .datepicker__popover-time {
360
+ display: flex;
361
+ align-items: center;
362
+ padding: 0 4px;
363
+ }
364
+
365
+ .datepicker__time-row {
366
+ display: flex;
367
+ align-items: stretch;
368
+ border-top: 1px solid var(--datepicker-color-border);
369
+ }
370
+
371
+ .datepicker__time-col {
372
+ display: flex;
373
+ flex-direction: column;
374
+ align-items: center;
375
+ flex: 1;
376
+ padding: 8px 4px 4px;
377
+ gap: 4px;
378
+ }
379
+
380
+ .datepicker__time-label {
381
+ font-size: 12px;
382
+ color: var(--datepicker-color-label);
383
+ line-height: 1;
384
+ }
385
+
386
+ .datepicker__time-row .datepicker__time-separator {
387
+ width: 1px;
388
+ align-self: stretch;
389
+ margin: 0;
390
+ }
391
+
392
+ .datepicker__popover-footer {
393
+ padding: 8px 12px;
394
+ border-top: 1px solid var(--datepicker-color-border);
395
+ display: flex;
396
+ justify-content: flex-end;
397
+ }
398
+
399
+ .datepicker__ok-btn {
400
+ padding: 4px 15px;
401
+ background: var(--datepicker-color-accent);
402
+ color: #fff;
403
+ border: none;
404
+ border-radius: var(--datepicker-radius);
405
+ cursor: pointer;
406
+ font-family: var(--datepicker-font-family);
407
+ font-size: 14px;
408
+ line-height: 22px;
409
+ }
410
+
411
+ .datepicker__ok-btn:hover {
412
+ opacity: 0.85;
413
+ }
414
+
415
+ .datepicker-spinner {
416
+ display: inline-block;
417
+ width: var(--datepicker-icon-size);
418
+ height: var(--datepicker-icon-size);
419
+ border-radius: 50%;
420
+ border: 1.5px solid currentColor;
421
+ border-top-color: transparent;
422
+ animation: datepicker-spin 0.65s linear infinite;
423
+ flex-shrink: 0;
424
+ box-sizing: border-box;
425
+ }
426
+
427
+ @keyframes datepicker-spin {
428
+ to {
429
+ transform: rotate(360deg);
430
+ }
431
+ }
432
+
433
+ .dp-btn {
434
+ position: relative;
435
+ display: inline-flex;
436
+ align-items: center;
437
+ justify-content: center;
438
+ gap: 6px;
439
+ white-space: nowrap;
440
+ border-radius: var(--datepicker-radius);
441
+ font-family: var(--datepicker-font-family);
442
+ font-weight: 600;
443
+ box-sizing: border-box;
444
+ padding: 0 var(--datepicker-padding-h);
445
+ border: 0;
446
+ outline: 0;
447
+ overflow: hidden;
448
+ cursor: pointer;
449
+ }
450
+
451
+ .dp-btn:active:not(:disabled) {
452
+ transform: scale(0.96);
453
+ }
454
+
455
+ .dp-btn:disabled {
456
+ pointer-events: none;
457
+ opacity: 0.4;
458
+ }
459
+
460
+ .dp-btn--s {
461
+ height: 32px;
462
+ font-size: 14px;
463
+ }
464
+
465
+ .dp-btn--m {
466
+ height: 40px;
467
+ font-size: var(--datepicker-font-size);
468
+ }
469
+
470
+ .dp-btn--primary {
471
+ background: var(--datepicker-color-accent);
472
+ color: #fff;
473
+ }
474
+
475
+ .dp-btn--primary:hover:not(:disabled) {
476
+ background: color-mix(in srgb, var(--datepicker-color-accent) 85%, #000);
477
+ }
478
+
479
+ .dp-btn--secondary {
480
+ background: transparent;
481
+ color: var(--datepicker-color-accent);
482
+ border: 1px solid var(--datepicker-color-accent);
483
+ }
484
+
485
+ .dp-btn--secondary:hover:not(:disabled) {
486
+ background: color-mix(
487
+ in srgb,
488
+ var(--datepicker-color-accent) 8%,
489
+ transparent
490
+ );
491
+ }
492
+
493
+ .dp-btn--loading {
494
+ color: transparent;
495
+ }
496
+
497
+ .dp-btn--loading .datepicker-spinner {
498
+ position: absolute;
499
+ top: calc(50% - var(--datepicker-icon-size) / 2);
500
+ left: calc(50% - var(--datepicker-icon-size) / 2);
501
+ color: var(--datepicker-color-accent);
502
+ }
503
+
504
+ .dp-btn--loading.dp-btn--primary .datepicker-spinner {
505
+ color: #fff;
506
+ }
507
+
508
+ .datepicker-rhf {
509
+ display: inline-flex;
510
+ flex-direction: column;
511
+ gap: 4px;
512
+ }
513
+
514
+ .datepicker-rhf__error {
515
+ font-size: 12px;
516
+ color: var(--datepicker-color-border-error);
517
+ font-family: var(--datepicker-font-family);
518
+ line-height: 1;
519
+ }
520
+
521
+ .time-panel {
522
+ display: flex;
523
+ }
524
+
525
+ .time-panel__column {
526
+ height: 224px;
527
+ overflow-y: auto;
528
+ scrollbar-width: none;
529
+ display: flex;
530
+ flex-direction: column;
531
+ padding-block: 8px;
532
+ }
533
+
534
+ .time-panel__column::-webkit-scrollbar {
535
+ display: none;
536
+ }
537
+
538
+ .time-panel__item {
539
+ flex-shrink: 0;
540
+ height: 32px;
541
+ width: 40px;
542
+ display: flex;
543
+ align-items: center;
544
+ justify-content: center;
545
+ cursor: pointer;
546
+ border-radius: var(--datepicker-radius);
547
+ border: none;
548
+ background: none;
549
+ font-family: var(--datepicker-font-family);
550
+ font-size: 14px;
551
+ color: var(--datepicker-color-text);
552
+ padding: 0;
553
+ }
554
+
555
+ .time-panel__item:hover {
556
+ background: var(--datepicker-color-hover);
557
+ }
558
+
559
+ .time-panel__item[data-selected] {
560
+ background: var(--datepicker-color-accent);
561
+ color: #fff;
562
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@artemy-tech/datepicker",
3
- "version": "0.7.0",
3
+ "version": "0.7.1",
4
4
  "type": "module",
5
5
  "description": "React DatePicker with react-hook-form support",
6
6
  "keywords": [
@@ -11,7 +11,7 @@
11
11
  ],
12
12
  "author": "Artemy",
13
13
  "license": "MIT",
14
- "homepage": "https://artemydottech.github.io/datepicker/?path=/docs/components-datepicker--docs",
14
+ "homepage": "https://artemydottech.github.io/datepicker",
15
15
  "repository": {
16
16
  "type": "git",
17
17
  "url": "git+https://github.com/artemydottech/datepicker.git"
@@ -35,11 +35,13 @@
35
35
  "files": [
36
36
  "dist"
37
37
  ],
38
+ "workspaces": [
39
+ ".",
40
+ "docs"
41
+ ],
38
42
  "scripts": {
39
43
  "build": "tsup",
40
44
  "dev": "tsup --watch",
41
- "storybook": "storybook dev -p 6006",
42
- "build-storybook": "storybook build",
43
45
  "test": "vitest run",
44
46
  "test:watch": "vitest",
45
47
  "test:coverage": "vitest run --coverage",
@@ -66,8 +68,6 @@
66
68
  "@changesets/cli": "^2.31.0",
67
69
  "@playwright/experimental-ct-react": "^1.59.1",
68
70
  "@playwright/test": "^1.59.1",
69
- "@storybook/addon-essentials": "^8.0.0",
70
- "@storybook/react-vite": "^8.0.0",
71
71
  "@testing-library/dom": "^10.4.1",
72
72
  "@testing-library/jest-dom": "^6.9.1",
73
73
  "@testing-library/react": "^16.0.0",
@@ -82,7 +82,6 @@
82
82
  "react": "^18.0.0",
83
83
  "react-dom": "^18.0.0",
84
84
  "react-hook-form": "^7.0.0",
85
- "storybook": "^8.0.0",
86
85
  "tsup": "^8.0.0",
87
86
  "typescript": "^5.0.0",
88
87
  "vite": "^5.0.0",