Add a Floorplan group to the settings Export panel alongside the 3D
model exports, with "Full floorplan" and "Structure only" buttons.
Export re-runs the live registry-driven floorplan pipeline
(def.floorplan -> FloorplanGeometryRenderer) headlessly with a neutral
viewState, fits each level to its own page, and titles each page with
the level label. Every level of the active building becomes a page in
one landscape A4 PDF. "Structure only" keeps category === 'structure'
nodes; "Full" keeps every visible node with a floorplan builder.
- new lib/floorplan/floorplan-export.tsx; jsPDF + svg2pdf dynamically
imported so they only load on export
- export five pure helpers from floorplan-registry-layer for reuse
(buildContext, getFloorplanLevelData, floorplanLayerRank,
splitFloorplanOverlay, isFloorplanNodeVisible) — no behaviour change
- bake vector-effect:non-scaling-stroke widths into real units before
svg2pdf (which ignores the hint and would otherwise draw door/window/
stair linework as metre-wide strokes)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>