import type { Style } from 'leviar'; import type { VariablesOf } from '../types/config'; /** * input 모듈 내부 간격·배치 레이아웃. * `defineInitial` 또는 커맨드의 `layout` 필드로 씬/커맨드별 지정 가능. */ export interface InputLayout { /** * 패널 내부 좌측 패딩 (px). * @default 32 */ panelPaddingLeft?: number; /** * 패널 내부 우측 패딩 (px). * @default 32 */ panelPaddingRight?: number; /** * 패널 내부 상단 패딩 (px). * @default 24 */ panelPaddingTop?: number; /** * 패널 내부 하단 패딩 (px). * @default 24 */ panelPaddingBottom?: number; /** * 레이블과 입력 텍스트 사이 간격 (px). * @default 12 */ labelInputGap?: number; /** * 입력 영역과 버튼 사이 간격 (px). * @default 20 */ inputButtonGap?: number; /** * 버튼 간 가로 간격 (px). * @default 8 */ buttonGap?: number; /** * 버튼 내부 좌측 패딩 (px). * @default 20 */ buttonPaddingLeft?: number; /** * 버튼 내부 우측 패딩 (px). * @default 20 */ buttonPaddingRight?: number; /** * 버튼 내부 상단 패딩 (px). * @default 8 */ buttonPaddingTop?: number; /** * 버튼 내부 하단 패딩 (px). * @default 8 */ buttonPaddingBottom?: number; } /** * 입력 완료 버튼 정의. * choice/dialogBox의 버튼 방식과 동일하게 상세 디자인 가능. */ export interface InputButton { /** 버튼에 표시될 텍스트 */ text: string; /** * true이면 취소 버튼으로 동작합니다. * 클릭 시 입력 내용을 변수에 저장하지 않고 커맨드를 종료합니다. * @default false */ cancel?: boolean; /** 버튼 배경 스타일 오버라이드 */ style?: Partial