427 Commits

Author SHA1 Message Date
Aymeric Rabot
e2cde339ae fix: add @types/node to viewer devDependencies for process.env typing
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 15:29:12 -07:00
Aymeric Rabot
6bbb1db334 chore: update lockfile
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 15:14:26 -07: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
github-actions[bot]
3791614a9d release: @pascal-app/core@0.2.0 @pascal-app/viewer@0.2.0 2026-03-21 03:21:20 +00:00
Aymeric Rabot
10449c5cc5 fix: replace npm version with jq to avoid peer dep conflicts in CI
npm version triggers npm install which fails on peer dependency
resolution in workspace monorepos. Use jq for version bumping instead.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 23:20:37 -04: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
Aymeric Rabot
bafc5973a3
Update README with user attachments link
Added a link to user attachments in the README.
2026-03-16 12:35:55 -04:00
Wassim SAMAD
4824bcd031
Merge pull request #142 from pascalorg/chore/carving-out-community
Chore/carving out community
2026-03-13 09:08:25 +01:00
wass08
f2501be2bf remove community 2026-03-13 09:07:46 +01:00
wass08
3eeba322a8 rename before moving to monorepo 2026-03-11 15:12:41 +01:00
wass08
5bd9c21dbc split community from editor 2026-03-11 13:29:25 +01:00
wass08
3df8a006f2 clean impl 2026-03-11 13:08:33 +01:00
wass08
a97ed42578 presets community / non community 2026-03-11 13:02:17 +01:00
wass08
7359c1fcbf splitting editor and community 2026-03-11 12:16:26 +01:00
Wassim SAMAD
5108636d49
Merge pull request #140 from pascalorg/feat/zone-fix-layer
Feat/zone fix layer
2026-03-11 07:49:43 +01:00
wass08
8d02e5191b rule for layers 2026-03-11 07:47:10 +01:00
wass08
32406e5a20 enhance hover zone 2026-03-11 07:47:10 +01:00
wass08
6719f34a89 clean zone handling code 2026-03-11 07:47:10 +01:00
wass08
918ec46a93 bring back ground occluder 2026-03-11 07:47:10 +01:00
wass08
30b9e3ccb2 move zones to separate layers todo: fix hardcoded 2 and zone floor 2026-03-11 07:47:10 +01:00
Aymeric Rabot
bc59752edb Bump devDependencies and update lockfile
Bump devDependencies in package.json: @biomejs/biome ^2.4.4→^2.4.6, turbo ^2.8.12→^2.8.15, ultracite ^7.2.4→^7.2.5. Regenerate bun.lock to reflect these updates and related transitive changes (e.g. @clack, glob, path-scurry/minipass, minimatch).
2026-03-10 15:02:55 -04:00
Wassim SAMAD
208e56d46a
Merge pull request #139 from pascalorg/feat/project-switch-and-spotlight
Feat/project switch and spotlight
2026-03-10 18:26:22 +01:00
wass08
551f38fea3 fix build 2026-03-10 18:22:28 +01:00
wass08
d0f2a1a06f actions command K 2026-03-10 13:35:05 +01:00
wass08
175040232a theme switch minimalist 2026-03-10 12:25:30 +01:00
wass08
52bc82d6e1 project switch 2026-03-10 12:13:04 +01:00
wass08
433eaa2e02 project edit name change 2026-03-10 10:56:09 +01:00
Wassim SAMAD
636d315e85
Merge pull request #138 from pascalorg/chore/skills-md
Chore/skills md
2026-03-10 09:58:57 +01:00
wass08
bf1d350338 adjust agents.md 2026-03-10 09:58:27 +01:00
wass08
97b3c53ea5 skills polish 2026-03-10 09:51:49 +01:00
wass08
03f452d4d1 key skills 2026-03-10 09:40:07 +01:00
Aymeric Rabot
ae801428b1
Merge pull request #137 from pascalorg/feat/editor-preview
Add editor preview mode
2026-03-06 23:44:30 -05:00
Aymeric Rabot
d3e17cac04 Add editor preview mode for in-place viewer experience
Adds a Preview button next to Radio Pascal that switches the editor
into a viewer-like experience without leaving the page. The preview
mode swaps in the viewer's selection manager (hierarchical drill-down),
zone system, camera controls (left-click pan, auto-navigate), and
interactive item system while hiding editor-only UI (tools, panels,
sidebar, grid). Back arrow in the viewer overlay returns to the editor.

Also widens the default sidebar from 288px to 432px for better
project title visibility.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-06 23:43:10 -05:00
Aymeric Rabot
de6bfd8c00 Add react-scan and react-grab dev tools (development only)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-06 18:52:01 -05:00
Wassim SAMAD
727934fd38
Merge pull request #136 from pascalorg/feat/items-interactivity
Feat/items interactivity
2026-03-06 13:11:33 +01:00
wass08
8d26a4d81c fix issue when switching phase/structure layer 2026-03-06 13:09:25 +01:00
wass08
ca0a3acf17 fixed local thumbnails 2026-03-06 13:09:25 +01:00
wass08
5143d3f0e5 adding new items 2026-03-06 13:09:25 +01:00
wass08
7e6684bbc8 zone label edition 2026-03-06 13:09:23 +01:00
wass08
849baa0a0e default value 2026-03-06 13:08:24 +01:00
wass08
202fc41f42 fade timescale for smooth item anims 2026-03-06 13:08:24 +01:00
wass08
88d0231a95 collection controls 2026-03-06 13:08:24 +01:00
wass08
bc57afb8fa collections + unify color picker 2026-03-06 13:08:23 +01:00
wass08
8f65daa853 handling lights 2026-03-06 13:08:23 +01:00
wass08
e2de931aa7 adjust fan anim 2026-03-06 13:08:23 +01:00
wass08
54051b11fa item system controls 2026-03-06 13:08:21 +01:00
wass08
927ecba054 schema and interactive store 2026-03-06 13:06:33 +01:00
Wassim SAMAD
3e40c1dde0
Merge pull request #135 from pascalorg/revert-134-fix/bugs
Revert "Restore inline zone label editing on canvas"
2026-03-06 13:05:42 +01:00
Wassim SAMAD
e0d97df8c8
Revert "Restore inline zone label editing on canvas (#134)"
This reverts commit 036344d705a98f8ed5a2cc886ea81e330d9ad108.
2026-03-06 13:04:52 +01:00
Aymeric Rabot
036344d705
Restore inline zone label editing on canvas (#134)
* fix: harden viewer/editor renderer init and error handling

* Bump @biomejs/biome and turbo versions

Update devDependencies: bump @biomejs/biome from ^2.4.4 to ^2.4.6 and turbo from ^2.8.12 to ^2.8.13. Regenerated bun.lock to reflect the updated resolved package versions.

* Restore inline zone label editing on canvas
2026-03-05 16:45:32 -05:00