@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.cjs.js CHANGED
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  var React = require('react');
4
- var ReactDOM = require('react-dom');
5
4
  var jsxRuntime = require('react/jsx-runtime');
5
+ var ReactDOM = require('react-dom');
6
6
 
7
7
  function _interopNamespaceDefault(e) {
8
8
  var n = Object.create(null);
@@ -2684,7 +2684,7 @@ const cookie = {
2684
2684
  cookieOptions.expires.setTime(cookieOptions.expires.getTime() + minutes * 60 * 1000);
2685
2685
  }
2686
2686
  if (domain) cookieOptions.domain = domain;
2687
- document.cookie = serializeCookie(name, encodeURIComponent(value), cookieOptions);
2687
+ document.cookie = serializeCookie(name, value, cookieOptions);
2688
2688
  },
2689
2689
  read(name) {
2690
2690
  const nameEQ = `${name}=`;
@@ -2696,8 +2696,8 @@ const cookie = {
2696
2696
  }
2697
2697
  return null;
2698
2698
  },
2699
- remove(name) {
2700
- this.create(name, '', -1);
2699
+ remove(name, domain) {
2700
+ this.create(name, '', -1, domain);
2701
2701
  }
2702
2702
  };
2703
2703
  var cookie$1 = {
@@ -2757,6 +2757,46 @@ var querystring = {
2757
2757
  }
2758
2758
  };
2759
2759
 
2760
+ var hash = {
2761
+ name: 'hash',
2762
+ // Deconstruct the options object and extract the lookupHash property and the lookupFromHashIndex property
2763
+ lookup(_ref) {
2764
+ let {
2765
+ lookupHash,
2766
+ lookupFromHashIndex
2767
+ } = _ref;
2768
+ let found;
2769
+ if (typeof window !== 'undefined') {
2770
+ const {
2771
+ hash
2772
+ } = window.location;
2773
+ if (hash && hash.length > 2) {
2774
+ const query = hash.substring(1);
2775
+ if (lookupHash) {
2776
+ const params = query.split('&');
2777
+ for (let i = 0; i < params.length; i++) {
2778
+ const pos = params[i].indexOf('=');
2779
+ if (pos > 0) {
2780
+ const key = params[i].substring(0, pos);
2781
+ if (key === lookupHash) {
2782
+ found = params[i].substring(pos + 1);
2783
+ }
2784
+ }
2785
+ }
2786
+ }
2787
+ if (found) return found;
2788
+ if (!found && lookupFromHashIndex > -1) {
2789
+ const language = hash.match(/\/([a-zA-Z-]*)/g);
2790
+ if (!Array.isArray(language)) return undefined;
2791
+ const index = typeof lookupFromHashIndex === 'number' ? lookupFromHashIndex : 0;
2792
+ return language[index]?.replace('/', '');
2793
+ }
2794
+ }
2795
+ }
2796
+ return found;
2797
+ }
2798
+ };
2799
+
2760
2800
  let hasLocalStorageSupport = null;
2761
2801
  const localStorageAvailable = () => {
2762
2802
  if (hasLocalStorageSupport !== null) return hasLocalStorageSupport;
@@ -2965,6 +3005,7 @@ class Browser {
2965
3005
  this.addDetector(htmlTag);
2966
3006
  this.addDetector(path);
2967
3007
  this.addDetector(subdomain);
3008
+ this.addDetector(hash);
2968
3009
  }
2969
3010
  addDetector(detector) {
2970
3011
  this.detectors[detector.name] = detector;
@@ -4385,6 +4426,10 @@ function toFormData$1(obj, formData, options) {
4385
4426
  return value.toISOString();
4386
4427
  }
4387
4428
 
4429
+ if (utils$1.isBoolean(value)) {
4430
+ return value.toString();
4431
+ }
4432
+
4388
4433
  if (!useBlob && utils$1.isBlob(value)) {
4389
4434
  throw new AxiosError$1('Blob is not supported. Use a Buffer instead.');
4390
4435
  }
@@ -6293,7 +6338,7 @@ var fetchAdapter = isFetchSupported && (async (config) => {
6293
6338
  credentials: isCredentialsSupported ? withCredentials : undefined
6294
6339
  });
6295
6340
 
6296
- let response = await fetch(request);
6341
+ let response = await fetch(request, fetchOptions);
6297
6342
 
6298
6343
  const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');
6299
6344
 
@@ -6499,7 +6544,7 @@ function dispatchRequest(config) {
6499
6544
  });
6500
6545
  }
6501
6546
 
6502
- const VERSION$1 = "1.9.0";
6547
+ const VERSION$1 = "1.10.0";
6503
6548
 
6504
6549
  const validators$1 = {};
6505
6550
 
@@ -7151,30 +7196,11 @@ const {
7151
7196
  mergeConfig
7152
7197
  } = axios;
7153
7198
 
7154
- var __async = (__this, __arguments, generator) => {
7155
- return new Promise((resolve, reject) => {
7156
- var fulfilled = (value) => {
7157
- try {
7158
- step(generator.next(value));
7159
- } catch (e) {
7160
- reject(e);
7161
- }
7162
- };
7163
- var rejected = (value) => {
7164
- try {
7165
- step(generator.throw(value));
7166
- } catch (e) {
7167
- reject(e);
7168
- }
7169
- };
7170
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
7171
- step((generator = generator.apply(__this, __arguments)).next());
7172
- });
7173
- };
7199
+ // src/utils/axios.ts
7174
7200
  var API_BASE_URL = "https://api.betterstore.io/v1";
