Featuring Design System

Changelog

RSS

Featuring Design System의 릴리즈 이력과 주요 변경사항을 정리합니다. 전체 버전 태그는 GitHub Releases를 참고해 주세요.

@featuring-corp/data-grid@0.1.5

가상화를 켠 그리드에서 채우기 핸들을 길게 끌면 드래그가 중간에 끊기던 문제를 고칩니다.

가상화 그리드에서 채우기 드래그가 중간에 끊기던 문제

행 가상화(virtualization.rows)를 켠 그리드에서 채우기 핸들을 잡고 아래로 길게 끌면, 어느 순간 미리보기 점선이 그 자리에 멈춘 채 커서를 따라오지 않았습니다.

거기서 손을 떼도 아무것도 채워지지 않았고, 스크롤을 위로 되돌려도 핸들이 다시 나타나지 않았습니다. 다른 셀을 클릭해도 회복되지 않아, 그리드를 다시 마운트하기 전까지 채우기를 쓸 수 없었습니다. 컬럼 가상화(virtualization.columns)를 켜고 오른쪽으로 길게 끄는 경우도 같았습니다.

끊기는 지점은 채우기의 출발 셀이 화면 밖으로 밀려나는 순간이었습니다. 핸들은 출발 범위의 오른쪽 아래 셀 안에 그려지는데, 아래로 끌면 그 셀은 제자리에 있으므로 위로 밀려 올라가고, 가상화 창(overscan, 기본 8행)을 벗어나면 화면에서 제거됩니다. 드래그를 추적하던 이벤트 연결이 그 셀에 매여 있었기 때문에 제스처 한복판에서 함께 끊어졌습니다. 그때 미리보기와 드래그 상태가 정리되지 않은 채 남아 점선이 잔류하고 핸들이 돌아오지 않았습니다.

이제 드래그는 셀이 아니라 포인터를 기준으로 이어집니다. 출발 셀이 화면 밖으로 나가도 미리보기가 커서를 계속 따라오고, 손을 떼면 화면 밖 구간까지 한 번에 채워집니다. 채운 뒤에는 선택이 채운 영역 전체로 확장되고 그 오른쪽 아래에 핸들이 다시 나타납니다. 선택 안쪽으로 되끌어 비우는 역방향 드래그도 같습니다.

0.1.0부터 이 버전 직전까지 모두 해당합니다. 가상화를 쓰지 않는 그리드는 영향이 없습니다. 모든 행이 항상 화면에 있어 출발 셀이 제거될 일이 없기 때문입니다.

함께 바뀐 동작

드래그 도중 그리드 자체가 화면에서 사라지면(예: 그리드를 담은 모달이 닫히는 경우) 채우기가 취소됩니다. 화면에 없는 그리드에 값이 들어가지 않습니다.

공개 API는 바뀌지 않았습니다. 버전만 올리면 됩니다.

@featuring-corp/data-grid@0.1.4

여러 셀을 한 번에 편집할 때 일부 셀의 저장 표시가 내려오지 않고 실행 취소가 멈추던 문제를 고칩니다.

여러 셀을 한 번에 편집하면 일부 셀이 저장 중에서 멈추던 문제

비동기 onCellEdit(Promise 반환)를 쓰는 그리드에서 두 개 이상의 셀을 한 번에 편집하면 — 붙여넣기, 채우기, Cmd/Ctrl+D·R, 범위 지우기 — 일부 셀의 저장 상태가 pending에서 내려오지 않았습니다.

서버 요청은 전부 성공하고 데이터도 정확히 반영되는데 화면의 저장 표시만 남았습니다. 그리고 그 셀은 다시 편집할 수 없고(진행 중인 셀은 편집 진입이 막힙니다), 실행 취소·다시 실행이 그리드 전체에서 멈췄습니다. 멈춘 셀이 하나라도 있으면 canUndo가 false로 유지되기 때문입니다.

몇 개가 걸리는지는 매번 달랐고 하나도 안 걸릴 때도 있었습니다. 경합이었습니다. 셀이 하나뿐인 인라인 편집에서는 발생하지 않았습니다.

원인은 편집 이력을 담는 내부 참조를 렌더 중에 되돌려 쓰고 있던 것입니다. 저장 완료 처리는 이 참조를 읽어 다음 상태를 계산하는데, React가 우선순위가 낮은 업데이트를 건너뛴 채 렌더하면 그 되쓰기가 최신 이력을 한 세대 뒤로 밀어냈습니다. 그 사이에 도착한 저장 완료는 뒤처진 이력을 기준으로 계산되어, 앞서 확정된 셀을 다시 진행 중으로 되살리거나 편집 묶음 자체를 찾지 못해 사라졌습니다.

