@jbrowse/core 1.7.10 → 2.0.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.
Files changed (86) hide show
  1. package/BaseFeatureWidget/BaseFeatureDetail.d.ts +14 -4
  2. package/BaseFeatureWidget/BaseFeatureDetail.js +97 -63
  3. package/BaseFeatureWidget/SequenceFeatureDetails.js +21 -15
  4. package/BaseFeatureWidget/index.d.ts +2 -2
  5. package/BaseFeatureWidget/index.js +5 -3
  6. package/BaseFeatureWidget/index.test.js +48 -30
  7. package/BaseFeatureWidget/types.d.ts +1 -0
  8. package/PluginManager.d.ts +68 -104
  9. package/ReExports/Attributes.d.ts +2 -0
  10. package/ReExports/Attributes.js +12 -0
  11. package/ReExports/BaseCard.d.ts +2 -0
  12. package/ReExports/BaseCard.js +12 -0
  13. package/ReExports/DataGrid.d.ts +2 -0
  14. package/ReExports/DataGrid.js +13 -0
  15. package/ReExports/FeatureDetails.d.ts +2 -0
  16. package/ReExports/FeatureDetails.js +12 -0
  17. package/ReExports/list.js +1 -1
  18. package/ReExports/material-ui-colors.d.ts +1 -19
  19. package/ReExports/material-ui-colors.js +11 -152
  20. package/ReExports/modules.d.ts +69 -109
  21. package/ReExports/modules.js +683 -127
  22. package/TextSearch/TextSearchManager.d.ts +3 -1
  23. package/assemblyManager/assembly.d.ts +6 -7
  24. package/assemblyManager/assembly.js +27 -16
  25. package/assemblyManager/assemblyManager.d.ts +82 -24
  26. package/assemblyManager/assemblyManager.js +11 -9
  27. package/configuration/util.d.ts +1 -1
  28. package/package.json +14 -16
  29. package/pluggableElementTypes/models/BaseDisplayModel.d.ts +10 -10
  30. package/pluggableElementTypes/models/BaseTrackModel.d.ts +1 -1
  31. package/pluggableElementTypes/models/BaseTrackModel.js +24 -25
  32. package/pluggableElementTypes/renderers/FeatureRendererType.js +17 -8
  33. package/pluggableElementTypes/renderers/ServerSideRenderedContent.js +2 -2
  34. package/pluggableElementTypes/renderers/ServerSideRendererType.d.ts +2 -2
  35. package/pluggableElementTypes/renderers/ServerSideRendererType.js +1 -1
  36. package/rpc/BaseRpcDriver.js +1 -1
  37. package/rpc/coreRpcMethods.d.ts +1 -3
  38. package/rpc/coreRpcMethods.js +5 -5
  39. package/tsconfig.build.tsbuildinfo +1 -1
  40. package/ui/AboutDialog.js +15 -10
  41. package/ui/App.js +18 -37
  42. package/ui/AssemblySelector.d.ts +1 -1
  43. package/ui/AssemblySelector.js +10 -5
  44. package/ui/CascadingMenu.js +10 -14
  45. package/ui/Drawer.js +8 -5
  46. package/ui/DrawerWidget.js +39 -45
  47. package/ui/DropDownMenu.d.ts +0 -8
  48. package/ui/DropDownMenu.js +9 -15
  49. package/ui/EditableTypography.d.ts +1 -1
  50. package/ui/EditableTypography.js +42 -48
  51. package/ui/ErrorMessage.js +13 -23
  52. package/ui/FactoryResetDialog.js +6 -6
  53. package/ui/FatalErrorDialog.js +5 -5
  54. package/ui/FileSelector/FileSelector.js +19 -19
  55. package/ui/FileSelector/LocalFileChooser.js +12 -8
  56. package/ui/FileSelector/UrlChooser.js +2 -2
  57. package/ui/Icons.d.ts +1 -1
  58. package/ui/Icons.js +1 -1
  59. package/ui/Menu.d.ts +1 -1
  60. package/ui/Menu.js +28 -29
  61. package/ui/PrerenderedCanvas.js +10 -1
  62. package/ui/ResizeHandle.js +8 -6
  63. package/ui/ReturnToImportFormDialog.js +14 -10
  64. package/ui/SanitizedHTML.js +15 -21
  65. package/ui/Snackbar.js +11 -9
  66. package/ui/Tooltip.d.ts +3 -1
  67. package/ui/Tooltip.js +5 -3
  68. package/ui/ViewContainer.js +38 -25
  69. package/ui/theme.d.ts +279 -131
  70. package/ui/theme.js +174 -154
  71. package/ui/theme.test.js +56 -75
  72. package/util/Base1DUtils.d.ts +32 -0
  73. package/util/Base1DUtils.js +213 -0
  74. package/util/Base1DViewModel.d.ts +16 -37
  75. package/util/Base1DViewModel.js +34 -166
  76. package/util/color/index.js +6 -6
  77. package/util/index.d.ts +12 -21
  78. package/util/index.js +29 -90
  79. package/util/layouts/GranularRectLayout.js +1 -3
  80. package/util/layouts/PrecomputedLayout.js +1 -3
  81. package/util/offscreenCanvasPonyfill.js +10 -12
  82. package/util/tracks.js +4 -2
  83. package/util/types/index.d.ts +14 -4
  84. package/util/types/index.js +6 -0
  85. package/util/types/mst.d.ts +3 -3
  86. package/util/types/mst.js +11 -7
