@betterstore/react 0.3.88 → 0.5.2

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.
Files changed (107) hide show
  1. package/dist/components/cart/useCart.d.ts +1 -0
  2. package/dist/components/cart/useCart.d.ts.map +1 -0
  3. package/dist/components/checkout-embed/appearance.d.ts +2 -1
  4. package/dist/components/checkout-embed/appearance.d.ts.map +1 -0
  5. package/dist/components/checkout-embed/checkout-form-loading.d.ts +2 -2
  6. package/dist/components/checkout-embed/checkout-form-loading.d.ts.map +1 -0
  7. package/dist/components/checkout-embed/checkout-form.d.ts +2 -2
  8. package/dist/components/checkout-embed/checkout-form.d.ts.map +1 -0
  9. package/dist/components/checkout-embed/checkout-schema.d.ts +1 -0
  10. package/dist/components/checkout-embed/checkout-schema.d.ts.map +1 -0
  11. package/dist/components/checkout-embed/index.d.ts +3 -2
  12. package/dist/components/checkout-embed/index.d.ts.map +1 -0
  13. package/dist/components/checkout-embed/steps/customer/address-input.d.ts +2 -2
  14. package/dist/components/checkout-embed/steps/customer/address-input.d.ts.map +1 -0
  15. package/dist/components/checkout-embed/steps/customer/address-utils.d.ts +1 -0
  16. package/dist/components/checkout-embed/steps/customer/address-utils.d.ts.map +1 -0
  17. package/dist/components/checkout-embed/steps/customer/form.d.ts +2 -2
  18. package/dist/components/checkout-embed/steps/customer/form.d.ts.map +1 -0
  19. package/dist/components/checkout-embed/steps/payment/form.d.ts +2 -2
  20. package/dist/components/checkout-embed/steps/payment/form.d.ts.map +1 -0
  21. package/dist/components/checkout-embed/steps/shipping/form.d.ts +2 -2
  22. package/dist/components/checkout-embed/steps/shipping/form.d.ts.map +1 -0
  23. package/dist/components/checkout-embed/steps/shipping/providers/zasilkovna.d.ts +2 -1
  24. package/dist/components/checkout-embed/steps/shipping/providers/zasilkovna.d.ts.map +1 -0
  25. package/dist/components/checkout-embed/steps/shipping/shipping-option-wrapper.d.ts +2 -1
  26. package/dist/components/checkout-embed/steps/shipping/shipping-option-wrapper.d.ts.map +1 -0
  27. package/dist/components/checkout-embed/steps/summary/discount-code.d.ts +2 -2
  28. package/dist/components/checkout-embed/steps/summary/discount-code.d.ts.map +1 -0
  29. package/dist/components/checkout-embed/steps/summary/index.d.ts +2 -2
  30. package/dist/components/checkout-embed/steps/summary/index.d.ts.map +1 -0
  31. package/dist/components/checkout-embed/steps/summary/loading.d.ts +2 -2
  32. package/dist/components/checkout-embed/steps/summary/loading.d.ts.map +1 -0
  33. package/dist/components/checkout-embed/useFormStore.d.ts +1 -0
  34. package/dist/components/checkout-embed/useFormStore.d.ts.map +1 -0
  35. package/dist/components/compounds/form/country-dropdown.d.ts +1 -0
  36. package/dist/components/compounds/form/country-dropdown.d.ts.map +1 -0
  37. package/dist/components/compounds/form/form-messages.d.ts +2 -1
  38. package/dist/components/compounds/form/form-messages.d.ts.map +1 -0
  39. package/dist/components/compounds/form/input-group.d.ts +3 -2
  40. package/dist/components/compounds/form/input-group.d.ts.map +1 -0
  41. package/dist/components/compounds/form/submit-button.d.ts +3 -3
  42. package/dist/components/compounds/form/submit-button.d.ts.map +1 -0
  43. package/dist/components/iframe-wrapper.d.ts +2 -1
  44. package/dist/components/iframe-wrapper.d.ts.map +1 -0
  45. package/dist/components/index.d.ts +1 -0
  46. package/dist/components/index.d.ts.map +1 -0
  47. package/dist/components/payment-element/appearance.d.ts +1 -0
  48. package/dist/components/payment-element/appearance.d.ts.map +1 -0
  49. package/dist/components/payment-element/checkout-form.d.ts +2 -1
  50. package/dist/components/payment-element/checkout-form.d.ts.map +1 -0
  51. package/dist/components/payment-element/index.d.ts +2 -1
  52. package/dist/components/payment-element/index.d.ts.map +1 -0
  53. package/dist/components/payment-element/useCheckout.d.ts +1 -0
  54. package/dist/components/payment-element/useCheckout.d.ts.map +1 -0
  55. package/dist/components/ui/button.d.ts +2 -1
  56. package/dist/components/ui/button.d.ts.map +1 -0
  57. package/dist/components/ui/checkbox.d.ts +2 -1
  58. package/dist/components/ui/checkbox.d.ts.map +1 -0
  59. package/dist/components/ui/command.d.ts +13 -12
  60. package/dist/components/ui/command.d.ts.map +1 -0
  61. package/dist/components/ui/dialog.d.ts +11 -10
  62. package/dist/components/ui/dialog.d.ts.map +1 -0
  63. package/dist/components/ui/dropdown-menu.d.ts +18 -17
  64. package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
  65. package/dist/components/ui/form.d.ts +7 -6
  66. package/dist/components/ui/form.d.ts.map +1 -0
  67. package/dist/components/ui/input.d.ts +2 -1
  68. package/dist/components/ui/input.d.ts.map +1 -0
  69. package/dist/components/ui/label.d.ts +2 -1
  70. package/dist/components/ui/label.d.ts.map +1 -0
  71. package/dist/components/ui/popover.d.ts +7 -6
  72. package/dist/components/ui/popover.d.ts.map +1 -0
  73. package/dist/components/ui/radio-group.d.ts +4 -3
  74. package/dist/components/ui/radio-group.d.ts.map +1 -0
  75. package/dist/components/ui/select.d.ts +11 -10
  76. package/dist/components/ui/select.d.ts.map +1 -0
  77. package/dist/components/ui/skeleton.d.ts +2 -1
  78. package/dist/components/ui/skeleton.d.ts.map +1 -0
  79. package/dist/components/ui/sonner.d.ts +2 -2
  80. package/dist/components/ui/sonner.d.ts.map +1 -0
  81. package/dist/dev/dev.d.ts +2 -0
  82. package/dist/dev/dev.d.ts.map +1 -0
  83. package/dist/i18n/index.d.ts +1 -0
  84. package/dist/i18n/index.d.ts.map +1 -0
  85. package/dist/index.cjs.js +406 -613
  86. package/dist/index.d.ts +1 -0
  87. package/dist/index.d.ts.map +1 -0
  88. package/dist/index.mjs +406 -613
  89. package/dist/lib/betterstore.d.ts +1 -0
  90. package/dist/lib/betterstore.d.ts.map +1 -0
  91. package/dist/lib/error-message-utils.d.ts +1 -0
  92. package/dist/lib/error-message-utils.d.ts.map +1 -0
  93. package/dist/lib/utils.d.ts +1 -0
  94. package/dist/lib/utils.d.ts.map +1 -0
  95. package/dist/types.d.ts +2 -1
  96. package/dist/types.d.ts.map +1 -0
  97. package/package.json +33 -35
  98. package/.prettierignore +0 -3
  99. package/.prettierrc +0 -8
  100. package/CHANGELOG.md +0 -908
  101. package/CONTRIBUTING.md +0 -52
  102. package/LICENSE +0 -21
  103. package/README.md +0 -34
  104. package/components.json +0 -21
  105. package/postcss.config.cjs +0 -6
  106. package/rollup.config.mjs +0 -103
  107. package/tailwind.config.js +0 -12
package/dist/index.mjs CHANGED
@@ -1,8 +1,8 @@
1
1
  import * as React from 'react';
2
2
  import React__default, { createContext, useContext, useCallback, useState, useRef, useEffect, useLayoutEffect, forwardRef, createElement, useMemo, Children, isValidElement, cloneElement, Fragment, useReducer, memo } from 'react';
3
+ import { jsxs, jsx, Fragment as Fragment$1 } from 'react/jsx-runtime';
3
4
  import * as ReactDOM from 'react-dom';
4
5
  import ReactDOM__default, { flushSync } from 'react-dom';
5
- import { jsx, jsxs, Fragment as Fragment$1 } from 'react/jsx-runtime';
6
6
 
7
7
  const createStoreImpl = (createState) => {
8
8
  let state;
@@ -2664,7 +2664,7 @@ const cookie = {
2664
2664
  cookieOptions.expires.setTime(cookieOptions.expires.getTime() + minutes * 60 * 1000);
2665
2665
  }
2666
2666
  if (domain) cookieOptions.domain = domain;
2667
- document.cookie = serializeCookie(name, encodeURIComponent(value), cookieOptions);
2667
+ document.cookie = serializeCookie(name, value, cookieOptions);
2668
2668
  },
2669
2669
  read(name) {
2670
2670
  const nameEQ = `${name}=`;
@@ -2676,8 +2676,8 @@ const cookie = {
2676
2676
  }
2677
2677
  return null;
2678
2678
  },
2679
- remove(name) {
2680
- this.create(name, '', -1);
2679
+ remove(name, domain) {
2680
+ this.create(name, '', -1, domain);
2681
2681
  }
2682
2682
  };
2683
2683
  var cookie$1 = {
@@ -2737,6 +2737,46 @@ var querystring = {
2737
2737
  }
2738
2738
  };
2739
2739
 
2740
+ var hash = {
2741
+ name: 'hash',
2742
+ // Deconstruct the options object and extract the lookupHash property and the lookupFromHashIndex property
2743
+ lookup(_ref) {
2744
+ let {
2745
+ lookupHash,
2746
+ lookupFromHashIndex
2747
+ } = _ref;
2748
+ let found;
2749
+ if (typeof window !== 'undefined') {
2750
+ const {
2751
+ hash
2752
+ } = window.location;
2753
+ if (hash && hash.length > 2) {
2754
+ const query = hash.substring(1);
2755
+ if (lookupHash) {
2756
+ const params = query.split('&');
2757
+ for (let i = 0; i < params.length; i++) {
2758
+ const pos = params[i].indexOf('=');
2759
+ if (pos > 0) {
2760
+ const key = params[i].substring(0, pos);
2761
+ if (key === lookupHash) {
2762
+ found = params[i].substring(pos + 1);
2763
+ }
2764
+ }
2765
+ }
2766
+ }
2767
+ if (found) return found;
2768
+ if (!found && lookupFromHashIndex > -1) {
2769
+ const language = hash.match(/\/([a-zA-Z-]*)/g);
2770
+ if (!Array.isArray(language)) return undefined;
2771
+ const index = typeof lookupFromHashIndex === 'number' ? lookupFromHashIndex : 0;
2772
+ return language[index]?.replace('/', '');
2773
+ }
2774
+ }
2775
+ }
2776
+ return found;
2777
+ }
2778
+ };
2779
+
2740
2780
  let hasLocalStorageSupport = null;
2741
2781
  const localStorageAvailable = () => {
2742
2782
  if (hasLocalStorageSupport !== null) return hasLocalStorageSupport;
@@ -2945,6 +2985,7 @@ class Browser {
2945
2985
  this.addDetector(htmlTag);
2946
2986
  this.addDetector(path);
2947
2987
  this.addDetector(subdomain);
2988
+ this.addDetector(hash);
2948
2989
  }
2949
2990
  addDetector(detector) {
2950
2991
  this.detectors[detector.name] = detector;
@@ -4365,6 +4406,10 @@ function toFormData$1(obj, formData, options) {
4365
4406
  return value.toISOString();
4366
4407
  }
4367
4408
 
4409
+ if (utils$1.isBoolean(value)) {
4410
+ return value.toString();
4411
+ }
4412
+
4368
4413
  if (!useBlob && utils$1.isBlob(value)) {
4369
4414
  throw new AxiosError$1('Blob is not supported. Use a Buffer instead.');
4370
4415
  }
@@ -6273,7 +6318,7 @@ var fetchAdapter = isFetchSupported && (async (config) => {
6273
6318
  credentials: isCredentialsSupported ? withCredentials : undefined
6274
6319
  });
6275
6320
 
6276
- let response = await fetch(request);
6321
+ let response = await fetch(request, fetchOptions);
6277
6322
 
6278
6323
  const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');
6279
6324
 
@@ -6479,7 +6524,7 @@ function dispatchRequest(config) {
6479
6524
  });
6480
6525
  }
6481
6526
 
6482
- const VERSION$1 = "1.9.0";
6527
+ const VERSION$1 = "1.10.0";
6483
6528
 
6484
6529
  const validators$1 = {};
6485
6530
 
@@ -7131,30 +7176,11 @@ const {
7131
7176
  mergeConfig
7132
7177
  } = axios;
7133
7178
 
7134
- var __async = (__this, __arguments, generator) => {
7135
- return new Promise((resolve, reject) => {
7136
- var fulfilled = (value) => {
7137
- try {
7138
- step(generator.next(value));
7139
- } catch (e) {
7140
- reject(e);
7141
- }
7142
- };
7143
- var rejected = (value) => {
7144
- try {
7145
- step(generator.throw(value));
7146
- } catch (e) {
7147
- reject(e);
7148
- }
7149
- };
7150
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
7151
- step((generator = generator.apply(__this, __arguments)).next());
7152
- });
7153
- };
7179
+ // src/utils/axios.ts
7154
7180
  var API_BASE_URL = "https://api.betterstore.io/v1";
