sevago-sso-fe 1.0.11 → 1.0.13

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.cjs.js CHANGED
@@ -10,6 +10,7 @@ const material = require("@mui/material");
10
10
  const system = require("@mui/system");
11
11
  const emStyled = require("@emotion/styled");
12
12
  require("@emotion/react");
13
+ const ReactDOM = require("react-dom");
13
14
  function _interopNamespaceDefault(e) {
14
15
  const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
15
16
  if (e) {
@@ -468,7 +469,7 @@ const toObjectSet = (arrayOrString, delimiter) => {
468
469
  isArray$1(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));
469
470
  return obj;
470
471
  };
471
- const noop$1 = () => {
472
+ const noop$2 = () => {
472
473
  };
473
474
  const toFiniteNumber = (value2, defaultValue) => {
474
475
  return value2 != null && Number.isFinite(value2 = +value2) ? value2 : defaultValue;
@@ -571,7 +572,7 @@ const utils$1 = {
571
572
  freezeMethods,
572
573
  toObjectSet,
573
574
  toCamelCase,
574
- noop: noop$1,
575
+ noop: noop$2,
575
576
  toFiniteNumber,
576
577
  findKey,
577
578
  global: _global,
@@ -584,7 +585,7 @@ const utils$1 = {
584
585
  asap,
585
586
  isIterable
586
587
  };
587
- function AxiosError$1(message, code, config, request, response) {
588
+ function AxiosError$1(message, code, config2, request, response) {
588
589
  Error.call(this);
589
590
  if (Error.captureStackTrace) {
590
591
  Error.captureStackTrace(this, this.constructor);
@@ -594,7 +595,7 @@ function AxiosError$1(message, code, config, request, response) {
594
595
  this.message = message;
595
596
  this.name = "AxiosError";
596
597
  code && (this.code = code);
597
- config && (this.config = config);
598
+ config2 && (this.config = config2);
598
599
  request && (this.request = request);
599
600
  if (response) {
600
601
  this.response = response;
@@ -643,7 +644,7 @@ const descriptors = {};
643
644
  });
644
645
  Object.defineProperties(AxiosError$1, descriptors);
645
646
  Object.defineProperty(prototype$1, "isAxiosError", { value: true });
646
- AxiosError$1.from = (error, code, config, request, response, customProps) => {
647
+ AxiosError$1.from = (error, code, config2, request, response, customProps) => {
647
648
  const axiosError = Object.create(prototype$1);
648
649
  utils$1.toFlatObject(error, axiosError, function filter3(obj) {
649
650
  return obj !== Error.prototype;
@@ -652,7 +653,7 @@ AxiosError$1.from = (error, code, config, request, response, customProps) => {
652
653
  });
653
654
  const msg = error && error.message ? error.message : "Error";
654
655
  const errCode = code == null && error ? error.code : code;
655
- AxiosError$1.call(axiosError, msg, errCode, config, request, response);
656
+ AxiosError$1.call(axiosError, msg, errCode, config2, request, response);
656
657
  if (error && axiosError.cause == null) {
657
658
  Object.defineProperty(axiosError, "cause", { value: error, configurable: true });
658
659
  }
@@ -1368,12 +1369,12 @@ utils$1.reduceDescriptors(AxiosHeaders$1.prototype, ({ value: value2 }, key) =>
1368
1369
  });
1369
1370
  utils$1.freezeMethods(AxiosHeaders$1);
1370
1371
  function transformData(fns, response) {
1371
- const config = this || defaults;
1372
- const context = response || config;
1372
+ const config2 = this || defaults;
1373
+ const context = response || config2;
1373
1374
  const headers = AxiosHeaders$1.from(context.headers);
1374
1375
  let data = context.data;
1375
1376
  utils$1.forEach(fns, function transform(fn) {
1376
- data = fn.call(config, data, headers.normalize(), response ? response.status : void 0);
1377
+ data = fn.call(config2, data, headers.normalize(), response ? response.status : void 0);
1377
1378
  });
1378
1379
  headers.normalize();
1379
1380
  return data;
@@ -1381,8 +1382,8 @@ function transformData(fns, response) {
1381
1382
  function isCancel$1(value2) {
1382
1383
  return !!(value2 && value2.__CANCEL__);
1383
1384
  }
1384
- function CanceledError$1(message, config, request) {
1385
- AxiosError$1.call(this, message == null ? "canceled" : message, AxiosError$1.ERR_CANCELED, config, request);
1385
+ function CanceledError$1(message, config2, request) {
1386
+ AxiosError$1.call(this, message == null ? "canceled" : message, AxiosError$1.ERR_CANCELED, config2, request);
1386
1387
  this.name = "CanceledError";
1387
1388
  }
1388
1389
  utils$1.inherits(CanceledError$1, AxiosError$1, {
@@ -1558,7 +1559,7 @@ function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {
1558
1559
  const headersToObject = (thing) => thing instanceof AxiosHeaders$1 ? { ...thing } : thing;
1559
1560
  function mergeConfig$1(config1, config2) {
1560
1561
  config2 = config2 || {};
1561
- const config = {};
1562
+ const config3 = {};
1562
1563
  function getMergedValue(target, source, prop, caseless) {
1563
1564
  if (utils$1.isPlainObject(target) && utils$1.isPlainObject(source)) {
1564
1565
  return utils$1.merge.call({ caseless }, target, source);
@@ -1629,15 +1630,15 @@ function mergeConfig$1(config1, config2) {
1629
1630
  utils$1.forEach(Object.keys({ ...config1, ...config2 }), function computeConfigValue(prop) {
1630
1631
  const merge2 = mergeMap[prop] || mergeDeepProperties;
1631
1632
  const configValue = merge2(config1[prop], config2[prop], prop);
1632
- utils$1.isUndefined(configValue) && merge2 !== mergeDirectKeys || (config[prop] = configValue);
1633
+ utils$1.isUndefined(configValue) && merge2 !== mergeDirectKeys || (config3[prop] = configValue);
1633
1634
  });
1634
- return config;
1635
+ return config3;
1635
1636
  }
1636
- const resolveConfig = (config) => {
1637
- const newConfig = mergeConfig$1({}, config);
1637
+ const resolveConfig = (config2) => {
1638
+ const newConfig = mergeConfig$1({}, config2);
1638
1639
  let { data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth } = newConfig;
1639
1640
  newConfig.headers = headers = AxiosHeaders$1.from(headers);
1640
- newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls), config.params, config.paramsSerializer);
1641
+ newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls), config2.params, config2.paramsSerializer);
1641
1642
  if (auth) {
1642
1643
  headers.set(
1643
1644
  "Authorization",
@@ -1669,9 +1670,9 @@ const resolveConfig = (config) => {
1669
1670
  return newConfig;
1670
1671
  };
1671
1672
  const isXHRAdapterSupported = typeof XMLHttpRequest !== "undefined";
1672
- const xhrAdapter = isXHRAdapterSupported && function(config) {
1673
+ const xhrAdapter = isXHRAdapterSupported && function(config2) {
1673
1674
  return new Promise(function dispatchXhrRequest(resolve, reject) {
1674
- const _config = resolveConfig(config);
1675
+ const _config = resolveConfig(config2);
1675
1676
  let requestData = _config.data;
1676
1677
  const requestHeaders = AxiosHeaders$1.from(_config.headers).normalize();
1677
1678
  let { responseType, onUploadProgress, onDownloadProgress } = _config;
@@ -1700,7 +1701,7 @@ const xhrAdapter = isXHRAdapterSupported && function(config) {
1700
1701
  status: request.status,
1701
1702
  statusText: request.statusText,
1702
1703
  headers: responseHeaders,
1703
- config,
1704
+ config: config2,
1704
1705
  request
1705
1706
  };
1706
1707
  settle(function _resolve(value2) {
@@ -1729,12 +1730,12 @@ const xhrAdapter = isXHRAdapterSupported && function(config) {
1729
1730
  if (!request) {
1730
1731
  return;
1731
1732
  }
1732
- reject(new AxiosError$1("Request aborted", AxiosError$1.ECONNABORTED, config, request));
1733
+ reject(new AxiosError$1("Request aborted", AxiosError$1.ECONNABORTED, config2, request));
1733
1734
  request = null;
1734
1735
  };
1735
1736
  request.onerror = function handleError(event) {
1736
1737
  const msg = event && event.message ? event.message : "Network Error";
1737
- const err = new AxiosError$1(msg, AxiosError$1.ERR_NETWORK, config, request);
1738
+ const err = new AxiosError$1(msg, AxiosError$1.ERR_NETWORK, config2, request);
1738
1739
  err.event = event || null;
1739
1740
  reject(err);
1740
1741
  request = null;
@@ -1748,7 +1749,7 @@ const xhrAdapter = isXHRAdapterSupported && function(config) {
1748
1749
  reject(new AxiosError$1(
1749
1750
  timeoutErrorMessage,
1750
1751
  transitional2.clarifyTimeoutError ? AxiosError$1.ETIMEDOUT : AxiosError$1.ECONNABORTED,
1751
- config,
1752
+ config2,
1752
1753
  request
1753
1754
  ));
1754
1755
  request = null;
@@ -1779,7 +1780,7 @@ const xhrAdapter = isXHRAdapterSupported && function(config) {
1779
1780
  if (!request) {
1780
1781
  return;
1781
1782
  }
1782
- reject(!cancel || cancel.type ? new CanceledError$1(null, config, request) : cancel);
1783
+ reject(!cancel || cancel.type ? new CanceledError$1(null, config2, request) : cancel);
1783
1784
  request.abort();
1784
1785
  request = null;
1785
1786
  };
@@ -1790,15 +1791,15 @@ const xhrAdapter = isXHRAdapterSupported && function(config) {
1790
1791
  }
1791
1792
  const protocol2 = parseProtocol(_config.url);
1792
1793
  if (protocol2 && platform.protocols.indexOf(protocol2) === -1) {
1793
- reject(new AxiosError$1("Unsupported protocol " + protocol2 + ":", AxiosError$1.ERR_BAD_REQUEST, config));
1794
+ reject(new AxiosError$1("Unsupported protocol " + protocol2 + ":", AxiosError$1.ERR_BAD_REQUEST, config2));
1794
1795
  return;
1795
1796
  }
1796
1797
  request.send(requestData || null);
1797
1798
  });
1798
1799
  };
1799
- const composeSignals = (signals, timeout) => {
1800
+ const composeSignals = (signals, timeout2) => {
1800
1801
  const { length } = signals = signals ? signals.filter(Boolean) : [];
1801
- if (timeout || length) {
1802
+ if (timeout2 || length) {
1802
1803
  let controller = new AbortController();
1803
1804
  let aborted;
1804
1805
  const onabort = function(reason) {
@@ -1809,10 +1810,10 @@ const composeSignals = (signals, timeout) => {
1809
1810
  controller.abort(err instanceof AxiosError$1 ? err : new CanceledError$1(err instanceof Error ? err.message : err));
1810
1811
  }
1811
1812
  };
1812
- let timer = timeout && setTimeout(() => {
1813
+ let timer = timeout2 && setTimeout(() => {
1813
1814
  timer = null;
1814
- onabort(new AxiosError$1(`timeout ${timeout} of ms exceeded`, AxiosError$1.ETIMEDOUT));
1815
- }, timeout);
1815
+ onabort(new AxiosError$1(`timeout ${timeout2} of ms exceeded`, AxiosError$1.ETIMEDOUT));
1816
+ }, timeout2);
1816
1817
  const unsubscribe = () => {
1817
1818
  if (signals) {
1818
1819
  timer && clearTimeout(timer);
@@ -1952,12 +1953,12 @@ const factory = (env) => {
1952
1953
  };
1953
1954
  isFetchSupported && (() => {
1954
1955
  ["text", "arrayBuffer", "blob", "formData", "stream"].forEach((type) => {
1955
- !resolvers[type] && (resolvers[type] = (res, config) => {
1956
+ !resolvers[type] && (resolvers[type] = (res, config2) => {
1956
1957
  let method = res && res[type];
1957
1958
  if (method) {
1958
1959
  return method.call(res);
1959
1960
  }
1960
- throw new AxiosError$1(`Response type '${type}' is not supported`, AxiosError$1.ERR_NOT_SUPPORT, config);
1961
+ throw new AxiosError$1(`Response type '${type}' is not supported`, AxiosError$1.ERR_NOT_SUPPORT, config2);
1961
1962
  });
1962
1963
  });
1963
1964
  })();
@@ -1989,24 +1990,24 @@ const factory = (env) => {
1989
1990
  const length = utils$1.toFiniteNumber(headers.getContentLength());
1990
1991
  return length == null ? getBodyLength(body) : length;
1991
1992
  };
1992
- return async (config) => {
1993
+ return async (config2) => {
1993
1994
  let {
1994
1995
  url: url2,
1995
1996
  method,
1996
1997
  data,
1997
1998
  signal,
1998
1999
  cancelToken,
1999
- timeout,
2000
+ timeout: timeout2,
2000
2001
  onDownloadProgress,
2001
2002
  onUploadProgress,
2002
2003
  responseType,
2003
2004
  headers,
2004
2005
  withCredentials = "same-origin",
2005
2006
  fetchOptions
2006
- } = resolveConfig(config);
2007
+ } = resolveConfig(config2);
2007
2008
  let _fetch = envFetch || fetch;
2008
2009
  responseType = responseType ? (responseType + "").toLowerCase() : "text";
2009
- let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);
2010
+ let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout2);
2010
2011
  let request = null;
2011
2012
  const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {
2012
2013
  composedSignal.unsubscribe();
@@ -2066,7 +2067,7 @@ const factory = (env) => {
2066
2067
  );
2067
2068
  }
2068
2069
  responseType = responseType || "text";
2069
- let responseData = await resolvers[utils$1.findKey(resolvers, responseType) || "text"](response, config);
2070
+ let responseData = await resolvers[utils$1.findKey(resolvers, responseType) || "text"](response, config2);
2070
2071
  !isStreamResponse && unsubscribe && unsubscribe();
2071
2072
  return await new Promise((resolve, reject) => {
2072
2073
  settle(resolve, reject, {
@@ -2074,7 +2075,7 @@ const factory = (env) => {
2074
2075
  headers: AxiosHeaders$1.from(response.headers),
2075
2076
  status: response.status,
2076
2077
  statusText: response.statusText,
2077
- config,
2078
+ config: config2,
2078
2079
  request
2079
2080
  });
2080
2081
  });
@@ -2082,19 +2083,19 @@ const factory = (env) => {
2082
2083
  unsubscribe && unsubscribe();
2083
2084
  if (err && err.name === "TypeError" && /Load failed|fetch/i.test(err.message)) {
2084
2085
  throw Object.assign(
2085
- new AxiosError$1("Network Error", AxiosError$1.ERR_NETWORK, config, request),
2086
+ new AxiosError$1("Network Error", AxiosError$1.ERR_NETWORK, config2, request),
2086
2087
  {
2087
2088
  cause: err.cause || err
2088
2089
  }
2089
2090
  );
2090
2091
  }
2091
- throw AxiosError$1.from(err, err && err.code, config, request);
2092
+ throw AxiosError$1.from(err, err && err.code, config2, request);
2092
2093
  }
2093
2094
  };
2094
2095
  };
2095
2096
  const seedCache = /* @__PURE__ */ new Map();
2096
- const getFetch = (config) => {
2097
- let env = config ? config.env : {};
2097
+ const getFetch = (config2) => {
2098
+ let env = config2 ? config2.env : {};
2098
2099
  const { fetch: fetch2, Request: Request2, Response } = env;
2099
2100
  const seeds = [
2100
2101
  Request2,
@@ -2130,7 +2131,7 @@ utils$1.forEach(knownAdapters, (fn, value2) => {
2130
2131
  const renderReason = (reason) => `- ${reason}`;
2131
2132
  const isResolvedHandle = (adapter) => utils$1.isFunction(adapter) || adapter === null || adapter === false;
2132
2133
  const adapters = {
2133
- getAdapter: (adapters2, config) => {
2134
+ getAdapter: (adapters2, config2) => {
2134
2135
  adapters2 = utils$1.isArray(adapters2) ? adapters2 : [adapters2];
2135
2136
  const { length } = adapters2;
2136
2137
  let nameOrAdapter;
@@ -2146,7 +2147,7 @@ const adapters = {
2146
2147
  throw new AxiosError$1(`Unknown adapter '${id2}'`);
2147
2148
  }
2148
2149
  }
2149
- if (adapter && (utils$1.isFunction(adapter) || (adapter = adapter.get(config)))) {
2150
+ if (adapter && (utils$1.isFunction(adapter) || (adapter = adapter.get(config2)))) {
2150
2151
  break;
2151
2152
  }
2152
2153
  rejectedReasons[id2 || "#" + i] = adapter;
@@ -2165,41 +2166,41 @@ const adapters = {
2165
2166
  },
2166
2167
  adapters: knownAdapters
2167
2168
  };
2168
- function throwIfCancellationRequested(config) {
2169
- if (config.cancelToken) {
2170
- config.cancelToken.throwIfRequested();
2169
+ function throwIfCancellationRequested(config2) {
2170
+ if (config2.cancelToken) {
2171
+ config2.cancelToken.throwIfRequested();
2171
2172
  }
2172
- if (config.signal && config.signal.aborted) {
2173
- throw new CanceledError$1(null, config);
2173
+ if (config2.signal && config2.signal.aborted) {
2174
+ throw new CanceledError$1(null, config2);
2174
2175
  }
2175
2176
  }
2176
- function dispatchRequest(config) {
2177
- throwIfCancellationRequested(config);
2178
- config.headers = AxiosHeaders$1.from(config.headers);
2179
- config.data = transformData.call(
2180
- config,
2181
- config.transformRequest
2177
+ function dispatchRequest(config2) {
2178
+ throwIfCancellationRequested(config2);
2179
+ config2.headers = AxiosHeaders$1.from(config2.headers);
2180
+ config2.data = transformData.call(
2181
+ config2,
2182
+ config2.transformRequest
2182
2183
  );
2183
- if (["post", "put", "patch"].indexOf(config.method) !== -1) {
2184
- config.headers.setContentType("application/x-www-form-urlencoded", false);
2184
+ if (["post", "put", "patch"].indexOf(config2.method) !== -1) {
2185
+ config2.headers.setContentType("application/x-www-form-urlencoded", false);
2185
2186
  }
2186
- const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config);
2187
- return adapter(config).then(function onAdapterResolution(response) {
2188
- throwIfCancellationRequested(config);
2187
+ const adapter = adapters.getAdapter(config2.adapter || defaults.adapter, config2);
2188
+ return adapter(config2).then(function onAdapterResolution(response) {
2189
+ throwIfCancellationRequested(config2);
2189
2190
  response.data = transformData.call(
2190
- config,
2191
- config.transformResponse,
2191
+ config2,
2192
+ config2.transformResponse,
2192
2193
  response
2193
2194
  );
2194
2195
  response.headers = AxiosHeaders$1.from(response.headers);
2195
2196
  return response;
2196
2197
  }, function onAdapterRejection(reason) {
2197
2198
  if (!isCancel$1(reason)) {
2198
- throwIfCancellationRequested(config);
2199
+ throwIfCancellationRequested(config2);
2199
2200
  if (reason && reason.response) {
2200
2201
  reason.response.data = transformData.call(
2201
- config,
2202
- config.transformResponse,
2202
+ config2,
2203
+ config2.transformResponse,
2203
2204
  reason.response
2204
2205
  );
2205
2206
  reason.response.headers = AxiosHeaders$1.from(reason.response.headers);
@@ -2267,11 +2268,11 @@ function assertOptions(options, schema, allowUnknown) {
2267
2268
  }
2268
2269
  }
2269
2270
  }
2270
- const validator = {
2271
+ const validator$1 = {
2271
2272
  assertOptions,
2272
2273
  validators: validators$1
2273
2274
  };
2274
- const validators = validator.validators;
2275
+ const validators = validator$1.validators;
2275
2276
  let Axios$1 = class Axios {
2276
2277
  constructor(instanceConfig) {
2277
2278
  this.defaults = instanceConfig || {};
@@ -2288,9 +2289,9 @@ let Axios$1 = class Axios {
2288
2289
  *
2289
2290
  * @returns {Promise} The Promise to be fulfilled
2290
2291
  */
2291
- async request(configOrUrl, config) {
2292
+ async request(configOrUrl, config2) {
2292
2293
  try {
2293
- return await this._request(configOrUrl, config);
2294
+ return await this._request(configOrUrl, config2);
2294
2295
  } catch (err) {
2295
2296
  if (err instanceof Error) {
2296
2297
  let dummy = {};
@@ -2308,17 +2309,17 @@ let Axios$1 = class Axios {
2308
2309
  throw err;
2309
2310
  }
2310
2311
  }
2311
- _request(configOrUrl, config) {
2312
+ _request(configOrUrl, config2) {
2312
2313
  if (typeof configOrUrl === "string") {
2313
- config = config || {};
2314
- config.url = configOrUrl;
2314
+ config2 = config2 || {};
2315
+ config2.url = configOrUrl;
2315
2316
  } else {
2316
- config = configOrUrl || {};
2317
+ config2 = configOrUrl || {};
2317
2318
  }
2318
- config = mergeConfig$1(this.defaults, config);
2319
- const { transitional: transitional2, paramsSerializer, headers } = config;
2319
+ config2 = mergeConfig$1(this.defaults, config2);
2320
+ const { transitional: transitional2, paramsSerializer, headers } = config2;
2320
2321
  if (transitional2 !== void 0) {
2321
- validator.assertOptions(transitional2, {
2322
+ validator$1.assertOptions(transitional2, {
2322
2323
  silentJSONParsing: validators.transitional(validators.boolean),
2323
2324
  forcedJSONParsing: validators.transitional(validators.boolean),
2324
2325
  clarifyTimeoutError: validators.transitional(validators.boolean)
@@ -2326,30 +2327,30 @@ let Axios$1 = class Axios {
2326
2327
  }
2327
2328
  if (paramsSerializer != null) {
2328
2329
  if (utils$1.isFunction(paramsSerializer)) {
2329
- config.paramsSerializer = {
2330
+ config2.paramsSerializer = {
2330
2331
  serialize: paramsSerializer
2331
2332
  };
2332
2333
  } else {
2333
- validator.assertOptions(paramsSerializer, {
2334
+ validator$1.assertOptions(paramsSerializer, {
2334
2335
  encode: validators.function,
2335
2336
  serialize: validators.function
2336
2337
  }, true);
2337
2338
  }
2338
2339
  }
2339
- if (config.allowAbsoluteUrls !== void 0) ;
2340
+ if (config2.allowAbsoluteUrls !== void 0) ;
2340
2341
  else if (this.defaults.allowAbsoluteUrls !== void 0) {
2341
- config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;
2342
+ config2.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;
2342
2343
  } else {
2343
- config.allowAbsoluteUrls = true;
2344
+ config2.allowAbsoluteUrls = true;
2344
2345
  }
2345
- validator.assertOptions(config, {
2346
+ validator$1.assertOptions(config2, {
2346
2347
  baseUrl: validators.spelling("baseURL"),
2347
2348
  withXsrfToken: validators.spelling("withXSRFToken")
2348
2349
  }, true);
2349
- config.method = (config.method || this.defaults.method || "get").toLowerCase();
2350
+ config2.method = (config2.method || this.defaults.method || "get").toLowerCase();
2350
2351
  let contextHeaders = headers && utils$1.merge(
2351
2352
  headers.common,
2352
- headers[config.method]
2353
+ headers[config2.method]
2353
2354
  );
2354
2355
  headers && utils$1.forEach(
2355
2356
  ["delete", "get", "head", "post", "put", "patch", "common"],
@@ -2357,11 +2358,11 @@ let Axios$1 = class Axios {
2357
2358
  delete headers[method];
2358
2359
  }
2359
2360
  );
2360
- config.headers = AxiosHeaders$1.concat(contextHeaders, headers);
2361
+ config2.headers = AxiosHeaders$1.concat(contextHeaders, headers);
2361
2362
  const requestInterceptorChain = [];
2362
2363
  let synchronousRequestInterceptors = true;
2363
2364
  this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {
2364
- if (typeof interceptor.runWhen === "function" && interceptor.runWhen(config) === false) {
2365
+ if (typeof interceptor.runWhen === "function" && interceptor.runWhen(config2) === false) {
2365
2366
  return;
2366
2367
  }
2367
2368
  synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;
@@ -2379,14 +2380,14 @@ let Axios$1 = class Axios {
2379
2380
  chain.unshift(...requestInterceptorChain);
2380
2381
  chain.push(...responseInterceptorChain);
2381
2382
  len = chain.length;
2382
- promise = Promise.resolve(config);
2383
+ promise = Promise.resolve(config2);
2383
2384
  while (i < len) {
2384
2385
  promise = promise.then(chain[i++], chain[i++]);
2385
2386
  }
2386
2387
  return promise;
2387
2388
  }
2388
2389
  len = requestInterceptorChain.length;
2389
- let newConfig = config;
2390
+ let newConfig = config2;
2390
2391
  while (i < len) {
2391
2392
  const onFulfilled = requestInterceptorChain[i++];
2392
2393
  const onRejected = requestInterceptorChain[i++];
@@ -2409,25 +2410,25 @@ let Axios$1 = class Axios {
2409
2410
  }
2410
2411
  return promise;
2411
2412
  }
2412
- getUri(config) {
2413
- config = mergeConfig$1(this.defaults, config);
2414
- const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);
2415
- return buildURL(fullPath, config.params, config.paramsSerializer);
2413
+ getUri(config2) {
2414
+ config2 = mergeConfig$1(this.defaults, config2);
2415
+ const fullPath = buildFullPath(config2.baseURL, config2.url, config2.allowAbsoluteUrls);
2416
+ return buildURL(fullPath, config2.params, config2.paramsSerializer);
2416
2417
  }
2417
2418
  };
2418
2419
  utils$1.forEach(["delete", "get", "head", "options"], function forEachMethodNoData(method) {
2419
- Axios$1.prototype[method] = function(url2, config) {
2420
- return this.request(mergeConfig$1(config || {}, {
2420
+ Axios$1.prototype[method] = function(url2, config2) {
2421
+ return this.request(mergeConfig$1(config2 || {}, {
2421
2422
  method,
2422
2423
  url: url2,
2423
- data: (config || {}).data
2424
+ data: (config2 || {}).data
2424
2425
  }));
2425
2426
  };
2426
2427
  });
2427
2428
  utils$1.forEach(["post", "put", "patch"], function forEachMethodWithData(method) {
2428
2429
  function generateHTTPMethod(isForm) {
2429
- return function httpMethod(url2, data, config) {
2430
- return this.request(mergeConfig$1(config || {}, {
2430
+ return function httpMethod(url2, data, config2) {
2431
+ return this.request(mergeConfig$1(config2 || {}, {
2431
2432
  method,
2432
2433
  headers: isForm ? {
2433
2434
  "Content-Type": "multipart/form-data"
@@ -2469,11 +2470,11 @@ let CancelToken$1 = class CancelToken {
2469
2470
  };
2470
2471
  return promise;
2471
2472
  };
2472
- executor(function cancel(message, config, request) {
2473
+ executor(function cancel(message, config2, request) {
2473
2474
  if (token.reason) {
2474
2475
  return;
2475
2476
  }
2476
- token.reason = new CanceledError$1(message, config, request);
2477
+ token.reason = new CanceledError$1(message, config2, request);
2477
2478
  resolvePromise(token.reason);
2478
2479
  });
2479
2480
  }
@@ -3354,12 +3355,12 @@ const axiosRequest = axios.create({
3354
3355
  headers: { "Content-Type": "application/json", "X-CSRF-TOKEN": "CSRF-Token" },
3355
3356
  withCredentials: true
3356
3357
  });
3357
- axiosRequest.interceptors.request.use(async (config) => {
3358
+ axiosRequest.interceptors.request.use(async (config2) => {
3358
3359
  const { userUnitPositionId, accessToken } = store.getState().account;
3359
- if (accessToken) config.headers.Authorization = `Bearer ${accessToken}`;
3360
+ if (accessToken) config2.headers.Authorization = `Bearer ${accessToken}`;
3360
3361
  if (userUnitPositionId)
3361
- config.headers["userUnitPositionId"] = userUnitPositionId;
3362
- return config;
3362
+ config2.headers["userUnitPositionId"] = userUnitPositionId;
3363
+ return config2;
3363
3364
  });
3364
3365
  let refreshingToken = null;
3365
3366
  axiosRequest.interceptors.response.use(
@@ -4854,12 +4855,12 @@ const ERROR_FACTORY$2 = new ErrorFactory("app", "Firebase", ERRORS);
4854
4855
  * limitations under the License.
4855
4856
  */
4856
4857
  class FirebaseAppImpl {
4857
- constructor(options, config, container) {
4858
+ constructor(options, config2, container) {
4858
4859
  this._isDeleted = false;
4859
4860
  this._options = { ...options };
4860
- this._config = { ...config };
4861
- this._name = config.name;
4862
- this._automaticDataCollectionEnabled = config.automaticDataCollectionEnabled;
4861
+ this._config = { ...config2 };
4862
+ this._name = config2.name;
4863
+ this._automaticDataCollectionEnabled = config2.automaticDataCollectionEnabled;
4863
4864
  this._container = container;
4864
4865
  this.container.addComponent(new Component(
4865
4866
  "app",
@@ -4913,12 +4914,12 @@ function initializeApp(_options, rawConfig = {}) {
4913
4914
  const name3 = rawConfig;
4914
4915
  rawConfig = { name: name3 };
4915
4916
  }
4916
- const config = {
4917
+ const config2 = {
4917
4918
  name: DEFAULT_ENTRY_NAME,
4918
4919
  automaticDataCollectionEnabled: true,
4919
4920
  ...rawConfig
4920
4921
  };
4921
- const name2 = config.name;
4922
+ const name2 = config2.name;
4922
4923
  if (typeof name2 !== "string" || !name2) {
4923
4924
  throw ERROR_FACTORY$2.create("bad-app-name", {
4924
4925
  appName: String(name2)
@@ -4933,7 +4934,7 @@ function initializeApp(_options, rawConfig = {}) {
4933
4934
  }
4934
4935
  const existingApp = _apps.get(name2);
4935
4936
  if (existingApp) {
4936
- if (deepEqual(options, existingApp.options) && deepEqual(config, existingApp.config)) {
4937
+ if (deepEqual(options, existingApp.options) && deepEqual(config2, existingApp.config)) {
4937
4938
  return existingApp;
4938
4939
  } else {
4939
4940
  throw ERROR_FACTORY$2.create("duplicate-app", { appName: name2 });
@@ -4943,7 +4944,7 @@ function initializeApp(_options, rawConfig = {}) {
4943
4944
  for (const component of _components.values()) {
4944
4945
  container.addComponent(component);
4945
4946
  }
4946
- const newApp = new FirebaseAppImpl(options, config, container);
4947
+ const newApp = new FirebaseAppImpl(options, config2, container);
4947
4948
  _apps.set(name2, newApp);
4948
4949
  return newApp;
4949
4950
  }
@@ -9539,8 +9540,8 @@ class Socket2 extends Emitter {
9539
9540
  */
9540
9541
  _registerAckCallback(id2, ack) {
9541
9542
  var _a;
9542
- const timeout = (_a = this.flags.timeout) !== null && _a !== void 0 ? _a : this._opts.ackTimeout;
9543
- if (timeout === void 0) {
9543
+ const timeout2 = (_a = this.flags.timeout) !== null && _a !== void 0 ? _a : this._opts.ackTimeout;
9544
+ if (timeout2 === void 0) {
9544
9545
  this.acks[id2] = ack;
9545
9546
  return;
9546
9547
  }
@@ -9552,7 +9553,7 @@ class Socket2 extends Emitter {
9552
9553
  }
9553
9554
  }
9554
9555
  ack.call(this, new Error("operation has timed out"));
9555
- }, timeout);
9556
+ }, timeout2);
9556
9557
  const fn = (...args) => {
9557
9558
  this.io.clearTimeoutFn(timer);
9558
9559
  ack.apply(this, args);
@@ -9950,8 +9951,8 @@ class Socket2 extends Emitter {
9950
9951
  *
9951
9952
  * @returns self
9952
9953
  */
9953
- timeout(timeout) {
9954
- this.flags.timeout = timeout;
9954
+ timeout(timeout2) {
9955
+ this.flags.timeout = timeout2;
9955
9956
  return this;
9956
9957
  }
9957
9958
  /**
@@ -10272,12 +10273,12 @@ class Manager extends Emitter {
10272
10273
  };
10273
10274
  const errorSub = on(socket, "error", onError);
10274
10275
  if (false !== this._timeout) {
10275
- const timeout = this._timeout;
10276
+ const timeout2 = this._timeout;
10276
10277
  const timer = this.setTimeoutFn(() => {
10277
10278
  openSubDestroy();
10278
10279
  onError(new Error("timeout"));
10279
10280
  socket.close();
10280
- }, timeout);
10281
+ }, timeout2);
10281
10282
  if (this.opts.autoUnref) {
10282
10283
  timer.unref();
10283
10284
  }
@@ -13825,6 +13826,214 @@ function composeClasses(slots, getUtilityClass, classes = void 0) {
13825
13826
  }
13826
13827
  return output;
13827
13828
  }
13829
+ const useEnhancedEffect = typeof window !== "undefined" ? React__namespace.useLayoutEffect : React__namespace.useEffect;
13830
+ function useEventCallback$1(fn) {
13831
+ const ref = React__namespace.useRef(fn);
13832
+ useEnhancedEffect(() => {
13833
+ ref.current = fn;
13834
+ });
13835
+ return React__namespace.useRef((...args) => (
13836
+ // @ts-expect-error hide `this`
13837
+ (0, ref.current)(...args)
13838
+ )).current;
13839
+ }
13840
+ const UNINITIALIZED = {};
13841
+ function useLazyRef(init, initArg) {
13842
+ const ref = React__namespace.useRef(UNINITIALIZED);
13843
+ if (ref.current === UNINITIALIZED) {
13844
+ ref.current = init(initArg);
13845
+ }
13846
+ return ref;
13847
+ }
13848
+ const EMPTY = [];
13849
+ function useOnMount(fn) {
13850
+ React__namespace.useEffect(fn, EMPTY);
13851
+ }
13852
+ class Timeout {
13853
+ static create() {
13854
+ return new Timeout();
13855
+ }
13856
+ currentId = null;
13857
+ /**
13858
+ * Executes `fn` after `delay`, clearing any previously scheduled call.
13859
+ */
13860
+ start(delay2, fn) {
13861
+ this.clear();
13862
+ this.currentId = setTimeout(() => {
13863
+ this.currentId = null;
13864
+ fn();
13865
+ }, delay2);
13866
+ }
13867
+ clear = () => {
13868
+ if (this.currentId !== null) {
13869
+ clearTimeout(this.currentId);
13870
+ this.currentId = null;
13871
+ }
13872
+ };
13873
+ disposeEffect = () => {
13874
+ return this.clear;
13875
+ };
13876
+ }
13877
+ function useTimeout() {
13878
+ const timeout2 = useLazyRef(Timeout.create).current;
13879
+ useOnMount(timeout2.disposeEffect);
13880
+ return timeout2;
13881
+ }
13882
+ function extractEventHandlers(object2, excludeKeys = []) {
13883
+ if (object2 === void 0) {
13884
+ return {};
13885
+ }
13886
+ const result = {};
13887
+ Object.keys(object2).filter((prop) => prop.match(/^on[A-Z]/) && typeof object2[prop] === "function" && !excludeKeys.includes(prop)).forEach((prop) => {
13888
+ result[prop] = object2[prop];
13889
+ });
13890
+ return result;
13891
+ }
13892
+ function useSnackbar$1(parameters = {}) {
13893
+ const {
13894
+ autoHideDuration = null,
13895
+ disableWindowBlurListener = false,
13896
+ onClose,
13897
+ open,
13898
+ resumeHideDuration
13899
+ } = parameters;
13900
+ const timerAutoHide = useTimeout();
13901
+ React__namespace.useEffect(() => {
13902
+ if (!open) {
13903
+ return void 0;
13904
+ }
13905
+ function handleKeyDown(nativeEvent) {
13906
+ if (!nativeEvent.defaultPrevented) {
13907
+ if (nativeEvent.key === "Escape") {
13908
+ onClose?.(nativeEvent, "escapeKeyDown");
13909
+ }
13910
+ }
13911
+ }
13912
+ document.addEventListener("keydown", handleKeyDown);
13913
+ return () => {
13914
+ document.removeEventListener("keydown", handleKeyDown);
13915
+ };
13916
+ }, [open, onClose]);
13917
+ const handleClose = useEventCallback$1((event, reason) => {
13918
+ onClose?.(event, reason);
13919
+ });
13920
+ const setAutoHideTimer = useEventCallback$1((autoHideDurationParam) => {
13921
+ if (!onClose || autoHideDurationParam == null) {
13922
+ return;
13923
+ }
13924
+ timerAutoHide.start(autoHideDurationParam, () => {
13925
+ handleClose(null, "timeout");
13926
+ });
13927
+ });
13928
+ React__namespace.useEffect(() => {
13929
+ if (open) {
13930
+ setAutoHideTimer(autoHideDuration);
13931
+ }
13932
+ return timerAutoHide.clear;
13933
+ }, [open, autoHideDuration, setAutoHideTimer, timerAutoHide]);
13934
+ const handleClickAway = (event) => {
13935
+ onClose?.(event, "clickaway");
13936
+ };
13937
+ const handlePause = timerAutoHide.clear;
13938
+ const handleResume = React__namespace.useCallback(() => {
13939
+ if (autoHideDuration != null) {
13940
+ setAutoHideTimer(resumeHideDuration != null ? resumeHideDuration : autoHideDuration * 0.5);
13941
+ }
13942
+ }, [autoHideDuration, resumeHideDuration, setAutoHideTimer]);
13943
+ const createHandleBlur = (otherHandlers) => (event) => {
13944
+ const onBlurCallback = otherHandlers.onBlur;
13945
+ onBlurCallback?.(event);
13946
+ handleResume();
13947
+ };
13948
+ const createHandleFocus = (otherHandlers) => (event) => {
13949
+ const onFocusCallback = otherHandlers.onFocus;
13950
+ onFocusCallback?.(event);
13951
+ handlePause();
13952
+ };
13953
+ const createMouseEnter = (otherHandlers) => (event) => {
13954
+ const onMouseEnterCallback = otherHandlers.onMouseEnter;
13955
+ onMouseEnterCallback?.(event);
13956
+ handlePause();
13957
+ };
13958
+ const createMouseLeave = (otherHandlers) => (event) => {
13959
+ const onMouseLeaveCallback = otherHandlers.onMouseLeave;
13960
+ onMouseLeaveCallback?.(event);
13961
+ handleResume();
13962
+ };
13963
+ React__namespace.useEffect(() => {
13964
+ if (!disableWindowBlurListener && open) {
13965
+ window.addEventListener("focus", handleResume);
13966
+ window.addEventListener("blur", handlePause);
13967
+ return () => {
13968
+ window.removeEventListener("focus", handleResume);
13969
+ window.removeEventListener("blur", handlePause);
13970
+ };
13971
+ }
13972
+ return void 0;
13973
+ }, [disableWindowBlurListener, open, handleResume, handlePause]);
13974
+ const getRootProps = (externalProps = {}) => {
13975
+ const externalEventHandlers = {
13976
+ ...extractEventHandlers(parameters),
13977
+ ...extractEventHandlers(externalProps)
13978
+ };
13979
+ return {
13980
+ // ClickAwayListener adds an `onClick` prop which results in the alert not being announced.
13981
+ // See https://github.com/mui/material-ui/issues/29080
13982
+ role: "presentation",
13983
+ ...externalProps,
13984
+ ...externalEventHandlers,
13985
+ onBlur: createHandleBlur(externalEventHandlers),
13986
+ onFocus: createHandleFocus(externalEventHandlers),
13987
+ onMouseEnter: createMouseEnter(externalEventHandlers),
13988
+ onMouseLeave: createMouseLeave(externalEventHandlers)
13989
+ };
13990
+ };
13991
+ return {
13992
+ getRootProps,
13993
+ onClickAway: handleClickAway
13994
+ };
13995
+ }
13996
+ function ownerDocument(node) {
13997
+ return node && node.ownerDocument || document;
13998
+ }
13999
+ function useForkRef(...refs) {
14000
+ const cleanupRef = React__namespace.useRef(void 0);
14001
+ const refEffect = React__namespace.useCallback((instance) => {
14002
+ const cleanups = refs.map((ref) => {
14003
+ if (ref == null) {
14004
+ return null;
14005
+ }
14006
+ if (typeof ref === "function") {
14007
+ const refCallback = ref;
14008
+ const refCleanup = refCallback(instance);
14009
+ return typeof refCleanup === "function" ? refCleanup : () => {
14010
+ refCallback(null);
14011
+ };
14012
+ }
14013
+ ref.current = instance;
14014
+ return () => {
14015
+ ref.current = null;
14016
+ };
14017
+ });
14018
+ return () => {
14019
+ cleanups.forEach((refCleanup) => refCleanup?.());
14020
+ };
14021
+ }, refs);
14022
+ return React__namespace.useMemo(() => {
14023
+ if (refs.every((ref) => ref == null)) {
14024
+ return null;
14025
+ }
14026
+ return (value2) => {
14027
+ if (cleanupRef.current) {
14028
+ cleanupRef.current();
14029
+ cleanupRef.current = void 0;
14030
+ }
14031
+ if (value2 != null) {
14032
+ cleanupRef.current = refEffect(value2);
14033
+ }
14034
+ };
14035
+ }, refs);
14036
+ }
13828
14037
  function chainPropTypes(propType1, propType2) {
13829
14038
  if (process.env.NODE_ENV === "production") {
13830
14039
  return () => null;
@@ -13833,6 +14042,188 @@ function chainPropTypes(propType1, propType2) {
13833
14042
  return propType1(...args) || propType2(...args);
13834
14043
  };
13835
14044
  }
14045
+ function isClassComponent(elementType) {
14046
+ const {
14047
+ prototype: prototype2 = {}
14048
+ } = elementType;
14049
+ return Boolean(prototype2.isReactComponent);
14050
+ }
14051
+ function acceptingRef(props, propName, componentName, location2, propFullName) {
14052
+ const element = props[propName];
14053
+ const safePropName = propFullName || propName;
14054
+ if (element == null || // When server-side rendering React doesn't warn either.
14055
+ // This is not an accurate check for SSR.
14056
+ // This is only in place for Emotion compat.
14057
+ // TODO: Revisit once https://github.com/facebook/react/issues/20047 is resolved.
14058
+ typeof window === "undefined") {
14059
+ return null;
14060
+ }
14061
+ let warningHint;
14062
+ const elementType = element.type;
14063
+ if (typeof elementType === "function" && !isClassComponent(elementType)) {
14064
+ warningHint = "Did you accidentally use a plain function component for an element instead?";
14065
+ }
14066
+ if (warningHint !== void 0) {
14067
+ return new Error(`Invalid ${location2} \`${safePropName}\` supplied to \`${componentName}\`. Expected an element that can hold a ref. ${warningHint} For more information see https://mui.com/r/caveat-with-refs-guide`);
14068
+ }
14069
+ return null;
14070
+ }
14071
+ const elementAcceptingRef = chainPropTypes(PropTypes.element, acceptingRef);
14072
+ elementAcceptingRef.isRequired = chainPropTypes(PropTypes.element.isRequired, acceptingRef);
14073
+ const specialProperty = "exact-prop: ​";
14074
+ function exactProp(propTypes2) {
14075
+ if (process.env.NODE_ENV === "production") {
14076
+ return propTypes2;
14077
+ }
14078
+ return {
14079
+ ...propTypes2,
14080
+ [specialProperty]: (props) => {
14081
+ const unsupportedProps = Object.keys(props).filter((prop) => !propTypes2.hasOwnProperty(prop));
14082
+ if (unsupportedProps.length > 0) {
14083
+ return new Error(`The following props are not supported: ${unsupportedProps.map((prop) => `\`${prop}\``).join(", ")}. Please remove them.`);
14084
+ }
14085
+ return null;
14086
+ }
14087
+ };
14088
+ }
14089
+ function getReactElementRef(element) {
14090
+ if (parseInt(React__namespace.version, 10) >= 19) {
14091
+ return element?.props?.ref || null;
14092
+ }
14093
+ return element?.ref || null;
14094
+ }
14095
+ function mapEventPropToEvent(eventProp) {
14096
+ return eventProp.substring(2).toLowerCase();
14097
+ }
14098
+ function clickedRootScrollbar(event, doc) {
14099
+ return doc.documentElement.clientWidth < event.clientX || doc.documentElement.clientHeight < event.clientY;
14100
+ }
14101
+ function ClickAwayListener(props) {
14102
+ const {
14103
+ children,
14104
+ disableReactTree = false,
14105
+ mouseEvent = "onClick",
14106
+ onClickAway,
14107
+ touchEvent = "onTouchEnd"
14108
+ } = props;
14109
+ const movedRef = React__namespace.useRef(false);
14110
+ const nodeRef = React__namespace.useRef(null);
14111
+ const activatedRef = React__namespace.useRef(false);
14112
+ const syntheticEventRef = React__namespace.useRef(false);
14113
+ React__namespace.useEffect(() => {
14114
+ setTimeout(() => {
14115
+ activatedRef.current = true;
14116
+ }, 0);
14117
+ return () => {
14118
+ activatedRef.current = false;
14119
+ };
14120
+ }, []);
14121
+ const handleRef = useForkRef(getReactElementRef(children), nodeRef);
14122
+ const handleClickAway = useEventCallback$1((event) => {
14123
+ const insideReactTree = syntheticEventRef.current;
14124
+ syntheticEventRef.current = false;
14125
+ const doc = ownerDocument(nodeRef.current);
14126
+ if (!activatedRef.current || !nodeRef.current || "clientX" in event && clickedRootScrollbar(event, doc)) {
14127
+ return;
14128
+ }
14129
+ if (movedRef.current) {
14130
+ movedRef.current = false;
14131
+ return;
14132
+ }
14133
+ let insideDOM;
14134
+ if (event.composedPath) {
14135
+ insideDOM = event.composedPath().includes(nodeRef.current);
14136
+ } else {
14137
+ insideDOM = !doc.documentElement.contains(
14138
+ // @ts-expect-error returns `false` as intended when not dispatched from a Node
14139
+ event.target
14140
+ ) || nodeRef.current.contains(
14141
+ // @ts-expect-error returns `false` as intended when not dispatched from a Node
14142
+ event.target
14143
+ );
14144
+ }
14145
+ if (!insideDOM && (disableReactTree || !insideReactTree)) {
14146
+ onClickAway(event);
14147
+ }
14148
+ });
14149
+ const createHandleSynthetic = (handlerName) => (event) => {
14150
+ syntheticEventRef.current = true;
14151
+ const childrenPropsHandler = children.props[handlerName];
14152
+ if (childrenPropsHandler) {
14153
+ childrenPropsHandler(event);
14154
+ }
14155
+ };
14156
+ const childrenProps = {
14157
+ ref: handleRef
14158
+ };
14159
+ if (touchEvent !== false) {
14160
+ childrenProps[touchEvent] = createHandleSynthetic(touchEvent);
14161
+ }
14162
+ React__namespace.useEffect(() => {
14163
+ if (touchEvent !== false) {
14164
+ const mappedTouchEvent = mapEventPropToEvent(touchEvent);
14165
+ const doc = ownerDocument(nodeRef.current);
14166
+ const handleTouchMove = () => {
14167
+ movedRef.current = true;
14168
+ };
14169
+ doc.addEventListener(mappedTouchEvent, handleClickAway);
14170
+ doc.addEventListener("touchmove", handleTouchMove);
14171
+ return () => {
14172
+ doc.removeEventListener(mappedTouchEvent, handleClickAway);
14173
+ doc.removeEventListener("touchmove", handleTouchMove);
14174
+ };
14175
+ }
14176
+ return void 0;
14177
+ }, [handleClickAway, touchEvent]);
14178
+ if (mouseEvent !== false) {
14179
+ childrenProps[mouseEvent] = createHandleSynthetic(mouseEvent);
14180
+ }
14181
+ React__namespace.useEffect(() => {
14182
+ if (mouseEvent !== false) {
14183
+ const mappedMouseEvent = mapEventPropToEvent(mouseEvent);
14184
+ const doc = ownerDocument(nodeRef.current);
14185
+ doc.addEventListener(mappedMouseEvent, handleClickAway);
14186
+ return () => {
14187
+ doc.removeEventListener(mappedMouseEvent, handleClickAway);
14188
+ };
14189
+ }
14190
+ return void 0;
14191
+ }, [handleClickAway, mouseEvent]);
14192
+ return /* @__PURE__ */ React__namespace.cloneElement(children, childrenProps);
14193
+ }
14194
+ process.env.NODE_ENV !== "production" ? ClickAwayListener.propTypes = {
14195
+ // ┌────────────────────────────── Warning ──────────────────────────────┐
14196
+ // │ These PropTypes are generated from the TypeScript type definitions. │
14197
+ // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │
14198
+ // └─────────────────────────────────────────────────────────────────────┘
14199
+ /**
14200
+ * The wrapped element.
14201
+ */
14202
+ children: elementAcceptingRef.isRequired,
14203
+ /**
14204
+ * If `true`, the React tree is ignored and only the DOM tree is considered.
14205
+ * This prop changes how portaled elements are handled.
14206
+ * @default false
14207
+ */
14208
+ disableReactTree: PropTypes.bool,
14209
+ /**
14210
+ * The mouse event to listen to. You can disable the listener by providing `false`.
14211
+ * @default 'onClick'
14212
+ */
14213
+ mouseEvent: PropTypes.oneOf(["onClick", "onMouseDown", "onMouseUp", "onPointerDown", "onPointerUp", false]),
14214
+ /**
14215
+ * Callback fired when a "click away" event is detected.
14216
+ */
14217
+ onClickAway: PropTypes.func.isRequired,
14218
+ /**
14219
+ * The touch event to listen to. You can disable the listener by providing `false`.
14220
+ * @default 'onTouchEnd'
14221
+ */
14222
+ touchEvent: PropTypes.oneOf(["onTouchEnd", "onTouchStart", false])
14223
+ } : void 0;
14224
+ if (process.env.NODE_ENV !== "production") {
14225
+ ClickAwayListener["propTypes"] = exactProp(ClickAwayListener.propTypes);
14226
+ }
13836
14227
  function formatMuiErrorMessage(code, ...args) {
13837
14228
  const url2 = new URL(`https://mui.com/production-error/?code=${code}`);
13838
14229
  args.forEach((arg) => url2.searchParams.append("args[]", arg));
@@ -14461,8 +14852,8 @@ process.env.NODE_ENV !== "production" ? spacingKeys.reduce((obj, key) => {
14461
14852
  obj[key] = responsivePropType;
14462
14853
  return obj;
14463
14854
  }, {}) : {};
14464
- function compose(...styles) {
14465
- const handlers = styles.reduce((acc, style2) => {
14855
+ function compose(...styles2) {
14856
+ const handlers = styles2.reduce((acc, style2) => {
14466
14857
  style2.filterProps.forEach((prop) => {
14467
14858
  acc[prop] = style2;
14468
14859
  });
@@ -14476,8 +14867,8 @@ function compose(...styles) {
14476
14867
  return acc;
14477
14868
  }, {});
14478
14869
  };
14479
- fn.propTypes = process.env.NODE_ENV !== "production" ? styles.reduce((acc, style2) => Object.assign(acc, style2.propTypes), {}) : {};
14480
- fn.filterProps = styles.reduce((acc, style2) => acc.concat(style2.filterProps), []);
14870
+ fn.propTypes = process.env.NODE_ENV !== "production" ? styles2.reduce((acc, style2) => Object.assign(acc, style2.propTypes), {}) : {};
14871
+ fn.filterProps = styles2.reduce((acc, style2) => acc.concat(style2.filterProps), []);
14481
14872
  return fn;
14482
14873
  }
14483
14874
  function borderTransform(value2) {
@@ -14970,12 +15361,12 @@ function callIfFn(maybeFn, arg) {
14970
15361
  return typeof maybeFn === "function" ? maybeFn(arg) : maybeFn;
14971
15362
  }
14972
15363
  function unstable_createStyleFunctionSx() {
14973
- function getThemeValue(prop, val, theme, config) {
15364
+ function getThemeValue(prop, val, theme, config2) {
14974
15365
  const props = {
14975
15366
  [prop]: val,
14976
15367
  theme
14977
15368
  };
14978
- const options = config[prop];
15369
+ const options = config2[prop];
14979
15370
  if (!options) {
14980
15371
  return {
14981
15372
  [prop]: val
@@ -15022,7 +15413,7 @@ function unstable_createStyleFunctionSx() {
15022
15413
  if (!sx) {
15023
15414
  return null;
15024
15415
  }
15025
- const config = theme.unstable_sxConfig ?? defaultSxConfig;
15416
+ const config2 = theme.unstable_sxConfig ?? defaultSxConfig;
15026
15417
  function traverse(sxInput) {
15027
15418
  let sxObject = sxInput;
15028
15419
  if (typeof sxInput === "function") {
@@ -15040,8 +15431,8 @@ function unstable_createStyleFunctionSx() {
15040
15431
  const value2 = callIfFn(sxObject[styleKey], theme);
15041
15432
  if (value2 !== null && value2 !== void 0) {
15042
15433
  if (typeof value2 === "object") {
15043
- if (config[styleKey]) {
15044
- css = merge(css, getThemeValue(styleKey, value2, theme, config));
15434
+ if (config2[styleKey]) {
15435
+ css = merge(css, getThemeValue(styleKey, value2, theme, config2));
15045
15436
  } else {
15046
15437
  const breakpointsValues = handleBreakpoints({
15047
15438
  theme
@@ -15059,7 +15450,7 @@ function unstable_createStyleFunctionSx() {
15059
15450
  }
15060
15451
  }
15061
15452
  } else {
15062
- css = merge(css, getThemeValue(styleKey, value2, theme, config));
15453
+ css = merge(css, getThemeValue(styleKey, value2, theme, config2));
15063
15454
  }
15064
15455
  }
15065
15456
  });
@@ -15833,8 +16224,8 @@ function handleInterpolation(mergedProps, registered, interpolation) {
15833
16224
  next = next.next;
15834
16225
  }
15835
16226
  }
15836
- var styles = serializedStyles.styles + ";";
15837
- return styles;
16227
+ var styles2 = serializedStyles.styles + ";";
16228
+ return styles2;
15838
16229
  }
15839
16230
  return createStringFromObject(mergedProps, registered, interpolation);
15840
16231
  }
@@ -15890,33 +16281,33 @@ function serializeStyles(args, registered, mergedProps) {
15890
16281
  return args[0];
15891
16282
  }
15892
16283
  var stringMode = true;
15893
- var styles = "";
16284
+ var styles2 = "";
15894
16285
  cursor = void 0;
15895
16286
  var strings = args[0];
15896
16287
  if (strings == null || strings.raw === void 0) {
15897
16288
  stringMode = false;
15898
- styles += handleInterpolation(mergedProps, registered, strings);
16289
+ styles2 += handleInterpolation(mergedProps, registered, strings);
15899
16290
  } else {
15900
16291
  var asTemplateStringsArr = strings;
15901
- styles += asTemplateStringsArr[0];
16292
+ styles2 += asTemplateStringsArr[0];
15902
16293
  }
15903
16294
  for (var i = 1; i < args.length; i++) {
15904
- styles += handleInterpolation(mergedProps, registered, args[i]);
16295
+ styles2 += handleInterpolation(mergedProps, registered, args[i]);
15905
16296
  if (stringMode) {
15906
16297
  var templateStringsArr = strings;
15907
- styles += templateStringsArr[i];
16298
+ styles2 += templateStringsArr[i];
15908
16299
  }
15909
16300
  }
15910
16301
  labelPattern.lastIndex = 0;
15911
16302
  var identifierName = "";
15912
16303
  var match;
15913
- while ((match = labelPattern.exec(styles)) !== null) {
16304
+ while ((match = labelPattern.exec(styles2)) !== null) {
15914
16305
  identifierName += "-" + match[1];
15915
16306
  }
15916
- var name2 = murmur2(styles) + identifierName;
16307
+ var name2 = murmur2(styles2) + identifierName;
15917
16308
  return {
15918
16309
  name: name2,
15919
- styles,
16310
+ styles: styles2,
15920
16311
  next: cursor
15921
16312
  };
15922
16313
  }
@@ -15930,14 +16321,14 @@ function serializeStyles(args, registered, mergedProps) {
15930
16321
  function styled$1(tag, options) {
15931
16322
  const stylesFactory = emStyled(tag, options);
15932
16323
  if (process.env.NODE_ENV !== "production") {
15933
- return (...styles) => {
16324
+ return (...styles2) => {
15934
16325
  const component = typeof tag === "string" ? `"${tag}"` : "component";
15935
- if (styles.length === 0) {
16326
+ if (styles2.length === 0) {
15936
16327
  console.error([`MUI: Seems like you called \`styled(${component})()\` without a \`style\` argument.`, 'You must provide a `styles` argument: `styled("div")(styleYouForgotToPass)`.'].join("\n"));
15937
- } else if (styles.some((style2) => style2 === void 0)) {
16328
+ } else if (styles2.some((style2) => style2 === void 0)) {
15938
16329
  console.error(`MUI: the styled(${component})(...args) API requires all its args to be defined.`);
15939
16330
  }
15940
- return stylesFactory(...styles);
16331
+ return stylesFactory(...styles2);
15941
16332
  };
15942
16333
  }
15943
16334
  return stylesFactory;
@@ -15948,8 +16339,8 @@ function internal_mutateStyles(tag, processor) {
15948
16339
  }
15949
16340
  }
15950
16341
  const wrapper = [];
15951
- function internal_serializeStyles(styles) {
15952
- wrapper[0] = styles;
16342
+ function internal_serializeStyles(styles2) {
16343
+ wrapper[0] = styles2;
15953
16344
  return serializeStyles(wrapper);
15954
16345
  }
15955
16346
  function r(e) {
@@ -16033,12 +16424,12 @@ function getThemeProps(params) {
16033
16424
  if (!theme || !theme.components || !theme.components[name2]) {
16034
16425
  return props;
16035
16426
  }
16036
- const config = theme.components[name2];
16037
- if (config.defaultProps) {
16038
- return resolveProps(config.defaultProps, props, theme.components.mergeClassNameAndStyle);
16427
+ const config2 = theme.components[name2];
16428
+ if (config2.defaultProps) {
16429
+ return resolveProps(config2.defaultProps, props, theme.components.mergeClassNameAndStyle);
16039
16430
  }
16040
- if (!config.styleOverrides && !config.variants) {
16041
- return resolveProps(config, props, theme.components.mergeClassNameAndStyle);
16431
+ if (!config2.styleOverrides && !config2.variants) {
16432
+ return resolveProps(config2, props, theme.components.mergeClassNameAndStyle);
16042
16433
  }
16043
16434
  return props;
16044
16435
  }
@@ -16154,7 +16545,7 @@ function createSpacing(spacingInput = 8, transform = createUnarySpacing({
16154
16545
  spacing.mui = true;
16155
16546
  return spacing;
16156
16547
  }
16157
- function applyStyles(key, styles) {
16548
+ function applyStyles(key, styles2) {
16158
16549
  const theme = this;
16159
16550
  if (theme.vars) {
16160
16551
  if (!theme.colorSchemes?.[key] || typeof theme.getColorSchemeSelector !== "function") {
@@ -16162,17 +16553,17 @@ function applyStyles(key, styles) {
16162
16553
  }
16163
16554
  let selector = theme.getColorSchemeSelector(key);
16164
16555
  if (selector === "&") {
16165
- return styles;
16556
+ return styles2;
16166
16557
  }
16167
16558
  if (selector.includes("data-") || selector.includes(".")) {
16168
16559
  selector = `*:where(${selector.replace(/\s*&$/, "")}) &`;
16169
16560
  }
16170
16561
  return {
16171
- [selector]: styles
16562
+ [selector]: styles2
16172
16563
  };
16173
16564
  }
16174
16565
  if (theme.palette.mode === key) {
16175
- return styles;
16566
+ return styles2;
16176
16567
  }
16177
16568
  return {};
16178
16569
  }
@@ -17519,7 +17910,7 @@ function defaultOverridesResolver(slot) {
17519
17910
  if (!slot) {
17520
17911
  return null;
17521
17912
  }
17522
- return (_props, styles) => styles[slot];
17913
+ return (_props, styles2) => styles2[slot];
17523
17914
  }
17524
17915
  function attachTheme(props, themeId, defaultTheme2) {
17525
17916
  props.theme = isObjectEmpty(props.theme) ? defaultTheme2 : props.theme[themeId] || props.theme;
@@ -17591,7 +17982,7 @@ function createStyled(input = {}) {
17591
17982
  attachTheme(props, themeId, defaultTheme2);
17592
17983
  }
17593
17984
  const styled2 = (tag, inputOptions = {}) => {
17594
- internal_mutateStyles(tag, (styles) => styles.filter((style2) => style2 !== styleFunctionSx));
17985
+ internal_mutateStyles(tag, (styles2) => styles2.filter((style2) => style2 !== styleFunctionSx));
17595
17986
  const {
17596
17987
  name: componentName,
17597
17988
  slot: componentSlot,
@@ -17744,31 +18135,1611 @@ const styled = createStyled({
17744
18135
  defaultTheme,
17745
18136
  rootShouldForwardProp
17746
18137
  });
17747
- const memoTheme = system.unstable_memoTheme;
17748
- process.env.NODE_ENV !== "production" ? {
18138
+ const memoTheme = system.unstable_memoTheme;
18139
+ process.env.NODE_ENV !== "production" ? {
18140
+ // ┌────────────────────────────── Warning ──────────────────────────────┐
18141
+ // │ These PropTypes are generated from the TypeScript type definitions. │
18142
+ // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │
18143
+ // └─────────────────────────────────────────────────────────────────────┘
18144
+ /**
18145
+ * @ignore
18146
+ */
18147
+ children: PropTypes.node,
18148
+ /**
18149
+ * @ignore
18150
+ */
18151
+ value: PropTypes.object.isRequired
18152
+ } : void 0;
18153
+ function useDefaultProps(params) {
18154
+ return useDefaultProps$1(params);
18155
+ }
18156
+ function _objectWithoutPropertiesLoose$1(r2, e) {
18157
+ if (null == r2) return {};
18158
+ var t = {};
18159
+ for (var n in r2) if ({}.hasOwnProperty.call(r2, n)) {
18160
+ if (-1 !== e.indexOf(n)) continue;
18161
+ t[n] = r2[n];
18162
+ }
18163
+ return t;
18164
+ }
18165
+ function _setPrototypeOf(t, e) {
18166
+ return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(t2, e2) {
18167
+ return t2.__proto__ = e2, t2;
18168
+ }, _setPrototypeOf(t, e);
18169
+ }
18170
+ function _inheritsLoose(t, o) {
18171
+ t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _setPrototypeOf(t, o);
18172
+ }
18173
+ const config = {
18174
+ disabled: false
18175
+ };
18176
+ var timeoutsShape = process.env.NODE_ENV !== "production" ? PropTypes.oneOfType([PropTypes.number, PropTypes.shape({
18177
+ enter: PropTypes.number,
18178
+ exit: PropTypes.number,
18179
+ appear: PropTypes.number
18180
+ }).isRequired]) : null;
18181
+ process.env.NODE_ENV !== "production" ? PropTypes.oneOfType([PropTypes.string, PropTypes.shape({
18182
+ enter: PropTypes.string,
18183
+ exit: PropTypes.string,
18184
+ active: PropTypes.string
18185
+ }), PropTypes.shape({
18186
+ enter: PropTypes.string,
18187
+ enterDone: PropTypes.string,
18188
+ enterActive: PropTypes.string,
18189
+ exit: PropTypes.string,
18190
+ exitDone: PropTypes.string,
18191
+ exitActive: PropTypes.string
18192
+ })]) : null;
18193
+ const TransitionGroupContext = React.createContext(null);
18194
+ var forceReflow = function forceReflow2(node) {
18195
+ return node.scrollTop;
18196
+ };
18197
+ var UNMOUNTED = "unmounted";
18198
+ var EXITED = "exited";
18199
+ var ENTERING = "entering";
18200
+ var ENTERED = "entered";
18201
+ var EXITING = "exiting";
18202
+ var Transition = /* @__PURE__ */ (function(_React$Component) {
18203
+ _inheritsLoose(Transition2, _React$Component);
18204
+ function Transition2(props, context) {
18205
+ var _this;
18206
+ _this = _React$Component.call(this, props, context) || this;
18207
+ var parentGroup = context;
18208
+ var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;
18209
+ var initialStatus;
18210
+ _this.appearStatus = null;
18211
+ if (props.in) {
18212
+ if (appear) {
18213
+ initialStatus = EXITED;
18214
+ _this.appearStatus = ENTERING;
18215
+ } else {
18216
+ initialStatus = ENTERED;
18217
+ }
18218
+ } else {
18219
+ if (props.unmountOnExit || props.mountOnEnter) {
18220
+ initialStatus = UNMOUNTED;
18221
+ } else {
18222
+ initialStatus = EXITED;
18223
+ }
18224
+ }
18225
+ _this.state = {
18226
+ status: initialStatus
18227
+ };
18228
+ _this.nextCallback = null;
18229
+ return _this;
18230
+ }
18231
+ Transition2.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {
18232
+ var nextIn = _ref.in;
18233
+ if (nextIn && prevState.status === UNMOUNTED) {
18234
+ return {
18235
+ status: EXITED
18236
+ };
18237
+ }
18238
+ return null;
18239
+ };
18240
+ var _proto = Transition2.prototype;
18241
+ _proto.componentDidMount = function componentDidMount() {
18242
+ this.updateStatus(true, this.appearStatus);
18243
+ };
18244
+ _proto.componentDidUpdate = function componentDidUpdate(prevProps) {
18245
+ var nextStatus = null;
18246
+ if (prevProps !== this.props) {
18247
+ var status = this.state.status;
18248
+ if (this.props.in) {
18249
+ if (status !== ENTERING && status !== ENTERED) {
18250
+ nextStatus = ENTERING;
18251
+ }
18252
+ } else {
18253
+ if (status === ENTERING || status === ENTERED) {
18254
+ nextStatus = EXITING;
18255
+ }
18256
+ }
18257
+ }
18258
+ this.updateStatus(false, nextStatus);
18259
+ };
18260
+ _proto.componentWillUnmount = function componentWillUnmount() {
18261
+ this.cancelNextCallback();
18262
+ };
18263
+ _proto.getTimeouts = function getTimeouts() {
18264
+ var timeout2 = this.props.timeout;
18265
+ var exit, enter, appear;
18266
+ exit = enter = appear = timeout2;
18267
+ if (timeout2 != null && typeof timeout2 !== "number") {
18268
+ exit = timeout2.exit;
18269
+ enter = timeout2.enter;
18270
+ appear = timeout2.appear !== void 0 ? timeout2.appear : enter;
18271
+ }
18272
+ return {
18273
+ exit,
18274
+ enter,
18275
+ appear
18276
+ };
18277
+ };
18278
+ _proto.updateStatus = function updateStatus(mounting, nextStatus) {
18279
+ if (mounting === void 0) {
18280
+ mounting = false;
18281
+ }
18282
+ if (nextStatus !== null) {
18283
+ this.cancelNextCallback();
18284
+ if (nextStatus === ENTERING) {
18285
+ if (this.props.unmountOnExit || this.props.mountOnEnter) {
18286
+ var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);
18287
+ if (node) forceReflow(node);
18288
+ }
18289
+ this.performEnter(mounting);
18290
+ } else {
18291
+ this.performExit();
18292
+ }
18293
+ } else if (this.props.unmountOnExit && this.state.status === EXITED) {
18294
+ this.setState({
18295
+ status: UNMOUNTED
18296
+ });
18297
+ }
18298
+ };
18299
+ _proto.performEnter = function performEnter(mounting) {
18300
+ var _this2 = this;
18301
+ var enter = this.props.enter;
18302
+ var appearing = this.context ? this.context.isMounting : mounting;
18303
+ var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing], maybeNode = _ref2[0], maybeAppearing = _ref2[1];
18304
+ var timeouts = this.getTimeouts();
18305
+ var enterTimeout = appearing ? timeouts.appear : timeouts.enter;
18306
+ if (!mounting && !enter || config.disabled) {
18307
+ this.safeSetState({
18308
+ status: ENTERED
18309
+ }, function() {
18310
+ _this2.props.onEntered(maybeNode);
18311
+ });
18312
+ return;
18313
+ }
18314
+ this.props.onEnter(maybeNode, maybeAppearing);
18315
+ this.safeSetState({
18316
+ status: ENTERING
18317
+ }, function() {
18318
+ _this2.props.onEntering(maybeNode, maybeAppearing);
18319
+ _this2.onTransitionEnd(enterTimeout, function() {
18320
+ _this2.safeSetState({
18321
+ status: ENTERED
18322
+ }, function() {
18323
+ _this2.props.onEntered(maybeNode, maybeAppearing);
18324
+ });
18325
+ });
18326
+ });
18327
+ };
18328
+ _proto.performExit = function performExit() {
18329
+ var _this3 = this;
18330
+ var exit = this.props.exit;
18331
+ var timeouts = this.getTimeouts();
18332
+ var maybeNode = this.props.nodeRef ? void 0 : ReactDOM.findDOMNode(this);
18333
+ if (!exit || config.disabled) {
18334
+ this.safeSetState({
18335
+ status: EXITED
18336
+ }, function() {
18337
+ _this3.props.onExited(maybeNode);
18338
+ });
18339
+ return;
18340
+ }
18341
+ this.props.onExit(maybeNode);
18342
+ this.safeSetState({
18343
+ status: EXITING
18344
+ }, function() {
18345
+ _this3.props.onExiting(maybeNode);
18346
+ _this3.onTransitionEnd(timeouts.exit, function() {
18347
+ _this3.safeSetState({
18348
+ status: EXITED
18349
+ }, function() {
18350
+ _this3.props.onExited(maybeNode);
18351
+ });
18352
+ });
18353
+ });
18354
+ };
18355
+ _proto.cancelNextCallback = function cancelNextCallback() {
18356
+ if (this.nextCallback !== null) {
18357
+ this.nextCallback.cancel();
18358
+ this.nextCallback = null;
18359
+ }
18360
+ };
18361
+ _proto.safeSetState = function safeSetState(nextState, callback) {
18362
+ callback = this.setNextCallback(callback);
18363
+ this.setState(nextState, callback);
18364
+ };
18365
+ _proto.setNextCallback = function setNextCallback(callback) {
18366
+ var _this4 = this;
18367
+ var active = true;
18368
+ this.nextCallback = function(event) {
18369
+ if (active) {
18370
+ active = false;
18371
+ _this4.nextCallback = null;
18372
+ callback(event);
18373
+ }
18374
+ };
18375
+ this.nextCallback.cancel = function() {
18376
+ active = false;
18377
+ };
18378
+ return this.nextCallback;
18379
+ };
18380
+ _proto.onTransitionEnd = function onTransitionEnd(timeout2, handler) {
18381
+ this.setNextCallback(handler);
18382
+ var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);
18383
+ var doesNotHaveTimeoutOrListener = timeout2 == null && !this.props.addEndListener;
18384
+ if (!node || doesNotHaveTimeoutOrListener) {
18385
+ setTimeout(this.nextCallback, 0);
18386
+ return;
18387
+ }
18388
+ if (this.props.addEndListener) {
18389
+ var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback], maybeNode = _ref3[0], maybeNextCallback = _ref3[1];
18390
+ this.props.addEndListener(maybeNode, maybeNextCallback);
18391
+ }
18392
+ if (timeout2 != null) {
18393
+ setTimeout(this.nextCallback, timeout2);
18394
+ }
18395
+ };
18396
+ _proto.render = function render() {
18397
+ var status = this.state.status;
18398
+ if (status === UNMOUNTED) {
18399
+ return null;
18400
+ }
18401
+ var _this$props = this.props, children = _this$props.children;
18402
+ _this$props.in;
18403
+ _this$props.mountOnEnter;
18404
+ _this$props.unmountOnExit;
18405
+ _this$props.appear;
18406
+ _this$props.enter;
18407
+ _this$props.exit;
18408
+ _this$props.timeout;
18409
+ _this$props.addEndListener;
18410
+ _this$props.onEnter;
18411
+ _this$props.onEntering;
18412
+ _this$props.onEntered;
18413
+ _this$props.onExit;
18414
+ _this$props.onExiting;
18415
+ _this$props.onExited;
18416
+ _this$props.nodeRef;
18417
+ var childProps = _objectWithoutPropertiesLoose$1(_this$props, ["children", "in", "mountOnEnter", "unmountOnExit", "appear", "enter", "exit", "timeout", "addEndListener", "onEnter", "onEntering", "onEntered", "onExit", "onExiting", "onExited", "nodeRef"]);
18418
+ return (
18419
+ // allows for nested Transitions
18420
+ /* @__PURE__ */ React.createElement(TransitionGroupContext.Provider, {
18421
+ value: null
18422
+ }, typeof children === "function" ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))
18423
+ );
18424
+ };
18425
+ return Transition2;
18426
+ })(React.Component);
18427
+ Transition.contextType = TransitionGroupContext;
18428
+ Transition.propTypes = process.env.NODE_ENV !== "production" ? {
18429
+ /**
18430
+ * A React reference to DOM element that need to transition:
18431
+ * https://stackoverflow.com/a/51127130/4671932
18432
+ *
18433
+ * - When `nodeRef` prop is used, `node` is not passed to callback functions
18434
+ * (e.g. `onEnter`) because user already has direct access to the node.
18435
+ * - When changing `key` prop of `Transition` in a `TransitionGroup` a new
18436
+ * `nodeRef` need to be provided to `Transition` with changed `key` prop
18437
+ * (see
18438
+ * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).
18439
+ */
18440
+ nodeRef: PropTypes.shape({
18441
+ current: typeof Element === "undefined" ? PropTypes.any : function(propValue, key, componentName, location2, propFullName, secret) {
18442
+ var value2 = propValue[key];
18443
+ return PropTypes.instanceOf(value2 && "ownerDocument" in value2 ? value2.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location2, propFullName, secret);
18444
+ }
18445
+ }),
18446
+ /**
18447
+ * A `function` child can be used instead of a React element. This function is
18448
+ * called with the current transition status (`'entering'`, `'entered'`,
18449
+ * `'exiting'`, `'exited'`), which can be used to apply context
18450
+ * specific props to a component.
18451
+ *
18452
+ * ```jsx
18453
+ * <Transition in={this.state.in} timeout={150}>
18454
+ * {state => (
18455
+ * <MyComponent className={`fade fade-${state}`} />
18456
+ * )}
18457
+ * </Transition>
18458
+ * ```
18459
+ */
18460
+ children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,
18461
+ /**
18462
+ * Show the component; triggers the enter or exit states
18463
+ */
18464
+ in: PropTypes.bool,
18465
+ /**
18466
+ * By default the child component is mounted immediately along with
18467
+ * the parent `Transition` component. If you want to "lazy mount" the component on the
18468
+ * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay
18469
+ * mounted, even on "exited", unless you also specify `unmountOnExit`.
18470
+ */
18471
+ mountOnEnter: PropTypes.bool,
18472
+ /**
18473
+ * By default the child component stays mounted after it reaches the `'exited'` state.
18474
+ * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.
18475
+ */
18476
+ unmountOnExit: PropTypes.bool,
18477
+ /**
18478
+ * By default the child component does not perform the enter transition when
18479
+ * it first mounts, regardless of the value of `in`. If you want this
18480
+ * behavior, set both `appear` and `in` to `true`.
18481
+ *
18482
+ * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop
18483
+ * > only adds an additional enter transition. However, in the
18484
+ * > `<CSSTransition>` component that first enter transition does result in
18485
+ * > additional `.appear-*` classes, that way you can choose to style it
18486
+ * > differently.
18487
+ */
18488
+ appear: PropTypes.bool,
18489
+ /**
18490
+ * Enable or disable enter transitions.
18491
+ */
18492
+ enter: PropTypes.bool,
18493
+ /**
18494
+ * Enable or disable exit transitions.
18495
+ */
18496
+ exit: PropTypes.bool,
18497
+ /**
18498
+ * The duration of the transition, in milliseconds.
18499
+ * Required unless `addEndListener` is provided.
18500
+ *
18501
+ * You may specify a single timeout for all transitions:
18502
+ *
18503
+ * ```jsx
18504
+ * timeout={500}
18505
+ * ```
18506
+ *
18507
+ * or individually:
18508
+ *
18509
+ * ```jsx
18510
+ * timeout={{
18511
+ * appear: 500,
18512
+ * enter: 300,
18513
+ * exit: 500,
18514
+ * }}
18515
+ * ```
18516
+ *
18517
+ * - `appear` defaults to the value of `enter`
18518
+ * - `enter` defaults to `0`
18519
+ * - `exit` defaults to `0`
18520
+ *
18521
+ * @type {number | { enter?: number, exit?: number, appear?: number }}
18522
+ */
18523
+ timeout: function timeout(props) {
18524
+ var pt = timeoutsShape;
18525
+ if (!props.addEndListener) pt = pt.isRequired;
18526
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
18527
+ args[_key - 1] = arguments[_key];
18528
+ }
18529
+ return pt.apply(void 0, [props].concat(args));
18530
+ },
18531
+ /**
18532
+ * Add a custom transition end trigger. Called with the transitioning
18533
+ * DOM node and a `done` callback. Allows for more fine grained transition end
18534
+ * logic. Timeouts are still used as a fallback if provided.
18535
+ *
18536
+ * **Note**: when `nodeRef` prop is passed, `node` is not passed.
18537
+ *
18538
+ * ```jsx
18539
+ * addEndListener={(node, done) => {
18540
+ * // use the css transitionend event to mark the finish of a transition
18541
+ * node.addEventListener('transitionend', done, false);
18542
+ * }}
18543
+ * ```
18544
+ */
18545
+ addEndListener: PropTypes.func,
18546
+ /**
18547
+ * Callback fired before the "entering" status is applied. An extra parameter
18548
+ * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount
18549
+ *
18550
+ * **Note**: when `nodeRef` prop is passed, `node` is not passed.
18551
+ *
18552
+ * @type Function(node: HtmlElement, isAppearing: bool) -> void
18553
+ */
18554
+ onEnter: PropTypes.func,
18555
+ /**
18556
+ * Callback fired after the "entering" status is applied. An extra parameter
18557
+ * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount
18558
+ *
18559
+ * **Note**: when `nodeRef` prop is passed, `node` is not passed.
18560
+ *
18561
+ * @type Function(node: HtmlElement, isAppearing: bool)
18562
+ */
18563
+ onEntering: PropTypes.func,
18564
+ /**
18565
+ * Callback fired after the "entered" status is applied. An extra parameter
18566
+ * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount
18567
+ *
18568
+ * **Note**: when `nodeRef` prop is passed, `node` is not passed.
18569
+ *
18570
+ * @type Function(node: HtmlElement, isAppearing: bool) -> void
18571
+ */
18572
+ onEntered: PropTypes.func,
18573
+ /**
18574
+ * Callback fired before the "exiting" status is applied.
18575
+ *
18576
+ * **Note**: when `nodeRef` prop is passed, `node` is not passed.
18577
+ *
18578
+ * @type Function(node: HtmlElement) -> void
18579
+ */
18580
+ onExit: PropTypes.func,
18581
+ /**
18582
+ * Callback fired after the "exiting" status is applied.
18583
+ *
18584
+ * **Note**: when `nodeRef` prop is passed, `node` is not passed.
18585
+ *
18586
+ * @type Function(node: HtmlElement) -> void
18587
+ */
18588
+ onExiting: PropTypes.func,
18589
+ /**
18590
+ * Callback fired after the "exited" status is applied.
18591
+ *
18592
+ * **Note**: when `nodeRef` prop is passed, `node` is not passed
18593
+ *
18594
+ * @type Function(node: HtmlElement) -> void
18595
+ */
18596
+ onExited: PropTypes.func
18597
+ } : {};
18598
+ function noop$1() {
18599
+ }
18600
+ Transition.defaultProps = {
18601
+ in: false,
18602
+ mountOnEnter: false,
18603
+ unmountOnExit: false,
18604
+ appear: false,
18605
+ enter: true,
18606
+ exit: true,
18607
+ onEnter: noop$1,
18608
+ onEntering: noop$1,
18609
+ onEntered: noop$1,
18610
+ onExit: noop$1,
18611
+ onExiting: noop$1,
18612
+ onExited: noop$1
18613
+ };
18614
+ Transition.UNMOUNTED = UNMOUNTED;
18615
+ Transition.EXITED = EXITED;
18616
+ Transition.ENTERING = ENTERING;
18617
+ Transition.ENTERED = ENTERED;
18618
+ Transition.EXITING = EXITING;
18619
+ const reflow = (node) => node.scrollTop;
18620
+ function getTransitionProps(props, options) {
18621
+ const {
18622
+ timeout: timeout2,
18623
+ easing: easing2,
18624
+ style: style2 = {}
18625
+ } = props;
18626
+ return {
18627
+ duration: style2.transitionDuration ?? (typeof timeout2 === "number" ? timeout2 : timeout2[options.mode] || 0),
18628
+ easing: style2.transitionTimingFunction ?? (typeof easing2 === "object" ? easing2[options.mode] : easing2),
18629
+ delay: style2.transitionDelay
18630
+ };
18631
+ }
18632
+ function getScale(value2) {
18633
+ return `scale(${value2}, ${value2 ** 2})`;
18634
+ }
18635
+ const styles = {
18636
+ entering: {
18637
+ opacity: 1,
18638
+ transform: getScale(1)
18639
+ },
18640
+ entered: {
18641
+ opacity: 1,
18642
+ transform: "none"
18643
+ }
18644
+ };
18645
+ const isWebKit154 = typeof navigator !== "undefined" && /^((?!chrome|android).)*(safari|mobile)/i.test(navigator.userAgent) && /(os |version\/)15(.|_)4/i.test(navigator.userAgent);
18646
+ const Grow = /* @__PURE__ */ React__namespace.forwardRef(function Grow2(props, ref) {
18647
+ const {
18648
+ addEndListener,
18649
+ appear = true,
18650
+ children,
18651
+ easing: easing2,
18652
+ in: inProp,
18653
+ onEnter,
18654
+ onEntered,
18655
+ onEntering,
18656
+ onExit,
18657
+ onExited,
18658
+ onExiting,
18659
+ style: style2,
18660
+ timeout: timeout2 = "auto",
18661
+ // eslint-disable-next-line react/prop-types
18662
+ TransitionComponent = Transition,
18663
+ ...other
18664
+ } = props;
18665
+ const timer = useTimeout();
18666
+ const autoTimeout = React__namespace.useRef();
18667
+ const theme = useTheme();
18668
+ const nodeRef = React__namespace.useRef(null);
18669
+ const handleRef = useForkRef(nodeRef, getReactElementRef(children), ref);
18670
+ const normalizedTransitionCallback = (callback) => (maybeIsAppearing) => {
18671
+ if (callback) {
18672
+ const node = nodeRef.current;
18673
+ if (maybeIsAppearing === void 0) {
18674
+ callback(node);
18675
+ } else {
18676
+ callback(node, maybeIsAppearing);
18677
+ }
18678
+ }
18679
+ };
18680
+ const handleEntering = normalizedTransitionCallback(onEntering);
18681
+ const handleEnter = normalizedTransitionCallback((node, isAppearing) => {
18682
+ reflow(node);
18683
+ const {
18684
+ duration: transitionDuration,
18685
+ delay: delay2,
18686
+ easing: transitionTimingFunction
18687
+ } = getTransitionProps({
18688
+ style: style2,
18689
+ timeout: timeout2,
18690
+ easing: easing2
18691
+ }, {
18692
+ mode: "enter"
18693
+ });
18694
+ let duration2;
18695
+ if (timeout2 === "auto") {
18696
+ duration2 = theme.transitions.getAutoHeightDuration(node.clientHeight);
18697
+ autoTimeout.current = duration2;
18698
+ } else {
18699
+ duration2 = transitionDuration;
18700
+ }
18701
+ node.style.transition = [theme.transitions.create("opacity", {
18702
+ duration: duration2,
18703
+ delay: delay2
18704
+ }), theme.transitions.create("transform", {
18705
+ duration: isWebKit154 ? duration2 : duration2 * 0.666,
18706
+ delay: delay2,
18707
+ easing: transitionTimingFunction
18708
+ })].join(",");
18709
+ if (onEnter) {
18710
+ onEnter(node, isAppearing);
18711
+ }
18712
+ });
18713
+ const handleEntered = normalizedTransitionCallback(onEntered);
18714
+ const handleExiting = normalizedTransitionCallback(onExiting);
18715
+ const handleExit = normalizedTransitionCallback((node) => {
18716
+ const {
18717
+ duration: transitionDuration,
18718
+ delay: delay2,
18719
+ easing: transitionTimingFunction
18720
+ } = getTransitionProps({
18721
+ style: style2,
18722
+ timeout: timeout2,
18723
+ easing: easing2
18724
+ }, {
18725
+ mode: "exit"
18726
+ });
18727
+ let duration2;
18728
+ if (timeout2 === "auto") {
18729
+ duration2 = theme.transitions.getAutoHeightDuration(node.clientHeight);
18730
+ autoTimeout.current = duration2;
18731
+ } else {
18732
+ duration2 = transitionDuration;
18733
+ }
18734
+ node.style.transition = [theme.transitions.create("opacity", {
18735
+ duration: duration2,
18736
+ delay: delay2
18737
+ }), theme.transitions.create("transform", {
18738
+ duration: isWebKit154 ? duration2 : duration2 * 0.666,
18739
+ delay: isWebKit154 ? delay2 : delay2 || duration2 * 0.333,
18740
+ easing: transitionTimingFunction
18741
+ })].join(",");
18742
+ node.style.opacity = 0;
18743
+ node.style.transform = getScale(0.75);
18744
+ if (onExit) {
18745
+ onExit(node);
18746
+ }
18747
+ });
18748
+ const handleExited = normalizedTransitionCallback(onExited);
18749
+ const handleAddEndListener = (next) => {
18750
+ if (timeout2 === "auto") {
18751
+ timer.start(autoTimeout.current || 0, next);
18752
+ }
18753
+ if (addEndListener) {
18754
+ addEndListener(nodeRef.current, next);
18755
+ }
18756
+ };
18757
+ return /* @__PURE__ */ jsxRuntime.jsx(TransitionComponent, {
18758
+ appear,
18759
+ in: inProp,
18760
+ nodeRef,
18761
+ onEnter: handleEnter,
18762
+ onEntered: handleEntered,
18763
+ onEntering: handleEntering,
18764
+ onExit: handleExit,
18765
+ onExited: handleExited,
18766
+ onExiting: handleExiting,
18767
+ addEndListener: handleAddEndListener,
18768
+ timeout: timeout2 === "auto" ? null : timeout2,
18769
+ ...other,
18770
+ children: (state, {
18771
+ ownerState,
18772
+ ...restChildProps
18773
+ }) => {
18774
+ return /* @__PURE__ */ React__namespace.cloneElement(children, {
18775
+ style: {
18776
+ opacity: 0,
18777
+ transform: getScale(0.75),
18778
+ visibility: state === "exited" && !inProp ? "hidden" : void 0,
18779
+ ...styles[state],
18780
+ ...style2,
18781
+ ...children.props.style
18782
+ },
18783
+ ref: handleRef,
18784
+ ...restChildProps
18785
+ });
18786
+ }
18787
+ });
18788
+ });
18789
+ process.env.NODE_ENV !== "production" ? Grow.propTypes = {
18790
+ // ┌────────────────────────────── Warning ──────────────────────────────┐
18791
+ // │ These PropTypes are generated from the TypeScript type definitions. │
18792
+ // │ To update them, edit the d.ts file and run `pnpm proptypes`. │
18793
+ // └─────────────────────────────────────────────────────────────────────┘
18794
+ /**
18795
+ * Add a custom transition end trigger. Called with the transitioning DOM
18796
+ * node and a done callback. Allows for more fine grained transition end
18797
+ * logic. Note: Timeouts are still used as a fallback if provided.
18798
+ */
18799
+ addEndListener: PropTypes.func,
18800
+ /**
18801
+ * Perform the enter transition when it first mounts if `in` is also `true`.
18802
+ * Set this to `false` to disable this behavior.
18803
+ * @default true
18804
+ */
18805
+ appear: PropTypes.bool,
18806
+ /**
18807
+ * A single child content element.
18808
+ */
18809
+ children: elementAcceptingRef.isRequired,
18810
+ /**
18811
+ * The transition timing function.
18812
+ * You may specify a single easing or a object containing enter and exit values.
18813
+ */
18814
+ easing: PropTypes.oneOfType([PropTypes.shape({
18815
+ enter: PropTypes.string,
18816
+ exit: PropTypes.string
18817
+ }), PropTypes.string]),
18818
+ /**
18819
+ * If `true`, the component will transition in.
18820
+ */
18821
+ in: PropTypes.bool,
18822
+ /**
18823
+ * @ignore
18824
+ */
18825
+ onEnter: PropTypes.func,
18826
+ /**
18827
+ * @ignore
18828
+ */
18829
+ onEntered: PropTypes.func,
18830
+ /**
18831
+ * @ignore
18832
+ */
18833
+ onEntering: PropTypes.func,
18834
+ /**
18835
+ * @ignore
18836
+ */
18837
+ onExit: PropTypes.func,
18838
+ /**
18839
+ * @ignore
18840
+ */
18841
+ onExited: PropTypes.func,
18842
+ /**
18843
+ * @ignore
18844
+ */
18845
+ onExiting: PropTypes.func,
18846
+ /**
18847
+ * @ignore
18848
+ */
18849
+ style: PropTypes.object,
18850
+ /**
18851
+ * The duration for the transition, in milliseconds.
18852
+ * You may specify a single timeout for all transitions, or individually with an object.
18853
+ *
18854
+ * Set to 'auto' to automatically calculate transition time based on height.
18855
+ * @default 'auto'
18856
+ */
18857
+ timeout: PropTypes.oneOfType([PropTypes.oneOf(["auto"]), PropTypes.number, PropTypes.shape({
18858
+ appear: PropTypes.number,
18859
+ enter: PropTypes.number,
18860
+ exit: PropTypes.number
18861
+ })])
18862
+ } : void 0;
18863
+ if (Grow) {
18864
+ Grow.muiSupportAuto = true;
18865
+ }
18866
+ function getTypeByValue(value2) {
18867
+ const valueType = typeof value2;
18868
+ switch (valueType) {
18869
+ case "number":
18870
+ if (Number.isNaN(value2)) {
18871
+ return "NaN";
18872
+ }
18873
+ if (!Number.isFinite(value2)) {
18874
+ return "Infinity";
18875
+ }
18876
+ if (value2 !== Math.floor(value2)) {
18877
+ return "float";
18878
+ }
18879
+ return "number";
18880
+ case "object":
18881
+ if (value2 === null) {
18882
+ return "null";
18883
+ }
18884
+ return value2.constructor.name;
18885
+ default:
18886
+ return valueType;
18887
+ }
18888
+ }
18889
+ function requiredInteger(props, propName, componentName, location2) {
18890
+ const propValue = props[propName];
18891
+ if (propValue == null || !Number.isInteger(propValue)) {
18892
+ const propType = getTypeByValue(propValue);
18893
+ return new RangeError(`Invalid ${location2} \`${propName}\` of type \`${propType}\` supplied to \`${componentName}\`, expected \`integer\`.`);
18894
+ }
18895
+ return null;
18896
+ }
18897
+ function validator(props, propName, componentName, location2) {
18898
+ const propValue = props[propName];
18899
+ if (propValue === void 0) {
18900
+ return null;
18901
+ }
18902
+ return requiredInteger(props, propName, componentName, location2);
18903
+ }
18904
+ function validatorNoop() {
18905
+ return null;
18906
+ }
18907
+ validator.isRequired = requiredInteger;
18908
+ validatorNoop.isRequired = validatorNoop;
18909
+ const integerPropType = process.env.NODE_ENV === "production" ? validatorNoop : validator;
18910
+ function generateUtilityClasses(componentName, slots, globalStatePrefix = "Mui") {
18911
+ const result = {};
18912
+ slots.forEach((slot) => {
18913
+ result[slot] = generateUtilityClass(componentName, slot, globalStatePrefix);
18914
+ });
18915
+ return result;
18916
+ }
18917
+ function getPaperUtilityClass(slot) {
18918
+ return generateUtilityClass("MuiPaper", slot);
18919
+ }
18920
+ generateUtilityClasses("MuiPaper", ["root", "rounded", "outlined", "elevation", "elevation0", "elevation1", "elevation2", "elevation3", "elevation4", "elevation5", "elevation6", "elevation7", "elevation8", "elevation9", "elevation10", "elevation11", "elevation12", "elevation13", "elevation14", "elevation15", "elevation16", "elevation17", "elevation18", "elevation19", "elevation20", "elevation21", "elevation22", "elevation23", "elevation24"]);
18921
+ const useUtilityClasses$3 = (ownerState) => {
18922
+ const {
18923
+ square,
18924
+ elevation,
18925
+ variant,
18926
+ classes
18927
+ } = ownerState;
18928
+ const slots = {
18929
+ root: ["root", variant, !square && "rounded", variant === "elevation" && `elevation${elevation}`]
18930
+ };
18931
+ return composeClasses(slots, getPaperUtilityClass, classes);
18932
+ };
18933
+ const PaperRoot = styled("div", {
18934
+ name: "MuiPaper",
18935
+ slot: "Root",
18936
+ overridesResolver: (props, styles2) => {
18937
+ const {
18938
+ ownerState
18939
+ } = props;
18940
+ return [styles2.root, styles2[ownerState.variant], !ownerState.square && styles2.rounded, ownerState.variant === "elevation" && styles2[`elevation${ownerState.elevation}`]];
18941
+ }
18942
+ })(memoTheme(({
18943
+ theme
18944
+ }) => ({
18945
+ backgroundColor: (theme.vars || theme).palette.background.paper,
18946
+ color: (theme.vars || theme).palette.text.primary,
18947
+ transition: theme.transitions.create("box-shadow"),
18948
+ variants: [{
18949
+ props: ({
18950
+ ownerState
18951
+ }) => !ownerState.square,
18952
+ style: {
18953
+ borderRadius: theme.shape.borderRadius
18954
+ }
18955
+ }, {
18956
+ props: {
18957
+ variant: "outlined"
18958
+ },
18959
+ style: {
18960
+ border: `1px solid ${(theme.vars || theme).palette.divider}`
18961
+ }
18962
+ }, {
18963
+ props: {
18964
+ variant: "elevation"
18965
+ },
18966
+ style: {
18967
+ boxShadow: "var(--Paper-shadow)",
18968
+ backgroundImage: "var(--Paper-overlay)"
18969
+ }
18970
+ }]
18971
+ })));
18972
+ const Paper = /* @__PURE__ */ React__namespace.forwardRef(function Paper2(inProps, ref) {
18973
+ const props = useDefaultProps({
18974
+ props: inProps,
18975
+ name: "MuiPaper"
18976
+ });
18977
+ const theme = useTheme();
18978
+ const {
18979
+ className,
18980
+ component = "div",
18981
+ elevation = 1,
18982
+ square = false,
18983
+ variant = "elevation",
18984
+ ...other
18985
+ } = props;
18986
+ const ownerState = {
18987
+ ...props,
18988
+ component,
18989
+ elevation,
18990
+ square,
18991
+ variant
18992
+ };
18993
+ const classes = useUtilityClasses$3(ownerState);
18994
+ if (process.env.NODE_ENV !== "production") {
18995
+ if (theme.shadows[elevation] === void 0) {
18996
+ console.error([`MUI: The elevation provided <Paper elevation={${elevation}}> is not available in the theme.`, `Please make sure that \`theme.shadows[${elevation}]\` is defined.`].join("\n"));
18997
+ }
18998
+ }
18999
+ return /* @__PURE__ */ jsxRuntime.jsx(PaperRoot, {
19000
+ as: component,
19001
+ ownerState,
19002
+ className: clsx(classes.root, className),
19003
+ ref,
19004
+ ...other,
19005
+ style: {
19006
+ ...variant === "elevation" && {
19007
+ "--Paper-shadow": (theme.vars || theme).shadows[elevation],
19008
+ ...theme.vars && {
19009
+ "--Paper-overlay": theme.vars.overlays?.[elevation]
19010
+ },
19011
+ ...!theme.vars && theme.palette.mode === "dark" && {
19012
+ "--Paper-overlay": `linear-gradient(${alpha$1("#fff", getOverlayAlpha(elevation))}, ${alpha$1("#fff", getOverlayAlpha(elevation))})`
19013
+ }
19014
+ },
19015
+ ...other.style
19016
+ }
19017
+ });
19018
+ });
19019
+ process.env.NODE_ENV !== "production" ? Paper.propTypes = {
19020
+ // ┌────────────────────────────── Warning ──────────────────────────────┐
19021
+ // │ These PropTypes are generated from the TypeScript type definitions. │
19022
+ // │ To update them, edit the d.ts file and run `pnpm proptypes`. │
19023
+ // └─────────────────────────────────────────────────────────────────────┘
19024
+ /**
19025
+ * The content of the component.
19026
+ */
19027
+ children: PropTypes.node,
19028
+ /**
19029
+ * Override or extend the styles applied to the component.
19030
+ */
19031
+ classes: PropTypes.object,
19032
+ /**
19033
+ * @ignore
19034
+ */
19035
+ className: PropTypes.string,
19036
+ /**
19037
+ * The component used for the root node.
19038
+ * Either a string to use a HTML element or a component.
19039
+ */
19040
+ component: PropTypes.elementType,
19041
+ /**
19042
+ * Shadow depth, corresponds to `dp` in the spec.
19043
+ * It accepts values between 0 and 24 inclusive.
19044
+ * @default 1
19045
+ */
19046
+ elevation: chainPropTypes(integerPropType, (props) => {
19047
+ const {
19048
+ elevation,
19049
+ variant
19050
+ } = props;
19051
+ if (elevation > 0 && variant === "outlined") {
19052
+ return new Error(`MUI: Combining \`elevation={${elevation}}\` with \`variant="${variant}"\` has no effect. Either use \`elevation={0}\` or use a different \`variant\`.`);
19053
+ }
19054
+ return null;
19055
+ }),
19056
+ /**
19057
+ * If `true`, rounded corners are disabled.
19058
+ * @default false
19059
+ */
19060
+ square: PropTypes.bool,
19061
+ /**
19062
+ * @ignore
19063
+ */
19064
+ style: PropTypes.object,
19065
+ /**
19066
+ * The system prop that allows defining system overrides as well as additional CSS styles.
19067
+ */
19068
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
19069
+ /**
19070
+ * The variant to use.
19071
+ * @default 'elevation'
19072
+ */
19073
+ variant: PropTypes.oneOfType([PropTypes.oneOf(["elevation", "outlined"]), PropTypes.string])
19074
+ } : void 0;
19075
+ function getSnackbarContentUtilityClass(slot) {
19076
+ return generateUtilityClass("MuiSnackbarContent", slot);
19077
+ }
19078
+ generateUtilityClasses("MuiSnackbarContent", ["root", "message", "action"]);
19079
+ const useUtilityClasses$2 = (ownerState) => {
19080
+ const {
19081
+ classes
19082
+ } = ownerState;
19083
+ const slots = {
19084
+ root: ["root"],
19085
+ action: ["action"],
19086
+ message: ["message"]
19087
+ };
19088
+ return composeClasses(slots, getSnackbarContentUtilityClass, classes);
19089
+ };
19090
+ const SnackbarContentRoot = styled(Paper, {
19091
+ name: "MuiSnackbarContent",
19092
+ slot: "Root"
19093
+ })(memoTheme(({
19094
+ theme
19095
+ }) => {
19096
+ const emphasis = theme.palette.mode === "light" ? 0.8 : 0.98;
19097
+ return {
19098
+ ...theme.typography.body2,
19099
+ color: theme.vars ? theme.vars.palette.SnackbarContent.color : theme.palette.getContrastText(emphasize(theme.palette.background.default, emphasis)),
19100
+ backgroundColor: theme.vars ? theme.vars.palette.SnackbarContent.bg : emphasize(theme.palette.background.default, emphasis),
19101
+ display: "flex",
19102
+ alignItems: "center",
19103
+ flexWrap: "wrap",
19104
+ padding: "6px 16px",
19105
+ flexGrow: 1,
19106
+ [theme.breakpoints.up("sm")]: {
19107
+ flexGrow: "initial",
19108
+ minWidth: 288
19109
+ }
19110
+ };
19111
+ }));
19112
+ const SnackbarContentMessage = styled("div", {
19113
+ name: "MuiSnackbarContent",
19114
+ slot: "Message"
19115
+ })({
19116
+ padding: "8px 0"
19117
+ });
19118
+ const SnackbarContentAction = styled("div", {
19119
+ name: "MuiSnackbarContent",
19120
+ slot: "Action"
19121
+ })({
19122
+ display: "flex",
19123
+ alignItems: "center",
19124
+ marginLeft: "auto",
19125
+ paddingLeft: 16,
19126
+ marginRight: -8
19127
+ });
19128
+ const SnackbarContent = /* @__PURE__ */ React__namespace.forwardRef(function SnackbarContent2(inProps, ref) {
19129
+ const props = useDefaultProps({
19130
+ props: inProps,
19131
+ name: "MuiSnackbarContent"
19132
+ });
19133
+ const {
19134
+ action,
19135
+ className,
19136
+ message,
19137
+ role = "alert",
19138
+ ...other
19139
+ } = props;
19140
+ const ownerState = props;
19141
+ const classes = useUtilityClasses$2(ownerState);
19142
+ return /* @__PURE__ */ jsxRuntime.jsxs(SnackbarContentRoot, {
19143
+ role,
19144
+ elevation: 6,
19145
+ className: clsx(classes.root, className),
19146
+ ownerState,
19147
+ ref,
19148
+ ...other,
19149
+ children: [/* @__PURE__ */ jsxRuntime.jsx(SnackbarContentMessage, {
19150
+ className: classes.message,
19151
+ ownerState,
19152
+ children: message
19153
+ }), action ? /* @__PURE__ */ jsxRuntime.jsx(SnackbarContentAction, {
19154
+ className: classes.action,
19155
+ ownerState,
19156
+ children: action
19157
+ }) : null]
19158
+ });
19159
+ });
19160
+ process.env.NODE_ENV !== "production" ? SnackbarContent.propTypes = {
19161
+ // ┌────────────────────────────── Warning ──────────────────────────────┐
19162
+ // │ These PropTypes are generated from the TypeScript type definitions. │
19163
+ // │ To update them, edit the d.ts file and run `pnpm proptypes`. │
19164
+ // └─────────────────────────────────────────────────────────────────────┘
19165
+ /**
19166
+ * The action to display. It renders after the message, at the end of the snackbar.
19167
+ */
19168
+ action: PropTypes.node,
19169
+ /**
19170
+ * Override or extend the styles applied to the component.
19171
+ */
19172
+ classes: PropTypes.object,
19173
+ /**
19174
+ * @ignore
19175
+ */
19176
+ className: PropTypes.string,
19177
+ /**
19178
+ * The message to display.
19179
+ */
19180
+ message: PropTypes.node,
19181
+ /**
19182
+ * The ARIA role attribute of the element.
19183
+ * @default 'alert'
19184
+ */
19185
+ role: PropTypes.string,
19186
+ /**
19187
+ * The system prop that allows defining system overrides as well as additional CSS styles.
19188
+ */
19189
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])
19190
+ } : void 0;
19191
+ function getSnackbarUtilityClass(slot) {
19192
+ return generateUtilityClass("MuiSnackbar", slot);
19193
+ }
19194
+ generateUtilityClasses("MuiSnackbar", ["root", "anchorOriginTopCenter", "anchorOriginBottomCenter", "anchorOriginTopRight", "anchorOriginBottomRight", "anchorOriginTopLeft", "anchorOriginBottomLeft"]);
19195
+ function isHostComponent(element) {
19196
+ return typeof element === "string";
19197
+ }
19198
+ function appendOwnerState(elementType, otherProps, ownerState) {
19199
+ if (elementType === void 0 || isHostComponent(elementType)) {
19200
+ return otherProps;
19201
+ }
19202
+ return {
19203
+ ...otherProps,
19204
+ ownerState: {
19205
+ ...otherProps.ownerState,
19206
+ ...ownerState
19207
+ }
19208
+ };
19209
+ }
19210
+ function resolveComponentProps(componentProps, ownerState, slotState) {
19211
+ if (typeof componentProps === "function") {
19212
+ return componentProps(ownerState, slotState);
19213
+ }
19214
+ return componentProps;
19215
+ }
19216
+ function omitEventHandlers(object2) {
19217
+ if (object2 === void 0) {
19218
+ return {};
19219
+ }
19220
+ const result = {};
19221
+ Object.keys(object2).filter((prop) => !(prop.match(/^on[A-Z]/) && typeof object2[prop] === "function")).forEach((prop) => {
19222
+ result[prop] = object2[prop];
19223
+ });
19224
+ return result;
19225
+ }
19226
+ function mergeSlotProps(parameters) {
19227
+ const {
19228
+ getSlotProps,
19229
+ additionalProps,
19230
+ externalSlotProps,
19231
+ externalForwardedProps,
19232
+ className
19233
+ } = parameters;
19234
+ if (!getSlotProps) {
19235
+ const joinedClasses2 = clsx(additionalProps?.className, className, externalForwardedProps?.className, externalSlotProps?.className);
19236
+ const mergedStyle2 = {
19237
+ ...additionalProps?.style,
19238
+ ...externalForwardedProps?.style,
19239
+ ...externalSlotProps?.style
19240
+ };
19241
+ const props2 = {
19242
+ ...additionalProps,
19243
+ ...externalForwardedProps,
19244
+ ...externalSlotProps
19245
+ };
19246
+ if (joinedClasses2.length > 0) {
19247
+ props2.className = joinedClasses2;
19248
+ }
19249
+ if (Object.keys(mergedStyle2).length > 0) {
19250
+ props2.style = mergedStyle2;
19251
+ }
19252
+ return {
19253
+ props: props2,
19254
+ internalRef: void 0
19255
+ };
19256
+ }
19257
+ const eventHandlers = extractEventHandlers({
19258
+ ...externalForwardedProps,
19259
+ ...externalSlotProps
19260
+ });
19261
+ const componentsPropsWithoutEventHandlers = omitEventHandlers(externalSlotProps);
19262
+ const otherPropsWithoutEventHandlers = omitEventHandlers(externalForwardedProps);
19263
+ const internalSlotProps = getSlotProps(eventHandlers);
19264
+ const joinedClasses = clsx(internalSlotProps?.className, additionalProps?.className, className, externalForwardedProps?.className, externalSlotProps?.className);
19265
+ const mergedStyle = {
19266
+ ...internalSlotProps?.style,
19267
+ ...additionalProps?.style,
19268
+ ...externalForwardedProps?.style,
19269
+ ...externalSlotProps?.style
19270
+ };
19271
+ const props = {
19272
+ ...internalSlotProps,
19273
+ ...additionalProps,
19274
+ ...otherPropsWithoutEventHandlers,
19275
+ ...componentsPropsWithoutEventHandlers
19276
+ };
19277
+ if (joinedClasses.length > 0) {
19278
+ props.className = joinedClasses;
19279
+ }
19280
+ if (Object.keys(mergedStyle).length > 0) {
19281
+ props.style = mergedStyle;
19282
+ }
19283
+ return {
19284
+ props,
19285
+ internalRef: internalSlotProps.ref
19286
+ };
19287
+ }
19288
+ function useSlot(name2, parameters) {
19289
+ const {
19290
+ className,
19291
+ elementType: initialElementType,
19292
+ ownerState,
19293
+ externalForwardedProps,
19294
+ internalForwardedProps,
19295
+ shouldForwardComponentProp = false,
19296
+ ...useSlotPropsParams
19297
+ } = parameters;
19298
+ const {
19299
+ component: rootComponent,
19300
+ slots = {
19301
+ [name2]: void 0
19302
+ },
19303
+ slotProps = {
19304
+ [name2]: void 0
19305
+ },
19306
+ ...other
19307
+ } = externalForwardedProps;
19308
+ const elementType = slots[name2] || initialElementType;
19309
+ const resolvedComponentsProps = resolveComponentProps(slotProps[name2], ownerState);
19310
+ const {
19311
+ props: {
19312
+ component: slotComponent,
19313
+ ...mergedProps
19314
+ },
19315
+ internalRef
19316
+ } = mergeSlotProps({
19317
+ className,
19318
+ ...useSlotPropsParams,
19319
+ externalForwardedProps: name2 === "root" ? other : void 0,
19320
+ externalSlotProps: resolvedComponentsProps
19321
+ });
19322
+ const ref = useForkRef(internalRef, resolvedComponentsProps?.ref, parameters.ref);
19323
+ const LeafComponent = name2 === "root" ? slotComponent || rootComponent : slotComponent;
19324
+ const props = appendOwnerState(elementType, {
19325
+ ...name2 === "root" && !rootComponent && !slots[name2] && internalForwardedProps,
19326
+ ...name2 !== "root" && !slots[name2] && internalForwardedProps,
19327
+ ...mergedProps,
19328
+ ...LeafComponent && !shouldForwardComponentProp && {
19329
+ as: LeafComponent
19330
+ },
19331
+ ...LeafComponent && shouldForwardComponentProp && {
19332
+ component: LeafComponent
19333
+ },
19334
+ ref
19335
+ }, ownerState);
19336
+ return [elementType, props];
19337
+ }
19338
+ const useUtilityClasses$1 = (ownerState) => {
19339
+ const {
19340
+ classes,
19341
+ anchorOrigin
19342
+ } = ownerState;
19343
+ const slots = {
19344
+ root: ["root", `anchorOrigin${capitalize(anchorOrigin.vertical)}${capitalize(anchorOrigin.horizontal)}`]
19345
+ };
19346
+ return composeClasses(slots, getSnackbarUtilityClass, classes);
19347
+ };
19348
+ const SnackbarRoot = styled("div", {
19349
+ name: "MuiSnackbar",
19350
+ slot: "Root",
19351
+ overridesResolver: (props, styles2) => {
19352
+ const {
19353
+ ownerState
19354
+ } = props;
19355
+ return [styles2.root, styles2[`anchorOrigin${capitalize(ownerState.anchorOrigin.vertical)}${capitalize(ownerState.anchorOrigin.horizontal)}`]];
19356
+ }
19357
+ })(memoTheme(({
19358
+ theme
19359
+ }) => ({
19360
+ zIndex: (theme.vars || theme).zIndex.snackbar,
19361
+ position: "fixed",
19362
+ display: "flex",
19363
+ left: 8,
19364
+ right: 8,
19365
+ justifyContent: "center",
19366
+ alignItems: "center",
19367
+ variants: [{
19368
+ props: ({
19369
+ ownerState
19370
+ }) => ownerState.anchorOrigin.vertical === "top",
19371
+ style: {
19372
+ top: 8,
19373
+ [theme.breakpoints.up("sm")]: {
19374
+ top: 24
19375
+ }
19376
+ }
19377
+ }, {
19378
+ props: ({
19379
+ ownerState
19380
+ }) => ownerState.anchorOrigin.vertical !== "top",
19381
+ style: {
19382
+ bottom: 8,
19383
+ [theme.breakpoints.up("sm")]: {
19384
+ bottom: 24
19385
+ }
19386
+ }
19387
+ }, {
19388
+ props: ({
19389
+ ownerState
19390
+ }) => ownerState.anchorOrigin.horizontal === "left",
19391
+ style: {
19392
+ justifyContent: "flex-start",
19393
+ [theme.breakpoints.up("sm")]: {
19394
+ left: 24,
19395
+ right: "auto"
19396
+ }
19397
+ }
19398
+ }, {
19399
+ props: ({
19400
+ ownerState
19401
+ }) => ownerState.anchorOrigin.horizontal === "right",
19402
+ style: {
19403
+ justifyContent: "flex-end",
19404
+ [theme.breakpoints.up("sm")]: {
19405
+ right: 24,
19406
+ left: "auto"
19407
+ }
19408
+ }
19409
+ }, {
19410
+ props: ({
19411
+ ownerState
19412
+ }) => ownerState.anchorOrigin.horizontal === "center",
19413
+ style: {
19414
+ [theme.breakpoints.up("sm")]: {
19415
+ left: "50%",
19416
+ right: "auto",
19417
+ transform: "translateX(-50%)"
19418
+ }
19419
+ }
19420
+ }]
19421
+ })));
19422
+ const Snackbar = /* @__PURE__ */ React__namespace.forwardRef(function Snackbar2(inProps, ref) {
19423
+ const props = useDefaultProps({
19424
+ props: inProps,
19425
+ name: "MuiSnackbar"
19426
+ });
19427
+ const theme = useTheme();
19428
+ const defaultTransitionDuration = {
19429
+ enter: theme.transitions.duration.enteringScreen,
19430
+ exit: theme.transitions.duration.leavingScreen
19431
+ };
19432
+ const {
19433
+ action,
19434
+ anchorOrigin: {
19435
+ vertical,
19436
+ horizontal
19437
+ } = {
19438
+ vertical: "bottom",
19439
+ horizontal: "left"
19440
+ },
19441
+ autoHideDuration = null,
19442
+ children,
19443
+ className,
19444
+ ClickAwayListenerProps: ClickAwayListenerPropsProp,
19445
+ ContentProps: ContentPropsProp,
19446
+ disableWindowBlurListener = false,
19447
+ message,
19448
+ onBlur,
19449
+ onClose,
19450
+ onFocus,
19451
+ onMouseEnter,
19452
+ onMouseLeave,
19453
+ open,
19454
+ resumeHideDuration,
19455
+ slots = {},
19456
+ slotProps = {},
19457
+ TransitionComponent: TransitionComponentProp,
19458
+ transitionDuration = defaultTransitionDuration,
19459
+ TransitionProps: {
19460
+ onEnter,
19461
+ onExited,
19462
+ ...TransitionPropsProp
19463
+ } = {},
19464
+ ...other
19465
+ } = props;
19466
+ const ownerState = {
19467
+ ...props,
19468
+ anchorOrigin: {
19469
+ vertical,
19470
+ horizontal
19471
+ },
19472
+ autoHideDuration,
19473
+ disableWindowBlurListener,
19474
+ TransitionComponent: TransitionComponentProp,
19475
+ transitionDuration
19476
+ };
19477
+ const classes = useUtilityClasses$1(ownerState);
19478
+ const {
19479
+ getRootProps,
19480
+ onClickAway
19481
+ } = useSnackbar$1({
19482
+ ...ownerState
19483
+ });
19484
+ const [exited, setExited] = React__namespace.useState(true);
19485
+ const handleExited = (node) => {
19486
+ setExited(true);
19487
+ if (onExited) {
19488
+ onExited(node);
19489
+ }
19490
+ };
19491
+ const handleEnter = (node, isAppearing) => {
19492
+ setExited(false);
19493
+ if (onEnter) {
19494
+ onEnter(node, isAppearing);
19495
+ }
19496
+ };
19497
+ const externalForwardedProps = {
19498
+ slots: {
19499
+ transition: TransitionComponentProp,
19500
+ ...slots
19501
+ },
19502
+ slotProps: {
19503
+ content: ContentPropsProp,
19504
+ clickAwayListener: ClickAwayListenerPropsProp,
19505
+ transition: TransitionPropsProp,
19506
+ ...slotProps
19507
+ }
19508
+ };
19509
+ const [Root, rootProps] = useSlot("root", {
19510
+ ref,
19511
+ className: [classes.root, className],
19512
+ elementType: SnackbarRoot,
19513
+ getSlotProps: getRootProps,
19514
+ externalForwardedProps: {
19515
+ ...externalForwardedProps,
19516
+ ...other
19517
+ },
19518
+ ownerState
19519
+ });
19520
+ const [ClickAwaySlot, {
19521
+ ownerState: clickAwayOwnerStateProp,
19522
+ ...clickAwayListenerProps
19523
+ }] = useSlot("clickAwayListener", {
19524
+ elementType: ClickAwayListener,
19525
+ externalForwardedProps,
19526
+ getSlotProps: (handlers) => ({
19527
+ onClickAway: (...params) => {
19528
+ const event = params[0];
19529
+ handlers.onClickAway?.(...params);
19530
+ if (event?.defaultMuiPrevented) {
19531
+ return;
19532
+ }
19533
+ onClickAway(...params);
19534
+ }
19535
+ }),
19536
+ ownerState
19537
+ });
19538
+ const [ContentSlot, contentSlotProps] = useSlot("content", {
19539
+ elementType: SnackbarContent,
19540
+ shouldForwardComponentProp: true,
19541
+ externalForwardedProps,
19542
+ additionalProps: {
19543
+ message,
19544
+ action
19545
+ },
19546
+ ownerState
19547
+ });
19548
+ const [TransitionSlot, transitionProps] = useSlot("transition", {
19549
+ elementType: Grow,
19550
+ externalForwardedProps,
19551
+ getSlotProps: (handlers) => ({
19552
+ onEnter: (...params) => {
19553
+ handlers.onEnter?.(...params);
19554
+ handleEnter(...params);
19555
+ },
19556
+ onExited: (...params) => {
19557
+ handlers.onExited?.(...params);
19558
+ handleExited(...params);
19559
+ }
19560
+ }),
19561
+ additionalProps: {
19562
+ appear: true,
19563
+ in: open,
19564
+ timeout: transitionDuration,
19565
+ direction: vertical === "top" ? "down" : "up"
19566
+ },
19567
+ ownerState
19568
+ });
19569
+ if (!open && exited) {
19570
+ return null;
19571
+ }
19572
+ return /* @__PURE__ */ jsxRuntime.jsx(ClickAwaySlot, {
19573
+ ...clickAwayListenerProps,
19574
+ ...slots.clickAwayListener && {
19575
+ ownerState: clickAwayOwnerStateProp
19576
+ },
19577
+ children: /* @__PURE__ */ jsxRuntime.jsx(Root, {
19578
+ ...rootProps,
19579
+ children: /* @__PURE__ */ jsxRuntime.jsx(TransitionSlot, {
19580
+ ...transitionProps,
19581
+ children: children || /* @__PURE__ */ jsxRuntime.jsx(ContentSlot, {
19582
+ ...contentSlotProps
19583
+ })
19584
+ })
19585
+ })
19586
+ });
19587
+ });
19588
+ process.env.NODE_ENV !== "production" ? Snackbar.propTypes = {
17749
19589
  // ┌────────────────────────────── Warning ──────────────────────────────┐
17750
19590
  // │ These PropTypes are generated from the TypeScript type definitions. │
17751
- // │ To update them, edit the TypeScript types and run `pnpm proptypes`.
19591
+ // │ To update them, edit the d.ts file and run `pnpm proptypes`.
17752
19592
  // └─────────────────────────────────────────────────────────────────────┘
19593
+ /**
19594
+ * The action to display. It renders after the message, at the end of the snackbar.
19595
+ */
19596
+ action: PropTypes.node,
19597
+ /**
19598
+ * The anchor of the `Snackbar`.
19599
+ * On smaller screens, the component grows to occupy all the available width,
19600
+ * the horizontal alignment is ignored.
19601
+ * @default { vertical: 'bottom', horizontal: 'left' }
19602
+ */
19603
+ anchorOrigin: PropTypes.shape({
19604
+ horizontal: PropTypes.oneOf(["center", "left", "right"]).isRequired,
19605
+ vertical: PropTypes.oneOf(["bottom", "top"]).isRequired
19606
+ }),
19607
+ /**
19608
+ * The number of milliseconds to wait before automatically calling the
19609
+ * `onClose` function. `onClose` should then set the state of the `open`
19610
+ * prop to hide the Snackbar. This behavior is disabled by default with
19611
+ * the `null` value.
19612
+ * @default null
19613
+ */
19614
+ autoHideDuration: PropTypes.number,
19615
+ /**
19616
+ * Replace the `SnackbarContent` component.
19617
+ */
19618
+ children: PropTypes.element,
19619
+ /**
19620
+ * Override or extend the styles applied to the component.
19621
+ */
19622
+ classes: PropTypes.object,
17753
19623
  /**
17754
19624
  * @ignore
17755
19625
  */
17756
- children: PropTypes.node,
19626
+ className: PropTypes.string,
19627
+ /**
19628
+ * Props applied to the `ClickAwayListener` element.
19629
+ * @deprecated Use `slotProps.clickAwayListener` instead. This prop will be removed in a future major release. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
19630
+ */
19631
+ ClickAwayListenerProps: PropTypes.object,
19632
+ /**
19633
+ * Props applied to the [`SnackbarContent`](https://mui.com/material-ui/api/snackbar-content/) element.
19634
+ * @deprecated Use `slotProps.content` instead. This prop will be removed in a future major release. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
19635
+ */
19636
+ ContentProps: PropTypes.object,
19637
+ /**
19638
+ * If `true`, the `autoHideDuration` timer will expire even if the window is not focused.
19639
+ * @default false
19640
+ */
19641
+ disableWindowBlurListener: PropTypes.bool,
19642
+ /**
19643
+ * When displaying multiple consecutive snackbars using a single parent-rendered
19644
+ * `<Snackbar/>`, add the `key` prop to ensure independent treatment of each message.
19645
+ * For instance, use `<Snackbar key={message} />`. Otherwise, messages might update
19646
+ * in place, and features like `autoHideDuration` could be affected.
19647
+ */
19648
+ key: () => null,
19649
+ /**
19650
+ * The message to display.
19651
+ */
19652
+ message: PropTypes.node,
17757
19653
  /**
17758
19654
  * @ignore
17759
19655
  */
17760
- value: PropTypes.object.isRequired
19656
+ onBlur: PropTypes.func,
19657
+ /**
19658
+ * Callback fired when the component requests to be closed.
19659
+ * Typically `onClose` is used to set state in the parent component,
19660
+ * which is used to control the `Snackbar` `open` prop.
19661
+ * The `reason` parameter can optionally be used to control the response to `onClose`,
19662
+ * for example ignoring `clickaway`.
19663
+ *
19664
+ * @param {React.SyntheticEvent<any> | Event} event The event source of the callback.
19665
+ * @param {string} reason Can be: `"timeout"` (`autoHideDuration` expired), `"clickaway"`, or `"escapeKeyDown"`.
19666
+ */
19667
+ onClose: PropTypes.func,
19668
+ /**
19669
+ * @ignore
19670
+ */
19671
+ onFocus: PropTypes.func,
19672
+ /**
19673
+ * @ignore
19674
+ */
19675
+ onMouseEnter: PropTypes.func,
19676
+ /**
19677
+ * @ignore
19678
+ */
19679
+ onMouseLeave: PropTypes.func,
19680
+ /**
19681
+ * If `true`, the component is shown.
19682
+ */
19683
+ open: PropTypes.bool,
19684
+ /**
19685
+ * The number of milliseconds to wait before dismissing after user interaction.
19686
+ * If `autoHideDuration` prop isn't specified, it does nothing.
19687
+ * If `autoHideDuration` prop is specified but `resumeHideDuration` isn't,
19688
+ * we default to `autoHideDuration / 2` ms.
19689
+ */
19690
+ resumeHideDuration: PropTypes.number,
19691
+ /**
19692
+ * The props used for each slot inside.
19693
+ * @default {}
19694
+ */
19695
+ slotProps: PropTypes.shape({
19696
+ clickAwayListener: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
19697
+ content: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
19698
+ root: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
19699
+ transition: PropTypes.oneOfType([PropTypes.func, PropTypes.object])
19700
+ }),
19701
+ /**
19702
+ * The components used for each slot inside.
19703
+ * @default {}
19704
+ */
19705
+ slots: PropTypes.shape({
19706
+ clickAwayListener: PropTypes.elementType,
19707
+ content: PropTypes.elementType,
19708
+ root: PropTypes.elementType,
19709
+ transition: PropTypes.elementType
19710
+ }),
19711
+ /**
19712
+ * The system prop that allows defining system overrides as well as additional CSS styles.
19713
+ */
19714
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
19715
+ /**
19716
+ * The component used for the transition.
19717
+ * [Follow this guide](https://mui.com/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.
19718
+ * @deprecated Use `slots.transition` instead. This prop will be removed in a future major release. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
19719
+ * @default Grow
19720
+ */
19721
+ TransitionComponent: PropTypes.elementType,
19722
+ /**
19723
+ * The duration for the transition, in milliseconds.
19724
+ * You may specify a single timeout for all transitions, or individually with an object.
19725
+ * @default {
19726
+ * enter: theme.transitions.duration.enteringScreen,
19727
+ * exit: theme.transitions.duration.leavingScreen,
19728
+ * }
19729
+ */
19730
+ transitionDuration: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({
19731
+ appear: PropTypes.number,
19732
+ enter: PropTypes.number,
19733
+ exit: PropTypes.number
19734
+ })]),
19735
+ /**
19736
+ * Props applied to the transition element.
19737
+ * By default, the element is based on this [`Transition`](https://reactcommunity.org/react-transition-group/transition/) component.
19738
+ * @deprecated Use `slotProps.transition` instead. This prop will be removed in a future major release. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
19739
+ * @default {}
19740
+ */
19741
+ TransitionProps: PropTypes.object
17761
19742
  } : void 0;
17762
- function useDefaultProps(params) {
17763
- return useDefaultProps$1(params);
17764
- }
17765
- function generateUtilityClasses(componentName, slots, globalStatePrefix = "Mui") {
17766
- const result = {};
17767
- slots.forEach((slot) => {
17768
- result[slot] = generateUtilityClass(componentName, slot, globalStatePrefix);
17769
- });
17770
- return result;
17771
- }
17772
19743
  var SnackbarType = /* @__PURE__ */ ((SnackbarType2) => {
17773
19744
  SnackbarType2["INFO"] = "info";
17774
19745
  SnackbarType2["SUCCESS"] = "success";
@@ -17776,10 +19747,61 @@ var SnackbarType = /* @__PURE__ */ ((SnackbarType2) => {
17776
19747
  SnackbarType2["WARNING"] = "warning";
17777
19748
  return SnackbarType2;
17778
19749
  })(SnackbarType || {});
17779
- const SnackbarContext = React.createContext(void 0);
19750
+ const SnackbarContext = React.createContext(
19751
+ void 0
19752
+ );
19753
+ const SnackbarProvider = ({
19754
+ children
19755
+ }) => {
19756
+ const [snackbar, setSnackbar] = React.useState(
19757
+ {
19758
+ open: false,
19759
+ message: "",
19760
+ type: "info"
19761
+ /* INFO */
19762
+ }
19763
+ );
19764
+ const showSnackbar = (params) => {
19765
+ setSnackbar({
19766
+ open: true,
19767
+ ...params
19768
+ });
19769
+ };
19770
+ const handleClose = () => {
19771
+ setSnackbar({ ...snackbar, open: false });
19772
+ };
19773
+ return /* @__PURE__ */ jsxRuntime.jsxs(SnackbarContext.Provider, { value: { showSnackbar }, children: [
19774
+ children,
19775
+ /* @__PURE__ */ jsxRuntime.jsx(
19776
+ Snackbar,
19777
+ {
19778
+ anchorOrigin: { vertical: "bottom", horizontal: "right" },
19779
+ sx: {
19780
+ "&.MuiSnackbar-root": {
19781
+ bottom: STYLE.PADDING_GAP_LAYOUT,
19782
+ right: STYLE.PADDING_GAP_LAYOUT
19783
+ }
19784
+ },
19785
+ open: snackbar.open,
19786
+ autoHideDuration: 6e3,
19787
+ onClose: handleClose,
19788
+ children: /* @__PURE__ */ jsxRuntime.jsx(
19789
+ material.Alert,
19790
+ {
19791
+ sx: { borderRadius: STYLE.BORDER_RADIUS_ELEMENT, boxShadow: 1 },
19792
+ onClose: handleClose,
19793
+ severity: snackbar.type,
19794
+ children: snackbar.message
19795
+ }
19796
+ )
19797
+ }
19798
+ )
19799
+ ] });
19800
+ };
17780
19801
  const useSnackbar = () => {
17781
19802
  const context = React.useContext(SnackbarContext);
17782
- if (!context) throw new Error("useSnackbar must be used within a SnackbarProvider");
19803
+ if (!context)
19804
+ throw new Error("useSnackbar must be used within a SnackbarProvider");
17783
19805
  return context;
17784
19806
  };
17785
19807
  const useTagSelector = (movementId) => {
@@ -17793,11 +19815,15 @@ const useTagSelector = (movementId) => {
17793
19815
  const { showSnackbar } = useSnackbar();
17794
19816
  React.useEffect(() => {
17795
19817
  if (searchQuery.trim()) {
17796
- const filtered = users.filter((user) => user.name.toLowerCase().includes(searchQuery.toLowerCase())).filter((user) => !taggedUserIds.has(user.id));
19818
+ const filtered = users.filter(
19819
+ (user) => user.name.toLowerCase().includes(searchQuery.toLowerCase())
19820
+ ).filter((user) => !taggedUserIds.has(user.id));
17797
19821
  setFilteredUsers(filtered);
17798
19822
  setSelectedUserIndex(0);
17799
19823
  } else {
17800
- const availableUsers = users.filter((user) => !taggedUserIds.has(user?.id));
19824
+ const availableUsers = users.filter(
19825
+ (user) => !taggedUserIds.has(user?.id)
19826
+ );
17801
19827
  setFilteredUsers(availableUsers);
17802
19828
  setSelectedUserIndex(0);
17803
19829
  }
@@ -17813,7 +19839,10 @@ const useTagSelector = (movementId) => {
17813
19839
  const spaceIndex = afterAt?.indexOf(" ");
17814
19840
  if (spaceIndex === -1) {
17815
19841
  setSearchQuery(afterAt);
17816
- setTagPosition({ start: lastAtSymbol, end: lastAtSymbol + afterAt.length + 1 });
19842
+ setTagPosition({
19843
+ start: lastAtSymbol,
19844
+ end: lastAtSymbol + afterAt.length + 1
19845
+ });
17817
19846
  setShowTagSelector(true);
17818
19847
  return;
17819
19848
  }
@@ -17900,7 +19929,9 @@ const useUpdateCurrentAccess = () => {
17900
19929
  async (pathname) => {
17901
19930
  const currentAccess = findCurrentAccessByPath(pathname);
17902
19931
  if (currentAccess) {
17903
- await dispatch(ACTION_ACCOUNT.updateCurrentAccess(currentAccess)).unwrap();
19932
+ await dispatch(
19933
+ ACTION_ACCOUNT.updateCurrentAccess(currentAccess)
19934
+ ).unwrap();
17904
19935
  }
17905
19936
  },
17906
19937
  [dispatch]
@@ -17937,6 +19968,44 @@ const useVersionCheck = (options) => {
17937
19968
  }
17938
19969
  }, [options?.interval]);
17939
19970
  };
19971
+ const SidebarContext = React.createContext(
19972
+ void 0
19973
+ );
19974
+ const SidebarProvider = ({
19975
+ children
19976
+ }) => {
19977
+ const [isCollapsed, setIsCollapsed] = React.useState(false);
19978
+ const [activeExpandMenu, setActiveExpandMenu] = React.useState(
19979
+ null
19980
+ );
19981
+ const { current_access } = reactRedux.useSelector(
19982
+ (state) => state.account
19983
+ );
19984
+ React.useEffect(() => {
19985
+ setActiveExpandMenu(null);
19986
+ }, [current_access]);
19987
+ const sidebarWidth = activeExpandMenu ? isCollapsed ? STYLE.WIDTH_COLLAPSE + STYLE.WIDTH_SIDEBAR_EXPAND : STYLE.WIDTH_SIDEBAR + STYLE.WIDTH_SIDEBAR_EXPAND : isCollapsed ? STYLE.WIDTH_COLLAPSE : STYLE.WIDTH_SIDEBAR;
19988
+ return /* @__PURE__ */ jsxRuntime.jsx(
19989
+ SidebarContext.Provider,
19990
+ {
19991
+ value: {
19992
+ isCollapsed,
19993
+ setIsCollapsed,
19994
+ activeExpandMenu,
19995
+ setActiveExpandMenu,
19996
+ sidebarWidth: `${sidebarWidth}px`
19997
+ },
19998
+ children
19999
+ }
20000
+ );
20001
+ };
20002
+ const useSidebar = () => {
20003
+ const context = React.useContext(SidebarContext);
20004
+ if (context === void 0) {
20005
+ throw new Error("useSidebar must be used within a SidebarProvider");
20006
+ }
20007
+ return context;
20008
+ };
17940
20009
  const AuthLayout = ({ children }) => {
17941
20010
  return /* @__PURE__ */ jsxRuntime.jsx(
17942
20011
  material.Stack,
@@ -18391,11 +20460,11 @@ const useUtilityClasses = (ownerState) => {
18391
20460
  const CircularProgressRoot = styled("span", {
18392
20461
  name: "MuiCircularProgress",
18393
20462
  slot: "Root",
18394
- overridesResolver: (props, styles) => {
20463
+ overridesResolver: (props, styles2) => {
18395
20464
  const {
18396
20465
  ownerState
18397
20466
  } = props;
18398
- return [styles.root, styles[ownerState.variant], styles[`color${capitalize(ownerState.color)}`]];
20467
+ return [styles2.root, styles2[ownerState.variant], styles2[`color${capitalize(ownerState.color)}`]];
18399
20468
  }
18400
20469
  })(memoTheme(({
18401
20470
  theme
@@ -18434,11 +20503,11 @@ const CircularProgressSVG = styled("svg", {
18434
20503
  const CircularProgressCircle = styled("circle", {
18435
20504
  name: "MuiCircularProgress",
18436
20505
  slot: "Circle",
18437
- overridesResolver: (props, styles) => {
20506
+ overridesResolver: (props, styles2) => {
18438
20507
  const {
18439
20508
  ownerState
18440
20509
  } = props;
18441
- return [styles.circle, styles[`circle${capitalize(ownerState.variant)}`], ownerState.disableShrink && styles.circleDisableShrink];
20510
+ return [styles2.circle, styles2[`circle${capitalize(ownerState.variant)}`], ownerState.disableShrink && styles2.circleDisableShrink];
18442
20511
  }
18443
20512
  })(memoTheme(({
18444
20513
  theme
@@ -19193,8 +21262,32 @@ const MonitorPart = ({
19193
21262
  const DashboardLayout = ({
19194
21263
  children
19195
21264
  }) => {
19196
- useUpdateCurrentAccess();
19197
- return /* @__PURE__ */ jsxRuntime.jsx(MonitorPart, { children });
21265
+ const isSystemMonitor = useIsSystemMonitor();
21266
+ const { sidebarWidth } = useSidebar();
21267
+ if (isSystemMonitor) return /* @__PURE__ */ jsxRuntime.jsx(MonitorPart, { children });
21268
+ return /* @__PURE__ */ jsxRuntime.jsx(
21269
+ material.Stack,
21270
+ {
21271
+ sx: {
21272
+ minHeight: "100vh",
21273
+ width: "100%"
21274
+ },
21275
+ children: /* @__PURE__ */ jsxRuntime.jsx(material.Stack, { p: 0, gap: 0, children: /* @__PURE__ */ jsxRuntime.jsx(StackRow, { children: /* @__PURE__ */ jsxRuntime.jsx(
21276
+ material.Stack,
21277
+ {
21278
+ sx: {
21279
+ overflowY: "auto",
21280
+ marginLeft: sidebarWidth,
21281
+ width: "100%",
21282
+ transition: "margin-left 0.3s ease",
21283
+ background: "#F5F6F8",
21284
+ minHeight: `calc(100vh - ${STYLE.HEIGHT_HEADER}px)`
21285
+ },
21286
+ children
21287
+ }
21288
+ ) }) })
21289
+ }
21290
+ );
19198
21291
  };
19199
21292
  const DefaultLayout = ({ children }) => {
19200
21293
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -22116,13 +24209,13 @@ Object.assign(/* @__PURE__ */ Object.create(null), {
22116
24209
  });
22117
24210
  const isSchema = (obj) => obj && obj.__isYupSchema__;
22118
24211
  class Condition {
22119
- static fromOptions(refs, config) {
22120
- if (!config.then && !config.otherwise) throw new TypeError("either `then:` or `otherwise:` is required for `when()` conditions");
24212
+ static fromOptions(refs, config2) {
24213
+ if (!config2.then && !config2.otherwise) throw new TypeError("either `then:` or `otherwise:` is required for `when()` conditions");
22121
24214
  let {
22122
24215
  is,
22123
24216
  then,
22124
24217
  otherwise
22125
- } = config;
24218
+ } = config2;
22126
24219
  let check = typeof is === "function" ? is : (...values2) => values2.every((value2) => value2 === is);
22127
24220
  return new Condition(refs, (values2, schema) => {
22128
24221
  var _branch;
@@ -22208,7 +24301,7 @@ class Reference {
22208
24301
  }
22209
24302
  Reference.prototype.__isYupRef = true;
22210
24303
  const isAbsent = (value2) => value2 == null;
22211
- function createValidation(config) {
24304
+ function createValidation(config2) {
22212
24305
  function validate({
22213
24306
  value: value2,
22214
24307
  path = "",
@@ -22222,7 +24315,7 @@ function createValidation(config) {
22222
24315
  params,
22223
24316
  message,
22224
24317
  skipAbsent
22225
- } = config;
24318
+ } = config2;
22226
24319
  let {
22227
24320
  parent,
22228
24321
  context,
@@ -22290,7 +24383,7 @@ function createValidation(config) {
22290
24383
  }
22291
24384
  handleResult(result);
22292
24385
  }
22293
- validate.OPTIONS = config;
24386
+ validate.OPTIONS = config2;
22294
24387
  return validate;
22295
24388
  }
22296
24389
  function resolveParams(params, options) {
@@ -24171,37 +26264,6 @@ const NotFoundPage = ({}) => {
24171
26264
  /* @__PURE__ */ jsxRuntime.jsx(ButtonElement, { content: "Quay lại trang chủ", fullWidth: false, onClick: () => navigate(PAGE.AUTH.path) })
24172
26265
  ] });
24173
26266
  };
24174
- const SidebarContext = React.createContext(
24175
- void 0
24176
- );
24177
- const SidebarProvider = ({
24178
- children
24179
- }) => {
24180
- const [isCollapsed, setIsCollapsed] = React.useState(false);
24181
- const [activeExpandMenu, setActiveExpandMenu] = React.useState(
24182
- null
24183
- );
24184
- const { current_access } = reactRedux.useSelector(
24185
- (state) => state.account
24186
- );
24187
- React.useEffect(() => {
24188
- setActiveExpandMenu(null);
24189
- }, [current_access]);
24190
- const sidebarWidth = activeExpandMenu ? isCollapsed ? STYLE.WIDTH_COLLAPSE + STYLE.WIDTH_SIDEBAR_EXPAND : STYLE.WIDTH_SIDEBAR + STYLE.WIDTH_SIDEBAR_EXPAND : isCollapsed ? STYLE.WIDTH_COLLAPSE : STYLE.WIDTH_SIDEBAR;
24191
- return /* @__PURE__ */ jsxRuntime.jsx(
24192
- SidebarContext.Provider,
24193
- {
24194
- value: {
24195
- isCollapsed,
24196
- setIsCollapsed,
24197
- activeExpandMenu,
24198
- setActiveExpandMenu,
24199
- sidebarWidth: `${sidebarWidth}px`
24200
- },
24201
- children
24202
- }
24203
- );
24204
- };
24205
26267
  const LayoutGroupContext = React.createContext({});
24206
26268
  function useConstant(init) {
24207
26269
  const ref = React.useRef(null);
@@ -27526,10 +29588,10 @@ function makeLatestValues(props, context, presenceContext, scrapeMotionValues) {
27526
29588
  }
27527
29589
  return values2;
27528
29590
  }
27529
- const makeUseVisualState = (config) => (props, isStatic) => {
29591
+ const makeUseVisualState = (config2) => (props, isStatic) => {
27530
29592
  const context = React.useContext(MotionContext);
27531
29593
  const presenceContext = React.useContext(PresenceContext);
27532
- const make = () => makeState(config, props, context, presenceContext);
29594
+ const make = () => makeState(config2, props, context, presenceContext);
27533
29595
  return isStatic ? make() : useConstant(make);
27534
29596
  };
27535
29597
  function scrapeMotionValuesFromProps$1(props, prevProps, visualElement) {
@@ -29861,13 +31923,13 @@ class FlatTree {
29861
31923
  this.children.forEach(callback);
29862
31924
  }
29863
31925
  }
29864
- function delay(callback, timeout) {
31926
+ function delay(callback, timeout2) {
29865
31927
  const start = time.now();
29866
31928
  const checkElapsed = ({ timestamp }) => {
29867
31929
  const elapsed = timestamp - start;
29868
- if (elapsed >= timeout) {
31930
+ if (elapsed >= timeout2) {
29869
31931
  cancelFrame(checkElapsed);
29870
- callback(elapsed - timeout);
31932
+ callback(elapsed - timeout2);
29871
31933
  }
29872
31934
  };
29873
31935
  frame.setup(checkElapsed, true);
@@ -30853,10 +32915,10 @@ function createProjectionNode({ attachResizeListener, defaultParent, measureScro
30853
32915
  }
30854
32916
  const stack = this.sharedNodes.get(layoutId);
30855
32917
  stack.add(node);
30856
- const config = node.options.initialPromotionConfig;
32918
+ const config2 = node.options.initialPromotionConfig;
30857
32919
  node.promote({
30858
- transition: config ? config.transition : void 0,
30859
- preserveFollowOpacity: config && config.shouldPreserveFollowOpacity ? config.shouldPreserveFollowOpacity(node) : void 0
32920
+ transition: config2 ? config2.transition : void 0,
32921
+ preserveFollowOpacity: config2 && config2.shouldPreserveFollowOpacity ? config2.shouldPreserveFollowOpacity(node) : void 0
30860
32922
  });
30861
32923
  }
30862
32924
  isLead() {
@@ -31477,7 +33539,7 @@ const MotionBox = ({
31477
33539
  } : {};
31478
33540
  return /* @__PURE__ */ jsxRuntime.jsx(motion.div, { ...motionProps, ...getAnimationProps(), ...hoverProps, onClick, style: { ...sx }, children });
31479
33541
  };
31480
- const IconRight = (props) => /* @__PURE__ */ jsxRuntime.jsx(
33542
+ const IconLeft = (props) => /* @__PURE__ */ jsxRuntime.jsx(
31481
33543
  "svg",
31482
33544
  {
31483
33545
  width: "20",
@@ -31489,7 +33551,7 @@ const IconRight = (props) => /* @__PURE__ */ jsxRuntime.jsx(
31489
33551
  children: /* @__PURE__ */ jsxRuntime.jsx(
31490
33552
  "path",
31491
33553
  {
31492
- d: "M12 1L19 8M19 8L12 15M19 8L1 8",
33554
+ d: "M8 15L1 8M1 8L8 1M1 8L19 8",
31493
33555
  stroke: "currentColor",
31494
33556
  "stroke-width": "2",
31495
33557
  "stroke-linecap": "round",
@@ -31498,7 +33560,7 @@ const IconRight = (props) => /* @__PURE__ */ jsxRuntime.jsx(
31498
33560
  )
31499
33561
  }
31500
33562
  );
31501
- const IconLeft = (props) => /* @__PURE__ */ jsxRuntime.jsx(
33563
+ const IconRight = (props) => /* @__PURE__ */ jsxRuntime.jsx(
31502
33564
  "svg",
31503
33565
  {
31504
33566
  width: "20",
@@ -31510,7 +33572,7 @@ const IconLeft = (props) => /* @__PURE__ */ jsxRuntime.jsx(
31510
33572
  children: /* @__PURE__ */ jsxRuntime.jsx(
31511
33573
  "path",
31512
33574
  {
31513
- d: "M8 15L1 8M1 8L8 1M1 8L19 8",
33575
+ d: "M12 1L19 8M19 8L12 15M19 8L1 8",
31514
33576
  stroke: "currentColor",
31515
33577
  "stroke-width": "2",
31516
33578
  "stroke-linecap": "round",
@@ -31539,12 +33601,25 @@ const AppGrid = ({
31539
33601
  const pageSize = Math.max(1, columns * Math.max(1, rows));
31540
33602
  const totalPages = Math.max(1, Math.ceil(apps.length / pageSize));
31541
33603
  const [page, setPage] = React.useState(0);
33604
+ const { user } = reactRedux.useSelector((state) => state.account);
31542
33605
  React.useEffect(() => {
31543
33606
  setPage((prev) => prev >= totalPages ? totalPages - 1 : prev);
31544
33607
  }, [totalPages, columns, rows, apps.length]);
31545
33608
  const start = page * pageSize;
31546
33609
  const end = start + pageSize;
31547
33610
  const visibleApps = totalPages > 1 ? apps.slice(start, end) : apps;
33611
+ const findLink = (app2) => {
33612
+ if (!app2.children?.length) {
33613
+ return app2.path;
33614
+ }
33615
+ for (const i of app2.children || []) {
33616
+ if (user?.type && i.allowUserTypes.includes(user?.type)) {
33617
+ if (i.path) {
33618
+ return `${i.path}`;
33619
+ }
33620
+ }
33621
+ }
33622
+ };
31548
33623
  return /* @__PURE__ */ jsxRuntime.jsxs(material.Box, { sx: { position: "relative" }, children: [
31549
33624
  /* @__PURE__ */ jsxRuntime.jsx(
31550
33625
  material.Box,
@@ -31556,62 +33631,73 @@ const AppGrid = ({
31556
33631
  },
31557
33632
  children: visibleApps.map((app2, index) => {
31558
33633
  const isSelected = selectedAppId === app2.key;
31559
- return /* @__PURE__ */ jsxRuntime.jsxs(
31560
- MotionBox,
33634
+ return /* @__PURE__ */ jsxRuntime.jsx(
33635
+ reactRouterDom.Link,
31561
33636
  {
31562
- preset: "staggerItem",
31563
- index,
31564
- hover: true,
31565
- onClick: () => onClickItem?.(app2),
31566
- sx: {
31567
- cursor: "pointer",
31568
- display: "flex",
31569
- flex: 1,
31570
- alignItems: "center",
31571
- flexDirection: "column"
33637
+ to: findLink(app2) || "#",
33638
+ style: {
33639
+ textDecoration: "none",
33640
+ color: "inherit",
33641
+ width: "100%"
31572
33642
  },
31573
- children: [
31574
- /* @__PURE__ */ jsxRuntime.jsx(
31575
- material.Box,
31576
- {
31577
- sx: {
31578
- width: iconSize,
31579
- height: iconSize,
31580
- borderRadius: iconRadius,
31581
- mb: 1.5,
31582
- display: "flex",
31583
- alignItems: "center",
31584
- justifyContent: "center",
31585
- background: getAppColor(app2.category),
31586
- boxShadow: isSelected ? `0 0 0 1px ${theme.palette.primary.main}, ${iconShadow}` : iconShadow
31587
- },
31588
- children: app2.icon.startsWith("/") && /* @__PURE__ */ jsxRuntime.jsx(
31589
- ImageElement,
33643
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
33644
+ MotionBox,
33645
+ {
33646
+ preset: "staggerItem",
33647
+ index,
33648
+ hover: true,
33649
+ onClick: () => onClickItem?.(app2),
33650
+ sx: {
33651
+ cursor: "pointer",
33652
+ display: "flex",
33653
+ flex: 1,
33654
+ alignItems: "center",
33655
+ flexDirection: "column"
33656
+ },
33657
+ children: [
33658
+ /* @__PURE__ */ jsxRuntime.jsx(
33659
+ material.Box,
31590
33660
  {
31591
- sx: { width: iconSize * 0.56, height: iconSize * 0.56 },
31592
- url: app2.icon,
31593
- sizeType: ImageSizeType.SQUARE
33661
+ sx: {
33662
+ width: iconSize,
33663
+ height: iconSize,
33664
+ borderRadius: iconRadius,
33665
+ mb: 1.5,
33666
+ display: "flex",
33667
+ alignItems: "center",
33668
+ justifyContent: "center",
33669
+ background: getAppColor(app2.category),
33670
+ boxShadow: isSelected ? `0 0 0 1px ${theme.palette.primary.main}, ${iconShadow}` : iconShadow
33671
+ },
33672
+ children: app2.icon.startsWith("/") && /* @__PURE__ */ jsxRuntime.jsx(
33673
+ ImageElement,
33674
+ {
33675
+ sx: { width: iconSize * 0.56, height: iconSize * 0.56 },
33676
+ url: app2.icon,
33677
+ sizeType: ImageSizeType.SQUARE
33678
+ }
33679
+ )
33680
+ }
33681
+ ),
33682
+ /* @__PURE__ */ jsxRuntime.jsx(
33683
+ material.Typography,
33684
+ {
33685
+ variant: titleVariant,
33686
+ sx: { color: titleColor ?? theme.palette.common.white },
33687
+ children: app2.title
33688
+ }
33689
+ ),
33690
+ /* @__PURE__ */ jsxRuntime.jsx(
33691
+ material.Typography,
33692
+ {
33693
+ variant: captionVariant,
33694
+ sx: { color: captionColor ?? theme.palette.common.white },
33695
+ children: app2.caption
31594
33696
  }
31595
33697
  )
31596
- }
31597
- ),
31598
- /* @__PURE__ */ jsxRuntime.jsx(
31599
- material.Typography,
31600
- {
31601
- variant: titleVariant,
31602
- sx: { color: titleColor ?? theme.palette.common.white },
31603
- children: app2.title
31604
- }
31605
- ),
31606
- /* @__PURE__ */ jsxRuntime.jsx(
31607
- material.Typography,
31608
- {
31609
- variant: captionVariant,
31610
- sx: { color: captionColor ?? theme.palette.common.white },
31611
- children: app2.caption
31612
- }
31613
- )
31614
- ]
33698
+ ]
33699
+ }
33700
+ )
31615
33701
  },
31616
33702
  app2.key
31617
33703
  );
@@ -31831,13 +33917,6 @@ const routes = [
31831
33917
  ]
31832
33918
  }
31833
33919
  ];
31834
- const useSidebar = () => {
31835
- const context = React.useContext(SidebarContext);
31836
- if (context === void 0) {
31837
- throw new Error("useSidebar must be used within a SidebarProvider");
31838
- }
31839
- return context;
31840
- };
31841
33920
  const AppsSidebar = ({
31842
33921
  isOpen,
31843
33922
  onClose
@@ -32165,6 +34244,8 @@ exports.SYSTEM_MODULES = SYSTEM_MODULES;
32165
34244
  exports.SidebarContext = SidebarContext;
32166
34245
  exports.SidebarProvider = SidebarProvider;
32167
34246
  exports.SmallIcon = SmallIcon;
34247
+ exports.SnackbarProvider = SnackbarProvider;
34248
+ exports.SnackbarType = SnackbarType;
32168
34249
  exports.SocketNamespace = SocketNamespace;
32169
34250
  exports.SocketSystemEvent = SocketSystemEvent;
32170
34251
  exports.SocketSystemRoom = SocketSystemRoom;
@@ -32295,6 +34376,7 @@ exports.useActiveSidebar = useActiveSidebar;
32295
34376
  exports.useAllApps = useAllApps;
32296
34377
  exports.useApps = useApps;
32297
34378
  exports.useIsSystemMonitor = useIsSystemMonitor;
34379
+ exports.useSidebar = useSidebar;
32298
34380
  exports.useSidebarState = useSidebarState;
32299
34381
  exports.useSnackbar = useSnackbar;
32300
34382
  exports.useTagSelector = useTagSelector;