@jbrowse/core 5.0.0-beta.13 → 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 (391) hide show
  1. package/README.md +365 -69
  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 +3 -2
  5. package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +4 -2
  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 +1 -1
  36. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.js +10 -19
  37. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceLegend.d.ts +3 -2
  38. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceLegend.js +4 -2
  39. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.js +4 -4
  40. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.d.ts +3 -2
  41. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.js +4 -2
  42. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.d.ts +1 -2
  43. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.js +2 -2
  44. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.d.ts +1 -2
  45. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.js +15 -36
  46. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.d.ts +3 -2
  47. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.js +4 -2
  48. package/esm/BaseFeatureWidget/SequenceFeatureDetails/featureTypeUtil.d.ts +2 -1
  49. package/esm/BaseFeatureWidget/SequenceFeatureDetails/featureTypeUtil.js +22 -6
  50. package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.d.ts +13 -1
  51. package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.js +28 -1
  52. package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.js +2 -2
  53. package/esm/BaseFeatureWidget/stateModelFactory.d.ts +2 -0
  54. package/esm/PluginManager.d.ts +1 -0
  55. package/esm/PluginManager.js +6 -0
  56. package/esm/ReExports/coreModules.generated.js +538 -524
  57. package/esm/ReExports/coreWorkerModules.generated.js +454 -441
  58. package/esm/ReExports/lazify.js +3 -2
  59. package/esm/ReExports/list.js +15 -6
  60. package/esm/ReExports/names.d.ts +1 -0
  61. package/esm/ReExports/names.generated.d.ts +2 -0
  62. package/esm/ReExports/names.generated.js +566 -0
  63. package/esm/ReExports/names.js +3 -0
  64. package/esm/assemblyManager/assembly.d.ts +9 -0
  65. package/esm/assemblyManager/assembly.js +13 -0
  66. package/esm/assemblyManager/assemblyConfigSchema.d.ts +6 -1
  67. package/esm/assemblyManager/assemblyConfigSchema.js +23 -22
  68. package/esm/assemblyManager/assemblyManager.d.ts +11 -0
  69. package/esm/assemblyManager/assemblyManager.js +2 -0
  70. package/esm/assemblyManager/expandAssemblyConfigShorthand.d.ts +9 -0
  71. package/esm/assemblyManager/expandAssemblyConfigShorthand.js +23 -0
  72. package/esm/checkPlugins.js +10 -4
  73. package/esm/configuration/configurationSchema.d.ts +18 -5
  74. package/esm/configuration/configurationSchema.js +9 -7
  75. package/esm/configuration/configurationSchemaUnion.d.ts +2 -1
  76. package/esm/configuration/configurationSchemaUnion.js +2 -1
  77. package/esm/configuration/configurationSlot.js +4 -4
  78. package/esm/configuration/fillLocations.d.ts +4 -2
  79. package/esm/configuration/fillLocations.js +9 -3
  80. package/esm/configuration/formatAboutConfigSchema.d.ts +2 -2
  81. package/esm/configuration/formatAboutConfigSchema.js +2 -2
  82. package/esm/configuration/formatDetailsConfigSchema.d.ts +2 -2
  83. package/esm/configuration/formatDetailsConfigSchema.js +5 -5
  84. package/esm/configuration/getConf.js +13 -4
  85. package/esm/configuration/index.d.ts +1 -1
  86. package/esm/configuration/index.js +1 -1
  87. package/esm/configuration/plot.d.ts +2 -2
  88. package/esm/configuration/plot.js +32 -18
  89. package/esm/configuration/schemaRegistry.d.ts +0 -2
  90. package/esm/configuration/slotFacade.js +2 -2
  91. package/esm/configuration/snapshotPreprocess.d.ts +42 -18
  92. package/esm/configuration/snapshotPreprocess.js +94 -34
  93. package/esm/configuration/tabixShorthand.js +1 -3
  94. package/esm/data_adapters/BaseAdapter/BaseAdapter.d.ts +7 -0
  95. package/esm/data_adapters/BaseAdapter/BaseAdapter.js +7 -0
  96. package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +0 -22
  97. package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +0 -55
  98. package/esm/data_adapters/BaseAdapter/index.d.ts +0 -1
  99. package/esm/data_adapters/BaseAdapter/index.js +0 -1
  100. package/esm/data_adapters/BaseAdapter/rowSources.d.ts +2 -2
  101. package/esm/data_adapters/BaseAdapter/types.d.ts +1 -0
  102. package/esm/data_adapters/CytobandAdapter/configSchema.d.ts +2 -0
  103. package/esm/data_adapters/CytobandAdapter/configSchema.js +5 -0
  104. package/esm/data_adapters/dataAdapterCache.d.ts +25 -13
  105. package/esm/data_adapters/dataAdapterCache.js +68 -24
  106. package/esm/data_adapters/getFeatureAdapter.d.ts +9 -0
  107. package/esm/data_adapters/getFeatureAdapter.js +17 -0
  108. package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +2 -0
  109. package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.js +2 -0
  110. package/esm/pluggableElementTypes/models/BaseDisplayModel.d.ts +40 -6
  111. package/esm/pluggableElementTypes/models/BaseDisplayModel.js +56 -8
  112. package/esm/pluggableElementTypes/models/BaseTrackModel.d.ts +3 -3
  113. package/esm/pluggableElementTypes/models/BaseTrackModel.js +7 -6
  114. package/esm/pluggableElementTypes/models/BaseViewModel.d.ts +2 -0
  115. package/esm/pluggableElementTypes/models/BaseViewModel.js +2 -0
  116. package/esm/pluggableElementTypes/models/InternetAccountModel.d.ts +3 -0
  117. package/esm/pluggableElementTypes/models/InternetAccountModel.js +3 -0
  118. package/esm/pluggableElementTypes/models/baseConnectionConfig.d.ts +3 -0
  119. package/esm/pluggableElementTypes/models/baseConnectionConfig.js +3 -0
  120. package/esm/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +3 -1
  121. package/esm/pluggableElementTypes/models/baseInternetAccountConfig.js +3 -1
  122. package/esm/pluggableElementTypes/models/baseTrackConfig.js +9 -1
  123. package/esm/pluggableElementTypes/models/components/SaveTrackData.js +2 -2
  124. package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.d.ts +1 -1
  125. package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.js +1 -1
  126. package/esm/pluginDefinitions.d.ts +7 -0
  127. package/esm/pluginDefinitions.js +20 -0
  128. package/esm/rpc/RpcRegistry.d.ts +0 -10
  129. package/esm/rpc/byteBudget.d.ts +8 -0
  130. package/esm/rpc/byteBudget.js +13 -0
  131. package/esm/rpc/configSchema.d.ts +2 -0
  132. package/esm/rpc/configSchema.js +3 -1
  133. package/esm/rpc/coreRpcMethods.d.ts +0 -1
  134. package/esm/rpc/coreRpcMethods.js +0 -1
  135. package/esm/rpc/methods/CoreGetEncodedLayers.d.ts +2 -2
  136. package/esm/rpc/methods/CoreGetEncodedLayers.js +7 -5
  137. package/esm/rpc/methods/layerFeatures.d.ts +9 -6
  138. package/esm/rpc/methods/layerFeatures.js +21 -5
  139. package/esm/ui/ActionLink.d.ts +3 -2
  140. package/esm/ui/ActionLink.js +4 -2
  141. package/esm/ui/AddCustomPluginDialog.d.ts +3 -2
  142. package/esm/ui/AddCustomPluginDialog.js +6 -4
  143. package/esm/ui/BaseTooltip.d.ts +3 -2
  144. package/esm/ui/BaseTooltip.js +4 -2
  145. package/esm/ui/CascadingMenu.js +14 -12
  146. package/esm/ui/CascadingMenuButton.d.ts +2 -2
  147. package/esm/ui/CascadingMenuButton.js +5 -4
  148. package/esm/ui/CascadingMenuHelpDialog.d.ts +3 -2
  149. package/esm/ui/CascadingMenuHelpDialog.js +4 -2
  150. package/esm/ui/CascadingMenuHelpIconButton.d.ts +4 -3
  151. package/esm/ui/CascadingMenuHelpIconButton.js +9 -5
  152. package/esm/ui/ColorPicker.d.ts +5 -4
  153. package/esm/ui/ColorPicker.js +6 -4
  154. package/esm/ui/ContextMenu.d.ts +1 -1
  155. package/esm/ui/ContextMenu.js +1 -1
  156. package/esm/ui/CopyToClipboardButton.d.ts +3 -2
  157. package/esm/ui/CopyToClipboardButton.js +4 -2
  158. package/esm/ui/Crosshairs.js +13 -10
  159. package/esm/ui/DOMPurifySanitizedHTML.d.ts +3 -2
  160. package/esm/ui/DOMPurifySanitizedHTML.js +4 -2
  161. package/esm/ui/DataGridFlexContainer.d.ts +3 -2
  162. package/esm/ui/DataGridFlexContainer.js +4 -2
  163. package/esm/ui/Dialog.d.ts +1 -1
  164. package/esm/ui/Dialog.js +5 -4
  165. package/esm/ui/DropDownMenu.js +2 -2
  166. package/esm/ui/EditableTypography.d.ts +1 -1
  167. package/esm/ui/EditableTypography.js +3 -2
  168. package/esm/ui/ErrorActions.d.ts +3 -2
  169. package/esm/ui/ErrorActions.js +4 -2
  170. package/esm/ui/ErrorBanner.d.ts +2 -2
  171. package/esm/ui/ErrorBanner.js +3 -2
  172. package/esm/ui/ErrorBar.d.ts +3 -2
  173. package/esm/ui/ErrorBar.js +4 -2
  174. package/esm/ui/ErrorMessage.d.ts +3 -2
  175. package/esm/ui/ErrorMessage.js +4 -2
  176. package/esm/ui/ErrorMessageStackTraceContents.d.ts +3 -2
  177. package/esm/ui/ErrorMessageStackTraceContents.js +4 -2
  178. package/esm/ui/ErrorMessageStackTraceDialog.d.ts +3 -2
  179. package/esm/ui/ErrorMessageStackTraceDialog.js +4 -2
  180. package/esm/ui/ErrorOverlay.d.ts +3 -2
  181. package/esm/ui/ErrorOverlay.js +4 -2
  182. package/esm/ui/ExportSvgDialog.d.ts +3 -2
  183. package/esm/ui/ExportSvgDialog.js +4 -2
  184. package/esm/ui/ExternalLink.d.ts +2 -1
  185. package/esm/ui/ExternalLink.js +4 -2
  186. package/esm/ui/FactoryResetDialog.d.ts +3 -2
  187. package/esm/ui/FactoryResetDialog.js +4 -2
  188. package/esm/ui/FatalErrorDialog.d.ts +3 -2
  189. package/esm/ui/FatalErrorDialog.js +6 -4
  190. package/esm/ui/FileDropZone.d.ts +3 -2
  191. package/esm/ui/FileDropZone.js +4 -2
  192. package/esm/ui/FileSelector/LocalFileChooser.js +4 -4
  193. package/esm/ui/FileSelector/LocationInput.d.ts +3 -2
  194. package/esm/ui/FileSelector/LocationInput.js +4 -2
  195. package/esm/ui/FileSelector/SourceTypeSelector.d.ts +3 -2
  196. package/esm/ui/FileSelector/SourceTypeSelector.js +8 -6
  197. package/esm/ui/GpuFallbackButton.d.ts +3 -2
  198. package/esm/ui/GpuFallbackButton.js +4 -2
  199. package/esm/ui/HoverMenu.d.ts +2 -2
  200. package/esm/ui/HoverMenu.js +7 -3
  201. package/esm/ui/HoverTooltip.d.ts +3 -2
  202. package/esm/ui/HoverTooltip.js +4 -2
  203. package/esm/ui/Icons.d.ts +5 -5
  204. package/esm/ui/Icons.js +11 -10
  205. package/esm/ui/InlineMenuControls.d.ts +2 -2
  206. package/esm/ui/InlineMenuControls.js +4 -3
  207. package/esm/ui/JexlFilterRowEditors.d.ts +4 -4
  208. package/esm/ui/JexlFilterRowEditors.js +9 -8
  209. package/esm/ui/LabeledCheckbox.d.ts +3 -2
  210. package/esm/ui/LabeledCheckbox.js +4 -2
  211. package/esm/ui/LazyBaseTooltip.d.ts +12 -3
  212. package/esm/ui/LazyBaseTooltip.js +4 -2
  213. package/esm/ui/LegendSwatchGlyph.js +1 -0
  214. package/esm/ui/LoadingDots.d.ts +2 -1
  215. package/esm/ui/LoadingDots.js +4 -2
  216. package/esm/ui/LoadingEllipses.d.ts +5 -2
  217. package/esm/ui/LoadingEllipses.js +5 -3
  218. package/esm/ui/LoadingOverlay.d.ts +3 -2
  219. package/esm/ui/LoadingOverlay.js +4 -2
  220. package/esm/ui/LoadingProgress.d.ts +3 -2
  221. package/esm/ui/LoadingProgress.js +4 -2
  222. package/esm/ui/Logo.d.ts +2 -2
  223. package/esm/ui/Logo.js +9 -8
  224. package/esm/ui/MenuItemChevron.d.ts +2 -2
  225. package/esm/ui/MenuItemChevron.js +3 -2
  226. package/esm/ui/MenuItemEndDecoration.d.ts +2 -2
  227. package/esm/ui/MenuItemEndDecoration.js +3 -2
  228. package/esm/ui/MenuItemTrailing.d.ts +2 -2
  229. package/esm/ui/MenuItemTrailing.js +7 -6
  230. package/esm/ui/MenuTypes.d.ts +21 -1
  231. package/esm/ui/MenuTypes.js +20 -0
  232. package/esm/ui/MonospaceTextField.d.ts +3 -2
  233. package/esm/ui/MonospaceTextField.js +4 -2
  234. package/esm/ui/NumberTextField.d.ts +2 -2
  235. package/esm/ui/NumberTextField.js +4 -2
  236. package/esm/ui/PaletteContext.d.ts +11 -9
  237. package/esm/ui/PaletteContext.js +33 -18
  238. package/esm/ui/PluginStoreCard.d.ts +3 -2
  239. package/esm/ui/PluginStoreCard.js +4 -2
  240. package/esm/ui/PopoverPicker.d.ts +3 -2
  241. package/esm/ui/PopoverPicker.js +4 -2
  242. package/esm/ui/PrerenderedCanvas.d.ts +2 -2
  243. package/esm/ui/PrerenderedCanvas.js +3 -2
  244. package/esm/ui/RedErrorMessageBox.d.ts +3 -2
  245. package/esm/ui/RedErrorMessageBox.js +4 -2
  246. package/esm/ui/RefNameAutocomplete/EndAdornment.d.ts +3 -2
  247. package/esm/ui/RefNameAutocomplete/EndAdornment.js +4 -2
  248. package/esm/ui/RefNameAutocomplete/HelpDialog.d.ts +3 -2
  249. package/esm/ui/RefNameAutocomplete/HelpDialog.js +4 -2
  250. package/esm/ui/ReplaceCurrentViewButton.d.ts +3 -2
  251. package/esm/ui/ReplaceCurrentViewButton.js +4 -2
  252. package/esm/ui/ResizeHandle.d.ts +2 -2
  253. package/esm/ui/ResizeHandle.js +3 -2
  254. package/esm/ui/SanitizedHTML.d.ts +3 -2
  255. package/esm/ui/SanitizedHTML.js +6 -4
  256. package/esm/ui/ScrollChrome.d.ts +3 -2
  257. package/esm/ui/ScrollChrome.js +4 -2
  258. package/esm/ui/ScrollEdgeShadow.d.ts +2 -2
  259. package/esm/ui/ScrollEdgeShadow.js +2 -2
  260. package/esm/ui/SessionJsonPanel.d.ts +3 -2
  261. package/esm/ui/SessionJsonPanel.js +4 -2
  262. package/esm/ui/ShareLinkField.d.ts +3 -2
  263. package/esm/ui/ShareLinkField.js +4 -2
  264. package/esm/ui/SingleSlider.d.ts +2 -2
  265. package/esm/ui/SingleSlider.js +4 -2
  266. package/esm/ui/SliderTooltip.d.ts +2 -1
  267. package/esm/ui/SliderTooltip.js +4 -2
  268. package/esm/ui/SnackbarContents.d.ts +3 -2
  269. package/esm/ui/SnackbarContents.js +4 -2
  270. package/esm/ui/SnackbarModel.d.ts +2 -0
  271. package/esm/ui/SnackbarModel.js +2 -0
  272. package/esm/ui/StackTraceButton.d.ts +3 -2
  273. package/esm/ui/StackTraceButton.js +4 -2
  274. package/esm/ui/StatusProgressBar.d.ts +3 -2
  275. package/esm/ui/StatusProgressBar.js +4 -2
  276. package/esm/ui/SubmitForm.d.ts +2 -1
  277. package/esm/ui/SubmitForm.js +4 -2
  278. package/esm/ui/SvgColorLegend.d.ts +3 -4
  279. package/esm/ui/SvgColorLegend.js +27 -18
  280. package/esm/ui/TagTextField.d.ts +2 -2
  281. package/esm/ui/TagTextField.js +4 -2
  282. package/esm/ui/ViewLoadingScreen.d.ts +3 -2
  283. package/esm/ui/ViewLoadingScreen.js +4 -2
  284. package/esm/ui/colorScale.d.ts +5 -1
  285. package/esm/ui/colorScale.js +12 -10
  286. package/esm/ui/colors.d.ts +3 -3
  287. package/esm/ui/colors.js +7 -7
  288. package/esm/ui/filterMenuItems.d.ts +10 -31
  289. package/esm/ui/filterMenuItems.js +13 -14
  290. package/esm/ui/index.d.ts +1 -1
  291. package/esm/ui/index.js +1 -1
  292. package/esm/ui/launchTargetsMenuItem.js +9 -13
  293. package/esm/ui/legendMenuItem.d.ts +4 -4
  294. package/esm/ui/legendMenuItem.js +4 -4
  295. package/esm/ui/menuItemAdornment.d.ts +1 -1
  296. package/esm/ui/menuItemAdornment.js +1 -1
  297. package/esm/ui/menuItems.d.ts +1 -1
  298. package/esm/ui/menuItems.js +1 -1
  299. package/esm/ui/menuLabels.d.ts +2 -2
  300. package/esm/ui/menuLabels.js +2 -2
  301. package/esm/ui/palette.d.ts +2 -2
  302. package/esm/ui/palette.js +10 -10
  303. package/esm/ui/radioSubMenu.d.ts +5 -3
  304. package/esm/ui/radioSubMenu.js +2 -2
  305. package/esm/ui/rampKey.d.ts +15 -0
  306. package/esm/ui/rampKey.js +17 -0
  307. package/esm/ui/showSubMenu.d.ts +0 -5
  308. package/esm/ui/showSubMenu.js +6 -15
  309. package/esm/ui/theme.d.ts +2 -2
  310. package/esm/ui/theme.js +1 -1
  311. package/esm/ui/useAssemblySelection.d.ts +2 -0
  312. package/esm/ui/useMouseTracking.d.ts +8 -20
  313. package/esm/ui/useMouseTracking.js +23 -62
  314. package/esm/ui/usePlacedMenuFocus.d.ts +19 -0
  315. package/esm/ui/usePlacedMenuFocus.js +28 -0
  316. package/esm/util/Base1DViewModel.d.ts +5 -3
  317. package/esm/util/Base1DViewModel.js +5 -3
  318. package/esm/util/SvgCanvas.js +1 -1
  319. package/esm/util/aggregateFieldName.d.ts +1 -10
  320. package/esm/util/aggregateFieldName.js +1 -8
  321. package/esm/util/analytics.d.ts +4 -6
  322. package/esm/util/analytics.js +143 -12
  323. package/esm/util/bezierConnector.d.ts +20 -0
  324. package/esm/util/bezierConnector.js +34 -100
  325. package/esm/util/cacheBudgets.d.ts +3 -0
  326. package/esm/util/cacheBudgets.js +3 -0
  327. package/esm/util/categoricalField.d.ts +2 -2
  328. package/esm/util/categoricalField.js +3 -3
  329. package/esm/util/color/index.d.ts +1 -1
  330. package/esm/util/color/index.js +2 -2
  331. package/esm/util/color-bits/bit.js +1 -1
  332. package/esm/util/color-bits/parse.js +6 -6
  333. package/esm/util/colorBits.d.ts +15 -4
  334. package/esm/util/colorBits.js +38 -15
  335. package/esm/util/colorRamp.d.ts +3 -3
  336. package/esm/util/colorRamp.js +14 -2
  337. package/esm/util/colorScale.d.ts +114 -20
  338. package/esm/util/colorScale.js +124 -26
  339. package/esm/util/colorSchemes.d.ts +6 -4
  340. package/esm/util/colorSchemes.js +6 -3
  341. package/esm/util/createSvgRasterCanvas.d.ts +14 -1
  342. package/esm/util/createSvgRasterCanvas.js +36 -12
  343. package/esm/util/diagonalizeRegions.js +18 -9
  344. package/esm/util/featureTransforms.d.ts +2 -2
  345. package/esm/util/featureTransforms.js +85 -135
  346. package/esm/util/fileHandleStore.js +5 -0
  347. package/esm/util/groupKeys.d.ts +5 -4
  348. package/esm/util/groupKeys.js +15 -9
  349. package/esm/util/index.js +1 -1
  350. package/esm/util/installFetch.d.ts +2 -2
  351. package/esm/util/installPrerequisiteFetch.d.ts +8 -3
  352. package/esm/util/installPrerequisiteFetch.js +9 -7
  353. package/esm/util/io/RemoteFileWithRangeCache.d.ts +1 -1
  354. package/esm/util/io/RemoteFileWithRangeCache.js +1 -1
  355. package/esm/util/jexl.js +1 -1
  356. package/esm/util/layouts/GranularRectLayout.d.ts +19 -3
  357. package/esm/util/layouts/GranularRectLayout.js +57 -34
  358. package/esm/util/leadingEdgeAutorun.d.ts +9 -1
  359. package/esm/util/leadingEdgeAutorun.js +5 -2
  360. package/esm/util/markEncoding.d.ts +10 -8
  361. package/esm/util/markEncoding.js +50 -12
  362. package/esm/util/markEncodingTypes.d.ts +74 -20
  363. package/esm/util/originCut.d.ts +14 -0
  364. package/esm/util/originCut.js +19 -0
  365. package/esm/util/paintLayer.d.ts +1 -1
  366. package/esm/util/paintLayer.js +4 -3
  367. package/esm/util/pathSeries.d.ts +18 -0
  368. package/esm/util/pathSeries.js +143 -0
  369. package/esm/util/pressOwner.d.ts +20 -0
  370. package/esm/util/pressOwner.js +26 -0
  371. package/esm/util/quantileExtent.d.ts +3 -3
  372. package/esm/util/quantileExtent.js +3 -3
  373. package/esm/util/rowStackGeometry.d.ts +1 -1
  374. package/esm/util/rowStackGeometry.js +1 -1
  375. package/esm/util/sessionActivity.d.ts +36 -0
  376. package/esm/util/sessionActivity.js +88 -0
  377. package/esm/util/stepOutputs.d.ts +165 -0
  378. package/esm/util/stepOutputs.js +201 -0
  379. package/esm/util/stepTables.d.ts +7 -3
  380. package/esm/util/stepTables.js +86 -3
  381. package/esm/util/thresholdScale.d.ts +1 -1
  382. package/esm/util/thresholdScale.js +1 -1
  383. package/esm/util/tracks.js +1 -1
  384. package/esm/util/usePanZoom.js +4 -10
  385. package/esm/util/windowStep.d.ts +6 -0
  386. package/esm/util/windowStep.js +153 -0
  387. package/package.json +23 -15
  388. package/esm/data_adapters/BaseAdapter/featureDensity.d.ts +0 -40
  389. package/esm/data_adapters/BaseAdapter/featureDensity.js +0 -31
  390. package/esm/rpc/methods/CoreGetFeatureDensity.d.ts +0 -11
  391. package/esm/rpc/methods/CoreGetFeatureDensity.js +0 -22