7155
7181
  var createApiClient = (apiKey, proxy) => {
7156
7182
  const client = axios.create({
7157
- baseURL: proxy != null ? proxy : API_BASE_URL,
7183
+ baseURL: proxy ?? API_BASE_URL,
7158
7184
  headers: {
7159
7185
  "Content-Type": "application/json",
7160
7186
  Authorization: `Bearer ${apiKey}`,
@@ -7166,7 +7192,6 @@ var createApiClient = (apiKey, proxy) => {
7166
7192
  client.interceptors.response.use(
7167
7193
  (response) => response.data,
7168
7194
  (error) => {
7169
- var _a, _b;
7170
7195
  const apiError = {
7171
7196
  isError: true,
7172
7197
  status: 500,
@@ -7174,8 +7199,8 @@ var createApiClient = (apiKey, proxy) => {
7174
7199
  };
7175
7200
  if (error.response) {
7176
7201
  apiError.status = error.response.status;
7177
- apiError.message = ((_a = error.response.data) == null ? void 0 : _a.error) || "Server error occurred";
7178
- apiError.code = (_b = error.response.data) == null ? void 0 : _b.code;
7202
+ apiError.message = error.response.data?.error || "Server error occurred";
7203
+ apiError.code = error.response.data?.code;
7179
7204
  apiError.details = error.response.data;
7180
7205
  } else if (error.request) {
7181
7206
  apiError.status = 503;
@@ -7200,169 +7225,150 @@ var createApiClient = (apiKey, proxy) => {
7200
7225
 
7201
7226
  // src/client/index.ts
7202
7227
  var Client = class {
7228
+ proxy;
7203
7229
  constructor(proxy) {
7204
7230
  this.proxy = proxy;
7205
7231
  }
7206
7232
  /**
7207
7233
  * Retrieve a checkout session by ID
7208
7234
  */
7209
- retrieveCheckout(clientSecret, checkoutId) {
7210
- return __async(this, null, function* () {
7211
- const apiClient = createApiClient(clientSecret, this.proxy);
7212
- const data = yield apiClient.get(
7213
- `/checkout/${checkoutId}`
7214
- );
7215
- if ("isError" in data && data.isError || !data || !("id" in data)) {
7216
- console.error(`Checkout session with id ${checkoutId} not found`);
7217
- return null;
7218
- }
7219
- return data;
7220
- });
7235
+ async retrieveCheckout(clientSecret, checkoutId) {
7236
+ const apiClient = createApiClient(clientSecret, this.proxy);
7237
+ const data = await apiClient.get(
7238
+ `/checkout/${checkoutId}`
7239
+ );
7240
+ if ("isError" in data && data.isError || !data || !("id" in data)) {
7241
+ console.error(`Checkout session with id ${checkoutId} not found`);
7242
+ return null;
7243
+ }
7244
+ return data;
7221
7245
  }
7222
7246
  /**
7223
7247
  * Update a checkout session
7224
7248
  */
7225
- updateCheckout(clientSecret, checkoutId, params) {
7226
- return __async(this, null, function* () {
7227
- const apiClient = createApiClient(clientSecret, this.proxy);
7228
- const data = yield apiClient.put(
7229
- `/checkout/${checkoutId}`,
7230
- params
7231
- );
7232
- if ("isError" in data && data.isError || !data || !("id" in data)) {
7233
- console.error(`Checkout session with id ${checkoutId} not found`);
7234
- return null;
7235
- }
7236
- return data;
7237
- });
7249
+ async updateCheckout(clientSecret, checkoutId, params) {
7250
+ const apiClient = createApiClient(clientSecret, this.proxy);
7251
+ const data = await apiClient.put(
7252
+ `/checkout/${checkoutId}`,
7253
+ params
7254
+ );
7255
+ if ("isError" in data && data.isError || !data || !("id" in data)) {
7256
+ console.error(`Checkout session with id ${checkoutId} not found`);
7257
+ return null;
7258
+ }
7259
+ return data;
7238
7260
  }
7239
7261
  /**
7240
7262
  * Apply a discount code to a checkout session
7241
7263
  */
7242
- applyDiscountCode(clientSecret, checkoutId, discountCode) {
7243
- return __async(this, null, function* () {
7244
- const apiClient = createApiClient(clientSecret, this.proxy);
7245
- const data = yield apiClient.post(
7246
- `/checkout/${checkoutId}/discounts/apply`,
7247
- { code: discountCode }
7248
- );
7249
- if ("isError" in data && data.isError || !data || !("id" in data)) {
7250
- throw new Error("Failed to apply discount code");
7251
- }
7252
- return data;
7253
- });
7264
+ async applyDiscountCode(clientSecret, checkoutId, discountCode) {
7265
+ const apiClient = createApiClient(clientSecret, this.proxy);
7266
+ const data = await apiClient.post(
7267
+ `/checkout/${checkoutId}/discounts/apply`,
7268
+ { code: discountCode }
7269
+ );
7270
+ if ("isError" in data && data.isError || !data || !("id" in data)) {
7271
+ throw new Error("Failed to apply discount code");
7272
+ }
7273
+ return data;
7254
7274
  }
7255
7275
  /**
7256
7276
  * Remove a discount code from a checkout session
7257
7277
  */
7258
- removeDiscount(clientSecret, checkoutId, discountId) {
7259
- return __async(this, null, function* () {
7260
- const apiClient = createApiClient(clientSecret, this.proxy);
7261
- const data = yield apiClient.delete(
7262
- `/checkout/${checkoutId}/discounts/${discountId}`
7263
- );
7264
- if ("isError" in data && data.isError || !data || !("id" in data)) {
7265
- throw new Error("Failed to remove discount code");
7266
- }
7267
- return data;
7268
- });
7278
+ async removeDiscount(clientSecret, checkoutId, discountId) {
7279
+ const apiClient = createApiClient(clientSecret, this.proxy);
7280
+ const data = await apiClient.delete(
7281
+ `/checkout/${checkoutId}/discounts/${discountId}`
7282
+ );
7283
+ if ("isError" in data && data.isError || !data || !("id" in data)) {
7284
+ throw new Error("Failed to remove discount code");
7285
+ }
7286
+ return data;
7269
7287
  }
7270
7288
  /**
7271
7289
  * Revalidate a checkout session
7272
7290
  */
7273
- revalidateDiscounts(clientSecret, checkoutId) {
7274
- return __async(this, null, function* () {
7275
- const apiClient = createApiClient(clientSecret, this.proxy);
7276
- const data = yield apiClient.get(
7277
- `/checkout/${checkoutId}/discounts/revalidate`
7278
- );
7279
- if ("isError" in data && data.isError || !data || !("id" in data)) {
7280
- console.error(`Checkout session with id ${checkoutId} not found`);
7281
- return null;
7282
- }
7283
- return data;
7284
- });
7291
+ async revalidateDiscounts(clientSecret, checkoutId) {
7292
+ const apiClient = createApiClient(clientSecret, this.proxy);
7293
+ const data = await apiClient.get(
7294
+ `/checkout/${checkoutId}/discounts/revalidate`
7295
+ );
7296
+ if ("isError" in data && data.isError || !data || !("id" in data)) {
7297
+ console.error(`Checkout session with id ${checkoutId} not found`);
7298
+ return null;
7299
+ }
7300
+ return data;
7285
7301
  }
7286
7302
  /**
7287
7303
  * Get shipping rates for a checkout session
7288
7304
  */
7289
- getCheckoutShippingRates(clientSecret, checkoutId) {
7290
- return __async(this, null, function* () {
7291
- const apiClient = createApiClient(clientSecret, this.proxy);
7292
- const data = yield apiClient.get(
7293
- `/checkout/shipping/${checkoutId}`
7294
- );
7295
- if ("isError" in data && data.isError || !data || !Array.isArray(data)) {
7296
- return [];
7297
- }
7298
- return data;
7299
- });
7305
+ async getCheckoutShippingRates(clientSecret, checkoutId) {
7306
+ const apiClient = createApiClient(clientSecret, this.proxy);
7307
+ const data = await apiClient.get(
7308
+ `/checkout/shipping/${checkoutId}`
7309
+ );
7310
+ if ("isError" in data && data.isError || !data || !Array.isArray(data)) {
7311
+ return [];
7312
+ }
7313
+ return data;
7300
7314
  }
7301
7315
  /**
7302
7316
  * Generate payment secret for a checkout session
7303
7317
  */
7304
- generateCheckoutPaymentSecret(clientSecret, checkoutId) {
7305
- return __async(this, null, function* () {
7306
- const apiClient = createApiClient(clientSecret, this.proxy);
7307
- const data = yield apiClient.post(`/checkout/payment/${checkoutId}`);
7308
- if ("isError" in data && data.isError || !data || !("paymentSecret" in data)) {
7309
- throw new Error("Failed to generate payment secret");
7310
- }
7311
- return {
7312
- paymentSecret: data.paymentSecret,
7313
- publicKey: data.publicKey,
7314
- checkoutSession: data.checkoutSession
7315
- };
7316
- });
7318
+ async generateCheckoutPaymentSecret(clientSecret, checkoutId) {
7319
+ const apiClient = createApiClient(clientSecret, this.proxy);
7320
+ const data = await apiClient.post(`/checkout/payment/${checkoutId}`);
7321
+ if ("isError" in data && data.isError || !data || !("paymentSecret" in data)) {
7322
+ throw new Error("Failed to generate payment secret");
7323
+ }
7324
+ return {
7325
+ paymentSecret: data.paymentSecret,
7326
+ publicKey: data.publicKey,
7327
+ checkoutSession: data.checkoutSession
7328
+ };
7317
7329
  }
7318
7330
  /**
7319
7331
  * Create a new customer
7320
7332
  */
7321
- createCustomer(clientSecret, params) {
7322
- return __async(this, null, function* () {
7323
- const apiClient = createApiClient(clientSecret, this.proxy);
7324
- const data = yield apiClient.post(
7325
- "/customer",
7326
- params
7327
- );
7328
- if ("isError" in data && data.isError || !data || !("id" in data)) {
7329
- throw new Error("Failed to create customer");
7330
- }
7331
- return data;
7332
- });
7333
+ async createCustomer(clientSecret, params) {
7334
+ const apiClient = createApiClient(clientSecret, this.proxy);
7335
+ const data = await apiClient.post(
7336
+ "/customer",
7337
+ params
7338
+ );
7339
+ if ("isError" in data && data.isError || !data || !("id" in data)) {
7340
+ throw new Error("Failed to create customer");
7341
+ }
7342
+ return data;
7333
7343
  }
7334
7344
  /**
7335
7345
  * Retrieve a customer by ID or email
7336
7346
  */
7337
- retrieveCustomer(clientSecret, idOrEmail) {
7338
- return __async(this, null, function* () {
7339
- const apiClient = createApiClient(clientSecret, this.proxy);
7340
- const data = yield apiClient.get(
7341
- `/customer/${idOrEmail}`
7342
- );
7343
- if ("isError" in data && data.isError || !data || !("id" in data)) {
7344
- console.error(`Customer with id or email ${idOrEmail} not found`);
7345
- return null;
7346
- }
7347
- return data;
7348
- });
7347
+ async retrieveCustomer(clientSecret, idOrEmail) {
7348
+ const apiClient = createApiClient(clientSecret, this.proxy);
7349
+ const data = await apiClient.get(
7350
+ `/customer/${idOrEmail}`
7351
+ );
7352
+ if ("isError" in data && data.isError || !data || !("id" in data)) {
7353
+ console.error(`Customer with id or email ${idOrEmail} not found`);
7354
+ return null;
7355
+ }
7356
+ return data;
7349
7357
  }
7350
7358
  /**
7351
7359
  * Update a customer
7352
7360
  */
7353
- updateCustomer(clientSecret, customerId, params) {
7354
- return __async(this, null, function* () {
7355
- const apiClient = createApiClient(clientSecret, this.proxy);
7356
- const data = yield apiClient.put(
7357
- `/customer/${customerId}`,
7358
- params
7359
- );
7360
- if ("isError" in data && data.isError || !data || !("id" in data)) {
7361
- console.error(`Customer with id ${customerId} not found`);
7362
- return null;
7363
- }
7364
- return data;
7365
- });
7361
+ async updateCustomer(clientSecret, customerId, params) {
7362
+ const apiClient = createApiClient(clientSecret, this.proxy);
7363
+ const data = await apiClient.put(
7364
+ `/customer/${customerId}`,
7365
+ params
7366
+ );
7367
+ if ("isError" in data && data.isError || !data || !("id" in data)) {
7368
+ console.error(`Customer with id ${customerId} not found`);
7369
+ return null;
7370
+ }
7371
+ return data;
7366
7372
  }
7367
7373
  };
7368
7374
  var client_default = Client;
@@ -7433,12 +7439,12 @@ var currencyLocales = {
7433
7439
  // Turkish Lira
7434
7440
  };
7435
7441
  var Helpers = class {
7442
+ proxy;
7436
7443
  constructor(proxy) {
7437
7444
  this.proxy = proxy;
7438
7445
  }
7439
7446
  formatCurrency(currency) {
7440
- var _a;
7441
- const locale = (_a = currencyLocales[currency.toUpperCase()]) != null ? _a : void 0;
7447
+ const locale = currencyLocales[currency.toUpperCase()] ?? void 0;
7442
7448
  const formattedCurrency = new Intl.NumberFormat(locale, {
7443
7449
  style: "currency",
7444
7450
  currency,
@@ -7447,10 +7453,9 @@ var Helpers = class {
7447
7453
  return formattedCurrency.format(0).replace(/[\d.,\s]/g, "").trim();
7448
7454
  }
7449
7455
  formatPrice(priceInCents, currency, exchangeRate) {
7450
- var _a;
7451
- const amount = priceInCents / 100 * (exchangeRate != null ? exchangeRate : 1);
7456
+ const amount = priceInCents / 100 * (exchangeRate ?? 1);
7452
7457
  const isWhole = amount % 1 === 0;
7453
- const locale = (_a = currencyLocales[currency.toUpperCase()]) != null ? _a : void 0;
7458
+ const locale = currencyLocales[currency.toUpperCase()] ?? void 0;
7454
7459
  const formattedPrice = new Intl.NumberFormat(locale, {
7455
7460
  style: "currency",
7456
7461
  currency,
@@ -7460,32 +7465,30 @@ var Helpers = class {
7460
7465
  }).format(amount);
7461
7466
  return formattedPrice;
7462
7467
  }
7463
- getExchangeRate(baseCurrency, targetCurrency) {
7464
- return __async(this, null, function* () {
7465
- const apiClient = createApiClient("", this.proxy);
7466
- const { data } = yield apiClient.get(`/helpers/rates/${baseCurrency}`);
7467
- const rate = data.rates[targetCurrency];
7468
- if (!rate) {
7469
- throw new Error("Could not get exchange rate for target currency");
7470
- }
7471
- return rate;
7472
- });
7468
+ async getExchangeRate(baseCurrency, targetCurrency) {
7469
+ const apiClient = createApiClient("", this.proxy);
7470
+ const { data } = await apiClient.get(`/helpers/rates/${baseCurrency}`);
7471
+ const rate = data.rates[targetCurrency];
7472
+ if (!rate) {
7473
+ throw new Error("Could not get exchange rate for target currency");
7474
+ }
7475
+ return rate;
7473
7476
  }
7474
7477
  };
7475
7478
  var helpers_default = Helpers;
7476
7479
  function createStoreClient(config) {
7477
- return new client_default(config == null ? void 0 : config.proxy);
7480
+ return new client_default(config?.proxy);
7478
7481
  }
7479
7482
  function createStoreHelpers(config) {
7480
- return new helpers_default(void 0 );
7483
+ return new helpers_default(config?.proxy);
7481
7484
  }
7482
7485
 
7483
- var css_248z = "/*! tailwindcss v4.1.8 | 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 --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 -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n b, strong {\n font-weight: bolder;\n }\n code, kbd, samp, pre {\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n small {\n font-size: 80%;\n }\n sub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n :-moz-focusring {\n outline: auto;\n }\n progress {\n vertical-align: baseline;\n }\n summary {\n display: list-item;\n }\n ol, ul, menu {\n list-style: none;\n }\n img, svg, video, canvas, audio, iframe, embed, object {\n display: block;\n vertical-align: middle;\n }\n img, video {\n max-width: 100%;\n height: auto;\n }\n button, input, select, optgroup, textarea, ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n ::-moz-placeholder {\n opacity: 1;\n }\n ::placeholder {\n opacity: 1;\n }\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\n ::-moz-placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n ::placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n textarea {\n resize: vertical;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button, input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]), ::file-selector-button {\n -webkit-appearance: button;\n -moz-appearance: button;\n appearance: button;\n }\n ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n }\n [hidden]:where(:not([hidden=\"until-found\"])) {\n display: none !important;\n }\n}\n@layer utilities {\n .pointer-events-none {\n pointer-events: none;\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 .sticky {\n position: sticky;\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 .-right-2 {\n right: calc(var(--spacing) * -2);\n }\n .right-2 {\n right: calc(var(--spacing) * 2);\n }\n .right-4 {\n right: calc(var(--spacing) * 4);\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-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 .col-span-2 {\n grid-column: span 2 / span 2;\n }\n .-m-0\\.5 {\n margin: calc(var(--spacing) * -0.5);\n }\n .-mx-1 {\n margin-inline: calc(var(--spacing) * -1);\n }\n .mx-auto {\n margin-inline: auto;\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-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-1 {\n margin-bottom: calc(var(--spacing) * 1);\n }\n .mb-2 {\n margin-bottom: calc(var(--spacing) * 2);\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-3 {\n height: calc(var(--spacing) * 3);\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-\\[18px\\] {\n height: 18px;\n }\n .h-\\[20px\\] {\n height: 20px;\n }\n .h-\\[450px\\] {\n height: 450px;\n }\n .h-\\[var\\(--radix-select-trigger-height\\)\\] {\n height: var(--radix-select-trigger-height);\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: -moz-max-content;\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-96 {\n max-height: calc(var(--spacing) * 96);\n }\n .max-h-\\[200px\\] {\n max-height: 200px;\n }\n .max-h-\\[300px\\] {\n max-height: 300px;\n }\n .min-h-full {\n min-height: 100%;\n }\n .min-h-screen {\n min-height: 100vh;\n }\n .w-0 {\n width: calc(var(--spacing) * 0);\n }\n .w-4 {\n width: calc(var(--spacing) * 4);\n }\n .w-5 {\n width: calc(var(--spacing) * 5);\n }\n .w-6 {\n width: calc(var(--spacing) * 6);\n }\n .w-10 {\n width: calc(var(--spacing) * 10);\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-fit {\n width: -moz-fit-content;\n width: fit-content;\n }\n .w-full {\n width: 100%;\n }\n .max-w-\\[1200px\\] {\n max-width: 1200px;\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-\\[--radix-popper-anchor-width\\] {\n min-width: --radix-popper-anchor-width;\n }\n .min-w-\\[8rem\\] {\n min-width: 8rem;\n }\n .min-w-\\[var\\(--radix-select-trigger-width\\)\\] {\n min-width: var(--radix-select-trigger-width);\n }\n .flex-1 {\n flex: 1;\n }\n .shrink-0 {\n flex-shrink: 0;\n }\n .flex-grow {\n flex-grow: 1;\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-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-\\[-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 .transform-none\\! {\n transform: none !important;\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-my-1 {\n scroll-margin-block: calc(var(--spacing) * 1);\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\\.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-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 .space-x-2 {\n :where(& > :not(:last-child)) {\n --tw-space-x-reverse: 0;\n margin-inline-start: calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));\n margin-inline-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-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-0 {\n border-style: var(--tw-border-style);\n border-width: 0px;\n }\n .border-b {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\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 -o-object-fit: 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-4 {\n padding: calc(var(--spacing) * 4);\n }\n .p-6 {\n padding: calc(var(--spacing) * 6);\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 .pr-8 {\n padding-right: calc(var(--spacing) * 8);\n }\n .pb-1 {\n padding-bottom: calc(var(--spacing) * 1);\n }\n .pb-2 {\n padding-bottom: calc(var(--spacing) * 2);\n }\n .pl-2 {\n padding-left: calc(var(--spacing) * 2);\n }\n .pl-8 {\n padding-left: calc(var(--spacing) * 8);\n }\n .text-center {\n text-align: center;\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 .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-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-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-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-sm {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\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-\\[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-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 .outline-none {\n --tw-outline-style: none;\n outline-style: none;\n }\n .select-none {\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n }\n .duration-200 {\n animation-duration: 200ms;\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 .selection\\:bg-primary {\n & *::-moz-selection {\n background-color: var(--primary);\n }\n & *::selection {\n background-color: var(--primary);\n }\n &::-moz-selection {\n background-color: var(--primary);\n }\n &::selection {\n background-color: var(--primary);\n }\n }\n .selection\\:text-primary-foreground {\n & *::-moz-selection {\n color: var(--primary-foreground);\n }\n & *::selection {\n color: var(--primary-foreground);\n }\n &::-moz-selection {\n color: var(--primary-foreground);\n }\n &::selection {\n color: var(--primary-foreground);\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 &::-moz-placeholder {\n color: var(--muted-foreground);\n }\n &::placeholder {\n color: var(--muted-foreground);\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\\: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-1 {\n &:focus {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\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-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\\:outline-none {\n &:focus {\n --tw-outline-style: none;\n outline-style: none;\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-\\[placeholder\\]\\:text-muted-foreground {\n &[data-placeholder] {\n color: var(--muted-foreground);\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\\]\\:translate-y-1 {\n &[data-side=\"bottom\"] {\n --tw-translate-y: calc(var(--spacing) * 1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\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\\]\\:-translate-x-1 {\n &[data-side=\"left\"] {\n --tw-translate-x: calc(var(--spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\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\\]\\:translate-x-1 {\n &[data-side=\"right\"] {\n --tw-translate-x: calc(var(--spacing) * 1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\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\\]\\:-translate-y-1 {\n &[data-side=\"top\"] {\n --tw-translate-y: calc(var(--spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\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-\\[slot\\=select-value\\]\\:line-clamp-1 {\n :is(& > *) {\n &[data-slot=\"select-value\"] {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n }\n }\n }\n .\\*\\:data-\\[slot\\=select-value\\]\\:flex {\n :is(& > *) {\n &[data-slot=\"select-value\"] {\n display: flex;\n }\n }\n }\n .\\*\\:data-\\[slot\\=select-value\\]\\:items-center {\n :is(& > *) {\n &[data-slot=\"select-value\"] {\n align-items: center;\n }\n }\n }\n .\\*\\:data-\\[slot\\=select-value\\]\\:gap-2 {\n :is(& > *) {\n &[data-slot=\"select-value\"] {\n gap: calc(var(--spacing) * 2);\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 .sm\\:max-h-\\[270px\\] {\n @media (width >= 40rem) {\n max-height: 270px;\n }\n }\n .sm\\:max-w-\\[500px\\] {\n @media (width >= 40rem) {\n max-width: 500px;\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\\: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-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 .\\*\\:\\[span\\]\\:last\\:flex {\n :is(& > *) {\n &:is(span) {\n &:last-child {\n display: flex;\n }\n }\n }\n }\n .\\*\\:\\[span\\]\\:last\\:items-center {\n :is(& > *) {\n &:is(span) {\n &:last-child {\n align-items: center;\n }\n }\n }\n }\n .\\*\\:\\[span\\]\\:last\\:gap-2 {\n :is(& > *) {\n &:is(span) {\n &:last-child {\n gap: calc(var(--spacing) * 2);\n }\n }\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 .\\[\\&\\>span\\]\\:line-clamp-1 {\n &>span {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n }\n }\n}\n:root {\n --background: oklch(1 0 0);\n --foreground: oklch(0.145 0 0);\n --card: oklch(1 0 0);\n --card-foreground: oklch(0.145 0 0);\n --popover: oklch(1 0 0);\n --popover-foreground: oklch(0.145 0 0);\n --primary: oklch(0.205 0 0);\n --primary-foreground: oklch(0.985 0 0);\n --secondary: oklch(0.97 0 0);\n --secondary-foreground: oklch(0.205 0 0);\n --muted: oklch(0.97 0 0);\n --muted-foreground: oklch(0.556 0 0);\n --accent: oklch(0.97 0 0);\n --accent-foreground: oklch(0.205 0 0);\n --destructive: oklch(0.577 0.245 27.325);\n --destructive-foreground: oklch(0.577 0.245 27.325);\n --border: oklch(0.922 0 0);\n --input: oklch(0.922 0 0);\n --ring: oklch(0.708 0 0);\n --chart-1: oklch(0.646 0.222 41.116);\n --chart-2: oklch(0.6 0.118 184.704);\n --chart-3: oklch(0.398 0.07 227.392);\n --chart-4: oklch(0.828 0.189 84.429);\n --chart-5: oklch(0.769 0.188 70.08);\n --radius: 0.625rem;\n --sidebar: oklch(0.985 0 0);\n --sidebar-foreground: oklch(0.145 0 0);\n --sidebar-primary: oklch(0.205 0 0);\n --sidebar-primary-foreground: oklch(0.985 0 0);\n --sidebar-accent: oklch(0.97 0 0);\n --sidebar-accent-foreground: oklch(0.205 0 0);\n --sidebar-border: oklch(0.922 0 0);\n --sidebar-ring: oklch(0.708 0 0);\n}\n@layer base {\n * {\n border-color: var(--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) !important;\n letter-spacing: var(--tracking-tight) !important;\n }\n}\n@layer utilities {\n .scrollbar-hidden {\n scrollbar-width: none;\n }\n .scrollbar-hidden::-webkit-scrollbar {\n display: none;\n }\n}\n@keyframes enter {\n from {\n opacity: var(--tw-enter-opacity, 1);\n transform: translate3d(var(--tw-enter-translate-x, 0), var(--tw-enter-translate-y, 0), 0) scale3d(var(--tw-enter-scale, 1), var(--tw-enter-scale, 1), var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0));\n }\n}\n@keyframes exit {\n to {\n opacity: var(--tw-exit-opacity, 1);\n transform: translate3d(var(--tw-exit-translate-x, 0), var(--tw-exit-translate-y, 0), 0) scale3d(var(--tw-exit-scale, 1), var(--tw-exit-scale, 1), var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0));\n }\n}\n@property --tw-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-space-y-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-space-x-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-leading {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-tracking {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-inset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-ring-inset {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-offset-width {\n syntax: \"<length>\";\n inherits: false;\n initial-value: 0px;\n}\n@property --tw-ring-offset-color {\n syntax: \"*\";\n inherits: false;\n initial-value: #fff;\n}\n@property --tw-ring-offset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-outline-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-duration {\n syntax: \"*\";\n inherits: false;\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 50% {\n opacity: 0.5;\n }\n}\n@layer properties {\n @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n *, ::before, ::after, ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-space-y-reverse: 0;\n --tw-space-x-reverse: 0;\n --tw-border-style: solid;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-tracking: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-outline-style: solid;\n --tw-duration: initial;\n }\n }\n}\n";
7486
+ var css_248z = "/*! tailwindcss v4.1.11 | 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 --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 -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n b, strong {\n font-weight: bolder;\n }\n code, kbd, samp, pre {\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n small {\n font-size: 80%;\n }\n sub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n :-moz-focusring {\n outline: auto;\n }\n progress {\n vertical-align: baseline;\n }\n summary {\n display: list-item;\n }\n ol, ul, menu {\n list-style: none;\n }\n img, svg, video, canvas, audio, iframe, embed, object {\n display: block;\n vertical-align: middle;\n }\n img, video {\n max-width: 100%;\n height: auto;\n }\n button, input, select, optgroup, textarea, ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n ::-moz-placeholder {\n opacity: 1;\n }\n ::placeholder {\n opacity: 1;\n }\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\n ::-moz-placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n ::placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n textarea {\n resize: vertical;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button, input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]), ::file-selector-button {\n -webkit-appearance: button;\n -moz-appearance: button;\n appearance: button;\n }\n ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n }\n [hidden]:where(:not([hidden=\"until-found\"])) {\n display: none !important;\n }\n}\n@layer utilities {\n .pointer-events-none {\n pointer-events: none;\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 .sticky {\n position: sticky;\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 .-right-2 {\n right: calc(var(--spacing) * -2);\n }\n .right-2 {\n right: calc(var(--spacing) * 2);\n }\n .right-4 {\n right: calc(var(--spacing) * 4);\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-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 .col-span-2 {\n grid-column: span 2 / span 2;\n }\n .-m-0\\.5 {\n margin: calc(var(--spacing) * -0.5);\n }\n .-mx-1 {\n margin-inline: calc(var(--spacing) * -1);\n }\n .mx-auto {\n margin-inline: auto;\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-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-1 {\n margin-bottom: calc(var(--spacing) * 1);\n }\n .mb-2 {\n margin-bottom: calc(var(--spacing) * 2);\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-3 {\n height: calc(var(--spacing) * 3);\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-\\[18px\\] {\n height: 18px;\n }\n .h-\\[20px\\] {\n height: 20px;\n }\n .h-\\[450px\\] {\n height: 450px;\n }\n .h-\\[var\\(--radix-select-trigger-height\\)\\] {\n height: var(--radix-select-trigger-height);\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: -moz-max-content;\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-96 {\n max-height: calc(var(--spacing) * 96);\n }\n .max-h-\\[200px\\] {\n max-height: 200px;\n }\n .max-h-\\[300px\\] {\n max-height: 300px;\n }\n .min-h-full {\n min-height: 100%;\n }\n .min-h-screen {\n min-height: 100vh;\n }\n .w-0 {\n width: calc(var(--spacing) * 0);\n }\n .w-4 {\n width: calc(var(--spacing) * 4);\n }\n .w-5 {\n width: calc(var(--spacing) * 5);\n }\n .w-6 {\n width: calc(var(--spacing) * 6);\n }\n .w-10 {\n width: calc(var(--spacing) * 10);\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-fit {\n width: -moz-fit-content;\n width: fit-content;\n }\n .w-full {\n width: 100%;\n }\n .max-w-\\[1200px\\] {\n max-width: 1200px;\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-\\[--radix-popper-anchor-width\\] {\n min-width: --radix-popper-anchor-width;\n }\n .min-w-\\[8rem\\] {\n min-width: 8rem;\n }\n .min-w-\\[var\\(--radix-select-trigger-width\\)\\] {\n min-width: var(--radix-select-trigger-width);\n }\n .flex-1 {\n flex: 1;\n }\n .shrink-0 {\n flex-shrink: 0;\n }\n .flex-grow {\n flex-grow: 1;\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-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-\\[-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 .transform-none\\! {\n transform: none !important;\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-my-1 {\n scroll-margin-block: calc(var(--spacing) * 1);\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\\.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-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 .space-x-2 {\n :where(& > :not(:last-child)) {\n --tw-space-x-reverse: 0;\n margin-inline-start: calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));\n margin-inline-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-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-0 {\n border-style: var(--tw-border-style);\n border-width: 0px;\n }\n .border-b {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\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 -o-object-fit: 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-4 {\n padding: calc(var(--spacing) * 4);\n }\n .p-6 {\n padding: calc(var(--spacing) * 6);\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 .pr-8 {\n padding-right: calc(var(--spacing) * 8);\n }\n .pb-1 {\n padding-bottom: calc(var(--spacing) * 1);\n }\n .pb-2 {\n padding-bottom: calc(var(--spacing) * 2);\n }\n .pl-2 {\n padding-left: calc(var(--spacing) * 2);\n }\n .pl-8 {\n padding-left: calc(var(--spacing) * 8);\n }\n .text-center {\n text-align: center;\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 .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-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-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-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-sm {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\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-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 .outline-none {\n --tw-outline-style: none;\n outline-style: none;\n }\n .select-none {\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n }\n .duration-200 {\n animation-duration: 200ms;\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 .selection\\:bg-primary {\n & *::-moz-selection {\n background-color: var(--primary);\n }\n & *::selection {\n background-color: var(--primary);\n }\n &::-moz-selection {\n background-color: var(--primary);\n }\n &::selection {\n background-color: var(--primary);\n }\n }\n .selection\\:text-primary-foreground {\n & *::-moz-selection {\n color: var(--primary-foreground);\n }\n & *::selection {\n color: var(--primary-foreground);\n }\n &::-moz-selection {\n color: var(--primary-foreground);\n }\n &::selection {\n color: var(--primary-foreground);\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 &::-moz-placeholder {\n color: var(--muted-foreground);\n }\n &::placeholder {\n color: var(--muted-foreground);\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\\: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-1 {\n &:focus {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\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-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\\:outline-none {\n &:focus {\n --tw-outline-style: none;\n outline-style: none;\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-\\[placeholder\\]\\:text-muted-foreground {\n &[data-placeholder] {\n color: var(--muted-foreground);\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\\]\\:translate-y-1 {\n &[data-side=\"bottom\"] {\n --tw-translate-y: calc(var(--spacing) * 1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\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\\]\\:-translate-x-1 {\n &[data-side=\"left\"] {\n --tw-translate-x: calc(var(--spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\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\\]\\:translate-x-1 {\n &[data-side=\"right\"] {\n --tw-translate-x: calc(var(--spacing) * 1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\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\\]\\:-translate-y-1 {\n &[data-side=\"top\"] {\n --tw-translate-y: calc(var(--spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\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-\\[slot\\=select-value\\]\\:line-clamp-1 {\n :is(& > *) {\n &[data-slot=\"select-value\"] {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n }\n }\n }\n .\\*\\:data-\\[slot\\=select-value\\]\\:flex {\n :is(& > *) {\n &[data-slot=\"select-value\"] {\n display: flex;\n }\n }\n }\n .\\*\\:data-\\[slot\\=select-value\\]\\:items-center {\n :is(& > *) {\n &[data-slot=\"select-value\"] {\n align-items: center;\n }\n }\n }\n .\\*\\:data-\\[slot\\=select-value\\]\\:gap-2 {\n :is(& > *) {\n &[data-slot=\"select-value\"] {\n gap: calc(var(--spacing) * 2);\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 .sm\\:max-h-\\[270px\\] {\n @media (width >= 40rem) {\n max-height: 270px;\n }\n }\n .sm\\:max-w-\\[500px\\] {\n @media (width >= 40rem) {\n max-width: 500px;\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\\: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-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 .\\*\\:\\[span\\]\\:last\\:flex {\n :is(& > *) {\n &:is(span) {\n &:last-child {\n display: flex;\n }\n }\n }\n }\n .\\*\\:\\[span\\]\\:last\\:items-center {\n :is(& > *) {\n &:is(span) {\n &:last-child {\n align-items: center;\n }\n }\n }\n }\n .\\*\\:\\[span\\]\\:last\\:gap-2 {\n :is(& > *) {\n &:is(span) {\n &:last-child {\n gap: calc(var(--spacing) * 2);\n }\n }\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 .\\[\\&\\>span\\]\\:line-clamp-1 {\n &>span {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n }\n }\n}\n:root {\n --background: oklch(1 0 0);\n --foreground: oklch(0.145 0 0);\n --card: oklch(1 0 0);\n --card-foreground: oklch(0.145 0 0);\n --popover: oklch(1 0 0);\n --popover-foreground: oklch(0.145 0 0);\n --primary: oklch(0.205 0 0);\n --primary-foreground: oklch(0.985 0 0);\n --secondary: oklch(0.97 0 0);\n --secondary-foreground: oklch(0.205 0 0);\n --muted: oklch(0.97 0 0);\n --muted-foreground: oklch(0.556 0 0);\n --accent: oklch(0.97 0 0);\n --accent-foreground: oklch(0.205 0 0);\n --destructive: oklch(0.577 0.245 27.325);\n --destructive-foreground: oklch(0.577 0.245 27.325);\n --border: oklch(0.922 0 0);\n --input: oklch(0.922 0 0);\n --ring: oklch(0.708 0 0);\n --chart-1: oklch(0.646 0.222 41.116);\n --chart-2: oklch(0.6 0.118 184.704);\n --chart-3: oklch(0.398 0.07 227.392);\n --chart-4: oklch(0.828 0.189 84.429);\n --chart-5: oklch(0.769 0.188 70.08);\n --radius: 0.625rem;\n --sidebar: oklch(0.985 0 0);\n --sidebar-foreground: oklch(0.145 0 0);\n --sidebar-primary: oklch(0.205 0 0);\n --sidebar-primary-foreground: oklch(0.985 0 0);\n --sidebar-accent: oklch(0.97 0 0);\n --sidebar-accent-foreground: oklch(0.205 0 0);\n --sidebar-border: oklch(0.922 0 0);\n --sidebar-ring: oklch(0.708 0 0);\n}\n@layer base {\n * {\n border-color: var(--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) !important;\n letter-spacing: var(--tracking-tight) !important;\n }\n}\n@layer utilities {\n .scrollbar-hidden {\n scrollbar-width: none;\n }\n .scrollbar-hidden::-webkit-scrollbar {\n display: none;\n }\n}\n@keyframes enter {\n from {\n opacity: var(--tw-enter-opacity, 1);\n transform: translate3d(var(--tw-enter-translate-x, 0), var(--tw-enter-translate-y, 0), 0) scale3d(var(--tw-enter-scale, 1), var(--tw-enter-scale, 1), var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0));\n }\n}\n@keyframes exit {\n to {\n opacity: var(--tw-exit-opacity, 1);\n transform: translate3d(var(--tw-exit-translate-x, 0), var(--tw-exit-translate-y, 0), 0) scale3d(var(--tw-exit-scale, 1), var(--tw-exit-scale, 1), var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0));\n }\n}\n@property --tw-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-space-y-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-space-x-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-leading {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-tracking {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-inset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-ring-inset {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-offset-width {\n syntax: \"<length>\";\n inherits: false;\n initial-value: 0px;\n}\n@property --tw-ring-offset-color {\n syntax: \"*\";\n inherits: false;\n initial-value: #fff;\n}\n@property --tw-ring-offset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-outline-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-duration {\n syntax: \"*\";\n inherits: false;\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 50% {\n opacity: 0.5;\n }\n}\n@layer properties {\n @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n *, ::before, ::after, ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-space-y-reverse: 0;\n --tw-space-x-reverse: 0;\n --tw-border-style: solid;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-tracking: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-outline-style: solid;\n --tw-duration: initial;\n }\n }\n}\n";
7484
7487
 
7485
7488
  const IframeWrapper = React__default.memo(({ children, iframeRef }) => {
7486
7489
  const [iframeBody, setIframeBody] = useState(null);
7487
7490
  const styleRef = useRef(null);
7488
- const resizeObserver = useRef();
7491
+ const resizeObserver = useRef(null);
7489
7492
  const injectStyles = useCallback((doc) => {
7490
7493
  var _a;
7491
7494
  // Clean up previous style
@@ -7546,9 +7549,7 @@ const IframeWrapper = React__default.memo(({ children, iframeRef }) => {
7546
7549
  window.removeEventListener("resize", updateHeight);
7547
7550
  };
7548
7551
  }, [updateHeight]);
7549
- return (React__default.createElement("div", { id: "bs-wrapper", className: "w-full max-w-[1200px] min-h-screen mx-auto overflow-y-auto overflow-x-hidden relative" },
7550
- React__default.createElement("iframe", { ref: iframeRef, className: "w-full min-h-screen border-0", sandbox: "allow-same-origin allow-scripts allow-forms allow-popups allow-popups-to-escape-sandbox allow-top-navigation" }),
7551
- iframeBody && ReactDOM__default.createPortal(children, iframeBody)));
7552
+ return (jsxs("div", { id: "bs-wrapper", className: "relative mx-auto min-h-screen w-full max-w-[1200px] overflow-y-auto overflow-x-hidden", children: [jsx("iframe", { ref: iframeRef, className: "min-h-screen w-full border-0", sandbox: "allow-same-origin allow-scripts allow-forms allow-popups allow-popups-to-escape-sandbox allow-top-navigation" }), iframeBody && ReactDOM__default.createPortal(children, iframeBody)] }));
7552
7553
  });
7553
7554
  IframeWrapper.displayName = "IframeWrapper";
7554
7555
 
@@ -8678,7 +8679,7 @@ const Toaster$1 = /*#__PURE__*/ React__default.forwardRef(function Toaster(props
8678
8679
  const Toaster = (_a) => {
8679
8680
  var props = __rest(_a, []);
8680
8681
  const { theme = "system" } = z();
8681
- return (React__default.createElement(Toaster$1, Object.assign({ theme: theme, className: "toaster group", style: {
8682
+ return (jsx(Toaster$1, Object.assign({ theme: theme, className: "toaster group", style: {
8682
8683
  "--normal-bg": "var(--popover)",
8683
8684
  "--normal-text": "var(--popover-foreground)",
8684
8685
  "--normal-border": "var(--border)",
@@ -12914,15 +12915,19 @@ function cloneObject(data) {
12914
12915
  return copy;
12915
12916
  }
12916
12917
 
12917
- var compact = (value) => Array.isArray(value) ? value.filter(Boolean) : [];
12918
+ var isKey = (value) => /^\w*$/.test(value);
12918
12919
 
12919
12920
  var isUndefined = (val) => val === undefined;
12920
12921
 
12922
+ var compact = (value) => Array.isArray(value) ? value.filter(Boolean) : [];
12923
+
12924
+ var stringToPath = (input) => compact(input.replace(/["|']|\]/g, '').split(/\.|\[/));
12925
+
12921
12926
  var get = (object, path, defaultValue) => {
12922
12927
  if (!path || !isObject(object)) {
12923
12928
  return defaultValue;
12924
12929
  }
12925
- const result = compact(path.split(/[,[\].]+?/)).reduce((result, key) => isNullOrUndefined(result) ? result : result[key], object);
12930
+ const result = (isKey(path) ? [path] : stringToPath(path)).reduce((result, key) => isNullOrUndefined(result) ? result : result[key], object);
12926
12931
  return isUndefined(result) || result === object
12927
12932
  ? isUndefined(object[path])
12928
12933
  ? defaultValue
@@ -12932,10 +12937,6 @@ var get = (object, path, defaultValue) => {
12932
12937
 
12933
12938
  var isBoolean = (value) => typeof value === 'boolean';
12934
12939
 
12935
- var isKey = (value) => /^\w*$/.test(value);
12936
-
12937
- var stringToPath = (input) => compact(input.replace(/["|']|\]/g, '').split(/\.|\[/));
12938
-
12939
12940
  var set = (object, path, value) => {
12940
12941
  let index = -1;
12941
12942
  const tempPath = isKey(path) ? [path] : stringToPath(path);
@@ -12984,6 +12985,7 @@ const INPUT_VALIDATION_RULES = {
12984
12985
  };
12985
12986
 
12986
12987
  const HookFormContext = React__default.createContext(null);
12988
+ HookFormContext.displayName = 'HookFormContext';
12987
12989
  /**
12988
12990
  * This custom hook allows you to access the form context. useFormContext is intended to be used in deeply nested structures, where it would become inconvenient to pass the context as a prop. To be used with {@link FormProvider}.
12989
12991
  *
@@ -13413,7 +13415,7 @@ var createSubject = () => {
13413
13415
 
13414
13416
  var isPrimitive = (value) => isNullOrUndefined(value) || !isObjectType(value);
13415
13417
 
13416
- function deepEqual$1(object1, object2) {
13418
+ function deepEqual$1(object1, object2, _internal_visited = new WeakSet()) {
13417
13419
  if (isPrimitive(object1) || isPrimitive(object2)) {
13418
13420
  return object1 === object2;
13419
13421
  }
@@ -13425,6 +13427,11 @@ function deepEqual$1(object1, object2) {
13425
13427
  if (keys1.length !== keys2.length) {
13426
13428
  return false;
13427
13429
  }
13430
+ if (_internal_visited.has(object1) || _internal_visited.has(object2)) {
13431
+ return true;
13432
+ }
13433
+ _internal_visited.add(object1);
13434
+ _internal_visited.add(object2);
13428
13435
  for (const key of keys1) {
13429
13436
  const val1 = object1[key];
13430
13437
  if (!keys2.includes(key)) {
@@ -13435,7 +13442,7 @@ function deepEqual$1(object1, object2) {
13435
13442
  if ((isDateObject(val1) && isDateObject(val2)) ||
13436
13443
  (isObject(val1) && isObject(val2)) ||
13437
13444
  (Array.isArray(val1) && Array.isArray(val2))
13438
- ? !deepEqual$1(val1, val2)
13445
+ ? !deepEqual$1(val1, val2, _internal_visited)
13439
13446
  : val1 !== val2) {
13440
13447
  return false;
13441
13448
  }
@@ -14754,14 +14761,14 @@ function createFormControl(props = {}) {
14754
14761
  if (_options.resolver) {
14755
14762
  const { errors, values } = await _runSchema();
14756
14763
  _formState.errors = errors;
14757
- fieldValues = values;
14764
+ fieldValues = cloneObject(values);
14758
14765
  }
14759
14766
  else {
14760
14767
  await executeBuiltInValidation(_fields);
14761
14768
  }
14762
14769
  if (_names.disabled.size) {
14763
14770
  for (const name of _names.disabled) {
14764
- set(fieldValues, name, undefined);
14771
+ unset(fieldValues, name);
14765
14772
  }
14766
14773
  }
14767
14774
  unset(_formState.errors, 'root');
@@ -14858,7 +14865,11 @@ function createFormControl(props = {}) {
14858
14865
  }
14859
14866
  }
14860
14867
  for (const fieldName of _names.mount) {
14861
- setValue(fieldName, get(values, fieldName));
14868
+ const value = get(values, fieldName, get(_defaultValues, fieldName));
14869
+ if (!isUndefined(value)) {
14870
+ set(values, fieldName, value);
14871
+ setValue(fieldName, get(values, fieldName));
14872
+ }
14862
14873
  }
14863
14874
  }
14864
14875
  _formValues = cloneObject(values);
@@ -15078,14 +15089,21 @@ function useForm(props = {}) {
15078
15089
  : props.defaultValues,
15079
15090
  });
15080
15091
  if (!_formControl.current) {
15081
- _formControl.current = {
15082
- ...(props.formControl ? props.formControl : createFormControl(props)),
15083
- formState,
15084
- };
15085
- if (props.formControl &&
15086
- props.defaultValues &&
15087
- !isFunction$1(props.defaultValues)) {
15088
- props.formControl.reset(props.defaultValues, props.resetOptions);
15092
+ if (props.formControl) {
15093
+ _formControl.current = {
15094
+ ...props.formControl,
15095
+ formState,
15096
+ };
15097
+ if (props.defaultValues && !isFunction$1(props.defaultValues)) {
15098
+ props.formControl.reset(props.defaultValues, props.resetOptions);
15099
+ }
15100
+ }
15101
+ else {
15102
+ const { formControl, ...rest } = createFormControl(props);
15103
+ _formControl.current = {
15104
+ ...rest,
15105
+ formState,
15106
+ };
15089
15107
  }
15090
15108
  }
15091
15109
  const control = _formControl.current.control;
@@ -15631,7 +15649,7 @@ const arbitraryVariableRegex = /^\((?:(\w[\w-]*):)?(.+)\)$/i;
15631
15649
  const fractionRegex = /^\d+\/\d+$/;
15632
15650
  const tshirtUnitRegex = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/;
15633
15651
  const lengthUnitRegex = /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/;
15634
- const colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/;
15652
+ const colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/;
15635
15653
  // Shadow always begins with x and y offset separated by underscore optionally prepended by inset
15636
15654
  const shadowRegex = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/;
15637
15655
  const imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/;
@@ -18178,7 +18196,7 @@ function cn(...inputs) {
18178
18196
 
18179
18197
  function Label(_a) {
18180
18198
  var { className } = _a, props = __rest(_a, ["className"]);
18181
- return (React.createElement(Root$2, Object.assign({ "data-slot": "label", className: cn("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50", className) }, props)));
18199
+ return (jsx(Root$2, Object.assign({ "data-slot": "label", className: cn("flex select-none items-center gap-2 text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-50 group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50", className) }, props)));
18182
18200
  }
18183
18201
 
18184
18202
  const validErrorMessageKeys = Object.keys(en.Errors);
@@ -18194,8 +18212,7 @@ const Form = FormProvider;
18194
18212
  const FormFieldContext = React.createContext({});
18195
18213
  const FormField = (_a) => {
18196
18214
  var props = __rest(_a, []);
18197
- return (React.createElement(FormFieldContext.Provider, { value: { name: props.name } },
18198
- React.createElement(Controller, Object.assign({}, props))));
18215
+ return (jsx(FormFieldContext.Provider, { value: { name: props.name }, children: jsx(Controller, Object.assign({}, props)) }));
18199
18216
  };
18200
18217
  const useFormField = () => {
18201
18218
  const fieldContext = React.useContext(FormFieldContext);
@@ -18213,18 +18230,17 @@ const FormItemContext = React.createContext({});
18213
18230
  function FormItem(_a) {
18214
18231
  var { className } = _a, props = __rest(_a, ["className"]);
18215
18232
  const id = React.useId();
18216
- return (React.createElement(FormItemContext.Provider, { value: { id } },
18217
- React.createElement("div", Object.assign({ "data-slot": "form-item", className: cn("grid gap-2", className) }, props))));
18233
+ return (jsx(FormItemContext.Provider, { value: { id }, children: jsx("div", Object.assign({ "data-slot": "form-item", className: cn("grid gap-2", className) }, props)) }));
18218
18234
  }
18219
18235
  function FormLabel(_a) {
18220
18236
  var { className } = _a, props = __rest(_a, ["className"]);
18221
18237
  const { error, formItemId } = useFormField();
18222
- return (React.createElement(Label, Object.assign({ "data-slot": "form-label", "data-error": !!error, className: cn("data-[error=true]:text-destructive-foreground", className), htmlFor: formItemId }, props)));
18238
+ return (jsx(Label, Object.assign({ "data-slot": "form-label", "data-error": !!error, className: cn("data-[error=true]:text-destructive-foreground", className), htmlFor: formItemId }, props)));
18223
18239
  }
18224
18240
  function FormControl(_a) {
18225
18241
  var props = __rest(_a, []);
18226
18242
  const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
18227
- return (React.createElement(Slot$2, Object.assign({ "data-slot": "form-control", id: formItemId, "aria-describedby": !error
18243
+ return (jsx(Slot$2, Object.assign({ "data-slot": "form-control", id: formItemId, "aria-describedby": !error
18228
18244
  ? `${formDescriptionId}`
18229
18245
  : `${formDescriptionId} ${formMessageId}`, "aria-invalid": !!error }, props)));
18230
18246
  }
@@ -18239,22 +18255,18 @@ function FormMessage(_a) {
18239
18255
  }
18240
18256
  const key = validateErrorMessageKey(String(body));
18241
18257
  const message = t(`Errors.${key}`);
18242
- return (React.createElement("p", Object.assign({ "data-slot": "form-message", id: formMessageId, className: cn("text-destructive-foreground text-sm", className) }, props), message));
18258
+ return (jsx("p", Object.assign({ "data-slot": "form-message", id: formMessageId, className: cn("text-destructive-foreground text-sm", className) }, props, { children: message })));
18243
18259
  }
18244
18260
 
18245
18261
  function Input(_a) {
18246
18262
  var { className, type } = _a, props = __rest(_a, ["className", "type"]);
18247
- return (React.createElement("input", Object.assign({ type: type, "data-slot": "input", className: cn("border-input file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground flex h-10 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]", "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", className) }, props)));
18263
+ return (jsx("input", Object.assign({ type: type, "data-slot": "input", className: cn("border-input file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground shadow-xs flex h-10 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base outline-none transition-[color,box-shadow] file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]", "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", className) }, props)));
18248
18264
  }
18249
18265
 
18250
18266
  function InputGroup(_a) {
18251
18267
  var { name, label, className } = _a, props = __rest(_a, ["name", "label", "className"]);
18252
18268
  const { control } = useFormContext();
18253
- return (React__default.createElement(FormField, { control: control, name: name, render: ({ field }) => (React__default.createElement(FormItem, { className: className },
18254
- React__default.createElement(FormLabel, null, label),
18255
- React__default.createElement(FormControl, null,
18256
- React__default.createElement(Input, Object.assign({}, field, props))),
18257
- React__default.createElement(FormMessage, null))) }));
18269
+ return (jsx(FormField, { control: control, name: name, render: ({ field }) => (jsxs(FormItem, { className: className, children: [jsx(FormLabel, { children: label }), jsx(FormControl, { children: jsx(Input, Object.assign({}, field, props)) }), jsx(FormMessage, {})] })) }));
18258
18270
  }
18259
18271
 
18260
18272
  const falsyToString = (value)=>typeof value === "boolean" ? `${value}` : value === 0 ? "0" : value;
@@ -18324,7 +18336,7 @@ const buttonVariants = cva("inline-flex cursor-pointer items-center justify-cent
18324
18336
  function Button(_a) {
18325
18337
  var { className, variant, size, asChild = false } = _a, props = __rest(_a, ["className", "variant", "size", "asChild"]);
18326
18338
  const Comp = asChild ? Slot$2 : "button";
18327
- return (React.createElement(Comp, Object.assign({ "data-slot": "button", className: cn(buttonVariants({ variant, size, className })) }, props)));
18339
+ return (jsx(Comp, Object.assign({ "data-slot": "button", className: cn(buttonVariants({ variant, size, className })) }, props)));
18328
18340
  }
18329
18341
 
18330
18342
  /**
@@ -18517,9 +18529,7 @@ const X$2 = createLucideIcon("X", __iconNode);
18517
18529
  function SubmitButton(_a) {
18518
18530
  var { isSubmitting, isValid = true, className, variant, children, size } = _a, props = __rest(_a, ["isSubmitting", "isValid", "className", "variant", "children", "size"]);
18519
18531
  const { t } = useTranslation();
18520
- return (React__default.createElement(Button, Object.assign({ type: "submit", size: size, className: className, variant: variant, disabled: isSubmitting || !isValid }, props),
18521
- isSubmitting && React__default.createElement(Loader, { className: "animate-spin" }),
18522
- isSubmitting ? t("CheckoutEmbed.loading") : children));
18532
+ return (jsxs(Button, Object.assign({ type: "submit", size: size, className: className, variant: variant, disabled: isSubmitting || !isValid }, props, { children: [isSubmitting && jsx(Loader, { className: "animate-spin" }), isSubmitting ? t("CheckoutEmbed.loading") : children] })));
18523
18533
  }
18524
18534
 
18525
18535
  const r=(t,r,o)=>{if(t&&"reportValidity"in t){const s=get(o,r);t.setCustomValidity(s&&s.message||""),t.reportValidity();}},o=(e,t)=>{for(const o in t.fields){const s=t.fields[o];s&&s.ref&&"reportValidity"in s.ref?r(s.ref,o,e):s&&s.refs&&s.refs.forEach(t=>r(t,o,e));}},s$2=(r,s)=>{s.shouldUseNativeValidation&&o(r,s);const n={};for(const o in r){const f=get(s.fields,o),c=Object.assign(r[o]||{},{ref:f&&f.ref});if(i(s.names||Object.keys(r),o)){const r=Object.assign({},get(n,o));set(r,"root",c),set(n,o,r);}else set(n,o,c);}return n},i=(e,t)=>{const r=n$2(t);return e.some(e=>n$2(e).match(`^${r}\\.\\d+`))};function n$2(e){return e.replace(/\]|\[/g,"")}
@@ -22044,72 +22054,64 @@ var Close = DialogClose;
22044
22054
 
22045
22055
  function Dialog(_a) {
22046
22056
  var props = __rest(_a, []);
22047
- return React.createElement(Root$1, Object.assign({ "data-slot": "dialog" }, props));
22057
+ return jsx(Root$1, Object.assign({ "data-slot": "dialog" }, props));
22048
22058
  }
22049
22059
  function DialogTrigger(_a) {
22050
22060
  var props = __rest(_a, []);
22051
- return React.createElement(Trigger$1, Object.assign({ "data-slot": "dialog-trigger" }, props));
22061
+ return jsx(Trigger$1, Object.assign({ "data-slot": "dialog-trigger" }, props));
22052
22062
  }
22053
22063
  function DialogPortal(_a) {
22054
22064
  var props = __rest(_a, []);
22055
- return React.createElement(Portal$1, Object.assign({ "data-slot": "dialog-portal" }, props));
22065
+ return jsx(Portal$1, Object.assign({ "data-slot": "dialog-portal" }, props));
22056
22066
  }
22057
22067
  function DialogOverlay(_a) {
22058
22068
  var { className } = _a, props = __rest(_a, ["className"]);
22059
- return (React.createElement(Overlay, Object.assign({ "data-slot": "dialog-overlay", className: cn("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50", className) }, props)));
22069
+ return (jsx(Overlay, Object.assign({ "data-slot": "dialog-overlay", className: cn("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50", className) }, props)));
22060
22070
  }
22061
22071
  function DialogContent(_a) {
22062
22072
  var { className, children } = _a, props = __rest(_a, ["className", "children"]);
22063
- return (React.createElement(DialogPortal, { "data-slot": "dialog-portal" },
22064
- React.createElement(DialogOverlay, null),
22065
- React.createElement(Content$1, Object.assign({ "data-slot": "dialog-content", className: cn("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg", className) }, props),
22066
- children,
22067
- React.createElement(Close, { className: "ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4" },
22068
- React.createElement(X$2, null),
22069
- React.createElement("span", { className: "sr-only" }, "Close")))));
22073
+ return (jsxs(DialogPortal, { "data-slot": "dialog-portal", children: [jsx(DialogOverlay, {}), jsxs(Content$1, Object.assign({ "data-slot": "dialog-content", className: cn("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed left-[50%] top-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg", className) }, props, { children: [children, jsxs(Close, { className: "ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground rounded-xs focus:outline-hidden absolute right-4 top-4 opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 disabled:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0", children: [jsx(X$2, {}), jsx("span", { className: "sr-only", children: "Close" })] })] }))] }));
22070
22074
  }
22071
22075
  function DialogHeader(_a) {
22072
22076
  var { className } = _a, props = __rest(_a, ["className"]);
22073
- return (React.createElement("div", Object.assign({ "data-slot": "dialog-header", className: cn("flex flex-col gap-2 text-center sm:text-left", className) }, props)));
22077
+ return (jsx("div", Object.assign({ "data-slot": "dialog-header", className: cn("flex flex-col gap-2 text-center sm:text-left", className) }, props)));
22074
22078
  }
22075
22079
  function DialogFooter(_a) {
22076
22080
  var { className } = _a, props = __rest(_a, ["className"]);
22077
- return (React.createElement("div", Object.assign({ "data-slot": "dialog-footer", className: cn("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", className) }, props)));
22081
+ return (jsx("div", Object.assign({ "data-slot": "dialog-footer", className: cn("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", className) }, props)));
22078
22082
  }
22079
22083
  function DialogTitle(_a) {
22080
22084
  var { className } = _a, props = __rest(_a, ["className"]);
22081
- return (React.createElement(Title, Object.assign({ "data-slot": "dialog-title", className: cn("text-lg leading-none font-semibold", className) }, props)));
22085
+ return (jsx(Title, Object.assign({ "data-slot": "dialog-title", className: cn("text-lg font-semibold leading-none", className) }, props)));
22082
22086
  }
22083
22087
  function DialogDescription(_a) {
22084
22088
  var { className } = _a, props = __rest(_a, ["className"]);
22085
- return (React.createElement(Description, Object.assign({ "data-slot": "dialog-description", className: cn("text-muted-foreground text-sm", className) }, props)));
22089
+ return (jsx(Description, Object.assign({ "data-slot": "dialog-description", className: cn("text-muted-foreground text-sm", className) }, props)));
22086
22090
  }
22087
22091
 
22088
22092
  function Command(_a) {
22089
22093
  var { className } = _a, props = __rest(_a, ["className"]);
22090
- return (React.createElement(He, Object.assign({ "data-slot": "command", className: cn("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md", className) }, props)));
22094
+ return (jsx(He, Object.assign({ "data-slot": "command", className: cn("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md", className) }, props)));
22091
22095
  }
22092
22096
  function CommandInput(_a) {
22093
22097
  var { className } = _a, props = __rest(_a, ["className"]);
22094
- return (React.createElement("div", { "data-slot": "command-input-wrapper", className: "flex h-9 items-center gap-2 border-b px-3" },
22095
- React.createElement(Search, { className: "size-4 shrink-0 opacity-50" }),
22096
- React.createElement(He.Input, Object.assign({ "data-slot": "command-input", className: cn("placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50", className) }, props))));
22098
+ return (jsxs("div", { "data-slot": "command-input-wrapper", className: "flex h-9 items-center gap-2 border-b px-3", children: [jsx(Search, { className: "size-4 shrink-0 opacity-50" }), jsx(He.Input, Object.assign({ "data-slot": "command-input", className: cn("placeholder:text-muted-foreground outline-hidden flex h-10 w-full rounded-md bg-transparent py-3 text-sm disabled:cursor-not-allowed disabled:opacity-50", className) }, props))] }));
22097
22099
  }
22098
22100
  function CommandList(_a) {
22099
22101
  var { className } = _a, props = __rest(_a, ["className"]);
22100
- return (React.createElement(He.List, Object.assign({ "data-slot": "command-list", className: cn("max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto", className) }, props)));
22102
+ return (jsx(He.List, Object.assign({ "data-slot": "command-list", className: cn("max-h-[300px] scroll-py-1 overflow-y-auto overflow-x-hidden", className) }, props)));
22101
22103
  }
22102
22104
  function CommandEmpty(_a) {
22103
22105
  var props = __rest(_a, []);
22104
- return (React.createElement(He.Empty, Object.assign({ "data-slot": "command-empty", className: "py-6 text-center text-sm" }, props)));
22106
+ return (jsx(He.Empty, Object.assign({ "data-slot": "command-empty", className: "py-6 text-center text-sm" }, props)));
22105
22107
  }
22106
22108
  function CommandGroup(_a) {
22107
22109
  var { className } = _a, props = __rest(_a, ["className"]);
22108
- return (React.createElement(He.Group, Object.assign({ "data-slot": "command-group", className: cn("text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium", className) }, props)));
22110
+ return (jsx(He.Group, Object.assign({ "data-slot": "command-group", className: cn("text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium", className) }, props)));
22109
22111
  }
22110
22112
  function CommandItem(_a) {
22111
22113
  var { className } = _a, props = __rest(_a, ["className"]);
22112
- return (React.createElement(He.Item, Object.assign({ "data-slot": "command-item", className: cn("data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className) }, props)));
22114
+ return (jsx(He.Item, Object.assign({ "data-slot": "command-item", className: cn("data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground outline-hidden relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0", className) }, props)));
22113
22115
  }
22114
22116
 
22115
22117
  /**
@@ -22154,8 +22156,9 @@ function getOppositeAxis(axis) {
22154
22156
  function getAxisLength(axis) {
22155
22157
  return axis === 'y' ? 'height' : 'width';
22156
22158
  }
22159
+ const yAxisSides = /*#__PURE__*/new Set(['top', 'bottom']);
22157
22160
  function getSideAxis(placement) {
22158
- return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';
22161
+ return yAxisSides.has(getSide(placement)) ? 'y' : 'x';
22159
22162
  }
22160
22163
  function getAlignmentAxis(placement) {
22161
22164
  return getOppositeAxis(getSideAxis(placement));
@@ -22180,19 +22183,19 @@ function getExpandedPlacements(placement) {
22180
22183
  function getOppositeAlignmentPlacement(placement) {
22181
22184
  return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);
22182
22185
  }
22186
+ const lrPlacement = ['left', 'right'];
22187
+ const rlPlacement = ['right', 'left'];
22188
+ const tbPlacement = ['top', 'bottom'];
22189
+ const btPlacement = ['bottom', 'top'];
22183
22190
  function getSideList(side, isStart, rtl) {
22184
- const lr = ['left', 'right'];
22185
- const rl = ['right', 'left'];
22186
- const tb = ['top', 'bottom'];
22187
- const bt = ['bottom', 'top'];
22188
22191
  switch (side) {
22189
22192
  case 'top':
22190
22193
  case 'bottom':
22191
- if (rtl) return isStart ? rl : lr;
22192
- return isStart ? lr : rl;
22194
+ if (rtl) return isStart ? rlPlacement : lrPlacement;
22195
+ return isStart ? lrPlacement : rlPlacement;
22193
22196
  case 'left':
22194
22197
  case 'right':
22195
- return isStart ? tb : bt;
22198
+ return isStart ? tbPlacement : btPlacement;
22196
22199
  default:
22197
22200
  return [];
22198
22201
  }
@@ -22742,6 +22745,8 @@ const hide$2 = function (options) {
22742
22745
  };
22743
22746
  };
22744
22747
 
22748
+ const originSides = /*#__PURE__*/new Set(['left', 'top']);
22749
+
22745
22750
  // For type backwards-compatibility, the `OffsetOptions` type was also
22746
22751
  // Derivable.
22747
22752
 
@@ -22755,7 +22760,7 @@ async function convertValueToCoords(state, options) {
22755
22760
  const side = getSide(placement);
22756
22761
  const alignment = getAlignment(placement);
22757
22762
  const isVertical = getSideAxis(placement) === 'y';
22758
- const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;
22763
+ const mainAxisMulti = originSides.has(side) ? -1 : 1;
22759
22764
  const crossAxisMulti = rtl && isVertical ? -1 : 1;
22760
22765
  const rawValue = evaluate(options, state);
22761
22766
 
@@ -22955,7 +22960,7 @@ const limitShift$2 = function (options) {
22955
22960
  if (checkCrossAxis) {
22956
22961
  var _middlewareData$offse, _middlewareData$offse2;
22957
22962
  const len = mainAxis === 'y' ? 'width' : 'height';
22958
- const isOriginSide = ['top', 'left'].includes(getSide(placement));
22963
+ const isOriginSide = originSides.has(getSide(placement));
22959
22964
  const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);
22960
22965
  const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);
22961
22966
  if (crossAxisCoord < limitMin) {
@@ -23100,6 +23105,7 @@ function isShadowRoot(value) {
23100
23105
  }
23101
23106
  return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;
23102
23107
  }
23108
+ const invalidOverflowDisplayValues = /*#__PURE__*/new Set(['inline', 'contents']);
23103
23109
  function isOverflowElement(element) {
23104
23110
  const {
23105
23111
  overflow,
@@ -23107,27 +23113,32 @@ function isOverflowElement(element) {
23107
23113
  overflowY,
23108
23114
  display
23109
23115
  } = getComputedStyle$1(element);
23110
- return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);
23116
+ return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !invalidOverflowDisplayValues.has(display);
23111
23117
  }
23118
+ const tableElements = /*#__PURE__*/new Set(['table', 'td', 'th']);
23112
23119
  function isTableElement(element) {
23113
- return ['table', 'td', 'th'].includes(getNodeName(element));
23120
+ return tableElements.has(getNodeName(element));
23114
23121
  }
23122
+ const topLayerSelectors = [':popover-open', ':modal'];
23115
23123
  function isTopLayer(element) {
23116
- return [':popover-open', ':modal'].some(selector => {
23124
+ return topLayerSelectors.some(selector => {
23117
23125
  try {
23118
23126
  return element.matches(selector);
23119
- } catch (e) {
23127
+ } catch (_e) {
23120
23128
  return false;
23121
23129
  }
23122
23130
  });
23123
23131
  }
23132
+ const transformProperties = ['transform', 'translate', 'scale', 'rotate', 'perspective'];
23133
+ const willChangeValues = ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'];
23134
+ const containValues = ['paint', 'layout', 'strict', 'content'];
23124
23135
  function isContainingBlock(elementOrCss) {
23125
23136
  const webkit = isWebKit();
23126
23137
  const css = isElement(elementOrCss) ? getComputedStyle$1(elementOrCss) : elementOrCss;
23127
23138
 
23128
23139
  // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
23129
23140
  // https://drafts.csswg.org/css-transforms-2/#individual-transforms
23130
- return ['transform', 'translate', 'scale', 'rotate', 'perspective'].some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));
23141
+ return transformProperties.some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || willChangeValues.some(value => (css.willChange || '').includes(value)) || containValues.some(value => (css.contain || '').includes(value));
23131
23142
  }
23132
23143
  function getContainingBlock(element) {
23133
23144
  let currentNode = getParentNode(element);
@@ -23145,8 +23156,9 @@ function isWebKit() {
23145
23156
  if (typeof CSS === 'undefined' || !CSS.supports) return false;
23146
23157
  return CSS.supports('-webkit-backdrop-filter', 'none');
23147
23158
  }
23159
+ const lastTraversableNodeNames = /*#__PURE__*/new Set(['html', 'body', '#document']);
23148
23160
  function isLastTraversableNode(node) {
23149
- return ['html', 'body', '#document'].includes(getNodeName(node));
23161
+ return lastTraversableNodeNames.has(getNodeName(node));
23150
23162
  }
23151
23163
  function getComputedStyle$1(element) {
23152
23164
  return getWindow(element).getComputedStyle(element);
@@ -23451,6 +23463,7 @@ function getViewportRect(element, strategy) {
23451
23463
  };
23452
23464
  }
23453
23465
 
23466
+ const absoluteOrFixed = /*#__PURE__*/new Set(['absolute', 'fixed']);
23454
23467
  // Returns the inner client rect, subtracting scrollbars if present.
23455
23468
  function getInnerBoundingClientRect(element, strategy) {
23456
23469
  const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');
@@ -23515,7 +23528,7 @@ function getClippingElementAncestors(element, cache) {
23515
23528
  if (!currentNodeIsContaining && computedStyle.position === 'fixed') {
23516
23529
  currentContainingBlockComputedStyle = null;
23517
23530
  }
23518
- const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);
23531
+ const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && absoluteOrFixed.has(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);
23519
23532
  if (shouldDropCurrentNode) {
23520
23533
  // Drop non-containing blocks.
23521
23534
  result = result.filter(ancestor => ancestor !== currentNode);
@@ -24882,16 +24895,15 @@ var Content2 = PopoverContent$1;
24882
24895
 
24883
24896
  function Popover(_a) {
24884
24897
  var props = __rest(_a, []);
24885
- return React.createElement(Root2, Object.assign({ "data-slot": "popover" }, props));
24898
+ return jsx(Root2, Object.assign({ "data-slot": "popover" }, props));
24886
24899
  }
24887
24900
  function PopoverTrigger(_a) {
24888
24901
  var props = __rest(_a, []);
24889
- return React.createElement(Trigger, Object.assign({ "data-slot": "popover-trigger" }, props));
24902
+ return jsx(Trigger, Object.assign({ "data-slot": "popover-trigger" }, props));
24890
24903
  }
24891
24904
  function PopoverContent(_a) {
24892
24905
  var { className, align = "center", sideOffset = 4 } = _a, props = __rest(_a, ["className", "align", "sideOffset"]);
24893
- return (React.createElement(Portal, null,
24894
- React.createElement(Content2, Object.assign({ "data-slot": "popover-content", align: align, sideOffset: sideOffset, className: cn("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden", className) }, props))));
24906
+ return (jsx(Portal, { children: jsx(Content2, Object.assign({ "data-slot": "popover-content", align: align, sideOffset: sideOffset, className: cn("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-(--radix-popover-content-transform-origin) outline-hidden z-50 w-72 rounded-md border p-4 shadow-md", className) }, props)) }));
24895
24907
  }
24896
24908
 
24897
24909
  function n(){return (n=Object.assign?Object.assign.bind():function(a){for(var n=1;n<arguments.length;n++){var e=arguments[n];for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(a[t]=e[t]);}return a}).apply(this,arguments)}function e(a,n){if(null==a)return {};var e,t,r={},s=Object.keys(a);for(t=0;t<s.length;t++)n.indexOf(e=s[t])>=0||(r[e]=a[e]);return r}var t={ac:true,ad:true,ae:true,af:true,afar:true,ag:true,ai:true,al:true,am:true,ao:true,aq:true,ar:true,as:true,at:true,au:true,"au-aboriginal":true,"au-act":true,"au-nsw":true,"au-nt":true,"au-qld":true,"au-tas":true,"au-vic":true,"au-wa":true,aw:true,ax:true,az:true,ba:true,bb:true,bd:true,be:true,bf:true,bg:true,bh:true,bi:true,bj:true,bl:true,bm:true,bn:true,bo:true,"bq-bo":true,"bq-sa":true,"bq-se":true,bq:true,br:true,bs:true,bt:true,bv:true,bw:true,by:true,bz:true,"ca-bc":true,ca:true,cc:true,cd:true,cf:true,cg:true,"ch-gr":true,ch:true,ci:true,ck:true,cl:true,cm:true,"cn-xj":true,cn:true,co:true,cp:true,cq:true,cr:true,cu:true,cv:true,cw:true,cx:true,cy:true,cz:true,de:true,dg:true,dj:true,dk:true,dm:true,do:true,dz:true,ea:true,earth:true,east_african_federation:true,easter_island:true,"ec-w":true,ec:true,ee:true,eg:true,eh:true,er:true,"es-ar":true,"es-ce":true,"es-cn":true,"es-ct":true,"es-ga":true,"es-ib":true,"es-ml":true,"es-pv":true,"es-variant":true,es:true,"et-or":true,"et-ti":true,et:true,eu:true,european_union:true,ewe:true,fi:true,fj:true,fk:true,fm:true,fo:true,"fr-20r":true,"fr-bre":true,"fr-cp":true,fr:true,fx:true,ga:true,"gb-con":true,"gb-eng":true,"gb-nir":true,"gb-ork":true,"gb-sct":true,"gb-wls":true,gb:true,gd:true,"ge-ab":true,ge:true,gf:true,gg:true,gh:true,gi:true,gl:true,gm:true,gn:true,gp:true,gq:true,gr:true,gs:true,gt:true,gu:true,guarani:true,gw:true,gy:true,hausa:true,hk:true,hm:true,hmong:true,hn:true,hr:true,ht:true,hu:true,ic:true,id:true,"id-jb":true,"id-jt":true,ie:true,il:true,im:true,"in-as":true,"in-gj":true,"in-ka":true,"in-or":true,"in-tn":true,in:true,io:true,iq:true,ir:true,is:true,"it-23":true,"it-82":true,"it-88":true,it:true,je:true,jm:true,jo:true,jp:true,kanuri:true,ke:true,kg:true,kh:true,ki:true,kikuyu:true,km:true,kn:true,kongo:true,kp:true,kr:true,kurdistan:true,kw:true,ky:true,kz:true,la:true,lb:true,lc:true,li:true,lk:true,lr:true,ls:true,lt:true,lu:true,lv:true,ly:true,ma:true,malayali:true,manipur:true,maori:true,mc:true,md:true,me:true,mf:true,mg:true,mh:true,mizoram:true,mk:true,ml:true,mm:true,mn:true,mo:true,mp:true,mq:true,mr:true,ms:true,mt:true,mu:true,mv:true,mw:true,mx:true,my:true,mz:true,na:true,nato:true,nc:true,ne:true,nf:true,ng:true,ni:true,"nl-fr":true,nl:true,no:true,northern_cyprus:true,np:true,nr:true,nu:true,nz:true,occitania:true,olympics:true,om:true,otomi:true,pa:true,pe:true,pf:true,pg:true,ph:true,"pk-jk":true,"pk-sd":true,pk:true,pl:true,pm:true,pn:true,pr:true,ps:true,"pt-20":true,"pt-30":true,pt:true,pw:true,py:true,qa:true,quechua:true,re:true,ro:true,rs:true,ru:true,"ru-ba":true,"ru-ce":true,"ru-cu":true,"ru-da":true,"ru-ko":true,"ru-ta":true,"ru-ud":true,rw:true,sa:true,sami:true,sb:true,sc:true,sd:true,se:true,sg:true,"sh-ac":true,"sh-hl":true,"sh-ta":true,sh:true,si:true,sj:true,sk:true,sl:true,sm:true,sn:true,so:true,somaliland:true,south_ossetia:true,soviet_union:true,sr:true,ss:true,st:true,su:true,sv:true,sx:true,sy:true,sz:true,ta:true,tc:true,td:true,tf:true,tg:true,th:true,tibet:true,tj:true,tk:true,tl:true,tm:true,tn:true,to:true,torres_strait_islands:true,tr:true,transnistria:true,tt:true,tv:true,tw:true,tz:true,ua:true,ug:true,uk:true,um:true,un:true,united_nations:true,"us-hi":true,us:true,uy:true,uz:true,va:true,vc:true,ve:true,vg:true,vi:true,vn:true,vu:true,wf:true,wiphala:true,ws:true,xk:true,xx:true,ye:true,yorubaland:true,yt:true,za:true,zm:true,zw:true},s=["countryCode","cdnUrl"],c=function(a,e,t,r){return void 0===r&&(r=""),n({},t,{title:t.title||a,height:t.height||100,src:""+(e||"https://react-circle-flags.pages.dev/")+r+a+".svg"})},u=function(r){var i=r.countryCode,u=r.cdnUrl,o=e(r,s);return React__default.createElement("img",n({"data-testid":"circle-country-flag"},c(function(a){return t[a]?a:"xx"}(i).toLowerCase(),u,o)))};
@@ -33427,30 +33439,12 @@ const CountryDropdownComponent = (_a, ref) => {
33427
33439
  onChange === null || onChange === void 0 ? void 0 : onChange(country);
33428
33440
  setOpen(false);
33429
33441
  }, [onChange]);
33430
- const triggerClasses = cn("flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1", slim === true && "w-20");
33431
- return (React__default.createElement(Popover, { open: open, onOpenChange: setOpen },
33432
- React__default.createElement(PopoverTrigger, Object.assign({ ref: ref, className: triggerClasses, disabled: disabled }, props),
33433
- selectedCountry ? (React__default.createElement("div", { className: "flex items-center flex-grow w-0 gap-2 overflow-hidden" },
33434
- React__default.createElement("div", { className: "inline-flex items-center justify-center w-5 h-5 shrink-0 overflow-hidden rounded-full" },
33435
- React__default.createElement(u, { countryCode: selectedCountry.alpha2.toLowerCase(), height: 20 })),
33436
- slim === false && (React__default.createElement("span", { className: "overflow-hidden text-ellipsis whitespace-nowrap" }, selectedCountry.name)))) : (React__default.createElement("span", null, slim === false ? (placeholder || setSelectedCountry.name) : (React__default.createElement(Globe, { size: 20 })))),
33437
- React__default.createElement(ChevronDown, { size: 16 })),
33438
- React__default.createElement(PopoverContent, { collisionPadding: 10, side: "bottom", className: "min-w-[--radix-popper-anchor-width] p-0" },
33439
- React__default.createElement(Command, { className: "w-full max-h-[200px] sm:max-h-[270px]" },
33440
- React__default.createElement(CommandList, null,
33441
- React__default.createElement("div", { className: "sticky top-0 z-10 bg-popover" },
33442
- React__default.createElement(CommandInput, { placeholder: "Search country..." })),
33443
- React__default.createElement(CommandEmpty, null, "No country found."),
33444
- React__default.createElement(CommandGroup, null, options
33445
- .filter((x) => x.name)
33446
- .map((option, key) => (React__default.createElement(CommandItem, { className: "flex items-center w-full gap-2", key: key, onSelect: () => handleSelect(option) },
33447
- React__default.createElement("div", { className: "flex flex-grow w-0 space-x-2 overflow-hidden" },
33448
- React__default.createElement("div", { className: "inline-flex items-center justify-center w-5 h-5 shrink-0 overflow-hidden rounded-full" },
33449
- React__default.createElement(u, { countryCode: option.alpha2.toLowerCase(), height: 20 })),
33450
- React__default.createElement("span", { className: "overflow-hidden text-ellipsis whitespace-nowrap" }, option.name)),
33451
- React__default.createElement(Check, { className: cn("ml-auto h-4 w-4 shrink-0", option.name === (selectedCountry === null || selectedCountry === void 0 ? void 0 : selectedCountry.name)
33452
- ? "opacity-100"
33453
- : "opacity-0") }))))))))));
33442
+ const triggerClasses = cn("border-input ring-offset-background placeholder:text-muted-foreground focus:ring-ring flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border bg-transparent px-3 py-2 text-sm shadow-sm focus:outline-none focus:ring-1 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1", slim === true && "w-20");
33443
+ return (jsxs(Popover, { open: open, onOpenChange: setOpen, children: [jsxs(PopoverTrigger, Object.assign({ ref: ref, className: triggerClasses, disabled: disabled }, props, { children: [selectedCountry ? (jsxs("div", { className: "flex w-0 flex-grow items-center gap-2 overflow-hidden", children: [jsx("div", { className: "inline-flex h-5 w-5 shrink-0 items-center justify-center overflow-hidden rounded-full", children: jsx(u, { countryCode: selectedCountry.alpha2.toLowerCase(), height: 20 }) }), slim === false && (jsx("span", { className: "overflow-hidden text-ellipsis whitespace-nowrap", children: selectedCountry.name }))] })) : (jsx("span", { children: slim === false ? (placeholder || setSelectedCountry.name) : (jsx(Globe, { size: 20 })) })), jsx(ChevronDown, { size: 16 })] })), jsx(PopoverContent, { collisionPadding: 10, side: "bottom", className: "min-w-[--radix-popper-anchor-width] p-0", children: jsx(Command, { className: "max-h-[200px] w-full sm:max-h-[270px]", children: jsxs(CommandList, { children: [jsx("div", { className: "bg-popover sticky top-0 z-10", children: jsx(CommandInput, { placeholder: "Search country..." }) }), jsx(CommandEmpty, { children: "No country found." }), jsx(CommandGroup, { children: options
33444
+ .filter((x) => x.name)
33445
+ .map((option, key) => (jsxs(CommandItem, { className: "flex w-full items-center gap-2", onSelect: () => handleSelect(option), children: [jsxs("div", { className: "flex w-0 flex-grow space-x-2 overflow-hidden", children: [jsx("div", { className: "inline-flex h-5 w-5 shrink-0 items-center justify-center overflow-hidden rounded-full", children: jsx(u, { countryCode: option.alpha2.toLowerCase(), height: 20 }) }), jsx("span", { className: "overflow-hidden text-ellipsis whitespace-nowrap", children: option.name })] }), jsx(Check, { className: cn("ml-auto h-4 w-4 shrink-0", option.name === (selectedCountry === null || selectedCountry === void 0 ? void 0 : selectedCountry.name)
33446
+ ? "opacity-100"
33447
+ : "opacity-0") })] }, key))) })] }) }) })] }));
33454
33448
  };
33455
33449
  CountryDropdownComponent.displayName = "CountryDropdownComponent";
33456
33450
  const CountryDropdown = forwardRef(CountryDropdownComponent);
@@ -33495,35 +33489,12 @@ function AddressInput() {
33495
33489
  else {
33496
33490
  form.clearErrors("address");
33497
33491
  }
33492
+ // eslint-disable-next-line react-hooks/exhaustive-deps
33498
33493
  }, [open]);
33499
- return (React__default.createElement("div", { className: "w-full md:col-span-2" },
33500
- React__default.createElement(Dialog, { open: open, onOpenChange: setOpen },
33501
- React__default.createElement(DialogTrigger, { asChild: true },
33502
- React__default.createElement("div", { className: "relative grid gap-2" },
33503
- React__default.createElement(FormField, { control: form.control, name: "address", render: () => (React__default.createElement(FormItem, null,
33504
- React__default.createElement(FormLabel, null, t("CheckoutEmbed.CustomerForm.address.address")),
33505
- React__default.createElement(FormControl, null,
33506
- React__default.createElement(Input, { placeholder: t("CheckoutEmbed.CustomerForm.address.addressPlaceholder"), value: (currentValue === null || currentValue === void 0 ? void 0 : currentValue.line1) ? formatAddress(currentValue) : "", readOnly: true, className: "cursor-pointer" })),
33507
- React__default.createElement(FormMessage, null))) }))),
33508
- React__default.createElement(DialogContent, { className: "sm:max-w-[500px] transform-none!" },
33509
- React__default.createElement(DialogHeader, null,
33510
- React__default.createElement(DialogTitle, null, t("CheckoutEmbed.CustomerForm.address.title")),
33511
- React__default.createElement(DialogDescription, null, t("CheckoutEmbed.CustomerForm.address.description"))),
33512
- React__default.createElement("div", { className: "grid grid-cols-2 gap-4" },
33513
- React__default.createElement(InputGroup, { className: "col-span-2", name: "address.line1", label: t("CheckoutEmbed.CustomerForm.address.line1"), placeholder: t("CheckoutEmbed.CustomerForm.address.line1Placeholder"), autoComplete: "address-line1" }),
33514
- React__default.createElement(InputGroup, { className: "col-span-2", name: "address.line2", label: t("CheckoutEmbed.CustomerForm.address.line2"), placeholder: t("CheckoutEmbed.CustomerForm.address.line2Placeholder"), autoComplete: "address-line2" }),
33515
- React__default.createElement(InputGroup, { name: "address.city", label: t("CheckoutEmbed.CustomerForm.address.city"), placeholder: t("CheckoutEmbed.CustomerForm.address.cityPlaceholder"), autoComplete: "address-level2" }),
33516
- React__default.createElement(InputGroup, { name: "address.state", label: t("CheckoutEmbed.CustomerForm.address.state"), placeholder: t("CheckoutEmbed.CustomerForm.address.statePlaceholder"), autoComplete: "address-level1" }),
33517
- React__default.createElement(InputGroup, { name: "address.zipCode", label: t("CheckoutEmbed.CustomerForm.address.zipCode"), placeholder: t("CheckoutEmbed.CustomerForm.address.zipCodePlaceholder"), autoComplete: "postal-code" }),
33518
- React__default.createElement(FormField, { control: form.control, name: "address.country", render: ({ field }) => (React__default.createElement(FormItem, null,
33519
- React__default.createElement(FormLabel, null, t("CheckoutEmbed.CustomerForm.address.country")),
33520
- React__default.createElement(CountryDropdown, { placeholder: t("CheckoutEmbed.CustomerForm.address.countryPlaceholder"), defaultValue: field.value, onChange: (country) => {
33521
- field.onChange(country.name);
33522
- form.setValue("address.countryCode", country.alpha2);
33523
- } }),
33524
- React__default.createElement(FormMessage, null))) })),
33525
- React__default.createElement(DialogFooter, null,
33526
- React__default.createElement(Button, { onClick: handleSave, type: "button", disabled: isValidating }, t("CheckoutEmbed.CustomerForm.address.button")))))));
33494
+ return (jsx("div", { className: "w-full md:col-span-2", children: jsxs(Dialog, { open: open, onOpenChange: setOpen, children: [jsx(DialogTrigger, { asChild: true, children: jsx("div", { className: "relative grid gap-2", children: jsx(FormField, { control: form.control, name: "address", render: () => (jsxs(FormItem, { children: [jsx(FormLabel, { children: t("CheckoutEmbed.CustomerForm.address.address") }), jsx(FormControl, { children: jsx(Input, { placeholder: t("CheckoutEmbed.CustomerForm.address.addressPlaceholder"), value: (currentValue === null || currentValue === void 0 ? void 0 : currentValue.line1) ? formatAddress(currentValue) : "", readOnly: true, className: "cursor-pointer" }) }), jsx(FormMessage, {})] })) }) }) }), jsxs(DialogContent, { className: "transform-none! sm:max-w-[500px]", children: [jsxs(DialogHeader, { children: [jsx(DialogTitle, { children: t("CheckoutEmbed.CustomerForm.address.title") }), jsx(DialogDescription, { children: t("CheckoutEmbed.CustomerForm.address.description") })] }), jsxs("div", { className: "grid grid-cols-2 gap-4", children: [jsx(InputGroup, { className: "col-span-2", name: "address.line1", label: t("CheckoutEmbed.CustomerForm.address.line1"), placeholder: t("CheckoutEmbed.CustomerForm.address.line1Placeholder"), autoComplete: "address-line1" }), jsx(InputGroup, { className: "col-span-2", name: "address.line2", label: t("CheckoutEmbed.CustomerForm.address.line2"), placeholder: t("CheckoutEmbed.CustomerForm.address.line2Placeholder"), autoComplete: "address-line2" }), jsx(InputGroup, { name: "address.city", label: t("CheckoutEmbed.CustomerForm.address.city"), placeholder: t("CheckoutEmbed.CustomerForm.address.cityPlaceholder"), autoComplete: "address-level2" }), jsx(InputGroup, { name: "address.state", label: t("CheckoutEmbed.CustomerForm.address.state"), placeholder: t("CheckoutEmbed.CustomerForm.address.statePlaceholder"), autoComplete: "address-level1" }), jsx(InputGroup, { name: "address.zipCode", label: t("CheckoutEmbed.CustomerForm.address.zipCode"), placeholder: t("CheckoutEmbed.CustomerForm.address.zipCodePlaceholder"), autoComplete: "postal-code" }), jsx(FormField, { control: form.control, name: "address.country", render: ({ field }) => (jsxs(FormItem, { children: [jsx(FormLabel, { children: t("CheckoutEmbed.CustomerForm.address.country") }), jsx(CountryDropdown, { placeholder: t("CheckoutEmbed.CustomerForm.address.countryPlaceholder"), defaultValue: field.value, onChange: (country) => {
33495
+ field.onChange(country.name);
33496
+ form.setValue("address.countryCode", country.alpha2);
33497
+ } }), jsx(FormMessage, {})] })) })] }), jsx(DialogFooter, { children: jsx(Button, { onClick: handleSave, type: "button", disabled: isValidating, children: t("CheckoutEmbed.CustomerForm.address.button") }) })] })] }) }));
33527
33498
  }
33528
33499
 
33529
33500
  function CustomerForm({ initialData, onSubmit, }) {
@@ -33546,17 +33517,7 @@ function CustomerForm({ initialData, onSubmit, }) {
33546
33517
  },
33547
33518
  mode: "onBlur",
33548
33519
  });
33549
- return (React__default.createElement(Form, Object.assign({}, form),
33550
- React__default.createElement("form", { onSubmit: form.handleSubmit(onSubmit), className: "md:grid-cols-2 gap-6 grid" },
33551
- React__default.createElement("div", { className: "md:col-span-2" },
33552
- React__default.createElement("h2", null, t("CheckoutEmbed.CustomerForm.title"))),
33553
- React__default.createElement(InputGroup, { className: "md:col-span-2", name: "email", label: t("CheckoutEmbed.CustomerForm.email"), placeholder: t("CheckoutEmbed.CustomerForm.emailPlaceholder"), type: "email", autoComplete: "email" }),
33554
- React__default.createElement(InputGroup, { name: "firstName", label: t("CheckoutEmbed.CustomerForm.firstName"), placeholder: t("CheckoutEmbed.CustomerForm.firstNamePlaceholder"), autoComplete: "given-name" }),
33555
- React__default.createElement(InputGroup, { name: "lastName", label: t("CheckoutEmbed.CustomerForm.lastName"), placeholder: t("CheckoutEmbed.CustomerForm.lastNamePlaceholder"), autoComplete: "family-name" }),
33556
- React__default.createElement(AddressInput, null),
33557
- React__default.createElement(InputGroup, { name: "phone", label: t("CheckoutEmbed.CustomerForm.phone"), placeholder: t("CheckoutEmbed.CustomerForm.phonePlaceholder"), type: "tel", autoComplete: "tel" }),
33558
- React__default.createElement("div", { className: "flex md:col-span-2 justify-end pt-2" },
33559
- React__default.createElement(SubmitButton, { isValid: form.formState.isValid, isSubmitting: form.formState.isSubmitting }, t("CheckoutEmbed.CustomerForm.button"))))));
33520
+ return (jsx(Form, Object.assign({}, form, { children: jsxs("form", { onSubmit: form.handleSubmit(onSubmit), className: "grid gap-6 md:grid-cols-2", children: [jsx("div", { className: "md:col-span-2", children: jsx("h2", { children: t("CheckoutEmbed.CustomerForm.title") }) }), jsx(InputGroup, { className: "md:col-span-2", name: "email", label: t("CheckoutEmbed.CustomerForm.email"), placeholder: t("CheckoutEmbed.CustomerForm.emailPlaceholder"), type: "email", autoComplete: "email" }), jsx(InputGroup, { name: "firstName", label: t("CheckoutEmbed.CustomerForm.firstName"), placeholder: t("CheckoutEmbed.CustomerForm.firstNamePlaceholder"), autoComplete: "given-name" }), jsx(InputGroup, { name: "lastName", label: t("CheckoutEmbed.CustomerForm.lastName"), placeholder: t("CheckoutEmbed.CustomerForm.lastNamePlaceholder"), autoComplete: "family-name" }), jsx(AddressInput, {}), jsx(InputGroup, { name: "phone", label: t("CheckoutEmbed.CustomerForm.phone"), placeholder: t("CheckoutEmbed.CustomerForm.phonePlaceholder"), type: "tel", autoComplete: "tel" }), jsx("div", { className: "flex justify-end pt-2 md:col-span-2", children: jsx(SubmitButton, { isValid: form.formState.isValid, isSubmitting: form.formState.isSubmitting, children: t("CheckoutEmbed.CustomerForm.button") }) })] }) })));
33560
33521
  }
33561
33522
 
33562
33523
  var reactStripe_umd$1 = {exports: {}};
@@ -35090,22 +35051,15 @@ const CheckoutForm$1 = ({ onSuccess, onError, children, setSubmitting, }) => {
35090
35051
  const wrapper = document.getElementById("bs-wrapper");
35091
35052
  if (!wrapper)
35092
35053
  return null;
35093
- return (React__default.createElement(React__default.Fragment, null,
35094
- React__default.createElement("div", { ref: containerRef, className: "w-full h-[450px]" }),
35095
- ReactDOM__default.createPortal(React__default.createElement("div", { style: {
35096
- display: "block",
35097
- zIndex: 20,
35098
- position: "absolute",
35099
- top: rect === null || rect === void 0 ? void 0 : rect.top,
35100
- left: rect === null || rect === void 0 ? void 0 : rect.left,
35101
- width: rect === null || rect === void 0 ? void 0 : rect.width,
35102
- height: rect === null || rect === void 0 ? void 0 : rect.height,
35103
- } },
35104
- React__default.createElement("form", { onSubmit: handleSubmit },
35105
- React__default.createElement("div", null,
35106
- React__default.createElement(reactStripe_umdExports.PaymentElement, null),
35107
- React__default.createElement("p", { style: { color: "#fb2c36" } }, errorMessage)),
35108
- children)), wrapper)));
35054
+ return (jsxs(Fragment$1, { children: [jsx("div", { ref: containerRef, className: "h-[450px] w-full" }), ReactDOM__default.createPortal(jsx("div", { style: {
35055
+ display: "block",
35056
+ zIndex: 20,
35057
+ position: "absolute",
35058
+ top: rect === null || rect === void 0 ? void 0 : rect.top,
35059
+ left: rect === null || rect === void 0 ? void 0 : rect.left,
35060
+ width: rect === null || rect === void 0 ? void 0 : rect.width,
35061
+ height: rect === null || rect === void 0 ? void 0 : rect.height,
35062
+ }, children: jsxs("form", { onSubmit: handleSubmit, children: [jsxs("div", { children: [jsx(reactStripe_umdExports.PaymentElement, {}), jsx("p", { style: { color: "#fb2c36" }, children: errorMessage })] }), children] }) }), wrapper)] }));
35109
35063
  };
35110
35064
  var CheckoutForm$2 = memo(CheckoutForm$1);
35111
35065
 
@@ -35117,56 +35071,24 @@ function PaymentElement({ paymentSecret, publicKey, checkoutAppearance, locale,
35117
35071
  clientSecret: paymentSecret,
35118
35072
  fonts: fonts,
35119
35073
  };
35120
- return (React__default.createElement(reactStripe_umdExports.Elements, { stripe: stripePromise, options: options },
35121
- React__default.createElement(CheckoutForm$2, { onSuccess: onSuccess, onError: onError, children: children, setSubmitting: setSubmitting })));
35074
+ return (jsx(reactStripe_umdExports.Elements, { stripe: stripePromise, options: options, children: jsx(CheckoutForm$2, { onSuccess: onSuccess, onError: onError, setSubmitting: setSubmitting, children: children }) }));
35122
35075
  }
35123
35076
  var PaymentElement$1 = memo(PaymentElement);
35124
35077
 
35125
35078
  function PaymentForm({ paymentSecret, onSuccess, onError, onBack, onDoubleBack, contactEmail, shippingAddress, shippingName, shippingPrice, checkoutAppearance, fonts, locale, publicKey, paymentComponentKey, }) {
35126
35079
  const [isSubmitting, setIsSubmitting] = useState(false);
35127
35080
  const { t } = useTranslation();
35128
- return (React__default.createElement("div", { className: "space-y-6" },
35129
- React__default.createElement("div", null,
35130
- React__default.createElement("h2", { className: "mb-2" }, t("CheckoutEmbed.Payment.title")),
35131
- React__default.createElement("p", { className: "text-sm text-muted-foreground" }, t("CheckoutEmbed.Payment.description"))),
35132
- React__default.createElement("div", { className: "space-y-2" },
35133
- React__default.createElement("div", { className: "flex items-center justify-between text-sm" },
35134
- React__default.createElement("p", null,
35135
- React__default.createElement("span", { className: "font-medium" }, t("CheckoutEmbed.Shipping.contact")),
35136
- " ",
35137
- React__default.createElement("span", { className: "text-muted-foreground" }, contactEmail)),
35138
- React__default.createElement(Button, { variant: "link", size: "link", onClick: onDoubleBack }, t("CheckoutEmbed.Shipping.change"))),
35139
- React__default.createElement("div", { className: "flex items-center justify-between text-sm" },
35140
- React__default.createElement("p", null,
35141
- React__default.createElement("span", { className: "font-medium" }, t("CheckoutEmbed.Shipping.address")),
35142
- " ",
35143
- React__default.createElement("span", { className: "text-muted-foreground" }, shippingAddress)),
35144
- React__default.createElement(Button, { variant: "link", size: "link", onClick: onDoubleBack }, t("CheckoutEmbed.Shipping.change"))),
35145
- React__default.createElement("div", { className: "flex items-center justify-between text-sm" },
35146
- React__default.createElement("p", null,
35147
- React__default.createElement("span", { className: "font-medium" }, t("CheckoutEmbed.Shipping.shipping")),
35148
- " ",
35149
- React__default.createElement("span", { className: "text-muted-foreground" },
35150
- shippingName,
35151
- " \u00B7 ",
35152
- shippingPrice)),
35153
- React__default.createElement(Button, { variant: "link", size: "link", onClick: onBack }, t("CheckoutEmbed.Shipping.change")))),
35154
- React__default.createElement("div", { className: "mt-8" }, paymentSecret && (React__default.createElement(PaymentElement$1, { key: paymentComponentKey, fonts: fonts, checkoutAppearance: convertCheckoutAppearanceToStripeAppearance(checkoutAppearance, fonts), locale: locale, paymentSecret: paymentSecret, onSuccess: onSuccess, onError: onError, setSubmitting: setIsSubmitting, publicKey: publicKey },
35155
- React__default.createElement("div", { style: {
35156
- display: "flex",
35157
- justifyContent: "space-between",
35158
- alignItems: "center",
35159
- paddingTop: "2rem",
35160
- } },
35161
- React__default.createElement(Button, { type: "button", variant: "ghost", onClick: onBack },
35162
- React__default.createElement(ChevronLeft, null),
35163
- t("CheckoutEmbed.Payment.back")),
35164
- React__default.createElement(SubmitButton, { isValid: true, isSubmitting: isSubmitting }, t("CheckoutEmbed.Payment.button"))))))));
35081
+ return (jsxs("div", { className: "space-y-6", children: [jsxs("div", { children: [jsx("h2", { className: "mb-2", children: t("CheckoutEmbed.Payment.title") }), jsx("p", { className: "text-muted-foreground text-sm", children: t("CheckoutEmbed.Payment.description") })] }), jsxs("div", { className: "space-y-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: onDoubleBack, 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: onDoubleBack, 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.shipping") }), " ", jsxs("span", { className: "text-muted-foreground", children: [shippingName, " \u00B7 ", shippingPrice] })] }), jsx(Button, { variant: "link", size: "link", onClick: onBack, children: t("CheckoutEmbed.Shipping.change") })] })] }), jsx("div", { className: "mt-8", children: paymentSecret && (jsx(PaymentElement$1, { fonts: fonts, checkoutAppearance: convertCheckoutAppearanceToStripeAppearance(checkoutAppearance, fonts), locale: locale, paymentSecret: paymentSecret, onSuccess: onSuccess, onError: onError, setSubmitting: setIsSubmitting, publicKey: publicKey, children: jsxs("div", { style: {
35082
+ display: "flex",
35083
+ justifyContent: "space-between",
35084
+ alignItems: "center",
35085
+ paddingTop: "2rem",
35086
+ }, children: [jsxs(Button, { type: "button", variant: "ghost", onClick: onBack, children: [jsx(ChevronLeft, {}), t("CheckoutEmbed.Payment.back")] }), jsx(SubmitButton, { isValid: true, isSubmitting: isSubmitting, children: t("CheckoutEmbed.Payment.button") })] }) }, paymentComponentKey)) })] }));
35165
35087
  }
35166
35088
 
35167
35089
  function Skeleton(_a) {
35168
35090
  var { className } = _a, props = __rest(_a, ["className"]);
35169
- return (React.createElement("div", Object.assign({ "data-slot": "skeleton", className: cn("bg-accent animate-pulse rounded-md", className) }, props)));
35091
+ return (jsx("div", Object.assign({ "data-slot": "skeleton", className: cn("bg-accent animate-pulse rounded-md", className) }, props)));
35170
35092
  }
35171
35093
 
35172
35094
  function ZasilkovnaShippingOption({ children, onPickupPointSelected, locale, countryCode, apiKey, }) {
@@ -35205,15 +35127,14 @@ function ZasilkovnaShippingOption({ children, onPickupPointSelected, locale, cou
35205
35127
  console.error("Packeta widget not found", window);
35206
35128
  }
35207
35129
  };
35208
- return (React__default.createElement(React__default.Fragment, null,
35209
- React__default.createElement("div", { onClick: () => handleClick() }, children)));
35130
+ return (jsx(Fragment$1, { children: jsx("div", { onClick: () => handleClick(), children: children }) }));
35210
35131
  }
35211
35132
 
35212
35133
  function ShippingOptionWrapper({ rate, children, onPickupPointSelected, locale, countryCode, }) {
35213
35134
  if (rate.provider === "zasilkovna") {
35214
- return (React__default.createElement(ZasilkovnaShippingOption, { onPickupPointSelected: onPickupPointSelected, locale: locale, countryCode: countryCode, apiKey: rate.clientSecret }, children));
35135
+ return (jsx(ZasilkovnaShippingOption, { onPickupPointSelected: onPickupPointSelected, locale: locale, countryCode: countryCode, apiKey: rate.clientSecret, children: children }));
35215
35136
  }
35216
- return React__default.createElement(React__default.Fragment, null, children);
35137
+ return jsx(Fragment$1, { children: children });
35217
35138
  }
35218
35139
 
35219
35140
  function ShippingMethodForm({ shippingRates, initialData, onSubmit, onBack, contactEmail, shippingAddress, currency, exchangeRate, locale, countryCode, setFormData, formData, }) {
@@ -35230,77 +35151,38 @@ function ShippingMethodForm({ shippingRates, initialData, onSubmit, onBack, cont
35230
35151
  },
35231
35152
  });
35232
35153
  const currentRateId = form.watch("rateId");
35233
- return (React__default.createElement("div", { className: "space-y-6" },
35234
- React__default.createElement("h2", null, t("CheckoutEmbed.Shipping.title")),
35235
- React__default.createElement("div", { className: "space-y-2 pb-2" },
35236
- React__default.createElement("div", { className: "flex items-center justify-between text-sm" },
35237
- React__default.createElement("p", null,
35238
- React__default.createElement("span", { className: "font-medium" }, t("CheckoutEmbed.Shipping.contact")),
35239
- " ",
35240
- React__default.createElement("span", { className: "text-muted-foreground" }, contactEmail)),
35241
- React__default.createElement(Button, { variant: "link", size: "link", onClick: onBack }, t("CheckoutEmbed.Shipping.change"))),
35242
- React__default.createElement("div", { className: "flex items-center justify-between text-sm" },
35243
- React__default.createElement("p", null,
35244
- React__default.createElement("span", { className: "font-medium" }, t("CheckoutEmbed.Shipping.address")),
35245
- " ",
35246
- React__default.createElement("span", { className: "text-muted-foreground" }, shippingAddress)),
35247
- React__default.createElement(Button, { variant: "link", size: "link", onClick: onBack }, t("CheckoutEmbed.Shipping.change")))),
35248
- React__default.createElement(Form, Object.assign({}, form),
35249
- React__default.createElement("form", { onSubmit: form.handleSubmit(onSubmit), className: "space-y-4" },
35250
- shippingRates.length === 0 &&
35251
- Array.from({ length: 3 }).map((_, index) => (React__default.createElement(ShippingRateLoading, { key: index }))),
35252
- shippingRates.map((rate) => {
35253
- const pickupPointDisplayName = form.watch("pickupPointDisplayName");
35254
- const rateId = rate.provider + rate.name;
35255
- const intPrice = Math.ceil(Number(rate.price));
35256
- const displayPrice = storeHelpers.formatPrice(intPrice, currency, exchangeRate);
35257
- const description = rate.provider === "zasilkovna"
35258
- ? t("CheckoutEmbed.Shipping.description.zasilkovna")
35259
- : t("CheckoutEmbed.Shipping.description.other");
35260
- return (React__default.createElement(ShippingOptionWrapper, { rate: rate, key: rateId, onPickupPointSelected: (pickupPointId, pickupPointName) => {
35261
- const newFormData = {
35262
- rateId,
35263
- provider: rate.provider,
35264
- price: intPrice,
35265
- name: rate.name,
35266
- pickupPointId: rate.provider === "zasilkovna" ? pickupPointId : "",
35267
- pickupPointDisplayName: rate.provider === "zasilkovna" ? pickupPointName : "",
35268
- };
35269
- form.setValue("rateId", newFormData.rateId);
35270
- form.setValue("provider", newFormData.provider);
35271
- form.setValue("name", newFormData.name);
35272
- form.setValue("price", newFormData.price);
35273
- form.setValue("pickupPointId", newFormData.pickupPointId);
35274
- form.setValue("pickupPointDisplayName", newFormData.pickupPointDisplayName);
35275
- setFormData(Object.assign(Object.assign({}, formData), { shipping: Object.assign({}, newFormData) }));
35276
- }, locale: locale, countryCode: countryCode },
35277
- React__default.createElement("div", { className: clsx("p-4 cursor-pointer rounded-md border bg-background", {
35278
- "bg-muted border-primary": currentRateId === rateId,
35279
- }) },
35280
- React__default.createElement("div", { className: "flex items-center justify-between w-full" },
35281
- React__default.createElement("p", null, rate.name),
35282
- React__default.createElement("p", null, displayPrice)),
35283
- React__default.createElement("p", { className: "text-sm text-muted-foreground" }, description),
35284
- pickupPointDisplayName && (React__default.createElement(React__default.Fragment, null,
35285
- React__default.createElement("hr", { className: "my-2" }),
35286
- React__default.createElement("p", { className: "text-sm text-muted-foreground" },
35287
- t("CheckoutEmbed.Shipping.description.shippedTo"),
35288
- " ",
35289
- React__default.createElement("span", { className: "text-foreground" }, pickupPointDisplayName)))))));
35290
- }),
35291
- React__default.createElement(FormMessage, null, (_a = form.formState.errors.rateId) === null || _a === void 0 ? void 0 : _a.message),
35292
- React__default.createElement("div", { className: "flex justify-between items-center pt-4" },
35293
- React__default.createElement(Button, { type: "button", variant: "ghost", onClick: onBack },
35294
- React__default.createElement(ChevronLeft, null),
35295
- t("CheckoutEmbed.Shipping.back")),
35296
- React__default.createElement(SubmitButton, { isSubmitting: form.formState.isSubmitting, isValid: !!currentRateId }, t("CheckoutEmbed.Shipping.button")))))));
35154
+ 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: [shippingRates.length === 0 &&
35155
+ Array.from({ length: 3 }).map((_, index) => (jsx(ShippingRateLoading, {}, index))), shippingRates.map((rate) => {
35156
+ const pickupPointDisplayName = form.watch("pickupPointDisplayName");
35157
+ const rateId = rate.provider + rate.name;
35158
+ const intPrice = Math.ceil(Number(rate.price));
35159
+ const displayPrice = storeHelpers.formatPrice(intPrice, currency, exchangeRate);
35160
+ const description = rate.provider === "zasilkovna"
35161
+ ? t("CheckoutEmbed.Shipping.description.zasilkovna")
35162
+ : t("CheckoutEmbed.Shipping.description.other");
35163
+ return (jsx(ShippingOptionWrapper, { rate: rate, onPickupPointSelected: (pickupPointId, pickupPointName) => {
35164
+ const newFormData = {
35165
+ rateId,
35166
+ provider: rate.provider,
35167
+ price: intPrice,
35168
+ name: rate.name,
35169
+ pickupPointId: rate.provider === "zasilkovna" ? pickupPointId : "",
35170
+ pickupPointDisplayName: rate.provider === "zasilkovna" ? pickupPointName : "",
35171
+ };
35172
+ form.setValue("rateId", newFormData.rateId);
35173
+ form.setValue("provider", newFormData.provider);
35174
+ form.setValue("name", newFormData.name);
35175
+ form.setValue("price", newFormData.price);
35176
+ form.setValue("pickupPointId", newFormData.pickupPointId);
35177
+ form.setValue("pickupPointDisplayName", newFormData.pickupPointDisplayName);
35178
+ setFormData(Object.assign(Object.assign({}, formData), { shipping: Object.assign({}, newFormData) }));
35179
+ }, locale: locale, countryCode: countryCode, children: jsxs("div", { className: clsx("bg-background cursor-pointer rounded-md border p-4", {
35180
+ "bg-muted border-primary": currentRateId === rateId,
35181
+ }), children: [jsxs("div", { className: "flex w-full items-center justify-between", children: [jsx("p", { children: rate.name }), jsx("p", { children: displayPrice })] }), jsx("p", { className: "text-muted-foreground text-sm", children: description }), pickupPointDisplayName && (jsxs(Fragment$1, { children: [jsx("hr", { className: "my-2" }), jsxs("p", { className: "text-muted-foreground text-sm", children: [t("CheckoutEmbed.Shipping.description.shippedTo"), " ", jsx("span", { className: "text-foreground", children: pickupPointDisplayName })] })] }))] }) }, rateId));
35182
+ }), jsx(FormMessage, { children: (_a = form.formState.errors.rateId) === 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: !!currentRateId, children: t("CheckoutEmbed.Shipping.button") })] })] }) }))] }));
35297
35183
  }
35298
35184
  function ShippingRateLoading() {
35299
- return (React__default.createElement("div", { className: clsx("p-4 cursor-pointer grid gap-[10px] rounded-md border bg-background") },
35300
- React__default.createElement("div", { className: "flex items-center justify-between w-full" },
35301
- React__default.createElement(Skeleton, { className: "w-12 h-5" }),
35302
- React__default.createElement(Skeleton, { className: "w-16 h-5" })),
35303
- React__default.createElement(Skeleton, { className: "w-40 h-3.5" })));
35185
+ return (jsxs("div", { className: clsx("bg-background grid cursor-pointer gap-[10px] rounded-md border p-4"), children: [jsxs("div", { className: "flex w-full items-center justify-between", children: [jsx(Skeleton, { className: "h-5 w-12" }), jsx(Skeleton, { className: "h-5 w-16" })] }), jsx(Skeleton, { className: "h-3.5 w-40" })] }));
35304
35186
  }
35305
35187
 
35306
35188
  const useFormStore = create()(persist((set) => ({
@@ -35334,9 +35216,11 @@ function CheckoutForm({ storeClient, checkoutId, onSuccess, onError, cancelUrl,
35334
35216
  if (!isCustomerValid)
35335
35217
  setStep("customer");
35336
35218
  }
35219
+ // eslint-disable-next-line react-hooks/exhaustive-deps
35337
35220
  }, [step, formData]);
35338
35221
  useEffect(() => {
35339
35222
  validateStep();
35223
+ // eslint-disable-next-line react-hooks/exhaustive-deps
35340
35224
  }, [step]);
35341
35225
  useEffect(() => {
35342
35226
  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;
@@ -35396,6 +35280,7 @@ function CheckoutForm({ storeClient, checkoutId, onSuccess, onError, cancelUrl,
35396
35280
  },
35397
35281
  } }));
35398
35282
  }
35283
+ // eslint-disable-next-line react-hooks/exhaustive-deps
35399
35284
  }, [customer]);
35400
35285
  useEffect(() => {
35401
35286
  if (step !== "shipping")
@@ -35413,6 +35298,7 @@ function CheckoutForm({ storeClient, checkoutId, onSuccess, onError, cancelUrl,
35413
35298
  }
35414
35299
  });
35415
35300
  getShippingRates();
35301
+ // eslint-disable-next-line react-hooks/exhaustive-deps
35416
35302
  }, [step, clientSecret, checkoutId]);
35417
35303
  // Handle address form submission
35418
35304
  const handleCustomerSubmit = (data) => __awaiter(this, void 0, void 0, function* () {
@@ -35474,33 +35360,22 @@ function CheckoutForm({ storeClient, checkoutId, onSuccess, onError, cancelUrl,
35474
35360
  };
35475
35361
  const renderStep = () => {
35476
35362
  if (step === "payment" && formData.customer && formData.shipping) {
35477
- return (React__default.createElement(PaymentForm, { paymentComponentKey: paymentComponentKey, locale: locale, fonts: fonts, checkoutAppearance: checkoutAppearance, paymentSecret: paymentSecret, onSuccess: onSuccess, onError: onError, onBack: handleBack, onDoubleBack: handleDoubleBack, contactEmail: formData.customer.email, shippingAddress: formatAddress(formData.customer.address), shippingName: formData.shipping.name, shippingPrice: storeHelpers.formatPrice(formData.shipping.price, currency, exchangeRate), publicKey: publicKey }));
35363
+ return (jsx(PaymentForm, { paymentComponentKey: paymentComponentKey, locale: locale, fonts: fonts, checkoutAppearance: checkoutAppearance, paymentSecret: paymentSecret, onSuccess: onSuccess, onError: onError, onBack: handleBack, onDoubleBack: handleDoubleBack, contactEmail: formData.customer.email, shippingAddress: formatAddress(formData.customer.address), shippingName: formData.shipping.name, shippingPrice: storeHelpers.formatPrice(formData.shipping.price, currency, exchangeRate), publicKey: publicKey }));
35478
35364
  }
35479
35365
  if (step === "shipping" && formData.customer) {
35480
- return (React__default.createElement(ShippingMethodForm, { setFormData: setFormData, formData: formData, shippingRates: shippingRates, initialData: formData.shipping, onSubmit: handleShippingSubmit, onBack: handleBack, contactEmail: formData.customer.email, shippingAddress: formatAddress(formData.customer.address), currency: currency, exchangeRate: exchangeRate, locale: locale, countryCode: formData.customer.address.countryCode }));
35366
+ return (jsx(ShippingMethodForm, { setFormData: setFormData, formData: formData, shippingRates: shippingRates, initialData: formData.shipping, onSubmit: handleShippingSubmit, onBack: handleBack, contactEmail: formData.customer.email, shippingAddress: formatAddress(formData.customer.address), currency: currency, exchangeRate: exchangeRate, locale: locale, countryCode: formData.customer.address.countryCode }));
35481
35367
  }
35482
- return (React__default.createElement(CustomerForm, { initialData: formData.customer, onSubmit: handleCustomerSubmit }));
35368
+ return (jsx(CustomerForm, { initialData: formData.customer, onSubmit: handleCustomerSubmit }));
35483
35369
  };
35484
- return React__default.createElement("div", { className: "relative min-h-full w-full h-max" }, renderStep());
35370
+ return jsx("div", { className: "relative h-max min-h-full w-full", children: renderStep() });
35485
35371
  }
35486
35372
 
35487
35373
  function CheckoutFormLoading() {
35488
35374
  const { t } = useTranslation();
35489
- return (React__default.createElement("div", { className: "md:grid-cols-2 gap-6 grid" },
35490
- React__default.createElement("div", { className: "md:col-span-2" },
35491
- React__default.createElement("h2", null, t("CheckoutEmbed.CustomerForm.title"))),
35492
- React__default.createElement(InputGroupLoading, { className: "md:col-span-2" }),
35493
- React__default.createElement(InputGroupLoading, null),
35494
- React__default.createElement(InputGroupLoading, null),
35495
- React__default.createElement(InputGroupLoading, { className: "md:col-span-2" }),
35496
- React__default.createElement(InputGroupLoading, null),
35497
- React__default.createElement("div", { className: "flex md:col-span-2 justify-end pt-2" },
35498
- React__default.createElement(Skeleton, { className: "w-32 h-10" }))));
35375
+ return (jsxs("div", { className: "grid gap-6 md:grid-cols-2", children: [jsx("div", { className: "md:col-span-2", children: jsx("h2", { children: t("CheckoutEmbed.CustomerForm.title") }) }), jsx(InputGroupLoading, { className: "md:col-span-2" }), jsx(InputGroupLoading, {}), jsx(InputGroupLoading, {}), jsx(InputGroupLoading, { className: "md:col-span-2" }), jsx(InputGroupLoading, {}), jsx("div", { className: "flex justify-end pt-2 md:col-span-2", children: jsx(Skeleton, { className: "h-10 w-32" }) })] }));
35499
35376
  }
35500
35377
  function InputGroupLoading({ className }) {
35501
- return (React__default.createElement("div", { className: clsx("flex flex-col gap-2", className) },
35502
- React__default.createElement(Skeleton, { className: "w-10 h-3" }),
35503
- React__default.createElement(Skeleton, { className: "w-full h-10" })));
35378
+ return (jsxs("div", { className: clsx("flex flex-col gap-2", className), children: [jsx(Skeleton, { className: "h-3 w-10" }), jsx(Skeleton, { className: "h-10 w-full" })] }));
35504
35379
  }
35505
35380
 
35506
35381
  function DiscountCode({ applyDiscountCode, }) {
@@ -35525,15 +35400,10 @@ function DiscountCode({ applyDiscountCode, }) {
35525
35400
  setIsLoading(false);
35526
35401
  }
35527
35402
  });
35528
- return (React__default.createElement("form", { className: "pb-1", onSubmit: handleSubmit },
35529
- React__default.createElement(Label, { className: "text-sm font-medium mb-2" }, t("CheckoutEmbed.Summary.discountCodeLabel")),
35530
- React__default.createElement("div", { className: "flex items-center gap-2" },
35531
- React__default.createElement(Input, { "aria-invalid": !!error, value: discountCode, onChange: (e) => {
35532
- setError("");
35533
- setDiscountCode(e.target.value);
35534
- }, name: "discountCode", placeholder: t("CheckoutEmbed.Summary.discountCodePlaceholder") }),
35535
- React__default.createElement(SubmitButton, { isSubmitting: isLoading, isValid: isValid, type: "submit" }, t("CheckoutEmbed.Summary.discountCodeApply"))),
35536
- error && React__default.createElement("p", { className: "text-red-500 mt-2 text-sm" }, error)));
35403
+ return (jsxs("form", { className: "pb-1", onSubmit: handleSubmit, children: [jsx(Label, { className: "mb-2 text-sm font-medium", children: t("CheckoutEmbed.Summary.discountCodeLabel") }), jsxs("div", { className: "flex items-center gap-2", children: [jsx(Input, { "aria-invalid": !!error, value: discountCode, onChange: (e) => {
35404
+ setError("");
35405
+ setDiscountCode(e.target.value);
35406
+ }, name: "discountCode", placeholder: t("CheckoutEmbed.Summary.discountCodePlaceholder") }), jsx(SubmitButton, { isSubmitting: isLoading, isValid: isValid, type: "submit", children: t("CheckoutEmbed.Summary.discountCodeApply") })] }), error && jsx("p", { className: "mt-2 text-sm text-red-500", children: error })] }));
35537
35407
  }
35538
35408
 
35539
35409
  function CheckoutSummary({ appliedDiscounts, lineItems, shipping, tax, currency, onCancel, exchangeRate, applyDiscountCode, removeDiscount, }) {
@@ -35562,105 +35432,65 @@ function CheckoutSummary({ appliedDiscounts, lineItems, shipping, tax, currency,
35562
35432
  return intersection.filter((combination) => currentCombinations.some((currentCombination) => JSON.stringify(currentCombination) === JSON.stringify(combination)));
35563
35433
  }, []);
35564
35434
  const canCombine = appliedDiscounts.length === 0 || sharedCombinations.length > 0;
35565
- return (React__default.createElement("div", { className: "grid gap-5" },
35566
- React__default.createElement("div", { className: "flex justify-between items-center" },
35567
- React__default.createElement("div", { onClick: () => setIsOpen(!isOpen), className: "flex items-center gap-2 max-md:cursor-pointer" },
35568
- React__default.createElement("h2", null, t("CheckoutEmbed.Summary.title")),
35569
- React__default.createElement(ChevronDown, { className: clsx("size-5 md:hidden transition-transform", {
35570
- "rotate-180": isOpen,
35571
- }) })),
35572
- React__default.createElement("p", { className: "font-bold text-lg tracking-tight md:hidden" }, storeHelpers.formatPrice(total, currency, exchangeRate)),
35573
- React__default.createElement(Button, { className: "max-sm:hidden", variant: "link", size: "link", onClick: onCancel }, t("CheckoutEmbed.Summary.edit"))),
35574
- React__default.createElement("hr", null),
35575
- React__default.createElement("div", { className: clsx("gap-2 order-4 md:order-none", {
35576
- "hidden md:grid": !isOpen,
35577
- grid: isOpen,
35578
- }) },
35579
- React__default.createElement("div", { className: "flex justify-between" },
35580
- React__default.createElement("p", null, t("CheckoutEmbed.Summary.subtotal")),
35581
- React__default.createElement("p", null, storeHelpers.formatPrice(subtotal, currency, exchangeRate))),
35582
- React__default.createElement("div", { className: "flex justify-between" },
35583
- React__default.createElement("p", null, t("CheckoutEmbed.Summary.shipping")),
35584
- React__default.createElement("p", null, isShippingFree
35585
- ? t("CheckoutEmbed.Summary.free")
35586
- : !!shippingPrice
35587
- ? storeHelpers.formatPrice(shippingPrice, currency, exchangeRate)
35588
- : t("CheckoutEmbed.Summary.calculatedAtNextStep"))),
35589
- !!tax && (React__default.createElement("div", { className: "flex justify-between" },
35590
- React__default.createElement("p", null, t("CheckoutEmbed.Summary.tax")),
35591
- React__default.createElement("p", null, storeHelpers.formatPrice(tax, currency, exchangeRate)))),
35592
- filteredDiscounts.map(({ discount, amount, id }) => {
35593
- var _a;
35594
- return (React__default.createElement("div", { key: discount.id, className: "flex justify-between text-muted-foreground" },
35595
- React__default.createElement(DiscountItem, { id: id, removeDiscount: removeDiscount, label: (_a = ((discount === null || discount === void 0 ? void 0 : discount.code) || (discount === null || discount === void 0 ? void 0 : discount.title))) !== null && _a !== void 0 ? _a : "", canRemove: discount.method === "CODE" }),
35596
- React__default.createElement("p", null,
35597
- "- ",
35598
- storeHelpers.formatPrice(amount, currency, exchangeRate))));
35599
- }),
35600
- React__default.createElement("div", { className: "flex font-bold justify-between items-center" },
35601
- React__default.createElement("p", null, t("CheckoutEmbed.Summary.total")),
35602
- React__default.createElement("p", null, storeHelpers.formatPrice(totalWithDiscounts, currency, exchangeRate)))),
35603
- canCombine && (React__default.createElement(React__default.Fragment, null,
35604
- React__default.createElement("hr", { className: clsx("order-7 md:order-none", {
35435
+ 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", {
35436
+ "rotate-180": isOpen,
35437
+ }) })] }), 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", {
35438
+ "hidden md:grid": !isOpen,
35439
+ grid: isOpen,
35440
+ }), 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
35441
+ ? t("CheckoutEmbed.Summary.free")
35442
+ : shippingPrice
35443
+ ? storeHelpers.formatPrice(shippingPrice, currency, exchangeRate)
35444
+ : 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 }) => {
35445
+ var _a;
35446
+ 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));
35447
+ }), 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$1, { children: [jsx("hr", { className: clsx("order-7 md:order-none", {
35448
+ "hidden md:block": !isOpen,
35449
+ block: isOpen,
35450
+ }) }), jsx("div", { className: clsx("order-6 gap-0 md:order-none", {
35451
+ "hidden md:grid": !isOpen,
35452
+ grid: isOpen,
35453
+ }), children: jsx(DiscountCode, { applyDiscountCode: applyDiscountCode }) })] })), jsx("hr", { className: clsx("order-5 md:order-none", {
35605
35454
  "hidden md:block": !isOpen,
35606
35455
  block: isOpen,
35607
- }) }),
35608
- React__default.createElement("div", { className: clsx("gap-0 order-6 md:order-none", {
35456
+ }) }), jsx("div", { className: clsx("order-3 gap-5 md:order-none", {
35609
35457
  "hidden md:grid": !isOpen,
35610
35458
  grid: isOpen,
35611
- }) },
35612
- React__default.createElement(DiscountCode, { applyDiscountCode: applyDiscountCode })))),
35613
- React__default.createElement("hr", { className: clsx("order-5 md:order-none", {
35614
- "hidden md:block": !isOpen,
35615
- block: isOpen,
35616
- }) }),
35617
- React__default.createElement("div", { className: clsx("gap-5 order-3 md:order-none", {
35618
- "hidden md:grid": !isOpen,
35619
- grid: isOpen,
35620
- }) }, lineItems.map((item, index) => {
35621
- var _a, _b, _c, _d, _e, _f;
35622
- const finalItem = ((_a = item.productData) === null || _a === void 0 ? void 0 : _a.selectedVariant) || item.productData;
35623
- const productAppliedDiscounts = appliedDiscounts.filter((discount) => discount.allowedLineItems.some((allowedLineItem) => allowedLineItem.productId === item.productData.productId));
35624
- const formattedProductAppliedDiscounts = productAppliedDiscounts.map((discount) => {
35625
- var _a;
35626
- const elegibleLineItems = discount.allowedLineItems.find((allowedLineItem) => allowedLineItem.productId === item.productData.productId);
35627
- if (!elegibleLineItems)
35628
- return 0;
35629
- const elegibleQuantity = elegibleLineItems.quantity;
35630
- const elegibleTotalAmount = ((_a = finalItem === null || finalItem === void 0 ? void 0 : finalItem.priceInCents) !== null && _a !== void 0 ? _a : 0) * elegibleQuantity;
35631
- if (discount.discount.valueType === "PERCENTAGE") {
35632
- const percentage = discount.discount.value / 100;
35633
- return elegibleTotalAmount * percentage;
35634
- }
35635
- else if (discount.discount.valueType === "FREE") {
35636
- return elegibleTotalAmount;
35637
- }
35638
- return elegibleQuantity * discount.discount.value;
35639
- });
35640
- const totalDiscountAmount = formattedProductAppliedDiscounts.length > 0
35641
- ? formattedProductAppliedDiscounts.reduce((acc, curr) => {
35642
- return acc + curr;
35643
- }, 0)
35644
- : null;
35645
- const isDiscounted = !!totalDiscountAmount;
35646
- const discountedPrice = finalItem.priceInCents - (totalDiscountAmount !== null && totalDiscountAmount !== void 0 ? totalDiscountAmount : 0);
35647
- return (React__default.createElement("div", { key: index, className: "flex items-center" },
35648
- React__default.createElement("div", { className: "relative" },
35649
- React__default.createElement("div", { className: "w-16 h-16 bg-secondary rounded-lg overflow-hidden relative" }, (finalItem === null || finalItem === void 0 ? void 0 : finalItem.images[0]) && (React__default.createElement("img", { src: finalItem.images[0] ||
35650
- ((_b = item === null || item === void 0 ? void 0 : item.productData) === null || _b === void 0 ? void 0 : _b.images[0]) ||
35651
- "/placeholder.svg", alt: ((_c = item.productData) === null || _c === void 0 ? void 0 : _c.title) || "", className: "object-cover w-full h-full", sizes: "64px" }))),
35652
- React__default.createElement("div", { className: "absolute -top-2 -right-2 w-6 h-6 bg-primary rounded-full flex items-center text-background justify-center text-sm" }, item.quantity)),
35653
- React__default.createElement("div", { className: "ml-4 flex-1" },
35654
- React__default.createElement("h3", { className: "text-base font-medium" }, (_d = item.productData) === null || _d === void 0 ? void 0 : _d.title),
35655
- React__default.createElement("p", { className: "text-muted-foreground text-ellipsis line-clamp-1 md:max-w-[75%] text-sm" }, item.variantOptions
35656
- .map((option) => `${option.name}: ${option.value}`)
35657
- .join(", "))),
35658
- React__default.createElement("div", { className: "text-right" }, isDiscounted ? (React__default.createElement("div", { className: "flex flex-col" },
35659
- React__default.createElement("p", { className: "text-sm font-medium -mb-0.5 line-through text-muted-foreground" }, storeHelpers.formatPrice((_e = finalItem === null || finalItem === void 0 ? void 0 : finalItem.priceInCents) !== null && _e !== void 0 ? _e : 0, currency, exchangeRate)),
35660
- React__default.createElement("p", { className: "text-base font-medium" }, discountedPrice <= 0
35661
- ? t("CheckoutEmbed.Summary.free")
35662
- : storeHelpers.formatPrice(discountedPrice, currency, exchangeRate)))) : (React__default.createElement("p", { className: "text-base font-medium" }, storeHelpers.formatPrice((_f = finalItem === null || finalItem === void 0 ? void 0 : finalItem.priceInCents) !== null && _f !== void 0 ? _f : 0, currency, exchangeRate))))));
35663
- }))));
35459
+ }), children: lineItems.map((item, index) => {
35460
+ var _a, _b, _c, _d, _e, _f;
35461
+ const finalItem = ((_a = item.productData) === null || _a === void 0 ? void 0 : _a.selectedVariant) || item.productData;
35462
+ const productAppliedDiscounts = appliedDiscounts.filter((discount) => discount.allowedLineItems.some((allowedLineItem) => allowedLineItem.productId === item.productData.productId));
35463
+ const formattedProductAppliedDiscounts = productAppliedDiscounts.map((discount) => {
35464
+ var _a;
35465
+ const elegibleLineItems = discount.allowedLineItems.find((allowedLineItem) => allowedLineItem.productId === item.productData.productId);
35466
+ if (!elegibleLineItems)
35467
+ return 0;
35468
+ const elegibleQuantity = elegibleLineItems.quantity;
35469
+ const elegibleTotalAmount = ((_a = finalItem === null || finalItem === void 0 ? void 0 : finalItem.priceInCents) !== null && _a !== void 0 ? _a : 0) * elegibleQuantity;
35470
+ if (discount.discount.valueType === "PERCENTAGE") {
35471
+ const percentage = discount.discount.value / 100;
35472
+ return elegibleTotalAmount * percentage;
35473
+ }
35474
+ else if (discount.discount.valueType === "FREE") {
35475
+ return elegibleTotalAmount;
35476
+ }
35477
+ return elegibleQuantity * discount.discount.value;
35478
+ });
35479
+ const totalDiscountAmount = formattedProductAppliedDiscounts.length > 0
35480
+ ? formattedProductAppliedDiscounts.reduce((acc, curr) => {
35481
+ return acc + curr;
35482
+ }, 0)
35483
+ : null;
35484
+ const isDiscounted = !!totalDiscountAmount;
35485
+ const discountedPrice = finalItem.priceInCents - (totalDiscountAmount !== null && totalDiscountAmount !== void 0 ? totalDiscountAmount : 0);
35486
+ return (jsxs("div", { className: "flex items-center", children: [jsxs("div", { className: "relative", children: [jsx("div", { className: "bg-secondary relative h-16 w-16 overflow-hidden rounded-lg", children: (finalItem === null || finalItem === void 0 ? void 0 : finalItem.images[0]) && (jsx("img", { src: finalItem.images[0] ||
35487
+ ((_b = item === null || item === void 0 ? void 0 : item.productData) === null || _b === void 0 ? void 0 : _b.images[0]) ||
35488
+ "/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
35489
+ .map((option) => `${option.name}: ${option.value}`)
35490
+ .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
35491
+ ? t("CheckoutEmbed.Summary.free")
35492
+ : 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));
35493
+ }) })] }));
35664
35494
  }
35665
35495
  function DiscountItem({ id, removeDiscount, label, canRemove, }) {
35666
35496
  const [isLoading, setIsLoading] = useState(false);
@@ -35676,46 +35506,12 @@ function DiscountItem({ id, removeDiscount, label, canRemove, }) {
35676
35506
  setIsLoading(false);
35677
35507
  }
35678
35508
  });
35679
- return (React__default.createElement("div", { className: "flex items-center gap-0.5" },
35680
- React__default.createElement("p", null, isLoading ? "Removing..." : label),
35681
- !isLoading && canRemove && (React__default.createElement("div", { onClick: handleRemove, className: "flex items-center z-10 relative -m-0.5 hover:bg-muted p-1 rounded-full justify-center hover:text-foreground cursor-pointer" },
35682
- React__default.createElement(X$2, { className: "size-3" }),
35683
- React__default.createElement("p", { className: "sr-only" }, "Remove")))));
35509
+ return (jsxs("div", { className: "flex items-center gap-0.5", children: [jsx("p", { children: isLoading ? "Removing..." : label }), !isLoading && canRemove && (jsxs("div", { onClick: handleRemove, className: "hover:bg-muted hover:text-foreground relative z-10 -m-0.5 flex cursor-pointer items-center justify-center rounded-full p-1", children: [jsx(X$2, { className: "size-3" }), jsx("p", { className: "sr-only", children: "Remove" })] }))] }));
35684
35510
  }
35685
35511
 
35686
35512
  function CheckoutSummaryLoading() {
35687
35513
  const { t } = useTranslation();
35688
- return (React__default.createElement("div", { className: "grid gap-5" },
35689
- React__default.createElement("div", { className: "flex justify-between items-center" },
35690
- React__default.createElement("div", { className: "flex items-center gap-2 cursor-pointer" },
35691
- React__default.createElement("h2", null, t("CheckoutEmbed.Summary.title")),
35692
- React__default.createElement(ChevronDown, { className: "md:hidden size-5 transition-transform" })),
35693
- React__default.createElement(Skeleton, { className: "w-20 h-[20px] md:hidden" }),
35694
- React__default.createElement(Button, { className: "max-sm:hidden", variant: "link", size: "link", asChild: true },
35695
- React__default.createElement("a", null, t("CheckoutEmbed.Summary.edit")))),
35696
- React__default.createElement("hr", null),
35697
- React__default.createElement("div", { className: "hidden md:grid gap-2" },
35698
- React__default.createElement("div", { className: "flex justify-between" },
35699
- React__default.createElement("p", null, t("CheckoutEmbed.Summary.subtotal")),
35700
- React__default.createElement(Skeleton, { className: "w-20 h-[18px]" })),
35701
- React__default.createElement("div", { className: "flex justify-between" },
35702
- React__default.createElement("p", null, t("CheckoutEmbed.Summary.shipping")),
35703
- React__default.createElement(Skeleton, { className: "w-20 h-[18px]" })),
35704
- React__default.createElement("div", { className: "flex font-bold justify-between items-center" },
35705
- React__default.createElement("p", null, t("CheckoutEmbed.Summary.total")),
35706
- React__default.createElement(Skeleton, { className: "w-24 h-[18px]" }))),
35707
- React__default.createElement("hr", { className: "hidden md:block" }),
35708
- React__default.createElement("div", null,
35709
- React__default.createElement(Skeleton, { className: "w-24 h-5 mb-2" }),
35710
- React__default.createElement(Skeleton, { className: "h-10 w-full mb-1" })),
35711
- React__default.createElement("hr", { className: "hidden md:block" }),
35712
- Array.from({ length: 2 }).map((_, index) => (React__default.createElement("div", { key: index, className: "hidden md:flex items-center" },
35713
- React__default.createElement(Skeleton, { className: "rounded-lg size-16" }),
35714
- React__default.createElement("div", { className: "ml-4 grid gap-2 flex-1" },
35715
- React__default.createElement(Skeleton, { className: "w-28 h-5" }),
35716
- React__default.createElement(Skeleton, { className: "w-20 h-3.5" })),
35717
- React__default.createElement("div", { className: "text-right" },
35718
- React__default.createElement(Skeleton, { className: "w-20 h-5" })))))));
35514
+ return (jsxs("div", { className: "grid gap-5", children: [jsxs("div", { className: "flex items-center justify-between", children: [jsxs("div", { className: "flex cursor-pointer items-center gap-2", children: [jsx("h2", { children: t("CheckoutEmbed.Summary.title") }), jsx(ChevronDown, { className: "size-5 transition-transform md:hidden" })] }), jsx(Skeleton, { className: "h-[20px] w-20 md:hidden" }), jsx(Button, { className: "max-sm:hidden", variant: "link", size: "link", asChild: true, children: jsx("a", { children: t("CheckoutEmbed.Summary.edit") }) })] }), jsx("hr", {}), jsxs("div", { className: "hidden gap-2 md:grid", children: [jsxs("div", { className: "flex justify-between", children: [jsx("p", { children: t("CheckoutEmbed.Summary.subtotal") }), jsx(Skeleton, { className: "h-[18px] w-20" })] }), jsxs("div", { className: "flex justify-between", children: [jsx("p", { children: t("CheckoutEmbed.Summary.shipping") }), jsx(Skeleton, { className: "h-[18px] w-20" })] }), jsxs("div", { className: "flex items-center justify-between font-bold", children: [jsx("p", { children: t("CheckoutEmbed.Summary.total") }), jsx(Skeleton, { className: "h-[18px] w-24" })] })] }), jsx("hr", { className: "hidden md:block" }), jsxs("div", { children: [jsx(Skeleton, { className: "mb-2 h-5 w-24" }), jsx(Skeleton, { className: "mb-1 h-10 w-full" })] }), jsx("hr", { className: "hidden md:block" }), Array.from({ length: 2 }).map((_, index) => (jsxs("div", { className: "hidden items-center md:flex", children: [jsx(Skeleton, { className: "size-16 rounded-lg" }), jsxs("div", { className: "ml-4 grid flex-1 gap-2", children: [jsx(Skeleton, { className: "h-5 w-28" }), jsx(Skeleton, { className: "h-3.5 w-20" })] }), jsx("div", { className: "text-right", children: jsx(Skeleton, { className: "h-5 w-20" }) })] }, index)))] }));
35719
35515
  }
35720
35516
 
35721
35517
  function CheckoutEmbedComponent({ checkoutId, config }) {
@@ -35723,7 +35519,7 @@ function CheckoutEmbedComponent({ checkoutId, config }) {
35723
35519
  const { cancelUrl, successUrl, appearance, locale, clientSecret, clientProxy, } = config;
35724
35520
  const storeClient = React__default.useMemo(() => createStoreClient({ proxy: clientProxy }), [clientProxy]);
35725
35521
  const iframeRef = React__default.useRef(null);
35726
- React__default.useMemo(() => createI18nInstance(locale), []);
35522
+ React__default.useMemo(() => createI18nInstance(locale), [locale]);
35727
35523
  const { formData, step } = useFormStore();
35728
35524
  const paymentSecretPromiseRef = useRef(null);
35729
35525
  const [paymentSecret, setPaymentSecret] = useState(null);
@@ -35755,6 +35551,7 @@ function CheckoutEmbedComponent({ checkoutId, config }) {
35755
35551
  return () => {
35756
35552
  mounted = false; // Cleanup
35757
35553
  };
35554
+ // eslint-disable-next-line react-hooks/exhaustive-deps
35758
35555
  }, [checkoutId]); // Only re-run if checkoutId changes
35759
35556
  const onSuccess = () => {
35760
35557
  resetFormStore(formData);
@@ -35796,6 +35593,7 @@ function CheckoutEmbedComponent({ checkoutId, config }) {
35796
35593
  paymentSecretPromiseRef.current = null;
35797
35594
  });
35798
35595
  }
35596
+ // eslint-disable-next-line react-hooks/exhaustive-deps
35799
35597
  }, [paymentSecret, step]);
35800
35598
  const applyDiscountCode = (code) => __awaiter(this, void 0, void 0, function* () {
35801
35599
  console.log("[Payment Debug] Applying discount code:", code);
@@ -35894,14 +35692,9 @@ function CheckoutEmbedComponent({ checkoutId, config }) {
35894
35692
  console.log("[Payment Debug] Clearing revalidation interval");
35895
35693
  clearInterval(interval);
35896
35694
  };
35695
+ // eslint-disable-next-line react-hooks/exhaustive-deps
35897
35696
  }, []);
35898
- return (React__default.createElement(IframeWrapper, { iframeRef: iframeRef },
35899
- React__default.createElement("div", { className: "checkout-embed h-max gap-6 md:gap-0 py-4 md:py-12 flex flex-col md:grid md:grid-cols-7 " },
35900
- React__default.createElement(Appearance, { appearance: appearance, fonts: config.fonts, iframeRef: iframeRef }),
35901
- React__default.createElement("div", { className: "md:col-span-4 px-4 h-max md:px-8" }, loading ? (React__default.createElement(CheckoutFormLoading, null)) : (React__default.createElement(CheckoutForm, { locale: locale, setShippingCost: setShippingCost, storeClient: storeClient, fonts: config.fonts, checkoutAppearance: appearance, currency: (_a = checkout === null || checkout === void 0 ? void 0 : checkout.currency) !== null && _a !== void 0 ? _a : "", customer: checkout === null || checkout === void 0 ? void 0 : checkout.customer, cancelUrl: cancelUrl, checkoutId: checkoutId, clientSecret: clientSecret, onSuccess: onSuccess, onError: onError, exchangeRate: (_b = checkout === null || checkout === void 0 ? void 0 : checkout.exchangeRate) !== null && _b !== void 0 ? _b : 1, publicKey: publicKey, paymentSecret: paymentSecret, paymentComponentKey: paymentComponentKey }))),
35902
- React__default.createElement("div", { className: "md:col-span-3 px-4 md:px-8 h-max order-first md:order-last" },
35903
- React__default.createElement(Toaster, null),
35904
- loading ? (React__default.createElement(CheckoutSummaryLoading, null)) : (React__default.createElement(CheckoutSummary, { currency: (_c = checkout === null || checkout === void 0 ? void 0 : checkout.currency) !== null && _c !== void 0 ? _c : "", lineItems: (_d = checkout === null || checkout === void 0 ? void 0 : checkout.lineItems) !== null && _d !== void 0 ? _d : [], shipping: checkout === null || checkout === void 0 ? void 0 : checkout.shipping, tax: checkout === null || checkout === void 0 ? void 0 : checkout.tax, onCancel: onCancel, exchangeRate: (_e = checkout === null || checkout === void 0 ? void 0 : checkout.exchangeRate) !== null && _e !== void 0 ? _e : 1, applyDiscountCode: applyDiscountCode, appliedDiscounts: (_f = checkout === null || checkout === void 0 ? void 0 : checkout.appliedDiscounts) !== null && _f !== void 0 ? _f : [], removeDiscount: removeDiscount }))))));
35697
+ return (jsx(IframeWrapper, { iframeRef: iframeRef, children: jsxs("div", { className: "checkout-embed flex h-max flex-col gap-6 py-4 md:grid md:grid-cols-7 md:gap-0 md:py-12", children: [jsx(Appearance, { appearance: appearance, fonts: config.fonts, iframeRef: iframeRef }), jsx("div", { className: "h-max px-4 md:col-span-4 md:px-8", children: loading ? (jsx(CheckoutFormLoading, {})) : (jsx(CheckoutForm, { locale: locale, setShippingCost: setShippingCost, storeClient: storeClient, fonts: config.fonts, checkoutAppearance: appearance, currency: (_a = checkout === null || checkout === void 0 ? void 0 : checkout.currency) !== null && _a !== void 0 ? _a : "", customer: checkout === null || checkout === void 0 ? void 0 : checkout.customer, cancelUrl: cancelUrl, checkoutId: checkoutId, clientSecret: clientSecret, onSuccess: onSuccess, onError: onError, exchangeRate: (_b = checkout === null || checkout === void 0 ? void 0 : checkout.exchangeRate) !== null && _b !== void 0 ? _b : 1, publicKey: publicKey, paymentSecret: paymentSecret, paymentComponentKey: paymentComponentKey })) }), jsxs("div", { className: "order-first h-max px-4 md:order-last md:col-span-3 md:px-8", children: [jsx(Toaster, {}), loading ? (jsx(CheckoutSummaryLoading, {})) : (jsx(CheckoutSummary, { currency: (_c = checkout === null || checkout === void 0 ? void 0 : checkout.currency) !== null && _c !== void 0 ? _c : "", lineItems: (_d = checkout === null || checkout === void 0 ? void 0 : checkout.lineItems) !== null && _d !== void 0 ? _d : [], shipping: checkout === null || checkout === void 0 ? void 0 : checkout.shipping, tax: checkout === null || checkout === void 0 ? void 0 : checkout.tax, onCancel: onCancel, exchangeRate: (_e = checkout === null || checkout === void 0 ? void 0 : checkout.exchangeRate) !== null && _e !== void 0 ? _e : 1, applyDiscountCode: applyDiscountCode, appliedDiscounts: (_f = checkout === null || checkout === void 0 ? void 0 : checkout.appliedDiscounts) !== null && _f !== void 0 ? _f : [], removeDiscount: removeDiscount }))] })] }) }));
35905
35698
  }
35906
35699
  const CheckoutEmbed = memo(CheckoutEmbedComponent);
35907
35700