feat(ui,api-client): B4/B5 추출 — @yakcloud/ui + @yakcloud/api-client
@yakcloud/ui (15 모듈, react peer, ds-sdk type-only): - globals.css 3분할(tokens/components/sheet.css; 680px→--sheet-body-max-height) - icons·primitives·controls·states, LineChart 6색 CSS 토큰화(+peakColorToken) - CardSheet/PanelSheets: apiGet 디커플(콘텐츠 prop 주입)·lockPageScroll(container?) 폴백 - decorators(statusMeta 등, ds-sdk enum 소비), getServiceMeta(type, logoBase) 로고 URL-only - 수정: tsconfig jsx:react-jsx, @types/react(-dom), CSS exports 서브패스 @yakcloud/api-client (3 모듈, react peer, ds-sdk type-only): - apiGet/apiSend/apiDownload + ApiClientError, usePoll(SWR·LRU·gen guard·401/403) - /api/v1 고정 훅 제외, 서버코드 유입 0(ApiCode만 ds-sdk에서) 검증: DAG PASS(ui↛api-client, api-client↛서버), 디커플 PASS, tsc --noEmit 통과(양 패키지). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@ -1,4 +1,35 @@
|
||||
// @yakcloud/ui
|
||||
// 디자인시스템·프리미티브: 토큰·인라인SVG·CardSheet·LineChart(토큰색)·getServiceMeta(logoBase). ⛔ api-client 참조 금지.
|
||||
// B1 스켈레톤 — 실제 추출은 후속(scaffold-input.md 판정표 참조).
|
||||
export const __package = "@yakcloud/ui";
|
||||
// @yakcloud/ui — 공개 배럴.
|
||||
// 디자인시스템·프리미티브: 토큰·인라인 SVG·CardSheet/PanelSheets·LineChart(토큰색)·getServiceMeta(logoBase).
|
||||
// ⛔ api-client 참조 금지. ds-sdk 는 import type 만(런타임 의존 아님).
|
||||
// CSS 는 서브패스(./tokens.css, ./components.css, ./sheet.css)로 개별 import.
|
||||
|
||||
// 상수
|
||||
export { DEFAULT_SHEET_WIDTH } from "./constants";
|
||||
|
||||
// 아이콘 (자기완결 SVG)
|
||||
export * from "./icons";
|
||||
|
||||
// 프리미티브 (프레젠테이션)
|
||||
export { Badge, Gauge, Timeline, CodeBlock, C, LineChart } from "./primitives";
|
||||
export type { TimelineItem, ChartSeries } from "./primitives";
|
||||
|
||||
// 컨트롤 (client)
|
||||
export { PillRange, Stepper, Modal } from "./controls";
|
||||
|
||||
// 상태 컴포넌트 (client)
|
||||
export { Skeleton, ErrorState, EmptyState } from "./states";
|
||||
|
||||
// 시트 (client)
|
||||
export { CardSheet, SheetConfirmFooter, SheetHelpButton, lockPageScroll } from "./CardSheet";
|
||||
export { PanelSheets } from "./PanelSheets";
|
||||
export type { PanelSheetDef } from "./PanelSheets";
|
||||
export { useSheet } from "./useSheet";
|
||||
export { usePanelSheets } from "./usePanelSheets";
|
||||
export type { PanelSheetsCtl, PanelSheetCurrent } from "./usePanelSheets";
|
||||
|
||||
// 데코레이터 (ds-sdk enum → BadgeKind)
|
||||
export { statusMeta, deployStatusMeta, serviceStatusMeta } from "./decorators";
|
||||
export type { BadgeKind } from "./decorators";
|
||||
|
||||
// 서비스 메타 (로고 URL·라벨)
|
||||
export { getServiceMeta, getLogoFileName } from "./service-meta";
|
||||
|
||||
Reference in New Issue
Block a user