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

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 (637) hide show
  1. package/README.md +1709 -390
  2. package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.d.ts +3 -2
  3. package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +5 -5
  4. package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.d.ts +3 -5
  5. package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +34 -29
  6. package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCard.js +1 -4
  7. package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.d.ts +11 -0
  8. package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.js +37 -14
  9. package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.d.ts +1 -1
  10. package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.js +15 -31
  11. package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.d.ts +4 -3
  12. package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.js +12 -25
  13. package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetailsFrame.d.ts +11 -0
  14. package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetailsFrame.js +11 -0
  15. package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldActionsButton.d.ts +8 -0
  16. package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldActionsButton.js +24 -0
  17. package/esm/BaseFeatureWidget/BaseFeatureDetail/Formatter.js +6 -4
  18. package/esm/BaseFeatureWidget/BaseFeatureDetail/ParentFeatureLine.d.ts +4 -0
  19. package/esm/BaseFeatureWidget/BaseFeatureDetail/ParentFeatureLine.js +17 -0
  20. package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.d.ts +3 -2
  21. package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +5 -3
  22. package/esm/BaseFeatureWidget/BaseFeatureDetail/index.d.ts +6 -2
  23. package/esm/BaseFeatureWidget/BaseFeatureDetail/index.js +7 -18
  24. package/esm/BaseFeatureWidget/BaseFeatureDetail/jexlFilterActions.d.ts +16 -0
  25. package/esm/BaseFeatureWidget/BaseFeatureDetail/jexlFilterActions.js +49 -0
  26. package/esm/BaseFeatureWidget/BaseFeatureDetail/util.d.ts +0 -8
  27. package/esm/BaseFeatureWidget/BaseFeatureDetail/util.js +6 -29
  28. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.js +7 -34
  29. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.d.ts +2 -2
  30. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.js +2 -2
  31. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.js +3 -1
  32. package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.d.ts +12 -0
  33. package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.js +12 -5
  34. package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceData.js +8 -5
  35. package/esm/BaseFeatureWidget/configSchema.d.ts +1 -1
  36. package/esm/BaseFeatureWidget/formatDetails.d.ts +13 -29
  37. package/esm/BaseFeatureWidget/formatDetails.js +62 -83
  38. package/esm/BaseFeatureWidget/index.d.ts +2 -1
  39. package/esm/BaseFeatureWidget/stateModelFactory.d.ts +42 -29
  40. package/esm/BaseFeatureWidget/stateModelFactory.js +98 -98
  41. package/esm/BaseFeatureWidget/types.d.ts +12 -6
  42. package/esm/BaseFeatureWidget/util.d.ts +0 -10
  43. package/esm/BaseFeatureWidget/util.js +0 -17
  44. package/esm/CorePlugin.js +34 -3
  45. package/esm/PluginLoader.d.ts +24 -13
  46. package/esm/PluginLoader.js +167 -51
  47. package/esm/PluginManager.d.ts +130 -24
  48. package/esm/PluginManager.js +180 -32
  49. package/esm/ReExports/MuiDataGridReExports.d.ts +1 -0
  50. package/esm/ReExports/MuiDataGridReExports.js +2 -2
  51. package/esm/ReExports/coreModules.generated.d.ts +2 -0
  52. package/esm/ReExports/coreModules.generated.js +530 -0
  53. package/esm/ReExports/coreWorkerModules.generated.d.ts +2 -0
  54. package/esm/ReExports/coreWorkerModules.generated.js +490 -0
  55. package/esm/ReExports/frameworkModules.d.ts +2 -0
  56. package/esm/ReExports/frameworkModules.js +68 -0
  57. package/esm/ReExports/frameworkShared.d.ts +12 -0
  58. package/esm/ReExports/frameworkShared.js +16 -0
  59. package/esm/ReExports/frameworkWorkerModules.generated.d.ts +2 -0
  60. package/esm/ReExports/frameworkWorkerModules.generated.js +130 -0
  61. package/esm/ReExports/list.js +528 -79
  62. package/esm/ReExports/modules.d.ts +1 -1
  63. package/esm/ReExports/modules.js +10 -165
  64. package/esm/ReExports/registry.d.ts +1 -0
  65. package/esm/ReExports/registry.js +23 -5
  66. package/esm/ReExports/uiStub.d.ts +3 -0
  67. package/esm/ReExports/uiStub.js +33 -0
  68. package/esm/ReExports/workerModules.d.ts +2 -0
  69. package/esm/ReExports/workerModules.js +11 -0
  70. package/esm/TextSearch/TextSearchManager.d.ts +27 -13
  71. package/esm/TextSearch/TextSearchManager.js +77 -36
  72. package/esm/TextSearch/places.d.ts +12 -0
  73. package/esm/TextSearch/places.js +94 -0
  74. package/esm/assemblyManager/assembly.d.ts +21 -19
  75. package/esm/assemblyManager/assembly.js +28 -26
  76. package/esm/assemblyManager/assemblyAdapters.d.ts +1 -1
  77. package/esm/assemblyManager/assemblyAdapters.js +8 -2
  78. package/esm/assemblyManager/assemblyConfigSchema.d.ts +31 -90
  79. package/esm/assemblyManager/assemblyConfigSchema.js +35 -47
  80. package/esm/assemblyManager/assemblyManager.d.ts +35 -180
  81. package/esm/assemblyManager/assemblyManager.js +47 -51
  82. package/esm/assemblyManager/expandAssemblyConfigShorthand.d.ts +25 -18
  83. package/esm/assemblyManager/expandAssemblyConfigShorthand.js +78 -49
  84. package/esm/assemblyManager/geneticCodes.js +2 -5
  85. package/esm/assemblyManager/getSequenceAdapterConfig.d.ts +10 -0
  86. package/esm/assemblyManager/getSequenceAdapterConfig.js +10 -0
  87. package/esm/assemblyManager/indexAssemblyNames.d.ts +9 -0
  88. package/esm/assemblyManager/indexAssemblyNames.js +22 -0
  89. package/esm/assemblyManager/loadRefNameMap.d.ts +1 -1
  90. package/esm/assemblyManager/loadRefNameMap.js +4 -9
  91. package/esm/assemblyManager/refNameMapKey.d.ts +7 -0
  92. package/esm/assemblyManager/refNameMapKey.js +12 -0
  93. package/esm/checkPlugins.d.ts +2 -0
  94. package/esm/checkPlugins.js +38 -17
  95. package/esm/configuration/bamIndexFields.d.ts +49 -0
  96. package/esm/configuration/bamIndexFields.js +41 -0
  97. package/esm/configuration/configurationSchema.d.ts +101 -71
  98. package/esm/configuration/configurationSchema.js +207 -134
  99. package/esm/configuration/configurationSchemaUnion.d.ts +39 -0
  100. package/esm/configuration/configurationSchemaUnion.js +56 -0
  101. package/esm/configuration/configurationSlot.d.ts +150 -60
  102. package/esm/configuration/configurationSlot.js +103 -75
  103. package/esm/configuration/fillLocations.d.ts +14 -0
  104. package/esm/configuration/fillLocations.js +14 -0
  105. package/esm/configuration/formatAboutConfigSchema.d.ts +7 -21
  106. package/esm/configuration/formatDetailsConfigSchema.d.ts +11 -37
  107. package/esm/configuration/formatDetailsConfigSchema.js +10 -13
  108. package/esm/configuration/fullConfSnapshot.d.ts +4 -19
  109. package/esm/configuration/fullConfSnapshot.js +30 -52
  110. package/esm/configuration/getConf.d.ts +45 -41
  111. package/esm/configuration/getConf.js +111 -44
  112. package/esm/configuration/index.d.ts +26 -11
  113. package/esm/configuration/index.js +16 -7
  114. package/esm/configuration/indexType.d.ts +26 -0
  115. package/esm/configuration/indexType.js +38 -0
  116. package/esm/configuration/mergeFormatCallbacks.d.ts +6 -7
  117. package/esm/configuration/mergeFormatCallbacks.js +13 -10
  118. package/esm/configuration/plot.d.ts +61 -0
  119. package/esm/configuration/plot.js +142 -0
  120. package/esm/configuration/readConfObject.d.ts +2 -24
  121. package/esm/configuration/readConfObject.js +20 -63
  122. package/esm/configuration/requirements.d.ts +37 -0
  123. package/esm/configuration/requirements.js +88 -0
  124. package/esm/configuration/schemaRegistry.d.ts +32 -15
  125. package/esm/configuration/schemaRegistry.js +33 -35
  126. package/esm/configuration/schemaTypes.d.ts +21 -5
  127. package/esm/configuration/schemaTypes.js +66 -55
  128. package/esm/configuration/slotFacade.d.ts +12 -29
  129. package/esm/configuration/slotFacade.js +44 -23
  130. package/esm/configuration/snapshotPreprocess.d.ts +43 -0
  131. package/esm/configuration/snapshotPreprocess.js +161 -0
  132. package/esm/configuration/tabixIndexFields.d.ts +30 -4
  133. package/esm/configuration/tabixIndexFields.js +21 -4
  134. package/esm/configuration/tabixShorthand.d.ts +34 -17
  135. package/esm/configuration/tabixShorthand.js +49 -22
  136. package/esm/configuration/types.d.ts +182 -43
  137. package/esm/configuration/uriShorthand.d.ts +9 -0
  138. package/esm/configuration/uriShorthand.js +16 -0
  139. package/esm/data_adapters/BaseAdapter/BaseAdapter.d.ts +13 -19
  140. package/esm/data_adapters/BaseAdapter/BaseAdapter.js +12 -19
  141. package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +40 -2
  142. package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +68 -5
  143. package/esm/data_adapters/BaseAdapter/featureDensity.d.ts +40 -0
  144. package/esm/data_adapters/BaseAdapter/featureDensity.js +31 -0
  145. package/esm/data_adapters/BaseAdapter/index.d.ts +23 -3
  146. package/esm/data_adapters/BaseAdapter/index.js +1 -0
  147. package/esm/data_adapters/BaseAdapter/rowSources.d.ts +37 -0
  148. package/esm/data_adapters/BaseAdapter/rowSources.js +7 -0
  149. package/esm/data_adapters/BaseAdapter/stats.d.ts +33 -1
  150. package/esm/data_adapters/BaseAdapter/stats.js +52 -13
  151. package/esm/data_adapters/BaseAdapter/types.d.ts +8 -12
  152. package/esm/data_adapters/BaseAdapter/zoomRange.d.ts +10 -0
  153. package/esm/data_adapters/CytobandAdapter/CytobandAdapter.js +1 -1
  154. package/esm/data_adapters/CytobandAdapter/configSchema.d.ts +7 -11
  155. package/esm/data_adapters/CytobandAdapter/configSchema.js +3 -17
  156. package/esm/data_adapters/dataAdapterCache.d.ts +19 -2
  157. package/esm/data_adapters/dataAdapterCache.js +44 -10
  158. package/esm/data_adapters/getFeatureAdapter.d.ts +6 -4
  159. package/esm/data_adapters/getFeatureAdapter.js +8 -8
  160. package/esm/data_adapters/getSequenceSubAdapter.d.ts +7 -9
  161. package/esm/data_adapters/getSequenceSubAdapter.js +8 -10
  162. package/esm/pluggableElementTypes/AdapterType.d.ts +8 -8
  163. package/esm/pluggableElementTypes/AdapterType.js +1 -1
  164. package/esm/pluggableElementTypes/DisplayType.d.ts +53 -16
  165. package/esm/pluggableElementTypes/DisplayType.js +28 -12
  166. package/esm/pluggableElementTypes/LazyStateModelElement.d.ts +32 -0
  167. package/esm/pluggableElementTypes/LazyStateModelElement.js +77 -0
  168. package/esm/pluggableElementTypes/PluggableElementBase.d.ts +3 -5
  169. package/esm/pluggableElementTypes/PluggableElementBase.js +3 -5
  170. package/esm/pluggableElementTypes/RpcMethodType.d.ts +11 -1
  171. package/esm/pluggableElementTypes/RpcMethodType.js +25 -9
  172. package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.d.ts +1 -2
  173. package/esm/pluggableElementTypes/TextSearchAdapterType.d.ts +7 -7
  174. package/esm/pluggableElementTypes/ViewType.d.ts +20 -4
  175. package/esm/pluggableElementTypes/ViewType.js +32 -4
  176. package/esm/pluggableElementTypes/WidgetType.d.ts +6 -0
  177. package/esm/pluggableElementTypes/WidgetType.js +6 -0
  178. package/esm/pluggableElementTypes/addMenuItems.d.ts +3 -2
  179. package/esm/pluggableElementTypes/extendElementType.d.ts +1 -2
  180. package/esm/pluggableElementTypes/extendElementType.js +9 -5
  181. package/esm/pluggableElementTypes/index.d.ts +2 -1
  182. package/esm/pluggableElementTypes/index.js +2 -9
  183. package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +19 -9
  184. package/esm/pluggableElementTypes/models/BaseDisplayModel.d.ts +122 -28
  185. package/esm/pluggableElementTypes/models/BaseDisplayModel.js +155 -11
  186. package/esm/pluggableElementTypes/models/BaseTrackModel.d.ts +65 -16
  187. package/esm/pluggableElementTypes/models/BaseTrackModel.js +179 -117
  188. package/esm/pluggableElementTypes/models/BaseViewModel.d.ts +87 -18
  189. package/esm/pluggableElementTypes/models/BaseViewModel.js +54 -11
  190. package/esm/pluggableElementTypes/models/InternetAccountModel.d.ts +26 -16
  191. package/esm/pluggableElementTypes/models/assertDisplayContract.d.ts +15 -11
  192. package/esm/pluggableElementTypes/models/assertDisplayContract.js +25 -32
  193. package/esm/pluggableElementTypes/models/baseConnectionConfig.d.ts +22 -18
  194. package/esm/pluggableElementTypes/models/baseConnectionConfig.js +5 -5
  195. package/esm/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +26 -31
  196. package/esm/pluggableElementTypes/models/baseTrackConfig.d.ts +108 -147
  197. package/esm/pluggableElementTypes/models/baseTrackConfig.js +96 -73
  198. package/esm/pluggableElementTypes/models/components/SaveTrackData.js +4 -6
  199. package/esm/pluggableElementTypes/models/components/fetchTrackData.d.ts +3 -4
  200. package/esm/pluggableElementTypes/models/components/fetchTrackData.js +3 -3
  201. package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.d.ts +23 -13
  202. package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.js +80 -48
  203. package/esm/pluggableElementTypes/models/index.d.ts +2 -3
  204. package/esm/pluggableElementTypes/models/index.js +2 -3
  205. package/esm/pluggableElementTypes/models/migrateTrackConfig.d.ts +15 -1
  206. package/esm/pluggableElementTypes/models/migrateTrackConfig.js +85 -25
  207. package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.d.ts +4 -3
  208. package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.js +141 -19
  209. package/esm/pluggableElementTypes/models/saveTrackFileTypes/types.d.ts +3 -3
  210. package/esm/pluginDefinitions.d.ts +34 -7
  211. package/esm/pluginDefinitions.js +54 -20
  212. package/esm/rpc/BaseRpcDriver.d.ts +2 -2
  213. package/esm/rpc/BaseRpcDriver.js +25 -30
  214. package/esm/rpc/MainThreadRpcDriver.d.ts +2 -2
  215. package/esm/rpc/MainThreadRpcDriver.js +13 -8
  216. package/esm/rpc/RpcClient.d.ts +18 -6
  217. package/esm/rpc/RpcClient.js +51 -16
  218. package/esm/rpc/RpcManager.d.ts +14 -10
  219. package/esm/rpc/RpcManager.js +11 -1
  220. package/esm/rpc/RpcRegistry.d.ts +40 -7
  221. package/esm/rpc/RpcServer.d.ts +3 -1
  222. package/esm/rpc/RpcServer.js +19 -12
  223. package/esm/rpc/WebWorkerRpcDriver.d.ts +11 -4
  224. package/esm/rpc/WebWorkerRpcDriver.js +64 -68
  225. package/esm/rpc/byteBudget.d.ts +20 -5
  226. package/esm/rpc/byteBudget.js +16 -5
  227. package/esm/rpc/configSchema.d.ts +7 -21
  228. package/esm/rpc/coreRpcMethods.d.ts +4 -0
  229. package/esm/rpc/coreRpcMethods.js +4 -0
  230. package/esm/rpc/methods/CoreGetEncodedFeature.d.ts +13 -0
  231. package/esm/rpc/methods/CoreGetEncodedFeature.js +32 -0
  232. package/esm/rpc/methods/CoreGetEncodedLayers.d.ts +16 -0
  233. package/esm/rpc/methods/CoreGetEncodedLayers.js +59 -0
  234. package/esm/rpc/methods/CoreGetExportData.js +3 -4
  235. package/esm/rpc/methods/CoreGetFeatureDensity.d.ts +11 -0
  236. package/esm/rpc/methods/CoreGetFeatureDensity.js +22 -0
  237. package/esm/rpc/methods/CoreGetFeatures.js +3 -5
  238. package/esm/rpc/methods/CoreGetRefNames.js +2 -12
  239. package/esm/rpc/methods/CoreGetRegionByteEstimate.js +1 -1
  240. package/esm/rpc/methods/CoreGetSequence.js +2 -2
  241. package/esm/rpc/methods/CoreLoadAdapterCode.d.ts +13 -0
  242. package/esm/rpc/methods/CoreLoadAdapterCode.js +16 -0
  243. package/esm/rpc/methods/layerFeatures.d.ts +33 -0
  244. package/esm/rpc/methods/layerFeatures.js +29 -0
  245. package/esm/svg/SvgExport.js +6 -7
  246. package/esm/svg/SvgThemeProviders.d.ts +12 -0
  247. package/esm/svg/SvgThemeProviders.js +15 -0
  248. package/esm/svg/exportViewSvg.d.ts +28 -0
  249. package/esm/svg/exportViewSvg.js +13 -0
  250. package/esm/svg/normalizeSvgMarkup.d.ts +7 -0
  251. package/esm/svg/normalizeSvgMarkup.js +99 -0
  252. package/esm/svg/serializeSvg.d.ts +7 -0
  253. package/esm/svg/serializeSvg.js +11 -0
  254. package/esm/svg/svgId.d.ts +1 -1
  255. package/esm/svg/svgId.js +1 -1
  256. package/esm/svg/svgReady.d.ts +9 -7
  257. package/esm/svg/svgReady.js +8 -7
  258. package/esm/svg/trackNames.d.ts +7 -5
  259. package/esm/svg/trackNames.js +12 -9
  260. package/esm/svg/wrapSvgExport.js +6 -74
  261. package/esm/ui/AddCustomPluginDialog.js +3 -8
  262. package/esm/ui/AppReadyMarker.d.ts +45 -0
  263. package/esm/ui/AppReadyMarker.js +89 -0
  264. package/esm/ui/BaseExportSvgDialog.d.ts +1 -1
  265. package/esm/ui/CascadingMenu.js +181 -104
  266. package/esm/ui/DropDownMenu.js +2 -1
  267. package/esm/ui/ErrorBanner.js +1 -1
  268. package/esm/ui/ErrorBoundary.d.ts +2 -2
  269. package/esm/ui/ErrorMessageStackTraceContents.js +2 -1
  270. package/esm/ui/ErrorMessageStackTraceDialog.js +5 -11
  271. package/esm/ui/ExportSvgDialog.d.ts +1 -1
  272. package/esm/ui/FileDropZone.js +2 -1
  273. package/esm/ui/FileSelector/useInternetAccounts.d.ts +156 -96
  274. package/esm/ui/HoverMenu.d.ts +1 -2
  275. package/esm/ui/HoverMenu.js +6 -3
  276. package/esm/ui/JexlFilterDialog.d.ts +13 -10
  277. package/esm/ui/JexlFilterDialog.js +122 -50
  278. package/esm/ui/JexlFilterRowEditors.d.ts +15 -0
  279. package/esm/ui/JexlFilterRowEditors.js +90 -0
  280. package/esm/ui/LazyBaseTooltip.d.ts +4 -0
  281. package/esm/ui/LazyBaseTooltip.js +9 -0
  282. package/esm/ui/LegendSwatchGlyph.js +26 -21
  283. package/esm/ui/LoadingOverlay.d.ts +14 -0
  284. package/esm/ui/LoadingOverlay.js +4 -2
  285. package/esm/ui/MenuTypes.d.ts +23 -53
  286. package/esm/ui/MenuTypes.js +3 -0
  287. package/esm/ui/MonospaceTextField.d.ts +2 -1
  288. package/esm/ui/MonospaceTextField.js +23 -20
  289. package/esm/ui/PaletteContext.d.ts +10 -5
  290. package/esm/ui/PaletteContext.js +44 -6
  291. package/esm/ui/RefNameAutocomplete/SearchOption.d.ts +13 -0
  292. package/esm/ui/RefNameAutocomplete/SearchOption.js +45 -0
  293. package/esm/ui/RefNameAutocomplete/index.d.ts +1 -2
  294. package/esm/ui/RefNameAutocomplete/index.js +8 -2
  295. package/esm/ui/RefNameAutocomplete/util.d.ts +13 -0
  296. package/esm/ui/RefNameAutocomplete/util.js +42 -1
  297. package/esm/ui/ResizeHandle.d.ts +3 -1
  298. package/esm/ui/ResizeHandle.js +44 -11
  299. package/esm/ui/ScrollChrome.d.ts +13 -0
  300. package/esm/ui/ScrollChrome.js +11 -0
  301. package/esm/ui/ScrollEdgeShadow.d.ts +6 -9
  302. package/esm/ui/ScrollEdgeShadow.js +14 -35
  303. package/esm/ui/ScrollZoomToggle.d.ts +4 -27
  304. package/esm/ui/ScrollZoomToggle.js +34 -51
  305. package/esm/ui/SessionJsonPanel.d.ts +3 -0
  306. package/esm/ui/SessionJsonPanel.js +14 -0
  307. package/esm/ui/SettingsChangesTable.d.ts +1 -0
  308. package/esm/ui/SettingsChangesTable.js +49 -11
  309. package/esm/ui/ShareLinkField.d.ts +1 -3
  310. package/esm/ui/ShareLinkField.js +13 -40
  311. package/esm/ui/SizeSliderRow.d.ts +1 -3
  312. package/esm/ui/SizeSliderRow.js +4 -6
  313. package/esm/ui/SnackbarModel.js +79 -67
  314. package/esm/ui/StatusProgressBar.js +2 -2
  315. package/esm/ui/SvgColorLegend.d.ts +9 -4
  316. package/esm/ui/SvgColorLegend.js +82 -41
  317. package/esm/ui/VerticalScrollbar.d.ts +13 -34
  318. package/esm/ui/VerticalScrollbar.js +29 -83
  319. package/esm/ui/ViewLoadingScreen.d.ts +5 -4
  320. package/esm/ui/ViewLoadingScreen.js +8 -32
  321. package/esm/ui/colorScale.d.ts +92 -0
  322. package/esm/ui/colorScale.js +72 -0
  323. package/esm/ui/colors.d.ts +64 -0
  324. package/esm/ui/colors.js +230 -1
  325. package/esm/ui/hoverBoxStyle.d.ts +14 -2
  326. package/esm/ui/hoverBoxStyle.js +17 -2
  327. package/esm/ui/index.d.ts +12 -12
  328. package/esm/ui/index.js +14 -22
  329. package/esm/ui/launchViewMenu.js +15 -5
  330. package/esm/ui/legendMenuItem.d.ts +10 -32
  331. package/esm/ui/legendMenuItem.js +9 -36
  332. package/esm/ui/legendSpec.d.ts +15 -8
  333. package/esm/ui/legendSpec.js +14 -23
  334. package/esm/ui/makeSizeMenu.d.ts +0 -6
  335. package/esm/ui/makeSizeMenu.js +6 -30
  336. package/esm/ui/measureLegendText.js +1 -1
  337. package/esm/ui/menuItemAdornment.d.ts +9 -20
  338. package/esm/ui/menuItemAdornment.js +10 -32
  339. package/esm/ui/menuItems.d.ts +2 -7
  340. package/esm/ui/menuItems.js +1 -6
  341. package/esm/ui/multiTrackMenuItems.d.ts +6 -0
  342. package/esm/ui/palette.d.ts +118 -116
  343. package/esm/ui/palette.js +114 -75
  344. package/esm/ui/replaceViewAction.d.ts +1 -1
  345. package/esm/ui/replaceViewAction.js +1 -1
  346. package/esm/ui/theme.d.ts +43 -119
  347. package/esm/ui/theme.js +62 -78
  348. package/esm/ui/toggleMenuItems.d.ts +1 -3
  349. package/esm/ui/toggleMenuItems.js +6 -5
  350. package/esm/ui/useAssemblySelection.d.ts +4 -4
  351. package/esm/ui/viewHeaderHeight.d.ts +1 -0
  352. package/esm/ui/viewHeaderHeight.js +1 -0
  353. package/esm/util/Base1DUtils.d.ts +5 -3
  354. package/esm/util/Base1DUtils.js +14 -6
  355. package/esm/util/Base1DViewModel.d.ts +2 -1
  356. package/esm/util/Base1DViewModel.js +3 -2
  357. package/esm/util/SvgCanvas.d.ts +15 -13
  358. package/esm/util/SvgCanvas.js +76 -56
  359. package/esm/util/TimeTraveller.d.ts +3 -0
  360. package/esm/util/TimeTraveller.js +34 -2
  361. package/esm/util/aborting.d.ts +39 -0
  362. package/esm/util/aborting.js +88 -6
  363. package/esm/util/adapterMetadata.d.ts +1 -1
  364. package/esm/util/adapterMetadata.js +6 -5
  365. package/esm/util/addAndShowTrack.d.ts +2 -5
  366. package/esm/util/addAndShowTrack.js +5 -1
  367. package/esm/util/addRelativeUris.d.ts +17 -5
  368. package/esm/util/addRelativeUris.js +46 -10
  369. package/esm/util/addTrackFromWidget.d.ts +2 -5
  370. package/esm/util/addTrackFromWidget.js +5 -4
  371. package/esm/util/aggregateFieldName.d.ts +10 -0
  372. package/esm/util/aggregateFieldName.js +8 -0
  373. package/esm/util/analytics.js +46 -13
  374. package/esm/util/animationAllowed.d.ts +9 -0
  375. package/esm/util/animationAllowed.js +13 -0
  376. package/esm/util/applyRowResizeWheel.d.ts +10 -5
  377. package/esm/util/applyRowResizeWheel.js +10 -21
  378. package/esm/util/bandHeight.d.ts +10 -0
  379. package/esm/util/bandHeight.js +29 -0
  380. package/esm/util/bandLayout.d.ts +4 -4
  381. package/esm/util/bandLayout.js +4 -4
  382. package/esm/util/baseDisplayConfig.d.ts +8 -0
  383. package/esm/util/baseDisplayConfig.js +27 -0
  384. package/esm/util/bezierConnector.d.ts +4 -3
  385. package/esm/util/bezierConnector.js +38 -45
  386. package/esm/util/bgzfWorkerPool.d.ts +20 -74
  387. package/esm/util/bgzfWorkerPool.js +20 -74
  388. package/esm/util/binnedAggregate.d.ts +17 -0
  389. package/esm/util/binnedAggregate.js +275 -0
  390. package/esm/util/cacheBudgets.d.ts +22 -19
  391. package/esm/util/cacheBudgets.js +22 -19
  392. package/esm/util/cachedSetup.d.ts +16 -6
  393. package/esm/util/cachedSetup.js +108 -38
  394. package/esm/util/categoricalField.d.ts +56 -0
  395. package/esm/util/categoricalField.js +73 -0
  396. package/esm/util/cellMatches.d.ts +23 -0
  397. package/esm/util/cellMatches.js +264 -0
  398. package/esm/util/cellsStep.d.ts +29 -0
  399. package/esm/util/cellsStep.js +437 -0
  400. package/esm/util/clampToContig.d.ts +17 -0
  401. package/esm/util/clampToContig.js +19 -0
  402. package/esm/util/coarseStripHTML.js +1 -2
  403. package/esm/util/color/cssColorsLevel4.d.ts +1 -0
  404. package/esm/util/color/cssColorsLevel4.js +1 -0
  405. package/esm/util/color/index.d.ts +5 -3
  406. package/esm/util/color/index.js +7 -4
  407. package/esm/util/colorBits.d.ts +3 -3
  408. package/esm/util/colorBits.js +19 -44
  409. package/esm/util/colorRamp.d.ts +49 -5
  410. package/esm/util/colorRamp.js +169 -18
  411. package/esm/util/colorScale.d.ts +156 -0
  412. package/esm/util/colorScale.js +243 -0
  413. package/esm/util/colorSchemes.d.ts +21 -0
  414. package/esm/util/colorSchemes.js +30 -0
  415. package/esm/util/copyToClipboard.js +8 -1
  416. package/esm/util/{createStopTokenRotation.d.ts → createAbortRotation.d.ts} +21 -23
  417. package/esm/util/{createStopTokenRotation.js → createAbortRotation.js} +21 -52
  418. package/esm/util/createSvgRasterCanvas.d.ts +10 -0
  419. package/esm/util/cssColorParse.d.ts +15 -0
  420. package/esm/util/cssColorParse.js +53 -0
  421. package/esm/util/diagonalizeRegions.d.ts +2 -3
  422. package/esm/util/diagonalizeRegions.js +8 -13
  423. package/esm/util/expandLooseSearchIndex.d.ts +19 -0
  424. package/esm/util/expandLooseSearchIndex.js +29 -0
  425. package/esm/util/featureTable.d.ts +224 -0
  426. package/esm/util/featureTable.js +366 -0
  427. package/esm/util/featureTransforms.d.ts +81 -0
  428. package/esm/util/featureTransforms.js +1231 -0
  429. package/esm/util/featureTypes.d.ts +24 -0
  430. package/esm/util/featureTypes.js +35 -0
  431. package/esm/util/fetchAndMaybeUnzip.js +16 -9
  432. package/esm/util/fetchContext.d.ts +7 -8
  433. package/esm/util/fetchContext.js +3 -3
  434. package/esm/util/fetchHub.d.ts +4 -2
  435. package/esm/util/fetchHub.js +2 -2
  436. package/esm/util/fetchPhases.d.ts +10 -10
  437. package/esm/util/fetchSeq.d.ts +2 -3
  438. package/esm/util/fetchSeq.js +2 -2
  439. package/esm/util/fieldReader.d.ts +17 -0
  440. package/esm/util/fieldReader.js +62 -0
  441. package/esm/util/formatBytes.js +1 -1
  442. package/esm/util/formatGuessers.d.ts +25 -14
  443. package/esm/util/formatGuessers.js +42 -27
  444. package/esm/util/formatRelativeTime.js +1 -1
  445. package/esm/util/freezeDeep.d.ts +8 -10
  446. package/esm/util/freezeDeep.js +8 -10
  447. package/esm/util/getLocationUri.d.ts +2 -1
  448. package/esm/util/getLocationUri.js +8 -2
  449. package/esm/util/groupKeys.d.ts +76 -0
  450. package/esm/util/groupKeys.js +156 -0
  451. package/esm/util/highlights.d.ts +10 -6
  452. package/esm/util/highlights.js +12 -25
  453. package/esm/util/hooks.d.ts +31 -2
  454. package/esm/util/hooks.js +72 -3
  455. package/esm/util/index.d.ts +11 -11
  456. package/esm/util/index.js +11 -10
  457. package/esm/util/indexCandidates.d.ts +1 -31
  458. package/esm/util/indexCandidates.js +5 -63
  459. package/esm/util/installFetch.d.ts +77 -37
  460. package/esm/util/installFetch.js +65 -38
  461. package/esm/util/installInitAutorun.d.ts +14 -13
  462. package/esm/util/installInitAutorun.js +17 -17
  463. package/esm/util/installPrerequisiteFetch.d.ts +115 -0
  464. package/esm/util/installPrerequisiteFetch.js +111 -0
  465. package/esm/util/intervals.js +9 -4
  466. package/esm/util/io/index.js +22 -15
  467. package/esm/util/isDataCurrent.d.ts +7 -5
  468. package/esm/util/isDataCurrent.js +9 -6
  469. package/esm/util/isTextEntryFocused.d.ts +7 -0
  470. package/esm/util/isTextEntryFocused.js +16 -0
  471. package/esm/util/jexl.js +24 -21
  472. package/esm/util/jexlFilterRows.d.ts +89 -0
  473. package/esm/util/jexlFilterRows.js +252 -0
  474. package/esm/util/jexlFilters.d.ts +32 -57
  475. package/esm/util/jexlFilters.js +31 -29
  476. package/esm/util/jexlStrings.d.ts +3 -4
  477. package/esm/util/jexlStrings.js +2 -3
  478. package/esm/util/layouts/GranularRectLayout.d.ts +8 -1
  479. package/esm/util/layouts/GranularRectLayout.js +25 -8
  480. package/esm/util/lazyAfterAttach.d.ts +13 -0
  481. package/esm/util/lazyAfterAttach.js +31 -0
  482. package/esm/util/lazyWithPreload.d.ts +19 -0
  483. package/esm/util/lazyWithPreload.js +27 -0
  484. package/esm/util/legendCandidates.d.ts +72 -0
  485. package/esm/util/legendCandidates.js +138 -0
  486. package/esm/util/locString.js +5 -2
  487. package/esm/util/localStorage.js +4 -4
  488. package/esm/util/markEncoding.d.ts +150 -0
  489. package/esm/util/markEncoding.js +885 -0
  490. package/esm/util/markEncodingTypes.d.ts +595 -0
  491. package/esm/util/markEncodingTypes.js +8 -0
  492. package/esm/util/mst-reflection.d.ts +2 -20
  493. package/esm/util/mst-reflection.js +3 -53
  494. package/esm/util/mstUtils.d.ts +31 -23
  495. package/esm/util/mstUtils.js +39 -24
  496. package/esm/util/numericUtils.d.ts +7 -0
  497. package/esm/util/numericUtils.js +16 -0
  498. package/esm/util/numericValue.d.ts +14 -0
  499. package/esm/util/numericValue.js +34 -0
  500. package/esm/util/openFeatureWidget.d.ts +5 -0
  501. package/esm/util/openFeatureWidget.js +2 -2
  502. package/esm/util/openViews.d.ts +17 -0
  503. package/esm/util/openViews.js +22 -0
  504. package/esm/util/parentWalk.d.ts +1 -1
  505. package/esm/util/parentWalk.js +1 -1
  506. package/esm/util/parseLineByLine.d.ts +4 -5
  507. package/esm/util/parseLineByLine.js +8 -14
  508. package/esm/util/pluginStore.d.ts +6 -8
  509. package/esm/util/pluginStore.js +17 -16
  510. package/esm/util/preloadComponent.d.ts +5 -0
  511. package/esm/util/preloadComponent.js +11 -0
  512. package/esm/util/progress.d.ts +22 -22
  513. package/esm/util/progress.js +27 -26
  514. package/esm/util/quantileExtent.d.ts +49 -0
  515. package/esm/util/quantileExtent.js +162 -0
  516. package/esm/util/range.d.ts +13 -9
  517. package/esm/util/range.js +17 -8
  518. package/esm/util/renameRegions.d.ts +26 -6
  519. package/esm/util/renameRegions.js +68 -54
  520. package/esm/util/renderToStaticMarkup.js +24 -14
  521. package/esm/util/rxjs.d.ts +23 -8
  522. package/esm/util/rxjs.js +61 -15
  523. package/esm/util/samplesTsv.d.ts +49 -0
  524. package/esm/util/samplesTsv.js +86 -0
  525. package/esm/util/scheduleDetachedDestroy.d.ts +18 -0
  526. package/esm/util/scheduleDetachedDestroy.js +24 -0
  527. package/esm/util/scrollLatch.d.ts +1 -0
  528. package/esm/util/scrollLatch.js +8 -0
  529. package/esm/util/selectEncodedFeature.d.ts +16 -0
  530. package/esm/util/selectEncodedFeature.js +34 -0
  531. package/esm/util/sessionSharing.d.ts +7 -5
  532. package/esm/util/sessionSharing.js +23 -23
  533. package/esm/util/shapeNameList.d.ts +2 -0
  534. package/esm/util/shapeNameList.js +6 -0
  535. package/esm/util/shapeNames.d.ts +7 -0
  536. package/esm/util/shapeNames.js +11 -0
  537. package/esm/util/simpleFeature.d.ts +0 -1
  538. package/esm/util/springAnimate.js +1 -1
  539. package/esm/util/starFusion.d.ts +26 -0
  540. package/esm/util/starFusion.js +37 -0
  541. package/esm/util/stepTables.d.ts +96 -0
  542. package/esm/util/stepTables.js +277 -0
  543. package/esm/util/svAlt.d.ts +145 -0
  544. package/esm/util/svAlt.js +364 -0
  545. package/esm/util/svgColorProps.d.ts +11 -0
  546. package/esm/util/svgColorProps.js +28 -1
  547. package/esm/util/systemColorScheme.d.ts +12 -0
  548. package/esm/util/systemColorScheme.js +27 -0
  549. package/esm/util/tabix.d.ts +19 -10
  550. package/esm/util/tabix.js +19 -14
  551. package/esm/util/thresholdScale.d.ts +91 -0
  552. package/esm/util/thresholdScale.js +166 -0
  553. package/esm/util/timeGate.d.ts +4 -5
  554. package/esm/util/timeGate.js +4 -5
  555. package/esm/util/trackConfigDelta.d.ts +26 -26
  556. package/esm/util/trackConfigDelta.js +63 -47
  557. package/esm/util/tracks.d.ts +120 -66
  558. package/esm/util/tracks.js +501 -151
  559. package/esm/util/translateTranscript.d.ts +44 -0
  560. package/esm/util/translateTranscript.js +102 -0
  561. package/esm/util/types/data.d.ts +0 -2
  562. package/esm/util/types/index.d.ts +121 -22
  563. package/esm/util/types/index.js +9 -0
  564. package/esm/util/types/mst.d.ts +3 -0
  565. package/esm/util/types/mst.js +4 -0
  566. package/esm/util/types/renameIds.d.ts +1 -0
  567. package/esm/util/types/renameIds.js +29 -0
  568. package/esm/util/types/services.d.ts +1 -1
  569. package/esm/util/unknownSnapshotKeys.d.ts +53 -0
  570. package/esm/util/unknownSnapshotKeys.js +76 -0
  571. package/esm/util/useFeatureSequence.js +5 -5
  572. package/esm/util/useFetch.d.ts +3 -4
  573. package/esm/util/useFetch.js +19 -10
  574. package/esm/util/useFetchPlugins.d.ts +6 -2
  575. package/esm/util/useFetchPlugins.js +7 -3
  576. package/esm/util/usePanZoom.js +10 -3
  577. package/esm/util/usePanelVirtualScroll.d.ts +7 -35
  578. package/esm/util/usePanelVirtualScroll.js +9 -36
  579. package/esm/util/useRafCommit.js +1 -0
  580. package/esm/util/useRowVirtualScroll.d.ts +6 -29
  581. package/esm/util/useRowVirtualScroll.js +8 -49
  582. package/esm/util/useVirtualScrollWheel.d.ts +20 -4
  583. package/esm/util/useVirtualScrollWheel.js +40 -74
  584. package/esm/util/viewHighlights.d.ts +3 -0
  585. package/esm/util/viewHighlights.js +5 -0
  586. package/esm/util/viewStatus.d.ts +47 -15
  587. package/esm/util/viewStatus.js +34 -0
  588. package/esm/util/wheelZoom.d.ts +7 -1
  589. package/esm/util/wheelZoom.js +85 -19
  590. package/esm/util/whenViewSettled.d.ts +55 -8
  591. package/esm/util/whenViewSettled.js +56 -7
  592. package/esm/util/withFeatureDetails.js +4 -0
  593. package/esm/util/withLaunchInput.d.ts +174 -0
  594. package/esm/util/withLaunchInput.js +274 -0
  595. package/package.json +75 -24
  596. package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.d.ts +0 -2
  597. package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.js +0 -8
  598. package/esm/BaseFeatureWidget/BaseFeatureDetail/types.d.ts +0 -8
  599. package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.d.ts +0 -80
  600. package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.js +0 -583
  601. package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.d.ts +0 -141
  602. package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.js +0 -1116
  603. package/esm/ReExports/BaseFeatureDetails.d.ts +0 -1
  604. package/esm/ReExports/BaseFeatureDetails.js +0 -10
  605. package/esm/ReExports/index.d.ts +0 -1
  606. package/esm/ReExports/index.js +0 -1
  607. package/esm/ReExports/publicUtil.d.ts +0 -1
  608. package/esm/ReExports/publicUtil.js +0 -28
  609. package/esm/configuration/promotableDefaults.d.ts +0 -199
  610. package/esm/configuration/promotableDefaults.js +0 -326
  611. package/esm/configuration/promotablePin.d.ts +0 -55
  612. package/esm/configuration/promotablePin.js +0 -1
  613. package/esm/configuration/promotableResolve.d.ts +0 -108
  614. package/esm/configuration/promotableResolve.js +0 -117
  615. package/esm/configuration/promotableSlots.d.ts +0 -12
  616. package/esm/configuration/promotableSlots.js +0 -45
  617. package/esm/configuration/slotShape.d.ts +0 -12
  618. package/esm/configuration/slotShape.js +0 -84
  619. package/esm/pluggableElementTypes/models/HighlightsMixin.d.ts +0 -51
  620. package/esm/pluggableElementTypes/models/HighlightsMixin.js +0 -78
  621. package/esm/ui/PinAdornment.d.ts +0 -5
  622. package/esm/ui/PinAdornment.js +0 -79
  623. package/esm/ui/SvgGradientLegend.d.ts +0 -26
  624. package/esm/ui/SvgGradientLegend.js +0 -26
  625. package/esm/ui/highlightChipReveal.d.ts +0 -32
  626. package/esm/ui/highlightChipReveal.js +0 -39
  627. package/esm/ui/promotableMenuItems.d.ts +0 -19
  628. package/esm/ui/promotableMenuItems.js +0 -89
  629. package/esm/ui/promotablePinCoverage.d.ts +0 -44
  630. package/esm/ui/promotablePinCoverage.js +0 -87
  631. package/esm/util/applyInitSettings.d.ts +0 -79
  632. package/esm/util/applyInitSettings.js +0 -91
  633. package/esm/util/openDisplays.d.ts +0 -23
  634. package/esm/util/openDisplays.js +0 -79
  635. package/esm/util/stopToken.d.ts +0 -211
  636. package/esm/util/stopToken.js +0 -438
  637. /package/esm/{BaseFeatureWidget/BaseFeatureDetail/types.js → data_adapters/BaseAdapter/zoomRange.js} +0 -0
