@sudobility/ratelimit-components 1.0.7 → 1.0.10

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.esm.js CHANGED
@@ -1,153 +1,153 @@
1
- import { jsxs as k, jsx as g } from "react/jsx-runtime";
2
- import { useMemo as ne } from "react";
3
- import { ResponsiveContainer as De, LineChart as Fe, CartesianGrid as _e, XAxis as $e, YAxis as Be, Tooltip as He, Line as qe, ReferenceLine as Ye } from "recharts";
1
+ import { jsxs as y, jsx as b } from "react/jsx-runtime";
2
+ import { useMemo as se } from "react";
3
+ import { ResponsiveContainer as Ee, LineChart as We, CartesianGrid as Fe, XAxis as _e, YAxis as Be, Tooltip as He, Line as qe, ReferenceLine as Ye } from "recharts";
4
4
  function ze(e) {
5
- var r, t, o = "";
6
- if (typeof e == "string" || typeof e == "number") o += e;
5
+ var o, t, r = "";
6
+ if (typeof e == "string" || typeof e == "number") r += e;
7
7
  else if (typeof e == "object") if (Array.isArray(e)) {
8
- var n = e.length;
9
- for (r = 0; r < n; r++) e[r] && (t = ze(e[r])) && (o && (o += " "), o += t);
10
- } else for (t in e) e[t] && (o && (o += " "), o += t);
11
- return o;
8
+ var s = e.length;
9
+ for (o = 0; o < s; o++) e[o] && (t = ze(e[o])) && (r && (r += " "), r += t);
10
+ } else for (t in e) e[t] && (r && (r += " "), r += t);
11
+ return r;
12
12
  }
13
13
  function Se() {
14
- for (var e, r, t = 0, o = "", n = arguments.length; t < n; t++) (e = arguments[t]) && (r = ze(e)) && (o && (o += " "), o += r);
15
- return o;
14
+ for (var e, o, t = 0, r = "", s = arguments.length; t < s; t++) (e = arguments[t]) && (o = ze(e)) && (r && (r += " "), r += o);
15
+ return r;
16
16
  }
