@genome-spy/core 0.72.0 → 0.74.0

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 (396) hide show
  1. package/LICENSE +1 -1
  2. package/dist/bundle/AbortablePromiseCache-3gHJdF3E.js +96 -0
  3. package/dist/bundle/browser-BTgw5ieH.js +126 -0
  4. package/dist/bundle/chunk-DmhlhrBa.js +11 -0
  5. package/dist/bundle/esm-BDFRLEuD.js +1248 -0
  6. package/dist/bundle/esm-BygJiwh0.js +573 -0
  7. package/dist/bundle/esm-CGX-qz1d.js +155 -0
  8. package/dist/bundle/esm-CgfVIRJ-.js +121 -0
  9. package/dist/bundle/esm-CuMSzCHy.js +298 -0
  10. package/dist/bundle/esm-DMXpJXM4.js +369 -0
  11. package/dist/bundle/esm-DQiq2Zhd.js +1426 -0
  12. package/dist/bundle/esm-DtE8VqAv.js +1015 -0
  13. package/dist/bundle/esm-sIoQYZ21.js +461 -0
  14. package/dist/bundle/index.es.js +21078 -24556
  15. package/dist/bundle/index.js +379 -383
  16. package/dist/bundle/parquetRead-DG_-F5j5.js +1609 -0
  17. package/dist/schema.json +13349 -7082
  18. package/dist/src/config/axisConfig.d.ts +16 -0
  19. package/dist/src/config/axisConfig.d.ts.map +1 -0
  20. package/dist/src/config/axisConfig.js +84 -0
  21. package/dist/src/config/defaultConfig.d.ts +3 -0
  22. package/dist/src/config/defaultConfig.d.ts.map +1 -0
  23. package/dist/src/config/defaultConfig.js +38 -0
  24. package/dist/src/config/defaults/axisDefaults.d.ts +5 -0
  25. package/dist/src/config/defaults/axisDefaults.d.ts.map +1 -0
  26. package/dist/src/config/defaults/axisDefaults.js +72 -0
  27. package/dist/src/config/defaults/markDefaults.d.ts +15 -0
  28. package/dist/src/config/defaults/markDefaults.d.ts.map +1 -0
  29. package/dist/src/config/defaults/markDefaults.js +121 -0
  30. package/dist/src/config/defaults/scaleDefaults.d.ts +5 -0
  31. package/dist/src/config/defaults/scaleDefaults.d.ts.map +1 -0
  32. package/dist/src/config/defaults/scaleDefaults.js +18 -0
  33. package/dist/src/config/defaults/titleDefaults.d.ts +5 -0
  34. package/dist/src/config/defaults/titleDefaults.d.ts.map +1 -0
  35. package/dist/src/config/defaults/titleDefaults.js +47 -0
  36. package/dist/src/config/defaults/viewDefaults.d.ts +3 -0
  37. package/dist/src/config/defaults/viewDefaults.d.ts.map +1 -0
  38. package/dist/src/config/defaults/viewDefaults.js +2 -0
  39. package/dist/src/config/markConfig.d.ts +8 -0
  40. package/dist/src/config/markConfig.d.ts.map +1 -0
  41. package/dist/src/config/markConfig.js +27 -0
  42. package/dist/src/config/mergeConfig.d.ts +8 -0
  43. package/dist/src/config/mergeConfig.d.ts.map +1 -0
  44. package/dist/src/config/mergeConfig.js +81 -0
  45. package/dist/src/config/resolveConfig.d.ts +22 -0
  46. package/dist/src/config/resolveConfig.d.ts.map +1 -0
  47. package/dist/src/config/resolveConfig.js +32 -0
  48. package/dist/src/config/scaleConfig.d.ts +40 -0
  49. package/dist/src/config/scaleConfig.d.ts.map +1 -0
  50. package/dist/src/config/scaleConfig.js +220 -0
  51. package/dist/src/config/styleUtils.d.ts +6 -0
  52. package/dist/src/config/styleUtils.d.ts.map +1 -0
  53. package/dist/src/config/styleUtils.js +10 -0
  54. package/dist/src/config/themes.d.ts +15 -0
  55. package/dist/src/config/themes.d.ts.map +1 -0
  56. package/dist/src/config/themes.js +293 -0
  57. package/dist/src/config/titleConfig.d.ts +12 -0
  58. package/dist/src/config/titleConfig.d.ts.map +1 -0
  59. package/dist/src/config/titleConfig.js +42 -0
  60. package/dist/src/config/viewConfig.d.ts +7 -0
  61. package/dist/src/config/viewConfig.d.ts.map +1 -0
  62. package/dist/src/config/viewConfig.js +29 -0
  63. package/dist/src/data/flowNode.d.ts +22 -1
  64. package/dist/src/data/flowNode.d.ts.map +1 -1
  65. package/dist/src/data/flowNode.js +37 -1
  66. package/dist/src/data/formats/bed.d.ts +8 -0
  67. package/dist/src/data/formats/bed.d.ts.map +1 -0
  68. package/dist/src/data/formats/bed.js +58 -0
  69. package/dist/src/data/formats/bedpe.d.ts +8 -0
  70. package/dist/src/data/formats/bedpe.d.ts.map +1 -0
  71. package/dist/src/data/formats/bedpe.js +164 -0
  72. package/dist/src/data/formats/fasta.d.ts.map +1 -1
  73. package/dist/src/data/formats/fasta.js +4 -0
  74. package/dist/src/data/formats/parquet.d.ts.map +1 -1
  75. package/dist/src/data/formats/parquet.js +4 -0
  76. package/dist/src/data/sources/dataSourceFactory.d.ts +2 -13
  77. package/dist/src/data/sources/dataSourceFactory.d.ts.map +1 -1
  78. package/dist/src/data/sources/dataSourceFactory.js +5 -141
  79. package/dist/src/data/sources/dataUtils.d.ts +16 -0
  80. package/dist/src/data/sources/dataUtils.d.ts.map +1 -1
  81. package/dist/src/data/sources/dataUtils.js +53 -3
  82. package/dist/src/data/sources/lazy/axisGenomeSource.d.ts.map +1 -1
  83. package/dist/src/data/sources/lazy/axisGenomeSource.js +11 -0
  84. package/dist/src/data/sources/lazy/axisTickSource.d.ts +1 -1
  85. package/dist/src/data/sources/lazy/axisTickSource.d.ts.map +1 -1
  86. package/dist/src/data/sources/lazy/axisTickSource.js +19 -8
  87. package/dist/src/data/sources/lazy/bamSource.d.ts.map +1 -1
  88. package/dist/src/data/sources/lazy/bamSource.js +11 -0
  89. package/dist/src/data/sources/lazy/bigBedSource.d.ts.map +1 -1
  90. package/dist/src/data/sources/lazy/bigBedSource.js +12 -1
  91. package/dist/src/data/sources/lazy/bigWigSource.d.ts.map +1 -1
  92. package/dist/src/data/sources/lazy/bigWigSource.js +11 -0
  93. package/dist/src/data/sources/lazy/gff3Source.d.ts.map +1 -1
  94. package/dist/src/data/sources/lazy/gff3Source.js +12 -1
  95. package/dist/src/data/sources/lazy/indexedFastaSource.d.ts.map +1 -1
  96. package/dist/src/data/sources/lazy/indexedFastaSource.js +11 -0
  97. package/dist/src/data/sources/lazy/lazyDataSourceRegistry.d.ts +27 -0
  98. package/dist/src/data/sources/lazy/lazyDataSourceRegistry.d.ts.map +1 -0
  99. package/dist/src/data/sources/lazy/lazyDataSourceRegistry.js +65 -0
  100. package/dist/src/data/sources/lazy/registerBuiltInLazySources.d.ts +2 -0
  101. package/dist/src/data/sources/lazy/registerBuiltInLazySources.d.ts.map +1 -0
  102. package/dist/src/data/sources/lazy/registerBuiltInLazySources.js +8 -0
  103. package/dist/src/data/sources/lazy/singleAxisLazySource.d.ts.map +1 -1
  104. package/dist/src/data/sources/lazy/singleAxisLazySource.js +11 -2
  105. package/dist/src/data/sources/lazy/vcfSource.d.ts.map +1 -1
  106. package/dist/src/data/sources/lazy/vcfSource.js +11 -0
  107. package/dist/src/data/sources/urlSource.d.ts +4 -0
  108. package/dist/src/data/sources/urlSource.d.ts.map +1 -1
  109. package/dist/src/data/sources/urlSource.js +138 -16
  110. package/dist/src/data/transforms/aggregate.d.ts +1 -0
  111. package/dist/src/data/transforms/aggregate.d.ts.map +1 -1
  112. package/dist/src/data/transforms/aggregate.js +30 -8
  113. package/dist/src/data/transforms/aggregateOps.d.ts.map +1 -1
  114. package/dist/src/data/transforms/aggregateOps.js +12 -1
  115. package/dist/src/data/transforms/coverage.js +2 -2
  116. package/dist/src/data/transforms/filter.js +1 -1
  117. package/dist/src/data/transforms/filterScoredLabels.d.ts +6 -0
  118. package/dist/src/data/transforms/filterScoredLabels.d.ts.map +1 -1
  119. package/dist/src/data/transforms/filterScoredLabels.js +9 -0
  120. package/dist/src/data/transforms/measureText.d.ts +1 -0
  121. package/dist/src/data/transforms/measureText.d.ts.map +1 -1
  122. package/dist/src/data/transforms/measureText.js +14 -5
  123. package/dist/src/data/transforms/pileup.d.ts.map +1 -1
  124. package/dist/src/data/transforms/pileup.js +1 -2
  125. package/dist/src/data/transforms/regexFold.d.ts.map +1 -1
  126. package/dist/src/data/transforms/regexFold.js +0 -1
  127. package/dist/src/embedFactory.d.ts +13 -0
  128. package/dist/src/embedFactory.d.ts.map +1 -0
  129. package/dist/src/embedFactory.js +127 -0
  130. package/dist/src/encoder/accessor.d.ts +3 -12
  131. package/dist/src/encoder/accessor.d.ts.map +1 -1
  132. package/dist/src/encoder/accessor.js +10 -65
  133. package/dist/src/encoder/encoder.d.ts +51 -8
  134. package/dist/src/encoder/encoder.d.ts.map +1 -1
  135. package/dist/src/encoder/encoder.js +179 -55
  136. package/dist/src/fonts/bmFontManager.js +1 -1
  137. package/dist/src/full.d.ts +2 -0
  138. package/dist/src/full.d.ts.map +1 -0
  139. package/dist/src/full.js +2 -0
  140. package/dist/src/genome/assemblyPreflight.d.ts +31 -0
  141. package/dist/src/genome/assemblyPreflight.d.ts.map +1 -0
  142. package/dist/src/genome/assemblyPreflight.js +99 -0
  143. package/dist/src/genome/genome.d.ts +10 -2
  144. package/dist/src/genome/genome.d.ts.map +1 -1
  145. package/dist/src/genome/genome.js +20 -2
  146. package/dist/src/genome/genomeStore.d.ts +34 -3
  147. package/dist/src/genome/genomeStore.d.ts.map +1 -1
  148. package/dist/src/genome/genomeStore.js +409 -18
  149. package/dist/src/genome/rootGenomeConfig.d.ts +26 -0
  150. package/dist/src/genome/rootGenomeConfig.d.ts.map +1 -0
  151. package/dist/src/genome/rootGenomeConfig.js +98 -0
  152. package/dist/src/genome/scaleLocus.d.ts.map +1 -1
  153. package/dist/src/genome/scaleLocus.js +26 -7
  154. package/dist/src/genomeSpy/cursorManager.d.ts +69 -0
  155. package/dist/src/genomeSpy/cursorManager.d.ts.map +1 -0
  156. package/dist/src/genomeSpy/cursorManager.js +131 -0
  157. package/dist/src/genomeSpy/headlessBootstrap.d.ts +113 -0
  158. package/dist/src/genomeSpy/headlessBootstrap.d.ts.map +1 -0
  159. package/dist/src/genomeSpy/headlessBootstrap.js +246 -0
  160. package/dist/src/genomeSpy/interactionController.d.ts +10 -1
  161. package/dist/src/genomeSpy/interactionController.d.ts.map +1 -1
  162. package/dist/src/genomeSpy/interactionController.js +448 -40
  163. package/dist/src/genomeSpy/interactionDispatcher.d.ts +50 -0
  164. package/dist/src/genomeSpy/interactionDispatcher.d.ts.map +1 -0
  165. package/dist/src/genomeSpy/interactionDispatcher.js +203 -0
  166. package/dist/src/genomeSpy/renderCoordinator.js +1 -1
  167. package/dist/src/genomeSpy/viewContextFactory.d.ts +4 -2
  168. package/dist/src/genomeSpy/viewContextFactory.d.ts.map +1 -1
  169. package/dist/src/genomeSpy/viewContextFactory.js +12 -4
  170. package/dist/src/genomeSpy/viewDataInit.d.ts.map +1 -1
  171. package/dist/src/genomeSpy/viewDataInit.js +7 -3
  172. package/dist/src/genomeSpy.d.ts +1 -114
  173. package/dist/src/genomeSpy.d.ts.map +1 -1
  174. package/dist/src/genomeSpy.js +7 -614
  175. package/dist/src/genomeSpyBase.d.ts +133 -0
  176. package/dist/src/genomeSpyBase.d.ts.map +1 -0
  177. package/dist/src/genomeSpyBase.js +719 -0
  178. package/dist/src/gl/arrayBuilder.d.ts.map +1 -1
  179. package/dist/src/gl/arrayBuilder.js +0 -3
  180. package/dist/src/gl/canvasSizeHelper.d.ts +74 -0
  181. package/dist/src/gl/canvasSizeHelper.d.ts.map +1 -0
  182. package/dist/src/gl/canvasSizeHelper.js +203 -0
  183. package/dist/src/gl/colorUtils.d.ts.map +1 -1
  184. package/dist/src/gl/colorUtils.js +3 -0
  185. package/dist/src/gl/dataToVertices.d.ts.map +1 -1
  186. package/dist/src/gl/dataToVertices.js +13 -8
  187. package/dist/src/gl/glslScaleGenerator.d.ts +2 -2
  188. package/dist/src/gl/glslScaleGenerator.d.ts.map +1 -1
  189. package/dist/src/gl/glslScaleGenerator.js +5 -7
  190. package/dist/src/gl/webGLHelper.d.ts +25 -11
  191. package/dist/src/gl/webGLHelper.d.ts.map +1 -1
  192. package/dist/src/gl/webGLHelper.js +59 -33
  193. package/dist/src/index.d.ts +3 -9
  194. package/dist/src/index.d.ts.map +1 -1
  195. package/dist/src/index.js +5 -111
  196. package/dist/src/marks/__snapshots__/shaderSnapshot.test.js.snap +4462 -0
  197. package/dist/src/marks/link.d.ts.map +1 -1
  198. package/dist/src/marks/link.js +5 -26
  199. package/dist/src/marks/mark.d.ts +8 -1
  200. package/dist/src/marks/mark.d.ts.map +1 -1
  201. package/dist/src/marks/mark.js +67 -21
  202. package/dist/src/marks/markUtils.d.ts +18 -1
  203. package/dist/src/marks/markUtils.d.ts.map +1 -1
  204. package/dist/src/marks/markUtils.js +52 -4
  205. package/dist/src/marks/point.d.ts.map +1 -1
  206. package/dist/src/marks/point.js +6 -26
  207. package/dist/src/marks/rect.d.ts.map +1 -1
  208. package/dist/src/marks/rect.js +13 -21
  209. package/dist/src/marks/rule.d.ts +7 -2
  210. package/dist/src/marks/rule.d.ts.map +1 -1
  211. package/dist/src/marks/rule.js +125 -16
  212. package/dist/src/marks/text.d.ts.map +1 -1
  213. package/dist/src/marks/text.js +5 -47
  214. package/dist/src/minimal.d.ts +8 -0
  215. package/dist/src/minimal.d.ts.map +1 -0
  216. package/dist/src/minimal.js +21 -0
  217. package/dist/src/paramRuntime/viewParamRuntime.d.ts +19 -0
  218. package/dist/src/paramRuntime/viewParamRuntime.d.ts.map +1 -1
  219. package/dist/src/paramRuntime/viewParamRuntime.js +35 -0
  220. package/dist/src/scale/scale.d.ts.map +1 -1
  221. package/dist/src/scale/scale.js +13 -7
  222. package/dist/src/scales/axisResolution.d.ts.map +1 -1
  223. package/dist/src/scales/axisResolution.js +9 -5
  224. package/dist/src/scales/domainPlanner.d.ts +58 -7
  225. package/dist/src/scales/domainPlanner.d.ts.map +1 -1
  226. package/dist/src/scales/domainPlanner.js +395 -40
  227. package/dist/src/scales/indexLikeDomainUtils.d.ts +29 -0
  228. package/dist/src/scales/indexLikeDomainUtils.d.ts.map +1 -0
  229. package/dist/src/scales/indexLikeDomainUtils.js +67 -0
  230. package/dist/src/scales/resolutionMemberOrder.d.ts +15 -0
  231. package/dist/src/scales/resolutionMemberOrder.d.ts.map +1 -0
  232. package/dist/src/scales/resolutionMemberOrder.js +22 -0
  233. package/dist/src/scales/scaleInstanceManager.d.ts +2 -1
  234. package/dist/src/scales/scaleInstanceManager.d.ts.map +1 -1
  235. package/dist/src/scales/scaleInstanceManager.js +10 -11
  236. package/dist/src/scales/scaleInteractionController.d.ts.map +1 -1
  237. package/dist/src/scales/scaleInteractionController.js +59 -18
  238. package/dist/src/scales/scalePropsResolver.d.ts +3 -1
  239. package/dist/src/scales/scalePropsResolver.d.ts.map +1 -1
  240. package/dist/src/scales/scalePropsResolver.js +83 -6
  241. package/dist/src/scales/scaleResolution.d.ts +39 -0
  242. package/dist/src/scales/scaleResolution.d.ts.map +1 -1
  243. package/dist/src/scales/scaleResolution.js +504 -82
  244. package/dist/src/scales/scaleResolutionTestUtils.d.ts +21 -0
  245. package/dist/src/scales/scaleResolutionTestUtils.d.ts.map +1 -0
  246. package/dist/src/scales/scaleResolutionTestUtils.js +37 -0
  247. package/dist/src/scales/scaleRules.d.ts.map +1 -1
  248. package/dist/src/scales/scaleRules.js +16 -2
  249. package/dist/src/scales/selectionDomainUtils.d.ts +52 -0
  250. package/dist/src/scales/selectionDomainUtils.d.ts.map +1 -0
  251. package/dist/src/scales/selectionDomainUtils.js +194 -0
  252. package/dist/src/scales/zoomDomainUtils.d.ts +18 -0
  253. package/dist/src/scales/zoomDomainUtils.d.ts.map +1 -0
  254. package/dist/src/scales/zoomDomainUtils.js +69 -0
  255. package/dist/src/screenshotHarness.d.ts +16 -0
  256. package/dist/src/screenshotHarness.d.ts.map +1 -0
  257. package/dist/src/screenshotHarness.js +241 -0
  258. package/dist/src/singlePageApp.js +1 -1
  259. package/dist/src/spec/axis.d.ts +41 -30
  260. package/dist/src/spec/channel.d.ts +15 -9
  261. package/dist/src/spec/config.d.ts +264 -0
  262. package/dist/src/spec/data.d.ts +30 -3
  263. package/dist/src/spec/decoration.d.ts +51 -0
  264. package/dist/src/spec/exampleFiles.d.ts +12 -0
  265. package/dist/src/spec/exampleFiles.d.ts.map +1 -0
  266. package/dist/src/spec/exampleFiles.js +52 -0
  267. package/dist/src/spec/font.d.ts +1 -1
  268. package/dist/src/spec/genome.d.ts +22 -2
  269. package/dist/src/spec/mark.d.ts +97 -13
  270. package/dist/src/spec/parameter.d.ts +62 -5
  271. package/dist/src/spec/root.d.ts +34 -1
  272. package/dist/src/spec/scale.d.ts +46 -5
  273. package/dist/src/spec/title.d.ts +13 -2
  274. package/dist/src/spec/tooltip.d.ts +1 -1
  275. package/dist/src/spec/transform.d.ts +39 -4
  276. package/dist/src/spec/view.d.ts +67 -19
  277. package/dist/src/styles/genome-spy.css +63 -55
  278. package/dist/src/styles/genome-spy.css.d.ts +1 -1
  279. package/dist/src/styles/genome-spy.css.d.ts.map +1 -1
  280. package/dist/src/styles/genome-spy.css.js +31 -22
  281. package/dist/src/testSetup.d.ts +2 -0
  282. package/dist/src/testSetup.d.ts.map +1 -0
  283. package/dist/src/testSetup.js +5 -0
  284. package/dist/src/tooltip/dataTooltipHandler.js +66 -11
  285. package/dist/src/tooltip/tooltipContext.d.ts.map +1 -1
  286. package/dist/src/tooltip/tooltipContext.js +3 -2
  287. package/dist/src/types/embedApi.d.ts +26 -0
  288. package/dist/src/types/encoder.d.ts +17 -15
  289. package/dist/src/types/scaleResolutionApi.d.ts +20 -0
  290. package/dist/src/types/viewContext.d.ts +23 -1
  291. package/dist/src/utils/expression.d.ts +2 -2
  292. package/dist/src/utils/expression.d.ts.map +1 -1
  293. package/dist/src/utils/expression.js +63 -8
  294. package/dist/src/utils/field.d.ts.map +1 -1
  295. package/dist/src/utils/field.js +0 -1
  296. package/dist/src/utils/inertia.d.ts.map +1 -1
  297. package/dist/src/utils/inertia.js +0 -1
  298. package/dist/src/utils/inferSpecBaseUrl.d.ts +14 -0
  299. package/dist/src/utils/inferSpecBaseUrl.d.ts.map +1 -0
  300. package/dist/src/utils/inferSpecBaseUrl.js +73 -0
  301. package/dist/src/utils/inputBinding.d.ts +1 -1
  302. package/dist/src/utils/interaction.d.ts +109 -0
  303. package/dist/src/utils/interaction.d.ts.map +1 -0
  304. package/dist/src/utils/interaction.js +200 -0
  305. package/dist/src/utils/interactionEvent.d.ts +62 -33
  306. package/dist/src/utils/interactionEvent.d.ts.map +1 -1
  307. package/dist/src/utils/interactionEvent.js +86 -48
  308. package/dist/src/utils/kWayMerge.js +1 -1
  309. package/dist/src/utils/mergeObjects.d.ts.map +1 -1
  310. package/dist/src/utils/mergeObjects.js +0 -2
  311. package/dist/src/utils/radixSort.d.ts.map +1 -1
  312. package/dist/src/utils/radixSort.js +0 -2
  313. package/dist/src/utils/throttle.d.ts.map +1 -1
  314. package/dist/src/utils/throttle.js +0 -2
  315. package/dist/src/utils/ui/tooltip.d.ts +1 -0
  316. package/dist/src/utils/ui/tooltip.d.ts.map +1 -1
  317. package/dist/src/utils/ui/tooltip.js +1 -0
  318. package/dist/src/utils/url.js +1 -1
  319. package/dist/src/view/axisGridView.d.ts +1 -1
  320. package/dist/src/view/axisGridView.d.ts.map +1 -1
  321. package/dist/src/view/axisGridView.js +2 -47
  322. package/dist/src/view/axisView.d.ts +2 -3
  323. package/dist/src/view/axisView.d.ts.map +1 -1
  324. package/dist/src/view/axisView.js +251 -106
  325. package/dist/src/view/concatView.d.ts +2 -1
  326. package/dist/src/view/concatView.d.ts.map +1 -1
  327. package/dist/src/view/concatView.js +4 -2
  328. package/dist/src/view/containerMutationHelper.d.ts +3 -0
  329. package/dist/src/view/containerMutationHelper.d.ts.map +1 -1
  330. package/dist/src/view/containerMutationHelper.js +12 -1
  331. package/dist/src/view/dataReadiness.d.ts +2 -2
  332. package/dist/src/view/dataReadiness.d.ts.map +1 -1
  333. package/dist/src/view/dataReadiness.js +63 -58
  334. package/dist/src/view/facetView.d.ts +1 -1
  335. package/dist/src/view/facetView.js +4 -4
  336. package/dist/src/view/flowBuilder.js +2 -2
  337. package/dist/src/view/gridView/gridChild.d.ts +13 -0
  338. package/dist/src/view/gridView/gridChild.d.ts.map +1 -1
  339. package/dist/src/view/gridView/gridChild.js +247 -49
  340. package/dist/src/view/gridView/gridView.d.ts.map +1 -1
  341. package/dist/src/view/gridView/gridView.js +296 -99
  342. package/dist/src/view/gridView/keyboardZoomController.d.ts +2 -2
  343. package/dist/src/view/gridView/keyboardZoomController.d.ts.map +1 -1
  344. package/dist/src/view/gridView/keyboardZoomController.js +1 -1
  345. package/dist/src/view/gridView/scrollbar.d.ts.map +1 -1
  346. package/dist/src/view/gridView/scrollbar.js +4 -2
  347. package/dist/src/view/gridView/selectionRect.d.ts +4 -0
  348. package/dist/src/view/gridView/selectionRect.d.ts.map +1 -1
  349. package/dist/src/view/gridView/selectionRect.js +20 -1
  350. package/dist/src/view/gridView/separatorView.d.ts +1 -0
  351. package/dist/src/view/gridView/separatorView.d.ts.map +1 -1
  352. package/dist/src/view/gridView/separatorView.js +9 -0
  353. package/dist/src/view/interactionRouting.d.ts +20 -0
  354. package/dist/src/view/interactionRouting.d.ts.map +1 -0
  355. package/dist/src/view/interactionRouting.js +53 -0
  356. package/dist/src/view/layerView.d.ts.map +1 -1
  357. package/dist/src/view/layerView.js +12 -9
  358. package/dist/src/view/layout/grid.js +1 -1
  359. package/dist/src/view/renderingContext/bufferedViewRenderingContext.d.ts.map +1 -1
  360. package/dist/src/view/renderingContext/bufferedViewRenderingContext.js +0 -2
  361. package/dist/src/view/testUtils.d.ts +17 -3
  362. package/dist/src/view/testUtils.d.ts.map +1 -1
  363. package/dist/src/view/testUtils.js +62 -69
  364. package/dist/src/view/title.d.ts +8 -1
  365. package/dist/src/view/title.d.ts.map +1 -1
  366. package/dist/src/view/title.js +66 -76
  367. package/dist/src/view/unitView.d.ts +1 -1
  368. package/dist/src/view/unitView.d.ts.map +1 -1
  369. package/dist/src/view/unitView.js +67 -17
  370. package/dist/src/view/view.d.ts +76 -30
  371. package/dist/src/view/view.d.ts.map +1 -1
  372. package/dist/src/view/view.js +136 -47
  373. package/dist/src/view/viewFactory.d.ts +11 -3
  374. package/dist/src/view/viewFactory.d.ts.map +1 -1
  375. package/dist/src/view/viewFactory.js +37 -11
  376. package/dist/src/view/viewUtils.d.ts.map +1 -1
  377. package/dist/src/view/viewUtils.js +41 -5
  378. package/dist/src/view/zoom.d.ts +15 -3
  379. package/dist/src/view/zoom.d.ts.map +1 -1
  380. package/dist/src/view/zoom.js +375 -80
  381. package/package.json +20 -10
  382. package/dist/bundle/AbortablePromiseCache-Dj0vzLnp.js +0 -149
  383. package/dist/bundle/browser-0iNU5Wit.js +0 -138
  384. package/dist/bundle/index-BYsZN7b0.js +0 -1597
  385. package/dist/bundle/index-C3kClAEN.js +0 -1771
  386. package/dist/bundle/index-C7wOh6y1.js +0 -657
  387. package/dist/bundle/index-CRaQAuki.js +0 -326
  388. package/dist/bundle/index-D9v1PCj9.js +0 -507
  389. package/dist/bundle/index-GDOuv_D5.js +0 -266
  390. package/dist/bundle/index-Gt44EOIH.js +0 -628
  391. package/dist/bundle/inflate-GtwLkvSP.js +0 -1048
  392. package/dist/bundle/parquetRead-BnAGCa4_.js +0 -1663
  393. package/dist/bundle/unzip-Bac01w6X.js +0 -1492
  394. package/dist/src/config/scaleDefaults.d.ts +0 -8
  395. package/dist/src/config/scaleDefaults.d.ts.map +0 -1
  396. package/dist/src/config/scaleDefaults.js +0 -45
