@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.mjs CHANGED
@@ -239,15 +239,18 @@ const generateLineItemId = (item) => {
239
239
  metadata: item.metadata,
240
240
  }));
241
241
  };
242
- const useCart = create()(persist((set, get) => ({
242
+ const useCart = () => create()(persist((set, get) => ({
243
243
  lineItems: [],
244
244
  addItem: (product, additionalParams) => set((state) => {
245
245
  var _a, _b, _c;
246
246
  const productId = product.id;
247
- const selectedVariant = ((_a = product.productVariants) !== null && _a !== void 0 ? _a : []).find((v) => v.variantOptions.every((vOpt) => {
247
+ const selectedVariant = ((_a = product.productVariants) !== null && _a !== void 0 ? _a : []).find((v) => {
248
248
  var _a;
249
- 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);
250
- })) || null;
249
+ return (_a = v.variantOptions) === null || _a === void 0 ? void 0 : _a.every((vOpt) => {
250
+ var _a;
251
+ 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);
252
+ });
253
+ }) || null;
251
254
  const formattedNewItem = {
252
255
  productId: productId,
253
256
  product: product,
@@ -3501,7 +3504,7 @@ const isUndefined$1 = typeOfTest('undefined');
3501
3504
  */
3502
3505
  function isBuffer(val) {
3503
3506
  return val !== null && !isUndefined$1(val) && val.constructor !== null && !isUndefined$1(val.constructor)
3504
- && isFunction$2(val.constructor.isBuffer) && val.constructor.isBuffer(val);
3507
+ && isFunction$3(val.constructor.isBuffer) && val.constructor.isBuffer(val);
3505
3508
  }
3506
3509
 
3507
3510
  /**
@@ -3546,7 +3549,7 @@ const isString$1 = typeOfTest('string');
3546
3549
  * @param {*} val The value to test
3547
3550
  * @returns {boolean} True if value is a Function, otherwise false
3548
3551
  */
3549
- const isFunction$2 = typeOfTest('function');
3552
+ const isFunction$3 = typeOfTest('function');
3550
3553
 
3551
3554
  /**
3552
3555
  * Determine if a value is a Number
@@ -3602,7 +3605,7 @@ const isEmptyObject$1 = (val) => {
3602
3605
  if (!isObject$1(val) || isBuffer(val)) {
3603
3606
  return false;
3604
3607
  }
3605
-
3608
+
3606
3609
  try {
3607
3610
  return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;
3608
3611
  } catch (e) {
@@ -3654,7 +3657,7 @@ const isFileList = kindOfTest('FileList');
3654
3657
  *
3655
3658
  * @returns {boolean} True if value is a Stream, otherwise false
3656
3659
  */
3657
- const isStream = (val) => isObject$1(val) && isFunction$2(val.pipe);
3660
+ const isStream = (val) => isObject$1(val) && isFunction$3(val.pipe);
3658
3661
 
3659
3662
  /**
3660
3663
  * Determine if a value is a FormData
@@ -3667,10 +3670,10 @@ const isFormData = (thing) => {
3667
3670
  let kind;
3668
3671
  return thing && (
3669
3672
  (typeof FormData === 'function' && thing instanceof FormData) || (
3670
- isFunction$2(thing.append) && (
3673
+ isFunction$3(thing.append) && (
3671
3674
  (kind = kindOf(thing)) === 'formdata' ||
3672
3675
  // detect form-data instance
3673
- (kind === 'object' && isFunction$2(thing.toString) && thing.toString() === '[object FormData]')
3676
+ (kind === 'object' && isFunction$3(thing.toString) && thing.toString() === '[object FormData]')
3674
3677
  )
3675
3678
  )
3676
3679
  )
@@ -3795,7 +3798,7 @@ const isContextDefined = (context) => !isUndefined$1(context) && context !== _gl
3795
3798
  * @returns {Object} Result of all merge properties
3796
3799
  */
3797
3800
  function merge(/* obj1, obj2, obj3, ... */) {
3798
- const {caseless} = isContextDefined(this) && this || {};
3801
+ const {caseless, skipUndefined} = isContextDefined(this) && this || {};
3799
3802
  const result = {};
3800
3803
  const assignValue = (val, key) => {
3801
3804
  const targetKey = caseless && findKey(result, key) || key;
@@ -3805,7 +3808,7 @@ function merge(/* obj1, obj2, obj3, ... */) {
3805
3808
  result[targetKey] = merge({}, val);
3806
3809
  } else if (isArray(val)) {
3807
3810
  result[targetKey] = val.slice();
3808
- } else {
3811
+ } else if (!skipUndefined || !isUndefined$1(val)) {
3809
3812
  result[targetKey] = val;
3810
3813
  }
3811
3814
  };
@@ -3828,7 +3831,7 @@ function merge(/* obj1, obj2, obj3, ... */) {
3828
3831
  */
3829
3832
  const extend = (a, b, thisArg, {allOwnKeys}= {}) => {
3830
3833
  forEach(b, (val, key) => {
3831
- if (thisArg && isFunction$2(val)) {
3834
+ if (thisArg && isFunction$3(val)) {
3832
3835
  a[key] = bind(val, thisArg);
3833
3836
  } else {
3834
3837
  a[key] = val;
@@ -4044,13 +4047,13 @@ const reduceDescriptors = (obj, reducer) => {
4044
4047
  const freezeMethods = (obj) => {
4045
4048
  reduceDescriptors(obj, (descriptor, name) => {
4046
4049
  // skip restricted props in strict mode
4047
- if (isFunction$2(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {
4050
+ if (isFunction$3(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {
4048
4051
  return false;
4049
4052
  }
4050
4053
 
4051
4054
  const value = obj[name];
4052
4055
 
4053
- if (!isFunction$2(value)) return;
4056
+ if (!isFunction$3(value)) return;
4054
4057
 
4055
4058
  descriptor.enumerable = false;
4056
4059
 
@@ -4087,6 +4090,8 @@ const toFiniteNumber = (value, defaultValue) => {
4087
4090
  return value != null && Number.isFinite(value = +value) ? value : defaultValue;
4088
4091
  };
4089
4092
 
4093
+
4094
+
4090
4095
  /**
4091
4096
  * If the thing is a FormData object, return true, otherwise return false.
4092
4097
  *
@@ -4095,7 +4100,7 @@ const toFiniteNumber = (value, defaultValue) => {
4095
4100
  * @returns {boolean}
4096
4101
  */
4097
4102
  function isSpecCompliantForm(thing) {
4098
- return !!(thing && isFunction$2(thing.append) && thing[toStringTag] === 'FormData' && thing[iterator]);
4103
+ return !!(thing && isFunction$3(thing.append) && thing[toStringTag] === 'FormData' && thing[iterator]);
4099
4104
  }
4100
4105
 
4101
4106
  const toJSONObject = (obj) => {
@@ -4137,7 +4142,7 @@ const toJSONObject = (obj) => {
4137
4142
  const isAsyncFn = kindOfTest('AsyncFunction');
4138
4143
 
4139
4144
  const isThenable = (thing) =>
4140
- thing && (isObject$1(thing) || isFunction$2(thing)) && isFunction$2(thing.then) && isFunction$2(thing.catch);
4145
+ thing && (isObject$1(thing) || isFunction$3(thing)) && isFunction$3(thing.then) && isFunction$3(thing.catch);
4141
4146
 
4142
4147
  // original code
4143
4148
  // https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34
@@ -4161,7 +4166,7 @@ const _setImmediate = ((setImmediateSupported, postMessageSupported) => {
4161
4166
  })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);
4162
4167
  })(
4163
4168
  typeof setImmediate === 'function',
4164
- isFunction$2(_global.postMessage)
4169
+ isFunction$3(_global.postMessage)
4165
4170
  );
4166
4171
 
4167
4172
  const asap = typeof queueMicrotask !== 'undefined' ?
@@ -4170,7 +4175,7 @@ const asap = typeof queueMicrotask !== 'undefined' ?
4170
4175
  // *********************
4171
4176
 
4172
4177
 
4173
- const isIterable = (thing) => thing != null && isFunction$2(thing[iterator]);
4178
+ const isIterable = (thing) => thing != null && isFunction$3(thing[iterator]);
4174
4179
 
4175
4180
 
4176
4181
  var utils$1 = {
@@ -4194,7 +4199,7 @@ var utils$1 = {
4194
4199
  isFile,
4195
4200
  isBlob,
4196
4201
  isRegExp,
4197
- isFunction: isFunction$2,
4202
+ isFunction: isFunction$3,
4198
4203
  isStream,
4199
4204
  isURLSearchParams,
4200
4205
  isTypedArray,
@@ -4320,11 +4325,18 @@ AxiosError$1.from = (error, code, config, request, response, customProps) => {
4320
4325
  return prop !== 'isAxiosError';
4321
4326
  });
4322
4327
 
4323
- AxiosError$1.call(axiosError, error.message, code, config, request, response);
4328
+ const msg = error && error.message ? error.message : 'Error';
4324
4329
 
4325
- axiosError.cause = error;
4330
+ // Prefer explicit code; otherwise copy the low-level error's code (e.g. ECONNREFUSED)
4331
+ const errCode = code == null && error ? error.code : code;
4332
+ AxiosError$1.call(axiosError, msg, errCode, config, request, response);
4326
4333
 
4327
- axiosError.name = error.name;
4334
+ // Chain the original error on the standard field; non-enumerable to avoid JSON noise
4335
+ if (error && axiosError.cause == null) {
4336
+ Object.defineProperty(axiosError, 'cause', { value: error, configurable: true });
4337
+ }
4338
+
4339
+ axiosError.name = (error && error.name) || 'Error';
4328
4340
 
4329
4341
  customProps && Object.assign(axiosError, customProps);
4330
4342
 
@@ -4615,9 +4627,7 @@ function encode(val) {
4615
4627
  replace(/%3A/gi, ':').
4616
4628
  replace(/%24/g, '$').
4617
4629
  replace(/%2C/gi, ',').
4618
- replace(/%20/g, '+').
4619
- replace(/%5B/gi, '[').
4620
- replace(/%5D/gi, ']');
4630
+ replace(/%20/g, '+');
4621
4631
  }
4622
4632
 
4623
4633
  /**
@@ -5020,7 +5030,7 @@ const defaults = {
5020
5030
  const strictJSONParsing = !silentJSONParsing && JSONRequested;
5021
5031
 
5022
5032
  try {
5023
- return JSON.parse(data);
5033
+ return JSON.parse(data, this.parseReviver);
5024
5034
  } catch (e) {
5025
5035
  if (strictJSONParsing) {
5026
5036
  if (e.name === 'SyntaxError') {
@@ -5841,7 +5851,7 @@ function mergeConfig$1(config1, config2) {
5841
5851
  var resolveConfig = (config) => {
5842
5852
  const newConfig = mergeConfig$1({}, config);
5843
5853
 
5844
- let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;
5854
+ let { data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth } = newConfig;
5845
5855
 
5846
5856
  newConfig.headers = headers = AxiosHeaders$1.from(headers);
5847
5857
 
@@ -5854,17 +5864,21 @@ var resolveConfig = (config) => {
5854
5864
  );
5855
5865
  }
5856
5866
 
5857
- let contentType;
5858
-
5859
5867
  if (utils$1.isFormData(data)) {
5860
5868
  if (platform$1.hasStandardBrowserEnv || platform$1.hasStandardBrowserWebWorkerEnv) {
5861
- headers.setContentType(undefined); // Let the browser set it
5862
- } else if ((contentType = headers.getContentType()) !== false) {
5863
- // fix semicolon duplication issue for ReactNative FormData implementation
5864
- const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];
5865
- headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));
5869
+ headers.setContentType(undefined); // browser handles it
5870
+ } else if (utils$1.isFunction(data.getHeaders)) {
5871
+ // Node.js FormData (like form-data package)
5872
+ const formHeaders = data.getHeaders();
5873
+ // Only set safe headers to avoid overwriting security headers
5874
+ const allowedHeaders = ['content-type', 'content-length'];
5875
+ Object.entries(formHeaders).forEach(([key, val]) => {
5876
+ if (allowedHeaders.includes(key.toLowerCase())) {
5877
+ headers.set(key, val);
5878
+ }
5879
+ });
5866
5880
  }
5867
- }
5881
+ }
5868
5882
 
5869
5883
  // Add xsrf header
5870
5884
  // This is only done if running in a standard browser environment.
@@ -5981,15 +5995,18 @@ var xhrAdapter = isXHRAdapterSupported && function (config) {
5981
5995
  };
5982
5996
 
5983
5997
  // Handle low level network errors
5984
- request.onerror = function handleError() {
5985
- // Real errors are hidden from us by the browser
5986
- // onerror should only fire if it's a network error
5987
- reject(new AxiosError$1('Network Error', AxiosError$1.ERR_NETWORK, config, request));
5988
-
5989
- // Clean up request
5990
- request = null;
5998
+ request.onerror = function handleError(event) {
5999
+ // Browsers deliver a ProgressEvent in XHR onerror
6000
+ // (message may be empty; when present, surface it)
6001
+ // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event
6002
+ const msg = event && event.message ? event.message : 'Network Error';
6003
+ const err = new AxiosError$1(msg, AxiosError$1.ERR_NETWORK, config, request);
6004
+ // attach the underlying event for consumers who want details
6005
+ err.event = event || null;
6006
+ reject(err);
6007
+ request = null;
5991
6008
  };
5992
-
6009
+
5993
6010
  // Handle timeout
5994
6011
  request.ontimeout = function handleTimeout() {
5995
6012
  let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';
@@ -6203,14 +6220,18 @@ const trackStream = (stream, chunkSize, onProgress, onFinish) => {
6203
6220
  })
6204
6221
  };
6205
6222
 
6206
- const isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';
6207
- const isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';
6223
+ const DEFAULT_CHUNK_SIZE = 64 * 1024;
6224
+
6225
+ const {isFunction: isFunction$2} = utils$1;
6226
+
6227
+ const globalFetchAPI = (({Request, Response}) => ({
6228
+ Request, Response
6229
+ }))(utils$1.global);
6230
+
6231
+ const {
6232
+ ReadableStream: ReadableStream$1, TextEncoder
6233
+ } = utils$1.global;
6208
6234
 
6209
- // used only inside the fetch adapter
6210
- const encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?
6211
- ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :
6212
- async (str) => new Uint8Array(await new Response(str).arrayBuffer())
6213
- );
6214
6235
 
6215
6236
  const test = (fn, ...args) => {
6216
6237
  try {
@@ -6220,211 +6241,268 @@ const test = (fn, ...args) => {
6220
6241
  }
6221
6242
  };
6222
6243
 
6223
- const supportsRequestStream = isReadableStreamSupported && test(() => {
6224
- let duplexAccessed = false;
6244
+ const factory = (env) => {
6245
+ env = utils$1.merge.call({
6246
+ skipUndefined: true
6247
+ }, globalFetchAPI, env);
6225
6248
 
6226
- const hasContentType = new Request(platform$1.origin, {
6227
- body: new ReadableStream(),
6228
- method: 'POST',
6229
- get duplex() {
6230
- duplexAccessed = true;
6231
- return 'half';
6232
- },
6233
- }).headers.has('Content-Type');
6249
+ const {fetch: envFetch, Request, Response} = env;
6250
+ const isFetchSupported = envFetch ? isFunction$2(envFetch) : typeof fetch === 'function';
6251
+ const isRequestSupported = isFunction$2(Request);
6252
+ const isResponseSupported = isFunction$2(Response);
6234
6253
 
6235
- return duplexAccessed && !hasContentType;
6236
- });
6254
+ if (!isFetchSupported) {
6255
+ return false;
6256
+ }
6237
6257
 
6238
- const DEFAULT_CHUNK_SIZE = 64 * 1024;
6258
+ const isReadableStreamSupported = isFetchSupported && isFunction$2(ReadableStream$1);
6239
6259
 
6240
- const supportsResponseStream = isReadableStreamSupported &&
6241
- test(() => utils$1.isReadableStream(new Response('').body));
6260
+ const encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?
6261
+ ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :
6262
+ async (str) => new Uint8Array(await new Request(str).arrayBuffer())
6263
+ );
6242
6264
 
6265
+ const supportsRequestStream = isRequestSupported && isReadableStreamSupported && test(() => {
6266
+ let duplexAccessed = false;
6243
6267
 
6244
- const resolvers = {
6245
- stream: supportsResponseStream && ((res) => res.body)
6246
- };
6268
+ const hasContentType = new Request(platform$1.origin, {
6269
+ body: new ReadableStream$1(),
6270
+ method: 'POST',
6271
+ get duplex() {
6272
+ duplexAccessed = true;
6273
+ return 'half';
6274
+ },
6275
+ }).headers.has('Content-Type');
6247
6276
 
6248
- isFetchSupported && (((res) => {
6249
- ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {
6250
- !resolvers[type] && (resolvers[type] = utils$1.isFunction(res[type]) ? (res) => res[type]() :
6251
- (_, config) => {
6252
- throw new AxiosError$1(`Response type '${type}' is not supported`, AxiosError$1.ERR_NOT_SUPPORT, config);
6253
- });
6277
+ return duplexAccessed && !hasContentType;
6254
6278
  });
6255
- })(new Response));
6256
6279
 
6257
- const getBodyLength = async (body) => {
6258
- if (body == null) {
6259
- return 0;
6260
- }
6280
+ const supportsResponseStream = isResponseSupported && isReadableStreamSupported &&
6281
+ test(() => utils$1.isReadableStream(new Response('').body));
6261
6282
 
6262
- if(utils$1.isBlob(body)) {
6263
- return body.size;
6264
- }
6283
+ const resolvers = {
6284
+ stream: supportsResponseStream && ((res) => res.body)
6285
+ };
6265
6286
 
6266
- if(utils$1.isSpecCompliantForm(body)) {
6267
- const _request = new Request(platform$1.origin, {
6268
- method: 'POST',
6269
- body,
6287
+ isFetchSupported && ((() => {
6288
+ ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {
6289
+ !resolvers[type] && (resolvers[type] = (res, config) => {
6290
+ let method = res && res[type];
6291
+
6292
+ if (method) {
6293
+ return method.call(res);
6294
+ }
6295
+
6296
+ throw new AxiosError$1(`Response type '${type}' is not supported`, AxiosError$1.ERR_NOT_SUPPORT, config);
6297
+ });
6270
6298
  });
6271
- return (await _request.arrayBuffer()).byteLength;
6272
- }
6299
+ })());
6273
6300
 
6274
- if(utils$1.isArrayBufferView(body) || utils$1.isArrayBuffer(body)) {
6275
- return body.byteLength;
6276
- }
6301
+ const getBodyLength = async (body) => {
6302
+ if (body == null) {
6303
+ return 0;
6304
+ }
6277
6305
 
6278
- if(utils$1.isURLSearchParams(body)) {
6279
- body = body + '';
6280
- }
6306
+ if (utils$1.isBlob(body)) {
6307
+ return body.size;
6308
+ }
6281
6309
 
6282
- if(utils$1.isString(body)) {
6283
- return (await encodeText(body)).byteLength;
6284
- }
6285
- };
6310
+ if (utils$1.isSpecCompliantForm(body)) {
6311
+ const _request = new Request(platform$1.origin, {
6312
+ method: 'POST',
6313
+ body,
6314
+ });
6315
+ return (await _request.arrayBuffer()).byteLength;
6316
+ }
6286
6317
 
6287
- const resolveBodyLength = async (headers, body) => {
6288
- const length = utils$1.toFiniteNumber(headers.getContentLength());
6318
+ if (utils$1.isArrayBufferView(body) || utils$1.isArrayBuffer(body)) {
6319
+ return body.byteLength;
6320
+ }
6289
6321
 
6290
- return length == null ? getBodyLength(body) : length;
6291
- };
6322
+ if (utils$1.isURLSearchParams(body)) {
6323
+ body = body + '';
6324
+ }
6292
6325
 
6293
- var fetchAdapter = isFetchSupported && (async (config) => {
6294
- let {
6295
- url,
6296
- method,
6297
- data,
6298
- signal,
6299
- cancelToken,
6300
- timeout,
6301
- onDownloadProgress,
6302
- onUploadProgress,
6303
- responseType,
6304
- headers,
6305
- withCredentials = 'same-origin',
6306
- fetchOptions
6307
- } = resolveConfig(config);
6308
-
6309
- responseType = responseType ? (responseType + '').toLowerCase() : 'text';
6310
-
6311
- let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);
6312
-
6313
- let request;
6314
-
6315
- const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {
6326
+ if (utils$1.isString(body)) {
6327
+ return (await encodeText(body)).byteLength;
6328
+ }
6329
+ };
6330
+
6331
+ const resolveBodyLength = async (headers, body) => {
6332
+ const length = utils$1.toFiniteNumber(headers.getContentLength());
6333
+
6334
+ return length == null ? getBodyLength(body) : length;
6335
+ };
6336
+
6337
+ return async (config) => {
6338
+ let {
6339
+ url,
6340
+ method,
6341
+ data,
6342
+ signal,
6343
+ cancelToken,
6344
+ timeout,
6345
+ onDownloadProgress,
6346
+ onUploadProgress,
6347
+ responseType,
6348
+ headers,
6349
+ withCredentials = 'same-origin',
6350
+ fetchOptions
6351
+ } = resolveConfig(config);
6352
+
6353
+ let _fetch = envFetch || fetch;
6354
+
6355
+ responseType = responseType ? (responseType + '').toLowerCase() : 'text';
6356
+
6357
+ let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);
6358
+
6359
+ let request = null;
6360
+
6361
+ const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {
6316
6362
  composedSignal.unsubscribe();
6317
- });
6363
+ });
6318
6364
 
6319
- let requestContentLength;
6365
+ let requestContentLength;
6320
6366
 
6321
- try {
6322
- if (
6323
- onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&
6324
- (requestContentLength = await resolveBodyLength(headers, data)) !== 0
6325
- ) {
6326
- let _request = new Request(url, {
6327
- method: 'POST',
6328
- body: data,
6329
- duplex: "half"
6330
- });
6367
+ try {
6368
+ if (
6369
+ onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&
6370
+ (requestContentLength = await resolveBodyLength(headers, data)) !== 0
6371
+ ) {
6372
+ let _request = new Request(url, {
6373
+ method: 'POST',
6374
+ body: data,
6375
+ duplex: "half"
6376
+ });
6331
6377
 
6332
- let contentTypeHeader;
6378
+ let contentTypeHeader;
6333
6379
 
6334
- if (utils$1.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {
6335
- headers.setContentType(contentTypeHeader);
6336
- }
6380
+ if (utils$1.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {
6381
+ headers.setContentType(contentTypeHeader);
6382
+ }
6337
6383
 
6338
- if (_request.body) {
6339
- const [onProgress, flush] = progressEventDecorator(
6340
- requestContentLength,
6341
- progressEventReducer(asyncDecorator(onUploadProgress))
6342
- );
6384
+ if (_request.body) {
6385
+ const [onProgress, flush] = progressEventDecorator(
6386
+ requestContentLength,
6387
+ progressEventReducer(asyncDecorator(onUploadProgress))
6388
+ );
6343
6389
 
6344
- data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);
6390
+ data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);
6391
+ }
6345
6392
  }
6346
- }
6347
6393
 
6348
- if (!utils$1.isString(withCredentials)) {
6349
- withCredentials = withCredentials ? 'include' : 'omit';
6350
- }
6394
+ if (!utils$1.isString(withCredentials)) {
6395
+ withCredentials = withCredentials ? 'include' : 'omit';
6396
+ }
6351
6397
 
6352
- // Cloudflare Workers throws when credentials are defined
6353
- // see https://github.com/cloudflare/workerd/issues/902
6354
- const isCredentialsSupported = "credentials" in Request.prototype;
6355
- request = new Request(url, {
6356
- ...fetchOptions,
6357
- signal: composedSignal,
6358
- method: method.toUpperCase(),
6359
- headers: headers.normalize().toJSON(),
6360
- body: data,
6361
- duplex: "half",
6362
- credentials: isCredentialsSupported ? withCredentials : undefined
6363
- });
6398
+ // Cloudflare Workers throws when credentials are defined
6399
+ // see https://github.com/cloudflare/workerd/issues/902
6400
+ const isCredentialsSupported = isRequestSupported && "credentials" in Request.prototype;
6364
6401
 
6365
- let response = await fetch(request, fetchOptions);
6402
+ const resolvedOptions = {
6403
+ ...fetchOptions,
6404
+ signal: composedSignal,
6405
+ method: method.toUpperCase(),
6406
+ headers: headers.normalize().toJSON(),
6407
+ body: data,
6408
+ duplex: "half",
6409
+ credentials: isCredentialsSupported ? withCredentials : undefined
6410
+ };
6366
6411
 
6367
- const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');
6412
+ request = isRequestSupported && new Request(url, resolvedOptions);
6368
6413
 
6369
- if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {
6370
- const options = {};
6414
+ let response = await (isRequestSupported ? _fetch(request, fetchOptions) : _fetch(url, resolvedOptions));
6371
6415
 
6372
- ['status', 'statusText', 'headers'].forEach(prop => {
6373
- options[prop] = response[prop];
6374
- });
6416
+ const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');
6375
6417
 
6376
- const responseContentLength = utils$1.toFiniteNumber(response.headers.get('content-length'));
6418
+ if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {
6419
+ const options = {};
6377
6420
 
6378
- const [onProgress, flush] = onDownloadProgress && progressEventDecorator(
6379
- responseContentLength,
6380
- progressEventReducer(asyncDecorator(onDownloadProgress), true)
6381
- ) || [];
6421
+ ['status', 'statusText', 'headers'].forEach(prop => {
6422
+ options[prop] = response[prop];
6423
+ });
6382
6424
 
6383
- response = new Response(
6384
- trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {
6385
- flush && flush();
6386
- unsubscribe && unsubscribe();
6387
- }),
6388
- options
6389
- );
6390
- }
6425
+ const responseContentLength = utils$1.toFiniteNumber(response.headers.get('content-length'));
6391
6426
 
6392
- responseType = responseType || 'text';
6427
+ const [onProgress, flush] = onDownloadProgress && progressEventDecorator(
6428
+ responseContentLength,
6429
+ progressEventReducer(asyncDecorator(onDownloadProgress), true)
6430
+ ) || [];
6393
6431
 
6394
- let responseData = await resolvers[utils$1.findKey(resolvers, responseType) || 'text'](response, config);
6432
+ response = new Response(
6433
+ trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {
6434
+ flush && flush();
6435
+ unsubscribe && unsubscribe();
6436
+ }),
6437
+ options
6438
+ );
6439
+ }
6395
6440
 
6396
- !isStreamResponse && unsubscribe && unsubscribe();
6441
+ responseType = responseType || 'text';
6397
6442
 
6398
- return await new Promise((resolve, reject) => {
6399
- settle(resolve, reject, {
6400
- data: responseData,
6401
- headers: AxiosHeaders$1.from(response.headers),
6402
- status: response.status,
6403
- statusText: response.statusText,
6404
- config,
6405
- request
6406
- });
6407
- })
6408
- } catch (err) {
6409
- unsubscribe && unsubscribe();
6443
+ let responseData = await resolvers[utils$1.findKey(resolvers, responseType) || 'text'](response, config);
6410
6444
 
6411
- if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {
6412
- throw Object.assign(
6413
- new AxiosError$1('Network Error', AxiosError$1.ERR_NETWORK, config, request),
6414
- {
6415
- cause: err.cause || err
6416
- }
6417
- )
6445
+ !isStreamResponse && unsubscribe && unsubscribe();
6446
+
6447
+ return await new Promise((resolve, reject) => {
6448
+ settle(resolve, reject, {
6449
+ data: responseData,
6450
+ headers: AxiosHeaders$1.from(response.headers),
6451
+ status: response.status,
6452
+ statusText: response.statusText,
6453
+ config,
6454
+ request
6455
+ });
6456
+ })
6457
+ } catch (err) {
6458
+ unsubscribe && unsubscribe();
6459
+
6460
+ if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {
6461
+ throw Object.assign(
6462
+ new AxiosError$1('Network Error', AxiosError$1.ERR_NETWORK, config, request),
6463
+ {
6464
+ cause: err.cause || err
6465
+ }
6466
+ )
6467
+ }
6468
+
6469
+ throw AxiosError$1.from(err, err && err.code, config, request);
6418
6470
  }
6471
+ }
6472
+ };
6473
+
6474
+ const seedCache = new Map();
6475
+
6476
+ const getFetch = (config) => {
6477
+ let env = config ? config.env : {};
6478
+ const {fetch, Request, Response} = env;
6479
+ const seeds = [
6480
+ Request, Response, fetch
6481
+ ];
6482
+
6483
+ let len = seeds.length, i = len,
6484
+ seed, target, map = seedCache;
6419
6485
 
6420
- throw AxiosError$1.from(err, err && err.code, config, request);
6486
+ while (i--) {
6487
+ seed = seeds[i];
6488
+ target = map.get(seed);
6489
+
6490
+ target === undefined && map.set(seed, target = (i ? new Map() : factory(env)));
6491
+
6492
+ map = target;
6421
6493
  }
6422
- });
6494
+
6495
+ return target;
6496
+ };
6497
+
6498
+ getFetch();
6423
6499
 
6424
6500
  const knownAdapters = {
6425
6501
  http: httpAdapter,
6426
6502
  xhr: xhrAdapter,
6427
- fetch: fetchAdapter
6503
+ fetch: {
6504
+ get: getFetch,
6505
+ }
6428
6506
  };
6429
6507
 
6430
6508
  utils$1.forEach(knownAdapters, (fn, value) => {
@@ -6443,7 +6521,7 @@ const renderReason = (reason) => `- ${reason}`;
6443
6521
  const isResolvedHandle = (adapter) => utils$1.isFunction(adapter) || adapter === null || adapter === false;
6444
6522
 
6445
6523
  var adapters = {
6446
- getAdapter: (adapters) => {
6524
+ getAdapter: (adapters, config) => {
6447
6525
  adapters = utils$1.isArray(adapters) ? adapters : [adapters];
6448
6526
 
6449
6527
  const {length} = adapters;
@@ -6466,7 +6544,7 @@ var adapters = {
6466
6544
  }
6467
6545
  }
6468
6546
 
6469
- if (adapter) {
6547
+ if (adapter && (utils$1.isFunction(adapter) || (adapter = adapter.get(config)))) {
6470
6548
  break;
6471
6549
  }
6472
6550
 
@@ -6534,7 +6612,7 @@ function dispatchRequest(config) {
6534
6612
  config.headers.setContentType('application/x-www-form-urlencoded', false);
6535
6613
  }
6536
6614
 
6537
- const adapter = adapters.getAdapter(config.adapter || defaults.adapter);
6615
+ const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config);
6538
6616
 
6539
6617
  return adapter(config).then(function onAdapterResolution(response) {
6540
6618
  throwIfCancellationRequested(config);
@@ -6568,7 +6646,7 @@ function dispatchRequest(config) {
6568
6646
  });
6569
6647
  }
6570
6648
 
6571
- const VERSION$1 = "1.11.0";
6649
+ const VERSION$1 = "1.12.2";
6572
6650
 
6573
6651
  const validators$1 = {};
6574
6652
 
@@ -6824,8 +6902,6 @@ let Axios$1 = class Axios {
6824
6902
 
6825
6903
  let newConfig = config;
6826
6904
 
6827
- i = 0;
6828
-
6829
6905
  while (i < len) {
6830
6906
  const onFulfilled = requestInterceptorChain[i++];
6831
6907
  const onRejected = requestInterceptorChain[i++];
@@ -7349,10 +7425,10 @@ var Client = class {
7349
7425
  async getCheckoutShippingRates(clientSecret, checkoutId) {
7350
7426
  const apiClient = createApiClient(clientSecret, this.proxy);
7351
7427
  const data = await apiClient.get(
7352
- `/checkout/shipping/${checkoutId}`
7428
+ `/checkout/${checkoutId}/shipping/rates`
7353
7429
  );
7354
- if ("isError" in data && data.isError || !data || !Array.isArray(data)) {
7355
- return [];
7430
+ if ("isError" in data && data.isError || !data || !("rates" in data)) {
7431
+ return {};
7356
7432
  }
7357
7433
  return data;
7358
7434
  }
@@ -7447,109 +7523,11 @@ var Client = class {
7447
7523
  }
7448
7524
  };
7449
7525
  var client_default = Client;
7450
-
7451
- // src/helpers/index.ts
7452
- var currencyLocales = {
7453
- CZK: "cs-CZ",
7454
- // Czech Koruna
7455
- USD: "en-US",
7456
- // US Dollar
7457
- EUR: "de-DE",
7458
- // Euro (Germany locale)
7459
- GBP: "en-GB",
7460
- // British Pound
7461
- JPY: "ja-JP",
7462
- // Japanese Yen
7463
- AUD: "en-AU",
7464
- // Australian Dollar
7465
- CAD: "en-CA",
7466
- // Canadian Dollar
7467
- NZD: "en-NZ",
7468
- // New Zealand Dollar
7469
- SEK: "sv-SE",
7470
- // Swedish Krona
7471
- NOK: "nb-NO",
7472
- // Norwegian Krone
7473
- DKK: "da-DK",
7474
- // Danish Krone
7475
- CHF: "de-CH",
7476
- // Swiss Franc (German Switzerland)
7477
- HUF: "hu-HU",
7478
- // Hungarian Forint
7479
- PLN: "pl-PL",
7480
- // Polish Zloty
7481
- BGN: "bg-BG",
7482
- // Bulgarian Lev
7483
- RON: "ro-RO",
7484
- // Romanian Leu
7485
- RUB: "ru-RU",
7486
- // Russian Ruble
7487
- CNY: "zh-CN",
7488
- // Chinese Yuan
7489
- INR: "en-IN",
7490
- // Indian Rupee
7491
- BRL: "pt-BR",
7492
- // Brazilian Real
7493
- MXN: "es-MX",
7494
- // Mexican Peso
7495
- ZAR: "en-ZA",
7496
- // South African Rand
7497
- KRW: "ko-KR",
7498
- // South Korean Won
7499
- MYR: "ms-MY",
7500
- // Malaysian Ringgit
7501
- SGD: "en-SG",
7502
- // Singapore Dollar
7503
- TWD: "zh-TW",
7504
- // Taiwanese Dollar
7505
- THB: "th-TH",
7506
- // Thai Baht
7507
- IDR: "id-ID",
7508
- // Indonesian Rupiah
7509
- AED: "ar-AE",
7510
- // UAE Dirham
7511
- SAR: "ar-SA",
7512
- // Saudi Riyal
7513
- TRY: "tr-TR"
7514
- // Turkish Lira
7515
- };
7516
- var Helpers = class {
7517
- proxy;
7518
- constructor(proxy) {
7519
- this.proxy = proxy;
7520
- }
7521
- formatCurrency(currency) {
7522
- const locale = currencyLocales[currency.toUpperCase()] ?? void 0;
7523
- const formattedCurrency = new Intl.NumberFormat(locale, {
7524
- style: "currency",
7525
- currency,
7526
- currencyDisplay: "symbol"
7527
- });
7528
- return formattedCurrency.format(0).replace(/[\d.,\s]/g, "").trim();
7529
- }
7530
- formatPrice(priceInCents, currency, exchangeRate) {
7531
- const amount = priceInCents / 100 * (exchangeRate ?? 1);
7532
- const isWhole = amount % 1 === 0;
7533
- const locale = currencyLocales[currency.toUpperCase()] ?? void 0;
7534
- const formattedPrice = new Intl.NumberFormat(locale, {
7535
- style: "currency",
7536
- currency,
7537
- currencyDisplay: "symbol",
7538
- minimumFractionDigits: isWhole ? 0 : 2,
7539
- maximumFractionDigits: isWhole ? 0 : 2
7540
- }).format(amount);
7541
- return formattedPrice;
7542
- }
7543
- };
7544
- var helpers_default = Helpers;
7545
7526
  function createStoreClient(config) {
7546
7527
  return new client_default(config?.proxy);
7547
7528
  }
7548
- function createStoreHelpers(config) {
7549
- return new helpers_default(config?.proxy);
7550
- }
7551
7529
 
7552
- 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";
7530
+ 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";
7553
7531
 
7554
7532
  var M$1=(e,i,s,u,m,a,l,h)=>{let d=document.documentElement,w=["light","dark"];function p(n){(Array.isArray(e)?e:[e]).forEach(y=>{let k=y==="class",S=k&&a?m.map(f=>a[f]||f):m;k?(d.classList.remove(...S),d.classList.add(a&&a[n]?a[n]:n)):d.setAttribute(y,n);}),R(n);}function R(n){h&&w.includes(n)&&(d.style.colorScheme=n);}function c(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}if(u)p(u);else try{let n=localStorage.getItem(i)||s,y=l&&n==="system"?c():n;p(y);}catch(n){}};var x=React.createContext(void 0),U$1={setTheme:e=>{},themes:[]},z=()=>{var e;return (e=React.useContext(x))!=null?e:U$1};React.memo(({forcedTheme:e,storageKey:i,attribute:s,enableSystem:u,enableColorScheme:m,defaultTheme:a,value:l,themes:h,nonce:d,scriptProps:w})=>{let p=JSON.stringify([s,i,a,e,h,l,u,m]).slice(1,-1);return React.createElement("script",{...w,suppressHydrationWarning:true,nonce:typeof window=="undefined"?d:"",dangerouslySetInnerHTML:{__html:`(${M$1.toString()})(${p})`}})});
7555
7533
 
@@ -17244,14 +17222,18 @@ var ZodFirstPartyTypeKind;
17244
17222
  const stringType = ZodString.create;
17245
17223
  const numberType = ZodNumber.create;
17246
17224
  const booleanType = ZodBoolean.create;
17225
+ const dateType = ZodDate.create;
17226
+ const nullType = ZodNull.create;
17227
+ const anyType = ZodAny.create;
17247
17228
  ZodNever.create;
17248
- ZodArray.create;
17229
+ const arrayType = ZodArray.create;
17249
17230
  const objectType = ZodObject.create;
17250
- ZodUnion.create;
17231
+ const unionType = ZodUnion.create;
17251
17232
  ZodIntersection.create;
17252
17233
  ZodTuple.create;
17253
17234
  const recordType = ZodRecord.create;
17254
- ZodEnum.create;
17235
+ const lazyType = ZodLazy.create;
17236
+ const enumType = ZodEnum.create;
17255
17237
  ZodPromise.create;
17256
17238
  const optionalType = ZodOptional.create;
17257
17239
  ZodNullable.create;
@@ -17264,13 +17246,14 @@ const customerSchema = objectType({
17264
17246
  lastName: stringType().min(1, "required_error"),
17265
17247
  address: objectType({
17266
17248
  line1: stringType().min(1, "required_error"),
17267
- line2: stringType().optional(),
17249
+ line2: stringType().nullable(),
17268
17250
  city: stringType().min(1, "required_error"),
17269
- province: stringType().optional(),
17270
- provinceCode: stringType().optional(),
17251
+ province: stringType().nullable(),
17252
+ provinceCode: stringType().nullable(),
17271
17253
  zipCode: stringType().min(5, "invalid_zipCode"),
17272
17254
  country: stringType().min(1, "required_error"),
17273
17255
  countryCode: stringType().min(1, "required_error"),
17256
+ company: stringType().nullable(),
17274
17257
  }),
17275
17258
  phone: stringType().regex(phoneRegex, "invalid_phone"),
17276
17259
  isEmailSubscribed: booleanType().optional(),
@@ -17854,6 +17837,7 @@ function useController(props) {
17854
17837
  exact: true,
17855
17838
  });
17856
17839
  const _props = React__default.useRef(props);
17840
+ const _previousNameRef = React__default.useRef(undefined);
17857
17841
  const _registerProps = React__default.useRef(control.register(name, {
17858
17842
  ...props.rules,
17859
17843
  value,
@@ -17919,6 +17903,10 @@ function useController(props) {
17919
17903
  }), [name, disabled, formState.disabled, onChange, onBlur, ref, value]);
17920
17904
  React__default.useEffect(() => {
17921
17905
  const _shouldUnregisterField = control._options.shouldUnregister || shouldUnregister;
17906
+ const previousName = _previousNameRef.current;
17907
+ if (previousName && previousName !== name && !isArrayField) {
17908
+ control.unregister(previousName);
17909
+ }
17922
17910
  control.register(name, {
17923
17911
  ..._props.current.rules,
17924
17912
  ...(isBoolean(_props.current.disabled)
@@ -17940,6 +17928,7 @@ function useController(props) {
17940
17928
  }
17941
17929
  }
17942
17930
  !isArrayField && control.register(name);
17931
+ _previousNameRef.current = name;
17943
17932
  return () => {
17944
17933
  (isArrayField
17945
17934
  ? _shouldUnregisterField && !control._state.action
@@ -18045,6 +18034,26 @@ var createSubject = () => {
18045
18034
  };
18046
18035
  };
18047
18036
 
18037
+ function extractFormValues(fieldsState, formValues) {
18038
+ const values = {};
18039
+ for (const key in fieldsState) {
18040
+ if (fieldsState.hasOwnProperty(key)) {
18041
+ const fieldState = fieldsState[key];
18042
+ const fieldValue = formValues[key];
18043
+ if (fieldState && isObject(fieldState) && fieldValue) {
18044
+ const nestedFieldsState = extractFormValues(fieldState, fieldValue);
18045
+ if (isObject(nestedFieldsState)) {
18046
+ values[key] = nestedFieldsState;
18047
+ }
18048
+ }
18049
+ else if (fieldsState[key]) {
18050
+ values[key] = fieldValue;
18051
+ }
18052
+ }
18053
+ }
18054
+ return values;
18055
+ }
18056
+
18048
18057
  var isEmptyObject = (value) => isObject(value) && !Object.keys(value).length;
18049
18058
 
18050
18059
  var isFileInput = (element) => element.type === 'file';
@@ -18113,46 +18122,40 @@ var objectHasFunction = (data) => {
18113
18122
  return false;
18114
18123
  };
18115
18124
 
18125
+ function isTraversable(value) {
18126
+ return Array.isArray(value) || (isObject(value) && !objectHasFunction(value));
18127
+ }
18116
18128
  function markFieldsDirty(data, fields = {}) {
18117
- const isParentNodeArray = Array.isArray(data);
18118
- if (isObject(data) || isParentNodeArray) {
18119
- for (const key in data) {
18120
- if (Array.isArray(data[key]) ||
18121
- (isObject(data[key]) && !objectHasFunction(data[key]))) {
18122
- fields[key] = Array.isArray(data[key]) ? [] : {};
18123
- markFieldsDirty(data[key], fields[key]);
18124
- }
18125
- else if (!isNullOrUndefined(data[key])) {
18126
- fields[key] = true;
18127
- }
18129
+ for (const key in data) {
18130
+ if (isTraversable(data[key])) {
18131
+ fields[key] = Array.isArray(data[key]) ? [] : {};
18132
+ markFieldsDirty(data[key], fields[key]);
18133
+ }
18134
+ else if (!isNullOrUndefined(data[key])) {
18135
+ fields[key] = true;
18128
18136
  }
18129
18137
  }
18130
18138
  return fields;
18131
18139
  }
18132
- function getDirtyFieldsFromDefaultValues(data, formValues, dirtyFieldsFromValues) {
18133
- const isParentNodeArray = Array.isArray(data);
18134
- if (isObject(data) || isParentNodeArray) {
18135
- for (const key in data) {
18136
- if (Array.isArray(data[key]) ||
18137
- (isObject(data[key]) && !objectHasFunction(data[key]))) {
18138
- if (isUndefined(formValues) ||
18139
- isPrimitive(dirtyFieldsFromValues[key])) {
18140
- dirtyFieldsFromValues[key] = Array.isArray(data[key])
18141
- ? markFieldsDirty(data[key], [])
18142
- : { ...markFieldsDirty(data[key]) };
18143
- }
18144
- else {
18145
- getDirtyFieldsFromDefaultValues(data[key], isNullOrUndefined(formValues) ? {} : formValues[key], dirtyFieldsFromValues[key]);
18146
- }
18140
+ function getDirtyFields(data, formValues, dirtyFieldsFromValues) {
18141
+ if (!dirtyFieldsFromValues) {
18142
+ dirtyFieldsFromValues = markFieldsDirty(formValues);
18143
+ }
18144
+ for (const key in data) {
18145
+ if (isTraversable(data[key])) {
18146
+ if (isUndefined(formValues) || isPrimitive(dirtyFieldsFromValues[key])) {
18147
+ dirtyFieldsFromValues[key] = markFieldsDirty(data[key], Array.isArray(data[key]) ? [] : {});
18147
18148
  }
18148
18149
  else {
18149
- dirtyFieldsFromValues[key] = !deepEqual$1(data[key], formValues[key]);
18150
+ getDirtyFields(data[key], isNullOrUndefined(formValues) ? {} : formValues[key], dirtyFieldsFromValues[key]);
18150
18151
  }
18151
18152
  }
18153
+ else {
18154
+ dirtyFieldsFromValues[key] = !deepEqual$1(data[key], formValues[key]);
18155
+ }
18152
18156
  }
18153
18157
  return dirtyFieldsFromValues;
18154
18158
  }
18155
- var getDirtyFields = (defaultValues, formValues) => getDirtyFieldsFromDefaultValues(defaultValues, formValues, markFieldsDirty(formValues));
18156
18159
 
18157
18160
  const defaultResult = {
18158
18161
  value: false,
@@ -18386,15 +18389,13 @@ var updateFieldArrayRootError = (errors, error, name) => {
18386
18389
  return errors;
18387
18390
  };
18388
18391
 
18389
- var isMessage = (value) => isString(value);
18390
-
18391
18392
  function getValidateError(result, ref, type = 'validate') {
18392
- if (isMessage(result) ||
18393
- (Array.isArray(result) && result.every(isMessage)) ||
18393
+ if (isString(result) ||
18394
+ (Array.isArray(result) && result.every(isString)) ||
18394
18395
  (isBoolean(result) && !result)) {
18395
18396
  return {
18396
18397
  type,
18397
- message: isMessage(result) ? result : '',
18398
+ message: isString(result) ? result : '',
18398
18399
  ref,
18399
18400
  };
18400
18401
  }
@@ -18447,7 +18448,7 @@ var validateField = async (field, disabledFieldNames, formValues, validateAllFie
18447
18448
  (isBoolean(inputValue) && !inputValue) ||
18448
18449
  (isCheckBox && !getCheckboxValue(refs).isValid) ||
18449
18450
  (isRadio && !getRadioValue(refs).isValid))) {
18450
- const { value, message } = isMessage(required)
18451
+ const { value, message } = isString(required)
18451
18452
  ? { value: !!required, message: required }
18452
18453
  : getValueAndMessage(required);
18453
18454
  if (value) {
@@ -18853,11 +18854,11 @@ function createFormControl(props = {}) {
18853
18854
  const isFieldArrayRoot = _names.array.has(_f.name);
18854
18855
  const isPromiseFunction = field._f && hasPromiseValidation(field._f);
18855
18856
  if (isPromiseFunction && _proxyFormState.validatingFields) {
18856
- _updateIsValidating([name], true);
18857
+ _updateIsValidating([_f.name], true);
18857
18858
  }
18858
18859
  const fieldError = await validateField(field, _names.disabled, _formValues, shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation && !shouldOnlyCheckValid, isFieldArrayRoot);
18859
18860
  if (isPromiseFunction && _proxyFormState.validatingFields) {
18860
- _updateIsValidating([name]);
18861
+ _updateIsValidating([_f.name]);
18861
18862
  }
18862
18863
  if (fieldError[_f.name]) {
18863
18864
  context.valid = false;
@@ -19090,6 +19091,7 @@ function createFormControl(props = {}) {
19090
19091
  }
19091
19092
  if (isFieldValueUpdated) {
19092
19093
  field._f.deps &&
19094
+ (!Array.isArray(field._f.deps) || field._f.deps.length > 0) &&
19093
19095
  trigger(field._f.deps);
19094
19096
  shouldRenderByError(name, isValid, error, fieldState);
19095
19097
  }
@@ -19137,10 +19139,13 @@ function createFormControl(props = {}) {
19137
19139
  iterateFieldsByAction(_fields, _focusInput, name ? fieldNames : _names.mount);
19138
19140
  return validationResult;
19139
19141
  };
19140
- const getValues = (fieldNames) => {
19141
- const values = {
19142
+ const getValues = (fieldNames, config) => {
19143
+ let values = {
19142
19144
  ...(_state.mount ? _formValues : _defaultValues),
19143
19145
  };
19146
+ if (config) {
19147
+ values = extractFormValues(config.dirtyFields ? _formState.dirtyFields : _formState.touchedFields, values);
19148
+ }
19144
19149
  return isUndefined(fieldNames)
19145
19150
  ? values
19146
19151
  : isString(fieldNames)
@@ -24540,7 +24545,7 @@ var hideOthers = function (originalTarget, parentNode, markerName) {
24540
24545
  };
24541
24546
 
24542
24547
  var DIALOG_NAME = "Dialog";
24543
- var [createDialogContext, createDialogScope] = createContextScope(DIALOG_NAME);
24548
+ var [createDialogContext] = createContextScope(DIALOG_NAME);
24544
24549
  var [DialogProvider, useDialogContext] = createDialogContext(DIALOG_NAME);
24545
24550
  var Dialog = (props) => {
24546
24551
  const {
@@ -27588,7 +27593,7 @@ var Content = PopperContent;
27588
27593
  var Arrow = PopperArrow;
27589
27594
 
27590
27595
  var POPOVER_NAME = "Popover";
27591
- var [createPopoverContext, createPopoverScope] = createContextScope(POPOVER_NAME, [
27596
+ var [createPopoverContext] = createContextScope(POPOVER_NAME, [
27592
27597
  createPopperScope
27593
27598
  ]);
27594
27599
  var usePopperScope = createPopperScope();
@@ -40225,12 +40230,12 @@ function requireReactStripe_umd () {
40225
40230
 
40226
40231
  stripe._registerWrapper({
40227
40232
  name: 'react-stripe-js',
40228
- version: "3.9.2"
40233
+ version: "3.10.0"
40229
40234
  });
40230
40235
 
40231
40236
  stripe.registerAppInfo({
40232
40237
  name: 'react-stripe-js',
40233
- version: "3.9.2",
40238
+ version: "3.10.0",
40234
40239
  url: 'https://stripe.com/docs/stripe-js/react'
40235
40240
  });
40236
40241
  };
@@ -40582,7 +40587,9 @@ function requireReactStripe_umd () {
40582
40587
  onConfirm = _ref.onConfirm,
40583
40588
  onCancel = _ref.onCancel,
40584
40589
  onShippingAddressChange = _ref.onShippingAddressChange,
40585
- onShippingRateChange = _ref.onShippingRateChange;
40590
+ onShippingRateChange = _ref.onShippingRateChange,
40591
+ onSavedPaymentMethodRemove = _ref.onSavedPaymentMethodRemove,
40592
+ onSavedPaymentMethodUpdate = _ref.onSavedPaymentMethodUpdate;
40586
40593
  var ctx = useElementsOrCheckoutSdkContextWithUseCase("mounts <".concat(displayName, ">"));
40587
40594
  var elements = 'elements' in ctx ? ctx.elements : null;
40588
40595
  var checkoutSdk = 'checkoutSdk' in ctx ? ctx.checkoutSdk : null;
@@ -40608,6 +40615,8 @@ function requireReactStripe_umd () {
40608
40615
  useAttachEvent(element, 'cancel', onCancel);
40609
40616
  useAttachEvent(element, 'shippingaddresschange', onShippingAddressChange);
40610
40617
  useAttachEvent(element, 'shippingratechange', onShippingRateChange);
40618
+ useAttachEvent(element, 'savedpaymentmethodremove', onSavedPaymentMethodRemove);
40619
+ useAttachEvent(element, 'savedpaymentmethodupdate', onSavedPaymentMethodUpdate);
40611
40620
  useAttachEvent(element, 'change', onChange);
40612
40621
  var readyCallback;
40613
40622
 
@@ -40739,6 +40748,8 @@ function requireReactStripe_umd () {
40739
40748
  onCancel: PropTypes.func,
40740
40749
  onShippingAddressChange: PropTypes.func,
40741
40750
  onShippingRateChange: PropTypes.func,
40751
+ onSavedPaymentMethodRemove: PropTypes.func,
40752
+ onSavedPaymentMethodUpdate: PropTypes.func,
40742
40753
  options: PropTypes.object
40743
40754
  };
40744
40755
  Element.displayName = displayName;
@@ -41405,7 +41416,1052 @@ function Skeleton(_a) {
41405
41416
  return (jsx("div", Object.assign({ "data-slot": "skeleton", className: cn("bg-accent animate-pulse rounded-md", className) }, props)));
41406
41417
  }
41407
41418
 
41408
- const storeHelpers = createStoreHelpers();
41419
+ // src/api/checkout/index.ts
41420
+ var SchemaHelpers = {
41421
+ OrderBy: {
41422
+ singleField: enumType(["asc", "desc"]).optional()
41423
+ },
41424
+ Select: {
41425
+ singleField: booleanType().optional()
41426
+ },
41427
+ WhereUnique: {
41428
+ stringFilter: stringType().optional()
41429
+ },
41430
+ Where: {
41431
+ // StringFilter with all Prisma operations
41432
+ stringFilter: unionType([
41433
+ stringType(),
41434
+ objectType({
41435
+ equals: stringType().optional(),
41436
+ in: arrayType(stringType()).optional(),
41437
+ notIn: arrayType(stringType()).optional(),
41438
+ lt: stringType().optional(),
41439
+ lte: stringType().optional(),
41440
+ gt: stringType().optional(),
41441
+ gte: stringType().optional(),
41442
+ contains: stringType().optional(),
41443
+ startsWith: stringType().optional(),
41444
+ endsWith: stringType().optional(),
41445
+ mode: enumType(["default", "insensitive"]).optional(),
41446
+ not: objectType({
41447
+ equals: stringType().optional(),
41448
+ in: arrayType(stringType()).optional(),
41449
+ notIn: arrayType(stringType()).optional(),
41450
+ lt: stringType().optional(),
41451
+ lte: stringType().optional(),
41452
+ gt: stringType().optional(),
41453
+ gte: stringType().optional(),
41454
+ contains: stringType().optional(),
41455
+ startsWith: stringType().optional(),
41456
+ endsWith: stringType().optional(),
41457
+ mode: enumType(["default", "insensitive"]).optional()
41458
+ }).optional()
41459
+ }).strict()
41460
+ ]).optional(),
41461
+ // StringNullableFilter with all Prisma operations
41462
+ stringNullableFilter: unionType([
41463
+ stringType(),
41464
+ nullType(),
41465
+ objectType({
41466
+ equals: unionType([stringType(), nullType()]).optional(),
41467
+ in: arrayType(stringType()).optional(),
41468
+ notIn: arrayType(stringType()).optional(),
41469
+ lt: stringType().optional(),
41470
+ lte: stringType().optional(),
41471
+ gt: stringType().optional(),
41472
+ gte: stringType().optional(),
41473
+ contains: stringType().optional(),
41474
+ startsWith: stringType().optional(),
41475
+ endsWith: stringType().optional(),
41476
+ mode: enumType(["default", "insensitive"]).optional(),
41477
+ not: objectType({
41478
+ equals: unionType([stringType(), nullType()]).optional(),
41479
+ in: arrayType(stringType()).optional(),
41480
+ notIn: arrayType(stringType()).optional(),
41481
+ lt: stringType().optional(),
41482
+ lte: stringType().optional(),
41483
+ gt: stringType().optional(),
41484
+ gte: stringType().optional(),
41485
+ contains: stringType().optional(),
41486
+ startsWith: stringType().optional(),
41487
+ endsWith: stringType().optional(),
41488
+ mode: enumType(["default", "insensitive"]).optional()
41489
+ }).optional()
41490
+ }).strict()
41491
+ ]).optional(),
41492
+ // StringNullableListFilter with all Prisma operations
41493
+ stringNullableListFilter: objectType({
41494
+ equals: unionType([arrayType(stringType()), nullType()]).optional(),
41495
+ has: unionType([stringType(), nullType()]).optional(),
41496
+ hasEvery: arrayType(stringType()).optional(),
41497
+ hasSome: arrayType(stringType()).optional(),
41498
+ isEmpty: booleanType().optional()
41499
+ }).strict().optional(),
41500
+ // IntFilter with all Prisma operations
41501
+ intFilter: unionType([
41502
+ numberType(),
41503
+ objectType({
41504
+ equals: numberType().optional(),
41505
+ in: arrayType(numberType()).optional(),
41506
+ notIn: arrayType(numberType()).optional(),
41507
+ lt: numberType().optional(),
41508
+ lte: numberType().optional(),
41509
+ gt: numberType().optional(),
41510
+ gte: numberType().optional(),
41511
+ not: objectType({
41512
+ equals: numberType().optional(),
41513
+ in: arrayType(numberType()).optional(),
41514
+ notIn: arrayType(numberType()).optional(),
41515
+ lt: numberType().optional(),
41516
+ lte: numberType().optional(),
41517
+ gt: numberType().optional(),
41518
+ gte: numberType().optional()
41519
+ }).optional()
41520
+ }).strict()
41521
+ ]).optional(),
41522
+ // IntNullableFilter with all Prisma operations
41523
+ intNullableFilter: unionType([
41524
+ numberType(),
41525
+ objectType({
41526
+ equals: numberType().optional(),
41527
+ in: arrayType(numberType()).optional(),
41528
+ notIn: arrayType(numberType()).optional(),
41529
+ lt: numberType().optional(),
41530
+ lte: numberType().optional(),
41531
+ gt: numberType().optional(),
41532
+ gte: numberType().optional(),
41533
+ not: objectType({
41534
+ equals: numberType().optional(),
41535
+ in: arrayType(numberType()).optional(),
41536
+ notIn: arrayType(numberType()).optional(),
41537
+ lt: numberType().optional(),
41538
+ lte: numberType().optional(),
41539
+ gt: numberType().optional(),
41540
+ gte: numberType().optional()
41541
+ }).optional(),
41542
+ isSet: booleanType().optional()
41543
+ }).strict()
41544
+ ]).optional(),
41545
+ // BoolFilter with all Prisma operations
41546
+ boolFilter: unionType([
41547
+ booleanType(),
41548
+ objectType({
41549
+ equals: booleanType().optional(),
41550
+ not: objectType({
41551
+ equals: booleanType().optional()
41552
+ }).optional()
41553
+ }).strict()
41554
+ ]).optional(),
41555
+ // DateTimeFilter with all Prisma operations
41556
+ dateTimeFilter: unionType([
41557
+ stringType(),
41558
+ dateType(),
41559
+ objectType({
41560
+ equals: unionType([stringType(), dateType()]).optional(),
41561
+ in: unionType([stringType().array(), dateType().array()]).optional(),
41562
+ notIn: unionType([stringType().array(), dateType().array()]).optional(),
41563
+ lt: unionType([stringType(), dateType()]).optional(),
41564
+ lte: unionType([stringType(), dateType()]).optional(),
41565
+ gt: unionType([stringType(), dateType()]).optional(),
41566
+ gte: unionType([stringType(), dateType()]).optional(),
41567
+ not: objectType({
41568
+ equals: unionType([stringType(), dateType()]).optional(),
41569
+ in: unionType([stringType().array(), dateType().array()]).optional(),
41570
+ notIn: unionType([stringType().array(), dateType().array()]).optional(),
41571
+ lt: unionType([stringType(), dateType()]).optional(),
41572
+ lte: unionType([stringType(), dateType()]).optional(),
41573
+ gt: unionType([stringType(), dateType()]).optional(),
41574
+ gte: unionType([stringType(), dateType()]).optional()
41575
+ }).optional()
41576
+ }).strict()
41577
+ ]).optional(),
41578
+ // DateTimeNullableFilter with all Prisma operations
41579
+ dateTimeNullableFilter: unionType([
41580
+ stringType(),
41581
+ dateType(),
41582
+ objectType({
41583
+ equals: unionType([stringType(), dateType()]).optional(),
41584
+ in: unionType([stringType().array(), dateType().array()]).optional(),
41585
+ notIn: unionType([stringType().array(), dateType().array()]).optional(),
41586
+ lt: unionType([stringType(), dateType()]).optional(),
41587
+ lte: unionType([stringType(), dateType()]).optional(),
41588
+ gt: unionType([stringType(), dateType()]).optional(),
41589
+ gte: unionType([stringType(), dateType()]).optional(),
41590
+ not: objectType({
41591
+ equals: unionType([stringType(), dateType()]).optional(),
41592
+ in: unionType([stringType().array(), dateType().array()]).optional(),
41593
+ notIn: unionType([stringType().array(), dateType().array()]).optional(),
41594
+ lt: unionType([stringType(), dateType()]).optional(),
41595
+ lte: unionType([stringType(), dateType()]).optional(),
41596
+ gt: unionType([stringType(), dateType()]).optional(),
41597
+ gte: unionType([stringType(), dateType()]).optional()
41598
+ }).optional(),
41599
+ isSet: booleanType().optional()
41600
+ }).strict()
41601
+ ]).optional(),
41602
+ // EnumFilter with all Prisma operations
41603
+ enumFilter: (values) => unionType([
41604
+ enumType(values),
41605
+ objectType({
41606
+ equals: enumType(values).optional(),
41607
+ in: arrayType(enumType(values)).optional(),
41608
+ notIn: arrayType(enumType(values)).optional(),
41609
+ not: lazyType(() => enumType(values)).optional()
41610
+ }).strict()
41611
+ ]).optional(),
41612
+ // JsonNullableFilter with all Prisma operations
41613
+ jsonNullableFilter: unionType([
41614
+ anyType(),
41615
+ nullType(),
41616
+ objectType({
41617
+ equals: anyType().optional(),
41618
+ not: anyType().optional(),
41619
+ isSet: booleanType().optional()
41620
+ }).strict()
41621
+ ]).optional(),
41622
+ // Legacy filters for backward compatibility
41623
+ arrayFilter: arrayType(stringType()).optional(),
41624
+ objectFilter: objectType({}).optional()
41625
+ }
41626
+ };
41627
+ var getSelectCompositeType = (zodObject) => {
41628
+ return lazyType(
41629
+ () => unionType([booleanType(), objectType({ select: objectType(zodObject) })]).optional()
41630
+ );
41631
+ };
41632
+ var productOptionSelectSchema = getSelectCompositeType({
41633
+ name: booleanType().optional(),
41634
+ values: booleanType().optional()
41635
+ });
41636
+ var inventoryItemSelectSchema = getSelectCompositeType({
41637
+ id: SchemaHelpers.Select.singleField,
41638
+ createdAt: SchemaHelpers.Select.singleField,
41639
+ updatedAt: SchemaHelpers.Select.singleField,
41640
+ trackInventory: SchemaHelpers.Select.singleField,
41641
+ stockPolicy: SchemaHelpers.Select.singleField,
41642
+ variantId: SchemaHelpers.Select.singleField,
41643
+ productId: SchemaHelpers.Select.singleField,
41644
+ levels: getSelectCompositeType({
41645
+ id: SchemaHelpers.Select.singleField,
41646
+ createdAt: SchemaHelpers.Select.singleField,
41647
+ updatedAt: SchemaHelpers.Select.singleField,
41648
+ available: SchemaHelpers.Select.singleField,
41649
+ reserved: SchemaHelpers.Select.singleField,
41650
+ incoming: SchemaHelpers.Select.singleField,
41651
+ locationId: SchemaHelpers.Select.singleField,
41652
+ inventoryItemId: SchemaHelpers.Select.singleField,
41653
+ location: getSelectCompositeType({
41654
+ id: SchemaHelpers.Select.singleField,
41655
+ createdAt: SchemaHelpers.Select.singleField,
41656
+ updatedAt: SchemaHelpers.Select.singleField,
41657
+ name: SchemaHelpers.Select.singleField,
41658
+ address: SchemaHelpers.Select.singleField,
41659
+ city: SchemaHelpers.Select.singleField,
41660
+ province: SchemaHelpers.Select.singleField,
41661
+ country: SchemaHelpers.Select.singleField,
41662
+ postalCode: SchemaHelpers.Select.singleField,
41663
+ phone: SchemaHelpers.Select.singleField,
41664
+ email: SchemaHelpers.Select.singleField
41665
+ })
41666
+ }),
41667
+ variant: getSelectCompositeType({
41668
+ id: SchemaHelpers.Select.singleField,
41669
+ createdAt: SchemaHelpers.Select.singleField,
41670
+ updatedAt: SchemaHelpers.Select.singleField,
41671
+ title: SchemaHelpers.Select.singleField,
41672
+ description: SchemaHelpers.Select.singleField,
41673
+ images: SchemaHelpers.Select.singleField,
41674
+ sku: SchemaHelpers.Select.singleField,
41675
+ barcode: SchemaHelpers.Select.singleField,
41676
+ isPhysical: SchemaHelpers.Select.singleField,
41677
+ weightInGrams: SchemaHelpers.Select.singleField,
41678
+ heightInCm: SchemaHelpers.Select.singleField,
41679
+ widthInCm: SchemaHelpers.Select.singleField,
41680
+ lengthInCm: SchemaHelpers.Select.singleField,
41681
+ priceInCents: SchemaHelpers.Select.singleField,
41682
+ billingType: SchemaHelpers.Select.singleField,
41683
+ billingInterval: SchemaHelpers.Select.singleField,
41684
+ billingIntervalCount: SchemaHelpers.Select.singleField,
41685
+ metadata: SchemaHelpers.Select.singleField,
41686
+ productId: SchemaHelpers.Select.singleField,
41687
+ variantOptions: getSelectCompositeType({
41688
+ name: SchemaHelpers.Select.singleField,
41689
+ value: SchemaHelpers.Select.singleField
41690
+ })
41691
+ })
41692
+ });
41693
+ var productVendorSelectSchema = getSelectCompositeType({
41694
+ id: SchemaHelpers.Select.singleField,
41695
+ createdAt: SchemaHelpers.Select.singleField,
41696
+ updatedAt: SchemaHelpers.Select.singleField,
41697
+ name: SchemaHelpers.Select.singleField,
41698
+ metadata: SchemaHelpers.Select.singleField,
41699
+ isDropshipped: SchemaHelpers.Select.singleField,
41700
+ shippingProfileIDs: SchemaHelpers.Select.singleField,
41701
+ products: getSelectCompositeType({
41702
+ id: SchemaHelpers.Select.singleField,
41703
+ createdAt: SchemaHelpers.Select.singleField,
41704
+ updatedAt: SchemaHelpers.Select.singleField,
41705
+ title: SchemaHelpers.Select.singleField,
41706
+ description: SchemaHelpers.Select.singleField,
41707
+ images: SchemaHelpers.Select.singleField,
41708
+ category: SchemaHelpers.Select.singleField,
41709
+ tags: SchemaHelpers.Select.singleField,
41710
+ isPhysical: SchemaHelpers.Select.singleField,
41711
+ weightInGrams: SchemaHelpers.Select.singleField,
41712
+ heightInCm: SchemaHelpers.Select.singleField,
41713
+ widthInCm: SchemaHelpers.Select.singleField,
41714
+ lengthInCm: SchemaHelpers.Select.singleField,
41715
+ priceInCents: SchemaHelpers.Select.singleField,
41716
+ billingType: SchemaHelpers.Select.singleField,
41717
+ billingInterval: SchemaHelpers.Select.singleField,
41718
+ billingIntervalCount: SchemaHelpers.Select.singleField,
41719
+ sku: SchemaHelpers.Select.singleField,
41720
+ barcode: SchemaHelpers.Select.singleField,
41721
+ seoPageTitle: SchemaHelpers.Select.singleField,
41722
+ seoDescription: SchemaHelpers.Select.singleField,
41723
+ seoHandle: SchemaHelpers.Select.singleField,
41724
+ productVendorId: SchemaHelpers.Select.singleField,
41725
+ metadata: SchemaHelpers.Select.singleField,
41726
+ status: SchemaHelpers.Select.singleField,
41727
+ collectionIDs: SchemaHelpers.Select.singleField,
41728
+ shippingProfileIDs: SchemaHelpers.Select.singleField
41729
+ }),
41730
+ shippingProfiles: getSelectCompositeType({
41731
+ id: SchemaHelpers.Select.singleField,
41732
+ createdAt: SchemaHelpers.Select.singleField,
41733
+ updatedAt: SchemaHelpers.Select.singleField,
41734
+ name: SchemaHelpers.Select.singleField,
41735
+ description: SchemaHelpers.Select.singleField,
41736
+ metadata: SchemaHelpers.Select.singleField
41737
+ })
41738
+ });
41739
+ var productVariantSelectSchema = getSelectCompositeType({
41740
+ id: SchemaHelpers.Select.singleField,
41741
+ createdAt: SchemaHelpers.Select.singleField,
41742
+ updatedAt: SchemaHelpers.Select.singleField,
41743
+ title: SchemaHelpers.Select.singleField,
41744
+ description: SchemaHelpers.Select.singleField,
41745
+ images: SchemaHelpers.Select.singleField,
41746
+ sku: SchemaHelpers.Select.singleField,
41747
+ barcode: SchemaHelpers.Select.singleField,
41748
+ isPhysical: SchemaHelpers.Select.singleField,
41749
+ weightInGrams: SchemaHelpers.Select.singleField,
41750
+ heightInCm: SchemaHelpers.Select.singleField,
41751
+ widthInCm: SchemaHelpers.Select.singleField,
41752
+ lengthInCm: SchemaHelpers.Select.singleField,
41753
+ priceInCents: SchemaHelpers.Select.singleField,
41754
+ billingType: SchemaHelpers.Select.singleField,
41755
+ billingInterval: SchemaHelpers.Select.singleField,
41756
+ billingIntervalCount: SchemaHelpers.Select.singleField,
41757
+ metadata: SchemaHelpers.Select.singleField,
41758
+ productId: SchemaHelpers.Select.singleField,
41759
+ variantOptions: getSelectCompositeType({
41760
+ name: SchemaHelpers.Select.singleField,
41761
+ value: SchemaHelpers.Select.singleField
41762
+ }),
41763
+ product: getSelectCompositeType({
41764
+ id: SchemaHelpers.Select.singleField,
41765
+ createdAt: SchemaHelpers.Select.singleField,
41766
+ updatedAt: SchemaHelpers.Select.singleField,
41767
+ title: SchemaHelpers.Select.singleField,
41768
+ description: SchemaHelpers.Select.singleField,
41769
+ images: SchemaHelpers.Select.singleField,
41770
+ category: SchemaHelpers.Select.singleField,
41771
+ tags: SchemaHelpers.Select.singleField,
41772
+ isPhysical: SchemaHelpers.Select.singleField,
41773
+ weightInGrams: SchemaHelpers.Select.singleField,
41774
+ heightInCm: SchemaHelpers.Select.singleField,
41775
+ widthInCm: SchemaHelpers.Select.singleField,
41776
+ lengthInCm: SchemaHelpers.Select.singleField,
41777
+ priceInCents: SchemaHelpers.Select.singleField,
41778
+ billingType: SchemaHelpers.Select.singleField,
41779
+ billingInterval: SchemaHelpers.Select.singleField,
41780
+ billingIntervalCount: SchemaHelpers.Select.singleField,
41781
+ sku: SchemaHelpers.Select.singleField,
41782
+ barcode: SchemaHelpers.Select.singleField,
41783
+ seoPageTitle: SchemaHelpers.Select.singleField,
41784
+ seoDescription: SchemaHelpers.Select.singleField,
41785
+ seoHandle: SchemaHelpers.Select.singleField,
41786
+ productVendorId: SchemaHelpers.Select.singleField,
41787
+ metadata: SchemaHelpers.Select.singleField,
41788
+ status: SchemaHelpers.Select.singleField,
41789
+ collectionIDs: SchemaHelpers.Select.singleField,
41790
+ shippingProfileIDs: SchemaHelpers.Select.singleField
41791
+ }),
41792
+ inventoryItem: inventoryItemSelectSchema
41793
+ });
41794
+ var collectionSelectSchema = getSelectCompositeType({
41795
+ id: SchemaHelpers.Select.singleField,
41796
+ createdAt: SchemaHelpers.Select.singleField,
41797
+ updatedAt: SchemaHelpers.Select.singleField,
41798
+ title: SchemaHelpers.Select.singleField,
41799
+ description: SchemaHelpers.Select.singleField,
41800
+ images: SchemaHelpers.Select.singleField,
41801
+ tags: SchemaHelpers.Select.singleField,
41802
+ seoPageTitle: SchemaHelpers.Select.singleField,
41803
+ seoDescription: SchemaHelpers.Select.singleField,
41804
+ seoHandle: SchemaHelpers.Select.singleField,
41805
+ type: SchemaHelpers.Select.singleField,
41806
+ rulesMatchType: SchemaHelpers.Select.singleField,
41807
+ rules: SchemaHelpers.Select.singleField,
41808
+ productIDs: SchemaHelpers.Select.singleField,
41809
+ shippingProfileIDs: SchemaHelpers.Select.singleField,
41810
+ products: getSelectCompositeType({
41811
+ id: SchemaHelpers.Select.singleField,
41812
+ createdAt: SchemaHelpers.Select.singleField,
41813
+ updatedAt: SchemaHelpers.Select.singleField,
41814
+ title: SchemaHelpers.Select.singleField,
41815
+ description: SchemaHelpers.Select.singleField,
41816
+ images: SchemaHelpers.Select.singleField,
41817
+ category: SchemaHelpers.Select.singleField,
41818
+ tags: SchemaHelpers.Select.singleField,
41819
+ isPhysical: SchemaHelpers.Select.singleField,
41820
+ weightInGrams: SchemaHelpers.Select.singleField,
41821
+ heightInCm: SchemaHelpers.Select.singleField,
41822
+ widthInCm: SchemaHelpers.Select.singleField,
41823
+ lengthInCm: SchemaHelpers.Select.singleField,
41824
+ priceInCents: SchemaHelpers.Select.singleField,
41825
+ billingType: SchemaHelpers.Select.singleField,
41826
+ billingInterval: SchemaHelpers.Select.singleField,
41827
+ billingIntervalCount: SchemaHelpers.Select.singleField,
41828
+ sku: SchemaHelpers.Select.singleField,
41829
+ barcode: SchemaHelpers.Select.singleField,
41830
+ seoPageTitle: SchemaHelpers.Select.singleField,
41831
+ seoDescription: SchemaHelpers.Select.singleField,
41832
+ seoHandle: SchemaHelpers.Select.singleField,
41833
+ productVendorId: SchemaHelpers.Select.singleField,
41834
+ metadata: SchemaHelpers.Select.singleField,
41835
+ status: SchemaHelpers.Select.singleField,
41836
+ collectionIDs: SchemaHelpers.Select.singleField,
41837
+ shippingProfileIDs: SchemaHelpers.Select.singleField
41838
+ }),
41839
+ shippingProfiles: getSelectCompositeType({
41840
+ id: SchemaHelpers.Select.singleField,
41841
+ createdAt: SchemaHelpers.Select.singleField,
41842
+ updatedAt: SchemaHelpers.Select.singleField,
41843
+ name: SchemaHelpers.Select.singleField,
41844
+ description: SchemaHelpers.Select.singleField,
41845
+ metadata: SchemaHelpers.Select.singleField
41846
+ })
41847
+ });
41848
+ var ProductSelectComplexSchemas = {
41849
+ options: productOptionSelectSchema,
41850
+ inventoryItem: inventoryItemSelectSchema,
41851
+ productVendor: productVendorSelectSchema,
41852
+ productVariants: productVariantSelectSchema,
41853
+ collections: collectionSelectSchema
41854
+ };
41855
+
41856
+ // src/api/products/select/schema.ts
41857
+ lazyType(
41858
+ () => objectType(ProductSelectSchemaBody).strict()
41859
+ );
41860
+ var ProductSelectSchemaBody = {
41861
+ id: SchemaHelpers.Select.singleField,
41862
+ createdAt: SchemaHelpers.Select.singleField,
41863
+ updatedAt: SchemaHelpers.Select.singleField,
41864
+ title: SchemaHelpers.Select.singleField,
41865
+ description: SchemaHelpers.Select.singleField,
41866
+ images: SchemaHelpers.Select.singleField,
41867
+ category: SchemaHelpers.Select.singleField,
41868
+ tags: SchemaHelpers.Select.singleField,
41869
+ isPhysical: SchemaHelpers.Select.singleField,
41870
+ weightInGrams: SchemaHelpers.Select.singleField,
41871
+ heightInCm: SchemaHelpers.Select.singleField,
41872
+ widthInCm: SchemaHelpers.Select.singleField,
41873
+ lengthInCm: SchemaHelpers.Select.singleField,
41874
+ priceInCents: SchemaHelpers.Select.singleField,
41875
+ billingType: SchemaHelpers.Select.singleField,
41876
+ billingInterval: SchemaHelpers.Select.singleField,
41877
+ billingIntervalCount: SchemaHelpers.Select.singleField,
41878
+ sku: SchemaHelpers.Select.singleField,
41879
+ barcode: SchemaHelpers.Select.singleField,
41880
+ seoPageTitle: SchemaHelpers.Select.singleField,
41881
+ seoDescription: SchemaHelpers.Select.singleField,
41882
+ seoHandle: SchemaHelpers.Select.singleField,
41883
+ productVendorId: SchemaHelpers.Select.singleField,
41884
+ metadata: SchemaHelpers.Select.singleField,
41885
+ status: SchemaHelpers.Select.singleField,
41886
+ collectionIDs: SchemaHelpers.Select.singleField,
41887
+ shippingProfileIDs: SchemaHelpers.Select.singleField,
41888
+ // Complex relation fields
41889
+ options: ProductSelectComplexSchemas.options,
41890
+ inventoryItem: ProductSelectComplexSchemas.inventoryItem,
41891
+ productVendor: ProductSelectComplexSchemas.productVendor,
41892
+ productVariants: ProductSelectComplexSchemas.productVariants,
41893
+ collections: ProductSelectComplexSchemas.collections
41894
+ // shippingProfiles: boolean | Product$shippingProfilesArgs<ExtArgs> | undefined | undefined;
41895
+ // _count: boolean | ProductCountOutputTypeDefaultArgs<ExtArgs> | undefined | undefined;
41896
+ };
41897
+ var getSelectCompositeType2 = (zodObject) => {
41898
+ return lazyType(
41899
+ () => unionType([booleanType(), objectType({ select: objectType(zodObject) })]).optional()
41900
+ );
41901
+ };
41902
+ var collectionProductSelect = getSelectCompositeType2({
41903
+ ...ProductSelectSchemaBody
41904
+ });
41905
+ var CollectionSelectComplexSchemas = {
41906
+ products: collectionProductSelect
41907
+ };
41908
+
41909
+ // src/api/collections/select/schema.ts
41910
+ lazyType(
41911
+ () => objectType(CollectionSelectSchemaBody).strict()
41912
+ );
41913
+ var CollectionSelectSchemaBody = {
41914
+ id: SchemaHelpers.Select.singleField,
41915
+ createdAt: SchemaHelpers.Select.singleField,
41916
+ updatedAt: SchemaHelpers.Select.singleField,
41917
+ title: SchemaHelpers.Select.singleField,
41918
+ description: SchemaHelpers.Select.singleField,
41919
+ images: SchemaHelpers.Select.singleField,
41920
+ tags: SchemaHelpers.Select.singleField,
41921
+ seoPageTitle: SchemaHelpers.Select.singleField,
41922
+ seoDescription: SchemaHelpers.Select.singleField,
41923
+ seoHandle: SchemaHelpers.Select.singleField,
41924
+ type: SchemaHelpers.Select.singleField,
41925
+ rulesMatchType: SchemaHelpers.Select.singleField,
41926
+ rules: SchemaHelpers.Select.singleField,
41927
+ productIDs: SchemaHelpers.Select.singleField,
41928
+ organizationId: SchemaHelpers.Select.singleField,
41929
+ shippingProfileIDs: SchemaHelpers.Select.singleField,
41930
+ products: CollectionSelectComplexSchemas.products
41931
+ // shippingProfiles: boolean | Collection$shippingProfilesArgs<ExtArgs> | undefined | undefined;
41932
+ // _count: boolean | CollectionCountOutputTypeDefaultArgs<ExtArgs> | undefined | undefined;
41933
+ };
41934
+ var productOptionObjectEqualityInputSchema = objectType({
41935
+ name: stringType(),
41936
+ values: arrayType(stringType()).optional()
41937
+ });
41938
+ var productOptionCompositeListFilterSchema = objectType({
41939
+ equals: arrayType(productOptionObjectEqualityInputSchema).optional(),
41940
+ every: lazyType(() => productOptionWhereInputSchema).optional(),
41941
+ some: lazyType(() => productOptionWhereInputSchema).optional(),
41942
+ none: lazyType(() => productOptionWhereInputSchema).optional(),
41943
+ isEmpty: booleanType().optional(),
41944
+ isSet: booleanType().optional()
41945
+ });
41946
+ var productOptionWhereInputSchema = objectType({
41947
+ AND: unionType([
41948
+ lazyType(() => productOptionWhereInputSchema),
41949
+ arrayType(lazyType(() => productOptionWhereInputSchema))
41950
+ ]).optional(),
41951
+ OR: arrayType(lazyType(() => productOptionWhereInputSchema)).optional(),
41952
+ NOT: unionType([
41953
+ lazyType(() => productOptionWhereInputSchema),
41954
+ arrayType(lazyType(() => productOptionWhereInputSchema))
41955
+ ]).optional(),
41956
+ name: unionType([stringType(), objectType({})]).optional(),
41957
+ // StringFilter
41958
+ values: anyType().optional()
41959
+ // StringNullableListFilter
41960
+ });
41961
+ var inventoryItemWhereInputSchema = objectType({
41962
+ AND: unionType([
41963
+ lazyType(() => inventoryItemWhereInputSchema),
41964
+ arrayType(lazyType(() => inventoryItemWhereInputSchema))
41965
+ ]).optional(),
41966
+ OR: arrayType(lazyType(() => inventoryItemWhereInputSchema)).optional(),
41967
+ NOT: unionType([
41968
+ lazyType(() => inventoryItemWhereInputSchema),
41969
+ arrayType(lazyType(() => inventoryItemWhereInputSchema))
41970
+ ]).optional(),
41971
+ id: unionType([stringType(), objectType({})]).optional(),
41972
+ // StringFilter
41973
+ createdAt: unionType([dateType(), stringType(), objectType({})]).optional(),
41974
+ // DateTimeFilter
41975
+ updatedAt: unionType([dateType(), stringType(), objectType({})]).optional(),
41976
+ // DateTimeFilter
41977
+ trackInventory: unionType([booleanType(), objectType({})]).optional(),
41978
+ // BoolFilter
41979
+ stockPolicy: unionType([enumType(["DENY", "CONTINUE"]), objectType({})]).optional(),
41980
+ // EnumStockPolicyFilter
41981
+ variantId: unionType([stringType().nullable(), objectType({})]).optional(),
41982
+ // StringNullableFilter
41983
+ productId: unionType([stringType().nullable(), objectType({})]).optional(),
41984
+ // StringNullableFilter
41985
+ variant: anyType().optional(),
41986
+ // Complex relation filter
41987
+ product: anyType().optional(),
41988
+ // Complex relation filter
41989
+ levels: anyType().optional()
41990
+ // InventoryLevelListRelationFilter
41991
+ });
41992
+ var productVendorWhereInputSchema = objectType({
41993
+ AND: unionType([
41994
+ lazyType(() => productVendorWhereInputSchema),
41995
+ arrayType(lazyType(() => productVendorWhereInputSchema))
41996
+ ]).optional(),
41997
+ OR: arrayType(lazyType(() => productVendorWhereInputSchema)).optional(),
41998
+ NOT: unionType([
41999
+ lazyType(() => productVendorWhereInputSchema),
42000
+ arrayType(lazyType(() => productVendorWhereInputSchema))
42001
+ ]).optional(),
42002
+ id: unionType([stringType(), objectType({})]).optional(),
42003
+ // StringFilter
42004
+ createdAt: unionType([dateType(), stringType(), objectType({})]).optional(),
42005
+ // DateTimeFilter
42006
+ updatedAt: unionType([dateType(), stringType(), objectType({})]).optional(),
42007
+ // DateTimeFilter
42008
+ name: unionType([stringType(), objectType({})]).optional(),
42009
+ // StringFilter
42010
+ metadata: anyType().optional(),
42011
+ // JsonNullableFilter
42012
+ isDropshipped: unionType([booleanType(), objectType({})]).optional(),
42013
+ // BoolFilter
42014
+ organizationId: unionType([stringType(), objectType({})]).optional(),
42015
+ // StringFilter
42016
+ shippingProfileIDs: anyType().optional(),
42017
+ // StringNullableListFilter
42018
+ organization: anyType().optional(),
42019
+ // Complex relation filter
42020
+ products: anyType().optional(),
42021
+ // ProductListRelationFilter
42022
+ shippingProfiles: anyType().optional()
42023
+ // ShippingProfileListRelationFilter
42024
+ });
42025
+ var productVariantWhereInputSchema = objectType({
42026
+ AND: unionType([
42027
+ lazyType(() => productVariantWhereInputSchema),
42028
+ arrayType(lazyType(() => productVariantWhereInputSchema))
42029
+ ]).optional(),
42030
+ OR: arrayType(lazyType(() => productVariantWhereInputSchema)).optional(),
42031
+ NOT: unionType([
42032
+ lazyType(() => productVariantWhereInputSchema),
42033
+ arrayType(lazyType(() => productVariantWhereInputSchema))
42034
+ ]).optional(),
42035
+ id: unionType([stringType(), objectType({})]).optional(),
42036
+ // StringFilter
42037
+ createdAt: unionType([dateType(), stringType(), objectType({})]).optional(),
42038
+ // DateTimeFilter
42039
+ updatedAt: unionType([dateType(), stringType(), objectType({})]).optional(),
42040
+ // DateTimeFilter
42041
+ title: unionType([stringType(), objectType({})]).optional(),
42042
+ // StringFilter
42043
+ description: unionType([stringType().nullable(), objectType({})]).optional(),
42044
+ // StringNullableFilter
42045
+ images: anyType().optional(),
42046
+ // StringNullableListFilter
42047
+ sku: unionType([stringType().nullable(), objectType({})]).optional(),
42048
+ // StringNullableFilter
42049
+ barcode: unionType([stringType().nullable(), objectType({})]).optional(),
42050
+ // StringNullableFilter
42051
+ isPhysical: unionType([booleanType(), objectType({})]).optional(),
42052
+ // BoolFilter
42053
+ weightInGrams: unionType([numberType(), objectType({})]).optional(),
42054
+ // IntFilter
42055
+ heightInCm: unionType([numberType(), objectType({})]).optional(),
42056
+ // IntFilter
42057
+ widthInCm: unionType([numberType(), objectType({})]).optional(),
42058
+ // IntFilter
42059
+ lengthInCm: unionType([numberType(), objectType({})]).optional(),
42060
+ // IntFilter
42061
+ priceInCents: unionType([numberType(), objectType({})]).optional(),
42062
+ // IntFilter
42063
+ billingType: unionType([enumType(["ONE_TIME", "SUBSCRIPTION"]), objectType({})]).optional(),
42064
+ // EnumProductBillingTypeFilter
42065
+ billingInterval: unionType([enumType(["DAY", "WEEK", "MONTH", "YEAR"]), objectType({})]).optional(),
42066
+ // EnumProductBillingIntervalFilter
42067
+ billingIntervalCount: unionType([numberType(), objectType({})]).optional(),
42068
+ // IntFilter
42069
+ metadata: anyType().optional(),
42070
+ // JsonNullableFilter
42071
+ productId: unionType([stringType(), objectType({})]).optional(),
42072
+ // StringFilter
42073
+ variantOptions: anyType().optional(),
42074
+ // VariantOption array
42075
+ inventoryItem: anyType().optional(),
42076
+ // Complex relation filter
42077
+ product: anyType().optional()
42078
+ // Complex relation filter
42079
+ });
42080
+ var productVariantListRelationFilterSchema = objectType({
42081
+ every: productVariantWhereInputSchema.optional(),
42082
+ some: productVariantWhereInputSchema.optional(),
42083
+ none: productVariantWhereInputSchema.optional()
42084
+ });
42085
+ var collectionWhereInputSchema = objectType({
42086
+ AND: unionType([
42087
+ lazyType(() => collectionWhereInputSchema),
42088
+ arrayType(lazyType(() => collectionWhereInputSchema))
42089
+ ]).optional(),
42090
+ OR: arrayType(lazyType(() => collectionWhereInputSchema)).optional(),
42091
+ NOT: unionType([
42092
+ lazyType(() => collectionWhereInputSchema),
42093
+ arrayType(lazyType(() => collectionWhereInputSchema))
42094
+ ]).optional(),
42095
+ id: unionType([stringType(), objectType({})]).optional(),
42096
+ // StringFilter
42097
+ createdAt: unionType([dateType(), stringType(), objectType({})]).optional(),
42098
+ // DateTimeFilter
42099
+ updatedAt: unionType([dateType(), stringType(), objectType({})]).optional(),
42100
+ // DateTimeFilter
42101
+ title: unionType([stringType(), objectType({})]).optional(),
42102
+ // StringFilter
42103
+ description: unionType([stringType().nullable(), objectType({})]).optional(),
42104
+ // StringNullableFilter
42105
+ images: anyType().optional(),
42106
+ // StringNullableListFilter
42107
+ tags: anyType().optional(),
42108
+ // StringNullableListFilter
42109
+ seoPageTitle: unionType([stringType().nullable(), objectType({})]).optional(),
42110
+ // StringNullableFilter
42111
+ seoDescription: unionType([stringType().nullable(), objectType({})]).optional(),
42112
+ // StringNullableFilter
42113
+ seoHandle: unionType([stringType().nullable(), objectType({})]).optional(),
42114
+ // StringNullableFilter
42115
+ type: unionType([enumType(["MANUAL", "SMART"]), objectType({})]).optional(),
42116
+ // EnumCollectionTypeFilter
42117
+ rulesMatchType: unionType([enumType(["ALL", "ANY"]), objectType({})]).optional(),
42118
+ // EnumCollectionRulesMatchTypeFilter
42119
+ rules: unionType([stringType().nullable(), objectType({})]).optional(),
42120
+ // StringNullableFilter
42121
+ productIDs: anyType().optional(),
42122
+ // StringNullableListFilter
42123
+ organizationId: unionType([stringType(), objectType({})]).optional(),
42124
+ // StringFilter
42125
+ shippingProfileIDs: anyType().optional(),
42126
+ // StringNullableListFilter
42127
+ organization: anyType().optional(),
42128
+ // Complex relation filter
42129
+ products: anyType().optional(),
42130
+ // ProductListRelationFilter
42131
+ shippingProfiles: anyType().optional()
42132
+ // ShippingProfileListRelationFilter
42133
+ });
42134
+ var collectionListRelationFilterSchema = objectType({
42135
+ every: collectionWhereInputSchema.optional(),
42136
+ some: collectionWhereInputSchema.optional(),
42137
+ none: collectionWhereInputSchema.optional()
42138
+ });
42139
+ var ProductWhereComplexSchemas = {
42140
+ // Complex relation fields
42141
+ options: unionType([
42142
+ productOptionCompositeListFilterSchema,
42143
+ arrayType(productOptionObjectEqualityInputSchema)
42144
+ ]).optional(),
42145
+ inventoryItem: unionType([
42146
+ objectType({
42147
+ is: unionType([inventoryItemWhereInputSchema, nullType()]).optional(),
42148
+ isNot: unionType([inventoryItemWhereInputSchema, nullType()]).optional()
42149
+ }),
42150
+ inventoryItemWhereInputSchema,
42151
+ nullType()
42152
+ ]).optional(),
42153
+ productVendor: unionType([
42154
+ objectType({
42155
+ is: unionType([productVendorWhereInputSchema, nullType()]).optional(),
42156
+ isNot: unionType([productVendorWhereInputSchema, nullType()]).optional()
42157
+ }),
42158
+ productVendorWhereInputSchema,
42159
+ nullType()
42160
+ ]).optional(),
42161
+ productVariants: productVariantListRelationFilterSchema.optional(),
42162
+ collections: collectionListRelationFilterSchema.optional()
42163
+ };
42164
+
42165
+ // src/api/products/where/schema.ts
42166
+ var ProductWhereSchema = lazyType(
42167
+ () => objectType({
42168
+ ...ProductWhereSchemaBaseFields,
42169
+ AND: arrayType(ProductWhereSchema).optional(),
42170
+ OR: arrayType(ProductWhereSchema).optional(),
42171
+ NOT: unionType([ProductWhereSchema, arrayType(ProductWhereSchema)]).optional()
42172
+ }).strict()
42173
+ );
42174
+ var ProductWhereSchemaBaseFields = {
42175
+ id: SchemaHelpers.Where.stringFilter,
42176
+ createdAt: SchemaHelpers.Where.dateTimeFilter,
42177
+ updatedAt: SchemaHelpers.Where.dateTimeFilter,
42178
+ title: SchemaHelpers.Where.stringFilter,
42179
+ description: SchemaHelpers.Where.stringNullableFilter,
42180
+ images: SchemaHelpers.Where.stringNullableListFilter,
42181
+ category: SchemaHelpers.Where.stringFilter,
42182
+ tags: SchemaHelpers.Where.stringNullableListFilter,
42183
+ isPhysical: SchemaHelpers.Where.boolFilter,
42184
+ weightInGrams: SchemaHelpers.Where.intFilter,
42185
+ heightInCm: SchemaHelpers.Where.intFilter,
42186
+ widthInCm: SchemaHelpers.Where.intFilter,
42187
+ lengthInCm: SchemaHelpers.Where.intFilter,
42188
+ priceInCents: SchemaHelpers.Where.intFilter,
42189
+ billingType: SchemaHelpers.Where.enumFilter([
42190
+ "ONE_TIME",
42191
+ "SUBSCRIPTION"
42192
+ ]),
42193
+ billingInterval: SchemaHelpers.Where.enumFilter([
42194
+ "DAY",
42195
+ "WEEK",
42196
+ "MONTH",
42197
+ "YEAR"
42198
+ ]),
42199
+ billingIntervalCount: SchemaHelpers.Where.intFilter,
42200
+ sku: SchemaHelpers.Where.stringNullableFilter,
42201
+ barcode: SchemaHelpers.Where.stringNullableFilter,
42202
+ seoPageTitle: SchemaHelpers.Where.stringNullableFilter,
42203
+ seoDescription: SchemaHelpers.Where.stringNullableFilter,
42204
+ seoHandle: SchemaHelpers.Where.stringNullableFilter,
42205
+ productVendorId: SchemaHelpers.Where.stringNullableFilter,
42206
+ metadata: SchemaHelpers.Where.jsonNullableFilter,
42207
+ status: SchemaHelpers.Where.enumFilter([
42208
+ "DRAFT",
42209
+ "PUBLISHED",
42210
+ "ARCHIVED"
42211
+ ]),
42212
+ options: ProductWhereComplexSchemas.options,
42213
+ collectionIDs: SchemaHelpers.Where.stringNullableListFilter,
42214
+ shippingProfileIDs: SchemaHelpers.Where.stringNullableListFilter,
42215
+ inventoryItem: ProductWhereComplexSchemas.inventoryItem,
42216
+ productVendor: ProductWhereComplexSchemas.productVendor,
42217
+ productVariants: ProductWhereComplexSchemas.productVariants,
42218
+ collections: ProductWhereComplexSchemas.collections
42219
+ // shippingProfiles?: ShippingProfileListRelationFilter;
42220
+ };
42221
+ objectType(ProductWhereSchemaBaseFields).strict();
42222
+ var productListRelationFilter = objectType({
42223
+ every: objectType({ ...ProductWhereSchemaBaseFields }).optional(),
42224
+ some: objectType({ ...ProductWhereSchemaBaseFields }).optional(),
42225
+ none: objectType({ ...ProductWhereSchemaBaseFields }).optional()
42226
+ });
42227
+ var CollectionWhereComplexSchemas = {
42228
+ products: productListRelationFilter
42229
+ };
42230
+
42231
+ // src/api/collections/where/schema.ts
42232
+ var CollectionWhereSchema = lazyType(
42233
+ () => objectType({
42234
+ ...CollectionWhereSchemaBaseFields,
42235
+ AND: arrayType(CollectionWhereSchema).optional(),
42236
+ OR: arrayType(CollectionWhereSchema).optional(),
42237
+ NOT: unionType([CollectionWhereSchema, arrayType(CollectionWhereSchema)]).optional()
42238
+ }).strict()
42239
+ );
42240
+ var CollectionWhereSchemaBaseFields = {
42241
+ id: SchemaHelpers.Where.stringFilter,
42242
+ createdAt: SchemaHelpers.Where.dateTimeFilter,
42243
+ updatedAt: SchemaHelpers.Where.dateTimeFilter,
42244
+ title: SchemaHelpers.Where.stringFilter,
42245
+ description: SchemaHelpers.Where.stringNullableFilter,
42246
+ images: SchemaHelpers.Where.stringNullableListFilter,
42247
+ tags: SchemaHelpers.Where.stringNullableListFilter,
42248
+ seoPageTitle: SchemaHelpers.Where.stringNullableFilter,
42249
+ seoDescription: SchemaHelpers.Where.stringNullableFilter,
42250
+ seoHandle: SchemaHelpers.Where.stringNullableFilter,
42251
+ type: SchemaHelpers.Where.enumFilter(["MANUAL", "SMART"]),
42252
+ rulesMatchType: SchemaHelpers.Where.enumFilter(["ALL", "ANY"]),
42253
+ rules: SchemaHelpers.Where.stringNullableFilter,
42254
+ productIDs: SchemaHelpers.Where.stringNullableListFilter,
42255
+ shippingProfileIDs: SchemaHelpers.Where.stringNullableListFilter,
42256
+ products: CollectionWhereComplexSchemas.products
42257
+ // shippingProfiles?: ShippingProfileListRelationFilter;
42258
+ };
42259
+ objectType(CollectionWhereSchemaBaseFields).strict();
42260
+ lazyType(() => collectionWhereUniqueSchemaBaseFieldsSchema);
42261
+ var CollectionWhereUniqueSchemaBaseFields = {
42262
+ ...CollectionWhereSchemaBaseFields,
42263
+ id: SchemaHelpers.WhereUnique.stringFilter,
42264
+ seoHandle: SchemaHelpers.WhereUnique.stringFilter,
42265
+ title: SchemaHelpers.WhereUnique.stringFilter,
42266
+ AND: arrayType(CollectionWhereSchema).optional(),
42267
+ OR: arrayType(CollectionWhereSchema).optional(),
42268
+ NOT: unionType([CollectionWhereSchema, arrayType(CollectionWhereSchema)]).optional()
42269
+ };
42270
+ var collectionWhereUniqueSchemaBaseFieldsSchema = unionType([
42271
+ objectType({
42272
+ ...CollectionWhereUniqueSchemaBaseFields,
42273
+ id: stringType()
42274
+ }).strict(),
42275
+ objectType({
42276
+ ...CollectionWhereUniqueSchemaBaseFields,
42277
+ seoHandle: stringType()
42278
+ }).strict()
42279
+ ]);
42280
+ var DiscountWhereSchema = lazyType(
42281
+ () => objectType({
42282
+ ...DiscountWhereSchemaBaseFields,
42283
+ AND: arrayType(DiscountWhereSchema).optional(),
42284
+ OR: arrayType(DiscountWhereSchema).optional(),
42285
+ NOT: unionType([DiscountWhereSchema, arrayType(DiscountWhereSchema)]).optional()
42286
+ }).strict()
42287
+ );
42288
+ var DiscountWhereSchemaBaseFields = {
42289
+ testmode: SchemaHelpers.Where.boolFilter,
42290
+ id: SchemaHelpers.Where.stringFilter,
42291
+ createdAt: SchemaHelpers.Where.dateTimeFilter,
42292
+ updatedAt: SchemaHelpers.Where.dateTimeFilter,
42293
+ type: SchemaHelpers.Where.enumFilter([
42294
+ "AMOUNT_OFF_PRODUCTS",
42295
+ "BUY_X_GET_Y",
42296
+ "AMOUNT_OFF_ORDER",
42297
+ "FREE_SHIPPING"
42298
+ ]),
42299
+ method: SchemaHelpers.Where.enumFilter(["CODE", "AUTOMATIC"]),
42300
+ code: SchemaHelpers.Where.stringNullableFilter,
42301
+ title: SchemaHelpers.Where.stringNullableFilter,
42302
+ value: SchemaHelpers.Where.intFilter,
42303
+ valueType: SchemaHelpers.Where.enumFilter([
42304
+ "PERCENTAGE",
42305
+ "FIXED_AMOUNT",
42306
+ "FREE"
42307
+ ]),
42308
+ discountScope: SchemaHelpers.Where.enumFilter([
42309
+ "PRODUCTS",
42310
+ "COLLECTIONS"
42311
+ ]),
42312
+ allowedProductIDs: SchemaHelpers.Where.stringNullableListFilter,
42313
+ allowedCollectionIDs: SchemaHelpers.Where.stringNullableListFilter,
42314
+ // allowedCombinations: SchemaHelpers.Where.enumDiscountScopeNullableListFilter,
42315
+ minimumRequirementsType: SchemaHelpers.Where.enumFilter([
42316
+ "NONE",
42317
+ "MINIMUM_ORDER_AMOUNT",
42318
+ "MINIMUM_PRODUCT_QUANTITY"
42319
+ ]),
42320
+ minimumRequirementsValue: SchemaHelpers.Where.intNullableFilter,
42321
+ requiredProductIDs: SchemaHelpers.Where.stringNullableListFilter,
42322
+ requiredCollectionIDs: SchemaHelpers.Where.stringNullableListFilter,
42323
+ minimumRequirementsScope: SchemaHelpers.Where.enumFilter([
42324
+ "PRODUCTS",
42325
+ "COLLECTIONS"
42326
+ ]),
42327
+ maxUses: SchemaHelpers.Where.intNullableFilter,
42328
+ maxUsesPerCustomer: SchemaHelpers.Where.intNullableFilter,
42329
+ maxAllowedProductQuantity: SchemaHelpers.Where.intNullableFilter,
42330
+ uses: SchemaHelpers.Where.intFilter,
42331
+ subscriptionDiscountDurationType: SchemaHelpers.Where.enumFilter([
42332
+ "ONCE",
42333
+ "RECURRING",
42334
+ "FOREVER"
42335
+ ]),
42336
+ subscriptionDiscountDurationValue: SchemaHelpers.Where.intFilter,
42337
+ stripeDiscountId: SchemaHelpers.Where.stringNullableFilter,
42338
+ startsAt: SchemaHelpers.Where.dateTimeFilter,
42339
+ expiresAt: SchemaHelpers.Where.dateTimeNullableFilter,
42340
+ status: SchemaHelpers.Where.enumFilter([
42341
+ "ACTIVE",
42342
+ "EXPIRED",
42343
+ "SCHEDULED"
42344
+ ])
42345
+ };
42346
+ objectType(DiscountWhereSchemaBaseFields).strict();
42347
+ lazyType(() => discountWhereUniqueSchemaBaseFieldsSchema);
42348
+ var DiscountWhereUniqueSchemaBaseFields = {
42349
+ ...DiscountWhereSchemaBaseFields,
42350
+ id: SchemaHelpers.WhereUnique.stringFilter,
42351
+ code: SchemaHelpers.WhereUnique.stringFilter,
42352
+ AND: arrayType(DiscountWhereSchema).optional(),
42353
+ OR: arrayType(DiscountWhereSchema).optional(),
42354
+ NOT: unionType([DiscountWhereSchema, arrayType(DiscountWhereSchema)]).optional()
42355
+ };
42356
+ var discountWhereUniqueSchemaBaseFieldsSchema = unionType([
42357
+ objectType({
42358
+ ...DiscountWhereUniqueSchemaBaseFields,
42359
+ id: stringType()
42360
+ }).strict(),
42361
+ objectType({
42362
+ ...DiscountWhereUniqueSchemaBaseFields,
42363
+ code: stringType()
42364
+ }).strict()
42365
+ ]);
42366
+ lazyType(() => productWhereUniqueSchemaBaseFieldsSchema);
42367
+ var ProductWhereUniqueSchemaBaseFields = {
42368
+ ...ProductWhereSchemaBaseFields,
42369
+ id: SchemaHelpers.WhereUnique.stringFilter,
42370
+ seoHandle: SchemaHelpers.WhereUnique.stringFilter,
42371
+ title: SchemaHelpers.WhereUnique.stringFilter,
42372
+ AND: arrayType(ProductWhereSchema).optional(),
42373
+ OR: arrayType(ProductWhereSchema).optional(),
42374
+ NOT: unionType([ProductWhereSchema, arrayType(ProductWhereSchema)]).optional()
42375
+ };
42376
+ var productWhereUniqueSchemaBaseFieldsSchema = unionType([
42377
+ objectType({
42378
+ ...ProductWhereUniqueSchemaBaseFields,
42379
+ id: stringType()
42380
+ }).strict(),
42381
+ objectType({
42382
+ ...ProductWhereUniqueSchemaBaseFields,
42383
+ seoHandle: stringType()
42384
+ }).strict()
42385
+ ]);
42386
+
42387
+ // src/helpers/index.ts
42388
+ var currencyLocales = {
42389
+ CZK: "cs-CZ",
42390
+ // Czech Koruna
42391
+ USD: "en-US",
42392
+ // US Dollar
42393
+ EUR: "de-DE",
42394
+ // Euro (Germany locale)
42395
+ GBP: "en-GB",
42396
+ // British Pound
42397
+ JPY: "ja-JP",
42398
+ // Japanese Yen
42399
+ AUD: "en-AU",
42400
+ // Australian Dollar
42401
+ CAD: "en-CA",
42402
+ // Canadian Dollar
42403
+ NZD: "en-NZ",
42404
+ // New Zealand Dollar
42405
+ SEK: "sv-SE",
42406
+ // Swedish Krona
42407
+ NOK: "nb-NO",
42408
+ // Norwegian Krone
42409
+ DKK: "da-DK",
42410
+ // Danish Krone
42411
+ CHF: "de-CH",
42412
+ // Swiss Franc (German Switzerland)
42413
+ HUF: "hu-HU",
42414
+ // Hungarian Forint
42415
+ PLN: "pl-PL",
42416
+ // Polish Zloty
42417
+ BGN: "bg-BG",
42418
+ // Bulgarian Lev
42419
+ RON: "ro-RO",
42420
+ // Romanian Leu
42421
+ RUB: "ru-RU",
42422
+ // Russian Ruble
42423
+ CNY: "zh-CN",
42424
+ // Chinese Yuan
42425
+ INR: "en-IN",
42426
+ // Indian Rupee
42427
+ BRL: "pt-BR",
42428
+ // Brazilian Real
42429
+ MXN: "es-MX",
42430
+ // Mexican Peso
42431
+ ZAR: "en-ZA",
42432
+ // South African Rand
42433
+ KRW: "ko-KR",
42434
+ // South Korean Won
42435
+ MYR: "ms-MY",
42436
+ // Malaysian Ringgit
42437
+ SGD: "en-SG",
42438
+ // Singapore Dollar
42439
+ TWD: "zh-TW",
42440
+ // Taiwanese Dollar
42441
+ THB: "th-TH",
42442
+ // Thai Baht
42443
+ IDR: "id-ID",
42444
+ // Indonesian Rupiah
42445
+ AED: "ar-AE",
42446
+ // UAE Dirham
42447
+ SAR: "ar-SA",
42448
+ // Saudi Riyal
42449
+ TRY: "tr-TR"
42450
+ // Turkish Lira
42451
+ };
42452
+ function formatPrice(priceInCents, currency, exchangeRate) {
42453
+ const amount = priceInCents / 100 * (exchangeRate ?? 1);
42454
+ const isWhole = amount % 1 === 0;
42455
+ const locale = currencyLocales[currency.toUpperCase()] ?? void 0;
42456
+ const formattedPrice = new Intl.NumberFormat(locale, {
42457
+ style: "currency",
42458
+ currency,
42459
+ currencyDisplay: "symbol",
42460
+ minimumFractionDigits: isWhole ? 0 : 2,
42461
+ maximumFractionDigits: isWhole ? 0 : 2
42462
+ }).format(amount);
42463
+ return formattedPrice;
42464
+ }
41409
42465
 
41410
42466
  function ZasilkovnaShippingOption({ children, onPickupPointSelected, locale, countryCode, apiKey, }) {
41411
42467
  const [widgetLoaded, setWidgetLoaded] = useState(false);
@@ -41472,7 +42528,10 @@ function ShipmentsForm({ shippingRates, initialData, onSubmit, onBack, contactEm
41472
42528
  ])),
41473
42529
  });
41474
42530
  const isButtonEnabled = Object.values(form.getValues()).every((value) => { var _a; return ((_a = value.rateId) === null || _a === void 0 ? void 0 : _a.length) > 0; });
41475
- return (jsxs("div", { className: "space-y-6", children: [jsx("h2", { children: t("CheckoutEmbed.Shipping.title") }), jsxs("div", { className: "space-y-2 pb-2", children: [jsxs("div", { className: "flex items-center justify-between text-sm", children: [jsxs("p", { children: [jsx("span", { className: "font-medium", children: t("CheckoutEmbed.Shipping.contact") }), " ", jsx("span", { className: "text-muted-foreground", children: contactEmail })] }), jsx(Button, { variant: "link", size: "link", onClick: onBack, children: t("CheckoutEmbed.Shipping.change") })] }), jsxs("div", { className: "flex items-center justify-between text-sm", children: [jsxs("p", { children: [jsx("span", { className: "font-medium", children: t("CheckoutEmbed.Shipping.address") }), " ", jsx("span", { className: "text-muted-foreground", children: shippingAddress })] }), jsx(Button, { variant: "link", size: "link", onClick: onBack, children: t("CheckoutEmbed.Shipping.change") })] })] }), jsx(Form, Object.assign({}, form, { children: jsxs("form", { onSubmit: form.handleSubmit(onSubmit), className: "space-y-4", children: [shipments.map((shipment, index) => (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))), jsx(FormMessage, { children: (_a = form.formState.errors.root) === null || _a === void 0 ? void 0 : _a.message }), jsxs("div", { className: "flex items-center justify-between pt-4", children: [jsxs(Button, { type: "button", variant: "ghost", onClick: onBack, children: [jsx(ChevronLeft, {}), t("CheckoutEmbed.Shipping.back")] }), jsx(SubmitButton, { isSubmitting: form.formState.isSubmitting, isValid: isButtonEnabled, children: t("CheckoutEmbed.Shipping.button") })] })] }) }))] }));
42531
+ return (jsxs("div", { className: "space-y-6", children: [jsx("h2", { children: t("CheckoutEmbed.Shipping.title") }), jsxs("div", { className: "space-y-2 pb-2", children: [jsxs("div", { className: "flex items-center justify-between text-sm", children: [jsxs("p", { children: [jsx("span", { className: "font-medium", children: t("CheckoutEmbed.Shipping.contact") }), " ", jsx("span", { className: "text-muted-foreground", children: contactEmail })] }), jsx(Button, { variant: "link", size: "link", onClick: onBack, children: t("CheckoutEmbed.Shipping.change") })] }), jsxs("div", { className: "flex items-center justify-between text-sm", children: [jsxs("p", { children: [jsx("span", { className: "font-medium", children: t("CheckoutEmbed.Shipping.address") }), " ", jsx("span", { className: "text-muted-foreground", children: shippingAddress })] }), jsx(Button, { variant: "link", size: "link", onClick: onBack, children: t("CheckoutEmbed.Shipping.change") })] })] }), jsx(Form, Object.assign({}, form, { children: jsxs("form", { onSubmit: form.handleSubmit(onSubmit), className: "space-y-4", children: [shipments.map((shipment, index) => {
42532
+ var _a;
42533
+ return (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));
42534
+ }), jsx(FormMessage, { children: (_a = form.formState.errors.root) === null || _a === void 0 ? void 0 : _a.message }), jsxs("div", { className: "flex items-center justify-between pt-4", children: [jsxs(Button, { type: "button", variant: "ghost", onClick: onBack, children: [jsx(ChevronLeft, {}), t("CheckoutEmbed.Shipping.back")] }), jsx(SubmitButton, { isSubmitting: form.formState.isSubmitting, isValid: isButtonEnabled, children: t("CheckoutEmbed.Shipping.button") })] })] }) }))] }));
41476
42535
  }
41477
42536
  const SingleShipmentSection = ({ shippingRates, form, currency, exchangeRate, locale, countryCode, setFormData, formData, multipleShipments, shipment, index, }) => {
41478
42537
  const { t } = useTranslation();
@@ -41484,7 +42543,7 @@ const SingleShipmentSection = ({ shippingRates, form, currency, exchangeRate, lo
41484
42543
  var _a, _b;
41485
42544
  const pickupPointDisplayName = form.watch(`${shipmentId}.pickupPointDisplayName`);
41486
42545
  const intPrice = Math.ceil(Number(rate.priceInCents));
41487
- const displayPrice = storeHelpers.formatPrice(intPrice, currency, exchangeRate);
42546
+ const displayPrice = formatPrice(intPrice, currency, exchangeRate);
41488
42547
  const isFixedRate = rate.type === "FIXED";
41489
42548
  const isAutoRate = rate.type === "CUSTOM_SHIPPING_VENDOR" ||
41490
42549
  rate.type === "PLATFORM_CARRIER";
@@ -41536,7 +42595,7 @@ const resetFormStore = (formData) => {
41536
42595
 
41537
42596
  function CheckoutForm({ storeClient, checkoutId, onSuccess, onError, cancelUrl, clientSecret, customer, currency, checkoutAppearance, fonts, locale, setShippingCost, exchangeRate, paymentSecret, publicKey, paymentComponentKey, clientProxy, latitude, longitude, currentAlpha3CountryCode, shipments, }) {
41538
42597
  const { formData, setFormData, step, setStep, checkoutId: storedCheckoutId, setCheckoutId, } = useFormStore();
41539
- const [shippingRates, setShippingRates] = useState([]);
42598
+ const [shippingRates, setShippingRates] = useState({});
41540
42599
  const validateStep = useCallback(() => {
41541
42600
  if (step === "customer")
41542
42601
  return;
@@ -41559,7 +42618,7 @@ function CheckoutForm({ storeClient, checkoutId, onSuccess, onError, cancelUrl,
41559
42618
  // eslint-disable-next-line react-hooks/exhaustive-deps
41560
42619
  }, [step]);
41561
42620
  useEffect(() => {
41562
- 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;
42621
+ 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;
41563
42622
  if (checkoutId !== storedCheckoutId) {
41564
42623
  setStep("customer");
41565
42624
  setCheckoutId(checkoutId);
@@ -41576,17 +42635,20 @@ function CheckoutForm({ storeClient, checkoutId, onSuccess, onError, cancelUrl,
41576
42635
  email: (_k = customer.email) !== null && _k !== void 0 ? _k : "",
41577
42636
  address: {
41578
42637
  line1: (_m = (_l = customer.address) === null || _l === void 0 ? void 0 : _l.line1) !== null && _m !== void 0 ? _m : "",
41579
- line2: (_p = (_o = customer.address) === null || _o === void 0 ? void 0 : _o.line2) !== null && _p !== void 0 ? _p : "",
42638
+ line2: (_p = (_o = customer.address) === null || _o === void 0 ? void 0 : _o.line2) !== null && _p !== void 0 ? _p : null,
41580
42639
  city: (_r = (_q = customer.address) === null || _q === void 0 ? void 0 : _q.city) !== null && _r !== void 0 ? _r : "",
41581
- zipCode: (_t = (_s = customer.address) === null || _s === void 0 ? void 0 : _s.zipCode) !== null && _t !== void 0 ? _t : "",
41582
- country: (_v = (_u = customer.address) === null || _u === void 0 ? void 0 : _u.country) !== null && _v !== void 0 ? _v : "",
41583
- countryCode: (_x = (_w = customer.address) === null || _w === void 0 ? void 0 : _w.countryCode) !== null && _x !== void 0 ? _x : "",
42640
+ province: (_t = (_s = customer.address) === null || _s === void 0 ? void 0 : _s.province) !== null && _t !== void 0 ? _t : null,
42641
+ provinceCode: (_v = (_u = customer.address) === null || _u === void 0 ? void 0 : _u.provinceCode) !== null && _v !== void 0 ? _v : null,
42642
+ zipCode: (_x = (_w = customer.address) === null || _w === void 0 ? void 0 : _w.zipCode) !== null && _x !== void 0 ? _x : "",
42643
+ country: (_z = (_y = customer.address) === null || _y === void 0 ? void 0 : _y.country) !== null && _z !== void 0 ? _z : "",
42644
+ countryCode: (_1 = (_0 = customer.address) === null || _0 === void 0 ? void 0 : _0.countryCode) !== null && _1 !== void 0 ? _1 : "",
42645
+ company: (_3 = (_2 = customer.address) === null || _2 === void 0 ? void 0 : _2.company) !== null && _3 !== void 0 ? _3 : null,
41584
42646
  },
41585
42647
  },
41586
42648
  });
41587
42649
  return;
41588
42650
  }
41589
- else if ((_y = formData.customer) === null || _y === void 0 ? void 0 : _y.email) {
42651
+ else if ((_4 = formData.customer) === null || _4 === void 0 ? void 0 : _4.email) {
41590
42652
  setFormData({
41591
42653
  customer: formData.customer,
41592
42654
  });
@@ -41596,23 +42658,26 @@ function CheckoutForm({ storeClient, checkoutId, onSuccess, onError, cancelUrl,
41596
42658
  }
41597
42659
  return;
41598
42660
  }
41599
- if (customer && !((_z = formData.customer) === null || _z === void 0 ? void 0 : _z.email)) {
42661
+ if (customer && !((_5 = formData.customer) === null || _5 === void 0 ? void 0 : _5.email)) {
41600
42662
  setStep("customer");
41601
- if ((_0 = customer.address) === null || _0 === void 0 ? void 0 : _0.city) {
42663
+ if ((_6 = customer.address) === null || _6 === void 0 ? void 0 : _6.city) {
41602
42664
  setStep("shipping");
41603
42665
  }
41604
42666
  setFormData(Object.assign(Object.assign({}, formData), { customerId: customer.id, customer: {
41605
- 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 : "",
41606
- 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 : "",
41607
- phone: (_8 = (_7 = customer.address) === null || _7 === void 0 ? void 0 : _7.phone) !== null && _8 !== void 0 ? _8 : "",
41608
- email: (_9 = customer.email) !== null && _9 !== void 0 ? _9 : "",
42667
+ 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 : "",
42668
+ 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 : "",
42669
+ phone: (_14 = (_13 = customer.address) === null || _13 === void 0 ? void 0 : _13.phone) !== null && _14 !== void 0 ? _14 : "",
42670
+ email: (_15 = customer.email) !== null && _15 !== void 0 ? _15 : "",
41609
42671
  address: {
41610
- line1: (_11 = (_10 = customer.address) === null || _10 === void 0 ? void 0 : _10.line1) !== null && _11 !== void 0 ? _11 : "",
41611
- line2: (_13 = (_12 = customer.address) === null || _12 === void 0 ? void 0 : _12.line2) !== null && _13 !== void 0 ? _13 : "",
41612
- city: (_15 = (_14 = customer.address) === null || _14 === void 0 ? void 0 : _14.city) !== null && _15 !== void 0 ? _15 : "",
41613
- zipCode: (_17 = (_16 = customer.address) === null || _16 === void 0 ? void 0 : _16.zipCode) !== null && _17 !== void 0 ? _17 : "",
41614
- country: (_19 = (_18 = customer.address) === null || _18 === void 0 ? void 0 : _18.country) !== null && _19 !== void 0 ? _19 : "",
41615
- countryCode: (_21 = (_20 = customer.address) === null || _20 === void 0 ? void 0 : _20.countryCode) !== null && _21 !== void 0 ? _21 : "",
42672
+ line1: (_17 = (_16 = customer.address) === null || _16 === void 0 ? void 0 : _16.line1) !== null && _17 !== void 0 ? _17 : "",
42673
+ line2: (_19 = (_18 = customer.address) === null || _18 === void 0 ? void 0 : _18.line2) !== null && _19 !== void 0 ? _19 : null,
42674
+ city: (_21 = (_20 = customer.address) === null || _20 === void 0 ? void 0 : _20.city) !== null && _21 !== void 0 ? _21 : "",
42675
+ province: (_23 = (_22 = customer.address) === null || _22 === void 0 ? void 0 : _22.province) !== null && _23 !== void 0 ? _23 : null,
42676
+ provinceCode: (_25 = (_24 = customer.address) === null || _24 === void 0 ? void 0 : _24.provinceCode) !== null && _25 !== void 0 ? _25 : null,
42677
+ zipCode: (_27 = (_26 = customer.address) === null || _26 === void 0 ? void 0 : _26.zipCode) !== null && _27 !== void 0 ? _27 : "",
42678
+ country: (_29 = (_28 = customer.address) === null || _28 === void 0 ? void 0 : _28.country) !== null && _29 !== void 0 ? _29 : "",
42679
+ countryCode: (_31 = (_30 = customer.address) === null || _30 === void 0 ? void 0 : _30.countryCode) !== null && _31 !== void 0 ? _31 : "",
42680
+ company: (_33 = (_32 = customer.address) === null || _32 === void 0 ? void 0 : _32.company) !== null && _33 !== void 0 ? _33 : null,
41616
42681
  },
41617
42682
  } }));
41618
42683
  }
@@ -41621,7 +42686,7 @@ function CheckoutForm({ storeClient, checkoutId, onSuccess, onError, cancelUrl,
41621
42686
  useEffect(() => {
41622
42687
  if (step !== "shipping")
41623
42688
  return;
41624
- if (shippingRates.length > 0)
42689
+ if (Object.keys(shippingRates).length > 0)
41625
42690
  return;
41626
42691
  const getShippingRates = () => __awaiter(this, void 0, void 0, function* () {
41627
42692
  try {
@@ -41630,7 +42695,7 @@ function CheckoutForm({ storeClient, checkoutId, onSuccess, onError, cancelUrl,
41630
42695
  }
41631
42696
  catch (error) {
41632
42697
  console.error("Failed to load shipping rates:", error);
41633
- setShippingRates([]);
42698
+ setShippingRates({});
41634
42699
  }
41635
42700
  });
41636
42701
  getShippingRates();
@@ -41774,17 +42839,17 @@ function CheckoutSummary({ appliedDiscounts, lineItems, shipping, tax, currency,
41774
42839
  const canCombine = appliedDiscounts.length === 0 || sharedCombinations.length > 0;
41775
42840
  return (jsxs("div", { className: "grid gap-5", children: [jsxs("div", { className: "flex items-center justify-between", children: [jsxs("div", { onClick: () => setIsOpen(!isOpen), className: "flex items-center gap-2 max-md:cursor-pointer", children: [jsx("h2", { children: t("CheckoutEmbed.Summary.title") }), jsx(ChevronDown, { className: clsx("size-5 transition-transform md:hidden", {
41776
42841
  "rotate-180": isOpen,
41777
- }) })] }), jsx("p", { className: "text-lg font-bold tracking-tight md:hidden", children: storeHelpers.formatPrice(total, currency, exchangeRate) }), jsx(Button, { className: "max-sm:hidden", variant: "link", size: "link", onClick: onCancel, children: t("CheckoutEmbed.Summary.edit") })] }), jsx("hr", {}), jsxs("div", { className: clsx("order-4 gap-2 md:order-none", {
42842
+ }) })] }), jsx("p", { className: "text-lg font-bold tracking-tight md:hidden", children: formatPrice(total, currency, exchangeRate) }), jsx(Button, { className: "max-sm:hidden", variant: "link", size: "link", onClick: onCancel, children: t("CheckoutEmbed.Summary.edit") })] }), jsx("hr", {}), jsxs("div", { className: clsx("order-4 gap-2 md:order-none", {
41778
42843
  "hidden md:grid": !isOpen,
41779
42844
  grid: isOpen,
41780
- }), children: [jsxs("div", { className: "flex justify-between", children: [jsx("p", { children: t("CheckoutEmbed.Summary.subtotal") }), jsx("p", { children: storeHelpers.formatPrice(subtotal, currency, exchangeRate) })] }), jsxs("div", { className: "flex justify-between", children: [jsx("p", { children: t("CheckoutEmbed.Summary.shipping") }), jsx("p", { children: isShippingFree
42845
+ }), children: [jsxs("div", { className: "flex justify-between", children: [jsx("p", { children: t("CheckoutEmbed.Summary.subtotal") }), jsx("p", { children: formatPrice(subtotal, currency, exchangeRate) })] }), jsxs("div", { className: "flex justify-between", children: [jsx("p", { children: t("CheckoutEmbed.Summary.shipping") }), jsx("p", { children: isShippingFree
41781
42846
  ? t("CheckoutEmbed.Summary.free")
41782
42847
  : shippingPrice
41783
- ? storeHelpers.formatPrice(shippingPrice, currency, exchangeRate)
41784
- : t("CheckoutEmbed.Summary.calculatedAtNextStep") })] }), !!tax && (jsxs("div", { className: "flex justify-between", children: [jsx("p", { children: t("CheckoutEmbed.Summary.tax") }), jsx("p", { children: storeHelpers.formatPrice(tax, currency, exchangeRate) })] })), filteredDiscounts.map(({ discount, amount, id }) => {
42848
+ ? formatPrice(shippingPrice, currency, exchangeRate)
42849
+ : t("CheckoutEmbed.Summary.calculatedAtNextStep") })] }), !!tax && (jsxs("div", { className: "flex justify-between", children: [jsx("p", { children: t("CheckoutEmbed.Summary.tax") }), jsx("p", { children: formatPrice(tax, currency, exchangeRate) })] })), filteredDiscounts.map(({ discount, amount, id }) => {
41785
42850
  var _a;
41786
- return (jsxs("div", { className: "text-muted-foreground flex justify-between", children: [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" }), jsxs("p", { children: ["- ", storeHelpers.formatPrice(amount, currency, exchangeRate)] })] }, discount.id));
41787
- }), jsxs("div", { className: "flex items-center justify-between font-bold", children: [jsx("p", { children: t("CheckoutEmbed.Summary.total") }), jsx("p", { children: storeHelpers.formatPrice(totalWithDiscounts, currency, exchangeRate) })] })] }), canCombine && (jsxs(Fragment, { children: [jsx("hr", { className: clsx("order-7 md:order-none", {
42851
+ return (jsxs("div", { className: "text-muted-foreground flex justify-between", children: [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" }), jsxs("p", { children: ["- ", formatPrice(amount, currency, exchangeRate)] })] }, discount.id));
42852
+ }), jsxs("div", { className: "flex items-center justify-between font-bold", children: [jsx("p", { children: t("CheckoutEmbed.Summary.total") }), jsx("p", { children: formatPrice(totalWithDiscounts, currency, exchangeRate) })] })] }), canCombine && (jsxs(Fragment, { children: [jsx("hr", { className: clsx("order-7 md:order-none", {
41788
42853
  "hidden md:block": !isOpen,
41789
42854
  block: isOpen,
41790
42855
  }) }), jsx("div", { className: clsx("order-6 gap-0 md:order-none", {
@@ -41827,9 +42892,9 @@ function CheckoutSummary({ appliedDiscounts, lineItems, shipping, tax, currency,
41827
42892
  ((_b = item === null || item === void 0 ? void 0 : item.productData) === null || _b === void 0 ? void 0 : _b.images[0]) ||
41828
42893
  "/placeholder.svg", alt: ((_c = item.productData) === null || _c === void 0 ? void 0 : _c.title) || "", className: "h-full w-full object-cover", sizes: "64px" })) }), 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 })] }), jsxs("div", { className: "ml-4 flex-1", children: [jsx("h3", { className: "text-base font-medium", children: (_d = item.productData) === null || _d === void 0 ? void 0 : _d.title }), jsx("p", { className: "text-muted-foreground line-clamp-1 text-ellipsis text-sm md:max-w-[75%]", children: item.variantOptions
41829
42894
  .map((option) => `${option.name}: ${option.value}`)
41830
- .join(", ") })] }), jsx("div", { className: "text-right", children: isDiscounted ? (jsxs("div", { className: "flex flex-col", children: [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) }), jsx("p", { className: "text-base font-medium", children: discountedPrice <= 0
42895
+ .join(", ") })] }), jsx("div", { className: "text-right", children: isDiscounted ? (jsxs("div", { className: "flex flex-col", children: [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) }), jsx("p", { className: "text-base font-medium", children: discountedPrice <= 0
41831
42896
  ? t("CheckoutEmbed.Summary.free")
41832
- : storeHelpers.formatPrice(discountedPrice, currency, exchangeRate) })] })) : (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));
42897
+ : formatPrice(discountedPrice, currency, exchangeRate) })] })) : (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));
41833
42898
  }) })] }));
41834
42899
  }
41835
42900
  function DiscountItem({ id, removeDiscount, label, canRemove, }) {