@baneung-pack/ui

Versions

바능 디자인 시스템 패키지의 릴리스 히스토리. 첫 출시부터 현재까지 각 버전에서 어떤 것들이 추가/변경됐는지 정리.

버전 표기: 빨강 = MAJOR (호환성 깨짐) · 회색 = MINOR (기능 추가) · 외곽선 = PATCH (버그 수정/문서).

@baneung-pack/ui

현재: v1.0.10

npm

v1.0.10

PATCH

README 라이선스 배지 Apache-2.0으로 통일 (코드 변경 없음)

  • README의 MIT 배지·푸터를 Apache-2.0으로 교체
  • npmjs.com 페이지에 노출되는 라이선스 표기 일관성

v1.0.9

PATCH

라이선스를 Apache-2.0으로 명시

  • package.json#license: "Apache-2.0" 추가
  • 패키지 루트에 LICENSE 파일 (Apache-2.0 전문) 동봉
  • npmjs.com 페이지에 라이선스 표시됨

v1.0.8

PATCH

Select 키보드 네비게이션 — Dialog/Drawer/Sheet 등 popup 안에서도 ↑↓ 동작

  • Popover.Content가 portal로 body에 렌더 → 부모 FocusScope가 trigger로 포커스 되돌리던 문제
  • 다단계 강제 포커스 — 즉시 + rAF + setTimeout 3번 호출로 race 커버
  • 키 이벤트 캡처 fallback — Input이 비활성 상태일 때 포커스 옮기고 키 이벤트 재dispatch

v1.0.7

PATCH

Select 키보드 네비게이션 수정 — searchable=false에서도 ↑↓·Enter 동작

  • cmdk + Radix Popover 조합에서 Popover.Content가 자기 자신에게 포커스를 잡아 키 이벤트가 cmdk에 전달되지 않던 문제
  • CommandInput을 항상 DOM에 유지(searchable=false일 땐 sr-only) → 키 이벤트 캐처 역할
  • Popover.Content.onOpenAutoFocus에서 input으로 포커스 위임
  • shouldFilter={searchable}로 비검색 모드는 필터링 비활성화
  • 신규 키보드 네비게이션 테스트 2개 (검색/비검색 양쪽)

v1.0.6

PATCH

'use client' 주입을 React/Radix 사용 파일에만 선택적으로 적용 (1.0.5 회귀 수정)

  • 1.0.5에서 cn 같은 순수 유틸리티까지 client-only가 되어 'Attempted to call cn() from the server' 에러 발생
  • react / react-dom / @radix-ui / @tanstack/react-* / sonner / lucide-react / cmdk / vaul import가 있는 파일에만 주입
  • 서버 컴포넌트에서 cn, 타입 등 직접 호출 가능

v1.0.5

PATCH

Next.js App Router (RSC) 호환 — 빌드 출력물에 'use client' 디렉티브 주입 (1.0.6에서 회귀 수정)

  • 대부분 컴포넌트가 Radix UI 기반(내부 hook) 또는 자체 hook 사용 → 서버 컴포넌트에서 직접 import 시 런타임 오류 발생하던 문제 해결
  • tsup onSuccess에서 dist 출력물 모든 .js / .cjs 파일 최상단에 자동 주입
  • 단, 무차별 주입으로 cn 유틸리티가 깨지는 문제가 있어 1.0.6에서 선택적 주입으로 보강

v1.0.4

PATCH

README "CSS 격리 (Cascade Layers)" 섹션을 실전 검증 기반으로 재작성

  • 패턴 A: 소비자가 본인 글로벌 CSS를 @layer app으로 감싸 라이브러리 override
  • 패턴 B (권장): 소비자가 Tailwind를 함께 쓸 때 preflight 제외 import해 preflight↔utility 충돌 회피
  • 데모 사이트(apps/docs)도 패턴 B로 적용 검증 완료

v1.0.3

PATCH

README "CSS 격리" 섹션 보강 — layer 등록 시점 + import 순서 명시

  • CSS Cascade Layer는 처음 등록된 시점의 위치가 우선순위를 결정
  • 두 시나리오(소비자 override / 라이브러리 강제 우선) 각각의 import + layer 선언 패턴 예시

