@hjmds/design-contracts 1.21.0 → 1.22.0

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.
Files changed (35) hide show
  1. package/dist/version.d.ts +1 -1
  2. package/dist/version.js +1 -1
  3. package/dist/version.js.map +1 -1
  4. package/docs/authoring-tools.md +1 -1
  5. package/docs/collection-editing.md +3 -3
  6. package/docs/communication.md +1 -1
  7. package/docs/data-workflows.md +2 -2
  8. package/docs/generated/component-maturity.md +1 -1
  9. package/docs/generated/renderer-evidence.json +3 -3
  10. package/docs/generated/renderer-evidence.md +1 -1
  11. package/docs/generated/showcase-manifest.json +1 -1
  12. package/docs/media-transport.md +1 -1
  13. package/docs/social-compositions.md +1 -1
  14. package/docs/streaming-answer.md +1 -1
  15. package/docs/task-controls.md +1 -1
  16. package/docs/toggle-feedback.md +1 -1
  17. package/docs/transfer-task.md +1 -1
  18. package/docs/usage/README.md +12 -12
  19. package/docs/usage/components/button.md +1 -1
  20. package/docs/usage/components/chart.md +1 -1
  21. package/docs/usage/components/data-table.md +4 -0
  22. package/docs/usage/components/search-screen.md +1 -0
  23. package/docs/usage/components/tabs.md +1 -1
  24. package/docs/usage/compositions/action-feedback.md +2 -2
  25. package/docs/usage/compositions/authoring-tools.md +1 -1
  26. package/docs/usage/compositions/collection-editing.md +2 -2
  27. package/docs/usage/compositions/communication.md +1 -1
  28. package/docs/usage/compositions/data-workflows.md +2 -2
  29. package/docs/usage/compositions/media-transport.md +2 -2
  30. package/docs/usage/compositions/social-compositions.md +1 -1
  31. package/docs/usage/compositions/streaming-answer.md +1 -1
  32. package/docs/usage/compositions/task-controls.md +2 -2
  33. package/docs/usage/compositions/toggle-feedback.md +1 -1
  34. package/docs/usage/compositions/transfer-task.md +2 -2
  35. package/package.json +1 -1
package/dist/version.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  /** Package release shown by documentation surfaces. Kept in sync by a test. */
2
- export declare const designSystemVersion: "1.21.0";
2
+ export declare const designSystemVersion: "1.22.0";
3
3
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,3 +1,3 @@
1
1
  /** Package release shown by documentation surfaces. Kept in sync by a test. */
2
- export const designSystemVersion = "1.21.0";
2
+ export const designSystemVersion = "1.22.0";
3
3
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,MAAM,CAAC,MAAM,mBAAmB,GAAG,QAAiB,CAAC","sourcesContent":["/** Package release shown by documentation surfaces. Kept in sync by a test. */\nexport const designSystemVersion = \"1.21.0\" as const;\n"]}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,MAAM,CAAC,MAAM,mBAAmB,GAAG,QAAiB,CAAC","sourcesContent":["/** Package release shown by documentation surfaces. Kept in sync by a test. */\nexport const designSystemVersion = \"1.22.0\" as const;\n"]}
@@ -1,6 +1,6 @@
1
1
  # 편집 도구 구성 계약
2
2
 
3
- 검토일: 2026-10-15 · Lucian 116·141 · Storybook 배포 · 미게시
3
+ 검토일: 2026-10-15 · Lucian 116·141 · Storybook 배포 · npm 1.21.0
4
4
 
5
5
  `@hjmds/design-contracts/authoring-tools`, `@hjmds/react/authoring-tools`,
6
6
  `@hjmds/react-native/authoring-tools` 선택 subpath로 제공한다.
@@ -1,6 +1,6 @@
1
1
  # 목록 편집과 복구 구성
2
2
 
3
- 검토일: 2026-10-15 · 상태: 개발 구현, 미게시 · Web / React Native
3
+ 검토일: 2026-10-15 · 상태: Storybook 배포 · npm 1.21.0 · Web / React Native
4
4
 
