tailwind-clamp 4.0.0 → 4.0.2
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 +32 -88
- package/dist/index.js +135 -68
- package/dist/index.js.map +1 -1
- package/dist/index.umd.cjs +1 -1
- package/dist/index.umd.cjs.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -9,9 +9,12 @@ The plugin is based on the formula presented in this [article](https://chriskirk
|
|
|
9
9
|
- Clamp values between a min and max viewport width, making it grow / shrink with the viewport.
|
|
10
10
|
- Possibility to use small to large, large to small, negative to positive, positive to negative and negative to negative values. (Negative values only work on properties that allow them, e.g. `margin`)
|
|
11
11
|
- Supports `px`, `rem` and `em` units.
|
|
12
|
-
- Support `text` values with multiple properties (`fontSize`, `lineHeight`, `letterSpacing`).
|
|
13
|
-
- Supports using
|
|
14
|
-
|
|
12
|
+
- Support `text` values with multiple properties (`fontSize`, `lineHeight`, `letterSpacing`). If `lineHeight` is definded as a unitless number or a `calc()` function, the resulting value is calculated and converted to the `fontSize` unit.
|
|
13
|
+
- Supports using Tailwind CSS theme values, arbitrary values or a combination.
|
|
14
|
+
|
|
15
|
+
## Requirements
|
|
16
|
+
|
|
17
|
+
The current version of the plugin is designed to be used with Tailwind version 4. To use it with version 3 use version 3.x.
|
|
15
18
|
|
|
16
19
|
## Installation
|
|
17
20
|
|
|
@@ -21,49 +24,29 @@ Install the plugin from npm:
|
|
|
21
24
|
npm install nicolas-cusan/tailwind-clamp
|
|
22
25
|
```
|
|
23
26
|
|
|
24
|
-
Add the plugin in your
|
|
27
|
+
Add the plugin in your main CSS file:
|
|
25
28
|
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
export default {
|
|
31
|
-
theme: {
|
|
32
|
-
// ...
|
|
33
|
-
},
|
|
34
|
-
plugins: [
|
|
35
|
-
tailwindClamp,
|
|
36
|
-
// ...
|
|
37
|
-
],
|
|
38
|
-
};
|
|
29
|
+
```css
|
|
30
|
+
@import 'tailwindcss';
|
|
31
|
+
@plugin "tailwind-clamp";
|
|
39
32
|
```
|
|
40
33
|
|
|
41
34
|
### Configuration
|
|
42
35
|
|
|
43
36
|
The plugin allows two configuration options:
|
|
44
37
|
|
|
45
|
-
| Name | Type
|
|
46
|
-
| ---------------------- |
|
|
47
|
-
| **`minViewportWidth`** | `{
|
|
48
|
-
| **`maxViewportWidth`** | `{
|
|
49
|
-
|
|
50
|
-
Value should be a css
|
|
51
|
-
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
theme: {
|
|
58
|
-
// ...
|
|
59
|
-
},
|
|
60
|
-
plugins: [
|
|
61
|
-
tailwindClamp({
|
|
62
|
-
minViewportWidth: 375,
|
|
63
|
-
maxViewportWidth: 1440,
|
|
64
|
-
}),
|
|
65
|
-
// ...
|
|
66
|
-
],
|
|
38
|
+
| Name | Type | Description | Default value |
|
|
39
|
+
| ---------------------- | ---------- | ------------------------------------- | ------------- |
|
|
40
|
+
| **`minViewportWidth`** | `{string}` | Viewport size where the clamp starts. | `375` |
|
|
41
|
+
| **`maxViewportWidth`** | `{string}` | Viewport size where the clamp end. | `1440` |
|
|
42
|
+
|
|
43
|
+
Value should be a css length (`px`, `rem`, `em`). The unit for both options need to match.
|
|
44
|
+
|
|
45
|
+
```css
|
|
46
|
+
@import 'tailwindcss';
|
|
47
|
+
@plugin "tailwind-clamp" {
|
|
48
|
+
minViewportWidth: 23rem,
|
|
49
|
+
maxViewportWidth: 90rem
|
|
67
50
|
};
|
|
68
51
|
```
|
|
69
52
|
|
|
@@ -78,10 +61,10 @@ clamp-[<property>,<start>,<end>,[minViewportWidth,maxViewportWidth]]
|
|
|
78
61
|
### Arguments
|
|
79
62
|
|
|
80
63
|
- `property`: Property that the value should be applied to. See a list of all supported properties below.
|
|
81
|
-
- `start`: Value at `minViewportWidth` viewport size. It can be a key from your Tailwind CSS config file
|
|
82
|
-
- `end`: Value at `maxViewportWidth` viewport size. It can be a key from your Tailwind CSS config file
|
|
83
|
-
- `[minViewportWidth=375]`: Viewport size, where the clamp starts, defaults to `
|
|
84
|
-
- `[maxViewportWidth=1440]`: Viewport size, where the clamp stops, defaults to `1440
|
|
64
|
+
- `start`: Value at `minViewportWidth` viewport size. It can be a key from your Tailwind CSS config file or a a css length (`px`, `rem`, `em`), the unit will need to match `end`.
|
|
65
|
+
- `end`: Value at `maxViewportWidth` viewport size. It can be a key from your Tailwind CSS config file or a css length (`px`, `rem`, `em`), the unit will need to match `start`.
|
|
66
|
+
- `[minViewportWidth=375]`: Viewport size, where the clamp starts, defaults to `23.4375rem` (`375px`). It can be a breakpoint name from your theme or a css length (`px`, `rem`, `em`), the unit will need to match `maxViewportWidth` and be smaller than `maxViewportWidth`.
|
|
67
|
+
- `[maxViewportWidth=1440]`: Viewport size, where the clamp stops, defaults to `90rem` (`1440`). It can be a breakpoint name from your theme or a css length (`px`, `rem`, `em`), the unit will need to match `minViewportWidth` and be be larger than `minViewportWidth`.
|
|
85
68
|
|
|
86
69
|
### Examples
|
|
87
70
|
|
|
@@ -91,52 +74,14 @@ clamp-[<property>,<start>,<end>,[minViewportWidth,maxViewportWidth]]
|
|
|
91
74
|
</div>
|
|
92
75
|
```
|
|
93
76
|
|
|
94
|
-
## Clamped values in config
|
|
95
|
-
|
|
96
|
-
The plugin includes a utility function to create clamped values directly in your config file.
|
|
97
|
-
|
|
98
|
-
```js
|
|
99
|
-
// tailwind.config.js
|
|
100
|
-
import { tailwindClamp, clampValue } from 'tailwind-clamp';
|
|
101
|
-
|
|
102
|
-
export default {
|
|
103
|
-
theme: {
|
|
104
|
-
// ...
|
|
105
|
-
padding: {
|
|
106
|
-
'my-claped-value': clampValue(20, 40),
|
|
107
|
-
'my-other-claped-value': clampValue(30, 60, {
|
|
108
|
-
unit: 'px',
|
|
109
|
-
maxViewportWidth: 1960,
|
|
110
|
-
}),
|
|
111
|
-
},
|
|
112
|
-
},
|
|
113
|
-
plugins: [
|
|
114
|
-
tailwindClamp,
|
|
115
|
-
// ...
|
|
116
|
-
],
|
|
117
|
-
};
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
### Arguments
|
|
121
|
-
|
|
122
|
-
| Name | Type | Description | Default value |
|
|
123
|
-
| -------------------------------- | --------------------- | ------------------------------------------ | ------------- |
|
|
124
|
-
| **`start`** | `{number}` | Value at `minViewportWidth` viewport size. | |
|
|
125
|
-
| **`end`** | `{number}` | Value at `maxViewportWidth` viewport size. | |
|
|
126
|
-
| **`[options.minViewportWidth]`** | `{number}` | Viewport size, where the clamp starts. | `375` |
|
|
127
|
-
| **`[options.maxViewportWidth]`** | `{number}` | Viewport size, where the clamp stops. | `1440` |
|
|
128
|
-
| **`[options.unit]`** | `{'px'\|'rem'\|'em'}` | Unit that should be used in the css value. | `rem` |
|
|
129
|
-
|
|
130
|
-
All values are expected in pixels and will be converted to `[options.unit]`.
|
|
131
|
-
|
|
132
77
|
## Supported properties
|
|
133
78
|
|
|
134
|
-
- `p` including `pt`, `pb`, `pl`, `pr`, `px`, `py`.
|
|
135
|
-
- `m` including `mt`, `mb`, `ml`, `mr`, `mx`, `my`.
|
|
136
|
-
- `inset`
|
|
79
|
+
- `p` including `pt`, `pb`, `pl`, `pr`, `px`, `py`, `ps`, `pe`.
|
|
80
|
+
- `m` including `mt`, `mb`, `ml`, `mr`, `mx`, `my`, `ms`, `me`.
|
|
81
|
+
- `inset` including `inset-x`, `inset-y`.
|
|
137
82
|
- `top`
|
|
138
|
-
- `left`
|
|
139
|
-
- `right`
|
|
83
|
+
- `left` and `start`.
|
|
84
|
+
- `right` and `end`.
|
|
140
85
|
- `bottom`
|
|
141
86
|
- `text` including `font-size`, `line-height` and `letter-spacing` if defined.
|
|
142
87
|
- `gap` including `gap-x`, `gap-y`.
|
|
@@ -147,7 +92,7 @@ All values are expected in pixels and will be converted to `[options.unit]`.
|
|
|
147
92
|
- `min-h`
|
|
148
93
|
- `max-w`
|
|
149
94
|
- `max-h`
|
|
150
|
-
- `rounded` including `rounded-t`, `rounded-r`, `rounded-b`, `rounded-l`, `rounded-tl`, `rounded-tr`, `rounded-bl`, `rounded-br`.
|
|
95
|
+
- `rounded` including `rounded-s`, `rounded-ss`, `rounded-se`, `rounded-e`, `rounded-ee`, `rounded-es`, `rounded-t`, `rounded-r`, `rounded-b`, `rounded-l`, `rounded-tl`, `rounded-tr`, `rounded-bl`, `rounded-br`.
|
|
151
96
|
- `translate-x`
|
|
152
97
|
- `translate-y`
|
|
153
98
|
- `text-stroke`
|
|
@@ -159,5 +104,4 @@ All values are expected in pixels and will be converted to `[options.unit]`.
|
|
|
159
104
|
|
|
160
105
|
## Roadmap
|
|
161
106
|
|
|
162
|
-
- Support directional properties e.g. `ps`
|
|
163
107
|
- Add showcase
|
package/dist/index.js
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
function
|
|
2
|
-
return { handler:
|
|
1
|
+
function z(r, t) {
|
|
2
|
+
return { handler: r, config: t };
|
|
3
3
|
}
|
|
4
|
-
|
|
5
|
-
function s(
|
|
6
|
-
return { handler: e
|
|
4
|
+
z.withOptions = function(r, t = () => ({})) {
|
|
5
|
+
function s(e) {
|
|
6
|
+
return { handler: r(e), config: t(e) };
|
|
7
7
|
}
|
|
8
8
|
return s.__isOptionsFunction = !0, s;
|
|
9
9
|
};
|
|
10
|
-
var
|
|
11
|
-
const
|
|
10
|
+
var T = z;
|
|
11
|
+
const V = [
|
|
12
12
|
"translate(var(--tw-translate-x), var(--tw-translate-y))",
|
|
13
13
|
"rotate(var(--tw-rotate))",
|
|
14
14
|
"skewX(var(--tw-skew-x))",
|
|
15
15
|
"skewY(var(--tw-skew-y))",
|
|
16
16
|
"scaleX(var(--tw-scale-x))",
|
|
17
17
|
"scaleY(var(--tw-scale-y))"
|
|
18
|
-
].join(" "),
|
|
19
|
-
switch (
|
|
18
|
+
].join(" "), L = (r) => {
|
|
19
|
+
switch (r) {
|
|
20
20
|
case "p":
|
|
21
21
|
return {
|
|
22
22
|
key: "padding",
|
|
@@ -37,20 +37,30 @@ const $ = [
|
|
|
37
37
|
key: "padding",
|
|
38
38
|
props: ["paddingLeft"]
|
|
39
39
|
};
|
|
40
|
+
case "ps":
|
|
41
|
+
return {
|
|
42
|
+
key: "padding",
|
|
43
|
+
props: ["paddingInlineStart"]
|
|
44
|
+
};
|
|
40
45
|
case "pr":
|
|
41
46
|
return {
|
|
42
47
|
key: "padding",
|
|
43
48
|
props: ["paddingRight"]
|
|
44
49
|
};
|
|
50
|
+
case "pe":
|
|
51
|
+
return {
|
|
52
|
+
key: "padding",
|
|
53
|
+
props: ["paddingInlineEnd"]
|
|
54
|
+
};
|
|
45
55
|
case "px":
|
|
46
56
|
return {
|
|
47
57
|
key: "padding",
|
|
48
|
-
props: ["
|
|
58
|
+
props: ["paddingInline"]
|
|
49
59
|
};
|
|
50
60
|
case "py":
|
|
51
61
|
return {
|
|
52
62
|
key: "padding",
|
|
53
|
-
props: ["
|
|
63
|
+
props: ["paddingBlock"]
|
|
54
64
|
};
|
|
55
65
|
case "m":
|
|
56
66
|
return {
|
|
@@ -72,25 +82,55 @@ const $ = [
|
|
|
72
82
|
key: "margin",
|
|
73
83
|
props: ["marginLeft"]
|
|
74
84
|
};
|
|
85
|
+
case "ms":
|
|
86
|
+
return {
|
|
87
|
+
key: "margin",
|
|
88
|
+
props: ["marginInlineStart"]
|
|
89
|
+
};
|
|
75
90
|
case "mr":
|
|
76
91
|
return {
|
|
77
92
|
key: "margin",
|
|
78
93
|
props: ["marginRight"]
|
|
79
94
|
};
|
|
95
|
+
case "me":
|
|
96
|
+
return {
|
|
97
|
+
key: "margin",
|
|
98
|
+
props: ["marginInlineEnd"]
|
|
99
|
+
};
|
|
80
100
|
case "mx":
|
|
81
101
|
return {
|
|
82
102
|
key: "margin",
|
|
83
|
-
props: ["
|
|
103
|
+
props: ["marginInline"]
|
|
84
104
|
};
|
|
85
105
|
case "my":
|
|
86
106
|
return {
|
|
87
107
|
key: "margin",
|
|
88
|
-
props: ["
|
|
108
|
+
props: ["marginBlock"]
|
|
89
109
|
};
|
|
90
110
|
case "inset":
|
|
91
111
|
return {
|
|
92
112
|
key: "inset",
|
|
93
|
-
props: ["
|
|
113
|
+
props: ["inset"]
|
|
114
|
+
};
|
|
115
|
+
case "inset-x":
|
|
116
|
+
return {
|
|
117
|
+
key: "inset",
|
|
118
|
+
props: ["insetInline"]
|
|
119
|
+
};
|
|
120
|
+
case "inset-y":
|
|
121
|
+
return {
|
|
122
|
+
key: "inset",
|
|
123
|
+
props: ["insetBlock"]
|
|
124
|
+
};
|
|
125
|
+
case "start":
|
|
126
|
+
return {
|
|
127
|
+
key: "inset",
|
|
128
|
+
props: ["insetInlineStart"]
|
|
129
|
+
};
|
|
130
|
+
case "end":
|
|
131
|
+
return {
|
|
132
|
+
key: "inset",
|
|
133
|
+
props: ["insetInlineEnd"]
|
|
94
134
|
};
|
|
95
135
|
case "top":
|
|
96
136
|
return {
|
|
@@ -218,7 +258,7 @@ const $ = [
|
|
|
218
258
|
props: [
|
|
219
259
|
"--tw-translate-x",
|
|
220
260
|
{ "@defaults transform": {} },
|
|
221
|
-
{ transform:
|
|
261
|
+
{ transform: V }
|
|
222
262
|
]
|
|
223
263
|
};
|
|
224
264
|
case "translate-y":
|
|
@@ -227,7 +267,7 @@ const $ = [
|
|
|
227
267
|
props: [
|
|
228
268
|
"--tw-translate-y",
|
|
229
269
|
{ "@defaults transform": {} },
|
|
230
|
-
{ transform:
|
|
270
|
+
{ transform: V }
|
|
231
271
|
]
|
|
232
272
|
};
|
|
233
273
|
case "stroke":
|
|
@@ -260,20 +300,30 @@ const $ = [
|
|
|
260
300
|
key: "borderWidth",
|
|
261
301
|
props: ["borderLeftWidth"]
|
|
262
302
|
};
|
|
303
|
+
case "border-s":
|
|
304
|
+
return {
|
|
305
|
+
key: "borderWidth",
|
|
306
|
+
props: ["borderInlineStartWidth"]
|
|
307
|
+
};
|
|
263
308
|
case "border-r":
|
|
264
309
|
return {
|
|
265
310
|
key: "borderWidth",
|
|
266
311
|
props: ["borderRightWidth"]
|
|
267
312
|
};
|
|
313
|
+
case "border-e":
|
|
314
|
+
return {
|
|
315
|
+
key: "borderWidth",
|
|
316
|
+
props: ["borderInlineEndWidth"]
|
|
317
|
+
};
|
|
268
318
|
case "border-x":
|
|
269
319
|
return {
|
|
270
320
|
key: "borderWidth",
|
|
271
|
-
props: ["
|
|
321
|
+
props: ["borderInlineWidth"]
|
|
272
322
|
};
|
|
273
323
|
case "border-y":
|
|
274
324
|
return {
|
|
275
325
|
key: "borderWidth",
|
|
276
|
-
props: ["
|
|
326
|
+
props: ["borderBlockWidth"]
|
|
277
327
|
};
|
|
278
328
|
case "scroll-m":
|
|
279
329
|
return {
|
|
@@ -301,72 +351,88 @@ const $ = [
|
|
|
301
351
|
log() {
|
|
302
352
|
console.log("\x1B[90m", ...arguments, "\x1B[0m");
|
|
303
353
|
}
|
|
304
|
-
}, m = (
|
|
305
|
-
const t = `${
|
|
306
|
-
let
|
|
307
|
-
/^\d+$/.test(t) && s !== 0 && (
|
|
308
|
-
const
|
|
309
|
-
return
|
|
310
|
-
},
|
|
354
|
+
}, m = (r) => {
|
|
355
|
+
const t = `${r}`, s = parseFloat(t);
|
|
356
|
+
let e = "unsupported";
|
|
357
|
+
/^\d+$/.test(t) && s !== 0 && (e = "px");
|
|
358
|
+
const i = t.match(/px|rem|em/);
|
|
359
|
+
return i && (e = i[0]), s === 0 && e === "unsupported" && (e = "zero"), { number: s, unit: e };
|
|
360
|
+
}, S = (r) => {
|
|
311
361
|
const t = {};
|
|
312
|
-
return typeof
|
|
313
|
-
},
|
|
314
|
-
`Same value for start an end${
|
|
315
|
-
), null) :
|
|
316
|
-
`Units need to match${
|
|
317
|
-
), null) :
|
|
318
|
-
`Only px, rem and em units are supported${
|
|
319
|
-
), null) : !0,
|
|
320
|
-
const
|
|
321
|
-
let o =
|
|
322
|
-
s.unit !== "px" && n && (d = s.number * 16), s.unit === "px" && !n && (d = s.number / 16),
|
|
323
|
-
const
|
|
324
|
-
return l ? `calc(${
|
|
325
|
-
},
|
|
362
|
+
return typeof r == "string" ? t.fontSize = m(r) : Array.isArray(r) && (t.fontSize = m(r[0]), typeof r[1] == "string" ? t.lineHeight = m(r[1]) : typeof r[1] == "object" && ("lineHeight" in r[1] && (t.lineHeight = m(r[1].lineHeight)), "letterSpacing" in r[1] && (t.letterSpacing = m(r[1].letterSpacing)))), t;
|
|
363
|
+
}, B = (r, t, s, e = null) => r.number === t.number ? (y.error(
|
|
364
|
+
`Same value for start an end${e ? ` (${e})` : ""}: "clamp-[${s}]".`
|
|
365
|
+
), null) : r.unit !== t.unit && r.unit !== "zero" && t.unit !== "zero" ? (y.error(
|
|
366
|
+
`Units need to match${e ? ` (${e})` : ""}: "clamp-[${s}]" ${r.unit} !== ${t.unit}.`
|
|
367
|
+
), null) : r.unit === "unsupported" || t.unit === "unsupported" ? (y.error(
|
|
368
|
+
`Only px, rem and em units are supported${e ? ` (${e})` : ""}: "clamp-[${s}]".`
|
|
369
|
+
), null) : !0, R = (r, t, s = { number: 375, unit: "px" }, e = { number: 1440, unit: "px" }) => {
|
|
370
|
+
const i = r.unit === "zero" ? t.unit : r.unit, n = i === "px";
|
|
371
|
+
let o = r.number, a = t.number, l = !1, d = s.number, b = e.number;
|
|
372
|
+
s.unit !== "px" && n && (d = s.number * 16), s.unit === "px" && !n && (d = s.number / 16), e.unit !== "px" && n && (b = e.number * 16), e.unit === "px" && !n && (b = e.number / 16), a < o && o < 0 && a < 0 ? (o = Math.abs(o), a = Math.abs(a), l = !0) : a < o && o > 0 && a > 0 ? (o = o * -1, a = a * -1, l = !0) : a < o && (o = Math.abs(o) * -1, a = Math.abs(a), l = !0);
|
|
373
|
+
const g = (a - o) / (b - d), f = `${(o - d * g).toFixed(6)}${i} + ${(100 * g).toFixed(6)}vw`, h = `clamp(${o}${i}, ${f}, ${a}${i})`;
|
|
374
|
+
return l ? `calc(${h} * -1)` : h;
|
|
375
|
+
}, O = {
|
|
376
|
+
unit: "rem",
|
|
377
|
+
minViewportWidth: 375,
|
|
378
|
+
maxViewportWidth: 1440
|
|
379
|
+
}, M = (r, t, s = {
|
|
380
|
+
unit: "rem",
|
|
381
|
+
minViewportWidth: 375,
|
|
382
|
+
maxViewportWidth: 1440
|
|
383
|
+
}) => {
|
|
384
|
+
const e = { ...O, ...s }, i = (n) => e.unit === "rem" ? n / 16 : n;
|
|
385
|
+
return R(
|
|
386
|
+
{ number: i(r), unit: e.unit },
|
|
387
|
+
{ number: i(t), unit: e.unit },
|
|
388
|
+
{ number: i(e.minViewportWidth), unit: e.unit },
|
|
389
|
+
{ number: i(e.maxViewportWidth), unit: e.unit }
|
|
390
|
+
);
|
|
391
|
+
}, w = {
|
|
326
392
|
minViewportWidth: 375,
|
|
327
393
|
maxViewportWidth: 1440
|
|
328
|
-
}, F =
|
|
329
|
-
return function({ matchUtilities: t, theme: s, config:
|
|
394
|
+
}, F = M, j = T.withOptions(function(r = w) {
|
|
395
|
+
return function({ matchUtilities: t, theme: s, config: e }) {
|
|
330
396
|
t(
|
|
331
397
|
{
|
|
332
|
-
clamp: (
|
|
333
|
-
const n =
|
|
334
|
-
|
|
335
|
-
),
|
|
336
|
-
|
|
398
|
+
clamp: (i) => {
|
|
399
|
+
const n = i.split(","), o = m(
|
|
400
|
+
e().theme.screens[n[3]] || n[3] || r.minViewportWidth || w.minViewportWidth
|
|
401
|
+
), a = m(
|
|
402
|
+
e().theme.screens[n[4]] || n[4] || r.maxViewportWidth || w.maxViewportWidth
|
|
337
403
|
);
|
|
338
404
|
if (n.length < 3)
|
|
339
405
|
return y.error(
|
|
340
|
-
`The clamp utility requires at least 3 arguments: "clamp-[${
|
|
406
|
+
`The clamp utility requires at least 3 arguments: "clamp-[${i}]".`
|
|
341
407
|
), {};
|
|
342
|
-
const l =
|
|
408
|
+
const l = L(n[0]);
|
|
343
409
|
if (!l)
|
|
344
410
|
return y.error(
|
|
345
|
-
`Property "${n[0]}" is not supported: "clamp-[${
|
|
411
|
+
`Property "${n[0]}" is not supported: "clamp-[${i}]".`
|
|
346
412
|
), {};
|
|
347
|
-
const { key: d, props:
|
|
413
|
+
const { key: d, props: b } = l;
|
|
348
414
|
if (d === "fontSize") {
|
|
349
|
-
const u =
|
|
350
|
-
|
|
351
|
-
), c =
|
|
352
|
-
|
|
353
|
-
),
|
|
354
|
-
return Object.keys(u).forEach((
|
|
355
|
-
if (
|
|
356
|
-
if ((
|
|
357
|
-
|
|
358
|
-
else if (
|
|
359
|
-
const
|
|
360
|
-
|
|
415
|
+
const u = S(
|
|
416
|
+
e().theme[d][n[1]] || n[1]
|
|
417
|
+
), c = S(
|
|
418
|
+
e().theme[d][n[2]] || n[2]
|
|
419
|
+
), W = {};
|
|
420
|
+
return Object.keys(u).forEach((p) => {
|
|
421
|
+
if (p in c) {
|
|
422
|
+
if ((p === "letterSpacing" || p === "lineHeight") && u[p].number === c[p].number && u[p].unit === c[p].unit)
|
|
423
|
+
W[p] = `${u[p].number}${u[p].unit}`;
|
|
424
|
+
else if (B(u[p], c[p], i, p)) {
|
|
425
|
+
const H = R(u[p], c[p], o, a);
|
|
426
|
+
W[p] = H;
|
|
361
427
|
}
|
|
362
428
|
}
|
|
363
|
-
}), Object.keys(
|
|
429
|
+
}), Object.keys(W).length > 0 ? W : null;
|
|
364
430
|
}
|
|
365
|
-
const
|
|
366
|
-
if (
|
|
431
|
+
const g = n[1].startsWith("-"), f = n[2].startsWith("-"), h = g ? n[1].slice(1) : n[1], $ = f ? n[2].slice(1) : n[2], k = m(e().theme[d][h] || h), x = m(e().theme[d][$] || $);
|
|
432
|
+
if (g && (k.number = k.number * -1), f && (x.number = x.number * -1), !B(k, x, i))
|
|
367
433
|
return {};
|
|
368
|
-
const
|
|
369
|
-
return
|
|
434
|
+
const I = R(k, x, o, a);
|
|
435
|
+
return b.reduce((u, c) => (typeof c == "string" ? u[c] = I : u = { ...u, ...c }, u), {});
|
|
370
436
|
}
|
|
371
437
|
},
|
|
372
438
|
{ values: s("clamp") }
|
|
@@ -374,6 +440,7 @@ const $ = [
|
|
|
374
440
|
};
|
|
375
441
|
});
|
|
376
442
|
export {
|
|
377
|
-
F as
|
|
443
|
+
F as clampValue,
|
|
444
|
+
j as default
|
|
378
445
|
};
|
|
379
446
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../node_modules/.pnpm/tailwindcss@4.0.15/node_modules/tailwindcss/dist/plugin.mjs","../lib/resolve-property.js","../lib/log.js","../lib/parse-value.js","../lib/clamp.js","../lib/index.js"],"sourcesContent":["function g(i,n){return{handler:i,config:n}}g.withOptions=function(i,n=()=>({})){function t(o){return{handler:i(o),config:n(o)}}return t.__isOptionsFunction=!0,t};var u=g;export{u as default};\n","const cssTransformValue = [\n 'translate(var(--tw-translate-x), var(--tw-translate-y))',\n 'rotate(var(--tw-rotate))',\n 'skewX(var(--tw-skew-x))',\n 'skewY(var(--tw-skew-y))',\n 'scaleX(var(--tw-scale-x))',\n 'scaleY(var(--tw-scale-y))',\n].join(' ');\n\nexport const resolveProperty = (name) => {\n switch (name) {\n case 'p':\n return {\n key: 'padding',\n props: ['padding'],\n };\n case 'pt':\n return {\n key: 'padding',\n props: ['paddingTop'],\n };\n case 'pb':\n return {\n key: 'padding',\n props: ['paddingBottom'],\n };\n case 'pl':\n return {\n key: 'padding',\n props: ['paddingLeft'],\n };\n case 'pr':\n return {\n key: 'padding',\n props: ['paddingRight'],\n };\n case 'px':\n return {\n key: 'padding',\n props: ['paddingLeft', 'paddingRight'],\n };\n case 'py':\n return {\n key: 'padding',\n props: ['paddingTop', 'paddingBottom'],\n };\n case 'm':\n return {\n key: 'margin',\n props: ['margin'],\n };\n case 'mt':\n return {\n key: 'margin',\n props: ['marginTop'],\n };\n case 'mb':\n return {\n key: 'margin',\n props: ['marginBottom'],\n };\n case 'ml':\n return {\n key: 'margin',\n props: ['marginLeft'],\n };\n case 'mr':\n return {\n key: 'margin',\n props: ['marginRight'],\n };\n case 'mx':\n return {\n key: 'margin',\n props: ['marginLeft', 'marginRight'],\n };\n case 'my':\n return {\n key: 'margin',\n props: ['marginTop', 'marginBottom'],\n };\n case 'inset':\n return {\n key: 'inset',\n props: ['top', 'left', 'right', 'bottom'],\n };\n case 'top':\n return {\n key: 'inset',\n props: ['top'],\n };\n\n case 'left':\n return {\n key: 'inset',\n props: ['left'],\n };\n case 'right':\n return {\n key: 'inset',\n props: ['right'],\n };\n case 'bottom':\n return {\n key: 'inset',\n props: ['bottom'],\n };\n case 'text':\n return {\n key: 'fontSize',\n props: ['fontSize'],\n };\n case 'gap':\n return {\n key: 'gap',\n props: ['gap'],\n };\n case 'gap-x':\n return {\n key: 'gap',\n props: ['columnGap'],\n };\n case 'gap-y':\n return {\n key: 'gap',\n props: ['rowGap'],\n };\n case 'w':\n return {\n key: 'width',\n props: ['width'],\n };\n case 'h':\n return {\n key: 'height',\n props: ['height'],\n };\n case 'size':\n return {\n key: 'size',\n props: ['width', 'height'],\n };\n\n case 'min-w':\n return {\n key: 'minWidth',\n props: ['minWidth'],\n };\n\n case 'min-h':\n return {\n key: 'minHeight',\n props: ['minHeight'],\n };\n\n case 'max-w':\n return {\n key: 'maxWidth',\n props: ['maxWidth'],\n };\n\n case 'max-h':\n return {\n key: 'maxHeight',\n props: ['maxHeight'],\n };\n\n case 'rounded':\n return {\n key: 'borderRadius',\n props: ['borderRadius'],\n };\n\n case 'rounded-t':\n return {\n key: 'borderRadius',\n props: ['borderTopLeftRadius', 'borderTopRightRadius'],\n };\n\n case 'rounded-r':\n return {\n key: 'borderRadius',\n props: ['borderTopRightRadius', 'borderBottomRightRadius'],\n };\n\n case 'rounded-b':\n return {\n key: 'borderRadius',\n props: ['borderBottomLeftRadius', 'borderBottomRightRadius'],\n };\n\n case 'rounded-l':\n return {\n key: 'borderRadius',\n props: ['borderTopLeftRadius', 'borderBottomLeftRadius'],\n };\n\n case 'rounded-tl':\n return {\n key: 'borderRadius',\n props: ['borderTopLeftRadius'],\n };\n\n case 'rounded-tr':\n return {\n key: 'borderRadius',\n props: ['borderTopRightRadius'],\n };\n\n case 'rounded-bl':\n return {\n key: 'borderRadius',\n props: ['borderBottomLeftRadius'],\n };\n\n case 'rounded-br':\n return {\n key: 'borderRadius',\n props: ['borderBottomRightRadius'],\n };\n\n case 'translate-x':\n return {\n key: 'translate',\n props: [\n '--tw-translate-x',\n { '@defaults transform': {} },\n { transform: cssTransformValue },\n ],\n };\n\n case 'translate-y':\n return {\n key: 'translate',\n props: [\n '--tw-translate-y',\n { '@defaults transform': {} },\n { transform: cssTransformValue },\n ],\n };\n case 'stroke':\n return {\n key: 'strokeWidth',\n props: ['strokeWidth'],\n };\n\n case 'leading':\n return {\n key: 'lineHeight',\n props: ['lineHeight'],\n };\n\n case 'border':\n return {\n key: 'borderWidth',\n props: ['borderWidth'],\n };\n case 'border-t':\n return {\n key: 'borderWidth',\n props: ['borderTopWidth'],\n };\n case 'border-b':\n return {\n key: 'borderWidth',\n props: ['borderBottomWidth'],\n };\n\n case 'border-l':\n return {\n key: 'borderWidth',\n props: ['borderLeftWidth'],\n };\n\n case 'border-r':\n return {\n key: 'borderWidth',\n props: ['borderRightWidth'],\n };\n\n case 'border-x':\n return {\n key: 'borderWidth',\n props: ['borderLeftWidth', 'borderRightWidth'],\n };\n\n case 'border-y':\n return {\n key: 'borderWidth',\n props: ['borderTopWidth', 'borderBottomWidth'],\n };\n\n case 'scroll-m':\n return {\n key: 'scrollMargin',\n props: ['scrollMargin'],\n };\n\n case 'tracking':\n return {\n key: 'letterSpacing',\n props: ['letterSpacing'],\n };\n\n default:\n return null;\n }\n};\n","export const log = {\n error() {\n console.log('\\x1b[31m', ...arguments, '\\x1b[0m');\n },\n warn() {\n console.log('\\x1b[33m', ...arguments, '\\x1b[0m');\n },\n info() {\n console.log('\\x1b[34m', ...arguments, '\\x1b[0m');\n },\n log() {\n console.log('\\x1b[90m', ...arguments, '\\x1b[0m');\n },\n};\n","import { log } from './log.js';\n\nexport const parseValue = (v) => {\n const value = `${v}`;\n const number = parseFloat(value);\n let unit = 'unsupported';\n\n if (/^\\d+$/.test(value) && number !== 0) {\n unit = 'px';\n }\n\n const match = value.match(/px|rem|em/);\n if (match) {\n unit = match[0];\n }\n\n if (number === 0 && unit === 'unsupported') {\n unit = 'zero';\n }\n\n return { number, unit };\n};\n\nexport const parseFontSizeValue = (value) => {\n const values = {};\n if (typeof value === 'string') {\n values.fontSize = parseValue(value);\n } else if (Array.isArray(value)) {\n values.fontSize = parseValue(value[0]);\n\n if (typeof value[1] === 'string') {\n values.lineHeight = parseValue(value[1]);\n } else if (typeof value[1] === 'object') {\n if ('lineHeight' in value[1]) {\n values.lineHeight = parseValue(value[1].lineHeight);\n }\n if ('letterSpacing' in value[1]) {\n values.letterSpacing = parseValue(value[1].letterSpacing);\n }\n }\n }\n return values;\n};\n\nexport const checkValues = (start, end, value, prop = null) => {\n if (start.number === end.number) {\n log.error(\n `Same value for start an end${\n prop ? ` (${prop})` : ''\n }: \"clamp-[${value}]\".`\n );\n return null;\n }\n\n if (start.unit !== end.unit && start.unit !== 'zero' && end.unit !== 'zero') {\n log.error(\n `Units need to match${prop ? ` (${prop})` : ''}: \"clamp-[${value}]\" ${\n start.unit\n } !== ${end.unit}.`\n );\n return null;\n }\n\n if (start.unit === 'unsupported' || end.unit === 'unsupported') {\n log.error(\n `Only px, rem and em units are supported${\n prop ? ` (${prop})` : ''\n }: \"clamp-[${value}]\".`\n );\n return null;\n }\n\n return true;\n};\n","// https://chriskirknielsen.com/blog/modern-fluid-typography-with-clamp/\n\nexport const clamp = (\n _start,\n _end,\n _minvw = { number: 375, unit: 'px' },\n _maxvw = { number: 1440, unit: 'px' }\n) => {\n const unit = _start.unit === 'zero' ? _end.unit : _start.unit;\n const isPx = unit === 'px';\n\n let start = _start.number;\n let end = _end.number;\n let negative = false;\n\n let minvw = _minvw.number;\n let maxvw = _maxvw.number;\n\n if (_minvw.unit !== 'px' && isPx) {\n minvw = _minvw.number * 16;\n }\n\n if (_minvw.unit === 'px' && !isPx) {\n minvw = _minvw.number / 16;\n }\n\n if (_maxvw.unit !== 'px' && isPx) {\n maxvw = _maxvw.number * 16;\n }\n\n if (_maxvw.unit === 'px' && !isPx) {\n maxvw = _maxvw.number / 16;\n }\n\n if (end < start && start < 0 && end < 0) {\n start = Math.abs(start);\n end = Math.abs(end);\n negative = true;\n } else if (end < start && start > 0 && end > 0) {\n start = start * -1;\n end = end * -1;\n negative = true;\n } else if (end < start) {\n start = Math.abs(start) * -1;\n end = Math.abs(end);\n negative = true;\n }\n\n const slope = (end - start) / (maxvw - minvw);\n const calc = `${(start - minvw * slope).toFixed(6)}${unit} + ${(\n 100 * slope\n ).toFixed(6)}vw`;\n\n const value = `clamp(${start}${unit}, ${calc}, ${end}${unit})`;\n\n return negative ? `calc(${value} * -1)` : value;\n};\n\nconst defaultOptions = {\n unit: 'rem',\n minViewportWidth: 375,\n maxViewportWidth: 1440,\n};\n\nexport const clampValue = (\n start,\n end,\n options = {\n unit: 'rem',\n minViewportWidth: 375,\n maxViewportWidth: 1440,\n }\n) => {\n const o = { ...defaultOptions, ...options };\n\n const convert = (val) => (o.unit === 'rem' ? val / 16 : val);\n\n return clamp(\n { number: convert(start), unit: o.unit },\n { number: convert(end), unit: o.unit },\n { number: convert(o.minViewportWidth), unit: o.unit },\n { number: convert(o.maxViewportWidth), unit: o.unit }\n );\n};\n","import plugin from 'tailwindcss/plugin';\nimport { resolveProperty } from './resolve-property.js';\nimport { log } from './log.js';\nimport { parseValue, parseFontSizeValue, checkValues } from './parse-value.js';\nimport { clamp, clampValue as cv } from './clamp.js';\n\nconst defaultOptions = {\n minViewportWidth: 375,\n maxViewportWidth: 1440,\n};\n\n// export const clampValue = cv;\n\nexport default plugin.withOptions(function (options = defaultOptions) {\n return function ({ matchUtilities, theme, config }) {\n matchUtilities(\n {\n clamp: (value) => {\n const args = value.split(',');\n\n const minvw = parseValue(\n config().theme.screens[args[3]] ||\n args[3] ||\n options.minViewportWidth ||\n defaultOptions.minViewportWidth\n );\n\n const maxvw = parseValue(\n config().theme.screens[args[4]] ||\n args[4] ||\n options.maxViewportWidth ||\n defaultOptions.maxViewportWidth\n );\n\n if (args.length < 3) {\n log.error(\n `The clamp utility requires at least 3 arguments: \"clamp-[${value}]\".`\n );\n return {};\n }\n\n const resolvedProp = resolveProperty(args[0]);\n\n if (!resolvedProp) {\n log.error(\n `Property \"${args[0]}\" is not supported: \"clamp-[${value}]\".`\n );\n return {};\n }\n\n const { key, props } = resolvedProp;\n\n // handle fontSize separately\n if (key === 'fontSize') {\n const start = parseFontSizeValue(\n config().theme[key][args[1]] || args[1]\n );\n const end = parseFontSizeValue(\n config().theme[key][args[2]] || args[2]\n );\n\n const css = {};\n\n Object.keys(start).forEach((k) => {\n if (k in end) {\n if (\n (k === 'letterSpacing' || k === 'lineHeight') &&\n start[k].number === end[k].number &&\n start[k].unit === end[k].unit\n ) {\n css[k] = `${start[k].number}${start[k].unit}`;\n } else if (checkValues(start[k], end[k], value, k)) {\n const val = clamp(start[k], end[k], minvw, maxvw);\n css[k] = val;\n }\n }\n });\n\n return Object.keys(css).length > 0 ? css : null;\n }\n\n // handle other properties\n const startNegative = args[1].startsWith('-');\n const endNegative = args[2].startsWith('-');\n\n const startVal = startNegative ? args[1].slice(1) : args[1];\n const endVal = endNegative ? args[2].slice(1) : args[2];\n\n const start = parseValue(config().theme[key][startVal] || startVal);\n const end = parseValue(config().theme[key][endVal] || endVal);\n\n if (startNegative) start.number = start.number * -1;\n if (endNegative) end.number = end.number * -1;\n\n if (!checkValues(start, end, value)) {\n return {};\n }\n\n const val = clamp(start, end, minvw, maxvw);\n\n const css = props.reduce((acc, prop) => {\n if (typeof prop === 'string') {\n acc[prop] = val;\n } else {\n acc = { ...acc, ...prop };\n }\n return acc;\n }, {});\n\n return css;\n },\n },\n { values: theme('clamp') }\n );\n };\n});\n"],"names":["g","i","n","t","o","u","cssTransformValue","resolveProperty","name","log","parseValue","v","value","number","unit","match","parseFontSizeValue","values","checkValues","start","end","prop","clamp","_start","_end","_minvw","_maxvw","isPx","negative","minvw","maxvw","slope","calc","defaultOptions","plugin","options","matchUtilities","theme","config","args","resolvedProp","key","props","css","k","val","startNegative","endNegative","startVal","endVal","acc"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../node_modules/.pnpm/tailwindcss@4.0.15/node_modules/tailwindcss/dist/plugin.mjs","../lib/resolve-property.js","../lib/log.js","../lib/parse-value.js","../lib/clamp.js","../lib/index.js"],"sourcesContent":["function g(i,n){return{handler:i,config:n}}g.withOptions=function(i,n=()=>({})){function t(o){return{handler:i(o),config:n(o)}}return t.__isOptionsFunction=!0,t};var u=g;export{u as default};\n","const cssTransformValue = [\n 'translate(var(--tw-translate-x), var(--tw-translate-y))',\n 'rotate(var(--tw-rotate))',\n 'skewX(var(--tw-skew-x))',\n 'skewY(var(--tw-skew-y))',\n 'scaleX(var(--tw-scale-x))',\n 'scaleY(var(--tw-scale-y))',\n].join(' ');\n\nexport const resolveProperty = (name) => {\n switch (name) {\n case 'p':\n return {\n key: 'padding',\n props: ['padding'],\n };\n case 'pt':\n return {\n key: 'padding',\n props: ['paddingTop'],\n };\n case 'pb':\n return {\n key: 'padding',\n props: ['paddingBottom'],\n };\n case 'pl':\n return {\n key: 'padding',\n props: ['paddingLeft'],\n };\n case 'ps':\n return {\n key: 'padding',\n props: ['paddingInlineStart'],\n };\n case 'pr':\n return {\n key: 'padding',\n props: ['paddingRight'],\n };\n case 'pe':\n return {\n key: 'padding',\n props: ['paddingInlineEnd'],\n };\n case 'px':\n return {\n key: 'padding',\n props: ['paddingInline'],\n };\n case 'py':\n return {\n key: 'padding',\n props: ['paddingBlock'],\n };\n case 'm':\n return {\n key: 'margin',\n props: ['margin'],\n };\n case 'mt':\n return {\n key: 'margin',\n props: ['marginTop'],\n };\n case 'mb':\n return {\n key: 'margin',\n props: ['marginBottom'],\n };\n case 'ml':\n return {\n key: 'margin',\n props: ['marginLeft'],\n };\n case 'ms':\n return {\n key: 'margin',\n props: ['marginInlineStart'],\n };\n case 'mr':\n return {\n key: 'margin',\n props: ['marginRight'],\n };\n case 'me':\n return {\n key: 'margin',\n props: ['marginInlineEnd'],\n };\n\n case 'mx':\n return {\n key: 'margin',\n props: ['marginInline'],\n };\n case 'my':\n return {\n key: 'margin',\n props: ['marginBlock'],\n };\n case 'inset':\n return {\n key: 'inset',\n props: ['inset'],\n };\n case 'inset-x':\n return {\n key: 'inset',\n props: ['insetInline'],\n };\n case 'inset-y':\n return {\n key: 'inset',\n props: ['insetBlock'],\n };\n case 'start':\n return {\n key: 'inset',\n props: ['insetInlineStart'],\n };\n case 'end':\n return {\n key: 'inset',\n props: ['insetInlineEnd'],\n };\n case 'top':\n return {\n key: 'inset',\n props: ['top'],\n };\n case 'left':\n return {\n key: 'inset',\n props: ['left'],\n };\n case 'right':\n return {\n key: 'inset',\n props: ['right'],\n };\n case 'bottom':\n return {\n key: 'inset',\n props: ['bottom'],\n };\n case 'text':\n return {\n key: 'fontSize',\n props: ['fontSize'],\n };\n case 'gap':\n return {\n key: 'gap',\n props: ['gap'],\n };\n case 'gap-x':\n return {\n key: 'gap',\n props: ['columnGap'],\n };\n case 'gap-y':\n return {\n key: 'gap',\n props: ['rowGap'],\n };\n case 'w':\n return {\n key: 'width',\n props: ['width'],\n };\n case 'h':\n return {\n key: 'height',\n props: ['height'],\n };\n case 'size':\n return {\n key: 'size',\n props: ['width', 'height'],\n };\n\n case 'min-w':\n return {\n key: 'minWidth',\n props: ['minWidth'],\n };\n\n case 'min-h':\n return {\n key: 'minHeight',\n props: ['minHeight'],\n };\n\n case 'max-w':\n return {\n key: 'maxWidth',\n props: ['maxWidth'],\n };\n\n case 'max-h':\n return {\n key: 'maxHeight',\n props: ['maxHeight'],\n };\n\n case 'rounded':\n return {\n key: 'borderRadius',\n props: ['borderRadius'],\n };\n\n case 'rounded-t':\n return {\n key: 'borderRadius',\n props: ['borderTopLeftRadius', 'borderTopRightRadius'],\n };\n\n case 'rounded-r':\n return {\n key: 'borderRadius',\n props: ['borderTopRightRadius', 'borderBottomRightRadius'],\n };\n\n case 'rounded-b':\n return {\n key: 'borderRadius',\n props: ['borderBottomLeftRadius', 'borderBottomRightRadius'],\n };\n\n case 'rounded-l':\n return {\n key: 'borderRadius',\n props: ['borderTopLeftRadius', 'borderBottomLeftRadius'],\n };\n\n case 'rounded-tl':\n return {\n key: 'borderRadius',\n props: ['borderTopLeftRadius'],\n };\n\n case 'rounded-tr':\n return {\n key: 'borderRadius',\n props: ['borderTopRightRadius'],\n };\n\n case 'rounded-bl':\n return {\n key: 'borderRadius',\n props: ['borderBottomLeftRadius'],\n };\n\n case 'rounded-br':\n return {\n key: 'borderRadius',\n props: ['borderBottomRightRadius'],\n };\n\n case 'translate-x':\n return {\n key: 'translate',\n props: [\n '--tw-translate-x',\n { '@defaults transform': {} },\n { transform: cssTransformValue },\n ],\n };\n\n case 'translate-y':\n return {\n key: 'translate',\n props: [\n '--tw-translate-y',\n { '@defaults transform': {} },\n { transform: cssTransformValue },\n ],\n };\n case 'stroke':\n return {\n key: 'strokeWidth',\n props: ['strokeWidth'],\n };\n\n case 'leading':\n return {\n key: 'lineHeight',\n props: ['lineHeight'],\n };\n\n case 'border':\n return {\n key: 'borderWidth',\n props: ['borderWidth'],\n };\n case 'border-t':\n return {\n key: 'borderWidth',\n props: ['borderTopWidth'],\n };\n case 'border-b':\n return {\n key: 'borderWidth',\n props: ['borderBottomWidth'],\n };\n\n case 'border-l':\n return {\n key: 'borderWidth',\n props: ['borderLeftWidth'],\n };\n case 'border-s':\n return {\n key: 'borderWidth',\n props: ['borderInlineStartWidth'],\n };\n\n case 'border-r':\n return {\n key: 'borderWidth',\n props: ['borderRightWidth'],\n };\n case 'border-e':\n return {\n key: 'borderWidth',\n props: ['borderInlineEndWidth'],\n };\n\n case 'border-x':\n return {\n key: 'borderWidth',\n props: ['borderInlineWidth'],\n };\n\n case 'border-y':\n return {\n key: 'borderWidth',\n props: ['borderBlockWidth'],\n };\n\n case 'scroll-m':\n return {\n key: 'scrollMargin',\n props: ['scrollMargin'],\n };\n\n case 'tracking':\n return {\n key: 'letterSpacing',\n props: ['letterSpacing'],\n };\n\n default:\n return null;\n }\n};\n","export const log = {\n error() {\n console.log('\\x1b[31m', ...arguments, '\\x1b[0m');\n },\n warn() {\n console.log('\\x1b[33m', ...arguments, '\\x1b[0m');\n },\n info() {\n console.log('\\x1b[34m', ...arguments, '\\x1b[0m');\n },\n log() {\n console.log('\\x1b[90m', ...arguments, '\\x1b[0m');\n },\n};\n","import { log } from './log.js';\n\nexport const parseValue = (v) => {\n const value = `${v}`;\n const number = parseFloat(value);\n let unit = 'unsupported';\n\n if (/^\\d+$/.test(value) && number !== 0) {\n unit = 'px';\n }\n\n const match = value.match(/px|rem|em/);\n if (match) {\n unit = match[0];\n }\n\n if (number === 0 && unit === 'unsupported') {\n unit = 'zero';\n }\n\n return { number, unit };\n};\n\nexport const parseFontSizeValue = (value) => {\n const values = {};\n if (typeof value === 'string') {\n values.fontSize = parseValue(value);\n } else if (Array.isArray(value)) {\n values.fontSize = parseValue(value[0]);\n\n if (typeof value[1] === 'string') {\n values.lineHeight = parseValue(value[1]);\n } else if (typeof value[1] === 'object') {\n if ('lineHeight' in value[1]) {\n values.lineHeight = parseValue(value[1].lineHeight);\n }\n if ('letterSpacing' in value[1]) {\n values.letterSpacing = parseValue(value[1].letterSpacing);\n }\n }\n }\n return values;\n};\n\nexport const checkValues = (start, end, value, prop = null) => {\n if (start.number === end.number) {\n log.error(\n `Same value for start an end${\n prop ? ` (${prop})` : ''\n }: \"clamp-[${value}]\".`\n );\n return null;\n }\n\n if (start.unit !== end.unit && start.unit !== 'zero' && end.unit !== 'zero') {\n log.error(\n `Units need to match${prop ? ` (${prop})` : ''}: \"clamp-[${value}]\" ${\n start.unit\n } !== ${end.unit}.`\n );\n return null;\n }\n\n if (start.unit === 'unsupported' || end.unit === 'unsupported') {\n log.error(\n `Only px, rem and em units are supported${\n prop ? ` (${prop})` : ''\n }: \"clamp-[${value}]\".`\n );\n return null;\n }\n\n return true;\n};\n","// https://chriskirknielsen.com/blog/modern-fluid-typography-with-clamp/\n\nexport const clamp = (\n _start,\n _end,\n _minvw = { number: 375, unit: 'px' },\n _maxvw = { number: 1440, unit: 'px' }\n) => {\n const unit = _start.unit === 'zero' ? _end.unit : _start.unit;\n const isPx = unit === 'px';\n\n let start = _start.number;\n let end = _end.number;\n let negative = false;\n\n let minvw = _minvw.number;\n let maxvw = _maxvw.number;\n\n if (_minvw.unit !== 'px' && isPx) {\n minvw = _minvw.number * 16;\n }\n\n if (_minvw.unit === 'px' && !isPx) {\n minvw = _minvw.number / 16;\n }\n\n if (_maxvw.unit !== 'px' && isPx) {\n maxvw = _maxvw.number * 16;\n }\n\n if (_maxvw.unit === 'px' && !isPx) {\n maxvw = _maxvw.number / 16;\n }\n\n if (end < start && start < 0 && end < 0) {\n start = Math.abs(start);\n end = Math.abs(end);\n negative = true;\n } else if (end < start && start > 0 && end > 0) {\n start = start * -1;\n end = end * -1;\n negative = true;\n } else if (end < start) {\n start = Math.abs(start) * -1;\n end = Math.abs(end);\n negative = true;\n }\n\n const slope = (end - start) / (maxvw - minvw);\n const calc = `${(start - minvw * slope).toFixed(6)}${unit} + ${(\n 100 * slope\n ).toFixed(6)}vw`;\n\n const value = `clamp(${start}${unit}, ${calc}, ${end}${unit})`;\n\n return negative ? `calc(${value} * -1)` : value;\n};\n\nconst defaultOptions = {\n unit: 'rem',\n minViewportWidth: 375,\n maxViewportWidth: 1440,\n};\n\nexport const clampValue = (\n start,\n end,\n options = {\n unit: 'rem',\n minViewportWidth: 375,\n maxViewportWidth: 1440,\n }\n) => {\n const o = { ...defaultOptions, ...options };\n\n const convert = (val) => (o.unit === 'rem' ? val / 16 : val);\n\n return clamp(\n { number: convert(start), unit: o.unit },\n { number: convert(end), unit: o.unit },\n { number: convert(o.minViewportWidth), unit: o.unit },\n { number: convert(o.maxViewportWidth), unit: o.unit }\n );\n};\n","import plugin from 'tailwindcss/plugin';\nimport { resolveProperty } from './resolve-property.js';\nimport { log } from './log.js';\nimport { parseValue, parseFontSizeValue, checkValues } from './parse-value.js';\nimport { clamp, clampValue as cv } from './clamp.js';\n\nconst defaultOptions = {\n minViewportWidth: 375,\n maxViewportWidth: 1440,\n};\n\nexport const clampValue = cv;\n\nexport default plugin.withOptions(function (options = defaultOptions) {\n return function ({ matchUtilities, theme, config }) {\n matchUtilities(\n {\n clamp: (value) => {\n const args = value.split(',');\n\n const minvw = parseValue(\n config().theme.screens[args[3]] ||\n args[3] ||\n options.minViewportWidth ||\n defaultOptions.minViewportWidth\n );\n\n const maxvw = parseValue(\n config().theme.screens[args[4]] ||\n args[4] ||\n options.maxViewportWidth ||\n defaultOptions.maxViewportWidth\n );\n\n if (args.length < 3) {\n log.error(\n `The clamp utility requires at least 3 arguments: \"clamp-[${value}]\".`\n );\n return {};\n }\n\n const resolvedProp = resolveProperty(args[0]);\n\n if (!resolvedProp) {\n log.error(\n `Property \"${args[0]}\" is not supported: \"clamp-[${value}]\".`\n );\n return {};\n }\n\n const { key, props } = resolvedProp;\n\n // handle fontSize separately\n if (key === 'fontSize') {\n const start = parseFontSizeValue(\n config().theme[key][args[1]] || args[1]\n );\n const end = parseFontSizeValue(\n config().theme[key][args[2]] || args[2]\n );\n\n const css = {};\n\n Object.keys(start).forEach((k) => {\n if (k in end) {\n if (\n (k === 'letterSpacing' || k === 'lineHeight') &&\n start[k].number === end[k].number &&\n start[k].unit === end[k].unit\n ) {\n css[k] = `${start[k].number}${start[k].unit}`;\n } else if (checkValues(start[k], end[k], value, k)) {\n const val = clamp(start[k], end[k], minvw, maxvw);\n css[k] = val;\n }\n }\n });\n\n return Object.keys(css).length > 0 ? css : null;\n }\n\n // handle other properties\n const startNegative = args[1].startsWith('-');\n const endNegative = args[2].startsWith('-');\n\n const startVal = startNegative ? args[1].slice(1) : args[1];\n const endVal = endNegative ? args[2].slice(1) : args[2];\n\n const start = parseValue(config().theme[key][startVal] || startVal);\n const end = parseValue(config().theme[key][endVal] || endVal);\n\n if (startNegative) start.number = start.number * -1;\n if (endNegative) end.number = end.number * -1;\n\n if (!checkValues(start, end, value)) {\n return {};\n }\n\n const val = clamp(start, end, minvw, maxvw);\n\n const css = props.reduce((acc, prop) => {\n if (typeof prop === 'string') {\n acc[prop] = val;\n } else {\n acc = { ...acc, ...prop };\n }\n return acc;\n }, {});\n\n return css;\n },\n },\n { values: theme('clamp') }\n );\n };\n});\n"],"names":["g","i","n","t","o","u","cssTransformValue","resolveProperty","name","log","parseValue","v","value","number","unit","match","parseFontSizeValue","values","checkValues","start","end","prop","clamp","_start","_end","_minvw","_maxvw","isPx","negative","minvw","maxvw","slope","calc","defaultOptions","clampValue","options","convert","val","cv","plugin","matchUtilities","theme","config","args","resolvedProp","key","props","css","k","startNegative","endNegative","startVal","endVal","acc"],"mappings":"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","x_google_ignoreList":[0]}
|
package/dist/index.umd.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(function(g
|
|
1
|
+
(function(m,g){typeof exports=="object"&&typeof module<"u"?g(exports):typeof define=="function"&&define.amd?define(["exports"],g):(m=typeof globalThis<"u"?globalThis:m||self,g(m["tailwind-clamp"]={}))})(this,function(m){"use strict";function g(r,t){return{handler:r,config:t}}g.withOptions=function(r,t=()=>({})){function s(e){return{handler:r(e),config:t(e)}}return s.__isOptionsFunction=!0,s};var I=g;const S=["translate(var(--tw-translate-x), var(--tw-translate-y))","rotate(var(--tw-rotate))","skewX(var(--tw-skew-x))","skewY(var(--tw-skew-y))","scaleX(var(--tw-scale-x))","scaleY(var(--tw-scale-y))"].join(" "),H=r=>{switch(r){case"p":return{key:"padding",props:["padding"]};case"pt":return{key:"padding",props:["paddingTop"]};case"pb":return{key:"padding",props:["paddingBottom"]};case"pl":return{key:"padding",props:["paddingLeft"]};case"ps":return{key:"padding",props:["paddingInlineStart"]};case"pr":return{key:"padding",props:["paddingRight"]};case"pe":return{key:"padding",props:["paddingInlineEnd"]};case"px":return{key:"padding",props:["paddingInline"]};case"py":return{key:"padding",props:["paddingBlock"]};case"m":return{key:"margin",props:["margin"]};case"mt":return{key:"margin",props:["marginTop"]};case"mb":return{key:"margin",props:["marginBottom"]};case"ml":return{key:"margin",props:["marginLeft"]};case"ms":return{key:"margin",props:["marginInlineStart"]};case"mr":return{key:"margin",props:["marginRight"]};case"me":return{key:"margin",props:["marginInlineEnd"]};case"mx":return{key:"margin",props:["marginInline"]};case"my":return{key:"margin",props:["marginBlock"]};case"inset":return{key:"inset",props:["inset"]};case"inset-x":return{key:"inset",props:["insetInline"]};case"inset-y":return{key:"inset",props:["insetBlock"]};case"start":return{key:"inset",props:["insetInlineStart"]};case"end":return{key:"inset",props:["insetInlineEnd"]};case"top":return{key:"inset",props:["top"]};case"left":return{key:"inset",props:["left"]};case"right":return{key:"inset",props:["right"]};case"bottom":return{key:"inset",props:["bottom"]};case"text":return{key:"fontSize",props:["fontSize"]};case"gap":return{key:"gap",props:["gap"]};case"gap-x":return{key:"gap",props:["columnGap"]};case"gap-y":return{key:"gap",props:["rowGap"]};case"w":return{key:"width",props:["width"]};case"h":return{key:"height",props:["height"]};case"size":return{key:"size",props:["width","height"]};case"min-w":return{key:"minWidth",props:["minWidth"]};case"min-h":return{key:"minHeight",props:["minHeight"]};case"max-w":return{key:"maxWidth",props:["maxWidth"]};case"max-h":return{key:"maxHeight",props:["maxHeight"]};case"rounded":return{key:"borderRadius",props:["borderRadius"]};case"rounded-t":return{key:"borderRadius",props:["borderTopLeftRadius","borderTopRightRadius"]};case"rounded-r":return{key:"borderRadius",props:["borderTopRightRadius","borderBottomRightRadius"]};case"rounded-b":return{key:"borderRadius",props:["borderBottomLeftRadius","borderBottomRightRadius"]};case"rounded-l":return{key:"borderRadius",props:["borderTopLeftRadius","borderBottomLeftRadius"]};case"rounded-tl":return{key:"borderRadius",props:["borderTopLeftRadius"]};case"rounded-tr":return{key:"borderRadius",props:["borderTopRightRadius"]};case"rounded-bl":return{key:"borderRadius",props:["borderBottomLeftRadius"]};case"rounded-br":return{key:"borderRadius",props:["borderBottomRightRadius"]};case"translate-x":return{key:"translate",props:["--tw-translate-x",{"@defaults transform":{}},{transform:S}]};case"translate-y":return{key:"translate",props:["--tw-translate-y",{"@defaults transform":{}},{transform:S}]};case"stroke":return{key:"strokeWidth",props:["strokeWidth"]};case"leading":return{key:"lineHeight",props:["lineHeight"]};case"border":return{key:"borderWidth",props:["borderWidth"]};case"border-t":return{key:"borderWidth",props:["borderTopWidth"]};case"border-b":return{key:"borderWidth",props:["borderBottomWidth"]};case"border-l":return{key:"borderWidth",props:["borderLeftWidth"]};case"border-s":return{key:"borderWidth",props:["borderInlineStartWidth"]};case"border-r":return{key:"borderWidth",props:["borderRightWidth"]};case"border-e":return{key:"borderWidth",props:["borderInlineEndWidth"]};case"border-x":return{key:"borderWidth",props:["borderInlineWidth"]};case"border-y":return{key:"borderWidth",props:["borderBlockWidth"]};case"scroll-m":return{key:"scrollMargin",props:["scrollMargin"]};case"tracking":return{key:"letterSpacing",props:["letterSpacing"]};default:return null}},h={error(){console.log("\x1B[31m",...arguments,"\x1B[0m")},warn(){console.log("\x1B[33m",...arguments,"\x1B[0m")},info(){console.log("\x1B[34m",...arguments,"\x1B[0m")},log(){console.log("\x1B[90m",...arguments,"\x1B[0m")}},c=r=>{const t=`${r}`,s=parseFloat(t);let e="unsupported";/^\d+$/.test(t)&&s!==0&&(e="px");const i=t.match(/px|rem|em/);return i&&(e=i[0]),s===0&&e==="unsupported"&&(e="zero"),{number:s,unit:e}},T=r=>{const t={};return typeof r=="string"?t.fontSize=c(r):Array.isArray(r)&&(t.fontSize=c(r[0]),typeof r[1]=="string"?t.lineHeight=c(r[1]):typeof r[1]=="object"&&("lineHeight"in r[1]&&(t.lineHeight=c(r[1].lineHeight)),"letterSpacing"in r[1]&&(t.letterSpacing=c(r[1].letterSpacing)))),t},B=(r,t,s,e=null)=>r.number===t.number?(h.error(`Same value for start an end${e?` (${e})`:""}: "clamp-[${s}]".`),null):r.unit!==t.unit&&r.unit!=="zero"&&t.unit!=="zero"?(h.error(`Units need to match${e?` (${e})`:""}: "clamp-[${s}]" ${r.unit} !== ${t.unit}.`),null):r.unit==="unsupported"||t.unit==="unsupported"?(h.error(`Only px, rem and em units are supported${e?` (${e})`:""}: "clamp-[${s}]".`),null):!0,$=(r,t,s={number:375,unit:"px"},e={number:1440,unit:"px"})=>{const i=r.unit==="zero"?t.unit:r.unit,n=i==="px";let o=r.number,a=t.number,b=!1,d=s.number,y=e.number;s.unit!=="px"&&n&&(d=s.number*16),s.unit==="px"&&!n&&(d=s.number/16),e.unit!=="px"&&n&&(y=e.number*16),e.unit==="px"&&!n&&(y=e.number/16),a<o&&o<0&&a<0?(o=Math.abs(o),a=Math.abs(a),b=!0):a<o&&o>0&&a>0?(o=o*-1,a=a*-1,b=!0):a<o&&(o=Math.abs(o)*-1,a=Math.abs(a),b=!0);const f=(a-o)/(y-d),x=`${(o-d*f).toFixed(6)}${i} + ${(100*f).toFixed(6)}vw`,k=`clamp(${o}${i}, ${x}, ${a}${i})`;return b?`calc(${k} * -1)`:k},L={unit:"rem",minViewportWidth:375,maxViewportWidth:1440},O=(r,t,s={unit:"rem",minViewportWidth:375,maxViewportWidth:1440})=>{const e={...L,...s},i=n=>e.unit==="rem"?n/16:n;return $({number:i(r),unit:e.unit},{number:i(t),unit:e.unit},{number:i(e.minViewportWidth),unit:e.unit},{number:i(e.maxViewportWidth),unit:e.unit})},V={minViewportWidth:375,maxViewportWidth:1440},M=O,j=I.withOptions(function(r=V){return function({matchUtilities:t,theme:s,config:e}){t({clamp:i=>{const n=i.split(","),o=c(e().theme.screens[n[3]]||n[3]||r.minViewportWidth||V.minViewportWidth),a=c(e().theme.screens[n[4]]||n[4]||r.maxViewportWidth||V.maxViewportWidth);if(n.length<3)return h.error(`The clamp utility requires at least 3 arguments: "clamp-[${i}]".`),{};const b=H(n[0]);if(!b)return h.error(`Property "${n[0]}" is not supported: "clamp-[${i}]".`),{};const{key:d,props:y}=b;if(d==="fontSize"){const u=T(e().theme[d][n[1]]||n[1]),l=T(e().theme[d][n[2]]||n[2]),R={};return Object.keys(u).forEach(p=>{if(p in l){if((p==="letterSpacing"||p==="lineHeight")&&u[p].number===l[p].number&&u[p].unit===l[p].unit)R[p]=`${u[p].number}${u[p].unit}`;else if(B(u[p],l[p],i,p)){const F=$(u[p],l[p],o,a);R[p]=F}}}),Object.keys(R).length>0?R:null}const f=n[1].startsWith("-"),x=n[2].startsWith("-"),k=f?n[1].slice(1):n[1],z=x?n[2].slice(1):n[2],W=c(e().theme[d][k]||k),w=c(e().theme[d][z]||z);if(f&&(W.number=W.number*-1),x&&(w.number=w.number*-1),!B(W,w,i))return{};const E=$(W,w,o,a);return y.reduce((u,l)=>(typeof l=="string"?u[l]=E:u={...u,...l},u),{})}},{values:s("clamp")})}});m.clampValue=M,m.default=j,Object.defineProperties(m,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
|
2
2
|
//# sourceMappingURL=index.umd.cjs.map
|
package/dist/index.umd.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.umd.cjs","sources":["../node_modules/.pnpm/tailwindcss@4.0.15/node_modules/tailwindcss/dist/plugin.mjs","../lib/resolve-property.js","../lib/log.js","../lib/parse-value.js","../lib/clamp.js","../lib/index.js"],"sourcesContent":["function g(i,n){return{handler:i,config:n}}g.withOptions=function(i,n=()=>({})){function t(o){return{handler:i(o),config:n(o)}}return t.__isOptionsFunction=!0,t};var u=g;export{u as default};\n","const cssTransformValue = [\n 'translate(var(--tw-translate-x), var(--tw-translate-y))',\n 'rotate(var(--tw-rotate))',\n 'skewX(var(--tw-skew-x))',\n 'skewY(var(--tw-skew-y))',\n 'scaleX(var(--tw-scale-x))',\n 'scaleY(var(--tw-scale-y))',\n].join(' ');\n\nexport const resolveProperty = (name) => {\n switch (name) {\n case 'p':\n return {\n key: 'padding',\n props: ['padding'],\n };\n case 'pt':\n return {\n key: 'padding',\n props: ['paddingTop'],\n };\n case 'pb':\n return {\n key: 'padding',\n props: ['paddingBottom'],\n };\n case 'pl':\n return {\n key: 'padding',\n props: ['paddingLeft'],\n };\n case 'pr':\n return {\n key: 'padding',\n props: ['paddingRight'],\n };\n case 'px':\n return {\n key: 'padding',\n props: ['paddingLeft', 'paddingRight'],\n };\n case 'py':\n return {\n key: 'padding',\n props: ['paddingTop', 'paddingBottom'],\n };\n case 'm':\n return {\n key: 'margin',\n props: ['margin'],\n };\n case 'mt':\n return {\n key: 'margin',\n props: ['marginTop'],\n };\n case 'mb':\n return {\n key: 'margin',\n props: ['marginBottom'],\n };\n case 'ml':\n return {\n key: 'margin',\n props: ['marginLeft'],\n };\n case 'mr':\n return {\n key: 'margin',\n props: ['marginRight'],\n };\n case 'mx':\n return {\n key: 'margin',\n props: ['marginLeft', 'marginRight'],\n };\n case 'my':\n return {\n key: 'margin',\n props: ['marginTop', 'marginBottom'],\n };\n case 'inset':\n return {\n key: 'inset',\n props: ['top', 'left', 'right', 'bottom'],\n };\n case 'top':\n return {\n key: 'inset',\n props: ['top'],\n };\n\n case 'left':\n return {\n key: 'inset',\n props: ['left'],\n };\n case 'right':\n return {\n key: 'inset',\n props: ['right'],\n };\n case 'bottom':\n return {\n key: 'inset',\n props: ['bottom'],\n };\n case 'text':\n return {\n key: 'fontSize',\n props: ['fontSize'],\n };\n case 'gap':\n return {\n key: 'gap',\n props: ['gap'],\n };\n case 'gap-x':\n return {\n key: 'gap',\n props: ['columnGap'],\n };\n case 'gap-y':\n return {\n key: 'gap',\n props: ['rowGap'],\n };\n case 'w':\n return {\n key: 'width',\n props: ['width'],\n };\n case 'h':\n return {\n key: 'height',\n props: ['height'],\n };\n case 'size':\n return {\n key: 'size',\n props: ['width', 'height'],\n };\n\n case 'min-w':\n return {\n key: 'minWidth',\n props: ['minWidth'],\n };\n\n case 'min-h':\n return {\n key: 'minHeight',\n props: ['minHeight'],\n };\n\n case 'max-w':\n return {\n key: 'maxWidth',\n props: ['maxWidth'],\n };\n\n case 'max-h':\n return {\n key: 'maxHeight',\n props: ['maxHeight'],\n };\n\n case 'rounded':\n return {\n key: 'borderRadius',\n props: ['borderRadius'],\n };\n\n case 'rounded-t':\n return {\n key: 'borderRadius',\n props: ['borderTopLeftRadius', 'borderTopRightRadius'],\n };\n\n case 'rounded-r':\n return {\n key: 'borderRadius',\n props: ['borderTopRightRadius', 'borderBottomRightRadius'],\n };\n\n case 'rounded-b':\n return {\n key: 'borderRadius',\n props: ['borderBottomLeftRadius', 'borderBottomRightRadius'],\n };\n\n case 'rounded-l':\n return {\n key: 'borderRadius',\n props: ['borderTopLeftRadius', 'borderBottomLeftRadius'],\n };\n\n case 'rounded-tl':\n return {\n key: 'borderRadius',\n props: ['borderTopLeftRadius'],\n };\n\n case 'rounded-tr':\n return {\n key: 'borderRadius',\n props: ['borderTopRightRadius'],\n };\n\n case 'rounded-bl':\n return {\n key: 'borderRadius',\n props: ['borderBottomLeftRadius'],\n };\n\n case 'rounded-br':\n return {\n key: 'borderRadius',\n props: ['borderBottomRightRadius'],\n };\n\n case 'translate-x':\n return {\n key: 'translate',\n props: [\n '--tw-translate-x',\n { '@defaults transform': {} },\n { transform: cssTransformValue },\n ],\n };\n\n case 'translate-y':\n return {\n key: 'translate',\n props: [\n '--tw-translate-y',\n { '@defaults transform': {} },\n { transform: cssTransformValue },\n ],\n };\n case 'stroke':\n return {\n key: 'strokeWidth',\n props: ['strokeWidth'],\n };\n\n case 'leading':\n return {\n key: 'lineHeight',\n props: ['lineHeight'],\n };\n\n case 'border':\n return {\n key: 'borderWidth',\n props: ['borderWidth'],\n };\n case 'border-t':\n return {\n key: 'borderWidth',\n props: ['borderTopWidth'],\n };\n case 'border-b':\n return {\n key: 'borderWidth',\n props: ['borderBottomWidth'],\n };\n\n case 'border-l':\n return {\n key: 'borderWidth',\n props: ['borderLeftWidth'],\n };\n\n case 'border-r':\n return {\n key: 'borderWidth',\n props: ['borderRightWidth'],\n };\n\n case 'border-x':\n return {\n key: 'borderWidth',\n props: ['borderLeftWidth', 'borderRightWidth'],\n };\n\n case 'border-y':\n return {\n key: 'borderWidth',\n props: ['borderTopWidth', 'borderBottomWidth'],\n };\n\n case 'scroll-m':\n return {\n key: 'scrollMargin',\n props: ['scrollMargin'],\n };\n\n case 'tracking':\n return {\n key: 'letterSpacing',\n props: ['letterSpacing'],\n };\n\n default:\n return null;\n }\n};\n","export const log = {\n error() {\n console.log('\\x1b[31m', ...arguments, '\\x1b[0m');\n },\n warn() {\n console.log('\\x1b[33m', ...arguments, '\\x1b[0m');\n },\n info() {\n console.log('\\x1b[34m', ...arguments, '\\x1b[0m');\n },\n log() {\n console.log('\\x1b[90m', ...arguments, '\\x1b[0m');\n },\n};\n","import { log } from './log.js';\n\nexport const parseValue = (v) => {\n const value = `${v}`;\n const number = parseFloat(value);\n let unit = 'unsupported';\n\n if (/^\\d+$/.test(value) && number !== 0) {\n unit = 'px';\n }\n\n const match = value.match(/px|rem|em/);\n if (match) {\n unit = match[0];\n }\n\n if (number === 0 && unit === 'unsupported') {\n unit = 'zero';\n }\n\n return { number, unit };\n};\n\nexport const parseFontSizeValue = (value) => {\n const values = {};\n if (typeof value === 'string') {\n values.fontSize = parseValue(value);\n } else if (Array.isArray(value)) {\n values.fontSize = parseValue(value[0]);\n\n if (typeof value[1] === 'string') {\n values.lineHeight = parseValue(value[1]);\n } else if (typeof value[1] === 'object') {\n if ('lineHeight' in value[1]) {\n values.lineHeight = parseValue(value[1].lineHeight);\n }\n if ('letterSpacing' in value[1]) {\n values.letterSpacing = parseValue(value[1].letterSpacing);\n }\n }\n }\n return values;\n};\n\nexport const checkValues = (start, end, value, prop = null) => {\n if (start.number === end.number) {\n log.error(\n `Same value for start an end${\n prop ? ` (${prop})` : ''\n }: \"clamp-[${value}]\".`\n );\n return null;\n }\n\n if (start.unit !== end.unit && start.unit !== 'zero' && end.unit !== 'zero') {\n log.error(\n `Units need to match${prop ? ` (${prop})` : ''}: \"clamp-[${value}]\" ${\n start.unit\n } !== ${end.unit}.`\n );\n return null;\n }\n\n if (start.unit === 'unsupported' || end.unit === 'unsupported') {\n log.error(\n `Only px, rem and em units are supported${\n prop ? ` (${prop})` : ''\n }: \"clamp-[${value}]\".`\n );\n return null;\n }\n\n return true;\n};\n","// https://chriskirknielsen.com/blog/modern-fluid-typography-with-clamp/\n\nexport const clamp = (\n _start,\n _end,\n _minvw = { number: 375, unit: 'px' },\n _maxvw = { number: 1440, unit: 'px' }\n) => {\n const unit = _start.unit === 'zero' ? _end.unit : _start.unit;\n const isPx = unit === 'px';\n\n let start = _start.number;\n let end = _end.number;\n let negative = false;\n\n let minvw = _minvw.number;\n let maxvw = _maxvw.number;\n\n if (_minvw.unit !== 'px' && isPx) {\n minvw = _minvw.number * 16;\n }\n\n if (_minvw.unit === 'px' && !isPx) {\n minvw = _minvw.number / 16;\n }\n\n if (_maxvw.unit !== 'px' && isPx) {\n maxvw = _maxvw.number * 16;\n }\n\n if (_maxvw.unit === 'px' && !isPx) {\n maxvw = _maxvw.number / 16;\n }\n\n if (end < start && start < 0 && end < 0) {\n start = Math.abs(start);\n end = Math.abs(end);\n negative = true;\n } else if (end < start && start > 0 && end > 0) {\n start = start * -1;\n end = end * -1;\n negative = true;\n } else if (end < start) {\n start = Math.abs(start) * -1;\n end = Math.abs(end);\n negative = true;\n }\n\n const slope = (end - start) / (maxvw - minvw);\n const calc = `${(start - minvw * slope).toFixed(6)}${unit} + ${(\n 100 * slope\n ).toFixed(6)}vw`;\n\n const value = `clamp(${start}${unit}, ${calc}, ${end}${unit})`;\n\n return negative ? `calc(${value} * -1)` : value;\n};\n\nconst defaultOptions = {\n unit: 'rem',\n minViewportWidth: 375,\n maxViewportWidth: 1440,\n};\n\nexport const clampValue = (\n start,\n end,\n options = {\n unit: 'rem',\n minViewportWidth: 375,\n maxViewportWidth: 1440,\n }\n) => {\n const o = { ...defaultOptions, ...options };\n\n const convert = (val) => (o.unit === 'rem' ? val / 16 : val);\n\n return clamp(\n { number: convert(start), unit: o.unit },\n { number: convert(end), unit: o.unit },\n { number: convert(o.minViewportWidth), unit: o.unit },\n { number: convert(o.maxViewportWidth), unit: o.unit }\n );\n};\n","import plugin from 'tailwindcss/plugin';\nimport { resolveProperty } from './resolve-property.js';\nimport { log } from './log.js';\nimport { parseValue, parseFontSizeValue, checkValues } from './parse-value.js';\nimport { clamp, clampValue as cv } from './clamp.js';\n\nconst defaultOptions = {\n minViewportWidth: 375,\n maxViewportWidth: 1440,\n};\n\n// export const clampValue = cv;\n\nexport default plugin.withOptions(function (options = defaultOptions) {\n return function ({ matchUtilities, theme, config }) {\n matchUtilities(\n {\n clamp: (value) => {\n const args = value.split(',');\n\n const minvw = parseValue(\n config().theme.screens[args[3]] ||\n args[3] ||\n options.minViewportWidth ||\n defaultOptions.minViewportWidth\n );\n\n const maxvw = parseValue(\n config().theme.screens[args[4]] ||\n args[4] ||\n options.maxViewportWidth ||\n defaultOptions.maxViewportWidth\n );\n\n if (args.length < 3) {\n log.error(\n `The clamp utility requires at least 3 arguments: \"clamp-[${value}]\".`\n );\n return {};\n }\n\n const resolvedProp = resolveProperty(args[0]);\n\n if (!resolvedProp) {\n log.error(\n `Property \"${args[0]}\" is not supported: \"clamp-[${value}]\".`\n );\n return {};\n }\n\n const { key, props } = resolvedProp;\n\n // handle fontSize separately\n if (key === 'fontSize') {\n const start = parseFontSizeValue(\n config().theme[key][args[1]] || args[1]\n );\n const end = parseFontSizeValue(\n config().theme[key][args[2]] || args[2]\n );\n\n const css = {};\n\n Object.keys(start).forEach((k) => {\n if (k in end) {\n if (\n (k === 'letterSpacing' || k === 'lineHeight') &&\n start[k].number === end[k].number &&\n start[k].unit === end[k].unit\n ) {\n css[k] = `${start[k].number}${start[k].unit}`;\n } else if (checkValues(start[k], end[k], value, k)) {\n const val = clamp(start[k], end[k], minvw, maxvw);\n css[k] = val;\n }\n }\n });\n\n return Object.keys(css).length > 0 ? css : null;\n }\n\n // handle other properties\n const startNegative = args[1].startsWith('-');\n const endNegative = args[2].startsWith('-');\n\n const startVal = startNegative ? args[1].slice(1) : args[1];\n const endVal = endNegative ? args[2].slice(1) : args[2];\n\n const start = parseValue(config().theme[key][startVal] || startVal);\n const end = parseValue(config().theme[key][endVal] || endVal);\n\n if (startNegative) start.number = start.number * -1;\n if (endNegative) end.number = end.number * -1;\n\n if (!checkValues(start, end, value)) {\n return {};\n }\n\n const val = clamp(start, end, minvw, maxvw);\n\n const css = props.reduce((acc, prop) => {\n if (typeof prop === 'string') {\n acc[prop] = val;\n } else {\n acc = { ...acc, ...prop };\n }\n return acc;\n }, {});\n\n return css;\n },\n },\n { values: theme('clamp') }\n );\n };\n});\n"],"names":["i","n","t","o","u","cssTransformValue","resolveProperty","name","log","parseValue","v","value","number","unit","match","parseFontSizeValue","values","checkValues","start","end","prop","clamp","_start","_end","_minvw","_maxvw","isPx","negative","minvw","maxvw","slope","calc","defaultOptions","plugin","options","matchUtilities","theme","config","args","resolvedProp","key","props","css","k","val","startNegative","endNegative","startVal","endVal","acc"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"index.umd.cjs","sources":["../node_modules/.pnpm/tailwindcss@4.0.15/node_modules/tailwindcss/dist/plugin.mjs","../lib/resolve-property.js","../lib/log.js","../lib/parse-value.js","../lib/clamp.js","../lib/index.js"],"sourcesContent":["function g(i,n){return{handler:i,config:n}}g.withOptions=function(i,n=()=>({})){function t(o){return{handler:i(o),config:n(o)}}return t.__isOptionsFunction=!0,t};var u=g;export{u as default};\n","const cssTransformValue = [\n 'translate(var(--tw-translate-x), var(--tw-translate-y))',\n 'rotate(var(--tw-rotate))',\n 'skewX(var(--tw-skew-x))',\n 'skewY(var(--tw-skew-y))',\n 'scaleX(var(--tw-scale-x))',\n 'scaleY(var(--tw-scale-y))',\n].join(' ');\n\nexport const resolveProperty = (name) => {\n switch (name) {\n case 'p':\n return {\n key: 'padding',\n props: ['padding'],\n };\n case 'pt':\n return {\n key: 'padding',\n props: ['paddingTop'],\n };\n case 'pb':\n return {\n key: 'padding',\n props: ['paddingBottom'],\n };\n case 'pl':\n return {\n key: 'padding',\n props: ['paddingLeft'],\n };\n case 'ps':\n return {\n key: 'padding',\n props: ['paddingInlineStart'],\n };\n case 'pr':\n return {\n key: 'padding',\n props: ['paddingRight'],\n };\n case 'pe':\n return {\n key: 'padding',\n props: ['paddingInlineEnd'],\n };\n case 'px':\n return {\n key: 'padding',\n props: ['paddingInline'],\n };\n case 'py':\n return {\n key: 'padding',\n props: ['paddingBlock'],\n };\n case 'm':\n return {\n key: 'margin',\n props: ['margin'],\n };\n case 'mt':\n return {\n key: 'margin',\n props: ['marginTop'],\n };\n case 'mb':\n return {\n key: 'margin',\n props: ['marginBottom'],\n };\n case 'ml':\n return {\n key: 'margin',\n props: ['marginLeft'],\n };\n case 'ms':\n return {\n key: 'margin',\n props: ['marginInlineStart'],\n };\n case 'mr':\n return {\n key: 'margin',\n props: ['marginRight'],\n };\n case 'me':\n return {\n key: 'margin',\n props: ['marginInlineEnd'],\n };\n\n case 'mx':\n return {\n key: 'margin',\n props: ['marginInline'],\n };\n case 'my':\n return {\n key: 'margin',\n props: ['marginBlock'],\n };\n case 'inset':\n return {\n key: 'inset',\n props: ['inset'],\n };\n case 'inset-x':\n return {\n key: 'inset',\n props: ['insetInline'],\n };\n case 'inset-y':\n return {\n key: 'inset',\n props: ['insetBlock'],\n };\n case 'start':\n return {\n key: 'inset',\n props: ['insetInlineStart'],\n };\n case 'end':\n return {\n key: 'inset',\n props: ['insetInlineEnd'],\n };\n case 'top':\n return {\n key: 'inset',\n props: ['top'],\n };\n case 'left':\n return {\n key: 'inset',\n props: ['left'],\n };\n case 'right':\n return {\n key: 'inset',\n props: ['right'],\n };\n case 'bottom':\n return {\n key: 'inset',\n props: ['bottom'],\n };\n case 'text':\n return {\n key: 'fontSize',\n props: ['fontSize'],\n };\n case 'gap':\n return {\n key: 'gap',\n props: ['gap'],\n };\n case 'gap-x':\n return {\n key: 'gap',\n props: ['columnGap'],\n };\n case 'gap-y':\n return {\n key: 'gap',\n props: ['rowGap'],\n };\n case 'w':\n return {\n key: 'width',\n props: ['width'],\n };\n case 'h':\n return {\n key: 'height',\n props: ['height'],\n };\n case 'size':\n return {\n key: 'size',\n props: ['width', 'height'],\n };\n\n case 'min-w':\n return {\n key: 'minWidth',\n props: ['minWidth'],\n };\n\n case 'min-h':\n return {\n key: 'minHeight',\n props: ['minHeight'],\n };\n\n case 'max-w':\n return {\n key: 'maxWidth',\n props: ['maxWidth'],\n };\n\n case 'max-h':\n return {\n key: 'maxHeight',\n props: ['maxHeight'],\n };\n\n case 'rounded':\n return {\n key: 'borderRadius',\n props: ['borderRadius'],\n };\n\n case 'rounded-t':\n return {\n key: 'borderRadius',\n props: ['borderTopLeftRadius', 'borderTopRightRadius'],\n };\n\n case 'rounded-r':\n return {\n key: 'borderRadius',\n props: ['borderTopRightRadius', 'borderBottomRightRadius'],\n };\n\n case 'rounded-b':\n return {\n key: 'borderRadius',\n props: ['borderBottomLeftRadius', 'borderBottomRightRadius'],\n };\n\n case 'rounded-l':\n return {\n key: 'borderRadius',\n props: ['borderTopLeftRadius', 'borderBottomLeftRadius'],\n };\n\n case 'rounded-tl':\n return {\n key: 'borderRadius',\n props: ['borderTopLeftRadius'],\n };\n\n case 'rounded-tr':\n return {\n key: 'borderRadius',\n props: ['borderTopRightRadius'],\n };\n\n case 'rounded-bl':\n return {\n key: 'borderRadius',\n props: ['borderBottomLeftRadius'],\n };\n\n case 'rounded-br':\n return {\n key: 'borderRadius',\n props: ['borderBottomRightRadius'],\n };\n\n case 'translate-x':\n return {\n key: 'translate',\n props: [\n '--tw-translate-x',\n { '@defaults transform': {} },\n { transform: cssTransformValue },\n ],\n };\n\n case 'translate-y':\n return {\n key: 'translate',\n props: [\n '--tw-translate-y',\n { '@defaults transform': {} },\n { transform: cssTransformValue },\n ],\n };\n case 'stroke':\n return {\n key: 'strokeWidth',\n props: ['strokeWidth'],\n };\n\n case 'leading':\n return {\n key: 'lineHeight',\n props: ['lineHeight'],\n };\n\n case 'border':\n return {\n key: 'borderWidth',\n props: ['borderWidth'],\n };\n case 'border-t':\n return {\n key: 'borderWidth',\n props: ['borderTopWidth'],\n };\n case 'border-b':\n return {\n key: 'borderWidth',\n props: ['borderBottomWidth'],\n };\n\n case 'border-l':\n return {\n key: 'borderWidth',\n props: ['borderLeftWidth'],\n };\n case 'border-s':\n return {\n key: 'borderWidth',\n props: ['borderInlineStartWidth'],\n };\n\n case 'border-r':\n return {\n key: 'borderWidth',\n props: ['borderRightWidth'],\n };\n case 'border-e':\n return {\n key: 'borderWidth',\n props: ['borderInlineEndWidth'],\n };\n\n case 'border-x':\n return {\n key: 'borderWidth',\n props: ['borderInlineWidth'],\n };\n\n case 'border-y':\n return {\n key: 'borderWidth',\n props: ['borderBlockWidth'],\n };\n\n case 'scroll-m':\n return {\n key: 'scrollMargin',\n props: ['scrollMargin'],\n };\n\n case 'tracking':\n return {\n key: 'letterSpacing',\n props: ['letterSpacing'],\n };\n\n default:\n return null;\n }\n};\n","export const log = {\n error() {\n console.log('\\x1b[31m', ...arguments, '\\x1b[0m');\n },\n warn() {\n console.log('\\x1b[33m', ...arguments, '\\x1b[0m');\n },\n info() {\n console.log('\\x1b[34m', ...arguments, '\\x1b[0m');\n },\n log() {\n console.log('\\x1b[90m', ...arguments, '\\x1b[0m');\n },\n};\n","import { log } from './log.js';\n\nexport const parseValue = (v) => {\n const value = `${v}`;\n const number = parseFloat(value);\n let unit = 'unsupported';\n\n if (/^\\d+$/.test(value) && number !== 0) {\n unit = 'px';\n }\n\n const match = value.match(/px|rem|em/);\n if (match) {\n unit = match[0];\n }\n\n if (number === 0 && unit === 'unsupported') {\n unit = 'zero';\n }\n\n return { number, unit };\n};\n\nexport const parseFontSizeValue = (value) => {\n const values = {};\n if (typeof value === 'string') {\n values.fontSize = parseValue(value);\n } else if (Array.isArray(value)) {\n values.fontSize = parseValue(value[0]);\n\n if (typeof value[1] === 'string') {\n values.lineHeight = parseValue(value[1]);\n } else if (typeof value[1] === 'object') {\n if ('lineHeight' in value[1]) {\n values.lineHeight = parseValue(value[1].lineHeight);\n }\n if ('letterSpacing' in value[1]) {\n values.letterSpacing = parseValue(value[1].letterSpacing);\n }\n }\n }\n return values;\n};\n\nexport const checkValues = (start, end, value, prop = null) => {\n if (start.number === end.number) {\n log.error(\n `Same value for start an end${\n prop ? ` (${prop})` : ''\n }: \"clamp-[${value}]\".`\n );\n return null;\n }\n\n if (start.unit !== end.unit && start.unit !== 'zero' && end.unit !== 'zero') {\n log.error(\n `Units need to match${prop ? ` (${prop})` : ''}: \"clamp-[${value}]\" ${\n start.unit\n } !== ${end.unit}.`\n );\n return null;\n }\n\n if (start.unit === 'unsupported' || end.unit === 'unsupported') {\n log.error(\n `Only px, rem and em units are supported${\n prop ? ` (${prop})` : ''\n }: \"clamp-[${value}]\".`\n );\n return null;\n }\n\n return true;\n};\n","// https://chriskirknielsen.com/blog/modern-fluid-typography-with-clamp/\n\nexport const clamp = (\n _start,\n _end,\n _minvw = { number: 375, unit: 'px' },\n _maxvw = { number: 1440, unit: 'px' }\n) => {\n const unit = _start.unit === 'zero' ? _end.unit : _start.unit;\n const isPx = unit === 'px';\n\n let start = _start.number;\n let end = _end.number;\n let negative = false;\n\n let minvw = _minvw.number;\n let maxvw = _maxvw.number;\n\n if (_minvw.unit !== 'px' && isPx) {\n minvw = _minvw.number * 16;\n }\n\n if (_minvw.unit === 'px' && !isPx) {\n minvw = _minvw.number / 16;\n }\n\n if (_maxvw.unit !== 'px' && isPx) {\n maxvw = _maxvw.number * 16;\n }\n\n if (_maxvw.unit === 'px' && !isPx) {\n maxvw = _maxvw.number / 16;\n }\n\n if (end < start && start < 0 && end < 0) {\n start = Math.abs(start);\n end = Math.abs(end);\n negative = true;\n } else if (end < start && start > 0 && end > 0) {\n start = start * -1;\n end = end * -1;\n negative = true;\n } else if (end < start) {\n start = Math.abs(start) * -1;\n end = Math.abs(end);\n negative = true;\n }\n\n const slope = (end - start) / (maxvw - minvw);\n const calc = `${(start - minvw * slope).toFixed(6)}${unit} + ${(\n 100 * slope\n ).toFixed(6)}vw`;\n\n const value = `clamp(${start}${unit}, ${calc}, ${end}${unit})`;\n\n return negative ? `calc(${value} * -1)` : value;\n};\n\nconst defaultOptions = {\n unit: 'rem',\n minViewportWidth: 375,\n maxViewportWidth: 1440,\n};\n\nexport const clampValue = (\n start,\n end,\n options = {\n unit: 'rem',\n minViewportWidth: 375,\n maxViewportWidth: 1440,\n }\n) => {\n const o = { ...defaultOptions, ...options };\n\n const convert = (val) => (o.unit === 'rem' ? val / 16 : val);\n\n return clamp(\n { number: convert(start), unit: o.unit },\n { number: convert(end), unit: o.unit },\n { number: convert(o.minViewportWidth), unit: o.unit },\n { number: convert(o.maxViewportWidth), unit: o.unit }\n );\n};\n","import plugin from 'tailwindcss/plugin';\nimport { resolveProperty } from './resolve-property.js';\nimport { log } from './log.js';\nimport { parseValue, parseFontSizeValue, checkValues } from './parse-value.js';\nimport { clamp, clampValue as cv } from './clamp.js';\n\nconst defaultOptions = {\n minViewportWidth: 375,\n maxViewportWidth: 1440,\n};\n\nexport const clampValue = cv;\n\nexport default plugin.withOptions(function (options = defaultOptions) {\n return function ({ matchUtilities, theme, config }) {\n matchUtilities(\n {\n clamp: (value) => {\n const args = value.split(',');\n\n const minvw = parseValue(\n config().theme.screens[args[3]] ||\n args[3] ||\n options.minViewportWidth ||\n defaultOptions.minViewportWidth\n );\n\n const maxvw = parseValue(\n config().theme.screens[args[4]] ||\n args[4] ||\n options.maxViewportWidth ||\n defaultOptions.maxViewportWidth\n );\n\n if (args.length < 3) {\n log.error(\n `The clamp utility requires at least 3 arguments: \"clamp-[${value}]\".`\n );\n return {};\n }\n\n const resolvedProp = resolveProperty(args[0]);\n\n if (!resolvedProp) {\n log.error(\n `Property \"${args[0]}\" is not supported: \"clamp-[${value}]\".`\n );\n return {};\n }\n\n const { key, props } = resolvedProp;\n\n // handle fontSize separately\n if (key === 'fontSize') {\n const start = parseFontSizeValue(\n config().theme[key][args[1]] || args[1]\n );\n const end = parseFontSizeValue(\n config().theme[key][args[2]] || args[2]\n );\n\n const css = {};\n\n Object.keys(start).forEach((k) => {\n if (k in end) {\n if (\n (k === 'letterSpacing' || k === 'lineHeight') &&\n start[k].number === end[k].number &&\n start[k].unit === end[k].unit\n ) {\n css[k] = `${start[k].number}${start[k].unit}`;\n } else if (checkValues(start[k], end[k], value, k)) {\n const val = clamp(start[k], end[k], minvw, maxvw);\n css[k] = val;\n }\n }\n });\n\n return Object.keys(css).length > 0 ? css : null;\n }\n\n // handle other properties\n const startNegative = args[1].startsWith('-');\n const endNegative = args[2].startsWith('-');\n\n const startVal = startNegative ? args[1].slice(1) : args[1];\n const endVal = endNegative ? args[2].slice(1) : args[2];\n\n const start = parseValue(config().theme[key][startVal] || startVal);\n const end = parseValue(config().theme[key][endVal] || endVal);\n\n if (startNegative) start.number = start.number * -1;\n if (endNegative) end.number = end.number * -1;\n\n if (!checkValues(start, end, value)) {\n return {};\n }\n\n const val = clamp(start, end, minvw, maxvw);\n\n const css = props.reduce((acc, prop) => {\n if (typeof prop === 'string') {\n acc[prop] = val;\n } else {\n acc = { ...acc, ...prop };\n }\n return acc;\n }, {});\n\n return css;\n },\n },\n { values: theme('clamp') }\n );\n };\n});\n"],"names":["i","n","t","o","u","cssTransformValue","resolveProperty","name","log","parseValue","v","value","number","unit","match","parseFontSizeValue","values","checkValues","start","end","prop","clamp","_start","_end","_minvw","_maxvw","isPx","negative","minvw","maxvw","slope","calc","defaultOptions","clampValue","options","convert","val","cv","plugin","matchUtilities","theme","config","args","resolvedProp","key","props","css","k","startNegative","endNegative","startVal","endVal","acc"],"mappings":"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","x_google_ignoreList":[0]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tailwind-clamp",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.2",
|
|
4
4
|
"description": "Tailwind CSS plugin to use CSS clamp in your projects",
|
|
5
5
|
"main": "dist/index.umd.cjs",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -37,6 +37,7 @@
|
|
|
37
37
|
},
|
|
38
38
|
"homepage": "https://github.com/nicolas-cusan/tailwind-clamp#readme",
|
|
39
39
|
"dependencies": {
|
|
40
|
+
"@csstools/css-calc": "^2.1.2",
|
|
40
41
|
"tailwindcss": "^4.0.15"
|
|
41
42
|
},
|
|
42
43
|
"devDependencies": {
|