33 Commits

Author SHA1 Message Date
John Doe
9a0950dd90 style: reorder imports 2026-03-26 00:24:45 -04:00
John Doe
de9eb6fa78 feat: add scene graph cloning utility 2026-03-25 22:05:07 -04:00
Anton
f06f2fa1b1
feat: 2D editing — floorplan panel, measurements, command palette (v0.3.0)
* sync: port 2D editing features from monorepo (v0.3.0)

## New Features

### Floorplan Panel (7.5K LOC)
- Full 2D editing interface with wall drawing, measurement, and unit display
- Interactive floorplan view with pan/zoom, grid snapping
- Wall thickness visualization, door/window placement
- Zone and slab polygon editing
- Guide image overlay support
- Metric/imperial unit toggle

### Command Palette Overhaul
- Complete rewrite with new command registry system
- Keyboard shortcuts UI with ShortcutToken component
- Editor-specific commands (floorplan, measurements, camera focus)
- Improved search and action organization

### Wall Measurements
- Real-time wall length labels in 3D view
- Metric/imperial conversion
- Wall measurement UI component

### Enhanced Tools
- Wall drafting utilities (grid snapping, validation)
- Node action menu for quick operations
- Improved polygon editing for zones/slabs/sites
- Roof segment panel for granular roof control

## Package Changes

### @pascal-app/core@0.3.0
- New wall-footprint.ts: 2D wall footprint calculation
- Wall mitering exports for floorplan view
- camera-controls:focus event
- Space detection undo pause/resume
- Mark sibling nodes dirty on deletion (miter recalc)

### @pascal-app/viewer@0.3.0
- ErrorBoundary component for robust item rendering
- Broken item fallback UI
- Wall renderer: mark dirty on mount
- Ground occluder: only lowest level punches through
- Unit state (metric/imperial) in viewer store

### @pascal-app/editor@0.1.0
- 48 file changes (16 new, 32 modified)
- New stores: useCommandRegistry, usePaletteViewRegistry
- Tree node drag-and-drop system
- Level selection utilities
- Enhanced scene graph operations

## Apps/Editor
- GeistPixelSquare font for pixel-perfect UI
- Blueprint icon asset
- Updated layout and globals for font support

## Security
- Zero AI imports or internal package refs
- All monorepo-specific code excluded
- Clean audit: no API keys or secrets

## Testing
- Security audit passed ✅
- All AI/internal code excluded ✅
- Version bumps applied ✅

79 files modified, 16 files added
~2600 insertions, ~1400 deletions

* fix: lint cleanup — suppress intentional dep warnings, fix missing dep, remove stale ignores

- Add biome-ignore for 3 intentional useEffect reset patterns (levelId, selectedGuide, selectedId)
- Fix actual missing dependency: currentBuildingId in handleSiteEditShortcutSelect callback
- Remove 3 stale biome-ignore comments in r3f.d.ts (rule not active)

Build and lint pass clean.

* fix: type errors — polygon area guards, selection cast, readonly keywords, door guard

- ceiling-panel, slab-panel, ceiling-tree-node, slab-tree-node, zone-tree-node:
  guard polygon[i]/polygon[j] array access before arithmetic (TS2532)
- scene.ts: introduce toViewerSelection() helper to cast persisted string IDs
  to branded template literal types expected by useViewer.setSelection (TS2345)
- door-panel: guard early return when node is undefined in setSegmentHeightRatio (TS18048)
- editor-commands: remove 'as const' from inline command object, keywords is mutable string[] (TS2322)

All type checks pass. Build and lint clean.

---------

Co-authored-by: Anton Pascal <anton-pascal@users.noreply.github.com>
2026-03-24 19:48:11 +00:00
Aymeric Rabot
1d28e4208f
sync: update core and viewer from monorepo (#143)
Major changes:
- Roof system rewrite with roof-segment support
- Scene store refactor
- Spatial grid improvements
- Item light system
- Post-processing and selection manager updates
- Perf monitor component

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 23:18:30 -04:00
wass08
f2501be2bf remove community 2026-03-13 09:07:46 +01:00
wass08
927ecba054 schema and interactive store 2026-03-06 13:06:33 +01:00
wass08
27e4afb757 draft custom door 2026-02-25 13:28:42 +09:00
wass08
076faae7df window building 2026-02-18 10:41:12 +09:00
wass08
dd5f63df64 wall tool draft 2026-02-17 16:22:45 +09:00
wass08
6ec6a55b05 fix elevation issue 2026-02-10 10:04:14 +09:00
wass08
39f9f595d8 scene starting with site and not with building anymore 2026-02-05 14:42:46 +09:00
wass08
a15952055a wall sides feed with floo fill algorithm 2026-02-03 12:03:03 +09:00
wass08
be6a766586 better selection-manager 2026-01-30 08:43:45 +09:00
wass08
8edcda1b75 default seleciton manager 2026-01-30 08:30:57 +09:00
wass08
f1a61350c7 roof 2026-01-29 12:52:35 +09:00
wass08
c94f661bf9 scans and ref image 2026-01-29 09:38:24 +09:00
wass08
11aba2af36 draft item-system + elevation 2026-01-27 19:05:08 +09:00
wass08
e3e3602d91 ceiling 2026-01-27 09:25:40 +09:00
wass08
0e3130bd60 slab rendering + select 2026-01-27 07:37:06 +09:00
wass08
8940f70117 slab renderer 2026-01-27 07:32:46 +09:00
wass08
fb3cd3e34e zones as nodes 2026-01-26 07:34:53 +09:00
wass08
3240266476 transient nodes 2026-01-23 11:13:11 +09:00
wass08
eb0ccac30f zone editor 2026-01-22 12:24:55 +09:00
wass08
1f23792f9c camera view 2026-01-22 08:14:42 +09:00
wass08
588e19ffc0 event propagation fix + handling current selected level 2026-01-21 12:09:57 +09:00
wass08
5de0818633 biome 2026-01-21 10:03:29 +09:00
wass08
8bf933ed36 draft spatial grid 2026-01-18 10:54:02 +09:00
wass08
1b954d3416 events handlers 2026-01-16 11:42:10 +09:00
wass08
60cb60fdaa code organization 2026-01-16 09:46:19 +09:00
wass08
c0626662a8 event systems 2026-01-15 11:24:41 +09:00
wass08
0c07c482a5 registry / systems / renderer 2026-01-15 10:43:32 +09:00
wass08
aa8ee9c034 project organization 2026-01-14 11:14:31 +09:00
wass08
c9d84ea126 repo setup 2026-01-14 09:03:07 +09:00