7175
7201
  var createApiClient = (apiKey, proxy) => {
7176
7202
  const client = axios.create({
7177
- baseURL: proxy != null ? proxy : API_BASE_URL,
7203
+ baseURL: proxy ?? API_BASE_URL,
7178
7204
  headers: {
7179
7205
  "Content-Type": "application/json",
7180
7206
  Authorization: `Bearer ${apiKey}`,
@@ -7186,7 +7212,6 @@ var createApiClient = (apiKey, proxy) => {
7186
7212
  client.interceptors.response.use(
7187
7213
  (response) => response.data,
7188
7214
  (error) => {
7189
- var _a, _b;
7190
7215
  const apiError = {
7191
7216
  isError: true,
7192
7217
  status: 500,
@@ -7194,8 +7219,8 @@ var createApiClient = (apiKey, proxy) => {
7194
7219
  };
7195
7220
  if (error.response) {
7196
7221
  apiError.status = error.response.status;
7197
- apiError.message = ((_a = error.response.data) == null ? void 0 : _a.error) || "Server error occurred";
7198
- apiError.code = (_b = error.response.data) == null ? void 0 : _b.code;
7222
+ apiError.message = error.response.data?.error || "Server error occurred";
7223
+ apiError.code = error.response.data?.code;
7199
7224
  apiError.details = error.response.data;
7200
7225
  } else if (error.request) {
7201
7226
  apiError.status = 503;
@@ -7220,169 +7245,150 @@ var createApiClient = (apiKey, proxy) => {
7220
7245
 
7221
7246
  // src/client/index.ts
7222
7247
  var Client = class {
7248
+ proxy;
7223
7249
  constructor(proxy) {
7224
7250
  this.proxy = proxy;
7225
7251
  }
7226
7252
  /**
7227
7253
  * Retrieve a checkout session by ID
7228
7254
  */
7229
- retrieveCheckout(clientSecret, checkoutId) {
7230
- return __async(this, null, function* () {
7231
- const apiClient = createApiClient(clientSecret, this.proxy);
7232
- const data = yield apiClient.get(
7233
- `/checkout/${checkoutId}`
7234
- );
7235
- if ("isError" in data && data.isError || !data || !("id" in data)) {
7236
- console.error(`Checkout session with id ${checkoutId} not found`);
7237
- return null;
7238
- }
7239
- return data;
7240
- });
7255
+ async retrieveCheckout(clientSecret, checkoutId) {
7256
+ const apiClient = createApiClient(clientSecret, this.proxy);
7257
+ const data = await apiClient.get(
7258
+ `/checkout/${checkoutId}`
7259
+ );
7260
+ if ("isError" in data && data.isError || !data || !("id" in data)) {
7261
+ console.error(`Checkout session with id ${checkoutId} not found`);
7262
+ return null;
7263
+ }
7264
+ return data;
7241
7265
  }
7242
7266
  /**
7243
7267
  * Update a checkout session
7244
7268
  */
7245
- updateCheckout(clientSecret, checkoutId, params) {
7246
- return __async(this, null, function* () {
7247
- const apiClient = createApiClient(clientSecret, this.proxy);
7248
- const data = yield apiClient.put(
7249
- `/checkout/${checkoutId}`,
7250
- params
7251
- );
7252
- if ("isError" in data && data.isError || !data || !("id" in data)) {
7253
- console.error(`Checkout session with id ${checkoutId} not found`);
7254
- return null;
7255
- }
7256
- return data;
7257
- });
7269
+ async updateCheckout(clientSecret, checkoutId, params) {
7270
+ const apiClient = createApiClient(clientSecret, this.proxy);
7271
+ const data = await apiClient.put(
7272
+ `/checkout/${checkoutId}`,
7273
+ params
7274
+ );
7275
+ if ("isError" in data && data.isError || !data || !("id" in data)) {
7276
+ console.error(`Checkout session with id ${checkoutId} not found`);
7277
+ return null;
7278
+ }
7279
+ return data;
7258
7280
  }
7259
7281
  /**
7260
7282
  * Apply a discount code to a checkout session
7261
7283
  */
7262
- applyDiscountCode(clientSecret, checkoutId, discountCode) {
7263
- return __async(this, null, function* () {
7264
- const apiClient = createApiClient(clientSecret, this.proxy);
7265
- const data = yield apiClient.post(
7266
- `/checkout/${checkoutId}/discounts/apply`,
7267
- { code: discountCode }
7268
- );
7269
- if ("isError" in data && data.isError || !data || !("id" in data)) {
7270
- throw new Error("Failed to apply discount code");
7271
- }
7272
- return data;
7273
- });
7284
+ async applyDiscountCode(clientSecret, checkoutId, discountCode) {
7285
+ const apiClient = createApiClient(clientSecret, this.proxy);
7286
+ const data = await apiClient.post(
7287
+ `/checkout/${checkoutId}/discounts/apply`,
7288
+ { code: discountCode }
7289
+ );
7290
+ if ("isError" in data && data.isError || !data || !("id" in data)) {
7291
+ throw new Error("Failed to apply discount code");
7292
+ }
7293
+ return data;
7274
7294
  }
7275
7295
  /**
7276
7296
  * Remove a discount code from a checkout session
7277
7297
  */
7278
- removeDiscount(clientSecret, checkoutId, discountId) {
7279
- return __async(this, null, function* () {
7280
- const apiClient = createApiClient(clientSecret, this.proxy);
7281
- const data = yield apiClient.delete(
7282
- `/checkout/${checkoutId}/discounts/${discountId}`
7283
- );
7284
- if ("isError" in data && data.isError || !data || !("id" in data)) {
7285
- throw new Error("Failed to remove discount code");
7286
- }
7287
- return data;
7288
- });
7298
+ async removeDiscount(clientSecret, checkoutId, discountId) {
7299
+ const apiClient = createApiClient(clientSecret, this.proxy);
7300
+ const data = await apiClient.delete(
7301
+ `/checkout/${checkoutId}/discounts/${discountId}`
7302
+ );
7303
+ if ("isError" in data && data.isError || !data || !("id" in data)) {
7304
+ throw new Error("Failed to remove discount code");
7305
+ }
7306
+ return data;
7289
7307
  }
7290
7308
  /**
7291
7309
  * Revalidate a checkout session
7292
7310
  */
7293
- revalidateDiscounts(clientSecret, checkoutId) {
7294
- return __async(this, null, function* () {
7295
- const apiClient = createApiClient(clientSecret, this.proxy);
7296
- const data = yield apiClient.get(
7297
- `/checkout/${checkoutId}/discounts/revalidate`
7298
- );
7299
- if ("isError" in data && data.isError || !data || !("id" in data)) {
7300
- console.error(`Checkout session with id ${checkoutId} not found`);
7301
- return null;
7302
- }
7303
- return data;
7304
- });
7311
+ async revalidateDiscounts(clientSecret, checkoutId) {
7312
+ const apiClient = createApiClient(clientSecret, this.proxy);
7313
+ const data = await apiClient.get(
7314
+ `/checkout/${checkoutId}/discounts/revalidate`
7315
+ );
7316
+ if ("isError" in data && data.isError || !data || !("id" in data)) {
7317
+ console.error(`Checkout session with id ${checkoutId} not found`);
7318
+ return null;
7319
+ }
7320
+ return data;
7305
7321
  }
7306
7322
  /**
7307
7323
  * Get shipping rates for a checkout session
7308
7324
  */
7309
- getCheckoutShippingRates(clientSecret, checkoutId) {
7310
- return __async(this, null, function* () {
7311
- const apiClient = createApiClient(clientSecret, this.proxy);
7312
- const data = yield apiClient.get(
7313
- `/checkout/shipping/${checkoutId}`
7314
- );
7315
- if ("isError" in data && data.isError || !data || !Array.isArray(data)) {
7316
- return [];
7317
- }
7318
- return data;
7319
- });
7325
+ async getCheckoutShippingRates(clientSecret, checkoutId) {
7326
+ const apiClient = createApiClient(clientSecret, this.proxy);
7327
+ const data = await apiClient.get(
7328
+ `/checkout/shipping/${checkoutId}`
7329
+ );
7330
+ if ("isError" in data && data.isError || !data || !Array.isArray(data)) {
7331
+ return [];
7332
+ }
7333
+ return data;
7320
7334
  }
7321
7335
  /**
7322
7336
  * Generate payment secret for a checkout session
7323
7337
  */
7324
- generateCheckoutPaymentSecret(clientSecret, checkoutId) {
7325
- return __async(this, null, function* () {
7326
- const apiClient = createApiClient(clientSecret, this.proxy);
7327
- const data = yield apiClient.post(`/checkout/payment/${checkoutId}`);
7328
- if ("isError" in data && data.isError || !data || !("paymentSecret" in data)) {
7329
- throw new Error("Failed to generate payment secret");
7330
- }
7331
- return {
7332
- paymentSecret: data.paymentSecret,
7333
- publicKey: data.publicKey,
7334
- checkoutSession: data.checkoutSession
7335
- };
7336
- });
7338
+ async generateCheckoutPaymentSecret(clientSecret, checkoutId) {
7339
+ const apiClient = createApiClient(clientSecret, this.proxy);
7340
+ const data = await apiClient.post(`/checkout/payment/${checkoutId}`);
7341
+ if ("isError" in data && data.isError || !data || !("paymentSecret" in data)) {
7342
+ throw new Error("Failed to generate payment secret");
7343
+ }
7344
+ return {
7345
+ paymentSecret: data.paymentSecret,
7346
+ publicKey: data.publicKey,
7347
+ checkoutSession: data.checkoutSession
7348
+ };
7337
7349
  }
7338
7350
  /**
7339
7351
  * Create a new customer
7340
7352
  */
7341
- createCustomer(clientSecret, params) {
7342
- return __async(this, null, function* () {
7343
- const apiClient = createApiClient(clientSecret, this.proxy);
7344
- const data = yield apiClient.post(
7345
- "/customer",
7346
- params
7347
- );
7348
- if ("isError" in data && data.isError || !data || !("id" in data)) {
7349
- throw new Error("Failed to create customer");
7350
- }
7351
- return data;
7352
- });
7353
+ async createCustomer(clientSecret, params) {
7354
+ const apiClient = createApiClient(clientSecret, this.proxy);
7355
+ const data = await apiClient.post(
7356
+ "/customer",
7357
+ params
7358
+ );
7359
+ if ("isError" in data && data.isError || !data || !("id" in data)) {
7360
+ throw new Error("Failed to create customer");
7361
+ }
7362
+ return data;
7353
7363
  }
7354
7364
  /**
7355
7365
  * Retrieve a customer by ID or email
7356
7366
  */
7357
- retrieveCustomer(clientSecret, idOrEmail) {
7358
- return __async(this, null, function* () {
7359
- const apiClient = createApiClient(clientSecret, this.proxy);
7360
- const data = yield apiClient.get(
7361
- `/customer/${idOrEmail}`
7362
- );
7363
- if ("isError" in data && data.isError || !data || !("id" in data)) {
7364
- console.error(`Customer with id or email ${idOrEmail} not found`);
7365
- return null;
7366
- }
7367
- return data;
7368
- });
7367
+ async retrieveCustomer(clientSecret, idOrEmail) {
7368
+ const apiClient = createApiClient(clientSecret, this.proxy);
7369
+ const data = await apiClient.get(
7370
+ `/customer/${idOrEmail}`
7371
+ );
7372
+ if ("isError" in data && data.isError || !data || !("id" in data)) {
7373
+ console.error(`Customer with id or email ${idOrEmail} not found`);
7374
+ return null;
7375
+ }
7376
+ return data;
7369
7377
  }
7370
7378
  /**
7371
7379
  * Update a customer
7372
7380
  */
7373
- updateCustomer(clientSecret, customerId, params) {
7374
- return __async(this, null, function* () {
7375
- const apiClient = createApiClient(clientSecret, this.proxy);
7376
- const data = yield apiClient.put(
7377
- `/customer/${customerId}`,
7378
- params
7379
- );
7380
- if ("isError" in data && data.isError || !data || !("id" in data)) {
7381
- console.error(`Customer with id ${customerId} not found`);
7382
- return null;
7383
- }
7384
- return data;
7385
- });
7381
+ async updateCustomer(clientSecret, customerId, params) {
7382
+ const apiClient = createApiClient(clientSecret, this.proxy);
7383
+ const data = await apiClient.put(
7384
+ `/customer/${customerId}`,
7385
+ params
7386
+ );
7387
+ if ("isError" in data && data.isError || !data || !("id" in data)) {
7388
+ console.error(`Customer with id ${customerId} not found`);
7389
+ return null;
7390
+ }
7391
+ return data;
7386
7392
  }
7387
7393
  };
7388
7394
  var client_default = Client;
@@ -7453,12 +7459,12 @@ var currencyLocales = {
7453
7459
  // Turkish Lira
7454
7460
  };
7455
7461
  var Helpers = class {
7462
+ proxy;
7456
7463
  constructor(proxy) {
7457
7464
  this.proxy = proxy;
7458
7465
  }
7459
7466
  formatCurrency(currency) {
7460
- var _a;
7461
- const locale = (_a = currencyLocales[currency.toUpperCase()]) != null ? _a : void 0;
7467
+ const locale = currencyLocales[currency.toUpperCase()] ?? void 0;
7462
7468
  const formattedCurrency = new Intl.NumberFormat(locale, {
7463
7469
  style: "currency",
7464
7470
  currency,
@@ -7467,10 +7473,9 @@ var Helpers = class {
7467
7473
  return formattedCurrency.format(0).replace(/[\d.,\s]/g, "").trim();
7468
7474
  }
7469
7475
  formatPrice(priceInCents, currency, exchangeRate) {
7470
- var _a;
7471
- const amount = priceInCents / 100 * (exchangeRate != null ? exchangeRate : 1);
7476
+ const amount = priceInCents / 100 * (exchangeRate ?? 1);
7472
7477
  const isWhole = amount % 1 === 0;
7473
- const locale = (_a = currencyLocales[currency.toUpperCase()]) != null ? _a : void 0;
7478
+ const locale = currencyLocales[currency.toUpperCase()] ?? void 0;
7474
7479
  const formattedPrice = new Intl.NumberFormat(locale, {
7475
7480
  style: "currency",
7476
7481
  currency,
@@ -7480,32 +7485,30 @@ var Helpers = class {
7480
7485
  }).format(amount);
7481
7486
  return formattedPrice;
7482
7487
  }
7483
- getExchangeRate(baseCurrency, targetCurrency) {
7484
- return __async(this, null, function* () {
7485
- const apiClient = createApiClient("", this.proxy);
7486
- const { data } = yield apiClient.get(`/helpers/rates/${baseCurrency}`);
7487
- const rate = data.rates[targetCurrency];
7488
- if (!rate) {
7489
- throw new Error("Could not get exchange rate for target currency");
7490
- }
7491
- return rate;
7492
- });
7488
+ async getExchangeRate(baseCurrency, targetCurrency) {
7489
+ const apiClient = createApiClient("", this.proxy);
7490
+ const { data } = await apiClient.get(`/helpers/rates/${baseCurrency}`);
7491
+ const rate = data.rates[targetCurrency];
7492
+ if (!rate) {
7493
+ throw new Error("Could not get exchange rate for target currency");
7494
+ }
7495
+ return rate;
7493
7496
  }
7494
7497
  };
7495
7498
  var helpers_default = Helpers;
7496
7499
  function createStoreClient(config) {
7497
- return new client_default(config == null ? void 0 : config.proxy);
7500
+ return new client_default(config?.proxy);
7498
7501
  }
7499
7502
  function createStoreHelpers(config) {
7500
- return new helpers_default(void 0 );
7503
+ return new helpers_default(config?.proxy);
7501
7504
  }
7502
7505
 
7503
- 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";
7506
+ 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";
7504
7507
 
7505
7508
  const IframeWrapper = React.memo(({ children, iframeRef }) => {
7506
7509
  const [iframeBody, setIframeBody] = React.useState(null);
7507
7510
  const styleRef = React.useRef(null);
7508
- const resizeObserver = React.useRef();
7511
+ const resizeObserver = React.useRef(null);
7509
7512
  const injectStyles = React.useCallback((doc) => {
7510
7513
  var _a;
7511
7514
  // Clean up previous style
@@ -7566,9 +7569,7 @@ const IframeWrapper = React.memo(({ children, iframeRef }) => {
7566
7569
  window.removeEventListener("resize", updateHeight);
7567
7570
  };
7568
7571
  }, [updateHeight]);
7569
- return (React.createElement("div", { id: "bs-wrapper", className: "w-full max-w-[1200px] min-h-screen mx-auto overflow-y-auto overflow-x-hidden relative" },
7570
- React.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" }),
7571
- iframeBody && ReactDOM.createPortal(children, iframeBody)));
7572
+ return (jsxRuntime.jsxs("div", { id: "bs-wrapper", className: "relative mx-auto min-h-screen w-full max-w-[1200px] overflow-y-auto overflow-x-hidden", children: [jsxRuntime.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.createPortal(children, iframeBody)] }));
7572
7573
  });
7573
7574
  IframeWrapper.displayName = "IframeWrapper";
7574
7575
 
@@ -8698,7 +8699,7 @@ const Toaster$1 = /*#__PURE__*/ React.forwardRef(function Toaster(props, ref) {
8698
8699
  const Toaster = (_a) => {
8699
8700
  var props = __rest(_a, []);
8700
8701
  const { theme = "system" } = z();
8701
- return (React.createElement(Toaster$1, Object.assign({ theme: theme, className: "toaster group", style: {
8702
+ return (jsxRuntime.jsx(Toaster$1, Object.assign({ theme: theme, className: "toaster group", style: {
8702
8703
  "--normal-bg": "var(--popover)",
8703
8704
  "--normal-text": "var(--popover-foreground)",
8704
8705
  "--normal-border": "var(--border)",
@@ -12934,15 +12935,19 @@ function cloneObject(data) {
12934
12935
  return copy;
12935
12936
  }
12936
12937
 
12937
- var compact = (value) => Array.isArray(value) ? value.filter(Boolean) : [];
12938
+ var isKey = (value) => /^\w*$/.test(value);
12938
12939
 
12939
12940
  var isUndefined = (val) => val === undefined;
12940
12941
 
12942
+ var compact = (value) => Array.isArray(value) ? value.filter(Boolean) : [];
12943
+
12944
+ var stringToPath = (input) => compact(input.replace(/["|']|\]/g, '').split(/\.|\[/));
12945
+
12941
12946
  var get = (object, path, defaultValue) => {
12942
12947
  if (!path || !isObject(object)) {
12943
12948
  return defaultValue;
12944
12949
  }
12945
- const result = compact(path.split(/[,[\].]+?/)).reduce((result, key) => isNullOrUndefined(result) ? result : result[key], object);
12950
+ const result = (isKey(path) ? [path] : stringToPath(path)).reduce((result, key) => isNullOrUndefined(result) ? result : result[key], object);
12946
12951
  return isUndefined(result) || result === object
12947
12952
  ? isUndefined(object[path])
12948
12953
  ? defaultValue
@@ -12952,10 +12957,6 @@ var get = (object, path, defaultValue) => {
12952
12957
 
12953
12958
  var isBoolean = (value) => typeof value === 'boolean';
12954
12959
 
12955
- var isKey = (value) => /^\w*$/.test(value);
12956
-
12957
- var stringToPath = (input) => compact(input.replace(/["|']|\]/g, '').split(/\.|\[/));
12958
-
12959
12960
  var set = (object, path, value) => {
12960
12961
  let index = -1;
12961
12962
  const tempPath = isKey(path) ? [path] : stringToPath(path);
@@ -13004,6 +13005,7 @@ const INPUT_VALIDATION_RULES = {
13004
13005
  };
13005
13006
 
13006
13007
  const HookFormContext = React.createContext(null);
13008
+ HookFormContext.displayName = 'HookFormContext';
13007
13009
  /**
13008
13010
  * 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}.
13009
13011
  *
@@ -13433,7 +13435,7 @@ var createSubject = () => {
13433
13435
 
13434
13436
  var isPrimitive = (value) => isNullOrUndefined(value) || !isObjectType(value);
13435
13437
 
13436
- function deepEqual$1(object1, object2) {
13438
+ function deepEqual$1(object1, object2, _internal_visited = new WeakSet()) {
13437
13439
  if (isPrimitive(object1) || isPrimitive(object2)) {
13438
13440
  return object1 === object2;
13439
13441
  }
@@ -13445,6 +13447,11 @@ function deepEqual$1(object1, object2) {
13445
13447
  if (keys1.length !== keys2.length) {
13446
13448
  return false;
13447
13449
  }
13450
+ if (_internal_visited.has(object1) || _internal_visited.has(object2)) {
13451
+ return true;
13452
+ }
13453
+ _internal_visited.add(object1);
13454
+ _internal_visited.add(object2);
13448
13455
  for (const key of keys1) {
13449
13456
  const val1 = object1[key];
13450
13457
  if (!keys2.includes(key)) {
@@ -13455,7 +13462,7 @@ function deepEqual$1(object1, object2) {
13455
13462
  if ((isDateObject(val1) && isDateObject(val2)) ||
13456
13463
  (isObject(val1) && isObject(val2)) ||
13457
13464
  (Array.isArray(val1) && Array.isArray(val2))
13458
- ? !deepEqual$1(val1, val2)
13465
+ ? !deepEqual$1(val1, val2, _internal_visited)
13459
13466
  : val1 !== val2) {
13460
13467
  return false;
13461
13468
  }
@@ -14774,14 +14781,14 @@ function createFormControl(props = {}) {
14774
14781
  if (_options.resolver) {
14775
14782
  const { errors, values } = await _runSchema();
14776
14783
  _formState.errors = errors;
14777
- fieldValues = values;
14784
+ fieldValues = cloneObject(values);
14778
14785
  }
14779
14786
  else {
14780
14787
  await executeBuiltInValidation(_fields);
14781
14788
  }
14782
14789
  if (_names.disabled.size) {
14783
14790
  for (const name of _names.disabled) {
14784
- set(fieldValues, name, undefined);
14791
+ unset(fieldValues, name);
14785
14792
  }
14786
14793
  }
14787
14794
  unset(_formState.errors, 'root');
@@ -14878,7 +14885,11 @@ function createFormControl(props = {}) {
14878
14885
  }
14879
14886
  }
14880
14887
  for (const fieldName of _names.mount) {
14881
- setValue(fieldName, get(values, fieldName));
14888
+ const value = get(values, fieldName, get(_defaultValues, fieldName));
14889
+ if (!isUndefined(value)) {
14890
+ set(values, fieldName, value);
14891
+ setValue(fieldName, get(values, fieldName));
14892
+ }
14882
14893
  }
14883
14894
  }
14884
14895
  _formValues = cloneObject(values);
@@ -15098,14 +15109,21 @@ function useForm(props = {}) {
15098
15109
  : props.defaultValues,
15099
15110
  });
15100
15111
  if (!_formControl.current) {
15101
- _formControl.current = {
15102
- ...(props.formControl ? props.formControl : createFormControl(props)),
15103
- formState,
15104
- };
15105
- if (props.formControl &&
15106
- props.defaultValues &&
15107
- !isFunction$1(props.defaultValues)) {
15108
- props.formControl.reset(props.defaultValues, props.resetOptions);
15112
+ if (props.formControl) {
15113
+ _formControl.current = {
15114
+ ...props.formControl,
15115
+ formState,
15116
+ };
15117
+ if (props.defaultValues && !isFunction$1(props.defaultValues)) {
15118
+ props.formControl.reset(props.defaultValues, props.resetOptions);
15119
+ }
15120
+ }
15121
+ else {
15122
+ const { formControl, ...rest } = createFormControl(props);
15123
+ _formControl.current = {
15124
+ ...rest,
15125
+ formState,
15126
+ };
15109
15127
  }
15110
15128
  }
15111
15129
  const control = _formControl.current.control;
@@ -15651,7 +15669,7 @@ const arbitraryVariableRegex = /^\((?:(\w[\w-]*):)?(.+)\)$/i;
15651
15669
  const fractionRegex = /^\d+\/\d+$/;
15652
15670
  const tshirtUnitRegex = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/;
15653
15671
  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$/;
15654
- const colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/;
15672
+ const colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/;
15655
15673
  // Shadow always begins with x and y offset separated by underscore optionally prepended by inset
15656
15674
  const shadowRegex = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/;
15657
15675
  const imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/;
@@ -18198,7 +18216,7 @@ function cn(...inputs) {
18198
18216
 
18199
18217
  function Label(_a) {
18200
18218
  var { className } = _a, props = __rest(_a, ["className"]);
18201
- return (React__namespace.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)));
18219
+ return (jsxRuntime.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)));
18202
18220
  }
18203
18221
 
18204
18222
  const validErrorMessageKeys = Object.keys(en.Errors);
@@ -18214,8 +18232,7 @@ const Form = FormProvider;
18214
18232
  const FormFieldContext = React__namespace.createContext({});
18215
18233
  const FormField = (_a) => {
18216
18234
  var props = __rest(_a, []);
18217
- return (React__namespace.createElement(FormFieldContext.Provider, { value: { name: props.name } },
18218
- React__namespace.createElement(Controller, Object.assign({}, props))));
18235
+ return (jsxRuntime.jsx(FormFieldContext.Provider, { value: { name: props.name }, children: jsxRuntime.jsx(Controller, Object.assign({}, props)) }));
18219
18236
  };
18220
18237
  const useFormField = () => {
18221
18238
  const fieldContext = React__namespace.useContext(FormFieldContext);
@@ -18233,18 +18250,17 @@ const FormItemContext = React__namespace.createContext({});
18233
18250
  function FormItem(_a) {
18234
18251
  var { className } = _a, props = __rest(_a, ["className"]);
18235
18252
  const id = React__namespace.useId();
18236
- return (React__namespace.createElement(FormItemContext.Provider, { value: { id } },
18237
- React__namespace.createElement("div", Object.assign({ "data-slot": "form-item", className: cn("grid gap-2", className) }, props))));
18253
+ return (jsxRuntime.jsx(FormItemContext.Provider, { value: { id }, children: jsxRuntime.jsx("div", Object.assign({ "data-slot": "form-item", className: cn("grid gap-2", className) }, props)) }));
18238
18254
  }
18239
18255
  function FormLabel(_a) {
18240
18256
  var { className } = _a, props = __rest(_a, ["className"]);
18241
18257
  const { error, formItemId } = useFormField();
18242
- return (React__namespace.createElement(Label, Object.assign({ "data-slot": "form-label", "data-error": !!error, className: cn("data-[error=true]:text-destructive-foreground", className), htmlFor: formItemId }, props)));
18258
+ return (jsxRuntime.jsx(Label, Object.assign({ "data-slot": "form-label", "data-error": !!error, className: cn("data-[error=true]:text-destructive-foreground", className), htmlFor: formItemId }, props)));
18243
18259
  }
18244
18260
  function FormControl(_a) {
18245
18261
  var props = __rest(_a, []);
18246
18262
  const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
18247
- return (React__namespace.createElement(Slot$2, Object.assign({ "data-slot": "form-control", id: formItemId, "aria-describedby": !error
18263
+ return (jsxRuntime.jsx(Slot$2, Object.assign({ "data-slot": "form-control", id: formItemId, "aria-describedby": !error
18248
18264
  ? `${formDescriptionId}`
18249
18265
  : `${formDescriptionId} ${formMessageId}`, "aria-invalid": !!error }, props)));
18250
18266
  }
@@ -18259,22 +18275,18 @@ function FormMessage(_a) {
18259
18275
  }
18260
18276
  const key = validateErrorMessageKey(String(body));
18261
18277
  const message = t(`Errors.${key}`);
18262
- return (React__namespace.createElement("p", Object.assign({ "data-slot": "form-message", id: formMessageId, className: cn("text-destructive-foreground text-sm", className) }, props), message));
18278
+ return (jsxRuntime.jsx("p", Object.assign({ "data-slot": "form-message", id: formMessageId, className: cn("text-destructive-foreground text-sm", className) }, props, { children: message })));
18263
18279
  }
18264
18280
 
18265
18281
  function Input(_a) {
18266
18282
  var { className, type } = _a, props = __rest(_a, ["className", "type"]);
18267
- return (React__namespace.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)));
18283
+ return (jsxRuntime.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)));
18268
18284
  }
18269
18285
 
18270
18286
  function InputGroup(_a) {
18271
18287
  var { name, label, className } = _a, props = __rest(_a, ["name", "label", "className"]);
18272
18288
  const { control } = useFormContext();
18273
- return (React.createElement(FormField, { control: control, name: name, render: ({ field }) => (React.createElement(FormItem, { className: className },
18274
- React.createElement(FormLabel, null, label),
18275
- React.createElement(FormControl, null,
18276
- React.createElement(Input, Object.assign({}, field, props))),
18277
- React.createElement(FormMessage, null))) }));
18289
+ return (jsxRuntime.jsx(FormField, { control: control, name: name, render: ({ field }) => (jsxRuntime.jsxs(FormItem, { className: className, children: [jsxRuntime.jsx(FormLabel, { children: label }), jsxRuntime.jsx(FormControl, { children: jsxRuntime.jsx(Input, Object.assign({}, field, props)) }), jsxRuntime.jsx(FormMessage, {})] })) }));
18278
18290
  }
18279
18291
 
18280
18292
  const falsyToString = (value)=>typeof value === "boolean" ? `${value}` : value === 0 ? "0" : value;
@@ -18344,7 +18356,7 @@ const buttonVariants = cva("inline-flex cursor-pointer items-center justify-cent
18344
18356
  function Button(_a) {
18345
18357
  var { className, variant, size, asChild = false } = _a, props = __rest(_a, ["className", "variant", "size", "asChild"]);
18346
18358
  const Comp = asChild ? Slot$2 : "button";
18347
- return (React__namespace.createElement(Comp, Object.assign({ "data-slot": "button", className: cn(buttonVariants({ variant, size, className })) }, props)));
18359
+ return (jsxRuntime.jsx(Comp, Object.assign({ "data-slot": "button", className: cn(buttonVariants({ variant, size, className })) }, props)));
18348
18360
  }
18349
18361
 
18350
18362
  /**
@@ -18537,9 +18549,7 @@ const X$2 = createLucideIcon("X", __iconNode);
18537
18549
  function SubmitButton(_a) {
18538
18550
  var { isSubmitting, isValid = true, className, variant, children, size } = _a, props = __rest(_a, ["isSubmitting", "isValid", "className", "variant", "children", "size"]);
18539
18551
  const { t } = useTranslation();
18540
- return (React.createElement(Button, Object.assign({ type: "submit", size: size, className: className, variant: variant, disabled: isSubmitting || !isValid }, props),
18541
- isSubmitting && React.createElement(Loader, { className: "animate-spin" }),
18542
- isSubmitting ? t("CheckoutEmbed.loading") : children));
18552
+ return (jsxRuntime.jsxs(Button, Object.assign({ type: "submit", size: size, className: className, variant: variant, disabled: isSubmitting || !isValid }, props, { children: [isSubmitting && jsxRuntime.jsx(Loader, { className: "animate-spin" }), isSubmitting ? t("CheckoutEmbed.loading") : children] })));
18543
18553
  }
18544
18554
 
18545
18555
  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,"")}
@@ -22064,72 +22074,64 @@ var Close = DialogClose;
22064
22074
 
22065
22075
  function Dialog(_a) {
22066
22076
  var props = __rest(_a, []);
22067
- return React__namespace.createElement(Root$1, Object.assign({ "data-slot": "dialog" }, props));
22077
+ return jsxRuntime.jsx(Root$1, Object.assign({ "data-slot": "dialog" }, props));
22068
22078
  }
22069
22079
  function DialogTrigger(_a) {
22070
22080
  var props = __rest(_a, []);
22071
- return React__namespace.createElement(Trigger$1, Object.assign({ "data-slot": "dialog-trigger" }, props));
22081
+ return jsxRuntime.jsx(Trigger$1, Object.assign({ "data-slot": "dialog-trigger" }, props));
22072
22082
  }
22073
22083
  function DialogPortal(_a) {
22074
22084
  var props = __rest(_a, []);
22075
- return React__namespace.createElement(Portal$1, Object.assign({ "data-slot": "dialog-portal" }, props));
22085
+ return jsxRuntime.jsx(Portal$1, Object.assign({ "data-slot": "dialog-portal" }, props));
22076
22086
  }
22077
22087
  function DialogOverlay(_a) {
22078
22088
  var { className } = _a, props = __rest(_a, ["className"]);
22079
- return (React__namespace.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)));
22089
+ return (jsxRuntime.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)));
22080
22090
  }
22081
22091
  function DialogContent(_a) {
22082
22092
  var { className, children } = _a, props = __rest(_a, ["className", "children"]);
22083
- return (React__namespace.createElement(DialogPortal, { "data-slot": "dialog-portal" },
22084
- React__namespace.createElement(DialogOverlay, null),
22085
- React__namespace.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),
22086
- children,
22087
- React__namespace.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" },
22088
- React__namespace.createElement(X$2, null),
22089
- React__namespace.createElement("span", { className: "sr-only" }, "Close")))));
22093
+ return (jsxRuntime.jsxs(DialogPortal, { "data-slot": "dialog-portal", children: [jsxRuntime.jsx(DialogOverlay, {}), jsxRuntime.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, jsxRuntime.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: [jsxRuntime.jsx(X$2, {}), jsxRuntime.jsx("span", { className: "sr-only", children: "Close" })] })] }))] }));
22090
22094
  }
22091
22095
  function DialogHeader(_a) {
22092
22096
  var { className } = _a, props = __rest(_a, ["className"]);
22093
- return (React__namespace.createElement("div", Object.assign({ "data-slot": "dialog-header", className: cn("flex flex-col gap-2 text-center sm:text-left", className) }, props)));
22097
+ return (jsxRuntime.jsx("div", Object.assign({ "data-slot": "dialog-header", className: cn("flex flex-col gap-2 text-center sm:text-left", className) }, props)));
22094
22098
  }
22095
22099
  function DialogFooter(_a) {
22096
22100
  var { className } = _a, props = __rest(_a, ["className"]);
22097
- return (React__namespace.createElement("div", Object.assign({ "data-slot": "dialog-footer", className: cn("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", className) }, props)));
22101
+ return (jsxRuntime.jsx("div", Object.assign({ "data-slot": "dialog-footer", className: cn("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", className) }, props)));
22098
22102
  }
22099
22103
  function DialogTitle(_a) {
22100
22104
  var { className } = _a, props = __rest(_a, ["className"]);
22101
- return (React__namespace.createElement(Title, Object.assign({ "data-slot": "dialog-title", className: cn("text-lg leading-none font-semibold", className) }, props)));
22105
+ return (jsxRuntime.jsx(Title, Object.assign({ "data-slot": "dialog-title", className: cn("text-lg font-semibold leading-none", className) }, props)));
22102
22106
  }
22103
22107
  function DialogDescription(_a) {
22104
22108
  var { className } = _a, props = __rest(_a, ["className"]);
22105
- return (React__namespace.createElement(Description, Object.assign({ "data-slot": "dialog-description", className: cn("text-muted-foreground text-sm", className) }, props)));
22109
+ return (jsxRuntime.jsx(Description, Object.assign({ "data-slot": "dialog-description", className: cn("text-muted-foreground text-sm", className) }, props)));
22106
22110
  }
22107
22111
 
22108
22112
  function Command(_a) {
22109
22113
  var { className } = _a, props = __rest(_a, ["className"]);
22110
- return (React__namespace.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)));
22114
+ return (jsxRuntime.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)));
22111
22115
  }
22112
22116
  function CommandInput(_a) {
22113
22117
  var { className } = _a, props = __rest(_a, ["className"]);
22114
- return (React__namespace.createElement("div", { "data-slot": "command-input-wrapper", className: "flex h-9 items-center gap-2 border-b px-3" },
22115
- React__namespace.createElement(Search, { className: "size-4 shrink-0 opacity-50" }),
22116
- React__namespace.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))));
22118
+ return (jsxRuntime.jsxs("div", { "data-slot": "command-input-wrapper", className: "flex h-9 items-center gap-2 border-b px-3", children: [jsxRuntime.jsx(Search, { className: "size-4 shrink-0 opacity-50" }), jsxRuntime.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))] }));
22117
22119
  }
22118
22120
  function CommandList(_a) {
22119
22121
  var { className } = _a, props = __rest(_a, ["className"]);
22120
- return (React__namespace.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)));
22122
+ return (jsxRuntime.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)));
22121
22123
  }
22122
22124
  function CommandEmpty(_a) {
22123
22125
  var props = __rest(_a, []);
22124
- return (React__namespace.createElement(He.Empty, Object.assign({ "data-slot": "command-empty", className: "py-6 text-center text-sm" }, props)));
22126
+ return (jsxRuntime.jsx(He.Empty, Object.assign({ "data-slot": "command-empty", className: "py-6 text-center text-sm" }, props)));
22125
22127
  }
22126
22128
  function CommandGroup(_a) {
22127
22129
  var { className } = _a, props = __rest(_a, ["className"]);
22128
- return (React__namespace.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)));
22130
+ return (jsxRuntime.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)));
22129
22131
  }
22130
22132
  function CommandItem(_a) {
22131
22133
  var { className } = _a, props = __rest(_a, ["className"]);
22132
- return (React__namespace.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)));
22134
+ return (jsxRuntime.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)));
22133
22135
  }
22134
22136
 
22135
22137
  /**
@@ -22174,8 +22176,9 @@ function getOppositeAxis(axis) {
22174
22176
  function getAxisLength(axis) {
22175
22177
  return axis === 'y' ? 'height' : 'width';
22176
22178
  }
22179
+ const yAxisSides = /*#__PURE__*/new Set(['top', 'bottom']);
22177
22180
  function getSideAxis(placement) {
22178
- return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';
22181
+ return yAxisSides.has(getSide(placement)) ? 'y' : 'x';
22179
22182
  }
22180
22183
  function getAlignmentAxis(placement) {
22181
22184
  return getOppositeAxis(getSideAxis(placement));
@@ -22200,19 +22203,19 @@ function getExpandedPlacements(placement) {
22200
22203
  function getOppositeAlignmentPlacement(placement) {
22201
22204
  return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);
22202
22205
  }
22206
+ const lrPlacement = ['left', 'right'];
22207
+ const rlPlacement = ['right', 'left'];
22208
+ const tbPlacement = ['top', 'bottom'];
22209
+ const btPlacement = ['bottom', 'top'];
22203
22210
  function getSideList(side, isStart, rtl) {
22204
- const lr = ['left', 'right'];
22205
- const rl = ['right', 'left'];
22206
- const tb = ['top', 'bottom'];
22207
- const bt = ['bottom', 'top'];
22208
22211
  switch (side) {
22209
22212
  case 'top':
22210
22213
  case 'bottom':
22211
- if (rtl) return isStart ? rl : lr;
22212
- return isStart ? lr : rl;
22214
+ if (rtl) return isStart ? rlPlacement : lrPlacement;
22215
+ return isStart ? lrPlacement : rlPlacement;
22213
22216
  case 'left':
22214
22217
  case 'right':
22215
- return isStart ? tb : bt;
22218
+ return isStart ? tbPlacement : btPlacement;
22216
22219
  default:
22217
22220
  return [];
22218
22221
  }
@@ -22762,6 +22765,8 @@ const hide$2 = function (options) {
22762
22765
  };
22763
22766
  };
22764
22767
 
22768
+ const originSides = /*#__PURE__*/new Set(['left', 'top']);
22769
+
22765
22770
  // For type backwards-compatibility, the `OffsetOptions` type was also
22766
22771
  // Derivable.
22767
22772
 
@@ -22775,7 +22780,7 @@ async function convertValueToCoords(state, options) {
22775
22780
  const side = getSide(placement);
22776
22781
  const alignment = getAlignment(placement);
22777
22782
  const isVertical = getSideAxis(placement) === 'y';
22778
- const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;
22783
+ const mainAxisMulti = originSides.has(side) ? -1 : 1;
22779
22784
  const crossAxisMulti = rtl && isVertical ? -1 : 1;
22780
22785
  const rawValue = evaluate(options, state);
22781
22786
 
@@ -22975,7 +22980,7 @@ const limitShift$2 = function (options) {
22975
22980
  if (checkCrossAxis) {
22976
22981
  var _middlewareData$offse, _middlewareData$offse2;
22977
22982
  const len = mainAxis === 'y' ? 'width' : 'height';
22978
- const isOriginSide = ['top', 'left'].includes(getSide(placement));
22983
+ const isOriginSide = originSides.has(getSide(placement));
22979
22984
  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);
22980
22985
  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);
22981
22986
  if (crossAxisCoord < limitMin) {
@@ -23120,6 +23125,7 @@ function isShadowRoot(value) {
23120
23125
  }
23121
23126
  return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;
23122
23127
  }
23128
+ const invalidOverflowDisplayValues = /*#__PURE__*/new Set(['inline', 'contents']);
23123
23129
  function isOverflowElement(element) {
23124
23130
  const {
23125
23131
  overflow,
@@ -23127,27 +23133,32 @@ function isOverflowElement(element) {
23127
23133
  overflowY,
23128
23134
  display
23129
23135
  } = getComputedStyle$1(element);
23130
- return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);
23136
+ return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !invalidOverflowDisplayValues.has(display);
23131
23137
  }
23138
+ const tableElements = /*#__PURE__*/new Set(['table', 'td', 'th']);
23132
23139
  function isTableElement(element) {
23133
- return ['table', 'td', 'th'].includes(getNodeName(element));
23140
+ return tableElements.has(getNodeName(element));
23134
23141
  }
23142
+ const topLayerSelectors = [':popover-open', ':modal'];
23135
23143
  function isTopLayer(element) {
23136
- return [':popover-open', ':modal'].some(selector => {
23144
+ return topLayerSelectors.some(selector => {
23137
23145
  try {
23138
23146
  return element.matches(selector);
23139
- } catch (e) {
23147
+ } catch (_e) {
23140
23148
  return false;
23141
23149
  }
23142
23150
  });
23143
23151
  }
23152
+ const transformProperties = ['transform', 'translate', 'scale', 'rotate', 'perspective'];
23153
+ const willChangeValues = ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'];
23154
+ const containValues = ['paint', 'layout', 'strict', 'content'];
23144
23155
  function isContainingBlock(elementOrCss) {
23145
23156
  const webkit = isWebKit();
23146
23157
  const css = isElement(elementOrCss) ? getComputedStyle$1(elementOrCss) : elementOrCss;
23147
23158
 
23148
23159
  // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
23149
23160
  // https://drafts.csswg.org/css-transforms-2/#individual-transforms
23150
- 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));
23161
+ 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));
23151
23162
  }
23152
23163
  function getContainingBlock(element) {
23153
23164
  let currentNode = getParentNode(element);
@@ -23165,8 +23176,9 @@ function isWebKit() {
23165
23176
  if (typeof CSS === 'undefined' || !CSS.supports) return false;
23166
23177
  return CSS.supports('-webkit-backdrop-filter', 'none');
23167
23178
  }
23179
+ const lastTraversableNodeNames = /*#__PURE__*/new Set(['html', 'body', '#document']);
23168
23180
  function isLastTraversableNode(node) {
23169
- return ['html', 'body', '#document'].includes(getNodeName(node));
23181
+ return lastTraversableNodeNames.has(getNodeName(node));
23170
23182
  }
23171
23183
  function getComputedStyle$1(element) {
23172
23184
  return getWindow(element).getComputedStyle(element);
@@ -23471,6 +23483,7 @@ function getViewportRect(element, strategy) {
23471
23483
  };
23472
23484
  }
23473
23485
 
23486
+ const absoluteOrFixed = /*#__PURE__*/new Set(['absolute', 'fixed']);
23474
23487
  // Returns the inner client rect, subtracting scrollbars if present.
23475
23488
  function getInnerBoundingClientRect(element, strategy) {
23476
23489
  const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');
@@ -23535,7 +23548,7 @@ function getClippingElementAncestors(element, cache) {
23535
23548
  if (!currentNodeIsContaining && computedStyle.position === 'fixed') {
23536
23549
  currentContainingBlockComputedStyle = null;
23537
23550
  }
23538
- const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);
23551
+ const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && absoluteOrFixed.has(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);
23539
23552
  if (shouldDropCurrentNode) {
23540
23553
  // Drop non-containing blocks.
23541
23554
  result = result.filter(ancestor => ancestor !== currentNode);
@@ -24902,16 +24915,15 @@ var Content2 = PopoverContent$1;
24902
24915
 
24903
24916
  function Popover(_a) {
24904
24917
  var props = __rest(_a, []);
24905
- return React__namespace.createElement(Root2, Object.assign({ "data-slot": "popover" }, props));
24918
+ return jsxRuntime.jsx(Root2, Object.assign({ "data-slot": "popover" }, props));
24906
24919
  }
24907
24920
  function PopoverTrigger(_a) {
24908
24921
  var props = __rest(_a, []);
24909
- return React__namespace.createElement(Trigger, Object.assign({ "data-slot": "popover-trigger" }, props));
24922
+ return jsxRuntime.jsx(Trigger, Object.assign({ "data-slot": "popover-trigger" }, props));
24910
24923
  }
24911
24924
  function PopoverContent(_a) {
24912
24925
  var { className, align = "center", sideOffset = 4 } = _a, props = __rest(_a, ["className", "align", "sideOffset"]);
24913
- return (React__namespace.createElement(Portal, null,
24914
- React__namespace.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))));
24926
+ return (jsxRuntime.jsx(Portal, { children: jsxRuntime.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)) }));
24915
24927
  }
24916
24928
 
24917
24929
  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.createElement("img",n({"data-testid":"circle-country-flag"},c(function(a){return t[a]?a:"xx"}(i).toLowerCase(),u,o)))};
@@ -33447,30 +33459,12 @@ const CountryDropdownComponent = (_a, ref) => {
33447
33459
  onChange === null || onChange === void 0 ? void 0 : onChange(country);
33448
33460
  setOpen(false);
33449
33461
  }, [onChange]);
33450
- 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");
33451
- return (React.createElement(Popover, { open: open, onOpenChange: setOpen },
33452
- React.createElement(PopoverTrigger, Object.assign({ ref: ref, className: triggerClasses, disabled: disabled }, props),
33453
- selectedCountry ? (React.createElement("div", { className: "flex items-center flex-grow w-0 gap-2 overflow-hidden" },
33454
- React.createElement("div", { className: "inline-flex items-center justify-center w-5 h-5 shrink-0 overflow-hidden rounded-full" },
33455
- React.createElement(u, { countryCode: selectedCountry.alpha2.toLowerCase(), height: 20 })),
33456
- slim === false && (React.createElement("span", { className: "overflow-hidden text-ellipsis whitespace-nowrap" }, selectedCountry.name)))) : (React.createElement("span", null, slim === false ? (placeholder || setSelectedCountry.name) : (React.createElement(Globe, { size: 20 })))),
33457
- React.createElement(ChevronDown, { size: 16 })),
33458
- React.createElement(PopoverContent, { collisionPadding: 10, side: "bottom", className: "min-w-[--radix-popper-anchor-width] p-0" },
33459
- React.createElement(Command, { className: "w-full max-h-[200px] sm:max-h-[270px]" },
33460
- React.createElement(CommandList, null,
33461
- React.createElement("div", { className: "sticky top-0 z-10 bg-popover" },
33462
- React.createElement(CommandInput, { placeholder: "Search country..." })),
33463
- React.createElement(CommandEmpty, null, "No country found."),
33464
- React.createElement(CommandGroup, null, options
33465
- .filter((x) => x.name)
33466
- .map((option, key) => (React.createElement(CommandItem, { className: "flex items-center w-full gap-2", key: key, onSelect: () => handleSelect(option) },
33467
- React.createElement("div", { className: "flex flex-grow w-0 space-x-2 overflow-hidden" },
33468
- React.createElement("div", { className: "inline-flex items-center justify-center w-5 h-5 shrink-0 overflow-hidden rounded-full" },
33469
- React.createElement(u, { countryCode: option.alpha2.toLowerCase(), height: 20 })),
33470
- React.createElement("span", { className: "overflow-hidden text-ellipsis whitespace-nowrap" }, option.name)),
33471
- React.createElement(Check, { className: cn("ml-auto h-4 w-4 shrink-0", option.name === (selectedCountry === null || selectedCountry === void 0 ? void 0 : selectedCountry.name)
33472
- ? "opacity-100"
33473
- : "opacity-0") }))))))))));
33462
+ 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");
33463
+ return (jsxRuntime.jsxs(Popover, { open: open, onOpenChange: setOpen, children: [jsxRuntime.jsxs(PopoverTrigger, Object.assign({ ref: ref, className: triggerClasses, disabled: disabled }, props, { children: [selectedCountry ? (jsxRuntime.jsxs("div", { className: "flex w-0 flex-grow items-center gap-2 overflow-hidden", children: [jsxRuntime.jsx("div", { className: "inline-flex h-5 w-5 shrink-0 items-center justify-center overflow-hidden rounded-full", children: jsxRuntime.jsx(u, { countryCode: selectedCountry.alpha2.toLowerCase(), height: 20 }) }), slim === false && (jsxRuntime.jsx("span", { className: "overflow-hidden text-ellipsis whitespace-nowrap", children: selectedCountry.name }))] })) : (jsxRuntime.jsx("span", { children: slim === false ? (placeholder || setSelectedCountry.name) : (jsxRuntime.jsx(Globe, { size: 20 })) })), jsxRuntime.jsx(ChevronDown, { size: 16 })] })), jsxRuntime.jsx(PopoverContent, { collisionPadding: 10, side: "bottom", className: "min-w-[--radix-popper-anchor-width] p-0", children: jsxRuntime.jsx(Command, { className: "max-h-[200px] w-full sm:max-h-[270px]", children: jsxRuntime.jsxs(CommandList, { children: [jsxRuntime.jsx("div", { className: "bg-popover sticky top-0 z-10", children: jsxRuntime.jsx(CommandInput, { placeholder: "Search country..." }) }), jsxRuntime.jsx(CommandEmpty, { children: "No country found." }), jsxRuntime.jsx(CommandGroup, { children: options
33464
+ .filter((x) => x.name)
33465
+ .map((option, key) => (jsxRuntime.jsxs(CommandItem, { className: "flex w-full items-center gap-2", onSelect: () => handleSelect(option), children: [jsxRuntime.jsxs("div", { className: "flex w-0 flex-grow space-x-2 overflow-hidden", children: [jsxRuntime.jsx("div", { className: "inline-flex h-5 w-5 shrink-0 items-center justify-center overflow-hidden rounded-full", children: jsxRuntime.jsx(u, { countryCode: option.alpha2.toLowerCase(), height: 20 }) }), jsxRuntime.jsx("span", { className: "overflow-hidden text-ellipsis whitespace-nowrap", children: option.name })] }), jsxRuntime.jsx(Check, { className: cn("ml-auto h-4 w-4 shrink-0", option.name === (selectedCountry === null || selectedCountry === void 0 ? void 0 : selectedCountry.name)
33466
+ ? "opacity-100"
33467
+ : "opacity-0") })] }, key))) })] }) }) })] }));
33474
33468
  };
33475
33469
  CountryDropdownComponent.displayName = "CountryDropdownComponent";
33476
33470
  const CountryDropdown = React.forwardRef(CountryDropdownComponent);
@@ -33515,35 +33509,12 @@ function AddressInput() {
33515
33509
  else {
33516
33510
  form.clearErrors("address");
33517
33511
  }
33512
+ // eslint-disable-next-line react-hooks/exhaustive-deps
33518
33513
  }, [open]);
33519
- return (React.createElement("div", { className: "w-full md:col-span-2" },
33520
- React.createElement(Dialog, { open: open, onOpenChange: setOpen },
33521
- React.createElement(DialogTrigger, { asChild: true },
33522
- React.createElement("div", { className: "relative grid gap-2" },
33523
- React.createElement(FormField, { control: form.control, name: "address", render: () => (React.createElement(FormItem, null,
33524
- React.createElement(FormLabel, null, t("CheckoutEmbed.CustomerForm.address.address")),
33525
- React.createElement(FormControl, null,
33526
- React.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" })),
33527
- React.createElement(FormMessage, null))) }))),
33528
- React.createElement(DialogContent, { className: "sm:max-w-[500px] transform-none!" },
33529
- React.createElement(DialogHeader, null,
33530
- React.createElement(DialogTitle, null, t("CheckoutEmbed.CustomerForm.address.title")),
33531
- React.createElement(DialogDescription, null, t("CheckoutEmbed.CustomerForm.address.description"))),
33532
- React.createElement("div", { className: "grid grid-cols-2 gap-4" },
33533
- React.createElement(InputGroup, { className: "col-span-2", name: "address.line1", label: t("CheckoutEmbed.CustomerForm.address.line1"), placeholder: t("CheckoutEmbed.CustomerForm.address.line1Placeholder"), autoComplete: "address-line1" }),
33534
- React.createElement(InputGroup, { className: "col-span-2", name: "address.line2", label: t("CheckoutEmbed.CustomerForm.address.line2"), placeholder: t("CheckoutEmbed.CustomerForm.address.line2Placeholder"), autoComplete: "address-line2" }),
33535
- React.createElement(InputGroup, { name: "address.city", label: t("CheckoutEmbed.CustomerForm.address.city"), placeholder: t("CheckoutEmbed.CustomerForm.address.cityPlaceholder"), autoComplete: "address-level2" }),
33536
- React.createElement(InputGroup, { name: "address.state", label: t("CheckoutEmbed.CustomerForm.address.state"), placeholder: t("CheckoutEmbed.CustomerForm.address.statePlaceholder"), autoComplete: "address-level1" }),
33537
- React.createElement(InputGroup, { name: "address.zipCode", label: t("CheckoutEmbed.CustomerForm.address.zipCode"), placeholder: t("CheckoutEmbed.CustomerForm.address.zipCodePlaceholder"), autoComplete: "postal-code" }),
33538
- React.createElement(FormField, { control: form.control, name: "address.country", render: ({ field }) => (React.createElement(FormItem, null,
33539
- React.createElement(FormLabel, null, t("CheckoutEmbed.CustomerForm.address.country")),
33540
- React.createElement(CountryDropdown, { placeholder: t("CheckoutEmbed.CustomerForm.address.countryPlaceholder"), defaultValue: field.value, onChange: (country) => {
33541
- field.onChange(country.name);
33542
- form.setValue("address.countryCode", country.alpha2);
33543
- } }),
33544
- React.createElement(FormMessage, null))) })),
33545
- React.createElement(DialogFooter, null,
33546
- React.createElement(Button, { onClick: handleSave, type: "button", disabled: isValidating }, t("CheckoutEmbed.CustomerForm.address.button")))))));
33514
+ return (jsxRuntime.jsx("div", { className: "w-full md:col-span-2", children: jsxRuntime.jsxs(Dialog, { open: open, onOpenChange: setOpen, children: [jsxRuntime.jsx(DialogTrigger, { asChild: true, children: jsxRuntime.jsx("div", { className: "relative grid gap-2", children: jsxRuntime.jsx(FormField, { control: form.control, name: "address", render: () => (jsxRuntime.jsxs(FormItem, { children: [jsxRuntime.jsx(FormLabel, { children: t("CheckoutEmbed.CustomerForm.address.address") }), jsxRuntime.jsx(FormControl, { children: jsxRuntime.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" }) }), jsxRuntime.jsx(FormMessage, {})] })) }) }) }), jsxRuntime.jsxs(DialogContent, { className: "transform-none! sm:max-w-[500px]", children: [jsxRuntime.jsxs(DialogHeader, { children: [jsxRuntime.jsx(DialogTitle, { children: t("CheckoutEmbed.CustomerForm.address.title") }), jsxRuntime.jsx(DialogDescription, { children: t("CheckoutEmbed.CustomerForm.address.description") })] }), jsxRuntime.jsxs("div", { className: "grid grid-cols-2 gap-4", children: [jsxRuntime.jsx(InputGroup, { className: "col-span-2", name: "address.line1", label: t("CheckoutEmbed.CustomerForm.address.line1"), placeholder: t("CheckoutEmbed.CustomerForm.address.line1Placeholder"), autoComplete: "address-line1" }), jsxRuntime.jsx(InputGroup, { className: "col-span-2", name: "address.line2", label: t("CheckoutEmbed.CustomerForm.address.line2"), placeholder: t("CheckoutEmbed.CustomerForm.address.line2Placeholder"), autoComplete: "address-line2" }), jsxRuntime.jsx(InputGroup, { name: "address.city", label: t("CheckoutEmbed.CustomerForm.address.city"), placeholder: t("CheckoutEmbed.CustomerForm.address.cityPlaceholder"), autoComplete: "address-level2" }), jsxRuntime.jsx(InputGroup, { name: "address.state", label: t("CheckoutEmbed.CustomerForm.address.state"), placeholder: t("CheckoutEmbed.CustomerForm.address.statePlaceholder"), autoComplete: "address-level1" }), jsxRuntime.jsx(InputGroup, { name: "address.zipCode", label: t("CheckoutEmbed.CustomerForm.address.zipCode"), placeholder: t("CheckoutEmbed.CustomerForm.address.zipCodePlaceholder"), autoComplete: "postal-code" }), jsxRuntime.jsx(FormField, { control: form.control, name: "address.country", render: ({ field }) => (jsxRuntime.jsxs(FormItem, { children: [jsxRuntime.jsx(FormLabel, { children: t("CheckoutEmbed.CustomerForm.address.country") }), jsxRuntime.jsx(CountryDropdown, { placeholder: t("CheckoutEmbed.CustomerForm.address.countryPlaceholder"), defaultValue: field.value, onChange: (country) => {
33515
+ field.onChange(country.name);
33516
+ form.setValue("address.countryCode", country.alpha2);
33517
+ } }), jsxRuntime.jsx(FormMessage, {})] })) })] }), jsxRuntime.jsx(DialogFooter, { children: jsxRuntime.jsx(Button, { onClick: handleSave, type: "button", disabled: isValidating, children: t("CheckoutEmbed.CustomerForm.address.button") }) })] })] }) }));
33547
33518
  }
33548
33519
 
33549
33520
  function CustomerForm({ initialData, onSubmit, }) {
@@ -33566,17 +33537,7 @@ function CustomerForm({ initialData, onSubmit, }) {
33566
33537
  },
33567
33538
  mode: "onBlur",
33568
33539
  });
33569
- return (React.createElement(Form, Object.assign({}, form),
33570
- React.createElement("form", { onSubmit: form.handleSubmit(onSubmit), className: "md:grid-cols-2 gap-6 grid" },
33571
- React.createElement("div", { className: "md:col-span-2" },
33572
- React.createElement("h2", null, t("CheckoutEmbed.CustomerForm.title"))),
33573
- React.createElement(InputGroup, { className: "md:col-span-2", name: "email", label: t("CheckoutEmbed.CustomerForm.email"), placeholder: t("CheckoutEmbed.CustomerForm.emailPlaceholder"), type: "email", autoComplete: "email" }),
33574
- React.createElement(InputGroup, { name: "firstName", label: t("CheckoutEmbed.CustomerForm.firstName"), placeholder: t("CheckoutEmbed.CustomerForm.firstNamePlaceholder"), autoComplete: "given-name" }),
33575
- React.createElement(InputGroup, { name: "lastName", label: t("CheckoutEmbed.CustomerForm.lastName"), placeholder: t("CheckoutEmbed.CustomerForm.lastNamePlaceholder"), autoComplete: "family-name" }),
33576
- React.createElement(AddressInput, null),
33577
- React.createElement(InputGroup, { name: "phone", label: t("CheckoutEmbed.CustomerForm.phone"), placeholder: t("CheckoutEmbed.CustomerForm.phonePlaceholder"), type: "tel", autoComplete: "tel" }),
33578
- React.createElement("div", { className: "flex md:col-span-2 justify-end pt-2" },
33579
- React.createElement(SubmitButton, { isValid: form.formState.isValid, isSubmitting: form.formState.isSubmitting }, t("CheckoutEmbed.CustomerForm.button"))))));
33540
+ return (jsxRuntime.jsx(Form, Object.assign({}, form, { children: jsxRuntime.jsxs("form", { onSubmit: form.handleSubmit(onSubmit), className: "grid gap-6 md:grid-cols-2", children: [jsxRuntime.jsx("div", { className: "md:col-span-2", children: jsxRuntime.jsx("h2", { children: t("CheckoutEmbed.CustomerForm.title") }) }), jsxRuntime.jsx(InputGroup, { className: "md:col-span-2", name: "email", label: t("CheckoutEmbed.CustomerForm.email"), placeholder: t("CheckoutEmbed.CustomerForm.emailPlaceholder"), type: "email", autoComplete: "email" }), jsxRuntime.jsx(InputGroup, { name: "firstName", label: t("CheckoutEmbed.CustomerForm.firstName"), placeholder: t("CheckoutEmbed.CustomerForm.firstNamePlaceholder"), autoComplete: "given-name" }), jsxRuntime.jsx(InputGroup, { name: "lastName", label: t("CheckoutEmbed.CustomerForm.lastName"), placeholder: t("CheckoutEmbed.CustomerForm.lastNamePlaceholder"), autoComplete: "family-name" }), jsxRuntime.jsx(AddressInput, {}), jsxRuntime.jsx(InputGroup, { name: "phone", label: t("CheckoutEmbed.CustomerForm.phone"), placeholder: t("CheckoutEmbed.CustomerForm.phonePlaceholder"), type: "tel", autoComplete: "tel" }), jsxRuntime.jsx("div", { className: "flex justify-end pt-2 md:col-span-2", children: jsxRuntime.jsx(SubmitButton, { isValid: form.formState.isValid, isSubmitting: form.formState.isSubmitting, children: t("CheckoutEmbed.CustomerForm.button") }) })] }) })));
33580
33541
  }
33581
33542
 
33582
33543
  var reactStripe_umd$1 = {exports: {}};
@@ -35110,22 +35071,15 @@ const CheckoutForm$1 = ({ onSuccess, onError, children, setSubmitting, }) => {
35110
35071
  const wrapper = document.getElementById("bs-wrapper");
35111
35072
  if (!wrapper)
35112
35073
  return null;
35113
- return (React.createElement(React.Fragment, null,
35114
- React.createElement("div", { ref: containerRef, className: "w-full h-[450px]" }),
35115
- ReactDOM.createPortal(React.createElement("div", { style: {
35116
- display: "block",
35117
- zIndex: 20,
35118
- position: "absolute",
35119
- top: rect === null || rect === void 0 ? void 0 : rect.top,
35120
- left: rect === null || rect === void 0 ? void 0 : rect.left,
35121
- width: rect === null || rect === void 0 ? void 0 : rect.width,
35122
- height: rect === null || rect === void 0 ? void 0 : rect.height,
35123
- } },
35124
- React.createElement("form", { onSubmit: handleSubmit },
35125
- React.createElement("div", null,
35126
- React.createElement(reactStripe_umdExports.PaymentElement, null),
35127
- React.createElement("p", { style: { color: "#fb2c36" } }, errorMessage)),
35128
- children)), wrapper)));
35074
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("div", { ref: containerRef, className: "h-[450px] w-full" }), ReactDOM.createPortal(jsxRuntime.jsx("div", { style: {
35075
+ display: "block",
35076
+ zIndex: 20,
35077
+ position: "absolute",
35078
+ top: rect === null || rect === void 0 ? void 0 : rect.top,
35079
+ left: rect === null || rect === void 0 ? void 0 : rect.left,
35080
+ width: rect === null || rect === void 0 ? void 0 : rect.width,
35081
+ height: rect === null || rect === void 0 ? void 0 : rect.height,
35082
+ }, children: jsxRuntime.jsxs("form", { onSubmit: handleSubmit, children: [jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx(reactStripe_umdExports.PaymentElement, {}), jsxRuntime.jsx("p", { style: { color: "#fb2c36" }, children: errorMessage })] }), children] }) }), wrapper)] }));
35129
35083
  };
35130
35084
  var CheckoutForm$2 = React.memo(CheckoutForm$1);
35131
35085
 
@@ -35137,56 +35091,24 @@ function PaymentElement({ paymentSecret, publicKey, checkoutAppearance, locale,
35137
35091
  clientSecret: paymentSecret,
35138
35092
  fonts: fonts,
35139
35093
  };
35140
- return (React.createElement(reactStripe_umdExports.Elements, { stripe: stripePromise, options: options },
35141
- React.createElement(CheckoutForm$2, { onSuccess: onSuccess, onError: onError, children: children, setSubmitting: setSubmitting })));
35094
+ return (jsxRuntime.jsx(reactStripe_umdExports.Elements, { stripe: stripePromise, options: options, children: jsxRuntime.jsx(CheckoutForm$2, { onSuccess: onSuccess, onError: onError, setSubmitting: setSubmitting, children: children }) }));
35142
35095
  }
35143
35096
  var PaymentElement$1 = React.memo(PaymentElement);
35144
35097
 
35145
35098
  function PaymentForm({ paymentSecret, onSuccess, onError, onBack, onDoubleBack, contactEmail, shippingAddress, shippingName, shippingPrice, checkoutAppearance, fonts, locale, publicKey, paymentComponentKey, }) {
35146
35099
  const [isSubmitting, setIsSubmitting] = React.useState(false);
35147
35100
  const { t } = useTranslation();
35148
- return (React.createElement("div", { className: "space-y-6" },
35149
- React.createElement("div", null,
35150
- React.createElement("h2", { className: "mb-2" }, t("CheckoutEmbed.Payment.title")),
35151
- React.createElement("p", { className: "text-sm text-muted-foreground" }, t("CheckoutEmbed.Payment.description"))),
35152
- React.createElement("div", { className: "space-y-2" },
35153
- React.createElement("div", { className: "flex items-center justify-between text-sm" },
35154
- React.createElement("p", null,
35155
- React.createElement("span", { className: "font-medium" }, t("CheckoutEmbed.Shipping.contact")),
35156
- " ",
35157
- React.createElement("span", { className: "text-muted-foreground" }, contactEmail)),
35158
- React.createElement(Button, { variant: "link", size: "link", onClick: onDoubleBack }, t("CheckoutEmbed.Shipping.change"))),
35159
- React.createElement("div", { className: "flex items-center justify-between text-sm" },
35160
- React.createElement("p", null,
35161
- React.createElement("span", { className: "font-medium" }, t("CheckoutEmbed.Shipping.address")),
35162
- " ",
35163
- React.createElement("span", { className: "text-muted-foreground" }, shippingAddress)),
35164
- React.createElement(Button, { variant: "link", size: "link", onClick: onDoubleBack }, t("CheckoutEmbed.Shipping.change"))),
35165
- React.createElement("div", { className: "flex items-center justify-between text-sm" },
35166
- React.createElement("p", null,
35167
- React.createElement("span", { className: "font-medium" }, t("CheckoutEmbed.Shipping.shipping")),
35168
- " ",
35169
- React.createElement("span", { className: "text-muted-foreground" },
35170
- shippingName,
35171
- " \u00B7 ",
35172
- shippingPrice)),
35173
- React.createElement(Button, { variant: "link", size: "link", onClick: onBack }, t("CheckoutEmbed.Shipping.change")))),
35174
- React.createElement("div", { className: "mt-8" }, paymentSecret && (React.createElement(PaymentElement$1, { key: paymentComponentKey, fonts: fonts, checkoutAppearance: convertCheckoutAppearanceToStripeAppearance(checkoutAppearance, fonts), locale: locale, paymentSecret: paymentSecret, onSuccess: onSuccess, onError: onError, setSubmitting: setIsSubmitting, publicKey: publicKey },
35175
- React.createElement("div", { style: {
35176
- display: "flex",
35177
- justifyContent: "space-between",
35178
- alignItems: "center",
35179
- paddingTop: "2rem",
35180
- } },
35181
- React.createElement(Button, { type: "button", variant: "ghost", onClick: onBack },
35182
- React.createElement(ChevronLeft, null),
35183
- t("CheckoutEmbed.Payment.back")),
35184
- React.createElement(SubmitButton, { isValid: true, isSubmitting: isSubmitting }, t("CheckoutEmbed.Payment.button"))))))));
35101
+ return (jsxRuntime.jsxs("div", { className: "space-y-6", children: [jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("h2", { className: "mb-2", children: t("CheckoutEmbed.Payment.title") }), jsxRuntime.jsx("p", { className: "text-muted-foreground text-sm", children: t("CheckoutEmbed.Payment.description") })] }), jsxRuntime.jsxs("div", { className: "space-y-2", children: [jsxRuntime.jsxs("div", { className: "flex items-center justify-between text-sm", children: [jsxRuntime.jsxs("p", { children: [jsxRuntime.jsx("span", { className: "font-medium", children: t("CheckoutEmbed.Shipping.contact") }), " ", jsxRuntime.jsx("span", { className: "text-muted-foreground", children: contactEmail })] }), jsxRuntime.jsx(Button, { variant: "link", size: "link", onClick: onDoubleBack, children: t("CheckoutEmbed.Shipping.change") })] }), jsxRuntime.jsxs("div", { className: "flex items-center justify-between text-sm", children: [jsxRuntime.jsxs("p", { children: [jsxRuntime.jsx("span", { className: "font-medium", children: t("CheckoutEmbed.Shipping.address") }), " ", jsxRuntime.jsx("span", { className: "text-muted-foreground", children: shippingAddress })] }), jsxRuntime.jsx(Button, { variant: "link", size: "link", onClick: onDoubleBack, children: t("CheckoutEmbed.Shipping.change") })] }), jsxRuntime.jsxs("div", { className: "flex items-center justify-between text-sm", children: [jsxRuntime.jsxs("p", { children: [jsxRuntime.jsx("span", { className: "font-medium", children: t("CheckoutEmbed.Shipping.shipping") }), " ", jsxRuntime.jsxs("span", { className: "text-muted-foreground", children: [shippingName, " \u00B7 ", shippingPrice] })] }), jsxRuntime.jsx(Button, { variant: "link", size: "link", onClick: onBack, children: t("CheckoutEmbed.Shipping.change") })] })] }), jsxRuntime.jsx("div", { className: "mt-8", children: paymentSecret && (jsxRuntime.jsx(PaymentElement$1, { fonts: fonts, checkoutAppearance: convertCheckoutAppearanceToStripeAppearance(checkoutAppearance, fonts), locale: locale, paymentSecret: paymentSecret, onSuccess: onSuccess, onError: onError, setSubmitting: setIsSubmitting, publicKey: publicKey, children: jsxRuntime.jsxs("div", { style: {
35102
+ display: "flex",
35103
+ justifyContent: "space-between",
35104
+ alignItems: "center",
35105
+ paddingTop: "2rem",
35106
+ }, children: [jsxRuntime.jsxs(Button, { type: "button", variant: "ghost", onClick: onBack, children: [jsxRuntime.jsx(ChevronLeft, {}), t("CheckoutEmbed.Payment.back")] }), jsxRuntime.jsx(SubmitButton, { isValid: true, isSubmitting: isSubmitting, children: t("CheckoutEmbed.Payment.button") })] }) }, paymentComponentKey)) })] }));
35185
35107
  }
35186
35108
 
35187
35109
  function Skeleton(_a) {
35188
35110
  var { className } = _a, props = __rest(_a, ["className"]);
35189
- return (React__namespace.createElement("div", Object.assign({ "data-slot": "skeleton", className: cn("bg-accent animate-pulse rounded-md", className) }, props)));
35111
+ return (jsxRuntime.jsx("div", Object.assign({ "data-slot": "skeleton", className: cn("bg-accent animate-pulse rounded-md", className) }, props)));
35190
35112
  }
35191
35113
 
35192
35114
  function ZasilkovnaShippingOption({ children, onPickupPointSelected, locale, countryCode, apiKey, }) {
@@ -35225,15 +35147,14 @@ function ZasilkovnaShippingOption({ children, onPickupPointSelected, locale, cou
35225
35147
  console.error("Packeta widget not found", window);
35226
35148
  }
35227
35149
  };
35228
- return (React.createElement(React.Fragment, null,
35229
- React.createElement("div", { onClick: () => handleClick() }, children)));
35150
+ return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsx("div", { onClick: () => handleClick(), children: children }) }));
35230
35151
  }
35231
35152
 
35232
35153
  function ShippingOptionWrapper({ rate, children, onPickupPointSelected, locale, countryCode, }) {
35233
35154
  if (rate.provider === "zasilkovna") {
35234
- return (React.createElement(ZasilkovnaShippingOption, { onPickupPointSelected: onPickupPointSelected, locale: locale, countryCode: countryCode, apiKey: rate.clientSecret }, children));
35155
+ return (jsxRuntime.jsx(ZasilkovnaShippingOption, { onPickupPointSelected: onPickupPointSelected, locale: locale, countryCode: countryCode, apiKey: rate.clientSecret, children: children }));
35235
35156
  }
35236
- return React.createElement(React.Fragment, null, children);
35157
+ return jsxRuntime.jsx(jsxRuntime.Fragment, { children: children });
35237
35158
  }
35238
35159
 
35239
35160
  function ShippingMethodForm({ shippingRates, initialData, onSubmit, onBack, contactEmail, shippingAddress, currency, exchangeRate, locale, countryCode, setFormData, formData, }) {
@@ -35250,77 +35171,38 @@ function ShippingMethodForm({ shippingRates, initialData, onSubmit, onBack, cont
35250
35171
  },
35251
35172
  });
35252
35173
  const currentRateId = form.watch("rateId");
35253
- return (React.createElement("div", { className: "space-y-6" },
35254
- React.createElement("h2", null, t("CheckoutEmbed.Shipping.title")),
35255
- React.createElement("div", { className: "space-y-2 pb-2" },
35256
- React.createElement("div", { className: "flex items-center justify-between text-sm" },
35257
- React.createElement("p", null,
35258
- React.createElement("span", { className: "font-medium" }, t("CheckoutEmbed.Shipping.contact")),
35259
- " ",
35260
- React.createElement("span", { className: "text-muted-foreground" }, contactEmail)),
35261
- React.createElement(Button, { variant: "link", size: "link", onClick: onBack }, t("CheckoutEmbed.Shipping.change"))),
35262
- React.createElement("div", { className: "flex items-center justify-between text-sm" },
35263
- React.createElement("p", null,
35264
- React.createElement("span", { className: "font-medium" }, t("CheckoutEmbed.Shipping.address")),
35265
- " ",
35266
- React.createElement("span", { className: "text-muted-foreground" }, shippingAddress)),
35267
- React.createElement(Button, { variant: "link", size: "link", onClick: onBack }, t("CheckoutEmbed.Shipping.change")))),
35268
- React.createElement(Form, Object.assign({}, form),
35269
- React.createElement("form", { onSubmit: form.handleSubmit(onSubmit), className: "space-y-4" },
35270
- shippingRates.length === 0 &&
35271
- Array.from({ length: 3 }).map((_, index) => (React.createElement(ShippingRateLoading, { key: index }))),
35272
- shippingRates.map((rate) => {
35273
- const pickupPointDisplayName = form.watch("pickupPointDisplayName");
35274
- const rateId = rate.provider + rate.name;
35275
- const intPrice = Math.ceil(Number(rate.price));
35276
- const displayPrice = storeHelpers.formatPrice(intPrice, currency, exchangeRate);
35277
- const description = rate.provider === "zasilkovna"
35278
- ? t("CheckoutEmbed.Shipping.description.zasilkovna")
35279
- : t("CheckoutEmbed.Shipping.description.other");
35280
- return (React.createElement(ShippingOptionWrapper, { rate: rate, key: rateId, onPickupPointSelected: (pickupPointId, pickupPointName) => {
35281
- const newFormData = {
35282
- rateId,
35283
- provider: rate.provider,
35284
- price: intPrice,
35285
- name: rate.name,
35286
- pickupPointId: rate.provider === "zasilkovna" ? pickupPointId : "",
35287
- pickupPointDisplayName: rate.provider === "zasilkovna" ? pickupPointName : "",
35288
- };
35289
- form.setValue("rateId", newFormData.rateId);
35290
- form.setValue("provider", newFormData.provider);
35291
- form.setValue("name", newFormData.name);
35292
- form.setValue("price", newFormData.price);
35293
- form.setValue("pickupPointId", newFormData.pickupPointId);
35294
- form.setValue("pickupPointDisplayName", newFormData.pickupPointDisplayName);
35295
- setFormData(Object.assign(Object.assign({}, formData), { shipping: Object.assign({}, newFormData) }));
35296
- }, locale: locale, countryCode: countryCode },
35297
- React.createElement("div", { className: clsx("p-4 cursor-pointer rounded-md border bg-background", {
35298
- "bg-muted border-primary": currentRateId === rateId,
35299
- }) },
35300
- React.createElement("div", { className: "flex items-center justify-between w-full" },
35301
- React.createElement("p", null, rate.name),
35302
- React.createElement("p", null, displayPrice)),
35303
- React.createElement("p", { className: "text-sm text-muted-foreground" }, description),
35304
- pickupPointDisplayName && (React.createElement(React.Fragment, null,
35305
- React.createElement("hr", { className: "my-2" }),
35306
- React.createElement("p", { className: "text-sm text-muted-foreground" },
35307
- t("CheckoutEmbed.Shipping.description.shippedTo"),
35308
- " ",
35309
- React.createElement("span", { className: "text-foreground" }, pickupPointDisplayName)))))));
35310
- }),
35311
- React.createElement(FormMessage, null, (_a = form.formState.errors.rateId) === null || _a === void 0 ? void 0 : _a.message),
35312
- React.createElement("div", { className: "flex justify-between items-center pt-4" },
35313
- React.createElement(Button, { type: "button", variant: "ghost", onClick: onBack },
35314
- React.createElement(ChevronLeft, null),
35315
- t("CheckoutEmbed.Shipping.back")),
35316
- React.createElement(SubmitButton, { isSubmitting: form.formState.isSubmitting, isValid: !!currentRateId }, t("CheckoutEmbed.Shipping.button")))))));
35174
+ return (jsxRuntime.jsxs("div", { className: "space-y-6", children: [jsxRuntime.jsx("h2", { children: t("CheckoutEmbed.Shipping.title") }), jsxRuntime.jsxs("div", { className: "space-y-2 pb-2", children: [jsxRuntime.jsxs("div", { className: "flex items-center justify-between text-sm", children: [jsxRuntime.jsxs("p", { children: [jsxRuntime.jsx("span", { className: "font-medium", children: t("CheckoutEmbed.Shipping.contact") }), " ", jsxRuntime.jsx("span", { className: "text-muted-foreground", children: contactEmail })] }), jsxRuntime.jsx(Button, { variant: "link", size: "link", onClick: onBack, children: t("CheckoutEmbed.Shipping.change") })] }), jsxRuntime.jsxs("div", { className: "flex items-center justify-between text-sm", children: [jsxRuntime.jsxs("p", { children: [jsxRuntime.jsx("span", { className: "font-medium", children: t("CheckoutEmbed.Shipping.address") }), " ", jsxRuntime.jsx("span", { className: "text-muted-foreground", children: shippingAddress })] }), jsxRuntime.jsx(Button, { variant: "link", size: "link", onClick: onBack, children: t("CheckoutEmbed.Shipping.change") })] })] }), jsxRuntime.jsx(Form, Object.assign({}, form, { children: jsxRuntime.jsxs("form", { onSubmit: form.handleSubmit(onSubmit), className: "space-y-4", children: [shippingRates.length === 0 &&
35175
+ Array.from({ length: 3 }).map((_, index) => (jsxRuntime.jsx(ShippingRateLoading, {}, index))), shippingRates.map((rate) => {
35176
+ const pickupPointDisplayName = form.watch("pickupPointDisplayName");
35177
+ const rateId = rate.provider + rate.name;
35178
+ const intPrice = Math.ceil(Number(rate.price));
35179
+ const displayPrice = storeHelpers.formatPrice(intPrice, currency, exchangeRate);
35180
+ const description = rate.provider === "zasilkovna"
35181
+ ? t("CheckoutEmbed.Shipping.description.zasilkovna")
35182
+ : t("CheckoutEmbed.Shipping.description.other");
35183
+ return (jsxRuntime.jsx(ShippingOptionWrapper, { rate: rate, onPickupPointSelected: (pickupPointId, pickupPointName) => {
35184
+ const newFormData = {
35185
+ rateId,
35186
+ provider: rate.provider,
35187
+ price: intPrice,
35188
+ name: rate.name,
35189
+ pickupPointId: rate.provider === "zasilkovna" ? pickupPointId : "",
35190
+ pickupPointDisplayName: rate.provider === "zasilkovna" ? pickupPointName : "",
35191
+ };
35192
+ form.setValue("rateId", newFormData.rateId);
35193
+ form.setValue("provider", newFormData.provider);
35194
+ form.setValue("name", newFormData.name);
35195
+ form.setValue("price", newFormData.price);
35196
+ form.setValue("pickupPointId", newFormData.pickupPointId);
35197
+ form.setValue("pickupPointDisplayName", newFormData.pickupPointDisplayName);
35198
+ setFormData(Object.assign(Object.assign({}, formData), { shipping: Object.assign({}, newFormData) }));
35199
+ }, locale: locale, countryCode: countryCode, children: jsxRuntime.jsxs("div", { className: clsx("bg-background cursor-pointer rounded-md border p-4", {
35200
+ "bg-muted border-primary": currentRateId === rateId,
35201
+ }), children: [jsxRuntime.jsxs("div", { className: "flex w-full items-center justify-between", children: [jsxRuntime.jsx("p", { children: rate.name }), jsxRuntime.jsx("p", { children: displayPrice })] }), jsxRuntime.jsx("p", { className: "text-muted-foreground text-sm", children: description }), pickupPointDisplayName && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("hr", { className: "my-2" }), jsxRuntime.jsxs("p", { className: "text-muted-foreground text-sm", children: [t("CheckoutEmbed.Shipping.description.shippedTo"), " ", jsxRuntime.jsx("span", { className: "text-foreground", children: pickupPointDisplayName })] })] }))] }) }, rateId));
35202
+ }), jsxRuntime.jsx(FormMessage, { children: (_a = form.formState.errors.rateId) === null || _a === void 0 ? void 0 : _a.message }), jsxRuntime.jsxs("div", { className: "flex items-center justify-between pt-4", children: [jsxRuntime.jsxs(Button, { type: "button", variant: "ghost", onClick: onBack, children: [jsxRuntime.jsx(ChevronLeft, {}), t("CheckoutEmbed.Shipping.back")] }), jsxRuntime.jsx(SubmitButton, { isSubmitting: form.formState.isSubmitting, isValid: !!currentRateId, children: t("CheckoutEmbed.Shipping.button") })] })] }) }))] }));
35317
35203
  }
35318
35204
  function ShippingRateLoading() {
35319
- return (React.createElement("div", { className: clsx("p-4 cursor-pointer grid gap-[10px] rounded-md border bg-background") },
35320
- React.createElement("div", { className: "flex items-center justify-between w-full" },
35321
- React.createElement(Skeleton, { className: "w-12 h-5" }),
35322
- React.createElement(Skeleton, { className: "w-16 h-5" })),
35323
- React.createElement(Skeleton, { className: "w-40 h-3.5" })));
35205
+ return (jsxRuntime.jsxs("div", { className: clsx("bg-background grid cursor-pointer gap-[10px] rounded-md border p-4"), children: [jsxRuntime.jsxs("div", { className: "flex w-full items-center justify-between", children: [jsxRuntime.jsx(Skeleton, { className: "h-5 w-12" }), jsxRuntime.jsx(Skeleton, { className: "h-5 w-16" })] }), jsxRuntime.jsx(Skeleton, { className: "h-3.5 w-40" })] }));
35324
35206
  }
35325
35207
 
35326
35208
  const useFormStore = create()(persist((set) => ({
@@ -35354,9 +35236,11 @@ function CheckoutForm({ storeClient, checkoutId, onSuccess, onError, cancelUrl,
35354
35236
  if (!isCustomerValid)
35355
35237
  setStep("customer");
35356
35238
  }
35239
+ // eslint-disable-next-line react-hooks/exhaustive-deps
35357
35240
  }, [step, formData]);
35358
35241
  React.useEffect(() => {
35359
35242
  validateStep();
35243
+ // eslint-disable-next-line react-hooks/exhaustive-deps
35360
35244
  }, [step]);
35361
35245
  React.useEffect(() => {
35362
35246
  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;
@@ -35416,6 +35300,7 @@ function CheckoutForm({ storeClient, checkoutId, onSuccess, onError, cancelUrl,
35416
35300
  },
35417
35301
  } }));
35418
35302
  }
35303
+ // eslint-disable-next-line react-hooks/exhaustive-deps
35419
35304
  }, [customer]);
35420
35305
  React.useEffect(() => {
35421
35306
  if (step !== "shipping")
@@ -35433,6 +35318,7 @@ function CheckoutForm({ storeClient, checkoutId, onSuccess, onError, cancelUrl,
35433
35318
  }
35434
35319
  });
35435
35320
  getShippingRates();
35321
+ // eslint-disable-next-line react-hooks/exhaustive-deps
35436
35322
  }, [step, clientSecret, checkoutId]);
35437
35323
  // Handle address form submission
35438
35324
  const handleCustomerSubmit = (data) => __awaiter(this, void 0, void 0, function* () {
@@ -35494,33 +35380,22 @@ function CheckoutForm({ storeClient, checkoutId, onSuccess, onError, cancelUrl,
35494
35380
  };
35495
35381
  const renderStep = () => {
35496
35382
  if (step === "payment" && formData.customer && formData.shipping) {
35497
- return (React.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 }));
35383
+ return (jsxRuntime.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 }));
35498
35384
  }
35499
35385
  if (step === "shipping" && formData.customer) {
35500
- return (React.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 }));
35386
+ return (jsxRuntime.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 }));
35501
35387
  }
35502
- return (React.createElement(CustomerForm, { initialData: formData.customer, onSubmit: handleCustomerSubmit }));
35388
+ return (jsxRuntime.jsx(CustomerForm, { initialData: formData.customer, onSubmit: handleCustomerSubmit }));
35503
35389
  };
35504
- return React.createElement("div", { className: "relative min-h-full w-full h-max" }, renderStep());
35390
+ return jsxRuntime.jsx("div", { className: "relative h-max min-h-full w-full", children: renderStep() });
35505
35391
  }
35506
35392
 
35507
35393
  function CheckoutFormLoading() {
35508
35394
  const { t } = useTranslation();
35509
- return (React.createElement("div", { className: "md:grid-cols-2 gap-6 grid" },
35510
- React.createElement("div", { className: "md:col-span-2" },
35511
- React.createElement("h2", null, t("CheckoutEmbed.CustomerForm.title"))),
35512
- React.createElement(InputGroupLoading, { className: "md:col-span-2" }),
35513
- React.createElement(InputGroupLoading, null),
35514
- React.createElement(InputGroupLoading, null),
35515
- React.createElement(InputGroupLoading, { className: "md:col-span-2" }),
35516
- React.createElement(InputGroupLoading, null),
35517
- React.createElement("div", { className: "flex md:col-span-2 justify-end pt-2" },
35518
- React.createElement(Skeleton, { className: "w-32 h-10" }))));
35395
+ return (jsxRuntime.jsxs("div", { className: "grid gap-6 md:grid-cols-2", children: [jsxRuntime.jsx("div", { className: "md:col-span-2", children: jsxRuntime.jsx("h2", { children: t("CheckoutEmbed.CustomerForm.title") }) }), jsxRuntime.jsx(InputGroupLoading, { className: "md:col-span-2" }), jsxRuntime.jsx(InputGroupLoading, {}), jsxRuntime.jsx(InputGroupLoading, {}), jsxRuntime.jsx(InputGroupLoading, { className: "md:col-span-2" }), jsxRuntime.jsx(InputGroupLoading, {}), jsxRuntime.jsx("div", { className: "flex justify-end pt-2 md:col-span-2", children: jsxRuntime.jsx(Skeleton, { className: "h-10 w-32" }) })] }));
35519
35396
  }
35520
35397
  function InputGroupLoading({ className }) {
35521
- return (React.createElement("div", { className: clsx("flex flex-col gap-2", className) },
35522
- React.createElement(Skeleton, { className: "w-10 h-3" }),
35523
- React.createElement(Skeleton, { className: "w-full h-10" })));
35398
+ return (jsxRuntime.jsxs("div", { className: clsx("flex flex-col gap-2", className), children: [jsxRuntime.jsx(Skeleton, { className: "h-3 w-10" }), jsxRuntime.jsx(Skeleton, { className: "h-10 w-full" })] }));
35524
35399
  }
35525
35400
 
35526
35401
  function DiscountCode({ applyDiscountCode, }) {
@@ -35545,15 +35420,10 @@ function DiscountCode({ applyDiscountCode, }) {
35545
35420
  setIsLoading(false);
35546
35421
  }
35547
35422
  });
35548
- return (React.createElement("form", { className: "pb-1", onSubmit: handleSubmit },
35549
- React.createElement(Label, { className: "text-sm font-medium mb-2" }, t("CheckoutEmbed.Summary.discountCodeLabel")),
35550
- React.createElement("div", { className: "flex items-center gap-2" },
35551
- React.createElement(Input, { "aria-invalid": !!error, value: discountCode, onChange: (e) => {
35552
- setError("");
35553
- setDiscountCode(e.target.value);
35554
- }, name: "discountCode", placeholder: t("CheckoutEmbed.Summary.discountCodePlaceholder") }),
35555
- React.createElement(SubmitButton, { isSubmitting: isLoading, isValid: isValid, type: "submit" }, t("CheckoutEmbed.Summary.discountCodeApply"))),
35556
- error && React.createElement("p", { className: "text-red-500 mt-2 text-sm" }, error)));
35423
+ return (jsxRuntime.jsxs("form", { className: "pb-1", onSubmit: handleSubmit, children: [jsxRuntime.jsx(Label, { className: "mb-2 text-sm font-medium", children: t("CheckoutEmbed.Summary.discountCodeLabel") }), jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [jsxRuntime.jsx(Input, { "aria-invalid": !!error, value: discountCode, onChange: (e) => {
35424
+ setError("");
35425
+ setDiscountCode(e.target.value);
35426
+ }, name: "discountCode", placeholder: t("CheckoutEmbed.Summary.discountCodePlaceholder") }), jsxRuntime.jsx(SubmitButton, { isSubmitting: isLoading, isValid: isValid, type: "submit", children: t("CheckoutEmbed.Summary.discountCodeApply") })] }), error && jsxRuntime.jsx("p", { className: "mt-2 text-sm text-red-500", children: error })] }));
35557
35427
  }
35558
35428
 
35559
35429
  function CheckoutSummary({ appliedDiscounts, lineItems, shipping, tax, currency, onCancel, exchangeRate, applyDiscountCode, removeDiscount, }) {
@@ -35582,105 +35452,65 @@ function CheckoutSummary({ appliedDiscounts, lineItems, shipping, tax, currency,
35582
35452
  return intersection.filter((combination) => currentCombinations.some((currentCombination) => JSON.stringify(currentCombination) === JSON.stringify(combination)));
35583
35453
  }, []);
35584
35454
  const canCombine = appliedDiscounts.length === 0 || sharedCombinations.length > 0;
35585
- return (React.createElement("div", { className: "grid gap-5" },
35586
- React.createElement("div", { className: "flex justify-between items-center" },
35587
- React.createElement("div", { onClick: () => setIsOpen(!isOpen), className: "flex items-center gap-2 max-md:cursor-pointer" },
35588
- React.createElement("h2", null, t("CheckoutEmbed.Summary.title")),
35589
- React.createElement(ChevronDown, { className: clsx("size-5 md:hidden transition-transform", {
35590
- "rotate-180": isOpen,
35591
- }) })),
35592
- React.createElement("p", { className: "font-bold text-lg tracking-tight md:hidden" }, storeHelpers.formatPrice(total, currency, exchangeRate)),
35593
- React.createElement(Button, { className: "max-sm:hidden", variant: "link", size: "link", onClick: onCancel }, t("CheckoutEmbed.Summary.edit"))),
35594
- React.createElement("hr", null),
35595
- React.createElement("div", { className: clsx("gap-2 order-4 md:order-none", {
35596
- "hidden md:grid": !isOpen,
35597
- grid: isOpen,
35598
- }) },
35599
- React.createElement("div", { className: "flex justify-between" },
35600
- React.createElement("p", null, t("CheckoutEmbed.Summary.subtotal")),
35601
- React.createElement("p", null, storeHelpers.formatPrice(subtotal, currency, exchangeRate))),
35602
- React.createElement("div", { className: "flex justify-between" },
35603
- React.createElement("p", null, t("CheckoutEmbed.Summary.shipping")),
35604
- React.createElement("p", null, isShippingFree
35605
- ? t("CheckoutEmbed.Summary.free")
35606
- : !!shippingPrice
35607
- ? storeHelpers.formatPrice(shippingPrice, currency, exchangeRate)
35608
- : t("CheckoutEmbed.Summary.calculatedAtNextStep"))),
35609
- !!tax && (React.createElement("div", { className: "flex justify-between" },
35610
- React.createElement("p", null, t("CheckoutEmbed.Summary.tax")),
35611
- React.createElement("p", null, storeHelpers.formatPrice(tax, currency, exchangeRate)))),
35612
- filteredDiscounts.map(({ discount, amount, id }) => {
35613
- var _a;
35614
- return (React.createElement("div", { key: discount.id, className: "flex justify-between text-muted-foreground" },
35615
- React.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" }),
35616
- React.createElement("p", null,
35617
- "- ",
35618
- storeHelpers.formatPrice(amount, currency, exchangeRate))));
35619
- }),
35620
- React.createElement("div", { className: "flex font-bold justify-between items-center" },
35621
- React.createElement("p", null, t("CheckoutEmbed.Summary.total")),
35622
- React.createElement("p", null, storeHelpers.formatPrice(totalWithDiscounts, currency, exchangeRate)))),
35623
- canCombine && (React.createElement(React.Fragment, null,
35624
- React.createElement("hr", { className: clsx("order-7 md:order-none", {
35455
+ return (jsxRuntime.jsxs("div", { className: "grid gap-5", children: [jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [jsxRuntime.jsxs("div", { onClick: () => setIsOpen(!isOpen), className: "flex items-center gap-2 max-md:cursor-pointer", children: [jsxRuntime.jsx("h2", { children: t("CheckoutEmbed.Summary.title") }), jsxRuntime.jsx(ChevronDown, { className: clsx("size-5 transition-transform md:hidden", {
35456
+ "rotate-180": isOpen,
35457
+ }) })] }), jsxRuntime.jsx("p", { className: "text-lg font-bold tracking-tight md:hidden", children: storeHelpers.formatPrice(total, currency, exchangeRate) }), jsxRuntime.jsx(Button, { className: "max-sm:hidden", variant: "link", size: "link", onClick: onCancel, children: t("CheckoutEmbed.Summary.edit") })] }), jsxRuntime.jsx("hr", {}), jsxRuntime.jsxs("div", { className: clsx("order-4 gap-2 md:order-none", {
35458
+ "hidden md:grid": !isOpen,
35459
+ grid: isOpen,
35460
+ }), children: [jsxRuntime.jsxs("div", { className: "flex justify-between", children: [jsxRuntime.jsx("p", { children: t("CheckoutEmbed.Summary.subtotal") }), jsxRuntime.jsx("p", { children: storeHelpers.formatPrice(subtotal, currency, exchangeRate) })] }), jsxRuntime.jsxs("div", { className: "flex justify-between", children: [jsxRuntime.jsx("p", { children: t("CheckoutEmbed.Summary.shipping") }), jsxRuntime.jsx("p", { children: isShippingFree
35461
+ ? t("CheckoutEmbed.Summary.free")
35462
+ : shippingPrice
35463
+ ? storeHelpers.formatPrice(shippingPrice, currency, exchangeRate)
35464
+ : t("CheckoutEmbed.Summary.calculatedAtNextStep") })] }), !!tax && (jsxRuntime.jsxs("div", { className: "flex justify-between", children: [jsxRuntime.jsx("p", { children: t("CheckoutEmbed.Summary.tax") }), jsxRuntime.jsx("p", { children: storeHelpers.formatPrice(tax, currency, exchangeRate) })] })), filteredDiscounts.map(({ discount, amount, id }) => {
35465
+ var _a;
35466
+ return (jsxRuntime.jsxs("div", { className: "text-muted-foreground flex justify-between", children: [jsxRuntime.jsx(DiscountItem, { id: id, removeDiscount: removeDiscount, label: (_a = ((discount === null || discount === void 0 ? void 0 : discount.code) || (discount === null || discount === void 0 ? void 0 : discount.title))) !== null && _a !== void 0 ? _a : "", canRemove: discount.method === "CODE" }), jsxRuntime.jsxs("p", { children: ["- ", storeHelpers.formatPrice(amount, currency, exchangeRate)] })] }, discount.id));
35467
+ }), jsxRuntime.jsxs("div", { className: "flex items-center justify-between font-bold", children: [jsxRuntime.jsx("p", { children: t("CheckoutEmbed.Summary.total") }), jsxRuntime.jsx("p", { children: storeHelpers.formatPrice(totalWithDiscounts, currency, exchangeRate) })] })] }), canCombine && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("hr", { className: clsx("order-7 md:order-none", {
35468
+ "hidden md:block": !isOpen,
35469
+ block: isOpen,
35470
+ }) }), jsxRuntime.jsx("div", { className: clsx("order-6 gap-0 md:order-none", {
35471
+ "hidden md:grid": !isOpen,
35472
+ grid: isOpen,
35473
+ }), children: jsxRuntime.jsx(DiscountCode, { applyDiscountCode: applyDiscountCode }) })] })), jsxRuntime.jsx("hr", { className: clsx("order-5 md:order-none", {
35625
35474
  "hidden md:block": !isOpen,
35626
35475
  block: isOpen,
35627
- }) }),
35628
- React.createElement("div", { className: clsx("gap-0 order-6 md:order-none", {
35476
+ }) }), jsxRuntime.jsx("div", { className: clsx("order-3 gap-5 md:order-none", {
35629
35477
  "hidden md:grid": !isOpen,
35630
35478
  grid: isOpen,
35631
- }) },
35632
- React.createElement(DiscountCode, { applyDiscountCode: applyDiscountCode })))),
35633
- React.createElement("hr", { className: clsx("order-5 md:order-none", {
35634
- "hidden md:block": !isOpen,
35635
- block: isOpen,
35636
- }) }),
35637
- React.createElement("div", { className: clsx("gap-5 order-3 md:order-none", {
35638
- "hidden md:grid": !isOpen,
35639
- grid: isOpen,
35640
- }) }, lineItems.map((item, index) => {
35641
- var _a, _b, _c, _d, _e, _f;
35642
- const finalItem = ((_a = item.productData) === null || _a === void 0 ? void 0 : _a.selectedVariant) || item.productData;
35643
- const productAppliedDiscounts = appliedDiscounts.filter((discount) => discount.allowedLineItems.some((allowedLineItem) => allowedLineItem.productId === item.productData.productId));
35644
- const formattedProductAppliedDiscounts = productAppliedDiscounts.map((discount) => {
35645
- var _a;
35646
- const elegibleLineItems = discount.allowedLineItems.find((allowedLineItem) => allowedLineItem.productId === item.productData.productId);
35647
- if (!elegibleLineItems)
35648
- return 0;
35649
- const elegibleQuantity = elegibleLineItems.quantity;
35650
- const elegibleTotalAmount = ((_a = finalItem === null || finalItem === void 0 ? void 0 : finalItem.priceInCents) !== null && _a !== void 0 ? _a : 0) * elegibleQuantity;
35651
- if (discount.discount.valueType === "PERCENTAGE") {
35652
- const percentage = discount.discount.value / 100;
35653
- return elegibleTotalAmount * percentage;
35654
- }
35655
- else if (discount.discount.valueType === "FREE") {
35656
- return elegibleTotalAmount;
35657
- }
35658
- return elegibleQuantity * discount.discount.value;
35659
- });
35660
- const totalDiscountAmount = formattedProductAppliedDiscounts.length > 0
35661
- ? formattedProductAppliedDiscounts.reduce((acc, curr) => {
35662
- return acc + curr;
35663
- }, 0)
35664
- : null;
35665
- const isDiscounted = !!totalDiscountAmount;
35666
- const discountedPrice = finalItem.priceInCents - (totalDiscountAmount !== null && totalDiscountAmount !== void 0 ? totalDiscountAmount : 0);
35667
- return (React.createElement("div", { key: index, className: "flex items-center" },
35668
- React.createElement("div", { className: "relative" },
35669
- React.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.createElement("img", { src: finalItem.images[0] ||
35670
- ((_b = item === null || item === void 0 ? void 0 : item.productData) === null || _b === void 0 ? void 0 : _b.images[0]) ||
35671
- "/placeholder.svg", alt: ((_c = item.productData) === null || _c === void 0 ? void 0 : _c.title) || "", className: "object-cover w-full h-full", sizes: "64px" }))),
35672
- React.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)),
35673
- React.createElement("div", { className: "ml-4 flex-1" },
35674
- React.createElement("h3", { className: "text-base font-medium" }, (_d = item.productData) === null || _d === void 0 ? void 0 : _d.title),
35675
- React.createElement("p", { className: "text-muted-foreground text-ellipsis line-clamp-1 md:max-w-[75%] text-sm" }, item.variantOptions
35676
- .map((option) => `${option.name}: ${option.value}`)
35677
- .join(", "))),
35678
- React.createElement("div", { className: "text-right" }, isDiscounted ? (React.createElement("div", { className: "flex flex-col" },
35679
- React.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)),
35680
- React.createElement("p", { className: "text-base font-medium" }, discountedPrice <= 0
35681
- ? t("CheckoutEmbed.Summary.free")
35682
- : storeHelpers.formatPrice(discountedPrice, currency, exchangeRate)))) : (React.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))))));
35683
- }))));
35479
+ }), children: lineItems.map((item, index) => {
35480
+ var _a, _b, _c, _d, _e, _f;
35481
+ const finalItem = ((_a = item.productData) === null || _a === void 0 ? void 0 : _a.selectedVariant) || item.productData;
35482
+ const productAppliedDiscounts = appliedDiscounts.filter((discount) => discount.allowedLineItems.some((allowedLineItem) => allowedLineItem.productId === item.productData.productId));
35483
+ const formattedProductAppliedDiscounts = productAppliedDiscounts.map((discount) => {
35484
+ var _a;
35485
+ const elegibleLineItems = discount.allowedLineItems.find((allowedLineItem) => allowedLineItem.productId === item.productData.productId);
35486
+ if (!elegibleLineItems)
35487
+ return 0;
35488
+ const elegibleQuantity = elegibleLineItems.quantity;
35489
+ const elegibleTotalAmount = ((_a = finalItem === null || finalItem === void 0 ? void 0 : finalItem.priceInCents) !== null && _a !== void 0 ? _a : 0) * elegibleQuantity;
35490
+ if (discount.discount.valueType === "PERCENTAGE") {
35491
+ const percentage = discount.discount.value / 100;
35492
+ return elegibleTotalAmount * percentage;
35493
+ }
35494
+ else if (discount.discount.valueType === "FREE") {
35495
+ return elegibleTotalAmount;
35496
+ }
35497
+ return elegibleQuantity * discount.discount.value;
35498
+ });
35499
+ const totalDiscountAmount = formattedProductAppliedDiscounts.length > 0
35500
+ ? formattedProductAppliedDiscounts.reduce((acc, curr) => {
35501
+ return acc + curr;
35502
+ }, 0)
35503
+ : null;
35504
+ const isDiscounted = !!totalDiscountAmount;
35505
+ const discountedPrice = finalItem.priceInCents - (totalDiscountAmount !== null && totalDiscountAmount !== void 0 ? totalDiscountAmount : 0);
35506
+ return (jsxRuntime.jsxs("div", { className: "flex items-center", children: [jsxRuntime.jsxs("div", { className: "relative", children: [jsxRuntime.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]) && (jsxRuntime.jsx("img", { src: finalItem.images[0] ||
35507
+ ((_b = item === null || item === void 0 ? void 0 : item.productData) === null || _b === void 0 ? void 0 : _b.images[0]) ||
35508
+ "/placeholder.svg", alt: ((_c = item.productData) === null || _c === void 0 ? void 0 : _c.title) || "", className: "h-full w-full object-cover", sizes: "64px" })) }), jsxRuntime.jsx("div", { className: "bg-primary text-background absolute -right-2 -top-2 flex h-6 w-6 items-center justify-center rounded-full text-sm", children: item.quantity })] }), jsxRuntime.jsxs("div", { className: "ml-4 flex-1", children: [jsxRuntime.jsx("h3", { className: "text-base font-medium", children: (_d = item.productData) === null || _d === void 0 ? void 0 : _d.title }), jsxRuntime.jsx("p", { className: "text-muted-foreground line-clamp-1 text-ellipsis text-sm md:max-w-[75%]", children: item.variantOptions
35509
+ .map((option) => `${option.name}: ${option.value}`)
35510
+ .join(", ") })] }), jsxRuntime.jsx("div", { className: "text-right", children: isDiscounted ? (jsxRuntime.jsxs("div", { className: "flex flex-col", children: [jsxRuntime.jsx("p", { className: "text-muted-foreground -mb-0.5 text-sm font-medium line-through", children: storeHelpers.formatPrice((_e = finalItem === null || finalItem === void 0 ? void 0 : finalItem.priceInCents) !== null && _e !== void 0 ? _e : 0, currency, exchangeRate) }), jsxRuntime.jsx("p", { className: "text-base font-medium", children: discountedPrice <= 0
35511
+ ? t("CheckoutEmbed.Summary.free")
35512
+ : storeHelpers.formatPrice(discountedPrice, currency, exchangeRate) })] })) : (jsxRuntime.jsx("p", { className: "text-base font-medium", children: storeHelpers.formatPrice((_f = finalItem === null || finalItem === void 0 ? void 0 : finalItem.priceInCents) !== null && _f !== void 0 ? _f : 0, currency, exchangeRate) })) })] }, index));
35513
+ }) })] }));
35684
35514
  }
