Skip to content

Changes since version 1.10.1

New Features

  • Editable table control (add_table / TableView) — a Tabulator-backed tabular-data control whose columns and initial rows are defined by the backend. Users can edit cells and optionally append rows and columns; each change is reported back via control:cell_change / control:row_add / control:column_add to distinct async handlers (on_cell_change / on_row_add / on_column_add), and the grid can be refreshed in place with set_control_value.

Bug Fixes

  • HTML export drops KaTeX math texture labels — standalone HTML snapshots and figures did not load html2canvas, so $...$ / $$...$$ texture labels silently failed to render (plain-text labels still worked). The export templates now load html2canvas alongside KaTeX, and createTextureLabel() falls back to plain text when html2canvas is unavailable instead of dropping the label.

Refactor

  • Default 3D camera moved closer to the origin — the default perspective camera position changed from (8, 6, 10) to (6, 4.5, 7.5) (three-quarters of the original distance), applied to both the live viewer and HTML exports.
  • Unified, tighter camera auto-fit — extracted a single shared fit_camera.js fitCamera() used by both the live viewer and all HTML exports (snapshot, figure, animated). In 3D it now excludes the axes/grid reference frame, always includes the origin, fits the content's bounding sphere within the vertical FOV (replacing the old maxDim * 1.5 + 2), and keeps the camera looking at the origin. When there is no content it falls back to the grid/axes, and to a [-5, 5] cube for an empty scene.