import type { KbxComponentManifestEntry } from '@kbx/contracts'

// v55 compatibility-version: '1.2.0' — KbxExcelImport six-stage baseline before v56 focus lifecycle hardening.
export const kbxComponentManifest: KbxComponentManifestEntry[] = [
  { name: 'KbxButton', category: 'primitive', purpose: '표준 업무 명령 버튼', owner: 'KBX', version: '1.0.0' },
  { name: 'KbxTextField', category: 'primitive', purpose: '표준 문자열 입력', owner: 'KBX', version:'1.1.0' },
  { name: 'KbxDateField', category: 'primitive', purpose: '키보드 직접입력을 포함한 날짜 입력', owner: 'KBX', version: '1.1.0' },
  { name: 'KbxLookup', category: 'business', purpose: '비동기 race/error 복구와 코드/명칭 기반 업무 엔터티 선택', keyboard: ['F2', 'Enter', 'Esc'], owner: 'KBX', version: '1.4.0' },
  { name: 'KbxLookupDialog', category: 'business', purpose: 'Provider 오류·Empty·Pagination·Keyboard 선택을 표준화한 Lookup Dialog', keyboard: ['ArrowUp', 'ArrowDown', 'Enter', 'Esc'], owner: 'KBX', version: '1.1.0' },
  { name: 'KbxSearchPanel', category: 'business', purpose: '조회조건의 고정 배치·상세조건·안전한 사용자별 기본/최근조건 기억', keyboard: ['Enter'], accessibility:['기억옵션 명시','민감 자유검색어 저장 제외 가능'], owner: 'KBX', version: '1.4.0' },
  { name: 'KbxCommandBar', category: 'business', purpose: 'Permission Host·선택·업무상태·Dirty 조건과 표준 Excel 메뉴를 반영해 명령을 고정 배치', keyboard: ['F3', 'F8'], owner: 'KBX', version: '1.4.0' },
  { name: 'KbxDataGrid', category: 'business', purpose: '조회·편집·대량처리용 업무 Grid', keyboard: ['Enter', 'Tab', 'Shift+Tab', 'Ctrl+C', 'Ctrl+V', 'F2'], owner: 'KBX', version: '1.6.0' },
  { name: 'KbxFormSection', category: 'business', purpose: 'Token 기반 Section heading·description·action 영역을 제공하는 Master/Transaction 입력 Section', owner: 'KBX', version: '1.1.0' },
  { name: 'KbxFormGrid', category: 'business', purpose: 'Desktop 2-column·좁은 화면 1-column 전환을 표준화하는 Form layout', owner:'KBX', version:'1.0.0' },
  { name: 'KbxFormSpan', category: 'business', purpose: '주소·비고 등 관계상 넓게 보여야 하는 Field의 명시적 full-span layout', owner:'KBX', version:'1.0.0' },
  { name: 'KbxValidationSummary', category: 'business', purpose: '저장 실패 입력 오류의 요약 및 이동', owner: 'KBX', version: '1.0.1' },
  { name: 'KbxStatus', category: 'business', purpose: 'Domain 상태를 일관된 semantic 상태로 표시', owner: 'KBX', version: '1.1.0' },
  { name: 'KbxHelpPanel', category: 'business', purpose: '화면 목적·사용순서·단축키·주의사항 도움말', owner: 'KBX', version: '1.0.0' },
  { name: 'KbxListPage', category: 'template', purpose: '조회 전·조회·재조회·Empty/Error 복구와 오류별 Retry 가능 여부·Search·Quick Filter·Grid·Summary를 고정한 조회형 표준 화면', owner: 'KBX', version: '1.9.0' },
  { name: 'KbxTransactionPage', category: 'template', purpose: 'Header/Detail·Context·Lifecycle·Summary·Actionable Problem과 오류별 Retry 가능 여부를 결합한 거래형 표준 화면', owner: 'KBX', version: '1.8.0' },
  { name: 'KbxMasterPage', category: 'template', purpose: '조회 전 상태·목록/상세·Tabs·Context·Dirty/Conflict/Audit·Actionable Problem과 오류별 Retry 가능 여부를 결합한 기준정보 표준 화면', owner: 'KBX', version: '1.8.0' },
  { name: 'KbxMasterDetailPage', category: 'template', purpose: '조회 전·재조회 Context와 Actionable Problem을 보존하며 Master·Detail·이력의 제목·건수·영역 Action까지 표준화한 탐색 화면', owner: 'KBX', version: '1.9.0' },
  { name: 'KbxWmsMobilePage', category: 'wms', purpose: 'Template/Permission/Network/Loading·Error Recovery·Retry 가능 여부와 입력 차단 시 Action footer 억제를 포함한 PDA·Scanner 현장 작업 Shell', owner: 'KBX', version: '1.8.0' },
  { name: 'KbxBarcodeCapture', category: 'wms', purpose: 'Keyboard-wedge/Camera/수동 입력과 bounded buffer·짧은 중복 debounce를 표준화', keyboard: ['Enter','Esc'], owner: 'KBX', version: '1.1.0' },
  { name: 'KbxNetworkIndicator', category: 'wms', purpose: '현장 네트워크 및 대기 Command 상태 표시', owner: 'KBX', version: '1.0.0' },
  { name: 'KbxWmsActionButton', category: 'wms', purpose: '장갑/터치 환경용 주요 업무 CTA', owner: 'KBX', version: '1.1.0' },
  { name: 'KbxExcelMenu', category: 'business', purpose: 'Arrow/Esc/Focus 복구를 포함한 Excel 다운로드·양식·업로드·붙여넣기·이력 표준 메뉴', keyboard:['ArrowUp','ArrowDown','Home','End','Esc'], owner: 'KBX', version: '1.1.0' },
  { name: 'KbxExcelImport', category: 'business', purpose: '파일 preflight·1:1 매핑·검증·미리보기·반영·결과 6단계, 단계 Focus 이동, 오류 탐색·부분실패 복구를 포함한 Excel Import 흐름', keyboard:['Tab','Shift+Tab'], owner: 'KBX', version: '1.3.0' },
  { name: 'KbxJobProgress', category: 'business', purpose: 'Hangfire 장시간 작업 진행상태 표시', owner: 'KBX', version: '1.0.0' },
  { name: 'KbxImportPage', category: 'template', purpose: 'Progress·Context·Import Content·Result·Actionable Problem·오류별 Retry 가능 여부를 고정한 Excel Import 표준 화면', owner: 'KBX', version: '1.6.0' },
  { name: 'KbxExceptionCenter', category: 'business', purpose: '예외 요약·목록·상세·안전한 후속 Action을 결합한 운영 컴포넌트', owner: 'KBX', version: '1.0.0' },
  { name: 'KbxExceptionSummary', category: 'business', purpose: '업무 예외 유형별 건수와 빠른 필터', owner: 'KBX', version: '1.0.1' },
  { name: 'KbxExceptionDetailDrawer', category: 'business', purpose: '표준 Drawer·Permission Host로 예외 원인·대상·후속 Action을 안전하게 처리', keyboard: ['Esc'], owner: 'KBX', version: '1.1.0' },
  { name: 'KbxWorkQueuePage', category: 'template', purpose: 'Queue 제목·설명·전체 건수·표준 Action을 손실 없이 전달하고 예외 업무 처리·실패 복구를 우선하는 Queue 호환 화면', owner: 'KBX', version: '1.7.0' },
  { name: 'KbxReconcilePage', category: 'template', purpose: 'Expected/Actual/Difference·Resolution·Audit·Actionable Problem·오류별 Retry 가능 여부 기반 정합성 대사 화면', owner: 'KBX', version: '1.7.0' },
  { name: 'KbxUtilityRail', category: 'business', purpose: '도움말·AI 오류복구·사용자 제안을 동일한 우측 보조영역에 통합', keyboard: ['Esc'], owner: 'KBX', version: '1.2.0' },
  { name: 'KbxAiAssistant', category: 'business', purpose: 'Capability/Permission guard와 오류 재질문을 포함한 현재 화면 기반 AI 보조', owner: 'KBX', version: '1.1.0' },
  { name: 'KbxUserSuggestionPanel', category: 'business', purpose: '현재 화면 맥락을 포함한 저마찰 사용자 개선 제안', owner: 'KBX', version: '1.0.0' },
  { name: 'KbxRuntimeBanner', category: 'business', purpose: '장애·읽기전용·오프라인 등 현재 운영모드를 화면 상단에 명확히 표시', owner: 'KBX', version: '1.0.0' },
  { name: 'KbxProblemFeedback', category: 'business', purpose: '업무규칙·권한·검증·외부연계·시스템 Problem을 다음 행동과 함께 인라인 표시', accessibility:['색상 외 문제 유형 텍스트','검증 오류 요약','참조번호','재시도/닫기 명시적 Action'], owner:'KBX', version:'1.1.0' },
  { name: 'KbxFreshnessIndicator', category: 'business', purpose: '조회 데이터의 관측시각과 stale 여부를 표시하고 재조회를 제공', owner: 'KBX', version: '1.0.0' },
  { name: 'KbxConflictResolver', category: 'business', purpose: '낙관적 동시성 충돌 시 내 화면과 최신 값을 비교하고 안전하게 다시 읽기', owner: 'KBX', version: '1.0.0' },
  { name: 'KbxOperationCenter', category: 'business', purpose: 'Excel·대량처리·연계 등 장시간 작업의 진행률·결과와 Home에서 지정한 대상 작업 Focus를 지속적으로 표시', accessibility:['active operation focus','aria-current'], owner: 'KBX', version: '1.1.0' },
  { name: 'KbxNotificationCenter', category: 'business', purpose: '완료·부분실패·운영 알림을 비차단 방식으로 제공하고 Home 대상 알림을 직접 Focus', accessibility:['active notification focus','aria-current'], owner: 'KBX', version: '1.1.0' },
  { name: 'KbxRecordLifecycle', category: 'business', purpose: 'Version·Workflow·Conflict·Audit를 하나의 재사용 가능한 레코드 생명주기 영역으로 통합', owner:'KBX', version:'1.0.0' },
  { name: 'KbxRecordNavigator', category: 'business', purpose: 'T02 목록-상세 화면에서 현재 위치와 이전·다음 레코드 이동을 표준화', keyboard:['Tab','Shift+Tab'], accessibility:['현재 위치 텍스트','disabled 이동경계','focus-visible'], owner:'KBX', version:'1.0.0' },
  { name: 'KbxWorkflowBar', category: 'business', purpose: 'Permission Host를 반영해 현재 업무상태·표준 상태흐름·다음 가능 작업·허용 전이를 한 위치에서 표현', owner: 'KBX', version: '1.2.0' },
  { name: 'KbxGlobalHeader', category: 'shell', purpose: '제품·실제 Module Selector·메뉴검색·운영알림·사용자 Action을 고정 배치하는 전역 Header', keyboard: ['Ctrl+K'], owner: 'KBX', version: '1.4.0' },
  { name: 'KbxSideNavigation', category: 'shell', purpose: 'Header와 동기화된 모듈 전환·검색·즐겨찾기·최근메뉴·2단계 업무메뉴 탐색', owner: 'KBX', version: '1.3.1' },
  { name: 'KbxWorkspaceTabs', category: 'shell', purpose: '키보드 roving focus·Dirty·Pin·안전한 세션 복원 표시·Overflow를 가진 다중 업무 Workspace Tab', keyboard:['ArrowLeft','ArrowRight','Home','End'], owner: 'KBX', version: '1.3.0' },
  { name: 'KbxMenuSearch', category: 'shell', purpose: '즐겨찾기·최근업무 우선순위와 메뉴명·화면코드·업무 키워드를 결합하고 Focus를 복원하는 메뉴검색', keyboard: ['ArrowUp', 'ArrowDown', 'Enter', 'Esc'], owner: 'KBX', version: '1.3.0' },
  { name: 'KbxApplicationShell', category: 'shell', purpose: 'Global Header·Module Navigation·Workspace Tabs·Skip Navigation·업무영역과 사용자 Action 전달을 통합하는 Application Shell', owner: 'KBX', version: '1.6.0' },
  { name: 'KbxUnsavedChangesDialog', category: 'shell', purpose: 'Workspace 이동·종료 시 미저장 변경의 유지·폐기·저장후이동을 표준화', keyboard: ['Esc', 'Tab', 'Shift+Tab'], owner: 'KBX', version: '1.1.0' },

  { name: 'KbxInput', category: 'primitive', purpose: '표준 문자열 입력의 canonical API', allowedUse:['업무 문자열 입력'], forbiddenUse:['숫자·금액·수량 입력'], accessibility:['명시적 label 연결','error aria-describedby','focus-visible'], owner:'KBX', version:'1.2.0' },
  { name: 'KbxNumberField', category: 'primitive', purpose: '숫자 입력·표시 형식을 분리한 공통 숫자 입력', allowedUse:['integer','decimal'], forbiddenUse:['금액 의미를 직접 표현'], accessibility:['label','aria-invalid'], owner:'KBX', version:'1.1.0' },
  { name: 'KbxMoneyField', category: 'business', purpose: '통화·정밀도·음수정책을 포함한 금액 입력', owner:'KBX', version:'1.1.0' },
  { name: 'KbxQuantityField', category: 'business', purpose: '단위·가용수량을 포함한 업무 수량 입력', owner:'KBX', version:'1.1.0' },
  { name: 'KbxDateRange', category: 'business', purpose: 'ERP 조회용 시작일·종료일 범위 입력', keyboard:['Tab','Shift+Tab'], owner:'KBX', version:'1.1.0' },
  { name: 'KbxSelect', category: 'primitive', purpose: '짧고 고정된 Enum 선택', forbiddenUse:['대량 품목·거래처 선택'], owner:'KBX', version:'1.1.0' },
  { name: 'KbxPageHeader', category: 'business', purpose: '화면명·경로·Utility 진입점의 고정 배치', owner:'KBX', version:'1.1.0' },
  { name: 'KbxBulkActionBar', category: 'business', purpose: 'Permission Host와 선택 건수를 반영한 대량 업무 Action의 공통 표현', owner:'KBX', version:'1.1.0' },
  { name: 'KbxDialog', category: 'primitive', purpose: '위험확정·짧은 Lookup·사유입력용 제한적 Modal · 닫힘 후 호출 지점 Focus 복원', keyboard:['Esc'], owner:'KBX', version:'1.1.0' },
  { name: 'KbxDrawer', category: 'primitive', purpose: '조회맥락을 유지하는 상세·Audit·Help 보조영역 · 닫힘 후 호출 지점 Focus 복원', keyboard:['Esc'], owner:'KBX', version:'1.1.0' },
  { name: 'KbxToast', category: 'business', purpose: '시간이 지나도 해결이 필요하지 않은 성공·정보 Feedback', accessibility:['aria-live'], owner:'KBX', version:'1.0.0' },
  { name: 'KbxConfirm', category: 'business', purpose: '위험 수준과 업무 결과를 설명하는 확인 UX', keyboard:['Esc'], owner:'KBX', version:'1.0.0' },
  { name: 'KbxAuditTrail', category: 'business', purpose: '사용자 관점의 변경 전·후·행위자·사유 이력 표시', owner:'KBX', version:'1.0.0' },
  { name: 'KbxProposalPanel', category: 'business', purpose: 'Permission·Server validation 상태를 확인한 뒤 AI 변경안을 승인하는 공통 패턴', owner:'KBX', version:'1.1.0' },
  { name: 'KbxAiPanel', category: 'business', purpose: 'KbxAiAssistant 오류·화면명 계약을 포함하는 표준 명칭 호환 API', owner:'KBX', version:'1.1.0' },
  { name: 'KbxFastEntryPage', category: 'template', purpose: 'Keyboard Guide·Grid 제목/건수/영역 Action·Editable Grid·Validation·Sticky Summary를 고정한 대량 행 입력 화면', keyboard:['Enter','Tab','Shift+Tab','F2','Ctrl+V','Ctrl+D'], owner:'KBX', version:'1.10.0' },
  { name: 'KbxQueuePage', category: 'template', purpose: '예외 우선 Work Summary·Context·Queue·Quick Action과 업무별 Empty/Error·Retry 가능 여부를 통제하는 표준 Template', owner:'KBX', version:'1.9.0' },
  { name: 'KbxMaskedValue', category: 'business', purpose: '민감정보의 기본 마스킹·권한 기반 전체보기 진입점을 표준화', allowedUse:['개인정보·민감 업무값 표시'], forbiddenUse:['권한검증 없이 원문 노출'], accessibility:['전체보기/가리기 명시적 텍스트 Action'], owner:'KBX', version:'1.0.0' },
  { name: 'KbxIntegrationState', category: 'business', purpose: 'Business State와 분리된 외부연계 대기·재시도·완료·실패 상태를 사용자에게 설명', allowedUse:['Outbox/외부 API 연계 상태'], forbiddenUse:['Domain 업무상태 대체'], accessibility:['색상 외 상태 텍스트','상세/재처리 명시적 Action'], owner:'KBX', version:'1.0.0' },
  { name: 'KbxDataProvenance', category: 'business', purpose: '외부 데이터의 출처·기준시각·수신시각·정규화 버전·stale 상태를 재현 가능하게 표시', allowedUse:['KRX/OPENDART/KIS 등 외부 Read Model'], forbiddenUse:['외부 데이터를 Domain Truth로 표현'], accessibility:['색상 외 freshness 상태 텍스트','재조회 명시적 Action'], owner:'KBX', version:'1.0.0' },
  { name: 'KbxCheckbox', category: 'primitive', purpose: 'Boolean 업무값의 키보드·마우스 선택', accessibility:['명시적 label','focus-visible'], owner:'KBX', version:'1.1.0' },
  { name: 'KbxRadio', category: 'primitive', purpose: '소수의 상호배타 선택지 입력', accessibility:['radio label','keyboard native'], owner:'KBX', version:'1.1.0' },
  { name: 'KbxTextarea', category: 'primitive', purpose: '메모·사유 등 다중행 문자열 입력', accessibility:['label','aria-invalid'], owner:'KBX', version:'1.1.0' },
  { name: 'KbxTabs', category: 'primitive', purpose: '상세정보를 동일 화면 맥락에서 분리하는 표준 Tabs', keyboard:['Tab','ArrowLeft','ArrowRight','Home','End'], owner:'KBX', version:'1.1.0' },
  { name: 'KbxBadge', category: 'primitive', purpose: '보조 상태·건수의 짧은 텍스트 표시', accessibility:['색상 외 텍스트'], owner:'KBX', version:'1.0.0' },
  { name: 'KbxTooltip', category: 'primitive', purpose: '짧은 Field·Action 도움말을 Hover와 Focus 모두에서 표시', keyboard:['Tab'], owner:'KBX', version:'1.0.0' },
  { name: 'KbxBarcodeField', category: 'business', purpose: 'Desktop 업무 Form의 바코드 문자열 입력과 정규화', owner:'KBX', version:'1.1.0' },
  { name: 'KbxSectionHeader', category: 'business', purpose: 'Form·Detail Grid Section의 제목·건수·보조 Action 위치 표준화', owner:'KBX', version:'1.0.0' },
  { name: 'KbxQuickFilterBar', category: 'business', purpose: '현재 조회결과 KPI를 즉시 필터로 전환하는 Actionable Summary', owner:'KBX', version:'1.0.0' },
  { name: 'KbxDataState', category: 'business', purpose: 'Idle·Loading·Empty·Error 상태와 복구 Action을 공통 표현', allowedUse:['조회·Grid·비동기 업무 상태'], forbiddenUse:['업무 오류를 Toast로 대체'], accessibility:['aria-busy','error role alert','명시적 복구 Action'], owner:'KBX', version:'1.1.1' },
  { name: 'KbxTemplateStateBoundary', category: 'business', purpose: '표준 Template의 Idle·Loading·Empty·Error·Refreshing 상태와 오류별 Retry 가능 여부를 Context 손실 없이 통합', allowedUse:['T01~T09 주요 업무 Surface'], forbiddenUse:['Domain 업무 오류를 단순 Empty/Error로 축약'], accessibility:['aria-busy','live refresh status','explicit retry','non-retryable error'], owner:'KBX', version:'1.3.0' },
  { name: 'KbxSummaryBar', category: 'business', purpose: '조회건수·선택건수·수량·금액 등 화면 하단 요약의 고정 표현', owner:'KBX', version:'1.0.0' },
  { name: 'KbxHomePage', category: 'shell', purpose: '긴급·미저장·진행·알림 Triage와 복원·즐겨찾기·모듈 업무탐색을 결합한 운영 Home Workbench', keyboard:['Ctrl+K','ArrowLeft','ArrowRight','Home','End'], owner:'KBX', version:'1.12.0' },
  { name: 'KbxAccessDenied', category: 'shell', purpose: '직접 URL 접근을 포함한 Frontend 권한 거부 상태와 화면 정보 비노출 secure-default 복구', owner:'KBX', version:'1.2.0' },
  { name: 'KbxRouteNotFound', category: 'shell', purpose: '등록되지 않은 딥링크를 안전한 메뉴검색/Home 흐름으로 복구', owner:'KBX', version:'1.0.0' },
  { name: 'KbxTemplateContextBar', category: 'template', purpose: 'T01~T08의 조회건수·선택·오류·기준시각 등 업무 문맥을 동일 위치에 표현', owner:'KBX', version:'1.0.0' },
  { name: 'KbxProgressSteps', category: 'business', purpose: 'Import 등 단계형 업무의 현재/완료 단계를 접근성 있게 표현', owner:'KBX', version:'1.0.0' },
]