package/ui/theme.js CHANGED
@@ -12,11 +12,9 @@ exports.jbrowseDefaultPalette = exports.jbrowseBaseTheme = void 0;
12
12
 
13
13
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
14
 
15
- var _colors = require("@material-ui/core/colors");
15
+ var _colors = require("@mui/material/colors");
16
16
 
17
- var _styles = require("@material-ui/core/styles");
18
-
19
- var _createPalette = require("@material-ui/core/styles/createPalette");
17
+ var _styles = require("@mui/material/styles");
20
18
 
21
19
  var _deepmerge = _interopRequireDefault(require("deepmerge"));
22
20
 
@@ -38,18 +36,30 @@ var jbrowseDefaultPalette = {
38
36
  main: grape
39
37
  },
40
38
  tertiary: refTheme.palette.augmentColor({
41
- main: forest
39
+ color: {
40
+ main: forest
41
+ }
42
42
  }),
43
43
  quaternary: refTheme.palette.augmentColor({
44
- main: mandarin
44
+ color: {
45
+ main: mandarin
46
+ }
45
47
  }),
46
48
  stopCodon: '#e22',
47
49
  startCodon: '#3e3',
48
50
  bases: {
49
- A: refTheme.palette.augmentColor(_colors.green),
50
- C: refTheme.palette.augmentColor(_colors.blue),
51
- G: refTheme.palette.augmentColor(_colors.amber),
52
- T: refTheme.palette.augmentColor(_colors.red)
51
+ A: refTheme.palette.augmentColor({
52
+ color: _colors.green
53
+ }),
54
+ C: refTheme.palette.augmentColor({
55
+ color: _colors.blue
56
+ }),
57
+ G: refTheme.palette.augmentColor({
58
+ color: _colors.amber
59
+ }),
60
+ T: refTheme.palette.augmentColor({
61
+ color: _colors.red
62
+ })
53
63
  }
54
64
  };
55
65
  exports.jbrowseDefaultPalette = jbrowseDefaultPalette;
@@ -58,57 +68,97 @@ function
58
68
  /* palette: PaletteOptions = {} */
