@betterstore/react 0.3.84 → 0.3.86

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @betterstore/sdk
2
2
 
3
+ ## 0.3.86
4
+
5
+ ### Patch Changes
6
+
7
+ - text for cz locale fixes
8
+
9
+ ## 0.3.85
10
+
11
+ ### Patch Changes
12
+
13
+ - bug fixes
14
+
3
15
  ## 0.3.84
4
16
 
5
17
  ### Patch Changes
package/dist/index.cjs.js CHANGED
@@ -2078,7 +2078,7 @@ const transformOptions = options => {
2078
2078
  return options;
2079
2079
  };
2080
2080
 
2081
- const noop$1 = () => {};
2081
+ const noop$2 = () => {};
2082
2082
  const bindMemberFunctions = inst => {
2083
2083
  const mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));
2084
2084
  mems.forEach(mem => {
@@ -2204,7 +2204,7 @@ class I18n extends EventEmitter {
2204
2204
  });
2205
2205
  }
2206
2206
  this.format = this.options.interpolation.format;
2207
- if (!callback) callback = noop$1;
2207
+ if (!callback) callback = noop$2;
2208
2208
  if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {
2209
2209
  const codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);
2210
2210
  if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];
@@ -2247,7 +2247,7 @@ class I18n extends EventEmitter {
2247
2247
  return deferred;
2248
2248
  }