v1.0.2

PATCH

CSS Cascade Layers로 스타일 격리 (@layer baneung)

  • 라이브러리 모든 스타일을 @layer baneung 안에 wrap
  • 소비자 글로벌 CSS의 의도치 않은 override 문제 해결
  • README에 데모 사이트 링크 추가

v1.0.1

PATCH

npm 페이지용 README 추가 (코드 변경 없음)

  • 각 패키지에 설치/사용법/컴포넌트 목록 README 추가
  • npmjs.com에 표시될 페이지 콘텐츠

v1.0.0

MAJOR

초기 출시 — 58개 React 컴포넌트 (Radix UI 기반)

  • Foundation: Typography · Separator · AspectRatio · Skeleton · Spinner · Empty · Avatar · Badge · Kbd · Label
  • Buttons & Toggles: Button(asChild·loading·variants) · ButtonGroup · Toggle · ToggleGroup
  • Inputs: Input(좌/우 adornment) · InputGroup · InputOTP · Textarea · Field · Checkbox(indeterminate) · RadioGroup · Switch · Slider
  • Selection: Select(single/multi/searchable) · NativeSelect · Combobox · Command · Calendar · DatePicker
  • Layout: Card · Item · Sidebar · Resizable · ScrollArea · Direction
  • Navigation: Tabs · Breadcrumb · Pagination · NavigationMenu · Menubar
  • Overlay: Dialog · AlertDialog · Drawer · Sheet · Popover · HoverCard · Tooltip · DropdownMenu · ContextMenu
  • Feedback: Alert · Toast · Sonner · Progress
  • Data Display: Accordion · Collapsible · Table · DataTable · Carousel
  • WCAG 2.1 AA · axe-core 0 violations · 한글 IME 안전 · React 18/19 호환 · 트리쉐이커블 ESM/CJS

@baneung-pack/grid

현재: v0.8.4

npm

v0.8.4

PATCH

autoSize prop 신규 — 부모 컨테이너에 꽉 맞춰 자동 리사이즈

  • 활성 시 outer가 h-full w-full + scroll이 flex-1 min-h-0 → 부모 div 100% 채움
  • 페이지네이션 푸터는 자동으로 바닥에 고정
  • 부모 크기 변경 시 자동 반영 (virtualizer 내장 ResizeObserver)
  • height prop은 무시. 기본 false → 기존 동작 그대로 (backwards-compatible)
  • README의 MIT 배지·푸터를 Apache-2.0으로 함께 교체

v0.8.3

PATCH

라이선스를 Apache-2.0으로 명시

  • package.json#license: "Apache-2.0" 추가
  • 패키지 루트에 LICENSE 파일 (Apache-2.0 전문) 동봉
  • npmjs.com 페이지에 라이선스 표시됨

v0.8.2

PATCH

'use client' 주입을 React/Radix 사용 파일에만 선택적으로 적용 (0.8.1 회귀 수정)

  • 0.8.1의 무차별 주입으로 순수 유틸리티(csv 빌더 등)까지 client-only가 되던 문제 수정
  • react / @radix-ui / @tanstack/react-* import가 있는 파일에만 주입

v0.8.1

PATCH

Next.js App Router (RSC) 호환 — 빌드 출력물에 'use client' 디렉티브 주입 (0.8.2에서 회귀 수정)

  • 가상화/state/ref 전반 사용 → RSC 환경에서 client 필수
  • tsup onSuccess에서 dist 출력물 모든 .js / .cjs 파일 최상단에 자동 주입
  • 무차별 주입으로 순수 유틸리티가 깨지는 문제는 0.8.2에서 선택적 주입으로 수정

v0.8.0

MINOR

CSV 다운로드 — GridHandle.exportCsv

  • exportCsv(filename?, options?) — UTF-8 BOM + Excel 호환
  • options.rows로 명시 행만 export (변경분만 / 외부 필터 결과 등)
  • 미지정 시 getSavedData() 사용 (편집 반영, 삭제 제외)
  • 새 helper: buildCsv, downloadCsv (csv.ts)

v0.7.0

MINOR