35685
35515
  function DiscountItem({ id, removeDiscount, label, canRemove, }) {
35686
35516
  const [isLoading, setIsLoading] = React.useState(false);
@@ -35696,46 +35526,12 @@ function DiscountItem({ id, removeDiscount, label, canRemove, }) {
35696
35526
  setIsLoading(false);
35697
35527
  }
35698
35528
  });
35699
- return (React.createElement("div", { className: "flex items-center gap-0.5" },
35700
- React.createElement("p", null, isLoading ? "Removing..." : label),
35701
- !isLoading && canRemove && (React.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" },
35702
- React.createElement(X$2, { className: "size-3" }),
35703
- React.createElement("p", { className: "sr-only" }, "Remove")))));
35529
+ return (jsxRuntime.jsxs("div", { className: "flex items-center gap-0.5", children: [jsxRuntime.jsx("p", { children: isLoading ? "Removing..." : label }), !isLoading && canRemove && (jsxRuntime.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: [jsxRuntime.jsx(X$2, { className: "size-3" }), jsxRuntime.jsx("p", { className: "sr-only", children: "Remove" })] }))] }));
35704
35530
  }
35705
35531
 
35706
35532
  function CheckoutSummaryLoading() {
35707
35533
  const { t } = useTranslation();
35708
- return (React.createElement("div", { className: "grid gap-5" },
35709
- React.createElement("div", { className: "flex justify-between items-center" },
35710
- React.createElement("div", { className: "flex items-center gap-2 cursor-pointer" },
35711
- React.createElement("h2", null, t("CheckoutEmbed.Summary.title")),
35712
- React.createElement(ChevronDown, { className: "md:hidden size-5 transition-transform" })),
35713
- React.createElement(Skeleton, { className: "w-20 h-[20px] md:hidden" }),
35714
- React.createElement(Button, { className: "max-sm:hidden", variant: "link", size: "link", asChild: true },
35715
- React.createElement("a", null, t("CheckoutEmbed.Summary.edit")))),
35716
- React.createElement("hr", null),
35717
- React.createElement("div", { className: "hidden md:grid gap-2" },
35718
- React.createElement("div", { className: "flex justify-between" },
35719
- React.createElement("p", null, t("CheckoutEmbed.Summary.subtotal")),
35720
- React.createElement(Skeleton, { className: "w-20 h-[18px]" })),
35721
- React.createElement("div", { className: "flex justify-between" },
35722
- React.createElement("p", null, t("CheckoutEmbed.Summary.shipping")),
35723
- React.createElement(Skeleton, { className: "w-20 h-[18px]" })),
35724
- React.createElement("div", { className: "flex font-bold justify-between items-center" },
35725
- React.createElement("p", null, t("CheckoutEmbed.Summary.total")),
35726
- React.createElement(Skeleton, { className: "w-24 h-[18px]" }))),
35727
- React.createElement("hr", { className: "hidden md:block" }),
35728
- React.createElement("div", null,
35729
- React.createElement(Skeleton, { className: "w-24 h-5 mb-2" }),
35730
- React.createElement(Skeleton, { className: "h-10 w-full mb-1" })),
35731
- React.createElement("hr", { className: "hidden md:block" }),
35732
- Array.from({ length: 2 }).map((_, index) => (React.createElement("div", { key: index, className: "hidden md:flex items-center" },
35733
- React.createElement(Skeleton, { className: "rounded-lg size-16" }),
35734
- React.createElement("div", { className: "ml-4 grid gap-2 flex-1" },
35735
- React.createElement(Skeleton, { className: "w-28 h-5" }),
35736
- React.createElement(Skeleton, { className: "w-20 h-3.5" })),
35737
- React.createElement("div", { className: "text-right" },
35738
- React.createElement(Skeleton, { className: "w-20 h-5" })))))));
35534
+ return (jsxRuntime.jsxs("div", { className: "grid gap-5", children: [jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [jsxRuntime.jsxs("div", { className: "flex cursor-pointer items-center gap-2", children: [jsxRuntime.jsx("h2", { children: t("CheckoutEmbed.Summary.title") }), jsxRuntime.jsx(ChevronDown, { className: "size-5 transition-transform md:hidden" })] }), jsxRuntime.jsx(Skeleton, { className: "h-[20px] w-20 md:hidden" }), jsxRuntime.jsx(Button, { className: "max-sm:hidden", variant: "link", size: "link", asChild: true, children: jsxRuntime.jsx("a", { children: t("CheckoutEmbed.Summary.edit") }) })] }), jsxRuntime.jsx("hr", {}), jsxRuntime.jsxs("div", { className: "hidden gap-2 md:grid", children: [jsxRuntime.jsxs("div", { className: "flex justify-between", children: [jsxRuntime.jsx("p", { children: t("CheckoutEmbed.Summary.subtotal") }), jsxRuntime.jsx(Skeleton, { className: "h-[18px] w-20" })] }), jsxRuntime.jsxs("div", { className: "flex justify-between", children: [jsxRuntime.jsx("p", { children: t("CheckoutEmbed.Summary.shipping") }), jsxRuntime.jsx(Skeleton, { className: "h-[18px] w-20" })] }), jsxRuntime.jsxs("div", { className: "flex items-center justify-between font-bold", children: [jsxRuntime.jsx("p", { children: t("CheckoutEmbed.Summary.total") }), jsxRuntime.jsx(Skeleton, { className: "h-[18px] w-24" })] })] }), jsxRuntime.jsx("hr", { className: "hidden md:block" }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx(Skeleton, { className: "mb-2 h-5 w-24" }), jsxRuntime.jsx(Skeleton, { className: "mb-1 h-10 w-full" })] }), jsxRuntime.jsx("hr", { className: "hidden md:block" }), Array.from({ length: 2 }).map((_, index) => (jsxRuntime.jsxs("div", { className: "hidden items-center md:flex", children: [jsxRuntime.jsx(Skeleton, { className: "size-16 rounded-lg" }), jsxRuntime.jsxs("div", { className: "ml-4 grid flex-1 gap-2", children: [jsxRuntime.jsx(Skeleton, { className: "h-5 w-28" }), jsxRuntime.jsx(Skeleton, { className: "h-3.5 w-20" })] }), jsxRuntime.jsx("div", { className: "text-right", children: jsxRuntime.jsx(Skeleton, { className: "h-5 w-20" }) })] }, index)))] }));
35739
35535
  }
