@mirohq/design-system-tag 0.2.2 → 0.3.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.
package/dist/module.js CHANGED
@@ -1,23 +1,39 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import React from 'react';
3
+ import { useNewDesignLanguage } from '@mirohq/design-system-experiments';
3
4
  import { styled } from '@mirohq/design-system-stitches';
4
5
  import { Primitive } from '@mirohq/design-system-primitive';
6
+ import { addPropsToChildren } from '@mirohq/design-system-utils';
7
+ import { isIconComponent } from '@mirohq/design-system-base-icon';
5
8
 
6
9
  const StyledTag = styled(Primitive.div, {
7
10
  display: "inline-flex",
8
- textTransform: "uppercase",
9
11
  width: "fit-content",
10
12
  paddingY: "$0",
11
13
  paddingX: "$50",
12
- borderRadius: "$25",
13
- fontSize: "$125",
14
- lineHeight: 1.6,
15
- fontWeight: "bold",
16
14
  letterSpacing: 0.25,
17
15
  "::selection": {
18
16
  backgroundColor: "transparent"
19
17
  },
20
18
  variants: {
19
+ v1: {
20
+ true: {
21
+ textTransform: "capitalize",
22
+ fontSize: "$150",
23
+ lineHeight: "$500",
24
+ fontWeight: "$semibold",
25
+ height: "$5",
26
+ alignItems: "center",
27
+ borderRadius: "$50"
28
+ },
29
+ false: {
30
+ textTransform: "uppercase",
31
+ fontSize: "$125",
32
+ lineHeight: 1.6,
33
+ fontWeight: "bold",
34
+ borderRadius: "$25"
35
+ }
36
+ },
21
37
  variant: {
22
38
  "beta-prominent": {
23
39
  backgroundColor: "$background-neutrals-inverted",
@@ -51,29 +67,650 @@ const StyledTag = styled(Primitive.div, {
51
67
  backgroundColor: "$background-success",
52
68
  color: "$text-success"
53
69
  },
54
- error: {
70
+ danger: {
55
71
  backgroundColor: "$background-danger-prominent",
56
72
  color: "$text-danger-inverted"
57
73
  },
58
74
  "error-subtle": {
59
75
  backgroundColor: "$background-danger-subtle",
60
76
  color: "$text-danger"
77
+ },
78
+ ghost: {
79
+ backgroundColor: "$background-neutrals",
80
+ color: "$text-neutrals"
81
+ },
82
+ /** ContentVariants */
83
+ lime: {},
84
+ orange: {},
85
+ sunshine: {},
86
+ coral: {},
87
+ moss: {},
88
+ teal: {},
89
+ cyan: {},
90
+ ocean: {},
91
+ lilac: {},
92
+ pink: {},
93
+ coal: {}
94
+ },
95
+ shade: {
96
+ subtle: {},
97
+ mild: {},
98
+ prominent: {}
99
+ },
100
+ border: {
101
+ true: {
102
+ boxSizing: "border-box",
103
+ paddingX: "3px",
104
+ border: "1px solid transparent"
61
105
  }
62
106
  }
63
107
  },
64
- defaultVariants: {
65
- variant: "primary-prominent"
66
- }
108
+ compoundVariants: [
109
+ {
110
+ v1: true,
111
+ variant: "neutral",
112
+ css: {
113
+ color: "$coal-text"
114
+ }
115
+ },
116
+ {
117
+ v1: true,
118
+ variant: "warning",
119
+ css: {
120
+ color: "$text-warning"
121
+ }
122
+ },
123
+ /** Lime variant */
124
+ {
125
+ variant: "lime",
126
+ shade: "subtle",
127
+ css: {
128
+ backgroundColor: "$lime-background-subtle",
129
+ color: "$lime-text"
130
+ }
131
+ },
132
+ {
133
+ variant: "lime",
134
+ shade: "subtle",
135
+ border: true,
136
+ css: {
137
+ borderColor: "$lime-border-subtle"
138
+ }
139
+ },
140
+ {
141
+ variant: "lime",
142
+ shade: "mild",
143
+ css: {
144
+ backgroundColor: "$lime-background-mild",
145
+ color: "$lime-text"
146
+ }
147
+ },
148
+ {
149
+ variant: "lime",
150
+ shade: "mild",
151
+ border: true,
152
+ css: {
153
+ borderColor: "$lime-border"
154
+ }
155
+ },
156
+ {
157
+ variant: "lime",
158
+ shade: "prominent",
159
+ css: {
160
+ backgroundColor: "$lime-background-prominent",
161
+ color: "$lime-text-subtle"
162
+ }
163
+ },
164
+ {
165
+ variant: "lime",
166
+ shade: "prominent",
167
+ border: true,
168
+ css: {
169
+ borderColor: "$lime-border-prominent"
170
+ }
171
+ },
172
+ /** Orange variant */
173
+ {
174
+ variant: "orange",
175
+ shade: "subtle",
176
+ css: {
177
+ backgroundColor: "$orange-background-subtle",
178
+ color: "$orange-text"
179
+ }
180
+ },
181
+ {
182
+ variant: "orange",
183
+ shade: "subtle",
184
+ border: true,
185
+ css: {
186
+ borderColor: "$orange-border-subtle"
187
+ }
188
+ },
189
+ {
190
+ variant: "orange",
191
+ shade: "mild",
192
+ css: {
193
+ backgroundColor: "$orange-background-mild",
194
+ color: "$orange-text"
195
+ }
196
+ },
197
+ {
198
+ variant: "orange",
199
+ shade: "mild",
200
+ border: true,
201
+ css: {
202
+ borderColor: "$orange-border"
203
+ }
204
+ },
205
+ {
206
+ variant: "orange",
207
+ shade: "prominent",
208
+ css: {
209
+ backgroundColor: "$orange-background-prominent",
210
+ color: "$orange-text-subtle"
211
+ }
212
+ },
213
+ {
214
+ variant: "orange",
215
+ shade: "prominent",
216
+ border: true,
217
+ css: {
218
+ borderColor: "$orange-border-prominent"
219
+ }
220
+ },
221
+ /** Sunshine variant */
222
+ {
223
+ variant: "sunshine",
224
+ shade: "subtle",
225
+ css: {
226
+ backgroundColor: "$sunshine-background-subtle",
227
+ color: "$sunshine-text"
228
+ }
229
+ },
230
+ {
231
+ variant: "sunshine",
232
+ shade: "subtle",
233
+ border: true,
234
+ css: {
235
+ borderColor: "$sunshine-border-subtle"
236
+ }
237
+ },
238
+ {
239
+ variant: "sunshine",
240
+ shade: "mild",
241
+ css: {
242
+ backgroundColor: "$sunshine-background-mild",
243
+ color: "$sunshine-text"
244
+ }
245
+ },
246
+ {
247
+ variant: "sunshine",
248
+ shade: "mild",
249
+ border: true,
250
+ css: {
251
+ borderColor: "$sunshine-border"
252
+ }
253
+ },
254
+ {
255
+ variant: "sunshine",
256
+ shade: "prominent",
257
+ css: {
258
+ backgroundColor: "$sunshine-background-prominent",
259
+ color: "$sunshine-text-subtle"
260
+ }
261
+ },
262
+ {
263
+ variant: "sunshine",
264
+ shade: "prominent",
265
+ border: true,
266
+ css: {
267
+ borderColor: "$sunshine-border-prominent"
268
+ }
269
+ },
270
+ /** Coral variant */
271
+ {
272
+ variant: "coral",
273
+ shade: "subtle",
274
+ css: {
275
+ backgroundColor: "$coral-background-subtle",
276
+ color: "$coral-text"
277
+ }
278
+ },
279
+ {
280
+ variant: "coral",
281
+ shade: "subtle",
282
+ border: true,
283
+ css: {
284
+ borderColor: "$coral-border-subtle"
285
+ }
286
+ },
287
+ {
288
+ variant: "coral",
289
+ shade: "mild",
290
+ css: {
291
+ backgroundColor: "$coral-background-mild",
292
+ color: "$coral-text"
293
+ }
294
+ },
295
+ {
296
+ variant: "coral",
297
+ shade: "mild",
298
+ border: true,
299
+ css: {
300
+ borderColor: "$coral-border"
301
+ }
302
+ },
303
+ {
304
+ variant: "coral",
305
+ shade: "prominent",
306
+ css: {
307
+ backgroundColor: "$coral-background-prominent",
308
+ color: "$coral-text-subtle"
309
+ }
310
+ },
311
+ {
312
+ variant: "coral",
313
+ shade: "prominent",
314
+ border: true,
315
+ css: {
316
+ borderColor: "$coral-border-prominent"
317
+ }
318
+ },
319
+ /** Moss variant */
320
+ {
321
+ variant: "moss",
322
+ shade: "subtle",
323
+ css: {
324
+ backgroundColor: "$moss-background-subtle",
325
+ color: "$moss-text"
326
+ }
327
+ },
328
+ {
329
+ variant: "moss",
330
+ shade: "subtle",
331
+ border: true,
332
+ css: {
333
+ borderColor: "$moss-border-subtle"
334
+ }
335
+ },
336
+ {
337
+ variant: "moss",
338
+ shade: "mild",
339
+ css: {
340
+ backgroundColor: "$moss-background-mild",
341
+ color: "$moss-text"
342
+ }
343
+ },
344
+ {
345
+ variant: "moss",
346
+ shade: "mild",
347
+ border: true,
348
+ css: {
349
+ borderColor: "$moss-border"
350
+ }
351
+ },
352
+ {
353
+ variant: "moss",
354
+ shade: "prominent",
355
+ css: {
356
+ backgroundColor: "$moss-background-prominent",
357
+ color: "$moss-text-subtle"
358
+ }
359
+ },
360
+ {
361
+ variant: "moss",
362
+ shade: "prominent",
363
+ border: true,
364
+ css: {
365
+ borderColor: "$moss-border-prominent"
366
+ }
367
+ },
368
+ /** Teal variant */
369
+ {
370
+ variant: "teal",
371
+ shade: "subtle",
372
+ css: {
373
+ backgroundColor: "$teal-background-subtle",
374
+ color: "$teal-text"
375
+ }
376
+ },
377
+ {
378
+ variant: "teal",
379
+ shade: "subtle",
380
+ border: true,
381
+ css: {
382
+ borderColor: "$teal-border-subtle"
383
+ }
384
+ },
385
+ {
386
+ variant: "teal",
387
+ shade: "mild",
388
+ css: {
389
+ backgroundColor: "$teal-background-mild",
390
+ color: "$teal-text"
391
+ }
392
+ },
393
+ {
394
+ variant: "teal",
395
+ shade: "mild",
396
+ border: true,
397
+ css: {
398
+ borderColor: "$teal-border"
399
+ }
400
+ },
401
+ {
402
+ variant: "teal",
403
+ shade: "prominent",
404
+ css: {
405
+ backgroundColor: "$teal-background-prominent",
406
+ color: "$teal-text-subtle"
407
+ }
408
+ },
409
+ {
410
+ variant: "teal",
411
+ shade: "prominent",
412
+ border: true,
413
+ css: {
414
+ borderColor: "$teal-border-prominent"
415
+ }
416
+ },
417
+ /** Cyan variant */
418
+ {
419
+ variant: "cyan",
420
+ shade: "subtle",
421
+ css: {
422
+ backgroundColor: "$cyan-background-subtle",
423
+ color: "$cyan-text"
424
+ }
425
+ },
426
+ {
427
+ variant: "cyan",
428
+ shade: "subtle",
429
+ border: true,
430
+ css: {
431
+ borderColor: "$cyan-border-subtle"
432
+ }
433
+ },
434
+ {
435
+ variant: "cyan",
436
+ shade: "mild",
437
+ css: {
438
+ backgroundColor: "$cyan-background-mild",
439
+ color: "$cyan-text"
440
+ }
441
+ },
442
+ {
443
+ variant: "cyan",
444
+ shade: "mild",
445
+ border: true,
446
+ css: {
447
+ borderColor: "$cyan-border"
448
+ }
449
+ },
450
+ {
451
+ variant: "cyan",
452
+ shade: "prominent",
453
+ css: {
454
+ backgroundColor: "$cyan-background-prominent",
455
+ color: "$cyan-text-subtle"
456
+ }
457
+ },
458
+ {
459
+ variant: "cyan",
460
+ shade: "prominent",
461
+ border: true,
462
+ css: {
463
+ borderColor: "$cyan-border-prominent"
464
+ }
465
+ },
466
+ /** Ocean variant */
467
+ {
468
+ variant: "ocean",
469
+ shade: "subtle",
470
+ css: {
471
+ backgroundColor: "$ocean-background-subtle",
472
+ color: "$ocean-text"
473
+ }
474
+ },
475
+ {
476
+ variant: "ocean",
477
+ shade: "subtle",
478
+ border: true,
479
+ css: {
480
+ borderColor: "$ocean-border-subtle"
481
+ }
482
+ },
483
+ {
484
+ variant: "ocean",
485
+ shade: "mild",
486
+ css: {
487
+ backgroundColor: "$ocean-background-mild",
488
+ color: "$ocean-text"
489
+ }
490
+ },
491
+ {
492
+ variant: "ocean",
493
+ shade: "mild",
494
+ border: true,
495
+ css: {
496
+ borderColor: "$ocean-border"
497
+ }
498
+ },
499
+ {
500
+ variant: "ocean",
501
+ shade: "prominent",
502
+ css: {
503
+ backgroundColor: "$ocean-background-prominent",
504
+ color: "$ocean-text-subtle"
505
+ }
506
+ },
507
+ {
508
+ variant: "ocean",
509
+ shade: "prominent",
510
+ border: true,
511
+ css: {
512
+ borderColor: "$ocean-border-prominent"
513
+ }
514
+ },
515
+ /** Lilac variant */
516
+ {
517
+ variant: "lilac",
518
+ shade: "subtle",
519
+ css: {
520
+ backgroundColor: "$lilac-background-subtle",
521
+ color: "$lilac-text"
522
+ }
523
+ },
524
+ {
525
+ variant: "lilac",
526
+ shade: "subtle",
527
+ border: true,
528
+ css: {
529
+ borderColor: "$lilac-border-subtle"
530
+ }
531
+ },
532
+ {
533
+ variant: "lilac",
534
+ shade: "mild",
535
+ css: {
536
+ backgroundColor: "$lilac-background-mild",
537
+ color: "$lilac-text"
538
+ }
539
+ },
540
+ {
541
+ variant: "lilac",
542
+ shade: "mild",
543
+ border: true,
544
+ css: {
545
+ borderColor: "$lilac-border"
546
+ }
547
+ },
548
+ {
549
+ variant: "lilac",
550
+ shade: "prominent",
551
+ css: {
552
+ backgroundColor: "$lilac-background-prominent",
553
+ color: "$lilac-text-subtle"
554
+ }
555
+ },
556
+ {
557
+ variant: "lilac",
558
+ shade: "prominent",
559
+ border: true,
560
+ css: {
561
+ borderColor: "$lilac-border-prominent"
562
+ }
563
+ },
564
+ /** Pink variant */
565
+ {
566
+ variant: "pink",
567
+ shade: "subtle",
568
+ css: {
569
+ backgroundColor: "$pink-background-subtle",
570
+ color: "$pink-text"
571
+ }
572
+ },
573
+ {
574
+ variant: "pink",
575
+ shade: "subtle",
576
+ border: true,
577
+ css: {
578
+ borderColor: "$pink-border-subtle"
579
+ }
580
+ },
581
+ {
582
+ variant: "pink",
583
+ shade: "mild",
584
+ css: {
585
+ backgroundColor: "$pink-background-mild",
586
+ color: "$pink-text"
587
+ }
588
+ },
589
+ {
590
+ variant: "pink",
591
+ shade: "mild",
592
+ border: true,
593
+ css: {
594
+ borderColor: "$pink-border"
595
+ }
596
+ },
597
+ {
598
+ variant: "pink",
599
+ shade: "prominent",
600
+ css: {
601
+ backgroundColor: "$pink-background-prominent",
602
+ color: "$pink-text-subtle"
603
+ }
604
+ },
605
+ {
606
+ variant: "pink",
607
+ shade: "prominent",
608
+ border: true,
609
+ css: {
610
+ borderColor: "$pink-border-prominent"
611
+ }
612
+ },
613
+ /** Coal variant */
614
+ {
615
+ variant: "coal",
616
+ shade: "subtle",
617
+ css: {
618
+ backgroundColor: "$coal-background-subtle",
619
+ color: "$coal-text"
620
+ }
621
+ },
622
+ {
623
+ variant: "coal",
624
+ shade: "subtle",
625
+ border: true,
626
+ css: {
627
+ borderColor: "$coal-border-subtle"
628
+ }
629
+ },
630
+ {
631
+ variant: "coal",
632
+ shade: "mild",
633
+ css: {
634
+ backgroundColor: "$coal-background-mild",
635
+ color: "$coal-text"
636
+ }
637
+ },
638
+ {
639
+ variant: "coal",
640
+ shade: "mild",
641
+ border: true,
642
+ css: {
643
+ borderColor: "$coal-border"
644
+ }
645
+ },
646
+ {
647
+ variant: "coal",
648
+ shade: "prominent",
649
+ css: {
650
+ backgroundColor: "$coal-background-prominent",
651
+ color: "$coal-text-subtle"
652
+ }
653
+ },
654
+ {
655
+ variant: "coal",
656
+ shade: "prominent",
657
+ border: true,
658
+ css: {
659
+ borderColor: "$coal-border-prominent"
660
+ }
661
+ }
662
+ ]
67
663
  });
68
664
  const StyledInner = styled(Primitive.span, {
69
665
  whiteSpace: "nowrap",
70
666
  overflow: "hidden",
71
- textOverflow: "ellipsis"
667
+ textOverflow: "ellipsis",
668
+ variants: {
669
+ v1: {
670
+ true: {
671
+ paddingBottom: "1px"
672
+ }
673
+ }
674
+ }
675
+ });
676
+
677
+ const StyledIconSlot = styled(Primitive.span, {
678
+ paddingInlineEnd: "$25",
679
+ "& svg": {
680
+ transform: "translateY(0.5px)"
681
+ }
682
+ });
683
+
684
+ const IconSlot = React.forwardRef(({ children, ...restProps }, forwardRef) => {
685
+ const formattedChildren = addPropsToChildren(
686
+ children,
687
+ (child) => isIconComponent(child),
688
+ {
689
+ "data-icon-component": "",
690
+ size: "small",
691
+ weight: "thin"
692
+ }
693
+ );
694
+ return /* @__PURE__ */ jsx(StyledIconSlot, { ...restProps, ref: forwardRef, children: formattedChildren });
72
695
  });
73
696
 
74
697
  const Tag = React.forwardRef(
75
- ({ variant = "primary", children, ...props }, forwardRef) => /* @__PURE__ */ jsx(StyledTag, { ...props, variant, ref: forwardRef, children: /* @__PURE__ */ jsx(StyledInner, { children }) })
698
+ ({ variant = "primary", shade = "mild", children, ...restProps }, forwardRef) => {
699
+ const [v1] = useNewDesignLanguage();
700
+ return /* @__PURE__ */ jsx(
701
+ StyledTag,
702
+ {
703
+ ...restProps,
704
+ variant,
705
+ shade,
706
+ v1,
707
+ ref: forwardRef,
708
+ children: /* @__PURE__ */ jsx(StyledInner, { v1, children })
709
+ }
710
+ );
711
+ }
76
712
  );
713
+ Tag.IconSlot = IconSlot;
77
714
 
78
715
  export { Tag };
79
716
  //# sourceMappingURL=module.js.map