@@ -1,7 +1,8 @@
1
- export default function FatalErrorDialog({ componentStack, error, onFactoryReset, resetButtonText, extraActions, }: {
1
+ declare const FatalErrorDialog: ({ componentStack, error, onFactoryReset, resetButtonText, extraActions, }: {
2
2
  componentStack?: string;
3
3
  error?: unknown;
4
4
  onFactoryReset: () => void;
5
5
  resetButtonText?: string;
6
6
  extraActions?: React.ReactNode;
7
- }): import("react").JSX.Element;
7
+ }) => import("react").JSX.Element;
8
+ export default FatalErrorDialog;
@@ -1,19 +1,21 @@
1
1
  import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useState } from 'react';
3
3
  import { Button, Dialog, DialogActions, DialogContent, DialogTitle, } from '@mui/material';
4
+ import { observer } from 'mobx-react';
4
5
  import ErrorBanner from './ErrorBanner.js';
5
6
  import ErrorMessageStackTraceContents from './ErrorMessageStackTraceContents.js';
6
7
  import FactoryResetDialog from './FactoryResetDialog.js';
7
- const ResetComponent = ({ onFactoryReset, resetButtonText, }) => {
8
+ const ResetComponent = observer(function ResetComponent({ onFactoryReset, resetButtonText, }) {
8
9
  const [dialogOpen, setDialogOpen] = useState(false);
9
10
  return (_jsxs(_Fragment, { children: [_jsx(Button, { "data-testid": "fatal-error", color: "primary", variant: "contained", onClick: () => {
10
11
  setDialogOpen(true);
11
12
  }, children: resetButtonText }), _jsx(FactoryResetDialog, { onClose: () => {
12
13
  setDialogOpen(false);
13
14
  }, open: dialogOpen, onFactoryReset: onFactoryReset })] }));
14
- };
15
- export default function FatalErrorDialog({ componentStack, error = 'No error message provided', onFactoryReset, resetButtonText = 'Factory Reset', extraActions, }) {
15
+ });
16
+ const FatalErrorDialog = observer(function FatalErrorDialog({ componentStack, error = 'No error message provided', onFactoryReset, resetButtonText = 'Factory Reset', extraActions, }) {
16
17
  return (_jsxs(Dialog, { maxWidth: "xl", open: true, children: [_jsx(DialogTitle, { children: "Fatal error" }), _jsxs(DialogContent, { children: [_jsx(ErrorBanner, { error: error }), componentStack ? (_jsx(ErrorMessageStackTraceContents, { text: componentStack })) : null] }), _jsxs(DialogActions, { children: [extraActions, _jsx(Button, { color: "secondary", variant: "contained", onClick: () => {
17
18
  window.location.reload();
18
19
  }, children: "Refresh" }), _jsx(ResetComponent, { onFactoryReset: onFactoryReset, resetButtonText: resetButtonText })] })] }));
19
- }
20
+ });
21
+ export default FatalErrorDialog;
@@ -14,7 +14,7 @@ export interface FileRejection {
14
14
  * set, rejected files with their validation errors. Pass `message` to replace
15
15
  * the default prompt and `children` for extra content (e.g. a Browse button).
16
16
  */
17
- export default function FileDropZone({ onDrop, accept, maxSize, multiple, message, children, className, }: {
17
+ declare const FileDropZone: ({ onDrop, accept, maxSize, multiple, message, children, className, }: {
18
18
  onDrop: (accepted: File[], rejected: FileRejection[]) => void;
19
19
  accept?: Accept;
20
20
  maxSize?: number;
@@ -22,4 +22,5 @@ export default function FileDropZone({ onDrop, accept, maxSize, multiple, messag
22
22
  message?: ReactNode;
23
23
  children?: ReactNode;
24
24
  className?: string;
25
- }): import("react").JSX.Element;
25
+ }) => import("react").JSX.Element;
26
+ export default FileDropZone;
@@ -2,6 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useRef, useState } from 'react';
3
3
  import CloudUploadIcon from '@mui/icons-material/CloudUpload';
4
4
  import { Typography } from '@mui/material';
5
+ import { observer } from 'mobx-react';
5
6
  import { makeStyles } from '../util/tss-react/index.js';
6
7
  import { alpha } from './palette.js';
7
8
  const useStyles = makeStyles()(theme => ({
@@ -67,7 +68,7 @@ function validate(file, accept, maxSize) {
67
68
  * set, rejected files with their validation errors. Pass `message` to replace
68
69
  * the default prompt and `children` for extra content (e.g. a Browse button).
69
70
  */
70
- export default function FileDropZone({ onDrop, accept, maxSize, multiple = true, message, children, className, }) {
71
+ const FileDropZone = observer(function FileDropZone({ onDrop, accept, maxSize, multiple = true, message, children, className, }) {
71
72
  const { classes, cx } = useStyles();
72
73
  const inputRef = useRef(null);
73
74
  // dragenter/dragleave fire for child elements too; ref-count them so
@@ -126,4 +127,5 @@ export default function FileDropZone({ onDrop, accept, maxSize, multiple = true,
126
127
  // reset so selecting the same file again still fires onChange
127
128
  event.target.value = '';
128
129
  } }), _jsx(CloudUploadIcon, { className: classes.uploadIcon, fontSize: "large" }), _jsx(Typography, { color: "text.secondary", align: "center", children: message ?? 'Drag and drop files here, or click to browse' }), children] }));
129
- }
130
+ });
131
+ export default FileDropZone;
@@ -58,7 +58,7 @@ async function pickFileHandleLocation() {
58
58
  throw e;
59
59
  }
60
60
  }
