local-operator-ui 0.7.3 → 0.7.5

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.
@@ -1,5 +1,5 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./index-CUWbsc3s.js","./fonts-BAmz1ETd.js","./fonts-B9KBGB-g.css","./index-DlgVvD7O.js","./pug-By0kVCfm.js","./javascript-C3MnDRiU.js"])))=>i.map(i=>d[i]);
2
- import { c as createStyled, r as resolveProps, u as useTheme, a as reactExports, b as clsx, d as useForkRef, e as extendSxProp, j as jsxRuntimeExports, h as handleBreakpoints, f as resolveBreakpointValues, g as createUnarySpacing, i as deepmerge, m as mergeBreakpointsInOrder, k as composeClasses, l as generateUtilityClass, n as createTheme$1, o as getValue, R as React, p as getDefaultExportFromCjs, q as requireReactDom, s as React$1, t as generateUtilityClasses, v as useDefaultProps, w as styled$1, x as capitalize, y as memoTheme, _ as _inheritsLoose, z as _objectWithoutPropertiesLoose$i, T as TransitionGroupContext, A as duration, B as useTheme$1, C as useTimeout, D as useId, E as ButtonBase, F as alpha$1, G as createSimplePaletteValueFilter, H as CircularProgress, P as Paper, I as darken, J as lighten, K as useEventCallback, L as useEnhancedEffect, M as useRtl, N as globalCss, O as formatMuiErrorMessage, Q as rootShouldForwardProp, S as Typography, U as getPath$2, V as isFocusVisible, W as typographyClasses, X as slotShouldForwardProp, Y as css$1, Z as keyframes, $ as clamp, a0 as emphasize, a1 as Timeout, a2 as Button, a3 as Box, a4 as FontAwesomeIcon, a5 as faExclamationTriangle, a6 as DEFAULT_THEME, a7 as faChevronLeft, a8 as faChevronRight, a9 as faRobot, aa as faCheck, ab as faTimes, ac as faEraser, ad as faPen, ae as faFileImport, af as faUpload, ag as requireReact, ah as LinearProgress, ai as faComment, aj as faSave, ak as faEdit, al as faTrashAlt, am as faComments, an as faInfoCircle, ao as faGear, ap as faPlus, aq as faServer, ar as faStar, as as faTag, at as faIdCard, au as faCalendarAlt, av as faCodeBranch, aw as faShieldAlt, ax as faArrowLeft, ay as faClock, az as faHome, aA as faDownload, aB as faFileAlt, aC as faDesktop, aD as faImage, aE as faMusic, aF as faVideo, aG as faLaptop, aH as faUsers, aI as faDatabase, aJ as faBoxOpen, aK as faBook, aL as faHdd, aM as faBox, aN as faArchive, aO as faNetworkWired, aP as faFolder, aQ as faFolderOpen, aR as faFolderTree, aS as faChevronDown, aT as faTools, aU as _extends$u, aV as faSliders, aW as faTrash, aX as faArrowDown, aY as faPaperclip, aZ as faStop, a_ as faPaperPlane, a$ as faChevronUp, b0 as faQuestion, b1 as faFile, b2 as faExclamationCircle, b3 as faLightbulb, b4 as faCode, b5 as faCommentDots, b6 as faShare, b7 as faPencilAlt, b8 as faUser, b9 as faCopy, ba as isDevelopmentMode, bb as faCommentSlash, bc as faArrowRight, bd as faBrain, be as faWandMagicSparkles, bf as faExternalLinkAlt, bg as faKey, bh as radientTheme, bi as faGlobe, bj as faSearch, bk as commonjsGlobal, bl as PropTypes, bm as faLock, bn as faSignOut, bo as themes, bp as faMoon, bq as faSun, br as faHexagonNodes, bs as faSkull, bt as faLeaf, bu as faMountain, bv as faFire, bw as faIcicles, bx as faEnvelope, by as faHistory, bz as faListAlt, bA as faAdjust, bB as faCreditCard, bC as faPlusCircle, bD as faChartLine, bE as faShield, bF as library$1, bG as icons$1, bH as CssBaseline, bI as ThemeProvider$1, bJ as getTheme, bK as ReactDOM$1, bL as ErrorBoundary } from "./fonts-BAmz1ETd.js";
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./index-DV8SteiB.js","./fonts-DnoCbbVd.js","./fonts-B9KBGB-g.css","./index-Dp4J_UIV.js","./pug-By0kVCfm.js","./javascript-C3MnDRiU.js"])))=>i.map(i=>d[i]);
2
+ import { c as createStyled, r as resolveProps, u as useTheme, a as reactExports, b as clsx, d as useForkRef, e as extendSxProp, j as jsxRuntimeExports, h as handleBreakpoints, f as resolveBreakpointValues, g as createUnarySpacing, i as deepmerge, m as mergeBreakpointsInOrder, k as composeClasses, l as generateUtilityClass, n as createTheme$1, o as getValue, R as React, p as getDefaultExportFromCjs, q as requireReactDom, s as React$1, t as generateUtilityClasses, v as useDefaultProps, w as styled$1, x as capitalize, y as memoTheme, _ as _inheritsLoose, z as _objectWithoutPropertiesLoose$i, T as TransitionGroupContext, A as duration, B as useTheme$1, C as useTimeout, D as useId, E as ButtonBase, F as alpha$1, G as createSimplePaletteValueFilter, H as CircularProgress, P as Paper, I as darken, J as lighten, K as useEventCallback, L as useEnhancedEffect, M as useRtl, N as globalCss, O as formatMuiErrorMessage, Q as rootShouldForwardProp, S as Typography, U as css$1, V as keyframes, W as getPath$2, X as isFocusVisible, Y as typographyClasses, Z as slotShouldForwardProp, $ as clamp, a0 as emphasize, a1 as Timeout, a2 as createLucideIcon, a3 as Button, a4 as Box, a5 as FontAwesomeIcon, a6 as faExclamationTriangle, a7 as DEFAULT_THEME, a8 as faChevronLeft, a9 as faChevronRight, aa as faRobot, ab as faCheck, ac as faTimes, ad as faEraser, ae as faPen, af as faFileImport, ag as faUpload, ah as requireReact, ai as faComment, aj as faSave, ak as faEdit, al as faTrashAlt, am as faComments, an as faInfoCircle, ao as faGear, ap as faPlus, aq as faServer, ar as faStar, as as faTag, at as faIdCard, au as faCalendarAlt, av as faCodeBranch, aw as faShieldAlt, ax as faArrowLeft, ay as faClock, az as faHome, aA as faDownload, aB as faFileAlt, aC as faDesktop, aD as faImage, aE as faMusic, aF as faVideo, aG as faLaptop, aH as faUsers, aI as faDatabase, aJ as faBoxOpen, aK as faBook, aL as faHdd, aM as faBox, aN as faArchive, aO as faNetworkWired, aP as faFolder, aQ as faFolderOpen, aR as faFolderTree, aS as faChevronDown, aT as faTools, aU as _extends$u, aV as faSliders, aW as faTrash, aX as faArrowDown, aY as faPaperclip, aZ as faStop, a_ as faPaperPlane, a$ as faChevronUp, b0 as faQuestion, b1 as faFile, b2 as faExclamationCircle, b3 as faLightbulb, b4 as faCode, b5 as faCommentDots, b6 as faShare, b7 as faPencilAlt, b8 as faUser, b9 as faCopy, ba as isDevelopmentMode, bb as faCommentSlash, bc as faArrowRight, bd as faBrain, be as faWandMagicSparkles, bf as faExternalLinkAlt, bg as faKey, bh as radientTheme, bi as faGlobe, bj as faSearch, bk as commonjsGlobal, bl as PropTypes, bm as faLock, bn as faSignOut, bo as themes, bp as faMoon, bq as faSun, br as faHexagonNodes, bs as faSkull, bt as faLeaf, bu as faMountain, bv as faFire, bw as faIcicles, bx as faEnvelope, by as faHistory, bz as faListAlt, bA as faAdjust, bB as faCreditCard, bC as faPlusCircle, bD as faChartLine, bE as faShield, bF as library$1, bG as icons$1, bH as CssBaseline, bI as ThemeProvider$1, bJ as getTheme, bK as ReactDOM$1, bL as ErrorBoundary } from "./fonts-DnoCbbVd.js";
3
3
  const styled = createStyled();