5
5
  Lucian UX/UI [#033](https://lucianlabs.dev/uxui-prompt/#033), [#092](https://lucianlabs.dev/uxui-prompt/#092),
6
6
  [#131](https://lucianlabs.dev/uxui-prompt/#131), [#144](https://lucianlabs.dev/uxui-prompt/#144),
@@ -27,7 +27,7 @@ Lucian UX/UI [#033](https://lucianlabs.dev/uxui-prompt/#033), [#092](https://luc
27
27
  - Web: `@hjmds/react/collection-editing`
28
28
  - Native: `@hjmds/react-native/collection-editing`
29
29
  - 순수 모델/헬퍼: `@hjmds/design-contracts/collection-editing`
30
- - root barrel에 추가하지 않는다. 양 플랫폼 공개 API가 있지만 현재 미게시이며 앱 설치 버전의 제공을 의미하지 않는다.
30
+ - root barrel에 추가하지 않는다. 양 플랫폼 공개 API가 있지만 1.21.0으로 게시되었으며 소비 앱에서 같은 버전을 설치한 뒤 사용한다.
31
31
  - 다섯 구성은 각각 `배포/구성/…` Storybook에 있다. 실행 예제와 배치는 [사용 지침](usage/compositions/collection-editing.md)을 따른다.
32
32
 
33
33
  ## 주요 타입
@@ -80,4 +80,4 @@ Chromium에는 375px host에서 두 브랜드 fixture(violet/green)의 light/dar
80
80
 
81
81
  새 Web story ID 15개는 원본을 읽는 기존 생성 로직으로 등록했다. 선택적 전체 Storybook 규약 검사에서
82
82
  기존 `components-data-display--chart` ID의 snapshot 누락을 발견했지만 이번 구성과 무관해 변경하지 않았다.
83
- 전체 회귀·실기기·VoiceOver/TalkBack·성능 측정·npm 게시·소비 앱 적용은 미실행이다.
83
+ 전체 회귀·실기기·VoiceOver/TalkBack·성능 측정·소비 화면 적용은 미실행이다. npm 1.21.0 게시·설치 범위는 도입 기록을 따른다.
@@ -1,6 +1,6 @@
1
1
  # 검색·메시지 연결 구성 계약
2
2
 
3
- 검토일: 2026-10-15 · Lucian 027·028·078 · Storybook 배포 · 미게시
3
+ 검토일: 2026-10-15 · Lucian 027·028·078 · Storybook 배포 · npm 1.21.0
4
4
 
5
5
  `@hjmds/{design-contracts,react,react-native}/communication` 선택 subpath를 제공한다.
6
6
  기존 `screens`의 MessageComposer에는 선택 속성 `lengthFeedback`만 추가한다.
@@ -1,6 +1,6 @@
1
1
  # 데이터 해석과 가져오기 구성
2
2
 
3
- 검토일: 2026-10-15 · Storybook 배포 · Web/Native · 미게시(1.20.0 이후)
3
+ 검토일: 2026-10-15 · Storybook 배포 · Web/Native · npm 1.21.0
4
4
 
5
5
  Lucian 130·160–164를 검토하면서 기존 표·차트·통계의 실제 데이터 연결을 재사용할 필요를 확인했다.
6
6
  별도의 표/차트 엔진을 만들지 않고 DataTable, BarChart, Statistic, Progress, Select를 합성한다.
@@ -21,6 +21,6 @@ MatrixTable은 팀 간 비교에서 대각선을 숨기는 계약이므로 직
21
21
  연결의 서버 검증, CSV 보안/인코딩, 저장·인증·권한·멱등성은 실제 제품 importer가 소유한다.
22
22
 
23
23
  검증: 계산 6건, Web 브라우저 5건, Native host 2건 통과. 비동기 공통 helper 추출 후 기존 목록 편집 Web 7건/Native 5건 통과.
24
- Native 실제 기기·제품 연결·npm 게시·운영 배포는 미실행이다.
24
+ Native 실제 기기·제품 연결·운영 배포는 미실행이다. npm 1.21.0 게시·artifact 확인은 도입 기록을 따른다.
25
25
 
26
26
  신규 6개 개발 Storybook 화면 확인. 두 제품 팔레트 light/dark 및 375px host 검사 통과. 본 작업의 6012 검사용 서버·탭 종료, 기존 6006 서버 보존.
@@ -1,6 +1,6 @@
1
1
  # Component maturity and evidence manifest
2
2
 
3
- > Generated from `@hjmds/design-contracts` 1.21.0. Do not edit this file directly; run `pnpm contracts:sync`.
3
+ > Generated from `@hjmds/design-contracts` 1.22.0. Do not edit this file directly; run `pnpm contracts:sync`.
4
4
 
5
5
  This document is the human-readable projection of the same catalog and Showcase manifest consumed by product CI.
6
6
 
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "designSystemVersion": "1.21.0",
3
+ "designSystemVersion": "1.22.0",
4
4
  "source": "packages/design-contracts/docs/generated/showcase-manifest.json",
5
5
  "surfaces": {
6
6
  "web": {
7
7
  "packageName": "@hjmds/react",
8
- "packageVersion": "1.21.0",
8
+ "packageVersion": "1.22.0",
9
9
  "activeComponents": 104,
10
10
  "claimedComponents": 103,
11
11
  "completeScenarioComponents": 103,
@@ -5672,7 +5672,7 @@
5672
5672
  },
5673
5673
  "native": {
5674
5674
  "packageName": "@hjmds/react-native",
5675
- "packageVersion": "1.21.0",
5675
+ "packageVersion": "1.22.0",
5676
5676
  "activeComponents": 85,
5677
5677
  "claimedComponents": 83,
5678
5678
  "completeScenarioComponents": 83,
@@ -1,6 +1,6 @@
1
1
  # Renderer evidence coverage
2
2
 
3
- > Generated for HJM 1.21.0. Do not edit directly; run `pnpm evidence:sync`.
3
+ > Generated for HJM 1.22.0. Do not edit directly; run `pnpm evidence:sync`.
4
4
 
5
5
  This projection joins the canonical surface maturity manifest with first-party renderer claims. Missing scenarios are explicit beta promotion debt; stable surfaces are blocked by CI until none remain.
6
6
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 2,
3
- "designSystemVersion": "1.21.0",
3
+ "designSystemVersion": "1.22.0",
4
4
  "packageName": "@hjmds/design-contracts",
5
5
  "components": [
6
6
  {
@@ -1,6 +1,6 @@
1
1
  # 미디어 재생 제어
2
2
 
3
- 검토일: 2026-10-15 · Storybook 배포 · Web/Native · 미게시(1.20.0 이후)
3
+ 검토일: 2026-10-15 · Storybook 배포 · Web/Native · npm 1.21.0
4
4
 
5
5
  Lucian 007의 재생/정지 모핑을 실제 미디어 상태와 연결할 공통 구성이 필요했다.
6
6
  기존 IconButton과 Slider를 합성하며 재생 엔진·탐색 제스처·타이머를 새로 구현하지 않는다.
@@ -1,6 +1,6 @@
1
1
  # 팔로우 프로필과 행사 참석 응답
2
2
 
3
- 상태: 배포 · 적용: 미게시(1.20.0 이후) · 검토일: 2026-10-15
3
+ 상태: 배포 · 적용: npm 1.21.0 · 검토일: 2026-10-15
4
4
 
5
5
  Lucian 054(팔로우 프로필), 059(참석 응답)의 실제 mutation·실패 복구를 소비 앱마다
6
6
  다시 조립하지 않도록 기존 Card, Avatar, Button, AnimatedStatistic과 action-session을 합성한다.
@@ -1,6 +1,6 @@
1
1
  # 스트림 응답과 중지 계약
2
2
 
3
- 검토일: 2026-10-15 · Lucian 086 · Storybook 배포 · 미게시
3
+ 검토일: 2026-10-15 · Lucian 086 · Storybook 배포 · npm 1.21.0
4
4
 
5
5
  `@hjmds/{design-contracts,react,react-native}/streaming-answer` 선택 subpath를 제공한다.
6
6
  고정 답변을 글자 단위로 재생하거나 타이머로 완료시키지 않고 실제 제공자 이벤트를 소비한다.
@@ -1,6 +1,6 @@
1
1
  # 선택 뒤 실제 작업을 실행하는 구성
2
2
 
3
- 검토일: 2026-10-15 · Storybook 배포 · 미게시(1.20.0 이후) · Web/Native
3
+ 검토일: 2026-10-15 · Storybook 배포 · npm 1.21.0 · Web/Native
4
4
 
5
5
  Lucian 010·036·037·056의 공통 작업 흐름을 기존 Menu/Button/PasswordField/Progress/RadioGroup/Card로 합성한다.
6
6
  새 메뉴·입력·작업 상태 엔진을 만들지 않는다. 공개 진입점은 `@hjmds/{react,react-native}/task-controls`,
@@ -1,6 +1,6 @@
1
1
  # 선택 버튼의 실제 반응과 수치
2
2
 
3
- 상태: 배포 · 적용: 미게시(1.20.0 이후) · 검토일: 2026-10-15
3
+ 상태: 배포 · 적용: npm 1.21.0 · 검토일: 2026-10-15
4
4
 
5
5
  Lucian 006 구독 리플·012 북마크 리본·022 선택한 좋아요 burst는 같은 counted selection이다.
6
6
  구독·북마크·좋아요의 별도 상태 엔진을 만들지 않고, 기존 Button.selected와 AnimatedStatistic,
@@ -1,6 +1,6 @@
1
1
  # 실제 전송 진행과 취소
2
2
 
3
- 검토일: 2026-10-15 · Storybook 배포 · Web/Native · 미게시(1.20.0 이후)
3
+ 검토일: 2026-10-15 · Storybook 배포 · Web/Native · npm 1.21.0
4
4
 
5
5
  Lucian 004·083의 시간 기반 진행 시연을 실제 전송량·작업 종료·취소 신호와 연결하기 위해 기존 Button/Progress를 합성한다.
6
6
  단순 외부 controlled 진행 표시만 필요하면 Progress를 직접 쓴다. TransferTask는 시작 요청·중복 방지·AbortSignal·실패 재시도가 함께 필요할 때 쓴다.
@@ -6,7 +6,7 @@
6
6
  버튼 위치에서 시작해 구성·컴포넌트 지침으로 내려가고, 값은 토큰 지침에서 고른다.
7
7
  [선택 기준](SELECTION.md)으로 그대로 사용·공개 슬롯 확장·제품 전용 구성을 고른다. 설치 버전의 지침을 본다: `node_modules/@hjmds/design-contracts/docs/usage/`.
8
8
  제공 기준은 확인한 기본 API 버전이며 최초 출시 버전이 아니다. 구성·화면은 각 API 지침의 제공 버전을 확인한다.
9
- API 안정성은 1.20.0의 생성 manifest에서 읽은 정규(canonical) API 기준이다. 동반·선택형 확장은 개별 계약을 확인한다.
9
+ API 안정성은 1.21.0의 생성 manifest에서 읽은 정규(canonical) API 기준이다. 동반·선택형 확장은 개별 계약을 확인한다.
10
10
  Storybook 배포/실험은 예제 분류이며 npm 게시·기기 검증·제품 반영을 의미하지 않는다.
11
11
  `분류`는 Storybook 제목 `<배포|실험>/<단계>/<분류>/<항목>`의 셋째 마디이고, 토큰·구성·화면은 Storybook 메뉴와 같은 순서다.
12
12
 
@@ -54,7 +54,7 @@ Storybook 배포/실험은 예제 분류이며 npm 게시·기기 검증·제품
54
54
  | [Card](components/card.md) | 데이터 표시 | 문서 metadata·미리보기·내보내기 상태는 실험 구성 DocumentResource를 먼저 대조한다. | 1.12.1 | Web · Native | Web stable / Native stable | 배포 |
55
55
  | [Carousel](components/carousel.md) | 데이터 표시 | 한 번에 카드 하나만 보이고 사용자가 순서대로 넘겨 보는 유한한 묶음에 쓴다. | 1.12.1 | Web · Native | Web stable / Native stable | 배포 |
56
56
  | [Celebration](components/celebration.md) | 구성/직접 조작과 모션 | 목표 달성, 첫 완료처럼 드물게 일어나는 성공 순간에 한 번 터지는 색종이 효과에 쓴다. | 1.12.1 | Web · Native | 개별 API 계약 참조 | 배포 |
57
- | [Chart](components/chart.md) | 데이터 표시 | 수치의 흐름·비교·몫·모양·관계를 그림으로 읽게 할 때 쓴다. | 미게시(1.20.0 이후) | Web · Native | Web beta / Native beta | 배포 |
57
+ | [Chart](components/chart.md) | 데이터 표시 | 수치의 흐름·비교·몫·모양·관계를 그림으로 읽게 할 때 쓴다. | 1.21.0 | Web · Native | Web beta / Native beta | 배포 |
58
58
  | [ChatMessage](components/chat-message.md) | 구성/정보 표시 | DM·대화 타임라인의 메시지 한 개에 쓴다. | 1.17.1 | Web · Native | 개별 API 계약 참조 | 배포 |
59
59
  | [ChatScreen](components/chat-screen.md) | 화면/소통 | DM·대화방처럼 헤더, 메시지 타임라인, 하단 작성창으로 이루어진 화면 한 장에 쓴다. | 1.17.1 | Web · Native | 개별 API 계약 참조 | 배포 |
60
60
  | [Checkbox](components/checkbox.md) | 입력 | 독립된 예/아니오 하나를 고르는 항목에 쓴다. | 1.12.1 | Web · Native | Web stable / Native stable | 배포 |
@@ -184,13 +184,13 @@ Storybook 배포/실험은 예제 분류이며 npm 게시·기기 검증·제품
184
184
  | [단계별 드로어](compositions/family-drawer.md) | 입력과 작성 | 초대 → 설정 → 확인처럼 짧은 단계 2~5개를 현재 화면을 떠나지 않고 하단 시트 안에서 차례로 진행할 때 쓴다. | 1.12.1 | Web · Native | 구성 API별 | 배포 |
185
185
  | [닫았다 열고 초안 이어쓰기](compositions/interaction-flow-draft.md) | 입력과 작성 | 메모·댓글처럼 시트에서 쓰던 글을 저장하지 않고 닫았다가 다시 열었을 때, 쓰던 초안을 그대로 이어 쓰게 할 때 쓴다. | 1.12.1 | Web · Native | 구성 API별 | 배포 |
186
186
  | [댓글 작성](compositions/purpose-input-comment.md) | 입력과 작성 | 게시물·기록 아래에서 댓글이나 특정 댓글에 대한 답글을 남기고, 실패하면 글과 답글 대상을 그대로 남겨 다시 등록하게 할 때 쓴다. | 구성 API 지침 참조 | Web · Native | 구성 API별 | 배포 |
187
- | [데이터 해석과 가져오기](compositions/data-workflows.md) | 입력과 작성 | CSV 열 연결, 순차 퍼널, 가입 시점별 잔존율, 지표 상관, 목표, 분포 구간 탐색에 쓴다. | 미게시(1.20.0 이후) | Web · Native | 구성 API별 | 배포 |
187
+ | [데이터 해석과 가져오기](compositions/data-workflows.md) | 입력과 작성 | CSV 열 연결, 순차 퍼널, 가입 시점별 잔존율, 지표 상관, 목표, 분포 구간 탐색에 쓴다. | 1.21.0 | Web · Native | 구성 API별 | 배포 |
188
188
  | [메시지 작성](compositions/purpose-input-message.md) | 입력과 작성 | 대화 화면 하단에서 글과 사진 여러 장을 함께 보내고, 실패하면 글·사진·답장 대상을 그대로 남겨 다시 보내게 할 때 쓴다. | 구성 API 지침 참조 | Web · Native | 구성 API별 | 배포 |
189
- | [목록 편집과 복구](compositions/collection-editing.md) | 입력과 작성 | 목록의 제목을 바로 고치거나, 입력 행을 늘리거나, 여러 항목에 같은 행동을 하거나, 빈 검색에서 조건을 풀거나, 표의 열을 설정할 때 쓴다. | 미게시(1.20.0 이후) | Web · Native | 구성 API별 | 배포 |
189
+ | [목록 편집과 복구](compositions/collection-editing.md) | 입력과 작성 | 목록의 제목을 바로 고치거나, 입력 행을 늘리거나, 여러 항목에 같은 행동을 하거나, 빈 검색에서 조건을 풀거나, 표의 열을 설정할 때 쓴다. | 1.21.0 | Web · Native | 구성 API별 | 배포 |
190
190
  | [버튼에서 이어지는 편집](compositions/origin-dialog.md) | 입력과 작성 | 현재 화면의 항목을 짧게 편집하고 돌아올 때 출발 위치를 시각적으로 연결한다. | 1.14.0 | Web · Native | 구성 API별 | 배포 |
191
191
  | [빠른 메모 작성](compositions/floating-action-button.md) | 입력과 작성 | 스크롤되는 기록 목록 위에 떠 있는 생성 버튼으로 짧은 입력 대화상자를 열고, 저장하면 새 항목을 목록 맨 위에 넣을 때 쓴다. | 1.12.1 | Web · Native | 구성 API별 | 배포 |
192
192
  | [선택 내용 검토와 수정](compositions/reference-review.md) | 입력과 작성 | 선택 내용을 검토하고 수정 후 명시적으로 확정 흐름이 필요할 때 쓴다. | 구성 API 지침 참조 | Web · Native | 구성 API별 | 배포 |
193
- | [선택과 실제 실행](compositions/task-controls.md) | 입력과 작성 | 선택만 하는 화면과 선택 뒤 실제 요청을 실행하는 화면의 상태를 혼동하지 않도록 도입했다. | 미게시(1.20.0 이후) | Web · Native | 구성 API별 | 배포 |
193
+ | [선택과 실제 실행](compositions/task-controls.md) | 입력과 작성 | 선택만 하는 화면과 선택 뒤 실제 요청을 실행하는 화면의 상태를 혼동하지 않도록 도입했다. | 1.21.0 | Web · Native | 구성 API별 | 배포 |
194
194
  | [인증번호 확인과 다시 입력](compositions/stea-otp-verify.md) | 입력과 작성 | 문자·메일로 받은 숫자 인증번호를 입력하고 서버 확인을 기다린 뒤, 틀리면 남은 횟수를 보여 주고 다시 받게 하는 흐름에 쓴다. | 1.12.1 | Web · Native | 구성 API별 | 배포 |
195
195
  | [입력 시트](compositions/input-sheet.md) | 입력과 작성 | 현재 화면 위에 하단 시트를 띄워 짧은 입력(이름 바꾸기, 메모 한 줄)을 받고, 키보드가 올라와도 본문을 스크롤하며 완료 버튼에 닿게 할 때 쓴다. | 1.12.1 | Web · Native | 구성 API별 | 배포 |
196
196
  | [입력을 유지하는 도구](compositions/context-toolbar.md) | 입력과 작성 | 작성 중인 입력을 보존한 채 선택적 도구를 펼쳐야 할 때 쓴다. | 1.14.0 | Web · Native | 구성 API별 | 배포 |
@@ -201,7 +201,7 @@ Storybook 배포/실험은 예제 분류이며 npm 게시·기기 검증·제품
201
201
  | [사진 촬영과 앨범 선택](compositions/photo-source.md) | 선택과 필터 | 명시적으로 선택 후 플랫폼 picker 실행 흐름이 필요할 때 쓴다. | 구성 API 지침 참조 | Web · Native | 구성 API별 | 배포 |
202
202
  | [선택 후 적용·취소](compositions/interaction-flow-apply.md) | 선택과 필터 | 표시 방식·정렬·필터처럼 시트에서 여러 번 바꿔 본 뒤 적용을 눌러야 화면에 반영되고, 취소하거나 닫으면 기존 선택을 유지해야 할 때 쓴다. | 1.12.1 | Web · Native | 구성 API별 | 배포 |
203
203
  | [시간 선택](compositions/time-selection.md) | 선택과 필터 | 알림 시각·마감 시각처럼 하루 안의 시각 하나를 시·분 두 Select로 나눠 고르게 할 때 쓴다. | 1.12.1 | Web · Native | 구성 API별 | 배포 |
204
- | [펼치는 검색과 실제 메시지 답장](compositions/communication.md) | 선택과 필터 | 상단 검색 버튼에서 검색 영역을 펼치거나 채팅의 실제 메시지를 선택해 답장을 전송할 때 쓴다. | 미게시(1.20.0 이후) | Web · Native | 구성 API별 | 배포 |
204
+ | [펼치는 검색과 실제 메시지 답장](compositions/communication.md) | 선택과 필터 | 상단 검색 버튼에서 검색 영역을 펼치거나 채팅의 실제 메시지를 선택해 답장을 전송할 때 쓴다. | 1.21.0 | Web · Native | 구성 API별 | 배포 |
205
205
  | [보관함과 페이지 이동](compositions/web-navigation.md) | 탐색과 이동 | Web에서 상위 보관함 → 하위 모음으로 들어가고, 그 모음의 긴 목록을 페이지 단위로 넘겨 보는 탐색에 쓴다. | 1.12.1 | Web | 구성 API별 | 배포 |
206
206
  | [펼침과 메뉴](compositions/disclosure.md) | 탐색과 이동 | Web에서 내용을 숨겼다 펼치거나(Collapsible), 대상에 붙은 작업 메뉴를 우클릭·키보드로 열거나(ContextMenu), 데스크톱 앱처럼 상단 메뉴 막대를 두는(Menubar) 세 방식을 각각 보여 주는 모음이다. | 1.12.1 | Web | 구성 API별 | 배포 |
207
207
  | [대화 메시지](compositions/common-message.md) | 정보 표시 | 말풍선 하나하나에 반응·답장·원문 이동·전송 실패 후 다시 보내기를 붙일 때 쓴다. | 구성 API 지침 참조 | Web · Native | 구성 API별 | 배포 |
@@ -215,25 +215,25 @@ Storybook 배포/실험은 예제 분류이며 npm 게시·기기 검증·제품
215
215
  | [질감 비교](compositions/texture-comparison.md) | 정보 표시 | 기존 반복 점 grain과 불규칙한 정적 noise를 같은 배경·강도로 비교할 때 쓴다. | 1.14.0 | Web · Native | 구성 API별 | 배포 |
216
216
  | [추가해도 유지되는 목록](compositions/live-list.md) | 정보 표시 | 입력 중인 목록에 새 데이터가 추가되거나 순서가 바뀌어도 기존 초안과 항목의 정체성을 유지할 때 쓴다. | 1.14.0 | Web · Native | 구성 API별 | 배포 |
217
217
  | [카드 묶음과 긴 목록](compositions/data-layouts.md) | 정보 표시 | 많은 항목을 화면에 늘어놓을 방식을 고를 때 쓴다. | 1.12.1 | Web · Native | 구성 API별 | 배포 |
218
- | [팔로우 프로필과 행사 참석 응답](compositions/social-compositions.md) | 정보 표시 | 프로필 팔로우나 행사 참석 응답의 실제 요청과 수치의 실패 복구가 필요할 때 사용한다. | 미게시(1.20.0 이후) | Web · Native | 구성 API별 | 배포 |
218
+ | [팔로우 프로필과 행사 참석 응답](compositions/social-compositions.md) | 정보 표시 | 프로필 팔로우나 행사 참석 응답의 실제 요청과 수치의 실패 복구가 필요할 때 사용한다. | 1.21.0 | Web · Native | 구성 API별 | 배포 |
219
219
  | [그림과 시작 안내](compositions/illustrated-outcome.md) | 피드백과 복구 | 빈 목록에서 시작을 안내하고 짧은 온보딩을 거쳐 결과를 보여 줄 때 쓴다. | 1.14.0 | Web · Native | 구성 API별 | 배포 |
220
220
  | [백그라운드 작업 상태](compositions/activity-status.md) | 피드백과 복구 | 사용자가 다른 화면을 보는 동안 계속되는 작업 하나(검수·생성·업로드)의 진행을 헤더의 작은 칩으로 알리고, 칩을 누르면 같은 작업의 패널 Toast가 열려 단계와 결과를 보여 줄 때 쓴다. | 미게시(1.17.2 이후) | Web · Native | 구성 API별 | 배포 |
221
221
  | [버튼 완료 피드백](compositions/action-feedback.md) | 피드백과 복구 | 입력을 유지하며 저장의 진행·성공·재시도 가능 실패를 보여 줄 때 쓴다. | 1.14.0 | Web · Native | 구성 API별 | 배포 |
222
222
  | [변경 저장과 이탈 확인](compositions/reference-settings.md) | 피드백과 복구 | 저장값과 편집 초안을 비교해 이탈 확인 흐름이 필요할 때 쓴다. | 구성 API 지침 참조 | Web · Native | 구성 API별 | 배포 |
223
223
  | [보관과 실행 취소](compositions/action-recovery-undo.md) | 피드백과 복구 | 보관·숨기기·목록에서 빼기처럼 제품이 역연산을 제공하는 작업 뒤에, 같은 자리에서 실행 취소를 주고 그 복구 요청이 성공해야 화면을 되돌릴 때 쓴다. | 1.12.1 | Web · Native | 구성 API별 | 배포 |
224
224
  | [선택과 오류 복구](compositions/upload-recovery.md) | 피드백과 복구 | 파일 선택과 전송 상태의 취소·재시도를 연결할 때 쓴다. | 1.14.0 | Web · Native | 구성 API별 | 배포 |
225
- | [스트림 응답과 중지](compositions/streaming-answer.md) | 피드백과 복구 | 실제 provider가 보내는 응답 delta를 표시하고 중지·재생성·오류를 같은 영역에서 제공할 때 쓴다. | 미게시(1.20.0 이후) | Web · Native | 구성 API별 | 배포 |
225
+ | [스트림 응답과 중지](compositions/streaming-answer.md) | 피드백과 복구 | 실제 provider가 보내는 응답 delta를 표시하고 중지·재생성·오류를 같은 영역에서 제공할 때 쓴다. | 1.21.0 | Web · Native | 구성 API별 | 배포 |
226
226
  | [저장과 재시도](compositions/action-recovery-save.md) | 피드백과 복구 | 입력한 내용을 서버에 저장하는 폼 한 덩어리에서 저장 중 중복 실행을 막고, 실패하면 입력을 지우지 않은 채 제출했던 값 그대로 다시 보낼 때 쓴다. | 1.12.1 | Web · Native | 구성 API별 | 배포 |
227
- | [전송 진행과 취소](compositions/transfer-task.md) | 피드백과 복구 | 실제 다운로드·업로드·작업의 시작/대기/진행·취소·실패 복구를 한 구성으로 제공할 때 쓴다. | 미게시(1.20.0 이후) | Web · Native | 구성 API별 | 배포 |
227
+ | [전송 진행과 취소](compositions/transfer-task.md) | 피드백과 복구 | 실제 다운로드·업로드·작업의 시작/대기/진행·취소·실패 복구를 한 구성으로 제공할 때 쓴다. | 1.21.0 | Web · Native | 구성 API별 | 배포 |
228
228
  | [중단해도 남는 현재 상태](compositions/expo-interactions.md) | 피드백과 복구 | 버튼으로 상태를 빠르게 바꾸거나 전환 도중 내용을 닫아도 현재 상태가 바로 보이고 남아야 하는 영역에 쓴다. | 1.12.1 | Native | 구성 API별 | 배포 |
229
229
  | [즉시 반영과 복구](compositions/action-recovery-optimistic.md) | 피드백과 복구 | 북마크·좋아요·알림 켜기처럼 되돌려도 피해가 없는 저위험 토글을 누르는 즉시 화면에 반영하고, 서버가 실패하면 직전 확인 값으로 되돌릴 때 쓴다. | 1.12.1 | Web · Native | 구성 API별 | 배포 |
230
230
  | [처리 단계와 재시도](compositions/stea-order-progress.md) | 피드백과 복구 | 주문·신청처럼 서버가 단계를 하나씩 확정하는 처리 과정을 보여 주고, 확정에 실패하면 같은 단계를 다시 요청하게 할 때 쓴다. | 1.12.1 | Web · Native | 구성 API별 | 배포 |
231
231
  | [캐릭터와 시작 행동](compositions/stea-pixel-empty.md) | 피드백과 복구 | 아직 만든 것이 없는 첫 빈 화면에 제품 캐릭터를 움직여 보이고 첫 행동 하나로 이끌 때 쓴다. | 1.12.1 | Web · Native | 구성 API별 | 배포 |
232
232
  | [끌기·밀기·화면 전환](compositions/interaction-adapters.md) | 직접 조작과 모션 | 순서 바꾸기·행 작업·내용 전환·카드 넘기기·달성 축하·카드 확대 화면 전환 같은 선택형 상호작용 어댑터를 한 화면에서 함께 쓸 때, 각 어댑터를 어디에 놓고 무엇으로 감싸야 하는지 확인하는 구성이다. | 1.12.1 | Web · Native | 구성 API별 | 배포 |
233
233
  | [높이가 이어지는 패널](compositions/adaptive-content.md) | 직접 조작과 모션 | 패널의 길이가 달라질 때 아래 행동이 새 높이로 이동해야 하는 작은 내용 영역에 쓴다. | 1.14.0 | Web · Native | 구성 API별 | 배포 |
234
- | [미디어 재생 제어](compositions/media-transport.md) | 직접 조작과 모션 | 실제 오디오/영상 엔진의 재생·일시 정지·유한 길이 탐색을 같은 구조로 제공할 때 쓴다. | 미게시(1.20.0 이후) | Web · Native | 구성 API별 | 배포 |
235
- | [베지어·단축키 편집 도구](compositions/authoring-tools.md) | 직접 조작과 모션 | 제품 안의 모션 편집기에서 두 제어점의 곡선을 조정하거나 웹 앱의 사용자 단축키를 실제로 등록할 때 쓴다. | 미게시(1.20.0 이후) | Web · Native | 구성 API별 | 배포 |
236
- | [선택 반응 버튼](compositions/toggle-feedback.md) | 직접 조작과 모션 | 구독·북마크·좋아요에서 선택 요청과 실제 인원 수의 실패 복구, 국소 모션이 함께 필요할 때 쓴다. | 미게시(1.20.0 이후) | Web · Native | 구성 API별 | 배포 |
234
+ | [미디어 재생 제어](compositions/media-transport.md) | 직접 조작과 모션 | 실제 오디오/영상 엔진의 재생·일시 정지·유한 길이 탐색을 같은 구조로 제공할 때 쓴다. | 1.21.0 | Web · Native | 구성 API별 | 배포 |
235
+ | [베지어·단축키 편집 도구](compositions/authoring-tools.md) | 직접 조작과 모션 | 제품 안의 모션 편집기에서 두 제어점의 곡선을 조정하거나 웹 앱의 사용자 단축키를 실제로 등록할 때 쓴다. | 1.21.0 | Web · Native | 구성 API별 | 배포 |
236
+ | [선택 반응 버튼](compositions/toggle-feedback.md) | 직접 조작과 모션 | 구독·북마크·좋아요에서 선택 요청과 실제 인원 수의 실패 복구, 국소 모션이 함께 필요할 때 쓴다. | 1.21.0 | Web · Native | 구성 API별 | 배포 |
237
237
  | [선택 배경 이동](compositions/selection-motion.md) | 직접 조작과 모션 | 짧은 단일 선택의 현재 항목을 이어지는 배경으로 보여 줄 때 쓴다. | 1.14.0 | Web · Native | 구성 API별 | 배포 |
238
238
  | [숫자 변화와 메뉴 변형](compositions/optional-motion.md) | 직접 조작과 모션 | 선택 설치 모션(숫자 자리 단위 변화, 메뉴 형태 변환)을 기존 컴포넌트 자리에 끼워 넣을 때 쓴다. | 1.12.1 | Web | 구성 API별 | 배포 |
239
239
  | [이미지·시트·키보드 조작](compositions/optional-adapters.md) | 직접 조작과 모션 | Native 앱 한 화면에서 이미지 확대 보기, 끌어서 높이를 바꾸는 시트, OS 길게 누르기 메뉴, 키보드를 따라 올라가는 하단 행동을 함께 쓸 때 provider 중첩 순서와 각 요소의 자리를 확인하는 구성이다. | 1.12.1 | Native | 구성 API별 | 배포 |
@@ -126,7 +126,7 @@ import { Button } from "@hjmds/react-native/actions";
126
126
  2026-10-10 사용자 요청으로 선택 시 추가되는 테두리를 제거했다. `selected` 접근성 상태와
127
127
  contentBrand 글자·아이콘 색은 유지하며 키보드 focus outline은 선택과 별도로 유지한다.
128
128
 
129
- ## 저장 확정 라벨과 프레임 예약 (미게시 · 2026-10-15)
129
+ ## 저장 확정 라벨과 프레임 예약 (npm 1.21.0 · 2026-10-15)
130
130
 
131
131
  `completion={{ confirmed, label }}`는 실제 mutation의 확정 결과를 표시한다. 두 라벨의
132
132
  공간을 처음부터 예약하므로 `children`을 저장 중/완료 문구로 교체하지 않는다.
@@ -3,7 +3,7 @@
3
3
  - 단계: 컴포넌트
4
4
  - 상태: 배포
5
5
  - 지원: Web · Native
6
- - 적용: 미게시(1.20.0 이후)
6
+ - 적용: 1.21.0
7
7
  - 검토일: 2026-10-15
8
8
  - 근거: [Chart](../../chart.md), `src/chart.ts`(`chartRecipe`, `describeChart`, `resolveLineGeometry`), `src/dataviz.ts`(`resolveDatavizSeriesColor`, `datavizChromeTokens`)
9
9
  - 스토리북: `배포/컴포넌트/데이터 표시/차트`
@@ -194,3 +194,7 @@ const sorted = sortDataTableRows(players, sort, (player, columnId) => toDataTabl
194
194
  - 2026-10-14 작성 시점에 Native renderer와 Native Storybook 등록은 구현 중이다. Native 행은 renderer가 들어온 뒤 실제 Props와 다시 대조한다.
195
195
  - `cellStyle`은 셀마다 호출된다. 백분위 표본(열 전체 값)은 함수 밖에서 한 번 만들어 두고 셀에서는 조회만 한다.
196
196
  - `columnGroups`의 묶음은 고정 열 경계를 넘지 않게 나눈다. Web은 묶음 안 열이 모두 고정일 때만 묶음 머리 칸도 고정된다.
197
+
198
+ ### ComparisonTable 중복 머리글
199
+
200
+ 2026-10-14 야잘알 비교 화면에서 상단 선택 카드의 선수·시즌이 표에 반복되어 읽는 흐름을 끊었다. Web/Native의 `showSideNames={false}`로 시각 머리글만 숨긴다(기본 `true`). `sides`는 계속 전달하며 각 행의 접근성 이름에는 양쪽 이름과 수치를 보존한다. 상단에서 양쪽 대상을 식별할 수 있을 때만 사용한다. 행 여백과 막대 간격을 넓히고 지표·비우세 수치의 대비를 유지해 기록을 구분한다.
@@ -154,6 +154,7 @@ import { SearchScreen } from "@hjmds/react-native/screen-flows";
154
154
  | `suggestedQueries` | `{ title, items: string[] }` | 없음 | 검색 전(최근 검색 아래)과 검색어 때문인 0건 아래 Chip 줄. 누르면 확정 |
155
155
  | `suggestions` | `{ items: { query, match?: { start, end } }[], commitLabel(query), countLabel(count), icon?, maxVisible? }` | 없음 | 입력 중 본문: 첫 행 `commitLabel`(그대로 확정) + 제안 최대 6행. `match` 범위는 굵게(Web). 개수를 `countLabel`로 낭독 |
156
156
  | `resultSummary` | `{ count: number \| null, countLabel(count), loadingLabel, sort?, notice?, empty?: { title, description? } }` | 없음 | 결과 머리. `count = null`이면 개수 자리 Skeleton + `children` 대신 로딩 4행. `notice`는 개수 위(이전 결과 유지 오류). `count = 0`이면 개수 대신 `empty`로 EmptyState |
157
+ | `resultSummary.countVisibility` | `visible` · `hidden` | `visible` | `hidden`은 시각적 개수·개수 Skeleton만 숨기며 정렬·로딩 행·빈 상태·접근성 개수 알림은 유지한다. 2026-10-14 야잘알 검색 결과에서 개수 없는 목록을 요청해 추가한 선택형 축(미게시)이다 |
157
158
  | `resultSummary.sort` | `{ label, triggerLabel, value, options: { id, label }[], onChange(id), icon? }` (Native는 `dismissLabel` 추가) | 없음 | 결과 머리 끝 Menu(single). 바꾸면 본문을 맨 위로 |
158
159
  | `appliedFilters` | `{ items: { key, label }[], removeLabel(label), onRemove(key), clearAllLabel, onClearAll(), removeIcon? }` | 없음 | 결과 머리 아래 × 칩 + `모두 해제`. 개수는 trigger 이름과 0건 원인 판정에도 쓴다 |
159
160
  | `filterSheet` | `{ open, onOpenChange(open), title, value, onApply(next), count(draft): number \| null, reset(draft), isDefault(draft), renderContent(draft, setDraft), labels: { close, reset, apply(count) }, size?, trigger? }` | 없음 | 열 때 `value`를 초안으로 복사, 닫히면 초안을 버림, 주 행동에서만 `onApply`. `count = 0`이면 주 행동 비활성, `isDefault`면 초기화 비활성. `trigger`를 주면 칩 줄 맨 앞에 `label(적용 개수)` Chip |
@@ -142,7 +142,7 @@ import { Tabs } from "@hjmds/react-native/navigation";
142
142
  - 외부 `TabPanel`을 쓸 때 Tabs에 `id`를 주지 않으면 Web은 생성 id를 써서 `tabsId`를 맞출 수 없다.
143
143
  `id`를 명시하고 같은 값을 `TabPanel tabsId`에 넘긴다.
144
144
 
145
- ## 가로 페이저와 연속 밑줄 연결 (미게시)
145
+ ## 가로 페이저와 연속 밑줄 연결 (npm 1.21.0)
146
146
 
147
147
  실제 페이저의 소수 index를 `swipePosition`에 발행한다. 별도 state 갱신 없이 기존
148
148
  측정된 탭 밑줄만 따라간다. 첫 항목은 0, 두 번째로 절반 이동하면 0.5다. 패널 선택은
@@ -113,7 +113,7 @@ Button의 실행 콜백은 Web `onClick`, Native `onPress`로 연결한다. 위
113
113
  | 좁은 폭 | 줄바꿈·단일 내용 | 같은 순서, OS 화면 검증은 별도 |
114
114
 
115
115
 
116
- ## 확정 라벨의 크기 예약 (미게시 · 2026-10-15)
116
+ ## 확정 라벨의 크기 예약 (npm 1.21.0 · 2026-10-15)
117
117
 
118
118
  Lucian 001의 저장→진행→완료 프레임 유지를 기존 Button의 `completion` 옵션으로 보완한다.
119
119
  기본 행동 문자열은 항상 같은 children으로 두고, 완료 문자열은 `completion.label`로 처음부터
@@ -123,7 +123,7 @@ Lucian 001의 저장→진행→완료 프레임 유지를 기존 Button의 `com
123
123
  서버가 확정하기 전에는 완료를 표시하지 않으며 자동 성공 타이머·중복 mutation 엔진을 넣지 않는다.
124
124
 
125
125
  Web은 두 라벨을 겹쳐 측정하고 Native는 두 라벨의 고유 폭과 최대 높이를 미리 예약한다.
126
- 자세한 초기 Native 행 예약과 문자열 제한은 [Button](../components/button.md#저장-확정-라벨과-프레임-예약-미게시--2026-10-15)을 따른다.
126
+ 자세한 초기 Native 행 예약과 문자열 제한은 [Button](../components/button.md#저장-확정-라벨과-프레임-예약-npm-1210--2026-10-15)을 따른다.
127
127
  기존 결과 영역이 live region을 소유한다. Button이 별도 자동 알림을 만들지 않아 저장 중·완료
128
128
  안내가 중복 발표되지 않는다. Showcase는 같은 공개 Button API를 사용하며, 예제 요청임을
129
129
  계속 밝힌다. 실제 제품은 자신의 네트워크 요청·정규화된 확정 응답을 기존 session에 전달한다.
@@ -3,7 +3,7 @@
3
3
  - 단계: 구성
4
4
  - 상태: 배포
5
5
  - 지원: Web · Native
6
- - 적용: 미게시(1.20.0 이후)
6
+ - 적용: 1.21.0
7
7
  - 검토일: 2026-10-15
8
8
  - 근거: [편집 도구 계약](../../authoring-tools.md), `src/authoring-tools.ts`, 양 renderer `src/authoring-tools.tsx`
9
9
  - 스토리북: `배포/구성/직접 조작과 모션/베지어 이징 편집`, Web `배포/구성/직접 조작과 모션/단축키 조합 기록`
@@ -3,7 +3,7 @@
3
3
  - 단계: 구성
4
4
  - 상태: 배포
5
5
  - 지원: Web · Native
6
- - 적용: 미게시(1.20.0 이후)
6
+ - 적용: 1.21.0
7
7
  - 검토일: 2026-10-15
8
8
  - 근거: [목록 편집과 복구 계약](../../collection-editing.md), `src/collection-editing.ts`, 양 renderer의 `src/collection-editing.tsx`
9
9
  - 스토리북: `배포/구성/입력과 작성/제목 바로 편집`, `배포/구성/입력과 작성/반복 입력`, `배포/구성/선택과 필터/선택 항목 묶음 작업`, `배포/구성/피드백과 복구/검색 필터 완화`, `배포/구성/선택과 필터/표 열 설정`
@@ -107,4 +107,4 @@ import { InlineEdit } from "@hjmds/react-native/collection-editing";
107
107
  - 원본 데모의 고정 성공·전체 복구를 복사하지 않는다. 실패를 callback에서 삼키면 HJM은 성공으로 해석한다.
108
108
  - `onAdd`가 반환한 ID와 새 field ID가 같아야 한다. 입력 값을 배열 index에 저장하지 않는다.
109
109
  - 표 원본 descriptor의 pinned·width·sort를 보존한다. 설정 화면의 잠금은 서버 권한 검증을 대체하지 않는다.
110
- - 현재 개발 미게시 API다. 소비 제품의 설치 버전에서 제공된다고 안내하지 않는다.
110
+ - npm 1.21.0 API다. 소비 제품의 실제 설치 버전을 확인한다.
@@ -3,7 +3,7 @@
3
3
  - 단계: 구성
4
4
  - 상태: 배포
5
5
  - 지원: Web · Native
6
- - 적용: 미게시(1.20.0 이후)
6
+ - 적용: 1.21.0
7
7
  - 검토일: 2026-10-15
8
8
  - 근거: [연결 계약](../../communication.md), `src/communication.ts`, 양 renderer `src/communication.tsx`, `src/screens.tsx`
9
9
  - 스토리북: `배포/구성/선택과 필터/펼치는 상단 검색`, `배포/구성/입력과 작성/메시지 답장 연결`
@@ -3,7 +3,7 @@
3
3
  - 단계: 구성
4
4
  - 상태: 배포
5
5
  - 지원: Web · Native
6
- - 적용: 미게시(1.20.0 이후)
6
+ - 적용: 1.21.0
7
7
  - 검토일: 2026-10-15
8
8
  - 근거: [데이터 구성 계약](../../data-workflows.md), `src/data-workflows.ts`, 양 renderer의 `src/data-workflows.tsx`
9
9
  - 스토리북: `배포/구성/입력과 작성/가져오기 열 연결`, `배포/구성/정보 표시/전환 퍼널`, `배포/구성/정보 표시/코호트 잔존율`, `배포/구성/정보 표시/상관 행렬`, `배포/구성/정보 표시/목표 달성 요약`, `배포/구성/정보 표시/분포 구간 탐색`
@@ -88,4 +88,4 @@ Native 차트는 기존 react-native-svg optional peer를 사용한다. 새 제
88
88
  - 순차가 아닌 지표를 퍼널에 넣지 않는다. 실제 원인 데이터 없이 이탈 사유를 생성하지 않는다.
89
89
  - 히스토그램 전체 선택에서 같은 domain을 유지한다. 누락값·범위 밖 count를 제품 summaryLabel에 표현한다.
90
90
  - mapping 변경만으로 저장을 실행하지 않는다. 서버 확정·권한·멱등성은 실제 importer 책임이다.
91
- - 미게시 개발 API이므로 현재 설치된 소비 앱에서 사용할 수 있다고 보고하지 않는다.
91
+ - npm 1.21.0에서 제공하며 소비 앱의 실제 설치 버전을 확인한다.
@@ -3,7 +3,7 @@
3
3
  - 단계: 구성
4
4
  - 상태: 배포
5
5
  - 지원: Web · Native
6
- - 적용: 미게시(1.20.0 이후)
6
+ - 적용: 1.21.0
7
7
  - 검토일: 2026-10-15
8
8
  - 근거: [미디어 제어 계약](../../media-transport.md), `src/media-transport.ts`, 양 renderer `src/media-transport.tsx`
9
9
  - 스토리북: `배포/구성/직접 조작과 모션/미디어 재생 제어`
@@ -84,4 +84,4 @@ import { MediaTransport } from "@hjmds/react-native/media-transport";
84
84
  - duration null/0에 가짜 분모나 임의 길이를 넣지 않는다.
85
85
  - active=false는 컨트롤 수명이다. 플레이어 pause/dispose도 제품 adapter에서 수행한다.
86
86
  - 다른 미디어 엔티티로 전환할 때 key를 바꾸고 이전 플레이어·요청을 정리한다.
87
- - Native 재생 모듈 없음 안내를 실제 재생 성공으로 기록하지 않는다. 새 API는 아직 미게시다.
87
+ - Native 재생 모듈 없음 안내를 실제 재생 성공으로 기록하지 않는다. 새 API는 npm 1.21.0에서 제공한다.
@@ -3,7 +3,7 @@
3
3
  - 단계: 구성
4
4
  - 상태: 배포
5
5
  - 지원: Web · Native
6
- - 적용: 미게시(1.20.0 이후)
6
+ - 적용: 1.21.0
7
7
  - 검토일: 2026-10-15
8
8
  - 근거: [사회적 행동 계약](../../social-compositions.md), 양 renderer의 `src/social-compositions.tsx`
9
9
  - 스토리북: `배포/구성/정보 표시/팔로우 프로필`, `배포/구성/선택과 필터/행사 참석 응답`
@@ -3,7 +3,7 @@
3
3
  - 단계: 구성
4
4
  - 상태: 배포
5
5
  - 지원: Web · Native
6
- - 적용: 미게시(1.20.0 이후)
6
+ - 적용: 1.21.0
7
7
  - 검토일: 2026-10-15
8
8
  - 근거: [스트림 응답 계약](../../streaming-answer.md), `src/streaming-answer.ts`, 양 renderer `src/streaming-answer.tsx`
9
9
  - 스토리북: `배포/구성/피드백과 복구/스트림 응답과 중지`
@@ -3,7 +3,7 @@
3
3
  - 단계: 구성
4
4
  - 상태: 배포
5
5
  - 지원: Web · Native
6
- - 적용: 미게시(1.20.0 이후)
6
+ - 적용: 1.21.0
7
7
  - 검토일: 2026-10-15
8
8
  - 근거: [작업 선택 계약](../../task-controls.md), `src/task-controls.ts`, 양 renderer의 `src/task-controls.tsx`
9
9
  - 스토리북: `배포/구성/입력과 작성/분할 실행`, `배포/구성/입력과 작성/비밀번호 규칙 확인`, `배포/구성/탐색과 이동/계정 전환`, `배포/구성/선택과 필터/요금 주기 선택`
@@ -90,4 +90,4 @@ import { AccountSwitcher } from "@hjmds/react-native/task-controls";
90
90
  - 가격 formatter가 실제 amountMinor/interval/intervalCount와 일치해야 한다. 할인·월 환산액은 추정하지 않는다.
91
91
  - 옵션 선택으로 결제를 시작하지 않는다. 실제 결제·약관·상품 검증은 onContinue 뒤 제품 흐름 책임이다.
92
92
  - 다른 엔티티/세션으로 전환할 때 host key를 바꾸고 늦은 제품 API 응답도 제품 상태 계층에서 검증한다.
93
- - 신규 미게시 API다. 기기·실제 로그인·결제·npm 게시 완료로 안내하지 않는다.
93
+ - npm 1.21.0 API다. 기기·실제 로그인·결제 검증과 npm 게시를 구분한다.
@@ -3,7 +3,7 @@
3
3
  - 단계: 구성
4
4
  - 상태: 배포
5
5
  - 지원: Web · Native
6
- - 적용: 미게시(1.20.0 이후)
6
+ - 적용: 1.21.0
7
7
  - 검토일: 2026-10-15
8
8
  - 근거: [선택 반응 계약](../../toggle-feedback.md), `src/toggle-feedback.ts`, 양 renderer의 `src/toggle-feedback.tsx`
9
9
  - 스토리북: `배포/구성/직접 조작과 모션/선택 반응 버튼`
@@ -3,7 +3,7 @@
3
3
  - 단계: 구성
4
4
  - 상태: 배포
5
5
  - 지원: Web · Native
6
- - 적용: 미게시(1.20.0 이후)
6
+ - 적용: 1.21.0
7
7
  - 검토일: 2026-10-15
8
8
  - 근거: [실제 전송 계약](../../transfer-task.md), `src/transfer-task.ts`, 양 renderer `src/transfer-task.tsx`
9
9
  - 스토리북: `배포/구성/피드백과 복구/전송 진행과 취소`
@@ -83,4 +83,4 @@ import { TransferTask } from "@hjmds/react-native/transfer-task";
83
83
  - 취소 클릭만으로 취소 완료를 표시하지 않는다. abort 요청과 실제 AbortError를 구분한다.
84
84
  - 압축 Content-Length와 decoded byte 수를 같은 단위라고 가정하지 않는다.
85
85
  - 부분 파일 정리·요청 멱등성·저장/서버 확정은 실제 adapter 소유다.
86
- - 미게시 API다. 수신 성공을 OS 저장·운영 업로드·기기 검증 완료로 표현하지 않는다.
86
+ - npm 1.21.0 API다. 수신 성공을 OS 저장·운영 업로드·기기 검증 완료로 표현하지 않는다.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hjmds/design-contracts",
3
- "version": "1.21.0",
3
+ "version": "1.22.0",
4
4
  "description": "Renderer-neutral design contracts, tokens, recipes, and behaviors shared by HJM products.",
5
5
  "license": "MIT",
6
6
  "repository": {