59
69
  createJBrowseDefaultProps() {
60
70
  return {
61
- MuiButton: {
62
- size: 'small'
63
- },
64
- MuiFilledInput: {
65
- margin: 'dense'
66
- },
67
- MuiFormControl: {
68
- margin: 'dense'
69
- },
70
- MuiFormHelperText: {
71
- margin: 'dense'
72
- },
73
- MuiIconButton: {
74
- size: 'small'
75
- },
76
- MuiInputBase: {
77
- margin: 'dense'
78
- },
79
- MuiList: {
80
- dense: true
81
- },
82
- MuiListItem: {
83
- dense: true
84
- },
85
- MuiOutlinedInput: {
86
- margin: 'dense'
87
- },
88
- MuiFab: {
89
- size: 'small'
90
- },
91
- MuiTable: {
92
- size: 'small'
93
- },
94
- MuiTextField: {
95
- margin: 'dense',
96
- size: 'small'
97
- },
98
- MuiToolbar: {
99
- variant: 'dense'
100
- },
101
- MuiSvgIcon: {
102
- fontSize: 'small'
103
- },
104
- MuiToggleButtonGroup: {
105
- size: 'small'
106
- },
107
- MuiCheckbox: {
108
- size: 'small'
109
- },
110
- MuiLink: {
111
- underline: 'always'
71
+ components: {
72
+ MuiButton: {
73
+ defaultProps: {
74
+ size: 'small'
75
+ }
76
+ },
77
+ MuiAccordion: {
78
+ defaultProps: {
79
+ disableGutters: true,
80
+ TransitionProps: {
81
+ timeout: 150
82
+ }
83
+ }
84
+ },
85
+ MuiFilledInput: {
86
+ defaultProps: {
87
+ margin: 'dense'
88
+ }
89
+ },
90
+ MuiFormControl: {
91
+ defaultProps: {
92
+ margin: 'dense',
93
+ size: 'small'
94
+ }
95
+ },
96
+ MuiFormHelperText: {
97
+ defaultProps: {
98
+ margin: 'dense'
99
+ }
100
+ },
101
+ MuiIconButton: {
102
+ defaultProps: {
103
+ size: 'small'
104
+ }
105
+ },
106
+ MuiInputBase: {
107
+ defaultProps: {
108
+ margin: 'dense'
109
+ }
110
+ },
111
+ MuiAutocomplete: {
112
+ defaultProps: {
113
+ size: 'small'
114
+ }
115
+ },
116
+ MuiInputLabel: {
117
+ defaultProps: {
118
+ margin: 'dense'
119
+ }
120
+ },
121
+ MuiToolbar: {
122
+ defaultProps: {
123
+ variant: 'dense'
124
+ }
125
+ },
126
+ MuiListItem: {
127
+ defaultProps: {
128
+ dense: true
129
+ }
130
+ },
131
+ MuiOutlinedInput: {
132
+ defaultProps: {
133
+ margin: 'dense'
134
+ }
135
+ },
136
+ MuiFab: {
137
+ defaultProps: {
138
+ size: 'small'
139
+ }
140
+ },
141
+ MuiTable: {
142
+ defaultProps: {
143
+ size: 'small'
144
+ }
145
+ },
146
+ MuiMenuList: {
147
+ defaultProps: {
148
+ dense: true
149
+ }
150
+ },
151
+ MuiMenuItem: {
152
+ defaultProps: {
153
+ dense: true
154
+ }
155
+ },
156
+ MuiTextField: {
157
+ defaultProps: {
158
+ margin: 'dense',
159
+ variant: 'standard'
160
+ }
161
+ }
112
162
  }
113
163
  };
114
164
  }
@@ -117,117 +167,87 @@ function createJBrowseDefaultOverrides() {
117
167
  var palette = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
118
168
  var generatedPalette = (0, _deepmerge.default)(jbrowseDefaultPalette, palette);
119
169
  return {
120
- MuiIconButton: {
121
- colorSecondary: {
122
- color: generatedPalette.tertiary.main
123
- }
124
- },
125
- MuiButton: {
126
- textSecondary: {
127
- color: generatedPalette.tertiary.main
128
- }
129
- },
130
- MuiFab: {
131
- secondary: {
132
- backgroundColor: generatedPalette.quaternary.main
133
- }
134
- },
135
- MuiLink: {
136
- root: {
137
- color: generatedPalette.tertiary.main
138
- }
139
- },
140
- MuiAccordion: {
141
- root: {
142
- // avoid extra padding around accordion element
143
- margin: 0,
144
- '&$expanded': {
145
- margin: 0
170
+ components: {
171
+ MuiIconButton: {
172
+ styleOverrides: {
173
+ colorSecondary: {
174
+ color: generatedPalette.tertiary.main
175
+ }
176
+ }
177
+ },
178
+ MuiButton: {
179
+ styleOverrides: {
180
+ textSecondary: {
181
+ color: generatedPalette.tertiary.main
182
+ }
183
+ }
184
+ },
185
+ MuiFab: {
186
+ styleOverrides: {
187
+ secondary: {
188
+ backgroundColor: generatedPalette.quaternary.main
189
+ }
190
+ }
191
+ },
192
+ MuiLink: {
193
+ styleOverrides: {
194
+ root: {
195
+ color: generatedPalette.tertiary.main
196
+ }
197
+ }
198
+ },
199
+ MuiAccordionSummary: {
200
+ styleOverrides: {
201
+ root: {
202
+ backgroundColor: generatedPalette.tertiary.main
203
+ },
204
+ content: {
205
+ color: generatedPalette.tertiary.contrastText
206
+ }
146
207
  }
147
- }
148
- },
149
- MuiAccordionSummary: {
150
- root: {
151
- // !important needed to combat the MuiButton being applied to
152
- // accordions in mui4.12.2 having a background:'transparent' that
153
- // otherwise overrides this other
154
- backgroundColor: generatedPalette.tertiary.main + ' !important',
155
- // width:100% added in 4.12.2 also
156
- width: '100%',
157
- '&$expanded': {
158
- // overrides the subclass e.g. .MuiAccordionSummary-root-311.MuiAccordionSummary-expanded-312
159
- minHeight: 0,
160
- color: generatedPalette.tertiary.contrastText,
161
- backgroundColor: generatedPalette.tertiary.main
162
- },
163
- minHeight: 0
164
- },
165
- content: {
166
- '&$expanded': {
167
- margin: '8px 8px'
168
- },
169
- margin: '8px 8px',
170
- color: generatedPalette.tertiary.contrastText
171
- }
172
- },
173
- // makes menus more compact
174
- MuiMenuItem: {
175
- root: {
176
- paddingTop: 3,
177
- paddingBottom: 3
178
- }
179
- },
180
- // the below two are linked to make menus more compact
181
- MuiListItemIcon: {
182
- root: {
183
- minWidth: 32
184
- }
185
- },
186
- MuiListItemText: {
187
- inset: {
188
- paddingLeft: 32
189
208
  }
190
209
  }
191
210
  };
192
211
  }
193
212
 
194
- var jbrowseBaseTheme = {
213
+ var jbrowseBaseTheme = _objectSpread({
195
214
  palette: jbrowseDefaultPalette,
196
215
  typography: {
197
216
  fontSize: 12
198
217
  },
199
- spacing: 4,
200
- props: createJBrowseDefaultProps(),
201
- overrides: createJBrowseDefaultOverrides()
202
- };
218
+ spacing: 4
219
+ }, (0, _deepmerge.default)(createJBrowseDefaultProps(), createJBrowseDefaultOverrides())); // eslint-disable-next-line @typescript-eslint/no-explicit-any
220
+
221
+
203
222
  exports.jbrowseBaseTheme = jbrowseBaseTheme;
204
223
 
205
224
  function createJBrowseTheme(theme) {
206
- var _theme$palette, _theme$palette2;
225
+ var _theme, _theme$palette, _theme2, _theme2$palette;
207
226
 
208
- if (!theme) {
209
- return (0, _styles.createTheme)(jbrowseBaseTheme);
210
- }
227
+ if ((_theme = theme) !== null && _theme !== void 0 && (_theme$palette = _theme.palette) !== null && _theme$palette !== void 0 && _theme$palette.tertiary) {
228
+ var _theme$palette$tertia;
211
229
 
212
- if ((_theme$palette = theme.palette) !== null && _theme$palette !== void 0 && _theme$palette.tertiary) {
213
- theme = _objectSpread(_objectSpread({}, theme), {}, {
214
- palette: _objectSpread(_objectSpread({}, theme.palette), {}, {
215
- tertiary: refTheme.palette.augmentColor(theme.palette.tertiary)
216
- })
230
+ theme = (0, _deepmerge.default)(theme, {
231
+ palette: {
232
+ tertiary: refTheme.palette.augmentColor((_theme$palette$tertia = theme.palette.tertiary) !== null && _theme$palette$tertia !== void 0 && _theme$palette$tertia.color ? theme.palette.tertiary : {
233
+ color: theme.palette.tertiary
234
+ })
235
+ }
217
236
  });
218
237
  }
219
238
 
220
- if ((_theme$palette2 = theme.palette) !== null && _theme$palette2 !== void 0 && _theme$palette2.quaternary) {
221
- theme = _objectSpread(_objectSpread({}, theme), {}, {
222
- palette: _objectSpread(_objectSpread({}, theme.palette), {}, {
223
- quaternary: refTheme.palette.augmentColor(theme.palette.quaternary)
224
- })
239
+ if ((_theme2 = theme) !== null && _theme2 !== void 0 && (_theme2$palette = _theme2.palette) !== null && _theme2$palette !== void 0 && _theme2$palette.quaternary) {
240
+ var _theme$palette$quater;
241
+
242
+ theme = (0, _deepmerge.default)(theme, {
243
+ palette: {
244
+ quaternary: refTheme.palette.augmentColor((_theme$palette$quater = theme.palette.quaternary) !== null && _theme$palette$quater !== void 0 && _theme$palette$quater.color ? theme.palette.quaternary : {
245
+ color: theme.palette.quaternary
246
+ })
247
+ }
225
248
  });
226
- }
249
+ } // @ts-ignore
250
+
227
251
 
228
- theme = _objectSpread(_objectSpread({}, theme), {}, {
229
- props: (0, _deepmerge.default)(createJBrowseDefaultProps(), theme.props || {}),
230
- overrides: (0, _deepmerge.default)(createJBrowseDefaultOverrides(theme.palette), theme.overrides || {})
231
- });
232
- return (0, _styles.createTheme)((0, _deepmerge.default)(jbrowseBaseTheme, theme));
252
+ return (0, _styles.createTheme)((0, _deepmerge.default)(jbrowseBaseTheme, theme || {}));
233
253
  }
package/ui/theme.test.js CHANGED
@@ -4,11 +4,17 @@ var _theme = require("./theme");
4
4
 
5
5
  describe('theme utils', function () {
6
6
  it('can create a default theme', function () {
7
- var theme = (0, _theme.createJBrowseTheme)();
8
- expect(theme.palette.primary.main).toEqual('#0D233F');
9
- expect(theme.palette.secondary.main).toEqual('#721E63');
10
- expect(theme.palette.tertiary.main).toEqual('#135560');
11
- expect(theme.palette.quaternary.main).toEqual('#FFB11D');
7
+ var theme = (0, _theme.createJBrowseTheme)(); // @ts-ignore
8
+
9
+ var _theme$palette = theme.palette,
10
+ primary = _theme$palette.primary,
11
+ secondary = _theme$palette.secondary,
12
+ tertiary = _theme$palette.tertiary,
13
+ quaternary = _theme$palette.quaternary;
14
+ expect(primary.main).toEqual('#0D233F');
15
+ expect(secondary.main).toEqual('#721E63');
16
+ expect(tertiary.main).toEqual('#135560');
17
+ expect(quaternary.main).toEqual('#FFB11D');
12
18
  });
13
19
  it('allows overriding primary and secondary colors', function () {
14
20
  var theme = (0, _theme.createJBrowseTheme)({
@@ -28,84 +34,59 @@ describe('theme utils', function () {
28
34
  var theme = (0, _theme.createJBrowseTheme)({
29
35
  palette: {
30
36
  tertiary: {
31
- main: '#888'
37
+ color: {
38
+ 500: '#888'
39
+ }
32
40
  },
33
41
  quaternary: {
34
- main: 'hsl(0,0,54)'
42
+ color: {
43
+ main: 'hsl(0,0,54)'
44
+ }
35
45
  }
36
46
  }
37
- });
38
- expect(theme.palette.tertiary.main).toEqual('#888');
39
- expect(theme.palette.tertiary.light).toBeTruthy();
40
- expect(theme.palette.quaternary.main).toEqual('hsl(0,0,54)');
41
- expect(theme.palette.quaternary.dark).toBeTruthy();
47
+ }); // @ts-ignore
48
+
49
+ var _theme$palette2 = theme.palette,
50
+ tertiary = _theme$palette2.tertiary,
51
+ quaternary = _theme$palette2.quaternary;
52
+ expect(tertiary.main).toEqual('#888');
53
+ expect(tertiary.light).toBeTruthy();
54
+ expect(quaternary.main).toEqual('hsl(0,0,54)');
55
+ expect(quaternary.dark).toBeTruthy();
42
56
  });
43
57
  it('allows customizing spacing', function () {
44
58
  var defaultTheme = (0, _theme.createJBrowseTheme)();
45
- expect(defaultTheme.spacing(1)).toBe(4);
59
+ expect(defaultTheme.spacing(1)).toBe('4px');
46
60
  var biggerSpacingTheme = (0, _theme.createJBrowseTheme)({
47
61
  spacing: 16
48
62
  });
49
- expect(biggerSpacingTheme.spacing(1)).toBe(16);
50
- });
51
- it('allows adding a custom override', function () {
52
- var _theme$overrides;
53
-
54
- var muiPaperStyle = {
55
- root: {
56
- backgroundColor: 'green'
57
- }
58
- };
59
- var theme = (0, _theme.createJBrowseTheme)({
60
- overrides: {
61
- MuiPaper: muiPaperStyle
62
- }
63
- });
64
- expect((_theme$overrides = theme.overrides) === null || _theme$overrides === void 0 ? void 0 : _theme$overrides.MuiPaper).toEqual(muiPaperStyle);
65
- expect(Object.keys(theme.overrides || {}).length).toBe(10);
66
- });
67
- it('allows modifying a default override', function () {
68
- var _theme$overrides2;
69
-
70
- var muiButtonStyle = {
71
- textSecondary: {
72
- color: 'orange'
73
- }
74
- };
75
- var theme = (0, _theme.createJBrowseTheme)({
76
- overrides: {
77
- MuiButton: muiButtonStyle
78
- }
79
- });
80
- expect((_theme$overrides2 = theme.overrides) === null || _theme$overrides2 === void 0 ? void 0 : _theme$overrides2.MuiButton).toEqual(muiButtonStyle);
81
- expect(Object.keys(theme.overrides || {}).length).toBe(9);
82
- });
83
- it('allows adding a custom prop', function () {
84
- var _theme$props;
85
-
86
- var muiPaperProps = {
87
- variant: 'outlined'
88
- };
89
- var theme = (0, _theme.createJBrowseTheme)({
90
- props: {
91
- MuiPaper: muiPaperProps
92
- }
93
- });
94
- expect((_theme$props = theme.props) === null || _theme$props === void 0 ? void 0 : _theme$props.MuiPaper).toEqual(muiPaperProps);
95
- expect(Object.keys(theme.props || {}).length).toBe(18);
96
- });
97
- it('allows modifying a prop override', function () {
98
- var _theme$props2;
99
-
100
- var muiButtonProps = {
101
- size: 'medium'
102
- };
103
- var theme = (0, _theme.createJBrowseTheme)({
104
- props: {
105
- MuiButton: muiButtonProps
106
- }
107
- });
108
- expect((_theme$props2 = theme.props) === null || _theme$props2 === void 0 ? void 0 : _theme$props2.MuiButton).toEqual(muiButtonProps);
109
- expect(Object.keys(theme.props || {}).length).toBe(17);
110
- });
63
+ expect(biggerSpacingTheme.spacing(1)).toBe('16px');
64
+ }); // it('allows adding a custom override', () => {
65
+ // const muiPaperStyle = { root: { backgroundColor: 'green' } }
66
+ // const theme = createJBrowseTheme({
67
+ // overrides: { MuiPaper: muiPaperStyle },
68
+ // })
69
+ // expect(theme.overrides?.MuiPaper).toEqual(muiPaperStyle)
70
+ // expect(Object.keys(theme.overrides || {}).length).toBe(10)
71
+ // })
72
+ // it('allows modifying a default override', () => {
73
+ // const muiButtonStyle = { textSecondary: { color: 'orange' } }
74
+ // const theme = createJBrowseTheme({
75
+ // overrides: { MuiButton: muiButtonStyle },
76
+ // })
77
+ // expect(theme.overrides?.MuiButton).toEqual(muiButtonStyle)
78
+ // expect(Object.keys(theme.overrides || {}).length).toBe(9)
79
+ // })
80
+ // it('allows adding a custom prop', () => {
81
+ // const muiPaperProps = { variant: 'outlined' as const }
82
+ // const theme = createJBrowseTheme({ props: { MuiPaper: muiPaperProps } })
83
+ // expect(theme.props?.MuiPaper).toEqual(muiPaperProps)
84
+ // expect(Object.keys(theme.props || {}).length).toBe(18)
85
+ // })
86
+ // it('allows modifying a prop override', () => {
87
+ // const muiButtonProps = { size: 'medium' as const }
88
+ // const theme = createJBrowseTheme({ props: { MuiButton: muiButtonProps } })
89
+ // expect(theme.props?.MuiButton).toEqual(muiButtonProps)
90
+ // expect(Object.keys(theme.props || {}).length).toBe(17)
91
+ // })
111
92
  });
@@ -0,0 +1,32 @@
1
+ import { ViewSnap } from './index';
2
+ export interface BpOffset {
3
+ refName?: string;
4
+ index: number;
5
+ offset: number;
6
+ start?: number;
7
+ end?: number;
8
+ }
9
+ export declare function moveTo(self: ViewSnap & {
10
+ zoomTo: (arg: number) => number;
11
+ scrollTo: (arg: number) => void;
12
+ }, start?: BpOffset, end?: BpOffset): void;
13
+ export declare function pxToBp(self: ViewSnap, px: number): {
14
+ coord: number;
15
+ index: number;
16
+ refName: string;
17
+ oob: boolean;
18
+ assemblyName: string;
19
+ offset: number;
20
+ start: number;
21
+ end: number;
22
+ reversed: boolean;
23
+ };
24
+ export declare function bpToPx({ refName, coord, regionNumber, self, }: {
25
+ refName: string;
26
+ coord: number;
27
+ regionNumber?: number;
28
+ self: ViewSnap;
29
+ }): {
30
+ index: number;
31
+ offsetPx: number;
32
+ } | undefined;