tailwind-clamp 3.0.9 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,61 +1,21 @@
1
- function L(e) {
2
- return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
1
+ function B(e, t) {
2
+ return { handler: e, config: t };
3
3
  }
4
- var S = {}, _ = {};
5
- (function(e) {
6
- Object.defineProperty(e, "__esModule", {
7
- value: !0
8
- }), Object.defineProperty(e, "default", {
9
- enumerable: !0,
10
- get: function() {
11
- return i;
12
- }
13
- });
14
- function n(r, o) {
15
- return {
16
- handler: r,
17
- config: o
18
- };
4
+ B.withOptions = function(e, t = () => ({})) {
5
+ function s(r) {
6
+ return { handler: e(r), config: t(r) };
19
7
  }
20
- n.withOptions = function(r, o = () => ({})) {
21
- const t = function(s) {
22
- return {
23
- __options: s,
24
- handler: r(s),
25
- config: o(s)
26
- };
27
- };
28
- return t.__isOptionsFunction = !0, t.__pluginFunction = r, t.__configFunction = o, t;
29
- };
30
- const i = n;
31
- })(_);
32
- (function(e) {
33
- Object.defineProperty(e, "__esModule", {
34
- value: !0
35
- }), Object.defineProperty(e, "default", {
36
- enumerable: !0,
37
- get: function() {
38
- return r;
39
- }
40
- });
41
- const n = /* @__PURE__ */ i(_);
42
- function i(o) {
43
- return o && o.__esModule ? o : {
44
- default: o
45
- };
46
- }
47
- const r = n.default;
48
- })(S);
49
- let w = S;
50
- var H = (w.__esModule ? w : { default: w }).default;
51
- const M = /* @__PURE__ */ L(H), O = [
8
+ return s.__isOptionsFunction = !0, s;
9
+ };
10
+ var H = B;
11
+ const $ = [
52
12
  "translate(var(--tw-translate-x), var(--tw-translate-y))",
53
13
  "rotate(var(--tw-rotate))",
54
14
  "skewX(var(--tw-skew-x))",
55
15
  "skewY(var(--tw-skew-y))",
56
16
  "scaleX(var(--tw-scale-x))",
57
17
  "scaleY(var(--tw-scale-y))"
58
- ].join(" "), j = (e) => {
18
+ ].join(" "), O = (e) => {
59
19
  switch (e) {
60
20
  case "p":
61
21
  return {
@@ -258,7 +218,7 @@ const M = /* @__PURE__ */ L(H), O = [
258
218
  props: [
259
219
  "--tw-translate-x",
260
220
  { "@defaults transform": {} },
261
- { transform: O }
221
+ { transform: $ }
262
222
  ]
263
223
  };
264
224
  case "translate-y":
@@ -267,7 +227,7 @@ const M = /* @__PURE__ */ L(H), O = [
267
227
  props: [
268
228
  "--tw-translate-y",
269
229
  { "@defaults transform": {} },
270
- { transform: O }
230
+ { transform: $ }
271
231
  ]
272
232
  };
273
233
  case "stroke":
@@ -328,7 +288,7 @@ const M = /* @__PURE__ */ L(H), O = [
328
288
  default:
329
289
  return null;
330
290
  }
331
- }, f = {
291
+ }, y = {
332
292
  error() {
333
293
  console.log("\x1B[31m", ...arguments, "\x1B[0m");
334
294
  },
@@ -341,96 +301,79 @@ const M = /* @__PURE__ */ L(H), O = [
341
301
  log() {
342
302
  console.log("\x1B[90m", ...arguments, "\x1B[0m");
343
303
  }
344
- }, l = (e) => {
345
- const n = `${e}`, i = parseFloat(n);
304
+ }, m = (e) => {
305
+ const t = `${e}`, s = parseFloat(t);
346
306
  let r = "unsupported";
347
- /^\d+$/.test(n) && i !== 0 && (r = "px");
348
- const o = n.match(/px|rem|em/);
349
- return o && (r = o[0]), i === 0 && r === "unsupported" && (r = "zero"), { number: i, unit: r };
350
- }, P = (e) => {
351
- const n = {};
352
- return typeof e == "string" ? n.fontSize = l(e) : Array.isArray(e) && (n.fontSize = l(e[0]), typeof e[1] == "string" ? n.lineHeight = l(e[1]) : typeof e[1] == "object" && ("lineHeight" in e[1] && (n.lineHeight = l(e[1].lineHeight)), "letterSpacing" in e[1] && (n.letterSpacing = l(e[1].letterSpacing)))), n;
353
- }, T = (e, n, i, r = null) => e.number === n.number ? (f.error(
354
- `Same value for start an end${r ? ` (${r})` : ""}: "clamp-[${i}]".`
355
- ), null) : e.unit !== n.unit && e.unit !== "zero" && n.unit !== "zero" ? (f.error(
356
- `Units need to match${r ? ` (${r})` : ""}: "clamp-[${i}]" ${e.unit} !== ${n.unit}.`
357
- ), null) : e.unit === "unsupported" || n.unit === "unsupported" ? (f.error(
358
- `Only px, rem and em units are supported${r ? ` (${r})` : ""}: "clamp-[${i}]".`
359
- ), null) : !0, $ = (e, n, i = { number: 375, unit: "px" }, r = { number: 1440, unit: "px" }) => {
360
- const o = e.unit === "zero" ? n.unit : e.unit, t = o === "px";
361
- let s = e.number, a = n.number, m = !1, d = i.number, g = r.number;
362
- i.unit !== "px" && t && (d = i.number * 16), i.unit === "px" && !t && (d = i.number / 16), r.unit !== "px" && t && (g = r.number * 16), r.unit === "px" && !t && (g = r.number / 16), a < s && s < 0 && a < 0 ? (s = Math.abs(s), a = Math.abs(a), m = !0) : a < s && s > 0 && a > 0 ? (s = s * -1, a = a * -1, m = !0) : a < s && (s = Math.abs(s) * -1, a = Math.abs(a), m = !0);
363
- const h = (a - s) / (g - d), y = `${(s - d * h).toFixed(6)}${o} + ${(100 * h).toFixed(6)}vw`, b = `clamp(${s}${o}, ${y}, ${a}${o})`;
364
- return m ? `calc(${b} * -1)` : b;
365
- }, v = {
366
- unit: "rem",
367
- minViewportWidth: 375,
368
- maxViewportWidth: 1440
369
- }, F = (e, n, i = {
370
- unit: "rem",
371
- minViewportWidth: 375,
372
- maxViewportWidth: 1440
373
- }) => {
374
- const r = { ...v, ...i }, o = (t) => r.unit === "rem" ? t / 16 : t;
375
- return $(
376
- { number: o(e), unit: r.unit },
377
- { number: o(n), unit: r.unit },
378
- { number: o(r.minViewportWidth), unit: r.unit },
379
- { number: o(r.maxViewportWidth), unit: r.unit }
380
- );
381
- }, R = {
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) => {
311
+ 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 = {
382
326
  minViewportWidth: 375,
383
327
  maxViewportWidth: 1440
384
- }, A = F, C = M.withOptions(function(e = R) {
385
- return function({ matchUtilities: n, theme: i, config: r }) {
386
- n(
328
+ }, F = H.withOptions(function(e = W) {
329
+ return function({ matchUtilities: t, theme: s, config: r }) {
330
+ t(
387
331
  {
388
- clamp: (o) => {
389
- const t = o.split(","), s = l(
390
- r().theme.screens[t[3]] || t[3] || e.minViewportWidth || R.minViewportWidth
391
- ), a = l(
392
- r().theme.screens[t[4]] || t[4] || e.maxViewportWidth || R.maxViewportWidth
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
393
337
  );
394
- if (t.length < 3)
395
- return f.error(
396
- `The clamp utility requires at least 3 arguments: "clamp-[${o}]".`
397
- ), null;
398
- const m = j(t[0]);
399
- if (!m)
400
- return f.error(
401
- `Property "${t[0]}" is not supported: "clamp-[${o}]".`
402
- ), null;
403
- const { key: d, props: g } = m;
338
+ if (n.length < 3)
339
+ return y.error(
340
+ `The clamp utility requires at least 3 arguments: "clamp-[${p}]".`
341
+ ), {};
342
+ const l = O(n[0]);
343
+ if (!l)
344
+ return y.error(
345
+ `Property "${n[0]}" is not supported: "clamp-[${p}]".`
346
+ ), {};
347
+ const { key: d, props: g } = l;
404
348
  if (d === "fontSize") {
405
- const p = P(
406
- r().theme[d][t[1]] || t[1]
407
- ), c = P(
408
- r().theme[d][t[2]] || t[2]
409
- ), W = {};
410
- return Object.keys(p).forEach((u) => {
411
- if (u in c) {
412
- if ((u === "letterSpacing" || u === "lineHeight") && p[u].value === c[u].value && p[u].unit === c[u].unit)
413
- W[u] = `${p[u].number}${p[u].unit}`;
414
- else if (T(p[u], c[u], o, u)) {
415
- const B = $(p[u], c[u], s, a);
416
- W[u] = B;
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;
417
361
  }
418
362
  }
419
- }), Object.keys(W).length > 0 ? W : null;
363
+ }), Object.keys(R).length > 0 ? R : null;
420
364
  }
421
- const h = t[1].startsWith("-"), y = t[2].startsWith("-"), b = h ? t[1].slice(1) : t[1], V = y ? t[2].slice(1) : t[2], k = l(r().theme[d][b] || b), x = l(r().theme[d][V] || V);
422
- if (h && (k.number = k.number * -1), y && (x.number = x.number * -1), !T(k, x, o))
423
- return null;
424
- const z = $(k, x, s, a);
425
- return g.reduce((p, c) => (typeof c == "string" ? p[c] = z : p = { ...p, ...c }, p), {});
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))
367
+ 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), {});
426
370
  }
427
371
  },
428
- { values: i("clamp") }
372
+ { values: s("clamp") }
429
373
  );
430
374
  };
431
375
  });
432
376
  export {
433
- A as clampValue,
434
- C as tailwindClamp
377
+ F as default
435
378
  };
436
379
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../node_modules/.pnpm/tailwindcss@3.4.14/node_modules/tailwindcss/lib/util/createPlugin.js","../node_modules/.pnpm/tailwindcss@3.4.14/node_modules/tailwindcss/lib/public/create-plugin.js","../node_modules/.pnpm/tailwindcss@3.4.14/node_modules/tailwindcss/plugin.js","../lib/resolve-property.js","../lib/log.js","../lib/parse-value.js","../lib/clamp.js","../lib/index.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nfunction createPlugin(plugin, config) {\n return {\n handler: plugin,\n config\n };\n}\ncreatePlugin.withOptions = function(pluginFunction, configFunction = ()=>({})) {\n const optionsFunction = function(options) {\n return {\n __options: options,\n handler: pluginFunction(options),\n config: configFunction(options)\n };\n };\n optionsFunction.__isOptionsFunction = true;\n // Expose plugin dependencies so that `object-hash` returns a different\n // value if anything here changes, to ensure a rebuild is triggered.\n optionsFunction.__pluginFunction = pluginFunction;\n optionsFunction.__configFunction = configFunction;\n return optionsFunction;\n};\nconst _default = createPlugin;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nconst _createPlugin = /*#__PURE__*/ _interop_require_default(require(\"../util/createPlugin\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nconst _default = _createPlugin.default;\n","let createPlugin = require('./lib/public/create-plugin')\nmodule.exports = (createPlugin.__esModule ? createPlugin : { default: createPlugin }).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\nexport const clampValue = cv;\n\nexport const tailwindClamp = plugin.withOptions(function (\n options = defaultOptions\n) {\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 null;\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 null;\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].value === end[k].value &&\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 null;\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":["exports","_default","createPlugin","plugin","config","pluginFunction","configFunction","optionsFunction","options","_createPlugin","_interop_require_default","require$$0","obj","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","o","convert","val","cv","tailwindClamp","matchUtilities","theme","args","resolvedProp","key","props","css","k","startNegative","endNegative","startVal","endVal","acc"],"mappings":"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","x_google_ignoreList":[0,1,2]}
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,2 +1,2 @@
1
- (function(m,f){typeof exports=="object"&&typeof module<"u"?f(exports):typeof define=="function"&&define.amd?define(["exports"],f):(m=typeof globalThis<"u"?globalThis:m||self,f(m["tailwind-clamp"]={}))})(this,function(m){"use strict";function f(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var O={},P={};(function(e){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return o}});function n(r,i){return{handler:r,config:i}}n.withOptions=function(r,i=()=>({})){const t=function(s){return{__options:s,handler:r(s),config:i(s)}};return t.__isOptionsFunction=!0,t.__pluginFunction=r,t.__configFunction=i,t};const o=n})(P),function(e){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return r}});const n=o(P);function o(i){return i&&i.__esModule?i:{default:i}}const r=n.default}(O);let $=O;var L=($.__esModule?$:{default:$}).default;const M=f(L),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=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: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-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}},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=e=>{const n=`${e}`,o=parseFloat(n);let r="unsupported";/^\d+$/.test(n)&&o!==0&&(r="px");const i=n.match(/px|rem|em/);return i&&(r=i[0]),o===0&&r==="unsupported"&&(r="zero"),{number:o,unit:r}},_=e=>{const n={};return typeof e=="string"?n.fontSize=c(e):Array.isArray(e)&&(n.fontSize=c(e[0]),typeof e[1]=="string"?n.lineHeight=c(e[1]):typeof e[1]=="object"&&("lineHeight"in e[1]&&(n.lineHeight=c(e[1].lineHeight)),"letterSpacing"in e[1]&&(n.letterSpacing=c(e[1].letterSpacing)))),n},z=(e,n,o,r=null)=>e.number===n.number?(h.error(`Same value for start an end${r?` (${r})`:""}: "clamp-[${o}]".`),null):e.unit!==n.unit&&e.unit!=="zero"&&n.unit!=="zero"?(h.error(`Units need to match${r?` (${r})`:""}: "clamp-[${o}]" ${e.unit} !== ${n.unit}.`),null):e.unit==="unsupported"||n.unit==="unsupported"?(h.error(`Only px, rem and em units are supported${r?` (${r})`:""}: "clamp-[${o}]".`),null):!0,V=(e,n,o={number:375,unit:"px"},r={number:1440,unit:"px"})=>{const i=e.unit==="zero"?n.unit:e.unit,t=i==="px";let s=e.number,a=n.number,g=!1,d=o.number,b=r.number;o.unit!=="px"&&t&&(d=o.number*16),o.unit==="px"&&!t&&(d=o.number/16),r.unit!=="px"&&t&&(b=r.number*16),r.unit==="px"&&!t&&(b=r.number/16),a<s&&s<0&&a<0?(s=Math.abs(s),a=Math.abs(a),g=!0):a<s&&s>0&&a>0?(s=s*-1,a=a*-1,g=!0):a<s&&(s=Math.abs(s)*-1,a=Math.abs(a),g=!0);const y=(a-s)/(b-d),w=`${(s-d*y).toFixed(6)}${i} + ${(100*y).toFixed(6)}vw`,k=`clamp(${s}${i}, ${w}, ${a}${i})`;return g?`calc(${k} * -1)`:k},j={unit:"rem",minViewportWidth:375,maxViewportWidth:1440},v=(e,n,o={unit:"rem",minViewportWidth:375,maxViewportWidth:1440})=>{const r={...j,...o},i=t=>r.unit==="rem"?t/16:t;return V({number:i(e),unit:r.unit},{number:i(n),unit:r.unit},{number:i(r.minViewportWidth),unit:r.unit},{number:i(r.maxViewportWidth),unit:r.unit})},T={minViewportWidth:375,maxViewportWidth:1440},F=v,C=M.withOptions(function(e=T){return function({matchUtilities:n,theme:o,config:r}){n({clamp:i=>{const t=i.split(","),s=c(r().theme.screens[t[3]]||t[3]||e.minViewportWidth||T.minViewportWidth),a=c(r().theme.screens[t[4]]||t[4]||e.maxViewportWidth||T.maxViewportWidth);if(t.length<3)return h.error(`The clamp utility requires at least 3 arguments: "clamp-[${i}]".`),null;const g=H(t[0]);if(!g)return h.error(`Property "${t[0]}" is not supported: "clamp-[${i}]".`),null;const{key:d,props:b}=g;if(d==="fontSize"){const p=_(r().theme[d][t[1]]||t[1]),l=_(r().theme[d][t[2]]||t[2]),R={};return Object.keys(p).forEach(u=>{if(u in l){if((u==="letterSpacing"||u==="lineHeight")&&p[u].value===l[u].value&&p[u].unit===l[u].unit)R[u]=`${p[u].number}${p[u].unit}`;else if(z(p[u],l[u],i,u)){const A=V(p[u],l[u],s,a);R[u]=A}}}),Object.keys(R).length>0?R:null}const y=t[1].startsWith("-"),w=t[2].startsWith("-"),k=y?t[1].slice(1):t[1],B=w?t[2].slice(1):t[2],x=c(r().theme[d][k]||k),W=c(r().theme[d][B]||B);if(y&&(x.number=x.number*-1),w&&(W.number=W.number*-1),!z(x,W,i))return null;const q=V(x,W,s,a);return b.reduce((p,l)=>(typeof l=="string"?p[l]=q:p={...p,...l},p),{})}},{values:o("clamp")})}});m.clampValue=F,m.tailwindClamp=C,Object.defineProperty(m,Symbol.toStringTag,{value:"Module"})});
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")})}})});
2
2
  //# sourceMappingURL=index.umd.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.umd.cjs","sources":["../node_modules/.pnpm/tailwindcss@3.4.14/node_modules/tailwindcss/lib/util/createPlugin.js","../node_modules/.pnpm/tailwindcss@3.4.14/node_modules/tailwindcss/lib/public/create-plugin.js","../node_modules/.pnpm/tailwindcss@3.4.14/node_modules/tailwindcss/plugin.js","../lib/resolve-property.js","../lib/log.js","../lib/parse-value.js","../lib/clamp.js","../lib/index.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nfunction createPlugin(plugin, config) {\n return {\n handler: plugin,\n config\n };\n}\ncreatePlugin.withOptions = function(pluginFunction, configFunction = ()=>({})) {\n const optionsFunction = function(options) {\n return {\n __options: options,\n handler: pluginFunction(options),\n config: configFunction(options)\n };\n };\n optionsFunction.__isOptionsFunction = true;\n // Expose plugin dependencies so that `object-hash` returns a different\n // value if anything here changes, to ensure a rebuild is triggered.\n optionsFunction.__pluginFunction = pluginFunction;\n optionsFunction.__configFunction = configFunction;\n return optionsFunction;\n};\nconst _default = createPlugin;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nconst _createPlugin = /*#__PURE__*/ _interop_require_default(require(\"../util/createPlugin\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nconst _default = _createPlugin.default;\n","let createPlugin = require('./lib/public/create-plugin')\nmodule.exports = (createPlugin.__esModule ? createPlugin : { default: createPlugin }).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\nexport const clampValue = cv;\n\nexport const tailwindClamp = plugin.withOptions(function (\n options = defaultOptions\n) {\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 null;\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 null;\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].value === end[k].value &&\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 null;\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":["exports","_default","createPlugin","plugin","config","pluginFunction","configFunction","optionsFunction","options","_createPlugin","_interop_require_default","require$$0","obj","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","o","convert","val","cv","tailwindClamp","matchUtilities","theme","args","resolvedProp","key","props","css","k","startNegative","endNegative","startVal","endVal","acc"],"mappings":"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","x_google_ignoreList":[0,1,2]}
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]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tailwind-clamp",
3
- "version": "3.0.9",
3
+ "version": "4.0.0",
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,11 +37,10 @@
37
37
  },