61
- function FilePickerButton({ setLocation, }) {
61
+ const FilePickerButton = observer(function FilePickerButton({ setLocation, }) {
62
62
  if (supportsFileSystemAccess) {
63
63
  return (_jsx(Button, { variant: "outlined", onClick: async () => {
64
64
  const loc = await pickFileHandleLocation();
@@ -91,8 +91,8 @@ function FilePickerButton({ setLocation, }) {
91
91
  }
92
92
  }
93
93
  } })] }));
94
- }
95
- function ReloadPrompt({ location, setLocation, }) {
94
+ });
95
+ const ReloadPrompt = observer(function ReloadPrompt({ location, setLocation, }) {
96
96
  const handleReopen = async () => {
97
97
  if (isFileHandleLocation(location)) {
98
98
  try {
@@ -108,7 +108,7 @@ function ReloadPrompt({ location, setLocation, }) {
108
108
  }
109
109
  };
110
110
  return (_jsxs(Box, { sx: { display: 'flex', alignItems: 'center', gap: 1 }, children: [_jsx(Typography, { color: "error", children: "(need to reload)" }), isFileHandleLocation(location) && (_jsx(Button, { size: "small", variant: "text", color: "primary", onClick: handleReopen, children: "Reopen" }))] }));
111
- }
111
+ });
112
112
  const LocalFileChooser = observer(function LocalFileChooser({ location, setLocation, }) {
113
113
  const { classes } = useStyles();
114
114
  const filename = getFilename(location);
@@ -1,9 +1,10 @@
1
1
  import type { BaseInternetAccountModel } from '../../pluggableElementTypes/index.ts';
2
2
  import type { FileLocation } from '../../util/types/index.ts';
3
- export default function LocationInput({ toggleButtonValue, selectedAccount, location, inline, setLocation, }: {
3
+ declare const LocationInput: ({ toggleButtonValue, selectedAccount, location, inline, setLocation, }: {
4
4
  toggleButtonValue: string;
5
5
  selectedAccount?: BaseInternetAccountModel;
6
6
  location?: FileLocation;
7
7
  inline?: boolean;
8
8
  setLocation: (arg: FileLocation) => void;
9
- }): import("react").JSX.Element;
9
+ }) => import("react").JSX.Element;
10
+ export default LocationInput;
@@ -1,11 +1,13 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { observer } from 'mobx-react';
2
3
  import LocalFileChooser from './LocalFileChooser.js';
3
4
  import UrlChooser from './UrlChooser.js';
4
- export default function LocationInput({ toggleButtonValue, selectedAccount, location, inline, setLocation, }) {
5
+ const LocationInput = observer(function LocationInput({ toggleButtonValue, selectedAccount, location, inline, setLocation, }) {
5
6
  // `file` is the only toggle with an input of its own — URL and every account
6
7
  // toggle share the URL box, which is what `selectorLabel` names. Anything
7
8
  // else falling through to `null` drew a field label and a toggle group with
8
9
  // nothing under them: picking Dropbox did it, and so did a location arriving
9
10
  // already stamped with an `internetAccountId`.
10
11
  return toggleButtonValue === 'file' ? (_jsx(LocalFileChooser, { location: location, setLocation: setLocation })) : (_jsx(UrlChooser, { location: location, setLocation: setLocation, label: selectedAccount?.selectorLabel, style: inline ? { margin: 0 } : undefined }));
11
- }
12
+ });
13
+ export default LocationInput;
@@ -1,9 +1,10 @@
1
1
  import type { BaseInternetAccountModel } from '../../pluggableElementTypes/index.ts';
2
- export default function SourceTypeSelector({ value, sourceTypes, shownAccounts, hiddenAccounts, onChange, onHiddenAccountSelect, }: {
2
+ declare const SourceTypeSelector: ({ value, sourceTypes, shownAccounts, hiddenAccounts, onChange, onHiddenAccountSelect, }: {
3
3
  value: string;
4
4
  sourceTypes: string[];
5
5
  shownAccounts: BaseInternetAccountModel[];
6
6
  hiddenAccounts: BaseInternetAccountModel[];
7
7
  onChange: (event: React.MouseEvent, newValue: string | null) => void;
8
8
  onHiddenAccountSelect: (id: string) => void;
9
- }): import("react").JSX.Element;
9
+ }) => import("react").JSX.Element;
10
+ export default SourceTypeSelector;
@@ -1,12 +1,13 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown';
3
3
  import { ToggleButton, ToggleButtonGroup, Tooltip } from '@mui/material';
4
+ import { observer } from 'mobx-react';
4
5
  import CascadingMenuButton from '../CascadingMenuButton.js';
5
6
  import { getAccountLabel } from './util.js';
6
- function AccountToggleButton({ account, }) {
7
+ const AccountToggleButton = observer(function AccountToggleButton({ account, }) {
7
8
  return (_jsx(Tooltip, { title: account.name, children: _jsx(ToggleButton, { value: account.internetAccountId, children: getAccountLabel(account) }) }));
8
- }
9
- function MoreButton({ onClick, disabled, children, }) {
9
+ });
10
+ const MoreButton = observer(function MoreButton({ onClick, disabled, children, }) {
10
11
  return (_jsx(ToggleButton, { value: "more", selected: false, disabled: disabled,
11
12
  // ToggleButton types its target as HTMLElement, but it always renders a
12
13
  // <button>, so narrowing to HTMLButtonElement for CascadingMenuButton's
@@ -14,12 +15,13 @@ function MoreButton({ onClick, disabled, children, }) {
14
15
  onClick: e => {
15
16
  onClick(e);
16
17
  }, children: children }));
17
- }
18
- export default function SourceTypeSelector({ value, sourceTypes, shownAccounts, hiddenAccounts, onChange, onHiddenAccountSelect, }) {
18
+ });
19
+ const SourceTypeSelector = observer(function SourceTypeSelector({ value, sourceTypes, shownAccounts, hiddenAccounts, onChange, onHiddenAccountSelect, }) {
19
20
  return (_jsxs(ToggleButtonGroup, { value: value, exclusive: true, size: "small", onChange: onChange, "aria-label": "file, url, or account picker", children: [sourceTypes.includes('file') && (_jsx(ToggleButton, { value: "file", "aria-label": "local file", children: "File" })), _jsx(ToggleButton, { value: "url", "aria-label": "url", children: "URL" }), shownAccounts.map(account => (_jsx(AccountToggleButton, { account: account }, account.internetAccountId))), hiddenAccounts.length > 0 && (_jsxs(CascadingMenuButton, { menuItems: hiddenAccounts.map(account => ({
20
21
  label: account.name,
21
22
  onClick: () => {
22
23
  onHiddenAccountSelect(account.internetAccountId);
23
24
  },
24
25
  })), ButtonComponent: MoreButton, anchorOrigin: { vertical: 'bottom', horizontal: 'center' }, transformOrigin: { vertical: 'top', horizontal: 'center' }, children: ["More", _jsx(ArrowDropDownIcon, {})] }))] }));
25
- }
26
+ });
27
+ export default SourceTypeSelector;
@@ -6,7 +6,8 @@
6
6
  * predicate. Every place that repeated it is a place that could forget it, and
7
7
  * two already had.
8
8
  */
9
- export default function GpuFallbackButton({ error, onRetry, }: {
9
+ declare const GpuFallbackButton: ({ error, onRetry, }: {
10
10
  error: unknown;
11
11
  onRetry: () => void;
12
- }): import("react").JSX.Element | null;
12
+ }) => import("react").JSX.Element | null;
13
+ export default GpuFallbackButton;
@@ -1,5 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { Button, Tooltip } from '@mui/material';
3
+ import { observer } from 'mobx-react';
3
4
  import { GPU_FALLBACK_LABEL, GPU_FALLBACK_TOOLTIP, disableGpuRendering, shouldOfferGpuFallback, } from './gpuFallback.js';
4
5
  /**
5
6
  * The "Use Canvas2D" remedy on a GPU error banner, for the MUI chrome.
@@ -9,7 +10,7 @@ import { GPU_FALLBACK_LABEL, GPU_FALLBACK_TOOLTIP, disableGpuRendering, shouldOf
9
10
  * predicate. Every place that repeated it is a place that could forget it, and
10
11
  * two already had.
11
12
  */
12
- export default function GpuFallbackButton({ error, onRetry, }) {
13
+ const GpuFallbackButton = observer(function GpuFallbackButton({ error, onRetry, }) {
13
14
  if (!shouldOfferGpuFallback(error)) {
14
15
  return null;
15
16
  }
@@ -17,4 +18,5 @@ export default function GpuFallbackButton({ error, onRetry, }) {
17
18
  disableGpuRendering();
18
19
  onRetry();
19
20
  }, children: GPU_FALLBACK_LABEL }) }));
20
- }
21
+ });
22
+ export default GpuFallbackButton;
@@ -1,5 +1,5 @@
1
1
  import type { PopoverOrigin } from '@mui/material';
