@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,6 +1,7 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useEffect, useState } from 'react';
3
3
  import { autoUpdate, flip, offset, shift, useClientPoint, useFloating, useInteractions, } from '@floating-ui/react';
4
+ import { observer } from 'mobx-react';
4
5
  import { createPortal } from 'react-dom';
5
6
  import { useStyleTheme } from './PaletteContext.js';
6
7
  import { alpha, grey } from './palette.js';
@@ -76,7 +77,7 @@ if (typeof window !== 'undefined') {
76
77
  // from a point the pointer happens to be at. 15px off a button reads as a
77
78
  // tooltip belonging to nothing in particular.
78
79
  const ANCHOR_GAP_PX = 6;
79
- export default function BaseTooltip({ clientPoint: clientPointCoords, anchor, id, children, placement = anchor ? 'top' : 'right', }) {
80
+ const BaseTooltip = observer(function BaseTooltip({ clientPoint: clientPointCoords, anchor, id, children, placement = anchor ? 'top' : 'right', }) {
80
81
  // The style theme is read for two things and neither is a Material import:
81
82
  // the colors below, and the portal container a shadow-DOM embed configures
82
83
  // through `MuiPopper.defaultProps.container` — the same slot every other
@@ -156,4 +157,5 @@ export default function BaseTooltip({ clientPoint: clientPointCoords, anchor, id
156
157
  ? 'hidden'
157
158
  : undefined,
158
159
  }, ...getFloatingProps(), children: children }), target);
159
- }
160
+ });
161
+ export default BaseTooltip;
@@ -1,5 +1,5 @@
1
1
  import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { createContext, memo, use, useEffect, useMemo, useState } from 'react';
2
+ import { createContext, use, useEffect, useMemo, useState } from 'react';
3
3
  import { Divider, ListItemIcon, ListItemText, ListSubheader, Menu, MenuItem, Tooltip, } from '@mui/material';
4
4
  import { observer } from 'mobx-react';
5
5
  import { makeStyles } from '../util/tss-react/index.js';
@@ -8,6 +8,7 @@ import { MenuItemTrailing } from './MenuItemTrailing.js';
8
8
  import { resolveSubMenu, staysOpenOnClick } from './MenuTypes.js';
9
9
  import { hasMenuItemAdornment } from './menuItemAdornment.js';
10
10
  import { isAimedAtPanel } from './submenuAim.js';
11
+ import { usePlacedMenuFocus } from './usePlacedMenuFocus.js';
11
12
  // Compact section headers so tall menus (e.g. a display's flat "Show..."
12
13
  // settings list with several subHeader-separated radio groups) stay short.
13
14
  // Row heights are left at the MUI default.
@@ -266,9 +267,9 @@ function makeTestId(kind, label) {
266
267
  }
267
268
  // Leading icon slot shared by submenu rows and clickable rows; renders nothing
268
269
  // when the item has no icon (the row insets instead to stay column-aligned).
269
- function MenuItemLeadingIcon({ Icon, }) {
270
+ const MenuItemLeadingIcon = observer(function MenuItemLeadingIcon({ Icon, }) {
270
271
  return Icon ? (_jsx(ListItemIcon, { children: _jsx(Icon, {}) })) : null;
271
- }
272
+ });
272
273
  // Which decoration columns the menu needs, computed menu-wide (true if ANY row
273
274
  // needs it) so every row reserves matching slots and the decorations stack into
274
275
  // aligned columns down the menu. Per list, so a submenu's own rows answer it for
