@jbrowse/core 5.0.0-beta.11 → 5.0.0-beta.14

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 (439) hide show
  1. package/README.md +450 -132
  2. package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.d.ts +3 -2
  3. package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +4 -2
  4. package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.d.ts +6 -2
  5. package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +18 -3
  6. package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseAttributes.d.ts +2 -1
  7. package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseAttributes.js +4 -2
  8. package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCard.d.ts +2 -1
  9. package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCard.js +4 -2
  10. package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCoreDetails.d.ts +2 -1
  11. package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCoreDetails.js +4 -2
  12. package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.d.ts +5 -4
  13. package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.js +6 -4
  14. package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.d.ts +2 -1
  15. package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.js +4 -2
  16. package/esm/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.d.ts +3 -2
  17. package/esm/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.js +4 -2
  18. package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.js +2 -2
  19. package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureWash.d.ts +3 -2
  20. package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureWash.js +4 -2
  21. package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldActionsButton.d.ts +3 -2
  22. package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldActionsButton.js +4 -2
  23. package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldName.d.ts +3 -2
  24. package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldName.js +4 -2
  25. package/esm/BaseFeatureWidget/BaseFeatureDetail/Formatter.d.ts +3 -2
  26. package/esm/BaseFeatureWidget/BaseFeatureDetail/Formatter.js +4 -2
  27. package/esm/BaseFeatureWidget/BaseFeatureDetail/ParentFeatureLine.d.ts +3 -2
  28. package/esm/BaseFeatureWidget/BaseFeatureDetail/ParentFeatureLine.js +4 -2
  29. package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.d.ts +3 -2
  30. package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +4 -2
  31. package/esm/BaseFeatureWidget/BaseFeatureDetail/UriField.d.ts +3 -2
  32. package/esm/BaseFeatureWidget/BaseFeatureDetail/UriField.js +4 -2
  33. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceBody.d.ts +3 -2
  34. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceBody.js +4 -2
  35. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.d.ts +3 -1
  36. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.js +15 -24
  37. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.js +1 -1
  38. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceLegend.d.ts +3 -2
  39. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceLegend.js +4 -2
  40. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.js +4 -4
  41. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/FeatureSequenceDialog.d.ts +3 -1
  42. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/FeatureSequenceDialog.js +2 -2
  43. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.d.ts +3 -2
  44. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.js +4 -2
  45. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.d.ts +1 -2
  46. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.js +2 -2
  47. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.d.ts +1 -2
  48. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.js +15 -36
  49. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.d.ts +3 -2
  50. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.js +4 -2
  51. package/esm/BaseFeatureWidget/SequenceFeatureDetails/featureTypeUtil.d.ts +4 -2
  52. package/esm/BaseFeatureWidget/SequenceFeatureDetails/featureTypeUtil.js +29 -20
  53. package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.d.ts +13 -1
  54. package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.js +28 -1
  55. package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.js +3 -3
  56. package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.js +2 -2
  57. package/esm/BaseFeatureWidget/stateModelFactory.d.ts +9 -0
  58. package/esm/BaseFeatureWidget/stateModelFactory.js +11 -0
  59. package/esm/BaseFeatureWidget/types.d.ts +2 -0
  60. package/esm/PluginManager.d.ts +7 -3
  61. package/esm/PluginManager.js +12 -3
  62. package/esm/ReExports/coreModules.generated.js +538 -518
  63. package/esm/ReExports/coreWorkerModules.generated.js +456 -438
  64. package/esm/ReExports/lazify.js +3 -2
  65. package/esm/ReExports/list.js +22 -6
  66. package/esm/ReExports/names.d.ts +1 -0
  67. package/esm/ReExports/names.generated.d.ts +2 -0
  68. package/esm/ReExports/names.generated.js +566 -0
  69. package/esm/ReExports/names.js +3 -0
  70. package/esm/TextSearch/TextSearchManager.d.ts +3 -3
  71. package/esm/TextSearch/TextSearchManager.js +6 -13
  72. package/esm/assemblyManager/assembly.d.ts +9 -0
  73. package/esm/assemblyManager/assembly.js +13 -0
  74. package/esm/assemblyManager/assemblyConfigSchema.d.ts +6 -1
  75. package/esm/assemblyManager/assemblyConfigSchema.js +23 -22
  76. package/esm/assemblyManager/assemblyManager.d.ts +11 -0
  77. package/esm/assemblyManager/assemblyManager.js +2 -0
  78. package/esm/assemblyManager/expandAssemblyConfigShorthand.d.ts +9 -0
  79. package/esm/assemblyManager/expandAssemblyConfigShorthand.js +23 -0
  80. package/esm/checkPlugins.js +10 -4
  81. package/esm/configuration/configurationSchema.d.ts +51 -100
  82. package/esm/configuration/configurationSchema.js +59 -225
  83. package/esm/configuration/configurationSchemaUnion.d.ts +2 -1
  84. package/esm/configuration/configurationSchemaUnion.js +2 -1
  85. package/esm/configuration/configurationSlot.d.ts +18 -64
  86. package/esm/configuration/configurationSlot.js +32 -98
  87. package/esm/configuration/fillLocations.d.ts +4 -2
  88. package/esm/configuration/fillLocations.js +9 -3
  89. package/esm/configuration/formatAboutConfigSchema.d.ts +2 -2
  90. package/esm/configuration/formatAboutConfigSchema.js +2 -2
  91. package/esm/configuration/formatDetailsConfigSchema.d.ts +2 -2
  92. package/esm/configuration/formatDetailsConfigSchema.js +7 -5
  93. package/esm/configuration/getConf.d.ts +7 -36
  94. package/esm/configuration/getConf.js +20 -41
  95. package/esm/configuration/index.d.ts +4 -3
  96. package/esm/configuration/index.js +3 -2
  97. package/esm/configuration/partitionAdvanced.d.ts +12 -0
  98. package/esm/configuration/partitionAdvanced.js +42 -0
  99. package/esm/configuration/plot.d.ts +6 -0
  100. package/esm/configuration/plot.js +56 -9
  101. package/esm/configuration/readConfObject.d.ts +15 -17
  102. package/esm/configuration/readConfObject.js +19 -50
  103. package/esm/configuration/schemaRegistry.d.ts +0 -2
  104. package/esm/configuration/schemaTypes.js +5 -1
  105. package/esm/configuration/slotFacade.js +2 -2
  106. package/esm/configuration/snapshotPreprocess.d.ts +42 -18
  107. package/esm/configuration/snapshotPreprocess.js +95 -37
  108. package/esm/configuration/tabixShorthand.js +1 -3
  109. package/esm/configuration/types.d.ts +60 -159
  110. package/esm/data_adapters/BaseAdapter/BaseAdapter.d.ts +7 -0
  111. package/esm/data_adapters/BaseAdapter/BaseAdapter.js +7 -0
  112. package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +0 -22
  113. package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +0 -55
  114. package/esm/data_adapters/BaseAdapter/index.d.ts +0 -1
  115. package/esm/data_adapters/BaseAdapter/index.js +0 -1
  116. package/esm/data_adapters/BaseAdapter/rowSources.d.ts +2 -2
  117. package/esm/data_adapters/BaseAdapter/types.d.ts +1 -0
  118. package/esm/data_adapters/CytobandAdapter/configSchema.d.ts +2 -0
  119. package/esm/data_adapters/CytobandAdapter/configSchema.js +5 -0
  120. package/esm/data_adapters/dataAdapterCache.d.ts +25 -13
  121. package/esm/data_adapters/dataAdapterCache.js +68 -24
  122. package/esm/data_adapters/getFeatureAdapter.d.ts +9 -0
  123. package/esm/data_adapters/getFeatureAdapter.js +17 -0
  124. package/esm/pluggableElementTypes/DisplayType.d.ts +7 -0
  125. package/esm/pluggableElementTypes/DisplayType.js +7 -0
  126. package/esm/pluggableElementTypes/RpcMethodType.d.ts +7 -0
  127. package/esm/pluggableElementTypes/RpcMethodType.js +9 -0
  128. package/esm/pluggableElementTypes/addMenuItems.d.ts +2 -1
  129. package/esm/pluggableElementTypes/addMenuItems.js +2 -1
  130. package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +2 -0
  131. package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.js +2 -0
  132. package/esm/pluggableElementTypes/models/BaseDisplayModel.d.ts +40 -5
  133. package/esm/pluggableElementTypes/models/BaseDisplayModel.js +57 -9
  134. package/esm/pluggableElementTypes/models/BaseTrackModel.d.ts +5 -7
  135. package/esm/pluggableElementTypes/models/BaseTrackModel.js +9 -10
  136. package/esm/pluggableElementTypes/models/BaseViewModel.d.ts +2 -0
  137. package/esm/pluggableElementTypes/models/BaseViewModel.js +2 -0
  138. package/esm/pluggableElementTypes/models/InternetAccountModel.d.ts +3 -0
  139. package/esm/pluggableElementTypes/models/InternetAccountModel.js +3 -0
  140. package/esm/pluggableElementTypes/models/baseConnectionConfig.d.ts +3 -0
  141. package/esm/pluggableElementTypes/models/baseConnectionConfig.js +3 -0
  142. package/esm/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +3 -1
  143. package/esm/pluggableElementTypes/models/baseInternetAccountConfig.js +3 -1
  144. package/esm/pluggableElementTypes/models/baseTrackConfig.js +12 -1
  145. package/esm/pluggableElementTypes/models/components/SaveTrackData.js +2 -2
  146. package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.d.ts +1 -1
  147. package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.js +1 -1
  148. package/esm/pluginDefinitions.d.ts +7 -0
  149. package/esm/pluginDefinitions.js +20 -0
  150. package/esm/rpc/RpcRegistry.d.ts +2 -11
  151. package/esm/rpc/byteBudget.d.ts +15 -0
  152. package/esm/rpc/byteBudget.js +23 -0
  153. package/esm/rpc/configSchema.d.ts +2 -0
  154. package/esm/rpc/configSchema.js +3 -1
  155. package/esm/rpc/coreRpcMethods.d.ts +1 -2
  156. package/esm/rpc/coreRpcMethods.js +1 -2
  157. package/esm/rpc/explainTransferError.js +3 -3
  158. package/esm/rpc/methods/CoreGetEncodedLayers.d.ts +2 -2
  159. package/esm/rpc/methods/CoreGetEncodedLayers.js +7 -5
  160. package/esm/rpc/methods/CoreLoadTrackCode.d.ts +17 -0
  161. package/esm/rpc/methods/CoreLoadTrackCode.js +24 -0
  162. package/esm/rpc/methods/layerFeatures.d.ts +9 -6
  163. package/esm/rpc/methods/layerFeatures.js +21 -5
  164. package/esm/ui/ActionLink.d.ts +3 -2
  165. package/esm/ui/ActionLink.js +4 -2
  166. package/esm/ui/AddCustomPluginDialog.d.ts +3 -2
  167. package/esm/ui/AddCustomPluginDialog.js +6 -4
  168. package/esm/ui/AppLogo.js +43 -3
  169. package/esm/ui/BaseTooltip.d.ts +3 -2
  170. package/esm/ui/BaseTooltip.js +4 -2
  171. package/esm/ui/CascadingMenu.js +14 -12
  172. package/esm/ui/CascadingMenuButton.d.ts +2 -2
  173. package/esm/ui/CascadingMenuButton.js +5 -4
  174. package/esm/ui/CascadingMenuHelpDialog.d.ts +3 -2
  175. package/esm/ui/CascadingMenuHelpDialog.js +4 -2
  176. package/esm/ui/CascadingMenuHelpIconButton.d.ts +4 -3
  177. package/esm/ui/CascadingMenuHelpIconButton.js +9 -5
  178. package/esm/ui/ColorPicker.d.ts +5 -4
  179. package/esm/ui/ColorPicker.js +6 -4
  180. package/esm/ui/ContextMenu.d.ts +1 -1
  181. package/esm/ui/ContextMenu.js +1 -1
  182. package/esm/ui/CopyToClipboardButton.d.ts +3 -2
  183. package/esm/ui/CopyToClipboardButton.js +4 -2
  184. package/esm/ui/Crosshairs.js +13 -10
  185. package/esm/ui/DOMPurifySanitizedHTML.d.ts +3 -2
  186. package/esm/ui/DOMPurifySanitizedHTML.js +4 -2
  187. package/esm/ui/DataGridFlexContainer.d.ts +3 -2
  188. package/esm/ui/DataGridFlexContainer.js +4 -2
  189. package/esm/ui/Dialog.d.ts +1 -1
  190. package/esm/ui/Dialog.js +5 -4
  191. package/esm/ui/DropDownMenu.js +2 -2
  192. package/esm/ui/EditableTypography.d.ts +1 -1
  193. package/esm/ui/EditableTypography.js +3 -2
  194. package/esm/ui/ErrorActions.d.ts +3 -2
  195. package/esm/ui/ErrorActions.js +4 -2
  196. package/esm/ui/ErrorBanner.d.ts +2 -2
  197. package/esm/ui/ErrorBanner.js +3 -2
  198. package/esm/ui/ErrorBar.d.ts +3 -2
  199. package/esm/ui/ErrorBar.js +4 -2
  200. package/esm/ui/ErrorMessage.d.ts +3 -2
  201. package/esm/ui/ErrorMessage.js +4 -2
  202. package/esm/ui/ErrorMessageStackTraceContents.d.ts +3 -2
  203. package/esm/ui/ErrorMessageStackTraceContents.js +4 -2
  204. package/esm/ui/ErrorMessageStackTraceDialog.d.ts +3 -2
  205. package/esm/ui/ErrorMessageStackTraceDialog.js +4 -2
  206. package/esm/ui/ErrorOverlay.d.ts +3 -2
  207. package/esm/ui/ErrorOverlay.js +4 -2
  208. package/esm/ui/ExportSvgDialog.d.ts +3 -2
  209. package/esm/ui/ExportSvgDialog.js +4 -2
  210. package/esm/ui/ExternalLink.d.ts +2 -1
  211. package/esm/ui/ExternalLink.js +4 -2
  212. package/esm/ui/FactoryResetDialog.d.ts +3 -2
  213. package/esm/ui/FactoryResetDialog.js +4 -2
  214. package/esm/ui/FatalErrorDialog.d.ts +3 -2
  215. package/esm/ui/FatalErrorDialog.js +6 -4
  216. package/esm/ui/FileDropZone.d.ts +3 -2
  217. package/esm/ui/FileDropZone.js +4 -2
  218. package/esm/ui/FileSelector/LocalFileChooser.js +4 -4
  219. package/esm/ui/FileSelector/LocationInput.d.ts +3 -2
  220. package/esm/ui/FileSelector/LocationInput.js +4 -2
  221. package/esm/ui/FileSelector/SourceTypeSelector.d.ts +3 -2
  222. package/esm/ui/FileSelector/SourceTypeSelector.js +8 -6
  223. package/esm/ui/GpuFallbackButton.d.ts +3 -2
  224. package/esm/ui/GpuFallbackButton.js +4 -2
  225. package/esm/ui/HoverMenu.d.ts +2 -2
  226. package/esm/ui/HoverMenu.js +7 -3
  227. package/esm/ui/HoverTooltip.d.ts +3 -2
  228. package/esm/ui/HoverTooltip.js +4 -2
  229. package/esm/ui/Icons.d.ts +5 -5
  230. package/esm/ui/Icons.js +11 -10
  231. package/esm/ui/InlineMenuControls.d.ts +2 -2
  232. package/esm/ui/InlineMenuControls.js +4 -3
  233. package/esm/ui/JexlFilterRowEditors.d.ts +4 -4
  234. package/esm/ui/JexlFilterRowEditors.js +9 -8
  235. package/esm/ui/LabeledCheckbox.d.ts +3 -2
  236. package/esm/ui/LabeledCheckbox.js +4 -2
  237. package/esm/ui/LazyBaseTooltip.d.ts +12 -3
  238. package/esm/ui/LazyBaseTooltip.js +4 -2
  239. package/esm/ui/LegendSwatchGlyph.js +1 -0
  240. package/esm/ui/LoadingDots.d.ts +2 -1
  241. package/esm/ui/LoadingDots.js +4 -2
  242. package/esm/ui/LoadingEllipses.d.ts +5 -2
  243. package/esm/ui/LoadingEllipses.js +5 -3
  244. package/esm/ui/LoadingOverlay.d.ts +3 -2
  245. package/esm/ui/LoadingOverlay.js +4 -2
  246. package/esm/ui/LoadingProgress.d.ts +3 -2
  247. package/esm/ui/LoadingProgress.js +4 -2
  248. package/esm/ui/Logo.d.ts +2 -2
  249. package/esm/ui/Logo.js +9 -8
  250. package/esm/ui/MenuItemChevron.d.ts +2 -2
  251. package/esm/ui/MenuItemChevron.js +3 -2
  252. package/esm/ui/MenuItemEndDecoration.d.ts +2 -2
  253. package/esm/ui/MenuItemEndDecoration.js +3 -2
  254. package/esm/ui/MenuItemTrailing.d.ts +2 -2
  255. package/esm/ui/MenuItemTrailing.js +7 -6
  256. package/esm/ui/MenuTypes.d.ts +21 -1
  257. package/esm/ui/MenuTypes.js +20 -0
  258. package/esm/ui/MonospaceTextField.d.ts +3 -2
  259. package/esm/ui/MonospaceTextField.js +4 -2
  260. package/esm/ui/NumberTextField.d.ts +2 -2
  261. package/esm/ui/NumberTextField.js +4 -2
  262. package/esm/ui/PaletteContext.d.ts +11 -9
  263. package/esm/ui/PaletteContext.js +33 -18
  264. package/esm/ui/PluginStoreCard.d.ts +3 -2
  265. package/esm/ui/PluginStoreCard.js +4 -2
  266. package/esm/ui/PopoverPicker.d.ts +3 -2
  267. package/esm/ui/PopoverPicker.js +4 -2
  268. package/esm/ui/PrerenderedCanvas.d.ts +2 -2
  269. package/esm/ui/PrerenderedCanvas.js +3 -2
  270. package/esm/ui/RedErrorMessageBox.d.ts +3 -2
  271. package/esm/ui/RedErrorMessageBox.js +4 -2
  272. package/esm/ui/RefNameAutocomplete/EndAdornment.d.ts +3 -2
  273. package/esm/ui/RefNameAutocomplete/EndAdornment.js +4 -2
  274. package/esm/ui/RefNameAutocomplete/HelpDialog.d.ts +3 -2
  275. package/esm/ui/RefNameAutocomplete/HelpDialog.js +4 -2
  276. package/esm/ui/ReplaceCurrentViewButton.d.ts +3 -2
  277. package/esm/ui/ReplaceCurrentViewButton.js +4 -2
  278. package/esm/ui/ResizeHandle.d.ts +2 -2
  279. package/esm/ui/ResizeHandle.js +3 -2
  280. package/esm/ui/SanitizedHTML.d.ts +3 -2
  281. package/esm/ui/SanitizedHTML.js +6 -4
  282. package/esm/ui/ScrollChrome.d.ts +3 -2
  283. package/esm/ui/ScrollChrome.js +4 -2
  284. package/esm/ui/ScrollEdgeShadow.d.ts +2 -2
  285. package/esm/ui/ScrollEdgeShadow.js +2 -2
  286. package/esm/ui/SessionJsonPanel.d.ts +3 -2
  287. package/esm/ui/SessionJsonPanel.js +4 -2
  288. package/esm/ui/ShareLinkField.d.ts +3 -2
  289. package/esm/ui/ShareLinkField.js +4 -2
  290. package/esm/ui/SingleSlider.d.ts +2 -2
  291. package/esm/ui/SingleSlider.js +4 -2
  292. package/esm/ui/SliderTooltip.d.ts +2 -1
  293. package/esm/ui/SliderTooltip.js +4 -2
  294. package/esm/ui/SnackbarContents.d.ts +3 -2
  295. package/esm/ui/SnackbarContents.js +4 -2
  296. package/esm/ui/SnackbarModel.d.ts +2 -0
  297. package/esm/ui/SnackbarModel.js +2 -0
  298. package/esm/ui/StackTraceButton.d.ts +3 -2
  299. package/esm/ui/StackTraceButton.js +4 -2
  300. package/esm/ui/StatusProgressBar.d.ts +3 -2
  301. package/esm/ui/StatusProgressBar.js +4 -2
  302. package/esm/ui/SubmitForm.d.ts +2 -1
  303. package/esm/ui/SubmitForm.js +4 -2
  304. package/esm/ui/SvgColorLegend.d.ts +3 -4
  305. package/esm/ui/SvgColorLegend.js +27 -18
  306. package/esm/ui/TagTextField.d.ts +2 -2
  307. package/esm/ui/TagTextField.js +4 -2
  308. package/esm/ui/ViewLoadingScreen.d.ts +3 -2
  309. package/esm/ui/ViewLoadingScreen.js +4 -2
  310. package/esm/ui/buildExtraTrackMenuItems.d.ts +2 -2
  311. package/esm/ui/colorScale.d.ts +5 -1
  312. package/esm/ui/colorScale.js +12 -10
  313. package/esm/ui/colors.d.ts +42 -31
  314. package/esm/ui/colors.js +85 -48
  315. package/esm/ui/filterMenuItems.d.ts +10 -31
  316. package/esm/ui/filterMenuItems.js +13 -14
  317. package/esm/ui/index.d.ts +1 -1
  318. package/esm/ui/index.js +1 -1
  319. package/esm/ui/launchTargetsMenuItem.js +9 -13
  320. package/esm/ui/legendMenuItem.d.ts +4 -4
  321. package/esm/ui/legendMenuItem.js +4 -4
  322. package/esm/ui/menuItemAdornment.d.ts +1 -1
  323. package/esm/ui/menuItemAdornment.js +1 -1
  324. package/esm/ui/menuItems.d.ts +1 -1
  325. package/esm/ui/menuItems.js +1 -1
  326. package/esm/ui/menuLabels.d.ts +2 -2
  327. package/esm/ui/menuLabels.js +2 -2
  328. package/esm/ui/multiTrackMenuItems.d.ts +2 -2
  329. package/esm/ui/palette.d.ts +2 -2
  330. package/esm/ui/palette.js +10 -10
  331. package/esm/ui/radioSubMenu.d.ts +5 -3
  332. package/esm/ui/radioSubMenu.js +2 -2
  333. package/esm/ui/rampKey.d.ts +15 -0
  334. package/esm/ui/rampKey.js +17 -0
  335. package/esm/ui/showSubMenu.d.ts +0 -5
  336. package/esm/ui/showSubMenu.js +6 -15
  337. package/esm/ui/theme.d.ts +2 -2
  338. package/esm/ui/theme.js +1 -1
  339. package/esm/ui/useAssemblySelection.d.ts +2 -0
  340. package/esm/ui/useMouseTracking.d.ts +8 -20
  341. package/esm/ui/useMouseTracking.js +23 -62
  342. package/esm/ui/usePlacedMenuFocus.d.ts +19 -0
  343. package/esm/ui/usePlacedMenuFocus.js +28 -0
  344. package/esm/util/Base1DViewModel.d.ts +5 -3
  345. package/esm/util/Base1DViewModel.js +5 -3
  346. package/esm/util/SvgCanvas.js +1 -1
  347. package/esm/util/aggregateFieldName.d.ts +1 -10
  348. package/esm/util/aggregateFieldName.js +1 -8
  349. package/esm/util/alignedBytes.d.ts +19 -0
  350. package/esm/util/alignedBytes.js +37 -0
  351. package/esm/util/analytics.d.ts +6 -9
  352. package/esm/util/analytics.js +148 -15
  353. package/esm/util/bezierConnector.d.ts +20 -0
  354. package/esm/util/bezierConnector.js +34 -96
  355. package/esm/util/cacheBudgets.d.ts +3 -0
  356. package/esm/util/cacheBudgets.js +3 -0
  357. package/esm/util/categoricalField.d.ts +24 -4
  358. package/esm/util/categoricalField.js +38 -5
  359. package/esm/util/cellMatches.js +14 -14
  360. package/esm/util/cellsStep.d.ts +3 -5
  361. package/esm/util/cellsStep.js +31 -29
  362. package/esm/util/color/index.d.ts +1 -1
  363. package/esm/util/color/index.js +2 -2
  364. package/esm/util/color-bits/bit.js +1 -1
  365. package/esm/util/color-bits/parse.js +28 -17
  366. package/esm/util/colorBits.d.ts +15 -4
  367. package/esm/util/colorBits.js +38 -15
  368. package/esm/util/colorRamp.d.ts +3 -3
  369. package/esm/util/colorRamp.js +20 -2
  370. package/esm/util/colorScale.d.ts +123 -22
  371. package/esm/util/colorScale.js +157 -28
  372. package/esm/util/colorSchemes.d.ts +7 -3
  373. package/esm/util/colorSchemes.js +8 -2
  374. package/esm/util/createSvgRasterCanvas.d.ts +14 -1
  375. package/esm/util/createSvgRasterCanvas.js +36 -12
  376. package/esm/util/diagonalizeRegions.js +18 -9
  377. package/esm/util/featureTransforms.d.ts +2 -2
  378. package/esm/util/featureTransforms.js +85 -135
  379. package/esm/util/fileHandleStore.js +5 -0
  380. package/esm/util/groupKeys.d.ts +5 -4
  381. package/esm/util/groupKeys.js +15 -9
  382. package/esm/util/index.js +1 -1
  383. package/esm/util/installFetch.d.ts +2 -2
  384. package/esm/util/installPrerequisiteFetch.d.ts +8 -3
  385. package/esm/util/installPrerequisiteFetch.js +9 -7
  386. package/esm/util/io/RemoteFileWithRangeCache.d.ts +1 -1
  387. package/esm/util/io/RemoteFileWithRangeCache.js +1 -1
  388. package/esm/util/isoformRank.d.ts +39 -0
  389. package/esm/util/isoformRank.js +118 -0
  390. package/esm/util/jexl.js +1 -1
  391. package/esm/util/layouts/GranularRectLayout.d.ts +19 -3
  392. package/esm/util/layouts/GranularRectLayout.js +57 -34
  393. package/esm/util/leadingEdgeAutorun.d.ts +9 -1
  394. package/esm/util/leadingEdgeAutorun.js +5 -2
  395. package/esm/util/markEncoding.d.ts +10 -8
  396. package/esm/util/markEncoding.js +50 -12
  397. package/esm/util/markEncodingTypes.d.ts +77 -21
  398. package/esm/util/originCut.d.ts +14 -0
  399. package/esm/util/originCut.js +19 -0
  400. package/esm/util/paintLayer.d.ts +1 -1
  401. package/esm/util/paintLayer.js +4 -3
  402. package/esm/util/pathSeries.d.ts +18 -0
  403. package/esm/util/pathSeries.js +143 -0
  404. package/esm/util/pressOwner.d.ts +20 -0
  405. package/esm/util/pressOwner.js +26 -0
  406. package/esm/util/quantileExtent.d.ts +23 -1
  407. package/esm/util/quantileExtent.js +25 -2
  408. package/esm/util/rowStackGeometry.d.ts +1 -1
  409. package/esm/util/rowStackGeometry.js +1 -1
  410. package/esm/util/sessionActivity.d.ts +36 -0
  411. package/esm/util/sessionActivity.js +88 -0
  412. package/esm/util/stepOutputs.d.ts +165 -0
  413. package/esm/util/stepOutputs.js +201 -0
  414. package/esm/util/stepTables.d.ts +7 -3
  415. package/esm/util/stepTables.js +86 -3
  416. package/esm/util/systemColorScheme.d.ts +4 -0
  417. package/esm/util/systemColorScheme.js +21 -0
  418. package/esm/util/tabix.d.ts +1 -1
  419. package/esm/util/tabix.js +1 -1
  420. package/esm/util/temporaryAssembly.d.ts +2 -2
  421. package/esm/util/temporaryAssembly.js +2 -3
  422. package/esm/util/thresholdScale.d.ts +1 -1
  423. package/esm/util/thresholdScale.js +1 -1
  424. package/esm/util/trackConfigDelta.d.ts +1 -1
  425. package/esm/util/tracks.d.ts +25 -15
  426. package/esm/util/tracks.js +68 -44
  427. package/esm/util/types/index.d.ts +15 -7
  428. package/esm/util/types/index.js +21 -2
  429. package/esm/util/usePanZoom.js +4 -10
  430. package/esm/util/useRowVirtualScroll.d.ts +1 -0
  431. package/esm/util/windowStep.d.ts +6 -0
  432. package/esm/util/windowStep.js +153 -0
  433. package/package.json +27 -16
  434. package/esm/data_adapters/BaseAdapter/featureDensity.d.ts +0 -40
  435. package/esm/data_adapters/BaseAdapter/featureDensity.js +0 -31
  436. package/esm/rpc/methods/CoreGetFeatureDensity.d.ts +0 -11
  437. package/esm/rpc/methods/CoreGetFeatureDensity.js +0 -22
  438. package/esm/rpc/methods/CoreLoadAdapterCode.d.ts +0 -13
  439. package/esm/rpc/methods/CoreLoadAdapterCode.js +0 -16
