1aa48cc0bb
## 디자인 개편 - IDE 톤 CSS 오버라이드 (builder-ide.css) - 컴팩트화 (폰트/간격/패딩 축소) - INVYONE STUDIO 로고 추가 (SlimToolbar) - 좌측 수평 탭 → 수직 아코디언 (details/summary) - 우측 속성 패널 신설 (V2PropertiesPanel 완전 이주) - 다크모드 지원 (7개 통합 컴포넌트 inline hex → CSS 변수) ## 기반 시스템 - ScreenDefinition.fields/connections 타입 확장 - ComponentDefinition.dataPorts 타입 확장 - FieldConfig adapters (fieldsToColumns/Search/Form) - DataPortBus + setupConnections runtime - FieldsPanel (화면 수준 필드 관리 패널) ## 컴포넌트 통합 (Phase A~C) - divider (3→1): 가로/세로 + 텍스트 구분선 - title (2→1): h1~h6/body/caption variant - button (3→1): 6 variant × 13 actionType - search (3→1): inline/stacked 검색 필터 - input (20+→1): FieldConfig.type 10종 내부 분기 - stats (6→1): card/chip/bigNumber 3종 스타일 - table (9→1): table/split/grouped/pivot/card 5종 displayMode - container (11→1): tabs/section/accordion/repeater/conditional 5종 ## 버그 수정 (기존 VEX 코드) - 드래그 드롭 불가 (defaultSize camelCase 불일치) - 설정 변경 미반영 (componentConfig vs component_config) - ConfigPanel 미인식 (config_panel vs configPanel) - v2- 자동 매핑 함정 (INVYONE_UNIFIED_IDS 화이트리스트) - LayerManagerPanel 무한 API 호출 (useEffect deps) - Button size 이름 충돌 (visual size 객체 vs config string) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
30 lines
841 B
TypeScript
30 lines
841 B
TypeScript
"use client";
|
|
|
|
import React from "react";
|
|
import { AutoRegisteringComponentRenderer } from "../../AutoRegisteringComponentRenderer";
|
|
import { ButtonDefinition } from "./index";
|
|
import { ButtonComponent } from "./ButtonComponent";
|
|
|
|
/**
|
|
* Button 렌더러
|
|
*
|
|
* AutoRegisteringComponentRenderer 를 상속하여 import 시점에 자동으로
|
|
* ComponentRegistry 에 등록된다. components/index.ts 에서 이 파일을 import
|
|
* 해야 등록이 실행됨.
|
|
*/
|
|
export class ButtonRenderer extends AutoRegisteringComponentRenderer {
|
|
static componentDefinition = ButtonDefinition;
|
|
|
|
render(): React.ReactElement {
|
|
return <ButtonComponent {...this.props} renderer={this} />;
|
|
}
|
|
}
|
|
|
|
// 자동 등록
|
|
ButtonRenderer.registerSelf();
|
|
|
|
// Hot reload (dev)
|
|
if (process.env.NODE_ENV === "development") {
|
|
ButtonRenderer.enableHotReload();
|
|
}
|