@squadbase/vantage-template 0.1.0 → 0.1.1-dev1.1f82cc5

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 (34) hide show
  1. package/README.md +7 -7
  2. package/base-template/.squadbase/skills/vantage-add-feature/SKILL.md +9 -7
  3. package/base-template/.squadbase/skills/vantage-app/SKILL.md +4 -0
  4. package/base-template/.squadbase/skills/vantage-design/SKILL.md +12 -2
  5. package/base-template/.squadbase/skills/vantage-design/references/format.md +1 -1
  6. package/base-template/.squadbase/skills/vantage-pitfalls/SKILL.md +45 -1
  7. package/base-template/.squadbase/skills/vantage-slide/SKILL.md +281 -0
  8. package/base-template/.squadbase/skills/vantage-slide/references/morph.md +102 -0
  9. package/base-template/.squadbase/skills/vantage-slide/references/steps.md +57 -0
  10. package/base-template/.squadbase/skills/vantage-slide/references/tokens.md +87 -0
  11. package/base-template/.squadbase/skills/vantage-slide/references/transitions.md +196 -0
  12. package/base-template/AGENTS.md +180 -2
  13. package/base-template/DESIGN.md +1 -1
  14. package/base-template/agents/api.md +29 -0
  15. package/base-template/agents/csv.md +2 -1
  16. package/base-template/agents/doc.md +6 -3
  17. package/base-template/agents/page.md +32 -8
  18. package/base-template/agents/slide.md +13 -1
  19. package/base-template/agents/xlsx.md +2 -1
  20. package/base-template/bun.lock +917 -0
  21. package/base-template/bunfig.toml +5 -0
  22. package/base-template/package.json +6 -6
  23. package/base-template/squadbase.yml +1 -0
  24. package/base-template/src/_layout.tsx +12 -10
  25. package/base-template/src/components/build-recovery.tsx +37 -1
  26. package/base-template/src/components/user-card.tsx +10 -10
  27. package/base-template/src/index.tsx +8 -3
  28. package/base-template/src/styles.css +11 -0
  29. package/dist/index.js +15 -6
  30. package/package.json +16 -16
  31. package/ui-templates/CLAUDE.md +2 -0
  32. package/ui-templates/kpi-chart-simple/pages/index.tsx +48 -48
  33. package/ui-templates/kpi-chart-simple-ja/pages/index.tsx +48 -48
  34. package/base-template/package-lock.json +0 -5841
@@ -26,8 +26,8 @@
26
26
  },
27
27
  "dependencies": {
28
28
  "@squadbase/vantage": "^0.5.0",
29
- "react": "^19.2.7",
30
- "react-dom": "^19.2.7"
29
+ "react": "^19.3.1",
30
+ "react-dom": "^19.3.1"
31
31
  }
32
32
  }
