plexora 0.0.30__tar.gz → 0.0.31__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.
- {plexora-0.0.30/plexora.egg-info → plexora-0.0.31}/PKG-INFO +1 -1
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/css/main.css +156 -134
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/css/tokens.css +42 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/css/viewer.css +624 -150
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/dataLocation.js +52 -202
- plexora-0.0.31/plexora/client/src/js/services/drawToolbar.js +412 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/dropRouter.js +6 -2
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/channelNamesUpload.js +75 -139
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/fileSourceRow.js +29 -138
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/geneGroupModal.js +8 -13
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/gradientRange.js +26 -4
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/importSample.js +31 -5
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/layerChannelPanel.js +2 -11
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/layerManager.js +8 -6
- plexora-0.0.31/plexora/client/src/js/views/machineChip.js +359 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/projectEdit.js +3 -1
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/requirementsModal.js +37 -28
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/settingsPage.js +7 -1
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/toolLoader.js +3 -3
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/viewerSidebar.js +85 -16
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/templates/base.html +17 -12
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/templates/index.html +6 -10
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/templates/project_edit.html +1 -1
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/templates/settings.html +1 -1
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/cell_explorer/__init__.py +1 -1
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/cell_explorer/static/cellExplorerContinuous.js +1 -1
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/cell_explorer/static/cellExplorerLegend.js +89 -11
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/cell_explorer/static/cellExplorerSidebarController.js +281 -21
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/cell_explorer/static/cellExplorerState.js +1 -1
- plexora-0.0.31/plexora/plugins/cell_explorer/static/cell_explorer.css +839 -0
- plexora-0.0.31/plexora/plugins/cell_explorer/templates/cell_explorer/panel.html +193 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/templates/figure_builder/workspace.html +1 -1
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/templates/figure_builder/workspace_body.html +0 -4
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/__init__.py +1 -1
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/static/gating.css +17 -106
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/templates/gating/panel.html +11 -9
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/__init__.py +1 -1
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/static/qc.css +147 -141
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/static/qcArtifacts.js +3 -3
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/static/qcBlur.js +2 -2
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/static/qcDraw.js +14 -144
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/static/qcRegistration.js +28 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/static/qcSidebarController.js +136 -100
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/static/qcTree.js +4 -2
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/templates/qc/panel.html +41 -14
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/roi/__init__.py +1 -1
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/roi/static/roi.css +168 -165
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/roi/static/roiSidebarController.js +117 -69
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/roi/static/roiTools.js +62 -38
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/roi/static/roiTree.js +9 -7
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/roi/templates/roi/panel.html +45 -59
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/segmentation/__init__.py +1 -1
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/segmentation/static/segmentation3d.css +5 -9
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/segmentation/templates/segmentation/panel.html +4 -4
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/transcripts/__init__.py +1 -1
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/transcripts/templates/transcripts/panel.html +1 -1
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/static/video_studio.css +1 -1
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/visium_hd/__init__.py +1 -1
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/visium_hd/static/visium_hd.css +3 -3
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/models/drop_plan.py +28 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/models/import_proposal.py +28 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/models/layer_sources.py +9 -2
- {plexora-0.0.30 → plexora-0.0.31}/plexora/telemetry/cli.py +13 -3
- {plexora-0.0.30 → plexora-0.0.31}/plexora/telemetry/schema.py +18 -1
- {plexora-0.0.30 → plexora-0.0.31}/plexora/telemetry/uploader.py +44 -1
- {plexora-0.0.30 → plexora-0.0.31}/plexora/updates.py +4 -5
- {plexora-0.0.30 → plexora-0.0.31/plexora.egg-info}/PKG-INFO +1 -1
- {plexora-0.0.30 → plexora-0.0.31}/plexora.egg-info/SOURCES.txt +6 -2
- {plexora-0.0.30 → plexora-0.0.31}/pyproject.toml +1 -1
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_channel_names_modal.py +40 -30
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_connection_modal.py +7 -4
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_data_location.py +18 -44
- plexora-0.0.31/tests/test_draw_toolbar_js.py +54 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_drop_plan.py +131 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_file_explorer.py +6 -6
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_layer_sources.py +30 -0
- plexora-0.0.31/tests/test_machine_chip.py +136 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_magic_select_wording.py +1 -1
- plexora-0.0.31/tests/test_plugin_panel_standard.py +139 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_qc_magic_js.py +7 -6
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_release_script.py +134 -1
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_roi_magic_js.py +3 -1
- plexora-0.0.31/tests/test_settings_telemetry_page.py +33 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_telemetry_cli.py +22 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_telemetry_routes.py +16 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_telemetry_schema.py +15 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_telemetry_uploader.py +47 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_updates.py +2 -2
- plexora-0.0.30/plexora/client/src/js/services/magicToolbar.js +0 -190
- plexora-0.0.30/plexora/plugins/cell_explorer/static/cell_explorer.css +0 -577
- plexora-0.0.30/plexora/plugins/cell_explorer/templates/cell_explorer/panel.html +0 -136
- plexora-0.0.30/tests/test_magic_toolbar_js.py +0 -55
- {plexora-0.0.30 → plexora-0.0.31}/LICENSE +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/MANIFEST.in +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/README.md +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/__init__.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/__main__.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/_guard.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/_lifetime.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/_logging.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/_resources.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/_subprocess.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/_transient_locks.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/_url.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/__init__.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/artifacts.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/attach.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/audit.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/bridge_provider.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/bridge_roles.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/bridge_wire.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/cell_exclusions.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/cell_explain.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/cell_gallery.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/coordinates.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/core/__init__.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/core/bridge.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/core/cells.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/core/image.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/core/jobs.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/core/operations.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/core/project.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/core/scene.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/core/selection.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/core/surface.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/core/table.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/core/viewer.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/core/visual.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/core/volume.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/core/volume_analysis.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/errors.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/evidence/__init__.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/evidence/calibration.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/evidence/cell_window.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/evidence/collage.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/evidence/crops.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/evidence/density_plot.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/evidence/display_contrast.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/evidence/display_grid.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/evidence/image_qc.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/evidence/sheet_layout.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/expression.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/gate_panel.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/gate_rule.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/gate_sampling.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/jobs.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/limits.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/plots.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/policy.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/presets.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/receipts.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/registry.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/render.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/render_spec.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/report.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/revision.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/scene_models.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/schemas.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/sections.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/session.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/sessions/__init__.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/sessions/budget.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/sessions/control.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/sessions/engine.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/sessions/events.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/sessions/memo.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/sessions/mirror.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/sessions/store.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/sessions/tools.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/tasks.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/tokens.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/agent/viewer.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/__init__.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/audit.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/bench.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/bench_data.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/bench_experience.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/bench_qc.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/context.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/delegation.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/harness/__init__.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/harness/backend.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/harness/cache_plan.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/harness/capabilities.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/harness/chat_capabilities.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/harness/cli.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/harness/conversations.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/harness/decision.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/harness/expression.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/harness/gateway.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/harness/prefix.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/harness/route_bench.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/harness/schema.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/harness/toolcache.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/harness/trace.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/knowledge/biology.yaml +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/knowledge/markers.yaml +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/models_config.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/qc_scenes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/setup.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/skill_manifest.yaml +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/skills/analysis-handoff/SKILL.md +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/skills/dataset-triage/SKILL.md +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/skills/gate-image/SKILL.md +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/skills/gate-packets/SKILL.md +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/skills/gate-review/SKILL.md +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/skills/gating/dataset.md +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/skills/gating/decisions.md +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/skills/gating/qc-cells.md +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/skills/gating/setup.md +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/skills/gating/visual-gating.md +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/skills/marker-qc/SKILL.md +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/skills/qc-checks/SKILL.md +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/skills/qc-image/SKILL.md +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/skills/qc-packets/SKILL.md +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/skills/qc-visual-artifacts/SKILL.md +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/skills/review-objects/SKILL.md +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/skills/review-qc/SKILL.md +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/skills/surface-rendering/SKILL.md +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/skills/video-storyboard/SKILL.md +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/skills/visual-inspection/SKILL.md +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/skills/volume-triage/SKILL.md +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/skills.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/tasks.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/tasks.yaml +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/ai/vocabulary.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/api/__init__.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/api/dataset.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/api/features.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/api/http.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/api/plugin.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/api/representation.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/api/store.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/askpass.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/cli.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/dist/124_bundle.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/dist/248_bundle.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/dist/248_bundle.js.LICENSE.txt +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/dist/354_bundle.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/dist/354_bundle.js.LICENSE.txt +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/dist/418_bundle.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/dist/418_bundle.js.LICENSE.txt +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/dist/693b935cb1f907814be9c6199a68c217.svg +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/dist/713c134ff47cd328a5b711526f151082.svg +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/dist/770_bundle.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/dist/908_bundle.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/dist/908_bundle.js.LICENSE.txt +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/dist/ff743f408972e0e96ca9153ed5ae4c83.svg +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/dist/vendor_bundle.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/dist/vendor_bundle.js.LICENSE.txt +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/dist/vendors-node_modules_canvg_lib_index_es_js_bundle.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/dist/vendors-node_modules_dompurify_dist_purify_es_mjs_bundle.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/dist/vendors-node_modules_html2canvas_dist_html2canvas_js_bundle.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/LICENSE.txt +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/canvas-overlay-hd.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/changelog.txt +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/.gitattributes +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/LICENSE.txt +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/Photoshop/Toolbar.png +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/Photoshop/fullpage.psd +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/Photoshop/home.psd +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/Photoshop/next.psd +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/Photoshop/previous.psd +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/Photoshop/rotateleft.psd +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/Photoshop/rotateright.psd +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/Photoshop/zoom.psd +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/README.md +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/fullpage_grouphover.png +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/fullpage_hover.png +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/fullpage_pressed.png +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/fullpage_rest.png +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/home_grouphover.png +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/home_hover.png +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/home_pressed.png +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/home_rest.png +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/next_grouphover.png +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/next_hover.png +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/next_pressed.png +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/next_rest.png +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/previous_grouphover.png +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/previous_hover.png +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/previous_pressed.png +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/previous_rest.png +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/rotateleft_grouphover.png +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/rotateleft_hover.png +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/rotateleft_pressed.png +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/rotateleft_rest.png +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/rotateright_grouphover.png +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/rotateright_hover.png +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/rotateright_pressed.png +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/rotateright_rest.png +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/zoomin_grouphover.png +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/zoomin_hover.png +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/zoomin_pressed.png +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/zoomin_rest.png +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/zoomout_grouphover.png +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/zoomout_hover.png +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/zoomout_pressed.png +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/zoomout_rest.png +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-scalebar.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/thinking-orbs-0.3.2/LICENSE +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/thinking-orbs-0.3.2/README-plexora.txt +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/external/thinking-orbs-0.3.2/orbs.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/css/agentPanel.css +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/css/chatPanel.css +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/css/explorer.css +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/css/import.css +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/css/openProject.css +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/css/quickView.css +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/css/settings.css +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/img/apple-touch-icon.png +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/img/favicon.ico +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/img/logo.ai +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/img/logo.svg +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/img/logo_with_text.ai +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/img/logo_with_text.svg +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/main.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/pluginRegistry.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/agentBridge.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/appRouter.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/appStatus.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/bookmarks.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/browsePicker.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/canvasHint.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/canvasLayout.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/carryOver.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/channelFade.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/connectionModal.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/dataLayer.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/datasetContext.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/desktopBridge.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/displayCurve.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/errors.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/explorer/explorerCrumbs.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/explorer/explorerListing.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/explorer/explorerSidebar.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/explorer/explorerTypes.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/explorer/fileExplorer.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/explorer/floatingWindow.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/failureMessage.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/fileLocation.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/glRenderer.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/inspectGeometry.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/inspectState.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/keyboardShortcuts.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/launchContext.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/logTerminal.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/maskSurfaces.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/numericData.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/orbDriver.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/pageBoot.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/passVariablesToFrontend.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/perfProbe.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/performanceTelemetry.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/placePicker.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/pointerDrag.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/proFeature.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/remoteGlobe.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/remoteState.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/renderClipboard.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/resourceRouting.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/resourceStatus.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/segmentService.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/sessionExpiry.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/simpleEventHandler.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/surfaceLayers.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/telemetry.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/toast.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/tooltip.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/viewControls.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/viewHistory.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/viewRaster.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/viewSnapshot.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/viewState.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/viewTransform.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/viewerLoader.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/viewerPrefs.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/viewerScene.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/services/volumeWindows.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/vendor.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/agentPanel.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/areaTool.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/backButton.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/bookmarkTray.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/brightfieldAdjust.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/cardList.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/channelList.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/chatPanel.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/colorSwatchPicker.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/columnClassifier.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/confirmDialog.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/coordinateField.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/dataSourceField.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/datasetBuilder.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/datasetNav.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/datasetPicker.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/datasetStrip.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/depthSettings.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/depthStrip.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/depthTools.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/geneList.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/glInit.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/helpMenu.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/imageViewer.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/importHelp.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/jobProgress.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/jobWait.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/labelGpu.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/labelTile.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/layerSections.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/layerStack.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/loadProgress.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/locators.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/maskSurfaceWait.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/miniMap.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/navbarControls.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/openProjectPage.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/orientationGizmo.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/panCursor.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/paneStatus.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/planeMotion.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/pluginHelp.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/popoverMenu.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/popoverPortal.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/quickViewLanding.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/rainbow.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/rgbImageViewer.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/scaleCalibration.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/searchableSelect.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/sectionCells.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/sectionPanes.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/segmentationWait.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/slider.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/surfaceCard.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/surfaceInspect.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/surfaceObjects.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/surfaceRenderer.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/surfaceStudio.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/tableProgress.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/tileColorize.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/tileDecode.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/tileFetch.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/updateDialog.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/viewTransformTools.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/viewerControls.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/viewerErrorState.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/viewerManager.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/volumeAtlas.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/volumeCamera.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/volumeDock.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/volumeHandles.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/views/volumeRenderer.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/js/workers/tileDecoder.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/shaders/frag.glsl +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/shaders/label.frag.glsl +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/src/shaders/vert.glsl +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/templates/_fragment.html +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/templates/_scale_calibration.html +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/templates/_scale_calibration_float.html +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/templates/open_project.html +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/templates/tools/depth_panel.html +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/client/templates/tools/rotate_panel.html +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/connect.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/datasets.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/datasource.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/gcloud.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/jupyter.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/licensing/__init__.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/licensing/cli.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/licensing/guards.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/licensing/manifest.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/licensing/tokens.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/links.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/mcp/__init__.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/mcp/auth.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/mcp/profiles.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/mcp/prompts.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/mcp/resources.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/mcp/resources_gating.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/mcp/resources_scene.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/mcp/resources_visual.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/mcp/serialize.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/mcp/server.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/mcp/smoke.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/mcp/tools.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/memory.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/nodes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/notebook_env.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/paths.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/__init__.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/cell_explorer/server/__init__.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/cell_explorer/server/routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/cell_explorer/server/state.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/cell_explorer/server/values.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/cell_explorer/server/variables.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/cell_explorer/static/cellExplorerAnalysisBridge.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/cell_explorer/static/cellExplorerApi.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/cell_explorer/static/cellExplorerColors.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/cell_explorer/static/cellExplorerFigureBridge.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/cell_explorer/static/cellExplorerRoiBridge.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/__init__.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/server/__init__.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/server/captures.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/server/compose.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/server/export.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/server/export_jobs.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/server/operations.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/server/pixels.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/server/provenance.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/server/render.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/server/repository.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/server/routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/server/schema.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/server/shapegeom.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/server/sources.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/server/strokegeom.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/server/textmetrics.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/static/figureActions.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/static/figureBookmarkStore.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/static/figureBuilderApi.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/static/figureCanvas.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/static/figureCaptureBin.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/static/figureCaptureBinGrid.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/static/figureCaptureBoxes.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/static/figureCaptureDock.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/static/figureCaptureTool.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/static/figureChoiceField.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/static/figureColorField.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/static/figureConfirm.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/static/figureContextBar.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/static/figureContextMenu.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/static/figureDestinationPicker.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/static/figureDocumentState.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/static/figureExportUi.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/static/figureImagePanel.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/static/figureLibrary.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/static/figureLineDefs.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/static/figureLinePanel.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/static/figurePanelCompositor.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/static/figurePointEditor.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/static/figureQuickEdit.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/static/figureRichText.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/static/figureSceneSnapshot.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/static/figureSchema.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/static/figureShapeDefs.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/static/figureShapeDrawing.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/static/figureShapeGeometry.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/static/figureShapePanel.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/static/figureSidebarController.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/static/figureStrokeGeometry.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/static/figureTextEditor.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/static/figureTextPanel.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/static/figureThumbnail.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/static/figureViewOptions.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/static/figureWorkspace.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/static/figure_builder.css +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/templates/figure_builder/captures.html +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/figure_builder/templates/figure_builder/library.html +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/capabilities.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/capabilities_autogate.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/capabilities_classifier.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/capabilities_session.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/__init__.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/anndata_gates.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/autogate/__init__.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/autogate/absence.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/autogate/answers.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/autogate/biology.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/autogate/bivariate.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/autogate/bulk.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/autogate/candidates.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/autogate/cellcalls.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/autogate/cells.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/autogate/context.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/autogate/engine.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/autogate/events.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/autogate/hierarchy.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/autogate/hypotheses/__init__.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/autogate/hypotheses/calibration.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/autogate/hypotheses/candidates.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/autogate/hypotheses/classifier_check.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/autogate/hypotheses/controller.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/autogate/hypotheses/evidence.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/autogate/hypotheses/panel.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/autogate/kernels.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/autogate/lattice.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/autogate/memo.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/autogate/mirror_script.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/autogate/packets.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/autogate/partners.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/autogate/pixel_estimate.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/autogate/profile.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/autogate/provenance.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/autogate/qc_cells.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/autogate/reference.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/autogate/regression.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/autogate/replan.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/autogate/report.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/autogate/sampler.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/autogate/schemas.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/autogate/scoring.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/autogate/sheet.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/autogate/tableops.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/autogate/transfer.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/autogate/transitions.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/autogate/verdicts.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/autogate/views.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/classifier/__init__.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/classifier/autopick.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/classifier/calls.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/classifier/export.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/classifier/features.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/classifier/geometry.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/classifier/learner.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/classifier/panel.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/classifier/rules.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/classifier/runs.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/classifier/signal.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/classifier/source_write.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/classifier/store.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/database.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/experience.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/mixture.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/model.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/provenance.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/server/tableops.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/static/csvGatingList.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/static/gatingAgentBridge.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/static/gatingApi.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/static/gatingClassifier.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/static/gatingPlanes.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/static/gatingSidebarController.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/gating/templates/gating/legacy.html +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/capabilities.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/capabilities_checks.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/capabilities_objects.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/capabilities_segment.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/capabilities_session.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/capabilities_stack.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/capabilities_visual.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/mcp.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/__init__.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/answers.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/artifacts.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/background.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/blur.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/bulk.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/candidates.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/cells/__init__.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/cells/areas.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/cells/calls.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/cells/channel_findings.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/cells/columns.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/cells/inputs.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/check_candidates.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/checks_bulk.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/checks_result.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/class_rules.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/consolidate.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/cycles.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/detectors/__init__.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/detectors/base.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/detectors/classical.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/digest.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/dna_retention.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/engine.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/events.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/exclusions.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/export.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/finalize.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/frames.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/mirror_script.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/nuclei_trace.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/overview.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/packets.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/plane.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/polygons.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/propagate.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/provenance.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/refine.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/refine_sam.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/region_write.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/registration.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/report.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/results.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/roi_link.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/scan.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/schemas.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/score_fields.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/score_review.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/segqc/__init__.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/segqc/analysis.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/segqc/kernels.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/segqc/run.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/sheets.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/source_write.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/spatialdata_write.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/strictness.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/tableops.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/tissue.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/transitions.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/server/viewer_data.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/static/qcAgentBridge.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/static/qcApi.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/static/qcHover.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/static/qcLayers.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/static/qcSegmentation.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/qc/static/qcStack.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/roi/capabilities.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/roi/server/__init__.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/roi/server/adapters.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/roi/server/geojson.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/roi/server/geometry.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/roi/server/mapping.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/roi/server/operations.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/roi/server/repository.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/roi/server/routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/roi/server/schema.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/roi/server/service.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/roi/server/tableops.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/roi/static/roiAgentBridge.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/roi/static/roiApi.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/roi/static/roiFigureBridge.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/roi/static/roiGeometry.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/roi/static/roiRenderer.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/roi/static/roiState.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/segmentation/capabilities.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/segmentation/server/__init__.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/segmentation/server/cellpose3d.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/segmentation/server/routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/segmentation/server/run.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/segmentation/static/segmentation3d.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/transcripts/server/__init__.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/transcripts/server/routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/transcripts/server/xenium.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/transcripts/static/transcriptLayer.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/transcripts/static/transcriptPoints.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/transcripts/static/transcripts.css +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/transcripts/static/transcriptsApi.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/transcripts/static/transcriptsSidebarController.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/__init__.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/capabilities.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/server/encode_jobs.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/server/encoders.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/server/facts.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/server/manifest.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/server/operations.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/server/presets.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/server/repository.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/server/routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/server/schema.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/server/writers.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/static/vendor/LICENSE-mediabunny +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/static/vendor/README.md +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/static/vendor/mediabunny-1.60.0.mjs +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/static/videoAgentBridge.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/static/videoAnimation.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/static/videoArcLength.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/static/videoCamera2d.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/static/videoCamera3d.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/static/videoComposite.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/static/videoEasing.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/static/videoEncodeWorker.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/static/videoEncoders.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/static/videoExportLoop.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/static/videoExportUi.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/static/videoFigureBridge.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/static/videoHistory.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/static/videoInterp.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/static/videoOverlays.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/static/videoParamFields.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/static/videoPathEditor.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/static/videoPrefetch.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/static/videoPreview.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/static/videoProjectApi.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/static/videoReadiness.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/static/videoRecorder.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/static/videoRenderCoordinator.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/static/videoRenderCover.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/static/videoSceneState.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/static/videoSchema.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/static/videoStage.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/static/videoStudioBar.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/static/videoStudioSidebarController.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/static/videoTimeline.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/static/videoTracking.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/video_studio/static/videoViewerState.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/visium_hd/server/__init__.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/visium_hd/server/routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/visium_hd/server/spots.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/visium_hd/server/tenx.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/visium_hd/static/binLayer.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/visium_hd/static/spotLayer.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/visium_hd/static/visiumHdApi.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/visium_hd/static/visiumHdSidebarController.js +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/plugins/visium_hd/templates/visium_hd/panel.html +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/proxy.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/core_tools.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/models/adapters/__init__.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/models/adapters/anndata_adapter.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/models/adapters/base.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/models/adapters/classify.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/models/adapters/csv_adapter.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/models/adapters/flat_table.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/models/adapters/inspection.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/models/adapters/memory_adapter.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/models/adapters/spatialdata_adapter.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/models/bin_tiles.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/models/centroid_tiles.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/models/consistency.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/models/data_migration.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/models/data_model.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/models/database_model.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/models/dataset_answers.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/models/dataset_build.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/models/dataset_events.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/models/dataset_plan.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/models/dataset_scan.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/models/datasets.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/models/import_sample.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/models/layer_jobs.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/models/manifest.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/models/nodes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/models/project.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/models/recipes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/models/remote_sessions.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/models/remote_sources.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/models/remotes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/models/secret_store.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/models/server_records.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/models/table_correction.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/models/transcript_tiles.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/models/viewer_sessions.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/models/views.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/node/api.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/node/app.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/node/resources.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/plugins.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/providers/__init__.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/providers/base.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/providers/http.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/providers/local.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/providers/memory.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/providers/node.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/providers/operations.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/providers/remote.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/providers/wire.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/routes/agent_routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/routes/ai_chat_routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/routes/ai_routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/routes/browse_routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/routes/data_routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/routes/dataset_routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/routes/dataset_scan_routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/routes/desktop_routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/routes/drop_routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/routes/gcloud_routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/routes/import_routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/routes/license_routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/routes/page_routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/routes/project_routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/routes/segment_routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/routes/settings_routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/routes/surface_routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/routes/system_routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/routes/telemetry_routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/routes/tool_routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/routes/transfer_routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/routes/update_routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/routes/volume_routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/surface/__init__.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/surface/contacts.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/surface/export.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/surface/importers.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/surface/isosurface.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/surface/labels.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/surface/levels.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/surface/marching.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/surface/mesh.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/surface/nets.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/surface/preview.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/surface/refine.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/surface/sections.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/surface/store.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/surface/suggest.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/tile_batch.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/utils/addHEColumns.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/utils/boundary_mask.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/utils/brightfield.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/utils/cell_features.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/utils/channel_file.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/utils/colormaps.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/utils/dataset_marks.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/utils/dicom_wsi.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/utils/dir_listing.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/utils/dir_search.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/utils/display_curve.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/utils/fast_png.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/utils/file_transfer.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/utils/fs_places.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/utils/fullConversion.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/utils/gene_groups.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/utils/head_cache.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/utils/host_policy.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/utils/image_pyramid.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/utils/jit.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/utils/label_kernels.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/utils/label_overlay.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/utils/layer_composite.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/utils/mask_polygon.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/utils/memory_pyramid.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/utils/native_dialog.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/utils/ngff_transform.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/utils/ome_zarr.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/utils/pixel_scale.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/utils/remote_image.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/utils/remote_store.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/utils/safe_pickle.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/utils/segmentation_pyramid.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/utils/sftp.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/utils/smallestenclosingcircle.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/utils/source_image.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/utils/spatial_index.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/utils/spatial_scene.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/utils/tenx_matrix.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/utils/tiff_region.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/utils/tiff_series.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/utils/tiffsurgeon.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/utils/xenium_cells.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/utils/xenium_focus.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/volume/__init__.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/volume/axes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/volume/brick_serve.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/volume/bricks.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/volume/chunk_cache.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/volume/labels.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/volume/measure.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/volume/model.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/volume/objects.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/volume/pin.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/volume/plane_view.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/volume/planes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/volume/prefetch.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/volume/provenance.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/volume/qc3d.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/volume/reduce.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/volume/section_cells.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/volume/serve.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/volume/sources/__init__.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/volume/sources/dicom.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/volume/sources/ims.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/volume/sources/ims_index.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/volume/sources/memory.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/volume/sources/ngff.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/volume/sources/tiff.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/volume/tracking.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/volume/viewspec.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/volume/windows.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/volume/zprofile.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server/warmup.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/server_cli.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/telemetry/__init__.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/telemetry/agent_hooks.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/telemetry/batch.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/telemetry/client.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/telemetry/config.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/telemetry/dataset.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/telemetry/environment.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/telemetry/flask_hooks.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/telemetry/identity.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/telemetry/node_hooks.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/telemetry/performance.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/telemetry/queue.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/telemetry/redact.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/telemetry/report.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/telemetry/sample.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/test.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/vision/__init__.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/vision/cli.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/vision/model_files.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/vision/propagate.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/vision/sam.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/vision/sam_backend.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/vision/sam_video.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/vision/sam_weights.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora/vision/segment.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora.egg-info/dependency_links.txt +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora.egg-info/entry_points.txt +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora.egg-info/requires.txt +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/plexora.egg-info/top_level.txt +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/setup.cfg +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_agent_architecture.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_agent_artifacts.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_agent_cell_gallery.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_agent_client_probes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_agent_explain_cell.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_agent_future_modality.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_agent_gate_panel.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_agent_gate_sampling.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_agent_gating.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_agent_gating_dataset.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_agent_http_capabilities.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_agent_jobs.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_agent_policy_scopes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_agent_registry.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_agent_render.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_agent_render_formats.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_agent_render_layers.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_agent_render_node.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_agent_report.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_agent_roi.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_agent_routes_guard.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_agent_scene.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_agent_scope.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_agent_session.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_agent_undo.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_agent_vertical_slice.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_agent_viewer_api.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_agent_viewer_routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_agent_volume.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_ai_bench.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_ai_chat.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_ai_chat_panel.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_ai_context.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_ai_harness.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_ai_harness_qc.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_ai_models_mcp.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_ai_parallel_markers.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_ai_route_bench.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_ai_routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_ai_setup.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_ai_skills.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_ai_tasks.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_ai_token.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_anndata_adapter.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_api_dataset.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_api_store.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_app_router.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_app_shell.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_auth_token.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_autogate_units.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_bench_remote.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_bench_run_arms.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_bin_tiles.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_blank_frame.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_bookmarks.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_boundary_mask.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_bridge_approval.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_bridge_handoff.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_bridge_mcp.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_brightfield_detection.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_brightfield_pipeline.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_brightfield_reader.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_brightfield_routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_browse_routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_browser_guard.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_canvas_hint_js.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_carry_over.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_cell_color_layer.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_cell_features.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_cell_mode_control.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_centroid_tiles.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_channel_auto_revert.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_channel_fade_client.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_channel_names_sidecar.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_channel_names_upload.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_channel_overview.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_channel_rename_state.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_channel_row_position.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_classify_columns.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_cli.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_colormaps.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_column_classifier_css.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_config_store.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_connect.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_consistency.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_contrast_observations.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_core_tools.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_csv_adapter.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_csv_xyz.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_database_model.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_datalayer_requests.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_dataset_answers.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_dataset_build.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_dataset_builder_js.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_dataset_changed.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_dataset_nav.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_dataset_plan.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_dataset_remote.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_dataset_routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_dataset_scan.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_dataset_scan_routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_dataset_strip.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_datasets_api.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_datasets_api_on_a_node.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_datasets_registry.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_derive_anndata_channel_names.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_desktop_bridge.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_desktop_cli.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_desktop_menu.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_desktop_process.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_desktop_routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_detect_data_type.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_dicom_assembly.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_dicom_detection.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_dicom_pyramid.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_dicom_registration.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_dicom_routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_dir_listing.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_dir_search.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_display_curve.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_docs_coverage.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_docs_docstrings.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_docs_envvars.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_docs_examples.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_docs_freshness.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_docs_links.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_docs_signatures.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_drop_router.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_file_location.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_file_transfer_node.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_files_server.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_fs_places.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_gate_not_called_js.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_gating_3d.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_gating_candidates.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_gating_channel_match.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_gating_classifier_layer.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_gating_delta.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_gating_experience.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_gating_hierarchy.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_gating_hypotheses.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_gating_limits.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_gating_panel_replay.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_gating_planes_js.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_gating_qc_exclusion.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_gating_replan.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_gating_session.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_gating_split_views.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_gating_tiles.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_gcloud.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_hd_default.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_hd_slider_domain.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_head_cache.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_home_landing.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_host_policy.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_icon_names.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_image_pyramid.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_image_status.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_import_costs_nothing.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_import_dialog.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_import_entry_points.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_import_from_a_node.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_import_help.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_import_progressive.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_import_proposal.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_import_roles.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_import_routes_json_errors.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_import_sample_association.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_import_sample_routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_ims_index.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_ims_masks.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_jupyter_viewer.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_label_gpu.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_label_gpu_parity.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_label_outlines.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_label_overlay.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_label_region.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_label_tile_lifecycle.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_launch_context.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_launch_state.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_layer_channel_panel.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_layer_draw.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_layer_jobs.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_layer_manager.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_layer_spec.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_layer_state.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_layer_transform.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_layer_visibility.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_license_js.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_license_routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_license_transcriptomics.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_license_visibility.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_license_volume.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_licensing_cli.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_licensing_enforcement.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_licensing_hardening.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_licensing_hpc.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_licensing_manifest.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_licensing_plugins.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_lifetime.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_load_progress.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_logging.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_manifest.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_marker_split.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_mask_formats.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_mask_without_table.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_mcp_gating.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_mcp_http.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_mcp_job_streaming.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_mcp_link.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_mcp_profiles.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_mcp_qc.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_mcp_server.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_mcp_stdio.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_memory_adapter.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_memory_datasource.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_memory_pyramid.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_metadata_columns.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_mini_map.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_nan_tables.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_nav_shortcuts.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_nearest_cell.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_nearest_cell_3d.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_node_cell_features.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_node_direct_routing.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_node_disconnect.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_node_dynamic.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_node_image.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_node_image_pyramid.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_node_image_type.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_node_label_volume.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_node_mask_status.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_node_new_formats.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_node_plane_index.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_node_reconnect.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_node_routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_node_surfaces.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_node_table.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_node_warm_and_cache.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_notebook_env.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_notebook_mode.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_ome_zarr_reader.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_open_project.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_optional_segmentation.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_page_assets.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_page_routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_parquet_tables.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_path_drop.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_paths.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_physical_coordinates.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_pixel_scale.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_pixel_size.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_plane_cells_route.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_plane_index.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_plugin_boundary.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_plugin_css_boundary.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_plugin_layers.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_plugins.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_popover_menu.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_popover_portal.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_presets_nuclear.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_prime_hot_code.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_project_bind.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_project_edit_routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_project_layer_routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_project_record.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_project_title.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_qc_artifacts_js.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_qc_bench.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_qc_blur_js.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_qc_bulk_timing.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_qc_candidate_noise.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_qc_cell_rules.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_qc_cells_derive.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_qc_cells_exports.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_qc_cells_frame.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_qc_check_sampling.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_qc_columns.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_qc_consolidate.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_qc_cycle_rule.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_qc_delegated_run_fixes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_qc_detectors.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_qc_digest.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_qc_geojson_member.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_qc_hover_js.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_qc_live_run_fixes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_qc_magic_select.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_qc_mirror.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_qc_payload_trim.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_qc_picker_js.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_qc_provenance.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_qc_refine.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_qc_refine_tool.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_qc_registration.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_qc_registration_js.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_qc_registration_report.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_qc_results.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_qc_rework.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_qc_scan.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_qc_score_fields.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_qc_segment_tool.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_qc_session.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_qc_session_checks.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_qc_session_refine.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_qc_stack.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_qc_tool_surface.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_qc_units.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_qc_visual_session.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_qc_visual_tools.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_recipes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_reconnect.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_refresh_dataset.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_register_anndata_datasource.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_register_image_datasource.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_register_zarr_image_datasource.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_remote_chunk_cache.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_remote_connect.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_remote_dicom.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_remote_discovery.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_remote_file.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_remote_globe.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_remote_health.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_remote_image_provider.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_remote_image_status.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_remote_ims.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_remote_jobs.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_remote_labels.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_remote_locator.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_remote_picture.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_remote_state.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_remote_tables.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_remote_tiff.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_rename_channels.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_rename_channels_json.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_render_clipboard.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_requirements_routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_resource_status_notice.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_roi_cell_regions.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_safe_pickle.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_scimappro_plugin.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_secret_store.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_section_cells.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_security_headers.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_segment_service_js.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_segmentation_3d.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_segmentation_mapping.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_segmentation_mode_routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_segmentation_pyramid.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_segmentation_wait.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_selection.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_server_records.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_session_expiry.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_session_mirror.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_session_walltime.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_settings_page.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_settings_remotes_page.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_settings_webdata_page.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_sftp.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_shared_roots.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_sidebar_scoping.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_single_image_import.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_slider.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_slider_css.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_source_image_core.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_spatial_index.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_spatial_scene.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_spatialdata_adapter.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_spatialdata_image_import.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_stack_contrast_client.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_staged_progress.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_subprocess_flags.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_surface_agent.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_surface_engine.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_surface_layer.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_surface_perf.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_surface_phase2.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_table_correction.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_table_progress.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_telemetry_agent.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_telemetry_client.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_telemetry_config.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_telemetry_dataset.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_telemetry_hooks.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_telemetry_hooks_cost.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_telemetry_js.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_telemetry_node.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_telemetry_privacy.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_telemetry_queue.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_telemetry_tiles.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_tenx_matrix.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_thumbnail_rgb.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_tiff_hyperstack.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_tiff_region.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_tile_batch.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_tile_colorize.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_tile_url.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_toast.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_tool_assets.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_tool_cards.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_tool_coexistence.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_tool_switching.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_tooltip.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_transcript_cost.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_transcript_tiles.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_transfer_routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_unreachable_node.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_url_helpers.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_view_menu.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_view_snapshot_js.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_view_state_client.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_view_transform.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_view_transform_routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_viewer_3d_client.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_viewer_color_by.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_viewer_error_state.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_viewer_loader.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_viewer_sessions.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_vision_first.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_vision_sam.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_vision_sam_real.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_vision_segment.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_visium_hd_import.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_visium_import.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_vocabulary_learned.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_volume_backend.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_volume_bricks.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_volume_bricks_serve.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_volume_chunk_cache.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_volume_core.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_volume_deep_stacks.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_volume_depth_levels.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_volume_dicom.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_volume_fluid_planes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_volume_labels.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_volume_level_cache.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_volume_magic.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_volume_memory.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_volume_objects_route.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_volume_pin.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_volume_plane_read_ahead.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_volume_propagate.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_volume_remote.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_volume_routes.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_volume_sections.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_volume_time_series.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_volume_window_provisional.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_wide_features.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_xenium_cells.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_xenium_focus.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_xss_sinks_js.py +0 -0
- {plexora-0.0.30 → plexora-0.0.31}/tests/test_zarr_write_retry.py +0 -0
|
@@ -1214,6 +1214,53 @@ html.is-native-dragging.has-drop-target body::after {
|
|
|
1214
1214
|
gap: var(--space-4);
|
|
1215
1215
|
}
|
|
1216
1216
|
|
|
1217
|
+
/* Title and subtitle on the left, the X on the right: the way out of the
|
|
1218
|
+
form, in the corner every Plexora dialog puts it, rather than a Cancel
|
|
1219
|
+
among the answers. */
|
|
1220
|
+
.requirements-head,
|
|
1221
|
+
.channel-names-head {
|
|
1222
|
+
align-items: flex-start;
|
|
1223
|
+
display: flex;
|
|
1224
|
+
gap: var(--space-3);
|
|
1225
|
+
}
|
|
1226
|
+
|
|
1227
|
+
.requirements-heading,
|
|
1228
|
+
.channel-names-heading {
|
|
1229
|
+
display: flex;
|
|
1230
|
+
flex: 1 1 auto;
|
|
1231
|
+
flex-direction: column;
|
|
1232
|
+
gap: var(--space-1);
|
|
1233
|
+
min-width: 0;
|
|
1234
|
+
}
|
|
1235
|
+
|
|
1236
|
+
/* Pulled up and out by its own padding, so the glyph -- not the button's
|
|
1237
|
+
box -- lines up with the title's cap height and the form's right edge. */
|
|
1238
|
+
.requirements-close,
|
|
1239
|
+
.channel-names-close {
|
|
1240
|
+
border-radius: var(--radius-sm);
|
|
1241
|
+
flex: 0 0 auto;
|
|
1242
|
+
margin: -4px -6px 0 0;
|
|
1243
|
+
padding: 6px 8px;
|
|
1244
|
+
transition: color var(--duration-fast) var(--ease-standard),
|
|
1245
|
+
background-color var(--duration-fast) var(--ease-standard);
|
|
1246
|
+
}
|
|
1247
|
+
|
|
1248
|
+
.requirements-close:hover:not(:disabled),
|
|
1249
|
+
.channel-names-close:hover {
|
|
1250
|
+
background: var(--surface-2);
|
|
1251
|
+
}
|
|
1252
|
+
|
|
1253
|
+
.requirements-close:focus-visible,
|
|
1254
|
+
.channel-names-close:focus-visible {
|
|
1255
|
+
outline: 2px solid var(--accent-channel);
|
|
1256
|
+
outline-offset: 1px;
|
|
1257
|
+
}
|
|
1258
|
+
|
|
1259
|
+
.requirements-close:disabled {
|
|
1260
|
+
cursor: default;
|
|
1261
|
+
opacity: 0.4;
|
|
1262
|
+
}
|
|
1263
|
+
|
|
1217
1264
|
.requirements-title {
|
|
1218
1265
|
margin: 0;
|
|
1219
1266
|
font-size: 1.1rem;
|
|
@@ -1454,6 +1501,12 @@ html.is-native-dragging.has-drop-target body::after {
|
|
|
1454
1501
|
gap: var(--space-2);
|
|
1455
1502
|
}
|
|
1456
1503
|
|
|
1504
|
+
/* Skip, on a form that is not all optional. `.btn` sets `display`, which
|
|
1505
|
+
defeats the hidden attribute -- there is no global guard in this app. */
|
|
1506
|
+
.requirements-actions > [hidden] {
|
|
1507
|
+
display: none;
|
|
1508
|
+
}
|
|
1509
|
+
|
|
1457
1510
|
/* ------------------------------------------------------------------ */
|
|
1458
1511
|
/* Column classifier — the marker/metadata split */
|
|
1459
1512
|
/* Two boxes side by side, columns dragged between them (see */
|
|
@@ -2181,6 +2234,12 @@ html.is-native-dragging.has-drop-target body::after {
|
|
|
2181
2234
|
gap: var(--space-2);
|
|
2182
2235
|
}
|
|
2183
2236
|
|
|
2237
|
+
/* The first stage's one action is Load, in its row; the way out is the X.
|
|
2238
|
+
An empty row would still take the form's gap. */
|
|
2239
|
+
.channel-names-actions:empty {
|
|
2240
|
+
display: none;
|
|
2241
|
+
}
|
|
2242
|
+
|
|
2184
2243
|
/* -- stage: which file --------------------------------------------- */
|
|
2185
2244
|
|
|
2186
2245
|
/* One field, asked in one row: which machine, then which file on it. The
|
|
@@ -2200,15 +2259,6 @@ html.is-native-dragging.has-drop-target body::after {
|
|
|
2200
2259
|
color: var(--text-secondary);
|
|
2201
2260
|
}
|
|
2202
2261
|
|
|
2203
|
-
/* The chip names the chosen machine, and in this dialog it is competing with a
|
|
2204
|
-
cluster path for one 560px row. Capped tighter than the import form's 12rem,
|
|
2205
|
-
where there is a page's width to spend: the hint under the row spells the
|
|
2206
|
-
name out in full, so what gets ellipsized here is never the only place it is
|
|
2207
|
-
said. */
|
|
2208
|
-
.channel-names-modal .data-location-place {
|
|
2209
|
-
max-width: 7rem;
|
|
2210
|
-
}
|
|
2211
|
-
|
|
2212
2262
|
.channel-names-path .field-hint {
|
|
2213
2263
|
margin: 0;
|
|
2214
2264
|
color: var(--text-muted);
|
|
@@ -2253,12 +2303,6 @@ html.is-native-dragging.has-drop-target body::after {
|
|
|
2253
2303
|
white-space: nowrap;
|
|
2254
2304
|
}
|
|
2255
2305
|
|
|
2256
|
-
/* Same reason as `.channel-names-modal .data-location-place`: a dialog is
|
|
2257
|
-
560px and the chip is competing with a cluster path for the row. */
|
|
2258
|
-
dialog .file-source .data-location-place {
|
|
2259
|
-
max-width: 7rem;
|
|
2260
|
-
}
|
|
2261
|
-
|
|
2262
2306
|
/* -- stage: which column ------------------------------------------- */
|
|
2263
2307
|
|
|
2264
2308
|
.channel-names-check {
|
|
@@ -2580,10 +2624,10 @@ dialog .file-source .data-location-place {
|
|
|
2580
2624
|
}
|
|
2581
2625
|
|
|
2582
2626
|
.import-field-row > .form-control,
|
|
2627
|
+
.import-field-row > :where(.plx-machine-field) > .form-control,
|
|
2583
2628
|
.import-field-row > .form-select,
|
|
2584
2629
|
.import-field-row > .browse-button,
|
|
2585
2630
|
.import-field-row > .browse-kind-split,
|
|
2586
|
-
.import-field-row > .data-location-toggle,
|
|
2587
2631
|
.quick-view-path-row > input[type="text"],
|
|
2588
2632
|
.quick-view-path-row > .sidebar-action {
|
|
2589
2633
|
height: var(--control-height);
|
|
@@ -2592,8 +2636,13 @@ dialog .file-source .data-location-place {
|
|
|
2592
2636
|
}
|
|
2593
2637
|
|
|
2594
2638
|
/* Vertical centring is the height's job, not the padding's -- padding and
|
|
2595
|
-
a fixed height fight each other the moment either one changes.
|
|
2639
|
+
a fixed height fight each other the moment either one changes.
|
|
2640
|
+
|
|
2641
|
+
`:where()` on the machine chip's box (machineChip.wrap) keeps an input in
|
|
2642
|
+
one at the specificity it had as the row's own child, so a dialog that
|
|
2643
|
+
sizes its fields (`.gene-modal .form-control`, 34px) still wins. */
|
|
2596
2644
|
.import-field-row > .form-control,
|
|
2645
|
+
.import-field-row > :where(.plx-machine-field) > .form-control,
|
|
2597
2646
|
.import-field-row > .form-select,
|
|
2598
2647
|
.quick-view-path-row > input[type="text"] {
|
|
2599
2648
|
padding-top: 0;
|
|
@@ -2613,12 +2662,14 @@ dialog .file-source .data-location-place {
|
|
|
2613
2662
|
area: the box IS the target. Three classes deep, so it beats Bootstrap's
|
|
2614
2663
|
`.form-control:focus`, which is injected after this sheet (see the note on
|
|
2615
2664
|
`.requirements-modal .form-control:focus`). */
|
|
2616
|
-
.import-field-row.is-drop-over > .form-control
|
|
2665
|
+
.import-field-row.is-drop-over > .form-control,
|
|
2666
|
+
.import-field-row.is-drop-over > .plx-machine-field > .form-control {
|
|
2617
2667
|
border-color: var(--accent-channel);
|
|
2618
2668
|
box-shadow: 0 0 0 3px var(--accent-channel-soft);
|
|
2619
2669
|
}
|
|
2620
2670
|
|
|
2621
|
-
.import-field-row.is-drop-refused > .form-control
|
|
2671
|
+
.import-field-row.is-drop-refused > .form-control,
|
|
2672
|
+
.import-field-row.is-drop-refused > .plx-machine-field > .form-control {
|
|
2622
2673
|
border-color: var(--accent-danger);
|
|
2623
2674
|
box-shadow: 0 0 0 3px var(--accent-danger-soft);
|
|
2624
2675
|
}
|
|
@@ -2766,109 +2817,53 @@ dialog .file-source .data-location-place {
|
|
|
2766
2817
|
|
|
2767
2818
|
/* ------------------------------------------------------------------ */
|
|
2768
2819
|
/* Local / Remote — which machine a file is on */
|
|
2769
|
-
/*
|
|
2770
|
-
/*
|
|
2771
|
-
/*
|
|
2772
|
-
/* a cluster, mask on a cluster, table on this computer. */
|
|
2820
|
+
/* The home page's chip (views/machineChip.js), at the front of each */
|
|
2821
|
+
/* data field's path box. Every field carries its own, so a project can */
|
|
2822
|
+
/* mix freely: image on a cluster, mask on a cluster, table here. */
|
|
2773
2823
|
/* */
|
|
2774
|
-
/*
|
|
2775
|
-
/*
|
|
2776
|
-
/*
|
|
2777
|
-
/*
|
|
2778
|
-
/*
|
|
2824
|
+
/* The chip and its menu are the Import dialog's own classes */
|
|
2825
|
+
/* (`.plx-import-machine`, `.plx-import-menu-*`, further down); what is */
|
|
2826
|
+
/* here is only what it takes to sit inside a form's input. It floats */
|
|
2827
|
+
/* over the input's left padding, so the input keeps whatever its */
|
|
2828
|
+
/* dialog gives a `.form-control` -- height, ground, focus ring, the */
|
|
2829
|
+
/* red of a path that is not there. Status lives on the line below. */
|
|
2779
2830
|
/* ------------------------------------------------------------------ */
|
|
2780
2831
|
|
|
2781
|
-
.
|
|
2782
|
-
display:
|
|
2783
|
-
|
|
2784
|
-
|
|
2785
|
-
|
|
2786
|
-
}
|
|
2787
|
-
|
|
2788
|
-
/* The track is a WELL and the active side is RAISED out of it: track darker
|
|
2789
|
-
than the surface it sits on, active chip lighter. Inverted -- a chip darker
|
|
2790
|
-
than its track -- and the active side reads as a hole punched in the
|
|
2791
|
-
control rather than as the selected one. */
|
|
2792
|
-
.data-location-toggle {
|
|
2793
|
-
display: inline-flex;
|
|
2794
|
-
align-items: stretch;
|
|
2795
|
-
/* The tooltip (services/tooltip.js) is what carries the meaning of the
|
|
2796
|
-
two letters to a mouse, and it is placed from this box, so the flex
|
|
2797
|
-
context must not squash it. */
|
|
2798
|
-
flex: 0 0 auto;
|
|
2799
|
-
/* The inset is what reads as "one of these two" rather than "a button".
|
|
2800
|
-
`--dl-inset` is shared with the chip's radius below so the two curves
|
|
2801
|
-
stay concentric at any size a caller scales this to. */
|
|
2802
|
-
--dl-inset: 3px;
|
|
2803
|
-
padding: var(--dl-inset);
|
|
2804
|
-
gap: 2px;
|
|
2805
|
-
background: var(--surface-0);
|
|
2806
|
-
border: 1px solid var(--border-subtle);
|
|
2807
|
-
border-radius: var(--radius-sm);
|
|
2808
|
-
}
|
|
2809
|
-
|
|
2810
|
-
/* One letter each. Sized as a square rather than by its text, so L and R --
|
|
2811
|
-
which are different widths in every proportional face -- do not make the two
|
|
2812
|
-
halves of the switch different sizes. Tabular figures for the same reason a
|
|
2813
|
-
table uses them: the control must not change shape as it is toggled. */
|
|
2814
|
-
.data-location-option {
|
|
2815
|
-
display: inline-flex;
|
|
2816
|
-
align-items: center;
|
|
2817
|
-
justify-content: center;
|
|
2818
|
-
min-width: 22px;
|
|
2819
|
-
background: transparent;
|
|
2820
|
-
color: var(--text-muted);
|
|
2821
|
-
border: 0;
|
|
2822
|
-
border-radius: calc(var(--radius-sm) - var(--dl-inset));
|
|
2823
|
-
padding: 4px 6px;
|
|
2824
|
-
font-size: 11px;
|
|
2825
|
-
font-weight: 600;
|
|
2826
|
-
letter-spacing: 0.03em;
|
|
2827
|
-
line-height: 1.3;
|
|
2828
|
-
white-space: nowrap;
|
|
2829
|
-
cursor: pointer;
|
|
2830
|
-
transition: color 120ms ease, background-color 120ms ease;
|
|
2831
|
-
}
|
|
2832
|
-
|
|
2833
|
-
.data-location-option:hover {
|
|
2834
|
-
color: var(--text-primary);
|
|
2835
|
-
}
|
|
2836
|
-
|
|
2837
|
-
/* Raised out of the well, and tinted rather than coloured: which machine a
|
|
2838
|
-
file is on is a statement of fact, not a status, so green-for-local /
|
|
2839
|
-
red-for-remote would be reading a judgement into it that is not there. */
|
|
2840
|
-
.data-location-option.is-active {
|
|
2841
|
-
background: var(--surface-2);
|
|
2842
|
-
color: var(--text-primary);
|
|
2843
|
-
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4),
|
|
2844
|
-
inset 0 0 0 1px var(--accent-channel-soft);
|
|
2832
|
+
.plx-machine-field {
|
|
2833
|
+
display: flex;
|
|
2834
|
+
flex: 1 1 auto;
|
|
2835
|
+
min-width: 0;
|
|
2836
|
+
position: relative;
|
|
2845
2837
|
}
|
|
2846
2838
|
|
|
2847
|
-
|
|
2848
|
-
|
|
2849
|
-
|
|
2839
|
+
/* Three classes deep so it beats every dialog's own `.form-control`
|
|
2840
|
+
padding (`.gene-modal .form-control`, `.import-page .form-control`).
|
|
2841
|
+
The width is the chip's, measured as it changes (machineChip.wrap);
|
|
2842
|
+
the fallback is "Local", for the frame before it is. */
|
|
2843
|
+
.import-field-row .plx-machine-field > .form-control {
|
|
2844
|
+
flex: 1 1 auto;
|
|
2845
|
+
min-width: 0;
|
|
2846
|
+
padding-left: calc(var(--plx-machine-chip-width, 78px) + 12px);
|
|
2847
|
+
width: 100%;
|
|
2850
2848
|
}
|
|
2851
2849
|
|
|
2852
|
-
|
|
2853
|
-
|
|
2854
|
-
and losing the field's value on the way. */
|
|
2855
|
-
.data-location-place {
|
|
2856
|
-
background: transparent;
|
|
2857
|
-
border: 0;
|
|
2858
|
-
border-bottom: 1px dotted var(--border-strong);
|
|
2859
|
-
border-radius: 0;
|
|
2860
|
-
color: var(--text-secondary);
|
|
2861
|
-
padding: 2px 1px;
|
|
2850
|
+
.plx-machine-field > .plx-machine-chip {
|
|
2851
|
+
bottom: 5px;
|
|
2862
2852
|
font-size: 12px;
|
|
2863
|
-
|
|
2864
|
-
|
|
2865
|
-
|
|
2866
|
-
|
|
2867
|
-
|
|
2853
|
+
height: auto;
|
|
2854
|
+
left: 5px;
|
|
2855
|
+
margin: 0;
|
|
2856
|
+
/* A long server name ellipsizes before it crowds the path out. */
|
|
2857
|
+
max-width: min(168px, 48%);
|
|
2858
|
+
padding: 0 6px 0 8px;
|
|
2859
|
+
position: absolute;
|
|
2860
|
+
top: 5px;
|
|
2861
|
+
z-index: 1;
|
|
2868
2862
|
}
|
|
2869
2863
|
|
|
2870
|
-
.
|
|
2871
|
-
|
|
2864
|
+
.plx-machine-field > .plx-machine-chip .plx-import-machine-label {
|
|
2865
|
+
max-width: none;
|
|
2866
|
+
min-width: 0;
|
|
2872
2867
|
}
|
|
2873
2868
|
|
|
2874
2869
|
.data-location-status {
|
|
@@ -6085,7 +6080,9 @@ dialog .file-source .data-location-place {
|
|
|
6085
6080
|
|
|
6086
6081
|
/* -- The machine menu, fixed under the chip (importSample's `openMenu`). */
|
|
6087
6082
|
.plx-import-menu {
|
|
6088
|
-
|
|
6083
|
+
/* The fallback is for the same menu opened outside the Import dialog,
|
|
6084
|
+
which is where the variable is set (machineChip.js). */
|
|
6085
|
+
animation: plx-import-menu-in 180ms var(--plx-import-ease-out, cubic-bezier(0.16, 1, 0.3, 1));
|
|
6089
6086
|
background: rgba(15, 20, 28, 0.98);
|
|
6090
6087
|
border: 1px solid rgba(255, 255, 255, 0.12);
|
|
6091
6088
|
border-radius: 10px;
|
|
@@ -8900,7 +8897,7 @@ dialog .file-source .data-location-place {
|
|
|
8900
8897
|
.layer-card-retry {
|
|
8901
8898
|
background: none;
|
|
8902
8899
|
border: 1px solid currentColor;
|
|
8903
|
-
border-radius: var(--radius-
|
|
8900
|
+
border-radius: var(--radius-control);
|
|
8904
8901
|
color: inherit;
|
|
8905
8902
|
cursor: pointer;
|
|
8906
8903
|
font-size: 10px;
|
|
@@ -9022,7 +9019,7 @@ dialog .file-source .data-location-place {
|
|
|
9022
9019
|
.layer-card-channel {
|
|
9023
9020
|
background: var(--surface-2);
|
|
9024
9021
|
border: 1px solid var(--border-subtle);
|
|
9025
|
-
border-radius: var(--radius-
|
|
9022
|
+
border-radius: var(--radius-control);
|
|
9026
9023
|
color: var(--text-primary);
|
|
9027
9024
|
flex: 1 1 auto;
|
|
9028
9025
|
font-size: 11px;
|
|
@@ -9469,7 +9466,7 @@ dialog .file-source .data-location-place {
|
|
|
9469
9466
|
align-items: center;
|
|
9470
9467
|
background: transparent;
|
|
9471
9468
|
border: 0;
|
|
9472
|
-
border-radius: var(--radius-
|
|
9469
|
+
border-radius: var(--radius-control);
|
|
9473
9470
|
color: var(--text-muted);
|
|
9474
9471
|
cursor: pointer;
|
|
9475
9472
|
display: inline-flex;
|
|
@@ -9529,11 +9526,29 @@ dialog .file-source .data-location-place {
|
|
|
9529
9526
|
the two controls are the same object to look at and to use.
|
|
9530
9527
|
----------------------------------------------------------------------- */
|
|
9531
9528
|
|
|
9532
|
-
|
|
9529
|
+
/* The bar's numbers stand under the BAR, not under the whole row: the row's
|
|
9530
|
+
buttons (palette, Auto, an eye) come after the bar, and a scale that ran
|
|
9531
|
+
under them too put the high value under the buttons rather than under the
|
|
9532
|
+
end of the colours it names. A grid with the row flattened into it -- the
|
|
9533
|
+
bar in the first column, each button in a column of its own -- and the
|
|
9534
|
+
scale in the first column of the next line. The low value's first digit
|
|
9535
|
+
then stands under the bar's left edge and the high value's last digit
|
|
9536
|
+
under its right edge (the -4px gives back the boxes' own padding). Cell
|
|
9537
|
+
Explorer did this alone first; the density map and the Visium heatmap had
|
|
9538
|
+
the same misalignment. */
|
|
9539
|
+
.gradient-range {
|
|
9533
9540
|
align-items: center;
|
|
9534
|
-
|
|
9535
|
-
|
|
9536
|
-
|
|
9541
|
+
column-gap: 6px;
|
|
9542
|
+
display: grid;
|
|
9543
|
+
grid-template-columns: minmax(0, 1fr);
|
|
9544
|
+
}
|
|
9545
|
+
|
|
9546
|
+
.gradient-range-row {
|
|
9547
|
+
display: contents;
|
|
9548
|
+
}
|
|
9549
|
+
|
|
9550
|
+
.gradient-range-row > * {
|
|
9551
|
+
grid-row: 1;
|
|
9537
9552
|
}
|
|
9538
9553
|
|
|
9539
9554
|
/* Dimmed while whatever it colours is switched off, so the control says which
|
|
@@ -9605,11 +9620,8 @@ dialog .file-source .data-location-place {
|
|
|
9605
9620
|
}
|
|
9606
9621
|
|
|
9607
9622
|
/* The two ends, under the bar and not beside it: put inline they would take a
|
|
9608
|
-
hundred pixels out of the bar they are read against.
|
|
9609
|
-
|
|
9610
|
-
--plx-number-width: 56px;
|
|
9611
|
-
}
|
|
9612
|
-
|
|
9623
|
+
hundred pixels out of the bar they are read against. Each takes half the
|
|
9624
|
+
bar's width rather than a fixed 56px, which cut a long value off. */
|
|
9613
9625
|
.gradient-range-scale {
|
|
9614
9626
|
align-items: center;
|
|
9615
9627
|
color: var(--text-secondary);
|
|
@@ -9617,10 +9629,29 @@ dialog .file-source .data-location-place {
|
|
|
9617
9629
|
font-size: 11px;
|
|
9618
9630
|
font-variant-numeric: tabular-nums;
|
|
9619
9631
|
gap: 6px;
|
|
9632
|
+
grid-column: 1;
|
|
9633
|
+
grid-row: 2;
|
|
9620
9634
|
justify-content: space-between;
|
|
9621
9635
|
margin-top: 4px;
|
|
9622
9636
|
}
|
|
9623
9637
|
|
|
9638
|
+
.gradient-range-scale .plx-number-group {
|
|
9639
|
+
flex: 1 1 0;
|
|
9640
|
+
min-width: 0;
|
|
9641
|
+
}
|
|
9642
|
+
|
|
9643
|
+
.gradient-range-scale .plx-number {
|
|
9644
|
+
--plx-number-width: 100%;
|
|
9645
|
+
}
|
|
9646
|
+
|
|
9647
|
+
.gradient-range-scale .plx-number-group:first-child {
|
|
9648
|
+
margin-left: -4px;
|
|
9649
|
+
}
|
|
9650
|
+
|
|
9651
|
+
.gradient-range-scale .plx-number-group:last-child {
|
|
9652
|
+
margin-right: -4px;
|
|
9653
|
+
}
|
|
9654
|
+
|
|
9624
9655
|
/* The lower end reads left-to-right off the left of the bar. */
|
|
9625
9656
|
.gradient-range-scale .plx-number-group:first-child {
|
|
9626
9657
|
justify-content: flex-start;
|
|
@@ -10734,15 +10765,6 @@ dialog .file-source .data-location-place {
|
|
|
10734
10765
|
color: var(--accent-channel);
|
|
10735
10766
|
}
|
|
10736
10767
|
|
|
10737
|
-
/* The Local/Remote switch is dataLocation's own control -- a well with the
|
|
10738
|
-
active letter raised out of it -- and keeps every bit of that. All it
|
|
10739
|
-
needs here is the row's height, or a 30px switch beside a 34px box reads
|
|
10740
|
-
as two rows that happen to overlap. The letters stretch to fill it, so
|
|
10741
|
-
this is the only number to set. */
|
|
10742
|
-
.gene-modal .data-location-toggle {
|
|
10743
|
-
height: 34px;
|
|
10744
|
-
}
|
|
10745
|
-
|
|
10746
10768
|
/* One line under the row, for the waits and failures getting hold of the
|
|
10747
10769
|
file. It sits between the row and the hint, so it needs the hint's size
|
|
10748
10770
|
rather than the 12px it takes in a full-width import form. */
|
|
@@ -41,6 +41,16 @@
|
|
|
41
41
|
--radius-sm: 6px;
|
|
42
42
|
--radius-md: 8px;
|
|
43
43
|
--radius-lg: 12px;
|
|
44
|
+
/* What the sidebar's corners mean, on the scale above. Every control --
|
|
45
|
+
button, field, select, segmented control, an icon button's hover ground,
|
|
46
|
+
a list row's -- takes --radius-control; a card takes --radius-card; a box
|
|
47
|
+
inside a card (a plot, a notice, the save-as form) is a control's size,
|
|
48
|
+
so the card's corner stays the outer one. Two values, so a button and the
|
|
49
|
+
field beside it can never disagree again: they did (6px against 2px).
|
|
50
|
+
Not for shapes: dots and swatches stay round, count badges and
|
|
51
|
+
progress tracks stay pills, key caps keep their own small corner. */
|
|
52
|
+
--radius-control: var(--radius-md);
|
|
53
|
+
--radius-card: var(--radius-lg);
|
|
44
54
|
/* One height for every control that can share a horizontal row -- a path
|
|
45
55
|
box, its Local/Remote switch, its File/Folder pair, the button beside
|
|
46
56
|
it. Set here rather than per control so a row reads as one group
|
|
@@ -50,6 +60,38 @@
|
|
|
50
60
|
|
|
51
61
|
See main.css's "Inline control rows". */
|
|
52
62
|
--control-height: 40px;
|
|
63
|
+
/* A tool panel's measures -- the body of a card in the viewer's sidebar.
|
|
64
|
+
Every plugin panel is built from these, so four panels open at once
|
|
65
|
+
read as one sidebar rather than four authors. Cell Explorer is the
|
|
66
|
+
reference; website/content/docs/(guide)/plugins/build-a-plugin.mdx
|
|
67
|
+
("Design the sidebar panel") is the rule, with the reasons.
|
|
68
|
+
|
|
69
|
+
Four type sizes and no others: names and values, then counts and
|
|
70
|
+
summaries, then captions and notes, then the footer band. */
|
|
71
|
+
--panel-font-body: 13px;
|
|
72
|
+
--panel-font-meta: 12px;
|
|
73
|
+
--panel-font-note: 11px;
|
|
74
|
+
--panel-font-footer: 10px;
|
|
75
|
+
/* Three heights for single-line controls, by where they stand:
|
|
76
|
+
- 34px: the select a panel is about, a text field, a link-out row;
|
|
77
|
+
- 28px: a line of buttons, or a segmented control, on its own line
|
|
78
|
+
(core's Cells control was already this);
|
|
79
|
+
- 24px: anything set inside a row -- an icon button (eye, menu, close),
|
|
80
|
+
a header's Run, a row's Approve.
|
|
81
|
+
A list row is 32px; one nested under it, 28px. Corners are
|
|
82
|
+
--radius-control throughout (above). */
|
|
83
|
+
--panel-control-height: 34px;
|
|
84
|
+
--panel-button-height: 28px;
|
|
85
|
+
--panel-row-height: 32px;
|
|
86
|
+
--panel-icon-button: 24px;
|
|
87
|
+
--panel-field-ground: rgba(255, 255, 255, 0.03);
|
|
88
|
+
--panel-hover-ground: rgba(255, 255, 255, 0.05);
|
|
89
|
+
/* The hairline between a panel's parts. Quieter than --border-subtle,
|
|
90
|
+
which is for edges of things; this only says "next part". */
|
|
91
|
+
--panel-rule: rgba(255, 255, 255, 0.07);
|
|
92
|
+
/* The step between a panel's blocks, and the space each side of a rule
|
|
93
|
+
is built from (see the guide: equal above and below). */
|
|
94
|
+
--panel-gap: 8px;
|
|
53
95
|
--shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.25);
|
|
54
96
|
--shadow-md: 0 10px 28px rgba(0, 0, 0, 0.35);
|
|
55
97
|
--shadow-lg: 0 12px 28px rgba(0, 0, 0, 0.4);
|