@@ -322,7 +323,7 @@ function getMenuColumnFlags(menuItems) {
322
323
  // Escape is the exception, and has to be: MUI's Modal reads it off the same
323
324
  // React tree, so a row that swallowed every key left the menu with no way out
324
325
  // for anyone whose focus was inside the slider.
325
- function CustomMenuRow({ item, onHover, }) {
326
+ const CustomMenuRow = observer(function CustomMenuRow({ item, onHover, }) {
326
327
  const { onCloseRoot } = useCascadingMenu();
327
328
  return (_jsx("li", { style: { padding: '4px 16px' }, onMouseEnter: onHover, onMouseDown: e => {
328
329
  e.stopPropagation();
@@ -331,15 +332,15 @@ function CustomMenuRow({ item, onHover, }) {
331
332
  e.stopPropagation();
332
333
  }
333
334
  }, children: item.render(onCloseRoot) }));
334
- }
335
+ });
335
336
  // A disabled MenuItem has pointer-events:none, so a Tooltip placed directly on
336
337
  // it never fires; the span wrapper (per MUI guidance) restores hover. Disabled
337
338
  // rows aren't keyboard-focusable, so the extra wrapper doesn't affect menu
338
339
  // navigation. Renders children untouched unless the item is disabled and has
339
340
  // disabledHelpText.
340
- function DisabledTooltip({ item, children, }) {
341
+ const DisabledTooltip = observer(function DisabledTooltip({ item, children, }) {
341
342
  return item.disabled && item.disabledHelpText ? (_jsx(Tooltip, { title: item.disabledHelpText, placement: "left", children: _jsx("span", { children: children }) })) : (children);
342
- }
343
+ });
343
344
  // One submenu row: label (with optional leading icon), the same trailing
344
345
  // decorations a clickable row draws, and the panel it opens.
345
346
  //
@@ -349,7 +350,7 @@ function DisabledTooltip({ item, children, }) {
349
350
  // toggle), whose content stops its own click so using it doesn't also open the
350
351
  // submenu. Both go through `MenuItemTrailing`, so they land in the columns the
351
352
  // clickable rows reserve rather than in a hand-assembled copy of them.
352
- const CascadingSubmenu = memo(function CascadingSubmenu({ item, itemKey, inset, columns, open, hover, onNavigateBack, }) {
353
+ const CascadingSubmenu = observer(function CascadingSubmenu({ item, itemKey, inset, columns, open, hover, onNavigateBack, }) {
353
354
  const { zIndex } = useCascadingMenu();
354
355
  const [anchorEl, setAnchorEl] = useState(null);
355
356
  // a rebuild can disable the row while its panel is up, and a disabled row has
@@ -392,7 +393,7 @@ const SubMenuList = observer(function SubMenuList({ item, onNavigateBack, }) {
392
393
  // One clickable menu row: label (with optional leading icon) plus its trailing
393
394
  // value/help/adornment decorations. The menu-wide `columns` flags let every row
394
395
  // reserve matching decoration slots so the columns line up down the menu.
395
- const CascadingMenuItem = memo(function CascadingMenuItem({ item, inset, columns, onNavigateBack, onHover, }) {
396
+ const CascadingMenuItem = observer(function CascadingMenuItem({ item, inset, columns, onNavigateBack, onHover, }) {
396
397
  const { closeAfterItemClick, onMenuItemClick, onCloseRoot } = useCascadingMenu();
397
398
  return (_jsx(DisabledTooltip, { item: item, children: _jsxs(MenuItem, { "data-testid": makeTestId('menuitem', item.label), disabled: item.disabled,
398
399
  // A checkbox or radio row states its own value. The glyph
@@ -422,7 +423,7 @@ const CascadingMenuItem = memo(function CascadingMenuItem({ item, inset, columns
422
423
  }
423
424
  }, children: [_jsx(MenuItemLeadingIcon, { Icon: item.icon }), _jsx(ListItemText, { primary: item.label, secondary: item.subLabel, inset: inset }), _jsx(MenuItemTrailing, { item: item, columns: columns })] }) }));
424
425
  });
425
- function CascadingMenuList({ menuItems, onNavigateBack, }) {
426
+ const CascadingMenuList = observer(function CascadingMenuList({ menuItems, onNavigateBack, }) {
426
427
  const { classes, cx } = useStyles();
427
428
  const { openSubmenu, hover } = useSubmenuHover();
428
429
  const { closeOnHover } = hover;
@@ -447,10 +448,11 @@ function CascadingMenuList({ menuItems, onNavigateBack, }) {
447
448
  }
448
449
  return (_jsx(CascadingMenuItem, { item: item, inset: hasIcon && !item.icon, columns: columns, onNavigateBack: onNavigateBack, onHover: closeOnHover }, key));
449
450
  }) }));
450
- }
451
+ });
451
452
  const CascadingMenu = observer(function CascadingMenu({ onMenuItemClick, closeAfterItemClick = true, menuItems, open, onClose, anchorEl, anchorOrigin, transformOrigin, anchorReference, anchorPosition, style, }) {
452
453
  const items = Array.isArray(menuItems) ? menuItems : menuItems();
453
- return (_jsx(Menu, { anchorEl: anchorEl, open: open, onClose: onClose, anchorOrigin: anchorOrigin, transformOrigin: transformOrigin, anchorReference: anchorReference, anchorPosition: anchorPosition, style: style, children: _jsx(CascadingMenuContext, { value: {
454
+ const { onEntering, ...focus } = usePlacedMenuFocus();
455
+ return (_jsx(Menu, { ...focus, anchorEl: anchorEl, open: open, onClose: onClose, anchorOrigin: anchorOrigin, transformOrigin: transformOrigin, anchorReference: anchorReference, anchorPosition: anchorPosition, style: style, slotProps: { transition: { onEntering } }, children: _jsx(CascadingMenuContext, { value: {
454
456
  closeAfterItemClick,
455
457
  onMenuItemClick,
456
458
  onCloseRoot: onClose,
@@ -1,7 +1,7 @@
1
1
  import type { MenuItemsGetter } from './CascadingMenu.tsx';
2
2
  import type { MenuItemClickHandler } from './MenuTypes.ts';
3
3
  import type { PopoverOrigin } from '@mui/material';
4
- declare function CascadingMenuButton({ children, menuItems, closeAfterItemClick, stopPropagation, disabled, setOpen, ButtonComponent, onClick: onClickExtra, onMenuItemClick, anchorOrigin, transformOrigin, tooltip, ...rest }: {
4
+ declare const CascadingMenuButton: ({ children, menuItems, closeAfterItemClick, stopPropagation, disabled, setOpen, ButtonComponent, onClick: onClickExtra, onMenuItemClick, anchorOrigin, transformOrigin, tooltip, ...rest }: {
5
5
  children?: React.ReactNode;
6
6
  menuItems: MenuItemsGetter;
7
7
  closeAfterItemClick?: boolean;
@@ -20,5 +20,5 @@ declare function CascadingMenuButton({ children, menuItems, closeAfterItemClick,
20
20
  transformOrigin?: PopoverOrigin;
21
21
  tooltip?: string;
22
22
  [key: string]: unknown;
23
- }): import("react").JSX.Element;
23
+ }) => import("react").JSX.Element;
24
24
  export default CascadingMenuButton;
@@ -2,6 +2,7 @@ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-run
2
2
  import { useState } from 'react';
3
3
  import IconButton from '@mui/material/IconButton';
4
4
  import Tooltip from '@mui/material/Tooltip';
5
+ import { observer } from 'mobx-react';
5
6
  import CascadingMenu from './CascadingMenu.js';
6
7
  // drop the menu below the trigger icon rather than overlapping it (MUI's
7
8
  // default top/left anchor)
@@ -10,10 +11,10 @@ const dropdownTransformOrigin = { vertical: 'top', horizontal: 'left' };
10
11
  // A disabled button has pointer-events:none, so a Tooltip placed directly on it
11
12
  // never fires; wrap it in a span (per MUI guidance) to restore the hover. The
12
13
  // wrapper is only added when disabled, so enabled buttons keep their layout.
13
- function MaybeTooltip({ title, disabled, children, }) {
14
+ const MaybeTooltip = observer(function MaybeTooltip({ title, disabled, children, }) {
14
15
  return title ? (_jsx(Tooltip, { title: title, children: disabled ? _jsx("span", { children: children }) : children })) : (children);
15
- }
16
- function CascadingMenuButton({ children, menuItems, closeAfterItemClick = true, stopPropagation, disabled, setOpen, ButtonComponent = IconButton, onClick: onClickExtra, onMenuItemClick = callback => {
16
+ });
17
+ const CascadingMenuButton = observer(function CascadingMenuButton({ children, menuItems, closeAfterItemClick = true, stopPropagation, disabled, setOpen, ButtonComponent = IconButton, onClick: onClickExtra, onMenuItemClick = callback => {
17
18
  callback();
18
19
  }, anchorOrigin = dropdownAnchorOrigin, transformOrigin = dropdownTransformOrigin, tooltip, ...rest }) {
19
20
  const [anchorEl, setAnchorEl] = useState(null);
@@ -38,5 +39,5 @@ function CascadingMenuButton({ children, menuItems, closeAfterItemClick = true,
38
39
  setAnchorEl(null);
39
40
  setOpen?.(false);
40
41
  }, anchorEl: anchorEl, anchorOrigin: anchorOrigin, transformOrigin: transformOrigin, menuItems: menuItems, closeAfterItemClick: closeAfterItemClick, onMenuItemClick: onMenuItemClick })) : null] }));
41
- }
42
+ });
42
43
  export default CascadingMenuButton;
@@ -1,5 +1,6 @@
1
- export default function CascadingMenuHelpDialog({ onClose, helpText, label, }: {
1
+ declare const CascadingMenuHelpDialog: ({ onClose, helpText, label, }: {
2
2
  onClose: () => void;
3
3
  helpText: React.ReactNode;
4
4
  label?: React.ReactNode;
5
- }): import("react").JSX.Element;
5
+ }) => import("react").JSX.Element;
6
+ export default CascadingMenuHelpDialog;
@@ -1,9 +1,11 @@
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 InfoDialog from './InfoDialog.js';
3
- export default function CascadingMenuHelpDialog({ onClose, helpText, label, }) {
4
+ const CascadingMenuHelpDialog = observer(function CascadingMenuHelpDialog({ onClose, helpText, label, }) {
4
5
  return (_jsx(InfoDialog, { open: true, onClose: onClose, title: "Help", titleNode: label ? _jsxs(_Fragment, { children: ["Help: ", label] }) : undefined, onClick: e => {
5
6
  e.stopPropagation();
6
7
  }, onMouseDown: e => {
7
8
  e.stopPropagation();
8
9
  }, children: helpText }));
9
- }
10
+ });
11
+ export default CascadingMenuHelpDialog;
@@ -1,6 +1,7 @@
1
1
  import type React from 'react';
2
- export declare function CascadingMenuHelpIconSpacer(): React.JSX.Element;
3
- export default function CascadingMenuHelpIconButton({ helpText, label, }: {
2
+ export declare const CascadingMenuHelpIconSpacer: () => React.JSX.Element;
3
+ declare const CascadingMenuHelpIconButton: ({ helpText, label, }: {
4
4
  helpText: string;
5
5
  label?: React.ReactNode;
6
- }): React.JSX.Element;
6
+ }) => React.JSX.Element;
7
+ export default CascadingMenuHelpIconButton;
@@ -2,17 +2,20 @@ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-run
2
2
  import { useState } from 'react';
3
3
  import HelpOutlined from '@mui/icons-material/HelpOutlined';
4
4
  import { IconButton } from '@mui/material';
5
+ import { observer } from 'mobx-react';
5
6
  import CascadingMenuHelpDialog from './CascadingMenuHelpDialog.js';
6
7
  const buttonStyle = { marginLeft: 4, padding: 4 };
7
8
  // Invisible button that reserves the exact same footprint as the help icon, so
8
9
  // rows without help text keep their end decoration (radio/checkbox) aligned
9
10
  // with rows that have one
10
- export function CascadingMenuHelpIconSpacer() {
11
+ export const CascadingMenuHelpIconSpacer = observer(function CascadingMenuHelpIconSpacer() {
11
12
  return (_jsx(IconButton, { size: "small", disabled: true, style: { ...buttonStyle, visibility: 'hidden' }, children: _jsx(HelpOutlined, { fontSize: "small" }) }));
12
- }
13
- export default function CascadingMenuHelpIconButton({ helpText, label, }) {
13
+ });
14
+ const CascadingMenuHelpIconButton = observer(function CascadingMenuHelpIconButton({ helpText, label, }) {
14
15
  const [helpDialogOpen, setHelpDialogOpen] = useState(false);
15
- return (_jsxs(_Fragment, { children: [_jsx(IconButton, { size: "small", "aria-label": typeof label === 'string' ? `Help for ${label}` : 'Help for this item', onClick: event => {
16
+ return (_jsxs(_Fragment, { children: [_jsx(IconButton, { size: "small", "aria-label": typeof label === 'string'
17
+ ? `Help for ${label}`
18
+ : 'Help for this item', onClick: event => {
16
19
  event.stopPropagation();
17
20
  setHelpDialogOpen(true);
18
21
  }, style: buttonStyle, children: _jsx(HelpOutlined, { fontSize: "small" }) }), helpDialogOpen ? (_jsx(CascadingMenuHelpDialog, { helpText: helpText, label: label,
@@ -21,4 +24,5 @@ export default function CascadingMenuHelpIconButton({ helpText, label, }) {
21
24
  onClose: () => {
22
25
  setHelpDialogOpen(false);
23
26
  } })) : null] }));
24
- }
27
+ });
28
+ export default CascadingMenuHelpIconButton;
@@ -1,12 +1,13 @@
1
- export declare function ColorPopover({ anchorEl, onChange, onClose, color, presetAlpha, }: {
1
+ export declare const ColorPopover: ({ anchorEl, onChange, onClose, color, presetAlpha, }: {
2
2
  color: string;
3
3
  anchorEl: HTMLElement | null;
4
4
  onChange: (val: string) => void;
5
5
  onClose: () => void;
6
6
  presetAlpha?: number;
7
- }): import("react").JSX.Element;
8
- export default function ColorPicker({ onChange, color, presetAlpha, }: {
7
+ }) => import("react").JSX.Element;
8
+ declare const ColorPicker: ({ onChange, color, presetAlpha, }: {
9
9
  color: string;
10
10
  onChange: (val: string) => void;
11
11
  presetAlpha?: number;
12
- }): import("react").JSX.Element;
12
+ }) => import("react").JSX.Element;
13
+ export default ColorPicker;
@@ -1,6 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useState } from 'react';
3
3
  import { MenuItem, Popover, Select, TextField } from '@mui/material';
4
+ import { observer } from 'mobx-react';
4
5
  import { colord } from '../util/colord.js';
5
6
  import { useDebounce, useLocalStorage } from '../util/hooks.js';
6
7
  import { makeStyles } from '../util/tss-react/index.js';
@@ -30,10 +31,10 @@ const palettes = Object.keys(paletteColors);
30
31
  function isPaletteType(s) {
31
32
  return Object.hasOwn(paletteColors, s);
32
33
  }
33
- export function ColorPopover({ anchorEl, onChange, onClose, color, presetAlpha, }) {
34
+ export const ColorPopover = observer(function ColorPopover({ anchorEl, onChange, onClose, color, presetAlpha, }) {
34
35
  return (_jsx(Popover, { open: !!anchorEl, anchorEl: anchorEl, onClose: onClose, children: _jsx(ColorPicker, { color: color, onChange: onChange, presetAlpha: presetAlpha }) }));
35
- }
36
- export default function ColorPicker({ onChange, color, presetAlpha, }) {
36
+ });
37
+ const ColorPicker = observer(function ColorPicker({ onChange, color, presetAlpha, }) {
37
38
  const { classes } = useStyles();
38
39
  const [storedPalette, setStoredPalette] = useLocalStorage('colorPickerPalette', 'set1');
39
40
  // a stale localStorage value (e.g. a palette since renamed/removed) would
@@ -56,4 +57,5 @@ export default function ColorPicker({ onChange, color, presetAlpha, }) {
56
57
  } }, `${presetColor}-${idx}`))) }), _jsx(TextField, { helperText: 'Manually set color (hex, rgb, or css color name)', value: text, onChange: event => {
57
58
  handleChange(event.target.value);
58
59
  } })] })] }));
59
- }
60
+ });
61
+ export default ColorPicker;
@@ -22,7 +22,7 @@ export interface ContextMenuAnchor {
22
22
  *
23
23
  * Its events do not stop at the portal — React bubbles them through the
24
24
  * component tree to whatever rendered the menu, which on a display is the
25
- * element that hit-tests the pointer. `DisplayStatusChromeBase` is where that
25
+ * element that hit-tests the pointer. `DisplayChromeBase` is where that
26
26
  * element refuses the events that did not happen over it, for every portalled
27
27
  * overlay rather than for menus alone.
28
28
  *
@@ -20,7 +20,7 @@ const DEFAULT_OFFSET = { x: 12, y: 0 };
20
20
  *
21
21
  * Its events do not stop at the portal — React bubbles them through the
22
22
  * component tree to whatever rendered the menu, which on a display is the
23
- * element that hit-tests the pointer. `DisplayStatusChromeBase` is where that
23
+ * element that hit-tests the pointer. `DisplayChromeBase` is where that
24
24
  * element refuses the events that did not happen over it, for every portalled
25
25
  * overlay rather than for menus alone.
26
26
  *
@@ -4,7 +4,8 @@ import type { ButtonProps } from '@mui/material';
4
4
  * `copiedLabel` as feedback. `value` may be a function so callers can defer
5
5
  * computing large strings (e.g. JSON.stringify) until the click happens.
6
6
  */
7
- export default function CopyToClipboardButton({ value, children, copiedLabel, ...rest }: {
7
+ declare const CopyToClipboardButton: ({ value, children, copiedLabel, ...rest }: {
8
8
  value: string | (() => string);
9
9
  copiedLabel?: string;
10
- } & Omit<ButtonProps, 'value'>): import("react").JSX.Element;
10
+ } & Omit<ButtonProps, 'value'>) => import("react").JSX.Element;
11
+ export default CopyToClipboardButton;
@@ -1,14 +1,16 @@
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
  import { useCopyToClipboard } from './useCopyToClipboard.js';
4
5
  /**
5
6
  * A Button that copies `value` to the clipboard and briefly swaps its label to
6
7
  * `copiedLabel` as feedback. `value` may be a function so callers can defer
7
8
  * computing large strings (e.g. JSON.stringify) until the click happens.
8
9
  */
9
- export default function CopyToClipboardButton({ value, children, copiedLabel = 'Copied to clipboard!', ...rest }) {
10
+ const CopyToClipboardButton = observer(function CopyToClipboardButton({ value, children, copiedLabel = 'Copied to clipboard!', ...rest }) {
10
11
  const { copied, copy } = useCopyToClipboard();
11
12
  return (_jsx(Button, { ...rest, onClick: () => {
12
13
  void copy(typeof value === 'function' ? value() : value);
13
14
  }, children: copied ? copiedLabel : children }));
14
- }
15
+ });
16
+ export default CopyToClipboardButton;
@@ -1,15 +1,18 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- const Crosshairs = ({ width, height, mouseX, mouseY, top = 0, zIndex,
2
+ import { observer } from 'mobx-react';
3
+ const Crosshairs = observer(function Crosshairs({ width, height, mouseX, mouseY, top = 0, zIndex,
3
4
  // The vertical (genomic-position) guide is dropped when the cursor is left of
4
5
  // this, e.g. over a tree sidebar where it has no meaning and clutters the
5
6
  // resize handle. The horizontal row guide is kept.
6
- minLeft = 0, }) => (_jsxs("svg", { style: {
7
- position: 'absolute',
8
- top,
9
- left: 0,
10
- width,
11
- height,
12
- pointerEvents: 'none',
13
- zIndex,
14
- }, children: [mouseY === undefined ? null : (_jsx("line", { x1: 0, x2: width, y1: mouseY, y2: mouseY, stroke: "currentColor" })), mouseX >= minLeft ? (_jsx("line", { x1: mouseX, x2: mouseX, y1: 0, y2: height, stroke: "currentColor" })) : null] }));
7
+ minLeft = 0, }) {
8
+ return (_jsxs("svg", { style: {
9
+ position: 'absolute',
10
+ top,
11
+ left: 0,
12
+ width,
13
+ height,
14
+ pointerEvents: 'none',
15
+ zIndex,
16
+ }, children: [mouseY === undefined ? null : (_jsx("line", { x1: 0, x2: width, y1: mouseY, y2: mouseY, stroke: "currentColor" })), mouseX >= minLeft ? (_jsx("line", { x1: mouseX, x2: mouseX, y1: 0, y2: height, stroke: "currentColor" })) : null] }));
17
+ });
15
18
  export default Crosshairs;
@@ -1,4 +1,5 @@
1
- export default function DOMPurifySanitizedHTML({ value, className, }: {
1
+ declare const DOMPurifySanitizedHTML: ({ value, className, }: {
2
2
  value: string;
3
3
  className?: string;
4
- }): import("react").JSX.Element;
4
+ }) => import("react").JSX.Element;
5
+ export default DOMPurifySanitizedHTML;
@@ -1,8 +1,9 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useLayoutEffect, useRef } from 'react';
3
3
  import dompurify from 'dompurify';
4
+ import { observer } from 'mobx-react';
4
5
  import { rewriteExternalAnchors } from './rewriteExternalAnchors.js';
5
- export default function DOMPurifySanitizedHTML({ value, className, }) {
6
+ const DOMPurifySanitizedHTML = observer(function DOMPurifySanitizedHTML({ value, className, }) {
6
7
  const spanRef = useRef(null);
7
8
  useLayoutEffect(() => {
8
9
  const el = spanRef.current;
@@ -13,4 +14,5 @@ export default function DOMPurifySanitizedHTML({ value, className, }) {
13
14
  return (_jsx("span", { ref: spanRef, className: className,
14
15
  // eslint-disable-next-line @eslint-react/dom-no-dangerously-set-innerhtml
15
16
  dangerouslySetInnerHTML: { __html: dompurify.sanitize(value) } }));
16
- }
17
+ });
18
+ export default DOMPurifySanitizedHTML;
@@ -1,5 +1,5 @@
1
1
  import type { CSSProperties } from 'react';
2
- export default function DataGridFlexContainer({ children, className, style, }: {
2
+ declare const DataGridFlexContainer: ({ children, className, style, }: {
3
3
  children: React.ReactNode;
4
4
  /**
5
5
  * merged with the flex-column base. A caller that wants the grid to FILL its
@@ -9,4 +9,5 @@ export default function DataGridFlexContainer({ children, className, style, }: {
9
9
  */
10
10
  className?: string;
11
11
  style?: CSSProperties;
12
- }): import("react").JSX.Element;
12
+ }) => import("react").JSX.Element;
13
+ export default DataGridFlexContainer;
@@ -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
  const useStyles = makeStyles()({
4
5
  flexContainer: {
@@ -7,7 +8,8 @@ const useStyles = makeStyles()({
7
8
  },
8
9
  });
9
10
  // https://mui.com/x/react-data-grid/layout/#flex-parent-container
10
- export default function DataGridFlexContainer({ children, className, style, }) {
11
+ const DataGridFlexContainer = observer(function DataGridFlexContainer({ children, className, style, }) {
11
12
  const { classes } = useStyles();
12
13
  return (_jsx("div", { className: cx(classes.flexContainer, className), style: style, children: children }));
13
- }
14
+ });
15
+ export default DataGridFlexContainer;
@@ -6,5 +6,5 @@ export interface Props extends Omit<DialogProps, 'onClose'> {
6
6
  bivarianceHack(event: object, reason: 'backdropClick' | 'escapeKeyDown' | 'closeButtonClick'): void;
7
7
  }['bivarianceHack'] | undefined;
8
8
  }
9
- declare function Dialog(props: Props): import("react").JSX.Element;
9
+ declare const Dialog: (props: Props) => import("react").JSX.Element;
10
10
  export default Dialog;
package/esm/ui/Dialog.js CHANGED
@@ -2,6 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useMemo } from 'react';
3
3
  import CloseIcon from '@mui/icons-material/Close';
4
4
  import { DialogTitle, Divider, IconButton, Dialog as MUIDialog, ScopedCssBaseline, ThemeProvider, createTheme, useTheme, } from '@mui/material';
5
+ import { observer } from 'mobx-react';
5
6
  import { makeStyles } from '../util/tss-react/index.js';
6
7
  import ErrorBanner from './ErrorBanner.js';
7
8
  import { ErrorBoundary } from './ErrorBoundary.js';
@@ -18,11 +19,11 @@ const useStyles = makeStyles()(theme => ({
18
19
  margin: theme.spacing(5),
19
20
  },
20
21
  }));
21
- function DialogError({ error }) {
22
+ const DialogError = observer(function DialogError({ error, }) {
22
23
  const { classes } = useStyles();
23
24
  return (_jsx("div", { className: classes.errorBox, children: _jsx(ErrorBanner, { error: error }) }));
24
- }
25
- function Dialog(props) {
25
+ });
26
+ const Dialog = observer(function Dialog(props) {
26
27
  const { classes } = useStyles();
27
28
  const { titleNode, header, title, ...rest } = props;
28
29
  const { children, onClose } = rest;
@@ -49,5 +50,5 @@ function Dialog(props) {
49
50
  , { "data-testid": "dialog-close", className: classes.closeButton, onClick: event => {
50
51
  onClose(event, 'closeButtonClick');
51
52
  }, children: _jsx(CloseIcon, {}) })) : null] })), _jsx(Divider, {}), _jsx(ErrorBoundary, { FallbackComponent: DialogError, children: _jsx(ThemeProvider, { theme: dialogTheme, children: children }) })] }) }));
52
- }
53
+ });
53
54
  export default Dialog;
@@ -15,10 +15,10 @@ const useStyles = makeStyles()(theme => ({
15
15
  },
16
16
  },
17
17
  }));
18
- function ButtonComponent(props) {
18
+ const ButtonComponent = observer(function ButtonComponent(props) {
19
19
  const { classes } = useStyles();
20
20
  return (_jsx(Button, { ...props, className: classes.buttonRoot, children: props.children }));
21
- }
21
+ });
22
22
  const DropDownMenu = observer(function DropDownMenu({ menuTitle, menuItems, onMenuItemClick, }) {
23
23
  return (_jsxs(CascadingMenuButton, { menuItems: menuItems, onMenuItemClick: onMenuItemClick, color: "inherit", ButtonComponent: ButtonComponent, children: [menuTitle, _jsx(ArrowDropDown, {})] }));
24
24
  });
@@ -9,5 +9,5 @@ interface Props {
9
9
  classes?: Partial<Record<EditableTypographyClassKey, string>>;
10
10
  ref?: Ref<HTMLDivElement>;
11
11
  }
12
- declare function EditableTypography(props: Props): import("react").JSX.Element;
12
+ declare const EditableTypography: (props: Props) => import("react").JSX.Element;
13
13
  export default EditableTypography;
@@ -4,6 +4,7 @@ import { useRef, useState } from 'react';
4
4
  // that exact string. See the note in `util/hooks.ts`.
5
5
  import useMeasure from '@jbrowse/core/util/useMeasure';
6
6
  import { InputBase, Typography, useTheme } from '@mui/material';
7
+ import { observer } from 'mobx-react';
7
8
  import { makeStyles } from '../util/tss-react/index.js';
8
9
  const useStyles = makeStyles()(theme => ({
9
10
  typography: {
@@ -21,7 +22,7 @@ const useStyles = makeStyles()(theme => ({
21
22
  borderWidth: 2,
22
23
  },
23
24
  }));
24
- function EditableTypography(props) {
25
+ const EditableTypography = observer(function EditableTypography(props) {
25
26
  const { value, setValue, variant, ref, classes: overrides, ...other } = props;
26
27
  const [ref2, { width }] = useMeasure('width');
27
28
  const [editedValue, setEditedValue] = useState();
@@ -64,5 +65,5 @@ function EditableTypography(props) {
64
65
  }
65
66
  setEditedValue(undefined);
66
67
  } })] }));