@@ -1,5 +1,6 @@
1
1
  import { PrimaryPositionalChannel, Scalar } from "./channel.js";
2
2
  import { ShadowProps } from "./mark.js";
3
+ import { ZIndexProps } from "./decoration.js";
3
4
 
4
5
  export interface ExprRef {
5
6
  /**
@@ -177,14 +178,20 @@ export type SelectionInitInterval =
177
178
  | Vector2<number>
178
179
  | Vector2<string>;
179
180
 
180
- export type InteractionEventType = "click" | "dblclick" | "mouseover";
181
+ export type InteractionEventType =
182
+ | "click"
183
+ | "dblclick"
184
+ | "mouseenter"
185
+ | "mouseleave"
186
+ | "mouseover"
187
+ | "mousedown"
188
+ | "wheel";
181
189
 
182
- // TODO: merge with InteractionEventType
183
- export type DomEventType = "click" | "dblclick" | "mouseover" | "pointerover";
190
+ export type DomEventType = InteractionEventType | "pointerover";
184
191
 
185
192
  export interface EventConfig {
186
193
  /**
187
- * The type of event to listen to. For example, `"click"` or `"mouseover"`.
194
+ * The type of event to listen to. For example, `"click"` or `"mouseenter"`.
188
195
  */
189
196
  type: DomEventType;
190
197
 
@@ -208,6 +215,13 @@ export interface BaseSelectionConfig<T extends SelectionType = SelectionType> {
208
215
 
209
216
  /**
210
217
  * A string or object that defines the events to which the selection should listen.
218
+ *
219
+ * __Default value:__
220
+ *
221
+ * - point selections: `"click"`
222
+ * - interval selections:
223
+ * - `"mousedown[event.shiftKey]"` when any brushed channel is zoomable
224
+ * - `"mousedown"` otherwise
211
225
  */
212
226
  on?: DomEventType | EventConfig | string;
213
227
 
@@ -247,9 +261,35 @@ export interface IntervalSelectionConfig extends BaseSelectionConfig<"interval">
247
261
  * Use the `mark` property to adjust the appearance of this rectangle.
248
262
  */
249
263
  mark?: BrushConfig;
264
+
265
+ /**
266
+ * Controls whether an active interval selection can be resized by mouse wheel.
267
+ * The wheel interaction only applies when the cursor is over the interval.
268
+ *
269
+ * Can be:
270
+ *
271
+ * - `true` / `false`
272
+ * - event type string such as `"wheel"` or `"wheel[event.altKey]"`
273
+ * - an `EventConfig` object
274
+ *
275
+ * Currently, only `"wheel"` events are supported.
276
+ *
277
+ * __Default value:__
278
+ *
279
+ * - `false` when any brushed channel uses a zoomable scale
280
+ * - `true` otherwise
281
+ */
282
+ zoom?: DomEventType | EventConfig | string | boolean;
250
283
  }
251
284
 
252
- export interface BrushConfig extends ShadowProps {
285
+ export interface BrushConfig extends ShadowProps, ZIndexProps {
286
+ /**
287
+ * Mouse cursor shown while the pointer is over the interval mark.
288
+ *
289
+ * __Default value:__ `{ expr: "intervalDragActive ? 'grabbing' : 'move'" }`
290
+ */
291
+ cursor?: string | ExprRef;
292
+
253
293
  /**
254
294
  * The fill color of the interval mark.
255
295
  *
@@ -286,6 +326,23 @@ export interface BrushConfig extends ShadowProps {
286
326
  */
287
327
  strokeWidth?: number;
288
328
 
329
+ /**
330
+ * Whether the brush rectangle should be clipped to the viewport.
331
+ *
332
+ * __Default value:__ `true`
333
+ */
334
+ clip?: boolean | "never";
335
+
336
+ /**
337
+ * Z-order of the interval mark relative to the view content.
338
+ *
339
+ * Values greater than `0` render after the view marks. Values less than or
340
+ * equal to `0` render before the marks.
341
+ *
342
+ * __Default value:__ `1`
343
+ */
344
+ zindex?: number;
345
+
289
346
  /**
290
347
  * Where to display the measurement text (e.g., number of base pairs) for the interval selection.
291
348
  *
@@ -1,9 +1,29 @@
1
- import { GenomeConfig } from "./genome.js";
1
+ import { GenomeConfig, GenomeDefinition } from "./genome.js";
2
+ import { BuiltInThemeName, GenomeSpyConfig } from "./config.js";
2
3
  import { ViewSpec } from "./view.js";
3
4
 
5
+ export type NamedGenomeConfig = GenomeDefinition | Record<string, never>;
6
+
4
7
  export interface RootConfig {
5
8
  $schema?: string;
6
9
 
10
+ /**
11
+ * Named genome assembly definitions.
12
+ *
13
+ * Each object key is the assembly name.
14
+ */
15
+ genomes?: Record<string, NamedGenomeConfig>;
16
+
17
+ /**
18
+ * Default assembly for locus scales that do not define `scale.assembly`.
19
+ *
20
+ * Can reference either a key in `genomes` or a built-in assembly name.
21
+ */
22
+ assembly?: string;
23
+
24
+ /**
25
+ * @deprecated Legacy root-level genome config. Use `genomes` and `assembly` instead.
26
+ */
7
27
  genome?: GenomeConfig;
8
28
 
9
29
  baseUrl?: string;
@@ -17,6 +37,19 @@ export interface RootConfig {
17
37
  * https://vega.github.io/vega-lite/docs/data.html#datasets
18
38
  */
19
39
  datasets?: Record<string, any[]>;
40
+
41
+ /**
42
+ * Global configuration defaults and theme tokens.
43
+ *
44
+ * The configuration is inherited by descendant views and can be overridden
45
+ * by view-local `config` objects.
46
+ */
47
+ config?: GenomeSpyConfig;
48
+
49
+ /**
50
+ * Selects built-in theme preset(s) for the whole visualization.
51
+ */
52
+ theme?: BuiltInThemeName | BuiltInThemeName[];
20
53
  }
21
54
 
22
55
  export type RootSpec = ViewSpec & RootConfig;
@@ -8,7 +8,7 @@
8
8
  * BSD-3-Clause License: https://github.com/vega/vega-lite/blob/master/LICENSE
9
9
  */
10
10
 
11
- import { ChromosomalLocus } from "./genome.js";
11
+ import { ChromosomalLocus, GenomeDefinition } from "./genome.js";
12
12
  import { ExprRef } from "./parameter.js";
13
13
 
14
14
  export type ScaleType =
@@ -48,10 +48,16 @@ export interface Scale {
48
48
  type?: ScaleType;
49
49
 
50
50
  /**
51
- * The genome assembly name for locus scales. If undefined, the default
52
- * genome from the genome store is used.
51
+ * Genome assembly definition for locus scales.
52
+ *
53
+ * This can be:
54
+ *
55
+ * - A string reference to a named assembly (built-in or root-configured).
56
+ * - An inline anonymous assembly that defines either `contigs` or `url`.
57
+ *
58
+ * If undefined, the default genome from the genome store is used.
53
59
  */
54
- assembly?: string;
60
+ assembly?: string | InlineLocusAssembly;
55
61
 
56
62
  /**
57
63
  * Customized domain values.
@@ -62,7 +68,7 @@ export interface Scale {
62
68
  *
63
69
  * For _ordinal_ and _nominal_ fields, `domain` can be an array that lists valid input values.
64
70
  */
65
- domain?: ScalarDomain | ComplexDomain;
71
+ domain?: ScalarDomain | ComplexDomain | SelectionDomainRef;
66
72
 
67
73
  /**
68
74
  * Inserts a single mid-point value into a two-element domain. The mid-point value must lie between the domain minimum and maximum values. This property can be useful for setting a midpoint for [diverging color scales](https://vega.github.io/vega-lite/docs/scale.html#piecewise). The domainMid property is only intended for use with scales supporting continuous, piecewise domains.
@@ -228,6 +234,41 @@ export interface Scale {
228
234
  * If `true` and the scale is used on a positional channel, it can bee zoomed and translated interactively.
229
235
  */
230
236
  zoom?: boolean | ZoomParams;
237
+
238
+ /**
239
+ * The numbering offset used when formatting tick labels on index and locus scales.
240
+ *
241
+ * __Default value:__ `0`
242
+ */
243
+ numberingOffset?: number;
244
+ }
245
+
246
+ export type InlineLocusAssembly = GenomeDefinition;
247
+
248
+ export interface SelectionDomainRef {
249
+ /**
250
+ * Name of an interval selection parameter that provides the domain.
251
+ */
252
+ param: string;
253
+
254
+ /**
255
+ * Initial configured domain for the linked scale when the linked interval
256
+ * selection is empty.
257
+ *
258
+ * Only supported when the linked scale is zoomable.
259
+ *
260
+ * Clearing the linked interval selection resets the domain to the normal
261
+ * default/data-derived domain instead of restoring `initial`.
262
+ */
263
+ initial?: ScalarDomain | ComplexDomain;
264
+
265
+ /**
266
+ * Selection interval channel to use.
267
+ *
268
+ * If omitted, GenomeSpy infers the channel from the scale channel when
269
+ * possible (e.g., `x` -> `x`, `x2` -> `x`, `y` -> `y`, `y2` -> `y`).
270
+ */
271
+ encoding?: "x" | "y";
231
272
  }
232
273
 
233
274
  export interface SchemeParams {
@@ -10,12 +10,13 @@
10
10
 
11
11
  import { Align, Baseline, FontStyle, FontWeight } from "./font.js";
12
12
  import { ExprRef } from "./parameter.js";
13
+ import { ZIndexProps } from "./decoration.js";
13
14
 
14
15
  export type TitleOrient = "none" | "left" | "right" | "top" | "bottom";
15
16
  export type TitleAnchor = null | "start" | "middle" | "end";
16
17
  export type TitleFrame = "bounds" | "group";
17
18
 
18
- export interface Title {
19
+ export interface Title extends ZIndexProps {
19
20
  /**
20
21
  * The title text.
21
22
  */
@@ -24,7 +25,7 @@ export interface Title {
24
25
  /**
25
26
  * A mark style property to apply to the title text mark. If not specified, a default style of `"group-title"` is applied.
26
27
  */
27
- style?: string;
28
+ style?: string | string[];
28
29
 
29
30
  /**
30
31
  * The anchor position for placing the title and subtitle text. One of `"start"`, `"middle"`, or `"end"`. For example, with an orientation of top these anchor positions map to a left-, center-, or right-aligned title.
@@ -41,6 +42,16 @@ export interface Title {
41
42
  */
42
43
  offset?: number;
43
44
 
45
+ /**
46
+ * Z-order of the title relative to the view content.
47
+ *
48
+ * Values greater than `0` render after the view marks. Values less than or
49
+ * equal to `0` render before the marks.
50
+ *
51
+ * __Default value:__ `1`
52
+ */
53
+ zindex?: number;
54
+
44
55
  /**
45
56
  * Default title orientation (`"none"`, `"top"`, `"bottom"`, `"left"`, or `"right"`)
46
57
  */
@@ -6,4 +6,4 @@ export interface HandledTooltip {
6
6
 
7
7
  // TODO: Encoding / data: https://vega.github.io/vega-lite/docs/tooltip.html#encoding
8
8
 
9
- export type Tooltip = HandledTooltip | null;
9
+ export type Tooltip = HandledTooltip | null | false;
@@ -1,4 +1,5 @@
1
1
  import { PositionalChannel } from "./channel.js";
2
+ import { FontStyle, FontWeight } from "./font.js";
2
3
  import { ExprRef } from "./parameter.js";
3
4
 
4
5
  /**
@@ -177,7 +178,7 @@ export interface StackParams extends TransformParamsBase {
177
178
  *
178
179
  * **Default:** `["y0", "y1"]`
179
180
  */
180
- as: string[];
181
+ as?: string[];
181
182
 
182
183
  /**
183
184
  * Cardinality, e.g., the number if distinct bases or amino acids. Used for
@@ -204,7 +205,9 @@ export type AggregateOp =
204
205
  | "min"
205
206
  | "max"
206
207
  | "mean"
208
+ | "q1"
207
209
  | "median"
210
+ | "q3"
208
211
  | "variance";
209
212
 
210
213
  export interface AggregateParams extends TransformParamsBase {
@@ -225,7 +228,7 @@ export interface AggregateParams extends TransformParamsBase {
225
228
 
226
229
  /**
227
230
  * The aggregation operations to be performed on the fields, such as `"sum"`,
228
- * `"average"`, or `"count"`.
231
+ * `"q1"`, `"median"`, `"q3"`, or `"count"`.
229
232
  */
230
233
  ops?: AggregateOp[];
231
234
 
@@ -424,13 +427,45 @@ export interface SampleParams extends TransformParamsBase {
424
427
  export interface MeasureTextParams extends TransformParamsBase {
425
428
  type: "measureText";
426
429
 
430
+ /**
431
+ * The field that contains the text to be measured.
432
+ */
427
433
  field: Field;
428
434
 
435
+ /**
436
+ * The font size in pixels.
437
+ */
429
438
  fontSize: number | ExprRef;
430
439
 
431
- as: string;
440
+ /**
441
+ * The font typeface. Uses the same asynchronously loaded SDF fonts as the
442
+ * `"text"` mark.
443
+ *
444
+ * **Default:** `"Lato"`
445
+ */
446
+ font?: string;
447
+
448
+ /**
449
+ * The font style. Valid values: `"normal"` and `"italic"`.
450
+ *
451
+ * **Default:** `"normal"`
452
+ */
453
+ fontStyle?: FontStyle;
454
+
455
+ /**
456
+ * The font weight. The following strings and numbers are valid values:
457
+ * `"thin"` (`100`), `"light"` (`300`), `"regular"` (`400`),
458
+ * `"normal"` (`400`), `"medium"` (`500`), `"bold"` (`700`),
459
+ * `"black"` (`900`)
460
+ *
461
+ * **Default:** `"regular"`
462
+ */
463
+ fontWeight?: FontWeight;
432
464
 
433
- // TODO: FontFamily etc
465
+ /**
466
+ * The output field where the measured width is written.
467
+ */
468
+ as: string;
434
469
  }
435
470
 
436
471
  export interface MergeFacetsParams extends TransformParamsBase {
@@ -6,17 +6,12 @@ import {
6
6
  FacetFieldDef,
7
7
  PrimaryPositionalChannel,
8
8
  } from "./channel.js";
9
- import {
10
- FillAndStrokeProps,
11
- MarkProps,
12
- MarkType,
13
- RectProps,
14
- RuleProps,
15
- ShadowProps,
16
- } from "./mark.js";
9
+ import { MarkProps, MarkType, RuleProps } from "./mark.js";
17
10
  import { ExprRef } from "./parameter.js";
18
11
  import { Title } from "./title.js";
19
12
  import { Parameter } from "./parameter.js";
13
+ import { GenomeSpyConfig } from "./config.js";
14
+ import { ViewBackgroundProps, ZIndexProps } from "./decoration.js";
20
15
 
21
16
  export interface SizeDef {
22
17
  /**
@@ -84,22 +79,50 @@ export type Paddings = Partial<Record<Side, number>>;
84
79
 
85
80
  export type PaddingConfig = Paddings | number;
86
81
 
87
- interface CompleteViewBackground extends RectProps, FillAndStrokeProps {
88
- // TODO: style?: string | string[];
82
+ export interface ViewBackground extends ViewBackgroundProps {
83
+ /**
84
+ * Named style reference(s) resolved from `config.style`.
85
+ * If an array is provided, later styles override earlier ones.
86
+ *
87
+ * __Default value:__ `"cell"`
88
+ */
89
+ style?: string | string[];
89
90
 
90
- // TODO: Move to FillAndStrokeProps or something
91
- strokeWidth?: number;
92
- }
91
+ /**
92
+ * Z-order of the background fill relative to the view content.
93
+ *
94
+ * Values greater than `0` render after the view marks. Values less than or
95
+ * equal to `0` render before the marks.
96
+ *
97
+ * __Default value:__ `0`
98
+ */
99
+ zindex?: number;
93
100
 
94
- export type ViewBackground = Pick<
95
- CompleteViewBackground,
96
- "fill" | "fillOpacity" | "stroke" | "strokeWidth" | "strokeOpacity"
97
- > &
98
- ShadowProps;
101
+ /**
102
+ * Z-order of the background stroke relative to the view content.
103
+ *
104
+ * Values greater than `0` render after the view marks. Values less than or
105
+ * equal to `0` render before the marks.
106
+ *
107
+ * __Default value:__ `0`, or `10` when the view content is clipped or
108
+ * scrollable.
109
+ */
110
+ strokeZindex?: number;
111
+ }
99
112
 
100
- export interface SeparatorProps extends Omit<RuleProps, "type"> {
113
+ export interface SeparatorProps extends Omit<RuleProps, "type">, ZIndexProps {
101
114
  type?: "rule";
102
115
 
116
+ /**
117
+ * Z-order of the separator relative to the view content.
118
+ *
119
+ * Values greater than `0` render after the view marks. Values less than or
120
+ * equal to `0` render before the marks.
121
+ *
122
+ * __Default value:__ `0`
123
+ */
124
+ zindex?: number;
125
+
103
126
  /**
104
127
  * Whether separators extend into the plot margin (axes/padding) around
105
128
  * the grid.
@@ -118,6 +141,15 @@ export interface ViewSpecBase extends ResolveSpec {
118
141
  */
119
142
  name?: string;
120
143
 
144
+ /**
145
+ * Mouse cursor shown while the pointer is inside the view.
146
+ * The deepest matching cursor wins: mark cursor first, then the pointed
147
+ * view, then ancestor views outward toward the root.
148
+ *
149
+ * __Default value:__ browser default
150
+ */
151
+ cursor?: string | ExprRef;
152
+
121
153
  /**
122
154
  * Height of the view. If a number, it is interpreted as pixels.
123
155
  * Check [child sizing](https://genomespy.app/docs/grammar/composition/concat/#child-sizing)
@@ -172,6 +204,13 @@ export interface ViewSpecBase extends ResolveSpec {
172
204
  */
173
205
  params?: Parameter[];
174
206
 
207
+ /**
208
+ * Configures defaults for this view subtree.
209
+ *
210
+ * Properties in child views override properties inherited from ancestors.
211
+ */
212
+ config?: GenomeSpyConfig;
213
+
175
214
  /**
176
215
  * Specifies a [data source](https://genomespy.app/docs/grammar/data/).
177
216
  * If omitted, the data source is inherited from the parent view.
@@ -433,6 +472,15 @@ export interface ImportSpec {
433
472
  */
434
473
  visible?: boolean;
435
474
 
475
+ /**
476
+ * Configures defaults for the imported subtree at the import site.
477
+ *
478
+ * This config is merged before the imported spec's own root-level `config`,
479
+ * so imported specs can remain self-contained and override import-site
480
+ * defaults where needed.
481
+ */
482
+ config?: GenomeSpyConfig;
483
+
436
484
  /**
437
485
  * The method to import a specification.
438
486
  */
@@ -1,17 +1,17 @@
1
- :root {
2
- --genome-spy-basic-spacing: 10px;
3
- --genome-spy-font-family:
4
- system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif,
5
- "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
6
- }
1
+ @scope {
2
+ :scope {
3
+ --genome-spy-basic-spacing: 10px;
4
+ --genome-spy-font-family:
5
+ system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif,
6
+ "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
7
7
 
8
- .genome-spy {
9
- font-family: var(--genome-spy-font-family);
8
+ font-family: var(--genome-spy-font-family);
10
9
 
11
- position: relative;
10
+ position: relative;
12
11
 
13
- display: flex;
14
- flex-direction: column;
12
+ display: flex;
13
+ flex-direction: column;
14
+ }
15
15
 
16
16
  .canvas-wrapper {
17
17
  position: relative;
@@ -21,6 +21,7 @@
21
21
 
22
22
  canvas {
23
23
  display: block;
24
+ touch-action: none;
24
25
  transform: scale(1, 1);
25
26
  opacity: 1;
26
27
  transition:
@@ -163,6 +164,13 @@
163
164
  box-shadow: 0px 0px 3px 1px white;
164
165
  }
165
166
 
167
+ .color-legend-unmapped {
168
+ background-color: transparent;
169
+ border: 1px solid black;
170
+ box-sizing: border-box;
171
+ box-shadow: none;
172
+ }
173
+
166
174
  .attributes {
167
175
  .hovered {
168
176
  background-color: #e0e0e0;
@@ -182,6 +190,50 @@
182
190
  }
183
191
  }
184
192
 
193
+ .gs-input-binding {
194
+ display: grid;
195
+ grid-template-columns: max-content max-content;
196
+ column-gap: 1em;
197
+ row-gap: 0.3em;
198
+ justify-items: start;
199
+
200
+ > select,
201
+ > input:not([type="checkbox"]) {
202
+ width: 100%;
203
+ }
204
+
205
+ input[type="range"] + span {
206
+ display: inline-block;
207
+ margin-left: 0.3em;
208
+ min-width: 2.2em;
209
+ font-variant-numeric: tabular-nums;
210
+ }
211
+
212
+ input[type="range"],
213
+ input[type="radio"] {
214
+ vertical-align: text-bottom;
215
+ }
216
+
217
+ .radio-group {
218
+ display: flex;
219
+ align-items: center;
220
+ }
221
+
222
+ .description {
223
+ max-width: 26em;
224
+ grid-column: 1 / -1;
225
+ color: #777;
226
+ font-size: 90%;
227
+ margin-top: -0.5em;
228
+ }
229
+ }
230
+
231
+ .gs-input-bindings {
232
+ flex-basis: content;
233
+ font-size: 14px;
234
+ padding: var(--genome-spy-basic-spacing);
235
+ }
236
+
185
237
  .message-box {
186
238
  display: flex;
187
239
  align-items: center;
@@ -198,47 +250,3 @@
198
250
  }
199
251
  }
200
252
  }
201
-
202
- .gs-input-binding {
203
- display: grid;
204
- grid-template-columns: max-content max-content;
205
- column-gap: 1em;
206
- row-gap: 0.3em;
207
- justify-items: start;
208
-
209
- > select,
210
- > input:not([type="checkbox"]) {
211
- width: 100%;
212
- }
213
-
214
- input[type="range"] + span {
215
- display: inline-block;
216
- margin-left: 0.3em;
217
- min-width: 2.2em;
218
- font-variant-numeric: tabular-nums;
219
- }
220
-
221
- input[type="range"],
222
- input[type="radio"] {
223
- vertical-align: text-bottom;
224
- }
225
-
226
- .radio-group {
227
- display: flex;
228
- align-items: center;
229
- }
230
-
231
- .description {
232
- max-width: 26em;
233
- grid-column: 1 / -1;
234
- color: #777;
235
- font-size: 90%;
236
- margin-top: -0.5em;
237
- }
238
- }
239
-
240
- .gs-input-bindings {
241
- flex-basis: content;
242
- font-size: 14px;
243
- padding: var(--genome-spy-basic-spacing);
244
- }
@@ -1,3 +1,3 @@
1
1
  export default css;
2
- declare const css: "\n:root {\n--genome-spy-basic-spacing: 10px;\n--genome-spy-font-family: system-ui, \"Segoe UI\", Roboto, Helvetica, Arial,\nsans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n}\n\n.genome-spy {\nfont-family: var(--genome-spy-font-family);\n\nposition: relative;\n\ndisplay: flex;\nflex-direction: column;\n\n.canvas-wrapper {\nposition: relative;\nflex-grow: 1;\noverflow: hidden;\n}\n\ncanvas {\ndisplay: block;\ntransform: scale(1, 1);\nopacity: 1;\ntransition:\ntransform 0.6s,\nopacity 0.6s;\n\n&:focus,\n&:focus-visible {\noutline: none;\n}\n}\n\n.loading {\n> canvas {\ntransform: scale(0.95, 0.95);\nopacity: 0;\n}\n}\n\n.loading-indicators {\nposition: absolute;\ninset: 0;\n\nuser-select: none;\npointer-events: none;\n\ndiv {\nposition: absolute;\ndisplay: flex;\nalign-items: center;\njustify-content: center;\n\n> div {\nfont-size: 11px;\ntransition: opacity 0.2s;\nbackground: white;\npadding: 2px 5px;\ndisplay: flex;\nborder-radius: 3px;\ngap: 0.5em;\nopacity: 0;\n\n&.loading {\nopacity: 0.5;\n}\n\n&.error {\nopacity: 0.8;\ncolor: firebrick;\n}\n\n> * {\ndisplay: block;\n}\n\nimg {\nwidth: 1.5em;\nheight: 1.5em;\n}\n}\n}\n}\n\n.tooltip {\nposition: absolute;\n\nmax-width: 450px;\noverflow: hidden;\n\n--background-color: #f6f6f6;\nbackground: var(--background-color);\npadding: var(--genome-spy-basic-spacing);\n\n--font-size: 12px;\nfont-size: var(--font-size);\n\nbox-shadow: 0px 3px 15px 0px rgba(0, 0, 0, 0.21);\n\n&:not(.sticky) {\npointer-events: none;\n}\n\ntransition:\noutline-color 0.3s ease-in-out,\nbox-shadow 0.3s ease-in-out;\n\noutline: 0px solid transparent;\n&.sticky {\noutline: 2px solid black;\nbox-shadow: 0px 3px 18px 0px rgba(0, 0, 0, 0.3);\n}\n\nz-index: 100;\n\n> :last-child {\nmargin-bottom: 0;\n}\n\n> .title {\npadding-bottom: calc(var(--genome-spy-basic-spacing) / 2);\nmargin-bottom: calc(var(--genome-spy-basic-spacing) / 2);\nborder-bottom: 1px dashed var(--background-color);\nborder-bottom: 1px dashed\ncolor-mix(in srgb, black 25%, var(--background-color));\n}\n\n.summary {\nfont-size: 12px;\n}\n\ntable {\n&:first-child {\nmargin-top: 0;\n}\n\nborder-collapse: collapse;\n\nth,\ntd {\npadding: 2px 0.4em;\nvertical-align: top;\nfont-size: var(--font-size);\n\n&:first-child {\npadding-left: 0;\n}\n}\n\nth {\ntext-align: left;\nfont-weight: bold;\n}\n}\n\n.color-legend {\ndisplay: inline-block;\nwidth: 0.8em;\nheight: 0.8em;\nmargin-left: 0.4em;\nbox-shadow: 0px 0px 3px 1px white;\n}\n\n.attributes {\n.hovered {\nbackground-color: #e0e0e0;\n}\n}\n\n.na {\ncolor: #aaa;\nfont-style: italic;\nfont-size: 80%;\n}\n}\n\n.gene-track-tooltip {\n.summary {\nfont-size: 90%;\n}\n}\n\n.message-box {\ndisplay: flex;\nalign-items: center;\njustify-content: center;\nposition: absolute;\ntop: 0;\nheight: 100%;\nwidth: 100%;\n\n> div {\nborder: 1px solid red;\npadding: 10px;\nbackground: #fff0f0;\n}\n}\n}\n\n.gs-input-binding {\ndisplay: grid;\ngrid-template-columns: max-content max-content;\ncolumn-gap: 1em;\nrow-gap: 0.3em;\njustify-items: start;\n\n> select,\n> input:not([type=\"checkbox\"]) {\nwidth: 100%;\n}\n\ninput[type=\"range\"] + span {\ndisplay: inline-block;\nmargin-left: 0.3em;\nmin-width: 2.2em;\nfont-variant-numeric: tabular-nums;\n}\n\ninput[type=\"range\"],\ninput[type=\"radio\"] {\nvertical-align: text-bottom;\n}\n\n.radio-group {\ndisplay: flex;\nalign-items: center;\n}\n\n.description {\nmax-width: 26em;\ngrid-column: 1 / -1;\ncolor: #777;\nfont-size: 90%;\nmargin-top: -0.5em;\n}\n}\n\n.gs-input-bindings {\nflex-basis: content;\nfont-size: 14px;\npadding: var(--genome-spy-basic-spacing);\n}\n";
2
+ declare const css: "\n@scope {\n:scope {\n--genome-spy-basic-spacing: 10px;\n--genome-spy-font-family:\nsystem-ui, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif,\n\"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n\nfont-family: var(--genome-spy-font-family);\n\nposition: relative;\n\ndisplay: flex;\nflex-direction: column;\n}\n\n.canvas-wrapper {\nposition: relative;\nflex-grow: 1;\noverflow: hidden;\n}\n\ncanvas {\ndisplay: block;\ntouch-action: none;\ntransform: scale(1, 1);\nopacity: 1;\ntransition:\ntransform 0.6s,\nopacity 0.6s;\n\n&:focus,\n&:focus-visible {\noutline: none;\n}\n}\n\n.loading {\n> canvas {\ntransform: scale(0.95, 0.95);\nopacity: 0;\n}\n}\n\n.loading-indicators {\nposition: absolute;\ninset: 0;\n\nuser-select: none;\npointer-events: none;\n\ndiv {\nposition: absolute;\ndisplay: flex;\nalign-items: center;\njustify-content: center;\n\n> div {\nfont-size: 11px;\ntransition: opacity 0.2s;\nbackground: white;\npadding: 2px 5px;\ndisplay: flex;\nborder-radius: 3px;\ngap: 0.5em;\nopacity: 0;\n\n&.loading {\nopacity: 0.5;\n}\n\n&.error {\nopacity: 0.8;\ncolor: firebrick;\n}\n\n> * {\ndisplay: block;\n}\n\nimg {\nwidth: 1.5em;\nheight: 1.5em;\n}\n}\n}\n}\n\n.tooltip {\nposition: absolute;\n\nmax-width: 450px;\noverflow: hidden;\n\n--background-color: #f6f6f6;\nbackground: var(--background-color);\npadding: var(--genome-spy-basic-spacing);\n\n--font-size: 12px;\nfont-size: var(--font-size);\n\nbox-shadow: 0px 3px 15px 0px rgba(0, 0, 0, 0.21);\n\n&:not(.sticky) {\npointer-events: none;\n}\n\ntransition:\noutline-color 0.3s ease-in-out,\nbox-shadow 0.3s ease-in-out;\n\noutline: 0px solid transparent;\n&.sticky {\noutline: 2px solid black;\nbox-shadow: 0px 3px 18px 0px rgba(0, 0, 0, 0.3);\n}\n\nz-index: 100;\n\n> :last-child {\nmargin-bottom: 0;\n}\n\n> .title {\npadding-bottom: calc(var(--genome-spy-basic-spacing) / 2);\nmargin-bottom: calc(var(--genome-spy-basic-spacing) / 2);\nborder-bottom: 1px dashed var(--background-color);\nborder-bottom: 1px dashed\ncolor-mix(in srgb, black 25%, var(--background-color));\n}\n\n.summary {\nfont-size: 12px;\n}\n\ntable {\n&:first-child {\nmargin-top: 0;\n}\n\nborder-collapse: collapse;\n\nth,\ntd {\npadding: 2px 0.4em;\nvertical-align: top;\nfont-size: var(--font-size);\n\n&:first-child {\npadding-left: 0;\n}\n}\n\nth {\ntext-align: left;\nfont-weight: bold;\n}\n}\n\n.color-legend {\ndisplay: inline-block;\nwidth: 0.8em;\nheight: 0.8em;\nmargin-left: 0.4em;\nbox-shadow: 0px 0px 3px 1px white;\n}\n\n.color-legend-unmapped {\nbackground-color: transparent;\nborder: 1px solid black;\nbox-sizing: border-box;\nbox-shadow: none;\n}\n\n.attributes {\n.hovered {\nbackground-color: #e0e0e0;\n}\n}\n\n.na {\ncolor: #aaa;\nfont-style: italic;\nfont-size: 80%;\n}\n}\n\n.gene-track-tooltip {\n.summary {\nfont-size: 90%;\n}\n}\n\n.gs-input-binding {\ndisplay: grid;\ngrid-template-columns: max-content max-content;\ncolumn-gap: 1em;\nrow-gap: 0.3em;\njustify-items: start;\n\n> select,\n> input:not([type=\"checkbox\"]) {\nwidth: 100%;\n}\n\ninput[type=\"range\"] + span {\ndisplay: inline-block;\nmargin-left: 0.3em;\nmin-width: 2.2em;\nfont-variant-numeric: tabular-nums;\n}\n\ninput[type=\"range\"],\ninput[type=\"radio\"] {\nvertical-align: text-bottom;\n}\n\n.radio-group {\ndisplay: flex;\nalign-items: center;\n}\n\n.description {\nmax-width: 26em;\ngrid-column: 1 / -1;\ncolor: #777;\nfont-size: 90%;\nmargin-top: -0.5em;\n}\n}\n\n.gs-input-bindings {\nflex-basis: content;\nfont-size: 14px;\npadding: var(--genome-spy-basic-spacing);\n}\n\n.message-box {\ndisplay: flex;\nalign-items: center;\njustify-content: center;\nposition: absolute;\ntop: 0;\nheight: 100%;\nwidth: 100%;\n\n> div {\nborder: 1px solid red;\npadding: 10px;\nbackground: #fff0f0;\n}\n}\n}\n";
3
3
  //# sourceMappingURL=genome-spy.css.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"genome-spy.css.d.ts","sourceRoot":"","sources":["../../../src/styles/genome-spy.css.js"],"names":[],"mappings":";AAAA,0iHAoPE"}
1
+ {"version":3,"file":"genome-spy.css.d.ts","sourceRoot":"","sources":["../../../src/styles/genome-spy.css.js"],"names":[],"mappings":";AAAA,isHA6PE"}