deepseek-coordination 0.10.1 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/client.js CHANGED
@@ -6985,7 +6985,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
6985
6985
  ]);
6986
6986
  //#endregion
6987
6987
  //#region node_modules/@mui/material/List/List.mjs
6988
- const useUtilityClasses$49 = (ownerState) => {
6988
+ const useUtilityClasses$48 = (ownerState) => {
6989
6989
  const { classes, disablePadding, dense, subheader } = ownerState;
6990
6990
  return composeClasses({ root: [
6991
6991
  "root",
@@ -7038,7 +7038,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
7038
7038
  dense,
7039
7039
  disablePadding
7040
7040
  };
7041
- const classes = useUtilityClasses$49(ownerState);
7041
+ const classes = useUtilityClasses$48(ownerState);
7042
7042
  return /*#__PURE__*/ (0, import_jsx_runtime.jsx)(ListContext.Provider, {
7043
7043
  value: context,
7044
7044
  children: /*#__PURE__*/ (0, import_jsx_runtime.jsxs)(ListRoot, {
@@ -15355,7 +15355,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
15355
15355
  generateUtilityClasses("MuiBackdrop", ["root", "invisible"]);
15356
15356
  //#endregion
15357
15357
  //#region node_modules/@mui/material/Backdrop/Backdrop.mjs
15358
- const useUtilityClasses$48 = (ownerState) => {
15358
+ const useUtilityClasses$47 = (ownerState) => {
15359
15359
  const { classes, invisible } = ownerState;
15360
15360
  return composeClasses({ root: ["root", invisible && "invisible"] }, getBackdropUtilityClass, classes);
15361
15361
  };
@@ -15393,7 +15393,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
15393
15393
  component,
15394
15394
  invisible
15395
15395
  };
15396
- const classes = useUtilityClasses$48(ownerState);
15396
+ const classes = useUtilityClasses$47(ownerState);
15397
15397
  const externalForwardedProps = {
15398
15398
  component,
15399
15399
  slots,
@@ -15575,7 +15575,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
15575
15575
  ]);
15576
15576
  //#endregion
15577
15577
  //#region node_modules/@mui/material/Modal/Modal.mjs
15578
- const useUtilityClasses$47 = (ownerState) => {
15578
+ const useUtilityClasses$46 = (ownerState) => {
15579
15579
  const { open, exited, classes } = ownerState;
15580
15580
  return composeClasses({
15581
15581
  root: ["root", !open && exited && "hidden"],
@@ -15643,7 +15643,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
15643
15643
  ...propsWithDefaults,
15644
15644
  exited
15645
15645
  };
15646
- const classes = useUtilityClasses$47(ownerState);
15646
+ const classes = useUtilityClasses$46(ownerState);
15647
15647
  const childProps = {};
15648
15648
  if (children.props.tabIndex === void 0) childProps.tabIndex = "-1";
15649
15649
  if (hasTransition) {
@@ -15738,7 +15738,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
15738
15738
  ]);
15739
15739
  //#endregion
15740
15740
  //#region node_modules/@mui/material/Paper/Paper.mjs
15741
- const useUtilityClasses$46 = (ownerState) => {
15741
+ const useUtilityClasses$45 = (ownerState) => {
15742
15742
  const { square, elevation, variant, classes } = ownerState;
15743
15743
  return composeClasses({ root: [
15744
15744
  "root",
@@ -15795,7 +15795,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
15795
15795
  square,
15796
15796
  variant
15797
15797
  };
15798
- const classes = useUtilityClasses$46(ownerState);
15798
+ const classes = useUtilityClasses$45(ownerState);
15799
15799
  return /*#__PURE__*/ (0, import_jsx_runtime.jsx)(PaperRoot, {
15800
15800
  as: component,
15801
15801
  ownerState,
@@ -15891,7 +15891,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
15891
15891
  function resolveAnchorEl$1(anchorEl) {
15892
15892
  return typeof anchorEl === "function" ? anchorEl() : anchorEl;
15893
15893
  }
15894
- const useUtilityClasses$45 = (ownerState) => {
15894
+ const useUtilityClasses$44 = (ownerState) => {
15895
15895
  const { classes } = ownerState;
15896
15896
  return composeClasses({
15897
15897
  root: ["root"],
@@ -15937,7 +15937,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
15937
15937
  transformOrigin,
15938
15938
  transitionDuration: transitionDurationProp
15939
15939
  };
15940
- const classes = useUtilityClasses$45(ownerState);
15940
+ const classes = useUtilityClasses$44(ownerState);
15941
15941
  const getAnchorOffset = react$1.useCallback(() => {
15942
15942
  if (anchorReference === "anchorPosition") return anchorPosition;
15943
15943
  const resolvedAnchorEl = resolveAnchorEl$1(anchorEl);
@@ -16148,7 +16148,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
16148
16148
  vertical: "top",
16149
16149
  horizontal: "left"
16150
16150
  };
16151
- const useUtilityClasses$44 = (ownerState) => {
16151
+ const useUtilityClasses$43 = (ownerState) => {
16152
16152
  const { classes } = ownerState;
16153
16153
  return composeClasses({
16154
16154
  root: ["root"],
@@ -16186,7 +16186,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
16186
16186
  transitionDuration,
16187
16187
  variant
16188
16188
  };
16189
- const classes = useUtilityClasses$44(ownerState);
16189
+ const classes = useUtilityClasses$43(ownerState);
16190
16190
  const shouldManageInitialFocus = autoFocus && open;
16191
16191
  const shouldAutoFocusActiveItem = shouldManageInitialFocus && !disableAutoFocusItem;
16192
16192
  const menuListActionsRef = react$1.useRef(null);
@@ -16337,7 +16337,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
16337
16337
  ]);
16338
16338
  //#endregion
16339
16339
  //#region node_modules/@mui/material/NativeSelect/NativeSelectInput.mjs
16340
- const useUtilityClasses$43 = (ownerState) => {
16340
+ const useUtilityClasses$42 = (ownerState) => {
16341
16341
  const { classes, variant, disabled, multiple, open, error } = ownerState;
16342
16342
  return composeClasses({
16343
16343
  select: [
@@ -16463,7 +16463,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
16463
16463
  variant,
16464
16464
  error
16465
16465
  };
16466
- const classes = useUtilityClasses$43(ownerState);
16466
+ const classes = useUtilityClasses$42(ownerState);
16467
16467
  return /*#__PURE__*/ (0, import_jsx_runtime.jsxs)(react$1.Fragment, { children: [/*#__PURE__*/ (0, import_jsx_runtime.jsx)(NativeSelectSelect, {
16468
16468
  ownerState,
16469
16469
  className: clsx(classes.select, className),
@@ -16632,7 +16632,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
16632
16632
  width: "100%",
16633
16633
  boxSizing: "border-box"
16634
16634
  });
16635
- const useUtilityClasses$42 = (ownerState) => {
16635
+ const useUtilityClasses$41 = (ownerState) => {
16636
16636
  const { classes, variant, disabled, multiple, open, error } = ownerState;
16637
16637
  return composeClasses({
16638
16638
  select: [
@@ -17034,7 +17034,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
17034
17034
  open,
17035
17035
  error
17036
17036
  };
17037
- const classes = useUtilityClasses$42(ownerState);
17037
+ const classes = useUtilityClasses$41(ownerState);
17038
17038
  const menuPaperSlotProps = typeof MenuProps.slotProps?.paper === "function" ? MenuProps.slotProps.paper(ownerState) : MenuProps.slotProps?.paper;
17039
17039
  const handlePaperRef = useForkRef_default(menuPaperSlotProps?.ref, paperRef);
17040
17040
  const menuListSlotProps = typeof MenuProps.slotProps?.list === "function" ? MenuProps.slotProps.list(ownerState) : MenuProps.slotProps?.list;
@@ -17171,7 +17171,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
17171
17171
  ]);
17172
17172
  //#endregion
17173
17173
  //#region node_modules/@mui/material/SvgIcon/SvgIcon.mjs
17174
- const useUtilityClasses$41 = (ownerState) => {
17174
+ const useUtilityClasses$40 = (ownerState) => {
17175
17175
  const { color, fontSize, classes } = ownerState;
17176
17176
  return composeClasses({ root: [
17177
17177
  "root",
@@ -17255,7 +17255,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
17255
17255
  };
17256
17256
  const more = {};
17257
17257
  if (!inheritViewBox) more.viewBox = viewBox;
17258
- const classes = useUtilityClasses$41(ownerState);
17258
+ const classes = useUtilityClasses$40(ownerState);
17259
17259
  return /*#__PURE__*/ (0, import_jsx_runtime.jsxs)(SvgIconRoot, {
17260
17260
  as: component,
17261
17261
  className: clsx(classes.root, className),
@@ -17471,7 +17471,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
17471
17471
  const { ownerState } = props;
17472
17472
  return [styles.input, ownerState.type === "search" && styles.inputTypeSearch];
17473
17473
  };
17474
- const useUtilityClasses$40 = (ownerState) => {
17474
+ const useUtilityClasses$39 = (ownerState) => {
17475
17475
  const { classes, color, disabled, error, endAdornment, focused, formControl, fullWidth, hiddenLabel, multiline, readOnly, size, startAdornment, type } = ownerState;
17476
17476
  return composeClasses({
17477
17477
  root: [
@@ -17747,7 +17747,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
17747
17747
  startAdornment,
17748
17748
  type
17749
17749
  };
17750
- const classes = useUtilityClasses$40(ownerState);
17750
+ const classes = useUtilityClasses$39(ownerState);
17751
17751
  const Root = slots.root || InputBaseRoot;
17752
17752
  const rootProps = slotProps.root || {};
17753
17753
  const Input = slots.input || InputBaseInput;
@@ -17878,7 +17878,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
17878
17878
  };
17879
17879
  //#endregion
17880
17880
  //#region node_modules/@mui/material/Input/Input.mjs
17881
- const useUtilityClasses$39 = (ownerState) => {
17881
+ const useUtilityClasses$38 = (ownerState) => {
17882
17882
  const { classes, disableUnderline } = ownerState;
17883
17883
  const composedClasses = composeClasses({
17884
17884
  root: ["root", !disableUnderline && "underline"],
@@ -17963,7 +17963,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
17963
17963
  name: "MuiInput"
17964
17964
  });
17965
17965
  const { disableUnderline = false, fullWidth = false, inputComponent = "input", multiline = false, notched, slotProps, slots = {}, type = "text", ...other } = props;
17966
- const classes = useUtilityClasses$39(props);
17966
+ const classes = useUtilityClasses$38(props);
17967
17967
  const inputComponentsProps = { root: { ownerState: { disableUnderline } } };
17968
17968
  const componentsProps = slotProps ? deepmerge(slotProps, inputComponentsProps) : inputComponentsProps;
17969
17969
  const RootSlot = slots.root ?? InputRoot;
@@ -18013,7 +18013,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
18013
18013
  var useId_default = useId;
18014
18014
  //#endregion
18015
18015
  //#region node_modules/@mui/material/FilledInput/FilledInput.mjs
18016
- const useUtilityClasses$38 = (ownerState) => {
18016
+ const useUtilityClasses$37 = (ownerState) => {
18017
18017
  const { classes, disableUnderline, startAdornment, endAdornment, size, hiddenLabel, multiline } = ownerState;
18018
18018
  const composedClasses = composeClasses({
18019
18019
  root: [
@@ -18221,7 +18221,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
18221
18221
  multiline,
18222
18222
  type
18223
18223
  };
18224
- const classes = useUtilityClasses$38(props);
18224
+ const classes = useUtilityClasses$37(props);
18225
18225
  const filledInputComponentsProps = {
18226
18226
  root: { ownerState },
18227
18227
  input: { ownerState }
@@ -18363,7 +18363,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
18363
18363
  };
18364
18364
  //#endregion
18365
18365
  //#region node_modules/@mui/material/OutlinedInput/OutlinedInput.mjs
18366
- const useUtilityClasses$37 = (ownerState) => {
18366
+ const useUtilityClasses$36 = (ownerState) => {
18367
18367
  const { classes } = ownerState;
18368
18368
  const composedClasses = composeClasses({
18369
18369
  root: ["root"],
@@ -18476,7 +18476,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
18476
18476
  name: "MuiOutlinedInput"
18477
18477
  });
18478
18478
  const { fullWidth = false, inputComponent = "input", label, multiline = false, notched, slots = {}, slotProps = {}, type = "text", ...other } = props;
18479
- const classes = useUtilityClasses$37(props);
18479
+ const classes = useUtilityClasses$36(props);
18480
18480
  const [fcs, muiFormControl] = useFormControlState({
18481
18481
  props,
18482
18482
  states: [
@@ -18544,7 +18544,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
18544
18544
  OutlinedInput.muiName = "Input";
18545
18545
  //#endregion
18546
18546
  //#region node_modules/@mui/material/Select/Select.mjs
18547
- const useUtilityClasses$36 = (ownerState) => {
18547
+ const useUtilityClasses$35 = (ownerState) => {
18548
18548
  const { classes } = ownerState;
18549
18549
  const composedClasses = composeClasses({ root: ["root"] }, getSelectUtilityClasses, classes);
18550
18550
  return {
@@ -18577,7 +18577,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
18577
18577
  variant,
18578
18578
  classes: classesProp
18579
18579
  };
18580
- const classes = useUtilityClasses$36(ownerState);
18580
+ const classes = useUtilityClasses$35(ownerState);
18581
18581
  const { root, ...restOfClasses } = classes;
18582
18582
  const InputComponent = input || {
18583
18583
  standard: /*#__PURE__*/ (0, import_jsx_runtime.jsx)(StyledInput, { ownerState }),
@@ -18883,7 +18883,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
18883
18883
  //#endregion
18884
18884
  //#region node_modules/@mui/material/ButtonBase/TouchRipple.mjs
18885
18885
  const DURATION = 550;
18886
- const EMPTY_OBJ$1 = {};
18886
+ const EMPTY_OBJ = {};
18887
18887
  const EMPTY_ARRAY = [];
18888
18888
  const NOOP = () => {};
18889
18889
  /**
@@ -19087,7 +19087,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
19087
19087
  name: "MuiTouchRipple"
19088
19088
  });
19089
19089
  const reducedMotion = useReducedMotion(useTheme().motion.reducedMotion, false);
19090
- const { center: centerProp = false, classes = EMPTY_OBJ$1, className, ...other } = props;
19090
+ const { center: centerProp = false, classes = EMPTY_OBJ, className, ...other } = props;
19091
19091
  const [rippleState, setRippleState] = react$1.useState({
19092
19092
  items: EMPTY_ARRAY,
19093
19093
  order: EMPTY_ARRAY
@@ -19142,7 +19142,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
19142
19142
  });
19143
19143
  rippleCallback.current = cb;
19144
19144
  });
19145
- const start = useEventCallback_default((event = EMPTY_OBJ$1, options = EMPTY_OBJ$1, cb = NOOP) => {
19145
+ const start = useEventCallback_default((event = EMPTY_OBJ, options = EMPTY_OBJ, cb = NOOP) => {
19146
19146
  const { pulsate = false, center = centerProp || options.pulsate, fakeElement = false } = options;
19147
19147
  if (event?.type === "mousedown" && ignoringMouseDown.current) {
19148
19148
  ignoringMouseDown.current = false;
@@ -19181,7 +19181,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
19181
19181
  });
19182
19182
  });
19183
19183
  const pulsate = useEventCallback_default(() => {
19184
- start(EMPTY_OBJ$1, { pulsate: true });
19184
+ start(EMPTY_OBJ, { pulsate: true });
19185
19185
  });
19186
19186
  const stop = useEventCallback_default((event, cb) => {
19187
19187
  startTimer.clear();
@@ -19255,7 +19255,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
19255
19255
  ]);
19256
19256
  //#endregion
19257
19257
  //#region node_modules/@mui/material/ButtonBase/ButtonBase.mjs
19258
- const useUtilityClasses$35 = (ownerState) => {
19258
+ const useUtilityClasses$34 = (ownerState) => {
19259
19259
  const { disabled, focusVisible, focusVisibleClassName, suppressFocusVisible, classes } = ownerState;
19260
19260
  const composedClasses = composeClasses({ root: [
19261
19261
  "root",
@@ -19406,7 +19406,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
19406
19406
  focusVisible,
19407
19407
  internalDisabledThemeFocusVisible
19408
19408
  };
19409
- const classes = useUtilityClasses$35(ownerState);
19409
+ const classes = useUtilityClasses$34(ownerState);
19410
19410
  return /*#__PURE__*/ (0, import_jsx_runtime.jsxs)(ButtonBaseRoot, {
19411
19411
  as: ComponentProp,
19412
19412
  className: clsx(classes.root, className),
@@ -19490,7 +19490,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
19490
19490
  ]);
19491
19491
  //#endregion
19492
19492
  //#region node_modules/@mui/material/Typography/Typography.mjs
19493
- const useUtilityClasses$34 = (ownerState) => {
19493
+ const useUtilityClasses$33 = (ownerState) => {
19494
19494
  const { align, gutterBottom, noWrap, variant, classes } = ownerState;
19495
19495
  return composeClasses({ root: [
19496
19496
  "root",
@@ -19585,7 +19585,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
19585
19585
  variantMapping
19586
19586
  };
19587
19587
  const Component = component || variantMapping[variant] || defaultVariantMapping[variant] || "span";
19588
- const classes = useUtilityClasses$34(ownerState);
19588
+ const classes = useUtilityClasses$33(ownerState);
19589
19589
  return /*#__PURE__*/ (0, import_jsx_runtime.jsx)(TypographyRoot, {
19590
19590
  as: Component,
19591
19591
  ref,
@@ -19633,7 +19633,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
19633
19633
  !ownerState.disableGutters && styles.gutters
19634
19634
  ];
19635
19635
  };
19636
- const useUtilityClasses$33 = (ownerState) => {
19636
+ const useUtilityClasses$32 = (ownerState) => {
19637
19637
  const { disabled, dense, divider, disableGutters, selected, classes } = ownerState;
19638
19638
  const composedClasses = composeClasses({ root: [
19639
19639
  "root",
@@ -19755,7 +19755,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
19755
19755
  divider,
19756
19756
  disableGutters
19757
19757
  };
19758
- const classes = useUtilityClasses$33(props);
19758
+ const classes = useUtilityClasses$32(props);
19759
19759
  const { root, ...forwardedClasses } = classes;
19760
19760
  const rovingItemProps = useRovingTabIndexItem({
19761
19761
  id: rovingItemId,
@@ -21007,7 +21007,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
21007
21007
  function isHTMLElement(element) {
21008
21008
  return element.nodeType !== void 0;
21009
21009
  }
21010
- const useUtilityClasses$32 = (ownerState) => {
21010
+ const useUtilityClasses$31 = (ownerState) => {
21011
21011
  const { classes } = ownerState;
21012
21012
  return composeClasses({ root: ["root"] }, getPopperUtilityClass, classes);
21013
21013
  };
@@ -21090,7 +21090,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
21090
21090
  ]);
21091
21091
  const childProps = { placement };
21092
21092
  if (TransitionProps !== null) childProps.TransitionProps = TransitionProps;
21093
- const classes = useUtilityClasses$32(props);
21093
+ const classes = useUtilityClasses$31(props);
21094
21094
  const Root = slots.root ?? "div";
21095
21095
  const rootProps = useSlotProps({
21096
21096
  elementType: Root,
@@ -21227,7 +21227,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
21227
21227
  function round(value) {
21228
21228
  return Math.round(value * 1e5) / 1e5;
21229
21229
  }
21230
- const useUtilityClasses$31 = (ownerState) => {
21230
+ const useUtilityClasses$30 = (ownerState) => {
21231
21231
  const { classes, disableInteractive, arrow, touch, placement, open } = ownerState;
21232
21232
  return composeClasses({
21233
21233
  popper: [
@@ -21614,7 +21614,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
21614
21614
  modifiers: tooltipModifiers
21615
21615
  };
21616
21616
  }, [arrowRef, resolvedPopperProps?.popperOptions]);
21617
- const classes = useUtilityClasses$31(ownerState);
21617
+ const classes = useUtilityClasses$30(ownerState);
21618
21618
  const externalForwardedProps = {
21619
21619
  slots,
21620
21620
  slotProps: {
@@ -21750,7 +21750,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
21750
21750
  name: "MuiDialog",
21751
21751
  slot: "Backdrop"
21752
21752
  })({ zIndex: -1 });
21753
- const useUtilityClasses$30 = (ownerState) => {
21753
+ const useUtilityClasses$29 = (ownerState) => {
21754
21754
  const { classes, scroll, maxWidth, fullWidth, fullScreen } = ownerState;
21755
21755
  return composeClasses({
21756
21756
  root: ["root"],
@@ -21911,7 +21911,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
21911
21911
  maxWidth,
21912
21912
  scroll
21913
21913
  };
21914
- const classes = useUtilityClasses$30(ownerState);
21914
+ const classes = useUtilityClasses$29(ownerState);
21915
21915
  const backdropClick = react$1.useRef();
21916
21916
  const handleMouseDown = (event) => {
21917
21917
  backdropClick.current = event.target === event.currentTarget;
@@ -22015,7 +22015,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
22015
22015
  const dialogTitleClasses = generateUtilityClasses("MuiDialogTitle", ["root"]);
22016
22016
  //#endregion
22017
22017
  //#region node_modules/@mui/material/DialogTitle/DialogTitle.mjs
22018
- const useUtilityClasses$29 = (ownerState) => {
22018
+ const useUtilityClasses$28 = (ownerState) => {
22019
22019
  const { classes } = ownerState;
22020
22020
  return composeClasses({ root: ["root"] }, getDialogTitleUtilityClass, classes);
22021
22021
  };
@@ -22033,7 +22033,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
22033
22033
  });
22034
22034
  const { className, id: idProp, ...other } = props;
22035
22035
  const ownerState = props;
22036
- const classes = useUtilityClasses$29(ownerState);
22036
+ const classes = useUtilityClasses$28(ownerState);
22037
22037
  const { titleId = idProp } = react$1.useContext(DialogContext);
22038
22038
  return /*#__PURE__*/ (0, import_jsx_runtime.jsx)(DialogTitleRoot, {
22039
22039
  component: "h2",
@@ -22053,7 +22053,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
22053
22053
  generateUtilityClasses("MuiDialogContent", ["root", "dividers"]);
22054
22054
  //#endregion
22055
22055
  //#region node_modules/@mui/material/DialogContent/DialogContent.mjs
22056
- const useUtilityClasses$28 = (ownerState) => {
22056
+ const useUtilityClasses$27 = (ownerState) => {
22057
22057
  const { classes, dividers } = ownerState;
22058
22058
  return composeClasses({ root: ["root", dividers && "dividers"] }, getDialogContentUtilityClass, classes);
22059
22059
  };
@@ -22095,7 +22095,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
22095
22095
  ...props,
22096
22096
  dividers
22097
22097
  };
22098
- const classes = useUtilityClasses$28(ownerState);
22098
+ const classes = useUtilityClasses$27(ownerState);
22099
22099
  return /*#__PURE__*/ (0, import_jsx_runtime.jsx)(DialogContentRoot, {
22100
22100
  className: clsx(classes.root, className),
22101
22101
  ownerState,
@@ -22111,7 +22111,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
22111
22111
  generateUtilityClasses("MuiDialogContentText", ["root"]);
22112
22112
  //#endregion
22113
22113
  //#region node_modules/@mui/material/DialogContentText/DialogContentText.mjs
22114
- const useUtilityClasses$27 = (ownerState) => {
22114
+ const useUtilityClasses$26 = (ownerState) => {
22115
22115
  const { classes } = ownerState;
22116
22116
  const composedClasses = composeClasses({ root: ["root"] }, getDialogContentTextUtilityClass, classes);
22117
22117
  return {
@@ -22130,7 +22130,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
22130
22130
  name: "MuiDialogContentText"
22131
22131
  });
22132
22132
  const { children, className, ...ownerState } = props;
22133
- const classes = useUtilityClasses$27(ownerState);
22133
+ const classes = useUtilityClasses$26(ownerState);
22134
22134
  return /*#__PURE__*/ (0, import_jsx_runtime.jsx)(DialogContentTextRoot, {
22135
22135
  component: "p",
22136
22136
  variant: "body1",
@@ -22150,7 +22150,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
22150
22150
  generateUtilityClasses("MuiDialogActions", ["root", "spacing"]);
22151
22151
  //#endregion
22152
22152
  //#region node_modules/@mui/material/DialogActions/DialogActions.mjs
22153
- const useUtilityClasses$26 = (ownerState) => {
22153
+ const useUtilityClasses$25 = (ownerState) => {
22154
22154
  const { classes, disableSpacing } = ownerState;
22155
22155
  return composeClasses({ root: ["root", !disableSpacing && "spacing"] }, getDialogActionsUtilityClass, classes);
22156
22156
  };
@@ -22182,7 +22182,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
22182
22182
  ...props,
22183
22183
  disableSpacing
22184
22184
  };
22185
- const classes = useUtilityClasses$26(ownerState);
22185
+ const classes = useUtilityClasses$25(ownerState);
22186
22186
  return /*#__PURE__*/ (0, import_jsx_runtime.jsx)(DialogActionsRoot, {
22187
22187
  className: clsx(classes.root, className),
22188
22188
  ownerState,
@@ -22240,7 +22240,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
22240
22240
  const dashAnimation = typeof circularDashKeyframe !== "string" ? css`
22241
22241
  animation: ${circularDashKeyframe} 1.4s ease-in-out infinite;
22242
22242
  ` : null;
22243
- const useUtilityClasses$25 = (ownerState) => {
22243
+ const useUtilityClasses$24 = (ownerState) => {
22244
22244
  const { classes, variant, color, disableShrink } = ownerState;
22245
22245
  return composeClasses({
22246
22246
  root: [
@@ -22358,7 +22358,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
22358
22358
  variant,
22359
22359
  enableTrackSlot
22360
22360
  };
22361
- const classes = useUtilityClasses$25(ownerState);
22361
+ const classes = useUtilityClasses$24(ownerState);
22362
22362
  const circleStyle = {};
22363
22363
  const rootStyle = {};
22364
22364
  const rootProps = {};
@@ -22460,7 +22460,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
22460
22460
  const ButtonGroupButtonContext = /*#__PURE__*/ react$1.createContext(void 0);
22461
22461
  //#endregion
22462
22462
  //#region node_modules/@mui/material/Button/Button.mjs
22463
- const useUtilityClasses$24 = (ownerState) => {
22463
+ const useUtilityClasses$23 = (ownerState) => {
22464
22464
  const { color, disableElevation, fullWidth, size, variant, loading, loadingPosition, classes } = ownerState;
22465
22465
  const composedClasses = composeClasses({
22466
22466
  root: [
@@ -22887,7 +22887,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
22887
22887
  type,
22888
22888
  variant
22889
22889
  };
22890
- const classes = useUtilityClasses$24(ownerState);
22890
+ const classes = useUtilityClasses$23(ownerState);
22891
22891
  const startIcon = (startIconProp || loading && loadingPosition === "start") && /*#__PURE__*/ (0, import_jsx_runtime.jsx)(ButtonStartIcon, {
22892
22892
  className: classes.startIcon,
22893
22893
  ownerState,
@@ -23040,40 +23040,6 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
23040
23040
  "sizeSmall"
23041
23041
  ]);
23042
23042
  //#endregion
23043
- //#region node_modules/@mui/material/Slider/sliderClasses.mjs
23044
- function getSliderUtilityClass(slot) {
23045
- return generateUtilityClass("MuiSlider", slot);
23046
- }
23047
- const sliderClasses = generateUtilityClasses("MuiSlider", [
23048
- "root",
23049
- "active",
23050
- "colorPrimary",
23051
- "colorSecondary",
23052
- "colorError",
23053
- "colorInfo",
23054
- "colorSuccess",
23055
- "colorWarning",
23056
- "disabled",
23057
- "dragging",
23058
- "focusVisible",
23059
- "mark",
23060
- "markActive",
23061
- "marked",
23062
- "markLabel",
23063
- "markLabelActive",
23064
- "rail",
23065
- "sizeSmall",
23066
- "thumb",
23067
- "track",
23068
- "trackInverted",
23069
- "trackFalse",
23070
- "valueLabel",
23071
- "valueLabelOpen",
23072
- "valueLabelCircle",
23073
- "valueLabelLabel",
23074
- "vertical"
23075
- ]);
23076
- //#endregion
23077
23043
  //#region node_modules/@mui/material/styles/ThemeProviderNoVars.mjs
23078
23044
  function ThemeProviderNoVars({ theme: themeInput, ...props }) {
23079
23045
  const scopedTheme = "$$material" in themeInput ? themeInput[identifier_default] : void 0;
@@ -24348,14 +24314,6 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
24348
24314
  label: "工具结果字节上限",
24349
24315
  hint: "工具返回给模型的字节上限;0 表示不限制。"
24350
24316
  },
24351
- "scene.thinking": {
24352
- label: "思考模式",
24353
- hint: "是否把推理过程摊开;对话和办公默认关闭。"
24354
- },
24355
- "scene.reasoningEffort": {
24356
- label: "推理强度",
24357
- hint: "原样传给宿主模型的强度名,例如 high;本插件不改写。"
24358
- },
24359
24317
  "scene.requirePlan": {
24360
24318
  label: "必须出计划",
24361
24319
  hint: "这一情景是否必须先有可评分的计划。"
@@ -24417,10 +24375,6 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
24417
24375
  compact: "压缩",
24418
24376
  permission: "权限"
24419
24377
  },
24420
- thinkingOptions: {
24421
- enabled: "开启",
24422
- disabled: "关闭"
24423
- },
24424
24378
  defaultValue: "默认",
24425
24379
  scene: "情景",
24426
24380
  allScenes: "所有情景",
@@ -24526,6 +24480,46 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
24526
24480
  turn: "目标 Turn 序号;省略时使用当前活动 Turn。"
24527
24481
  }
24528
24482
  }
24483
+ },
24484
+ fileTools: {
24485
+ coordination_parse: {
24486
+ description: "解析工作区文件(或给定文本):返回引用、诊断、字符集、截断标记与节点卡片;绝不返回文件全文。",
24487
+ parameters: {
24488
+ path: "工作区相对路径;与 text 二选一。",
24489
+ text: "要直接解析的文本;与 path 二选一,不写缓存。",
24490
+ parserId: "强制解析器(javascript / css / html / markdown / latex);省略时按扩展名。"
24491
+ }
24492
+ },
24493
+ coordination_describe: {
24494
+ description: "按 handle 查询节点卡片与指定的元数据字段;正文永不返回。",
24495
+ parameters: {
24496
+ handle: "公共节点 handle(由 coordination_parse 的 cards 返回)。",
24497
+ fields: "额外字段:summary / description / usage / purpose;brief、reference 与六个平面字段总是返回。"
24498
+ }
24499
+ },
24500
+ coordination_chain: {
24501
+ description: "查询节点的有界关系链:依赖 / 被依赖 / 满足 / 基线 / 前置 / 未满足 / 路径 / 环;最多 8 层、50 条链接,不返回 AST 或图结构。",
24502
+ parameters: {
24503
+ handle: "链根节点的公共 handle。",
24504
+ action: "dependencies / dependents / satisfies / satisfied_by / baseline / prerequisites / unmet / path / cycle。",
24505
+ depth: "遍历深度 1–8;省略时按动作取默认值。",
24506
+ limit: "链接上限 1–50;默认 50。",
24507
+ target: "path 动作的目标 handle。",
24508
+ relation: "只沿单一关系遍历(depends_on 等价于 depends)。",
24509
+ kind: "只返回该种类的节点(忽略大小写与首尾空白),例如 lemma;省略时不过滤。"
24510
+ }
24511
+ },
24512
+ coordination_read: {
24513
+ description: "读取工作区文件的字节或行范围;这是唯一返回文件内容的工具,单次上限 256 KiB / 2000 行 / 16k tokens。",
24514
+ parameters: {
24515
+ path: "工作区相对路径。",
24516
+ mode: "bytes(字节偏移,end 不含)或 lines(1 基行号,end 含)。",
24517
+ start: "起始字节偏移或起始行号。",
24518
+ end: "结束字节偏移(不含)或结束行号(含)。",
24519
+ maxBytes: "本次最多返回的字节数(≤262144)。",
24520
+ maxLines: "本次最多返回的行数(≤2000)。"
24521
+ }
24522
+ }
24529
24523
  }
24530
24524
  };
24531
24525
  const EN_CONTROL_LABELS = {
@@ -25142,14 +25136,6 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
25142
25136
  label: "Tool result bytes",
25143
25137
  hint: "Byte cap on a tool result returned to the model; 0 means no cap."
25144
25138
  },
25145
- "scene.thinking": {
25146
- label: "Thinking mode",
25147
- hint: "Whether reasoning is shown; off by default for dialogue and office."
25148
- },
25149
- "scene.reasoningEffort": {
25150
- label: "Reasoning effort",
25151
- hint: "Effort name passed to the host model unchanged, e.g. high."
25152
- },
25153
25139
  "scene.requirePlan": {
25154
25140
  label: "Plan required",
25155
25141
  hint: "Whether this scene must produce a scoreable plan first."
@@ -25211,10 +25197,6 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
25211
25197
  compact: "Compact",
25212
25198
  permission: "Permission"
25213
25199
  },
25214
- thinkingOptions: {
25215
- enabled: "On",
25216
- disabled: "Off"
25217
- },
25218
25200
  defaultValue: "Default",
25219
25201
  scene: "Scene",
25220
25202
  allScenes: "All scenes",
@@ -25320,6 +25302,46 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
25320
25302
  turn: "Target turn ordinal; the active turn when omitted."
25321
25303
  }
25322
25304
  }
25305
+ },
25306
+ fileTools: {
25307
+ coordination_parse: {
25308
+ description: "Parse a workspace file (or supplied text): returns references, diagnostics, charset, truncation and node cards; never the file body.",
25309
+ parameters: {
25310
+ path: "Workspace-relative path; exactly one of path or text.",
25311
+ text: "Text to parse directly; exactly one of path or text, not cached.",
25312
+ parserId: "Force a parser (javascript / css / html / markdown / latex); the extension decides when omitted."
25313
+ }
25314
+ },
25315
+ coordination_describe: {
25316
+ description: "Read one node card and the requested metadata fields by handle; the body is never returned.",
25317
+ parameters: {
25318
+ handle: "Public node handle (from coordination_parse cards).",
25319
+ fields: "Extra fields: summary / description / usage / purpose; brief, reference and the six flat fields are always returned."
25320
+ }
25321
+ },
25322
+ coordination_chain: {
25323
+ description: "Query a bounded relation chain: dependencies / dependents / satisfies / baseline / prerequisites / unmet / path / cycle; at most depth 8 and 50 links, never an AST or graph structure.",
25324
+ parameters: {
25325
+ handle: "Public handle of the chain root.",
25326
+ action: "dependencies / dependents / satisfies / satisfied_by / baseline / prerequisites / unmet / path / cycle.",
25327
+ depth: "Traversal depth 1–8; the action default applies when omitted.",
25328
+ limit: "Link cap 1–50; default 50.",
25329
+ target: "Target handle for the path action.",
25330
+ relation: "Traverse a single relation (depends_on is an alias of depends).",
25331
+ kind: "Only return nodes of this kind (case-insensitive, trimmed), e.g. lemma; omit it to disable the filter."
25332
+ }
25333
+ },
25334
+ coordination_read: {
25335
+ description: "Read a byte or line range of a workspace file; the only tool that returns file content, capped at 256 KiB / 2,000 lines / 16k tokens per call.",
25336
+ parameters: {
25337
+ path: "Workspace-relative path.",
25338
+ mode: "bytes (byte offsets, end exclusive) or lines (1-based lines, end inclusive).",
25339
+ start: "Start byte offset or 1-based start line.",
25340
+ end: "End byte offset (exclusive) or end line (inclusive).",
25341
+ maxBytes: "Maximum bytes to return this call (≤262144).",
25342
+ maxLines: "Maximum lines to return this call (≤2000)."
25343
+ }
25344
+ }
25323
25345
  }
25324
25346
  }
25325
25347
  };
@@ -25935,7 +25957,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
25935
25957
  * state before the notice is shown; `hostRef` is assigned only from a
25936
25958
  * host-confirmed answer (load, flush, or replay), never from the optimistic
25937
25959
  * click;
25938
- * - picking a full-access preset first opens an inline confirmation: one click
25960
+ * - picking a full-access preset first opens a confirmation dialog: one click
25939
25961
  * never grants full access;
25940
25962
  * - a `PROFESSION_LOCKED` rejection opens a plugin-owned compact dialog
25941
25963
  * (current vs requested profession plus rebuild/abandon/cancel) instead of a
@@ -25963,6 +25985,8 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
25963
25985
  const MuiButton$2 = Button;
25964
25986
  /** Stable id linking the dialog's accessible name to its title. */
25965
25987
  const ESCALATION_TITLE_ID = "deepseek-coordination-escalation-title";
25988
+ /** Accessible name of the full-access confirmation dialog. */
25989
+ const FULL_ACCESS_TITLE_ID = "deepseek-coordination-full-access-title";
25966
25990
  /** Select sentinel for "no preset applied, follow the DSH default tier". */
25967
25991
  const FOLLOW_DSH = "";
25968
25992
  /** Narrow an unknown host value to a boolean; anything else is "unknown". */
@@ -26185,28 +26209,6 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
26185
26209
  opacity: .7,
26186
26210
  marginTop: 4
26187
26211
  };
26188
- const CONFIRM_STYLE = {
26189
- display: "inline-flex",
26190
- flexDirection: "column",
26191
- gap: 2,
26192
- maxWidth: 260,
26193
- padding: "4px 8px",
26194
- border: "1px solid #a15c00",
26195
- borderRadius: 4,
26196
- fontSize: 11,
26197
- lineHeight: 1.35
26198
- };
26199
- const CONFIRM_TITLE_STYLE = {
26200
- fontWeight: 600,
26201
- color: "#a15c00"
26202
- };
26203
- const CONFIRM_BODY_STYLE = { opacity: .85 };
26204
- const ACTIONS_STYLE = {
26205
- display: "flex",
26206
- gap: 6,
26207
- marginTop: 2,
26208
- flexWrap: "wrap"
26209
- };
26210
26212
  const DIALOG_TITLE_SX = {
26211
26213
  fontSize: 14,
26212
26214
  fontWeight: 600,
@@ -26222,16 +26224,6 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
26222
26224
  fontSize: 12,
26223
26225
  color: "#a15c00"
26224
26226
  };
26225
- const ACTION_BUTTON_STYLE = {
26226
- font: "inherit",
26227
- fontSize: 11,
26228
- padding: "1px 8px",
26229
- cursor: "pointer",
26230
- border: "1px solid var(--dsw-alias-separator, #c9c9c9)",
26231
- borderRadius: 4,
26232
- background: "transparent",
26233
- color: "inherit"
26234
- };
26235
26227
  const MENU_ITEM_COMPACT_SX = {
26236
26228
  fontSize: 12,
26237
26229
  minHeight: 28
@@ -26608,22 +26600,39 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
26608
26600
  warn: flashNotice
26609
26601
  };
26610
26602
  }
26611
- function actionButton(label, onClick, disabled) {
26612
- return react$1.createElement("button", {
26613
- type: "button",
26614
- onClick,
26615
- disabled,
26616
- style: ACTION_BUTTON_STYLE
26617
- }, label);
26618
- }
26619
- /** Inline confirmation before a full-access preset is written (v24 §16 policy). */
26620
- function FullAccessConfirm(props) {
26603
+ /**
26604
+ * Confirmation dialog before a full-access preset is written (v24 §16 policy).
26605
+ *
26606
+ * A modal, not an inline banner: the previous inline form sat inside the
26607
+ * composer's control row, where it overlapped the tooltip layer and stole
26608
+ * pointer events from the trigger. A dialog renders in a portal above every
26609
+ * tooltip, traps focus, and answers `Esc`/backdrop through `onClose`.
26610
+ */
26611
+ function FullAccessConfirmDialog(props) {
26621
26612
  const { copy } = props;
26622
- return react$1.createElement("span", {
26623
- style: CONFIRM_STYLE,
26624
- role: "group",
26625
- "aria-label": copy.composer.permissionConfirmTitle
26626
- }, react$1.createElement("span", { style: CONFIRM_TITLE_STYLE }, copy.composer.permissionConfirmTitle), react$1.createElement("span", { style: CONFIRM_BODY_STYLE }, copy.composer.permissionConfirmBody), react$1.createElement("span", { style: ACTIONS_STYLE }, actionButton(copy.composer.permissionConfirmAccept, props.onConfirm, props.busy), actionButton(copy.composer.permissionConfirmCancel, props.onCancel, props.busy)));
26613
+ const dismiss = () => {
26614
+ if (!props.busy) props.onCancel();
26615
+ };
26616
+ return react$1.createElement(MuiDialog$1, {
26617
+ open: true,
26618
+ onClose: dismiss,
26619
+ maxWidth: "xs",
26620
+ "aria-labelledby": FULL_ACCESS_TITLE_ID,
26621
+ sx: { zIndex: (theme) => theme.zIndex.tooltip + 1 }
26622
+ }, react$1.createElement(MuiDialogTitle$1, {
26623
+ id: FULL_ACCESS_TITLE_ID,
26624
+ sx: DIALOG_TITLE_SX
26625
+ }, copy.composer.permissionConfirmTitle), react$1.createElement(MuiDialogContent$1, { sx: DIALOG_CONTENT_SX }, react$1.createElement(MuiDialogContentText, { sx: DIALOG_TEXT_SX }, copy.composer.permissionConfirmBody)), react$1.createElement(MuiDialogActions$1, null, react$1.createElement(MuiButton$2, {
26626
+ onClick: dismiss,
26627
+ disabled: props.busy,
26628
+ size: "small"
26629
+ }, copy.composer.permissionConfirmCancel), react$1.createElement(MuiButton$2, {
26630
+ onClick: props.onConfirm,
26631
+ disabled: props.busy,
26632
+ size: "small",
26633
+ variant: "contained",
26634
+ color: "warning"
26635
+ }, copy.composer.permissionConfirmAccept)));
26627
26636
  }
26628
26637
  /**
26629
26638
  * The profession-lock escalation form (v24 §16).
@@ -26867,7 +26876,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
26867
26876
  setValue({ preset: next }, true);
26868
26877
  }
26869
26878
  }));
26870
- if (pendingFullAccess !== null) children.push(react$1.createElement(FullAccessConfirm, {
26879
+ if (pendingFullAccess !== null) children.push(react$1.createElement(FullAccessConfirmDialog, {
26871
26880
  key: "permission-confirm",
26872
26881
  copy,
26873
26882
  busy: false,
@@ -26989,7 +26998,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
26989
26998
  //#endregion
26990
26999
  //#region node_modules/@mui/material/Collapse/Collapse.mjs
26991
27000
  const EMPTY_OBJECT = {};
26992
- const useUtilityClasses$23 = (ownerState) => {
27001
+ const useUtilityClasses$22 = (ownerState) => {
26993
27002
  const { orientation, classes } = ownerState;
26994
27003
  return composeClasses({
26995
27004
  root: ["root", orientation],
@@ -27086,7 +27095,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
27086
27095
  orientation,
27087
27096
  collapsedSize: collapsedSizeProp
27088
27097
  };
27089
- const classes = useUtilityClasses$23(ownerState);
27098
+ const classes = useUtilityClasses$22(ownerState);
27090
27099
  const theme = useTheme();
27091
27100
  const wrapperRef = react$1.useRef(null);
27092
27101
  const autoTransitionDuration = react$1.useRef(null);
@@ -27248,7 +27257,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
27248
27257
  ]);
27249
27258
  //#endregion
27250
27259
  //#region node_modules/@mui/material/Accordion/Accordion.mjs
27251
- const useUtilityClasses$22 = (ownerState) => {
27260
+ const useUtilityClasses$21 = (ownerState) => {
27252
27261
  const { classes, square, expanded, disabled, disableGutters } = ownerState;
27253
27262
  return composeClasses({
27254
27263
  root: [
@@ -27367,7 +27376,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
27367
27376
  disableGutters,
27368
27377
  expanded
27369
27378
  };
27370
- const classes = useUtilityClasses$22(ownerState);
27379
+ const classes = useUtilityClasses$21(ownerState);
27371
27380
  const externalForwardedProps = {
27372
27381
  slots,
27373
27382
  slotProps
@@ -27432,7 +27441,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
27432
27441
  generateUtilityClasses("MuiAccordionDetails", ["root"]);
27433
27442
  //#endregion
27434
27443
  //#region node_modules/@mui/material/AccordionDetails/AccordionDetails.mjs
27435
- const useUtilityClasses$21 = (ownerState) => {
27444
+ const useUtilityClasses$20 = (ownerState) => {
27436
27445
  const { classes } = ownerState;
27437
27446
  return composeClasses({ root: ["root"] }, getAccordionDetailsUtilityClass, classes);
27438
27447
  };
@@ -27447,7 +27456,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
27447
27456
  });
27448
27457
  const { className, ...other } = props;
27449
27458
  const ownerState = props;
27450
- const classes = useUtilityClasses$21(ownerState);
27459
+ const classes = useUtilityClasses$20(ownerState);
27451
27460
  return /*#__PURE__*/ (0, import_jsx_runtime.jsx)(AccordionDetailsRoot, {
27452
27461
  className: clsx(classes.root, className),
27453
27462
  ref,
@@ -27457,7 +27466,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
27457
27466
  });
27458
27467
  //#endregion
27459
27468
  //#region node_modules/@mui/material/AccordionSummary/AccordionSummary.mjs
27460
- const useUtilityClasses$20 = (ownerState) => {
27469
+ const useUtilityClasses$19 = (ownerState) => {
27461
27470
  const { classes, expanded, disabled, disableGutters } = ownerState;
27462
27471
  return composeClasses({
27463
27472
  root: [
@@ -27531,7 +27540,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
27531
27540
  disabled,
27532
27541
  disableGutters
27533
27542
  };
27534
- const classes = useUtilityClasses$20(ownerState);
27543
+ const classes = useUtilityClasses$19(ownerState);
27535
27544
  const externalForwardedProps = {
27536
27545
  slots,
27537
27546
  slotProps
@@ -27600,7 +27609,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
27600
27609
  ]);
27601
27610
  //#endregion
27602
27611
  //#region node_modules/@mui/material/internal/SwitchBase.mjs
27603
- const useUtilityClasses$19 = (ownerState) => {
27612
+ const useUtilityClasses$18 = (ownerState) => {
27604
27613
  const { classes, checked, disabled, edge } = ownerState;
27605
27614
  return composeClasses({
27606
27615
  root: [
@@ -27694,7 +27703,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
27694
27703
  disableFocusRipple,
27695
27704
  edge
27696
27705
  };
27697
- const classes = useUtilityClasses$19(ownerState);
27706
+ const classes = useUtilityClasses$18(ownerState);
27698
27707
  const externalForwardedProps = {
27699
27708
  slots,
27700
27709
  slotProps
@@ -27780,7 +27789,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
27780
27789
  var IndeterminateCheckBox_default = createSvgIcon(/*#__PURE__*/ (0, import_jsx_runtime.jsx)("path", { d: "M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z" }), "IndeterminateCheckBox");
27781
27790
  //#endregion
27782
27791
  //#region node_modules/@mui/material/Checkbox/Checkbox.mjs
27783
- const useUtilityClasses$18 = (ownerState) => {
27792
+ const useUtilityClasses$17 = (ownerState) => {
27784
27793
  const { classes, indeterminate, color, size } = ownerState;
27785
27794
  const composedClasses = composeClasses({ root: [
27786
27795
  "root",
@@ -27859,7 +27868,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
27859
27868
  indeterminate,
27860
27869
  size
27861
27870
  };
27862
- const classes = useUtilityClasses$18(ownerState);
27871
+ const classes = useUtilityClasses$17(ownerState);
27863
27872
  const externalInputProps = typeof slotProps.input === "function" ? slotProps.input(ownerState) : slotProps.input;
27864
27873
  const inputRef = react$1.useRef(null);
27865
27874
  const handleInputRef = useForkRef_default(inputRef, externalInputProps?.ref);
@@ -27934,7 +27943,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
27934
27943
  ]);
27935
27944
  //#endregion
27936
27945
  //#region node_modules/@mui/material/Chip/Chip.mjs
27937
- const useUtilityClasses$17 = (ownerState) => {
27946
+ const useUtilityClasses$16 = (ownerState) => {
27938
27947
  const { classes, disabled, size, color, onDelete, clickable, variant } = ownerState;
27939
27948
  return composeClasses({
27940
27949
  root: [
@@ -28230,7 +28239,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
28230
28239
  clickable,
28231
28240
  variant
28232
28241
  };
28233
- const classes = useUtilityClasses$17(ownerState);
28242
+ const classes = useUtilityClasses$16(ownerState);
28234
28243
  const moreProps = component === ButtonBase ? {
28235
28244
  component: ComponentProp || "div",
28236
28245
  internalNativeButton: false,
@@ -28319,7 +28328,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
28319
28328
  ]);
28320
28329
  //#endregion
28321
28330
  //#region node_modules/@mui/material/FormControl/FormControl.mjs
28322
- const useUtilityClasses$16 = (ownerState) => {
28331
+ const useUtilityClasses$15 = (ownerState) => {
28323
28332
  const { classes, margin, fullWidth } = ownerState;
28324
28333
  return composeClasses({ root: [
28325
28334
  "root",
@@ -28411,7 +28420,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
28411
28420
  size,
28412
28421
  variant
28413
28422
  };
28414
- const classes = useUtilityClasses$16(ownerState);
28423
+ const classes = useUtilityClasses$15(ownerState);
28415
28424
  const [adornedStart, setAdornedStart] = react$1.useState(() => {
28416
28425
  let initialAdornedStart = false;
28417
28426
  if (children) react$1.Children.forEach(children, (child) => {
@@ -28494,7 +28503,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
28494
28503
  });
28495
28504
  //#endregion
28496
28505
  //#region node_modules/@mui/material/FormControlLabel/FormControlLabel.mjs
28497
- const useUtilityClasses$15 = (ownerState) => {
28506
+ const useUtilityClasses$14 = (ownerState) => {
28498
28507
  const { classes, disabled, labelPlacement, error, required } = ownerState;
28499
28508
  return composeClasses({
28500
28509
  root: [
@@ -28590,7 +28599,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
28590
28599
  required,
28591
28600
  error: fcs.error
28592
28601
  };
28593
- const classes = useUtilityClasses$15(ownerState);
28602
+ const classes = useUtilityClasses$14(ownerState);
28594
28603
  const [TypographySlot, typographySlotProps] = useSlot("typography", {
28595
28604
  elementType: Typography,
28596
28605
  externalForwardedProps: {
@@ -28621,7 +28630,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
28621
28630
  });
28622
28631
  //#endregion
28623
28632
  //#region node_modules/@mui/material/FormLabel/FormLabel.mjs
28624
- const useUtilityClasses$14 = (ownerState) => {
28633
+ const useUtilityClasses$13 = (ownerState) => {
28625
28634
  const { classes, color, focused, disabled, error, filled, required } = ownerState;
28626
28635
  return composeClasses({
28627
28636
  root: [
@@ -28695,7 +28704,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
28695
28704
  focused: fcs.focused,
28696
28705
  required: fcs.required
28697
28706
  };
28698
- const classes = useUtilityClasses$14(ownerState);
28707
+ const classes = useUtilityClasses$13(ownerState);
28699
28708
  return /*#__PURE__*/ (0, import_jsx_runtime.jsxs)(FormLabelRoot, {
28700
28709
  as: component,
28701
28710
  ownerState,
@@ -28732,7 +28741,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
28732
28741
  generateUtilityClasses("MuiListItemSecondaryAction", ["root", "disableGutters"]);
28733
28742
  //#endregion
28734
28743
  //#region node_modules/@mui/material/ListItemSecondaryAction/ListItemSecondaryAction.mjs
28735
- const useUtilityClasses$13 = (ownerState) => {
28744
+ const useUtilityClasses$12 = (ownerState) => {
28736
28745
  const { disableGutters, classes } = ownerState;
28737
28746
  return composeClasses({ root: ["root", disableGutters && "disableGutters"] }, getListItemSecondaryActionClassesUtilityClass, classes);
28738
28747
  };
@@ -28767,7 +28776,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
28767
28776
  ...props,
28768
28777
  disableGutters: context.disableGutters
28769
28778
  };
28770
- const classes = useUtilityClasses$13(ownerState);
28779
+ const classes = useUtilityClasses$12(ownerState);
28771
28780
  return /*#__PURE__*/ (0, import_jsx_runtime.jsx)(ListItemSecondaryActionRoot, {
28772
28781
  as: component,
28773
28782
  className: clsx(classes.root, className),
@@ -28790,7 +28799,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
28790
28799
  !ownerState.disablePadding && styles.padding
28791
28800
  ];
28792
28801
  };
28793
- const useUtilityClasses$12 = (ownerState) => {
28802
+ const useUtilityClasses$11 = (ownerState) => {
28794
28803
  const { alignItems, classes, dense, disableGutters, disablePadding, divider } = ownerState;
28795
28804
  return composeClasses({
28796
28805
  root: [
@@ -28901,7 +28910,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
28901
28910
  divider,
28902
28911
  secondaryAction
28903
28912
  };
28904
- const classes = useUtilityClasses$12(ownerState);
28913
+ const classes = useUtilityClasses$11(ownerState);
28905
28914
  const externalForwardedProps = {
28906
28915
  slots,
28907
28916
  slotProps
@@ -29012,7 +29021,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
29012
29021
  }
29013
29022
  //#endregion
29014
29023
  //#region node_modules/@mui/material/Radio/Radio.mjs
29015
- const useUtilityClasses$11 = (ownerState) => {
29024
+ const useUtilityClasses$10 = (ownerState) => {
29016
29025
  const { classes, color, size } = ownerState;
29017
29026
  const slots = { root: [
29018
29027
  "root",
@@ -29099,7 +29108,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
29099
29108
  color,
29100
29109
  size
29101
29110
  };
29102
- const classes = useUtilityClasses$11(ownerState);
29111
+ const classes = useUtilityClasses$10(ownerState);
29103
29112
  const radioGroup = useRadioGroup();
29104
29113
  let checked = checkedProp;
29105
29114
  const onChange = createChainedFunction_default(onChangeProp, radioGroup && radioGroup.onChange);
@@ -29156,7 +29165,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
29156
29165
  ]);
29157
29166
  //#endregion
29158
29167
  //#region node_modules/@mui/material/FormGroup/FormGroup.mjs
29159
- const useUtilityClasses$10 = (ownerState) => {
29168
+ const useUtilityClasses$9 = (ownerState) => {
29160
29169
  const { classes, row, error } = ownerState;
29161
29170
  return composeClasses({ root: [
29162
29171
  "root",
@@ -29200,7 +29209,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
29200
29209
  row,
29201
29210
  error: fcs.error
29202
29211
  };
29203
- const classes = useUtilityClasses$10(ownerState);
29212
+ const classes = useUtilityClasses$9(ownerState);
29204
29213
  return /*#__PURE__*/ (0, import_jsx_runtime.jsx)(FormGroupRoot, {
29205
29214
  className: clsx(classes.root, className),
29206
29215
  ownerState,
@@ -29220,7 +29229,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
29220
29229
  ]);
29221
29230
  //#endregion
29222
29231
  //#region node_modules/@mui/material/RadioGroup/RadioGroup.mjs
29223
- const useUtilityClasses$9 = (props) => {
29232
+ const useUtilityClasses$8 = (props) => {
29224
29233
  const { classes, row, error } = props;
29225
29234
  return composeClasses({ root: [
29226
29235
  "root",
@@ -29235,7 +29244,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
29235
29244
  });
29236
29245
  const { actions, children, className, defaultValue, name: nameProp, onChange, value: valueProp, ...other } = props;
29237
29246
  const rootRef = react$1.useRef(null);
29238
- const classes = useUtilityClasses$9(props);
29247
+ const classes = useUtilityClasses$8(props);
29239
29248
  const [value, setValueState] = useControlled_default({
29240
29249
  controlled: valueProp,
29241
29250
  default: defaultValue,
@@ -29273,1217 +29282,17 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
29273
29282
  });
29274
29283
  });
29275
29284
  //#endregion
29276
- //#region node_modules/@mui/utils/visuallyHidden/visuallyHidden.mjs
29277
- const visuallyHidden = {
29278
- border: 0,
29279
- clipPath: "inset(50%)",
29280
- height: "1px",
29281
- margin: "-1px",
29282
- overflow: "hidden",
29283
- padding: 0,
29284
- position: "absolute",
29285
- whiteSpace: "nowrap",
29286
- width: "1px"
29287
- };
29285
+ //#region node_modules/@mui/material/Table/TableContext.mjs
29286
+ /**
29287
+ * @ignore - internal component.
29288
+ */
29289
+ const TableContext = /*#__PURE__*/ react$1.createContext();
29288
29290
  //#endregion
29289
- //#region node_modules/@mui/material/utils/areArraysEqual.mjs
29290
- function areArraysEqual(array1, array2, itemComparer = (a, b) => a === b) {
29291
- return array1.length === array2.length && array1.every((value, index) => itemComparer(value, array2[index]));
29291
+ //#region node_modules/@mui/material/Table/tableClasses.mjs
29292
+ function getTableUtilityClass(slot) {
29293
+ return generateUtilityClass("MuiTable", slot);
29292
29294
  }
29293
- //#endregion
29294
- //#region node_modules/@mui/material/Slider/useSlider.mjs
29295
- const INTENTIONAL_DRAG_COUNT_THRESHOLD = 2;
29296
- const EMPTY_MARKS = [];
29297
- const EMPTY_OBJ = {};
29298
- function getNewValue(currentValue, step, direction, min, max) {
29299
- return direction === 1 ? Math.min(currentValue + step, max) : Math.max(currentValue - step, min);
29300
- }
29301
- function asc(a, b) {
29302
- return a - b;
29303
- }
29304
- function findClosest(values, currentValue, preferredIndex = -1) {
29305
- const { index: closestIndex } = values.reduce((acc, value, index) => {
29306
- const distance = Math.abs(currentValue - value);
29307
- if (acc == null || distance <= acc.distance) return {
29308
- distance,
29309
- index
29310
- };
29311
- return acc;
29312
- }, null) ?? EMPTY_OBJ;
29313
- if (closestIndex == null) return closestIndex;
29314
- if (preferredIndex >= 0 && values[preferredIndex] === values[closestIndex]) return preferredIndex;
29315
- return closestIndex;
29316
- }
29317
- function trackFinger(event, touchIdRef) {
29318
- if (touchIdRef.current != null && event.changedTouches) {
29319
- const touchEvent = event;
29320
- for (let i = 0; i < touchEvent.changedTouches.length; i += 1) {
29321
- const touch = touchEvent.changedTouches[i];
29322
- if (touch.identifier === touchIdRef.current) return {
29323
- x: touch.clientX,
29324
- y: touch.clientY
29325
- };
29326
- }
29327
- return false;
29328
- }
29329
- return {
29330
- x: event.clientX,
29331
- y: event.clientY
29332
- };
29333
- }
29334
- function valueToPercent(value, min, max) {
29335
- return (value - min) * 100 / (max - min);
29336
- }
29337
- function percentToValue(percent, min, max) {
29338
- return (max - min) * percent + min;
29339
- }
29340
- function getDecimalPrecision(num) {
29341
- if (Math.abs(num) < 1) {
29342
- const parts = num.toExponential().split("e-");
29343
- const matissaDecimalPart = parts[0].split(".")[1];
29344
- return (matissaDecimalPart ? matissaDecimalPart.length : 0) + parseInt(parts[1], 10);
29345
- }
29346
- const decimalPart = num.toString().split(".")[1];
29347
- return decimalPart ? decimalPart.length : 0;
29348
- }
29349
- function roundValueToStep(value, step, min) {
29350
- const nearest = Math.round((value - min) / step) * step + min;
29351
- return Number(nearest.toFixed(getDecimalPrecision(step)));
29352
- }
29353
- function setValueIndex(values, newValue, index) {
29354
- const output = values.slice();
29355
- output[index] = newValue;
29356
- return output.sort(asc);
29357
- }
29358
- function focusThumb(sliderRef, activeIndex, setActive, focusVisible) {
29359
- const activeElement = getActiveElement_default(ownerDocument(sliderRef.current));
29360
- if (!contains_default(sliderRef.current, activeElement) || Number(activeElement?.getAttribute("data-index")) !== activeIndex) {
29361
- const input = sliderRef.current?.querySelector(`[type="range"][data-index="${activeIndex}"]`);
29362
- if (input != null) {
29363
- if (focusVisible == null) input.focus({ preventScroll: true });
29364
- else input.focus({
29365
- preventScroll: true,
29366
- focusVisible
29367
- });
29368
- }
29369
- }
29370
- if (setActive) setActive(activeIndex);
29371
- }
29372
- function areValuesEqual(newValue, oldValue) {
29373
- if (typeof newValue === "number" && typeof oldValue === "number") return newValue === oldValue;
29374
- if (typeof newValue === "object" && typeof oldValue === "object") return areArraysEqual(newValue, oldValue);
29375
- return false;
29376
- }
29377
- const axisProps = {
29378
- horizontal: {
29379
- offset: (percent) => ({ left: `${percent}%` }),
29380
- leap: (percent) => ({ width: `${percent}%` })
29381
- },
29382
- "horizontal-reverse": {
29383
- offset: (percent) => ({ right: `${percent}%` }),
29384
- leap: (percent) => ({ width: `${percent}%` })
29385
- },
29386
- vertical: {
29387
- offset: (percent) => ({ bottom: `${percent}%` }),
29388
- leap: (percent) => ({ height: `${percent}%` })
29389
- }
29390
- };
29391
- const Identity$1 = (x) => x;
29392
- function useSlider(parameters) {
29393
- const { "aria-labelledby": ariaLabelledby, defaultValue, disabled = false, disableSwap = false, isRtl = false, marks: marksProp = false, max = 100, min = 0, name, onChange, onChangeCommitted, orientation = "horizontal", rootRef: ref, scale = Identity$1, step = 1, shiftStep = 10, tabIndex, value: valueProp } = parameters;
29394
- const touchIdRef = react$1.useRef(void 0);
29395
- const focusFrameRef = react$1.useRef(null);
29396
- const [active, setActive] = react$1.useState(-1);
29397
- const [open, setOpen] = react$1.useState(-1);
29398
- const [dragging, setDragging] = react$1.useState(false);
29399
- const moveCountRef = react$1.useRef(0);
29400
- const lastUsedThumbIndexRef = react$1.useRef(-1);
29401
- const pointerDownHandledRef = react$1.useRef(false);
29402
- const activePointerIdRef = react$1.useRef(-1);
29403
- const cancelFocusFrame = useEventCallback(() => {
29404
- if (focusFrameRef.current != null) {
29405
- cancelAnimationFrame(focusFrameRef.current);
29406
- focusFrameRef.current = null;
29407
- }
29408
- });
29409
- const lastChangedValueRef = react$1.useRef(null);
29410
- const [valueDerived, setValueState] = useControlled({
29411
- controlled: valueProp,
29412
- default: defaultValue ?? min,
29413
- name: "Slider"
29414
- });
29415
- const handleChange = useEventCallback((event, value, thumbIndex) => {
29416
- const nativeEvent = "nativeEvent" in event ? event.nativeEvent : event;
29417
- const clonedEvent = new nativeEvent.constructor(nativeEvent.type, nativeEvent);
29418
- Object.defineProperty(clonedEvent, "target", {
29419
- writable: true,
29420
- value: {
29421
- value,
29422
- name
29423
- }
29424
- });
29425
- lastChangedValueRef.current = value;
29426
- onChange?.(clonedEvent, value, thumbIndex);
29427
- });
29428
- const range = Array.isArray(valueDerived);
29429
- const values = react$1.useMemo(() => {
29430
- if (typeof valueDerived === "number") return [clamp(valueDerived, min, max)];
29431
- if (valueDerived == null) return [min];
29432
- const sortedValues = valueDerived.slice().sort(asc);
29433
- for (let i = 0; i < sortedValues.length; i += 1) {
29434
- const value = sortedValues[i];
29435
- sortedValues[i] = value == null ? min : clamp(value, min, max);
29436
- }
29437
- return sortedValues;
29438
- }, [
29439
- valueDerived,
29440
- min,
29441
- max
29442
- ]);
29443
- const marks = react$1.useMemo(() => {
29444
- if (marksProp === true && step != null) {
29445
- const generatedMarks = new Array(Math.floor((max - min) / step) + 1);
29446
- for (let i = 0; i < generatedMarks.length; i += 1) generatedMarks[i] = { value: min + step * i };
29447
- return generatedMarks;
29448
- }
29449
- return Array.isArray(marksProp) ? marksProp : EMPTY_MARKS;
29450
- }, [
29451
- marksProp,
29452
- step,
29453
- min,
29454
- max
29455
- ]);
29456
- const marksValues = react$1.useMemo(() => {
29457
- const markValues = new Array(marks.length);
29458
- for (let i = 0; i < marks.length; i += 1) markValues[i] = marks[i].value;
29459
- return markValues;
29460
- }, [marks]);
29461
- const [focusedThumbIndex, setFocusedThumbIndex] = react$1.useState(-1);
29462
- const sliderRef = react$1.useRef(null);
29463
- const handleRef = useForkRef(ref, sliderRef);
29464
- const createHandleHiddenInputFocus = (otherHandlers) => (event) => {
29465
- const index = Number(event.currentTarget.getAttribute("data-index"));
29466
- if (isFocusVisible(event.target)) setFocusedThumbIndex(index);
29467
- setOpen(index);
29468
- otherHandlers?.onFocus?.(event);
29469
- };
29470
- const createHandleHiddenInputBlur = (otherHandlers) => (event) => {
29471
- if (!isFocusVisible(event.target)) setFocusedThumbIndex(-1);
29472
- setOpen(-1);
29473
- otherHandlers?.onBlur?.(event);
29474
- };
29475
- const changeValue = (event, valueInput) => {
29476
- const index = Number(event.currentTarget.getAttribute("data-index"));
29477
- const value = values[index];
29478
- const marksIndex = marksValues.indexOf(value);
29479
- let newValue = valueInput;
29480
- if (marks && step == null) {
29481
- const maxMarksValue = marksValues[marksValues.length - 1];
29482
- if (newValue >= maxMarksValue) newValue = maxMarksValue;
29483
- else if (newValue <= marksValues[0]) newValue = marksValues[0];
29484
- else newValue = newValue < value ? marksValues[marksIndex - 1] : marksValues[marksIndex + 1];
29485
- }
29486
- newValue = clamp(newValue, min, max);
29487
- if (range) {
29488
- if (disableSwap) newValue = clamp(newValue, values[index - 1] ?? -Infinity, values[index + 1] ?? Infinity);
29489
- const previousValue = newValue;
29490
- newValue = setValueIndex(values, newValue, index);
29491
- let activeIndex = index;
29492
- if (!disableSwap) activeIndex = newValue.indexOf(previousValue);
29493
- focusThumb(sliderRef, activeIndex);
29494
- }
29495
- setValueState(newValue);
29496
- setFocusedThumbIndex(index);
29497
- if (onChange && !areValuesEqual(newValue, valueDerived)) handleChange(event, newValue, index);
29498
- if (onChangeCommitted) onChangeCommitted(event, lastChangedValueRef.current ?? newValue);
29499
- };
29500
- const createHandleHiddenInputKeyDown = (otherHandlers) => (event) => {
29501
- if ([
29502
- "ArrowUp",
29503
- "ArrowDown",
29504
- "ArrowLeft",
29505
- "ArrowRight",
29506
- "PageUp",
29507
- "PageDown",
29508
- "Home",
29509
- "End"
29510
- ].includes(event.key)) {
29511
- event.preventDefault();
29512
- const index = Number(event.currentTarget.getAttribute("data-index"));
29513
- const value = values[index];
29514
- let newValue = null;
29515
- if (step != null) {
29516
- const stepSize = event.shiftKey ? shiftStep : step;
29517
- switch (event.key) {
29518
- case "ArrowUp":
29519
- newValue = getNewValue(value, stepSize, 1, min, max);
29520
- break;
29521
- case "ArrowRight":
29522
- newValue = getNewValue(value, stepSize, isRtl ? -1 : 1, min, max);
29523
- break;
29524
- case "ArrowDown":
29525
- newValue = getNewValue(value, stepSize, -1, min, max);
29526
- break;
29527
- case "ArrowLeft":
29528
- newValue = getNewValue(value, stepSize, isRtl ? 1 : -1, min, max);
29529
- break;
29530
- case "PageUp":
29531
- newValue = getNewValue(value, shiftStep, 1, min, max);
29532
- break;
29533
- case "PageDown":
29534
- newValue = getNewValue(value, shiftStep, -1, min, max);
29535
- break;
29536
- case "Home":
29537
- newValue = min;
29538
- break;
29539
- case "End": newValue = max;
29540
- }
29541
- } else if (marks) {
29542
- const maxMarksValue = marksValues[marksValues.length - 1];
29543
- const currentMarkIndex = marksValues.indexOf(value);
29544
- const decrementKeys = [
29545
- isRtl ? "ArrowRight" : "ArrowLeft",
29546
- "ArrowDown",
29547
- "PageDown",
29548
- "Home"
29549
- ];
29550
- const incrementKeys = [
29551
- isRtl ? "ArrowLeft" : "ArrowRight",
29552
- "ArrowUp",
29553
- "PageUp",
29554
- "End"
29555
- ];
29556
- if (decrementKeys.includes(event.key)) {
29557
- if (currentMarkIndex === 0) newValue = marksValues[0];
29558
- else newValue = marksValues[currentMarkIndex - 1];
29559
- } else if (incrementKeys.includes(event.key)) {
29560
- if (currentMarkIndex === marksValues.length - 1) newValue = maxMarksValue;
29561
- else newValue = marksValues[currentMarkIndex + 1];
29562
- }
29563
- }
29564
- if (newValue != null) changeValue(event, newValue);
29565
- }
29566
- otherHandlers?.onKeyDown?.(event);
29567
- };
29568
- useEnhancedEffect(() => {
29569
- const activeElement = getActiveElement_default(ownerDocument(sliderRef.current));
29570
- if (disabled && contains_default(sliderRef.current, activeElement)) {
29571
- if (activeElement != null && "blur" in activeElement) activeElement.blur();
29572
- }
29573
- }, [disabled]);
29574
- if (disabled && active !== -1) setActive(-1);
29575
- if (disabled && focusedThumbIndex !== -1) setFocusedThumbIndex(-1);
29576
- const createHandleHiddenInputChange = (otherHandlers) => (event) => {
29577
- otherHandlers.onChange?.(event);
29578
- changeValue(event, event.currentTarget.valueAsNumber);
29579
- };
29580
- const previousIndexRef = react$1.useRef(void 0);
29581
- let axis = orientation;
29582
- if (isRtl && orientation === "horizontal") axis += "-reverse";
29583
- const getValueAtFinger = (finger) => {
29584
- const { current: slider } = sliderRef;
29585
- if (!slider) return null;
29586
- const { width, height, bottom, left } = slider.getBoundingClientRect();
29587
- let percent;
29588
- if (axis.startsWith("vertical")) percent = (bottom - finger.y) / height;
29589
- else percent = (finger.x - left) / width;
29590
- if (axis.includes("-reverse")) percent = 1 - percent;
29591
- let newValue;
29592
- newValue = percentToValue(percent, min, max);
29593
- if (step) newValue = roundValueToStep(newValue, step, min);
29594
- else {
29595
- const closestIndex = findClosest(marksValues, newValue);
29596
- newValue = marksValues[closestIndex];
29597
- }
29598
- newValue = clamp(newValue, min, max);
29599
- let activeIndex = 0;
29600
- if (range) {
29601
- const isDragging = previousIndexRef.current !== -1;
29602
- activeIndex = isDragging ? previousIndexRef.current : findClosest(values, newValue, lastUsedThumbIndexRef.current);
29603
- if (disableSwap) newValue = clamp(newValue, values[activeIndex - 1] ?? -Infinity, values[activeIndex + 1] ?? Infinity);
29604
- const previousValue = newValue;
29605
- newValue = setValueIndex(values, newValue, activeIndex);
29606
- if (!(disableSwap && isDragging)) {
29607
- activeIndex = newValue.indexOf(previousValue);
29608
- previousIndexRef.current = activeIndex;
29609
- }
29610
- }
29611
- return {
29612
- newValue,
29613
- activeIndex
29614
- };
29615
- };
29616
- const handleTouchMove = useEventCallback((nativeEvent) => {
29617
- if ("pointerId" in nativeEvent && nativeEvent.pointerId !== activePointerIdRef.current) return;
29618
- const finger = trackFinger(nativeEvent, touchIdRef);
29619
- if (!finger) return;
29620
- moveCountRef.current += 1;
29621
- if (nativeEvent.type === "pointermove" && nativeEvent.buttons === 0) {
29622
- handleTouchEnd(nativeEvent);
29623
- return;
29624
- }
29625
- const newFingerValue = getValueAtFinger(finger);
29626
- if (!newFingerValue) return;
29627
- focusThumb(sliderRef, newFingerValue.activeIndex, setActive, false);
29628
- lastUsedThumbIndexRef.current = newFingerValue.activeIndex;
29629
- setValueState(newFingerValue.newValue);
29630
- if (!dragging && moveCountRef.current > INTENTIONAL_DRAG_COUNT_THRESHOLD) setDragging(true);
29631
- if (onChange && !areValuesEqual(newFingerValue.newValue, valueDerived)) handleChange(nativeEvent, newFingerValue.newValue, newFingerValue.activeIndex);
29632
- });
29633
- const handleTouchEnd = useEventCallback((nativeEvent) => {
29634
- if ("pointerId" in nativeEvent && nativeEvent.pointerId !== activePointerIdRef.current) return;
29635
- const finger = trackFinger(nativeEvent, touchIdRef);
29636
- setDragging(false);
29637
- if (!finger) return;
29638
- const newFingerValue = getValueAtFinger(finger);
29639
- setActive(-1);
29640
- if (nativeEvent.type === "touchend") setOpen(-1);
29641
- if (newFingerValue && onChangeCommitted) onChangeCommitted(nativeEvent, lastChangedValueRef.current ?? newFingerValue.newValue);
29642
- if ("pointerType" in nativeEvent && sliderRef.current?.hasPointerCapture(nativeEvent.pointerId)) sliderRef.current.releasePointerCapture(nativeEvent.pointerId);
29643
- touchIdRef.current = void 0;
29644
- activePointerIdRef.current = -1;
29645
- stopListening();
29646
- });
29647
- const handleTouchStart = useEventCallback((nativeEvent) => {
29648
- if (disabled) return;
29649
- if (pointerDownHandledRef.current) {
29650
- pointerDownHandledRef.current = false;
29651
- const touch = nativeEvent.changedTouches[0];
29652
- if (touch != null) touchIdRef.current = touch.identifier;
29653
- return;
29654
- }
29655
- const touch = nativeEvent.changedTouches[0];
29656
- if (touch != null) touchIdRef.current = touch.identifier;
29657
- const finger = trackFinger(nativeEvent, touchIdRef);
29658
- if (finger !== false) {
29659
- previousIndexRef.current = -1;
29660
- const newFingerValue = getValueAtFinger(finger);
29661
- if (newFingerValue) {
29662
- focusThumb(sliderRef, newFingerValue.activeIndex, setActive, false);
29663
- lastUsedThumbIndexRef.current = newFingerValue.activeIndex;
29664
- setValueState(newFingerValue.newValue);
29665
- if (onChange && !areValuesEqual(newFingerValue.newValue, valueDerived)) handleChange(nativeEvent, newFingerValue.newValue, newFingerValue.activeIndex);
29666
- }
29667
- }
29668
- moveCountRef.current = 0;
29669
- const doc = ownerDocument(sliderRef.current);
29670
- doc.addEventListener("touchmove", handleTouchMove, { passive: true });
29671
- doc.addEventListener("touchend", handleTouchEnd, { passive: true });
29672
- });
29673
- const stopListening = react$1.useCallback(() => {
29674
- const doc = ownerDocument(sliderRef.current);
29675
- doc.removeEventListener("pointermove", handleTouchMove);
29676
- doc.removeEventListener("pointerup", handleTouchEnd);
29677
- doc.removeEventListener("touchmove", handleTouchMove);
29678
- doc.removeEventListener("touchend", handleTouchEnd);
29679
- }, [handleTouchEnd, handleTouchMove]);
29680
- react$1.useEffect(() => {
29681
- const slider = sliderRef.current;
29682
- if (!slider) return;
29683
- slider.addEventListener("touchstart", handleTouchStart, { passive: true });
29684
- return () => {
29685
- slider.removeEventListener("touchstart", handleTouchStart);
29686
- cancelFocusFrame();
29687
- stopListening();
29688
- };
29689
- }, [
29690
- stopListening,
29691
- handleTouchStart,
29692
- cancelFocusFrame
29693
- ]);
29694
- react$1.useEffect(() => {
29695
- if (disabled) {
29696
- stopListening();
29697
- cancelFocusFrame();
29698
- }
29699
- }, [
29700
- disabled,
29701
- stopListening,
29702
- cancelFocusFrame
29703
- ]);
29704
- const createHandlePointerDown = (otherHandlers) => (event) => {
29705
- otherHandlers.onPointerDown?.(event);
29706
- if (event.pointerType === "touch") pointerDownHandledRef.current = true;
29707
- if (disabled || event.defaultPrevented || event.button !== 0) return;
29708
- const finger = trackFinger(event, touchIdRef);
29709
- if (finger !== false) {
29710
- previousIndexRef.current = -1;
29711
- const newFingerValue = getValueAtFinger(finger);
29712
- if (newFingerValue) {
29713
- const thumbInput = sliderRef.current?.querySelector(`input[type="range"][data-index="${newFingerValue.activeIndex}"]`);
29714
- const doc = ownerDocument(sliderRef.current);
29715
- const pressedOnFocusedThumb = thumbInput != null && thumbInput === getActiveElement_default(doc);
29716
- setActive(newFingerValue.activeIndex);
29717
- lastUsedThumbIndexRef.current = newFingerValue.activeIndex;
29718
- if (pressedOnFocusedThumb) event.preventDefault();
29719
- else {
29720
- cancelFocusFrame();
29721
- focusFrameRef.current = requestAnimationFrame(() => {
29722
- focusFrameRef.current = null;
29723
- focusThumb(sliderRef, newFingerValue.activeIndex, void 0, false);
29724
- });
29725
- }
29726
- setValueState(newFingerValue.newValue);
29727
- if (onChange && !areValuesEqual(newFingerValue.newValue, valueDerived)) handleChange(event, newFingerValue.newValue, newFingerValue.activeIndex);
29728
- }
29729
- }
29730
- moveCountRef.current = 0;
29731
- activePointerIdRef.current = event.pointerId;
29732
- const doc = ownerDocument(sliderRef.current);
29733
- try {
29734
- event.currentTarget.setPointerCapture(event.pointerId);
29735
- } catch {}
29736
- doc.addEventListener("pointermove", handleTouchMove, { passive: true });
29737
- doc.addEventListener("pointerup", handleTouchEnd);
29738
- };
29739
- const trackOffset = valueToPercent(range ? values[0] : min, min, max);
29740
- const trackLeap = valueToPercent(values[values.length - 1], min, max) - trackOffset;
29741
- const getRootProps = (externalProps = EMPTY_OBJ) => {
29742
- const externalHandlers = extractEventHandlers(externalProps);
29743
- const ownEventHandlers = { onPointerDown: createHandlePointerDown(externalHandlers) };
29744
- const mergedEventHandlers = {
29745
- ...externalHandlers,
29746
- ...ownEventHandlers
29747
- };
29748
- return {
29749
- ...externalProps,
29750
- ref: handleRef,
29751
- ...mergedEventHandlers
29752
- };
29753
- };
29754
- const createHandleMouseOver = (otherHandlers) => (event) => {
29755
- otherHandlers.onMouseOver?.(event);
29756
- const index = Number(event.currentTarget.getAttribute("data-index"));
29757
- setOpen(index);
29758
- };
29759
- const createHandleMouseLeave = (otherHandlers) => (event) => {
29760
- otherHandlers.onMouseLeave?.(event);
29761
- setOpen(-1);
29762
- };
29763
- const getThumbProps = (externalProps = EMPTY_OBJ) => {
29764
- const externalHandlers = extractEventHandlers(externalProps);
29765
- const ownEventHandlers = {
29766
- onMouseOver: createHandleMouseOver(externalHandlers),
29767
- onMouseLeave: createHandleMouseLeave(externalHandlers)
29768
- };
29769
- return {
29770
- ...externalProps,
29771
- ...externalHandlers,
29772
- ...ownEventHandlers
29773
- };
29774
- };
29775
- const getThumbStyle = (index) => {
29776
- let zIndex;
29777
- if (range) {
29778
- if (active === index) zIndex = 2;
29779
- else if (lastUsedThumbIndexRef.current === index) zIndex = 1;
29780
- } else if (active === index) zIndex = 1;
29781
- return {
29782
- pointerEvents: active !== -1 && active !== index ? "none" : void 0,
29783
- zIndex
29784
- };
29785
- };
29786
- let cssWritingMode;
29787
- if (orientation === "vertical") cssWritingMode = isRtl ? "vertical-rl" : "vertical-lr";
29788
- const getHiddenInputProps = (externalProps = EMPTY_OBJ) => {
29789
- const externalHandlers = extractEventHandlers(externalProps);
29790
- const ownEventHandlers = {
29791
- onChange: createHandleHiddenInputChange(externalHandlers),
29792
- onFocus: createHandleHiddenInputFocus(externalHandlers),
29793
- onBlur: createHandleHiddenInputBlur(externalHandlers),
29794
- onKeyDown: createHandleHiddenInputKeyDown(externalHandlers)
29795
- };
29796
- const mergedEventHandlers = {
29797
- ...externalHandlers,
29798
- ...ownEventHandlers
29799
- };
29800
- return {
29801
- tabIndex,
29802
- "aria-labelledby": ariaLabelledby,
29803
- "aria-orientation": orientation,
29804
- "aria-valuemax": scale(max),
29805
- "aria-valuemin": scale(min),
29806
- name,
29807
- type: "range",
29808
- min: parameters.min,
29809
- max: parameters.max,
29810
- step: parameters.step === null && parameters.marks ? "any" : parameters.step ?? void 0,
29811
- disabled,
29812
- ...externalProps,
29813
- ...mergedEventHandlers,
29814
- style: {
29815
- ...visuallyHidden,
29816
- direction: isRtl ? "rtl" : "ltr",
29817
- width: "100%",
29818
- height: "100%",
29819
- writingMode: cssWritingMode
29820
- }
29821
- };
29822
- };
29823
- return {
29824
- active,
29825
- axis,
29826
- axisProps,
29827
- dragging,
29828
- focusedThumbIndex,
29829
- getHiddenInputProps,
29830
- getRootProps,
29831
- getThumbProps,
29832
- marks,
29833
- open,
29834
- range,
29835
- rootRef: handleRef,
29836
- trackLeap,
29837
- trackOffset,
29838
- values,
29839
- getThumbStyle
29840
- };
29841
- }
29842
- //#endregion
29843
- //#region node_modules/@mui/material/Slider/SliderValueLabel.mjs
29844
- const useValueLabelClasses = (props) => {
29845
- const { open } = props;
29846
- return {
29847
- offset: clsx(open && sliderClasses.valueLabelOpen),
29848
- circle: sliderClasses.valueLabelCircle,
29849
- label: sliderClasses.valueLabelLabel
29850
- };
29851
- };
29852
- /**
29853
- * @ignore - internal component.
29854
- */
29855
- function SliderValueLabel$1(props) {
29856
- const { children, className, value } = props;
29857
- const classes = useValueLabelClasses(props);
29858
- if (!children) return null;
29859
- return /*#__PURE__*/ react$1.cloneElement(children, { className: children.props.className }, /*#__PURE__*/ (0, import_jsx_runtime.jsxs)(react$1.Fragment, { children: [children.props.children, /*#__PURE__*/ (0, import_jsx_runtime.jsx)("span", {
29860
- className: clsx(classes.offset, className),
29861
- "aria-hidden": true,
29862
- children: /*#__PURE__*/ (0, import_jsx_runtime.jsx)("span", {
29863
- className: classes.circle,
29864
- children: /*#__PURE__*/ (0, import_jsx_runtime.jsx)("span", {
29865
- className: classes.label,
29866
- children: value
29867
- })
29868
- })
29869
- })] }));
29870
- }
29871
- //#endregion
29872
- //#region node_modules/@mui/material/Slider/Slider.mjs
29873
- function Identity(x) {
29874
- return x;
29875
- }
29876
- const SliderRoot = styled("span", {
29877
- name: "MuiSlider",
29878
- slot: "Root",
29879
- overridesResolver: (props, styles) => {
29880
- const { ownerState } = props;
29881
- return [
29882
- styles.root,
29883
- styles[`color${capitalize_default(ownerState.color)}`],
29884
- ownerState.size !== "medium" && styles[`size${capitalize_default(ownerState.size)}`],
29885
- ownerState.marked && styles.marked,
29886
- ownerState.orientation === "vertical" && styles.vertical,
29887
- ownerState.track === "inverted" && styles.trackInverted,
29888
- ownerState.track === false && styles.trackFalse
29889
- ];
29890
- }
29891
- })(memoTheme(({ theme }) => ({
29892
- borderRadius: 12,
29893
- boxSizing: "content-box",
29894
- display: "inline-block",
29895
- position: "relative",
29896
- cursor: "pointer",
29897
- touchAction: "none",
29898
- WebkitTapHighlightColor: "transparent",
29899
- "@media print": { colorAdjust: "exact" },
29900
- [`&.${sliderClasses.disabled}`]: {
29901
- pointerEvents: "none",
29902
- cursor: "default",
29903
- color: (theme.vars || theme).palette.grey[400]
29904
- },
29905
- [`&.${sliderClasses.dragging}`]: { [`& .${sliderClasses.thumb}, & .${sliderClasses.track}`]: { transition: "none" } },
29906
- variants: [
29907
- ...Object.entries(theme.palette).filter(createSimplePaletteValueFilter()).map(([color]) => ({
29908
- props: { color },
29909
- style: { color: (theme.vars || theme).palette[color].main }
29910
- })),
29911
- {
29912
- props: { orientation: "horizontal" },
29913
- style: {
29914
- height: 4,
29915
- width: "100%",
29916
- padding: "13px 0",
29917
- "@media (pointer: coarse)": { padding: "20px 0" }
29918
- }
29919
- },
29920
- {
29921
- props: {
29922
- orientation: "horizontal",
29923
- size: "small"
29924
- },
29925
- style: { height: 2 }
29926
- },
29927
- {
29928
- props: {
29929
- orientation: "horizontal",
29930
- marked: true
29931
- },
29932
- style: { marginBottom: 20 }
29933
- },
29934
- {
29935
- props: { orientation: "vertical" },
29936
- style: {
29937
- height: "100%",
29938
- width: 4,
29939
- padding: "0 13px",
29940
- "@media (pointer: coarse)": { padding: "0 20px" }
29941
- }
29942
- },
29943
- {
29944
- props: {
29945
- orientation: "vertical",
29946
- size: "small"
29947
- },
29948
- style: { width: 2 }
29949
- },
29950
- {
29951
- props: {
29952
- orientation: "vertical",
29953
- marked: true
29954
- },
29955
- style: { marginRight: 44 }
29956
- }
29957
- ]
29958
- })));
29959
- const SliderRail = styled("span", {
29960
- name: "MuiSlider",
29961
- slot: "Rail"
29962
- })({
29963
- display: "block",
29964
- position: "absolute",
29965
- borderRadius: "inherit",
29966
- backgroundColor: "currentColor",
29967
- opacity: .38,
29968
- "@media (forced-colors: active)": {
29969
- border: "1px solid transparent",
29970
- boxSizing: "border-box"
29971
- },
29972
- variants: [
29973
- {
29974
- props: { orientation: "horizontal" },
29975
- style: {
29976
- width: "100%",
29977
- height: "inherit",
29978
- top: "50%",
29979
- transform: "translateY(-50%)"
29980
- }
29981
- },
29982
- {
29983
- props: { orientation: "vertical" },
29984
- style: {
29985
- height: "100%",
29986
- width: "inherit",
29987
- left: "50%",
29988
- transform: "translateX(-50%)"
29989
- }
29990
- },
29991
- {
29992
- props: { track: "inverted" },
29993
- style: { opacity: 1 }
29994
- }
29995
- ]
29996
- });
29997
- const SliderTrack = styled("span", {
29998
- name: "MuiSlider",
29999
- slot: "Track"
30000
- })(memoTheme(({ theme }) => {
30001
- return {
30002
- display: "block",
30003
- position: "absolute",
30004
- borderRadius: "inherit",
30005
- border: "1px solid currentColor",
30006
- backgroundColor: "currentColor",
30007
- ...getTransitionStyles(theme, [
30008
- "left",
30009
- "width",
30010
- "bottom",
30011
- "height"
30012
- ], { duration: theme.transitions.duration.shortest }),
30013
- variants: [
30014
- {
30015
- props: { size: "small" },
30016
- style: { "@media (forced-colors: none)": { border: "none" } }
30017
- },
30018
- {
30019
- props: { orientation: "horizontal" },
30020
- style: {
30021
- height: "inherit",
30022
- top: "50%",
30023
- transform: "translateY(-50%)"
30024
- }
30025
- },
30026
- {
30027
- props: { orientation: "vertical" },
30028
- style: {
30029
- width: "inherit",
30030
- left: "50%",
30031
- transform: "translateX(-50%)"
30032
- }
30033
- },
30034
- {
30035
- props: { track: false },
30036
- style: { display: "none" }
30037
- },
30038
- ...Object.entries(theme.palette).filter(createSimplePaletteValueFilter()).map(([color]) => ({
30039
- props: {
30040
- color,
30041
- track: "inverted"
30042
- },
30043
- style: { ...theme.vars ? {
30044
- backgroundColor: theme.vars.palette.Slider[`${color}Track`],
30045
- borderColor: theme.vars.palette.Slider[`${color}Track`]
30046
- } : {
30047
- backgroundColor: theme.lighten(theme.palette[color].main, .62),
30048
- borderColor: theme.lighten(theme.palette[color].main, .62),
30049
- ...theme.applyStyles("dark", { backgroundColor: theme.darken(theme.palette[color].main, .5) }),
30050
- ...theme.applyStyles("dark", { borderColor: theme.darken(theme.palette[color].main, .5) })
30051
- } }
30052
- }))
30053
- ]
30054
- };
30055
- }));
30056
- const SliderThumb = styled("span", {
30057
- name: "MuiSlider",
30058
- slot: "Thumb"
30059
- })(memoTheme(({ theme }) => ({
30060
- position: "absolute",
30061
- width: 20,
30062
- height: 20,
30063
- boxSizing: "border-box",
30064
- borderRadius: "50%",
30065
- outline: 0,
30066
- backgroundColor: "currentColor",
30067
- display: "flex",
30068
- alignItems: "center",
30069
- justifyContent: "center",
30070
- ...getTransitionStyles(theme, [
30071
- "box-shadow",
30072
- "left",
30073
- "bottom"
30074
- ], { duration: theme.transitions.duration.shortest }),
30075
- "@media (forced-colors: active)": { border: "1px solid ButtonBorder" },
30076
- "&::before": {
30077
- position: "absolute",
30078
- content: "\"\"",
30079
- borderRadius: "inherit",
30080
- width: "100%",
30081
- height: "100%",
30082
- boxShadow: (theme.vars || theme).shadows[2]
30083
- },
30084
- "&::after": {
30085
- position: "absolute",
30086
- content: "\"\"",
30087
- borderRadius: "50%",
30088
- width: 42,
30089
- height: 42,
30090
- top: "50%",
30091
- left: "50%",
30092
- transform: "translate(-50%, -50%)"
30093
- },
30094
- [`&.${sliderClasses.disabled}`]: { "&:hover": { boxShadow: "none" } },
30095
- ...theme.focusVisible && { [`&.${sliderClasses.focusVisible}`]: {
30096
- ...outsetFocusRing,
30097
- ...theme.focusVisible
30098
- } },
30099
- variants: [
30100
- {
30101
- props: { size: "small" },
30102
- style: {
30103
- width: 12,
30104
- height: 12,
30105
- "&::before": { boxShadow: "none" }
30106
- }
30107
- },
30108
- {
30109
- props: { orientation: "horizontal" },
30110
- style: {
30111
- top: "50%",
30112
- transform: "translate(-50%, -50%)"
30113
- }
30114
- },
30115
- {
30116
- props: { orientation: "vertical" },
30117
- style: {
30118
- left: "50%",
30119
- transform: "translate(-50%, 50%)"
30120
- }
30121
- },
30122
- ...Object.entries(theme.palette).filter(createSimplePaletteValueFilter()).map(([color]) => ({
30123
- props: { color },
30124
- style: {
30125
- "&:hover": {
30126
- boxShadow: `0px 0px 0px 8px ${theme.alpha((theme.vars || theme).palette[color].main, .16)}`,
30127
- "@media (hover: none)": { boxShadow: "none" }
30128
- },
30129
- ...!theme.focusVisible && { [`&.${sliderClasses.focusVisible}`]: {
30130
- boxShadow: `0px 0px 0px 8px ${theme.alpha((theme.vars || theme).palette[color].main, .16)}`,
30131
- "@media (hover: none)": { boxShadow: "none" }
30132
- } },
30133
- [`&.${sliderClasses.active}`]: { boxShadow: `0px 0px 0px 14px ${theme.alpha((theme.vars || theme).palette[color].main, .16)}` }
30134
- }
30135
- }))
30136
- ]
30137
- })));
30138
- const SliderValueLabel = styled(SliderValueLabel$1, {
30139
- name: "MuiSlider",
30140
- slot: "ValueLabel"
30141
- })(memoTheme(({ theme }) => ({
30142
- zIndex: 1,
30143
- whiteSpace: "nowrap",
30144
- ...theme.typography.body2,
30145
- fontWeight: 500,
30146
- ...getTransitionStyles(theme, ["transform"], { duration: theme.transitions.duration.shortest }),
30147
- position: "absolute",
30148
- backgroundColor: (theme.vars || theme).palette.grey[600],
30149
- borderRadius: 2,
30150
- color: (theme.vars || theme).palette.common.white,
30151
- display: "flex",
30152
- alignItems: "center",
30153
- justifyContent: "center",
30154
- padding: "0.25rem 0.75rem",
30155
- variants: [
30156
- {
30157
- props: { orientation: "horizontal" },
30158
- style: {
30159
- transform: "translateY(-100%) scale(0)",
30160
- top: "-10px",
30161
- transformOrigin: "bottom center",
30162
- "&::before": {
30163
- position: "absolute",
30164
- content: "\"\"",
30165
- width: 8,
30166
- height: 8,
30167
- transform: "translate(-50%, 50%) rotate(45deg)",
30168
- backgroundColor: "inherit",
30169
- bottom: 0,
30170
- left: "50%"
30171
- },
30172
- [`&.${sliderClasses.valueLabelOpen}`]: { transform: "translateY(-100%) scale(1)" }
30173
- }
30174
- },
30175
- {
30176
- props: { orientation: "vertical" },
30177
- style: {
30178
- transform: "translateY(-50%) scale(0)",
30179
- right: "30px",
30180
- top: "50%",
30181
- transformOrigin: "right center",
30182
- "&::before": {
30183
- position: "absolute",
30184
- content: "\"\"",
30185
- width: 8,
30186
- height: 8,
30187
- transform: "translate(-50%, -50%) rotate(45deg)",
30188
- backgroundColor: "inherit",
30189
- right: -8,
30190
- top: "50%"
30191
- },
30192
- [`&.${sliderClasses.valueLabelOpen}`]: { transform: "translateY(-50%) scale(1)" }
30193
- }
30194
- },
30195
- {
30196
- props: { size: "small" },
30197
- style: {
30198
- fontSize: theme.typography.pxToRem(12),
30199
- padding: "0.25rem 0.5rem"
30200
- }
30201
- },
30202
- {
30203
- props: {
30204
- orientation: "vertical",
30205
- size: "small"
30206
- },
30207
- style: { right: "20px" }
30208
- }
30209
- ]
30210
- })));
30211
- const SliderMark = styled("span", {
30212
- name: "MuiSlider",
30213
- slot: "Mark",
30214
- shouldForwardProp: (prop) => slotShouldForwardProp(prop) && prop !== "markActive",
30215
- overridesResolver: (props, styles) => {
30216
- const { markActive } = props;
30217
- return [styles.mark, markActive && styles.markActive];
30218
- }
30219
- })(memoTheme(({ theme }) => ({
30220
- position: "absolute",
30221
- width: 2,
30222
- height: 2,
30223
- borderRadius: 1,
30224
- backgroundColor: "currentColor",
30225
- variants: [
30226
- {
30227
- props: { orientation: "horizontal" },
30228
- style: {
30229
- top: "50%",
30230
- transform: "translate(-1px, -50%)"
30231
- }
30232
- },
30233
- {
30234
- props: { orientation: "vertical" },
30235
- style: {
30236
- left: "50%",
30237
- transform: "translate(-50%, 1px)"
30238
- }
30239
- },
30240
- {
30241
- props: { markActive: true },
30242
- style: {
30243
- backgroundColor: (theme.vars || theme).palette.background.paper,
30244
- opacity: .8
30245
- }
30246
- }
30247
- ]
30248
- })));
30249
- const SliderMarkLabel = styled("span", {
30250
- name: "MuiSlider",
30251
- slot: "MarkLabel",
30252
- shouldForwardProp: (prop) => slotShouldForwardProp(prop) && prop !== "markLabelActive"
30253
- })(memoTheme(({ theme }) => ({
30254
- ...theme.typography.body2,
30255
- color: (theme.vars || theme).palette.text.secondary,
30256
- position: "absolute",
30257
- whiteSpace: "nowrap",
30258
- variants: [
30259
- {
30260
- props: { orientation: "horizontal" },
30261
- style: {
30262
- top: 30,
30263
- transform: "translateX(-50%)",
30264
- "@media (pointer: coarse)": { top: 40 }
30265
- }
30266
- },
30267
- {
30268
- props: { orientation: "vertical" },
30269
- style: {
30270
- left: 36,
30271
- transform: "translateY(50%)",
30272
- "@media (pointer: coarse)": { left: 44 }
30273
- }
30274
- },
30275
- {
30276
- props: { markLabelActive: true },
30277
- style: { color: (theme.vars || theme).palette.text.primary }
30278
- }
30279
- ]
30280
- })));
30281
- const useUtilityClasses$8 = (ownerState) => {
30282
- const { disabled, dragging, marked, orientation, track, classes, color, size } = ownerState;
30283
- return composeClasses({
30284
- root: [
30285
- "root",
30286
- disabled && "disabled",
30287
- dragging && "dragging",
30288
- marked && "marked",
30289
- orientation === "vertical" && "vertical",
30290
- track === "inverted" && "trackInverted",
30291
- track === false && "trackFalse",
30292
- color && `color${capitalize_default(color)}`,
30293
- size && `size${capitalize_default(size)}`
30294
- ],
30295
- rail: ["rail"],
30296
- track: ["track"],
30297
- mark: ["mark"],
30298
- markActive: ["markActive"],
30299
- markLabel: ["markLabel"],
30300
- markLabelActive: ["markLabelActive"],
30301
- valueLabel: ["valueLabel"],
30302
- thumb: ["thumb", disabled && "disabled"],
30303
- active: ["active"],
30304
- disabled: ["disabled"],
30305
- focusVisible: ["focusVisible"]
30306
- }, getSliderUtilityClass, classes);
30307
- };
30308
- const Forward = ({ children }) => children;
30309
- const Slider = /*#__PURE__*/ react$1.forwardRef(function Slider(inProps, ref) {
30310
- const props = useDefaultProps({
30311
- props: inProps,
30312
- name: "MuiSlider"
30313
- });
30314
- const isRtl = useRtl();
30315
- const { "aria-label": ariaLabel, "aria-valuetext": ariaValuetext, "aria-labelledby": ariaLabelledby, color = "primary", classes: classesProp, className, disableSwap = false, disabled = false, getAriaLabel, getAriaValueText, marks: marksProp = false, max = 100, min = 0, name, onChange, onChangeCommitted, orientation = "horizontal", shiftStep = 10, size = "medium", step = 1, scale = Identity, slotProps = {}, slots = {}, tabIndex, track = "normal", value: valueProp, valueLabelDisplay = "off", valueLabelFormat = Identity, ...other } = props;
30316
- const ownerState = {
30317
- ...props,
30318
- isRtl,
30319
- max,
30320
- min,
30321
- classes: classesProp,
30322
- disabled,
30323
- disableSwap,
30324
- orientation,
30325
- marks: marksProp,
30326
- color,
30327
- size,
30328
- step,
30329
- shiftStep,
30330
- scale,
30331
- track,
30332
- valueLabelDisplay,
30333
- valueLabelFormat
30334
- };
30335
- const { axisProps, getRootProps, getHiddenInputProps, getThumbProps, open, active, axis, focusedThumbIndex, range, dragging, marks, values, trackOffset, trackLeap, getThumbStyle } = useSlider({
30336
- ...ownerState,
30337
- rootRef: ref
30338
- });
30339
- ownerState.marked = marks.length > 0 && marks.some((mark) => mark.label);
30340
- ownerState.dragging = dragging;
30341
- ownerState.focusedThumbIndex = focusedThumbIndex;
30342
- const classes = useUtilityClasses$8(ownerState);
30343
- const externalForwardedProps = {
30344
- slots,
30345
- slotProps
30346
- };
30347
- const [RootSlot, rootProps] = useSlot("root", {
30348
- elementType: SliderRoot,
30349
- getSlotProps: getRootProps,
30350
- externalForwardedProps: {
30351
- ...externalForwardedProps,
30352
- ...other
30353
- },
30354
- ownerState,
30355
- className: [classes.root, className]
30356
- });
30357
- const [RailSlot, railProps] = useSlot("rail", {
30358
- elementType: SliderRail,
30359
- externalForwardedProps,
30360
- ownerState,
30361
- className: classes.rail
30362
- });
30363
- const [TrackSlot, trackProps] = useSlot("track", {
30364
- elementType: SliderTrack,
30365
- externalForwardedProps,
30366
- additionalProps: { style: {
30367
- ...axisProps[axis].offset(trackOffset),
30368
- ...axisProps[axis].leap(trackLeap)
30369
- } },
30370
- ownerState,
30371
- className: classes.track
30372
- });
30373
- const [ThumbSlot, thumbProps] = useSlot("thumb", {
30374
- elementType: SliderThumb,
30375
- getSlotProps: getThumbProps,
30376
- externalForwardedProps,
30377
- ownerState,
30378
- className: classes.thumb
30379
- });
30380
- const [ValueLabelSlot, valueLabelProps] = useSlot("valueLabel", {
30381
- elementType: SliderValueLabel,
30382
- externalForwardedProps,
30383
- ownerState,
30384
- className: classes.valueLabel
30385
- });
30386
- const [MarkSlot, markProps] = useSlot("mark", {
30387
- elementType: SliderMark,
30388
- externalForwardedProps,
30389
- ownerState,
30390
- className: classes.mark
30391
- });
30392
- const [MarkLabelSlot, markLabelProps] = useSlot("markLabel", {
30393
- elementType: SliderMarkLabel,
30394
- externalForwardedProps,
30395
- ownerState,
30396
- className: classes.markLabel
30397
- });
30398
- const [InputSliderSlot, inputSliderProps] = useSlot("input", {
30399
- elementType: "input",
30400
- getSlotProps: getHiddenInputProps,
30401
- externalForwardedProps,
30402
- ownerState
30403
- });
30404
- return /*#__PURE__*/ (0, import_jsx_runtime.jsxs)(RootSlot, {
30405
- ...rootProps,
30406
- children: [
30407
- /*#__PURE__*/ (0, import_jsx_runtime.jsx)(RailSlot, { ...railProps }),
30408
- /*#__PURE__*/ (0, import_jsx_runtime.jsx)(TrackSlot, { ...trackProps }),
30409
- marks.filter((mark) => mark.value >= min && mark.value <= max).map((mark, index) => {
30410
- const percent = valueToPercent(mark.value, min, max);
30411
- const style = axisProps[axis].offset(percent);
30412
- let markActive;
30413
- if (track === false) markActive = values.includes(mark.value);
30414
- else markActive = track === "normal" && (range ? mark.value >= values[0] && mark.value <= values[values.length - 1] : mark.value <= values[0]) || track === "inverted" && (range ? mark.value <= values[0] || mark.value >= values[values.length - 1] : mark.value >= values[0]);
30415
- return /*#__PURE__*/ (0, import_jsx_runtime.jsxs)(react$1.Fragment, { children: [/*#__PURE__*/ (0, import_jsx_runtime.jsx)(MarkSlot, {
30416
- "data-index": index,
30417
- ...markProps,
30418
- ...!isHostComponent(MarkSlot) && { markActive },
30419
- style: {
30420
- ...style,
30421
- ...markProps.style
30422
- },
30423
- className: clsx(markProps.className, markActive && classes.markActive)
30424
- }), mark.label != null ? /*#__PURE__*/ (0, import_jsx_runtime.jsx)(MarkLabelSlot, {
30425
- "aria-hidden": true,
30426
- "data-index": index,
30427
- ...markLabelProps,
30428
- ...!isHostComponent(MarkLabelSlot) && { markLabelActive: markActive },
30429
- style: {
30430
- ...style,
30431
- ...markLabelProps.style
30432
- },
30433
- className: clsx(classes.markLabel, markLabelProps.className, markActive && classes.markLabelActive),
30434
- children: mark.label
30435
- }) : null] }, index);
30436
- }),
30437
- values.map((value, index) => {
30438
- const percent = valueToPercent(value, min, max);
30439
- const style = axisProps[axis].offset(percent);
30440
- const ValueLabelComponent = valueLabelDisplay === "off" ? Forward : ValueLabelSlot;
30441
- return /*#__PURE__*/ (0, import_jsx_runtime.jsx)(ValueLabelComponent, {
30442
- ...!isHostComponent(ValueLabelComponent) && {
30443
- valueLabelFormat,
30444
- valueLabelDisplay,
30445
- value: typeof valueLabelFormat === "function" ? valueLabelFormat(scale(value), index) : valueLabelFormat,
30446
- index,
30447
- open: open === index || active === index || valueLabelDisplay === "on",
30448
- disabled
30449
- },
30450
- ...valueLabelProps,
30451
- children: /*#__PURE__*/ (0, import_jsx_runtime.jsx)(ThumbSlot, {
30452
- "data-index": index,
30453
- ...thumbProps,
30454
- className: clsx(classes.thumb, thumbProps.className, active === index && classes.active, focusedThumbIndex === index && classes.focusVisible),
30455
- style: {
30456
- ...style,
30457
- ...getThumbStyle(index),
30458
- ...thumbProps.style
30459
- },
30460
- children: /*#__PURE__*/ (0, import_jsx_runtime.jsx)(InputSliderSlot, {
30461
- "data-index": index,
30462
- "aria-label": getAriaLabel ? getAriaLabel(index) : ariaLabel,
30463
- "aria-valuenow": scale(value),
30464
- "aria-labelledby": ariaLabelledby,
30465
- "aria-valuetext": getAriaValueText ? getAriaValueText(scale(value), index) : ariaValuetext,
30466
- value: values[index],
30467
- ...inputSliderProps
30468
- })
30469
- })
30470
- }, index);
30471
- })
30472
- ]
30473
- });
30474
- });
30475
- //#endregion
30476
- //#region node_modules/@mui/material/Table/TableContext.mjs
30477
- /**
30478
- * @ignore - internal component.
30479
- */
30480
- const TableContext = /*#__PURE__*/ react$1.createContext();
30481
- //#endregion
30482
- //#region node_modules/@mui/material/Table/tableClasses.mjs
30483
- function getTableUtilityClass(slot) {
30484
- return generateUtilityClass("MuiTable", slot);
30485
- }
30486
- generateUtilityClasses("MuiTable", ["root", "stickyHeader"]);
29295
+ generateUtilityClasses("MuiTable", ["root", "stickyHeader"]);
30487
29296
  //#endregion
30488
29297
  //#region node_modules/@mui/material/Table/Table.mjs
30489
29298
  const useUtilityClasses$7 = (ownerState) => {
@@ -31516,18 +30325,6 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
31516
30325
  ];
31517
30326
  /** Fields whose six defaults differ, therefore one row per scene. */
31518
30327
  const SCENE_FIELDS = [
31519
- {
31520
- field: "thinking",
31521
- copy: "scene.thinking",
31522
- kind: "enum",
31523
- options: ["enabled", "disabled"]
31524
- },
31525
- {
31526
- field: "reasoningEffort",
31527
- copy: "scene.reasoningEffort",
31528
- kind: "text",
31529
- wired: true
31530
- },
31531
30328
  {
31532
30329
  field: "requirePlan",
31533
30330
  copy: "scene.requirePlan",
@@ -32187,6 +30984,30 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
32187
30984
  function settingsSharedSceneControls() {
32188
30985
  return SETTINGS_CONTROLS.filter((value) => value.group === "scenes" && value.scene === void 0 && value.keys.length > 1);
32189
30986
  }
30987
+ /**
30988
+ * Decimal places a catalog step implies.
30989
+ *
30990
+ * `0.01` → 2, `0.001` → 3, `1` → 0. The cap keeps a pathological step from
30991
+ * producing a wall of digits; every real step in this catalog is ≤ 3 places.
30992
+ */
30993
+ function stepDecimals(step) {
30994
+ if (step === void 0 || !Number.isFinite(step) || step <= 0) return 0;
30995
+ const text = step.toFixed(12).replace(/0+$/, "");
30996
+ const dot = text.indexOf(".");
30997
+ return dot < 0 ? 0 : Math.min(6, text.length - dot - 1);
30998
+ }
30999
+ /**
31000
+ * Format one config number for display, rounded to the row's step precision.
31001
+ *
31002
+ * Resolvers renormalise the eight plan weights, so a stored `0.15` comes back as
31003
+ * `0.15000000000000002`; the row must show `0.15`. Rounding happens only for
31004
+ * display — the wire still carries the exact value the host reported, and a
31005
+ * write sends whatever the operator typed.
31006
+ */
31007
+ function formatConfigNumber(value, step) {
31008
+ if (!Number.isFinite(value)) return String(value);
31009
+ return String(Number(value.toFixed(stepDecimals(step))));
31010
+ }
32190
31011
  /** Write one dotted config path into a plain object tree (creating nodes). */
32191
31012
  function writeConfigPath(target, path, value) {
32192
31013
  const parts = path.split(".");
@@ -32209,8 +31030,9 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
32209
31030
  * - one `Accordion` per catalog group, with a `List` of rows inside;
32210
31031
  * - a `Table` per scene for the eleven scene-scoped fields — there is no scene
32211
31032
  * dropdown, every scene is visible as its own table;
32212
- * - `Checkbox` for booleans, `RadioGroup` for enums, `Slider` for ratio-like
32213
- * numbers and `TextField type="number"` for counts/bytes/milliseconds;
31033
+ * - `Checkbox` for booleans, `RadioGroup` for enums, and
31034
+ * `TextField type="number"` for every number — weights, ratios, counts,
31035
+ * bytes and milliseconds alike;
32214
31036
  * - `Typography` for titles, hints, defaults and errors, and `Chip` for the
32215
31037
  * `主机` / `本机` / `强制` / `只读` / `计划中` status.
32216
31038
  *
@@ -32235,7 +31057,6 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
32235
31057
  const MuiListItem = ListItem;
32236
31058
  const MuiRadio$1 = Radio;
32237
31059
  const MuiRadioGroup$1 = RadioGroup;
32238
- const MuiSlider = Slider;
32239
31060
  const MuiTable = Table;
32240
31061
  const MuiTableBody = TableBody;
32241
31062
  const MuiTableCell = TableCell;
@@ -32316,59 +31137,31 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
32316
31137
  sx: { mr: 1 }
32317
31138
  }))));
32318
31139
  }
32319
- /** A slider for a ratio-like number (0–1, 0.3–0.9, …); commits on release. */
32320
- function SliderControl(props) {
32321
- const [draft, setDraft] = react$1.useState(props.value);
32322
- react$1.useEffect(() => {
32323
- setDraft(props.value);
32324
- }, [props.value]);
32325
- return react$1.createElement("span", { style: SLIDER_WRAP_STYLE }, react$1.createElement(MuiSlider, {
32326
- size: "small",
32327
- min: props.min,
32328
- max: props.max,
32329
- step: props.step,
32330
- value: draft,
32331
- disabled: props.disabled,
32332
- valueLabelDisplay: "auto",
32333
- sx: SLIDER_SX,
32334
- slotProps: { input: { "aria-label": props.label } },
32335
- onChange: (_event, next) => {
32336
- setDraft(Array.isArray(next) ? next[0] : next);
32337
- },
32338
- onChangeCommitted: (_event, next) => {
32339
- const committed = Array.isArray(next) ? next[0] : next;
32340
- if (committed !== props.value) props.onCommit(committed);
32341
- }
32342
- }), react$1.createElement(MuiTypography, {
32343
- variant: "caption",
32344
- color: "text.secondary"
32345
- }, String(draft)));
32346
- }
32347
31140
  /**
32348
- * A MUI number field for a non-ratio number (turns, milliseconds, bytes,
32349
- * counts). The inline error is the local parse/min/max check; the host is still
32350
- * the authority and its rejection lands on the row below.
31141
+ * A MUI number field for a number (turns, milliseconds, bytes, ratios and
31142
+ * weights). The inline error is the local parse/min/max check; the host is
31143
+ * still the authority and its rejection lands on the row below.
32351
31144
  */
32352
31145
  function NumberFieldControl(props) {
32353
- const [draft, setDraft] = react$1.useState(String(props.value));
31146
+ const [draft, setDraft] = react$1.useState(formatConfigNumber(props.value, props.step));
32354
31147
  const [error, setError] = react$1.useState(null);
32355
31148
  react$1.useEffect(() => {
32356
- setDraft(String(props.value));
31149
+ setDraft(formatConfigNumber(props.value, props.step));
32357
31150
  setError(null);
32358
- }, [props.value]);
31151
+ }, [props.value, props.step]);
32359
31152
  const commit = () => {
32360
31153
  const trimmed = draft.trim();
32361
31154
  const parsed = Number(trimmed);
32362
31155
  if (trimmed === "" || !Number.isFinite(parsed)) {
32363
31156
  setError(props.messages.invalid);
32364
- setDraft(String(props.value));
31157
+ setDraft(formatConfigNumber(props.value, props.step));
32365
31158
  return;
32366
31159
  }
32367
31160
  const below = props.min !== void 0 && parsed < props.min;
32368
31161
  const above = props.max !== void 0 && parsed > props.max;
32369
31162
  if (below || above) {
32370
31163
  setError(props.messages.range);
32371
- setDraft(String(props.value));
31164
+ setDraft(formatConfigNumber(props.value, props.step));
32372
31165
  return;
32373
31166
  }
32374
31167
  if (parsed !== props.value) props.onCommit(parsed);
@@ -32448,7 +31241,6 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
32448
31241
  if (key === "defaults.scene") return "scene";
32449
31242
  if (key === "defaults.validation") return "validation";
32450
31243
  if (key === "defaults.command") return "command";
32451
- if (control.options !== void 0 && control.options.length === 2 && control.options.includes("enabled")) return "thinking";
32452
31244
  return "locale";
32453
31245
  }
32454
31246
  function optionLabel(copy, control, value) {
@@ -32459,7 +31251,6 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
32459
31251
  case "scene": return isOneOf(value, SceneValues) ? copy.scenes[value].label : value;
32460
31252
  case "validation": return isOneOf(value, ValidationValues) ? copy.validations[value].label : value;
32461
31253
  case "command": return isOneOf(value, CommandValues) ? values.commandOptions[value] : value;
32462
- case "thinking": return value === "enabled" || value === "disabled" ? values.thinkingOptions[value] : value;
32463
31254
  case "locale":
32464
31255
  if (value === "auto") return copy.settings.values.followHost;
32465
31256
  if (value === "zh-CN") return copy.settings.values.chinese;
@@ -32470,7 +31261,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
32470
31261
  /** Human text for a value the host reported. Booleans are on/off in the copy. */
32471
31262
  function displayConfigValue(copy, control, value) {
32472
31263
  if (typeof value === "boolean") return value ? copy.settings.values.on : copy.settings.values.off;
32473
- if (typeof value === "number" && Number.isFinite(value)) return String(value);
31264
+ if (typeof value === "number" && Number.isFinite(value)) return formatConfigNumber(value, control.step);
32474
31265
  if (typeof value === "string") return control.kind === "enum" ? optionLabel(copy, control, value) : value;
32475
31266
  return copy.settings.values.unavailable;
32476
31267
  }
@@ -32485,10 +31276,6 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
32485
31276
  }
32486
31277
  return parts.join(" · ");
32487
31278
  }
32488
- /** Ratio-like numbers get a slider; counts, bytes and milliseconds a field. */
32489
- function isRatioControl(control) {
32490
- return control.kind === "number" && control.min !== void 0 && control.max !== void 0 && control.max - control.min <= 1;
32491
- }
32492
31279
  /** Display preference a host interval maps onto (`2 / 5 / 10` seconds). */
32493
31280
  function refreshOption(milliseconds) {
32494
31281
  if (milliseconds <= 2e3) return 2;
@@ -32553,8 +31340,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
32553
31340
  } },
32554
31341
  MuiFormControlLabel: { styleOverrides: { label: { fontSize: 12 } } },
32555
31342
  MuiInputBase: { styleOverrides: { input: { fontSize: 13 } } },
32556
- MuiTableCell: { styleOverrides: { root: { fontSize: 12 } } },
32557
- MuiSlider: { styleOverrides: { valueLabel: { fontSize: 12 } } }
31343
+ MuiTableCell: { styleOverrides: { root: { fontSize: 12 } } }
32558
31344
  }
32559
31345
  });
32560
31346
  function CoordinationSettings() {
@@ -32697,35 +31483,22 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
32697
31483
  commit(control, next);
32698
31484
  }
32699
31485
  });
32700
- if (control.chip === "host" && control.kind === "number" && typeof rawValue === "number") {
32701
- if (isRatioControl(control)) return react$1.createElement(SliderControl, {
32702
- label,
32703
- value: rawValue,
32704
- min: control.min,
32705
- max: control.max,
32706
- step: control.step ?? .01,
32707
- disabled,
32708
- onCommit: (next) => {
32709
- commit(control, next);
32710
- }
32711
- });
32712
- return react$1.createElement(NumberFieldControl, {
32713
- inputId,
32714
- label,
32715
- value: rawValue,
32716
- ...control.min === void 0 ? {} : { min: control.min },
32717
- ...control.max === void 0 ? {} : { max: control.max },
32718
- ...control.step === void 0 ? {} : { step: control.step },
32719
- disabled,
32720
- onCommit: (next) => {
32721
- commit(control, next);
32722
- },
32723
- messages: {
32724
- invalid: catalog.values.invalidNumber,
32725
- range: catalog.values.outOfRange
32726
- }
32727
- });
32728
- }
31486
+ if (control.chip === "host" && control.kind === "number" && typeof rawValue === "number") return react$1.createElement(NumberFieldControl, {
31487
+ inputId,
31488
+ label,
31489
+ value: rawValue,
31490
+ ...control.min === void 0 ? {} : { min: control.min },
31491
+ ...control.max === void 0 ? {} : { max: control.max },
31492
+ ...control.step === void 0 ? {} : { step: control.step },
31493
+ disabled,
31494
+ onCommit: (next) => {
31495
+ commit(control, next);
31496
+ },
31497
+ messages: {
31498
+ invalid: catalog.values.invalidNumber,
31499
+ range: catalog.values.outOfRange
31500
+ }
31501
+ });
32729
31502
  if (control.chip === "host" && control.kind === "text" && typeof rawValue === "string") return react$1.createElement(TextFieldControl, {
32730
31503
  inputId,
32731
31504
  label,
@@ -32753,7 +31526,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
32753
31526
  const rawDefault = defaultOf(control);
32754
31527
  const label = control.scene === void 0 ? field.label : `${copy.scenes[control.scene].label} · ${field.label}`;
32755
31528
  const inputId = `${control.id}:input`;
32756
- const labelled = control.chip === "host" && control.keys.length > 0 && load === "ready" && control.kind !== "enum" && !isRatioControl(control);
31529
+ const labelled = control.chip === "host" && control.keys.length > 0 && load === "ready" && control.kind !== "enum";
32757
31530
  const meta = metaLine(copy, control, rawDefault);
32758
31531
  const notes = [];
32759
31532
  if (control.copy === "professionDefaultAlias") notes.push(catalog.values.alias);
@@ -33045,16 +31818,6 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
33045
31818
  cursor: "help",
33046
31819
  flex: "none"
33047
31820
  };
33048
- const SLIDER_WRAP_STYLE = {
33049
- display: "inline-flex",
33050
- alignItems: "center",
33051
- gap: 4,
33052
- minWidth: 140
33053
- };
33054
- const SLIDER_SX = {
33055
- width: 110,
33056
- py: .5
33057
- };
33058
31821
  const NUMBER_SX = { width: 140 };
33059
31822
  const TEXT_SX = { width: 150 };
33060
31823
  const FIELD_SET_SX = {