@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.esm.js CHANGED
@@ -422,7 +422,7 @@ var deepFind = function deepFind(obj, path) {
422
422
  }
423
423
  return current;
424
424
  };
425
- var getCleanedCode = code => code === null || code === void 0 ? void 0 : code.replace('_', '-');
425
+ var getCleanedCode = code => code === null || code === void 0 ? void 0 : code.replace(/_/g, '-');
426
426
  var consoleLogger = {
427
427
  type: 'logger',
428
428
  log(args) {
@@ -697,11 +697,20 @@ function createProxy() {
697
697
  return Proxy.revocable(Object.create(null), handler).proxy;
698
698
  }
699
699
  function keysFromSelector(selector, opts) {
700
- var _opts$keySeparator;
700
+ var _opts$keySeparator, _opts$nsSeparator;
701
701
  var {
702
702
  [PATH_KEY]: path
703
703
  } = selector(createProxy());
704
- return path.join((_opts$keySeparator = opts === null || opts === void 0 ? void 0 : opts.keySeparator) !== null && _opts$keySeparator !== void 0 ? _opts$keySeparator : '.');
704
+ var keySeparator = (_opts$keySeparator = opts === null || opts === void 0 ? void 0 : opts.keySeparator) !== null && _opts$keySeparator !== void 0 ? _opts$keySeparator : '.';
705
+ var nsSeparator = (_opts$nsSeparator = opts === null || opts === void 0 ? void 0 : opts.nsSeparator) !== null && _opts$nsSeparator !== void 0 ? _opts$nsSeparator : ':';
706
+ if (path.length > 1 && nsSeparator) {
707
+ var ns = opts === null || opts === void 0 ? void 0 : opts.ns;
708
+ var nsArray = Array.isArray(ns) ? ns : null;
709
+ if (nsArray && nsArray.length > 1 && nsArray.slice(1).includes(path[0])) {
710
+ return "".concat(path[0]).concat(nsSeparator).concat(path.slice(1).join(keySeparator));
711
+ }
712
+ }
713
+ return path.join(keySeparator);
705
714
  }
706
715
  var checkedLoadedFor = {};
707
716
  var shouldHandleAsObject = res => !isString$1(res) && typeof res !== 'boolean' && typeof res !== 'number';
@@ -767,6 +776,7 @@ class Translator extends EventEmitter {
767
776
  if (keys == null) return '';
768
777
  if (typeof keys === 'function') keys = keysFromSelector(keys, _objectSpread2(_objectSpread2({}, this.options), opt));
769
778
  if (!Array.isArray(keys)) keys = [String(keys)];
779
+ keys = keys.map(k => typeof k === 'function' ? keysFromSelector(k, _objectSpread2(_objectSpread2({}, this.options), opt)) : String(k));
770
780
  var returnDetails = opt.returnDetails !== undefined ? opt.returnDetails : this.options.returnDetails;
771
781
  var keySeparator = opt.keySeparator !== undefined ? opt.keySeparator : this.options.keySeparator;
772
782
  var {
@@ -1000,6 +1010,7 @@ class Translator extends EventEmitter {
1000
1010
  var usedLng;
1001
1011
  var usedNS;
1002
1012
  if (isString$1(keys)) keys = [keys];
1013
+ if (Array.isArray(keys)) keys = keys.map(k => typeof k === 'function' ? keysFromSelector(k, _objectSpread2(_objectSpread2({}, this.options), opt)) : k);
1003
1014
  keys.forEach(k => {
1004
1015
  if (this.isValidLookup(found)) return;
1005
1016
  var extracted = this.extractFromKey(k, opt);
@@ -1259,7 +1270,7 @@ class PluralResolver {
1259
1270
  type
1260
1271
  });
1261
1272
  } catch (err) {
1262
- if (!Intl) {
1273
+ if (typeof Intl === 'undefined') {
1263
1274
  this.logger.error('No Intl support, please use an Intl polyfill!');
1264
1275
  return dummyRule;
1265
1276
  }
@@ -1445,16 +1456,16 @@ class Interpolator {
1445
1456
  var value;
1446
1457
  var clonedOptions;
1447
1458
  var handleHasOptions = (key, inheritedOptions) => {
1448
- var _matchedSingleQuotes$;
1459
+ var _matchedSingleQuotes$, _matchedDoubleQuotes$;
1449
1460
  var sep = this.nestingOptionsSeparator;
1450
1461
  if (key.indexOf(sep) < 0) return key;
1451
- var c = key.split(new RegExp("".concat(sep, "[ ]*{")));
1462
+ var c = key.split(new RegExp("".concat(regexEscape(sep), "[ ]*{")));
1452
1463
  var optionsString = "{".concat(c[1]);
1453
1464
  key = c[0];
1454
1465
  optionsString = this.interpolate(optionsString, clonedOptions);
1455
1466
  var matchedSingleQuotes = optionsString.match(/'/g);
1456
1467
  var matchedDoubleQuotes = optionsString.match(/"/g);
1457
- if (((_matchedSingleQuotes$ = matchedSingleQuotes === null || matchedSingleQuotes === void 0 ? void 0 : matchedSingleQuotes.length) !== null && _matchedSingleQuotes$ !== void 0 ? _matchedSingleQuotes$ : 0) % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {
1468
+ 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) {
1458
1469
  optionsString = optionsString.replace(/'/g, '"');
1459
1470
  }
1460
1471
  try {
@@ -1927,6 +1938,31 @@ var bindMemberFunctions = inst => {
1927
1938
  }
1928
1939
  });
1929
1940
  };
1941
+ var SUPPORT_NOTICE_KEY = '__i18next_supportNoticeShown';
1942
+ var getSupportNoticeShown = () => {
1943
+ if (typeof globalThis !== 'undefined' && !!globalThis[SUPPORT_NOTICE_KEY]) return true;
1944
+ if (typeof process !== 'undefined' && process.env && process.env.I18NEXT_NO_SUPPORT_NOTICE) return true;
1945
+ return false;
1946
+ };
1947
+ var setSupportNoticeShown = () => {
1948
+ if (typeof globalThis !== 'undefined') globalThis[SUPPORT_NOTICE_KEY] = true;
1949
+ };
1950
+ var usesLocize = inst => {
1951
+ var _inst$modules, _inst$modules2, _inst$options, _inst$options2, _inst$options3;
1952
+ 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;
1953
+ 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;
1954
+ 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) {
1955
+ if (inst.options.backend.backends.some(b => {
1956
+ var _b$name, _b$constructor;
1957
+ 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;
1958
+ })) return true;
1959
+ }
1960
+ 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;
1961
+ 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) {
1962
+ if (inst.options.backend.backendOptions.some(b => b === null || b === void 0 ? void 0 : b.projectId)) return true;
1963
+ }
1964
+ return false;
1965
+ };
1930
1966
  class I18n extends EventEmitter {
1931
1967
  constructor() {
1932
1968
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
@@ -1977,8 +2013,9 @@ class I18n extends EventEmitter {
1977
2013
  if (typeof this.options.overloadTranslationOptionHandler !== 'function') {
1978
2014
  this.options.overloadTranslationOptionHandler = defOpts.overloadTranslationOptionHandler;
1979
2015
  }
1980
- if (this.options.debug === true) {
1981
- 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');
2016
+ if (this.options.showSupportNotice !== false && !usesLocize(this) && !getSupportNoticeShown()) {
2017
+ 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 💙');
2018
+ setSupportNoticeShown();
1982
2019
  }
1983
2020
  var createClassOnDemand = ClassOrObject => {
1984
2021
  if (!ClassOrObject) return null;
@@ -2258,15 +2295,17 @@ class I18n extends EventEmitter {
2258
2295
  o.lngs = o.lngs || _fixedT.lngs;
2259
2296
  o.ns = o.ns || _fixedT.ns;
2260
2297
  if (o.keyPrefix !== '') o.keyPrefix = o.keyPrefix || keyPrefix || _fixedT.keyPrefix;
2298
+ var selectorOpts = _objectSpread2(_objectSpread2({}, _this4.options), o);
2299
+ if (typeof o.keyPrefix === 'function') o.keyPrefix = keysFromSelector(o.keyPrefix, selectorOpts);
2261
2300
  var keySeparator = _this4.options.keySeparator || '.';
2262
2301
  var resultKey;
2263
2302
  if (o.keyPrefix && Array.isArray(key)) {
2264
2303
  resultKey = key.map(k => {
2265
- if (typeof k === 'function') k = keysFromSelector(k, _objectSpread2(_objectSpread2({}, _this4.options), opts));
2304
+ if (typeof k === 'function') k = keysFromSelector(k, selectorOpts);
2266
2305
  return "".concat(o.keyPrefix).concat(keySeparator).concat(k);
2267
2306
  });
2268
2307
  } else {
2269
- if (typeof key === 'function') key = keysFromSelector(key, _objectSpread2(_objectSpread2({}, _this4.options), opts));
2308
+ if (typeof key === 'function') key = keysFromSelector(key, selectorOpts);
2270
2309
  resultKey = o.keyPrefix ? "".concat(o.keyPrefix).concat(keySeparator).concat(key) : key;
2271
2310
  }
2272
2311
  return _this4.t(resultKey, o);
@@ -3152,12 +3191,13 @@ function requireAbly() {
3152
3191
  if (err.statusCode) result += "; statusCode=" + err.statusCode;
3153
3192
  if (err.code) result += "; code=" + err.code;
3154
3193
  if (err.cause) result += "; cause=" + _inspectError(err.cause);
3194
+ if (err.detail && Object.keys(err.detail).length > 0) result += "; detail=" + JSON.stringify(err.detail);
3155
3195
  if (err.href && !(err.message && err.message.indexOf("help.ably.io") > -1)) result += "; see " + err.href + " ";
3156
3196
  result += "]";
3157
3197
  return result;
3158
3198
  }
3159
3199
  var _ErrorInfo2 = class _ErrorInfo extends Error {
3160
- constructor(message, code, statusCode, cause) {
3200
+ constructor(message, code, statusCode, cause, detail) {
3161
3201
  super(message);
3162
3202
  if (typeof Object.setPrototypeOf !== "undefined") {
3163
3203
  Object.setPrototypeOf(this, _ErrorInfo.prototype);
@@ -3165,6 +3205,7 @@ function requireAbly() {
3165
3205
  this.code = code;
3166
3206
  this.statusCode = statusCode;
3167
3207
  this.cause = cause;
3208
+ this.detail = detail;
3168
3209
  }
3169
3210
  toString() {
3170
3211
  return toString(this);
@@ -3173,12 +3214,13 @@ function requireAbly() {
3173
3214
  var {
3174
3215
  message,
3175
3216
  code,
3176
- statusCode
3217
+ statusCode,
3218
+ detail
3177
3219
  } = values;
3178
- if (typeof message !== "string" || typeof code !== "number" || typeof statusCode !== "number") {
3220
+ if (typeof message !== "string" || typeof code !== "number" || typeof statusCode !== "number" || !_isNil(detail) && (typeof detail !== "object" || Array.isArray(detail))) {
3179
3221
  throw new Error("ErrorInfo.fromValues(): invalid values: " + Platform.Config.inspect(values));
3180
3222
  }
3181
- var result = Object.assign(new _ErrorInfo(message, code, statusCode), values);
3223
+ var result = Object.assign(new _ErrorInfo(message, code, statusCode, void 0, detail), values);
3182
3224
  if (result.code && !result.href) {
3183
3225
  result.href = "https://help.ably.io/error/" + result.code;
3184
3226
  }
@@ -3186,7 +3228,7 @@ function requireAbly() {
3186
3228
  }
3187
3229
  };
3188
3230
  var PartialErrorInfo = class _PartialErrorInfo extends Error {
3189
- constructor(message, code, statusCode, cause) {
3231
+ constructor(message, code, statusCode, cause, detail) {
3190
3232
  super(message);
3191
3233
  if (typeof Object.setPrototypeOf !== "undefined") {
3192
3234
  Object.setPrototypeOf(this, _PartialErrorInfo.prototype);
@@ -3194,6 +3236,7 @@ function requireAbly() {
3194
3236
  this.code = code;
3195
3237
  this.statusCode = statusCode;
3196
3238
  this.cause = cause;
3239
+ this.detail = detail;
3197
3240
  }
3198
3241
  toString() {
3199
3242
  return toString(this);
@@ -3202,12 +3245,13 @@ function requireAbly() {
3202
3245
  var {
3203
3246
  message,
3204
3247
  code,
3205
- statusCode
3248
+ statusCode,
3249
+ detail
3206
3250
  } = values;
3207
- if (typeof message !== "string" || !_isNil(code) && typeof code !== "number" || !_isNil(statusCode) && typeof statusCode !== "number") {
3251
+ if (typeof message !== "string" || !_isNil(code) && typeof code !== "number" || !_isNil(statusCode) && typeof statusCode !== "number" || !_isNil(detail) && (typeof detail !== "object" || Array.isArray(detail))) {
3208
3252
  throw new Error("PartialErrorInfo.fromValues(): invalid values: " + Platform.Config.inspect(values));
3209
3253
  }
3210
- var result = Object.assign(new _PartialErrorInfo(message, code, statusCode), values);
3254
+ var result = Object.assign(new _PartialErrorInfo(message, code, statusCode, void 0, detail), values);
3211
3255
  if (result.code && !result.href) {
3212
3256
  result.href = "https://help.ably.io/error/" + result.code;
3213
3257
  }
@@ -3558,7 +3602,7 @@ function requireAbly() {
3558
3602
  }
3559
3603
 
3560
3604
  // package.json
3561
- var version = "2.17.1";
3605
+ var version = "2.21.0";
3562
3606
 
3563
3607
  // src/common/lib/util/defaults.ts
3564
3608
  var agent = "ably-js/" + version;
@@ -3589,7 +3633,7 @@ function requireAbly() {
3589
3633
  httpMaxRetryCount: 3,
3590
3634
  maxMessageSize: 65536,
3591
3635
  version,
3592
- protocolVersion: 5,
3636
+ protocolVersion: 6,
3593
3637
  agent,
3594
3638
  getPort,
3595
3639
  getHttpScheme,
@@ -5189,7 +5233,7 @@ function requireAbly() {
5189
5233
  this.Utils = utils_exports;
5190
5234
  this.EventEmitter = eventemitter_default;
5191
5235
  this.MessageEncoding = MessageEncoding;
5192
- var _a2, _b, _c, _d, _e, _f, _g, _h, _i, _j;
5236
+ var _a2, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;
5193
5237
  this._additionalHTTPRequestImplementations = (_a2 = options.plugins) != null ? _a2 : null;
5194
5238
  this.logger = new logger_default();
5195
5239
  this.logger.setLog(options.logLevel, options.logHandler);
@@ -5218,6 +5262,7 @@ function requireAbly() {
5218
5262
  this._Crypto = (_f = (_e = options.plugins) == null ? void 0 : _e.Crypto) != null ? _f : null;
5219
5263
  this.__FilteredSubscriptions = (_h = (_g = options.plugins) == null ? void 0 : _g.MessageInteractions) != null ? _h : null;
5220
5264
  this._Annotations = (_j = (_i = options.plugins) == null ? void 0 : _i.Annotations) != null ? _j : null;
5265
+ this._liveObjectsPlugin = (_l = (_k = options.plugins) == null ? void 0 : _k.LiveObjects) != null ? _l : null;
5221
5266
  }
5222
5267
  get rest() {
5223
5268
  if (!this._rest) {
@@ -5700,6 +5745,7 @@ function requireAbly() {
5700
5745
  this.headers = headers;
5701
5746
  this.errorCode = err && err.code;
5702
5747
  this.errorMessage = err && err.message;
5748
+ this.errorDetail = err == null ? void 0 : err.detail;
5703
5749
  }
5704
5750
  toJSON() {
5705
5751
  return {
@@ -5708,7 +5754,8 @@ function requireAbly() {
5708
5754
  success: this.success,
5709
5755
  headers: this.headers,
5710
5756
  errorCode: this.errorCode,
5711
- errorMessage: this.errorMessage
5757
+ errorMessage: this.errorMessage,
5758
+ errorDetail: this.errorDetail
5712
5759
  };
5713
5760
  }
5714
5761
  };
@@ -6396,6 +6443,9 @@ function requireAbly() {
6396
6443
  if (client._Annotations) {
6397
6444
  this._annotations = new client._Annotations.RestAnnotations(this);
6398
6445
  }
6446
+ if (client._liveObjectsPlugin) {
6447
+ this._object = new client._liveObjectsPlugin.RestObject(this);
6448
+ }
6399
6449
  }
6400
6450
  get annotations() {
6401
6451
  if (!this._annotations) {
@@ -6409,6 +6459,12 @@ function requireAbly() {
6409
6459
  }
6410
6460
  return this._push;
6411
6461
  }
6462
+ get object() {
6463
+ if (!this._object) {
6464
+ _throwMissingPluginError("LiveObjects");
6465
+ }
6466
+ return this._object;
6467
+ }
6412
6468
  get logger() {
6413
6469
  return this.client.logger;
6414
6470
  }
@@ -7240,7 +7296,6 @@ function requireAbly() {
7240
7296
  var channelstatechange_default = ChannelStateChange;
7241
7297
 
7242
7298
  // src/common/lib/client/realtimechannel.ts
7243
- var noop = function noop() {};
7244
7299
  function validateChannelOptions(options) {
7245
7300
  if (options && "params" in options && !_isObject(options.params)) {
7246
7301
  return new _ErrorInfo2("options.params must be an object", 4e4, 400);
@@ -7259,7 +7314,7 @@ function requireAbly() {
7259
7314
  }
7260
7315
  var RealtimeChannel = class _RealtimeChannel extends eventemitter_default {
7261
7316
  constructor(client, name, options) {
7262
- var _a2, _b, _c;
7317
+ var _a2, _b;
7263
7318
  super(client.logger);
7264
7319
  this._annotations = null;
7265
7320
  this._mode = 0;
@@ -7316,12 +7371,13 @@ function requireAbly() {
7316
7371
  protocolMessageChannelSerial: null,
7317
7372
  decodeFailureRecoveryInProgress: null
7318
7373
  };
7319
- this._allChannelChanges = new eventemitter_default(this.logger);
7374
+ this._attachedReceived = new eventemitter_default(this.logger);
7375
+ this.internalStateChanges = new eventemitter_default(this.logger);
7320
7376
  if ((_b = client.options.plugins) == null ? void 0 : _b.Push) {
7321
7377
  this._push = new client.options.plugins.Push.PushChannel(this);
7322
7378
  }
7323
- if ((_c = client.options.plugins) == null ? void 0 : _c.LiveObjects) {
7324
- this._object = new client.options.plugins.LiveObjects.RealtimeObject(this);
7379
+ if (client._liveObjectsPlugin) {
7380
+ this._object = new client._liveObjectsPlugin.RealtimeObject(this);
7325
7381
  }
7326
7382
  }
7327
7383
  get presence() {
@@ -7349,6 +7405,14 @@ function requireAbly() {
7349
7405
  }
7350
7406
  return this._object;
7351
7407
  }
7408
+ // Override of EventEmitter method
7409
+ emit(event) {
7410
+ for (var _len0 = arguments.length, args = new Array(_len0 > 1 ? _len0 - 1 : 0), _key0 = 1; _key0 < _len0; _key0++) {
7411
+ args[_key0 - 1] = arguments[_key0];
7412
+ }
7413
+ super.emit(event, ...args);
7414
+ this.internalStateChanges.emit(event, ...args);
7415
+ }
7352
7416
  invalidStateError() {
7353
7417
  return new _ErrorInfo2("Channel operation failed as channel state is " + this.state, 90001, 400, this.errorReason || void 0);
7354
7418
  }
@@ -7373,16 +7437,20 @@ function requireAbly() {
7373
7437
  if (_this67._shouldReattachToSetOptions(options, previousChannelOptions)) {
7374
7438
  _this67.attachImpl();
7375
7439
  return new Promise((resolve, reject) => {
7376
- _this67._allChannelChanges.once(["attached", "update", "detached", "failed"], function (stateChange) {
7377
- switch (this.event) {
7378
- case "update":
7379
- case "attached":
7380
- resolve();
7381
- break;
7382
- default:
7383
- reject(stateChange.reason);
7384
- }
7385
- });
7440
+ var cleanup = () => {
7441
+ _this67._attachedReceived.off(onAttached);
7442
+ _this67.internalStateChanges.off(onFailure);
7443
+ };
7444
+ var onAttached = () => {
7445
+ cleanup();
7446
+ resolve();
7447
+ };
7448
+ var onFailure = stateChange => {
7449
+ cleanup();
7450
+ reject(stateChange.reason);
7451
+ };
7452
+ _this67._attachedReceived.once("attached", onAttached);
7453
+ _this67.internalStateChanges.once(["detached", "failed"], onFailure);
7386
7454
  });
7387
7455
  }
7388
7456
  })();
@@ -7445,10 +7513,7 @@ function requireAbly() {
7445
7513
  messages: wireMessages,
7446
7514
  params: params ? _stringifyValues(params) : void 0
7447
7515
  });
7448
- var res = yield _this68.sendMessage(pm);
7449
- return res || {
7450
- serials: []
7451
- };
7516
+ return _this68.sendAndAwaitAck(pm);
7452
7517
  })();
7453
7518
  }
7454
7519
  throwIfUnpublishableState() {
@@ -7494,7 +7559,7 @@ function requireAbly() {
7494
7559
  if (this.state !== "attaching" || forceReattach) {
7495
7560
  this.requestState("attaching", attachReason);
7496
7561
  }
7497
- this.once(function (stateChange) {
7562
+ this.internalStateChanges.once(function (stateChange) {
7498
7563
  switch (this.event) {
7499
7564
  case "attached":
7500
7565
  callback == null ? void 0 : callback(null, stateChange);
@@ -7529,7 +7594,7 @@ function requireAbly() {
7529
7594
  if (this._lastPayload.decodeFailureRecoveryInProgress) {
7530
7595
  attachMsg.channelSerial = this._lastPayload.protocolMessageChannelSerial;
7531
7596
  }
7532
- this.sendMessage(attachMsg).catch(noop);
7597
+ this.send(attachMsg);
7533
7598
  }
7534
7599
  detach() {
7535
7600
  var _this70 = this;
@@ -7551,7 +7616,7 @@ function requireAbly() {
7551
7616
  _this70.requestState("detaching");
7552
7617
  case "detaching":
7553
7618
  return new Promise((resolve, reject) => {
7554
- _this70.once(function (stateChange) {
7619
+ _this70.internalStateChanges.once(function (stateChange) {
7555
7620
  switch (this.event) {
7556
7621
  case "detached":
7557
7622
  resolve();
@@ -7576,14 +7641,14 @@ function requireAbly() {
7576
7641
  action: actions.DETACH,
7577
7642
  channel: this.name
7578
7643
  });
7579
- this.sendMessage(msg).catch(noop);
7644
+ this.send(msg);
7580
7645
  }
7581
7646
  subscribe() {
7582
7647
  var _arguments3 = arguments,
7583
7648
  _this71 = this;
7584
7649
  return _asyncToGenerator(function* () {
7585
- for (var _len0 = _arguments3.length, args = new Array(_len0), _key0 = 0; _key0 < _len0; _key0++) {
7586
- args[_key0] = _arguments3[_key0];
7650
+ for (var _len1 = _arguments3.length, args = new Array(_len1), _key1 = 0; _key1 < _len1; _key1++) {
7651
+ args[_key1] = _arguments3[_key1];
7587
7652
  }
7588
7653
  var [event, listener] = _RealtimeChannel.processListenerArgs(args);
7589
7654
  if (_this71.state === "failed") {
@@ -7603,8 +7668,8 @@ function requireAbly() {
7603
7668
  }
7604
7669
  unsubscribe() {
7605
7670
  var _a2;
7606
- for (var _len1 = arguments.length, args = new Array(_len1), _key1 = 0; _key1 < _len1; _key1++) {
7607
- args[_key1] = arguments[_key1];
7671
+ for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {
7672
+ args[_key10] = arguments[_key10];
7608
7673
  }
7609
7674
  var [event, listener] = _RealtimeChannel.processListenerArgs(args);
7610
7675
  if (typeof event === "object" && !listener || ((_a2 = this.filteredSubscriptions) == null ? void 0 : _a2.has(listener))) {
@@ -7633,7 +7698,10 @@ function requireAbly() {
7633
7698
  }
7634
7699
  connectionManager.send(syncMessage);
7635
7700
  }
7636
- sendMessage(msg) {
7701
+ send(msg) {
7702
+ this.connectionManager.send(msg);
7703
+ }
7704
+ sendAndAwaitAck(msg) {
7637
7705
  var _this72 = this;
7638
7706
  return _asyncToGenerator(function* () {
7639
7707
  return new Promise((resolve, reject) => {
@@ -7655,7 +7723,7 @@ function requireAbly() {
7655
7723
  channel: _this73.name,
7656
7724
  presence
7657
7725
  });
7658
- yield _this73.sendMessage(msg);
7726
+ yield _this73.sendAndAwaitAck(msg);
7659
7727
  })();
7660
7728
  }
7661
7729
  sendState(objectMessages) {
@@ -7666,7 +7734,7 @@ function requireAbly() {
7666
7734
  channel: _this74.name,
7667
7735
  state: objectMessages
7668
7736
  });
7669
- yield _this74.sendMessage(msg);
7737
+ return _this74.sendAndAwaitAck(msg);
7670
7738
  })();
7671
7739
  }
7672
7740
  // Access to this method is synchronised by ConnectionManager#processChannelMessage, in order to synchronise access to the state stored in _decodingContext.
@@ -7690,17 +7758,17 @@ function requireAbly() {
7690
7758
  var hasPresence = message.hasFlag("HAS_PRESENCE");
7691
7759
  var hasBacklog = message.hasFlag("HAS_BACKLOG");
7692
7760
  var hasObjects = message.hasFlag("HAS_OBJECTS");
7761
+ _this75._attachedReceived.emit("attached");
7693
7762
  if (_this75.state === "attached") {
7694
7763
  if (!resumed) {
7695
7764
  if (_this75._presence) {
7696
7765
  _this75._presence.onAttached(hasPresence);
7697
7766
  }
7698
- if (_this75._object) {
7699
- _this75._object.onAttached(hasObjects);
7700
- }
7767
+ }
7768
+ if (_this75._object) {
7769
+ _this75._object.onAttached(hasObjects);
7701
7770
  }
7702
7771
  var change = new channelstatechange_default(_this75.state, _this75.state, resumed, hasBacklog, message.error);
7703
- _this75._allChannelChanges.emit("update", change);
7704
7772
  if (!resumed || _this75.channelOptions.updateOnAttached) {
7705
7773
  _this75.emit("update", change);
7706
7774
  }
@@ -7880,7 +7948,6 @@ function requireAbly() {
7880
7948
  this._attachResume = false;
7881
7949
  }
7882
7950
  this.state = state;
7883
- this._allChannelChanges.emit(state, change);
7884
7951
  this.emit(state, change);
7885
7952
  }
7886
7953
  requestState(state, reason) {
@@ -8014,7 +8081,7 @@ function requireAbly() {
8014
8081
  sendUpdate(message, action, operation, params) {
8015
8082
  var _this81 = this;
8016
8083
  return _asyncToGenerator(function* () {
8017
- var _a2, _b;
8084
+ var _a2;
8018
8085
  if (!message.serial) {
8019
8086
  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);
8020
8087
  }
@@ -8030,9 +8097,9 @@ function requireAbly() {
8030
8097
  messages: [wireMessage],
8031
8098
  params: params ? _stringifyValues(params) : void 0
8032
8099
  });
8033
- var publishResponse = yield _this81.sendMessage(pm);
8100
+ var publishResponse = yield _this81.sendAndAwaitAck(pm);
8034
8101
  return {
8035
- versionSerial: (_b = (_a2 = publishResponse == null ? void 0 : publishResponse.serials) == null ? void 0 : _a2[0]) != null ? _b : null
8102
+ versionSerial: (_a2 = publishResponse.serials[0]) != null ? _a2 : null
8036
8103
  };
8037
8104
  })();
8038
8105
  }
@@ -8102,7 +8169,7 @@ function requireAbly() {
8102
8169
  channel: channelName,
8103
8170
  annotations: [wireAnnotation]
8104
8171
  });
8105
- yield _this84.channel.sendMessage(pm);
8172
+ yield _this84.channel.sendAndAwaitAck(pm);
8106
8173
  })();
8107
8174
  }
8108
8175
  delete(msgOrSerial, annotationValues) {
@@ -8116,8 +8183,8 @@ function requireAbly() {
8116
8183
  var _arguments4 = arguments,
8117
8184
  _this86 = this;
8118
8185
  return _asyncToGenerator(function* () {
8119
- for (var _len10 = _arguments4.length, _args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {
8120
- _args[_key10] = _arguments4[_key10];
8186
+ for (var _len11 = _arguments4.length, _args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {
8187
+ _args[_key11] = _arguments4[_key11];
8121
8188
  }
8122
8189
  var args = realtimechannel_default.processListenerArgs(_args);
8123
8190
  var event = args[0];
@@ -8136,8 +8203,8 @@ function requireAbly() {
8136
8203
  })();
8137
8204
  }
8138
8205
  unsubscribe() {
8139
- for (var _len11 = arguments.length, _args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {
8140
- _args[_key11] = arguments[_key11];
8206
+ for (var _len12 = arguments.length, _args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) {
8207
+ _args[_key12] = arguments[_key12];
8141
8208
  }
8142
8209
  var args = realtimechannel_default.processListenerArgs(_args);
8143
8210
  var event = args[0];
@@ -8649,7 +8716,7 @@ function requireAbly() {
8649
8716
  var _a2;
8650
8717
  return typeof Platform.WebStorage !== "undefined" && ((_a2 = Platform.WebStorage) == null ? void 0 : _a2.sessionSupported);
8651
8718
  };
8652
- var noop2 = function noop2() {};
8719
+ var noop = function noop() {};
8653
8720
  var transportPreferenceName = "ably-transport-preference";
8654
8721
  function decodeRecoveryKey(recoveryKey) {
8655
8722
  try {
@@ -9514,7 +9581,7 @@ function requireAbly() {
9514
9581
  this.disconnectAllTransports();
9515
9582
  this.connectWs(transportParams, ++this.connectCounter);
9516
9583
  }
9517
- }).catch(noop2);
9584
+ }).catch(noop);
9518
9585
  }
9519
9586
  if (transportPreference && transportPreference === this.baseTransport || this.baseTransport && !this.webSocketTransportAvailable) {
9520
9587
  this.connectBase(transportParams, connectCount);
@@ -9721,7 +9788,7 @@ function requireAbly() {
9721
9788
  * event queueing
9722
9789
  ******************/
9723
9790
  send(msg, queueEvent, callback) {
9724
- callback = callback || noop2;
9791
+ callback = callback || noop;
9725
9792
  var state = this.state;
9726
9793
  if (state.sendEvents) {
9727
9794
  logger_default.logAction(this.logger, logger_default.LOG_MICRO, "ConnectionManager.send()", "sending event");
@@ -10005,7 +10072,7 @@ function requireAbly() {
10005
10072
  * tell the compiler that these cases are possible so that it forces us to handle them.
10006
10073
  */
10007
10074
  constructor(options) {
10008
- var _a2, _b, _c, _d;
10075
+ var _a2, _b;
10009
10076
  super(defaults_default.objectifyOptions(options, false, "BaseRealtime", logger_default.defaultLogger));
10010
10077
  logger_default.logAction(this.logger, logger_default.LOG_MINOR, "Realtime()", "");
10011
10078
  if (typeof EdgeRuntime === "string") {
@@ -10013,7 +10080,6 @@ function requireAbly() {
10013
10080
  }
10014
10081
  this._additionalTransportImplementations = _BaseRealtime.transportImplementationsFromPlugins(this.options.plugins);
10015
10082
  this._RealtimePresence = (_b = (_a2 = this.options.plugins) == null ? void 0 : _a2.RealtimePresence) != null ? _b : null;
10016
- this._liveObjectsPlugin = (_d = (_c = this.options.plugins) == null ? void 0 : _c.LiveObjects) != null ? _d : null;
10017
10083
  this.connection = new connection_default(this, this.options);
10018
10084
  this._channels = new Channels2(this);
10019
10085
  if (this.options.autoConnect !== false) this.connect();
@@ -10601,8 +10667,8 @@ function requireAbly() {
10601
10667
  var _arguments5 = arguments,
10602
10668
  _this102 = this;
10603
10669
  return _asyncToGenerator(function* () {
10604
- for (var _len12 = _arguments5.length, _args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) {
10605
- _args[_key12] = _arguments5[_key12];
10670
+ for (var _len13 = _arguments5.length, _args = new Array(_len13), _key13 = 0; _key13 < _len13; _key13++) {
10671
+ _args[_key13] = _arguments5[_key13];
10606
10672
  }
10607
10673
  var args = realtimechannel_default.processListenerArgs(_args);
10608
10674
  var event = args[0];
@@ -10618,8 +10684,8 @@ function requireAbly() {
10618
10684
  })();
10619
10685
  }
10620
10686
  unsubscribe() {
10621
- for (var _len13 = arguments.length, _args = new Array(_len13), _key13 = 0; _key13 < _len13; _key13++) {
10622
- _args[_key13] = arguments[_key13];
10687
+ for (var _len14 = arguments.length, _args = new Array(_len14), _key14 = 0; _key14 < _len14; _key14++) {
10688
+ _args[_key14] = arguments[_key14];
10623
10689
  }
10624
10690
  var args = realtimechannel_default.processListenerArgs(_args);
10625
10691
  var event = args[0];
@@ -11237,7 +11303,7 @@ function requireAbly() {
11237
11303
  try {
11238
11304
  return config.getRandomArrayBuffer((keyLength || DEFAULT_KEYLENGTH) / 8);
11239
11305
  } catch (err) {
11240
- throw new _ErrorInfo2("Failed to generate random key: " + err.message, 400, 5e4, err);
11306
+ throw new _ErrorInfo2("Failed to generate random key: " + err.message, 400, 5e4);
11241
11307
  }
11242
11308
  })();
11243
11309
  }
@@ -11846,7 +11912,7 @@ function requireAbly() {
11846
11912
  return responseBody.error && _ErrorInfo2.fromValues(responseBody.error);
11847
11913
  }
11848
11914
  }
11849
- var noop3 = function noop3() {};
11915
+ var noop2 = function noop2() {};
11850
11916
  var idCounter = 0;
11851
11917
  var pendingRequests = {};
11852
11918
  function getHeader(xhr, header) {
@@ -12042,7 +12108,7 @@ function requireAbly() {
12042
12108
  dispose() {
12043
12109
  var xhr = this.xhr;
12044
12110
  if (xhr) {
12045
- xhr.onreadystatechange = xhr.onerror = xhr.onabort = xhr.ontimeout = noop3;
12111
+ xhr.onreadystatechange = xhr.onerror = xhr.onabort = xhr.ontimeout = noop2;
12046
12112
  this.xhr = null;
12047
12113
  var timer = this.timer;
12048
12114
  if (timer) {
@@ -13091,12 +13157,15 @@ var FloatingMessage = _ref => {
13091
13157
  children: [jsx("p", {
13092
13158
  className: "babylai:text-xs babylai:font-bold babylai:m-0",
13093
13159
  children: message
13094
- }), jsx("button", {
13160
+ }), jsxs("button", {
13095
13161
  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",
13096
13162
  onClick: onClose,
13097
- children: jsx(ForwardRef$b, {
13163
+ children: [jsx(ForwardRef$b, {
13098
13164
  className: "babylai:w-8 babylai:h-8"
13099
- })
13165
+ }), jsx("span", {
13166
+ className: "babylai:sr-only",
13167
+ children: "Close"
13168
+ })]
13100
13169
  })]
13101
13170
  })
13102
13171
  });
@@ -13162,13 +13231,16 @@ var HelpButton = _ref => {
13162
13231
  var {
13163
13232
  onClick
13164
13233
  } = _ref;
13165
- return jsx("button", {
13234
+ return jsxs("button", {
13166
13235
  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 ",
13167
13236
  onClick: onClick,
13168
13237
  "aria-label": "Need Help?",
13169
- children: jsx(ForwardRef$a, {
13238
+ children: [jsx(ForwardRef$a, {
13170
13239
  className: "babylai:w-8 babylai:h-8 babylai:text-primary-500"
13171
- })
13240
+ }), jsx("span", {
13241
+ className: "babylai:sr-only",
13242
+ children: "Need Help?"
13243
+ })]
13172
13244
  });
13173
13245
  };
13174
13246
 
@@ -31609,7 +31681,7 @@ const fromTheme = key => {
31609
31681
  };
31610
31682
  const arbitraryValueRegex = /^\[(?:(\w[\w-]*):)?(.+)\]$/i;
31611
31683
  const arbitraryVariableRegex = /^\((?:(\w[\w-]*):)?(.+)\)$/i;
31612
- const fractionRegex = /^\d+\/\d+$/;
31684
+ const fractionRegex = /^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/;
31613
31685
  const tshirtUnitRegex = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/;
31614
31686
  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$/;
31615
31687
  const colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/;
@@ -31635,6 +31707,8 @@ const isArbitrarySize = value => getIsArbitraryValue(value, isLabelSize, isNever
31635
31707
  const isArbitraryValue = value => arbitraryValueRegex.test(value);
31636
31708
  const isArbitraryLength = value => getIsArbitraryValue(value, isLabelLength, isLengthOnly);
31637
31709
  const isArbitraryNumber = value => getIsArbitraryValue(value, isLabelNumber, isNumber$1);
31710
+ const isArbitraryWeight = value => getIsArbitraryValue(value, isLabelWeight, isAny);
31711
+ const isArbitraryFamilyName = value => getIsArbitraryValue(value, isLabelFamilyName, isNever);
31638
31712
  const isArbitraryPosition = value => getIsArbitraryValue(value, isLabelPosition, isNever);
31639
31713
  const isArbitraryImage = value => getIsArbitraryValue(value, isLabelImage, isImage);
31640
31714
  const isArbitraryShadow = value => getIsArbitraryValue(value, isLabelShadow, isShadow);
@@ -31645,6 +31719,7 @@ const isArbitraryVariablePosition = value => getIsArbitraryVariable(value, isLab
31645
31719
  const isArbitraryVariableSize = value => getIsArbitraryVariable(value, isLabelSize);
31646
31720
  const isArbitraryVariableImage = value => getIsArbitraryVariable(value, isLabelImage);
31647
31721
  const isArbitraryVariableShadow = value => getIsArbitraryVariable(value, isLabelShadow, true);
31722
+ const isArbitraryVariableWeight = value => getIsArbitraryVariable(value, isLabelWeight, true);
31648
31723
  // Helpers
31649
31724
  const getIsArbitraryValue = (value, testLabel, testValue) => {
31650
31725
  const result = arbitraryValueRegex.exec(value);
@@ -31673,6 +31748,7 @@ const isLabelSize = label => label === 'length' || label === 'size' || label ===
31673
31748
  const isLabelLength = label => label === 'length';
31674
31749
  const isLabelNumber = label => label === 'number';
31675
31750
  const isLabelFamilyName = label => label === 'family-name';
31751
+ const isLabelWeight = label => label === 'number' || label === 'weight';
31676
31752
  const isLabelShadow = label => label === 'shadow';
31677
31753
  const getDefaultConfig = () => {
31678
31754
  /**
@@ -31731,6 +31807,8 @@ const getDefaultConfig = () => {
31731
31807
  const scaleAlignSecondaryAxis = () => ['start', 'end', 'center', 'stretch', 'center-safe', 'end-safe'];
31732
31808
  const scaleMargin = () => ['auto', ...scaleUnambiguousSpacing()];
31733
31809
  const scaleSizing = () => [isFraction, 'auto', 'full', 'dvw', 'dvh', 'lvw', 'lvh', 'svw', 'svh', 'min', 'max', 'fit', ...scaleUnambiguousSpacing()];
31810
+ const scaleSizingInline = () => [isFraction, 'screen', 'full', 'dvw', 'lvw', 'svw', 'min', 'max', 'fit', ...scaleUnambiguousSpacing()];
31811
+ const scaleSizingBlock = () => [isFraction, 'screen', 'full', 'lh', 'dvh', 'lvh', 'svh', 'min', 'max', 'fit', ...scaleUnambiguousSpacing()];
31734
31812
  const scaleColor = () => [themeColor, isArbitraryVariable, isArbitraryValue];
31735
31813
  const scaleBgPosition = () => [...scalePosition(), isArbitraryVariablePosition, isArbitraryPosition, {
31736
31814
  position: [isArbitraryVariable, isArbitraryValue]
@@ -31929,40 +32007,66 @@ const getDefaultConfig = () => {
31929
32007
  */
31930
32008
  position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],
31931
32009
  /**
31932
- * Top / Right / Bottom / Left
32010
+ * Inset
31933
32011
  * @see https://tailwindcss.com/docs/top-right-bottom-left
31934
32012
  */
31935
32013
  inset: [{
31936
32014
  inset: scaleInset()
31937
32015
  }],
31938
32016
  /**
31939
- * Right / Left
32017
+ * Inset Inline
31940
32018
  * @see https://tailwindcss.com/docs/top-right-bottom-left
31941
32019
  */
31942
32020
  'inset-x': [{
31943
32021
  'inset-x': scaleInset()
31944
32022
  }],
31945
32023
  /**
31946
- * Top / Bottom
32024
+ * Inset Block
31947
32025
  * @see https://tailwindcss.com/docs/top-right-bottom-left
31948
32026
  */
31949
32027
  'inset-y': [{
31950
32028
  'inset-y': scaleInset()
31951
32029
  }],
31952
32030
  /**
31953
- * Start
32031
+ * Inset Inline Start
31954
32032
  * @see https://tailwindcss.com/docs/top-right-bottom-left
32033
+ * @todo class group will be renamed to `inset-s` in next major release
31955
32034
  */
31956
32035
  start: [{
32036
+ 'inset-s': scaleInset(),
32037
+ /**
32038
+ * @deprecated since Tailwind CSS v4.2.0 in favor of `inset-s-*` utilities.
32039
+ * @see https://github.com/tailwindlabs/tailwindcss/pull/19613
32040
+ */
31957
32041
  start: scaleInset()
31958
32042
  }],
31959
32043
  /**
31960
- * End
32044
+ * Inset Inline End
31961
32045
  * @see https://tailwindcss.com/docs/top-right-bottom-left
32046
+ * @todo class group will be renamed to `inset-e` in next major release
31962
32047
  */
31963
32048
  end: [{
32049
+ 'inset-e': scaleInset(),
32050
+ /**
32051
+ * @deprecated since Tailwind CSS v4.2.0 in favor of `inset-e-*` utilities.
32052
+ * @see https://github.com/tailwindlabs/tailwindcss/pull/19613
32053
+ */
31964
32054
  end: scaleInset()
31965
32055
  }],
32056
+ /**
32057
+ * Inset Block Start
32058
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
32059
+ */
32060
+ 'inset-bs': [{
32061
+ 'inset-bs': scaleInset()
32062
+ }],
32063
+ /**
32064
+ * Inset Block End
32065
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
32066
+ */
32067
+ 'inset-be': [{
32068
+ 'inset-be': scaleInset()
32069
+ }],
31966
32070
  /**
31967
32071
  * Top
31968
32072
  * @see https://tailwindcss.com/docs/top-right-bottom-left
@@ -32229,33 +32333,47 @@ const getDefaultConfig = () => {
32229
32333
  p: scaleUnambiguousSpacing()
32230
32334
  }],
32231
32335
  /**
32232
- * Padding X
32336
+ * Padding Inline
32233
32337
  * @see https://tailwindcss.com/docs/padding
32234
32338
  */
32235
32339
  px: [{
32236
32340
  px: scaleUnambiguousSpacing()
32237
32341
  }],
32238
32342
  /**
32239
- * Padding Y
32343
+ * Padding Block
32240
32344
  * @see https://tailwindcss.com/docs/padding
32241
32345
  */
32242
32346
  py: [{
32243
32347
  py: scaleUnambiguousSpacing()
32244
32348
  }],
32245
32349
  /**
32246
- * Padding Start
32350
+ * Padding Inline Start
32247
32351
  * @see https://tailwindcss.com/docs/padding
32248
32352
  */
32249
32353
  ps: [{
32250
32354
  ps: scaleUnambiguousSpacing()
32251
32355
  }],
32252
32356
  /**
32253
- * Padding End
32357
+ * Padding Inline End
32254
32358
  * @see https://tailwindcss.com/docs/padding
32255
32359
  */
32256
32360
  pe: [{
32257
32361
  pe: scaleUnambiguousSpacing()
32258
32362
  }],
32363
+ /**
32364
+ * Padding Block Start
32365
+ * @see https://tailwindcss.com/docs/padding
32366
+ */
32367
+ pbs: [{
32368
+ pbs: scaleUnambiguousSpacing()
32369
+ }],
32370
+ /**
32371
+ * Padding Block End
32372
+ * @see https://tailwindcss.com/docs/padding
32373
+ */
32374
+ pbe: [{
32375
+ pbe: scaleUnambiguousSpacing()
32376
+ }],
32259
32377
  /**
32260
32378
  * Padding Top
32261
32379
  * @see https://tailwindcss.com/docs/padding
@@ -32292,33 +32410,47 @@ const getDefaultConfig = () => {
32292
32410
  m: scaleMargin()
32293
32411
  }],
32294
32412
  /**
32295
- * Margin X
32413
+ * Margin Inline
32296
32414
  * @see https://tailwindcss.com/docs/margin
32297
32415
  */
32298
32416
  mx: [{
32299
32417
  mx: scaleMargin()
32300
32418
  }],
32301
32419
  /**
32302
- * Margin Y
32420
+ * Margin Block
32303
32421
  * @see https://tailwindcss.com/docs/margin
32304
32422
  */
32305
32423
  my: [{
32306
32424
  my: scaleMargin()
32307
32425
  }],
32308
32426
  /**
32309
- * Margin Start
32427
+ * Margin Inline Start
32310
32428
  * @see https://tailwindcss.com/docs/margin
32311
32429
  */
32312
32430
  ms: [{
32313
32431
  ms: scaleMargin()
32314
32432
  }],
32315
32433
  /**
32316
- * Margin End
32434
+ * Margin Inline End
32317
32435
  * @see https://tailwindcss.com/docs/margin
32318
32436
  */
32319
32437
  me: [{
32320
32438
  me: scaleMargin()
32321
32439
  }],
32440
+ /**
32441
+ * Margin Block Start
32442
+ * @see https://tailwindcss.com/docs/margin
32443
+ */
32444
+ mbs: [{
32445
+ mbs: scaleMargin()
32446
+ }],
32447
+ /**
32448
+ * Margin Block End
32449
+ * @see https://tailwindcss.com/docs/margin
32450
+ */
32451
+ mbe: [{
32452
+ mbe: scaleMargin()
32453
+ }],
32322
32454
  /**
32323
32455
  * Margin Top
32324
32456
  * @see https://tailwindcss.com/docs/margin
@@ -32381,6 +32513,48 @@ const getDefaultConfig = () => {
32381
32513
  size: [{
32382
32514
  size: scaleSizing()
32383
32515
  }],
32516
+ /**
32517
+ * Inline Size
32518
+ * @see https://tailwindcss.com/docs/width
32519
+ */
32520
+ 'inline-size': [{
32521
+ inline: ['auto', ...scaleSizingInline()]
32522
+ }],
32523
+ /**
32524
+ * Min-Inline Size
32525
+ * @see https://tailwindcss.com/docs/min-width
32526
+ */
32527
+ 'min-inline-size': [{
32528
+ 'min-inline': ['auto', ...scaleSizingInline()]
32529
+ }],
32530
+ /**
32531
+ * Max-Inline Size
32532
+ * @see https://tailwindcss.com/docs/max-width
32533
+ */
32534
+ 'max-inline-size': [{
32535
+ 'max-inline': ['none', ...scaleSizingInline()]
32536
+ }],
32537
+ /**
32538
+ * Block Size
32539
+ * @see https://tailwindcss.com/docs/height
32540
+ */
32541
+ 'block-size': [{
32542
+ block: ['auto', ...scaleSizingBlock()]
32543
+ }],
32544
+ /**
32545
+ * Min-Block Size
32546
+ * @see https://tailwindcss.com/docs/min-height
32547
+ */
32548
+ 'min-block-size': [{
32549
+ 'min-block': ['auto', ...scaleSizingBlock()]
32550
+ }],
32551
+ /**
32552
+ * Max-Block Size
32553
+ * @see https://tailwindcss.com/docs/max-height
32554
+ */
32555
+ 'max-block-size': [{
32556
+ 'max-block': ['none', ...scaleSizingBlock()]
32557
+ }],
32384
32558
  /**
32385
32559
  * Width
32386
32560
  * @see https://tailwindcss.com/docs/width
@@ -32453,7 +32627,7 @@ const getDefaultConfig = () => {
32453
32627
  * @see https://tailwindcss.com/docs/font-weight
32454
32628
  */
32455
32629
  'font-weight': [{
32456
- font: [themeFontWeight, isArbitraryVariable, isArbitraryNumber]
32630
+ font: [themeFontWeight, isArbitraryVariableWeight, isArbitraryWeight]
32457
32631
  }],
32458
32632
  /**
32459
32633
  * Font Stretch
@@ -32467,7 +32641,14 @@ const getDefaultConfig = () => {
32467
32641
  * @see https://tailwindcss.com/docs/font-family
32468
32642
  */
32469
32643
  'font-family': [{
32470
- font: [isArbitraryVariableFamilyName, isArbitraryValue, themeFont]
32644
+ font: [isArbitraryVariableFamilyName, isArbitraryFamilyName, themeFont]
32645
+ }],
32646
+ /**
32647
+ * Font Feature Settings
32648
+ * @see https://tailwindcss.com/docs/font-feature-settings
32649
+ */
32650
+ 'font-features': [{
32651
+ 'font-features': [isArbitraryValue]
32471
32652
  }],
32472
32653
  /**
32473
32654
  * Font Variant Numeric
@@ -32886,33 +33067,47 @@ const getDefaultConfig = () => {
32886
33067
  border: scaleBorderWidth()
32887
33068
  }],
32888
33069
  /**
32889
- * Border Width X
33070
+ * Border Width Inline
32890
33071
  * @see https://tailwindcss.com/docs/border-width
32891
33072
  */
32892
33073
  'border-w-x': [{
32893
33074
  'border-x': scaleBorderWidth()
32894
33075
  }],
32895
33076
  /**
32896
- * Border Width Y
33077
+ * Border Width Block
32897
33078
  * @see https://tailwindcss.com/docs/border-width
32898
33079
  */
32899
33080
  'border-w-y': [{
32900
33081
  'border-y': scaleBorderWidth()
32901
33082
  }],
32902
33083
  /**
32903
- * Border Width Start
33084
+ * Border Width Inline Start
32904
33085
  * @see https://tailwindcss.com/docs/border-width
32905
33086
  */
32906
33087
  'border-w-s': [{
32907
33088
  'border-s': scaleBorderWidth()
32908
33089
  }],
32909
33090
  /**
32910
- * Border Width End
33091
+ * Border Width Inline End
32911
33092
  * @see https://tailwindcss.com/docs/border-width
32912
33093
  */
32913
33094
  'border-w-e': [{
32914
33095
  'border-e': scaleBorderWidth()
32915
33096
  }],
33097
+ /**
33098
+ * Border Width Block Start
33099
+ * @see https://tailwindcss.com/docs/border-width
33100
+ */
33101
+ 'border-w-bs': [{
33102
+ 'border-bs': scaleBorderWidth()
33103
+ }],
33104
+ /**
33105
+ * Border Width Block End
33106
+ * @see https://tailwindcss.com/docs/border-width
33107
+ */
33108
+ 'border-w-be': [{
33109
+ 'border-be': scaleBorderWidth()
33110
+ }],
32916
33111
  /**
32917
33112
  * Border Width Top
32918
33113
  * @see https://tailwindcss.com/docs/border-width
@@ -32987,33 +33182,47 @@ const getDefaultConfig = () => {
32987
33182
  border: scaleColor()
32988
33183
  }],
32989
33184
  /**
32990
- * Border Color X
33185
+ * Border Color Inline
32991
33186
  * @see https://tailwindcss.com/docs/border-color
32992
33187
  */
32993
33188
  'border-color-x': [{
32994
33189
  'border-x': scaleColor()
32995
33190
  }],
32996
33191
  /**
32997
- * Border Color Y
33192
+ * Border Color Block
32998
33193
  * @see https://tailwindcss.com/docs/border-color
32999
33194
  */
33000
33195
  'border-color-y': [{
33001
33196
  'border-y': scaleColor()
33002
33197
  }],
33003
33198
  /**
33004
- * Border Color S
33199
+ * Border Color Inline Start
33005
33200
  * @see https://tailwindcss.com/docs/border-color
33006
33201
  */
33007
33202
  'border-color-s': [{
33008
33203
  'border-s': scaleColor()
33009
33204
  }],
33010
33205
  /**
33011
- * Border Color E
33206
+ * Border Color Inline End
33012
33207
  * @see https://tailwindcss.com/docs/border-color
33013
33208
  */
33014
33209
  'border-color-e': [{
33015
33210
  'border-e': scaleColor()
33016
33211
  }],
33212
+ /**
33213
+ * Border Color Block Start
33214
+ * @see https://tailwindcss.com/docs/border-color
33215
+ */
33216
+ 'border-color-bs': [{
33217
+ 'border-bs': scaleColor()
33218
+ }],
33219
+ /**
33220
+ * Border Color Block End
33221
+ * @see https://tailwindcss.com/docs/border-color
33222
+ */
33223
+ 'border-color-be': [{
33224
+ 'border-be': scaleColor()
33225
+ }],
33017
33226
  /**
33018
33227
  * Border Color Top
33019
33228
  * @see https://tailwindcss.com/docs/border-color
@@ -33874,33 +34083,47 @@ const getDefaultConfig = () => {
33874
34083
  'scroll-m': scaleUnambiguousSpacing()
33875
34084
  }],
33876
34085
  /**
33877
- * Scroll Margin X
34086
+ * Scroll Margin Inline
33878
34087
  * @see https://tailwindcss.com/docs/scroll-margin
33879
34088
  */
33880
34089
  'scroll-mx': [{
33881
34090
  'scroll-mx': scaleUnambiguousSpacing()
33882
34091
  }],
33883
34092
  /**
33884
- * Scroll Margin Y
34093
+ * Scroll Margin Block
33885
34094
  * @see https://tailwindcss.com/docs/scroll-margin
33886
34095
  */
33887
34096
  'scroll-my': [{
33888
34097
  'scroll-my': scaleUnambiguousSpacing()
33889
34098
  }],
33890
34099
  /**
33891
- * Scroll Margin Start
34100
+ * Scroll Margin Inline Start
33892
34101
  * @see https://tailwindcss.com/docs/scroll-margin
33893
34102
  */
33894
34103
  'scroll-ms': [{
33895
34104
  'scroll-ms': scaleUnambiguousSpacing()
33896
34105
  }],
33897
34106
  /**
33898
- * Scroll Margin End
34107
+ * Scroll Margin Inline End
33899
34108
  * @see https://tailwindcss.com/docs/scroll-margin
33900
34109
  */
33901
34110
  'scroll-me': [{
33902
34111
  'scroll-me': scaleUnambiguousSpacing()
33903
34112
  }],
34113
+ /**
34114
+ * Scroll Margin Block Start
34115
+ * @see https://tailwindcss.com/docs/scroll-margin
34116
+ */
34117
+ 'scroll-mbs': [{
34118
+ 'scroll-mbs': scaleUnambiguousSpacing()
34119
+ }],
34120
+ /**
34121
+ * Scroll Margin Block End
34122
+ * @see https://tailwindcss.com/docs/scroll-margin
34123
+ */
34124
+ 'scroll-mbe': [{
34125
+ 'scroll-mbe': scaleUnambiguousSpacing()
34126
+ }],
33904
34127
  /**
33905
34128
  * Scroll Margin Top
33906
34129
  * @see https://tailwindcss.com/docs/scroll-margin
@@ -33937,33 +34160,47 @@ const getDefaultConfig = () => {
33937
34160
  'scroll-p': scaleUnambiguousSpacing()
33938
34161
  }],
33939
34162
  /**
33940
- * Scroll Padding X
34163
+ * Scroll Padding Inline
33941
34164
  * @see https://tailwindcss.com/docs/scroll-padding
33942
34165
  */
33943
34166
  'scroll-px': [{
33944
34167
  'scroll-px': scaleUnambiguousSpacing()
33945
34168
  }],
33946
34169
  /**
33947
- * Scroll Padding Y
34170
+ * Scroll Padding Block
33948
34171
  * @see https://tailwindcss.com/docs/scroll-padding
33949
34172
  */
33950
34173
  'scroll-py': [{
33951
34174
  'scroll-py': scaleUnambiguousSpacing()
33952
34175
  }],
33953
34176
  /**
33954
- * Scroll Padding Start
34177
+ * Scroll Padding Inline Start
33955
34178
  * @see https://tailwindcss.com/docs/scroll-padding
33956
34179
  */
33957
34180
  'scroll-ps': [{
33958
34181
  'scroll-ps': scaleUnambiguousSpacing()
33959
34182
  }],
33960
34183
  /**
33961
- * Scroll Padding End
34184
+ * Scroll Padding Inline End
33962
34185
  * @see https://tailwindcss.com/docs/scroll-padding
33963
34186
  */
33964
34187
  'scroll-pe': [{
33965
34188
  'scroll-pe': scaleUnambiguousSpacing()
33966
34189
  }],
34190
+ /**
34191
+ * Scroll Padding Block Start
34192
+ * @see https://tailwindcss.com/docs/scroll-padding
34193
+ */
34194
+ 'scroll-pbs': [{
34195
+ 'scroll-pbs': scaleUnambiguousSpacing()
34196
+ }],
34197
+ /**
34198
+ * Scroll Padding Block End
34199
+ * @see https://tailwindcss.com/docs/scroll-padding
34200
+ */
34201
+ 'scroll-pbe': [{
34202
+ 'scroll-pbe': scaleUnambiguousSpacing()
34203
+ }],
33967
34204
  /**
33968
34205
  * Scroll Padding Top
33969
34206
  * @see https://tailwindcss.com/docs/scroll-padding
@@ -34098,15 +34335,15 @@ const getDefaultConfig = () => {
34098
34335
  conflictingClassGroups: {
34099
34336
  overflow: ['overflow-x', 'overflow-y'],
34100
34337
  overscroll: ['overscroll-x', 'overscroll-y'],
34101
- inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],
34338
+ inset: ['inset-x', 'inset-y', 'inset-bs', 'inset-be', 'start', 'end', 'top', 'right', 'bottom', 'left'],
34102
34339
  'inset-x': ['right', 'left'],
34103
34340
  'inset-y': ['top', 'bottom'],
34104
34341
  flex: ['basis', 'grow', 'shrink'],
34105
34342
  gap: ['gap-x', 'gap-y'],
34106
- p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],
34343
+ p: ['px', 'py', 'ps', 'pe', 'pbs', 'pbe', 'pt', 'pr', 'pb', 'pl'],
34107
34344
  px: ['pr', 'pl'],
34108
34345
  py: ['pt', 'pb'],
34109
- m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],
34346
+ m: ['mx', 'my', 'ms', 'me', 'mbs', 'mbe', 'mt', 'mr', 'mb', 'ml'],
34110
34347
  mx: ['mr', 'ml'],
34111
34348
  my: ['mt', 'mb'],
34112
34349
  size: ['w', 'h'],
@@ -34126,18 +34363,18 @@ const getDefaultConfig = () => {
34126
34363
  'rounded-b': ['rounded-br', 'rounded-bl'],
34127
34364
  'rounded-l': ['rounded-tl', 'rounded-bl'],
34128
34365
  'border-spacing': ['border-spacing-x', 'border-spacing-y'],
34129
- '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'],
34366
+ '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'],
34130
34367
  'border-w-x': ['border-w-r', 'border-w-l'],
34131
34368
  'border-w-y': ['border-w-t', 'border-w-b'],
34132
- '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'],
34369
+ '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'],
34133
34370
  'border-color-x': ['border-color-r', 'border-color-l'],
34134
34371
  'border-color-y': ['border-color-t', 'border-color-b'],
34135
34372
  translate: ['translate-x', 'translate-y', 'translate-none'],
34136
34373
  'translate-none': ['translate', 'translate-x', 'translate-y', 'translate-z'],
34137
- 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],
34374
+ 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mbs', 'scroll-mbe', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],
34138
34375
  'scroll-mx': ['scroll-mr', 'scroll-ml'],
34139
34376
  'scroll-my': ['scroll-mt', 'scroll-mb'],
34140
- 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],
34377
+ 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pbs', 'scroll-pbe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],
34141
34378
  'scroll-px': ['scroll-pr', 'scroll-pl'],
34142
34379
  'scroll-py': ['scroll-pt', 'scroll-pb'],
34143
34380
  touch: ['touch-x', 'touch-y', 'touch-pz'],
@@ -34856,7 +35093,7 @@ var kindOfTest = type => {
34856
35093
  var typeOfTest = type => thing => typeof thing === type;
34857
35094
 
34858
35095
  /**
34859
- * Determine if a value is an Array
35096
+ * Determine if a value is a non-null object
34860
35097
  *
34861
35098
  * @param {Object} val The value to test
34862
35099
  *
@@ -35008,6 +35245,31 @@ var isDate = kindOfTest('Date');
35008
35245
  */
35009
35246
  var isFile = kindOfTest('File');
35010
35247
 
35248
+ /**
35249
+ * Determine if a value is a React Native Blob
35250
+ * React Native "blob": an object with a `uri` attribute. Optionally, it can
35251
+ * also have a `name` and `type` attribute to specify filename and content type
35252
+ *
35253
+ * @see https://github.com/facebook/react-native/blob/26684cf3adf4094eb6c405d345a75bf8c7c0bf88/Libraries/Network/FormData.js#L68-L71
35254
+ *
35255
+ * @param {*} value The value to test
35256
+ *
35257
+ * @returns {boolean} True if value is a React Native Blob, otherwise false
35258
+ */
35259
+ var isReactNativeBlob = value => {
35260
+ return !!(value && typeof value.uri !== 'undefined');
35261
+ };
35262
+
35263
+ /**
35264
+ * Determine if environment is React Native
35265
+ * ReactNative `FormData` has a non-standard `getParts()` method
35266
+ *
35267
+ * @param {*} formData The formData to test
35268
+ *
35269
+ * @returns {boolean} True if environment is React Native, otherwise false
35270
+ */
35271
+ var isReactNative = formData => formData && typeof formData.getParts !== 'undefined';
35272
+
35011
35273
  /**
35012
35274
  * Determine if a value is a Blob
35013
35275
  *
@@ -35042,9 +35304,18 @@ var isStream = val => isObject(val) && isFunction$1(val.pipe);
35042
35304
  *
35043
35305
  * @returns {boolean} True if value is an FormData, otherwise false
35044
35306
  */
35307
+ function getGlobal() {
35308
+ if (typeof globalThis !== 'undefined') return globalThis;
35309
+ if (typeof self !== 'undefined') return self;
35310
+ if (typeof window !== 'undefined') return window;
35311
+ if (typeof global !== 'undefined') return global;
35312
+ return {};
35313
+ }
35314
+ var G = getGlobal();
35315
+ var FormDataCtor = typeof G.FormData !== 'undefined' ? G.FormData : undefined;
35045
35316
  var isFormData = thing => {
35046
35317
  var kind;
35047
- return thing && (typeof FormData === 'function' && thing instanceof FormData || isFunction$1(thing.append) && ((kind = kindOf(thing)) === 'formdata' ||
35318
+ return thing && (FormDataCtor && thing instanceof FormDataCtor || isFunction$1(thing.append) && ((kind = kindOf(thing)) === 'formdata' ||
35048
35319
  // detect form-data instance
35049
35320
  kind === 'object' && isFunction$1(thing.toString) && thing.toString() === '[object FormData]'));
35050
35321
  };
@@ -35066,8 +35337,9 @@ var [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'R
35066
35337
  *
35067
35338
  * @returns {String} The String freed of excess whitespace
35068
35339
  */
35069
- var trim = str => str.trim ? str.trim() : str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
35070
-
35340
+ var trim = str => {
35341
+ return str.trim ? str.trim() : str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
35342
+ };
35071
35343
  /**
35072
35344
  * Iterate over an Array or an Object invoking a function for each item.
35073
35345
  *
@@ -35121,6 +35393,15 @@ function forEach(obj, fn) {
35121
35393
  }
35122
35394
  }
35123
35395
  }
35396
+
35397
+ /**
35398
+ * Finds a key in an object, case-insensitive, returning the actual key name.
35399
+ * Returns null if the object is a Buffer or if no match is found.
35400
+ *
35401
+ * @param {Object} obj - The object to search.
35402
+ * @param {string} key - The key to find (case-insensitive).
35403
+ * @returns {?string} The actual key name if found, otherwise null.
35404
+ */
35124
35405
  function findKey(obj, key) {
35125
35406
  if (isBuffer(obj)) {
35126
35407
  return null;
@@ -35139,8 +35420,8 @@ function findKey(obj, key) {
35139
35420
  }
35140
35421
  var _global = (() => {
35141
35422
  /*eslint no-undef:0*/
35142
- if (typeof globalThis !== "undefined") return globalThis;
35143
- return typeof self !== "undefined" ? self : typeof window !== 'undefined' ? window : global;
35423
+ if (typeof globalThis !== 'undefined') return globalThis;
35424
+ return typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : global;
35144
35425
  })();
35145
35426
  var isContextDefined = context => !isUndefined(context) && context !== _global;
35146
35427
 
@@ -35170,6 +35451,10 @@ function merge(/* obj1, obj2, obj3, ... */
35170
35451
  } = isContextDefined(this) && this || {};
35171
35452
  var result = {};
35172
35453
  var assignValue = (val, key) => {
35454
+ // Skip dangerous property names to prevent prototype pollution
35455
+ if (key === '__proto__' || key === 'constructor' || key === 'prototype') {
35456
+ return;
35457
+ }
35173
35458
  var targetKey = caseless && findKey(result, key) || key;
35174
35459
  if (isPlainObject(result[targetKey]) && isPlainObject(val)) {
35175
35460
  result[targetKey] = merge(result[targetKey], val);
@@ -35232,7 +35517,7 @@ var extend = function extend(a, b, thisArg) {
35232
35517
  * @returns {string} content value without BOM
35233
35518
  */
35234
35519
  var stripBOM = content => {
35235
- if (content.charCodeAt(0) === 0xFEFF) {
35520
+ if (content.charCodeAt(0) === 0xfeff) {
35236
35521
  content = content.slice(1);
35237
35522
  }
35238
35523
  return content;
@@ -35438,11 +35723,20 @@ var freezeMethods = obj => {
35438
35723
  }
35439
35724
  if (!descriptor.set) {
35440
35725
  descriptor.set = () => {
35441
- throw Error('Can not rewrite read-only method \'' + name + '\'');
35726
+ throw Error("Can not rewrite read-only method '" + name + "'");
35442
35727
  };
35443
35728
  }
35444
35729
  });
35445
35730
  };
35731
+
35732
+ /**
35733
+ * Converts an array or a delimited string into an object set with values as keys and true as values.
35734
+ * Useful for fast membership checks.
35735
+ *
35736
+ * @param {Array|string} arrayOrString - The array or string to convert.
35737
+ * @param {string} delimiter - The delimiter to use if input is a string.
35738
+ * @returns {Object} An object with keys from the array or string, values set to true.
35739
+ */
35446
35740
  var toObjectSet = (arrayOrString, delimiter) => {
35447
35741
  var obj = {};
35448
35742
  var define = arr => {
@@ -35468,6 +35762,13 @@ var toFiniteNumber = (value, defaultValue) => {
35468
35762
  function isSpecCompliantForm(thing) {
35469
35763
  return !!(thing && isFunction$1(thing.append) && thing[toStringTag] === 'FormData' && thing[iterator]);
35470
35764
  }
35765
+
35766
+ /**
35767
+ * Recursively converts an object to a JSON-compatible object, handling circular references and Buffers.
35768
+ *
35769
+ * @param {Object} obj - The object to convert.
35770
+ * @returns {Object} The JSON-compatible object.
35771
+ */
35471
35772
  var toJSONObject = obj => {
35472
35773
  var stack = new Array(10);
35473
35774
  var visit = (source, i) => {
@@ -35495,18 +35796,40 @@ var toJSONObject = obj => {
35495
35796
  };
35496
35797
  return visit(obj, 0);
35497
35798
  };
35799
+
35800
+ /**
35801
+ * Determines if a value is an async function.
35802
+ *
35803
+ * @param {*} thing - The value to test.
35804
+ * @returns {boolean} True if value is an async function, otherwise false.
35805
+ */
35498
35806
  var isAsyncFn = kindOfTest('AsyncFunction');
35807
+
35808
+ /**
35809
+ * Determines if a value is thenable (has then and catch methods).
35810
+ *
35811
+ * @param {*} thing - The value to test.
35812
+ * @returns {boolean} True if value is thenable, otherwise false.
35813
+ */
35499
35814
  var isThenable = thing => thing && (isObject(thing) || isFunction$1(thing)) && isFunction$1(thing.then) && isFunction$1(thing.catch);
35500
35815
 
35501
35816
  // original code
35502
35817
  // https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34
35503
35818
 
35819
+ /**
35820
+ * Provides a cross-platform setImmediate implementation.
35821
+ * Uses native setImmediate if available, otherwise falls back to postMessage or setTimeout.
35822
+ *
35823
+ * @param {boolean} setImmediateSupported - Whether setImmediate is supported.
35824
+ * @param {boolean} postMessageSupported - Whether postMessage is supported.
35825
+ * @returns {Function} A function to schedule a callback asynchronously.
35826
+ */
35504
35827
  var _setImmediate = ((setImmediateSupported, postMessageSupported) => {
35505
35828
  if (setImmediateSupported) {
35506
35829
  return setImmediate;
35507
35830
  }
35508
35831
  return postMessageSupported ? ((token, callbacks) => {
35509
- _global.addEventListener("message", _ref2 => {
35832
+ _global.addEventListener('message', _ref2 => {
35510
35833
  var {
35511
35834
  source,
35512
35835
  data
@@ -35517,10 +35840,17 @@ var _setImmediate = ((setImmediateSupported, postMessageSupported) => {
35517
35840
  }, false);
35518
35841
  return cb => {
35519
35842
  callbacks.push(cb);
35520
- _global.postMessage(token, "*");
35843
+ _global.postMessage(token, '*');
35521
35844
  };
35522
35845
  })("axios@".concat(Math.random()), []) : cb => setTimeout(cb);
35523
35846
  })(typeof setImmediate === 'function', isFunction$1(_global.postMessage));
35847
+
35848
+ /**
35849
+ * Schedules a microtask or asynchronous callback as soon as possible.
35850
+ * Uses queueMicrotask if available, otherwise falls back to process.nextTick or _setImmediate.
35851
+ *
35852
+ * @type {Function}
35853
+ */
35524
35854
  var asap = typeof queueMicrotask !== 'undefined' ? queueMicrotask.bind(_global) : typeof process !== 'undefined' && process.nextTick || _setImmediate;
35525
35855
 
35526
35856
  // *********************
@@ -35545,6 +35875,8 @@ var utils$1 = {
35545
35875
  isUndefined,
35546
35876
  isDate,
35547
35877
  isFile,
35878
+ isReactNativeBlob,
35879
+ isReactNative,
35548
35880
  isBlob,
35549
35881
  isRegExp,
35550
35882
  isFunction: isFunction$1,
@@ -35592,6 +35924,11 @@ let AxiosError$1 = class AxiosError extends Error {
35592
35924
  var axiosError = new AxiosError(error.message, code || error.code, config, request, response);
35593
35925
  axiosError.cause = error;
35594
35926
  axiosError.name = error.name;
35927
+
35928
+ // Preserve status from the original error if not already set from response
35929
+ if (error.status != null && axiosError.status == null) {
35930
+ axiosError.status = error.status;
35931
+ }
35595
35932
  customProps && Object.assign(axiosError, customProps);
35596
35933
  return axiosError;
35597
35934
  }
@@ -35609,6 +35946,16 @@ let AxiosError$1 = class AxiosError extends Error {
35609
35946
  */
35610
35947
  constructor(message, code, config, request, response) {
35611
35948
  super(message);
35949
+
35950
+ // Make message enumerable to maintain backward compatibility
35951
+ // The native Error constructor sets message as non-enumerable,
35952
+ // but axios < v1.13.3 had it as enumerable
35953
+ Object.defineProperty(this, 'message', {
35954
+ value: message,
35955
+ enumerable: true,
35956
+ writable: true,
35957
+ configurable: true
35958
+ });
35612
35959
  this.name = 'AxiosError';
35613
35960
  this.isAxiosError = true;
35614
35961
  code && (this.code = code);
@@ -35790,6 +36137,10 @@ function toFormData$1(obj, formData, options) {
35790
36137
  */
35791
36138
  function defaultVisitor(value, key, path) {
35792
36139
  var arr = value;
36140
+ if (utils$1.isReactNative(formData) && utils$1.isReactNativeBlob(value)) {
36141
+ formData.append(renderKey(path, key, dots), convertValue(value));
36142
+ return false;
36143
+ }
35793
36144
  if (value && !path && typeof value === 'object') {
35794
36145
  if (utils$1.endsWith(key, '{}')) {
35795
36146
  // eslint-disable-next-line no-param-reassign
@@ -35925,7 +36276,7 @@ function buildURL(url, params, options) {
35925
36276
  serializedParams = utils$1.isURLSearchParams(params) ? params.toString() : new AxiosURLSearchParams(params, _options).toString(_encode);
35926
36277
  }
35927
36278
  if (serializedParams) {
35928
- var hashmarkIndex = url.indexOf("#");
36279
+ var hashmarkIndex = url.indexOf('#');
35929
36280
  if (hashmarkIndex !== -1) {
35930
36281
  url = url.slice(0, hashmarkIndex);
35931
36282
  }
@@ -36004,7 +36355,8 @@ class InterceptorManager {
36004
36355
  var transitionalDefaults = {
36005
36356
  silentJSONParsing: true,
36006
36357
  forcedJSONParsing: true,
36007
- clarifyTimeoutError: false
36358
+ clarifyTimeoutError: false,
36359
+ legacyInterceptorReqResOrdering: true
36008
36360
  };
36009
36361
 
36010
36362
  var URLSearchParams$1 = typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;
@@ -36268,7 +36620,7 @@ var defaults = {
36268
36620
  },
36269
36621
  headers: {
36270
36622
  common: {
36271
- 'Accept': 'application/json, text/plain, */*',
36623
+ Accept: 'application/json, text/plain, */*',
36272
36624
  'Content-Type': undefined
36273
36625
  }
36274
36626
  }
@@ -36513,7 +36865,7 @@ let AxiosHeaders$1 = class AxiosHeaders {
36513
36865
  }).join('\n');
36514
36866
  }
36515
36867
  getSetCookie() {
36516
- return this.get("set-cookie") || [];
36868
+ return this.get('set-cookie') || [];
36517
36869
  }
36518
36870
  get [Symbol.toStringTag]() {
36519
36871
  return 'AxiosHeaders';
@@ -36807,6 +37159,9 @@ function isAbsoluteURL(url) {
36807
37159
  // A URL is considered absolute if it begins with "<scheme>://" or "//" (protocol-relative URL).
36808
37160
  // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed
36809
37161
  // by any combination of letters, digits, plus, period, or hyphen.
37162
+ if (typeof url !== 'string') {
37163
+ return false;
37164
+ }
36810
37165
  return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url);
36811
37166
  }
36812
37167
 
@@ -36931,7 +37286,8 @@ function mergeConfig$1(config1, config2) {
36931
37286
  headers: (a, b, prop) => mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true)
36932
37287
  };
36933
37288
  utils$1.forEach(Object.keys(_objectSpread2(_objectSpread2({}, config1), config2)), function computeConfigValue(prop) {
36934
- var merge = mergeMap[prop] || mergeDeepProperties;
37289
+ if (prop === '__proto__' || prop === 'constructor' || prop === 'prototype') return;
37290
+ var merge = utils$1.hasOwnProp(mergeMap, prop) ? mergeMap[prop] : mergeDeepProperties;
36935
37291
  var configValue = merge(config1[prop], config2[prop], prop);
36936
37292
  utils$1.isUndefined(configValue) && merge !== mergeDirectKeys || (config[prop] = configValue);
36937
37293
  });
@@ -37459,7 +37815,7 @@ var factory = env => {
37459
37815
  var _request = new Request(url, {
37460
37816
  method: 'POST',
37461
37817
  body: data,
37462
- duplex: "half"
37818
+ duplex: 'half'
37463
37819
  });
37464
37820
  var contentTypeHeader;
37465
37821
  if (utils$1.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {
@@ -37476,13 +37832,13 @@ var factory = env => {
37476
37832
 
37477
37833
  // Cloudflare Workers throws when credentials are defined
37478
37834
  // see https://github.com/cloudflare/workerd/issues/902
37479
- var isCredentialsSupported = isRequestSupported && "credentials" in Request.prototype;
37835
+ var isCredentialsSupported = isRequestSupported && 'credentials' in Request.prototype;
37480
37836
  var resolvedOptions = _objectSpread2(_objectSpread2({}, fetchOptions), {}, {
37481
37837
  signal: composedSignal,
37482
37838
  method: method.toUpperCase(),
37483
37839
  headers: headers.normalize().toJSON(),
37484
37840
  body: data,
37485
- duplex: "half",
37841
+ duplex: 'half',
37486
37842
  credentials: isCredentialsSupported ? withCredentials : undefined
37487
37843
  });
37488
37844
  request = isRequestSupported && new Request(url, resolvedOptions);
@@ -37516,11 +37872,11 @@ var factory = env => {
37516
37872
  } catch (err) {
37517
37873
  unsubscribe && unsubscribe();
37518
37874
  if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {
37519
- throw Object.assign(new AxiosError$1('Network Error', AxiosError$1.ERR_NETWORK, config, request), {
37875
+ throw Object.assign(new AxiosError$1('Network Error', AxiosError$1.ERR_NETWORK, config, request, err && err.response), {
37520
37876
  cause: err.cause || err
37521
37877
  });
37522
37878
  }
37523
- throw AxiosError$1.from(err, err && err.code, config, request);
37879
+ throw AxiosError$1.from(err, err && err.code, config, request, err && err.response);
37524
37880
  }
37525
37881
  });
37526
37882
  return function (_x5) {
@@ -37558,7 +37914,7 @@ getFetch();
37558
37914
  * - `http` for Node.js
37559
37915
  * - `xhr` for browsers
37560
37916
  * - `fetch` for fetch API-based requests
37561
- *
37917
+ *
37562
37918
  * @type {Object<string, Function|Object>}
37563
37919
  */
37564
37920
  var knownAdapters = {
@@ -37587,7 +37943,7 @@ utils$1.forEach(knownAdapters, (fn, value) => {
37587
37943
 
37588
37944
  /**
37589
37945
  * Render a rejection reason string for unknown or unsupported adapters
37590
- *
37946
+ *
37591
37947
  * @param {string} reason
37592
37948
  * @returns {string}
37593
37949
  */
@@ -37595,7 +37951,7 @@ var renderReason = reason => "- ".concat(reason);
37595
37951
 
37596
37952
  /**
37597
37953
  * Check if the adapter is resolved (function, null, or false)
37598
- *
37954
+ *
37599
37955
  * @param {Function|null|false} adapter
37600
37956
  * @returns {boolean}
37601
37957
  */
@@ -37605,7 +37961,7 @@ var isResolvedHandle = adapter => utils$1.isFunction(adapter) || adapter === nul
37605
37961
  * Get the first suitable adapter from the provided list.
37606
37962
  * Tries each adapter in order until a supported one is found.
37607
37963
  * Throws an AxiosError if no adapter is suitable.
37608
- *
37964
+ *
37609
37965
  * @param {Array<string|Function>|string|Function} adapters - Adapter(s) by name or function.
37610
37966
  * @param {Object} config - Axios request configuration
37611
37967
  * @throws {AxiosError} If no suitable adapter is available
@@ -37715,7 +38071,7 @@ function dispatchRequest(config) {
37715
38071
  });
37716
38072
  }
37717
38073
 
37718
- var VERSION$1 = "1.13.4";
38074
+ var VERSION$1 = "1.13.6";
37719
38075
 
37720
38076
  var validators$1 = {};
37721
38077
 
@@ -37738,7 +38094,7 @@ var deprecatedWarnings = {};
37738
38094
  */
37739
38095
  validators$1.transitional = function transitional(validator, version, message) {
37740
38096
  function formatMessage(opt, desc) {
37741
- return '[Axios v' + VERSION$1 + '] Transitional option \'' + opt + '\'' + desc + (message ? '. ' + message : '');
38097
+ return '[Axios v' + VERSION$1 + "] Transitional option '" + opt + "'" + desc + (message ? '. ' + message : '');
37742
38098
  }
37743
38099
 
37744
38100
  // eslint-disable-next-line func-names
@@ -37871,7 +38227,8 @@ let Axios$1 = class Axios {
37871
38227
  validator.assertOptions(transitional, {
37872
38228
  silentJSONParsing: validators.transitional(validators.boolean),
37873
38229
  forcedJSONParsing: validators.transitional(validators.boolean),
37874
- clarifyTimeoutError: validators.transitional(validators.boolean)
38230
+ clarifyTimeoutError: validators.transitional(validators.boolean),
38231
+ legacyInterceptorReqResOrdering: validators.transitional(validators.boolean)
37875
38232
  }, false);
37876
38233
  }
37877
38234
  if (paramsSerializer != null) {
@@ -37916,7 +38273,13 @@ let Axios$1 = class Axios {
37916
38273
  return;
37917
38274
  }
37918
38275
  synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;
37919
- requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);
38276
+ var transitional = config.transitional || transitionalDefaults;
38277
+ var legacyInterceptorReqResOrdering = transitional && transitional.legacyInterceptorReqResOrdering;
38278
+ if (legacyInterceptorReqResOrdering) {
38279
+ requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);
38280
+ } else {
38281
+ requestInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);
38282
+ }
37920
38283
  });
37921
38284
  var responseInterceptorChain = [];
37922
38285
  this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {
@@ -38761,7 +39124,7 @@ var TypingIndicator = /*#__PURE__*/React__default.memo(_ref => {
38761
39124
  TypingIndicator.displayName = 'TypingIndicator';
38762
39125
 
38763
39126
  /**
38764
- * @license @tabler/icons-react v3.36.1 - MIT
39127
+ * @license @tabler/icons-react v3.40.0 - MIT
38765
39128
  *
38766
39129
  * This source code is licensed under the MIT license.
38767
39130
  * See the LICENSE file in the root directory of this source tree.
@@ -38790,7 +39153,7 @@ var defaultAttributes = {
38790
39153
  };
38791
39154
 
38792
39155
  /**
38793
- * @license @tabler/icons-react v3.36.1 - MIT
39156
+ * @license @tabler/icons-react v3.40.0 - MIT
38794
39157
  *
38795
39158
  * This source code is licensed under the MIT license.
38796
39159
  * See the LICENSE file in the root directory of this source tree.
@@ -38825,7 +39188,7 @@ const createReactComponent = (type, iconName, iconNamePascal, iconNode) => {
38825
39188
  };
38826
39189
 
38827
39190
  /**
38828
- * @license @tabler/icons-react v3.36.1 - MIT
39191
+ * @license @tabler/icons-react v3.40.0 - MIT
38829
39192
  *
38830
39193
  * This source code is licensed under the MIT license.
38831
39194
  * See the LICENSE file in the root directory of this source tree.
@@ -38836,7 +39199,7 @@ const __iconNode$1 = [["path", { "d": "M19.5 12.572l-7.5 7.428l-7.5 -7.428a5 5 0
38836
39199
  const IconHeart = createReactComponent("outline", "heart", "Heart", __iconNode$1);
38837
39200
 
38838
39201
  /**
38839
- * @license @tabler/icons-react v3.36.1 - MIT
39202
+ * @license @tabler/icons-react v3.40.0 - MIT
38840
39203
  *
38841
39204
  * This source code is licensed under the MIT license.
38842
39205
  * See the LICENSE file in the root directory of this source tree.