@@ -1,5 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { createContext, use, useEffect, useMemo, useSyncExternalStore, } from 'react';
3
+ import { observer } from 'mobx-react';
3
4
  import { onColorSchemeChange, prefersDarkColorScheme, } from '../util/systemColorScheme.js';
4
5
  import { defaultStyleTheme } from './styleTheme.js';
5
6
  /**
@@ -25,6 +26,7 @@ const StyleThemeContext = createContext(undefined);
25
26
  * `theme` that sets `spacing` or `typography` reaches `makeStyles` and Material
26
27
  * UI alike.
27
28
  */
29
+ // eslint-disable-next-line no-restricted-syntax -- drawn inside a frozen SVG figure
28
30
  export function StyleThemeProvider({ theme, children, }) {
29
31
  return _jsx(StyleThemeContext, { value: theme, children: children });
30
32
  }
@@ -38,10 +40,10 @@ export function StyleThemeProvider({ theme, children, }) {
38
40
  * write that the worker-side half of the rendering derives from. This one
39
41
  * colors React and nothing else.
40
42
  */
41
- export function PaletteProvider({ palette, children, }) {
43
+ export const PaletteProvider = observer(function PaletteProvider({ palette, children, }) {
42
44
  const theme = useMemo(() => ({ ...defaultStyleTheme, palette }), [palette]);
43
45
  return _jsx(StyleThemeProvider, { theme: theme, children: children });
44
- }
46
+ });
45
47
  export function useStyleTheme() {
46
48
  return use(StyleThemeContext) ?? defaultStyleTheme;
47
49
  }
@@ -59,17 +61,28 @@ function subscribeToColorScheme(onChange) {
59
61
  observer?.disconnect();
60
62
  };
61
63
  }
