local-operator-ui 0.7.4 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./index-BpktHwp9.js","./fonts-BAmz1ETd.js","./fonts-B9KBGB-g.css","./index-D4xePR3Q.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-cc_xe9_G.js","./fonts-DnoCbbVd.js","./fonts-B9KBGB-g.css","./index-qogN06h3.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
  }
@@ -28219,6 +28605,155 @@ const ModelsApi = {
28219
28605
  listProviders,
28220
28606
  listModels
28221
28607
  };
28608
+ const SchedulesApi = {
28609
+ /**
28610
+ * List all schedules
28611
+ * Retrieve a paginated list of all schedules across all agents.
28612
+ *
28613
+ * @param baseUrl - The base URL of the Local Operator API
28614
+ * @param page - Page number (default: 1)
28615
+ * @param perPage - Number of schedules per page (default: 10)
28616
+ * @returns Promise resolving to the schedules list response
28617
+ */
28618
+ async listAllSchedules(baseUrl, page = 1, perPage = 10) {
28619
+ const url = new URL(`${baseUrl}/v1/schedules`);
28620
+ url.searchParams.append("page", page.toString());
28621
+ url.searchParams.append("per_page", perPage.toString());
28622
+ const response = await fetch(url.toString(), {
28623
+ method: "GET",
28624
+ headers: {
28625
+ Accept: "application/json"
28626
+ }
28627
+ });
28628
+ if (!response.ok) {
28629
+ throw new Error(
28630
+ `List all schedules request failed: ${response.status} ${response.statusText}`
28631
+ );
28632
+ }
28633
+ return response.json();
28634
+ },
28635
+ /**
28636
+ * Create a new schedule for an agent
28637
+ * Create a new schedule for a specific agent.
28638
+ *
28639
+ * @param baseUrl - The base URL of the Local Operator API
28640
+ * @param agentId - ID of the agent to create the schedule for
28641
+ * @param scheduleData - The schedule details to create
28642
+ * @returns Promise resolving to the created schedule response
28643
+ */
28644
+ async createScheduleForAgent(baseUrl, agentId, scheduleData) {
28645
+ const response = await fetch(`${baseUrl}/v1/agents/${agentId}/schedules`, {
28646
+ method: "POST",
28647
+ headers: {
28648
+ "Content-Type": "application/json",
28649
+ Accept: "application/json"
28650
+ },
28651
+ body: JSON.stringify(scheduleData)
28652
+ });
28653
+ if (!response.ok) {
28654
+ throw new Error(
28655
+ `Create schedule for agent request failed: ${response.status} ${response.statusText}`
28656
+ );
28657
+ }
28658
+ return response.json();
28659
+ },
28660
+ /**
28661
+ * List schedules for a specific agent
28662
+ * Retrieve a paginated list of schedules for a specific agent.
28663
+ *
28664
+ * @param baseUrl - The base URL of the Local Operator API
28665
+ * @param agentId - ID of the agent to list schedules for
28666
+ * @param page - Page number (default: 1)
28667
+ * @param perPage - Number of schedules per page (default: 10)
28668
+ * @returns Promise resolving to the schedules list response
28669
+ */
28670
+ async listSchedulesForAgent(baseUrl, agentId, page = 1, perPage = 10) {
28671
+ const url = new URL(`${baseUrl}/v1/agents/${agentId}/schedules`);
28672
+ url.searchParams.append("page", page.toString());
28673
+ url.searchParams.append("per_page", perPage.toString());
28674
+ const response = await fetch(url.toString(), {
28675
+ method: "GET",
28676
+ headers: {
28677
+ Accept: "application/json"
28678
+ }
28679
+ });
28680
+ if (!response.ok) {
28681
+ throw new Error(
28682
+ `List schedules for agent request failed: ${response.status} ${response.statusText}`
28683
+ );
28684
+ }
28685
+ return response.json();
28686
+ },
28687
+ /**
28688
+ * Get a single schedule by ID
28689
+ * Retrieve a single schedule by its ID.
28690
+ *
28691
+ * @param baseUrl - The base URL of the Local Operator API
28692
+ * @param scheduleId - ID of the schedule to retrieve
28693
+ * @returns Promise resolving to the schedule details response
28694
+ */
28695
+ async getScheduleById(baseUrl, scheduleId) {
28696
+ const response = await fetch(`${baseUrl}/v1/schedules/${scheduleId}`, {
28697
+ method: "GET",
28698
+ headers: {
28699
+ Accept: "application/json"
28700
+ }
28701
+ });
28702
+ if (!response.ok) {
28703
+ throw new Error(
28704
+ `Get schedule by ID request failed: ${response.status} ${response.statusText}`
28705
+ );
28706
+ }
28707
+ return response.json();
28708
+ },
28709
+ /**
28710
+ * Edit an existing schedule
28711
+ * Edit an existing schedule by its ID.
28712
+ *
28713
+ * @param baseUrl - The base URL of the Local Operator API
28714
+ * @param scheduleId - ID of the schedule to update
28715
+ * @param scheduleData - The schedule details to update
28716
+ * @returns Promise resolving to the updated schedule response
28717
+ */
28718
+ async editSchedule(baseUrl, scheduleId, scheduleData) {
28719
+ const response = await fetch(`${baseUrl}/v1/schedules/${scheduleId}`, {
28720
+ method: "PATCH",
28721
+ headers: {
28722
+ "Content-Type": "application/json",
28723
+ Accept: "application/json"
28724
+ },
28725
+ body: JSON.stringify(scheduleData)
28726
+ });
28727
+ if (!response.ok) {
28728
+ throw new Error(
28729
+ `Edit schedule request failed: ${response.status} ${response.statusText}`
28730
+ );
28731
+ }
28732
+ return response.json();
28733
+ },
28734
+ /**
28735
+ * Remove a schedule by ID
28736
+ * Remove a schedule by its ID.
28737
+ *
28738
+ * @param baseUrl - The base URL of the Local Operator API
28739
+ * @param scheduleId - ID of the schedule to delete
28740
+ * @returns Promise resolving to the deletion response
28741
+ */
28742
+ async removeSchedule(baseUrl, scheduleId) {
28743
+ const response = await fetch(`${baseUrl}/v1/schedules/${scheduleId}`, {
28744
+ method: "DELETE",
28745
+ headers: {
28746
+ Accept: "application/json"
28747
+ }
28748
+ });
28749
+ if (!response.ok) {
28750
+ throw new Error(
28751
+ `Remove schedule request failed: ${response.status} ${response.statusText}`
28752
+ );
28753
+ }
28754
+ return response.json();
28755
+ }
28756
+ };
28222
28757
  const getImageUrl = (baseUrl, imagePath) => {
28223
28758
  const normalizedBaseUrl = baseUrl.endsWith("/") ? baseUrl.slice(0, -1) : baseUrl;
28224
28759
  let normalizedPath = imagePath;
@@ -28818,6 +29353,12 @@ class LocalOperatorClient {
28818
29353
  get static() {
28819
29354
  return this.bindBaseUrlToApi(StaticApi);
28820
29355
  }
29356
+ /**
29357
+ * Get the Schedules API client with methods bound to the base URL
29358
+ */
29359
+ get schedules() {
29360
+ return this.bindBaseUrlToApi(SchedulesApi);
29361
+ }
28821
29362
  /**
28822
29363
  * Bind the base URL to all methods of an API client
28823
29364
  *
@@ -34076,117 +34617,18 @@ const useAgentSelectionStore = create$1()(
34076
34617
  * This source code is licensed under the ISC license.
34077
34618
  * See the LICENSE file in the root directory of this source tree.
34078
34619
  */
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
- /**
34173
- * @license lucide-react v0.507.0 - ISC
34174
- *
34175
- * This source code is licensed under the ISC license.
34176
- * See the LICENSE file in the root directory of this source tree.
34177
- */
34178
- const __iconNode$G = [
34620
+ const __iconNode$L = [
34179
34621
  ["path", { d: "m12 19-7-7 7-7", key: "1l729n" }],
34180
34622
  ["path", { d: "M19 12H5", key: "x3x0zl" }]
34181
34623
  ];
34182
- const ArrowLeft = createLucideIcon("arrow-left", __iconNode$G);
34624
+ const ArrowLeft = createLucideIcon("arrow-left", __iconNode$L);
34183
34625
  /**
34184
34626
  * @license lucide-react v0.507.0 - ISC
34185
34627
  *
34186
34628
  * This source code is licensed under the ISC license.
34187
34629
  * See the LICENSE file in the root directory of this source tree.
34188
34630
  */
34189
- const __iconNode$F = [
34631
+ const __iconNode$K = [
34190
34632
  ["path", { d: "M12 8V4H8", key: "hb8ula" }],
34191
34633
  ["rect", { width: "16", height: "12", x: "4", y: "8", rx: "2", key: "enze0r" }],
34192
34634
  ["path", { d: "M2 14h2", key: "vft8re" }],
@@ -34194,77 +34636,108 @@ const __iconNode$F = [
34194
34636
  ["path", { d: "M15 13v2", key: "1xurst" }],
34195
34637
  ["path", { d: "M9 13v2", key: "rq6x2g" }]
34196
34638
  ];
34197
- const Bot = createLucideIcon("bot", __iconNode$F);
34639
+ const Bot = createLucideIcon("bot", __iconNode$K);
34198
34640
  /**
34199
34641
  * @license lucide-react v0.507.0 - ISC
34200
34642
  *
34201
34643
  * This source code is licensed under the ISC license.
34202
34644
  * See the LICENSE file in the root directory of this source tree.
34203
34645
  */
34204
- const __iconNode$E = [
34646
+ const __iconNode$J = [
34205
34647
  ["path", { d: "M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16", key: "jecpp" }],
34206
34648
  ["rect", { width: "20", height: "14", x: "2", y: "6", rx: "2", key: "i6l2r4" }]
34207
34649
  ];
34208
- const Briefcase = createLucideIcon("briefcase", __iconNode$E);
34650
+ const Briefcase = createLucideIcon("briefcase", __iconNode$J);
34209
34651
  /**
34210
34652
  * @license lucide-react v0.507.0 - ISC
34211
34653
  *
34212
34654
  * This source code is licensed under the ISC license.
34213
34655
  * See the LICENSE file in the root directory of this source tree.
34214
34656
  */
34215
- const __iconNode$D = [
34657
+ const __iconNode$I = [
34658
+ ["path", { d: "M8 2v4", key: "1cmpym" }],
34659
+ ["path", { d: "M16 2v4", key: "4m81vk" }],
34660
+ ["rect", { width: "18", height: "18", x: "3", y: "4", rx: "2", key: "1hopcy" }],
34661
+ ["path", { d: "M3 10h18", key: "8toen8" }],
34662
+ ["path", { d: "M8 14h.01", key: "6423bh" }],
34663
+ ["path", { d: "M12 14h.01", key: "1etili" }],
34664
+ ["path", { d: "M16 14h.01", key: "1gbofw" }],
34665
+ ["path", { d: "M8 18h.01", key: "lrp35t" }],
34666
+ ["path", { d: "M12 18h.01", key: "mhygvu" }],
34667
+ ["path", { d: "M16 18h.01", key: "kzsmim" }]
34668
+ ];
34669
+ const CalendarDays = createLucideIcon("calendar-days", __iconNode$I);
34670
+ /**
34671
+ * @license lucide-react v0.507.0 - ISC
34672
+ *
34673
+ * This source code is licensed under the ISC license.
34674
+ * See the LICENSE file in the root directory of this source tree.
34675
+ */
34676
+ const __iconNode$H = [
34216
34677
  ["line", { x1: "18", x2: "18", y1: "20", y2: "10", key: "1xfpm4" }],
34217
34678
  ["line", { x1: "12", x2: "12", y1: "20", y2: "4", key: "be30l9" }],
34218
34679
  ["line", { x1: "6", x2: "6", y1: "20", y2: "14", key: "1r4le6" }]
34219
34680
  ];
34220
- const ChartNoAxesColumn = createLucideIcon("chart-no-axes-column", __iconNode$D);
34681
+ const ChartNoAxesColumn = createLucideIcon("chart-no-axes-column", __iconNode$H);
34221
34682
  /**
34222
34683
  * @license lucide-react v0.507.0 - ISC
34223
34684
  *
34224
34685
  * This source code is licensed under the ISC license.
34225
34686
  * See the LICENSE file in the root directory of this source tree.
34226
34687
  */
34227
- const __iconNode$C = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]];
34228
- const ChevronLeft = createLucideIcon("chevron-left", __iconNode$C);
34688
+ const __iconNode$G = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]];
34689
+ const ChevronLeft = createLucideIcon("chevron-left", __iconNode$G);
34229
34690
  /**
34230
34691
  * @license lucide-react v0.507.0 - ISC
34231
34692
  *
34232
34693
  * This source code is licensed under the ISC license.
34233
34694
  * See the LICENSE file in the root directory of this source tree.
34234
34695
  */
34235
- const __iconNode$B = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
34236
- const ChevronRight = createLucideIcon("chevron-right", __iconNode$B);
34696
+ const __iconNode$F = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
34697
+ const ChevronRight = createLucideIcon("chevron-right", __iconNode$F);
34237
34698
  /**
34238
34699
  * @license lucide-react v0.507.0 - ISC
34239
34700
  *
34240
34701
  * This source code is licensed under the ISC license.
34241
34702
  * See the LICENSE file in the root directory of this source tree.
34242
34703
  */
34243
- const __iconNode$A = [
34704
+ const __iconNode$E = [
34244
34705
  ["path", { d: "M21.801 10A10 10 0 1 1 17 3.335", key: "yps3ct" }],
34245
34706
  ["path", { d: "m9 11 3 3L22 4", key: "1pflzl" }]
34246
34707
  ];
34247
- const CircleCheckBig = createLucideIcon("circle-check-big", __iconNode$A);
34708
+ const CircleCheckBig = createLucideIcon("circle-check-big", __iconNode$E);
34248
34709
  /**
34249
34710
  * @license lucide-react v0.507.0 - ISC
34250
34711
  *
34251
34712
  * This source code is licensed under the ISC license.
34252
34713
  * See the LICENSE file in the root directory of this source tree.
34253
34714
  */
34254
- const __iconNode$z = [
34715
+ const __iconNode$D = [
34255
34716
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
34256
34717
  ["path", { d: "M17 12h.01", key: "1m0b6t" }],
34257
34718
  ["path", { d: "M12 12h.01", key: "1mp3jc" }],
34258
34719
  ["path", { d: "M7 12h.01", key: "eqddd0" }]
34259
34720
  ];
34260
- const CircleEllipsis = createLucideIcon("circle-ellipsis", __iconNode$z);
34721
+ const CircleEllipsis = createLucideIcon("circle-ellipsis", __iconNode$D);
34261
34722
  /**
34262
34723
  * @license lucide-react v0.507.0 - ISC
34263
34724
  *
34264
34725
  * This source code is licensed under the ISC license.
34265
34726
  * See the LICENSE file in the root directory of this source tree.
34266
34727
  */
34267
- const __iconNode$y = [
34728
+ const __iconNode$C = [
34729
+ ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
34730
+ ["path", { d: "M8 12h8", key: "1wcyev" }],
34731
+ ["path", { d: "M12 8v8", key: "napkw2" }]
34732
+ ];
34733
+ const CirclePlus = createLucideIcon("circle-plus", __iconNode$C);
34734
+ /**
34735
+ * @license lucide-react v0.507.0 - ISC
34736
+ *
34737
+ * This source code is licensed under the ISC license.
34738
+ * See the LICENSE file in the root directory of this source tree.
34739
+ */
34740
+ const __iconNode$B = [
34268
34741
  ["rect", { width: "8", height: "4", x: "8", y: "2", rx: "1", ry: "1", key: "tgr4d6" }],
34269
34742
  [
34270
34743
  "path",
@@ -34278,50 +34751,50 @@ const __iconNode$y = [
34278
34751
  ["path", { d: "M8 11h.01", key: "1dfujw" }],
34279
34752
  ["path", { d: "M8 16h.01", key: "18s6g9" }]
34280
34753
  ];
34281
- const ClipboardList = createLucideIcon("clipboard-list", __iconNode$y);
34754
+ const ClipboardList = createLucideIcon("clipboard-list", __iconNode$B);
34282
34755
  /**
34283
34756
  * @license lucide-react v0.507.0 - ISC
34284
34757
  *
34285
34758
  * This source code is licensed under the ISC license.
34286
34759
  * See the LICENSE file in the root directory of this source tree.
34287
34760
  */
34288
- const __iconNode$x = [
34761
+ const __iconNode$A = [
34289
34762
  ["path", { d: "M12 13v8", key: "1l5pq0" }],
34290
34763
  ["path", { d: "M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242", key: "1pljnt" }],
34291
34764
  ["path", { d: "m8 17 4-4 4 4", key: "1quai1" }]
34292
34765
  ];
34293
- const CloudUpload = createLucideIcon("cloud-upload", __iconNode$x);
34766
+ const CloudUpload = createLucideIcon("cloud-upload", __iconNode$A);
34294
34767
  /**
34295
34768
  * @license lucide-react v0.507.0 - ISC
34296
34769
  *
34297
34770
  * This source code is licensed under the ISC license.
34298
34771
  * See the LICENSE file in the root directory of this source tree.
34299
34772
  */
34300
- const __iconNode$w = [
34773
+ const __iconNode$z = [
34301
34774
  ["path", { d: "m18 16 4-4-4-4", key: "1inbqp" }],
34302
34775
  ["path", { d: "m6 8-4 4 4 4", key: "15zrgr" }],
34303
34776
  ["path", { d: "m14.5 4-5 16", key: "e7oirm" }]
34304
34777
  ];
34305
- const CodeXml = createLucideIcon("code-xml", __iconNode$w);
34778
+ const CodeXml = createLucideIcon("code-xml", __iconNode$z);
34306
34779
  /**
34307
34780
  * @license lucide-react v0.507.0 - ISC
34308
34781
  *
34309
34782
  * This source code is licensed under the ISC license.
34310
34783
  * See the LICENSE file in the root directory of this source tree.
34311
34784
  */
34312
- const __iconNode$v = [
34785
+ const __iconNode$y = [
34313
34786
  ["path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4", key: "ih7n3h" }],
34314
34787
  ["polyline", { points: "7 10 12 15 17 10", key: "2ggqvy" }],
34315
34788
  ["line", { x1: "12", x2: "12", y1: "15", y2: "3", key: "1vk2je" }]
34316
34789
  ];
34317
- const Download = createLucideIcon("download", __iconNode$v);
34790
+ const Download = createLucideIcon("download", __iconNode$y);
34318
34791
  /**
34319
34792
  * @license lucide-react v0.507.0 - ISC
34320
34793
  *
34321
34794
  * This source code is licensed under the ISC license.
34322
34795
  * See the LICENSE file in the root directory of this source tree.
34323
34796
  */
34324
- const __iconNode$u = [
34797
+ const __iconNode$x = [
34325
34798
  ["path", { d: "M21.54 15H17a2 2 0 0 0-2 2v4.54", key: "1djwo0" }],
34326
34799
  [
34327
34800
  "path",
@@ -34333,26 +34806,26 @@ const __iconNode$u = [
34333
34806
  ["path", { d: "M11 21.95V18a2 2 0 0 0-2-2a2 2 0 0 1-2-2v-1a2 2 0 0 0-2-2H2.05", key: "14pb5j" }],
34334
34807
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
34335
34808
  ];
34336
- const Earth = createLucideIcon("earth", __iconNode$u);
34809
+ const Earth = createLucideIcon("earth", __iconNode$x);
34337
34810
  /**
34338
34811
  * @license lucide-react v0.507.0 - ISC
34339
34812
  *
34340
34813
  * This source code is licensed under the ISC license.
34341
34814
  * See the LICENSE file in the root directory of this source tree.
34342
34815
  */
34343
- const __iconNode$t = [
34816
+ const __iconNode$w = [
34344
34817
  ["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }],
34345
34818
  ["circle", { cx: "12", cy: "5", r: "1", key: "gxeob9" }],
34346
34819
  ["circle", { cx: "12", cy: "19", r: "1", key: "lyex9k" }]
34347
34820
  ];
34348
- const EllipsisVertical = createLucideIcon("ellipsis-vertical", __iconNode$t);
34821
+ const EllipsisVertical = createLucideIcon("ellipsis-vertical", __iconNode$w);
34349
34822
  /**
34350
34823
  * @license lucide-react v0.507.0 - ISC
34351
34824
  *
34352
34825
  * This source code is licensed under the ISC license.
34353
34826
  * See the LICENSE file in the root directory of this source tree.
34354
34827
  */
34355
- const __iconNode$s = [
34828
+ const __iconNode$v = [
34356
34829
  [
34357
34830
  "path",
34358
34831
  {
@@ -34363,79 +34836,79 @@ const __iconNode$s = [
34363
34836
  ["path", { d: "M22 21H7", key: "t4ddhn" }],
34364
34837
  ["path", { d: "m5 11 9 9", key: "1mo9qw" }]
34365
34838
  ];
34366
- const Eraser = createLucideIcon("eraser", __iconNode$s);
34839
+ const Eraser = createLucideIcon("eraser", __iconNode$v);
34367
34840
  /**
34368
34841
  * @license lucide-react v0.507.0 - ISC
34369
34842
  *
34370
34843
  * This source code is licensed under the ISC license.
34371
34844
  * See the LICENSE file in the root directory of this source tree.
34372
34845
  */
34373
- const __iconNode$r = [
34846
+ const __iconNode$u = [
34374
34847
  ["path", { d: "M15 3h6v6", key: "1q9fwt" }],
34375
34848
  ["path", { d: "M10 14 21 3", key: "gplh6r" }],
34376
34849
  ["path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6", key: "a6xqqp" }]
34377
34850
  ];
34378
- const ExternalLink = createLucideIcon("external-link", __iconNode$r);
34851
+ const ExternalLink = createLucideIcon("external-link", __iconNode$u);
34379
34852
  /**
34380
34853
  * @license lucide-react v0.507.0 - ISC
34381
34854
  *
34382
34855
  * This source code is licensed under the ISC license.
34383
34856
  * See the LICENSE file in the root directory of this source tree.
34384
34857
  */
34385
- const __iconNode$q = [
34858
+ const __iconNode$t = [
34386
34859
  ["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
34387
34860
  ["path", { d: "M4 7V4a2 2 0 0 1 2-2 2 2 0 0 0-2 2", key: "1vk7w2" }],
34388
34861
  ["path", { d: "M4.063 20.999a2 2 0 0 0 2 1L18 22a2 2 0 0 0 2-2V7l-5-5H6", key: "1jink5" }],
34389
34862
  ["path", { d: "m5 11-3 3", key: "1dgrs4" }],
34390
34863
  ["path", { d: "m5 17-3-3h10", key: "1mvvaf" }]
34391
34864
  ];
34392
- const FileOutput = createLucideIcon("file-output", __iconNode$q);
34865
+ const FileOutput = createLucideIcon("file-output", __iconNode$t);
34393
34866
  /**
34394
34867
  * @license lucide-react v0.507.0 - ISC
34395
34868
  *
34396
34869
  * This source code is licensed under the ISC license.
34397
34870
  * See the LICENSE file in the root directory of this source tree.
34398
34871
  */
34399
- const __iconNode$p = [
34872
+ const __iconNode$s = [
34400
34873
  ["path", { d: "M12 17h.01", key: "p32p05" }],
34401
34874
  ["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z", key: "1mlx9k" }],
34402
34875
  ["path", { d: "M9.1 9a3 3 0 0 1 5.82 1c0 2-3 3-3 3", key: "mhlwft" }]
34403
34876
  ];
34404
- const FileQuestion = createLucideIcon("file-question", __iconNode$p);
34877
+ const FileQuestion = createLucideIcon("file-question", __iconNode$s);
34405
34878
  /**
34406
34879
  * @license lucide-react v0.507.0 - ISC
34407
34880
  *
34408
34881
  * This source code is licensed under the ISC license.
34409
34882
  * See the LICENSE file in the root directory of this source tree.
34410
34883
  */
34411
- const __iconNode$o = [
34884
+ const __iconNode$r = [
34412
34885
  ["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z", key: "1rqfz7" }],
34413
34886
  ["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
34414
34887
  ["path", { d: "M10 9H8", key: "b1mrlr" }],
34415
34888
  ["path", { d: "M16 13H8", key: "t4e002" }],
34416
34889
  ["path", { d: "M16 17H8", key: "z1uh3a" }]
34417
34890
  ];
34418
- const FileText = createLucideIcon("file-text", __iconNode$o);
34891
+ const FileText = createLucideIcon("file-text", __iconNode$r);
34419
34892
  /**
34420
34893
  * @license lucide-react v0.507.0 - ISC
34421
34894
  *
34422
34895
  * This source code is licensed under the ISC license.
34423
34896
  * See the LICENSE file in the root directory of this source tree.
34424
34897
  */
34425
- const __iconNode$n = [
34898
+ const __iconNode$q = [
34426
34899
  ["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z", key: "1rqfz7" }],
34427
34900
  ["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
34428
34901
  ["path", { d: "M12 12v6", key: "3ahymv" }],
34429
34902
  ["path", { d: "m15 15-3-3-3 3", key: "15xj92" }]
34430
34903
  ];
34431
- const FileUp = createLucideIcon("file-up", __iconNode$n);
34904
+ const FileUp = createLucideIcon("file-up", __iconNode$q);
34432
34905
  /**
34433
34906
  * @license lucide-react v0.507.0 - ISC
34434
34907
  *
34435
34908
  * This source code is licensed under the ISC license.
34436
34909
  * See the LICENSE file in the root directory of this source tree.
34437
34910
  */
34438
- const __iconNode$m = [
34911
+ const __iconNode$p = [
34439
34912
  [
34440
34913
  "path",
34441
34914
  {
@@ -34446,14 +34919,14 @@ const __iconNode$m = [
34446
34919
  ["path", { d: "M6.453 15h11.094", key: "3shlmq" }],
34447
34920
  ["path", { d: "M8.5 2h7", key: "csnxdl" }]
34448
34921
  ];
34449
- const FlaskConical = createLucideIcon("flask-conical", __iconNode$m);
34922
+ const FlaskConical = createLucideIcon("flask-conical", __iconNode$p);
34450
34923
  /**
34451
34924
  * @license lucide-react v0.507.0 - ISC
34452
34925
  *
34453
34926
  * This source code is licensed under the ISC license.
34454
34927
  * See the LICENSE file in the root directory of this source tree.
34455
34928
  */
34456
- const __iconNode$l = [
34929
+ const __iconNode$o = [
34457
34930
  [
34458
34931
  "path",
34459
34932
  {
@@ -34464,14 +34937,14 @@ const __iconNode$l = [
34464
34937
  ["path", { d: "M22 10v6", key: "1lu8f3" }],
34465
34938
  ["path", { d: "M6 12.5V16a6 3 0 0 0 12 0v-3.5", key: "1r8lef" }]
34466
34939
  ];
34467
- const GraduationCap = createLucideIcon("graduation-cap", __iconNode$l);
34940
+ const GraduationCap = createLucideIcon("graduation-cap", __iconNode$o);
34468
34941
  /**
34469
34942
  * @license lucide-react v0.507.0 - ISC
34470
34943
  *
34471
34944
  * This source code is licensed under the ISC license.
34472
34945
  * See the LICENSE file in the root directory of this source tree.
34473
34946
  */
34474
- const __iconNode$k = [
34947
+ const __iconNode$n = [
34475
34948
  [
34476
34949
  "path",
34477
34950
  {
@@ -34481,14 +34954,14 @@ const __iconNode$k = [
34481
34954
  ],
34482
34955
  ["path", { d: "M3.22 12H9.5l.5-1 2 4.5 2-7 1.5 3.5h5.27", key: "1uw2ng" }]
34483
34956
  ];
34484
- const HeartPulse = createLucideIcon("heart-pulse", __iconNode$k);
34957
+ const HeartPulse = createLucideIcon("heart-pulse", __iconNode$n);
34485
34958
  /**
34486
34959
  * @license lucide-react v0.507.0 - ISC
34487
34960
  *
34488
34961
  * This source code is licensed under the ISC license.
34489
34962
  * See the LICENSE file in the root directory of this source tree.
34490
34963
  */
34491
- const __iconNode$j = [
34964
+ const __iconNode$m = [
34492
34965
  [
34493
34966
  "path",
34494
34967
  {
@@ -34497,14 +34970,14 @@ const __iconNode$j = [
34497
34970
  }
34498
34971
  ]
34499
34972
  ];
34500
- const Heart = createLucideIcon("heart", __iconNode$j);
34973
+ const Heart = createLucideIcon("heart", __iconNode$m);
34501
34974
  /**
34502
34975
  * @license lucide-react v0.507.0 - ISC
34503
34976
  *
34504
34977
  * This source code is licensed under the ISC license.
34505
34978
  * See the LICENSE file in the root directory of this source tree.
34506
34979
  */
34507
- const __iconNode$i = [
34980
+ const __iconNode$l = [
34508
34981
  ["path", { d: "M12 3v12", key: "1x0j5s" }],
34509
34982
  ["path", { d: "m8 11 4 4 4-4", key: "1dohi6" }],
34510
34983
  [
@@ -34515,38 +34988,38 @@ const __iconNode$i = [
34515
34988
  }
34516
34989
  ]
34517
34990
  ];
34518
- const Import = createLucideIcon("import", __iconNode$i);
34991
+ const Import = createLucideIcon("import", __iconNode$l);
34519
34992
  /**
34520
34993
  * @license lucide-react v0.507.0 - ISC
34521
34994
  *
34522
34995
  * This source code is licensed under the ISC license.
34523
34996
  * See the LICENSE file in the root directory of this source tree.
34524
34997
  */
34525
- const __iconNode$h = [
34998
+ const __iconNode$k = [
34526
34999
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
34527
35000
  ["path", { d: "M12 16v-4", key: "1dtifu" }],
34528
35001
  ["path", { d: "M12 8h.01", key: "e9boi3" }]
34529
35002
  ];
34530
- const Info$1 = createLucideIcon("info", __iconNode$h);
35003
+ const Info$1 = createLucideIcon("info", __iconNode$k);
34531
35004
  /**
34532
35005
  * @license lucide-react v0.507.0 - ISC
34533
35006
  *
34534
35007
  * This source code is licensed under the ISC license.
34535
35008
  * See the LICENSE file in the root directory of this source tree.
34536
35009
  */
34537
- const __iconNode$g = [
35010
+ const __iconNode$j = [
34538
35011
  ["path", { d: "m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4", key: "g0fldk" }],
34539
35012
  ["path", { d: "m21 2-9.6 9.6", key: "1j0ho8" }],
34540
35013
  ["circle", { cx: "7.5", cy: "15.5", r: "5.5", key: "yqb3hr" }]
34541
35014
  ];
34542
- const Key = createLucideIcon("key", __iconNode$g);
35015
+ const Key = createLucideIcon("key", __iconNode$j);
34543
35016
  /**
34544
35017
  * @license lucide-react v0.507.0 - ISC
34545
35018
  *
34546
35019
  * This source code is licensed under the ISC license.
34547
35020
  * See the LICENSE file in the root directory of this source tree.
34548
35021
  */
34549
- const __iconNode$f = [
35022
+ const __iconNode$i = [
34550
35023
  [
34551
35024
  "path",
34552
35025
  {
@@ -34569,35 +35042,35 @@ const __iconNode$f = [
34569
35042
  }
34570
35043
  ]
34571
35044
  ];
34572
- const Layers = createLucideIcon("layers", __iconNode$f);
35045
+ const Layers = createLucideIcon("layers", __iconNode$i);
34573
35046
  /**
34574
35047
  * @license lucide-react v0.507.0 - ISC
34575
35048
  *
34576
35049
  * This source code is licensed under the ISC license.
34577
35050
  * See the LICENSE file in the root directory of this source tree.
34578
35051
  */
34579
- const __iconNode$e = [
35052
+ const __iconNode$h = [
34580
35053
  ["path", { d: "m3 11 18-5v12L3 14v-3z", key: "n962bs" }],
34581
35054
  ["path", { d: "M11.6 16.8a3 3 0 1 1-5.8-1.6", key: "1yl0tm" }]
34582
35055
  ];
34583
- const Megaphone = createLucideIcon("megaphone", __iconNode$e);
35056
+ const Megaphone = createLucideIcon("megaphone", __iconNode$h);
34584
35057
  /**
34585
35058
  * @license lucide-react v0.507.0 - ISC
34586
35059
  *
34587
35060
  * This source code is licensed under the ISC license.
34588
35061
  * See the LICENSE file in the root directory of this source tree.
34589
35062
  */
34590
- const __iconNode$d = [
35063
+ const __iconNode$g = [
34591
35064
  ["path", { d: "M7.9 20A9 9 0 1 0 4 16.1L2 22Z", key: "vv11sd" }]
34592
35065
  ];
34593
- const MessageCircle = createLucideIcon("message-circle", __iconNode$d);
35066
+ const MessageCircle = createLucideIcon("message-circle", __iconNode$g);
34594
35067
  /**
34595
35068
  * @license lucide-react v0.507.0 - ISC
34596
35069
  *
34597
35070
  * This source code is licensed under the ISC license.
34598
35071
  * See the LICENSE file in the root directory of this source tree.
34599
35072
  */
34600
- const __iconNode$c = [
35073
+ const __iconNode$f = [
34601
35074
  ["path", { d: "m14.622 17.897-10.68-2.913", key: "vj2p1u" }],
34602
35075
  [
34603
35076
  "path",
@@ -34614,50 +35087,68 @@ const __iconNode$c = [
34614
35087
  }
34615
35088
  ]
34616
35089
  ];
34617
- const Paintbrush = createLucideIcon("paintbrush", __iconNode$c);
35090
+ const Paintbrush = createLucideIcon("paintbrush", __iconNode$f);
34618
35091
  /**
34619
35092
  * @license lucide-react v0.507.0 - ISC
34620
35093
  *
34621
35094
  * This source code is licensed under the ISC license.
34622
35095
  * See the LICENSE file in the root directory of this source tree.
34623
35096
  */
34624
- const __iconNode$b = [
35097
+ const __iconNode$e = [
34625
35098
  ["path", { d: "M5 12h14", key: "1ays0h" }],
34626
35099
  ["path", { d: "M12 5v14", key: "s699le" }]
34627
35100
  ];
34628
- const Plus$1 = createLucideIcon("plus", __iconNode$b);
35101
+ const Plus$1 = createLucideIcon("plus", __iconNode$e);
34629
35102
  /**
34630
35103
  * @license lucide-react v0.507.0 - ISC
34631
35104
  *
34632
35105
  * This source code is licensed under the ISC license.
34633
35106
  * See the LICENSE file in the root directory of this source tree.
34634
35107
  */
34635
- const __iconNode$a = [
35108
+ const __iconNode$d = [
35109
+ [
35110
+ "path",
35111
+ {
35112
+ d: "M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",
35113
+ key: "1c8476"
35114
+ }
35115
+ ],
35116
+ ["path", { d: "M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7", key: "1ydtos" }],
35117
+ ["path", { d: "M7 3v4a1 1 0 0 0 1 1h7", key: "t51u73" }]
35118
+ ];
35119
+ const Save = createLucideIcon("save", __iconNode$d);
35120
+ /**
35121
+ * @license lucide-react v0.507.0 - ISC
35122
+ *
35123
+ * This source code is licensed under the ISC license.
35124
+ * See the LICENSE file in the root directory of this source tree.
35125
+ */
35126
+ const __iconNode$c = [
34636
35127
  ["path", { d: "m16 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z", key: "7g6ntu" }],
34637
35128
  ["path", { d: "m2 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z", key: "ijws7r" }],
34638
35129
  ["path", { d: "M7 21h10", key: "1b0cd5" }],
34639
35130
  ["path", { d: "M12 3v18", key: "108xh3" }],
34640
35131
  ["path", { d: "M3 7h2c2 0 5-1 7-2 2 1 5 2 7 2h2", key: "3gwbw2" }]
34641
35132
  ];
34642
- const Scale = createLucideIcon("scale", __iconNode$a);
35133
+ const Scale = createLucideIcon("scale", __iconNode$c);
34643
35134
  /**
34644
35135
  * @license lucide-react v0.507.0 - ISC
34645
35136
  *
34646
35137
  * This source code is licensed under the ISC license.
34647
35138
  * See the LICENSE file in the root directory of this source tree.
34648
35139
  */
34649
- const __iconNode$9 = [
35140
+ const __iconNode$b = [
34650
35141
  ["path", { d: "m21 21-4.34-4.34", key: "14j7rj" }],
34651
35142
  ["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }]
34652
35143
  ];
34653
- const Search = createLucideIcon("search", __iconNode$9);
35144
+ const Search = createLucideIcon("search", __iconNode$b);
34654
35145
  /**
34655
35146
  * @license lucide-react v0.507.0 - ISC
34656
35147
  *
34657
35148
  * This source code is licensed under the ISC license.
34658
35149
  * See the LICENSE file in the root directory of this source tree.
34659
35150
  */
34660
- const __iconNode$8 = [
35151
+ const __iconNode$a = [
34661
35152
  [
34662
35153
  "path",
34663
35154
  {
@@ -34667,14 +35158,14 @@ const __iconNode$8 = [
34667
35158
  ],
34668
35159
  ["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }]
34669
35160
  ];
34670
- const Settings$1 = createLucideIcon("settings", __iconNode$8);
35161
+ const Settings$1 = createLucideIcon("settings", __iconNode$a);
34671
35162
  /**
34672
35163
  * @license lucide-react v0.507.0 - ISC
34673
35164
  *
34674
35165
  * This source code is licensed under the ISC license.
34675
35166
  * See the LICENSE file in the root directory of this source tree.
34676
35167
  */
34677
- const __iconNode$7 = [
35168
+ const __iconNode$9 = [
34678
35169
  [
34679
35170
  "path",
34680
35171
  {
@@ -34683,14 +35174,14 @@ const __iconNode$7 = [
34683
35174
  }
34684
35175
  ]
34685
35176
  ];
34686
- const Shield = createLucideIcon("shield", __iconNode$7);
35177
+ const Shield = createLucideIcon("shield", __iconNode$9);
34687
35178
  /**
34688
35179
  * @license lucide-react v0.507.0 - ISC
34689
35180
  *
34690
35181
  * This source code is licensed under the ISC license.
34691
35182
  * See the LICENSE file in the root directory of this source tree.
34692
35183
  */
34693
- const __iconNode$6 = [
35184
+ const __iconNode$8 = [
34694
35185
  ["circle", { cx: "8", cy: "21", r: "1", key: "jimo8o" }],
34695
35186
  ["circle", { cx: "19", cy: "21", r: "1", key: "13723u" }],
34696
35187
  [
@@ -34701,7 +35192,36 @@ const __iconNode$6 = [
34701
35192
  }
34702
35193
  ]
34703
35194
  ];
34704
- const ShoppingCart = createLucideIcon("shopping-cart", __iconNode$6);
35195
+ const ShoppingCart = createLucideIcon("shopping-cart", __iconNode$8);
35196
+ /**
35197
+ * @license lucide-react v0.507.0 - ISC
35198
+ *
35199
+ * This source code is licensed under the ISC license.
35200
+ * See the LICENSE file in the root directory of this source tree.
35201
+ */
35202
+ const __iconNode$7 = [
35203
+ ["path", { d: "M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7", key: "1m0v6g" }],
35204
+ [
35205
+ "path",
35206
+ {
35207
+ d: "M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",
35208
+ key: "ohrbg2"
35209
+ }
35210
+ ]
35211
+ ];
35212
+ const SquarePen = createLucideIcon("square-pen", __iconNode$7);
35213
+ /**
35214
+ * @license lucide-react v0.507.0 - ISC
35215
+ *
35216
+ * This source code is licensed under the ISC license.
35217
+ * See the LICENSE file in the root directory of this source tree.
35218
+ */
35219
+ const __iconNode$6 = [
35220
+ ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", ry: "2", key: "1m3agn" }],
35221
+ ["path", { d: "m15 9-6 6", key: "1uzhvr" }],
35222
+ ["path", { d: "m9 9 6 6", key: "z0biqf" }]
35223
+ ];
35224
+ const SquareX = createLucideIcon("square-x", __iconNode$6);
34705
35225
  /**
34706
35226
  * @license lucide-react v0.507.0 - ISC
34707
35227
  *
@@ -34979,7 +35499,7 @@ const OptionsMenu = styled$1(Menu)(({ theme: theme2 }) => ({
34979
35499
  background: theme2.palette.background.paper
34980
35500
  }
34981
35501
  }));
34982
- const StyledMenuItem = styled$1(MenuItem)(({ theme: theme2 }) => ({
35502
+ const StyledMenuItem$1 = styled$1(MenuItem)(({ theme: theme2 }) => ({
34983
35503
  borderRadius: "0.375rem",
34984
35504
  // rounded-md
34985
35505
  padding: "0.5rem 0.75rem",
@@ -35121,7 +35641,7 @@ const AgentOptionsMenu = ({
35121
35641
  },
35122
35642
  children: [
35123
35643
  isAgentsPage && onChatWithAgent && /* @__PURE__ */ jsxRuntimeExports.jsxs(
35124
- StyledMenuItem,
35644
+ StyledMenuItem$1,
35125
35645
  {
35126
35646
  onClick: () => {
35127
35647
  onChatWithAgent();
@@ -35134,7 +35654,7 @@ const AgentOptionsMenu = ({
35134
35654
  }
35135
35655
  ),
35136
35656
  !isAgentsPage && onViewAgentSettings && /* @__PURE__ */ jsxRuntimeExports.jsxs(
35137
- StyledMenuItem,
35657
+ StyledMenuItem$1,
35138
35658
  {
35139
35659
  onClick: () => {
35140
35660
  onViewAgentSettings();
@@ -35147,7 +35667,7 @@ const AgentOptionsMenu = ({
35147
35667
  }
35148
35668
  ),
35149
35669
  onExportAgent && /* @__PURE__ */ jsxRuntimeExports.jsxs(
35150
- StyledMenuItem,
35670
+ StyledMenuItem$1,
35151
35671
  {
35152
35672
  onClick: () => {
35153
35673
  onExportAgent();
@@ -35160,7 +35680,7 @@ const AgentOptionsMenu = ({
35160
35680
  }
35161
35681
  ),
35162
35682
  onUploadAgentToHub && /* @__PURE__ */ jsxRuntimeExports.jsxs(
35163
- StyledMenuItem,
35683
+ StyledMenuItem$1,
35164
35684
  {
35165
35685
  onClick: () => {
35166
35686
  onUploadAgentToHub();
@@ -38891,6 +39411,9 @@ const useCurrentView = () => {
38891
39411
  if (pathIncludes(currentPath, "/agent-hub")) {
38892
39412
  return "agent-hub";
38893
39413
  }
39414
+ if (pathIncludes(currentPath, "/schedules")) {
39415
+ return "schedules";
39416
+ }
38894
39417
  return "chat";
38895
39418
  };
38896
39419
  const useScrollToBottom = (buttonThreshold = 50, externalContainerRef) => {
@@ -40003,7 +40526,7 @@ const FieldContainer$5 = styled$1(Box)({
40003
40526
  marginBottom: 16
40004
40527
  // Reduced margin
40005
40528
  });
40006
- const FieldLabel$6 = styled$1("label")(({ theme: theme2 }) => ({
40529
+ const FieldLabel$7 = styled$1("label")(({ theme: theme2 }) => ({
40007
40530
  display: "flex",
40008
40531
  alignItems: "center",
40009
40532
  marginBottom: 6,
@@ -40314,7 +40837,7 @@ const EditableField = ({
40314
40837
  const hasChanged = editValue !== originalValue;
40315
40838
  const showClearButton = !isSaving && originalValue !== "";
40316
40839
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldContainer$5, { children: [
40317
- /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldLabel$6, { children: [
40840
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldLabel$7, { children: [
40318
40841
  icon && /* @__PURE__ */ jsxRuntimeExports.jsx(LabelIcon$7, { children: icon }),
40319
40842
  label
40320
40843
  ] }),
@@ -40677,13 +41200,13 @@ const SubtitleText = styled$1(Typography)(({ theme: theme2 }) => ({
40677
41200
  }));
40678
41201
  const PageHeader = ({
40679
41202
  title,
40680
- icon: Icon2,
41203
+ icon: Icon,
40681
41204
  subtitle,
40682
41205
  children
40683
41206
  }) => {
40684
41207
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(PageHeaderRoot, { children: [
40685
41208
  /* @__PURE__ */ jsxRuntimeExports.jsxs(LeftContent, { children: [
40686
- /* @__PURE__ */ jsxRuntimeExports.jsx(HeaderIconWrapper, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(Icon2, { size: 24, strokeWidth: 2 }) }),
41209
+ /* @__PURE__ */ jsxRuntimeExports.jsx(HeaderIconWrapper, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(Icon, { size: 24, strokeWidth: 2 }) }),
40687
41210
  /* @__PURE__ */ jsxRuntimeExports.jsxs(TextContainer, { children: [
40688
41211
  /* @__PURE__ */ jsxRuntimeExports.jsx(TitleText$1, { variant: "h1", children: title }),
40689
41212
  subtitle && /* @__PURE__ */ jsxRuntimeExports.jsx(SubtitleText, { variant: "body1", children: subtitle })
@@ -51649,7 +52172,7 @@ const CATEGORY_LABELS = Object.fromEntries(
51649
52172
  const FieldContainer$4 = styled$1(Box)({
51650
52173
  marginBottom: 16
51651
52174
  });
51652
- const FieldLabel$5 = styled$1("label")(({ theme: theme2 }) => ({
52175
+ const FieldLabel$6 = styled$1("label")(({ theme: theme2 }) => ({
51653
52176
  display: "flex",
51654
52177
  alignItems: "center",
51655
52178
  marginBottom: 6,
@@ -51705,7 +52228,7 @@ const CategoriesInputChips = ({
51705
52228
  onChange(value.filter((c2) => c2 !== cat));
51706
52229
  };
51707
52230
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldContainer$4, { children: [
51708
- /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldLabel$5, { children: [
52231
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldLabel$6, { children: [
51709
52232
  icon && /* @__PURE__ */ jsxRuntimeExports.jsx(LabelIcon$5, { children: icon }),
51710
52233
  label
51711
52234
  ] }),
@@ -51862,7 +52385,7 @@ const CategoriesInputChips = ({
51862
52385
  const FieldContainer$3 = styled$1(Box)({
51863
52386
  marginBottom: 16
51864
52387
  });
51865
- const FieldLabel$4 = styled$1("label")(({ theme: theme2 }) => ({
52388
+ const FieldLabel$5 = styled$1("label")(({ theme: theme2 }) => ({
51866
52389
  display: "flex",
51867
52390
  alignItems: "center",
51868
52391
  marginBottom: 6,
@@ -51942,7 +52465,7 @@ const TagsInputChips = ({
51942
52465
  onChange(value.filter((t2) => t2 !== tag));
51943
52466
  };
51944
52467
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldContainer$3, { children: [
51945
- /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldLabel$4, { children: [
52468
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldLabel$5, { children: [
51946
52469
  icon && /* @__PURE__ */ jsxRuntimeExports.jsx(LabelIcon$4, { children: icon }),
51947
52470
  label
51948
52471
  ] }),
@@ -52092,7 +52615,7 @@ const FieldContainer$2 = styled$1(Box)({
52092
52615
  // Reduced margin
52093
52616
  position: "relative"
52094
52617
  });
52095
- const FieldLabel$3 = styled$1(Typography)(({ theme: theme2 }) => ({
52618
+ const FieldLabel$4 = styled$1(Typography)(({ theme: theme2 }) => ({
52096
52619
  marginBottom: 6,
52097
52620
  // Reduced margin
52098
52621
  display: "flex",
@@ -52110,7 +52633,7 @@ const LabelIcon$3 = styled$1(Box)({
52110
52633
  display: "flex",
52111
52634
  alignItems: "center"
52112
52635
  });
52113
- const StyledAutocomplete$1 = styled$1(Autocomplete)(({ theme: theme2 }) => ({
52636
+ const StyledAutocomplete$2 = styled$1(Autocomplete)(({ theme: theme2 }) => ({
52114
52637
  "& .MuiOutlinedInput-root": {
52115
52638
  // Target the root for border, background, height
52116
52639
  borderRadius: 6,
@@ -52376,12 +52899,12 @@ const HostingSelect = ({
52376
52899
  }
52377
52900
  };
52378
52901
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldContainer$2, { children: [
52379
- /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldLabel$3, { variant: "subtitle2", children: [
52902
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldLabel$4, { variant: "subtitle2", children: [
52380
52903
  /* @__PURE__ */ jsxRuntimeExports.jsx(LabelIcon$3, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(FontAwesomeIcon, { icon: faServer }) }),
52381
52904
  "Hosting Provider"
52382
52905
  ] }),
52383
52906
  /* @__PURE__ */ jsxRuntimeExports.jsx(
52384
- StyledAutocomplete$1,
52907
+ StyledAutocomplete$2,
52385
52908
  {
52386
52909
  value: selectedOption,
52387
52910
  inputValue,
@@ -61863,7 +62386,7 @@ const FieldContainer$1 = styled$1(Box)({
61863
62386
  marginBottom: 16,
61864
62387
  position: "relative"
61865
62388
  });
61866
- const FieldLabel$2 = styled$1(Typography)(({ theme: theme2 }) => ({
62389
+ const FieldLabel$3 = styled$1(Typography)(({ theme: theme2 }) => ({
61867
62390
  marginBottom: 6,
61868
62391
  display: "flex",
61869
62392
  alignItems: "center",
@@ -61877,7 +62400,7 @@ const LabelIcon$2 = styled$1(Box)({
61877
62400
  display: "flex",
61878
62401
  alignItems: "center"
61879
62402
  });
61880
- const StyledAutocomplete = styled$1(Autocomplete)(({ theme: theme2 }) => ({
62403
+ const StyledAutocomplete$1 = styled$1(Autocomplete)(({ theme: theme2 }) => ({
61881
62404
  "& .MuiOutlinedInput-root": {
61882
62405
  borderRadius: 6,
61883
62406
  backgroundColor: theme2.palette.background.paper,
@@ -62133,12 +62656,12 @@ const ModelSelect = ({
62133
62656
  return "";
62134
62657
  };
62135
62658
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldContainer$1, { children: [
62136
- /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldLabel$2, { variant: "subtitle2", children: [
62659
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldLabel$3, { variant: "subtitle2", children: [
62137
62660
  /* @__PURE__ */ jsxRuntimeExports.jsx(LabelIcon$2, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(FontAwesomeIcon, { icon: faRobot }) }),
62138
62661
  "Model"
62139
62662
  ] }),
62140
62663
  /* @__PURE__ */ jsxRuntimeExports.jsx(
62141
- StyledAutocomplete,
62664
+ StyledAutocomplete$1,
62142
62665
  {
62143
62666
  value: selectedOption,
62144
62667
  inputValue,
@@ -62238,7 +62761,7 @@ const FieldContainer = styled$1(Box)({
62238
62761
  position: "relative",
62239
62762
  marginBottom: 16
62240
62763
  });
62241
- const FieldLabel$1 = styled$1("div")(({ theme: theme2 }) => ({
62764
+ const FieldLabel$2 = styled$1("div")(({ theme: theme2 }) => ({
62242
62765
  fontFamily: theme2.typography.fontFamily,
62243
62766
  fontSize: "0.875rem",
62244
62767
  // Small text size
@@ -62434,7 +62957,7 @@ const GeneralSettings = ({
62434
62957
  },
62435
62958
  `model-select-${currentHosting}`
62436
62959
  ) : /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldContainer, { children: [
62437
- /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldLabel$1, { children: [
62960
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldLabel$2, { children: [
62438
62961
  /* @__PURE__ */ jsxRuntimeExports.jsx(LabelIcon$1, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(FontAwesomeIcon, { icon: faRobot }) }),
62439
62962
  "Model"
62440
62963
  ] }),
@@ -62536,14 +63059,14 @@ const GeneralSettings = ({
62536
63059
  ),
62537
63060
  /* @__PURE__ */ jsxRuntimeExports.jsxs(Grid, { container: true, spacing: 3, children: [
62538
63061
  /* @__PURE__ */ jsxRuntimeExports.jsxs(Grid, { item: true, xs: 12, sm: 6, children: [
62539
- /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldLabel$1, { children: [
63062
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldLabel$2, { children: [
62540
63063
  /* @__PURE__ */ jsxRuntimeExports.jsx(LabelIcon$1, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(FontAwesomeIcon, { icon: faIdCard, size: "xs" }) }),
62541
63064
  "ID"
62542
63065
  ] }),
62543
63066
  /* @__PURE__ */ jsxRuntimeExports.jsx(InfoCard, { title: selectedAgent.id, children: /* @__PURE__ */ jsxRuntimeExports.jsx(MonospaceValueText, { children: selectedAgent.id }) })
62544
63067
  ] }),
62545
63068
  /* @__PURE__ */ jsxRuntimeExports.jsxs(Grid, { item: true, xs: 12, sm: 6, children: [
62546
- /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldLabel$1, { children: [
63069
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldLabel$2, { children: [
62547
63070
  /* @__PURE__ */ jsxRuntimeExports.jsx(LabelIcon$1, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(FontAwesomeIcon, { icon: faCalendarAlt, size: "xs" }) }),
62548
63071
  "Created"
62549
63072
  ] }),
@@ -62556,7 +63079,7 @@ const GeneralSettings = ({
62556
63079
  )
62557
63080
  ] }),
62558
63081
  /* @__PURE__ */ jsxRuntimeExports.jsxs(Grid, { item: true, xs: 12, sm: 6, children: [
62559
- /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldLabel$1, { children: [
63082
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldLabel$2, { children: [
62560
63083
  /* @__PURE__ */ jsxRuntimeExports.jsx(LabelIcon$1, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(FontAwesomeIcon, { icon: faCodeBranch, size: "xs" }) }),
62561
63084
  "Version"
62562
63085
  ] }),
@@ -63211,7 +63734,7 @@ const OptionsButtonContainer$1 = styled$1(Box)({
63211
63734
  pointerEvents: "auto"
63212
63735
  }
63213
63736
  });
63214
- const formatDate = (dateString) => {
63737
+ const formatDate$1 = (dateString) => {
63215
63738
  if (!dateString) return "Unknown date";
63216
63739
  const date2 = new Date(dateString);
63217
63740
  return date2.toLocaleDateString(void 0, {
@@ -63442,14 +63965,14 @@ const AgentsSidebar = ({
63442
63965
  /* @__PURE__ */ jsxRuntimeExports.jsx(
63443
63966
  Tooltip$1,
63444
63967
  {
63445
- title: `Created: ${formatDate(agent.created_date)}`,
63968
+ title: `Created: ${formatDate$1(agent.created_date)}`,
63446
63969
  arrow: true,
63447
63970
  placement: "bottom-start",
63448
63971
  enterDelay: 1200,
63449
63972
  enterNextDelay: 1200,
63450
63973
  children: /* @__PURE__ */ jsxRuntimeExports.jsxs(CreationDateText, { children: [
63451
63974
  /* @__PURE__ */ jsxRuntimeExports.jsx(FontAwesomeIcon, { icon: faClock, size: "xs" }),
63452
- /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: formatDate(agent.created_date) })
63975
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: formatDate$1(agent.created_date) })
63453
63976
  ] })
63454
63977
  }
63455
63978
  )
@@ -82873,7 +83396,7 @@ const languages = [
82873
83396
  name: "Go",
82874
83397
  extensions: ["go"],
82875
83398
  load() {
82876
- return __vitePreload(() => import("./index-BpktHwp9.js"), true ? __vite__mapDeps([0,1,2]) : void 0, import.meta.url).then((m2) => m2.go());
83399
+ return __vitePreload(() => import("./index-cc_xe9_G.js"), true ? __vite__mapDeps([0,1,2]) : void 0, import.meta.url).then((m2) => m2.go());
82877
83400
  }
82878
83401
  }),
82879
83402
  /* @__PURE__ */ LanguageDescription.of({
@@ -83050,7 +83573,7 @@ const languages = [
83050
83573
  alias: ["yml"],
83051
83574
  extensions: ["yaml", "yml"],
83052
83575
  load() {
83053
- return __vitePreload(() => import("./index-D4xePR3Q.js"), true ? __vite__mapDeps([3,1,2]) : void 0, import.meta.url).then((m2) => m2.yaml());
83576
+ return __vitePreload(() => import("./index-qogN06h3.js"), true ? __vite__mapDeps([3,1,2]) : void 0, import.meta.url).then((m2) => m2.yaml());
83054
83577
  }
83055
83578
  }),
83056
83579
  // Legacy modes ported from CodeMirror 5
@@ -184109,7 +184632,7 @@ const SectionDescription$1 = styled$1(Box)(({ theme: theme2 }) => ({
184109
184632
  // Consistent margin
184110
184633
  lineHeight: 1.5
184111
184634
  }));
184112
- const FieldLabel = styled$1("label")(({ theme: theme2 }) => ({
184635
+ const FieldLabel$1 = styled$1("label")(({ theme: theme2 }) => ({
184113
184636
  ...theme2.typography.body2,
184114
184637
  marginBottom: 6,
184115
184638
  display: "flex",
@@ -184647,7 +185170,7 @@ const DefaultModelStep = () => {
184647
185170
  ) : /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
184648
185171
  /* @__PURE__ */ jsxRuntimeExports.jsxs(Box, { children: [
184649
185172
  " ",
184650
- /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldLabel, { children: [
185173
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldLabel$1, { children: [
184651
185174
  /* @__PURE__ */ jsxRuntimeExports.jsx(LabelIcon, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(FontAwesomeIcon, { icon: faRobot, size: "sm" }) }),
184652
185175
  "Model Provider"
184653
185176
  ] }),
@@ -184667,7 +185190,7 @@ const DefaultModelStep = () => {
184667
185190
  ] }),
184668
185191
  selectedProvider && /* @__PURE__ */ jsxRuntimeExports.jsxs(Box, { sx: { mt: 1.5 }, children: [
184669
185192
  " ",
184670
- /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldLabel, { children: [
185193
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldLabel$1, { children: [
184671
185194
  /* @__PURE__ */ jsxRuntimeExports.jsx(LabelIcon, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(FontAwesomeIcon, { icon: faWandMagicSparkles, size: "sm" }) }),
184672
185195
  "AI Model"
184673
185196
  ] }),
@@ -184970,7 +185493,7 @@ const ModelCredentialStep = () => {
184970
185493
  /* @__PURE__ */ jsxRuntimeExports.jsxs(FormContainer, { children: [
184971
185494
  /* @__PURE__ */ jsxRuntimeExports.jsxs(Box, { children: [
184972
185495
  " ",
184973
- /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldLabel, { children: [
185496
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldLabel$1, { children: [
184974
185497
  /* @__PURE__ */ jsxRuntimeExports.jsx(LabelIcon, { children: "🤖" }),
184975
185498
  "Model Provider"
184976
185499
  ] }),
@@ -185042,7 +185565,7 @@ const ModelCredentialStep = () => {
185042
185565
  ),
185043
185566
  /* @__PURE__ */ jsxRuntimeExports.jsxs(Box, { children: [
185044
185567
  " ",
185045
- /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldLabel, { children: [
185568
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldLabel$1, { children: [
185046
185569
  /* @__PURE__ */ jsxRuntimeExports.jsx(LabelIcon, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(FontAwesomeIcon, { icon: faKey, size: "sm" }) }),
185047
185570
  "API Key"
185048
185571
  ] }),
@@ -185562,7 +186085,7 @@ const SearchApiStep = () => {
185562
186085
  ),
185563
186086
  /* @__PURE__ */ jsxRuntimeExports.jsxs(Box, { children: [
185564
186087
  " ",
185565
- /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldLabel, { children: [
186088
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldLabel$1, { children: [
185566
186089
  /* @__PURE__ */ jsxRuntimeExports.jsx(LabelIcon, { children: "🔎" }),
185567
186090
  "Search API Provider"
185568
186091
  ] }),
@@ -185645,7 +186168,7 @@ const SearchApiStep = () => {
185645
186168
  ),
185646
186169
  /* @__PURE__ */ jsxRuntimeExports.jsxs(Box, { children: [
185647
186170
  " ",
185648
- /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldLabel, { children: [
186171
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldLabel$1, { children: [
185649
186172
  /* @__PURE__ */ jsxRuntimeExports.jsx(LabelIcon, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(FontAwesomeIcon, { icon: faKey, size: "sm" }) }),
185650
186173
  "API Key (Optional)"
185651
186174
  ] }),
@@ -185767,7 +186290,7 @@ const UserProfileStep = () => {
185767
186290
  /* @__PURE__ */ jsxRuntimeExports.jsxs(FormContainer, { children: [
185768
186291
  /* @__PURE__ */ jsxRuntimeExports.jsxs(Box, { children: [
185769
186292
  " ",
185770
- /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldLabel, { children: [
186293
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldLabel$1, { children: [
185771
186294
  /* @__PURE__ */ jsxRuntimeExports.jsx(LabelIcon, { children: "😎" }),
185772
186295
  " ",
185773
186296
  "Your Name"
@@ -185789,7 +186312,7 @@ const UserProfileStep = () => {
185789
186312
  ] }),
185790
186313
  /* @__PURE__ */ jsxRuntimeExports.jsxs(Box, { children: [
185791
186314
  " ",
185792
- /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldLabel, { children: [
186315
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldLabel$1, { children: [
185793
186316
  /* @__PURE__ */ jsxRuntimeExports.jsx(LabelIcon, { children: "📧" }),
185794
186317
  " ",
185795
186318
  "Email Address (Optional)"
@@ -186116,6 +186639,1048 @@ const OnboardingModal = ({ open: open2 }) => {
186116
186639
  }
186117
186640
  );
186118
186641
  };
186642
+ const SCHEDULE_QUERY_KEY = "schedules";
186643
+ const AGENT_SCHEDULE_QUERY_KEY = "agentSchedules";
186644
+ const useListAllSchedules = (page = 1, perPage = 10) => {
186645
+ const { baseUrl } = apiConfig;
186646
+ return useQuery({
186647
+ queryKey: [SCHEDULE_QUERY_KEY, "all", page, perPage],
186648
+ queryFn: () => SchedulesApi.listAllSchedules(baseUrl, page, perPage),
186649
+ enabled: !!baseUrl
186650
+ });
186651
+ };
186652
+ const useCreateScheduleForAgent = () => {
186653
+ const queryClient2 = useQueryClient();
186654
+ const { baseUrl } = apiConfig;
186655
+ return useMutation({
186656
+ mutationFn: ({ agentId, scheduleData }) => SchedulesApi.createScheduleForAgent(baseUrl, agentId, scheduleData),
186657
+ onSuccess: (_2, variables) => {
186658
+ queryClient2.invalidateQueries({ queryKey: [SCHEDULE_QUERY_KEY, "all"] });
186659
+ queryClient2.invalidateQueries({
186660
+ queryKey: [AGENT_SCHEDULE_QUERY_KEY, variables.agentId]
186661
+ });
186662
+ }
186663
+ });
186664
+ };
186665
+ const useEditSchedule = () => {
186666
+ const queryClient2 = useQueryClient();
186667
+ const { baseUrl } = apiConfig;
186668
+ return useMutation({
186669
+ mutationFn: ({ scheduleId, scheduleData }) => SchedulesApi.editSchedule(baseUrl, scheduleId, scheduleData),
186670
+ onSuccess: (data2) => {
186671
+ const agentId = data2.result?.agent_id;
186672
+ queryClient2.invalidateQueries({ queryKey: [SCHEDULE_QUERY_KEY, "all"] });
186673
+ queryClient2.invalidateQueries({
186674
+ queryKey: [SCHEDULE_QUERY_KEY, data2.result?.id]
186675
+ });
186676
+ if (agentId) {
186677
+ queryClient2.invalidateQueries({
186678
+ queryKey: [AGENT_SCHEDULE_QUERY_KEY, agentId]
186679
+ });
186680
+ }
186681
+ }
186682
+ });
186683
+ };
186684
+ const useRemoveSchedule = () => {
186685
+ const queryClient2 = useQueryClient();
186686
+ const { baseUrl } = apiConfig;
186687
+ return useMutation({
186688
+ mutationFn: ({ scheduleId }) => SchedulesApi.removeSchedule(baseUrl, scheduleId),
186689
+ onSuccess: (_2, variables) => {
186690
+ queryClient2.invalidateQueries({ queryKey: [SCHEDULE_QUERY_KEY, "all"] });
186691
+ queryClient2.invalidateQueries({
186692
+ queryKey: [SCHEDULE_QUERY_KEY, variables.scheduleId]
186693
+ });
186694
+ if (variables.agentId) {
186695
+ queryClient2.invalidateQueries({
186696
+ queryKey: [AGENT_SCHEDULE_QUERY_KEY, variables.agentId]
186697
+ });
186698
+ }
186699
+ }
186700
+ });
186701
+ };
186702
+ const StyledFormGrid = styled$1(Grid)(({ theme: theme2 }) => ({
186703
+ paddingTop: theme2.spacing(1)
186704
+ }));
186705
+ const FieldLabel = styled$1("label")(({ theme: theme2 }) => ({
186706
+ display: "block",
186707
+ marginBottom: theme2.spacing(0.75),
186708
+ color: theme2.palette.text.secondary,
186709
+ fontWeight: 500,
186710
+ fontSize: "0.875rem",
186711
+ lineHeight: 1.5
186712
+ }));
186713
+ const FullWidthTextField = styled$1(TextField)(({ theme: theme2 }) => ({
186714
+ width: "100%",
186715
+ "& .MuiOutlinedInput-root": {
186716
+ borderRadius: 6,
186717
+ border: `1px solid ${theme2.palette.divider}`,
186718
+ backgroundColor: theme2.palette.background.paper,
186719
+ minHeight: "36px",
186720
+ height: "36px",
186721
+ padding: 0,
186722
+ transition: "border-color 0.2s ease, box-shadow 0.2s ease",
186723
+ "&:hover": {
186724
+ borderColor: theme2.palette.text.secondary
186725
+ },
186726
+ "&.Mui-focused": {
186727
+ borderColor: theme2.palette.primary.main,
186728
+ boxShadow: `0 0 0 2px ${alpha$1(theme2.palette.primary.main, 0.2)}`
186729
+ },
186730
+ "& .MuiOutlinedInput-notchedOutline": {
186731
+ border: "none"
186732
+ },
186733
+ "&:not(.MuiInputBase-multiline) .MuiInputBase-input": {
186734
+ height: "calc(36px - 16px)",
186735
+ padding: "8px 12px"
186736
+ },
186737
+ "&.MuiInputBase-multiline": {
186738
+ minHeight: "36px",
186739
+ height: "auto",
186740
+ padding: "8px 12px"
186741
+ }
186742
+ },
186743
+ "& .MuiInputBase-input": {
186744
+ fontSize: "0.875rem",
186745
+ lineHeight: 1.5,
186746
+ boxSizing: "border-box",
186747
+ "&.MuiInputBase-inputMultiline": {
186748
+ padding: "0px",
186749
+ height: "auto"
186750
+ }
186751
+ }
186752
+ }));
186753
+ const FullWidthFormControl = styled$1(FormControl)(({ theme: theme2 }) => ({
186754
+ width: "100%",
186755
+ "& .MuiOutlinedInput-root": {
186756
+ borderRadius: 6,
186757
+ border: `1px solid ${theme2.palette.divider}`,
186758
+ backgroundColor: theme2.palette.background.paper,
186759
+ minHeight: "36px",
186760
+ height: "36px",
186761
+ padding: "0 !important",
186762
+ transition: "border-color 0.2s ease, box-shadow 0.2s ease",
186763
+ "&:hover": {
186764
+ borderColor: theme2.palette.text.secondary
186765
+ },
186766
+ "&.Mui-focused": {
186767
+ borderColor: theme2.palette.primary.main,
186768
+ boxShadow: `0 0 0 2px ${alpha$1(theme2.palette.primary.main, 0.2)}`
186769
+ },
186770
+ "& .MuiOutlinedInput-notchedOutline": {
186771
+ border: "none"
186772
+ }
186773
+ },
186774
+ "& .MuiSelect-select": {
186775
+ padding: "8px 12px !important",
186776
+ fontSize: "0.875rem",
186777
+ lineHeight: 1.5,
186778
+ height: "calc(36px - 16px) !important",
186779
+ boxSizing: "border-box",
186780
+ display: "flex",
186781
+ alignItems: "center"
186782
+ }
186783
+ }));
186784
+ const StyledAutocomplete = styled$1(
186785
+ Autocomplete
186786
+ )(({ theme: theme2 }) => ({
186787
+ "& .MuiOutlinedInput-root": {
186788
+ borderRadius: 6,
186789
+ border: `1px solid ${theme2.palette.divider}`,
186790
+ backgroundColor: theme2.palette.background.paper,
186791
+ minHeight: "36px",
186792
+ height: "36px",
186793
+ padding: "0 !important",
186794
+ transition: "border-color 0.2s ease, box-shadow 0.2s ease",
186795
+ "&:hover": {
186796
+ borderColor: theme2.palette.text.secondary
186797
+ },
186798
+ "&.Mui-focused": {
186799
+ borderColor: theme2.palette.primary.main,
186800
+ boxShadow: `0 0 0 2px ${alpha$1(theme2.palette.primary.main, 0.2)}`
186801
+ },
186802
+ "& .MuiOutlinedInput-notchedOutline": {
186803
+ border: "none"
186804
+ },
186805
+ "& .MuiInputBase-input": {
186806
+ padding: "8px 12px !important",
186807
+ fontSize: "0.875rem",
186808
+ lineHeight: 1.5,
186809
+ height: "calc(36px - 16px)",
186810
+ boxSizing: "border-box"
186811
+ }
186812
+ },
186813
+ "& .MuiAutocomplete-endAdornment": {
186814
+ right: "8px",
186815
+ top: "50%",
186816
+ transform: "translateY(-50%)"
186817
+ },
186818
+ "& .MuiAutocomplete-clearIndicator, & .MuiAutocomplete-popupIndicator": {
186819
+ color: theme2.palette.text.secondary,
186820
+ "&:hover": {
186821
+ color: theme2.palette.text.primary,
186822
+ backgroundColor: alpha$1(theme2.palette.action.active, 0.04)
186823
+ }
186824
+ }
186825
+ }));
186826
+ const StyledFormHelperText = styled$1(Typography, {
186827
+ shouldForwardProp: (prop) => prop !== "error"
186828
+ })(({ theme: theme2, error }) => ({
186829
+ fontSize: "0.75rem",
186830
+ marginTop: theme2.spacing(0.5),
186831
+ marginLeft: theme2.spacing(0.25),
186832
+ color: error ? theme2.palette.error.main : theme2.palette.text.secondary
186833
+ }));
186834
+ const StyledSwitch = styled$1(Switch)(({ theme: theme2 }) => ({
186835
+ width: 42,
186836
+ height: 26,
186837
+ padding: 0,
186838
+ "& .MuiSwitch-switchBase": {
186839
+ padding: 0,
186840
+ margin: 2,
186841
+ transitionDuration: "300ms",
186842
+ "&.Mui-checked": {
186843
+ transform: "translateX(16px)",
186844
+ color: "#fff",
186845
+ "& + .MuiSwitch-track": {
186846
+ backgroundColor: theme2.palette.primary.main,
186847
+ opacity: 1,
186848
+ border: 0
186849
+ },
186850
+ "&.Mui-disabled + .MuiSwitch-track": {
186851
+ opacity: 0.5
186852
+ }
186853
+ },
186854
+ "&.Mui-focusVisible .MuiSwitch-thumb": {
186855
+ color: theme2.palette.primary.main,
186856
+ border: "6px solid #fff"
186857
+ },
186858
+ "&.Mui-disabled .MuiSwitch-thumb": {
186859
+ color: theme2.palette.mode === "light" ? theme2.palette.grey[100] : theme2.palette.grey[600]
186860
+ },
186861
+ "&.Mui-disabled + .MuiSwitch-track": {
186862
+ opacity: theme2.palette.mode === "light" ? 0.7 : 0.3
186863
+ }
186864
+ },
186865
+ "& .MuiSwitch-thumb": {
186866
+ boxSizing: "border-box",
186867
+ width: 22,
186868
+ height: 22,
186869
+ boxShadow: "none"
186870
+ },
186871
+ "& .MuiSwitch-track": {
186872
+ borderRadius: 26 / 2,
186873
+ backgroundColor: theme2.palette.mode === "light" ? "#E9E9EA" : theme2.palette.grey[700],
186874
+ opacity: 1,
186875
+ transition: theme2.transitions.create(["background-color"], {
186876
+ duration: 500
186877
+ })
186878
+ }
186879
+ }));
186880
+ const StyledFormControlLabel = styled$1(FormControlLabel)(({ theme: theme2 }) => ({
186881
+ marginLeft: 0,
186882
+ marginRight: theme2.spacing(1),
186883
+ "& .MuiTypography-root": {
186884
+ fontSize: "0.875rem",
186885
+ color: theme2.palette.text.primary,
186886
+ paddingLeft: theme2.spacing(1)
186887
+ }
186888
+ }));
186889
+ const StyledMenuItem = styled$1(MenuItem)(({ theme: theme2 }) => ({
186890
+ fontSize: "0.875rem",
186891
+ paddingTop: theme2.spacing(1),
186892
+ paddingBottom: theme2.spacing(1),
186893
+ "&:hover": {
186894
+ backgroundColor: alpha$1(theme2.palette.action.hover, 0.08)
186895
+ },
186896
+ "&.Mui-selected": {
186897
+ backgroundColor: alpha$1(theme2.palette.primary.main, 0.12),
186898
+ "&:hover": {
186899
+ backgroundColor: alpha$1(theme2.palette.primary.main, 0.16)
186900
+ }
186901
+ }
186902
+ }));
186903
+ const defaultFormState = {
186904
+ selectedAgentId: null,
186905
+ // Initialize selectedAgentId
186906
+ prompt: "",
186907
+ interval: 1,
186908
+ unit: "hours",
186909
+ is_active: true,
186910
+ one_time: false,
186911
+ start_time_utc: null,
186912
+ end_time_utc: null
186913
+ };
186914
+ const ScheduleFormDialog = ({
186915
+ open: open2,
186916
+ onClose,
186917
+ onSubmit,
186918
+ initialData
186919
+ // agentId prop removed
186920
+ }) => {
186921
+ const [formData, setFormData] = reactExports.useState(defaultFormState);
186922
+ const [isSubmitting, setIsSubmitting] = reactExports.useState(false);
186923
+ const [agentSearchQuery, setAgentSearchQuery] = reactExports.useState("");
186924
+ const [selectedAgentForForm, setSelectedAgentForForm] = reactExports.useState(null);
186925
+ const isEditMode = !!initialData;
186926
+ const {
186927
+ data: agentsListResult,
186928
+ isLoading: isLoadingAgents,
186929
+ isError: isAgentsError
186930
+ } = useAgents(1, 50, 0, agentSearchQuery || void 0);
186931
+ const agentOptions = reactExports.useMemo(
186932
+ () => agentsListResult?.agents || [],
186933
+ [agentsListResult]
186934
+ );
186935
+ reactExports.useEffect(() => {
186936
+ if (open2) {
186937
+ if (initialData) {
186938
+ setFormData({
186939
+ selectedAgentId: initialData.agent_id,
186940
+ // Pre-fill agent if editing
186941
+ prompt: initialData.prompt,
186942
+ interval: initialData.interval,
186943
+ unit: initialData.unit,
186944
+ is_active: initialData.is_active,
186945
+ one_time: initialData.one_time,
186946
+ start_time_utc: initialData.start_time_utc ? new Date(initialData.start_time_utc).toISOString().slice(0, 16) : null,
186947
+ end_time_utc: initialData.end_time_utc ? new Date(initialData.end_time_utc).toISOString().slice(0, 16) : null
186948
+ });
186949
+ const currentAgent = agentOptions.find(
186950
+ (agent) => agent.id === initialData.agent_id
186951
+ );
186952
+ if (currentAgent) {
186953
+ setSelectedAgentForForm(currentAgent);
186954
+ } else if (initialData.agent_id && !isLoadingAgents && agentOptions.length > 0) ;
186955
+ } else {
186956
+ setFormData(defaultFormState);
186957
+ setSelectedAgentForForm(null);
186958
+ setAgentSearchQuery("");
186959
+ }
186960
+ }
186961
+ }, [open2, initialData, agentOptions, isLoadingAgents]);
186962
+ const handleChange = (event) => {
186963
+ const { name: name2, value } = event.target;
186964
+ let processedValue = value;
186965
+ if ("type" in event.target) {
186966
+ const targetType = event.target.type;
186967
+ if (targetType === "number" && name2 === "interval") {
186968
+ processedValue = value === "" ? "" : Number.parseInt(value, 10);
186969
+ }
186970
+ }
186971
+ setFormData((prev2) => ({
186972
+ ...prev2,
186973
+ [name2]: processedValue
186974
+ }));
186975
+ };
186976
+ const handleSwitchChange = (event) => {
186977
+ setFormData((prev2) => ({
186978
+ ...prev2,
186979
+ [event.target.name]: event.target.checked
186980
+ }));
186981
+ };
186982
+ const handleDateTimeChange = (event) => {
186983
+ const { name: name2, value } = event.target;
186984
+ setFormData((prev2) => ({
186985
+ ...prev2,
186986
+ [name2]: value ? new Date(value).toISOString() : null
186987
+ }));
186988
+ };
186989
+ const handleSubmit = async () => {
186990
+ setIsSubmitting(true);
186991
+ try {
186992
+ if (!isEditMode && !formData.selectedAgentId) {
186993
+ console.error("Agent ID is required to create a schedule.");
186994
+ setIsSubmitting(false);
186995
+ return;
186996
+ }
186997
+ const scheduleData = {
186998
+ prompt: formData.prompt,
186999
+ interval: Number(formData.interval),
187000
+ unit: formData.unit,
187001
+ is_active: formData.is_active,
187002
+ one_time: formData.one_time,
187003
+ start_time_utc: formData.start_time_utc || null,
187004
+ end_time_utc: formData.end_time_utc || null
187005
+ };
187006
+ if (scheduleData.start_time_utc === "")
187007
+ scheduleData.start_time_utc = null;
187008
+ if (scheduleData.end_time_utc === "") scheduleData.end_time_utc = null;
187009
+ const agentForSubmit = isEditMode ? initialData.agent_id : formData.selectedAgentId;
187010
+ if (!agentForSubmit) {
187011
+ console.error("Agent ID is missing for submission.");
187012
+ setIsSubmitting(false);
187013
+ return;
187014
+ }
187015
+ await onSubmit(scheduleData, agentForSubmit);
187016
+ onClose();
187017
+ } catch (error) {
187018
+ console.error("Failed to submit schedule:", error);
187019
+ y$2.error(
187020
+ `Failed to save schedule: ${error instanceof Error ? error.message : "Unknown error"}`
187021
+ );
187022
+ } finally {
187023
+ setIsSubmitting(false);
187024
+ }
187025
+ };
187026
+ const dialogTitle = isEditMode ? "Edit Schedule" : "Create New Schedule";
187027
+ const dialogActions = /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
187028
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
187029
+ SecondaryButton$1,
187030
+ {
187031
+ onClick: onClose,
187032
+ disabled: isSubmitting,
187033
+ startIcon: /* @__PURE__ */ jsxRuntimeExports.jsx(SquareX, { size: 18 }),
187034
+ children: "Cancel"
187035
+ }
187036
+ ),
187037
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
187038
+ PrimaryButton$1,
187039
+ {
187040
+ onClick: handleSubmit,
187041
+ disabled: isSubmitting || !formData.prompt || formData.interval != null && formData.interval < 1 || !isEditMode && !formData.selectedAgentId,
187042
+ startIcon: isSubmitting ? /* @__PURE__ */ jsxRuntimeExports.jsx(CircularProgress, { size: 18, color: "inherit" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(Save, { size: 18 }),
187043
+ children: isSubmitting ? "Saving..." : isEditMode ? "Save Changes" : "Create Schedule"
187044
+ }
187045
+ )
187046
+ ] });
187047
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
187048
+ BaseDialog,
187049
+ {
187050
+ open: open2,
187051
+ onClose,
187052
+ title: dialogTitle,
187053
+ actions: dialogActions,
187054
+ maxWidth: "sm",
187055
+ fullWidth: true,
187056
+ children: /* @__PURE__ */ jsxRuntimeExports.jsxs(StyledFormGrid, { container: true, spacing: 2, children: [
187057
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Grid, { item: true, xs: 12, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(Box, { display: "flex", alignItems: "center", mb: 1, children: [
187058
+ /* @__PURE__ */ jsxRuntimeExports.jsx(IconButton, { size: "small", sx: { mr: 1, color: "info.main" }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Info$1, { size: 16 }) }),
187059
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
187060
+ Typography,
187061
+ {
187062
+ variant: "body2",
187063
+ color: "text.secondary",
187064
+ fontSize: "0.875rem",
187065
+ children: 'Tip: It is often easier to ask an agent through chat to do something for you on a regular basis, like "Send me an email with the latest news at 8am every day".'
187066
+ }
187067
+ )
187068
+ ] }) }),
187069
+ !isEditMode && /* @__PURE__ */ jsxRuntimeExports.jsxs(Grid, { item: true, xs: 12, children: [
187070
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldLabel, { htmlFor: "agent-select-for-schedule", children: [
187071
+ "Select Agent",
187072
+ " ",
187073
+ isEditMode ? "" : /* @__PURE__ */ jsxRuntimeExports.jsx(
187074
+ Typography,
187075
+ {
187076
+ component: "span",
187077
+ color: "error.main",
187078
+ sx: { ml: 0.5 },
187079
+ children: "*"
187080
+ }
187081
+ )
187082
+ ] }),
187083
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
187084
+ StyledAutocomplete,
187085
+ {
187086
+ id: "agent-select-for-schedule",
187087
+ options: agentOptions,
187088
+ value: selectedAgentForForm,
187089
+ getOptionLabel: (option2) => option2.name || `Agent ID: ${option2.id.substring(0, 8)}...`,
187090
+ isOptionEqualToValue: (option2, value) => option2.id === value.id,
187091
+ onChange: (_event, newValue) => {
187092
+ setSelectedAgentForForm(newValue);
187093
+ setFormData((prev2) => ({
187094
+ ...prev2,
187095
+ selectedAgentId: newValue ? newValue.id : null
187096
+ }));
187097
+ },
187098
+ onInputChange: (_event, newInputValue) => {
187099
+ const timer = setTimeout(() => {
187100
+ setAgentSearchQuery(newInputValue);
187101
+ }, 300);
187102
+ return () => clearTimeout(timer);
187103
+ },
187104
+ loading: isLoadingAgents,
187105
+ disabled: isSubmitting || isEditMode,
187106
+ renderInput: (params) => /* @__PURE__ */ jsxRuntimeExports.jsx(
187107
+ TextField,
187108
+ {
187109
+ ...params,
187110
+ placeholder: "Search or select an agent...",
187111
+ error: isAgentsError || !isEditMode && !formData.selectedAgentId && isSubmitting,
187112
+ InputProps: {
187113
+ ...params.InputProps,
187114
+ endAdornment: /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
187115
+ isLoadingAgents ? /* @__PURE__ */ jsxRuntimeExports.jsx(CircularProgress, { color: "inherit", size: 20 }) : null,
187116
+ params.InputProps.endAdornment
187117
+ ] })
187118
+ }
187119
+ }
187120
+ ),
187121
+ renderOption: (props2, option2) => /* @__PURE__ */ reactExports.createElement(
187122
+ Box,
187123
+ {
187124
+ component: "li",
187125
+ ...props2,
187126
+ key: option2.id,
187127
+ sx: (theme2) => ({
187128
+ display: "flex",
187129
+ justifyContent: "left",
187130
+ alignItems: "flex-start",
187131
+ "&:hover": {
187132
+ backgroundColor: alpha$1(theme2.palette.action.hover, 0.08)
187133
+ },
187134
+ '&[aria-selected="true"]': {
187135
+ backgroundColor: alpha$1(theme2.palette.primary.main, 0.12)
187136
+ }
187137
+ })
187138
+ },
187139
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
187140
+ Typography,
187141
+ {
187142
+ variant: "body2",
187143
+ component: "span",
187144
+ sx: { fontWeight: 500 },
187145
+ children: option2.name || "Unnamed Agent"
187146
+ }
187147
+ )
187148
+ )
187149
+ }
187150
+ ),
187151
+ (isAgentsError || !isEditMode && !formData.selectedAgentId && isSubmitting) && /* @__PURE__ */ jsxRuntimeExports.jsx(
187152
+ StyledFormHelperText,
187153
+ {
187154
+ error: !!isAgentsError || !isEditMode && !formData.selectedAgentId && !!isSubmitting,
187155
+ children: isAgentsError ? "Failed to load agents." : "Agent selection is required."
187156
+ }
187157
+ )
187158
+ ] }),
187159
+ isEditMode && initialData && /* @__PURE__ */ jsxRuntimeExports.jsx(Grid, { item: true, xs: 12, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(Typography, { variant: "body2", color: "text.secondary", sx: { mt: 1 }, children: [
187160
+ "Editing schedule for Agent:",
187161
+ " ",
187162
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { component: "span", sx: { fontWeight: 500 }, children: selectedAgentForForm?.name || `${initialData.agent_id.substring(0, 8)}...` }),
187163
+ " ",
187164
+ "(Agent cannot be changed)"
187165
+ ] }) }),
187166
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Grid, { item: true, xs: 12, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
187167
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldLabel, { htmlFor: "prompt", children: [
187168
+ "Prompt",
187169
+ " ",
187170
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { component: "span", color: "error.main", sx: { ml: 0.5 }, children: "*" }),
187171
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
187172
+ Tooltip$1,
187173
+ {
187174
+ title: /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
187175
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { variant: "caption", display: "block", gutterBottom: true, children: "This is the message that will be sent to the agent on the schedule." }),
187176
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { variant: "caption", display: "block", children: 'Example: "Send me an email with a detailed world news breakdown with key events"' })
187177
+ ] }),
187178
+ placement: "top-start",
187179
+ arrow: true,
187180
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(IconButton, { size: "small", sx: { color: "info.main" }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Info$1, { size: 14 }) })
187181
+ }
187182
+ )
187183
+ ] }),
187184
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
187185
+ FullWidthTextField,
187186
+ {
187187
+ id: "prompt",
187188
+ name: "prompt",
187189
+ value: formData.prompt,
187190
+ onChange: handleChange,
187191
+ required: true,
187192
+ multiline: true,
187193
+ rows: 3,
187194
+ disabled: isSubmitting,
187195
+ placeholder: "e.g., Send me an email with a detailed world news breakdown..."
187196
+ }
187197
+ )
187198
+ ] }) }),
187199
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(Grid, { item: true, xs: 6, children: [
187200
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldLabel, { htmlFor: "interval", children: [
187201
+ "Interval",
187202
+ " ",
187203
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { component: "span", color: "error.main", sx: { ml: 0.5 }, children: "*" })
187204
+ ] }),
187205
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
187206
+ FullWidthTextField,
187207
+ {
187208
+ id: "interval",
187209
+ name: "interval",
187210
+ type: "number",
187211
+ value: formData.interval === null ? "" : formData.interval,
187212
+ onChange: handleChange,
187213
+ required: true,
187214
+ disabled: isSubmitting,
187215
+ InputProps: { inputProps: { min: 1 } },
187216
+ placeholder: "e.g., 1"
187217
+ }
187218
+ )
187219
+ ] }),
187220
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(Grid, { item: true, xs: 6, children: [
187221
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldLabel, { htmlFor: "unit-select", children: [
187222
+ "Unit",
187223
+ " ",
187224
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { component: "span", color: "error.main", sx: { ml: 0.5 }, children: "*" })
187225
+ ] }),
187226
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
187227
+ FullWidthFormControl,
187228
+ {
187229
+ required: true,
187230
+ disabled: isSubmitting,
187231
+ id: "unit-select-formcontrol",
187232
+ children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
187233
+ Select,
187234
+ {
187235
+ id: "unit-select",
187236
+ name: "unit",
187237
+ value: formData.unit || "hours",
187238
+ onChange: handleChange,
187239
+ displayEmpty: true,
187240
+ children: [
187241
+ /* @__PURE__ */ jsxRuntimeExports.jsx(StyledMenuItem, { value: "minutes", children: "Minutes" }),
187242
+ /* @__PURE__ */ jsxRuntimeExports.jsx(StyledMenuItem, { value: "hours", children: "Hours" }),
187243
+ /* @__PURE__ */ jsxRuntimeExports.jsx(StyledMenuItem, { value: "days", children: "Days" })
187244
+ ]
187245
+ }
187246
+ )
187247
+ }
187248
+ )
187249
+ ] }),
187250
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(Grid, { item: true, xs: 12, sm: 6, children: [
187251
+ /* @__PURE__ */ jsxRuntimeExports.jsx(FieldLabel, { htmlFor: "start_time_utc", children: "Start Time (UTC, Optional)" }),
187252
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
187253
+ FullWidthTextField,
187254
+ {
187255
+ id: "start_time_utc",
187256
+ name: "start_time_utc",
187257
+ type: "datetime-local",
187258
+ value: formData.start_time_utc ? formData.start_time_utc.slice(0, 16) : "",
187259
+ onChange: handleDateTimeChange,
187260
+ disabled: isSubmitting
187261
+ }
187262
+ ),
187263
+ /* @__PURE__ */ jsxRuntimeExports.jsx(StyledFormHelperText, { children: "If not set, starts immediately or on next interval." })
187264
+ ] }),
187265
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(Grid, { item: true, xs: 12, sm: 6, children: [
187266
+ /* @__PURE__ */ jsxRuntimeExports.jsx(FieldLabel, { htmlFor: "end_time_utc", children: "End Time (UTC, Optional)" }),
187267
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
187268
+ FullWidthTextField,
187269
+ {
187270
+ id: "end_time_utc",
187271
+ name: "end_time_utc",
187272
+ type: "datetime-local",
187273
+ value: formData.end_time_utc ? formData.end_time_utc.slice(0, 16) : "",
187274
+ onChange: handleDateTimeChange,
187275
+ disabled: isSubmitting
187276
+ }
187277
+ ),
187278
+ /* @__PURE__ */ jsxRuntimeExports.jsx(StyledFormHelperText, { children: "If not set, schedule runs indefinitely." })
187279
+ ] }),
187280
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Grid, { item: true, xs: 6, sx: { display: "flex", alignItems: "center", mt: 1 }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
187281
+ StyledFormControlLabel,
187282
+ {
187283
+ control: /* @__PURE__ */ jsxRuntimeExports.jsx(
187284
+ StyledSwitch,
187285
+ {
187286
+ checked: formData.is_active || false,
187287
+ onChange: handleSwitchChange,
187288
+ name: "is_active",
187289
+ disabled: isSubmitting
187290
+ }
187291
+ ),
187292
+ label: "Active"
187293
+ }
187294
+ ) }),
187295
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Grid, { item: true, xs: 6, sx: { display: "flex", alignItems: "center", mt: 1 }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
187296
+ StyledFormControlLabel,
187297
+ {
187298
+ control: /* @__PURE__ */ jsxRuntimeExports.jsx(
187299
+ StyledSwitch,
187300
+ {
187301
+ checked: formData.one_time || false,
187302
+ onChange: handleSwitchChange,
187303
+ name: "one_time",
187304
+ disabled: isSubmitting
187305
+ }
187306
+ ),
187307
+ label: "One-time"
187308
+ }
187309
+ ) })
187310
+ ] })
187311
+ }
187312
+ );
187313
+ };
187314
+ const formatTime = (date2) => {
187315
+ return date2.toLocaleTimeString(navigator.language, {
187316
+ hour: "numeric",
187317
+ minute: "2-digit"
187318
+ });
187319
+ };
187320
+ const formatDate = (date2, includeYear) => {
187321
+ const options = {
187322
+ weekday: "long",
187323
+ month: "long",
187324
+ day: "numeric"
187325
+ };
187326
+ if (includeYear) {
187327
+ options.year = "numeric";
187328
+ }
187329
+ return date2.toLocaleDateString(navigator.language, options);
187330
+ };
187331
+ const createScheduleDisplayString = (schedule) => {
187332
+ let intervalString;
187333
+ if (schedule.interval === 1) {
187334
+ intervalString = `Every ${schedule.unit.slice(0, -1)}`;
187335
+ } else {
187336
+ intervalString = `Every ${schedule.interval} ${schedule.unit}`;
187337
+ }
187338
+ let displayString = intervalString;
187339
+ const now = /* @__PURE__ */ new Date();
187340
+ const currentYear = now.getFullYear();
187341
+ if (schedule.start_time_utc) {
187342
+ const startTime = new Date(schedule.start_time_utc);
187343
+ displayString += ` @ ${formatTime(startTime)}`;
187344
+ if (schedule.one_time) {
187345
+ const startYear = startTime.getFullYear();
187346
+ displayString += ` on ${formatDate(startTime, startYear !== currentYear)}`;
187347
+ }
187348
+ }
187349
+ if (schedule.end_time_utc) {
187350
+ const endTime = new Date(schedule.end_time_utc);
187351
+ if (schedule.start_time_utc) {
187352
+ displayString += ` to ${formatTime(endTime)}`;
187353
+ if (schedule.one_time) {
187354
+ const startTime = schedule.start_time_utc ? new Date(schedule.start_time_utc) : null;
187355
+ if (!startTime || startTime.toDateString() !== endTime.toDateString()) {
187356
+ const endYear = endTime.getFullYear();
187357
+ displayString += ` on ${formatDate(endTime, endYear !== currentYear)}`;
187358
+ }
187359
+ }
187360
+ } else {
187361
+ displayString += ` ending @ ${formatTime(endTime)}`;
187362
+ if (schedule.one_time) {
187363
+ const endYear = endTime.getFullYear();
187364
+ displayString += ` on ${formatDate(endTime, endYear !== currentYear)}`;
187365
+ }
187366
+ }
187367
+ }
187368
+ if (schedule.one_time && !schedule.start_time_utc && !schedule.end_time_utc) {
187369
+ displayString += " (One-time)";
187370
+ }
187371
+ return displayString;
187372
+ };
187373
+ const ListItemPaper = styled$1(Paper)(({ theme: theme2 }) => ({
187374
+ padding: theme2.spacing(2),
187375
+ marginBottom: theme2.spacing(2),
187376
+ display: "grid",
187377
+ gridTemplateAreas: `
187378
+ "prompt prompt actions"
187379
+ "info info info"
187380
+ "footer footer footer"
187381
+ `,
187382
+ gridTemplateColumns: "1fr auto auto",
187383
+ gap: theme2.spacing(1),
187384
+ backgroundImage: "none",
187385
+ border: `1px solid ${alpha$1(theme2.palette.divider, 0.1)}`,
187386
+ borderRadius: theme2.shape.borderRadius,
187387
+ transition: "border-color 0.2s ease",
187388
+ "&:hover": {
187389
+ borderColor: alpha$1(theme2.palette.divider, 0.4)
187390
+ }
187391
+ }));
187392
+ const PromptSection = styled$1(Box)({
187393
+ gridArea: "prompt",
187394
+ wordBreak: "break-word"
187395
+ });
187396
+ const InfoSection = styled$1(Box)(({ theme: theme2 }) => ({
187397
+ gridArea: "info",
187398
+ display: "flex",
187399
+ flexDirection: "column",
187400
+ gap: theme2.spacing(0.5)
187401
+ }));
187402
+ const ActionsSection = styled$1(Box)(({ theme: theme2 }) => ({
187403
+ gridArea: "actions",
187404
+ display: "flex",
187405
+ gap: theme2.spacing(1),
187406
+ alignSelf: "start"
187407
+ }));
187408
+ const FooterSection = styled$1(Box)({
187409
+ gridArea: "footer",
187410
+ display: "flex",
187411
+ justifyContent: "flex-end",
187412
+ alignItems: "center"
187413
+ });
187414
+ const useAgentName = (agentId) => {
187415
+ const baseUrl = apiConfig.baseUrl;
187416
+ return useQuery({
187417
+ queryKey: ["agent-name", agentId, baseUrl],
187418
+ queryFn: async () => {
187419
+ if (!baseUrl) {
187420
+ console.warn("Base URL for Local Operator API is not configured.");
187421
+ return "Agent ID";
187422
+ }
187423
+ const response = await AgentsApi.getAgent(baseUrl, agentId);
187424
+ return response.result?.name || "Unknown Agent";
187425
+ },
187426
+ enabled: !!agentId && !!baseUrl,
187427
+ staleTime: 1e3 * 60 * 5
187428
+ });
187429
+ };
187430
+ const ScheduleListItem = ({
187431
+ schedule,
187432
+ onEdit,
187433
+ onDelete
187434
+ }) => {
187435
+ const { data: agentName, isLoading: isLoadingAgentName } = useAgentName(
187436
+ schedule.agent_id
187437
+ );
187438
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(ListItemPaper, { elevation: 0, children: [
187439
+ /* @__PURE__ */ jsxRuntimeExports.jsx(PromptSection, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
187440
+ Typography,
187441
+ {
187442
+ variant: "body2",
187443
+ color: "text.secondary",
187444
+ fontSize: "0.875rem",
187445
+ sx: { mt: 0.5 },
187446
+ children: schedule.prompt
187447
+ }
187448
+ ) }),
187449
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(ActionsSection, { children: [
187450
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
187451
+ IconButton,
187452
+ {
187453
+ onClick: () => onEdit(schedule),
187454
+ size: "small",
187455
+ title: "Edit Schedule",
187456
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(SquarePen, { size: 20 })
187457
+ }
187458
+ ),
187459
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
187460
+ IconButton,
187461
+ {
187462
+ onClick: () => onDelete(schedule.id),
187463
+ size: "small",
187464
+ title: "Delete Schedule",
187465
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(Trash2, { size: 20 })
187466
+ }
187467
+ )
187468
+ ] }),
187469
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(InfoSection, { children: [
187470
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Box, { sx: { display: "flex", alignItems: "center", minHeight: 28 }, children: isLoadingAgentName ? /* @__PURE__ */ jsxRuntimeExports.jsx(
187471
+ Skeleton,
187472
+ {
187473
+ width: 80,
187474
+ height: 28,
187475
+ variant: "rectangular",
187476
+ sx: { borderRadius: 1 }
187477
+ }
187478
+ ) : /* @__PURE__ */ jsxRuntimeExports.jsx(
187479
+ Chip,
187480
+ {
187481
+ icon: /* @__PURE__ */ jsxRuntimeExports.jsx(User, { size: 12, style: { marginLeft: 2 } }),
187482
+ label: agentName || schedule.agent_id.substring(0, 8),
187483
+ variant: "outlined",
187484
+ color: "primary",
187485
+ size: "small",
187486
+ sx: {
187487
+ fontSize: "0.75rem",
187488
+ height: 24,
187489
+ maxWidth: 180,
187490
+ overflow: "hidden",
187491
+ textOverflow: "ellipsis",
187492
+ pl: 1,
187493
+ pr: 0.5
187494
+ },
187495
+ "aria-label": "Agent Name"
187496
+ }
187497
+ ) }),
187498
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { variant: "caption", color: "text.secondary", children: createScheduleDisplayString(schedule) }),
187499
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(
187500
+ Typography,
187501
+ {
187502
+ variant: "caption",
187503
+ display: "block",
187504
+ color: schedule.is_active ? "success.main" : "error.main",
187505
+ children: [
187506
+ "Status: ",
187507
+ schedule.is_active ? "Active" : "Inactive"
187508
+ ]
187509
+ }
187510
+ )
187511
+ ] }),
187512
+ /* @__PURE__ */ jsxRuntimeExports.jsx(FooterSection, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
187513
+ Typography,
187514
+ {
187515
+ variant: "caption",
187516
+ color: "text.secondary",
187517
+ fontSize: "0.75rem",
187518
+ sx: { opacity: 0.6 },
187519
+ children: [
187520
+ "ID: ",
187521
+ schedule.id
187522
+ ]
187523
+ }
187524
+ ) })
187525
+ ] });
187526
+ };
187527
+ const SchedulesContainer = styled$1(Paper)(({ theme: theme2 }) => ({
187528
+ padding: theme2.spacing(3),
187529
+ marginTop: theme2.spacing(2),
187530
+ backgroundImage: "none",
187531
+ border: `1px solid ${theme2.palette.divider}`,
187532
+ borderRadius: theme2.shape.borderRadius * 2
187533
+ }));
187534
+ const NoSchedulesMessage = styled$1(Typography)(({ theme: theme2 }) => ({
187535
+ textAlign: "center",
187536
+ color: theme2.palette.text.secondary,
187537
+ padding: theme2.spacing(4, 0)
187538
+ }));
187539
+ const SchedulesPage = () => {
187540
+ const theme2 = useTheme$1();
187541
+ const [isFormOpen, setIsFormOpen] = reactExports.useState(false);
187542
+ const [editingSchedule, setEditingSchedule] = reactExports.useState(null);
187543
+ const {
187544
+ data: schedulesResponse,
187545
+ isLoading,
187546
+ error,
187547
+ refetch: refetchSchedules
187548
+ } = useListAllSchedules();
187549
+ const createScheduleMutation = useCreateScheduleForAgent();
187550
+ const editScheduleMutation = useEditSchedule();
187551
+ const removeScheduleMutation = useRemoveSchedule();
187552
+ const handleOpenForm = (schedule) => {
187553
+ setEditingSchedule(schedule || null);
187554
+ setIsFormOpen(true);
187555
+ };
187556
+ const handleCloseForm = () => {
187557
+ setIsFormOpen(false);
187558
+ setEditingSchedule(null);
187559
+ };
187560
+ const handleSubmitForm = async (data2, agentId) => {
187561
+ try {
187562
+ if (editingSchedule) {
187563
+ await editScheduleMutation.mutateAsync({
187564
+ scheduleId: editingSchedule.id,
187565
+ scheduleData: data2
187566
+ });
187567
+ y$2.success("Schedule updated successfully!");
187568
+ } else {
187569
+ await createScheduleMutation.mutateAsync({
187570
+ agentId,
187571
+ // Use the agentId selected in the form
187572
+ scheduleData: data2
187573
+ });
187574
+ y$2.success("Schedule created successfully!");
187575
+ }
187576
+ refetchSchedules();
187577
+ } catch (err) {
187578
+ console.error("Failed to save schedule:", err);
187579
+ y$2.error(
187580
+ `Failed to save schedule: ${err instanceof Error ? err.message : "Unknown error"}`
187581
+ );
187582
+ }
187583
+ };
187584
+ const handleDeleteSchedule = async (scheduleId) => {
187585
+ const scheduleToDelete = schedulesResponse?.result?.schedules.find(
187586
+ (s2) => s2.id === scheduleId
187587
+ );
187588
+ try {
187589
+ await removeScheduleMutation.mutateAsync({
187590
+ scheduleId,
187591
+ agentId: scheduleToDelete?.agent_id
187592
+ });
187593
+ y$2.success("Schedule removed successfully!");
187594
+ refetchSchedules();
187595
+ } catch (err) {
187596
+ console.error("Failed to delete schedule:", err);
187597
+ y$2.error(
187598
+ `Failed to remove schedule: ${err instanceof Error ? err.message : "Unknown error"}`
187599
+ );
187600
+ }
187601
+ };
187602
+ const handleToggleActive = async (schedule) => {
187603
+ try {
187604
+ await editScheduleMutation.mutateAsync({
187605
+ scheduleId: schedule.id,
187606
+ scheduleData: { is_active: !schedule.is_active }
187607
+ });
187608
+ y$2.success(
187609
+ `Schedule ${schedule.is_active ? "deactivated" : "activated"} successfully!`
187610
+ );
187611
+ refetchSchedules();
187612
+ } catch (err) {
187613
+ console.error("Failed to toggle schedule active state:", err);
187614
+ y$2.error(
187615
+ `Failed to toggle schedule: ${err instanceof Error ? err.message : "Unknown error"}`
187616
+ );
187617
+ }
187618
+ };
187619
+ const schedules = schedulesResponse?.result?.schedules || [];
187620
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(
187621
+ Box,
187622
+ {
187623
+ sx: { p: 3, height: "100%", display: "flex", flexDirection: "column" },
187624
+ children: [
187625
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
187626
+ PageHeader,
187627
+ {
187628
+ title: "Schedules",
187629
+ icon: CalendarDays,
187630
+ subtitle: "View and manage scheduled tasks for your AI team.",
187631
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(
187632
+ Button,
187633
+ {
187634
+ variant: "outlined",
187635
+ color: "primary",
187636
+ startIcon: /* @__PURE__ */ jsxRuntimeExports.jsx(CirclePlus, { size: 18 }),
187637
+ onClick: () => handleOpenForm(),
187638
+ sx: {
187639
+ textTransform: "none",
187640
+ fontSize: "0.8125rem",
187641
+ padding: theme2.spacing(0.75, 1.75),
187642
+ borderRadius: theme2.shape.borderRadius * 0.75,
187643
+ fontWeight: 500,
187644
+ "&:hover": {
187645
+ backgroundColor: theme2.palette.primary.dark
187646
+ }
187647
+ },
187648
+ children: "Create Schedule"
187649
+ }
187650
+ )
187651
+ }
187652
+ ),
187653
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(SchedulesContainer, { elevation: 0, sx: { flexGrow: 1, overflowY: "auto" }, children: [
187654
+ isLoading && /* @__PURE__ */ jsxRuntimeExports.jsx(CircularProgress, { sx: { display: "block", margin: "auto", mt: 4 } }),
187655
+ error && /* @__PURE__ */ jsxRuntimeExports.jsxs(Alert, { severity: "error", sx: { mt: 2 }, children: [
187656
+ "Error fetching schedules: ",
187657
+ error.message
187658
+ ] }),
187659
+ !isLoading && !error && schedules.length === 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(NoSchedulesMessage, { children: "No schedules found. Simply ask an agent to do a daily/weekly task for you, or to handle something in the future and that task will appear here." }),
187660
+ !isLoading && !error && schedules.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(Box, { sx: { mt: 2 }, children: schedules.map((schedule) => /* @__PURE__ */ jsxRuntimeExports.jsx(
187661
+ ScheduleListItem,
187662
+ {
187663
+ schedule,
187664
+ onEdit: () => handleOpenForm(schedule),
187665
+ onDelete: handleDeleteSchedule,
187666
+ onToggleActive: handleToggleActive
187667
+ },
187668
+ schedule.id
187669
+ )) })
187670
+ ] }),
187671
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
187672
+ ScheduleFormDialog,
187673
+ {
187674
+ open: isFormOpen,
187675
+ onClose: handleCloseForm,
187676
+ onSubmit: handleSubmitForm,
187677
+ initialData: editingSchedule
187678
+ }
187679
+ )
187680
+ ]
187681
+ }
187682
+ );
187683
+ };
186119
187684
  const SectionTitle = ({
186120
187685
  title,
186121
187686
  icon,
@@ -211913,7 +213478,7 @@ const SettingsPage = () => {
211913
213478
  ] })
211914
213479
  ] });
211915
213480
  };
211916
- const localOperatorIcon = "" + new URL("icon-ngVHF_bZ.png", import.meta.url).href;
213481
+ const localOperatorIcon = "" + new URL("icon-tV2fhamD.png", import.meta.url).href;
211917
213482
  const pulse = keyframes`
211918
213483
  0% {
211919
213484
  box-shadow: 0 0 0 0 rgba(var(--primary-rgb), 0.4);
@@ -212332,6 +213897,12 @@ const SidebarNavigation = () => {
212332
213897
  path: "/agent-hub",
212333
213898
  isActive: currentView === "agent-hub"
212334
213899
  },
213900
+ {
213901
+ icon: CalendarDays,
213902
+ label: "Schedules",
213903
+ path: "/schedules",
213904
+ isActive: currentView === "schedules"
213905
+ },
212335
213906
  {
212336
213907
  icon: Settings$1,
212337
213908
  label: "Settings",
@@ -212445,6 +214016,7 @@ const App = () => {
212445
214016
  /* @__PURE__ */ jsxRuntimeExports.jsx(Route, { path: "/settings", element: /* @__PURE__ */ jsxRuntimeExports.jsx(SettingsPage, {}) }),
212446
214017
  /* @__PURE__ */ jsxRuntimeExports.jsx(Route, { path: "/agent-hub", element: /* @__PURE__ */ jsxRuntimeExports.jsx(AgentHubPage, {}) }),
212447
214018
  /* @__PURE__ */ jsxRuntimeExports.jsx(Route, { path: "/agent-hub/:agentId", element: /* @__PURE__ */ jsxRuntimeExports.jsx(AgentDetailsPage, {}) }),
214019
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Route, { path: "/schedules", element: /* @__PURE__ */ jsxRuntimeExports.jsx(SchedulesPage, {}) }),
212448
214020
  /* @__PURE__ */ jsxRuntimeExports.jsx(Route, { path: "*", element: /* @__PURE__ */ jsxRuntimeExports.jsx(Navigate, { to: "/chat", replace: true }) })
212449
214021
  ] }) })
212450
214022
  ] });