2
- declare function HoverMenu({ anchorEl, onClose, onMouseEnter, paperRef, anchorOrigin, transformOrigin, zIndex, children, }: {
2
+ declare const HoverMenu: ({ anchorEl, onClose, onMouseEnter, paperRef, anchorOrigin, transformOrigin, zIndex, children, }: {
3
3
  anchorEl: HTMLElement | null;
4
4
  onClose: () => void;
5
5
  onMouseEnter?: () => void;
@@ -8,5 +8,5 @@ declare function HoverMenu({ anchorEl, onClose, onMouseEnter, paperRef, anchorOr
8
8
  transformOrigin: PopoverOrigin;
9
9
  zIndex?: React.CSSProperties['zIndex'];
10
10
  children: React.ReactNode;
11
- }): import("react").JSX.Element;
11
+ }) => import("react").JSX.Element;
12
12
  export default HoverMenu;
@@ -2,6 +2,8 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  // this code adapted from material-ui-popup-state by Andy Edwards, MIT license
3
3
  // https://github.com/jcoreio/material-ui-popup-state/blob/9dba66241a0c25b172c93ae7d9e45a9745f138e8/LICENSE.md
4
4
  import { Menu } from '@mui/material';
5
+ import { observer } from 'mobx-react';
6
+ import { usePlacedMenuFocus } from './usePlacedMenuFocus.js';
5
7
  // A Menu a hovering pointer can cross into: the root (which spans the viewport)
6
8
  // is click-through so the gap between the opener row and the panel doesn't
7
9
  // swallow the pointer, while the paper itself stays interactive. That root can
@@ -18,13 +20,15 @@ import { Menu } from '@mui/material';
18
20
  // and `onMouseEnter`, which fires on the paper rather than the click-through
19
21
  // root and so means "the pointer arrived here", not "the pointer is somewhere
20
22
  // over the viewport".
21
- function HoverMenu({ anchorEl, onClose, onMouseEnter, paperRef, anchorOrigin, transformOrigin, zIndex, children, }) {
22
- return (_jsx(Menu, { open: true, anchorEl: anchorEl, onClose: onClose, anchorOrigin: anchorOrigin, transformOrigin: transformOrigin, style: { pointerEvents: 'none', zIndex }, hideBackdrop: true, slotProps: {
23
+ const HoverMenu = observer(function HoverMenu({ anchorEl, onClose, onMouseEnter, paperRef, anchorOrigin, transformOrigin, zIndex, children, }) {
24
+ const { onEntering, ...focus } = usePlacedMenuFocus();
25
+ return (_jsx(Menu, { ...focus, open: true, anchorEl: anchorEl, onClose: onClose, anchorOrigin: anchorOrigin, transformOrigin: transformOrigin, style: { pointerEvents: 'none', zIndex }, hideBackdrop: true, slotProps: {
23
26
  paper: {
24
27
  style: { pointerEvents: 'auto' },
25
28
  onMouseEnter,
26
29
  ref: paperRef,
27
30
  },
31
+ transition: { onEntering },
28
32
  },
29
33
  // A submenu is portaled in the DOM but is still a React *descendant* of
30
34
  // the parent menu's list, so React replays its key events into the parent
@@ -36,5 +40,5 @@ function HoverMenu({ anchorEl, onClose, onMouseEnter, paperRef, anchorOrigin, tr
36
40
  onKeyDown: e => {
37
41
  e.stopPropagation();
38
42
  }, children: children }));
39
- }
43
+ });
40
44
  export default HoverMenu;
@@ -19,9 +19,10 @@ import type React from 'react';
19
19
  * `BaseTooltip` is: it reaches @floating-ui (~266KB) and that barrel is on the
20
20
  * eager plugin-entry path.
21
21
  */
22
- export default function HoverTooltip({ hit, mouseState, children, }: {
22
+ declare const HoverTooltip: ({ hit, mouseState, children, }: {
23
23
  /** The display's hover. Nothing is drawn when it is absent. */
24
24
  hit: unknown;
25
25
  mouseState: MouseState | undefined;
26
26
  children: React.ReactNode;
27
- }): React.JSX.Element | null;
27
+ }) => React.JSX.Element | null;
28
+ export default HoverTooltip;
@@ -1,4 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { observer } from 'mobx-react';
2
3
  import BaseTooltip from './BaseTooltip.js';
3
4
  /**
4
5
  * `BaseTooltip` anchored to the chrome's pointer measurement, drawn only when
@@ -19,6 +20,7 @@ import BaseTooltip from './BaseTooltip.js';
19
20
  * `BaseTooltip` is: it reaches @floating-ui (~266KB) and that barrel is on the
20
21
  * eager plugin-entry path.
21
22
  */
22
- export default function HoverTooltip({ hit, mouseState, children, }) {
23
+ const HoverTooltip = observer(function HoverTooltip({ hit, mouseState, children, }) {
23
24
  return hit && mouseState ? (_jsx(BaseTooltip, { clientPoint: { x: mouseState.clientX, y: mouseState.clientY }, children: children })) : null;
24
- }
25
+ });
26
+ export default HoverTooltip;
package/esm/ui/Icons.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import type { SvgIconProps } from '@mui/material/SvgIcon';
2
2
  export { default as InfoIcon } from '@mui/icons-material/Info';
3
- export declare function Indexing(props: SvgIconProps): import("react").JSX.Element;
4
- export declare function TrackSelector(props: SvgIconProps): import("react").JSX.Element;
5
- export declare function DNA(props: SvgIconProps): import("react").JSX.Element;
6
- export declare function Highlighter(props: SvgIconProps): import("react").JSX.Element;
7
- export declare function Cable(props: SvgIconProps): import("react").JSX.Element;
3
+ export declare const Indexing: (props: SvgIconProps) => import("react").JSX.Element;
4
+ export declare const TrackSelector: (props: SvgIconProps) => import("react").JSX.Element;
5
+ export declare const DNA: (props: SvgIconProps) => import("react").JSX.Element;
6
+ export declare const Highlighter: (props: SvgIconProps) => import("react").JSX.Element;
7
+ export declare const Cable: (props: SvgIconProps) => import("react").JSX.Element;
package/esm/ui/Icons.js CHANGED
@@ -1,23 +1,24 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import SvgIcon from '@mui/material/SvgIcon';
3
+ import { observer } from 'mobx-react';
3
4
  export { default as InfoIcon } from '@mui/icons-material/Info';
4
5
  // https://materialdesignicons.com/ text-search icon
5
- export function Indexing(props) {
6
+ export const Indexing = observer(function Indexing(props) {
6
7
  return (_jsx(SvgIcon, { ...props, children: _jsx("path", { d: "M19.31 18.9L22.39 22L21 23.39L17.88 20.32C17.19 20.75 16.37 21 15.5 21C13 21 11 19 11 16.5C11 14 13 12 15.5 12C18 12 20 14 20 16.5C20 17.38 19.75 18.21 19.31 18.9M15.5 19C16.88 19 18 17.88 18 16.5C18 15.12 16.88 14 15.5 14C14.12 14 13 15.12 13 16.5C13 17.88 14.12 19 15.5 19M21 4V6H3V4H21M3 16V14H9V16H3M3 11V9H21V11H18.97C17.96 10.37 16.77 10 15.5 10C14.23 10 13.04 10.37 12.03 11H3Z" }) }));
7
- }
8
+ });
8
9
  // format-list-checkbox from https://materialdesignicons.com/
9
- export function TrackSelector(props) {
10
+ export const TrackSelector = observer(function TrackSelector(props) {
10
11
  return (_jsx(SvgIcon, { ...props, children: _jsx("path", { d: "M21 19v-2H8v2h13m0-6v-2H8v2h13M8 7h13V5H8v2M4 5v2h2V5H4M3 5a1 1 0 011-1h2a1 1 0 011 1v2a1 1 0 01-1 1H4a1 1 0 01-1-1V5m1 6v2h2v-2H4m-1 0a1 1 0 011-1h2a1 1 0 011 1v2a1 1 0 01-1 1H4a1 1 0 01-1-1v-2m1 6v2h2v-2H4m-1 0a1 1 0 011-1h2a1 1 0 011 1v2a1 1 0 01-1 1H4a1 1 0 01-1-1v-2z" }) }));
11
- }
12
+ });
12
13
  // dna from https://materialdesignicons.com/
13
- export function DNA(props) {
14
+ export const DNA = observer(function DNA(props) {
14
15
  return (_jsx(SvgIcon, { ...props, children: _jsx("path", { fill: "currentColor", d: "M4,2H6V4C6,5.44 6.68,6.61 7.88,7.78C8.74,8.61 9.89,9.41 11.09,10.2L9.26,11.39C8.27,10.72 7.31,10 6.5,9.21C5.07,7.82 4,6.1 4,4V2M18,2H20V4C20,6.1 18.93,7.82 17.5,9.21C16.09,10.59 14.29,11.73 12.54,12.84C10.79,13.96 9.09,15.05 7.88,16.22C6.68,17.39 6,18.56 6,20V22H4V20C4,17.9 5.07,16.18 6.5,14.79C7.91,13.41 9.71,12.27 11.46,11.16C13.21,10.04 14.91,8.95 16.12,7.78C17.32,6.61 18,5.44 18,4V2M14.74,12.61C15.73,13.28 16.69,14 17.5,14.79C18.93,16.18 20,17.9 20,20V22H18V20C18,18.56 17.32,17.39 16.12,16.22C15.26,15.39 14.11,14.59 12.91,13.8L14.74,12.61M7,3H17V4L16.94,4.5H7.06L7,4V3M7.68,6H16.32C16.08,6.34 15.8,6.69 15.42,7.06L14.91,7.5H9.07L8.58,7.06C8.2,6.69 7.92,6.34 7.68,6M9.09,16.5H14.93L15.42,16.94C15.8,17.31 16.08,17.66 16.32,18H7.68C7.92,17.66 8.2,17.31 8.58,16.94L9.09,16.5M7.06,19.5H16.94L17,20V21H7V20L7.06,19.5Z" }) }));
15
- }
16
+ });
16
17
  // bx-highlight from https://boxicons.com/ (MIT License, Copyright (c) Aniket
17
18
  // Suvarna) — https://github.com/atisawd/boxicons/blob/master/svg/regular/bx-highlight.svg
18
- export function Highlighter(props) {
19
+ export const Highlighter = observer(function Highlighter(props) {
19
20
  return (_jsx(SvgIcon, { ...props, children: _jsx("path", { d: "m20.707 5.826-3.535-3.533a.999.999 0 0 0-1.408-.006L7.096 10.82a1.01 1.01 0 0 0-.273.488l-1.024 4.437L4 18h2.828l1.142-1.129 3.588-.828c.18-.042.345-.133.477-.262l8.667-8.535a1 1 0 0 0 .005-1.42zm-9.369 7.833-2.121-2.12 7.243-7.131 2.12 2.12-7.242 7.131zM4 20h16v2H4z" }) }));
20
- }
21
- export function Cable(props) {
21
+ });
22
+ export const Cable = observer(function Cable(props) {
22
23
  return (_jsx(SvgIcon, { ...props, children: _jsx("path", { d: "M20 5V4c0-.55-.45-1-1-1h-2c-.55 0-1 .45-1 1v1h-1v4c0 .55.45 1 1 1h1v7c0 1.1-.9 2-2 2s-2-.9-2-2V7c0-2.21-1.79-4-4-4S5 4.79 5 7v7H4c-.55 0-1 .45-1 1v4h1v1c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-1h1v-4c0-.55-.45-1-1-1H7V7c0-1.1.9-2 2-2s2 .9 2 2v10c0 2.21 1.79 4 4 4s4-1.79 4-4v-7h1c.55 0 1-.45 1-1V5h-1z" }) }));
23
- }
24
+ });
@@ -1,6 +1,6 @@
1
1
  export { INLINE_MENU_ROW_WIDTH } from './inlineMenuRowWidth.ts';
2
- export declare function ResetToDefaultButton({ disabled, title, onClick, }: {
2
+ export declare const ResetToDefaultButton: ({ disabled, title, onClick, }: {
3
3
  disabled: boolean;
4
4
  title?: string;
5
5
  onClick: () => void;
6
- }): import("react").JSX.Element;
6
+ }) => import("react").JSX.Element;
@@ -1,7 +1,8 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- /* eslint-disable react-refresh/only-export-components -- the shared row width belongs with these leaf menu-row primitives; no component state to fast-refresh */
3
2
  import RestartAltIcon from '@mui/icons-material/RestartAlt';
4
3
  import { IconButton, Tooltip } from '@mui/material';
4
+ /* eslint-disable react-refresh/only-export-components -- the shared row width belongs with these leaf menu-row primitives; no component state to fast-refresh */
5
+ import { observer } from 'mobx-react';
5
6
  // Shared width for inline track-menu control rows (the size sliders and the
6
7
  // wiggle resolution stepper), so the rows line up when they stack in one menu
7
8
  // and can't drift apart.
@@ -10,8 +11,8 @@ export { INLINE_MENU_ROW_WIDTH } from './inlineMenuRowWidth.js';
10
11
  // a span so its Tooltip still shows while disabled at the default. Kept in one
11
12
  // place so the icon/size/padding and the disabled-at-default behavior stay
12
13
  // identical across the sibling controls.
13
- export function ResetToDefaultButton({ disabled, title = 'Reset to default', onClick, }) {
14
+ export const ResetToDefaultButton = observer(function ResetToDefaultButton({ disabled, title = 'Reset to default', onClick, }) {
14
15
  return (_jsx(Tooltip, { title: title, children: _jsx("span", { children: _jsx(IconButton, { size: "small", sx: { p: 0.25 }, disabled: disabled, onClick: () => {
15
16
  onClick();
16
17
  }, children: _jsx(RestartAltIcon, { fontSize: "small" }) }) }) }));
17
- }
18
+ });
@@ -1,15 +1,15 @@
1
1
  import type { ConditionRow, FieldChoice, TextRow } from '../util/jexlFilterRows.ts';
2
2
  import type { Jexl } from '@jbrowse/jexl';
3
3
  export declare function compileError(line: string, jexl: Pick<Jexl, 'compile'>): string | undefined;
4
- export declare function ConditionRowEditor({ row, choices, onChange, onRemove, }: {
4
+ export declare const ConditionRowEditor: ({ row, choices, onChange, onRemove, }: {
5
5
  row: ConditionRow;
6
6
  choices: FieldChoice[];
7
7
  onChange: (row: ConditionRow) => void;
8
8
  onRemove: () => void;
9
- }): import("react").JSX.Element;
10
- export declare function TextRowEditor({ row, jexl, onChange, onRemove, }: {
9
+ }) => import("react").JSX.Element;
10
+ export declare const TextRowEditor: ({ row, jexl, onChange, onRemove, }: {
11
11
  row: TextRow;
12
12
  jexl: Pick<Jexl, 'compile'>;
13
13
  onChange: (row: TextRow) => void;
14
14
  onRemove: () => void;
15
- }): import("react").JSX.Element;
15
+ }) => import("react").JSX.Element;
@@ -1,6 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import CloseIcon from '@mui/icons-material/Close';
3
3
  import { Autocomplete, IconButton, ListItemText, MenuItem, TextField, } from '@mui/material';
4
+ import { observer } from 'mobx-react';
4
5
  import { OPERATORS, stripJexlPrefix, typedField, withField, withOp, } from '../util/jexlFilterRows.js';
5
6
  import { makeStyles } from '../util/tss-react/index.js';
6
7
  import MonospaceTextField from './MonospaceTextField.js';
@@ -42,10 +43,10 @@ export function compileError(line, jexl) {
42
43
  return e instanceof Error ? e.message : String(e);
43
44
  }
44
45
  }
45
- function RemoveButton({ onClick }) {
46
+ const RemoveButton = observer(function RemoveButton({ onClick, }) {
46
47
  return (_jsx(IconButton, { size: "small", "aria-label": "Remove condition", onClick: onClick, children: _jsx(CloseIcon, { fontSize: "small" }) }));
47
- }
48
- function ValueInput({ row, onChange, }) {
48
+ });
49
+ const ValueInput = observer(function ValueInput({ row, onChange, }) {
49
50
  const { classes } = useStyles();
50
51
  const { field, op, value } = row;
51
52
  if (op === 'set' || op === '!set') {
@@ -63,8 +64,8 @@ function ValueInput({ row, onChange, }) {
63
64
  }, renderInput: params => _jsx(TextField, { ...params, placeholder: "Value" }) })) : (_jsx(TextField, { className: classes.value, size: "small", placeholder: op === '~' ? 'Regular expression' : 'Value', type: field?.type === 'number' ? 'number' : 'text', disabled: !field, value: text, onChange: event => {
64
65
  onChange({ ...row, value: event.target.value });
65
66
  } }));
66
- }
67
- export function ConditionRowEditor({ row, choices, onChange, onRemove, }) {
67
+ });
68
+ export const ConditionRowEditor = observer(function ConditionRowEditor({ row, choices, onChange, onRemove, }) {
68
69
  const { classes } = useStyles();
69
70
  const { field } = row;
70
71
  const grouped = choices.some(choice => choice.group);
@@ -81,10 +82,10 @@ export function ConditionRowEditor({ row, choices, onChange, onRemove, }) {
81
82
  }, renderOption: ({ key, ...props }, choice) => (_jsx("li", { ...props, children: _jsx(ListItemText, { primary: choice.label, secondary: choice.description }) }, key)), renderInput: params => _jsx(TextField, { ...params, placeholder: "Field" }) }), _jsx(TextField, { className: classes.op, select: true, size: "small", disabled: !field, value: row.op, helperText: field?.multi ? 'any value' : undefined, onChange: event => {
82
83
  onChange(withOp(row, event.target.value));
83
84
  }, children: OPERATORS[field?.type ?? 'any'].map(({ op, label }) => (_jsx(MenuItem, { value: op, children: label }, op))) }), _jsx(ValueInput, { row: row, onChange: onChange }), _jsx(RemoveButton, { onClick: onRemove })] }));
84
- }
85
- export function TextRowEditor({ row, jexl, onChange, onRemove, }) {
85
+ });
86
+ export const TextRowEditor = observer(function TextRowEditor({ row, jexl, onChange, onRemove, }) {
86
87
  const { classes } = useStyles();
87
88
  return (_jsxs("div", { className: classes.row, children: [_jsx("div", { className: classes.expression, title: "An expression the field pickers cannot show", children: "\u0192" }), _jsx(MonospaceTextField, { className: classes.value, variant: "standard", fullWidth: true, value: row.text, error: compileError(row.text, jexl), onChange: text => {
88
89
  onChange({ ...row, text });
89
90
  } }), _jsx(RemoveButton, { onClick: onRemove })] }));
90
- }
91
+ });
@@ -1,9 +1,10 @@
1
1
  import type { ReactNode } from 'react';
