ksk-design-system 1.37.4 → 1.37.5
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.
- package/AGENTS.md +20 -6
- package/CLAUDE.md +5 -5
- package/PUBLISHING.md +22 -22
- package/RELEASE.md +4 -4
- package/contracts/components.json +66 -17
- package/dist/class-names.js +1 -1
- package/dist/index.js +3711 -3104
- package/dist/{server-variants-Dr_V3bDI.js → server-variants-EoHx5Klh.js} +1 -0
- package/dist/types/components/patterns/admin/data-table.d.ts +59 -4
- package/dist/types/components/patterns/admin/kebab-menu.d.ts +10 -2
- package/dist/types/components/patterns/celebration.d.ts +17 -0
- package/dist/types/components/patterns/empty-state.d.ts +4 -1
- package/dist/types/components/patterns/share-buttons.d.ts +5 -3
- package/dist/types/components/ui/button.d.ts +1 -1
- package/dist/types/components/ui/dialog.d.ts +17 -6
- package/dist/types/components/ui/sheet.d.ts +17 -6
- package/dist/types/components/ui/sub-nav.d.ts +4 -0
- package/dist/types/index.d.ts +6 -3
- package/dist/types/lib/server-variants/button-variants.d.ts +1 -1
- package/package.json +2 -1
- package/src/components/COMPONENT_LOOKUP.md +9 -8
- package/src/preset.css +14 -0
- package/src/styles/glass.css +8 -0
package/AGENTS.md
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
```
|
|
18
18
|
contracts/rules.json # 禁止パターン32件・AIアンチパターン10件・a11y要件
|
|
19
|
-
contracts/components.json # 全
|
|
19
|
+
contracts/components.json # 全112コンポーネントの定義・バリアント・ルール
|
|
20
20
|
tokens.json # カラー・スペーシング・シャドウトークン
|
|
21
21
|
src/components/COMPONENT_LOOKUP.md # バリアント・インポートパス一覧(自動生成)
|
|
22
22
|
```
|
|
@@ -90,10 +90,10 @@ Brand色を差し替え(10行)→ Primitive Layer → Semantic Layer → Bri
|
|
|
90
90
|
| ファイル | 内容 |
|
|
91
91
|
|---------|------|
|
|
92
92
|
| **AGENTS.md**(本ファイル) | 概要・技術スタック・コマンド・クイックスタート |
|
|
93
|
-
| **contracts/components.json** | 全
|
|
93
|
+
| **contracts/components.json** | 全112コンポーネントの構造化定義(バリアント・アクセシビリティ要件) |
|
|
94
94
|
| **contracts/rules.json** | 禁止パターン32件・AIアンチパターン10件・アクセシビリティ要件 |
|
|
95
95
|
| **tokens.json** | カラー・スペーシング・シャドウトークンの機械可読定義 |
|
|
96
|
-
| **src/components/COMPONENT_LOOKUP.md** | 全
|
|
96
|
+
| **src/components/COMPONENT_LOOKUP.md** | 全112コンポーネントのバリアント・インポートパス(自動生成) |
|
|
97
97
|
| **DESIGN.md** | AI エージェント向け視覚言語サマリ(トークン+意図・voice・motion) |
|
|
98
98
|
|
|
99
99
|
---
|
|
@@ -103,12 +103,12 @@ Brand色を差し替え(10行)→ Primitive Layer → Semantic Layer → Bri
|
|
|
103
103
|
```
|
|
104
104
|
src/
|
|
105
105
|
├── components/
|
|
106
|
-
│ ├── ui/ # 汎用UIコンポーネント
|
|
106
|
+
│ ├── ui/ # 汎用UIコンポーネント 56個
|
|
107
107
|
│ ├── patterns/
|
|
108
108
|
│ │ ├── commerce/ # EC系 11個
|
|
109
109
|
│ │ ├── admin/ # 管理画面系 8個
|
|
110
110
|
│ │ ├── shells/ # レイアウトシェル 3個
|
|
111
|
-
│ │ └── ... # 汎用パターン
|
|
111
|
+
│ │ └── ... # 汎用パターン 34個
|
|
112
112
|
│ └── icons/
|
|
113
113
|
├── styles/
|
|
114
114
|
│ ├── primitive.css # Layer 1: 原色パレット
|
|
@@ -116,7 +116,7 @@ src/
|
|
|
116
116
|
│ └── typography.css # typo-* ユーティリティ 17クラス
|
|
117
117
|
├── themes/ # default / orange / green / violet / blue
|
|
118
118
|
├── preset.css # 外部プロジェクト向けプリセット
|
|
119
|
-
└── index.ts # Public API(
|
|
119
|
+
└── index.ts # Public API(112コンポーネント)
|
|
120
120
|
```
|
|
121
121
|
|
|
122
122
|
---
|
|
@@ -188,3 +188,17 @@ import { Button, Card, Input, FormField } from "ksk-design-system"
|
|
|
188
188
|
- [ ] `bash scripts/check-drift.sh` を実行して乖離がないことを確認
|
|
189
189
|
- [ ] Storybook のストーリーファイル(`.stories.tsx`)を作成
|
|
190
190
|
- [ ] `node scripts/generate-component-lookup.mjs` を実行して COMPONENT_LOOKUP.md を更新
|
|
191
|
+
|
|
192
|
+
<!-- BEGIN:codex-pr-review-guidelines -->
|
|
193
|
+
## Codex PR Review Guidelines
|
|
194
|
+
|
|
195
|
+
Codex code review is expected to run on pull requests for this repository after the repository is enabled in ChatGPT Codex Code review settings. If an immediate review is needed, comment `@codex review` on the pull request.
|
|
196
|
+
|
|
197
|
+
When reviewing, prioritize P0/P1 issues: security/privacy regressions, data loss, broken auth, broken build/test, user-visible behavior changes, and missing validation around env vars, migrations, background jobs, notifications, payments, storage, and external APIs.
|
|
198
|
+
|
|
199
|
+
For UI changes, verify design-system usage before accepting scratch components or hard-coded styling. Reusable primitives that belong in the design system should be moved there instead of duplicated locally.
|
|
200
|
+
|
|
201
|
+
Respect this repository's local ownership rules and validation commands. A review should mention the commands that were run, or explicitly state what could not be run. Do not approve or recommend merge while required checks, migrations, secrets, or runtime configuration are unverified.
|
|
202
|
+
|
|
203
|
+
Do not implement or change payment, billing, or subscription logic without explicit user confirmation.
|
|
204
|
+
<!-- END:codex-pr-review-guidelines -->
|
package/CLAUDE.md
CHANGED
|
@@ -57,10 +57,10 @@ Brand色を差し替え(10行)→ Primitive Layer → Semantic Layer → Bri
|
|
|
57
57
|
|---------|------|
|
|
58
58
|
| **CLAUDE.md**(本ファイル) | 概要・技術スタック・コマンド・クイックスタート(Claude Code用) |
|
|
59
59
|
| **AGENTS.md** | 同上(Codex用。セッション開始時の読み込み指示・編集後コマンドを明記) |
|
|
60
|
-
| **contracts/components.json** | 全
|
|
60
|
+
| **contracts/components.json** | 全112コンポーネントの構造化定義(バリアント・アクセシビリティ要件) |
|
|
61
61
|
| **contracts/rules.json** | 禁止パターン32件・AIアンチパターン10件・アクセシビリティ要件 |
|
|
62
62
|
| **tokens.json** | カラー・スペーシング・シャドウトークンの機械可読定義 |
|
|
63
|
-
| **src/components/COMPONENT_LOOKUP.md** | 全
|
|
63
|
+
| **src/components/COMPONENT_LOOKUP.md** | 全112コンポーネントのバリアント・インポートパス一覧(自動生成) |
|
|
64
64
|
| **DESIGN.md** | AI エージェント向け視覚言語サマリ(トークン+意図・voice・motion) |
|
|
65
65
|
|
|
66
66
|
**セッション開始時 / コードを書く前に必ず読む:**
|
|
@@ -78,12 +78,12 @@ Brand色を差し替え(10行)→ Primitive Layer → Semantic Layer → Bri
|
|
|
78
78
|
```
|
|
79
79
|
src/
|
|
80
80
|
├── components/
|
|
81
|
-
│ ├── ui/ # 汎用UIコンポーネント
|
|
81
|
+
│ ├── ui/ # 汎用UIコンポーネント 56個
|
|
82
82
|
│ ├── patterns/
|
|
83
83
|
│ │ ├── commerce/ # EC系 11個
|
|
84
84
|
│ │ ├── admin/ # 管理画面系 8個
|
|
85
85
|
│ │ ├── shells/ # レイアウトシェル 3個
|
|
86
|
-
│ │ └── ... # 汎用パターン
|
|
86
|
+
│ │ └── ... # 汎用パターン 34個
|
|
87
87
|
│ └── icons/
|
|
88
88
|
├── styles/
|
|
89
89
|
│ ├── primitive.css # Layer 1: 原色パレット
|
|
@@ -91,7 +91,7 @@ src/
|
|
|
91
91
|
│ └── typography.css # typo-* ユーティリティ 17クラス
|
|
92
92
|
├── themes/ # default / orange / green / violet / blue
|
|
93
93
|
├── preset.css # 外部プロジェクト向けプリセット
|
|
94
|
-
└── index.ts # Public API(
|
|
94
|
+
└── index.ts # Public API(112コンポーネント)
|
|
95
95
|
```
|
|
96
96
|
|
|
97
97
|
---
|
package/PUBLISHING.md
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
`ksk-design-system` のリリース・配布手順。
|
|
4
4
|
|
|
5
|
-
> **配布方式**:
|
|
6
|
-
> `npm
|
|
7
|
-
> `package.json`
|
|
5
|
+
> **配布方式**: v1.36.0 以降は npm レジストリ経由で配布する。
|
|
6
|
+
> `npm publish --access public` で公開し、各消費リポジトリの
|
|
7
|
+
> `package.json` は `ksk-design-system@X.Y.Z` を参照する。
|
|
8
8
|
> 消費リポ: belle-todo / trip_todo / ninshin-todo / yokoku-app / pawly(いずれも `~/LocalDev/` 直下)。
|
|
9
9
|
|
|
10
10
|
## 前提
|
|
@@ -23,9 +23,10 @@ bash scripts/release.sh minor # patch / minor / major / x.y.z
|
|
|
23
23
|
1. `git diff --quiet` & main ブランチチェック(曜日チェック)
|
|
24
24
|
2. `npm run check`
|
|
25
25
|
3. `npm version <level>`(tag 切り)
|
|
26
|
-
4. `npm pack
|
|
27
|
-
5. `
|
|
28
|
-
6. `
|
|
26
|
+
4. `npm pack`(prepack で `dist/` を生成し、中身を検証)
|
|
27
|
+
5. `npm publish --access public`
|
|
28
|
+
6. `git push origin main --tags`
|
|
29
|
+
7. `bash scripts/update-consumers.sh <version>`(5 リポへ PR 自動作成)
|
|
29
30
|
|
|
30
31
|
> v1.35.0 で旧名 `@ksk/design-system` 互換 tgz の生成は廃止。
|
|
31
32
|
> 消費5リポ + todo-shared が新名 `ksk-design-system` に移行済。
|
|
@@ -61,14 +62,15 @@ npm version major
|
|
|
61
62
|
`npm version` が自動で `package.json` を更新し、`v1.16.0` タグを切る。
|
|
62
63
|
`dist/` の再ビルド・コミットはこの version bump のタイミングでのみ行う。
|
|
63
64
|
|
|
64
|
-
### 3.
|
|
65
|
+
### 3. pack / publish
|
|
65
66
|
|
|
66
67
|
```bash
|
|
67
|
-
npm pack
|
|
68
|
+
npm pack --dry-run
|
|
69
|
+
npm publish --access public
|
|
68
70
|
```
|
|
69
71
|
|
|
70
|
-
`prepack` フックで `npm run build:lib`
|
|
71
|
-
`
|
|
72
|
+
`prepack` フックで `npm run build:lib` が自動実行され、公開パッケージに入る
|
|
73
|
+
`dist/` / `contracts/` / `tokens.json` / docs の中身が更新される。
|
|
72
74
|
|
|
73
75
|
中身を確認したい場合:
|
|
74
76
|
|
|
@@ -98,18 +100,16 @@ git push origin main --tags
|
|
|
98
100
|
|
|
99
101
|
```bash
|
|
100
102
|
# 全リポ一括
|
|
101
|
-
bash scripts/
|
|
103
|
+
bash scripts/update-consumers.sh 1.16.0
|
|
102
104
|
|
|
103
105
|
# 特定リポのみ
|
|
104
|
-
bash scripts/
|
|
106
|
+
bash scripts/update-consumers.sh 1.16.0 belle-todo pawly
|
|
105
107
|
```
|
|
106
108
|
|
|
107
|
-
各消費リポで `chore/bump-ds-<version>`
|
|
108
|
-
`
|
|
109
|
+
各消費リポで `chore/bump-ds-<version>` ブランチを切り、`package.json` の
|
|
110
|
+
`ksk-design-system` 参照書換・`npm install`・commit・push・PR 作成まで自動で行う。
|
|
109
111
|
失敗したリポはスキップされ最後にまとめて報告されるので、個別にリトライする。
|
|
110
112
|
|
|
111
|
-
過去版の tgz は `vendor/` に残す運用(ロールバックを git revert だけで済ませるため)。
|
|
112
|
-
|
|
113
113
|
### 6. PR マージ
|
|
114
114
|
|
|
115
115
|
各消費リポの PR で CI が green なことを確認してマージ。
|
|
@@ -125,9 +125,9 @@ bash scripts/bump-consumers.sh 1.16.0 belle-todo pawly
|
|
|
125
125
|
git commit -m "fix: 重大なバグの説明"
|
|
126
126
|
|
|
127
127
|
npm version patch
|
|
128
|
-
npm
|
|
128
|
+
npm publish --access public
|
|
129
129
|
git push origin main --tags
|
|
130
|
-
bash scripts/
|
|
130
|
+
bash scripts/update-consumers.sh <version> <影響リポ...>
|
|
131
131
|
```
|
|
132
132
|
|
|
133
133
|
修正コミットの背景・影響範囲を `RELEASE.md` の「ホットフィックス履歴」セクションに必ず追記。
|
|
@@ -148,13 +148,13 @@ bash scripts/bump-consumers.sh <version> <影響リポ...>
|
|
|
148
148
|
## 注意
|
|
149
149
|
|
|
150
150
|
- 配布前に必ず `npm pack --dry-run` で中身確認
|
|
151
|
+
- npm registry 公開には `npm login` 済みであること
|
|
151
152
|
- `package.json#exports` を変更したら必ず利用側プロジェクトでの import を試す
|
|
152
153
|
- 金曜午後のリリースは厳禁(週末に障害対応できない)
|
|
153
154
|
- メジャーリリースは月初の月曜が望ましい(フィードバック収集期間が取れる)
|
|
154
155
|
|
|
155
156
|
## npm 公開について
|
|
156
157
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
workflow の再作成をセットで行うこと。
|
|
158
|
+
v1.36.0 以降は npm registry 経由配布。GitHub Actions による自動 publish はなく、
|
|
159
|
+
ローカルの `npm login` 済み環境から `scripts/release.sh` で公開する。
|
|
160
|
+
CI/CD に戻す場合は、NPM_TOKEN の Secrets 登録と workflow の再作成をセットで行うこと。
|
package/RELEASE.md
CHANGED
|
@@ -19,9 +19,9 @@
|
|
|
19
19
|
```
|
|
20
20
|
T-4w 破壊変更内容の確定 → MIGRATION.md 草案作成
|
|
21
21
|
T-3w scripts/codemod/vX-to-vY.mjs を実装、利用側で dry-run 検証
|
|
22
|
-
T-2w RC
|
|
22
|
+
T-2w RC 版を 1〜2 の消費リポへ先行配布、動作確認
|
|
23
23
|
T-1w feedback 反映、ESLint 旧 API ルールを "error" に昇格
|
|
24
|
-
T-0 全消費リポへ配布 (
|
|
24
|
+
T-0 全消費リポへ配布 (update-consumers.sh)、リリースノート公開、社内告知
|
|
25
25
|
T+1w 次の patch で旧 API を完全削除
|
|
26
26
|
```
|
|
27
27
|
|
|
@@ -31,7 +31,7 @@ T+1w 次の patch で旧 API を完全削除
|
|
|
31
31
|
|
|
32
32
|
1. main で直接修正(or hotfix ブランチ)
|
|
33
33
|
2. `npm version patch`
|
|
34
|
-
3. `npm
|
|
34
|
+
3. `npm publish --access public` → `bash scripts/update-consumers.sh <version> <影響リポ...>`
|
|
35
35
|
4. 影響範囲・原因・修正内容を「ホットフィックス履歴」に記録
|
|
36
36
|
5. ポストモーテムを Issue / wiki に書く
|
|
37
37
|
|
|
@@ -63,7 +63,7 @@ GitHub Releases にコピペできるテンプレ:
|
|
|
63
63
|
- ...
|
|
64
64
|
|
|
65
65
|
### Migration
|
|
66
|
-
- 破壊変更なし。
|
|
66
|
+
- 破壊変更なし。npm package version の更新 PR(update-consumers.sh が自動作成)をマージするだけで OK。
|
|
67
67
|
```
|
|
68
68
|
|
|
69
69
|
破壊変更がある場合は必ず:
|
|
@@ -5,18 +5,18 @@
|
|
|
5
5
|
"description": "全コンポーネントの構造化定義。バリアント・アクセシビリティ要件・使用ルールを機械可読形式で管理。",
|
|
6
6
|
"counts": {
|
|
7
7
|
"ui": 56,
|
|
8
|
-
"patterns":
|
|
8
|
+
"patterns": 34,
|
|
9
9
|
"commerce": 11,
|
|
10
10
|
"admin": 8,
|
|
11
11
|
"shells": 3,
|
|
12
|
-
"total":
|
|
12
|
+
"total": 112
|
|
13
13
|
}
|
|
14
14
|
},
|
|
15
15
|
"ui": [
|
|
16
16
|
{
|
|
17
17
|
"name": "Button",
|
|
18
18
|
"path": "src/components/ui/button.tsx",
|
|
19
|
-
"description": "アクションボタン。最重要CTAにはdefault、Liquid Glass背景にはglass。アイコン単独はiconサイズ群。",
|
|
19
|
+
"description": "アクションボタン。最重要CTAにはdefault、Liquid Glass背景にはglass、暗背景上のLiquid Glassにはglass-inverse。アイコン単独はiconサイズ群。",
|
|
20
20
|
"variants": [
|
|
21
21
|
"default",
|
|
22
22
|
"secondary",
|
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
"link",
|
|
27
27
|
"destructive",
|
|
28
28
|
"glass",
|
|
29
|
+
"glass-inverse",
|
|
29
30
|
"accent",
|
|
30
31
|
"inverse",
|
|
31
32
|
"ghost-inverse"
|
|
@@ -50,6 +51,7 @@
|
|
|
50
51
|
"Must use <Button> not <button>",
|
|
51
52
|
"Icon-only buttons require aria-label",
|
|
52
53
|
"variant=glass は背景がグラデーション/写真の場合のみ使用",
|
|
54
|
+
"variant=glass-inverse は暗い写真・動画・濃色面上の Liquid Glass CTA 専用",
|
|
53
55
|
"variant=inverse / ghost-inverse は暗背景・ヒーローセクション専用",
|
|
54
56
|
"size=hero は hero / final-CTA 専用(ピル型 56px)"
|
|
55
57
|
]
|
|
@@ -208,7 +210,7 @@
|
|
|
208
210
|
{
|
|
209
211
|
"name": "Dialog",
|
|
210
212
|
"path": "src/components/ui/dialog.tsx",
|
|
211
|
-
"description": "タスク面用の中央モーダル(role=dialog)。フォーム入力・絞り込み等の「作業する」面に使う。削除/送信等の割り込み確認は ConfirmDialog / AlertDialog(role=alertdialog) を使い分ける。モバイルは ResponsiveDialog 推奨。position=\"top\" でモバイル向け上部寄せ。",
|
|
213
|
+
"description": "タスク面用の中央モーダル(role=dialog)。フォーム入力・絞り込み等の「作業する」面に使う。削除/送信等の割り込み確認は ConfirmDialog / AlertDialog(role=alertdialog) を使い分ける。モバイルは ResponsiveDialog 推奨。position=\"top\" でモバイル向け上部寄せ。autoFocus / restoreFocusOnClose / closeOnEsc / bodyScrollLock でフォーカス・スクロール挙動を制御可能。",
|
|
212
214
|
"subcomponents": [
|
|
213
215
|
"DialogTrigger",
|
|
214
216
|
"DialogContent",
|
|
@@ -221,13 +223,15 @@
|
|
|
221
223
|
"rules": [
|
|
222
224
|
"rounded-2xl (16px)",
|
|
223
225
|
"shadow-[var(--shadow-dialog)]",
|
|
224
|
-
"p-6 padding"
|
|
226
|
+
"p-6 padding",
|
|
227
|
+
"autoFocus は first-input / title / ref / false を指定可能",
|
|
228
|
+
"description prop は sr-only description を自動生成する"
|
|
225
229
|
]
|
|
226
230
|
},
|
|
227
231
|
{
|
|
228
232
|
"name": "Sheet",
|
|
229
233
|
"path": "src/components/ui/sheet.tsx",
|
|
230
|
-
"description": "サイドパネル・ボトムシート。フィルター・メニュー・補助入力に使用。モーダルより軽いコンテキストに。snapPoints でスナップ式、swipeToClose で下スワイプ閉じを有効化。",
|
|
234
|
+
"description": "サイドパネル・ボトムシート。フィルター・メニュー・補助入力に使用。モーダルより軽いコンテキストに。snapPoints でスナップ式、swipeToClose で下スワイプ閉じを有効化。autoFocus / restoreFocusOnClose / closeOnEsc / bodyScrollLock でフォーカス・スクロール挙動を制御可能。",
|
|
231
235
|
"subcomponents": [
|
|
232
236
|
"SheetTrigger",
|
|
233
237
|
"SheetContent",
|
|
@@ -240,7 +244,10 @@
|
|
|
240
244
|
],
|
|
241
245
|
"rules": [
|
|
242
246
|
"Side panel, not modal",
|
|
243
|
-
"swipeToClose は side=bottom / bottom-glass のみ有効"
|
|
247
|
+
"swipeToClose は side=bottom / bottom-glass のみ有効",
|
|
248
|
+
"swipeToClose mode は max-h-[90dvh] を自動付与し、viewport 外にはみ出さない",
|
|
249
|
+
"autoFocus は first-input / title / ref / false を指定可能",
|
|
250
|
+
"description prop は sr-only description を自動生成する"
|
|
244
251
|
],
|
|
245
252
|
"variants": {
|
|
246
253
|
"side": [
|
|
@@ -539,11 +546,12 @@
|
|
|
539
546
|
{
|
|
540
547
|
"name": "SubNav",
|
|
541
548
|
"path": "src/components/ui/sub-nav.tsx",
|
|
542
|
-
"description": "横スクロール サブナビゲーション。underline / chip
|
|
549
|
+
"description": "横スクロール サブナビゲーション。underline / chip バリアント。アクティブ項目の自動スクロール、item description/title の補足説明対応。",
|
|
543
550
|
"variants": [],
|
|
544
551
|
"accessibility": [
|
|
545
552
|
"role=\"tablist\"",
|
|
546
|
-
"aria-selected on active tab"
|
|
553
|
+
"aria-selected on active tab",
|
|
554
|
+
"description/title は title と aria-describedby に反映"
|
|
547
555
|
],
|
|
548
556
|
"rules": []
|
|
549
557
|
},
|
|
@@ -835,7 +843,12 @@
|
|
|
835
843
|
{
|
|
836
844
|
"name": "EmptyState",
|
|
837
845
|
"path": "src/components/patterns/empty-state.tsx",
|
|
838
|
-
"description": "空状態プレースホルダー。データゼロ時のUX向上に使用。アクションまたは説明文を必ず含める。",
|
|
846
|
+
"description": "空状態プレースホルダー。データゼロ時のUX向上に使用。アクションまたは説明文を必ず含める。size=default / compact / inline に対応。",
|
|
847
|
+
"sizes": [
|
|
848
|
+
"default",
|
|
849
|
+
"compact",
|
|
850
|
+
"inline"
|
|
851
|
+
],
|
|
839
852
|
"rules": [
|
|
840
853
|
"Always include an action or explanation"
|
|
841
854
|
]
|
|
@@ -924,7 +937,8 @@
|
|
|
924
937
|
"path": "src/components/patterns/form-field.tsx",
|
|
925
938
|
"description": "フォームフィールドラッパー。Label+Input+エラーメッセージをセットで管理。バリデーション表示付き。",
|
|
926
939
|
"rules": [
|
|
927
|
-
"Label + Input + error message as unit"
|
|
940
|
+
"Label + Input + error message as unit",
|
|
941
|
+
"required asterisk は Brand 色。Caution 色は入力エラーとの混同を避ける"
|
|
928
942
|
]
|
|
929
943
|
},
|
|
930
944
|
{
|
|
@@ -992,6 +1006,26 @@
|
|
|
992
1006
|
"Use ConfirmDialog not custom Dialog for confirmation flows"
|
|
993
1007
|
]
|
|
994
1008
|
},
|
|
1009
|
+
{
|
|
1010
|
+
"name": "Celebration",
|
|
1011
|
+
"path": "src/components/patterns/celebration.tsx",
|
|
1012
|
+
"description": "マイルストーン達成・大目標達成などの祝い演出。confetti / emoji 表示、prefers-reduced-motion 対応。",
|
|
1013
|
+
"variants": [
|
|
1014
|
+
"confetti",
|
|
1015
|
+
"emoji",
|
|
1016
|
+
"both",
|
|
1017
|
+
"none"
|
|
1018
|
+
],
|
|
1019
|
+
"accessibility": [
|
|
1020
|
+
"role=status",
|
|
1021
|
+
"aria-live=polite",
|
|
1022
|
+
"prefers-reduced-motion で confetti を抑制"
|
|
1023
|
+
],
|
|
1024
|
+
"rules": [
|
|
1025
|
+
"一時的な達成演出に使用",
|
|
1026
|
+
"ローディングや常時表示の装飾用途には使わない"
|
|
1027
|
+
]
|
|
1028
|
+
},
|
|
995
1029
|
{
|
|
996
1030
|
"name": "BottomSheetForm",
|
|
997
1031
|
"path": "src/components/patterns/bottom-sheet-form.tsx",
|
|
@@ -1076,7 +1110,17 @@
|
|
|
1076
1110
|
{
|
|
1077
1111
|
"name": "ShareButtons",
|
|
1078
1112
|
"path": "src/components/patterns/share-buttons.tsx",
|
|
1079
|
-
"description": "シェアボタン群。LINE /
|
|
1113
|
+
"description": "シェアボタン群。LINE / X / Facebook / Instagram / Email / WhatsApp / Telegram / Copy に対応し、region で既定 providers を切替可能。",
|
|
1114
|
+
"features": [
|
|
1115
|
+
"providers",
|
|
1116
|
+
"region defaults",
|
|
1117
|
+
"copy fallback",
|
|
1118
|
+
"circle / inline layout"
|
|
1119
|
+
],
|
|
1120
|
+
"rules": [
|
|
1121
|
+
"providers を渡すと明示順で表示",
|
|
1122
|
+
"region=jp は line/x/copy、region=us は whatsapp/x/copy を既定にする"
|
|
1123
|
+
]
|
|
1080
1124
|
},
|
|
1081
1125
|
{
|
|
1082
1126
|
"name": "FileUpload",
|
|
@@ -1332,24 +1376,29 @@
|
|
|
1332
1376
|
{
|
|
1333
1377
|
"name": "DataTable",
|
|
1334
1378
|
"path": "src/components/patterns/admin/data-table.tsx",
|
|
1335
|
-
"description": "
|
|
1379
|
+
"description": "管理画面データテーブル。rows/columns の高水準 API と、既存サブコンポーネントによる手組み API の両方に対応。ソート・チェックボックス・行アクション・インライン編集・ドラッグ並び替え・セクション行対応。",
|
|
1336
1380
|
"features": [
|
|
1381
|
+
"rows-columns-api",
|
|
1337
1382
|
"sort",
|
|
1338
1383
|
"checkbox",
|
|
1339
1384
|
"actions",
|
|
1340
1385
|
"inline-edit",
|
|
1341
|
-
"drag"
|
|
1386
|
+
"drag",
|
|
1387
|
+
"section-row"
|
|
1342
1388
|
],
|
|
1343
1389
|
"rules": [
|
|
1344
|
-
"
|
|
1390
|
+
"rows/columns API は最短実装向け",
|
|
1391
|
+
"複雑なセル構成は DataTableHead, DataTableRow, DataTableCell などのサブコンポーネントを使う"
|
|
1345
1392
|
]
|
|
1346
1393
|
},
|
|
1347
1394
|
{
|
|
1348
1395
|
"name": "KebabMenu",
|
|
1349
1396
|
"path": "src/components/patterns/admin/kebab-menu.tsx",
|
|
1350
|
-
"description": "
|
|
1397
|
+
"description": "テーブル行アクションメニュー(⋮ボタン)。description / shortcut / disabled / separator / destructive item に対応。",
|
|
1351
1398
|
"rules": [
|
|
1352
|
-
"For table row actions only"
|
|
1399
|
+
"For table row actions only",
|
|
1400
|
+
"description は補足説明、shortcut は右側表示",
|
|
1401
|
+
"{ type: \"separator\" } で区切り線を挿入"
|
|
1353
1402
|
]
|
|
1354
1403
|
},
|
|
1355
1404
|
{
|
package/dist/class-names.js
CHANGED