fix: TypeScript 타입 오류 수정 및 설정 페이지 추가

- BOMItem Omit 타입 시그니처 통일 (useTemplateManagement, SectionsTab, ItemMasterContext)
- HeadersInit → Record<string, string> 타입 변경
- Zustand useShallow 마이그레이션 (zustand/react/shallow)
- DataTable, ListPageTemplate 제네릭 타입 제약 추가
- 설정 관리 페이지 추가 (직급, 직책, 휴가정책, 근무일정, 권한)
- HR 관리 페이지 추가 (급여, 휴가)
- 단가관리 페이지 리팩토링

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
byeongcheolryu
2025-12-09 18:07:47 +09:00
parent 48dbba0e5f
commit ded0bc2439
98 changed files with 10608 additions and 1204 deletions

View File

@@ -6,11 +6,14 @@ import { XIcon } from "lucide-react";
import { cn } from "./utils";
function Sheet({ ...props }: React.ComponentProps<typeof SheetPrimitive.Root>) {
// modal={false}: aria-hidden이 sibling 요소에 설정되지 않도록 함
// 사이드바 용도로는 modal 모드가 필요하지 않음 (focus trap 불필요)
// 이렇게 하면 Select, Dialog 등 다른 Radix 컴포넌트와 충돌 방지
return <SheetPrimitive.Root data-slot="sheet" modal={false} {...props} />;
function Sheet({
modal = true, // 기본값을 true로 변경 (딤 처리 및 포커스 트랩 활성화)
...props
}: React.ComponentProps<typeof SheetPrimitive.Root> & { modal?: boolean }) {
// modal={true}: 딤 처리, 포커스 트랩, ESC 키로 닫기 등 모달 동작 활성화
// modal={false}: aria-hidden이 sibling 요소에 설정되지 않음, 다른 Radix 컴포넌트와 충돌 방지
// 모바일 사이드바에서는 modal={true}가 필요 (딤 클릭으로 닫기 기능)
return <SheetPrimitive.Root data-slot="sheet" modal={modal} {...props} />;
}
function SheetTrigger({