2
- export default function LabeledCheckbox({ checked, onChange, label, className, disabled, size, }: {
2
+ declare const LabeledCheckbox: ({ checked, onChange, label, className, disabled, size, }: {
3
3
  checked: boolean;
4
4
  onChange: (checked: boolean) => void;
5
5
  label: ReactNode;
6
6
  className?: string;
7
7
  disabled?: boolean;
8
8
  size?: 'small' | 'medium';
9
- }): import("react").JSX.Element;
9
+ }) => import("react").JSX.Element;
10
+ export default LabeledCheckbox;
@@ -1,7 +1,9 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { Checkbox, FormControlLabel } from '@mui/material';
3
- export default function LabeledCheckbox({ checked, onChange, label, className, disabled, size, }) {
3
+ import { observer } from 'mobx-react';
4
+ const LabeledCheckbox = observer(function LabeledCheckbox({ checked, onChange, label, className, disabled, size, }) {
4
5
  return (_jsx(FormControlLabel, { className: className, disabled: disabled, control: _jsx(Checkbox, { size: size, checked: checked, onChange: event => {
5
6
  onChange(event.target.checked);
6
7
  } }), label: label }));
7
- }
8
+ });
9
+ export default LabeledCheckbox;
@@ -1,4 +1,13 @@
1
1
  import type { ComponentProps } from 'react';
