inklet 4.0.0.dev7__tar.gz → 4.0.0.dev9__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.
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/.github/workflows/publish.yml +2 -2
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/CHANGELOG.md +30 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/PKG-INFO +6 -6
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/README.md +5 -5
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/api.md +1 -1
- inklet-4.0.0.dev9/docs/assets/guides/layout-editor-gestures.png +0 -0
- inklet-4.0.0.dev9/docs/assets/guides/layout-editor.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/compatibility.md +1 -1
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/composition-recipes.md +7 -4
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/development-preview.md +50 -11
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/installation.md +3 -3
- inklet-4.0.0.dev9/docs/layout-editor.md +170 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/layout-overrides.md +11 -6
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/roadmap.md +7 -3
- inklet-4.0.0.dev9/examples/layout_editor.py +19 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/mkdocs.yml +1 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/pyproject.toml +1 -1
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/__init__.py +1 -1
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/document/composition.py +23 -6
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/document/layout_overrides.py +12 -5
- inklet-4.0.0.dev9/src/inklet/experimental/layout_editor/__init__.py +275 -0
- inklet-4.0.0.dev9/src/inklet/experimental/layout_editor/gestures.js +63 -0
- inklet-4.0.0.dev9/src/inklet/experimental/layout_editor/page.html +48 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_docs_site.py +1 -1
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_guides.py +1 -1
- inklet-4.0.0.dev9/tests/test_layout_editor.py +176 -0
- inklet-4.0.0.dev9/tests/test_layout_gestures.py +146 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tools/check_wheel.py +8 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tools/docs_gallery.json +11 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/.gitattributes +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/.github/workflows/checks.yml +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/.gitignore +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/.readthedocs.yaml +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/CONTRACT.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/CONTRIBUTING.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/LICENSE +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/THIRD_PARTY_NOTICES.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/brand/inklet-icon.svg +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/brand/inklet-logo-dark.svg +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/brand/inklet-logo-mono.svg +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/brand/inklet-logo.svg +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/brand/inklet-wordmark.svg +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/examples/quickstart.pdf +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/examples/quickstart.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/examples/quickstart.svg +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/axes-and-scales-1.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/calibrated-volumes-3.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/channels-and-contours-1.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/composition-recipes-narrow.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/composition-recipes.html +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/composition-recipes.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/cookbook-anchor.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/cookbook-annotation.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/cookbook-bars-histogram.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/cookbook-branch.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/cookbook-broken-axis.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/cookbook-callout.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/cookbook-clipping.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/cookbook-creases.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/cookbook-custom-key.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/cookbook-cutout.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/cookbook-dates.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/cookbook-dense.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/cookbook-elbows.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/cookbook-equal-boxes.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/cookbook-facets.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/cookbook-fit-graph.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/cookbook-flow-width.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/cookbook-formula.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/cookbook-graph.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/cookbook-halo.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/cookbook-heatmap.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/cookbook-hole.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/cookbook-inline-type.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/cookbook-inset.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/cookbook-labels.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/cookbook-layers.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/cookbook-letters.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/cookbook-list.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/cookbook-matrix.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/cookbook-page-grid.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/cookbook-polar.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/cookbook-protein.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/cookbook-routes.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/cookbook-scene-overlay.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/cookbook-scene.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/cookbook-series-key.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/cookbook-span.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/cookbook-sparse-grid.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/cookbook-swarm.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/cookbook-text-path.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/cookbook-toon.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/cookbook-twin-axis.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/cookbook-unequal-panels.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/cookbook-violin.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/cookbook-wrapped-card.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/data-1.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/data-3.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/dense-data-1.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/diagram-components-1.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/diagrams-1.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/layout-3.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/layout-restored.html +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/layout-restored.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/layout-revised.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/oblique-sections-2.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/plot-composition-narrow.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/plot-composition.html +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/plot-composition.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/plot-quality-after.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/plot-quality-before.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/plots-band.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/plots-bars.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/plots-boxplot.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/plots-errorbars.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/plots-fill-between.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/plots-fill.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/plots-grouped-bars.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/plots-hist.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/plots-horizontal-bars.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/plots-line-errors.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/plots-line.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/plots-markers.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/plots-matrix.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/plots-polar-curve.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/plots-rose.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/plots-scatter.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/plots-series.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/plots-stackarea.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/plots-stacked-bars.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/plots-step.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/plots-swarm.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/plots-violin.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/plotting-1.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/plotting-2.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/publication-plots-1.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/publication-plots-2.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/publication-plots-3.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/publication-plots-4.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/slabs-and-regions-1.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/three-images-1.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/guides/three-images-2.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/biology.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/clipping-after.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/clipping-before.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/clipping-caption.tex +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/clipping-lines-after.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/clipping-lines-before.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/comparison.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/compiled-marker-shapes-caption.tex +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/compiled-marker-shapes.html +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/compiled-markers-display.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/compiled-markers-hardware.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/compiled-scene-viewer.html +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/compiled-viewer-display.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/compiled-viewer-export.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/compiled-viewer-study.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/compositing-after.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/compositing-before.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/compositing-caption.tex +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/dense-scatter-caption.tex +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/diagram-after.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/diagram-before.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/diagram-review-caption.tex +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/engine-after.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/engine-before.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/engine-review-caption.tex +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/fluorescence-biology.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/general-plots-caption.tex +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/general-plots.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/hatch-after.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/hatch-before.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/hatch-caption.tex +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/label-intensities-caption.tex +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/label-intensities-native.csv +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/label-intensities.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/lines-after.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/lines-before.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/marker-batches.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/marker-index-after.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/marker-index-before.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/marker-index-browser-after.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/marker-index-browser-before.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/oblique-biology.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/plot-engine-review-caption.tex +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/real-biology.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/render-scene-caption.tex +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/revision.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/scenes-after.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/scenes-before.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/slab-biology.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/study.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/viewer-culling-after.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/viewer-culling-before.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/viewer-culling-gpu-after.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/viewer-culling-gpu-before.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/viewer-redraw-after.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/viewer-redraw-before.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/viewer-redraw-display.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/viewer-redraw-profile.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/viewer-window-after.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/viewer-window-before.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/research-preview/viewer-window-display.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/after.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/before.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/browser-quality.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/browser-scatter.html +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/browser-scatter.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/browser-study.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/contours-streamlines-170mm.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/contours-streamlines-masked.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/contours-streamlines.html +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/contours-streamlines.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/engineering-report-170mm.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/engineering-report.html +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/engineering-report.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/faceted-operations.html +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/faceted-operations.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/linked-dashboard.html +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/linked-dashboard.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/linked-selection.html +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/linked-selection.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/mesh-fields-170mm.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/mesh-fields.html +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/mesh-fields.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/region-shapes.html +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/region-shapes.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/regional-analysis.html +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/regional-analysis.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/regional-report-160mm.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/regional-report.html +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/regional-report.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/scientific-report-170mm.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/scientific-report.html +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/scientific-report.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/statistical-views.html +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/statistical-views.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/table-inputs.html +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/table-inputs.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/time-series.html +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/time-series.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/transport-map.html +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/transport-map.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/visual-overrides.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/world-population-2019.html +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/world-population-2019.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/world-population-2019.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/world-population-revisions.html +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/world-population-revisions.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/world-population.html +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/assets/v4/world-population.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/axes-and-scales.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/bars-and-areas.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/biology-panels.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/blender-scenes.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/brand.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/browser-rendering.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/calibrated-volumes.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/channels-and-contours.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/cli.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/clipping.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/compiled-scenes.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/compiled-viewer.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/complex-scene.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/compositing.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/concepts.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/contours-streamlines.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/cookbook.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/data-revisions.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/data.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/dense-data.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/design/browser-backends.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/design/page_grid.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/design/v2.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/design/v4.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/diagram-components.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/diagram-engine.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/diagrams.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/distributions.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/engineering-report.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/example-library.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/examples.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/export-review.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/fluorescence-biology.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/general-plots.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/geographic-features.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/hatching.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/index.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/interactive-documents.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/javascripts/inklet.js +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/label-intensities.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/label-measurements.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/layout.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/lines-and-points.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/linked-facets.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/linked-maps.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/linked-plots.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/marker-batches.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/marker-culling.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/matrices.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/mesh-fields.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/microscopy-tiff.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/migration.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/oblique-biology.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/oblique-sections.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/plot-quality.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/plot-recipes.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/plot-types.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/plotting-engine.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/plotting.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/polar-plots.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/presets.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/publication-plots.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/quickstart.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/real-biology.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/recipes/architecture-sketch.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/recipes/architecture.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/recipes/attractor.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/recipes/helix.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/recipes/interference.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/recipes/lattice.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/recipes/photonics.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/recipes/wave-packets.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/regional-report.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/release-checks.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/render-jobs.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/rendering-engine.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/research-preview.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/research-revision.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/research-study.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/scene-annotations.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/scene-paths.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/scene-templates.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/scientific-report.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/showcase.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/slab-biology.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/slabs-and-regions.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/statistical-views.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/stress20.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/stylesheets/code.css +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/stylesheets/inklet.css +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/table-inputs.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/three-images.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/time-series.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/troubleshooting.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/uncertainty.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/v2.5.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/v2.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/v3.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/v4-foundations.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/visual-editing.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/docs/world-map.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/biology/README.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/biology/cells3d.lock.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/biology/data.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/biology/fluorescence.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/biology/organelle.lock.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/biology/requirements.txt +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/biology_panels.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/blender/complex_lab_scene.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/blender/lab_scene.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/blender/occlusion_scene.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/blender/organelle_scene.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/blender/research_lab_views.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/broken_axis.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/clipping_review.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/compiled_marker_shapes.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/compiled_scene_viewer.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/compositing_review.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/composition_recipes.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/data/general-plots/benchmark.csv +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/data/general-plots/learning.csv +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/data/general-plots/revenue.csv +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/data/general-plots/sensor.csv +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/dense_scatter_review.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/diagram_review.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/engine_review.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/feature_flow.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/fluorescence_biology.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/gallery.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/general_plots.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/graph.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/hatch_review.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/hello_figure.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/label_intensities.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/oblique_biology.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/panels.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/plot_composition.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/plot_engine_review.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/plot_quality_review.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/polar.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/preset_formats.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/presets.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/real_biology.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/render_scene_review.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/render_smoke.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/research_figure_planner.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/research_planner_study.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/research_revision.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/showcase/README.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/showcase/assets.lock.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/showcase/blender_scenes.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/showcase/figures.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/slab_biology.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/state_machine.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/stress20.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/v25_document.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/v2_cases.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/v2_document.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/v3_complex_scene.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/v3_render_jobs.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/v3_rendering.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/v3_scene_annotations.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/v3_scene_passes.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/v3_scene_paths.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/v3_scene_templates.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/v4/README.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/v4/browser_scatter.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/v4/contours_streamlines.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/v4/data/world-countries.geojson +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/v4/data/world-map-source.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/v4/data/world-population.csv +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/v4/engineering_report.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/v4/faceted_operations.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/v4/fixtures/assembly.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/v4/fixtures/manifest.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/v4/fixtures/measurement.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/v4/fixtures/region-shapes.geojson +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/v4/fixtures/regions.csv +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/v4/fixtures/regions.geojson +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/v4/fixtures/transport.geojson +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/v4/linked_dashboard.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/v4/linked_selection.html +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/v4/linked_selection.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/v4/mesh_fields.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/v4/region_shapes.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/v4/regional_analysis.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/v4/regional_report.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/v4/scientific_report.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/v4/statistical_views.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/v4/table_inputs.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/v4/time_series.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/v4/transport_map.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/examples/v4/world_population.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/figures/annot.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/figures/bio3d.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/figures/cartoon.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/figures/chem_data.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/figures/chem_fingerprints.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/figures/data/1m17-kinase.pdb +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/figures/data/README.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/figures/drug_discovery.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/figures/mouse_brain_data.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/figures/neural_activity.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/figures/pdbfile.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/figures/showcase_part.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/figures/showcase_process.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/figures/showcase_season.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/figures/structure.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/figures/structure_data.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/figures/target.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/figures/trial.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/README.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/biology-panels.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/chem_fingerprints.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/clipping-review.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/compiled-marker-shapes.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/compiled-scene-viewer.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/compiled-viewer-culling.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/compiled-viewer-deep-zoom.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/compositing-pdf-after.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/compositing-pdf-before.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/compositing-review.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/dense-scatter-review.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/diagram-labels-after.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/diagram-labels-before.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/diagram-review.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/engine-review.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/engine-transparency-after.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/engine-transparency-before.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/flow.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/fluorescence-biology.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/general-plots-before.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/general-plots.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/hatch-pdf-after.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/hatch-pdf-before.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/hatch-review.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/hatch-svg-before.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/label-intensities.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/oblique-biology.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/part.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/plot-axis-after.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/plot-axis-before.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/plot-engine-review.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/plots.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/polar.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/preset-formats.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/presets.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/process.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/real-biology.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/render-scene-data.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/render-scene-initial.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/render-scene-review.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/research-crossing-revision.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/research-figure-planner.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/research-planner-study.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/research-revision.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/season.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/showcase-architecture-sketch.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/showcase-architecture.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/showcase-attractor.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/showcase-helix.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/showcase-interference.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/showcase-lattice.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/showcase-photonics.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/showcase-wave-packets.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/slab-biology.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/stress20.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/structure.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/v3-complex-scene.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/v3-render-jobs.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/v3-rendering.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/v3-scene-annotations.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/v3-scene-passes.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/v3-scene-paths.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/gallery/v3-scene-templates.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/requirements-ci.txt +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/requirements-docs.txt +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/requirements-tables.txt +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/scripts/bench_svg.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/scripts/rasterise.sh +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/scripts/sanity_typeset.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/__main__.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/assets/__init__.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/assets/asset.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/assets/cache.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/assets/cutout.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/assets/deps.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/assets/harmonise.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/assets/lineart.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/assets/mask.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/assets/provenance.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/assets/raster.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/assets/sidecar.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/assets/silhouette.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/cli.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/components.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/core/__init__.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/core/batch.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/core/diagram.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/core/envelope.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/core/geom.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/core/prims.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/core/style.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/core/trace.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/core/units.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/diagnostics/__init__.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/diagnostics/abut.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/diagnostics/break_rules.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/diagnostics/color.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/diagnostics/cross.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/diagnostics/image.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/diagnostics/key_rules.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/diagnostics/link_rules.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/diagnostics/path_rules.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/diagnostics/plot_rules.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/diagnostics/report.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/diagnostics/rules.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/diagnostics/three_rules.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/document/__init__.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/document/compiler.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/document/data.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/document/data_io.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/document/module.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/document/presets.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/document/publication.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/document/spec.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/draw/__init__.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/draw/annotate.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/draw/bezier_clip.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/draw/clip.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/draw/coords.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/draw/path.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/draw/place.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/draw/shapes.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/experimental/__init__.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/experimental/_table_adapters.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/experimental/browser/__init__.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/experimental/browser/compiled.js +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/experimental/browser/compiled.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/experimental/browser/drawings.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/experimental/browser/editor.html +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/experimental/browser/editor.js +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/experimental/browser/fields.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/experimental/browser/geography.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/experimental/browser/grid.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/experimental/browser/images.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/experimental/browser/overrides.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/experimental/browser/page.html +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/experimental/browser/regions.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/experimental/browser/runtime.js +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/experimental/browser/series.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/experimental/browser/timeaxis.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/experimental/channels.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/experimental/contours.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/experimental/engineering.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/experimental/fields.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/experimental/figure_planner.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/experimental/grid.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/experimental/measurement.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/experimental/measurements.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/experimental/planner_geometry.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/experimental/regions.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/experimental/scene_viewer/__init__.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/experimental/scene_viewer/controls.js +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/experimental/scene_viewer/page.html +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/experimental/scene_viewer/runtime.js +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/experimental/scene_viewer/spatial.js +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/experimental/sections.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/experimental/selection.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/experimental/slabs.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/experimental/temporal.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/experimental/tiff.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/experimental/volume.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/figure.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/layout/__init__.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/layout/fit.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/layout/flow.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/layout/graph.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/layout/graph_force.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/layout/graph_layered.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/layout/graph_tree.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/layout/labels.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/layout/sankey.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/links/__init__.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/links/curves.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/links/link.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/plot/__init__.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/plot/axis.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/plot/breaks.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/plot/categories.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/plot/facets.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/plot/inset.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/plot/key.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/plot/marks.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/plot/notes.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/plot/panel.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/plot/png.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/plot/polar.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/plot/ramp.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/plot/raster.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/plot/ribbon.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/plot/scale.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/plot/scatter_batch.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/plot/scatter_raster.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/plot/series.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/plot/simplify.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/plot/timescale.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/render/__init__.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/render/analysis.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/render/bounds.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/render/brushes.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/render/bundle.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/render/composite.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/render/fontembed.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/render/glyphs.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/render/hatching.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/render/outline.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/render/paint.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/render/pathdata.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/render/pdf.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/render/pdftext.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/render/preview.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/render/raster.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/render/resources.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/render/review.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/render/revision.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/render/scene.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/render/svg.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/themes/__init__.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/themes/color.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/themes/palettes.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/themes/theme.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/three/__init__.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/three/api.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/three/backend.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/three/blender/__init__.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/three/blender/device_worker.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/three/blender/discover.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/three/blender/lineart.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/three/blender/options.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/three/blender/scene_worker.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/three/blender/script.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/three/blender/svgread.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/three/blender/template_worker.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/three/blender/tracing.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/three/blender_backend.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/three/camera.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/three/deps.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/three/depth.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/three/devices.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/three/drill.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/three/edges.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/three/hlr.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/three/linalg.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/three/mesh.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/three/occlude.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/three/order.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/three/parse.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/three/place.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/three/protein.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/three/quality.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/three/render_jobs.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/three/scene_annotations.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/three/scene_pass.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/three/scene_projection.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/three/scenes.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/three/shade.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/three/solids.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/three/templates.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/three/templates.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/typeset/__init__.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/typeset/fonts.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/typeset/markup.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/typeset/onpath.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/typeset/outline.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/src/inklet/typeset/shaping.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/stress/assets/mouse.inklet.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/stress/assets/mouse.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/stress/dense_graph.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/stress/draw_probe.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/stress/electro/assets/sem.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/stress/electro/assets/tem.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/stress/electro/cell.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/stress/electro/common.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/stress/electro/data.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/stress/electro/imaging.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/stress/electro/kinetics.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/stress/electro/micrograph.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/stress/electro/system.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/stress/electro_figure.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/stress/fidelity.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/stress/flow.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/stress/hard_figure.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/stress/label_storm.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/stress/mega_figure.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/stress/meshes/README.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/stress/meshes/brain-lh.obj +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/stress/meshes/spot.obj +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/stress/panels/apparatus.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/stress/panels/graphs.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/stress/panels/relations.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/stress/panels/responses.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/stress/panels/sections.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/stress/probes.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/stress/three_figure.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_alignment_contract.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_annotate.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_annotate_letters.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_assets.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_assets_provenance.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_biology_source.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_blend_scene.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_browser_compiled.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_browser_facets.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_browser_figure.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_browser_geography.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_browser_overrides.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_browser_regions.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_browser_revision.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_browser_scatter.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_browser_series.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_browser_statistics.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_browser_switching.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_browser_time.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_categories.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_channels_contours.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_chem_figure.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_cli.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_clip_engine.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_components.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_compositing_engine.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_composition_recipes.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_contrast_and_labels.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_cookbook.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_core.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_core_amendments.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_csv_input.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_diagnostics.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_diagnostics_api.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_diagnostics_artwork.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_diagnostics_break_distorts.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_diagnostics_crossing.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_diagnostics_image_contrast.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_diagnostics_ink.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_diagnostics_keys.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_diagnostics_links.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_diagnostics_paths.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_diagnostics_plot_box.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_diagram_engine.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_docs.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_document.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_document_data.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_document_v25.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_draw_clip.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_draw_path.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_draw_place.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_draw_shapes.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_engine_layout.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_engine_rendering.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_engine_scatter.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_engineering_report.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_export_bundle.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_figure.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_figure_planner.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_fit.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_grid_fields.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_hatch_engine.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_label_measurements.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_layout.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_layout_graph.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_layout_graph_fit.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_layout_origin.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_layout_overrides.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_layout_sankey.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_links.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_links_avoid.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_links_shapes.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_marker_batches.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_mesh_fields.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_microscopy_tiff.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_neural_activity.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_output_contract.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_paint_program.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_place_labels.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_plot_axis.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_plot_broken_axis.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_plot_clip.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_plot_engine.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_plot_facets.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_plot_inset.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_plot_key.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_plot_labels.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_plot_legend.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_plot_marks.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_plot_notes.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_plot_polar.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_plot_publication.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_plot_quality_review.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_plot_raster.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_plot_recipes.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_plot_ribbon.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_plot_scale.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_plot_swarm.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_plot_time.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_presets.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_publication_limits.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_regional_report.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_release_adversarial.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_render_devices.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_render_embed.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_render_glyphs.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_render_jobs.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_render_outline.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_render_pdf.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_render_pdf_text.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_render_quality.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_render_scene.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_render_style_fields.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_render_svg_perf.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_render_v3.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_review_v25.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_round4_plot.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_routing_avoid.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_scatter_rendering.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_scene_annotations.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_scene_culling.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_scene_pass.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_scene_projection.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_scene_templates.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_scene_viewer.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_scientific_report.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_sections.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_shared_plot_margins.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_showcase_library.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_showcase_round3.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_slabs_regions.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_structure_figure.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_svg.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_table_adapters.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_target_pose.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_temporal_adapters.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_text_markup.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_text_on_path.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_theme_font_style.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_themes.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_three_anchor_pin.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_three_api.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_three_backend_blender.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_three_blender.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_three_depth_order.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_three_drill.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_three_hlr.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_three_mesh.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_three_order_vector.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_three_overlay.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_three_parse.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_three_patches.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_three_place.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_three_protein.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_three_ridges.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_three_sort.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_three_sort_budget.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_three_view.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_typeset.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_v4_selection.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_volume.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_watch_review.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/test_world_map_example.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/visual/README.md +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/visual/baseline/categories-pdf.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/visual/baseline/categories-svg.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/visual/baseline/components-pdf.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/visual/baseline/components-svg.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/visual/baseline/dense-pdf.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/visual/baseline/dense-svg.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/visual/baseline/fonts.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/visual/baseline/inset-pdf.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/visual/baseline/inset-svg.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/visual/baseline/markers-pdf.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/visual/baseline/markers-svg.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/visual/baseline/renderers.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/visual/baseline/type-opacity-pdf.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/visual/baseline/type-opacity-svg.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/visual/baseline/v2-category-subset-pdf.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/visual/baseline/v2-category-subset-svg.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/visual/baseline/v2-dense-pdf.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/visual/baseline/v2-dense-svg.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/visual/baseline/v2-late-inset-pdf.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/visual/baseline/v2-late-inset-svg.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/visual/baseline/v2-shared-scales-pdf.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/visual/baseline/v2-shared-scales-svg.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/visual/baseline/v2-twins-matrix-pdf.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/visual/baseline/v2-twins-matrix-svg.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/visual/baseline/v2-workflow-pdf.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/visual/baseline/v2-workflow-svg.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/visual/baseline/v25-document-pdf.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/visual/baseline/v25-document-svg.png +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/visual/fixtures.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tests/visual/v2-budgets.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tools/benchmark_batches.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tools/benchmark_clipping.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tools/benchmark_diagrams.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tools/benchmark_engine.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tools/benchmark_lines.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tools/benchmark_marker_index.mjs +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tools/benchmark_scene_culling.js +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tools/benchmark_scene_gpu.js +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tools/benchmark_scene_redraw.js +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tools/benchmark_scene_viewer.js +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tools/benchmark_scene_zoom.js +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tools/benchmark_v2.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tools/benchmark_v4.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tools/browser_study.js +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tools/check_render_wheel.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tools/dock_ligand.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tools/docs_previews.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tools/docs_previews.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tools/docs_site.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tools/docs_theme/404.html +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tools/docs_theme/card.html +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tools/docs_theme/gallery.html +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tools/docs_theme/home.html +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tools/docs_theme/main.html +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tools/docs_theme/plot-gallery.html +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tools/gen_api.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tools/make_culling_review.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tools/plot_catalog.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tools/prepare_world_map.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tools/preset_gallery.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tools/profile_scene_redraw.js +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tools/showcase_gallery.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tools/stress20.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tools/strip_pdb.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tools/v3_showcase.py +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/tools/v4-budgets.json +0 -0
- {inklet-4.0.0.dev7 → inklet-4.0.0.dev9}/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.
|
|
9
|
+
default: v4.0.0.dev9
|
|
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.
|
|
46
|
+
echo 'Expected a stable or development tag such as v3.1.0 or v4.0.0.dev9' >&2
|
|
47
47
|
exit 1
|
|
48
48
|
}
|
|
49
49
|
gh release view "$RELEASE_TAG" --json isDraft,isPrerelease > "$RUNNER_TEMP/release.json"
|
|
@@ -2,6 +2,36 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 4.0.0.dev9 — 2026-09-12
|
|
6
|
+
|
|
7
|
+
Ninth development preview: mouse movement and proportional artwork scaling.
|
|
8
|
+
3.1.0 remains the stable release.
|
|
9
|
+
|
|
10
|
+
- Add click/drag selection and movement, corner scale handles, containing-group
|
|
11
|
+
selection, keyboard nudges and cancellable pointer gestures to LayoutEditor.
|
|
12
|
+
- Map gestures through nested physical coordinate units and scales. Preserve
|
|
13
|
+
measured positions with folded offsets and keep the opposite scale corner fixed.
|
|
14
|
+
- Add explicit Composition child scale, preserving registered ports and scaling
|
|
15
|
+
complete artwork. Width/height fitting retains its separate layout semantics.
|
|
16
|
+
- Save scale in composition-layout schema 0.2; continue loading schema 0.1 files.
|
|
17
|
+
- Cover geometry, ports, all four corners, undo/reopen, nested transforms,
|
|
18
|
+
invalid gestures and browser/Python export agreement; update the editor guide.
|
|
19
|
+
|
|
20
|
+
## 4.0.0.dev8 — 2026-09-12
|
|
21
|
+
|
|
22
|
+
Eighth development preview: local browser layout editing with Python compilation.
|
|
23
|
+
3.1.0 remains the stable release.
|
|
24
|
+
|
|
25
|
+
- Add experimental LayoutEditor with a loopback browser inspector for named
|
|
26
|
+
composition placements and dimensions, using the real Python compiler for
|
|
27
|
+
previews and matching SVG/PDF exports.
|
|
28
|
+
- Add atomic edit/load/reset commands, bounded undo/redo, saved dev7 layout JSON,
|
|
29
|
+
and explicit source refresh with removed-target reconciliation.
|
|
30
|
+
- Preserve the last successful preview/history after errors, reject stale
|
|
31
|
+
revisions and exports, and keep shared nested definitions consistent.
|
|
32
|
+
- Add a runnable mixed-content editor, an illustrated guide, browser/HTTP tests,
|
|
33
|
+
concurrent-client checks and core-only installed-package coverage.
|
|
34
|
+
|
|
5
35
|
## 4.0.0.dev7 — 2026-09-12
|
|
6
36
|
|
|
7
37
|
Seventh development preview: reproducible composition layout choices.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: inklet
|
|
3
|
-
Version: 4.0.0.
|
|
3
|
+
Version: 4.0.0.dev9
|
|
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,16 +81,16 @@ their signatures and report schemas may change.
|
|
|
81
81
|
|
|
82
82
|
## 4.0 development preview
|
|
83
83
|
|
|
84
|
-
**4.0.0.
|
|
85
|
-
|
|
86
|
-
|
|
84
|
+
**4.0.0.dev9** adds mouse movement and proportional artwork scaling to the
|
|
85
|
+
local layout editor. Drag named objects and groups, use corner handles, undo
|
|
86
|
+
gestures, and save choices that reproduce through the Python compiler.
|
|
87
87
|
```sh
|
|
88
|
-
python -m pip install "inklet==4.0.0.
|
|
88
|
+
python -m pip install "inklet==4.0.0.dev9"
|
|
89
89
|
```
|
|
90
90
|
|
|
91
91
|
[Preview guide and examples](https://inklet.readthedocs.io/en/latest/development-preview/) ·
|
|
92
92
|
[4.0 roadmap](https://inklet.readthedocs.io/en/latest/roadmap/) ·
|
|
93
|
-
[Release notes](https://github.com/Mapika/inklet/releases/tag/v4.0.0.
|
|
93
|
+
[Release notes](https://github.com/Mapika/inklet/releases/tag/v4.0.0.dev9)
|
|
94
94
|
|
|
95
95
|
This is an opt-in development release. Experimental APIs and saved-state schemas
|
|
96
96
|
may change; 3.1.0 remains the stable release. General browser editing,
|
|
@@ -31,16 +31,16 @@ their signatures and report schemas may change.
|
|
|
31
31
|
|
|
32
32
|
## 4.0 development preview
|
|
33
33
|
|
|
34
|
-
**4.0.0.
|
|
35
|
-
|
|
36
|
-
|
|
34
|
+
**4.0.0.dev9** adds mouse movement and proportional artwork scaling to the
|
|
35
|
+
local layout editor. Drag named objects and groups, use corner handles, undo
|
|
36
|
+
gestures, and save choices that reproduce through the Python compiler.
|
|
37
37
|
```sh
|
|
38
|
-
python -m pip install "inklet==4.0.0.
|
|
38
|
+
python -m pip install "inklet==4.0.0.dev9"
|
|
39
39
|
```
|
|
40
40
|
|
|
41
41
|
[Preview guide and examples](https://inklet.readthedocs.io/en/latest/development-preview/) ·
|
|
42
42
|
[4.0 roadmap](https://inklet.readthedocs.io/en/latest/roadmap/) ·
|
|
43
|
-
[Release notes](https://github.com/Mapika/inklet/releases/tag/v4.0.0.
|
|
43
|
+
[Release notes](https://github.com/Mapika/inklet/releases/tag/v4.0.0.dev9)
|
|
44
44
|
|
|
45
45
|
This is an opt-in development release. Experimental APIs and saved-state schemas
|
|
46
46
|
may change; 3.1.0 remains the stable release. General browser editing,
|
|
@@ -218,7 +218,7 @@ A figure assembled from named children and measured expressions.
|
|
|
218
218
|
|
|
219
219
|
* `measure(name, dimension='width')` -- Reference a child's measured width or height, in composition units.
|
|
220
220
|
* `point(name, anchor='center')` -- Reference a placed child's compass point or registered port.
|
|
221
|
-
* `add(name, item, *, x=0, y=0, anchor=None, width=None, height=None)`
|
|
221
|
+
* `add(name, item, *, x=0, y=0, anchor=None, width=None, height=None, scale=1)`
|
|
222
222
|
* `replace(name, item)` -- Replace a child while preserving its placement and dependent references.
|
|
223
223
|
* `slot(name, **placement)` -- Declare a required content input with the same placement options as add().
|
|
224
224
|
* `copy()` -- Copy nested compositions, plots, modules and component instructions.
|
|
Binary file
|
|
Binary file
|
|
@@ -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.
|
|
51
|
+
[4.0.0.dev9 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.
|
|
@@ -15,7 +15,7 @@ illustrative data and generated geometry.
|
|
|
15
15
|
|
|
16
16
|
[Open the standalone figure viewer](assets/guides/composition-recipes.html).
|
|
17
17
|
The viewer supports exploration; these placement and content edits are made
|
|
18
|
-
in Python
|
|
18
|
+
in Python or through the [local layout inspector](layout-editor.md) in dev8.
|
|
19
19
|
|
|
20
20
|
## Declare inputs and defaults
|
|
21
21
|
|
|
@@ -86,7 +86,9 @@ assert before.to_svg() == old_svg
|
|
|
86
86
|
assert doc.compile() is after
|
|
87
87
|
```
|
|
88
88
|
|
|
89
|
-
`place()` changes
|
|
89
|
+
`place()` changes placement fields: `x`, `y`, `anchor`, `width`, `height` and
|
|
90
|
+
`scale`. Explicit `scale` (dev9) uniformly scales complete artwork, including
|
|
91
|
+
text and strokes; it is separate from fitting a plot to a new width/height.
|
|
90
92
|
Set `anchor`, `width` or `height` to `None` to restore their unspecified behavior.
|
|
91
93
|
`replace()` replaces content and keeps its placement and named relationships.
|
|
92
94
|
Dimension updates through `configure()` validate before mutation; expressions,
|
|
@@ -132,8 +134,9 @@ needs. The complete example rejects widths below 140 mm.
|
|
|
132
134
|
Run `python examples/composition_recipes.py --render` from the checkout to
|
|
133
135
|
produce the SVG/PDF/PNG comparisons, standalone HTML viewers, revised-data
|
|
134
136
|
exports and build statistics in `out/composition-recipes/`. PNG requires the
|
|
135
|
-
render extras. This is a Python recipe API; serialized project templates
|
|
136
|
-
asset manifests
|
|
137
|
+
render extras. This is a Python recipe API; serialized project templates
|
|
138
|
+
and asset manifests remain separate upcoming work. Saved layout choices and
|
|
139
|
+
the [local inspector](layout-editor.md) build on these recipes.
|
|
137
140
|
|
|
138
141
|
In dev7, [save and restore layout choices](layout-overrides.md) separately from
|
|
139
142
|
the recipe, preserving measured expressions and reporting removed targets.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# Inklet 4.0.0.
|
|
1
|
+
# Inklet 4.0.0.dev9
|
|
2
2
|
|
|
3
|
-
The
|
|
3
|
+
The ninth 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.
|
|
11
|
+
python -m pip install "inklet==4.0.0.dev9"
|
|
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.
|
|
22
|
+
python -m pip install "inklet[render,pandas,polars]==4.0.0.dev9"
|
|
23
23
|
# Add calibrated volumes and TIFF workflows when needed:
|
|
24
|
-
python -m pip install "inklet[volume,render]==4.0.0.
|
|
24
|
+
python -m pip install "inklet[volume,render]==4.0.0.dev9"
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
The core preview needs no browser server, NumPy, pandas, Polars or Blender.
|
|
@@ -29,7 +29,46 @@ 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
|
-
##
|
|
32
|
+
## Mouse movement and scaling in dev9
|
|
33
|
+
|
|
34
|
+
The [layout editor](layout-editor.md) now supports direct mouse movement and
|
|
35
|
+
proportional corner scaling of named objects and groups. Alt-click selects a
|
|
36
|
+
containing group, arrow keys nudge, and Escape cancels. A drag shows an outline;
|
|
37
|
+
release compiles the actual figure and updates dependent links.
|
|
38
|
+
|
|
39
|
+
Moves preserve measured positions by adding offsets. Scaling keeps the opposite
|
|
40
|
+
corner fixed, including inside scaled groups with different coordinate units.
|
|
41
|
+
Each completed edit participates in undo/redo and saved-layout reconstruction.
|
|
42
|
+
Uniform artwork scaling includes text and strokes; plot width/height controls
|
|
43
|
+
retain their separate typography-preserving layout behavior.
|
|
44
|
+
|
|
45
|
+

|
|
46
|
+
|
|
47
|
+
New layout files use schema 0.2 for explicit artwork scale. Dev7/dev8 schema 0.1
|
|
48
|
+
files still load. Named composition objects are editable; individual plot marks,
|
|
49
|
+
axis labels, connector segments and camera parameters remain outside this scope.
|
|
50
|
+
|
|
51
|
+
## Local layout inspector retained from dev8
|
|
52
|
+
|
|
53
|
+
The [local layout editor](layout-editor.md) turns saved composition choices into
|
|
54
|
+
a browser workflow. Edit named placements and dimensions, preview the actual
|
|
55
|
+
Python-compiled figure, undo/redo changes, reopen layout JSON and download
|
|
56
|
+
matching SVG/PDF exports. The source recipe remains unchanged.
|
|
57
|
+
|
|
58
|
+
Failed edits retain the last successful preview and history. Explicit source
|
|
59
|
+
refresh reapplies choices after data/content changes, reports removed targets
|
|
60
|
+
and clears history. Revision checks prevent stale tabs from overwriting newer
|
|
61
|
+
edits or silently exporting a different preview. Shared nested definitions
|
|
62
|
+
remain consistent across repeated edits and resets.
|
|
63
|
+
|
|
64
|
+

|
|
65
|
+
|
|
66
|
+
This inspector requires its local Python session. It covers composition layout;
|
|
67
|
+
label content, individual plot marks and cameras remain separate work.
|
|
68
|
+
The existing standalone viewers and linked-plot appearance editor retain their
|
|
69
|
+
current scope.
|
|
70
|
+
|
|
71
|
+
## Saved layout choices retained from dev7
|
|
33
72
|
|
|
34
73
|
[Layout overrides](layout-overrides.md) capture changed placements and page
|
|
35
74
|
settings separately from the Python recipe. Versioned JSON uses named paths,
|
|
@@ -44,8 +83,8 @@ after measurements, geometry and labels change.
|
|
|
44
83
|
|
|
45
84
|

|
|
46
85
|
|
|
47
|
-
|
|
48
|
-
|
|
86
|
+
The saved format covers layout decisions. Label/camera overrides, broader
|
|
87
|
+
selection relationships and asset manifests remain open roadmap work.
|
|
49
88
|
|
|
50
89
|
## Reusable compositions retained from dev6
|
|
51
90
|
|
|
@@ -63,8 +102,8 @@ cache invalidation and guide execution are covered by regression checks.
|
|
|
63
102
|
|
|
64
103
|

|
|
65
104
|
|
|
66
|
-
Serialized project templates
|
|
67
|
-
|
|
105
|
+
Serialized project templates and asset manifests remain open roadmap items.
|
|
106
|
+
The local inspector above builds on this shared Python composition API.
|
|
68
107
|
|
|
69
108
|
## Shared plotting and composition retained from dev5
|
|
70
109
|
|
|
@@ -142,7 +181,7 @@ The wheel contains the library. To obtain recipes and fixtures, use the matching
|
|
|
142
181
|
release checkout or source archive:
|
|
143
182
|
|
|
144
183
|
```sh
|
|
145
|
-
git clone --branch v4.0.0.
|
|
184
|
+
git clone --branch v4.0.0.dev9 https://github.com/Mapika/inklet.git
|
|
146
185
|
cd inklet
|
|
147
186
|
python -m pip install -e '.[render]'
|
|
148
187
|
python examples/v4/regional_report.py --renderer compiled --editor --output out/regional
|
|
@@ -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.
|
|
6
|
+
This page covers stable **Inklet 3.1** and the opt-in **4.0.0.dev9 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.
|
|
27
|
+
python -m pip install "inklet==4.0.0.dev9"
|
|
28
28
|
# Optional rendering and DataFrame adapters:
|
|
29
|
-
python -m pip install "inklet[render,pandas,polars]==4.0.0.
|
|
29
|
+
python -m pip install "inklet[render,pandas,polars]==4.0.0.dev9"
|
|
30
30
|
```
|
|
31
31
|
|
|
32
32
|
Use a separate virtual environment when trying the preview. Experimental APIs
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
# Local layout editor
|
|
2
|
+
|
|
3
|
+
Available since **4.0.0.dev8**, with mouse gestures in **4.0.0.dev9**, under `inklet.experimental.layout_editor`. Adjust
|
|
4
|
+
named placements and dimensions in a browser while Python recompiles the
|
|
5
|
+
actual composition. The preview and downloaded SVG/PDF come from the same
|
|
6
|
+
compiled figure, including plots, nested diagrams and native 3D content.
|
|
7
|
+
|
|
8
|
+

|
|
9
|
+
|
|
10
|
+
The [complete example](../examples/layout_editor.py) opens the reusable report
|
|
11
|
+
from [composition recipes](composition-recipes.md). From the checkout, run:
|
|
12
|
+
|
|
13
|
+
```sh
|
|
14
|
+
python examples/layout_editor.py
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Open the local URL printed in the terminal. Keep that Python process running;
|
|
18
|
+
press Ctrl+C to stop it. This is a local editor, not a standalone HTML editing
|
|
19
|
+
file. Ordinary [figure viewers](compiled-viewer.md) remain available for
|
|
20
|
+
sharing a finished document without a Python process.
|
|
21
|
+
|
|
22
|
+
## Start with your composition
|
|
23
|
+
|
|
24
|
+
```python
|
|
25
|
+
import inklet as i
|
|
26
|
+
from inklet.experimental.layout_editor import LayoutEditor
|
|
27
|
+
|
|
28
|
+
recipe = i.composition(120, 75)
|
|
29
|
+
recipe.add('chart', i.plot_spec(x=(0, 2), y=(0, 4)).line([(0, 1), (1, 2), (2, 3)]).axes(),
|
|
30
|
+
x=13, y=8, anchor='area-nw', width=recipe.page_width - 26, height=30)
|
|
31
|
+
recipe.add('caption', i.module('Response'), x=13, y=55)
|
|
32
|
+
editor = LayoutEditor(recipe).start()
|
|
33
|
+
print(editor.url)
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
In a notebook or interactive Python session, leave the editor running while you
|
|
37
|
+
open its URL. It listens only on the local computer. `start(port=...)` can
|
|
38
|
+
request a particular port; the default chooses an available one. The editor
|
|
39
|
+
retains the supplied recipe as its live source and edits independent copies.
|
|
40
|
+
It does not rewrite Python or modify the source recipe.
|
|
41
|
+
|
|
42
|
+
Pass `preset='scientific.general'` or another preset name to compile under that
|
|
43
|
+
preset. By default, the containing document follows the composition's physical
|
|
44
|
+
width and height, including its coordinate unit. Optional `width=` and
|
|
45
|
+
`height=` arguments fix the containing document's dimensions in millimetres;
|
|
46
|
+
those dimensions remain authoritative when the authored page size changes.
|
|
47
|
+
|
|
48
|
+
## Move and scale with the mouse
|
|
49
|
+
|
|
50
|
+
Click a named object in the preview and drag it to move. Corner handles scale
|
|
51
|
+
its complete artwork proportionally, keeping the opposite corner fixed. This
|
|
52
|
+
works for plots, modules, text, images, native 3D components and nested
|
|
53
|
+
compositions. A dashed outline follows the pointer; release to compile the
|
|
54
|
+
result and update dependent links. Escape or a cancelled pointer gesture leaves
|
|
55
|
+
the figure unchanged. A simple click selects without making an edit.
|
|
56
|
+
|
|
57
|
+
Use Alt-click to select a containing group, or choose its path in **Content**.
|
|
58
|
+
Drag a selected group's outline to move the group. With the canvas focused,
|
|
59
|
+
arrow keys move the selected object by 1 mm in figure space; Shift changes that
|
|
60
|
+
to 10 mm. Mouse and pointer gestures use the same coordinates even inside
|
|
61
|
+
scaled groups or compositions with different coordinate units.
|
|
62
|
+
|
|
63
|
+
Each completed edit is one undo step. Movements add offsets to measured
|
|
64
|
+
positions instead of discarding their relationships. Repeated offsets are
|
|
65
|
+
combined, so a long editing session does not grow ever-deeper expressions.
|
|
66
|
+
Saved layout files retain movement and scaling for Python reconstruction.
|
|
67
|
+
|
|
68
|
+
**Scaling artwork also scales its text and strokes.** To resize a plot's data
|
|
69
|
+
region while retaining physical typography, use the width/height controls
|
|
70
|
+
below. The **Uniform scale** field gives an exact artwork scale factor; Reset
|
|
71
|
+
target restores the original factor and placement.
|
|
72
|
+
|
|
73
|
+
The selectable units are named composition children and groups. Individual
|
|
74
|
+
marks, ticks, axis labels and connector segments remain part of their owning
|
|
75
|
+
plot or diagram. Scaling and movement do not remove authored constraints or
|
|
76
|
+
top-fitting behavior; dependent content can reflow when the compiler rebuilds.
|
|
77
|
+
|
|
78
|
+
## Edit and review
|
|
79
|
+
|
|
80
|
+
Choose a named path in **Content**, enter the fields you want to change, then
|
|
81
|
+
select **Apply layout**. Other fields retain their definitions.
|
|
82
|
+
|
|
83
|
+
- Child placement fields are X, Y, anchor, width, height and uniform scale. Numbers use the
|
|
84
|
+
containing composition's coordinate unit. For plots, width and height describe
|
|
85
|
+
the data region; changing them does not scale text or strokes.
|
|
86
|
+
- A field marked **Measured** still follows its layout expression. Entering a
|
|
87
|
+
number replaces that expression with a fixed value. **Reset target** restores
|
|
88
|
+
that target's source layout, including its measured expressions.
|
|
89
|
+
- Blank child width or height means to use the authored content size. A blank
|
|
90
|
+
anchor preserves the local coordinate frame. Composition size fields must
|
|
91
|
+
remain positive.
|
|
92
|
+
- Nested compositions also expose their authored dimensions, coordinate unit
|
|
93
|
+
and top-fitting option. Registered ports and measured links reflow when the
|
|
94
|
+
compiler rebuilds.
|
|
95
|
+
|
|
96
|
+
Failed layouts show an error beside the Apply controls. The last successful
|
|
97
|
+
preview, saved choices and undo history remain available. The inspector does
|
|
98
|
+
not automatically resolve overlap or add constraints: author the required
|
|
99
|
+
measured relationships and minimum sizes in the Python recipe.
|
|
100
|
+
|
|
101
|
+
**Undo** and **Redo** retain up to 100 successful layout edits. A new edit after
|
|
102
|
+
undo starts a new history branch. Shared nested definitions remain shared:
|
|
103
|
+
editing or resetting one occurrence affects the same definition wherever it
|
|
104
|
+
appears. Distinct placements of that shared content remain independently editable.
|
|
105
|
+
|
|
106
|
+
## Save, reopen and export
|
|
107
|
+
|
|
108
|
+
**Save layout** downloads the versioned JSON described in
|
|
109
|
+
[saved layout choices](layout-overrides.md). **Open layout choices** loads that
|
|
110
|
+
same format. The file contains changed placements and dimensions, not the
|
|
111
|
+
source content, styles, assets or undo history. Keep it alongside the recipe.
|
|
112
|
+
|
|
113
|
+
**Download SVG** and **Download PDF** export the successful preview revision.
|
|
114
|
+
If another editor tab changes the session first, stale commands and export
|
|
115
|
+
links are rejected. Use **Reload editor** to obtain the current shared state.
|
|
116
|
+
|
|
117
|
+
The same operations are available in Python:
|
|
118
|
+
|
|
119
|
+
```python
|
|
120
|
+
import json
|
|
121
|
+
from pathlib import Path
|
|
122
|
+
|
|
123
|
+
editor.command('edit', {'path': '/chart', 'placement': {'height': 35}})
|
|
124
|
+
editor.command('gesture', {'path': '/chart', 'dx': 2, 'dy': 1})
|
|
125
|
+
Path('layout-overrides.json').write_text(json.dumps(editor.overrides(), indent=2))
|
|
126
|
+
editor.figure.save('edited.svg', 'edited.pdf')
|
|
127
|
+
restored, report = recipe.with_layout_overrides(editor.overrides())
|
|
128
|
+
assert report['orphaned_targets'] == []
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
`editor.figure` is the last successful compiled snapshot and supports the normal
|
|
132
|
+
[export APIs](export-review.md), including PNG when render dependencies are
|
|
133
|
+
installed. `overrides()` and `snapshot()` return independently owned data.
|
|
134
|
+
Programmatic `command()` accepts `gesture`, `edit`, `reset`, `load`, `undo`,
|
|
135
|
+
`redo` and `refresh`; an optional `revision=` rejects stale callers. A gesture
|
|
136
|
+
uses figure-space `dx`/`dy` in millimetres. Optional `factor` and `corner`
|
|
137
|
+
(`nw`, `ne`, `sw`, `se`) scale from the opposite corner.
|
|
138
|
+
|
|
139
|
+
## Refresh changed source content
|
|
140
|
+
|
|
141
|
+
After updating a Dataset, module label or supplied component in the original
|
|
142
|
+
Python recipe, choose **Refresh source**. The editor reapplies saved layout
|
|
143
|
+
choices, recompiles and clears undo history. It does not watch or rerun Python
|
|
144
|
+
source files. Use a live Python session for source edits, or restart the example
|
|
145
|
+
and reopen its saved layout file after changing its script.
|
|
146
|
+
|
|
147
|
+
Removed named targets or measured references are reported as errors. The
|
|
148
|
+
**Refresh and discard removed targets** button appears after such a failure;
|
|
149
|
+
it explicitly discards incompatible entries and reports their paths. The last
|
|
150
|
+
successful figure remains visible until a refresh succeeds. Loading an
|
|
151
|
+
incompatible file also fails rather than silently dropping choices; reconcile
|
|
152
|
+
it explicitly through the Python [override API](layout-overrides.md) if needed.
|
|
153
|
+
|
|
154
|
+
```python
|
|
155
|
+
recipe['caption'].configure('Updated source label')
|
|
156
|
+
editor.command('refresh')
|
|
157
|
+
assert not editor.snapshot()['undo']
|
|
158
|
+
editor.close()
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
Closing the editor stops its server. Its compiled figure and saved choices
|
|
162
|
+
remain accessible in Python. The `with LayoutEditor(recipe) as editor:` form
|
|
163
|
+
starts and closes the server automatically; keep that context alive during
|
|
164
|
+
browser use.
|
|
165
|
+
|
|
166
|
+
The inspector edits named composition layout and artwork scale. Label content,
|
|
167
|
+
individual plot marks, camera controls, and file watching are not part of this interface.
|
|
168
|
+
The separate [linked-plot appearance editor](visual-editing.md) retains its
|
|
169
|
+
existing scope. Broader authoring and identity work remains on the
|
|
170
|
+
[4.0 roadmap](roadmap.md).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Save and restore layout choices
|
|
2
2
|
|
|
3
|
-
Available
|
|
3
|
+
Available since **4.0.0.dev7**; uniform artwork scale is added in **dev9**. Save placement and dimension edits separately from
|
|
4
4
|
a [composition recipe](composition-recipes.md), then restore those choices
|
|
5
5
|
when its data, labels or content change. The saved JSON records only differences
|
|
6
6
|
from a reference recipe. Unedited source decisions remain in control.
|
|
@@ -13,8 +13,8 @@ the edited SVG at both 180 and 150 mm. The [complete example](../examples/compos
|
|
|
13
13
|
uses live illustrative data and generated geometry.
|
|
14
14
|
|
|
15
15
|
[Open the restored figure viewer](assets/guides/layout-restored.html).
|
|
16
|
-
The viewer supports zoom, pan and vector export
|
|
17
|
-
|
|
16
|
+
The viewer supports zoom, pan and vector export. Edit layouts through the
|
|
17
|
+
Python APIs below or the [local inspector](layout-editor.md) in dev8. This format is separate from the experimental linked-table
|
|
18
18
|
[plot-style overrides](visual-editing.md).
|
|
19
19
|
|
|
20
20
|
## Capture changes against a reference
|
|
@@ -41,7 +41,7 @@ Path('layout.json').write_text(json.dumps(state, indent=2, allow_nan=False))
|
|
|
41
41
|
```
|
|
42
42
|
|
|
43
43
|
`layout_overrides(reference)` captures changed `x`, `y`, `anchor`, `width` and
|
|
44
|
-
`height` fields on children, plus `width`, `height`, `unit` and `fit_top` on
|
|
44
|
+
`height` and uniform `scale` fields on children, plus `width`, `height`, `unit` and `fit_top` on
|
|
45
45
|
compositions. It visits nested compositions through their named children.
|
|
46
46
|
Measured expressions remain expressions, so page resizing and dependent
|
|
47
47
|
content measurements still work after reopening.
|
|
@@ -123,8 +123,10 @@ of 32 operations. Malformed files, nonfinite numbers, invalid properties and
|
|
|
123
123
|
contradictory edits to a shared nested definition are rejected, including when
|
|
124
124
|
`missing='drop'` is used.
|
|
125
125
|
|
|
126
|
-
|
|
127
|
-
|
|
126
|
+
New files use `inklet.composition-layout/0.2`, which adds a positive uniform
|
|
127
|
+
artwork scale. The loader also accepts `inklet.composition-layout/0.1` files
|
|
128
|
+
from dev7/dev8; those cannot contain scale fields. Unknown schemas are rejected.
|
|
129
|
+
Upgrade older readers before opening a new 0.2 file. The file is a JSON object with `schema` and `targets`; each target has
|
|
128
130
|
changed `placement` and/or `page` fields. It is a development-preview format,
|
|
129
131
|
not a general Python object serializer or an asset manifest.
|
|
130
132
|
|
|
@@ -137,3 +139,6 @@ a revised module label. Run
|
|
|
137
139
|
`python examples/composition_recipes.py --render --saved-layout` to generate
|
|
138
140
|
the comparison files, `layout-overrides.json` and `layout-reconciliation.json`
|
|
139
141
|
in `out/composition-recipes/`. PNG generation requires the render extras.
|
|
142
|
+
|
|
143
|
+
In dev8, the [local layout editor](layout-editor.md) provides browser controls,
|
|
144
|
+
undo/redo and Python-compiled previews using this saved format.
|
|
@@ -56,9 +56,13 @@ content inputs, independent instances, placement edits and nested attachment
|
|
|
56
56
|
points in dev6, exercised by plots, diagrams and native 3D at two widths.
|
|
57
57
|
Dev7 adds [saved layout overrides](layout-overrides.md) keyed by named paths,
|
|
58
58
|
with measured expressions, independent restoration and explicit orphan reports.
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
59
|
+
Dev8 adds a [local layout inspector](layout-editor.md) backed by Python
|
|
60
|
+
compilation, with saved choices, undo/redo and explicit source refresh.
|
|
61
|
+
Dev9 adds mouse movement, proportional artwork scaling and keyboard nudges
|
|
62
|
+
for named composition children, with preserved measured positions and saved
|
|
63
|
+
choices. Serialized project templates, asset manifests, shared selection
|
|
64
|
+
relationships, label/camera editing and finer-grained manipulation remain open. Subsequent work
|
|
65
|
+
should extend authoring and cross-content identity beyond this bounded inspector.
|
|
62
66
|
|
|
63
67
|
## Who this should serve
|
|
64
68
|
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"""Edit a mixed plot, diagram and native-3D composition in a local browser."""
|
|
2
|
+
import argparse
|
|
3
|
+
import threading
|
|
4
|
+
from composition_recipes import make_reports
|
|
5
|
+
from inklet.experimental.layout_editor import LayoutEditor
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def main():
|
|
9
|
+
parser=argparse.ArgumentParser(description=__doc__)
|
|
10
|
+
parser.add_argument('--port',type=int,default=0,help='Local port; 0 chooses an available port')
|
|
11
|
+
args=parser.parse_args()
|
|
12
|
+
reports,_=make_reports()
|
|
13
|
+
with LayoutEditor(reports[0],preset='scientific.general').start(port=args.port) as editor:
|
|
14
|
+
print(f'Open {editor.url} — press Ctrl+C to stop.',flush=True)
|
|
15
|
+
try:threading.Event().wait()
|
|
16
|
+
except KeyboardInterrupt:pass
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
if __name__=='__main__':main()
|
|
@@ -64,6 +64,7 @@ nav:
|
|
|
64
64
|
- Panel layout: layout.md
|
|
65
65
|
- Reusable compositions: composition-recipes.md
|
|
66
66
|
- Save layout choices: layout-overrides.md
|
|
67
|
+
- Local layout editor: layout-editor.md
|
|
67
68
|
- Presets and styling: presets.md
|
|
68
69
|
- Review and export: export-review.md
|
|
69
70
|
- Interactive documents (preview):
|