kintex/src/frontend
zio 6c0d364fc9 feat(m2): floorplan tree selection + easy 3-step auto-layout wizard (real operation)
Owner directives 2026-07-14: select floorplan via tree (center > hall > zone),
generate booths inside it, images only on button click, zoom popup + save.

- V59: align hall width/depth to official floorplan orientation (all 10 halls
  were transposed vs drawings, e.g. H1 63x171 -> 171x63); re-derive assumed
  exits (V4 formula) and trench grid (V5 formula)
- V60: hall_zone tree table + drawing-measured zones (1A/1B, 6A/6B/6C, 7A/7B,
  8A/8B, 9B/9A, 10B/10A) - data as tree: center > hall > zone
- GET /api/halls/tree (HallTreeController) - selection tree for the wizard
- AutoLayoutRequest.zoneId: pack booths only inside the selected zone bounds
- S7 aerial preview is NO LONGER auto-published per option (Gemini quota);
  new POST .../auto-generate/preview publishes only on user button click,
  persisted in render_job for gallery re-view and auction reference reuse
- AutoLayoutDialog reworked as 3-step wizard (place > conditions > pick):
  per-option generate-aerial-image button, click-to-zoom lightbox with
  download/save, and REAL apply via POST /apply-option (was refetch-only -
  selected options were never persisted)
- FloorplanCanvas calibration: H8/H10 floor regions re-measured with
  union-of-blobs (center aisle split the color blob, bottom half only before)
- Editor toolbar hall selector (grouped by exhibition center)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-14 23:36:07 +09:00
..
public fix(m2): floorplan studio — real hall drawing underlay + 404 as empty start state 2026-07-14 21:35:46 +09:00
src feat(m2): floorplan tree selection + easy 3-step auto-layout wizard (real operation) 2026-07-14 23:36:07 +09:00
.env.example fix(schedule,ui): holidays on exhibition calendar, bilingual brand, neutral calendar borders 2026-07-12 19:16:48 +09:00
.gitignore fix(schedule,ui): holidays on exhibition calendar, bilingual brand, neutral calendar borders 2026-07-12 19:16:48 +09:00
index.html fix(brand): replace Tomcat default favicon.ico with KINTEX-branded icon 2026-07-12 20:10:56 +09:00
package-lock.json fix(schedule,ui): holidays on exhibition calendar, bilingual brand, neutral calendar borders 2026-07-12 19:16:48 +09:00
package.json fix(schedule,ui): holidays on exhibition calendar, bilingual brand, neutral calendar borders 2026-07-12 19:16:48 +09:00
README.md fix(schedule,ui): holidays on exhibition calendar, bilingual brand, neutral calendar borders 2026-07-12 19:16:48 +09:00
tsconfig.app.json fix(schedule,ui): holidays on exhibition calendar, bilingual brand, neutral calendar borders 2026-07-12 19:16:48 +09:00
tsconfig.json fix(schedule,ui): holidays on exhibition calendar, bilingual brand, neutral calendar borders 2026-07-12 19:16:48 +09:00
tsconfig.node.json fix(schedule,ui): holidays on exhibition calendar, bilingual brand, neutral calendar borders 2026-07-12 19:16:48 +09:00
vite.config.d.ts fix(schedule,ui): holidays on exhibition calendar, bilingual brand, neutral calendar borders 2026-07-12 19:16:48 +09:00
vite.config.js fix(schedule,ui): holidays on exhibition calendar, bilingual brand, neutral calendar borders 2026-07-12 19:16:48 +09:00
vite.config.ts fix(schedule,ui): holidays on exhibition calendar, bilingual brand, neutral calendar borders 2026-07-12 19:16:48 +09:00

KINTEX AI 전시관리 — Frontend

React 18 + Vite 5 + TypeScript. 백엔드(Spring Boot :8080) 계약(_workspace/01_backend_contracts.md) 기반.

개발

npm install
npm run dev        # Vite 개발 서버 :5173 (/api·/ws → :8080 프록시)
npm run typecheck  # tsc -b (타입 체크)
npm run build      # tsc -b && vite build

.env.example.env 복사. VITE_BACKEND_ORIGIN으로 백엔드 오리진 지정(기본 http://localhost:8080).

구조

  • src/styles/tokens.css — 디자인 토큰 단일 출처(design.md §1). 하드코딩 금지, 이 변수만 참조.
  • src/api/client(JWT·봉투·오류코드), endpoints(계약 래퍼), types(응답 shape), websocket(STOMP RenderJob).
  • src/store/authStore.ts — 인증/워크스페이스 상태(zustand).
  • src/components/ui/ — StatusBadge·DdayChip·AiLabel·Button·AiImage(워터마크 상시)·States.
  • src/components/layout/AppShell.tsx — 인증 셸(사이드바+상단바).
  • src/screens/login/ — SCR-01 로그인·워크스페이스·초대(등록업체 차단).
  • src/screens/floorplan/ — SCR-03 배치 에디터(SVG 캔버스·AI 자동배치·검증).

원칙

  • 백엔드 응답 shape과 정확히 일치. 불일치는 _workspace/02_frontend_progress.md에 기록.
  • AI 생성 이미지 워터마크·고지문 제거 불가. 접근성 WCAG AA.
  • 캔버스 편집은 데스크톱 전용(모바일은 뷰어+승인).