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