38
38
  "homepage": "https://github.com/nicolas-cusan/tailwind-clamp#readme",
39
39
  "dependencies": {
40
- "tailwindcss": "^3.4.14"
40
+ "tailwindcss": "^4.0.15"
41
41
  },
42
42
  "devDependencies": {
43
- "autoprefixer": "^10.4.20",
44
- "postcss": "^8.4.47",
45
- "vite": "^5.4.10"
43
+ "@tailwindcss/vite": "^4.0.15",
44
+ "vite": "^6.2.2"
46
45
  }
47
46
  }
@@ -1 +0,0 @@
1
- *,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{font-family:Inter,sans-serif}@supports (font-variation-settings: normal){:root{font-family:Inter var,sans-serif}}.grid{display:grid}.bg-stone-100{--tw-bg-opacity: 1;background-color:rgb(245 245 244 / var(--tw-bg-opacity))}.font-bold{font-weight:700}.text-stone-600{--tw-text-opacity: 1;color:rgb(87 83 78 / var(--tw-text-opacity))}.clamp-\[text\,size1\,size2\]{font-size:clamp(20rem,18.591549rem + 6.00939vw,24rem);line-height:22rem;letter-spacing:0rem}
package/dist/index.html DELETED
@@ -1,20 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
- <title>Tailwind Clamp</title>
7
- <link rel="preconnect" href="https://rsms.me/" />
8
- <link rel="stylesheet" href="https://rsms.me/inter/inter.css" />
9
- <link rel="stylesheet" crossorigin href="/tailwind-clamp/assets/index-B83qMtYy.css">
10
- </head>
11
- <body class="bg-stone-100 text-stone-600">
12
- <div class="grid">
13
- <h1 class="font-bold">Hello, Tailwind Clamp!</h1>
14
- <p class="clamp-[text,size1,size2]">
15
- This is a simple example of using the clamp function in Tailwind CSS.
16
- </p>
17
- <p class="">Resize the window to see the text size change.</p>
18
- </div>
19
- </body>
20
- </html>