35740
35536
 
35741
35537
  function CheckoutEmbedComponent({ checkoutId, config }) {
@@ -35743,7 +35539,7 @@ function CheckoutEmbedComponent({ checkoutId, config }) {
35743
35539
  const { cancelUrl, successUrl, appearance, locale, clientSecret, clientProxy, } = config;
35744
35540
  const storeClient = React.useMemo(() => createStoreClient({ proxy: clientProxy }), [clientProxy]);
35745
35541
  const iframeRef = React.useRef(null);
35746
- React.useMemo(() => createI18nInstance(locale), []);
35542
+ React.useMemo(() => createI18nInstance(locale), [locale]);
35747
35543
  const { formData, step } = useFormStore();
35748
35544
  const paymentSecretPromiseRef = React.useRef(null);
35749
35545
  const [paymentSecret, setPaymentSecret] = React.useState(null);
@@ -35775,6 +35571,7 @@ function CheckoutEmbedComponent({ checkoutId, config }) {
35775
35571
  return () => {
35776
35572
  mounted = false; // Cleanup
35777
35573
  };
35574
+ // eslint-disable-next-line react-hooks/exhaustive-deps
35778
35575
  }, [checkoutId]); // Only re-run if checkoutId changes
35779
35576
  const onSuccess = () => {
35780
35577
  resetFormStore(formData);
@@ -35816,6 +35613,7 @@ function CheckoutEmbedComponent({ checkoutId, config }) {
35816
35613
  paymentSecretPromiseRef.current = null;
35817
35614
  });
35818
35615
  }