2249
2249
  loadResources(language) {
2250
- let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop$1;
2250
+ let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop$2;
2251
2251
  let usedCallback = callback;
2252
2252
  const usedLng = isString$3(language) ? language : this.language;
2253
2253
  if (typeof language === 'function') usedCallback = language;
@@ -2290,7 +2290,7 @@ class I18n extends EventEmitter {
2290
2290
  }
2291
2291
  if (!lngs) lngs = this.languages;
2292
2292
  if (!ns) ns = this.options.ns;
2293
- if (!callback) callback = noop$1;
2293
+ if (!callback) callback = noop$2;
2294
2294
  this.services.backendConnector.reload(lngs, ns, err => {
2295
2295
  deferred.resolve();
2296
2296
  callback(err);
@@ -2514,7 +2514,7 @@ class I18n extends EventEmitter {
2514
2514
  }
2515
2515
  cloneInstance() {
2516
2516
  let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2517
- let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop$1;
2517
+ let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop$2;
2518
2518
  const forkResourceStore = options.forkResourceStore;
2519
2519
  if (forkResourceStore) delete options.forkResourceStore;
2520
2520
  const mergedOptions = {
@@ -3239,20 +3239,20 @@ const CheckoutEmbed$2 = {
3239
3239
  CustomerForm: {
3240
3240
  address: {
3241
3241
  address: "Adresa",
3242
- addressPlaceholder: "Zadejte svou adresu",
3242
+ addressPlaceholder: "Zadejte Vaši adresu",
3243
3243
  button: "Uložit adresu",
3244
3244
  city: "Město",
3245
3245
  cityPlaceholder: "Zadejte město",
3246
3246
  country: "Země",
3247
3247
  countryPlaceholder: "Zadejte svou zemi",
3248
- description: "Níže vyplňte údaje o vaší adrese.",
3249
- line1: "Adresa ulice",
3248
+ description: "Níže vyplňte údaje o Vaší adrese.",
3249
+ line1: "Ulice",
3250
3250
  line1Placeholder: "Zadejte ulici a číslo",
3251
3251
  line2: "Byt, apartmá, jednotka atd. (Volitelné)",
3252
3252
  line2Placeholder: "Byt 4B, Pokoj 123, atd.",
3253
3253
  state: "Stát (volitelné)",
3254
3254
  statePlaceholder: "Kalifornie",
3255
- title: "Zadejte svou adresu",
3255
+ title: "Zadejte Vaši adresu",
3256
3256
  zipCode: "PSČ",
3257
3257
  zipCodePlaceholder: "12345"
3258
3258
  },
@@ -3265,7 +3265,7 @@ const CheckoutEmbed$2 = {
3265
3265
  lastNamePlaceholder: "Zadejte své příjmení",
3266
3266
  phone: "Telefon",
3267
3267
  phonePlaceholder: "Zadejte své telefonní číslo",
3268
- title: "Údaje o doručení"
3268
+ title: "Kontaktní údaje"
3269
3269
  },
3270
3270
  Summary: {
3271
3271
  calculatedAtNextStep: "Vypočítáno v dalším kroku",
@@ -3284,14 +3284,15 @@ const CheckoutEmbed$2 = {
3284
3284
  },
3285
3285
  loading: "Načítání ...",
3286
3286
  Payment: {
3287
- back: "Zpět na doručení",
3288
- button: "Koupit hned teď",
3289
- description: "Všechny transakce jsou bezpečné a šifrovány.",
3287
+ back: "Zpět na výběr dopravy",
3288
+ button: "Dokončit objednávku",
3289
+ description: "Všechny transakce jsou zabezpečené a šifrované.",
3290
3290
  title: "Platba"
3291
3291
  },
3292
3292
  Shipping: {
3293
+ title: "Doprava",
3293
3294
  back: "Zpět k informacím",
3294
- button: "Pokračujte v pokladně",
3295
+ button: "Pokračovat",
3295
3296
  change: "Změnit",
3296
3297
  contact: "Kontakt:",
3297
3298
  day: "den",
@@ -3299,19 +3300,18 @@ const CheckoutEmbed$2 = {
3299
3300
  estimatedDeliveryDate: "Odhadované datum dodání:",
3300
3301
  address: "Adresa:",
3301
3302
  shipping: "Doprava:",
3302
- title: "Přeprava",
3303
3303
  description: {
3304
3304
  other: "Váš balíček bude doručen kurýrem.",
3305
- zasilkovna: "Váš balíček bude doručen do bodu vyzvednutí.",
3306
- shippedTo: "Doručeno do:"
3305
+ zasilkovna: "Vaše objednávka bude doručena na výdejní místo.",
3306
+ shippedTo: "Místo doručení:"
3307
3307
  }
3308
3308
  }
3309
3309
  };
3310
3310
  const Errors$1 = {
3311
- invalid_email: "Zadejte platnou e -mailovou adresu",
3311
+ invalid_email: "Zadejte platnou e-mailovou adresu",
3312
3312
  invalid_phone: "Zadejte platné telefonní číslo",
3313
3313
  invalid_zipCode: "Zadejte platný PSČ",
3314
- required_error: "Toto pole je nutné",
3314
+ required_error: "Toto pole je povinné",
3315
3315
  unknown_error: "Došlo k neznámé chybě",
3316
3316
  invalid_address: "Zadejte platnou adresu"
3317
3317
  };
@@ -4023,7 +4023,7 @@ const toObjectSet = (arrayOrString, delimiter) => {
4023
4023
  return obj;
4024
4024
  };
4025
4025
 
4026
- const noop = () => {};
4026
+ const noop$1 = () => {};
4027
4027
 
4028
4028
  const toFiniteNumber = (value, defaultValue) => {
4029
4029
  return value != null && Number.isFinite(value = +value) ? value : defaultValue;
@@ -4155,7 +4155,7 @@ var utils$1 = {
4155
4155
  freezeMethods,
4156
4156
  toObjectSet,
4157
4157
  toCamelCase,
4158
- noop,
4158
+ noop: noop$1,
4159
4159
  toFiniteNumber,
4160
4160
  findKey,
4161
4161
  global: _global,
@@ -7172,7 +7172,7 @@ var __async = (__this, __arguments, generator) => {
7172
7172
  });
7173
7173
  };
7174
7174
  var API_BASE_URL = "https://api.betterstore.io/v1";
7175
- var createApiClient = (apiKey, proxy, returnError) => {
7175
+ var createApiClient = (apiKey, proxy) => {
7176
7176
  const client = axios.create({
7177
7177
  baseURL: proxy != null ? proxy : API_BASE_URL,
7178
7178
  headers: {
@@ -7188,6 +7188,7 @@ var createApiClient = (apiKey, proxy, returnError) => {
7188
7188
  (error) => {
7189
7189
  var _a, _b;
7190
7190
  const apiError = {
7191
+ isError: true,
7191
7192
  status: 500,
7192
7193
  message: "An unexpected error occurred"
7193
7194
  };
@@ -7207,7 +7208,11 @@ var createApiClient = (apiKey, proxy, returnError) => {
7207
7208
  apiError.code = "REQUEST_SETUP_ERROR";
7208
7209
  apiError.details = error;
7209
7210
  }
7210
- throw apiError;
7211
+ console.error(apiError);
7212
+ if (apiError.code === "REQUEST_SETUP_ERROR" || apiError.code === "SERVICE_UNAVAILABLE") {
7213
+ throw apiError;
7214
+ }
7215
+ return apiError;
7211
7216
  }
7212
7217
  );
7213
7218
  return client;
@@ -7227,6 +7232,10 @@ var Client = class {
7227
7232
  const data = yield apiClient.get(
7228
7233
  `/checkout/${checkoutId}`
7229
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
+ }
7230
7239
  return data;
7231
7240
  });
7232
7241
  }
@@ -7240,6 +7249,10 @@ var Client = class {
7240
7249
  `/checkout/${checkoutId}`,
7241
7250
  params
7242
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
+ }
7243
7256
  return data;
7244
7257
  });
7245
7258
  }
@@ -7253,6 +7266,9 @@ var Client = class {
7253
7266
  `/checkout/${checkoutId}/discounts/apply`,
7254
7267
  { code: discountCode }
7255
7268
  );
7269
+ if ("isError" in data && data.isError || !data || !("id" in data)) {
7270
+ throw new Error("Failed to apply discount code");
7271
+ }
7256
7272
  return data;
7257
7273
  });
7258
7274
  }
@@ -7265,6 +7281,9 @@ var Client = class {
7265
7281
  const data = yield apiClient.delete(
7266
7282
  `/checkout/${checkoutId}/discounts/${discountId}`
7267
7283
  );
7284
+ if ("isError" in data && data.isError || !data || !("id" in data)) {
7285
+ throw new Error("Failed to remove discount code");
7286
+ }
7268
7287
  return data;
7269
7288
  });
7270
7289
  }
@@ -7277,6 +7296,10 @@ var Client = class {
7277
7296
  const data = yield apiClient.get(
7278
7297
  `/checkout/${checkoutId}/discounts/revalidate`
7279
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
+ }
7280
7303
  return data;
7281
7304
  });
7282
7305
  }
@@ -7289,6 +7312,9 @@ var Client = class {
7289
7312
  const data = yield apiClient.get(
7290
7313
  `/checkout/shipping/${checkoutId}`
7291
7314
  );
7315
+ if ("isError" in data && data.isError || !data || !Array.isArray(data)) {
7316
+ return [];
7317
+ }
7292
7318
  return data;
7293
7319
  });
7294
7320
  }