67
- }
68
+ });
68
69
  export default EditableTypography;
@@ -11,7 +11,7 @@ import type { ReactNode } from 'react';
11
11
  * the environment block and the prefilled issue link — the whole of what that
12
12
  * dialog is for — from anyone whose failure arrived as a string.
13
13
  */
14
- export default function ErrorActions({ error, onRetry, extraAction, color, }: {
14
+ declare const ErrorActions: ({ error, onRetry, extraAction, color, }: {
15
15
  error: unknown;
16
16
  /** omitted by a presentation with nothing to retry */
17
17
  onRetry?: () => void;
@@ -21,4 +21,5 @@ export default function ErrorActions({ error, onRetry, extraAction, color, }: {
21
21
  */
22
22
  extraAction?: ReactNode;
23
23
  color?: IconButtonProps['color'];
24
- }): import("react").JSX.Element;
24
+ }) => import("react").JSX.Element;
25
+ export default ErrorActions;
@@ -1,6 +1,7 @@
1
1
  import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import RefreshIcon from '@mui/icons-material/Refresh';
3
3
  import { IconButton, Tooltip } from '@mui/material';
4
+ import { observer } from 'mobx-react';
4
5
  import StackTraceButton from './StackTraceButton.js';
5
6
  /**
6
7
  * What both error presentations offer, in one order: the remedy specific to
@@ -13,8 +14,9 @@ import StackTraceButton from './StackTraceButton.js';
13
14
  * the environment block and the prefilled issue link — the whole of what that
14
15
  * dialog is for — from anyone whose failure arrived as a string.
15
16
  */
16
- export default function ErrorActions({ error, onRetry, extraAction, color, }) {
17
+ const ErrorActions = observer(function ErrorActions({ error, onRetry, extraAction, color, }) {
17
18
  return (_jsxs(_Fragment, { children: [extraAction, _jsx(StackTraceButton, { error: error, color: color }), onRetry ? (_jsx(Tooltip, { title: "Retry", children: _jsx(IconButton, { "data-testid": "reload_button", onClick: () => {
18
19
  onRetry();
19
20
  }, color: color, children: _jsx(RefreshIcon, {}) }) })) : null] }));
20
- }
21
+ });
22
+ export default ErrorActions;
@@ -1,7 +1,7 @@
1
1
  import type { ReactNode } from 'react';
2
- declare function ErrorBanner({ error, onReset, extraAction, }: {
2
+ declare const ErrorBanner: ({ error, onReset, extraAction, }: {
3
3
  error: unknown;
4
4
  onReset?: () => void;
5
5
  extraAction?: ReactNode;
6
- }): import("react").JSX.Element;
6
+ }) => import("react").JSX.Element;
7
7
  export default ErrorBanner;
@@ -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 { makeStyles } from '../util/tss-react/index.js';
3
4
  import ErrorActions from './ErrorActions.js';
4
5
  import RedErrorMessageBox from './RedErrorMessageBox.js';
@@ -22,7 +23,7 @@ const useStyles = makeStyles()(theme => ({
22
23
  marginLeft: 100,
23
24
  },
24
25
  }));
25
- function ErrorBanner({ error, onReset, extraAction, }) {
26
+ const ErrorBanner = observer(function ErrorBanner({ error, onReset, extraAction, }) {
26
27
  const { classes } = useStyles();
27
28
  const errorText = `${error}`;
28
29
  // trim "expected an instance of ..." tail — still generated by MST for
@@ -31,5 +32,5 @@ function ErrorBanner({ error, onReset, extraAction, }) {
31
32
  const displayText = instanceIdx === -1 ? errorText : errorText.slice(0, instanceIdx);
32
33
  const { snapshotValue, message } = parseError(errorText);
33
34
  return (_jsxs(RedErrorMessageBox, { children: [displayText.slice(0, 10000), _jsx("div", { className: classes.iconFloat, children: _jsx(ErrorActions, { error: error, onRetry: onReset, extraAction: extraAction, color: "primary" }) }), snapshotValue !== undefined ? (_jsxs(_Fragment, { children: [_jsx("div", { className: classes.message, children: message }), _jsx("pre", { className: classes.bg, children: JSON.stringify(snapshotValue, null, 2) })] })) : null] }));
34
- }
35
+ });
35
36
  export default ErrorBanner;
@@ -1,6 +1,7 @@
1
1
  import type { ReactNode } from 'react';
2
- export default function ErrorBar({ error, onRetry, extraAction, }: {
2
+ declare const ErrorBar: ({ error, onRetry, extraAction, }: {
3
3
  error: unknown;
4
4
  onRetry: () => void;
5
5
  extraAction?: ReactNode;
6
- }): import("react").JSX.Element;
6
+ }) => import("react").JSX.Element;
7
+ export default ErrorBar;
@@ -1,5 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { Alert, Tooltip } from '@mui/material';
3
+ import { observer } from 'mobx-react';
3
4
  import { makeStyles } from '../util/tss-react/index.js';
4
5
  import ErrorActions from './ErrorActions.js';
5
6
  const useStyles = makeStyles()({
@@ -12,7 +13,7 @@ const useStyles = makeStyles()({
12
13
  userSelect: 'text',
13
14
  },
14
15
  });
15
- export default function ErrorBar({ error, onRetry, extraAction, }) {
16
+ const ErrorBar = observer(function ErrorBar({ error, onRetry, extraAction, }) {
16
17
  const { classes } = useStyles();
17
18
  const message = `${error}`;
18
19
  return (_jsx("div", { style: {
@@ -32,4 +33,5 @@ export default function ErrorBar({ error, onRetry, extraAction, }) {
32
33
  }, onClick: e => {
33
34
  e.stopPropagation();
34
35
  }, children: _jsx(Alert, { severity: "error", action: _jsx(ErrorActions, { error: error, onRetry: onRetry, extraAction: extraAction }), children: _jsx(Tooltip, { title: message, children: _jsx("div", { className: classes.content, children: message }) }) }) }));
35
- }
36
+ });
37
+ export default ErrorBar;
@@ -1,3 +1,4 @@
1
- export default function ErrorMessage({ error }: {
1
+ declare const ErrorMessage: ({ error, }: {
2
2
  error: unknown;
3
- }): import("react").JSX.Element;
3
+ }) => import("react").JSX.Element;
4
+ export default ErrorMessage;