4
4
  function getThemeProps(params) {
5
5
  const {
@@ -8833,7 +8833,7 @@ function getSvgIconUtilityClass(slot) {
8833
8833
  return generateUtilityClass("MuiSvgIcon", slot);
8834
8834
  }
8835
8835
  generateUtilityClasses("MuiSvgIcon", ["root", "colorPrimary", "colorSecondary", "colorAction", "colorError", "colorDisabled", "fontSizeInherit", "fontSizeSmall", "fontSizeMedium", "fontSizeLarge"]);
8836
- const useUtilityClasses$X = (ownerState) => {
8836
+ const useUtilityClasses$Y = (ownerState) => {
8837
8837
  const {
8838
8838
  color: color2,
8839
8839
  fontSize,
@@ -8972,7 +8972,7 @@ const SvgIcon = /* @__PURE__ */ reactExports.forwardRef(function SvgIcon2(inProp
8972
8972
  if (!inheritViewBox) {
8973
8973
  more.viewBox = viewBox;
8974
8974
  }
8975
- const classes = useUtilityClasses$X(ownerState);
8975
+ const classes = useUtilityClasses$Y(ownerState);
8976
8976
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(SvgIconRoot, {
8977
8977
  as: component,
8978
8978
  className: clsx(classes.root, className),
@@ -9328,7 +9328,7 @@ function getCollapseUtilityClass(slot) {
9328
9328
  return generateUtilityClass("MuiCollapse", slot);
9329
9329
  }
9330
9330
  generateUtilityClasses("MuiCollapse", ["root", "horizontal", "vertical", "entered", "hidden", "wrapper", "wrapperInner"]);
9331
- const useUtilityClasses$W = (ownerState) => {
9331
+ const useUtilityClasses$X = (ownerState) => {
9332
9332
  const {
9333
9333
  orientation,
9334
9334
  classes
@@ -9456,7 +9456,7 @@ const Collapse = /* @__PURE__ */ reactExports.forwardRef(function Collapse2(inPr
9456
9456
  orientation,
9457
9457
  collapsedSize: collapsedSizeProp
9458
9458
  };
9459
- const classes = useUtilityClasses$W(ownerState);
9459
+ const classes = useUtilityClasses$X(ownerState);
9460
9460
  const theme2 = useTheme$1();
9461
9461
  const timer = useTimeout();
9462
9462
  const wrapperRef = reactExports.useRef(null);
@@ -9671,7 +9671,7 @@ function getIconButtonUtilityClass(slot) {
9671
9671
  return generateUtilityClass("MuiIconButton", slot);
9672
9672
  }
9673
9673
  const iconButtonClasses = generateUtilityClasses("MuiIconButton", ["root", "disabled", "colorInherit", "colorPrimary", "colorSecondary", "colorError", "colorInfo", "colorSuccess", "colorWarning", "edgeStart", "edgeEnd", "sizeSmall", "sizeMedium", "sizeLarge", "loading", "loadingIndicator", "loadingWrapper"]);
9674
- const useUtilityClasses$V = (ownerState) => {
9674
+ const useUtilityClasses$W = (ownerState) => {
9675
9675
  const {
9676
9676
  classes,
9677
9677
  disabled,
@@ -9857,7 +9857,7 @@ const IconButton = /* @__PURE__ */ reactExports.forwardRef(function IconButton2(
9857
9857
  loadingIndicator,
9858
9858
  size
9859
9859
  };
9860
- const classes = useUtilityClasses$V(ownerState);
9860
+ const classes = useUtilityClasses$W(ownerState);
9861
9861
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(IconButtonRoot, {
9862
9862
  id: loading ? loadingId : idProp,
9863
9863
  className: clsx(classes.root, className),
@@ -9896,7 +9896,7 @@ const InfoOutlinedIcon = createSvgIcon(/* @__PURE__ */ jsxRuntimeExports.jsx("pa
9896
9896
  const ClearIcon = createSvgIcon(/* @__PURE__ */ jsxRuntimeExports.jsx("path", {
9897
9897
  d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"
9898
9898
  }), "Close");
9899
- const useUtilityClasses$U = (ownerState) => {
9899
+ const useUtilityClasses$V = (ownerState) => {
9900
9900
  const {
9901
9901
  variant,
9902
9902
  color: color2,
@@ -10051,7 +10051,7 @@ const Alert = /* @__PURE__ */ reactExports.forwardRef(function Alert2(inProps, r
10051
10051
  variant,
10052
10052
  colorSeverity: color2 || severity
10053
10053
  };
10054
- const classes = useUtilityClasses$U(ownerState);
10054
+ const classes = useUtilityClasses$V(ownerState);
10055
10055
  const externalForwardedProps = {
10056
10056
  slots: {
10057
10057
  closeButton: components.CloseButton,
@@ -12404,7 +12404,7 @@ function resolveAnchorEl$1(anchorEl) {
12404
12404
  function isHTMLElement(element2) {
12405
12405
  return element2.nodeType !== void 0;
12406
12406
  }
12407
- const useUtilityClasses$T = (ownerState) => {
12407
+ const useUtilityClasses$U = (ownerState) => {
12408
12408
  const {
12409
12409
  classes
12410
12410
  } = ownerState;
@@ -12505,7 +12505,7 @@ const PopperTooltip = /* @__PURE__ */ reactExports.forwardRef(function PopperToo
12505
12505
  if (TransitionProps !== null) {
12506
12506
  childProps.TransitionProps = TransitionProps;
12507
12507
  }
12508
- const classes = useUtilityClasses$T(props2);
12508
+ const classes = useUtilityClasses$U(props2);
12509
12509
  const Root = slots.root ?? "div";
12510
12510
  const rootProps = useSlotProps({
12511
12511
  elementType: Root,
@@ -12653,7 +12653,7 @@ function getListSubheaderUtilityClass(slot) {
12653
12653
  return generateUtilityClass("MuiListSubheader", slot);
12654
12654
  }
12655
12655
  generateUtilityClasses("MuiListSubheader", ["root", "colorPrimary", "colorInherit", "gutters", "inset", "sticky"]);
12656
- const useUtilityClasses$S = (ownerState) => {
12656
+ const useUtilityClasses$T = (ownerState) => {
12657
12657
  const {
12658
12658
  classes,
12659
12659
  color: color2,
@@ -12748,7 +12748,7 @@ const ListSubheader = /* @__PURE__ */ reactExports.forwardRef(function ListSubhe
12748
12748
  disableSticky,
12749
12749
  inset
12750
12750
  };
12751
- const classes = useUtilityClasses$S(ownerState);
12751
+ const classes = useUtilityClasses$T(ownerState);
12752
12752
  return /* @__PURE__ */ jsxRuntimeExports.jsx(ListSubheaderRoot, {
12753
12753
  as: component,
12754
12754
  className: clsx(classes.root, className),
@@ -12767,7 +12767,7 @@ function getChipUtilityClass(slot) {
12767
12767
  return generateUtilityClass("MuiChip", slot);
12768
12768
  }
12769
12769
  const chipClasses = generateUtilityClasses("MuiChip", ["root", "sizeSmall", "sizeMedium", "colorDefault", "colorError", "colorInfo", "colorPrimary", "colorSecondary", "colorSuccess", "colorWarning", "disabled", "clickable", "clickableColorPrimary", "clickableColorSecondary", "deletable", "deletableColorPrimary", "deletableColorSecondary", "outlined", "filled", "outlinedPrimary", "outlinedSecondary", "filledPrimary", "filledSecondary", "avatar", "avatarSmall", "avatarMedium", "avatarColorPrimary", "avatarColorSecondary", "icon", "iconSmall", "iconMedium", "iconColorPrimary", "iconColorSecondary", "label", "labelSmall", "labelMedium", "deleteIcon", "deleteIconSmall", "deleteIconMedium", "deleteIconColorPrimary", "deleteIconColorSecondary", "deleteIconOutlinedColorPrimary", "deleteIconOutlinedColorSecondary", "deleteIconFilledColorPrimary", "deleteIconFilledColorSecondary", "focusVisible"]);
12770
- const useUtilityClasses$R = (ownerState) => {
12770
+ const useUtilityClasses$S = (ownerState) => {
12771
12771
  const {
12772
12772
  classes,
12773
12773
  disabled,
@@ -13158,7 +13158,7 @@ const Chip = /* @__PURE__ */ reactExports.forwardRef(function Chip2(inProps, ref
13158
13158
  clickable,
13159
13159
  variant
13160
13160
  };
13161
- const classes = useUtilityClasses$R(ownerState);
13161
+ const classes = useUtilityClasses$S(ownerState);
13162
13162
  const moreProps = component === ButtonBase ? {
13163
13163
  component: ComponentProp || "div",
13164
13164
  focusVisibleClassName: classes.focusVisible,
@@ -13426,7 +13426,7 @@ const inputOverridesResolver = (props2, styles2) => {
13426
13426
  } = props2;
13427
13427
  return [styles2.input, ownerState.size === "small" && styles2.inputSizeSmall, ownerState.multiline && styles2.inputMultiline, ownerState.type === "search" && styles2.inputTypeSearch, ownerState.startAdornment && styles2.inputAdornedStart, ownerState.endAdornment && styles2.inputAdornedEnd, ownerState.hiddenLabel && styles2.inputHiddenLabel];
13428
13428
  };
13429
- const useUtilityClasses$Q = (ownerState) => {
13429
+ const useUtilityClasses$R = (ownerState) => {
13430
13430
  const {
13431
13431
  classes,
13432
13432
  color: color2,
@@ -13812,7 +13812,7 @@ const InputBase = /* @__PURE__ */ reactExports.forwardRef(function InputBase2(in
13812
13812
  startAdornment,
13813
13813
  type: type2
13814
13814
  };
13815
- const classes = useUtilityClasses$Q(ownerState);
13815
+ const classes = useUtilityClasses$R(ownerState);
13816
13816
  const Root = slots.root || components.Root || InputBaseRoot;
13817
13817
  const rootProps = slotProps.root || componentsProps.root || {};
13818
13818
  const Input3 = slots.input || components.Input || InputBaseInput;
@@ -13905,7 +13905,7 @@ function getAutocompleteUtilityClass(slot) {
13905
13905
  }
13906
13906
  const autocompleteClasses = generateUtilityClasses("MuiAutocomplete", ["root", "expanded", "fullWidth", "focused", "focusVisible", "tag", "tagSizeSmall", "tagSizeMedium", "hasPopupIcon", "hasClearIcon", "inputRoot", "input", "inputFocused", "endAdornment", "clearIndicator", "popupIndicator", "popupIndicatorOpen", "popper", "popperDisablePortal", "paper", "listbox", "loading", "noOptions", "option", "groupLabel", "groupUl"]);
13907
13907
  var _ClearIcon, _ArrowDropDownIcon;
13908
- const useUtilityClasses$P = (ownerState) => {
13908
+ const useUtilityClasses$Q = (ownerState) => {
13909
13909
  const {
13910
13910
  classes,
13911
13911
  disablePortal,
@@ -14401,7 +14401,7 @@ const Autocomplete = /* @__PURE__ */ reactExports.forwardRef(function Autocomple
14401
14401
  popupOpen,
14402
14402
  size
14403
14403
  };
14404
- const classes = useUtilityClasses$P(ownerState);
14404
+ const classes = useUtilityClasses$Q(ownerState);
14405
14405
  const externalForwardedProps = {
14406
14406
  slots: {
14407
14407
  paper: PaperComponentProp,
@@ -14616,7 +14616,7 @@ function getAvatarUtilityClass(slot) {
14616
14616
  return generateUtilityClass("MuiAvatar", slot);
14617
14617
  }
14618
14618
  generateUtilityClasses("MuiAvatar", ["root", "colorDefault", "circular", "rounded", "square", "img", "fallback"]);
14619
- const useUtilityClasses$O = (ownerState) => {
14619
+ const useUtilityClasses$P = (ownerState) => {
14620
14620
  const {
14621
14621
  classes,
14622
14622
  variant,
@@ -14781,7 +14781,7 @@ const Avatar = /* @__PURE__ */ reactExports.forwardRef(function Avatar2(inProps,
14781
14781
  const hasImgNotFailing = hasImg && loaded !== "error";
14782
14782
  ownerState.colorDefault = !hasImgNotFailing;
14783
14783
  delete ownerState.ownerState;
14784
- const classes = useUtilityClasses$O(ownerState);
14784
+ const classes = useUtilityClasses$P(ownerState);
14785
14785
  const [ImgSlot, imgSlotProps] = useSlot("img", {
14786
14786
  className: classes.img,
14787
14787
  elementType: AvatarImg,
@@ -14942,7 +14942,7 @@ function getBackdropUtilityClass(slot) {
14942
14942
  return generateUtilityClass("MuiBackdrop", slot);
14943
14943
  }
14944
14944
  generateUtilityClasses("MuiBackdrop", ["root", "invisible"]);
14945
- const useUtilityClasses$N = (ownerState) => {
14945
+ const useUtilityClasses$O = (ownerState) => {
14946
14946
  const {
14947
14947
  classes,
14948
14948
  invisible
@@ -15005,7 +15005,7 @@ const Backdrop = /* @__PURE__ */ reactExports.forwardRef(function Backdrop2(inPr
15005
15005
  component,
15006
15006
  invisible
15007
15007
  };
15008
- const classes = useUtilityClasses$N(ownerState);
15008
+ const classes = useUtilityClasses$O(ownerState);
15009
15009
  const backwardCompatibleSlots = {
15010
15010
  transition: TransitionComponentProp,
15011
15011
  root: components.Root,
@@ -15048,7 +15048,7 @@ function getCardUtilityClass(slot) {
15048
15048
  return generateUtilityClass("MuiCard", slot);
15049
15049
  }
15050
15050
  generateUtilityClasses("MuiCard", ["root"]);
15051
- const useUtilityClasses$M = (ownerState) => {
15051
+ const useUtilityClasses$N = (ownerState) => {
15052
15052
  const {
15053
15053
  classes
15054
15054
  } = ownerState;
@@ -15078,7 +15078,7 @@ const Card = /* @__PURE__ */ reactExports.forwardRef(function Card2(inProps, ref
15078
15078
  ...props2,
15079
15079
  raised
15080
15080
  };
15081
- const classes = useUtilityClasses$M(ownerState);
15081
+ const classes = useUtilityClasses$N(ownerState);
15082
15082
  return /* @__PURE__ */ jsxRuntimeExports.jsx(CardRoot, {
15083
15083
  className: clsx(classes.root, className),
15084
15084
  elevation: raised ? 8 : void 0,
@@ -15091,7 +15091,7 @@ function getCardActionsUtilityClass(slot) {
15091
15091
  return generateUtilityClass("MuiCardActions", slot);
15092
15092
  }
15093
15093
  generateUtilityClasses("MuiCardActions", ["root", "spacing"]);
15094
- const useUtilityClasses$L = (ownerState) => {
15094
+ const useUtilityClasses$M = (ownerState) => {
15095
15095
  const {
15096
15096
  classes,
15097
15097
  disableSpacing
@@ -15139,7 +15139,7 @@ const CardActions = /* @__PURE__ */ reactExports.forwardRef(function CardActions
15139
15139
  ...props2,
15140
15140
  disableSpacing
15141
15141
  };
15142
- const classes = useUtilityClasses$L(ownerState);
15142
+ const classes = useUtilityClasses$M(ownerState);
15143
15143
  return /* @__PURE__ */ jsxRuntimeExports.jsx(CardActionsRoot, {
15144
15144
  className: clsx(classes.root, className),
15145
15145
  ownerState,
@@ -15151,7 +15151,7 @@ function getCardContentUtilityClass(slot) {
15151
15151
  return generateUtilityClass("MuiCardContent", slot);
15152
15152
  }
15153
15153
  generateUtilityClasses("MuiCardContent", ["root"]);
15154
- const useUtilityClasses$K = (ownerState) => {
15154
+ const useUtilityClasses$L = (ownerState) => {
15155
15155
  const {
15156
15156
  classes
15157
15157
  } = ownerState;
@@ -15184,7 +15184,7 @@ const CardContent = /* @__PURE__ */ reactExports.forwardRef(function CardContent
15184
15184
  ...props2,
15185
15185
  component
15186
15186
  };
15187
- const classes = useUtilityClasses$K(ownerState);
15187
+ const classes = useUtilityClasses$L(ownerState);
15188
15188
  return /* @__PURE__ */ jsxRuntimeExports.jsx(CardContentRoot, {
15189
15189
  as: component,
15190
15190
  className: clsx(classes.root, className),
@@ -15197,7 +15197,7 @@ function getSwitchBaseUtilityClass(slot) {
15197
15197
  return generateUtilityClass("PrivateSwitchBase", slot);
15198
15198
  }
15199
15199
  generateUtilityClasses("PrivateSwitchBase", ["root", "checked", "disabled", "input", "edgeStart", "edgeEnd"]);
15200
- const useUtilityClasses$J = (ownerState) => {
15200
+ const useUtilityClasses$K = (ownerState) => {
15201
15201
  const {
15202
15202
  classes,
15203
15203
  checked,
@@ -15334,7 +15334,7 @@ const SwitchBase = /* @__PURE__ */ reactExports.forwardRef(function SwitchBase2(
15334
15334
  disableFocusRipple,
15335
15335
  edge
15336
15336
  };
15337
- const classes = useUtilityClasses$J(ownerState);
15337
+ const classes = useUtilityClasses$K(ownerState);
15338
15338
  const externalForwardedProps = {
15339
15339
  slots,
15340
15340
  slotProps: {
@@ -15420,7 +15420,7 @@ function getCheckboxUtilityClass(slot) {
15420
15420
  return generateUtilityClass("MuiCheckbox", slot);
15421
15421
  }
15422
15422
  const checkboxClasses = generateUtilityClasses("MuiCheckbox", ["root", "checked", "disabled", "indeterminate", "colorPrimary", "colorSecondary", "sizeSmall", "sizeMedium"]);
15423
- const useUtilityClasses$I = (ownerState) => {
15423
+ const useUtilityClasses$J = (ownerState) => {
15424
15424
  const {
15425
15425
  classes,
15426
15426
  indeterminate,
@@ -15529,7 +15529,7 @@ const Checkbox = /* @__PURE__ */ reactExports.forwardRef(function Checkbox2(inPr
15529
15529
  indeterminate,
15530
15530
  size
15531
15531
  };
15532
- const classes = useUtilityClasses$I(ownerState);
15532
+ const classes = useUtilityClasses$J(ownerState);
15533
15533
  const externalInputProps = slotProps.input ?? inputProps;
15534
15534
  const [RootSlot, rootSlotProps] = useSlot("root", {
15535
15535
  ref,
@@ -16219,7 +16219,7 @@ function getModalUtilityClass(slot) {
16219
16219
  return generateUtilityClass("MuiModal", slot);
16220
16220
  }
16221
16221
  generateUtilityClasses("MuiModal", ["root", "hidden", "backdrop"]);
16222
- const useUtilityClasses$H = (ownerState) => {
16222
+ const useUtilityClasses$I = (ownerState) => {
16223
16223
  const {
16224
16224
  open: open2,
16225
16225
  exited,
@@ -16330,7 +16330,7 @@ const Modal = /* @__PURE__ */ reactExports.forwardRef(function Modal2(inProps, r
16330
16330
  ...propsWithDefaults,
16331
16331
  exited
16332
16332
  };
16333
- const classes = useUtilityClasses$H(ownerState);
16333
+ const classes = useUtilityClasses$I(ownerState);
16334
16334
  const childProps = {};
16335
16335
  if (children.props.tabIndex === void 0) {
16336
16336
  childProps.tabIndex = "-1";
@@ -16423,7 +16423,7 @@ const DialogBackdrop = styled$1(Backdrop, {
16423
16423
  // Improve scrollable dialog support.
16424
16424
  zIndex: -1
16425
16425
  });
16426
- const useUtilityClasses$G = (ownerState) => {
16426
+ const useUtilityClasses$H = (ownerState) => {
16427
16427
  const {
16428
16428
  classes,
16429
16429
  scroll,
@@ -16628,7 +16628,7 @@ const Dialog = /* @__PURE__ */ reactExports.forwardRef(function Dialog2(inProps,
16628
16628
  maxWidth,
16629
16629
  scroll
16630
16630
  };
16631
- const classes = useUtilityClasses$G(ownerState);
16631
+ const classes = useUtilityClasses$H(ownerState);
16632
16632
  const backdropClick = reactExports.useRef();
16633
16633
  const handleMouseDown = (event) => {
16634
16634
  backdropClick.current = event.target === event.currentTarget;
@@ -16750,7 +16750,7 @@ function getDialogActionsUtilityClass(slot) {
16750
16750
  return generateUtilityClass("MuiDialogActions", slot);
16751
16751
  }
16752
16752
  generateUtilityClasses("MuiDialogActions", ["root", "spacing"]);
16753
- const useUtilityClasses$F = (ownerState) => {
16753
+ const useUtilityClasses$G = (ownerState) => {
16754
16754
  const {
16755
16755
  classes,
16756
16756
  disableSpacing
@@ -16800,7 +16800,7 @@ const DialogActions = /* @__PURE__ */ reactExports.forwardRef(function DialogAct
16800
16800
  ...props2,
16801
16801
  disableSpacing
16802
16802
  };
16803
- const classes = useUtilityClasses$F(ownerState);
16803
+ const classes = useUtilityClasses$G(ownerState);
16804
16804
  return /* @__PURE__ */ jsxRuntimeExports.jsx(DialogActionsRoot, {
16805
16805
  className: clsx(classes.root, className),
16806
16806
  ownerState,
@@ -16816,7 +16816,7 @@ function getDialogTitleUtilityClass(slot) {
16816
16816
  return generateUtilityClass("MuiDialogTitle", slot);
16817
16817
  }
16818
16818
  const dialogTitleClasses = generateUtilityClasses("MuiDialogTitle", ["root"]);
16819
- const useUtilityClasses$E = (ownerState) => {
16819
+ const useUtilityClasses$F = (ownerState) => {
16820
16820
  const {
16821
16821
  classes,
16822
16822
  dividers
@@ -16877,7 +16877,7 @@ const DialogContent = /* @__PURE__ */ reactExports.forwardRef(function DialogCon
16877
16877
  ...props2,
16878
16878
  dividers
16879
16879
  };
16880
- const classes = useUtilityClasses$E(ownerState);
16880
+ const classes = useUtilityClasses$F(ownerState);
16881
16881
  return /* @__PURE__ */ jsxRuntimeExports.jsx(DialogContentRoot, {
16882
16882
  className: clsx(classes.root, className),
16883
16883
  ownerState,
@@ -16889,7 +16889,7 @@ function getDialogContentTextUtilityClass(slot) {
16889
16889
  return generateUtilityClass("MuiDialogContentText", slot);
16890
16890
  }
16891
16891
  generateUtilityClasses("MuiDialogContentText", ["root"]);
16892
- const useUtilityClasses$D = (ownerState) => {
16892
+ const useUtilityClasses$E = (ownerState) => {
16893
16893
  const {
16894
16894
  classes
16895
16895
  } = ownerState;
@@ -16919,7 +16919,7 @@ const DialogContentText = /* @__PURE__ */ reactExports.forwardRef(function Dialo
16919
16919
  className,
16920
16920
  ...ownerState
16921
16921
  } = props2;
16922
- const classes = useUtilityClasses$D(ownerState);
16922
+ const classes = useUtilityClasses$E(ownerState);
16923
16923
  return /* @__PURE__ */ jsxRuntimeExports.jsx(DialogContentTextRoot, {
16924
16924
  component: "p",
16925
16925
  variant: "body1",
@@ -16931,7 +16931,7 @@ const DialogContentText = /* @__PURE__ */ reactExports.forwardRef(function Dialo
16931
16931
  classes
16932
16932
  });
16933
16933
  });
16934
- const useUtilityClasses$C = (ownerState) => {
16934
+ const useUtilityClasses$D = (ownerState) => {
16935
16935
  const {
16936
16936
  classes
16937
16937
  } = ownerState;
@@ -16959,7 +16959,7 @@ const DialogTitle = /* @__PURE__ */ reactExports.forwardRef(function DialogTitle
16959
16959
  ...other
16960
16960
  } = props2;
16961
16961
  const ownerState = props2;
16962
- const classes = useUtilityClasses$C(ownerState);
16962
+ const classes = useUtilityClasses$D(ownerState);
16963
16963
  const {
16964
16964
  titleId = idProp
16965
16965
  } = reactExports.useContext(DialogContext);
@@ -16977,7 +16977,7 @@ function getDividerUtilityClass(slot) {
16977
16977
  return generateUtilityClass("MuiDivider", slot);
16978
16978
  }
16979
16979
  const dividerClasses = generateUtilityClasses("MuiDivider", ["root", "absolute", "fullWidth", "inset", "middle", "flexItem", "light", "vertical", "withChildren", "withChildrenVertical", "textAlignRight", "textAlignLeft", "wrapper", "wrapperVertical"]);
16980
- const useUtilityClasses$B = (ownerState) => {
16980
+ const useUtilityClasses$C = (ownerState) => {
16981
16981
  const {
16982
16982
  absolute,
16983
16983
  children,
@@ -17191,7 +17191,7 @@ const Divider = /* @__PURE__ */ reactExports.forwardRef(function Divider2(inProp
17191
17191
  textAlign,
17192
17192
  variant
17193
17193
  };
17194
- const classes = useUtilityClasses$B(ownerState);
17194
+ const classes = useUtilityClasses$C(ownerState);
17195
17195
  return /* @__PURE__ */ jsxRuntimeExports.jsx(DividerRoot, {
17196
17196
  as: component,
17197
17197
  className: clsx(classes.root, className),
@@ -17424,7 +17424,7 @@ const overridesResolver$4 = (props2, styles2) => {
17424
17424
  } = props2;
17425
17425
  return [styles2.root, (ownerState.variant === "permanent" || ownerState.variant === "persistent") && styles2.docked, styles2.modal];
17426
17426
  };
17427
- const useUtilityClasses$A = (ownerState) => {
17427
+ const useUtilityClasses$B = (ownerState) => {
17428
17428
  const {
17429
17429
  classes,
17430
17430
  anchor,
@@ -17614,7 +17614,7 @@ const Drawer = /* @__PURE__ */ reactExports.forwardRef(function Drawer2(inProps,
17614
17614
  variant,
17615
17615
  ...other
17616
17616
  };
17617
- const classes = useUtilityClasses$A(ownerState);
17617
+ const classes = useUtilityClasses$B(ownerState);
17618
17618
  const externalForwardedProps = {
17619
17619
  slots: {
17620
17620
  transition: TransitionComponent,
@@ -17711,7 +17711,7 @@ const Drawer = /* @__PURE__ */ reactExports.forwardRef(function Drawer2(inProps,
17711
17711
  children: slidingDrawer
17712
17712
  });
17713
17713
  });
17714
- const useUtilityClasses$z = (ownerState) => {
17714
+ const useUtilityClasses$A = (ownerState) => {
17715
17715
  const {
17716
17716
  classes,
17717
17717
  disableUnderline,
@@ -17990,7 +17990,7 @@ const FilledInput = /* @__PURE__ */ reactExports.forwardRef(function FilledInput
17990
17990
  multiline,
17991
17991
  type: type2
17992
17992
  };
17993
- const classes = useUtilityClasses$z(props2);
17993
+ const classes = useUtilityClasses$A(props2);
17994
17994
  const filledInputComponentsProps = {
17995
17995
  root: {
17996
17996
  ownerState
@@ -18022,7 +18022,7 @@ function getFormControlUtilityClasses(slot) {
18022
18022
  return generateUtilityClass("MuiFormControl", slot);
18023
18023
  }
18024
18024
  generateUtilityClasses("MuiFormControl", ["root", "marginNone", "marginNormal", "marginDense", "fullWidth", "disabled"]);
18025
- const useUtilityClasses$y = (ownerState) => {
18025
+ const useUtilityClasses$z = (ownerState) => {
18026
18026
  const {
18027
18027
  classes,
18028
18028
  margin,
@@ -18112,7 +18112,7 @@ const FormControl = /* @__PURE__ */ reactExports.forwardRef(function FormControl
18112
18112
  size,
18113
18113
  variant
18114
18114
  };
18115
- const classes = useUtilityClasses$y(ownerState);
18115
+ const classes = useUtilityClasses$z(ownerState);
18116
18116
  const [adornedStart, setAdornedStart] = reactExports.useState(() => {
18117
18117
  let initialAdornedStart = false;
18118
18118
  if (children) {
@@ -18196,7 +18196,7 @@ function getFormControlLabelUtilityClasses(slot) {
18196
18196
  return generateUtilityClass("MuiFormControlLabel", slot);
18197
18197
  }
18198
18198
  const formControlLabelClasses = generateUtilityClasses("MuiFormControlLabel", ["root", "labelPlacementStart", "labelPlacementTop", "labelPlacementBottom", "disabled", "label", "error", "required", "asterisk"]);
18199
- const useUtilityClasses$x = (ownerState) => {
18199
+ const useUtilityClasses$y = (ownerState) => {
18200
18200
  const {
18201
18201
  classes,
18202
18202
  disabled,
@@ -18332,7 +18332,7 @@ const FormControlLabel = /* @__PURE__ */ reactExports.forwardRef(function FormCo
18332
18332
  required,
18333
18333
  error: fcs.error
18334
18334
  };
18335
- const classes = useUtilityClasses$x(ownerState);
18335
+ const classes = useUtilityClasses$y(ownerState);
18336
18336
  const externalForwardedProps = {
18337
18337
  slots,
18338
18338
  slotProps: {
@@ -18374,7 +18374,7 @@ function getFormHelperTextUtilityClasses(slot) {
18374
18374
  }
18375
18375
  const formHelperTextClasses = generateUtilityClasses("MuiFormHelperText", ["root", "error", "disabled", "sizeSmall", "sizeMedium", "contained", "focused", "filled", "required"]);
18376
18376
  var _span$3;
18377
- const useUtilityClasses$w = (ownerState) => {
18377
+ const useUtilityClasses$x = (ownerState) => {
18378
18378
  const {
18379
18379
  classes,
18380
18380
  contained,
@@ -18469,7 +18469,7 @@ const FormHelperText = /* @__PURE__ */ reactExports.forwardRef(function FormHelp
18469
18469
  required: fcs.required
18470
18470
  };
18471
18471
  delete ownerState.ownerState;
18472
- const classes = useUtilityClasses$w(ownerState);
18472
+ const classes = useUtilityClasses$x(ownerState);
18473
18473
  return /* @__PURE__ */ jsxRuntimeExports.jsx(FormHelperTextRoot, {
18474
18474
  as: component,
18475
18475
  className: clsx(classes.root, className),
@@ -18490,7 +18490,7 @@ function getFormLabelUtilityClasses(slot) {
18490
18490
  return generateUtilityClass("MuiFormLabel", slot);
18491
18491
  }
18492
18492
  const formLabelClasses = generateUtilityClasses("MuiFormLabel", ["root", "colorSecondary", "focused", "disabled", "error", "filled", "required", "asterisk"]);
18493
- const useUtilityClasses$v = (ownerState) => {
18493
+ const useUtilityClasses$w = (ownerState) => {
18494
18494
  const {
18495
18495
  classes,
18496
18496
  color: color2,
@@ -18588,7 +18588,7 @@ const FormLabel = /* @__PURE__ */ reactExports.forwardRef(function FormLabel2(in
18588
18588
  focused: fcs.focused,
18589
18589
  required: fcs.required
18590
18590
  };
18591
- const classes = useUtilityClasses$v(ownerState);
18591
+ const classes = useUtilityClasses$w(ownerState);
18592
18592
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(FormLabelRoot, {
18593
18593
  as: component,
18594
18594
  ownerState,
@@ -18916,7 +18916,7 @@ function resolveSpacingClasses(spacing2, breakpoints) {
18916
18916
  });
18917
18917
  return classes;
18918
18918
  }
18919
- const useUtilityClasses$u = (ownerState) => {
18919
+ const useUtilityClasses$v = (ownerState) => {
18920
18920
  const {
18921
18921
  classes,
18922
18922
  container,
@@ -18994,7 +18994,7 @@ const Grid = /* @__PURE__ */ reactExports.forwardRef(function Grid2(inProps, ref
18994
18994
  ...breakpointsValues,
18995
18995
  breakpoints: breakpoints.keys
18996
18996
  };
18997
- const classes = useUtilityClasses$u(ownerState);
18997
+ const classes = useUtilityClasses$v(ownerState);
18998
18998
  return /* @__PURE__ */ jsxRuntimeExports.jsx(GridContext.Provider, {
18999
18999
  value: columns,
19000
19000
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(GridRoot, {
@@ -19166,7 +19166,7 @@ const Grow = /* @__PURE__ */ reactExports.forwardRef(function Grow2(props2, ref)
19166
19166
  if (Grow) {
19167
19167
  Grow.muiSupportAuto = true;
19168
19168
  }
19169
- const useUtilityClasses$t = (ownerState) => {
19169
+ const useUtilityClasses$u = (ownerState) => {
19170
19170
  const {
19171
19171
  classes,
19172
19172
  disableUnderline
@@ -19299,7 +19299,7 @@ const Input = /* @__PURE__ */ reactExports.forwardRef(function Input2(inProps, r
19299
19299
  type: type2 = "text",
19300
19300
  ...other
19301
19301
  } = props2;
19302
- const classes = useUtilityClasses$t(props2);
19302
+ const classes = useUtilityClasses$u(props2);
19303
19303
  const ownerState = {
19304
19304
  disableUnderline
19305
19305
  };
@@ -19338,7 +19338,7 @@ const overridesResolver$3 = (props2, styles2) => {
19338
19338
  } = props2;
19339
19339
  return [styles2.root, styles2[`position${capitalize(ownerState.position)}`], ownerState.disablePointerEvents === true && styles2.disablePointerEvents, styles2[ownerState.variant]];
19340
19340
  };
19341
- const useUtilityClasses$s = (ownerState) => {
19341
+ const useUtilityClasses$t = (ownerState) => {
19342
19342
  const {
19343
19343
  classes,
19344
19344
  disablePointerEvents,
@@ -19425,7 +19425,7 @@ const InputAdornment = /* @__PURE__ */ reactExports.forwardRef(function InputAdo
19425
19425
  position: position2,
19426
19426
  variant
19427
19427
  };
19428
- const classes = useUtilityClasses$s(ownerState);
19428
+ const classes = useUtilityClasses$t(ownerState);
19429
19429
  return /* @__PURE__ */ jsxRuntimeExports.jsx(FormControlContext.Provider, {
19430
19430
  value: null,
19431
19431
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(InputAdornmentRoot, {
@@ -19454,7 +19454,7 @@ function getInputLabelUtilityClasses(slot) {
19454
19454
  return generateUtilityClass("MuiInputLabel", slot);
19455
19455
  }
19456
19456
  generateUtilityClasses("MuiInputLabel", ["root", "focused", "disabled", "error", "required", "asterisk", "formControl", "sizeSmall", "shrink", "animated", "standard", "filled", "outlined"]);
19457
- const useUtilityClasses$r = (ownerState) => {
19457
+ const useUtilityClasses$s = (ownerState) => {
19458
19458
  const {
19459
19459
  classes,
19460
19460
  formControl,
@@ -19643,7 +19643,7 @@ const InputLabel = /* @__PURE__ */ reactExports.forwardRef(function InputLabel2(
19643
19643
  required: fcs.required,
19644
19644
  focused: fcs.focused
19645
19645
  };
19646
- const classes = useUtilityClasses$r(ownerState);
19646
+ const classes = useUtilityClasses$s(ownerState);
19647
19647
  return /* @__PURE__ */ jsxRuntimeExports.jsx(InputLabelRoot, {
19648
19648
  "data-shrink": shrink,
19649
19649
  ref,
@@ -19653,6 +19653,392 @@ const InputLabel = /* @__PURE__ */ reactExports.forwardRef(function InputLabel2(
19653
19653
  classes
19654
19654
  });
19655
19655
  });
19656
+ function getLinearProgressUtilityClass(slot) {
19657
+ return generateUtilityClass("MuiLinearProgress", slot);
19658
+ }
19659
+ generateUtilityClasses("MuiLinearProgress", ["root", "colorPrimary", "colorSecondary", "determinate", "indeterminate", "buffer", "query", "dashed", "dashedColorPrimary", "dashedColorSecondary", "bar", "bar1", "bar2", "barColorPrimary", "barColorSecondary", "bar1Indeterminate", "bar1Determinate", "bar1Buffer", "bar2Indeterminate", "bar2Buffer"]);
19660
+ const TRANSITION_DURATION = 4;
19661
+ const indeterminate1Keyframe = keyframes`
19662
+ 0% {
19663
+ left: -35%;
19664
+ right: 100%;
19665
+ }
19666
+
19667
+ 60% {
19668
+ left: 100%;
19669
+ right: -90%;
19670
+ }
19671
+
19672
+ 100% {
19673
+ left: 100%;
19674
+ right: -90%;
19675
+ }
19676
+ `;
19677
+ const indeterminate1Animation = typeof indeterminate1Keyframe !== "string" ? css$1`
19678
+ animation: ${indeterminate1Keyframe} 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;
19679
+ ` : null;
19680
+ const indeterminate2Keyframe = keyframes`
19681
+ 0% {
19682
+ left: -200%;
19683
+ right: 100%;
19684
+ }
19685
+
19686
+ 60% {
19687
+ left: 107%;
19688
+ right: -8%;
19689
+ }
19690
+
19691
+ 100% {
19692
+ left: 107%;
19693
+ right: -8%;
19694
+ }
19695
+ `;
19696
+ const indeterminate2Animation = typeof indeterminate2Keyframe !== "string" ? css$1`
19697
+ animation: ${indeterminate2Keyframe} 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) 1.15s infinite;
19698
+ ` : null;
19699
+ const bufferKeyframe = keyframes`
19700
+ 0% {
19701
+ opacity: 1;
19702
+ background-position: 0 -23px;
19703
+ }
19704
+
19705
+ 60% {
19706
+ opacity: 0;
19707
+ background-position: 0 -23px;
19708
+ }
19709
+
19710
+ 100% {
19711
+ opacity: 1;
19712
+ background-position: -200px -23px;
19713
+ }
19714
+ `;
19715
+ const bufferAnimation = typeof bufferKeyframe !== "string" ? css$1`
19716
+ animation: ${bufferKeyframe} 3s infinite linear;
19717
+ ` : null;
19718
+ const useUtilityClasses$r = (ownerState) => {
19719
+ const {
19720
+ classes,
19721
+ variant,
19722
+ color: color2
19723
+ } = ownerState;
19724
+ const slots = {
19725
+ root: ["root", `color${capitalize(color2)}`, variant],
19726
+ dashed: ["dashed", `dashedColor${capitalize(color2)}`],
19727
+ bar1: ["bar", "bar1", `barColor${capitalize(color2)}`, (variant === "indeterminate" || variant === "query") && "bar1Indeterminate", variant === "determinate" && "bar1Determinate", variant === "buffer" && "bar1Buffer"],
19728
+ bar2: ["bar", "bar2", variant !== "buffer" && `barColor${capitalize(color2)}`, variant === "buffer" && `color${capitalize(color2)}`, (variant === "indeterminate" || variant === "query") && "bar2Indeterminate", variant === "buffer" && "bar2Buffer"]
19729
+ };
19730
+ return composeClasses(slots, getLinearProgressUtilityClass, classes);
19731
+ };
19732
+ const getColorShade = (theme2, color2) => {
19733
+ if (theme2.vars) {
19734
+ return theme2.vars.palette.LinearProgress[`${color2}Bg`];
19735
+ }
19736
+ return theme2.palette.mode === "light" ? lighten(theme2.palette[color2].main, 0.62) : darken(theme2.palette[color2].main, 0.5);
19737
+ };
19738
+ const LinearProgressRoot = styled$1("span", {
19739
+ name: "MuiLinearProgress",
19740
+ slot: "Root",
19741
+ overridesResolver: (props2, styles2) => {
19742
+ const {
19743
+ ownerState
19744
+ } = props2;
19745
+ return [styles2.root, styles2[`color${capitalize(ownerState.color)}`], styles2[ownerState.variant]];
19746
+ }
19747
+ })(memoTheme(({
19748
+ theme: theme2
19749
+ }) => ({
19750
+ position: "relative",
19751
+ overflow: "hidden",
19752
+ display: "block",
19753
+ height: 4,
19754
+ // Fix Safari's bug during composition of different paint.
19755
+ zIndex: 0,
19756
+ "@media print": {
19757
+ colorAdjust: "exact"
19758
+ },
19759
+ variants: [...Object.entries(theme2.palette).filter(createSimplePaletteValueFilter()).map(([color2]) => ({
19760
+ props: {
19761
+ color: color2
19762
+ },
19763
+ style: {
19764
+ backgroundColor: getColorShade(theme2, color2)
19765
+ }
19766
+ })), {
19767
+ props: ({
19768
+ ownerState
19769
+ }) => ownerState.color === "inherit" && ownerState.variant !== "buffer",
19770
+ style: {
19771
+ "&::before": {
19772
+ content: '""',
19773
+ position: "absolute",
19774
+ left: 0,
19775
+ top: 0,
19776
+ right: 0,
19777
+ bottom: 0,
19778
+ backgroundColor: "currentColor",
19779
+ opacity: 0.3
19780
+ }
19781
+ }
19782
+ }, {
19783
+ props: {
19784
+ variant: "buffer"
19785
+ },
19786
+ style: {
19787
+ backgroundColor: "transparent"
19788
+ }
19789
+ }, {
19790
+ props: {
19791
+ variant: "query"
19792
+ },
19793
+ style: {
19794
+ transform: "rotate(180deg)"
19795
+ }
19796
+ }]
19797
+ })));
19798
+ const LinearProgressDashed = styled$1("span", {
19799
+ name: "MuiLinearProgress",
19800
+ slot: "Dashed",
19801
+ overridesResolver: (props2, styles2) => {
19802
+ const {
19803
+ ownerState
19804
+ } = props2;
19805
+ return [styles2.dashed, styles2[`dashedColor${capitalize(ownerState.color)}`]];
19806
+ }
19807
+ })(memoTheme(({
19808
+ theme: theme2
19809
+ }) => ({
19810
+ position: "absolute",
19811
+ marginTop: 0,
19812
+ height: "100%",
19813
+ width: "100%",
19814
+ backgroundSize: "10px 10px",
19815
+ backgroundPosition: "0 -23px",
19816
+ variants: [{
19817
+ props: {
19818
+ color: "inherit"
19819
+ },
19820
+ style: {
19821
+ opacity: 0.3,
19822
+ backgroundImage: `radial-gradient(currentColor 0%, currentColor 16%, transparent 42%)`
19823
+ }
19824
+ }, ...Object.entries(theme2.palette).filter(createSimplePaletteValueFilter()).map(([color2]) => {
19825
+ const backgroundColor = getColorShade(theme2, color2);
19826
+ return {
19827
+ props: {
19828
+ color: color2
19829
+ },
19830
+ style: {
19831
+ backgroundImage: `radial-gradient(${backgroundColor} 0%, ${backgroundColor} 16%, transparent 42%)`
19832
+ }
19833
+ };
19834
+ })]
19835
+ })), bufferAnimation || {
19836
+ // At runtime for Pigment CSS, `bufferAnimation` will be null and the generated keyframe will be used.
19837
+ animation: `${bufferKeyframe} 3s infinite linear`
19838
+ });
19839
+ const LinearProgressBar1 = styled$1("span", {
19840
+ name: "MuiLinearProgress",
19841
+ slot: "Bar1",
19842
+ overridesResolver: (props2, styles2) => {
19843
+ const {
19844
+ ownerState
19845
+ } = props2;
19846
+ return [styles2.bar, styles2.bar1, styles2[`barColor${capitalize(ownerState.color)}`], (ownerState.variant === "indeterminate" || ownerState.variant === "query") && styles2.bar1Indeterminate, ownerState.variant === "determinate" && styles2.bar1Determinate, ownerState.variant === "buffer" && styles2.bar1Buffer];
19847
+ }
19848
+ })(memoTheme(({
19849
+ theme: theme2
19850
+ }) => ({
19851
+ width: "100%",
19852
+ position: "absolute",
19853
+ left: 0,
19854
+ bottom: 0,
19855
+ top: 0,
19856
+ transition: "transform 0.2s linear",
19857
+ transformOrigin: "left",
19858
+ variants: [{
19859
+ props: {
19860
+ color: "inherit"
19861
+ },
19862
+ style: {
19863
+ backgroundColor: "currentColor"
19864
+ }
19865
+ }, ...Object.entries(theme2.palette).filter(createSimplePaletteValueFilter()).map(([color2]) => ({
19866
+ props: {
19867
+ color: color2
19868
+ },
19869
+ style: {
19870
+ backgroundColor: (theme2.vars || theme2).palette[color2].main
19871
+ }
19872
+ })), {
19873
+ props: {
19874
+ variant: "determinate"
19875
+ },
19876
+ style: {
19877
+ transition: `transform .${TRANSITION_DURATION}s linear`
19878
+ }
19879
+ }, {
19880
+ props: {
19881
+ variant: "buffer"
19882
+ },
19883
+ style: {
19884
+ zIndex: 1,
19885
+ transition: `transform .${TRANSITION_DURATION}s linear`
19886
+ }
19887
+ }, {
19888
+ props: ({
19889
+ ownerState
19890
+ }) => ownerState.variant === "indeterminate" || ownerState.variant === "query",
19891
+ style: {
19892
+ width: "auto"
19893
+ }
19894
+ }, {
19895
+ props: ({
19896
+ ownerState
19897
+ }) => ownerState.variant === "indeterminate" || ownerState.variant === "query",
19898
+ style: indeterminate1Animation || {
19899
+ animation: `${indeterminate1Keyframe} 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite`
19900
+ }
19901
+ }]
19902
+ })));
19903
+ const LinearProgressBar2 = styled$1("span", {
19904
+ name: "MuiLinearProgress",
19905
+ slot: "Bar2",
19906
+ overridesResolver: (props2, styles2) => {
19907
+ const {
19908
+ ownerState
19909
+ } = props2;
19910
+ return [styles2.bar, styles2.bar2, styles2[`barColor${capitalize(ownerState.color)}`], (ownerState.variant === "indeterminate" || ownerState.variant === "query") && styles2.bar2Indeterminate, ownerState.variant === "buffer" && styles2.bar2Buffer];
19911
+ }
19912
+ })(memoTheme(({
19913
+ theme: theme2
19914
+ }) => ({
19915
+ width: "100%",
19916
+ position: "absolute",
19917
+ left: 0,
19918
+ bottom: 0,
19919
+ top: 0,
19920
+ transition: "transform 0.2s linear",
19921
+ transformOrigin: "left",
19922
+ variants: [...Object.entries(theme2.palette).filter(createSimplePaletteValueFilter()).map(([color2]) => ({
19923
+ props: {
19924
+ color: color2
19925
+ },
19926
+ style: {
19927
+ "--LinearProgressBar2-barColor": (theme2.vars || theme2).palette[color2].main
19928
+ }
19929
+ })), {
19930
+ props: ({
19931
+ ownerState
19932
+ }) => ownerState.variant !== "buffer" && ownerState.color !== "inherit",
19933
+ style: {
19934
+ backgroundColor: "var(--LinearProgressBar2-barColor, currentColor)"
19935
+ }
19936
+ }, {
19937
+ props: ({
19938
+ ownerState
19939
+ }) => ownerState.variant !== "buffer" && ownerState.color === "inherit",
19940
+ style: {
19941
+ backgroundColor: "currentColor"
19942
+ }
19943
+ }, {
19944
+ props: {
19945
+ color: "inherit"
19946
+ },
19947
+ style: {
19948
+ opacity: 0.3
19949
+ }
19950
+ }, ...Object.entries(theme2.palette).filter(createSimplePaletteValueFilter()).map(([color2]) => ({
19951
+ props: {
19952
+ color: color2,
19953
+ variant: "buffer"
19954
+ },
19955
+ style: {
19956
+ backgroundColor: getColorShade(theme2, color2),
19957
+ transition: `transform .${TRANSITION_DURATION}s linear`
19958
+ }
19959
+ })), {
19960
+ props: ({
19961
+ ownerState
19962
+ }) => ownerState.variant === "indeterminate" || ownerState.variant === "query",
19963
+ style: {
19964
+ width: "auto"
19965
+ }
19966
+ }, {
19967
+ props: ({
19968
+ ownerState
19969
+ }) => ownerState.variant === "indeterminate" || ownerState.variant === "query",
19970
+ style: indeterminate2Animation || {
19971
+ animation: `${indeterminate2Keyframe} 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) 1.15s infinite`
19972
+ }
19973
+ }]
19974
+ })));
19975
+ const LinearProgress = /* @__PURE__ */ reactExports.forwardRef(function LinearProgress2(inProps, ref) {
19976
+ const props2 = useDefaultProps({
19977
+ props: inProps,
19978
+ name: "MuiLinearProgress"
19979
+ });
19980
+ const {
19981
+ className,
19982
+ color: color2 = "primary",
19983
+ value,
19984
+ valueBuffer,
19985
+ variant = "indeterminate",
19986
+ ...other
19987
+ } = props2;
19988
+ const ownerState = {
19989
+ ...props2,
19990
+ color: color2,
19991
+ variant
19992
+ };
19993
+ const classes = useUtilityClasses$r(ownerState);
19994
+ const isRtl = useRtl();
19995
+ const rootProps = {};
19996
+ const inlineStyles = {
19997
+ bar1: {},
19998
+ bar2: {}
19999
+ };
20000
+ if (variant === "determinate" || variant === "buffer") {
20001
+ if (value !== void 0) {
20002
+ rootProps["aria-valuenow"] = Math.round(value);
20003
+ rootProps["aria-valuemin"] = 0;
20004
+ rootProps["aria-valuemax"] = 100;
20005
+ let transform2 = value - 100;
20006
+ if (isRtl) {
20007
+ transform2 = -transform2;
20008
+ }
20009
+ inlineStyles.bar1.transform = `translateX(${transform2}%)`;
20010
+ }
20011
+ }
20012
+ if (variant === "buffer") {
20013
+ if (valueBuffer !== void 0) {
20014
+ let transform2 = (valueBuffer || 0) - 100;
20015
+ if (isRtl) {
20016
+ transform2 = -transform2;
20017
+ }
20018
+ inlineStyles.bar2.transform = `translateX(${transform2}%)`;
20019
+ }
20020
+ }
20021
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(LinearProgressRoot, {
20022
+ className: clsx(classes.root, className),
20023
+ ownerState,
20024
+ role: "progressbar",
20025
+ ...rootProps,
20026
+ ref,
20027
+ ...other,
20028
+ children: [variant === "buffer" ? /* @__PURE__ */ jsxRuntimeExports.jsx(LinearProgressDashed, {
20029
+ className: classes.dashed,
20030
+ ownerState
20031
+ }) : null, /* @__PURE__ */ jsxRuntimeExports.jsx(LinearProgressBar1, {
20032
+ className: classes.bar1,
20033
+ ownerState,
20034
+ style: inlineStyles.bar1
20035
+ }), variant === "determinate" ? null : /* @__PURE__ */ jsxRuntimeExports.jsx(LinearProgressBar2, {
20036
+ className: classes.bar2,
20037
+ ownerState,
20038
+ style: inlineStyles.bar2
20039
+ })]
20040
+ });
20041
+ });
19656
20042
  function getLinkUtilityClass(slot) {
19657
20043
  return generateUtilityClass("MuiLink", slot);
19658
20044
  }
@@ -22596,7 +22982,7 @@ const styledRootConfig = {
22596
22982
  slot: "Root"
22597
22983
  };
22598
22984
  const StyledInput$1 = styled$1(Input, styledRootConfig)("");
22599
- const StyledOutlinedInput = styled$1(OutlinedInput, styledRootConfig)("");
22985
+ const StyledOutlinedInput$1 = styled$1(OutlinedInput, styledRootConfig)("");
22600
22986
  const StyledFilledInput = styled$1(FilledInput, styledRootConfig)("");
22601
22987
  const Select = /* @__PURE__ */ reactExports.forwardRef(function Select2(inProps, ref) {
22602
22988
  const props2 = useDefaultProps({
@@ -22649,7 +23035,7 @@ const Select = /* @__PURE__ */ reactExports.forwardRef(function Select2(inProps,
22649
23035
  standard: /* @__PURE__ */ jsxRuntimeExports.jsx(StyledInput$1, {
22650
23036
  ownerState
22651
23037
  }),
22652
- outlined: /* @__PURE__ */ jsxRuntimeExports.jsx(StyledOutlinedInput, {
23038
+ outlined: /* @__PURE__ */ jsxRuntimeExports.jsx(StyledOutlinedInput$1, {
22653
23039
  label,
22654
23040
  ownerState
22655
23041
  }),
@@ -34070,105 +34456,6 @@ const useAgentSelectionStore = create$1()(
34070
34456
  }
34071
34457
  )
34072
34458
  );
34073
- /**
34074
- * @license lucide-react v0.507.0 - ISC
34075
- *
34076
- * This source code is licensed under the ISC license.
34077
- * See the LICENSE file in the root directory of this source tree.
34078
- */
34079
- const toKebabCase = (string2) => string2.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
34080
- const toCamelCase = (string2) => string2.replace(
34081
- /^([A-Z])|[\s-_]+(\w)/g,
34082
- (match2, p1, p2) => p2 ? p2.toUpperCase() : p1.toLowerCase()
34083
- );
34084
- const toPascalCase = (string2) => {
34085
- const camelCase = toCamelCase(string2);
34086
- return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);
34087
- };
34088
- const mergeClasses = (...classes) => classes.filter((className, index2, array2) => {
34089
- return Boolean(className) && className.trim() !== "" && array2.indexOf(className) === index2;
34090
- }).join(" ").trim();
34091
- const hasA11yProp = (props2) => {
34092
- for (const prop in props2) {
34093
- if (prop.startsWith("aria-") || prop === "role" || prop === "title") {
34094
- return true;
34095
- }
34096
- }
34097
- };
34098
- /**
34099
- * @license lucide-react v0.507.0 - ISC
34100
- *
34101
- * This source code is licensed under the ISC license.
34102
- * See the LICENSE file in the root directory of this source tree.
34103
- */
34104
- var defaultAttributes = {
34105
- xmlns: "http://www.w3.org/2000/svg",
34106
- width: 24,
34107
- height: 24,
34108
- viewBox: "0 0 24 24",
34109
- fill: "none",
34110
- stroke: "currentColor",
34111
- strokeWidth: 2,
34112
- strokeLinecap: "round",
34113
- strokeLinejoin: "round"
34114
- };
34115
- /**
34116
- * @license lucide-react v0.507.0 - ISC
34117
- *
34118
- * This source code is licensed under the ISC license.
34119
- * See the LICENSE file in the root directory of this source tree.
34120
- */
34121
- const Icon = reactExports.forwardRef(
34122
- ({
34123
- color: color2 = "currentColor",
34124
- size = 24,
34125
- strokeWidth = 2,
34126
- absoluteStrokeWidth,
34127
- className = "",
34128
- children,
34129
- iconNode,
34130
- ...rest
34131
- }, ref) => reactExports.createElement(
34132
- "svg",
34133
- {
34134
- ref,
34135
- ...defaultAttributes,
34136
- width: size,
34137
- height: size,
34138
- stroke: color2,
34139
- strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,
34140
- className: mergeClasses("lucide", className),
34141
- ...!children && !hasA11yProp(rest) && { "aria-hidden": "true" },
34142
- ...rest
34143
- },
34144
- [
34145
- ...iconNode.map(([tag, attrs]) => reactExports.createElement(tag, attrs)),
34146
- ...Array.isArray(children) ? children : [children]
34147
- ]
34148
- )
34149
- );
34150
- /**
34151
- * @license lucide-react v0.507.0 - ISC
34152
- *
34153
- * This source code is licensed under the ISC license.
34154
- * See the LICENSE file in the root directory of this source tree.
34155
- */
34156
- const createLucideIcon = (iconName, iconNode) => {
34157
- const Component = reactExports.forwardRef(
34158
- ({ className, ...props2 }, ref) => reactExports.createElement(Icon, {
34159
- ref,
34160
- iconNode,
34161
- className: mergeClasses(
34162
- `lucide-${toKebabCase(toPascalCase(iconName))}`,
34163
- `lucide-${iconName}`,
34164
- className
34165
- ),
34166
- ...props2
34167
- })
34168
- );
34169
- Component.displayName = toPascalCase(iconName);
34170
- return Component;
34171
- };
34172
34459
  /**
34173
34460
  * @license lucide-react v0.507.0 - ISC
34174
34461
  *
@@ -35513,19 +35800,48 @@ const ChatLayout = ({ sidebar, content: content2 }) => {
35513
35800
  ] });
35514
35801
  };
35515
35802
  const DEFAULT_DEFER_TIMELINE_MS = 48 * 60 * 60 * 1e3;
35803
+ var UpdateType = /* @__PURE__ */ ((UpdateType2) => {
35804
+ UpdateType2["UI"] = "ui";
35805
+ UpdateType2["BACKEND"] = "backend";
35806
+ return UpdateType2;
35807
+ })(UpdateType || {});
35516
35808
  const useDeferredUpdatesStore = create$1()(
35517
35809
  persist(
35518
35810
  (set, get2) => ({
35519
- deferredVersion: null,
35520
- deferredAt: null,
35521
- deferUpdate: (version2) => {
35522
- set({
35523
- deferredVersion: version2,
35524
- deferredAt: Date.now()
35525
- });
35811
+ uiDeferredVersion: null,
35812
+ uiDeferredAt: null,
35813
+ backendDeferredVersion: null,
35814
+ backendDeferredAt: null,
35815
+ hydrated: false,
35816
+ deferUpdate: (type2, version2) => {
35817
+ if (type2 === "ui") {
35818
+ set({
35819
+ uiDeferredVersion: version2,
35820
+ uiDeferredAt: Date.now()
35821
+ });
35822
+ } else {
35823
+ set({
35824
+ backendDeferredVersion: version2,
35825
+ backendDeferredAt: Date.now()
35826
+ });
35827
+ }
35526
35828
  },
35527
- shouldShowUpdate: (version2) => {
35528
- const { deferredVersion, deferredAt } = get2();
35829
+ shouldShowUpdate: (type2, version2) => {
35830
+ const {
35831
+ uiDeferredVersion,
35832
+ uiDeferredAt,
35833
+ backendDeferredVersion,
35834
+ backendDeferredAt
35835
+ } = get2();
35836
+ let deferredVersion;
35837
+ let deferredAt;
35838
+ if (type2 === "ui") {
35839
+ deferredVersion = uiDeferredVersion;
35840
+ deferredAt = uiDeferredAt;
35841
+ } else {
35842
+ deferredVersion = backendDeferredVersion;
35843
+ deferredAt = backendDeferredAt;
35844
+ }
35529
35845
  if (!deferredVersion || !deferredAt) {
35530
35846
  return true;
35531
35847
  }
@@ -35536,15 +35852,31 @@ const useDeferredUpdatesStore = create$1()(
35536
35852
  const timeElapsed = now - deferredAt;
35537
35853
  return timeElapsed > DEFAULT_DEFER_TIMELINE_MS;
35538
35854
  },
35539
- clearDeferredUpdate: () => {
35540
- set({
35541
- deferredVersion: null,
35542
- deferredAt: null
35543
- });
35855
+ clearDeferredUpdate: (type2) => {
35856
+ if (type2 === "ui") {
35857
+ set({
35858
+ uiDeferredVersion: null,
35859
+ uiDeferredAt: null
35860
+ });
35861
+ } else if (type2 === "backend") {
35862
+ set({
35863
+ backendDeferredVersion: null,
35864
+ backendDeferredAt: null
35865
+ });
35866
+ } else {
35867
+ throw new Error(`Invalid update type: ${type2}`);
35868
+ }
35544
35869
  }
35545
35870
  }),
35546
35871
  {
35547
- name: "deferred-updates-storage"
35872
+ name: "deferred-updates-storage",
35873
+ onRehydrateStorage: () => (store) => {
35874
+ if (store && typeof store === "object" && "setState" in store && typeof store.setState === "function") {
35875
+ store.setState({
35876
+ hydrated: true
35877
+ });
35878
+ }
35879
+ }
35548
35880
  }
35549
35881
  )
35550
35882
  );
@@ -35607,7 +35939,8 @@ const CheckForUpdatesButton = () => {
35607
35939
  try {
35608
35940
  setChecking(true);
35609
35941
  manualCheckRef.current = true;
35610
- clearDeferredUpdate();
35942
+ clearDeferredUpdate(UpdateType.UI);
35943
+ clearDeferredUpdate(UpdateType.BACKEND);
35611
35944
  await window.api.updater.checkForAllUpdates();
35612
35945
  } catch (error) {
35613
35946
  setSnackbarMessage(
@@ -36946,39 +37279,58 @@ const useJobPolling = ({
36946
37279
  queryFn: async () => {
36947
37280
  if (!currentJobId) return null;
36948
37281
  const client2 = createLocalOperatorClient(apiConfig.baseUrl);
36949
- const response = await client2.jobs.getJobStatus(currentJobId);
36950
- return response.result;
37282
+ try {
37283
+ const response = await client2.jobs.getJobStatus(currentJobId);
37284
+ return response.result;
37285
+ } catch (err) {
37286
+ const errorObj = err;
37287
+ if (errorObj?.response?.status === 404 || errorObj?.status === 404 || errorObj?.message?.toString().includes("404")) {
37288
+ return { status: "not_found" };
37289
+ }
37290
+ throw err;
37291
+ }
36951
37292
  },
36952
- // Only run the query if we have a job ID and server is online (bypass internet check)
36953
37293
  enabled: shouldEnableQuery({ bypassInternetCheck: true }) && !!currentJobId,
36954
- // Poll every 1 second while job is active
36955
37294
  refetchInterval: currentJobId ? 1e3 : false,
36956
37295
  refetchIntervalInBackground: false,
36957
37296
  refetchOnWindowFocus: true,
36958
- // Don't cache the result
36959
37297
  gcTime: 0,
36960
37298
  staleTime: 0,
36961
- // Retry failed requests to ensure polling continues
36962
37299
  retry: true,
36963
37300
  retryDelay: 1e3
36964
37301
  });
37302
+ function isJobDetails(data2) {
37303
+ return typeof data2 === "object" && data2 !== null && "id" in data2 && typeof data2.id === "string";
37304
+ }
36965
37305
  reactExports.useEffect(() => {
36966
- if (!jobData || !conversationId) return void 0;
36967
- const jobDataSignature = `${jobData.id}-${jobData.status}-${dataUpdatedAt}`;
36968
- if (jobDataSignature !== lastProcessedJobDataRef.current) {
36969
- lastProcessedJobDataRef.current = jobDataSignature;
36970
- if (jobData.current_execution) {
36971
- setCurrentExecution(jobData.current_execution);
36972
- }
36973
- if (jobData.status === "processing") {
36974
- const debounceTimeout = setTimeout(() => {
36975
- updateConversationMessages(conversationId);
36976
- }, 500);
36977
- return () => clearTimeout(debounceTimeout);
36978
- }
36979
- if (jobData.status === "completed" || jobData.status === "failed") {
36980
- handleJobCompletion(jobData);
37306
+ if (!conversationId) return void 0;
37307
+ if (jobData && jobData.status === "not_found") {
37308
+ (async () => {
37309
+ await updateConversationMessages(conversationId);
37310
+ setCurrentJobId(null);
37311
+ setIsLoading(false);
36981
37312
  setCurrentExecution(null);
37313
+ })();
37314
+ return;
37315
+ }
37316
+ if (!jobData) return void 0;
37317
+ if (isJobDetails(jobData)) {
37318
+ const jobDataSignature = `${jobData.id}-${jobData.status}-${dataUpdatedAt}`;
37319
+ if (jobDataSignature !== lastProcessedJobDataRef.current) {
37320
+ lastProcessedJobDataRef.current = jobDataSignature;
37321
+ if (jobData.current_execution) {
37322
+ setCurrentExecution(jobData.current_execution);
37323
+ }
37324
+ if (jobData.status === "processing") {
37325
+ const debounceTimeout = setTimeout(() => {
37326
+ updateConversationMessages(conversationId);
37327
+ }, 500);
37328
+ return () => clearTimeout(debounceTimeout);
37329
+ }
37330
+ if (jobData.status === "completed" || jobData.status === "failed") {
37331
+ handleJobCompletion(jobData);
37332
+ setCurrentExecution(null);
37333
+ }
36982
37334
  }
36983
37335
  }
36984
37336
  return void 0;
@@ -36988,7 +37340,6 @@ const useJobPolling = ({
36988
37340
  handleJobCompletion,
36989
37341
  conversationId,
36990
37342
  updateConversationMessages,
36991
- setCurrentExecution,
36992
37343
  setCurrentJobId
36993
37344
  ]);
36994
37345
  reactExports.useEffect(() => {
@@ -36999,10 +37350,21 @@ const useJobPolling = ({
36999
37350
  }
37000
37351
  }
37001
37352
  }, [error, currentJobId, queryClient2]);
37353
+ const validJobStatuses = [
37354
+ "pending",
37355
+ "processing",
37356
+ "completed",
37357
+ "failed",
37358
+ "cancelled"
37359
+ ];
37360
+ let jobStatus = null;
37361
+ if (jobData && typeof jobData.status === "string" && validJobStatuses.includes(jobData.status)) {
37362
+ jobStatus = jobData.status;
37363
+ }
37002
37364
  return {
37003
37365
  currentJobId,
37004
37366
  setCurrentJobId,
37005
- jobStatus: jobData?.status || null,
37367
+ jobStatus,
37006
37368
  isLoading,
37007
37369
  setIsLoading,
37008
37370
  checkForActiveJobs,
@@ -39753,7 +40115,7 @@ const StyledIcon$1 = styled$1(FontAwesomeIcon)(({ theme: theme2 }) => ({
39753
40115
  color: theme2.palette.primary.main,
39754
40116
  fontSize: "1.2rem"
39755
40117
  }));
39756
- const StyledTextField$5 = styled$1(TextField)(({ theme: theme2 }) => ({
40118
+ const StyledTextField$4 = styled$1(TextField)(({ theme: theme2 }) => ({
39757
40119
  "& .MuiOutlinedInput-root": {
39758
40120
  borderRadius: 8,
39759
40121
  transition: "all 0.2s ease-in-out",
@@ -39774,7 +40136,7 @@ const StyledTextField$5 = styled$1(TextField)(({ theme: theme2 }) => ({
39774
40136
  padding: "12px 14px"
39775
40137
  }
39776
40138
  }));
39777
- const NameField = styled$1(StyledTextField$5)({
40139
+ const NameField = styled$1(StyledTextField$4)({
39778
40140
  marginBottom: 12,
39779
40141
  "& .MuiInputLabel-root": {
39780
40142
  transform: "translate(12px, 12px) scale(1)"
@@ -39903,7 +40265,7 @@ const CreateAgentDialog = ({
39903
40265
  }
39904
40266
  ),
39905
40267
  /* @__PURE__ */ jsxRuntimeExports.jsx(
39906
- StyledTextField$5,
40268
+ StyledTextField$4,
39907
40269
  {
39908
40270
  margin: "dense",
39909
40271
  id: "description",
@@ -39944,7 +40306,7 @@ const LabelIcon$7 = styled$1(Box)({
39944
40306
  display: "flex",
39945
40307
  alignItems: "center"
39946
40308
  });
39947
- const StyledTextField$4 = styled$1(TextField)(
40309
+ const StyledTextField$3 = styled$1(TextField)(
39948
40310
  ({ theme: theme2, multiline }) => ({
39949
40311
  "& .MuiOutlinedInput-root": {
39950
40312
  borderRadius: 6,
@@ -40245,7 +40607,7 @@ const EditableField = ({
40245
40607
  ] }),
40246
40608
  isEditing ? /* @__PURE__ */ jsxRuntimeExports.jsxs(Box, { sx: { position: "relative" }, children: [
40247
40609
  /* @__PURE__ */ jsxRuntimeExports.jsx(
40248
- StyledTextField$4,
40610
+ StyledTextField$3,
40249
40611
  {
40250
40612
  fullWidth: true,
40251
40613
  variant: "outlined",
@@ -40602,13 +40964,13 @@ const SubtitleText = styled$1(Typography)(({ theme: theme2 }) => ({
40602
40964
  }));
40603
40965
  const PageHeader = ({
40604
40966
  title,
40605
- icon: Icon2,
40967
+ icon: Icon,
40606
40968
  subtitle,
40607
40969
  children
40608
40970
  }) => {
40609
40971
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(PageHeaderRoot, { children: [
40610
40972
  /* @__PURE__ */ jsxRuntimeExports.jsxs(LeftContent, { children: [
40611
- /* @__PURE__ */ jsxRuntimeExports.jsx(HeaderIconWrapper, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(Icon2, { size: 24, strokeWidth: 2 }) }),
40973
+ /* @__PURE__ */ jsxRuntimeExports.jsx(HeaderIconWrapper, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(Icon, { size: 24, strokeWidth: 2 }) }),
40612
40974
  /* @__PURE__ */ jsxRuntimeExports.jsxs(TextContainer, { children: [
40613
40975
  /* @__PURE__ */ jsxRuntimeExports.jsx(TitleText$1, { variant: "h1", children: title }),
40614
40976
  subtitle && /* @__PURE__ */ jsxRuntimeExports.jsx(SubtitleText, { variant: "body1", children: subtitle })
@@ -40833,12 +41195,12 @@ const StyledSlider = styled$1(Slider)(({ theme: theme2 }) => ({
40833
41195
  const InputContainer = styled$1(Box)({
40834
41196
  display: "flex",
40835
41197
  alignItems: "center",
40836
- minWidth: "90px"
40837
- // Slightly reduced min-width
41198
+ minWidth: "110px"
41199
+ // Increased min-width for wider input
40838
41200
  });
40839
- const StyledTextField$3 = styled$1(TextField)(({ theme: theme2 }) => ({
40840
- width: "90px",
40841
- // Fixed width
41201
+ const StyledTextField$2 = styled$1(TextField)(({ theme: theme2 }) => ({
41202
+ width: "110px",
41203
+ // Increased width for wider input
40842
41204
  "& .MuiOutlinedInput-root": {
40843
41205
  borderRadius: theme2.shape.borderRadius,
40844
41206
  // Standard border radius
@@ -41021,7 +41383,7 @@ const SliderSetting = ({
41021
41383
  // Consistent loading indicator size
41022
41384
  /* @__PURE__ */ jsxRuntimeExports.jsx(CircularProgress, { size: 20, sx: { margin: "8px 12px" } })
41023
41385
  ) : /* @__PURE__ */ jsxRuntimeExports.jsx(
41024
- StyledTextField$3,
41386
+ StyledTextField$2,
41025
41387
  {
41026
41388
  value: inputValue,
41027
41389
  onChange: handleInputChange,
@@ -43604,10 +43966,13 @@ const UpdateNotification = ({
43604
43966
  const [backendUpdateCompleted, setBackendUpdateCompleted] = reactExports.useState(false);
43605
43967
  const [manualUpdateRequired, setManualUpdateRequired] = reactExports.useState(false);
43606
43968
  const [manualUpdateInfo, setManualUpdateInfo] = reactExports.useState(null);
43607
- const { shouldShowUpdate, deferUpdate } = useDeferredUpdatesStore();
43969
+ const { shouldShowUpdate, deferUpdate, hydrated } = useDeferredUpdatesStore();
43608
43970
  reactExports.useEffect(() => {
43609
43971
  window.api.systemInfo.getAppVersion().then((version2) => setAppVersion(version2)).catch(() => setAppVersion("unknown"));
43610
43972
  }, []);
43973
+ if (!hydrated) {
43974
+ return null;
43975
+ }
43611
43976
  const checkForUpdates = reactExports.useCallback(async () => {
43612
43977
  try {
43613
43978
  setChecking(true);
@@ -43655,7 +44020,7 @@ const UpdateNotification = ({
43655
44020
  }, []);
43656
44021
  const handleDeferBackendUpdate = reactExports.useCallback(() => {
43657
44022
  if (backendUpdateInfo) {
43658
- deferUpdate(backendUpdateInfo.latestVersion);
44023
+ deferUpdate(UpdateType.BACKEND, backendUpdateInfo.latestVersion);
43659
44024
  setSnackbarOpen(false);
43660
44025
  setBackendUpdateAvailable(false);
43661
44026
  setBackendUpdateInfo(null);
@@ -43663,7 +44028,7 @@ const UpdateNotification = ({
43663
44028
  }, [deferUpdate, backendUpdateInfo]);
43664
44029
  const handleDeferUpdate = reactExports.useCallback(() => {
43665
44030
  if (updateInfo) {
43666
- deferUpdate(updateInfo.version);
44031
+ deferUpdate(UpdateType.UI, updateInfo.version);
43667
44032
  setSnackbarOpen(false);
43668
44033
  setUpdateAvailable(false);
43669
44034
  setUpdateDownloaded(false);
@@ -43672,7 +44037,7 @@ const UpdateNotification = ({
43672
44037
  reactExports.useEffect(() => {
43673
44038
  const removeUpdateAvailableListener = window.api.updater.onUpdateAvailable(
43674
44039
  (info) => {
43675
- if (shouldShowUpdate(info.version)) {
44040
+ if (shouldShowUpdate(UpdateType.UI, info.version)) {
43676
44041
  setUpdateAvailable(true);
43677
44042
  setUpdateInfo(info);
43678
44043
  setSnackbarOpen(true);
@@ -43685,7 +44050,7 @@ const UpdateNotification = ({
43685
44050
  });
43686
44051
  const removeUpdateDownloadedListener = window.api.updater.onUpdateDownloaded((info) => {
43687
44052
  setDownloading(false);
43688
- if (shouldShowUpdate(info.version)) {
44053
+ if (shouldShowUpdate(UpdateType.UI, info.version)) {
43689
44054
  setUpdateDownloaded(true);
43690
44055
  setUpdateInfo(info);
43691
44056
  setSnackbarOpen(true);
@@ -43714,7 +44079,7 @@ const UpdateNotification = ({
43714
44079
  }
43715
44080
  );
43716
44081
  const removeBackendUpdateAvailableListener = window.api.updater.onBackendUpdateAvailable((info) => {
43717
- if (shouldShowUpdate(info.latestVersion)) {
44082
+ if (shouldShowUpdate(UpdateType.BACKEND, info.latestVersion)) {
43718
44083
  const enhancedInfo = {
43719
44084
  ...info,
43720
44085
  canManageUpdate: !info.updateCommand.includes("manually")
@@ -49887,7 +50252,7 @@ const MetaInfoContainer$1 = styled$1(Box)(({ theme: theme2 }) => ({
49887
50252
  color: theme2.palette.text.secondary,
49888
50253
  fontSize: "0.875rem"
49889
50254
  }));
49890
- const DescriptionBox$2 = styled$1(Box)(({ theme: theme2 }) => ({
50255
+ const DescriptionBox$1 = styled$1(Box)(({ theme: theme2 }) => ({
49891
50256
  marginTop: theme2.spacing(2),
49892
50257
  marginBottom: theme2.spacing(4),
49893
50258
  lineHeight: 1.6
@@ -50137,7 +50502,7 @@ const AgentDetailsPage = () => {
50137
50502
  ")"
50138
50503
  ] })
50139
50504
  ] }),
50140
- /* @__PURE__ */ jsxRuntimeExports.jsx(DescriptionBox$2, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { variant: "body1", sx: { fontSize: "0.875rem" }, children: agent.description || "No description provided." }) }),
50505
+ /* @__PURE__ */ jsxRuntimeExports.jsx(DescriptionBox$1, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { variant: "body1", sx: { fontSize: "0.875rem" }, children: agent.description || "No description provided." }) }),
50141
50506
  /* @__PURE__ */ jsxRuntimeExports.jsx(Divider, { sx: { my: 3 } }),
50142
50507
  /* @__PURE__ */ jsxRuntimeExports.jsx(CommentsSection, { agentId: agent.id }),
50143
50508
  /* @__PURE__ */ jsxRuntimeExports.jsxs(
@@ -82795,7 +83160,7 @@ const languages = [
82795
83160
  name: "Go",
82796
83161
  extensions: ["go"],
82797
83162
  load() {
82798
- return __vitePreload(() => import("./index-CUWbsc3s.js"), true ? __vite__mapDeps([0,1,2]) : void 0, import.meta.url).then((m2) => m2.go());
83163
+ return __vitePreload(() => import("./index-DV8SteiB.js"), true ? __vite__mapDeps([0,1,2]) : void 0, import.meta.url).then((m2) => m2.go());
82799
83164
  }
82800
83165
  }),
82801
83166
  /* @__PURE__ */ LanguageDescription.of({
@@ -82972,7 +83337,7 @@ const languages = [
82972
83337
  alias: ["yml"],
82973
83338
  extensions: ["yaml", "yml"],
82974
83339
  load() {
82975
- return __vitePreload(() => import("./index-DlgVvD7O.js"), true ? __vite__mapDeps([3,1,2]) : void 0, import.meta.url).then((m2) => m2.yaml());
83340
+ return __vitePreload(() => import("./index-Dp4J_UIV.js"), true ? __vite__mapDeps([3,1,2]) : void 0, import.meta.url).then((m2) => m2.yaml());
82976
83341
  }
82977
83342
  }),
82978
83343
  // Legacy modes ported from CodeMirror 5
@@ -141592,7 +141957,7 @@ const OptionsButton = styled$1(IconButton)(({ theme: theme2 }) => ({
141592
141957
  transform: "translateY(-1px)"
141593
141958
  }
141594
141959
  }));
141595
- const DescriptionBox$1 = styled$1(Box)({
141960
+ const DescriptionBox = styled$1(Box)({
141596
141961
  display: "flex",
141597
141962
  flexDirection: "column",
141598
141963
  width: "90%"
@@ -141626,7 +141991,7 @@ const ChatHeader = ({
141626
141991
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(Bot, { size: 24 })
141627
141992
  }
141628
141993
  ),
141629
- /* @__PURE__ */ jsxRuntimeExports.jsxs(DescriptionBox$1, { children: [
141994
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(DescriptionBox, { children: [
141630
141995
  /* @__PURE__ */ jsxRuntimeExports.jsx(
141631
141996
  Typography,
141632
141997
  {
@@ -142676,7 +143041,7 @@ const SuggestionChip = styled$1(Button)(({ theme: theme2 }) => ({
142676
143041
  }
142677
143042
  }
142678
143043
  }));
142679
- const StyledTextField$2 = styled$1(TextField)(({ theme: theme2 }) => ({
143044
+ const StyledTextField$1 = styled$1(TextField)(({ theme: theme2 }) => ({
142680
143045
  flex: 1,
142681
143046
  "& .MuiOutlinedInput-root": {
142682
143047
  backgroundColor: "transparent",
@@ -142886,7 +143251,7 @@ const MessageInput = ({
142886
143251
  }
142887
143252
  ),
142888
143253
  /* @__PURE__ */ jsxRuntimeExports.jsx(
142889
- StyledTextField$2,
143254
+ StyledTextField$1,
142890
143255
  {
142891
143256
  fullWidth: true,
142892
143257
  placeholder: isInputDisabled ? "Agent is busy" : "Ask me for help",
@@ -180937,8 +181302,13 @@ const FileAttachment = ({
180937
181302
  const state = useCanvasStore.getState();
180938
181303
  const files = state.conversations[conversationId]?.files ?? [];
180939
181304
  const openTabs = state.conversations[conversationId]?.openTabs ?? [];
180940
- const existsFile = files.some((d2) => d2.id === docId);
180941
- const updatedFiles = existsFile ? files : [...files, newDoc];
181305
+ const updatedFiles = (() => {
181306
+ const idx = files.findIndex((d2) => d2.id === docId);
181307
+ if (idx !== -1) {
181308
+ return [...files.slice(0, idx), newDoc, ...files.slice(idx + 1)];
181309
+ }
181310
+ return [...files, newDoc];
181311
+ })();
180942
181312
  setFiles(conversationId, updatedFiles);
180943
181313
  const existsTab = openTabs.some((t2) => t2.id === docId);
180944
181314
  const updatedTabs = existsTab ? openTabs : [...openTabs, { id: docId, title }];
@@ -182346,6 +182716,47 @@ const getAttachmentUrl = (client, path2) => {
182346
182716
  };
182347
182717
  const MessageItem = reactExports.memo(
182348
182718
  ({ message: message2, onMessageComplete, isLastMessage, conversationId }) => {
182719
+ const setFiles = useCanvasStore((s2) => s2.setFiles);
182720
+ reactExports.useEffect(() => {
182721
+ if (!message2.files || message2.files.length === 0) return;
182722
+ const state = useCanvasStore.getState();
182723
+ const conv = state.conversations[conversationId];
182724
+ if (!conv) return;
182725
+ const { openTabs, files } = conv;
182726
+ if (!openTabs || openTabs.length === 0) return;
182727
+ (async () => {
182728
+ let updatedFiles = files;
182729
+ let didUpdate = false;
182730
+ for (const filePath of message2.files ?? []) {
182731
+ const normalizedPath = filePath.startsWith("file://") ? filePath.substring(7) : filePath;
182732
+ const tabIsOpen = openTabs.some((tab2) => tab2.id === normalizedPath);
182733
+ if (!tabIsOpen) continue;
182734
+ const fileIdx = updatedFiles.findIndex(
182735
+ (f2) => f2.id === normalizedPath
182736
+ );
182737
+ if (fileIdx === -1) continue;
182738
+ try {
182739
+ const result = await window.api.readFile(normalizedPath);
182740
+ if (result.success) {
182741
+ const currentDoc = updatedFiles[fileIdx];
182742
+ if (currentDoc.content !== result.data) {
182743
+ const updatedDoc = { ...currentDoc, content: result.data };
182744
+ updatedFiles = [
182745
+ ...updatedFiles.slice(0, fileIdx),
182746
+ updatedDoc,
182747
+ ...updatedFiles.slice(fileIdx + 1)
182748
+ ];
182749
+ didUpdate = true;
182750
+ }
182751
+ }
182752
+ } catch (_2) {
182753
+ }
182754
+ }
182755
+ if (didUpdate) {
182756
+ setFiles(conversationId, updatedFiles);
182757
+ }
182758
+ })();
182759
+ }, [message2, conversationId, setFiles]);
182349
182760
  const shouldHide = (message2.action === "DONE" || message2.action === "ASK") && message2.execution_type === "action" && message2.task_classification === "conversation" || !message2.message && (!message2.files || message2.files.length === 0) && !message2.code && !message2.stdout && !message2.stderr && !message2.logging && message2.is_complete;
182350
182761
  if (shouldHide) {
182351
182762
  return null;
@@ -184084,7 +184495,7 @@ const menuItemSx = (theme2) => ({
184084
184495
  }
184085
184496
  }
184086
184497
  });
184087
- const menuPropsSx = (theme2) => ({
184498
+ const menuPropsSx$1 = (theme2) => ({
184088
184499
  PaperProps: {
184089
184500
  sx: {
184090
184501
  mt: 0.5,
@@ -184100,8 +184511,6 @@ const RECOMMENDED_AGENT_COUNT = 8;
184100
184511
  const StyledGridContainer = styled$1(Grid)(({ theme: theme2 }) => ({
184101
184512
  overflowY: "auto",
184102
184513
  padding: theme2.spacing(2, 0),
184103
- height: 400,
184104
- maxHeight: 400,
184105
184514
  flexGrow: 1,
184106
184515
  width: "100%",
184107
184516
  "&::-webkit-scrollbar": {
@@ -184221,7 +184630,7 @@ const CreateAgentStep = ({
184221
184630
  ] })
184222
184631
  }
184223
184632
  ),
184224
- !isLoadingAgents && !agentsError && /* @__PURE__ */ jsxRuntimeExports.jsx(StyledGridContainer, { container: true, spacing: 2, children: recommendedAgents.length === 0 ? /* @__PURE__ */ jsxRuntimeExports.jsx(Grid, { item: true, xs: 12, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { variant: "body1", align: "center", children: "No recommended agents found. You can proceed or add agents later." }) }) : recommendedAgents.map((agent) => /* @__PURE__ */ jsxRuntimeExports.jsx(Grid, { item: true, xs: 12, sm: 6, md: 6, lg: 4, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
184633
+ !isLoadingAgents && !agentsError && /* @__PURE__ */ jsxRuntimeExports.jsx(StyledGridContainer, { container: true, spacing: 2, children: recommendedAgents.length === 0 ? /* @__PURE__ */ jsxRuntimeExports.jsx(Grid, { item: true, xs: 12, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { variant: "body1", align: "center", children: "No recommended agents found. You can proceed or add agents later." }) }) : recommendedAgents.map((agent) => /* @__PURE__ */ jsxRuntimeExports.jsx(Grid, { item: true, xs: 12, sm: 6, md: 6, lg: 6, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
184225
184634
  Box,
184226
184635
  {
184227
184636
  sx: {
@@ -184536,7 +184945,7 @@ const DefaultModelStep = () => {
184536
184945
  id: "provider-select",
184537
184946
  value: selectedProvider,
184538
184947
  onChange: handleProviderChange,
184539
- MenuProps: menuPropsSx(theme2),
184948
+ MenuProps: menuPropsSx$1(theme2),
184540
184949
  children: availableProviders.map((provider) => /* @__PURE__ */ jsxRuntimeExports.jsx(MenuItem, { value: provider.id, children: provider.name }, provider.id))
184541
184950
  }
184542
184951
  ),
@@ -184556,7 +184965,7 @@ const DefaultModelStep = () => {
184556
184965
  id: "model-select",
184557
184966
  value: selectedModel,
184558
184967
  onChange: handleModelChange,
184559
- MenuProps: menuPropsSx(theme2),
184968
+ MenuProps: menuPropsSx$1(theme2),
184560
184969
  disabled: availableModels.length === 0,
184561
184970
  children: [
184562
184971
  availableModels.length === 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(MenuItem, { disabled: true, value: "", children: "No models found for this provider" }),
@@ -184859,7 +185268,7 @@ const ModelCredentialStep = () => {
184859
185268
  id: "credential-select",
184860
185269
  value: selectedCredential,
184861
185270
  onChange: handleCredentialChange,
184862
- MenuProps: menuPropsSx(theme2),
185271
+ MenuProps: menuPropsSx$1(theme2),
184863
185272
  children: modelProviderCredentials.map((cred) => /* @__PURE__ */ jsxRuntimeExports.jsx(MenuItem, { value: cred.key, children: cred.name }, cred.key))
184864
185273
  }
184865
185274
  ),
@@ -185111,22 +185520,7 @@ const RadientChoiceStep = ({
185111
185520
  "Get started for free with ",
185112
185521
  /* @__PURE__ */ jsxRuntimeExports.jsx(RadientPassText, { children: "Radient Pass" })
185113
185522
  ] }),
185114
- /* @__PURE__ */ jsxRuntimeExports.jsxs(CardSubtitle, { variant: "body2", children: [
185115
- " ",
185116
- "Batteries included with",
185117
- " ",
185118
- /* @__PURE__ */ jsxRuntimeExports.jsx(
185119
- Typography,
185120
- {
185121
- component: "span",
185122
- fontWeight: "medium",
185123
- color: radientTheme.palette.primary.main,
185124
- sx: { fontSize: "inherit" },
185125
- children: "web search, image generation, site crawling, hundreds of AI models"
185126
- }
185127
- ),
185128
- ", and more. One API key instead of many, with potential savings when Radient picks the best model to handle each step. Two-click setup, no credit card required."
185129
- ] })
185523
+ /* @__PURE__ */ jsxRuntimeExports.jsx(CardSubtitle, { variant: "body2", children: "Designed for best speed, accuracy, and performance with Local Operator. Get access to all tools and models at once, with potential savings when Radient picks the best model to handle each step. Two-click setup, no credit card required." })
185130
185524
  ] }),
185131
185525
  /* @__PURE__ */ jsxRuntimeExports.jsx(CardIcon, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
185132
185526
  "img",
@@ -185153,7 +185547,7 @@ const RadientChoiceStep = ({
185153
185547
  "Set up your own keys ",
185154
185548
  /* @__PURE__ */ jsxRuntimeExports.jsx(FreeText, { children: "(Free Forever)" })
185155
185549
  ] }),
185156
- /* @__PURE__ */ jsxRuntimeExports.jsx(CardSubtitle, { variant: "body2", children: "Full flexibility for technical users. Bring your own API keys for providers like OpenAI, Anthropic, SERP API, etc., and manage billing separately." })
185550
+ /* @__PURE__ */ jsxRuntimeExports.jsx(CardSubtitle, { variant: "body2", children: "Full flexibility for technical users. Bring your own API keys for providers like OpenAI, Anthropic, Tavily API, etc., and manage billing separately." })
185157
185551
  ] }),
185158
185552
  /* @__PURE__ */ jsxRuntimeExports.jsx(CardIcon, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { fontSize: "3.5rem", children: "🔧" }) }),
185159
185553
  /* @__PURE__ */ jsxRuntimeExports.jsxs(ChooseOption, { className: "choose-option", children: [
@@ -185466,7 +185860,7 @@ const SearchApiStep = () => {
185466
185860
  id: "search-api-select",
185467
185861
  value: selectedCredential,
185468
185862
  onChange: handleCredentialChange,
185469
- MenuProps: menuPropsSx(theme2),
185863
+ MenuProps: menuPropsSx$1(theme2),
185470
185864
  children: searchApiCredentials.map((cred) => /* @__PURE__ */ jsxRuntimeExports.jsx(MenuItem, { value: cred.key, children: cred.key === RECOMMENDED_CREDENTIAL ? `${cred.name} (Recommended)` : cred.name }, cred.key))
185471
185865
  }
185472
185866
  ),
@@ -185755,7 +186149,6 @@ const OnboardingModal = ({ open: open2 }) => {
185755
186149
  }
185756
186150
  } catch (error) {
185757
186151
  console.error("Error validating session/fetching user info:", error);
185758
- showErrorToast("Session validation failed. Please sign in again.");
185759
186152
  clearSession();
185760
186153
  }
185761
186154
  };
@@ -209383,15 +209776,20 @@ const CredentialCard = ({
209383
209776
  variant: "outlined",
209384
209777
  size: "small",
209385
209778
  color: "primary",
209386
- startIcon: /* @__PURE__ */ jsxRuntimeExports.jsx(FontAwesomeIcon, { icon: faKey, size: "xs" }),
209779
+ startIcon: /* @__PURE__ */ jsxRuntimeExports.jsx(
209780
+ FontAwesomeIcon,
209781
+ {
209782
+ icon: faKey,
209783
+ size: "xs",
209784
+ style: { fontSize: "0.875rem" }
209785
+ }
209786
+ ),
209387
209787
  onClick: () => onAdd?.(credentialKey),
209388
209788
  sx: { ...primaryButtonSx, boxShadow: "none" },
209389
209789
  children: "Configure"
209390
209790
  }
209391
209791
  ),
209392
- credInfo.url && // Keep ts-ignore as requested
209393
- // @ts-ignore
209394
- /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip$1, { title: `Get your ${credInfo.name} key`, placement: "top", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
209792
+ credInfo.url && /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip$1, { title: `Get your ${credInfo.name} key`, placement: "top", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
209395
209793
  IconButton,
209396
209794
  {
209397
209795
  size: "small",
@@ -209407,57 +209805,101 @@ const CredentialCard = ({
209407
209805
  ] }) })
209408
209806
  ] });
209409
209807
  };
209410
- const StyledFormControl = styled$1(FormControl)(({ theme: theme2 }) => ({
209411
- marginBottom: theme2.spacing(2.5)
209412
- // Consistent spacing
209413
- }));
209414
- const StyledTextField$1 = styled$1(TextField)(({ theme: theme2 }) => ({
209415
- marginBottom: theme2.spacing(2.5),
209416
- // Consistent spacing
209417
- "& .MuiInputBase-root": {
209418
- borderRadius: theme2.shape.borderRadius * 0.75,
209419
- backgroundColor: theme2.palette.background.paper
209808
+ const StyledOutlinedInput = styled$1(OutlinedInput)(({ theme: theme2 }) => ({
209809
+ borderRadius: theme2.shape.borderRadius * 0.75,
209810
+ backgroundColor: theme2.palette.background.paper,
209811
+ border: `1px solid ${theme2.palette.divider}`,
209812
+ minHeight: "40px",
209813
+ height: "40px",
209814
+ fontSize: "0.875rem",
209815
+ paddingRight: 0,
209816
+ "& .MuiOutlinedInput-notchedOutline": {
209817
+ border: "none"
209818
+ },
209819
+ "& .MuiSelect-select": {
209820
+ display: "flex",
209821
+ alignItems: "center",
209822
+ gap: theme2.spacing(1),
209823
+ fontSize: "0.875rem",
209824
+ padding: theme2.spacing(1, 1.5),
209825
+ height: "calc(40px - 16px)",
209826
+ boxSizing: "border-box"
209420
209827
  },
209828
+ "& .MuiInputBase-input": {
209829
+ padding: theme2.spacing(1, 1.5),
209830
+ fontSize: "0.875rem",
209831
+ height: "calc(40px - 16px)",
209832
+ boxSizing: "border-box"
209833
+ },
209834
+ "& .MuiInputBase-input::placeholder": {
209835
+ color: theme2.palette.text.disabled,
209836
+ opacity: 1
209837
+ },
209838
+ "&:hover": {
209839
+ borderColor: theme2.palette.text.secondary
209840
+ },
209841
+ "&.Mui-focused": {
209842
+ borderColor: theme2.palette.primary.main,
209843
+ boxShadow: `0 0 0 2px ${theme2.palette.primary.main}33`
209844
+ }
209845
+ }));
209846
+ const menuPropsSx = (theme2) => ({
209847
+ PaperProps: {
209848
+ sx: {
209849
+ borderRadius: theme2.shape.borderRadius * 0.75,
209850
+ boxShadow: theme2.shadows[2],
209851
+ mt: 0.5,
209852
+ "& .MuiMenuItem-root": {
209853
+ fontSize: "0.875rem",
209854
+ minHeight: "40px",
209855
+ px: 2
209856
+ }
209857
+ }
209858
+ }
209859
+ });
209860
+ const textFieldInputSx = (theme2) => ({
209421
209861
  "& .MuiOutlinedInput-root": {
209422
- "& .MuiOutlinedInput-notchedOutline": {
209423
- borderColor: theme2.palette.divider
209424
- },
209425
- "&:hover .MuiOutlinedInput-notchedOutline": {
209862
+ borderRadius: theme2.shape.borderRadius * 0.75,
209863
+ backgroundColor: theme2.palette.background.paper,
209864
+ border: `1px solid ${theme2.palette.divider}`,
209865
+ minHeight: "40px",
209866
+ height: "40px",
209867
+ transition: "border-color 0.2s ease, box-shadow 0.2s ease",
209868
+ "&:hover": {
209426
209869
  borderColor: theme2.palette.text.secondary
209427
209870
  },
209428
- "&.Mui-focused .MuiOutlinedInput-notchedOutline": {
209871
+ "&.Mui-focused": {
209429
209872
  borderColor: theme2.palette.primary.main,
209430
- borderWidth: "1px"
209873
+ boxShadow: `0 0 0 2px ${theme2.palette.primary.main}33`
209874
+ },
209875
+ "& .MuiOutlinedInput-notchedOutline": {
209876
+ border: "none"
209431
209877
  }
209432
209878
  },
209433
- "& .MuiInputLabel-root": {
209879
+ "& .MuiInputBase-input": {
209880
+ padding: theme2.spacing(1, 1.5),
209434
209881
  fontSize: "0.875rem",
209435
- "&.Mui-focused": {
209436
- color: theme2.palette.primary.main
209437
- }
209438
- }
209439
- }));
209440
- const StyledSelect = styled$1(Select)(({ theme: theme2 }) => ({
209441
- borderRadius: theme2.shape.borderRadius * 0.75,
209442
- backgroundColor: theme2.palette.background.paper,
209443
- "& .MuiOutlinedInput-notchedOutline": {
209444
- borderColor: theme2.palette.divider
209882
+ height: "calc(40px - 16px)",
209883
+ boxSizing: "border-box"
209445
209884
  },
209446
- "&:hover .MuiOutlinedInput-notchedOutline": {
209447
- borderColor: theme2.palette.text.secondary
209885
+ "& .MuiInputBase-input::placeholder": {
209886
+ color: theme2.palette.text.disabled,
209887
+ opacity: 1
209448
209888
  },
209449
- "&.Mui-focused .MuiOutlinedInput-notchedOutline": {
209450
- borderColor: theme2.palette.primary.main
209889
+ "& .MuiFormHelperText-root": {
209890
+ fontSize: "0.75rem",
209891
+ mt: 0.5,
209892
+ ml: 0.5
209451
209893
  }
209452
- }));
209453
- const DescriptionBox = styled$1(Box)(({ theme: theme2 }) => ({
209894
+ });
209895
+ const DescriptionBoxSx = (theme2) => ({
209454
209896
  marginTop: theme2.spacing(1),
209455
209897
  marginBottom: theme2.spacing(2),
209456
209898
  padding: theme2.spacing(1.5),
209457
- backgroundColor: theme2.palette.action.hover,
209899
+ backgroundColor: alpha$1(theme2.palette.background.default, 0.5),
209458
209900
  border: `1px solid ${theme2.palette.divider}`,
209459
209901
  borderRadius: theme2.shape.borderRadius * 0.75
209460
- }));
209902
+ });
209461
209903
  const CredentialDialog = ({
209462
209904
  open: open2,
209463
209905
  onClose,
@@ -209510,6 +209952,21 @@ const CredentialDialog = ({
209510
209952
  (cred) => cred.key === key
209511
209953
  );
209512
209954
  const dialogTitle = isEditMode ? "Update Credential" : "Add New Credential";
209955
+ const FieldLabel2 = styled$1("div")(({ theme: theme22 }) => ({
209956
+ fontFamily: theme22.typography.fontFamily,
209957
+ fontSize: "0.875rem",
209958
+ fontWeight: 500,
209959
+ color: theme22.palette.text.secondary,
209960
+ marginBottom: 6,
209961
+ display: "flex",
209962
+ alignItems: "center"
209963
+ }));
209964
+ const LabelIcon2 = styled$1(Box)({
209965
+ marginRight: 8,
209966
+ opacity: 0.9,
209967
+ display: "flex",
209968
+ alignItems: "center"
209969
+ });
209513
209970
  const dialogActions = /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
209514
209971
  /* @__PURE__ */ jsxRuntimeExports.jsx(
209515
209972
  Button,
@@ -209556,7 +210013,7 @@ const CredentialDialog = ({
209556
210013
  }
209557
210014
  )
209558
210015
  ] });
209559
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(
210016
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
209560
210017
  BaseDialog,
209561
210018
  {
209562
210019
  open: open2,
@@ -209565,111 +210022,120 @@ const CredentialDialog = ({
209565
210022
  actions: dialogActions,
209566
210023
  maxWidth: "sm",
209567
210024
  fullWidth: true,
209568
- children: [
209569
- /* @__PURE__ */ jsxRuntimeExports.jsxs(Box, { sx: { pt: 2 }, children: [
209570
- isEditMode ? (
209571
- // Display the key being edited (non-editable)
209572
- /* @__PURE__ */ jsxRuntimeExports.jsxs(Box, { mb: 2.5, children: [
209573
- /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { variant: "overline", color: "text.secondary", children: "Credential Key" }),
209574
- /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { fontWeight: 500, children: initialKey })
209575
- ] })
209576
- ) : (
209577
- // Show selection for adding new credentials
209578
- /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
209579
- /* @__PURE__ */ jsxRuntimeExports.jsxs(StyledFormControl, { fullWidth: true, children: [
209580
- /* @__PURE__ */ jsxRuntimeExports.jsx(InputLabel, { id: "credential-key-label", children: "Credential Type" }),
209581
- /* @__PURE__ */ jsxRuntimeExports.jsxs(
209582
- StyledSelect,
209583
- {
209584
- labelId: "credential-key-label",
209585
- value: useCustomKey ? "_custom_" : key,
209586
- label: "Credential Type",
209587
- onChange: (e3) => {
209588
- const selectedValue = e3.target.value;
209589
- if (selectedValue === "_custom_") {
209590
- setUseCustomKey(true);
209591
- setKey("");
209592
- } else {
209593
- setUseCustomKey(false);
209594
- setKey(selectedValue);
209595
- setCustomKey("");
209596
- }
209597
- },
209598
- displayEmpty: !key && !useCustomKey,
209599
- children: [
209600
- /* @__PURE__ */ jsxRuntimeExports.jsx(MenuItem, { value: "", disabled: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx("em", { children: "Select a credential type..." }) }),
209601
- CREDENTIAL_MANIFEST.map((cred) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
209602
- MenuItem,
209603
- {
209604
- value: cred.key,
209605
- disabled: isExistingKey(cred.key),
209606
- children: [
209607
- cred.name,
209608
- " ",
209609
- isExistingKey(cred.key) && "(Configured)"
209610
- ]
209611
- },
209612
- cred.key
209613
- )),
209614
- /* @__PURE__ */ jsxRuntimeExports.jsx(MenuItem, { value: "_custom_", children: "Custom Credential" })
209615
- ]
209616
- }
209617
- )
209618
- ] }),
209619
- useCustomKey && /* @__PURE__ */ jsxRuntimeExports.jsx(
209620
- StyledTextField$1,
209621
- {
209622
- label: "Custom Credential Key",
209623
- fullWidth: true,
209624
- value: customKey,
209625
- onChange: (e3) => setCustomKey(e3.target.value),
209626
- error: isExistingKey(customKey),
209627
- helperText: isExistingKey(customKey) ? "This credential already exists" : "",
209628
- required: true,
209629
- autoFocus: true
209630
- }
209631
- ),
209632
- selectedCredentialManifest && !useCustomKey && /* @__PURE__ */ jsxRuntimeExports.jsxs(DescriptionBox, { children: [
209633
- /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { variant: "body2", color: "text.secondary", gutterBottom: true, children: selectedCredentialManifest.description }),
209634
- selectedCredentialManifest.url && /* @__PURE__ */ jsxRuntimeExports.jsxs(
209635
- Link,
209636
- {
209637
- href: selectedCredentialManifest.url,
209638
- target: "_blank",
209639
- rel: "noopener noreferrer",
209640
- variant: "body2",
209641
- sx: { display: "inline-flex", alignItems: "center" },
209642
- children: [
209643
- "Get your ",
209644
- selectedCredentialManifest.name,
209645
- " key"
209646
- ]
209647
- }
209648
- )
209649
- ] })
209650
- ] })
209651
- ),
210025
+ children: /* @__PURE__ */ jsxRuntimeExports.jsxs(Box, { sx: { pt: 2 }, children: [
210026
+ isEditMode ? /* @__PURE__ */ jsxRuntimeExports.jsxs(Box, { mb: 2.5, children: [
209652
210027
  /* @__PURE__ */ jsxRuntimeExports.jsx(
209653
- StyledTextField$1,
210028
+ Typography,
210029
+ {
210030
+ variant: "overline",
210031
+ color: "text.secondary",
210032
+ sx: { fontSize: "0.75rem", letterSpacing: 1, fontWeight: 500 },
210033
+ children: "Credential Key"
210034
+ }
210035
+ ),
210036
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { fontWeight: 500, sx: { fontSize: "0.95rem" }, children: initialKey })
210037
+ ] }) : /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
210038
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(FormControl, { fullWidth: true, sx: { mb: 2.5 }, children: [
210039
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldLabel2, { children: [
210040
+ /* @__PURE__ */ jsxRuntimeExports.jsx(LabelIcon2, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(FontAwesomeIcon, { icon: faKey, size: "sm" }) }),
210041
+ "Credential Type"
210042
+ ] }),
210043
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(
210044
+ Select,
210045
+ {
210046
+ value: useCustomKey ? "_custom_" : key,
210047
+ onChange: (e3) => {
210048
+ const selectedValue = e3.target.value;
210049
+ if (selectedValue === "_custom_") {
210050
+ setUseCustomKey(true);
210051
+ setKey("");
210052
+ } else {
210053
+ setUseCustomKey(false);
210054
+ setKey(selectedValue);
210055
+ setCustomKey("");
210056
+ }
210057
+ },
210058
+ displayEmpty: !key && !useCustomKey,
210059
+ MenuProps: menuPropsSx(theme2),
210060
+ input: /* @__PURE__ */ jsxRuntimeExports.jsx(StyledOutlinedInput, { notched: false, label: void 0 }),
210061
+ children: [
210062
+ /* @__PURE__ */ jsxRuntimeExports.jsx(MenuItem, { value: "", disabled: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx("em", { children: "Select a credential type..." }) }),
210063
+ CREDENTIAL_MANIFEST.map((cred) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
210064
+ MenuItem,
210065
+ {
210066
+ value: cred.key,
210067
+ disabled: isExistingKey(cred.key),
210068
+ children: [
210069
+ cred.name,
210070
+ " ",
210071
+ isExistingKey(cred.key) && "(Configured)"
210072
+ ]
210073
+ },
210074
+ cred.key
210075
+ )),
210076
+ /* @__PURE__ */ jsxRuntimeExports.jsx(MenuItem, { value: "_custom_", children: "Custom Credential" })
210077
+ ]
210078
+ }
210079
+ )
210080
+ ] }),
210081
+ useCustomKey && /* @__PURE__ */ jsxRuntimeExports.jsx(
210082
+ TextField,
209654
210083
  {
209655
- label: "Credential Value",
210084
+ label: "Custom Credential Key",
209656
210085
  fullWidth: true,
209657
- type: "password",
209658
- value,
209659
- onChange: (e3) => setValue(e3.target.value),
209660
- onKeyDown: (e3) => {
209661
- if (e3.key === "Enter" && canSave) {
209662
- handleSave();
209663
- }
209664
- },
210086
+ value: customKey,
210087
+ onChange: (e3) => setCustomKey(e3.target.value),
210088
+ error: isExistingKey(customKey),
210089
+ helperText: isExistingKey(customKey) ? "This credential already exists" : "",
209665
210090
  required: true,
209666
- autoFocus: isEditMode,
209667
- helperText: isEditMode ? `Enter the new value for ${initialKey}` : "Enter the credential value or API key."
210091
+ autoFocus: true,
210092
+ sx: textFieldInputSx(theme2)
209668
210093
  }
209669
- )
210094
+ ),
210095
+ selectedCredentialManifest && !useCustomKey && /* @__PURE__ */ jsxRuntimeExports.jsxs(Box, { sx: DescriptionBoxSx(theme2), children: [
210096
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { variant: "body2", color: "text.secondary", gutterBottom: true, children: selectedCredentialManifest.description }),
210097
+ selectedCredentialManifest.url && /* @__PURE__ */ jsxRuntimeExports.jsxs(
210098
+ Link,
210099
+ {
210100
+ href: selectedCredentialManifest.url,
210101
+ target: "_blank",
210102
+ rel: "noopener noreferrer",
210103
+ variant: "body2",
210104
+ sx: { display: "inline-flex", alignItems: "center" },
210105
+ children: [
210106
+ "Get your ",
210107
+ selectedCredentialManifest.name,
210108
+ " key"
210109
+ ]
210110
+ }
210111
+ )
210112
+ ] })
209670
210113
  ] }),
209671
- " "
209672
- ]
210114
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldLabel2, { children: [
210115
+ /* @__PURE__ */ jsxRuntimeExports.jsx(LabelIcon2, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(FontAwesomeIcon, { icon: faKey, size: "sm" }) }),
210116
+ "Credential Value"
210117
+ ] }),
210118
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
210119
+ TextField,
210120
+ {
210121
+ fullWidth: true,
210122
+ type: "password",
210123
+ value,
210124
+ onChange: (e3) => setValue(e3.target.value),
210125
+ onKeyDown: (e3) => {
210126
+ if (e3.key === "Enter" && canSave) {
210127
+ handleSave();
210128
+ }
210129
+ },
210130
+ required: true,
210131
+ autoFocus: isEditMode,
210132
+ placeholder: "Enter the credential value or API key.",
210133
+ helperText: isEditMode ? `Enter the new value for ${initialKey}` : "Enter the credential value or API key.",
210134
+ sx: textFieldInputSx(theme2),
210135
+ InputLabelProps: { shrink: false }
210136
+ }
210137
+ )
210138
+ ] })
209673
210139
  }
209674
210140
  );
209675
210141
  };
@@ -210259,6 +210725,10 @@ const StyledTextField = styled$1(TextField)(({ theme: theme2 }) => ({
210259
210725
  fontSize: "0.875rem",
210260
210726
  // Consistent font size
210261
210727
  lineHeight: 1.5,
210728
+ whiteSpace: "pre-wrap",
210729
+ // Ensure text wraps within the input
210730
+ wordBreak: "break-word",
210731
+ // Break long words to prevent overflow
210262
210732
  // Shadcn-like scrollbar
210263
210733
  "&::-webkit-scrollbar": {
210264
210734
  width: "8px",
@@ -211606,7 +212076,7 @@ const SettingsPage = () => {
211606
212076
  {
211607
212077
  value: config2.values.conversation_length,
211608
212078
  label: "Maximum Conversation History",
211609
- description: "Number of messages to keep in conversation history for context. More messages will make the agents have longer memory but more expensive to run.",
212079
+ description: "Number of messages to keep in conversation history for context. More messages will make the agents have longer memory but more expensive to run. Recommended: 100",
211610
212080
  min: 10,
211611
212081
  max: 200,
211612
212082
  step: 10,
@@ -211621,7 +212091,7 @@ const SettingsPage = () => {
211621
212091
  {
211622
212092
  value: config2.values.detail_length,
211623
212093
  label: "Detail View Length",
211624
- description: "Maximum number of messages to show in the detailed conversation view. Messages beyond this limit will be summarized. Shortening this will decrease costs but some important details could get lost from earlier messages.",
212094
+ description: "Maximum number of messages to show in the detailed conversation view. Messages beyond this limit will be summarized. Shortening this will decrease costs but some important details could get lost from earlier messages. Recommended: 20",
211625
212095
  min: 10,
211626
212096
  max: 100,
211627
212097
  step: 5,
@@ -211636,7 +212106,7 @@ const SettingsPage = () => {
211636
212106
  {
211637
212107
  value: config2.values.max_learnings_history,
211638
212108
  label: "Maximum Learnings History",
211639
- description: "Number of learning items to retain for context and personalization. More items will make the agents acquire a longer history of knowledge from your conversations but more expensive to run.",
212109
+ description: "Number of learning items to retain for context and personalization. More items will make the agents acquire a longer history of knowledge from your conversations but more expensive to run. Recommended: 50",
211640
212110
  min: 10,
211641
212111
  max: 100,
211642
212112
  step: 10,
@@ -211730,7 +212200,7 @@ const SettingsPage = () => {
211730
212200
  ] })
211731
212201
  ] });
211732
212202
  };
211733
- const localOperatorIcon = "" + new URL("icon-ngVHF_bZ.png", import.meta.url).href;
212203
+ const localOperatorIcon = "" + new URL("icon-tV2fhamD.png", import.meta.url).href;
211734
212204
  const pulse = keyframes`
211735
212205
  0% {
211736
212206
  box-shadow: 0 0 0 0 rgba(var(--primary-rgb), 0.4);