17
- const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, Ke = (e, r) => (t) => {
18
- var o;
19
- if (r?.variants == null) return ye(e, t?.class, t?.className);
20
- const { variants: n, defaultVariants: c } = r, a = Object.keys(n).map((d) => {
21
- const x = t?.[d], f = c?.[d];
17
+ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, Ke = (e, o) => (t) => {
18
+ var r;
19
+ if (o?.variants == null) return ye(e, t?.class, t?.className);
20
+ const { variants: s, defaultVariants: a } = o, n = Object.keys(s).map((d) => {
21
+ const x = t?.[d], h = a?.[d];
22
22
  if (x === null) return null;
23
- const b = xe(x) || xe(f);
24
- return n[d][b];
25
- }), u = t && Object.entries(t).reduce((d, x) => {
26
- let [f, b] = x;
27
- return b === void 0 || (d[f] = b), d;
28
- }, {}), s = r == null || (o = r.compoundVariants) === null || o === void 0 ? void 0 : o.reduce((d, x) => {
29
- let { class: f, className: b, ...y } = x;
30
- return Object.entries(y).every((z) => {
31
- let [C, N] = z;
23
+ const g = xe(x) || xe(h);
24
+ return s[d][g];
25
+ }), m = t && Object.entries(t).reduce((d, x) => {
26
+ let [h, g] = x;
27
+ return g === void 0 || (d[h] = g), d;
28
+ }, {}), l = o == null || (r = o.compoundVariants) === null || r === void 0 ? void 0 : r.reduce((d, x) => {
29
+ let { class: h, className: g, ...k } = x;
30
+ return Object.entries(k).every((z) => {
31
+ let [L, N] = z;
32
32
  return Array.isArray(N) ? N.includes({
33
- ...c,
34
- ...u
35
- }[C]) : {
36
- ...c,
37
- ...u
38
- }[C] === N;
33
+ ...a,
34
+ ...m
35
+ }[L]) : {
36
+ ...a,
37
+ ...m
38
+ }[L] === N;
39
39
  }) ? [
40
40
  ...d,
41
- f,
42
- b
41
+ h,
42
+ g
43
43
  ] : d;
44
44
  }, []);
45
- return ye(e, a, s, t?.class, t?.className);
46
- }, Xe = (e, r) => {
47
- const t = new Array(e.length + r.length);
48
- for (let o = 0; o < e.length; o++)
49
- t[o] = e[o];
50
- for (let o = 0; o < r.length; o++)
51
- t[e.length + o] = r[o];
45
+ return ye(e, n, l, t?.class, t?.className);
46
+ }, Xe = (e, o) => {
47
+ const t = new Array(e.length + o.length);
48
+ for (let r = 0; r < e.length; r++)
49
+ t[r] = e[r];
50
+ for (let r = 0; r < o.length; r++)
51
+ t[e.length + r] = o[r];
52
52
  return t;
53
- }, Je = (e, r) => ({
53
+ }, Je = (e, o) => ({
54
54
  classGroupId: e,
55
- validator: r
56
- }), Ae = (e = /* @__PURE__ */ new Map(), r = null, t) => ({
55
+ validator: o
56
+ }), Ae = (e = /* @__PURE__ */ new Map(), o = null, t) => ({
57
57
  nextPart: e,
58
- validators: r,
58
+ validators: o,
59
59
  classGroupId: t
60
60
  }), te = "-", ke = [], Qe = "arbitrary..", Ze = (e) => {
61
- const r = tt(e), {
61
+ const o = tt(e), {
62
62
  conflictingClassGroups: t,
63
- conflictingClassGroupModifiers: o
63
+ conflictingClassGroupModifiers: r
64
64
  } = e;
65
65
  return {
66
- getClassGroupId: (a) => {
67
- if (a.startsWith("[") && a.endsWith("]"))
68
- return et(a);
69
- const u = a.split(te), s = u[0] === "" && u.length > 1 ? 1 : 0;
70
- return Re(u, s, r);
66
+ getClassGroupId: (n) => {
67
+ if (n.startsWith("[") && n.endsWith("]"))
68
+ return et(n);
69
+ const m = n.split(te), l = m[0] === "" && m.length > 1 ? 1 : 0;
70
+ return Me(m, l, o);
71
71
  },
72
- getConflictingClassGroupIds: (a, u) => {
73
- if (u) {
74
- const s = o[a], d = t[a];
75
- return s ? d ? Xe(d, s) : s : d || ke;
72
+ getConflictingClassGroupIds: (n, m) => {
73
+ if (m) {
74
+ const l = r[n], d = t[n];
75
+ return l ? d ? Xe(d, l) : l : d || ke;
76
76
  }
77
- return t[a] || ke;
77
+ return t[n] || ke;
78
78
  }
79
79
  };
80
- }, Re = (e, r, t) => {
81
- if (e.length - r === 0)
80
+ }, Me = (e, o, t) => {
81
+ if (e.length - o === 0)
82
82
  return t.classGroupId;
83
- const n = e[r], c = t.nextPart.get(n);
84
- if (c) {
85
- const d = Re(e, r + 1, c);
83
+ const s = e[o], a = t.nextPart.get(s);
84
+ if (a) {
85
+ const d = Me(e, o + 1, a);
86
86
  if (d) return d;
87
87
  }
88
- const a = t.validators;
89
- if (a === null)
88
+ const n = t.validators;
89
+ if (n === null)
90
90
  return;
91
- const u = r === 0 ? e.join(te) : e.slice(r).join(te), s = a.length;
92
- for (let d = 0; d < s; d++) {
93
- const x = a[d];
94
- if (x.validator(u))
91
+ const m = o === 0 ? e.join(te) : e.slice(o).join(te), l = n.length;
92
+ for (let d = 0; d < l; d++) {
93
+ const x = n[d];
94
+ if (x.validator(m))
95
95
  return x.classGroupId;
96
96
  }
97
97
  }, et = (e) => e.slice(1, -1).indexOf(":") === -1 ? void 0 : (() => {
98
- const r = e.slice(1, -1), t = r.indexOf(":"), o = r.slice(0, t);
99
- return o ? Qe + o : void 0;
98
+ const o = e.slice(1, -1), t = o.indexOf(":"), r = o.slice(0, t);
99
+ return r ? Qe + r : void 0;
100
100
  })(), tt = (e) => {
101
101
  const {
102
- theme: r,
102
+ theme: o,
103
103
  classGroups: t
104
104
  } = e;
105
- return rt(t, r);
106
- }, rt = (e, r) => {
105
+ return rt(t, o);
106
+ }, rt = (e, o) => {
107
107
  const t = Ae();
108
- for (const o in e) {
109
- const n = e[o];
110
- ce(n, t, o, r);
108
+ for (const r in e) {
109
+ const s = e[r];
110
+ ce(s, t, r, o);
111
111
  }
112
112
  return t;
113
- }, ce = (e, r, t, o) => {
114
- const n = e.length;
115
- for (let c = 0; c < n; c++) {
116
- const a = e[c];
117
- ot(a, r, t, o);
113
+ }, ce = (e, o, t, r) => {
114
+ const s = e.length;
115
+ for (let a = 0; a < s; a++) {
116
+ const n = e[a];
117
+ ot(n, o, t, r);
118
118
  }
119
- }, ot = (e, r, t, o) => {
119
+ }, ot = (e, o, t, r) => {
120
120
  if (typeof e == "string") {
121
- at(e, r, t);
121
+ nt(e, o, t);
122
122
  return;
123
123
  }
124
124
  if (typeof e == "function") {
125
- nt(e, r, t, o);
125
+ st(e, o, t, r);
126
126
  return;
127
127
  }
128
- st(e, r, t, o);
129
- }, at = (e, r, t) => {
130
- const o = e === "" ? r : Me(r, e);
131
- o.classGroupId = t;
132
- }, nt = (e, r, t, o) => {
128
+ at(e, o, t, r);
129
+ }, nt = (e, o, t) => {
130
+ const r = e === "" ? o : Re(o, e);
131
+ r.classGroupId = t;
132
+ }, st = (e, o, t, r) => {
133
133
  if (lt(e)) {
134
- ce(e(o), r, t, o);
134
+ ce(e(r), o, t, r);
135
135
  return;
136
136
  }
137
- r.validators === null && (r.validators = []), r.validators.push(Je(t, e));
138
- }, st = (e, r, t, o) => {
139
- const n = Object.entries(e), c = n.length;
140
- for (let a = 0; a < c; a++) {
141
- const [u, s] = n[a];
142
- ce(s, Me(r, u), t, o);
137
+ o.validators === null && (o.validators = []), o.validators.push(Je(t, e));
138
+ }, at = (e, o, t, r) => {
139
+ const s = Object.entries(e), a = s.length;
140
+ for (let n = 0; n < a; n++) {
141
+ const [m, l] = s[n];
142
+ ce(l, Re(o, m), t, r);
143
143
  }
144
- }, Me = (e, r) => {
144
+ }, Re = (e, o) => {
145
145
  let t = e;
146
- const o = r.split(te), n = o.length;
147
- for (let c = 0; c < n; c++) {
148
- const a = o[c];
149
- let u = t.nextPart.get(a);
150
- u || (u = Ae(), t.nextPart.set(a, u)), t = u;
146
+ const r = o.split(te), s = r.length;
147
+ for (let a = 0; a < s; a++) {
148
+ const n = r[a];
149
+ let m = t.nextPart.get(n);
150
+ m || (m = Ae(), t.nextPart.set(n, m)), t = m;
151
151
  }
152
152
  return t;
153
153
  }, lt = (e) => "isThemeGetter" in e && e.isThemeGetter === !0, it = (e) => {
@@ -158,178 +158,178 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
158
158
  set: () => {
159
159
  }
160
160
  };
161
- let r = 0, t = /* @__PURE__ */ Object.create(null), o = /* @__PURE__ */ Object.create(null);
162
- const n = (c, a) => {
163
- t[c] = a, r++, r > e && (r = 0, o = t, t = /* @__PURE__ */ Object.create(null));
161
+ let o = 0, t = /* @__PURE__ */ Object.create(null), r = /* @__PURE__ */ Object.create(null);
162
+ const s = (a, n) => {
163
+ t[a] = n, o++, o > e && (o = 0, r = t, t = /* @__PURE__ */ Object.create(null));
164
164
  };
165
165
  return {
166
- get(c) {
167
- let a = t[c];
168
- if (a !== void 0)
169
- return a;
170
- if ((a = o[c]) !== void 0)
171
- return n(c, a), a;
166
+ get(a) {
167
+ let n = t[a];
168
+ if (n !== void 0)
169
+ return n;
170
+ if ((n = r[a]) !== void 0)
171
+ return s(a, n), n;
172
172
  },
173
- set(c, a) {
174
- c in t ? t[c] = a : n(c, a);
173
+ set(a, n) {
174
+ a in t ? t[a] = n : s(a, n);
175
175
  }
176
176
  };
177
- }, ie = "!", we = ":", ct = [], ve = (e, r, t, o, n) => ({
177
+ }, ie = "!", we = ":", ct = [], ve = (e, o, t, r, s) => ({
178
178
  modifiers: e,
179
- hasImportantModifier: r,
179
+ hasImportantModifier: o,
180
180
  baseClassName: t,
181
- maybePostfixModifierPosition: o,
182
- isExternal: n
181
+ maybePostfixModifierPosition: r,
182
+ isExternal: s
183
183
  }), dt = (e) => {
184
184
  const {
185
- prefix: r,
185
+ prefix: o,
186
186
  experimentalParseClassName: t
187
187
  } = e;
188
- let o = (n) => {
189
- const c = [];
190
- let a = 0, u = 0, s = 0, d;
191
- const x = n.length;
192
- for (let C = 0; C < x; C++) {
193
- const N = n[C];
194
- if (a === 0 && u === 0) {
188
+ let r = (s) => {
189
+ const a = [];
190
+ let n = 0, m = 0, l = 0, d;
191
+ const x = s.length;
192
+ for (let L = 0; L < x; L++) {
193
+ const N = s[L];
194
+ if (n === 0 && m === 0) {
195
195
  if (N === we) {
196
- c.push(n.slice(s, C)), s = C + 1;
196
+ a.push(s.slice(l, L)), l = L + 1;
197
197
  continue;
198
198
  }
199
199
  if (N === "/") {
200
- d = C;
200
+ d = L;
201
201
  continue;
202
202
  }
203
203
  }
204
- N === "[" ? a++ : N === "]" ? a-- : N === "(" ? u++ : N === ")" && u--;
204
+ N === "[" ? n++ : N === "]" ? n-- : N === "(" ? m++ : N === ")" && m--;
205
205
  }
206
- const f = c.length === 0 ? n : n.slice(s);
207
- let b = f, y = !1;
208
- f.endsWith(ie) ? (b = f.slice(0, -1), y = !0) : (
206
+ const h = a.length === 0 ? s : s.slice(l);
207
+ let g = h, k = !1;
208
+ h.endsWith(ie) ? (g = h.slice(0, -1), k = !0) : (
209
209
  /**
210
210
  * In Tailwind CSS v3 the important modifier was at the start of the base class name. This is still supported for legacy reasons.
211
211
  * @see https://github.com/dcastil/tailwind-merge/issues/513#issuecomment-2614029864
212
212
  */
213
- f.startsWith(ie) && (b = f.slice(1), y = !0)
213
+ h.startsWith(ie) && (g = h.slice(1), k = !0)
214
214
  );
215
- const z = d && d > s ? d - s : void 0;
216
- return ve(c, y, b, z);
215
+ const z = d && d > l ? d - l : void 0;
216
+ return ve(a, k, g, z);
217
217
  };
218
- if (r) {
219
- const n = r + we, c = o;
220
- o = (a) => a.startsWith(n) ? c(a.slice(n.length)) : ve(ct, !1, a, void 0, !0);
218
+ if (o) {
219
+ const s = o + we, a = r;
220
+ r = (n) => n.startsWith(s) ? a(n.slice(s.length)) : ve(ct, !1, n, void 0, !0);
221
221
  }
222
222
  if (t) {
223
- const n = o;
224
- o = (c) => t({
225
- className: c,
226
- parseClassName: n
223
+ const s = r;
224
+ r = (a) => t({
225
+ className: a,
226
+ parseClassName: s
227
227
  });
228
228
  }
229
- return o;
229
+ return r;
230
230
  }, mt = (e) => {
231
- const r = /* @__PURE__ */ new Map();
232
- return e.orderSensitiveModifiers.forEach((t, o) => {
233
- r.set(t, 1e6 + o);
231
+ const o = /* @__PURE__ */ new Map();
232
+ return e.orderSensitiveModifiers.forEach((t, r) => {
233
+ o.set(t, 1e6 + r);
234
234
  }), (t) => {
235
- const o = [];
236
- let n = [];
237
- for (let c = 0; c < t.length; c++) {
238
- const a = t[c], u = a[0] === "[", s = r.has(a);
239
- u || s ? (n.length > 0 && (n.sort(), o.push(...n), n = []), o.push(a)) : n.push(a);
235
+ const r = [];
236
+ let s = [];
237
+ for (let a = 0; a < t.length; a++) {
238
+ const n = t[a], m = n[0] === "[", l = o.has(n);
239
+ m || l ? (s.length > 0 && (s.sort(), r.push(...s), s = []), r.push(n)) : s.push(n);
240
240
  }
241
- return n.length > 0 && (n.sort(), o.push(...n)), o;
241
+ return s.length > 0 && (s.sort(), r.push(...s)), r;
242
242
  };
243
243
  }, ut = (e) => ({
244
244
  cache: it(e.cacheSize),
245
245
  parseClassName: dt(e),
246
246
  sortModifiers: mt(e),
247
247
  ...Ze(e)
248
- }), gt = /\s+/, pt = (e, r) => {
248
+ }), gt = /\s+/, bt = (e, o) => {
249
249
  const {
250
250
  parseClassName: t,
251
- getClassGroupId: o,
252
- getConflictingClassGroupIds: n,
253
- sortModifiers: c
254
- } = r, a = [], u = e.trim().split(gt);
255
- let s = "";
256
- for (let d = u.length - 1; d >= 0; d -= 1) {
257
- const x = u[d], {
258
- isExternal: f,
259
- modifiers: b,
260
- hasImportantModifier: y,
251
+ getClassGroupId: r,
252
+ getConflictingClassGroupIds: s,
253
+ sortModifiers: a
254
+ } = o, n = [], m = e.trim().split(gt);
255
+ let l = "";
256
+ for (let d = m.length - 1; d >= 0; d -= 1) {
257
+ const x = m[d], {
258
+ isExternal: h,
259
+ modifiers: g,
260
+ hasImportantModifier: k,
261
261
  baseClassName: z,
262
- maybePostfixModifierPosition: C
262
+ maybePostfixModifierPosition: L
263
263
  } = t(x);
264
- if (f) {
265
- s = x + (s.length > 0 ? " " + s : s);
264
+ if (h) {
265
+ l = x + (l.length > 0 ? " " + l : l);
266
266
  continue;
267
267
  }
268
- let N = !!C, I = o(N ? z.substring(0, C) : z);
268
+ let N = !!L, I = r(N ? z.substring(0, L) : z);
269
269
  if (!I) {
270
270
  if (!N) {
271
- s = x + (s.length > 0 ? " " + s : s);
271
+ l = x + (l.length > 0 ? " " + l : l);
272
272
  continue;
273
273
  }
274
- if (I = o(z), !I) {
275
- s = x + (s.length > 0 ? " " + s : s);
274
+ if (I = r(z), !I) {
275
+ l = x + (l.length > 0 ? " " + l : l);
276
276
  continue;
277
277
  }
278
278
  N = !1;
279
279
  }
280
- const q = b.length === 0 ? "" : b.length === 1 ? b[0] : c(b).join(":"), _ = y ? q + ie : q, O = _ + I;
281
- if (a.indexOf(O) > -1)
280
+ const q = g.length === 0 ? "" : g.length === 1 ? g[0] : a(g).join(":"), _ = k ? q + ie : q, O = _ + I;
281
+ if (n.indexOf(O) > -1)
282
282
  continue;
283
- a.push(O);
284
- const U = n(I, N);
285
- for (let j = 0; j < U.length; ++j) {
286
- const $ = U[j];
287
- a.push(_ + $);
283
+ n.push(O);
284
+ const $ = s(I, N);
285
+ for (let j = 0; j < $.length; ++j) {
286
+ const B = $[j];
287
+ n.push(_ + B);
288
288
  }
289
- s = x + (s.length > 0 ? " " + s : s);
289
+ l = x + (l.length > 0 ? " " + l : l);
290
290
  }
291
+ return l;
292
+ }, pt = (...e) => {
293
+ let o = 0, t, r, s = "";
294
+ for (; o < e.length; )
295
+ (t = e[o++]) && (r = Te(t)) && (s && (s += " "), s += r);
291
296
  return s;
292
- }, bt = (...e) => {
293
- let r = 0, t, o, n = "";
294
- for (; r < e.length; )
295
- (t = e[r++]) && (o = Pe(t)) && (n && (n += " "), n += o);
296
- return n;
297
- }, Pe = (e) => {
297
+ }, Te = (e) => {
298
298
  if (typeof e == "string")
299
299
  return e;
300
- let r, t = "";
301
- for (let o = 0; o < e.length; o++)
302
- e[o] && (r = Pe(e[o])) && (t && (t += " "), t += r);
300
+ let o, t = "";
301
+ for (let r = 0; r < e.length; r++)
302
+ e[r] && (o = Te(e[r])) && (t && (t += " "), t += o);
303
303
  return t;
304
- }, ft = (e, ...r) => {
305
- let t, o, n, c;
306
- const a = (s) => {
307
- const d = r.reduce((x, f) => f(x), e());
308
- return t = ut(d), o = t.cache.get, n = t.cache.set, c = u, u(s);
309
- }, u = (s) => {
310
- const d = o(s);
304
+ }, ft = (e, ...o) => {
305
+ let t, r, s, a;
306
+ const n = (l) => {
307
+ const d = o.reduce((x, h) => h(x), e());
308
+ return t = ut(d), r = t.cache.get, s = t.cache.set, a = m, m(l);
309
+ }, m = (l) => {
310
+ const d = r(l);
311
311
  if (d)
312
312
  return d;
313
- const x = pt(s, t);
314
- return n(s, x), x;
313
+ const x = bt(l, t);
314
+ return s(l, x), x;
315
315
  };
316
- return c = a, (...s) => c(bt(...s));
316
+ return a = n, (...l) => a(pt(...l));
317
317
  }, ht = [], w = (e) => {
318
- const r = (t) => t[e] || ht;
319
- return r.isThemeGetter = !0, r;
320
- }, Te = /^\[(?:(\w[\w-]*):)?(.+)\]$/i, Ie = /^\((?:(\w[\w-]*):)?(.+)\)$/i, xt = /^\d+\/\d+$/, yt = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/, kt = /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/, wt = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/, vt = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/, Nt = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/, W = (e) => xt.test(e), h = (e) => !!e && !Number.isNaN(Number(e)), P = (e) => !!e && Number.isInteger(Number(e)), se = (e) => e.endsWith("%") && h(e.slice(0, -1)), M = (e) => yt.test(e), Ct = () => !0, Lt = (e) => (
318
+ const o = (t) => t[e] || ht;
319
+ return o.isThemeGetter = !0, o;
320
+ }, Pe = /^\[(?:(\w[\w-]*):)?(.+)\]$/i, Ie = /^\((?:(\w[\w-]*):)?(.+)\)$/i, xt = /^\d+\/\d+$/, yt = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/, kt = /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/, wt = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/, vt = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/, Nt = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/, U = (e) => xt.test(e), f = (e) => !!e && !Number.isNaN(Number(e)), T = (e) => !!e && Number.isInteger(Number(e)), ae = (e) => e.endsWith("%") && f(e.slice(0, -1)), R = (e) => yt.test(e), Lt = () => !0, Ct = (e) => (
321
321
  // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.
322
322
  // For example, `hsl(0 0% 0%)` would be classified as a length without this check.
323
323
  // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.
324
324
  kt.test(e) && !wt.test(e)
325
- ), je = () => !1, zt = (e) => vt.test(e), St = (e) => Nt.test(e), At = (e) => !l(e) && !i(e), Rt = (e) => D(e, Oe, je), l = (e) => Te.test(e), V = (e) => D(e, Ue, Lt), le = (e) => D(e, jt, h), Ne = (e) => D(e, Ge, je), Mt = (e) => D(e, Ve, St), Z = (e) => D(e, Ee, zt), i = (e) => Ie.test(e), B = (e) => F(e, Ue), Pt = (e) => F(e, Gt), Ce = (e) => F(e, Ge), Tt = (e) => F(e, Oe), It = (e) => F(e, Ve), ee = (e) => F(e, Ee, !0), D = (e, r, t) => {
326
- const o = Te.exec(e);
327
- return o ? o[1] ? r(o[1]) : t(o[2]) : !1;
328
- }, F = (e, r, t = !1) => {
329
- const o = Ie.exec(e);
330
- return o ? o[1] ? r(o[1]) : t : !1;
331
- }, Ge = (e) => e === "position" || e === "percentage", Ve = (e) => e === "image" || e === "url", Oe = (e) => e === "length" || e === "size" || e === "bg-size", Ue = (e) => e === "length", jt = (e) => e === "number", Gt = (e) => e === "family-name", Ee = (e) => e === "shadow", Vt = () => {
332
- const e = w("color"), r = w("font"), t = w("text"), o = w("font-weight"), n = w("tracking"), c = w("leading"), a = w("breakpoint"), u = w("container"), s = w("spacing"), d = w("radius"), x = w("shadow"), f = w("inset-shadow"), b = w("text-shadow"), y = w("drop-shadow"), z = w("blur"), C = w("perspective"), N = w("aspect"), I = w("ease"), q = w("animate"), _ = () => ["auto", "avoid", "all", "avoid-page", "page", "left", "right", "column"], O = () => [
325
+ ), je = () => !1, zt = (e) => vt.test(e), St = (e) => Nt.test(e), At = (e) => !i(e) && !c(e), Mt = (e) => W(e, Oe, je), i = (e) => Pe.test(e), V = (e) => W(e, $e, Ct), le = (e) => W(e, jt, f), Ne = (e) => W(e, Ge, je), Rt = (e) => W(e, Ve, St), Z = (e) => W(e, De, zt), c = (e) => Ie.test(e), H = (e) => F(e, $e), Tt = (e) => F(e, Gt), Le = (e) => F(e, Ge), Pt = (e) => F(e, Oe), It = (e) => F(e, Ve), ee = (e) => F(e, De, !0), W = (e, o, t) => {
326
+ const r = Pe.exec(e);
327
+ return r ? r[1] ? o(r[1]) : t(r[2]) : !1;
328
+ }, F = (e, o, t = !1) => {
329
+ const r = Ie.exec(e);
330
+ return r ? r[1] ? o(r[1]) : t : !1;
331
+ }, Ge = (e) => e === "position" || e === "percentage", Ve = (e) => e === "image" || e === "url", Oe = (e) => e === "length" || e === "size" || e === "bg-size", $e = (e) => e === "length", jt = (e) => e === "number", Gt = (e) => e === "family-name", De = (e) => e === "shadow", Vt = () => {
332
+ const e = w("color"), o = w("font"), t = w("text"), r = w("font-weight"), s = w("tracking"), a = w("leading"), n = w("breakpoint"), m = w("container"), l = w("spacing"), d = w("radius"), x = w("shadow"), h = w("inset-shadow"), g = w("text-shadow"), k = w("drop-shadow"), z = w("blur"), L = w("perspective"), N = w("aspect"), I = w("ease"), q = w("animate"), _ = () => ["auto", "avoid", "all", "avoid-page", "page", "left", "right", "column"], O = () => [
333
333
  "center",
334
334
  "top",
335
335
  "bottom",
@@ -347,51 +347,51 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
347
347
  "bottom-left",
348
348
  // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
349
349
  "left-bottom"
350
- ], U = () => [...O(), i, l], j = () => ["auto", "hidden", "clip", "visible", "scroll"], $ = () => ["auto", "contain", "none"], p = () => [i, l, s], A = () => [W, "full", "auto", ...p()], de = () => [P, "none", "subgrid", i, l], me = () => ["auto", {
351
- span: ["full", P, i, l]
352
- }, P, i, l], Y = () => [P, "auto", i, l], ue = () => ["auto", "min", "max", "fr", i, l], re = () => ["start", "end", "center", "between", "around", "evenly", "stretch", "baseline", "center-safe", "end-safe"], E = () => ["start", "end", "center", "stretch", "center-safe", "end-safe"], R = () => ["auto", ...p()], G = () => [W, "auto", "full", "dvw", "dvh", "lvw", "lvh", "svw", "svh", "min", "max", "fit", ...p()], m = () => [e, i, l], ge = () => [...O(), Ce, Ne, {
353
- position: [i, l]
354
- }], pe = () => ["no-repeat", {
350
+ ], $ = () => [...O(), c, i], j = () => ["auto", "hidden", "clip", "visible", "scroll"], B = () => ["auto", "contain", "none"], p = () => [c, i, l], A = () => [U, "full", "auto", ...p()], de = () => [T, "none", "subgrid", c, i], me = () => ["auto", {
351
+ span: ["full", T, c, i]
352
+ }, T, c, i], Y = () => [T, "auto", c, i], ue = () => ["auto", "min", "max", "fr", c, i], re = () => ["start", "end", "center", "between", "around", "evenly", "stretch", "baseline", "center-safe", "end-safe"], D = () => ["start", "end", "center", "stretch", "center-safe", "end-safe"], M = () => ["auto", ...p()], G = () => [U, "auto", "full", "dvw", "dvh", "lvw", "lvh", "svw", "svh", "min", "max", "fit", ...p()], u = () => [e, c, i], ge = () => [...O(), Le, Ne, {
353
+ position: [c, i]
354
+ }], be = () => ["no-repeat", {
355
355
  repeat: ["", "x", "y", "space", "round"]
356
- }], be = () => ["auto", "cover", "contain", Tt, Rt, {
357
- size: [i, l]
358
- }], oe = () => [se, B, V], L = () => [
356
+ }], pe = () => ["auto", "cover", "contain", Pt, Mt, {
357
+ size: [c, i]
358
+ }], oe = () => [ae, H, V], C = () => [
359
359
  // Deprecated since Tailwind CSS v4.0.0
360
360
  "",
361
361
  "none",
362
362
  "full",
363
363
  d,
364
- i,
365
- l
366
- ], S = () => ["", h, B, V], K = () => ["solid", "dashed", "dotted", "double"], fe = () => ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"], v = () => [h, se, Ce, Ne], he = () => [
364
+ c,
365
+ i
366
+ ], S = () => ["", f, H, V], K = () => ["solid", "dashed", "dotted", "double"], fe = () => ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"], v = () => [f, ae, Le, Ne], he = () => [
367
367
  // Deprecated since Tailwind CSS v4.0.0
368
368
  "",
369
369
  "none",
370
370
  z,
371
- i,
372
- l
373
- ], X = () => ["none", h, i, l], J = () => ["none", h, i, l], ae = () => [h, i, l], Q = () => [W, "full", ...p()];
371
+ c,
372
+ i
373
+ ], X = () => ["none", f, c, i], J = () => ["none", f, c, i], ne = () => [f, c, i], Q = () => [U, "full", ...p()];
374
374
  return {
375
375
  cacheSize: 500,
376
376
  theme: {
377
377
  animate: ["spin", "ping", "pulse", "bounce"],
378
378
  aspect: ["video"],
379
- blur: [M],
380
- breakpoint: [M],
381
- color: [Ct],
382
- container: [M],
383
- "drop-shadow": [M],
379
+ blur: [R],
380
+ breakpoint: [R],
381
+ color: [Lt],
382
+ container: [R],
383
+ "drop-shadow": [R],
384
384
  ease: ["in", "out", "in-out"],
385
385
  font: [At],
386
386
  "font-weight": ["thin", "extralight", "light", "normal", "medium", "semibold", "bold", "extrabold", "black"],
387
- "inset-shadow": [M],
387
+ "inset-shadow": [R],
388
388
  leading: ["none", "tight", "snug", "normal", "relaxed", "loose"],
389
389
  perspective: ["dramatic", "near", "normal", "midrange", "distant", "none"],
390
- radius: [M],
391
- shadow: [M],
392
- spacing: ["px", h],
393
- text: [M],
394
- "text-shadow": [M],
390
+ radius: [R],
391
+ shadow: [R],
392
+ spacing: ["px", f],
393
+ text: [R],
394
+ "text-shadow": [R],
395
395
  tracking: ["tighter", "tight", "normal", "wide", "wider", "widest"]
396
396
  },
397
397
  classGroups: {
@@ -403,7 +403,7 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
403
403
  * @see https://tailwindcss.com/docs/aspect-ratio
404
404
  */
405
405
  aspect: [{
406
- aspect: ["auto", "square", W, l, i, N]
406
+ aspect: ["auto", "square", U, i, c, N]
407
407
  }],
408
408
  /**
409
409
  * Container
@@ -416,7 +416,7 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
416
416
  * @see https://tailwindcss.com/docs/columns
417
417
  */
418
418
  columns: [{
419
- columns: [h, l, i, u]
419
+ columns: [f, i, c, m]
420
420
  }],
421
421
  /**
422
422
  * Break After
@@ -494,7 +494,7 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
494
494
  * @see https://tailwindcss.com/docs/object-position
495
495
  */
496
496
  "object-position": [{
497
- object: U()
497
+ object: $()
498
498
  }],
499
499
  /**
500
500
  * Overflow
@@ -522,21 +522,21 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
522
522
  * @see https://tailwindcss.com/docs/overscroll-behavior
523
523
  */
524
524
  overscroll: [{
525
- overscroll: $()
525
+ overscroll: B()
526
526
  }],
527
527
  /**
528
528
  * Overscroll Behavior X
529
529
  * @see https://tailwindcss.com/docs/overscroll-behavior
530
530
  */
531
531
  "overscroll-x": [{
532
- "overscroll-x": $()
532
+ "overscroll-x": B()
533
533
  }],
534
534
  /**
535
535
  * Overscroll Behavior Y
536
536
  * @see https://tailwindcss.com/docs/overscroll-behavior
537
537
  */
538
538
  "overscroll-y": [{
539
- "overscroll-y": $()
539
+ "overscroll-y": B()
540
540
  }],
541
541
  /**
542
542
  * Position
@@ -616,7 +616,7 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
616
616
  * @see https://tailwindcss.com/docs/z-index
617
617
  */
618
618
  z: [{
619
- z: [P, "auto", i, l]
619
+ z: [T, "auto", c, i]
620
620
  }],
621
621
  // ------------------------
622
622
  // --- Flexbox and Grid ---
@@ -626,7 +626,7 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
626
626
  * @see https://tailwindcss.com/docs/flex-basis
627
627
  */
628
628
  basis: [{
629
- basis: [W, "full", "auto", u, ...p()]
629
+ basis: [U, "full", "auto", m, ...p()]
630
630
  }],
631
631
  /**
632
632
  * Flex Direction
@@ -647,28 +647,28 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
647
647
  * @see https://tailwindcss.com/docs/flex
648
648
  */
649
649
  flex: [{
650
- flex: [h, W, "auto", "initial", "none", l]
650
+ flex: [f, U, "auto", "initial", "none", i]
651
651
  }],
652
652
  /**
653
653
  * Flex Grow
654
654
  * @see https://tailwindcss.com/docs/flex-grow
655
655
  */
656
656
  grow: [{
657
- grow: ["", h, i, l]
657
+ grow: ["", f, c, i]
658
658
  }],
659
659
  /**
660
660
  * Flex Shrink
661
661
  * @see https://tailwindcss.com/docs/flex-shrink
662
662
  */
663
663
  shrink: [{
664
- shrink: ["", h, i, l]
664
+ shrink: ["", f, c, i]
665
665
  }],
666
666
  /**
667
667
  * Order
668
668
  * @see https://tailwindcss.com/docs/order
669
669
  */
670
670
  order: [{
671
- order: [P, "first", "last", "none", i, l]
671
+ order: [T, "first", "last", "none", c, i]
672
672
  }],
673
673
  /**
674
674
  * Grid Template Columns
@@ -780,14 +780,14 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
780
780
  * @see https://tailwindcss.com/docs/justify-items
781
781
  */
782
782
  "justify-items": [{
783
- "justify-items": [...E(), "normal"]
783
+ "justify-items": [...D(), "normal"]
784
784
  }],
785
785
  /**
786
786
  * Justify Self
787
787
  * @see https://tailwindcss.com/docs/justify-self
788
788
  */
789
789
  "justify-self": [{
790
- "justify-self": ["auto", ...E()]
790
+ "justify-self": ["auto", ...D()]
791
791
  }],
792
792
  /**
793
793
  * Align Content
@@ -801,7 +801,7 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
801
801
  * @see https://tailwindcss.com/docs/align-items
802
802
  */
803
803
  "align-items": [{
804
- items: [...E(), {
804
+ items: [...D(), {
805
805
  baseline: ["", "last"]
806
806
  }]
807
807
  }],
@@ -810,7 +810,7 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
810
810
  * @see https://tailwindcss.com/docs/align-self
811
811
  */
812
812
  "align-self": [{
813
- self: ["auto", ...E(), {
813
+ self: ["auto", ...D(), {
814
814
  baseline: ["", "last"]
815
815
  }]
816
816
  }],
@@ -826,14 +826,14 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
826
826
  * @see https://tailwindcss.com/docs/place-items
827
827
  */
828
828
  "place-items": [{
829
- "place-items": [...E(), "baseline"]
829
+ "place-items": [...D(), "baseline"]
830
830
  }],
831
831
  /**
832
832
  * Place Self
833
833
  * @see https://tailwindcss.com/docs/place-self
834
834
  */
835
835
  "place-self": [{
836
- "place-self": ["auto", ...E()]
836
+ "place-self": ["auto", ...D()]
837
837
  }],
838
838
  // Spacing
839
839
  /**
@@ -904,63 +904,63 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
904
904
  * @see https://tailwindcss.com/docs/margin
905
905
  */
906
906
  m: [{
907
- m: R()
907
+ m: M()
908
908
  }],
909
909
  /**
910
910
  * Margin X
911
911
  * @see https://tailwindcss.com/docs/margin
912
912
  */
913
913
  mx: [{
914
- mx: R()
914
+ mx: M()
915
915
  }],
916
916
  /**
917
917
  * Margin Y
918
918
  * @see https://tailwindcss.com/docs/margin
919
919
  */
920
920
  my: [{
921
- my: R()
921
+ my: M()
922
922
  }],
923
923
  /**
924
924
  * Margin Start
925
925
  * @see https://tailwindcss.com/docs/margin
926
926
  */
927
927
  ms: [{
928
- ms: R()
928
+ ms: M()
929
929
  }],
930
930
  /**
931
931
  * Margin End
932
932
  * @see https://tailwindcss.com/docs/margin
933
933
  */
934
934
  me: [{
935
- me: R()
935
+ me: M()
936
936
  }],
937
937
  /**
938
938
  * Margin Top
939
939
  * @see https://tailwindcss.com/docs/margin
940
940
  */
941
941
  mt: [{
942
- mt: R()
942
+ mt: M()
943
943
  }],
944
944
  /**
945
945
  * Margin Right
946
946
  * @see https://tailwindcss.com/docs/margin
947
947
  */
948
948
  mr: [{
949
- mr: R()
949
+ mr: M()
950
950
  }],
951
951
  /**
952
952
  * Margin Bottom
953
953
  * @see https://tailwindcss.com/docs/margin
954
954
  */
955
955
  mb: [{
956
- mb: R()
956
+ mb: M()
957
957
  }],
958
958
  /**
959
959
  * Margin Left
960
960
  * @see https://tailwindcss.com/docs/margin
961
961
  */
962
962
  ml: [{
963
- ml: R()
963
+ ml: M()
964
964
  }],
965
965
  /**
966
966
  * Space Between X
@@ -1001,7 +1001,7 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
1001
1001
  * @see https://tailwindcss.com/docs/width
1002
1002
  */
1003
1003
  w: [{
1004
- w: [u, "screen", ...G()]
1004
+ w: [m, "screen", ...G()]
1005
1005
  }],
1006
1006
  /**
1007
1007
  * Min-Width
@@ -1009,7 +1009,7 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
1009
1009
  */
1010
1010
  "min-w": [{
1011
1011
  "min-w": [
1012
- u,
1012
+ m,
1013
1013
  "screen",
1014
1014
  /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
1015
1015
  "none",
@@ -1022,14 +1022,14 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
1022
1022
  */
1023
1023
  "max-w": [{
1024
1024
  "max-w": [
1025
- u,
1025
+ m,
1026
1026
  "screen",
1027
1027
  "none",
1028
1028
  /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
1029
1029
  "prose",
1030
1030
  /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
1031
1031
  {
1032
- screen: [a]
1032
+ screen: [n]
1033
1033
  },
1034
1034
  ...G()
1035
1035
  ]
@@ -1063,7 +1063,7 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
1063
1063
  * @see https://tailwindcss.com/docs/font-size
1064
1064
  */
1065
1065
  "font-size": [{
1066
- text: ["base", t, B, V]
1066
+ text: ["base", t, H, V]
1067
1067
  }],
1068
1068
  /**
1069
1069
  * Font Smoothing
@@ -1080,21 +1080,21 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
1080
1080
  * @see https://tailwindcss.com/docs/font-weight
1081
1081
  */
1082
1082
  "font-weight": [{
1083
- font: [o, i, le]
1083
+ font: [r, c, le]
1084
1084
  }],
1085
1085
  /**
1086
1086
  * Font Stretch
1087
1087
  * @see https://tailwindcss.com/docs/font-stretch
1088
1088
  */
1089
1089
  "font-stretch": [{
1090
- "font-stretch": ["ultra-condensed", "extra-condensed", "condensed", "semi-condensed", "normal", "semi-expanded", "expanded", "extra-expanded", "ultra-expanded", se, l]
1090
+ "font-stretch": ["ultra-condensed", "extra-condensed", "condensed", "semi-condensed", "normal", "semi-expanded", "expanded", "extra-expanded", "ultra-expanded", ae, i]
1091
1091
  }],
1092
1092
  /**
1093
1093
  * Font Family
1094
1094
  * @see https://tailwindcss.com/docs/font-family
1095
1095
  */
1096
1096
  "font-family": [{
1097
- font: [Pt, l, r]
1097
+ font: [Tt, i, o]
1098
1098
  }],
1099
1099
  /**
1100
1100
  * Font Variant Numeric
@@ -1131,14 +1131,14 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
1131
1131
  * @see https://tailwindcss.com/docs/letter-spacing
1132
1132
  */
1133
1133
  tracking: [{
1134
- tracking: [n, i, l]
1134
+ tracking: [s, c, i]
1135
1135
  }],
1136
1136
  /**
1137
1137
  * Line Clamp
1138
1138
  * @see https://tailwindcss.com/docs/line-clamp
1139
1139
  */
1140
1140
  "line-clamp": [{
1141
- "line-clamp": [h, "none", i, le]
1141
+ "line-clamp": [f, "none", c, le]
1142
1142
  }],
1143
1143
  /**
1144
1144
  * Line Height
@@ -1147,7 +1147,7 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
1147
1147
  leading: [{
1148
1148
  leading: [
1149
1149
  /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
1150
- c,
1150
+ a,
1151
1151
  ...p()
1152
1152
  ]
1153
1153
  }],
@@ -1156,7 +1156,7 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
1156
1156
  * @see https://tailwindcss.com/docs/list-style-image
1157
1157
  */
1158
1158
  "list-image": [{
1159
- "list-image": ["none", i, l]
1159
+ "list-image": ["none", c, i]
1160
1160
  }],
1161
1161
  /**
1162
1162
  * List Style Position
@@ -1170,7 +1170,7 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
1170
1170
  * @see https://tailwindcss.com/docs/list-style-type
1171
1171
  */
1172
1172
  "list-style-type": [{
1173
- list: ["disc", "decimal", "none", i, l]
1173
+ list: ["disc", "decimal", "none", c, i]
1174
1174
  }],
1175
1175
  /**
1176
1176
  * Text Alignment
@@ -1185,14 +1185,14 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
1185
1185
  * @see https://v3.tailwindcss.com/docs/placeholder-color
1186
1186
  */
1187
1187
  "placeholder-color": [{
1188
- placeholder: m()
1188
+ placeholder: u()
1189
1189
  }],
1190
1190
  /**
1191
1191
  * Text Color
1192
1192
  * @see https://tailwindcss.com/docs/text-color
1193
1193
  */
1194
1194
  "text-color": [{
1195
- text: m()
1195
+ text: u()
1196
1196
  }],
1197
1197
  /**
1198
1198
  * Text Decoration
@@ -1211,21 +1211,21 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
1211
1211
  * @see https://tailwindcss.com/docs/text-decoration-thickness
1212
1212
  */
1213
1213
  "text-decoration-thickness": [{
1214
- decoration: [h, "from-font", "auto", i, V]
1214
+ decoration: [f, "from-font", "auto", c, V]
1215
1215
  }],
1216
1216
  /**
1217
1217
  * Text Decoration Color
1218
1218
  * @see https://tailwindcss.com/docs/text-decoration-color
1219
1219
  */
1220
1220
  "text-decoration-color": [{
1221
- decoration: m()
1221
+ decoration: u()
1222
1222
  }],
1223
1223
  /**
1224
1224
  * Text Underline Offset
1225
1225
  * @see https://tailwindcss.com/docs/text-underline-offset
1226
1226
  */
1227
1227
  "underline-offset": [{
1228
- "underline-offset": [h, "auto", i, l]
1228
+ "underline-offset": [f, "auto", c, i]
1229
1229
  }],
1230
1230
  /**
1231
1231
  * Text Transform
@@ -1256,7 +1256,7 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
1256
1256
  * @see https://tailwindcss.com/docs/vertical-align
1257
1257
  */
1258
1258
  "vertical-align": [{
1259
- align: ["baseline", "top", "middle", "bottom", "text-top", "text-bottom", "sub", "super", i, l]
1259
+ align: ["baseline", "top", "middle", "bottom", "text-top", "text-bottom", "sub", "super", c, i]
1260
1260
  }],
1261
1261
  /**
1262
1262
  * Whitespace
@@ -1291,7 +1291,7 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
1291
1291
  * @see https://tailwindcss.com/docs/content
1292
1292
  */
1293
1293
  content: [{
1294
- content: ["none", i, l]
1294
+ content: ["none", c, i]
1295
1295
  }],
1296
1296
  // -------------------
1297
1297
  // --- Backgrounds ---
@@ -1329,14 +1329,14 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
1329
1329
  * @see https://tailwindcss.com/docs/background-repeat
1330
1330
  */
1331
1331
  "bg-repeat": [{
1332
- bg: pe()
1332
+ bg: be()
1333
1333
  }],
1334
1334
  /**
1335
1335
  * Background Size
1336
1336
  * @see https://tailwindcss.com/docs/background-size
1337
1337
  */
1338
1338
  "bg-size": [{
1339
- bg: be()
1339
+ bg: pe()
1340
1340
  }],
1341
1341
  /**
1342
1342
  * Background Image
@@ -1346,17 +1346,17 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
1346
1346
  bg: ["none", {
1347
1347
  linear: [{
1348
1348
  to: ["t", "tr", "r", "br", "b", "bl", "l", "tl"]
1349
- }, P, i, l],
1350
- radial: ["", i, l],
1351
- conic: [P, i, l]
1352
- }, It, Mt]
1349
+ }, T, c, i],
1350
+ radial: ["", c, i],
1351
+ conic: [T, c, i]
1352
+ }, It, Rt]
1353
1353
  }],
1354
1354
  /**
1355
1355
  * Background Color
1356
1356
  * @see https://tailwindcss.com/docs/background-color
1357
1357
  */
1358
1358
  "bg-color": [{
1359
- bg: m()
1359
+ bg: u()
1360
1360
  }],
1361
1361
  /**
1362
1362
  * Gradient Color Stops From Position
@@ -1384,21 +1384,21 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
1384
1384
  * @see https://tailwindcss.com/docs/gradient-color-stops
1385
1385
  */
1386
1386
  "gradient-from": [{
1387
- from: m()
1387
+ from: u()
1388
1388
  }],
1389
1389
  /**
1390
1390
  * Gradient Color Stops Via
1391
1391
  * @see https://tailwindcss.com/docs/gradient-color-stops
1392
1392
  */
1393
1393
  "gradient-via": [{
1394
- via: m()
1394
+ via: u()
1395
1395
  }],
1396
1396
  /**
1397
1397
  * Gradient Color Stops To
1398
1398
  * @see https://tailwindcss.com/docs/gradient-color-stops
1399
1399
  */
1400
1400
  "gradient-to": [{
1401
- to: m()
1401
+ to: u()
1402
1402
  }],
1403
1403
  // ---------------
1404
1404
  // --- Borders ---
@@ -1408,105 +1408,105 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
1408
1408
  * @see https://tailwindcss.com/docs/border-radius
1409
1409
  */
1410
1410
  rounded: [{
1411
- rounded: L()
1411
+ rounded: C()
1412
1412
  }],
1413
1413
  /**
1414
1414
  * Border Radius Start
1415
1415
  * @see https://tailwindcss.com/docs/border-radius
1416
1416
  */
1417
1417
  "rounded-s": [{
1418
- "rounded-s": L()
1418
+ "rounded-s": C()
1419
1419
  }],
1420
1420
  /**
1421
1421
  * Border Radius End
1422
1422
  * @see https://tailwindcss.com/docs/border-radius
1423
1423
  */
1424
1424
  "rounded-e": [{
1425
- "rounded-e": L()
1425
+ "rounded-e": C()
1426
1426
  }],
1427
1427
  /**
1428
1428
  * Border Radius Top
1429
1429
  * @see https://tailwindcss.com/docs/border-radius
1430
1430
  */
1431
1431
  "rounded-t": [{
1432
- "rounded-t": L()
1432
+ "rounded-t": C()
1433
1433
  }],
1434
1434
  /**
1435
1435
  * Border Radius Right
1436
1436
  * @see https://tailwindcss.com/docs/border-radius
1437
1437
  */
1438
1438
  "rounded-r": [{
1439
- "rounded-r": L()
1439
+ "rounded-r": C()
1440
1440
  }],
1441
1441
  /**
1442
1442
  * Border Radius Bottom
1443
1443
  * @see https://tailwindcss.com/docs/border-radius
1444
1444
  */
1445
1445
  "rounded-b": [{
1446
- "rounded-b": L()
1446
+ "rounded-b": C()
1447
1447
  }],
1448
1448
  /**
1449
1449
  * Border Radius Left
1450
1450
  * @see https://tailwindcss.com/docs/border-radius
1451
1451
  */
1452
1452
  "rounded-l": [{
1453
- "rounded-l": L()
1453
+ "rounded-l": C()
1454
1454
  }],
1455
1455
  /**
1456
1456
  * Border Radius Start Start
1457
1457
  * @see https://tailwindcss.com/docs/border-radius
1458
1458
  */
1459
1459
  "rounded-ss": [{
1460
- "rounded-ss": L()
1460
+ "rounded-ss": C()
1461
1461
  }],
1462
1462
  /**
1463
1463
  * Border Radius Start End
1464
1464
  * @see https://tailwindcss.com/docs/border-radius
1465
1465
  */
1466
1466
  "rounded-se": [{
1467
- "rounded-se": L()
1467
+ "rounded-se": C()
1468
1468
  }],
1469
1469
  /**
1470
1470
  * Border Radius End End
1471
1471
  * @see https://tailwindcss.com/docs/border-radius
1472
1472
  */
1473
1473
  "rounded-ee": [{
1474
- "rounded-ee": L()
1474
+ "rounded-ee": C()
1475
1475
  }],
1476
1476
  /**
1477
1477
  * Border Radius End Start
1478
1478
  * @see https://tailwindcss.com/docs/border-radius
1479
1479
  */
1480
1480
  "rounded-es": [{
1481
- "rounded-es": L()
1481
+ "rounded-es": C()
1482
1482
  }],
1483
1483
  /**
1484
1484
  * Border Radius Top Left
1485
1485
  * @see https://tailwindcss.com/docs/border-radius
1486
1486
  */
1487
1487
  "rounded-tl": [{
1488
- "rounded-tl": L()
1488
+ "rounded-tl": C()
1489
1489
  }],
1490
1490
  /**
1491
1491
  * Border Radius Top Right
1492
1492
  * @see https://tailwindcss.com/docs/border-radius
1493
1493
  */
1494
1494
  "rounded-tr": [{
1495
- "rounded-tr": L()
1495
+ "rounded-tr": C()
1496
1496
  }],
1497
1497
  /**
1498
1498
  * Border Radius Bottom Right
1499
1499
  * @see https://tailwindcss.com/docs/border-radius
1500
1500
  */
1501
1501
  "rounded-br": [{
1502
- "rounded-br": L()
1502
+ "rounded-br": C()
1503
1503
  }],
1504
1504
  /**
1505
1505
  * Border Radius Bottom Left
1506
1506
  * @see https://tailwindcss.com/docs/border-radius
1507
1507
  */
1508
1508
  "rounded-bl": [{
1509
- "rounded-bl": L()
1509
+ "rounded-bl": C()
1510
1510
  }],
1511
1511
  /**
1512
1512
  * Border Width
@@ -1614,70 +1614,70 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
1614
1614
  * @see https://tailwindcss.com/docs/border-color
1615
1615
  */
1616
1616
  "border-color": [{
1617
- border: m()
1617
+ border: u()
1618
1618
  }],
1619
1619
  /**
1620
1620
  * Border Color X
1621
1621
  * @see https://tailwindcss.com/docs/border-color
1622
1622
  */
1623
1623
  "border-color-x": [{
1624
- "border-x": m()
1624
+ "border-x": u()
1625
1625
  }],
1626
1626
  /**
1627
1627
  * Border Color Y
1628
1628
  * @see https://tailwindcss.com/docs/border-color
1629
1629
  */
1630
1630
  "border-color-y": [{
1631
- "border-y": m()
1631
+ "border-y": u()
1632
1632
  }],
1633
1633
  /**
1634
1634
  * Border Color S
1635
1635
  * @see https://tailwindcss.com/docs/border-color
1636
1636
  */
1637
1637
  "border-color-s": [{
1638
- "border-s": m()
1638
+ "border-s": u()
1639
1639
  }],
1640
1640
  /**
1641
1641
  * Border Color E
1642
1642
  * @see https://tailwindcss.com/docs/border-color
1643
1643
  */
1644
1644
  "border-color-e": [{
1645
- "border-e": m()
1645
+ "border-e": u()
1646
1646
  }],
1647
1647
  /**
1648
1648
  * Border Color Top
1649
1649
  * @see https://tailwindcss.com/docs/border-color
1650
1650
  */
1651
1651
  "border-color-t": [{
1652
- "border-t": m()
1652
+ "border-t": u()
1653
1653
  }],
1654
1654
  /**
1655
1655
  * Border Color Right
1656
1656
  * @see https://tailwindcss.com/docs/border-color
1657
1657
  */
1658
1658
  "border-color-r": [{
1659
- "border-r": m()
1659
+ "border-r": u()
1660
1660
  }],
1661
1661
  /**
1662
1662
  * Border Color Bottom
1663
1663
  * @see https://tailwindcss.com/docs/border-color
1664
1664
  */
1665
1665
  "border-color-b": [{
1666
- "border-b": m()
1666
+ "border-b": u()
1667
1667
  }],
1668
1668
  /**
1669
1669
  * Border Color Left
1670
1670
  * @see https://tailwindcss.com/docs/border-color
1671
1671
  */
1672
1672
  "border-color-l": [{
1673
- "border-l": m()
1673
+ "border-l": u()
1674
1674
  }],
1675
1675
  /**
1676
1676
  * Divide Color
1677
1677
  * @see https://tailwindcss.com/docs/divide-color
1678
1678
  */
1679
1679
  "divide-color": [{
1680
- divide: m()
1680
+ divide: u()
1681
1681
  }],
1682
1682
  /**
1683
1683
  * Outline Style
@@ -1691,21 +1691,21 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
1691
1691
  * @see https://tailwindcss.com/docs/outline-offset
1692
1692
  */
1693
1693
  "outline-offset": [{
1694
- "outline-offset": [h, i, l]
1694
+ "outline-offset": [f, c, i]
1695
1695
  }],
1696
1696
  /**
1697
1697
  * Outline Width
1698
1698
  * @see https://tailwindcss.com/docs/outline-width
1699
1699
  */
1700
1700
  "outline-w": [{
1701
- outline: ["", h, B, V]
1701
+ outline: ["", f, H, V]
1702
1702
  }],
1703
1703
  /**
1704
1704
  * Outline Color
1705
1705
  * @see https://tailwindcss.com/docs/outline-color
1706
1706
  */
1707
1707
  "outline-color": [{
1708
- outline: m()
1708
+ outline: u()
1709
1709
  }],
1710
1710
  // ---------------
1711
1711
  // --- Effects ---
@@ -1729,21 +1729,21 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
1729
1729
  * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color
1730
1730
  */
1731
1731
  "shadow-color": [{
1732
- shadow: m()
1732
+ shadow: u()
1733
1733
  }],
1734
1734
  /**
1735
1735
  * Inset Box Shadow
1736
1736
  * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow
1737
1737
  */
1738
1738
  "inset-shadow": [{
1739
- "inset-shadow": ["none", f, ee, Z]
1739
+ "inset-shadow": ["none", h, ee, Z]
1740
1740
  }],
1741
1741
  /**
1742
1742
  * Inset Box Shadow Color
1743
1743
  * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color
1744
1744
  */
1745
1745
  "inset-shadow-color": [{
1746
- "inset-shadow": m()
1746
+ "inset-shadow": u()
1747
1747
  }],
1748
1748
  /**
1749
1749
  * Ring Width
@@ -1764,7 +1764,7 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
1764
1764
  * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color
1765
1765
  */
1766
1766
  "ring-color": [{
1767
- ring: m()
1767
+ ring: u()
1768
1768
  }],
1769
1769
  /**
1770
1770
  * Ring Offset Width
@@ -1773,7 +1773,7 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
1773
1773
  * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
1774
1774
  */
1775
1775
  "ring-offset-w": [{
1776
- "ring-offset": [h, V]
1776
+ "ring-offset": [f, V]
1777
1777
  }],
1778
1778
  /**
1779
1779
  * Ring Offset Color
@@ -1782,7 +1782,7 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
1782
1782
  * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
1783
1783
  */
1784
1784
  "ring-offset-color": [{
1785
- "ring-offset": m()
1785
+ "ring-offset": u()
1786
1786
  }],
1787
1787
  /**
1788
1788
  * Inset Ring Width
@@ -1796,28 +1796,28 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
1796
1796
  * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color
1797
1797
  */
1798
1798
  "inset-ring-color": [{
1799
- "inset-ring": m()
1799
+ "inset-ring": u()
1800
1800
  }],
1801
1801
  /**
1802
1802
  * Text Shadow
1803
1803
  * @see https://tailwindcss.com/docs/text-shadow
1804
1804
  */
1805
1805
  "text-shadow": [{
1806
- "text-shadow": ["none", b, ee, Z]
1806
+ "text-shadow": ["none", g, ee, Z]
1807
1807
  }],
1808
1808
  /**
1809
1809
  * Text Shadow Color
1810
1810
  * @see https://tailwindcss.com/docs/text-shadow#setting-the-shadow-color
1811
1811
  */
1812
1812
  "text-shadow-color": [{
1813
- "text-shadow": m()
1813
+ "text-shadow": u()
1814
1814
  }],
1815
1815
  /**
1816
1816
  * Opacity
1817
1817
  * @see https://tailwindcss.com/docs/opacity
1818
1818
  */
1819
1819
  opacity: [{
1820
- opacity: [h, i, l]
1820
+ opacity: [f, c, i]
1821
1821
  }],
1822
1822
  /**
1823
1823
  * Mix Blend Mode
@@ -1852,7 +1852,7 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
1852
1852
  * @see https://tailwindcss.com/docs/mask-image
1853
1853
  */
1854
1854
  "mask-image-linear-pos": [{
1855
- "mask-linear": [h]
1855
+ "mask-linear": [f]
1856
1856
  }],
1857
1857
  "mask-image-linear-from-pos": [{
1858
1858
  "mask-linear-from": v()
@@ -1861,10 +1861,10 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
1861
1861
  "mask-linear-to": v()
1862
1862
  }],
1863
1863
  "mask-image-linear-from-color": [{
1864
- "mask-linear-from": m()
1864
+ "mask-linear-from": u()
1865
1865
  }],
1866
1866
  "mask-image-linear-to-color": [{
1867
- "mask-linear-to": m()
1867
+ "mask-linear-to": u()
1868
1868
  }],
1869
1869
  "mask-image-t-from-pos": [{
1870
1870
  "mask-t-from": v()
@@ -1873,10 +1873,10 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
1873
1873
  "mask-t-to": v()
1874
1874
  }],
1875
1875
  "mask-image-t-from-color": [{
1876
- "mask-t-from": m()
1876
+ "mask-t-from": u()
1877
1877
  }],
1878
1878
  "mask-image-t-to-color": [{
1879
- "mask-t-to": m()
1879
+ "mask-t-to": u()
1880
1880
  }],
1881
1881
  "mask-image-r-from-pos": [{
1882
1882
  "mask-r-from": v()
@@ -1885,10 +1885,10 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
1885
1885
  "mask-r-to": v()
1886
1886
  }],
1887
1887
  "mask-image-r-from-color": [{
1888
- "mask-r-from": m()
1888
+ "mask-r-from": u()
1889
1889
  }],
1890
1890
  "mask-image-r-to-color": [{
1891
- "mask-r-to": m()
1891
+ "mask-r-to": u()
1892
1892
  }],
1893
1893
  "mask-image-b-from-pos": [{
1894
1894
  "mask-b-from": v()
@@ -1897,10 +1897,10 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
1897
1897
  "mask-b-to": v()
1898
1898
  }],
1899
1899
  "mask-image-b-from-color": [{
1900
- "mask-b-from": m()
1900
+ "mask-b-from": u()
1901
1901
  }],
1902
1902
  "mask-image-b-to-color": [{
1903
- "mask-b-to": m()
1903
+ "mask-b-to": u()
1904
1904
  }],
1905
1905
  "mask-image-l-from-pos": [{
1906
1906
  "mask-l-from": v()
@@ -1909,10 +1909,10 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
1909
1909
  "mask-l-to": v()
1910
1910
  }],
1911
1911
  "mask-image-l-from-color": [{
1912
- "mask-l-from": m()
1912
+ "mask-l-from": u()
1913
1913
  }],
1914
1914
  "mask-image-l-to-color": [{
1915
- "mask-l-to": m()
1915
+ "mask-l-to": u()
1916
1916
  }],
1917
1917
  "mask-image-x-from-pos": [{
1918
1918
  "mask-x-from": v()
@@ -1921,10 +1921,10 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
1921
1921
  "mask-x-to": v()
1922
1922
  }],
1923
1923
  "mask-image-x-from-color": [{
1924
- "mask-x-from": m()
1924
+ "mask-x-from": u()
1925
1925
  }],
1926
1926
  "mask-image-x-to-color": [{
1927
- "mask-x-to": m()
1927
+ "mask-x-to": u()
1928
1928
  }],
1929
1929
  "mask-image-y-from-pos": [{
1930
1930
  "mask-y-from": v()
@@ -1933,13 +1933,13 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
1933
1933
  "mask-y-to": v()
1934
1934
  }],
1935
1935
  "mask-image-y-from-color": [{
1936
- "mask-y-from": m()
1936
+ "mask-y-from": u()
1937
1937
  }],
1938
1938
  "mask-image-y-to-color": [{
1939
- "mask-y-to": m()
1939
+ "mask-y-to": u()
1940
1940
  }],
1941
1941
  "mask-image-radial": [{
1942
- "mask-radial": [i, l]
1942
+ "mask-radial": [c, i]
1943
1943
  }],
1944
1944
  "mask-image-radial-from-pos": [{
1945
1945
  "mask-radial-from": v()
@@ -1948,10 +1948,10 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
1948
1948
  "mask-radial-to": v()
1949
1949
  }],
1950
1950
  "mask-image-radial-from-color": [{
1951
- "mask-radial-from": m()
1951
+ "mask-radial-from": u()
1952
1952
  }],
1953
1953
  "mask-image-radial-to-color": [{
1954
- "mask-radial-to": m()
1954
+ "mask-radial-to": u()
1955
1955
  }],
1956
1956
  "mask-image-radial-shape": [{
1957
1957
  "mask-radial": ["circle", "ellipse"]
@@ -1966,7 +1966,7 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
1966
1966
  "mask-radial-at": O()
1967
1967
  }],
1968
1968
  "mask-image-conic-pos": [{
1969
- "mask-conic": [h]
1969
+ "mask-conic": [f]
1970
1970
  }],
1971
1971
  "mask-image-conic-from-pos": [{
1972
1972
  "mask-conic-from": v()
@@ -1975,10 +1975,10 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
1975
1975
  "mask-conic-to": v()
1976
1976
  }],
1977
1977
  "mask-image-conic-from-color": [{
1978
- "mask-conic-from": m()
1978
+ "mask-conic-from": u()
1979
1979
  }],
1980
1980
  "mask-image-conic-to-color": [{
1981
- "mask-conic-to": m()
1981
+ "mask-conic-to": u()
1982
1982
  }],
1983
1983
  /**
1984
1984
  * Mask Mode
@@ -2006,14 +2006,14 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
2006
2006
  * @see https://tailwindcss.com/docs/mask-repeat
2007
2007
  */
2008
2008
  "mask-repeat": [{
2009
- mask: pe()
2009
+ mask: be()
2010
2010
  }],
2011
2011
  /**
2012
2012
  * Mask Size
2013
2013
  * @see https://tailwindcss.com/docs/mask-size
2014
2014
  */
2015
2015
  "mask-size": [{
2016
- mask: be()
2016
+ mask: pe()
2017
2017
  }],
2018
2018
  /**
2019
2019
  * Mask Type
@@ -2027,7 +2027,7 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
2027
2027
  * @see https://tailwindcss.com/docs/mask-image
2028
2028
  */
2029
2029
  "mask-image": [{
2030
- mask: ["none", i, l]
2030
+ mask: ["none", c, i]
2031
2031
  }],
2032
2032
  // ---------------
2033
2033
  // --- Filters ---
@@ -2041,8 +2041,8 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
2041
2041
  // Deprecated since Tailwind CSS v3.0.0
2042
2042
  "",
2043
2043
  "none",
2044
- i,
2045
- l
2044
+ c,
2045
+ i
2046
2046
  ]
2047
2047
  }],
2048
2048
  /**
@@ -2057,14 +2057,14 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
2057
2057
  * @see https://tailwindcss.com/docs/brightness
2058
2058
  */
2059
2059
  brightness: [{
2060
- brightness: [h, i, l]
2060
+ brightness: [f, c, i]
2061
2061
  }],
2062
2062
  /**
2063
2063
  * Contrast
2064
2064
  * @see https://tailwindcss.com/docs/contrast
2065
2065
  */
2066
2066
  contrast: [{
2067
- contrast: [h, i, l]
2067
+ contrast: [f, c, i]
2068
2068
  }],
2069
2069
  /**
2070
2070
  * Drop Shadow
@@ -2075,7 +2075,7 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
2075
2075
  // Deprecated since Tailwind CSS v4.0.0
2076
2076
  "",
2077
2077
  "none",
2078
- y,
2078
+ k,
2079
2079
  ee,
2080
2080
  Z
2081
2081
  ]
@@ -2085,42 +2085,42 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
2085
2085
  * @see https://tailwindcss.com/docs/filter-drop-shadow#setting-the-shadow-color
2086
2086
  */
2087
2087
  "drop-shadow-color": [{
2088
- "drop-shadow": m()
2088
+ "drop-shadow": u()
2089
2089
  }],
2090
2090
  /**
2091
2091
  * Grayscale
2092
2092
  * @see https://tailwindcss.com/docs/grayscale
2093
2093
  */
2094
2094
  grayscale: [{
2095
- grayscale: ["", h, i, l]
2095
+ grayscale: ["", f, c, i]
2096
2096
  }],
2097
2097
  /**
2098
2098
  * Hue Rotate
2099
2099
  * @see https://tailwindcss.com/docs/hue-rotate
2100
2100
  */
2101
2101
  "hue-rotate": [{
2102
- "hue-rotate": [h, i, l]
2102
+ "hue-rotate": [f, c, i]
2103
2103
  }],
2104
2104
  /**
2105
2105
  * Invert
2106
2106
  * @see https://tailwindcss.com/docs/invert
2107
2107
  */
2108
2108
  invert: [{
2109
- invert: ["", h, i, l]
2109
+ invert: ["", f, c, i]
2110
2110
  }],
2111
2111
  /**
2112
2112
  * Saturate
2113
2113
  * @see https://tailwindcss.com/docs/saturate
2114
2114
  */
2115
2115
  saturate: [{
2116
- saturate: [h, i, l]
2116
+ saturate: [f, c, i]
2117
2117
  }],
2118
2118
  /**
2119
2119
  * Sepia
2120
2120
  * @see https://tailwindcss.com/docs/sepia
2121
2121
  */
2122
2122
  sepia: [{
2123
- sepia: ["", h, i, l]
2123
+ sepia: ["", f, c, i]
2124
2124
  }],
2125
2125
  /**
2126
2126
  * Backdrop Filter
@@ -2131,8 +2131,8 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
2131
2131
  // Deprecated since Tailwind CSS v3.0.0
2132
2132
  "",
2133
2133
  "none",
2134
- i,
2135
- l
2134
+ c,
2135
+ i
2136
2136
  ]
2137
2137
  }],
2138
2138
  /**
@@ -2147,56 +2147,56 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
2147
2147
  * @see https://tailwindcss.com/docs/backdrop-brightness
2148
2148
  */
2149
2149
  "backdrop-brightness": [{
2150
- "backdrop-brightness": [h, i, l]
2150
+ "backdrop-brightness": [f, c, i]
2151
2151
  }],
2152
2152
  /**
2153
2153
  * Backdrop Contrast
2154
2154
  * @see https://tailwindcss.com/docs/backdrop-contrast
2155
2155
  */
2156
2156
  "backdrop-contrast": [{
2157
- "backdrop-contrast": [h, i, l]
2157
+ "backdrop-contrast": [f, c, i]
2158
2158
  }],
2159
2159
  /**
2160
2160
  * Backdrop Grayscale
2161
2161
  * @see https://tailwindcss.com/docs/backdrop-grayscale
2162
2162
  */
2163
2163
  "backdrop-grayscale": [{
2164
- "backdrop-grayscale": ["", h, i, l]
2164
+ "backdrop-grayscale": ["", f, c, i]
2165
2165
  }],
2166
2166
  /**
2167
2167
  * Backdrop Hue Rotate
2168
2168
  * @see https://tailwindcss.com/docs/backdrop-hue-rotate
2169
2169
  */
2170
2170
  "backdrop-hue-rotate": [{
2171
- "backdrop-hue-rotate": [h, i, l]
2171
+ "backdrop-hue-rotate": [f, c, i]
2172
2172
  }],
2173
2173
  /**
2174
2174
  * Backdrop Invert
2175
2175
  * @see https://tailwindcss.com/docs/backdrop-invert
2176
2176
  */
2177
2177
  "backdrop-invert": [{
2178
- "backdrop-invert": ["", h, i, l]
2178
+ "backdrop-invert": ["", f, c, i]
2179
2179
  }],
2180
2180
  /**
2181
2181
  * Backdrop Opacity
2182
2182
  * @see https://tailwindcss.com/docs/backdrop-opacity
2183
2183
  */
2184
2184
  "backdrop-opacity": [{
2185
- "backdrop-opacity": [h, i, l]
2185
+ "backdrop-opacity": [f, c, i]
2186
2186
  }],
2187
2187
  /**
2188
2188
  * Backdrop Saturate
2189
2189
  * @see https://tailwindcss.com/docs/backdrop-saturate
2190
2190
  */
2191
2191
  "backdrop-saturate": [{
2192
- "backdrop-saturate": [h, i, l]
2192
+ "backdrop-saturate": [f, c, i]
2193
2193
  }],
2194
2194
  /**
2195
2195
  * Backdrop Sepia
2196
2196
  * @see https://tailwindcss.com/docs/backdrop-sepia
2197
2197
  */
2198
2198
  "backdrop-sepia": [{
2199
- "backdrop-sepia": ["", h, i, l]
2199
+ "backdrop-sepia": ["", f, c, i]
2200
2200
  }],
2201
2201
  // --------------
2202
2202
  // --- Tables ---
@@ -2251,7 +2251,7 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
2251
2251
  * @see https://tailwindcss.com/docs/transition-property
2252
2252
  */
2253
2253
  transition: [{
2254
- transition: ["", "all", "colors", "opacity", "shadow", "transform", "none", i, l]
2254
+ transition: ["", "all", "colors", "opacity", "shadow", "transform", "none", c, i]
2255
2255
  }],
2256
2256
  /**
2257
2257
  * Transition Behavior
@@ -2265,28 +2265,28 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
2265
2265
  * @see https://tailwindcss.com/docs/transition-duration
2266
2266
  */
2267
2267
  duration: [{
2268
- duration: [h, "initial", i, l]
2268
+ duration: [f, "initial", c, i]
2269
2269
  }],
2270
2270
  /**
2271
2271
  * Transition Timing Function
2272
2272
  * @see https://tailwindcss.com/docs/transition-timing-function
2273
2273
  */
2274
2274
  ease: [{
2275
- ease: ["linear", "initial", I, i, l]
2275
+ ease: ["linear", "initial", I, c, i]
2276
2276
  }],
2277
2277
  /**
2278
2278
  * Transition Delay
2279
2279
  * @see https://tailwindcss.com/docs/transition-delay
2280
2280
  */
2281
2281
  delay: [{
2282
- delay: [h, i, l]
2282
+ delay: [f, c, i]
2283
2283
  }],
2284
2284
  /**
2285
2285
  * Animation
2286
2286
  * @see https://tailwindcss.com/docs/animation
2287
2287
  */
2288
2288
  animate: [{
2289
- animate: ["none", q, i, l]
2289
+ animate: ["none", q, c, i]
2290
2290
  }],
2291
2291
  // ------------------
2292
2292
  // --- Transforms ---
@@ -2303,14 +2303,14 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
2303
2303
  * @see https://tailwindcss.com/docs/perspective
2304
2304
  */
2305
2305
  perspective: [{
2306
- perspective: [C, i, l]
2306
+ perspective: [L, c, i]
2307
2307
  }],
2308
2308
  /**
2309
2309
  * Perspective Origin
2310
2310
  * @see https://tailwindcss.com/docs/perspective-origin
2311
2311
  */
2312
2312
  "perspective-origin": [{
2313
- "perspective-origin": U()
2313
+ "perspective-origin": $()
2314
2314
  }],
2315
2315
  /**
2316
2316
  * Rotate
@@ -2378,35 +2378,35 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
2378
2378
  * @see https://tailwindcss.com/docs/skew
2379
2379
  */
2380
2380
  skew: [{
2381
- skew: ae()
2381
+ skew: ne()
2382
2382
  }],
2383
2383
  /**
2384
2384
  * Skew X
2385
2385
  * @see https://tailwindcss.com/docs/skew
2386
2386
  */
2387
2387
  "skew-x": [{
2388
- "skew-x": ae()
2388
+ "skew-x": ne()
2389
2389
  }],
2390
2390
  /**
2391
2391
  * Skew Y
2392
2392
  * @see https://tailwindcss.com/docs/skew
2393
2393
  */
2394
2394
  "skew-y": [{
2395
- "skew-y": ae()
2395
+ "skew-y": ne()
2396
2396
  }],
2397
2397
  /**
2398
2398
  * Transform
2399
2399
  * @see https://tailwindcss.com/docs/transform
2400
2400
  */
2401
2401
  transform: [{
2402
- transform: [i, l, "", "none", "gpu", "cpu"]
2402
+ transform: [c, i, "", "none", "gpu", "cpu"]
2403
2403
  }],
2404
2404
  /**
2405
2405
  * Transform Origin
2406
2406
  * @see https://tailwindcss.com/docs/transform-origin
2407
2407
  */
2408
2408
  "transform-origin": [{
2409
- origin: U()
2409
+ origin: $()
2410
2410
  }],
2411
2411
  /**
2412
2412
  * Transform Style
@@ -2456,7 +2456,7 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
2456
2456
  * @see https://tailwindcss.com/docs/accent-color
2457
2457
  */
2458
2458
  accent: [{
2459
- accent: m()
2459
+ accent: u()
2460
2460
  }],
2461
2461
  /**
2462
2462
  * Appearance
@@ -2470,7 +2470,7 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
2470
2470
  * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities
2471
2471
  */
2472
2472
  "caret-color": [{
2473
- caret: m()
2473
+ caret: u()
2474
2474
  }],
2475
2475
  /**
2476
2476
  * Color Scheme
@@ -2484,7 +2484,7 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
2484
2484
  * @see https://tailwindcss.com/docs/cursor
2485
2485
  */
2486
2486
  cursor: [{
2487
- cursor: ["auto", "default", "pointer", "wait", "text", "move", "help", "not-allowed", "none", "context-menu", "progress", "cell", "crosshair", "vertical-text", "alias", "copy", "no-drop", "grab", "grabbing", "all-scroll", "col-resize", "row-resize", "n-resize", "e-resize", "s-resize", "w-resize", "ne-resize", "nw-resize", "se-resize", "sw-resize", "ew-resize", "ns-resize", "nesw-resize", "nwse-resize", "zoom-in", "zoom-out", i, l]
2487
+ cursor: ["auto", "default", "pointer", "wait", "text", "move", "help", "not-allowed", "none", "context-menu", "progress", "cell", "crosshair", "vertical-text", "alias", "copy", "no-drop", "grab", "grabbing", "all-scroll", "col-resize", "row-resize", "n-resize", "e-resize", "s-resize", "w-resize", "ne-resize", "nw-resize", "se-resize", "sw-resize", "ew-resize", "ns-resize", "nesw-resize", "nwse-resize", "zoom-in", "zoom-out", c, i]
2488
2488
  }],
2489
2489
  /**
2490
2490
  * Field Sizing
@@ -2706,7 +2706,7 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
2706
2706
  * @see https://tailwindcss.com/docs/will-change
2707
2707
  */
2708
2708
  "will-change": [{
2709
- "will-change": ["auto", "scroll", "contents", "transform", i, l]
2709
+ "will-change": ["auto", "scroll", "contents", "transform", c, i]
2710
2710
  }],
2711
2711
  // -----------
2712
2712
  // --- SVG ---
@@ -2716,21 +2716,21 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
2716
2716
  * @see https://tailwindcss.com/docs/fill
2717
2717
  */
2718
2718
  fill: [{
2719
- fill: ["none", ...m()]
2719
+ fill: ["none", ...u()]
2720
2720
  }],
2721
2721
  /**
2722
2722
  * Stroke Width
2723
2723
  * @see https://tailwindcss.com/docs/stroke-width
2724
2724
  */
2725
2725
  "stroke-w": [{
2726
- stroke: [h, B, V, le]
2726
+ stroke: [f, H, V, le]
2727
2727
  }],
2728
2728
  /**
2729
2729
  * Stroke
2730
2730
  * @see https://tailwindcss.com/docs/stroke
2731
2731
  */
2732
2732
  stroke: [{
2733
- stroke: ["none", ...m()]
2733
+ stroke: ["none", ...u()]
2734
2734
  }],
2735
2735
  // ---------------------
2736
2736
  // --- Accessibility ---
@@ -2799,10 +2799,10 @@ const xe = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ye = Se, K
2799
2799
  orderSensitiveModifiers: ["*", "**", "after", "backdrop", "before", "details-content", "file", "first-letter", "first-line", "marker", "placeholder", "selection"]
2800
2800
  };
2801
2801
  }, Ot = /* @__PURE__ */ ft(Vt);
2802
- function T(...e) {
2802
+ function P(...e) {
2803
2803
  return Ot(Se(e));
2804
2804
  }
2805
- const Ut = Ke(
2805
+ const $t = Ke(
2806
2806
  "h-full rounded-full transition-all duration-300",
2807
2807
  {
2808
2808
  variants: {
@@ -2819,115 +2819,139 @@ const Ut = Ke(
2819
2819
  }
2820
2820
  }
2821
2821
  );
2822
- function We(e, r) {
2823
- return r === null || r === 0 ? 0 : Math.min(100, e / r * 100);
2822
+ function Ue(e, o) {
2823
+ return o === null || o === 0 ? 0 : Math.min(100, e / o * 100);
2824
2824
  }
2825
- function Et(e, r) {
2826
- if (r === null) return "green";
2827
- const t = We(e, r);
2825
+ function Dt(e, o) {
2826
+ if (o === null) return "green";
2827
+ const t = Ue(e, o);
2828
2828
  return t >= 90 ? "red" : t >= 70 ? "yellow" : "blue";
2829
2829
  }
2830
- const Wt = ({
2830
+ function Ut(e) {
2831
+ const o = new Date(e), t = /* @__PURE__ */ new Date(), r = o.getTime() - t.getTime();
2832
+ if (r <= 0) return "now";
2833
+ const s = Math.floor(r / (1e3 * 60)), a = Math.floor(r / (1e3 * 60 * 60)), n = Math.floor(r / (1e3 * 60 * 60 * 24));
2834
+ if (s < 60)
2835
+ return `${s}m`;
2836
+ if (a < 24) {
2837
+ const m = s % 60;
2838
+ return m > 0 ? `${a}h ${m}m` : `${a}h`;
2839
+ } else {
2840
+ const m = a % 24;
2841
+ return m > 0 ? `${n}d ${m}h` : `${n}d`;
2842
+ }
2843
+ }
2844
+ const Et = ({
2831
2845
  config: e,
2832
- showPercentage: r = !0,
2846
+ showPercentage: o = !0,
2833
2847
  showRemaining: t = !0,
2834
- labels: o
2848
+ labels: r
2835
2849
  }) => {
2836
- const { label: n, used: c, limit: a, color: u } = e, s = We(c, a), d = u ?? Et(c, a), x = a !== null ? Math.max(0, a - c) : null, f = a === null;
2837
- return /* @__PURE__ */ k("div", { className: "space-y-2", children: [
2838
- /* @__PURE__ */ k("div", { className: "flex items-center justify-between", children: [
2839
- /* @__PURE__ */ g("span", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: n }),
2840
- /* @__PURE__ */ k("span", { className: "text-sm text-gray-500 dark:text-gray-400", children: [
2841
- c.toLocaleString(),
2850
+ const { label: s, used: a, limit: n, color: m, resetsAt: l } = e, d = Ue(a, n), x = m ?? Dt(a, n), h = n !== null ? Math.max(0, n - a) : null, g = n === null;
2851
+ return /* @__PURE__ */ y("div", { className: "space-y-2", children: [
2852
+ /* @__PURE__ */ y("div", { className: "flex items-center justify-between", children: [
2853
+ /* @__PURE__ */ b("span", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: s }),
2854
+ /* @__PURE__ */ y("span", { className: "text-sm text-gray-500 dark:text-gray-400", children: [
2855
+ a.toLocaleString(),
2842
2856
  " ",
2843
- o.usedLabel,
2844
- !f && ` / ${a.toLocaleString()} ${o.limitLabel}`,
2845
- f && ` (${o.unlimitedLabel})`
2857
+ r.usedLabel,
2858
+ !g && ` / ${n.toLocaleString()} ${r.limitLabel}`,
2859
+ g && ` (${r.unlimitedLabel})`
2846
2860
  ] })
2847
2861
  ] }),
2848
- !f && /* @__PURE__ */ k("div", { className: "relative", children: [
2849
- /* @__PURE__ */ g("div", { className: "h-3 w-full rounded-full bg-gray-200 dark:bg-gray-700", children: /* @__PURE__ */ g(
2862
+ !g && /* @__PURE__ */ y("div", { className: "relative", children: [
2863
+ /* @__PURE__ */ b("div", { className: "h-3 w-full rounded-full bg-gray-200 dark:bg-gray-700", children: /* @__PURE__ */ b(
2850
2864
  "div",
2851
2865
  {
2852
- className: T(Ut({ color: d })),
2853
- style: { width: `${s}%` }
2866
+ className: P($t({ color: x })),
2867
+ style: { width: `${d}%` }
2854
2868
  }
2855
2869
  ) }),
2856
- r && /* @__PURE__ */ k("span", { className: "absolute right-0 top-4 text-xs text-gray-500 dark:text-gray-400", children: [
2857
- s.toFixed(0),
2870
+ o && /* @__PURE__ */ y("span", { className: "absolute right-0 top-4 text-xs text-gray-500 dark:text-gray-400", children: [
2871
+ d.toFixed(0),
2858
2872
  "%"
2859
2873
  ] })
2860
2874
  ] }),
2861
- f && /* @__PURE__ */ g("div", { className: "h-3 w-full rounded-full bg-green-100 dark:bg-green-900/30", children: /* @__PURE__ */ g("div", { className: "h-full w-full rounded-full bg-green-500/20" }) }),
2862
- t && x !== null && /* @__PURE__ */ k("p", { className: "text-xs text-gray-500 dark:text-gray-400", children: [
2863
- x.toLocaleString(),
2864
- " ",
2865
- o.remainingLabel
2875
+ g && /* @__PURE__ */ b("div", { className: "h-3 w-full rounded-full bg-green-100 dark:bg-green-900/30", children: /* @__PURE__ */ b("div", { className: "h-full w-full rounded-full bg-green-500/20" }) }),
2876
+ /* @__PURE__ */ y("div", { className: "flex items-center justify-between text-xs text-gray-500 dark:text-gray-400", children: [
2877
+ t && h !== null && /* @__PURE__ */ y("span", { children: [
2878
+ h.toLocaleString(),
2879
+ " ",
2880
+ r.remainingLabel
2881
+ ] }),
2882
+ !t && /* @__PURE__ */ b("span", {}),
2883
+ l && /* @__PURE__ */ y("span", { children: [
2884
+ r.resetsLabel,
2885
+ " ",
2886
+ Ut(l)
2887
+ ] })
2866
2888
  ] })
2867
2889
  ] });
2868
- }, H = {
2890
+ }, E = {
2869
2891
  title: "Usage",
2870
2892
  usedLabel: "used",
2871
2893
  limitLabel: "limit",
2872
2894
  unlimitedLabel: "Unlimited",
2873
- remainingLabel: "remaining"
2874
- }, Yt = ({
2895
+ remainingLabel: "remaining",
2896
+ resetsLabel: "Resets in"
2897
+ }, Kt = ({
2875
2898
  usageBars: e,
2876
- currentTierName: r,
2899
+ currentTierName: o,
2877
2900
  labels: t,
2878
- onUpgradeClick: o,
2879
- upgradeButtonLabel: n = "Upgrade",
2880
- className: c,
2881
- showPercentage: a = !0,
2882
- showRemaining: u = !0,
2883
- onTrack: s,
2901
+ onUpgradeClick: r,
2902
+ upgradeButtonLabel: s = "Upgrade",
2903
+ className: a,
2904
+ showPercentage: n = !0,
2905
+ showRemaining: m = !0,
2906
+ onTrack: l,
2884
2907
  trackingLabel: d,
2885
2908
  componentName: x = "UsageDashboard"
2886
2909
  }) => {
2887
- const f = { ...H, ...t }, b = () => {
2888
- s?.({ action: "upgrade_click", trackingLabel: d, componentName: x }), o?.();
2910
+ const h = { ...E, ...t }, g = () => {
2911
+ l?.({ action: "upgrade_click", trackingLabel: d, componentName: x }), r?.();
2889
2912
  };
2890
- return /* @__PURE__ */ k(
2913
+ return /* @__PURE__ */ y(
2891
2914
  "div",
2892
2915
  {
2893
- className: T(
2916
+ className: P(
2894
2917
  "rounded-lg border border-gray-200 bg-white p-6 dark:border-gray-700 dark:bg-gray-800",
2895
- c
2918
+ a
2896
2919
  ),
2897
2920
  children: [
2898
- /* @__PURE__ */ k("div", { className: "mb-6 flex items-center justify-between", children: [
2899
- /* @__PURE__ */ k("div", { children: [
2900
- /* @__PURE__ */ g("h3", { className: "text-lg font-semibold text-gray-900 dark:text-white", children: f.title }),
2901
- r && /* @__PURE__ */ g("p", { className: "text-sm text-gray-500 dark:text-gray-400", children: r })
2921
+ /* @__PURE__ */ y("div", { className: "mb-6 flex items-center justify-between", children: [
2922
+ /* @__PURE__ */ y("div", { children: [
2923
+ /* @__PURE__ */ b("h3", { className: "text-lg font-semibold text-gray-900 dark:text-white", children: h.title }),
2924
+ o && /* @__PURE__ */ b("p", { className: "text-sm text-gray-500 dark:text-gray-400", children: o })
2902
2925
  ] }),
2903
- o && /* @__PURE__ */ g(
2926
+ r && /* @__PURE__ */ b(
2904
2927
  "button",
2905
2928
  {
2906
- onClick: b,
2929
+ onClick: g,
2907
2930
  className: "rounded-md bg-blue-600 px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 dark:focus:ring-offset-gray-800",
2908
- children: n
2931
+ children: s
2909
2932
  }
2910
2933
  )
2911
2934
  ] }),
2912
- /* @__PURE__ */ g("div", { className: "space-y-6", children: e.map((y, z) => /* @__PURE__ */ g(
2913
- Wt,
2935
+ /* @__PURE__ */ b("div", { className: "space-y-6", children: e.map((k, z) => /* @__PURE__ */ b(
2936
+ Et,
2914
2937
  {
2915
- config: y,
2916
- showPercentage: a,
2917
- showRemaining: u,
2938
+ config: k,
2939
+ showPercentage: n,
2940
+ showRemaining: m,
2918
2941
  labels: {
2919
- usedLabel: f.usedLabel ?? H.usedLabel,
2920
- limitLabel: f.limitLabel ?? H.limitLabel,
2921
- unlimitedLabel: f.unlimitedLabel ?? H.unlimitedLabel,
2922
- remainingLabel: f.remainingLabel ?? H.remainingLabel
2942
+ usedLabel: h.usedLabel ?? E.usedLabel,
2943
+ limitLabel: h.limitLabel ?? E.limitLabel,
2944
+ unlimitedLabel: h.unlimitedLabel ?? E.unlimitedLabel,
2945
+ remainingLabel: h.remainingLabel ?? E.remainingLabel,
2946
+ resetsLabel: h.resetsLabel ?? E.resetsLabel
2923
2947
  }
2924
2948
  },
2925
- `${y.label}-${z}`
2949
+ `${k.label}-${z}`
2926
2950
  )) })
2927
2951
  ]
2928
2952
  }
2929
2953
  );
2930
- }, Le = {
2954
+ }, Ce = {
2931
2955
  title: "Plan Comparison",
2932
2956
  tierHeader: "Plan",
2933
2957
  hourlyHeader: "Hourly",
@@ -2936,77 +2960,77 @@ const Wt = ({
2936
2960
  unlimitedLabel: "Unlimited",
2937
2961
  currentTierBadge: "Current"
2938
2962
  };
2939
- function Dt(e) {
2963
+ function Wt(e) {
2940
2964
  return e.toLocaleString();
2941
2965
  }
2942
- const Kt = ({
2966
+ const Xt = ({
2943
2967
  tiers: e,
2944
- labels: r,
2968
+ labels: o,
2945
2969
  onTierSelect: t,
2946
- className: o,
2947
- formatNumber: n = Dt,
2948
- onTrack: c,
2949
- trackingLabel: a,
2950
- componentName: u = "TierComparisonTable"
2970
+ className: r,
2971
+ formatNumber: s = Wt,
2972
+ onTrack: a,
2973
+ trackingLabel: n,
2974
+ componentName: m = "TierComparisonTable"
2951
2975
  }) => {
2952
- const s = { ...Le, ...r }, d = (b) => {
2953
- c?.({ action: "tier_select", trackingLabel: a, componentName: u }), t?.(b);
2954
- }, x = (b) => b === null ? s.unlimitedLabel ?? Le.unlimitedLabel : n(b), f = (b) => /* @__PURE__ */ g(
2976
+ const l = { ...Ce, ...o }, d = (g) => {
2977
+ a?.({ action: "tier_select", trackingLabel: n, componentName: m }), t?.(g);
2978
+ }, x = (g) => g === null ? l.unlimitedLabel ?? Ce.unlimitedLabel : s(g), h = (g) => /* @__PURE__ */ b(
2955
2979
  "span",
2956
2980
  {
2957
- className: T(
2981
+ className: P(
2958
2982
  "text-sm",
2959
- b === null ? "font-medium text-green-600 dark:text-green-400" : "text-gray-700 dark:text-gray-300"
2983
+ g === null ? "font-medium text-green-600 dark:text-green-400" : "text-gray-700 dark:text-gray-300"
2960
2984
  ),
2961
- children: x(b)
2985
+ children: x(g)
2962
2986
  }
2963
2987
  );
2964
- return /* @__PURE__ */ k(
2988
+ return /* @__PURE__ */ y(
2965
2989
  "div",
2966
2990
  {
2967
- className: T(
2991
+ className: P(
2968
2992
  "rounded-lg border border-gray-200 bg-white dark:border-gray-700 dark:bg-gray-800",
2969
- o
2993
+ r
2970
2994
  ),
2971
2995
  children: [
2972
- s.title && /* @__PURE__ */ g("div", { className: "border-b border-gray-200 px-6 py-4 dark:border-gray-700", children: /* @__PURE__ */ g("h3", { className: "text-lg font-semibold text-gray-900 dark:text-white", children: s.title }) }),
2973
- /* @__PURE__ */ g("div", { className: "overflow-x-auto", children: /* @__PURE__ */ k("table", { className: "w-full", children: [
2974
- /* @__PURE__ */ g("thead", { children: /* @__PURE__ */ k("tr", { className: "border-b border-gray-200 bg-gray-50 dark:border-gray-700 dark:bg-gray-900/50", children: [
2975
- /* @__PURE__ */ g("th", { className: "px-6 py-3 text-left text-xs font-medium uppercase tracking-wider text-gray-500 dark:text-gray-400", children: s.tierHeader }),
2976
- /* @__PURE__ */ g("th", { className: "px-6 py-3 text-right text-xs font-medium uppercase tracking-wider text-gray-500 dark:text-gray-400", children: s.hourlyHeader }),
2977
- /* @__PURE__ */ g("th", { className: "px-6 py-3 text-right text-xs font-medium uppercase tracking-wider text-gray-500 dark:text-gray-400", children: s.dailyHeader }),
2978
- /* @__PURE__ */ g("th", { className: "px-6 py-3 text-right text-xs font-medium uppercase tracking-wider text-gray-500 dark:text-gray-400", children: s.monthlyHeader })
2996
+ l.title && /* @__PURE__ */ b("div", { className: "border-b border-gray-200 px-6 py-4 dark:border-gray-700", children: /* @__PURE__ */ b("h3", { className: "text-lg font-semibold text-gray-900 dark:text-white", children: l.title }) }),
2997
+ /* @__PURE__ */ b("div", { className: "overflow-x-auto", children: /* @__PURE__ */ y("table", { className: "w-full", children: [
2998
+ /* @__PURE__ */ b("thead", { children: /* @__PURE__ */ y("tr", { className: "border-b border-gray-200 bg-gray-50 dark:border-gray-700 dark:bg-gray-900/50", children: [
2999
+ /* @__PURE__ */ b("th", { className: "px-6 py-3 text-left text-xs font-medium uppercase tracking-wider text-gray-500 dark:text-gray-400", children: l.tierHeader }),
3000
+ /* @__PURE__ */ b("th", { className: "px-6 py-3 text-right text-xs font-medium uppercase tracking-wider text-gray-500 dark:text-gray-400", children: l.hourlyHeader }),
3001
+ /* @__PURE__ */ b("th", { className: "px-6 py-3 text-right text-xs font-medium uppercase tracking-wider text-gray-500 dark:text-gray-400", children: l.dailyHeader }),
3002
+ /* @__PURE__ */ b("th", { className: "px-6 py-3 text-right text-xs font-medium uppercase tracking-wider text-gray-500 dark:text-gray-400", children: l.monthlyHeader })
2979
3003
  ] }) }),
2980
- /* @__PURE__ */ g("tbody", { className: "divide-y divide-gray-200 dark:divide-gray-700", children: e.map((b) => /* @__PURE__ */ k(
3004
+ /* @__PURE__ */ b("tbody", { className: "divide-y divide-gray-200 dark:divide-gray-700", children: e.map((g) => /* @__PURE__ */ y(
2981
3005
  "tr",
2982
3006
  {
2983
- onClick: () => d(b.id),
2984
- className: T(
3007
+ onClick: () => d(g.id),
3008
+ className: P(
2985
3009
  "transition-colors",
2986
- b.isHighlighted && "bg-blue-50 dark:bg-blue-900/20",
2987
- b.isCurrent && "bg-green-50 dark:bg-green-900/20",
3010
+ g.isHighlighted && "bg-blue-50 dark:bg-blue-900/20",
3011
+ g.isCurrent && "bg-green-50 dark:bg-green-900/20",
2988
3012
  t && "cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-700/50"
2989
3013
  ),
2990
3014
  children: [
2991
- /* @__PURE__ */ g("td", { className: "whitespace-nowrap px-6 py-4", children: /* @__PURE__ */ k("div", { className: "flex items-center gap-2", children: [
2992
- /* @__PURE__ */ g(
3015
+ /* @__PURE__ */ b("td", { className: "whitespace-nowrap px-6 py-4", children: /* @__PURE__ */ y("div", { className: "flex items-center gap-2", children: [
3016
+ /* @__PURE__ */ b(
2993
3017
  "span",
2994
3018
  {
2995
- className: T(
3019
+ className: P(
2996
3020
  "text-sm font-medium",
2997
- b.isCurrent ? "text-green-700 dark:text-green-400" : b.isHighlighted ? "text-blue-700 dark:text-blue-400" : "text-gray-900 dark:text-white"
3021
+ g.isCurrent ? "text-green-700 dark:text-green-400" : g.isHighlighted ? "text-blue-700 dark:text-blue-400" : "text-gray-900 dark:text-white"
2998
3022
  ),
2999
- children: b.name
3023
+ children: g.name
3000
3024
  }
3001
3025
  ),
3002
- b.isCurrent && /* @__PURE__ */ g("span", { className: "inline-flex items-center rounded-full bg-green-100 px-2 py-0.5 text-xs font-medium text-green-700 dark:bg-green-900/50 dark:text-green-400", children: s.currentTierBadge })
3026
+ g.isCurrent && /* @__PURE__ */ b("span", { className: "inline-flex items-center rounded-full bg-green-100 px-2 py-0.5 text-xs font-medium text-green-700 dark:bg-green-900/50 dark:text-green-400", children: l.currentTierBadge })
3003
3027
  ] }) }),
3004
- /* @__PURE__ */ g("td", { className: "whitespace-nowrap px-6 py-4 text-right", children: f(b.hourlyLimit) }),
3005
- /* @__PURE__ */ g("td", { className: "whitespace-nowrap px-6 py-4 text-right", children: f(b.dailyLimit) }),
3006
- /* @__PURE__ */ g("td", { className: "whitespace-nowrap px-6 py-4 text-right", children: f(b.monthlyLimit) })
3028
+ /* @__PURE__ */ b("td", { className: "whitespace-nowrap px-6 py-4 text-right", children: h(g.hourlyLimit) }),
3029
+ /* @__PURE__ */ b("td", { className: "whitespace-nowrap px-6 py-4 text-right", children: h(g.dailyLimit) }),
3030
+ /* @__PURE__ */ b("td", { className: "whitespace-nowrap px-6 py-4 text-right", children: h(g.monthlyLimit) })
3007
3031
  ]
3008
3032
  },
3009
- b.id
3033
+ g.id
3010
3034
  )) })
3011
3035
  ] }) })
3012
3036
  ]
@@ -3019,9 +3043,9 @@ const Kt = ({
3019
3043
  periodLabel: "Period",
3020
3044
  noDataLabel: "No usage data available"
3021
3045
  };
3022
- function _t(e, r) {
3046
+ function _t(e, o) {
3023
3047
  const t = new Date(e);
3024
- switch (r) {
3048
+ switch (o) {
3025
3049
  case "hour":
3026
3050
  return t.toLocaleTimeString(void 0, {
3027
3051
  hour: "2-digit",
@@ -3041,127 +3065,127 @@ function _t(e, r) {
3041
3065
  return e;
3042
3066
  }
3043
3067
  }
3044
- const $t = ({
3068
+ const Bt = ({
3045
3069
  active: e,
3046
- payload: r,
3070
+ payload: o,
3047
3071
  label: t,
3048
- labels: o,
3049
- limit: n
3072
+ labels: r,
3073
+ limit: s
3050
3074
  }) => {
3051
- if (!e || !r || r.length === 0) return null;
3052
- const c = r[0].value;
3053
- return /* @__PURE__ */ k("div", { className: "rounded-lg border border-gray-200 bg-white p-3 shadow-lg dark:border-gray-700 dark:bg-gray-800", children: [
3054
- /* @__PURE__ */ g("p", { className: "mb-1 text-sm font-medium text-gray-900 dark:text-white", children: t }),
3055
- /* @__PURE__ */ k("p", { className: "text-sm text-gray-600 dark:text-gray-400", children: [
3056
- o.requestsLabel,
3075
+ if (!e || !o || o.length === 0) return null;
3076
+ const a = o[0].value;
3077
+ return /* @__PURE__ */ y("div", { className: "rounded-lg border border-gray-200 bg-white p-3 shadow-lg dark:border-gray-700 dark:bg-gray-800", children: [
3078
+ /* @__PURE__ */ b("p", { className: "mb-1 text-sm font-medium text-gray-900 dark:text-white", children: t }),
3079
+ /* @__PURE__ */ y("p", { className: "text-sm text-gray-600 dark:text-gray-400", children: [
3080
+ r.requestsLabel,
3057
3081
  ":",
3058
3082
  " ",
3059
- /* @__PURE__ */ g("span", { className: "font-medium", children: c.toLocaleString() })
3083
+ /* @__PURE__ */ b("span", { className: "font-medium", children: a.toLocaleString() })
3060
3084
  ] }),
3061
- n !== null && /* @__PURE__ */ k("p", { className: "text-sm text-gray-600 dark:text-gray-400", children: [
3062
- o.limitLabel,
3085
+ s !== null && /* @__PURE__ */ y("p", { className: "text-sm text-gray-600 dark:text-gray-400", children: [
3086
+ r.limitLabel,
3063
3087
  ":",
3064
3088
  " ",
3065
- /* @__PURE__ */ g("span", { className: "font-medium", children: n.toLocaleString() })
3089
+ /* @__PURE__ */ b("span", { className: "font-medium", children: s.toLocaleString() })
3066
3090
  ] })
3067
3091
  ] });
3068
- }, Xt = ({
3092
+ }, Jt = ({
3069
3093
  entries: e,
3070
- periodType: r,
3094
+ periodType: o,
3071
3095
  labels: t,
3072
- height: o = 300,
3073
- className: n,
3074
- formatDate: c = _t,
3075
- barColor: a = "#3b82f6",
3076
- limitLineColor: u = "#ef4444",
3077
- showLimitLine: s = !0
3096
+ height: r = 300,
3097
+ className: s,
3098
+ formatDate: a = _t,
3099
+ barColor: n = "#3b82f6",
3100
+ limitLineColor: m = "#ef4444",
3101
+ showLimitLine: l = !0
3078
3102
  }) => {
3079
- const d = { ...Ft, ...t }, x = ne(() => e.map((y) => ({
3080
- name: c(y.periodStart, r),
3081
- requests: y.requestCount,
3082
- limit: y.limit
3083
- })), [e, c, r]), f = ne(() => e.find((z) => z.limit !== null)?.limit ?? null, [e]), b = ne(() => {
3084
- const y = Math.max(...e.map((C) => C.requestCount), 0);
3085
- return Math.max(y, f ?? 0) * 1.1;
3086
- }, [e, f]);
3087
- return e.length === 0 ? /* @__PURE__ */ g(
3103
+ const d = { ...Ft, ...t }, x = se(() => e.map((k) => ({
3104
+ name: a(k.periodStart, o),
3105
+ requests: k.requestCount,
3106
+ limit: k.limit
3107
+ })), [e, a, o]), h = se(() => e.find((z) => z.limit !== null)?.limit ?? null, [e]), g = se(() => {
3108
+ const k = Math.max(...e.map((L) => L.requestCount), 0);
3109
+ return Math.max(k, h ?? 0) * 1.1;
3110
+ }, [e, h]);
3111
+ return e.length === 0 ? /* @__PURE__ */ b(
3088
3112
  "div",
3089
3113
  {
3090
- className: T(
3114
+ className: P(
3091
3115
  "flex items-center justify-center rounded-lg border border-gray-200 bg-white p-6 dark:border-gray-700 dark:bg-gray-800",
3092
- n
3116
+ s
3093
3117
  ),
3094
- style: { height: o },
3095
- children: /* @__PURE__ */ g("p", { className: "text-gray-500 dark:text-gray-400", children: d.noDataLabel })
3118
+ style: { height: r },
3119
+ children: /* @__PURE__ */ b("p", { className: "text-gray-500 dark:text-gray-400", children: d.noDataLabel })
3096
3120
  }
3097
- ) : /* @__PURE__ */ k(
3121
+ ) : /* @__PURE__ */ y(
3098
3122
  "div",
3099
3123
  {
3100
- className: T(
3124
+ className: P(
3101
3125
  "rounded-lg border border-gray-200 bg-white p-6 dark:border-gray-700 dark:bg-gray-800",
3102
- n
3126
+ s
3103
3127
  ),
3104
3128
  children: [
3105
- d.title && /* @__PURE__ */ g("h3", { className: "mb-4 text-lg font-semibold text-gray-900 dark:text-white", children: d.title }),
3106
- /* @__PURE__ */ g(De, { width: "100%", height: o, children: /* @__PURE__ */ k(
3107
- Fe,
3129
+ d.title && /* @__PURE__ */ b("h3", { className: "mb-4 text-lg font-semibold text-gray-900 dark:text-white", children: d.title }),
3130
+ /* @__PURE__ */ b(Ee, { width: "100%", height: r, children: /* @__PURE__ */ y(
3131
+ We,
3108
3132
  {
3109
3133
  data: x,
3110
3134
  margin: { top: 20, right: 30, left: 20, bottom: 5 },
3111
3135
  children: [
3112
- /* @__PURE__ */ g(
3113
- _e,
3136
+ /* @__PURE__ */ b(
3137
+ Fe,
3114
3138
  {
3115
3139
  strokeDasharray: "3 3",
3116
3140
  className: "stroke-gray-200 dark:stroke-gray-700"
3117
3141
  }
3118
3142
  ),
3119
- /* @__PURE__ */ g(
3120
- $e,
3143
+ /* @__PURE__ */ b(
3144
+ _e,
3121
3145
  {
3122
3146
  dataKey: "name",
3123
3147
  tick: { fontSize: 12 },
3124
3148
  className: "text-gray-600 dark:text-gray-400"
3125
3149
  }
3126
3150
  ),
3127
- /* @__PURE__ */ g(
3151
+ /* @__PURE__ */ b(
3128
3152
  Be,
3129
3153
  {
3130
- domain: [0, b],
3154
+ domain: [0, g],
3131
3155
  tick: { fontSize: 12 },
3132
3156
  className: "text-gray-600 dark:text-gray-400",
3133
- tickFormatter: (y) => y.toLocaleString()
3157
+ tickFormatter: (k) => k.toLocaleString()
3134
3158
  }
3135
3159
  ),
3136
- /* @__PURE__ */ g(
3160
+ /* @__PURE__ */ b(
3137
3161
  He,
3138
3162
  {
3139
- content: /* @__PURE__ */ g($t, { labels: d, limit: f })
3163
+ content: /* @__PURE__ */ b(Bt, { labels: d, limit: h })
3140
3164
  }
3141
3165
  ),
3142
- /* @__PURE__ */ g(
3166
+ /* @__PURE__ */ b(
3143
3167
  qe,
3144
3168
  {
3145
3169
  type: "monotone",
3146
3170
  dataKey: "requests",
3147
- stroke: a,
3171
+ stroke: n,
3148
3172
  strokeWidth: 2,
3149
- dot: { fill: a, strokeWidth: 2, r: 4 },
3173
+ dot: { fill: n, strokeWidth: 2, r: 4 },
3150
3174
  activeDot: { r: 6, strokeWidth: 2 },
3151
3175
  name: d.requestsLabel
3152
3176
  }
3153
3177
  ),
3154
- s && f !== null && /* @__PURE__ */ g(
3178
+ l && h !== null && /* @__PURE__ */ b(
3155
3179
  Ye,
3156
3180
  {
3157
- y: f,
3158
- stroke: u,
3181
+ y: h,
3182
+ stroke: m,
3159
3183
  strokeDasharray: "5 5",
3160
3184
  strokeWidth: 2,
3161
3185
  label: {
3162
3186
  value: d.limitLabel,
3163
3187
  position: "right",
3164
- fill: u,
3188
+ fill: m,
3165
3189
  fontSize: 12
3166
3190
  }
3167
3191
  }
@@ -3169,29 +3193,29 @@ const $t = ({
3169
3193
  ]
3170
3194
  }
3171
3195
  ) }),
3172
- /* @__PURE__ */ k("div", { className: "mt-4 flex items-center justify-center gap-6", children: [
3173
- /* @__PURE__ */ k("div", { className: "flex items-center gap-2", children: [
3174
- /* @__PURE__ */ g(
3196
+ /* @__PURE__ */ y("div", { className: "mt-4 flex items-center justify-center gap-6", children: [
3197
+ /* @__PURE__ */ y("div", { className: "flex items-center gap-2", children: [
3198
+ /* @__PURE__ */ b(
3175
3199
  "div",
3176
3200
  {
3177
3201
  className: "h-0.5 w-4 rounded",
3178
- style: { backgroundColor: a }
3202
+ style: { backgroundColor: n }
3179
3203
  }
3180
3204
  ),
3181
- /* @__PURE__ */ g("span", { className: "text-sm text-gray-600 dark:text-gray-400", children: d.requestsLabel })
3205
+ /* @__PURE__ */ b("span", { className: "text-sm text-gray-600 dark:text-gray-400", children: d.requestsLabel })
3182
3206
  ] }),
3183
- s && f !== null && /* @__PURE__ */ k("div", { className: "flex items-center gap-2", children: [
3184
- /* @__PURE__ */ g(
3207
+ l && h !== null && /* @__PURE__ */ y("div", { className: "flex items-center gap-2", children: [
3208
+ /* @__PURE__ */ b(
3185
3209
  "div",
3186
3210
  {
3187
3211
  className: "h-0.5 w-4",
3188
3212
  style: {
3189
- backgroundColor: u,
3213
+ backgroundColor: m,
3190
3214
  borderStyle: "dashed"
3191
3215
  }
3192
3216
  }
3193
3217
  ),
3194
- /* @__PURE__ */ g("span", { className: "text-sm text-gray-600 dark:text-gray-400", children: d.limitLabel })
3218
+ /* @__PURE__ */ b("span", { className: "text-sm text-gray-600 dark:text-gray-400", children: d.limitLabel })
3195
3219
  ] })
3196
3220
  ] })
3197
3221
  ]
@@ -3199,8 +3223,8 @@ const $t = ({
3199
3223
  );
3200
3224
  };
3201
3225
  export {
3202
- Kt as TierComparisonTable,
3203
- Yt as UsageDashboard,
3204
- Xt as UsageHistoryChart,
3205
- T as cn
3226
+ Xt as TierComparisonTable,
3227
+ Kt as UsageDashboard,
3228
+ Jt as UsageHistoryChart,
3229
+ P as cn
3206
3230
  };