62
- // The page's declared `color-scheme`, as the browser resolves it for form
63
- // controls: a page that declares only one of light or dark gets that one, and
64
- // one that declares both, or neither, gets the OS preference.
65
- function readColorScheme() {
66
- const declared = getComputedStyle(document.documentElement)
67
- .getPropertyValue('color-scheme')
64
+ function schemesNamedIn(value) {
65
+ return value
68
66
  .split(/\s+/)
69
67
  .filter((word) => ['light', 'dark'].includes(word));
70
- return declared.length === 1
71
- ? declared[0]
72
- : prefersDarkColorScheme()
68
+ }
69
+ // The page's `color-scheme`, as the browser resolves it for form controls and
70
+ // the canvas: a page that names one of light or dark gets that one, a page that
71
+ // names both gets the OS preference, and a page that names neither is light
72
+ // whatever the OS says. The `<meta name="color-scheme">` tag stands in where no
73
+ // stylesheet sets the property, since the computed value does not reflect it.
74
+ function readColorScheme() {
75
+ const computed = schemesNamedIn(getComputedStyle(document.documentElement).getPropertyValue('color-scheme'));
76
+ const declared = new Set(computed.length > 0
77
+ ? computed
78
+ : schemesNamedIn(document
79
+ .querySelector('meta[name="color-scheme"]')
80
+ ?.getAttribute('content') ?? ''));
81
+ return declared.size === 2
82
+ ? prefersDarkColorScheme()
83
+ ? 'dark'
84
+ : 'light'
85
+ : declared.has('dark')
73
86
  ? 'dark'
74
87
  : 'light';
75
88
  }
@@ -86,9 +99,11 @@ function useResolvedMode(mode) {
86
99
  * follow its dark mode mounts {@link SessionPaletteProvider}, which is this
87
100
  * hook and the provider in one.
88
101
  *
89
- * Pass no mode and JBrowse follows the page: its declared CSS `color-scheme`
90
- * when that names one of light or dark, the OS preference otherwise, tracking
91
- * both. A host whose mode lives somewhere a stylesheet cannot see passes it.
102
+ * Pass no mode and JBrowse follows the page's CSS `color-scheme`: light or dark
103
+ * where the page names one, the OS preference where it names both, and light
104
+ * where it names neither, so a page with no dark styling never gets a dark
105
+ * JBrowse from a dark OS. A host whose mode lives somewhere a stylesheet cannot
106
+ * see passes it.
92
107
  *
93
108
  * **Both halves are load-bearing, which is why the pairing is published as a
94
109
  * component.** The palette is what *React* draws with; the config `theme` slot
@@ -122,8 +137,8 @@ export function useSessionPalette(session, mode) {
122
137
  *
123
138
  * `mode` is optional. Left out, JBrowse follows the page's declared
124
139
  * `color-scheme` — so a host whose dark-mode toggle sets it, as most do, mounts
125
- * this with a session and nothing else — and the OS preference where the page
126
- * declares none.
140
+ * this with a session and nothing else. A page that declares `light dark`
141
+ * follows the OS, and a page that declares nothing stays light.
127
142
  *
128
143
  * A component rather than a documented pair of calls because the pair has a
129
144
  * half that can be left out with nothing to show for it. `PaletteProvider` is
@@ -136,7 +151,7 @@ export function useSessionPalette(session, mode) {
136
151
  * The session is the only thing that resolves a palette here, so a host
137
152
  * supplying colors of its own mounts `PaletteProvider` directly instead.
138
153
  */
139
- export function SessionPaletteProvider({ session, mode, children, }) {
154
+ export const SessionPaletteProvider = observer(function SessionPaletteProvider({ session, mode, children, }) {
140
155
  const palette = useSessionPalette(session, mode);
141
156
  return _jsx(PaletteProvider, { palette: palette, children: children });
142
- }
157
+ });
@@ -8,10 +8,11 @@ import type { JBrowsePlugin } from '../util/types/index.ts';
8
8
  * version-pinned, integrity-carrying, and refused when no published version
9
9
  * supports this JBrowse.
10
10
  */
11
- export default function PluginStoreCard({ plugin, resolved, installed, disabled, onInstall, }: {
11
+ declare const PluginStoreCard: ({ plugin, resolved, installed, disabled, onInstall, }: {
12
12
  plugin: JBrowsePlugin;
13
13
  resolved: ResolvedPlugin;
14
14
  installed: boolean;
15
15
  disabled?: boolean;
16
16
  onInstall: (definition: PluginDefinition) => void;
17
- }): import("react").JSX.Element;
17
+ }) => import("react").JSX.Element;
18
+ export default PluginStoreCard;
@@ -3,6 +3,7 @@ import AddIcon from '@mui/icons-material/Add';
3
3
  import CheckIcon from '@mui/icons-material/Check';
4
4
  import PersonIcon from '@mui/icons-material/Person';
5
5
  import { Button, Card, CardActions, CardContent, Chip, Typography, } from '@mui/material';
6
+ import { observer } from 'mobx-react';
6
7
  import { makeStyles } from '../util/tss-react/index.js';
7
8
  import ExternalLink from './ExternalLink.js';
8
9
  const useStyles = makeStyles()({
@@ -33,7 +34,7 @@ const useStyles = makeStyles()({
33
34
  * version-pinned, integrity-carrying, and refused when no published version
34
35
  * supports this JBrowse.
35
36
  */
36
- export default function PluginStoreCard({ plugin, resolved, installed, disabled, onInstall, }) {
37
+ const PluginStoreCard = observer(function PluginStoreCard({ plugin, resolved, installed, disabled, onInstall, }) {
37
38
  const { classes } = useStyles();
38
39
  const { definition, compatible, supportedRanges, pluginVersion } = resolved;
39
40
  const installable = compatible && definition !== undefined;
@@ -42,4 +43,5 @@ export default function PluginStoreCard({ plugin, resolved, installed, disabled,
42
43
  onInstall(definition);
43
44
  }
44
45
  }, children: installed ? 'Installed' : 'Install' }) })] }));
45
- }
46
+ });
47
+ export default PluginStoreCard;
@@ -1,6 +1,7 @@
1
- export default function PopoverPicker({ color, onChange, presetAlpha, unset, }: {
1
+ declare const PopoverPicker: ({ color, onChange, presetAlpha, unset, }: {
2
2
  color: string;
3
3
  onChange: (color: string) => void;
4
4
  presetAlpha?: number;
5
5
  unset?: boolean;
6
- }): import("react").JSX.Element;
6
+ }) => import("react").JSX.Element;
7
+ export default PopoverPicker;
@@ -1,5 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useState } from 'react';
3
+ import { observer } from 'mobx-react';
3
4
  import { makeStyles } from '../util/tss-react/index.js';
