94 Commits

Author SHA1 Message Date
Aymeric Rabot
48d5091bb3
UX polish: selection behavior, styling, and site panel improvements (#119)
* Remove .env.local guard; add portless dep

Remove the check that blocked a local .env.local in apps/editor's dev script and simplify the dev startup to source the root .env. Add portless@^0.4.2 to the project dependencies in package.json. Lockfile updated accordingly.

* Improve tool cursors, previews, and contextual tools

Revamp editor tool visuals and behaviour: replace mesh cursors with a new CursorSphere Group (adds ground marker, vertical indicator and optional tool icon tooltip), unify preview colors to #818cf8, add ground-level previews and ghost lines for ceiling and roof tools, and update slab/zone/wall visuals to match. Add automatic build-mode switching and contextual highlighting for structure tools via a new useContextualTools hook, and relax action-menu visibility checks so tool rows are shown even when not in build mode. Minor typing/import adjustments and small opacity/placement tweaks across multiple tool components.

* Keep tools active and refine action-menu styles

Stop auto-deactivating tools in RoofTool and ZoneTool by removing setTool(null) (and setMode('select') in roof). Add hasActiveTool checks and small layout padding to FurnishTools and StructureTools, and update button classes to improve visual emphasis: smoother transitions, stronger active rings/scale, and dimming/grayscale of non-active tools when another tool is active. These changes improve UX by keeping the selected tool active and giving clearer visual feedback in the action menu.

* Improve selection behavior and refresh UI styling

SelectionManager: add global enter/leave/double-click handlers to support cross-phase hovering and auto-switching into structure/furnish on double-click; normalize click handling (explicitly coalesce shiftKey). Remove per-strategy enter/leave listeners.

UI panels & controls: unify and modernize styles across many panels (ceiling, door, item, reference, roof, slab, wall, window) and action buttons — rounded-md, neutral borders, subtle shadows, translucent headers and consistent hover/focus states. Update view toggles icons and toggle styling.

NumberInput: integrate @number-flow/react NumberFlow for formatted value display, add visual drag progress indicator and refine input/label interactions and styling.

Sidebar: replace rename-popover with inline-rename-input and update tree nodes to use inline editing. Add slider-demo and tweak slider implementation. Update package.json accordingly.

* Use Barlow font across editor UI

Add the Google Barlow font and expose it as a CSS variable, update theme font variables in globals.css, and apply the new font across the editor UI. Imports: add Barlow in app/layout.tsx and include its variable on <html>, set body to use font-sans. Apply font-barlow or font-mono classes to headings, labels, numeric readouts and buttons across multiple panels and primitives to standardize typography. Also update button base variant to include font-barlow. Remove the PhaseSwitcher component and its import/usage from the action menu.

* Replace button wrapper with div in LevelItem

Replace the outer <button> around the LevelItem content with a <div> to avoid nesting interactive button elements (and the resulting invalid HTML/interaction issues). Preserves the original classes and onClick/onDoubleClick handlers so behavior remains the same and allows the PopoverTrigger/button children to function correctly.

* Refine site panel list styles and spacing

Update the SitePanel and TreeNode UI to use compact, border-bottom list rows instead of rounded, card-like items. Simplified active/hover states to use bg-accent variants and reduced shadow/ring styles for a cleaner look. Adjusted paddings (pl/px/py) and container layouts (many sections switched to flex-col) and increased tree node indent/paddingRight for consistent alignment. These changes unify spacing and visual hierarchy across levels, buildings, zones and tree nodes.

* Add auto-scroll to selected items and refine icon styles

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 18:05:02 -05:00
wass08
d3ef5fc08a door panel 2026-02-25 16:10:21 +09:00
wass08
ced76b0475 fix placement 2026-02-25 15:21:19 +09:00
wass08
b114e60df7 fix hinge + materials 2026-02-25 14:50:17 +09:00
wass08
7608cad748 nice progress on doors 2026-02-25 14:05:32 +09:00
wass08
27e4afb757 draft custom door 2026-02-25 13:28:42 +09:00
Wassim SAMAD
2182fe535d
Merge pull request #116 from pascalorg/fix/community-feedback-pass-3
Fix/community feedback pass 3
2026-02-24 16:17:44 +09:00
wass08
81ede241d5 save site + camera build position 2026-02-24 14:48:59 +09:00
Aymeric Rabot
db05c86120
Add scene graph viewer and persist migration (#115)
Render an interactive Scene Graph in the Settings panel using @visual-json/react. Introduces SceneNode/SceneGraphNode types and buildSceneGraphValue to build a tree (handles missing nodes and cycles), and adds handlers to block drag/drop/context/delete mutations inside the viewer. Adds @visual-json/react to apps/editor package.json and updates the dev script to forbid .env.local and source the root .env instead. Also adds a persistence migration in use-scene to preserve existing nodes and rootNodeIds when the persist version changes.
2026-02-24 00:40:18 -05:00
wass08
d15f601107 item scale 2026-02-23 10:59:42 +09:00
wass08
33c81045bb duplicate item 2026-02-20 18:06:59 +09:00
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
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
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
0b200bfe5d hub 2026-02-16 14:11:40 +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
b4375792ab fix extra rebuild 2026-02-10 14:07:56 +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
cba709cb81 bring back site edition + zindex fix 2026-02-09 16:11:50 +09:00
wass08
a7683924a6 fix shown items in the tree 2026-02-06 13:16:59 +09:00
wass08
39f9f595d8 scene starting with site and not with building anymore 2026-02-05 14:42:46 +09:00
wass08
875cf277e0 camera actions 2026-02-05 13:52:16 +09:00
wass08
3579dccf9a fix opacity 3d scans 2026-02-05 10:22:06 +09:00
wass08
e776ce9849 cdn and packages building 2026-02-04 09:53:44 +09:00
wass08
30653b49c9 wall cutout 2026-02-03 14:28:06 +09:00
wass08
310a4ae335 fix build 2026-02-02 14:52:45 +09:00
wass08
72a0e3952a slab panel 2026-02-02 11:17:47 +09:00
wass08
549bfb3f29 handle visible/invisible items 2026-02-02 10:33:36 +09:00