inklet 4.0.0.dev3__tar.gz → 4.0.0.dev4__tar.gz

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 (957) hide show
  1. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/.github/workflows/publish.yml +2 -2
  2. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/CHANGELOG.md +13 -0
  3. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/PKG-INFO +6 -7
  4. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/README.md +5 -6
  5. inklet-4.0.0.dev4/docs/assets/guides/plots-band.png +0 -0
  6. inklet-4.0.0.dev4/docs/assets/guides/plots-bars.png +0 -0
  7. inklet-4.0.0.dev4/docs/assets/guides/plots-boxplot.png +0 -0
  8. inklet-4.0.0.dev4/docs/assets/guides/plots-errorbars.png +0 -0
  9. inklet-4.0.0.dev4/docs/assets/guides/plots-fill-between.png +0 -0
  10. inklet-4.0.0.dev4/docs/assets/guides/plots-fill.png +0 -0
  11. inklet-4.0.0.dev4/docs/assets/guides/plots-grouped-bars.png +0 -0
  12. inklet-4.0.0.dev4/docs/assets/guides/plots-hist.png +0 -0
  13. inklet-4.0.0.dev4/docs/assets/guides/plots-horizontal-bars.png +0 -0
  14. inklet-4.0.0.dev4/docs/assets/guides/plots-line-errors.png +0 -0
  15. inklet-4.0.0.dev4/docs/assets/guides/plots-line.png +0 -0
  16. inklet-4.0.0.dev4/docs/assets/guides/plots-markers.png +0 -0
  17. inklet-4.0.0.dev4/docs/assets/guides/plots-matrix.png +0 -0
  18. inklet-4.0.0.dev4/docs/assets/guides/plots-polar-curve.png +0 -0
  19. inklet-4.0.0.dev4/docs/assets/guides/plots-rose.png +0 -0
  20. inklet-4.0.0.dev4/docs/assets/guides/plots-scatter.png +0 -0
  21. inklet-4.0.0.dev4/docs/assets/guides/plots-series.png +0 -0
  22. inklet-4.0.0.dev4/docs/assets/guides/plots-stackarea.png +0 -0
  23. inklet-4.0.0.dev4/docs/assets/guides/plots-stacked-bars.png +0 -0
  24. inklet-4.0.0.dev4/docs/assets/guides/plots-step.png +0 -0
  25. inklet-4.0.0.dev4/docs/assets/guides/plots-swarm.png +0 -0
  26. inklet-4.0.0.dev4/docs/assets/guides/plots-violin.png +0 -0
  27. inklet-4.0.0.dev4/docs/bars-and-areas.md +164 -0
  28. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/compatibility.md +1 -1
  29. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/development-preview.md +20 -8
  30. inklet-4.0.0.dev4/docs/distributions.md +104 -0
  31. inklet-4.0.0.dev4/docs/index.md +27 -0
  32. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/installation.md +3 -3
  33. inklet-4.0.0.dev4/docs/interactive-documents.md +52 -0
  34. inklet-4.0.0.dev4/docs/lines-and-points.md +97 -0
  35. inklet-4.0.0.dev4/docs/matrices.md +38 -0
  36. inklet-4.0.0.dev4/docs/plot-types.md +14 -0
  37. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/plotting.md +3 -13
  38. inklet-4.0.0.dev4/docs/polar-plots.md +77 -0
  39. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/publication-plots.md +3 -2
  40. inklet-4.0.0.dev4/docs/uncertainty.md +104 -0
  41. inklet-4.0.0.dev4/gallery/polar.png +0 -0
  42. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/mkdocs.yml +62 -52
  43. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/pyproject.toml +1 -1
  44. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/__init__.py +1 -1
  45. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/plot/polar.py +16 -2
  46. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_docs_site.py +38 -2
  47. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_guides.py +2 -1
  48. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_plot_polar.py +33 -0
  49. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/docs_previews.json +154 -7
  50. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/docs_previews.py +9 -0
  51. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/docs_site.py +1 -0
  52. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/docs_theme/home.html +1 -1
  53. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/docs_theme/main.html +1 -1
  54. inklet-4.0.0.dev4/tools/docs_theme/plot-gallery.html +5 -0
  55. inklet-4.0.0.dev4/tools/plot_catalog.json +314 -0
  56. inklet-4.0.0.dev3/docs/assets/guides/plot-types-1.png +0 -0
  57. inklet-4.0.0.dev3/docs/index.md +0 -67
  58. inklet-4.0.0.dev3/docs/plot-types.md +0 -55
  59. inklet-4.0.0.dev3/gallery/polar.png +0 -0
  60. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/.gitattributes +0 -0
  61. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/.github/workflows/checks.yml +0 -0
  62. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/.gitignore +0 -0
  63. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/.readthedocs.yaml +0 -0
  64. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/CONTRACT.md +0 -0
  65. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/CONTRIBUTING.md +0 -0
  66. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/LICENSE +0 -0
  67. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/THIRD_PARTY_NOTICES.md +0 -0
  68. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/api.md +0 -0
  69. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/brand/inklet-icon.svg +0 -0
  70. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/brand/inklet-logo-dark.svg +0 -0
  71. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/brand/inklet-logo-mono.svg +0 -0
  72. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/brand/inklet-logo.svg +0 -0
  73. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/brand/inklet-wordmark.svg +0 -0
  74. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/examples/quickstart.pdf +0 -0
  75. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/examples/quickstart.png +0 -0
  76. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/examples/quickstart.svg +0 -0
  77. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/axes-and-scales-1.png +0 -0
  78. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/calibrated-volumes-3.png +0 -0
  79. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/channels-and-contours-1.png +0 -0
  80. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-anchor.png +0 -0
  81. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-annotation.png +0 -0
  82. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-bars-histogram.png +0 -0
  83. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-branch.png +0 -0
  84. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-broken-axis.png +0 -0
  85. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-callout.png +0 -0
  86. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-clipping.png +0 -0
  87. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-creases.png +0 -0
  88. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-custom-key.png +0 -0
  89. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-cutout.png +0 -0
  90. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-dates.png +0 -0
  91. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-dense.png +0 -0
  92. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-elbows.png +0 -0
  93. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-equal-boxes.png +0 -0
  94. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-facets.png +0 -0
  95. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-fit-graph.png +0 -0
  96. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-flow-width.png +0 -0
  97. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-formula.png +0 -0
  98. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-graph.png +0 -0
  99. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-halo.png +0 -0
  100. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-heatmap.png +0 -0
  101. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-hole.png +0 -0
  102. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-inline-type.png +0 -0
  103. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-inset.png +0 -0
  104. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-labels.png +0 -0
  105. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-layers.png +0 -0
  106. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-letters.png +0 -0
  107. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-list.png +0 -0
  108. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-matrix.png +0 -0
  109. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-page-grid.png +0 -0
  110. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-polar.png +0 -0
  111. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-protein.png +0 -0
  112. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-routes.png +0 -0
  113. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-scene-overlay.png +0 -0
  114. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-scene.png +0 -0
  115. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-series-key.png +0 -0
  116. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-span.png +0 -0
  117. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-sparse-grid.png +0 -0
  118. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-swarm.png +0 -0
  119. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-text-path.png +0 -0
  120. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-toon.png +0 -0
  121. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-twin-axis.png +0 -0
  122. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-unequal-panels.png +0 -0
  123. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-violin.png +0 -0
  124. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-wrapped-card.png +0 -0
  125. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/data-1.png +0 -0
  126. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/data-3.png +0 -0
  127. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/dense-data-1.png +0 -0
  128. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/diagram-components-1.png +0 -0
  129. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/diagrams-1.png +0 -0
  130. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/layout-3.png +0 -0
  131. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/oblique-sections-2.png +0 -0
  132. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/plot-quality-after.png +0 -0
  133. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/plot-quality-before.png +0 -0
  134. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/plotting-1.png +0 -0
  135. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/plotting-2.png +0 -0
  136. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/publication-plots-1.png +0 -0
  137. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/publication-plots-2.png +0 -0
  138. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/publication-plots-3.png +0 -0
  139. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/publication-plots-4.png +0 -0
  140. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/slabs-and-regions-1.png +0 -0
  141. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/three-images-1.png +0 -0
  142. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/three-images-2.png +0 -0
  143. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/biology.json +0 -0
  144. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/clipping-after.json +0 -0
  145. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/clipping-before.json +0 -0
  146. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/clipping-caption.tex +0 -0
  147. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/clipping-lines-after.json +0 -0
  148. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/clipping-lines-before.json +0 -0
  149. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/comparison.json +0 -0
  150. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/compiled-marker-shapes-caption.tex +0 -0
  151. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/compiled-marker-shapes.html +0 -0
  152. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/compiled-markers-display.json +0 -0
  153. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/compiled-markers-hardware.json +0 -0
  154. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/compiled-scene-viewer.html +0 -0
  155. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/compiled-viewer-display.json +0 -0
  156. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/compiled-viewer-export.json +0 -0
  157. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/compiled-viewer-study.json +0 -0
  158. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/compositing-after.json +0 -0
  159. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/compositing-before.json +0 -0
  160. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/compositing-caption.tex +0 -0
  161. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/dense-scatter-caption.tex +0 -0
  162. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/diagram-after.json +0 -0
  163. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/diagram-before.json +0 -0
  164. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/diagram-review-caption.tex +0 -0
  165. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/engine-after.json +0 -0
  166. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/engine-before.json +0 -0
  167. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/engine-review-caption.tex +0 -0
  168. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/fluorescence-biology.json +0 -0
  169. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/general-plots-caption.tex +0 -0
  170. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/general-plots.json +0 -0
  171. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/hatch-after.json +0 -0
  172. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/hatch-before.json +0 -0
  173. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/hatch-caption.tex +0 -0
  174. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/label-intensities-caption.tex +0 -0
  175. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/label-intensities-native.csv +0 -0
  176. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/label-intensities.json +0 -0
  177. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/lines-after.json +0 -0
  178. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/lines-before.json +0 -0
  179. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/marker-batches.json +0 -0
  180. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/marker-index-after.json +0 -0
  181. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/marker-index-before.json +0 -0
  182. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/marker-index-browser-after.json +0 -0
  183. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/marker-index-browser-before.json +0 -0
  184. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/oblique-biology.json +0 -0
  185. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/plot-engine-review-caption.tex +0 -0
  186. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/real-biology.json +0 -0
  187. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/render-scene-caption.tex +0 -0
  188. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/revision.json +0 -0
  189. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/scenes-after.json +0 -0
  190. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/scenes-before.json +0 -0
  191. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/slab-biology.json +0 -0
  192. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/study.json +0 -0
  193. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/viewer-culling-after.json +0 -0
  194. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/viewer-culling-before.json +0 -0
  195. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/viewer-culling-gpu-after.json +0 -0
  196. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/viewer-culling-gpu-before.json +0 -0
  197. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/viewer-redraw-after.json +0 -0
  198. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/viewer-redraw-before.json +0 -0
  199. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/viewer-redraw-display.json +0 -0
  200. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/viewer-redraw-profile.json +0 -0
  201. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/viewer-window-after.json +0 -0
  202. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/viewer-window-before.json +0 -0
  203. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/viewer-window-display.json +0 -0
  204. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/after.json +0 -0
  205. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/before.json +0 -0
  206. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/browser-quality.json +0 -0
  207. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/browser-scatter.html +0 -0
  208. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/browser-scatter.png +0 -0
  209. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/browser-study.json +0 -0
  210. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/contours-streamlines-170mm.png +0 -0
  211. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/contours-streamlines-masked.png +0 -0
  212. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/contours-streamlines.html +0 -0
  213. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/contours-streamlines.png +0 -0
  214. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/engineering-report-170mm.png +0 -0
  215. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/engineering-report.html +0 -0
  216. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/engineering-report.png +0 -0
  217. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/faceted-operations.html +0 -0
  218. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/faceted-operations.png +0 -0
  219. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/linked-dashboard.html +0 -0
  220. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/linked-dashboard.png +0 -0
  221. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/linked-selection.html +0 -0
  222. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/linked-selection.png +0 -0
  223. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/mesh-fields-170mm.png +0 -0
  224. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/mesh-fields.html +0 -0
  225. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/mesh-fields.png +0 -0
  226. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/region-shapes.html +0 -0
  227. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/region-shapes.png +0 -0
  228. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/regional-analysis.html +0 -0
  229. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/regional-analysis.png +0 -0
  230. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/regional-report-160mm.png +0 -0
  231. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/regional-report.html +0 -0
  232. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/regional-report.png +0 -0
  233. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/scientific-report-170mm.png +0 -0
  234. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/scientific-report.html +0 -0
  235. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/scientific-report.png +0 -0
  236. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/statistical-views.html +0 -0
  237. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/statistical-views.png +0 -0
  238. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/table-inputs.html +0 -0
  239. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/table-inputs.png +0 -0
  240. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/time-series.html +0 -0
  241. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/time-series.png +0 -0
  242. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/visual-overrides.png +0 -0
  243. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/world-population-2019.html +0 -0
  244. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/world-population-2019.json +0 -0
  245. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/world-population-2019.png +0 -0
  246. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/world-population-revisions.html +0 -0
  247. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/world-population-revisions.png +0 -0
  248. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/world-population.html +0 -0
  249. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/world-population.png +0 -0
  250. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/axes-and-scales.md +0 -0
  251. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/biology-panels.md +0 -0
  252. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/blender-scenes.md +0 -0
  253. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/brand.md +0 -0
  254. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/browser-rendering.md +0 -0
  255. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/calibrated-volumes.md +0 -0
  256. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/channels-and-contours.md +0 -0
  257. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/cli.md +0 -0
  258. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/clipping.md +0 -0
  259. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/compiled-scenes.md +0 -0
  260. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/compiled-viewer.md +0 -0
  261. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/complex-scene.md +0 -0
  262. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/compositing.md +0 -0
  263. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/concepts.md +0 -0
  264. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/contours-streamlines.md +0 -0
  265. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/cookbook.md +0 -0
  266. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/data-revisions.md +0 -0
  267. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/data.md +0 -0
  268. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/dense-data.md +0 -0
  269. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/design/browser-backends.md +0 -0
  270. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/design/page_grid.md +0 -0
  271. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/design/v2.md +0 -0
  272. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/design/v4.md +0 -0
  273. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/diagram-components.md +0 -0
  274. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/diagram-engine.md +0 -0
  275. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/diagrams.md +0 -0
  276. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/engineering-report.md +0 -0
  277. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/example-library.md +0 -0
  278. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/examples.md +0 -0
  279. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/export-review.md +0 -0
  280. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/fluorescence-biology.md +0 -0
  281. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/general-plots.md +0 -0
  282. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/hatching.md +0 -0
  283. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/javascripts/inklet.js +0 -0
  284. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/label-intensities.md +0 -0
  285. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/label-measurements.md +0 -0
  286. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/layout.md +0 -0
  287. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/linked-facets.md +0 -0
  288. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/linked-maps.md +0 -0
  289. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/linked-plots.md +0 -0
  290. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/marker-batches.md +0 -0
  291. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/marker-culling.md +0 -0
  292. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/mesh-fields.md +0 -0
  293. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/microscopy-tiff.md +0 -0
  294. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/migration.md +0 -0
  295. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/oblique-biology.md +0 -0
  296. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/oblique-sections.md +0 -0
  297. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/plot-quality.md +0 -0
  298. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/plotting-engine.md +0 -0
  299. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/presets.md +0 -0
  300. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/quickstart.md +0 -0
  301. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/real-biology.md +0 -0
  302. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/recipes/architecture-sketch.md +0 -0
  303. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/recipes/architecture.md +0 -0
  304. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/recipes/attractor.md +0 -0
  305. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/recipes/helix.md +0 -0
  306. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/recipes/interference.md +0 -0
  307. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/recipes/lattice.md +0 -0
  308. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/recipes/photonics.md +0 -0
  309. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/recipes/wave-packets.md +0 -0
  310. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/regional-report.md +0 -0
  311. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/release-checks.md +0 -0
  312. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/render-jobs.md +0 -0
  313. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/rendering-engine.md +0 -0
  314. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/research-preview.md +0 -0
  315. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/research-revision.md +0 -0
  316. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/research-study.md +0 -0
  317. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/roadmap.md +0 -0
  318. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/scene-annotations.md +0 -0
  319. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/scene-paths.md +0 -0
  320. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/scene-templates.md +0 -0
  321. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/scientific-report.md +0 -0
  322. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/showcase.md +0 -0
  323. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/slab-biology.md +0 -0
  324. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/slabs-and-regions.md +0 -0
  325. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/statistical-views.md +0 -0
  326. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/stress20.md +0 -0
  327. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/stylesheets/code.css +0 -0
  328. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/stylesheets/inklet.css +0 -0
  329. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/table-inputs.md +0 -0
  330. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/three-images.md +0 -0
  331. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/time-series.md +0 -0
  332. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/troubleshooting.md +0 -0
  333. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/v2.5.md +0 -0
  334. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/v2.md +0 -0
  335. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/v3.md +0 -0
  336. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/v4-foundations.md +0 -0
  337. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/visual-editing.md +0 -0
  338. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/world-map.md +0 -0
  339. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/biology/README.md +0 -0
  340. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/biology/cells3d.lock.json +0 -0
  341. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/biology/data.py +0 -0
  342. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/biology/fluorescence.py +0 -0
  343. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/biology/organelle.lock.json +0 -0
  344. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/biology/requirements.txt +0 -0
  345. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/biology_panels.py +0 -0
  346. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/blender/complex_lab_scene.py +0 -0
  347. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/blender/lab_scene.py +0 -0
  348. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/blender/occlusion_scene.py +0 -0
  349. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/blender/organelle_scene.py +0 -0
  350. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/blender/research_lab_views.py +0 -0
  351. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/broken_axis.py +0 -0
  352. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/clipping_review.py +0 -0
  353. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/compiled_marker_shapes.py +0 -0
  354. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/compiled_scene_viewer.py +0 -0
  355. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/compositing_review.py +0 -0
  356. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/data/general-plots/benchmark.csv +0 -0
  357. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/data/general-plots/learning.csv +0 -0
  358. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/data/general-plots/revenue.csv +0 -0
  359. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/data/general-plots/sensor.csv +0 -0
  360. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/dense_scatter_review.py +0 -0
  361. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/diagram_review.py +0 -0
  362. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/engine_review.py +0 -0
  363. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/feature_flow.py +0 -0
  364. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/fluorescence_biology.py +0 -0
  365. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/gallery.py +0 -0
  366. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/general_plots.py +0 -0
  367. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/graph.py +0 -0
  368. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/hatch_review.py +0 -0
  369. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/hello_figure.py +0 -0
  370. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/label_intensities.py +0 -0
  371. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/oblique_biology.py +0 -0
  372. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/panels.py +0 -0
  373. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/plot_engine_review.py +0 -0
  374. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/plot_quality_review.py +0 -0
  375. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/polar.py +0 -0
  376. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/preset_formats.py +0 -0
  377. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/presets.py +0 -0
  378. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/real_biology.py +0 -0
  379. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/render_scene_review.py +0 -0
  380. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/render_smoke.py +0 -0
  381. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/research_figure_planner.py +0 -0
  382. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/research_planner_study.py +0 -0
  383. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/research_revision.py +0 -0
  384. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/showcase/README.md +0 -0
  385. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/showcase/assets.lock.json +0 -0
  386. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/showcase/blender_scenes.py +0 -0
  387. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/showcase/figures.py +0 -0
  388. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/slab_biology.py +0 -0
  389. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/state_machine.py +0 -0
  390. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/stress20.py +0 -0
  391. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v25_document.py +0 -0
  392. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v2_cases.py +0 -0
  393. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v2_document.py +0 -0
  394. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v3_complex_scene.py +0 -0
  395. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v3_render_jobs.py +0 -0
  396. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v3_rendering.py +0 -0
  397. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v3_scene_annotations.py +0 -0
  398. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v3_scene_passes.py +0 -0
  399. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v3_scene_paths.py +0 -0
  400. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v3_scene_templates.py +0 -0
  401. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/README.md +0 -0
  402. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/browser_scatter.py +0 -0
  403. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/contours_streamlines.py +0 -0
  404. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/data/world-countries.geojson +0 -0
  405. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/data/world-map-source.json +0 -0
  406. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/data/world-population.csv +0 -0
  407. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/engineering_report.py +0 -0
  408. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/faceted_operations.py +0 -0
  409. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/fixtures/assembly.json +0 -0
  410. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/fixtures/manifest.json +0 -0
  411. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/fixtures/measurement.json +0 -0
  412. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/fixtures/region-shapes.geojson +0 -0
  413. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/fixtures/regions.csv +0 -0
  414. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/fixtures/regions.geojson +0 -0
  415. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/linked_dashboard.py +0 -0
  416. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/linked_selection.html +0 -0
  417. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/linked_selection.py +0 -0
  418. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/mesh_fields.py +0 -0
  419. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/region_shapes.py +0 -0
  420. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/regional_analysis.py +0 -0
  421. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/regional_report.py +0 -0
  422. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/scientific_report.py +0 -0
  423. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/statistical_views.py +0 -0
  424. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/table_inputs.py +0 -0
  425. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/time_series.py +0 -0
  426. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/world_population.py +0 -0
  427. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/figures/annot.py +0 -0
  428. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/figures/bio3d.py +0 -0
  429. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/figures/cartoon.py +0 -0
  430. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/figures/chem_data.py +0 -0
  431. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/figures/chem_fingerprints.py +0 -0
  432. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/figures/data/1m17-kinase.pdb +0 -0
  433. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/figures/data/README.md +0 -0
  434. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/figures/drug_discovery.py +0 -0
  435. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/figures/mouse_brain_data.py +0 -0
  436. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/figures/neural_activity.py +0 -0
  437. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/figures/pdbfile.py +0 -0
  438. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/figures/showcase_part.py +0 -0
  439. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/figures/showcase_process.py +0 -0
  440. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/figures/showcase_season.py +0 -0
  441. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/figures/structure.py +0 -0
  442. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/figures/structure_data.py +0 -0
  443. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/figures/target.py +0 -0
  444. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/figures/trial.py +0 -0
  445. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/README.md +0 -0
  446. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/biology-panels.png +0 -0
  447. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/chem_fingerprints.png +0 -0
  448. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/clipping-review.png +0 -0
  449. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/compiled-marker-shapes.png +0 -0
  450. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/compiled-scene-viewer.png +0 -0
  451. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/compiled-viewer-culling.png +0 -0
  452. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/compiled-viewer-deep-zoom.png +0 -0
  453. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/compositing-pdf-after.png +0 -0
  454. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/compositing-pdf-before.png +0 -0
  455. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/compositing-review.png +0 -0
  456. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/dense-scatter-review.png +0 -0
  457. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/diagram-labels-after.png +0 -0
  458. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/diagram-labels-before.png +0 -0
  459. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/diagram-review.png +0 -0
  460. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/engine-review.png +0 -0
  461. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/engine-transparency-after.png +0 -0
  462. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/engine-transparency-before.png +0 -0
  463. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/flow.png +0 -0
  464. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/fluorescence-biology.png +0 -0
  465. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/general-plots-before.png +0 -0
  466. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/general-plots.png +0 -0
  467. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/hatch-pdf-after.png +0 -0
  468. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/hatch-pdf-before.png +0 -0
  469. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/hatch-review.png +0 -0
  470. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/hatch-svg-before.png +0 -0
  471. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/label-intensities.png +0 -0
  472. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/oblique-biology.png +0 -0
  473. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/part.png +0 -0
  474. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/plot-axis-after.png +0 -0
  475. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/plot-axis-before.png +0 -0
  476. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/plot-engine-review.png +0 -0
  477. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/plots.png +0 -0
  478. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/preset-formats.png +0 -0
  479. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/presets.png +0 -0
  480. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/process.png +0 -0
  481. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/real-biology.png +0 -0
  482. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/render-scene-data.png +0 -0
  483. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/render-scene-initial.png +0 -0
  484. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/render-scene-review.png +0 -0
  485. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/research-crossing-revision.png +0 -0
  486. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/research-figure-planner.png +0 -0
  487. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/research-planner-study.png +0 -0
  488. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/research-revision.png +0 -0
  489. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/season.png +0 -0
  490. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/showcase-architecture-sketch.png +0 -0
  491. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/showcase-architecture.png +0 -0
  492. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/showcase-attractor.png +0 -0
  493. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/showcase-helix.png +0 -0
  494. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/showcase-interference.png +0 -0
  495. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/showcase-lattice.png +0 -0
  496. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/showcase-photonics.png +0 -0
  497. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/showcase-wave-packets.png +0 -0
  498. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/slab-biology.png +0 -0
  499. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/stress20.png +0 -0
  500. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/structure.png +0 -0
  501. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/v3-complex-scene.png +0 -0
  502. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/v3-render-jobs.png +0 -0
  503. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/v3-rendering.png +0 -0
  504. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/v3-scene-annotations.png +0 -0
  505. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/v3-scene-passes.png +0 -0
  506. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/v3-scene-paths.png +0 -0
  507. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/v3-scene-templates.png +0 -0
  508. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/requirements-ci.txt +0 -0
  509. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/requirements-docs.txt +0 -0
  510. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/requirements-tables.txt +0 -0
  511. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/scripts/bench_svg.py +0 -0
  512. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/scripts/rasterise.sh +0 -0
  513. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/scripts/sanity_typeset.py +0 -0
  514. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/__main__.py +0 -0
  515. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/assets/__init__.py +0 -0
  516. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/assets/asset.py +0 -0
  517. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/assets/cache.py +0 -0
  518. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/assets/cutout.py +0 -0
  519. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/assets/deps.py +0 -0
  520. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/assets/harmonise.py +0 -0
  521. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/assets/lineart.py +0 -0
  522. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/assets/mask.py +0 -0
  523. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/assets/provenance.py +0 -0
  524. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/assets/raster.py +0 -0
  525. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/assets/sidecar.py +0 -0
  526. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/assets/silhouette.py +0 -0
  527. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/cli.py +0 -0
  528. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/components.py +0 -0
  529. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/core/__init__.py +0 -0
  530. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/core/batch.py +0 -0
  531. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/core/diagram.py +0 -0
  532. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/core/envelope.py +0 -0
  533. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/core/geom.py +0 -0
  534. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/core/prims.py +0 -0
  535. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/core/style.py +0 -0
  536. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/core/trace.py +0 -0
  537. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/core/units.py +0 -0
  538. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/diagnostics/__init__.py +0 -0
  539. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/diagnostics/abut.py +0 -0
  540. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/diagnostics/break_rules.py +0 -0
  541. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/diagnostics/color.py +0 -0
  542. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/diagnostics/cross.py +0 -0
  543. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/diagnostics/image.py +0 -0
  544. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/diagnostics/key_rules.py +0 -0
  545. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/diagnostics/link_rules.py +0 -0
  546. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/diagnostics/path_rules.py +0 -0
  547. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/diagnostics/plot_rules.py +0 -0
  548. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/diagnostics/report.py +0 -0
  549. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/diagnostics/rules.py +0 -0
  550. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/diagnostics/three_rules.py +0 -0
  551. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/document/__init__.py +0 -0
  552. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/document/compiler.py +0 -0
  553. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/document/composition.py +0 -0
  554. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/document/data.py +0 -0
  555. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/document/data_io.py +0 -0
  556. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/document/module.py +0 -0
  557. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/document/presets.py +0 -0
  558. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/document/publication.py +0 -0
  559. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/document/spec.py +0 -0
  560. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/draw/__init__.py +0 -0
  561. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/draw/annotate.py +0 -0
  562. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/draw/bezier_clip.py +0 -0
  563. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/draw/clip.py +0 -0
  564. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/draw/coords.py +0 -0
  565. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/draw/path.py +0 -0
  566. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/draw/place.py +0 -0
  567. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/draw/shapes.py +0 -0
  568. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/__init__.py +0 -0
  569. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/_table_adapters.py +0 -0
  570. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/browser/__init__.py +0 -0
  571. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/browser/compiled.js +0 -0
  572. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/browser/compiled.py +0 -0
  573. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/browser/drawings.py +0 -0
  574. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/browser/editor.html +0 -0
  575. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/browser/editor.js +0 -0
  576. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/browser/fields.py +0 -0
  577. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/browser/grid.py +0 -0
  578. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/browser/images.py +0 -0
  579. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/browser/overrides.py +0 -0
  580. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/browser/page.html +0 -0
  581. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/browser/regions.py +0 -0
  582. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/browser/runtime.js +0 -0
  583. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/browser/series.py +0 -0
  584. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/browser/timeaxis.py +0 -0
  585. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/channels.py +0 -0
  586. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/contours.py +0 -0
  587. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/engineering.py +0 -0
  588. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/fields.py +0 -0
  589. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/figure_planner.py +0 -0
  590. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/grid.py +0 -0
  591. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/measurement.py +0 -0
  592. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/measurements.py +0 -0
  593. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/planner_geometry.py +0 -0
  594. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/regions.py +0 -0
  595. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/scene_viewer/__init__.py +0 -0
  596. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/scene_viewer/controls.js +0 -0
  597. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/scene_viewer/page.html +0 -0
  598. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/scene_viewer/runtime.js +0 -0
  599. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/scene_viewer/spatial.js +0 -0
  600. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/sections.py +0 -0
  601. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/selection.py +0 -0
  602. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/slabs.py +0 -0
  603. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/temporal.py +0 -0
  604. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/tiff.py +0 -0
  605. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/volume.py +0 -0
  606. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/figure.py +0 -0
  607. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/layout/__init__.py +0 -0
  608. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/layout/fit.py +0 -0
  609. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/layout/flow.py +0 -0
  610. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/layout/graph.py +0 -0
  611. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/layout/graph_force.py +0 -0
  612. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/layout/graph_layered.py +0 -0
  613. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/layout/graph_tree.py +0 -0
  614. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/layout/labels.py +0 -0
  615. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/layout/sankey.py +0 -0
  616. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/links/__init__.py +0 -0
  617. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/links/curves.py +0 -0
  618. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/links/link.py +0 -0
  619. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/plot/__init__.py +0 -0
  620. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/plot/axis.py +0 -0
  621. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/plot/breaks.py +0 -0
  622. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/plot/categories.py +0 -0
  623. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/plot/facets.py +0 -0
  624. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/plot/inset.py +0 -0
  625. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/plot/key.py +0 -0
  626. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/plot/marks.py +0 -0
  627. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/plot/notes.py +0 -0
  628. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/plot/panel.py +0 -0
  629. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/plot/png.py +0 -0
  630. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/plot/ramp.py +0 -0
  631. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/plot/raster.py +0 -0
  632. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/plot/ribbon.py +0 -0
  633. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/plot/scale.py +0 -0
  634. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/plot/scatter_batch.py +0 -0
  635. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/plot/scatter_raster.py +0 -0
  636. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/plot/series.py +0 -0
  637. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/plot/simplify.py +0 -0
  638. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/plot/timescale.py +0 -0
  639. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/render/__init__.py +0 -0
  640. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/render/analysis.py +0 -0
  641. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/render/bounds.py +0 -0
  642. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/render/brushes.py +0 -0
  643. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/render/bundle.py +0 -0
  644. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/render/composite.py +0 -0
  645. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/render/fontembed.py +0 -0
  646. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/render/glyphs.py +0 -0
  647. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/render/hatching.py +0 -0
  648. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/render/outline.py +0 -0
  649. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/render/paint.py +0 -0
  650. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/render/pathdata.py +0 -0
  651. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/render/pdf.py +0 -0
  652. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/render/pdftext.py +0 -0
  653. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/render/preview.py +0 -0
  654. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/render/raster.py +0 -0
  655. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/render/resources.py +0 -0
  656. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/render/review.py +0 -0
  657. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/render/revision.py +0 -0
  658. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/render/scene.py +0 -0
  659. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/render/svg.py +0 -0
  660. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/themes/__init__.py +0 -0
  661. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/themes/color.py +0 -0
  662. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/themes/palettes.py +0 -0
  663. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/themes/theme.py +0 -0
  664. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/__init__.py +0 -0
  665. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/api.py +0 -0
  666. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/backend.py +0 -0
  667. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/blender/__init__.py +0 -0
  668. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/blender/device_worker.py +0 -0
  669. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/blender/discover.py +0 -0
  670. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/blender/lineart.py +0 -0
  671. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/blender/options.py +0 -0
  672. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/blender/scene_worker.py +0 -0
  673. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/blender/script.py +0 -0
  674. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/blender/svgread.py +0 -0
  675. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/blender/template_worker.py +0 -0
  676. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/blender/tracing.py +0 -0
  677. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/blender_backend.py +0 -0
  678. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/camera.py +0 -0
  679. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/deps.py +0 -0
  680. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/depth.py +0 -0
  681. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/devices.py +0 -0
  682. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/drill.py +0 -0
  683. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/edges.py +0 -0
  684. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/hlr.py +0 -0
  685. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/linalg.py +0 -0
  686. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/mesh.py +0 -0
  687. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/occlude.py +0 -0
  688. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/order.py +0 -0
  689. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/parse.py +0 -0
  690. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/place.py +0 -0
  691. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/protein.py +0 -0
  692. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/quality.py +0 -0
  693. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/render_jobs.py +0 -0
  694. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/scene_annotations.py +0 -0
  695. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/scene_pass.py +0 -0
  696. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/scene_projection.py +0 -0
  697. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/scenes.py +0 -0
  698. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/shade.py +0 -0
  699. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/solids.py +0 -0
  700. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/templates.json +0 -0
  701. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/templates.py +0 -0
  702. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/typeset/__init__.py +0 -0
  703. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/typeset/fonts.py +0 -0
  704. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/typeset/markup.py +0 -0
  705. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/typeset/onpath.py +0 -0
  706. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/typeset/outline.py +0 -0
  707. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/typeset/shaping.py +0 -0
  708. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/assets/mouse.inklet.json +0 -0
  709. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/assets/mouse.png +0 -0
  710. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/dense_graph.py +0 -0
  711. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/draw_probe.py +0 -0
  712. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/electro/assets/sem.png +0 -0
  713. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/electro/assets/tem.png +0 -0
  714. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/electro/cell.py +0 -0
  715. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/electro/common.py +0 -0
  716. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/electro/data.py +0 -0
  717. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/electro/imaging.py +0 -0
  718. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/electro/kinetics.py +0 -0
  719. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/electro/micrograph.py +0 -0
  720. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/electro/system.py +0 -0
  721. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/electro_figure.py +0 -0
  722. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/fidelity.py +0 -0
  723. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/flow.py +0 -0
  724. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/hard_figure.py +0 -0
  725. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/label_storm.py +0 -0
  726. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/mega_figure.py +0 -0
  727. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/meshes/README.md +0 -0
  728. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/meshes/brain-lh.obj +0 -0
  729. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/meshes/spot.obj +0 -0
  730. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/panels/apparatus.py +0 -0
  731. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/panels/graphs.py +0 -0
  732. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/panels/relations.py +0 -0
  733. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/panels/responses.py +0 -0
  734. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/panels/sections.py +0 -0
  735. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/probes.py +0 -0
  736. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/three_figure.py +0 -0
  737. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_alignment_contract.py +0 -0
  738. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_annotate.py +0 -0
  739. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_annotate_letters.py +0 -0
  740. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_assets.py +0 -0
  741. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_assets_provenance.py +0 -0
  742. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_biology_source.py +0 -0
  743. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_blend_scene.py +0 -0
  744. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_browser_compiled.py +0 -0
  745. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_browser_facets.py +0 -0
  746. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_browser_figure.py +0 -0
  747. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_browser_overrides.py +0 -0
  748. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_browser_regions.py +0 -0
  749. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_browser_revision.py +0 -0
  750. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_browser_scatter.py +0 -0
  751. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_browser_series.py +0 -0
  752. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_browser_statistics.py +0 -0
  753. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_browser_switching.py +0 -0
  754. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_browser_time.py +0 -0
  755. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_categories.py +0 -0
  756. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_channels_contours.py +0 -0
  757. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_chem_figure.py +0 -0
  758. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_cli.py +0 -0
  759. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_clip_engine.py +0 -0
  760. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_components.py +0 -0
  761. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_compositing_engine.py +0 -0
  762. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_contrast_and_labels.py +0 -0
  763. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_cookbook.py +0 -0
  764. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_core.py +0 -0
  765. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_core_amendments.py +0 -0
  766. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_csv_input.py +0 -0
  767. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_diagnostics.py +0 -0
  768. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_diagnostics_api.py +0 -0
  769. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_diagnostics_artwork.py +0 -0
  770. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_diagnostics_break_distorts.py +0 -0
  771. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_diagnostics_crossing.py +0 -0
  772. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_diagnostics_image_contrast.py +0 -0
  773. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_diagnostics_ink.py +0 -0
  774. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_diagnostics_keys.py +0 -0
  775. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_diagnostics_links.py +0 -0
  776. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_diagnostics_paths.py +0 -0
  777. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_diagnostics_plot_box.py +0 -0
  778. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_diagram_engine.py +0 -0
  779. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_docs.py +0 -0
  780. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_document.py +0 -0
  781. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_document_data.py +0 -0
  782. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_document_v25.py +0 -0
  783. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_draw_clip.py +0 -0
  784. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_draw_path.py +0 -0
  785. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_draw_place.py +0 -0
  786. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_draw_shapes.py +0 -0
  787. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_engine_layout.py +0 -0
  788. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_engine_rendering.py +0 -0
  789. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_engine_scatter.py +0 -0
  790. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_engineering_report.py +0 -0
  791. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_export_bundle.py +0 -0
  792. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_figure.py +0 -0
  793. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_figure_planner.py +0 -0
  794. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_fit.py +0 -0
  795. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_grid_fields.py +0 -0
  796. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_hatch_engine.py +0 -0
  797. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_label_measurements.py +0 -0
  798. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_layout.py +0 -0
  799. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_layout_graph.py +0 -0
  800. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_layout_graph_fit.py +0 -0
  801. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_layout_origin.py +0 -0
  802. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_layout_sankey.py +0 -0
  803. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_links.py +0 -0
  804. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_links_avoid.py +0 -0
  805. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_links_shapes.py +0 -0
  806. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_marker_batches.py +0 -0
  807. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_mesh_fields.py +0 -0
  808. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_microscopy_tiff.py +0 -0
  809. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_neural_activity.py +0 -0
  810. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_output_contract.py +0 -0
  811. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_paint_program.py +0 -0
  812. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_place_labels.py +0 -0
  813. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_plot_axis.py +0 -0
  814. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_plot_broken_axis.py +0 -0
  815. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_plot_clip.py +0 -0
  816. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_plot_engine.py +0 -0
  817. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_plot_facets.py +0 -0
  818. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_plot_inset.py +0 -0
  819. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_plot_key.py +0 -0
  820. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_plot_labels.py +0 -0
  821. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_plot_legend.py +0 -0
  822. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_plot_marks.py +0 -0
  823. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_plot_notes.py +0 -0
  824. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_plot_publication.py +0 -0
  825. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_plot_quality_review.py +0 -0
  826. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_plot_raster.py +0 -0
  827. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_plot_ribbon.py +0 -0
  828. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_plot_scale.py +0 -0
  829. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_plot_swarm.py +0 -0
  830. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_plot_time.py +0 -0
  831. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_presets.py +0 -0
  832. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_publication_limits.py +0 -0
  833. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_regional_report.py +0 -0
  834. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_release_adversarial.py +0 -0
  835. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_render_devices.py +0 -0
  836. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_render_embed.py +0 -0
  837. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_render_glyphs.py +0 -0
  838. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_render_jobs.py +0 -0
  839. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_render_outline.py +0 -0
  840. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_render_pdf.py +0 -0
  841. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_render_pdf_text.py +0 -0
  842. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_render_quality.py +0 -0
  843. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_render_scene.py +0 -0
  844. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_render_style_fields.py +0 -0
  845. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_render_svg_perf.py +0 -0
  846. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_render_v3.py +0 -0
  847. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_review_v25.py +0 -0
  848. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_round4_plot.py +0 -0
  849. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_routing_avoid.py +0 -0
  850. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_scatter_rendering.py +0 -0
  851. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_scene_annotations.py +0 -0
  852. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_scene_culling.py +0 -0
  853. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_scene_pass.py +0 -0
  854. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_scene_projection.py +0 -0
  855. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_scene_templates.py +0 -0
  856. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_scene_viewer.py +0 -0
  857. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_scientific_report.py +0 -0
  858. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_sections.py +0 -0
  859. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_shared_plot_margins.py +0 -0
  860. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_showcase_library.py +0 -0
  861. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_showcase_round3.py +0 -0
  862. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_slabs_regions.py +0 -0
  863. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_structure_figure.py +0 -0
  864. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_svg.py +0 -0
  865. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_table_adapters.py +0 -0
  866. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_target_pose.py +0 -0
  867. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_temporal_adapters.py +0 -0
  868. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_text_markup.py +0 -0
  869. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_text_on_path.py +0 -0
  870. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_theme_font_style.py +0 -0
  871. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_themes.py +0 -0
  872. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_three_anchor_pin.py +0 -0
  873. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_three_api.py +0 -0
  874. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_three_backend_blender.py +0 -0
  875. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_three_blender.py +0 -0
  876. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_three_depth_order.py +0 -0
  877. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_three_drill.py +0 -0
  878. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_three_hlr.py +0 -0
  879. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_three_mesh.py +0 -0
  880. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_three_order_vector.py +0 -0
  881. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_three_overlay.py +0 -0
  882. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_three_parse.py +0 -0
  883. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_three_patches.py +0 -0
  884. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_three_place.py +0 -0
  885. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_three_protein.py +0 -0
  886. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_three_ridges.py +0 -0
  887. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_three_sort.py +0 -0
  888. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_three_sort_budget.py +0 -0
  889. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_three_view.py +0 -0
  890. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_typeset.py +0 -0
  891. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_v4_selection.py +0 -0
  892. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_volume.py +0 -0
  893. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_watch_review.py +0 -0
  894. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_world_map_example.py +0 -0
  895. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/README.md +0 -0
  896. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/categories-pdf.png +0 -0
  897. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/categories-svg.png +0 -0
  898. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/components-pdf.png +0 -0
  899. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/components-svg.png +0 -0
  900. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/dense-pdf.png +0 -0
  901. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/dense-svg.png +0 -0
  902. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/fonts.json +0 -0
  903. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/inset-pdf.png +0 -0
  904. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/inset-svg.png +0 -0
  905. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/markers-pdf.png +0 -0
  906. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/markers-svg.png +0 -0
  907. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/renderers.json +0 -0
  908. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/type-opacity-pdf.png +0 -0
  909. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/type-opacity-svg.png +0 -0
  910. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/v2-category-subset-pdf.png +0 -0
  911. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/v2-category-subset-svg.png +0 -0
  912. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/v2-dense-pdf.png +0 -0
  913. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/v2-dense-svg.png +0 -0
  914. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/v2-late-inset-pdf.png +0 -0
  915. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/v2-late-inset-svg.png +0 -0
  916. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/v2-shared-scales-pdf.png +0 -0
  917. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/v2-shared-scales-svg.png +0 -0
  918. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/v2-twins-matrix-pdf.png +0 -0
  919. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/v2-twins-matrix-svg.png +0 -0
  920. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/v2-workflow-pdf.png +0 -0
  921. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/v2-workflow-svg.png +0 -0
  922. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/v25-document-pdf.png +0 -0
  923. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/v25-document-svg.png +0 -0
  924. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/fixtures.py +0 -0
  925. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/v2-budgets.json +0 -0
  926. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/benchmark_batches.py +0 -0
  927. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/benchmark_clipping.py +0 -0
  928. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/benchmark_diagrams.py +0 -0
  929. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/benchmark_engine.py +0 -0
  930. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/benchmark_lines.py +0 -0
  931. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/benchmark_marker_index.mjs +0 -0
  932. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/benchmark_scene_culling.js +0 -0
  933. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/benchmark_scene_gpu.js +0 -0
  934. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/benchmark_scene_redraw.js +0 -0
  935. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/benchmark_scene_viewer.js +0 -0
  936. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/benchmark_scene_zoom.js +0 -0
  937. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/benchmark_v2.py +0 -0
  938. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/benchmark_v4.py +0 -0
  939. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/browser_study.js +0 -0
  940. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/check_render_wheel.py +0 -0
  941. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/check_wheel.py +0 -0
  942. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/dock_ligand.py +0 -0
  943. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/docs_gallery.json +0 -0
  944. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/docs_theme/404.html +0 -0
  945. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/docs_theme/card.html +0 -0
  946. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/docs_theme/gallery.html +0 -0
  947. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/gen_api.py +0 -0
  948. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/make_culling_review.py +0 -0
  949. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/prepare_world_map.py +0 -0
  950. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/preset_gallery.py +0 -0
  951. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/profile_scene_redraw.js +0 -0
  952. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/showcase_gallery.py +0 -0
  953. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/stress20.py +0 -0
  954. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/strip_pdb.py +0 -0
  955. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/v3_showcase.py +0 -0
  956. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/v4-budgets.json +0 -0
  957. {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/visual_check.py +0 -0
@@ -6,7 +6,7 @@ on:
6
6
  tag:
7
7
  description: Published GitHub release tag
8
8
  required: true
9
- default: v4.0.0.dev3
9
+ default: v4.0.0.dev4
10
10
  type: string
11
11
  dry_run:
12
12
  description: Validate release files without uploading to PyPI
@@ -43,7 +43,7 @@ jobs:
43
43
  RELEASE_TAG: ${{ inputs.tag }}
44
44
  run: |
45
45
  [[ "$RELEASE_TAG" =~ ^v[0-9]+\.[0-9]+\.[0-9]+(\.dev[0-9]+)?$ ]] || {
46
- echo 'Expected a stable or development tag such as v3.1.0 or v4.0.0.dev3' >&2
46
+ echo 'Expected a stable or development tag such as v3.1.0 or v4.0.0.dev4' >&2
47
47
  exit 1
48
48
  }
49
49
  gh release view "$RELEASE_TAG" --json isDraft,isPrerelease > "$RUNNER_TEMP/release.json"
@@ -2,6 +2,19 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 4.0.0.dev4 — 2026-09-12
6
+
7
+ Fourth development preview: correct closed polar geometry and make the plot
8
+ documentation visual and easier to navigate. 3.1.0 remains stable.
9
+
10
+ - Fix closed polar curves retracing the angular range and shaded bands crossing
11
+ themselves. Complete the closing arc in sample order and retain both band
12
+ endpoints; refresh polar previews and cover angular units and winding directions.
13
+
14
+ - Reorganize documentation around plotting, interactive documents and microscopy.
15
+ Add a searchable visual plot gallery and six guides with 22 rendered, runnable
16
+ examples; check plot-family coverage, gallery links and guide execution.
17
+
5
18
  ## 4.0.0.dev3 — 2026-09-12
6
19
 
7
20
  Third development preview: shared scene execution, dense marker rendering,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: inklet
3
- Version: 4.0.0.dev3
3
+ Version: 4.0.0.dev4
4
4
  Summary: Scientific figures with live data, measured layout, and consistent vector exports.
5
5
  Project-URL: Repository, https://github.com/Mapika/inklet
6
6
  Project-URL: Documentation, https://inklet.readthedocs.io/en/latest/
@@ -81,17 +81,16 @@ their signatures and report schemas may change.
81
81
 
82
82
  ## 4.0 development preview
83
83
 
84
- **4.0.0.dev3** adds shared compiled rendering, packed dense markers, offline
85
- WebGL2/Canvas viewing, and a plot-style inspector with undo/redo and saved
86
- visual overrides. Linked charts, maps and scientific reports preserve selections,
87
- source revisions and reproducible vector exports.
84
+ **4.0.0.dev4** fixes closed polar curves and shaded bands, and adds a visual
85
+ plot gallery with 22 runnable examples. It retains shared compiled rendering,
86
+ offline viewing, linked reports, and reproducible plot editing with undo/redo.
88
87
  ```sh
89
- python -m pip install "inklet==4.0.0.dev3"
88
+ python -m pip install "inklet==4.0.0.dev4"
90
89
  ```
91
90
 
92
91
  [Preview guide and examples](https://inklet.readthedocs.io/en/latest/development-preview/) ·
93
92
  [4.0 roadmap](https://inklet.readthedocs.io/en/latest/roadmap/) ·
94
- [Release notes](https://github.com/Mapika/inklet/releases/tag/v4.0.0.dev3)
93
+ [Release notes](https://github.com/Mapika/inklet/releases/tag/v4.0.0.dev4)
95
94
 
96
95
  This is an opt-in development release. Experimental APIs and saved-state schemas
97
96
  may change; 3.1.0 remains the stable release. General browser editing,
@@ -31,17 +31,16 @@ their signatures and report schemas may change.
31
31
 
32
32
  ## 4.0 development preview
33
33
 
34
- **4.0.0.dev3** adds shared compiled rendering, packed dense markers, offline
35
- WebGL2/Canvas viewing, and a plot-style inspector with undo/redo and saved
36
- visual overrides. Linked charts, maps and scientific reports preserve selections,
37
- source revisions and reproducible vector exports.
34
+ **4.0.0.dev4** fixes closed polar curves and shaded bands, and adds a visual
35
+ plot gallery with 22 runnable examples. It retains shared compiled rendering,
36
+ offline viewing, linked reports, and reproducible plot editing with undo/redo.
38
37
  ```sh
39
- python -m pip install "inklet==4.0.0.dev3"
38
+ python -m pip install "inklet==4.0.0.dev4"
40
39
  ```
41
40
 
42
41
  [Preview guide and examples](https://inklet.readthedocs.io/en/latest/development-preview/) ·
43
42
  [4.0 roadmap](https://inklet.readthedocs.io/en/latest/roadmap/) ·
44
- [Release notes](https://github.com/Mapika/inklet/releases/tag/v4.0.0.dev3)
43
+ [Release notes](https://github.com/Mapika/inklet/releases/tag/v4.0.0.dev4)
45
44
 
46
45
  This is an opt-in development release. Experimental APIs and saved-state schemas
47
46
  may change; 3.1.0 remains the stable release. General browser editing,
@@ -0,0 +1,164 @@
1
+ # Bars and areas
2
+
3
+ Bars compare values at category or numeric positions. Areas show the extent
4
+ between a curve and a baseline or between two curves. Use stacked displays only
5
+ when adding the contributions has a stated meaning.
6
+
7
+ All values below are illustrative. Each snippet can be run independently with
8
+ core Inklet; PNG preview generation additionally uses the `render` extra.
9
+
10
+ ## Categorical bars
11
+
12
+ Compare values across named categories.
13
+ `bar_colors` maps colours to individual bars; `colors` maps colours to series
14
+ in grouped or stacked bars. Declare a suitable baseline explicitly.
15
+
16
+ ```python
17
+ import inklet as i
18
+ p = i.plot_spec(x=['Control', 'Treatment'], y=(0, 10), height=45)
19
+ p.bars(['Control', 'Treatment'], [5, 8],
20
+ bar_colors=['#527da8', '#b96932'])
21
+ p.axes(y='Response / a.u.')
22
+ doc = i.document(width=105)
23
+ doc.add('bars', p)
24
+ doc.save('bars.svg', 'bars.pdf')
25
+ ```
26
+
27
+ ![Categorical bars: Compare values across named categories.](assets/guides/plots-bars.png)
28
+
29
+ *Rendered from the code above.*
30
+
31
+ ## Grouped bars
32
+
33
+ Grouped bars compare several series within each category.
34
+ The outer list of heights is series-major. Keep the same category order across
35
+ series and use the legend to identify them.
36
+
37
+ ```python
38
+ import inklet as i
39
+ p = i.plot_spec(x=['A', 'B', 'C'], y=(0, 10), height=45)
40
+ p.bars(['A', 'B', 'C'], [[4, 7, 5], [6, 5, 8]], grouped=True,
41
+ colors=['#527da8', '#b96932'], names=['Before', 'After'])
42
+ p.axes(y='Response / a.u.').legend(side='bottom')
43
+ doc = i.document(width=105)
44
+ doc.add('grouped-bars', p)
45
+ doc.save('grouped-bars.svg', 'grouped-bars.pdf')
46
+ ```
47
+
48
+ ![Grouped bars: Grouped bars compare several series within each category.](assets/guides/plots-grouped-bars.png)
49
+
50
+ *Rendered from the code above.*
51
+
52
+ ## Stacked bars
53
+
54
+ Stacked bars show each contribution and the total at each category.
55
+ Values are supplied per series. For contributions that are difficult to compare
56
+ without a common baseline, consider grouped bars instead.
57
+
58
+ ```python
59
+ import inklet as i
60
+ p = i.plot_spec(x=['A', 'B', 'C'], y=(0, 10), height=45)
61
+ p.bars(['A', 'B', 'C'], [[3, 4, 2], [4, 2, 5]], stacked=True,
62
+ colors=['#527da8', '#80ad91'], names=['Part one', 'Part two'])
63
+ p.axes(y='Total / a.u.').legend(side='bottom')
64
+ doc = i.document(width=105)
65
+ doc.add('stacked-bars', p)
66
+ doc.save('stacked-bars.svg', 'stacked-bars.pdf')
67
+ ```
68
+
69
+ ![Stacked bars: Stacked bars show each contribution and the total at each category.](assets/guides/plots-stacked-bars.png)
70
+
71
+ *Rendered from the code above.*
72
+
73
+ ## Horizontal bars
74
+
75
+ Horizontal bars give category labels more room.
76
+ The first categorical y value is at the bottom. Reverse the category order
77
+ when the first label should appear at the top.
78
+
79
+ ```python
80
+ import inklet as i
81
+ p = i.plot_spec(x=(0, 10), y=['West', 'Central', 'North'], height=45)
82
+ p.bars(['West', 'Central', 'North'], [6, 8, 5], orient='h',
83
+ bar_colors=['#527da8', '#80ad91', '#b96932'])
84
+ p.axes(x='Value / a.u.')
85
+ doc = i.document(width=105)
86
+ doc.add('horizontal-bars', p)
87
+ doc.save('horizontal-bars.svg', 'horizontal-bars.pdf')
88
+ ```
89
+
90
+ ![Horizontal bars: Horizontal bars give category labels more room.](assets/guides/plots-horizontal-bars.png)
91
+
92
+ *Rendered from the code above.*
93
+
94
+ ## Filled areas
95
+
96
+ Fill the region between a curve and a stated baseline.
97
+ Declare the area before an overlaid line so the outline remains visible.
98
+
99
+ ```python
100
+ import inklet as i
101
+ p = i.plot_spec(x=(0, 5), y=(0, 6), height=45)
102
+ points = [(0, 1), (1, 3), (2, 2), (3, 4), (4, 3), (5, 5)]
103
+ p.fill(points, baseline=0, fill='#a5c8b7', stroke='none')
104
+ p.line(points, stroke='#34735f', stroke_width=.5)
105
+ p.axes(x='Position / mm', y='Value / a.u.')
106
+ doc = i.document(width=105)
107
+ doc.add('fill', p)
108
+ doc.save('fill.svg', 'fill.pdf')
109
+ ```
110
+
111
+ ![Filled areas: Fill the region between a curve and a stated baseline.](assets/guides/plots-fill.png)
112
+
113
+ *Rendered from the code above.*
114
+
115
+ ## Between curves
116
+
117
+ Fill a region between two supplied curves.
118
+ `fill_between` takes absolute y coordinates. A coloured region alone does not
119
+ imply uncertainty; describe the meaning of the two boundaries.
120
+
121
+ ```python
122
+ import inklet as i
123
+ p = i.plot_spec(x=(0, 4), y=(0, 6), height=45)
124
+ x = [0, 1, 2, 3, 4]
125
+ lower, upper = [1, 2, 1.5, 2.5, 2], [3, 4, 3.5, 5, 4]
126
+ p.fill_between(x, lower, upper, fill='#c6b3d6', stroke='none')
127
+ p.line(list(zip(x, lower)), stroke='#76578f')
128
+ p.line(list(zip(x, upper)), stroke='#76578f')
129
+ p.axes(x='Position / mm', y='Boundary / a.u.')
130
+ doc = i.document(width=105)
131
+ doc.add('fill-between', p)
132
+ doc.save('fill-between.svg', 'fill-between.pdf')
133
+ ```
134
+
135
+ ![Between curves: Fill a region between two supplied curves.](assets/guides/plots-fill-between.png)
136
+
137
+ *Rendered from the code above.*
138
+
139
+ ## Stacked areas
140
+
141
+ Stacked areas accumulate nonnegative series over x.
142
+ Values are series-major; each series must contain one value per x coordinate.
143
+ For signed regions, calculate the boundaries and use `fill_between` explicitly.
144
+
145
+ ```python
146
+ import inklet as i
147
+ p = i.plot_spec(x=(0, 4), y=(0, 9), height=45)
148
+ p.stackarea([0, 1, 2, 3, 4], [[2, 3, 2, 4, 3], [3, 2, 4, 2, 4]],
149
+ colors=['#527da8', '#80ad91'], names=['Part one', 'Part two'],
150
+ stroke='none')
151
+ p.axes(x='Time / s', y='Total / a.u.').legend(side='bottom')
152
+ doc = i.document(width=105)
153
+ doc.add('stackarea', p)
154
+ doc.save('stackarea.svg', 'stackarea.pdf')
155
+ ```
156
+
157
+ ![Stacked areas: Stacked areas accumulate nonnegative series over x.](assets/guides/plots-stackarea.png)
158
+
159
+ *Rendered from the code above.*
160
+
161
+ ## Next steps
162
+
163
+ [Compare plot types](plot-types.md), configure [axes and scales](axes-and-scales.md),
164
+ or [arrange several panels](layout.md). For exact options, see the [API](api.md).
@@ -48,7 +48,7 @@ Blender. Scene creation and rendering run Blender in a separate process.
48
48
  ### Development-preview table adapters
49
49
 
50
50
  The [pandas and Polars adapters](table-inputs.md) are included in the experimental
51
- [4.0.0.dev3 preview](development-preview.md), not in stable 3.1.0. Their `pandas` and `polars` extras are separate
51
+ [4.0.0.dev4 preview](development-preview.md), not in stable 3.1.0. Their `pandas` and `polars` extras are separate
52
52
  from core dependencies. The adapter CI jobs use Linux/Python 3.12 with pandas
53
53
  2.2.0 / Polars 1.0.0 and the versions pinned in `requirements-tables.txt`.
54
54
  Both paths check scalar/identity contracts and saved-state SVG reconstruction.
@@ -1,6 +1,6 @@
1
- # Inklet 4.0.0.dev3
1
+ # Inklet 4.0.0.dev4
2
2
 
3
- The third 4.0 development release includes the linked plotting, mapping,
3
+ The fourth 4.0 development release includes the linked plotting, mapping,
4
4
  engineering and scientific workflows developed since 3.1.0. It is an installable
5
5
  snapshot for trying real examples and reporting problems. **3.1.0 remains the
6
6
  stable release.** The [4.0 roadmap](roadmap.md) still has open work.
@@ -8,7 +8,7 @@ stable release.** The [4.0 roadmap](roadmap.md) still has open work.
8
8
  ```sh
9
9
  python -m venv .venv
10
10
  source .venv/bin/activate
11
- python -m pip install "inklet==4.0.0.dev3"
11
+ python -m pip install "inklet==4.0.0.dev4"
12
12
  ```
13
13
 
14
14
  On Windows PowerShell, activate with `.venv\Scripts\Activate.ps1` instead.
@@ -19,9 +19,9 @@ stable releases; see its [installation documentation](https://pip.pypa.io/en/sta
19
19
  Optional extras can be installed with the same pin:
20
20
 
21
21
  ```sh
22
- python -m pip install "inklet[render,pandas,polars]==4.0.0.dev3"
22
+ python -m pip install "inklet[render,pandas,polars]==4.0.0.dev4"
23
23
  # Add calibrated volumes and TIFF workflows when needed:
24
- python -m pip install "inklet[volume,render]==4.0.0.dev3"
24
+ python -m pip install "inklet[volume,render]==4.0.0.dev4"
25
25
  ```
26
26
 
27
27
  The core preview needs no browser server, NumPy, pandas, Polars or Blender.
@@ -29,7 +29,19 @@ Opening the generated HTML requires a browser. PNG/PDF exports from browser
29
29
  figures use separate Chrome/Chromium and Pillow; native Diagram exports retain
30
30
  their existing requirements. See [installation](installation.md).
31
31
 
32
- ## Rendering and authoring in dev3
32
+ ## Plot corrections and visual guides in dev4
33
+
34
+ Closed polar curves now complete the angular turn without retracing the samples,
35
+ and closed bands retain their endpoints without a missing wedge. This fixes
36
+ incorrect self-crossings in both static exports and their previews.
37
+
38
+ The [visual plot gallery](plot-types.md) adds 22 rendered examples across six
39
+ focused guides. Navigation now separates core plots, interactive documents,
40
+ microscopy and development studies. Existing guide URLs remain valid.
41
+
42
+ ![Corrected closed polar curve and uncertainty band](assets/guides/plots-polar-curve.png)
43
+
44
+ ## Rendering and authoring retained from dev3
33
45
 
34
46
  This preview adds shared [native compiled scenes](compiled-scenes.md),
35
47
  [packed markers](marker-batches.md), [spatial culling](marker-culling.md), and
@@ -37,7 +49,7 @@ an offline [compiled viewer](compiled-viewer.md) with reported WebGL2/Canvas
37
49
  fallback. The [regional report](regional-report.md) connects that executor to
38
50
  keyed selection, filtering and saved-state revision controls.
39
51
 
40
- The new [plot-style inspector](visual-editing.md) supports named colours, marker
52
+ The [plot-style inspector](visual-editing.md) supports named colours, marker
41
53
  sizes and line widths, undo/redo, and saved overrides for Python reconstruction.
42
54
  It preserves compatible edits across revisions and reports orphaned targets.
43
55
  This is a bounded start on authoring, not the full 4.0 editor.
@@ -74,7 +86,7 @@ The wheel contains the library. To obtain recipes and fixtures, use the matching
74
86
  release checkout or source archive:
75
87
 
76
88
  ```sh
77
- git clone --branch v4.0.0.dev3 https://github.com/Mapika/inklet.git
89
+ git clone --branch v4.0.0.dev4 https://github.com/Mapika/inklet.git
78
90
  cd inklet
79
91
  python -m pip install -e '.[render]'
80
92
  python examples/v4/regional_report.py --renderer compiled --editor --output out/regional
@@ -0,0 +1,104 @@
1
+ # Distributions and individual samples
2
+
3
+ A histogram groups observations into bins; boxplots summarize quartiles;
4
+ violins estimate a smooth density; swarms retain the individual values. State
5
+ the sample population and any grouping or smoothing used.
6
+
7
+ All values below are illustrative. Each snippet can be run independently with
8
+ core Inklet; PNG preview generation additionally uses the `render` extra.
9
+
10
+ ## Histograms
11
+
12
+ Histograms count observations within explicit bins.
13
+ `density=True` divides by sample size and bin width so the bar area integrates
14
+ to one. Use `inklet.plot.histogram` first when the counts should determine the
15
+ y domain.
16
+
17
+ ```python
18
+ import inklet as i
19
+ values = [1, 1.2, 1.4, 1.9, 2.1, 2.4, 2.4, 2.8, 3, 3.2, 3.5, 4]
20
+ p = i.plot_spec(x=(0, 5), y=(0, 6), height=45)
21
+ p.hist(values, bins=[0, 1, 2, 3, 4, 5], colors='#527da8')
22
+ p.axes(x='Duration / s', y='Count')
23
+ doc = i.document(width=105)
24
+ doc.add('hist', p)
25
+ doc.save('hist.svg', 'hist.pdf')
26
+ ```
27
+
28
+ ![Histograms: Histograms count observations within explicit bins.](assets/guides/plots-hist.png)
29
+
30
+ *Rendered from the code above.*
31
+
32
+ ## Boxplots
33
+
34
+ Boxplots show the median, quartiles and Tukey whiskers.
35
+ Whiskers stop at the furthest observation within `whisker` times the interquartile
36
+ range. More distant observations are shown separately by default.
37
+
38
+ ```python
39
+ import inklet as i
40
+ samples = {'A': [1, 2, 2.2, 2.5, 3, 3.2, 4, 7.5],
41
+ 'B': [2, 3, 3.5, 4, 4.2, 4.5, 5, 6]}
42
+ p = i.plot_spec(x=['A', 'B'], y=(0, 8), height=45)
43
+ p.boxplot(samples, colors=['#527da8', '#b96932'])
44
+ p.axes(y='Measurement / a.u.')
45
+ doc = i.document(width=105)
46
+ doc.add('boxplot', p)
47
+ doc.save('boxplot.svg', 'boxplot.pdf')
48
+ ```
49
+
50
+ ![Boxplots: Boxplots show the median, quartiles and Tukey whiskers.](assets/guides/plots-boxplot.png)
51
+
52
+ *Rendered from the code above.*
53
+
54
+ ## Violins
55
+
56
+ Violins show a kernel-smoothed sample distribution.
57
+ The default bandwidth follows Silverman’s robust rule; `bandwidth`, `cut` and
58
+ `samples` control smoothing and drawing extent. For small groups, showing the
59
+ individual observations can reveal more than a smooth outline.
60
+
61
+ ```python
62
+ import inklet as i
63
+ import math
64
+ samples = {'A': [3 + math.sin(k * .6) + .2 * math.cos(k) for k in range(48)],
65
+ 'B': [5 + 1.5 * math.sin(k * .8) for k in range(48)]}
66
+ p = i.plot_spec(x=['A', 'B'], y=(0, 9), height=45)
67
+ p.violin(samples, colors=['#527da8', '#b96932'], cut=1.5)
68
+ p.axes(y='Measurement / a.u.')
69
+ doc = i.document(width=105)
70
+ doc.add('violin', p)
71
+ doc.save('violin.svg', 'violin.pdf')
72
+ ```
73
+
74
+ ![Violins: Violins show a kernel-smoothed sample distribution.](assets/guides/plots-violin.png)
75
+
76
+ *Rendered from the code above.*
77
+
78
+ ## Swarms
79
+
80
+ Swarms show every observation, including repeated values.
81
+ Only the sideways placement changes to separate markers. The measured value
82
+ stays fixed. `size` is marker diameter in millimetres; crowded groups may need
83
+ more panel width or smaller markers.
84
+
85
+ ```python
86
+ import inklet as i
87
+ samples = {'A': [1.8, 2, 2, 2.1, 2.5, 3, 3.1, 4],
88
+ 'B': [3, 3.1, 3.1, 3.3, 3.5, 4, 4.2, 5]}
89
+ p = i.plot_spec(x=['A', 'B'], y=(0, 6), height=45)
90
+ p.swarm(samples, size=1.5, colors=['#527da8', '#b96932'])
91
+ p.axes(y='Measurement / a.u.')
92
+ doc = i.document(width=105)
93
+ doc.add('swarm', p)
94
+ doc.save('swarm.svg', 'swarm.pdf')
95
+ ```
96
+
97
+ ![Swarms: Swarms show every observation, including repeated values.](assets/guides/plots-swarm.png)
98
+
99
+ *Rendered from the code above.*
100
+
101
+ ## Next steps
102
+
103
+ [Compare plot types](plot-types.md), configure [axes and scales](axes-and-scales.md),
104
+ or [arrange several panels](layout.md). For exact options, see the [API](api.md).
@@ -0,0 +1,27 @@
1
+ ---
2
+ layout: home
3
+ title: Overview
4
+ ---
5
+ ## Find the right guide
6
+
7
+ | You want to… | Start here |
8
+ |---|---|
9
+ | Choose a plot for your data | [Visual plot gallery](plot-types.md) |
10
+ | Combine marks, legends and insets | [Plotting](plotting.md) |
11
+ | Set scales, tick labels and fonts | [Axes, scales and text](axes-and-scales.md) |
12
+ | Share data, colours and units | [Live data](data.md) |
13
+ | Draw measured components and connections | [Diagrams](diagrams.md) |
14
+ | Add images, meshes or Blender scenes | [3D and images](three-images.md) |
15
+ | Build an offline interactive report | [Interactive documents (4.0 preview)](interactive-documents.md) |
16
+ | Work with microscopy data | [Calibrated volumes (preview)](calibrated-volumes.md) |
17
+
18
+ ## Reference and development
19
+
20
+ Use the [Python API](api.md) for signatures, the [command-line reference](cli.md)
21
+ for script workflows and [troubleshooting](troubleshooting.md) for diagnostics.
22
+ [Migration](migration.md) covers existing projects.
23
+
24
+ Core guides work with the stable release. Features marked **preview** require
25
+ [the development installation](development-preview.md). Engine studies and
26
+ historical designs are grouped under Development; see the [4.0 roadmap](roadmap.md)
27
+ and [contributing guide](../CONTRIBUTING.md) to follow or contribute to that work.
@@ -3,7 +3,7 @@
3
3
  Inklet requires Python 3.11 or later and an installed TrueType/OpenType font.
4
4
  The core Python dependencies are HarfBuzz bindings and fontTools.
5
5
 
6
- This page covers stable **Inklet 3.1** and the opt-in **4.0.0.dev3 preview**. See the
6
+ This page covers stable **Inklet 3.1** and the opt-in **4.0.0.dev4 preview**. See the
7
7
  [compatibility matrix](compatibility.md) for tested platforms and Blender versions.
8
8
 
9
9
  ## From PyPI
@@ -24,9 +24,9 @@ Activate the environment or prefix commands with `.venv/bin/` on Linux/macOS.
24
24
  ## 4.0 development preview
25
25
 
26
26
  ```sh
27
- python -m pip install "inklet==4.0.0.dev3"
27
+ python -m pip install "inklet==4.0.0.dev4"
28
28
  # Optional rendering and DataFrame adapters:
29
- python -m pip install "inklet[render,pandas,polars]==4.0.0.dev3"
29
+ python -m pip install "inklet[render,pandas,polars]==4.0.0.dev4"
30
30
  ```
31
31
 
32
32
  Use a separate virtual environment when trying the preview. Experimental APIs
@@ -0,0 +1,52 @@
1
+ # Interactive documents
2
+
3
+ The **4.0 development preview** adds offline HTML exploration and reproducible
4
+ visual editing. Install the [preview version](development-preview.md) explicitly;
5
+ `pip install inklet` still selects the stable release.
6
+
7
+ ![A regional report linking a map, time series, distribution and category panels](assets/v4/regional-report.png)
8
+
9
+ ## Choose a workflow
10
+
11
+ | You want to… | Start here | What stays reproducible |
12
+ | --- | --- | --- |
13
+ | Inspect, pan and zoom a native figure | [Compiled-scene viewer](compiled-viewer.md) | Native vector export and the compiled snapshot |
14
+ | Select and filter observations across plots | [Linked plots](linked-plots.md) | Stable row IDs and a saved selection/view state |
15
+ | Build category panels or time series | [Facets](linked-facets.md), [dates and time series](time-series.md) | Category order, missing-value gaps and shared selection |
16
+ | Join a regional map to values | [Linked maps](linked-maps.md) | Explicit geometry keys, bins and source attribution |
17
+ | Display distributions or supplied intervals | [Linked statistics](statistical-views.md) | Stated methods, reference populations and interval meaning |
18
+ | Edit plot appearance in the browser | [Visual editing](visual-editing.md) | Versioned overrides, undo/redo and Python reconstruction |
19
+ | Replace source data | [Data revisions](data-revisions.md) | Explicit missing-ID policy and a revision report |
20
+
21
+ ## Run a complete report
22
+
23
+ Start with the [regional report](regional-report.md): a real map with simulated
24
+ measurements, linked histories, an ECDF and faceted comparisons. It exercises
25
+ selection, filtering, save/reopen, source replacement and exports at two widths.
26
+
27
+ ```bash
28
+ python examples/v4/regional_report.py --renderer compiled --editor --output out/regional
29
+ ```
30
+
31
+ Open the generated `index.html`. Save the view for selection/filter/zoom and
32
+ save overrides for edited styles. Keep both files with the matching source
33
+ recipe and data revision. The [visual editing guide](visual-editing.md) shows
34
+ how to rebuild the same appearance in Python.
35
+
36
+ For other data, follow the [engineering report](engineering-report.md),
37
+ [calibrated image measurements](scientific-report.md), [mesh fields](mesh-fields.md)
38
+ or [contours and streamlines](contours-streamlines.md). Optional
39
+ [pandas and Polars adapters](table-inputs.md) preserve explicit row identities.
40
+
41
+ ## Know the boundary
42
+
43
+ Standalone pages embed their supported operations and assets. They need no
44
+ Python server or CDN to use those controls. Arbitrary Python callbacks do not
45
+ run inside the exported HTML. Source replacement in the browser switches among
46
+ precompiled alternatives; CSV processing and fresh compilation happen in Python.
47
+
48
+ A native compiled viewer does not automatically infer row relationships for
49
+ arbitrary scene objects. Linked figures declare those correspondences explicitly.
50
+ The first style editor covers named colours, marker radii and line widths;
51
+ label/panel/camera editing remains open. Read the feature guide's limits before
52
+ relying on an experimental API or saved-state schema.