sonner 1.5.0 → 1.6.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,647 @@
1
+ :where(html[dir='ltr']),
2
+ :where([data-sonner-toaster][dir='ltr']) {
3
+ --toast-icon-margin-start: -3px;
4
+ --toast-icon-margin-end: 4px;
5
+ --toast-svg-margin-start: -1px;
6
+ --toast-svg-margin-end: 0px;
7
+ --toast-button-margin-start: auto;
8
+ --toast-button-margin-end: 0;
9
+ --toast-close-button-start: 0;
10
+ --toast-close-button-end: unset;
11
+ --toast-close-button-transform: translate(-35%, -35%);
12
+ }
13
+
14
+ :where(html[dir='rtl']),
15
+ :where([data-sonner-toaster][dir='rtl']) {
16
+ --toast-icon-margin-start: 4px;
17
+ --toast-icon-margin-end: -3px;
18
+ --toast-svg-margin-start: 0px;
19
+ --toast-svg-margin-end: -1px;
20
+ --toast-button-margin-start: 0;
21
+ --toast-button-margin-end: auto;
22
+ --toast-close-button-start: unset;
23
+ --toast-close-button-end: 0;
24
+ --toast-close-button-transform: translate(35%, -35%);
25
+ }
26
+
27
+ :where([data-sonner-toaster]) {
28
+ position: fixed;
29
+ width: var(--width);
30
+ font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial,
31
+ Noto Sans, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;
32
+ --gray1: hsl(0, 0%, 99%);
33
+ --gray2: hsl(0, 0%, 97.3%);
34
+ --gray3: hsl(0, 0%, 95.1%);
35
+ --gray4: hsl(0, 0%, 93%);
36
+ --gray5: hsl(0, 0%, 90.9%);
37
+ --gray6: hsl(0, 0%, 88.7%);
38
+ --gray7: hsl(0, 0%, 85.8%);
39
+ --gray8: hsl(0, 0%, 78%);
40
+ --gray9: hsl(0, 0%, 56.1%);
41
+ --gray10: hsl(0, 0%, 52.3%);
42
+ --gray11: hsl(0, 0%, 43.5%);
43
+ --gray12: hsl(0, 0%, 9%);
44
+ --border-radius: 8px;
45
+ box-sizing: border-box;
46
+ padding: 0;
47
+ margin: 0;
48
+ list-style: none;
49
+ outline: none;
50
+ z-index: 999999999;
51
+ transition: transform 400ms ease;
52
+ }
53
+
54
+ :where([data-sonner-toaster]:hover) {
55
+ transform: translateY(-10px);
56
+ }
57
+
58
+ :where([data-sonner-toaster][data-x-position='right']) {
59
+ right: max(var(--offset), env(safe-area-inset-right));
60
+ }
61
+
62
+ :where([data-sonner-toaster][data-x-position='left']) {
63
+ left: max(var(--offset), env(safe-area-inset-left));
64
+ }
65
+
66
+ :where([data-sonner-toaster][data-x-position='center']) {
67
+ left: 50%;
68
+ transform: translateX(-50%);
69
+ }
70
+
71
+ :where([data-sonner-toaster][data-y-position='top']) {
72
+ top: max(var(--offset), env(safe-area-inset-top));
73
+ }
74
+
75
+ :where([data-sonner-toaster][data-y-position='bottom']) {
76
+ bottom: max(var(--offset), env(safe-area-inset-bottom));
77
+ }
78
+
79
+ :where([data-sonner-toast]) {
80
+ --y: translateY(100%);
81
+ --lift-amount: calc(var(--lift) * var(--gap));
82
+ z-index: var(--z-index);
83
+ position: absolute;
84
+ opacity: 0;
85
+ transform: var(--y);
86
+ filter: blur(0);
87
+ /* https://stackoverflow.com/questions/48124372/pointermove-event-not-working-with-touch-why-not */
88
+ touch-action: none;
89
+ transition: transform 400ms, opacity 400ms, height 400ms, box-shadow 200ms;
90
+ box-sizing: border-box;
91
+ outline: none;
92
+ overflow-wrap: anywhere;
93
+ }
94
+
95
+ :where([data-sonner-toast][data-styled='true']) {
96
+ padding: 16px;
97
+ background: var(--normal-bg);
98
+ border: 1px solid var(--normal-border);
99
+ color: var(--normal-text);
100
+ border-radius: var(--border-radius);
101
+ box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.1);
102
+ width: var(--width);
103
+ font-size: 13px;
104
+ display: flex;
105
+ align-items: center;
106
+ gap: 6px;
107
+ }
108
+
109
+ :where([data-sonner-toast]:focus-visible) {
110
+ box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.1), 0 0 0 2px rgba(0, 0, 0, 0.2);
111
+ }
112
+
113
+ :where([data-sonner-toast][data-y-position='top']) {
114
+ top: 0;
115
+ --y: translateY(-100%);
116
+ --lift: 1;
117
+ --lift-amount: calc(1 * var(--gap));
118
+ }
119
+
120
+ :where([data-sonner-toast][data-y-position='bottom']) {
121
+ bottom: 0;
122
+ --y: translateY(100%);
123
+ --lift: -1;
124
+ --lift-amount: calc(var(--lift) * var(--gap));
125
+ }
126
+
127
+ :where([data-sonner-toast]) :where([data-description]) {
128
+ font-weight: 400;
129
+ line-height: 1.4;
130
+ color: inherit;
131
+ }
132
+
133
+ :where([data-sonner-toast]) :where([data-title]) {
134
+ font-weight: 500;
135
+ line-height: 1.5;
136
+ color: inherit;
137
+ }
138
+
139
+ :where([data-sonner-toast]) :where([data-icon]) {
140
+ display: flex;
141
+ height: 16px;
142
+ width: 16px;
143
+ position: relative;
144
+ justify-content: flex-start;
145
+ align-items: center;
146
+ flex-shrink: 0;
147
+ margin-left: var(--toast-icon-margin-start);
148
+ margin-right: var(--toast-icon-margin-end);
149
+ }
150
+
151
+ :where([data-sonner-toast][data-promise='true']) :where([data-icon]) > svg {
152
+ opacity: 0;
153
+ transform: scale(0.8);
154
+ transform-origin: center;
155
+ animation: sonner-fade-in 300ms ease forwards;
156
+ }
157
+
158
+ :where([data-sonner-toast]) :where([data-icon]) > * {
159
+ flex-shrink: 0;
160
+ }
161
+
162
+ :where([data-sonner-toast]) :where([data-icon]) svg {
163
+ margin-left: var(--toast-svg-margin-start);
164
+ margin-right: var(--toast-svg-margin-end);
165
+ }
166
+
167
+ :where([data-sonner-toast]) :where([data-content]) {
168
+ display: flex;
169
+ flex-direction: column;
170
+ gap: 2px;
171
+ }
172
+
173
+ [data-sonner-toast][data-styled='true'] [data-button] {
174
+ border-radius: 4px;
175
+ padding-left: 8px;
176
+ padding-right: 8px;
177
+ height: 24px;
178
+ font-size: 12px;
179
+ color: var(--normal-bg);
180
+ background: var(--normal-text);
181
+ margin-left: var(--toast-button-margin-start);
182
+ margin-right: var(--toast-button-margin-end);
183
+ border: none;
184
+ cursor: pointer;
185
+ outline: none;
186
+ display: flex;
187
+ align-items: center;
188
+ flex-shrink: 0;
189
+ transition: opacity 400ms, box-shadow 200ms;
190
+ }
191
+
192
+ :where([data-sonner-toast]) :where([data-button]):focus-visible {
193
+ box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.4);
194
+ }
195
+
196
+ :where([data-sonner-toast]) :where([data-button]):first-of-type {
197
+ margin-left: var(--toast-button-margin-start);
198
+ margin-right: var(--toast-button-margin-end);
199
+ }
200
+
201
+ :where([data-sonner-toast]) :where([data-cancel]) {
202
+ color: var(--normal-text);
203
+ background: rgba(0, 0, 0, 0.08);
204
+ }
205
+
206
+ :where([data-sonner-toast][data-theme='dark']) :where([data-cancel]) {
207
+ background: rgba(255, 255, 255, 0.3);
208
+ }
209
+
210
+ :where([data-sonner-toast]) :where([data-close-button]) {
211
+ position: absolute;
212
+ left: var(--toast-close-button-start);
213
+ right: var(--toast-close-button-end);
214
+ top: 0;
215
+ height: 20px;
216
+ width: 20px;
217
+ display: flex;
218
+ justify-content: center;
219
+ align-items: center;
220
+ padding: 0;
221
+ color: var(--gray12);
222
+ border: 1px solid var(--gray4);
223
+ transform: var(--toast-close-button-transform);
224
+ border-radius: 50%;
225
+ cursor: pointer;
226
+ z-index: 1;
227
+ transition: opacity 100ms, background 200ms, border-color 200ms;
228
+ }
229
+
230
+ [data-sonner-toast] [data-close-button] {
231
+ background: var(--gray1);
232
+ }
233
+
234
+ :where([data-sonner-toast]) :where([data-close-button]):focus-visible {
235
+ box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.1), 0 0 0 2px rgba(0, 0, 0, 0.2);
236
+ }
237
+
238
+ :where([data-sonner-toast]) :where([data-disabled='true']) {
239
+ cursor: not-allowed;
240
+ }
241
+
242
+ :where([data-sonner-toast]):hover :where([data-close-button]):hover {
243
+ background: var(--gray2);
244
+ border-color: var(--gray5);
245
+ }
246
+
247
+ /* Leave a ghost div to avoid setting hover to false when swiping out */
248
+ :where([data-sonner-toast][data-swiping='true'])::before {
249
+ content: '';
250
+ position: absolute;
251
+ left: 0;
252
+ right: 0;
253
+ height: 100%;
254
+ z-index: -1;
255
+ }
256
+
257
+ :where([data-sonner-toast][data-y-position='top'][data-swiping='true'])::before {
258
+ /* y 50% needed to distribute height additional height evenly */
259
+ bottom: 50%;
260
+ transform: scaleY(3) translateY(50%);
261
+ }
262
+
263
+ :where([data-sonner-toast][data-y-position='bottom'][data-swiping='true'])::before {
264
+ /* y -50% needed to distribute height additional height evenly */
265
+ top: 50%;
266
+ transform: scaleY(3) translateY(-50%);
267
+ }
268
+
269
+ /* Leave a ghost div to avoid setting hover to false when transitioning out */
270
+ :where([data-sonner-toast][data-swiping='false'][data-removed='true'])::before {
271
+ content: '';
272
+ position: absolute;
273
+ inset: 0;
274
+ transform: scaleY(2);
275
+ }
276
+
277
+ /* Needed to avoid setting hover to false when inbetween toasts */
278
+ :where([data-sonner-toast])::after {
279
+ content: '';
280
+ position: absolute;
281
+ left: 0;
282
+ height: calc(var(--gap) + 1px);
283
+ bottom: 100%;
284
+ width: 100%;
285
+ }
286
+
287
+ :where([data-sonner-toast][data-mounted='true']) {
288
+ --y: translateY(0);
289
+ opacity: 1;
290
+ }
291
+
292
+ :where([data-sonner-toast][data-expanded='false'][data-front='false']) {
293
+ --scale: var(--toasts-before) * 0.05 + 1;
294
+ --y: translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));
295
+ height: var(--front-toast-height);
296
+ }
297
+
298
+ :where([data-sonner-toast]) > * {
299
+ transition: opacity 400ms;
300
+ }
301
+
302
+ :where([data-sonner-toast][data-expanded='false'][data-front='false'][data-styled='true']) > * {
303
+ opacity: 0;
304
+ }
305
+
306
+ :where([data-sonner-toast][data-visible='false']) {
307
+ opacity: 0;
308
+ pointer-events: none;
309
+ }
310
+
311
+ :where([data-sonner-toast][data-mounted='true'][data-expanded='true']) {
312
+ --y: translateY(calc(var(--lift) * var(--offset)));
313
+ height: var(--initial-height);
314
+ }
315
+
316
+ :where([data-sonner-toast][data-removed='true'][data-front='true'][data-swipe-out='false']) {
317
+ --y: translateY(calc(var(--lift) * -100%));
318
+ opacity: 0;
319
+ }
320
+
321
+ :where([data-sonner-toast][data-removed='true'][data-front='false'][data-swipe-out='false'][data-expanded='true']) {
322
+ --y: translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));
323
+ opacity: 0;
324
+ }
325
+
326
+ :where([data-sonner-toast][data-removed='true'][data-front='false'][data-swipe-out='false'][data-expanded='false']) {
327
+ --y: translateY(40%);
328
+ opacity: 0;
329
+ transition: transform 500ms, opacity 200ms;
330
+ }
331
+
332
+ /* Bump up the height to make sure hover state doesn't get set to false */
333
+ :where([data-sonner-toast][data-removed='true'][data-front='false'])::before {
334
+ height: calc(var(--initial-height) + 20%);
335
+ }
336
+
337
+ [data-sonner-toast][data-swiping='true'] {
338
+ transform: var(--y) translateY(var(--swipe-amount, 0px));
339
+ transition: none;
340
+ user-select: none;
341
+ }
342
+
343
+ [data-sonner-toast][data-swipe-out='true'][data-y-position='bottom'],
344
+ [data-sonner-toast][data-swipe-out='true'][data-y-position='top'] {
345
+ animation: swipe-out 200ms ease-out forwards;
346
+ }
347
+
348
+ @keyframes swipe-out {
349
+ from {
350
+ transform: translateY(calc(var(--lift) * var(--offset) + var(--swipe-amount)));
351
+ opacity: 1;
352
+ }
353
+
354
+ to {
355
+ transform: translateY(calc(var(--lift) * var(--offset) + var(--swipe-amount) + var(--lift) * -100%));
356
+ opacity: 0;
357
+ }
358
+ }
359
+
360
+ @media (max-width: 600px) {
361
+ [data-sonner-toaster] {
362
+ position: fixed;
363
+ --mobile-offset: 16px;
364
+ right: var(--mobile-offset);
365
+ left: var(--mobile-offset);
366
+ width: 100%;
367
+ }
368
+
369
+ [data-sonner-toaster][dir='rtl'] {
370
+ left: calc(var(--mobile-offset) * -1);
371
+ }
372
+
373
+ [data-sonner-toaster] [data-sonner-toast] {
374
+ left: 0;
375
+ right: 0;
376
+ width: calc(100% - var(--mobile-offset) * 2);
377
+ }
378
+
379
+ [data-sonner-toaster][data-x-position='left'] {
380
+ left: var(--mobile-offset);
381
+ }
382
+
383
+ [data-sonner-toaster][data-y-position='bottom'] {
384
+ bottom: 20px;
385
+ }
386
+
387
+ [data-sonner-toaster][data-y-position='top'] {
388
+ top: 20px;
389
+ }
390
+
391
+ [data-sonner-toaster][data-x-position='center'] {
392
+ left: var(--mobile-offset);
393
+ right: var(--mobile-offset);
394
+ transform: none;
395
+ }
396
+ }
397
+
398
+ [data-sonner-toaster][data-theme='light'] {
399
+ --normal-bg: #fff;
400
+ --normal-border: var(--gray4);
401
+ --normal-text: var(--gray12);
402
+
403
+ --success-bg: hsl(143, 85%, 96%);
404
+ --success-border: hsl(145, 92%, 91%);
405
+ --success-text: hsl(140, 100%, 27%);
406
+
407
+ --info-bg: hsl(208, 100%, 97%);
408
+ --info-border: hsl(221, 91%, 91%);
409
+ --info-text: hsl(210, 92%, 45%);
410
+
411
+ --warning-bg: hsl(49, 100%, 97%);
412
+ --warning-border: hsl(49, 91%, 91%);
413
+ --warning-text: hsl(31, 92%, 45%);
414
+
415
+ --error-bg: hsl(359, 100%, 97%);
416
+ --error-border: hsl(359, 100%, 94%);
417
+ --error-text: hsl(360, 100%, 45%);
418
+ }
419
+
420
+ [data-sonner-toaster][data-theme='light'] [data-sonner-toast][data-invert='true'] {
421
+ --normal-bg: #000;
422
+ --normal-border: hsl(0, 0%, 20%);
423
+ --normal-text: var(--gray1);
424
+ }
425
+
426
+ [data-sonner-toaster][data-theme='dark'] [data-sonner-toast][data-invert='true'] {
427
+ --normal-bg: #fff;
428
+ --normal-border: var(--gray3);
429
+ --normal-text: var(--gray12);
430
+ }
431
+
432
+ [data-sonner-toaster][data-theme='dark'] {
433
+ --normal-bg: #000;
434
+ --normal-border: hsl(0, 0%, 20%);
435
+ --normal-text: var(--gray1);
436
+
437
+ --success-bg: hsl(150, 100%, 6%);
438
+ --success-border: hsl(147, 100%, 12%);
439
+ --success-text: hsl(150, 86%, 65%);
440
+
441
+ --info-bg: hsl(215, 100%, 6%);
442
+ --info-border: hsl(223, 100%, 12%);
443
+ --info-text: hsl(216, 87%, 65%);
444
+
445
+ --warning-bg: hsl(64, 100%, 6%);
446
+ --warning-border: hsl(60, 100%, 12%);
447
+ --warning-text: hsl(46, 87%, 65%);
448
+
449
+ --error-bg: hsl(358, 76%, 10%);
450
+ --error-border: hsl(357, 89%, 16%);
451
+ --error-text: hsl(358, 100%, 81%);
452
+ }
453
+
454
+ [data-rich-colors='true'][data-sonner-toast][data-type='success'] {
455
+ background: var(--success-bg);
456
+ border-color: var(--success-border);
457
+ color: var(--success-text);
458
+ }
459
+
460
+ [data-rich-colors='true'][data-sonner-toast][data-type='success'] [data-close-button] {
461
+ background: var(--success-bg);
462
+ border-color: var(--success-border);
463
+ color: var(--success-text);
464
+ }
465
+
466
+ [data-rich-colors='true'][data-sonner-toast][data-type='info'] {
467
+ background: var(--info-bg);
468
+ border-color: var(--info-border);
469
+ color: var(--info-text);
470
+ }
471
+
472
+ [data-rich-colors='true'][data-sonner-toast][data-type='info'] [data-close-button] {
473
+ background: var(--info-bg);
474
+ border-color: var(--info-border);
475
+ color: var(--info-text);
476
+ }
477
+
478
+ [data-rich-colors='true'][data-sonner-toast][data-type='warning'] {
479
+ background: var(--warning-bg);
480
+ border-color: var(--warning-border);
481
+ color: var(--warning-text);
482
+ }
483
+
484
+ [data-rich-colors='true'][data-sonner-toast][data-type='warning'] [data-close-button] {
485
+ background: var(--warning-bg);
486
+ border-color: var(--warning-border);
487
+ color: var(--warning-text);
488
+ }
489
+
490
+ [data-rich-colors='true'][data-sonner-toast][data-type='error'] {
491
+ background: var(--error-bg);
492
+ border-color: var(--error-border);
493
+ color: var(--error-text);
494
+ }
495
+
496
+ [data-rich-colors='true'][data-sonner-toast][data-type='error'] [data-close-button] {
497
+ background: var(--error-bg);
498
+ border-color: var(--error-border);
499
+ color: var(--error-text);
500
+ }
501
+
502
+ .sonner-loading-wrapper {
503
+ --size: 16px;
504
+ height: var(--size);
505
+ width: var(--size);
506
+ position: absolute;
507
+ inset: 0;
508
+ z-index: 10;
509
+ }
510
+
511
+ .sonner-loading-wrapper[data-visible='false'] {
512
+ transform-origin: center;
513
+ animation: sonner-fade-out 0.2s ease forwards;
514
+ }
515
+
516
+ .sonner-spinner {
517
+ position: relative;
518
+ top: 50%;
519
+ left: 50%;
520
+ height: var(--size);
521
+ width: var(--size);
522
+ }
523
+
524
+ .sonner-loading-bar {
525
+ animation: sonner-spin 1.2s linear infinite;
526
+ background: var(--gray11);
527
+ border-radius: 6px;
528
+ height: 8%;
529
+ left: -10%;
530
+ position: absolute;
531
+ top: -3.9%;
532
+ width: 24%;
533
+ }
534
+
535
+ .sonner-loading-bar:nth-child(1) {
536
+ animation-delay: -1.2s;
537
+ transform: rotate(0.0001deg) translate(146%);
538
+ }
539
+
540
+ .sonner-loading-bar:nth-child(2) {
541
+ animation-delay: -1.1s;
542
+ transform: rotate(30deg) translate(146%);
543
+ }
544
+
545
+ .sonner-loading-bar:nth-child(3) {
546
+ animation-delay: -1s;
547
+ transform: rotate(60deg) translate(146%);
548
+ }
549
+
550
+ .sonner-loading-bar:nth-child(4) {
551
+ animation-delay: -0.9s;
552
+ transform: rotate(90deg) translate(146%);
553
+ }
554
+
555
+ .sonner-loading-bar:nth-child(5) {
556
+ animation-delay: -0.8s;
557
+ transform: rotate(120deg) translate(146%);
558
+ }
559
+
560
+ .sonner-loading-bar:nth-child(6) {
561
+ animation-delay: -0.7s;
562
+ transform: rotate(150deg) translate(146%);
563
+ }
564
+
565
+ .sonner-loading-bar:nth-child(7) {
566
+ animation-delay: -0.6s;
567
+ transform: rotate(180deg) translate(146%);
568
+ }
569
+
570
+ .sonner-loading-bar:nth-child(8) {
571
+ animation-delay: -0.5s;
572
+ transform: rotate(210deg) translate(146%);
573
+ }
574
+
575
+ .sonner-loading-bar:nth-child(9) {
576
+ animation-delay: -0.4s;
577
+ transform: rotate(240deg) translate(146%);
578
+ }
579
+
580
+ .sonner-loading-bar:nth-child(10) {
581
+ animation-delay: -0.3s;
582
+ transform: rotate(270deg) translate(146%);
583
+ }
584
+
585
+ .sonner-loading-bar:nth-child(11) {
586
+ animation-delay: -0.2s;
587
+ transform: rotate(300deg) translate(146%);
588
+ }
589
+
590
+ .sonner-loading-bar:nth-child(12) {
591
+ animation-delay: -0.1s;
592
+ transform: rotate(330deg) translate(146%);
593
+ }
594
+
595
+ @keyframes sonner-fade-in {
596
+ 0% {
597
+ opacity: 0;
598
+ transform: scale(0.8);
599
+ }
600
+ 100% {
601
+ opacity: 1;
602
+ transform: scale(1);
603
+ }
604
+ }
605
+
606
+ @keyframes sonner-fade-out {
607
+ 0% {
608
+ opacity: 1;
609
+ transform: scale(1);
610
+ }
611
+ 100% {
612
+ opacity: 0;
613
+ transform: scale(0.8);
614
+ }
615
+ }
616
+
617
+ @keyframes sonner-spin {
618
+ 0% {
619
+ opacity: 1;
620
+ }
621
+ 100% {
622
+ opacity: 0.15;
623
+ }
624
+ }
625
+
626
+ @media (prefers-reduced-motion) {
627
+ [data-sonner-toast],
628
+ [data-sonner-toast] > *,
629
+ .sonner-loading-bar {
630
+ transition: none !important;
631
+ animation: none !important;
632
+ }
633
+ }
634
+
635
+ .sonner-loader {
636
+ position: absolute;
637
+ top: 50%;
638
+ left: 50%;
639
+ transform: translate(-50%, -50%);
640
+ transform-origin: center;
641
+ transition: opacity 200ms, transform 200ms;
642
+ }
643
+
644
+ .sonner-loader[data-visible='false'] {
645
+ opacity: 0;
646
+ transform: scale(0.8) translate(-50%, -50%);
647
+ }
package/package.json CHANGED
@@ -1,18 +1,19 @@
1
1
  {
2
2
  "name": "sonner",
3
- "version": "1.5.0",
3
+ "version": "1.6.1",
4
4
  "description": "An opinionated toast component for React.",
5
5
  "exports": {
6
6
  "types": "./dist/index.d.ts",
7
7
  "import": "./dist/index.mjs",
8
8
  "require": "./dist/index.js"
9
9
  },
10
+ "main": "./dist/index.js",
10
11
  "types": "./dist/index.d.ts",
11
12
  "files": [
12
13
  "dist"
13
14
  ],
14
15
  "scripts": {
15
- "build": "tsup src/index.tsx",
16
+ "build": "tsup src/index.tsx && cp src/styles.css dist/styles.css",
16
17
  "dev": "tsup src/index.tsx --watch",
17
18
  "dev:website": "turbo run dev --filter=website...",
18
19
  "dev:test": "turbo run dev --filter=test...",
@@ -48,8 +49,8 @@
48
49
  "typescript": "^4.8.4"
49
50
  },
50
51
  "peerDependencies": {
51
- "react": "^18.0.0",
52
- "react-dom": "^18.0.0"
52
+ "react": "^18.0.0 || ^19.0.0 || ^19.0.0-rc",
53
+ "react-dom": "^18.0.0 || ^19.0.0 || ^19.0.0-rc"
53
54
  },
54
55
  "packageManager": "pnpm@8.12.1"
55
56
  }