tailwind-merge 3.4.1 → 3.5.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/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  <div align="center">
4
4
  <br />
5
5
  <a href="https://github.com/dcastil/tailwind-merge">
6
- <img src="https://github.com/dcastil/tailwind-merge/raw/v3.4.1/assets/logo.svg" alt="tailwind-merge" height="150px" />
6
+ <img src="https://github.com/dcastil/tailwind-merge/raw/v3.5.0/assets/logo.svg" alt="tailwind-merge" height="150px" />
7
7
  </a>
8
8
  </div>
9
9
 
@@ -18,21 +18,21 @@ twMerge('px-2 py-1 bg-red hover:bg-dark-red', 'p-3 bg-[#B91C1C]')
18
18
  // → 'hover:bg-dark-red p-3 bg-[#B91C1C]'
19
19
  ```
20
20
 
21
- - Supports Tailwind v4.0 up to v4.1 (if you use Tailwind v3, use [tailwind-merge v2.6.0](https://github.com/dcastil/tailwind-merge/tree/v2.6.0))
21
+ - Supports Tailwind v4.0 up to v4.2 (if you use Tailwind v3, use [tailwind-merge v2.6.0](https://github.com/dcastil/tailwind-merge/tree/v2.6.0))
22
22
  - Works in all modern browsers and maintained Node versions
23
23
  - Fully typed
24
24
  - [Check bundle size on Bundlephobia](https://bundlephobia.com/package/tailwind-merge)
25
25
 
26
26
  ## Get started
27
27
 
28
- - [What is it for](https://github.com/dcastil/tailwind-merge/tree/v3.4.1/docs/what-is-it-for.md)
29
- - [When and how to use it](https://github.com/dcastil/tailwind-merge/tree/v3.4.1/docs/when-and-how-to-use-it.md)
30
- - [Features](https://github.com/dcastil/tailwind-merge/tree/v3.4.1/docs/features.md)
31
- - [Limitations](https://github.com/dcastil/tailwind-merge/tree/v3.4.1/docs/limitations.md)
32
- - [Configuration](https://github.com/dcastil/tailwind-merge/tree/v3.4.1/docs/configuration.md)
33
- - [Recipes](https://github.com/dcastil/tailwind-merge/tree/v3.4.1/docs/recipes.md)
34
- - [API reference](https://github.com/dcastil/tailwind-merge/tree/v3.4.1/docs/api-reference.md)
35
- - [Writing plugins](https://github.com/dcastil/tailwind-merge/tree/v3.4.1/docs/writing-plugins.md)
36
- - [Versioning](https://github.com/dcastil/tailwind-merge/tree/v3.4.1/docs/versioning.md)
37
- - [Contributing](https://github.com/dcastil/tailwind-merge/tree/v3.4.1/docs/contributing.md)
38
- - [Similar packages](https://github.com/dcastil/tailwind-merge/tree/v3.4.1/docs/similar-packages.md)
28
+ - [What is it for](https://github.com/dcastil/tailwind-merge/tree/v3.5.0/docs/what-is-it-for.md)
29
+ - [When and how to use it](https://github.com/dcastil/tailwind-merge/tree/v3.5.0/docs/when-and-how-to-use-it.md)
30
+ - [Features](https://github.com/dcastil/tailwind-merge/tree/v3.5.0/docs/features.md)
31
+ - [Limitations](https://github.com/dcastil/tailwind-merge/tree/v3.5.0/docs/limitations.md)
32
+ - [Configuration](https://github.com/dcastil/tailwind-merge/tree/v3.5.0/docs/configuration.md)
33
+ - [Recipes](https://github.com/dcastil/tailwind-merge/tree/v3.5.0/docs/recipes.md)
34
+ - [API reference](https://github.com/dcastil/tailwind-merge/tree/v3.5.0/docs/api-reference.md)
35
+ - [Writing plugins](https://github.com/dcastil/tailwind-merge/tree/v3.5.0/docs/writing-plugins.md)
36
+ - [Versioning](https://github.com/dcastil/tailwind-merge/tree/v3.5.0/docs/versioning.md)
37
+ - [Contributing](https://github.com/dcastil/tailwind-merge/tree/v3.5.0/docs/contributing.md)
38
+ - [Similar packages](https://github.com/dcastil/tailwind-merge/tree/v3.5.0/docs/similar-packages.md)
@@ -494,7 +494,7 @@ const fromTheme = key => {
494
494
  };
495
495
  const arbitraryValueRegex = /^\[(?:(\w[\w-]*):)?(.+)\]$/i;
496
496
  const arbitraryVariableRegex = /^\((?:(\w[\w-]*):)?(.+)\)$/i;
497
- const fractionRegex = /^\d+\/\d+$/;
497
+ const fractionRegex = /^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/;
498
498
  const tshirtUnitRegex = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/;
499
499
  const lengthUnitRegex = /\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))|\b(calc|min|max|clamp)\(.+\)|^0$/;
500
500
  const colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/;
@@ -649,6 +649,8 @@ const getDefaultConfig = () => {
649
649
  const scaleAlignSecondaryAxis = () => ['start', 'end', 'center', 'stretch', 'center-safe', 'end-safe'];
650
650
  const scaleMargin = () => ['auto', ...scaleUnambiguousSpacing()];
651
651
  const scaleSizing = () => [isFraction, 'auto', 'full', 'dvw', 'dvh', 'lvw', 'lvh', 'svw', 'svh', 'min', 'max', 'fit', ...scaleUnambiguousSpacing()];
652
+ const scaleSizingInline = () => [isFraction, 'screen', 'full', 'dvw', 'lvw', 'svw', 'min', 'max', 'fit', ...scaleUnambiguousSpacing()];
653
+ const scaleSizingBlock = () => [isFraction, 'screen', 'full', 'lh', 'dvh', 'lvh', 'svh', 'min', 'max', 'fit', ...scaleUnambiguousSpacing()];
652
654
  const scaleColor = () => [themeColor, isArbitraryVariable, isArbitraryValue];
653
655
  const scaleBgPosition = () => [...scalePosition(), isArbitraryVariablePosition, isArbitraryPosition, {
654
656
  position: [isArbitraryVariable, isArbitraryValue]
@@ -847,40 +849,66 @@ const getDefaultConfig = () => {
847
849
  */
848
850
  position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],
849
851
  /**
850
- * Top / Right / Bottom / Left
852
+ * Inset
851
853
  * @see https://tailwindcss.com/docs/top-right-bottom-left
852
854
  */
853
855
  inset: [{
854
856
  inset: scaleInset()
855
857
  }],
856
858
  /**
857
- * Right / Left
859
+ * Inset Inline
858
860
  * @see https://tailwindcss.com/docs/top-right-bottom-left
859
861
  */
860
862
  'inset-x': [{
861
863
  'inset-x': scaleInset()
862
864
  }],
863
865
  /**
864
- * Top / Bottom
866
+ * Inset Block
865
867
  * @see https://tailwindcss.com/docs/top-right-bottom-left
866
868
  */
867
869
  'inset-y': [{
868
870
  'inset-y': scaleInset()
869
871
  }],
870
872
  /**
871
- * Start
873
+ * Inset Inline Start
872
874
  * @see https://tailwindcss.com/docs/top-right-bottom-left
875
+ * @todo class group will be renamed to `inset-s` in next major release
873
876
  */
874
877
  start: [{
878
+ 'inset-s': scaleInset(),
879
+ /**
880
+ * @deprecated since Tailwind CSS v4.2.0 in favor of `inset-s-*` utilities.
881
+ * @see https://github.com/tailwindlabs/tailwindcss/pull/19613
882
+ */
875
883
  start: scaleInset()
876
884
  }],
877
885
  /**
878
- * End
886
+ * Inset Inline End
879
887
  * @see https://tailwindcss.com/docs/top-right-bottom-left
888
+ * @todo class group will be renamed to `inset-e` in next major release
880
889
  */
881
890
  end: [{
891
+ 'inset-e': scaleInset(),
892
+ /**
893
+ * @deprecated since Tailwind CSS v4.2.0 in favor of `inset-e-*` utilities.
894
+ * @see https://github.com/tailwindlabs/tailwindcss/pull/19613
895
+ */
882
896
  end: scaleInset()
883
897
  }],
898
+ /**
899
+ * Inset Block Start
900
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
901
+ */
902
+ 'inset-bs': [{
903
+ 'inset-bs': scaleInset()
904
+ }],
905
+ /**
906
+ * Inset Block End
907
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
908
+ */
909
+ 'inset-be': [{
910
+ 'inset-be': scaleInset()
911
+ }],
884
912
  /**
885
913
  * Top
886
914
  * @see https://tailwindcss.com/docs/top-right-bottom-left
@@ -1147,33 +1175,47 @@ const getDefaultConfig = () => {
1147
1175
  p: scaleUnambiguousSpacing()
1148
1176
  }],
1149
1177
  /**
1150
- * Padding X
1178
+ * Padding Inline
1151
1179
  * @see https://tailwindcss.com/docs/padding
1152
1180
  */
1153
1181
  px: [{
1154
1182
  px: scaleUnambiguousSpacing()
1155
1183
  }],
1156
1184
  /**
1157
- * Padding Y
1185
+ * Padding Block
1158
1186
  * @see https://tailwindcss.com/docs/padding
1159
1187
  */
1160
1188
  py: [{
1161
1189
  py: scaleUnambiguousSpacing()
1162
1190
  }],
1163
1191
  /**
1164
- * Padding Start
1192
+ * Padding Inline Start
1165
1193
  * @see https://tailwindcss.com/docs/padding
1166
1194
  */
1167
1195
  ps: [{
1168
1196
  ps: scaleUnambiguousSpacing()
1169
1197
  }],
1170
1198
  /**
1171
- * Padding End
1199
+ * Padding Inline End
1172
1200
  * @see https://tailwindcss.com/docs/padding
1173
1201
  */
1174
1202
  pe: [{
1175
1203
  pe: scaleUnambiguousSpacing()
1176
1204
  }],
1205
+ /**
1206
+ * Padding Block Start
1207
+ * @see https://tailwindcss.com/docs/padding
1208
+ */
1209
+ pbs: [{
1210
+ pbs: scaleUnambiguousSpacing()
1211
+ }],
1212
+ /**
1213
+ * Padding Block End
1214
+ * @see https://tailwindcss.com/docs/padding
1215
+ */
1216
+ pbe: [{
1217
+ pbe: scaleUnambiguousSpacing()
1218
+ }],
1177
1219
  /**
1178
1220
  * Padding Top
1179
1221
  * @see https://tailwindcss.com/docs/padding
@@ -1210,33 +1252,47 @@ const getDefaultConfig = () => {
1210
1252
  m: scaleMargin()
1211
1253
  }],
1212
1254
  /**
1213
- * Margin X
1255
+ * Margin Inline
1214
1256
  * @see https://tailwindcss.com/docs/margin
1215
1257
  */
1216
1258
  mx: [{
1217
1259
  mx: scaleMargin()
1218
1260
  }],
1219
1261
  /**
1220
- * Margin Y
1262
+ * Margin Block
1221
1263
  * @see https://tailwindcss.com/docs/margin
1222
1264
  */
1223
1265
  my: [{
1224
1266
  my: scaleMargin()
1225
1267
  }],
1226
1268
  /**
1227
- * Margin Start
1269
+ * Margin Inline Start
1228
1270
  * @see https://tailwindcss.com/docs/margin
1229
1271
  */
1230
1272
  ms: [{
1231
1273
  ms: scaleMargin()
1232
1274
  }],
1233
1275
  /**
1234
- * Margin End
1276
+ * Margin Inline End
1235
1277
  * @see https://tailwindcss.com/docs/margin
1236
1278
  */
1237
1279
  me: [{
1238
1280
  me: scaleMargin()
1239
1281
  }],
1282
+ /**
1283
+ * Margin Block Start
1284
+ * @see https://tailwindcss.com/docs/margin
1285
+ */
1286
+ mbs: [{
1287
+ mbs: scaleMargin()
1288
+ }],
1289
+ /**
1290
+ * Margin Block End
1291
+ * @see https://tailwindcss.com/docs/margin
1292
+ */
1293
+ mbe: [{
1294
+ mbe: scaleMargin()
1295
+ }],
1240
1296
  /**
1241
1297
  * Margin Top
1242
1298
  * @see https://tailwindcss.com/docs/margin
@@ -1299,6 +1355,48 @@ const getDefaultConfig = () => {
1299
1355
  size: [{
1300
1356
  size: scaleSizing()
1301
1357
  }],
1358
+ /**
1359
+ * Inline Size
1360
+ * @see https://tailwindcss.com/docs/width
1361
+ */
1362
+ 'inline-size': [{
1363
+ inline: ['auto', ...scaleSizingInline()]
1364
+ }],
1365
+ /**
1366
+ * Min-Inline Size
1367
+ * @see https://tailwindcss.com/docs/min-width
1368
+ */
1369
+ 'min-inline-size': [{
1370
+ 'min-inline': ['auto', ...scaleSizingInline()]
1371
+ }],
1372
+ /**
1373
+ * Max-Inline Size
1374
+ * @see https://tailwindcss.com/docs/max-width
1375
+ */
1376
+ 'max-inline-size': [{
1377
+ 'max-inline': ['none', ...scaleSizingInline()]
1378
+ }],
1379
+ /**
1380
+ * Block Size
1381
+ * @see https://tailwindcss.com/docs/height
1382
+ */
1383
+ 'block-size': [{
1384
+ block: ['auto', ...scaleSizingBlock()]
1385
+ }],
1386
+ /**
1387
+ * Min-Block Size
1388
+ * @see https://tailwindcss.com/docs/min-height
1389
+ */
1390
+ 'min-block-size': [{
1391
+ 'min-block': ['auto', ...scaleSizingBlock()]
1392
+ }],
1393
+ /**
1394
+ * Max-Block Size
1395
+ * @see https://tailwindcss.com/docs/max-height
1396
+ */
1397
+ 'max-block-size': [{
1398
+ 'max-block': ['none', ...scaleSizingBlock()]
1399
+ }],
1302
1400
  /**
1303
1401
  * Width
1304
1402
  * @see https://tailwindcss.com/docs/width
@@ -1387,6 +1485,13 @@ const getDefaultConfig = () => {
1387
1485
  'font-family': [{
1388
1486
  font: [isArbitraryVariableFamilyName, isArbitraryFamilyName, themeFont]
1389
1487
  }],
1488
+ /**
1489
+ * Font Feature Settings
1490
+ * @see https://tailwindcss.com/docs/font-feature-settings
1491
+ */
1492
+ 'font-features': [{
1493
+ 'font-features': [isArbitraryValue]
1494
+ }],
1390
1495
  /**
1391
1496
  * Font Variant Numeric
1392
1497
  * @see https://tailwindcss.com/docs/font-variant-numeric
@@ -1804,33 +1909,47 @@ const getDefaultConfig = () => {
1804
1909
  border: scaleBorderWidth()
1805
1910
  }],
1806
1911
  /**
1807
- * Border Width X
1912
+ * Border Width Inline
1808
1913
  * @see https://tailwindcss.com/docs/border-width
1809
1914
  */
1810
1915
  'border-w-x': [{
1811
1916
  'border-x': scaleBorderWidth()
1812
1917
  }],
1813
1918
  /**
1814
- * Border Width Y
1919
+ * Border Width Block
1815
1920
  * @see https://tailwindcss.com/docs/border-width
1816
1921
  */
1817
1922
  'border-w-y': [{
1818
1923
  'border-y': scaleBorderWidth()
1819
1924
  }],
1820
1925
  /**
1821
- * Border Width Start
1926
+ * Border Width Inline Start
1822
1927
  * @see https://tailwindcss.com/docs/border-width
1823
1928
  */
1824
1929
  'border-w-s': [{
1825
1930
  'border-s': scaleBorderWidth()
1826
1931
  }],
1827
1932
  /**
1828
- * Border Width End
1933
+ * Border Width Inline End
1829
1934
  * @see https://tailwindcss.com/docs/border-width
1830
1935
  */
1831
1936
  'border-w-e': [{
1832
1937
  'border-e': scaleBorderWidth()
1833
1938
  }],
1939
+ /**
1940
+ * Border Width Block Start
1941
+ * @see https://tailwindcss.com/docs/border-width
1942
+ */
1943
+ 'border-w-bs': [{
1944
+ 'border-bs': scaleBorderWidth()
1945
+ }],
1946
+ /**
1947
+ * Border Width Block End
1948
+ * @see https://tailwindcss.com/docs/border-width
1949
+ */
1950
+ 'border-w-be': [{
1951
+ 'border-be': scaleBorderWidth()
1952
+ }],
1834
1953
  /**
1835
1954
  * Border Width Top
1836
1955
  * @see https://tailwindcss.com/docs/border-width
@@ -1905,33 +2024,47 @@ const getDefaultConfig = () => {
1905
2024
  border: scaleColor()
1906
2025
  }],
1907
2026
  /**
1908
- * Border Color X
2027
+ * Border Color Inline
1909
2028
  * @see https://tailwindcss.com/docs/border-color
1910
2029
  */
1911
2030
  'border-color-x': [{
1912
2031
  'border-x': scaleColor()
1913
2032
  }],
1914
2033
  /**
1915
- * Border Color Y
2034
+ * Border Color Block
1916
2035
  * @see https://tailwindcss.com/docs/border-color
1917
2036
  */
1918
2037
  'border-color-y': [{
1919
2038
  'border-y': scaleColor()
1920
2039
  }],
1921
2040
  /**
1922
- * Border Color S
2041
+ * Border Color Inline Start
1923
2042
  * @see https://tailwindcss.com/docs/border-color
1924
2043
  */
1925
2044
  'border-color-s': [{
1926
2045
  'border-s': scaleColor()
1927
2046
  }],
1928
2047
  /**
1929
- * Border Color E
2048
+ * Border Color Inline End
1930
2049
  * @see https://tailwindcss.com/docs/border-color
1931
2050
  */
1932
2051
  'border-color-e': [{
1933
2052
  'border-e': scaleColor()
1934
2053
  }],
2054
+ /**
2055
+ * Border Color Block Start
2056
+ * @see https://tailwindcss.com/docs/border-color
2057
+ */
2058
+ 'border-color-bs': [{
2059
+ 'border-bs': scaleColor()
2060
+ }],
2061
+ /**
2062
+ * Border Color Block End
2063
+ * @see https://tailwindcss.com/docs/border-color
2064
+ */
2065
+ 'border-color-be': [{
2066
+ 'border-be': scaleColor()
2067
+ }],
1935
2068
  /**
1936
2069
  * Border Color Top
1937
2070
  * @see https://tailwindcss.com/docs/border-color
@@ -2792,33 +2925,47 @@ const getDefaultConfig = () => {
2792
2925
  'scroll-m': scaleUnambiguousSpacing()
2793
2926
  }],
2794
2927
  /**
2795
- * Scroll Margin X
2928
+ * Scroll Margin Inline
2796
2929
  * @see https://tailwindcss.com/docs/scroll-margin
2797
2930
  */
2798
2931
  'scroll-mx': [{
2799
2932
  'scroll-mx': scaleUnambiguousSpacing()
2800
2933
  }],
2801
2934
  /**
2802
- * Scroll Margin Y
2935
+ * Scroll Margin Block
2803
2936
  * @see https://tailwindcss.com/docs/scroll-margin
2804
2937
  */
2805
2938
  'scroll-my': [{
2806
2939
  'scroll-my': scaleUnambiguousSpacing()
2807
2940
  }],
2808
2941
  /**
2809
- * Scroll Margin Start
2942
+ * Scroll Margin Inline Start
2810
2943
  * @see https://tailwindcss.com/docs/scroll-margin
2811
2944
  */
2812
2945
  'scroll-ms': [{
2813
2946
  'scroll-ms': scaleUnambiguousSpacing()
2814
2947
  }],
2815
2948
  /**
2816
- * Scroll Margin End
2949
+ * Scroll Margin Inline End
2817
2950
  * @see https://tailwindcss.com/docs/scroll-margin
2818
2951
  */
2819
2952
  'scroll-me': [{
2820
2953
  'scroll-me': scaleUnambiguousSpacing()
2821
2954
  }],
2955
+ /**
2956
+ * Scroll Margin Block Start
2957
+ * @see https://tailwindcss.com/docs/scroll-margin
2958
+ */
2959
+ 'scroll-mbs': [{
2960
+ 'scroll-mbs': scaleUnambiguousSpacing()
2961
+ }],
2962
+ /**
2963
+ * Scroll Margin Block End
2964
+ * @see https://tailwindcss.com/docs/scroll-margin
2965
+ */
2966
+ 'scroll-mbe': [{
2967
+ 'scroll-mbe': scaleUnambiguousSpacing()
2968
+ }],
2822
2969
  /**
2823
2970
  * Scroll Margin Top
2824
2971
  * @see https://tailwindcss.com/docs/scroll-margin
@@ -2855,33 +3002,47 @@ const getDefaultConfig = () => {
2855
3002
  'scroll-p': scaleUnambiguousSpacing()
2856
3003
  }],
2857
3004
  /**
2858
- * Scroll Padding X
3005
+ * Scroll Padding Inline
2859
3006
  * @see https://tailwindcss.com/docs/scroll-padding
2860
3007
  */
2861
3008
  'scroll-px': [{
2862
3009
  'scroll-px': scaleUnambiguousSpacing()
2863
3010
  }],
2864
3011
  /**
2865
- * Scroll Padding Y
3012
+ * Scroll Padding Block
2866
3013
  * @see https://tailwindcss.com/docs/scroll-padding
2867
3014
  */
2868
3015
  'scroll-py': [{
2869
3016
  'scroll-py': scaleUnambiguousSpacing()
2870
3017
  }],
2871
3018
  /**
2872
- * Scroll Padding Start
3019
+ * Scroll Padding Inline Start
2873
3020
  * @see https://tailwindcss.com/docs/scroll-padding
2874
3021
  */
2875
3022
  'scroll-ps': [{
2876
3023
  'scroll-ps': scaleUnambiguousSpacing()
2877
3024
  }],
2878
3025
  /**
2879
- * Scroll Padding End
3026
+ * Scroll Padding Inline End
2880
3027
  * @see https://tailwindcss.com/docs/scroll-padding
2881
3028
  */
2882
3029
  'scroll-pe': [{
2883
3030
  'scroll-pe': scaleUnambiguousSpacing()
2884
3031
  }],
3032
+ /**
3033
+ * Scroll Padding Block Start
3034
+ * @see https://tailwindcss.com/docs/scroll-padding
3035
+ */
3036
+ 'scroll-pbs': [{
3037
+ 'scroll-pbs': scaleUnambiguousSpacing()
3038
+ }],
3039
+ /**
3040
+ * Scroll Padding Block End
3041
+ * @see https://tailwindcss.com/docs/scroll-padding
3042
+ */
3043
+ 'scroll-pbe': [{
3044
+ 'scroll-pbe': scaleUnambiguousSpacing()
3045
+ }],
2885
3046
  /**
2886
3047
  * Scroll Padding Top
2887
3048
  * @see https://tailwindcss.com/docs/scroll-padding
@@ -3016,15 +3177,15 @@ const getDefaultConfig = () => {
3016
3177
  conflictingClassGroups: {
3017
3178
  overflow: ['overflow-x', 'overflow-y'],
3018
3179
  overscroll: ['overscroll-x', 'overscroll-y'],
3019
- inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],
3180
+ inset: ['inset-x', 'inset-y', 'inset-bs', 'inset-be', 'start', 'end', 'top', 'right', 'bottom', 'left'],
3020
3181
  'inset-x': ['right', 'left'],
3021
3182
  'inset-y': ['top', 'bottom'],
3022
3183
  flex: ['basis', 'grow', 'shrink'],
3023
3184
  gap: ['gap-x', 'gap-y'],
3024
- p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],
3185
+ p: ['px', 'py', 'ps', 'pe', 'pbs', 'pbe', 'pt', 'pr', 'pb', 'pl'],
3025
3186
  px: ['pr', 'pl'],
3026
3187
  py: ['pt', 'pb'],
3027
- m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],
3188
+ m: ['mx', 'my', 'ms', 'me', 'mbs', 'mbe', 'mt', 'mr', 'mb', 'ml'],
3028
3189
  mx: ['mr', 'ml'],
3029
3190
  my: ['mt', 'mb'],
3030
3191
  size: ['w', 'h'],
@@ -3044,18 +3205,18 @@ const getDefaultConfig = () => {
3044
3205
  'rounded-b': ['rounded-br', 'rounded-bl'],
3045
3206
  'rounded-l': ['rounded-tl', 'rounded-bl'],
3046
3207
  'border-spacing': ['border-spacing-x', 'border-spacing-y'],
3047
- 'border-w': ['border-w-x', 'border-w-y', 'border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],
3208
+ 'border-w': ['border-w-x', 'border-w-y', 'border-w-s', 'border-w-e', 'border-w-bs', 'border-w-be', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],
3048
3209
  'border-w-x': ['border-w-r', 'border-w-l'],
3049
3210
  'border-w-y': ['border-w-t', 'border-w-b'],
3050
- 'border-color': ['border-color-x', 'border-color-y', 'border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],
3211
+ 'border-color': ['border-color-x', 'border-color-y', 'border-color-s', 'border-color-e', 'border-color-bs', 'border-color-be', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],
3051
3212
  'border-color-x': ['border-color-r', 'border-color-l'],
3052
3213
  'border-color-y': ['border-color-t', 'border-color-b'],
3053
3214
  translate: ['translate-x', 'translate-y', 'translate-none'],
3054
3215
  'translate-none': ['translate', 'translate-x', 'translate-y', 'translate-z'],
3055
- 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],
3216
+ 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mbs', 'scroll-mbe', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],
3056
3217
  'scroll-mx': ['scroll-mr', 'scroll-ml'],
3057
3218
  'scroll-my': ['scroll-mt', 'scroll-mb'],
3058
- 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],
3219
+ 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pbs', 'scroll-pbe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],
3059
3220
  'scroll-px': ['scroll-pr', 'scroll-pl'],
3060
3221
  'scroll-py': ['scroll-pt', 'scroll-pb'],
3061
3222
  touch: ['touch-x', 'touch-y', 'touch-pz'],