157 Commits

Author SHA1 Message Date
wass08
96865a8ce7 window move tool + duplicate 2026-02-20 17:24:52 +09:00
Aymeric Rabot
f4f9f8a220
feat: add project visibility settings for scans and floorplans (#106)
- Add show_scans_public and show_guides_public columns to projects table
- Add visibility toggles to editor sidebar settings panel (auto-save)
- Add visibility toggles to project settings dialog (auto-save)
- Propagate settings to community viewer (hide scans/guides for non-owners)
- Add updateProjectVisibility server action
- Fix username onboarding dialog stuck after DB reset (validate update affected rows)
- Add error handling to UsernameGate for stale sessions

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-19 16:59:23 -05:00
Anton
ff85765728
fix: resolve react-doctor errors (hooks order, reduced motion, key prop) (#105)
- Move useCallback hooks before early return in ReferencesDialog
  to fix conditional hook call violation (Rules of Hooks)
- Add useReducedMotion hook and apply to all motion animations
  for WCAG 2.3.3 accessibility compliance
- Replace useEffect state reset with key prop on ItemCatalog
  for proper React reconciliation on category change
- Add global prefers-reduced-motion CSS media query

Fixes 4 react-doctor errors, bringing score from 81 to ~85+.
2026-02-19 19:20:05 +00:00
Aymeric Rabot
9a0f83a1ec
feat: SEO improvements, OG image endpoint, favicon, and metadata (#104)
- Add dynamic OG image generation endpoint (/og) adapted from monorepo
- Replace favicon with monorepo version, remove unused icon.svg
- Add seo.ts config, robots.ts, sitemap.ts for better search indexing
- Add per-page metadata (editor, viewer, settings, profile, community)
- Remove stale package-lock.json that caused ENOWORKSPACES errors with Next.js
- Add OG fonts (Geist Regular, Plus Jakarta Sans SemiBold)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-19 13:38:34 -05:00
wass08
e8fcc840d5 surface placement 2026-02-18 16:26:17 +09:00
wass08
c0676f684e item surfaces 2026-02-18 16:06:23 +09:00
wass08
c816295e18 fix camera initial load 2026-02-18 14:39:41 +09:00
wass08
5d61e60f95 free mode for slabs and ceiling 2026-02-18 14:00:28 +09:00
wass08
586bd9f16c fix number input 2026-02-18 13:37:46 +09:00
wass08
47373eadef adjusting wall system + adding panel 2026-02-18 13:35:12 +09:00
wass08
be013d26e5 window panel 2026-02-18 13:14:55 +09:00
wass08
076faae7df window building 2026-02-18 10:41:12 +09:00
wass08
9a2c89547b feedback feature 2026-02-18 10:26:57 +09:00
wass08
1cceb50ab6 fix thumbnail issues 2026-02-18 09:49:57 +09:00
Anton Pascal
ee30f17129 feat: rename properties to projects
- Rename all DB tables: properties → projects, properties_addresses → projects_addresses, properties_models → projects_models, property_likes → projects_likes
- Add projects_likes as proper Drizzle schema table (was SQL-only before)
- Rename ID prefixes: property_xxx → project_xxx
- Rename auth_sessions column: active_property_id → active_project_id
- Simplify project creation: address is now optional (no longer required to get started)
- Update all actions, stores, types, components, and routes
- Rename route: /editor/[propertyId] → /editor/[projectId]
- Add SQL migration for table/column/index/policy/function renames
- Update RPC functions: increment_project_views, get_project_like_count
- Update storage bucket reference: project-thumbnails
- All types/exports follow existing Drizzle patterns (pgTable, relations, zod schemas)
2026-02-17 20:40:52 +00:00
wass08
dd5f63df64 wall tool draft 2026-02-17 16:22:45 +09:00
wass08
13fd1848d1 polish catalog 2026-02-17 14:23:02 +09:00
wass08
101db7b34d free placement 2026-02-17 13:22:17 +09:00
wass08
d833245fbf esc key cancel tool 2026-02-17 12:29:00 +09:00
wass08
078b2500a3 handle thumbnails (manual) 2026-02-17 12:07:32 +09:00
wass08
144a2bd18f camera controls enhancement 2026-02-17 08:52:58 +09:00
wass08
0b200bfe5d hub 2026-02-16 14:11:40 +09:00
wass08
66e8453db3 hub features 2026-02-16 13:43:19 +09:00
wass08
e6442ad473 adding missing sounds 2026-02-16 09:31:34 +09:00
wass08
052efea2cb polished placements 2026-02-16 09:12:04 +09:00
wass08
13070a5630 ceiling holes 2026-02-16 08:59:28 +09:00
wass08
0797a828f8 fix build issues 2026-02-12 10:56:56 +09:00
wass08
cfa7b8bfc1 handle holes in spatial grid manager 2026-02-12 10:46:07 +09:00
wass08
29e7fa09ef slab holes 2026-02-12 10:41:37 +09:00
wass08
ae3af4318e better placing tools 2026-02-12 10:17:22 +09:00
wass08
be7e86975e radio & sfx 2026-02-12 08:57:37 +09:00
wass08
2e8b663001 community feature 2026-02-11 15:23:18 +09:00
wass08
4f9c4655e6 auth flow + property switching 2026-02-11 10:48:24 +09:00
wass08
c1ff61ad5b isolate cloud-sync feature 2026-02-11 07:57:10 +09:00
wass08
c7e5aa48c6 auth flow draft 2026-02-10 15:58:34 +09:00
wass08
b4375792ab fix extra rebuild 2026-02-10 14:07:56 +09:00
wass08
80cb039f86 fix elevation for item creation 2026-02-10 13:48:58 +09:00
wass08
8ded112da3 fix item panel 2026-02-10 13:28:47 +09:00
wass08
4dd85993cb fix issue undo history number input 2026-02-10 11:00:11 +09:00
wass08
daf41f7da5 figma like tools 2026-02-10 10:45:42 +09:00
wass08
6ec6a55b05 fix elevation issue 2026-02-10 10:04:14 +09:00
wass08
9a838ae3c4 fix build 2026-02-09 16:14:39 +09:00
wass08
cba709cb81 bring back site edition + zindex fix 2026-02-09 16:11:50 +09:00
wass08
e9d579d24e better looking grid 2026-02-09 13:49:05 +09:00
wass08
48aa62ec87 remove fallback (this shouldn't be needed) 2026-02-09 13:40:52 +09:00
wass08
bfe685b011 fix polygon editor edition + events propagation 2026-02-09 13:38:12 +09:00
wass08
f2c1da1655 simplify poligon editor / boundaries editor 2026-02-09 12:48:35 +09:00
wass08
81f132611e remove custom raycasters 2026-02-09 12:23:38 +09:00
Aymeric Rabot
7a871be792 Add slab polygon editing with drag, add, and delete vertices
Reuse the shared PolygonEditor for slab boundary editing with levelY
and surfaceHeight support. Handles render as 3D cylinders that adapt
to slab thickness. Prevent deselection after drag by suppressing
grid:click propagation, and reset preview state on undo/redo.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 14:49:53 -05:00
Aymeric Rabot
31a560e2c5 Use raycast cursor & level Y fallback
Ceiling and slab tools: switch cursor tracking to per-frame raycasting onto a level plane (useFrame) instead of relying on grid:move events, and memoize Raycaster/Plane to reduce allocations. Update line geometry updates to be performed imperatively from the frame loop, ensure previews only trigger React updates when the snapped display position changes, and keep cursor/preview snapping consistent with user-visible pointer. Add sceneRegistry-based fallback to resolve a level's Y position (used by Grid, CeilingTool and SlabTool) when the level mesh isn't registered yet, computing Y from level node data and viewer levelMode. Misc: import/add necessary three.js types and small refactors to visibility/reset logic.
2026-02-07 11:58:17 -05:00