@@ -7299,6 +7325,9 @@ var Client = class {
7299
7325
  return __async(this, null, function* () {
7300
7326
  const apiClient = createApiClient(clientSecret, this.proxy);
7301
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
+ }
7302
7331
  return {
7303
7332
  paymentSecret: data.paymentSecret,
7304
7333
  publicKey: data.publicKey,
@@ -7312,7 +7341,13 @@ var Client = class {
7312
7341
  createCustomer(clientSecret, params) {
7313
7342
  return __async(this, null, function* () {
7314
7343
  const apiClient = createApiClient(clientSecret, this.proxy);
7315
- const data = yield apiClient.post("/customer", params);
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
+ }
7316
7351
  return data;
7317
7352
  });
7318
7353
  }
@@ -7322,9 +7357,12 @@ var Client = class {
7322
7357
  retrieveCustomer(clientSecret, idOrEmail) {
7323
7358
  return __async(this, null, function* () {
7324
7359
  const apiClient = createApiClient(clientSecret, this.proxy);
7325
- const data = yield apiClient.get(`/customer/${idOrEmail}`);
7326
- if (!data) {
7327
- throw new Error("Customer not found");
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;
7328
7366
  }
7329
7367
  return data;
7330
7368
  });
@@ -7339,6 +7377,10 @@ var Client = class {
7339
7377
  `/customer/${customerId}`,
7340
7378
  params
7341
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
+ }
7342
7384
  return data;
7343
7385
  });
7344
7386
  }
@@ -7931,7 +7973,7 @@ const toast = Object.assign(basicToast, {
7931
7973
  getToasts
7932
7974
  });
7933
7975
 
7934
- __insertCSS("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}[data-sonner-toaster][data-lifted=true]{transform:translateY(-8px)}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");
7976
+ __insertCSS("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");
7935
7977
 
7936
7978
  function isAction(action) {
7937
7979
  return action.label !== undefined;
@@ -8058,6 +8100,7 @@ const Toast = (props)=>{
8058
8100
  toast.id
8059
8101
  ]);
8060
8102
  React.useLayoutEffect(()=>{
8103
+ // Keep height up to date with the content in case it updates
8061
8104
  if (!mounted) return;
8062
8105
  const toastNode = toastRef.current;
8063
8106
  const originalHeight = toastNode.style.height;
@@ -8088,7 +8131,10 @@ const Toast = (props)=>{
8088
8131
  toast.title,
8089
8132
  toast.description,
8090
8133
  setHeights,
8091
- toast.id
8134
+ toast.id,
8135
+ toast.jsx,
8136
+ toast.action,
8137
+ toast.cancel
8092
8138
  ]);
8093
8139
  const deleteToast = React.useCallback(()=>{
8094
8140
  // Save the offset for the exit swipe animation
@@ -8145,6 +8191,7 @@ const Toast = (props)=>{
8145
8191
  React.useEffect(()=>{
8146
8192
  if (toast.delete) {
8147
8193
  deleteToast();
8194
+ toast.onDismiss == null ? void 0 : toast.onDismiss.call(toast, toast);
8148
8195
  }
8149
8196
  }, [
8150
8197
  deleteToast,
@@ -8571,7 +8618,6 @@ const Toaster$1 = /*#__PURE__*/ React.forwardRef(function Toaster(props, ref) {
8571
8618
  "data-sonner-toaster": true,
8572
8619
  "data-sonner-theme": actualTheme,
8573
8620
  "data-y-position": y,
8574
- "data-lifted": expanded && toasts.length > 1 && !expand,
8575
8621
  "data-x-position": x,
8576
8622
  style: {
8577
8623
  '--front-toast-height': `${((_heights_ = heights[0]) == null ? void 0 : _heights_.height) || 0}px`,
@@ -13090,7 +13136,7 @@ function useFormState(props) {
13090
13136
  errors: false,
13091
13137
  });
13092
13138
  useIsomorphicLayoutEffect$1(() => control._subscribe({
13093
- name: name,
13139
+ name,
13094
13140
  formState: _localProxyFormState.current,
13095
13141
  exact,
13096
13142
  callback: (formState) => {
@@ -13143,7 +13189,7 @@ function useWatch(props) {
13143
13189
  const _defaultValue = React.useRef(defaultValue);
13144
13190
  const [value, updateValue] = React.useState(control._getWatch(name, _defaultValue.current));
13145
13191
  useIsomorphicLayoutEffect$1(() => control._subscribe({
13146
- name: name,
13192
+ name,
13147
13193
  formState: {
13148
13194
  values: true,
13149
13195
  },
@@ -13240,8 +13286,8 @@ function useController(props) {
13240
13286
  const field = get(control._fields, name);
13241
13287
  if (field && elm) {
13242
13288
  field._f.ref = {
13243
- focus: () => elm.focus(),
13244
- select: () => elm.select(),
13289
+ focus: () => elm.focus && elm.focus(),
13290
+ select: () => elm.select && elm.select(),
13245
13291
  setCustomValidity: (message) => elm.setCustomValidity(message),
13246
13292
  reportValidity: () => elm.reportValidity(),
13247
13293
  };
@@ -13703,6 +13749,12 @@ function schemaErrorLookup(errors, _fields, name) {
13703
13749
  error: foundError,
13704
13750
  };
13705
13751
  }
13752
+ if (foundError && foundError.root && foundError.root.type) {
13753
+ return {
13754
+ name: `${fieldName}.root`,
13755
+ error: foundError.root,
13756
+ };
13757
+ }
13706
13758
  names.pop();
13707
13759
  }
13708
13760
  return {
@@ -14326,7 +14378,7 @@ function createFormControl(props = {}) {
14326
14378
  return;
14327
14379
  }
14328
14380
  const fieldValue = value[fieldKey];
14329
- const fieldName = `${name}.${fieldKey}`;
14381
+ const fieldName = name + '.' + fieldKey;
14330
14382
  const field = get(_fields, fieldName);
14331
14383
  (_names.array.has(name) ||
14332
14384
  isObject(fieldValue) ||
@@ -14925,6 +14977,7 @@ function createFormControl(props = {}) {
14925
14977
  setError,
14926
14978
  _subscribe,
14927
14979
  _runSchema,
14980
+ _focusError,
14928
14981
  _getWatch,
14929
14982
  _getDirty,
14930
14983
  _setValid,
@@ -15078,10 +15131,13 @@ function useForm(props = {}) {
15078
15131
  if (props.reValidateMode) {
15079
15132
  control._options.reValidateMode = props.reValidateMode;
15080
15133
  }
15081
- if (props.errors && !isEmptyObject(props.errors)) {
15134
+ }, [control, props.mode, props.reValidateMode]);
15135
+ React.useEffect(() => {
15136
+ if (props.errors) {
15082
15137
  control._setErrors(props.errors);
15138
+ control._focusError();
15083
15139
  }
15084
- }, [control, props.errors, props.mode, props.reValidateMode]);
15140
+ }, [control, props.errors]);
15085
15141
  React.useEffect(() => {
15086
15142
  props.shouldUnregister &&
15087
15143
  control._subjects.state.next({
@@ -21514,6 +21570,9 @@ var handleScroll = function (axis, endTarget, event, sourceDelta, noOverscroll)
21514
21570
  var availableScroll = 0;
21515
21571
  var availableScrollTop = 0;
21516
21572
  do {
21573
+ if (!target) {
21574
+ break;
21575
+ }
21517
21576
  var _a = getScrollVariables(axis, target), position = _a[0], scroll_1 = _a[1], capacity = _a[2];
21518
21577
  var elementScroll = scroll_1 - capacity - directionFactor * position;
21519
21578
  if (position || elementScroll) {
@@ -21522,9 +21581,10 @@ var handleScroll = function (axis, endTarget, event, sourceDelta, noOverscroll)
21522
21581
  availableScrollTop += position;
21523
21582
  }
21524
21583
  }
21584
+ var parent_1 = target.parentNode;
21525
21585
  // we will "bubble" from ShadowDom in case we are, or just to the parent in normal case
21526
21586
  // this is the same logic used in focus-lock
21527
- target = (target.parentNode.host || target.parentNode);
21587
+ target = (parent_1 && parent_1.nodeType === Node.DOCUMENT_FRAGMENT_NODE ? parent_1.host : parent_1);
21528
21588
  } while (
21529
21589
  // portaled content
21530
21590
  (!targetInLock && target !== document.body) ||
@@ -22572,10 +22632,11 @@ const flip$2 = function (options) {
22572
22632
  const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;
22573
22633
  const nextPlacement = placements[nextIndex];
22574
22634
  if (nextPlacement) {
22575
- var _overflowsData$;
22576
22635
  const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== getSideAxis(nextPlacement) : false;
22577
- const hasInitialMainAxisOverflow = ((_overflowsData$ = overflowsData[0]) == null ? void 0 : _overflowsData$.overflows[0]) > 0;
22578
- if (!ignoreCrossAxisOverflow || hasInitialMainAxisOverflow) {
22636
+ if (!ignoreCrossAxisOverflow ||
22637
+ // We leave the current main axis only if every placement on that axis
22638
+ // overflows the main axis.
22639
+ overflowsData.every(d => d.overflows[0] > 0 && getSideAxis(d.placement) === initialSideAxis)) {
22579
22640
  // Try next placement and re-run the lifecycle.
22580
22641
  return {
22581
22642
  data: {
@@ -23896,7 +23957,10 @@ const computePosition = (reference, floating, options) => {
23896
23957
  });
23897
23958
  };
23898
23959
 
23899
- var index = typeof document !== 'undefined' ? React.useLayoutEffect : React.useEffect;
23960
+ var isClient = typeof document !== 'undefined';
23961
+
23962
+ var noop = function noop() {};
23963
+ var index = isClient ? React.useLayoutEffect : noop;
23900
23964
 
23901
23965
  // Fork of `fast-deep-equal` that only does the comparisons we need and compares
23902
23966
  // functions
@@ -35613,7 +35677,7 @@ function CheckoutSummary({ appliedDiscounts, lineItems, shipping, tax, currency,
35613
35677
  .join(", "))),
35614
35678
  React.createElement("div", { className: "text-right" }, isDiscounted ? (React.createElement("div", { className: "flex flex-col" },
35615
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)),
35616
- React.createElement("p", { className: "text-lg font-medium" }, discountedPrice <= 0
35680
+ React.createElement("p", { className: "text-base font-medium" }, discountedPrice <= 0
35617
35681
  ? t("CheckoutEmbed.Summary.free")
35618
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))))));
35619
35683
  }))));
package/dist/index.mjs CHANGED
@@ -2058,7 +2058,7 @@ const transformOptions = options => {
2058
2058
  return options;
2059
2059
  };
2060
2060
 
2061
- const noop$1 = () => {};
2061
+ const noop$2 = () => {};
2062
2062
  const bindMemberFunctions = inst => {
2063
2063
  const mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));
2064
2064
  mems.forEach(mem => {
@@ -2184,7 +2184,7 @@ class I18n extends EventEmitter {
2184
2184
  });
2185
2185
  }
2186
2186
  this.format = this.options.interpolation.format;
2187
- if (!callback) callback = noop$1;
2187
+ if (!callback) callback = noop$2;
2188
2188
  if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {
2189
2189
  const codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);
2190
2190
  if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];
@@ -2227,7 +2227,7 @@ class I18n extends EventEmitter {
2227
2227
  return deferred;
2228
2228
  }
2229
2229
  loadResources(language) {
2230
- let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop$1;
2230
+ let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop$2;
2231
2231
  let usedCallback = callback;
2232
2232
  const usedLng = isString$3(language) ? language : this.language;
2233
2233
  if (typeof language === 'function') usedCallback = language;
@@ -2270,7 +2270,7 @@ class I18n extends EventEmitter {
2270
2270
  }
2271
2271
  if (!lngs) lngs = this.languages;
2272
2272
  if (!ns) ns = this.options.ns;
2273
- if (!callback) callback = noop$1;
2273
+ if (!callback) callback = noop$2;
2274
2274
  this.services.backendConnector.reload(lngs, ns, err => {
2275
2275
  deferred.resolve();
2276
2276
  callback(err);
@@ -2494,7 +2494,7 @@ class I18n extends EventEmitter {
2494
2494
  }
2495
2495
  cloneInstance() {
2496
2496
  let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2497
- let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop$1;
2497
+ let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop$2;
2498
2498
  const forkResourceStore = options.forkResourceStore;
2499
2499
  if (forkResourceStore) delete options.forkResourceStore;
2500
2500
  const mergedOptions = {
@@ -3219,20 +3219,20 @@ const CheckoutEmbed$2 = {
3219
3219
  CustomerForm: {
3220
3220
  address: {
3221
3221
  address: "Adresa",
3222
- addressPlaceholder: "Zadejte svou adresu",
3222
+ addressPlaceholder: "Zadejte Vaši adresu",
3223
3223
  button: "Uložit adresu",
3224
3224
  city: "Město",
3225
3225
  cityPlaceholder: "Zadejte město",
3226
3226
  country: "Země",
3227
3227
  countryPlaceholder: "Zadejte svou zemi",
3228
- description: "Níže vyplňte údaje o vaší adrese.",
3229
- line1: "Adresa ulice",
3228
+ description: "Níže vyplňte údaje o Vaší adrese.",
3229
+ line1: "Ulice",
3230
3230
  line1Placeholder: "Zadejte ulici a číslo",
3231
3231
  line2: "Byt, apartmá, jednotka atd. (Volitelné)",
3232
3232
  line2Placeholder: "Byt 4B, Pokoj 123, atd.",
3233
3233
  state: "Stát (volitelné)",
3234
3234
  statePlaceholder: "Kalifornie",
3235
- title: "Zadejte svou adresu",
3235
+ title: "Zadejte Vaši adresu",
3236
3236
  zipCode: "PSČ",
3237
3237
  zipCodePlaceholder: "12345"
3238
3238
  },
@@ -3245,7 +3245,7 @@ const CheckoutEmbed$2 = {
3245
3245
  lastNamePlaceholder: "Zadejte své příjmení",
3246
3246
  phone: "Telefon",
3247
3247
  phonePlaceholder: "Zadejte své telefonní číslo",
3248
- title: "Údaje o doručení"
3248
+ title: "Kontaktní údaje"
3249
3249
  },
3250
3250
  Summary: {
3251
3251
  calculatedAtNextStep: "Vypočítáno v dalším kroku",
@@ -3264,14 +3264,15 @@ const CheckoutEmbed$2 = {
3264
3264
  },
3265
3265
  loading: "Načítání ...",
3266
3266
  Payment: {
3267
- back: "Zpět na doručení",
3268
- button: "Koupit hned teď",
3269
- description: "Všechny transakce jsou bezpečné a šifrovány.",
3267
+ back: "Zpět na výběr dopravy",
3268
+ button: "Dokončit objednávku",
3269
+ description: "Všechny transakce jsou zabezpečené a šifrované.",
3270
3270
  title: "Platba"
3271
3271
  },
3272
3272
  Shipping: {
3273
+ title: "Doprava",
3273
3274
  back: "Zpět k informacím",
3274
- button: "Pokračujte v pokladně",
3275
+ button: "Pokračovat",
3275
3276
  change: "Změnit",
3276
3277
  contact: "Kontakt:",
3277
3278
  day: "den",
@@ -3279,19 +3280,18 @@ const CheckoutEmbed$2 = {
3279
3280
  estimatedDeliveryDate: "Odhadované datum dodání:",
3280
3281
  address: "Adresa:",
3281
3282
  shipping: "Doprava:",
3282
- title: "Přeprava",
3283
3283
  description: {
3284
3284
  other: "Váš balíček bude doručen kurýrem.",
3285
- zasilkovna: "Váš balíček bude doručen do bodu vyzvednutí.",
3286
- shippedTo: "Doručeno do:"
3285
+ zasilkovna: "Vaše objednávka bude doručena na výdejní místo.",
3286
+ shippedTo: "Místo doručení:"
3287
3287
  }
3288
3288
  }
3289
3289
  };
3290
3290
  const Errors$1 = {
3291
- invalid_email: "Zadejte platnou e -mailovou adresu",
3291
+ invalid_email: "Zadejte platnou e-mailovou adresu",
3292
3292
  invalid_phone: "Zadejte platné telefonní číslo",
3293
3293
  invalid_zipCode: "Zadejte platný PSČ",
3294
- required_error: "Toto pole je nutné",
3294
+ required_error: "Toto pole je povinné",
3295
3295
  unknown_error: "Došlo k neznámé chybě",
3296
3296
  invalid_address: "Zadejte platnou adresu"
3297
3297
  };
@@ -4003,7 +4003,7 @@ const toObjectSet = (arrayOrString, delimiter) => {
4003
4003
  return obj;
4004
4004
  };
4005
4005
 
4006
- const noop = () => {};
4006
+ const noop$1 = () => {};
4007
4007
 
4008
4008
  const toFiniteNumber = (value, defaultValue) => {
4009
4009
  return value != null && Number.isFinite(value = +value) ? value : defaultValue;
@@ -4135,7 +4135,7 @@ var utils$1 = {
4135
4135
  freezeMethods,
4136
4136
  toObjectSet,
4137
4137
  toCamelCase,
4138
- noop,
4138
+ noop: noop$1,
4139
4139
  toFiniteNumber,
4140
4140
  findKey,
4141
4141
  global: _global,
@@ -7152,7 +7152,7 @@ var __async = (__this, __arguments, generator) => {
7152
7152
  });
7153
7153
  };
7154
7154
  var API_BASE_URL = "https://api.betterstore.io/v1";
7155
- var createApiClient = (apiKey, proxy, returnError) => {
7155
+ var createApiClient = (apiKey, proxy) => {
7156
7156
  const client = axios.create({
7157
7157
  baseURL: proxy != null ? proxy : API_BASE_URL,
7158
7158
  headers: {
@@ -7168,6 +7168,7 @@ var createApiClient = (apiKey, proxy, returnError) => {
7168
7168
  (error) => {
7169
7169
  var _a, _b;
7170
7170
  const apiError = {
7171
+ isError: true,
7171
7172
  status: 500,
7172
7173
  message: "An unexpected error occurred"
7173
7174
  };
@@ -7187,7 +7188,11 @@ var createApiClient = (apiKey, proxy, returnError) => {
7187
7188
  apiError.code = "REQUEST_SETUP_ERROR";
7188
7189
  apiError.details = error;
7189
7190
  }
7190
- throw apiError;
7191
+ console.error(apiError);
7192
+ if (apiError.code === "REQUEST_SETUP_ERROR" || apiError.code === "SERVICE_UNAVAILABLE") {
7193
+ throw apiError;
7194
+ }
7195
+ return apiError;
7191
7196
  }
7192
7197
  );
7193
7198
  return client;
@@ -7207,6 +7212,10 @@ var Client = class {
7207
7212
  const data = yield apiClient.get(
7208
7213
  `/checkout/${checkoutId}`
7209
7214
  );
7215
+ if ("isError" in data && data.isError || !data || !("id" in data)) {
7216
+ console.error(`Checkout session with id ${checkoutId} not found`);
7217
+ return null;
7218
+ }
7210
7219
  return data;
7211
7220
  });
7212
7221
  }
@@ -7220,6 +7229,10 @@ var Client = class {
7220
7229
  `/checkout/${checkoutId}`,
7221
7230
  params
7222
7231
  );
7232
+ if ("isError" in data && data.isError || !data || !("id" in data)) {
7233
+ console.error(`Checkout session with id ${checkoutId} not found`);
7234
+ return null;
7235
+ }
7223
7236
  return data;
7224
7237
  });
7225
7238
  }
@@ -7233,6 +7246,9 @@ var Client = class {
7233
7246
  `/checkout/${checkoutId}/discounts/apply`,
7234
7247
  { code: discountCode }
7235
7248
  );
7249
+ if ("isError" in data && data.isError || !data || !("id" in data)) {
7250
+ throw new Error("Failed to apply discount code");
7251
+ }
7236
7252
  return data;
7237
7253
  });
7238
7254
  }
@@ -7245,6 +7261,9 @@ var Client = class {
7245
7261
  const data = yield apiClient.delete(
7246
7262
  `/checkout/${checkoutId}/discounts/${discountId}`
7247
7263
  );
7264
+ if ("isError" in data && data.isError || !data || !("id" in data)) {
7265
+ throw new Error("Failed to remove discount code");
7266
+ }
7248
7267
  return data;
7249
7268
  });
7250
7269
  }
@@ -7257,6 +7276,10 @@ var Client = class {
7257
7276
  const data = yield apiClient.get(
7258
7277
  `/checkout/${checkoutId}/discounts/revalidate`
7259
7278
  );
7279
+ if ("isError" in data && data.isError || !data || !("id" in data)) {
7280
+ console.error(`Checkout session with id ${checkoutId} not found`);
7281
+ return null;
7282
+ }
7260
7283
  return data;
7261
7284
  });
7262
7285
  }
@@ -7269,6 +7292,9 @@ var Client = class {
7269
7292
  const data = yield apiClient.get(
7270
7293
  `/checkout/shipping/${checkoutId}`
7271
7294
  );
7295
+ if ("isError" in data && data.isError || !data || !Array.isArray(data)) {
7296
+ return [];
7297
+ }
7272
7298
  return data;
7273
7299
  });
7274
7300
  }
@@ -7279,6 +7305,9 @@ var Client = class {
7279
7305
  return __async(this, null, function* () {
7280
7306
  const apiClient = createApiClient(clientSecret, this.proxy);
7281
7307
  const data = yield apiClient.post(`/checkout/payment/${checkoutId}`);
7308
+ if ("isError" in data && data.isError || !data || !("paymentSecret" in data)) {
7309
+ throw new Error("Failed to generate payment secret");
7310
+ }
7282
7311
  return {
7283
7312
  paymentSecret: data.paymentSecret,
7284
7313
  publicKey: data.publicKey,
@@ -7292,7 +7321,13 @@ var Client = class {
7292
7321
  createCustomer(clientSecret, params) {
7293
7322
  return __async(this, null, function* () {
7294
7323
  const apiClient = createApiClient(clientSecret, this.proxy);
7295
- const data = yield apiClient.post("/customer", params);
7324
+ const data = yield apiClient.post(
7325
+ "/customer",
7326
+ params
7327
+ );
7328
+ if ("isError" in data && data.isError || !data || !("id" in data)) {
7329
+ throw new Error("Failed to create customer");
7330
+ }
7296
7331
  return data;
7297
7332
  });
7298
7333
  }
@@ -7302,9 +7337,12 @@ var Client = class {
7302
7337
  retrieveCustomer(clientSecret, idOrEmail) {
7303
7338
  return __async(this, null, function* () {
7304
7339
  const apiClient = createApiClient(clientSecret, this.proxy);
7305
- const data = yield apiClient.get(`/customer/${idOrEmail}`);
7306
- if (!data) {
7307
- throw new Error("Customer not found");
7340
+ const data = yield apiClient.get(
7341
+ `/customer/${idOrEmail}`
7342
+ );
7343
+ if ("isError" in data && data.isError || !data || !("id" in data)) {
7344
+ console.error(`Customer with id or email ${idOrEmail} not found`);
7345
+ return null;
7308
7346
  }
7309
7347
  return data;
7310
7348
  });
@@ -7319,6 +7357,10 @@ var Client = class {
7319
7357
  `/customer/${customerId}`,
7320
7358
  params
7321
7359
  );
7360
+ if ("isError" in data && data.isError || !data || !("id" in data)) {
7361
+ console.error(`Customer with id ${customerId} not found`);
7362
+ return null;
7363
+ }
7322
7364
  return data;
7323
7365
  });
7324
7366
  }
@@ -7911,7 +7953,7 @@ const toast = Object.assign(basicToast, {
7911
7953
  getToasts
7912
7954
  });
7913
7955
 
7914
- __insertCSS("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}[data-sonner-toaster][data-lifted=true]{transform:translateY(-8px)}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");
7956
+ __insertCSS("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");
7915
7957
 
7916
7958
  function isAction(action) {
7917
7959
  return action.label !== undefined;
@@ -8038,6 +8080,7 @@ const Toast = (props)=>{
8038
8080
  toast.id
8039
8081
  ]);
8040
8082
  React__default.useLayoutEffect(()=>{
8083
+ // Keep height up to date with the content in case it updates
8041
8084
  if (!mounted) return;
8042
8085
  const toastNode = toastRef.current;
8043
8086
  const originalHeight = toastNode.style.height;
@@ -8068,7 +8111,10 @@ const Toast = (props)=>{
8068
8111
  toast.title,
8069
8112
  toast.description,
8070
8113
  setHeights,
8071
- toast.id
8114
+ toast.id,
8115
+ toast.jsx,
8116
+ toast.action,
8117
+ toast.cancel
8072
8118
  ]);
8073
8119
  const deleteToast = React__default.useCallback(()=>{
8074
8120
  // Save the offset for the exit swipe animation
@@ -8125,6 +8171,7 @@ const Toast = (props)=>{
8125
8171
  React__default.useEffect(()=>{
8126
8172
  if (toast.delete) {
8127
8173
  deleteToast();
8174
+ toast.onDismiss == null ? void 0 : toast.onDismiss.call(toast, toast);
8128
8175
  }
8129
8176
  }, [
8130
8177
  deleteToast,
@@ -8551,7 +8598,6 @@ const Toaster$1 = /*#__PURE__*/ React__default.forwardRef(function Toaster(props
8551
8598
  "data-sonner-toaster": true,
8552
8599
  "data-sonner-theme": actualTheme,
8553
8600
  "data-y-position": y,
8554
- "data-lifted": expanded && toasts.length > 1 && !expand,
8555
8601
  "data-x-position": x,
8556
8602
  style: {
8557
8603
  '--front-toast-height': `${((_heights_ = heights[0]) == null ? void 0 : _heights_.height) || 0}px`,
@@ -13070,7 +13116,7 @@ function useFormState(props) {
13070
13116
  errors: false,
13071
13117
  });
13072
13118
  useIsomorphicLayoutEffect$1(() => control._subscribe({
13073
- name: name,
13119
+ name,
13074
13120
  formState: _localProxyFormState.current,
13075
13121
  exact,
13076
13122
  callback: (formState) => {
@@ -13123,7 +13169,7 @@ function useWatch(props) {
13123
13169
  const _defaultValue = React__default.useRef(defaultValue);
13124
13170
  const [value, updateValue] = React__default.useState(control._getWatch(name, _defaultValue.current));
13125
13171
  useIsomorphicLayoutEffect$1(() => control._subscribe({
13126
- name: name,
13172
+ name,
13127
13173
  formState: {
13128
13174
  values: true,
13129
13175
  },
@@ -13220,8 +13266,8 @@ function useController(props) {
13220
13266
  const field = get(control._fields, name);
13221
13267
  if (field && elm) {
13222
13268
  field._f.ref = {
13223
- focus: () => elm.focus(),
13224
- select: () => elm.select(),
13269
+ focus: () => elm.focus && elm.focus(),
13270
+ select: () => elm.select && elm.select(),
13225
13271
  setCustomValidity: (message) => elm.setCustomValidity(message),
13226
13272
  reportValidity: () => elm.reportValidity(),
13227
13273
  };
@@ -13683,6 +13729,12 @@ function schemaErrorLookup(errors, _fields, name) {
13683
13729
  error: foundError,
13684
13730
  };
13685
13731
  }
13732
+ if (foundError && foundError.root && foundError.root.type) {
13733
+ return {
13734
+ name: `${fieldName}.root`,
13735
+ error: foundError.root,
13736
+ };
13737
+ }
13686
13738
  names.pop();
13687
13739
  }
13688
13740
  return {
@@ -14306,7 +14358,7 @@ function createFormControl(props = {}) {
14306
14358
  return;
14307
14359
  }
14308
14360
  const fieldValue = value[fieldKey];
14309
- const fieldName = `${name}.${fieldKey}`;
14361
+ const fieldName = name + '.' + fieldKey;
14310
14362
  const field = get(_fields, fieldName);
14311
14363
  (_names.array.has(name) ||
14312
14364
  isObject(fieldValue) ||
@@ -14905,6 +14957,7 @@ function createFormControl(props = {}) {
14905
14957
  setError,
14906
14958
  _subscribe,
14907
14959
  _runSchema,
14960
+ _focusError,
14908
14961
  _getWatch,
14909
14962
  _getDirty,
14910
14963
  _setValid,
@@ -15058,10 +15111,13 @@ function useForm(props = {}) {
15058
15111
  if (props.reValidateMode) {
15059
15112
  control._options.reValidateMode = props.reValidateMode;
15060
15113
  }
15061
- if (props.errors && !isEmptyObject(props.errors)) {
15114
+ }, [control, props.mode, props.reValidateMode]);
15115
+ React__default.useEffect(() => {
15116
+ if (props.errors) {
15062
15117
  control._setErrors(props.errors);
15118
+ control._focusError();
15063
15119
  }
15064
- }, [control, props.errors, props.mode, props.reValidateMode]);
15120
+ }, [control, props.errors]);
15065
15121
  React__default.useEffect(() => {
15066
15122
  props.shouldUnregister &&
15067
15123
  control._subjects.state.next({
@@ -21494,6 +21550,9 @@ var handleScroll = function (axis, endTarget, event, sourceDelta, noOverscroll)
21494
21550
  var availableScroll = 0;
21495
21551
  var availableScrollTop = 0;
21496
21552
  do {
21553
+ if (!target) {
21554
+ break;
21555
+ }
21497
21556
  var _a = getScrollVariables(axis, target), position = _a[0], scroll_1 = _a[1], capacity = _a[2];
21498
21557
  var elementScroll = scroll_1 - capacity - directionFactor * position;
21499
21558
  if (position || elementScroll) {
@@ -21502,9 +21561,10 @@ var handleScroll = function (axis, endTarget, event, sourceDelta, noOverscroll)
21502
21561
  availableScrollTop += position;
21503
21562
  }
21504
21563
  }
21564
+ var parent_1 = target.parentNode;
21505
21565
  // we will "bubble" from ShadowDom in case we are, or just to the parent in normal case
21506
21566
  // this is the same logic used in focus-lock
21507
- target = (target.parentNode.host || target.parentNode);
21567
+ target = (parent_1 && parent_1.nodeType === Node.DOCUMENT_FRAGMENT_NODE ? parent_1.host : parent_1);
21508
21568
  } while (
21509
21569
  // portaled content
21510
21570
  (!targetInLock && target !== document.body) ||
@@ -22552,10 +22612,11 @@ const flip$2 = function (options) {
22552
22612
  const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;
22553
22613
  const nextPlacement = placements[nextIndex];
22554
22614
  if (nextPlacement) {
22555
- var _overflowsData$;
22556
22615
  const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== getSideAxis(nextPlacement) : false;
22557
- const hasInitialMainAxisOverflow = ((_overflowsData$ = overflowsData[0]) == null ? void 0 : _overflowsData$.overflows[0]) > 0;
22558
- if (!ignoreCrossAxisOverflow || hasInitialMainAxisOverflow) {
22616
+ if (!ignoreCrossAxisOverflow ||
22617
+ // We leave the current main axis only if every placement on that axis
22618
+ // overflows the main axis.
22619
+ overflowsData.every(d => d.overflows[0] > 0 && getSideAxis(d.placement) === initialSideAxis)) {
22559
22620
  // Try next placement and re-run the lifecycle.
22560
22621
  return {
22561
22622
  data: {
@@ -23876,7 +23937,10 @@ const computePosition = (reference, floating, options) => {
23876
23937
  });
23877
23938
  };
23878
23939
 
23879
- var index = typeof document !== 'undefined' ? useLayoutEffect : useEffect;
23940
+ var isClient = typeof document !== 'undefined';
23941
+
23942
+ var noop = function noop() {};
23943
+ var index = isClient ? useLayoutEffect : noop;
23880
23944
 
23881
23945
  // Fork of `fast-deep-equal` that only does the comparisons we need and compares
23882
23946
  // functions
@@ -35593,7 +35657,7 @@ function CheckoutSummary({ appliedDiscounts, lineItems, shipping, tax, currency,
35593
35657
  .join(", "))),
35594
35658
  React__default.createElement("div", { className: "text-right" }, isDiscounted ? (React__default.createElement("div", { className: "flex flex-col" },
35595
35659
  React__default.createElement("p", { className: "text-sm font-medium -mb-0.5 line-through text-muted-foreground" }, storeHelpers.formatPrice((_e = finalItem === null || finalItem === void 0 ? void 0 : finalItem.priceInCents) !== null && _e !== void 0 ? _e : 0, currency, exchangeRate)),
35596
- React__default.createElement("p", { className: "text-lg font-medium" }, discountedPrice <= 0
35660
+ React__default.createElement("p", { className: "text-base font-medium" }, discountedPrice <= 0
35597
35661
  ? t("CheckoutEmbed.Summary.free")
35598
35662
  : storeHelpers.formatPrice(discountedPrice, currency, exchangeRate)))) : (React__default.createElement("p", { className: "text-base font-medium" }, storeHelpers.formatPrice((_f = finalItem === null || finalItem === void 0 ? void 0 : finalItem.priceInCents) !== null && _f !== void 0 ? _f : 0, currency, exchangeRate))))));
35599
35663
  }))));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@betterstore/react",
3
- "version": "0.3.84",
3
+ "version": "0.3.86",
4
4
  "description": "E-commerce for Developers",
5
5
  "private": false,
6
6
  "publishConfig": {