33
33
  ```
@@ -164,17 +164,41 @@ refetchOnWindowFocus false・networkMode "always")。挙動を変えたいとき
164
164
  ## 組み込み UI / コンポーネントの入口
165
165
 
166
166
  - **プリミティブ**は `@squadbase/vantage/ui` から import する(`Button`・`Loading`・
167
- `ErrorState`・`Empty`・`Select`・`Checkbox` ほか)。
167
+ `ErrorState`・`Empty`・`Select`・`Checkbox`・`RadioGroup`・`Field`・`Combobox`・`Pagination`・
168
+ `Avatar`・`Kbd`・`HoverCard`・`AlertDialog`・`Drawer`・`Toaster` + `toast.add()` ほか)。
168
169
  - **複合パーツ**は `@squadbase/vantage/components` から(`PageShell`・`DashboardCardPreset`・
169
- `DataTablePreset`・`EChart` ほか)。
170
+ `DataTablePreset`・型付きチャート(下の「グラフ」)・`EChart` ほか)。
170
171
  - **どの名前が import 可能か / props の詳細は `vantage docs` で引く。** ガイドとコンポーネント
171
172
  リファレンスはパッケージに同梱されていて、オフラインでも読める(→ `AGENTS.md` の
172
173
  「ドキュメントを引く」)。**名前が分からないとき**はやりたいことで `vantage search` する
173
174
  (→ 同節)。
174
- - **UI は import して使うのが既定。取り出す(eject)必要はない。** `vantage add ui|block` は
175
- ソースを手元にコピーして**改造したいとき専用**のコマンドで、取り出せるのは
176
- `ui: data-table` と `block: sales-overview` の 2 つだけ。それ以外の名前は import 専用で
177
- `add` の対象ではない(未知名で実行すると候補が一覧表示される)。
175
+ - **UI は import して使うのが既定。取り出す(eject)必要はない。** `vantage add ui <name>` は
176
+ ソースを手元にコピーして**改造したいとき専用**のコマンド。`/ui` のプリミティブも
177
+ `/components` の複合パーツも全部取り出せる(名前は kebab-case: `add ui bar-chart`。
178
+ ブロックは `add block sales-overview`。未知名で実行すると候補が一覧表示される)。
179
+
180
+ ### 長い表はページングする(縦スクロール箱を作らない)
181
+
182
+ - 行が多い表は `DataTablePreset`(または `DataTable`)に `enablePagination` を付けて**ページング**する
183
+ (既定は 10 行 / ページ。ページングは既定で無効なので、付け忘れると全行が並ぶ)。素の `<table>` を
184
+ 手書きして全行を流し込まない。
185
+ - カードの中に `max-h-*` + `overflow-y-auto` の**縦スクロール領域を作らない**。ホイールやキー
186
+ (End / Space)がその箱に吸われ、ページ全体がスクロールしなくなる。高さは内容に任せる。
187
+ - 横に広い表の `overflow-x-auto` は構わない。`SheetGrid`(`.csv` / `.xlsx` のビューア)は
188
+ グリッドとして意図した入れ子スクロールなので対象外。
189
+
190
+ ### グラフはまず型付きチャートで描く
191
+
192
+ - 推移は `LineChart` / `AreaChart`、比較は `BarChart`、構成比は `DonutChart`。`data`(行の配列)・
193
+ `index`(x 軸の列)・`categories`(系列の列)を渡すだけで、option は書かない
194
+ (`DonutChart` は `category` / `value`)。
195
+ - 上位 N 件は `BarList`、判定帯や予算消化は `CategoryBar`、達成率は `ProgressCircle`、
196
+ 日ごとの状態は `Tracker`。
197
+ - `EChart` + `EChartsOption` は、二軸・散布図・ヒートマップ・注釈線など型付きチャートの props で
198
+ 表せないときだけ使う。
199
+ - 色は省略してテーマトークンに任せる。指定するなら `"chart-1"`〜`"chart-5"` か
200
+ `"var(--destructive)"` などの CSS 色。hex の直書きや Tailwind クラスは使わない。
201
+ - 数値の書式(`¥`・`%`・桁区切り)は `valueFormatter` に渡す。
178
202
 
179
203
  ### ダークモードは opt-in
180
204
 
@@ -11,6 +11,13 @@
11
11
  `src/monthly-report.slide.tsx` → `/monthly-report`。中身は `<SlideDeck>` を返す普通の React
12
12
  コンポーネントで、`definePage` もナビも通常のページと同じように効きます。
13
13
 
14
+ **ファイル名の決め方:**
15
+
16
+ - **ルート `/` がすでに他のページ(`index.tsx`など)で使われている場合は、スライドのタイトルから slug を作ってファイル名にする。** `index.slide.tsx` は `index.tsx` と同じ `/` に解決するので `ROUTE_CONFLICT` になる。
17
+ - 例: "Label check" というスライド → `src/label-check.slide.tsx` → `/label-check`
18
+ - 例: "Monthly Report" というスライド → `src/monthly-report.slide.tsx` → `/monthly-report`
19
+ - 新規プロジェクトでまだ `/` が空いている場合のみ、`index.slide.tsx` を使ってよい。
20
+
14
21
  ```tsx
15
22
  import { Slide, SlideDeck } from "@squadbase/vantage/slide"
16
23
 
@@ -34,7 +41,12 @@ export default function Deck() {
34
41
  送れ、左のスライド一覧(サムネイル列)は `L` で開閉、`F` で全画面、ツールバーから pptx を
35
42
  書き出せます。**書き方の作法は同梱 Skill の
36
43
  `vantage-slide`** にあります(キャンバスの縦方向の予算、段階表示、トランジション、モーフ、
37
- pptx が壊れる条件)。
44
+ pptx が壊れる条件、説明と図表のデータ時点の揃え方)。
45
+
46
+ **分析を共有するデッキでは、本文・数値・図表を同じ対象期間と同じ取得時点の結果に揃え、その期間と
47
+ 時点を短く表示する。** 説明文を固定したまま図表だけが最新値へ変わる構成にしない(ライブ更新を
48
+ 意図するなら本文も同じ取得結果から導く)。同一時点の結果を保持できない場合は、スナップショットとして
49
+ 保存できたとは報告せず、必要な保持の仕組みと保証できない範囲を伝える。
38
50
 
39
51
  `.slide` を付けられるのはルートになるページモジュールだけで、`_layout.slide.tsx` などは
40
52
  `INVALID_PAGE_VARIANT` エラーになります。`june.slide.tsx` と `june.tsx` は同じ URL に解決するので
@@ -28,6 +28,7 @@
28
28
  - **複数シートに対応**しています。シートのタブは下端に並び、切り替えて閲覧できます。
29
29
  - 数式・グラフ・セル書式は再現されません(値として読めれば十分、という設計)。ブラウザでパースするので
30
30
  25MB を超えるファイルはそのページにエラーが出ます —— 大きいデータは `server/api/` から配って
31
- `DataTable` で描いてください
31
+ `DataTable` で描いてください。20 万行を超えると先頭
32
+ 20 万行だけが表示されます(残りはダウンロードして見る)
32
33
  - **ビューアの無い拡張子(`.xls`・`.ods` など)はルートになりません。** `vantage check` の
33
34
  `UNSUPPORTED_PAGE_FILE` 警告が知らせます