35616
+ // eslint-disable-next-line react-hooks/exhaustive-deps
35819
35617
  }, [paymentSecret, step]);
35820
35618
  const applyDiscountCode = (code) => __awaiter(this, void 0, void 0, function* () {
35821
35619
  console.log("[Payment Debug] Applying discount code:", code);
@@ -35914,14 +35712,9 @@ function CheckoutEmbedComponent({ checkoutId, config }) {
35914
35712
  console.log("[Payment Debug] Clearing revalidation interval");
35915
35713
  clearInterval(interval);
35916
35714
  };
35715
+ // eslint-disable-next-line react-hooks/exhaustive-deps
35917
35716
  }, []);
35918
- return (React.createElement(IframeWrapper, { iframeRef: iframeRef },
35919
- React.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 " },
35920
- React.createElement(Appearance, { appearance: appearance, fonts: config.fonts, iframeRef: iframeRef }),
35921
- React.createElement("div", { className: "md:col-span-4 px-4 h-max md:px-8" }, loading ? (React.createElement(CheckoutFormLoading, null)) : (React.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 }))),
35922
- React.createElement("div", { className: "md:col-span-3 px-4 md:px-8 h-max order-first md:order-last" },
35923
- React.createElement(Toaster, null),
35924
- loading ? (React.createElement(CheckoutSummaryLoading, null)) : (React.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 }))))));
35717
+ return (jsxRuntime.jsx(IframeWrapper, { iframeRef: iframeRef, children: jsxRuntime.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: [jsxRuntime.jsx(Appearance, { appearance: appearance, fonts: config.fonts, iframeRef: iframeRef }), jsxRuntime.jsx("div", { className: "h-max px-4 md:col-span-4 md:px-8", children: loading ? (jsxRuntime.jsx(CheckoutFormLoading, {})) : (jsxRuntime.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 })) }), jsxRuntime.jsxs("div", { className: "order-first h-max px-4 md:order-last md:col-span-3 md:px-8", children: [jsxRuntime.jsx(Toaster, {}), loading ? (jsxRuntime.jsx(CheckoutSummaryLoading, {})) : (jsxRuntime.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 }))] })] }) }));
35925
35718
  }
35926
35719
  const CheckoutEmbed = React.memo(CheckoutEmbedComponent);
35927
35720