@aslaluroba/help-center-react 3.2.16 → 3.2.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -442,7 +442,7 @@ var deepFind = function deepFind(obj, path) {
442
442
  }
443
443
  return current;
444
444
  };
445
- var getCleanedCode = code => code === null || code === void 0 ? void 0 : code.replace('_', '-');
445
+ var getCleanedCode = code => code === null || code === void 0 ? void 0 : code.replace(/_/g, '-');
446
446
  var consoleLogger = {
447
447
  type: 'logger',
448
448
  log(args) {
@@ -717,11 +717,20 @@ function createProxy() {
717
717
  return Proxy.revocable(Object.create(null), handler).proxy;
718
718
  }
719
719
  function keysFromSelector(selector, opts) {
720
- var _opts$keySeparator;
720
+ var _opts$keySeparator, _opts$nsSeparator;
721
721
  var {
722
722
  [PATH_KEY]: path
723
723
  } = selector(createProxy());
724
- return path.join((_opts$keySeparator = opts === null || opts === void 0 ? void 0 : opts.keySeparator) !== null && _opts$keySeparator !== void 0 ? _opts$keySeparator : '.');
724
+ var keySeparator = (_opts$keySeparator = opts === null || opts === void 0 ? void 0 : opts.keySeparator) !== null && _opts$keySeparator !== void 0 ? _opts$keySeparator : '.';
725
+ var nsSeparator = (_opts$nsSeparator = opts === null || opts === void 0 ? void 0 : opts.nsSeparator) !== null && _opts$nsSeparator !== void 0 ? _opts$nsSeparator : ':';
726
+ if (path.length > 1 && nsSeparator) {
727
+ var ns = opts === null || opts === void 0 ? void 0 : opts.ns;
728
+ var nsArray = Array.isArray(ns) ? ns : null;
729
+ if (nsArray && nsArray.length > 1 && nsArray.slice(1).includes(path[0])) {
730
+ return "".concat(path[0]).concat(nsSeparator).concat(path.slice(1).join(keySeparator));
731
+ }
732
+ }
733
+ return path.join(keySeparator);
725
734
  }
726
735
  var checkedLoadedFor = {};
727
736
  var shouldHandleAsObject = res => !isString$1(res) && typeof res !== 'boolean' && typeof res !== 'number';
@@ -787,6 +796,7 @@ class Translator extends EventEmitter {
787
796
  if (keys == null) return '';
788
797
  if (typeof keys === 'function') keys = keysFromSelector(keys, _objectSpread2(_objectSpread2({}, this.options), opt));
789
798
  if (!Array.isArray(keys)) keys = [String(keys)];
799
+ keys = keys.map(k => typeof k === 'function' ? keysFromSelector(k, _objectSpread2(_objectSpread2({}, this.options), opt)) : String(k));
790
800
  var returnDetails = opt.returnDetails !== undefined ? opt.returnDetails : this.options.returnDetails;
791
801
  var keySeparator = opt.keySeparator !== undefined ? opt.keySeparator : this.options.keySeparator;
792
802
  var {
@@ -1020,6 +1030,7 @@ class Translator extends EventEmitter {
1020
1030
  var usedLng;
1021
1031
  var usedNS;
1022
1032
  if (isString$1(keys)) keys = [keys];
1033
+ if (Array.isArray(keys)) keys = keys.map(k => typeof k === 'function' ? keysFromSelector(k, _objectSpread2(_objectSpread2({}, this.options), opt)) : k);
1023
1034
  keys.forEach(k => {
1024
1035
  if (this.isValidLookup(found)) return;
1025
1036
  var extracted = this.extractFromKey(k, opt);
@@ -1279,7 +1290,7 @@ class PluralResolver {
1279
1290
  type
1280
1291
  });
1281
1292
  } catch (err) {
1282
- if (!Intl) {
1293
+ if (typeof Intl === 'undefined') {
1283
1294
  this.logger.error('No Intl support, please use an Intl polyfill!');
1284
1295
  return dummyRule;
1285
1296
  }
@@ -1465,16 +1476,16 @@ class Interpolator {
1465
1476
  var value;
1466
1477
  var clonedOptions;
1467
1478
  var handleHasOptions = (key, inheritedOptions) => {
1468
- var _matchedSingleQuotes$;
1479
+ var _matchedSingleQuotes$, _matchedDoubleQuotes$;
1469
1480
  var sep = this.nestingOptionsSeparator;
1470
1481
  if (key.indexOf(sep) < 0) return key;
1471
- var c = key.split(new RegExp("".concat(sep, "[ ]*{")));
1482
+ var c = key.split(new RegExp("".concat(regexEscape(sep), "[ ]*{")));
1472
1483
  var optionsString = "{".concat(c[1]);
1473
1484
  key = c[0];
1474
1485
  optionsString = this.interpolate(optionsString, clonedOptions);
1475
1486
  var matchedSingleQuotes = optionsString.match(/'/g);
1476
1487
  var matchedDoubleQuotes = optionsString.match(/"/g);
1477
- if (((_matchedSingleQuotes$ = matchedSingleQuotes === null || matchedSingleQuotes === void 0 ? void 0 : matchedSingleQuotes.length) !== null && _matchedSingleQuotes$ !== void 0 ? _matchedSingleQuotes$ : 0) % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {
1488
+ if (((_matchedSingleQuotes$ = matchedSingleQuotes === null || matchedSingleQuotes === void 0 ? void 0 : matchedSingleQuotes.length) !== null && _matchedSingleQuotes$ !== void 0 ? _matchedSingleQuotes$ : 0) % 2 === 0 && !matchedDoubleQuotes || ((_matchedDoubleQuotes$ = matchedDoubleQuotes === null || matchedDoubleQuotes === void 0 ? void 0 : matchedDoubleQuotes.length) !== null && _matchedDoubleQuotes$ !== void 0 ? _matchedDoubleQuotes$ : 0) % 2 !== 0) {
1478
1489
  optionsString = optionsString.replace(/'/g, '"');
1479
1490
  }
1480
1491
  try {
@@ -1947,6 +1958,31 @@ var bindMemberFunctions = inst => {
1947
1958
  }
1948
1959
  });
1949
1960
  };
1961
+ var SUPPORT_NOTICE_KEY = '__i18next_supportNoticeShown';
1962
+ var getSupportNoticeShown = () => {
1963
+ if (typeof globalThis !== 'undefined' && !!globalThis[SUPPORT_NOTICE_KEY]) return true;
1964
+ if (typeof process !== 'undefined' && process.env && process.env.I18NEXT_NO_SUPPORT_NOTICE) return true;
1965
+ return false;
1966
+ };
1967
+ var setSupportNoticeShown = () => {
1968
+ if (typeof globalThis !== 'undefined') globalThis[SUPPORT_NOTICE_KEY] = true;
1969
+ };
1970
+ var usesLocize = inst => {
1971
+ var _inst$modules, _inst$modules2, _inst$options, _inst$options2, _inst$options3;
1972
+ if ((inst === null || inst === void 0 || (_inst$modules = inst.modules) === null || _inst$modules === void 0 || (_inst$modules = _inst$modules.backend) === null || _inst$modules === void 0 || (_inst$modules = _inst$modules.name) === null || _inst$modules === void 0 ? void 0 : _inst$modules.indexOf('Locize')) > 0) return true;
1973
+ if ((inst === null || inst === void 0 || (_inst$modules2 = inst.modules) === null || _inst$modules2 === void 0 || (_inst$modules2 = _inst$modules2.backend) === null || _inst$modules2 === void 0 || (_inst$modules2 = _inst$modules2.constructor) === null || _inst$modules2 === void 0 || (_inst$modules2 = _inst$modules2.name) === null || _inst$modules2 === void 0 ? void 0 : _inst$modules2.indexOf('Locize')) > 0) return true;
1974
+ if (inst !== null && inst !== void 0 && (_inst$options = inst.options) !== null && _inst$options !== void 0 && (_inst$options = _inst$options.backend) !== null && _inst$options !== void 0 && _inst$options.backends) {
1975
+ if (inst.options.backend.backends.some(b => {
1976
+ var _b$name, _b$constructor;
1977
+ return (b === null || b === void 0 || (_b$name = b.name) === null || _b$name === void 0 ? void 0 : _b$name.indexOf('Locize')) > 0 || (b === null || b === void 0 || (_b$constructor = b.constructor) === null || _b$constructor === void 0 || (_b$constructor = _b$constructor.name) === null || _b$constructor === void 0 ? void 0 : _b$constructor.indexOf('Locize')) > 0;
1978
+ })) return true;
1979
+ }
1980
+ if (inst !== null && inst !== void 0 && (_inst$options2 = inst.options) !== null && _inst$options2 !== void 0 && (_inst$options2 = _inst$options2.backend) !== null && _inst$options2 !== void 0 && _inst$options2.projectId) return true;
1981
+ if (inst !== null && inst !== void 0 && (_inst$options3 = inst.options) !== null && _inst$options3 !== void 0 && (_inst$options3 = _inst$options3.backend) !== null && _inst$options3 !== void 0 && _inst$options3.backendOptions) {
1982
+ if (inst.options.backend.backendOptions.some(b => b === null || b === void 0 ? void 0 : b.projectId)) return true;
1983
+ }
1984
+ return false;
1985
+ };
1950
1986
  class I18n extends EventEmitter {
1951
1987
  constructor() {
1952
1988
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
@@ -1997,8 +2033,9 @@ class I18n extends EventEmitter {
1997
2033
  if (typeof this.options.overloadTranslationOptionHandler !== 'function') {
1998
2034
  this.options.overloadTranslationOptionHandler = defOpts.overloadTranslationOptionHandler;
1999
2035
  }
2000
- if (this.options.debug === true) {
2001
- if (typeof console !== 'undefined') console.warn('i18next is maintained with support from locize.com — consider powering your project with managed localization (AI, CDN, integrations): https://locize.com');
2036
+ if (this.options.showSupportNotice !== false && !usesLocize(this) && !getSupportNoticeShown()) {
2037
+ if (typeof console !== 'undefined' && typeof console.info !== 'undefined') console.info('🌐 i18next is made possible by our own product, Locize — consider powering your project with managed localization (AI, CDN, integrations): https://locize.com 💙');
2038
+ setSupportNoticeShown();
2002
2039
  }
2003
2040
  var createClassOnDemand = ClassOrObject => {
2004
2041
  if (!ClassOrObject) return null;
@@ -2278,15 +2315,17 @@ class I18n extends EventEmitter {
2278
2315
  o.lngs = o.lngs || _fixedT.lngs;
2279
2316
  o.ns = o.ns || _fixedT.ns;
2280
2317
  if (o.keyPrefix !== '') o.keyPrefix = o.keyPrefix || keyPrefix || _fixedT.keyPrefix;
2318
+ var selectorOpts = _objectSpread2(_objectSpread2({}, _this4.options), o);
2319
+ if (typeof o.keyPrefix === 'function') o.keyPrefix = keysFromSelector(o.keyPrefix, selectorOpts);
2281
2320
  var keySeparator = _this4.options.keySeparator || '.';
2282
2321
  var resultKey;
2283
2322
  if (o.keyPrefix && Array.isArray(key)) {
2284
2323
  resultKey = key.map(k => {
2285
- if (typeof k === 'function') k = keysFromSelector(k, _objectSpread2(_objectSpread2({}, _this4.options), opts));
2324
+ if (typeof k === 'function') k = keysFromSelector(k, selectorOpts);
2286
2325
  return "".concat(o.keyPrefix).concat(keySeparator).concat(k);
2287
2326
  });
2288
2327
  } else {
2289
- if (typeof key === 'function') key = keysFromSelector(key, _objectSpread2(_objectSpread2({}, _this4.options), opts));
2328
+ if (typeof key === 'function') key = keysFromSelector(key, selectorOpts);
2290
2329
  resultKey = o.keyPrefix ? "".concat(o.keyPrefix).concat(keySeparator).concat(key) : key;
2291
2330
  }
2292
2331
  return _this4.t(resultKey, o);
@@ -3172,12 +3211,13 @@ function requireAbly() {
3172
3211
  if (err.statusCode) result += "; statusCode=" + err.statusCode;
3173
3212
  if (err.code) result += "; code=" + err.code;
3174
3213
  if (err.cause) result += "; cause=" + _inspectError(err.cause);
3214
+ if (err.detail && Object.keys(err.detail).length > 0) result += "; detail=" + JSON.stringify(err.detail);
3175
3215
  if (err.href && !(err.message && err.message.indexOf("help.ably.io") > -1)) result += "; see " + err.href + " ";
3176
3216
  result += "]";
3177
3217
  return result;
3178
3218
  }
3179
3219
  var _ErrorInfo2 = class _ErrorInfo extends Error {
3180
- constructor(message, code, statusCode, cause) {
3220
+ constructor(message, code, statusCode, cause, detail) {
3181
3221
  super(message);
3182
3222
  if (typeof Object.setPrototypeOf !== "undefined") {
3183
3223
  Object.setPrototypeOf(this, _ErrorInfo.prototype);
@@ -3185,6 +3225,7 @@ function requireAbly() {
3185
3225
  this.code = code;
3186
3226
  this.statusCode = statusCode;
3187
3227
  this.cause = cause;
3228
+ this.detail = detail;
3188
3229
  }
3189
3230
  toString() {
3190
3231
  return toString(this);
@@ -3193,12 +3234,13 @@ function requireAbly() {
3193
3234
  var {
3194
3235
  message,
3195
3236
  code,
3196
- statusCode
3237
+ statusCode,
3238
+ detail
3197
3239
  } = values;
3198
- if (typeof message !== "string" || typeof code !== "number" || typeof statusCode !== "number") {
3240
+ if (typeof message !== "string" || typeof code !== "number" || typeof statusCode !== "number" || !_isNil(detail) && (typeof detail !== "object" || Array.isArray(detail))) {
3199
3241
  throw new Error("ErrorInfo.fromValues(): invalid values: " + Platform.Config.inspect(values));
3200
3242
  }
3201
- var result = Object.assign(new _ErrorInfo(message, code, statusCode), values);
3243
+ var result = Object.assign(new _ErrorInfo(message, code, statusCode, void 0, detail), values);
3202
3244
  if (result.code && !result.href) {
3203
3245
  result.href = "https://help.ably.io/error/" + result.code;
3204
3246
  }
@@ -3206,7 +3248,7 @@ function requireAbly() {
3206
3248
  }
3207
3249
  };
3208
3250
  var PartialErrorInfo = class _PartialErrorInfo extends Error {
3209
- constructor(message, code, statusCode, cause) {
3251
+ constructor(message, code, statusCode, cause, detail) {
3210
3252
  super(message);
3211
3253
  if (typeof Object.setPrototypeOf !== "undefined") {
3212
3254
  Object.setPrototypeOf(this, _PartialErrorInfo.prototype);
@@ -3214,6 +3256,7 @@ function requireAbly() {
3214
3256
  this.code = code;
3215
3257
  this.statusCode = statusCode;
3216
3258
  this.cause = cause;
3259
+ this.detail = detail;
3217
3260
  }
3218
3261
  toString() {
3219
3262
  return toString(this);
@@ -3222,12 +3265,13 @@ function requireAbly() {
3222
3265
  var {
3223
3266
  message,
3224
3267
  code,
3225
- statusCode
3268
+ statusCode,
3269
+ detail
3226
3270
  } = values;
3227
- if (typeof message !== "string" || !_isNil(code) && typeof code !== "number" || !_isNil(statusCode) && typeof statusCode !== "number") {
3271
+ if (typeof message !== "string" || !_isNil(code) && typeof code !== "number" || !_isNil(statusCode) && typeof statusCode !== "number" || !_isNil(detail) && (typeof detail !== "object" || Array.isArray(detail))) {
3228
3272
  throw new Error("PartialErrorInfo.fromValues(): invalid values: " + Platform.Config.inspect(values));
3229
3273
  }
3230
- var result = Object.assign(new _PartialErrorInfo(message, code, statusCode), values);
3274
+ var result = Object.assign(new _PartialErrorInfo(message, code, statusCode, void 0, detail), values);
3231
3275
  if (result.code && !result.href) {
3232
3276
  result.href = "https://help.ably.io/error/" + result.code;
3233
3277
  }
@@ -3578,7 +3622,7 @@ function requireAbly() {
3578
3622
  }
3579
3623
 
3580
3624
  // package.json
3581
- var version = "2.17.1";
3625
+ var version = "2.21.0";
3582
3626
 
3583
3627
  // src/common/lib/util/defaults.ts
3584
3628
  var agent = "ably-js/" + version;
@@ -3609,7 +3653,7 @@ function requireAbly() {
3609
3653
  httpMaxRetryCount: 3,
3610
3654
  maxMessageSize: 65536,
3611
3655
  version,
3612
- protocolVersion: 5,
3656
+ protocolVersion: 6,
3613
3657
  agent,
3614
3658
  getPort,
3615
3659
  getHttpScheme,
@@ -5209,7 +5253,7 @@ function requireAbly() {
5209
5253
  this.Utils = utils_exports;
5210
5254
  this.EventEmitter = eventemitter_default;
5211
5255
  this.MessageEncoding = MessageEncoding;
5212
- var _a2, _b, _c, _d, _e, _f, _g, _h, _i, _j;
5256
+ var _a2, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;
5213
5257
  this._additionalHTTPRequestImplementations = (_a2 = options.plugins) != null ? _a2 : null;
5214
5258
  this.logger = new logger_default();
5215
5259
  this.logger.setLog(options.logLevel, options.logHandler);
@@ -5238,6 +5282,7 @@ function requireAbly() {
5238
5282
  this._Crypto = (_f = (_e = options.plugins) == null ? void 0 : _e.Crypto) != null ? _f : null;
5239
5283
  this.__FilteredSubscriptions = (_h = (_g = options.plugins) == null ? void 0 : _g.MessageInteractions) != null ? _h : null;
5240
5284
  this._Annotations = (_j = (_i = options.plugins) == null ? void 0 : _i.Annotations) != null ? _j : null;
5285
+ this._liveObjectsPlugin = (_l = (_k = options.plugins) == null ? void 0 : _k.LiveObjects) != null ? _l : null;
5241
5286
  }
5242
5287
  get rest() {
5243
5288
  if (!this._rest) {
@@ -5720,6 +5765,7 @@ function requireAbly() {
5720
5765
  this.headers = headers;
5721
5766
  this.errorCode = err && err.code;
5722
5767
  this.errorMessage = err && err.message;
5768
+ this.errorDetail = err == null ? void 0 : err.detail;
5723
5769
  }
5724
5770
  toJSON() {
5725
5771
  return {
@@ -5728,7 +5774,8 @@ function requireAbly() {
5728
5774
  success: this.success,
5729
5775
  headers: this.headers,
5730
5776
  errorCode: this.errorCode,
5731
- errorMessage: this.errorMessage
5777
+ errorMessage: this.errorMessage,
5778
+ errorDetail: this.errorDetail
5732
5779
  };
5733
5780
  }
5734
5781
  };
@@ -6416,6 +6463,9 @@ function requireAbly() {
6416
6463
  if (client._Annotations) {
6417
6464
  this._annotations = new client._Annotations.RestAnnotations(this);
6418
6465
  }
6466
+ if (client._liveObjectsPlugin) {
6467
+ this._object = new client._liveObjectsPlugin.RestObject(this);
6468
+ }
6419
6469
  }
6420
6470
  get annotations() {
6421
6471
  if (!this._annotations) {
@@ -6429,6 +6479,12 @@ function requireAbly() {
6429
6479
  }
6430
6480
  return this._push;
6431
6481
  }
6482
+ get object() {
6483
+ if (!this._object) {
6484
+ _throwMissingPluginError("LiveObjects");
6485
+ }
6486
+ return this._object;
6487
+ }
6432
6488
  get logger() {
6433
6489
  return this.client.logger;
6434
6490
  }
@@ -7260,7 +7316,6 @@ function requireAbly() {
7260
7316
  var channelstatechange_default = ChannelStateChange;
7261
7317
 
7262
7318
  // src/common/lib/client/realtimechannel.ts
7263
- var noop = function noop() {};
7264
7319
  function validateChannelOptions(options) {
7265
7320
  if (options && "params" in options && !_isObject(options.params)) {
7266
7321
  return new _ErrorInfo2("options.params must be an object", 4e4, 400);
@@ -7279,7 +7334,7 @@ function requireAbly() {
7279
7334
  }
7280
7335
  var RealtimeChannel = class _RealtimeChannel extends eventemitter_default {
7281
7336
  constructor(client, name, options) {
7282
- var _a2, _b, _c;
7337
+ var _a2, _b;
7283
7338
  super(client.logger);
7284
7339
  this._annotations = null;
7285
7340
  this._mode = 0;
@@ -7336,12 +7391,13 @@ function requireAbly() {
7336
7391
  protocolMessageChannelSerial: null,
7337
7392
  decodeFailureRecoveryInProgress: null
7338
7393
  };
7339
- this._allChannelChanges = new eventemitter_default(this.logger);
7394
+ this._attachedReceived = new eventemitter_default(this.logger);
7395
+ this.internalStateChanges = new eventemitter_default(this.logger);
7340
7396
  if ((_b = client.options.plugins) == null ? void 0 : _b.Push) {
7341
7397
  this._push = new client.options.plugins.Push.PushChannel(this);
7342
7398
  }
7343
- if ((_c = client.options.plugins) == null ? void 0 : _c.LiveObjects) {
7344
- this._object = new client.options.plugins.LiveObjects.RealtimeObject(this);
7399
+ if (client._liveObjectsPlugin) {
7400
+ this._object = new client._liveObjectsPlugin.RealtimeObject(this);
7345
7401
  }
7346
7402
  }
7347
7403
  get presence() {
@@ -7369,6 +7425,14 @@ function requireAbly() {
7369
7425
  }
7370
7426
  return this._object;
7371
7427
  }
7428
+ // Override of EventEmitter method
7429
+ emit(event) {
7430
+ for (var _len0 = arguments.length, args = new Array(_len0 > 1 ? _len0 - 1 : 0), _key0 = 1; _key0 < _len0; _key0++) {
7431
+ args[_key0 - 1] = arguments[_key0];
7432
+ }
7433
+ super.emit(event, ...args);
7434
+ this.internalStateChanges.emit(event, ...args);
7435
+ }
7372
7436
  invalidStateError() {
7373
7437
  return new _ErrorInfo2("Channel operation failed as channel state is " + this.state, 90001, 400, this.errorReason || void 0);
7374
7438
  }
@@ -7393,16 +7457,20 @@ function requireAbly() {
7393
7457
  if (_this67._shouldReattachToSetOptions(options, previousChannelOptions)) {
7394
7458
  _this67.attachImpl();
7395
7459
  return new Promise((resolve, reject) => {
7396
- _this67._allChannelChanges.once(["attached", "update", "detached", "failed"], function (stateChange) {
7397
- switch (this.event) {
7398
- case "update":
7399
- case "attached":
7400
- resolve();
7401
- break;
7402
- default:
7403
- reject(stateChange.reason);
7404
- }
7405
- });
7460
+ var cleanup = () => {
7461
+ _this67._attachedReceived.off(onAttached);
7462
+ _this67.internalStateChanges.off(onFailure);
7463
+ };
7464
+ var onAttached = () => {
7465
+ cleanup();
7466
+ resolve();
7467
+ };
7468
+ var onFailure = stateChange => {
7469
+ cleanup();
7470
+ reject(stateChange.reason);
7471
+ };
7472
+ _this67._attachedReceived.once("attached", onAttached);
7473
+ _this67.internalStateChanges.once(["detached", "failed"], onFailure);
7406
7474
  });
7407
7475
  }
7408
7476
  })();
@@ -7465,10 +7533,7 @@ function requireAbly() {
7465
7533
  messages: wireMessages,
7466
7534
  params: params ? _stringifyValues(params) : void 0
7467
7535
  });
7468
- var res = yield _this68.sendMessage(pm);
7469
- return res || {
7470
- serials: []
7471
- };
7536
+ return _this68.sendAndAwaitAck(pm);
7472
7537
  })();
7473
7538
  }
7474
7539
  throwIfUnpublishableState() {
@@ -7514,7 +7579,7 @@ function requireAbly() {
7514
7579
  if (this.state !== "attaching" || forceReattach) {
7515
7580
  this.requestState("attaching", attachReason);
7516
7581
  }
7517
- this.once(function (stateChange) {
7582
+ this.internalStateChanges.once(function (stateChange) {
7518
7583
  switch (this.event) {
7519
7584
  case "attached":
7520
7585
  callback == null ? void 0 : callback(null, stateChange);
@@ -7549,7 +7614,7 @@ function requireAbly() {
7549
7614
  if (this._lastPayload.decodeFailureRecoveryInProgress) {
7550
7615
  attachMsg.channelSerial = this._lastPayload.protocolMessageChannelSerial;
7551
7616
  }
7552
- this.sendMessage(attachMsg).catch(noop);
7617
+ this.send(attachMsg);
7553
7618
  }
7554
7619
  detach() {
7555
7620
  var _this70 = this;
@@ -7571,7 +7636,7 @@ function requireAbly() {
7571
7636
  _this70.requestState("detaching");
7572
7637
  case "detaching":
7573
7638
  return new Promise((resolve, reject) => {
7574
- _this70.once(function (stateChange) {
7639
+ _this70.internalStateChanges.once(function (stateChange) {
7575
7640
  switch (this.event) {
7576
7641
  case "detached":
7577
7642
  resolve();
@@ -7596,14 +7661,14 @@ function requireAbly() {
7596
7661
  action: actions.DETACH,
7597
7662
  channel: this.name
7598
7663
  });
7599
- this.sendMessage(msg).catch(noop);
7664
+ this.send(msg);
7600
7665
  }
7601
7666
  subscribe() {
7602
7667
  var _arguments3 = arguments,
7603
7668
  _this71 = this;
7604
7669
  return _asyncToGenerator(function* () {
7605
- for (var _len0 = _arguments3.length, args = new Array(_len0), _key0 = 0; _key0 < _len0; _key0++) {
7606
- args[_key0] = _arguments3[_key0];
7670
+ for (var _len1 = _arguments3.length, args = new Array(_len1), _key1 = 0; _key1 < _len1; _key1++) {
7671
+ args[_key1] = _arguments3[_key1];
7607
7672
  }
7608
7673
  var [event, listener] = _RealtimeChannel.processListenerArgs(args);
7609
7674
  if (_this71.state === "failed") {
@@ -7623,8 +7688,8 @@ function requireAbly() {
7623
7688
  }
7624
7689
  unsubscribe() {
7625
7690
  var _a2;
7626
- for (var _len1 = arguments.length, args = new Array(_len1), _key1 = 0; _key1 < _len1; _key1++) {
7627
- args[_key1] = arguments[_key1];
7691
+ for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {
7692
+ args[_key10] = arguments[_key10];
7628
7693
  }
7629
7694
  var [event, listener] = _RealtimeChannel.processListenerArgs(args);
7630
7695
  if (typeof event === "object" && !listener || ((_a2 = this.filteredSubscriptions) == null ? void 0 : _a2.has(listener))) {
@@ -7653,7 +7718,10 @@ function requireAbly() {
7653
7718
  }
7654
7719
  connectionManager.send(syncMessage);
7655
7720
  }
7656
- sendMessage(msg) {
7721
+ send(msg) {
7722
+ this.connectionManager.send(msg);
7723
+ }
7724
+ sendAndAwaitAck(msg) {
7657
7725
  var _this72 = this;
7658
7726
  return _asyncToGenerator(function* () {
7659
7727
  return new Promise((resolve, reject) => {
@@ -7675,7 +7743,7 @@ function requireAbly() {
7675
7743
  channel: _this73.name,
7676
7744
  presence
7677
7745
  });
7678
- yield _this73.sendMessage(msg);
7746
+ yield _this73.sendAndAwaitAck(msg);
7679
7747
  })();
7680
7748
  }
7681
7749
  sendState(objectMessages) {
@@ -7686,7 +7754,7 @@ function requireAbly() {
7686
7754
  channel: _this74.name,
7687
7755
  state: objectMessages
7688
7756
  });
7689
- yield _this74.sendMessage(msg);
7757
+ return _this74.sendAndAwaitAck(msg);
7690
7758
  })();
7691
7759
  }
7692
7760
  // Access to this method is synchronised by ConnectionManager#processChannelMessage, in order to synchronise access to the state stored in _decodingContext.
@@ -7710,17 +7778,17 @@ function requireAbly() {
7710
7778
  var hasPresence = message.hasFlag("HAS_PRESENCE");
7711
7779
  var hasBacklog = message.hasFlag("HAS_BACKLOG");
7712
7780
  var hasObjects = message.hasFlag("HAS_OBJECTS");
7781
+ _this75._attachedReceived.emit("attached");
7713
7782
  if (_this75.state === "attached") {
7714
7783
  if (!resumed) {
7715
7784
  if (_this75._presence) {
7716
7785
  _this75._presence.onAttached(hasPresence);
7717
7786
  }
7718
- if (_this75._object) {
7719
- _this75._object.onAttached(hasObjects);
7720
- }
7787
+ }
7788
+ if (_this75._object) {
7789
+ _this75._object.onAttached(hasObjects);
7721
7790
  }
7722
7791
  var change = new channelstatechange_default(_this75.state, _this75.state, resumed, hasBacklog, message.error);
7723
- _this75._allChannelChanges.emit("update", change);
7724
7792
  if (!resumed || _this75.channelOptions.updateOnAttached) {
7725
7793
  _this75.emit("update", change);
7726
7794
  }
@@ -7900,7 +7968,6 @@ function requireAbly() {
7900
7968
  this._attachResume = false;
7901
7969
  }
7902
7970
  this.state = state;
7903
- this._allChannelChanges.emit(state, change);
7904
7971
  this.emit(state, change);
7905
7972
  }
7906
7973
  requestState(state, reason) {
@@ -8034,7 +8101,7 @@ function requireAbly() {
8034
8101
  sendUpdate(message, action, operation, params) {
8035
8102
  var _this81 = this;
8036
8103
  return _asyncToGenerator(function* () {
8037
- var _a2, _b;
8104
+ var _a2;
8038
8105
  if (!message.serial) {
8039
8106
  throw new _ErrorInfo2('This message lacks a serial and cannot be updated. Make sure you have enabled "Message annotations, updates, and deletes" in channel settings on your dashboard.', 40003, 400);
8040
8107
  }
@@ -8050,9 +8117,9 @@ function requireAbly() {
8050
8117
  messages: [wireMessage],
8051
8118
  params: params ? _stringifyValues(params) : void 0
8052
8119
  });
8053
- var publishResponse = yield _this81.sendMessage(pm);
8120
+ var publishResponse = yield _this81.sendAndAwaitAck(pm);
8054
8121
  return {
8055
- versionSerial: (_b = (_a2 = publishResponse == null ? void 0 : publishResponse.serials) == null ? void 0 : _a2[0]) != null ? _b : null
8122
+ versionSerial: (_a2 = publishResponse.serials[0]) != null ? _a2 : null
8056
8123
  };
8057
8124
  })();
8058
8125
  }
@@ -8122,7 +8189,7 @@ function requireAbly() {
8122
8189
  channel: channelName,
8123
8190
  annotations: [wireAnnotation]
8124
8191
  });
8125
- yield _this84.channel.sendMessage(pm);
8192
+ yield _this84.channel.sendAndAwaitAck(pm);
8126
8193
  })();
8127
8194
  }
8128
8195
  delete(msgOrSerial, annotationValues) {
@@ -8136,8 +8203,8 @@ function requireAbly() {
8136
8203
  var _arguments4 = arguments,
8137
8204
  _this86 = this;
8138
8205
  return _asyncToGenerator(function* () {
8139
- for (var _len10 = _arguments4.length, _args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {
8140
- _args[_key10] = _arguments4[_key10];
8206
+ for (var _len11 = _arguments4.length, _args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {
8207
+ _args[_key11] = _arguments4[_key11];
8141
8208
  }
8142
8209
  var args = realtimechannel_default.processListenerArgs(_args);
8143
8210
  var event = args[0];
@@ -8156,8 +8223,8 @@ function requireAbly() {
8156
8223
  })();
8157
8224
  }
8158
8225
  unsubscribe() {
8159
- for (var _len11 = arguments.length, _args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {
8160
- _args[_key11] = arguments[_key11];
8226
+ for (var _len12 = arguments.length, _args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) {
8227
+ _args[_key12] = arguments[_key12];
8161
8228
  }
8162
8229
  var args = realtimechannel_default.processListenerArgs(_args);
8163
8230
  var event = args[0];
@@ -8669,7 +8736,7 @@ function requireAbly() {
8669
8736
  var _a2;
8670
8737
  return typeof Platform.WebStorage !== "undefined" && ((_a2 = Platform.WebStorage) == null ? void 0 : _a2.sessionSupported);
8671
8738
  };
8672
- var noop2 = function noop2() {};
8739
+ var noop = function noop() {};
8673
8740
  var transportPreferenceName = "ably-transport-preference";
8674
8741
  function decodeRecoveryKey(recoveryKey) {
8675
8742
  try {
@@ -9534,7 +9601,7 @@ function requireAbly() {
9534
9601
  this.disconnectAllTransports();
9535
9602
  this.connectWs(transportParams, ++this.connectCounter);
9536
9603
  }
9537
- }).catch(noop2);
9604
+ }).catch(noop);
9538
9605
  }
9539
9606
  if (transportPreference && transportPreference === this.baseTransport || this.baseTransport && !this.webSocketTransportAvailable) {
9540
9607
  this.connectBase(transportParams, connectCount);
@@ -9741,7 +9808,7 @@ function requireAbly() {
9741
9808
  * event queueing
9742
9809
  ******************/
9743
9810
  send(msg, queueEvent, callback) {
9744
- callback = callback || noop2;
9811
+ callback = callback || noop;
9745
9812
  var state = this.state;
9746
9813
  if (state.sendEvents) {
9747
9814
  logger_default.logAction(this.logger, logger_default.LOG_MICRO, "ConnectionManager.send()", "sending event");
@@ -10025,7 +10092,7 @@ function requireAbly() {
10025
10092
  * tell the compiler that these cases are possible so that it forces us to handle them.
10026
10093
  */
10027
10094
  constructor(options) {
10028
- var _a2, _b, _c, _d;
10095
+ var _a2, _b;
10029
10096
  super(defaults_default.objectifyOptions(options, false, "BaseRealtime", logger_default.defaultLogger));
10030
10097
  logger_default.logAction(this.logger, logger_default.LOG_MINOR, "Realtime()", "");
10031
10098
  if (typeof EdgeRuntime === "string") {
@@ -10033,7 +10100,6 @@ function requireAbly() {
10033
10100
  }
10034
10101
  this._additionalTransportImplementations = _BaseRealtime.transportImplementationsFromPlugins(this.options.plugins);
10035
10102
  this._RealtimePresence = (_b = (_a2 = this.options.plugins) == null ? void 0 : _a2.RealtimePresence) != null ? _b : null;
10036
- this._liveObjectsPlugin = (_d = (_c = this.options.plugins) == null ? void 0 : _c.LiveObjects) != null ? _d : null;
10037
10103
  this.connection = new connection_default(this, this.options);
10038
10104
  this._channels = new Channels2(this);
10039
10105
  if (this.options.autoConnect !== false) this.connect();
@@ -10621,8 +10687,8 @@ function requireAbly() {
10621
10687
  var _arguments5 = arguments,
10622
10688
  _this102 = this;
10623
10689
  return _asyncToGenerator(function* () {
10624
- for (var _len12 = _arguments5.length, _args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) {
10625
- _args[_key12] = _arguments5[_key12];
10690
+ for (var _len13 = _arguments5.length, _args = new Array(_len13), _key13 = 0; _key13 < _len13; _key13++) {
10691
+ _args[_key13] = _arguments5[_key13];
10626
10692
  }
10627
10693
  var args = realtimechannel_default.processListenerArgs(_args);
10628
10694
  var event = args[0];
@@ -10638,8 +10704,8 @@ function requireAbly() {
10638
10704
  })();
10639
10705
  }
10640
10706
  unsubscribe() {
10641
- for (var _len13 = arguments.length, _args = new Array(_len13), _key13 = 0; _key13 < _len13; _key13++) {
10642
- _args[_key13] = arguments[_key13];
10707
+ for (var _len14 = arguments.length, _args = new Array(_len14), _key14 = 0; _key14 < _len14; _key14++) {
10708
+ _args[_key14] = arguments[_key14];
10643
10709
  }
10644
10710
  var args = realtimechannel_default.processListenerArgs(_args);
10645
10711
  var event = args[0];
@@ -11257,7 +11323,7 @@ function requireAbly() {
11257
11323
  try {
11258
11324
  return config.getRandomArrayBuffer((keyLength || DEFAULT_KEYLENGTH) / 8);
11259
11325
  } catch (err) {
11260
- throw new _ErrorInfo2("Failed to generate random key: " + err.message, 400, 5e4, err);
11326
+ throw new _ErrorInfo2("Failed to generate random key: " + err.message, 400, 5e4);
11261
11327
  }
11262
11328
  })();
11263
11329
  }
@@ -11866,7 +11932,7 @@ function requireAbly() {
11866
11932
  return responseBody.error && _ErrorInfo2.fromValues(responseBody.error);
11867
11933
  }
11868
11934
  }
11869
- var noop3 = function noop3() {};
11935
+ var noop2 = function noop2() {};
11870
11936
  var idCounter = 0;
11871
11937
  var pendingRequests = {};
11872
11938
  function getHeader(xhr, header) {
@@ -12062,7 +12128,7 @@ function requireAbly() {
12062
12128
  dispose() {
12063
12129
  var xhr = this.xhr;
12064
12130
  if (xhr) {
12065
- xhr.onreadystatechange = xhr.onerror = xhr.onabort = xhr.ontimeout = noop3;
12131
+ xhr.onreadystatechange = xhr.onerror = xhr.onabort = xhr.ontimeout = noop2;
12066
12132
  this.xhr = null;
12067
12133
  var timer = this.timer;
12068
12134
  if (timer) {
@@ -13111,12 +13177,15 @@ var FloatingMessage = _ref => {
13111
13177
  children: [jsxRuntime.jsx("p", {
13112
13178
  className: "babylai:text-xs babylai:font-bold babylai:m-0",
13113
13179
  children: message
13114
- }), jsxRuntime.jsx("button", {
13180
+ }), jsxRuntime.jsxs("button", {
13115
13181
  className: "babylai:absolute babylai:-top-2 babylai:-right-2 babylai:w-5 babylai:h-5 babylai:rounded-full babylai:bg-white babylai:border-none babylai:cursor-pointer babylai:flex babylai:items-center babylai:justify-center babylai:text-black-white-700 babylai:p-[3px] babylai:hover:bg-primary-400 babylai:hover:text-white babylai:shadow-md",
13116
13182
  onClick: onClose,
13117
- children: jsxRuntime.jsx(ForwardRef$b, {
13183
+ children: [jsxRuntime.jsx(ForwardRef$b, {
13118
13184
  className: "babylai:w-8 babylai:h-8"
13119
- })
13185
+ }), jsxRuntime.jsx("span", {
13186
+ className: "babylai:sr-only",
13187
+ children: "Close"
13188
+ })]
13120
13189
  })]
13121
13190
  })
13122
13191
  });
@@ -13182,13 +13251,16 @@ var HelpButton = _ref => {
13182
13251
  var {
13183
13252
  onClick
13184
13253
  } = _ref;
13185
- return jsxRuntime.jsx("button", {
13254
+ return jsxRuntime.jsxs("button", {
13186
13255
  className: "\n babylai:fixed babylai:z-50 babylai:bottom-4 babylai:right-4\n babylai:p-4 \n babylai:rounded-full babylai:bg-primary-500 babylai:flex babylai:items-center \n babylai:justify-center babylai:border-[0.5px] babylai:border-black-white-50 ",
13187
13256
  onClick: onClick,
13188
13257
  "aria-label": "Need Help?",
13189
- children: jsxRuntime.jsx(ForwardRef$a, {
13258
+ children: [jsxRuntime.jsx(ForwardRef$a, {
13190
13259
  className: "babylai:w-8 babylai:h-8 babylai:text-primary-500"
13191
- })
13260
+ }), jsxRuntime.jsx("span", {
13261
+ className: "babylai:sr-only",
13262
+ children: "Need Help?"
13263
+ })]
13192
13264
  });
13193
13265
  };
13194
13266
 
@@ -31629,7 +31701,7 @@ const fromTheme = key => {
31629
31701
  };
31630
31702
  const arbitraryValueRegex = /^\[(?:(\w[\w-]*):)?(.+)\]$/i;
31631
31703
  const arbitraryVariableRegex = /^\((?:(\w[\w-]*):)?(.+)\)$/i;
31632
- const fractionRegex = /^\d+\/\d+$/;
31704
+ const fractionRegex = /^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/;
31633
31705
  const tshirtUnitRegex = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/;
31634
31706
  const lengthUnitRegex = /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/;
31635
31707
  const colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/;
@@ -31655,6 +31727,8 @@ const isArbitrarySize = value => getIsArbitraryValue(value, isLabelSize, isNever
31655
31727
  const isArbitraryValue = value => arbitraryValueRegex.test(value);
31656
31728
  const isArbitraryLength = value => getIsArbitraryValue(value, isLabelLength, isLengthOnly);
31657
31729
  const isArbitraryNumber = value => getIsArbitraryValue(value, isLabelNumber, isNumber$1);
31730
+ const isArbitraryWeight = value => getIsArbitraryValue(value, isLabelWeight, isAny);
31731
+ const isArbitraryFamilyName = value => getIsArbitraryValue(value, isLabelFamilyName, isNever);
31658
31732
  const isArbitraryPosition = value => getIsArbitraryValue(value, isLabelPosition, isNever);
31659
31733
  const isArbitraryImage = value => getIsArbitraryValue(value, isLabelImage, isImage);
31660
31734
  const isArbitraryShadow = value => getIsArbitraryValue(value, isLabelShadow, isShadow);
@@ -31665,6 +31739,7 @@ const isArbitraryVariablePosition = value => getIsArbitraryVariable(value, isLab
31665
31739
  const isArbitraryVariableSize = value => getIsArbitraryVariable(value, isLabelSize);
31666
31740
  const isArbitraryVariableImage = value => getIsArbitraryVariable(value, isLabelImage);
31667
31741
  const isArbitraryVariableShadow = value => getIsArbitraryVariable(value, isLabelShadow, true);
31742
+ const isArbitraryVariableWeight = value => getIsArbitraryVariable(value, isLabelWeight, true);
31668
31743
  // Helpers
31669
31744
  const getIsArbitraryValue = (value, testLabel, testValue) => {
31670
31745
  const result = arbitraryValueRegex.exec(value);
@@ -31693,6 +31768,7 @@ const isLabelSize = label => label === 'length' || label === 'size' || label ===
31693
31768
  const isLabelLength = label => label === 'length';
31694
31769
  const isLabelNumber = label => label === 'number';
31695
31770
  const isLabelFamilyName = label => label === 'family-name';
31771
+ const isLabelWeight = label => label === 'number' || label === 'weight';
31696
31772
  const isLabelShadow = label => label === 'shadow';
31697
31773
  const getDefaultConfig = () => {
31698
31774
  /**
@@ -31751,6 +31827,8 @@ const getDefaultConfig = () => {
31751
31827
  const scaleAlignSecondaryAxis = () => ['start', 'end', 'center', 'stretch', 'center-safe', 'end-safe'];
31752
31828
  const scaleMargin = () => ['auto', ...scaleUnambiguousSpacing()];
31753
31829
  const scaleSizing = () => [isFraction, 'auto', 'full', 'dvw', 'dvh', 'lvw', 'lvh', 'svw', 'svh', 'min', 'max', 'fit', ...scaleUnambiguousSpacing()];
31830
+ const scaleSizingInline = () => [isFraction, 'screen', 'full', 'dvw', 'lvw', 'svw', 'min', 'max', 'fit', ...scaleUnambiguousSpacing()];
31831
+ const scaleSizingBlock = () => [isFraction, 'screen', 'full', 'lh', 'dvh', 'lvh', 'svh', 'min', 'max', 'fit', ...scaleUnambiguousSpacing()];
31754
31832
  const scaleColor = () => [themeColor, isArbitraryVariable, isArbitraryValue];
31755
31833
  const scaleBgPosition = () => [...scalePosition(), isArbitraryVariablePosition, isArbitraryPosition, {
31756
31834
  position: [isArbitraryVariable, isArbitraryValue]
@@ -31949,40 +32027,66 @@ const getDefaultConfig = () => {
31949
32027
  */
31950
32028
  position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],
31951
32029
  /**
31952
- * Top / Right / Bottom / Left
32030
+ * Inset
31953
32031
  * @see https://tailwindcss.com/docs/top-right-bottom-left
31954
32032
  */
31955
32033
  inset: [{
31956
32034
  inset: scaleInset()
31957
32035
  }],
31958
32036
  /**
31959
- * Right / Left
32037
+ * Inset Inline
31960
32038
  * @see https://tailwindcss.com/docs/top-right-bottom-left
31961
32039
  */
31962
32040
  'inset-x': [{
31963
32041
  'inset-x': scaleInset()
31964
32042
  }],
31965
32043
  /**
31966
- * Top / Bottom
32044
+ * Inset Block
31967
32045
  * @see https://tailwindcss.com/docs/top-right-bottom-left
31968
32046
  */
31969
32047
  'inset-y': [{
31970
32048
  'inset-y': scaleInset()
31971
32049
  }],
31972
32050
  /**
31973
- * Start
32051
+ * Inset Inline Start
31974
32052
  * @see https://tailwindcss.com/docs/top-right-bottom-left
32053
+ * @todo class group will be renamed to `inset-s` in next major release
31975
32054
  */
31976
32055
  start: [{
32056
+ 'inset-s': scaleInset(),
32057
+ /**
32058
+ * @deprecated since Tailwind CSS v4.2.0 in favor of `inset-s-*` utilities.
32059
+ * @see https://github.com/tailwindlabs/tailwindcss/pull/19613
32060
+ */
31977
32061
  start: scaleInset()
31978
32062
  }],
31979
32063
  /**
31980
- * End
32064
+ * Inset Inline End
31981
32065
  * @see https://tailwindcss.com/docs/top-right-bottom-left
32066
+ * @todo class group will be renamed to `inset-e` in next major release
31982
32067
  */
31983
32068
  end: [{
32069
+ 'inset-e': scaleInset(),
32070
+ /**
32071
+ * @deprecated since Tailwind CSS v4.2.0 in favor of `inset-e-*` utilities.
32072
+ * @see https://github.com/tailwindlabs/tailwindcss/pull/19613
32073
+ */
31984
32074
  end: scaleInset()
31985
32075
  }],
32076
+ /**
32077
+ * Inset Block Start
32078
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
32079
+ */
32080
+ 'inset-bs': [{
32081
+ 'inset-bs': scaleInset()
32082
+ }],
32083
+ /**
32084
+ * Inset Block End
32085
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
32086
+ */
32087
+ 'inset-be': [{
32088
+ 'inset-be': scaleInset()
32089
+ }],
31986
32090
  /**
31987
32091
  * Top
31988
32092
  * @see https://tailwindcss.com/docs/top-right-bottom-left
@@ -32249,33 +32353,47 @@ const getDefaultConfig = () => {
32249
32353
  p: scaleUnambiguousSpacing()
32250
32354
  }],
32251
32355
  /**
32252
- * Padding X
32356
+ * Padding Inline
32253
32357
  * @see https://tailwindcss.com/docs/padding
32254
32358
  */
32255
32359
  px: [{
32256
32360
  px: scaleUnambiguousSpacing()
32257
32361
  }],
32258
32362
  /**
32259
- * Padding Y
32363
+ * Padding Block
32260
32364
  * @see https://tailwindcss.com/docs/padding
32261
32365
  */
32262
32366
  py: [{
32263
32367
  py: scaleUnambiguousSpacing()
32264
32368
  }],
32265
32369
  /**
32266
- * Padding Start
32370
+ * Padding Inline Start
32267
32371
  * @see https://tailwindcss.com/docs/padding
32268
32372
  */
32269
32373
  ps: [{
32270
32374
  ps: scaleUnambiguousSpacing()
32271
32375
  }],
32272
32376
  /**
32273
- * Padding End
32377
+ * Padding Inline End
32274
32378
  * @see https://tailwindcss.com/docs/padding
32275
32379
  */
32276
32380
  pe: [{
32277
32381
  pe: scaleUnambiguousSpacing()
32278
32382
  }],
32383
+ /**
32384
+ * Padding Block Start
32385
+ * @see https://tailwindcss.com/docs/padding
32386
+ */
32387
+ pbs: [{
32388
+ pbs: scaleUnambiguousSpacing()
32389
+ }],
32390
+ /**
32391
+ * Padding Block End
32392
+ * @see https://tailwindcss.com/docs/padding
32393
+ */
32394
+ pbe: [{
32395
+ pbe: scaleUnambiguousSpacing()
32396
+ }],
32279
32397
  /**
32280
32398
  * Padding Top
32281
32399
  * @see https://tailwindcss.com/docs/padding
@@ -32312,33 +32430,47 @@ const getDefaultConfig = () => {
32312
32430
  m: scaleMargin()
32313
32431
  }],
32314
32432
  /**
32315
- * Margin X
32433
+ * Margin Inline
32316
32434
  * @see https://tailwindcss.com/docs/margin
32317
32435
  */
32318
32436
  mx: [{
32319
32437
  mx: scaleMargin()
32320
32438
  }],
32321
32439
  /**
32322
- * Margin Y
32440
+ * Margin Block
32323
32441
  * @see https://tailwindcss.com/docs/margin
32324
32442
  */
32325
32443
  my: [{
32326
32444
  my: scaleMargin()
32327
32445
  }],
32328
32446
  /**
32329
- * Margin Start
32447
+ * Margin Inline Start
32330
32448
  * @see https://tailwindcss.com/docs/margin
32331
32449
  */
32332
32450
  ms: [{
32333
32451
  ms: scaleMargin()
32334
32452
  }],
32335
32453
  /**
32336
- * Margin End
32454
+ * Margin Inline End
32337
32455
  * @see https://tailwindcss.com/docs/margin
32338
32456
  */
32339
32457
  me: [{
32340
32458
  me: scaleMargin()
32341
32459
  }],
32460
+ /**
32461
+ * Margin Block Start
32462
+ * @see https://tailwindcss.com/docs/margin
32463
+ */
32464
+ mbs: [{
32465
+ mbs: scaleMargin()
32466
+ }],
32467
+ /**
32468
+ * Margin Block End
32469
+ * @see https://tailwindcss.com/docs/margin
32470
+ */
32471
+ mbe: [{
32472
+ mbe: scaleMargin()
32473
+ }],
32342
32474
  /**
32343
32475
  * Margin Top
32344
32476
  * @see https://tailwindcss.com/docs/margin
@@ -32401,6 +32533,48 @@ const getDefaultConfig = () => {
32401
32533
  size: [{
32402
32534
  size: scaleSizing()
32403
32535
  }],
32536
+ /**
32537
+ * Inline Size
32538
+ * @see https://tailwindcss.com/docs/width
32539
+ */
32540
+ 'inline-size': [{
32541
+ inline: ['auto', ...scaleSizingInline()]
32542
+ }],
32543
+ /**
32544
+ * Min-Inline Size
32545
+ * @see https://tailwindcss.com/docs/min-width
32546
+ */
32547
+ 'min-inline-size': [{
32548
+ 'min-inline': ['auto', ...scaleSizingInline()]
32549
+ }],
32550
+ /**
32551
+ * Max-Inline Size
32552
+ * @see https://tailwindcss.com/docs/max-width
32553
+ */
32554
+ 'max-inline-size': [{
32555
+ 'max-inline': ['none', ...scaleSizingInline()]
32556
+ }],
32557
+ /**
32558
+ * Block Size
32559
+ * @see https://tailwindcss.com/docs/height
32560
+ */
32561
+ 'block-size': [{
32562
+ block: ['auto', ...scaleSizingBlock()]
32563
+ }],
32564
+ /**
32565
+ * Min-Block Size
32566
+ * @see https://tailwindcss.com/docs/min-height
32567
+ */
32568
+ 'min-block-size': [{
32569
+ 'min-block': ['auto', ...scaleSizingBlock()]
32570
+ }],
32571
+ /**
32572
+ * Max-Block Size
32573
+ * @see https://tailwindcss.com/docs/max-height
32574
+ */
32575
+ 'max-block-size': [{
32576
+ 'max-block': ['none', ...scaleSizingBlock()]
32577
+ }],
32404
32578
  /**
32405
32579
  * Width
32406
32580
  * @see https://tailwindcss.com/docs/width
@@ -32473,7 +32647,7 @@ const getDefaultConfig = () => {
32473
32647
  * @see https://tailwindcss.com/docs/font-weight
32474
32648
  */
32475
32649
  'font-weight': [{
32476
- font: [themeFontWeight, isArbitraryVariable, isArbitraryNumber]
32650
+ font: [themeFontWeight, isArbitraryVariableWeight, isArbitraryWeight]
32477
32651
  }],
32478
32652
  /**
32479
32653
  * Font Stretch
@@ -32487,7 +32661,14 @@ const getDefaultConfig = () => {
32487
32661
  * @see https://tailwindcss.com/docs/font-family
32488
32662
  */
32489
32663
  'font-family': [{
32490
- font: [isArbitraryVariableFamilyName, isArbitraryValue, themeFont]
32664
+ font: [isArbitraryVariableFamilyName, isArbitraryFamilyName, themeFont]
32665
+ }],
32666
+ /**
32667
+ * Font Feature Settings
32668
+ * @see https://tailwindcss.com/docs/font-feature-settings
32669
+ */
32670
+ 'font-features': [{
32671
+ 'font-features': [isArbitraryValue]
32491
32672
  }],
32492
32673
  /**
32493
32674
  * Font Variant Numeric
@@ -32906,33 +33087,47 @@ const getDefaultConfig = () => {
32906
33087
  border: scaleBorderWidth()
32907
33088
  }],
32908
33089
  /**
32909
- * Border Width X
33090
+ * Border Width Inline
32910
33091
  * @see https://tailwindcss.com/docs/border-width
32911
33092
  */
32912
33093
  'border-w-x': [{
32913
33094
  'border-x': scaleBorderWidth()
32914
33095
  }],
32915
33096
  /**
32916
- * Border Width Y
33097
+ * Border Width Block
32917
33098
  * @see https://tailwindcss.com/docs/border-width
32918
33099
  */
32919
33100
  'border-w-y': [{
32920
33101
  'border-y': scaleBorderWidth()
32921
33102
  }],
32922
33103
  /**
32923
- * Border Width Start
33104
+ * Border Width Inline Start
32924
33105
  * @see https://tailwindcss.com/docs/border-width
32925
33106
  */
32926
33107
  'border-w-s': [{
32927
33108
  'border-s': scaleBorderWidth()
32928
33109
  }],
32929
33110
  /**
32930
- * Border Width End
33111
+ * Border Width Inline End
32931
33112
  * @see https://tailwindcss.com/docs/border-width
32932
33113
  */
32933
33114
  'border-w-e': [{
32934
33115
  'border-e': scaleBorderWidth()
32935
33116
  }],
33117
+ /**
33118
+ * Border Width Block Start
33119
+ * @see https://tailwindcss.com/docs/border-width
33120
+ */
33121
+ 'border-w-bs': [{
33122
+ 'border-bs': scaleBorderWidth()
33123
+ }],
33124
+ /**
33125
+ * Border Width Block End
33126
+ * @see https://tailwindcss.com/docs/border-width
33127
+ */
33128
+ 'border-w-be': [{
33129
+ 'border-be': scaleBorderWidth()
33130
+ }],
32936
33131
  /**
32937
33132
  * Border Width Top
32938
33133
  * @see https://tailwindcss.com/docs/border-width
@@ -33007,33 +33202,47 @@ const getDefaultConfig = () => {
33007
33202
  border: scaleColor()
33008
33203
  }],
33009
33204
  /**
33010
- * Border Color X
33205
+ * Border Color Inline
33011
33206
  * @see https://tailwindcss.com/docs/border-color
33012
33207
  */
33013
33208
  'border-color-x': [{
33014
33209
  'border-x': scaleColor()
33015
33210
  }],
33016
33211
  /**
33017
- * Border Color Y
33212
+ * Border Color Block
33018
33213
  * @see https://tailwindcss.com/docs/border-color
33019
33214
  */
33020
33215
  'border-color-y': [{
33021
33216
  'border-y': scaleColor()
33022
33217
  }],
33023
33218
  /**
33024
- * Border Color S
33219
+ * Border Color Inline Start
33025
33220
  * @see https://tailwindcss.com/docs/border-color
33026
33221
  */
33027
33222
  'border-color-s': [{
33028
33223
  'border-s': scaleColor()
33029
33224
  }],
33030
33225
  /**
33031
- * Border Color E
33226
+ * Border Color Inline End
33032
33227
  * @see https://tailwindcss.com/docs/border-color
33033
33228
  */
33034
33229
  'border-color-e': [{
33035
33230
  'border-e': scaleColor()
33036
33231
  }],
33232
+ /**
33233
+ * Border Color Block Start
33234
+ * @see https://tailwindcss.com/docs/border-color
33235
+ */
33236
+ 'border-color-bs': [{
33237
+ 'border-bs': scaleColor()
33238
+ }],
33239
+ /**
33240
+ * Border Color Block End
33241
+ * @see https://tailwindcss.com/docs/border-color
33242
+ */
33243
+ 'border-color-be': [{
33244
+ 'border-be': scaleColor()
33245
+ }],
33037
33246
  /**
33038
33247
  * Border Color Top
33039
33248
  * @see https://tailwindcss.com/docs/border-color
@@ -33894,33 +34103,47 @@ const getDefaultConfig = () => {
33894
34103
  'scroll-m': scaleUnambiguousSpacing()
33895
34104
  }],
33896
34105
  /**
33897
- * Scroll Margin X
34106
+ * Scroll Margin Inline
33898
34107
  * @see https://tailwindcss.com/docs/scroll-margin
33899
34108
  */
33900
34109
  'scroll-mx': [{
33901
34110
  'scroll-mx': scaleUnambiguousSpacing()
33902
34111
  }],
33903
34112
  /**
33904
- * Scroll Margin Y
34113
+ * Scroll Margin Block
33905
34114
  * @see https://tailwindcss.com/docs/scroll-margin
33906
34115
  */
33907
34116
  'scroll-my': [{
33908
34117
  'scroll-my': scaleUnambiguousSpacing()
33909
34118
  }],
33910
34119
  /**
33911
- * Scroll Margin Start
34120
+ * Scroll Margin Inline Start
33912
34121
  * @see https://tailwindcss.com/docs/scroll-margin
33913
34122
  */
33914
34123
  'scroll-ms': [{
33915
34124
  'scroll-ms': scaleUnambiguousSpacing()
33916
34125
  }],
33917
34126
  /**
33918
- * Scroll Margin End
34127
+ * Scroll Margin Inline End
33919
34128
  * @see https://tailwindcss.com/docs/scroll-margin
33920
34129
  */
33921
34130
  'scroll-me': [{
33922
34131
  'scroll-me': scaleUnambiguousSpacing()
33923
34132
  }],
34133
+ /**
34134
+ * Scroll Margin Block Start
34135
+ * @see https://tailwindcss.com/docs/scroll-margin
34136
+ */
34137
+ 'scroll-mbs': [{
34138
+ 'scroll-mbs': scaleUnambiguousSpacing()
34139
+ }],
34140
+ /**
34141
+ * Scroll Margin Block End
34142
+ * @see https://tailwindcss.com/docs/scroll-margin
34143
+ */
34144
+ 'scroll-mbe': [{
34145
+ 'scroll-mbe': scaleUnambiguousSpacing()
34146
+ }],
33924
34147
  /**
33925
34148
  * Scroll Margin Top
33926
34149
  * @see https://tailwindcss.com/docs/scroll-margin
@@ -33957,33 +34180,47 @@ const getDefaultConfig = () => {
33957
34180
  'scroll-p': scaleUnambiguousSpacing()
33958
34181
  }],
33959
34182
  /**
33960
- * Scroll Padding X
34183
+ * Scroll Padding Inline
33961
34184
  * @see https://tailwindcss.com/docs/scroll-padding
33962
34185
  */
33963
34186
  'scroll-px': [{
33964
34187
  'scroll-px': scaleUnambiguousSpacing()
33965
34188
  }],
33966
34189
  /**
33967
- * Scroll Padding Y
34190
+ * Scroll Padding Block
33968
34191
  * @see https://tailwindcss.com/docs/scroll-padding
33969
34192
  */
33970
34193
  'scroll-py': [{
33971
34194
  'scroll-py': scaleUnambiguousSpacing()
33972
34195
  }],
33973
34196
  /**
33974
- * Scroll Padding Start
34197
+ * Scroll Padding Inline Start
33975
34198
  * @see https://tailwindcss.com/docs/scroll-padding
33976
34199
  */
33977
34200
  'scroll-ps': [{
33978
34201
  'scroll-ps': scaleUnambiguousSpacing()
33979
34202
  }],
33980
34203
  /**
33981
- * Scroll Padding End
34204
+ * Scroll Padding Inline End
33982
34205
  * @see https://tailwindcss.com/docs/scroll-padding
33983
34206
  */
33984
34207
  'scroll-pe': [{
33985
34208
  'scroll-pe': scaleUnambiguousSpacing()
33986
34209
  }],
34210
+ /**
34211
+ * Scroll Padding Block Start
34212
+ * @see https://tailwindcss.com/docs/scroll-padding
34213
+ */
34214
+ 'scroll-pbs': [{
34215
+ 'scroll-pbs': scaleUnambiguousSpacing()
34216
+ }],
34217
+ /**
34218
+ * Scroll Padding Block End
34219
+ * @see https://tailwindcss.com/docs/scroll-padding
34220
+ */
34221
+ 'scroll-pbe': [{
34222
+ 'scroll-pbe': scaleUnambiguousSpacing()
34223
+ }],
33987
34224
  /**
33988
34225
  * Scroll Padding Top
33989
34226
  * @see https://tailwindcss.com/docs/scroll-padding
@@ -34118,15 +34355,15 @@ const getDefaultConfig = () => {
34118
34355
  conflictingClassGroups: {
34119
34356
  overflow: ['overflow-x', 'overflow-y'],
34120
34357
  overscroll: ['overscroll-x', 'overscroll-y'],
34121
- inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],
34358
+ inset: ['inset-x', 'inset-y', 'inset-bs', 'inset-be', 'start', 'end', 'top', 'right', 'bottom', 'left'],
34122
34359
  'inset-x': ['right', 'left'],
34123
34360
  'inset-y': ['top', 'bottom'],
34124
34361
  flex: ['basis', 'grow', 'shrink'],
34125
34362
  gap: ['gap-x', 'gap-y'],
34126
- p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],
34363
+ p: ['px', 'py', 'ps', 'pe', 'pbs', 'pbe', 'pt', 'pr', 'pb', 'pl'],
34127
34364
  px: ['pr', 'pl'],
34128
34365
  py: ['pt', 'pb'],
34129
- m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],
34366
+ m: ['mx', 'my', 'ms', 'me', 'mbs', 'mbe', 'mt', 'mr', 'mb', 'ml'],
34130
34367
  mx: ['mr', 'ml'],
34131
34368
  my: ['mt', 'mb'],
34132
34369
  size: ['w', 'h'],
@@ -34146,18 +34383,18 @@ const getDefaultConfig = () => {
34146
34383
  'rounded-b': ['rounded-br', 'rounded-bl'],
34147
34384
  'rounded-l': ['rounded-tl', 'rounded-bl'],
34148
34385
  'border-spacing': ['border-spacing-x', 'border-spacing-y'],
34149
- 'border-w': ['border-w-x', 'border-w-y', 'border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],
34386
+ 'border-w': ['border-w-x', 'border-w-y', 'border-w-s', 'border-w-e', 'border-w-bs', 'border-w-be', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],
34150
34387
  'border-w-x': ['border-w-r', 'border-w-l'],
34151
34388
  'border-w-y': ['border-w-t', 'border-w-b'],
34152
- 'border-color': ['border-color-x', 'border-color-y', 'border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],
34389
+ 'border-color': ['border-color-x', 'border-color-y', 'border-color-s', 'border-color-e', 'border-color-bs', 'border-color-be', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],
34153
34390
  'border-color-x': ['border-color-r', 'border-color-l'],
34154
34391
  'border-color-y': ['border-color-t', 'border-color-b'],
34155
34392
  translate: ['translate-x', 'translate-y', 'translate-none'],
34156
34393
  'translate-none': ['translate', 'translate-x', 'translate-y', 'translate-z'],
34157
- 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],
34394
+ 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mbs', 'scroll-mbe', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],
34158
34395
  'scroll-mx': ['scroll-mr', 'scroll-ml'],
34159
34396
  'scroll-my': ['scroll-mt', 'scroll-mb'],
34160
- 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],
34397
+ 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pbs', 'scroll-pbe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],
34161
34398
  'scroll-px': ['scroll-pr', 'scroll-pl'],
34162
34399
  'scroll-py': ['scroll-pt', 'scroll-pb'],
34163
34400
  touch: ['touch-x', 'touch-y', 'touch-pz'],
@@ -34876,7 +35113,7 @@ var kindOfTest = type => {
34876
35113
  var typeOfTest = type => thing => typeof thing === type;
34877
35114
 
34878
35115
  /**
34879
- * Determine if a value is an Array
35116
+ * Determine if a value is a non-null object
34880
35117
  *
34881
35118
  * @param {Object} val The value to test
34882
35119
  *
@@ -35028,6 +35265,31 @@ var isDate = kindOfTest('Date');
35028
35265
  */
35029
35266
  var isFile = kindOfTest('File');
35030
35267
 
35268
+ /**
35269
+ * Determine if a value is a React Native Blob
35270
+ * React Native "blob": an object with a `uri` attribute. Optionally, it can
35271
+ * also have a `name` and `type` attribute to specify filename and content type
35272
+ *
35273
+ * @see https://github.com/facebook/react-native/blob/26684cf3adf4094eb6c405d345a75bf8c7c0bf88/Libraries/Network/FormData.js#L68-L71
35274
+ *
35275
+ * @param {*} value The value to test
35276
+ *
35277
+ * @returns {boolean} True if value is a React Native Blob, otherwise false
35278
+ */
35279
+ var isReactNativeBlob = value => {
35280
+ return !!(value && typeof value.uri !== 'undefined');
35281
+ };
35282
+
35283
+ /**
35284
+ * Determine if environment is React Native
35285
+ * ReactNative `FormData` has a non-standard `getParts()` method
35286
+ *
35287
+ * @param {*} formData The formData to test
35288
+ *
35289
+ * @returns {boolean} True if environment is React Native, otherwise false
35290
+ */
35291
+ var isReactNative = formData => formData && typeof formData.getParts !== 'undefined';
35292
+
35031
35293
  /**
35032
35294
  * Determine if a value is a Blob
35033
35295
  *
@@ -35062,9 +35324,18 @@ var isStream = val => isObject(val) && isFunction$1(val.pipe);
35062
35324
  *
35063
35325
  * @returns {boolean} True if value is an FormData, otherwise false
35064
35326
  */
35327
+ function getGlobal() {
35328
+ if (typeof globalThis !== 'undefined') return globalThis;
35329
+ if (typeof self !== 'undefined') return self;
35330
+ if (typeof window !== 'undefined') return window;
35331
+ if (typeof global !== 'undefined') return global;
35332
+ return {};
35333
+ }
35334
+ var G = getGlobal();
35335
+ var FormDataCtor = typeof G.FormData !== 'undefined' ? G.FormData : undefined;
35065
35336
  var isFormData = thing => {
35066
35337
  var kind;
35067
- return thing && (typeof FormData === 'function' && thing instanceof FormData || isFunction$1(thing.append) && ((kind = kindOf(thing)) === 'formdata' ||
35338
+ return thing && (FormDataCtor && thing instanceof FormDataCtor || isFunction$1(thing.append) && ((kind = kindOf(thing)) === 'formdata' ||
35068
35339
  // detect form-data instance
35069
35340
  kind === 'object' && isFunction$1(thing.toString) && thing.toString() === '[object FormData]'));
35070
35341
  };
@@ -35086,8 +35357,9 @@ var [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'R
35086
35357
  *
35087
35358
  * @returns {String} The String freed of excess whitespace
35088
35359
  */
35089
- var trim = str => str.trim ? str.trim() : str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
35090
-
35360
+ var trim = str => {
35361
+ return str.trim ? str.trim() : str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
35362
+ };
35091
35363
  /**
35092
35364
  * Iterate over an Array or an Object invoking a function for each item.
35093
35365
  *
@@ -35141,6 +35413,15 @@ function forEach(obj, fn) {
35141
35413
  }
35142
35414
  }
35143
35415
  }
35416
+
35417
+ /**
35418
+ * Finds a key in an object, case-insensitive, returning the actual key name.
35419
+ * Returns null if the object is a Buffer or if no match is found.
35420
+ *
35421
+ * @param {Object} obj - The object to search.
35422
+ * @param {string} key - The key to find (case-insensitive).
35423
+ * @returns {?string} The actual key name if found, otherwise null.
35424
+ */
35144
35425
  function findKey(obj, key) {
35145
35426
  if (isBuffer(obj)) {
35146
35427
  return null;
@@ -35159,8 +35440,8 @@ function findKey(obj, key) {
35159
35440
  }
35160
35441
  var _global = (() => {
35161
35442
  /*eslint no-undef:0*/
35162
- if (typeof globalThis !== "undefined") return globalThis;
35163
- return typeof self !== "undefined" ? self : typeof window !== 'undefined' ? window : global;
35443
+ if (typeof globalThis !== 'undefined') return globalThis;
35444
+ return typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : global;
35164
35445
  })();
35165
35446
  var isContextDefined = context => !isUndefined(context) && context !== _global;
35166
35447
 
@@ -35190,6 +35471,10 @@ function merge(/* obj1, obj2, obj3, ... */
35190
35471
  } = isContextDefined(this) && this || {};
35191
35472
  var result = {};
35192
35473
  var assignValue = (val, key) => {
35474
+ // Skip dangerous property names to prevent prototype pollution
35475
+ if (key === '__proto__' || key === 'constructor' || key === 'prototype') {
35476
+ return;
35477
+ }
35193
35478
  var targetKey = caseless && findKey(result, key) || key;
35194
35479
  if (isPlainObject(result[targetKey]) && isPlainObject(val)) {
35195
35480
  result[targetKey] = merge(result[targetKey], val);
@@ -35252,7 +35537,7 @@ var extend = function extend(a, b, thisArg) {
35252
35537
  * @returns {string} content value without BOM
35253
35538
  */
35254
35539
  var stripBOM = content => {
35255
- if (content.charCodeAt(0) === 0xFEFF) {
35540
+ if (content.charCodeAt(0) === 0xfeff) {
35256
35541
  content = content.slice(1);
35257
35542
  }
35258
35543
  return content;
@@ -35458,11 +35743,20 @@ var freezeMethods = obj => {
35458
35743
  }
35459
35744
  if (!descriptor.set) {
35460
35745
  descriptor.set = () => {
35461
- throw Error('Can not rewrite read-only method \'' + name + '\'');
35746
+ throw Error("Can not rewrite read-only method '" + name + "'");
35462
35747
  };
35463
35748
  }
35464
35749
  });
35465
35750
  };
35751
+
35752
+ /**
35753
+ * Converts an array or a delimited string into an object set with values as keys and true as values.
35754
+ * Useful for fast membership checks.
35755
+ *
35756
+ * @param {Array|string} arrayOrString - The array or string to convert.
35757
+ * @param {string} delimiter - The delimiter to use if input is a string.
35758
+ * @returns {Object} An object with keys from the array or string, values set to true.
35759
+ */
35466
35760
  var toObjectSet = (arrayOrString, delimiter) => {
35467
35761
  var obj = {};
35468
35762
  var define = arr => {
@@ -35488,6 +35782,13 @@ var toFiniteNumber = (value, defaultValue) => {
35488
35782
  function isSpecCompliantForm(thing) {
35489
35783
  return !!(thing && isFunction$1(thing.append) && thing[toStringTag] === 'FormData' && thing[iterator]);
35490
35784
  }
35785
+
35786
+ /**
35787
+ * Recursively converts an object to a JSON-compatible object, handling circular references and Buffers.
35788
+ *
35789
+ * @param {Object} obj - The object to convert.
35790
+ * @returns {Object} The JSON-compatible object.
35791
+ */
35491
35792
  var toJSONObject = obj => {
35492
35793
  var stack = new Array(10);
35493
35794
  var visit = (source, i) => {
@@ -35515,18 +35816,40 @@ var toJSONObject = obj => {
35515
35816
  };
35516
35817
  return visit(obj, 0);
35517
35818
  };
35819
+
35820
+ /**
35821
+ * Determines if a value is an async function.
35822
+ *
35823
+ * @param {*} thing - The value to test.
35824
+ * @returns {boolean} True if value is an async function, otherwise false.
35825
+ */
35518
35826
  var isAsyncFn = kindOfTest('AsyncFunction');
35827
+
35828
+ /**
35829
+ * Determines if a value is thenable (has then and catch methods).
35830
+ *
35831
+ * @param {*} thing - The value to test.
35832
+ * @returns {boolean} True if value is thenable, otherwise false.
35833
+ */
35519
35834
  var isThenable = thing => thing && (isObject(thing) || isFunction$1(thing)) && isFunction$1(thing.then) && isFunction$1(thing.catch);
35520
35835
 
35521
35836
  // original code
35522
35837
  // https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34
35523
35838
 
35839
+ /**
35840
+ * Provides a cross-platform setImmediate implementation.
35841
+ * Uses native setImmediate if available, otherwise falls back to postMessage or setTimeout.
35842
+ *
35843
+ * @param {boolean} setImmediateSupported - Whether setImmediate is supported.
35844
+ * @param {boolean} postMessageSupported - Whether postMessage is supported.
35845
+ * @returns {Function} A function to schedule a callback asynchronously.
35846
+ */
35524
35847
  var _setImmediate = ((setImmediateSupported, postMessageSupported) => {
35525
35848
  if (setImmediateSupported) {
35526
35849
  return setImmediate;
35527
35850
  }
35528
35851
  return postMessageSupported ? ((token, callbacks) => {
35529
- _global.addEventListener("message", _ref2 => {
35852
+ _global.addEventListener('message', _ref2 => {
35530
35853
  var {
35531
35854
  source,
35532
35855
  data
@@ -35537,10 +35860,17 @@ var _setImmediate = ((setImmediateSupported, postMessageSupported) => {
35537
35860
  }, false);
35538
35861
  return cb => {
35539
35862
  callbacks.push(cb);
35540
- _global.postMessage(token, "*");
35863
+ _global.postMessage(token, '*');
35541
35864
  };
35542
35865
  })("axios@".concat(Math.random()), []) : cb => setTimeout(cb);
35543
35866
  })(typeof setImmediate === 'function', isFunction$1(_global.postMessage));
35867
+
35868
+ /**
35869
+ * Schedules a microtask or asynchronous callback as soon as possible.
35870
+ * Uses queueMicrotask if available, otherwise falls back to process.nextTick or _setImmediate.
35871
+ *
35872
+ * @type {Function}
35873
+ */
35544
35874
  var asap = typeof queueMicrotask !== 'undefined' ? queueMicrotask.bind(_global) : typeof process !== 'undefined' && process.nextTick || _setImmediate;
35545
35875
 
35546
35876
  // *********************
@@ -35565,6 +35895,8 @@ var utils$1 = {
35565
35895
  isUndefined,
35566
35896
  isDate,
35567
35897
  isFile,
35898
+ isReactNativeBlob,
35899
+ isReactNative,
35568
35900
  isBlob,
35569
35901
  isRegExp,
35570
35902
  isFunction: isFunction$1,
@@ -35612,6 +35944,11 @@ let AxiosError$1 = class AxiosError extends Error {
35612
35944
  var axiosError = new AxiosError(error.message, code || error.code, config, request, response);
35613
35945
  axiosError.cause = error;
35614
35946
  axiosError.name = error.name;
35947
+
35948
+ // Preserve status from the original error if not already set from response
35949
+ if (error.status != null && axiosError.status == null) {
35950
+ axiosError.status = error.status;
35951
+ }
35615
35952
  customProps && Object.assign(axiosError, customProps);
35616
35953
  return axiosError;
35617
35954
  }
@@ -35629,6 +35966,16 @@ let AxiosError$1 = class AxiosError extends Error {
35629
35966
  */
35630
35967
  constructor(message, code, config, request, response) {
35631
35968
  super(message);
35969
+
35970
+ // Make message enumerable to maintain backward compatibility
35971
+ // The native Error constructor sets message as non-enumerable,
35972
+ // but axios < v1.13.3 had it as enumerable
35973
+ Object.defineProperty(this, 'message', {
35974
+ value: message,
35975
+ enumerable: true,
35976
+ writable: true,
35977
+ configurable: true
35978
+ });
35632
35979
  this.name = 'AxiosError';
35633
35980
  this.isAxiosError = true;
35634
35981
  code && (this.code = code);
@@ -35810,6 +36157,10 @@ function toFormData$1(obj, formData, options) {
35810
36157
  */
35811
36158
  function defaultVisitor(value, key, path) {
35812
36159
  var arr = value;
36160
+ if (utils$1.isReactNative(formData) && utils$1.isReactNativeBlob(value)) {
36161
+ formData.append(renderKey(path, key, dots), convertValue(value));
36162
+ return false;
36163
+ }
35813
36164
  if (value && !path && typeof value === 'object') {
35814
36165
  if (utils$1.endsWith(key, '{}')) {
35815
36166
  // eslint-disable-next-line no-param-reassign
@@ -35945,7 +36296,7 @@ function buildURL(url, params, options) {
35945
36296
  serializedParams = utils$1.isURLSearchParams(params) ? params.toString() : new AxiosURLSearchParams(params, _options).toString(_encode);
35946
36297
  }
35947
36298
  if (serializedParams) {
35948
- var hashmarkIndex = url.indexOf("#");
36299
+ var hashmarkIndex = url.indexOf('#');
35949
36300
  if (hashmarkIndex !== -1) {
35950
36301
  url = url.slice(0, hashmarkIndex);
35951
36302
  }
@@ -36024,7 +36375,8 @@ class InterceptorManager {
36024
36375
  var transitionalDefaults = {
36025
36376
  silentJSONParsing: true,
36026
36377
  forcedJSONParsing: true,
36027
- clarifyTimeoutError: false
36378
+ clarifyTimeoutError: false,
36379
+ legacyInterceptorReqResOrdering: true
36028
36380
  };
36029
36381
 
36030
36382
  var URLSearchParams$1 = typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;
@@ -36288,7 +36640,7 @@ var defaults = {
36288
36640
  },
36289
36641
  headers: {
36290
36642
  common: {
36291
- 'Accept': 'application/json, text/plain, */*',
36643
+ Accept: 'application/json, text/plain, */*',
36292
36644
  'Content-Type': undefined
36293
36645
  }
36294
36646
  }
@@ -36533,7 +36885,7 @@ let AxiosHeaders$1 = class AxiosHeaders {
36533
36885
  }).join('\n');
36534
36886
  }
36535
36887
  getSetCookie() {
36536
- return this.get("set-cookie") || [];
36888
+ return this.get('set-cookie') || [];
36537
36889
  }
36538
36890
  get [Symbol.toStringTag]() {
36539
36891
  return 'AxiosHeaders';
@@ -36827,6 +37179,9 @@ function isAbsoluteURL(url) {
36827
37179
  // A URL is considered absolute if it begins with "<scheme>://" or "//" (protocol-relative URL).
36828
37180
  // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed
36829
37181
  // by any combination of letters, digits, plus, period, or hyphen.
37182
+ if (typeof url !== 'string') {
37183
+ return false;
37184
+ }
36830
37185
  return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url);
36831
37186
  }
36832
37187
 
@@ -36951,7 +37306,8 @@ function mergeConfig$1(config1, config2) {
36951
37306
  headers: (a, b, prop) => mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true)
36952
37307
  };
36953
37308
  utils$1.forEach(Object.keys(_objectSpread2(_objectSpread2({}, config1), config2)), function computeConfigValue(prop) {
36954
- var merge = mergeMap[prop] || mergeDeepProperties;
37309
+ if (prop === '__proto__' || prop === 'constructor' || prop === 'prototype') return;
37310
+ var merge = utils$1.hasOwnProp(mergeMap, prop) ? mergeMap[prop] : mergeDeepProperties;
36955
37311
  var configValue = merge(config1[prop], config2[prop], prop);
36956
37312
  utils$1.isUndefined(configValue) && merge !== mergeDirectKeys || (config[prop] = configValue);
36957
37313
  });
@@ -37479,7 +37835,7 @@ var factory = env => {
37479
37835
  var _request = new Request(url, {
37480
37836
  method: 'POST',
37481
37837
  body: data,
37482
- duplex: "half"
37838
+ duplex: 'half'
37483
37839
  });
37484
37840
  var contentTypeHeader;
37485
37841
  if (utils$1.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {
@@ -37496,13 +37852,13 @@ var factory = env => {
37496
37852
 
37497
37853
  // Cloudflare Workers throws when credentials are defined
37498
37854
  // see https://github.com/cloudflare/workerd/issues/902
37499
- var isCredentialsSupported = isRequestSupported && "credentials" in Request.prototype;
37855
+ var isCredentialsSupported = isRequestSupported && 'credentials' in Request.prototype;
37500
37856
  var resolvedOptions = _objectSpread2(_objectSpread2({}, fetchOptions), {}, {
37501
37857
  signal: composedSignal,
37502
37858
  method: method.toUpperCase(),
37503
37859
  headers: headers.normalize().toJSON(),
37504
37860
  body: data,
37505
- duplex: "half",
37861
+ duplex: 'half',
37506
37862
  credentials: isCredentialsSupported ? withCredentials : undefined
37507
37863
  });
37508
37864
  request = isRequestSupported && new Request(url, resolvedOptions);
@@ -37536,11 +37892,11 @@ var factory = env => {
37536
37892
  } catch (err) {
37537
37893
  unsubscribe && unsubscribe();
37538
37894
  if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {
37539
- throw Object.assign(new AxiosError$1('Network Error', AxiosError$1.ERR_NETWORK, config, request), {
37895
+ throw Object.assign(new AxiosError$1('Network Error', AxiosError$1.ERR_NETWORK, config, request, err && err.response), {
37540
37896
  cause: err.cause || err
37541
37897
  });
37542
37898
  }
37543
- throw AxiosError$1.from(err, err && err.code, config, request);
37899
+ throw AxiosError$1.from(err, err && err.code, config, request, err && err.response);
37544
37900
  }
37545
37901
  });
37546
37902
  return function (_x5) {
@@ -37578,7 +37934,7 @@ getFetch();
37578
37934
  * - `http` for Node.js
37579
37935
  * - `xhr` for browsers
37580
37936
  * - `fetch` for fetch API-based requests
37581
- *
37937
+ *
37582
37938
  * @type {Object<string, Function|Object>}
37583
37939
  */
37584
37940
  var knownAdapters = {
@@ -37607,7 +37963,7 @@ utils$1.forEach(knownAdapters, (fn, value) => {
37607
37963
 
37608
37964
  /**
37609
37965
  * Render a rejection reason string for unknown or unsupported adapters
37610
- *
37966
+ *
37611
37967
  * @param {string} reason
37612
37968
  * @returns {string}
37613
37969
  */
@@ -37615,7 +37971,7 @@ var renderReason = reason => "- ".concat(reason);
37615
37971
 
37616
37972
  /**
37617
37973
  * Check if the adapter is resolved (function, null, or false)
37618
- *
37974
+ *
37619
37975
  * @param {Function|null|false} adapter
37620
37976
  * @returns {boolean}
37621
37977
  */
@@ -37625,7 +37981,7 @@ var isResolvedHandle = adapter => utils$1.isFunction(adapter) || adapter === nul
37625
37981
  * Get the first suitable adapter from the provided list.
37626
37982
  * Tries each adapter in order until a supported one is found.
37627
37983
  * Throws an AxiosError if no adapter is suitable.
37628
- *
37984
+ *
37629
37985
  * @param {Array<string|Function>|string|Function} adapters - Adapter(s) by name or function.
37630
37986
  * @param {Object} config - Axios request configuration
37631
37987
  * @throws {AxiosError} If no suitable adapter is available
@@ -37735,7 +38091,7 @@ function dispatchRequest(config) {
37735
38091
  });
37736
38092
  }
37737
38093
 
37738
- var VERSION$1 = "1.13.4";
38094
+ var VERSION$1 = "1.13.6";
37739
38095
 
37740
38096
  var validators$1 = {};
37741
38097
 
@@ -37758,7 +38114,7 @@ var deprecatedWarnings = {};
37758
38114
  */
37759
38115
  validators$1.transitional = function transitional(validator, version, message) {
37760
38116
  function formatMessage(opt, desc) {
37761
- return '[Axios v' + VERSION$1 + '] Transitional option \'' + opt + '\'' + desc + (message ? '. ' + message : '');
38117
+ return '[Axios v' + VERSION$1 + "] Transitional option '" + opt + "'" + desc + (message ? '. ' + message : '');
37762
38118
  }
37763
38119
 
37764
38120
  // eslint-disable-next-line func-names
@@ -37891,7 +38247,8 @@ let Axios$1 = class Axios {
37891
38247
  validator.assertOptions(transitional, {
37892
38248
  silentJSONParsing: validators.transitional(validators.boolean),
37893
38249
  forcedJSONParsing: validators.transitional(validators.boolean),
37894
- clarifyTimeoutError: validators.transitional(validators.boolean)
38250
+ clarifyTimeoutError: validators.transitional(validators.boolean),
38251
+ legacyInterceptorReqResOrdering: validators.transitional(validators.boolean)
37895
38252
  }, false);
37896
38253
  }
37897
38254
  if (paramsSerializer != null) {
@@ -37936,7 +38293,13 @@ let Axios$1 = class Axios {
37936
38293
  return;
37937
38294
  }
37938
38295
  synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;
37939
- requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);
38296
+ var transitional = config.transitional || transitionalDefaults;
38297
+ var legacyInterceptorReqResOrdering = transitional && transitional.legacyInterceptorReqResOrdering;
38298
+ if (legacyInterceptorReqResOrdering) {
38299
+ requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);
38300
+ } else {
38301
+ requestInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);
38302
+ }
37940
38303
  });
37941
38304
  var responseInterceptorChain = [];
37942
38305
  this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {
@@ -38781,7 +39144,7 @@ var TypingIndicator = /*#__PURE__*/React.memo(_ref => {
38781
39144
  TypingIndicator.displayName = 'TypingIndicator';
38782
39145
 
38783
39146
  /**
38784
- * @license @tabler/icons-react v3.36.1 - MIT
39147
+ * @license @tabler/icons-react v3.40.0 - MIT
38785
39148
  *
38786
39149
  * This source code is licensed under the MIT license.
38787
39150
  * See the LICENSE file in the root directory of this source tree.
@@ -38810,7 +39173,7 @@ var defaultAttributes = {
38810
39173
  };
38811
39174
 
38812
39175
  /**
38813
- * @license @tabler/icons-react v3.36.1 - MIT
39176
+ * @license @tabler/icons-react v3.40.0 - MIT
38814
39177
  *
38815
39178
  * This source code is licensed under the MIT license.
38816
39179
  * See the LICENSE file in the root directory of this source tree.
@@ -38845,7 +39208,7 @@ const createReactComponent = (type, iconName, iconNamePascal, iconNode) => {
38845
39208
  };
38846
39209
 
38847
39210
  /**
38848
- * @license @tabler/icons-react v3.36.1 - MIT
39211
+ * @license @tabler/icons-react v3.40.0 - MIT
38849
39212
  *
38850
39213
  * This source code is licensed under the MIT license.
38851
39214
  * See the LICENSE file in the root directory of this source tree.
@@ -38856,7 +39219,7 @@ const __iconNode$1 = [["path", { "d": "M19.5 12.572l-7.5 7.428l-7.5 -7.428a5 5 0
38856
39219
  const IconHeart = createReactComponent("outline", "heart", "Heart", __iconNode$1);
38857
39220
 
38858
39221
  /**
38859
- * @license @tabler/icons-react v3.36.1 - MIT
39222
+ * @license @tabler/icons-react v3.40.0 - MIT
38860
39223
  *
38861
39224
  * This source code is licensed under the MIT license.
38862
39225
  * See the LICENSE file in the root directory of this source tree.