@godxjp/ui 28.12.0 → 29.0.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 (178) hide show
  1. package/agent/START-HERE.md +29 -10
  2. package/agent/components/Anchor.json +6 -1
  3. package/agent/components/AppLauncher.json +10 -0
  4. package/agent/components/AppShell.json +1 -1
  5. package/agent/components/AreaChart.json +19 -1
  6. package/agent/components/Attachments.json +26 -1
  7. package/agent/components/BarChart.json +11 -1
  8. package/agent/components/BranchScopePicker.json +10 -0
  9. package/agent/components/Cascader.json +6 -1
  10. package/agent/components/Checkbox.json +6 -0
  11. package/agent/components/CompactBarTrend.json +1 -1
  12. package/agent/components/CredentialReveal.json +21 -0
  13. package/agent/components/DataState.json +1 -1
  14. package/agent/components/DataTable.json +4 -4
  15. package/agent/components/FormField.json +1 -1
  16. package/agent/components/InfiniteQueryState.json +1 -1
  17. package/agent/components/Input.json +1 -1
  18. package/agent/components/InputOTP.json +35 -0
  19. package/agent/components/LineChart.json +20 -2
  20. package/agent/components/ListRow.json +1 -1
  21. package/agent/components/Masonry.json +1 -1
  22. package/agent/components/MasterDetail.json +1 -1
  23. package/agent/components/PasswordStrength.json +1 -1
  24. package/agent/components/PermissionMatrix.json +6 -1
  25. package/agent/components/SearchInput.json +5 -0
  26. package/agent/components/Select.json +1 -0
  27. package/agent/components/ServiceRolePanel.json +5 -0
  28. package/agent/components/Sidebar.json +1 -1
  29. package/agent/components/Switch.json +6 -0
  30. package/agent/components/Table.json +8 -3
  31. package/agent/components/Tabs.json +10 -0
  32. package/agent/components/ThemeScope.json +49 -0
  33. package/agent/components/TimeRangePicker.json +5 -0
  34. package/agent/components/Topbar.json +1 -0
  35. package/agent/components/TopbarItem.json +2 -1
  36. package/agent/components/Transfer.json +6 -1
  37. package/agent/components/TreeSelect.json +1 -1
  38. package/agent/components/Upload.json +5 -0
  39. package/agent/components/UploadCropDialog.json +1 -1
  40. package/agent/components/formatDate.json +1 -1
  41. package/agent/components-index.json +5 -0
  42. package/agent/components.json +297 -31
  43. package/agent/index.json +19 -9
  44. package/agent/llms.txt +10 -10
  45. package/agent/patterns/tenant-brand-color.json +28 -0
  46. package/agent/patterns-index.json +27 -0
  47. package/agent/patterns.json +28 -0
  48. package/agent/rules.json +15 -0
  49. package/agent/tokens.json +4965 -970
  50. package/dist/app/index.d.ts +3 -0
  51. package/dist/app/index.js +3 -0
  52. package/dist/app/tenant-theme.d.ts +80 -0
  53. package/dist/app/tenant-theme.js +154 -0
  54. package/dist/app/theme-axes.d.ts +14 -1
  55. package/dist/app/theme-axes.js +24 -31
  56. package/dist/components/charts/chart-cartesian.d.ts +5 -1
  57. package/dist/components/charts/chart-cartesian.js +15 -8
  58. package/dist/components/data-display/badge.d.ts +1 -1
  59. package/dist/components/data-display/badge.js +20 -2
  60. package/dist/components/data-display/carousel.js +4 -4
  61. package/dist/components/data-display/data-table.js +13 -2
  62. package/dist/components/data-display/permission-matrix.js +1 -1
  63. package/dist/components/data-display/table.d.ts +11 -2
  64. package/dist/components/data-display/table.js +18 -2
  65. package/dist/components/data-entry/control-appearance.d.ts +12 -6
  66. package/dist/components/data-entry/control-appearance.js +1 -1
  67. package/dist/components/data-entry/select.js +4 -3
  68. package/dist/components/feedback/dialog.js +6 -3
  69. package/dist/components/feedback/overlay-header-tone.d.ts +7 -0
  70. package/dist/components/feedback/overlay-header-tone.js +4 -4
  71. package/dist/components/feedback/sheet.d.ts +1 -1
  72. package/dist/components/feedback/sheet.js +6 -9
  73. package/dist/components/feedback/sonner.js +16 -3
  74. package/dist/components/general/button.js +22 -5
  75. package/dist/components/layout/affix.js +15 -1
  76. package/dist/components/layout/sidebar.js +7 -1
  77. package/dist/components/navigation/anchor.d.ts +1 -1
  78. package/dist/components/navigation/anchor.js +5 -4
  79. package/dist/components/navigation/app-setting-picker.js +1 -1
  80. package/dist/components/navigation/pagination.js +1 -1
  81. package/dist/components/navigation/tabs.js +15 -2
  82. package/dist/components/query/infinite-query-state.d.ts +22 -6
  83. package/dist/contracts/measurement.json +1 -1
  84. package/dist/i18n/messages/en.json +0 -697
  85. package/dist/i18n/messages/ja.json +0 -691
  86. package/dist/i18n/messages/vi.json +0 -691
  87. package/dist/lib/control-styles.d.ts +31 -11
  88. package/dist/lib/control-styles.js +6 -6
  89. package/dist/lib/overlay-portal.d.ts +20 -0
  90. package/dist/lib/overlay-portal.js +93 -0
  91. package/dist/props/components/app.prop.d.ts +12 -0
  92. package/dist/props/components/charts.prop.d.ts +30 -0
  93. package/dist/props/components/index.d.ts +1 -1
  94. package/dist/props/components/navigation.prop.d.ts +21 -2
  95. package/dist/props/components/query.prop.d.ts +36 -2
  96. package/dist/props/registry.d.ts +46 -1
  97. package/dist/props/registry.js +38 -3
  98. package/dist/styles/alert-layout.css +34 -14
  99. package/dist/styles/badge-layout.css +10 -6
  100. package/dist/styles/base.css +14 -5
  101. package/dist/styles/card-layout.css +19 -8
  102. package/dist/styles/chart-layout.css +22 -3
  103. package/dist/styles/control.css +165 -59
  104. package/dist/styles/data-display-layout.css +129 -36
  105. package/dist/styles/data-entry-layout.css +23 -87
  106. package/dist/styles/dialog-layout.css +49 -19
  107. package/dist/styles/float-button-layout.css +5 -5
  108. package/dist/styles/focus-ring.css +9 -5
  109. package/dist/styles/layout.css +42 -15
  110. package/dist/styles/logo-layout.css +1 -1
  111. package/dist/styles/motion.css +1 -1
  112. package/dist/styles/navigation-layout.css +90 -29
  113. package/dist/styles/shell-layout.css +63 -40
  114. package/dist/styles/table-layout.css +56 -17
  115. package/dist/styles/text-layout.css +13 -4
  116. package/dist/styles/toggle.css +8 -2
  117. package/dist/tokens/components/actions.css +1 -1
  118. package/dist/tokens/components/attachments.css +4 -4
  119. package/dist/tokens/components/badge.css +4 -4
  120. package/dist/tokens/components/callout.css +1 -1
  121. package/dist/tokens/components/card.css +9 -4
  122. package/dist/tokens/components/chart.css +10 -1
  123. package/dist/tokens/components/chat-bubble.css +1 -1
  124. package/dist/tokens/components/control.css +28 -10
  125. package/dist/tokens/components/conversations.css +2 -1
  126. package/dist/tokens/components/data-display.css +12 -7
  127. package/dist/tokens/components/descriptions.css +1 -1
  128. package/dist/tokens/components/draggable-panel.css +1 -1
  129. package/dist/tokens/components/feedback.css +28 -8
  130. package/dist/tokens/components/float-button.css +1 -1
  131. package/dist/tokens/components/legal-document.css +1 -1
  132. package/dist/tokens/components/logo.css +1 -1
  133. package/dist/tokens/components/mega-menu.css +5 -3
  134. package/dist/tokens/components/navigation.css +21 -7
  135. package/dist/tokens/components/segmented.css +8 -3
  136. package/dist/tokens/components/shell.css +19 -5
  137. package/dist/tokens/components/table.css +9 -1
  138. package/dist/tokens/components/thought-chain.css +1 -1
  139. package/dist/tokens/components/toggle.css +2 -0
  140. package/dist/tokens/components/tree.css +3 -1
  141. package/dist/tokens/components/upload.css +6 -6
  142. package/dist/tokens/components/welcome.css +1 -1
  143. package/dist/tokens/foundation.css +28 -1
  144. package/docs/COMPOSITION-VS-COMPONENT.md +31 -0
  145. package/docs/CUSTOMER-THEMING.md +637 -1
  146. package/docs/DESIGN-AUTHORITY.md +13 -0
  147. package/docs/FRAME-COVERAGE-REPORT.md +3 -2
  148. package/docs/GLASSMORPHISM-STANDARD.md +196 -0
  149. package/docs/THEME-API-COVERAGE.md +538 -0
  150. package/docs/TOKEN-RESOLUTION.md +195 -0
  151. package/docs/TOKENS.md +63 -24
  152. package/docs/asset-modules.d.ts +7 -0
  153. package/docs/data-display/charts.tsx +80 -0
  154. package/docs/data-display/data-table/index.tsx +30 -0
  155. package/docs/data-display/popover.tsx +1 -1
  156. package/docs/data-display/table.tsx +52 -0
  157. package/docs/feedback/sheet.tsx +10 -10
  158. package/docs/foundation/density.tsx +4 -4
  159. package/docs/i18n/messages/en.json +1201 -0
  160. package/docs/i18n/messages/ja.json +1195 -0
  161. package/docs/i18n/messages/vi.json +1195 -0
  162. package/docs/layout/account-chip.tsx +2 -2
  163. package/docs/layout/responsive-grid.tsx +1 -1
  164. package/docs/navigation/toolbar.tsx +20 -12
  165. package/docs/providers/theme-scope.tsx +186 -0
  166. package/docs/showcase/caimono-price-comparison.tsx +911 -0
  167. package/docs/showcase/case4-login.tsx +2 -2
  168. package/docs/showcase/marketing-page.tsx +3 -2
  169. package/docs/showcase/permission-matrix.tsx +13 -5
  170. package/docs/showcase/table-pagination.tsx +2 -1
  171. package/docs/showcase/tenant-brand-color.tsx +338 -0
  172. package/docs/showcase/theme-customization.tsx +2 -1
  173. package/docs/showcase/theme-lab.tsx +2125 -0
  174. package/docs/themes/flat.css +462 -0
  175. package/docs/themes/glassmorphism.css +958 -0
  176. package/docs/themes/index.ts +200 -0
  177. package/package.json +4 -3
  178. package/scripts/explain-token.mjs +382 -0
