tailwind_merge 0.5.1 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +16 -0
- data/Gemfile +2 -2
- data/README.md +2 -0
- data/lib/tailwind_merge/class_utils.rb +5 -3
- data/lib/tailwind_merge/config.rb +160 -13
- data/lib/tailwind_merge/validators.rb +5 -1
- data/lib/tailwind_merge/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b9f76007fe9bc9eb3a01775ddfbc29e400884058373a9baeb001ccfff21ef9a7
|
4
|
+
data.tar.gz: 4d97ba3be89af9227c4b2aa6f38fc8e9926886b6c33225881630356d72576f3d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 28794887eeb6e5f73ac74768cad06e52b4d5463e5ea436661e07d61a316f1e4a41b1a6607600746153f0b5464004472c1b98982d7770ca947ea03eb714e0f141
|
7
|
+
data.tar.gz: 88e8f3ab1bb6f2173a1f5aceca7416d8c1c1b4d73608ed78ed97b364f67560792996dcd72e5bcca1f81327bf8fd7aaef318aaab55011772019e9e677fa03f667
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,21 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## [v0.6.0](https://github.com/gjtorikian/tailwind_merge/tree/v0.6.0) (2023-03-29)
|
4
|
+
|
5
|
+
[Full Changelog](https://github.com/gjtorikian/tailwind_merge/compare/v0.5.2...v0.6.0)
|
6
|
+
|
7
|
+
**Merged pull requests:**
|
8
|
+
|
9
|
+
- Support 3.3 [\#9](https://github.com/gjtorikian/tailwind_merge/pull/9) ([gjtorikian](https://github.com/gjtorikian))
|
10
|
+
|
11
|
+
## [v0.5.2](https://github.com/gjtorikian/tailwind_merge/tree/v0.5.2) (2023-02-21)
|
12
|
+
|
13
|
+
[Full Changelog](https://github.com/gjtorikian/tailwind_merge/compare/v0.5.1...v0.5.2)
|
14
|
+
|
15
|
+
**Merged pull requests:**
|
16
|
+
|
17
|
+
- support for container query length units [\#8](https://github.com/gjtorikian/tailwind_merge/pull/8) ([gjtorikian](https://github.com/gjtorikian))
|
18
|
+
|
3
19
|
## [v0.5.1](https://github.com/gjtorikian/tailwind_merge/tree/v0.5.1) (2023-02-05)
|
4
20
|
|
5
21
|
[Full Changelog](https://github.com/gjtorikian/tailwind_merge/compare/v0.5.0...v0.5.1)
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -266,6 +266,7 @@ In the Tailwind config you can modify theme scales. `tailwind_merge` follows the
|
|
266
266
|
- `invert`
|
267
267
|
- `gap`
|
268
268
|
- `gradientColorStops`
|
269
|
+
- `gradientColorStopPositions`
|
269
270
|
- `inset`
|
270
271
|
- `margin`
|
271
272
|
- `opacity`
|
@@ -286,6 +287,7 @@ Here's a brief summary for each validator:
|
|
286
287
|
- `IS_LENGTH` checks whether a class part is a number (`3`, `1.5`), a fraction (`3/4`), a arbitrary length (`[3%]`, `[4px]`, `[length:var(--my-var)]`), or one of the strings `px`, `full` or `screen`.
|
287
288
|
- `IS_ARBITRARY_LENGTH` checks for arbitrary length values (`[3%]`, `[4px]`, `[length:var(--my-var)]`).
|
288
289
|
- `IS_INTEGER` checks for integer values (`3`) and arbitrary integer values (`[3]`).
|
290
|
+
- `IS_PERCENT` checks for percent values (`12.5%`) which is used for color stop positions.
|
289
291
|
- `IS_ARBITRARY_VALUE` checks whether the class part is enclosed in brackets (`[something]`)
|
290
292
|
- `IS_TSHIRT_SIZE`checks whether class part is a T-shirt size (`sm`, `xl`), optionally with a preceding number (`2xl`).
|
291
293
|
- `IS_ARBITRARY_SIZE` checks whether class part is an arbitrary value which starts with `size:` (`[size:200px_100px]`) which is necessary for background-size classNames.
|
@@ -39,10 +39,12 @@ module TailwindMerge
|
|
39
39
|
class_rest = class_parts.join(CLASS_PART_SEPARATOR)
|
40
40
|
|
41
41
|
result = class_part_object[:validators].find do |v|
|
42
|
-
|
43
|
-
|
42
|
+
validator = v[:validator]
|
43
|
+
|
44
|
+
if from_theme?(validator)
|
45
|
+
validator.call(@config)
|
44
46
|
else
|
45
|
-
|
47
|
+
validator.call(class_rest)
|
46
48
|
end
|
47
49
|
end
|
48
50
|
|
@@ -22,6 +22,7 @@ module TailwindMerge
|
|
22
22
|
INVERT = ->(config) { FROM_THEME.call(config, "invert") }
|
23
23
|
GAP = ->(config) { FROM_THEME.call(config, "gap") }
|
24
24
|
GRADIENT_COLOR_STOPS = ->(config) { FROM_THEME.call(config, "gradient-color-stops") }
|
25
|
+
GRADIENT_COLOR_STOP_POSITIONS = ->(config) { FROM_THEME.call(config, "gradient-color-stop-positions") }
|
25
26
|
INSET = ->(config) { FROM_THEME.call(config, "inset") }
|
26
27
|
MARGIN = ->(config) { FROM_THEME.call(config, "margin") }
|
27
28
|
OPACITY = ->(config) { FROM_THEME.call(config, "opacity") }
|
@@ -48,6 +49,7 @@ module TailwindMerge
|
|
48
49
|
INVERT.object_id,
|
49
50
|
GAP.object_id,
|
50
51
|
GRADIENT_COLOR_STOPS.object_id,
|
52
|
+
GRADIENT_COLOR_STOP_POSITIONS.object_id,
|
51
53
|
INSET.object_id,
|
52
54
|
MARGIN.object_id,
|
53
55
|
OPACITY.object_id,
|
@@ -100,7 +102,7 @@ module TailwindMerge
|
|
100
102
|
"plus-lighter",
|
101
103
|
]
|
102
104
|
}
|
103
|
-
ALIGN = -> { ["start", "end", "center", "between", "around", "evenly"] }
|
105
|
+
ALIGN = -> { ["start", "end", "center", "between", "around", "evenly", "stretch"] }
|
104
106
|
ZERO_AND_EMPTY = -> { ["", "0", IS_ARBITRARY_VALUE] }
|
105
107
|
BREAKS = -> { ["auto", "avoid", "all", "avoid-page", "page", "left", "right", "column"] }
|
106
108
|
NUMBER = -> { [IS_NUMBER, IS_ARBITRARY_NUMBER] }
|
@@ -124,6 +126,7 @@ module TailwindMerge
|
|
124
126
|
"invert" => ZERO_AND_EMPTY.call,
|
125
127
|
"gap" => [SPACING],
|
126
128
|
"gradient-color-stops" => [COLORS],
|
129
|
+
"gradient-color-stop-positions" => [IS_PERCENT, IS_ARBITRARY_LENGTH],
|
127
130
|
"inset" => SPACING_WITH_AUTO.call,
|
128
131
|
"margin" => SPACING_WITH_AUTO.call,
|
129
132
|
"opacity" => NUMBER.call,
|
@@ -135,7 +138,7 @@ module TailwindMerge
|
|
135
138
|
"space" => [SPACING],
|
136
139
|
"translate" => [SPACING],
|
137
140
|
},
|
138
|
-
class_groups: {
|
141
|
+
class_groups: { # rubocop:disable Metrics/CollectionLiteralLength
|
139
142
|
# Layout
|
140
143
|
##
|
141
144
|
# Aspect Ratio
|
@@ -279,6 +282,16 @@ module TailwindMerge
|
|
279
282
|
# @see https://tailwindcss.com/docs/top-right-bottom-left
|
280
283
|
##
|
281
284
|
"inset-y" => [{ "inset-y" => [INSET] }],
|
285
|
+
#
|
286
|
+
# Start
|
287
|
+
# @see https://tailwindcss.com/docs/top-right-bottom-left
|
288
|
+
#
|
289
|
+
"start" => [{ "start" => [INSET] }],
|
290
|
+
#
|
291
|
+
# End
|
292
|
+
# @see https://tailwindcss.com/docs/top-right-bottom-left
|
293
|
+
#
|
294
|
+
"end" => [{ "end" => [INSET] }],
|
282
295
|
##
|
283
296
|
# Top
|
284
297
|
# @see https://tailwindcss.com/docs/top-right-bottom-left
|
@@ -419,7 +432,7 @@ module TailwindMerge
|
|
419
432
|
# Justify Content
|
420
433
|
# @see https://tailwindcss.com/docs/justify-content
|
421
434
|
##
|
422
|
-
"justify-content" => [{ "justify" => ALIGN.call }],
|
435
|
+
"justify-content" => [{ "justify" => ["normal", *ALIGN.call] }],
|
423
436
|
##
|
424
437
|
# Justify Items
|
425
438
|
# @see https://tailwindcss.com/docs/justify-items
|
@@ -434,7 +447,7 @@ module TailwindMerge
|
|
434
447
|
# Align Content
|
435
448
|
# @see https://tailwindcss.com/docs/align-content
|
436
449
|
##
|
437
|
-
"align-content" => [{ content
|
450
|
+
"align-content" => [{ "content" => ["normal", *ALIGN.call, "baseline"] }],
|
438
451
|
##
|
439
452
|
# Align Items
|
440
453
|
# @see https://tailwindcss.com/docs/align-items
|
@@ -449,7 +462,7 @@ module TailwindMerge
|
|
449
462
|
# Place Content
|
450
463
|
# @see https://tailwindcss.com/docs/place-content
|
451
464
|
##
|
452
|
-
"place-content" => [{ "place-content" => [*ALIGN.call, "baseline"
|
465
|
+
"place-content" => [{ "place-content" => [*ALIGN.call, "baseline"] }],
|
453
466
|
##
|
454
467
|
# Place Items
|
455
468
|
# @see https://tailwindcss.com/docs/place-items
|
@@ -476,6 +489,16 @@ module TailwindMerge
|
|
476
489
|
# @see https://tailwindcss.com/docs/padding
|
477
490
|
##
|
478
491
|
"py" => [{ "py" => [PADDING] }],
|
492
|
+
#
|
493
|
+
# Padding Start
|
494
|
+
# @see https://tailwindcss.com/docs/padding
|
495
|
+
#
|
496
|
+
"ps" => [{ "ps" => [PADDING] }],
|
497
|
+
#
|
498
|
+
# Padding End
|
499
|
+
# @see https://tailwindcss.com/docs/padding
|
500
|
+
#
|
501
|
+
"pe" => [{ "pe" => [PADDING] }],
|
479
502
|
##
|
480
503
|
# Padding Top
|
481
504
|
# @see https://tailwindcss.com/docs/padding
|
@@ -511,6 +534,16 @@ module TailwindMerge
|
|
511
534
|
# @see https://tailwindcss.com/docs/margin
|
512
535
|
##
|
513
536
|
"my" => [{ "my" => [MARGIN] }],
|
537
|
+
#
|
538
|
+
# Margin Start
|
539
|
+
# @see https://tailwindcss.com/docs/margin
|
540
|
+
#
|
541
|
+
"ms" => [{ "ms" => [MARGIN] }],
|
542
|
+
#
|
543
|
+
# Margin End
|
544
|
+
# @see https://tailwindcss.com/docs/margin
|
545
|
+
#
|
546
|
+
"me" => [{ "me" => [MARGIN] }],
|
514
547
|
##
|
515
548
|
# Margin Top
|
516
549
|
# @see https://tailwindcss.com/docs/margin
|
@@ -683,8 +716,13 @@ module TailwindMerge
|
|
683
716
|
"widest",
|
684
717
|
IS_ARBITRARY_LENGTH,
|
685
718
|
],
|
686
|
-
},
|
719
|
+
}, # rubocop:enable Metrics/CollectionLiteralLength
|
687
720
|
],
|
721
|
+
#
|
722
|
+
# Line Clamp
|
723
|
+
# @see https://tailwindcss.com/docs/line-clamp
|
724
|
+
#
|
725
|
+
"line-clamp" => [{ "line-clamp" => ["none", IS_NUMBER, IS_ARBITRARY_NUMBER] }],
|
688
726
|
##
|
689
727
|
# Line Height
|
690
728
|
# @see https://tailwindcss.com/docs/line-height
|
@@ -692,6 +730,11 @@ module TailwindMerge
|
|
692
730
|
"leading" => [
|
693
731
|
{ "leading" => ["none", "tight", "snug", "normal", "relaxed", "loose", IS_LENGTH] },
|
694
732
|
],
|
733
|
+
#
|
734
|
+
# List Style Image
|
735
|
+
# @see https://tailwindcss.com/docs/list-style-image
|
736
|
+
#
|
737
|
+
"list-image" => [{ "list-image" => ["none", IS_ARBITRARY_VALUE] }],
|
695
738
|
##
|
696
739
|
# List Style Type
|
697
740
|
# @see https://tailwindcss.com/docs/list-style-type
|
@@ -791,12 +834,17 @@ module TailwindMerge
|
|
791
834
|
# Whitespace
|
792
835
|
# @see https://tailwindcss.com/docs/whitespace
|
793
836
|
##
|
794
|
-
"whitespace" => [{ "whitespace" => ["normal", "nowrap", "pre", "pre-line", "pre-wrap"] }],
|
837
|
+
"whitespace" => [{ "whitespace" => ["normal", "nowrap", "pre", "pre-line", "pre-wrap", "break-spaces"] }],
|
795
838
|
##
|
796
839
|
# Word Break
|
797
840
|
# @see https://tailwindcss.com/docs/word-break
|
798
841
|
##
|
799
842
|
"break" => [{ "break" => ["normal", "words", "all", "keep"] }],
|
843
|
+
#
|
844
|
+
# Hyphens
|
845
|
+
# @see https://tailwindcss.com/docs/hyphens
|
846
|
+
#
|
847
|
+
"hyphens" => [{ "hyphens" => ["none", "manual", "auto"] }],
|
800
848
|
##
|
801
849
|
# Content
|
802
850
|
# @see https://tailwindcss.com/docs/content
|
@@ -857,6 +905,21 @@ module TailwindMerge
|
|
857
905
|
# @see https://tailwindcss.com/docs/background-color
|
858
906
|
##
|
859
907
|
"bg-color" => [{ "bg" => [COLORS] }],
|
908
|
+
#
|
909
|
+
# Gradient Color Stops From Position
|
910
|
+
# @see https://tailwindcss.com/docs/gradient-color-stops
|
911
|
+
#
|
912
|
+
"gradient-from-pos" => [{ "from" => [GRADIENT_COLOR_STOP_POSITIONS] }],
|
913
|
+
#
|
914
|
+
# Gradient Color Stops Via Position
|
915
|
+
# @see https://tailwindcss.com/docs/gradient-color-stops
|
916
|
+
#
|
917
|
+
"gradient-via-pos" => [{ "via" => [GRADIENT_COLOR_STOP_POSITIONS] }],
|
918
|
+
#
|
919
|
+
# Gradient Color Stops To Position
|
920
|
+
# @see https://tailwindcss.com/docs/gradient-color-stops
|
921
|
+
#
|
922
|
+
"gradient-to-pos" => [{ "to" => [GRADIENT_COLOR_STOP_POSITIONS] }],
|
860
923
|
##
|
861
924
|
# Gradient Color Stops From
|
862
925
|
# @see https://tailwindcss.com/docs/gradient-color-stops
|
@@ -878,6 +941,16 @@ module TailwindMerge
|
|
878
941
|
# @see https://tailwindcss.com/docs/border-radius
|
879
942
|
##
|
880
943
|
"rounded" => [{ "rounded" => [BORDER_RADIUS] }],
|
944
|
+
#
|
945
|
+
# Border Radius Start
|
946
|
+
# @see https://tailwindcss.com/docs/border-radius
|
947
|
+
#
|
948
|
+
"rounded-s" => [{ "rounded-s" => [BORDER_RADIUS] }],
|
949
|
+
#
|
950
|
+
# Border Radius End
|
951
|
+
# @see https://tailwindcss.com/docs/border-radius
|
952
|
+
#
|
953
|
+
"rounded-e" => [{ "rounded-e" => [BORDER_RADIUS] }],
|
881
954
|
##
|
882
955
|
# Border Radius Top
|
883
956
|
# @see https://tailwindcss.com/docs/border-radius
|
@@ -898,6 +971,26 @@ module TailwindMerge
|
|
898
971
|
# @see https://tailwindcss.com/docs/border-radius
|
899
972
|
##
|
900
973
|
"rounded-l" => [{ "rounded-l" => [BORDER_RADIUS] }],
|
974
|
+
#
|
975
|
+
# Border Radius Start Start
|
976
|
+
# @see https://tailwindcss.com/docs/border-radius
|
977
|
+
#
|
978
|
+
"rounded-ss" => [{ "rounded-ss" => [BORDER_RADIUS] }],
|
979
|
+
#
|
980
|
+
# Border Radius Start End
|
981
|
+
# @see https://tailwindcss.com/docs/border-radius
|
982
|
+
#
|
983
|
+
"rounded-se" => [{ "rounded-se" => [BORDER_RADIUS] }],
|
984
|
+
#
|
985
|
+
# Border Radius End End
|
986
|
+
# @see https://tailwindcss.com/docs/border-radius
|
987
|
+
#
|
988
|
+
"rounded-ee" => [{ "rounded-ee" => [BORDER_RADIUS] }],
|
989
|
+
#
|
990
|
+
# Border Radius End Start
|
991
|
+
# @see https://tailwindcss.com/docs/border-radius
|
992
|
+
#
|
993
|
+
"rounded-es" => [{ "rounded-es" => [BORDER_RADIUS] }],
|
901
994
|
##
|
902
995
|
# Border Radius Top Left
|
903
996
|
# @see https://tailwindcss.com/docs/border-radius
|
@@ -933,6 +1026,16 @@ module TailwindMerge
|
|
933
1026
|
# @see https://tailwindcss.com/docs/border-width
|
934
1027
|
##
|
935
1028
|
"border-w-y" => [{ "border-y" => [BORDER_WIDTH] }],
|
1029
|
+
#
|
1030
|
+
# Border Width Start
|
1031
|
+
# @see https://tailwindcss.com/docs/border-width
|
1032
|
+
#
|
1033
|
+
"border-w-s" => [{ "border-s" => [BORDER_WIDTH] }],
|
1034
|
+
#
|
1035
|
+
# Border Width End
|
1036
|
+
# @see https://tailwindcss.com/docs/border-width
|
1037
|
+
#
|
1038
|
+
"border-w-e" => [{ "border-e" => [BORDER_WIDTH] }],
|
936
1039
|
##
|
937
1040
|
# Border Width Top
|
938
1041
|
# @see https://tailwindcss.com/docs/border-width
|
@@ -1238,6 +1341,11 @@ module TailwindMerge
|
|
1238
1341
|
# @see https://tailwindcss.com/docs/table-layout
|
1239
1342
|
##
|
1240
1343
|
"table-layout" => [{ "table" => ["auto", "fixed"] }],
|
1344
|
+
#
|
1345
|
+
# Caption Side
|
1346
|
+
# @see https://tailwindcss.com/docs/caption-side
|
1347
|
+
#
|
1348
|
+
"caption" => [{ "caption" => ["top", "bottom"] }],
|
1241
1349
|
# Transitions and Animation
|
1242
1350
|
##
|
1243
1351
|
# Tranisition Property
|
@@ -1261,7 +1369,7 @@ module TailwindMerge
|
|
1261
1369
|
# Transition Duration
|
1262
1370
|
# @see https://tailwindcss.com/docs/transition-duration
|
1263
1371
|
##
|
1264
|
-
"duration" => [{ "duration" =>
|
1372
|
+
"duration" => [{ "duration" => NUMBER_AND_ARBITRARY.call }],
|
1265
1373
|
##
|
1266
1374
|
# Transition Timing Function
|
1267
1375
|
# @see https://tailwindcss.com/docs/transition-timing-function
|
@@ -1271,7 +1379,7 @@ module TailwindMerge
|
|
1271
1379
|
# Transition Delay
|
1272
1380
|
# @see https://tailwindcss.com/docs/transition-delay
|
1273
1381
|
##
|
1274
|
-
"delay" => [{ "delay" =>
|
1382
|
+
"delay" => [{ "delay" => NUMBER_AND_ARBITRARY.call }],
|
1275
1383
|
##
|
1276
1384
|
# Animation
|
1277
1385
|
# @see https://tailwindcss.com/docs/animation
|
@@ -1436,6 +1544,16 @@ module TailwindMerge
|
|
1436
1544
|
# @see https://tailwindcss.com/docs/scroll-margin
|
1437
1545
|
##
|
1438
1546
|
"scroll-my" => [{ "scroll-my" => [SPACING] }],
|
1547
|
+
#
|
1548
|
+
# Scroll Margin Start
|
1549
|
+
# @see https://tailwindcss.com/docs/scroll-margin
|
1550
|
+
#
|
1551
|
+
"scroll-ms" => [{ "scroll-ms" => [SPACING] }],
|
1552
|
+
#
|
1553
|
+
# Scroll Margin End
|
1554
|
+
# @see https://tailwindcss.com/docs/scroll-margin
|
1555
|
+
#
|
1556
|
+
"scroll-me" => [{ "scroll-me" => [SPACING] }],
|
1439
1557
|
##
|
1440
1558
|
# Scroll Margin Top
|
1441
1559
|
# @see https://tailwindcss.com/docs/scroll-margin
|
@@ -1471,6 +1589,16 @@ module TailwindMerge
|
|
1471
1589
|
# @see https://tailwindcss.com/docs/scroll-padding
|
1472
1590
|
##
|
1473
1591
|
"scroll-py" => [{ "scroll-py" => [SPACING] }],
|
1592
|
+
#
|
1593
|
+
# Scroll Padding Start
|
1594
|
+
# @see https://tailwindcss.com/docs/scroll-padding
|
1595
|
+
#
|
1596
|
+
"scroll-ps" => [{ "scroll-ps" => [SPACING] }],
|
1597
|
+
#
|
1598
|
+
# Scroll Padding End
|
1599
|
+
# @see https://tailwindcss.com/docs/scroll-padding
|
1600
|
+
#
|
1601
|
+
"scroll-pe" => [{ "scroll-pe" => [SPACING] }],
|
1474
1602
|
##
|
1475
1603
|
# Scroll Padding Top
|
1476
1604
|
# @see https://tailwindcss.com/docs/scroll-padding
|
@@ -1564,15 +1692,15 @@ module TailwindMerge
|
|
1564
1692
|
conflicting_class_groups: {
|
1565
1693
|
"overflow" => ["overflow-x", "overflow-y"],
|
1566
1694
|
"overscroll" => ["overscroll-x", "overscroll-y"],
|
1567
|
-
"inset" => ["inset-x", "inset-y", "top", "right", "bottom", "left"],
|
1695
|
+
"inset" => ["inset-x", "inset-y", "start", "end", "top", "right", "bottom", "left"],
|
1568
1696
|
"inset-x" => ["right", "left"],
|
1569
1697
|
"inset-y" => ["top", "bottom"],
|
1570
1698
|
"flex" => ["basis", "grow", "shrink"],
|
1571
1699
|
"gap" => ["gap-x", "gap-y"],
|
1572
|
-
"p" => ["px", "py", "pt", "pr", "pb", "pl"],
|
1700
|
+
"p" => ["px", "py", "ps", "pe", "pt", "pr", "pb", "pl"],
|
1573
1701
|
"px" => ["pr", "pl"],
|
1574
1702
|
"py" => ["pt", "pb"],
|
1575
|
-
"m" => ["mx", "my", "mt", "mr", "mb", "ml"],
|
1703
|
+
"m" => ["mx", "my", "ms", "me", "mt", "mr", "mb", "ml"],
|
1576
1704
|
"mx" => ["mr", "ml"],
|
1577
1705
|
"my" => ["mt", "mb"],
|
1578
1706
|
"font-size" => ["leading"],
|
@@ -1589,21 +1717,36 @@ module TailwindMerge
|
|
1589
1717
|
"fvn-spacing" => ["fvn-normal"],
|
1590
1718
|
"fvn-fraction" => ["fvn-normal"],
|
1591
1719
|
"rounded" => [
|
1720
|
+
"rounded-s",
|
1721
|
+
"rounded-e",
|
1592
1722
|
"rounded-t",
|
1593
1723
|
"rounded-r",
|
1594
1724
|
"rounded-b",
|
1595
1725
|
"rounded-l",
|
1726
|
+
"rounded-ss",
|
1727
|
+
"rounded-se",
|
1728
|
+
"rounded-ee",
|
1729
|
+
"rounded-es",
|
1596
1730
|
"rounded-tl",
|
1597
1731
|
"rounded-tr",
|
1598
1732
|
"rounded-br",
|
1599
1733
|
"rounded-bl",
|
1600
1734
|
],
|
1735
|
+
"rounded-s" => ["rounded-ss", "rounded-es"],
|
1736
|
+
"rounded-e" => ["rounded-se", "rounded-ee"],
|
1601
1737
|
"rounded-t" => ["rounded-tl", "rounded-tr"],
|
1602
1738
|
"rounded-r" => ["rounded-tr", "rounded-br"],
|
1603
1739
|
"rounded-b" => ["rounded-br", "rounded-bl"],
|
1604
1740
|
"rounded-l" => ["rounded-tl", "rounded-bl"],
|
1605
1741
|
"border-spacing" => ["border-spacing-x", "border-spacing-y"],
|
1606
|
-
"border-w" => [
|
1742
|
+
"border-w" => [
|
1743
|
+
"border-w-s",
|
1744
|
+
"border-w-e",
|
1745
|
+
"border-w-t",
|
1746
|
+
"border-w-r",
|
1747
|
+
"border-w-b",
|
1748
|
+
"border-w-l",
|
1749
|
+
],
|
1607
1750
|
"border-w-x" => ["border-w-r", "border-w-l"],
|
1608
1751
|
"border-w-y" => ["border-w-t", "border-w-b"],
|
1609
1752
|
"border-color" => [
|
@@ -1617,6 +1760,8 @@ module TailwindMerge
|
|
1617
1760
|
"scroll-m" => [
|
1618
1761
|
"scroll-mx",
|
1619
1762
|
"scroll-my",
|
1763
|
+
"scroll-ms",
|
1764
|
+
"scroll-me",
|
1620
1765
|
"scroll-mt",
|
1621
1766
|
"scroll-mr",
|
1622
1767
|
"scroll-mb",
|
@@ -1627,6 +1772,8 @@ module TailwindMerge
|
|
1627
1772
|
"scroll-p" => [
|
1628
1773
|
"scroll-px",
|
1629
1774
|
"scroll-py",
|
1775
|
+
"scroll-ps",
|
1776
|
+
"scroll-pe",
|
1630
1777
|
"scroll-pt",
|
1631
1778
|
"scroll-pr",
|
1632
1779
|
"scroll-pb",
|
@@ -27,7 +27,7 @@ module TailwindMerge
|
|
27
27
|
|
28
28
|
ARBITRARY_VALUE_REGEX = /^\[(?:([a-z-]+):)?(.+)\]$/i
|
29
29
|
FRACTION_REGEX = %r{^\d+/\d+$}
|
30
|
-
LENGTH_UNIT_REGEX = /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh)/
|
30
|
+
LENGTH_UNIT_REGEX = /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))/
|
31
31
|
TSHIRT_UNIT_REGEX = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/
|
32
32
|
# Shadow always begins with x and y offset separated by underscore
|
33
33
|
SHADOW_REGEX = /^-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/
|
@@ -85,6 +85,10 @@ module TailwindMerge
|
|
85
85
|
is_number.call(value)
|
86
86
|
}
|
87
87
|
|
88
|
+
IS_PERCENT = ->(value) {
|
89
|
+
value.end_with?("%") && is_number.call(value[0..-2])
|
90
|
+
}
|
91
|
+
|
88
92
|
IS_INTEGER = ->(value) {
|
89
93
|
is_integer_only.call(value) || arbitrary_value?(value, "number", is_integer_only)
|
90
94
|
}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tailwind_merge
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Garen J. Torikian
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-03-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: lru_redux
|