@vitessce/all 3.5.8 → 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.
@@ -1,5 +1,5 @@
1
1
  import { i as inflate_1 } from "./pako.esm-68f84e2a.js";
2
- import { aP as BaseDecoder } from "./index-ec9f6e92.js";
2
+ import { aP as BaseDecoder } from "./index-13b53ff7.js";
3
3
  import "react";
4
4
  import "@vitessce/vit-s";
5
5
  import "react-dom";
@@ -1,6 +1,6 @@
1
1
  import React__default, { createElement, isValidElement, PureComponent, Component } from "react";
2
2
  import ReactDOM__default, { findDOMNode as findDOMNode$1 } from "react-dom";
3
- import { aS as commonjsGlobal$1, aT as objectAssign, g as getDefaultExportFromCjs$1, aU as earcut } from "./index-ec9f6e92.js";
3
+ import { aS as commonjsGlobal$1, aT as objectAssign, g as getDefaultExportFromCjs$1, aU as earcut } from "./index-13b53ff7.js";
4
4
  import "@vitessce/vit-s";
5
5
  var promise = {};
6
6
  (function(exports2) {
@@ -7423,6 +7423,9 @@ const DEFAULT_LIGHT2_COLOR = [235, 235, 235];
7423
7423
  function getDefaultColor(theme) {
7424
7424
  return theme === "dark" ? DEFAULT_DARK_COLOR : theme === "light" ? DEFAULT_LIGHT_COLOR$3 : DEFAULT_LIGHT2_COLOR;
7425
7425
  }
7426
+ function getDefaultForegroundColor(theme) {
7427
+ return theme === "dark" ? DEFAULT_LIGHT2_COLOR : DEFAULT_DARK_COLOR;
7428
+ }
7426
7429
  const PALETTE = [
7427
7430
  [68, 119, 170],
7428
7431
  [136, 204, 238],
@@ -44131,7 +44134,7 @@ function defaultUrlTransform(value2) {
44131
44134
  }
44132
44135
  return "";
44133
44136
  }
44134
- const useStyles$r = makeStyles((theme) => ({
44137
+ const useStyles$s = makeStyles((theme) => ({
44135
44138
  description: {
44136
44139
  "& p, details, table": {
44137
44140
  fontSize: "80%",
@@ -44168,7 +44171,7 @@ const useStyles$r = makeStyles((theme) => ({
44168
44171
  }));
44169
44172
  function Description(props) {
44170
44173
  const { description: description2, metadata: metadata2, descriptionType } = props;
44171
- const classes = useStyles$r();
44174
+ const classes = useStyles$s();
44172
44175
  return jsxRuntimeExports.jsxs("div", { className: classes.description, children: [descriptionType && descriptionType === DescriptionType.MARKDOWN ? jsxRuntimeExports.jsx(Markdown, { children: description2 }) : jsxRuntimeExports.jsx("p", { children: description2 }), metadata2 && Array.from(metadata2.entries()).map(([layerIndex, { name: layerName, metadata: metadataRecord }]) => metadataRecord && Object.entries(metadataRecord).length > 0 ? jsxRuntimeExports.jsxs("details", { children: [jsxRuntimeExports.jsx("summary", { children: layerName }), jsxRuntimeExports.jsx("div", { className: classes.metadataContainer, children: jsxRuntimeExports.jsx("table", { children: jsxRuntimeExports.jsx("tbody", { children: Object.entries(metadataRecord).map(([key2, value2]) => jsxRuntimeExports.jsxs("tr", { children: [jsxRuntimeExports.jsx("th", { title: key2, children: key2 }), jsxRuntimeExports.jsx("td", { title: value2, children: value2 })] }, key2)) }) }) })] }, layerIndex) : null)] });
44173
44176
  }
44174
44177
  function DescriptionSubscriber(props) {
@@ -53775,10 +53778,10 @@ var _objectKeysInternal = function(object2, names) {
53775
53778
  return result;
53776
53779
  };
53777
53780
  var _enumBugKeys = "constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",");
53778
- var $keys$1 = _objectKeysInternal;
53781
+ var $keys$2 = _objectKeysInternal;
53779
53782
  var enumBugKeys$1 = _enumBugKeys;
53780
53783
  var _objectKeys$1 = Object.keys || function keys(O) {
53781
- return $keys$1(O, enumBugKeys$1);
53784
+ return $keys$2(O, enumBugKeys$1);
53782
53785
  };
53783
53786
  var _objectGops = {};
53784
53787
  _objectGops.f = Object.getOwnPropertySymbols;
@@ -54229,20 +54232,13 @@ var _isArray = Array.isArray || function isArray2(arg) {
54229
54232
  };
54230
54233
  var _objectGopnExt = {};
54231
54234
  var _objectGopn = {};
54232
- var hasRequired_objectGopn;
54233
- function require_objectGopn() {
54234
- if (hasRequired_objectGopn)
54235
- return _objectGopn;
54236
- hasRequired_objectGopn = 1;
54237
- var $keys2 = _objectKeysInternal;
54238
- var hiddenKeys = _enumBugKeys.concat("length", "prototype");
54239
- _objectGopn.f = Object.getOwnPropertyNames || function getOwnPropertyNames4(O) {
54240
- return $keys2(O, hiddenKeys);
54241
- };
54242
- return _objectGopn;
54243
- }
54235
+ var $keys$1 = _objectKeysInternal;
54236
+ var hiddenKeys = _enumBugKeys.concat("length", "prototype");
54237
+ _objectGopn.f = Object.getOwnPropertyNames || function getOwnPropertyNames2(O) {
54238
+ return $keys$1(O, hiddenKeys);
54239
+ };
54244
54240
  var toIObject$2 = _toIobject;
54245
- var gOPN$1 = require_objectGopn().f;
54241
+ var gOPN$1 = _objectGopn.f;
54246
54242
  var toString$4 = {}.toString;
54247
54243
  var windowNames = typeof window == "object" && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : [];
54248
54244
  var getWindowNames = function(it2) {
@@ -54252,7 +54248,7 @@ var getWindowNames = function(it2) {
54252
54248
  return windowNames.slice();
54253
54249
  }
54254
54250
  };
54255
- _objectGopnExt.f = function getOwnPropertyNames2(it2) {
54251
+ _objectGopnExt.f = function getOwnPropertyNames3(it2) {
54256
54252
  return windowNames && toString$4.call(it2) == "[object Window]" ? getWindowNames(it2) : gOPN$1(toIObject$2(it2));
54257
54253
  };
54258
54254
  var _objectGopd = {};
@@ -54391,7 +54387,7 @@ var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor3(it2, key2) {
54391
54387
  D2.enumerable = true;
54392
54388
  return D2;
54393
54389
  };
54394
- var $getOwnPropertyNames = function getOwnPropertyNames3(it2) {
54390
+ var $getOwnPropertyNames = function getOwnPropertyNames4(it2) {
54395
54391
  var names = gOPN(toIObject(it2));
54396
54392
  var result = [];
54397
54393
  var i2 = 0;
@@ -54435,7 +54431,7 @@ if (!USE_NATIVE) {
54435
54431
  });
54436
54432
  $GOPD.f = $getOwnPropertyDescriptor;
54437
54433
  $DP.f = $defineProperty$4;
54438
- require_objectGopn().f = gOPNExt.f = $getOwnPropertyNames;
54434
+ _objectGopn.f = gOPNExt.f = $getOwnPropertyNames;
54439
54435
  _objectPie.f = $propertyIsEnumerable;
54440
54436
  $GOPS.f = $getOwnPropertySymbols;
54441
54437
  if (DESCRIPTORS && !_library) {
@@ -61275,7 +61271,7 @@ var Tooltip$2 = function Tooltip2(props, ref2) {
61275
61271
  };
61276
61272
  const Tooltip$3 = /* @__PURE__ */ forwardRef(Tooltip$2);
61277
61273
  const nodeHeight = 32;
61278
- const useStyles$q = makeStyles((theme) => ({
61274
+ const useStyles$r = makeStyles((theme) => ({
61279
61275
  setsManager: {
61280
61276
  position: "relative",
61281
61277
  width: "100%",
@@ -66470,7 +66466,7 @@ function NamedSetNodeStatic(props) {
66470
66466
  const onClick = level === 0 && !expanded ? () => onCheckLevel(nodeKey, nextLevelToCheck) : () => onNodeView(path2);
66471
66467
  const tooltipProps = disableTooltip ? { visible: false } : {};
66472
66468
  const popoverMenuConfig = makeNodeViewMenuConfig(props);
66473
- const classes = useStyles$q();
66469
+ const classes = useStyles$r();
66474
66470
  return jsxRuntimeExports.jsxs("span", { children: [jsxRuntimeExports.jsx(HelpTooltip, { title: tooltipText, ...tooltipProps, children: jsxRuntimeExports.jsx("button", { type: "button", onClick, onKeyPress: (e3) => callbackOnKeyPress(e3, "v", () => onNodeView(path2)), className: classes.titleButton, children: title2 }) }), popoverMenuConfig.length > 0 ? jsxRuntimeExports.jsx(PopoverMenu, { menuConfig: makeNodeViewMenuConfig(props), color: level > 0 && editable ? color2 || getDefaultColor(theme) : null, setColor: (c2) => onNodeSetColor(path2, c2), children: jsxRuntimeExports.jsx(SvgMenu, { className: classes.nodeMenuIcon, "aria-label": "Open Node View Menu" }) }) : null, level > 0 && isChecking ? checkbox2 : null, level > 0 && jsxRuntimeExports.jsx("span", { className: classes.nodeSizeLabel, children: niceSize })] });
66475
66471
  }
66476
66472
  function NamedSetNodeEditing(props) {
@@ -66482,7 +66478,7 @@ function NamedSetNodeEditing(props) {
66482
66478
  onNodeSetName(path2, currentTitle, true);
66483
66479
  }
66484
66480
  }
66485
- const classes = useStyles$q();
66481
+ const classes = useStyles$r();
66486
66482
  return jsxRuntimeExports.jsxs("span", { className: classes.titleButtonWithInput, children: [jsxRuntimeExports.jsx("input", {
66487
66483
  // eslint-disable-next-line jsx-a11y/no-autofocus
66488
66484
  autoFocus: true,
@@ -66508,7 +66504,7 @@ function LevelsButtons(props) {
66508
66504
  onCheckLevel(nodeKey, newLevel);
66509
66505
  }
66510
66506
  }
66511
- const classes = useStyles$q();
66507
+ const classes = useStyles$r();
66512
66508
  return jsxRuntimeExports.jsx("div", { className: classes.levelButtonsContainer, children: range$f(1, height2 + 1).map((i2) => {
66513
66509
  const isChecked = isEqual$5(path2, checkedLevelPath) && i2 === checkedLevelIndex;
66514
66510
  return jsxRuntimeExports.jsx("div", { children: jsxRuntimeExports.jsx(HelpTooltip, { title: getLevelTooltipText(i2), children: jsxRuntimeExports.jsx("input", { className: clsx(classes.levelRadioButton, { [classes.levelRadioButtonChecked]: isChecked && !hasColorEncoding }), type: "checkbox", value: i2, checked: isChecked && hasColorEncoding, onChange: onCheck }) }) }, i2);
@@ -66595,7 +66591,7 @@ let TreeNode$1 = class TreeNode extends TreeNode$2 {
66595
66591
  };
66596
66592
  function PlusButton(props) {
66597
66593
  const { datatype, onError, onImportTree, onCreateLevelZeroNode, importable, editable } = props;
66598
- const classes = useStyles$q();
66594
+ const classes = useStyles$r();
66599
66595
  const onImport = useCallback((importHandler, mimeType) => () => {
66600
66596
  const uploadInputNode = document.createElement("input");
66601
66597
  uploadInputNode.setAttribute("type", "file");
@@ -66713,7 +66709,7 @@ function SetsManager(props) {
66713
66709
  }, onNodeCheckNewName, onNodeSetIsEditing: setIsEditingNodeName, onNodeRemove, onExportLevelZeroNodeJSON, onExportLevelZeroNodeTabular, onExportSetJSON, disableTooltip: isDragging, onDragStart: () => setIsDragging(true), onDragEnd: () => setIsDragging(false), children: renderTreeNodes(node2.children, readOnly, newPath) }, pathToKey(newPath));
66714
66710
  });
66715
66711
  }
66716
- const classes = useStyles$q();
66712
+ const classes = useStyles$r();
66717
66713
  return jsxRuntimeExports.jsxs("div", { className: classes.setsManager, children: [jsxRuntimeExports.jsxs("div", { className: classes.setsManagerTree, children: [jsxRuntimeExports.jsx(Tree$1, { draggable: false, checkable, checkedKeys: setSelectionKeys, expandedKeys: setExpansionKeys, autoExpandParent, onCheck: (checkedKeys, info2) => onCheckNode(info2.node.props.nodeKey, info2.checked), onExpand: (expandedKeys, info2) => onExpandNode(expandedKeys, info2.node.props.nodeKey, info2.expanded), children: renderTreeNodes(processedSets.tree, true, []) }), jsxRuntimeExports.jsx(Tree$1, { draggable: true, checkable, checkedKeys: additionalSetSelectionKeys, expandedKeys: additionalSetExpansionKeys, autoExpandParent, onCheck: (checkedKeys, info2) => onCheckNode(info2.node.props.nodeKey, info2.checked), onExpand: (expandedKeys, info2) => onExpandNode(expandedKeys, info2.node.props.nodeKey, info2.expanded), onDrop: (info2) => {
66718
66714
  const { eventKey: dropKey } = info2.node.props;
66719
66715
  const { eventKey: dragKey } = info2.dragNode.props;
@@ -173047,16 +173043,16 @@ async function getDecoder(fileDirectory) {
173047
173043
  const Decoder = await importFn();
173048
173044
  return new Decoder(fileDirectory);
173049
173045
  }
173050
- addDecoder([void 0, 1], () => import("./raw-8cc54eb3.js").then((m2) => m2.default));
173051
- addDecoder(5, () => import("./lzw-d3000914.js").then((m2) => m2.default));
173046
+ addDecoder([void 0, 1], () => import("./raw-0fa2e626.js").then((m2) => m2.default));
173047
+ addDecoder(5, () => import("./lzw-ef19357e.js").then((m2) => m2.default));
173052
173048
  addDecoder(6, () => {
173053
173049
  throw new Error("old style JPEG compression is not supported.");
173054
173050
  });
173055
- addDecoder(7, () => import("./jpeg-71127875.js").then((m2) => m2.default));
173056
- addDecoder([8, 32946], () => import("./deflate-caecb9a5.js").then((m2) => m2.default));
173057
- addDecoder(32773, () => import("./packbits-8ca42840.js").then((m2) => m2.default));
173058
- addDecoder(34887, () => import("./lerc-6b0aed4a.js").then((m2) => m2.default));
173059
- addDecoder(50001, () => import("./webimage-88dacd24.js").then((m2) => m2.default));
173051
+ addDecoder(7, () => import("./jpeg-74f08245.js").then((m2) => m2.default));
173052
+ addDecoder([8, 32946], () => import("./deflate-348b8ed0.js").then((m2) => m2.default));
173053
+ addDecoder(32773, () => import("./packbits-07b796e7.js").then((m2) => m2.default));
173054
+ addDecoder(34887, () => import("./lerc-14ea355d.js").then((m2) => m2.default));
173055
+ addDecoder(50001, () => import("./webimage-bf47d44e.js").then((m2) => m2.default));
173060
173056
  function copyNewSize(array2, width2, height2, samplesPerPixel = 1) {
173061
173057
  return new (Object.getPrototypeOf(array2)).constructor(width2 * height2 * samplesPerPixel);
173062
173058
  }
@@ -186863,7 +186859,7 @@ const VisibilityIcon = createSvgIcon(/* @__PURE__ */ React.createElement("path",
186863
186859
  const VisibilityOffIcon = createSvgIcon(/* @__PURE__ */ React.createElement("path", {
186864
186860
  d: "M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78l3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z"
186865
186861
  }), "VisibilityOff");
186866
- const useStyles$p = makeStyles(() => ({
186862
+ const useStyles$q = makeStyles(() => ({
186867
186863
  toolButton: {
186868
186864
  display: "inline-flex",
186869
186865
  "&:active": {
@@ -186924,12 +186920,12 @@ const useStyles$p = makeStyles(() => ({
186924
186920
  }));
186925
186921
  function IconTool(props) {
186926
186922
  const { alt, onClick, isActive: isActive2, children: children2 } = props;
186927
- const classes = useStyles$p();
186923
+ const classes = useStyles$q();
186928
186924
  return jsxRuntimeExports.jsx("button", { className: clsx(classes.toolIcon, { [classes.toolActive]: isActive2 }), onClick, type: "button", title: alt, children: children2 });
186929
186925
  }
186930
186926
  function IconButton2(props) {
186931
186927
  const { alt, onClick, children: children2 } = props;
186932
- const classes = useStyles$p();
186928
+ const classes = useStyles$q();
186933
186929
  return jsxRuntimeExports.jsx("button", { className: clsx(classes.toolIcon, classes.toolButton), onClick, type: "button", title: alt, children: children2 });
186934
186930
  }
186935
186931
  function ToolMenu(props) {
@@ -186937,7 +186933,7 @@ function ToolMenu(props) {
186937
186933
  const lassoIconAltText = "Select lasso";
186938
186934
  const { setActiveTool, activeTool, visibleTools = { pan: true, selectLasso: true }, recenterOnClick = () => {
186939
186935
  } } = props;
186940
- const classes = useStyles$p();
186936
+ const classes = useStyles$q();
186941
186937
  const onRecenterButtonCLick = () => {
186942
186938
  recenterOnClick();
186943
186939
  };
@@ -188094,7 +188090,7 @@ function Tooltip4(props) {
188094
188090
  }, [x2, y2, parentWidth, parentHeight]);
188095
188091
  return jsxRuntimeExports.jsx("div", { ref: ref2, className: classes.tooltipAnchor, children: ref2 && ref2.current ? jsxRuntimeExports.jsx(P$1, { open: true, anchorEl: ref2.current, container: getTooltipContainer, transition: true, placement: `${placementY}-${placementX}`, children: jsxRuntimeExports.jsx(M$1, { elevation: 4, className: classes.tooltipContent, children: children2 }) }) : null });
188096
188092
  }
188097
- const useStyles$o = makeStyles((theme) => ({
188093
+ const useStyles$p = makeStyles((theme) => ({
188098
188094
  cellEmphasisCrosshair: {
188099
188095
  zIndex: 50,
188100
188096
  position: "absolute",
@@ -188105,7 +188101,7 @@ const useStyles$o = makeStyles((theme) => ({
188105
188101
  }));
188106
188102
  function Tooltip2D(props) {
188107
188103
  const { parentUuid, sourceUuid, x: x2, y: y2, parentWidth, parentHeight, children: children2 } = props;
188108
- const classes = useStyles$o();
188104
+ const classes = useStyles$p();
188109
188105
  if (x2 < 0 || x2 > parentWidth || y2 < 0 || y2 > parentHeight) {
188110
188106
  return null;
188111
188107
  }
@@ -192467,7 +192463,7 @@ function getXlinkHref(cmap) {
192467
192463
  const xlinkHref = ramp(color2.copy().domain(quantize$4(interpolate$3(0, 1), n3))).toDataURL();
192468
192464
  return xlinkHref;
192469
192465
  }
192470
- const useStyles$n = makeStyles(() => ({
192466
+ const useStyles$o = makeStyles(() => ({
192471
192467
  legend: {
192472
192468
  top: "2px",
192473
192469
  right: "2px",
@@ -192510,7 +192506,7 @@ const rectMarginX = 2;
192510
192506
  function Legend(props) {
192511
192507
  const { visible: visibleProp, positionRelative = false, highContrast = false, obsType, featureValueType, considerSelections = true, obsColorEncoding, featureSelection, featureLabelsMap, featureValueColormap, featureValueColormapRange, spatialChannelColor, spatialLayerColor, obsSetSelection, obsSetColor, extent: extent2, missing, width: width2 = 100, height: height2 = 36, theme, showObsLabel = false, pointsVisible = true, contoursVisible = false, contoursFilled, contourPercentiles, contourThresholds } = props;
192512
192508
  const svgRef = useRef();
192513
- const classes = useStyles$n();
192509
+ const classes = useStyles$o();
192514
192510
  const isDarkTheme = theme === "dark";
192515
192511
  const isStaticColor = obsColorEncoding === "spatialChannelColor" || obsColorEncoding === "spatialLayerColor";
192516
192512
  const isSetColor = obsColorEncoding === "cellSetSelection";
@@ -192640,7 +192636,7 @@ function Legend(props) {
192640
192636
  height: `${dynamicHeight}px`
192641
192637
  } }) });
192642
192638
  }
192643
- const useStyles$m = makeStyles(() => ({
192639
+ const useStyles$n = makeStyles(() => ({
192644
192640
  multiLegend: {
192645
192641
  position: "absolute",
192646
192642
  top: "0px",
@@ -192665,7 +192661,7 @@ function MultiLegend(props) {
192665
192661
  pointLayerScopes,
192666
192662
  pointLayerCoordination
192667
192663
  } = props;
192668
- const classes = useStyles$m();
192664
+ const classes = useStyles$n();
192669
192665
  const reversedSegmentationLayerScopes = useMemo(() => [...segmentationLayerScopes || []].reverse(), [segmentationLayerScopes]);
192670
192666
  const reversedSpotLayerScopes = useMemo(() => [...spotLayerScopes || []].reverse(), [spotLayerScopes]);
192671
192667
  const reversedPointLayerScopes = useMemo(() => [...pointLayerScopes || []].reverse(), [pointLayerScopes]);
@@ -192738,7 +192734,7 @@ function MultiLegend(props) {
192738
192734
  }) : null;
192739
192735
  }) : null] });
192740
192736
  }
192741
- const useStyles$l = makeStyles(() => ({
192737
+ const useStyles$m = makeStyles(() => ({
192742
192738
  channelNamesLegendContainer: {
192743
192739
  position: "absolute",
192744
192740
  bottom: "0px",
@@ -192761,7 +192757,7 @@ const useStyles$l = makeStyles(() => ({
192761
192757
  }));
192762
192758
  function ChannelNamesLegend(props) {
192763
192759
  const { images, imageLayerScopes, imageLayerCoordination, imageChannelScopesByLayer, imageChannelCoordination } = props;
192764
- const classes = useStyles$l();
192760
+ const classes = useStyles$m();
192765
192761
  const reversedImageLayerScopes = useMemo(() => [...imageLayerScopes || []].reverse(), [imageLayerScopes]);
192766
192762
  return jsxRuntimeExports.jsx("div", { className: classes.channelNamesLegendContainer, children: imageLayerScopes ? reversedImageLayerScopes.map((layerScope) => {
192767
192763
  const layerCoordination = imageLayerCoordination[0][layerScope];
@@ -214166,7 +214162,7 @@ class ErrorBoundary extends React__default.Component {
214166
214162
  }
214167
214163
  }
214168
214164
  const LazySpatialThree = React__default.lazy(async () => {
214169
- const { SpatialWrapper: SpatialWrapper2 } = await import("./index-1f21bfa0.js");
214165
+ const { SpatialWrapper: SpatialWrapper2 } = await import("./index-f14612ce.js");
214170
214166
  return { default: SpatialWrapper2 };
214171
214167
  });
214172
214168
  const SpatialThreeAdapter = React__default.forwardRef((props, ref2) => jsxRuntimeExports.jsx("div", { ref: ref2, style: { width: "100%", height: "100%" }, children: jsxRuntimeExports.jsx(ErrorBoundary, { children: jsxRuntimeExports.jsx(Suspense, { fallback: jsxRuntimeExports.jsx("div", { children: "Loading..." }), children: jsxRuntimeExports.jsx(LazySpatialThree, { ...props }) }) }) }));
@@ -219879,7 +219875,7 @@ function requireTable() {
219879
219875
  var _default2 = _Table["default"];
219880
219876
  exports2["default"] = _default2;
219881
219877
  })(Table$2);
219882
- const useStyles$k = makeStyles((theme) => ({
219878
+ const useStyles$l = makeStyles((theme) => ({
219883
219879
  selectableTable: {
219884
219880
  flex: "1 1 auto",
219885
219881
  outline: "none"
@@ -220027,7 +220023,7 @@ function SelectableTable(props) {
220027
220023
  onChange(null);
220028
220024
  }
220029
220025
  }, [selectedRows, allowMultiple]);
220030
- const classes = useStyles$k();
220026
+ const classes = useStyles$l();
220031
220027
  const inputUuid = v4$1();
220032
220028
  const rowRenderer = ({ index: index2, style: style2 }) => (
220033
220029
  // eslint-disable-next-line jsx-a11y/interactive-supports-focus
@@ -220052,7 +220048,7 @@ const FEATURELIST_SORT_OPTIONS = [
220052
220048
  "original"
220053
220049
  ];
220054
220050
  const ALT_COLNAME = "Alternate ID";
220055
- const useStyles$j = makeStyles(() => ({
220051
+ const useStyles$k = makeStyles(() => ({
220056
220052
  searchBar: {
220057
220053
  marginBottom: "4px",
220058
220054
  border: "0",
@@ -220062,7 +220058,7 @@ const useStyles$j = makeStyles(() => ({
220062
220058
  }));
220063
220059
  function FeatureList(props) {
220064
220060
  const { hasColorEncoding, geneList = [], featureLabelsMap, geneSelection = [], geneFilter = null, setGeneSelection, enableMultiSelect, showFeatureTable, featureListSort, featureListSortKey, hasFeatureLabels, primaryColumnName } = props;
220065
- const classes = useStyles$j();
220061
+ const classes = useStyles$k();
220066
220062
  const [searchTerm, setSearchTerm] = useState("");
220067
220063
  const [searchResults, setSearchResults] = useState(geneList);
220068
220064
  const selectableTableSortKey = featureListSortKey === "featureIndex" ? "key" : "name";
@@ -220274,7 +220270,7 @@ const useSelectionSliderStyles = makeStyles(() => ({
220274
220270
  backgroundColor: "rgba(128, 128, 128, 0.7)"
220275
220271
  }
220276
220272
  }));
220277
- const useStyles$i = makeStyles((theme) => ({
220273
+ const useStyles$j = makeStyles((theme) => ({
220278
220274
  paletteContainer: {
220279
220275
  width: "70px",
220280
220276
  height: "40px",
@@ -220295,10 +220291,10 @@ const useStyles$i = makeStyles((theme) => ({
220295
220291
  }
220296
220292
  }));
220297
220293
  const ColorPalette = ({ handleChange }) => {
220298
- const classes = useStyles$i();
220294
+ const classes = useStyles$j();
220299
220295
  return jsxRuntimeExports.jsx("div", { className: classes.paletteContainer, "aria-label": "Color swatch", children: VIEWER_PALETTE.map((color2) => jsxRuntimeExports.jsx(S, { className: classes.button, onClick: () => handleChange(color2), "aria-label": `Change color to ${color2}`, children: jsxRuntimeExports.jsx(LensIcon, { fontSize: "small", style: { color: `rgb(${color2})` }, className: classes.icon }) }, color2)) });
220300
220296
  };
220301
- const useStyles$h = makeStyles(() => ({
220297
+ const useStyles$i = makeStyles(() => ({
220302
220298
  menuButton: {
220303
220299
  backgroundColor: "transparent"
220304
220300
  },
@@ -220317,7 +220313,7 @@ function MuiSpan(props) {
220317
220313
  }
220318
220314
  function ChannelOptions$1({ handlePropertyChange, handleChannelRemove, handleIQRUpdate }) {
220319
220315
  const [open2, setOpen] = useState(false);
220320
- const classes = useStyles$h();
220316
+ const classes = useStyles$i();
220321
220317
  const handleColorSelect = (color2) => {
220322
220318
  handlePropertyChange("color", color2);
220323
220319
  };
@@ -220942,7 +220938,7 @@ function LayerController$1(props) {
220942
220938
  minWidth: "50%"
220943
220939
  } })] }), jsxRuntimeExports.jsx(TabPanel, { value: tab2, index: 0, children: FullController }), jsxRuntimeExports.jsx(TabPanel, { value: tab2, index: 1, style: { marginTop: 4 }, children: jsxRuntimeExports.jsx(VolumeOptions, { loader: loader2, handleSlicerSetting, handleRenderingModeChange: setRenderingMode, renderingMode, xSlice, ySlice, zSlice, use3d, setViewState, spatialHeight, spatialWidth, modelMatrix: modelMatrix2 }) })] }) : FullController, shouldShowRemoveLayerButton ? jsxRuntimeExports.jsx(Button$1, { onClick: handleLayerRemove, fullWidth: true, variant: "outlined", style: buttonStyles, size: "small", children: "Remove Image Layer" }) : null] })] });
220944
220940
  }
220945
- const useStyles$g = makeStyles(() => ({
220941
+ const useStyles$h = makeStyles(() => ({
220946
220942
  addButton: {
220947
220943
  marginTop: "10px",
220948
220944
  marginBottom: "10px",
@@ -220954,7 +220950,7 @@ function ImageAddIcon() {
220954
220950
  }
220955
220951
  function ImageAddButton({ imageOptions, handleImageAdd }) {
220956
220952
  const [open2, setOpen] = useState(false);
220957
- const classes = useStyles$g();
220953
+ const classes = useStyles$h();
220958
220954
  const handleAdd = (imgData) => {
220959
220955
  setOpen((prev) => !prev);
220960
220956
  handleImageAdd(imgData);
@@ -221266,7 +221262,7 @@ const useEllipsisMenuStyles = makeStyles(() => ({
221266
221262
  width: "100px"
221267
221263
  }
221268
221264
  }));
221269
- const useStyles$f = makeStyles(() => ({
221265
+ const useStyles$g = makeStyles(() => ({
221270
221266
  colorIcon: {
221271
221267
  width: "18px !important",
221272
221268
  height: "18px !important",
@@ -221318,13 +221314,13 @@ function ChannelColorPickerMenu(props) {
221318
221314
  setColor([rgb2.r, rgb2.g, rgb2.b]);
221319
221315
  }
221320
221316
  }
221321
- const classes = useStyles$f();
221317
+ const classes = useStyles$g();
221322
221318
  const currentColor = color2 ? colorArrayToString(color2) : colorArrayToString(getDefaultColor(theme));
221323
221319
  return jsxRuntimeExports.jsx(PopperMenu, { open: isStaticColor && visible ? open2 : false, setOpen, buttonIcon: isStaticColor && visible ? jsxRuntimeExports.jsx("div", { className: clsx(classes.colorIcon, {
221324
221320
  [classes.colorIconOutline]: theme !== "dark" && isEqual$5(color2, [255, 255, 255])
221325
221321
  }), style: { backgroundColor: currentColor } }) : isColormap && visible && featureValueColormap ? jsxRuntimeExports.jsx("div", { className: classes.colorIcon, children: jsxRuntimeExports.jsx("svg", { width: "18", height: "18", children: jsxRuntimeExports.jsx("image", { x: 0, y: 0, width: 18, height: 18, preserveAspectRatio: "none", href: getXlinkHref(featureValueColormap), clipPath: "inset(0% round 4px)" }) }) }) : jsxRuntimeExports.jsx("div", { className: classes.colorIcon }), buttonClassName: classes.colorIconButton, withPaper: false, "aria-label": "Open color picker menu", children: jsxRuntimeExports.jsx(Twitter$1, { className: classes.colorPicker, disableAlpha: true, width: 108, triangle: "hide", colors: defaultPalette, color: currentColor, onChangeComplete: handleColorChange }) });
221326
221322
  }
221327
- const useStyles$e = makeStyles(() => ({
221323
+ const useStyles$f = makeStyles(() => ({
221328
221324
  layerTypeSpotIcon: {
221329
221325
  height: "100%",
221330
221326
  marginLeft: "1px",
@@ -221337,7 +221333,7 @@ const useStyles$e = makeStyles(() => ({
221337
221333
  function SpotLayerEllipsisMenu(props) {
221338
221334
  const { strokeWidth, setStrokeWidth, filled, setFilled, featureSelection, obsColorEncoding, setObsColorEncoding, featureValueColormapRange, setFeatureValueColormapRange, tooltipsVisible, setTooltipsVisible, tooltipCrosshairsVisible, setTooltipCrosshairsVisible, legendVisible, setLegendVisible } = props;
221339
221335
  const [open2, setOpen] = useState(false);
221340
- useStyles$e();
221336
+ useStyles$f();
221341
221337
  const selectClasses = useSelectStyles();
221342
221338
  const menuClasses = useEllipsisMenuStyles();
221343
221339
  const filledId = $bdb11010cef70236$export$f680877a34711e37();
@@ -221358,7 +221354,7 @@ function SpotLayerController(props) {
221358
221354
  const Visibility = useMemo(() => visibleSetting ? VisibilityIcon : VisibilityOffIcon, [visibleSetting]);
221359
221355
  const isStaticColor = obsColorEncoding === "spatialLayerColor";
221360
221356
  const isColormap = obsColorEncoding === "geneSelection";
221361
- const classes = useStyles$e();
221357
+ const classes = useStyles$f();
221362
221358
  const lcClasses = useControllerSectionStyles();
221363
221359
  const menuClasses = useEllipsisMenuStyles();
221364
221360
  const handleVisibleChange = useCallback(() => {
@@ -221368,7 +221364,7 @@ function SpotLayerController(props) {
221368
221364
  const handleOpacityChange = useCallback((e3, v2) => setOpacity(v2), [setOpacity]);
221369
221365
  return jsxRuntimeExports.jsx(Grid$3, { item: true, className: lcClasses.layerControllerGrid, children: jsxRuntimeExports.jsx(M$1, { className: lcClasses.layerControllerRoot, children: jsxRuntimeExports.jsxs(Grid$3, { container: true, direction: "row", justifyContent: "space-between", children: [jsxRuntimeExports.jsx(Grid$3, { item: true, xs: 1, children: jsxRuntimeExports.jsx(Button$1, { onClick: handleVisibleChange, className: menuClasses.imageLayerVisibleButton, "aria-label": "Toggle spot layer visibility", children: jsxRuntimeExports.jsx(Visibility, {}) }) }), jsxRuntimeExports.jsx(Grid$3, { item: true, xs: 1, children: jsxRuntimeExports.jsx(ChannelColorPickerMenu, { theme, color: color2, setColor, palette: palette2, isStaticColor, isColormap, featureValueColormap, visible }) }), jsxRuntimeExports.jsx(Grid$3, { item: true, xs: 6, children: jsxRuntimeExports.jsx(Typography$1, { className: menuClasses.imageLayerName, children: label2 }) }), jsxRuntimeExports.jsx(Grid$3, { item: true, xs: 2, children: jsxRuntimeExports.jsx(Slider$1, { value: opacity2, min: 0, max: 1, step: 1e-3, onChange: handleOpacityChange, className: menuClasses.imageLayerOpacitySlider, orientation: "horizontal", "aria-label": `Adjust opacity for layer ${label2}` }) }), jsxRuntimeExports.jsx(Grid$3, { item: true, xs: 1, children: jsxRuntimeExports.jsx(SpotLayerEllipsisMenu, { filled, setFilled, strokeWidth, setStrokeWidth, featureSelection, obsColorEncoding, setObsColorEncoding, featureValueColormapRange, setFeatureValueColormapRange, tooltipsVisible, setTooltipsVisible, tooltipCrosshairsVisible, setTooltipCrosshairsVisible, legendVisible, setLegendVisible }) }), jsxRuntimeExports.jsx(Grid$3, { item: true, xs: 1, children: jsxRuntimeExports.jsx(SvgSpots, { className: classes.layerTypeSpotIcon }) })] }) }) });
221370
221366
  }
221371
- const useStyles$d = makeStyles(() => ({
221367
+ const useStyles$e = makeStyles(() => ({
221372
221368
  layerTypePointIcon: {
221373
221369
  height: "100%",
221374
221370
  marginLeft: "1px",
@@ -221399,7 +221395,7 @@ function PointLayerController(props) {
221399
221395
  const Visibility = useMemo(() => visibleSetting ? VisibilityIcon : VisibilityOffIcon, [visibleSetting]);
221400
221396
  const isStaticColor = obsColorEncoding === "spatialLayerColor";
221401
221397
  const isColormap = obsColorEncoding === "geneSelection";
221402
- const classes = useStyles$d();
221398
+ const classes = useStyles$e();
221403
221399
  const lcClasses = useControllerSectionStyles();
221404
221400
  const menuClasses = useEllipsisMenuStyles();
221405
221401
  const handleVisibleChange = useCallback(() => {
@@ -221409,7 +221405,7 @@ function PointLayerController(props) {
221409
221405
  const handleOpacityChange = useCallback((e3, v2) => setOpacity(v2), [setOpacity]);
221410
221406
  return jsxRuntimeExports.jsx(Grid$3, { item: true, className: lcClasses.layerControllerGrid, children: jsxRuntimeExports.jsx(M$1, { className: lcClasses.layerControllerRoot, children: jsxRuntimeExports.jsxs(Grid$3, { container: true, direction: "row", justifyContent: "space-between", children: [jsxRuntimeExports.jsx(Grid$3, { item: true, xs: 1, children: jsxRuntimeExports.jsx(Button$1, { onClick: handleVisibleChange, className: menuClasses.imageLayerVisibleButton, "aria-label": "Toggle layer visibility", children: jsxRuntimeExports.jsx(Visibility, {}) }) }), jsxRuntimeExports.jsx(Grid$3, { item: true, xs: 1, children: jsxRuntimeExports.jsx(ChannelColorPickerMenu, { theme, color: color2, setColor, palette: palette2, isStaticColor, isColormap, featureValueColormap, visible }) }), jsxRuntimeExports.jsx(Grid$3, { item: true, xs: 6, children: jsxRuntimeExports.jsx(Typography$1, { className: menuClasses.imageLayerName, children: label2 }) }), jsxRuntimeExports.jsx(Grid$3, { item: true, xs: 2, children: jsxRuntimeExports.jsx(Slider$1, { value: opacity2, min: 0, max: 1, step: 1e-3, onChange: handleOpacityChange, className: menuClasses.imageLayerOpacitySlider, orientation: "horizontal", "aria-label": `Adjust opacity for layer ${label2}` }) }), jsxRuntimeExports.jsx(Grid$3, { item: true, xs: 1, children: jsxRuntimeExports.jsx(PointLayerEllipsisMenu, { featureSelection, obsColorEncoding, setObsColorEncoding, featureValueColormapRange, setFeatureValueColormapRange, tooltipsVisible, setTooltipsVisible, tooltipCrosshairsVisible, setTooltipCrosshairsVisible, legendVisible, setLegendVisible }) }), jsxRuntimeExports.jsx(Grid$3, { item: true, xs: 1, children: jsxRuntimeExports.jsx(SvgPoints, { className: classes.layerTypePointIcon }) })] }) }) });
221411
221407
  }
221412
- const useStyles$c = makeStyles(() => ({
221408
+ const useStyles$d = makeStyles(() => ({
221413
221409
  layerTypeSegmentationIcon: {
221414
221410
  height: "100%",
221415
221411
  marginLeft: "1px",
@@ -221422,7 +221418,7 @@ const useStyles$c = makeStyles(() => ({
221422
221418
  function SegmentationChannelEllipsisMenu(props) {
221423
221419
  const { obsType, featureType, featureValueType, strokeWidth, setStrokeWidth, filled, setFilled, featureSelection, obsColorEncoding, setObsColorEncoding, featureValueColormapRange, setFeatureValueColormapRange, tooltipsVisible, setTooltipsVisible, tooltipCrosshairsVisible, setTooltipCrosshairsVisible, legendVisible, setLegendVisible } = props;
221424
221420
  const [open2, setOpen] = useState(false);
221425
- useStyles$c();
221421
+ useStyles$d();
221426
221422
  const selectClasses = useSelectStyles();
221427
221423
  const menuClasses = useEllipsisMenuStyles();
221428
221424
  const filledId = $bdb11010cef70236$export$f680877a34711e37();
@@ -221470,7 +221466,7 @@ function SegmentationChannelController(props) {
221470
221466
  const Visibility = useMemo(() => visibleSetting ? VisibilityIcon : VisibilityOffIcon, [visibleSetting]);
221471
221467
  const isStaticColor = obsColorEncoding === "spatialChannelColor";
221472
221468
  const isColormap = obsColorEncoding === "geneSelection";
221473
- const classes = useStyles$c();
221469
+ const classes = useStyles$d();
221474
221470
  const lcClasses = useControllerSectionStyles();
221475
221471
  const menuClasses = useEllipsisMenuStyles();
221476
221472
  const handleVisibleChange = useCallback(() => {
@@ -222706,7 +222702,7 @@ function useQuery(arg1, arg2, arg3) {
222706
222702
  const parsedOptions = parseQueryArgs(arg1, arg2, arg3);
222707
222703
  return useBaseQuery(parsedOptions, QueryObserver);
222708
222704
  }
222709
- const useStyles$b = makeStyles(() => ({
222705
+ const useStyles$c = makeStyles(() => ({
222710
222706
  channelMenuButton: {
222711
222707
  backgroundColor: "transparent",
222712
222708
  padding: "3px 0",
@@ -222720,7 +222716,7 @@ const useStyles$b = makeStyles(() => ({
222720
222716
  function ChannelOptions(props) {
222721
222717
  const { onRemove: onRemove2, onResetWindowUsingIQR, showValueExtent, setShowValueExtent } = props;
222722
222718
  const [open2, setOpen] = useState(false);
222723
- const classes = useStyles$b();
222719
+ const classes = useStyles$c();
222724
222720
  const selectClasses = useSelectStyles();
222725
222721
  const menuClasses = useEllipsisMenuStyles();
222726
222722
  function handleRemove() {
@@ -222733,7 +222729,7 @@ function ChannelOptions(props) {
222733
222729
  const domainTypeId = $bdb11010cef70236$export$f680877a34711e37();
222734
222730
  return jsxRuntimeExports.jsxs(PopperMenu, { open: open2, setOpen, buttonIcon: jsxRuntimeExports.jsx(MoreVertIcon, { fontSize: "small" }), buttonClassName: classes.channelMenuButton, containerClassName: menuClasses.imageLayerPopperContainer, placement: "bottom-end", withPaper: true, "aria-label": "Open channel options menu", children: [jsxRuntimeExports.jsxs(y$5, { dense: true, disableGutters: true, children: [jsxRuntimeExports.jsx("label", { className: menuClasses.imageLayerMenuLabel, htmlFor: domainTypeId, children: "Slider Extent: " }), jsxRuntimeExports.jsxs(Select$1, { native: true, onChange: handleDomainTypeChange, value: showValueExtent ? "Value Min/Max" : "Dtype Min/Max", inputProps: { id: domainTypeId, "aria-label": "Slider extent selector" }, classes: { root: selectClasses.selectRoot }, children: [jsxRuntimeExports.jsx("option", { value: "Value Min/Max", children: "Value Min/Max" }), jsxRuntimeExports.jsx("option", { value: "Dtype Min/Max", children: "Dtype Min/Max" })] })] }), jsxRuntimeExports.jsx(y$5, { dense: true, disableGutters: true, component: "button", onClick: onResetWindowUsingIQR, className: classes.menuItemButton, "aria-label": "Click to use IQR for channel", children: "Reset window using IQR" }), jsxRuntimeExports.jsx(y$5, { dense: true, disableGutters: true, component: "button", onClick: handleRemove, className: classes.menuItemButton, "aria-label": "Click to remove channel", children: "Remove channel" })] });
222735
222731
  }
222736
- const useStyles$a = makeStyles(() => ({
222732
+ const useStyles$b = makeStyles(() => ({
222737
222733
  channelSlider: {
222738
222734
  marginTop: "7px"
222739
222735
  }
@@ -222743,7 +222739,7 @@ function ChannelSlider(props) {
222743
222739
  const rgbColor = toRgbUIString(colormapOn, color2, theme);
222744
222740
  const dtype = image2 == null ? void 0 : image2.getDtype();
222745
222741
  const fullDomain = dtype ? DOMAINS[dtype] : [0, 0];
222746
- const classes = useStyles$a();
222742
+ const classes = useStyles$b();
222747
222743
  useEffect(() => {
222748
222744
  if (!window2 && !disabled && Array.isArray(minMaxDomain)) {
222749
222745
  setWindow2(minMaxDomain);
@@ -222758,7 +222754,7 @@ function ChannelSlider(props) {
222758
222754
  return `${labelPrefix} for ${rgbColor} colormap channel`;
222759
222755
  }, getAriaValueText: () => `Current colormap values: ${rgbColor}-${window2}`, min: min2, max: max2, step: step2, orientation: "horizontal", className: classes.channelSlider, style: { color: rgbColor }, disabled });
222760
222756
  }
222761
- const useStyles$9 = makeStyles(() => ({
222757
+ const useStyles$a = makeStyles(() => ({
222762
222758
  visibilityCheckbox: {
222763
222759
  padding: "8px 0"
222764
222760
  }
@@ -222772,10 +222768,10 @@ function getCheckboxColor(colormapOn, color2, theme) {
222772
222768
  function ChannelVisibilityCheckbox(props) {
222773
222769
  const { color: color2, visible, setVisible, disabled, theme, colormapOn } = props;
222774
222770
  const rgbColor = getCheckboxColor(colormapOn, color2, theme);
222775
- const classes = useStyles$9();
222771
+ const classes = useStyles$a();
222776
222772
  return jsxRuntimeExports.jsx(w$3, { onChange: (e3, v2) => setVisible(v2), checked: visible, disabled, className: classes.visibilityCheckbox, style: { color: rgbColor, "&$checked": { color: rgbColor } }, inputProps: { "aria-label": "Toggle channel visibility" } });
222777
222773
  }
222778
- const useStyles$8 = makeStyles(() => ({
222774
+ const useStyles$9 = makeStyles(() => ({
222779
222775
  oneLineChannelSelect: {
222780
222776
  width: "90%",
222781
222777
  marginLeft: "5%",
@@ -222784,7 +222780,7 @@ const useStyles$8 = makeStyles(() => ({
222784
222780
  }));
222785
222781
  function ChannelSelectionDropdown(props) {
222786
222782
  const { featureIndex, targetC, setTargetC, setWindow: setWindow2, disabled } = props;
222787
- const classes = useStyles$8();
222783
+ const classes = useStyles$9();
222788
222784
  const selectClasses = useSelectStyles();
222789
222785
  function handleChange(event2) {
222790
222786
  setTargetC(event2.target.value === "" ? null : Number(event2.target.value));
@@ -222866,7 +222862,7 @@ function ClippingSliders(props) {
222866
222862
  const [xSliceInit, ySliceInit, zSliceInit] = image2.getBoundingCube();
222867
222863
  return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx(DimensionSlider, { label: "X", boundingSlice: xSliceInit, sliceValue: spatialSliceX, setSliceValue: setSpatialSliceX }), jsxRuntimeExports.jsx(DimensionSlider, { label: "Y", boundingSlice: ySliceInit, sliceValue: spatialSliceY, setSliceValue: setSpatialSliceY }), jsxRuntimeExports.jsx(DimensionSlider, { label: "Z", boundingSlice: zSliceInit, sliceValue: spatialSliceZ, setSliceValue: setSpatialSliceZ })] });
222868
222864
  }
222869
- const useStyles$7 = makeStyles(() => ({
222865
+ const useStyles$8 = makeStyles(() => ({
222870
222866
  imageLayerButton: {
222871
222867
  borderStyle: "dashed",
222872
222868
  marginTop: "10px",
@@ -222951,7 +222947,7 @@ function ImageLayerController(props) {
222951
222947
  }, [visible, setVisible]);
222952
222948
  const handleOpacityChange = useCallback((e3, v2) => setOpacity(v2), [setOpacity]);
222953
222949
  const handleOpenChange = useCallback(() => setOpen((prev) => !prev), []);
222954
- const classes = useStyles$7();
222950
+ const classes = useStyles$8();
222955
222951
  const menuClasses = useEllipsisMenuStyles();
222956
222952
  const controllerSectionClasses = useControllerSectionStyles();
222957
222953
  const isMultiChannel = photometricInterpretation !== "RGB";
@@ -222962,7 +222958,7 @@ function ImageLayerController(props) {
222962
222958
  return jsxRuntimeExports.jsx(ImageChannelController, { theme, coordinationScopesRaw, layerScope, channelScope: cScope, targetT, targetZ, targetC: channelIndex, setTargetC: setSpatialTargetC, visible: spatialChannelVisible, setVisible: setSpatialChannelVisible, opacity: spatialChannelOpacity, setOpacity: setSpatialChannelOpacity, color: spatialChannelColor, setColor: setSpatialChannelColor, window: spatialChannelWindow, setWindow: setSpatialChannelWindow, colormapOn: colormap !== null, featureIndex, image: image2, spatialRenderingMode }, cScope);
222963
222959
  }), jsxRuntimeExports.jsx(Button$1, { disabled: channelScopes.length === MAX_CHANNELS$1 || channelScopes.length === imageNumChannels, onClick: handleChannelAdd, fullWidth: true, variant: "outlined", className: classes.imageLayerButton, startIcon: jsxRuntimeExports.jsx(AddIcon, {}), size: "small", "aria-label": "Add a channel to this layer", children: "Add Channel" })] }) : null, is3dMode && image2 ? jsxRuntimeExports.jsxs(Grid$3, { container: true, direction: "column", justifyContent: "space-between", className: classes.imageChannelControllerGrid, children: [jsxRuntimeExports.jsx(Typography$1, { className: classes.clippingPanesLabel, children: "Clipping planes:" }), jsxRuntimeExports.jsx(Grid$3, { item: true, xs: 12, className: classes.clippingSliders, children: jsxRuntimeExports.jsx(ClippingSliders, { image: image2, spatialSliceX, spatialSliceY, spatialSliceZ, setSpatialSliceX, setSpatialSliceY, setSpatialSliceZ }) })] }) : null] }) });
222964
222960
  }
222965
- const useStyles$6 = makeStyles((theme) => ({
222961
+ const useStyles$7 = makeStyles((theme) => ({
222966
222962
  dimensionsIcon: {
222967
222963
  height: "40px",
222968
222964
  width: "40px",
@@ -222986,7 +222982,7 @@ const useStyles$6 = makeStyles((theme) => ({
222986
222982
  function GlobalDimensionSlider(props) {
222987
222983
  const { label: label2, targetValue, setTargetValue, min: min2 = 0, max: max2 = 0, spatialRenderingMode = null, setSpatialRenderingMode = null } = props;
222988
222984
  const lcClasses = useControllerSectionStyles();
222989
- const classes = useStyles$6();
222985
+ const classes = useStyles$7();
222990
222986
  const isForZ = spatialRenderingMode !== null;
222991
222987
  function handleRenderingModeChange(event2) {
222992
222988
  setSpatialRenderingMode(event2.target.checked ? "3D" : "2D");
@@ -223243,7 +223239,7 @@ function LinkControllerSubscriber(props) {
223243
223239
  } = props;
223244
223240
  return jsxRuntimeExports.jsx(TitleInfo, { title: title2, closeButtonVisible, removeGridComponent, isScroll: true, theme, isReady: true, children: jsxRuntimeExports.jsx(LinkController, { linkIDInit: linkID, authToken, linkEndpoint, websocketEndpoint, fileTypes, stores, coordinationTypes }) });
223245
223241
  }
223246
- const useStyles$5 = makeStyles(() => ({
223242
+ const useStyles$6 = makeStyles(() => ({
223247
223243
  info: {
223248
223244
  // details
223249
223245
  fontSize: "80%",
@@ -223264,7 +223260,7 @@ const useStyles$5 = makeStyles(() => ({
223264
223260
  }));
223265
223261
  function Status(props) {
223266
223262
  const { info: info2, warn: warn2 } = props;
223267
- const classes = useStyles$5();
223263
+ const classes = useStyles$6();
223268
223264
  const messages2 = [];
223269
223265
  if (info2) {
223270
223266
  messages2.push(jsxRuntimeExports.jsx("p", { className: classes.info, children: info2 }, "info"));
@@ -224974,7 +224970,7 @@ ZarrMultivecDataFetcher.config = {
224974
224970
  type: "zarr-multivec"
224975
224971
  };
224976
224972
  var ZarrMultivecDataFetcher_default = ZarrMultivecDataFetcher;
224977
- const useStyles$4 = makeStyles((theme) => ({
224973
+ const useStyles$5 = makeStyles((theme) => ({
224978
224974
  higlassTitleWrapper: {
224979
224975
  height: "calc(100% - 20px)",
224980
224976
  "& > div:nth-child(2)": {
@@ -225025,7 +225021,7 @@ const useStyles$4 = makeStyles((theme) => ({
225025
225021
  }));
225026
225022
  register({ dataFetcher: ZarrMultivecDataFetcher_default, config: ZarrMultivecDataFetcher_default.config }, { pluginType: "dataFetcher" });
225027
225023
  const LazyHiGlassComponent = React__default.lazy(async () => {
225028
- const { HiGlassComponent } = await import("./higlass-499258e3.js");
225024
+ const { HiGlassComponent } = await import("./higlass-ac63bd26.js");
225029
225025
  return { default: HiGlassComponent };
225030
225026
  });
225031
225027
  const HG_SIZE = 800;
@@ -225139,7 +225135,7 @@ function HiGlassLazy(props) {
225139
225135
  setGenomicTargetX,
225140
225136
  setGenomicTargetY
225141
225137
  ]);
225142
- const classes = useStyles$4();
225138
+ const classes = useStyles$5();
225143
225139
  return jsxRuntimeExports.jsx("div", { className: classes.higlassWrapperParent, children: jsxRuntimeExports.jsx("div", { className: classes.higlassWrapper, ref: containerRef, style: { height: `${height2}px` }, children: jsxRuntimeExports.jsx(Suspense, { fallback: jsxRuntimeExports.jsx("div", { children: "Loading..." }), children: jsxRuntimeExports.jsx(LazyHiGlassComponent, { ref: setHgInstance, zoomFixed: false, viewConfig: hgViewConfig, options: hgOptions }) }) }) });
225144
225140
  }
225145
225141
  HiGlassLazy.defaultProps = {
@@ -225156,7 +225152,7 @@ const urls = [];
225156
225152
  function HiGlassSubscriber(props) {
225157
225153
  const { coordinationScopes, theme, hgViewConfig, closeButtonVisible, downloadButtonVisible, removeGridComponent } = props;
225158
225154
  const [width2, height2, containerRef] = useGridItemSize();
225159
- const classes = useStyles$4();
225155
+ const classes = useStyles$5();
225160
225156
  return jsxRuntimeExports.jsx("div", { className: classes.higlassTitleWrapper, children: jsxRuntimeExports.jsx(TitleInfo, { title: "HiGlass", closeButtonVisible, downloadButtonVisible, removeGridComponent, theme, isReady: true, urls, children: jsxRuntimeExports.jsx("div", { className: classes.higlassLazyWrapper, ref: containerRef, children: jsxRuntimeExports.jsx(HiGlassLazy, { coordinationScopes, theme, hgViewConfig, height: height2 }) }) }) });
225161
225157
  }
225162
225158
  const REFERENCE_TILESETS = {
@@ -225327,7 +225323,7 @@ function GenomicProfilesSubscriber(props) {
225327
225323
  higlassServer,
225328
225324
  assembly
225329
225325
  ]);
225330
- const classes = useStyles$4();
225326
+ const classes = useStyles$5();
225331
225327
  return jsxRuntimeExports.jsx("div", { className: classes.higlassTitleWrapper, children: jsxRuntimeExports.jsx(TitleInfo, { title: title2, closeButtonVisible, downloadButtonVisible, removeGridComponent, theme, isReady, urls: urls2, helpText, children: jsxRuntimeExports.jsx("div", { className: classes.higlassLazyWrapper, ref: containerRef, children: hgViewConfig ? jsxRuntimeExports.jsx(HiGlassLazy, { coordinationScopes, theme, hgViewConfig, height: height2 }) : null }) }) });
225332
225328
  }
225333
225329
  function decodeBase64(base64, enableUnicode) {
@@ -225994,7 +225990,7 @@ span.CodeMirror-selectedtext {
225994
225990
  height: 100%
225995
225991
  }
225996
225992
  `;
225997
- const useStyles$3 = makeStyles(() => ({
225993
+ const useStyles$4 = makeStyles(() => ({
225998
225994
  neuroglancerWrapper: {
225999
225995
  position: "relative",
226000
225996
  height: "100%",
@@ -227973,7 +227969,7 @@ const useStyles$3 = makeStyles(() => ({
227973
227969
  }
227974
227970
  }));
227975
227971
  const LazyReactNeuroglancer = React__default.lazy(async () => {
227976
- const ReactNeuroglancer = await import("./index-2732b061.js").then((n3) => n3.i);
227972
+ const ReactNeuroglancer = await import("./index-e5a1091b.js").then((n3) => n3.i);
227977
227973
  return ReactNeuroglancer;
227978
227974
  });
227979
227975
  function createWorker() {
@@ -227981,7 +227977,7 @@ function createWorker() {
227981
227977
  }
227982
227978
  function Neuroglancer(props) {
227983
227979
  const { viewerState, onViewerStateChanged } = props;
227984
- const classes = useStyles$3();
227980
+ const classes = useStyles$4();
227985
227981
  const bundleRoot = useMemo(() => createWorker(), []);
227986
227982
  const handleStateChanged = useCallback((newState) => {
227987
227983
  if (JSON.stringify(newState) !== JSON.stringify(viewerState)) {
@@ -232988,7 +232984,7 @@ function CellSetExpressionPlot(props) {
232988
232984
  position: "relative"
232989
232985
  } });
232990
232986
  }
232991
- const useStyles$2 = makeStyles(() => ({
232987
+ const useStyles$3 = makeStyles(() => ({
232992
232988
  vegaContainer: {
232993
232989
  display: "flex",
232994
232990
  flex: "1 1 auto",
@@ -233128,7 +233124,7 @@ function useExpressionByCellSet(sampleEdges, sampleSets, sampleSetSelection, exp
233128
233124
  function CellSetExpressionPlotSubscriber(props) {
233129
233125
  var _a3;
233130
233126
  const { coordinationScopes, closeButtonVisible, downloadButtonVisible, removeGridComponent, theme, jitter: jitter2 = false, yMin = null, yUnits = null, helpText = ViewHelpMapping.OBS_SET_FEATURE_VALUE_DISTRIBUTION } = props;
233131
- const classes = useStyles$2();
233127
+ const classes = useStyles$3();
233132
233128
  const loaders = useLoaders();
233133
233129
  const [{ dataset, obsType, featureType, featureValueType, featureSelection: geneSelection, featureValueTransform, featureValueTransformCoefficient, obsSetSelection: cellSetSelection, obsSetColor: cellSetColor, additionalObsSets: additionalCellSets, sampleType, sampleSetSelection, sampleSetColor }, { setFeatureValueTransform, setFeatureValueTransformCoefficient, setSampleSetColor }] = useCoordination(COMPONENT_COORDINATION_TYPES[ViewType$1.OBS_SET_FEATURE_VALUE_DISTRIBUTION], coordinationScopes);
233134
233130
  const [width2, height2, containerRef] = useGridItemSize();
@@ -284774,7 +284770,7 @@ const VEGA_THEMES = {
284774
284770
  }
284775
284771
  };
284776
284772
  const DATASET_NAME = "table";
284777
- const useStyles$1 = makeStyles((theme) => ({
284773
+ const useStyles$2 = makeStyles((theme) => ({
284778
284774
  "@global": {
284779
284775
  "#vg-tooltip-element.vg-tooltip.custom-theme": {
284780
284776
  boxShadow: "0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12)",
@@ -284808,7 +284804,7 @@ function renderTooltipContents(tooltipText) {
284808
284804
  }
284809
284805
  function VegaPlot(props) {
284810
284806
  const { spec: partialSpec, data: data2, getTooltipText, signalListeners } = props;
284811
- const classes = useStyles$1();
284807
+ const classes = useStyles$2();
284812
284808
  const tooltipClasses = styles$1();
284813
284809
  const tooltipHandler = useMemo(() => {
284814
284810
  if (typeof getTooltipText === "function") {
@@ -284968,7 +284964,7 @@ function CellSetSizesPlot(props) {
284968
284964
  }
284969
284965
  function CellSetSizesPlotSubscriber(props) {
284970
284966
  const { coordinationScopes, closeButtonVisible, downloadButtonVisible, removeGridComponent, theme, title: titleOverride, helpText = ViewHelpMapping.OBS_SET_SIZES } = props;
284971
- const classes = useStyles$2();
284967
+ const classes = useStyles$3();
284972
284968
  const loaders = useLoaders();
284973
284969
  const [{ dataset, obsType, obsSetSelection: cellSetSelection, obsSetColor: cellSetColor, additionalObsSets: additionalCellSets, obsSetExpansion: cellSetExpansion }, { setObsSetSelection: setCellSetSelection, setObsSetColor: setCellSetColor }] = useCoordination(COMPONENT_COORDINATION_TYPES[ViewType$1.OBS_SET_SIZES], coordinationScopes);
284974
284970
  const title2 = titleOverride || `${capitalize$2(obsType)} Set Sizes`;
@@ -285074,7 +285070,7 @@ function ExpressionHistogram(props) {
285074
285070
  }
285075
285071
  function ExpressionHistogramSubscriber(props) {
285076
285072
  const { coordinationScopes, closeButtonVisible, downloadButtonVisible, removeGridComponent, theme, helpText = ViewHelpMapping.FEATURE_VALUE_HISTOGRAM } = props;
285077
- const classes = useStyles$2();
285073
+ const classes = useStyles$3();
285078
285074
  const loaders = useLoaders();
285079
285075
  const [{ dataset, obsType, featureType, featureValueType, featureSelection: geneSelection, additionalObsSets: additionalCellSets, obsSetColor: cellSetColor }, { setAdditionalObsSets: setAdditionalCellSets, setObsSetColor: setCellSetColor, setObsColorEncoding: setCellColorEncoding, setObsSetSelection: setCellSetSelection }] = useCoordination(COMPONENT_COORDINATION_TYPES[ViewType$1.FEATURE_VALUE_HISTOGRAM], coordinationScopes);
285080
285076
  const [width2, height2, containerRef] = useGridItemSize();
@@ -285273,7 +285269,7 @@ function useExpressionSummaries(sampleEdges, sampleSets, sampleSetSelection, exp
285273
285269
  function DotPlotSubscriber(props) {
285274
285270
  var _a3;
285275
285271
  const { coordinationScopes, removeGridComponent, theme, title: title2 = "Dot Plot", transpose: transpose2 = true, helpText = ViewHelpMapping.DOT_PLOT } = props;
285276
- const classes = useStyles$2();
285272
+ const classes = useStyles$3();
285277
285273
  const loaders = useLoaders();
285278
285274
  const [{ dataset, obsType, featureType, featureValueType, featureSelection: geneSelection, featureValueTransform, featureValueTransformCoefficient, featureValuePositivityThreshold: posThreshold, featureValueColormap, obsSetSelection: cellSetSelection, obsSetColor: cellSetColor, additionalObsSets: additionalCellSets, sampleType, sampleSetSelection }, { setFeatureValueTransform, setFeatureValueTransformCoefficient, setFeatureValuePositivityThreshold: setPosThreshold, setFeatureValueColormap }] = useCoordination(COMPONENT_COORDINATION_TYPES[ViewType$1.DOT_PLOT], coordinationScopes);
285279
285275
  const [width2, height2, containerRef] = useGridItemSize();
@@ -285415,7 +285411,7 @@ function FeatureBarPlot(props) {
285415
285411
  }
285416
285412
  function FeatureBarPlotSubscriber(props) {
285417
285413
  const { coordinationScopes, removeGridComponent, theme, yMin = 0, yUnits = null, helpText = ViewHelpMapping.FEATURE_BAR_PLOT } = props;
285418
- const classes = useStyles$2();
285414
+ const classes = useStyles$3();
285419
285415
  const loaders = useLoaders();
285420
285416
  const [{ dataset, obsType, featureType, featureValueType, featureSelection: geneSelection, featureValueTransform, featureValueTransformCoefficient, obsHighlight: cellHighlight, additionalObsSets: additionalCellSets, obsSetSelection: cellSetSelection, obsSetColor: cellSetColor }, { setObsSetSelection: setCellSetSelection, setObsHighlight: setCellHighlight, setObsSetColor: setCellSetColor, setObsColorEncoding: setCellColorEncoding, setAdditionalObsSets: setAdditionalCellSets }] = useCoordination(COMPONENT_COORDINATION_TYPES[ViewType$1.FEATURE_BAR_PLOT], coordinationScopes);
285421
285417
  const [width2, height2, containerRef] = useGridItemSize();
@@ -285504,7 +285500,7 @@ function uidGenerator(prefix2) {
285504
285500
  };
285505
285501
  }
285506
285502
  function Treemap(props) {
285507
- const { obsCounts, obsColorEncoding, hierarchyLevels, theme, width: width2, height: height2, obsType, sampleType, obsSetColor, sampleSetColor, obsSetSelection, sampleSetSelection, marginTop = 5, marginRight = 5, marginLeft = 80, marginBottom } = props;
285503
+ const { obsCounts, obsColorEncoding, hierarchyLevels, theme, width: width2, height: height2, obsType, sampleType, obsSetColor, sampleSetColor, obsSetSelection, sampleSetSelection, marginTop = 5, marginRight = 5, marginLeft = 80, marginBottom, onNodeClick } = props;
285508
285504
  const hierarchyData = useMemo(() => {
285509
285505
  if (!obsCounts) {
285510
285506
  return null;
@@ -285558,7 +285554,11 @@ function Treemap(props) {
285558
285554
  leaf.append("rect").attr("id", (d) => {
285559
285555
  d.leafUid = getLeafUid();
285560
285556
  return d.leafUid.id;
285561
- }).attr("fill", (d) => colorScale2(getPathForColoring(d))).attr("fill-opacity", 0.8).attr("width", (d) => d.x1 - d.x0).attr("height", (d) => d.y1 - d.y0);
285557
+ }).attr("fill", (d) => colorScale2(getPathForColoring(d))).attr("fill-opacity", 0.8).attr("width", (d) => d.x1 - d.x0).attr("height", (d) => d.y1 - d.y0).on("click", (e3, d) => {
285558
+ var _a3, _b3, _c3;
285559
+ const obsSetPath2 = hierarchyLevels[0] === "obsSet" ? (_b3 = (_a3 = d.parent) == null ? void 0 : _a3.data) == null ? void 0 : _b3[0] : (_c3 = d.data) == null ? void 0 : _c3[0];
285560
+ onNodeClick(obsSetPath2);
285561
+ });
285562
285562
  leaf.append("clipPath").attr("id", (d) => {
285563
285563
  d.clipUid = getClipUid();
285564
285564
  return d.clipUid.id;
@@ -285590,7 +285590,8 @@ function Treemap(props) {
285590
285590
  obsSetColorScale,
285591
285591
  sampleSetColorScale,
285592
285592
  obsColorEncoding,
285593
- hierarchyLevels
285593
+ hierarchyLevels,
285594
+ onNodeClick
285594
285595
  ]);
285595
285596
  return jsxRuntimeExports.jsx("svg", { ref: svgRef, style: {
285596
285597
  top: 0,
@@ -285624,7 +285625,7 @@ function TreemapOptions(props) {
285624
285625
  const DEFAULT_HIERARCHY_LEVELS = ["obsSet", "sampleSet"];
285625
285626
  function TreemapSubscriber(props) {
285626
285627
  const { coordinationScopes, removeGridComponent, theme, helpText = ViewHelpMapping.TREEMAP } = props;
285627
- const classes = useStyles$2();
285628
+ const classes = useStyles$3();
285628
285629
  const loaders = useLoaders();
285629
285630
  const [{ dataset, obsType, featureType, featureValueType, obsFilter, obsHighlight, obsSetSelection, obsSetFilter, obsSelection, obsSelectionMode, obsSetHighlight, obsSetColor, obsColorEncoding, additionalObsSets, sampleType, sampleSetSelection, sampleSetFilter, sampleSetColor, sampleSelection, sampleSelectionMode, sampleFilter, sampleFilterMode, sampleHighlight, hierarchyLevels }, { setObsFilter, setObsSelection: setObsSelection2, setObsSetFilter, setObsSetSelection, setObsSelectionMode, setObsFilterMode, setObsHighlight, setObsSetColor, setObsColorEncoding, setAdditionalObsSets, setSampleFilter, setSampleSetFilter, setSampleFilterMode, setSampleSelection, setSampleSetSelection, setSampleSelectionMode, setSampleHighlight, setSampleSetColor, setHierarchyLevels }] = useCoordination(COMPONENT_COORDINATION_TYPES[ViewType$1.TREEMAP], coordinationScopes);
285630
285631
  const [width2, height2, containerRef] = useGridItemSize();
@@ -285717,7 +285718,10 @@ function TreemapSubscriber(props) {
285717
285718
  sampleSetSelection
285718
285719
  // TODO: consider filtering-related coordination values
285719
285720
  ]);
285720
- return jsxRuntimeExports.jsx(TitleInfo, { title: `Treemap of ${capitalize$2(pluralize(obsType, 2))}`, info: `${commaNumber(obsCount)} ${pluralize(obsType, obsCount)} from ${commaNumber(sampleCount)} ${pluralize(sampleType, sampleCount)}`, removeGridComponent, urls: urls2, theme, isReady, helpText, options: jsxRuntimeExports.jsx(TreemapOptions, { obsType, sampleType, obsColorEncoding, setObsColorEncoding, hierarchyLevels: hierarchyLevels || DEFAULT_HIERARCHY_LEVELS, setHierarchyLevels }), children: jsxRuntimeExports.jsx("div", { ref: containerRef, className: classes.vegaContainer, children: jsxRuntimeExports.jsx(Treemap, { obsCounts, sampleCounts, obsColorEncoding, hierarchyLevels: hierarchyLevels || DEFAULT_HIERARCHY_LEVELS, theme, width: width2, height: height2, obsType, sampleType, obsSetColor, sampleSetColor, obsSetSelection, sampleSetSelection }) }) });
285721
+ const onNodeClick = useCallback((obsSetPath2) => {
285722
+ setObsSetSelection([obsSetPath2]);
285723
+ }, [setObsSetSelection]);
285724
+ return jsxRuntimeExports.jsx(TitleInfo, { title: `Treemap of ${capitalize$2(pluralize(obsType, 2))}`, info: `${commaNumber(obsCount)} ${pluralize(obsType, obsCount)} from ${commaNumber(sampleCount)} ${pluralize(sampleType, sampleCount)}`, removeGridComponent, urls: urls2, theme, isReady, helpText, options: jsxRuntimeExports.jsx(TreemapOptions, { obsType, sampleType, obsColorEncoding, setObsColorEncoding, hierarchyLevels: hierarchyLevels || DEFAULT_HIERARCHY_LEVELS, setHierarchyLevels }), children: jsxRuntimeExports.jsx("div", { ref: containerRef, className: classes.vegaContainer, children: jsxRuntimeExports.jsx(Treemap, { obsCounts, sampleCounts, obsColorEncoding, hierarchyLevels: hierarchyLevels || DEFAULT_HIERARCHY_LEVELS, theme, width: width2, height: height2, obsType, sampleType, obsSetColor, sampleSetColor, obsSetSelection, sampleSetSelection, onNodeClick }) }) });
285721
285725
  }
285722
285726
  function VolcanoPlot(props) {
285723
285727
  const { theme, width: width2, height: height2, obsType, featureType, obsSetsColumnNameMapping, sampleSetsColumnNameMapping, sampleSetSelection, obsSetSelection, obsSetColor, sampleSetColor, data: data2, marginTop = 5, marginRight = 5, marginLeft = 50, marginBottom = 50, onFeatureClick, featurePointSignificanceThreshold, featurePointFoldChangeThreshold, featureLabelSignificanceThreshold, featureLabelFoldChangeThreshold } = props;
@@ -285760,7 +285764,7 @@ function VolcanoPlot(props) {
285760
285764
  svg2.append("g").attr("transform", `translate(0,${height2 - marginBottom})`).call(axisBottom(xScale));
285761
285765
  svg2.append("g").attr("transform", `translate(${marginLeft},0)`).call(axisLeft(yScale));
285762
285766
  const titleG = svg2.append("g");
285763
- const fgColor = "black";
285767
+ const fgColor = colorArrayToString(getDefaultForegroundColor(theme));
285764
285768
  titleG.append("text").attr("text-anchor", "middle").attr("x", -innerHeight / 2).attr("y", 15).attr("transform", "rotate(-90)").text("-log10 p-value").style("font-size", "12px").style("fill", fgColor);
285765
285769
  titleG.append("text").attr("text-anchor", "middle").attr("x", marginLeft + innerWidth / 2).attr("y", height2 - 10).text("log2 fold-change").style("font-size", "12px").style("fill", fgColor);
285766
285770
  const obsSetsColumnNameMappingReversed = Object.fromEntries(Object.entries(obsSetsColumnNameMapping).map(([key2, value2]) => [value2, key2]));
@@ -285865,7 +285869,7 @@ function VolcanoPlotOptions(props) {
285865
285869
  }
285866
285870
  function VolcanoPlotSubscriber(props) {
285867
285871
  const { coordinationScopes, removeGridComponent, theme, helpText = ViewHelpMapping.VOLCANO_PLOT } = props;
285868
- const classes = useStyles$2();
285872
+ const classes = useStyles$3();
285869
285873
  const loaders = useLoaders();
285870
285874
  const [{ dataset, obsType, sampleType, featureType, featureValueType, obsFilter: cellFilter, obsHighlight: cellHighlight, obsSetSelection, obsSetColor, obsColorEncoding: cellColorEncoding, additionalObsSets: additionalCellSets, featurePointSignificanceThreshold, featurePointFoldChangeThreshold, featureLabelSignificanceThreshold, featureLabelFoldChangeThreshold, featureValueTransform, featureValueTransformCoefficient, gatingFeatureSelectionX, gatingFeatureSelectionY, featureSelection, sampleSetSelection, sampleSetColor }, { setObsFilter: setCellFilter, setObsSetSelection, setObsHighlight: setCellHighlight, setObsSetColor: setCellSetColor, setObsColorEncoding: setCellColorEncoding, setAdditionalObsSets: setAdditionalCellSets, setFeaturePointSignificanceThreshold, setFeaturePointFoldChangeThreshold, setFeatureLabelSignificanceThreshold, setFeatureLabelFoldChangeThreshold, setFeatureValueTransform, setFeatureValueTransformCoefficient, setGatingFeatureSelectionX, setGatingFeatureSelectionY, setFeatureSelection, setSampleSetSelection, setSampleSetColor }] = useCoordination(COMPONENT_COORDINATION_TYPES[ViewType$1.VOLCANO_PLOT], coordinationScopes);
285871
285875
  const [width2, height2, containerRef] = useGridItemSize();
@@ -286048,7 +286052,7 @@ function CellSetCompositionBarPlot(props) {
286048
286052
  }
286049
286053
  function CellSetCompositionBarPlotSubscriber(props) {
286050
286054
  const { coordinationScopes, removeGridComponent, theme, helpText = ViewHelpMapping.OBS_SET_COMPOSITION_BAR_PLOT } = props;
286051
- const classes = useStyles$2();
286055
+ const classes = useStyles$3();
286052
286056
  const loaders = useLoaders();
286053
286057
  const [{ dataset, obsType, sampleType, featureType, featureValueType, obsFilter: cellFilter, obsHighlight: cellHighlight, obsSetSelection, obsSetColor, obsColorEncoding: cellColorEncoding, additionalObsSets: additionalCellSets, featurePointSignificanceThreshold, featurePointFoldChangeThreshold, featureLabelSignificanceThreshold, featureLabelFoldChangeThreshold, featureValueTransform, featureValueTransformCoefficient, gatingFeatureSelectionX, gatingFeatureSelectionY, featureSelection, sampleSetSelection, sampleSetColor }, { setObsFilter: setCellFilter, setObsSetSelection, setObsHighlight: setCellHighlight, setObsSetColor: setCellSetColor, setObsColorEncoding: setCellColorEncoding, setAdditionalObsSets: setAdditionalCellSets, setFeaturePointSignificanceThreshold, setFeaturePointFoldChangeThreshold, setFeatureLabelSignificanceThreshold, setFeatureLabelFoldChangeThreshold, setFeatureValueTransform, setFeatureValueTransformCoefficient, setGatingFeatureSelectionX, setGatingFeatureSelectionY, setFeatureSelection, setSampleSetSelection, setSampleSetColor }] = useCoordination(COMPONENT_COORDINATION_TYPES[ViewType$1.OBS_SET_COMPOSITION_BAR_PLOT], coordinationScopes);
286054
286058
  const [width2, height2, containerRef] = useGridItemSize();
@@ -286178,7 +286182,7 @@ function FeatureSetEnrichmentBarPlot(props) {
286178
286182
  x: {
286179
286183
  field: "minusLog10p",
286180
286184
  type: "quantitative",
286181
- title: "- log10 p-value"
286185
+ title: "-log10 p-value"
286182
286186
  },
286183
286187
  color: {
286184
286188
  field: "key",
@@ -286228,7 +286232,7 @@ function FeatureSetEnrichmentBarPlot(props) {
286228
286232
  }
286229
286233
  function FeatureSetEnrichmentBarPlotSubscriber(props) {
286230
286234
  const { coordinationScopes, removeGridComponent, theme, helpText = ViewHelpMapping.FEATURE_SET_ENRICHMENT_BAR_PLOT } = props;
286231
- const classes = useStyles$2();
286235
+ const classes = useStyles$3();
286232
286236
  const loaders = useLoaders();
286233
286237
  useAsyncFunction(AsyncFunctionType.TRANSFORM_FEATURE);
286234
286238
  const [{ dataset, obsType, sampleType, featureType, featureValueType, obsFilter: cellFilter, obsHighlight: cellHighlight, obsSetSelection, obsSetColor, obsColorEncoding: cellColorEncoding, additionalObsSets: additionalCellSets, featurePointSignificanceThreshold, featurePointFoldChangeThreshold, featureLabelSignificanceThreshold, featureLabelFoldChangeThreshold, featureValueTransform, featureValueTransformCoefficient, gatingFeatureSelectionX, gatingFeatureSelectionY, featureSelection, sampleSetSelection, sampleSetColor }, { setObsFilter: setCellFilter, setObsSetSelection, setObsHighlight: setCellHighlight, setObsSetColor: setCellSetColor, setObsColorEncoding: setCellColorEncoding, setAdditionalObsSets: setAdditionalCellSets, setFeaturePointSignificanceThreshold, setFeaturePointFoldChangeThreshold, setFeatureLabelSignificanceThreshold, setFeatureLabelFoldChangeThreshold, setFeatureValueTransform, setFeatureValueTransformCoefficient, setGatingFeatureSelectionX, setGatingFeatureSelectionY, setFeatureSelection, setSampleSetSelection, setSampleSetColor }] = useCoordination(COMPONENT_COORDINATION_TYPES[ViewType$1.FEATURE_SET_ENRICHMENT_BAR_PLOT], coordinationScopes);
@@ -338565,7 +338569,7 @@ class GlbDataLoader extends AbstractTwoStepLoader {
338565
338569
  });
338566
338570
  }
338567
338571
  }
338568
- const useStyles = makeStyles(() => ({
338572
+ const useStyles$1 = makeStyles(() => ({
338569
338573
  header: {
338570
338574
  marginTop: "10px",
338571
338575
  marginBottom: "10px"
@@ -338608,7 +338612,7 @@ function ConfirmatoryCart(props) {
338608
338612
  // eslint-disable-next-line no-unused-vars
338609
338613
  setCurrentStratificationSelection
338610
338614
  } = props;
338611
- const classes = useStyles();
338615
+ const classes = useStyles$1();
338612
338616
  const [expandedAccordions, setExpandedAccordions] = React__default.useState([
338613
338617
  "agnostic",
338614
338618
  "specific",
@@ -340804,7 +340808,7 @@ const ListboxComponent = React__default.forwardRef((props, ref2) => {
340804
340808
  });
340805
340809
  function SelectAgnostic(props) {
340806
340810
  const { autocompleteNode, currentModalityAgnosticSelection, setCurrentModalityAgnosticSelection } = props;
340807
- const classes = useStyles();
340811
+ const classes = useStyles$1();
340808
340812
  const [selectedItem, setSelectedItem] = React__default.useState(null);
340809
340813
  const [potentialItems, setPotentialItems] = React__default.useState([]);
340810
340814
  const handleChange = async (event2) => {
@@ -345570,7 +345574,7 @@ const columns = [
345570
345574
  ];
345571
345575
  function SelectSpecific(props) {
345572
345576
  const { currentModalityAgnosticSelection, currentModalitySpecificSelection, setCurrentModalitySpecificSelection, getEdges } = props;
345573
- const classes = useStyles();
345577
+ const classes = useStyles$1();
345574
345578
  const queries = useQueries({
345575
345579
  queries: (currentModalityAgnosticSelection == null ? void 0 : currentModalityAgnosticSelection.map((item) => ({
345576
345580
  queryKey: [item.nodeType, item.kgId],
@@ -345622,7 +345626,7 @@ const steps$1 = [
345622
345626
  ];
345623
345627
  function ConfirmatoryStepper(props) {
345624
345628
  const { autocompleteNode, currentModalityAgnosticSelection, setCurrentModalityAgnosticSelection, currentModalitySpecificSelection, setCurrentModalitySpecificSelection, currentStratificationSelection, setCurrentStratificationSelection, getEdges, stratifications, onFinish } = props;
345625
- const classes = useStyles();
345629
+ const classes = useStyles$1();
345626
345630
  const [activeStep, setActiveStep] = React__default.useState(0);
345627
345631
  const [skipped, setSkipped] = React__default.useState(/* @__PURE__ */ new Set());
345628
345632
  const isStepOptional = (step2) => step2 === 2;
@@ -345675,7 +345679,7 @@ const steps = [
345675
345679
  ];
345676
345680
  function ExploratoryStepper(props) {
345677
345681
  const { autocompleteNode, currentModalityAgnosticSelection, setCurrentModalityAgnosticSelection, currentModalitySpecificSelection, setCurrentModalitySpecificSelection, currentStratificationSelection, setCurrentStratificationSelection, getEdges, stratifications, onFinish } = props;
345678
- const classes = useStyles();
345682
+ const classes = useStyles$1();
345679
345683
  const [activeStep, setActiveStep] = React__default.useState(0);
345680
345684
  const [skipped, setSkipped] = React__default.useState(/* @__PURE__ */ new Set());
345681
345685
  const isStepOptional = (step2) => step2 === 2;
@@ -345725,7 +345729,7 @@ function ExploratoryStepper(props) {
345725
345729
  }
345726
345730
  function ScmdUi(props) {
345727
345731
  const { mode: modeProp, setMode, step: stepProp, setStep, currentModalityAgnosticSelection, setCurrentModalityAgnosticSelection, currentModalitySpecificSelection, setCurrentModalitySpecificSelection, currentStratificationSelection, setCurrentStratificationSelection, autocompleteNode, getEdges, stratifications, onFinish } = props;
345728
- const classes = useStyles();
345732
+ const classes = useStyles$1();
345729
345733
  const mode = modeProp || "confirmatory";
345730
345734
  const [tempIsVisible, setTempIsVisible] = useState(true);
345731
345735
  const isConfirmatoryMode = mode === "confirmatory";
@@ -345800,11 +345804,47 @@ function BiomarkerSelectSubscriber(props) {
345800
345804
  setViewConfig(newViewConfig);
345801
345805
  } }) : null });
345802
345806
  }
345807
+ const useStyles = makeStyles((theme) => ({
345808
+ buttonContainer: {
345809
+ position: "absolute",
345810
+ right: 0,
345811
+ display: "flex",
345812
+ flexDirection: "column",
345813
+ justifyContent: "center",
345814
+ height: "100%"
345815
+ },
345816
+ headingContainer: {
345817
+ backgroundColor: "transparent"
345818
+ },
345819
+ headingSectionContainer: {
345820
+ width: "100%",
345821
+ display: "flex",
345822
+ flexDirection: "row",
345823
+ position: "relative"
345824
+ },
345825
+ headingText: {
345826
+ margin: 0,
345827
+ color: theme.palette.primaryForeground
345828
+ }
345829
+ }));
345803
345830
  function ComparativeHeadingSubscriber(props) {
345804
345831
  var _a3, _b3;
345805
345832
  const { coordinationScopes } = props;
345806
- const [{ sampleSetSelection }] = useCoordination(COMPONENT_COORDINATION_TYPES[ViewType$1.COMPARATIVE_HEADING], coordinationScopes);
345807
- return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: sampleSetSelection && sampleSetSelection.length === 2 ? jsxRuntimeExports.jsxs("div", { style: { width: "100%", display: "flex", flexDirection: "row" }, children: [jsxRuntimeExports.jsx("div", { style: { width: "45%" }, children: jsxRuntimeExports.jsx("h2", { children: (_a3 = sampleSetSelection == null ? void 0 : sampleSetSelection[0]) == null ? void 0 : _a3.at(-1) }) }), jsxRuntimeExports.jsx("div", { style: { width: "5%" }, children: jsxRuntimeExports.jsx("h2", { style: { textAlign: "right" }, children: "vs. " }) }), jsxRuntimeExports.jsx("div", { style: { width: "50%" }, children: jsxRuntimeExports.jsx("h2", { children: (_b3 = sampleSetSelection == null ? void 0 : sampleSetSelection[1]) == null ? void 0 : _b3.at(-1) }) })] }) : null });
345833
+ const [{ sampleSetSelection, featureSelection }, {
345834
+ setSampleSetSelection
345835
+ // TODO: buttons for modification of featureSelection
345836
+ // setFeatureSelection,
345837
+ }] = useCoordination(COMPONENT_COORDINATION_TYPES[ViewType$1.COMPARATIVE_HEADING], coordinationScopes);
345838
+ const classes = useStyles();
345839
+ const swapSampleSets = useCallback(() => {
345840
+ if ((sampleSetSelection == null ? void 0 : sampleSetSelection.length) === 2) {
345841
+ setSampleSetSelection([
345842
+ sampleSetSelection[1],
345843
+ sampleSetSelection[0]
345844
+ ]);
345845
+ }
345846
+ }, [sampleSetSelection, setSampleSetSelection]);
345847
+ return jsxRuntimeExports.jsxs("div", { className: classes.headingContainer, children: [sampleSetSelection && sampleSetSelection.length === 2 ? jsxRuntimeExports.jsxs("div", { className: classes.headingSectionContainer, children: [jsxRuntimeExports.jsx("div", { style: { width: "45%" }, children: jsxRuntimeExports.jsx("h2", { className: classes.headingText, children: (_a3 = sampleSetSelection == null ? void 0 : sampleSetSelection[0]) == null ? void 0 : _a3.at(-1) }) }), jsxRuntimeExports.jsx("div", { style: { width: "5%" }, children: jsxRuntimeExports.jsx("h2", { className: classes.headingText, style: { textAlign: "right" }, children: "vs. " }) }), jsxRuntimeExports.jsx("div", { style: { width: "50%" }, children: jsxRuntimeExports.jsx("h2", { className: classes.headingText, children: (_b3 = sampleSetSelection == null ? void 0 : sampleSetSelection[1]) == null ? void 0 : _b3.at(-1) }) }), jsxRuntimeExports.jsx("div", { className: classes.buttonContainer, children: jsxRuntimeExports.jsx("button", { onClick: swapSampleSets, type: "button", children: "Swap" }) })] }) : null, featureSelection && featureSelection.length > 0 ? jsxRuntimeExports.jsxs("div", { className: classes.headingSectionContainer, children: [jsxRuntimeExports.jsx("div", { children: jsxRuntimeExports.jsx("h3", { className: classes.headingText, children: "Selected Biomarkers: " }) }), featureSelection == null ? void 0 : featureSelection.map((featureName, i2) => jsxRuntimeExports.jsx("div", { children: jsxRuntimeExports.jsxs("h3", { className: classes.headingText, children: [featureName, i2 < featureSelection.length - 1 ? jsxRuntimeExports.jsx("span", { children: ", " }) : null] }) }))] }) : null] });
345808
345848
  }
345809
345849
  function isArray3(value2) {
345810
345850
  return !Array.isArray ? getTag(value2) === "[object Array]" : Array.isArray(value2);
@@ -1,4 +1,4 @@
1
- import { aV as _export, aW as _coreExports, aX as _fails, aY as _toObject, aZ as _objectKeys, g as getDefaultExportFromCjs, a_ as _wksExports, a$ as _cof, b0 as _iterators, b1 as _anObject, b2 as _hide, b3 as _ctx, b4 as _toLength, b5 as _globalExports, b6 as _objectDp, b7 as _descriptors, b8 as _isObject, b9 as _metaExports, ba as _objectCreate, bb as _iterDefine, bc as _iterStep, bd as _isArray, be as _iobject, bf as _setToStringTag, bg as _aFunction, bh as _propertyDesc, bi as _root, bj as _baseGetTag, bk as isObjectLike_1, bl as isObject_1, bm as _Symbol$iterator, bn as _Object$assign, bo as _objectGopd, bp as _toIobject, bq as _html, br as _domCreate, bs as _library, bt as _Object$defineProperty, bu as _Symbol, bv as _objectPie, bw as _has, bx as _redefine, by as _objectAssign, aS as commonjsGlobal, bz as getAugmentedNamespace, bA as propTypesExports } from "./index-ec9f6e92.js";
1
+ import { aV as _export, aW as _coreExports, aX as _fails, aY as _toObject, aZ as _objectKeys, g as getDefaultExportFromCjs, a_ as _wksExports, a$ as _cof, b0 as _iterators, b1 as _anObject, b2 as _hide, b3 as _ctx, b4 as _toLength, b5 as _globalExports, b6 as _objectDp, b7 as _descriptors, b8 as _isObject, b9 as _metaExports, ba as _objectCreate, bb as _iterDefine, bc as _iterStep, bd as _isArray, be as _iobject, bf as _setToStringTag, bg as _aFunction, bh as _propertyDesc, bi as _root, bj as _baseGetTag, bk as isObjectLike_1, bl as isObject_1, bm as _Symbol$iterator, bn as _Object$assign, bo as _objectGopd, bp as _toIobject, bq as _html, br as _domCreate, bs as _library, bt as _Object$defineProperty, bu as _Symbol, bv as _objectPie, bw as _has, bx as _redefine, by as _objectAssign, aS as commonjsGlobal, bz as getAugmentedNamespace, bA as propTypesExports } from "./index-13b53ff7.js";
2
2
  import React__default from "react";
3
3
  function _mergeNamespaces(n, m) {
4
4
  for (var i = 0; i < m.length; i++) {
@@ -1,4 +1,4 @@
1
- import { g as getDefaultExportFromCjs, R as Raycaster, O as OrthographicCamera, P as PerspectiveCamera, S as Scene, a as PCFSoftShadowMap, N as NoToneMapping, A as ACESFilmicToneMapping, V as Vector2, b as Vector3, L as Layers, T as Texture, c as RGBAFormat, U as UnsignedByteType, W as WebGLRenderer, C as Camera, B as BasicShadowMap, d as PCFShadowMap, e as VSMShadowMap, f as BufferGeometry, M as Material, h as Color, i as Clock, _ as _extends, j as THREE, G as Group, k as Matrix4, l as TrianglesDrawMode, m as TriangleFanDrawMode, n as TriangleStripDrawMode, o as REVISION, p as Ray$1, q as Plane, E as EventDispatcher, r as MOUSE, s as TOUCH, Q as Quaternion, t as Spherical, u as Loader, v as LoaderUtils, F as FileLoader, w as SpotLight, x as PointLight, D as DirectionalLight, y as MeshBasicMaterial, z as MeshPhysicalMaterial, I as InstancedMesh, H as Object3D, J as TextureLoader, K as ImageBitmapLoader, X as BufferAttribute, Y as InterleavedBuffer, Z as LinearFilter, $ as LinearMipmapLinearFilter, a0 as RepeatWrapping, a1 as PointsMaterial, a2 as LineBasicMaterial, a3 as MeshStandardMaterial, a4 as DoubleSide, a5 as PropertyBinding, a6 as SkinnedMesh, a7 as Mesh, a8 as LineSegments, a9 as Line$1, aa as LineLoop, ab as Points, ac as MathUtils, ad as Skeleton, ae as InterpolateLinear, af as AnimationClip, ag as Bone, ah as NearestFilter, ai as NearestMipmapNearestFilter, aj as LinearMipmapNearestFilter, ak as NearestMipmapLinearFilter, al as ClampToEdgeWrapping, am as MirroredRepeatWrapping, an as InterpolateDiscrete, ao as FrontSide, ap as InterleavedBufferAttribute, aq as VectorKeyframeTrack, ar as QuaternionKeyframeTrack, as as NumberKeyframeTrack, at as Box3, au as Sphere, av as Interpolant, aw as InstancedBufferGeometry, ax as Float32BufferAttribute, ay as InstancedInterleavedBuffer, az as WireframeGeometry, aA as ShaderMaterial, aB as UniformsUtils, aC as UniformsLib, aD as Vector4, aE as Line3, aF as SphereGeometry, aG as Triangle, aH as BackSide, aI as jsxRuntimeExports, aJ as Matrix3, aK as CoordinationType, aL as Data3DTexture, aM as RedFormat, aN as FloatType, aO as getImageSize } from "./index-ec9f6e92.js";
1
+ import { g as getDefaultExportFromCjs, R as Raycaster, O as OrthographicCamera, P as PerspectiveCamera, S as Scene, a as PCFSoftShadowMap, N as NoToneMapping, A as ACESFilmicToneMapping, V as Vector2, b as Vector3, L as Layers, T as Texture, c as RGBAFormat, U as UnsignedByteType, W as WebGLRenderer, C as Camera, B as BasicShadowMap, d as PCFShadowMap, e as VSMShadowMap, f as BufferGeometry, M as Material, h as Color, i as Clock, _ as _extends, j as THREE, G as Group, k as Matrix4, l as TrianglesDrawMode, m as TriangleFanDrawMode, n as TriangleStripDrawMode, o as REVISION, p as Ray$1, q as Plane, E as EventDispatcher, r as MOUSE, s as TOUCH, Q as Quaternion, t as Spherical, u as Loader, v as LoaderUtils, F as FileLoader, w as SpotLight, x as PointLight, D as DirectionalLight, y as MeshBasicMaterial, z as MeshPhysicalMaterial, I as InstancedMesh, H as Object3D, J as TextureLoader, K as ImageBitmapLoader, X as BufferAttribute, Y as InterleavedBuffer, Z as LinearFilter, $ as LinearMipmapLinearFilter, a0 as RepeatWrapping, a1 as PointsMaterial, a2 as LineBasicMaterial, a3 as MeshStandardMaterial, a4 as DoubleSide, a5 as PropertyBinding, a6 as SkinnedMesh, a7 as Mesh, a8 as LineSegments, a9 as Line$1, aa as LineLoop, ab as Points, ac as MathUtils, ad as Skeleton, ae as InterpolateLinear, af as AnimationClip, ag as Bone, ah as NearestFilter, ai as NearestMipmapNearestFilter, aj as LinearMipmapNearestFilter, ak as NearestMipmapLinearFilter, al as ClampToEdgeWrapping, am as MirroredRepeatWrapping, an as InterpolateDiscrete, ao as FrontSide, ap as InterleavedBufferAttribute, aq as VectorKeyframeTrack, ar as QuaternionKeyframeTrack, as as NumberKeyframeTrack, at as Box3, au as Sphere, av as Interpolant, aw as InstancedBufferGeometry, ax as Float32BufferAttribute, ay as InstancedInterleavedBuffer, az as WireframeGeometry, aA as ShaderMaterial, aB as UniformsUtils, aC as UniformsLib, aD as Vector4, aE as Line3, aF as SphereGeometry, aG as Triangle, aH as BackSide, aI as jsxRuntimeExports, aJ as Matrix3, aK as CoordinationType, aL as Data3DTexture, aM as RedFormat, aN as FloatType, aO as getImageSize } from "./index-13b53ff7.js";
2
2
  import * as React from "react";
3
3
  import React__default, { useReducer, useRef, useDebugValue, useEffect, useLayoutEffect, useState, useMemo, forwardRef } from "react";
4
4
  import "@vitessce/vit-s";
@@ -23800,7 +23800,7 @@ const Text = /* @__PURE__ */ React.forwardRef(({
23800
23800
  const {
23801
23801
  Text: TextMeshImpl,
23802
23802
  preloadFont
23803
- } = suspend(async () => import("./troika-three-text.esm-f2c32ddf.js"), []);
23803
+ } = suspend(async () => import("./troika-three-text.esm-bb9bae50.js"), []);
23804
23804
  const invalidate2 = useThree(({
23805
23805
  invalidate: invalidate3
23806
23806
  }) => invalidate3);
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { bM, bK, bI, bL, bJ, bH, bN } from "./index-ec9f6e92.js";
1
+ import { bM, bK, bI, bL, bJ, bH, bN } from "./index-13b53ff7.js";
2
2
  import { useComplexCoordination, useComplexCoordinationSecondary, useCoordination, useCoordinationScopes, useCoordinationScopesBy, useGridItemSize, useMultiCoordinationScopesNonNull, useMultiCoordinationScopesSecondaryNonNull, usePageModeView } from "@vitessce/vit-s";
3
3
  import "react";
4
4
  import "react-dom";
@@ -1,4 +1,4 @@
1
- import { aP as BaseDecoder } from "./index-ec9f6e92.js";
1
+ import { aP as BaseDecoder } from "./index-13b53ff7.js";
2
2
  import "react";
3
3
  import "@vitessce/vit-s";
4
4
  import "react-dom";
@@ -1,5 +1,5 @@
1
1
  import { i as inflate_1 } from "./pako.esm-68f84e2a.js";
2
- import { g as getDefaultExportFromCjs, aP as BaseDecoder, aQ as LercParameters, aR as LercAddCompression } from "./index-ec9f6e92.js";
2
+ import { g as getDefaultExportFromCjs, aP as BaseDecoder, aQ as LercParameters, aR as LercAddCompression } from "./index-13b53ff7.js";
3
3
  import "react";
4
4
  import "@vitessce/vit-s";
5
5
  import "react-dom";
@@ -1,4 +1,4 @@
1
- import { aP as BaseDecoder } from "./index-ec9f6e92.js";
1
+ import { aP as BaseDecoder } from "./index-13b53ff7.js";
2
2
  import "react";
3
3
  import "@vitessce/vit-s";
4
4
  import "react-dom";
@@ -1,4 +1,4 @@
1
- import { aP as BaseDecoder } from "./index-ec9f6e92.js";
1
+ import { aP as BaseDecoder } from "./index-13b53ff7.js";
2
2
  import "react";
3
3
  import "@vitessce/vit-s";
4
4
  import "react-dom";
@@ -1,4 +1,4 @@
1
- import { aP as BaseDecoder } from "./index-ec9f6e92.js";
1
+ import { aP as BaseDecoder } from "./index-13b53ff7.js";
2
2
  import "react";
3
3
  import "@vitessce/vit-s";
4
4
  import "react-dom";
@@ -1,4 +1,4 @@
1
- import { aB as UniformsUtils, bB as MeshDepthMaterial, bC as RGBADepthPacking, bD as MeshDistanceMaterial, bE as ShaderChunk, T as Texture, Z as LinearFilter, aw as InstancedBufferGeometry, au as Sphere, at as Box3, aH as BackSide, a4 as DoubleSide, bF as InstancedBufferAttribute, V as Vector2, aD as Vector4, h as Color, aJ as Matrix3, a7 as Mesh, ao as FrontSide, bG as PlaneGeometry, f as BufferGeometry, ax as Float32BufferAttribute, y as MeshBasicMaterial, k as Matrix4, b as Vector3 } from "./index-ec9f6e92.js";
1
+ import { aB as UniformsUtils, bB as MeshDepthMaterial, bC as RGBADepthPacking, bD as MeshDistanceMaterial, bE as ShaderChunk, T as Texture, Z as LinearFilter, aw as InstancedBufferGeometry, au as Sphere, at as Box3, aH as BackSide, a4 as DoubleSide, bF as InstancedBufferAttribute, V as Vector2, aD as Vector4, h as Color, aJ as Matrix3, a7 as Mesh, ao as FrontSide, bG as PlaneGeometry, f as BufferGeometry, ax as Float32BufferAttribute, y as MeshBasicMaterial, k as Matrix4, b as Vector3 } from "./index-13b53ff7.js";
2
2
  import "react";
3
3
  import "@vitessce/vit-s";
4
4
  import "react-dom";
@@ -1,4 +1,4 @@
1
- import { aP as BaseDecoder } from "./index-ec9f6e92.js";
1
+ import { aP as BaseDecoder } from "./index-13b53ff7.js";
2
2
  import "react";
3
3
  import "@vitessce/vit-s";
4
4
  import "react-dom";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vitessce/all",
3
- "version": "3.5.8",
3
+ "version": "3.5.9",
4
4
  "author": "HIDIVE Lab at HMS",
5
5
  "homepage": "http://vitessce.io",
6
6
  "repository": {
@@ -18,35 +18,35 @@
18
18
  "dependencies": {
19
19
  "@material-ui/core": "~4.12.3",
20
20
  "zod": "^3.21.4",
21
- "@vitessce/constants-internal": "3.5.8",
22
- "@vitessce/abstract": "3.5.8",
23
- "@vitessce/csv": "3.5.8",
24
- "@vitessce/description": "3.5.8",
25
- "@vitessce/feature-list": "3.5.8",
26
- "@vitessce/genomic-profiles": "3.5.8",
27
- "@vitessce/heatmap": "3.5.8",
28
- "@vitessce/glb": "3.5.8",
29
- "@vitessce/json": "3.5.8",
30
- "@vitessce/layer-controller": "3.5.8",
31
- "@vitessce/layer-controller-beta": "3.5.8",
32
- "@vitessce/obs-sets-manager": "3.5.8",
33
- "@vitessce/ome-tiff": "3.5.8",
34
- "@vitessce/link-controller": "3.5.8",
35
- "@vitessce/plugins": "3.5.8",
36
- "@vitessce/scatterplot-embedding": "3.5.8",
37
- "@vitessce/scatterplot-gating": "3.5.8",
38
- "@vitessce/schemas": "3.5.8",
39
- "@vitessce/spatial": "3.5.8",
40
- "@vitessce/spatial-beta": "3.5.8",
41
- "@vitessce/statistical-plots": "3.5.8",
42
- "@vitessce/vit-s": "3.5.8",
43
- "@vitessce/status": "3.5.8",
44
- "@vitessce/zarr": "3.5.8",
45
- "@vitessce/globals": "3.5.8",
46
- "@vitessce/spatial-zarr": "3.5.8",
47
- "@vitessce/spatial-three": "3.5.8",
48
- "@vitessce/biomarker-select": "3.5.8",
49
- "@vitessce/neuroglancer": "3.5.8"
21
+ "@vitessce/constants-internal": "3.5.9",
22
+ "@vitessce/abstract": "3.5.9",
23
+ "@vitessce/csv": "3.5.9",
24
+ "@vitessce/description": "3.5.9",
25
+ "@vitessce/feature-list": "3.5.9",
26
+ "@vitessce/genomic-profiles": "3.5.9",
27
+ "@vitessce/heatmap": "3.5.9",
28
+ "@vitessce/glb": "3.5.9",
29
+ "@vitessce/json": "3.5.9",
30
+ "@vitessce/layer-controller": "3.5.9",
31
+ "@vitessce/layer-controller-beta": "3.5.9",
32
+ "@vitessce/link-controller": "3.5.9",
33
+ "@vitessce/obs-sets-manager": "3.5.9",
34
+ "@vitessce/ome-tiff": "3.5.9",
35
+ "@vitessce/plugins": "3.5.9",
36
+ "@vitessce/scatterplot-embedding": "3.5.9",
37
+ "@vitessce/scatterplot-gating": "3.5.9",
38
+ "@vitessce/schemas": "3.5.9",
39
+ "@vitessce/spatial": "3.5.9",
40
+ "@vitessce/spatial-beta": "3.5.9",
41
+ "@vitessce/statistical-plots": "3.5.9",
42
+ "@vitessce/status": "3.5.9",
43
+ "@vitessce/vit-s": "3.5.9",
44
+ "@vitessce/zarr": "3.5.9",
45
+ "@vitessce/globals": "3.5.9",
46
+ "@vitessce/spatial-zarr": "3.5.9",
47
+ "@vitessce/spatial-three": "3.5.9",
48
+ "@vitessce/biomarker-select": "3.5.9",
49
+ "@vitessce/neuroglancer": "3.5.9"
50
50
  },
51
51
  "devDependencies": {
52
52
  "@types/react": "^18.0.28",