sh-ui-cli 0.64.1 → 0.64.2

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,18 @@
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.2",
7
+ "date": "2026-05-08",
8
+ "title": "patch — llms summary 13건 정확성 audit + Base UI render-prop 함정 일괄 명시",
9
+ "type": "patch",
10
+ "highlights": [
11
+ "**summary 사실관계 정정 5건** — `radio` 의 'RadioGroupItem' (실제는 `Radio + RadioGroup`), `toast` 의 'useToast 훅 + ToastProvider' (실제는 `toast()` 함수 + `<Toaster />`, sonner-style), `textarea` 의 'autoResize' (실제 prop 없음), `cn` 의 'tailwind-merge 미사용' (tailwind 변종은 사용함), `pagination` 의 dot/축약 표기. AI 가 헛 import 하던 회귀 차단.",
12
+ "**`render` prop 함정 일괄 명시 (6건)** — popover / tooltip / dropdown-menu / accordion / date-picker / combobox 의 Trigger·Close 가 자체로 `<button>` 을 렌더한다는 점 + 자식 button 중첩 대신 Base UI 의 `render` prop 으로 슬롯하는 패턴을 summary 에 박음. (`<PopoverClose render={<Button>닫기</Button>} />`). v0.64.1 의 dialog/select 노트와 동일 톤으로 통일.",
13
+ "**exports 명시 보강 (8건)** — popover / tooltip / dropdown-menu / context-menu / menubar / accordion / date-picker / combobox 의 실제 export 이름을 summary 에 펼쳐 적음. AI 가 namespace attach (`Popover.Trigger` 등) 환각으로 import 하던 문제 해소."
14
+ ],
15
+ "url": "https://github.com/sanghyeonKim0201/sh-ui/releases/tag/v0.64.2"
16
+ },
5
17
  {
6
18
  "version": "0.64.1",
7
19
  "date": "2026-05-08",
@@ -5,32 +5,32 @@
5
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
- "textarea": "여러 행 텍스트 입력 — rows, autoResize.",
8
+ "textarea": "여러 행 텍스트 입력 — rows. autoResize 같은 추가 prop 없음.",
9
9
  "label": "폼 레이블 — htmlFor로 입력과 연결.",
10
10
  "checkbox": "체크박스 — indeterminate 지원 (Base UI).",
11
- "radio": "라디오 그룹 — RadioGroup + RadioGroupItem (Base UI).",
11
+ "radio": "라디오 그룹 — Radio (단일 선택지) + RadioGroup (컨테이너) (Base UI). `RadioGroupItem` 이름 아님. 단일 즉시 적용은 Switch, 다중은 Checkbox 권장.",
12
12
  "switch": "토글 스위치 — controlled/uncontrolled 모두 지원 (Base UI).",
13
13
  "toggle": "단일 토글 / 토글 그룹 — pressed 상태 (Base UI).",
14
14
  "slider": "수평 슬라이더 — 단일/범위 값, step.",
15
15
  "select": "네이티브 대체 셀렉트 — separate exports: Select / SelectTrigger / SelectValue / SelectContent / SelectGroup / SelectLabel / SelectItem / SelectSeparator (Base UI). MultiSelect 변형 동봉. SelectTrigger 는 그 자체로 button 이라 자식 button 중첩 금지 — 다른 엘리먼트로 바꾸려면 Base UI 의 `render` prop 사용.",
16
- "combobox": "검색 가능 셀렉트 — 자동 필터링, 키보드 내비 (Base UI).",
16
+ "combobox": "검색 가능 셀렉트 — separate exports: Combobox / ComboboxTrigger / ComboboxClear / ComboboxValue / ComboboxIcon / ComboboxInput / ComboboxContent / ComboboxList / ComboboxGroup / ComboboxChips (Base UI). 자동 필터링·키보드 내비. ComboboxTrigger·ComboboxClear 는 자체로 `<button>` — 자식 button 중첩 금지, 다른 엘리먼트로 슬롯하려면 Base UI 의 `render` prop 사용.",
17
17
  "color-picker": "색상 선택 — hex/rgb, 프리셋 팔레트.",
18
- "date-picker": "날짜 선택 — 캘린더 팝업 (Base UI).",
18
+ "date-picker": "날짜 선택 — separate exports: DatePicker / DatePickerTrigger / DatePickerContent / DatePickerCalendar / DatePickerFooter / DateRangePicker + useDatePicker 훅 (Base UI). DatePickerTrigger 는 자체로 `<button>` — 다른 엘리먼트로 슬롯하려면 `render` prop 사용.",
19
19
  "file-upload": "파일 업로드 — 드롭존, 다중 파일, 진행률.",
20
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
- "popover": "floating 팝오버 — 트리거 기준 위치 (Base UI).",
22
- "tooltip": "짧은 힌트 — hover/focus 표시, delay/closeDelay (Base UI).",
23
- "toast": "임시 알림 — useToast + ToastProvider. aria-live 자동.",
24
- "dropdown-menu": "드롭다운 메뉴 — compound, sub-menu 지원 (Base UI).",
25
- "context-menu": "우클릭 컨텍스트 메뉴 — DropdownMenu와 같은 구조 (Base UI).",
26
- "menubar": "수평 메뉴바 — dropdown-menu 위에 구성 (Base UI).",
21
+ "popover": "floating 팝오버 — separate exports: Popover / PopoverTrigger / PopoverClose / PopoverContent / PopoverTitle / PopoverDescription (Base UI). PopoverTrigger·PopoverClose 는 자체로 `<button>` — 자식으로 button 중첩 금지, 다른 엘리먼트로 슬롯하려면 `render` prop 사용.",
22
+ "tooltip": "짧은 힌트 — separate exports: TooltipProvider (앱 루트에 한 번 두어 delay 공유) / Tooltip / TooltipTrigger / TooltipContent (Base UI). hover/focus 표시, delay/closeDelay. TooltipTrigger 는 임의 엘리먼트를 트리거로 슬롯하는 용도라 Button 등과 결합하려면 `render` prop 사용.",
23
+ "toast": "임시 알림 — `toast()` 함수 호출 + `<Toaster />` 컴포넌트 (sonner-style). useToast 훅·ToastProvider 아님. aria-live 자동.",
24
+ "dropdown-menu": "드롭다운 메뉴 — separate exports: DropdownMenu / DropdownMenuTrigger / DropdownMenuContent / DropdownMenuItem / DropdownMenuCheckboxItem / DropdownMenuRadioGroup / DropdownMenuRadioItem / DropdownMenuGroup / DropdownMenuLabel / DropdownMenuSeparator / DropdownMenuSub / DropdownMenuSubTrigger / DropdownMenuSubContent (Base UI). DropdownMenuTrigger·SubTrigger 는 자체로 `<button>` — 자식 button 중첩 금지, 다른 엘리먼트로 슬롯하려면 `render` prop 사용.",
25
+ "context-menu": "우클릭 컨텍스트 메뉴 — DropdownMenu 동일 export 패턴 (`Context-` 접두사: ContextMenu / ContextMenuTrigger / ContextMenuContent / ContextMenuItem 등). ContextMenuTrigger 는 임의 엘리먼트를 우클릭 수신 영역으로 지정하는 용도라 자체가 button 은 아니지만, 자식 슬롯이 필요하면 `render` prop 사용.",
26
+ "menubar": "수평 메뉴바 — Menubar 단일 export. 내부에 DropdownMenu 들을 나란히 배치하는 컨테이너로, 좌우 화살표로 메뉴 간 이동 (Base UI).",
27
27
  "tabs": "탭 — separate exports: Tabs / TabsList / TabsTrigger / TabsContent / TabsIndicator (Base UI). dot syntax(`Tabs.List`) 아님.",
28
- "accordion": "펼침/접힘 아코디언 — single/multiple (Base UI).",
28
+ "accordion": "펼침/접힘 아코디언 — separate exports: Accordion / AccordionItem / AccordionTrigger / AccordionContent (Base UI). single/multiple 모드. AccordionTrigger 는 자체로 `<button>` — 다른 엘리먼트로 슬롯하려면 `render` prop 사용.",
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
32
  "breadcrumb": "경로 내비게이션 — separate exports: Breadcrumb / BreadcrumbList / BreadcrumbItem / BreadcrumbLink / BreadcrumbPage / BreadcrumbSeparator / BreadcrumbEllipsis. dot syntax 아님. aria-current 자동.",
33
- "pagination": "페이지 단위 내비게이션 — compound (PaginationContent/Item/Link/Previous/Next/Ellipsis). getPaginationRange 유틸 동봉. aria-current 자동.",
33
+ "pagination": "페이지 단위 내비게이션 — separate exports: Pagination / PaginationContent / PaginationItem / PaginationLink / PaginationPrevious / PaginationNext / PaginationEllipsis. getPaginationRange 유틸 동봉. aria-current 자동.",
34
34
  "avatar": "프로필 아바타 — 이미지 fallback → initials (Base UI).",
35
35
  "badge": "상태 뱃지 — variant, size.",
36
36
  "progress": "선형 진행률 — value 0~100, indeterminate.",
@@ -48,7 +48,7 @@
48
48
  "focus-ring": "공용 포커스 링 스타일 — focus-ring.css.",
49
49
  "z-index": "z-index 레이어 토큰 — z-index.css.",
50
50
  "animations": "공용 애니메이션 키프레임 — animations.css.",
51
- "cn": "className 머지 유틸 (tailwind-merge 미사용, 순수 concat).",
51
+ "cn": "className 합성 헬퍼. plain 변종(`cn.ts`)은 순수 concat, tailwind 변종(`cn.tailwind.ts`)은 clsx + tailwind-merge utility 충돌 자동 머지 (`cn('bg-red-500', 'bg-blue-500')` → `'bg-blue-500'`).",
52
52
  "use-media-query": "미디어 쿼리 매칭 훅.",
53
53
  "use-active-section": "스크롤 위치로 현재 섹션 감지 훅."
54
54
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sh-ui-cli",
3
- "version": "0.64.1",
3
+ "version": "0.64.2",
4
4
  "description": "sh-ui CLI — 프로젝트 스캐폴드(create) + 컴포넌트 추가(add/list/remove) + IDE-내 AI용 MCP 서버",
5
5
  "license": "MIT",
6
6
  "repository": {