@@ -0,0 +1,1195 @@
1
+ {
2
+ "textExamples": {
3
+ "preservedText": "プレーンテキスト",
4
+ "sampleText": "最初の行\n 字下げした行\n\n最後の行"
5
+ },
6
+ "themeShowcase": {
7
+ "page": {
8
+ "title": "テーマの自由な調整",
9
+ "subtitle": "シード1つで全体が動きます。パレットを選ぶと、下のボードにあるコントロール・面・マーク・フォーカスリングがその場で塗り替わります。"
10
+ },
11
+ "bar": {
12
+ "title": "テーマ",
13
+ "description": "チップはスコープ内で --primary シードを設定します。コンポーネントの改変も、スタイルシートの分岐も、ロールの上書きもありません。",
14
+ "paletteLabel": "パレット",
15
+ "cornerLabel": "角丸",
16
+ "customLabel": "カスタムシード",
17
+ "customHint": "任意の16進値。ホバー・押下・境界・フォーカス・リンクの各段はここから導出されます。",
18
+ "identityNote": "アイデンティティ色は意図的に動きません。アクション色を変えたテナントのロゴが染まらないようにするためです。"
19
+ },
20
+ "palette": {
21
+ "godx": "GoDX",
22
+ "indigo": "インディゴ",
23
+ "teal": "ティール",
24
+ "amber": "アンバー",
25
+ "rose": "ローズ",
26
+ "custom": "カスタム"
27
+ },
28
+ "corner": {
29
+ "sharp": "角",
30
+ "default": "既定",
31
+ "soft": "丸"
32
+ },
33
+ "tabs": {
34
+ "components": "コンポーネント",
35
+ "dashboard": "ダッシュボード"
36
+ },
37
+ "form": {
38
+ "email": "業務用メール",
39
+ "emailHint": "リリース通知にのみ使用します。",
40
+ "emailPlaceholder": "you@ops.example.jp",
41
+ "handle": "ハンドル名",
42
+ "regions": "対象地域",
43
+ "regionsPlaceholder": "地域を選択",
44
+ "regionsEmpty": "地域が未選択です。",
45
+ "labels": "ラベル",
46
+ "labelsPlaceholder": "ラベルを追加",
47
+ "plan": "プラン",
48
+ "releaseDate": "リリース日",
49
+ "channels": "通知チャネル",
50
+ "cadence": "頻度",
51
+ "density": "行の密度",
52
+ "autoDeploy": "マージ時にデプロイ",
53
+ "autoDeployHint": "パイプラインが緑ならステージングへ自動昇格します。",
54
+ "freeze": "リリース凍結",
55
+ "budget": "エラーバジェット · {value}",
56
+ "syncing": "リリース台帳を同期しています"
57
+ },
58
+ "plan": {
59
+ "starter": "スターター",
60
+ "standard": "スタンダード",
61
+ "scale": "スケール"
62
+ },
63
+ "channel": {
64
+ "email": "メール",
65
+ "escalation": "レビュー滞留が1営業日を超えた場合、担当地域の週末および祝日も含めてオンコール輪番へエスカレーションする",
66
+ "escalationHint": "個人ではなく輪番宛てに送信されます。",
67
+ "pager": "ページャー"
68
+ },
69
+ "cadence": {
70
+ "daily": "毎日",
71
+ "weekly": "毎週",
72
+ "manual": "手動"
73
+ },
74
+ "density": {
75
+ "compact": "高密度",
76
+ "default": "既定",
77
+ "comfortable": "ゆったり"
78
+ },
79
+ "steps": {
80
+ "caption": "リリースの進行",
81
+ "finished": "完了",
82
+ "finishedHint": "成果物に署名し保管しました。",
83
+ "inProcess": "進行中",
84
+ "waiting": "待機",
85
+ "waitingHint": "新しいシードのコントラスト監査待ちです。"
86
+ },
87
+ "progress": {
88
+ "rollout": "展開 · {value}",
89
+ "quota": "ビルド時間 · {value}",
90
+ "done": "完了"
91
+ },
92
+ "legend": {
93
+ "failed": "失敗",
94
+ "review": "レビュー中",
95
+ "shipped": "出荷済"
96
+ },
97
+ "status": {
98
+ "caption": "ステータス表示",
99
+ "success": "成功",
100
+ "error": "エラー",
101
+ "default": "既定",
102
+ "processing": "処理中",
103
+ "warning": "警告",
104
+ "seed": "シード"
105
+ },
106
+ "action": {
107
+ "primary": "デプロイ",
108
+ "secondary": "比較",
109
+ "outline": "ロールバック",
110
+ "dashed": "ステージ追加",
111
+ "ghost": "ログ",
112
+ "deploying": "デプロイ中",
113
+ "discard": "このリリース候補を破棄"
114
+ },
115
+ "confirm": {
116
+ "trigger": "リリースを削除",
117
+ "title": "このリリースを削除しますか。",
118
+ "description": "成果物はレジストリに残ります。リリース記録と承認は残りません。",
119
+ "cancel": "残す",
120
+ "ok": "削除"
121
+ },
122
+ "avatars": {
123
+ "caption": "レビュアー12名"
124
+ },
125
+ "rating": {
126
+ "1": "使用不可",
127
+ "2": "粗い",
128
+ "3": "可",
129
+ "4": "良",
130
+ "5": "出荷可"
131
+ },
132
+ "otp": {
133
+ "title": "この端末を確認",
134
+ "description": "認証アプリに表示された6桁のコードを入力してください。",
135
+ "field": "確認コード",
136
+ "verify": "確認"
137
+ },
138
+ "signup": {
139
+ "title": "アカウントを作成",
140
+ "description": "1つのアカウントで、権限のある全環境を利用できます。",
141
+ "email": "業務用メール",
142
+ "password": "パスワード",
143
+ "submit": "アカウントを作成",
144
+ "or": "または",
145
+ "sso": "シングルサインオンで続行",
146
+ "passkey": "パスキーで続行"
147
+ },
148
+ "notify": {
149
+ "title": "通知",
150
+ "longTitle": "プラットフォーム信頼性およびリリースガバナンス作業部会への招待が返答待ちです",
151
+ "longMeta": "2026-09-12 09:12 UTC · 3日後に失効",
152
+ "open": "開く",
153
+ "bareTitle": "請求書を発行しました"
154
+ },
155
+ "qr": {
156
+ "caption": "認証アプリの登録",
157
+ "label": "二要素認証の登録用コード",
158
+ "manualKey": "手動設定キー"
159
+ },
160
+ "welcome": {
161
+ "title": "16進値1つから始める",
162
+ "description": "ブランド色を渡すとシードファイルを生成し、全コントラスト対を測定し、基準を満たさない値は拒否します。",
163
+ "dismiss": "閉じる"
164
+ },
165
+ "chat": {
166
+ "assistant": "アシスタント",
167
+ "sent": "09:41",
168
+ "answer": "シードはボードにスコープされるため、文書の他の部分は自分のパレットを保ちます。",
169
+ "bare": "フォーカスリングは。"
170
+ },
171
+ "thought": {
172
+ "label": "シードの適用手順",
173
+ "read": "スコープを読む",
174
+ "readHint": "ボード直下の [data-godx-theme]",
175
+ "contrast": "対を測定する",
176
+ "contrastBody": "塗り上のラベルと、キャンバス上の塗り。両テーマで WCAG 2.2 SC 1.4.3 と SC 1.4.11 に照らします。",
177
+ "write": "メール用の代替値を書く"
178
+ },
179
+ "carousel": {
180
+ "caption": "出荷済のパレット"
181
+ },
182
+ "alert": {
183
+ "title": "確認",
184
+ "description": "カスタムシードは指定どおりに適用されます。明るいシードを暗い背骨へ持ち上げる仕組みはCSSにないため、両方のキャンバスで読ませたいブランドは暗い側で測定した2つ目の値が必要です。",
185
+ "okTitle": "コントラスト検証済"
186
+ },
187
+ "timeline": {
188
+ "seedApplied": "シードを適用",
189
+ "scope": "ボードスコープ",
190
+ "contrastQueued": "コントラスト検査を予約"
191
+ },
192
+ "dashboard": {
193
+ "releases": "リリース数",
194
+ "releasesHint": "直近30日",
195
+ "revenue": "認識売上",
196
+ "failureRate": "変更失敗率",
197
+ "failureHint": "低いほど良い",
198
+ "seatsLabel": "対象地域",
199
+ "seats": {
200
+ "other": "{count} 地域"
201
+ },
202
+ "mix": "リリース内訳",
203
+ "activity": "最近の動き",
204
+ "environment": "環境",
205
+ "owner": "担当",
206
+ "ledger": "台帳参照",
207
+ "table": "リリース一覧",
208
+ "tableHint": "担当・地域・金額は現在のロケールで整形されます。",
209
+ "updated": "更新 {date}",
210
+ "rotate": "鍵をローテーション"
211
+ },
212
+ "table": {
213
+ "id": "リリース",
214
+ "owner": "担当",
215
+ "region": "地域",
216
+ "ref": "参照",
217
+ "status": "状態",
218
+ "amount": "金額",
219
+ "noRef": "未設定"
220
+ },
221
+ "releaseStatus": {
222
+ "shipped": "出荷済",
223
+ "review": "レビュー中",
224
+ "draft": "下書き",
225
+ "failed": "失敗"
226
+ }
227
+ },
228
+ "themeEditor": {
229
+ "title": "テーマエディタ",
230
+ "subtitle": "シード色ひとつからブランド全体を導出し、主張ではなく測定で示します。",
231
+ "unreadable": {
232
+ "title": "トークンのスタイルシートを読み取れません",
233
+ "description": "このページは、実際に描画されているキャンバス色とランプ段差をライブのスタイルシートから読み取ってブランドを導出します。どちらも読み取れなかったため、以下の値は測定になりません。"
234
+ },
235
+ "order": {
236
+ "title": "シード、ロール、スコープ、インスタンスの順に",
237
+ "description": "目的を果たせる最初の段階で止めてください。シードより下の段階はすべて導出をやめた値であり、ブランドが先に進んだことを誰も教えてくれません。"
238
+ },
239
+ "seed": {
240
+ "title": "1. シード",
241
+ "description": "ブランドのアクション色、つまりプライマリボタンを塗る色です。多くの場合これだけでテーマになります。",
242
+ "label": "ブランドシード",
243
+ "helper": "6桁の16進数です。以下はすべてここから導出され、WCAG 2.2 AA で測定されます。",
244
+ "presetLabel": "境界のケース",
245
+ "presetHelper": "どれも、行儀のよい青では見えない答えを返します。",
246
+ "presetPlaceholder": "任意のシード",
247
+ "preset": {
248
+ "godx": "このパッケージ自身のシード",
249
+ "blue": "ごく普通のブランドブルー",
250
+ "very-light": "ほぼ白。明るいキャンバス上で塗りが基準に届きません",
251
+ "very-dark": "ほぼ黒。ダークのシードが白まで上がります",
252
+ "sunflower": "ひまわり色。両テーマで状態段差の向きが入れ替わります"
253
+ },
254
+ "announce": "シード {hex}。ライト {light}、ダーク {dark}。測定した {count} 組のうち {pass} 組が AA を満たしています。",
255
+ "announceNoDark": "シード {hex}。この色相と彩度では、ダークのキャンバス上で読める塗りになる明度がありません。測定できるダークテーマがありません。"
256
+ },
257
+ "derived": {
258
+ "title": "2. シードが生むもの",
259
+ "description": "結果なので読み取り専用です。各テーマで3つのロールだけが書き出され、残りは描画する要素のスコープにある primary から導出されます。書き出せばこのシードに固定されてしまいます。",
260
+ "tableLabel": "シードから導出されたロール",
261
+ "column": {
262
+ "token": "トークン",
263
+ "light": "ライト",
264
+ "dark": "ダーク",
265
+ "emitted": "書き出し"
266
+ },
267
+ "written": "書き出す",
268
+ "derivedOnly": "導出"
269
+ },
270
+ "contrast": {
271
+ "title": "3. コントラスト",
272
+ "description": "シードが生むすべての組を、パッケージ自身の WCAG ヘルパーで測定します。塗りの上のラベルは 4.5:1 (SC 1.4.3)、背後のキャンバス上の塗りは 3:1 (SC 1.4.11) が必要です。",
273
+ "tableLabel": "測定したコントラストの組",
274
+ "column": {
275
+ "pair": "組",
276
+ "measured": "測定値",
277
+ "threshold": "必要値",
278
+ "result": "判定"
279
+ },
280
+ "pair": {
281
+ "label-on-fill-light": "塗りの上のラベル(ライト)",
282
+ "label-on-fill-dark": "塗りの上のラベル(ダーク)",
283
+ "fill-on-canvas-light": "キャンバス上の塗り(ライト)",
284
+ "fill-on-canvas-dark": "キャンバス上の塗り(ダーク)",
285
+ "link-on-canvas-light": "キャンバス上のリンク色(ライト)",
286
+ "link-on-canvas-dark": "キャンバス上のリンク色(ダーク)"
287
+ },
288
+ "ratio": "{value}:1",
289
+ "pass": "AA 達成",
290
+ "fail": "AA 未達"
291
+ },
292
+ "overrides": {
293
+ "title": "4. トークン単位の上書き",
294
+ "description": "意図してシードの下に置いています。シードは正しく、ひとつのトークンだけを変えたいときにだけ使ってください。",
295
+ "costTitle": "上書きの代償",
296
+ "costDescription": "手で設定したトークンはシードに追従しなくなります。次のブランド変更では導出された値だけが動き、この値だけが取り残されます。監査はそれを報告しません。",
297
+ "labelTitle": "塗りの上のラベル色",
298
+ "labelHelper": "既定ではシード自身の輝度が決めます。実行時の再テーマと同じ 0.179 のしきい値です。固定はジェネレータにフラグがある唯一の上書きです。",
299
+ "labelAuto": "自動",
300
+ "labelLight": "明るいラベル",
301
+ "labelDark": "暗いラベル",
302
+ "darkTitle": "ダークシードの明度",
303
+ "darkHelper": "ライトテーマとのコントラスト同等性では {parity} になります。どちらの場合も色相と彩度は保たれ、動くのは明度だけです。手で決めた値は基準を外れてもよく、上の表がそれを示します。",
304
+ "darkNoParity": "この色相と彩度では両方の下限を満たす明度がないため、離れるべき同等値がありません。",
305
+ "darkReset": "同等値に戻す",
306
+ "darkAuthored": "手動",
307
+ "darkParity": "同等値"
308
+ },
309
+ "export": {
310
+ "title": "5. 書き出し",
311
+ "description": "最初のブロックを自分のテーマファイルに、2つめをスタイルシートが届かない焼き込み済みメールパレットの上に貼ってください。",
312
+ "nameLabel": "テーマ名",
313
+ "nameHelper": "{name}.service.css と {name}.email.ts を書き出します。",
314
+ "matches": "gen:brand と同一",
315
+ "diverges": "再現するコマンドはありません",
316
+ "divergesWhy": "ダークシードの明度をここで手入力しました。ジェネレータは同等性を探索し、これを指定するフラグを持たないため、このファイルを再現するコマンドはありません。",
317
+ "cssLabel": "{name} のテーマ CSS",
318
+ "emailLabel": "{name} のメールパレット",
319
+ "noDarkTitle": "このシードには読めるダークの塗りがありません",
320
+ "noDarkDescription": "この色相と彩度では、ラベルに対する 4.5:1 とダークキャンバスに対する 3:1 を同時に満たす明度がありません。シードの彩度を下げるか、上でラベルを固定して確認してください。"
321
+ },
322
+ "preview": {
323
+ "lightTitle": "ライト",
324
+ "darkTitle": "ダーク",
325
+ "seedIs": "{hex} にスコープ",
326
+ "tableLabel": "請求明細",
327
+ "column": {
328
+ "id": "明細",
329
+ "item": "品目",
330
+ "owner": "担当",
331
+ "state": "状態"
332
+ },
333
+ "state": {
334
+ "active": "有効",
335
+ "pending": "保留"
336
+ },
337
+ "line": {
338
+ "licence": "ライセンス",
339
+ "support": "保守費",
340
+ "setup": "初期構築"
341
+ },
342
+ "action": {
343
+ "save": "保存",
344
+ "duplicate": "複製",
345
+ "export": "書き出し",
346
+ "add": "明細を追加",
347
+ "dismiss": "閉じる",
348
+ "delete": "削除",
349
+ "details": "詳細"
350
+ },
351
+ "badge": {
352
+ "brand": "ブランド",
353
+ "success": "入金済み",
354
+ "warning": "期日間近",
355
+ "destructive": "期日超過",
356
+ "info": "下書き",
357
+ "neutral": "アーカイブ"
358
+ },
359
+ "alert": {
360
+ "title": "請求先住所が未入力です",
361
+ "description": "入力されるまで請求書を発行できません。",
362
+ "link": "シードに戻る"
363
+ },
364
+ "field": {
365
+ "org": "組織",
366
+ "orgHelper": "発行するすべての書類に表示されます。",
367
+ "plan": "プラン",
368
+ "tax": "税を含める",
369
+ "mail": "自動送信"
370
+ },
371
+ "plan": {
372
+ "starter": "スターター",
373
+ "pro": "プロ",
374
+ "scale": "スケール"
375
+ }
376
+ }
377
+ },
378
+ "marketingShowcase": {
379
+ "brand": {
380
+ "name": "Example Works",
381
+ "suffix": "承認基盤"
382
+ },
383
+ "nav": {
384
+ "label": "メインナビゲーション",
385
+ "product": "製品",
386
+ "solutions": "活用例",
387
+ "pricing": "料金",
388
+ "docs": "ドキュメント",
389
+ "signIn": "ログイン",
390
+ "getStarted": "無料で始める",
391
+ "open": "ナビゲーションを開く",
392
+ "title": "ナビゲーション",
393
+ "description": "ヘッダーの行き先すべて。狭い画面で隠れる 2 つもここにあります。",
394
+ "close": "ナビゲーションを閉じる"
395
+ },
396
+ "hero": {
397
+ "eyebrow": "承認ワークフロー",
398
+ "title": "すべての承認を、1 本の証跡に。",
399
+ "lead": "請求書・発注書・契約書を、その金額と部門を持つ承認者へ回し、判断のとなりに根拠を残し、1 年分を 1 ファイルで書き出します。",
400
+ "primary": "無料で始める",
401
+ "secondary": "デモを予約する",
402
+ "trust": "カード不要 · 14 日間 · 画面から解約できます。",
403
+ "panelTitle": "本日の承認待ち",
404
+ "panelNote": "あるテナントの実数値。承認のたびに更新されます。",
405
+ "pending": "あなた待ち",
406
+ "cleared": "本日完了",
407
+ "median": "判断までの中央値",
408
+ "medianValue": "4時間12分",
409
+ "endpointLabel": "Webhook エンドポイント",
410
+ "endpointNote": "ゲートウェイへそのまま貼り付けます。折り返す場所がありません。"
411
+ },
412
+ "logos": {
413
+ "title": "メール承認をやめた組織",
414
+ "caption": "トラックは停止状態で出荷されます。横のコントロールはタブ順に入る実際のボタンです。",
415
+ "marqueeLabel": "顧客ロゴ"
416
+ },
417
+ "features": {
418
+ "title": "できること",
419
+ "lead": "6 つの機能。どれも新しいコンポーネントではありません。",
420
+ "routingTitle": "自動ルーティング",
421
+ "routingBody": "金額・原価部門・取引先をルールが読み、その組み合わせを持つ承認者へ回します。",
422
+ "auditTitle": "ステータスコードの意味を誰にも聞かずに会計士が読める監査証跡",
423
+ "residencyTitle": "データ所在地",
424
+ "residencyBody": "文書と派生インデックスはすべて東京リージョンに留まります。",
425
+ "evidenceTitle": "承認の証跡",
426
+ "evidenceBody": "決裁の理由と添付を同じ行に残します。Evidence and decision are one record, not two systems.",
427
+ "webhookTitle": "Webhook",
428
+ "webhookBody": "各エンドポイントは折り返せない識別子を持ちます。カードはそれを収めます。",
429
+ "ssoTitle": "SSO",
430
+ "ssoBody": "SAML と OIDC。グループを承認ロールへ対応付けます。"
431
+ },
432
+ "testimonials": {
433
+ "title": "導入 1 年目の実際",
434
+ "label": "お客様の声",
435
+ "ratingLabel": "評価",
436
+ "q1": "四半期を、誰かの受信箱で止まった承認ゼロで締めました。監査人からの依頼は 11 本ではなく 1 本の書き出しだけになり、経理が裏で持っていた管理表もなくなりました。",
437
+ "a1": "山口 佳奈",
438
+ "r1": "経理責任者 · Aoba Foods",
439
+ "q2": "議論が止まりました。",
440
+ "a2": "Dana Whitfield",
441
+ "r2": "購買部長 · Meridian Health",
442
+ "q3": "6 週間で 240 の承認フローを移し、1 件も証憑を失いませんでした。",
443
+ "a3": "Trần Minh Khoa",
444
+ "r3": "財務リード · Truong An"
445
+ },
446
+ "pricing": {
447
+ "title": "料金",
448
+ "lead": "承認者 1 人あたりの月額です。年払いは 1 回の請求になります。",
449
+ "cycleLabel": "請求サイクル",
450
+ "monthly": "月払い",
451
+ "yearly": "年払い",
452
+ "perMonth": "承認者 1 人 / 月",
453
+ "billedYearly": "年 1 回の請求",
454
+ "popular": "最も選ばれています",
455
+ "saving": "2 か月分無料",
456
+ "fresh": "新着",
457
+ "quoted": "見積",
458
+ "quotedNote": "承認者数とデータ所在地に応じてお見積りします。",
459
+ "starterName": "スターター",
460
+ "starterNote": "承認フロー 1 本、リージョン 1 つ。",
461
+ "teamName": "チーム",
462
+ "teamNote": "並行フロー・代理承認・監査書き出し。",
463
+ "enterpriseName": "エンタープライズ",
464
+ "enterpriseNote": "専用テナント · SSO · 監査窓口。Dedicated tenant, SSO, named auditor contact.",
465
+ "cta": "無料で始める",
466
+ "ctaQuote": "相談する",
467
+ "featChains": "承認フロー",
468
+ "featDelegation": "代理承認と不在設定",
469
+ "featExport": "1 ファイルの監査書き出し",
470
+ "featSso": "SAML と OIDC",
471
+ "featResidency": "所在地リージョンの選択",
472
+ "featSupport": "専任サポート窓口",
473
+ "limitedChains": "1 本のみ",
474
+ "limitedSupport": "営業時間内"
475
+ },
476
+ "cta": {
477
+ "title": "今週、承認フローを 1 本だけ通してみてください",
478
+ "lead": "表計算からフローを取り込み、実際の承認を 3 件流し、書き出しを持ち帰ってください。",
479
+ "primary": "無料で始める",
480
+ "secondary": "デモを予約する",
481
+ "note": "営業日 1 日以内に返信します。東京時間。"
482
+ },
483
+ "footer": {
484
+ "label": "フッター",
485
+ "product": "製品",
486
+ "company": "会社",
487
+ "legal": "法務",
488
+ "contact": "問い合わせ",
489
+ "featuresLink": "機能",
490
+ "pricingLink": "料金",
491
+ "changelog": "変更履歴",
492
+ "status": "稼働状況",
493
+ "about": "会社概要",
494
+ "careers": "採用",
495
+ "terms": "利用規約",
496
+ "privacy": "プライバシー",
497
+ "security": "セキュリティ",
498
+ "subprocessors": "再委託先",
499
+ "accessibility": "アクセシビリティ方針",
500
+ "salesLine": "営業",
501
+ "supportLine": "サポート",
502
+ "addressLabel": "本店所在地",
503
+ "address": "東京都千代田区",
504
+ "rights": "Example Works · ドキュメント用の架空の会社です。"
505
+ }
506
+ },
507
+ "showcase": {
508
+ "pagination": {
509
+ "recordCount": {
510
+ "other": "{count} 件"
511
+ },
512
+ "loadMore": {
513
+ "other": "さらに {count} 件を読み込む"
514
+ }
515
+ },
516
+ "flexMeasure": {
517
+ "title": "measure · 全幅の外、測度の内",
518
+ "lead": "帯は塗りを持つ <section> で、その内側の一列を measure が中央寄せし --page-measure-* で止める。余白は pad の担当で measure は足さない。narrow(42rem)と medium(48rem)は読み物の測度、wide(72rem)はマーケティングの測度。"
519
+ },
520
+ "tagInput": {
521
+ "longIdTitle": "長い識別子と「+N」",
522
+ "ledgerLabel": "台帳ID",
523
+ "ledgerHelper": "71文字の識別子でも行からはみ出さない"
524
+ }
525
+ },
526
+ "serviceLauncherShowcase": {
527
+ "page": {
528
+ "title": "ServiceLauncherCard",
529
+ "subtitle": "社内アプリケーション一覧のタイル — 利用可能・制限・停止・アーカイブ・読み込み中・カタログ導線"
530
+ },
531
+ "status": {
532
+ "available": "利用可能",
533
+ "active": "稼働中",
534
+ "maintenance": "メンテナンス中",
535
+ "stopped": "停止中",
536
+ "adminOnly": "管理者限定",
537
+ "preparing": "準備中",
538
+ "archived": "アーカイブ",
539
+ "unapplied": "未申請",
540
+ "noPermission": "権限なし",
541
+ "attentionRequired": "Attention required"
542
+ },
543
+ "action": {
544
+ "openService": "サービスを開く",
545
+ "open": "開く",
546
+ "viewStatus": "状況を見る",
547
+ "viewHistory": "履歴を見る",
548
+ "checkPermissions": "権限を確認",
549
+ "openSettings": "設定を開く",
550
+ "viewArchive": "アーカイブを見る",
551
+ "openRequestForm": "申請フォームを開く",
552
+ "openList": "一覧を開く",
553
+ "openServiceEnglish": "Open service"
554
+ },
555
+ "sections": {
556
+ "basics": {
557
+ "heading": "1 · 基本 · 利用できるサービス",
558
+ "why": "アイコン・名称・ステータス・説明・識別子・操作。ステータスの文言は常に利用側のコピーで、コンポーネントが決めるのは tone に対応する Badge の意味づけだけです。",
559
+ "attendance": {
560
+ "title": "勤怠管理",
561
+ "description": "打刻、シフト、休暇申請を一つのワークスペースで管理します。"
562
+ },
563
+ "expense": {
564
+ "title": "経費精算",
565
+ "description": "領収書の提出から承認、仕訳連携までを扱います。"
566
+ },
567
+ "meetingRoom": {
568
+ "title": "会議室予約",
569
+ "description": "拠点ごとの会議室と備品を予約します。"
570
+ }
571
+ },
572
+ "statusTones": {
573
+ "heading": "2 · statusTone の 6 値すべて",
574
+ "why": "success / warning / destructive / info / neutral / muted。tone は Badge の意味づけだけを決め、文言・判定・操作の可否はすべて利用側が渡します。",
575
+ "mail": {
576
+ "title": "社内メール",
577
+ "description": "メールボックス、配布リスト、共有署名を管理します。"
578
+ },
579
+ "fileShare": {
580
+ "title": "ファイル共有",
581
+ "description": "部門フォルダと外部共有リンクを扱います。"
582
+ },
583
+ "dataSync": {
584
+ "title": "データ連携基盤",
585
+ "description": "外部システムとのデータ同期ジョブを管理します。"
586
+ },
587
+ "iam": {
588
+ "title": "権限管理",
589
+ "description": "ロール、二要素認証ポリシー、監査イベントを確認します。"
590
+ },
591
+ "integrations": {
592
+ "title": "連携アプリ",
593
+ "description": "サードパーティ連携の接続とスコープを設定します。"
594
+ },
595
+ "legacyKb": {
596
+ "title": "旧ナレッジベース",
597
+ "description": "2024 年度までの運用手順を読み取り専用で保管しています。"
598
+ }
599
+ },
600
+ "disabledReason": {
601
+ "heading": "3 · disabledReason · 操作が効かない理由は操作より先に置かれる",
602
+ "why": "無効化されたボタンは「なぜ」を一切伝えません。だから理由は DOM 順で操作より先に置かれ(WCAG 2.2 · 1.3.2)、タイルは data-unavailable を帯びてメダリオンが沈みます。disabledReason はボタンを無効化しません — それは利用側の Button prop のままです。",
603
+ "inventory": {
604
+ "title": "在庫管理",
605
+ "description": "拠点別の在庫、入出庫、棚卸を管理します。",
606
+ "reason": "この部門ではまだ利用申請が承認されていません。"
607
+ },
608
+ "contracts": {
609
+ "title": "契約書管理",
610
+ "description": "契約書の保管、期限通知、電子署名の依頼を扱います。",
611
+ "reason": "閲覧には法務部門のロールが必要です。IT ヘルプデスクへ申請してください。"
612
+ },
613
+ "analytics": {
614
+ "title": "分析基盤",
615
+ "description": "全社ダッシュボードとデータマートを提供します。",
616
+ "reason": "このサービスは組織の管理者によって停止されています。"
617
+ }
618
+ },
619
+ "loadingCatalog": {
620
+ "heading": "4 · 読み込み中とカタログ導線",
621
+ "why": "ServiceLauncherCardSkeleton は同じ骨格の初期プレースホルダーで、label が必須・aria-busy を持ち、ライブリージョンは意図的に開きません。ServiceCatalogCta は実在する追加導線がある場合にだけ並べる相棒タイルで、既定の Plus 以外のグリフも受け取ります。",
622
+ "skeletonLabel": "サービスを読み込み中",
623
+ "addApp": {
624
+ "title": "アプリを追加"
625
+ },
626
+ "allApps": {
627
+ "title": "すべての社内アプリを見る"
628
+ }
629
+ },
630
+ "edgeCases": {
631
+ "heading": "5 · 端に触れる · 3 行の名称、説明なし、切れない長いホスト名",
632
+ "why": "整った例はタイルが崩れる場所を何も見せません。ここは崩れる側です:3 行になる名称と 2 語の名称が同じ行に並び、説明のないタイルが説明のあるタイルの隣に置かれ、空白のないホスト名が列幅を広げようとします。見苦しく見えるなら、このセクションは仕事をしています — 耐えるのはサンプルデータではなくコンポーネントの側です。",
633
+ "hrPortal": {
634
+ "title": "グローバル人事情報基盤・従業員セルフサービスポータル(アジア太平洋地域)",
635
+ "description": "人事マスタ、勤怠、給与、評価を一元管理する統合ワークスペースです。"
636
+ },
637
+ "dailyReport": {
638
+ "title": "日報"
639
+ },
640
+ "warningConsole": {
641
+ "title": "Global Workforce Identity & Entitlement Administration Console",
642
+ "description": "Review pending entitlement requests before the next access certification.",
643
+ "reason": "Your organization has no approved request for this service yet."
644
+ }
645
+ },
646
+ "minimalTiles": {
647
+ "heading": "6 · 最小のタイル",
648
+ "why": "必須は icon・title・action の 3 つだけです。statusLabel を省けば Badge の行ごと消え、description と metadata を省いても骨格は保たれます — 隣の満載のタイルと高さを比べてください。",
649
+ "wiki": {
650
+ "title": "社内 Wiki"
651
+ },
652
+ "contact": {
653
+ "title": "問い合わせ窓口",
654
+ "description": "社内のシステム相談はこちらで受け付けています。"
655
+ },
656
+ "calendar": {
657
+ "title": "全社カレンダー",
658
+ "description": "全社行事、休業日、拠点別の予定を共有します。",
659
+ "reason": "読み取り専用で公開されています。"
660
+ }
661
+ },
662
+ "logo": {
663
+ "heading": "7 · logo · アップロードされたロゴと、それがないサービス",
664
+ "why": "logo は管理者がアップロードした画像の URL で、読み込めたときだけ icon を置き換えます。icon は必須のままです — 作ったばかりのサービスにはロゴがなく、URL が 404 になったサービスにもロゴはありません。壊れた画像は DOM に入りません。画像の箱はグリフと同じ 20px(--card-service-launcher-icon-glyph-size)で、縦横比は object-fit: contain で保たれます。",
665
+ "uploaded": {
666
+ "title": "勤怠管理",
667
+ "description": "ロゴをアップロード済みのサービス。メダリオンには icon ではなくロゴが出ます。"
668
+ },
669
+ "missing": {
670
+ "title": "勤怠管理(ロゴ未設定)",
671
+ "description": "同じタイルで logo を渡さない場合。icon がそのまま残り、メダリオンの大きさも変わりません。"
672
+ },
673
+ "broken": {
674
+ "title": "データ連携基盤(ロゴ 404)",
675
+ "description": "logo_url は入っているのにファイルがない状態。タイルは空にならず icon に戻ります。"
676
+ },
677
+ "wideMark": {
678
+ "title": "経費精算",
679
+ "description": "240×96 の横長ロゴ。contain なので切り抜かれず、箱の幅もグリフと同じままです。"
680
+ },
681
+ "withReason": {
682
+ "title": "権限管理",
683
+ "description": "ロゴと disabledReason は直交します。状態を伝えるのは Badge と理由文であって、他社のブランド色をこちらで勝手に転ばしはしません。",
684
+ "reason": "閲覧には管理者ロールが必要です。"
685
+ },
686
+ "emptyString": {
687
+ "title": "社内メール",
688
+ "description": "空文字列の logo。未設定と同じ扱いで、無駄なリクエストも発行しません。"
689
+ }
690
+ }
691
+ }
692
+ },
693
+ "caimono": {
694
+ "brand": "Caimono",
695
+ "eyebrow": "価格の内訳まで、わかりやすく。",
696
+ "demo": "UIプロトタイプ・商品、店舗、価格はすべて架空のサンプルです。",
697
+ "synthetic": "架空の商品",
698
+ "product": "Aero H1 ワイヤレスヘッドホン",
699
+ "productMeta": "モデル AERO-H1 · {count}点 · H2・セット商品は対象外",
700
+ "variant": "比較するカラー",
701
+ "black": "ブラック・H1-BK",
702
+ "cream": "クリーム・H1-CR",
703
+ "condition": "商品の状態",
704
+ "new": "新品",
705
+ "used": "中古",
706
+ "lowest": "比較条件内の最安支払額",
707
+ "noEligible": "条件に合う価格情報がありません",
708
+ "incl": "税込・確認済みの国内送料込み",
709
+ "couponActive": "確認した条件に基づきHakoのクーポンを適用",
710
+ "couponInactive": "クーポン・ポイント差引き前",
711
+ "bestDetails": "最安対象の内訳を見る",
712
+ "priceAlert": "値下がり通知を設定",
713
+ "save": "お気に入りに追加",
714
+ "saved": "お気に入りに追加済み",
715
+ "offers": "販売店の価格比較",
716
+ "snapshot": "サンプルデータの基準日時:{date}(日本時間)",
717
+ "findShop": "掲載店舗を検索",
718
+ "searchPlaceholder": "店舗名を入力…",
719
+ "deliverTo": "国内のお届け先",
720
+ "Tokyo": "東京都",
721
+ "Osaka": "大阪府",
722
+ "sort": "並び順",
723
+ "totalSort": "支払総額が安い順",
724
+ "deliverySort": "お届けが早い順",
725
+ "free": "国内送料無料",
726
+ "stockOnly": "在庫ありのみ",
727
+ "fast": "{duration}以内に配送",
728
+ "reset": "条件をリセット",
729
+ "counts": "表示件数:{total} · 最安判定の対象:{eligible}",
730
+ "shop": "販売店",
731
+ "cash": "支払総額",
732
+ "delivery": "お届け・保証",
733
+ "action": "ショップ",
734
+ "breakdown": "内訳を見る",
735
+ "detailFor": "価格の内訳 — {merchant}",
736
+ "best": "支払総額が最安",
737
+ "observed": "記録日時:{date}",
738
+ "itemValue": "商品:{amount}",
739
+ "shippingValue": "国内送料:{amount}",
740
+ "discountValue": "対象クーポン:−{amount}",
741
+ "unknownTotal": "送料未確認のため総額不明",
742
+ "unknown": "未確認",
743
+ "eta": "{duration}以内の見込み(サンプル)",
744
+ "pointsValue": "獲得予定ポイント:{count} · 支払額から差し引きません",
745
+ "stale": "価格情報が古いため要確認",
746
+ "outStock": "在庫なし",
747
+ "needsShipping": "送料は要確認",
748
+ "inStock": "在庫あり",
749
+ "manufacturer": "メーカー保証(サンプル)",
750
+ "sellerWarranty": "店舗保証(サンプル)",
751
+ "noResultTitle": "条件に合う店舗が見つかりません",
752
+ "noResultBody": "絞り込み条件を減らすか、店舗名を変更してください。未確認の価格を0円として扱うことはありません。",
753
+ "limitNote": "掲載情報のうち、型番・カラー・状態・市場が一致し、支払総額を確認できるものを比較します。購入前に販売店で最終価格をご確認ください。",
754
+ "couponTitle": "Hakoのクーポンをお持ちですか?",
755
+ "couponLabel": "{amount}割引の条件を確認し、対象であることを確認しました",
756
+ "couponHelp": "Hako Marketの新規アカウント向けクーポンを想定したサンプルです。初期状態では適用しません。",
757
+ "expires": "有効期限:{date}(日本時間)",
758
+ "whyRank": "比較・表示のルール",
759
+ "rule1": "同じ型番・カラー・商品状態・市場で比較。",
760
+ "rule2": "更新済み・在庫あり・費用確認済みの情報が対象。",
761
+ "rule3": "紹介報酬で価格順を変更しません。",
762
+ "kaimiBody": "ポイント還元と、今支払う金額は別です。まず支払総額を確認してから、ポイントの条件や有効期限をチェックしましょう。",
763
+ "buyAssist": "日本からの購入代行が必要ですか?",
764
+ "buyAssistBody": "代行手数料・海外送料・未確定費用を別に案内します。国内価格をお届け総額として表示しません。",
765
+ "quote": "見積りの内訳例を見る",
766
+ "historyTitle": "最安支払額の推移",
767
+ "historyScope": "架空データ・ブラック/新品/東京都・クーポン適用前・絞り込み条件とは連動しません",
768
+ "period": "表示期間",
769
+ "historyMetric": "確認済みの支払総額・ポイント差引きなし",
770
+ "date": "サンプル日付",
771
+ "price": "サンプル総額",
772
+ "reviewTitle": "安さの前に、合うものを。",
773
+ "editorial": "編集部レビュー",
774
+ "editorialBody": "架空の商品につき実機テストは行っていません。テスト点数や「検証済み」バッジは表示しません。",
775
+ "community": "ユーザーレビュー",
776
+ "communityBody": "レビューはまだありません。店舗の評価を、商品の品質評価として使用しません。",
777
+ "specTitle": "サンプル仕様",
778
+ "model": "型番",
779
+ "modelValue": "AERO-H1",
780
+ "connection": "接続方式",
781
+ "wireless": "ワイヤレス",
782
+ "unit": "比較単位",
783
+ "market": "対象市場",
784
+ "japan": "日本",
785
+ "disclosure": "商業的な関係の明示",
786
+ "disclosureText": "このサンプルにはアフィリエイトリンクはありません。実運用では手数料を価格表の近くに明示し、広告枠は分けて表示します。サンプルでは{duration}より古い価格を最安判定から除外します。",
787
+ "footerNote": "プロトタイプ · 店舗・決済・通知には接続していません。",
788
+ "close": "閉じる",
789
+ "breakdownTitle": "支払う金額の内訳",
790
+ "breakdownNote": "サンプル情報です。実際の取引や販売店サイトへの遷移は行いません。",
791
+ "item": "商品価格",
792
+ "shipping": "国内送料",
793
+ "fee": "必須手数料",
794
+ "discount": "条件確認済みクーポン",
795
+ "points": "獲得予定ポイント",
796
+ "notDeducted": "支払総額からは差し引きません",
797
+ "notRankedExplain": "この情報は最安支払額の判定対象外です。古い情報や未確認の費用があることを明示したうえで、掲載価格を残しています。",
798
+ "alertTitle": "希望価格を設定",
799
+ "alertBody": "このデモは希望価格をこのブラウザ内に保存するだけです。メールや通知は送信しません。実装時はカラー・状態・配送先・価格の定義を指定して通知します。",
800
+ "alertScope": "AERO-H1 · {variant} · {condition} · {destination} · JPY",
801
+ "alertLabel": "支払総額が次の金額以下になったら通知(円)",
802
+ "alertHelp": "1円以上の整数で入力。ポイントや個別クーポンは差し引きません。",
803
+ "alertSave": "デモに希望価格を保存",
804
+ "alertSaved": "この端末に保存しました。実際の通知は設定されていません。",
805
+ "storageFail": "ブラウザに保存できませんでした。設定は保存されていません。",
806
+ "favoriteOn": "このブラウザのお気に入りに保存しました。",
807
+ "favoriteOff": "このブラウザのお気に入りから削除しました。",
808
+ "quoteTitle": "購入代行:2段階の見積り",
809
+ "quoteBody": "これは説明用のサンプルで、サービスの正式な見積りではありません。確認済みの費用と未確定の費用を分けて表示します。",
810
+ "domestic": "選択条件での日本国内支払額",
811
+ "assistFee": "購入代行手数料",
812
+ "intlShip": "海外送料",
813
+ "importCost": "輸入時の税金・手数料",
814
+ "landed": "お届けまでの総額",
815
+ "pendingQuote": "要見積り",
816
+ "notFinal": "現時点では確定できません",
817
+ "quoteNote": "費用が未確定の状態で決済ボタンを表示しません。本番サービスでは「今すぐ購入」ではなく、見積り依頼へ進めます。",
818
+ "merchants": {
819
+ "mori": "Mori Store",
820
+ "aoi": "Aoi Direct",
821
+ "hako": "Hako Market",
822
+ "kumo": "Kumo Shop",
823
+ "haru": "Haru Select",
824
+ "mika": "Mika Audio",
825
+ "neko": "Neko Outlet",
826
+ "other": "Other Model Shop"
827
+ }
828
+ },
829
+ "dataTableDocs": {
830
+ "stackedRecordWide": "レコードコレクション(広い幅:表のまま)",
831
+ "stackedRecordFolded": "同じ表・同じ列定義(狭い幅:カードに畳む)"
832
+ },
833
+ "chartsDocs": {
834
+ "areaSplitTitle": "AreaChart · 塗りと線を分ける / 値軸のクロップ",
835
+ "areaSplitBody": "series[].fillColor で帯の色を線の color と独立に指定し、valueDomain / valueTicks で値軸を明示します。ゼロ基点でない軸は「形」が主題で、かつゼロが基準にならない量(相場・気温・指数・レイテンシ百分位)に限って正当です。大小を比べさせる図(棒グラフのすべて)では、変動を誇張する誤読を生みます。使うときは軸の範囲を明示し、グリッドを残してください。",
836
+ "areaSplitLabel": "週次相場(24,000〜31,000円にクロップ)",
837
+ "areaSplitDescription": "ゼロ基点ではありません。軸の範囲は 24,000〜31,000 円です。",
838
+ "priceSeries": "相場",
839
+ "tokenScopeTitle": "テーマトークン · 領域スコープ",
840
+ "tokenScopeBody": "線の太さ・帯の濃さ・グリッドの破線はハウススタイルなので prop ではなくトークンです。下のブロックにだけ --chart-series-stroke-width / --chart-area-fill-alpha / --chart-grid-line-dash を当てています。ページ固有 CSS も raw recharts も要りません。",
841
+ "tokenScopeLabel": "週次相場(テーマ適用)"
842
+ },
843
+ "themeScopeDocs": {
844
+ "page": {
845
+ "subtitle": "テーマを持つ領域。そこから開くオーバーレイも領域のトークンを保つ。",
846
+ "title": "ThemeScope"
847
+ },
848
+ "intro": {
849
+ "title": "なぜ領域にこれが要るのか",
850
+ "description": "すべてのオーバーレイは document.body にポータルするため、カスタムプロパティの継承はポータル境界で止まる。",
851
+ "body": "自分にテーマを当てた領域は自分の部分木しか塗れず、そこから開いたものは塗れない。実測では、領域が --primary 204 100% 37% を読む一方、開いた Dialog はパッケージ既定の 268.7 100% 50% を読んでいた。ThemeScope は領域と文書ルートの計算済みの差分をポータル先のホスト要素へ運ぶので、オーバーレイは DOM の包含関係そのもので継承する。テーマ用の prop は持たず DOM を読むため、インライン style でもクラスでもスタイルシートの規則でも結果は同じになる。"
852
+ },
853
+ "region": {
854
+ "description": "ここから何を開いても、開いたパネルはこの領域のトークンで塗られる。",
855
+ "pending": "審査待ち",
856
+ "queue": "キューに 12 件",
857
+ "reviewerLabel": "審査担当を割り当てる",
858
+ "reviewerPlaceholder": "審査担当を選択",
859
+ "approve": "申請を承認",
860
+ "history": "審査履歴",
861
+ "notify": "申請者へ通知"
862
+ },
863
+ "dialog": {
864
+ "title": "この申請を承認する",
865
+ "description": "承認はあなたのアカウントに記録され、申請者へ直ちに通知される。",
866
+ "confirm": "承認",
867
+ "body": "この顧客の申請 3 件が同じ証憑一式を待っている。"
868
+ },
869
+ "popover": {
870
+ "body": "証憑不足で一度差し戻し、同日中に再提出。"
871
+ },
872
+ "toast": {
873
+ "approved": "申請を承認した",
874
+ "saved": "申請者へ通知した"
875
+ },
876
+ "acme": {
877
+ "name": "ACME ロジスティクス"
878
+ },
879
+ "night": {
880
+ "name": "夜勤コンソール"
881
+ },
882
+ "without": {
883
+ "title": "ThemeScope なしの同じ領域",
884
+ "description": "トークンの宣言は上とまったく同じ。違いはラッパーが素の div であることだけ。",
885
+ "open": "申請を承認",
886
+ "dialogTitle": "この申請を承認する",
887
+ "dialogDescription": "このパネルが不具合そのもの。開いた領域ではなくパッケージ既定で塗られている。",
888
+ "dialogBody": "開いたボタンと中のボタンを見比べる。領域の色は運ばれていない。"
889
+ }
890
+ },
891
+ "tableDocs": {
892
+ "title": "入出金明細 · row tone",
893
+ "item": "項目",
894
+ "amount": "金額",
895
+ "status": "状態",
896
+ "fee": "振込手数料",
897
+ "done": "処理済",
898
+ "overdue": "支払期日超過(3日)",
899
+ "check": "要確認",
900
+ "failed": "引き落とし失敗",
901
+ "failedBadge": "失敗"
902
+ },
903
+ "themeLab": {
904
+ "page": {
905
+ "title": "テーマラボ",
906
+ "subtitle": "1ページに描画可能な全コンポーネント、複数のテーマ、複数のシードカラー。ここでのテーマはカスタムプロパティだけでできています。",
907
+ "footer": "テーマとシードはURLに載るため、スクリーンショットと計測は同じマス目を指せます。"
908
+ },
909
+ "product": "テーマラボ",
910
+ "switch": {
911
+ "title": "テーマとシード",
912
+ "note": "テーマの追加はCSSファイル1つと docs/themes/index.ts の1行だけ。このページは編集しません。",
913
+ "themeLabel": "テーマ",
914
+ "seedLabel": "シードカラー",
915
+ "modeLabel": "明暗",
916
+ "seedHex": "シード",
917
+ "seedInk": "シード上の文字色",
918
+ "seedContrast": "文字のコントラスト(WCAG 2.2 SC 1.4.3)",
919
+ "legendPass": "4.5:1 以上",
920
+ "legendFail": "AA 未満"
921
+ },
922
+ "mode": {
923
+ "light": "ライト",
924
+ "dark": "ダーク"
925
+ },
926
+ "theme": {
927
+ "base": {
928
+ "name": "既定",
929
+ "note": "ライブラリ自身のテーマ。テーマファイルも上書きもなく、テーマ未適用の見え方を示す対照群です。"
930
+ },
931
+ "glass": {
932
+ "name": "グラスモーフィズム",
933
+ "note": "半透明のすりガラス面、彩度を伴う背景ぼかし、細い明るい縁、そして鮮やかな背景の上に重なる奥行き。"
934
+ },
935
+ "flat": {
936
+ "name": "フラット",
937
+ "note": "角丸なし、影なし、線で区切る不透明な面。角丸を0にするだけで67行の宣言が必要です。"
938
+ }
939
+ },
940
+ "seed": {
941
+ "violet": "バイオレット",
942
+ "azure": "アジュール",
943
+ "coral": "コーラル",
944
+ "citron": "シトロン",
945
+ "navy": "ネイビー"
946
+ },
947
+ "nav": {
948
+ "section": "ワークスペース",
949
+ "overview": "概要",
950
+ "reports": "レポート",
951
+ "people": "メンバー",
952
+ "settings": "設定",
953
+ "role": "管理者",
954
+ "footer": "ログイン中"
955
+ },
956
+ "app": {
957
+ "console": "コンソール",
958
+ "billing": "請求"
959
+ },
960
+ "topbar": {
961
+ "notifications": "通知",
962
+ "account": "アカウント"
963
+ },
964
+ "menu": {
965
+ "profile": "プロフィール",
966
+ "billing": "請求",
967
+ "logout": "ログアウト"
968
+ },
969
+ "popover": {
970
+ "title": "新着2件",
971
+ "body": "いま対応が必要なものはありません。",
972
+ "action": "すべて既読にする"
973
+ },
974
+ "section": {
975
+ "type": "文字・マーク・リズム",
976
+ "typeNote": "半透明の面で最初に壊れるのは文字色の階調なので、その全段階を同時に並べています。",
977
+ "actions": "アクション",
978
+ "display": "ステータスとデータ表示",
979
+ "tables": "テーブル",
980
+ "charts": "チャート",
981
+ "fields": "フォーム部品",
982
+ "fieldsNote": "入力欄はテーマである前に「入力できる場所」として読めなければなりません。塗り・境界線・フォーカスリング・プレースホルダー・入力済みと空の両状態を並べています。",
983
+ "nav": "ナビゲーション",
984
+ "feedback": "フィードバック",
985
+ "overlays": "オーバーレイ",
986
+ "overlaysNote": "これらは置いてあるだけでなく計測時に実際に開かれます。いずれもこのDOMの外へポータルされ、ThemeScope のオーバーレイホスト経由でテーマを受け取ります。",
987
+ "regions": "入れ子になる領域",
988
+ "chat": "会話",
989
+ "absent": "描画できなかったもの",
990
+ "absentNote": "見えない欠落は、誰も勘定に入れない欠落です。"
991
+ },
992
+ "absent": {
993
+ "export": "エクスポート",
994
+ "reason": "理由",
995
+ "provider": "プロバイダー。プレビュー実行環境がこのページの上で既にマウントしています。",
996
+ "overlayPortal": "全オーバーレイのポータル先を付け替えるプロバイダー。ここで使うと、このページが測ろうとしている ThemeScope のホストを置き換えてしまいます。",
997
+ "themeScope": "このページ自身のラッパーです。",
998
+ "ownsPage": "ドキュメント全体を占有するシェルで、AppShell の中に入れ子にできません。",
999
+ "hook": "フックであり、描画する面を持ちません。",
1000
+ "function": "コンポーネントではなく関数です。",
1001
+ "inertia": "Inertia アダプター。このプレビューにないルーターを必要とします。",
1002
+ "needsFile": "ファイル入力から選ばれた実際の File が必要です。",
1003
+ "needsNetwork": "ネットワーク画像が必要なため、リポジトリ内の素材で代替しています。",
1004
+ "needsRouter": "ルートとプリフェッチ可能なクエリが必要です。",
1005
+ "needsQuery": "実際の TanStack Query の結果が必要で、これはテーマではなくデータの話です。",
1006
+ "invisible": "ページ上にありますが、定義上なにも描画しません。",
1007
+ "needsSchema": "zod スキーマが必要ですが、check:example-imports はドキュメントページに react・lucide-react・@godxjp/ui 以外の import を許可していません。",
1008
+ "sameSurface": "ページ上にある AlertDialog を組み立て直した形で、新しい面は描画しません。"
1009
+ },
1010
+ "action": {
1011
+ "save": "保存",
1012
+ "cancel": "キャンセル",
1013
+ "secondary": "セカンダリ",
1014
+ "outline": "アウトライン",
1015
+ "ghost": "ゴースト",
1016
+ "dashed": "破線",
1017
+ "destructive": "削除",
1018
+ "link": "リンク",
1019
+ "disabled": "無効",
1020
+ "search": "検索",
1021
+ "bold": "太字",
1022
+ "unread": "未読",
1023
+ "retry": "再試行",
1024
+ "more": "その他",
1025
+ "share": "共有",
1026
+ "open": "開く"
1027
+ },
1028
+ "align": {
1029
+ "start": "左寄せ",
1030
+ "center": "中央",
1031
+ "end": "右寄せ"
1032
+ },
1033
+ "label": {
1034
+ "variants": "バリアント",
1035
+ "sizes": "サイズ",
1036
+ "toggles": "トグルと評価",
1037
+ "actionsBar": "回答の操作",
1038
+ "badges": "バッジと色見本",
1039
+ "items": "件",
1040
+ "align": "配置",
1041
+ "progress": "使用容量",
1042
+ "people": "チーム",
1043
+ "tools": "ツール",
1044
+ "schedule": "スケジュール",
1045
+ "week": "週",
1046
+ "start": "期間の開始",
1047
+ "end": "期間の終了",
1048
+ "permissions": "権限",
1049
+ "quickPick": "クイック選択",
1050
+ "noResults": "表示するものがありません",
1051
+ "available": "選択可能",
1052
+ "selected": "選択済み",
1053
+ "qr": "登録用QRコード",
1054
+ "thumbnail": "ダッシュボードのスクリーンショット",
1055
+ "credential": "APIキー",
1056
+ "detail": "詳細",
1057
+ "master": "一覧",
1058
+ "catalog": "カタログから追加",
1059
+ "mainNav": "メインナビゲーション",
1060
+ "onThisPage": "このページの内容",
1061
+ "pinned": "固定バー",
1062
+ "skeletons": "読み込み中のプレースホルダー",
1063
+ "assistant": "アシスタント",
1064
+ "loading": "読み込み中",
1065
+ "rating": "評価"
1066
+ },
1067
+ "table": {
1068
+ "name": "名称",
1069
+ "owner": "担当",
1070
+ "status": "状態",
1071
+ "amount": "金額"
1072
+ },
1073
+ "tone": {
1074
+ "neutral": "通常",
1075
+ "success": "承認済み",
1076
+ "warning": "保留",
1077
+ "destructive": "却下",
1078
+ "info": "情報"
1079
+ },
1080
+ "stat": {
1081
+ "members": "メンバー数",
1082
+ "revenue": "売上",
1083
+ "usage": "利用率",
1084
+ "open": "未処理の申請",
1085
+ "hint": "先月比 +3%"
1086
+ },
1087
+ "chart": {
1088
+ "trend": "計画と実績",
1089
+ "plan": "計画",
1090
+ "actual": "実績",
1091
+ "byMonth": "月別",
1092
+ "stacked": "積み上げ",
1093
+ "split": "内訳",
1094
+ "weekly": "直近7日間"
1095
+ },
1096
+ "field": {
1097
+ "name": "名称",
1098
+ "namePlaceholder": "2〜60文字",
1099
+ "email": "メールアドレス",
1100
+ "emailError": "メールアドレスの形式ではありません。",
1101
+ "search": "検索",
1102
+ "searchPlaceholder": "名称またはIDで検索",
1103
+ "quantity": "数量",
1104
+ "password": "パスワード",
1105
+ "notes": "メモ",
1106
+ "tags": "ラベル",
1107
+ "role": "ロール",
1108
+ "date": "日付",
1109
+ "time": "時刻",
1110
+ "timeRange": "シフト",
1111
+ "colour": "ブランドカラー",
1112
+ "volume": "音量",
1113
+ "region": "地域",
1114
+ "account": "勘定科目",
1115
+ "notify": "メール通知",
1116
+ "agree": "利用規約に同意します",
1117
+ "scope": "適用範囲"
1118
+ },
1119
+ "role": {
1120
+ "viewer": "閲覧者",
1121
+ "editor": "編集者",
1122
+ "admin": "管理者"
1123
+ },
1124
+ "perm": {
1125
+ "read": "参照",
1126
+ "write": "更新",
1127
+ "admin": "管理"
1128
+ },
1129
+ "overlay": {
1130
+ "dialog": "ダイアログを開く",
1131
+ "sheet": "シートを開く",
1132
+ "alertDialog": "削除の確認",
1133
+ "tooltip": "ツールチップを表示",
1134
+ "toast": "トーストを表示",
1135
+ "toastMessage": "保存しました。",
1136
+ "twoFactor": "二要素認証を設定",
1137
+ "inlineNote": "Select のリストボックスもオーバーレイです。任意の内容の上に重なるため、3つのうち最も不透明な塗りが必要になります。"
1138
+ },
1139
+ "error": {
1140
+ "title": "このレポートへのアクセス権がありません"
1141
+ },
1142
+ "auth": {
1143
+ "title": "サインイン",
1144
+ "requester": "テーマラボがアクセスを要求しています",
1145
+ "switch": "アカウントを切り替える",
1146
+ "or": "または",
1147
+ "terms": "利用規約",
1148
+ "privacy": "プライバシー"
1149
+ },
1150
+ "chat": {
1151
+ "welcomeTitle": "こんにちは",
1152
+ "welcomeBody": "請求、経費、勤怠についてお手伝いできます。",
1153
+ "assistant": "どのようなご用件でしょうか。",
1154
+ "user": "昨日の請求書を要約して。",
1155
+ "assistantName": "アシスタント",
1156
+ "userName": "あなた",
1157
+ "thoughts": "実行した手順",
1158
+ "placeholder": "メッセージを入力"
1159
+ },
1160
+ "sample": {
1161
+ "alpha": "北部地区",
1162
+ "beta": "本社オフィス",
1163
+ "gamma": "南部倉庫",
1164
+ "delta": "港湾別棟",
1165
+ "epsilon": "現場チーム",
1166
+ "one": "ファム・タイ・ズオン",
1167
+ "two": "佐藤 舞",
1168
+ "three": "ディエゴ・コスタ",
1169
+ "short": "数分前に更新されました。",
1170
+ "long": "整いすぎた見本こそが欠陥です。この行には3行に折り返すラベルと1語のラベル、改行できない長い語と空のセル、そしてレイアウトが受け取りうる最長の文字列が同居しています。",
1171
+ "headline": "このコンポーネント群は複雑なテーマを着られるか。",
1172
+ "linkLabel": "トークン解決のルールを読む",
1173
+ "codeLabel": "テーマの抜粋",
1174
+ "secure": "セッションは暗号化されています",
1175
+ "syncing": "同期中",
1176
+ "marqueeLabel": "スクロールを一時停止",
1177
+ "aspectTitle": "比率が固定された領域"
1178
+ },
1179
+ "launcher": {
1180
+ "trigger": "アプリ",
1181
+ "title": "アプリを切り替える"
1182
+ },
1183
+ "org": {
1184
+ "trigger": "組織"
1185
+ },
1186
+ "twoFactor": {
1187
+ "title": "二要素認証を設定する",
1188
+ "description": "認証アプリでコードを読み取り、表示された6桁を入力してください。",
1189
+ "manualKey": "または、このキーを手入力してください",
1190
+ "code": "6桁のコード",
1191
+ "recovery": "リカバリーコードは安全な場所に保管してください。表示は一度きりです。",
1192
+ "acknowledge": "保管しました"
1193
+ }
1194
+ }
1195
+ }