package/esm/ui/palette.js CHANGED
@@ -231,43 +231,21 @@ const darkNeutrals = {
231
231
  export const colorFwdStrand = '#EC8B8B';
232
232
  /** #color alignments-strand | Reverse strand | Read maps to the reverse strand */
233
233
  export const colorRevStrand = '#8F8FD8';
234
- /** #color alignments-pair-orientation | LR (→ ←, normal proper pair) | Concordant */
234
+ /** #color alignments-pair-orientation | LR (→ ←) | Normal proper pair */
235
235
  export const colorPairLR = '#d3d3d3';
236
- // Dimmer grey for dark mode: the light #d3d3d3 reads as near-white glaring
237
- // blocks against a dark track background. Wired into the dark alignmentFill.
238
- export const colorPairLRDark = '#8a8a8a';
239
- /** #color alignments-pair-orientation | RL (← →, mates point away from each other) | Abnormal orientation */
236
+ // Below #d3d3d3, which glares on a dark track, and light enough that
237
+ // insertions, soft clips and deletions stay darker than the read, the order the
238
+ // light theme draws them in.
239
+ export const colorPairLRDark = '#b0b0b0';
240
+ /** #color alignments-pair-orientation | RL (← →) | Mates point away from each other */
240
241
  export const colorPairRL = '#0099bb';
241
- /** #color alignments-pair-orientation | LL (→ →, both mates forward strand) | Abnormal orientation */
242
+ /** #color alignments-pair-orientation | LL (→ →) | Both mates on the forward strand */
242
243
  export const colorPairLL = '#4d9a4d';
243
- /** #color alignments-pair-orientation | RR (← ←, both mates reverse strand) | Abnormal orientation */
244
+ /** #color alignments-pair-orientation | RR (← ←) | Both mates on the reverse strand */
244
245
  export const colorPairRR = '#5555bb';
245
- // Was `colorNostrand`, which named the one thing it essentially never paints. A
246
- // SAM record's strand is DEFINED from the reverse flag inside the adapter's
247
- // feature class (`SamRecordFeature.strand`), so it is always +1 or -1, and a
248
- // PAF/synteny block carries a real strand too — `strandCategory`'s `noStrand`
249
- // branch is the defensive third case of a `-1 | 0 | 1` return, not a category
250
- // an alignments track produces. The name survived because the two places that
251
- // DO reach 0 are strand questions of a different kind: a sashimi junction whose
252
- // spliced reads carry no XS/TS/ts tag (ordinary unstranded RNA-seq), and a
253
- // strand-valued read tag that a read simply lacks.
254
- //
255
- // What it actually paints, in volume, is neither — `nonSplit` ("Unsplit read",
256
- // the majority of a pileup under the split-read scheme) and `mapqUnavailable`
257
- // (MAPQ 255). What unites all five is that the scheme's question has no
258
- // informative answer for this read, so the value is the neutral it falls back
259
- // to rather than a statement about strand.
260
- //
261
- // It is NOT the only such neutral: `colorPairLR` #d3d3d3 is the baseline for
262
- // `normalInsert`, `noTagValue` and `plain`, and the two sit dE 3.95 apart —
263
- // close enough that `readTagColors.ts` moved its untagged-read case off this one
264
- // and onto that one, because only that one darkens under the dark theme. Whether
265
- // two neutrals are wanted at all is the open question here; this rename does not
266
- // settle it, and the dark-mode half is `agent-docs/TODO.md`.
267
- export const colorNeutralRead = '#c8c8c8';
268
246
  /**
269
- * #color alignments-pair-orientation | Inter-chromosomal | Mate maps to a different chromosome; colored distinctly rather than by orientation
270
- * #color alignments-insert-size | Mate on a different chromosome | Suggests an inter-chromosomal event
247
+ * #color alignments-pair-orientation | Inter-chromosomal | Mate on another chromosome
248
+ * #color alignments-insert-size | Inter-chromosomal | Mate on another chromosome
271
249
  */
272
250
  // THIS SLOT AND `colorUnmappedMate` WERE CHOSEN TOGETHER, and reading either one
273
251
  // alone is how the previous pair got stuck. Both are warm, both belong to all
@@ -299,9 +277,9 @@ export const colorNeutralRead = '#c8c8c8';
299
277
  // neighbour that must not be confusable: red means "insert too long", and a
300
278
  // second red would read as a second statement about insert size.
301
279
  export const colorInterchrom = '#af4d19';
302
- /** #color alignments-insert-size | Insert larger than expected | Suggests a deletion spanning the pair */
280
+ /** #color alignments-insert-size | Insert larger than expected | Deletion between the mates */
303
281
  export const colorLongInsert = '#ff0000';
304
- /** #color alignments-insert-size | Insert smaller than expected | Suggests an insertion between the pair */
282
+ /** #color alignments-insert-size | Insert smaller than expected | Insertion between the mates */
305
283
  // This slot has TWO neighbours it must stay clear of, and every past value has
306
284
  // solved one by walking into the other. They sit at opposite ends of the
307
285
  // lightness axis, which is what makes it a balance rather than a direction:
@@ -349,8 +327,8 @@ export const colorLongInsert = '#ff0000';
349
327
  // them.
350
328
  export const colorShortInsert = '#f582c0';
351
329
  /**
352
- * #color alignments-pair-orientation | Mate unmapped | The other end of the pair aligned nowhere, so orientation and insert size say nothing
353
- * #color alignments-insert-size | Mate unmapped | The other end of the pair aligned nowhere, so insert size says nothing
330
+ * #color alignments-pair-orientation | Mate unmapped | Mate aligned nowhere
331
+ * #color alignments-insert-size | Mate unmapped | Mate aligned nowhere
354
332
  */
355
333
  // A NON-COLOUR, at the dark end of the neutral scale on BOTH themes. It takes
356
334
  // the first half of the `readOverlap` pattern and not the second, and that split
@@ -392,11 +370,6 @@ export const colorShortInsert = '#f582c0';
392
370
  // gaps between rows and cannot be found. A few px of row is what a value here
393
371
  // has to survive, not a 40 px square.
394
372
  //
395
- // The nearest dark-mode neighbour is the coverage histogram's grey[700] #616161
396
- // at dE 9.7, which is not a collision in the sense the numbers above are about:
397
- // coverage is a bar in a different subtrack, never a fill a read can take, so
398
- // nothing is ever read against it.
399
- //
400
373
  // White was the previous dark value, and it reads as the loudest thing in a dark
401
374
  // pileup — louder than the coloured categories it is meant to be quieter than —
402
375
  // which is the "glaring near-white blocks" failure `colorPairLRDark` already
@@ -421,7 +394,7 @@ export const colorUnmappedMate = '#000000';
421
394
  // the least that still reads as a read rather than as a hole.
422
395
  export const colorUnmappedMateDark = '#4a4a4a';
423
396
  export const colorLongreadInv = '#7755bb';
424
- /** #color alignments-pair-orientation | Split paired-end read (inverted) | A paired read's supplementary segment maps opposite-strand to its primary, so the junction is inverted — an inversion or an inverted duplication */
397
+ /** #color alignments-pair-orientation | Split read (inverted) | Supplementary segment on the opposite strand to its primary */
425
398
  export const colorSplitReadInversion = '#9b30b0';
426
399
  export const colorSupplementary = '#f0b878';
427
400
  // Qualitative palette for coloring reads by an arbitrary tag value (e.g. the HP
@@ -473,7 +446,7 @@ const startCodon = '#3e3';
473
446
  const codonNonsynonymous = '#e8930c';
474
447
  /** #color maf | Synonymous codon | MAF codon view: the codon differs from the reference but the amino acid is unchanged (silent) */
475
448
  const codonSynonymous = '#3a7bd5';
476
- /** #color maf | Codon stop | MAF codon view: a stop codon */
449
+ /** #color maf | Stop gained | MAF codon view: a stop the reference codon is not */
477
450
  const codonStop = '#cc2222';
478
451
  /** #color alignments-indicators | Insertion | Reads carry an insertion relative to the reference */
479
452
  const insertion = '#800080';
@@ -496,9 +469,9 @@ const skip = '#009a8a';
496
469
  * which is the same lie louder — on a foldback the arms are opposite-strand
497
470
  * red and blue, and darkening whichever drew last reads as extra-inverted.
498
471
  *
499
- * So the value has one job: read as NEITHER segment. Every categorized grey in
500
- * the alignments vocabulary is light (`colorPairLR` #d3d3d3, `colorNeutralRead`
501
- * #c8c8c8, and `colorPairLRDark` #8a8a8a on the dark theme), so this sits past
472
+ * So the value has one job: read as NEITHER segment. The alignments vocabulary's
473
+ * one neutral grey is light (`colorPairLR` #d3d3d3, and `colorPairLRDark`
474
+ * #b0b0b0 on the dark theme), so this sits past
502
475
  * the dark end of them in light mode and past the light end in dark mode,
503
476
  * which is also why it inverts rather than dimming: on a dark track background
504
477
  * a charcoal span is the background showing through, i.e. a gap where the mark
@@ -522,6 +495,7 @@ const lightStringColors = {
522
495
  coverage: grey[400],
523
496
  insertion,
524
497
  deletion,
498
+ mafGap: deletion,
525
499
  readOverlap,
526
500
  softclip,
527
501
  hardclip,
@@ -539,6 +513,8 @@ const lightStringColors = {
539
513
  plotGridlineMinor: 'rgba(0,0,0,0.06)',
540
514
  plotGridlineMajor: 'rgba(0,0,0,0.13)',
541
515
  regionBoundary: 'rgba(0,0,0,0.42)',
516
+ regionSeparator: grey[600],
517
+ tableBorder: grey[300],
542
518
  // hover shading over a feature
543
519
  featureHover: 'rgba(0,0,0,0.15)',
544
520
  // stronger shade for a hovered group (e.g. a linked-read chain), so the group
@@ -548,29 +524,39 @@ const lightStringColors = {
548
524
  featureSelected: 'rgba(0,100,255,0.8)',
549
525
  // blue accent for feature description labels (e.g. gene descriptions)
550
526
  featureDescription: 'blue',
527
+ featureConnector: 'rgba(0, 0, 0, 0.6)',
551
528
  };
552
529
  // Dark overrides. White-on-dark reads far stronger than dark-on-white at the
553
530
  // same alpha, so the gridlines and hover shades are gentler and inverted rather
554
531
  // than reused, and the colors that would otherwise vanish are lightened.
555
532
  const darkStringColors = {
556
- coverage: grey[700],
533
+ // above the L* 55-72 band the base colors occupy, so the SNP ticks drawn on
534
+ // it keep a lightness step; a mid grey inside that band hides them
535
+ coverage: '#cccccc',
557
536
  gridlineMinor: 'rgba(255,255,255,0.06)',
558
537
  gridlineMajor: 'rgba(255,255,255,0.15)',
559
538
  plotGridlineMinor: 'rgba(255,255,255,0.05)',
560
539
  plotGridlineMajor: 'rgba(255,255,255,0.1)',
561
540
  regionBoundary: 'rgba(255,255,255,0.3)',
541
+ regionSeparator: grey[500],
542
+ tableBorder: '#515151',
562
543
  featureHover: 'rgba(255,255,255,0.25)',
563
544
  featureHoverStrong: 'rgba(255,255,255,0.4)',
564
545
  featureSelected: 'rgba(120,180,255,0.9)',
565
546
  // plain CSS 'blue' reads as near-black against a dark track
566
547
  featureDescription: blue[300],
567
- // the deletion rect replaces the read on the dark track background, where the
568
- // mid-grey #808080 reads as a muddy block, so lighten it
569
- deletion: '#c8c8c8',
548
+ // a 1px light line on a dark ground reads thinner than the same line dark on
549
+ // white, so this runs at more ink than the light value's 0.6
550
+ featureConnector: 'rgba(255, 255, 255, 0.9)',
551
+ // drawn over a read, so it keeps the light theme's step below the read fill:
552
+ // #d3d3d3 to #808080 is 31 L*, #b0b0b0 to this is 33
553
+ deletion: '#5c5c5c',
554
+ // MAF gap cells sit beside match cells painted `action.disabledBackground`,
555
+ // which is dark here, so the gap is the lighter of the two
556
+ mafGap: '#c8c8c8',
570
557
  // inverted rather than dimmed, for the reason on the light value: the mark
571
558
  // has to be the one neutral no read category paints, and on a dark track that
572
- // is the light end. Clear of the dark theme's own `colorPairLRDark` #8a8a8a
573
- // and of `colorNostrand` #c8c8c8, the two lightest fills it can land beside.
559
+ // is the light end, clear of `colorPairLRDark` #b0b0b0
574
560
  readOverlap: '#e4e4e4',
575
561
  };
576
562
  const lightAlignmentFill = {
@@ -624,13 +610,23 @@ const defaultFrames = [
624
610
  { main: '#adadad' },
625
611
  { main: '#8f8f8f' },
626
612
  ];
613
+ // The same order as the light greys, with the outer frames nearest the ground
614
+ const defaultFramesDark = [
615
+ null,
616
+ { main: '#6e6e6e' },
617
+ { main: '#525252' },
618
+ { main: '#303030' },
619
+ { main: '#303030' },
620
+ { main: '#525252' },
621
+ { main: '#6e6e6e' },
622
+ ];
627
623
  /**
628
624
  * The palette half of the built-in themes. `theme.ts` composes these with the
629
625
  * display names and MUI component overrides that make up `defaultThemes`, so
630
626
  * the preset colors are stated once.
631
627
  */
632
628
  // The JBrowse-branded colors every built-in preset starts from. Deliberately
633
- // does NOT carry the string colors or alignmentFill: those have light and dark
629
+ // does NOT carry the string colors, alignmentFill or frames: those have light and dark
634
630
  // variants that `resolvePalette` picks off `mode`, and baking the light ones in
635
631
  // here would shadow the dark set for any theme built on top.
636
632
  const brandDefaults = {
@@ -641,32 +637,61 @@ const brandDefaults = {
641
637
  highlight: { main: mandarin },
642
638
  textHighlight: { main: textHighlightYellow },
643
639
  bases: defaultBases,
644
- frames: defaultFrames,
645
640
  framesCDS: defaultFramesCDS,
646
641
  };
642
+ // Each palette states its colors once and, where a brand cannot survive the
643
+ // flip, the `dark` delta. Stock needs none: measured, its dark half is the
644
+ // light one with `mode: 'dark'` and nothing else, because the neutrals,
645
+ // semantics and string colors already follow the mode. Minimal needs one
646
+ // shade, grey[900] being too near the dark background to read as chrome.
647
647
  export const palettePresets = {
648
648
  default: { ...brandDefaults },
649
- lightStock: { ...brandDefaults },
650
- lightMinimal: {
649
+ stock: { ...brandDefaults },
650
+ minimal: {
651
651
  ...brandDefaults,
652
652
  primary: { main: grey[900] },
653
653
  secondary: { main: grey[800] },
654
654
  tertiary: { main: grey[900] },
655
- },
656
- // the dark presets change only `mode` on top of the brand colors, and the
657
- // dark-tuned gridlines, hover, coverage and alignmentFill follow from it
658
- darkMinimal: {
659
- ...brandDefaults,
660
- mode: 'dark',
661
- primary: { main: grey[700] },
662
- secondary: { main: grey[800] },
663
- tertiary: { main: grey[900] },
664
- },
665
- darkStock: {
666
- ...brandDefaults,
667
- mode: 'dark',
655
+ dark: { primary: { main: grey[700] } },
668
656
  },
669
657
  };
658
+ /**
659
+ * The theme names from before light and dark were an axis, as the palette and
660
+ * mode each one meant. A stored selection, a share link, an admin's
661
+ * `configuration.theme`, `jbrowse-img --theme` and a saved figure spec all
662
+ * carry these, so they keep resolving rather than falling back to the default.
663
+ */
664
+ export const legacyThemeNames = {
665
+ lightStock: { themeName: 'stock', mode: 'light' },
666
+ darkStock: { themeName: 'stock', mode: 'dark' },
667
+ lightMinimal: { themeName: 'minimal', mode: 'light' },
668
+ darkMinimal: { themeName: 'minimal', mode: 'dark' },
669
+ };
670
+ // indexed through hasOwn so the miss is a value rather than a lie the key cast
671
+ // tells the checker
672
+ function legacyEntry(name) {
673
+ return name !== undefined && Object.hasOwn(legacyThemeNames, name)
674
+ ? legacyThemeNames[name]
675
+ : undefined;
676
+ }
677
+ /**
678
+ * What a name and a mode mean together, with a name that predates the axis
679
+ * resolved to the pair it stood for. An explicit `mode` still wins — a user
680
+ * picking Dark over a stored `lightStock` gets dark stock, not light.
681
+ *
682
+ * `themes` is whatever map the caller looks names up in, so an admin's
683
+ * `extraThemes` entry taking one of the retired names wins over the alias it
684
+ * would otherwise shadow.
685
+ */
686
+ export function resolveThemeSelection(themeName, mode, themes) {
687
+ if (themeName !== undefined && themes?.[themeName]) {
688
+ return { themeName, mode };
689
+ }
690
+ const legacy = legacyEntry(themeName);
691
+ return legacy
692
+ ? { themeName: legacy.themeName, mode: mode ?? legacy.mode }
693
+ : { themeName: themeName ?? 'default', mode };
694
+ }
670
695
  /**
671
696
  * Resolve a frame tuple. A theme's tuple replaces the default wholesale rather
672
697
  * than splicing entry by entry onto stale shades, so slots it leaves out are
@@ -691,15 +716,26 @@ function resolveFrames(entry, fallback) {
691
716
  * "Default (from config)" means. Do not "fix" that.
692
717
  */
693
718
  export function resolvePalette(args = {}) {
694
- const { configTheme, themeName = 'default', extraThemes } = args;
719
+ const { configTheme, extraThemes } = args;
695
720
  const presets = {
696
721
  ...palettePresets,
697
722
  ...Object.fromEntries(Object.entries(extraThemes ?? {}).map(([k, v]) => [k, v.palette ?? {}])),
698
723
  };
724
+ const selection = resolveThemeSelection(args.themeName, args.mode, presets);
725
+ const themeName = selection.themeName;
699
726
  const preset = presets[themeName] ?? presets.default ?? {};
700
- const input = themeName === 'default' ? { ...preset, ...configTheme?.palette } : preset;
701
- const mode = input.mode ?? 'light';
727
+ const declared = themeName === 'default' ? { ...preset, ...configTheme?.palette } : preset;
728
+ // A palette that declares a `mode` is pinned to it: an admin who registers a
729
+ // dark `extraThemes` entry picked its colours for dark, and the light half
730
+ // they never wrote is not JBrowse's to invent. A `mode` in the config `theme`
731
+ // slot is the opposite — the site's starting point for the one palette that
732
+ // merges it — so a reader's own pick wins over that.
733
+ const mode = preset.mode ?? selection.mode ?? configTheme?.palette?.mode ?? 'light';
702
734
  const isDark = mode === 'dark';
735
+ // the palette's own dark half, over the light one it is a delta against
736
+ const input = isDark
737
+ ? { ...declared, ...declared.dark }
738
+ : declared;
703
739
  const neutrals = isDark ? darkNeutrals : lightNeutrals;
704
740
  const brandFallback = isDark ? darkBrandFallback : lightBrandFallback;
705
741
  const semantics = isDark ? darkSemantics : lightSemantics;
@@ -713,16 +749,19 @@ export function resolvePalette(args = {}) {
713
749
  strings[key] = override;
714
750
  }
715
751
  }
752
+ const text = { ...neutrals.text, ...input.text };
753
+ const primary = augmentColor(input.primary ?? brandFallback.primary);
716
754
  return {
717
755
  ...strings,
718
756
  mode,
719
- text: { ...neutrals.text, ...input.text },
757
+ text,
720
758
  background: { ...neutrals.background, ...input.background },
721
759
  divider: input.divider ?? neutrals.divider,
722
760
  common: { ...neutrals.common, ...input.common },
723
761
  grey: { ...neutrals.grey, ...input.grey },
724
762
  action: { ...neutrals.action, ...input.action },
725
- primary: augmentColor(input.primary ?? brandFallback.primary),
763
+ primary,
764
+ accent: input.accent ?? (isDark ? text.secondary : primary.main),
726
765
  secondary: augmentColor(input.secondary ?? brandFallback.secondary),
727
766
  error: augmentColor(input.error ?? semantics.error),
728
767
  warning: augmentColor(input.warning ?? semantics.warning),
@@ -736,7 +775,7 @@ export function resolvePalette(args = {}) {
736
775
  key,
737
776
  augmentColor(input.bases?.[key] ?? defaultBases[key]),
738
777
  ])),
739
- frames: resolveFrames(input.frames, defaultFrames),
778
+ frames: resolveFrames(input.frames, isDark ? defaultFramesDark : defaultFrames),
740
779
  framesCDS: resolveFrames(input.framesCDS, defaultFramesCDS),
741
780
  alignmentFill: {
742
781
  ...(isDark ? darkAlignmentFill : lightAlignmentFill),
@@ -6,7 +6,7 @@ import type { SubmitFormProps } from './SubmitForm.tsx';
6
6
  * the launching view occupies.
7
7
  *
8
8
  * Every launcher anchored on what a view is already showing — the synteny
9
- * launches, "read vs ref", the derivative reconstruction — wants exactly this
9
+ * launches, "read vs ref" — wants exactly this
10
10
  * pair, and each had written the same four lines around
11
11
  * {@link ReplaceCurrentViewButton}: the guard, the button, its disabled state,
12
12
  * and the renaming of Submit that only makes sense once there are two buttons.
@@ -7,7 +7,7 @@ import ReplaceCurrentViewButton from './ReplaceCurrentViewButton.js';
7
7
  * the launching view occupies.
8
8
  *
9
9
  * Every launcher anchored on what a view is already showing — the synteny
10
- * launches, "read vs ref", the derivative reconstruction — wants exactly this
10
+ * launches, "read vs ref" — wants exactly this
11
11
  * pair, and each had written the same four lines around
12
12
  * {@link ReplaceCurrentViewButton}: the guard, the button, its disabled state,
13
13
  * and the renaming of Submit that only makes sense once there are two buttons.
package/esm/ui/theme.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { AlignmentFill, StringColors } from './palette.ts';
1
+ import type { AlignmentFill, PaletteMode, StringColors, legacyThemeNames } from './palette.ts';
2
2
  import type { PaletteColor, PaletteColorOptions, Theme, ThemeOptions } from '@mui/material/styles';
3
3
  type FrameTuple<T> = [
4
4
  null,
@@ -13,6 +13,13 @@ type Frames = FrameTuple<PaletteColor>;
13
13
  type FramesOptions = FrameTuple<PaletteColorOptions>;
14
14
  declare module '@mui/material/styles' {
15
15
  interface Palette extends StringColors {
16
+ /**
17
+ * The primary colour where it marks something on the page's own ground,
18
+ * such as a checked box or a selected row. `primary.main` in light mode,
19
+ * and the secondary text colour in dark mode, where a midnight primary
20
+ * vanishes
21
+ */
22
+ accent: string;
16
23
  /** Accordion headers and some toolbar chrome */
17
24
  tertiary: PaletteColor;
18
25
  /** Secondary floating-action-button background */
@@ -42,6 +49,7 @@ declare module '@mui/material/styles' {
42
49
  alignmentFill: AlignmentFill;
43
50
  }
44
51
  interface PaletteOptions extends Partial<StringColors> {
52
+ accent?: string;
45
53
  tertiary?: PaletteColorOptions;
46
54
  quaternary?: PaletteColorOptions;
47
55
  highlight?: PaletteColorOptions;
@@ -58,7 +66,7 @@ declare module '@mui/material/styles' {
58
66
  alignmentFill?: Partial<AlignmentFill>;
59
67
  }
60
68
  }
61
- export { colorFwdStrand, colorInterchrom, colorLongInsert, colorLongreadInv, colorNeutralRead, colorPairLL, colorPairLR, colorPairLRDark, colorPairRL, colorPairRR, colorRevStrand, colorShortInsert, colorSplitReadInversion, colorSupplementary, colorUnmappedMate, colorUnmappedMateDark, methylated5hmC, methylated5mC, tagColorPalette, unmethylated5mC, } from './palette.ts';
69
+ export { colorFwdStrand, colorInterchrom, colorLongInsert, colorLongreadInv, colorPairLL, colorPairLR, colorPairLRDark, colorPairRL, colorPairRR, colorRevStrand, colorShortInsert, colorSplitReadInversion, colorSupplementary, colorUnmappedMate, colorUnmappedMateDark, methylated5hmC, methylated5mC, tagColorPalette, unmethylated5mC, } from './palette.ts';
62
70
  export type { JBrowsePalette } from './palette.ts';
63
71
  /**
64
72
  * The structurally-serializable inputs that fully describe a session's active
@@ -72,6 +80,8 @@ export interface SerializableThemeArgs {
72
80
  configTheme?: ThemeOptions;
73
81
  themeName?: string;
74
82
  extraThemes?: ThemeMap;
83
+ /** light or dark, whichever the named palette declares; see `PaletteArgs` */
84
+ mode?: PaletteMode;
75
85
  }
76
86
  export declare const defaultThemes: {
77
87
  default: {
@@ -87,6 +97,7 @@ export declare const defaultThemes: {
87
97
  skip?: string | undefined;
88
98
  hardclip?: string | undefined;
89
99
  deletion?: string | undefined;
100
+ mafGap?: string | undefined;
90
101
  readOverlap?: string | undefined;
91
102
  modificationFwd?: string | undefined;
92
103
  modificationRev?: string | undefined;
@@ -97,12 +108,17 @@ export declare const defaultThemes: {
97
108
  plotGridlineMinor?: string | undefined;
98
109
  plotGridlineMajor?: string | undefined;
99
110
  regionBoundary?: string | undefined;
111
+ regionSeparator?: string | undefined;
112
+ tableBorder?: string | undefined;
100
113
  featureHover?: string | undefined;
101
114
  featureHoverStrong?: string | undefined;
102
115
  featureSelected?: string | undefined;
103
116
  featureDescription?: string | undefined;
117
+ featureConnector?: string | undefined;
104
118
  mode?: 'light' | 'dark';
119
+ dark?: import("./palette.ts").DarkPaletteInput;
105
120
  primary?: import("./palette.ts").ShadeInput;
121
+ accent?: string;
106
122
  secondary?: import("./palette.ts").ShadeInput;
107
123
  tertiary?: import("./palette.ts").ShadeInput;
108
124
  quaternary?: import("./palette.ts").ShadeInput;
@@ -125,7 +141,8 @@ export declare const defaultThemes: {
125
141
  };
126
142
  name: string;
127
143
  };
128
- lightStock: {
144
+ stock: {
145
+ name: string;
129
146
  palette: {
130
147
  stopCodon?: string | undefined;
131
148
  startCodon?: string | undefined;
@@ -138,6 +155,7 @@ export declare const defaultThemes: {
138
155
  skip?: string | undefined;
139
156
  hardclip?: string | undefined;
140
157
  deletion?: string | undefined;
158
+ mafGap?: string | undefined;
141
159
  readOverlap?: string | undefined;
142
160
  modificationFwd?: string | undefined;
143
161
  modificationRev?: string | undefined;
@@ -148,12 +166,17 @@ export declare const defaultThemes: {
148
166
  plotGridlineMinor?: string | undefined;
149
167
  plotGridlineMajor?: string | undefined;
150
168
  regionBoundary?: string | undefined;
169
+ regionSeparator?: string | undefined;
170
+ tableBorder?: string | undefined;
151
171
  featureHover?: string | undefined;
152
172
  featureHoverStrong?: string | undefined;
153
173
  featureSelected?: string | undefined;
154
174
  featureDescription?: string | undefined;
175
+ featureConnector?: string | undefined;
155
176
  mode?: 'light' | 'dark';
177
+ dark?: import("./palette.ts").DarkPaletteInput;
156
178
  primary?: import("./palette.ts").ShadeInput;
179
+ accent?: string;
157
180
  secondary?: import("./palette.ts").ShadeInput;
158
181
  tertiary?: import("./palette.ts").ShadeInput;
159
182
  quaternary?: import("./palette.ts").ShadeInput;
@@ -174,9 +197,8 @@ export declare const defaultThemes: {
174
197
  grey?: Partial<import("./palette.ts").NeutralTokens['grey']>;
175
198
  action?: Partial<import("./palette.ts").NeutralTokens['action']>;
176
199
  };
177
- name: string;
178
200
  };
179
- lightMinimal: {
201
+ minimal: {
180
202
  name: string;
181
203
  palette: {
182
204
  stopCodon?: string | undefined;
@@ -190,6 +212,7 @@ export declare const defaultThemes: {
190
212
  skip?: string | undefined;
191
213
  hardclip?: string | undefined;
192
214
  deletion?: string | undefined;
215
+ mafGap?: string | undefined;
193
216
  readOverlap?: string | undefined;
194
217
  modificationFwd?: string | undefined;
195
218
  modificationRev?: string | undefined;
@@ -200,11 +223,15 @@ export declare const defaultThemes: {
200
223
  plotGridlineMinor?: string | undefined;
201
224
  plotGridlineMajor?: string | undefined;
202
225
  regionBoundary?: string | undefined;
226
+ regionSeparator?: string | undefined;
227
+ tableBorder?: string | undefined;
203
228
  featureHover?: string | undefined;
204
229
  featureHoverStrong?: string | undefined;
205
230
  featureSelected?: string | undefined;
206
231
  featureDescription?: string | undefined;
232
+ featureConnector?: string | undefined;
207
233
  mode?: 'light' | 'dark';
234
+ accent?: string;
208
235
  quaternary?: import("./palette.ts").ShadeInput;
209
236
  highlight?: import("./palette.ts").ShadeInput;
210
237
  textHighlight?: import("./palette.ts").ShadeInput;
@@ -231,124 +258,21 @@ export declare const defaultThemes: {
231
258
  tertiary: {
232
259
  main: string;
233
260
  };
234
- };
235
- };
236
- darkMinimal: {
237
- name: string;
238
- palette: {
239
- stopCodon?: string | undefined;
240
- startCodon?: string | undefined;
241
- codonNonsynonymous?: string | undefined;
242
- codonSynonymous?: string | undefined;
243
- codonStop?: string | undefined;
244
- coverage?: string | undefined;
245
- insertion?: string | undefined;
246
- softclip?: string | undefined;
247
- skip?: string | undefined;
248
- hardclip?: string | undefined;
249
- deletion?: string | undefined;
250
- readOverlap?: string | undefined;
251
- modificationFwd?: string | undefined;
252
- modificationRev?: string | undefined;
253
- mutedSnpBase?: string | undefined;
254
- missingData?: string | undefined;
255
- gridlineMinor?: string | undefined;
256
- gridlineMajor?: string | undefined;
257
- plotGridlineMinor?: string | undefined;
258
- plotGridlineMajor?: string | undefined;
259
- regionBoundary?: string | undefined;
260
- featureHover?: string | undefined;
261
- featureHoverStrong?: string | undefined;
262
- featureSelected?: string | undefined;
263
- featureDescription?: string | undefined;
264
- quaternary?: import("./palette.ts").ShadeInput;
265
- highlight?: import("./palette.ts").ShadeInput;
266
- textHighlight?: import("./palette.ts").ShadeInput;
267
- error?: import("./palette.ts").ShadeInput;
268
- warning?: import("./palette.ts").ShadeInput;
269
- info?: import("./palette.ts").ShadeInput;
270
- success?: import("./palette.ts").ShadeInput;
271
- bases?: Partial<Record<import("./palette.ts").BaseKey, import("./palette.ts").ShadeInput>>;
272
- frames?: import("./palette.ts").FrameTuple<import("./palette.ts").ShadeInput>;
273
- framesCDS?: import("./palette.ts").FrameTuple<import("./palette.ts").ShadeInput>;
274
- alignmentFill?: Partial<AlignmentFill>;
275
- text?: Partial<import("./palette.ts").NeutralTokens['text']>;
276
- background?: Partial<import("./palette.ts").NeutralTokens['background']>;
277
- divider?: string;
278
- common?: Partial<import("./palette.ts").NeutralTokens['common']>;
279
- grey?: Partial<import("./palette.ts").NeutralTokens['grey']>;
280
- action?: Partial<import("./palette.ts").NeutralTokens['action']>;
281
- mode: "dark";
282
- primary: {
283
- main: string;
284
- };
285
- secondary: {
286
- main: string;
287
- };
288
- tertiary: {
289
- main: string;
290
- };
291
- };
292
- };
293
- darkStock: {
294
- name: string;
295
- palette: {
296
- stopCodon?: string | undefined;
297
- startCodon?: string | undefined;
298
- codonNonsynonymous?: string | undefined;
299
- codonSynonymous?: string | undefined;
300
- codonStop?: string | undefined;
301
- coverage?: string | undefined;
302
- insertion?: string | undefined;
303
- softclip?: string | undefined;
304
- skip?: string | undefined;
305
- hardclip?: string | undefined;
306
- deletion?: string | undefined;
307
- readOverlap?: string | undefined;
308
- modificationFwd?: string | undefined;
309
- modificationRev?: string | undefined;
310
- mutedSnpBase?: string | undefined;
311
- missingData?: string | undefined;
312
- gridlineMinor?: string | undefined;
313
- gridlineMajor?: string | undefined;
314
- plotGridlineMinor?: string | undefined;
315
- plotGridlineMajor?: string | undefined;
316
- regionBoundary?: string | undefined;
317
- featureHover?: string | undefined;
318
- featureHoverStrong?: string | undefined;
319
- featureSelected?: string | undefined;
320
- featureDescription?: string | undefined;
321
- primary?: import("./palette.ts").ShadeInput;
322
- secondary?: import("./palette.ts").ShadeInput;
323
- tertiary?: import("./palette.ts").ShadeInput;
324
- quaternary?: import("./palette.ts").ShadeInput;
325
- highlight?: import("./palette.ts").ShadeInput;
326
- textHighlight?: import("./palette.ts").ShadeInput;
327
- error?: import("./palette.ts").ShadeInput;
328
- warning?: import("./palette.ts").ShadeInput;
329
- info?: import("./palette.ts").ShadeInput;
330
- success?: import("./palette.ts").ShadeInput;
331
- bases?: Partial<Record<import("./palette.ts").BaseKey, import("./palette.ts").ShadeInput>>;
332
- frames?: import("./palette.ts").FrameTuple<import("./palette.ts").ShadeInput>;
333
- framesCDS?: import("./palette.ts").FrameTuple<import("./palette.ts").ShadeInput>;
334
- alignmentFill?: Partial<AlignmentFill>;
335
- text?: Partial<import("./palette.ts").NeutralTokens['text']>;
336
- background?: Partial<import("./palette.ts").NeutralTokens['background']>;
337
- divider?: string;
338
- common?: Partial<import("./palette.ts").NeutralTokens['common']>;
339
- grey?: Partial<import("./palette.ts").NeutralTokens['grey']>;
340
- action?: Partial<import("./palette.ts").NeutralTokens['action']>;
341
- mode: "dark";
342
- };
343
- components: {
344
- MuiAppBar: {
345
- defaultProps: {
346
- enableColorOnDark: true;
261
+ dark: {
262
+ primary: {
263
+ main: string;
347
264
  };
348
265
  };
349
266
  };
350
267
  };
351
268
  };
269
+ /**
270
+ * Every theme name JBrowse answers to: the palettes above, plus the names from
271
+ * before light and dark were an axis. `jbrowse-img --theme` and the SVG export
272
+ * picker enumerate this, so a palette added or renamed fails their builds
273
+ * rather than leaving a name that silently resolves to the default.
274
+ */
275
+ export type ThemeSelectionName = keyof typeof defaultThemes | keyof typeof legacyThemeNames;
352
276
  export declare function createJBrowseBaseTheme(theme?: ThemeOptions): ThemeOptions;
353
277
  export type ThemeMap = Record<string, ThemeOptions & {
354
278
  name?: string;
@@ -368,5 +292,5 @@ export declare function createJBrowseThemeFromArgs(args?: SerializableThemeArgs)
368
292
  * component defaults and style overrides in `baseThemeOptions`, plus whatever
369
293
  * non-palette options the selected theme or the config theme declares.
370
294
  */
371
- export declare function createJBrowseTheme(configTheme?: ThemeOptions, themes?: ThemeMap, themeName?: string): Theme;
295
+ export declare function createJBrowseTheme(configTheme?: ThemeOptions, themes?: ThemeMap, requestedName?: string, requestedMode?: PaletteMode): Theme;
372
296
  export type JBrowseTheme = Theme;