Filter popover Portal · cell-selection · row add/remove · Delete 키

  • Filter popover: react-dom Portal로 document.body 렌더 → 스크롤 컨테이너에 안 잘림
  • cellSelection: "none" | "single" | "multi" (드래그 사각형 영역 다중 선택)
  • addRow(row, position): "first" | "last" | "above-active" | "below-active"
  • removeSelectedRows() / clearSelectedCells()
  • clearOnDelete: Delete/Backspace로 선택 셀 값 클리어

v0.6.0

MINOR

필터 UX를 Excel/AUIGrid 스타일 popover로 교체

  • 헤더에 funnel 아이콘 → 클릭 시 popover
  • "필터 초기화" + 검색 + "(전체선택)" + 각 값 + "(필드 값 없음)" 체크박스
  • 확인(적용) / 취소(폐기) 버튼
  • 외부 클릭 / Escape로 닫힘 (draft 폐기)

v0.5.0

MINOR

헤더 정렬(sort) + 필터(filter)

  • column.sortable — 헤더 클릭으로 3-state (↕ → ▲ asc → ▼ desc → 해제)
  • column.filterable — 헤더 아래 input (부분 일치, case-insensitive)
  • 값 비교: null 후순위, Date timestamp, number 산술, 그 외 localeCompare(numeric)
  • 트리 모드는 sort skip (hierarchy 보존)

v0.4.1

PATCH

진행률 바 fill 색이 표시되지 않던 문제 수정

  • grid의 @theme inline에 status 컬러(--color-success/danger/warning/info) 매핑 누락
  • bg-success utility가 색을 못 받아 fill 바가 투명했음

v0.4.0

MINOR

빌트인 셀 에디터 (dropdown · date · number) + 렌더러 (progress · date)

  • column.editor: 'text' | 'number' | 'date' | 'dropdown' (네이티브 input)
  • column.renderer: 'progress' (진행률 바) / 'date' (포맷팅)
  • column.options / min / max / dateFormat 필드 추가
  • aria-progressbar / aria-valuenow / combobox role 표준

v0.3.0

MINOR

Tree (계층) 모드

  • tree prop + getChildren으로 중첩 데이터 계층 표시
  • 첫 컬럼에 caret(▶/▼) + 들여쓰기 자동 삽입
  • defaultExpandedIds: 'all' | 'none' | id 배열
  • 가상화·페이지네이션 호환

v0.2.0

MINOR

초기 publish — 가상화 · 페이지네이션 · 인라인 편집 · 행 선택 · ref API

  • 가상화 토글 (virtualized) — @tanstack/react-virtual 기반
  • 내장 페이지네이션 + 외부 페이징 controlled 모드
  • 인라인 편집 (editable: true) + 한글 IME 안전
  • 행 선택 체크박스 (selectable)
  • Imperative API: getSavedData / getChangedData / getDeletedData / deleteSelected / clearSelection / reset
  • @layer baneung에 격리

@baneung-pack/tokens

현재: v1.0.3

npm

v1.0.3

PATCH

라이선스를 Apache-2.0으로 명시

  • package.json#license: "Apache-2.0" 신규 추가 (이전엔 license 필드 누락)
  • 패키지 루트에 LICENSE 파일 (Apache-2.0 전문) 동봉
  • README의 MIT 배지·푸터를 Apache-2.0으로 교체
  • npmjs.com 페이지에 라이선스 표시됨

v1.0.2

PATCH

CSS Cascade Layers로 스타일 격리 (@layer baneung)

  • ui와 같이 @layer baneung에 래핑
  • 데모 사이트 링크 추가

v1.0.1

PATCH

npm 페이지용 README 추가

  • 토큰 카테고리 안내. 코드 변경 없음

v1.0.0

MAJOR

초기 출시 — CSS / JSON / TS 토큰 SSOT

  • 컬러: bg/text/border/focus/status 시맨틱 + neutral/baneungNavy/baneungTeal primitive
  • 라이트/다크 두 세트 — [data-theme="dark"] cascade
  • 타이포(Pretendard Variable) · 스페이싱(4px) · 라디우스(0/2/4) · 모션 · z-index · breakpoint
  • 산출물: tokens.css / tokens.json / tokens.js