@haniffalab/cherita-react 1.4.1-dev.2025-10-23.3179e534 → 1.4.1-dev.2025-10-23.55fbe6ff

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.
Files changed (126) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/components/controls/Controls.js +4 -4
  3. package/dist/cjs/components/dotplot/Dotplot.js +15 -28
  4. package/dist/cjs/components/dotplot/DotplotControls.js +5 -5
  5. package/dist/cjs/components/full-page/FullPage.js +1 -2
  6. package/dist/cjs/components/full-page/PlotAlert.js +1 -1
  7. package/dist/cjs/components/full-page/PlotTypeSelector.js +13 -13
  8. package/dist/cjs/components/heatmap/Heatmap.js +14 -24
  9. package/dist/cjs/components/icons/DotPlotIcon.js +1 -1
  10. package/dist/cjs/components/icons/HeatmapIcon.js +1 -1
  11. package/dist/cjs/components/icons/MatrixPlotIcon.1.js +1 -1
  12. package/dist/cjs/components/icons/MatrixPlotIcon.js +1 -1
  13. package/dist/cjs/components/icons/ScatterplotIcon.1.js +1 -1
  14. package/dist/cjs/components/icons/ScatterplotIcon.js +1 -1
  15. package/dist/cjs/components/icons/ViolinPlotIcon.js +1 -1
  16. package/dist/cjs/components/matrixplot/Matrixplot.js +15 -26
  17. package/dist/cjs/components/obs-list/ObsItem.js +19 -19
  18. package/dist/cjs/components/obs-list/ObsList.js +17 -17
  19. package/dist/cjs/components/obsm-list/ObsmList.js +7 -7
  20. package/dist/cjs/components/pseudospatial/Pseudospatial.js +16 -16
  21. package/dist/cjs/components/pseudospatial/PseudospatialToolbar.js +10 -10
  22. package/dist/cjs/components/scatterplot/Scatterplot.js +16 -16
  23. package/dist/cjs/components/scatterplot/ScatterplotControls.js +1 -1
  24. package/dist/cjs/components/scatterplot/SpatialControls.js +9 -9
  25. package/dist/cjs/components/scatterplot/Toolbox.js +4 -4
  26. package/dist/cjs/components/search-bar/SearchBar.js +14 -14
  27. package/dist/cjs/components/search-bar/SearchInfo.js +3 -3
  28. package/dist/cjs/components/search-bar/SearchResults.js +2 -2
  29. package/dist/cjs/components/toolbar/Toolbar.js +3 -3
  30. package/dist/cjs/components/var-list/VarItem.js +15 -15
  31. package/dist/cjs/components/var-list/VarList.js +5 -5
  32. package/dist/cjs/components/var-list/VarListToolbar.js +4 -4
  33. package/dist/cjs/components/var-list/VarSet.js +13 -13
  34. package/dist/cjs/components/violin/Violin.js +17 -41
  35. package/dist/cjs/constants/colorscales.js +19 -19
  36. package/dist/cjs/constants/constants.js +47 -47
  37. package/dist/cjs/context/DatasetContext.js +3 -3
  38. package/dist/cjs/context/FilterContext.js +2 -2
  39. package/dist/cjs/context/SettingsContext.js +57 -57
  40. package/dist/cjs/helpers/color-helper.js +2 -2
  41. package/dist/cjs/helpers/zarr-helper.js +3 -3
  42. package/dist/cjs/utils/Filter.js +1 -1
  43. package/dist/cjs/utils/Histogram.js +2 -2
  44. package/dist/cjs/utils/ImageViewer.js +2 -2
  45. package/dist/cjs/utils/Legend.js +1 -1
  46. package/dist/cjs/utils/LoadingIndicators.js +1 -1
  47. package/dist/cjs/utils/Resolver.js +7 -7
  48. package/dist/cjs/utils/Skeleton.js +1 -1
  49. package/dist/cjs/utils/StyledTooltip.js +5 -5
  50. package/dist/cjs/utils/VirtualizedList.js +7 -7
  51. package/dist/cjs/utils/errors.js +15 -15
  52. package/dist/cjs/utils/requests.js +14 -10
  53. package/dist/cjs/utils/search.js +4 -4
  54. package/dist/cjs/utils/string.js +6 -6
  55. package/dist/cjs/utils/zarrData.js +5 -5
  56. package/dist/css/cherita.css +21 -20
  57. package/dist/css/cherita.css.map +1 -1
  58. package/dist/esm/components/controls/Controls.js +9 -9
  59. package/dist/esm/components/dotplot/Dotplot.js +28 -41
  60. package/dist/esm/components/dotplot/DotplotControls.js +9 -9
  61. package/dist/esm/components/full-page/FullPage.js +22 -23
  62. package/dist/esm/components/full-page/PlotAlert.js +5 -5
  63. package/dist/esm/components/full-page/PlotTypeSelector.js +21 -21
  64. package/dist/esm/components/heatmap/Heatmap.js +27 -37
  65. package/dist/esm/components/heatmap/HeatmapControls.js +2 -2
  66. package/dist/esm/components/icons/DotPlotIcon.js +1 -1
  67. package/dist/esm/components/icons/HeatmapIcon.js +1 -1
  68. package/dist/esm/components/icons/MatrixPlotIcon.1.js +1 -1
  69. package/dist/esm/components/icons/MatrixPlotIcon.js +1 -1
  70. package/dist/esm/components/icons/ScatterplotIcon.1.js +1 -1
  71. package/dist/esm/components/icons/ScatterplotIcon.js +1 -1
  72. package/dist/esm/components/icons/ViolinPlotIcon.js +1 -1
  73. package/dist/esm/components/matrixplot/Matrixplot.js +28 -39
  74. package/dist/esm/components/matrixplot/MatrixplotControls.js +2 -2
  75. package/dist/esm/components/obs-list/ObsItem.js +37 -37
  76. package/dist/esm/components/obs-list/ObsList.js +34 -34
  77. package/dist/esm/components/obs-list/ObsToolbar.js +1 -1
  78. package/dist/esm/components/obsm-list/ObsmList.js +15 -15
  79. package/dist/esm/components/offcanvas/index.js +6 -6
  80. package/dist/esm/components/pseudospatial/Pseudospatial.js +31 -31
  81. package/dist/esm/components/pseudospatial/PseudospatialToolbar.js +17 -17
  82. package/dist/esm/components/scatterplot/Scatterplot.js +38 -38
  83. package/dist/esm/components/scatterplot/ScatterplotControls.js +9 -9
  84. package/dist/esm/components/scatterplot/SpatialControls.js +23 -23
  85. package/dist/esm/components/scatterplot/Toolbox.js +7 -7
  86. package/dist/esm/components/search-bar/SearchBar.js +27 -27
  87. package/dist/esm/components/search-bar/SearchInfo.js +14 -14
  88. package/dist/esm/components/search-bar/SearchResults.js +10 -10
  89. package/dist/esm/components/toolbar/Toolbar.js +6 -6
  90. package/dist/esm/components/var-list/VarItem.js +27 -27
  91. package/dist/esm/components/var-list/VarList.js +21 -21
  92. package/dist/esm/components/var-list/VarListToolbar.js +10 -10
  93. package/dist/esm/components/var-list/VarSet.js +22 -22
  94. package/dist/esm/components/violin/Violin.js +33 -57
  95. package/dist/esm/components/violin/ViolinControls.js +2 -2
  96. package/dist/esm/constants/colorscales.js +19 -19
  97. package/dist/esm/constants/constants.js +47 -47
  98. package/dist/esm/context/DatasetContext.js +11 -11
  99. package/dist/esm/context/FilterContext.js +3 -3
  100. package/dist/esm/context/SettingsContext.js +61 -61
  101. package/dist/esm/context/ZarrDataContext.js +3 -3
  102. package/dist/esm/helpers/color-helper.js +5 -5
  103. package/dist/esm/helpers/map-helper.js +2 -2
  104. package/dist/esm/helpers/zarr-helper.js +6 -6
  105. package/dist/esm/index.js +22 -22
  106. package/dist/esm/utils/Filter.js +8 -8
  107. package/dist/esm/utils/Histogram.js +6 -6
  108. package/dist/esm/utils/ImageViewer.js +4 -4
  109. package/dist/esm/utils/Legend.js +9 -9
  110. package/dist/esm/utils/LoadingIndicators.js +2 -2
  111. package/dist/esm/utils/Resolver.js +13 -13
  112. package/dist/esm/utils/Skeleton.js +2 -2
  113. package/dist/esm/utils/StyledTooltip.js +6 -6
  114. package/dist/esm/utils/VirtualizedList.js +9 -9
  115. package/dist/esm/utils/errors.js +15 -15
  116. package/dist/esm/utils/requests.js +17 -13
  117. package/dist/esm/utils/search.js +7 -7
  118. package/dist/esm/utils/string.js +7 -7
  119. package/dist/esm/utils/zarrData.js +13 -13
  120. package/package.json +11 -7
  121. package/scss/cherita-bootstrap.scss +2 -2
  122. package/scss/cherita.scss +24 -17
  123. package/scss/components/accordions.scss +4 -1
  124. package/scss/components/layouts.scss +13 -12
  125. package/scss/components/lists.scss +8 -4
  126. package/scss/components/plotly.scss +1 -0
