@vitessce/scatterplot-embedding 3.6.18 → 3.7.1

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-SxljTded.js";
2
- import { B as BaseDecoder } from "./index-DiAoKAaO.js";
2
+ import { B as BaseDecoder } from "./index-FjD__8Hd.js";
3
3
  class DeflateDecoder extends BaseDecoder {
4
4
  decodeBlock(buffer) {
5
5
  return inflate_1(new Uint8Array(buffer)).buffer;
@@ -10167,6 +10167,7 @@ const COMPONENT_COORDINATION_TYPES = {
10167
10167
  CoordinationType$1.SPATIAL_ROTATION_Y,
10168
10168
  CoordinationType$1.SPATIAL_ROTATION_Z,
10169
10169
  CoordinationType$1.SPATIAL_AXIS_FIXED,
10170
+ CoordinationType$1.SPATIAL_ROTATION_ORBIT,
10170
10171
  CoordinationType$1.SPATIAL_ORBIT_AXIS,
10171
10172
  CoordinationType$1.SPATIAL_ZOOM,
10172
10173
  CoordinationType$1.OBS_FILTER,
@@ -10174,14 +10175,11 @@ const COMPONENT_COORDINATION_TYPES = {
10174
10175
  CoordinationType$1.OBS_SET_SELECTION,
10175
10176
  CoordinationType$1.OBS_SET_FILTER,
10176
10177
  CoordinationType$1.OBS_SET_HIGHLIGHT,
10177
- CoordinationType$1.OBS_SET_COLOR,
10178
10178
  CoordinationType$1.OBS_TYPE,
10179
- CoordinationType$1.ADDITIONAL_OBS_SETS,
10180
10179
  CoordinationType$1.OBS_SET_COLOR,
10181
10180
  CoordinationType$1.OBS_COLOR_ENCODING,
10182
- CoordinationType$1.OBS_SET_SELECTION,
10183
10181
  CoordinationType$1.EMBEDDING_TYPE,
10184
- CoordinationType$1.OBS_COLOR_ENCODING,
10182
+ CoordinationType$1.ADDITIONAL_OBS_SETS,
10185
10183
  CoordinationType$1.TOOLTIPS_VISIBLE
10186
10184
  ],
10187
10185
  [ViewType$1.SCATTERPLOT]: [
@@ -122230,6 +122228,8 @@ const PIXELATED_TEXTURE_PARAMETERS = {
122230
122228
  [GL$1.TEXTURE_WRAP_T]: GL$1.CLAMP_TO_EDGE
122231
122229
  };
122232
122230
  const GLSL_COLORMAPS = [
122231
+ // NOTE: the ordering of these is important,
122232
+ // as the shader code in bitmask-layer-beta-shaders hardcodes their indices.
122233
122233
  "plasma",
122234
122234
  "viridis",
122235
122235
  "jet",
@@ -123323,22 +123323,22 @@ function addDecoder(cases, importFn) {
123323
123323
  }
123324
123324
  cases.forEach((c2) => registry$1.set(c2, importFn));
123325
123325
  }
123326
- addDecoder([void 0, 1], () => import("./raw-HSp42GhA.js").then((m2) => m2.default));
123327
- addDecoder(5, () => import("./lzw-BhXUNPHF.js").then((m2) => m2.default));
123326
+ addDecoder([void 0, 1], () => import("./raw-DY_w4Euo.js").then((m2) => m2.default));
123327
+ addDecoder(5, () => import("./lzw-BlBBDcB3.js").then((m2) => m2.default));
123328
123328
  addDecoder(6, () => {
123329
123329
  throw new Error("old style JPEG compression is not supported.");
123330
123330
  });
123331
- addDecoder(7, () => import("./jpeg-DUYY678x.js").then((m2) => m2.default));
123332
- addDecoder([8, 32946], () => import("./deflate-Ccvs6Lib.js").then((m2) => m2.default));
123333
- addDecoder(32773, () => import("./packbits-D_7psHiO.js").then((m2) => m2.default));
123331
+ addDecoder(7, () => import("./jpeg-YYASIY-4.js").then((m2) => m2.default));
123332
+ addDecoder([8, 32946], () => import("./deflate-BgSunY3u.js").then((m2) => m2.default));
123333
+ addDecoder(32773, () => import("./packbits-uyBfUErz.js").then((m2) => m2.default));
123334
123334
  addDecoder(
123335
123335
  34887,
123336
- () => import("./lerc-C2z5Ot31.js").then(async (m2) => {
123336
+ () => import("./lerc-DNPCSfFo.js").then(async (m2) => {
123337
123337
  await m2.zstd.init();
123338
123338
  return m2;
123339
123339
  }).then((m2) => m2.default)
123340
123340
  );
123341
- addDecoder(50001, () => import("./webimage-CaeLt8Sq.js").then((m2) => m2.default));
123341
+ addDecoder(50001, () => import("./webimage-Prgh99Ac.js").then((m2) => m2.default));
123342
123342
  function decodeRowAcc(row, stride) {
123343
123343
  let length2 = row.length - stride;
123344
123344
  let offset2 = 0;
@@ -133121,7 +133121,7 @@ uniform float channelOpacities[7];
133121
133121
  uniform bool channelIsStaticColorMode[7]; // TODO: should this be a single float?
133122
133122
  uniform bool channelIsSetColorMode[7]; // TODO: should this be a single float?
133123
133123
 
133124
- // TODO: can array of tuples/vec2 be used?
133124
+ uniform int channelColormapFuncIndices[7];
133125
133125
  uniform float channelColormapRangeStarts[7];
133126
133126
  uniform float channelColormapRangeEnds[7];
133127
133127
 
@@ -133187,7 +133187,30 @@ vec3 sampleAndGetData(sampler2D dataTex, vec2 coord, bool isFilled, float stroke
133187
133187
  return vec3(clampedSampledData * float(isOn), sampledData, float(isEdge));
133188
133188
  }
133189
133189
 
133190
- vec4 dataToColor(vec3 sampledDataAndIsEdge, bool isStaticColorMode, vec3 channelColor, float channelOpacity, float valueOffset, float rangeStart, float rangeEnd, bool isSetColorMode, float setColorOffset) {
133190
+ vec3 colormapFunc(float clampedScaledExpressionValue, int colormapIndex) {
133191
+ // Map indices of GLSL_COLORMAPS array to their function calls.
133192
+ // GLSL_COLORMAPS is defined in ./constants.js and needs to stay manually synced.
133193
+ // 0: 'plasma',
133194
+ // 1: 'viridis',
133195
+ // 2: 'jet',
133196
+ // 3: 'greys',
133197
+
133198
+ if (colormapIndex <= 0) {
133199
+ // This should also match -1, to account for a failed Array.indexOf lookup.
133200
+ return plasma(clampedScaledExpressionValue).rgb;
133201
+ }
133202
+ if (colormapIndex == 1) {
133203
+ return viridis(clampedScaledExpressionValue).rgb;
133204
+ }
133205
+ if (colormapIndex == 2) {
133206
+ return jet(clampedScaledExpressionValue).rgb;
133207
+ }
133208
+ if (colormapIndex == 3) {
133209
+ return greys(clampedScaledExpressionValue).rgb;
133210
+ }
133211
+ }
133212
+
133213
+ vec4 dataToColor(vec3 sampledDataAndIsEdge, bool isStaticColorMode, vec3 channelColor, float channelOpacity, float valueOffset, int colormapFuncIndex, float rangeStart, float rangeEnd, bool isSetColorMode, float setColorOffset) {
133191
133214
  float clampedSampledDataAndIsOn = sampledDataAndIsEdge.x;
133192
133215
  float sampledData = sampledDataAndIsEdge.y;
133193
133216
  float isEdge = sampledDataAndIsEdge.z;
@@ -133231,7 +133254,7 @@ vec4 dataToColor(vec3 sampledDataAndIsEdge, bool isStaticColorMode, vec3 channel
133231
133254
  }
133232
133255
 
133233
133256
 
133234
- vec4 sampledColor = (1. - (float(isStaticColorMode) + float(isSetColorMode))) * vec4(COLORMAP_FUNC(clamp(scaledExpressionValue, 0.0, 1.0)).rgb, channelOpacity) + float(isStaticColorMode) * vec4(channelColor.rgb, channelOpacity) + float(isSetColorMode) * vec4(setColor, channelOpacity);
133257
+ vec4 sampledColor = (1. - (float(isStaticColorMode) + float(isSetColorMode))) * vec4(colormapFunc(clamp(scaledExpressionValue, 0.0, 1.0), colormapFuncIndex).rgb, channelOpacity) + float(isStaticColorMode) * vec4(channelColor.rgb, channelOpacity) + float(isSetColorMode) * vec4(setColor, channelOpacity);
133235
133258
  // Only return a color if the data is non-zero.
133236
133259
 
133237
133260
  return clampedSampledDataAndIsOn * isEdge * sampledColor;
@@ -133247,15 +133270,15 @@ void main() {
133247
133270
  vec3 dat4 = sampleAndGetData(channel4, vTexCoord, channelsFilled[4], channelStrokeWidths[4], channelsVisible[4]);
133248
133271
  vec3 dat5 = sampleAndGetData(channel5, vTexCoord, channelsFilled[5], channelStrokeWidths[5], channelsVisible[5]);
133249
133272
  vec3 dat6 = sampleAndGetData(channel6, vTexCoord, channelsFilled[6], channelStrokeWidths[6], channelsVisible[6]);
133250
-
133251
- vec4 val0 = dataToColor(dat0, channelIsStaticColorMode[0], color0, channelOpacities[0], valueTexOffsets[0], channelColormapRangeStarts[0], channelColormapRangeEnds[0], channelIsSetColorMode[0], colorTexOffsets[0]);
133252
- vec4 val1 = dataToColor(dat1, channelIsStaticColorMode[1], color1, channelOpacities[1], valueTexOffsets[1], channelColormapRangeStarts[1], channelColormapRangeEnds[1], channelIsSetColorMode[1], colorTexOffsets[1]);
133253
- vec4 val2 = dataToColor(dat2, channelIsStaticColorMode[2], color2, channelOpacities[2], valueTexOffsets[2], channelColormapRangeStarts[2], channelColormapRangeEnds[2], channelIsSetColorMode[2], colorTexOffsets[2]);
133254
- vec4 val3 = dataToColor(dat3, channelIsStaticColorMode[3], color3, channelOpacities[3], valueTexOffsets[3], channelColormapRangeStarts[3], channelColormapRangeEnds[3], channelIsSetColorMode[3], colorTexOffsets[3]);
133255
- vec4 val4 = dataToColor(dat4, channelIsStaticColorMode[4], color4, channelOpacities[4], valueTexOffsets[4], channelColormapRangeStarts[4], channelColormapRangeEnds[4], channelIsSetColorMode[4], colorTexOffsets[4]);
133256
- vec4 val5 = dataToColor(dat5, channelIsStaticColorMode[5], color5, channelOpacities[5], valueTexOffsets[5], channelColormapRangeStarts[5], channelColormapRangeEnds[5], channelIsSetColorMode[5], colorTexOffsets[5]);
133257
- vec4 val6 = dataToColor(dat6, channelIsStaticColorMode[6], color6, channelOpacities[6], valueTexOffsets[6], channelColormapRangeStarts[6], channelColormapRangeEnds[6], channelIsSetColorMode[6], colorTexOffsets[6]);
133258
-
133273
+
133274
+ vec4 val0 = dataToColor(dat0, channelIsStaticColorMode[0], color0, channelOpacities[0], valueTexOffsets[0], channelColormapFuncIndices[0], channelColormapRangeStarts[0], channelColormapRangeEnds[0], channelIsSetColorMode[0], colorTexOffsets[0]);
133275
+ vec4 val1 = dataToColor(dat1, channelIsStaticColorMode[1], color1, channelOpacities[1], valueTexOffsets[1], channelColormapFuncIndices[1], channelColormapRangeStarts[1], channelColormapRangeEnds[1], channelIsSetColorMode[1], colorTexOffsets[1]);
133276
+ vec4 val2 = dataToColor(dat2, channelIsStaticColorMode[2], color2, channelOpacities[2], valueTexOffsets[2], channelColormapFuncIndices[2], channelColormapRangeStarts[2], channelColormapRangeEnds[2], channelIsSetColorMode[2], colorTexOffsets[2]);
133277
+ vec4 val3 = dataToColor(dat3, channelIsStaticColorMode[3], color3, channelOpacities[3], valueTexOffsets[3], channelColormapFuncIndices[3], channelColormapRangeStarts[3], channelColormapRangeEnds[3], channelIsSetColorMode[3], colorTexOffsets[3]);
133278
+ vec4 val4 = dataToColor(dat4, channelIsStaticColorMode[4], color4, channelOpacities[4], valueTexOffsets[4], channelColormapFuncIndices[4], channelColormapRangeStarts[4], channelColormapRangeEnds[4], channelIsSetColorMode[4], colorTexOffsets[4]);
133279
+ vec4 val5 = dataToColor(dat5, channelIsStaticColorMode[5], color5, channelOpacities[5], valueTexOffsets[5], channelColormapFuncIndices[5], channelColormapRangeStarts[5], channelColormapRangeEnds[5], channelIsSetColorMode[5], colorTexOffsets[5]);
133280
+ vec4 val6 = dataToColor(dat6, channelIsStaticColorMode[6], color6, channelOpacities[6], valueTexOffsets[6], channelColormapFuncIndices[6], channelColormapRangeStarts[6], channelColormapRangeEnds[6], channelIsSetColorMode[6], colorTexOffsets[6]);
133281
+
133259
133282
  // If all of the channels are "empty", then discard this pixel so that it is not considered during picking.
133260
133283
  float emptyDat = 0.;
133261
133284
  if(dat0.x == emptyDat && dat1.x == emptyDat && dat2.x == emptyDat && dat3.x == emptyDat && dat4.x == emptyDat && dat5.x == emptyDat && dat6.x == emptyDat) {
@@ -133411,14 +133434,10 @@ const defaultProps$2 = {
133411
133434
  class BitmaskLayer2 extends XRLayer {
133412
133435
  // eslint-disable-next-line class-methods-use-this
133413
133436
  getShaders() {
133414
- const { colormap } = this.props;
133415
133437
  return {
133416
133438
  fs,
133417
133439
  vs,
133418
- modules: [project32, picking],
133419
- defines: {
133420
- [COLORMAP_SHADER_PLACEHOLDER]: GLSL_COLORMAPS.includes(colormap) ? colormap : GLSL_COLORMAP_DEFAULT
133421
- }
133440
+ modules: [project32, picking]
133422
133441
  };
133423
133442
  }
133424
133443
  /**
@@ -133477,8 +133496,6 @@ class BitmaskLayer2 extends XRLayer {
133477
133496
  channelOpacities,
133478
133497
  channelColors,
133479
133498
  channelsVisible,
133480
- // TODO: use `channelFeatureValueColormaps` in shader,
133481
- // figure out how to call multiple GLSL colormap functions
133482
133499
  channelFeatureValueColormaps,
133483
133500
  channelFeatureValueColormapRanges,
133484
133501
  channelIsStaticColorMode,
@@ -133539,6 +133556,12 @@ class BitmaskLayer2 extends XRLayer {
133539
133556
  // There are six texture entries on the shaders
133540
133557
  MAX_CHANNELS - channelStrokeWidths.length
133541
133558
  ),
133559
+ channelColormapFuncIndices: padWithDefault(
133560
+ channelFeatureValueColormaps.map((d) => GLSL_COLORMAPS.indexOf(d)),
133561
+ 0,
133562
+ // There are six texture entries on the shaders
133563
+ MAX_CHANNELS - channelFeatureValueColormaps.length
133564
+ ),
133542
133565
  channelColormapRangeStarts: padWithDefault(
133543
133566
  channelFeatureValueColormapRanges.map((r2) => (r2 == null ? void 0 : r2[0]) || 0),
133544
133567
  0,
@@ -150046,6 +150069,9 @@ function getOnHoverCallback(obsIndex, setObsHighlight, setComponentHover) {
150046
150069
  }
150047
150070
  };
150048
150071
  }
150072
+ const ROTATION_THRESHOLD = 1;
150073
+ const ZOOM_THRESHOLD = 0.01;
150074
+ const TRANSLATION_THRESHOLD = 2;
150049
150075
  class AbstractSpatialOrScatterplot extends PureComponent {
150050
150076
  constructor(props) {
150051
150077
  super(props);
@@ -150053,6 +150079,7 @@ class AbstractSpatialOrScatterplot extends PureComponent {
150053
150079
  gl: null,
150054
150080
  tool: null
150055
150081
  };
150082
+ this.lastApplied = null;
150056
150083
  this.viewport = null;
150057
150084
  this.onViewStateChange = this.onViewStateChange.bind(this);
150058
150085
  this.onInitializeViewInfo = this.onInitializeViewInfo.bind(this);
@@ -150072,6 +150099,23 @@ class AbstractSpatialOrScatterplot extends PureComponent {
150072
150099
  onViewStateChange({ viewState: nextViewState }) {
150073
150100
  const { setViewState, viewState, spatialAxisFixed } = this.props;
150074
150101
  const use3d = this.use3d();
150102
+ let targetChanged = false;
150103
+ if (nextViewState.target && viewState.target) {
150104
+ const dx = Math.abs((nextViewState.target[0] ?? 0) - (viewState.target[0] ?? 0));
150105
+ const dy = Math.abs((nextViewState.target[1] ?? 0) - (viewState.target[1] ?? 0));
150106
+ const scale2 = 2 ** (nextViewState.zoom ?? 0);
150107
+ const dxPx = Math.abs(dx) * scale2;
150108
+ const dyPx = Math.abs(dy) * scale2;
150109
+ targetChanged = dxPx > TRANSLATION_THRESHOLD || dyPx > TRANSLATION_THRESHOLD;
150110
+ }
150111
+ const prev2 = this.lastApplied || viewState;
150112
+ const zoomChanged = Math.abs((nextViewState.zoom ?? 0) - (prev2.zoom ?? 0)) > ZOOM_THRESHOLD;
150113
+ const orbitChanged = Math.abs((nextViewState.rotationOrbit ?? 0) - (prev2.rotationOrbit ?? 0)) > ROTATION_THRESHOLD;
150114
+ const xChanged = Math.abs((nextViewState.rotationX ?? 0) - (prev2.rotationX ?? 0)) > ROTATION_THRESHOLD;
150115
+ if (!(zoomChanged || orbitChanged || xChanged || targetChanged)) {
150116
+ return;
150117
+ }
150118
+ this.lastApplied = nextViewState;
150075
150119
  setViewState({
150076
150120
  ...nextViewState,
150077
150121
  // If the axis is fixed, just use the current target in state i.e don't change target.
@@ -153146,7 +153190,7 @@ function combineMissings(missings, featureAggregationStrategy) {
153146
153190
  return null;
153147
153191
  }
153148
153192
  function Legend(props) {
153149
- const { visible: visibleProp, positionRelative = false, highContrast = false, obsType, featureValueType, considerSelections = true, obsColorEncoding, featureSelection, featureLabelsMap, featureValueColormap, featureValueColormapRange, spatialChannelColor, spatialLayerColor, obsSetSelection, obsSetColor, featureAggregationStrategy, extent: extent2, missing, width: width2 = 100, height: height2 = 36, theme, showObsLabel = false, pointsVisible = true, contoursVisible = false, contoursFilled, contourPercentiles, contourThresholds } = props;
153193
+ const { visible: visibleProp, positionRelative = false, highContrast = false, obsType, featureValueType, considerSelections = true, obsColorEncoding, featureSelection, featureLabelsMap, featureValueColormap, featureValueColormapRange, spatialChannelColor, spatialLayerColor, obsSetSelection, obsSetColor, featureAggregationStrategy, extent: extent2, missing, width: width2 = 100, height: height2 = 36, maxHeight: maxHeight2 = null, theme, showObsLabel = false, pointsVisible = true, contoursVisible = false, contoursFilled, contourPercentiles, contourThresholds } = props;
153150
153194
  const svgRef = useRef();
153151
153195
  const { classes } = useStyles();
153152
153196
  const isDarkTheme = theme === "dark";
@@ -153158,6 +153202,8 @@ function Legend(props) {
153158
153202
  const visible = visibleProp && (!considerSelections || obsColorEncoding === "geneSelection" && featureSelection && Array.isArray(featureSelection) && featureSelection.length >= 1 || isSetColor && (obsSetSelection == null ? void 0 : obsSetSelection.length) > 0 && (obsSetColor == null ? void 0 : obsSetColor.length) > 0 || isStaticColor);
153159
153203
  const levelZeroNames = useMemo(() => Array.from(new Set((obsSetSelection == null ? void 0 : obsSetSelection.map((setPath) => setPath[0])) || [])), [obsSetSelection]);
153160
153204
  const dynamicHeight = isSetColor && obsSetSelection ? levelZeroNames.length * titleHeight + (obsSetSelection == null ? void 0 : obsSetSelection.length) * (rectHeight + rectMarginY) : height2 + (!pointsVisible && contoursVisible ? 25 : 0);
153205
+ const availHeight = maxHeight2 !== null ? Math.max(0, maxHeight2 - 4) : Infinity;
153206
+ const needsScroll = Number.isFinite(availHeight) && dynamicHeight > availHeight + 1;
153161
153207
  useEffect(() => {
153162
153208
  const domElement = svgRef.current;
153163
153209
  const foregroundColor = highContrast ? "black" : isDarkTheme ? "white" : "black";
@@ -153290,7 +153336,9 @@ function Legend(props) {
153290
153336
  [classes.legendHighContrast]: highContrast,
153291
153337
  [classes.legendLowContrast]: !highContrast,
153292
153338
  [classes.legendInvisible]: !visible
153293
- }), children: jsxRuntimeExports.jsx("svg", { ref: svgRef, style: {
153339
+ }), style: {
153340
+ ...needsScroll ? { maxHeight: `${Math.floor(availHeight)}px`, overflowY: "auto" } : { maxHeight: void 0, overflowY: "visible" }
153341
+ }, children: jsxRuntimeExports.jsx("svg", { ref: svgRef, style: {
153294
153342
  width: `${width2}px`,
153295
153343
  height: `${dynamicHeight}px`
153296
153344
  } }) });
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { D, E } from "./index-DiAoKAaO.js";
1
+ import { D, E } from "./index-FjD__8Hd.js";
2
2
  export {
3
3
  D as DualEmbeddingScatterplotSubscriber,
4
4
  E as EmbeddingScatterplotSubscriber
@@ -1,4 +1,4 @@
1
- import { B as BaseDecoder } from "./index-DiAoKAaO.js";
1
+ import { B as BaseDecoder } from "./index-FjD__8Hd.js";
2
2
  const dctZigZag = new Int32Array([
3
3
  0,
4
4
  1,
@@ -1,5 +1,5 @@
1
1
  import { i as inflate_1 } from "./pako.esm-SxljTded.js";
2
- import { g as getDefaultExportFromCjs, B as BaseDecoder } from "./index-DiAoKAaO.js";
2
+ import { g as getDefaultExportFromCjs, B as BaseDecoder } from "./index-FjD__8Hd.js";
3
3
  const LercParameters = {
4
4
  AddCompression: 1
5
5
  };
@@ -1,4 +1,4 @@
1
- import { B as BaseDecoder } from "./index-DiAoKAaO.js";
1
+ import { B as BaseDecoder } from "./index-FjD__8Hd.js";
2
2
  const MIN_BITS = 9;
3
3
  const CLEAR_CODE = 256;
4
4
  const EOI_CODE = 257;
@@ -1,4 +1,4 @@
1
- import { B as BaseDecoder } from "./index-DiAoKAaO.js";
1
+ import { B as BaseDecoder } from "./index-FjD__8Hd.js";
2
2
  class PackbitsDecoder extends BaseDecoder {
3
3
  decodeBlock(buffer) {
4
4
  const dataView = new DataView(buffer);
@@ -1,4 +1,4 @@
1
- import { B as BaseDecoder } from "./index-DiAoKAaO.js";
1
+ import { B as BaseDecoder } from "./index-FjD__8Hd.js";
2
2
  class RawDecoder extends BaseDecoder {
3
3
  decodeBlock(buffer) {
4
4
  return buffer;
@@ -1,4 +1,4 @@
1
- import { B as BaseDecoder } from "./index-DiAoKAaO.js";
1
+ import { B as BaseDecoder } from "./index-FjD__8Hd.js";
2
2
  class WebImageDecoder extends BaseDecoder {
3
3
  constructor() {
4
4
  super();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vitessce/scatterplot-embedding",
3
- "version": "3.6.18",
3
+ "version": "3.7.1",
4
4
  "author": "HIDIVE Lab at HMS",
5
5
  "homepage": "http://vitessce.io",
6
6
  "repository": {
@@ -20,25 +20,25 @@
20
20
  "lodash-es": "^4.17.21",
21
21
  "react-aria": "^3.28.0",
22
22
  "@turf/circle": "^7.2.0",
23
- "@vitessce/styles": "3.6.18",
24
- "@vitessce/constants-internal": "3.6.18",
25
- "@vitessce/legend": "3.6.18",
26
- "@vitessce/scatterplot": "3.6.18",
27
- "@vitessce/sets-utils": "3.6.18",
28
- "@vitessce/utils": "3.6.18",
29
- "@vitessce/vit-s": "3.6.18"
23
+ "@vitessce/styles": "3.7.1",
24
+ "@vitessce/constants-internal": "3.7.1",
25
+ "@vitessce/legend": "3.7.1",
26
+ "@vitessce/scatterplot": "3.7.1",
27
+ "@vitessce/sets-utils": "3.7.1",
28
+ "@vitessce/utils": "3.7.1",
29
+ "@vitessce/vit-s": "3.7.1"
30
30
  },
31
31
  "devDependencies": {
32
32
  "react": "^18.0.0",
33
33
  "react-dom": "^18.0.0",
34
- "vite": "^6.3.5",
34
+ "vite": "^7.0.0",
35
35
  "vitest": "^3.1.4"
36
36
  },
37
37
  "peerDependencies": {
38
38
  "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
39
39
  },
40
40
  "scripts": {
41
- "bundle": "pnpm exec vite build -c ../../../scripts/vite.config.js",
41
+ "bundle": "pnpm exec vite build -c ../../../scripts/vite.config.mjs",
42
42
  "test": "pnpm exec vitest --run"
43
43
  },
44
44
  "module": "dist/index.js",