4
5
  import { ColorPopover } from './ColorPicker.js';
5
6
  import { swatchStyle } from './colorSwatchStyle.js';
@@ -13,7 +14,7 @@ const useStyles = makeStyles()({
13
14
  boxSizing: 'border-box',
14
15
  },
15
16
  });
16
- export default function PopoverPicker({ color, onChange, presetAlpha, unset, }) {
17
+ const PopoverPicker = observer(function PopoverPicker({ color, onChange, presetAlpha, unset, }) {
17
18
  const [anchorEl, setAnchorEl] = useState(null);
18
19
  const { classes, cx } = useStyles();
19
20
  const isAuto = color === 'auto';
@@ -22,4 +23,5 @@ export default function PopoverPicker({ color, onChange, presetAlpha, unset, })
22
23
  } }), _jsx(ColorPopover, { anchorEl: anchorEl, onClose: () => {
23
24
  setAnchorEl(null);
24
25
  }, color: isAuto ? 'blue' : color, onChange: onChange, presetAlpha: presetAlpha })] }));
25
- }
26
+ });
27
+ export default PopoverPicker;
@@ -1,4 +1,4 @@
1
- declare function PrerenderedCanvas(props: {
1
+ declare const PrerenderedCanvas: (props: {
2
2
  width: number;
3
3
  height: number;
4
4
  highResolutionScaling?: number;
@@ -6,5 +6,5 @@ declare function PrerenderedCanvas(props: {
6
6
  imageData?: unknown;
7
7
  showSoftClip?: boolean;
8
8
  blockKey?: string;
9
- }): import("react").JSX.Element;
9
+ }) => import("react").JSX.Element;
10
10
  export default PrerenderedCanvas;
@@ -1,7 +1,8 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useEffect, useRef, useState } from 'react';
3
+ import { observer } from 'mobx-react';
3
4
  import { drawImageOntoCanvasContext } from '../util/offscreenCanvasPonyfill.js';
4
- function PrerenderedCanvas(props) {
5
+ const PrerenderedCanvas = observer(function PrerenderedCanvas(props) {
5
6
  const { width, height, highResolutionScaling = 1, style = {}, imageData, blockKey, showSoftClip, } = props;
6
7
  const [done, setDone] = useState(false);
7
8
  const featureCanvasRef = useRef(null);
@@ -30,5 +31,5 @@ function PrerenderedCanvas(props) {
30
31
  ]
31
32
  .filter(f => !!f)
32
33
  .join('_'), ref: featureCanvasRef, width: width * highResolutionScaling, height: height * highResolutionScaling, style: { width, height, ...style } }));
33
- }
34
+ });
34
35
  export default PrerenderedCanvas;
