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 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 values defined in the Tailwind CSS configuration file, arbitrary values or a combination.
14
- - Helper function to create clamped values directly in your config file.
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 Tailwind CSS configuration file:
27
+ Add the plugin in your main CSS file:
25
28
 
26
- ```js
27
- // tailwind.config.js
28
- import { tailwindClamp } from 'tailwind-clamp';
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 | Description | Default value |
46
- | ---------------------- | ------------------ | ------------------------------------- | ------------- |
47
- | **`minViewportWidth`** | `{number\|string}` | Viewport size where the clamp starts. | `375` |
48
- | **`maxViewportWidth`** | `{number\|string}` | Viewport size where the clamp end. | `1440` |
49
-
50
- Value should be a css value (`px`, `rem`, `em`) or a number (unit will be `px`). The unit for both options need to match.
51
-
52
- ```js
53
- // tailwind.config.js
54
- import { tailwindClamp } from 'tailwind-clamp';
55
-
56
- export default {
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, a css value (`px`, `rem`, `em`) or a number (unit will be `px`), the unit will need to match `end`.
82
- - `end`: Value at `maxViewportWidth` viewport size. It can be a key from your Tailwind CSS config file, a css value (`px`, `rem`, `em`) or a number (unit will be `px`), the unit will need to match `start`.
83
- - `[minViewportWidth=375]`: Viewport size, where the clamp starts, defaults to `375`. Can be a key from `screens` a css value (`px`, `rem`, `em`) or a number (unit will be `px`), the unit will need to match `maxViewportWidth`. Value needs to be smaller than `maxViewportWidth`.
84
- - `[maxViewportWidth=1440]`: Viewport size, where the clamp stops, defaults to `1440`. Can be a key from `screens` a css value (`px`, `rem`, `em`) or a number (unit will be `px`), the unit will need to match `minViewportWidth`. Value needs to be larger than `minViewportWidth`.
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 B(e, t) {
2
- return { handler: e, config: t };
1
+ function z(r, t) {
2
+ return { handler: r, config: t };
3
3
  }
4
- B.withOptions = function(e, t = () => ({})) {
5
- function s(r) {
6
- return { handler: e(r), config: t(r) };
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 H = B;
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(" "), O = (e) => {
19
- switch (e) {
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: ["paddingLeft", "paddingRight"]
58
+ props: ["paddingInline"]
49
59
  };
50
60
  case "py":
51
61
  return {
52
62
  key: "padding",
53
- props: ["paddingTop", "paddingBottom"]
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: ["marginLeft", "marginRight"]
103
+ props: ["marginInline"]
84
104
  };
85
105
  case "my":
86
106
  return {
87
107
  key: "margin",
88
- props: ["marginTop", "marginBottom"]
108
+ props: ["marginBlock"]
89
109
  };
90
110
  case "inset":
91
111
  return {
92
112
  key: "inset",
93
- props: ["top", "left", "right", "bottom"]
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: ["borderLeftWidth", "borderRightWidth"]
321
+ props: ["borderInlineWidth"]
272
322
  };
273
323
  case "border-y":
274
324
  return {
275
325
  key: "borderWidth",
276
- props: ["borderTopWidth", "borderBottomWidth"]
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 = (e) => {
305
- const t = `${e}`, s = parseFloat(t);
306
- let r = "unsupported";
307
- /^\d+$/.test(t) && s !== 0 && (r = "px");
308
- const p = t.match(/px|rem|em/);
309
- return p && (r = p[0]), s === 0 && r === "unsupported" && (r = "zero"), { number: s, unit: r };
310
- }, T = (e) => {
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 e == "string" ? t.fontSize = m(e) : Array.isArray(e) && (t.fontSize = m(e[0]), typeof e[1] == "string" ? t.lineHeight = m(e[1]) : typeof e[1] == "object" && ("lineHeight" in e[1] && (t.lineHeight = m(e[1].lineHeight)), "letterSpacing" in e[1] && (t.letterSpacing = m(e[1].letterSpacing)))), t;
313
- }, S = (e, t, s, r = null) => e.number === t.number ? (y.error(
314
- `Same value for start an end${r ? ` (${r})` : ""}: "clamp-[${s}]".`
315
- ), null) : e.unit !== t.unit && e.unit !== "zero" && t.unit !== "zero" ? (y.error(
316
- `Units need to match${r ? ` (${r})` : ""}: "clamp-[${s}]" ${e.unit} !== ${t.unit}.`
317
- ), null) : e.unit === "unsupported" || t.unit === "unsupported" ? (y.error(
318
- `Only px, rem and em units are supported${r ? ` (${r})` : ""}: "clamp-[${s}]".`
319
- ), null) : !0, z = (e, t, s = { number: 375, unit: "px" }, r = { number: 1440, unit: "px" }) => {
320
- const p = e.unit === "zero" ? t.unit : e.unit, n = p === "px";
321
- let o = e.number, i = t.number, l = !1, d = s.number, g = r.number;
322
- s.unit !== "px" && n && (d = s.number * 16), s.unit === "px" && !n && (d = s.number / 16), r.unit !== "px" && n && (g = r.number * 16), r.unit === "px" && !n && (g = r.number / 16), i < o && o < 0 && i < 0 ? (o = Math.abs(o), i = Math.abs(i), l = !0) : i < o && o > 0 && i > 0 ? (o = o * -1, i = i * -1, l = !0) : i < o && (o = Math.abs(o) * -1, i = Math.abs(i), l = !0);
323
- const h = (i - o) / (g - d), f = `${(o - d * h).toFixed(6)}${p} + ${(100 * h).toFixed(6)}vw`, b = `clamp(${o}${p}, ${f}, ${i}${p})`;
324
- return l ? `calc(${b} * -1)` : b;
325
- }, W = {
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 = H.withOptions(function(e = W) {
329
- return function({ matchUtilities: t, theme: s, config: r }) {
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: (p) => {
333
- const n = p.split(","), o = m(
334
- r().theme.screens[n[3]] || n[3] || e.minViewportWidth || W.minViewportWidth
335
- ), i = m(
336
- r().theme.screens[n[4]] || n[4] || e.maxViewportWidth || W.maxViewportWidth
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-[${p}]".`
406
+ `The clamp utility requires at least 3 arguments: "clamp-[${i}]".`
341
407
  ), {};
342
- const l = O(n[0]);
408
+ const l = L(n[0]);
343
409
  if (!l)
344
410
  return y.error(
345
- `Property "${n[0]}" is not supported: "clamp-[${p}]".`
411
+ `Property "${n[0]}" is not supported: "clamp-[${i}]".`
346
412
  ), {};
347
- const { key: d, props: g } = l;
413
+ const { key: d, props: b } = l;
348
414
  if (d === "fontSize") {
349
- const u = T(
350
- r().theme[d][n[1]] || n[1]
351
- ), c = T(
352
- r().theme[d][n[2]] || n[2]
353
- ), R = {};
354
- return Object.keys(u).forEach((a) => {
355
- if (a in c) {
356
- if ((a === "letterSpacing" || a === "lineHeight") && u[a].number === c[a].number && u[a].unit === c[a].unit)
357
- R[a] = `${u[a].number}${u[a].unit}`;
358
- else if (S(u[a], c[a], p, a)) {
359
- const V = z(u[a], c[a], o, i);
360
- R[a] = V;
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(R).length > 0 ? R : null;
429
+ }), Object.keys(W).length > 0 ? W : null;
364
430
  }
365
- const h = n[1].startsWith("-"), f = n[2].startsWith("-"), b = h ? n[1].slice(1) : n[1], w = f ? n[2].slice(1) : n[2], k = m(r().theme[d][b] || b), x = m(r().theme[d][w] || w);
366
- if (h && (k.number = k.number * -1), f && (x.number = x.number * -1), !S(k, x, p))
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 L = z(k, x, o, i);
369
- return g.reduce((u, c) => (typeof c == "string" ? u[c] = L : u = { ...u, ...c }, u), {});
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 default
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]}
@@ -1,2 +1,2 @@
1
- (function(g,h){typeof exports=="object"&&typeof module<"u"?module.exports=h():typeof define=="function"&&define.amd?define(h):(g=typeof globalThis<"u"?globalThis:g||self,g["tailwind-clamp"]=h())})(this,function(){"use strict";function g(e,t){return{handler:e,config:t}}g.withOptions=function(e,t=()=>({})){function s(r){return{handler:e(r),config:t(r)}}return s.__isOptionsFunction=!0,s};var h=g;const T=["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(" "),V=e=>{switch(e){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"pr":return{key:"padding",props:["paddingRight"]};case"px":return{key:"padding",props:["paddingLeft","paddingRight"]};case"py":return{key:"padding",props:["paddingTop","paddingBottom"]};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"mr":return{key:"margin",props:["marginRight"]};case"mx":return{key:"margin",props:["marginLeft","marginRight"]};case"my":return{key:"margin",props:["marginTop","marginBottom"]};case"inset":return{key:"inset",props:["top","left","right","bottom"]};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:T}]};case"translate-y":return{key:"translate",props:["--tw-translate-y",{"@defaults transform":{}},{transform:T}]};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-r":return{key:"borderWidth",props:["borderRightWidth"]};case"border-x":return{key:"borderWidth",props:["borderLeftWidth","borderRightWidth"]};case"border-y":return{key:"borderWidth",props:["borderTopWidth","borderBottomWidth"]};case"scroll-m":return{key:"scrollMargin",props:["scrollMargin"]};case"tracking":return{key:"letterSpacing",props:["letterSpacing"]};default:return null}},b={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=e=>{const t=`${e}`,s=parseFloat(t);let r="unsupported";/^\d+$/.test(t)&&s!==0&&(r="px");const p=t.match(/px|rem|em/);return p&&(r=p[0]),s===0&&r==="unsupported"&&(r="zero"),{number:s,unit:r}},S=e=>{const t={};return typeof e=="string"?t.fontSize=c(e):Array.isArray(e)&&(t.fontSize=c(e[0]),typeof e[1]=="string"?t.lineHeight=c(e[1]):typeof e[1]=="object"&&("lineHeight"in e[1]&&(t.lineHeight=c(e[1].lineHeight)),"letterSpacing"in e[1]&&(t.letterSpacing=c(e[1].letterSpacing)))),t},z=(e,t,s,r=null)=>e.number===t.number?(b.error(`Same value for start an end${r?` (${r})`:""}: "clamp-[${s}]".`),null):e.unit!==t.unit&&e.unit!=="zero"&&t.unit!=="zero"?(b.error(`Units need to match${r?` (${r})`:""}: "clamp-[${s}]" ${e.unit} !== ${t.unit}.`),null):e.unit==="unsupported"||t.unit==="unsupported"?(b.error(`Only px, rem and em units are supported${r?` (${r})`:""}: "clamp-[${s}]".`),null):!0,B=(e,t,s={number:375,unit:"px"},r={number:1440,unit:"px"})=>{const p=e.unit==="zero"?t.unit:e.unit,n=p==="px";let o=e.number,i=t.number,l=!1,d=s.number,f=r.number;s.unit!=="px"&&n&&(d=s.number*16),s.unit==="px"&&!n&&(d=s.number/16),r.unit!=="px"&&n&&(f=r.number*16),r.unit==="px"&&!n&&(f=r.number/16),i<o&&o<0&&i<0?(o=Math.abs(o),i=Math.abs(i),l=!0):i<o&&o>0&&i>0?(o=o*-1,i=i*-1,l=!0):i<o&&(o=Math.abs(o)*-1,i=Math.abs(i),l=!0);const y=(i-o)/(f-d),x=`${(o-d*y).toFixed(6)}${p} + ${(100*y).toFixed(6)}vw`,k=`clamp(${o}${p}, ${x}, ${i}${p})`;return l?`calc(${k} * -1)`:k},$={minViewportWidth:375,maxViewportWidth:1440};return h.withOptions(function(e=$){return function({matchUtilities:t,theme:s,config:r}){t({clamp:p=>{const n=p.split(","),o=c(r().theme.screens[n[3]]||n[3]||e.minViewportWidth||$.minViewportWidth),i=c(r().theme.screens[n[4]]||n[4]||e.maxViewportWidth||$.maxViewportWidth);if(n.length<3)return b.error(`The clamp utility requires at least 3 arguments: "clamp-[${p}]".`),{};const l=V(n[0]);if(!l)return b.error(`Property "${n[0]}" is not supported: "clamp-[${p}]".`),{};const{key:d,props:f}=l;if(d==="fontSize"){const u=S(r().theme[d][n[1]]||n[1]),m=S(r().theme[d][n[2]]||n[2]),w={};return Object.keys(u).forEach(a=>{if(a in m){if((a==="letterSpacing"||a==="lineHeight")&&u[a].number===m[a].number&&u[a].unit===m[a].unit)w[a]=`${u[a].number}${u[a].unit}`;else if(z(u[a],m[a],p,a)){const O=B(u[a],m[a],o,i);w[a]=O}}}),Object.keys(w).length>0?w:null}const y=n[1].startsWith("-"),x=n[2].startsWith("-"),k=y?n[1].slice(1):n[1],L=x?n[2].slice(1):n[2],R=c(r().theme[d][k]||k),W=c(r().theme[d][L]||L);if(y&&(R.number=R.number*-1),x&&(W.number=W.number*-1),!z(R,W,p))return{};const H=B(R,W,o,i);return f.reduce((u,m)=>(typeof m=="string"?u[m]=H:u={...u,...m},u),{})}},{values:s("clamp")})}})});
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
@@ -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.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": {