2
- declare const Lazy: import("react").LazyExoticComponent<typeof import("./BaseTooltip.tsx").default>;
3
- export default function LazyBaseTooltip(props: ComponentProps<typeof Lazy>): import("react").JSX.Element;
4
- export {};
2
+ declare const Lazy: import("react").LazyExoticComponent<({ clientPoint: clientPointCoords, anchor, id, children, placement, }: {
3
+ placement?: import("./BaseTooltip.tsx").TooltipPlacement;
4
+ clientPoint?: {
5
+ x: number;
6
+ y: number;
7
+ };
8
+ anchor?: HTMLElement;
9
+ id?: string;
10
+ children: React.ReactNode;
11
+ }) => import("react").ReactPortal | null>;
12
+ declare const LazyBaseTooltip: (props: ComponentProps<typeof Lazy>) => import("react").JSX.Element;
13
+ export default LazyBaseTooltip;
@@ -1,9 +1,11 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { Suspense, lazy } from 'react';
3
+ import { observer } from 'mobx-react';
3
4
  // The tooltip, behind its own chunk: @floating-ui is ~266KB and this is what
4
5
  // lets the ui barrel export it without putting that on the startup path. A
5
6
  // consumer that wants the eager component deep-imports './BaseTooltip.tsx'.
6
7
  const Lazy = lazy(() => import('./BaseTooltip.js'));
