@betterstore/react 0.5.24 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs.js CHANGED
@@ -259,15 +259,18 @@ const generateLineItemId = (item) => {
259
259
  metadata: item.metadata,
260
260
  }));
261
261
  };
262
- const useCart = create()(persist((set, get) => ({
262
+ const useCart = () => create()(persist((set, get) => ({
263
263
  lineItems: [],
264
264
  addItem: (product, additionalParams) => set((state) => {
265
265
  var _a, _b, _c;
266
266
  const productId = product.id;
267
- const selectedVariant = ((_a = product.productVariants) !== null && _a !== void 0 ? _a : []).find((v) => v.variantOptions.every((vOpt) => {
267
+ const selectedVariant = ((_a = product.productVariants) !== null && _a !== void 0 ? _a : []).find((v) => {
268
268
  var _a;
269
- return (_a = additionalParams === null || additionalParams === void 0 ? void 0 : additionalParams.variantOptions) === null || _a === void 0 ? void 0 : _a.some((iOpt) => vOpt.name === iOpt.name && vOpt.value === iOpt.value);
270
- })) || null;
269
+ return (_a = v.variantOptions) === null || _a === void 0 ? void 0 : _a.every((vOpt) => {
270
+ var _a;
271
+ return (_a = additionalParams === null || additionalParams === void 0 ? void 0 : additionalParams.variantOptions) === null || _a === void 0 ? void 0 : _a.some((iOpt) => vOpt.name === iOpt.name && vOpt.value === iOpt.value);
272
+ });
273
+ }) || null;
271
274
  const formattedNewItem = {
272
275
  productId: productId,
273
276
  product: product,
@@ -3521,7 +3524,7 @@ const isUndefined$1 = typeOfTest('undefined');
3521
3524
  */
3522
3525
  function isBuffer(val) {
3523
3526
  return val !== null && !isUndefined$1(val) && val.constructor !== null && !isUndefined$1(val.constructor)
3524
- && isFunction$2(val.constructor.isBuffer) && val.constructor.isBuffer(val);
3527
+ && isFunction$3(val.constructor.isBuffer) && val.constructor.isBuffer(val);
3525
3528
  }
3526
3529
 
3527
3530
  /**
@@ -3566,7 +3569,7 @@ const isString$1 = typeOfTest('string');
3566
3569
  * @param {*} val The value to test
3567
3570
  * @returns {boolean} True if value is a Function, otherwise false
3568
3571
  */
3569
- const isFunction$2 = typeOfTest('function');
3572
+ const isFunction$3 = typeOfTest('function');
3570
3573
 
3571
3574
  /**
3572
3575
  * Determine if a value is a Number
@@ -3622,7 +3625,7 @@ const isEmptyObject$1 = (val) => {
3622
3625
  if (!isObject$1(val) || isBuffer(val)) {
3623
3626
  return false;
3624
3627
  }
3625
-
3628
+
3626
3629
  try {
3627
3630
  return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;
3628
3631
  } catch (e) {
@@ -3674,7 +3677,7 @@ const isFileList = kindOfTest('FileList');
3674
3677
  *
3675
3678
  * @returns {boolean} True if value is a Stream, otherwise false
3676
3679
  */
3677
- const isStream = (val) => isObject$1(val) && isFunction$2(val.pipe);
3680
+ const isStream = (val) => isObject$1(val) && isFunction$3(val.pipe);
3678
3681
 
3679
3682
  /**
3680
3683
  * Determine if a value is a FormData
@@ -3687,10 +3690,10 @@ const isFormData = (thing) => {
3687
3690
  let kind;
3688
3691
  return thing && (
3689
3692
  (typeof FormData === 'function' && thing instanceof FormData) || (
3690
- isFunction$2(thing.append) && (
3693
+ isFunction$3(thing.append) && (
3691
3694
  (kind = kindOf(thing)) === 'formdata' ||
3692
3695
  // detect form-data instance
3693
- (kind === 'object' && isFunction$2(thing.toString) && thing.toString() === '[object FormData]')
3696
+ (kind === 'object' && isFunction$3(thing.toString) && thing.toString() === '[object FormData]')
3694
3697
  )
3695
3698
  )
3696
3699
  )
@@ -3815,7 +3818,7 @@ const isContextDefined = (context) => !isUndefined$1(context) && context !== _gl
3815
3818
  * @returns {Object} Result of all merge properties
3816
3819
  */
3817
3820
  function merge(/* obj1, obj2, obj3, ... */) {
3818
- const {caseless} = isContextDefined(this) && this || {};
3821
+ const {caseless, skipUndefined} = isContextDefined(this) && this || {};
3819
3822
  const result = {};
3820
3823
  const assignValue = (val, key) => {
3821
3824
  const targetKey = caseless && findKey(result, key) || key;
@@ -3825,7 +3828,7 @@ function merge(/* obj1, obj2, obj3, ... */) {
3825
3828
  result[targetKey] = merge({}, val);
3826
3829
  } else if (isArray(val)) {
3827
3830
  result[targetKey] = val.slice();
3828
- } else {
3831
+ } else if (!skipUndefined || !isUndefined$1(val)) {
3829
3832
  result[targetKey] = val;
3830
3833
  }
3831
3834
  };
@@ -3848,7 +3851,7 @@ function merge(/* obj1, obj2, obj3, ... */) {
3848
3851
  */
3849
3852
  const extend = (a, b, thisArg, {allOwnKeys}= {}) => {
3850
3853
  forEach(b, (val, key) => {
3851
- if (thisArg && isFunction$2(val)) {
3854
+ if (thisArg && isFunction$3(val)) {
3852
3855
  a[key] = bind(val, thisArg);
3853
3856
  } else {
3854
3857
  a[key] = val;
@@ -4064,13 +4067,13 @@ const reduceDescriptors = (obj, reducer) => {
4064
4067
  const freezeMethods = (obj) => {
4065
4068
  reduceDescriptors(obj, (descriptor, name) => {
4066
4069
  // skip restricted props in strict mode
4067
- if (isFunction$2(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {
4070
+ if (isFunction$3(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {
4068
4071
  return false;
4069
4072
  }
4070
4073
 
4071
4074
  const value = obj[name];
4072
4075
 
4073
- if (!isFunction$2(value)) return;
4076
+ if (!isFunction$3(value)) return;
4074
4077
 
4075
4078
  descriptor.enumerable = false;
4076
4079
 
@@ -4107,6 +4110,8 @@ const toFiniteNumber = (value, defaultValue) => {
4107
4110
  return value != null && Number.isFinite(value = +value) ? value : defaultValue;
4108
4111
  };
4109
4112
 
4113
+
4114
+
4110
4115
  /**
4111
4116
  * If the thing is a FormData object, return true, otherwise return false.
4112
4117
  *
@@ -4115,7 +4120,7 @@ const toFiniteNumber = (value, defaultValue) => {
4115
4120
  * @returns {boolean}
4116
4121
  */
4117
4122
  function isSpecCompliantForm(thing) {
4118
- return !!(thing && isFunction$2(thing.append) && thing[toStringTag] === 'FormData' && thing[iterator]);
4123
+ return !!(thing && isFunction$3(thing.append) && thing[toStringTag] === 'FormData' && thing[iterator]);
4119
4124
  }
4120
4125
 
4121
4126
  const toJSONObject = (obj) => {
@@ -4157,7 +4162,7 @@ const toJSONObject = (obj) => {
4157
4162
  const isAsyncFn = kindOfTest('AsyncFunction');
4158
4163
 
4159
4164
  const isThenable = (thing) =>
4160
- thing && (isObject$1(thing) || isFunction$2(thing)) && isFunction$2(thing.then) && isFunction$2(thing.catch);
4165
+ thing && (isObject$1(thing) || isFunction$3(thing)) && isFunction$3(thing.then) && isFunction$3(thing.catch);
4161
4166
 
4162
4167
  // original code
4163
4168
  // https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34
@@ -4181,7 +4186,7 @@ const _setImmediate = ((setImmediateSupported, postMessageSupported) => {
4181
4186
  })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);
4182
4187
  })(
4183
4188
  typeof setImmediate === 'function',
4184
- isFunction$2(_global.postMessage)
4189
+ isFunction$3(_global.postMessage)
4185
4190
  );
4186
4191
 
4187
4192
  const asap = typeof queueMicrotask !== 'undefined' ?
@@ -4190,7 +4195,7 @@ const asap = typeof queueMicrotask !== 'undefined' ?
4190
4195
  // *********************
4191
4196
 
4192
4197
 
4193
- const isIterable = (thing) => thing != null && isFunction$2(thing[iterator]);
4198
+ const isIterable = (thing) => thing != null && isFunction$3(thing[iterator]);
4194
4199
 
4195
4200
 
4196
4201
  var utils$1 = {
@@ -4214,7 +4219,7 @@ var utils$1 = {
4214
4219
  isFile,
4215
4220
  isBlob,
4216
4221
  isRegExp,
4217
- isFunction: isFunction$2,
4222
+ isFunction: isFunction$3,
4218
4223
  isStream,
4219
4224
  isURLSearchParams,
4220
4225
  isTypedArray,
@@ -4340,11 +4345,18 @@ AxiosError$1.from = (error, code, config, request, response, customProps) => {
4340
4345
  return prop !== 'isAxiosError';
4341
4346
  });
4342
4347
 
4343
- AxiosError$1.call(axiosError, error.message, code, config, request, response);
4348
+ const msg = error && error.message ? error.message : 'Error';
4344
4349
 
4345
- axiosError.cause = error;
4350
+ // Prefer explicit code; otherwise copy the low-level error's code (e.g. ECONNREFUSED)
4351
+ const errCode = code == null && error ? error.code : code;
4352
+ AxiosError$1.call(axiosError, msg, errCode, config, request, response);
4346
4353
 
4347
- axiosError.name = error.name;
4354
+ // Chain the original error on the standard field; non-enumerable to avoid JSON noise
4355
+ if (error && axiosError.cause == null) {
4356
+ Object.defineProperty(axiosError, 'cause', { value: error, configurable: true });
4357
+ }
4358
+
4359
+ axiosError.name = (error && error.name) || 'Error';
4348
4360
 
4349
4361
  customProps && Object.assign(axiosError, customProps);
4350
4362
 
@@ -4635,9 +4647,7 @@ function encode(val) {
4635
4647
  replace(/%3A/gi, ':').
4636
4648
  replace(/%24/g, '$').
4637
4649
  replace(/%2C/gi, ',').
4638
- replace(/%20/g, '+').
4639
- replace(/%5B/gi, '[').
4640
- replace(/%5D/gi, ']');
4650
+ replace(/%20/g, '+');
4641
4651
  }
4642
4652
 
4643
4653
  /**
@@ -5040,7 +5050,7 @@ const defaults = {
5040
5050
  const strictJSONParsing = !silentJSONParsing && JSONRequested;
5041
5051
 
5042
5052
  try {
5043
- return JSON.parse(data);
5053
+ return JSON.parse(data, this.parseReviver);
5044
5054
  } catch (e) {
5045
5055
  if (strictJSONParsing) {
5046
5056
  if (e.name === 'SyntaxError') {
@@ -5861,7 +5871,7 @@ function mergeConfig$1(config1, config2) {
5861
5871
  var resolveConfig = (config) => {
5862
5872
  const newConfig = mergeConfig$1({}, config);
5863
5873
 
5864
- let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;
5874
+ let { data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth } = newConfig;
5865
5875
 
5866
5876
  newConfig.headers = headers = AxiosHeaders$1.from(headers);
5867
5877
 
@@ -5874,17 +5884,21 @@ var resolveConfig = (config) => {
5874
5884
  );
5875
5885
  }
5876
5886
 
5877
- let contentType;
5878
-
5879
5887
  if (utils$1.isFormData(data)) {
5880
5888
  if (platform$1.hasStandardBrowserEnv || platform$1.hasStandardBrowserWebWorkerEnv) {
5881
- headers.setContentType(undefined); // Let the browser set it
5882
- } else if ((contentType = headers.getContentType()) !== false) {
5883
- // fix semicolon duplication issue for ReactNative FormData implementation
5884
- const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];
5885
- headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));
5889
+ headers.setContentType(undefined); // browser handles it
5890
+ } else if (utils$1.isFunction(data.getHeaders)) {
5891
+ // Node.js FormData (like form-data package)
5892
+ const formHeaders = data.getHeaders();
5893
+ // Only set safe headers to avoid overwriting security headers
5894
+ const allowedHeaders = ['content-type', 'content-length'];
5895
+ Object.entries(formHeaders).forEach(([key, val]) => {
5896
+ if (allowedHeaders.includes(key.toLowerCase())) {
5897
+ headers.set(key, val);
5898
+ }
5899
+ });
5886
5900
  }
5887
- }
5901
+ }
5888
5902
 
5889
5903
  // Add xsrf header
5890
5904
  // This is only done if running in a standard browser environment.
@@ -6001,15 +6015,18 @@ var xhrAdapter = isXHRAdapterSupported && function (config) {
6001
6015
  };
6002
6016
 
6003
6017
  // Handle low level network errors
6004
- request.onerror = function handleError() {
6005
- // Real errors are hidden from us by the browser
6006
- // onerror should only fire if it's a network error
6007
- reject(new AxiosError$1('Network Error', AxiosError$1.ERR_NETWORK, config, request));
6008
-
6009
- // Clean up request
6010
- request = null;
6018
+ request.onerror = function handleError(event) {
6019
+ // Browsers deliver a ProgressEvent in XHR onerror
6020
+ // (message may be empty; when present, surface it)
6021
+ // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event
6022
+ const msg = event && event.message ? event.message : 'Network Error';
6023
+ const err = new AxiosError$1(msg, AxiosError$1.ERR_NETWORK, config, request);
6024
+ // attach the underlying event for consumers who want details
6025
+ err.event = event || null;
6026
+ reject(err);
6027
+ request = null;
6011
6028
  };
6012
-
6029
+
6013
6030
  // Handle timeout
6014
6031
  request.ontimeout = function handleTimeout() {
6015
6032
  let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';
@@ -6223,14 +6240,18 @@ const trackStream = (stream, chunkSize, onProgress, onFinish) => {
6223
6240
  })
6224
6241
  };
6225
6242
 
6226
- const isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';
6227
- const isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';
6243
+ const DEFAULT_CHUNK_SIZE = 64 * 1024;
6244
+
6245
+ const {isFunction: isFunction$2} = utils$1;
6246
+
6247
+ const globalFetchAPI = (({Request, Response}) => ({
6248
+ Request, Response
6249
+ }))(utils$1.global);
6250
+
6251
+ const {
6252
+ ReadableStream: ReadableStream$1, TextEncoder
6253
+ } = utils$1.global;
6228
6254
 
6229
- // used only inside the fetch adapter
6230
- const encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?
6231
- ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :
6232
- async (str) => new Uint8Array(await new Response(str).arrayBuffer())
6233
- );
6234
6255
 
6235
6256
  const test = (fn, ...args) => {
6236
6257
  try {
@@ -6240,211 +6261,268 @@ const test = (fn, ...args) => {
6240
6261
  }
6241
6262
  };
6242
6263
 
6243
- const supportsRequestStream = isReadableStreamSupported && test(() => {
6244
- let duplexAccessed = false;
6264
+ const factory = (env) => {
6265
+ env = utils$1.merge.call({
6266
+ skipUndefined: true
6267
+ }, globalFetchAPI, env);
6245
6268
 
6246
- const hasContentType = new Request(platform$1.origin, {
6247
- body: new ReadableStream(),
6248
- method: 'POST',
6249
- get duplex() {
6250
- duplexAccessed = true;
6251
- return 'half';
6252
- },
6253
- }).headers.has('Content-Type');
6269
+ const {fetch: envFetch, Request, Response} = env;
6270
+ const isFetchSupported = envFetch ? isFunction$2(envFetch) : typeof fetch === 'function';
6271
+ const isRequestSupported = isFunction$2(Request);
6272
+ const isResponseSupported = isFunction$2(Response);
6254
6273
 
6255
- return duplexAccessed && !hasContentType;
6256
- });
6274
+ if (!isFetchSupported) {
6275
+ return false;
6276
+ }
6257
6277
 
6258
- const DEFAULT_CHUNK_SIZE = 64 * 1024;
6278
+ const isReadableStreamSupported = isFetchSupported && isFunction$2(ReadableStream$1);
6259
6279
 
6260
- const supportsResponseStream = isReadableStreamSupported &&
6261
- test(() => utils$1.isReadableStream(new Response('').body));
6280
+ const encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?
6281
+ ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :
6282
+ async (str) => new Uint8Array(await new Request(str).arrayBuffer())
6283
+ );
6262
6284
 
6285
+ const supportsRequestStream = isRequestSupported && isReadableStreamSupported && test(() => {
6286
+ let duplexAccessed = false;
6263
6287
 
6264
- const resolvers = {
6265
- stream: supportsResponseStream && ((res) => res.body)
6266
- };
6288
+ const hasContentType = new Request(platform$1.origin, {
6289
+ body: new ReadableStream$1(),
6290
+ method: 'POST',
6291
+ get duplex() {
6292
+ duplexAccessed = true;
6293
+ return 'half';
6294
+ },
6295
+ }).headers.has('Content-Type');
6267
6296
 
6268
- isFetchSupported && (((res) => {
6269
- ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {
6270
- !resolvers[type] && (resolvers[type] = utils$1.isFunction(res[type]) ? (res) => res[type]() :
6271
- (_, config) => {
6272
- throw new AxiosError$1(`Response type '${type}' is not supported`, AxiosError$1.ERR_NOT_SUPPORT, config);
6273
- });
6297
+ return duplexAccessed && !hasContentType;
6274
6298
  });
6275
- })(new Response));
6276
6299
 
6277
- const getBodyLength = async (body) => {
6278
- if (body == null) {
6279
- return 0;
6280
- }
6300
+ const supportsResponseStream = isResponseSupported && isReadableStreamSupported &&
6301
+ test(() => utils$1.isReadableStream(new Response('').body));
6281
6302
 
6282
- if(utils$1.isBlob(body)) {
6283
- return body.size;
6284
- }
6303
+ const resolvers = {
6304
+ stream: supportsResponseStream && ((res) => res.body)
6305
+ };
6285
6306
 
6286
- if(utils$1.isSpecCompliantForm(body)) {
6287
- const _request = new Request(platform$1.origin, {
6288
- method: 'POST',
6289
- body,
6307
+ isFetchSupported && ((() => {
6308
+ ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {
6309
+ !resolvers[type] && (resolvers[type] = (res, config) => {
6310
+ let method = res && res[type];
6311
+
6312
+ if (method) {
6313
+ return method.call(res);
6314
+ }
6315
+
6316
+ throw new AxiosError$1(`Response type '${type}' is not supported`, AxiosError$1.ERR_NOT_SUPPORT, config);
6317
+ });
6290
6318
  });
6291
- return (await _request.arrayBuffer()).byteLength;
6292
- }
6319
+ })());
6293
6320
 
6294
- if(utils$1.isArrayBufferView(body) || utils$1.isArrayBuffer(body)) {
6295
- return body.byteLength;
6296
- }
6321
+ const getBodyLength = async (body) => {
6322
+ if (body == null) {
6323
+ return 0;
6324
+ }
6297
6325
 
6298
- if(utils$1.isURLSearchParams(body)) {
6299
- body = body + '';
6300
- }
6326
+ if (utils$1.isBlob(body)) {
6327
+ return body.size;
6328
+ }
6301
6329
 
6302
- if(utils$1.isString(body)) {
6303
- return (await encodeText(body)).byteLength;
6304
- }
6305
- };
6330
+ if (utils$1.isSpecCompliantForm(body)) {
6331
+ const _request = new Request(platform$1.origin, {
6332
+ method: 'POST',
6333
+ body,
6334
+ });
6335
+ return (await _request.arrayBuffer()).byteLength;
6336
+ }
6306
6337
 
6307
- const resolveBodyLength = async (headers, body) => {
6308
- const length = utils$1.toFiniteNumber(headers.getContentLength());
6338
+ if (utils$1.isArrayBufferView(body) || utils$1.isArrayBuffer(body)) {
6339
+ return body.byteLength;
6340
+ }
6309
6341
 
6310
- return length == null ? getBodyLength(body) : length;
6311
- };
6342
+ if (utils$1.isURLSearchParams(body)) {
6343
+ body = body + '';
6344
+ }
6312
6345
 
6313
- var fetchAdapter = isFetchSupported && (async (config) => {
6314
- let {
6315
- url,
6316
- method,
6317
- data,
6318
- signal,
6319
- cancelToken,
6320
- timeout,
6321
- onDownloadProgress,
6322
- onUploadProgress,
6323
- responseType,
6324
- headers,
6325
- withCredentials = 'same-origin',
6326
- fetchOptions
6327
- } = resolveConfig(config);
6328
-
6329
- responseType = responseType ? (responseType + '').toLowerCase() : 'text';
6330
-
6331
- let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);
6332
-
6333
- let request;
6334
-
6335
- const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {
6346
+ if (utils$1.isString(body)) {
6347
+ return (await encodeText(body)).byteLength;
6348
+ }
6349
+ };
6350
+
6351
+ const resolveBodyLength = async (headers, body) => {
6352
+ const length = utils$1.toFiniteNumber(headers.getContentLength());
6353
+
6354
+ return length == null ? getBodyLength(body) : length;
6355
+ };
6356
+
6357
+ return async (config) => {
6358
+ let {
6359
+ url,
6360
+ method,
6361
+ data,
6362
+ signal,
6363
+ cancelToken,
6364
+ timeout,
6365
+ onDownloadProgress,
6366
+ onUploadProgress,
6367
+ responseType,
6368
+ headers,
6369
+ withCredentials = 'same-origin',
6370
+ fetchOptions
6371
+ } = resolveConfig(config);
6372
+
6373
+ let _fetch = envFetch || fetch;
6374
+
6375
+ responseType = responseType ? (responseType + '').toLowerCase() : 'text';
6376
+
6377
+ let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);
6378
+
6379
+ let request = null;
6380
+
6381
+ const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {
6336
6382
  composedSignal.unsubscribe();
6337
- });
6383
+ });
6338
6384
 
6339
- let requestContentLength;
6385
+ let requestContentLength;
6340
6386
 
6341
- try {
6342
- if (
6343
- onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&
6344
- (requestContentLength = await resolveBodyLength(headers, data)) !== 0
6345
- ) {
6346
- let _request = new Request(url, {
6347
- method: 'POST',
6348
- body: data,
6349
- duplex: "half"
6350
- });
6387
+ try {
6388
+ if (
6389
+ onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&
6390
+ (requestContentLength = await resolveBodyLength(headers, data)) !== 0
6391
+ ) {
6392
+ let _request = new Request(url, {
6393
+ method: 'POST',
6394
+ body: data,
6395
+ duplex: "half"
6396
+ });
6351
6397
 
6352
- let contentTypeHeader;
6398
+ let contentTypeHeader;
6353
6399
 
6354
- if (utils$1.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {
6355
- headers.setContentType(contentTypeHeader);
6356
- }
6400
+ if (utils$1.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {
6401
+ headers.setContentType(contentTypeHeader);
6402
+ }
6357
6403
 
6358
- if (_request.body) {
6359
- const [onProgress, flush] = progressEventDecorator(
6360
- requestContentLength,
6361
- progressEventReducer(asyncDecorator(onUploadProgress))
6362
- );
6404
+ if (_request.body) {
6405
+ const [onProgress, flush] = progressEventDecorator(
6406
+ requestContentLength,
6407
+ progressEventReducer(asyncDecorator(onUploadProgress))
6408
+ );
6363
6409
 
6364
- data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);
6410
+ data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);
6411
+ }
6365
6412
  }
6366
- }
6367
6413
 
6368
- if (!utils$1.isString(withCredentials)) {
6369
- withCredentials = withCredentials ? 'include' : 'omit';
6370
- }
6414
+ if (!utils$1.isString(withCredentials)) {
6415
+ withCredentials = withCredentials ? 'include' : 'omit';
6416
+ }
6371
6417
 
6372
- // Cloudflare Workers throws when credentials are defined
6373
- // see https://github.com/cloudflare/workerd/issues/902
6374
- const isCredentialsSupported = "credentials" in Request.prototype;
6375
- request = new Request(url, {
6376
- ...fetchOptions,
6377
- signal: composedSignal,
6378
- method: method.toUpperCase(),
6379
- headers: headers.normalize().toJSON(),
6380
- body: data,
6381
- duplex: "half",
6382
- credentials: isCredentialsSupported ? withCredentials : undefined
6383
- });
6418
+ // Cloudflare Workers throws when credentials are defined
6419
+ // see https://github.com/cloudflare/workerd/issues/902
6420
+ const isCredentialsSupported = isRequestSupported && "credentials" in Request.prototype;
6384
6421
 
6385
- let response = await fetch(request, fetchOptions);
6422
+ const resolvedOptions = {
6423
+ ...fetchOptions,
6424
+ signal: composedSignal,
6425
+ method: method.toUpperCase(),
6426
+ headers: headers.normalize().toJSON(),
6427
+ body: data,
6428
+ duplex: "half",
6429
+ credentials: isCredentialsSupported ? withCredentials : undefined
6430
+ };
6386
6431
 
6387
- const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');
6432
+ request = isRequestSupported && new Request(url, resolvedOptions);
6388
6433
 
6389
- if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {
6390
- const options = {};
6434
+ let response = await (isRequestSupported ? _fetch(request, fetchOptions) : _fetch(url, resolvedOptions));
6391
6435
 
6392
- ['status', 'statusText', 'headers'].forEach(prop => {
6393
- options[prop] = response[prop];
6394
- });
6436
+ const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');
6395
6437
 
6396
- const responseContentLength = utils$1.toFiniteNumber(response.headers.get('content-length'));
6438
+ if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {
6439
+ const options = {};
6397
6440
 
6398
- const [onProgress, flush] = onDownloadProgress && progressEventDecorator(
6399
- responseContentLength,
6400
- progressEventReducer(asyncDecorator(onDownloadProgress), true)
6401
- ) || [];
6441
+ ['status', 'statusText', 'headers'].forEach(prop => {
6442
+ options[prop] = response[prop];
6443
+ });
6402
6444
 
6403
- response = new Response(
6404
- trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {
6405
- flush && flush();
6406
- unsubscribe && unsubscribe();
6407
- }),
6408
- options
6409
- );
6410
- }
6445
+ const responseContentLength = utils$1.toFiniteNumber(response.headers.get('content-length'));
6411
6446
 
6412
- responseType = responseType || 'text';
6447
+ const [onProgress, flush] = onDownloadProgress && progressEventDecorator(
6448
+ responseContentLength,
6449
+ progressEventReducer(asyncDecorator(onDownloadProgress), true)
6450
+ ) || [];
6413
6451
 
6414
- let responseData = await resolvers[utils$1.findKey(resolvers, responseType) || 'text'](response, config);
6452
+ response = new Response(
6453
+ trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {
6454
+ flush && flush();
6455
+ unsubscribe && unsubscribe();
6456
+ }),
6457
+ options
6458
+ );
6459
+ }
6415
6460
 
6416
- !isStreamResponse && unsubscribe && unsubscribe();
6461
+ responseType = responseType || 'text';
6417
6462
 
6418
- return await new Promise((resolve, reject) => {
6419
- settle(resolve, reject, {
6420
- data: responseData,
6421
- headers: AxiosHeaders$1.from(response.headers),
6422
- status: response.status,
6423
- statusText: response.statusText,
6424
- config,
6425
- request
6426
- });
6427
- })
6428
- } catch (err) {
6429
- unsubscribe && unsubscribe();
6463
+ let responseData = await resolvers[utils$1.findKey(resolvers, responseType) || 'text'](response, config);
6430
6464
 
6431
- if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {
6432
- throw Object.assign(
6433
- new AxiosError$1('Network Error', AxiosError$1.ERR_NETWORK, config, request),
6434
- {
6435
- cause: err.cause || err
6436
- }
6437
- )
6465
+ !isStreamResponse && unsubscribe && unsubscribe();
6466
+
6467
+ return await new Promise((resolve, reject) => {
6468
+ settle(resolve, reject, {
6469
+ data: responseData,
6470
+ headers: AxiosHeaders$1.from(response.headers),
6471
+ status: response.status,
6472
+ statusText: response.statusText,
6473
+ config,
6474
+ request
6475
+ });
6476
+ })
6477
+ } catch (err) {
6478
+ unsubscribe && unsubscribe();
6479
+
6480
+ if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {
6481
+ throw Object.assign(
6482
+ new AxiosError$1('Network Error', AxiosError$1.ERR_NETWORK, config, request),
6483
+ {
6484
+ cause: err.cause || err
6485
+ }
6486
+ )
6487
+ }
6488
+
6489
+ throw AxiosError$1.from(err, err && err.code, config, request);
6438
6490
  }
6491
+ }
6492
+ };
6493
+
6494
+ const seedCache = new Map();
6495
+
6496
+ const getFetch = (config) => {
6497
+ let env = config ? config.env : {};
6498
+ const {fetch, Request, Response} = env;
6499
+ const seeds = [
6500
+ Request, Response, fetch
6501
+ ];
6502
+
6503
+ let len = seeds.length, i = len,
6504
+ seed, target, map = seedCache;
6439
6505
 
6440
- throw AxiosError$1.from(err, err && err.code, config, request);
6506
+ while (i--) {
6507
+ seed = seeds[i];
6508
+ target = map.get(seed);
6509
+
6510
+ target === undefined && map.set(seed, target = (i ? new Map() : factory(env)));
6511
+
6512
+ map = target;
6441
6513
  }
6442
- });
6514
+
6515
+ return target;
6516
+ };
6517
+
6518
+ getFetch();
6443
6519
 
6444
6520
  const knownAdapters = {
6445
6521
  http: httpAdapter,
6446
6522
  xhr: xhrAdapter,
6447
- fetch: fetchAdapter
6523
+ fetch: {
6524
+ get: getFetch,
6525
+ }
6448
6526
  };
6449
6527
 
6450
6528
  utils$1.forEach(knownAdapters, (fn, value) => {
@@ -6463,7 +6541,7 @@ const renderReason = (reason) => `- ${reason}`;
6463
6541
  const isResolvedHandle = (adapter) => utils$1.isFunction(adapter) || adapter === null || adapter === false;
6464
6542
 
6465
6543
  var adapters = {
6466
- getAdapter: (adapters) => {
6544
+ getAdapter: (adapters, config) => {
6467
6545
  adapters = utils$1.isArray(adapters) ? adapters : [adapters];
6468
6546
 
6469
6547
  const {length} = adapters;
@@ -6486,7 +6564,7 @@ var adapters = {
6486
6564
  }
6487
6565
  }
6488
6566
 
6489
- if (adapter) {
6567
+ if (adapter && (utils$1.isFunction(adapter) || (adapter = adapter.get(config)))) {
6490
6568
  break;
6491
6569
  }
6492
6570
 
@@ -6554,7 +6632,7 @@ function dispatchRequest(config) {
6554
6632
  config.headers.setContentType('application/x-www-form-urlencoded', false);
6555
6633
  }
6556
6634
 
6557
- const adapter = adapters.getAdapter(config.adapter || defaults.adapter);
6635
+ const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config);
6558
6636
 
6559
6637
  return adapter(config).then(function onAdapterResolution(response) {
6560
6638
  throwIfCancellationRequested(config);
@@ -6588,7 +6666,7 @@ function dispatchRequest(config) {
6588
6666
  });
6589
6667
  }
6590
6668
 
6591
- const VERSION$1 = "1.11.0";
6669
+ const VERSION$1 = "1.12.2";
6592
6670
 
6593
6671
  const validators$1 = {};
6594
6672
 
@@ -6844,8 +6922,6 @@ let Axios$1 = class Axios {
6844
6922
 
6845
6923
  let newConfig = config;
6846
6924
 
6847
- i = 0;
6848
-
6849
6925
  while (i < len) {
6850
6926
  const onFulfilled = requestInterceptorChain[i++];
6851
6927
  const onRejected = requestInterceptorChain[i++];
@@ -7369,10 +7445,10 @@ var Client = class {
7369
7445
  async getCheckoutShippingRates(clientSecret, checkoutId) {
7370
7446
  const apiClient = createApiClient(clientSecret, this.proxy);
7371
7447
  const data = await apiClient.get(
7372
- `/checkout/shipping/${checkoutId}`
7448
+ `/checkout/${checkoutId}/shipping/rates`
7373
7449
  );
7374
- if ("isError" in data && data.isError || !data || !Array.isArray(data)) {
7375
- return [];
7450
+ if ("isError" in data && data.isError || !data || !("rates" in data)) {
7451
+ return {};
7376
7452
  }
7377
7453
  return data;
7378
7454
  }
@@ -7467,109 +7543,11 @@ var Client = class {
7467
7543
  }
7468
7544
  };
7469
7545
  var client_default = Client;
7470
-
7471
- // src/helpers/index.ts
7472
- var currencyLocales = {
7473
- CZK: "cs-CZ",
7474
- // Czech Koruna
7475
- USD: "en-US",
7476
- // US Dollar
7477
- EUR: "de-DE",
7478
- // Euro (Germany locale)
7479
- GBP: "en-GB",
7480
- // British Pound
7481
- JPY: "ja-JP",
7482
- // Japanese Yen
7483
- AUD: "en-AU",
7484
- // Australian Dollar
7485
- CAD: "en-CA",
7486
- // Canadian Dollar
7487
- NZD: "en-NZ",
7488
- // New Zealand Dollar
7489
- SEK: "sv-SE",
7490
- // Swedish Krona
7491
- NOK: "nb-NO",
7492
- // Norwegian Krone
7493
- DKK: "da-DK",
7494
- // Danish Krone
7495
- CHF: "de-CH",
7496
- // Swiss Franc (German Switzerland)
7497
- HUF: "hu-HU",
7498
- // Hungarian Forint
7499
- PLN: "pl-PL",
7500
- // Polish Zloty
7501
- BGN: "bg-BG",
7502
- // Bulgarian Lev
7503
- RON: "ro-RO",
7504
- // Romanian Leu
7505
- RUB: "ru-RU",
7506
- // Russian Ruble
7507
- CNY: "zh-CN",
7508
- // Chinese Yuan
7509
- INR: "en-IN",
7510
- // Indian Rupee
7511
- BRL: "pt-BR",
7512
- // Brazilian Real
7513
- MXN: "es-MX",
7514
- // Mexican Peso
7515
- ZAR: "en-ZA",
7516
- // South African Rand
7517
- KRW: "ko-KR",
7518
- // South Korean Won
7519
- MYR: "ms-MY",
7520
- // Malaysian Ringgit
7521
- SGD: "en-SG",
7522
- // Singapore Dollar
7523
- TWD: "zh-TW",
7524
- // Taiwanese Dollar
7525
- THB: "th-TH",
7526
- // Thai Baht
7527
- IDR: "id-ID",
7528
- // Indonesian Rupiah
7529
- AED: "ar-AE",
7530
- // UAE Dirham
7531
- SAR: "ar-SA",
7532
- // Saudi Riyal
7533
- TRY: "tr-TR"
7534
- // Turkish Lira
7535
- };
7536
- var Helpers = class {
7537
- proxy;
7538
- constructor(proxy) {
7539
- this.proxy = proxy;
7540
- }
7541
- formatCurrency(currency) {
7542
- const locale = currencyLocales[currency.toUpperCase()] ?? void 0;
7543
- const formattedCurrency = new Intl.NumberFormat(locale, {
7544
- style: "currency",
7545
- currency,
7546
- currencyDisplay: "symbol"
7547
- });
7548
- return formattedCurrency.format(0).replace(/[\d.,\s]/g, "").trim();
7549
- }
7550
- formatPrice(priceInCents, currency, exchangeRate) {
7551
- const amount = priceInCents / 100 * (exchangeRate ?? 1);
7552
- const isWhole = amount % 1 === 0;
7553
- const locale = currencyLocales[currency.toUpperCase()] ?? void 0;
7554
- const formattedPrice = new Intl.NumberFormat(locale, {
7555
- style: "currency",
7556
- currency,
7557
- currencyDisplay: "symbol",
7558
- minimumFractionDigits: isWhole ? 0 : 2,
7559
- maximumFractionDigits: isWhole ? 0 : 2
7560
- }).format(amount);
7561
- return formattedPrice;
7562
- }
7563
- };
7564
- var helpers_default = Helpers;
7565
7546
  function createStoreClient(config) {
7566
7547
  return new client_default(config?.proxy);
7567
7548
  }
7568
- function createStoreHelpers(config) {
7569
- return new helpers_default(config?.proxy);
7570
- }
7571
7549
 
7572
- var css_248z = "/*! tailwindcss v4.1.12 | MIT License | https://tailwindcss.com */\n@layer properties;\n@layer theme, base, components, utilities;\n@layer theme {\n :root, :host {\n --font-sans: var(--font-sans), Helvetica, Arial, apple-system, sans-serif;\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 --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);\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(--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 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 ::placeholder {\n opacity: 1;\n }\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\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 ::-webkit-calendar-picker-indicator {\n line-height: 1;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button, input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]), ::file-selector-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;\n }\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n }\n .absolute {\n position: absolute;\n }\n .fixed {\n position: fixed;\n }\n .relative {\n position: relative;\n }\n .inset-0 {\n inset: calc(var(--spacing) * 0);\n }\n .-top-2 {\n top: calc(var(--spacing) * -2);\n }\n .top-0 {\n top: calc(var(--spacing) * 0);\n }\n .top-0\\.5 {\n top: calc(var(--spacing) * 0.5);\n }\n .top-1\\/2 {\n top: calc(1/2 * 100%);\n }\n .top-4 {\n top: calc(var(--spacing) * 4);\n }\n .top-\\[50\\%\\] {\n top: 50%;\n }\n .top-full {\n top: 100%;\n }\n .-right-2 {\n right: calc(var(--spacing) * -2);\n }\n .right-0 {\n right: calc(var(--spacing) * 0);\n }\n .right-4 {\n right: calc(var(--spacing) * 4);\n }\n .bottom-0 {\n bottom: calc(var(--spacing) * 0);\n }\n .left-0 {\n left: calc(var(--spacing) * 0);\n }\n .left-1\\/2 {\n left: calc(1/2 * 100%);\n }\n .left-2 {\n left: calc(var(--spacing) * 2);\n }\n .left-\\[50\\%\\] {\n left: 50%;\n }\n .z-0 {\n z-index: 0;\n }\n .z-10 {\n z-index: 10;\n }\n .z-50 {\n z-index: 50;\n }\n .order-3 {\n order: 3;\n }\n .order-4 {\n order: 4;\n }\n .order-5 {\n order: 5;\n }\n .order-6 {\n order: 6;\n }\n .order-7 {\n order: 7;\n }\n .order-first {\n order: -9999;\n }\n .container {\n width: 100%;\n @media (width >= 40rem) {\n max-width: 40rem;\n }\n @media (width >= 48rem) {\n max-width: 48rem;\n }\n @media (width >= 64rem) {\n max-width: 64rem;\n }\n @media (width >= 80rem) {\n max-width: 80rem;\n }\n @media (width >= 96rem) {\n max-width: 96rem;\n }\n }\n .-m-0\\.5 {\n margin: calc(var(--spacing) * -0.5);\n }\n .m-0 {\n margin: calc(var(--spacing) * 0);\n }\n .-mx-1 {\n margin-inline: calc(var(--spacing) * -1);\n }\n .my-1 {\n margin-block: calc(var(--spacing) * 1);\n }\n .my-2 {\n margin-block: calc(var(--spacing) * 2);\n }\n .-mt-1 {\n margin-top: calc(var(--spacing) * -1);\n }\n .-mt-2 {\n margin-top: calc(var(--spacing) * -2);\n }\n .-mt-4 {\n margin-top: calc(var(--spacing) * -4);\n }\n .mt-1 {\n margin-top: calc(var(--spacing) * 1);\n }\n .mt-2 {\n margin-top: calc(var(--spacing) * 2);\n }\n .mt-8 {\n margin-top: calc(var(--spacing) * 8);\n }\n .-mb-0\\.5 {\n margin-bottom: calc(var(--spacing) * -0.5);\n }\n .-mb-2 {\n margin-bottom: calc(var(--spacing) * -2);\n }\n .mb-1 {\n margin-bottom: calc(var(--spacing) * 1);\n }\n .mb-2 {\n margin-bottom: calc(var(--spacing) * 2);\n }\n .mb-4 {\n margin-bottom: calc(var(--spacing) * 4);\n }\n .ml-4 {\n margin-left: calc(var(--spacing) * 4);\n }\n .ml-auto {\n margin-left: auto;\n }\n .line-clamp-1 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n }\n .block {\n display: block;\n }\n .flex {\n display: flex;\n }\n .grid {\n display: grid;\n }\n .hidden {\n display: none;\n }\n .inline-flex {\n display: inline-flex;\n }\n .aspect-square {\n aspect-ratio: 1 / 1;\n }\n .size-2 {\n width: calc(var(--spacing) * 2);\n height: calc(var(--spacing) * 2);\n }\n .size-3 {\n width: calc(var(--spacing) * 3);\n height: calc(var(--spacing) * 3);\n }\n .size-3\\.5 {\n width: calc(var(--spacing) * 3.5);\n height: calc(var(--spacing) * 3.5);\n }\n .size-4 {\n width: calc(var(--spacing) * 4);\n height: calc(var(--spacing) * 4);\n }\n .size-5 {\n width: calc(var(--spacing) * 5);\n height: calc(var(--spacing) * 5);\n }\n .size-9 {\n width: calc(var(--spacing) * 9);\n height: calc(var(--spacing) * 9);\n }\n .size-16 {\n width: calc(var(--spacing) * 16);\n height: calc(var(--spacing) * 16);\n }\n .h-0 {\n height: calc(var(--spacing) * 0);\n }\n .h-3\\.5 {\n height: calc(var(--spacing) * 3.5);\n }\n .h-4 {\n height: calc(var(--spacing) * 4);\n }\n .h-5 {\n height: calc(var(--spacing) * 5);\n }\n .h-6 {\n height: calc(var(--spacing) * 6);\n }\n .h-8 {\n height: calc(var(--spacing) * 8);\n }\n .h-9 {\n height: calc(var(--spacing) * 9);\n }\n .h-10 {\n height: calc(var(--spacing) * 10);\n }\n .h-12 {\n height: calc(var(--spacing) * 12);\n }\n .h-16 {\n height: calc(var(--spacing) * 16);\n }\n .h-\\[2px\\] {\n height: 2px;\n }\n .h-\\[18px\\] {\n height: 18px;\n }\n .h-\\[20px\\] {\n height: 20px;\n }\n .h-\\[44px\\] {\n height: 44px;\n }\n .h-auto {\n height: auto;\n }\n .h-auto\\! {\n height: auto !important;\n }\n .h-full {\n height: 100%;\n }\n .h-max {\n height: max-content;\n }\n .h-px {\n height: 1px;\n }\n .max-h-\\(--radix-dropdown-menu-content-available-height\\) {\n max-height: var(--radix-dropdown-menu-content-available-height);\n }\n .max-h-0 {\n max-height: calc(var(--spacing) * 0);\n }\n .max-h-60 {\n max-height: calc(var(--spacing) * 60);\n }\n .max-h-\\[300px\\] {\n max-height: 300px;\n }\n .min-h-full {\n min-height: 100%;\n }\n .w-0 {\n width: calc(var(--spacing) * 0);\n }\n .w-4 {\n width: calc(var(--spacing) * 4);\n }\n .w-6 {\n width: calc(var(--spacing) * 6);\n }\n .w-12 {\n width: calc(var(--spacing) * 12);\n }\n .w-16 {\n width: calc(var(--spacing) * 16);\n }\n .w-20 {\n width: calc(var(--spacing) * 20);\n }\n .w-24 {\n width: calc(var(--spacing) * 24);\n }\n .w-28 {\n width: calc(var(--spacing) * 28);\n }\n .w-32 {\n width: calc(var(--spacing) * 32);\n }\n .w-40 {\n width: calc(var(--spacing) * 40);\n }\n .w-72 {\n width: calc(var(--spacing) * 72);\n }\n .w-full {\n width: 100%;\n }\n .max-w-0 {\n max-width: calc(var(--spacing) * 0);\n }\n .max-w-\\[calc\\(100\\%-2rem\\)\\] {\n max-width: calc(100% - 2rem);\n }\n .min-w-0 {\n min-width: calc(var(--spacing) * 0);\n }\n .min-w-\\[8rem\\] {\n min-width: 8rem;\n }\n .flex-1 {\n flex: 1;\n }\n .shrink-0 {\n flex-shrink: 0;\n }\n .origin-\\(--radix-dropdown-menu-content-transform-origin\\) {\n transform-origin: var(--radix-dropdown-menu-content-transform-origin);\n }\n .origin-\\(--radix-popover-content-transform-origin\\) {\n transform-origin: var(--radix-popover-content-transform-origin);\n }\n .-translate-x-0 {\n --tw-translate-x: calc(var(--spacing) * -0);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .-translate-x-1\\/2 {\n --tw-translate-x: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .-translate-x-3 {\n --tw-translate-x: calc(var(--spacing) * -3);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-x-2 {\n --tw-translate-x: calc(var(--spacing) * 2);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-x-\\[-50\\%\\] {\n --tw-translate-x: -50%;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .-translate-y-1\\/2 {\n --tw-translate-y: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-y-\\[-50\\%\\] {\n --tw-translate-y: -50%;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .rotate-180 {\n rotate: 180deg;\n }\n .animate-pulse {\n animation: var(--animate-pulse);\n }\n .animate-spin {\n animation: var(--animate-spin);\n }\n .cursor-default {\n cursor: default;\n }\n .cursor-pointer {\n cursor: pointer;\n }\n .resize {\n resize: both;\n }\n .scroll-py-1 {\n scroll-padding-block: calc(var(--spacing) * 1);\n }\n .grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n .flex-col {\n flex-direction: column;\n }\n .flex-col-reverse {\n flex-direction: column-reverse;\n }\n .items-center {\n align-items: center;\n }\n .justify-between {\n justify-content: space-between;\n }\n .justify-center {\n justify-content: center;\n }\n .justify-end {\n justify-content: flex-end;\n }\n .gap-0 {\n gap: calc(var(--spacing) * 0);\n }\n .gap-0\\.5 {\n gap: calc(var(--spacing) * 0.5);\n }\n .gap-1 {\n gap: calc(var(--spacing) * 1);\n }\n .gap-1\\.5 {\n gap: calc(var(--spacing) * 1.5);\n }\n .gap-2 {\n gap: calc(var(--spacing) * 2);\n }\n .gap-3 {\n gap: calc(var(--spacing) * 3);\n }\n .gap-4 {\n gap: calc(var(--spacing) * 4);\n }\n .gap-5 {\n gap: calc(var(--spacing) * 5);\n }\n .gap-6 {\n gap: calc(var(--spacing) * 6);\n }\n .gap-\\[10px\\] {\n gap: 10px;\n }\n .space-y-2 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-4 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-5 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-6 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .overflow-hidden {\n overflow: hidden;\n }\n .overflow-x-hidden {\n overflow-x: hidden;\n }\n .overflow-y-auto {\n overflow-y: auto;\n }\n .rounded-\\[4px\\] {\n border-radius: 4px;\n }\n .rounded-full {\n border-radius: calc(infinity * 1px);\n }\n .rounded-lg {\n border-radius: var(--radius);\n }\n .rounded-md {\n border-radius: calc(var(--radius) - 2px);\n }\n .rounded-sm {\n border-radius: calc(var(--radius) - 4px);\n }\n .rounded-xs {\n border-radius: var(--radius-xs);\n }\n .border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .border-b {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n .border-border {\n border-color: var(--border);\n }\n .border-input {\n border-color: var(--input);\n }\n .border-primary {\n border-color: var(--primary);\n }\n .bg-accent {\n background-color: var(--accent);\n }\n .bg-background {\n background-color: var(--background);\n }\n .bg-black\\/50 {\n background-color: color-mix(in srgb, #000 50%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 50%, transparent);\n }\n }\n .bg-border {\n background-color: var(--border);\n }\n .bg-destructive {\n background-color: var(--destructive);\n }\n .bg-muted {\n background-color: var(--muted);\n }\n .bg-popover {\n background-color: var(--popover);\n }\n .bg-primary {\n background-color: var(--primary);\n }\n .bg-secondary {\n background-color: var(--secondary);\n }\n .bg-transparent {\n background-color: transparent;\n }\n .fill-current {\n fill: currentcolor;\n }\n .fill-primary {\n fill: var(--primary);\n }\n .object-cover {\n object-fit: cover;\n }\n .p-0 {\n padding: calc(var(--spacing) * 0);\n }\n .p-1 {\n padding: calc(var(--spacing) * 1);\n }\n .p-3 {\n padding: calc(var(--spacing) * 3);\n }\n .p-4 {\n padding: calc(var(--spacing) * 4);\n }\n .p-6 {\n padding: calc(var(--spacing) * 6);\n }\n .px-1 {\n padding-inline: calc(var(--spacing) * 1);\n }\n .px-2 {\n padding-inline: calc(var(--spacing) * 2);\n }\n .px-3 {\n padding-inline: calc(var(--spacing) * 3);\n }\n .px-4 {\n padding-inline: calc(var(--spacing) * 4);\n }\n .px-6 {\n padding-inline: calc(var(--spacing) * 6);\n }\n .py-1 {\n padding-block: calc(var(--spacing) * 1);\n }\n .py-1\\.5 {\n padding-block: calc(var(--spacing) * 1.5);\n }\n .py-2 {\n padding-block: calc(var(--spacing) * 2);\n }\n .py-3 {\n padding-block: calc(var(--spacing) * 3);\n }\n .py-4 {\n padding-block: calc(var(--spacing) * 4);\n }\n .py-6 {\n padding-block: calc(var(--spacing) * 6);\n }\n .pt-2 {\n padding-top: calc(var(--spacing) * 2);\n }\n .pt-4 {\n padding-top: calc(var(--spacing) * 4);\n }\n .pr-2 {\n padding-right: calc(var(--spacing) * 2);\n }\n .pb-1 {\n padding-bottom: calc(var(--spacing) * 1);\n }\n .pb-2 {\n padding-bottom: calc(var(--spacing) * 2);\n }\n .pb-4 {\n padding-bottom: calc(var(--spacing) * 4);\n }\n .pb-40 {\n padding-bottom: calc(var(--spacing) * 40);\n }\n .pl-8 {\n padding-left: calc(var(--spacing) * 8);\n }\n .text-center {\n text-align: center;\n }\n .text-left {\n text-align: left;\n }\n .text-right {\n text-align: right;\n }\n .text-base {\n font-size: var(--text-base);\n line-height: var(--tw-leading, var(--text-base--line-height));\n }\n .text-lg {\n font-size: var(--text-lg);\n line-height: var(--tw-leading, var(--text-lg--line-height));\n }\n .text-sm {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n .text-xs {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n }\n .text-\\[13px\\] {\n font-size: 13px;\n }\n .leading-none {\n --tw-leading: 1;\n line-height: 1;\n }\n .font-bold {\n --tw-font-weight: var(--font-weight-bold);\n font-weight: var(--font-weight-bold);\n }\n .font-medium {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n .font-semibold {\n --tw-font-weight: var(--font-weight-semibold);\n font-weight: var(--font-weight-semibold);\n }\n .tracking-tight {\n --tw-tracking: var(--tracking-tight);\n letter-spacing: var(--tracking-tight);\n }\n .tracking-widest {\n --tw-tracking: var(--tracking-widest);\n letter-spacing: var(--tracking-widest);\n }\n .text-ellipsis {\n text-overflow: ellipsis;\n }\n .whitespace-nowrap {\n white-space: nowrap;\n }\n .text-background {\n color: var(--background);\n }\n .text-current {\n color: currentcolor;\n }\n .text-destructive {\n color: var(--destructive);\n }\n .text-destructive-foreground {\n color: var(--destructive-foreground);\n }\n .text-foreground {\n color: var(--foreground);\n }\n .text-muted-foreground {\n color: var(--muted-foreground);\n }\n .text-popover-foreground {\n color: var(--popover-foreground);\n }\n .text-primary {\n color: var(--primary);\n }\n .text-primary-foreground {\n color: var(--primary-foreground);\n }\n .text-red-500 {\n color: var(--color-red-500);\n }\n .text-ring {\n color: var(--ring);\n }\n .text-secondary-foreground {\n color: var(--secondary-foreground);\n }\n .text-white {\n color: var(--color-white);\n }\n .line-through {\n text-decoration-line: line-through;\n }\n .underline {\n text-decoration-line: underline;\n }\n .underline-offset-4 {\n text-underline-offset: 4px;\n }\n .opacity-0 {\n opacity: 0%;\n }\n .opacity-50 {\n opacity: 50%;\n }\n .opacity-70 {\n opacity: 70%;\n }\n .opacity-100 {\n opacity: 100%;\n }\n .shadow {\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));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\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));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\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));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-xs {\n --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\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);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring-offset-background {\n --tw-ring-offset-color: var(--background);\n }\n .outline-hidden {\n --tw-outline-style: none;\n outline-style: none;\n @media (forced-colors: active) {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n }\n .outline {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\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;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-\\[color\\,box-shadow\\] {\n transition-property: color,box-shadow;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-colors {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-opacity {\n transition-property: opacity;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-shadow {\n transition-property: box-shadow;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-transform {\n transition-property: transform, translate, scale, rotate;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-none {\n transition-property: none;\n }\n .duration-200 {\n --tw-duration: 200ms;\n transition-duration: 200ms;\n }\n .ease-in-out {\n --tw-ease: var(--ease-in-out);\n transition-timing-function: var(--ease-in-out);\n }\n .outline-none {\n --tw-outline-style: none;\n outline-style: none;\n }\n .select-none {\n -webkit-user-select: none;\n user-select: none;\n }\n .duration-200 {\n animation-duration: 200ms;\n }\n .ease-in-out {\n animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n }\n .group-data-\\[disabled\\=true\\]\\:pointer-events-none {\n &:is(:where(.group)[data-disabled=\"true\"] *) {\n pointer-events: none;\n }\n }\n .group-data-\\[disabled\\=true\\]\\:opacity-50 {\n &:is(:where(.group)[data-disabled=\"true\"] *) {\n opacity: 50%;\n }\n }\n .peer-disabled\\:cursor-not-allowed {\n &:is(:where(.peer):disabled ~ *) {\n cursor: not-allowed;\n }\n }\n .peer-disabled\\:opacity-50 {\n &:is(:where(.peer):disabled ~ *) {\n opacity: 50%;\n }\n }\n .file\\:inline-flex {\n &::file-selector-button {\n display: inline-flex;\n }\n }\n .file\\:h-7 {\n &::file-selector-button {\n height: calc(var(--spacing) * 7);\n }\n }\n .file\\:border-0 {\n &::file-selector-button {\n border-style: var(--tw-border-style);\n border-width: 0px;\n }\n }\n .file\\:bg-transparent {\n &::file-selector-button {\n background-color: transparent;\n }\n }\n .file\\:text-sm {\n &::file-selector-button {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n }\n .file\\:font-medium {\n &::file-selector-button {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n }\n .file\\:text-foreground {\n &::file-selector-button {\n color: var(--foreground);\n }\n }\n .placeholder\\:text-muted-foreground {\n &::placeholder {\n color: var(--muted-foreground);\n }\n }\n .after\\:absolute {\n &::after {\n content: var(--tw-content);\n position: absolute;\n }\n }\n .after\\:top-1\\/2 {\n &::after {\n content: var(--tw-content);\n top: calc(1/2 * 100%);\n }\n }\n .after\\:right-0 {\n &::after {\n content: var(--tw-content);\n right: calc(var(--spacing) * 0);\n }\n }\n .after\\:left-0 {\n &::after {\n content: var(--tw-content);\n left: calc(var(--spacing) * 0);\n }\n }\n .after\\:z-0 {\n &::after {\n content: var(--tw-content);\n z-index: 0;\n }\n }\n .after\\:h-px {\n &::after {\n content: var(--tw-content);\n height: 1px;\n }\n }\n .after\\:-translate-y-1\\/2 {\n &::after {\n content: var(--tw-content);\n --tw-translate-y: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .after\\:bg-background {\n &::after {\n content: var(--tw-content);\n background-color: var(--background);\n }\n }\n .after\\:content-\\[\\'\\'\\] {\n &::after {\n content: var(--tw-content);\n --tw-content: '';\n content: var(--tw-content);\n }\n }\n .last\\:border-b-0 {\n &:last-child {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 0px;\n }\n }\n .hover\\:bg-accent {\n &:hover {\n @media (hover: hover) {\n background-color: var(--accent);\n }\n }\n }\n .hover\\:bg-destructive\\/90 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--destructive) 90%, transparent);\n }\n }\n }\n }\n .hover\\:bg-muted {\n &:hover {\n @media (hover: hover) {\n background-color: var(--muted);\n }\n }\n }\n .hover\\:bg-primary\\/90 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--primary) 90%, transparent);\n }\n }\n }\n }\n .hover\\:bg-secondary\\/80 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--secondary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--secondary) 80%, transparent);\n }\n }\n }\n }\n .hover\\:text-accent-foreground {\n &:hover {\n @media (hover: hover) {\n color: var(--accent-foreground);\n }\n }\n }\n .hover\\:text-foreground {\n &:hover {\n @media (hover: hover) {\n color: var(--foreground);\n }\n }\n }\n .hover\\:text-muted-foreground {\n &:hover {\n @media (hover: hover) {\n color: var(--muted-foreground);\n }\n }\n }\n .hover\\:underline {\n &:hover {\n @media (hover: hover) {\n text-decoration-line: underline;\n }\n }\n }\n .hover\\:opacity-100 {\n &:hover {\n @media (hover: hover) {\n opacity: 100%;\n }\n }\n }\n .focus\\:bg-accent {\n &:focus {\n background-color: var(--accent);\n }\n }\n .focus\\:text-accent-foreground {\n &:focus {\n color: var(--accent-foreground);\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);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus\\:ring-ring {\n &:focus {\n --tw-ring-color: var(--ring);\n }\n }\n .focus\\:ring-offset-2 {\n &:focus {\n --tw-ring-offset-width: 2px;\n --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n }\n }\n .focus\\:outline-hidden {\n &:focus {\n --tw-outline-style: none;\n outline-style: none;\n @media (forced-colors: active) {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n }\n }\n .focus-visible\\:border-ring {\n &:focus-visible {\n border-color: var(--ring);\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);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus-visible\\:ring-destructive\\/20 {\n &:focus-visible {\n --tw-ring-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n }\n }\n }\n .focus-visible\\:ring-ring\\/50 {\n &:focus-visible {\n --tw-ring-color: var(--ring);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--ring) 50%, transparent);\n }\n }\n }\n .disabled\\:pointer-events-none {\n &:disabled {\n pointer-events: none;\n }\n }\n .disabled\\:cursor-not-allowed {\n &:disabled {\n cursor: not-allowed;\n }\n }\n .disabled\\:opacity-50 {\n &:disabled {\n opacity: 50%;\n }\n }\n .has-\\[\\>svg\\]\\:px-2\\.5 {\n &:has(>svg) {\n padding-inline: calc(var(--spacing) * 2.5);\n }\n }\n .has-\\[\\>svg\\]\\:px-3 {\n &:has(>svg) {\n padding-inline: calc(var(--spacing) * 3);\n }\n }\n .has-\\[\\>svg\\]\\:px-4 {\n &:has(>svg) {\n padding-inline: calc(var(--spacing) * 4);\n }\n }\n .aria-invalid\\:border-destructive {\n &[aria-invalid=\"true\"] {\n border-color: var(--destructive);\n }\n }\n .aria-invalid\\:ring-destructive\\/20 {\n &[aria-invalid=\"true\"] {\n --tw-ring-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n }\n }\n }\n .data-\\[disabled\\]\\:pointer-events-none {\n &[data-disabled] {\n pointer-events: none;\n }\n }\n .data-\\[disabled\\]\\:opacity-50 {\n &[data-disabled] {\n opacity: 50%;\n }\n }\n .data-\\[disabled\\=true\\]\\:pointer-events-none {\n &[data-disabled=\"true\"] {\n pointer-events: none;\n }\n }\n .data-\\[disabled\\=true\\]\\:opacity-50 {\n &[data-disabled=\"true\"] {\n opacity: 50%;\n }\n }\n .data-\\[error\\=true\\]\\:text-destructive-foreground {\n &[data-error=\"true\"] {\n color: var(--destructive-foreground);\n }\n }\n .data-\\[inset\\]\\:pl-8 {\n &[data-inset] {\n padding-left: calc(var(--spacing) * 8);\n }\n }\n .data-\\[selected\\=true\\]\\:bg-accent {\n &[data-selected=\"true\"] {\n background-color: var(--accent);\n }\n }\n .data-\\[selected\\=true\\]\\:text-accent-foreground {\n &[data-selected=\"true\"] {\n color: var(--accent-foreground);\n }\n }\n .data-\\[side\\=bottom\\]\\:slide-in-from-top-2 {\n &[data-side=\"bottom\"] {\n --tw-enter-translate-y: -0.5rem;\n }\n }\n .data-\\[side\\=left\\]\\:slide-in-from-right-2 {\n &[data-side=\"left\"] {\n --tw-enter-translate-x: 0.5rem;\n }\n }\n .data-\\[side\\=right\\]\\:slide-in-from-left-2 {\n &[data-side=\"right\"] {\n --tw-enter-translate-x: -0.5rem;\n }\n }\n .data-\\[side\\=top\\]\\:slide-in-from-bottom-2 {\n &[data-side=\"top\"] {\n --tw-enter-translate-y: 0.5rem;\n }\n }\n .\\*\\*\\:data-\\[slot\\=command-input-wrapper\\]\\:h-12 {\n :is(& *) {\n &[data-slot=\"command-input-wrapper\"] {\n height: calc(var(--spacing) * 12);\n }\n }\n }\n .data-\\[state\\=checked\\]\\:border-primary {\n &[data-state=\"checked\"] {\n border-color: var(--primary);\n }\n }\n .data-\\[state\\=checked\\]\\:bg-primary {\n &[data-state=\"checked\"] {\n background-color: var(--primary);\n }\n }\n .data-\\[state\\=checked\\]\\:text-primary-foreground {\n &[data-state=\"checked\"] {\n color: var(--primary-foreground);\n }\n }\n .data-\\[state\\=closed\\]\\:animate-out {\n &[data-state=\"closed\"] {\n animation-name: exit;\n animation-duration: 150ms;\n --tw-exit-opacity: initial;\n --tw-exit-scale: initial;\n --tw-exit-rotate: initial;\n --tw-exit-translate-x: initial;\n --tw-exit-translate-y: initial;\n }\n }\n .data-\\[state\\=closed\\]\\:fade-out-0 {\n &[data-state=\"closed\"] {\n --tw-exit-opacity: 0;\n }\n }\n .data-\\[state\\=closed\\]\\:zoom-out-95 {\n &[data-state=\"closed\"] {\n --tw-exit-scale: .95;\n }\n }\n .data-\\[state\\=open\\]\\:bg-accent {\n &[data-state=\"open\"] {\n background-color: var(--accent);\n }\n }\n .data-\\[state\\=open\\]\\:text-accent-foreground {\n &[data-state=\"open\"] {\n color: var(--accent-foreground);\n }\n }\n .data-\\[state\\=open\\]\\:text-muted-foreground {\n &[data-state=\"open\"] {\n color: var(--muted-foreground);\n }\n }\n .data-\\[state\\=open\\]\\:animate-in {\n &[data-state=\"open\"] {\n animation-name: enter;\n animation-duration: 150ms;\n --tw-enter-opacity: initial;\n --tw-enter-scale: initial;\n --tw-enter-rotate: initial;\n --tw-enter-translate-x: initial;\n --tw-enter-translate-y: initial;\n }\n }\n .data-\\[state\\=open\\]\\:fade-in-0 {\n &[data-state=\"open\"] {\n --tw-enter-opacity: 0;\n }\n }\n .data-\\[state\\=open\\]\\:zoom-in-95 {\n &[data-state=\"open\"] {\n --tw-enter-scale: .95;\n }\n }\n .data-\\[variant\\=destructive\\]\\:text-destructive {\n &[data-variant=\"destructive\"] {\n color: var(--destructive);\n }\n }\n .data-\\[variant\\=destructive\\]\\:focus\\:bg-destructive\\/10 {\n &[data-variant=\"destructive\"] {\n &:focus {\n background-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--destructive) 10%, transparent);\n }\n }\n }\n }\n .data-\\[variant\\=destructive\\]\\:focus\\:text-destructive {\n &[data-variant=\"destructive\"] {\n &:focus {\n color: var(--destructive);\n }\n }\n }\n .max-md\\:cursor-pointer {\n @media (width < 48rem) {\n cursor: pointer;\n }\n }\n .max-sm\\:hidden {\n @media (width < 40rem) {\n display: none;\n }\n }\n .max-sm\\:h-\\[52px\\] {\n @media (width < 40rem) {\n height: 52px;\n }\n }\n .sm\\:static {\n @media (width >= 40rem) {\n position: static;\n }\n }\n .sm\\:w-fit {\n @media (width >= 40rem) {\n width: fit-content;\n }\n }\n .sm\\:max-w-lg {\n @media (width >= 40rem) {\n max-width: var(--container-lg);\n }\n }\n .sm\\:flex-row {\n @media (width >= 40rem) {\n flex-direction: row;\n }\n }\n .sm\\:justify-end {\n @media (width >= 40rem) {\n justify-content: flex-end;\n }\n }\n .sm\\:bg-transparent {\n @media (width >= 40rem) {\n background-color: transparent;\n }\n }\n .sm\\:px-0 {\n @media (width >= 40rem) {\n padding-inline: calc(var(--spacing) * 0);\n }\n }\n .sm\\:pb-0 {\n @media (width >= 40rem) {\n padding-bottom: calc(var(--spacing) * 0);\n }\n }\n .sm\\:text-left {\n @media (width >= 40rem) {\n text-align: left;\n }\n }\n .md\\:order-last {\n @media (width >= 48rem) {\n order: 9999;\n }\n }\n .md\\:order-none {\n @media (width >= 48rem) {\n order: 0;\n }\n }\n .md\\:col-span-2 {\n @media (width >= 48rem) {\n grid-column: span 2 / span 2;\n }\n }\n .md\\:col-span-3 {\n @media (width >= 48rem) {\n grid-column: span 3 / span 3;\n }\n }\n .md\\:col-span-4 {\n @media (width >= 48rem) {\n grid-column: span 4 / span 4;\n }\n }\n .md\\:block {\n @media (width >= 48rem) {\n display: block;\n }\n }\n .md\\:flex {\n @media (width >= 48rem) {\n display: flex;\n }\n }\n .md\\:grid {\n @media (width >= 48rem) {\n display: grid;\n }\n }\n .md\\:hidden {\n @media (width >= 48rem) {\n display: none;\n }\n }\n .md\\:max-w-\\[75\\%\\] {\n @media (width >= 48rem) {\n max-width: 75%;\n }\n }\n .md\\:grid-cols-2 {\n @media (width >= 48rem) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n }\n .md\\:grid-cols-3 {\n @media (width >= 48rem) {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n }\n .md\\:grid-cols-7 {\n @media (width >= 48rem) {\n grid-template-columns: repeat(7, minmax(0, 1fr));\n }\n }\n .md\\:gap-0 {\n @media (width >= 48rem) {\n gap: calc(var(--spacing) * 0);\n }\n }\n .md\\:px-8 {\n @media (width >= 48rem) {\n padding-inline: calc(var(--spacing) * 8);\n }\n }\n .md\\:py-12 {\n @media (width >= 48rem) {\n padding-block: calc(var(--spacing) * 12);\n }\n }\n .md\\:text-sm {\n @media (width >= 48rem) {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n }\n .dark\\:focus-visible\\:ring-destructive\\/40 {\n @media (prefers-color-scheme: dark) {\n &:focus-visible {\n --tw-ring-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 40%, transparent);\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(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 40%, transparent);\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(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n }\n }\n }\n }\n }\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:px-2 {\n & [cmdk-group-heading] {\n padding-inline: calc(var(--spacing) * 2);\n }\n }\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:py-1\\.5 {\n & [cmdk-group-heading] {\n padding-block: calc(var(--spacing) * 1.5);\n }\n }\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:text-xs {\n & [cmdk-group-heading] {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n }\n }\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:font-medium {\n & [cmdk-group-heading] {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n }\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:text-muted-foreground {\n & [cmdk-group-heading] {\n color: var(--muted-foreground);\n }\n }\n .\\[\\&_\\[cmdk-group\\]\\]\\:px-2 {\n & [cmdk-group] {\n padding-inline: calc(var(--spacing) * 2);\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);\n }\n }\n .\\[\\&_\\[cmdk-input-wrapper\\]_svg\\]\\:h-5 {\n & [cmdk-input-wrapper] svg {\n height: calc(var(--spacing) * 5);\n }\n }\n .\\[\\&_\\[cmdk-input-wrapper\\]_svg\\]\\:w-5 {\n & [cmdk-input-wrapper] svg {\n width: calc(var(--spacing) * 5);\n }\n }\n .\\[\\&_\\[cmdk-input\\]\\]\\:h-12 {\n & [cmdk-input] {\n height: calc(var(--spacing) * 12);\n }\n }\n .\\[\\&_\\[cmdk-item\\]\\]\\:px-2 {\n & [cmdk-item] {\n padding-inline: calc(var(--spacing) * 2);\n }\n }\n .\\[\\&_\\[cmdk-item\\]\\]\\:py-3 {\n & [cmdk-item] {\n padding-block: calc(var(--spacing) * 3);\n }\n }\n .\\[\\&_\\[cmdk-item\\]_svg\\]\\:h-5 {\n & [cmdk-item] svg {\n height: calc(var(--spacing) * 5);\n }\n }\n .\\[\\&_\\[cmdk-item\\]_svg\\]\\:w-5 {\n & [cmdk-item] svg {\n width: calc(var(--spacing) * 5);\n }\n }\n .\\[\\&_svg\\]\\:pointer-events-none {\n & svg {\n pointer-events: none;\n }\n }\n .\\[\\&_svg\\]\\:shrink-0 {\n & svg {\n flex-shrink: 0;\n }\n }\n .\\[\\&_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-4 {\n & svg:not([class*='size-']) {\n width: calc(var(--spacing) * 4);\n height: calc(var(--spacing) * 4);\n }\n }\n .\\[\\&_svg\\:not\\(\\[class\\*\\=\\'text-\\'\\]\\)\\]\\:text-muted-foreground {\n & svg:not([class*='text-']) {\n color: var(--muted-foreground);\n }\n }\n .data-\\[variant\\=destructive\\]\\:\\*\\:\\[svg\\]\\:\\!text-destructive {\n &[data-variant=\"destructive\"] {\n :is(& > *) {\n &:is(svg) {\n color: var(--destructive) !important;\n }\n }\n }\n }\n}\n@layer base {\n ::selection {\n background-color: var(--primary);\n color: var(--primary-foreground);\n }\n input:-webkit-autofill,\n input:-webkit-autofill:hover,\n input:-webkit-autofill:focus,\n input:-webkit-autofill:active {\n -webkit-box-shadow: 0 0 0 30px var(--muted) inset !important;\n -webkit-text-fill-color: var(--foreground) !important;\n }\n input:-moz-autofill,\n input:autofill {\n background-color: var(--muted);\n color: var(--foreground);\n }\n * {\n --tw-border-style: solid;\n border-style: solid;\n border-color: var(--border);\n outline-color: var(--ring);\n @supports (color: color-mix(in lab, red, red)) {\n outline-color: color-mix(in oklab, var(--ring) 50%, transparent);\n }\n }\n .checkout-embed {\n background-color: var(--background);\n font-family: var(--font-sans), Helvetica, Arial, apple-system, sans-serif;\n color: var(--foreground);\n }\n h2 {\n font-size: var(--text-2xl);\n line-height: var(--tw-leading, var(--text-2xl--line-height));\n --tw-font-weight: var(--font-weight-bold);\n font-weight: var(--font-weight-bold);\n --tw-tracking: var(--tracking-tight);\n letter-spacing: var(--tracking-tight);\n }\n p {\n --tw-tracking: var(--tracking-tight);\n letter-spacing: var(--tracking-tight);\n }\n}\n@layer utilities {\n .scrollbar-hidden {\n scrollbar-width: none;\n }\n .scrollbar-hidden::-webkit-scrollbar {\n display: none;\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-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@property --tw-ease {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-content {\n syntax: \"*\";\n initial-value: \"\";\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-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 --tw-ease: initial;\n --tw-content: \"\";\n }\n }\n}\n";
7550
+ var css_248z = "/*! tailwindcss v4.1.14 | MIT License | https://tailwindcss.com */\n@layer properties;\n@layer theme, base, components, utilities;\n@layer theme {\n :root, :host {\n --font-sans: var(--font-sans), Helvetica, Arial, apple-system, sans-serif;\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 --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);\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(--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 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 ::placeholder {\n opacity: 1;\n }\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\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 ::-webkit-calendar-picker-indicator {\n line-height: 1;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button, input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]), ::file-selector-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;\n }\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border-width: 0;\n }\n .absolute {\n position: absolute;\n }\n .fixed {\n position: fixed;\n }\n .relative {\n position: relative;\n }\n .inset-0 {\n inset: calc(var(--spacing) * 0);\n }\n .-top-2 {\n top: calc(var(--spacing) * -2);\n }\n .top-0 {\n top: calc(var(--spacing) * 0);\n }\n .top-0\\.5 {\n top: calc(var(--spacing) * 0.5);\n }\n .top-1\\/2 {\n top: calc(1/2 * 100%);\n }\n .top-4 {\n top: calc(var(--spacing) * 4);\n }\n .top-\\[50\\%\\] {\n top: 50%;\n }\n .top-full {\n top: 100%;\n }\n .-right-2 {\n right: calc(var(--spacing) * -2);\n }\n .right-0 {\n right: calc(var(--spacing) * 0);\n }\n .right-4 {\n right: calc(var(--spacing) * 4);\n }\n .bottom-0 {\n bottom: calc(var(--spacing) * 0);\n }\n .left-0 {\n left: calc(var(--spacing) * 0);\n }\n .left-1\\/2 {\n left: calc(1/2 * 100%);\n }\n .left-2 {\n left: calc(var(--spacing) * 2);\n }\n .left-\\[50\\%\\] {\n left: 50%;\n }\n .z-0 {\n z-index: 0;\n }\n .z-10 {\n z-index: 10;\n }\n .z-50 {\n z-index: 50;\n }\n .order-3 {\n order: 3;\n }\n .order-4 {\n order: 4;\n }\n .order-5 {\n order: 5;\n }\n .order-6 {\n order: 6;\n }\n .order-7 {\n order: 7;\n }\n .order-first {\n order: -9999;\n }\n .container {\n width: 100%;\n @media (width >= 40rem) {\n max-width: 40rem;\n }\n @media (width >= 48rem) {\n max-width: 48rem;\n }\n @media (width >= 64rem) {\n max-width: 64rem;\n }\n @media (width >= 80rem) {\n max-width: 80rem;\n }\n @media (width >= 96rem) {\n max-width: 96rem;\n }\n }\n .-m-0\\.5 {\n margin: calc(var(--spacing) * -0.5);\n }\n .m-0 {\n margin: calc(var(--spacing) * 0);\n }\n .-mx-1 {\n margin-inline: calc(var(--spacing) * -1);\n }\n .my-1 {\n margin-block: calc(var(--spacing) * 1);\n }\n .my-2 {\n margin-block: calc(var(--spacing) * 2);\n }\n .-mt-1 {\n margin-top: calc(var(--spacing) * -1);\n }\n .-mt-2 {\n margin-top: calc(var(--spacing) * -2);\n }\n .-mt-4 {\n margin-top: calc(var(--spacing) * -4);\n }\n .mt-1 {\n margin-top: calc(var(--spacing) * 1);\n }\n .mt-2 {\n margin-top: calc(var(--spacing) * 2);\n }\n .mt-8 {\n margin-top: calc(var(--spacing) * 8);\n }\n .-mb-0\\.5 {\n margin-bottom: calc(var(--spacing) * -0.5);\n }\n .-mb-2 {\n margin-bottom: calc(var(--spacing) * -2);\n }\n .mb-1 {\n margin-bottom: calc(var(--spacing) * 1);\n }\n .mb-2 {\n margin-bottom: calc(var(--spacing) * 2);\n }\n .mb-4 {\n margin-bottom: calc(var(--spacing) * 4);\n }\n .ml-4 {\n margin-left: calc(var(--spacing) * 4);\n }\n .ml-auto {\n margin-left: auto;\n }\n .line-clamp-1 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n }\n .block {\n display: block;\n }\n .flex {\n display: flex;\n }\n .grid {\n display: grid;\n }\n .hidden {\n display: none;\n }\n .inline-flex {\n display: inline-flex;\n }\n .aspect-square {\n aspect-ratio: 1 / 1;\n }\n .size-2 {\n width: calc(var(--spacing) * 2);\n height: calc(var(--spacing) * 2);\n }\n .size-3 {\n width: calc(var(--spacing) * 3);\n height: calc(var(--spacing) * 3);\n }\n .size-3\\.5 {\n width: calc(var(--spacing) * 3.5);\n height: calc(var(--spacing) * 3.5);\n }\n .size-4 {\n width: calc(var(--spacing) * 4);\n height: calc(var(--spacing) * 4);\n }\n .size-5 {\n width: calc(var(--spacing) * 5);\n height: calc(var(--spacing) * 5);\n }\n .size-9 {\n width: calc(var(--spacing) * 9);\n height: calc(var(--spacing) * 9);\n }\n .size-16 {\n width: calc(var(--spacing) * 16);\n height: calc(var(--spacing) * 16);\n }\n .h-0 {\n height: calc(var(--spacing) * 0);\n }\n .h-3\\.5 {\n height: calc(var(--spacing) * 3.5);\n }\n .h-4 {\n height: calc(var(--spacing) * 4);\n }\n .h-5 {\n height: calc(var(--spacing) * 5);\n }\n .h-6 {\n height: calc(var(--spacing) * 6);\n }\n .h-8 {\n height: calc(var(--spacing) * 8);\n }\n .h-9 {\n height: calc(var(--spacing) * 9);\n }\n .h-10 {\n height: calc(var(--spacing) * 10);\n }\n .h-12 {\n height: calc(var(--spacing) * 12);\n }\n .h-16 {\n height: calc(var(--spacing) * 16);\n }\n .h-\\[2px\\] {\n height: 2px;\n }\n .h-\\[18px\\] {\n height: 18px;\n }\n .h-\\[20px\\] {\n height: 20px;\n }\n .h-\\[44px\\] {\n height: 44px;\n }\n .h-auto {\n height: auto;\n }\n .h-auto\\! {\n height: auto !important;\n }\n .h-full {\n height: 100%;\n }\n .h-max {\n height: max-content;\n }\n .h-px {\n height: 1px;\n }\n .max-h-\\(--radix-dropdown-menu-content-available-height\\) {\n max-height: var(--radix-dropdown-menu-content-available-height);\n }\n .max-h-0 {\n max-height: calc(var(--spacing) * 0);\n }\n .max-h-60 {\n max-height: calc(var(--spacing) * 60);\n }\n .max-h-\\[300px\\] {\n max-height: 300px;\n }\n .min-h-full {\n min-height: 100%;\n }\n .w-0 {\n width: calc(var(--spacing) * 0);\n }\n .w-4 {\n width: calc(var(--spacing) * 4);\n }\n .w-6 {\n width: calc(var(--spacing) * 6);\n }\n .w-12 {\n width: calc(var(--spacing) * 12);\n }\n .w-16 {\n width: calc(var(--spacing) * 16);\n }\n .w-20 {\n width: calc(var(--spacing) * 20);\n }\n .w-24 {\n width: calc(var(--spacing) * 24);\n }\n .w-28 {\n width: calc(var(--spacing) * 28);\n }\n .w-32 {\n width: calc(var(--spacing) * 32);\n }\n .w-40 {\n width: calc(var(--spacing) * 40);\n }\n .w-72 {\n width: calc(var(--spacing) * 72);\n }\n .w-full {\n width: 100%;\n }\n .max-w-0 {\n max-width: calc(var(--spacing) * 0);\n }\n .max-w-\\[calc\\(100\\%-2rem\\)\\] {\n max-width: calc(100% - 2rem);\n }\n .min-w-0 {\n min-width: calc(var(--spacing) * 0);\n }\n .min-w-\\[8rem\\] {\n min-width: 8rem;\n }\n .flex-1 {\n flex: 1;\n }\n .shrink-0 {\n flex-shrink: 0;\n }\n .origin-\\(--radix-dropdown-menu-content-transform-origin\\) {\n transform-origin: var(--radix-dropdown-menu-content-transform-origin);\n }\n .origin-\\(--radix-popover-content-transform-origin\\) {\n transform-origin: var(--radix-popover-content-transform-origin);\n }\n .-translate-x-0 {\n --tw-translate-x: calc(var(--spacing) * -0);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .-translate-x-1\\/2 {\n --tw-translate-x: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .-translate-x-3 {\n --tw-translate-x: calc(var(--spacing) * -3);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-x-2 {\n --tw-translate-x: calc(var(--spacing) * 2);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-x-\\[-50\\%\\] {\n --tw-translate-x: -50%;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .-translate-y-1\\/2 {\n --tw-translate-y: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-y-\\[-50\\%\\] {\n --tw-translate-y: -50%;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .rotate-180 {\n rotate: 180deg;\n }\n .animate-pulse {\n animation: var(--animate-pulse);\n }\n .animate-spin {\n animation: var(--animate-spin);\n }\n .cursor-default {\n cursor: default;\n }\n .cursor-pointer {\n cursor: pointer;\n }\n .resize {\n resize: both;\n }\n .scroll-py-1 {\n scroll-padding-block: calc(var(--spacing) * 1);\n }\n .grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n .flex-col {\n flex-direction: column;\n }\n .flex-col-reverse {\n flex-direction: column-reverse;\n }\n .items-center {\n align-items: center;\n }\n .justify-between {\n justify-content: space-between;\n }\n .justify-center {\n justify-content: center;\n }\n .justify-end {\n justify-content: flex-end;\n }\n .gap-0 {\n gap: calc(var(--spacing) * 0);\n }\n .gap-0\\.5 {\n gap: calc(var(--spacing) * 0.5);\n }\n .gap-1 {\n gap: calc(var(--spacing) * 1);\n }\n .gap-1\\.5 {\n gap: calc(var(--spacing) * 1.5);\n }\n .gap-2 {\n gap: calc(var(--spacing) * 2);\n }\n .gap-3 {\n gap: calc(var(--spacing) * 3);\n }\n .gap-4 {\n gap: calc(var(--spacing) * 4);\n }\n .gap-5 {\n gap: calc(var(--spacing) * 5);\n }\n .gap-6 {\n gap: calc(var(--spacing) * 6);\n }\n .gap-\\[10px\\] {\n gap: 10px;\n }\n .space-y-2 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-4 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-5 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-6 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .overflow-hidden {\n overflow: hidden;\n }\n .overflow-x-hidden {\n overflow-x: hidden;\n }\n .overflow-y-auto {\n overflow-y: auto;\n }\n .rounded-\\[4px\\] {\n border-radius: 4px;\n }\n .rounded-full {\n border-radius: calc(infinity * 1px);\n }\n .rounded-lg {\n border-radius: var(--radius);\n }\n .rounded-md {\n border-radius: calc(var(--radius) - 2px);\n }\n .rounded-sm {\n border-radius: calc(var(--radius) - 4px);\n }\n .rounded-xs {\n border-radius: var(--radius-xs);\n }\n .border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .border-b {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n .border-border {\n border-color: var(--border);\n }\n .border-input {\n border-color: var(--input);\n }\n .border-primary {\n border-color: var(--primary);\n }\n .bg-accent {\n background-color: var(--accent);\n }\n .bg-background {\n background-color: var(--background);\n }\n .bg-black\\/50 {\n background-color: color-mix(in srgb, #000 50%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 50%, transparent);\n }\n }\n .bg-border {\n background-color: var(--border);\n }\n .bg-destructive {\n background-color: var(--destructive);\n }\n .bg-muted {\n background-color: var(--muted);\n }\n .bg-popover {\n background-color: var(--popover);\n }\n .bg-primary {\n background-color: var(--primary);\n }\n .bg-secondary {\n background-color: var(--secondary);\n }\n .bg-transparent {\n background-color: transparent;\n }\n .fill-current {\n fill: currentcolor;\n }\n .fill-primary {\n fill: var(--primary);\n }\n .object-cover {\n object-fit: cover;\n }\n .p-0 {\n padding: calc(var(--spacing) * 0);\n }\n .p-1 {\n padding: calc(var(--spacing) * 1);\n }\n .p-3 {\n padding: calc(var(--spacing) * 3);\n }\n .p-4 {\n padding: calc(var(--spacing) * 4);\n }\n .p-6 {\n padding: calc(var(--spacing) * 6);\n }\n .px-1 {\n padding-inline: calc(var(--spacing) * 1);\n }\n .px-2 {\n padding-inline: calc(var(--spacing) * 2);\n }\n .px-3 {\n padding-inline: calc(var(--spacing) * 3);\n }\n .px-4 {\n padding-inline: calc(var(--spacing) * 4);\n }\n .px-6 {\n padding-inline: calc(var(--spacing) * 6);\n }\n .py-1 {\n padding-block: calc(var(--spacing) * 1);\n }\n .py-1\\.5 {\n padding-block: calc(var(--spacing) * 1.5);\n }\n .py-2 {\n padding-block: calc(var(--spacing) * 2);\n }\n .py-3 {\n padding-block: calc(var(--spacing) * 3);\n }\n .py-4 {\n padding-block: calc(var(--spacing) * 4);\n }\n .py-6 {\n padding-block: calc(var(--spacing) * 6);\n }\n .pt-2 {\n padding-top: calc(var(--spacing) * 2);\n }\n .pt-4 {\n padding-top: calc(var(--spacing) * 4);\n }\n .pr-2 {\n padding-right: calc(var(--spacing) * 2);\n }\n .pb-1 {\n padding-bottom: calc(var(--spacing) * 1);\n }\n .pb-2 {\n padding-bottom: calc(var(--spacing) * 2);\n }\n .pb-4 {\n padding-bottom: calc(var(--spacing) * 4);\n }\n .pb-40 {\n padding-bottom: calc(var(--spacing) * 40);\n }\n .pl-8 {\n padding-left: calc(var(--spacing) * 8);\n }\n .text-center {\n text-align: center;\n }\n .text-left {\n text-align: left;\n }\n .text-right {\n text-align: right;\n }\n .text-base {\n font-size: var(--text-base);\n line-height: var(--tw-leading, var(--text-base--line-height));\n }\n .text-lg {\n font-size: var(--text-lg);\n line-height: var(--tw-leading, var(--text-lg--line-height));\n }\n .text-sm {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n .text-xs {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n }\n .text-\\[13px\\] {\n font-size: 13px;\n }\n .leading-none {\n --tw-leading: 1;\n line-height: 1;\n }\n .font-bold {\n --tw-font-weight: var(--font-weight-bold);\n font-weight: var(--font-weight-bold);\n }\n .font-medium {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n .font-semibold {\n --tw-font-weight: var(--font-weight-semibold);\n font-weight: var(--font-weight-semibold);\n }\n .tracking-tight {\n --tw-tracking: var(--tracking-tight);\n letter-spacing: var(--tracking-tight);\n }\n .tracking-widest {\n --tw-tracking: var(--tracking-widest);\n letter-spacing: var(--tracking-widest);\n }\n .text-ellipsis {\n text-overflow: ellipsis;\n }\n .whitespace-nowrap {\n white-space: nowrap;\n }\n .text-background {\n color: var(--background);\n }\n .text-current {\n color: currentcolor;\n }\n .text-destructive {\n color: var(--destructive);\n }\n .text-destructive-foreground {\n color: var(--destructive-foreground);\n }\n .text-foreground {\n color: var(--foreground);\n }\n .text-muted-foreground {\n color: var(--muted-foreground);\n }\n .text-popover-foreground {\n color: var(--popover-foreground);\n }\n .text-primary {\n color: var(--primary);\n }\n .text-primary-foreground {\n color: var(--primary-foreground);\n }\n .text-red-500 {\n color: var(--color-red-500);\n }\n .text-ring {\n color: var(--ring);\n }\n .text-secondary-foreground {\n color: var(--secondary-foreground);\n }\n .text-white {\n color: var(--color-white);\n }\n .line-through {\n text-decoration-line: line-through;\n }\n .underline {\n text-decoration-line: underline;\n }\n .underline-offset-4 {\n text-underline-offset: 4px;\n }\n .opacity-0 {\n opacity: 0%;\n }\n .opacity-50 {\n opacity: 50%;\n }\n .opacity-70 {\n opacity: 70%;\n }\n .opacity-100 {\n opacity: 100%;\n }\n .shadow {\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));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\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));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\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));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-xs {\n --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\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);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring-offset-background {\n --tw-ring-offset-color: var(--background);\n }\n .outline-hidden {\n --tw-outline-style: none;\n outline-style: none;\n @media (forced-colors: active) {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n }\n .outline {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\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, content-visibility, overlay, pointer-events;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-\\[color\\,box-shadow\\] {\n transition-property: color,box-shadow;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-colors {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-opacity {\n transition-property: opacity;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-shadow {\n transition-property: box-shadow;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-transform {\n transition-property: transform, translate, scale, rotate;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-none {\n transition-property: none;\n }\n .duration-200 {\n --tw-duration: 200ms;\n transition-duration: 200ms;\n }\n .ease-in-out {\n --tw-ease: var(--ease-in-out);\n transition-timing-function: var(--ease-in-out);\n }\n .outline-none {\n --tw-outline-style: none;\n outline-style: none;\n }\n .select-none {\n -webkit-user-select: none;\n user-select: none;\n }\n .duration-200 {\n animation-duration: 200ms;\n }\n .ease-in-out {\n animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n }\n .group-data-\\[disabled\\=true\\]\\:pointer-events-none {\n &:is(:where(.group)[data-disabled=\"true\"] *) {\n pointer-events: none;\n }\n }\n .group-data-\\[disabled\\=true\\]\\:opacity-50 {\n &:is(:where(.group)[data-disabled=\"true\"] *) {\n opacity: 50%;\n }\n }\n .peer-disabled\\:cursor-not-allowed {\n &:is(:where(.peer):disabled ~ *) {\n cursor: not-allowed;\n }\n }\n .peer-disabled\\:opacity-50 {\n &:is(:where(.peer):disabled ~ *) {\n opacity: 50%;\n }\n }\n .file\\:inline-flex {\n &::file-selector-button {\n display: inline-flex;\n }\n }\n .file\\:h-7 {\n &::file-selector-button {\n height: calc(var(--spacing) * 7);\n }\n }\n .file\\:border-0 {\n &::file-selector-button {\n border-style: var(--tw-border-style);\n border-width: 0px;\n }\n }\n .file\\:bg-transparent {\n &::file-selector-button {\n background-color: transparent;\n }\n }\n .file\\:text-sm {\n &::file-selector-button {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n }\n .file\\:font-medium {\n &::file-selector-button {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n }\n .file\\:text-foreground {\n &::file-selector-button {\n color: var(--foreground);\n }\n }\n .placeholder\\:text-muted-foreground {\n &::placeholder {\n color: var(--muted-foreground);\n }\n }\n .after\\:absolute {\n &::after {\n content: var(--tw-content);\n position: absolute;\n }\n }\n .after\\:top-1\\/2 {\n &::after {\n content: var(--tw-content);\n top: calc(1/2 * 100%);\n }\n }\n .after\\:right-0 {\n &::after {\n content: var(--tw-content);\n right: calc(var(--spacing) * 0);\n }\n }\n .after\\:left-0 {\n &::after {\n content: var(--tw-content);\n left: calc(var(--spacing) * 0);\n }\n }\n .after\\:z-0 {\n &::after {\n content: var(--tw-content);\n z-index: 0;\n }\n }\n .after\\:h-px {\n &::after {\n content: var(--tw-content);\n height: 1px;\n }\n }\n .after\\:-translate-y-1\\/2 {\n &::after {\n content: var(--tw-content);\n --tw-translate-y: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .after\\:bg-background {\n &::after {\n content: var(--tw-content);\n background-color: var(--background);\n }\n }\n .after\\:content-\\[\\'\\'\\] {\n &::after {\n --tw-content: '';\n content: var(--tw-content);\n }\n }\n .last\\:border-b-0 {\n &:last-child {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 0px;\n }\n }\n .hover\\:bg-accent {\n &:hover {\n @media (hover: hover) {\n background-color: var(--accent);\n }\n }\n }\n .hover\\:bg-destructive\\/90 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--destructive) 90%, transparent);\n }\n }\n }\n }\n .hover\\:bg-muted {\n &:hover {\n @media (hover: hover) {\n background-color: var(--muted);\n }\n }\n }\n .hover\\:bg-primary\\/90 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--primary) 90%, transparent);\n }\n }\n }\n }\n .hover\\:bg-secondary\\/80 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--secondary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--secondary) 80%, transparent);\n }\n }\n }\n }\n .hover\\:text-accent-foreground {\n &:hover {\n @media (hover: hover) {\n color: var(--accent-foreground);\n }\n }\n }\n .hover\\:text-foreground {\n &:hover {\n @media (hover: hover) {\n color: var(--foreground);\n }\n }\n }\n .hover\\:text-muted-foreground {\n &:hover {\n @media (hover: hover) {\n color: var(--muted-foreground);\n }\n }\n }\n .hover\\:underline {\n &:hover {\n @media (hover: hover) {\n text-decoration-line: underline;\n }\n }\n }\n .hover\\:opacity-100 {\n &:hover {\n @media (hover: hover) {\n opacity: 100%;\n }\n }\n }\n .focus\\:bg-accent {\n &:focus {\n background-color: var(--accent);\n }\n }\n .focus\\:text-accent-foreground {\n &:focus {\n color: var(--accent-foreground);\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);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus\\:ring-ring {\n &:focus {\n --tw-ring-color: var(--ring);\n }\n }\n .focus\\:ring-offset-2 {\n &:focus {\n --tw-ring-offset-width: 2px;\n --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n }\n }\n .focus\\:outline-hidden {\n &:focus {\n --tw-outline-style: none;\n outline-style: none;\n @media (forced-colors: active) {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n }\n }\n .focus-visible\\:border-ring {\n &:focus-visible {\n border-color: var(--ring);\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);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus-visible\\:ring-destructive\\/20 {\n &:focus-visible {\n --tw-ring-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n }\n }\n }\n .focus-visible\\:ring-ring\\/50 {\n &:focus-visible {\n --tw-ring-color: var(--ring);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--ring) 50%, transparent);\n }\n }\n }\n .disabled\\:pointer-events-none {\n &:disabled {\n pointer-events: none;\n }\n }\n .disabled\\:cursor-not-allowed {\n &:disabled {\n cursor: not-allowed;\n }\n }\n .disabled\\:opacity-50 {\n &:disabled {\n opacity: 50%;\n }\n }\n .has-\\[\\>svg\\]\\:px-2\\.5 {\n &:has(>svg) {\n padding-inline: calc(var(--spacing) * 2.5);\n }\n }\n .has-\\[\\>svg\\]\\:px-3 {\n &:has(>svg) {\n padding-inline: calc(var(--spacing) * 3);\n }\n }\n .has-\\[\\>svg\\]\\:px-4 {\n &:has(>svg) {\n padding-inline: calc(var(--spacing) * 4);\n }\n }\n .aria-invalid\\:border-destructive {\n &[aria-invalid=\"true\"] {\n border-color: var(--destructive);\n }\n }\n .aria-invalid\\:ring-destructive\\/20 {\n &[aria-invalid=\"true\"] {\n --tw-ring-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n }\n }\n }\n .data-\\[disabled\\]\\:pointer-events-none {\n &[data-disabled] {\n pointer-events: none;\n }\n }\n .data-\\[disabled\\]\\:opacity-50 {\n &[data-disabled] {\n opacity: 50%;\n }\n }\n .data-\\[disabled\\=true\\]\\:pointer-events-none {\n &[data-disabled=\"true\"] {\n pointer-events: none;\n }\n }\n .data-\\[disabled\\=true\\]\\:opacity-50 {\n &[data-disabled=\"true\"] {\n opacity: 50%;\n }\n }\n .data-\\[error\\=true\\]\\:text-destructive-foreground {\n &[data-error=\"true\"] {\n color: var(--destructive-foreground);\n }\n }\n .data-\\[inset\\]\\:pl-8 {\n &[data-inset] {\n padding-left: calc(var(--spacing) * 8);\n }\n }\n .data-\\[selected\\=true\\]\\:bg-accent {\n &[data-selected=\"true\"] {\n background-color: var(--accent);\n }\n }\n .data-\\[selected\\=true\\]\\:text-accent-foreground {\n &[data-selected=\"true\"] {\n color: var(--accent-foreground);\n }\n }\n .data-\\[side\\=bottom\\]\\:slide-in-from-top-2 {\n &[data-side=\"bottom\"] {\n --tw-enter-translate-y: -0.5rem;\n }\n }\n .data-\\[side\\=left\\]\\:slide-in-from-right-2 {\n &[data-side=\"left\"] {\n --tw-enter-translate-x: 0.5rem;\n }\n }\n .data-\\[side\\=right\\]\\:slide-in-from-left-2 {\n &[data-side=\"right\"] {\n --tw-enter-translate-x: -0.5rem;\n }\n }\n .data-\\[side\\=top\\]\\:slide-in-from-bottom-2 {\n &[data-side=\"top\"] {\n --tw-enter-translate-y: 0.5rem;\n }\n }\n .\\*\\*\\:data-\\[slot\\=command-input-wrapper\\]\\:h-12 {\n :is(& *) {\n &[data-slot=\"command-input-wrapper\"] {\n height: calc(var(--spacing) * 12);\n }\n }\n }\n .data-\\[state\\=checked\\]\\:border-primary {\n &[data-state=\"checked\"] {\n border-color: var(--primary);\n }\n }\n .data-\\[state\\=checked\\]\\:bg-primary {\n &[data-state=\"checked\"] {\n background-color: var(--primary);\n }\n }\n .data-\\[state\\=checked\\]\\:text-primary-foreground {\n &[data-state=\"checked\"] {\n color: var(--primary-foreground);\n }\n }\n .data-\\[state\\=closed\\]\\:animate-out {\n &[data-state=\"closed\"] {\n animation-name: exit;\n animation-duration: 150ms;\n --tw-exit-opacity: initial;\n --tw-exit-scale: initial;\n --tw-exit-rotate: initial;\n --tw-exit-translate-x: initial;\n --tw-exit-translate-y: initial;\n }\n }\n .data-\\[state\\=closed\\]\\:fade-out-0 {\n &[data-state=\"closed\"] {\n --tw-exit-opacity: 0;\n }\n }\n .data-\\[state\\=closed\\]\\:zoom-out-95 {\n &[data-state=\"closed\"] {\n --tw-exit-scale: .95;\n }\n }\n .data-\\[state\\=open\\]\\:bg-accent {\n &[data-state=\"open\"] {\n background-color: var(--accent);\n }\n }\n .data-\\[state\\=open\\]\\:text-accent-foreground {\n &[data-state=\"open\"] {\n color: var(--accent-foreground);\n }\n }\n .data-\\[state\\=open\\]\\:text-muted-foreground {\n &[data-state=\"open\"] {\n color: var(--muted-foreground);\n }\n }\n .data-\\[state\\=open\\]\\:animate-in {\n &[data-state=\"open\"] {\n animation-name: enter;\n animation-duration: 150ms;\n --tw-enter-opacity: initial;\n --tw-enter-scale: initial;\n --tw-enter-rotate: initial;\n --tw-enter-translate-x: initial;\n --tw-enter-translate-y: initial;\n }\n }\n .data-\\[state\\=open\\]\\:fade-in-0 {\n &[data-state=\"open\"] {\n --tw-enter-opacity: 0;\n }\n }\n .data-\\[state\\=open\\]\\:zoom-in-95 {\n &[data-state=\"open\"] {\n --tw-enter-scale: .95;\n }\n }\n .data-\\[variant\\=destructive\\]\\:text-destructive {\n &[data-variant=\"destructive\"] {\n color: var(--destructive);\n }\n }\n .data-\\[variant\\=destructive\\]\\:focus\\:bg-destructive\\/10 {\n &[data-variant=\"destructive\"] {\n &:focus {\n background-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--destructive) 10%, transparent);\n }\n }\n }\n }\n .data-\\[variant\\=destructive\\]\\:focus\\:text-destructive {\n &[data-variant=\"destructive\"] {\n &:focus {\n color: var(--destructive);\n }\n }\n }\n .max-md\\:cursor-pointer {\n @media (width < 48rem) {\n cursor: pointer;\n }\n }\n .max-sm\\:hidden {\n @media (width < 40rem) {\n display: none;\n }\n }\n .max-sm\\:h-\\[52px\\] {\n @media (width < 40rem) {\n height: 52px;\n }\n }\n .sm\\:static {\n @media (width >= 40rem) {\n position: static;\n }\n }\n .sm\\:w-fit {\n @media (width >= 40rem) {\n width: fit-content;\n }\n }\n .sm\\:max-w-lg {\n @media (width >= 40rem) {\n max-width: var(--container-lg);\n }\n }\n .sm\\:flex-row {\n @media (width >= 40rem) {\n flex-direction: row;\n }\n }\n .sm\\:justify-end {\n @media (width >= 40rem) {\n justify-content: flex-end;\n }\n }\n .sm\\:bg-transparent {\n @media (width >= 40rem) {\n background-color: transparent;\n }\n }\n .sm\\:px-0 {\n @media (width >= 40rem) {\n padding-inline: calc(var(--spacing) * 0);\n }\n }\n .sm\\:pb-0 {\n @media (width >= 40rem) {\n padding-bottom: calc(var(--spacing) * 0);\n }\n }\n .sm\\:text-left {\n @media (width >= 40rem) {\n text-align: left;\n }\n }\n .md\\:order-last {\n @media (width >= 48rem) {\n order: 9999;\n }\n }\n .md\\:order-none {\n @media (width >= 48rem) {\n order: 0;\n }\n }\n .md\\:col-span-2 {\n @media (width >= 48rem) {\n grid-column: span 2 / span 2;\n }\n }\n .md\\:col-span-3 {\n @media (width >= 48rem) {\n grid-column: span 3 / span 3;\n }\n }\n .md\\:col-span-4 {\n @media (width >= 48rem) {\n grid-column: span 4 / span 4;\n }\n }\n .md\\:block {\n @media (width >= 48rem) {\n display: block;\n }\n }\n .md\\:flex {\n @media (width >= 48rem) {\n display: flex;\n }\n }\n .md\\:grid {\n @media (width >= 48rem) {\n display: grid;\n }\n }\n .md\\:hidden {\n @media (width >= 48rem) {\n display: none;\n }\n }\n .md\\:max-w-\\[75\\%\\] {\n @media (width >= 48rem) {\n max-width: 75%;\n }\n }\n .md\\:grid-cols-2 {\n @media (width >= 48rem) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n }\n .md\\:grid-cols-3 {\n @media (width >= 48rem) {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n }\n .md\\:grid-cols-7 {\n @media (width >= 48rem) {\n grid-template-columns: repeat(7, minmax(0, 1fr));\n }\n }\n .md\\:gap-0 {\n @media (width >= 48rem) {\n gap: calc(var(--spacing) * 0);\n }\n }\n .md\\:px-8 {\n @media (width >= 48rem) {\n padding-inline: calc(var(--spacing) * 8);\n }\n }\n .md\\:py-12 {\n @media (width >= 48rem) {\n padding-block: calc(var(--spacing) * 12);\n }\n }\n .md\\:text-sm {\n @media (width >= 48rem) {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n }\n .dark\\:focus-visible\\:ring-destructive\\/40 {\n @media (prefers-color-scheme: dark) {\n &:focus-visible {\n --tw-ring-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 40%, transparent);\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(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 40%, transparent);\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(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n }\n }\n }\n }\n }\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:px-2 {\n & [cmdk-group-heading] {\n padding-inline: calc(var(--spacing) * 2);\n }\n }\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:py-1\\.5 {\n & [cmdk-group-heading] {\n padding-block: calc(var(--spacing) * 1.5);\n }\n }\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:text-xs {\n & [cmdk-group-heading] {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n }\n }\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:font-medium {\n & [cmdk-group-heading] {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n }\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:text-muted-foreground {\n & [cmdk-group-heading] {\n color: var(--muted-foreground);\n }\n }\n .\\[\\&_\\[cmdk-group\\]\\]\\:px-2 {\n & [cmdk-group] {\n padding-inline: calc(var(--spacing) * 2);\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);\n }\n }\n .\\[\\&_\\[cmdk-input-wrapper\\]_svg\\]\\:h-5 {\n & [cmdk-input-wrapper] svg {\n height: calc(var(--spacing) * 5);\n }\n }\n .\\[\\&_\\[cmdk-input-wrapper\\]_svg\\]\\:w-5 {\n & [cmdk-input-wrapper] svg {\n width: calc(var(--spacing) * 5);\n }\n }\n .\\[\\&_\\[cmdk-input\\]\\]\\:h-12 {\n & [cmdk-input] {\n height: calc(var(--spacing) * 12);\n }\n }\n .\\[\\&_\\[cmdk-item\\]\\]\\:px-2 {\n & [cmdk-item] {\n padding-inline: calc(var(--spacing) * 2);\n }\n }\n .\\[\\&_\\[cmdk-item\\]\\]\\:py-3 {\n & [cmdk-item] {\n padding-block: calc(var(--spacing) * 3);\n }\n }\n .\\[\\&_\\[cmdk-item\\]_svg\\]\\:h-5 {\n & [cmdk-item] svg {\n height: calc(var(--spacing) * 5);\n }\n }\n .\\[\\&_\\[cmdk-item\\]_svg\\]\\:w-5 {\n & [cmdk-item] svg {\n width: calc(var(--spacing) * 5);\n }\n }\n .\\[\\&_svg\\]\\:pointer-events-none {\n & svg {\n pointer-events: none;\n }\n }\n .\\[\\&_svg\\]\\:shrink-0 {\n & svg {\n flex-shrink: 0;\n }\n }\n .\\[\\&_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-4 {\n & svg:not([class*='size-']) {\n width: calc(var(--spacing) * 4);\n height: calc(var(--spacing) * 4);\n }\n }\n .\\[\\&_svg\\:not\\(\\[class\\*\\=\\'text-\\'\\]\\)\\]\\:text-muted-foreground {\n & svg:not([class*='text-']) {\n color: var(--muted-foreground);\n }\n }\n .data-\\[variant\\=destructive\\]\\:\\*\\:\\[svg\\]\\:\\!text-destructive {\n &[data-variant=\"destructive\"] {\n :is(& > *) {\n &:is(svg) {\n color: var(--destructive) !important;\n }\n }\n }\n }\n}\n@layer base {\n ::selection {\n background-color: var(--primary);\n color: var(--primary-foreground);\n }\n input:-webkit-autofill,\n input:-webkit-autofill:hover,\n input:-webkit-autofill:focus,\n input:-webkit-autofill:active {\n -webkit-box-shadow: 0 0 0 30px var(--muted) inset !important;\n -webkit-text-fill-color: var(--foreground) !important;\n }\n input:-moz-autofill,\n input:autofill {\n background-color: var(--muted);\n color: var(--foreground);\n }\n * {\n --tw-border-style: solid;\n border-style: solid;\n border-color: var(--border);\n outline-color: var(--ring);\n @supports (color: color-mix(in lab, red, red)) {\n outline-color: color-mix(in oklab, var(--ring) 50%, transparent);\n }\n }\n .checkout-embed {\n background-color: var(--background);\n font-family: var(--font-sans), Helvetica, Arial, apple-system, sans-serif;\n color: var(--foreground);\n }\n h2 {\n font-size: var(--text-2xl);\n line-height: var(--tw-leading, var(--text-2xl--line-height));\n --tw-font-weight: var(--font-weight-bold);\n font-weight: var(--font-weight-bold);\n --tw-tracking: var(--tracking-tight);\n letter-spacing: var(--tracking-tight);\n }\n p {\n --tw-tracking: var(--tracking-tight);\n letter-spacing: var(--tracking-tight);\n }\n}\n@layer utilities {\n .scrollbar-hidden {\n scrollbar-width: none;\n }\n .scrollbar-hidden::-webkit-scrollbar {\n display: none;\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-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@property --tw-ease {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-content {\n syntax: \"*\";\n initial-value: \"\";\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-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 --tw-ease: initial;\n --tw-content: \"\";\n }\n }\n}\n";
7573
7551
 
7574
7552
  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__namespace.createContext(void 0),U$1={setTheme:e=>{},themes:[]},z=()=>{var e;return (e=React__namespace.useContext(x))!=null?e:U$1};React__namespace.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__namespace.createElement("script",{...w,suppressHydrationWarning:true,nonce:typeof window=="undefined"?d:"",dangerouslySetInnerHTML:{__html:`(${M$1.toString()})(${p})`}})});
7575
7553
 
@@ -17264,14 +17242,18 @@ var ZodFirstPartyTypeKind;
17264
17242
  const stringType = ZodString.create;
17265
17243
  const numberType = ZodNumber.create;
17266
17244
  const booleanType = ZodBoolean.create;
17245
+ const dateType = ZodDate.create;
17246
+ const nullType = ZodNull.create;
17247
+ const anyType = ZodAny.create;
17267
17248
  ZodNever.create;
17268
- ZodArray.create;
17249
+ const arrayType = ZodArray.create;
17269
17250
  const objectType = ZodObject.create;
17270
- ZodUnion.create;
17251
+ const unionType = ZodUnion.create;
17271
17252
  ZodIntersection.create;
17272
17253
  ZodTuple.create;
17273
17254
  const recordType = ZodRecord.create;
17274
- ZodEnum.create;
17255
+ const lazyType = ZodLazy.create;
17256
+ const enumType = ZodEnum.create;
17275
17257
  ZodPromise.create;
17276
17258
  const optionalType = ZodOptional.create;
17277
17259
  ZodNullable.create;
@@ -17284,13 +17266,14 @@ const customerSchema = objectType({
17284
17266
  lastName: stringType().min(1, "required_error"),
17285
17267
  address: objectType({
17286
17268
  line1: stringType().min(1, "required_error"),
17287
- line2: stringType().optional(),
17269
+ line2: stringType().nullable(),
17288
17270
  city: stringType().min(1, "required_error"),
17289
- province: stringType().optional(),
17290
- provinceCode: stringType().optional(),
17271
+ province: stringType().nullable(),
17272
+ provinceCode: stringType().nullable(),
17291
17273
  zipCode: stringType().min(5, "invalid_zipCode"),
17292
17274
  country: stringType().min(1, "required_error"),
17293
17275
  countryCode: stringType().min(1, "required_error"),
17276
+ company: stringType().nullable(),
17294
17277
  }),
17295
17278
  phone: stringType().regex(phoneRegex, "invalid_phone"),
17296
17279
  isEmailSubscribed: booleanType().optional(),
@@ -17874,6 +17857,7 @@ function useController(props) {
17874
17857
  exact: true,
17875
17858
  });
17876
17859
  const _props = React.useRef(props);
17860
+ const _previousNameRef = React.useRef(undefined);
17877
17861
  const _registerProps = React.useRef(control.register(name, {
17878
17862
  ...props.rules,
17879
17863
  value,
@@ -17939,6 +17923,10 @@ function useController(props) {
17939
17923
  }), [name, disabled, formState.disabled, onChange, onBlur, ref, value]);
17940
17924
  React.useEffect(() => {
17941
17925
  const _shouldUnregisterField = control._options.shouldUnregister || shouldUnregister;
17926
+ const previousName = _previousNameRef.current;
17927
+ if (previousName && previousName !== name && !isArrayField) {
17928
+ control.unregister(previousName);
17929
+ }
17942
17930
  control.register(name, {
17943
17931
  ..._props.current.rules,
17944
17932
  ...(isBoolean(_props.current.disabled)
@@ -17960,6 +17948,7 @@ function useController(props) {
17960
17948
  }
17961
17949
  }
17962
17950
  !isArrayField && control.register(name);
17951
+ _previousNameRef.current = name;
17963
17952
  return () => {
17964
17953
  (isArrayField
17965
17954
  ? _shouldUnregisterField && !control._state.action
@@ -18065,6 +18054,26 @@ var createSubject = () => {
18065
18054
  };
18066
18055
  };
18067
18056
 
18057
+ function extractFormValues(fieldsState, formValues) {
18058
+ const values = {};
18059
+ for (const key in fieldsState) {
18060
+ if (fieldsState.hasOwnProperty(key)) {
18061
+ const fieldState = fieldsState[key];
18062
+ const fieldValue = formValues[key];
18063
+ if (fieldState && isObject(fieldState) && fieldValue) {
18064
+ const nestedFieldsState = extractFormValues(fieldState, fieldValue);
18065
+ if (isObject(nestedFieldsState)) {
18066
+ values[key] = nestedFieldsState;
18067
+ }
18068
+ }
18069
+ else if (fieldsState[key]) {
18070
+ values[key] = fieldValue;
18071
+ }
18072
+ }
18073
+ }
18074
+ return values;
18075
+ }
18076
+
18068
18077
  var isEmptyObject = (value) => isObject(value) && !Object.keys(value).length;
18069
18078
 
18070
18079
  var isFileInput = (element) => element.type === 'file';
@@ -18133,46 +18142,40 @@ var objectHasFunction = (data) => {
18133
18142
  return false;
18134
18143
  };
18135
18144
 
18145
+ function isTraversable(value) {
18146
+ return Array.isArray(value) || (isObject(value) && !objectHasFunction(value));
18147
+ }
18136
18148
  function markFieldsDirty(data, fields = {}) {
18137
- const isParentNodeArray = Array.isArray(data);
18138
- if (isObject(data) || isParentNodeArray) {
18139
- for (const key in data) {
18140
- if (Array.isArray(data[key]) ||
18141
- (isObject(data[key]) && !objectHasFunction(data[key]))) {
18142
- fields[key] = Array.isArray(data[key]) ? [] : {};
18143
- markFieldsDirty(data[key], fields[key]);
18144
- }
18145
- else if (!isNullOrUndefined(data[key])) {
18146
- fields[key] = true;
18147
- }
18149
+ for (const key in data) {
18150
+ if (isTraversable(data[key])) {
18151
+ fields[key] = Array.isArray(data[key]) ? [] : {};
18152
+ markFieldsDirty(data[key], fields[key]);
18153
+ }
18154
+ else if (!isNullOrUndefined(data[key])) {
18155
+ fields[key] = true;
18148
18156
  }
18149
18157
  }
18150
18158
  return fields;
18151
18159
  }
18152
- function getDirtyFieldsFromDefaultValues(data, formValues, dirtyFieldsFromValues) {
18153
- const isParentNodeArray = Array.isArray(data);
18154
- if (isObject(data) || isParentNodeArray) {
18155
- for (const key in data) {
18156
- if (Array.isArray(data[key]) ||
18157
- (isObject(data[key]) && !objectHasFunction(data[key]))) {
18158
- if (isUndefined(formValues) ||
18159
- isPrimitive(dirtyFieldsFromValues[key])) {
18160
- dirtyFieldsFromValues[key] = Array.isArray(data[key])
18161
- ? markFieldsDirty(data[key], [])
18162
- : { ...markFieldsDirty(data[key]) };
18163
- }
18164
- else {
18165
- getDirtyFieldsFromDefaultValues(data[key], isNullOrUndefined(formValues) ? {} : formValues[key], dirtyFieldsFromValues[key]);
18166
- }
18160
+ function getDirtyFields(data, formValues, dirtyFieldsFromValues) {
18161
+ if (!dirtyFieldsFromValues) {
18162
+ dirtyFieldsFromValues = markFieldsDirty(formValues);
18163
+ }
18164
+ for (const key in data) {
18165
+ if (isTraversable(data[key])) {
18166
+ if (isUndefined(formValues) || isPrimitive(dirtyFieldsFromValues[key])) {
18167
+ dirtyFieldsFromValues[key] = markFieldsDirty(data[key], Array.isArray(data[key]) ? [] : {});
18167
18168
  }
18168
18169
  else {
18169
- dirtyFieldsFromValues[key] = !deepEqual$1(data[key], formValues[key]);
18170
+ getDirtyFields(data[key], isNullOrUndefined(formValues) ? {} : formValues[key], dirtyFieldsFromValues[key]);
18170
18171
  }
18171
18172
  }
18173
+ else {
18174
+ dirtyFieldsFromValues[key] = !deepEqual$1(data[key], formValues[key]);
18175
+ }
18172
18176
  }
18173
18177
  return dirtyFieldsFromValues;
18174
18178
  }
18175
- var getDirtyFields = (defaultValues, formValues) => getDirtyFieldsFromDefaultValues(defaultValues, formValues, markFieldsDirty(formValues));
18176
18179
 
18177
18180
  const defaultResult = {
18178
18181
  value: false,
@@ -18406,15 +18409,13 @@ var updateFieldArrayRootError = (errors, error, name) => {
18406
18409
  return errors;
18407
18410
  };
18408
18411
 
18409
- var isMessage = (value) => isString(value);
18410
-
18411
18412
  function getValidateError(result, ref, type = 'validate') {
18412
- if (isMessage(result) ||
18413
- (Array.isArray(result) && result.every(isMessage)) ||
18413
+ if (isString(result) ||
18414
+ (Array.isArray(result) && result.every(isString)) ||
18414
18415
  (isBoolean(result) && !result)) {
18415
18416
  return {
18416
18417
  type,
18417
- message: isMessage(result) ? result : '',
18418
+ message: isString(result) ? result : '',
18418
18419
  ref,
18419
18420
  };
18420
18421
  }
@@ -18467,7 +18468,7 @@ var validateField = async (field, disabledFieldNames, formValues, validateAllFie
18467
18468
  (isBoolean(inputValue) && !inputValue) ||
18468
18469
  (isCheckBox && !getCheckboxValue(refs).isValid) ||
18469
18470
  (isRadio && !getRadioValue(refs).isValid))) {
18470
- const { value, message } = isMessage(required)
18471
+ const { value, message } = isString(required)
18471
18472
  ? { value: !!required, message: required }
18472
18473
  : getValueAndMessage(required);
18473
18474
  if (value) {
@@ -18873,11 +18874,11 @@ function createFormControl(props = {}) {
18873
18874
  const isFieldArrayRoot = _names.array.has(_f.name);
18874
18875
  const isPromiseFunction = field._f && hasPromiseValidation(field._f);
18875
18876
  if (isPromiseFunction && _proxyFormState.validatingFields) {
18876
- _updateIsValidating([name], true);
18877
+ _updateIsValidating([_f.name], true);
18877
18878
  }
18878
18879
  const fieldError = await validateField(field, _names.disabled, _formValues, shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation && !shouldOnlyCheckValid, isFieldArrayRoot);
18879
18880
  if (isPromiseFunction && _proxyFormState.validatingFields) {
18880
- _updateIsValidating([name]);
18881
+ _updateIsValidating([_f.name]);
18881
18882
  }
18882
18883
  if (fieldError[_f.name]) {
18883
18884
  context.valid = false;
@@ -19110,6 +19111,7 @@ function createFormControl(props = {}) {
19110
19111
  }
19111
19112
  if (isFieldValueUpdated) {
19112
19113
  field._f.deps &&
19114
+ (!Array.isArray(field._f.deps) || field._f.deps.length > 0) &&
19113
19115
  trigger(field._f.deps);
19114
19116
  shouldRenderByError(name, isValid, error, fieldState);
19115
19117
  }
@@ -19157,10 +19159,13 @@ function createFormControl(props = {}) {
19157
19159
  iterateFieldsByAction(_fields, _focusInput, name ? fieldNames : _names.mount);
19158
19160
  return validationResult;
19159
19161
  };
19160
- const getValues = (fieldNames) => {
19161
- const values = {
19162
+ const getValues = (fieldNames, config) => {
19163
+ let values = {
19162
19164
  ...(_state.mount ? _formValues : _defaultValues),
19163
19165
  };
19166
+ if (config) {
19167
+ values = extractFormValues(config.dirtyFields ? _formState.dirtyFields : _formState.touchedFields, values);
19168
+ }
19164
19169
  return isUndefined(fieldNames)
19165
19170
  ? values
19166
19171
  : isString(fieldNames)
@@ -24560,7 +24565,7 @@ var hideOthers = function (originalTarget, parentNode, markerName) {
24560
24565
  };
24561
24566
 
24562
24567
  var DIALOG_NAME = "Dialog";
24563
- var [createDialogContext, createDialogScope] = createContextScope(DIALOG_NAME);
24568
+ var [createDialogContext] = createContextScope(DIALOG_NAME);
24564
24569
  var [DialogProvider, useDialogContext] = createDialogContext(DIALOG_NAME);
24565
24570
  var Dialog = (props) => {
24566
24571
  const {
@@ -27608,7 +27613,7 @@ var Content = PopperContent;
27608
27613
  var Arrow = PopperArrow;
27609
27614
 
27610
27615
  var POPOVER_NAME = "Popover";
27611
- var [createPopoverContext, createPopoverScope] = createContextScope(POPOVER_NAME, [
27616
+ var [createPopoverContext] = createContextScope(POPOVER_NAME, [
27612
27617
  createPopperScope
27613
27618
  ]);
27614
27619
  var usePopperScope = createPopperScope();
@@ -40245,12 +40250,12 @@ function requireReactStripe_umd () {
40245
40250
 
40246
40251
  stripe._registerWrapper({
40247
40252
  name: 'react-stripe-js',
40248
- version: "3.9.2"
40253
+ version: "3.10.0"
40249
40254
  });
40250
40255
 
40251
40256
  stripe.registerAppInfo({
40252
40257
  name: 'react-stripe-js',
40253
- version: "3.9.2",
40258
+ version: "3.10.0",
40254
40259
  url: 'https://stripe.com/docs/stripe-js/react'
40255
40260
  });
40256
40261
  };
@@ -40602,7 +40607,9 @@ function requireReactStripe_umd () {
40602
40607
  onConfirm = _ref.onConfirm,
40603
40608
  onCancel = _ref.onCancel,
40604
40609
  onShippingAddressChange = _ref.onShippingAddressChange,
40605
- onShippingRateChange = _ref.onShippingRateChange;
40610
+ onShippingRateChange = _ref.onShippingRateChange,
40611
+ onSavedPaymentMethodRemove = _ref.onSavedPaymentMethodRemove,
40612
+ onSavedPaymentMethodUpdate = _ref.onSavedPaymentMethodUpdate;
40606
40613
  var ctx = useElementsOrCheckoutSdkContextWithUseCase("mounts <".concat(displayName, ">"));
40607
40614
  var elements = 'elements' in ctx ? ctx.elements : null;
40608
40615
  var checkoutSdk = 'checkoutSdk' in ctx ? ctx.checkoutSdk : null;
@@ -40628,6 +40635,8 @@ function requireReactStripe_umd () {
40628
40635
  useAttachEvent(element, 'cancel', onCancel);
40629
40636
  useAttachEvent(element, 'shippingaddresschange', onShippingAddressChange);
40630
40637
  useAttachEvent(element, 'shippingratechange', onShippingRateChange);
40638
+ useAttachEvent(element, 'savedpaymentmethodremove', onSavedPaymentMethodRemove);
40639
+ useAttachEvent(element, 'savedpaymentmethodupdate', onSavedPaymentMethodUpdate);
40631
40640
  useAttachEvent(element, 'change', onChange);
40632
40641
  var readyCallback;
40633
40642
 
@@ -40759,6 +40768,8 @@ function requireReactStripe_umd () {
40759
40768
  onCancel: PropTypes.func,
40760
40769
  onShippingAddressChange: PropTypes.func,
40761
40770
  onShippingRateChange: PropTypes.func,
40771
+ onSavedPaymentMethodRemove: PropTypes.func,
40772
+ onSavedPaymentMethodUpdate: PropTypes.func,
40762
40773
  options: PropTypes.object
40763
40774
  };
40764
40775
  Element.displayName = displayName;
@@ -41425,7 +41436,1052 @@ function Skeleton(_a) {
41425
41436
  return (jsxRuntime.jsx("div", Object.assign({ "data-slot": "skeleton", className: cn("bg-accent animate-pulse rounded-md", className) }, props)));
41426
41437
  }
41427
41438
 
41428
- const storeHelpers = createStoreHelpers();
41439
+ // src/api/checkout/index.ts
41440
+ var SchemaHelpers = {
41441
+ OrderBy: {
41442
+ singleField: enumType(["asc", "desc"]).optional()
41443
+ },
41444
+ Select: {
41445
+ singleField: booleanType().optional()
41446
+ },
41447
+ WhereUnique: {
41448
+ stringFilter: stringType().optional()
41449
+ },
41450
+ Where: {
41451
+ // StringFilter with all Prisma operations
41452
+ stringFilter: unionType([
41453
+ stringType(),
41454
+ objectType({
41455
+ equals: stringType().optional(),
41456
+ in: arrayType(stringType()).optional(),
41457
+ notIn: arrayType(stringType()).optional(),
41458
+ lt: stringType().optional(),
41459
+ lte: stringType().optional(),
41460
+ gt: stringType().optional(),
41461
+ gte: stringType().optional(),
41462
+ contains: stringType().optional(),
41463
+ startsWith: stringType().optional(),
41464
+ endsWith: stringType().optional(),
41465
+ mode: enumType(["default", "insensitive"]).optional(),
41466
+ not: objectType({
41467
+ equals: stringType().optional(),
41468
+ in: arrayType(stringType()).optional(),
41469
+ notIn: arrayType(stringType()).optional(),
41470
+ lt: stringType().optional(),
41471
+ lte: stringType().optional(),
41472
+ gt: stringType().optional(),
41473
+ gte: stringType().optional(),
41474
+ contains: stringType().optional(),
41475
+ startsWith: stringType().optional(),
41476
+ endsWith: stringType().optional(),
41477
+ mode: enumType(["default", "insensitive"]).optional()
41478
+ }).optional()
41479
+ }).strict()
41480
+ ]).optional(),
41481
+ // StringNullableFilter with all Prisma operations
41482
+ stringNullableFilter: unionType([
41483
+ stringType(),
41484
+ nullType(),
41485
+ objectType({
41486
+ equals: unionType([stringType(), nullType()]).optional(),
41487
+ in: arrayType(stringType()).optional(),
41488
+ notIn: arrayType(stringType()).optional(),
41489
+ lt: stringType().optional(),
41490
+ lte: stringType().optional(),
41491
+ gt: stringType().optional(),
41492
+ gte: stringType().optional(),
41493
+ contains: stringType().optional(),
41494
+ startsWith: stringType().optional(),
41495
+ endsWith: stringType().optional(),
41496
+ mode: enumType(["default", "insensitive"]).optional(),
41497
+ not: objectType({
41498
+ equals: unionType([stringType(), nullType()]).optional(),
41499
+ in: arrayType(stringType()).optional(),
41500
+ notIn: arrayType(stringType()).optional(),
41501
+ lt: stringType().optional(),
41502
+ lte: stringType().optional(),
41503
+ gt: stringType().optional(),
41504
+ gte: stringType().optional(),
41505
+ contains: stringType().optional(),
41506
+ startsWith: stringType().optional(),
41507
+ endsWith: stringType().optional(),
41508
+ mode: enumType(["default", "insensitive"]).optional()
41509
+ }).optional()
41510
+ }).strict()
41511
+ ]).optional(),
41512
+ // StringNullableListFilter with all Prisma operations
41513
+ stringNullableListFilter: objectType({
41514
+ equals: unionType([arrayType(stringType()), nullType()]).optional(),
41515
+ has: unionType([stringType(), nullType()]).optional(),
41516
+ hasEvery: arrayType(stringType()).optional(),
41517
+ hasSome: arrayType(stringType()).optional(),
41518
+ isEmpty: booleanType().optional()
41519
+ }).strict().optional(),
41520
+ // IntFilter with all Prisma operations
41521
+ intFilter: unionType([
41522
+ numberType(),
41523
+ objectType({
41524
+ equals: numberType().optional(),
41525
+ in: arrayType(numberType()).optional(),
41526
+ notIn: arrayType(numberType()).optional(),
41527
+ lt: numberType().optional(),
41528
+ lte: numberType().optional(),
41529
+ gt: numberType().optional(),
41530
+ gte: numberType().optional(),
41531
+ not: objectType({
41532
+ equals: numberType().optional(),
41533
+ in: arrayType(numberType()).optional(),
41534
+ notIn: arrayType(numberType()).optional(),
41535
+ lt: numberType().optional(),
41536
+ lte: numberType().optional(),
41537
+ gt: numberType().optional(),
41538
+ gte: numberType().optional()
41539
+ }).optional()
41540
+ }).strict()
41541
+ ]).optional(),
41542
+ // IntNullableFilter with all Prisma operations
41543
+ intNullableFilter: unionType([
41544
+ numberType(),
41545
+ objectType({
41546
+ equals: numberType().optional(),
41547
+ in: arrayType(numberType()).optional(),
41548
+ notIn: arrayType(numberType()).optional(),
41549
+ lt: numberType().optional(),
41550
+ lte: numberType().optional(),
41551
+ gt: numberType().optional(),
41552
+ gte: numberType().optional(),
41553
+ not: objectType({
41554
+ equals: numberType().optional(),
41555
+ in: arrayType(numberType()).optional(),
41556
+ notIn: arrayType(numberType()).optional(),
41557
+ lt: numberType().optional(),
41558
+ lte: numberType().optional(),
41559
+ gt: numberType().optional(),
41560
+ gte: numberType().optional()
41561
+ }).optional(),
41562
+ isSet: booleanType().optional()
41563
+ }).strict()
41564
+ ]).optional(),
41565
+ // BoolFilter with all Prisma operations
41566
+ boolFilter: unionType([
41567
+ booleanType(),
41568
+ objectType({
41569
+ equals: booleanType().optional(),
41570
+ not: objectType({
41571
+ equals: booleanType().optional()
41572
+ }).optional()
41573
+ }).strict()
41574
+ ]).optional(),
41575
+ // DateTimeFilter with all Prisma operations
41576
+ dateTimeFilter: unionType([
41577
+ stringType(),
41578
+ dateType(),
41579
+ objectType({
41580
+ equals: unionType([stringType(), dateType()]).optional(),
41581
+ in: unionType([stringType().array(), dateType().array()]).optional(),
41582
+ notIn: unionType([stringType().array(), dateType().array()]).optional(),
41583
+ lt: unionType([stringType(), dateType()]).optional(),
41584
+ lte: unionType([stringType(), dateType()]).optional(),
41585
+ gt: unionType([stringType(), dateType()]).optional(),
41586
+ gte: unionType([stringType(), dateType()]).optional(),
41587
+ not: objectType({
41588
+ equals: unionType([stringType(), dateType()]).optional(),
41589
+ in: unionType([stringType().array(), dateType().array()]).optional(),
41590
+ notIn: unionType([stringType().array(), dateType().array()]).optional(),
41591
+ lt: unionType([stringType(), dateType()]).optional(),
41592
+ lte: unionType([stringType(), dateType()]).optional(),
41593
+ gt: unionType([stringType(), dateType()]).optional(),
41594
+ gte: unionType([stringType(), dateType()]).optional()
41595
+ }).optional()
41596
+ }).strict()
41597
+ ]).optional(),
41598
+ // DateTimeNullableFilter with all Prisma operations
41599
+ dateTimeNullableFilter: unionType([
41600
+ stringType(),
41601
+ dateType(),
41602
+ objectType({
41603
+ equals: unionType([stringType(), dateType()]).optional(),
41604
+ in: unionType([stringType().array(), dateType().array()]).optional(),
41605
+ notIn: unionType([stringType().array(), dateType().array()]).optional(),
41606
+ lt: unionType([stringType(), dateType()]).optional(),
41607
+ lte: unionType([stringType(), dateType()]).optional(),
41608
+ gt: unionType([stringType(), dateType()]).optional(),
41609
+ gte: unionType([stringType(), dateType()]).optional(),
41610
+ not: objectType({
41611
+ equals: unionType([stringType(), dateType()]).optional(),
41612
+ in: unionType([stringType().array(), dateType().array()]).optional(),
41613
+ notIn: unionType([stringType().array(), dateType().array()]).optional(),
41614
+ lt: unionType([stringType(), dateType()]).optional(),
41615
+ lte: unionType([stringType(), dateType()]).optional(),
41616
+ gt: unionType([stringType(), dateType()]).optional(),
41617
+ gte: unionType([stringType(), dateType()]).optional()
41618
+ }).optional(),
41619
+ isSet: booleanType().optional()
41620
+ }).strict()
41621
+ ]).optional(),
41622
+ // EnumFilter with all Prisma operations
41623
+ enumFilter: (values) => unionType([
41624
+ enumType(values),
41625
+ objectType({
41626
+ equals: enumType(values).optional(),
41627
+ in: arrayType(enumType(values)).optional(),
41628
+ notIn: arrayType(enumType(values)).optional(),
41629
+ not: lazyType(() => enumType(values)).optional()
41630
+ }).strict()
41631
+ ]).optional(),
41632
+ // JsonNullableFilter with all Prisma operations
41633
+ jsonNullableFilter: unionType([
41634
+ anyType(),
41635
+ nullType(),
41636
+ objectType({
41637
+ equals: anyType().optional(),
41638
+ not: anyType().optional(),
41639
+ isSet: booleanType().optional()
41640
+ }).strict()
41641
+ ]).optional(),
41642
+ // Legacy filters for backward compatibility
41643
+ arrayFilter: arrayType(stringType()).optional(),
41644
+ objectFilter: objectType({}).optional()
41645
+ }
41646
+ };
41647
+ var getSelectCompositeType = (zodObject) => {
41648
+ return lazyType(
41649
+ () => unionType([booleanType(), objectType({ select: objectType(zodObject) })]).optional()
41650
+ );
41651
+ };
41652
+ var productOptionSelectSchema = getSelectCompositeType({
41653
+ name: booleanType().optional(),
41654
+ values: booleanType().optional()
41655
+ });
41656
+ var inventoryItemSelectSchema = getSelectCompositeType({
41657
+ id: SchemaHelpers.Select.singleField,
41658
+ createdAt: SchemaHelpers.Select.singleField,
41659
+ updatedAt: SchemaHelpers.Select.singleField,
41660
+ trackInventory: SchemaHelpers.Select.singleField,
41661
+ stockPolicy: SchemaHelpers.Select.singleField,
41662
+ variantId: SchemaHelpers.Select.singleField,
41663
+ productId: SchemaHelpers.Select.singleField,
41664
+ levels: getSelectCompositeType({
41665
+ id: SchemaHelpers.Select.singleField,
41666
+ createdAt: SchemaHelpers.Select.singleField,
41667
+ updatedAt: SchemaHelpers.Select.singleField,
41668
+ available: SchemaHelpers.Select.singleField,
41669
+ reserved: SchemaHelpers.Select.singleField,
41670
+ incoming: SchemaHelpers.Select.singleField,
41671
+ locationId: SchemaHelpers.Select.singleField,
41672
+ inventoryItemId: SchemaHelpers.Select.singleField,
41673
+ location: getSelectCompositeType({
41674
+ id: SchemaHelpers.Select.singleField,
41675
+ createdAt: SchemaHelpers.Select.singleField,
41676
+ updatedAt: SchemaHelpers.Select.singleField,
41677
+ name: SchemaHelpers.Select.singleField,
41678
+ address: SchemaHelpers.Select.singleField,
41679
+ city: SchemaHelpers.Select.singleField,
41680
+ province: SchemaHelpers.Select.singleField,
41681
+ country: SchemaHelpers.Select.singleField,
41682
+ postalCode: SchemaHelpers.Select.singleField,
41683
+ phone: SchemaHelpers.Select.singleField,
41684
+ email: SchemaHelpers.Select.singleField
41685
+ })
41686
+ }),
41687
+ variant: getSelectCompositeType({
41688
+ id: SchemaHelpers.Select.singleField,
41689
+ createdAt: SchemaHelpers.Select.singleField,
41690
+ updatedAt: SchemaHelpers.Select.singleField,
41691
+ title: SchemaHelpers.Select.singleField,
41692
+ description: SchemaHelpers.Select.singleField,
41693
+ images: SchemaHelpers.Select.singleField,
41694
+ sku: SchemaHelpers.Select.singleField,
41695
+ barcode: SchemaHelpers.Select.singleField,
41696
+ isPhysical: SchemaHelpers.Select.singleField,
41697
+ weightInGrams: SchemaHelpers.Select.singleField,
41698
+ heightInCm: SchemaHelpers.Select.singleField,
41699
+ widthInCm: SchemaHelpers.Select.singleField,
41700
+ lengthInCm: SchemaHelpers.Select.singleField,
41701
+ priceInCents: SchemaHelpers.Select.singleField,
41702
+ billingType: SchemaHelpers.Select.singleField,
41703
+ billingInterval: SchemaHelpers.Select.singleField,
41704
+ billingIntervalCount: SchemaHelpers.Select.singleField,
41705
+ metadata: SchemaHelpers.Select.singleField,
41706
+ productId: SchemaHelpers.Select.singleField,
41707
+ variantOptions: getSelectCompositeType({
41708
+ name: SchemaHelpers.Select.singleField,
41709
+ value: SchemaHelpers.Select.singleField
41710
+ })
41711
+ })
41712
+ });
41713
+ var productVendorSelectSchema = getSelectCompositeType({
41714
+ id: SchemaHelpers.Select.singleField,
41715
+ createdAt: SchemaHelpers.Select.singleField,
41716
+ updatedAt: SchemaHelpers.Select.singleField,
41717
+ name: SchemaHelpers.Select.singleField,
41718
+ metadata: SchemaHelpers.Select.singleField,
41719
+ isDropshipped: SchemaHelpers.Select.singleField,
41720
+ shippingProfileIDs: SchemaHelpers.Select.singleField,
41721
+ products: getSelectCompositeType({
41722
+ id: SchemaHelpers.Select.singleField,
41723
+ createdAt: SchemaHelpers.Select.singleField,
41724
+ updatedAt: SchemaHelpers.Select.singleField,
41725
+ title: SchemaHelpers.Select.singleField,
41726
+ description: SchemaHelpers.Select.singleField,
41727
+ images: SchemaHelpers.Select.singleField,
41728
+ category: SchemaHelpers.Select.singleField,
41729
+ tags: SchemaHelpers.Select.singleField,
41730
+ isPhysical: SchemaHelpers.Select.singleField,
41731
+ weightInGrams: SchemaHelpers.Select.singleField,
41732
+ heightInCm: SchemaHelpers.Select.singleField,
41733
+ widthInCm: SchemaHelpers.Select.singleField,
41734
+ lengthInCm: SchemaHelpers.Select.singleField,
41735
+ priceInCents: SchemaHelpers.Select.singleField,
41736
+ billingType: SchemaHelpers.Select.singleField,
41737
+ billingInterval: SchemaHelpers.Select.singleField,
41738
+ billingIntervalCount: SchemaHelpers.Select.singleField,
41739
+ sku: SchemaHelpers.Select.singleField,
41740
+ barcode: SchemaHelpers.Select.singleField,
41741
+ seoPageTitle: SchemaHelpers.Select.singleField,
41742
+ seoDescription: SchemaHelpers.Select.singleField,
41743
+ seoHandle: SchemaHelpers.Select.singleField,
41744
+ productVendorId: SchemaHelpers.Select.singleField,
41745
+ metadata: SchemaHelpers.Select.singleField,
41746
+ status: SchemaHelpers.Select.singleField,
41747
+ collectionIDs: SchemaHelpers.Select.singleField,
41748
+ shippingProfileIDs: SchemaHelpers.Select.singleField
41749
+ }),
41750
+ shippingProfiles: getSelectCompositeType({
41751
+ id: SchemaHelpers.Select.singleField,
41752
+ createdAt: SchemaHelpers.Select.singleField,
41753
+ updatedAt: SchemaHelpers.Select.singleField,
41754
+ name: SchemaHelpers.Select.singleField,
41755
+ description: SchemaHelpers.Select.singleField,
41756
+ metadata: SchemaHelpers.Select.singleField
41757
+ })
41758
+ });
41759
+ var productVariantSelectSchema = getSelectCompositeType({
41760
+ id: SchemaHelpers.Select.singleField,
41761
+ createdAt: SchemaHelpers.Select.singleField,
41762
+ updatedAt: SchemaHelpers.Select.singleField,
41763
+ title: SchemaHelpers.Select.singleField,
41764
+ description: SchemaHelpers.Select.singleField,
41765
+ images: SchemaHelpers.Select.singleField,
41766
+ sku: SchemaHelpers.Select.singleField,
41767
+ barcode: SchemaHelpers.Select.singleField,
41768
+ isPhysical: SchemaHelpers.Select.singleField,
41769
+ weightInGrams: SchemaHelpers.Select.singleField,
41770
+ heightInCm: SchemaHelpers.Select.singleField,
41771
+ widthInCm: SchemaHelpers.Select.singleField,
41772
+ lengthInCm: SchemaHelpers.Select.singleField,
41773
+ priceInCents: SchemaHelpers.Select.singleField,
41774
+ billingType: SchemaHelpers.Select.singleField,
41775
+ billingInterval: SchemaHelpers.Select.singleField,
41776
+ billingIntervalCount: SchemaHelpers.Select.singleField,
41777
+ metadata: SchemaHelpers.Select.singleField,
41778
+ productId: SchemaHelpers.Select.singleField,
41779
+ variantOptions: getSelectCompositeType({
41780
+ name: SchemaHelpers.Select.singleField,
41781
+ value: SchemaHelpers.Select.singleField
41782
+ }),
41783
+ product: getSelectCompositeType({
41784
+ id: SchemaHelpers.Select.singleField,
41785
+ createdAt: SchemaHelpers.Select.singleField,
41786
+ updatedAt: SchemaHelpers.Select.singleField,
41787
+ title: SchemaHelpers.Select.singleField,
41788
+ description: SchemaHelpers.Select.singleField,
41789
+ images: SchemaHelpers.Select.singleField,
41790
+ category: SchemaHelpers.Select.singleField,
41791
+ tags: SchemaHelpers.Select.singleField,
41792
+ isPhysical: SchemaHelpers.Select.singleField,
41793
+ weightInGrams: SchemaHelpers.Select.singleField,
41794
+ heightInCm: SchemaHelpers.Select.singleField,
41795
+ widthInCm: SchemaHelpers.Select.singleField,
41796
+ lengthInCm: SchemaHelpers.Select.singleField,
41797
+ priceInCents: SchemaHelpers.Select.singleField,
41798
+ billingType: SchemaHelpers.Select.singleField,
41799
+ billingInterval: SchemaHelpers.Select.singleField,
41800
+ billingIntervalCount: SchemaHelpers.Select.singleField,
41801
+ sku: SchemaHelpers.Select.singleField,
41802
+ barcode: SchemaHelpers.Select.singleField,
41803
+ seoPageTitle: SchemaHelpers.Select.singleField,
41804
+ seoDescription: SchemaHelpers.Select.singleField,
41805
+ seoHandle: SchemaHelpers.Select.singleField,
41806
+ productVendorId: SchemaHelpers.Select.singleField,
41807
+ metadata: SchemaHelpers.Select.singleField,
41808
+ status: SchemaHelpers.Select.singleField,
41809
+ collectionIDs: SchemaHelpers.Select.singleField,
41810
+ shippingProfileIDs: SchemaHelpers.Select.singleField
41811
+ }),
41812
+ inventoryItem: inventoryItemSelectSchema
41813
+ });
41814
+ var collectionSelectSchema = getSelectCompositeType({
41815
+ id: SchemaHelpers.Select.singleField,
41816
+ createdAt: SchemaHelpers.Select.singleField,
41817
+ updatedAt: SchemaHelpers.Select.singleField,
41818
+ title: SchemaHelpers.Select.singleField,
41819
+ description: SchemaHelpers.Select.singleField,
41820
+ images: SchemaHelpers.Select.singleField,
41821
+ tags: SchemaHelpers.Select.singleField,
41822
+ seoPageTitle: SchemaHelpers.Select.singleField,
41823
+ seoDescription: SchemaHelpers.Select.singleField,
41824
+ seoHandle: SchemaHelpers.Select.singleField,
41825
+ type: SchemaHelpers.Select.singleField,
41826
+ rulesMatchType: SchemaHelpers.Select.singleField,
41827
+ rules: SchemaHelpers.Select.singleField,
41828
+ productIDs: SchemaHelpers.Select.singleField,
41829
+ shippingProfileIDs: SchemaHelpers.Select.singleField,
41830
+ products: getSelectCompositeType({
41831
+ id: SchemaHelpers.Select.singleField,
41832
+ createdAt: SchemaHelpers.Select.singleField,
41833
+ updatedAt: SchemaHelpers.Select.singleField,
41834
+ title: SchemaHelpers.Select.singleField,
41835
+ description: SchemaHelpers.Select.singleField,
41836
+ images: SchemaHelpers.Select.singleField,
41837
+ category: SchemaHelpers.Select.singleField,
41838
+ tags: SchemaHelpers.Select.singleField,
41839
+ isPhysical: SchemaHelpers.Select.singleField,
41840
+ weightInGrams: SchemaHelpers.Select.singleField,
41841
+ heightInCm: SchemaHelpers.Select.singleField,
41842
+ widthInCm: SchemaHelpers.Select.singleField,
41843
+ lengthInCm: SchemaHelpers.Select.singleField,
41844
+ priceInCents: SchemaHelpers.Select.singleField,
41845
+ billingType: SchemaHelpers.Select.singleField,
41846
+ billingInterval: SchemaHelpers.Select.singleField,
41847
+ billingIntervalCount: SchemaHelpers.Select.singleField,
41848
+ sku: SchemaHelpers.Select.singleField,
41849
+ barcode: SchemaHelpers.Select.singleField,
41850
+ seoPageTitle: SchemaHelpers.Select.singleField,
41851
+ seoDescription: SchemaHelpers.Select.singleField,
41852
+ seoHandle: SchemaHelpers.Select.singleField,
41853
+ productVendorId: SchemaHelpers.Select.singleField,
41854
+ metadata: SchemaHelpers.Select.singleField,
41855
+ status: SchemaHelpers.Select.singleField,
41856
+ collectionIDs: SchemaHelpers.Select.singleField,
41857
+ shippingProfileIDs: SchemaHelpers.Select.singleField
41858
+ }),
41859
+ shippingProfiles: getSelectCompositeType({
41860
+ id: SchemaHelpers.Select.singleField,
41861
+ createdAt: SchemaHelpers.Select.singleField,
41862
+ updatedAt: SchemaHelpers.Select.singleField,
41863
+ name: SchemaHelpers.Select.singleField,
41864
+ description: SchemaHelpers.Select.singleField,
41865
+ metadata: SchemaHelpers.Select.singleField
41866
+ })
41867
+ });
41868
+ var ProductSelectComplexSchemas = {
41869
+ options: productOptionSelectSchema,
41870
+ inventoryItem: inventoryItemSelectSchema,
41871
+ productVendor: productVendorSelectSchema,
41872
+ productVariants: productVariantSelectSchema,
41873
+ collections: collectionSelectSchema
41874
+ };
41875
+
41876
+ // src/api/products/select/schema.ts
41877
+ lazyType(
41878
+ () => objectType(ProductSelectSchemaBody).strict()
41879
+ );
41880
+ var ProductSelectSchemaBody = {
41881
+ id: SchemaHelpers.Select.singleField,
41882
+ createdAt: SchemaHelpers.Select.singleField,
41883
+ updatedAt: SchemaHelpers.Select.singleField,
41884
+ title: SchemaHelpers.Select.singleField,
41885
+ description: SchemaHelpers.Select.singleField,
41886
+ images: SchemaHelpers.Select.singleField,
41887
+ category: SchemaHelpers.Select.singleField,
41888
+ tags: SchemaHelpers.Select.singleField,
41889
+ isPhysical: SchemaHelpers.Select.singleField,
41890
+ weightInGrams: SchemaHelpers.Select.singleField,
41891
+ heightInCm: SchemaHelpers.Select.singleField,
41892
+ widthInCm: SchemaHelpers.Select.singleField,
41893
+ lengthInCm: SchemaHelpers.Select.singleField,
41894
+ priceInCents: SchemaHelpers.Select.singleField,
41895
+ billingType: SchemaHelpers.Select.singleField,
41896
+ billingInterval: SchemaHelpers.Select.singleField,
41897
+ billingIntervalCount: SchemaHelpers.Select.singleField,
41898
+ sku: SchemaHelpers.Select.singleField,
41899
+ barcode: SchemaHelpers.Select.singleField,
41900
+ seoPageTitle: SchemaHelpers.Select.singleField,
41901
+ seoDescription: SchemaHelpers.Select.singleField,
41902
+ seoHandle: SchemaHelpers.Select.singleField,
41903
+ productVendorId: SchemaHelpers.Select.singleField,
41904
+ metadata: SchemaHelpers.Select.singleField,
41905
+ status: SchemaHelpers.Select.singleField,
41906
+ collectionIDs: SchemaHelpers.Select.singleField,
41907
+ shippingProfileIDs: SchemaHelpers.Select.singleField,
41908
+ // Complex relation fields
41909
+ options: ProductSelectComplexSchemas.options,
41910
+ inventoryItem: ProductSelectComplexSchemas.inventoryItem,
41911
+ productVendor: ProductSelectComplexSchemas.productVendor,
41912
+ productVariants: ProductSelectComplexSchemas.productVariants,
41913
+ collections: ProductSelectComplexSchemas.collections
41914
+ // shippingProfiles: boolean | Product$shippingProfilesArgs<ExtArgs> | undefined | undefined;
41915
+ // _count: boolean | ProductCountOutputTypeDefaultArgs<ExtArgs> | undefined | undefined;
41916
+ };
41917
+ var getSelectCompositeType2 = (zodObject) => {
41918
+ return lazyType(
41919
+ () => unionType([booleanType(), objectType({ select: objectType(zodObject) })]).optional()
41920
+ );
41921
+ };
41922
+ var collectionProductSelect = getSelectCompositeType2({
41923
+ ...ProductSelectSchemaBody
41924
+ });
41925
+ var CollectionSelectComplexSchemas = {
41926
+ products: collectionProductSelect
41927
+ };
41928
+
41929
+ // src/api/collections/select/schema.ts
41930
+ lazyType(
41931
+ () => objectType(CollectionSelectSchemaBody).strict()
41932
+ );
41933
+ var CollectionSelectSchemaBody = {
41934
+ id: SchemaHelpers.Select.singleField,
41935
+ createdAt: SchemaHelpers.Select.singleField,
41936
+ updatedAt: SchemaHelpers.Select.singleField,
41937
+ title: SchemaHelpers.Select.singleField,
41938
+ description: SchemaHelpers.Select.singleField,
41939
+ images: SchemaHelpers.Select.singleField,
41940
+ tags: SchemaHelpers.Select.singleField,
41941
+ seoPageTitle: SchemaHelpers.Select.singleField,
41942
+ seoDescription: SchemaHelpers.Select.singleField,
41943
+ seoHandle: SchemaHelpers.Select.singleField,
41944
+ type: SchemaHelpers.Select.singleField,
41945
+ rulesMatchType: SchemaHelpers.Select.singleField,
41946
+ rules: SchemaHelpers.Select.singleField,
41947
+ productIDs: SchemaHelpers.Select.singleField,
41948
+ organizationId: SchemaHelpers.Select.singleField,
41949
+ shippingProfileIDs: SchemaHelpers.Select.singleField,
41950
+ products: CollectionSelectComplexSchemas.products
41951
+ // shippingProfiles: boolean | Collection$shippingProfilesArgs<ExtArgs> | undefined | undefined;
41952
+ // _count: boolean | CollectionCountOutputTypeDefaultArgs<ExtArgs> | undefined | undefined;
41953
+ };
41954
+ var productOptionObjectEqualityInputSchema = objectType({
41955
+ name: stringType(),
41956
+ values: arrayType(stringType()).optional()
41957
+ });
41958
+ var productOptionCompositeListFilterSchema = objectType({
41959
+ equals: arrayType(productOptionObjectEqualityInputSchema).optional(),
41960
+ every: lazyType(() => productOptionWhereInputSchema).optional(),
41961
+ some: lazyType(() => productOptionWhereInputSchema).optional(),
41962
+ none: lazyType(() => productOptionWhereInputSchema).optional(),
41963
+ isEmpty: booleanType().optional(),
41964
+ isSet: booleanType().optional()
41965
+ });
41966
+ var productOptionWhereInputSchema = objectType({
41967
+ AND: unionType([
41968
+ lazyType(() => productOptionWhereInputSchema),
41969
+ arrayType(lazyType(() => productOptionWhereInputSchema))
41970
+ ]).optional(),
41971
+ OR: arrayType(lazyType(() => productOptionWhereInputSchema)).optional(),
41972
+ NOT: unionType([
41973
+ lazyType(() => productOptionWhereInputSchema),
41974
+ arrayType(lazyType(() => productOptionWhereInputSchema))
41975
+ ]).optional(),
41976
+ name: unionType([stringType(), objectType({})]).optional(),
41977
+ // StringFilter
41978
+ values: anyType().optional()
41979
+ // StringNullableListFilter
41980
+ });
41981
+ var inventoryItemWhereInputSchema = objectType({
41982
+ AND: unionType([
41983
+ lazyType(() => inventoryItemWhereInputSchema),
41984
+ arrayType(lazyType(() => inventoryItemWhereInputSchema))
41985
+ ]).optional(),
41986
+ OR: arrayType(lazyType(() => inventoryItemWhereInputSchema)).optional(),
41987
+ NOT: unionType([
41988
+ lazyType(() => inventoryItemWhereInputSchema),
41989
+ arrayType(lazyType(() => inventoryItemWhereInputSchema))
41990
+ ]).optional(),
41991
+ id: unionType([stringType(), objectType({})]).optional(),
41992
+ // StringFilter
41993
+ createdAt: unionType([dateType(), stringType(), objectType({})]).optional(),
41994
+ // DateTimeFilter
41995
+ updatedAt: unionType([dateType(), stringType(), objectType({})]).optional(),
41996
+ // DateTimeFilter
41997
+ trackInventory: unionType([booleanType(), objectType({})]).optional(),
41998
+ // BoolFilter
41999
+ stockPolicy: unionType([enumType(["DENY", "CONTINUE"]), objectType({})]).optional(),
42000
+ // EnumStockPolicyFilter
42001
+ variantId: unionType([stringType().nullable(), objectType({})]).optional(),
42002
+ // StringNullableFilter
42003
+ productId: unionType([stringType().nullable(), objectType({})]).optional(),
42004
+ // StringNullableFilter
42005
+ variant: anyType().optional(),
42006
+ // Complex relation filter
42007
+ product: anyType().optional(),
42008
+ // Complex relation filter
42009
+ levels: anyType().optional()
42010
+ // InventoryLevelListRelationFilter
42011
+ });
42012
+ var productVendorWhereInputSchema = objectType({
42013
+ AND: unionType([
42014
+ lazyType(() => productVendorWhereInputSchema),
42015
+ arrayType(lazyType(() => productVendorWhereInputSchema))
42016
+ ]).optional(),
42017
+ OR: arrayType(lazyType(() => productVendorWhereInputSchema)).optional(),
42018
+ NOT: unionType([
42019
+ lazyType(() => productVendorWhereInputSchema),
42020
+ arrayType(lazyType(() => productVendorWhereInputSchema))
42021
+ ]).optional(),
42022
+ id: unionType([stringType(), objectType({})]).optional(),
42023
+ // StringFilter
42024
+ createdAt: unionType([dateType(), stringType(), objectType({})]).optional(),
42025
+ // DateTimeFilter
42026
+ updatedAt: unionType([dateType(), stringType(), objectType({})]).optional(),
42027
+ // DateTimeFilter
42028
+ name: unionType([stringType(), objectType({})]).optional(),
42029
+ // StringFilter
42030
+ metadata: anyType().optional(),
42031
+ // JsonNullableFilter
42032
+ isDropshipped: unionType([booleanType(), objectType({})]).optional(),
42033
+ // BoolFilter
42034
+ organizationId: unionType([stringType(), objectType({})]).optional(),
42035
+ // StringFilter
42036
+ shippingProfileIDs: anyType().optional(),
42037
+ // StringNullableListFilter
42038
+ organization: anyType().optional(),
42039
+ // Complex relation filter
42040
+ products: anyType().optional(),
42041
+ // ProductListRelationFilter
42042
+ shippingProfiles: anyType().optional()
42043
+ // ShippingProfileListRelationFilter
42044
+ });
42045
+ var productVariantWhereInputSchema = objectType({
42046
+ AND: unionType([
42047
+ lazyType(() => productVariantWhereInputSchema),
42048
+ arrayType(lazyType(() => productVariantWhereInputSchema))
42049
+ ]).optional(),
42050
+ OR: arrayType(lazyType(() => productVariantWhereInputSchema)).optional(),
42051
+ NOT: unionType([
42052
+ lazyType(() => productVariantWhereInputSchema),
42053
+ arrayType(lazyType(() => productVariantWhereInputSchema))
42054
+ ]).optional(),
42055
+ id: unionType([stringType(), objectType({})]).optional(),
42056
+ // StringFilter
42057
+ createdAt: unionType([dateType(), stringType(), objectType({})]).optional(),
42058
+ // DateTimeFilter
42059
+ updatedAt: unionType([dateType(), stringType(), objectType({})]).optional(),
42060
+ // DateTimeFilter
42061
+ title: unionType([stringType(), objectType({})]).optional(),
42062
+ // StringFilter
42063
+ description: unionType([stringType().nullable(), objectType({})]).optional(),
42064
+ // StringNullableFilter
42065
+ images: anyType().optional(),
42066
+ // StringNullableListFilter
42067
+ sku: unionType([stringType().nullable(), objectType({})]).optional(),
42068
+ // StringNullableFilter
42069
+ barcode: unionType([stringType().nullable(), objectType({})]).optional(),
42070
+ // StringNullableFilter
42071
+ isPhysical: unionType([booleanType(), objectType({})]).optional(),
42072
+ // BoolFilter
42073
+ weightInGrams: unionType([numberType(), objectType({})]).optional(),
42074
+ // IntFilter
42075
+ heightInCm: unionType([numberType(), objectType({})]).optional(),
42076
+ // IntFilter
42077
+ widthInCm: unionType([numberType(), objectType({})]).optional(),
42078
+ // IntFilter
42079
+ lengthInCm: unionType([numberType(), objectType({})]).optional(),
42080
+ // IntFilter
42081
+ priceInCents: unionType([numberType(), objectType({})]).optional(),
42082
+ // IntFilter
42083
+ billingType: unionType([enumType(["ONE_TIME", "SUBSCRIPTION"]), objectType({})]).optional(),
42084
+ // EnumProductBillingTypeFilter
42085
+ billingInterval: unionType([enumType(["DAY", "WEEK", "MONTH", "YEAR"]), objectType({})]).optional(),
42086
+ // EnumProductBillingIntervalFilter
42087
+ billingIntervalCount: unionType([numberType(), objectType({})]).optional(),
42088
+ // IntFilter
42089
+ metadata: anyType().optional(),
42090
+ // JsonNullableFilter
42091
+ productId: unionType([stringType(), objectType({})]).optional(),
42092
+ // StringFilter
42093
+ variantOptions: anyType().optional(),
42094
+ // VariantOption array
42095
+ inventoryItem: anyType().optional(),
42096
+ // Complex relation filter
42097
+ product: anyType().optional()
42098
+ // Complex relation filter
42099
+ });
42100
+ var productVariantListRelationFilterSchema = objectType({
42101
+ every: productVariantWhereInputSchema.optional(),
42102
+ some: productVariantWhereInputSchema.optional(),
42103
+ none: productVariantWhereInputSchema.optional()
42104
+ });
42105
+ var collectionWhereInputSchema = objectType({
42106
+ AND: unionType([
42107
+ lazyType(() => collectionWhereInputSchema),
42108
+ arrayType(lazyType(() => collectionWhereInputSchema))
42109
+ ]).optional(),
42110
+ OR: arrayType(lazyType(() => collectionWhereInputSchema)).optional(),
42111
+ NOT: unionType([
42112
+ lazyType(() => collectionWhereInputSchema),
42113
+ arrayType(lazyType(() => collectionWhereInputSchema))
42114
+ ]).optional(),
42115
+ id: unionType([stringType(), objectType({})]).optional(),
42116
+ // StringFilter
42117
+ createdAt: unionType([dateType(), stringType(), objectType({})]).optional(),
42118
+ // DateTimeFilter
42119
+ updatedAt: unionType([dateType(), stringType(), objectType({})]).optional(),
42120
+ // DateTimeFilter
42121
+ title: unionType([stringType(), objectType({})]).optional(),
42122
+ // StringFilter
42123
+ description: unionType([stringType().nullable(), objectType({})]).optional(),
42124
+ // StringNullableFilter
42125
+ images: anyType().optional(),
42126
+ // StringNullableListFilter
42127
+ tags: anyType().optional(),
42128
+ // StringNullableListFilter
42129
+ seoPageTitle: unionType([stringType().nullable(), objectType({})]).optional(),
42130
+ // StringNullableFilter
42131
+ seoDescription: unionType([stringType().nullable(), objectType({})]).optional(),
42132
+ // StringNullableFilter
42133
+ seoHandle: unionType([stringType().nullable(), objectType({})]).optional(),
42134
+ // StringNullableFilter
42135
+ type: unionType([enumType(["MANUAL", "SMART"]), objectType({})]).optional(),
42136
+ // EnumCollectionTypeFilter
42137
+ rulesMatchType: unionType([enumType(["ALL", "ANY"]), objectType({})]).optional(),
42138
+ // EnumCollectionRulesMatchTypeFilter
42139
+ rules: unionType([stringType().nullable(), objectType({})]).optional(),
42140
+ // StringNullableFilter
42141
+ productIDs: anyType().optional(),
42142
+ // StringNullableListFilter
42143
+ organizationId: unionType([stringType(), objectType({})]).optional(),
42144
+ // StringFilter
42145
+ shippingProfileIDs: anyType().optional(),
42146
+ // StringNullableListFilter
42147
+ organization: anyType().optional(),
42148
+ // Complex relation filter
42149
+ products: anyType().optional(),
42150
+ // ProductListRelationFilter
42151
+ shippingProfiles: anyType().optional()
42152
+ // ShippingProfileListRelationFilter
42153
+ });
42154
+ var collectionListRelationFilterSchema = objectType({
42155
+ every: collectionWhereInputSchema.optional(),
42156
+ some: collectionWhereInputSchema.optional(),
42157
+ none: collectionWhereInputSchema.optional()
42158
+ });
42159
+ var ProductWhereComplexSchemas = {
42160
+ // Complex relation fields
42161
+ options: unionType([
42162
+ productOptionCompositeListFilterSchema,
42163
+ arrayType(productOptionObjectEqualityInputSchema)
42164
+ ]).optional(),
42165
+ inventoryItem: unionType([
42166
+ objectType({
42167
+ is: unionType([inventoryItemWhereInputSchema, nullType()]).optional(),
42168
+ isNot: unionType([inventoryItemWhereInputSchema, nullType()]).optional()
42169
+ }),
42170
+ inventoryItemWhereInputSchema,
42171
+ nullType()
42172
+ ]).optional(),
42173
+ productVendor: unionType([
42174
+ objectType({
42175
+ is: unionType([productVendorWhereInputSchema, nullType()]).optional(),
42176
+ isNot: unionType([productVendorWhereInputSchema, nullType()]).optional()
42177
+ }),
42178
+ productVendorWhereInputSchema,
42179
+ nullType()
42180
+ ]).optional(),
42181
+ productVariants: productVariantListRelationFilterSchema.optional(),
42182
+ collections: collectionListRelationFilterSchema.optional()
42183
+ };
42184
+
42185
+ // src/api/products/where/schema.ts
42186
+ var ProductWhereSchema = lazyType(
42187
+ () => objectType({
42188
+ ...ProductWhereSchemaBaseFields,
42189
+ AND: arrayType(ProductWhereSchema).optional(),
42190
+ OR: arrayType(ProductWhereSchema).optional(),
42191
+ NOT: unionType([ProductWhereSchema, arrayType(ProductWhereSchema)]).optional()
42192
+ }).strict()
42193
+ );
42194
+ var ProductWhereSchemaBaseFields = {
42195
+ id: SchemaHelpers.Where.stringFilter,
42196
+ createdAt: SchemaHelpers.Where.dateTimeFilter,
42197
+ updatedAt: SchemaHelpers.Where.dateTimeFilter,
42198
+ title: SchemaHelpers.Where.stringFilter,
42199
+ description: SchemaHelpers.Where.stringNullableFilter,
42200
+ images: SchemaHelpers.Where.stringNullableListFilter,
42201
+ category: SchemaHelpers.Where.stringFilter,
42202
+ tags: SchemaHelpers.Where.stringNullableListFilter,
42203
+ isPhysical: SchemaHelpers.Where.boolFilter,
42204
+ weightInGrams: SchemaHelpers.Where.intFilter,
42205
+ heightInCm: SchemaHelpers.Where.intFilter,
42206
+ widthInCm: SchemaHelpers.Where.intFilter,
42207
+ lengthInCm: SchemaHelpers.Where.intFilter,
42208
+ priceInCents: SchemaHelpers.Where.intFilter,
42209
+ billingType: SchemaHelpers.Where.enumFilter([
42210
+ "ONE_TIME",
42211
+ "SUBSCRIPTION"
42212
+ ]),
42213
+ billingInterval: SchemaHelpers.Where.enumFilter([
42214
+ "DAY",
42215
+ "WEEK",
42216
+ "MONTH",
42217
+ "YEAR"
42218
+ ]),
42219
+ billingIntervalCount: SchemaHelpers.Where.intFilter,
42220
+ sku: SchemaHelpers.Where.stringNullableFilter,
42221
+ barcode: SchemaHelpers.Where.stringNullableFilter,
42222
+ seoPageTitle: SchemaHelpers.Where.stringNullableFilter,
42223
+ seoDescription: SchemaHelpers.Where.stringNullableFilter,
42224
+ seoHandle: SchemaHelpers.Where.stringNullableFilter,
42225
+ productVendorId: SchemaHelpers.Where.stringNullableFilter,
42226
+ metadata: SchemaHelpers.Where.jsonNullableFilter,
42227
+ status: SchemaHelpers.Where.enumFilter([
42228
+ "DRAFT",
42229
+ "PUBLISHED",
42230
+ "ARCHIVED"
42231
+ ]),
42232
+ options: ProductWhereComplexSchemas.options,
42233
+ collectionIDs: SchemaHelpers.Where.stringNullableListFilter,
42234
+ shippingProfileIDs: SchemaHelpers.Where.stringNullableListFilter,
42235
+ inventoryItem: ProductWhereComplexSchemas.inventoryItem,
42236
+ productVendor: ProductWhereComplexSchemas.productVendor,
42237
+ productVariants: ProductWhereComplexSchemas.productVariants,
42238
+ collections: ProductWhereComplexSchemas.collections
42239
+ // shippingProfiles?: ShippingProfileListRelationFilter;
42240
+ };
42241
+ objectType(ProductWhereSchemaBaseFields).strict();
42242
+ var productListRelationFilter = objectType({
42243
+ every: objectType({ ...ProductWhereSchemaBaseFields }).optional(),
42244
+ some: objectType({ ...ProductWhereSchemaBaseFields }).optional(),
42245
+ none: objectType({ ...ProductWhereSchemaBaseFields }).optional()
42246
+ });
42247
+ var CollectionWhereComplexSchemas = {
42248
+ products: productListRelationFilter
42249
+ };
42250
+
42251
+ // src/api/collections/where/schema.ts
42252
+ var CollectionWhereSchema = lazyType(
42253
+ () => objectType({
42254
+ ...CollectionWhereSchemaBaseFields,
42255
+ AND: arrayType(CollectionWhereSchema).optional(),
42256
+ OR: arrayType(CollectionWhereSchema).optional(),
42257
+ NOT: unionType([CollectionWhereSchema, arrayType(CollectionWhereSchema)]).optional()
42258
+ }).strict()
42259
+ );
42260
+ var CollectionWhereSchemaBaseFields = {
42261
+ id: SchemaHelpers.Where.stringFilter,
42262
+ createdAt: SchemaHelpers.Where.dateTimeFilter,
42263
+ updatedAt: SchemaHelpers.Where.dateTimeFilter,
42264
+ title: SchemaHelpers.Where.stringFilter,
42265
+ description: SchemaHelpers.Where.stringNullableFilter,
42266
+ images: SchemaHelpers.Where.stringNullableListFilter,
42267
+ tags: SchemaHelpers.Where.stringNullableListFilter,
42268
+ seoPageTitle: SchemaHelpers.Where.stringNullableFilter,
42269
+ seoDescription: SchemaHelpers.Where.stringNullableFilter,
42270
+ seoHandle: SchemaHelpers.Where.stringNullableFilter,
42271
+ type: SchemaHelpers.Where.enumFilter(["MANUAL", "SMART"]),
42272
+ rulesMatchType: SchemaHelpers.Where.enumFilter(["ALL", "ANY"]),
42273
+ rules: SchemaHelpers.Where.stringNullableFilter,
42274
+ productIDs: SchemaHelpers.Where.stringNullableListFilter,
42275
+ shippingProfileIDs: SchemaHelpers.Where.stringNullableListFilter,
42276
+ products: CollectionWhereComplexSchemas.products
42277
+ // shippingProfiles?: ShippingProfileListRelationFilter;
42278
+ };
42279
+ objectType(CollectionWhereSchemaBaseFields).strict();
42280
+ lazyType(() => collectionWhereUniqueSchemaBaseFieldsSchema);
42281
+ var CollectionWhereUniqueSchemaBaseFields = {
42282
+ ...CollectionWhereSchemaBaseFields,
42283
+ id: SchemaHelpers.WhereUnique.stringFilter,
42284
+ seoHandle: SchemaHelpers.WhereUnique.stringFilter,
42285
+ title: SchemaHelpers.WhereUnique.stringFilter,
42286
+ AND: arrayType(CollectionWhereSchema).optional(),
42287
+ OR: arrayType(CollectionWhereSchema).optional(),
42288
+ NOT: unionType([CollectionWhereSchema, arrayType(CollectionWhereSchema)]).optional()
42289
+ };
42290
+ var collectionWhereUniqueSchemaBaseFieldsSchema = unionType([
42291
+ objectType({
42292
+ ...CollectionWhereUniqueSchemaBaseFields,
42293
+ id: stringType()
42294
+ }).strict(),
42295
+ objectType({
42296
+ ...CollectionWhereUniqueSchemaBaseFields,
42297
+ seoHandle: stringType()
42298
+ }).strict()
42299
+ ]);
42300
+ var DiscountWhereSchema = lazyType(
42301
+ () => objectType({
42302
+ ...DiscountWhereSchemaBaseFields,
42303
+ AND: arrayType(DiscountWhereSchema).optional(),
42304
+ OR: arrayType(DiscountWhereSchema).optional(),
42305
+ NOT: unionType([DiscountWhereSchema, arrayType(DiscountWhereSchema)]).optional()
42306
+ }).strict()
42307
+ );
42308
+ var DiscountWhereSchemaBaseFields = {
42309
+ testmode: SchemaHelpers.Where.boolFilter,
42310
+ id: SchemaHelpers.Where.stringFilter,
42311
+ createdAt: SchemaHelpers.Where.dateTimeFilter,
42312
+ updatedAt: SchemaHelpers.Where.dateTimeFilter,
42313
+ type: SchemaHelpers.Where.enumFilter([
42314
+ "AMOUNT_OFF_PRODUCTS",
42315
+ "BUY_X_GET_Y",
42316
+ "AMOUNT_OFF_ORDER",
42317
+ "FREE_SHIPPING"
42318
+ ]),
42319
+ method: SchemaHelpers.Where.enumFilter(["CODE", "AUTOMATIC"]),
42320
+ code: SchemaHelpers.Where.stringNullableFilter,
42321
+ title: SchemaHelpers.Where.stringNullableFilter,
42322
+ value: SchemaHelpers.Where.intFilter,
42323
+ valueType: SchemaHelpers.Where.enumFilter([
42324
+ "PERCENTAGE",
42325
+ "FIXED_AMOUNT",
42326
+ "FREE"
42327
+ ]),
42328
+ discountScope: SchemaHelpers.Where.enumFilter([
42329
+ "PRODUCTS",
42330
+ "COLLECTIONS"
42331
+ ]),
42332
+ allowedProductIDs: SchemaHelpers.Where.stringNullableListFilter,
42333
+ allowedCollectionIDs: SchemaHelpers.Where.stringNullableListFilter,
42334
+ // allowedCombinations: SchemaHelpers.Where.enumDiscountScopeNullableListFilter,
42335
+ minimumRequirementsType: SchemaHelpers.Where.enumFilter([
42336
+ "NONE",
42337
+ "MINIMUM_ORDER_AMOUNT",
42338
+ "MINIMUM_PRODUCT_QUANTITY"
42339
+ ]),
42340
+ minimumRequirementsValue: SchemaHelpers.Where.intNullableFilter,
42341
+ requiredProductIDs: SchemaHelpers.Where.stringNullableListFilter,
42342
+ requiredCollectionIDs: SchemaHelpers.Where.stringNullableListFilter,
42343
+ minimumRequirementsScope: SchemaHelpers.Where.enumFilter([
42344
+ "PRODUCTS",
42345
+ "COLLECTIONS"
42346
+ ]),
42347
+ maxUses: SchemaHelpers.Where.intNullableFilter,
42348
+ maxUsesPerCustomer: SchemaHelpers.Where.intNullableFilter,
42349
+ maxAllowedProductQuantity: SchemaHelpers.Where.intNullableFilter,
42350
+ uses: SchemaHelpers.Where.intFilter,
42351
+ subscriptionDiscountDurationType: SchemaHelpers.Where.enumFilter([
42352
+ "ONCE",
42353
+ "RECURRING",
42354
+ "FOREVER"
42355
+ ]),
42356
+ subscriptionDiscountDurationValue: SchemaHelpers.Where.intFilter,
42357
+ stripeDiscountId: SchemaHelpers.Where.stringNullableFilter,
42358
+ startsAt: SchemaHelpers.Where.dateTimeFilter,
42359
+ expiresAt: SchemaHelpers.Where.dateTimeNullableFilter,
42360
+ status: SchemaHelpers.Where.enumFilter([
42361
+ "ACTIVE",
42362
+ "EXPIRED",
42363
+ "SCHEDULED"
42364
+ ])
42365
+ };
42366
+ objectType(DiscountWhereSchemaBaseFields).strict();
42367
+ lazyType(() => discountWhereUniqueSchemaBaseFieldsSchema);
42368
+ var DiscountWhereUniqueSchemaBaseFields = {
42369
+ ...DiscountWhereSchemaBaseFields,
42370
+ id: SchemaHelpers.WhereUnique.stringFilter,
42371
+ code: SchemaHelpers.WhereUnique.stringFilter,
42372
+ AND: arrayType(DiscountWhereSchema).optional(),
42373
+ OR: arrayType(DiscountWhereSchema).optional(),
42374
+ NOT: unionType([DiscountWhereSchema, arrayType(DiscountWhereSchema)]).optional()
42375
+ };
42376
+ var discountWhereUniqueSchemaBaseFieldsSchema = unionType([
42377
+ objectType({
42378
+ ...DiscountWhereUniqueSchemaBaseFields,
42379
+ id: stringType()
42380
+ }).strict(),
42381
+ objectType({
42382
+ ...DiscountWhereUniqueSchemaBaseFields,
42383
+ code: stringType()
42384
+ }).strict()
42385
+ ]);
42386
+ lazyType(() => productWhereUniqueSchemaBaseFieldsSchema);
42387
+ var ProductWhereUniqueSchemaBaseFields = {
42388
+ ...ProductWhereSchemaBaseFields,
42389
+ id: SchemaHelpers.WhereUnique.stringFilter,
42390
+ seoHandle: SchemaHelpers.WhereUnique.stringFilter,
42391
+ title: SchemaHelpers.WhereUnique.stringFilter,
42392
+ AND: arrayType(ProductWhereSchema).optional(),
42393
+ OR: arrayType(ProductWhereSchema).optional(),
42394
+ NOT: unionType([ProductWhereSchema, arrayType(ProductWhereSchema)]).optional()
42395
+ };
42396
+ var productWhereUniqueSchemaBaseFieldsSchema = unionType([
42397
+ objectType({
42398
+ ...ProductWhereUniqueSchemaBaseFields,
42399
+ id: stringType()
42400
+ }).strict(),
42401
+ objectType({
42402
+ ...ProductWhereUniqueSchemaBaseFields,
42403
+ seoHandle: stringType()
42404
+ }).strict()
42405
+ ]);
42406
+
42407
+ // src/helpers/index.ts
42408
+ var currencyLocales = {
42409
+ CZK: "cs-CZ",
42410
+ // Czech Koruna
42411
+ USD: "en-US",
42412
+ // US Dollar
42413
+ EUR: "de-DE",
42414
+ // Euro (Germany locale)
42415
+ GBP: "en-GB",
42416
+ // British Pound
42417
+ JPY: "ja-JP",
42418
+ // Japanese Yen
42419
+ AUD: "en-AU",
42420
+ // Australian Dollar
42421
+ CAD: "en-CA",
42422
+ // Canadian Dollar
42423
+ NZD: "en-NZ",
42424
+ // New Zealand Dollar
42425
+ SEK: "sv-SE",
42426
+ // Swedish Krona
42427
+ NOK: "nb-NO",
42428
+ // Norwegian Krone
42429
+ DKK: "da-DK",
42430
+ // Danish Krone
42431
+ CHF: "de-CH",
42432
+ // Swiss Franc (German Switzerland)
42433
+ HUF: "hu-HU",
42434
+ // Hungarian Forint
42435
+ PLN: "pl-PL",
42436
+ // Polish Zloty
42437
+ BGN: "bg-BG",
42438
+ // Bulgarian Lev
42439
+ RON: "ro-RO",
42440
+ // Romanian Leu
42441
+ RUB: "ru-RU",
42442
+ // Russian Ruble
42443
+ CNY: "zh-CN",
42444
+ // Chinese Yuan
42445
+ INR: "en-IN",
42446
+ // Indian Rupee
42447
+ BRL: "pt-BR",
42448
+ // Brazilian Real
42449
+ MXN: "es-MX",
42450
+ // Mexican Peso
42451
+ ZAR: "en-ZA",
42452
+ // South African Rand
42453
+ KRW: "ko-KR",
42454
+ // South Korean Won
42455
+ MYR: "ms-MY",
42456
+ // Malaysian Ringgit
42457
+ SGD: "en-SG",
42458
+ // Singapore Dollar
42459
+ TWD: "zh-TW",
42460
+ // Taiwanese Dollar
42461
+ THB: "th-TH",
42462
+ // Thai Baht
42463
+ IDR: "id-ID",
42464
+ // Indonesian Rupiah
42465
+ AED: "ar-AE",
42466
+ // UAE Dirham
42467
+ SAR: "ar-SA",
42468
+ // Saudi Riyal
42469
+ TRY: "tr-TR"
42470
+ // Turkish Lira
42471
+ };
42472
+ function formatPrice(priceInCents, currency, exchangeRate) {
42473
+ const amount = priceInCents / 100 * (exchangeRate ?? 1);
42474
+ const isWhole = amount % 1 === 0;
42475
+ const locale = currencyLocales[currency.toUpperCase()] ?? void 0;
42476
+ const formattedPrice = new Intl.NumberFormat(locale, {
42477
+ style: "currency",
42478
+ currency,
42479
+ currencyDisplay: "symbol",
42480
+ minimumFractionDigits: isWhole ? 0 : 2,
42481
+ maximumFractionDigits: isWhole ? 0 : 2
42482
+ }).format(amount);
42483
+ return formattedPrice;
42484
+ }
41429
42485
 
41430
42486
  function ZasilkovnaShippingOption({ children, onPickupPointSelected, locale, countryCode, apiKey, }) {
41431
42487
  const [widgetLoaded, setWidgetLoaded] = React.useState(false);
@@ -41492,7 +42548,10 @@ function ShipmentsForm({ shippingRates, initialData, onSubmit, onBack, contactEm
41492
42548
  ])),
41493
42549
  });
41494
42550
  const isButtonEnabled = Object.values(form.getValues()).every((value) => { var _a; return ((_a = value.rateId) === null || _a === void 0 ? void 0 : _a.length) > 0; });
41495
- return (jsxRuntime.jsxs("div", { className: "space-y-6", children: [jsxRuntime.jsx("h2", { children: t("CheckoutEmbed.Shipping.title") }), jsxRuntime.jsxs("div", { className: "space-y-2 pb-2", children: [jsxRuntime.jsxs("div", { className: "flex items-center justify-between text-sm", children: [jsxRuntime.jsxs("p", { children: [jsxRuntime.jsx("span", { className: "font-medium", children: t("CheckoutEmbed.Shipping.contact") }), " ", jsxRuntime.jsx("span", { className: "text-muted-foreground", children: contactEmail })] }), jsxRuntime.jsx(Button, { variant: "link", size: "link", onClick: onBack, children: t("CheckoutEmbed.Shipping.change") })] }), jsxRuntime.jsxs("div", { className: "flex items-center justify-between text-sm", children: [jsxRuntime.jsxs("p", { children: [jsxRuntime.jsx("span", { className: "font-medium", children: t("CheckoutEmbed.Shipping.address") }), " ", jsxRuntime.jsx("span", { className: "text-muted-foreground", children: shippingAddress })] }), jsxRuntime.jsx(Button, { variant: "link", size: "link", onClick: onBack, children: t("CheckoutEmbed.Shipping.change") })] })] }), jsxRuntime.jsx(Form, Object.assign({}, form, { children: jsxRuntime.jsxs("form", { onSubmit: form.handleSubmit(onSubmit), className: "space-y-4", children: [shipments.map((shipment, index) => (jsxRuntime.jsx(SingleShipmentSection, { shipment: shipment, shippingRates: shippingRates, form: form, setFormData: setFormData, formData: formData, currency: currency, exchangeRate: exchangeRate, locale: locale, countryCode: countryCode, multipleShipments: shipments.length > 1, index: index }, shipment.id))), jsxRuntime.jsx(FormMessage, { children: (_a = form.formState.errors.root) === null || _a === void 0 ? void 0 : _a.message }), jsxRuntime.jsxs("div", { className: "flex items-center justify-between pt-4", children: [jsxRuntime.jsxs(Button, { type: "button", variant: "ghost", onClick: onBack, children: [jsxRuntime.jsx(ChevronLeft, {}), t("CheckoutEmbed.Shipping.back")] }), jsxRuntime.jsx(SubmitButton, { isSubmitting: form.formState.isSubmitting, isValid: isButtonEnabled, children: t("CheckoutEmbed.Shipping.button") })] })] }) }))] }));
42551
+ return (jsxRuntime.jsxs("div", { className: "space-y-6", children: [jsxRuntime.jsx("h2", { children: t("CheckoutEmbed.Shipping.title") }), jsxRuntime.jsxs("div", { className: "space-y-2 pb-2", children: [jsxRuntime.jsxs("div", { className: "flex items-center justify-between text-sm", children: [jsxRuntime.jsxs("p", { children: [jsxRuntime.jsx("span", { className: "font-medium", children: t("CheckoutEmbed.Shipping.contact") }), " ", jsxRuntime.jsx("span", { className: "text-muted-foreground", children: contactEmail })] }), jsxRuntime.jsx(Button, { variant: "link", size: "link", onClick: onBack, children: t("CheckoutEmbed.Shipping.change") })] }), jsxRuntime.jsxs("div", { className: "flex items-center justify-between text-sm", children: [jsxRuntime.jsxs("p", { children: [jsxRuntime.jsx("span", { className: "font-medium", children: t("CheckoutEmbed.Shipping.address") }), " ", jsxRuntime.jsx("span", { className: "text-muted-foreground", children: shippingAddress })] }), jsxRuntime.jsx(Button, { variant: "link", size: "link", onClick: onBack, children: t("CheckoutEmbed.Shipping.change") })] })] }), jsxRuntime.jsx(Form, Object.assign({}, form, { children: jsxRuntime.jsxs("form", { onSubmit: form.handleSubmit(onSubmit), className: "space-y-4", children: [shipments.map((shipment, index) => {
42552
+ var _a;
42553
+ return (jsxRuntime.jsx(SingleShipmentSection, { shipment: shipment, shippingRates: (_a = shippingRates[shipment.id]) !== null && _a !== void 0 ? _a : [], form: form, setFormData: setFormData, formData: formData, currency: currency, exchangeRate: exchangeRate, locale: locale, countryCode: countryCode, multipleShipments: shipments.length > 1, index: index }, shipment.id));
42554
+ }), jsxRuntime.jsx(FormMessage, { children: (_a = form.formState.errors.root) === null || _a === void 0 ? void 0 : _a.message }), jsxRuntime.jsxs("div", { className: "flex items-center justify-between pt-4", children: [jsxRuntime.jsxs(Button, { type: "button", variant: "ghost", onClick: onBack, children: [jsxRuntime.jsx(ChevronLeft, {}), t("CheckoutEmbed.Shipping.back")] }), jsxRuntime.jsx(SubmitButton, { isSubmitting: form.formState.isSubmitting, isValid: isButtonEnabled, children: t("CheckoutEmbed.Shipping.button") })] })] }) }))] }));
41496
42555
  }
41497
42556
  const SingleShipmentSection = ({ shippingRates, form, currency, exchangeRate, locale, countryCode, setFormData, formData, multipleShipments, shipment, index, }) => {
41498
42557
  const { t } = useTranslation();
@@ -41504,7 +42563,7 @@ const SingleShipmentSection = ({ shippingRates, form, currency, exchangeRate, lo
41504
42563
  var _a, _b;
41505
42564
  const pickupPointDisplayName = form.watch(`${shipmentId}.pickupPointDisplayName`);
41506
42565
  const intPrice = Math.ceil(Number(rate.priceInCents));
41507
- const displayPrice = storeHelpers.formatPrice(intPrice, currency, exchangeRate);
42566
+ const displayPrice = formatPrice(intPrice, currency, exchangeRate);
41508
42567
  const isFixedRate = rate.type === "FIXED";
41509
42568
  const isAutoRate = rate.type === "CUSTOM_SHIPPING_VENDOR" ||
41510
42569
  rate.type === "PLATFORM_CARRIER";
@@ -41556,7 +42615,7 @@ const resetFormStore = (formData) => {
41556
42615
 
41557
42616
  function CheckoutForm({ storeClient, checkoutId, onSuccess, onError, cancelUrl, clientSecret, customer, currency, checkoutAppearance, fonts, locale, setShippingCost, exchangeRate, paymentSecret, publicKey, paymentComponentKey, clientProxy, latitude, longitude, currentAlpha3CountryCode, shipments, }) {
41558
42617
  const { formData, setFormData, step, setStep, checkoutId: storedCheckoutId, setCheckoutId, } = useFormStore();
41559
- const [shippingRates, setShippingRates] = React.useState([]);
42618
+ const [shippingRates, setShippingRates] = React.useState({});
41560
42619
  const validateStep = React.useCallback(() => {
41561
42620
  if (step === "customer")
41562
42621
  return;
@@ -41579,7 +42638,7 @@ function CheckoutForm({ storeClient, checkoutId, onSuccess, onError, cancelUrl,
41579
42638
  // eslint-disable-next-line react-hooks/exhaustive-deps
41580
42639
  }, [step]);
41581
42640
  React.useEffect(() => {
41582
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21;
42641
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33;
41583
42642
  if (checkoutId !== storedCheckoutId) {
41584
42643
  setStep("customer");
41585
42644
  setCheckoutId(checkoutId);
@@ -41596,17 +42655,20 @@ function CheckoutForm({ storeClient, checkoutId, onSuccess, onError, cancelUrl,
41596
42655
  email: (_k = customer.email) !== null && _k !== void 0 ? _k : "",
41597
42656
  address: {
41598
42657
  line1: (_m = (_l = customer.address) === null || _l === void 0 ? void 0 : _l.line1) !== null && _m !== void 0 ? _m : "",
41599
- line2: (_p = (_o = customer.address) === null || _o === void 0 ? void 0 : _o.line2) !== null && _p !== void 0 ? _p : "",
42658
+ line2: (_p = (_o = customer.address) === null || _o === void 0 ? void 0 : _o.line2) !== null && _p !== void 0 ? _p : null,
41600
42659
  city: (_r = (_q = customer.address) === null || _q === void 0 ? void 0 : _q.city) !== null && _r !== void 0 ? _r : "",
41601
- zipCode: (_t = (_s = customer.address) === null || _s === void 0 ? void 0 : _s.zipCode) !== null && _t !== void 0 ? _t : "",
41602
- country: (_v = (_u = customer.address) === null || _u === void 0 ? void 0 : _u.country) !== null && _v !== void 0 ? _v : "",
41603
- countryCode: (_x = (_w = customer.address) === null || _w === void 0 ? void 0 : _w.countryCode) !== null && _x !== void 0 ? _x : "",
42660
+ province: (_t = (_s = customer.address) === null || _s === void 0 ? void 0 : _s.province) !== null && _t !== void 0 ? _t : null,
42661
+ provinceCode: (_v = (_u = customer.address) === null || _u === void 0 ? void 0 : _u.provinceCode) !== null && _v !== void 0 ? _v : null,
42662
+ zipCode: (_x = (_w = customer.address) === null || _w === void 0 ? void 0 : _w.zipCode) !== null && _x !== void 0 ? _x : "",
42663
+ country: (_z = (_y = customer.address) === null || _y === void 0 ? void 0 : _y.country) !== null && _z !== void 0 ? _z : "",
42664
+ countryCode: (_1 = (_0 = customer.address) === null || _0 === void 0 ? void 0 : _0.countryCode) !== null && _1 !== void 0 ? _1 : "",
42665
+ company: (_3 = (_2 = customer.address) === null || _2 === void 0 ? void 0 : _2.company) !== null && _3 !== void 0 ? _3 : null,
41604
42666
  },
41605
42667
  },
41606
42668
  });
41607
42669
  return;
41608
42670
  }
41609
- else if ((_y = formData.customer) === null || _y === void 0 ? void 0 : _y.email) {
42671
+ else if ((_4 = formData.customer) === null || _4 === void 0 ? void 0 : _4.email) {
41610
42672
  setFormData({
41611
42673
  customer: formData.customer,
41612
42674
  });
@@ -41616,23 +42678,26 @@ function CheckoutForm({ storeClient, checkoutId, onSuccess, onError, cancelUrl,
41616
42678
  }
41617
42679
  return;
41618
42680
  }
41619
- if (customer && !((_z = formData.customer) === null || _z === void 0 ? void 0 : _z.email)) {
42681
+ if (customer && !((_5 = formData.customer) === null || _5 === void 0 ? void 0 : _5.email)) {
41620
42682
  setStep("customer");
41621
- if ((_0 = customer.address) === null || _0 === void 0 ? void 0 : _0.city) {
42683
+ if ((_6 = customer.address) === null || _6 === void 0 ? void 0 : _6.city) {
41622
42684
  setStep("shipping");
41623
42685
  }
41624
42686
  setFormData(Object.assign(Object.assign({}, formData), { customerId: customer.id, customer: {
41625
- firstName: (_3 = (_2 = (_1 = customer.address) === null || _1 === void 0 ? void 0 : _1.name) === null || _2 === void 0 ? void 0 : _2.split(" ")[0]) !== null && _3 !== void 0 ? _3 : "",
41626
- lastName: (_6 = (_5 = (_4 = customer.address) === null || _4 === void 0 ? void 0 : _4.name) === null || _5 === void 0 ? void 0 : _5.split(" ")[1]) !== null && _6 !== void 0 ? _6 : "",
41627
- phone: (_8 = (_7 = customer.address) === null || _7 === void 0 ? void 0 : _7.phone) !== null && _8 !== void 0 ? _8 : "",
41628
- email: (_9 = customer.email) !== null && _9 !== void 0 ? _9 : "",
42687
+ firstName: (_9 = (_8 = (_7 = customer.address) === null || _7 === void 0 ? void 0 : _7.name) === null || _8 === void 0 ? void 0 : _8.split(" ")[0]) !== null && _9 !== void 0 ? _9 : "",
42688
+ lastName: (_12 = (_11 = (_10 = customer.address) === null || _10 === void 0 ? void 0 : _10.name) === null || _11 === void 0 ? void 0 : _11.split(" ")[1]) !== null && _12 !== void 0 ? _12 : "",
42689
+ phone: (_14 = (_13 = customer.address) === null || _13 === void 0 ? void 0 : _13.phone) !== null && _14 !== void 0 ? _14 : "",
42690
+ email: (_15 = customer.email) !== null && _15 !== void 0 ? _15 : "",
41629
42691
  address: {
41630
- line1: (_11 = (_10 = customer.address) === null || _10 === void 0 ? void 0 : _10.line1) !== null && _11 !== void 0 ? _11 : "",
41631
- line2: (_13 = (_12 = customer.address) === null || _12 === void 0 ? void 0 : _12.line2) !== null && _13 !== void 0 ? _13 : "",
41632
- city: (_15 = (_14 = customer.address) === null || _14 === void 0 ? void 0 : _14.city) !== null && _15 !== void 0 ? _15 : "",
41633
- zipCode: (_17 = (_16 = customer.address) === null || _16 === void 0 ? void 0 : _16.zipCode) !== null && _17 !== void 0 ? _17 : "",
41634
- country: (_19 = (_18 = customer.address) === null || _18 === void 0 ? void 0 : _18.country) !== null && _19 !== void 0 ? _19 : "",
41635
- countryCode: (_21 = (_20 = customer.address) === null || _20 === void 0 ? void 0 : _20.countryCode) !== null && _21 !== void 0 ? _21 : "",
42692
+ line1: (_17 = (_16 = customer.address) === null || _16 === void 0 ? void 0 : _16.line1) !== null && _17 !== void 0 ? _17 : "",
42693
+ line2: (_19 = (_18 = customer.address) === null || _18 === void 0 ? void 0 : _18.line2) !== null && _19 !== void 0 ? _19 : null,
42694
+ city: (_21 = (_20 = customer.address) === null || _20 === void 0 ? void 0 : _20.city) !== null && _21 !== void 0 ? _21 : "",
42695
+ province: (_23 = (_22 = customer.address) === null || _22 === void 0 ? void 0 : _22.province) !== null && _23 !== void 0 ? _23 : null,
42696
+ provinceCode: (_25 = (_24 = customer.address) === null || _24 === void 0 ? void 0 : _24.provinceCode) !== null && _25 !== void 0 ? _25 : null,
42697
+ zipCode: (_27 = (_26 = customer.address) === null || _26 === void 0 ? void 0 : _26.zipCode) !== null && _27 !== void 0 ? _27 : "",
42698
+ country: (_29 = (_28 = customer.address) === null || _28 === void 0 ? void 0 : _28.country) !== null && _29 !== void 0 ? _29 : "",
42699
+ countryCode: (_31 = (_30 = customer.address) === null || _30 === void 0 ? void 0 : _30.countryCode) !== null && _31 !== void 0 ? _31 : "",
42700
+ company: (_33 = (_32 = customer.address) === null || _32 === void 0 ? void 0 : _32.company) !== null && _33 !== void 0 ? _33 : null,
41636
42701
  },
41637
42702
  } }));
41638
42703
  }
@@ -41641,7 +42706,7 @@ function CheckoutForm({ storeClient, checkoutId, onSuccess, onError, cancelUrl,
41641
42706
  React.useEffect(() => {
41642
42707
  if (step !== "shipping")
41643
42708
  return;
41644
- if (shippingRates.length > 0)
42709
+ if (Object.keys(shippingRates).length > 0)
41645
42710
  return;
41646
42711
  const getShippingRates = () => __awaiter(this, void 0, void 0, function* () {
41647
42712
  try {
@@ -41650,7 +42715,7 @@ function CheckoutForm({ storeClient, checkoutId, onSuccess, onError, cancelUrl,
41650
42715
  }
41651
42716
  catch (error) {
41652
42717
  console.error("Failed to load shipping rates:", error);
41653
- setShippingRates([]);
42718
+ setShippingRates({});
41654
42719
  }
41655
42720
  });
41656
42721
  getShippingRates();
@@ -41794,17 +42859,17 @@ function CheckoutSummary({ appliedDiscounts, lineItems, shipping, tax, currency,
41794
42859
  const canCombine = appliedDiscounts.length === 0 || sharedCombinations.length > 0;
41795
42860
  return (jsxRuntime.jsxs("div", { className: "grid gap-5", children: [jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [jsxRuntime.jsxs("div", { onClick: () => setIsOpen(!isOpen), className: "flex items-center gap-2 max-md:cursor-pointer", children: [jsxRuntime.jsx("h2", { children: t("CheckoutEmbed.Summary.title") }), jsxRuntime.jsx(ChevronDown, { className: clsx("size-5 transition-transform md:hidden", {
41796
42861
  "rotate-180": isOpen,
41797
- }) })] }), jsxRuntime.jsx("p", { className: "text-lg font-bold tracking-tight md:hidden", children: storeHelpers.formatPrice(total, currency, exchangeRate) }), jsxRuntime.jsx(Button, { className: "max-sm:hidden", variant: "link", size: "link", onClick: onCancel, children: t("CheckoutEmbed.Summary.edit") })] }), jsxRuntime.jsx("hr", {}), jsxRuntime.jsxs("div", { className: clsx("order-4 gap-2 md:order-none", {
42862
+ }) })] }), jsxRuntime.jsx("p", { className: "text-lg font-bold tracking-tight md:hidden", children: formatPrice(total, currency, exchangeRate) }), jsxRuntime.jsx(Button, { className: "max-sm:hidden", variant: "link", size: "link", onClick: onCancel, children: t("CheckoutEmbed.Summary.edit") })] }), jsxRuntime.jsx("hr", {}), jsxRuntime.jsxs("div", { className: clsx("order-4 gap-2 md:order-none", {
41798
42863
  "hidden md:grid": !isOpen,
41799
42864
  grid: isOpen,
41800
- }), children: [jsxRuntime.jsxs("div", { className: "flex justify-between", children: [jsxRuntime.jsx("p", { children: t("CheckoutEmbed.Summary.subtotal") }), jsxRuntime.jsx("p", { children: storeHelpers.formatPrice(subtotal, currency, exchangeRate) })] }), jsxRuntime.jsxs("div", { className: "flex justify-between", children: [jsxRuntime.jsx("p", { children: t("CheckoutEmbed.Summary.shipping") }), jsxRuntime.jsx("p", { children: isShippingFree
42865
+ }), children: [jsxRuntime.jsxs("div", { className: "flex justify-between", children: [jsxRuntime.jsx("p", { children: t("CheckoutEmbed.Summary.subtotal") }), jsxRuntime.jsx("p", { children: formatPrice(subtotal, currency, exchangeRate) })] }), jsxRuntime.jsxs("div", { className: "flex justify-between", children: [jsxRuntime.jsx("p", { children: t("CheckoutEmbed.Summary.shipping") }), jsxRuntime.jsx("p", { children: isShippingFree
41801
42866
  ? t("CheckoutEmbed.Summary.free")
41802
42867
  : shippingPrice
41803
- ? storeHelpers.formatPrice(shippingPrice, currency, exchangeRate)
41804
- : t("CheckoutEmbed.Summary.calculatedAtNextStep") })] }), !!tax && (jsxRuntime.jsxs("div", { className: "flex justify-between", children: [jsxRuntime.jsx("p", { children: t("CheckoutEmbed.Summary.tax") }), jsxRuntime.jsx("p", { children: storeHelpers.formatPrice(tax, currency, exchangeRate) })] })), filteredDiscounts.map(({ discount, amount, id }) => {
42868
+ ? formatPrice(shippingPrice, currency, exchangeRate)
42869
+ : t("CheckoutEmbed.Summary.calculatedAtNextStep") })] }), !!tax && (jsxRuntime.jsxs("div", { className: "flex justify-between", children: [jsxRuntime.jsx("p", { children: t("CheckoutEmbed.Summary.tax") }), jsxRuntime.jsx("p", { children: formatPrice(tax, currency, exchangeRate) })] })), filteredDiscounts.map(({ discount, amount, id }) => {
41805
42870
  var _a;
41806
- return (jsxRuntime.jsxs("div", { className: "text-muted-foreground flex justify-between", children: [jsxRuntime.jsx(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" }), jsxRuntime.jsxs("p", { children: ["- ", storeHelpers.formatPrice(amount, currency, exchangeRate)] })] }, discount.id));
41807
- }), jsxRuntime.jsxs("div", { className: "flex items-center justify-between font-bold", children: [jsxRuntime.jsx("p", { children: t("CheckoutEmbed.Summary.total") }), jsxRuntime.jsx("p", { children: storeHelpers.formatPrice(totalWithDiscounts, currency, exchangeRate) })] })] }), canCombine && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("hr", { className: clsx("order-7 md:order-none", {
42871
+ return (jsxRuntime.jsxs("div", { className: "text-muted-foreground flex justify-between", children: [jsxRuntime.jsx(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" }), jsxRuntime.jsxs("p", { children: ["- ", formatPrice(amount, currency, exchangeRate)] })] }, discount.id));
42872
+ }), jsxRuntime.jsxs("div", { className: "flex items-center justify-between font-bold", children: [jsxRuntime.jsx("p", { children: t("CheckoutEmbed.Summary.total") }), jsxRuntime.jsx("p", { children: formatPrice(totalWithDiscounts, currency, exchangeRate) })] })] }), canCombine && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("hr", { className: clsx("order-7 md:order-none", {
41808
42873
  "hidden md:block": !isOpen,
41809
42874
  block: isOpen,
41810
42875
  }) }), jsxRuntime.jsx("div", { className: clsx("order-6 gap-0 md:order-none", {
@@ -41847,9 +42912,9 @@ function CheckoutSummary({ appliedDiscounts, lineItems, shipping, tax, currency,
41847
42912
  ((_b = item === null || item === void 0 ? void 0 : item.productData) === null || _b === void 0 ? void 0 : _b.images[0]) ||
41848
42913
  "/placeholder.svg", alt: ((_c = item.productData) === null || _c === void 0 ? void 0 : _c.title) || "", className: "h-full w-full object-cover", sizes: "64px" })) }), jsxRuntime.jsx("div", { className: "bg-primary text-background absolute -right-2 -top-2 flex h-6 w-6 items-center justify-center rounded-full text-sm", children: item.quantity })] }), jsxRuntime.jsxs("div", { className: "ml-4 flex-1", children: [jsxRuntime.jsx("h3", { className: "text-base font-medium", children: (_d = item.productData) === null || _d === void 0 ? void 0 : _d.title }), jsxRuntime.jsx("p", { className: "text-muted-foreground line-clamp-1 text-ellipsis text-sm md:max-w-[75%]", children: item.variantOptions
41849
42914
  .map((option) => `${option.name}: ${option.value}`)
41850
- .join(", ") })] }), jsxRuntime.jsx("div", { className: "text-right", children: isDiscounted ? (jsxRuntime.jsxs("div", { className: "flex flex-col", children: [jsxRuntime.jsx("p", { className: "text-muted-foreground -mb-0.5 text-sm font-medium line-through", children: storeHelpers.formatPrice((_e = finalItem === null || finalItem === void 0 ? void 0 : finalItem.priceInCents) !== null && _e !== void 0 ? _e : 0, currency, exchangeRate) }), jsxRuntime.jsx("p", { className: "text-base font-medium", children: discountedPrice <= 0
42915
+ .join(", ") })] }), jsxRuntime.jsx("div", { className: "text-right", children: isDiscounted ? (jsxRuntime.jsxs("div", { className: "flex flex-col", children: [jsxRuntime.jsx("p", { className: "text-muted-foreground -mb-0.5 text-sm font-medium line-through", children: formatPrice((_e = finalItem === null || finalItem === void 0 ? void 0 : finalItem.priceInCents) !== null && _e !== void 0 ? _e : 0, currency, exchangeRate) }), jsxRuntime.jsx("p", { className: "text-base font-medium", children: discountedPrice <= 0
41851
42916
  ? t("CheckoutEmbed.Summary.free")
41852
- : storeHelpers.formatPrice(discountedPrice, currency, exchangeRate) })] })) : (jsxRuntime.jsx("p", { className: "text-base font-medium", children: storeHelpers.formatPrice((_f = finalItem === null || finalItem === void 0 ? void 0 : finalItem.priceInCents) !== null && _f !== void 0 ? _f : 0, currency, exchangeRate) })) })] }, index));
42917
+ : formatPrice(discountedPrice, currency, exchangeRate) })] })) : (jsxRuntime.jsx("p", { className: "text-base font-medium", children: formatPrice((_f = finalItem === null || finalItem === void 0 ? void 0 : finalItem.priceInCents) !== null && _f !== void 0 ? _f : 0, currency, exchangeRate) })) })] }, index));
41853
42918
  }) })] }));
41854
42919
  }
41855
42920
  function DiscountItem({ id, removeDiscount, label, canRemove, }) {