이제 이력 참조가 유일한 기준이 되고 렌더가 그것을 되돌리지 않습니다. 어떤 순서로 저장이 완료되든 모든 셀이 확정되고, 편집이 실행 취소 이력에 남습니다.

0.1.0부터 이 버전 직전까지 모두 해당합니다. 동기 onCellEdit(Promise를 반환하지 않는 경우)만 쓰는 구성은 영향이 없습니다. 저장 완료가 즉시 처리되어 사이에 끼어들 지점이 없기 때문입니다.

함께 확인해 주세요

증상이 나타났던 그리드에서는 아래도 함께 관찰됐습니다. 이 버전에서 모두 해소됩니다.

  • 멈춘 셀은 더블클릭이나 Enter로도 편집에 들어가지 않습니다.
  • Cmd/Ctrl+Z와 Cmd/Ctrl+Shift+Z가 그리드 전체에서 동작하지 않습니다.
  • 정렬·필터·페이지 이동처럼 행 목록이 바뀌면 남아 있던 저장 표시가 한꺼번에 사라집니다. 이력이 무효화되면서 함께 정리되기 때문입니다.

공개 API는 바뀌지 않았습니다. 버전만 올리면 됩니다.

More Updates

August 13, 2026@featuring-corp/data-grid@0.1.3컬럼을 고정했을 때 선택·복사가 화면에 보이는 순서를 따르도록 좌표계를 통일하고, 활성 셀 가로 추적과 다중 그리드 포커스 문제를 고칩니다.August 11, 2026@featuring-corp/data-grid@0.1.2소비자가 스크롤 박스를 소유한 구성에서 열 가상화와 오버레이가 어긋나던 문제를 고치고, 선택할 수 없는 셀에서 그리드가 포인터를 잡지 않도록 바꿉니다.August 4, 2026@featuring-corp/components@0.1.32TextInput.Text에 variant를 지정할 수 있고, 보조 라벨의 색과 폰트를 CoreTextInput secondaryLabel에 맞춥니다.July 28, 2026@featuring-corp/data-grid@0.1.1배포 CSS 파일명을 .ve.css로 바꿔 Vite 환경에서 vanilla-extract 플러그인이 패키지의 프리컴파일 CSS를 가상모듈로 오인해 빌드가 실패하던 충돌을 제거합니다.July 28, 2026@featuring-corp/charts@0.1.2배포 CSS 파일명을 .ve.css로 바꿔 Vite 환경에서 vanilla-extract 플러그인이 패키지의 프리컴파일 CSS를 가상모듈로 오인해 빌드가 실패하던 충돌을 제거합니다.July 28, 2026@featuring-corp/components@0.1.31배포 CSS 파일명을 .ve.css로 바꿔 Vite 환경에서 vanilla-extract 플러그인이 패키지의 프리컴파일 CSS를 가상모듈로 오인해 빌드가 실패하던 충돌을 제거합니다.July 23, 2026@featuring-corp/components@0.1.30Skeleton.Chip.Root와 Skeleton.Chip.Group를 추가해 chip 로딩 자리표시를 지원합니다.July 22, 2026@featuring-corp/icons@0.1.140.1.13에서 제거됐던 IconMailOutline(system/social)을 복원합니다.July 22, 2026@featuring-corp/components@0.1.29Link의 target=_blank 기본 rel이 noopener로 단순해지고, rel을 직접 지정해 덮어쓸 수 있습니다.July 21, 2026@featuring-corp/icons@0.1.13system/data에 FlowConnectionOutline 아이콘을 추가하고, system/social의 MailOutline 아이콘을 제거합니다.July 21, 2026@featuring-corp/components@0.1.28페이지 버튼에 좌우 padding과 tabular figure를 적용해 여러 자리 페이지 번호에서도 폭이 안정적으로 유지됩니다.July 8, 2026@featuring-corp/icons@0.1.12system에 CategoryOutline·ReelsOutlined 아이콘 2종을 추가하고, 서로 뒤바뀌어 있던 UnlikeFilled·UnlikeOutline 아트워크를 교정합니다.July 1, 2026@featuring-corp/components@0.1.27카테고리 필터·옵션 선택에 사용하는 선택형 레이블 Chip 컴포넌트를 추가합니다. 단일/다중 선택과 선택 상태 기반 자동 스타일 전환, 아바타·제거 버튼 조합을 지원합니다.June 30, 2026@featuring-corp/data-grid@0.1.0편집·선택·클립보드·가상화·그룹/트리·셀 병합을 지원하는 컴파운드 데이터 그리드 패키지가 첫 0.1로 출시됩니다.June 30, 2026@featuring-corp/components@0.1.26Modal·Drawer 오버레이 프로바이더(`Modal.Provider`/`DrawerProvider`/`DrawerGroupProvider`)를 단일 `Overlay.Provider`로 통합·교체합니다.June 19, 2026@featuring-corp/icons@0.1.11system에 Kanban·SortAscending·SortDescending outline 아이콘 3종을 추가하고, ReelsColored 아이콘을 갱신합니다.June 1, 2026@featuring-corp/icons@0.1.10system/ai의 SearchAiGradOutline 아이콘 형상을 다듬습니다.June 1, 2026@featuring-corp/icons@0.1.9system/ai에 SearchAiGradOutline 아이콘을 추가하고, GoogleSheetsColored·ReelsColored 아이콘을 갱신합니다.May 22, 2026@featuring-corp/components@0.1.25NiceModal imperative API와 타입을 추가 노출합니다. `register`, `unregister`, `NiceModalContext` 등으로 string-id 기반 모달 관리와 store 조회를 소비자 코드에서 직접 사용할 수 있습니다.May 21, 2026@featuring-corp/components@0.1.24Popover와 Menu도 Portal, Positioner, Popup primitive를 namespace에 추가로 노출합니다.May 19, 2026@featuring-corp/icons@0.1.8deepGreen 색상 토큰 10단계를 제거하고, semantic 토큰 background-5를 추가합니다.May 19, 2026@featuring-corp/components@0.1.23Tooltip이 내부에서 합쳐놓은 Portal, Positioner, Popup primitive를 namespace에 추가로 노출합니다.May 19, 2026@featuring-corp/icons@0.1.7신규 아이콘 7종을 추가하고, Draggable 아이콘 네이밍을 방향이 드러나도록 정비합니다.May 19, 2026@featuring-corp/icons@0.1.6빌드 산출물과 git 소스가 어긋난 채로 발행돼 0.1.7로 즉시 재발행했습니다. 0.1.7을 사용해 주세요.May 18, 2026@featuring-corp/components@0.1.22CoreTag gray 기본 fill 색상을 더 밝은 회색 토큰으로 조정합니다.May 13, 2026@featuring-corp/components@0.1.21disabled 상태에서 hover/active/focus의 시각 변화가 leak되던 문제를 모든 sprinkles와 직접 셀렉터에서 가드합니다.May 12, 2026@featuring-corp/components@0.1.20$css 프롭의 staticProperties enum을 MDN 38개 페이지로 재검증해 확장합니다. display(list-item/flow-root/table*), overflow(clip), align/justify(start/end/anchor-center), textWrap, overscrollBehavior, touchAction, contain, contentVisibility 등 모던 CSS 속성을 strict union 타입으로 추가합니다.May 12, 2026@featuring-corp/components@0.1.19Base UI Positioner의 --available-* 변수로 popup이 viewport를 넘지 않게 자동 클램프하고, 박스/인터랙티브 컴포넌트는 nowrap 디폴트로 정합하며, Toast \n 보존과 Calendar today+disabled 색상 specificity 충돌도 함께 해결합니다.May 7, 2026@featuring-corp/design-tokens@0.1.1normalize의 `[disabled]`에서 `pointer-events: none`을 제거해 disabled 컨트롤이 Tooltip 트리거로 정상 동작합니다.May 7, 2026@featuring-corp/components@0.1.18TextArea Root/Input compound 분해와 Select.ItemIndicator 제거 두 갈래 breaking과 함께, focusableWhenDisabled 모드 / Field.required ctx 전파 / Item ctx propagation / leaf own override 일괄을 도입합니다.April 30, 2026@featuring-corp/components@0.1.17Checkbox / Radio / Skeleton의 compound 트리를 단일 컴포넌트 + Group 구조로 단순화합니다. 호출 한 줄, 트리 한 단계가 줄어듭니다.April 30, 2026@featuring-corp/components@0.1.16Skeleton에 21개 컴포넌트별 primitive를 추가합니다. size/animation을 컨텍스트로 전파하고 실제 컴포넌트와 시그니처를 맞춰 로딩 → 치환 시 layout shifting 없이 사용할 수 있습니다.April 27, 2026@featuring-corp/charts@0.1.1Tooltip / Legend / Label / Dot에 Chart prefix를 추가해 components 패키지와의 namespace 충돌을 해소합니다.April 27, 2026@featuring-corp/components@0.1.15legacy Core* 모듈의 export 식별자에 Core prefix를 일괄 정리해 신규 컴파운드 namespace와의 충돌을 해소합니다.April 26, 2026@featuring-corp/components@0.1.14CoreCalendar 액션 영역 구분선이 컨테이너를 비집고 나오던 문제를 컨테이너 폭에 맞춥니다.April 24, 2026@featuring-corp/components@0.1.13신규 컴포넌트 3종에 더해 Checkbox.Group select-all, Modal Base UI extend, Radio/Label/Field cascade 정리가 들어갑니다.April 24, 2026@featuring-corp/icons@0.1.5IconReportDataAiFIlled 오타를 IconReportDataAiFilled로 교정하고, 아이콘 generator 자체를 개선합니다.April 23, 2026@featuring-corp/components@0.1.12CoreDropdown/CoreTooltip의 portal containerId 충돌을 차단합니다.April 23, 2026@featuring-corp/components@0.1.11Modal 위에서 CoreCalendar popup이 뒤로 가려지던 회귀를 해소합니다.April 21, 2026@featuring-corp/charts@0.1.0recharts를 얇게 래핑한 차트 프리미티브 패키지가 첫 0.1로 출시됩니다.April 21, 2026@featuring-corp/components@0.1.10Core* 컴포넌트가 legacy/core-*로 이동하고, Tooltip 네임스페이스 충돌이 CoreTooltipUI rename으로 해소됩니다.April 21, 2026@featuring-corp/components@0.1.9Calendar/Dropdown/Menu 등 다수의 신규·마이그레이션 컴파운드 컴포넌트와 layer 평면화·Tag color·Checkbox/Radio Root 브레이킹을 포함합니다.April 21, 2026@featuring-corp/icons@0.1.4fill prop이 디자인 토큰 이름을 직접 받고, size prop이 반응형으로 확장됩니다.March 26, 2026@featuring-corp/icons@0.1.3모든 아이콘 SVG를 Figma 소스 기준으로 재생성합니다.March 20, 2026@featuring-corp/icons@0.1.2video 관련 아이콘을 추가하고 미디어 라이브러리 아이콘 일부를 업데이트합니다.March 16, 2026@featuring-corp/components@0.1.8overlayscrollbars / overlayscrollbars-react가 peerDependency로 분리됩니다. 소비자 앱에서 직접 설치해야 합니다.March 16, 2026@featuring-corp/components@0.1.7overlayscrollbars CSS를 npm 패키지 경로 대신 로컬 파일에서 가져오도록 전환합니다.March 16, 2026@featuring-corp/components@0.1.6rollup nodeExternals에서 overlayscrollbars CSS를 exclude하고, 불필요한 external 항목을 정리합니다.March 16, 2026@featuring-corp/components@0.1.50.1.4에서 누락된 overlayscrollbars CSS import를 복구합니다.March 16, 2026@featuring-corp/components@0.1.4번들 external 처리에서 overlayscrollbars CSS를 제외합니다. 0.1.5에서 누락 회귀를 수정합니다.March 16, 2026@featuring-corp/components@0.1.3상태 표시에 쓰이는 3종 배지 컴파운드 컴포넌트를 추가합니다.March 14, 2026@featuring-corp/components@0.1.2@layer 기반 Cascade Layers와 단일 import Preset이 도입됩니다. !important 없이 소비자 CSS가 오버라이드합니다.March 13, 2026@featuring-corp/components@0.1.1README Usage 예시를 실제 export 형태에 맞춰 교정하고, $css 토큰 참조를 정비합니다.March 13, 2026@featuring-corp/icons@0.1.1CpeOutline, CpvOutline, GlassesOutline 아이콘이 추가됩니다.March 11, 2026@featuring-corp/components@0.1.0Button과 Tag 컴파운드 패턴이 도입되고, $css prop과 docgen 자동 추출이 자리잡습니다.March 11, 2026@featuring-corp/design-tokens@0.1.0Global / Semantic / Color-set 3계층 토큰 시스템이 첫 0.1 라인으로 정렬됩니다.March 11, 2026@featuring-corp/icons@0.1.0System / Service 두 갈래의 아이콘 패키지가 첫 0.1 라인으로 정렬됩니다.