7
- export default function LazyBaseTooltip(props) {
8
+ const LazyBaseTooltip = observer(function LazyBaseTooltip(props) {
8
9
  return (_jsx(Suspense, { fallback: null, children: _jsx(Lazy, { ...props }) }));
9
- }
10
+ });
11
+ export default LazyBaseTooltip;
@@ -25,6 +25,7 @@ function glyphPathData(shape, size, x, y) {
25
25
  //
26
26
  // The shape fills the `size` box from (x, y) so a caller can lay swatches out on
27
27
  // a fixed pitch.
28
+ // eslint-disable-next-line no-restricted-syntax -- drawn inside a frozen SVG figure
28
29
  export function LegendSwatchGlyph({ swatch, size, x = 0, y = 0, }) {
29
30
  return swatch.shape ? (_jsx("path", { d: glyphPathData(swatch.shape, size, x, y), fill: swatch.color })) : (_jsx("rect", { x: x, y: y, width: size, height: size, fill: swatch.color }));
30
31
  }
@@ -1 +1,2 @@
1
- export default function LoadingDots(): import("react").JSX.Element;
1
+ declare const LoadingDots: () => import("react").JSX.Element;
2
+ export default LoadingDots;
@@ -1,4 +1,5 @@
1
1
  import { 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 { dot1, dot2, dot3 } from './loadingDotKeyframes.js';
4
5
  const useStyles = makeStyles()({
@@ -24,7 +25,8 @@ const useStyles = makeStyles()({
24
25
  },
25
26
  },
26
27
  });
27
- export default function LoadingDots() {
28
+ const LoadingDots = observer(function LoadingDots() {
28
29
  const { classes } = useStyles();
29
30
  return (_jsxs("span", { className: classes.dots, children: [_jsx("span", { children: "." }), _jsx("span", { children: "." }), _jsx("span", { children: "." })] }));
30
- }
31
+ });
32
+ export default LoadingDots;
@@ -1,6 +1,9 @@
1
1
  import type { TypographyProps } from '@mui/material';
2
2
  interface Props extends TypographyProps {
3
3
  message?: string;
4
+ /** false for a label that stands in for work not yet started, such as an
5
+ * off-screen view's placeholder, which a capture must not wait on */
6
+ busy?: boolean;
4
7
  children?: never;
5
8
  }
6
9
  /**
@@ -19,5 +22,5 @@ interface Props extends TypographyProps {
19
22
  * should carry the attribute too — see `isPageBusyInPage` in
20
23
  * `@jbrowse/capture`, which is what reads it.
21
24
  */
22
- export default function LoadingEllipses({ message, variant, ...rest }: Props): import("react").JSX.Element;
23
- export {};
25
+ declare const LoadingEllipses: ({ message, variant, busy, ...rest }: Props) => import("react").JSX.Element;
26
+ export default LoadingEllipses;
@@ -1,5 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Typography } from '@mui/material';
3
+ import { observer } from 'mobx-react';
3
4
  import LoadingDots from './LoadingDots.js';
4
5
  /**
5
6
  * The label every part of the app shows while it is working, and — through
@@ -17,6 +18,7 @@ import LoadingDots from './LoadingDots.js';
17
18
  * should carry the attribute too — see `isPageBusyInPage` in
18
19
  * `@jbrowse/capture`, which is what reads it.
19
20
  */
20
- export default function LoadingEllipses({ message, variant = 'body2', ...rest }) {
21
- return (_jsxs(Typography, { ...rest, variant: variant, "data-busy": "true", children: [message || 'Loading', _jsx(LoadingDots, {})] }));
22
- }
21
+ const LoadingEllipses = observer(function LoadingEllipses({ message, variant = 'body2', busy = true, ...rest }) {
22
+ return (_jsxs(Typography, { ...rest, variant: variant, "data-busy": busy || undefined, children: [message || 'Loading', _jsx(LoadingDots, {})] }));
23
+ });
24
+ export default LoadingEllipses;
@@ -12,7 +12,7 @@
12
12
  * one `setTimeout` per loading pulse, which is the floor for these semantics.
13
13
  */
14
14
  export declare function useDelayedFlag(active: boolean, delayMs: number): boolean;
15
- export default function LoadingOverlay({ statusMessage, progress, isVisible, immediate, canceled, onCancel, onRetry, }: {
15
+ declare const LoadingOverlay: ({ statusMessage, progress, isVisible, immediate, canceled, onCancel, onRetry, }: {
16
16
  statusMessage?: string;
17
17
  progress?: number;
18
18
  isVisible?: boolean;
@@ -20,4 +20,5 @@ export default function LoadingOverlay({ statusMessage, progress, isVisible, imm
20
20
  canceled?: boolean;
21
21
  onCancel?: () => void;
22
22
  onRetry?: () => void;
23
- }): import("react").JSX.Element | null;
23
+ }) => import("react").JSX.Element | null;
24
+ export default LoadingOverlay;