FoxInput에 digitsOnly를 둔다. 타이핑·붙여넣기·끌어놓기·IME 어느 경로든 input
이벤트에서 숫자만 남기고, 커서 앞에서 지운 글자 수만큼 커서를 당겨 제자리를
지킨다. 붙여넣기는 따로 받는다 — 브라우저가 maxLength를 붙여넣은 원문에 먼저
적용해 `123-45-67890`의 뒷자리를 잘라 버리기 때문이다. 초기값의 하이픈도 걷는다.
FoxPhoneNumber는 이미 숫자만 받았지만 번호 전체를 한 칸에 붙여넣으면 그 칸
자릿수만 남았다. 붙여넣은 숫자를 세 칸에 나눠 채우고 마지막 칸으로 포커스를 옮긴다.
onlyDigits는 두 컴포넌트가 같이 쓰도록 utils로 뺀다.
가맹몰 관리 모달(사업자등록번호·전화번호·입금계좌번호)과 가맹몰 상세(업체 연락처)에
켜고, 도메인 검증도 숫자만 허용하도록 조인다 — 사업자등록번호는 10자리.
Co-Authored-By: Claude Fable 5.1
토큰 SSOT는 tokens/의 SCSS map 하나다. 여기서 --fox-* 커스텀 프로퍼티(_root)와
토큰 이름 검증 목록(_functions)이 함께 파생되므로 값과 이름이 어긋날 수 없다.
없는 토큰 이름은 @error로 빌드를 실패시켜 하드코딩 금지를 컴파일러가 강제한다.
모든 치수는 rem이며 1rem = 10px(html font-size 62.5%). 단 미디어 쿼리의 rem은
브라우저 기본 크기 기준이라 브레이크포인트만 예외이며, 각 값에 px 환산을 병기했다.
토큰 값은 파이프라인 검증용 임시 플레이스홀더이며 Figma 확정 시 교체한다.
Co-Authored-By: Claude Opus 5