@vitessce/vit-s 3.5.7 → 3.5.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as React$6 from "react";
2
- import React__default, { Children, isValidElement, cloneElement as cloneElement$1, useReducer, useRef, useDebugValue, useEffect, useLayoutEffect, createContext as createContext$1, createElement, useContext, useMemo, useCallback, useState } from "react";
2
+ import React__default, { Children, isValidElement, cloneElement as cloneElement$1, useReducer, useRef, useDebugValue, useEffect, useLayoutEffect, createContext as createContext$1, createElement, useContext, useMemo, useCallback, Component, useState } from "react";
3
3
  import * as ReactDOM from "react-dom";
4
4
  import ReactDOM__default from "react-dom";
5
5
  var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
@@ -405,8 +405,8 @@ var reactJsxRuntime_development = {};
405
405
  return describeNativeComponentFrame(fn, false);
406
406
  }
407
407
  }
408
- function shouldConstruct(Component) {
409
- var prototype = Component.prototype;
408
+ function shouldConstruct(Component2) {
409
+ var prototype = Component2.prototype;
410
410
  return !!(prototype && prototype.isReactComponent);
411
411
  }
412
412
  function describeUnknownElementTypeFrameInDEV(type3, source, ownerFn) {
@@ -2340,30 +2340,30 @@ function getFunctionName(fn) {
2340
2340
  var name = match && match[1];
2341
2341
  return name || "";
2342
2342
  }
2343
- function getFunctionComponentName(Component) {
2343
+ function getFunctionComponentName(Component2) {
2344
2344
  var fallback = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "";
2345
- return Component.displayName || Component.name || getFunctionName(Component) || fallback;
2345
+ return Component2.displayName || Component2.name || getFunctionName(Component2) || fallback;
2346
2346
  }
2347
2347
  function getWrappedName(outerType, innerType, wrapperName) {
2348
2348
  var functionName = getFunctionComponentName(innerType);
2349
2349
  return outerType.displayName || (functionName !== "" ? "".concat(wrapperName, "(").concat(functionName, ")") : wrapperName);
2350
2350
  }
2351
- function getDisplayName(Component) {
2352
- if (Component == null) {
2351
+ function getDisplayName(Component2) {
2352
+ if (Component2 == null) {
2353
2353
  return void 0;
2354
2354
  }
2355
- if (typeof Component === "string") {
2356
- return Component;
2355
+ if (typeof Component2 === "string") {
2356
+ return Component2;
2357
2357
  }
2358
- if (typeof Component === "function") {
2359
- return getFunctionComponentName(Component, "Component");
2358
+ if (typeof Component2 === "function") {
2359
+ return getFunctionComponentName(Component2, "Component");
2360
2360
  }
2361
- if (_typeof$7(Component) === "object") {
2362
- switch (Component.$$typeof) {
2361
+ if (_typeof$7(Component2) === "object") {
2362
+ switch (Component2.$$typeof) {
2363
2363
  case reactIsExports.ForwardRef:
2364
- return getWrappedName(Component, Component.render, "ForwardRef");
2364
+ return getWrappedName(Component2, Component2.render, "ForwardRef");
2365
2365
  case reactIsExports.Memo:
2366
- return getWrappedName(Component, Component.type, "memo");
2366
+ return getWrappedName(Component2, Component2.type, "memo");
2367
2367
  default:
2368
2368
  return void 0;
2369
2369
  }
@@ -6169,24 +6169,24 @@ function jssPreset() {
6169
6169
  }
6170
6170
  function mergeClasses() {
6171
6171
  var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
6172
- var baseClasses = options.baseClasses, newClasses = options.newClasses, Component = options.Component;
6172
+ var baseClasses = options.baseClasses, newClasses = options.newClasses, Component2 = options.Component;
6173
6173
  if (!newClasses) {
6174
6174
  return baseClasses;
6175
6175
  }
6176
6176
  var nextClasses = _extends$6({}, baseClasses);
6177
6177
  {
6178
6178
  if (typeof newClasses === "string") {
6179
- console.error(["Material-UI: The value `".concat(newClasses, "` ") + "provided to the classes prop of ".concat(getDisplayName(Component), " is incorrect."), "You might want to use the className prop instead."].join("\n"));
6179
+ console.error(["Material-UI: The value `".concat(newClasses, "` ") + "provided to the classes prop of ".concat(getDisplayName(Component2), " is incorrect."), "You might want to use the className prop instead."].join("\n"));
6180
6180
  return baseClasses;
6181
6181
  }
6182
6182
  }
6183
6183
  Object.keys(newClasses).forEach(function(key) {
6184
6184
  {
6185
6185
  if (!baseClasses[key] && newClasses[key]) {
6186
- console.error(["Material-UI: The key `".concat(key, "` ") + "provided to the classes prop is not implemented in ".concat(getDisplayName(Component), "."), "You can only override one of the following: ".concat(Object.keys(baseClasses).join(","), ".")].join("\n"));
6186
+ console.error(["Material-UI: The key `".concat(key, "` ") + "provided to the classes prop is not implemented in ".concat(getDisplayName(Component2), "."), "You can only override one of the following: ".concat(Object.keys(baseClasses).join(","), ".")].join("\n"));
6187
6187
  }
6188
6188
  if (newClasses[key] && typeof newClasses[key] !== "string") {
6189
- console.error(["Material-UI: The key `".concat(key, "` ") + "provided to the classes prop is not valid for ".concat(getDisplayName(Component), "."), "You need to provide a non empty string instead of: ".concat(newClasses[key], ".")].join("\n"));
6189
+ console.error(["Material-UI: The key `".concat(key, "` ") + "provided to the classes prop is not valid for ".concat(getDisplayName(Component2), "."), "You need to provide a non empty string instead of: ".concat(newClasses[key], ".")].join("\n"));
6190
6190
  }
6191
6191
  }
6192
6192
  if (newClasses[key]) {
@@ -6385,7 +6385,7 @@ function getStylesCreator(stylesOrCreator) {
6385
6385
  options: {}
6386
6386
  };
6387
6387
  }
6388
- function getClasses(_ref3, classes, Component) {
6388
+ function getClasses(_ref3, classes, Component2) {
6389
6389
  var state = _ref3.state, stylesOptions = _ref3.stylesOptions;
6390
6390
  if (stylesOptions.disableGeneration) {
6391
6391
  return classes || {};
@@ -6413,7 +6413,7 @@ function getClasses(_ref3, classes, Component) {
6413
6413
  state.cacheClasses.value = mergeClasses({
6414
6414
  baseClasses: state.cacheClasses.lastJSS,
6415
6415
  newClasses: classes,
6416
- Component
6416
+ Component: Component2
6417
6417
  });
6418
6418
  }
6419
6419
  return state.cacheClasses.value;
@@ -6530,7 +6530,7 @@ function useSynchronousEffect(func, values2) {
6530
6530
  }
6531
6531
  function makeStyles$1(stylesOrCreator) {
6532
6532
  var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
6533
- var name = options.name, classNamePrefixOption = options.classNamePrefix, Component = options.Component, _options$defaultTheme = options.defaultTheme, defaultTheme2 = _options$defaultTheme === void 0 ? noopTheme$1 : _options$defaultTheme, stylesOptions2 = _objectWithoutProperties$2(options, ["name", "classNamePrefix", "Component", "defaultTheme"]);
6533
+ var name = options.name, classNamePrefixOption = options.classNamePrefix, Component2 = options.Component, _options$defaultTheme = options.defaultTheme, defaultTheme2 = _options$defaultTheme === void 0 ? noopTheme$1 : _options$defaultTheme, stylesOptions2 = _objectWithoutProperties$2(options, ["name", "classNamePrefix", "Component", "defaultTheme"]);
6534
6534
  var stylesCreator = getStylesCreator(stylesOrCreator);
6535
6535
  var classNamePrefix = name || classNamePrefixOption || "makeStyles";
6536
6536
  stylesCreator.options = {
@@ -6566,7 +6566,7 @@ function makeStyles$1(stylesOrCreator) {
6566
6566
  }
6567
6567
  shouldUpdate.current = true;
6568
6568
  });
6569
- var classes = getClasses(instance.current, props.classes, Component);
6569
+ var classes = getClasses(instance.current, props.classes, Component2);
6570
6570
  {
6571
6571
  React__default.useDebugValue(classes);
6572
6572
  }
@@ -6693,17 +6693,17 @@ function omit(input, fields) {
6693
6693
  });
6694
6694
  return output;
6695
6695
  }
6696
- function styled$2(Component) {
6696
+ function styled$2(Component2) {
6697
6697
  var componentCreator = function componentCreator2(style) {
6698
6698
  var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
6699
6699
  var name = options.name, stylesOptions = _objectWithoutProperties$2(options, ["name"]);
6700
- if (Component === void 0) {
6700
+ if (Component2 === void 0) {
6701
6701
  throw new Error(["You are calling styled(Component)(style) with an undefined component.", "You may have forgotten to import it."].join("\n"));
6702
6702
  }
6703
6703
  var classNamePrefix = name;
6704
6704
  {
6705
6705
  if (!name) {
6706
- var displayName = getDisplayName(Component);
6706
+ var displayName = getDisplayName(Component2);
6707
6707
  if (displayName !== void 0) {
6708
6708
  classNamePrefix = displayName;
6709
6709
  }
@@ -6721,8 +6721,8 @@ function styled$2(Component) {
6721
6721
  root: style
6722
6722
  };
6723
6723
  var useStyles2 = makeStyles$1(stylesOrCreator, _extends$6({
6724
- Component,
6725
- name: name || Component.displayName,
6724
+ Component: Component2,
6725
+ name: name || Component2.displayName,
6726
6726
  classNamePrefix
6727
6727
  }, stylesOptions));
6728
6728
  var filterProps;
@@ -6753,7 +6753,7 @@ function styled$2(Component) {
6753
6753
  className
6754
6754
  }, spread));
6755
6755
  }
6756
- var FinalComponent = ComponentProp || Component;
6756
+ var FinalComponent = ComponentProp || Component2;
6757
6757
  return /* @__PURE__ */ React__default.createElement(FinalComponent, _extends$6({
6758
6758
  ref,
6759
6759
  className
@@ -6789,7 +6789,7 @@ function styled$2(Component) {
6789
6789
  {
6790
6790
  StyledComponent.displayName = "Styled(".concat(classNamePrefix, ")");
6791
6791
  }
6792
- hoistNonReactStatics$1(StyledComponent, Component);
6792
+ hoistNonReactStatics$1(StyledComponent, Component2);
6793
6793
  return StyledComponent;
6794
6794
  };
6795
6795
  return componentCreator;
@@ -6840,17 +6840,17 @@ ThemeProvider.propTypes = {
6840
6840
  }
6841
6841
  var withStyles$1 = function withStyles(stylesOrCreator) {
6842
6842
  var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
6843
- return function(Component) {
6843
+ return function(Component2) {
6844
6844
  var defaultTheme2 = options.defaultTheme, _options$withTheme = options.withTheme, withTheme = _options$withTheme === void 0 ? false : _options$withTheme, name = options.name, stylesOptions = _objectWithoutProperties$2(options, ["defaultTheme", "withTheme", "name"]);
6845
6845
  {
6846
- if (Component === void 0) {
6846
+ if (Component2 === void 0) {
6847
6847
  throw new Error(["You are calling withStyles(styles)(Component) with an undefined component.", "You may have forgotten to import it."].join("\n"));
6848
6848
  }
6849
6849
  }
6850
6850
  var classNamePrefix = name;
6851
6851
  {
6852
6852
  if (!name) {
6853
- var displayName = getDisplayName(Component);
6853
+ var displayName = getDisplayName(Component2);
6854
6854
  if (displayName !== void 0) {
6855
6855
  classNamePrefix = displayName;
6856
6856
  }
@@ -6858,14 +6858,14 @@ var withStyles$1 = function withStyles(stylesOrCreator) {
6858
6858
  }
6859
6859
  var useStyles2 = makeStyles$1(stylesOrCreator, _extends$6({
6860
6860
  defaultTheme: defaultTheme2,
6861
- Component,
6862
- name: name || Component.displayName,
6861
+ Component: Component2,
6862
+ name: name || Component2.displayName,
6863
6863
  classNamePrefix
6864
6864
  }, stylesOptions));
6865
6865
  var WithStyles = /* @__PURE__ */ React__default.forwardRef(function WithStyles2(props, ref) {
6866
6866
  props.classes;
6867
6867
  var innerRef = props.innerRef, other = _objectWithoutProperties$2(props, ["classes", "innerRef"]);
6868
- var classes = useStyles2(_extends$6({}, Component.defaultProps, props));
6868
+ var classes = useStyles2(_extends$6({}, Component2.defaultProps, props));
6869
6869
  var theme;
6870
6870
  var more = other;
6871
6871
  if (typeof name === "string" || withTheme) {
@@ -6881,7 +6881,7 @@ var withStyles$1 = function withStyles(stylesOrCreator) {
6881
6881
  more.theme = theme;
6882
6882
  }
6883
6883
  }
6884
- return /* @__PURE__ */ React__default.createElement(Component, _extends$6({
6884
+ return /* @__PURE__ */ React__default.createElement(Component2, _extends$6({
6885
6885
  ref: innerRef || ref,
6886
6886
  classes
6887
6887
  }, more));
@@ -6903,11 +6903,11 @@ var withStyles$1 = function withStyles(stylesOrCreator) {
6903
6903
  })
6904
6904
  };
6905
6905
  {
6906
- WithStyles.displayName = "WithStyles(".concat(getDisplayName(Component), ")");
6906
+ WithStyles.displayName = "WithStyles(".concat(getDisplayName(Component2), ")");
6907
6907
  }
6908
- hoistNonReactStatics$1(WithStyles, Component);
6908
+ hoistNonReactStatics$1(WithStyles, Component2);
6909
6909
  {
6910
- WithStyles.Naked = Component;
6910
+ WithStyles.Naked = Component2;
6911
6911
  WithStyles.options = options;
6912
6912
  WithStyles.useStyles = useStyles2;
6913
6913
  }
@@ -6923,8 +6923,8 @@ function makeStyles(stylesOrCreator) {
6923
6923
  defaultTheme: defaultTheme$1
6924
6924
  }, options));
6925
6925
  }
6926
- var styled = function styled2(Component) {
6927
- var componentCreator = styled$2(Component);
6926
+ var styled = function styled2(Component2) {
6927
+ var componentCreator = styled$2(Component2);
6928
6928
  return function(style, options) {
6929
6929
  return componentCreator(style, _extends$6({
6930
6930
  defaultTheme: defaultTheme$1
@@ -7023,8 +7023,8 @@ var styles$t = function styles(theme) {
7023
7023
  };
7024
7024
  };
7025
7025
  var SvgIcon = /* @__PURE__ */ React$6.forwardRef(function SvgIcon2(props, ref) {
7026
- var children2 = props.children, classes = props.classes, className = props.className, _props$color = props.color, color2 = _props$color === void 0 ? "inherit" : _props$color, _props$component = props.component, Component = _props$component === void 0 ? "svg" : _props$component, _props$fontSize = props.fontSize, fontSize2 = _props$fontSize === void 0 ? "medium" : _props$fontSize, htmlColor = props.htmlColor, titleAccess = props.titleAccess, _props$viewBox = props.viewBox, viewBox = _props$viewBox === void 0 ? "0 0 24 24" : _props$viewBox, other = _objectWithoutProperties$2(props, ["children", "classes", "className", "color", "component", "fontSize", "htmlColor", "titleAccess", "viewBox"]);
7027
- return /* @__PURE__ */ React$6.createElement(Component, _extends$6({
7026
+ var children2 = props.children, classes = props.classes, className = props.className, _props$color = props.color, color2 = _props$color === void 0 ? "inherit" : _props$color, _props$component = props.component, Component2 = _props$component === void 0 ? "svg" : _props$component, _props$fontSize = props.fontSize, fontSize2 = _props$fontSize === void 0 ? "medium" : _props$fontSize, htmlColor = props.htmlColor, titleAccess = props.titleAccess, _props$viewBox = props.viewBox, viewBox = _props$viewBox === void 0 ? "0 0 24 24" : _props$viewBox, other = _objectWithoutProperties$2(props, ["children", "classes", "className", "color", "component", "fontSize", "htmlColor", "titleAccess", "viewBox"]);
7027
+ return /* @__PURE__ */ React$6.createElement(Component2, _extends$6({
7028
7028
  className: clsx(classes.root, className, color2 !== "inherit" && classes["color".concat(capitalize$1(color2))], fontSize2 !== "default" && fontSize2 !== "medium" && classes["fontSize".concat(capitalize$1(fontSize2))]),
7029
7029
  focusable: "false",
7030
7030
  viewBox,
@@ -7101,16 +7101,16 @@ const SvgIcon$1 = withStyles2(styles$t, {
7101
7101
  name: "MuiSvgIcon"
7102
7102
  })(SvgIcon);
7103
7103
  function createSvgIcon(path, displayName) {
7104
- var Component = function Component2(props, ref) {
7104
+ var Component2 = function Component3(props, ref) {
7105
7105
  return /* @__PURE__ */ React__default.createElement(SvgIcon$1, _extends$6({
7106
7106
  ref
7107
7107
  }, props), path);
7108
7108
  };
7109
7109
  {
7110
- Component.displayName = "".concat(displayName, "Icon");
7110
+ Component2.displayName = "".concat(displayName, "Icon");
7111
7111
  }
7112
- Component.muiName = SvgIcon$1.muiName;
7113
- return /* @__PURE__ */ React__default.memo(/* @__PURE__ */ React__default.forwardRef(Component));
7112
+ Component2.muiName = SvgIcon$1.muiName;
7113
+ return /* @__PURE__ */ React__default.memo(/* @__PURE__ */ React__default.forwardRef(Component2));
7114
7114
  }
7115
7115
  function debounce$2(func) {
7116
7116
  var wait = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 166;
@@ -7895,20 +7895,20 @@ var TransitionGroup = /* @__PURE__ */ function(_React$Component) {
7895
7895
  }
7896
7896
  };
7897
7897
  _proto.render = function render() {
7898
- var _this$props = this.props, Component = _this$props.component, childFactory2 = _this$props.childFactory, props = _objectWithoutPropertiesLoose$4(_this$props, ["component", "childFactory"]);
7898
+ var _this$props = this.props, Component2 = _this$props.component, childFactory2 = _this$props.childFactory, props = _objectWithoutPropertiesLoose$4(_this$props, ["component", "childFactory"]);
7899
7899
  var contextValue = this.state.contextValue;
7900
7900
  var children2 = values(this.state.children).map(childFactory2);
7901
7901
  delete props.appear;
7902
7902
  delete props.enter;
7903
7903
  delete props.exit;
7904
- if (Component === null) {
7904
+ if (Component2 === null) {
7905
7905
  return /* @__PURE__ */ React__default.createElement(TransitionGroupContext.Provider, {
7906
7906
  value: contextValue
7907
7907
  }, children2);
7908
7908
  }
7909
7909
  return /* @__PURE__ */ React__default.createElement(TransitionGroupContext.Provider, {
7910
7910
  value: contextValue
7911
- }, /* @__PURE__ */ React__default.createElement(Component, props, children2));
7911
+ }, /* @__PURE__ */ React__default.createElement(Component2, props, children2));
7912
7912
  };
7913
7913
  return TransitionGroup2;
7914
7914
  }(React__default.Component);
@@ -8002,8 +8002,8 @@ var styles$s = function styles2(theme) {
8002
8002
  }, elevations);
8003
8003
  };
8004
8004
  var Paper = /* @__PURE__ */ React$6.forwardRef(function Paper2(props, ref) {
8005
- var classes = props.classes, className = props.className, _props$component = props.component, Component = _props$component === void 0 ? "div" : _props$component, _props$square = props.square, square = _props$square === void 0 ? false : _props$square, _props$elevation = props.elevation, elevation = _props$elevation === void 0 ? 1 : _props$elevation, _props$variant = props.variant, variant = _props$variant === void 0 ? "elevation" : _props$variant, other = _objectWithoutProperties$2(props, ["classes", "className", "component", "square", "elevation", "variant"]);
8006
- return /* @__PURE__ */ React$6.createElement(Component, _extends$6({
8005
+ var classes = props.classes, className = props.className, _props$component = props.component, Component2 = _props$component === void 0 ? "div" : _props$component, _props$square = props.square, square = _props$square === void 0 ? false : _props$square, _props$elevation = props.elevation, elevation = _props$elevation === void 0 ? 1 : _props$elevation, _props$variant = props.variant, variant = _props$variant === void 0 ? "elevation" : _props$variant, other = _objectWithoutProperties$2(props, ["classes", "className", "component", "square", "elevation", "variant"]);
8006
+ return /* @__PURE__ */ React$6.createElement(Component2, _extends$6({
8007
8007
  className: clsx(classes.root, className, variant === "outlined" ? classes.outlined : classes["elevation".concat(elevation)], !square && classes.rounded),
8008
8008
  ref
8009
8009
  }, other));
@@ -9141,8 +9141,8 @@ var defaultVariantMapping = {
9141
9141
  };
9142
9142
  var Typography = /* @__PURE__ */ React$6.forwardRef(function Typography2(props, ref) {
9143
9143
  var _props$align = props.align, align = _props$align === void 0 ? "inherit" : _props$align, classes = props.classes, className = props.className, _props$color = props.color, color2 = _props$color === void 0 ? "initial" : _props$color, component = props.component, _props$display = props.display, display2 = _props$display === void 0 ? "initial" : _props$display, _props$gutterBottom = props.gutterBottom, gutterBottom = _props$gutterBottom === void 0 ? false : _props$gutterBottom, _props$noWrap = props.noWrap, noWrap = _props$noWrap === void 0 ? false : _props$noWrap, _props$paragraph = props.paragraph, paragraph = _props$paragraph === void 0 ? false : _props$paragraph, _props$variant = props.variant, variant = _props$variant === void 0 ? "body1" : _props$variant, _props$variantMapping = props.variantMapping, variantMapping = _props$variantMapping === void 0 ? defaultVariantMapping : _props$variantMapping, other = _objectWithoutProperties$2(props, ["align", "classes", "className", "color", "component", "display", "gutterBottom", "noWrap", "paragraph", "variant", "variantMapping"]);
9144
- var Component = component || (paragraph ? "p" : variantMapping[variant] || defaultVariantMapping[variant]) || "span";
9145
- return /* @__PURE__ */ React$6.createElement(Component, _extends$6({
9144
+ var Component2 = component || (paragraph ? "p" : variantMapping[variant] || defaultVariantMapping[variant]) || "span";
9145
+ return /* @__PURE__ */ React$6.createElement(Component2, _extends$6({
9146
9146
  className: clsx(classes.root, className, variant !== "inherit" && classes[variant], color2 !== "initial" && classes["color".concat(capitalize$1(color2))], noWrap && classes.noWrap, gutterBottom && classes.gutterBottom, paragraph && classes.paragraph, align !== "inherit" && classes["align".concat(capitalize$1(align))], display2 !== "initial" && classes["display".concat(capitalize$1(display2))]),
9147
9147
  ref
9148
9148
  }, other));
@@ -11795,7 +11795,7 @@ var styles$d = {
11795
11795
  }
11796
11796
  };
11797
11797
  var List = /* @__PURE__ */ React$6.forwardRef(function List2(props, ref) {
11798
- var children2 = props.children, classes = props.classes, className = props.className, _props$component = props.component, Component = _props$component === void 0 ? "ul" : _props$component, _props$dense = props.dense, dense = _props$dense === void 0 ? false : _props$dense, _props$disablePadding = props.disablePadding, disablePadding = _props$disablePadding === void 0 ? false : _props$disablePadding, subheader = props.subheader, other = _objectWithoutProperties$2(props, ["children", "classes", "className", "component", "dense", "disablePadding", "subheader"]);
11798
+ var children2 = props.children, classes = props.classes, className = props.className, _props$component = props.component, Component2 = _props$component === void 0 ? "ul" : _props$component, _props$dense = props.dense, dense = _props$dense === void 0 ? false : _props$dense, _props$disablePadding = props.disablePadding, disablePadding = _props$disablePadding === void 0 ? false : _props$disablePadding, subheader = props.subheader, other = _objectWithoutProperties$2(props, ["children", "classes", "className", "component", "dense", "disablePadding", "subheader"]);
11799
11799
  var context = React$6.useMemo(function() {
11800
11800
  return {
11801
11801
  dense
@@ -11803,7 +11803,7 @@ var List = /* @__PURE__ */ React$6.forwardRef(function List2(props, ref) {
11803
11803
  }, [dense]);
11804
11804
  return /* @__PURE__ */ React$6.createElement(ListContext$1.Provider, {
11805
11805
  value: context
11806
- }, /* @__PURE__ */ React$6.createElement(Component, _extends$6({
11806
+ }, /* @__PURE__ */ React$6.createElement(Component2, _extends$6({
11807
11807
  className: clsx(classes.root, className, dense && classes.dense, !disablePadding && classes.padding, subheader && classes.subheader),
11808
11808
  ref
11809
11809
  }, other), subheader, children2));
@@ -11950,17 +11950,17 @@ var ListItem = /* @__PURE__ */ React$6.forwardRef(function ListItem2(props, ref)
11950
11950
  className: clsx(classes.root, className, childContext.dense && classes.dense, !disableGutters && classes.gutters, divider && classes.divider, disabled && classes.disabled, button && classes.button, alignItems2 !== "center" && classes.alignItemsFlexStart, hasSecondaryAction && classes.secondaryAction, selected && classes.selected),
11951
11951
  disabled
11952
11952
  }, other);
11953
- var Component = componentProp || "li";
11953
+ var Component2 = componentProp || "li";
11954
11954
  if (button) {
11955
11955
  componentProps.component = componentProp || "div";
11956
11956
  componentProps.focusVisibleClassName = clsx(classes.focusVisible, focusVisibleClassName);
11957
- Component = ButtonBase$1;
11957
+ Component2 = ButtonBase$1;
11958
11958
  }
11959
11959
  if (hasSecondaryAction) {
11960
- Component = !componentProps.component && !componentProp ? "div" : Component;
11960
+ Component2 = !componentProps.component && !componentProp ? "div" : Component2;
11961
11961
  if (ContainerComponent === "li") {
11962
- if (Component === "li") {
11963
- Component = "div";
11962
+ if (Component2 === "li") {
11963
+ Component2 = "div";
11964
11964
  } else if (componentProps.component === "li") {
11965
11965
  componentProps.component = "div";
11966
11966
  }
@@ -11970,11 +11970,11 @@ var ListItem = /* @__PURE__ */ React$6.forwardRef(function ListItem2(props, ref)
11970
11970
  }, /* @__PURE__ */ React$6.createElement(ContainerComponent, _extends$6({
11971
11971
  className: clsx(classes.container, ContainerClassName),
11972
11972
  ref: handleRef
11973
- }, ContainerProps), /* @__PURE__ */ React$6.createElement(Component, componentProps, children2), children2.pop()));
11973
+ }, ContainerProps), /* @__PURE__ */ React$6.createElement(Component2, componentProps, children2), children2.pop()));
11974
11974
  }
11975
11975
  return /* @__PURE__ */ React$6.createElement(ListContext$1.Provider, {
11976
11976
  value: childContext
11977
- }, /* @__PURE__ */ React$6.createElement(Component, _extends$6({
11977
+ }, /* @__PURE__ */ React$6.createElement(Component2, _extends$6({
11978
11978
  ref: handleRef
11979
11979
  }, componentProps), children2));
11980
11980
  });
@@ -16052,7 +16052,7 @@ var styles$4 = function styles16(theme) {
16052
16052
  };
16053
16053
  var defaultComponent$2 = "table";
16054
16054
  var Table = /* @__PURE__ */ React$6.forwardRef(function Table2(props, ref) {
16055
- var classes = props.classes, className = props.className, _props$component = props.component, Component = _props$component === void 0 ? defaultComponent$2 : _props$component, _props$padding = props.padding, padding2 = _props$padding === void 0 ? "normal" : _props$padding, _props$size = props.size, size = _props$size === void 0 ? "medium" : _props$size, _props$stickyHeader = props.stickyHeader, stickyHeader = _props$stickyHeader === void 0 ? false : _props$stickyHeader, other = _objectWithoutProperties$2(props, ["classes", "className", "component", "padding", "size", "stickyHeader"]);
16055
+ var classes = props.classes, className = props.className, _props$component = props.component, Component2 = _props$component === void 0 ? defaultComponent$2 : _props$component, _props$padding = props.padding, padding2 = _props$padding === void 0 ? "normal" : _props$padding, _props$size = props.size, size = _props$size === void 0 ? "medium" : _props$size, _props$stickyHeader = props.stickyHeader, stickyHeader = _props$stickyHeader === void 0 ? false : _props$stickyHeader, other = _objectWithoutProperties$2(props, ["classes", "className", "component", "padding", "size", "stickyHeader"]);
16056
16056
  var table = React$6.useMemo(function() {
16057
16057
  return {
16058
16058
  padding: padding2,
@@ -16062,8 +16062,8 @@ var Table = /* @__PURE__ */ React$6.forwardRef(function Table2(props, ref) {
16062
16062
  }, [padding2, size, stickyHeader]);
16063
16063
  return /* @__PURE__ */ React$6.createElement(TableContext$1.Provider, {
16064
16064
  value: table
16065
- }, /* @__PURE__ */ React$6.createElement(Component, _extends$6({
16066
- role: Component === defaultComponent$2 ? null : "table",
16065
+ }, /* @__PURE__ */ React$6.createElement(Component2, _extends$6({
16066
+ role: Component2 === defaultComponent$2 ? null : "table",
16067
16067
  ref,
16068
16068
  className: clsx(classes.root, className, stickyHeader && classes.stickyHeader)
16069
16069
  }, other)));
@@ -16127,13 +16127,13 @@ var tablelvl2 = {
16127
16127
  };
16128
16128
  var defaultComponent$1 = "tbody";
16129
16129
  var TableBody = /* @__PURE__ */ React$6.forwardRef(function TableBody2(props, ref) {
16130
- var classes = props.classes, className = props.className, _props$component = props.component, Component = _props$component === void 0 ? defaultComponent$1 : _props$component, other = _objectWithoutProperties$2(props, ["classes", "className", "component"]);
16130
+ var classes = props.classes, className = props.className, _props$component = props.component, Component2 = _props$component === void 0 ? defaultComponent$1 : _props$component, other = _objectWithoutProperties$2(props, ["classes", "className", "component"]);
16131
16131
  return /* @__PURE__ */ React$6.createElement(Tablelvl2Context$1.Provider, {
16132
16132
  value: tablelvl2
16133
- }, /* @__PURE__ */ React$6.createElement(Component, _extends$6({
16133
+ }, /* @__PURE__ */ React$6.createElement(Component2, _extends$6({
16134
16134
  className: clsx(classes.root, className),
16135
16135
  ref,
16136
- role: Component === defaultComponent$1 ? null : "rowgroup"
16136
+ role: Component2 === defaultComponent$1 ? null : "rowgroup"
16137
16137
  }, other)));
16138
16138
  });
16139
16139
  TableBody.propTypes = {
@@ -16256,12 +16256,12 @@ var TableCell = /* @__PURE__ */ React$6.forwardRef(function TableCell2(props, re
16256
16256
  var tablelvl22 = React$6.useContext(Tablelvl2Context$1);
16257
16257
  var isHeadCell = tablelvl22 && tablelvl22.variant === "head";
16258
16258
  var role;
16259
- var Component;
16259
+ var Component2;
16260
16260
  if (component) {
16261
- Component = component;
16261
+ Component2 = component;
16262
16262
  role = isHeadCell ? "columnheader" : "cell";
16263
16263
  } else {
16264
- Component = isHeadCell ? "th" : "td";
16264
+ Component2 = isHeadCell ? "th" : "td";
16265
16265
  }
16266
16266
  var scope = scopeProp;
16267
16267
  if (!scope && isHeadCell) {
@@ -16274,7 +16274,7 @@ var TableCell = /* @__PURE__ */ React$6.forwardRef(function TableCell2(props, re
16274
16274
  if (sortDirection) {
16275
16275
  ariaSort = sortDirection === "asc" ? "ascending" : "descending";
16276
16276
  }
16277
- return /* @__PURE__ */ React$6.createElement(Component, _extends$6({
16277
+ return /* @__PURE__ */ React$6.createElement(Component2, _extends$6({
16278
16278
  ref,
16279
16279
  className: clsx(classes.root, classes[variant], className, align !== "inherit" && classes["align".concat(capitalize$1(align))], padding2 !== "normal" && classes["padding".concat(capitalize$1(padding2))], size !== "medium" && classes["size".concat(capitalize$1(size))], variant === "head" && table && table.stickyHeader && classes.stickyHeader),
16280
16280
  "aria-sort": ariaSort,
@@ -16349,8 +16349,8 @@ var styles$1 = {
16349
16349
  }
16350
16350
  };
16351
16351
  var TableContainer = /* @__PURE__ */ React$6.forwardRef(function TableContainer2(props, ref) {
16352
- var classes = props.classes, className = props.className, _props$component = props.component, Component = _props$component === void 0 ? "div" : _props$component, other = _objectWithoutProperties$2(props, ["classes", "className", "component"]);
16353
- return /* @__PURE__ */ React$6.createElement(Component, _extends$6({
16352
+ var classes = props.classes, className = props.className, _props$component = props.component, Component2 = _props$component === void 0 ? "div" : _props$component, other = _objectWithoutProperties$2(props, ["classes", "className", "component"]);
16353
+ return /* @__PURE__ */ React$6.createElement(Component2, _extends$6({
16354
16354
  ref,
16355
16355
  className: clsx(classes.root, className)
16356
16356
  }, other));
@@ -16406,15 +16406,15 @@ var styles18 = function styles19(theme) {
16406
16406
  };
16407
16407
  var defaultComponent = "tr";
16408
16408
  var TableRow = /* @__PURE__ */ React$6.forwardRef(function TableRow2(props, ref) {
16409
- var classes = props.classes, className = props.className, _props$component = props.component, Component = _props$component === void 0 ? defaultComponent : _props$component, _props$hover = props.hover, hover = _props$hover === void 0 ? false : _props$hover, _props$selected = props.selected, selected = _props$selected === void 0 ? false : _props$selected, other = _objectWithoutProperties$2(props, ["classes", "className", "component", "hover", "selected"]);
16409
+ var classes = props.classes, className = props.className, _props$component = props.component, Component2 = _props$component === void 0 ? defaultComponent : _props$component, _props$hover = props.hover, hover = _props$hover === void 0 ? false : _props$hover, _props$selected = props.selected, selected = _props$selected === void 0 ? false : _props$selected, other = _objectWithoutProperties$2(props, ["classes", "className", "component", "hover", "selected"]);
16410
16410
  var tablelvl22 = React$6.useContext(Tablelvl2Context$1);
16411
- return /* @__PURE__ */ React$6.createElement(Component, _extends$6({
16411
+ return /* @__PURE__ */ React$6.createElement(Component2, _extends$6({
16412
16412
  ref,
16413
16413
  className: clsx(classes.root, className, tablelvl22 && {
16414
16414
  "head": classes.head,
16415
16415
  "footer": classes.footer
16416
16416
  }[tablelvl22.variant], hover && classes.hover, selected && classes.selected),
16417
- role: Component === defaultComponent ? null : "row"
16417
+ role: Component2 === defaultComponent ? null : "row"
16418
16418
  }, other));
16419
16419
  });
16420
16420
  TableRow.propTypes = {
@@ -25395,6 +25395,13 @@ const OrderedLogLevels = [
25395
25395
  ];
25396
25396
  const DEFAULT_DEBUG_MODE = false;
25397
25397
  const DEFAULT_LOG_LEVEL = LogLevel.TRACE;
25398
+ let GLOBAL_DEBUG_MODE = DEFAULT_DEBUG_MODE;
25399
+ function getDebugMode() {
25400
+ return GLOBAL_DEBUG_MODE;
25401
+ }
25402
+ function setDebugMode(value) {
25403
+ GLOBAL_DEBUG_MODE = value;
25404
+ }
25398
25405
  function getLogLevel() {
25399
25406
  return log$3.getLevel();
25400
25407
  }
@@ -28061,8 +28068,13 @@ const ViewType$1 = {
28061
28068
  FEATURE_VALUE_HISTOGRAM: "featureValueHistogram",
28062
28069
  DOT_PLOT: "dotPlot",
28063
28070
  FEATURE_BAR_PLOT: "featureBarPlot",
28071
+ VOLCANO_PLOT: "volcanoPlot",
28072
+ OBS_SET_COMPOSITION_BAR_PLOT: "obsSetCompositionBarPlot",
28073
+ FEATURE_SET_ENRICHMENT_BAR_PLOT: "featureSetEnrichmentBarPlot",
28064
28074
  BIOMARKER_SELECT: "biomarkerSelect",
28075
+ COMPARATIVE_HEADING: "comparativeHeading",
28065
28076
  LINK_CONTROLLER: "linkController",
28077
+ NEUROGLANCER: "neuroglancer",
28066
28078
  DUAL_SCATTERPLOT: "dualScatterplot",
28067
28079
  TREEMAP: "treemap"
28068
28080
  };
@@ -28080,7 +28092,11 @@ const DataType$1 = {
28080
28092
  OBS_POINTS: "obsPoints",
28081
28093
  OBS_LOCATIONS: "obsLocations",
28082
28094
  SAMPLE_SETS: "sampleSets",
28083
- SAMPLE_EDGES: "sampleEdges"
28095
+ SAMPLE_EDGES: "sampleEdges",
28096
+ COMPARISON_METADATA: "comparisonMetadata",
28097
+ FEATURE_STATS: "featureStats",
28098
+ FEATURE_SET_STATS: "featureSetStats",
28099
+ OBS_SET_STATS: "obsSetStats"
28084
28100
  };
28085
28101
  const AsyncFunctionType = {
28086
28102
  // String input (rather than Node input)
@@ -28141,6 +28157,10 @@ const FileType$1 = {
28141
28157
  FEATURE_LABELS_ANNDATA_ZARR: "featureLabels.anndata.zarr",
28142
28158
  SAMPLE_EDGES_ANNDATA_ZARR: "sampleEdges.anndata.zarr",
28143
28159
  SAMPLE_SETS_ANNDATA_ZARR: "sampleSets.anndata.zarr",
28160
+ COMPARISON_METADATA_ANNDATA_ZARR: "comparisonMetadata.anndata.zarr",
28161
+ COMPARATIVE_FEATURE_STATS_ANNDATA_ZARR: "comparativeFeatureStats.anndata.zarr",
28162
+ COMPARATIVE_FEATURE_SET_STATS_ANNDATA_ZARR: "comparativeFeatureSetStats.anndata.zarr",
28163
+ COMPARATIVE_OBS_SET_STATS_ANNDATA_ZARR: "comparativeObsSetStats.anndata.zarr",
28144
28164
  // AnnData - zipped
28145
28165
  OBS_FEATURE_MATRIX_ANNDATA_ZARR_ZIP: "obsFeatureMatrix.anndata.zarr.zip",
28146
28166
  OBS_FEATURE_COLUMNS_ANNDATA_ZARR_ZIP: "obsFeatureColumns.anndata.zarr.zip",
@@ -28154,6 +28174,10 @@ const FileType$1 = {
28154
28174
  FEATURE_LABELS_ANNDATA_ZARR_ZIP: "featureLabels.anndata.zarr.zip",
28155
28175
  SAMPLE_EDGES_ANNDATA_ZARR_ZIP: "sampleEdges.anndata.zarr.zip",
28156
28176
  SAMPLE_SETS_ANNDATA_ZARR_ZIP: "sampleSets.anndata.zarr.zip",
28177
+ COMPARISON_METADATA_ANNDATA_ZARR_ZIP: "comparisonMetadata.anndata.zarr.zip",
28178
+ COMPARATIVE_FEATURE_STATS_ANNDATA_ZARR_ZIP: "comparativeFeatureStats.anndata.zarr.zip",
28179
+ COMPARATIVE_FEATURE_SET_STATS_ANNDATA_ZARR_ZIP: "comparativeFeatureSetStats.anndata.zarr.zip",
28180
+ COMPARATIVE_OBS_SET_STATS_ANNDATA_ZARR_ZIP: "comparativeObsSetStats.anndata.zarr.zip",
28157
28181
  // AnnData - h5ad via reference spec
28158
28182
  OBS_FEATURE_MATRIX_ANNDATA_H5AD: "obsFeatureMatrix.anndata.h5ad",
28159
28183
  OBS_FEATURE_COLUMNS_ANNDATA_H5AD: "obsFeatureColumns.anndata.h5ad",
@@ -28167,6 +28191,10 @@ const FileType$1 = {
28167
28191
  FEATURE_LABELS_ANNDATA_H5AD: "featureLabels.anndata.h5ad",
28168
28192
  SAMPLE_EDGES_ANNDATA_H5AD: "sampleEdges.anndata.h5ad",
28169
28193
  SAMPLE_SETS_ANNDATA_H5AD: "sampleSets.anndata.h5ad",
28194
+ COMPARISON_METADATA_ANNDATA_H5AD: "comparisonMetadata.anndata.h5ad",
28195
+ COMPARATIVE_FEATURE_STATS_ANNDATA_H5AD: "comparativeFeatureStats.anndata.h5ad",
28196
+ COMPARATIVE_FEATURE_SET_STATS_ANNDATA_H5AD: "comparativeFeatureSetStats.anndata.h5ad",
28197
+ COMPARATIVE_OBS_SET_STATS_ANNDATA_H5AD: "comparativeObsSetStats.anndata.h5ad",
28170
28198
  // SpatialData
28171
28199
  IMAGE_SPATIALDATA_ZARR: "image.spatialdata.zarr",
28172
28200
  LABELS_SPATIALDATA_ZARR: "labels.spatialdata.zarr",
@@ -28365,6 +28393,11 @@ const CoordinationType$1 = {
28365
28393
  EMBEDDING_CONTOUR_PERCENTILES: "embeddingContourPercentiles",
28366
28394
  CONTOUR_COLOR_ENCODING: "contourColorEncoding",
28367
28395
  CONTOUR_COLOR: "contourColor",
28396
+ // For volcano plot:
28397
+ FEATURE_POINT_SIGNIFICANCE_THRESHOLD: "featurePointSignificanceThreshold",
28398
+ FEATURE_LABEL_SIGNIFICANCE_THRESHOLD: "featureLabelSignificanceThreshold",
28399
+ FEATURE_POINT_FOLD_CHANGE_THRESHOLD: "featurePointFoldChangeThreshold",
28400
+ FEATURE_LABEL_FOLD_CHANGE_THRESHOLD: "featureLabelFoldChangeThreshold",
28368
28401
  // Treemap
28369
28402
  HIERARCHY_LEVELS: "hierarchyLevels"
28370
28403
  };
@@ -28417,6 +28450,22 @@ const DATA_TYPE_COORDINATION_VALUE_USAGE = {
28417
28450
  [DataType$1.SAMPLE_EDGES]: [
28418
28451
  CoordinationType$1.OBS_TYPE,
28419
28452
  CoordinationType$1.SAMPLE_TYPE
28453
+ ],
28454
+ [DataType$1.COMPARISON_METADATA]: [
28455
+ CoordinationType$1.OBS_TYPE,
28456
+ CoordinationType$1.SAMPLE_TYPE
28457
+ ],
28458
+ [DataType$1.FEATURE_STATS]: [
28459
+ CoordinationType$1.FEATURE_TYPE
28460
+ // TODO: should sampleType, obsSetSelection, and/or sampleSetSelection be used here?
28461
+ ],
28462
+ [DataType$1.FEATURE_SET_STATS]: [
28463
+ CoordinationType$1.FEATURE_TYPE
28464
+ // TODO: should sampleType, obsSetSelection, and/or sampleSetSelection be used here?
28465
+ ],
28466
+ [DataType$1.OBS_SET_STATS]: [
28467
+ CoordinationType$1.OBS_TYPE
28468
+ // TODO: should sampleType, obsSetSelection, and/or sampleSetSelection be used here?
28420
28469
  ]
28421
28470
  };
28422
28471
  const AUTO_INDEPENDENT_COORDINATION_TYPES = [
@@ -28435,10 +28484,10 @@ const AUTO_INDEPENDENT_COORDINATION_TYPES = [
28435
28484
  CoordinationType$1.EMBEDDING_OBS_OPACITY
28436
28485
  ];
28437
28486
  const note = "This file is autogenerated by .changeset/post-changelog.mjs.";
28438
- const version = "3.5.7";
28439
- const date = "2025-02-19";
28487
+ const version = "3.5.9";
28488
+ const date = "2025-03-12";
28440
28489
  const branch = "changeset-release/main";
28441
- const hash = "a4bc3a6a";
28490
+ const hash = "7ec4174e";
28442
28491
  const META_VERSION = {
28443
28492
  note,
28444
28493
  version,
@@ -28762,6 +28811,42 @@ const annDataConvenienceObsEmbeddingItem = z.object({
28762
28811
  dims: z.array(z.number()).optional(),
28763
28812
  embeddingType: z.string()
28764
28813
  });
28814
+ z.object({
28815
+ path: z.string().describe("Path to the comparison metadata, such as /uns/comparison_metadata")
28816
+ });
28817
+ z.object({
28818
+ // TODO: implement a featureStats.anndata.zarr loader
28819
+ // which does not depend on comparisonMetadata
28820
+ // (instead, would point directly to the root of
28821
+ // the dataframe containing a set of diff exp results)
28822
+ // path: z.string().describe('Path to the dataframe containing the results.'),
28823
+ metadataPath: z.string().describe("Path to the comparison metadata."),
28824
+ indexColumn: z.string().optional().describe("Provide a column to use for the feature index, if different than the default dataframe index."),
28825
+ pValueColumn: z.string(),
28826
+ foldChangeColumn: z.string(),
28827
+ pValueTransformation: z.enum(["minuslog10"]).optional(),
28828
+ pValueAdjusted: z.boolean().optional(),
28829
+ foldChangeTransformation: z.enum(["log2"]).optional()
28830
+ });
28831
+ z.object({
28832
+ metadataPath: z.string().describe("Path to the comparison metadata."),
28833
+ indexColumn: z.string().optional().describe("Provide a column to use for the feature set index, if different than the default dataframe index."),
28834
+ termColumn: z.string().optional(),
28835
+ pValueColumn: z.string(),
28836
+ pValueAdjusted: z.boolean().optional(),
28837
+ analysisType: z.string().optional().describe("Optionally, provide an analysis_type name. By default, pertpy_hypergeometric.")
28838
+ });
28839
+ z.object({
28840
+ metadataPath: z.string().describe("Path to the comparison metadata."),
28841
+ indexColumn: z.string().optional().describe("Provide a column to use for the obs set index, if different than the default dataframe index."),
28842
+ interceptExpectedSampleColumn: z.string().describe("If we had a new sample (with no active covariates) with a total number of cells equal to the mean sampling depth of the dataset, then this distribution over the cell types would be most likely."),
28843
+ effectExpectedSampleColumn: z.string().describe("If we had a new sample (with no active covariates) with a total number of cells equal to the mean sampling depth of the dataset, then this distribution over the cell types would be most likely."),
28844
+ foldChangeColumn: z.string().describe("The log-fold change is then calculated between this expected sample and the expected sample with no active covariates from the intercept section."),
28845
+ foldChangeTransformation: z.enum(["log2"]).optional(),
28846
+ isCredibleEffectColumn: z.string().describe("Column which annotates effects as being credible or not (boolean)."),
28847
+ covariateColumn: z.string().describe("Column which defines the covariate used in the analysis."),
28848
+ analysisType: z.string().optional().describe("Optionally, provide an analysis_type name. By default, sccoda_df.")
28849
+ });
28765
28850
  const annDataObsLabels = annDataObs;
28766
28851
  const annDataFeatureLabels = annDataObs;
28767
28852
  const annDataSampleEdges = annDataObs;
@@ -36856,6 +36941,101 @@ function WidthProvideRGL(ComposedComponent) {
36856
36941
  module2.exports.WidthProvider = WidthProvider.default;
36857
36942
  })(reactGridLayoutWithLodash);
36858
36943
  var reactGridLayoutWithLodashExports = reactGridLayoutWithLodash.exports;
36944
+ const ErrorBoundaryContext = createContext$1(null);
36945
+ const initialState = {
36946
+ didCatch: false,
36947
+ error: null
36948
+ };
36949
+ class ErrorBoundary extends Component {
36950
+ constructor(props) {
36951
+ super(props);
36952
+ this.resetErrorBoundary = this.resetErrorBoundary.bind(this);
36953
+ this.state = initialState;
36954
+ }
36955
+ static getDerivedStateFromError(error) {
36956
+ return {
36957
+ didCatch: true,
36958
+ error
36959
+ };
36960
+ }
36961
+ resetErrorBoundary() {
36962
+ const {
36963
+ error
36964
+ } = this.state;
36965
+ if (error !== null) {
36966
+ var _this$props$onReset, _this$props;
36967
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
36968
+ args[_key] = arguments[_key];
36969
+ }
36970
+ (_this$props$onReset = (_this$props = this.props).onReset) === null || _this$props$onReset === void 0 ? void 0 : _this$props$onReset.call(_this$props, {
36971
+ args,
36972
+ reason: "imperative-api"
36973
+ });
36974
+ this.setState(initialState);
36975
+ }
36976
+ }
36977
+ componentDidCatch(error, info) {
36978
+ var _this$props$onError, _this$props2;
36979
+ (_this$props$onError = (_this$props2 = this.props).onError) === null || _this$props$onError === void 0 ? void 0 : _this$props$onError.call(_this$props2, error, info);
36980
+ }
36981
+ componentDidUpdate(prevProps, prevState) {
36982
+ const {
36983
+ didCatch
36984
+ } = this.state;
36985
+ const {
36986
+ resetKeys
36987
+ } = this.props;
36988
+ if (didCatch && prevState.error !== null && hasArrayChanged(prevProps.resetKeys, resetKeys)) {
36989
+ var _this$props$onReset2, _this$props3;
36990
+ (_this$props$onReset2 = (_this$props3 = this.props).onReset) === null || _this$props$onReset2 === void 0 ? void 0 : _this$props$onReset2.call(_this$props3, {
36991
+ next: resetKeys,
36992
+ prev: prevProps.resetKeys,
36993
+ reason: "keys"
36994
+ });
36995
+ this.setState(initialState);
36996
+ }
36997
+ }
36998
+ render() {
36999
+ const {
37000
+ children: children2,
37001
+ fallbackRender,
37002
+ FallbackComponent,
37003
+ fallback
37004
+ } = this.props;
37005
+ const {
37006
+ didCatch,
37007
+ error
37008
+ } = this.state;
37009
+ let childToRender = children2;
37010
+ if (didCatch) {
37011
+ const props = {
37012
+ error,
37013
+ resetErrorBoundary: this.resetErrorBoundary
37014
+ };
37015
+ if (typeof fallbackRender === "function") {
37016
+ childToRender = fallbackRender(props);
37017
+ } else if (FallbackComponent) {
37018
+ childToRender = createElement(FallbackComponent, props);
37019
+ } else if (fallback !== void 0) {
37020
+ childToRender = fallback;
37021
+ } else {
37022
+ throw error;
37023
+ }
37024
+ }
37025
+ return createElement(ErrorBoundaryContext.Provider, {
37026
+ value: {
37027
+ didCatch,
37028
+ error,
37029
+ resetErrorBoundary: this.resetErrorBoundary
37030
+ }
37031
+ }, childToRender);
37032
+ }
37033
+ }
37034
+ function hasArrayChanged() {
37035
+ let a = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [];
37036
+ let b = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
37037
+ return a.length !== b.length || a.some((item, index) => !Object.is(item, b[index]));
37038
+ }
36859
37039
  function sum(a) {
36860
37040
  return a.reduce((x, y) => x + y, 0);
36861
37041
  }
@@ -36958,6 +37138,17 @@ function usePageModeView(uid) {
36958
37138
  const context = useContext(PageModeViewContext);
36959
37139
  return ensureComponent(context == null ? void 0 : context[uid]);
36960
37140
  }
37141
+ function FallbackForView(props) {
37142
+ const {
37143
+ error
37144
+ // Call resetErrorBoundary() to reset the error boundary and retry the render.
37145
+ // resetErrorBoundary,
37146
+ } = props;
37147
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
37148
+ /* @__PURE__ */ jsxRuntimeExports.jsx("p", { children: "A view-level error occurred." }),
37149
+ getDebugMode() ? /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { style: { color: "red" }, children: error.message }) : null
37150
+ ] });
37151
+ }
36961
37152
  const ResponsiveGridLayout = reactGridLayoutWithLodashExports.WidthProvider(reactGridLayoutWithLodashExports.Responsive);
36962
37153
  class ResponsiveHeightGridLayout extends ResponsiveGridLayout {
36963
37154
  componentDidUpdate(prevProps) {
@@ -37063,9 +37254,9 @@ function VitessceGridLayout(props) {
37063
37254
  const [layoutChildren, pageModeViews] = useMemo(() => {
37064
37255
  const gridComponentsValues = Object.values(gridComponents);
37065
37256
  const contextValue = Object.fromEntries(gridComponentsValues.map((v) => {
37066
- const Component = getComponent(v.component);
37067
- return [v.uid, () => /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: { display: "flex", flexDirection: "column", height: "100%" }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
37068
- Component,
37257
+ const Component2 = getComponent(v.component);
37258
+ return [v.uid, () => /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: { display: "flex", flexDirection: "column", height: "100%" }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ErrorBoundary, { FallbackComponent: FallbackForView, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
37259
+ Component2,
37069
37260
  {
37070
37261
  ...v.props,
37071
37262
  uuid: v.uid,
@@ -37078,15 +37269,15 @@ function VitessceGridLayout(props) {
37078
37269
  coordinationTypes,
37079
37270
  stores
37080
37271
  }
37081
- ) }, v.uid)];
37272
+ ) }) }, v.uid)];
37082
37273
  }));
37083
37274
  return [gridComponentsValues.map((v) => {
37084
- const Component = getComponent(v.component);
37275
+ const Component2 = getComponent(v.component);
37085
37276
  const removeGridComponent = () => {
37086
37277
  onRemoveComponent(v.uid);
37087
37278
  };
37088
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
37089
- Component,
37279
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(ErrorBoundary, { FallbackComponent: FallbackForView, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
37280
+ Component2,
37090
37281
  {
37091
37282
  ...v.props,
37092
37283
  uuid: v.uid,
@@ -37099,7 +37290,7 @@ function VitessceGridLayout(props) {
37099
37290
  coordinationTypes,
37100
37291
  stores
37101
37292
  }
37102
- ) }, v.uid);
37293
+ ) }) }, v.uid);
37103
37294
  }), contextValue];
37104
37295
  }, [gridComponents, getComponent, onRemoveComponent, theme]);
37105
37296
  return pageMode ? /* @__PURE__ */ jsxRuntimeExports.jsx(PageModeViewContext.Provider, { value: pageModeViews, children: children2 }) : gridLayouts && gridComponents && gridBreakpoints && gridCols && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
@@ -37605,6 +37796,25 @@ function useExpandedFeatureLabelsMap(featureType, featureLabelsMap, options) {
37605
37796
  const dataStatus = enabled ? isFetching ? STATUS.LOADING : status : STATUS.SUCCESS;
37606
37797
  return [updatedFeatureLabelsMap, dataStatus];
37607
37798
  }
37799
+ function useColumnNameMapping(loader, reverse = false) {
37800
+ return useMemo(() => {
37801
+ const result = {};
37802
+ if (loader == null ? void 0 : loader.options) {
37803
+ const optionsArray = loader.options.obsSets ? loader.options.obsSets : loader.options.sampleSets;
37804
+ optionsArray.forEach((optionObject) => {
37805
+ const { name, path } = optionObject;
37806
+ const columnName = path.split("/").at(-1);
37807
+ result[name] = columnName;
37808
+ });
37809
+ }
37810
+ if (reverse) {
37811
+ return Object.fromEntries(
37812
+ Object.entries(result).map(([k, v]) => [v, k])
37813
+ );
37814
+ }
37815
+ return result;
37816
+ }, [loader]);
37817
+ }
37608
37818
  const useVitessceContainerStyles = makeStyles((theme) => ({
37609
37819
  vitessceContainer: {
37610
37820
  position: "relative",
@@ -38374,6 +38584,7 @@ function VitS(props) {
38374
38584
  setLogLevel(logLevel);
38375
38585
  }, [logLevel]);
38376
38586
  useLayoutEffect(() => {
38587
+ setDebugMode(debugMode);
38377
38588
  }, [debugMode]);
38378
38589
  const configVersion = config2 == null ? void 0 : config2.version;
38379
38590
  const configKey = useMemo(() => {
@@ -38516,6 +38727,20 @@ function VitS(props) {
38516
38727
  }
38517
38728
  ) }) }) }) : /* @__PURE__ */ jsxRuntimeExports.jsx(StylesProvider, { generateClassName: generateClassName2, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeProvider, { theme: muiTheme[theme], children: /* @__PURE__ */ jsxRuntimeExports.jsx(Warning, { ...configOrWarning }) }) });
38518
38729
  }
38730
+ function FallbackForVitS(props) {
38731
+ const {
38732
+ error
38733
+ // Call resetErrorBoundary() to reset the error boundary and retry the render.
38734
+ // resetErrorBoundary,
38735
+ } = props;
38736
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
38737
+ /* @__PURE__ */ jsxRuntimeExports.jsx("p", { children: "Error:" }),
38738
+ /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { style: { color: "red" }, children: error.message })
38739
+ ] });
38740
+ }
38741
+ function VitSContainer(props) {
38742
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(ErrorBoundary, { FallbackComponent: FallbackForVitS, children: /* @__PURE__ */ jsxRuntimeExports.jsx(VitS, { ...props }) });
38743
+ }
38519
38744
  const ArrowDropDownIcon = createSvgIcon(/* @__PURE__ */ React$6.createElement("path", {
38520
38745
  d: "M7 10l5 5 5-5z"
38521
38746
  }), "ArrowDropDown");
@@ -39148,6 +39373,17 @@ function useNeighborhoodsData(loaders, dataset, isRequired, coordinationSetters,
39148
39373
  matchOn
39149
39374
  );
39150
39375
  }
39376
+ function useComparisonMetadata(loaders, dataset, isRequired, coordinationSetters, initialCoordinationValues, matchOn) {
39377
+ return useDataType(
39378
+ DataType$1.COMPARISON_METADATA,
39379
+ loaders,
39380
+ dataset,
39381
+ isRequired,
39382
+ coordinationSetters,
39383
+ initialCoordinationValues,
39384
+ matchOn
39385
+ );
39386
+ }
39151
39387
  function useFeatureSelection(loaders, dataset, isRequired, selection, matchOn) {
39152
39388
  const setWarning = useSetWarning();
39153
39389
  const featureQueries = useQueries({
@@ -39215,6 +39451,94 @@ function useFeatureSelection(loaders, dataset, isRequired, selection, matchOn) {
39215
39451
  }, [anyError, setWarning]);
39216
39452
  return [geneData, loadedGeneName, dataStatus];
39217
39453
  }
39454
+ function useComparativeDataType(loaders, dataset, isRequired, matchOn, volcanoOptions, dataType) {
39455
+ const setWarning = useSetWarning();
39456
+ const placeholderObject = useMemo(() => ({}), []);
39457
+ const statsQuery = useQuery({
39458
+ // TODO: only enable once `loaders` is available?
39459
+ structuralSharing: false,
39460
+ placeholderData: placeholderObject,
39461
+ // Include the hook name in the queryKey to prevent the case in which an identical queryKey
39462
+ // in a different hook would cause an accidental cache hit.
39463
+ queryKey: [dataset, dataType, matchOn, volcanoOptions, "useComparativeData"],
39464
+ // TODO: use TypeScript to type the return value?
39465
+ queryFn: async (ctx) => {
39466
+ const loader = getMatchingLoader(
39467
+ ctx.meta.loaders,
39468
+ ctx.queryKey[0],
39469
+ ctx.queryKey[1],
39470
+ ctx.queryKey[2]
39471
+ );
39472
+ if (loader) {
39473
+ const implementsLoadAttrs = typeof loader.loadMulti === "function";
39474
+ if (implementsLoadAttrs) {
39475
+ const payload2 = await loader.loadMulti(volcanoOptions);
39476
+ if (!payload2)
39477
+ return placeholderObject;
39478
+ const { data: payloadData2 } = payload2;
39479
+ return {
39480
+ data: payloadData2,
39481
+ urls: null
39482
+ };
39483
+ }
39484
+ const payload = await loader.load();
39485
+ if (!payload)
39486
+ return placeholderObject;
39487
+ const { data: payloadData } = payload;
39488
+ return {
39489
+ data: payloadData,
39490
+ urls: null
39491
+ };
39492
+ }
39493
+ if (isRequired) {
39494
+ throw new LoaderNotFoundError(loaders, dataset, dataType, matchOn);
39495
+ } else {
39496
+ return { data: placeholderObject, dataKey: null };
39497
+ }
39498
+ },
39499
+ meta: { loaders }
39500
+ });
39501
+ const { data, status, isFetching, error } = statsQuery;
39502
+ const loadedData = (data == null ? void 0 : data.data) || placeholderObject;
39503
+ const dataStatus = isFetching ? STATUS.LOADING : status;
39504
+ const urls = data == null ? void 0 : data.urls;
39505
+ useEffect(() => {
39506
+ if (error) {
39507
+ setWarning(error.message);
39508
+ }
39509
+ }, [error, setWarning]);
39510
+ return [loadedData, dataStatus, urls];
39511
+ }
39512
+ function useFeatureStatsData(loaders, dataset, isRequired, matchOn, volcanoOptions) {
39513
+ return useComparativeDataType(
39514
+ loaders,
39515
+ dataset,
39516
+ isRequired,
39517
+ matchOn,
39518
+ volcanoOptions,
39519
+ DataType$1.FEATURE_STATS
39520
+ );
39521
+ }
39522
+ function useFeatureSetStatsData(loaders, dataset, isRequired, matchOn, volcanoOptions) {
39523
+ return useComparativeDataType(
39524
+ loaders,
39525
+ dataset,
39526
+ isRequired,
39527
+ matchOn,
39528
+ volcanoOptions,
39529
+ DataType$1.FEATURE_SET_STATS
39530
+ );
39531
+ }
39532
+ function useObsSetStatsData(loaders, dataset, isRequired, matchOn, volcanoOptions) {
39533
+ return useComparativeDataType(
39534
+ loaders,
39535
+ dataset,
39536
+ isRequired,
39537
+ matchOn,
39538
+ volcanoOptions,
39539
+ DataType$1.OBS_SET_STATS
39540
+ );
39541
+ }
39218
39542
  function useObsFeatureMatrixIndices(loaders, dataset, isRequired, matchOn) {
39219
39543
  const setWarning = useSetWarning();
39220
39544
  const placeholderObject = useMemo(() => ({}), []);
@@ -40372,12 +40696,15 @@ export {
40372
40696
  PopperMenu,
40373
40697
  TitleInfo,
40374
40698
  VitS,
40699
+ VitSContainer,
40375
40700
  createLoaders,
40376
40701
  logConfig,
40377
40702
  useAddImageChannelInMetaCoordinationScopes,
40378
40703
  useAsyncFunction,
40379
40704
  useAuxiliaryCoordination,
40380
40705
  useClosestVitessceContainerSize,
40706
+ useColumnNameMapping,
40707
+ useComparisonMetadata,
40381
40708
  useComplexCoordination,
40382
40709
  useComplexCoordinationSecondary,
40383
40710
  useComponentHover,
@@ -40393,6 +40720,8 @@ export {
40393
40720
  useExpressionValueGetter,
40394
40721
  useFeatureLabelsData,
40395
40722
  useFeatureSelection,
40723
+ useFeatureSetStatsData,
40724
+ useFeatureStatsData,
40396
40725
  useGenomicProfilesData,
40397
40726
  useGetObsInfo,
40398
40727
  useGetObsMembership,
@@ -40422,6 +40751,7 @@ export {
40422
40751
  useObsLocationsData,
40423
40752
  useObsPointsData,
40424
40753
  useObsSegmentationsData,
40754
+ useObsSetStatsData,
40425
40755
  useObsSetsData,
40426
40756
  useObsSpotsData,
40427
40757
  usePageModeView,