Skip to content

Semiotic v3.12.1

Choose a tag to compare

@github-actions github-actions released this 06 Oct 15:40
· 223 commits to main since this release
cd77bfd

Added

  • getNetworkPerspectiveSize(perspective, groundSize, bounds?) measures a scale-1
    projected plot, including thickness, declared chrome and fit padding. Available
    from the narrow semiotic/network/perspective/core entry.
  • Lineage DAG showArrowheads: false suppresses recipe terminators. Lineage and
    transit recipes accept chromePlacement: "upright" | "ground"; transit accepts
    stationBounds(info) for custom station extents.
  • perspective.tokenRim: "flat" simplifies a circular token to a rim and top path.
    SVG parts expose data-perspective-part roles and face indices for postprocessors.
    SVG path whitespace and comma formatting are not a public contract.
  • perspective on MotifBraidChart, DependencyForestChart and FlowCircuitChart,
    including static SVG and evidence. Flow Circuit uses the same fixed apparatus
    and tape readings in a network frame; networkFrameProps configures that view.
  • semioticVite() from semiotic/vite removes unused Semiotic worker assets on
    Vite 7 while preserving external URLs for used workers. Keep standard worker
    filenames when customizing Vite asset naming. Vite 8 already avoids the orphans.

Fixed

  • Ground placement retains full affine coefficients, eliminating distance-dependent
    drift between projected marks, hulls, card content and arrowheads. Static SVG
    precision retains at least eight decimals for transform coefficients and angles.
  • Perspective fitting includes upright lineage card chrome and custom transit
    station bounds, even with zero fit padding.
  • Flow Circuit preserves bodyId annotation anchors when switching between flat
    and projected views, in React and static SVG. Explicit pointId anchors retain precedence.
    Live network widgets also accept pointId, preserving their node placement and activation.
  • getNetworkPerspectiveSize requires the default fit: "contain" for projected
    views and throws RangeError for fit: "none", whose origin-based placement can
    clip a canvas sized only from the projected bounds. Flat sizing is unchanged.
  • Placement components share React type identity across package entry points in
    ESM and CommonJS. Narrow helper imports no longer traverse the chart family.
  • Library minification removes misplaced PURE annotations while retaining valid
    factory annotations, eliminating downstream Rollup invalid-annotation warnings.
  • Transit layout ties use locale-independent ID order for repeatable SVG output.
  • Extruded perspective walls paint in the same order on every CPU architecture.
    Mirror-image flanks of a token tie in depth, and libm roundoff (which differs
    between arm64 and x64) no longer decides which of them is emitted first.
  • Example routes include readable content in initial HTML, outside noscript,
    before the client application loads.

SVG golden compatibility

  • Projection precision, fit bounds, part attributes, token-rim options, transit
    tie ordering and extruded-wall tie ordering can change SVG goldens. Review
    geometry when updating pinned versions.
  • Historical clarification: 3.11 (#1508, e917cf6) introduced lineage arrowheads
    in static SVG (3.10.3 SSR had none) and direction-aware attachment for leftward
    lineage edges. Transit round track caps were present when the recipe shipped
    in 3.9.2. Motif label pointer-events="none" shipped with the 3.11 network
    pipeline work (b476047); these details were missing from earlier notes.