sh-ui-cli 0.64.0 → 0.64.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,6 +2,17 @@
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$description": "sh-ui 릴리즈 노트 단일 소스. docs(React)와 showcase(Flutter)가 함께 읽는다. 새 릴리즈마다 맨 앞에 추가.",
4
4
  "versions": [
5
+ {
6
+ "version": "0.64.1",
7
+ "date": "2026-05-08",
8
+ "title": "patch — llms summary 5종 dot-syntax 정정 + Dialog render-prop 함정 명시",
9
+ "type": "patch",
10
+ "highlights": [
11
+ "**summary 5건 정정 (card / select / dialog / tabs / breadcrumb)** — `compound (Card.Header / ...)` 같이 dot syntax 가 있는 것처럼 적혀 있었지만 실제 구현은 namespace attach 없이 separate export(`CardHeader`, `DialogTitle` 등). MCP `sh_ui_list_components` 와 `apps/docs/public/llms.txt` 가 같은 source 를 읽어 AI 가 잘못된 API 로 코드 생성하던 문제를 차단. card 의 `Body` 도 실제로는 `CardContent` 였던 부분 같이 정정.",
12
+ "**Dialog summary 에 `render` prop 함정 명시** — `DialogTrigger` / `DialogClose` 는 자체로 `<button>` 을 렌더하므로 자식으로 커스텀 Button 을 넣으면 button 중첩(invalid HTML). Base UI 의 `render` prop 으로 슬롯 교체하는 패턴 (`<DialogClose render={<Button>닫기</Button>} />`) 을 summary 에 박아 AI 가 onClick 우회 대신 정석을 사용하도록. SelectTrigger 도 동일 노트."
13
+ ],
14
+ "url": "https://github.com/sanghyeonKim0201/sh-ui/releases/tag/v0.64.1"
15
+ },
5
16
  {
6
17
  "version": "0.64.0",
7
18
  "date": "2026-05-08",
@@ -2,7 +2,7 @@
2
2
  "$description": "React 컴포넌트 summary — llms.txt 생성용. key는 registry.json의 name과 동일.",
3
3
  "summaries": {
4
4
  "button": "기본 버튼 — variant(primary/secondary/ghost/danger/link) + size(sm/md/lg).",
5
- "card": "카드 컨테이너 — compound (Card.Header / Card.Body / Card.Footer / Card.Title / Card.Description).",
5
+ "card": "카드 컨테이너 — separate exports: Card / CardHeader / CardTitle / CardDescription / CardAction / CardContent / CardFooter. dot syntax(`Card.Header`) 아님.",
6
6
  "input": "단일 행 텍스트 입력 — hasError 지원. 같은 모듈에 NumberInput / PhoneInput / BusinessNumberInput 변형 포함. 비밀번호 토글은 InputGroup + InputAdornment 레시피로 조립.",
7
7
  "numeric-input": "슬라이더 동반·토큰 편집기용 컴팩트 숫자 입력 — onChange 즉시 min/max clamp, focus select-all, 단위(px/ms/%/° 등) suffix. 일반 폼 입력은 NumberInput 권장.",
8
8
  "textarea": "여러 행 텍스트 입력 — rows, autoResize.",
@@ -12,24 +12,24 @@
12
12
  "switch": "토글 스위치 — controlled/uncontrolled 모두 지원 (Base UI).",
13
13
  "toggle": "단일 토글 / 토글 그룹 — pressed 상태 (Base UI).",
14
14
  "slider": "수평 슬라이더 — 단일/범위 값, step.",
15
- "select": "네이티브 대체 셀렉트 — compound (Select.Trigger / Select.Content / Select.Item) (Base UI).",
15
+ "select": "네이티브 대체 셀렉트 — separate exports: Select / SelectTrigger / SelectValue / SelectContent / SelectGroup / SelectLabel / SelectItem / SelectSeparator (Base UI). MultiSelect 변형 동봉. SelectTrigger 는 그 자체로 button 이라 자식 button 중첩 금지 — 다른 엘리먼트로 바꾸려면 Base UI 의 `render` prop 사용.",
16
16
  "combobox": "검색 가능 셀렉트 — 자동 필터링, 키보드 내비 (Base UI).",
17
17
  "color-picker": "색상 선택 — hex/rgb, 프리셋 팔레트.",
18
18
  "date-picker": "날짜 선택 — 캘린더 팝업 (Base UI).",
19
19
  "file-upload": "파일 업로드 — 드롭존, 다중 파일, 진행률.",
20
- "dialog": "모달 다이얼로그 — compound (Dialog.Trigger / Dialog.Content / Dialog.Title / Dialog.Description) + 포커스 트랩 (Base UI).",
20
+ "dialog": "모달 다이얼로그 — separate exports: Dialog / DialogTrigger / DialogClose / DialogContent / DialogTitle / DialogDescription / DialogFooter / DialogCloseX (Base UI, 포커스 트랩). DialogTrigger·DialogClose 는 그 자체로 button 을 렌더 — 자식으로 다른 button 을 넣으면 button 중첩(invalid HTML). 다른 엘리먼트(예: 커스텀 Button)로 슬롯하려면 Base UI 의 `render` prop 사용: `<DialogClose render={<Button>닫기</Button>} />`.",
21
21
  "popover": "floating 팝오버 — 트리거 기준 위치 (Base UI).",
22
22
  "tooltip": "짧은 힌트 — hover/focus 표시, delay/closeDelay (Base UI).",
23
23
  "toast": "임시 알림 — useToast 훅 + ToastProvider. aria-live 자동.",
24
24
  "dropdown-menu": "드롭다운 메뉴 — compound, sub-menu 지원 (Base UI).",
25
25
  "context-menu": "우클릭 컨텍스트 메뉴 — DropdownMenu와 같은 구조 (Base UI).",
26
26
  "menubar": "수평 메뉴바 — dropdown-menu 위에 구성 (Base UI).",
27
- "tabs": "탭 — compound (Tabs.List / Tabs.Trigger / Tabs.Content) (Base UI).",
27
+ "tabs": "탭 — separate exports: Tabs / TabsList / TabsTrigger / TabsContent / TabsIndicator (Base UI). dot syntax(`Tabs.List`) 아님.",
28
28
  "accordion": "펼침/접힘 아코디언 — single/multiple (Base UI).",
29
29
  "carousel": "슬라이드 캐러셀 — Embla 기반, autoplay/autoscroll.",
30
30
  "sidebar": "앱 사이드바 — collapsible, SidebarMenu/SidebarGroup 조합.",
31
31
  "header": "앱 헤더 — 로고/네비/액션 compound, 데스크탑 inline / 모바일 drawer 자동 전환. drawer focus trap·ESC·focus restore. HeaderNav value(controlled) / defaultValue+onValueChange(uncontrolled) 로 자식 HeaderItem active 자동 매칭 (aria-current 자동, match 커스터마이즈). HeaderMenu(서브메뉴, 데스크탑 portal dropdown / drawer collapsible) · HeaderNavGroup(섹션 라벨) · HeaderDesktopOnly/HeaderMobileOnly(가시성 토글, drawer 이동 없음). variant(solid/transparent/blur) · stickyHide(prefers-reduced-motion 존중, 컨테이너 스크롤 자동 감지) 정식 지원. backdrop-filter @supports 폴백.",
32
- "breadcrumb": "경로 내비게이션 — compound (Breadcrumb.List/Item/Link/Page/Separator/Ellipsis). aria-current 자동.",
32
+ "breadcrumb": "경로 내비게이션 — separate exports: Breadcrumb / BreadcrumbList / BreadcrumbItem / BreadcrumbLink / BreadcrumbPage / BreadcrumbSeparator / BreadcrumbEllipsis. dot syntax 아님. aria-current 자동.",
33
33
  "pagination": "페이지 단위 내비게이션 — compound (PaginationContent/Item/Link/Previous/Next/Ellipsis). getPaginationRange 유틸 동봉. aria-current 자동.",
34
34
  "avatar": "프로필 아바타 — 이미지 fallback → initials (Base UI).",
35
35
  "badge": "상태 뱃지 — variant, size.",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sh-ui-cli",
3
- "version": "0.64.0",
3
+ "version": "0.64.1",
4
4
  "description": "sh-ui CLI — 프로젝트 스캐폴드(create) + 컴포넌트 추가(add/list/remove) + IDE-내 AI용 MCP 서버",
5
5
  "license": "MIT",
6
6
  "repository": {