@@ -12,38 +12,38 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
12
12
  const parseError = err => {
13
13
  if (err === DOMException.TIMEOUT_ERR) {
14
14
  return {
15
- message: "Timeout error",
15
+ message: 'Timeout error',
16
16
  name: err
17
17
  };
18
18
  }
19
19
  switch (err === null || err === void 0 ? void 0 : err.name) {
20
- case "TypeError":
20
+ case 'TypeError':
21
21
  return _objectSpread(_objectSpread({}, err), {}, {
22
- message: "Failed to fetch data from server"
22
+ message: 'Failed to fetch data from server'
23
23
  });
24
- case "ReadZarrError":
24
+ case 'ReadZarrError':
25
25
  return _objectSpread(_objectSpread({}, err), {}, {
26
- message: "Failed to read AnnData-Zarr"
26
+ message: 'Failed to read AnnData-Zarr'
27
27
  });
28
- case "InvalidObs":
28
+ case 'InvalidObs':
29
29
  return _objectSpread(_objectSpread({}, err), {}, {
30
- message: "Observation not found in dataset"
30
+ message: 'Observation not found in dataset'
31
31
  });
32
- case "InvalidVar":
32
+ case 'InvalidVar':
33
33
  return _objectSpread(_objectSpread({}, err), {}, {
34
- message: "Feature not found in dataset"
34
+ message: 'Feature not found in dataset'
35
35
  });
36
- case "InvalidKey":
36
+ case 'InvalidKey':
37
37
  return _objectSpread(_objectSpread({}, err), {}, {
38
- message: "Key not found in dataset"
38
+ message: 'Key not found in dataset'
39
39
  });
40
- case "BadRequest":
40
+ case 'BadRequest':
41
41
  return _objectSpread(_objectSpread({}, err), {}, {
42
- message: "Invalid request to server"
42
+ message: 'Invalid request to server'
43
43
  });
44
- case "InternalServerError":
44
+ case 'InternalServerError':
45
45
  return _objectSpread(_objectSpread({}, err), {}, {
46
- message: "Server error"
46
+ message: 'Server error'
47
47
  });
48
48
  default:
49
49
  return err;
@@ -22,13 +22,13 @@ async function fetchData(endpoint, params) {
22
22
  const timeout = setTimeout(() => {
23
23
  controller.abort(DOMException.TIMEOUT_ERR);
24
24
  }, ms || 300000);
25
- if (signal) signal.addEventListener("abort", () => controller.abort());
25
+ if (signal) signal.addEventListener('abort', () => controller.abort());
26
26
  const response = await fetch(new URL(endpoint, apiUrl), {
27
- method: "POST",
28
- mode: "cors",
27
+ method: 'POST',
28
+ mode: 'cors',
29
29
  headers: {
30
- "Content-Type": "application/json",
31
- Accept: "application/json"
30
+ 'Content-Type': 'application/json',
31
+ Accept: 'application/json'
32
32
  },
33
33
  body: JSON.stringify(params),
34
34
  signal: controller.signal
@@ -89,15 +89,17 @@ const useDebouncedFetch = function (endpoint, params) {
89
89
  refetchOnWindowFocus: false
90
90
  };
91
91
  let apiUrl = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;
92
+ // Optional isEnabled function to determine if enabled based on debouncedParams instead of params
92
93
  const {
93
- retry = null
94
+ enabled = true,
95
+ isEnabled = () => true
94
96
  } = opts;
95
97
  const debouncedParams = (0, _usehooks.useDebounce)(params, delay);
96
98
  const {
97
99
  data: fetchedData = null,
98
100
  isLoading: isPending = false,
99
101
  error: serverError = null
100
- } = (0, _reactQuery.useQuery)(_objectSpread({
102
+ } = (0, _reactQuery.useQuery)(_objectSpread(_objectSpread({
101
103
  queryKey: [endpoint, debouncedParams],
102
104
  queryFn: _ref3 => {
103
105
  let {
@@ -105,14 +107,16 @@ const useDebouncedFetch = function (endpoint, params) {
105
107
  } = _ref3;
106
108
  return fetchData(endpoint, debouncedParams, signal, apiUrl);
107
109
  },
108
- retry: retry || ((failureCount, _ref4) => {
110
+ retry: (failureCount, _ref4) => {
109
111
  let {
110
112
  error
111
113
  } = _ref4;
112
114
  if ([400, 401, 403, 404, 422].includes(error === null || error === void 0 ? void 0 : error.status)) return false;
113
115
  return failureCount < 3;
114
- })
115
- }, opts));
116
+ }
117
+ }, opts), {}, {
118
+ enabled: enabled && isEnabled(debouncedParams)
119
+ }));
116
120
  return {
117
121
  fetchedData,
118
122
  isPending,
@@ -8,12 +8,12 @@ var _react = require("react");
8
8
  var _requests = require("./requests");
9
9
  var _DatasetContext = require("../context/DatasetContext");
10
10
  const useDiseaseSearch = () => {
11
- const ENDPOINT = "diseases";
11
+ const ENDPOINT = 'diseases';
12
12
  const dataset = (0, _DatasetContext.useDataset)();
13
13
  const [params, setParams] = (0, _react.useState)({
14
14
  url: dataset.url,
15
15
  diseaseDatasets: dataset.diseaseDatasets,
16
- text: ""
16
+ text: ''
17
17
  });
18
18
  const data = (0, _requests.useFetch)(ENDPOINT, params, {
19
19
  enabled: !!params.text.length,
@@ -27,12 +27,12 @@ const useDiseaseSearch = () => {
27
27
  };
28
28
  exports.useDiseaseSearch = useDiseaseSearch;
29
29
  const useVarSearch = () => {
30
- const ENDPOINT = "var/names";
30
+ const ENDPOINT = 'var/names';
31
31
  const dataset = (0, _DatasetContext.useDataset)();
32
32
  const [params, setParams] = (0, _react.useState)({
33
33
  url: dataset.url,
34
34
  col: dataset.varNamesCol,
35
- text: ""
35
+ text: ''
36
36
  });
37
37
  const data = (0, _requests.useFetch)(ENDPOINT, params, {
38
38
  enabled: !!params.text.length,
@@ -9,9 +9,9 @@ exports.formatString = formatString;
9
9
  var _numbro = _interopRequireDefault(require("numbro"));
10
10
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
11
  const FORMATS = exports.FORMATS = {
12
- EXPONENTIAL: "exponential",
13
- ABBREVIATION: "abbreviation",
14
- THOUSAND: "thousand"
12
+ EXPONENTIAL: 'exponential',
13
+ ABBREVIATION: 'abbreviation',
14
+ THOUSAND: 'thousand'
15
15
  };
16
16
  function formatThousand(n) {
17
17
  let precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 3;
@@ -41,9 +41,9 @@ function formatNumerical(n) {
41
41
  let format = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : FORMATS.THOUSAND;
42
42
  let precision = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 3;
43
43
  if (n === 0) {
44
- return "0";
44
+ return '0';
45
45
  } else if (!n || n === undefined || isNaN(n)) {
46
- return "NaN";
46
+ return 'NaN';
47
47
  }
48
48
  switch (format) {
49
49
  case FORMATS.EXPONENTIAL:
@@ -64,5 +64,5 @@ function formatNumerical(n) {
64
64
  }
65
65
  }
66
66
  function formatString(s) {
67
- return s.trim().replace(/_/g, " ");
67
+ return s.trim().replace(/_/g, ' ');
68
68
  }
@@ -21,7 +21,7 @@ const useObsmData = function () {
21
21
  obsm = obsm || settings.selectedObsm;
22
22
  const obsmParams = (0, _react.useMemo)(() => ({
23
23
  url: dataset.url,
24
- path: "obsm/" + obsm,
24
+ path: 'obsm/' + obsm,
25
25
  s: [null, (0, _zarr.slice)(null, 2)] // load only [:, :2]
26
26
  }), [dataset.url, obsm]);
27
27
  return (0, _zarrHelper.useZarr)(obsmParams, _zarrHelper.GET_OPTIONS, {
@@ -43,12 +43,12 @@ const useXData = function () {
43
43
  const selectedVar = (0, _Resolver.useSelectedVar)();
44
44
  const xParams = (0, _react.useMemo)(() => !selectedVar ? [] : !(selectedVar !== null && selectedVar !== void 0 && selectedVar.isSet) ? [{
45
45
  url: dataset.url,
46
- path: "X",
46
+ path: 'X',
47
47
  s: [null, selectedVar === null || selectedVar === void 0 ? void 0 : selectedVar.matrix_index]
48
48
  }] : _lodash.default.map(selectedVar === null || selectedVar === void 0 ? void 0 : selectedVar.vars, v => {
49
49
  return {
50
50
  url: dataset.url,
51
- path: "X",
51
+ path: 'X',
52
52
  s: [null, v.matrix_index]
53
53
  };
54
54
  }), [dataset.url, selectedVar]);
@@ -67,7 +67,7 @@ const useObsData = function () {
67
67
  var _obs, _obs2;
68
68
  return {
69
69
  url: dataset.url,
70
- path: "obs/" + ((_obs = obs) === null || _obs === void 0 ? void 0 : _obs.name) + (((_obs2 = obs) === null || _obs2 === void 0 ? void 0 : _obs2.type) === _constants.OBS_TYPES.CATEGORICAL ? "/codes" : "")
70
+ path: 'obs/' + ((_obs = obs) === null || _obs === void 0 ? void 0 : _obs.name) + (((_obs2 = obs) === null || _obs2 === void 0 ? void 0 : _obs2.type) === _constants.OBS_TYPES.CATEGORICAL ? '/codes' : '')
71
71
  };
72
72
  }, [dataset.url, (_obs3 = obs) === null || _obs3 === void 0 ? void 0 : _obs3.name, (_obs4 = obs) === null || _obs4 === void 0 ? void 0 : _obs4.type]);
73
73
  return (0, _zarrHelper.useZarr)(obsParams, _zarrHelper.GET_OPTIONS, {
@@ -82,7 +82,7 @@ const useLabelObsData = () => {
82
82
  const obs = settings.data.obs[obsName] || null;
83
83
  return {
84
84
  url: dataset.url,
85
- path: "obs/" + obs.name + (obs.type === _constants.OBS_TYPES.CATEGORICAL ? "/codes" : ""),
85
+ path: 'obs/' + obs.name + (obs.type === _constants.OBS_TYPES.CATEGORICAL ? '/codes' : ''),
86
86
  key: obs.name
87
87
  };
88
88
  }), [dataset.url, settings.data.obs, settings.labelObs]);
@@ -11895,7 +11895,7 @@ textarea.form-control-lg {
11895
11895
  }
11896
11896
 
11897
11897
  .list-group.cherita-list .virtualized-list-wrapper {
11898
- padding: 0 0.25rem 0.25rem 0.25rem;
11898
+ padding: 0 0.25rem 0.25rem;
11899
11899
  }
11900
11900
  .list-group.cherita-list .list-group-item.unstyled {
11901
11901
  background-color: transparent;
@@ -11915,7 +11915,7 @@ textarea.form-control-lg {
11915
11915
 
11916
11916
  .obs-statistics {
11917
11917
  border: 0;
11918
- margin: 0 0.25rem 0.25rem 0.25rem;
11918
+ margin: 0 0.25rem 0.25rem;
11919
11919
  padding: 0.375rem 0.75rem;
11920
11920
  line-height: 1.5;
11921
11921
  color: var(--bs-body-color);
@@ -11939,7 +11939,6 @@ textarea.form-control-lg {
11939
11939
  flex-direction: column;
11940
11940
  overflow: auto;
11941
11941
  }
11942
-
11943
11942
  .cherita-app .cherita-navbar {
11944
11943
  position: absolute;
11945
11944
  z-index: 11;
@@ -11948,16 +11947,12 @@ textarea.form-control-lg {
11948
11947
  right: 0;
11949
11948
  border-radius: 0.25rem;
11950
11949
  }
11951
- @media (min-width: 992px) and (max-width: 1199px) {
11950
+ @media (width >= 992px) and (width <= 1199px) {
11952
11951
  .cherita-app .cherita-navbar {
11953
- margin-left: calc(33.33333333% + 1rem) !important;
11952
+ margin-left: calc(33.3333% + 1rem) !important;
11954
11953
  }
11955
11954
  }
11956
11955
 
11957
- .cherita-app-canvas {
11958
- position: relative;
11959
- }
11960
-
11961
11956
  .cherita-app-obs {
11962
11957
  overflow-y: auto;
11963
11958
  }
@@ -11989,7 +11984,7 @@ textarea.form-control-lg {
11989
11984
  align-items: center;
11990
11985
  width: 100%;
11991
11986
  }
11992
- .cherita-app-sidebar .accordion-header-wrapper:after {
11987
+ .cherita-app-sidebar .accordion-header-wrapper::after {
11993
11988
  content: "";
11994
11989
  flex-shrink: 0;
11995
11990
  width: var(--geeks-accordion-btn-icon-width);
@@ -12004,7 +11999,7 @@ textarea.form-control-lg {
12004
11999
  color: var(--geeks-accordion-active-color);
12005
12000
  background-color: var(--geeks-accordion-active-bg);
12006
12001
  }
12007
- .cherita-app-sidebar .accordion-header-wrapper:not(.collapsed):after {
12002
+ .cherita-app-sidebar .accordion-header-wrapper:not(.collapsed)::after {
12008
12003
  background-image: var(--geeks-accordion-btn-active-icon);
12009
12004
  transform: var(--geeks-accordion-btn-icon-transform);
12010
12005
  }
@@ -12042,6 +12037,9 @@ textarea.form-control-lg {
12042
12037
  border-left: 1px solid #dee2e6;
12043
12038
  }
12044
12039
 
12040
+ .cherita-app-canvas {
12041
+ position: relative;
12042
+ }
12045
12043
  .cherita-app-canvas .cherita-plot {
12046
12044
  position: relative;
12047
12045
  height: 100%;
@@ -12077,7 +12075,7 @@ textarea.form-control-lg {
12077
12075
  max-width: 20%;
12078
12076
  position: relative;
12079
12077
  }
12080
- @media (max-width: 1400px) {
12078
+ @media (width <= 1400px) {
12081
12079
  .cherita-app-container .cherita-app-obs,
12082
12080
  .cherita-app-container .cherita-app-sidebar {
12083
12081
  max-width: 25%;
@@ -12269,7 +12267,7 @@ textarea.form-control-lg {
12269
12267
  display: inline-block;
12270
12268
  }
12271
12269
 
12272
- @media (max-width: 600px) {
12270
+ @media (width <= 600px) {
12273
12271
  .cherita-spatial-footer {
12274
12272
  flex-direction: column;
12275
12273
  align-items: center;
@@ -12370,13 +12368,13 @@ textarea.form-control-lg {
12370
12368
  }
12371
12369
 
12372
12370
  .value-count-badge {
12373
- color: #000000 !important;
12371
+ color: #000 !important;
12374
12372
  background-color: #dedede !important;
12375
12373
  font-weight: lighter;
12376
12374
  }
12377
12375
 
12378
12376
  .filtered-value-count-badge {
12379
- color: #ffffff !important;
12377
+ color: #fff !important;
12380
12378
  font-weight: normal;
12381
12379
  }
12382
12380
 
@@ -12407,23 +12405,26 @@ textarea.form-control-lg {
12407
12405
  background-color: #dedede;
12408
12406
  }
12409
12407
 
12408
+ .feature-histogram-tooltip td > p {
12409
+ font-size: 0.85rem !important;
12410
+ }
12411
+
12412
+ /* stylelint-disable-next-line selector-class-pattern */
12410
12413
  .feature-histogram-tooltip .MuiChartsTooltip-markCell,
12411
12414
  .MuiChartsTooltip-labelCell {
12412
12415
  display: none;
12413
12416
  }
12414
12417
 
12418
+ /* stylelint-disable-next-line selector-class-pattern */
12415
12419
  .feature-histogram-tooltip .MuiChartsTooltip-valueCell {
12416
12420
  padding: 0.5rem !important;
12417
12421
  }
12418
12422
 
12423
+ /* stylelint-disable-next-line selector-class-pattern */
12419
12424
  .feature-histogram-tooltip .MuiChartsTooltip-valueCell > p {
12420
12425
  font-size: 0.85rem !important;
12421
12426
  }
12422
12427
 
12423
- .feature-histogram-tooltip td > p {
12424
- font-size: 0.85rem !important;
12425
- }
12426
-
12427
12428
  .feature-disease-info-list {
12428
12429
  max-height: 300px;
12429
12430
  overflow-y: auto;
@@ -12558,7 +12559,7 @@ input[type=checkbox] {
12558
12559
  z-index: 10;
12559
12560
  width: max-content;
12560
12561
  }
12561
- @media (min-width: 991px) {
12562
+ @media (width >= 991px) {
12562
12563
  .resampled-tooltip-container {
12563
12564
  top: 16px;
12564
12565
  left: 16px;