@betterstore/react 0.3.16 → 0.3.18
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/CHANGELOG.md +12 -0
- package/dist/index.cjs.js +164 -756
- package/dist/index.mjs +164 -756
- package/package.json +2 -2
package/dist/index.mjs
CHANGED
|
@@ -3383,7 +3383,7 @@ const createI18nInstance = (locale) => __awaiter(void 0, void 0, void 0, functio
|
|
|
3383
3383
|
return instance;
|
|
3384
3384
|
});
|
|
3385
3385
|
|
|
3386
|
-
var M$1=(e,i,s,u,m,a,l,h)=>{let d=document.documentElement,w=["light","dark"];function p(n){(Array.isArray(e)?e:[e]).forEach(y=>{let k=y==="class",S=k&&a?m.map(f=>a[f]||f):m;k?(d.classList.remove(...S),d.classList.add(a&&a[n]?a[n]:n)):d.setAttribute(y,n);}),R(n);}function R(n){h&&w.includes(n)&&(d.style.colorScheme=n);}function c(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}if(u)p(u);else try{let n=localStorage.getItem(i)||s,y=l&&n==="system"?c():n;p(y);}catch(n){}};var x=React.createContext(void 0),U$1={setTheme:e=>{},themes:[]},z
|
|
3386
|
+
var M$1=(e,i,s,u,m,a,l,h)=>{let d=document.documentElement,w=["light","dark"];function p(n){(Array.isArray(e)?e:[e]).forEach(y=>{let k=y==="class",S=k&&a?m.map(f=>a[f]||f):m;k?(d.classList.remove(...S),d.classList.add(a&&a[n]?a[n]:n)):d.setAttribute(y,n);}),R(n);}function R(n){h&&w.includes(n)&&(d.style.colorScheme=n);}function c(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}if(u)p(u);else try{let n=localStorage.getItem(i)||s,y=l&&n==="system"?c():n;p(y);}catch(n){}};var x=React.createContext(void 0),U$1={setTheme:e=>{},themes:[]},z=()=>{var e;return (e=React.useContext(x))!=null?e:U$1};React.memo(({forcedTheme:e,storageKey:i,attribute:s,enableSystem:u,enableColorScheme:m,defaultTheme:a,value:l,themes:h,nonce:d,scriptProps:w})=>{let p=JSON.stringify([s,i,a,e,h,l,u,m]).slice(1,-1);return React.createElement("script",{...w,suppressHydrationWarning:true,nonce:typeof window=="undefined"?d:"",dangerouslySetInnerHTML:{__html:`(${M$1.toString()})(${p})`}})});
|
|
3387
3387
|
|
|
3388
3388
|
function __insertCSS(code) {
|
|
3389
3389
|
if (typeof document == 'undefined') return
|
|
@@ -4504,7 +4504,7 @@ const Toaster$1 = /*#__PURE__*/ React__default.forwardRef(function Toaster(props
|
|
|
4504
4504
|
|
|
4505
4505
|
const Toaster = (_a) => {
|
|
4506
4506
|
var props = __rest(_a, []);
|
|
4507
|
-
const { theme = "system" } = z
|
|
4507
|
+
const { theme = "system" } = z();
|
|
4508
4508
|
return (React__default.createElement(Toaster$1, Object.assign({ theme: theme, className: "toaster group", style: {
|
|
4509
4509
|
"--normal-bg": "var(--popover)",
|
|
4510
4510
|
"--normal-text": "var(--popover-foreground)",
|
|
@@ -14821,7 +14821,7 @@ const motion = /*@__PURE__*/ createDOMMotionComponentProxy(createMotionComponent
|
|
|
14821
14821
|
|
|
14822
14822
|
var util;
|
|
14823
14823
|
(function (util) {
|
|
14824
|
-
util.assertEqual = (
|
|
14824
|
+
util.assertEqual = (_) => { };
|
|
14825
14825
|
function assertIs(_arg) { }
|
|
14826
14826
|
util.assertIs = assertIs;
|
|
14827
14827
|
function assertNever(_x) {
|
|
@@ -14868,11 +14868,9 @@ var util;
|
|
|
14868
14868
|
};
|
|
14869
14869
|
util.isInteger = typeof Number.isInteger === "function"
|
|
14870
14870
|
? (val) => Number.isInteger(val) // eslint-disable-line ban/ban
|
|
14871
|
-
: (val) => typeof val === "number" && isFinite(val) && Math.floor(val) === val;
|
|
14871
|
+
: (val) => typeof val === "number" && Number.isFinite(val) && Math.floor(val) === val;
|
|
14872
14872
|
function joinValues(array, separator = " | ") {
|
|
14873
|
-
return array
|
|
14874
|
-
.map((val) => (typeof val === "string" ? `'${val}'` : val))
|
|
14875
|
-
.join(separator);
|
|
14873
|
+
return array.map((val) => (typeof val === "string" ? `'${val}'` : val)).join(separator);
|
|
14876
14874
|
}
|
|
14877
14875
|
util.joinValues = joinValues;
|
|
14878
14876
|
util.jsonStringifyReplacer = (_, value) => {
|
|
@@ -14921,7 +14919,7 @@ const getParsedType = (data) => {
|
|
|
14921
14919
|
case "string":
|
|
14922
14920
|
return ZodParsedType.string;
|
|
14923
14921
|
case "number":
|
|
14924
|
-
return isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;
|
|
14922
|
+
return Number.isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;
|
|
14925
14923
|
case "boolean":
|
|
14926
14924
|
return ZodParsedType.boolean;
|
|
14927
14925
|
case "function":
|
|
@@ -14937,10 +14935,7 @@ const getParsedType = (data) => {
|
|
|
14937
14935
|
if (data === null) {
|
|
14938
14936
|
return ZodParsedType.null;
|
|
14939
14937
|
}
|
|
14940
|
-
if (data.then &&
|
|
14941
|
-
typeof data.then === "function" &&
|
|
14942
|
-
data.catch &&
|
|
14943
|
-
typeof data.catch === "function") {
|
|
14938
|
+
if (data.then && typeof data.then === "function" && data.catch && typeof data.catch === "function") {
|
|
14944
14939
|
return ZodParsedType.promise;
|
|
14945
14940
|
}
|
|
14946
14941
|
if (typeof Map !== "undefined" && data instanceof Map) {
|
|
@@ -14976,10 +14971,6 @@ const ZodIssueCode = util.arrayToEnum([
|
|
|
14976
14971
|
"not_multiple_of",
|
|
14977
14972
|
"not_finite",
|
|
14978
14973
|
]);
|
|
14979
|
-
const quotelessJson = (obj) => {
|
|
14980
|
-
const json = JSON.stringify(obj, null, 2);
|
|
14981
|
-
return json.replace(/"([^"]+)":/g, "$1:");
|
|
14982
|
-
};
|
|
14983
14974
|
class ZodError extends Error {
|
|
14984
14975
|
get errors() {
|
|
14985
14976
|
return this.issues;
|
|
@@ -15156,17 +15147,9 @@ const errorMap = (issue, _ctx) => {
|
|
|
15156
15147
|
else if (issue.type === "string")
|
|
15157
15148
|
message = `String must contain ${issue.exact ? "exactly" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;
|
|
15158
15149
|
else if (issue.type === "number")
|
|
15159
|
-
message = `Number must be ${issue.exact
|
|
15160
|
-
? `exactly equal to `
|
|
15161
|
-
: issue.inclusive
|
|
15162
|
-
? `greater than or equal to `
|
|
15163
|
-
: `greater than `}${issue.minimum}`;
|
|
15150
|
+
message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;
|
|
15164
15151
|
else if (issue.type === "date")
|
|
15165
|
-
message = `Date must be ${issue.exact
|
|
15166
|
-
? `exactly equal to `
|
|
15167
|
-
: issue.inclusive
|
|
15168
|
-
? `greater than or equal to `
|
|
15169
|
-
: `greater than `}${new Date(Number(issue.minimum))}`;
|
|
15152
|
+
message = `Date must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${new Date(Number(issue.minimum))}`;
|
|
15170
15153
|
else
|
|
15171
15154
|
message = "Invalid input";
|
|
15172
15155
|
break;
|
|
@@ -15176,23 +15159,11 @@ const errorMap = (issue, _ctx) => {
|
|
|
15176
15159
|
else if (issue.type === "string")
|
|
15177
15160
|
message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;
|
|
15178
15161
|
else if (issue.type === "number")
|
|
15179
|
-
message = `Number must be ${issue.exact
|
|
15180
|
-
? `exactly`
|
|
15181
|
-
: issue.inclusive
|
|
15182
|
-
? `less than or equal to`
|
|
15183
|
-
: `less than`} ${issue.maximum}`;
|
|
15162
|
+
message = `Number must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;
|
|
15184
15163
|
else if (issue.type === "bigint")
|
|
15185
|
-
message = `BigInt must be ${issue.exact
|
|
15186
|
-
? `exactly`
|
|
15187
|
-
: issue.inclusive
|
|
15188
|
-
? `less than or equal to`
|
|
15189
|
-
: `less than`} ${issue.maximum}`;
|
|
15164
|
+
message = `BigInt must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;
|
|
15190
15165
|
else if (issue.type === "date")
|
|
15191
|
-
message = `Date must be ${issue.exact
|
|
15192
|
-
? `exactly`
|
|
15193
|
-
: issue.inclusive
|
|
15194
|
-
? `smaller than or equal to`
|
|
15195
|
-
: `smaller than`} ${new Date(Number(issue.maximum))}`;
|
|
15166
|
+
message = `Date must be ${issue.exact ? `exactly` : issue.inclusive ? `smaller than or equal to` : `smaller than`} ${new Date(Number(issue.maximum))}`;
|
|
15196
15167
|
else
|
|
15197
15168
|
message = "Invalid input";
|
|
15198
15169
|
break;
|
|
@@ -15216,9 +15187,6 @@ const errorMap = (issue, _ctx) => {
|
|
|
15216
15187
|
};
|
|
15217
15188
|
|
|
15218
15189
|
let overrideErrorMap = errorMap;
|
|
15219
|
-
function setErrorMap(map) {
|
|
15220
|
-
overrideErrorMap = map;
|
|
15221
|
-
}
|
|
15222
15190
|
function getErrorMap() {
|
|
15223
15191
|
return overrideErrorMap;
|
|
15224
15192
|
}
|
|
@@ -15251,7 +15219,6 @@ const makeIssue = (params) => {
|
|
|
15251
15219
|
message: errorMessage,
|
|
15252
15220
|
};
|
|
15253
15221
|
};
|
|
15254
|
-
const EMPTY_PATH = [];
|
|
15255
15222
|
function addIssueToContext(ctx, issueData) {
|
|
15256
15223
|
const overrideMap = getErrorMap();
|
|
15257
15224
|
const issue = makeIssue({
|
|
@@ -15314,8 +15281,7 @@ class ParseStatus {
|
|
|
15314
15281
|
status.dirty();
|
|
15315
15282
|
if (value.status === "dirty")
|
|
15316
15283
|
status.dirty();
|
|
15317
|
-
if (key.value !== "__proto__" &&
|
|
15318
|
-
(typeof value.value !== "undefined" || pair.alwaysSet)) {
|
|
15284
|
+
if (key.value !== "__proto__" && (typeof value.value !== "undefined" || pair.alwaysSet)) {
|
|
15319
15285
|
finalObject[key.value] = value.value;
|
|
15320
15286
|
}
|
|
15321
15287
|
}
|
|
@@ -15332,42 +15298,24 @@ const isDirty = (x) => x.status === "dirty";
|
|
|
15332
15298
|
const isValid = (x) => x.status === "valid";
|
|
15333
15299
|
const isAsync = (x) => typeof Promise !== "undefined" && x instanceof Promise;
|
|
15334
15300
|
|
|
15335
|
-
/******************************************************************************
|
|
15336
|
-
Copyright (c) Microsoft Corporation.
|
|
15337
|
-
|
|
15338
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
|
15339
|
-
purpose with or without fee is hereby granted.
|
|
15340
|
-
|
|
15341
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
15342
|
-
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
15343
|
-
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
15344
|
-
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
15345
|
-
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
15346
|
-
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
15347
|
-
PERFORMANCE OF THIS SOFTWARE.
|
|
15348
|
-
***************************************************************************** */
|
|
15349
|
-
|
|
15350
|
-
function __classPrivateFieldGet(receiver, state, kind, f) {
|
|
15351
|
-
if (typeof state === "function" ? receiver !== state || true : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
15352
|
-
return state.get(receiver);
|
|
15353
|
-
}
|
|
15354
|
-
|
|
15355
|
-
function __classPrivateFieldSet(receiver, state, value, kind, f) {
|
|
15356
|
-
if (typeof state === "function" ? receiver !== state || true : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
15357
|
-
return (state.set(receiver, value)), value;
|
|
15358
|
-
}
|
|
15359
|
-
|
|
15360
|
-
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
15361
|
-
var e = new Error(message);
|
|
15362
|
-
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
15363
|
-
};
|
|
15364
|
-
|
|
15365
15301
|
var errorUtil;
|
|
15366
15302
|
(function (errorUtil) {
|
|
15367
15303
|
errorUtil.errToObj = (message) => typeof message === "string" ? { message } : message || {};
|
|
15368
|
-
|
|
15304
|
+
// biome-ignore lint:
|
|
15305
|
+
errorUtil.toString = (message) => typeof message === "string" ? message : message?.message;
|
|
15369
15306
|
})(errorUtil || (errorUtil = {}));
|
|
15370
15307
|
|
|
15308
|
+
var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
15309
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
15310
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
15311
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
15312
|
+
};
|
|
15313
|
+
var __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
15314
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
15315
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
15316
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
15317
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
15318
|
+
};
|
|
15371
15319
|
var _ZodEnum_cache, _ZodNativeEnum_cache;
|
|
15372
15320
|
class ParseInputLazyPath {
|
|
15373
15321
|
constructor(parent, value, path, key) {
|
|
@@ -15379,7 +15327,7 @@ class ParseInputLazyPath {
|
|
|
15379
15327
|
}
|
|
15380
15328
|
get path() {
|
|
15381
15329
|
if (!this._cachedPath.length) {
|
|
15382
|
-
if (this._key
|
|
15330
|
+
if (Array.isArray(this._key)) {
|
|
15383
15331
|
this._cachedPath.push(...this._path, ...this._key);
|
|
15384
15332
|
}
|
|
15385
15333
|
else {
|
|
@@ -15419,17 +15367,16 @@ function processCreateParams(params) {
|
|
|
15419
15367
|
if (errorMap)
|
|
15420
15368
|
return { errorMap: errorMap, description };
|
|
15421
15369
|
const customMap = (iss, ctx) => {
|
|
15422
|
-
var _a, _b;
|
|
15423
15370
|
const { message } = params;
|
|
15424
15371
|
if (iss.code === "invalid_enum_value") {
|
|
15425
|
-
return { message: message
|
|
15372
|
+
return { message: message ?? ctx.defaultError };
|
|
15426
15373
|
}
|
|
15427
15374
|
if (typeof ctx.data === "undefined") {
|
|
15428
|
-
return { message:
|
|
15375
|
+
return { message: message ?? required_error ?? ctx.defaultError };
|
|
15429
15376
|
}
|
|
15430
15377
|
if (iss.code !== "invalid_type")
|
|
15431
15378
|
return { message: ctx.defaultError };
|
|
15432
|
-
return { message:
|
|
15379
|
+
return { message: message ?? invalid_type_error ?? ctx.defaultError };
|
|
15433
15380
|
};
|
|
15434
15381
|
return { errorMap: customMap, description };
|
|
15435
15382
|
}
|
|
@@ -15481,14 +15428,13 @@ class ZodType {
|
|
|
15481
15428
|
throw result.error;
|
|
15482
15429
|
}
|
|
15483
15430
|
safeParse(data, params) {
|
|
15484
|
-
var _a;
|
|
15485
15431
|
const ctx = {
|
|
15486
15432
|
common: {
|
|
15487
15433
|
issues: [],
|
|
15488
|
-
async:
|
|
15489
|
-
contextualErrorMap: params
|
|
15434
|
+
async: params?.async ?? false,
|
|
15435
|
+
contextualErrorMap: params?.errorMap,
|
|
15490
15436
|
},
|
|
15491
|
-
path:
|
|
15437
|
+
path: params?.path || [],
|
|
15492
15438
|
schemaErrorMap: this._def.errorMap,
|
|
15493
15439
|
parent: null,
|
|
15494
15440
|
data,
|
|
@@ -15498,7 +15444,6 @@ class ZodType {
|
|
|
15498
15444
|
return handleResult(ctx, result);
|
|
15499
15445
|
}
|
|
15500
15446
|
"~validate"(data) {
|
|
15501
|
-
var _a, _b;
|
|
15502
15447
|
const ctx = {
|
|
15503
15448
|
common: {
|
|
15504
15449
|
issues: [],
|
|
@@ -15522,7 +15467,7 @@ class ZodType {
|
|
|
15522
15467
|
};
|
|
15523
15468
|
}
|
|
15524
15469
|
catch (err) {
|
|
15525
|
-
if (
|
|
15470
|
+
if (err?.message?.toLowerCase()?.includes("encountered")) {
|
|
15526
15471
|
this["~standard"].async = true;
|
|
15527
15472
|
}
|
|
15528
15473
|
ctx.common = {
|
|
@@ -15549,19 +15494,17 @@ class ZodType {
|
|
|
15549
15494
|
const ctx = {
|
|
15550
15495
|
common: {
|
|
15551
15496
|
issues: [],
|
|
15552
|
-
contextualErrorMap: params
|
|
15497
|
+
contextualErrorMap: params?.errorMap,
|
|
15553
15498
|
async: true,
|
|
15554
15499
|
},
|
|
15555
|
-
path:
|
|
15500
|
+
path: params?.path || [],
|
|
15556
15501
|
schemaErrorMap: this._def.errorMap,
|
|
15557
15502
|
parent: null,
|
|
15558
15503
|
data,
|
|
15559
15504
|
parsedType: getParsedType(data),
|
|
15560
15505
|
};
|
|
15561
15506
|
const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });
|
|
15562
|
-
const result = await (isAsync(maybeAsyncResult)
|
|
15563
|
-
? maybeAsyncResult
|
|
15564
|
-
: Promise.resolve(maybeAsyncResult));
|
|
15507
|
+
const result = await (isAsync(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult));
|
|
15565
15508
|
return handleResult(ctx, result);
|
|
15566
15509
|
}
|
|
15567
15510
|
refine(check, message) {
|
|
@@ -15605,9 +15548,7 @@ class ZodType {
|
|
|
15605
15548
|
refinement(check, refinementData) {
|
|
15606
15549
|
return this._refinement((val, ctx) => {
|
|
15607
15550
|
if (!check(val)) {
|
|
15608
|
-
ctx.addIssue(typeof refinementData === "function"
|
|
15609
|
-
? refinementData(val, ctx)
|
|
15610
|
-
: refinementData);
|
|
15551
|
+
ctx.addIssue(typeof refinementData === "function" ? refinementData(val, ctx) : refinementData);
|
|
15611
15552
|
return false;
|
|
15612
15553
|
}
|
|
15613
15554
|
else {
|
|
@@ -15824,13 +15765,15 @@ function isValidJWT(jwt, alg) {
|
|
|
15824
15765
|
const decoded = JSON.parse(atob(base64));
|
|
15825
15766
|
if (typeof decoded !== "object" || decoded === null)
|
|
15826
15767
|
return false;
|
|
15827
|
-
if (
|
|
15768
|
+
if ("typ" in decoded && decoded?.typ !== "JWT")
|
|
15769
|
+
return false;
|
|
15770
|
+
if (!decoded.alg)
|
|
15828
15771
|
return false;
|
|
15829
15772
|
if (alg && decoded.alg !== alg)
|
|
15830
15773
|
return false;
|
|
15831
15774
|
return true;
|
|
15832
15775
|
}
|
|
15833
|
-
catch
|
|
15776
|
+
catch {
|
|
15834
15777
|
return false;
|
|
15835
15778
|
}
|
|
15836
15779
|
}
|
|
@@ -16001,7 +15944,7 @@ class ZodString extends ZodType {
|
|
|
16001
15944
|
try {
|
|
16002
15945
|
new URL(input.data);
|
|
16003
15946
|
}
|
|
16004
|
-
catch
|
|
15947
|
+
catch {
|
|
16005
15948
|
ctx = this._getOrReturnCtx(input, ctx);
|
|
16006
15949
|
addIssueToContext(ctx, {
|
|
16007
15950
|
validation: "url",
|
|
@@ -16231,7 +16174,6 @@ class ZodString extends ZodType {
|
|
|
16231
16174
|
return this._addCheck({ kind: "cidr", ...errorUtil.errToObj(options) });
|
|
16232
16175
|
}
|
|
16233
16176
|
datetime(options) {
|
|
16234
|
-
var _a, _b;
|
|
16235
16177
|
if (typeof options === "string") {
|
|
16236
16178
|
return this._addCheck({
|
|
16237
16179
|
kind: "datetime",
|
|
@@ -16243,10 +16185,10 @@ class ZodString extends ZodType {
|
|
|
16243
16185
|
}
|
|
16244
16186
|
return this._addCheck({
|
|
16245
16187
|
kind: "datetime",
|
|
16246
|
-
precision: typeof
|
|
16247
|
-
offset:
|
|
16248
|
-
local:
|
|
16249
|
-
...errorUtil.errToObj(options
|
|
16188
|
+
precision: typeof options?.precision === "undefined" ? null : options?.precision,
|
|
16189
|
+
offset: options?.offset ?? false,
|
|
16190
|
+
local: options?.local ?? false,
|
|
16191
|
+
...errorUtil.errToObj(options?.message),
|
|
16250
16192
|
});
|
|
16251
16193
|
}
|
|
16252
16194
|
date(message) {
|
|
@@ -16262,8 +16204,8 @@ class ZodString extends ZodType {
|
|
|
16262
16204
|
}
|
|
16263
16205
|
return this._addCheck({
|
|
16264
16206
|
kind: "time",
|
|
16265
|
-
precision: typeof
|
|
16266
|
-
...errorUtil.errToObj(options
|
|
16207
|
+
precision: typeof options?.precision === "undefined" ? null : options?.precision,
|
|
16208
|
+
...errorUtil.errToObj(options?.message),
|
|
16267
16209
|
});
|
|
16268
16210
|
}
|
|
16269
16211
|
duration(message) {
|
|
@@ -16280,8 +16222,8 @@ class ZodString extends ZodType {
|
|
|
16280
16222
|
return this._addCheck({
|
|
16281
16223
|
kind: "includes",
|
|
16282
16224
|
value: value,
|
|
16283
|
-
position: options
|
|
16284
|
-
...errorUtil.errToObj(options
|
|
16225
|
+
position: options?.position,
|
|
16226
|
+
...errorUtil.errToObj(options?.message),
|
|
16285
16227
|
});
|
|
16286
16228
|
}
|
|
16287
16229
|
startsWith(value, message) {
|
|
@@ -16414,11 +16356,10 @@ class ZodString extends ZodType {
|
|
|
16414
16356
|
}
|
|
16415
16357
|
}
|
|
16416
16358
|
ZodString.create = (params) => {
|
|
16417
|
-
var _a;
|
|
16418
16359
|
return new ZodString({
|
|
16419
16360
|
checks: [],
|
|
16420
16361
|
typeName: ZodFirstPartyTypeKind.ZodString,
|
|
16421
|
-
coerce:
|
|
16362
|
+
coerce: params?.coerce ?? false,
|
|
16422
16363
|
...processCreateParams(params),
|
|
16423
16364
|
});
|
|
16424
16365
|
};
|
|
@@ -16427,9 +16368,9 @@ function floatSafeRemainder(val, step) {
|
|
|
16427
16368
|
const valDecCount = (val.toString().split(".")[1] || "").length;
|
|
16428
16369
|
const stepDecCount = (step.toString().split(".")[1] || "").length;
|
|
16429
16370
|
const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;
|
|
16430
|
-
const valInt = parseInt(val.toFixed(decCount).replace(".", ""));
|
|
16431
|
-
const stepInt = parseInt(step.toFixed(decCount).replace(".", ""));
|
|
16432
|
-
return (valInt % stepInt) /
|
|
16371
|
+
const valInt = Number.parseInt(val.toFixed(decCount).replace(".", ""));
|
|
16372
|
+
const stepInt = Number.parseInt(step.toFixed(decCount).replace(".", ""));
|
|
16373
|
+
return (valInt % stepInt) / 10 ** decCount;
|
|
16433
16374
|
}
|
|
16434
16375
|
class ZodNumber extends ZodType {
|
|
16435
16376
|
constructor() {
|
|
@@ -16468,9 +16409,7 @@ class ZodNumber extends ZodType {
|
|
|
16468
16409
|
}
|
|
16469
16410
|
}
|
|
16470
16411
|
else if (check.kind === "min") {
|
|
16471
|
-
const tooSmall = check.inclusive
|
|
16472
|
-
? input.data < check.value
|
|
16473
|
-
: input.data <= check.value;
|
|
16412
|
+
const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;
|
|
16474
16413
|
if (tooSmall) {
|
|
16475
16414
|
ctx = this._getOrReturnCtx(input, ctx);
|
|
16476
16415
|
addIssueToContext(ctx, {
|
|
@@ -16485,9 +16424,7 @@ class ZodNumber extends ZodType {
|
|
|
16485
16424
|
}
|
|
16486
16425
|
}
|
|
16487
16426
|
else if (check.kind === "max") {
|
|
16488
|
-
const tooBig = check.inclusive
|
|
16489
|
-
? input.data > check.value
|
|
16490
|
-
: input.data >= check.value;
|
|
16427
|
+
const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;
|
|
16491
16428
|
if (tooBig) {
|
|
16492
16429
|
ctx = this._getOrReturnCtx(input, ctx);
|
|
16493
16430
|
addIssueToContext(ctx, {
|
|
@@ -16645,15 +16582,13 @@ class ZodNumber extends ZodType {
|
|
|
16645
16582
|
return max;
|
|
16646
16583
|
}
|
|
16647
16584
|
get isInt() {
|
|
16648
|
-
return !!this._def.checks.find((ch) => ch.kind === "int" ||
|
|
16649
|
-
(ch.kind === "multipleOf" && util.isInteger(ch.value)));
|
|
16585
|
+
return !!this._def.checks.find((ch) => ch.kind === "int" || (ch.kind === "multipleOf" && util.isInteger(ch.value)));
|
|
16650
16586
|
}
|
|
16651
16587
|
get isFinite() {
|
|
16652
|
-
let max = null
|
|
16588
|
+
let max = null;
|
|
16589
|
+
let min = null;
|
|
16653
16590
|
for (const ch of this._def.checks) {
|
|
16654
|
-
if (ch.kind === "finite" ||
|
|
16655
|
-
ch.kind === "int" ||
|
|
16656
|
-
ch.kind === "multipleOf") {
|
|
16591
|
+
if (ch.kind === "finite" || ch.kind === "int" || ch.kind === "multipleOf") {
|
|
16657
16592
|
return true;
|
|
16658
16593
|
}
|
|
16659
16594
|
else if (ch.kind === "min") {
|
|
@@ -16672,7 +16607,7 @@ ZodNumber.create = (params) => {
|
|
|
16672
16607
|
return new ZodNumber({
|
|
16673
16608
|
checks: [],
|
|
16674
16609
|
typeName: ZodFirstPartyTypeKind.ZodNumber,
|
|
16675
|
-
coerce:
|
|
16610
|
+
coerce: params?.coerce || false,
|
|
16676
16611
|
...processCreateParams(params),
|
|
16677
16612
|
});
|
|
16678
16613
|
};
|
|
@@ -16687,7 +16622,7 @@ class ZodBigInt extends ZodType {
|
|
|
16687
16622
|
try {
|
|
16688
16623
|
input.data = BigInt(input.data);
|
|
16689
16624
|
}
|
|
16690
|
-
catch
|
|
16625
|
+
catch {
|
|
16691
16626
|
return this._getInvalidInput(input);
|
|
16692
16627
|
}
|
|
16693
16628
|
}
|
|
@@ -16699,9 +16634,7 @@ class ZodBigInt extends ZodType {
|
|
|
16699
16634
|
const status = new ParseStatus();
|
|
16700
16635
|
for (const check of this._def.checks) {
|
|
16701
16636
|
if (check.kind === "min") {
|
|
16702
|
-
const tooSmall = check.inclusive
|
|
16703
|
-
? input.data < check.value
|
|
16704
|
-
: input.data <= check.value;
|
|
16637
|
+
const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;
|
|
16705
16638
|
if (tooSmall) {
|
|
16706
16639
|
ctx = this._getOrReturnCtx(input, ctx);
|
|
16707
16640
|
addIssueToContext(ctx, {
|
|
@@ -16715,9 +16648,7 @@ class ZodBigInt extends ZodType {
|
|
|
16715
16648
|
}
|
|
16716
16649
|
}
|
|
16717
16650
|
else if (check.kind === "max") {
|
|
16718
|
-
const tooBig = check.inclusive
|
|
16719
|
-
? input.data > check.value
|
|
16720
|
-
: input.data >= check.value;
|
|
16651
|
+
const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;
|
|
16721
16652
|
if (tooBig) {
|
|
16722
16653
|
ctx = this._getOrReturnCtx(input, ctx);
|
|
16723
16654
|
addIssueToContext(ctx, {
|
|
@@ -16849,11 +16780,10 @@ class ZodBigInt extends ZodType {
|
|
|
16849
16780
|
}
|
|
16850
16781
|
}
|
|
16851
16782
|
ZodBigInt.create = (params) => {
|
|
16852
|
-
var _a;
|
|
16853
16783
|
return new ZodBigInt({
|
|
16854
16784
|
checks: [],
|
|
16855
16785
|
typeName: ZodFirstPartyTypeKind.ZodBigInt,
|
|
16856
|
-
coerce:
|
|
16786
|
+
coerce: params?.coerce ?? false,
|
|
16857
16787
|
...processCreateParams(params),
|
|
16858
16788
|
});
|
|
16859
16789
|
};
|
|
@@ -16878,7 +16808,7 @@ class ZodBoolean extends ZodType {
|
|
|
16878
16808
|
ZodBoolean.create = (params) => {
|
|
16879
16809
|
return new ZodBoolean({
|
|
16880
16810
|
typeName: ZodFirstPartyTypeKind.ZodBoolean,
|
|
16881
|
-
coerce:
|
|
16811
|
+
coerce: params?.coerce || false,
|
|
16882
16812
|
...processCreateParams(params),
|
|
16883
16813
|
});
|
|
16884
16814
|
};
|
|
@@ -16897,7 +16827,7 @@ class ZodDate extends ZodType {
|
|
|
16897
16827
|
});
|
|
16898
16828
|
return INVALID;
|
|
16899
16829
|
}
|
|
16900
|
-
if (isNaN(input.data.getTime())) {
|
|
16830
|
+
if (Number.isNaN(input.data.getTime())) {
|
|
16901
16831
|
const ctx = this._getOrReturnCtx(input);
|
|
16902
16832
|
addIssueToContext(ctx, {
|
|
16903
16833
|
code: ZodIssueCode.invalid_date,
|
|
@@ -16988,7 +16918,7 @@ class ZodDate extends ZodType {
|
|
|
16988
16918
|
ZodDate.create = (params) => {
|
|
16989
16919
|
return new ZodDate({
|
|
16990
16920
|
checks: [],
|
|
16991
|
-
coerce:
|
|
16921
|
+
coerce: params?.coerce || false,
|
|
16992
16922
|
typeName: ZodFirstPartyTypeKind.ZodDate,
|
|
16993
16923
|
...processCreateParams(params),
|
|
16994
16924
|
});
|
|
@@ -17310,7 +17240,8 @@ class ZodObject extends ZodType {
|
|
|
17310
17240
|
return this._cached;
|
|
17311
17241
|
const shape = this._def.shape();
|
|
17312
17242
|
const keys = util.objectKeys(shape);
|
|
17313
|
-
|
|
17243
|
+
this._cached = { shape, keys };
|
|
17244
|
+
return this._cached;
|
|
17314
17245
|
}
|
|
17315
17246
|
_parse(input) {
|
|
17316
17247
|
const parsedType = this._getType(input);
|
|
@@ -17326,8 +17257,7 @@ class ZodObject extends ZodType {
|
|
|
17326
17257
|
const { status, ctx } = this._processInputParams(input);
|
|
17327
17258
|
const { shape, keys: shapeKeys } = this._getCached();
|
|
17328
17259
|
const extraKeys = [];
|
|
17329
|
-
if (!(this._def.catchall instanceof ZodNever &&
|
|
17330
|
-
this._def.unknownKeys === "strip")) {
|
|
17260
|
+
if (!(this._def.catchall instanceof ZodNever && this._def.unknownKeys === "strip")) {
|
|
17331
17261
|
for (const key in ctx.data) {
|
|
17332
17262
|
if (!shapeKeys.includes(key)) {
|
|
17333
17263
|
extraKeys.push(key);
|
|
@@ -17415,11 +17345,10 @@ class ZodObject extends ZodType {
|
|
|
17415
17345
|
...(message !== undefined
|
|
17416
17346
|
? {
|
|
17417
17347
|
errorMap: (issue, ctx) => {
|
|
17418
|
-
|
|
17419
|
-
const defaultError = (_c = (_b = (_a = this._def).errorMap) === null || _b === void 0 ? void 0 : _b.call(_a, issue, ctx).message) !== null && _c !== void 0 ? _c : ctx.defaultError;
|
|
17348
|
+
const defaultError = this._def.errorMap?.(issue, ctx).message ?? ctx.defaultError;
|
|
17420
17349
|
if (issue.code === "unrecognized_keys")
|
|
17421
17350
|
return {
|
|
17422
|
-
message:
|
|
17351
|
+
message: errorUtil.errToObj(message).message ?? defaultError,
|
|
17423
17352
|
};
|
|
17424
17353
|
return {
|
|
17425
17354
|
message: defaultError,
|
|
@@ -17551,11 +17480,11 @@ class ZodObject extends ZodType {
|
|
|
17551
17480
|
}
|
|
17552
17481
|
pick(mask) {
|
|
17553
17482
|
const shape = {};
|
|
17554
|
-
util.objectKeys(mask)
|
|
17483
|
+
for (const key of util.objectKeys(mask)) {
|
|
17555
17484
|
if (mask[key] && this.shape[key]) {
|
|
17556
17485
|
shape[key] = this.shape[key];
|
|
17557
17486
|
}
|
|
17558
|
-
}
|
|
17487
|
+
}
|
|
17559
17488
|
return new ZodObject({
|
|
17560
17489
|
...this._def,
|
|
17561
17490
|
shape: () => shape,
|
|
@@ -17563,11 +17492,11 @@ class ZodObject extends ZodType {
|
|
|
17563
17492
|
}
|
|
17564
17493
|
omit(mask) {
|
|
17565
17494
|
const shape = {};
|
|
17566
|
-
util.objectKeys(this.shape)
|
|
17495
|
+
for (const key of util.objectKeys(this.shape)) {
|
|
17567
17496
|
if (!mask[key]) {
|
|
17568
17497
|
shape[key] = this.shape[key];
|
|
17569
17498
|
}
|
|
17570
|
-
}
|
|
17499
|
+
}
|
|
17571
17500
|
return new ZodObject({
|
|
17572
17501
|
...this._def,
|
|
17573
17502
|
shape: () => shape,
|
|
@@ -17581,7 +17510,7 @@ class ZodObject extends ZodType {
|
|
|
17581
17510
|
}
|
|
17582
17511
|
partial(mask) {
|
|
17583
17512
|
const newShape = {};
|
|
17584
|
-
util.objectKeys(this.shape)
|
|
17513
|
+
for (const key of util.objectKeys(this.shape)) {
|
|
17585
17514
|
const fieldSchema = this.shape[key];
|
|
17586
17515
|
if (mask && !mask[key]) {
|
|
17587
17516
|
newShape[key] = fieldSchema;
|
|
@@ -17589,7 +17518,7 @@ class ZodObject extends ZodType {
|
|
|
17589
17518
|
else {
|
|
17590
17519
|
newShape[key] = fieldSchema.optional();
|
|
17591
17520
|
}
|
|
17592
|
-
}
|
|
17521
|
+
}
|
|
17593
17522
|
return new ZodObject({
|
|
17594
17523
|
...this._def,
|
|
17595
17524
|
shape: () => newShape,
|
|
@@ -17597,7 +17526,7 @@ class ZodObject extends ZodType {
|
|
|
17597
17526
|
}
|
|
17598
17527
|
required(mask) {
|
|
17599
17528
|
const newShape = {};
|
|
17600
|
-
util.objectKeys(this.shape)
|
|
17529
|
+
for (const key of util.objectKeys(this.shape)) {
|
|
17601
17530
|
if (mask && !mask[key]) {
|
|
17602
17531
|
newShape[key] = this.shape[key];
|
|
17603
17532
|
}
|
|
@@ -17609,7 +17538,7 @@ class ZodObject extends ZodType {
|
|
|
17609
17538
|
}
|
|
17610
17539
|
newShape[key] = newField;
|
|
17611
17540
|
}
|
|
17612
|
-
}
|
|
17541
|
+
}
|
|
17613
17542
|
return new ZodObject({
|
|
17614
17543
|
...this._def,
|
|
17615
17544
|
shape: () => newShape,
|
|
@@ -17742,137 +17671,6 @@ ZodUnion.create = (types, params) => {
|
|
|
17742
17671
|
...processCreateParams(params),
|
|
17743
17672
|
});
|
|
17744
17673
|
};
|
|
17745
|
-
/////////////////////////////////////////////////////
|
|
17746
|
-
/////////////////////////////////////////////////////
|
|
17747
|
-
////////// //////////
|
|
17748
|
-
////////// ZodDiscriminatedUnion //////////
|
|
17749
|
-
////////// //////////
|
|
17750
|
-
/////////////////////////////////////////////////////
|
|
17751
|
-
/////////////////////////////////////////////////////
|
|
17752
|
-
const getDiscriminator = (type) => {
|
|
17753
|
-
if (type instanceof ZodLazy) {
|
|
17754
|
-
return getDiscriminator(type.schema);
|
|
17755
|
-
}
|
|
17756
|
-
else if (type instanceof ZodEffects) {
|
|
17757
|
-
return getDiscriminator(type.innerType());
|
|
17758
|
-
}
|
|
17759
|
-
else if (type instanceof ZodLiteral) {
|
|
17760
|
-
return [type.value];
|
|
17761
|
-
}
|
|
17762
|
-
else if (type instanceof ZodEnum) {
|
|
17763
|
-
return type.options;
|
|
17764
|
-
}
|
|
17765
|
-
else if (type instanceof ZodNativeEnum) {
|
|
17766
|
-
// eslint-disable-next-line ban/ban
|
|
17767
|
-
return util.objectValues(type.enum);
|
|
17768
|
-
}
|
|
17769
|
-
else if (type instanceof ZodDefault) {
|
|
17770
|
-
return getDiscriminator(type._def.innerType);
|
|
17771
|
-
}
|
|
17772
|
-
else if (type instanceof ZodUndefined) {
|
|
17773
|
-
return [undefined];
|
|
17774
|
-
}
|
|
17775
|
-
else if (type instanceof ZodNull) {
|
|
17776
|
-
return [null];
|
|
17777
|
-
}
|
|
17778
|
-
else if (type instanceof ZodOptional) {
|
|
17779
|
-
return [undefined, ...getDiscriminator(type.unwrap())];
|
|
17780
|
-
}
|
|
17781
|
-
else if (type instanceof ZodNullable) {
|
|
17782
|
-
return [null, ...getDiscriminator(type.unwrap())];
|
|
17783
|
-
}
|
|
17784
|
-
else if (type instanceof ZodBranded) {
|
|
17785
|
-
return getDiscriminator(type.unwrap());
|
|
17786
|
-
}
|
|
17787
|
-
else if (type instanceof ZodReadonly) {
|
|
17788
|
-
return getDiscriminator(type.unwrap());
|
|
17789
|
-
}
|
|
17790
|
-
else if (type instanceof ZodCatch) {
|
|
17791
|
-
return getDiscriminator(type._def.innerType);
|
|
17792
|
-
}
|
|
17793
|
-
else {
|
|
17794
|
-
return [];
|
|
17795
|
-
}
|
|
17796
|
-
};
|
|
17797
|
-
class ZodDiscriminatedUnion extends ZodType {
|
|
17798
|
-
_parse(input) {
|
|
17799
|
-
const { ctx } = this._processInputParams(input);
|
|
17800
|
-
if (ctx.parsedType !== ZodParsedType.object) {
|
|
17801
|
-
addIssueToContext(ctx, {
|
|
17802
|
-
code: ZodIssueCode.invalid_type,
|
|
17803
|
-
expected: ZodParsedType.object,
|
|
17804
|
-
received: ctx.parsedType,
|
|
17805
|
-
});
|
|
17806
|
-
return INVALID;
|
|
17807
|
-
}
|
|
17808
|
-
const discriminator = this.discriminator;
|
|
17809
|
-
const discriminatorValue = ctx.data[discriminator];
|
|
17810
|
-
const option = this.optionsMap.get(discriminatorValue);
|
|
17811
|
-
if (!option) {
|
|
17812
|
-
addIssueToContext(ctx, {
|
|
17813
|
-
code: ZodIssueCode.invalid_union_discriminator,
|
|
17814
|
-
options: Array.from(this.optionsMap.keys()),
|
|
17815
|
-
path: [discriminator],
|
|
17816
|
-
});
|
|
17817
|
-
return INVALID;
|
|
17818
|
-
}
|
|
17819
|
-
if (ctx.common.async) {
|
|
17820
|
-
return option._parseAsync({
|
|
17821
|
-
data: ctx.data,
|
|
17822
|
-
path: ctx.path,
|
|
17823
|
-
parent: ctx,
|
|
17824
|
-
});
|
|
17825
|
-
}
|
|
17826
|
-
else {
|
|
17827
|
-
return option._parseSync({
|
|
17828
|
-
data: ctx.data,
|
|
17829
|
-
path: ctx.path,
|
|
17830
|
-
parent: ctx,
|
|
17831
|
-
});
|
|
17832
|
-
}
|
|
17833
|
-
}
|
|
17834
|
-
get discriminator() {
|
|
17835
|
-
return this._def.discriminator;
|
|
17836
|
-
}
|
|
17837
|
-
get options() {
|
|
17838
|
-
return this._def.options;
|
|
17839
|
-
}
|
|
17840
|
-
get optionsMap() {
|
|
17841
|
-
return this._def.optionsMap;
|
|
17842
|
-
}
|
|
17843
|
-
/**
|
|
17844
|
-
* The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.
|
|
17845
|
-
* However, it only allows a union of objects, all of which need to share a discriminator property. This property must
|
|
17846
|
-
* have a different value for each object in the union.
|
|
17847
|
-
* @param discriminator the name of the discriminator property
|
|
17848
|
-
* @param types an array of object schemas
|
|
17849
|
-
* @param params
|
|
17850
|
-
*/
|
|
17851
|
-
static create(discriminator, options, params) {
|
|
17852
|
-
// Get all the valid discriminator values
|
|
17853
|
-
const optionsMap = new Map();
|
|
17854
|
-
// try {
|
|
17855
|
-
for (const type of options) {
|
|
17856
|
-
const discriminatorValues = getDiscriminator(type.shape[discriminator]);
|
|
17857
|
-
if (!discriminatorValues.length) {
|
|
17858
|
-
throw new Error(`A discriminator value for key \`${discriminator}\` could not be extracted from all schema options`);
|
|
17859
|
-
}
|
|
17860
|
-
for (const value of discriminatorValues) {
|
|
17861
|
-
if (optionsMap.has(value)) {
|
|
17862
|
-
throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);
|
|
17863
|
-
}
|
|
17864
|
-
optionsMap.set(value, type);
|
|
17865
|
-
}
|
|
17866
|
-
}
|
|
17867
|
-
return new ZodDiscriminatedUnion({
|
|
17868
|
-
typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,
|
|
17869
|
-
discriminator,
|
|
17870
|
-
options,
|
|
17871
|
-
optionsMap,
|
|
17872
|
-
...processCreateParams(params),
|
|
17873
|
-
});
|
|
17874
|
-
}
|
|
17875
|
-
}
|
|
17876
17674
|
function mergeValues(a, b) {
|
|
17877
17675
|
const aType = getParsedType(a);
|
|
17878
17676
|
const bType = getParsedType(b);
|
|
@@ -17881,9 +17679,7 @@ function mergeValues(a, b) {
|
|
|
17881
17679
|
}
|
|
17882
17680
|
else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {
|
|
17883
17681
|
const bKeys = util.objectKeys(b);
|
|
17884
|
-
const sharedKeys = util
|
|
17885
|
-
.objectKeys(a)
|
|
17886
|
-
.filter((key) => bKeys.indexOf(key) !== -1);
|
|
17682
|
+
const sharedKeys = util.objectKeys(a).filter((key) => bKeys.indexOf(key) !== -1);
|
|
17887
17683
|
const newObj = { ...a, ...b };
|
|
17888
17684
|
for (const key of sharedKeys) {
|
|
17889
17685
|
const sharedValue = mergeValues(a[key], b[key]);
|
|
@@ -17910,9 +17706,7 @@ function mergeValues(a, b) {
|
|
|
17910
17706
|
}
|
|
17911
17707
|
return { valid: true, data: newArray };
|
|
17912
17708
|
}
|
|
17913
|
-
else if (aType === ZodParsedType.date &&
|
|
17914
|
-
bType === ZodParsedType.date &&
|
|
17915
|
-
+a === +b) {
|
|
17709
|
+
else if (aType === ZodParsedType.date && bType === ZodParsedType.date && +a === +b) {
|
|
17916
17710
|
return { valid: true, data: a };
|
|
17917
17711
|
}
|
|
17918
17712
|
else {
|
|
@@ -17973,6 +17767,7 @@ ZodIntersection.create = (left, right, params) => {
|
|
|
17973
17767
|
...processCreateParams(params),
|
|
17974
17768
|
});
|
|
17975
17769
|
};
|
|
17770
|
+
// type ZodTupleItems = [ZodTypeAny, ...ZodTypeAny[]];
|
|
17976
17771
|
class ZodTuple extends ZodType {
|
|
17977
17772
|
_parse(input) {
|
|
17978
17773
|
const { status, ctx } = this._processInputParams(input);
|
|
@@ -18043,60 +17838,6 @@ ZodTuple.create = (schemas, params) => {
|
|
|
18043
17838
|
...processCreateParams(params),
|
|
18044
17839
|
});
|
|
18045
17840
|
};
|
|
18046
|
-
class ZodRecord extends ZodType {
|
|
18047
|
-
get keySchema() {
|
|
18048
|
-
return this._def.keyType;
|
|
18049
|
-
}
|
|
18050
|
-
get valueSchema() {
|
|
18051
|
-
return this._def.valueType;
|
|
18052
|
-
}
|
|
18053
|
-
_parse(input) {
|
|
18054
|
-
const { status, ctx } = this._processInputParams(input);
|
|
18055
|
-
if (ctx.parsedType !== ZodParsedType.object) {
|
|
18056
|
-
addIssueToContext(ctx, {
|
|
18057
|
-
code: ZodIssueCode.invalid_type,
|
|
18058
|
-
expected: ZodParsedType.object,
|
|
18059
|
-
received: ctx.parsedType,
|
|
18060
|
-
});
|
|
18061
|
-
return INVALID;
|
|
18062
|
-
}
|
|
18063
|
-
const pairs = [];
|
|
18064
|
-
const keyType = this._def.keyType;
|
|
18065
|
-
const valueType = this._def.valueType;
|
|
18066
|
-
for (const key in ctx.data) {
|
|
18067
|
-
pairs.push({
|
|
18068
|
-
key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),
|
|
18069
|
-
value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),
|
|
18070
|
-
alwaysSet: key in ctx.data,
|
|
18071
|
-
});
|
|
18072
|
-
}
|
|
18073
|
-
if (ctx.common.async) {
|
|
18074
|
-
return ParseStatus.mergeObjectAsync(status, pairs);
|
|
18075
|
-
}
|
|
18076
|
-
else {
|
|
18077
|
-
return ParseStatus.mergeObjectSync(status, pairs);
|
|
18078
|
-
}
|
|
18079
|
-
}
|
|
18080
|
-
get element() {
|
|
18081
|
-
return this._def.valueType;
|
|
18082
|
-
}
|
|
18083
|
-
static create(first, second, third) {
|
|
18084
|
-
if (second instanceof ZodType) {
|
|
18085
|
-
return new ZodRecord({
|
|
18086
|
-
keyType: first,
|
|
18087
|
-
valueType: second,
|
|
18088
|
-
typeName: ZodFirstPartyTypeKind.ZodRecord,
|
|
18089
|
-
...processCreateParams(third),
|
|
18090
|
-
});
|
|
18091
|
-
}
|
|
18092
|
-
return new ZodRecord({
|
|
18093
|
-
keyType: ZodString.create(),
|
|
18094
|
-
valueType: first,
|
|
18095
|
-
typeName: ZodFirstPartyTypeKind.ZodRecord,
|
|
18096
|
-
...processCreateParams(second),
|
|
18097
|
-
});
|
|
18098
|
-
}
|
|
18099
|
-
}
|
|
18100
17841
|
class ZodMap extends ZodType {
|
|
18101
17842
|
get keySchema() {
|
|
18102
17843
|
return this._def.keyType;
|
|
@@ -18250,134 +17991,6 @@ ZodSet.create = (valueType, params) => {
|
|
|
18250
17991
|
...processCreateParams(params),
|
|
18251
17992
|
});
|
|
18252
17993
|
};
|
|
18253
|
-
class ZodFunction extends ZodType {
|
|
18254
|
-
constructor() {
|
|
18255
|
-
super(...arguments);
|
|
18256
|
-
this.validate = this.implement;
|
|
18257
|
-
}
|
|
18258
|
-
_parse(input) {
|
|
18259
|
-
const { ctx } = this._processInputParams(input);
|
|
18260
|
-
if (ctx.parsedType !== ZodParsedType.function) {
|
|
18261
|
-
addIssueToContext(ctx, {
|
|
18262
|
-
code: ZodIssueCode.invalid_type,
|
|
18263
|
-
expected: ZodParsedType.function,
|
|
18264
|
-
received: ctx.parsedType,
|
|
18265
|
-
});
|
|
18266
|
-
return INVALID;
|
|
18267
|
-
}
|
|
18268
|
-
function makeArgsIssue(args, error) {
|
|
18269
|
-
return makeIssue({
|
|
18270
|
-
data: args,
|
|
18271
|
-
path: ctx.path,
|
|
18272
|
-
errorMaps: [
|
|
18273
|
-
ctx.common.contextualErrorMap,
|
|
18274
|
-
ctx.schemaErrorMap,
|
|
18275
|
-
getErrorMap(),
|
|
18276
|
-
errorMap,
|
|
18277
|
-
].filter((x) => !!x),
|
|
18278
|
-
issueData: {
|
|
18279
|
-
code: ZodIssueCode.invalid_arguments,
|
|
18280
|
-
argumentsError: error,
|
|
18281
|
-
},
|
|
18282
|
-
});
|
|
18283
|
-
}
|
|
18284
|
-
function makeReturnsIssue(returns, error) {
|
|
18285
|
-
return makeIssue({
|
|
18286
|
-
data: returns,
|
|
18287
|
-
path: ctx.path,
|
|
18288
|
-
errorMaps: [
|
|
18289
|
-
ctx.common.contextualErrorMap,
|
|
18290
|
-
ctx.schemaErrorMap,
|
|
18291
|
-
getErrorMap(),
|
|
18292
|
-
errorMap,
|
|
18293
|
-
].filter((x) => !!x),
|
|
18294
|
-
issueData: {
|
|
18295
|
-
code: ZodIssueCode.invalid_return_type,
|
|
18296
|
-
returnTypeError: error,
|
|
18297
|
-
},
|
|
18298
|
-
});
|
|
18299
|
-
}
|
|
18300
|
-
const params = { errorMap: ctx.common.contextualErrorMap };
|
|
18301
|
-
const fn = ctx.data;
|
|
18302
|
-
if (this._def.returns instanceof ZodPromise) {
|
|
18303
|
-
// Would love a way to avoid disabling this rule, but we need
|
|
18304
|
-
// an alias (using an arrow function was what caused 2651).
|
|
18305
|
-
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
18306
|
-
const me = this;
|
|
18307
|
-
return OK(async function (...args) {
|
|
18308
|
-
const error = new ZodError([]);
|
|
18309
|
-
const parsedArgs = await me._def.args
|
|
18310
|
-
.parseAsync(args, params)
|
|
18311
|
-
.catch((e) => {
|
|
18312
|
-
error.addIssue(makeArgsIssue(args, e));
|
|
18313
|
-
throw error;
|
|
18314
|
-
});
|
|
18315
|
-
const result = await Reflect.apply(fn, this, parsedArgs);
|
|
18316
|
-
const parsedReturns = await me._def.returns._def.type
|
|
18317
|
-
.parseAsync(result, params)
|
|
18318
|
-
.catch((e) => {
|
|
18319
|
-
error.addIssue(makeReturnsIssue(result, e));
|
|
18320
|
-
throw error;
|
|
18321
|
-
});
|
|
18322
|
-
return parsedReturns;
|
|
18323
|
-
});
|
|
18324
|
-
}
|
|
18325
|
-
else {
|
|
18326
|
-
// Would love a way to avoid disabling this rule, but we need
|
|
18327
|
-
// an alias (using an arrow function was what caused 2651).
|
|
18328
|
-
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
18329
|
-
const me = this;
|
|
18330
|
-
return OK(function (...args) {
|
|
18331
|
-
const parsedArgs = me._def.args.safeParse(args, params);
|
|
18332
|
-
if (!parsedArgs.success) {
|
|
18333
|
-
throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);
|
|
18334
|
-
}
|
|
18335
|
-
const result = Reflect.apply(fn, this, parsedArgs.data);
|
|
18336
|
-
const parsedReturns = me._def.returns.safeParse(result, params);
|
|
18337
|
-
if (!parsedReturns.success) {
|
|
18338
|
-
throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);
|
|
18339
|
-
}
|
|
18340
|
-
return parsedReturns.data;
|
|
18341
|
-
});
|
|
18342
|
-
}
|
|
18343
|
-
}
|
|
18344
|
-
parameters() {
|
|
18345
|
-
return this._def.args;
|
|
18346
|
-
}
|
|
18347
|
-
returnType() {
|
|
18348
|
-
return this._def.returns;
|
|
18349
|
-
}
|
|
18350
|
-
args(...items) {
|
|
18351
|
-
return new ZodFunction({
|
|
18352
|
-
...this._def,
|
|
18353
|
-
args: ZodTuple.create(items).rest(ZodUnknown.create()),
|
|
18354
|
-
});
|
|
18355
|
-
}
|
|
18356
|
-
returns(returnType) {
|
|
18357
|
-
return new ZodFunction({
|
|
18358
|
-
...this._def,
|
|
18359
|
-
returns: returnType,
|
|
18360
|
-
});
|
|
18361
|
-
}
|
|
18362
|
-
implement(func) {
|
|
18363
|
-
const validatedFunc = this.parse(func);
|
|
18364
|
-
return validatedFunc;
|
|
18365
|
-
}
|
|
18366
|
-
strictImplement(func) {
|
|
18367
|
-
const validatedFunc = this.parse(func);
|
|
18368
|
-
return validatedFunc;
|
|
18369
|
-
}
|
|
18370
|
-
static create(args, returns, params) {
|
|
18371
|
-
return new ZodFunction({
|
|
18372
|
-
args: (args
|
|
18373
|
-
? args
|
|
18374
|
-
: ZodTuple.create([]).rest(ZodUnknown.create())),
|
|
18375
|
-
returns: returns || ZodUnknown.create(),
|
|
18376
|
-
typeName: ZodFirstPartyTypeKind.ZodFunction,
|
|
18377
|
-
...processCreateParams(params),
|
|
18378
|
-
});
|
|
18379
|
-
}
|
|
18380
|
-
}
|
|
18381
17994
|
class ZodLazy extends ZodType {
|
|
18382
17995
|
get schema() {
|
|
18383
17996
|
return this._def.getter();
|
|
@@ -18442,10 +18055,10 @@ class ZodEnum extends ZodType {
|
|
|
18442
18055
|
});
|
|
18443
18056
|
return INVALID;
|
|
18444
18057
|
}
|
|
18445
|
-
if (!__classPrivateFieldGet(this, _ZodEnum_cache)) {
|
|
18446
|
-
__classPrivateFieldSet(this, _ZodEnum_cache, new Set(this._def.values));
|
|
18058
|
+
if (!__classPrivateFieldGet(this, _ZodEnum_cache, "f")) {
|
|
18059
|
+
__classPrivateFieldSet(this, _ZodEnum_cache, new Set(this._def.values), "f");
|
|
18447
18060
|
}
|
|
18448
|
-
if (!__classPrivateFieldGet(this, _ZodEnum_cache).has(input.data)) {
|
|
18061
|
+
if (!__classPrivateFieldGet(this, _ZodEnum_cache, "f").has(input.data)) {
|
|
18449
18062
|
const ctx = this._getOrReturnCtx(input);
|
|
18450
18063
|
const expectedValues = this._def.values;
|
|
18451
18064
|
addIssueToContext(ctx, {
|
|
@@ -18504,8 +18117,7 @@ class ZodNativeEnum extends ZodType {
|
|
|
18504
18117
|
_parse(input) {
|
|
18505
18118
|
const nativeEnumValues = util.getValidEnumValues(this._def.values);
|
|
18506
18119
|
const ctx = this._getOrReturnCtx(input);
|
|
18507
|
-
if (ctx.parsedType !== ZodParsedType.string &&
|
|
18508
|
-
ctx.parsedType !== ZodParsedType.number) {
|
|
18120
|
+
if (ctx.parsedType !== ZodParsedType.string && ctx.parsedType !== ZodParsedType.number) {
|
|
18509
18121
|
const expectedValues = util.objectValues(nativeEnumValues);
|
|
18510
18122
|
addIssueToContext(ctx, {
|
|
18511
18123
|
expected: util.joinValues(expectedValues),
|
|
@@ -18514,10 +18126,10 @@ class ZodNativeEnum extends ZodType {
|
|
|
18514
18126
|
});
|
|
18515
18127
|
return INVALID;
|
|
18516
18128
|
}
|
|
18517
|
-
if (!__classPrivateFieldGet(this, _ZodNativeEnum_cache)) {
|
|
18518
|
-
__classPrivateFieldSet(this, _ZodNativeEnum_cache, new Set(util.getValidEnumValues(this._def.values)));
|
|
18129
|
+
if (!__classPrivateFieldGet(this, _ZodNativeEnum_cache, "f")) {
|
|
18130
|
+
__classPrivateFieldSet(this, _ZodNativeEnum_cache, new Set(util.getValidEnumValues(this._def.values)), "f");
|
|
18519
18131
|
}
|
|
18520
|
-
if (!__classPrivateFieldGet(this, _ZodNativeEnum_cache).has(input.data)) {
|
|
18132
|
+
if (!__classPrivateFieldGet(this, _ZodNativeEnum_cache, "f").has(input.data)) {
|
|
18521
18133
|
const expectedValues = util.objectValues(nativeEnumValues);
|
|
18522
18134
|
addIssueToContext(ctx, {
|
|
18523
18135
|
received: ctx.data,
|
|
@@ -18546,8 +18158,7 @@ class ZodPromise extends ZodType {
|
|
|
18546
18158
|
}
|
|
18547
18159
|
_parse(input) {
|
|
18548
18160
|
const { ctx } = this._processInputParams(input);
|
|
18549
|
-
if (ctx.parsedType !== ZodParsedType.promise &&
|
|
18550
|
-
ctx.common.async === false) {
|
|
18161
|
+
if (ctx.parsedType !== ZodParsedType.promise && ctx.common.async === false) {
|
|
18551
18162
|
addIssueToContext(ctx, {
|
|
18552
18163
|
code: ZodIssueCode.invalid_type,
|
|
18553
18164
|
expected: ZodParsedType.promise,
|
|
@@ -18555,9 +18166,7 @@ class ZodPromise extends ZodType {
|
|
|
18555
18166
|
});
|
|
18556
18167
|
return INVALID;
|
|
18557
18168
|
}
|
|
18558
|
-
const promisified = ctx.parsedType === ZodParsedType.promise
|
|
18559
|
-
? ctx.data
|
|
18560
|
-
: Promise.resolve(ctx.data);
|
|
18169
|
+
const promisified = ctx.parsedType === ZodParsedType.promise ? ctx.data : Promise.resolve(ctx.data);
|
|
18561
18170
|
return OK(promisified.then((data) => {
|
|
18562
18171
|
return this._def.type.parseAsync(data, {
|
|
18563
18172
|
path: ctx.path,
|
|
@@ -18663,9 +18272,7 @@ class ZodEffects extends ZodType {
|
|
|
18663
18272
|
return { status: status.value, value: inner.value };
|
|
18664
18273
|
}
|
|
18665
18274
|
else {
|
|
18666
|
-
return this._def.schema
|
|
18667
|
-
._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx })
|
|
18668
|
-
.then((inner) => {
|
|
18275
|
+
return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((inner) => {
|
|
18669
18276
|
if (inner.status === "aborted")
|
|
18670
18277
|
return INVALID;
|
|
18671
18278
|
if (inner.status === "dirty")
|
|
@@ -18692,12 +18299,13 @@ class ZodEffects extends ZodType {
|
|
|
18692
18299
|
return { status: status.value, value: result };
|
|
18693
18300
|
}
|
|
18694
18301
|
else {
|
|
18695
|
-
return this._def.schema
|
|
18696
|
-
._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx })
|
|
18697
|
-
.then((base) => {
|
|
18302
|
+
return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((base) => {
|
|
18698
18303
|
if (!isValid(base))
|
|
18699
18304
|
return base;
|
|
18700
|
-
return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({
|
|
18305
|
+
return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({
|
|
18306
|
+
status: status.value,
|
|
18307
|
+
value: result,
|
|
18308
|
+
}));
|
|
18701
18309
|
});
|
|
18702
18310
|
}
|
|
18703
18311
|
}
|
|
@@ -18779,9 +18387,7 @@ ZodDefault.create = (type, params) => {
|
|
|
18779
18387
|
return new ZodDefault({
|
|
18780
18388
|
innerType: type,
|
|
18781
18389
|
typeName: ZodFirstPartyTypeKind.ZodDefault,
|
|
18782
|
-
defaultValue: typeof params.default === "function"
|
|
18783
|
-
? params.default
|
|
18784
|
-
: () => params.default,
|
|
18390
|
+
defaultValue: typeof params.default === "function" ? params.default : () => params.default,
|
|
18785
18391
|
...processCreateParams(params),
|
|
18786
18392
|
});
|
|
18787
18393
|
};
|
|
@@ -18865,7 +18471,6 @@ ZodNaN.create = (params) => {
|
|
|
18865
18471
|
...processCreateParams(params),
|
|
18866
18472
|
});
|
|
18867
18473
|
};
|
|
18868
|
-
const BRAND = Symbol("zod_brand");
|
|
18869
18474
|
class ZodBranded extends ZodType {
|
|
18870
18475
|
_parse(input) {
|
|
18871
18476
|
const { ctx } = this._processInputParams(input);
|
|
@@ -18947,9 +18552,7 @@ class ZodReadonly extends ZodType {
|
|
|
18947
18552
|
}
|
|
18948
18553
|
return data;
|
|
18949
18554
|
};
|
|
18950
|
-
return isAsync(result)
|
|
18951
|
-
? result.then((data) => freeze(data))
|
|
18952
|
-
: freeze(result);
|
|
18555
|
+
return isAsync(result) ? result.then((data) => freeze(data)) : freeze(result);
|
|
18953
18556
|
}
|
|
18954
18557
|
unwrap() {
|
|
18955
18558
|
return this._def.innerType;
|
|
@@ -18962,60 +18565,6 @@ ZodReadonly.create = (type, params) => {
|
|
|
18962
18565
|
...processCreateParams(params),
|
|
18963
18566
|
});
|
|
18964
18567
|
};
|
|
18965
|
-
////////////////////////////////////////
|
|
18966
|
-
////////////////////////////////////////
|
|
18967
|
-
////////// //////////
|
|
18968
|
-
////////// z.custom //////////
|
|
18969
|
-
////////// //////////
|
|
18970
|
-
////////////////////////////////////////
|
|
18971
|
-
////////////////////////////////////////
|
|
18972
|
-
function cleanParams(params, data) {
|
|
18973
|
-
const p = typeof params === "function"
|
|
18974
|
-
? params(data)
|
|
18975
|
-
: typeof params === "string"
|
|
18976
|
-
? { message: params }
|
|
18977
|
-
: params;
|
|
18978
|
-
const p2 = typeof p === "string" ? { message: p } : p;
|
|
18979
|
-
return p2;
|
|
18980
|
-
}
|
|
18981
|
-
function custom(check, _params = {},
|
|
18982
|
-
/**
|
|
18983
|
-
* @deprecated
|
|
18984
|
-
*
|
|
18985
|
-
* Pass `fatal` into the params object instead:
|
|
18986
|
-
*
|
|
18987
|
-
* ```ts
|
|
18988
|
-
* z.string().custom((val) => val.length > 5, { fatal: false })
|
|
18989
|
-
* ```
|
|
18990
|
-
*
|
|
18991
|
-
*/
|
|
18992
|
-
fatal) {
|
|
18993
|
-
if (check)
|
|
18994
|
-
return ZodAny.create().superRefine((data, ctx) => {
|
|
18995
|
-
var _a, _b;
|
|
18996
|
-
const r = check(data);
|
|
18997
|
-
if (r instanceof Promise) {
|
|
18998
|
-
return r.then((r) => {
|
|
18999
|
-
var _a, _b;
|
|
19000
|
-
if (!r) {
|
|
19001
|
-
const params = cleanParams(_params, data);
|
|
19002
|
-
const _fatal = (_b = (_a = params.fatal) !== null && _a !== void 0 ? _a : fatal) !== null && _b !== void 0 ? _b : true;
|
|
19003
|
-
ctx.addIssue({ code: "custom", ...params, fatal: _fatal });
|
|
19004
|
-
}
|
|
19005
|
-
});
|
|
19006
|
-
}
|
|
19007
|
-
if (!r) {
|
|
19008
|
-
const params = cleanParams(_params, data);
|
|
19009
|
-
const _fatal = (_b = (_a = params.fatal) !== null && _a !== void 0 ? _a : fatal) !== null && _b !== void 0 ? _b : true;
|
|
19010
|
-
ctx.addIssue({ code: "custom", ...params, fatal: _fatal });
|
|
19011
|
-
}
|
|
19012
|
-
return;
|
|
19013
|
-
});
|
|
19014
|
-
return ZodAny.create();
|
|
19015
|
-
}
|
|
19016
|
-
const late = {
|
|
19017
|
-
object: ZodObject.lazycreate,
|
|
19018
|
-
};
|
|
19019
18568
|
var ZodFirstPartyTypeKind;
|
|
19020
18569
|
(function (ZodFirstPartyTypeKind) {
|
|
19021
18570
|
ZodFirstPartyTypeKind["ZodString"] = "ZodString";
|
|
@@ -19055,203 +18604,52 @@ var ZodFirstPartyTypeKind;
|
|
|
19055
18604
|
ZodFirstPartyTypeKind["ZodPipeline"] = "ZodPipeline";
|
|
19056
18605
|
ZodFirstPartyTypeKind["ZodReadonly"] = "ZodReadonly";
|
|
19057
18606
|
})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));
|
|
19058
|
-
const instanceOfType = (
|
|
19059
|
-
// const instanceOfType = <T extends new (...args: any[]) => any>(
|
|
19060
|
-
cls, params = {
|
|
19061
|
-
message: `Input not instance of ${cls.name}`,
|
|
19062
|
-
}) => custom((data) => data instanceof cls, params);
|
|
19063
18607
|
const stringType = ZodString.create;
|
|
19064
18608
|
const numberType = ZodNumber.create;
|
|
19065
|
-
const nanType = ZodNaN.create;
|
|
19066
|
-
const bigIntType = ZodBigInt.create;
|
|
19067
18609
|
const booleanType = ZodBoolean.create;
|
|
19068
|
-
|
|
19069
|
-
|
|
19070
|
-
const undefinedType = ZodUndefined.create;
|
|
19071
|
-
const nullType = ZodNull.create;
|
|
19072
|
-
const anyType = ZodAny.create;
|
|
19073
|
-
const unknownType = ZodUnknown.create;
|
|
19074
|
-
const neverType = ZodNever.create;
|
|
19075
|
-
const voidType = ZodVoid.create;
|
|
19076
|
-
const arrayType = ZodArray.create;
|
|
18610
|
+
ZodNever.create;
|
|
18611
|
+
ZodArray.create;
|
|
19077
18612
|
const objectType = ZodObject.create;
|
|
19078
|
-
|
|
19079
|
-
|
|
19080
|
-
|
|
19081
|
-
|
|
19082
|
-
|
|
19083
|
-
|
|
19084
|
-
|
|
19085
|
-
const setType = ZodSet.create;
|
|
19086
|
-
const functionType = ZodFunction.create;
|
|
19087
|
-
const lazyType = ZodLazy.create;
|
|
19088
|
-
const literalType = ZodLiteral.create;
|
|
19089
|
-
const enumType = ZodEnum.create;
|
|
19090
|
-
const nativeEnumType = ZodNativeEnum.create;
|
|
19091
|
-
const promiseType = ZodPromise.create;
|
|
19092
|
-
const effectsType = ZodEffects.create;
|
|
19093
|
-
const optionalType = ZodOptional.create;
|
|
19094
|
-
const nullableType = ZodNullable.create;
|
|
19095
|
-
const preprocessType = ZodEffects.createWithPreprocess;
|
|
19096
|
-
const pipelineType = ZodPipeline.create;
|
|
19097
|
-
const ostring = () => stringType().optional();
|
|
19098
|
-
const onumber = () => numberType().optional();
|
|
19099
|
-
const oboolean = () => booleanType().optional();
|
|
19100
|
-
const coerce = {
|
|
19101
|
-
string: ((arg) => ZodString.create({ ...arg, coerce: true })),
|
|
19102
|
-
number: ((arg) => ZodNumber.create({ ...arg, coerce: true })),
|
|
19103
|
-
boolean: ((arg) => ZodBoolean.create({
|
|
19104
|
-
...arg,
|
|
19105
|
-
coerce: true,
|
|
19106
|
-
})),
|
|
19107
|
-
bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })),
|
|
19108
|
-
date: ((arg) => ZodDate.create({ ...arg, coerce: true })),
|
|
19109
|
-
};
|
|
19110
|
-
const NEVER = INVALID;
|
|
19111
|
-
|
|
19112
|
-
var z = /*#__PURE__*/Object.freeze({
|
|
19113
|
-
__proto__: null,
|
|
19114
|
-
defaultErrorMap: errorMap,
|
|
19115
|
-
setErrorMap: setErrorMap,
|
|
19116
|
-
getErrorMap: getErrorMap,
|
|
19117
|
-
makeIssue: makeIssue,
|
|
19118
|
-
EMPTY_PATH: EMPTY_PATH,
|
|
19119
|
-
addIssueToContext: addIssueToContext,
|
|
19120
|
-
ParseStatus: ParseStatus,
|
|
19121
|
-
INVALID: INVALID,
|
|
19122
|
-
DIRTY: DIRTY,
|
|
19123
|
-
OK: OK,
|
|
19124
|
-
isAborted: isAborted,
|
|
19125
|
-
isDirty: isDirty,
|
|
19126
|
-
isValid: isValid,
|
|
19127
|
-
isAsync: isAsync,
|
|
19128
|
-
get util () { return util; },
|
|
19129
|
-
get objectUtil () { return objectUtil; },
|
|
19130
|
-
ZodParsedType: ZodParsedType,
|
|
19131
|
-
getParsedType: getParsedType,
|
|
19132
|
-
ZodType: ZodType,
|
|
19133
|
-
datetimeRegex: datetimeRegex,
|
|
19134
|
-
ZodString: ZodString,
|
|
19135
|
-
ZodNumber: ZodNumber,
|
|
19136
|
-
ZodBigInt: ZodBigInt,
|
|
19137
|
-
ZodBoolean: ZodBoolean,
|
|
19138
|
-
ZodDate: ZodDate,
|
|
19139
|
-
ZodSymbol: ZodSymbol,
|
|
19140
|
-
ZodUndefined: ZodUndefined,
|
|
19141
|
-
ZodNull: ZodNull,
|
|
19142
|
-
ZodAny: ZodAny,
|
|
19143
|
-
ZodUnknown: ZodUnknown,
|
|
19144
|
-
ZodNever: ZodNever,
|
|
19145
|
-
ZodVoid: ZodVoid,
|
|
19146
|
-
ZodArray: ZodArray,
|
|
19147
|
-
ZodObject: ZodObject,
|
|
19148
|
-
ZodUnion: ZodUnion,
|
|
19149
|
-
ZodDiscriminatedUnion: ZodDiscriminatedUnion,
|
|
19150
|
-
ZodIntersection: ZodIntersection,
|
|
19151
|
-
ZodTuple: ZodTuple,
|
|
19152
|
-
ZodRecord: ZodRecord,
|
|
19153
|
-
ZodMap: ZodMap,
|
|
19154
|
-
ZodSet: ZodSet,
|
|
19155
|
-
ZodFunction: ZodFunction,
|
|
19156
|
-
ZodLazy: ZodLazy,
|
|
19157
|
-
ZodLiteral: ZodLiteral,
|
|
19158
|
-
ZodEnum: ZodEnum,
|
|
19159
|
-
ZodNativeEnum: ZodNativeEnum,
|
|
19160
|
-
ZodPromise: ZodPromise,
|
|
19161
|
-
ZodEffects: ZodEffects,
|
|
19162
|
-
ZodTransformer: ZodEffects,
|
|
19163
|
-
ZodOptional: ZodOptional,
|
|
19164
|
-
ZodNullable: ZodNullable,
|
|
19165
|
-
ZodDefault: ZodDefault,
|
|
19166
|
-
ZodCatch: ZodCatch,
|
|
19167
|
-
ZodNaN: ZodNaN,
|
|
19168
|
-
BRAND: BRAND,
|
|
19169
|
-
ZodBranded: ZodBranded,
|
|
19170
|
-
ZodPipeline: ZodPipeline,
|
|
19171
|
-
ZodReadonly: ZodReadonly,
|
|
19172
|
-
custom: custom,
|
|
19173
|
-
Schema: ZodType,
|
|
19174
|
-
ZodSchema: ZodType,
|
|
19175
|
-
late: late,
|
|
19176
|
-
get ZodFirstPartyTypeKind () { return ZodFirstPartyTypeKind; },
|
|
19177
|
-
coerce: coerce,
|
|
19178
|
-
any: anyType,
|
|
19179
|
-
array: arrayType,
|
|
19180
|
-
bigint: bigIntType,
|
|
19181
|
-
boolean: booleanType,
|
|
19182
|
-
date: dateType,
|
|
19183
|
-
discriminatedUnion: discriminatedUnionType,
|
|
19184
|
-
effect: effectsType,
|
|
19185
|
-
'enum': enumType,
|
|
19186
|
-
'function': functionType,
|
|
19187
|
-
'instanceof': instanceOfType,
|
|
19188
|
-
intersection: intersectionType,
|
|
19189
|
-
lazy: lazyType,
|
|
19190
|
-
literal: literalType,
|
|
19191
|
-
map: mapType,
|
|
19192
|
-
nan: nanType,
|
|
19193
|
-
nativeEnum: nativeEnumType,
|
|
19194
|
-
never: neverType,
|
|
19195
|
-
'null': nullType,
|
|
19196
|
-
nullable: nullableType,
|
|
19197
|
-
number: numberType,
|
|
19198
|
-
object: objectType,
|
|
19199
|
-
oboolean: oboolean,
|
|
19200
|
-
onumber: onumber,
|
|
19201
|
-
optional: optionalType,
|
|
19202
|
-
ostring: ostring,
|
|
19203
|
-
pipeline: pipelineType,
|
|
19204
|
-
preprocess: preprocessType,
|
|
19205
|
-
promise: promiseType,
|
|
19206
|
-
record: recordType,
|
|
19207
|
-
set: setType,
|
|
19208
|
-
strictObject: strictObjectType,
|
|
19209
|
-
string: stringType,
|
|
19210
|
-
symbol: symbolType,
|
|
19211
|
-
transformer: effectsType,
|
|
19212
|
-
tuple: tupleType,
|
|
19213
|
-
'undefined': undefinedType,
|
|
19214
|
-
union: unionType,
|
|
19215
|
-
unknown: unknownType,
|
|
19216
|
-
'void': voidType,
|
|
19217
|
-
NEVER: NEVER,
|
|
19218
|
-
ZodIssueCode: ZodIssueCode,
|
|
19219
|
-
quotelessJson: quotelessJson,
|
|
19220
|
-
ZodError: ZodError
|
|
19221
|
-
});
|
|
18613
|
+
ZodUnion.create;
|
|
18614
|
+
ZodIntersection.create;
|
|
18615
|
+
ZodTuple.create;
|
|
18616
|
+
ZodEnum.create;
|
|
18617
|
+
ZodPromise.create;
|
|
18618
|
+
ZodOptional.create;
|
|
18619
|
+
ZodNullable.create;
|
|
19222
18620
|
|
|
19223
18621
|
const phoneRegex = new RegExp(/^([+]?[\s0-9]+)?(\d{3}|[(]?[0-9]+[)])?([-]?[\s]?[0-9])+$/);
|
|
19224
18622
|
// Shipping address schema
|
|
19225
|
-
const customerSchema =
|
|
19226
|
-
email:
|
|
19227
|
-
firstName:
|
|
19228
|
-
lastName:
|
|
19229
|
-
address:
|
|
19230
|
-
line1:
|
|
19231
|
-
line2:
|
|
19232
|
-
city:
|
|
19233
|
-
state:
|
|
19234
|
-
zipCode:
|
|
19235
|
-
country:
|
|
19236
|
-
countryCode:
|
|
18623
|
+
const customerSchema = objectType({
|
|
18624
|
+
email: stringType().email("invalid_email"),
|
|
18625
|
+
firstName: stringType().min(1, "required_error"),
|
|
18626
|
+
lastName: stringType().min(1, "required_error"),
|
|
18627
|
+
address: objectType({
|
|
18628
|
+
line1: stringType().min(1, "required_error"),
|
|
18629
|
+
line2: stringType().optional(),
|
|
18630
|
+
city: stringType().min(1, "required_error"),
|
|
18631
|
+
state: stringType().optional(),
|
|
18632
|
+
zipCode: stringType().min(5, "invalid_zipCode"),
|
|
18633
|
+
country: stringType().min(1, "required_error"),
|
|
18634
|
+
countryCode: stringType().min(1, "required_error"),
|
|
19237
18635
|
}),
|
|
19238
|
-
saveInfo:
|
|
19239
|
-
phone:
|
|
18636
|
+
saveInfo: booleanType().optional(),
|
|
18637
|
+
phone: stringType().regex(phoneRegex, "invalid_phone"),
|
|
19240
18638
|
});
|
|
19241
18639
|
// Shipping method schema
|
|
19242
|
-
const shippingMethodSchema =
|
|
19243
|
-
rateId:
|
|
19244
|
-
provider:
|
|
19245
|
-
price:
|
|
19246
|
-
name:
|
|
19247
|
-
pickupPointId:
|
|
19248
|
-
pickupPointDisplayName:
|
|
18640
|
+
const shippingMethodSchema = objectType({
|
|
18641
|
+
rateId: stringType().min(1, "required_error"),
|
|
18642
|
+
provider: stringType().min(1, "required_error"),
|
|
18643
|
+
price: numberType().min(1, "required_error"),
|
|
18644
|
+
name: stringType().min(1, "required_error"),
|
|
18645
|
+
pickupPointId: stringType().optional(),
|
|
18646
|
+
pickupPointDisplayName: stringType().optional(),
|
|
19249
18647
|
});
|
|
19250
18648
|
// Combined checkout schema
|
|
19251
|
-
|
|
18649
|
+
objectType({
|
|
19252
18650
|
customer: customerSchema,
|
|
19253
18651
|
shipping: shippingMethodSchema,
|
|
19254
|
-
customerId:
|
|
18652
|
+
customerId: stringType().optional(),
|
|
19255
18653
|
});
|
|
19256
18654
|
|
|
19257
18655
|
const formatAddress = (address) => {
|
|
@@ -35191,9 +34589,6 @@ const CheckoutForm$1 = ({ onSuccess, onError, children, setSubmitting, }) => {
|
|
|
35191
34589
|
setSubmitting === null || setSubmitting === void 0 ? void 0 : setSubmitting(false);
|
|
35192
34590
|
onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess();
|
|
35193
34591
|
}
|
|
35194
|
-
setErrorMessage(undefined);
|
|
35195
|
-
setIsSubmitting(false);
|
|
35196
|
-
setSubmitting === null || setSubmitting === void 0 ? void 0 : setSubmitting(false);
|
|
35197
34592
|
});
|
|
35198
34593
|
return (React__default.createElement("form", { onSubmit: handleSubmit },
|
|
35199
34594
|
React__default.createElement("div", null,
|
|
@@ -35717,7 +35112,7 @@ function CheckoutSummary({ appliedDiscounts, lineItems, shipping, tax, currency,
|
|
|
35717
35112
|
React__default.createElement("p", null, storeHelpers.formatPrice(tax, currency, exchangeRate)))),
|
|
35718
35113
|
filteredDiscounts.map(({ discount, amount, id }) => {
|
|
35719
35114
|
var _a;
|
|
35720
|
-
return (React__default.createElement("div", { key: discount.id, className: "flex
|
|
35115
|
+
return (React__default.createElement("div", { key: discount.id, className: "flex justify-between text-muted-foreground" },
|
|
35721
35116
|
React__default.createElement(DiscountItem, { id: id, removeDiscount: removeDiscount, label: (_a = ((discount === null || discount === void 0 ? void 0 : discount.code) || (discount === null || discount === void 0 ? void 0 : discount.title))) !== null && _a !== void 0 ? _a : "", canRemove: discount.method === "CODE" }),
|
|
35722
35117
|
React__default.createElement("p", null,
|
|
35723
35118
|
"- ",
|
|
@@ -35744,32 +35139,45 @@ function CheckoutSummary({ appliedDiscounts, lineItems, shipping, tax, currency,
|
|
|
35744
35139
|
"hidden md:grid": !isOpen,
|
|
35745
35140
|
grid: isOpen,
|
|
35746
35141
|
}) }, lineItems.map((item, index) => {
|
|
35747
|
-
var _a, _b, _c, _d, _e, _f
|
|
35748
|
-
const
|
|
35749
|
-
const
|
|
35750
|
-
|
|
35751
|
-
|
|
35752
|
-
|
|
35142
|
+
var _a, _b, _c, _d, _e, _f;
|
|
35143
|
+
const finalItem = ((_a = item.productData) === null || _a === void 0 ? void 0 : _a.selectedVariant) || item.productData;
|
|
35144
|
+
const productAppliedDiscounts = appliedDiscounts.filter((discount) => discount.allowedLineItems.some((allowedLineItem) => allowedLineItem.productId === item.productData.productId));
|
|
35145
|
+
const formattedProductAppliedDiscounts = productAppliedDiscounts.map((discount) => {
|
|
35146
|
+
var _a;
|
|
35147
|
+
const elegibleLineItems = discount.allowedLineItems.find((allowedLineItem) => allowedLineItem.productId === item.productData.productId);
|
|
35148
|
+
if (!elegibleLineItems)
|
|
35149
|
+
return 0;
|
|
35150
|
+
const elegibleQuantity = elegibleLineItems.quantity;
|
|
35151
|
+
const elegibleTotalAmount = ((_a = finalItem === null || finalItem === void 0 ? void 0 : finalItem.priceInCents) !== null && _a !== void 0 ? _a : 0) * elegibleQuantity;
|
|
35152
|
+
if (discount.discount.valueType === "PERCENTAGE") {
|
|
35153
|
+
const percentage = discount.discount.value / 100;
|
|
35154
|
+
return elegibleTotalAmount * percentage;
|
|
35155
|
+
}
|
|
35156
|
+
return elegibleQuantity * discount.discount.value;
|
|
35157
|
+
});
|
|
35158
|
+
const totalDiscountAmount = formattedProductAppliedDiscounts.length > 0
|
|
35159
|
+
? formattedProductAppliedDiscounts.reduce((acc, curr) => {
|
|
35160
|
+
return acc + curr;
|
|
35161
|
+
}, 0)
|
|
35753
35162
|
: null;
|
|
35754
|
-
const isDiscounted = !!
|
|
35755
|
-
const
|
|
35756
|
-
const discountedPrice = productItem.priceInCents - ((_b = discount === null || discount === void 0 ? void 0 : discount.amount) !== null && _b !== void 0 ? _b : 0);
|
|
35163
|
+
const isDiscounted = !!totalDiscountAmount;
|
|
35164
|
+
const discountedPrice = finalItem.priceInCents - (totalDiscountAmount !== null && totalDiscountAmount !== void 0 ? totalDiscountAmount : 0);
|
|
35757
35165
|
return (React__default.createElement("div", { key: index, className: "flex items-center" },
|
|
35758
35166
|
React__default.createElement("div", { className: "relative" },
|
|
35759
|
-
React__default.createElement("div", { className: "w-16 h-16 bg-secondary rounded-lg overflow-hidden relative" }, (
|
|
35760
|
-
((
|
|
35761
|
-
"/placeholder.svg", alt: ((
|
|
35167
|
+
React__default.createElement("div", { className: "w-16 h-16 bg-secondary rounded-lg overflow-hidden relative" }, (finalItem === null || finalItem === void 0 ? void 0 : finalItem.images[0]) && (React__default.createElement("img", { src: finalItem.images[0] ||
|
|
35168
|
+
((_b = item === null || item === void 0 ? void 0 : item.productData) === null || _b === void 0 ? void 0 : _b.images[0]) ||
|
|
35169
|
+
"/placeholder.svg", alt: ((_c = item.productData) === null || _c === void 0 ? void 0 : _c.title) || "", className: "object-cover w-full h-full", sizes: "64px" }))),
|
|
35762
35170
|
React__default.createElement("div", { className: "absolute -top-2 -right-2 w-6 h-6 bg-primary rounded-full flex items-center text-background justify-center text-sm" }, item.quantity)),
|
|
35763
35171
|
React__default.createElement("div", { className: "ml-4 flex-1" },
|
|
35764
|
-
React__default.createElement("h3", { className: "text-lg font-medium" }, (
|
|
35172
|
+
React__default.createElement("h3", { className: "text-lg font-medium" }, (_d = item.productData) === null || _d === void 0 ? void 0 : _d.title),
|
|
35765
35173
|
React__default.createElement("p", { className: "text-muted-foreground text-ellipsis line-clamp-1 md:max-w-[75%] text-sm" }, item.variantOptions
|
|
35766
35174
|
.map((option) => `${option.name}: ${option.value}`)
|
|
35767
35175
|
.join(", "))),
|
|
35768
35176
|
React__default.createElement("div", { className: "text-right" }, isDiscounted ? (React__default.createElement("div", { className: "flex flex-col" },
|
|
35769
|
-
React__default.createElement("p", { className: "text-sm font-medium -mb-0.5 line-through text-muted-foreground" }, storeHelpers.formatPrice((
|
|
35177
|
+
React__default.createElement("p", { className: "text-sm font-medium -mb-0.5 line-through text-muted-foreground" }, storeHelpers.formatPrice((_e = finalItem === null || finalItem === void 0 ? void 0 : finalItem.priceInCents) !== null && _e !== void 0 ? _e : 0, currency, exchangeRate)),
|
|
35770
35178
|
React__default.createElement("p", { className: "text-lg font-medium" }, discountedPrice <= 0
|
|
35771
35179
|
? t("CheckoutEmbed.Summary.free")
|
|
35772
|
-
: storeHelpers.formatPrice(discountedPrice, currency, exchangeRate)))) : (React__default.createElement("p", { className: "text-lg font-medium" }, storeHelpers.formatPrice((
|
|
35180
|
+
: storeHelpers.formatPrice(discountedPrice, currency, exchangeRate)))) : (React__default.createElement("p", { className: "text-lg font-medium" }, storeHelpers.formatPrice((_f = finalItem === null || finalItem === void 0 ? void 0 : finalItem.priceInCents) !== null && _f !== void 0 ? _f : 0, currency, exchangeRate))))));
|
|
35773
35181
|
}))));
|
|
35774
35182
|
}
|
|
35775
35183
|
function DiscountItem({ id, removeDiscount, label, canRemove, }) {
|
|
@@ -35954,7 +35362,7 @@ function styleInject(css, ref) {
|
|
|
35954
35362
|
}
|
|
35955
35363
|
}
|
|
35956
35364
|
|
|
35957
|
-
var css_248z = "/*! tailwindcss v4.1.7 | MIT License | https://tailwindcss.com */\n@layer properties;\n@layer theme, base, components, utilities;\n@layer theme {\n :root, :host {\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\",\n \"Courier New\", monospace;\n --color-red-500: oklch(63.7% 0.237 25.331);\n --color-black: #000;\n --color-white: #fff;\n --spacing: 0.25rem;\n --container-lg: 32rem;\n --text-xs: 0.75rem;\n --text-xs--line-height: calc(1 / 0.75);\n --text-sm: 0.875rem;\n --text-sm--line-height: calc(1.25 / 0.875);\n --text-base: 1rem;\n --text-base--line-height: calc(1.5 / 1);\n --text-lg: 1.125rem;\n --text-lg--line-height: calc(1.75 / 1.125);\n --text-2xl: 1.5rem;\n --text-2xl--line-height: calc(2 / 1.5);\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --tracking-tight: -0.025em;\n --tracking-widest: 0.1em;\n --radius-xs: 0.125rem;\n --animate-spin: spin 1s linear infinite;\n --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n --default-transition-duration: 150ms;\n --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --default-font-family: var(--bs-font-sans), Helvetica, Arial, apple-system, sans-serif;\n --default-mono-font-family: var(--font-mono);\n }\n}\n@layer base {\n *, ::after, ::before, ::backdrop, ::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n }\n html, :host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n b, strong {\n font-weight: bolder;\n }\n code, kbd, samp, pre {\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n small {\n font-size: 80%;\n }\n sub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n :-moz-focusring {\n outline: auto;\n }\n progress {\n vertical-align: baseline;\n }\n summary {\n display: list-item;\n }\n ol, ul, menu {\n list-style: none;\n }\n img, svg, video, canvas, audio, iframe, embed, object {\n display: block;\n vertical-align: middle;\n }\n img, video {\n max-width: 100%;\n height: auto;\n }\n button, input, select, optgroup, textarea, ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n ::-moz-placeholder {\n opacity: 1;\n }\n ::placeholder {\n opacity: 1;\n }\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\n ::-moz-placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n ::placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n textarea {\n resize: vertical;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button, input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]), ::file-selector-button {\n -webkit-appearance: button;\n -moz-appearance: button;\n appearance: button;\n }\n ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n }\n [hidden]:where(:not([hidden=\"until-found\"])) {\n display: none !important;\n }\n}\n@layer utilities {\n .pointer-events-none {\n pointer-events: none !important;\n }\n .sr-only {\n position: absolute !important;\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important;\n overflow: hidden !important;\n clip: rect(0, 0, 0, 0) !important;\n white-space: nowrap !important;\n border-width: 0 !important;\n }\n .absolute {\n position: absolute !important;\n }\n .fixed {\n position: fixed !important;\n }\n .relative {\n position: relative !important;\n }\n .sticky {\n position: sticky !important;\n }\n .inset-0 {\n inset: calc(var(--spacing) * 0) !important;\n }\n .-top-2 {\n top: calc(var(--spacing) * -2) !important;\n }\n .top-0 {\n top: calc(var(--spacing) * 0) !important;\n }\n .top-0\\.5 {\n top: calc(var(--spacing) * 0.5) !important;\n }\n .top-1\\/2 {\n top: calc(1/2 * 100%) !important;\n }\n .top-4 {\n top: calc(var(--spacing) * 4) !important;\n }\n .top-\\[50\\%\\] {\n top: 50% !important;\n }\n .-right-2 {\n right: calc(var(--spacing) * -2) !important;\n }\n .right-2 {\n right: calc(var(--spacing) * 2) !important;\n }\n .right-4 {\n right: calc(var(--spacing) * 4) !important;\n }\n .left-1\\/2 {\n left: calc(1/2 * 100%) !important;\n }\n .left-2 {\n left: calc(var(--spacing) * 2) !important;\n }\n .left-\\[50\\%\\] {\n left: 50% !important;\n }\n .z-10 {\n z-index: 10 !important;\n }\n .z-50 {\n z-index: 50 !important;\n }\n .order-3 {\n order: 3 !important;\n }\n .order-4 {\n order: 4 !important;\n }\n .order-5 {\n order: 5 !important;\n }\n .order-6 {\n order: 6 !important;\n }\n .order-7 {\n order: 7 !important;\n }\n .order-first {\n order: -9999 !important;\n }\n .col-span-2 {\n grid-column: span 2 / span 2 !important;\n }\n .-m-0\\.5 {\n margin: calc(var(--spacing) * -0.5) !important;\n }\n .-mx-1 {\n margin-inline: calc(var(--spacing) * -1) !important;\n }\n .mx-auto {\n margin-inline: auto !important;\n }\n .my-1 {\n margin-block: calc(var(--spacing) * 1) !important;\n }\n .my-2 {\n margin-block: calc(var(--spacing) * 2) !important;\n }\n .mt-2 {\n margin-top: calc(var(--spacing) * 2) !important;\n }\n .mt-8 {\n margin-top: calc(var(--spacing) * 8) !important;\n }\n .-mb-0\\.5 {\n margin-bottom: calc(var(--spacing) * -0.5) !important;\n }\n .mb-1 {\n margin-bottom: calc(var(--spacing) * 1) !important;\n }\n .mb-2 {\n margin-bottom: calc(var(--spacing) * 2) !important;\n }\n .ml-4 {\n margin-left: calc(var(--spacing) * 4) !important;\n }\n .ml-auto {\n margin-left: auto !important;\n }\n .line-clamp-1 {\n overflow: hidden !important;\n display: -webkit-box !important;\n -webkit-box-orient: vertical !important;\n -webkit-line-clamp: 1 !important;\n }\n .block {\n display: block !important;\n }\n .flex {\n display: flex !important;\n }\n .grid {\n display: grid !important;\n }\n .hidden {\n display: none !important;\n }\n .inline-flex {\n display: inline-flex !important;\n }\n .aspect-square {\n aspect-ratio: 1 / 1 !important;\n }\n .size-2 {\n width: calc(var(--spacing) * 2) !important;\n height: calc(var(--spacing) * 2) !important;\n }\n .size-3 {\n width: calc(var(--spacing) * 3) !important;\n height: calc(var(--spacing) * 3) !important;\n }\n .size-3\\.5 {\n width: calc(var(--spacing) * 3.5) !important;\n height: calc(var(--spacing) * 3.5) !important;\n }\n .size-4 {\n width: calc(var(--spacing) * 4) !important;\n height: calc(var(--spacing) * 4) !important;\n }\n .size-5 {\n width: calc(var(--spacing) * 5) !important;\n height: calc(var(--spacing) * 5) !important;\n }\n .size-9 {\n width: calc(var(--spacing) * 9) !important;\n height: calc(var(--spacing) * 9) !important;\n }\n .size-16 {\n width: calc(var(--spacing) * 16) !important;\n height: calc(var(--spacing) * 16) !important;\n }\n .h-3 {\n height: calc(var(--spacing) * 3) !important;\n }\n .h-3\\.5 {\n height: calc(var(--spacing) * 3.5) !important;\n }\n .h-4 {\n height: calc(var(--spacing) * 4) !important;\n }\n .h-5 {\n height: calc(var(--spacing) * 5) !important;\n }\n .h-6 {\n height: calc(var(--spacing) * 6) !important;\n }\n .h-8 {\n height: calc(var(--spacing) * 8) !important;\n }\n .h-9 {\n height: calc(var(--spacing) * 9) !important;\n }\n .h-10 {\n height: calc(var(--spacing) * 10) !important;\n }\n .h-12 {\n height: calc(var(--spacing) * 12) !important;\n }\n .h-16 {\n height: calc(var(--spacing) * 16) !important;\n }\n .h-\\[18px\\] {\n height: 18px !important;\n }\n .h-\\[20px\\] {\n height: 20px !important;\n }\n .h-\\[var\\(--radix-select-trigger-height\\)\\] {\n height: var(--radix-select-trigger-height) !important;\n }\n .h-auto {\n height: auto !important;\n }\n .h-auto\\! {\n height: auto !important;\n }\n .h-full {\n height: 100% !important;\n }\n .h-px {\n height: 1px !important;\n }\n .max-h-\\(--radix-dropdown-menu-content-available-height\\) {\n max-height: var(--radix-dropdown-menu-content-available-height) !important;\n }\n .max-h-96 {\n max-height: calc(var(--spacing) * 96) !important;\n }\n .max-h-\\[200px\\] {\n max-height: 200px !important;\n }\n .max-h-\\[300px\\] {\n max-height: 300px !important;\n }\n .min-h-full {\n min-height: 100% !important;\n }\n .min-h-screen {\n min-height: 100vh !important;\n }\n .w-0 {\n width: calc(var(--spacing) * 0) !important;\n }\n .w-4 {\n width: calc(var(--spacing) * 4) !important;\n }\n .w-5 {\n width: calc(var(--spacing) * 5) !important;\n }\n .w-6 {\n width: calc(var(--spacing) * 6) !important;\n }\n .w-10 {\n width: calc(var(--spacing) * 10) !important;\n }\n .w-12 {\n width: calc(var(--spacing) * 12) !important;\n }\n .w-16 {\n width: calc(var(--spacing) * 16) !important;\n }\n .w-20 {\n width: calc(var(--spacing) * 20) !important;\n }\n .w-24 {\n width: calc(var(--spacing) * 24) !important;\n }\n .w-28 {\n width: calc(var(--spacing) * 28) !important;\n }\n .w-32 {\n width: calc(var(--spacing) * 32) !important;\n }\n .w-40 {\n width: calc(var(--spacing) * 40) !important;\n }\n .w-72 {\n width: calc(var(--spacing) * 72) !important;\n }\n .w-fit {\n width: -moz-fit-content !important;\n width: fit-content !important;\n }\n .w-full {\n width: 100% !important;\n }\n .max-w-\\[1200px\\] {\n max-width: 1200px !important;\n }\n .max-w-\\[calc\\(100\\%-2rem\\)\\] {\n max-width: calc(100% - 2rem) !important;\n }\n .min-w-0 {\n min-width: calc(var(--spacing) * 0) !important;\n }\n .min-w-\\[--radix-popper-anchor-width\\] {\n min-width: --radix-popper-anchor-width !important;\n }\n .min-w-\\[8rem\\] {\n min-width: 8rem !important;\n }\n .min-w-\\[var\\(--radix-select-trigger-width\\)\\] {\n min-width: var(--radix-select-trigger-width) !important;\n }\n .flex-1 {\n flex: 1 !important;\n }\n .shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-grow {\n flex-grow: 1 !important;\n }\n .origin-\\(--radix-dropdown-menu-content-transform-origin\\) {\n transform-origin: var(--radix-dropdown-menu-content-transform-origin) !important;\n }\n .origin-\\(--radix-popover-content-transform-origin\\) {\n transform-origin: var(--radix-popover-content-transform-origin) !important;\n }\n .-translate-x-1\\/2 {\n --tw-translate-x: calc(calc(1/2 * 100%) * -1) !important;\n translate: var(--tw-translate-x) var(--tw-translate-y) !important;\n }\n .translate-x-\\[-50\\%\\] {\n --tw-translate-x: -50% !important;\n translate: var(--tw-translate-x) var(--tw-translate-y) !important;\n }\n .-translate-y-1\\/2 {\n --tw-translate-y: calc(calc(1/2 * 100%) * -1) !important;\n translate: var(--tw-translate-x) var(--tw-translate-y) !important;\n }\n .translate-y-\\[-50\\%\\] {\n --tw-translate-y: -50% !important;\n translate: var(--tw-translate-x) var(--tw-translate-y) !important;\n }\n .rotate-180 {\n rotate: 180deg !important;\n }\n .transform-none\\! {\n transform: none !important;\n }\n .animate-pulse {\n animation: var(--animate-pulse) !important;\n }\n .animate-spin {\n animation: var(--animate-spin) !important;\n }\n .cursor-default {\n cursor: default !important;\n }\n .cursor-pointer {\n cursor: pointer !important;\n }\n .scroll-my-1 {\n scroll-margin-block: calc(var(--spacing) * 1) !important;\n }\n .scroll-py-1 {\n scroll-padding-block: calc(var(--spacing) * 1) !important;\n }\n .grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr)) !important;\n }\n .flex-col {\n flex-direction: column !important;\n }\n .flex-col-reverse {\n flex-direction: column-reverse !important;\n }\n .items-center {\n align-items: center !important;\n }\n .justify-between {\n justify-content: space-between !important;\n }\n .justify-center {\n justify-content: center !important;\n }\n .justify-end {\n justify-content: flex-end !important;\n }\n .gap-0 {\n gap: calc(var(--spacing) * 0) !important;\n }\n .gap-0\\.5 {\n gap: calc(var(--spacing) * 0.5) !important;\n }\n .gap-1\\.5 {\n gap: calc(var(--spacing) * 1.5) !important;\n }\n .gap-2 {\n gap: calc(var(--spacing) * 2) !important;\n }\n .gap-3 {\n gap: calc(var(--spacing) * 3) !important;\n }\n .gap-4 {\n gap: calc(var(--spacing) * 4) !important;\n }\n .gap-5 {\n gap: calc(var(--spacing) * 5) !important;\n }\n .gap-6 {\n gap: calc(var(--spacing) * 6) !important;\n }\n .gap-\\[10px\\] {\n gap: 10px !important;\n }\n .space-y-2 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0 !important;\n margin-block-start: calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse)) !important;\n margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse))) !important;\n }\n }\n .space-y-4 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0 !important;\n margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse)) !important;\n margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse))) !important;\n }\n }\n .space-y-6 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0 !important;\n margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse)) !important;\n margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse))) !important;\n }\n }\n .space-x-2 {\n :where(& > :not(:last-child)) {\n --tw-space-x-reverse: 0 !important;\n margin-inline-start: calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse)) !important;\n margin-inline-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse))) !important;\n }\n }\n .overflow-hidden {\n overflow: hidden !important;\n }\n .overflow-x-hidden {\n overflow-x: hidden !important;\n }\n .overflow-y-auto {\n overflow-y: auto !important;\n }\n .rounded-\\[4px\\] {\n border-radius: 4px !important;\n }\n .rounded-full {\n border-radius: calc(infinity * 1px) !important;\n }\n .rounded-lg {\n border-radius: var(--bs-radius) !important;\n }\n .rounded-md {\n border-radius: calc(var(--bs-radius) - 2px) !important;\n }\n .rounded-sm {\n border-radius: calc(var(--bs-radius) - 4px) !important;\n }\n .rounded-xs {\n border-radius: var(--radius-xs) !important;\n }\n .border {\n border-style: var(--tw-border-style) !important;\n border-width: 1px !important;\n }\n .border-b {\n border-bottom-style: var(--tw-border-style) !important;\n border-bottom-width: 1px !important;\n }\n .border-input {\n border-color: var(--bs-input) !important;\n }\n .border-primary {\n border-color: var(--bs-primary) !important;\n }\n .bg-accent {\n background-color: var(--bs-accent) !important;\n }\n .bg-background {\n background-color: var(--bs-background) !important;\n }\n .bg-black\\/50 {\n background-color: color-mix(in srgb, #000 50%, transparent) !important;\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 50%, transparent) !important;\n }\n }\n .bg-border {\n background-color: var(--bs-border) !important;\n }\n .bg-destructive {\n background-color: var(--bs-destructive) !important;\n }\n .bg-muted {\n background-color: var(--bs-muted) !important;\n }\n .bg-popover {\n background-color: var(--bs-popover) !important;\n }\n .bg-primary {\n background-color: var(--bs-primary) !important;\n }\n .bg-secondary {\n background-color: var(--bs-secondary) !important;\n }\n .bg-transparent {\n background-color: transparent !important;\n }\n .fill-current {\n fill: currentcolor !important;\n }\n .fill-primary {\n fill: var(--bs-primary) !important;\n }\n .object-cover {\n -o-object-fit: cover !important;\n object-fit: cover !important;\n }\n .p-0 {\n padding: calc(var(--spacing) * 0) !important;\n }\n .p-1 {\n padding: calc(var(--spacing) * 1) !important;\n }\n .p-4 {\n padding: calc(var(--spacing) * 4) !important;\n }\n .p-6 {\n padding: calc(var(--spacing) * 6) !important;\n }\n .px-2 {\n padding-inline: calc(var(--spacing) * 2) !important;\n }\n .px-3 {\n padding-inline: calc(var(--spacing) * 3) !important;\n }\n .px-4 {\n padding-inline: calc(var(--spacing) * 4) !important;\n }\n .px-6 {\n padding-inline: calc(var(--spacing) * 6) !important;\n }\n .py-1 {\n padding-block: calc(var(--spacing) * 1) !important;\n }\n .py-1\\.5 {\n padding-block: calc(var(--spacing) * 1.5) !important;\n }\n .py-2 {\n padding-block: calc(var(--spacing) * 2) !important;\n }\n .py-3 {\n padding-block: calc(var(--spacing) * 3) !important;\n }\n .py-4 {\n padding-block: calc(var(--spacing) * 4) !important;\n }\n .py-6 {\n padding-block: calc(var(--spacing) * 6) !important;\n }\n .pt-2 {\n padding-top: calc(var(--spacing) * 2) !important;\n }\n .pt-4 {\n padding-top: calc(var(--spacing) * 4) !important;\n }\n .pt-8 {\n padding-top: calc(var(--spacing) * 8) !important;\n }\n .pr-2 {\n padding-right: calc(var(--spacing) * 2) !important;\n }\n .pr-8 {\n padding-right: calc(var(--spacing) * 8) !important;\n }\n .pb-1 {\n padding-bottom: calc(var(--spacing) * 1) !important;\n }\n .pb-2 {\n padding-bottom: calc(var(--spacing) * 2) !important;\n }\n .pl-2 {\n padding-left: calc(var(--spacing) * 2) !important;\n }\n .pl-8 {\n padding-left: calc(var(--spacing) * 8) !important;\n }\n .text-center {\n text-align: center !important;\n }\n .text-right {\n text-align: right !important;\n }\n .text-base {\n font-size: var(--text-base) !important;\n line-height: var(--tw-leading, var(--text-base--line-height)) !important;\n }\n .text-lg {\n font-size: var(--text-lg) !important;\n line-height: var(--tw-leading, var(--text-lg--line-height)) !important;\n }\n .text-sm {\n font-size: var(--text-sm) !important;\n line-height: var(--tw-leading, var(--text-sm--line-height)) !important;\n }\n .text-xs {\n font-size: var(--text-xs) !important;\n line-height: var(--tw-leading, var(--text-xs--line-height)) !important;\n }\n .leading-none {\n --tw-leading: 1 !important;\n line-height: 1 !important;\n }\n .font-bold {\n --tw-font-weight: var(--font-weight-bold) !important;\n font-weight: var(--font-weight-bold) !important;\n }\n .font-medium {\n --tw-font-weight: var(--font-weight-medium) !important;\n font-weight: var(--font-weight-medium) !important;\n }\n .font-semibold {\n --tw-font-weight: var(--font-weight-semibold) !important;\n font-weight: var(--font-weight-semibold) !important;\n }\n .tracking-tight {\n --tw-tracking: var(--tracking-tight) !important;\n letter-spacing: var(--tracking-tight) !important;\n }\n .tracking-widest {\n --tw-tracking: var(--tracking-widest) !important;\n letter-spacing: var(--tracking-widest) !important;\n }\n .text-ellipsis {\n text-overflow: ellipsis !important;\n }\n .whitespace-nowrap {\n white-space: nowrap !important;\n }\n .text-background {\n color: var(--bs-background) !important;\n }\n .text-current {\n color: currentcolor !important;\n }\n .text-destructive {\n color: var(--bs-destructive) !important;\n }\n .text-destructive-foreground {\n color: var(--bs-destructive-foreground) !important;\n }\n .text-foreground {\n color: var(--bs-foreground) !important;\n }\n .text-muted-foreground {\n color: var(--bs-muted-foreground) !important;\n }\n .text-popover-foreground {\n color: var(--bs-popover-foreground) !important;\n }\n .text-primary {\n color: var(--bs-primary) !important;\n }\n .text-primary-foreground {\n color: var(--bs-primary-foreground) !important;\n }\n .text-red-500 {\n color: var(--color-red-500) !important;\n }\n .text-secondary-foreground {\n color: var(--bs-secondary-foreground) !important;\n }\n .text-white {\n color: var(--color-white) !important;\n }\n .line-through {\n text-decoration-line: line-through !important;\n }\n .underline-offset-4 {\n text-underline-offset: 4px !important;\n }\n .opacity-0 {\n opacity: 0% !important;\n }\n .opacity-50 {\n opacity: 50% !important;\n }\n .opacity-70 {\n opacity: 70% !important;\n }\n .opacity-100 {\n opacity: 100% !important;\n }\n .shadow-lg {\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1)) !important;\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important;\n }\n .shadow-md {\n --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1)) !important;\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important;\n }\n .shadow-sm {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)) !important;\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important;\n }\n .shadow-xs {\n --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05)) !important;\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important;\n }\n .ring {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor) !important;\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important;\n }\n .ring-offset-background {\n --tw-ring-offset-color: var(--bs-background) !important;\n }\n .outline-hidden {\n --tw-outline-style: none !important;\n outline-style: none !important;\n @media (forced-colors: active) {\n outline: 2px solid transparent !important;\n outline-offset: 2px !important;\n }\n }\n .outline {\n outline-style: var(--tw-outline-style) !important;\n outline-width: 1px !important;\n }\n .transition {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, visibility, content-visibility, overlay, pointer-events !important;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)) !important;\n transition-duration: var(--tw-duration, var(--default-transition-duration)) !important;\n }\n .transition-\\[color\\,box-shadow\\] {\n transition-property: color,box-shadow !important;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)) !important;\n transition-duration: var(--tw-duration, var(--default-transition-duration)) !important;\n }\n .transition-opacity {\n transition-property: opacity !important;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)) !important;\n transition-duration: var(--tw-duration, var(--default-transition-duration)) !important;\n }\n .transition-shadow {\n transition-property: box-shadow !important;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)) !important;\n transition-duration: var(--tw-duration, var(--default-transition-duration)) !important;\n }\n .transition-transform {\n transition-property: transform, translate, scale, rotate !important;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)) !important;\n transition-duration: var(--tw-duration, var(--default-transition-duration)) !important;\n }\n .transition-none {\n transition-property: none !important;\n }\n .duration-200 {\n --tw-duration: 200ms !important;\n transition-duration: 200ms !important;\n }\n .outline-none {\n --tw-outline-style: none !important;\n outline-style: none !important;\n }\n .select-none {\n -webkit-user-select: none !important;\n -moz-user-select: none !important;\n user-select: none !important;\n }\n .duration-200 {\n animation-duration: 200ms !important;\n }\n .not-last\\:-mb-0\\.5 {\n &:not(*:last-child) {\n margin-bottom: calc(var(--spacing) * -0.5) !important;\n }\n }\n .group-data-\\[disabled\\=true\\]\\:pointer-events-none {\n &:is(:where(.group)[data-disabled=\"true\"] *) {\n pointer-events: none !important;\n }\n }\n .group-data-\\[disabled\\=true\\]\\:opacity-50 {\n &:is(:where(.group)[data-disabled=\"true\"] *) {\n opacity: 50% !important;\n }\n }\n .peer-disabled\\:cursor-not-allowed {\n &:is(:where(.peer):disabled ~ *) {\n cursor: not-allowed !important;\n }\n }\n .peer-disabled\\:opacity-50 {\n &:is(:where(.peer):disabled ~ *) {\n opacity: 50% !important;\n }\n }\n .selection\\:bg-primary {\n & *::-moz-selection {\n background-color: var(--bs-primary) !important;\n }\n & *::selection {\n background-color: var(--bs-primary) !important;\n }\n &::-moz-selection {\n background-color: var(--bs-primary) !important;\n }\n &::selection {\n background-color: var(--bs-primary) !important;\n }\n }\n .selection\\:text-primary-foreground {\n & *::-moz-selection {\n color: var(--bs-primary-foreground) !important;\n }\n & *::selection {\n color: var(--bs-primary-foreground) !important;\n }\n &::-moz-selection {\n color: var(--bs-primary-foreground) !important;\n }\n &::selection {\n color: var(--bs-primary-foreground) !important;\n }\n }\n .file\\:inline-flex {\n &::file-selector-button {\n display: inline-flex !important;\n }\n }\n .file\\:h-7 {\n &::file-selector-button {\n height: calc(var(--spacing) * 7) !important;\n }\n }\n .file\\:border-0 {\n &::file-selector-button {\n border-style: var(--tw-border-style) !important;\n border-width: 0px !important;\n }\n }\n .file\\:bg-transparent {\n &::file-selector-button {\n background-color: transparent !important;\n }\n }\n .file\\:text-sm {\n &::file-selector-button {\n font-size: var(--text-sm) !important;\n line-height: var(--tw-leading, var(--text-sm--line-height)) !important;\n }\n }\n .file\\:font-medium {\n &::file-selector-button {\n --tw-font-weight: var(--font-weight-medium) !important;\n font-weight: var(--font-weight-medium) !important;\n }\n }\n .file\\:text-foreground {\n &::file-selector-button {\n color: var(--bs-foreground) !important;\n }\n }\n .placeholder\\:text-muted-foreground {\n &::-moz-placeholder {\n color: var(--bs-muted-foreground) !important;\n }\n &::placeholder {\n color: var(--bs-muted-foreground) !important;\n }\n }\n .hover\\:bg-accent {\n &:hover {\n @media (hover: hover) {\n background-color: var(--bs-accent) !important;\n }\n }\n }\n .hover\\:bg-destructive\\/90 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--bs-destructive) !important;\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--bs-destructive) 90%, transparent) !important;\n }\n }\n }\n }\n .hover\\:bg-muted {\n &:hover {\n @media (hover: hover) {\n background-color: var(--bs-muted) !important;\n }\n }\n }\n .hover\\:bg-primary\\/90 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--bs-primary) !important;\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--bs-primary) 90%, transparent) !important;\n }\n }\n }\n }\n .hover\\:bg-secondary\\/80 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--bs-secondary) !important;\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--bs-secondary) 80%, transparent) !important;\n }\n }\n }\n }\n .hover\\:text-accent-foreground {\n &:hover {\n @media (hover: hover) {\n color: var(--bs-accent-foreground) !important;\n }\n }\n }\n .hover\\:text-foreground {\n &:hover {\n @media (hover: hover) {\n color: var(--bs-foreground) !important;\n }\n }\n }\n .hover\\:underline {\n &:hover {\n @media (hover: hover) {\n text-decoration-line: underline !important;\n }\n }\n }\n .hover\\:opacity-100 {\n &:hover {\n @media (hover: hover) {\n opacity: 100% !important;\n }\n }\n }\n .focus\\:bg-accent {\n &:focus {\n background-color: var(--bs-accent) !important;\n }\n }\n .focus\\:text-accent-foreground {\n &:focus {\n color: var(--bs-accent-foreground) !important;\n }\n }\n .focus\\:ring-1 {\n &:focus {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor) !important;\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important;\n }\n }\n .focus\\:ring-2 {\n &:focus {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor) !important;\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important;\n }\n }\n .focus\\:ring-ring {\n &:focus {\n --tw-ring-color: var(--bs-ring) !important;\n }\n }\n .focus\\:ring-offset-2 {\n &:focus {\n --tw-ring-offset-width: 2px !important;\n --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color) !important;\n }\n }\n .focus\\:outline-hidden {\n &:focus {\n --tw-outline-style: none !important;\n outline-style: none !important;\n @media (forced-colors: active) {\n outline: 2px solid transparent !important;\n outline-offset: 2px !important;\n }\n }\n }\n .focus\\:outline-none {\n &:focus {\n --tw-outline-style: none !important;\n outline-style: none !important;\n }\n }\n .focus-visible\\:border-ring {\n &:focus-visible {\n border-color: var(--bs-ring) !important;\n }\n }\n .focus-visible\\:ring-\\[3px\\] {\n &:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor) !important;\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important;\n }\n }\n .focus-visible\\:ring-destructive\\/20 {\n &:focus-visible {\n --tw-ring-color: var(--bs-destructive) !important;\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--bs-destructive) 20%, transparent) !important;\n }\n }\n }\n .focus-visible\\:ring-ring\\/50 {\n &:focus-visible {\n --tw-ring-color: var(--bs-ring) !important;\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--bs-ring) 50%, transparent) !important;\n }\n }\n }\n .disabled\\:pointer-events-none {\n &:disabled {\n pointer-events: none !important;\n }\n }\n .disabled\\:cursor-not-allowed {\n &:disabled {\n cursor: not-allowed !important;\n }\n }\n .disabled\\:opacity-50 {\n &:disabled {\n opacity: 50% !important;\n }\n }\n .has-\\[\\>svg\\]\\:px-2\\.5 {\n &:has(>svg) {\n padding-inline: calc(var(--spacing) * 2.5) !important;\n }\n }\n .has-\\[\\>svg\\]\\:px-3 {\n &:has(>svg) {\n padding-inline: calc(var(--spacing) * 3) !important;\n }\n }\n .has-\\[\\>svg\\]\\:px-4 {\n &:has(>svg) {\n padding-inline: calc(var(--spacing) * 4) !important;\n }\n }\n .aria-invalid\\:border-destructive {\n &[aria-invalid=\"true\"] {\n border-color: var(--bs-destructive) !important;\n }\n }\n .aria-invalid\\:ring-destructive\\/20 {\n &[aria-invalid=\"true\"] {\n --tw-ring-color: var(--bs-destructive) !important;\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--bs-destructive) 20%, transparent) !important;\n }\n }\n }\n .data-\\[disabled\\]\\:pointer-events-none {\n &[data-disabled] {\n pointer-events: none !important;\n }\n }\n .data-\\[disabled\\]\\:opacity-50 {\n &[data-disabled] {\n opacity: 50% !important;\n }\n }\n .data-\\[disabled\\=true\\]\\:pointer-events-none {\n &[data-disabled=\"true\"] {\n pointer-events: none !important;\n }\n }\n .data-\\[disabled\\=true\\]\\:opacity-50 {\n &[data-disabled=\"true\"] {\n opacity: 50% !important;\n }\n }\n .data-\\[error\\=true\\]\\:text-destructive-foreground {\n &[data-error=\"true\"] {\n color: var(--bs-destructive-foreground) !important;\n }\n }\n .data-\\[inset\\]\\:pl-8 {\n &[data-inset] {\n padding-left: calc(var(--spacing) * 8) !important;\n }\n }\n .data-\\[placeholder\\]\\:text-muted-foreground {\n &[data-placeholder] {\n color: var(--bs-muted-foreground) !important;\n }\n }\n .data-\\[selected\\=true\\]\\:bg-accent {\n &[data-selected=\"true\"] {\n background-color: var(--bs-accent) !important;\n }\n }\n .data-\\[selected\\=true\\]\\:text-accent-foreground {\n &[data-selected=\"true\"] {\n color: var(--bs-accent-foreground) !important;\n }\n }\n .data-\\[side\\=bottom\\]\\:translate-y-1 {\n &[data-side=\"bottom\"] {\n --tw-translate-y: calc(var(--spacing) * 1) !important;\n translate: var(--tw-translate-x) var(--tw-translate-y) !important;\n }\n }\n .data-\\[side\\=bottom\\]\\:slide-in-from-top-2 {\n &[data-side=\"bottom\"] {\n --tw-enter-translate-y: -0.5rem !important;\n }\n }\n .data-\\[side\\=left\\]\\:-translate-x-1 {\n &[data-side=\"left\"] {\n --tw-translate-x: calc(var(--spacing) * -1) !important;\n translate: var(--tw-translate-x) var(--tw-translate-y) !important;\n }\n }\n .data-\\[side\\=left\\]\\:slide-in-from-right-2 {\n &[data-side=\"left\"] {\n --tw-enter-translate-x: 0.5rem !important;\n }\n }\n .data-\\[side\\=right\\]\\:translate-x-1 {\n &[data-side=\"right\"] {\n --tw-translate-x: calc(var(--spacing) * 1) !important;\n translate: var(--tw-translate-x) var(--tw-translate-y) !important;\n }\n }\n .data-\\[side\\=right\\]\\:slide-in-from-left-2 {\n &[data-side=\"right\"] {\n --tw-enter-translate-x: -0.5rem !important;\n }\n }\n .data-\\[side\\=top\\]\\:-translate-y-1 {\n &[data-side=\"top\"] {\n --tw-translate-y: calc(var(--spacing) * -1) !important;\n translate: var(--tw-translate-x) var(--tw-translate-y) !important;\n }\n }\n .data-\\[side\\=top\\]\\:slide-in-from-bottom-2 {\n &[data-side=\"top\"] {\n --tw-enter-translate-y: 0.5rem !important;\n }\n }\n .\\*\\*\\:data-\\[slot\\=command-input-wrapper\\]\\:h-12 {\n :is(& *) {\n &[data-slot=\"command-input-wrapper\"] {\n height: calc(var(--spacing) * 12) !important;\n }\n }\n }\n .\\*\\:data-\\[slot\\=select-value\\]\\:line-clamp-1 {\n :is(& > *) {\n &[data-slot=\"select-value\"] {\n overflow: hidden !important;\n display: -webkit-box !important;\n -webkit-box-orient: vertical !important;\n -webkit-line-clamp: 1 !important;\n }\n }\n }\n .\\*\\:data-\\[slot\\=select-value\\]\\:flex {\n :is(& > *) {\n &[data-slot=\"select-value\"] {\n display: flex !important;\n }\n }\n }\n .\\*\\:data-\\[slot\\=select-value\\]\\:items-center {\n :is(& > *) {\n &[data-slot=\"select-value\"] {\n align-items: center !important;\n }\n }\n }\n .\\*\\:data-\\[slot\\=select-value\\]\\:gap-2 {\n :is(& > *) {\n &[data-slot=\"select-value\"] {\n gap: calc(var(--spacing) * 2) !important;\n }\n }\n }\n .data-\\[state\\=checked\\]\\:border-primary {\n &[data-state=\"checked\"] {\n border-color: var(--bs-primary) !important;\n }\n }\n .data-\\[state\\=checked\\]\\:bg-primary {\n &[data-state=\"checked\"] {\n background-color: var(--bs-primary) !important;\n }\n }\n .data-\\[state\\=checked\\]\\:text-primary-foreground {\n &[data-state=\"checked\"] {\n color: var(--bs-primary-foreground) !important;\n }\n }\n .data-\\[state\\=closed\\]\\:animate-out {\n &[data-state=\"closed\"] {\n animation-name: exit !important;\n animation-duration: 150ms !important;\n --tw-exit-opacity: initial !important;\n --tw-exit-scale: initial !important;\n --tw-exit-rotate: initial !important;\n --tw-exit-translate-x: initial !important;\n --tw-exit-translate-y: initial !important;\n }\n }\n .data-\\[state\\=closed\\]\\:fade-out-0 {\n &[data-state=\"closed\"] {\n --tw-exit-opacity: 0 !important;\n }\n }\n .data-\\[state\\=closed\\]\\:zoom-out-95 {\n &[data-state=\"closed\"] {\n --tw-exit-scale: .95 !important;\n }\n }\n .data-\\[state\\=open\\]\\:bg-accent {\n &[data-state=\"open\"] {\n background-color: var(--bs-accent) !important;\n }\n }\n .data-\\[state\\=open\\]\\:text-accent-foreground {\n &[data-state=\"open\"] {\n color: var(--bs-accent-foreground) !important;\n }\n }\n .data-\\[state\\=open\\]\\:text-muted-foreground {\n &[data-state=\"open\"] {\n color: var(--bs-muted-foreground) !important;\n }\n }\n .data-\\[state\\=open\\]\\:animate-in {\n &[data-state=\"open\"] {\n animation-name: enter !important;\n animation-duration: 150ms !important;\n --tw-enter-opacity: initial !important;\n --tw-enter-scale: initial !important;\n --tw-enter-rotate: initial !important;\n --tw-enter-translate-x: initial !important;\n --tw-enter-translate-y: initial !important;\n }\n }\n .data-\\[state\\=open\\]\\:fade-in-0 {\n &[data-state=\"open\"] {\n --tw-enter-opacity: 0 !important;\n }\n }\n .data-\\[state\\=open\\]\\:zoom-in-95 {\n &[data-state=\"open\"] {\n --tw-enter-scale: .95 !important;\n }\n }\n .data-\\[variant\\=destructive\\]\\:text-destructive {\n &[data-variant=\"destructive\"] {\n color: var(--bs-destructive) !important;\n }\n }\n .data-\\[variant\\=destructive\\]\\:focus\\:bg-destructive\\/10 {\n &[data-variant=\"destructive\"] {\n &:focus {\n background-color: var(--bs-destructive) !important;\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--bs-destructive) 10%, transparent) !important;\n }\n }\n }\n }\n .data-\\[variant\\=destructive\\]\\:focus\\:text-destructive {\n &[data-variant=\"destructive\"] {\n &:focus {\n color: var(--bs-destructive) !important;\n }\n }\n }\n .max-sm\\:hidden {\n @media (width < 40rem) {\n display: none !important;\n }\n }\n .sm\\:max-h-\\[270px\\] {\n @media (width >= 40rem) {\n max-height: 270px !important;\n }\n }\n .sm\\:max-w-\\[500px\\] {\n @media (width >= 40rem) {\n max-width: 500px !important;\n }\n }\n .sm\\:max-w-lg {\n @media (width >= 40rem) {\n max-width: var(--container-lg) !important;\n }\n }\n .sm\\:flex-row {\n @media (width >= 40rem) {\n flex-direction: row !important;\n }\n }\n .sm\\:justify-end {\n @media (width >= 40rem) {\n justify-content: flex-end !important;\n }\n }\n .sm\\:text-left {\n @media (width >= 40rem) {\n text-align: left !important;\n }\n }\n .md\\:order-last {\n @media (width >= 48rem) {\n order: 9999 !important;\n }\n }\n .md\\:order-none {\n @media (width >= 48rem) {\n order: 0 !important;\n }\n }\n .md\\:col-span-2 {\n @media (width >= 48rem) {\n grid-column: span 2 / span 2 !important;\n }\n }\n .md\\:col-span-3 {\n @media (width >= 48rem) {\n grid-column: span 3 / span 3 !important;\n }\n }\n .md\\:col-span-4 {\n @media (width >= 48rem) {\n grid-column: span 4 / span 4 !important;\n }\n }\n .md\\:block {\n @media (width >= 48rem) {\n display: block !important;\n }\n }\n .md\\:flex {\n @media (width >= 48rem) {\n display: flex !important;\n }\n }\n .md\\:grid {\n @media (width >= 48rem) {\n display: grid !important;\n }\n }\n .md\\:hidden {\n @media (width >= 48rem) {\n display: none !important;\n }\n }\n .md\\:max-w-\\[75\\%\\] {\n @media (width >= 48rem) {\n max-width: 75% !important;\n }\n }\n .md\\:grid-cols-2 {\n @media (width >= 48rem) {\n grid-template-columns: repeat(2, minmax(0, 1fr)) !important;\n }\n }\n .md\\:grid-cols-7 {\n @media (width >= 48rem) {\n grid-template-columns: repeat(7, minmax(0, 1fr)) !important;\n }\n }\n .md\\:gap-0 {\n @media (width >= 48rem) {\n gap: calc(var(--spacing) * 0) !important;\n }\n }\n .md\\:px-8 {\n @media (width >= 48rem) {\n padding-inline: calc(var(--spacing) * 8) !important;\n }\n }\n .md\\:py-12 {\n @media (width >= 48rem) {\n padding-block: calc(var(--spacing) * 12) !important;\n }\n }\n .md\\:text-sm {\n @media (width >= 48rem) {\n font-size: var(--text-sm) !important;\n line-height: var(--tw-leading, var(--text-sm--line-height)) !important;\n }\n }\n .dark\\:focus-visible\\:ring-destructive\\/40 {\n @media (prefers-color-scheme: dark) {\n &:focus-visible {\n --tw-ring-color: var(--bs-destructive) !important;\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--bs-destructive) 40%, transparent) !important;\n }\n }\n }\n }\n .dark\\:aria-invalid\\:ring-destructive\\/40 {\n @media (prefers-color-scheme: dark) {\n &[aria-invalid=\"true\"] {\n --tw-ring-color: var(--bs-destructive) !important;\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--bs-destructive) 40%, transparent) !important;\n }\n }\n }\n }\n .dark\\:data-\\[variant\\=destructive\\]\\:focus\\:bg-destructive\\/20 {\n @media (prefers-color-scheme: dark) {\n &[data-variant=\"destructive\"] {\n &:focus {\n background-color: var(--bs-destructive) !important;\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--bs-destructive) 20%, transparent) !important;\n }\n }\n }\n }\n }\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:px-2 {\n & [cmdk-group-heading] {\n padding-inline: calc(var(--spacing) * 2) !important;\n }\n }\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:py-1\\.5 {\n & [cmdk-group-heading] {\n padding-block: calc(var(--spacing) * 1.5) !important;\n }\n }\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:text-xs {\n & [cmdk-group-heading] {\n font-size: var(--text-xs) !important;\n line-height: var(--tw-leading, var(--text-xs--line-height)) !important;\n }\n }\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:font-medium {\n & [cmdk-group-heading] {\n --tw-font-weight: var(--font-weight-medium) !important;\n font-weight: var(--font-weight-medium) !important;\n }\n }\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:text-muted-foreground {\n & [cmdk-group-heading] {\n color: var(--bs-muted-foreground) !important;\n }\n }\n .\\[\\&_\\[cmdk-group\\]\\]\\:px-2 {\n & [cmdk-group] {\n padding-inline: calc(var(--spacing) * 2) !important;\n }\n }\n .\\[\\&_\\[cmdk-group\\]\\:not\\(\\[hidden\\]\\)_\\~\\[cmdk-group\\]\\]\\:pt-0 {\n & [cmdk-group]:not([hidden]) ~[cmdk-group] {\n padding-top: calc(var(--spacing) * 0) !important;\n }\n }\n .\\[\\&_\\[cmdk-input-wrapper\\]_svg\\]\\:h-5 {\n & [cmdk-input-wrapper] svg {\n height: calc(var(--spacing) * 5) !important;\n }\n }\n .\\[\\&_\\[cmdk-input-wrapper\\]_svg\\]\\:w-5 {\n & [cmdk-input-wrapper] svg {\n width: calc(var(--spacing) * 5) !important;\n }\n }\n .\\[\\&_\\[cmdk-input\\]\\]\\:h-12 {\n & [cmdk-input] {\n height: calc(var(--spacing) * 12) !important;\n }\n }\n .\\[\\&_\\[cmdk-item\\]\\]\\:px-2 {\n & [cmdk-item] {\n padding-inline: calc(var(--spacing) * 2) !important;\n }\n }\n .\\[\\&_\\[cmdk-item\\]\\]\\:py-3 {\n & [cmdk-item] {\n padding-block: calc(var(--spacing) * 3) !important;\n }\n }\n .\\[\\&_\\[cmdk-item\\]_svg\\]\\:h-5 {\n & [cmdk-item] svg {\n height: calc(var(--spacing) * 5) !important;\n }\n }\n .\\[\\&_\\[cmdk-item\\]_svg\\]\\:w-5 {\n & [cmdk-item] svg {\n width: calc(var(--spacing) * 5) !important;\n }\n }\n .\\[\\&_svg\\]\\:pointer-events-none {\n & svg {\n pointer-events: none !important;\n }\n }\n .\\[\\&_svg\\]\\:shrink-0 {\n & svg {\n flex-shrink: 0 !important;\n }\n }\n .\\[\\&_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-4 {\n & svg:not([class*='size-']) {\n width: calc(var(--spacing) * 4) !important;\n height: calc(var(--spacing) * 4) !important;\n }\n }\n .\\[\\&_svg\\:not\\(\\[class\\*\\=\\'text-\\'\\]\\)\\]\\:text-muted-foreground {\n & svg:not([class*='text-']) {\n color: var(--bs-muted-foreground) !important;\n }\n }\n .\\*\\:\\[span\\]\\:last\\:flex {\n :is(& > *) {\n &:is(span) {\n &:last-child {\n display: flex !important;\n }\n }\n }\n }\n .\\*\\:\\[span\\]\\:last\\:items-center {\n :is(& > *) {\n &:is(span) {\n &:last-child {\n align-items: center !important;\n }\n }\n }\n }\n .\\*\\:\\[span\\]\\:last\\:gap-2 {\n :is(& > *) {\n &:is(span) {\n &:last-child {\n gap: calc(var(--spacing) * 2) !important;\n }\n }\n }\n }\n .data-\\[variant\\=destructive\\]\\:\\*\\:\\[svg\\]\\:\\!text-destructive {\n &[data-variant=\"destructive\"] {\n :is(& > *) {\n &:is(svg) {\n color: var(--bs-destructive) !important;\n }\n }\n }\n }\n .\\[\\&\\>span\\]\\:line-clamp-1 {\n &>span {\n overflow: hidden !important;\n display: -webkit-box !important;\n -webkit-box-orient: vertical !important;\n -webkit-line-clamp: 1 !important;\n }\n }\n}\n.checkout-embed {\n :root {\n --background: oklch(1 0 0);\n --foreground: oklch(0.145 0 0);\n --card: oklch(1 0 0);\n --card-foreground: oklch(0.145 0 0);\n --popover: oklch(1 0 0);\n --popover-foreground: oklch(0.145 0 0);\n --primary: oklch(0.205 0 0);\n --primary-foreground: oklch(0.985 0 0);\n --secondary: oklch(0.97 0 0);\n --secondary-foreground: oklch(0.205 0 0);\n --muted: oklch(0.97 0 0);\n --muted-foreground: oklch(0.556 0 0);\n --accent: oklch(0.97 0 0);\n --accent-foreground: oklch(0.205 0 0);\n --destructive: oklch(0.577 0.245 27.325);\n --destructive-foreground: oklch(0.577 0.245 27.325);\n --border: oklch(0.922 0 0);\n --input: oklch(0.922 0 0);\n --ring: oklch(0.708 0 0);\n --chart-1: oklch(0.646 0.222 41.116);\n --chart-2: oklch(0.6 0.118 184.704);\n --chart-3: oklch(0.398 0.07 227.392);\n --chart-4: oklch(0.828 0.189 84.429);\n --chart-5: oklch(0.769 0.188 70.08);\n --radius: 0.625rem;\n --sidebar: oklch(0.985 0 0);\n --sidebar-foreground: oklch(0.145 0 0);\n --sidebar-primary: oklch(0.205 0 0);\n --sidebar-primary-foreground: oklch(0.985 0 0);\n --sidebar-accent: oklch(0.97 0 0);\n --sidebar-accent-foreground: oklch(0.205 0 0);\n --sidebar-border: oklch(0.922 0 0);\n --sidebar-ring: oklch(0.708 0 0);\n }\n @layer base {\n * {\n border-color: var(--bs-border) !important;\n outline-color: var(--bs-ring) !important;\n @supports (color: color-mix(in lab, red, red)) {\n outline-color: color-mix(in oklab, var(--bs-ring) 50%, transparent) !important;\n }\n }\n .checkout-embed {\n background-color: var(--bs-background) !important;\n font-family: var(--bs-font-sans), Helvetica, Arial, apple-system, sans-serif !important;\n color: var(--bs-foreground) !important;\n }\n h2 {\n font-size: var(--text-2xl) !important;\n line-height: var(--tw-leading, var(--text-2xl--line-height)) !important;\n --tw-font-weight: var(--font-weight-bold) !important;\n font-weight: var(--font-weight-bold) !important;\n --tw-tracking: var(--tracking-tight) !important;\n letter-spacing: var(--tracking-tight) !important;\n }\n p {\n --tw-tracking: var(--tracking-tight) !important;\n letter-spacing: var(--tracking-tight) !important;\n }\n }\n @layer utilities {\n .scrollbar-hidden {\n scrollbar-width: none;\n }\n .scrollbar-hidden::-webkit-scrollbar {\n display: none;\n }\n }\n}\n@keyframes enter {\n from {\n opacity: var(--tw-enter-opacity, 1);\n transform: translate3d(var(--tw-enter-translate-x, 0), var(--tw-enter-translate-y, 0), 0) scale3d(var(--tw-enter-scale, 1), var(--tw-enter-scale, 1), var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0));\n }\n}\n@keyframes exit {\n to {\n opacity: var(--tw-exit-opacity, 1);\n transform: translate3d(var(--tw-exit-translate-x, 0), var(--tw-exit-translate-y, 0), 0) scale3d(var(--tw-exit-scale, 1), var(--tw-exit-scale, 1), var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0));\n }\n}\n@property --tw-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-space-y-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-space-x-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-leading {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-tracking {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-inset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-ring-inset {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-offset-width {\n syntax: \"<length>\";\n inherits: false;\n initial-value: 0px;\n}\n@property --tw-ring-offset-color {\n syntax: \"*\";\n inherits: false;\n initial-value: #fff;\n}\n@property --tw-ring-offset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-outline-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-duration {\n syntax: \"*\";\n inherits: false;\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 50% {\n opacity: 0.5;\n }\n}\n@layer properties {\n @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n *, ::before, ::after, ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-space-y-reverse: 0;\n --tw-space-x-reverse: 0;\n --tw-border-style: solid;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-tracking: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-outline-style: solid;\n --tw-duration: initial;\n }\n }\n}\n";
|
|
35365
|
+
var css_248z = "/*! tailwindcss v4.1.7 | MIT License | https://tailwindcss.com */\n@layer properties;\n@layer theme, base, components, utilities;\n@layer theme {\n :root, :host {\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\",\n \"Courier New\", monospace;\n --color-red-500: oklch(63.7% 0.237 25.331);\n --color-black: #000;\n --color-white: #fff;\n --spacing: 0.25rem;\n --container-lg: 32rem;\n --text-xs: 0.75rem;\n --text-xs--line-height: calc(1 / 0.75);\n --text-sm: 0.875rem;\n --text-sm--line-height: calc(1.25 / 0.875);\n --text-base: 1rem;\n --text-base--line-height: calc(1.5 / 1);\n --text-lg: 1.125rem;\n --text-lg--line-height: calc(1.75 / 1.125);\n --text-2xl: 1.5rem;\n --text-2xl--line-height: calc(2 / 1.5);\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --tracking-tight: -0.025em;\n --tracking-widest: 0.1em;\n --radius-xs: 0.125rem;\n --animate-spin: spin 1s linear infinite;\n --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n --default-transition-duration: 150ms;\n --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --default-font-family: var(--bs-font-sans), Helvetica, Arial, apple-system, sans-serif;\n --default-mono-font-family: var(--font-mono);\n }\n}\n@layer base {\n *, ::after, ::before, ::backdrop, ::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n }\n html, :host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n b, strong {\n font-weight: bolder;\n }\n code, kbd, samp, pre {\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n small {\n font-size: 80%;\n }\n sub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n :-moz-focusring {\n outline: auto;\n }\n progress {\n vertical-align: baseline;\n }\n summary {\n display: list-item;\n }\n ol, ul, menu {\n list-style: none;\n }\n img, svg, video, canvas, audio, iframe, embed, object {\n display: block;\n vertical-align: middle;\n }\n img, video {\n max-width: 100%;\n height: auto;\n }\n button, input, select, optgroup, textarea, ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n ::-moz-placeholder {\n opacity: 1;\n }\n ::placeholder {\n opacity: 1;\n }\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\n ::-moz-placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n ::placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n textarea {\n resize: vertical;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button, input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]), ::file-selector-button {\n -webkit-appearance: button;\n -moz-appearance: button;\n appearance: button;\n }\n ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n }\n [hidden]:where(:not([hidden=\"until-found\"])) {\n display: none !important;\n }\n}\n@layer utilities {\n .pointer-events-none {\n pointer-events: none !important;\n }\n .sr-only {\n position: absolute !important;\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important;\n overflow: hidden !important;\n clip: rect(0, 0, 0, 0) !important;\n white-space: nowrap !important;\n border-width: 0 !important;\n }\n .absolute {\n position: absolute !important;\n }\n .fixed {\n position: fixed !important;\n }\n .relative {\n position: relative !important;\n }\n .sticky {\n position: sticky !important;\n }\n .inset-0 {\n inset: calc(var(--spacing) * 0) !important;\n }\n .-top-2 {\n top: calc(var(--spacing) * -2) !important;\n }\n .top-0 {\n top: calc(var(--spacing) * 0) !important;\n }\n .top-0\\.5 {\n top: calc(var(--spacing) * 0.5) !important;\n }\n .top-1\\/2 {\n top: calc(1/2 * 100%) !important;\n }\n .top-4 {\n top: calc(var(--spacing) * 4) !important;\n }\n .top-\\[50\\%\\] {\n top: 50% !important;\n }\n .-right-2 {\n right: calc(var(--spacing) * -2) !important;\n }\n .right-2 {\n right: calc(var(--spacing) * 2) !important;\n }\n .right-4 {\n right: calc(var(--spacing) * 4) !important;\n }\n .left-1\\/2 {\n left: calc(1/2 * 100%) !important;\n }\n .left-2 {\n left: calc(var(--spacing) * 2) !important;\n }\n .left-\\[50\\%\\] {\n left: 50% !important;\n }\n .z-10 {\n z-index: 10 !important;\n }\n .z-50 {\n z-index: 50 !important;\n }\n .order-3 {\n order: 3 !important;\n }\n .order-4 {\n order: 4 !important;\n }\n .order-5 {\n order: 5 !important;\n }\n .order-6 {\n order: 6 !important;\n }\n .order-7 {\n order: 7 !important;\n }\n .order-first {\n order: -9999 !important;\n }\n .col-span-2 {\n grid-column: span 2 / span 2 !important;\n }\n .-m-0\\.5 {\n margin: calc(var(--spacing) * -0.5) !important;\n }\n .-mx-1 {\n margin-inline: calc(var(--spacing) * -1) !important;\n }\n .mx-auto {\n margin-inline: auto !important;\n }\n .my-1 {\n margin-block: calc(var(--spacing) * 1) !important;\n }\n .my-2 {\n margin-block: calc(var(--spacing) * 2) !important;\n }\n .mt-2 {\n margin-top: calc(var(--spacing) * 2) !important;\n }\n .mt-8 {\n margin-top: calc(var(--spacing) * 8) !important;\n }\n .-mb-0\\.5 {\n margin-bottom: calc(var(--spacing) * -0.5) !important;\n }\n .mb-1 {\n margin-bottom: calc(var(--spacing) * 1) !important;\n }\n .mb-2 {\n margin-bottom: calc(var(--spacing) * 2) !important;\n }\n .ml-4 {\n margin-left: calc(var(--spacing) * 4) !important;\n }\n .ml-auto {\n margin-left: auto !important;\n }\n .line-clamp-1 {\n overflow: hidden !important;\n display: -webkit-box !important;\n -webkit-box-orient: vertical !important;\n -webkit-line-clamp: 1 !important;\n }\n .block {\n display: block !important;\n }\n .flex {\n display: flex !important;\n }\n .grid {\n display: grid !important;\n }\n .hidden {\n display: none !important;\n }\n .inline-flex {\n display: inline-flex !important;\n }\n .aspect-square {\n aspect-ratio: 1 / 1 !important;\n }\n .size-2 {\n width: calc(var(--spacing) * 2) !important;\n height: calc(var(--spacing) * 2) !important;\n }\n .size-3 {\n width: calc(var(--spacing) * 3) !important;\n height: calc(var(--spacing) * 3) !important;\n }\n .size-3\\.5 {\n width: calc(var(--spacing) * 3.5) !important;\n height: calc(var(--spacing) * 3.5) !important;\n }\n .size-4 {\n width: calc(var(--spacing) * 4) !important;\n height: calc(var(--spacing) * 4) !important;\n }\n .size-5 {\n width: calc(var(--spacing) * 5) !important;\n height: calc(var(--spacing) * 5) !important;\n }\n .size-9 {\n width: calc(var(--spacing) * 9) !important;\n height: calc(var(--spacing) * 9) !important;\n }\n .size-16 {\n width: calc(var(--spacing) * 16) !important;\n height: calc(var(--spacing) * 16) !important;\n }\n .h-3 {\n height: calc(var(--spacing) * 3) !important;\n }\n .h-3\\.5 {\n height: calc(var(--spacing) * 3.5) !important;\n }\n .h-4 {\n height: calc(var(--spacing) * 4) !important;\n }\n .h-5 {\n height: calc(var(--spacing) * 5) !important;\n }\n .h-6 {\n height: calc(var(--spacing) * 6) !important;\n }\n .h-8 {\n height: calc(var(--spacing) * 8) !important;\n }\n .h-9 {\n height: calc(var(--spacing) * 9) !important;\n }\n .h-10 {\n height: calc(var(--spacing) * 10) !important;\n }\n .h-12 {\n height: calc(var(--spacing) * 12) !important;\n }\n .h-16 {\n height: calc(var(--spacing) * 16) !important;\n }\n .h-\\[18px\\] {\n height: 18px !important;\n }\n .h-\\[20px\\] {\n height: 20px !important;\n }\n .h-\\[var\\(--radix-select-trigger-height\\)\\] {\n height: var(--radix-select-trigger-height) !important;\n }\n .h-auto {\n height: auto !important;\n }\n .h-auto\\! {\n height: auto !important;\n }\n .h-full {\n height: 100% !important;\n }\n .h-px {\n height: 1px !important;\n }\n .max-h-\\(--radix-dropdown-menu-content-available-height\\) {\n max-height: var(--radix-dropdown-menu-content-available-height) !important;\n }\n .max-h-96 {\n max-height: calc(var(--spacing) * 96) !important;\n }\n .max-h-\\[200px\\] {\n max-height: 200px !important;\n }\n .max-h-\\[300px\\] {\n max-height: 300px !important;\n }\n .min-h-full {\n min-height: 100% !important;\n }\n .min-h-screen {\n min-height: 100vh !important;\n }\n .w-0 {\n width: calc(var(--spacing) * 0) !important;\n }\n .w-4 {\n width: calc(var(--spacing) * 4) !important;\n }\n .w-5 {\n width: calc(var(--spacing) * 5) !important;\n }\n .w-6 {\n width: calc(var(--spacing) * 6) !important;\n }\n .w-10 {\n width: calc(var(--spacing) * 10) !important;\n }\n .w-12 {\n width: calc(var(--spacing) * 12) !important;\n }\n .w-16 {\n width: calc(var(--spacing) * 16) !important;\n }\n .w-20 {\n width: calc(var(--spacing) * 20) !important;\n }\n .w-24 {\n width: calc(var(--spacing) * 24) !important;\n }\n .w-28 {\n width: calc(var(--spacing) * 28) !important;\n }\n .w-32 {\n width: calc(var(--spacing) * 32) !important;\n }\n .w-40 {\n width: calc(var(--spacing) * 40) !important;\n }\n .w-72 {\n width: calc(var(--spacing) * 72) !important;\n }\n .w-fit {\n width: -moz-fit-content !important;\n width: fit-content !important;\n }\n .w-full {\n width: 100% !important;\n }\n .max-w-\\[1200px\\] {\n max-width: 1200px !important;\n }\n .max-w-\\[calc\\(100\\%-2rem\\)\\] {\n max-width: calc(100% - 2rem) !important;\n }\n .min-w-0 {\n min-width: calc(var(--spacing) * 0) !important;\n }\n .min-w-\\[--radix-popper-anchor-width\\] {\n min-width: --radix-popper-anchor-width !important;\n }\n .min-w-\\[8rem\\] {\n min-width: 8rem !important;\n }\n .min-w-\\[var\\(--radix-select-trigger-width\\)\\] {\n min-width: var(--radix-select-trigger-width) !important;\n }\n .flex-1 {\n flex: 1 !important;\n }\n .shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-grow {\n flex-grow: 1 !important;\n }\n .origin-\\(--radix-dropdown-menu-content-transform-origin\\) {\n transform-origin: var(--radix-dropdown-menu-content-transform-origin) !important;\n }\n .origin-\\(--radix-popover-content-transform-origin\\) {\n transform-origin: var(--radix-popover-content-transform-origin) !important;\n }\n .-translate-x-1\\/2 {\n --tw-translate-x: calc(calc(1/2 * 100%) * -1) !important;\n translate: var(--tw-translate-x) var(--tw-translate-y) !important;\n }\n .translate-x-\\[-50\\%\\] {\n --tw-translate-x: -50% !important;\n translate: var(--tw-translate-x) var(--tw-translate-y) !important;\n }\n .-translate-y-1\\/2 {\n --tw-translate-y: calc(calc(1/2 * 100%) * -1) !important;\n translate: var(--tw-translate-x) var(--tw-translate-y) !important;\n }\n .translate-y-\\[-50\\%\\] {\n --tw-translate-y: -50% !important;\n translate: var(--tw-translate-x) var(--tw-translate-y) !important;\n }\n .rotate-180 {\n rotate: 180deg !important;\n }\n .transform-none\\! {\n transform: none !important;\n }\n .animate-pulse {\n animation: var(--animate-pulse) !important;\n }\n .animate-spin {\n animation: var(--animate-spin) !important;\n }\n .cursor-default {\n cursor: default !important;\n }\n .cursor-pointer {\n cursor: pointer !important;\n }\n .scroll-my-1 {\n scroll-margin-block: calc(var(--spacing) * 1) !important;\n }\n .scroll-py-1 {\n scroll-padding-block: calc(var(--spacing) * 1) !important;\n }\n .grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr)) !important;\n }\n .flex-col {\n flex-direction: column !important;\n }\n .flex-col-reverse {\n flex-direction: column-reverse !important;\n }\n .items-center {\n align-items: center !important;\n }\n .justify-between {\n justify-content: space-between !important;\n }\n .justify-center {\n justify-content: center !important;\n }\n .justify-end {\n justify-content: flex-end !important;\n }\n .gap-0 {\n gap: calc(var(--spacing) * 0) !important;\n }\n .gap-0\\.5 {\n gap: calc(var(--spacing) * 0.5) !important;\n }\n .gap-1\\.5 {\n gap: calc(var(--spacing) * 1.5) !important;\n }\n .gap-2 {\n gap: calc(var(--spacing) * 2) !important;\n }\n .gap-3 {\n gap: calc(var(--spacing) * 3) !important;\n }\n .gap-4 {\n gap: calc(var(--spacing) * 4) !important;\n }\n .gap-5 {\n gap: calc(var(--spacing) * 5) !important;\n }\n .gap-6 {\n gap: calc(var(--spacing) * 6) !important;\n }\n .gap-\\[10px\\] {\n gap: 10px !important;\n }\n .space-y-2 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0 !important;\n margin-block-start: calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse)) !important;\n margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse))) !important;\n }\n }\n .space-y-4 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0 !important;\n margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse)) !important;\n margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse))) !important;\n }\n }\n .space-y-6 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0 !important;\n margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse)) !important;\n margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse))) !important;\n }\n }\n .space-x-2 {\n :where(& > :not(:last-child)) {\n --tw-space-x-reverse: 0 !important;\n margin-inline-start: calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse)) !important;\n margin-inline-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse))) !important;\n }\n }\n .overflow-hidden {\n overflow: hidden !important;\n }\n .overflow-x-hidden {\n overflow-x: hidden !important;\n }\n .overflow-y-auto {\n overflow-y: auto !important;\n }\n .rounded-\\[4px\\] {\n border-radius: 4px !important;\n }\n .rounded-full {\n border-radius: calc(infinity * 1px) !important;\n }\n .rounded-lg {\n border-radius: var(--bs-radius) !important;\n }\n .rounded-md {\n border-radius: calc(var(--bs-radius) - 2px) !important;\n }\n .rounded-sm {\n border-radius: calc(var(--bs-radius) - 4px) !important;\n }\n .rounded-xs {\n border-radius: var(--radius-xs) !important;\n }\n .border {\n border-style: var(--tw-border-style) !important;\n border-width: 1px !important;\n }\n .border-b {\n border-bottom-style: var(--tw-border-style) !important;\n border-bottom-width: 1px !important;\n }\n .border-input {\n border-color: var(--bs-input) !important;\n }\n .border-primary {\n border-color: var(--bs-primary) !important;\n }\n .bg-accent {\n background-color: var(--bs-accent) !important;\n }\n .bg-background {\n background-color: var(--bs-background) !important;\n }\n .bg-black\\/50 {\n background-color: color-mix(in srgb, #000 50%, transparent) !important;\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 50%, transparent) !important;\n }\n }\n .bg-border {\n background-color: var(--bs-border) !important;\n }\n .bg-destructive {\n background-color: var(--bs-destructive) !important;\n }\n .bg-muted {\n background-color: var(--bs-muted) !important;\n }\n .bg-popover {\n background-color: var(--bs-popover) !important;\n }\n .bg-primary {\n background-color: var(--bs-primary) !important;\n }\n .bg-secondary {\n background-color: var(--bs-secondary) !important;\n }\n .bg-transparent {\n background-color: transparent !important;\n }\n .fill-current {\n fill: currentcolor !important;\n }\n .fill-primary {\n fill: var(--bs-primary) !important;\n }\n .object-cover {\n -o-object-fit: cover !important;\n object-fit: cover !important;\n }\n .p-0 {\n padding: calc(var(--spacing) * 0) !important;\n }\n .p-1 {\n padding: calc(var(--spacing) * 1) !important;\n }\n .p-4 {\n padding: calc(var(--spacing) * 4) !important;\n }\n .p-6 {\n padding: calc(var(--spacing) * 6) !important;\n }\n .px-2 {\n padding-inline: calc(var(--spacing) * 2) !important;\n }\n .px-3 {\n padding-inline: calc(var(--spacing) * 3) !important;\n }\n .px-4 {\n padding-inline: calc(var(--spacing) * 4) !important;\n }\n .px-6 {\n padding-inline: calc(var(--spacing) * 6) !important;\n }\n .py-1 {\n padding-block: calc(var(--spacing) * 1) !important;\n }\n .py-1\\.5 {\n padding-block: calc(var(--spacing) * 1.5) !important;\n }\n .py-2 {\n padding-block: calc(var(--spacing) * 2) !important;\n }\n .py-3 {\n padding-block: calc(var(--spacing) * 3) !important;\n }\n .py-4 {\n padding-block: calc(var(--spacing) * 4) !important;\n }\n .py-6 {\n padding-block: calc(var(--spacing) * 6) !important;\n }\n .pt-2 {\n padding-top: calc(var(--spacing) * 2) !important;\n }\n .pt-4 {\n padding-top: calc(var(--spacing) * 4) !important;\n }\n .pt-8 {\n padding-top: calc(var(--spacing) * 8) !important;\n }\n .pr-2 {\n padding-right: calc(var(--spacing) * 2) !important;\n }\n .pr-8 {\n padding-right: calc(var(--spacing) * 8) !important;\n }\n .pb-1 {\n padding-bottom: calc(var(--spacing) * 1) !important;\n }\n .pb-2 {\n padding-bottom: calc(var(--spacing) * 2) !important;\n }\n .pl-2 {\n padding-left: calc(var(--spacing) * 2) !important;\n }\n .pl-8 {\n padding-left: calc(var(--spacing) * 8) !important;\n }\n .text-center {\n text-align: center !important;\n }\n .text-right {\n text-align: right !important;\n }\n .text-base {\n font-size: var(--text-base) !important;\n line-height: var(--tw-leading, var(--text-base--line-height)) !important;\n }\n .text-lg {\n font-size: var(--text-lg) !important;\n line-height: var(--tw-leading, var(--text-lg--line-height)) !important;\n }\n .text-sm {\n font-size: var(--text-sm) !important;\n line-height: var(--tw-leading, var(--text-sm--line-height)) !important;\n }\n .text-xs {\n font-size: var(--text-xs) !important;\n line-height: var(--tw-leading, var(--text-xs--line-height)) !important;\n }\n .leading-none {\n --tw-leading: 1 !important;\n line-height: 1 !important;\n }\n .font-bold {\n --tw-font-weight: var(--font-weight-bold) !important;\n font-weight: var(--font-weight-bold) !important;\n }\n .font-medium {\n --tw-font-weight: var(--font-weight-medium) !important;\n font-weight: var(--font-weight-medium) !important;\n }\n .font-semibold {\n --tw-font-weight: var(--font-weight-semibold) !important;\n font-weight: var(--font-weight-semibold) !important;\n }\n .tracking-tight {\n --tw-tracking: var(--tracking-tight) !important;\n letter-spacing: var(--tracking-tight) !important;\n }\n .tracking-widest {\n --tw-tracking: var(--tracking-widest) !important;\n letter-spacing: var(--tracking-widest) !important;\n }\n .text-ellipsis {\n text-overflow: ellipsis !important;\n }\n .whitespace-nowrap {\n white-space: nowrap !important;\n }\n .text-background {\n color: var(--bs-background) !important;\n }\n .text-current {\n color: currentcolor !important;\n }\n .text-destructive {\n color: var(--bs-destructive) !important;\n }\n .text-destructive-foreground {\n color: var(--bs-destructive-foreground) !important;\n }\n .text-foreground {\n color: var(--bs-foreground) !important;\n }\n .text-muted-foreground {\n color: var(--bs-muted-foreground) !important;\n }\n .text-popover-foreground {\n color: var(--bs-popover-foreground) !important;\n }\n .text-primary {\n color: var(--bs-primary) !important;\n }\n .text-primary-foreground {\n color: var(--bs-primary-foreground) !important;\n }\n .text-red-500 {\n color: var(--color-red-500) !important;\n }\n .text-secondary-foreground {\n color: var(--bs-secondary-foreground) !important;\n }\n .text-white {\n color: var(--color-white) !important;\n }\n .line-through {\n text-decoration-line: line-through !important;\n }\n .underline-offset-4 {\n text-underline-offset: 4px !important;\n }\n .opacity-0 {\n opacity: 0% !important;\n }\n .opacity-50 {\n opacity: 50% !important;\n }\n .opacity-70 {\n opacity: 70% !important;\n }\n .opacity-100 {\n opacity: 100% !important;\n }\n .shadow-lg {\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1)) !important;\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important;\n }\n .shadow-md {\n --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1)) !important;\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important;\n }\n .shadow-sm {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)) !important;\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important;\n }\n .shadow-xs {\n --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05)) !important;\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important;\n }\n .ring {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor) !important;\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important;\n }\n .ring-offset-background {\n --tw-ring-offset-color: var(--bs-background) !important;\n }\n .outline-hidden {\n --tw-outline-style: none !important;\n outline-style: none !important;\n @media (forced-colors: active) {\n outline: 2px solid transparent !important;\n outline-offset: 2px !important;\n }\n }\n .outline {\n outline-style: var(--tw-outline-style) !important;\n outline-width: 1px !important;\n }\n .transition {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, visibility, content-visibility, overlay, pointer-events !important;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)) !important;\n transition-duration: var(--tw-duration, var(--default-transition-duration)) !important;\n }\n .transition-\\[color\\,box-shadow\\] {\n transition-property: color,box-shadow !important;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)) !important;\n transition-duration: var(--tw-duration, var(--default-transition-duration)) !important;\n }\n .transition-opacity {\n transition-property: opacity !important;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)) !important;\n transition-duration: var(--tw-duration, var(--default-transition-duration)) !important;\n }\n .transition-shadow {\n transition-property: box-shadow !important;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)) !important;\n transition-duration: var(--tw-duration, var(--default-transition-duration)) !important;\n }\n .transition-transform {\n transition-property: transform, translate, scale, rotate !important;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)) !important;\n transition-duration: var(--tw-duration, var(--default-transition-duration)) !important;\n }\n .transition-none {\n transition-property: none !important;\n }\n .duration-200 {\n --tw-duration: 200ms !important;\n transition-duration: 200ms !important;\n }\n .outline-none {\n --tw-outline-style: none !important;\n outline-style: none !important;\n }\n .select-none {\n -webkit-user-select: none !important;\n -moz-user-select: none !important;\n user-select: none !important;\n }\n .duration-200 {\n animation-duration: 200ms !important;\n }\n .group-data-\\[disabled\\=true\\]\\:pointer-events-none {\n &:is(:where(.group)[data-disabled=\"true\"] *) {\n pointer-events: none !important;\n }\n }\n .group-data-\\[disabled\\=true\\]\\:opacity-50 {\n &:is(:where(.group)[data-disabled=\"true\"] *) {\n opacity: 50% !important;\n }\n }\n .peer-disabled\\:cursor-not-allowed {\n &:is(:where(.peer):disabled ~ *) {\n cursor: not-allowed !important;\n }\n }\n .peer-disabled\\:opacity-50 {\n &:is(:where(.peer):disabled ~ *) {\n opacity: 50% !important;\n }\n }\n .selection\\:bg-primary {\n & *::-moz-selection {\n background-color: var(--bs-primary) !important;\n }\n & *::selection {\n background-color: var(--bs-primary) !important;\n }\n &::-moz-selection {\n background-color: var(--bs-primary) !important;\n }\n &::selection {\n background-color: var(--bs-primary) !important;\n }\n }\n .selection\\:text-primary-foreground {\n & *::-moz-selection {\n color: var(--bs-primary-foreground) !important;\n }\n & *::selection {\n color: var(--bs-primary-foreground) !important;\n }\n &::-moz-selection {\n color: var(--bs-primary-foreground) !important;\n }\n &::selection {\n color: var(--bs-primary-foreground) !important;\n }\n }\n .file\\:inline-flex {\n &::file-selector-button {\n display: inline-flex !important;\n }\n }\n .file\\:h-7 {\n &::file-selector-button {\n height: calc(var(--spacing) * 7) !important;\n }\n }\n .file\\:border-0 {\n &::file-selector-button {\n border-style: var(--tw-border-style) !important;\n border-width: 0px !important;\n }\n }\n .file\\:bg-transparent {\n &::file-selector-button {\n background-color: transparent !important;\n }\n }\n .file\\:text-sm {\n &::file-selector-button {\n font-size: var(--text-sm) !important;\n line-height: var(--tw-leading, var(--text-sm--line-height)) !important;\n }\n }\n .file\\:font-medium {\n &::file-selector-button {\n --tw-font-weight: var(--font-weight-medium) !important;\n font-weight: var(--font-weight-medium) !important;\n }\n }\n .file\\:text-foreground {\n &::file-selector-button {\n color: var(--bs-foreground) !important;\n }\n }\n .placeholder\\:text-muted-foreground {\n &::-moz-placeholder {\n color: var(--bs-muted-foreground) !important;\n }\n &::placeholder {\n color: var(--bs-muted-foreground) !important;\n }\n }\n .hover\\:bg-accent {\n &:hover {\n @media (hover: hover) {\n background-color: var(--bs-accent) !important;\n }\n }\n }\n .hover\\:bg-destructive\\/90 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--bs-destructive) !important;\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--bs-destructive) 90%, transparent) !important;\n }\n }\n }\n }\n .hover\\:bg-muted {\n &:hover {\n @media (hover: hover) {\n background-color: var(--bs-muted) !important;\n }\n }\n }\n .hover\\:bg-primary\\/90 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--bs-primary) !important;\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--bs-primary) 90%, transparent) !important;\n }\n }\n }\n }\n .hover\\:bg-secondary\\/80 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--bs-secondary) !important;\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--bs-secondary) 80%, transparent) !important;\n }\n }\n }\n }\n .hover\\:text-accent-foreground {\n &:hover {\n @media (hover: hover) {\n color: var(--bs-accent-foreground) !important;\n }\n }\n }\n .hover\\:text-foreground {\n &:hover {\n @media (hover: hover) {\n color: var(--bs-foreground) !important;\n }\n }\n }\n .hover\\:underline {\n &:hover {\n @media (hover: hover) {\n text-decoration-line: underline !important;\n }\n }\n }\n .hover\\:opacity-100 {\n &:hover {\n @media (hover: hover) {\n opacity: 100% !important;\n }\n }\n }\n .focus\\:bg-accent {\n &:focus {\n background-color: var(--bs-accent) !important;\n }\n }\n .focus\\:text-accent-foreground {\n &:focus {\n color: var(--bs-accent-foreground) !important;\n }\n }\n .focus\\:ring-1 {\n &:focus {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor) !important;\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important;\n }\n }\n .focus\\:ring-2 {\n &:focus {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor) !important;\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important;\n }\n }\n .focus\\:ring-ring {\n &:focus {\n --tw-ring-color: var(--bs-ring) !important;\n }\n }\n .focus\\:ring-offset-2 {\n &:focus {\n --tw-ring-offset-width: 2px !important;\n --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color) !important;\n }\n }\n .focus\\:outline-hidden {\n &:focus {\n --tw-outline-style: none !important;\n outline-style: none !important;\n @media (forced-colors: active) {\n outline: 2px solid transparent !important;\n outline-offset: 2px !important;\n }\n }\n }\n .focus\\:outline-none {\n &:focus {\n --tw-outline-style: none !important;\n outline-style: none !important;\n }\n }\n .focus-visible\\:border-ring {\n &:focus-visible {\n border-color: var(--bs-ring) !important;\n }\n }\n .focus-visible\\:ring-\\[3px\\] {\n &:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor) !important;\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important;\n }\n }\n .focus-visible\\:ring-destructive\\/20 {\n &:focus-visible {\n --tw-ring-color: var(--bs-destructive) !important;\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--bs-destructive) 20%, transparent) !important;\n }\n }\n }\n .focus-visible\\:ring-ring\\/50 {\n &:focus-visible {\n --tw-ring-color: var(--bs-ring) !important;\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--bs-ring) 50%, transparent) !important;\n }\n }\n }\n .disabled\\:pointer-events-none {\n &:disabled {\n pointer-events: none !important;\n }\n }\n .disabled\\:cursor-not-allowed {\n &:disabled {\n cursor: not-allowed !important;\n }\n }\n .disabled\\:opacity-50 {\n &:disabled {\n opacity: 50% !important;\n }\n }\n .has-\\[\\>svg\\]\\:px-2\\.5 {\n &:has(>svg) {\n padding-inline: calc(var(--spacing) * 2.5) !important;\n }\n }\n .has-\\[\\>svg\\]\\:px-3 {\n &:has(>svg) {\n padding-inline: calc(var(--spacing) * 3) !important;\n }\n }\n .has-\\[\\>svg\\]\\:px-4 {\n &:has(>svg) {\n padding-inline: calc(var(--spacing) * 4) !important;\n }\n }\n .aria-invalid\\:border-destructive {\n &[aria-invalid=\"true\"] {\n border-color: var(--bs-destructive) !important;\n }\n }\n .aria-invalid\\:ring-destructive\\/20 {\n &[aria-invalid=\"true\"] {\n --tw-ring-color: var(--bs-destructive) !important;\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--bs-destructive) 20%, transparent) !important;\n }\n }\n }\n .data-\\[disabled\\]\\:pointer-events-none {\n &[data-disabled] {\n pointer-events: none !important;\n }\n }\n .data-\\[disabled\\]\\:opacity-50 {\n &[data-disabled] {\n opacity: 50% !important;\n }\n }\n .data-\\[disabled\\=true\\]\\:pointer-events-none {\n &[data-disabled=\"true\"] {\n pointer-events: none !important;\n }\n }\n .data-\\[disabled\\=true\\]\\:opacity-50 {\n &[data-disabled=\"true\"] {\n opacity: 50% !important;\n }\n }\n .data-\\[error\\=true\\]\\:text-destructive-foreground {\n &[data-error=\"true\"] {\n color: var(--bs-destructive-foreground) !important;\n }\n }\n .data-\\[inset\\]\\:pl-8 {\n &[data-inset] {\n padding-left: calc(var(--spacing) * 8) !important;\n }\n }\n .data-\\[placeholder\\]\\:text-muted-foreground {\n &[data-placeholder] {\n color: var(--bs-muted-foreground) !important;\n }\n }\n .data-\\[selected\\=true\\]\\:bg-accent {\n &[data-selected=\"true\"] {\n background-color: var(--bs-accent) !important;\n }\n }\n .data-\\[selected\\=true\\]\\:text-accent-foreground {\n &[data-selected=\"true\"] {\n color: var(--bs-accent-foreground) !important;\n }\n }\n .data-\\[side\\=bottom\\]\\:translate-y-1 {\n &[data-side=\"bottom\"] {\n --tw-translate-y: calc(var(--spacing) * 1) !important;\n translate: var(--tw-translate-x) var(--tw-translate-y) !important;\n }\n }\n .data-\\[side\\=bottom\\]\\:slide-in-from-top-2 {\n &[data-side=\"bottom\"] {\n --tw-enter-translate-y: -0.5rem !important;\n }\n }\n .data-\\[side\\=left\\]\\:-translate-x-1 {\n &[data-side=\"left\"] {\n --tw-translate-x: calc(var(--spacing) * -1) !important;\n translate: var(--tw-translate-x) var(--tw-translate-y) !important;\n }\n }\n .data-\\[side\\=left\\]\\:slide-in-from-right-2 {\n &[data-side=\"left\"] {\n --tw-enter-translate-x: 0.5rem !important;\n }\n }\n .data-\\[side\\=right\\]\\:translate-x-1 {\n &[data-side=\"right\"] {\n --tw-translate-x: calc(var(--spacing) * 1) !important;\n translate: var(--tw-translate-x) var(--tw-translate-y) !important;\n }\n }\n .data-\\[side\\=right\\]\\:slide-in-from-left-2 {\n &[data-side=\"right\"] {\n --tw-enter-translate-x: -0.5rem !important;\n }\n }\n .data-\\[side\\=top\\]\\:-translate-y-1 {\n &[data-side=\"top\"] {\n --tw-translate-y: calc(var(--spacing) * -1) !important;\n translate: var(--tw-translate-x) var(--tw-translate-y) !important;\n }\n }\n .data-\\[side\\=top\\]\\:slide-in-from-bottom-2 {\n &[data-side=\"top\"] {\n --tw-enter-translate-y: 0.5rem !important;\n }\n }\n .\\*\\*\\:data-\\[slot\\=command-input-wrapper\\]\\:h-12 {\n :is(& *) {\n &[data-slot=\"command-input-wrapper\"] {\n height: calc(var(--spacing) * 12) !important;\n }\n }\n }\n .\\*\\:data-\\[slot\\=select-value\\]\\:line-clamp-1 {\n :is(& > *) {\n &[data-slot=\"select-value\"] {\n overflow: hidden !important;\n display: -webkit-box !important;\n -webkit-box-orient: vertical !important;\n -webkit-line-clamp: 1 !important;\n }\n }\n }\n .\\*\\:data-\\[slot\\=select-value\\]\\:flex {\n :is(& > *) {\n &[data-slot=\"select-value\"] {\n display: flex !important;\n }\n }\n }\n .\\*\\:data-\\[slot\\=select-value\\]\\:items-center {\n :is(& > *) {\n &[data-slot=\"select-value\"] {\n align-items: center !important;\n }\n }\n }\n .\\*\\:data-\\[slot\\=select-value\\]\\:gap-2 {\n :is(& > *) {\n &[data-slot=\"select-value\"] {\n gap: calc(var(--spacing) * 2) !important;\n }\n }\n }\n .data-\\[state\\=checked\\]\\:border-primary {\n &[data-state=\"checked\"] {\n border-color: var(--bs-primary) !important;\n }\n }\n .data-\\[state\\=checked\\]\\:bg-primary {\n &[data-state=\"checked\"] {\n background-color: var(--bs-primary) !important;\n }\n }\n .data-\\[state\\=checked\\]\\:text-primary-foreground {\n &[data-state=\"checked\"] {\n color: var(--bs-primary-foreground) !important;\n }\n }\n .data-\\[state\\=closed\\]\\:animate-out {\n &[data-state=\"closed\"] {\n animation-name: exit !important;\n animation-duration: 150ms !important;\n --tw-exit-opacity: initial !important;\n --tw-exit-scale: initial !important;\n --tw-exit-rotate: initial !important;\n --tw-exit-translate-x: initial !important;\n --tw-exit-translate-y: initial !important;\n }\n }\n .data-\\[state\\=closed\\]\\:fade-out-0 {\n &[data-state=\"closed\"] {\n --tw-exit-opacity: 0 !important;\n }\n }\n .data-\\[state\\=closed\\]\\:zoom-out-95 {\n &[data-state=\"closed\"] {\n --tw-exit-scale: .95 !important;\n }\n }\n .data-\\[state\\=open\\]\\:bg-accent {\n &[data-state=\"open\"] {\n background-color: var(--bs-accent) !important;\n }\n }\n .data-\\[state\\=open\\]\\:text-accent-foreground {\n &[data-state=\"open\"] {\n color: var(--bs-accent-foreground) !important;\n }\n }\n .data-\\[state\\=open\\]\\:text-muted-foreground {\n &[data-state=\"open\"] {\n color: var(--bs-muted-foreground) !important;\n }\n }\n .data-\\[state\\=open\\]\\:animate-in {\n &[data-state=\"open\"] {\n animation-name: enter !important;\n animation-duration: 150ms !important;\n --tw-enter-opacity: initial !important;\n --tw-enter-scale: initial !important;\n --tw-enter-rotate: initial !important;\n --tw-enter-translate-x: initial !important;\n --tw-enter-translate-y: initial !important;\n }\n }\n .data-\\[state\\=open\\]\\:fade-in-0 {\n &[data-state=\"open\"] {\n --tw-enter-opacity: 0 !important;\n }\n }\n .data-\\[state\\=open\\]\\:zoom-in-95 {\n &[data-state=\"open\"] {\n --tw-enter-scale: .95 !important;\n }\n }\n .data-\\[variant\\=destructive\\]\\:text-destructive {\n &[data-variant=\"destructive\"] {\n color: var(--bs-destructive) !important;\n }\n }\n .data-\\[variant\\=destructive\\]\\:focus\\:bg-destructive\\/10 {\n &[data-variant=\"destructive\"] {\n &:focus {\n background-color: var(--bs-destructive) !important;\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--bs-destructive) 10%, transparent) !important;\n }\n }\n }\n }\n .data-\\[variant\\=destructive\\]\\:focus\\:text-destructive {\n &[data-variant=\"destructive\"] {\n &:focus {\n color: var(--bs-destructive) !important;\n }\n }\n }\n .max-sm\\:hidden {\n @media (width < 40rem) {\n display: none !important;\n }\n }\n .sm\\:max-h-\\[270px\\] {\n @media (width >= 40rem) {\n max-height: 270px !important;\n }\n }\n .sm\\:max-w-\\[500px\\] {\n @media (width >= 40rem) {\n max-width: 500px !important;\n }\n }\n .sm\\:max-w-lg {\n @media (width >= 40rem) {\n max-width: var(--container-lg) !important;\n }\n }\n .sm\\:flex-row {\n @media (width >= 40rem) {\n flex-direction: row !important;\n }\n }\n .sm\\:justify-end {\n @media (width >= 40rem) {\n justify-content: flex-end !important;\n }\n }\n .sm\\:text-left {\n @media (width >= 40rem) {\n text-align: left !important;\n }\n }\n .md\\:order-last {\n @media (width >= 48rem) {\n order: 9999 !important;\n }\n }\n .md\\:order-none {\n @media (width >= 48rem) {\n order: 0 !important;\n }\n }\n .md\\:col-span-2 {\n @media (width >= 48rem) {\n grid-column: span 2 / span 2 !important;\n }\n }\n .md\\:col-span-3 {\n @media (width >= 48rem) {\n grid-column: span 3 / span 3 !important;\n }\n }\n .md\\:col-span-4 {\n @media (width >= 48rem) {\n grid-column: span 4 / span 4 !important;\n }\n }\n .md\\:block {\n @media (width >= 48rem) {\n display: block !important;\n }\n }\n .md\\:flex {\n @media (width >= 48rem) {\n display: flex !important;\n }\n }\n .md\\:grid {\n @media (width >= 48rem) {\n display: grid !important;\n }\n }\n .md\\:hidden {\n @media (width >= 48rem) {\n display: none !important;\n }\n }\n .md\\:max-w-\\[75\\%\\] {\n @media (width >= 48rem) {\n max-width: 75% !important;\n }\n }\n .md\\:grid-cols-2 {\n @media (width >= 48rem) {\n grid-template-columns: repeat(2, minmax(0, 1fr)) !important;\n }\n }\n .md\\:grid-cols-7 {\n @media (width >= 48rem) {\n grid-template-columns: repeat(7, minmax(0, 1fr)) !important;\n }\n }\n .md\\:gap-0 {\n @media (width >= 48rem) {\n gap: calc(var(--spacing) * 0) !important;\n }\n }\n .md\\:px-8 {\n @media (width >= 48rem) {\n padding-inline: calc(var(--spacing) * 8) !important;\n }\n }\n .md\\:py-12 {\n @media (width >= 48rem) {\n padding-block: calc(var(--spacing) * 12) !important;\n }\n }\n .md\\:text-sm {\n @media (width >= 48rem) {\n font-size: var(--text-sm) !important;\n line-height: var(--tw-leading, var(--text-sm--line-height)) !important;\n }\n }\n .dark\\:focus-visible\\:ring-destructive\\/40 {\n @media (prefers-color-scheme: dark) {\n &:focus-visible {\n --tw-ring-color: var(--bs-destructive) !important;\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--bs-destructive) 40%, transparent) !important;\n }\n }\n }\n }\n .dark\\:aria-invalid\\:ring-destructive\\/40 {\n @media (prefers-color-scheme: dark) {\n &[aria-invalid=\"true\"] {\n --tw-ring-color: var(--bs-destructive) !important;\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--bs-destructive) 40%, transparent) !important;\n }\n }\n }\n }\n .dark\\:data-\\[variant\\=destructive\\]\\:focus\\:bg-destructive\\/20 {\n @media (prefers-color-scheme: dark) {\n &[data-variant=\"destructive\"] {\n &:focus {\n background-color: var(--bs-destructive) !important;\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--bs-destructive) 20%, transparent) !important;\n }\n }\n }\n }\n }\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:px-2 {\n & [cmdk-group-heading] {\n padding-inline: calc(var(--spacing) * 2) !important;\n }\n }\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:py-1\\.5 {\n & [cmdk-group-heading] {\n padding-block: calc(var(--spacing) * 1.5) !important;\n }\n }\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:text-xs {\n & [cmdk-group-heading] {\n font-size: var(--text-xs) !important;\n line-height: var(--tw-leading, var(--text-xs--line-height)) !important;\n }\n }\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:font-medium {\n & [cmdk-group-heading] {\n --tw-font-weight: var(--font-weight-medium) !important;\n font-weight: var(--font-weight-medium) !important;\n }\n }\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:text-muted-foreground {\n & [cmdk-group-heading] {\n color: var(--bs-muted-foreground) !important;\n }\n }\n .\\[\\&_\\[cmdk-group\\]\\]\\:px-2 {\n & [cmdk-group] {\n padding-inline: calc(var(--spacing) * 2) !important;\n }\n }\n .\\[\\&_\\[cmdk-group\\]\\:not\\(\\[hidden\\]\\)_\\~\\[cmdk-group\\]\\]\\:pt-0 {\n & [cmdk-group]:not([hidden]) ~[cmdk-group] {\n padding-top: calc(var(--spacing) * 0) !important;\n }\n }\n .\\[\\&_\\[cmdk-input-wrapper\\]_svg\\]\\:h-5 {\n & [cmdk-input-wrapper] svg {\n height: calc(var(--spacing) * 5) !important;\n }\n }\n .\\[\\&_\\[cmdk-input-wrapper\\]_svg\\]\\:w-5 {\n & [cmdk-input-wrapper] svg {\n width: calc(var(--spacing) * 5) !important;\n }\n }\n .\\[\\&_\\[cmdk-input\\]\\]\\:h-12 {\n & [cmdk-input] {\n height: calc(var(--spacing) * 12) !important;\n }\n }\n .\\[\\&_\\[cmdk-item\\]\\]\\:px-2 {\n & [cmdk-item] {\n padding-inline: calc(var(--spacing) * 2) !important;\n }\n }\n .\\[\\&_\\[cmdk-item\\]\\]\\:py-3 {\n & [cmdk-item] {\n padding-block: calc(var(--spacing) * 3) !important;\n }\n }\n .\\[\\&_\\[cmdk-item\\]_svg\\]\\:h-5 {\n & [cmdk-item] svg {\n height: calc(var(--spacing) * 5) !important;\n }\n }\n .\\[\\&_\\[cmdk-item\\]_svg\\]\\:w-5 {\n & [cmdk-item] svg {\n width: calc(var(--spacing) * 5) !important;\n }\n }\n .\\[\\&_svg\\]\\:pointer-events-none {\n & svg {\n pointer-events: none !important;\n }\n }\n .\\[\\&_svg\\]\\:shrink-0 {\n & svg {\n flex-shrink: 0 !important;\n }\n }\n .\\[\\&_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-4 {\n & svg:not([class*='size-']) {\n width: calc(var(--spacing) * 4) !important;\n height: calc(var(--spacing) * 4) !important;\n }\n }\n .\\[\\&_svg\\:not\\(\\[class\\*\\=\\'text-\\'\\]\\)\\]\\:text-muted-foreground {\n & svg:not([class*='text-']) {\n color: var(--bs-muted-foreground) !important;\n }\n }\n .\\*\\:\\[span\\]\\:last\\:flex {\n :is(& > *) {\n &:is(span) {\n &:last-child {\n display: flex !important;\n }\n }\n }\n }\n .\\*\\:\\[span\\]\\:last\\:items-center {\n :is(& > *) {\n &:is(span) {\n &:last-child {\n align-items: center !important;\n }\n }\n }\n }\n .\\*\\:\\[span\\]\\:last\\:gap-2 {\n :is(& > *) {\n &:is(span) {\n &:last-child {\n gap: calc(var(--spacing) * 2) !important;\n }\n }\n }\n }\n .data-\\[variant\\=destructive\\]\\:\\*\\:\\[svg\\]\\:\\!text-destructive {\n &[data-variant=\"destructive\"] {\n :is(& > *) {\n &:is(svg) {\n color: var(--bs-destructive) !important;\n }\n }\n }\n }\n .\\[\\&\\>span\\]\\:line-clamp-1 {\n &>span {\n overflow: hidden !important;\n display: -webkit-box !important;\n -webkit-box-orient: vertical !important;\n -webkit-line-clamp: 1 !important;\n }\n }\n}\n.checkout-embed {\n :root {\n --background: oklch(1 0 0);\n --foreground: oklch(0.145 0 0);\n --card: oklch(1 0 0);\n --card-foreground: oklch(0.145 0 0);\n --popover: oklch(1 0 0);\n --popover-foreground: oklch(0.145 0 0);\n --primary: oklch(0.205 0 0);\n --primary-foreground: oklch(0.985 0 0);\n --secondary: oklch(0.97 0 0);\n --secondary-foreground: oklch(0.205 0 0);\n --muted: oklch(0.97 0 0);\n --muted-foreground: oklch(0.556 0 0);\n --accent: oklch(0.97 0 0);\n --accent-foreground: oklch(0.205 0 0);\n --destructive: oklch(0.577 0.245 27.325);\n --destructive-foreground: oklch(0.577 0.245 27.325);\n --border: oklch(0.922 0 0);\n --input: oklch(0.922 0 0);\n --ring: oklch(0.708 0 0);\n --chart-1: oklch(0.646 0.222 41.116);\n --chart-2: oklch(0.6 0.118 184.704);\n --chart-3: oklch(0.398 0.07 227.392);\n --chart-4: oklch(0.828 0.189 84.429);\n --chart-5: oklch(0.769 0.188 70.08);\n --radius: 0.625rem;\n --sidebar: oklch(0.985 0 0);\n --sidebar-foreground: oklch(0.145 0 0);\n --sidebar-primary: oklch(0.205 0 0);\n --sidebar-primary-foreground: oklch(0.985 0 0);\n --sidebar-accent: oklch(0.97 0 0);\n --sidebar-accent-foreground: oklch(0.205 0 0);\n --sidebar-border: oklch(0.922 0 0);\n --sidebar-ring: oklch(0.708 0 0);\n }\n @layer base {\n * {\n border-color: var(--bs-border) !important;\n outline-color: var(--bs-ring) !important;\n @supports (color: color-mix(in lab, red, red)) {\n outline-color: color-mix(in oklab, var(--bs-ring) 50%, transparent) !important;\n }\n }\n .checkout-embed {\n background-color: var(--bs-background) !important;\n font-family: var(--bs-font-sans), Helvetica, Arial, apple-system, sans-serif !important;\n color: var(--bs-foreground) !important;\n }\n h2 {\n font-size: var(--text-2xl) !important;\n line-height: var(--tw-leading, var(--text-2xl--line-height)) !important;\n --tw-font-weight: var(--font-weight-bold) !important;\n font-weight: var(--font-weight-bold) !important;\n --tw-tracking: var(--tracking-tight) !important;\n letter-spacing: var(--tracking-tight) !important;\n }\n p {\n --tw-tracking: var(--tracking-tight) !important;\n letter-spacing: var(--tracking-tight) !important;\n }\n }\n @layer utilities {\n .scrollbar-hidden {\n scrollbar-width: none;\n }\n .scrollbar-hidden::-webkit-scrollbar {\n display: none;\n }\n }\n}\n@keyframes enter {\n from {\n opacity: var(--tw-enter-opacity, 1);\n transform: translate3d(var(--tw-enter-translate-x, 0), var(--tw-enter-translate-y, 0), 0) scale3d(var(--tw-enter-scale, 1), var(--tw-enter-scale, 1), var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0));\n }\n}\n@keyframes exit {\n to {\n opacity: var(--tw-exit-opacity, 1);\n transform: translate3d(var(--tw-exit-translate-x, 0), var(--tw-exit-translate-y, 0), 0) scale3d(var(--tw-exit-scale, 1), var(--tw-exit-scale, 1), var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0));\n }\n}\n@property --tw-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-space-y-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-space-x-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-leading {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-tracking {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-inset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-ring-inset {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-offset-width {\n syntax: \"<length>\";\n inherits: false;\n initial-value: 0px;\n}\n@property --tw-ring-offset-color {\n syntax: \"*\";\n inherits: false;\n initial-value: #fff;\n}\n@property --tw-ring-offset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-outline-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-duration {\n syntax: \"*\";\n inherits: false;\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 50% {\n opacity: 0.5;\n }\n}\n@layer properties {\n @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n *, ::before, ::after, ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-space-y-reverse: 0;\n --tw-space-x-reverse: 0;\n --tw-border-style: solid;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-tracking: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-outline-style: solid;\n --tw-duration: initial;\n }\n }\n}\n";
|
|
35958
35366
|
styleInject(css_248z);
|
|
35959
35367
|
|
|
35960
35368
|
export { index as CheckoutEmbed, PaymentElement$1 as PaymentElement, useCart, useCheckout };
|