@mxenabled/connect-widget 0.14.0 → 0.15.0

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.es.js CHANGED
@@ -5236,6 +5236,8 @@ const _find = /*@__PURE__*/getDefaultExportFromCjs(find_1);
5236
5236
 
5237
5237
  const ActionTypes$2 = {
5238
5238
  ACCEPT_DISCLOSURE: "connect/accept_disclosure",
5239
+ ACTIONABLE_ERROR_CONNECT_DIFFERENT_INSTITUTION: "connect/actionable_error_connect_different_institution",
5240
+ ACTIONABLE_ERROR_LOG_IN_AGAIN: "connect/actionable_error_log_in_again",
5239
5241
  ADD_MANUAL_ACCOUNT_SUCCESS: "connect/add_manual_account_success",
5240
5242
  CREATE_MEMBER_SUCCESS: "connect/create_member_success",
5241
5243
  EXIT_MICRODEPOSITS: "connect/exit_microdeposits",
@@ -5262,7 +5264,6 @@ const ActionTypes$2 = {
5262
5264
  RESET_CONNECT: "connect/reset_connect",
5263
5265
  RESET_WIDGET_CONNECTED: "connect/reset_widget_connected",
5264
5266
  RESET_WIDGET_MFA_STEP: "connect/reset_widget_mfa_step",
5265
- RESET_WIDGET_NO_ELIGIBLE_ACCOUNTS: "connect/reset_widget_no_eligible_accounts",
5266
5267
  SELECT_INSTITUTION: "connect/select_institution",
5267
5268
  SELECT_INSTITUTION_SUCCESS: "connect/select_institution_success",
5268
5269
  SELECT_INSTITUTION_ERROR: "connect/select_institution_error",
@@ -5376,6 +5377,7 @@ const VERIFY_MODE = "verification";
5376
5377
  const REWARD_MODE = "reward";
5377
5378
  const TAX_MODE = "tax";
5378
5379
  const STEPS = {
5380
+ ACTIONABLE_ERROR: "actionableError",
5379
5381
  ADD_MANUAL_ACCOUNT: "addManualAccount",
5380
5382
  CONNECTED: "connected",
5381
5383
  CONNECTING: "connecting",
@@ -5384,7 +5386,6 @@ const STEPS = {
5384
5386
  DISCLOSURE: "disclosure",
5385
5387
  ENTER_CREDENTIALS: "enterCreds",
5386
5388
  EXISTING_MEMBER: "existingMember",
5387
- LOGIN_ERROR: "loginError",
5388
5389
  MFA: "mfa",
5389
5390
  MICRODEPOSITS: "microdeposits",
5390
5391
  OAUTH_ERROR: "oauthError",
@@ -9031,16 +9032,6 @@ const ReadableAccountTypes = {
9031
9032
  SAVINGS: 2
9032
9033
  };
9033
9034
 
9034
- const JOB_DETAIL_CODE = {
9035
- NO_VERIFIABLE_ACCOUNTS: 1e3
9036
- };
9037
-
9038
- const hasNoVerifiableAccounts = (member, connectConfig) => {
9039
- if (connectConfig.mode === VERIFY_MODE && member?.most_recent_job_detail_code === JOB_DETAIL_CODE.NO_VERIFIABLE_ACCOUNTS) {
9040
- return true;
9041
- }
9042
- return false;
9043
- };
9044
9035
  const hasNoSingleAccountSelectOptions = (member) => {
9045
9036
  const mfaCredentials = _get(member, "mfa.credentials", []);
9046
9037
  const isSAS = mfaCredentials[0]?.external_id === "single_account_select";
@@ -9054,8 +9045,6 @@ const hasNoSingleAccountSelectOptions = (member) => {
9054
9045
  const defaultState$1 = {
9055
9046
  error: null,
9056
9047
  // The most recent job request error, if any
9057
- hasInvalidData: false,
9058
- // no dda accounts for verification
9059
9048
  isComponentLoading: true,
9060
9049
  // whether or not the entire component is loading
9061
9050
  isConnectMounted: false,
@@ -9097,28 +9086,16 @@ const loadConnectSuccess = (state, action) => {
9097
9086
  institution = {},
9098
9087
  widgetProfile
9099
9088
  } = action.payload;
9100
- const currentMicrodepositGuid = config.current_microdeposit_guid;
9101
- let hasInvalidData2 = state.hasInvalidData;
9102
- let startingStep = getStartingStep(
9103
- members,
9104
- member,
9105
- microdeposit,
9106
- config,
9107
- institution,
9108
- widgetProfile
9109
- );
9110
- if (member && config.mode === VERIFY_MODE && (hasNoVerifiableAccounts(member, config) || hasNoSingleAccountSelectOptions(member))) {
9111
- startingStep = STEPS.LOGIN_ERROR;
9112
- hasInvalidData2 = true;
9113
- }
9114
9089
  return {
9115
9090
  ...state,
9116
9091
  currentMemberGuid: member?.guid ?? defaultState$1.currentMemberGuid,
9117
- currentMicrodepositGuid,
9092
+ currentMicrodepositGuid: config.current_microdeposit_guid ?? defaultState$1.currentMicrodepositGuid,
9118
9093
  isComponentLoading: false,
9119
- location: pushLocation(state.location, startingStep),
9094
+ location: pushLocation(
9095
+ state.location,
9096
+ getStartingStep(members, member, microdeposit, config, institution, widgetProfile)
9097
+ ),
9120
9098
  selectedInstitution: institution,
9121
- hasInvalidData: hasInvalidData2,
9122
9099
  updateCredentials: member?.connection_status === ReadableStatuses$1.DENIED || state.updateCredentials,
9123
9100
  members
9124
9101
  };
@@ -9143,7 +9120,6 @@ const goBackSearchOrVerify = (state, { payload }) => {
9143
9120
  oauthURL: defaultState$1.oauthURL,
9144
9121
  oauthErrorReason: defaultState$1.oauthErrorReason,
9145
9122
  jobSchedule: UNINITIALIZED$2,
9146
- hasInvalidData: defaultState$1.hasInvalidData,
9147
9123
  selectedInstitution: defaultState$1.selectedInstitution
9148
9124
  };
9149
9125
  };
@@ -9157,7 +9133,6 @@ const resetWidgetMFAStep = (state, { payload }) => {
9157
9133
  oauthURL: defaultState$1.oauthURL,
9158
9134
  oauthErrorReason: defaultState$1.oauthErrorReason,
9159
9135
  jobSchedule: UNINITIALIZED$2,
9160
- hasInvalidData: defaultState$1.hasInvalidData,
9161
9136
  selectedInstitution: defaultState$1.selectedInstitution
9162
9137
  };
9163
9138
  };
@@ -9170,7 +9145,6 @@ const resetWidgetConnected = (state) => {
9170
9145
  oauthURL: defaultState$1.oauthURL,
9171
9146
  oauthErrorReason: defaultState$1.oauthErrorReason,
9172
9147
  jobSchedule: UNINITIALIZED$2,
9173
- hasInvalidData: defaultState$1.hasInvalidData,
9174
9148
  selectedInstitution: defaultState$1.selectedInstitution,
9175
9149
  // This overrides/resets the location to always only be the search step.
9176
9150
  location: pushLocation(state.location, STEPS.SEARCH, true)
@@ -9216,8 +9190,7 @@ const deleteMemberSuccessReset = (state, { payload }) => {
9216
9190
  updateCredentials: defaultState$1.updateCredentials,
9217
9191
  oauthURL: defaultState$1.oauthURL,
9218
9192
  oauthErrorReason: defaultState$1.oauthErrorReason,
9219
- jobSchedule: UNINITIALIZED$2,
9220
- hasInvalidData: defaultState$1.hasInvalidData
9193
+ jobSchedule: UNINITIALIZED$2
9221
9194
  };
9222
9195
  };
9223
9196
  const userConsented = (state) => ({
@@ -9246,12 +9219,10 @@ const stepToAddManualAccount = (state) => ({
9246
9219
  ...state,
9247
9220
  location: pushLocation(state.location, STEPS.ADD_MANUAL_ACCOUNT)
9248
9221
  });
9249
- function stepToLoginError(state) {
9250
- return {
9251
- ...state,
9252
- location: pushLocation(state.location, STEPS.LOGIN_ERROR)
9253
- };
9254
- }
9222
+ const mfaConnectSubmitError = (state) => ({
9223
+ ...state,
9224
+ location: pushLocation(state.location, STEPS.ACTIONABLE_ERROR)
9225
+ });
9255
9226
  const acceptDisclosure = (state, { payload }) => {
9256
9227
  let nextStep = STEPS.SEARCH;
9257
9228
  if (state.selectedInstitution && (payload.current_institution_guid || payload.current_institution_code)) {
@@ -9378,30 +9349,36 @@ const addManualAccount = (state, { payload }) => {
9378
9349
  }
9379
9350
  return state;
9380
9351
  };
9381
- const resetWidgetInvalidData = (state) => {
9352
+ const connectGoBack = (state) => {
9382
9353
  return {
9383
9354
  ...state,
9384
- location: pushLocation(state.location, STEPS.SEARCH, true),
9385
- error: defaultState$1.error,
9386
- updateCredentials: defaultState$1.updateCredentials,
9387
- oauthURL: defaultState$1.oauthURL,
9388
- oauthErrorReason: defaultState$1.oauthErrorReason,
9389
- jobSchedule: UNINITIALIZED$2,
9390
- currentMemberGuid: defaultState$1.currentMemberGuid,
9391
- hasInvalidData: defaultState$1.hasInvalidData
9355
+ location: popLocation(state)
9392
9356
  };
9393
9357
  };
9394
- const hasInvalidData = (state) => {
9358
+ const actionableErrorConnectDifferentInstitution = (state, action) => {
9359
+ const mode = action.payload;
9360
+ const iavMembers = getIavMembers(state.members);
9395
9361
  return {
9396
- ...state,
9397
- location: pushLocation(state.location, STEPS.LOGIN_ERROR),
9398
- hasInvalidData: true
9362
+ ...defaultState$1,
9363
+ isComponentLoading: state.isComponentLoading,
9364
+ isConnectMounted: state.isConnectMounted,
9365
+ location: pushLocation(
9366
+ state.location,
9367
+ mode === VERIFY_MODE && iavMembers.length > 0 ? STEPS.VERIFY_EXISTING_MEMBER : STEPS.SEARCH,
9368
+ true
9369
+ ),
9370
+ members: state.members
9399
9371
  };
9400
9372
  };
9401
- const connectGoBack = (state) => {
9373
+ const actionableErrorLogInAgain = (state) => {
9402
9374
  return {
9403
9375
  ...state,
9404
- location: popLocation(state)
9376
+ location: pushLocation(popLocation(state), STEPS.ENTER_CREDENTIALS, true),
9377
+ currentMemberGuid: defaultState$1.currentMemberGuid,
9378
+ error: defaultState$1.error,
9379
+ oauthURL: defaultState$1.oauthURL,
9380
+ oauthErrorReason: defaultState$1.oauthErrorReason,
9381
+ jobSchedule: UNINITIALIZED$2
9405
9382
  };
9406
9383
  };
9407
9384
  const upsertMember = (state, action) => {
@@ -9415,38 +9392,38 @@ const upsertMember = (state, action) => {
9415
9392
  function getStartingStep(members, member, microdeposit, config, institution, widgetProfile) {
9416
9393
  const shouldStepToMFA = member && config.update_credentials && member.connection_status === ReadableStatuses$1.CHALLENGED;
9417
9394
  const shouldUpdateCredentials = member && (config.update_credentials || member.connection_status === ReadableStatuses$1.DENIED);
9418
- if (shouldStepToMFA) {
9395
+ const shouldStepToMicrodeposits = config.current_microdeposit_guid && config.mode === VERIFY_MODE && microdeposit.status !== MicrodepositsStatuses.PREINITIATED;
9396
+ const shouldLoadWithInstitution = institution && (config.current_institution_guid || config.current_institution_code);
9397
+ const shouldStepToConnecting = member?.connection_status === ReadableStatuses$1.REJECTED || member?.connection_status === ReadableStatuses$1.EXPIRED;
9398
+ if (shouldStepToMFA)
9419
9399
  return STEPS.MFA;
9420
- } else if (shouldUpdateCredentials) {
9400
+ else if (shouldUpdateCredentials)
9421
9401
  return STEPS.ENTER_CREDENTIALS;
9422
- } else if (member && config.current_member_guid) {
9423
- const shouldStepToConnecting = member.connection_status === ReadableStatuses$1.REJECTED || member.connection_status === ReadableStatuses$1.EXPIRED;
9402
+ else if (member && config.current_member_guid)
9424
9403
  return shouldStepToConnecting ? STEPS.CONNECTING : getStepFromMember(member);
9425
- } else if (config.current_microdeposit_guid && config.mode === VERIFY_MODE && microdeposit.status !== MicrodepositsStatuses.PREINITIATED) {
9404
+ else if (shouldStepToMicrodeposits)
9426
9405
  return STEPS.MICRODEPOSITS;
9427
- } else if (widgetProfile.display_disclosure_in_connect) {
9406
+ else if (widgetProfile.display_disclosure_in_connect)
9428
9407
  return STEPS.DISCLOSURE;
9429
- } else if (institution && (config.current_institution_guid || config.current_institution_code)) {
9408
+ else if (shouldLoadWithInstitution)
9430
9409
  return STEPS.ENTER_CREDENTIALS;
9431
- } else if (config.mode === VERIFY_MODE) {
9432
- const iavMembers = getIavMembers(members);
9433
- return iavMembers.length > 0 ? STEPS.VERIFY_EXISTING_MEMBER : STEPS.SEARCH;
9434
- }
9435
- return STEPS.SEARCH;
9410
+ else if (config.mode === VERIFY_MODE)
9411
+ return getIavMembers(members).length > 0 ? STEPS.VERIFY_EXISTING_MEMBER : STEPS.SEARCH;
9412
+ else return STEPS.SEARCH;
9436
9413
  }
9437
9414
  function getStepFromMember(member) {
9438
9415
  const connection_status = member.connection_status;
9439
- if (connection_status === ReadableStatuses$1.CHALLENGED) {
9416
+ if (member?.most_recent_job_detail_code || hasNoSingleAccountSelectOptions(member))
9417
+ return STEPS.ACTIONABLE_ERROR;
9418
+ else if (connection_status === ReadableStatuses$1.CHALLENGED)
9440
9419
  return STEPS.MFA;
9441
- } else if (connection_status === ReadableStatuses$1.CONNECTED) {
9420
+ else if (connection_status === ReadableStatuses$1.CONNECTED)
9442
9421
  return STEPS.CONNECTED;
9443
- } else if (connection_status === ReadableStatuses$1.PENDING || connection_status === ReadableStatuses$1.DENIED) {
9422
+ else if ([ReadableStatuses$1.PENDING, ReadableStatuses$1.DENIED].includes(connection_status))
9444
9423
  return STEPS.ENTER_CREDENTIALS;
9445
- } else if (ProcessingStatuses.indexOf(connection_status) !== -1) {
9424
+ else if (ProcessingStatuses.indexOf(connection_status) !== -1)
9446
9425
  return STEPS.CONNECTING;
9447
- } else {
9448
- return STEPS.LOGIN_ERROR;
9449
- }
9426
+ else return STEPS.ACTIONABLE_ERROR;
9450
9427
  }
9451
9428
  function getIavMembers(members) {
9452
9429
  const iavMembers = members.filter(
@@ -9490,7 +9467,6 @@ const connect = createReducer(defaultState$1, {
9490
9467
  [ActionTypes$2.DELETE_MEMBER_SUCCESS]: deleteMemberSuccess,
9491
9468
  [ActionTypes$2.STEP_TO_DELETE_MEMBER_SUCCESS]: stepToDeleteMemberSuccess,
9492
9469
  [ActionTypes$2.DELETE_MEMBER_SUCCESS_RESET]: deleteMemberSuccessReset,
9493
- [ActionTypes$2.HAS_INVALID_DATA]: hasInvalidData,
9494
9470
  [ActionTypes$2.INIT_JOB_SCHEDULE]: initializeJobSchedule,
9495
9471
  [ActionTypes$2.JOB_COMPLETE]: jobComplete,
9496
9472
  [ActionTypes$2.LOAD_CONNECT]: loadConnect,
@@ -9503,7 +9479,8 @@ const connect = createReducer(defaultState$1, {
9503
9479
  [ActionTypes$2.RETRY_OAUTH]: retryOAuth,
9504
9480
  [ActionTypes$2.RESET_WIDGET_CONNECTED]: resetWidgetConnected,
9505
9481
  [ActionTypes$2.RESET_WIDGET_MFA_STEP]: resetWidgetMFAStep,
9506
- [ActionTypes$2.RESET_WIDGET_NO_ELIGIBLE_ACCOUNTS]: resetWidgetInvalidData,
9482
+ [ActionTypes$2.ACTIONABLE_ERROR_CONNECT_DIFFERENT_INSTITUTION]: actionableErrorConnectDifferentInstitution,
9483
+ [ActionTypes$2.ACTIONABLE_ERROR_LOG_IN_AGAIN]: actionableErrorLogInAgain,
9507
9484
  [ActionTypes$2.SELECT_INSTITUTION_SUCCESS]: selectInstitutionSuccess,
9508
9485
  [ActionTypes$2.START_OAUTH]: startOauth,
9509
9486
  [ActionTypes$2.START_OAUTH_SUCCESS]: startOauthSuccess,
@@ -9518,7 +9495,7 @@ const connect = createReducer(defaultState$1, {
9518
9495
  [ActionTypes$2.UPDATE_MEMBER_SUCCESS]: updateMemberSuccess,
9519
9496
  [ActionTypes$2.USER_CONSENTED]: userConsented,
9520
9497
  [ActionTypes$2.MFA_CONNECT_SUBMIT_SUCCESS]: updateMemberSuccess,
9521
- [ActionTypes$2.MFA_CONNECT_SUBMIT_ERROR]: stepToLoginError,
9498
+ [ActionTypes$2.MFA_CONNECT_SUBMIT_ERROR]: mfaConnectSubmitError,
9522
9499
  [ActionTypes$2.ADD_MANUAL_ACCOUNT_SUCCESS]: addManualAccount,
9523
9500
  [ActionTypes$2.LOGIN_ERROR_START_OVER]: loginErrorStartOver,
9524
9501
  [ActionTypes$2.CONNECT_GO_BACK]: connectGoBack
@@ -19951,7 +19928,7 @@ function getIconUtilityClass$1(slot) {
19951
19928
  generateUtilityClasses$1("MuiIcon", ["root", "colorPrimary", "colorSecondary", "colorAction", "colorError", "colorDisabled", "fontSizeInherit", "fontSizeSmall", "fontSizeMedium", "fontSizeLarge"]);
19952
19929
 
19953
19930
  const _excluded$u = ["baseClassName", "className", "color", "component", "fontSize"];
19954
- const useUtilityClasses$Y = (ownerState) => {
19931
+ const useUtilityClasses$Z = (ownerState) => {
19955
19932
  const {
19956
19933
  color,
19957
19934
  fontSize,
@@ -20023,7 +20000,7 @@ const Icon$1 = /* @__PURE__ */ React$2.forwardRef(function Icon2(inProps, ref) {
20023
20000
  component: Component,
20024
20001
  fontSize
20025
20002
  });
20026
- const classes = useUtilityClasses$Y(ownerState);
20003
+ const classes = useUtilityClasses$Z(ownerState);
20027
20004
  return /* @__PURE__ */ jsxRuntimeExports.jsx(IconRoot$1, _extends$1({
20028
20005
  as: Component,
20029
20006
  className: clsx(
@@ -22393,6 +22370,14 @@ function getScrollbarSize(win = window) {
22393
22370
  return win.innerWidth - documentWidth;
22394
22371
  }
22395
22372
 
22373
+ const usePreviousProps = (value) => {
22374
+ const ref = React$2.useRef({});
22375
+ React$2.useEffect(() => {
22376
+ ref.current = value;
22377
+ });
22378
+ return ref.current;
22379
+ };
22380
+
22396
22381
  function getValidReactChildren(children) {
22397
22382
  return React$2.Children.toArray(children).filter((child) => /* @__PURE__ */ React$2.isValidElement(child));
22398
22383
  }
@@ -25323,7 +25308,7 @@ const v6Colors$1 = {
25323
25308
  textDisabled: true
25324
25309
  };
25325
25310
  const extendSxProp = internal_createExtendSxProp();
25326
- const useUtilityClasses$X = (ownerState) => {
25311
+ const useUtilityClasses$Y = (ownerState) => {
25327
25312
  const {
25328
25313
  align,
25329
25314
  gutterBottom,
@@ -25463,7 +25448,7 @@ const Typography$1 = /* @__PURE__ */ React$2.forwardRef(function Typography2(inP
25463
25448
  variantMapping
25464
25449
  };
25465
25450
  const Component = component || (paragraph ? "p" : variantMapping[variant] || defaultVariantMapping$1[variant]) || "span";
25466
- const classes = useUtilityClasses$X(ownerState);
25451
+ const classes = useUtilityClasses$Y(ownerState);
25467
25452
  return /* @__PURE__ */ jsxRuntimeExports.jsx(TypographyRoot$1, {
25468
25453
  as: Component,
25469
25454
  ref,
@@ -26678,7 +26663,7 @@ function getButtonBaseUtilityClass$1(slot) {
26678
26663
  }
26679
26664
  const buttonBaseClasses$1 = generateUtilityClasses("MuiButtonBase", ["root", "disabled", "focusVisible"]);
26680
26665
 
26681
- const useUtilityClasses$W = (ownerState) => {
26666
+ const useUtilityClasses$X = (ownerState) => {
26682
26667
  const {
26683
26668
  disabled,
26684
26669
  focusVisible,
@@ -26907,7 +26892,7 @@ const ButtonBase$1 = /* @__PURE__ */ React$2.forwardRef(function ButtonBase2(inP
26907
26892
  tabIndex,
26908
26893
  focusVisible
26909
26894
  };
26910
- const classes = useUtilityClasses$W(ownerState);
26895
+ const classes = useUtilityClasses$X(ownerState);
26911
26896
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(ButtonBaseRoot$1, {
26912
26897
  as: ComponentProp,
26913
26898
  className: clsx(classes.root, className),
@@ -27101,7 +27086,7 @@ function getIconButtonUtilityClass(slot) {
27101
27086
  }
27102
27087
  const iconButtonClasses = generateUtilityClasses("MuiIconButton", ["root", "disabled", "colorInherit", "colorPrimary", "colorSecondary", "colorError", "colorInfo", "colorSuccess", "colorWarning", "edgeStart", "edgeEnd", "sizeSmall", "sizeMedium", "sizeLarge"]);
27103
27088
 
27104
- const useUtilityClasses$V = (ownerState) => {
27089
+ const useUtilityClasses$W = (ownerState) => {
27105
27090
  const {
27106
27091
  classes,
27107
27092
  disabled,
@@ -27247,7 +27232,7 @@ const IconButton$1 = /* @__PURE__ */ React$2.forwardRef(function IconButton2(inP
27247
27232
  disableFocusRipple,
27248
27233
  size
27249
27234
  };
27250
- const classes = useUtilityClasses$V(ownerState);
27235
+ const classes = useUtilityClasses$W(ownerState);
27251
27236
  return /* @__PURE__ */ jsxRuntimeExports.jsx(IconButtonRoot, {
27252
27237
  className: clsx(classes.root, className),
27253
27238
  centerRipple: true,
@@ -27332,7 +27317,7 @@ function getSvgIconUtilityClass$1(slot) {
27332
27317
  }
27333
27318
  generateUtilityClasses("MuiSvgIcon", ["root", "colorPrimary", "colorSecondary", "colorAction", "colorError", "colorDisabled", "fontSizeInherit", "fontSizeSmall", "fontSizeMedium", "fontSizeLarge"]);
27334
27319
 
27335
- const useUtilityClasses$U = (ownerState) => {
27320
+ const useUtilityClasses$V = (ownerState) => {
27336
27321
  const {
27337
27322
  color,
27338
27323
  fontSize,
@@ -27471,7 +27456,7 @@ const SvgIcon$1 = /* @__PURE__ */ React$2.forwardRef(function SvgIcon2(inProps,
27471
27456
  if (!inheritViewBox) {
27472
27457
  more.viewBox = viewBox;
27473
27458
  }
27474
- const classes = useUtilityClasses$U(ownerState);
27459
+ const classes = useUtilityClasses$V(ownerState);
27475
27460
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(SvgIconRoot$1, {
27476
27461
  as: component,
27477
27462
  className: clsx(classes.root, className),
@@ -27591,7 +27576,7 @@ function getListUtilityClass$1(slot) {
27591
27576
  }
27592
27577
  generateUtilityClasses("MuiList", ["root", "padding", "dense", "subheader"]);
27593
27578
 
27594
- const useUtilityClasses$T = (ownerState) => {
27579
+ const useUtilityClasses$U = (ownerState) => {
27595
27580
  const {
27596
27581
  classes,
27597
27582
  disablePadding,
@@ -27657,7 +27642,7 @@ const List$1 = /* @__PURE__ */ React$2.forwardRef(function List2(inProps, ref) {
27657
27642
  dense,
27658
27643
  disablePadding
27659
27644
  };
27660
- const classes = useUtilityClasses$T(ownerState);
27645
+ const classes = useUtilityClasses$U(ownerState);
27661
27646
  return /* @__PURE__ */ jsxRuntimeExports.jsx(ListContext$1.Provider, {
27662
27647
  value: context,
27663
27648
  children: /* @__PURE__ */ jsxRuntimeExports.jsxs(ListRoot$1, {
@@ -28201,7 +28186,7 @@ const inputOverridesResolver$1 = (props, styles) => {
28201
28186
  } = props;
28202
28187
  return [styles.input, ownerState.size === "small" && styles.inputSizeSmall, ownerState.multiline && styles.inputMultiline, ownerState.type === "search" && styles.inputTypeSearch, ownerState.startAdornment && styles.inputAdornedStart, ownerState.endAdornment && styles.inputAdornedEnd, ownerState.hiddenLabel && styles.inputHiddenLabel];
28203
28188
  };
28204
- const useUtilityClasses$S = (ownerState) => {
28189
+ const useUtilityClasses$T = (ownerState) => {
28205
28190
  const {
28206
28191
  classes,
28207
28192
  color,
@@ -28605,7 +28590,7 @@ const InputBase$1 = /* @__PURE__ */ React$2.forwardRef(function InputBase2(inPro
28605
28590
  startAdornment,
28606
28591
  type
28607
28592
  };
28608
- const classes = useUtilityClasses$S(ownerState);
28593
+ const classes = useUtilityClasses$T(ownerState);
28609
28594
  const Root = slots.root || components.Root || InputBaseRoot$1;
28610
28595
  const rootProps = slotProps.root || componentsProps.root || {};
28611
28596
  const Input = slots.input || components.Input || InputBaseInput;
@@ -28906,7 +28891,7 @@ const inputClasses$1 = {
28906
28891
  ...generateUtilityClasses("MuiInput", ["root", "underline", "input"])
28907
28892
  };
28908
28893
 
28909
- const useUtilityClasses$R = (ownerState) => {
28894
+ const useUtilityClasses$S = (ownerState) => {
28910
28895
  const {
28911
28896
  classes,
28912
28897
  disableUnderline
@@ -29039,7 +29024,7 @@ const Input$1 = /* @__PURE__ */ React$2.forwardRef(function Input2(inProps, ref)
29039
29024
  type = "text",
29040
29025
  ...other
29041
29026
  } = props;
29042
- const classes = useUtilityClasses$R(props);
29027
+ const classes = useUtilityClasses$S(props);
29043
29028
  const ownerState = {
29044
29029
  disableUnderline
29045
29030
  };
@@ -29263,7 +29248,7 @@ const filledInputClasses$1 = {
29263
29248
  ...generateUtilityClasses("MuiFilledInput", ["root", "underline", "input", "adornedStart", "adornedEnd", "sizeSmall", "multiline", "hiddenLabel"])
29264
29249
  };
29265
29250
 
29266
- const useUtilityClasses$Q = (ownerState) => {
29251
+ const useUtilityClasses$R = (ownerState) => {
29267
29252
  const {
29268
29253
  classes,
29269
29254
  disableUnderline,
@@ -29542,7 +29527,7 @@ const FilledInput$1 = /* @__PURE__ */ React$2.forwardRef(function FilledInput2(i
29542
29527
  multiline,
29543
29528
  type
29544
29529
  };
29545
- const classes = useUtilityClasses$Q(props);
29530
+ const classes = useUtilityClasses$R(props);
29546
29531
  const filledInputComponentsProps = {
29547
29532
  root: {
29548
29533
  ownerState
@@ -29917,7 +29902,7 @@ const outlinedInputClasses$1 = {
29917
29902
  ...generateUtilityClasses("MuiOutlinedInput", ["root", "notchedOutline", "input"])
29918
29903
  };
29919
29904
 
29920
- const useUtilityClasses$P = (ownerState) => {
29905
+ const useUtilityClasses$Q = (ownerState) => {
29921
29906
  const {
29922
29907
  classes
29923
29908
  } = ownerState;
@@ -30096,7 +30081,7 @@ const OutlinedInput$1 = /* @__PURE__ */ React$2.forwardRef(function OutlinedInpu
30096
30081
  type = "text",
30097
30082
  ...other
30098
30083
  } = props;
30099
- const classes = useUtilityClasses$P(props);
30084
+ const classes = useUtilityClasses$Q(props);
30100
30085
  const muiFormControl = useFormControl$1();
30101
30086
  const fcs = formControlState$1({
30102
30087
  props,
@@ -30317,7 +30302,7 @@ function getFormLabelUtilityClasses$1(slot) {
30317
30302
  }
30318
30303
  const formLabelClasses$1 = generateUtilityClasses("MuiFormLabel", ["root", "colorSecondary", "focused", "disabled", "error", "filled", "required", "asterisk"]);
30319
30304
 
30320
- const useUtilityClasses$O = (ownerState) => {
30305
+ const useUtilityClasses$P = (ownerState) => {
30321
30306
  const {
30322
30307
  classes,
30323
30308
  color,
@@ -30418,7 +30403,7 @@ const FormLabel$1 = /* @__PURE__ */ React$2.forwardRef(function FormLabel2(inPro
30418
30403
  focused: fcs.focused,
30419
30404
  required: fcs.required
30420
30405
  };
30421
- const classes = useUtilityClasses$O(ownerState);
30406
+ const classes = useUtilityClasses$P(ownerState);
30422
30407
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(FormLabelRoot$1, {
30423
30408
  as: component,
30424
30409
  ownerState,
@@ -30492,7 +30477,7 @@ function getInputLabelUtilityClasses$1(slot) {
30492
30477
  }
30493
30478
  generateUtilityClasses("MuiInputLabel", ["root", "focused", "disabled", "error", "required", "asterisk", "formControl", "sizeSmall", "shrink", "animated", "standard", "filled", "outlined"]);
30494
30479
 
30495
- const useUtilityClasses$N = (ownerState) => {
30480
+ const useUtilityClasses$O = (ownerState) => {
30496
30481
  const {
30497
30482
  classes,
30498
30483
  formControl,
@@ -30681,7 +30666,7 @@ const InputLabel$1 = /* @__PURE__ */ React$2.forwardRef(function InputLabel2(inP
30681
30666
  required: fcs.required,
30682
30667
  focused: fcs.focused
30683
30668
  };
30684
- const classes = useUtilityClasses$N(ownerState);
30669
+ const classes = useUtilityClasses$O(ownerState);
30685
30670
  return /* @__PURE__ */ jsxRuntimeExports.jsx(InputLabelRoot$1, {
30686
30671
  "data-shrink": shrink,
30687
30672
  ref,
@@ -30764,7 +30749,7 @@ function getFormControlUtilityClasses$1(slot) {
30764
30749
  }
30765
30750
  generateUtilityClasses("MuiFormControl", ["root", "marginNone", "marginNormal", "marginDense", "fullWidth", "disabled"]);
30766
30751
 
30767
- const useUtilityClasses$M = (ownerState) => {
30752
+ const useUtilityClasses$N = (ownerState) => {
30768
30753
  const {
30769
30754
  classes,
30770
30755
  margin,
@@ -30857,7 +30842,7 @@ const FormControl$1 = /* @__PURE__ */ React$2.forwardRef(function FormControl2(i
30857
30842
  size,
30858
30843
  variant
30859
30844
  };
30860
- const classes = useUtilityClasses$M(ownerState);
30845
+ const classes = useUtilityClasses$N(ownerState);
30861
30846
  const [adornedStart, setAdornedStart] = React$2.useState(() => {
30862
30847
  let initialAdornedStart = false;
30863
30848
  if (children) {
@@ -31033,7 +31018,7 @@ function getFormHelperTextUtilityClasses$1(slot) {
31033
31018
  const formHelperTextClasses$1 = generateUtilityClasses("MuiFormHelperText", ["root", "error", "disabled", "sizeSmall", "sizeMedium", "contained", "focused", "filled", "required"]);
31034
31019
 
31035
31020
  var _span$5;
31036
- const useUtilityClasses$L = (ownerState) => {
31021
+ const useUtilityClasses$M = (ownerState) => {
31037
31022
  const {
31038
31023
  classes,
31039
31024
  contained,
@@ -31128,7 +31113,7 @@ const FormHelperText$1 = /* @__PURE__ */ React$2.forwardRef(function FormHelperT
31128
31113
  required: fcs.required
31129
31114
  };
31130
31115
  delete ownerState.ownerState;
31131
- const classes = useUtilityClasses$L(ownerState);
31116
+ const classes = useUtilityClasses$M(ownerState);
31132
31117
  return /* @__PURE__ */ jsxRuntimeExports.jsx(FormHelperTextRoot$1, {
31133
31118
  as: component,
31134
31119
  className: clsx(classes.root, className),
@@ -32223,7 +32208,7 @@ const removeOwnerState = (props) => {
32223
32208
  } = props;
32224
32209
  return rest;
32225
32210
  };
32226
- const useUtilityClasses$K = (ownerState) => {
32211
+ const useUtilityClasses$L = (ownerState) => {
32227
32212
  const {
32228
32213
  classes,
32229
32214
  invisible
@@ -32286,7 +32271,7 @@ const Backdrop$1 = /* @__PURE__ */ React$2.forwardRef(function Backdrop2(inProps
32286
32271
  component,
32287
32272
  invisible
32288
32273
  };
32289
- const classes = useUtilityClasses$K(ownerState);
32274
+ const classes = useUtilityClasses$L(ownerState);
32290
32275
  const backwardCompatibleSlots = {
32291
32276
  transition: TransitionComponentProp,
32292
32277
  root: components.Root,
@@ -32584,7 +32569,7 @@ function getModalUtilityClass$1(slot) {
32584
32569
  }
32585
32570
  generateUtilityClasses("MuiModal", ["root", "hidden", "backdrop"]);
32586
32571
 
32587
- const useUtilityClasses$J = (ownerState) => {
32572
+ const useUtilityClasses$K = (ownerState) => {
32588
32573
  const {
32589
32574
  open,
32590
32575
  exited,
@@ -32695,7 +32680,7 @@ const Modal$1 = /* @__PURE__ */ React$2.forwardRef(function Modal2(inProps, ref)
32695
32680
  ...propsWithDefaults,
32696
32681
  exited
32697
32682
  };
32698
- const classes = useUtilityClasses$J(ownerState);
32683
+ const classes = useUtilityClasses$K(ownerState);
32699
32684
  const childProps = {};
32700
32685
  if (children.props.tabIndex === void 0) {
32701
32686
  childProps.tabIndex = "-1";
@@ -32960,7 +32945,7 @@ function getPaperUtilityClass$1(slot) {
32960
32945
  }
32961
32946
  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"]);
32962
32947
 
32963
- const useUtilityClasses$I = (ownerState) => {
32948
+ const useUtilityClasses$J = (ownerState) => {
32964
32949
  const {
32965
32950
  square,
32966
32951
  elevation,
@@ -33032,7 +33017,7 @@ const Paper$1 = /* @__PURE__ */ React$2.forwardRef(function Paper2(inProps, ref)
33032
33017
  square,
33033
33018
  variant
33034
33019
  };
33035
- const classes = useUtilityClasses$I(ownerState);
33020
+ const classes = useUtilityClasses$J(ownerState);
33036
33021
  if (process.env.NODE_ENV !== "production") {
33037
33022
  if (theme.shadows[elevation] === void 0) {
33038
33023
  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"));
@@ -33148,7 +33133,7 @@ function getTransformOriginValue$1(transformOrigin) {
33148
33133
  function resolveAnchorEl$1(anchorEl) {
33149
33134
  return typeof anchorEl === "function" ? anchorEl() : anchorEl;
33150
33135
  }
33151
- const useUtilityClasses$H = (ownerState) => {
33136
+ const useUtilityClasses$I = (ownerState) => {
33152
33137
  const {
33153
33138
  classes
33154
33139
  } = ownerState;
@@ -33230,7 +33215,7 @@ const Popover$1 = /* @__PURE__ */ React$2.forwardRef(function Popover2(inProps,
33230
33215
  transitionDuration: transitionDurationProp,
33231
33216
  TransitionProps
33232
33217
  };
33233
- const classes = useUtilityClasses$H(ownerState);
33218
+ const classes = useUtilityClasses$I(ownerState);
33234
33219
  const getAnchorOffset = React$2.useCallback(() => {
33235
33220
  if (anchorReference === "anchorPosition") {
33236
33221
  if (process.env.NODE_ENV !== "production") {
@@ -33640,7 +33625,7 @@ const LTR_ORIGIN$1 = {
33640
33625
  vertical: "top",
33641
33626
  horizontal: "left"
33642
33627
  };
33643
- const useUtilityClasses$G = (ownerState) => {
33628
+ const useUtilityClasses$H = (ownerState) => {
33644
33629
  const {
33645
33630
  classes
33646
33631
  } = ownerState;
@@ -33714,7 +33699,7 @@ const Menu$1 = /* @__PURE__ */ React$2.forwardRef(function Menu2(inProps, ref) {
33714
33699
  TransitionProps,
33715
33700
  variant
33716
33701
  };
33717
- const classes = useUtilityClasses$G(ownerState);
33702
+ const classes = useUtilityClasses$H(ownerState);
33718
33703
  const autoFocusItem = autoFocus && !disableAutoFocusItem && open;
33719
33704
  const menuListActionsRef = React$2.useRef(null);
33720
33705
  const handleEntering = (element, isAppearing) => {
@@ -33913,7 +33898,7 @@ function getNativeSelectUtilityClasses$1(slot) {
33913
33898
  }
33914
33899
  const nativeSelectClasses$1 = generateUtilityClasses("MuiNativeSelect", ["root", "select", "multiple", "filled", "outlined", "standard", "disabled", "icon", "iconOpen", "iconFilled", "iconOutlined", "iconStandard", "nativeInput", "error"]);
33915
33900
 
33916
- const useUtilityClasses$F = (ownerState) => {
33901
+ const useUtilityClasses$G = (ownerState) => {
33917
33902
  const {
33918
33903
  classes,
33919
33904
  variant,
@@ -34068,7 +34053,7 @@ const NativeSelectInput$1 = /* @__PURE__ */ React$2.forwardRef(function NativeSe
34068
34053
  variant,
34069
34054
  error
34070
34055
  };
34071
- const classes = useUtilityClasses$F(ownerState);
34056
+ const classes = useUtilityClasses$G(ownerState);
34072
34057
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(React$2.Fragment, {
34073
34058
  children: [/* @__PURE__ */ jsxRuntimeExports.jsx(NativeSelectSelect$1, {
34074
34059
  ownerState,
@@ -34213,7 +34198,7 @@ function areEqualValues$1(a, b) {
34213
34198
  function isEmpty$3(display) {
34214
34199
  return display == null || typeof display === "string" && !display.trim();
34215
34200
  }
34216
- const useUtilityClasses$E = (ownerState) => {
34201
+ const useUtilityClasses$F = (ownerState) => {
34217
34202
  const {
34218
34203
  classes,
34219
34204
  variant,
@@ -34531,7 +34516,7 @@ const SelectInput$1 = /* @__PURE__ */ React$2.forwardRef(function SelectInput2(p
34531
34516
  open,
34532
34517
  error
34533
34518
  };
34534
- const classes = useUtilityClasses$E(ownerState);
34519
+ const classes = useUtilityClasses$F(ownerState);
34535
34520
  const paperProps = {
34536
34521
  ...MenuProps.PaperProps,
34537
34522
  ...MenuProps.slotProps?.paper
@@ -34767,7 +34752,7 @@ const ArrowDropDownIcon$1 = createSvgIcon$1(/* @__PURE__ */ jsxRuntimeExports.js
34767
34752
  d: "M7 10l5 5 5-5z"
34768
34753
  }), "ArrowDropDown");
34769
34754
 
34770
- const useUtilityClasses$D = (ownerState) => {
34755
+ const useUtilityClasses$E = (ownerState) => {
34771
34756
  const {
34772
34757
  classes
34773
34758
  } = ownerState;
@@ -34824,7 +34809,7 @@ const Select$2 = /* @__PURE__ */ React$2.forwardRef(function Select2(inProps, re
34824
34809
  variant,
34825
34810
  classes: classesProp
34826
34811
  };
34827
- const classes = useUtilityClasses$D(ownerState);
34812
+ const classes = useUtilityClasses$E(ownerState);
34828
34813
  const {
34829
34814
  root,
34830
34815
  ...restOfClasses
@@ -35048,7 +35033,7 @@ const variantComponent$1 = {
35048
35033
  filled: FilledInput$1,
35049
35034
  outlined: OutlinedInput$1
35050
35035
  };
35051
- const useUtilityClasses$C = (ownerState) => {
35036
+ const useUtilityClasses$D = (ownerState) => {
35052
35037
  const {
35053
35038
  classes
35054
35039
  } = ownerState;
@@ -35116,7 +35101,7 @@ const TextField$1 = /* @__PURE__ */ React$2.forwardRef(function TextField2(inPro
35116
35101
  select,
35117
35102
  variant
35118
35103
  };
35119
- const classes = useUtilityClasses$C(ownerState);
35104
+ const classes = useUtilityClasses$D(ownerState);
35120
35105
  if (process.env.NODE_ENV !== "production") {
35121
35106
  if (select && !children) {
35122
35107
  console.error("MUI: `children` must be passed when using the `TextField` component with `select`.");
@@ -35446,7 +35431,7 @@ const overridesResolver$1 = (props, styles) => {
35446
35431
  } = props;
35447
35432
  return [styles.root, styles[`position${capitalize(ownerState.position)}`], ownerState.disablePointerEvents === true && styles.disablePointerEvents, styles[ownerState.variant]];
35448
35433
  };
35449
- const useUtilityClasses$B = (ownerState) => {
35434
+ const useUtilityClasses$C = (ownerState) => {
35450
35435
  const {
35451
35436
  classes,
35452
35437
  disablePointerEvents,
@@ -35539,7 +35524,7 @@ const InputAdornment = /* @__PURE__ */ React$2.forwardRef(function InputAdornmen
35539
35524
  position,
35540
35525
  variant
35541
35526
  };
35542
- const classes = useUtilityClasses$B(ownerState);
35527
+ const classes = useUtilityClasses$C(ownerState);
35543
35528
  return /* @__PURE__ */ jsxRuntimeExports.jsx(FormControlContext$1.Provider, {
35544
35529
  value: null,
35545
35530
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(InputAdornmentRoot, {
@@ -35627,7 +35612,7 @@ if (process.env.NODE_ENV !== "production") {
35627
35612
  ButtonGroupButtonContext$1.displayName = "ButtonGroupButtonContext";
35628
35613
  }
35629
35614
 
35630
- const useUtilityClasses$A = (ownerState) => {
35615
+ const useUtilityClasses$B = (ownerState) => {
35631
35616
  const {
35632
35617
  color,
35633
35618
  disableElevation,
@@ -35956,7 +35941,7 @@ const Button$2 = /* @__PURE__ */ React$2.forwardRef(function Button2(inProps, re
35956
35941
  type,
35957
35942
  variant
35958
35943
  };
35959
- const classes = useUtilityClasses$A(ownerState);
35944
+ const classes = useUtilityClasses$B(ownerState);
35960
35945
  const startIcon = startIconProp && /* @__PURE__ */ jsxRuntimeExports.jsx(ButtonStartIcon$1, {
35961
35946
  className: classes.startIcon,
35962
35947
  ownerState,
@@ -36089,7 +36074,7 @@ function getListItemSecondaryActionClassesUtilityClass(slot) {
36089
36074
  }
36090
36075
  generateUtilityClasses("MuiListItemSecondaryAction", ["root", "disableGutters"]);
36091
36076
 
36092
- const useUtilityClasses$z = (ownerState) => {
36077
+ const useUtilityClasses$A = (ownerState) => {
36093
36078
  const {
36094
36079
  disableGutters,
36095
36080
  classes
@@ -36136,7 +36121,7 @@ const ListItemSecondaryAction = /* @__PURE__ */ React$2.forwardRef(function List
36136
36121
  ...props,
36137
36122
  disableGutters: context.disableGutters
36138
36123
  };
36139
- const classes = useUtilityClasses$z(ownerState);
36124
+ const classes = useUtilityClasses$A(ownerState);
36140
36125
  return /* @__PURE__ */ jsxRuntimeExports.jsx(ListItemSecondaryActionRoot, {
36141
36126
  className: clsx(classes.root, className),
36142
36127
  ownerState,
@@ -36174,7 +36159,7 @@ const overridesResolver = (props, styles) => {
36174
36159
  } = props;
36175
36160
  return [styles.root, ownerState.dense && styles.dense, ownerState.alignItems === "flex-start" && styles.alignItemsFlexStart, ownerState.divider && styles.divider, !ownerState.disableGutters && styles.gutters, !ownerState.disablePadding && styles.padding, ownerState.hasSecondaryAction && styles.secondaryAction];
36176
36161
  };
36177
- const useUtilityClasses$y = (ownerState) => {
36162
+ const useUtilityClasses$z = (ownerState) => {
36178
36163
  const {
36179
36164
  alignItems,
36180
36165
  classes,
@@ -36341,7 +36326,7 @@ const ListItem = /* @__PURE__ */ React$2.forwardRef(function ListItem2(inProps,
36341
36326
  divider,
36342
36327
  hasSecondaryAction
36343
36328
  };
36344
- const classes = useUtilityClasses$y(ownerState);
36329
+ const classes = useUtilityClasses$z(ownerState);
36345
36330
  const handleRef = useForkRef(listItemRef, ref);
36346
36331
  const Root = slots.root || components.Root || ListItemRoot;
36347
36332
  const rootProps = slotProps.root || componentsProps.root || {};
@@ -36532,7 +36517,7 @@ function getDialogTitleUtilityClass(slot) {
36532
36517
  }
36533
36518
  const dialogTitleClasses = generateUtilityClasses("MuiDialogTitle", ["root"]);
36534
36519
 
36535
- const useUtilityClasses$x = (ownerState) => {
36520
+ const useUtilityClasses$y = (ownerState) => {
36536
36521
  const {
36537
36522
  classes,
36538
36523
  dividers
@@ -36593,7 +36578,7 @@ const DialogContent = /* @__PURE__ */ React$2.forwardRef(function DialogContent2
36593
36578
  ...props,
36594
36579
  dividers
36595
36580
  };
36596
- const classes = useUtilityClasses$x(ownerState);
36581
+ const classes = useUtilityClasses$y(ownerState);
36597
36582
  return /* @__PURE__ */ jsxRuntimeExports.jsx(DialogContentRoot, {
36598
36583
  className: clsx(classes.root, className),
36599
36584
  ownerState,
@@ -36647,7 +36632,7 @@ const DialogBackdrop = styled(Backdrop$1, {
36647
36632
  // Improve scrollable dialog support.
36648
36633
  zIndex: -1
36649
36634
  });
36650
- const useUtilityClasses$w = (ownerState) => {
36635
+ const useUtilityClasses$x = (ownerState) => {
36651
36636
  const {
36652
36637
  classes,
36653
36638
  scroll,
@@ -36850,7 +36835,7 @@ const Dialog = /* @__PURE__ */ React$2.forwardRef(function Dialog2(inProps, ref)
36850
36835
  maxWidth,
36851
36836
  scroll
36852
36837
  };
36853
- const classes = useUtilityClasses$w(ownerState);
36838
+ const classes = useUtilityClasses$x(ownerState);
36854
36839
  const backdropClick = React$2.useRef();
36855
36840
  const handleMouseDown = (event) => {
36856
36841
  backdropClick.current = event.target === event.currentTarget;
@@ -37490,7 +37475,7 @@ function getButtonBaseUtilityClass(slot) {
37490
37475
  const buttonBaseClasses = generateUtilityClasses$1("MuiButtonBase", ["root", "disabled", "focusVisible"]);
37491
37476
 
37492
37477
  const _excluded$s = ["action", "centerRipple", "children", "className", "component", "disabled", "disableRipple", "disableTouchRipple", "focusRipple", "focusVisibleClassName", "LinkComponent", "onBlur", "onClick", "onContextMenu", "onDragLeave", "onFocus", "onFocusVisible", "onKeyDown", "onKeyUp", "onMouseDown", "onMouseLeave", "onMouseUp", "onTouchEnd", "onTouchMove", "onTouchStart", "tabIndex", "TouchRippleProps", "touchRippleRef", "type"];
37493
- const useUtilityClasses$v = (ownerState) => {
37478
+ const useUtilityClasses$w = (ownerState) => {
37494
37479
  const {
37495
37480
  disabled,
37496
37481
  focusVisible,
@@ -37738,7 +37723,7 @@ const ButtonBase = /* @__PURE__ */ React$2.forwardRef(function ButtonBase2(inPro
37738
37723
  tabIndex,
37739
37724
  focusVisible
37740
37725
  });
37741
- const classes = useUtilityClasses$v(ownerState);
37726
+ const classes = useUtilityClasses$w(ownerState);
37742
37727
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(ButtonBaseRoot, _extends$1({
37743
37728
  as: ComponentProp,
37744
37729
  className: clsx(classes.root, className),
@@ -37949,7 +37934,7 @@ function getSvgIconUtilityClass(slot) {
37949
37934
  generateUtilityClasses$1("MuiSvgIcon", ["root", "colorPrimary", "colorSecondary", "colorAction", "colorError", "colorDisabled", "fontSizeInherit", "fontSizeSmall", "fontSizeMedium", "fontSizeLarge"]);
37950
37935
 
37951
37936
  const _excluded$r = ["children", "className", "color", "component", "fontSize", "htmlColor", "inheritViewBox", "titleAccess", "viewBox"];
37952
- const useUtilityClasses$u = (ownerState) => {
37937
+ const useUtilityClasses$v = (ownerState) => {
37953
37938
  const {
37954
37939
  color,
37955
37940
  fontSize,
@@ -38030,7 +38015,7 @@ const SvgIcon = /* @__PURE__ */ React$2.forwardRef(function SvgIcon2(inProps, re
38030
38015
  if (!inheritViewBox) {
38031
38016
  more.viewBox = viewBox;
38032
38017
  }
38033
- const classes = useUtilityClasses$u(ownerState);
38018
+ const classes = useUtilityClasses$v(ownerState);
38034
38019
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(SvgIconRoot, _extends$1({
38035
38020
  as: component,
38036
38021
  className: clsx(classes.root, className),
@@ -38449,7 +38434,7 @@ if (process.env.NODE_ENV !== "production") {
38449
38434
  }
38450
38435
 
38451
38436
  const _excluded$p = ["children", "color", "component", "className", "disabled", "disableElevation", "disableFocusRipple", "endIcon", "focusVisibleClassName", "fullWidth", "size", "startIcon", "type", "variant"];
38452
- const useUtilityClasses$t = (ownerState) => {
38437
+ const useUtilityClasses$u = (ownerState) => {
38453
38438
  const {
38454
38439
  color,
38455
38440
  disableElevation,
@@ -38686,7 +38671,7 @@ const Button$1 = /* @__PURE__ */ React$2.forwardRef(function Button2(inProps, re
38686
38671
  type,
38687
38672
  variant
38688
38673
  });
38689
- const classes = useUtilityClasses$t(ownerState);
38674
+ const classes = useUtilityClasses$u(ownerState);
38690
38675
  const startIcon = startIconProp && /* @__PURE__ */ jsxRuntimeExports.jsx(ButtonStartIcon, {
38691
38676
  className: classes.startIcon,
38692
38677
  ownerState,
@@ -38813,7 +38798,7 @@ function getToolbarUtilityClass(slot) {
38813
38798
  generateUtilityClasses$1("MuiToolbar", ["root", "gutters", "regular", "dense"]);
38814
38799
 
38815
38800
  const _excluded$o = ["className", "component", "disableGutters", "variant"];
38816
- const useUtilityClasses$s = (ownerState) => {
38801
+ const useUtilityClasses$t = (ownerState) => {
38817
38802
  const {
38818
38803
  classes,
38819
38804
  disableGutters,
@@ -38869,7 +38854,7 @@ const Toolbar = /* @__PURE__ */ React$2.forwardRef(function Toolbar2(inProps, re
38869
38854
  disableGutters,
38870
38855
  variant
38871
38856
  });
38872
- const classes = useUtilityClasses$s(ownerState);
38857
+ const classes = useUtilityClasses$t(ownerState);
38873
38858
  return /* @__PURE__ */ jsxRuntimeExports.jsx(ToolbarRoot, _extends$1({
38874
38859
  as: component,
38875
38860
  className: clsx(classes.root, className),
@@ -39627,7 +39612,7 @@ function getBackdropUtilityClass(slot) {
39627
39612
  generateUtilityClasses$1("MuiBackdrop", ["root", "invisible"]);
39628
39613
 
39629
39614
  const _excluded$m = ["children", "className", "component", "components", "componentsProps", "invisible", "open", "slotProps", "slots", "TransitionComponent", "transitionDuration"];
39630
- const useUtilityClasses$r = (ownerState) => {
39615
+ const useUtilityClasses$s = (ownerState) => {
39631
39616
  const {
39632
39617
  classes,
39633
39618
  invisible
@@ -39685,7 +39670,7 @@ const Backdrop = /* @__PURE__ */ React$2.forwardRef(function Backdrop2(inProps,
39685
39670
  component,
39686
39671
  invisible
39687
39672
  });
39688
- const classes = useUtilityClasses$r(ownerState);
39673
+ const classes = useUtilityClasses$s(ownerState);
39689
39674
  const rootSlotProps = (_slotProps$root = slotProps.root) != null ? _slotProps$root : componentsProps.root;
39690
39675
  return /* @__PURE__ */ jsxRuntimeExports.jsx(TransitionComponent, _extends$1({
39691
39676
  in: open,
@@ -39964,7 +39949,7 @@ function getModalUtilityClass(slot) {
39964
39949
  generateUtilityClasses$1("MuiModal", ["root", "hidden", "backdrop"]);
39965
39950
 
39966
39951
  const _excluded$l = ["BackdropComponent", "BackdropProps", "classes", "className", "closeAfterTransition", "children", "container", "component", "components", "componentsProps", "disableAutoFocus", "disableEnforceFocus", "disableEscapeKeyDown", "disablePortal", "disableRestoreFocus", "disableScrollLock", "hideBackdrop", "keepMounted", "onBackdropClick", "onClose", "onTransitionEnter", "onTransitionExited", "open", "slotProps", "slots", "theme"];
39967
- const useUtilityClasses$q = (ownerState) => {
39952
+ const useUtilityClasses$r = (ownerState) => {
39968
39953
  const {
39969
39954
  open,
39970
39955
  exited,
@@ -40062,7 +40047,7 @@ const Modal = /* @__PURE__ */ React$2.forwardRef(function Modal2(inProps, ref) {
40062
40047
  const ownerState = _extends$1({}, propsWithDefaults, {
40063
40048
  exited
40064
40049
  });
40065
- const classes = useUtilityClasses$q(ownerState);
40050
+ const classes = useUtilityClasses$r(ownerState);
40066
40051
  const childProps = {};
40067
40052
  if (children.props.tabIndex === void 0) {
40068
40053
  childProps.tabIndex = "-1";
@@ -40317,7 +40302,7 @@ function getPaperUtilityClass(slot) {
40317
40302
  generateUtilityClasses$1("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"]);
40318
40303
 
40319
40304
  const _excluded$k = ["className", "component", "elevation", "square", "variant"];
40320
- const useUtilityClasses$p = (ownerState) => {
40305
+ const useUtilityClasses$q = (ownerState) => {
40321
40306
  const {
40322
40307
  square,
40323
40308
  elevation,
@@ -40377,7 +40362,7 @@ const Paper = /* @__PURE__ */ React$2.forwardRef(function Paper2(inProps, ref) {
40377
40362
  square,
40378
40363
  variant
40379
40364
  });
40380
- const classes = useUtilityClasses$p(ownerState);
40365
+ const classes = useUtilityClasses$q(ownerState);
40381
40366
  if (process.env.NODE_ENV !== "production") {
40382
40367
  const theme = useTheme$4();
40383
40368
  if (theme.shadows[elevation] === void 0) {
@@ -40450,7 +40435,7 @@ function getTypographyUtilityClass(slot) {
40450
40435
  generateUtilityClasses$1("MuiTypography", ["root", "h1", "h2", "h3", "h4", "h5", "h6", "subtitle1", "subtitle2", "body1", "body2", "inherit", "button", "caption", "overline", "alignLeft", "alignRight", "alignCenter", "alignJustify", "noWrap", "gutterBottom", "paragraph"]);
40451
40436
 
40452
40437
  const _excluded$j = ["align", "className", "component", "gutterBottom", "noWrap", "paragraph", "variant", "variantMapping"];
40453
- const useUtilityClasses$o = (ownerState) => {
40438
+ const useUtilityClasses$p = (ownerState) => {
40454
40439
  const {
40455
40440
  align,
40456
40441
  gutterBottom,
@@ -40546,7 +40531,7 @@ const Typography = /* @__PURE__ */ React$2.forwardRef(function Typography2(inPro
40546
40531
  variantMapping
40547
40532
  });
40548
40533
  const Component = component || (paragraph ? "p" : variantMapping[variant] || defaultVariantMapping[variant]) || "span";
40549
- const classes = useUtilityClasses$o(ownerState);
40534
+ const classes = useUtilityClasses$p(ownerState);
40550
40535
  return /* @__PURE__ */ jsxRuntimeExports.jsx(TypographyRoot, _extends$1({
40551
40536
  as: Component,
40552
40537
  ref,
@@ -40883,7 +40868,7 @@ const inputOverridesResolver = (props, styles) => {
40883
40868
  } = props;
40884
40869
  return [styles.input, ownerState.size === "small" && styles.inputSizeSmall, ownerState.multiline && styles.inputMultiline, ownerState.type === "search" && styles.inputTypeSearch, ownerState.startAdornment && styles.inputAdornedStart, ownerState.endAdornment && styles.inputAdornedEnd, ownerState.hiddenLabel && styles.inputHiddenLabel];
40885
40870
  };
40886
- const useUtilityClasses$n = (ownerState) => {
40871
+ const useUtilityClasses$o = (ownerState) => {
40887
40872
  const {
40888
40873
  classes,
40889
40874
  color,
@@ -41255,7 +41240,7 @@ const InputBase = /* @__PURE__ */ React$2.forwardRef(function InputBase2(inProps
41255
41240
  startAdornment,
41256
41241
  type
41257
41242
  });
41258
- const classes = useUtilityClasses$n(ownerState);
41243
+ const classes = useUtilityClasses$o(ownerState);
41259
41244
  const Root = slots.root || components.Root || InputBaseRoot;
41260
41245
  const rootProps = slotProps.root || componentsProps.root || {};
41261
41246
  const Input = slots.input || components.Input || InputBaseComponent;
@@ -41542,7 +41527,7 @@ function getInputUtilityClass(slot) {
41542
41527
  const inputClasses = _extends$1({}, inputBaseClasses, generateUtilityClasses$1("MuiInput", ["root", "underline", "input"]));
41543
41528
 
41544
41529
  const _excluded$g = ["disableUnderline", "components", "componentsProps", "fullWidth", "inputComponent", "multiline", "slotProps", "slots", "type"];
41545
- const useUtilityClasses$m = (ownerState) => {
41530
+ const useUtilityClasses$n = (ownerState) => {
41546
41531
  const {
41547
41532
  classes,
41548
41533
  disableUnderline
@@ -41654,7 +41639,7 @@ const Input = /* @__PURE__ */ React$2.forwardRef(function Input2(inProps, ref) {
41654
41639
  slots = {},
41655
41640
  type = "text"
41656
41641
  } = props, other = _objectWithoutPropertiesLoose(props, _excluded$g);
41657
- const classes = useUtilityClasses$m(props);
41642
+ const classes = useUtilityClasses$n(props);
41658
41643
  const ownerState = {
41659
41644
  disableUnderline
41660
41645
  };
@@ -41875,7 +41860,7 @@ function getFilledInputUtilityClass(slot) {
41875
41860
  const filledInputClasses = _extends$1({}, inputBaseClasses, generateUtilityClasses$1("MuiFilledInput", ["root", "underline", "input"]));
41876
41861
 
41877
41862
  const _excluded$f = ["disableUnderline", "components", "componentsProps", "fullWidth", "hiddenLabel", "inputComponent", "multiline", "slotProps", "slots", "type"];
41878
- const useUtilityClasses$l = (ownerState) => {
41863
+ const useUtilityClasses$m = (ownerState) => {
41879
41864
  const {
41880
41865
  classes,
41881
41866
  disableUnderline
@@ -42067,7 +42052,7 @@ const FilledInput = /* @__PURE__ */ React$2.forwardRef(function FilledInput2(inP
42067
42052
  multiline,
42068
42053
  type
42069
42054
  });
42070
- const classes = useUtilityClasses$l(props);
42055
+ const classes = useUtilityClasses$m(props);
42071
42056
  const filledInputComponentsProps = {
42072
42057
  root: {
42073
42058
  ownerState
@@ -42420,7 +42405,7 @@ function getOutlinedInputUtilityClass(slot) {
42420
42405
  const outlinedInputClasses = _extends$1({}, inputBaseClasses, generateUtilityClasses$1("MuiOutlinedInput", ["root", "notchedOutline", "input"]));
42421
42406
 
42422
42407
  const _excluded$d = ["components", "fullWidth", "inputComponent", "label", "multiline", "notched", "slots", "type"];
42423
- const useUtilityClasses$k = (ownerState) => {
42408
+ const useUtilityClasses$l = (ownerState) => {
42424
42409
  const {
42425
42410
  classes
42426
42411
  } = ownerState;
@@ -42538,7 +42523,7 @@ const OutlinedInput = /* @__PURE__ */ React$2.forwardRef(function OutlinedInput2
42538
42523
  slots = {},
42539
42524
  type = "text"
42540
42525
  } = props, other = _objectWithoutPropertiesLoose(props, _excluded$d);
42541
- const classes = useUtilityClasses$k(props);
42526
+ const classes = useUtilityClasses$l(props);
42542
42527
  const muiFormControl = useFormControl();
42543
42528
  const fcs = formControlState({
42544
42529
  props,
@@ -42757,7 +42742,7 @@ function getFormLabelUtilityClasses(slot) {
42757
42742
  const formLabelClasses = generateUtilityClasses$1("MuiFormLabel", ["root", "colorSecondary", "focused", "disabled", "error", "filled", "required", "asterisk"]);
42758
42743
 
42759
42744
  const _excluded$c = ["children", "className", "color", "component", "disabled", "error", "filled", "focused", "required"];
42760
- const useUtilityClasses$j = (ownerState) => {
42745
+ const useUtilityClasses$k = (ownerState) => {
42761
42746
  const {
42762
42747
  classes,
42763
42748
  color,
@@ -42836,7 +42821,7 @@ const FormLabel = /* @__PURE__ */ React$2.forwardRef(function FormLabel2(inProps
42836
42821
  focused: fcs.focused,
42837
42822
  required: fcs.required
42838
42823
  });
42839
- const classes = useUtilityClasses$j(ownerState);
42824
+ const classes = useUtilityClasses$k(ownerState);
42840
42825
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(FormLabelRoot, _extends$1({
42841
42826
  as: component,
42842
42827
  ownerState,
@@ -42911,7 +42896,7 @@ function getInputLabelUtilityClasses(slot) {
42911
42896
  generateUtilityClasses$1("MuiInputLabel", ["root", "focused", "disabled", "error", "required", "asterisk", "formControl", "sizeSmall", "shrink", "animated", "standard", "filled", "outlined"]);
42912
42897
 
42913
42898
  const _excluded$b = ["disableAnimation", "margin", "shrink", "variant", "className"];
42914
- const useUtilityClasses$i = (ownerState) => {
42899
+ const useUtilityClasses$j = (ownerState) => {
42915
42900
  const {
42916
42901
  classes,
42917
42902
  formControl,
@@ -43031,7 +43016,7 @@ const InputLabel = /* @__PURE__ */ React$2.forwardRef(function InputLabel2(inPro
43031
43016
  required: fcs.required,
43032
43017
  focused: fcs.focused
43033
43018
  });
43034
- const classes = useUtilityClasses$i(ownerState);
43019
+ const classes = useUtilityClasses$j(ownerState);
43035
43020
  return /* @__PURE__ */ jsxRuntimeExports.jsx(InputLabelRoot, _extends$1({
43036
43021
  "data-shrink": shrink,
43037
43022
  ownerState,
@@ -43115,7 +43100,7 @@ function getFormControlUtilityClasses(slot) {
43115
43100
  generateUtilityClasses$1("MuiFormControl", ["root", "marginNone", "marginNormal", "marginDense", "fullWidth", "disabled"]);
43116
43101
 
43117
43102
  const _excluded$a = ["children", "className", "color", "component", "disabled", "error", "focused", "fullWidth", "hiddenLabel", "margin", "required", "size", "variant"];
43118
- const useUtilityClasses$h = (ownerState) => {
43103
+ const useUtilityClasses$i = (ownerState) => {
43119
43104
  const {
43120
43105
  classes,
43121
43106
  margin,
@@ -43187,7 +43172,7 @@ const FormControl = /* @__PURE__ */ React$2.forwardRef(function FormControl2(inP
43187
43172
  size,
43188
43173
  variant
43189
43174
  });
43190
- const classes = useUtilityClasses$h(ownerState);
43175
+ const classes = useUtilityClasses$i(ownerState);
43191
43176
  const [adornedStart, setAdornedStart] = React$2.useState(() => {
43192
43177
  let initialAdornedStart = false;
43193
43178
  if (children) {
@@ -43364,7 +43349,7 @@ const formHelperTextClasses = generateUtilityClasses$1("MuiFormHelperText", ["ro
43364
43349
 
43365
43350
  var _span$1;
43366
43351
  const _excluded$9 = ["children", "className", "component", "disabled", "error", "filled", "focused", "margin", "required", "variant"];
43367
- const useUtilityClasses$g = (ownerState) => {
43352
+ const useUtilityClasses$h = (ownerState) => {
43368
43353
  const {
43369
43354
  classes,
43370
43355
  contained,
@@ -43439,7 +43424,7 @@ const FormHelperText = /* @__PURE__ */ React$2.forwardRef(function FormHelperTex
43439
43424
  focused: fcs.focused,
43440
43425
  required: fcs.required
43441
43426
  });
43442
- const classes = useUtilityClasses$g(ownerState);
43427
+ const classes = useUtilityClasses$h(ownerState);
43443
43428
  return /* @__PURE__ */ jsxRuntimeExports.jsx(FormHelperTextRoot, _extends$1({
43444
43429
  as: component,
43445
43430
  ownerState,
@@ -43525,7 +43510,7 @@ function getListUtilityClass(slot) {
43525
43510
  generateUtilityClasses$1("MuiList", ["root", "padding", "dense", "subheader"]);
43526
43511
 
43527
43512
  const _excluded$8 = ["children", "className", "component", "dense", "disablePadding", "subheader"];
43528
- const useUtilityClasses$f = (ownerState) => {
43513
+ const useUtilityClasses$g = (ownerState) => {
43529
43514
  const {
43530
43515
  classes,
43531
43516
  disablePadding,
@@ -43580,7 +43565,7 @@ const List = /* @__PURE__ */ React$2.forwardRef(function List2(inProps, ref) {
43580
43565
  dense,
43581
43566
  disablePadding
43582
43567
  });
43583
- const classes = useUtilityClasses$f(ownerState);
43568
+ const classes = useUtilityClasses$g(ownerState);
43584
43569
  return /* @__PURE__ */ jsxRuntimeExports.jsx(ListContext.Provider, {
43585
43570
  value: context,
43586
43571
  children: /* @__PURE__ */ jsxRuntimeExports.jsxs(ListRoot, _extends$1({
@@ -44134,7 +44119,7 @@ function getTransformOriginValue(transformOrigin) {
44134
44119
  function resolveAnchorEl(anchorEl) {
44135
44120
  return typeof anchorEl === "function" ? anchorEl() : anchorEl;
44136
44121
  }
44137
- const useUtilityClasses$e = (ownerState) => {
44122
+ const useUtilityClasses$f = (ownerState) => {
44138
44123
  const {
44139
44124
  classes
44140
44125
  } = ownerState;
@@ -44215,7 +44200,7 @@ const Popover = /* @__PURE__ */ React$2.forwardRef(function Popover2(inProps, re
44215
44200
  transitionDuration: transitionDurationProp,
44216
44201
  TransitionProps
44217
44202
  });
44218
- const classes = useUtilityClasses$e(ownerState);
44203
+ const classes = useUtilityClasses$f(ownerState);
44219
44204
  const getAnchorOffset = React$2.useCallback(() => {
44220
44205
  if (anchorReference === "anchorPosition") {
44221
44206
  if (process.env.NODE_ENV !== "production") {
@@ -44599,7 +44584,7 @@ const LTR_ORIGIN = {
44599
44584
  vertical: "top",
44600
44585
  horizontal: "left"
44601
44586
  };
44602
- const useUtilityClasses$d = (ownerState) => {
44587
+ const useUtilityClasses$e = (ownerState) => {
44603
44588
  const {
44604
44589
  classes
44605
44590
  } = ownerState;
@@ -44671,7 +44656,7 @@ const Menu = /* @__PURE__ */ React$2.forwardRef(function Menu2(inProps, ref) {
44671
44656
  TransitionProps,
44672
44657
  variant
44673
44658
  });
44674
- const classes = useUtilityClasses$d(ownerState);
44659
+ const classes = useUtilityClasses$e(ownerState);
44675
44660
  const autoFocusItem = autoFocus && !disableAutoFocusItem && open;
44676
44661
  const menuListActionsRef = React$2.useRef(null);
44677
44662
  const handleEntering = (element, isAppearing) => {
@@ -44873,7 +44858,7 @@ function getNativeSelectUtilityClasses(slot) {
44873
44858
  const nativeSelectClasses = generateUtilityClasses$1("MuiNativeSelect", ["root", "select", "multiple", "filled", "outlined", "standard", "disabled", "icon", "iconOpen", "iconFilled", "iconOutlined", "iconStandard", "nativeInput", "error"]);
44874
44859
 
44875
44860
  const _excluded$3 = ["className", "disabled", "error", "IconComponent", "inputRef", "variant"];
44876
- const useUtilityClasses$c = (ownerState) => {
44861
+ const useUtilityClasses$d = (ownerState) => {
44877
44862
  const {
44878
44863
  classes,
44879
44864
  variant,
@@ -45003,7 +44988,7 @@ const NativeSelectInput = /* @__PURE__ */ React$2.forwardRef(function NativeSele
45003
44988
  variant,
45004
44989
  error
45005
44990
  });
45006
- const classes = useUtilityClasses$c(ownerState);
44991
+ const classes = useUtilityClasses$d(ownerState);
45007
44992
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(React$2.Fragment, {
45008
44993
  children: [/* @__PURE__ */ jsxRuntimeExports.jsx(NativeSelectSelect, _extends$1({
45009
44994
  ownerState,
@@ -45148,7 +45133,7 @@ function areEqualValues(a, b) {
45148
45133
  function isEmpty$1(display) {
45149
45134
  return display == null || typeof display === "string" && !display.trim();
45150
45135
  }
45151
- const useUtilityClasses$b = (ownerState) => {
45136
+ const useUtilityClasses$c = (ownerState) => {
45152
45137
  const {
45153
45138
  classes,
45154
45139
  variant,
@@ -45463,7 +45448,7 @@ const SelectInput = /* @__PURE__ */ React$2.forwardRef(function SelectInput2(pro
45463
45448
  open,
45464
45449
  error
45465
45450
  });
45466
- const classes = useUtilityClasses$b(ownerState);
45451
+ const classes = useUtilityClasses$c(ownerState);
45467
45452
  const paperProps = _extends$1({}, MenuProps.PaperProps, (_MenuProps$slotProps = MenuProps.slotProps) == null ? void 0 : _MenuProps$slotProps.paper);
45468
45453
  const listboxId = useId$1();
45469
45454
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(React$2.Fragment, {
@@ -45691,7 +45676,7 @@ const ArrowDropDownIcon = createSvgIcon(/* @__PURE__ */ jsxRuntimeExports.jsx("p
45691
45676
  }), "ArrowDropDown");
45692
45677
 
45693
45678
  const _excluded$1 = ["autoWidth", "children", "classes", "className", "defaultOpen", "displayEmpty", "IconComponent", "id", "input", "inputProps", "label", "labelId", "MenuProps", "multiple", "native", "onClose", "onOpen", "open", "renderValue", "SelectDisplayProps", "variant"], _excluded2 = ["root"];
45694
- const useUtilityClasses$a = (ownerState) => {
45679
+ const useUtilityClasses$b = (ownerState) => {
45695
45680
  const {
45696
45681
  classes
45697
45682
  } = ownerState;
@@ -45746,7 +45731,7 @@ const Select$1 = /* @__PURE__ */ React$2.forwardRef(function Select2(inProps, re
45746
45731
  variant,
45747
45732
  classes: classesProp
45748
45733
  });
45749
- const classes = useUtilityClasses$a(ownerState);
45734
+ const classes = useUtilityClasses$b(ownerState);
45750
45735
  const restOfClasses = _objectWithoutPropertiesLoose(classes, _excluded2);
45751
45736
  const InputComponent = input || {
45752
45737
  standard: /* @__PURE__ */ jsxRuntimeExports.jsx(StyledInput, {
@@ -45962,7 +45947,7 @@ const variantComponent = {
45962
45947
  filled: FilledInput,
45963
45948
  outlined: OutlinedInput
45964
45949
  };
45965
- const useUtilityClasses$9 = (ownerState) => {
45950
+ const useUtilityClasses$a = (ownerState) => {
45966
45951
  const {
45967
45952
  classes
45968
45953
  } = ownerState;
@@ -46026,7 +46011,7 @@ const TextField = /* @__PURE__ */ React$2.forwardRef(function TextField2(inProps
46026
46011
  select,
46027
46012
  variant
46028
46013
  });
46029
- const classes = useUtilityClasses$9(ownerState);
46014
+ const classes = useUtilityClasses$a(ownerState);
46030
46015
  if (process.env.NODE_ENV !== "production") {
46031
46016
  if (select && !children) {
46032
46017
  console.error("MUI: `children` must be passed when using the `TextField` component with `select`.");
@@ -47922,7 +47907,7 @@ function getCollapseUtilityClass(slot) {
47922
47907
  }
47923
47908
  generateUtilityClasses("MuiCollapse", ["root", "horizontal", "vertical", "entered", "hidden", "wrapper", "wrapperInner"]);
47924
47909
 
47925
- const useUtilityClasses$8 = (ownerState) => {
47910
+ const useUtilityClasses$9 = (ownerState) => {
47926
47911
  const {
47927
47912
  orientation,
47928
47913
  classes
@@ -48050,7 +48035,7 @@ const Collapse = /* @__PURE__ */ React$2.forwardRef(function Collapse2(inProps,
48050
48035
  orientation,
48051
48036
  collapsedSize: collapsedSizeProp
48052
48037
  };
48053
- const classes = useUtilityClasses$8(ownerState);
48038
+ const classes = useUtilityClasses$9(ownerState);
48054
48039
  const theme = useTheme();
48055
48040
  const timer = useTimeout();
48056
48041
  const wrapperRef = React$2.useRef(null);
@@ -48312,7 +48297,7 @@ function getAccordionUtilityClass(slot) {
48312
48297
  }
48313
48298
  const accordionClasses = generateUtilityClasses("MuiAccordion", ["root", "heading", "rounded", "expanded", "disabled", "gutters", "region"]);
48314
48299
 
48315
- const useUtilityClasses$7 = (ownerState) => {
48300
+ const useUtilityClasses$8 = (ownerState) => {
48316
48301
  const {
48317
48302
  classes,
48318
48303
  square,
@@ -48468,7 +48453,7 @@ const Accordion = /* @__PURE__ */ React$2.forwardRef(function Accordion2(inProps
48468
48453
  disableGutters,
48469
48454
  expanded
48470
48455
  };
48471
- const classes = useUtilityClasses$7(ownerState);
48456
+ const classes = useUtilityClasses$8(ownerState);
48472
48457
  const backwardCompatibleSlots = {
48473
48458
  transition: TransitionComponentProp,
48474
48459
  ...slots
@@ -48613,7 +48598,7 @@ function getAccordionDetailsUtilityClass(slot) {
48613
48598
  }
48614
48599
  generateUtilityClasses("MuiAccordionDetails", ["root"]);
48615
48600
 
48616
- const useUtilityClasses$6 = (ownerState) => {
48601
+ const useUtilityClasses$7 = (ownerState) => {
48617
48602
  const {
48618
48603
  classes
48619
48604
  } = ownerState;
@@ -48641,7 +48626,7 @@ const AccordionDetails = /* @__PURE__ */ React$2.forwardRef(function AccordionDe
48641
48626
  ...other
48642
48627
  } = props;
48643
48628
  const ownerState = props;
48644
- const classes = useUtilityClasses$6(ownerState);
48629
+ const classes = useUtilityClasses$7(ownerState);
48645
48630
  return /* @__PURE__ */ jsxRuntimeExports.jsx(AccordionDetailsRoot, {
48646
48631
  className: clsx(classes.root, className),
48647
48632
  ref,
@@ -48677,7 +48662,7 @@ function getAccordionSummaryUtilityClass(slot) {
48677
48662
  }
48678
48663
  const accordionSummaryClasses = generateUtilityClasses("MuiAccordionSummary", ["root", "expanded", "focusVisible", "disabled", "gutters", "contentGutters", "content", "expandIconWrapper"]);
48679
48664
 
48680
- const useUtilityClasses$5 = (ownerState) => {
48665
+ const useUtilityClasses$6 = (ownerState) => {
48681
48666
  const {
48682
48667
  classes,
48683
48668
  expanded,
@@ -48798,7 +48783,7 @@ const AccordionSummary = /* @__PURE__ */ React$2.forwardRef(function AccordionSu
48798
48783
  disabled,
48799
48784
  disableGutters
48800
48785
  };
48801
- const classes = useUtilityClasses$5(ownerState);
48786
+ const classes = useUtilityClasses$6(ownerState);
48802
48787
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(AccordionSummaryRoot, {
48803
48788
  focusRipple: false,
48804
48789
  disableRipple: true,
@@ -48862,6 +48847,476 @@ process.env.NODE_ENV !== "production" ? AccordionSummary.propTypes = {
48862
48847
  sx: PropTypes$1.oneOfType([PropTypes$1.arrayOf(PropTypes$1.oneOfType([PropTypes$1.func, PropTypes$1.object, PropTypes$1.bool])), PropTypes$1.func, PropTypes$1.object])
48863
48848
  } : void 0;
48864
48849
 
48850
+ function useBadge(parameters) {
48851
+ const {
48852
+ badgeContent: badgeContentProp,
48853
+ invisible: invisibleProp = false,
48854
+ max: maxProp = 99,
48855
+ showZero = false
48856
+ } = parameters;
48857
+ const prevProps = usePreviousProps({
48858
+ badgeContent: badgeContentProp,
48859
+ max: maxProp
48860
+ });
48861
+ let invisible = invisibleProp;
48862
+ if (invisibleProp === false && badgeContentProp === 0 && !showZero) {
48863
+ invisible = true;
48864
+ }
48865
+ const {
48866
+ badgeContent,
48867
+ max = maxProp
48868
+ } = invisible ? prevProps : parameters;
48869
+ const displayValue = badgeContent && Number(badgeContent) > max ? `${max}+` : badgeContent;
48870
+ return {
48871
+ badgeContent,
48872
+ invisible,
48873
+ max,
48874
+ displayValue
48875
+ };
48876
+ }
48877
+
48878
+ function getBadgeUtilityClass(slot) {
48879
+ return generateUtilityClass("MuiBadge", slot);
48880
+ }
48881
+ const badgeClasses = generateUtilityClasses("MuiBadge", [
48882
+ "root",
48883
+ "badge",
48884
+ "dot",
48885
+ "standard",
48886
+ "anchorOriginTopRight",
48887
+ "anchorOriginBottomRight",
48888
+ "anchorOriginTopLeft",
48889
+ "anchorOriginBottomLeft",
48890
+ "invisible",
48891
+ "colorError",
48892
+ "colorInfo",
48893
+ "colorPrimary",
48894
+ "colorSecondary",
48895
+ "colorSuccess",
48896
+ "colorWarning",
48897
+ "overlapRectangular",
48898
+ "overlapCircular",
48899
+ // TODO: v6 remove the overlap value from these class keys
48900
+ "anchorOriginTopLeftCircular",
48901
+ "anchorOriginTopLeftRectangular",
48902
+ "anchorOriginTopRightCircular",
48903
+ "anchorOriginTopRightRectangular",
48904
+ "anchorOriginBottomLeftCircular",
48905
+ "anchorOriginBottomLeftRectangular",
48906
+ "anchorOriginBottomRightCircular",
48907
+ "anchorOriginBottomRightRectangular"
48908
+ ]);
48909
+
48910
+ const RADIUS_STANDARD = 10;
48911
+ const RADIUS_DOT = 4;
48912
+ const useUtilityClasses$5 = (ownerState) => {
48913
+ const {
48914
+ color,
48915
+ anchorOrigin,
48916
+ invisible,
48917
+ overlap,
48918
+ variant,
48919
+ classes = {}
48920
+ } = ownerState;
48921
+ const slots = {
48922
+ root: ["root"],
48923
+ badge: ["badge", variant, invisible && "invisible", `anchorOrigin${capitalize(anchorOrigin.vertical)}${capitalize(anchorOrigin.horizontal)}`, `anchorOrigin${capitalize(anchorOrigin.vertical)}${capitalize(anchorOrigin.horizontal)}${capitalize(overlap)}`, `overlap${capitalize(overlap)}`, color !== "default" && `color${capitalize(color)}`]
48924
+ };
48925
+ return composeClasses(slots, getBadgeUtilityClass, classes);
48926
+ };
48927
+ const BadgeRoot = styled("span", {
48928
+ name: "MuiBadge",
48929
+ slot: "Root",
48930
+ overridesResolver: (props, styles) => styles.root
48931
+ })({
48932
+ position: "relative",
48933
+ display: "inline-flex",
48934
+ // For correct alignment with the text.
48935
+ verticalAlign: "middle",
48936
+ flexShrink: 0
48937
+ });
48938
+ const BadgeBadge = styled("span", {
48939
+ name: "MuiBadge",
48940
+ slot: "Badge",
48941
+ overridesResolver: (props, styles) => {
48942
+ const {
48943
+ ownerState
48944
+ } = props;
48945
+ return [styles.badge, styles[ownerState.variant], styles[`anchorOrigin${capitalize(ownerState.anchorOrigin.vertical)}${capitalize(ownerState.anchorOrigin.horizontal)}${capitalize(ownerState.overlap)}`], ownerState.color !== "default" && styles[`color${capitalize(ownerState.color)}`], ownerState.invisible && styles.invisible];
48946
+ }
48947
+ })(memoTheme(({
48948
+ theme
48949
+ }) => ({
48950
+ display: "flex",
48951
+ flexDirection: "row",
48952
+ flexWrap: "wrap",
48953
+ justifyContent: "center",
48954
+ alignContent: "center",
48955
+ alignItems: "center",
48956
+ position: "absolute",
48957
+ boxSizing: "border-box",
48958
+ fontFamily: theme.typography.fontFamily,
48959
+ fontWeight: theme.typography.fontWeightMedium,
48960
+ fontSize: theme.typography.pxToRem(12),
48961
+ minWidth: RADIUS_STANDARD * 2,
48962
+ lineHeight: 1,
48963
+ padding: "0 6px",
48964
+ height: RADIUS_STANDARD * 2,
48965
+ borderRadius: RADIUS_STANDARD,
48966
+ zIndex: 1,
48967
+ // Render the badge on top of potential ripples.
48968
+ transition: theme.transitions.create("transform", {
48969
+ easing: theme.transitions.easing.easeInOut,
48970
+ duration: theme.transitions.duration.enteringScreen
48971
+ }),
48972
+ variants: [...Object.entries(theme.palette).filter(createSimplePaletteValueFilter(["contrastText"])).map(([color]) => ({
48973
+ props: {
48974
+ color
48975
+ },
48976
+ style: {
48977
+ backgroundColor: (theme.vars || theme).palette[color].main,
48978
+ color: (theme.vars || theme).palette[color].contrastText
48979
+ }
48980
+ })), {
48981
+ props: {
48982
+ variant: "dot"
48983
+ },
48984
+ style: {
48985
+ borderRadius: RADIUS_DOT,
48986
+ height: RADIUS_DOT * 2,
48987
+ minWidth: RADIUS_DOT * 2,
48988
+ padding: 0
48989
+ }
48990
+ }, {
48991
+ props: ({
48992
+ ownerState
48993
+ }) => ownerState.anchorOrigin.vertical === "top" && ownerState.anchorOrigin.horizontal === "right" && ownerState.overlap === "rectangular",
48994
+ style: {
48995
+ top: 0,
48996
+ right: 0,
48997
+ transform: "scale(1) translate(50%, -50%)",
48998
+ transformOrigin: "100% 0%",
48999
+ [`&.${badgeClasses.invisible}`]: {
49000
+ transform: "scale(0) translate(50%, -50%)"
49001
+ }
49002
+ }
49003
+ }, {
49004
+ props: ({
49005
+ ownerState
49006
+ }) => ownerState.anchorOrigin.vertical === "bottom" && ownerState.anchorOrigin.horizontal === "right" && ownerState.overlap === "rectangular",
49007
+ style: {
49008
+ bottom: 0,
49009
+ right: 0,
49010
+ transform: "scale(1) translate(50%, 50%)",
49011
+ transformOrigin: "100% 100%",
49012
+ [`&.${badgeClasses.invisible}`]: {
49013
+ transform: "scale(0) translate(50%, 50%)"
49014
+ }
49015
+ }
49016
+ }, {
49017
+ props: ({
49018
+ ownerState
49019
+ }) => ownerState.anchorOrigin.vertical === "top" && ownerState.anchorOrigin.horizontal === "left" && ownerState.overlap === "rectangular",
49020
+ style: {
49021
+ top: 0,
49022
+ left: 0,
49023
+ transform: "scale(1) translate(-50%, -50%)",
49024
+ transformOrigin: "0% 0%",
49025
+ [`&.${badgeClasses.invisible}`]: {
49026
+ transform: "scale(0) translate(-50%, -50%)"
49027
+ }
49028
+ }
49029
+ }, {
49030
+ props: ({
49031
+ ownerState
49032
+ }) => ownerState.anchorOrigin.vertical === "bottom" && ownerState.anchorOrigin.horizontal === "left" && ownerState.overlap === "rectangular",
49033
+ style: {
49034
+ bottom: 0,
49035
+ left: 0,
49036
+ transform: "scale(1) translate(-50%, 50%)",
49037
+ transformOrigin: "0% 100%",
49038
+ [`&.${badgeClasses.invisible}`]: {
49039
+ transform: "scale(0) translate(-50%, 50%)"
49040
+ }
49041
+ }
49042
+ }, {
49043
+ props: ({
49044
+ ownerState
49045
+ }) => ownerState.anchorOrigin.vertical === "top" && ownerState.anchorOrigin.horizontal === "right" && ownerState.overlap === "circular",
49046
+ style: {
49047
+ top: "14%",
49048
+ right: "14%",
49049
+ transform: "scale(1) translate(50%, -50%)",
49050
+ transformOrigin: "100% 0%",
49051
+ [`&.${badgeClasses.invisible}`]: {
49052
+ transform: "scale(0) translate(50%, -50%)"
49053
+ }
49054
+ }
49055
+ }, {
49056
+ props: ({
49057
+ ownerState
49058
+ }) => ownerState.anchorOrigin.vertical === "bottom" && ownerState.anchorOrigin.horizontal === "right" && ownerState.overlap === "circular",
49059
+ style: {
49060
+ bottom: "14%",
49061
+ right: "14%",
49062
+ transform: "scale(1) translate(50%, 50%)",
49063
+ transformOrigin: "100% 100%",
49064
+ [`&.${badgeClasses.invisible}`]: {
49065
+ transform: "scale(0) translate(50%, 50%)"
49066
+ }
49067
+ }
49068
+ }, {
49069
+ props: ({
49070
+ ownerState
49071
+ }) => ownerState.anchorOrigin.vertical === "top" && ownerState.anchorOrigin.horizontal === "left" && ownerState.overlap === "circular",
49072
+ style: {
49073
+ top: "14%",
49074
+ left: "14%",
49075
+ transform: "scale(1) translate(-50%, -50%)",
49076
+ transformOrigin: "0% 0%",
49077
+ [`&.${badgeClasses.invisible}`]: {
49078
+ transform: "scale(0) translate(-50%, -50%)"
49079
+ }
49080
+ }
49081
+ }, {
49082
+ props: ({
49083
+ ownerState
49084
+ }) => ownerState.anchorOrigin.vertical === "bottom" && ownerState.anchorOrigin.horizontal === "left" && ownerState.overlap === "circular",
49085
+ style: {
49086
+ bottom: "14%",
49087
+ left: "14%",
49088
+ transform: "scale(1) translate(-50%, 50%)",
49089
+ transformOrigin: "0% 100%",
49090
+ [`&.${badgeClasses.invisible}`]: {
49091
+ transform: "scale(0) translate(-50%, 50%)"
49092
+ }
49093
+ }
49094
+ }, {
49095
+ props: {
49096
+ invisible: true
49097
+ },
49098
+ style: {
49099
+ transition: theme.transitions.create("transform", {
49100
+ easing: theme.transitions.easing.easeInOut,
49101
+ duration: theme.transitions.duration.leavingScreen
49102
+ })
49103
+ }
49104
+ }]
49105
+ })));
49106
+ function getAnchorOrigin(anchorOrigin) {
49107
+ return {
49108
+ vertical: anchorOrigin?.vertical ?? "top",
49109
+ horizontal: anchorOrigin?.horizontal ?? "right"
49110
+ };
49111
+ }
49112
+ const Badge = /* @__PURE__ */ React$2.forwardRef(function Badge2(inProps, ref) {
49113
+ const props = useDefaultProps({
49114
+ props: inProps,
49115
+ name: "MuiBadge"
49116
+ });
49117
+ const {
49118
+ anchorOrigin: anchorOriginProp,
49119
+ className,
49120
+ classes: classesProp,
49121
+ component,
49122
+ components = {},
49123
+ componentsProps = {},
49124
+ children,
49125
+ overlap: overlapProp = "rectangular",
49126
+ color: colorProp = "default",
49127
+ invisible: invisibleProp = false,
49128
+ max: maxProp = 99,
49129
+ badgeContent: badgeContentProp,
49130
+ slots,
49131
+ slotProps,
49132
+ showZero = false,
49133
+ variant: variantProp = "standard",
49134
+ ...other
49135
+ } = props;
49136
+ const {
49137
+ badgeContent,
49138
+ invisible: invisibleFromHook,
49139
+ max,
49140
+ displayValue: displayValueFromHook
49141
+ } = useBadge({
49142
+ max: maxProp,
49143
+ invisible: invisibleProp,
49144
+ badgeContent: badgeContentProp,
49145
+ showZero
49146
+ });
49147
+ const prevProps = usePreviousProps({
49148
+ anchorOrigin: getAnchorOrigin(anchorOriginProp),
49149
+ color: colorProp,
49150
+ overlap: overlapProp,
49151
+ variant: variantProp,
49152
+ badgeContent: badgeContentProp
49153
+ });
49154
+ const invisible = invisibleFromHook || badgeContent == null && variantProp !== "dot";
49155
+ const {
49156
+ color = colorProp,
49157
+ overlap = overlapProp,
49158
+ anchorOrigin: anchorOriginPropProp,
49159
+ variant = variantProp
49160
+ } = invisible ? prevProps : props;
49161
+ const anchorOrigin = getAnchorOrigin(anchorOriginPropProp);
49162
+ const displayValue = variant !== "dot" ? displayValueFromHook : void 0;
49163
+ const ownerState = {
49164
+ ...props,
49165
+ badgeContent,
49166
+ invisible,
49167
+ max,
49168
+ displayValue,
49169
+ showZero,
49170
+ anchorOrigin,
49171
+ color,
49172
+ overlap,
49173
+ variant
49174
+ };
49175
+ const classes = useUtilityClasses$5(ownerState);
49176
+ const RootSlot = slots?.root ?? components.Root ?? BadgeRoot;
49177
+ const BadgeSlot = slots?.badge ?? components.Badge ?? BadgeBadge;
49178
+ const rootSlotProps = slotProps?.root ?? componentsProps.root;
49179
+ const badgeSlotProps = slotProps?.badge ?? componentsProps.badge;
49180
+ const rootProps = useSlotProps({
49181
+ elementType: RootSlot,
49182
+ externalSlotProps: rootSlotProps,
49183
+ externalForwardedProps: other,
49184
+ additionalProps: {
49185
+ ref,
49186
+ as: component
49187
+ },
49188
+ ownerState,
49189
+ className: clsx(rootSlotProps?.className, classes.root, className)
49190
+ });
49191
+ const badgeProps = useSlotProps({
49192
+ elementType: BadgeSlot,
49193
+ externalSlotProps: badgeSlotProps,
49194
+ ownerState,
49195
+ className: clsx(classes.badge, badgeSlotProps?.className)
49196
+ });
49197
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(RootSlot, {
49198
+ ...rootProps,
49199
+ children: [children, /* @__PURE__ */ jsxRuntimeExports.jsx(BadgeSlot, {
49200
+ ...badgeProps,
49201
+ children: displayValue
49202
+ })]
49203
+ });
49204
+ });
49205
+ process.env.NODE_ENV !== "production" ? Badge.propTypes = {
49206
+ // ┌────────────────────────────── Warning ──────────────────────────────┐
49207
+ // │ These PropTypes are generated from the TypeScript type definitions. │
49208
+ // │ To update them, edit the d.ts file and run `pnpm proptypes`. │
49209
+ // └─────────────────────────────────────────────────────────────────────┘
49210
+ /**
49211
+ * The anchor of the badge.
49212
+ * @default {
49213
+ * vertical: 'top',
49214
+ * horizontal: 'right',
49215
+ * }
49216
+ */
49217
+ anchorOrigin: PropTypes$1.shape({
49218
+ horizontal: PropTypes$1.oneOf(["left", "right"]),
49219
+ vertical: PropTypes$1.oneOf(["bottom", "top"])
49220
+ }),
49221
+ /**
49222
+ * The content rendered within the badge.
49223
+ */
49224
+ badgeContent: PropTypes$1.node,
49225
+ /**
49226
+ * The badge will be added relative to this node.
49227
+ */
49228
+ children: PropTypes$1.node,
49229
+ /**
49230
+ * Override or extend the styles applied to the component.
49231
+ */
49232
+ classes: PropTypes$1.object,
49233
+ /**
49234
+ * @ignore
49235
+ */
49236
+ className: PropTypes$1.string,
49237
+ /**
49238
+ * The color of the component.
49239
+ * It supports both default and custom theme colors, which can be added as shown in the
49240
+ * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).
49241
+ * @default 'default'
49242
+ */
49243
+ color: PropTypes$1.oneOfType([PropTypes$1.oneOf(["default", "primary", "secondary", "error", "info", "success", "warning"]), PropTypes$1.string]),
49244
+ /**
49245
+ * The component used for the root node.
49246
+ * Either a string to use a HTML element or a component.
49247
+ */
49248
+ component: PropTypes$1.elementType,
49249
+ /**
49250
+ * The components used for each slot inside.
49251
+ *
49252
+ * @deprecated use the `slots` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.
49253
+ *
49254
+ * @default {}
49255
+ */
49256
+ components: PropTypes$1.shape({
49257
+ Badge: PropTypes$1.elementType,
49258
+ Root: PropTypes$1.elementType
49259
+ }),
49260
+ /**
49261
+ * The extra props for the slot components.
49262
+ * You can override the existing props or add new ones.
49263
+ *
49264
+ * @deprecated use the `slotProps` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.
49265
+ *
49266
+ * @default {}
49267
+ */
49268
+ componentsProps: PropTypes$1.shape({
49269
+ badge: PropTypes$1.oneOfType([PropTypes$1.func, PropTypes$1.object]),
49270
+ root: PropTypes$1.oneOfType([PropTypes$1.func, PropTypes$1.object])
49271
+ }),
49272
+ /**
49273
+ * If `true`, the badge is invisible.
49274
+ * @default false
49275
+ */
49276
+ invisible: PropTypes$1.bool,
49277
+ /**
49278
+ * Max count to show.
49279
+ * @default 99
49280
+ */
49281
+ max: PropTypes$1.number,
49282
+ /**
49283
+ * Wrapped shape the badge should overlap.
49284
+ * @default 'rectangular'
49285
+ */
49286
+ overlap: PropTypes$1.oneOf(["circular", "rectangular"]),
49287
+ /**
49288
+ * Controls whether the badge is hidden when `badgeContent` is zero.
49289
+ * @default false
49290
+ */
49291
+ showZero: PropTypes$1.bool,
49292
+ /**
49293
+ * The props used for each slot inside the Badge.
49294
+ * @default {}
49295
+ */
49296
+ slotProps: PropTypes$1.shape({
49297
+ badge: PropTypes$1.oneOfType([PropTypes$1.func, PropTypes$1.object]),
49298
+ root: PropTypes$1.oneOfType([PropTypes$1.func, PropTypes$1.object])
49299
+ }),
49300
+ /**
49301
+ * The components used for each slot inside the Badge.
49302
+ * Either a string to use a HTML element or a component.
49303
+ * @default {}
49304
+ */
49305
+ slots: PropTypes$1.shape({
49306
+ badge: PropTypes$1.elementType,
49307
+ root: PropTypes$1.elementType
49308
+ }),
49309
+ /**
49310
+ * The system prop that allows defining system overrides as well as additional CSS styles.
49311
+ */
49312
+ sx: PropTypes$1.oneOfType([PropTypes$1.arrayOf(PropTypes$1.oneOfType([PropTypes$1.func, PropTypes$1.object, PropTypes$1.bool])), PropTypes$1.func, PropTypes$1.object]),
49313
+ /**
49314
+ * The variant to use.
49315
+ * @default 'standard'
49316
+ */
49317
+ variant: PropTypes$1.oneOfType([PropTypes$1.oneOf(["dot", "standard"]), PropTypes$1.string])
49318
+ } : void 0;
49319
+
48865
49320
  const boxClasses = generateUtilityClasses("MuiBox", ["root"]);
48866
49321
 
48867
49322
  const defaultTheme = createTheme();
@@ -71221,22 +71676,13 @@ const Connecting = (props) => {
71221
71676
  take(1),
71222
71677
  mergeMap((polledMember) => {
71223
71678
  const loadLatestJob$ = defer(() => api.loadJob(member.most_recent_job_guid)).pipe(
71224
- map((job) => ({ member: polledMember, job, hasInvalidData: false }))
71679
+ map((job) => ({ member: polledMember, job }))
71225
71680
  );
71226
- if (connectConfig.mode === VERIFY_MODE) {
71227
- const invalidData$ = of({ member: {}, job: {}, hasInvalidData: true });
71228
- if (hasNoVerifiableAccounts(polledMember, connectConfig) || hasNoSingleAccountSelectOptions(polledMember)) {
71229
- return invalidData$;
71230
- }
71231
- }
71232
71681
  return loadLatestJob$;
71233
71682
  })
71234
71683
  )
71235
71684
  )
71236
- ).subscribe(({ member, job, hasInvalidData }) => {
71237
- if (hasInvalidData) {
71238
- return dispatch({ type: ActionTypes$2.HAS_INVALID_DATA });
71239
- }
71685
+ ).subscribe(({ member, job }) => {
71240
71686
  if (onUpsertMember) {
71241
71687
  onUpsertMember(member);
71242
71688
  }
@@ -71589,133 +72035,6 @@ ImpededMemberError.propTypes = {
71589
72035
  title: PropTypes$1.string.isRequired
71590
72036
  };
71591
72037
 
71592
- const NoEligibleAccounts = () => {
71593
- const sendPosthogEvent = useAnalyticsEvent();
71594
- const tokens = useTokens();
71595
- const styles = getStyles$A(tokens);
71596
- const postMessageFunctions = useContext(PostMessageContext);
71597
- const dispatch = useDispatch();
71598
- const currentMember = useSelector(getCurrentMember);
71599
- const selectedInstitution = useSelector(getSelectedInstitution);
71600
- const postHogEventMetadata = {
71601
- authentication_method: currentMember.is_oauth ? AuthenticationMethods.OAUTH : AuthenticationMethods.NON_OAUTH,
71602
- institution_guid: selectedInstitution.guid,
71603
- institution_name: selectedInstitution.name
71604
- };
71605
- const getNextDelay = getDelay();
71606
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(React__default.Fragment, { children: [
71607
- /* @__PURE__ */ jsxRuntimeExports.jsx(SlideDown, { delay: getNextDelay(), children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: styles.headerContianer, children: [
71608
- /* @__PURE__ */ jsxRuntimeExports.jsx(
71609
- x,
71610
- {
71611
- component: "h2",
71612
- "data-test": "no-eligible-accounts-header",
71613
- style: styles.headerText,
71614
- truncate: false,
71615
- variant: "H2",
71616
- children: __("Accounts not eligible for transfers")
71617
- }
71618
- ),
71619
- /* @__PURE__ */ jsxRuntimeExports.jsx(
71620
- AttentionFilled,
71621
- {
71622
- color: tokens.Color.Error300,
71623
- height: tokens.Spacing.Large,
71624
- styles: styles.icon,
71625
- width: tokens.Spacing.Large
71626
- }
71627
- )
71628
- ] }) }),
71629
- /* @__PURE__ */ jsxRuntimeExports.jsx(
71630
- x,
71631
- {
71632
- component: "p",
71633
- "data-test": "no-eligible-accounts-paragraph",
71634
- style: styles.paragraphOne,
71635
- truncate: false,
71636
- variant: "Paragraph",
71637
- children: __(
71638
- "We've connected to your financial institution, but couldn't find eligible checking or savings accounts for money movement; however, other account information may still have been shared."
71639
- )
71640
- }
71641
- ),
71642
- /* @__PURE__ */ jsxRuntimeExports.jsx(
71643
- x,
71644
- {
71645
- component: "p",
71646
- "data-test": "no-eligible-accounts-paragraph-two",
71647
- style: styles.paragraphTwo,
71648
- truncate: false,
71649
- variant: "Paragraph",
71650
- children: __("Please try linking a checking or savings account.")
71651
- }
71652
- ),
71653
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
71654
- Button$2,
71655
- {
71656
- "aria-label": __("Try again"),
71657
- "data-test": "try-again-button",
71658
- onClick: () => {
71659
- sendPosthogEvent(AnalyticEvents.NO_ELIGIBLE_ACCOUNTS_RETRY, postHogEventMetadata);
71660
- postMessageFunctions.onPostMessage("connect/invalidData/primaryAction", {
71661
- memberGuid: currentMember.guid
71662
- });
71663
- postMessageFunctions.onPostMessage(POST_MESSAGES.BACK_TO_SEARCH);
71664
- dispatch({ type: ActionTypes$2.RESET_WIDGET_NO_ELIGIBLE_ACCOUNTS });
71665
- },
71666
- style: styles.tryAgainButton,
71667
- children: __("Try again")
71668
- }
71669
- ) }),
71670
- /* @__PURE__ */ jsxRuntimeExports.jsx(
71671
- AriaLive,
71672
- {
71673
- level: "assertive",
71674
- message: "We've connected to your financial institution, but couldn't find eligible checking or savings accounts for money movement; however, other account information may still have been shared. Please try linking a checking or savings account.",
71675
- timeout: 100
71676
- }
71677
- )
71678
- ] });
71679
- };
71680
- const getStyles$A = (tokens) => {
71681
- return {
71682
- headerText: {
71683
- fontWeight: tokens.FontWeight.Bold
71684
- },
71685
- headerContianer: {
71686
- display: "flex",
71687
- alignItems: "center"
71688
- },
71689
- icon: {
71690
- marginLeft: tokens.Spacing.Small
71691
- },
71692
- paragraphOne: {
71693
- fontWeight: tokens.FontWeight.Regular,
71694
- fontSize: tokens.FontSize.Small,
71695
- marginTop: tokens.Spacing.XSmall
71696
- },
71697
- paragraphTwo: {
71698
- fontWeight: tokens.FontWeight.Regular,
71699
- fontSize: tokens.FontSize.Small,
71700
- marginTop: tokens.Spacing.Medium
71701
- },
71702
- tryAgainButton: {
71703
- background: tokens.BackgroundColor.ButtonPrimary,
71704
- color: tokens.Color.NeutralWhite,
71705
- marginTop: tokens.Spacing.XLarge,
71706
- borderRadius: tokens.BorderRadius.Medium,
71707
- display: "flex",
71708
- flexDirection: "column",
71709
- alignItems: "center",
71710
- padding: "12px 16px",
71711
- gap: "10px",
71712
- height: "44px",
71713
- width: "100%"
71714
- }
71715
- };
71716
- };
71717
- NoEligibleAccounts.propTypes = {};
71718
-
71719
72038
  const LoginError = React__default.forwardRef(
71720
72039
  ({
71721
72040
  isDeleteInstitutionOptionEnabled,
@@ -71731,9 +72050,8 @@ const LoginError = React__default.forwardRef(
71731
72050
  const supportNavRef = useRef(null);
71732
72051
  const postMessageFunctions = useContext(PostMessageContext);
71733
72052
  const dispatch = useDispatch();
71734
- const hasInvalidData = useSelector((state) => state.connect.hasInvalidData || false);
71735
72053
  const connectConfig = useSelector(selectConnectConfig);
71736
- const pageViewInfo = hasInvalidData ? PageviewInfo.CONNECT_NO_ELIGIBLE_ACCOUNTS : PageviewInfo.CONNECT_LOGIN_ERROR;
72054
+ const pageViewInfo = PageviewInfo.CONNECT_LOGIN_ERROR;
71737
72055
  useAnalyticsPath(...pageViewInfo);
71738
72056
  const [isLeaving, setIsLeaving] = useState(false);
71739
72057
  const [showSupportView, setShowSupportView] = useState(false);
@@ -71754,21 +72072,12 @@ const LoginError = React__default.forwardRef(
71754
72072
  };
71755
72073
  }, [showSupportView]);
71756
72074
  useEffect(() => {
71757
- if (hasInvalidData) {
71758
- postMessageFunctions.onPostMessage("connect/invalidData", {
71759
- member: {
71760
- guid: member.guid,
71761
- code: member.most_recent_job_detail_code
71762
- }
71763
- });
71764
- } else {
71765
- postMessageFunctions.onPostMessage("connect/memberError", {
71766
- member: {
71767
- guid: member.guid,
71768
- connection_status: member.connection_status
71769
- }
71770
- });
71771
- }
72075
+ postMessageFunctions.onPostMessage("connect/memberError", {
72076
+ member: {
72077
+ guid: member.guid,
72078
+ connection_status: member.connection_status
72079
+ }
72080
+ });
71772
72081
  }, [member]);
71773
72082
  const loginErrorStartOver = () => dispatch({ type: ActionTypes$2.LOGIN_ERROR_START_OVER, payload: { mode: connectConfig.mode } });
71774
72083
  const handleOkPrimaryActionClick = () => {
@@ -71919,17 +72228,7 @@ const LoginError = React__default.forwardRef(
71919
72228
  primary: [],
71920
72229
  secondary: [GET_HELP, DISCONNECT_INSTITUTION]
71921
72230
  };
71922
- let statusActions;
71923
- if (hasInvalidData) {
71924
- statusActions = {
71925
- renderBody: /* @__PURE__ */ jsxRuntimeExports.jsx(NoEligibleAccounts, {}),
71926
- primary: [],
71927
- secondary: [],
71928
- title: ""
71929
- };
71930
- } else {
71931
- statusActions = memberStatusActionsMap[member.connection_status] || defaultMemberStatusAction;
71932
- }
72231
+ const statusActions = memberStatusActionsMap[member.connection_status] || defaultMemberStatusAction;
71933
72232
  if (showSupportView) {
71934
72233
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
71935
72234
  Support,
@@ -71987,6 +72286,138 @@ LoginError.propTypes = {
71987
72286
  };
71988
72287
  LoginError.displayName = "LoginError";
71989
72288
 
72289
+ const ACTIONABLE_ERROR_CODES = {
72290
+ NO_ELIGIBLE_ACCOUNTS: 1e3
72291
+ };
72292
+
72293
+ const ActionableError = () => {
72294
+ const postMessageFunctions = useContext(PostMessageContext);
72295
+ const institution = useSelector((state) => state.connect.selectedInstitution);
72296
+ const currentMember = useSelector(getCurrentMember);
72297
+ const jobDetailCode = currentMember.most_recent_job_detail_code;
72298
+ const tokens = useTokens();
72299
+ const styles = getStyles$A(tokens);
72300
+ const getNextDelay = getDelay();
72301
+ const dispatch = useDispatch();
72302
+ const messagingMap = useMemo(
72303
+ () => ({
72304
+ [ACTIONABLE_ERROR_CODES.NO_ELIGIBLE_ACCOUNTS]: {
72305
+ title: __("No eligible accounts"),
72306
+ userMessage: (institution2) => __(
72307
+ "Only checking or savings accounts can be used for transfers. If you have one at %1, make sure to select it when connecting. Otherwise, try connecting a different institution.",
72308
+ institution2.name
72309
+ ),
72310
+ primaryAction: {
72311
+ label: __("Log in again"),
72312
+ action: () => dispatch({ type: ActionTypes$2.ACTIONABLE_ERROR_LOG_IN_AGAIN })
72313
+ },
72314
+ secondaryActions: {
72315
+ label: __("Connect a different institution"),
72316
+ action: () => {
72317
+ postMessageFunctions.onPostMessage("connect/backToSearch");
72318
+ dispatch({ type: ActionTypes$2.ACTIONABLE_ERROR_CONNECT_DIFFERENT_INSTITUTION });
72319
+ }
72320
+ }
72321
+ }
72322
+ }),
72323
+ [dispatch]
72324
+ );
72325
+ useEffect(() => {
72326
+ postMessageFunctions.onPostMessage("connect/invalidData", {
72327
+ member: {
72328
+ guid: currentMember.guid,
72329
+ code: jobDetailCode
72330
+ }
72331
+ });
72332
+ }, [jobDetailCode]);
72333
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
72334
+ /* @__PURE__ */ jsxRuntimeExports.jsx(SlideDown, { delay: getNextDelay(), children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: styles.logoWrapper, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Badge, { badgeContent: "!", color: "error", sx: styles.badge, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
72335
+ De,
72336
+ {
72337
+ alt: `${institution.name} logo`,
72338
+ institutionGuid: institution.guid,
72339
+ size: 64
72340
+ }
72341
+ ) }) }) }),
72342
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(SlideDown, { delay: getNextDelay(), children: [
72343
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
72344
+ x,
72345
+ {
72346
+ component: "h2",
72347
+ "data-test": "actionable-error-header",
72348
+ style: styles.title,
72349
+ truncate: false,
72350
+ variant: "H2",
72351
+ children: messagingMap[jobDetailCode].title
72352
+ }
72353
+ ),
72354
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
72355
+ x,
72356
+ {
72357
+ component: "p",
72358
+ "data-test": "actionable-error-paragraph",
72359
+ style: styles.paragraph,
72360
+ truncate: false,
72361
+ variant: "Paragraph",
72362
+ children: messagingMap[jobDetailCode].userMessage(institution)
72363
+ }
72364
+ )
72365
+ ] }),
72366
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(SlideDown, { delay: getNextDelay(), children: [
72367
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
72368
+ Button$2,
72369
+ {
72370
+ "data-test": "actionable-error-primary-button",
72371
+ fullWidth: true,
72372
+ onClick: messagingMap[jobDetailCode].primaryAction.action,
72373
+ style: { marginBottom: 8 },
72374
+ variant: "contained",
72375
+ children: messagingMap[jobDetailCode].primaryAction.label
72376
+ }
72377
+ ),
72378
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
72379
+ Button$2,
72380
+ {
72381
+ "data-test": "actionable-error-secondary-button",
72382
+ fullWidth: true,
72383
+ onClick: messagingMap[jobDetailCode].secondaryActions.action,
72384
+ style: { marginBottom: 8 },
72385
+ variant: "text",
72386
+ children: messagingMap[jobDetailCode].secondaryActions.label
72387
+ }
72388
+ )
72389
+ ] })
72390
+ ] });
72391
+ };
72392
+ const getStyles$A = (tokens) => ({
72393
+ logoWrapper: {
72394
+ display: "flex",
72395
+ justifyContent: "center",
72396
+ marginBottom: tokens.Spacing.XLarge,
72397
+ marginTop: 20,
72398
+ width: "100%"
72399
+ },
72400
+ badge: {
72401
+ "& .MuiBadge-badge": {
72402
+ fontWeight: "bold",
72403
+ borderRadius: "100%",
72404
+ border: `2px solid ${tokens.BackgroundColor.Container}`,
72405
+ fontSize: tokens.FontSize.H3,
72406
+ margin: tokens.Spacing.Tiny,
72407
+ height: tokens.Spacing.Large + tokens.Spacing.Tiny,
72408
+ width: tokens.Spacing.Large + tokens.Spacing.Tiny
72409
+ }
72410
+ },
72411
+ title: {
72412
+ marginBottom: tokens.Spacing.Tiny,
72413
+ textAlign: "center"
72414
+ },
72415
+ paragraph: {
72416
+ marginBottom: tokens.Spacing.XLarge,
72417
+ textAlign: "center"
72418
+ }
72419
+ });
72420
+
71990
72421
  var reactConfetti_min = {exports: {}};
71991
72422
 
71992
72423
  (function (module, exports) {
@@ -76876,8 +77307,10 @@ const RenderConnectStep = (props) => {
76876
77307
  ref: props.navigationRef
76877
77308
  }
76878
77309
  );
76879
- } else if (step === STEPS.LOGIN_ERROR) {
76880
- connectStepView = /* @__PURE__ */ jsxRuntimeExports.jsx(
77310
+ } else if (step === STEPS.ACTIONABLE_ERROR) {
77311
+ connectStepView = [ACTIONABLE_ERROR_CODES.NO_ELIGIBLE_ACCOUNTS].includes(
77312
+ currentMember?.most_recent_job_detail_code ?? -1
77313
+ ) ? /* @__PURE__ */ jsxRuntimeExports.jsx(ActionableError, {}) : /* @__PURE__ */ jsxRuntimeExports.jsx(
76881
77314
  LoginError,
76882
77315
  {
76883
77316
  institution: selectedInstitution,
@@ -79609,7 +80042,6 @@ const frCa = {
79609
80042
  "Transaction amounts": "Montants des transactions",
79610
80043
  "Transaction dates": "Dates des transactions",
79611
80044
  "Transaction descriptions": "Descriptions des transactions",
79612
- "Disconnect institution": "Déconnecter l'institution",
79613
80045
  "This includes:": "Cela comprend:",
79614
80046
  "Who is MX Technologies?": "Qui est MX Technologies?",
79615
80047
  "MX is a trusted financial data platform that securely connects your accounts. It follows strict security and privacy standards to keep your information safe.": "MX est une plateforme de données financières fiable qui connecte vos comptes en toute sécurité. Elle respecte des normes strictes de sécurité et de confidentialité pour garantir la sécurité de vos informations.",
@@ -79655,6 +80087,10 @@ const frCa = {
79655
80087
  "This mode isn’t available in your current plan. Please contact your representative to explore options.": "Ce mode n'est pas disponible avec votre forfait actuel. Veuillez contacter votre représentant pour explorer les options.",
79656
80088
  "Feature not available": "Fonctionnalité non disponible",
79657
80089
  "%1 does not offer this feature. Please contact your representative to explore options.": "%1 n'offre pas cette fonctionnalité. Veuillez contacter votre représentant pour explorer les options.",
80090
+ "Log in again": "Connectez-vous à nouveau",
80091
+ "Connect a different institution": "Mettre en relation un autre établissement",
80092
+ "No eligible accounts": "Aucun compte admissible",
80093
+ "Only checking or savings accounts can be used for transfers. If you have one at %1, make sure to select it when connecting. Otherwise, try connecting a different institution.": "Seuls les comptes chèques ou d’épargne peuvent être utilisés pour les transferts. Si vous en avez un à %1, assurez-vous de le sélectionner lors de la connexion. Sinon, essayez de connecter une autre institution.",
79658
80094
  "connect/disclosure/policy/text\u0004By clicking Continue, you agree to the ": "En cliquant sur Continuer, vous acceptez la ",
79659
80095
  "connect/disclosure/policy/link\u0004MX Privacy Policy.": "Politique de confidentialité de MX.",
79660
80096
  "connect/disclosure/policy/link\u0004MX Privacy Policy": "Politique de confidentialité de MX.",
@@ -80090,7 +80526,6 @@ const es = {
80090
80526
  "Transaction amounts": "Montos de la transacción",
80091
80527
  "Transaction dates": "Fechas de transacción",
80092
80528
  "Transaction descriptions": "Descripciones de transacciones",
80093
- "Disconnect institution": "Desconectar institución",
80094
80529
  "This includes:": "Esto incluye:",
80095
80530
  "Who is MX Technologies?": "¿Quién es MX Technologies?",
80096
80531
  "MX is a trusted financial data platform that securely connects your accounts. It follows strict security and privacy standards to keep your information safe.": "MX es una plataforma confiable de datos financieros que conecta tus cuentas de forma segura. Cumple con estrictos estándares de seguridad y privacidad para mantener tu información segura.",
@@ -80136,6 +80571,10 @@ const es = {
80136
80571
  "This mode isn’t available in your current plan. Please contact your representative to explore options.": "Este modo no está disponible en tu plan actual. Contacte a su representante para explorar las opciones.",
80137
80572
  "Feature not available": "Característica no disponible",
80138
80573
  "%1 does not offer this feature. Please contact your representative to explore options.": "%1 no ofrece esta función. Contacte a su representante para explorar las opciones.",
80574
+ "Log in again": "Inicie sesión nuevamente",
80575
+ "Connect a different institution": "Conecte una institución diferente",
80576
+ "No eligible accounts": "No hay cuentas elegibles",
80577
+ "Only checking or savings accounts can be used for transfers. If you have one at %1, make sure to select it when connecting. Otherwise, try connecting a different institution.": "Solo se pueden usar cuentas de control o ahorro para transferencias. Si tiene uno en %1, asegúrese de seleccionarlo al conectarlo. De lo contrario, intente conectar una institución diferente.",
80139
80578
  "connect/disclosure/button\u0004Continue": "Continuar",
80140
80579
  "connect/disclosure/policy/text\u0004By clicking Continue, you agree to the ": "Al hacer clic en Continuar, tu aceptas la ",
80141
80580
  "connect/disclosure/policy/link\u0004MX Privacy Policy.": "Política de privacidad de Money Experience.",
@@ -80232,49 +80671,34 @@ const scrubLocale = (locale) => {
80232
80671
  return lowerLocale === "en-us" ? "en" : lowerLocale;
80233
80672
  };
80234
80673
 
80235
- const getNewClientColors = (state) => ({
80236
- Brand100: state.profiles.clientColorScheme.primary_100,
80237
- Brand200: state.profiles.clientColorScheme.primary_200,
80238
- Brand300: state.profiles.clientColorScheme.primary_300,
80239
- Brand400: state.profiles.clientColorScheme.primary_400,
80240
- Brand500: state.profiles.clientColorScheme.primary_500
80241
- });
80242
- const getOldClientColors = (state) => {
80243
- const widgetBrandColor = _get(state, "profiles.clientColorScheme.widget_brand_color");
80244
- if (!widgetBrandColor) {
80245
- return {};
80674
+ const getTheme = (state) => state.config.color_scheme;
80675
+ const getClientColorScheme = (state) => state.profiles.clientColorScheme;
80676
+ const getNewClientColors = createSelector([getClientColorScheme], (colorScheme) => ({
80677
+ Brand100: colorScheme?.primary_100,
80678
+ Brand200: colorScheme?.primary_200,
80679
+ Brand300: colorScheme?.primary_300,
80680
+ Brand400: colorScheme?.primary_400,
80681
+ Brand500: colorScheme?.primary_500
80682
+ }));
80683
+ const getOldClientColors = createSelector(
80684
+ [getClientColorScheme],
80685
+ ({ widget_brand_color }) => {
80686
+ return widget_brand_color ? {
80687
+ Brand100: "#F8F9FB",
80688
+ // We couldn't come up with a consistent good looking color with the proper aspect ratio. Defaults to Neutral_100.
80689
+ Brand200: adjustColor(widget_brand_color, 15),
80690
+ Brand300: widget_brand_color,
80691
+ Brand400: adjustColor(widget_brand_color, -15),
80692
+ Brand500: adjustColor(widget_brand_color, -30)
80693
+ } : {};
80246
80694
  }
80247
- return {
80248
- Brand100: "#F8F9FB",
80249
- // We couldn't come up with a consistent good looking color with the proper aspect ratio. Defaults to Neutral_100.
80250
- Brand200: adjustColor(widgetBrandColor, 15),
80251
- Brand300: widgetBrandColor,
80252
- Brand400: adjustColor(widgetBrandColor, -15),
80253
- Brand500: adjustColor(widgetBrandColor, -30)
80254
- };
80255
- };
80695
+ );
80256
80696
  const getTokenProviderValues = createSelector(
80257
- (state) => state.config.color_scheme,
80258
- getNewClientColors,
80259
- getOldClientColors,
80697
+ [getTheme, getNewClientColors, getOldClientColors],
80260
80698
  (theme, newColors, oldColors) => {
80261
- const hasNewColors = _every(Object.values(newColors), (color) => !!color);
80262
- if (hasNewColors) {
80263
- return {
80264
- tokenOverrides: {
80265
- Color: {
80266
- ...newColors
80267
- }
80268
- },
80269
- theme
80270
- };
80271
- }
80699
+ const hasNewColors = _every(Object.values(newColors), Boolean);
80272
80700
  return {
80273
- tokenOverrides: {
80274
- Color: {
80275
- ...oldColors
80276
- }
80277
- },
80701
+ tokenOverrides: { Color: hasNewColors ? newColors : oldColors },
80278
80702
  theme
80279
80703
  };
80280
80704
  }
@@ -80290,21 +80714,9 @@ const adjustColor = (col, amt) => {
80290
80714
  let intRVal = parseInt(colorPadded.slice(0, 2), 16) + amt;
80291
80715
  let intGVal = parseInt(colorPadded.slice(2, 4), 16) + amt;
80292
80716
  let intBVal = parseInt(colorPadded.slice(4, 6), 16) + amt;
80293
- if (intRVal > 255) {
80294
- intRVal = 255;
80295
- } else if (intRVal < 0) {
80296
- intRVal = 0;
80297
- }
80298
- if (intGVal > 255) {
80299
- intGVal = 255;
80300
- } else if (intGVal < 0) {
80301
- intGVal = 0;
80302
- }
80303
- if (intBVal > 255) {
80304
- intBVal = 255;
80305
- } else if (intBVal < 0) {
80306
- intBVal = 0;
80307
- }
80717
+ intRVal = Math.min(Math.max(intRVal, 0), 255);
80718
+ intGVal = Math.min(Math.max(intGVal, 0), 255);
80719
+ intBVal = Math.min(Math.max(intBVal, 0), 255);
80308
80720
  const hexR = intRVal.toString(16).padStart(2, "0");
80309
80721
  const hexG = intGVal.toString(16).padStart(2, "0");
80310
80722
  const hexB = intBVal.toString(16).padStart(2, "0");