inklet 4.0.0.dev10__tar.gz → 4.0.0.dev11__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.dev10 → inklet-4.0.0.dev11}/.github/workflows/publish.yml +2 -2
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/CHANGELOG.md +16 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/PKG-INFO +6 -6
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/README.md +5 -5
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/api.md +1 -1
- inklet-4.0.0.dev11/docs/assets/guides/layout-editor-styles.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/development-preview.md +28 -8
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/layout-editor.md +57 -6
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/layout-overrides.md +26 -12
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/roadmap.md +4 -1
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/pyproject.toml +1 -1
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/__init__.py +1 -1
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/document/composition.py +2 -2
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/document/layout_overrides.py +33 -24
- inklet-4.0.0.dev11/src/inklet/document/style_overrides.py +108 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/experimental/layout_editor/__init__.py +13 -12
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/experimental/layout_editor/page.html +21 -6
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_layout_gestures.py +1 -1
- inklet-4.0.0.dev11/tests/test_style_overrides.py +191 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tools/check_wheel.py +4 -1
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tools/docs_gallery.json +3 -3
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/.gitattributes +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/.github/workflows/checks.yml +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/.gitignore +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/.readthedocs.yaml +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/CONTRACT.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/CONTRIBUTING.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/LICENSE +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/THIRD_PARTY_NOTICES.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/brand/inklet-icon.svg +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/brand/inklet-logo-dark.svg +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/brand/inklet-logo-mono.svg +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/brand/inklet-logo.svg +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/brand/inklet-wordmark.svg +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/examples/quickstart.pdf +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/examples/quickstart.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/examples/quickstart.svg +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/axes-and-scales-1.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/calibrated-volumes-3.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/channels-and-contours-1.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/composition-recipes-narrow.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/composition-recipes.html +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/composition-recipes.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/cookbook-anchor.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/cookbook-annotation.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/cookbook-bars-histogram.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/cookbook-branch.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/cookbook-broken-axis.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/cookbook-callout.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/cookbook-clipping.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/cookbook-creases.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/cookbook-custom-key.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/cookbook-cutout.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/cookbook-dates.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/cookbook-dense.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/cookbook-elbows.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/cookbook-equal-boxes.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/cookbook-facets.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/cookbook-fit-graph.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/cookbook-flow-width.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/cookbook-formula.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/cookbook-graph.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/cookbook-halo.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/cookbook-heatmap.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/cookbook-hole.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/cookbook-inline-type.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/cookbook-inset.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/cookbook-labels.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/cookbook-layers.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/cookbook-letters.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/cookbook-list.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/cookbook-matrix.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/cookbook-page-grid.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/cookbook-polar.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/cookbook-protein.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/cookbook-routes.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/cookbook-scene-overlay.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/cookbook-scene.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/cookbook-series-key.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/cookbook-span.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/cookbook-sparse-grid.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/cookbook-swarm.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/cookbook-text-path.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/cookbook-toon.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/cookbook-twin-axis.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/cookbook-unequal-panels.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/cookbook-violin.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/cookbook-wrapped-card.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/data-1.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/data-3.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/dense-data-1.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/diagram-components-1.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/diagrams-1.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/layout-3.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/layout-editor-gestures.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/layout-editor-labels.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/layout-editor.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/layout-restored.html +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/layout-restored.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/layout-revised.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/oblique-sections-2.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/plot-composition-narrow.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/plot-composition.html +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/plot-composition.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/plot-quality-after.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/plot-quality-before.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/plots-band.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/plots-bars.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/plots-boxplot.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/plots-errorbars.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/plots-fill-between.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/plots-fill.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/plots-grouped-bars.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/plots-hist.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/plots-horizontal-bars.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/plots-line-errors.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/plots-line.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/plots-markers.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/plots-matrix.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/plots-polar-curve.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/plots-rose.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/plots-scatter.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/plots-series.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/plots-stackarea.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/plots-stacked-bars.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/plots-step.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/plots-swarm.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/plots-violin.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/plotting-1.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/plotting-2.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/publication-plots-1.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/publication-plots-2.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/publication-plots-3.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/publication-plots-4.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/slabs-and-regions-1.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/three-images-1.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/guides/three-images-2.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/biology.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/clipping-after.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/clipping-before.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/clipping-caption.tex +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/clipping-lines-after.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/clipping-lines-before.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/comparison.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/compiled-marker-shapes-caption.tex +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/compiled-marker-shapes.html +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/compiled-markers-display.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/compiled-markers-hardware.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/compiled-scene-viewer.html +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/compiled-viewer-display.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/compiled-viewer-export.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/compiled-viewer-study.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/compositing-after.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/compositing-before.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/compositing-caption.tex +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/dense-scatter-caption.tex +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/diagram-after.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/diagram-before.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/diagram-review-caption.tex +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/engine-after.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/engine-before.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/engine-review-caption.tex +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/fluorescence-biology.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/general-plots-caption.tex +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/general-plots.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/hatch-after.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/hatch-before.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/hatch-caption.tex +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/label-intensities-caption.tex +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/label-intensities-native.csv +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/label-intensities.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/lines-after.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/lines-before.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/marker-batches.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/marker-index-after.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/marker-index-before.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/marker-index-browser-after.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/marker-index-browser-before.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/oblique-biology.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/plot-engine-review-caption.tex +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/real-biology.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/render-scene-caption.tex +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/revision.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/scenes-after.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/scenes-before.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/slab-biology.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/study.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/viewer-culling-after.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/viewer-culling-before.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/viewer-culling-gpu-after.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/viewer-culling-gpu-before.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/viewer-redraw-after.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/viewer-redraw-before.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/viewer-redraw-display.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/viewer-redraw-profile.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/viewer-window-after.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/viewer-window-before.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/research-preview/viewer-window-display.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/after.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/before.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/browser-quality.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/browser-scatter.html +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/browser-scatter.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/browser-study.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/contours-streamlines-170mm.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/contours-streamlines-masked.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/contours-streamlines.html +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/contours-streamlines.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/engineering-report-170mm.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/engineering-report.html +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/engineering-report.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/faceted-operations.html +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/faceted-operations.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/linked-dashboard.html +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/linked-dashboard.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/linked-selection.html +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/linked-selection.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/mesh-fields-170mm.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/mesh-fields.html +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/mesh-fields.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/region-shapes.html +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/region-shapes.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/regional-analysis.html +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/regional-analysis.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/regional-report-160mm.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/regional-report.html +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/regional-report.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/scientific-report-170mm.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/scientific-report.html +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/scientific-report.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/statistical-views.html +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/statistical-views.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/table-inputs.html +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/table-inputs.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/time-series.html +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/time-series.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/transport-map.html +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/transport-map.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/visual-overrides.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/world-population-2019.html +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/world-population-2019.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/world-population-2019.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/world-population-revisions.html +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/world-population-revisions.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/world-population.html +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/assets/v4/world-population.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/axes-and-scales.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/bars-and-areas.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/biology-panels.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/blender-scenes.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/brand.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/browser-rendering.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/calibrated-volumes.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/channels-and-contours.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/cli.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/clipping.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/compatibility.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/compiled-scenes.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/compiled-viewer.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/complex-scene.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/compositing.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/composition-recipes.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/concepts.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/contours-streamlines.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/cookbook.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/data-revisions.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/data.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/dense-data.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/design/browser-backends.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/design/page_grid.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/design/v2.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/design/v4.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/diagram-components.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/diagram-engine.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/diagrams.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/distributions.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/engineering-report.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/example-library.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/examples.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/export-review.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/fluorescence-biology.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/general-plots.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/geographic-features.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/hatching.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/index.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/installation.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/interactive-documents.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/javascripts/inklet.js +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/label-intensities.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/label-measurements.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/layout.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/lines-and-points.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/linked-facets.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/linked-maps.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/linked-plots.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/marker-batches.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/marker-culling.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/matrices.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/mesh-fields.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/microscopy-tiff.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/migration.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/oblique-biology.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/oblique-sections.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/plot-quality.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/plot-recipes.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/plot-types.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/plotting-engine.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/plotting.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/polar-plots.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/presets.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/publication-plots.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/quickstart.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/real-biology.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/recipes/architecture-sketch.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/recipes/architecture.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/recipes/attractor.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/recipes/helix.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/recipes/interference.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/recipes/lattice.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/recipes/photonics.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/recipes/wave-packets.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/regional-report.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/release-checks.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/render-jobs.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/rendering-engine.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/research-preview.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/research-revision.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/research-study.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/scene-annotations.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/scene-paths.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/scene-templates.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/scientific-report.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/showcase.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/slab-biology.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/slabs-and-regions.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/statistical-views.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/stress20.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/stylesheets/code.css +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/stylesheets/inklet.css +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/table-inputs.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/three-images.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/time-series.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/troubleshooting.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/uncertainty.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/v2.5.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/v2.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/v3.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/v4-foundations.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/visual-editing.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/docs/world-map.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/biology/README.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/biology/cells3d.lock.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/biology/data.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/biology/fluorescence.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/biology/organelle.lock.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/biology/requirements.txt +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/biology_panels.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/blender/complex_lab_scene.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/blender/lab_scene.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/blender/occlusion_scene.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/blender/organelle_scene.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/blender/research_lab_views.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/broken_axis.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/clipping_review.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/compiled_marker_shapes.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/compiled_scene_viewer.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/compositing_review.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/composition_recipes.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/data/general-plots/benchmark.csv +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/data/general-plots/learning.csv +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/data/general-plots/revenue.csv +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/data/general-plots/sensor.csv +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/dense_scatter_review.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/diagram_review.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/engine_review.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/feature_flow.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/fluorescence_biology.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/gallery.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/general_plots.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/graph.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/hatch_review.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/hello_figure.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/label_intensities.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/layout_editor.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/oblique_biology.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/panels.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/plot_composition.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/plot_engine_review.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/plot_quality_review.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/polar.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/preset_formats.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/presets.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/real_biology.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/render_scene_review.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/render_smoke.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/research_figure_planner.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/research_planner_study.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/research_revision.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/showcase/README.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/showcase/assets.lock.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/showcase/blender_scenes.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/showcase/figures.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/slab_biology.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/state_machine.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/stress20.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/v25_document.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/v2_cases.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/v2_document.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/v3_complex_scene.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/v3_render_jobs.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/v3_rendering.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/v3_scene_annotations.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/v3_scene_passes.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/v3_scene_paths.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/v3_scene_templates.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/v4/README.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/v4/browser_scatter.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/v4/contours_streamlines.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/v4/data/world-countries.geojson +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/v4/data/world-map-source.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/v4/data/world-population.csv +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/v4/engineering_report.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/v4/faceted_operations.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/v4/fixtures/assembly.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/v4/fixtures/manifest.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/v4/fixtures/measurement.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/v4/fixtures/region-shapes.geojson +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/v4/fixtures/regions.csv +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/v4/fixtures/regions.geojson +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/v4/fixtures/transport.geojson +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/v4/linked_dashboard.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/v4/linked_selection.html +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/v4/linked_selection.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/v4/mesh_fields.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/v4/region_shapes.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/v4/regional_analysis.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/v4/regional_report.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/v4/scientific_report.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/v4/statistical_views.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/v4/table_inputs.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/v4/time_series.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/v4/transport_map.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/examples/v4/world_population.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/figures/annot.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/figures/bio3d.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/figures/cartoon.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/figures/chem_data.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/figures/chem_fingerprints.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/figures/data/1m17-kinase.pdb +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/figures/data/README.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/figures/drug_discovery.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/figures/mouse_brain_data.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/figures/neural_activity.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/figures/pdbfile.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/figures/showcase_part.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/figures/showcase_process.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/figures/showcase_season.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/figures/structure.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/figures/structure_data.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/figures/target.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/figures/trial.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/README.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/biology-panels.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/chem_fingerprints.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/clipping-review.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/compiled-marker-shapes.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/compiled-scene-viewer.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/compiled-viewer-culling.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/compiled-viewer-deep-zoom.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/compositing-pdf-after.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/compositing-pdf-before.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/compositing-review.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/dense-scatter-review.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/diagram-labels-after.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/diagram-labels-before.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/diagram-review.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/engine-review.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/engine-transparency-after.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/engine-transparency-before.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/flow.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/fluorescence-biology.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/general-plots-before.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/general-plots.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/hatch-pdf-after.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/hatch-pdf-before.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/hatch-review.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/hatch-svg-before.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/label-intensities.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/oblique-biology.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/part.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/plot-axis-after.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/plot-axis-before.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/plot-engine-review.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/plots.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/polar.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/preset-formats.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/presets.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/process.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/real-biology.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/render-scene-data.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/render-scene-initial.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/render-scene-review.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/research-crossing-revision.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/research-figure-planner.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/research-planner-study.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/research-revision.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/season.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/showcase-architecture-sketch.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/showcase-architecture.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/showcase-attractor.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/showcase-helix.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/showcase-interference.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/showcase-lattice.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/showcase-photonics.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/showcase-wave-packets.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/slab-biology.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/stress20.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/structure.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/v3-complex-scene.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/v3-render-jobs.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/v3-rendering.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/v3-scene-annotations.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/v3-scene-passes.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/v3-scene-paths.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/gallery/v3-scene-templates.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/mkdocs.yml +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/requirements-ci.txt +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/requirements-docs.txt +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/requirements-tables.txt +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/scripts/bench_svg.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/scripts/rasterise.sh +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/scripts/sanity_typeset.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/__main__.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/assets/__init__.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/assets/asset.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/assets/cache.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/assets/cutout.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/assets/deps.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/assets/harmonise.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/assets/lineart.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/assets/mask.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/assets/provenance.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/assets/raster.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/assets/sidecar.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/assets/silhouette.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/cli.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/components.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/core/__init__.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/core/batch.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/core/diagram.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/core/envelope.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/core/geom.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/core/prims.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/core/style.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/core/trace.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/core/units.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/diagnostics/__init__.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/diagnostics/abut.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/diagnostics/break_rules.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/diagnostics/color.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/diagnostics/cross.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/diagnostics/image.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/diagnostics/key_rules.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/diagnostics/link_rules.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/diagnostics/path_rules.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/diagnostics/plot_rules.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/diagnostics/report.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/diagnostics/rules.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/diagnostics/three_rules.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/document/__init__.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/document/compiler.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/document/data.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/document/data_io.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/document/label_overrides.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/document/module.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/document/presets.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/document/publication.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/document/spec.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/draw/__init__.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/draw/annotate.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/draw/bezier_clip.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/draw/clip.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/draw/coords.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/draw/path.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/draw/place.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/draw/shapes.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/experimental/__init__.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/experimental/_table_adapters.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/experimental/browser/__init__.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/experimental/browser/compiled.js +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/experimental/browser/compiled.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/experimental/browser/drawings.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/experimental/browser/editor.html +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/experimental/browser/editor.js +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/experimental/browser/fields.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/experimental/browser/geography.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/experimental/browser/grid.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/experimental/browser/images.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/experimental/browser/overrides.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/experimental/browser/page.html +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/experimental/browser/regions.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/experimental/browser/runtime.js +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/experimental/browser/series.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/experimental/browser/timeaxis.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/experimental/channels.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/experimental/contours.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/experimental/engineering.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/experimental/fields.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/experimental/figure_planner.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/experimental/grid.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/experimental/layout_editor/gestures.js +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/experimental/measurement.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/experimental/measurements.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/experimental/planner_geometry.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/experimental/regions.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/experimental/scene_viewer/__init__.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/experimental/scene_viewer/controls.js +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/experimental/scene_viewer/page.html +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/experimental/scene_viewer/runtime.js +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/experimental/scene_viewer/spatial.js +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/experimental/sections.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/experimental/selection.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/experimental/slabs.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/experimental/temporal.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/experimental/tiff.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/experimental/volume.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/figure.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/layout/__init__.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/layout/fit.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/layout/flow.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/layout/graph.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/layout/graph_force.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/layout/graph_layered.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/layout/graph_tree.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/layout/labels.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/layout/sankey.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/links/__init__.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/links/curves.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/links/link.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/plot/__init__.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/plot/axis.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/plot/breaks.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/plot/categories.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/plot/facets.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/plot/inset.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/plot/key.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/plot/marks.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/plot/notes.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/plot/panel.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/plot/png.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/plot/polar.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/plot/ramp.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/plot/raster.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/plot/ribbon.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/plot/scale.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/plot/scatter_batch.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/plot/scatter_raster.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/plot/series.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/plot/simplify.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/plot/timescale.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/render/__init__.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/render/analysis.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/render/bounds.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/render/brushes.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/render/bundle.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/render/composite.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/render/fontembed.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/render/glyphs.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/render/hatching.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/render/outline.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/render/paint.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/render/pathdata.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/render/pdf.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/render/pdftext.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/render/preview.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/render/raster.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/render/resources.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/render/review.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/render/revision.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/render/scene.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/render/svg.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/themes/__init__.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/themes/color.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/themes/palettes.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/themes/theme.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/three/__init__.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/three/api.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/three/backend.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/three/blender/__init__.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/three/blender/device_worker.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/three/blender/discover.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/three/blender/lineart.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/three/blender/options.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/three/blender/scene_worker.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/three/blender/script.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/three/blender/svgread.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/three/blender/template_worker.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/three/blender/tracing.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/three/blender_backend.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/three/camera.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/three/deps.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/three/depth.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/three/devices.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/three/drill.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/three/edges.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/three/hlr.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/three/linalg.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/three/mesh.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/three/occlude.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/three/order.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/three/parse.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/three/place.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/three/protein.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/three/quality.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/three/render_jobs.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/three/scene_annotations.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/three/scene_pass.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/three/scene_projection.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/three/scenes.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/three/shade.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/three/solids.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/three/templates.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/three/templates.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/typeset/__init__.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/typeset/fonts.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/typeset/markup.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/typeset/onpath.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/typeset/outline.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/src/inklet/typeset/shaping.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/stress/assets/mouse.inklet.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/stress/assets/mouse.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/stress/dense_graph.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/stress/draw_probe.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/stress/electro/assets/sem.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/stress/electro/assets/tem.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/stress/electro/cell.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/stress/electro/common.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/stress/electro/data.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/stress/electro/imaging.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/stress/electro/kinetics.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/stress/electro/micrograph.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/stress/electro/system.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/stress/electro_figure.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/stress/fidelity.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/stress/flow.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/stress/hard_figure.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/stress/label_storm.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/stress/mega_figure.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/stress/meshes/README.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/stress/meshes/brain-lh.obj +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/stress/meshes/spot.obj +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/stress/panels/apparatus.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/stress/panels/graphs.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/stress/panels/relations.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/stress/panels/responses.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/stress/panels/sections.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/stress/probes.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/stress/three_figure.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_alignment_contract.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_annotate.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_annotate_letters.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_assets.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_assets_provenance.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_biology_source.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_blend_scene.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_browser_compiled.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_browser_facets.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_browser_figure.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_browser_geography.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_browser_overrides.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_browser_regions.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_browser_revision.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_browser_scatter.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_browser_series.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_browser_statistics.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_browser_switching.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_browser_time.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_categories.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_channels_contours.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_chem_figure.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_cli.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_clip_engine.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_components.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_compositing_engine.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_composition_recipes.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_contrast_and_labels.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_cookbook.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_core.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_core_amendments.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_csv_input.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_diagnostics.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_diagnostics_api.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_diagnostics_artwork.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_diagnostics_break_distorts.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_diagnostics_crossing.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_diagnostics_image_contrast.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_diagnostics_ink.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_diagnostics_keys.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_diagnostics_links.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_diagnostics_paths.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_diagnostics_plot_box.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_diagram_engine.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_docs.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_docs_site.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_document.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_document_data.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_document_v25.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_draw_clip.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_draw_path.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_draw_place.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_draw_shapes.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_engine_layout.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_engine_rendering.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_engine_scatter.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_engineering_report.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_export_bundle.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_figure.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_figure_planner.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_fit.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_grid_fields.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_guides.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_hatch_engine.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_label_measurements.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_label_overrides.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_layout.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_layout_editor.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_layout_graph.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_layout_graph_fit.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_layout_origin.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_layout_overrides.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_layout_sankey.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_links.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_links_avoid.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_links_shapes.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_marker_batches.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_mesh_fields.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_microscopy_tiff.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_neural_activity.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_output_contract.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_paint_program.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_place_labels.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_plot_axis.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_plot_broken_axis.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_plot_clip.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_plot_engine.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_plot_facets.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_plot_inset.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_plot_key.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_plot_labels.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_plot_legend.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_plot_marks.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_plot_notes.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_plot_polar.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_plot_publication.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_plot_quality_review.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_plot_raster.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_plot_recipes.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_plot_ribbon.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_plot_scale.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_plot_swarm.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_plot_time.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_presets.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_publication_limits.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_regional_report.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_release_adversarial.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_render_devices.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_render_embed.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_render_glyphs.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_render_jobs.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_render_outline.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_render_pdf.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_render_pdf_text.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_render_quality.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_render_scene.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_render_style_fields.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_render_svg_perf.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_render_v3.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_review_v25.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_round4_plot.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_routing_avoid.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_scatter_rendering.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_scene_annotations.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_scene_culling.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_scene_pass.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_scene_projection.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_scene_templates.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_scene_viewer.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_scientific_report.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_sections.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_shared_plot_margins.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_showcase_library.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_showcase_round3.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_slabs_regions.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_structure_figure.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_svg.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_table_adapters.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_target_pose.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_temporal_adapters.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_text_markup.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_text_on_path.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_theme_font_style.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_themes.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_three_anchor_pin.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_three_api.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_three_backend_blender.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_three_blender.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_three_depth_order.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_three_drill.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_three_hlr.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_three_mesh.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_three_order_vector.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_three_overlay.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_three_parse.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_three_patches.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_three_place.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_three_protein.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_three_ridges.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_three_sort.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_three_sort_budget.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_three_view.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_typeset.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_v4_selection.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_volume.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_watch_review.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/test_world_map_example.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/visual/README.md +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/visual/baseline/categories-pdf.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/visual/baseline/categories-svg.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/visual/baseline/components-pdf.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/visual/baseline/components-svg.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/visual/baseline/dense-pdf.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/visual/baseline/dense-svg.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/visual/baseline/fonts.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/visual/baseline/inset-pdf.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/visual/baseline/inset-svg.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/visual/baseline/markers-pdf.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/visual/baseline/markers-svg.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/visual/baseline/renderers.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/visual/baseline/type-opacity-pdf.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/visual/baseline/type-opacity-svg.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/visual/baseline/v2-category-subset-pdf.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/visual/baseline/v2-category-subset-svg.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/visual/baseline/v2-dense-pdf.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/visual/baseline/v2-dense-svg.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/visual/baseline/v2-late-inset-pdf.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/visual/baseline/v2-late-inset-svg.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/visual/baseline/v2-shared-scales-pdf.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/visual/baseline/v2-shared-scales-svg.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/visual/baseline/v2-twins-matrix-pdf.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/visual/baseline/v2-twins-matrix-svg.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/visual/baseline/v2-workflow-pdf.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/visual/baseline/v2-workflow-svg.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/visual/baseline/v25-document-pdf.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/visual/baseline/v25-document-svg.png +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/visual/fixtures.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tests/visual/v2-budgets.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tools/benchmark_batches.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tools/benchmark_clipping.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tools/benchmark_diagrams.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tools/benchmark_engine.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tools/benchmark_lines.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tools/benchmark_marker_index.mjs +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tools/benchmark_scene_culling.js +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tools/benchmark_scene_gpu.js +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tools/benchmark_scene_redraw.js +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tools/benchmark_scene_viewer.js +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tools/benchmark_scene_zoom.js +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tools/benchmark_v2.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tools/benchmark_v4.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tools/browser_study.js +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tools/check_render_wheel.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tools/dock_ligand.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tools/docs_previews.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tools/docs_previews.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tools/docs_site.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tools/docs_theme/404.html +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tools/docs_theme/card.html +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tools/docs_theme/gallery.html +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tools/docs_theme/home.html +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tools/docs_theme/main.html +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tools/docs_theme/plot-gallery.html +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tools/gen_api.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tools/make_culling_review.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tools/plot_catalog.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tools/prepare_world_map.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tools/preset_gallery.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tools/profile_scene_redraw.js +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tools/showcase_gallery.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tools/stress20.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tools/strip_pdb.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tools/v3_showcase.py +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/tools/v4-budgets.json +0 -0
- {inklet-4.0.0.dev10 → inklet-4.0.0.dev11}/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.dev11
|
|
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.dev11' >&2
|
|
47
47
|
exit 1
|
|
48
48
|
}
|
|
49
49
|
gh release view "$RELEASE_TAG" --json isDraft,isPrerelease > "$RUNNER_TEMP/release.json"
|
|
@@ -2,6 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 4.0.0.dev11 — 2026-09-12
|
|
6
|
+
|
|
7
|
+
Eleventh development preview: unified composition layout, labels and appearance.
|
|
8
|
+
3.1.0 remains the stable release.
|
|
9
|
+
|
|
10
|
+
- Add supported keyed line/marker styles, text/callout appearance and module box
|
|
11
|
+
styles to the local composition editor, using the same Python compiler.
|
|
12
|
+
- Organize controls into Layout, Labels and Styles. Apply changes across sections
|
|
13
|
+
as one atomic edit with shared undo/redo, reset and saved-state reconstruction.
|
|
14
|
+
- Save typed named appearance decisions in schema 0.4, accepting legacy 0.1–0.3
|
|
15
|
+
files. Explicit null style fields remove authored keywords for automatic styling.
|
|
16
|
+
- Preserve data-driven marker sizes and colours; report incompatible style targets
|
|
17
|
+
after source revisions while retaining compatible label/layout edits on discard.
|
|
18
|
+
- Cover combined browser edits, two-width SVG/PDF agreement, inherited styles,
|
|
19
|
+
text remeasurement, live data and alias reconciliation; update illustrated docs.
|
|
20
|
+
|
|
5
21
|
## 4.0.0.dev10 — 2026-09-12
|
|
6
22
|
|
|
7
23
|
Tenth development preview: reproducible named label and callout editing.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: inklet
|
|
3
|
-
Version: 4.0.0.
|
|
3
|
+
Version: 4.0.0.dev11
|
|
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
|
-
editor.
|
|
86
|
-
and save choices that reproduce through
|
|
84
|
+
**4.0.0.dev11** connects layout, label and appearance editing in the local
|
|
85
|
+
composition editor. Adjust supported plot, text and module styles alongside
|
|
86
|
+
layout, undo changes together, and save choices that reproduce through Python.
|
|
87
87
|
```sh
|
|
88
|
-
python -m pip install "inklet==4.0.0.
|
|
88
|
+
python -m pip install "inklet==4.0.0.dev11"
|
|
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.dev11)
|
|
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
|
-
editor.
|
|
36
|
-
and save choices that reproduce through
|
|
34
|
+
**4.0.0.dev11** connects layout, label and appearance editing in the local
|
|
35
|
+
composition editor. Adjust supported plot, text and module styles alongside
|
|
36
|
+
layout, undo changes together, and save choices that reproduce through Python.
|
|
37
37
|
```sh
|
|
38
|
-
python -m pip install "inklet==4.0.0.
|
|
38
|
+
python -m pip install "inklet==4.0.0.dev11"
|
|
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.dev11)
|
|
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,
|
|
@@ -225,7 +225,7 @@ A figure assembled from named children and measured expressions.
|
|
|
225
225
|
* `instantiate(**items)` -- Create an independent recipe, filling required slots and replacing defaults.
|
|
226
226
|
* `configure(*, width=None, height=None, unit=None, fit_top=None)` -- Atomically update authored page dimensions or coordinate units.
|
|
227
227
|
* `place(name, **placement)` -- Edit a child's placement without replacing its content or named links.
|
|
228
|
-
* `layout_overrides(reference)` -- Capture changed layout and
|
|
228
|
+
* `layout_overrides(reference)` -- Capture changed layout, named labels and supported styles against a reference.
|
|
229
229
|
* `with_layout_overrides(value, *, missing='error')` -- Return an independent edited recipe and a reconciliation report.
|
|
230
230
|
* `port(name, target)` -- Expose a child's name:anchor as a reusable composition attachment point.
|
|
231
231
|
* `constrain(value, *, minimum=0, message='composition needs more space')` -- Require an expression to meet a minimum; fail before drawing.
|
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# Inklet 4.0.0.
|
|
1
|
+
# Inklet 4.0.0.dev11
|
|
2
2
|
|
|
3
|
-
The
|
|
3
|
+
The eleventh 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.dev11"
|
|
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.dev11"
|
|
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.dev11"
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
The core preview needs no browser server, NumPy, pandas, Polars or Blender.
|
|
@@ -29,7 +29,27 @@ 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
|
+
## Unified composition authoring in dev11
|
|
33
|
+
|
|
34
|
+
The [composition editor](layout-editor.md#edit-appearance-alongside-layout) now
|
|
35
|
+
combines Layout, Labels and Styles sections. Pending changes across sections
|
|
36
|
+
compile together as one undo step, with one saved file and matching SVG/PDF
|
|
37
|
+
exports. Supported appearance controls cover keyed lines and markers, text and
|
|
38
|
+
callouts, and module boxes. Text sizes remeasure dependent layout and ports.
|
|
39
|
+
|
|
40
|
+

|
|
41
|
+
|
|
42
|
+
Only constant marker colours and diameters are editable; data-driven fields
|
|
43
|
+
remain attached to their sources. A source revision that changes an edited
|
|
44
|
+
constant into a data mapping reports an incompatible style target. Explicit
|
|
45
|
+
discard retains compatible layout and labels on the same object.
|
|
46
|
+
|
|
47
|
+
Schema 0.4 adds typed named style decisions and explicit removal of style
|
|
48
|
+
keywords. Schemas 0.1, 0.2 and 0.3 still load. The separate linked-table editor
|
|
49
|
+
keeps its own format; arbitrary paint editing and general cross-content object
|
|
50
|
+
relationships remain open.
|
|
51
|
+
|
|
52
|
+
## Named labels and callouts retained from dev10
|
|
33
53
|
|
|
34
54
|
The [local layout editor](layout-editor.md#edit-labels-and-callouts) now edits
|
|
35
55
|
string module captions, text components, keyed plot titles/text/callouts and
|
|
@@ -44,7 +64,7 @@ definitions share text decisions, while unedited source fields remain live.
|
|
|
44
64
|
|
|
45
65
|

|
|
46
66
|
|
|
47
|
-
|
|
67
|
+
Dev10 introduced layout schema 0.3 for labels; schemas 0.1 and 0.2 still load. Undo/redo,
|
|
48
68
|
reopening and matching SVG/PDF export include text edits. Axis labels, individual
|
|
49
69
|
callout dragging, camera editing and general object relationships remain open.
|
|
50
70
|
|
|
@@ -200,7 +220,7 @@ The wheel contains the library. To obtain recipes and fixtures, use the matching
|
|
|
200
220
|
release checkout or source archive:
|
|
201
221
|
|
|
202
222
|
```sh
|
|
203
|
-
git clone --branch v4.0.0.
|
|
223
|
+
git clone --branch v4.0.0.dev11 https://github.com/Mapika/inklet.git
|
|
204
224
|
cd inklet
|
|
205
225
|
python -m pip install -e '.[render]'
|
|
206
226
|
python examples/v4/regional_report.py --renderer compiled --editor --output out/regional
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Local layout editor
|
|
2
2
|
|
|
3
|
-
Available since **4.0.0.dev8**, with mouse gestures in **4.0.0.dev9
|
|
3
|
+
Available since **4.0.0.dev8**, with mouse gestures in **4.0.0.dev9**, named label editing in **4.0.0.dev10**, and unified style controls in **4.0.0.dev11**, under `inklet.experimental.layout_editor`. Adjust
|
|
4
4
|
named placements and dimensions in a browser while Python recompiles the
|
|
5
5
|
actual composition. The preview and downloaded SVG/PDF come from the same
|
|
6
6
|
compiled figure, including plots, nested diagrams and native 3D content.
|
|
@@ -79,7 +79,7 @@ top-fitting behavior; dependent content can reflow when the compiler rebuilds.
|
|
|
79
79
|
|
|
80
80
|

|
|
81
81
|
|
|
82
|
-
Select a composition child, then
|
|
82
|
+
Select a composition child, choose **Labels** in **Edit**, then change its fields and choose **Apply
|
|
83
83
|
changes**. The editor supports text components created with `component(i.text,
|
|
84
84
|
...)`, string module captions, and plot `title`, `text` and `annotate`
|
|
85
85
|
instructions with an explicit string `key`. For composition callouts, supply a
|
|
@@ -115,9 +115,60 @@ coordinates, styling and other source choices remain live. Shared definitions
|
|
|
115
115
|
share label edits; use an independent recipe copy for independent captions.
|
|
116
116
|
Undo/redo, reset, saved JSON and SVG/PDF exports include the label edits.
|
|
117
117
|
|
|
118
|
+
## Edit appearance alongside layout
|
|
119
|
+
|
|
120
|
+

|
|
121
|
+
|
|
122
|
+
Choose **Styles** in **Edit**. Layout, Labels and Styles retain their pending
|
|
123
|
+
changes when switching sections; **Apply changes** compiles them together as
|
|
124
|
+
one undo step. Selecting another content target discards unapplied fields.
|
|
125
|
+
|
|
126
|
+
| Named content | Available appearance controls |
|
|
127
|
+
| --- | --- |
|
|
128
|
+
| Keyed plot `line` instructions | Stroke colour, physical line width, opacity |
|
|
129
|
+
| Keyed plot `scatter` instructions | Constant colour and diameter, opacity |
|
|
130
|
+
| Text components and string module captions | Fill colour and physical text size |
|
|
131
|
+
| Module boxes | Fill, stroke colour and physical line width |
|
|
132
|
+
| Keyed plot `text`/`annotate` and named composition callouts | Fill colour and physical text size |
|
|
133
|
+
|
|
134
|
+
Colours accept the colour parser's hex, RGB and named CSS forms; `none` also
|
|
135
|
+
works for fill and stroke. Opacity ranges from 0 to 1. Widths use millimetres;
|
|
136
|
+
marker size is **diameter**, and text size must be positive. Blank style fields
|
|
137
|
+
remove an explicit keyword and use the renderer's automatic/preset behaviour.
|
|
138
|
+
That removal is saved as JSON `null`. **Reset target** instead restores the
|
|
139
|
+
current source's layout, labels and styles together. Parent artwork scaling
|
|
140
|
+
still scales the resulting text and strokes.
|
|
141
|
+
|
|
142
|
+
```python
|
|
143
|
+
editor.command('edit', {
|
|
144
|
+
'path': '/caption',
|
|
145
|
+
'placement': {'x': 18},
|
|
146
|
+
'labels': {'label': {'kind': 'module-label', 'text': 'Reviewed response'}},
|
|
147
|
+
'styles': {
|
|
148
|
+
'text': {'kind': 'module-text', 'size': 4, 'fill': '#203e53'},
|
|
149
|
+
'box': {'kind': 'module-box', 'fill': '#e9f0f4', 'stroke_width': 0.4},
|
|
150
|
+
},
|
|
151
|
+
})
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
Larger text is remeasured, so connected modules and dependent layout update.
|
|
155
|
+
Style edits retain live data, named instruction keys and unedited source choices.
|
|
156
|
+
Data-driven marker colour/diameter controls are omitted, including ramped
|
|
157
|
+
colours. If a source revision turns an edited constant into a data mapping,
|
|
158
|
+
the saved style is reported as incompatible, such as `/chart#style:samples`.
|
|
159
|
+
Explicit discard removes that style target's edits while preserving compatible
|
|
160
|
+
labels and placements on the chart.
|
|
161
|
+
|
|
162
|
+
Styles use the same named path, key and kind contracts as labels. New saved
|
|
163
|
+
files use schema 0.4; 0.1, 0.2 and 0.3 files still load. This unifies authoring
|
|
164
|
+
within the composition editor. The separate [linked-table style inspector](visual-editing.md)
|
|
165
|
+
retains its own source-bound format; its files are not interchangeable. Plot
|
|
166
|
+
titles, axes, bars, arbitrary factories, gradients and camera/material settings
|
|
167
|
+
are outside this style-control subset.
|
|
168
|
+
|
|
118
169
|
## Edit and review
|
|
119
170
|
|
|
120
|
-
Choose a named path in **Content**, enter the fields you want to change, then
|
|
171
|
+
Choose a named path in **Content** and a section in **Edit**, enter the fields you want to change, then
|
|
121
172
|
select **Apply changes**. Other fields retain their definitions.
|
|
122
173
|
|
|
123
174
|
- Child placement fields are X, Y, anchor, width, height and uniform scale. Numbers use the
|
|
@@ -138,7 +189,7 @@ preview, saved choices and undo history remain available. The inspector does
|
|
|
138
189
|
not automatically resolve overlap or add constraints: author the required
|
|
139
190
|
measured relationships and minimum sizes in the Python recipe.
|
|
140
191
|
|
|
141
|
-
**Undo** and **Redo** retain up to 100 successful
|
|
192
|
+
**Undo** and **Redo** retain up to 100 successful authoring edits. A new edit after
|
|
142
193
|
undo starts a new history branch. Shared nested definitions remain shared:
|
|
143
194
|
editing or resetting one occurrence affects the same definition wherever it
|
|
144
195
|
appears. Distinct placements of that shared content remain independently editable.
|
|
@@ -147,8 +198,8 @@ appears. Distinct placements of that shared content remain independently editabl
|
|
|
147
198
|
|
|
148
199
|
**Save layout** downloads the versioned JSON described in
|
|
149
200
|
[saved layout choices](layout-overrides.md). **Open layout choices** loads that
|
|
150
|
-
same format. The file contains changed
|
|
151
|
-
source content,
|
|
201
|
+
same format. The file contains changed layout, label and supported style fields.
|
|
202
|
+
Other source content, assets and undo history stay outside the file. Keep it alongside the recipe.
|
|
152
203
|
|
|
153
204
|
**Download SVG** and **Download PDF** export the successful preview revision.
|
|
154
205
|
If another editor tab changes the session first, stale commands and export
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Save and restore layout choices
|
|
2
2
|
|
|
3
|
-
Available since **4.0.0.dev7**; uniform artwork scale is added in **dev9**, named text and callout decisions in **dev10**. Save placement and dimension edits separately from
|
|
3
|
+
Available since **4.0.0.dev7**; uniform artwork scale is added in **dev9**, named text and callout decisions in **dev10**, and supported appearance fields in **dev11**. 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.
|
|
@@ -21,7 +21,7 @@ Python APIs below or the [local inspector](layout-editor.md) in dev8. This forma
|
|
|
21
21
|
|
|
22
22
|
Keep a reference recipe, copy it, then edit placements. The reference and edited
|
|
23
23
|
recipe must have the same named composition structure when capturing changes.
|
|
24
|
-
Supported named label differences are captured too.
|
|
24
|
+
Supported named label differences are captured too. Supported named style differences are captured too; other content is not serialized into the layout file.
|
|
25
25
|
|
|
26
26
|
```python
|
|
27
27
|
import json
|
|
@@ -63,14 +63,28 @@ matching label keys and kinds; they do not serialize added or removed content.
|
|
|
63
63
|
A saved label entry includes its kind and only the fields that changed:
|
|
64
64
|
|
|
65
65
|
```json
|
|
66
|
-
{"schema":"inklet.composition-layout/0.
|
|
66
|
+
{"schema":"inklet.composition-layout/0.4","targets":{"/caption":{"labels":{"label":{"kind":"module-label","text":"Reviewed response"}}}}}
|
|
67
67
|
```
|
|
68
68
|
|
|
69
|
-
Readers accept legacy schemas 0.1 and 0.
|
|
69
|
+
Readers accept legacy schemas 0.1, 0.2 and 0.3. New captures use 0.4; older readers
|
|
70
70
|
must be upgraded before opening them. Label fields are rejected under older
|
|
71
71
|
schema identifiers. Removed/incompatible labels appear as `path#key` in the
|
|
72
72
|
orphan report. Explicit `missing='drop'` retains compatible edits on that path.
|
|
73
73
|
|
|
74
|
+
## Named appearance decisions
|
|
75
|
+
|
|
76
|
+
Schema 0.4 adds a `styles` group beside `placement`, `page` and `labels`.
|
|
77
|
+
Each named style contains its `kind` and changed fields. The [appearance guide](layout-editor.md#edit-appearance-alongside-layout)
|
|
78
|
+
lists supported controls, units, data-mapping exclusions and a combined edit.
|
|
79
|
+
A `null` style value removes an explicit keyword; unedited source fields stay
|
|
80
|
+
live. Capturing changes compares compatible named style keys and kinds, not
|
|
81
|
+
arbitrary renderer nodes or paint objects.
|
|
82
|
+
|
|
83
|
+
Source revisions that remove a style key, change its kind or replace a constant
|
|
84
|
+
with a data mapping produce a `path#style:key` orphan. With explicit discard,
|
|
85
|
+
compatible layout and label edits on the same path survive. The separate
|
|
86
|
+
linked-table visual-override format is not converted by this loader.
|
|
87
|
+
|
|
74
88
|
## Restore on the current recipe
|
|
75
89
|
|
|
76
90
|
```python
|
|
@@ -104,7 +118,7 @@ updated_figure = render(updated)
|
|
|
104
118
|
updated_figure.save('updated.svg')
|
|
105
119
|
```
|
|
106
120
|
|
|
107
|
-
The file stores layout
|
|
121
|
+
The file stores layout, supported labels and styles, not datasets,
|
|
108
122
|
links, ports, constraints, factories or camera parameters. Keep the Python
|
|
109
123
|
recipe and its assets alongside it. The containing document can supply its own
|
|
110
124
|
render dimensions; restoring authored page dimensions does not override that
|
|
@@ -142,13 +156,13 @@ of 32 operations. Malformed files, nonfinite numbers, invalid properties and
|
|
|
142
156
|
contradictory edits to a shared nested definition are rejected, including when
|
|
143
157
|
`missing='drop'` is used.
|
|
144
158
|
|
|
145
|
-
New files use `inklet.composition-layout/0.
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
`
|
|
151
|
-
|
|
159
|
+
New files use `inklet.composition-layout/0.4`, adding named appearance decisions.
|
|
160
|
+
The loader also accepts 0.1 files from dev7/dev8 (without scale), 0.2 files from
|
|
161
|
+
dev9 (without labels) and 0.3 files from dev10 (without styles). Unknown schemas
|
|
162
|
+
are rejected. Upgrade older readers before opening a 0.4 file. The JSON object
|
|
163
|
+
contains `schema` and `targets`; each target has changed `placement`, `page`,
|
|
164
|
+
`labels` and/or `styles` fields. This development-preview format is not a general
|
|
165
|
+
Python object serializer or an asset manifest.
|
|
152
166
|
|
|
153
167
|
## Review revised content
|
|
154
168
|
|
|
@@ -62,7 +62,10 @@ Dev9 adds mouse movement, proportional artwork scaling and keyboard nudges
|
|
|
62
62
|
for named composition children, with preserved measured positions and saved
|
|
63
63
|
choices. Dev10 adds saved named text and callout editing across modules, text
|
|
64
64
|
components, keyed plot instructions and composition annotations, including typed
|
|
65
|
-
identity reconciliation.
|
|
65
|
+
identity reconciliation. Dev11 connects supported plot, text and module styles
|
|
66
|
+
to that same layout/label history, saved state and reconciliation workflow,
|
|
67
|
+
with data-driven marker fields protected from constant overrides.
|
|
68
|
+
Serialized project templates, asset manifests, shared selection
|
|
66
69
|
relationships, axis-label/camera editing and finer-grained manipulation remain open. Subsequent work
|
|
67
70
|
should extend authoring and cross-content identity beyond this bounded inspector.
|
|
68
71
|
|
|
@@ -193,10 +193,10 @@ class Composition(BuildSpec):
|
|
|
193
193
|
raise KeyError(name)
|
|
194
194
|
|
|
195
195
|
def layout_overrides(self, reference):
|
|
196
|
-
"""Capture changed layout and
|
|
196
|
+
"""Capture changed layout, named labels and supported styles against a reference.
|
|
197
197
|
|
|
198
198
|
Return JSON-compatible, versioned decisions keyed by named child paths.
|
|
199
|
-
Other content,
|
|
199
|
+
Other content, data, links and constraints remain in Python.
|
|
200
200
|
"""
|
|
201
201
|
from .layout_overrides import capture
|
|
202
202
|
return capture(self, reference)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"""Portable layout and
|
|
1
|
+
"""Portable layout, text and appearance decisions for named composition recipes."""
|
|
2
2
|
from __future__ import annotations
|
|
3
3
|
|
|
4
4
|
import math
|
|
@@ -6,9 +6,11 @@ import re
|
|
|
6
6
|
|
|
7
7
|
from .compiler import LayoutError
|
|
8
8
|
from .spec import length
|
|
9
|
-
from . import label_overrides as labels
|
|
9
|
+
from . import label_overrides as labels, style_overrides as styles
|
|
10
|
+
_EDITORS = {"labels":labels, "styles":styles}
|
|
10
11
|
|
|
11
|
-
SCHEMA = 'inklet.composition-layout/0.
|
|
12
|
+
SCHEMA = 'inklet.composition-layout/0.4'
|
|
13
|
+
LABEL_SCHEMA = 'inklet.composition-layout/0.3'
|
|
12
14
|
SCALE_SCHEMA = 'inklet.composition-layout/0.2'
|
|
13
15
|
LEGACY_SCHEMA = 'inklet.composition-layout/0.1'
|
|
14
16
|
_PLACEMENT = {'x', 'y', 'anchor', 'width', 'height', 'scale'}
|
|
@@ -93,7 +95,7 @@ def _page(values):
|
|
|
93
95
|
|
|
94
96
|
|
|
95
97
|
def capture(recipe, reference):
|
|
96
|
-
"""Record changed layout and compatible named labels; keep unedited fields live."""
|
|
98
|
+
"""Record changed layout and compatible named labels/styles; keep unedited fields live."""
|
|
97
99
|
from .composition import Composition
|
|
98
100
|
if not isinstance(reference,Composition): raise TypeError('reference must be a Composition')
|
|
99
101
|
current, before = _targets(recipe), _targets(reference)
|
|
@@ -115,13 +117,14 @@ def capture(recipe, reference):
|
|
|
115
117
|
old = _page({k:getattr(old_item,k) for k in sorted(_PAGE)})
|
|
116
118
|
changed = {k:v for k,v in now.items() if v!=old[k]}
|
|
117
119
|
if changed: entry['page'] = changed
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
120
|
+
for group,adapter in _EDITORS.items():
|
|
121
|
+
current_fields, old_fields = adapter.targets(item), adapter.targets(old_item)
|
|
122
|
+
changes = {}
|
|
123
|
+
for key,(fields,_) in current_fields.items():
|
|
124
|
+
if key not in old_fields or fields['kind']!=old_fields[key][0]['kind']: continue
|
|
125
|
+
changed = {k:v for k,v in fields.items() if k!='kind' and v!=old_fields[key][0].get(k, object())}
|
|
126
|
+
if changed: changes[key] = {'kind':fields['kind'], **changed}
|
|
127
|
+
if changes: entry[group] = adapter.validate(changes)
|
|
125
128
|
if entry: edits[path] = entry
|
|
126
129
|
return {'schema':SCHEMA,'targets':edits}
|
|
127
130
|
|
|
@@ -138,7 +141,7 @@ def apply(recipe, value, *, missing='error'):
|
|
|
138
141
|
"""Validate all edits, reconcile stable names, then edit an independent copy."""
|
|
139
142
|
from .composition import Composition
|
|
140
143
|
if missing not in ('error','drop'): raise ValueError('missing policy must be error or drop')
|
|
141
|
-
if (not isinstance(value,dict) or set(value)!={'schema','targets'} or value['schema'] not in (SCHEMA,SCALE_SCHEMA,LEGACY_SCHEMA)
|
|
144
|
+
if (not isinstance(value,dict) or set(value)!={'schema','targets'} or value['schema'] not in (SCHEMA,LABEL_SCHEMA,SCALE_SCHEMA,LEGACY_SCHEMA)
|
|
142
145
|
or not isinstance(value['targets'],dict)):
|
|
143
146
|
raise ValueError('invalid composition layout overrides')
|
|
144
147
|
targets = _targets(recipe)
|
|
@@ -146,7 +149,7 @@ def apply(recipe, value, *, missing='error'):
|
|
|
146
149
|
for path,entry in value['targets'].items():
|
|
147
150
|
if not isinstance(path,str) or not re.fullmatch(r'/(?:'+_NAME+r'(?:/'+_NAME+r')*)?',path):
|
|
148
151
|
raise ValueError('layout targets require absolute named composition paths')
|
|
149
|
-
if not isinstance(entry,dict) or not entry or not set(entry)<={'placement','page','labels'}:
|
|
152
|
+
if not isinstance(entry,dict) or not entry or not set(entry)<={'placement','page','labels','styles'}:
|
|
150
153
|
raise ValueError(f'invalid layout target properties: {path}')
|
|
151
154
|
options = {}
|
|
152
155
|
if 'placement' in entry:
|
|
@@ -155,8 +158,11 @@ def apply(recipe, value, *, missing='error'):
|
|
|
155
158
|
raise ValueError('scale requires composition layout schema 0.2')
|
|
156
159
|
if 'page' in entry: options['page'] = _page(entry['page'])
|
|
157
160
|
if 'labels' in entry:
|
|
158
|
-
if value['schema']
|
|
161
|
+
if value['schema'] not in (SCHEMA,LABEL_SCHEMA): raise ValueError('labels require composition layout schema 0.3')
|
|
159
162
|
options['labels'] = labels.validate(entry['labels'])
|
|
163
|
+
if 'styles' in entry:
|
|
164
|
+
if value['schema']!=SCHEMA: raise ValueError('styles require composition layout schema 0.4')
|
|
165
|
+
options['styles'] = styles.validate(entry['styles'])
|
|
160
166
|
target = targets.get(path)
|
|
161
167
|
invalid = target is None
|
|
162
168
|
if target is not None:
|
|
@@ -167,15 +173,17 @@ def apply(recipe, value, *, missing='error'):
|
|
|
167
173
|
invalid |= any(ref not in names for val in options['placement'].values() for ref in _references(val))
|
|
168
174
|
if invalid: orphaned.append(path)
|
|
169
175
|
else:
|
|
170
|
-
|
|
171
|
-
|
|
176
|
+
for group,adapter in _EDITORS.items():
|
|
177
|
+
if group not in options: continue
|
|
178
|
+
available = adapter.targets(item)
|
|
172
179
|
compatible = {}
|
|
173
|
-
for key,fields in options[
|
|
174
|
-
if key not in available or fields['kind']!=available[key][0]['kind']
|
|
175
|
-
|
|
180
|
+
for key,fields in options[group].items():
|
|
181
|
+
if (key not in available or fields['kind']!=available[key][0]['kind']
|
|
182
|
+
or (group=='styles' and not (set(fields)-{'kind'})<=set(available[key][0]))):
|
|
183
|
+
orphaned.append(path+('#style:' if group=='styles' else '#')+key)
|
|
176
184
|
else: compatible[key] = fields
|
|
177
|
-
if compatible: options[
|
|
178
|
-
else: options.pop(
|
|
185
|
+
if compatible: options[group] = compatible
|
|
186
|
+
else: options.pop(group)
|
|
179
187
|
if options: prepared[path] = options
|
|
180
188
|
orphaned.sort()
|
|
181
189
|
if orphaned and missing=='error': raise LayoutError('orphaned layout targets: '+', '.join(orphaned))
|
|
@@ -185,8 +193,8 @@ def apply(recipe, value, *, missing='error'):
|
|
|
185
193
|
for path,options in prepared.items():
|
|
186
194
|
parent,part,item = targets[path]
|
|
187
195
|
for group,fields in options.items():
|
|
188
|
-
owner = (id(item),None) if group in ('page','labels') else (id(parent),part.name)
|
|
189
|
-
if group
|
|
196
|
+
owner = (id(item),None) if group in ('page','labels','styles') else (id(parent),part.name)
|
|
197
|
+
if group in _EDITORS:
|
|
190
198
|
fields = {(label,key):val for label,edits in fields.items() for key,val in edits.items()}
|
|
191
199
|
for key,val in fields.items():
|
|
192
200
|
identity = (*owner,group,key)
|
|
@@ -197,7 +205,8 @@ def apply(recipe, value, *, missing='error'):
|
|
|
197
205
|
copied = _targets(result)
|
|
198
206
|
for path,options in prepared.items():
|
|
199
207
|
parent,part,item = copied[path]
|
|
200
|
-
|
|
208
|
+
for group,adapter in _EDITORS.items():
|
|
209
|
+
if group in options: adapter.apply(item,options[group])
|
|
201
210
|
if 'page' in options: item.configure(**options['page'])
|
|
202
211
|
if 'placement' in options: parent.place(part.name,**options['placement'])
|
|
203
212
|
return result, {'orphaned_targets':orphaned,'missing_policy':missing}
|