@@ -1,3 +1,4 @@
1
- export default function RedErrorMessageBox({ children, }: {
1
+ declare const RedErrorMessageBox: ({ children, }: {
2
2
  children: React.ReactNode;
3
- }): import("react").JSX.Element;
3
+ }) => import("react").JSX.Element;
4
+ export default RedErrorMessageBox;
@@ -1,4 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { observer } from 'mobx-react';
2
3
  import { makeStyles } from '../util/tss-react/index.js';
3
4
  const useStyles = makeStyles()(theme => ({
4
5
  bg: {
@@ -16,7 +17,8 @@ const useStyles = makeStyles()(theme => ({
16
17
  // that still showed either failed loudly — but an MST type error surfacing here
17
18
  // over a view was captured and committed as if the figure were fine. Keying off
18
19
  // `#f88` instead would break on the dark theme and on any restyle.
19
- export default function RedErrorMessageBox({ children, }) {
20
+ const RedErrorMessageBox = observer(function RedErrorMessageBox({ children, }) {
20
21
  const { classes } = useStyles();
21
22
  return (_jsx("div", { className: classes.bg, "data-testid": "error-message-box", children: children }));
22
- }
23
+ });
24
+ export default RedErrorMessageBox;
@@ -1,5 +1,6 @@
1
1
  import type { MenuItem } from '../Menu.tsx';
2
- export default function EndAdornment({ showHelp, menuItems, }: {
2
+ declare const EndAdornment: ({ showHelp, menuItems, }: {
3
3
  showHelp?: boolean;
4
4
  menuItems?: MenuItem[];
5
- }): import("react").JSX.Element;
5
+ }) => import("react").JSX.Element;
6
+ export default EndAdornment;
@@ -4,12 +4,13 @@ import Help from '@mui/icons-material/Help';
4
4
  import MoreVertIcon from '@mui/icons-material/MoreVert';
5
5
  import SearchIcon from '@mui/icons-material/Search';
6
6
  import { InputAdornment } from '@mui/material';
7
+ import { observer } from 'mobx-react';
7
8
  import CascadingMenuButton from '../CascadingMenuButton.js';
8
9
  const HelpDialog = lazy(() => import('./HelpDialog.js'));
9
10
  // The search-box overflow (⋮) menu: consumer-supplied rows (e.g. recent
10
11
  // locations) sit above the built-in help entry. Rendered only when there is
11
12
  // something to show, so a bare box keeps just its search icon.
12
- export default function EndAdornment({ showHelp, menuItems = [], }) {
13
+ const EndAdornment = observer(function EndAdornment({ showHelp, menuItems = [], }) {
13
14
  const [helpDialogOpen, setHelpDialogOpen] = useState(false);
14
15
  const items = [
15
16
  ...menuItems,
@@ -28,4 +29,5 @@ export default function EndAdornment({ showHelp, menuItems = [], }) {
28
29
  return (_jsxs(InputAdornment, { position: "end", style: { marginRight: 7 }, children: [_jsx(SearchIcon, { fontSize: "small" }), items.length ? (_jsx(CascadingMenuButton, { menuItems: items, size: "small", stopPropagation: true, tooltip: "Search box options", children: _jsx(MoreVertIcon, { fontSize: "small" }) })) : null, helpDialogOpen ? (_jsx(Suspense, { fallback: null, children: _jsx(HelpDialog, { handleClose: () => {
29
30
  setHelpDialogOpen(false);
30
31
  } }) })) : null] }));
31
- }
32
+ });
33
+ export default EndAdornment;
@@ -1,3 +1,4 @@
1
- export default function HelpDialog({ handleClose, }: {
1
+ declare const HelpDialog: ({ handleClose, }: {
2
2
  handleClose: () => void;
3
- }): import("react").JSX.Element;
3
+ }) => import("react").JSX.Element;
4
+ export default HelpDialog;
@@ -1,7 +1,9 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { observer } from 'mobx-react';
2
3
  import InfoDialog from '../InfoDialog.js';
3
- export default function HelpDialog({ handleClose, }) {
4
+ const HelpDialog = observer(function HelpDialog({ handleClose, }) {
4
5
  return (_jsxs(InfoDialog, { open: true, maxWidth: "xl", onClose: () => {
5
6
  handleClose();
6
7
  }, title: "Using the search box", children: [_jsx("h3", { children: "Searching" }), _jsxs("ul", { children: [_jsx("li", { children: "Jump to a feature or reference sequence by typing its name in the location box and pressing Enter." }), _jsxs("li", { children: ["Jump to a specific region by typing the region into the location box as: ", _jsx("code", { children: "ref:start..end" }), " or ", _jsx("code", { children: "ref:start-end" }), ". Commas are allowed in the start and end coordinates. A space-separated list of locstrings can be used to open up multiple chromosomes at a time"] }), _jsxs("li", { children: ["Find a group of reference sequences by typing a pattern containing", ' ', _jsx("code", { children: "*" }), ", which stands for any run of characters. The matches appear in the dropdown, with a row at the top that opens all of them at once. Useful on a fragmented or haplotype-resolved assembly, where the useful selection is a pattern rather than a list you keep by hand."] })] }), _jsx("h3", { children: "Example Searches" }), _jsxs("ul", { children: [_jsxs("li", { children: [_jsx("code", { children: "BRCA" }), " - searches for the feature named BRCA"] }), _jsxs("li", { children: [_jsx("code", { children: "chr4" }), " - jumps to chromosome 4"] }), _jsxs("li", { children: [_jsx("code", { children: "chr4:79,500,000..80,000,000" }), " - jumps the region on chromosome 4 between 79.5Mb and 80Mb."] }), _jsxs("li", { children: [_jsx("code", { children: "chr1:1-100 chr2:1-100" }), " - create a split view of chr1:1-100 and chr2:1-100"] }), _jsxs("li", { children: [_jsx("code", { children: "chr1 chr2 chr3" }), " - open up multiple chromosomes at once"] }), _jsxs("li", { children: [_jsx("code", { children: "chr1:1-100[rev] chr2:1-100" }), " - open up the first region in the horizontally flipped orientation"] }), _jsxs("li", { children: [_jsx("code", { children: "chr1 100 200" }), " - use whitespace separated refname, start, end"] }), _jsxs("li", { children: [_jsx("code", { children: "*_hap1" }), " - list every reference sequence whose name ends in _hap1, and offer to open all of them"] })] })] }));
7
- }
8
+ });
9
+ export default HelpDialog;
@@ -13,7 +13,8 @@
13
13
  * Pair it with `isSessionWithViewReplacement` — a session that cannot replace a
14
14
  * view should not be offered the choice.
15
15
  */
16
- export default function ReplaceCurrentViewButton({ disabled, onClick, }: {
16
+ declare const ReplaceCurrentViewButton: ({ disabled, onClick, }: {
17
17
  disabled?: boolean;
18
18
  onClick: () => void;
19
- }): import("react").JSX.Element;
19
+ }) => import("react").JSX.Element;
20
+ export default ReplaceCurrentViewButton;
@@ -1,5 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { Button } from '@mui/material';
3
+ import { observer } from 'mobx-react';
3
4
  /**
4
5
  * The second way out of a launch dialog: put the view it builds in the slot the
5
6
  * launching view occupies instead of appending it below. Offered by every launch
@@ -15,8 +16,9 @@ import { Button } from '@mui/material';
15
16
  * Pair it with `isSessionWithViewReplacement` — a session that cannot replace a
16
17
  * view should not be offered the choice.
17
18
  */
18
- export default function ReplaceCurrentViewButton({ disabled, onClick, }) {
19
+ const ReplaceCurrentViewButton = observer(function ReplaceCurrentViewButton({ disabled, onClick, }) {
19
20
  return (_jsx(Button, { type: "button", variant: "contained", color: "primary", disabled: disabled, onClick: () => {
20
21
  onClick();
21
22
  }, children: "Replace current view" }));
22
- }
23
+ });
24
+ export default ReplaceCurrentViewButton;
@@ -1,5 +1,5 @@
1
1
  import type React from 'react';
2
- declare function ResizeHandle({ onDrag, onDragStart, onDragEnd, vertical, bar, grip, gain, className: originalClassName, onPointerDown, ...props }: {
2
+ declare const ResizeHandle: ({ onDrag, onDragStart, onDragEnd, vertical, bar, grip, gain, className: originalClassName, onPointerDown, ...props }: {
3
3
  onDrag: (distance: number) => void;
4
4
  onDragStart?: () => void;
5
5
  onDragEnd?: () => void;
@@ -13,5 +13,5 @@ declare function ResizeHandle({ onDrag, onDragStart, onDragEnd, vertical, bar, g
13
13
  * and this handle sits below more than one of them.
14
14
  */
15
15
  gain?: number;
16
- } & Omit<React.ComponentPropsWithoutRef<'div'>, 'onDrag' | 'onDragStart' | 'onDragEnd'>): React.JSX.Element;
16
+ } & Omit<React.ComponentPropsWithoutRef<'div'>, 'onDrag' | 'onDragStart' | 'onDragEnd'>) => React.JSX.Element;
17
17
  export default ResizeHandle;
@@ -1,4 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { observer } from 'mobx-react';
2
3
  import { cx, makeStyles } from '../util/tss-react/index.js';
3
4
  import { useResizeDrag } from '../util/useResizeDrag.js';
4
5
  const layer = (color) => `linear-gradient(${color}, ${color})`;
@@ -57,7 +58,7 @@ const useStyles = makeStyles()(theme => ({
57
58
  borderLeft: `1px solid ${theme.palette.text.disabled}`,
58
59
  },
59
60
  }));
60
- function ResizeHandle({ onDrag, onDragStart, onDragEnd, vertical = false, bar = false, grip = false, gain, className: originalClassName, onPointerDown, ...props }) {
61
+ const ResizeHandle = observer(function ResizeHandle({ onDrag, onDragStart, onDragEnd, vertical = false, bar = false, grip = false, gain, className: originalClassName, onPointerDown, ...props }) {
61
62
  const { classes } = useStyles();
62
63
  // The gesture, including the per-frame coalescing, the delta measurement and
63
64
  // the `data-gesture-owner` marker that keeps ancestor drags (the LGV
@@ -83,5 +84,5 @@ function ResizeHandle({ onDrag, onDragStart, onDragEnd, vertical = false, bar =
83
84
  handleProps.onPointerDown(event);
84
85
  onPointerDown?.(event);
85
86
  } }));
86
- }
87
+ });
87
88
  export default ResizeHandle;
@@ -3,7 +3,8 @@ declare global {
3
3
  setHTML?(html: string): void;
4
4
  }
5
5
  }
6
- export default function SanitizedHTML({ html: pre, className, }: {
6
+ declare const SanitizedHTML: ({ html: pre, className, }: {
7
7
  className?: string;
8
8
  html: unknown;
9
- }): import("react").JSX.Element;
9
+ }) => import("react").JSX.Element;
10
+ export default SanitizedHTML;
@@ -1,5 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { Suspense, lazy, useLayoutEffect, useRef } from 'react';
3
+ import { observer } from 'mobx-react';
3
4
  import { escapeHTML, looksLikeHTML } from '../util/htmlText.js';
4
5
  import { linkify } from '../util/index.js';
5
6
  import { rewriteExternalAnchors } from './rewriteExternalAnchors.js';
@@ -7,7 +8,7 @@ const DOMPurifySanitizedHTML = lazy(() => import('./DOMPurifySanitizedHTML.js'))
7
8
  function needsSanitization(str) {
8
9
  return str.includes('<') || str.includes('://');
9
10
  }
10
- function SetHTML({ value, className }) {
11
+ const SetHTML = observer(function SetHTML({ value, className, }) {
11
12
  const spanRef = useRef(null);
12
13
  useLayoutEffect(() => {
13
14
  const el = spanRef.current;
@@ -22,8 +23,8 @@ function SetHTML({ value, className }) {
22
23
  }
23
24
  }, [value]);
24
25
  return _jsx("span", { ref: spanRef, className: className });
25
- }
26
- export default function SanitizedHTML({ html: pre, className, }) {
26
+ });
27
+ const SanitizedHTML = observer(function SanitizedHTML({ html: pre, className, }) {
27
28
  const str = `${pre}`;
28
29
  if (!needsSanitization(str)) {
29
30
  return _jsx("span", { className: className, children: str });
@@ -34,4 +35,5 @@ export default function SanitizedHTML({ html: pre, className, }) {
34
35
  return _jsx(SetHTML, { value: value, className: className });
35
36
  }
36
37
  return (_jsx(Suspense, { fallback: _jsx("span", { className: className }), children: _jsx(DOMPurifySanitizedHTML, { value: value, className: className }) }));
37
- }
38
+ });
39
+ export default SanitizedHTML;
@@ -4,10 +4,11 @@ import type { VirtualScrollModel } from '../util/useVirtualScrollWheel.ts';
4
4
  * shadow saying content is hidden, and the scrollbar to reach it. Renders
5
5
  * nothing when the content fits.
6
6
  */
7
- export default function ScrollChrome({ model, controlsId, top, }: {
7
+ declare const ScrollChrome: ({ model, controlsId, top, }: {
8
8
  model: VirtualScrollModel;
9
9
  /** `id` of the scrolled viewport element, for `aria-controls`. */
10
10
  controlsId: string;
11
11
  /** Viewport offset from the top, for a display with a sticky band above it. */
12
12
  top?: number;
13
- }): import("react").JSX.Element;
13
+ }) => import("react").JSX.Element;
14
+ export default ScrollChrome;
@@ -1,4 +1,5 @@
1
1
  import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { observer } from 'mobx-react';
2
3
  import ScrollEdgeShadow from './ScrollEdgeShadow.js';
3
4
  import VerticalScrollbar from './VerticalScrollbar.js';
4
5
  /**
@@ -6,6 +7,7 @@ import VerticalScrollbar from './VerticalScrollbar.js';
6
7
  * shadow saying content is hidden, and the scrollbar to reach it. Renders
7
8
  * nothing when the content fits.
8
9
  */
9
- export default function ScrollChrome({ model, controlsId, top = 0, }) {
10
+ const ScrollChrome = observer(function ScrollChrome({ model, controlsId, top = 0, }) {
10
11
  return (_jsxs(_Fragment, { children: [_jsx(ScrollEdgeShadow, { model: model, top: top }), _jsx(VerticalScrollbar, { model: model, controlsId: controlsId, top: top })] }));
11
- }
12
+ });
13
+ export default ScrollChrome;
@@ -14,9 +14,9 @@ import type { VirtualScrollModel } from '../util/useVirtualScrollWheel.ts';
14
14
  *
15
15
  * - **It costs nothing when nothing is hidden.** No content past an edge, no
16
16
  * fade at that edge; a track that fits draws neither. So it is a readout of
17
- * state, not a decoration — which a recoloured bottom border could not be
17
+ * state, not a decoration — which a recolored bottom border could not be
18
18
  * (and which would also need `showTrackOutlines`, an option the user can turn
19
- * off, to have a border to recolour).
19
+ * off, to have a border to recolor).
20
20
  * - **It says which way.** Scrolled to the bottom, the bottom fade goes and the
21
21
  * top one appears, so "am I at the end" is answerable without scrolling.
22
22
  *
@@ -44,9 +44,9 @@ const useStyles = makeStyles()(theme => {
44
44
  *
45
45
  * - **It costs nothing when nothing is hidden.** No content past an edge, no
46
46
  * fade at that edge; a track that fits draws neither. So it is a readout of
47
- * state, not a decoration — which a recoloured bottom border could not be
47
+ * state, not a decoration — which a recolored bottom border could not be
48
48
  * (and which would also need `showTrackOutlines`, an option the user can turn
49
- * off, to have a border to recolour).
49
+ * off, to have a border to recolor).
50
50
  * - **It says which way.** Scrolled to the bottom, the bottom fade goes and the
51
51
  * top one appears, so "am I at the end" is answerable without scrolling.
52
52
  *
@@ -1,3 +1,4 @@
1
- export default function SessionJsonPanel({ session }: {
1
+ declare const SessionJsonPanel: ({ session, }: {
2
2
  session: unknown;
3
- }): import("react").JSX.Element;
3
+ }) => import("react").JSX.Element;
4
+ export default SessionJsonPanel;
@@ -1,14 +1,16 @@
1
1
  import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useState } from 'react';
3
+ import { observer } from 'mobx-react';
3
4
  import LabeledCheckbox from './LabeledCheckbox.js';
4
5
  import MonospaceTextField from './MonospaceTextField.js';
5
6
  // The session a share or export dialog is about to hand over, as indented JSON
6
7
  // behind a checkbox, so the sender can read what they are sending whichever
7
8
  // link carries it. Shared by jbrowse-web's ShareDialog and jbrowse-desktop's
8
9
  // ExportToWebDialog.
9
- export default function SessionJsonPanel({ session }) {
10
+ const SessionJsonPanel = observer(function SessionJsonPanel({ session, }) {
10
11
  const [show, setShow] = useState(false);
11
12
  return (_jsxs(_Fragment, { children: [_jsx(LabeledCheckbox, { checked: show, onChange: val => {
12
13
  setShow(val);
13
14
  }, label: "Show readable JSON" }), show ? (_jsx(MonospaceTextField, { label: "Session JSON", value: JSON.stringify(session, null, 2), readOnly: true, fullWidth: true, maxRows: 20 })) : null] }));
14
- }
15
+ });
16
+ export default SessionJsonPanel;
@@ -1,4 +1,5 @@
1
- export default function ShareLinkField({ value, label, }: {
1
+ declare const ShareLinkField: ({ value, label, }: {
2
2
  value: string;
3
3
  label?: string;
4
- }): import("react").JSX.Element;
4
+ }) => import("react").JSX.Element;
5
+ export default ShareLinkField;
@@ -1,9 +1,10 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { TextField } from '@mui/material';
3
+ import { observer } from 'mobx-react';
3
4
  // Read-only single-line field for a shareable URL; clicking selects the whole
4
5
  // value so it's easy to copy. Shared by jbrowse-web's ShareDialog and
5
6
  // jbrowse-desktop's ExportToWebDialog.
6
- export default function ShareLinkField({ value, label = 'URL', }) {
7
+ const ShareLinkField = observer(function ShareLinkField({ value, label = 'URL', }) {
7
8
  return (_jsx(TextField, { label: label, value: value, variant: "filled", fullWidth: true, onClick: event => {
8
9
  const target = event.target;
9
10
  target.select();
@@ -12,4 +13,5 @@ export default function ShareLinkField({ value, label = 'URL', }) {
12
13
  readOnly: true,
13
14
  },
14
15
  } }));
15
- }
16
+ });
17
+ export default ShareLinkField;
@@ -4,5 +4,5 @@ type Props = Omit<SliderProps, 'value' | 'defaultValue' | 'onChange' | 'onChange
4
4
  onChange?: (value: number) => void;
5
5
  onChangeCommitted?: (value: number) => void;
6
6
  };
7
- export default function SingleSlider(props: Props): import("react").JSX.Element;
8
- export {};
7
+ declare const SingleSlider: (props: Props) => import("react").JSX.Element;
8
+ export default SingleSlider;
@@ -1,11 +1,13 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { Slider } from '@mui/material';
3
+ import { observer } from 'mobx-react';
3
4
  import SliderTooltip from './SliderTooltip.js';
4
- export default function SingleSlider(props) {
5
+ const SingleSlider = observer(function SingleSlider(props) {
5
6
  const { onChange, onChangeCommitted, slots, ...rest } = props;
6
7
  return (_jsx(Slider, { ...rest, slots: { valueLabel: SliderTooltip, ...slots }, onChange: (_, value) => {
7
8
  onChange?.(typeof value === 'number' ? value : value[0]);
8
9
  }, onChangeCommitted: (_, value) => {
9
10
  onChangeCommitted?.(typeof value === 'number' ? value : value[0]);
10
11
  } }));
11
- }
12
+ });
13
+ export default SingleSlider;
@@ -1,2 +1,3 @@
1
1
  import type { SliderValueLabelProps } from '@mui/material';
2
- export default function SliderTooltip(props: SliderValueLabelProps): import("react").JSX.Element;
2
+ declare const SliderTooltip: (props: SliderValueLabelProps) => import("react").JSX.Element;
3
+ export default SliderTooltip;
@@ -1,5 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { Tooltip } from '@mui/material';
3
+ import { observer } from 'mobx-react';
3
4
  // Arrow tooltip above the thumb, used as SingleSlider's default value label so
4
5
  // every slider (inline track-menu rows, the settings menus' size submenus, the
5
6
  // LGV zoom control) shows one consistent value affordance instead of MUI's default
@@ -11,7 +12,8 @@ import { Tooltip } from '@mui/material';
11
12
  // Popper. On the LGV zoom slider, whose value tracks live `bpPerPx`, that was a
12
13
  // Tooltip and a Popper re-rendering on every animation frame of a wheel zoom to
13
14
  // show nothing.
14
- export default function SliderTooltip(props) {
15
+ const SliderTooltip = observer(function SliderTooltip(props) {
15
16
  const { children, open, value } = props;
16
17
  return open ? (_jsx(Tooltip, { open: true, enterTouchDelay: 0, placement: "top", title: value, arrow: true, children: children })) : (children);
17
- }
18
+ });
19
+ export default SliderTooltip;
@@ -1,5 +1,6 @@
1
1
  import type { SnackbarMessage } from './SnackbarModel.tsx';
2
- export default function SnackbarContents({ onClose, contents, }: {
2
+ declare const SnackbarContents: ({ onClose, contents, }: {
3
3
  onClose: (_event: unknown, reason?: string) => void;
4
4
  contents: SnackbarMessage;
5
- }): import("react").JSX.Element;
5
+ }) => import("react").JSX.Element;
6
+ export default SnackbarContents;
@@ -5,6 +5,7 @@ import CloseIcon from '@mui/icons-material/Close';
5
5
  // See https://github.com/GMOD/jbrowse-components/issues/5325
6
6
  import Report from '@mui/icons-material/Report';
7
7
  import { Alert, Button, IconButton, Snackbar as MUISnackbar, } from '@mui/material';
8
+ import { observer } from 'mobx-react';
8
9
  import { makeStyles } from '../util/tss-react/index.js';
9
10
  const useStyles = makeStyles()({
10
11
  // preserve newlines in multi-line errors (e.g. MST validation dumps) while
@@ -17,7 +18,7 @@ const useStyles = makeStyles()({
17
18
  overflowY: 'auto',
18
19
  },
19
20
  });
20
- export default function SnackbarContents({ onClose, contents, }) {
21
+ const SnackbarContents = observer(function SnackbarContents({ onClose, contents, }) {
21
22
  const { classes } = useStyles();
22
23
  const { actions } = contents;
23
24
  return (_jsx(MUISnackbar, { open: true, onClose: onClose, anchorOrigin: { vertical: 'bottom', horizontal: 'center' }, children: _jsx(Alert, { onClose: onClose, action: actions?.length ? (_jsxs(_Fragment, { children: [actions.map((action, idx) => (_jsx(Button
@@ -26,4 +27,5 @@ export default function SnackbarContents({ onClose, contents, }) {
26
27
  action.onClick();
27
28
  onClose(e);
28
29
  }, children: action.name === 'report' ? _jsx(Report, {}) : action.name }, idx))), _jsx(IconButton, { color: "inherit", onClick: onClose, children: _jsx(CloseIcon, {}) })] })) : null, severity: contents.level || 'warning', "data-testid": `snackbar-${contents.level || 'warning'}`, children: _jsx("div", { className: classes.message, children: contents.message }) }) }));
29
- }
30
+ });
31
+ export default SnackbarContents;
@@ -11,6 +11,8 @@ export interface ErrorDialogState {
11
11
  /**
12
12
  * #stateModel SnackbarModel
13
13
  * #category session
14
+ * Adds notifications to a session: the snackbar messages on screen, and the
15
+ * error shown in the stack-trace dialog.
14
16
  */
15
17
  export default function SnackbarModel(): import("@jbrowse/mobx-state-tree").IModelType<{}, {
16
18
  /**
@@ -3,6 +3,8 @@ import { observable } from 'mobx';
3
3
  /**
4
4
  * #stateModel SnackbarModel
5
5
  * #category session
6
+ * Adds notifications to a session: the snackbar messages on screen, and the
7
+ * error shown in the stack-trace dialog.
6
8
  */
7
9
  export default function SnackbarModel() {
8
10
  return types