@squadbase/vantage 0.6.2-stg.3a2ba98 → 0.7.0-dev1.19083f7

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 (355) hide show
  1. package/dist/add-4GHF2TX2.js +6 -0
  2. package/dist/add-4GHF2TX2.js.map +1 -0
  3. package/dist/{build-O5TVNH4E.js → build-U7GO26HR.js} +9 -9
  4. package/dist/{build-O5TVNH4E.js.map → build-U7GO26HR.js.map} +1 -1
  5. package/dist/{check-WFBEDHDR.js → check-MRVAIHG5.js} +7 -7
  6. package/dist/{check-WFBEDHDR.js.map → check-MRVAIHG5.js.map} +1 -1
  7. package/dist/chunk-2IAPIOPS.js +152 -0
  8. package/dist/chunk-2IAPIOPS.js.map +1 -0
  9. package/dist/chunk-3RJEOP3J.js +174 -0
  10. package/dist/chunk-3RJEOP3J.js.map +1 -0
  11. package/dist/{chunk-QDZA5JSL.js → chunk-AABMKHEU.js} +4 -4
  12. package/dist/{chunk-QDZA5JSL.js.map → chunk-AABMKHEU.js.map} +1 -1
  13. package/dist/{chunk-PVTHHV7X.js → chunk-ANZLVSEP.js} +28 -7
  14. package/dist/chunk-ANZLVSEP.js.map +1 -0
  15. package/dist/chunk-CKWPK4RO.js +50 -0
  16. package/dist/chunk-CKWPK4RO.js.map +1 -0
  17. package/dist/chunk-EG4PX726.js +678 -0
  18. package/dist/chunk-EG4PX726.js.map +1 -0
  19. package/dist/{chunk-3G43C6OL.js → chunk-GNXCX4WE.js} +46 -3
  20. package/dist/chunk-GNXCX4WE.js.map +1 -0
  21. package/dist/chunk-NYQJ5UY4.js +9028 -0
  22. package/dist/chunk-NYQJ5UY4.js.map +1 -0
  23. package/dist/chunk-NZ5QIIG4.js +74 -0
  24. package/dist/chunk-NZ5QIIG4.js.map +1 -0
  25. package/dist/{chunk-BCE22JSM.js → chunk-PJ4SPXHS.js} +52 -16
  26. package/dist/chunk-PJ4SPXHS.js.map +1 -0
  27. package/dist/{chunk-RPZAALCX.js → chunk-QNOX7WLZ.js} +256 -165
  28. package/dist/chunk-QNOX7WLZ.js.map +1 -0
  29. package/dist/{chunk-ZVANIULZ.js → chunk-RNTDBX6S.js} +4 -4
  30. package/dist/{chunk-ZVANIULZ.js.map → chunk-RNTDBX6S.js.map} +1 -1
  31. package/dist/{chunk-PXRX5PEC.js → chunk-ROHNXP7J.js} +73 -4
  32. package/dist/chunk-ROHNXP7J.js.map +1 -0
  33. package/dist/chunk-S5MDTHH7.js +466 -0
  34. package/dist/chunk-S5MDTHH7.js.map +1 -0
  35. package/dist/chunk-SDJTTMLK.js +1877 -0
  36. package/dist/chunk-SDJTTMLK.js.map +1 -0
  37. package/dist/{chunk-EP6JHXSR.js → chunk-SHZM3EXB.js} +68 -12
  38. package/dist/chunk-SHZM3EXB.js.map +1 -0
  39. package/dist/chunk-TRMHNMMZ.js +61 -0
  40. package/dist/chunk-TRMHNMMZ.js.map +1 -0
  41. package/dist/{chunk-A2UUGASH.js → chunk-U736PVHY.js} +2 -2
  42. package/dist/chunk-U736PVHY.js.map +1 -0
  43. package/dist/{chunk-JGRMRXXZ.js → chunk-UWSQUHX6.js} +4 -99
  44. package/dist/chunk-UWSQUHX6.js.map +1 -0
  45. package/dist/cli.js +15 -11
  46. package/dist/cli.js.map +1 -1
  47. package/dist/client/index.d.ts +34 -3
  48. package/dist/client/index.js +211 -12
  49. package/dist/client/index.js.map +1 -1
  50. package/dist/components/index.d.ts +2113 -30
  51. package/dist/components/index.js +7 -4
  52. package/dist/delta-text-CbrOaW83.d.ts +17 -0
  53. package/dist/{dev-NZRLOQCL.js → dev-O42JFQ64.js} +24 -13
  54. package/dist/dev-O42JFQ64.js.map +1 -0
  55. package/dist/doc/index.d.ts +215 -2
  56. package/dist/doc/index.js +423 -5
  57. package/dist/doc/index.js.map +1 -1
  58. package/dist/{docs-ZGDJUHJI.js → docs-JVP4RPKT.js} +3 -3
  59. package/dist/{docs-ZGDJUHJI.js.map → docs-JVP4RPKT.js.map} +1 -1
  60. package/dist/{doctor-VFKEMR54.js → doctor-YD3XAAOT.js} +8 -8
  61. package/dist/doctor-YD3XAAOT.js.map +1 -0
  62. package/dist/format-DihQkL1N.d.ts +249 -0
  63. package/dist/geo-japan-7BMSOJRX.js +8 -0
  64. package/dist/geo-japan-7BMSOJRX.js.map +1 -0
  65. package/dist/geo-us-GVOG7VXH.js +8 -0
  66. package/dist/geo-us-GVOG7VXH.js.map +1 -0
  67. package/dist/geo-world-35HL56UU.js +8 -0
  68. package/dist/geo-world-35HL56UU.js.map +1 -0
  69. package/dist/markdown/index.js +1 -1
  70. package/dist/markdown/index.js.map +1 -1
  71. package/dist/{preview-QDCIVVSR.js → preview-T6CLSQVX.js} +12 -4
  72. package/dist/preview-T6CLSQVX.js.map +1 -0
  73. package/dist/query/index.d.ts +0 -11
  74. package/dist/query/index.js +2 -2
  75. package/dist/{routes-RHP5FVGD.js → routes-PVKNT777.js} +6 -6
  76. package/dist/{routes-RHP5FVGD.js.map → routes-PVKNT777.js.map} +1 -1
  77. package/dist/{search-RFBELGY7.js → search-5LC4XPB5.js} +3 -3
  78. package/dist/{search-RFBELGY7.js.map → search-5LC4XPB5.js.map} +1 -1
  79. package/dist/slide/index.d.ts +272 -1
  80. package/dist/slide/index.js +1086 -19
  81. package/dist/slide/index.js.map +1 -1
  82. package/dist/table/index.js +14 -10
  83. package/dist/table/index.js.map +1 -1
  84. package/dist/ui/index.d.ts +148 -12
  85. package/dist/ui/index.js +1340 -88
  86. package/dist/ui/index.js.map +1 -1
  87. package/dist/{upgrade-GF2P67M6.js → upgrade-6DT7ADRP.js} +7 -7
  88. package/dist/{upgrade-GF2P67M6.js.map → upgrade-6DT7ADRP.js.map} +1 -1
  89. package/dist/vite/index.d.ts +10 -0
  90. package/dist/vite/index.js +4 -4
  91. package/docs/en/agent-skills.md +1 -1
  92. package/docs/en/changelog.md +82 -0
  93. package/docs/en/cli-reference.md +30 -0
  94. package/docs/en/components.md +42 -17
  95. package/docs/en/doc/delta-text.md +40 -0
  96. package/docs/en/doc/doc-action-items.md +49 -0
  97. package/docs/en/doc/doc-callout.md +38 -0
  98. package/docs/en/doc/doc-data-table.md +60 -0
  99. package/docs/en/doc/doc-executive-summary.md +64 -0
  100. package/docs/en/doc/doc-figure.md +56 -0
  101. package/docs/en/doc/doc-key-findings.md +61 -0
  102. package/docs/en/doc/doc-kpi-scorecard.md +80 -0
  103. package/docs/en/doc/doc-notes-and-sources.md +43 -0
  104. package/docs/en/doc/doc-report-header.md +46 -0
  105. package/docs/en/pages-and-metadata.md +15 -0
  106. package/docs/en/parts/area-chart.md +99 -0
  107. package/docs/en/parts/bar-chart.md +91 -0
  108. package/docs/en/parts/bar-list.md +50 -0
  109. package/docs/en/parts/category-bar.md +37 -0
  110. package/docs/en/parts/chart-frame.md +39 -0
  111. package/docs/en/parts/data-table.md +22 -0
  112. package/docs/en/parts/delta.md +51 -0
  113. package/docs/en/parts/donut-chart.md +72 -0
  114. package/docs/en/parts/format.md +43 -0
  115. package/docs/en/parts/funnel-steps.md +2 -1
  116. package/docs/en/parts/heatmap.md +53 -0
  117. package/docs/en/parts/kpi-card.md +58 -0
  118. package/docs/en/parts/legend.md +35 -0
  119. package/docs/en/parts/line-chart.md +94 -0
  120. package/docs/en/parts/metric-value.md +3 -2
  121. package/docs/en/parts/page-shell.md +1 -1
  122. package/docs/en/parts/progress-circle.md +33 -0
  123. package/docs/en/parts/sample-data.md +39 -0
  124. package/docs/en/parts/scatter-chart.md +56 -0
  125. package/docs/en/parts/sparkline.md +1 -1
  126. package/docs/en/parts/tracker.md +36 -0
  127. package/docs/en/parts/trend-indicator.md +17 -1
  128. package/docs/en/parts/updated-at.md +30 -0
  129. package/docs/en/parts/waterfall-chart.md +56 -0
  130. package/docs/en/slide/slide-chart-full.md +48 -0
  131. package/docs/en/slide/slide-chart-insight.md +52 -0
  132. package/docs/en/slide/slide-columns.md +46 -0
  133. package/docs/en/slide/slide-comparison.md +68 -0
  134. package/docs/en/slide/slide-cover.md +39 -0
  135. package/docs/en/slide/slide-exec-summary.md +47 -0
  136. package/docs/en/slide/slide-heading.md +38 -0
  137. package/docs/en/slide/slide-kpi-grid.md +55 -0
  138. package/docs/en/slide/slide-kpi-hero.md +58 -0
  139. package/docs/en/slide/slide-next-actions.md +49 -0
  140. package/docs/en/slide/slide-scorecard-table.md +54 -0
  141. package/docs/en/slide/slide-section.md +44 -0
  142. package/docs/en/slide/slide-source-line.md +34 -0
  143. package/docs/en/ui/alert-dialog.md +42 -0
  144. package/docs/en/ui/avatar.md +31 -0
  145. package/docs/en/ui/combobox.md +74 -0
  146. package/docs/en/ui/drawer.md +41 -0
  147. package/docs/en/ui/empty.md +1 -1
  148. package/docs/en/ui/error-state.md +4 -3
  149. package/docs/en/ui/field.md +42 -0
  150. package/docs/en/ui/hover-card.md +21 -0
  151. package/docs/en/ui/kbd.md +17 -0
  152. package/docs/en/ui/loading.md +1 -1
  153. package/docs/en/ui/pagination.md +36 -0
  154. package/docs/en/ui/radio-group.md +21 -0
  155. package/docs/en/ui/toast.md +44 -0
  156. package/docs/en/ui/toggle-group.md +4 -3
  157. package/docs/en/ui-and-theming.md +1 -1
  158. package/docs/index.json +1184 -114
  159. package/docs/ja/agent-skills.md +1 -1
  160. package/docs/ja/changelog.md +84 -0
  161. package/docs/ja/cli-reference.md +29 -0
  162. package/docs/ja/components.md +68 -101
  163. package/docs/ja/doc/delta-text.md +40 -0
  164. package/docs/ja/doc/doc-action-items.md +49 -0
  165. package/docs/ja/doc/doc-callout.md +38 -0
  166. package/docs/ja/doc/doc-data-table.md +60 -0
  167. package/docs/ja/doc/doc-executive-summary.md +64 -0
  168. package/docs/ja/doc/doc-figure.md +56 -0
  169. package/docs/ja/doc/doc-key-findings.md +61 -0
  170. package/docs/ja/doc/doc-kpi-scorecard.md +80 -0
  171. package/docs/ja/doc/doc-notes-and-sources.md +43 -0
  172. package/docs/ja/doc/doc-report-header.md +46 -0
  173. package/docs/ja/page-types/csv.md +83 -0
  174. package/docs/ja/page-types/doc.md +83 -0
  175. package/docs/ja/page-types/excel.md +82 -0
  176. package/docs/ja/page-types/slide.md +133 -0
  177. package/docs/ja/page-types.md +47 -0
  178. package/docs/ja/pages-and-metadata.md +15 -0
  179. package/docs/ja/parts/area-chart.md +85 -0
  180. package/docs/ja/parts/bar-chart.md +95 -0
  181. package/docs/ja/parts/bar-list.md +58 -0
  182. package/docs/ja/parts/category-bar.md +36 -0
  183. package/docs/ja/parts/chart-frame.md +36 -0
  184. package/docs/ja/parts/data-table.md +22 -0
  185. package/docs/ja/parts/delta.md +51 -0
  186. package/docs/ja/parts/donut-chart.md +66 -0
  187. package/docs/ja/parts/echart.md +3 -0
  188. package/docs/ja/parts/format.md +44 -0
  189. package/docs/ja/parts/funnel-steps.md +27 -8
  190. package/docs/ja/parts/heatmap.md +45 -0
  191. package/docs/ja/parts/kpi-card.md +56 -0
  192. package/docs/ja/parts/legend.md +36 -0
  193. package/docs/ja/parts/line-chart.md +84 -0
  194. package/docs/ja/parts/metric-value.md +3 -2
  195. package/docs/ja/parts/page-shell.md +1 -1
  196. package/docs/ja/parts/progress-circle.md +34 -0
  197. package/docs/ja/parts/sample-data.md +61 -0
  198. package/docs/ja/parts/scatter-chart.md +69 -0
  199. package/docs/ja/parts/sparkline.md +2 -2
  200. package/docs/ja/parts/tracker.md +32 -0
  201. package/docs/ja/parts/trend-indicator.md +17 -1
  202. package/docs/ja/parts/updated-at.md +27 -0
  203. package/docs/ja/parts/waterfall-chart.md +61 -0
  204. package/docs/ja/routing.md +8 -86
  205. package/docs/ja/slide/slide-chart-full.md +48 -0
  206. package/docs/ja/slide/slide-chart-insight.md +52 -0
  207. package/docs/ja/slide/slide-columns.md +46 -0
  208. package/docs/ja/slide/slide-comparison.md +68 -0
  209. package/docs/ja/slide/slide-cover.md +39 -0
  210. package/docs/ja/slide/slide-exec-summary.md +47 -0
  211. package/docs/ja/slide/slide-heading.md +38 -0
  212. package/docs/ja/slide/slide-kpi-grid.md +55 -0
  213. package/docs/ja/slide/slide-kpi-hero.md +58 -0
  214. package/docs/ja/slide/slide-next-actions.md +49 -0
  215. package/docs/ja/slide/slide-scorecard-table.md +54 -0
  216. package/docs/ja/slide/slide-section.md +44 -0
  217. package/docs/ja/slide/slide-source-line.md +34 -0
  218. package/docs/ja/ui/alert-dialog.md +41 -0
  219. package/docs/ja/ui/avatar.md +31 -0
  220. package/docs/ja/ui/combobox.md +74 -0
  221. package/docs/ja/ui/drawer.md +41 -0
  222. package/docs/ja/ui/empty.md +1 -1
  223. package/docs/ja/ui/error-state.md +4 -3
  224. package/docs/ja/ui/field.md +42 -0
  225. package/docs/ja/ui/hover-card.md +21 -0
  226. package/docs/ja/ui/kbd.md +16 -0
  227. package/docs/ja/ui/loading.md +1 -1
  228. package/docs/ja/ui/pagination.md +36 -0
  229. package/docs/ja/ui/radio-group.md +21 -0
  230. package/docs/ja/ui/toast.md +46 -0
  231. package/docs/ja/ui/toggle-group.md +4 -3
  232. package/docs/ja/ui-and-theming.md +14 -7
  233. package/package.json +43 -29
  234. package/registry/ui/accordion.tsx +76 -0
  235. package/registry/ui/alert-dialog.tsx +189 -0
  236. package/registry/ui/alert.tsx +80 -0
  237. package/registry/ui/app-shell.tsx +424 -0
  238. package/registry/ui/area-chart.tsx +3960 -0
  239. package/registry/ui/attention-list.tsx +465 -0
  240. package/registry/ui/avatar.tsx +110 -0
  241. package/registry/ui/badge.tsx +56 -0
  242. package/registry/ui/bar-chart.tsx +3954 -0
  243. package/registry/ui/bar-list.tsx +3998 -0
  244. package/registry/ui/box-plot-chart.tsx +4214 -0
  245. package/registry/ui/breadcrumb.tsx +128 -0
  246. package/registry/ui/button.tsx +62 -0
  247. package/registry/ui/calendar.tsx +223 -0
  248. package/registry/ui/card.tsx +107 -0
  249. package/registry/ui/category-bar.tsx +1498 -0
  250. package/registry/ui/chart-frame.tsx +1604 -0
  251. package/registry/ui/checkbox.tsx +30 -0
  252. package/registry/ui/collapsible.tsx +23 -0
  253. package/registry/ui/combo-chart.tsx +1851 -0
  254. package/registry/ui/combobox.tsx +310 -0
  255. package/registry/ui/command.tsx +198 -0
  256. package/registry/ui/dashboard-card.tsx +217 -0
  257. package/registry/ui/data-table.tsx +896 -157
  258. package/registry/ui/date-range-picker.tsx +544 -0
  259. package/registry/ui/delta.tsx +350 -0
  260. package/registry/ui/dialog.tsx +161 -0
  261. package/registry/ui/donut-chart.tsx +4006 -0
  262. package/registry/ui/drawer.tsx +229 -0
  263. package/registry/ui/dropdown-menu.tsx +274 -0
  264. package/registry/ui/echart.tsx +1178 -0
  265. package/registry/ui/field.tsx +240 -0
  266. package/registry/ui/filter-bar.tsx +551 -0
  267. package/registry/ui/funnel-steps.tsx +3843 -0
  268. package/registry/ui/heatmap.tsx +2027 -0
  269. package/registry/ui/histogram-chart.tsx +4284 -0
  270. package/registry/ui/hover-card.tsx +52 -0
  271. package/registry/ui/input-group.tsx +160 -0
  272. package/registry/ui/input.tsx +24 -0
  273. package/registry/ui/kbd.tsx +30 -0
  274. package/registry/ui/kpi-card.tsx +905 -0
  275. package/registry/ui/label.tsx +22 -0
  276. package/registry/ui/legend.tsx +3817 -0
  277. package/registry/ui/line-chart.tsx +3958 -0
  278. package/registry/ui/metric-value.tsx +62 -0
  279. package/registry/ui/multi-select.tsx +382 -0
  280. package/registry/ui/page-shell.tsx +420 -0
  281. package/registry/ui/pagination.tsx +140 -0
  282. package/registry/ui/paired-chart.tsx +4086 -0
  283. package/registry/ui/pivot-table.tsx +1259 -0
  284. package/registry/ui/placeholder.tsx +36 -0
  285. package/registry/ui/popover.tsx +92 -0
  286. package/registry/ui/progress-circle.tsx +1033 -0
  287. package/registry/ui/progress.tsx +85 -0
  288. package/registry/ui/radio-group.tsx +39 -0
  289. package/registry/ui/sample-data.tsx +230 -0
  290. package/registry/ui/scatter-chart.tsx +4503 -0
  291. package/registry/ui/scroll-area.tsx +56 -0
  292. package/registry/ui/searchable-select.tsx +352 -0
  293. package/registry/ui/section-header.tsx +43 -0
  294. package/registry/ui/segmented-control.tsx +76 -0
  295. package/registry/ui/select.tsx +255 -0
  296. package/registry/ui/separator.tsx +27 -0
  297. package/registry/ui/sheet.tsx +139 -0
  298. package/registry/ui/sidebar.tsx +725 -0
  299. package/registry/ui/skeleton.tsx +17 -0
  300. package/registry/ui/slider.tsx +56 -0
  301. package/registry/ui/sparkline.tsx +230 -0
  302. package/registry/ui/spinner.tsx +14 -0
  303. package/registry/ui/states.tsx +247 -0
  304. package/registry/ui/status-badge.tsx +286 -0
  305. package/registry/ui/switch.tsx +34 -0
  306. package/registry/ui/table.tsx +118 -0
  307. package/registry/ui/tabs.tsx +84 -0
  308. package/registry/ui/textarea.tsx +22 -0
  309. package/registry/ui/toast.tsx +250 -0
  310. package/registry/ui/toggle-group.tsx +91 -0
  311. package/registry/ui/toggle.tsx +47 -0
  312. package/registry/ui/tooltip.tsx +72 -0
  313. package/registry/ui/tracker.tsx +1015 -0
  314. package/registry/ui/treemap.tsx +1916 -0
  315. package/registry/ui/trend-indicator.tsx +217 -0
  316. package/registry/ui/updated-at.tsx +276 -0
  317. package/registry/ui/waterfall-chart.tsx +4561 -0
  318. package/skills/vantage-add-feature/SKILL.md +14 -7
  319. package/skills/vantage-design/SKILL.md +62 -52
  320. package/skills/vantage-design/references/extract.md +26 -27
  321. package/skills/vantage-design/references/format.md +12 -172
  322. package/skills/vantage-design/references/presets.md +50 -110
  323. package/skills/vantage-pitfalls/SKILL.md +10 -1
  324. package/skills/vantage-slide/SKILL.md +71 -36
  325. package/templates/AGENTS.md +54 -16
  326. package/templates/agents/api.md +36 -0
  327. package/templates/agents/csv.md +2 -1
  328. package/templates/agents/doc.md +52 -3
  329. package/templates/agents/page.md +91 -10
  330. package/templates/agents/slide.md +90 -4
  331. package/templates/agents/xlsx.md +2 -1
  332. package/theme.css +247 -132
  333. package/dist/add-EISGSZAH.js +0 -6
  334. package/dist/add-EISGSZAH.js.map +0 -1
  335. package/dist/chunk-3G43C6OL.js.map +0 -1
  336. package/dist/chunk-5ZOP4SQR.js +0 -47
  337. package/dist/chunk-5ZOP4SQR.js.map +0 -1
  338. package/dist/chunk-A2UUGASH.js.map +0 -1
  339. package/dist/chunk-BCE22JSM.js.map +0 -1
  340. package/dist/chunk-DTDVSFRY.js +0 -29
  341. package/dist/chunk-DTDVSFRY.js.map +0 -1
  342. package/dist/chunk-EP6JHXSR.js.map +0 -1
  343. package/dist/chunk-JGRMRXXZ.js.map +0 -1
  344. package/dist/chunk-KLEIVDUV.js +0 -165
  345. package/dist/chunk-KLEIVDUV.js.map +0 -1
  346. package/dist/chunk-LSRMRIXA.js +0 -2227
  347. package/dist/chunk-LSRMRIXA.js.map +0 -1
  348. package/dist/chunk-PVTHHV7X.js.map +0 -1
  349. package/dist/chunk-PXRX5PEC.js.map +0 -1
  350. package/dist/chunk-RPZAALCX.js.map +0 -1
  351. package/dist/chunk-T3FLAGI6.js +0 -316
  352. package/dist/chunk-T3FLAGI6.js.map +0 -1
  353. package/dist/dev-NZRLOQCL.js.map +0 -1
  354. package/dist/doctor-VFKEMR54.js.map +0 -1
  355. package/dist/preview-QDCIVVSR.js.map +0 -1
@@ -15,7 +15,7 @@ Vantage は **Claude Code の Agent Skills** を同梱しています。Skill
15
15
  | `vantage-app` | アプリの新規作成と、`index.tsx` 単体の SPA から `server/api`・ネストレイアウト・動的ルート・404/error を備えた fullstack への拡張 |
16
16
  | `vantage-add-feature` | ページ / API / UI / ブロックの追加(`vantage add` + `check` / `routes` までの一連) |
17
17
  | `vantage-slide` | `.slide.tsx` でスライドデッキを書く(1920×1080 キャンバスの縦方向の予算、タイプスケール、段階表示、トランジションとモーフ、pptx 書き出しの前提) |
18
- | `vantage-design` | 見た目の意図 `DESIGN.md` と値を持つ `styles.css` をまとめて作る / 更新する(配色・チャートの色・書体・ブランド合わせ。URL・ロゴ・資料・外部の DESIGN.md からの取り込み、コントラストの確認) |
18
+ | `vantage-design` | テーマ(`styles.css` の値と配色・チャートの色・書体)を決めて適用する(ブランド合わせ。URL・ロゴ・資料・外部の DESIGN.md からの取り込み、コントラストの確認) |
19
19
  | `vantage-pitfalls` | 落とし穴リファレンス(Base UI ≠ Radix、`SelectValue` の挙動、クライアントから `server/` を import しない など) |
20
20
  | `project-storage` | Squadbase の Project Storage(アップロード済みファイル)をブラウザから扱う(一覧、画像 / 動画 / PDF の埋め込み、アップロード)。Squadbase 上で動くアプリ向け |
21
21
 
@@ -8,6 +8,90 @@ Vantage のリリースごとの変更点です。新しいものが上に来ま
8
8
  > まだプロトタイプ(**0.x**)です。0.x の間は **minor が実質のメジャー**扱いで、後方互換性の
9
9
  > ない変更は minor で入ることがあります。patch は後方互換の機能追加とバグ修正のみです。
10
10
 
11
+ ## v0.7.0
12
+
13
+ UI 部品とテーマを作り直し、KPI・チャート・スライド / ドキュメント向けの部品が大きく増えました。
14
+ 部品に組み込まれた文言の既定の言語と、既定のテーマの見た目が変わります(2026-11-01)。
15
+
16
+ > [!WARNING]
17
+ > **部品に組み込まれた文言と数値・日付の書式が `<html lang>` に従うようになり、未指定なら英語になりました。**
18
+ > これまで `DataTable`(「データがありません」「前へ / 次へ」など)・`FilterBar`・`EChart` の操作ボタン・
19
+ > スライドのツールバーは日本語で固定でした。**日本語のアプリはルート `_layout.tsx` に
20
+ > `export const lang = "ja"` を書いてください。** `StatusBadge` も `label` を省くと status の文字列を
21
+ > そのまま出すのではなく、言語に合わせたラベル(`success` →「正常」/ "Healthy")を出します。
22
+
23
+ > [!WARNING]
24
+ > **既定のテーマが変わりました。** `@squadbase/vantage/theme.css` の `--primary` が無彩色から青になり、
25
+ > 角丸(`--radius`)が 0.625rem → 0.5rem、チャート色とカードの影(`--shadow-card`)も新しくなりました。
26
+ > `styles.css` でトークンを上書きしているアプリは、上書きした値がそのまま使われます。トークンの削除・
27
+ > 改名はありません。
28
+
29
+ ### 追加
30
+
31
+ - **アプリの表示言語 `lang`。** ルート `_layout.tsx` の `export const lang = "ja"`(リテラル)が
32
+ `<html lang>` になり、部品の文言・書式、スライドのツールバーがその言語になります。日本語のスライド・
33
+ doc は文節の途中で折れなくなります。未指定は `"en"`、不正な値は `vantage check` が
34
+ `INVALID_APP_LANG` で警告します。
35
+ - **KPI と書式の部品**を `@squadbase/vantage/components` に追加しました: `KpiCard`(比較・目標・推移・
36
+ 見込み)、`Delta`、`UpdatedAt`、`SampleData`、`Legend`、`ChartFrame` と、`formatValue` /
37
+ `formatDate` / `formatDateRange` / `computeComparison` などの書式・比較の関数。`TrendIndicator` は
38
+ 非推奨になりました(`Delta` を使ってください。当面は残ります)。
39
+ - **型付きチャート**: `LineChart` / `AreaChart` / `BarChart` / `DonutChart` / `ScatterChart` /
40
+ `WaterfallChart` / `Heatmap`(ECharts)と、`BarList` / `CategoryBar` / `ProgressCircle` / `Tracker`
41
+ (SVG)。`data`・`index`・`categories` を渡すだけで描け、`format`・目標・しきい値・予測・注記・
42
+ 強調を共通の props で指定できます。色は既定でテーマの `--chart-1..5` に追従します。`EChart` は
43
+ 逃げ道として残ります。
44
+ - **スライドとドキュメントの部品。** `@squadbase/vantage/slide` に `SlideCover`・`SlideKpiHero`・
45
+ `SlideKpiGrid`・`SlideChartInsight`・`SlideExecSummary`・`SlideScorecardTable` など、
46
+ `@squadbase/vantage/doc` に `DocReportHeader`・`DocKpiScorecard`・`DocKeyFindings`・`DocFigure`・
47
+ `DocDataTable`・`DocCallout` などを追加しました。
48
+ - **UI プリミティブ 10 種**を `@squadbase/vantage/ui` に追加しました: `Avatar`・`Pagination`・
49
+ `RadioGroup`・`AlertDialog`・`Drawer`・`Toast`(`<Toaster>` + `toast.add()`)・`Field`・
50
+ `Combobox`・`HoverCard`・`Kbd`。
51
+ - **既存部品の機能追加。** `DataTable` に CSV 書き出し・列ごとの書式としきい値・比較列・セル内の
52
+ スパークライン・サーバー側のページング(`rowCount` / `manualSorting` / `isLoading` など)、
53
+ `PageShell` に更新時刻や出典を置く `PageShellMeta`、`DateRangePicker` に今週・先週・過去 28 日間の
54
+ プリセット、`FilterBar` に「すべて」を足しました。
55
+ - **テーマのトークンを追加しました**: 意味色 `--positive` / `--negative` / `--warning` / `--info` /
56
+ `--neutral`(それぞれ `-subtle` / `-fill` 付き)と `--shadow-card`。
57
+ - **`vantage add ui` で取り出せる部品が増えました。** `/ui` と `/components` の全部品に加え、
58
+ `PairedChart`・`HistogramChart`・`BoxPlotChart`・`AttentionList` などはパッケージからは出さず、
59
+ `vantage add ui <name>` でコピーして使います。コピーの中の import は公開サブパスに書き換わり、
60
+ 文言はページの言語で切り替わります。
61
+ - **`--host [addr]` と `--allowed-hosts <list|true>`** を `vantage dev` / `vantage preview`(SPA)に
62
+ 追加しました。サンドボックスのプレビュープロキシやトンネルなど、別のホスト名で前に立つものから
63
+ 届くようになります。`--allowed-hosts` は環境変数 **`VANTAGE_ALLOWED_HOSTS`** でも渡せます
64
+ (フラグが優先)。どちらも指定しなければ挙動は従来どおりです(→ [CLI リファレンス](cli-reference))。
65
+ - **`vantage check` の警告を 2 つ追加しました**: トークンを使わず色を直書きしている箇所
66
+ (`HARDCODED_COLOR`。データの意味を持つ色は `// vantage-ignore-color` で除外できます)と、長すぎる
67
+ `DESIGN.md`(`DESIGN_MD_TOO_LONG`)。どちらも警告で、ビルドは止めません。
68
+ - **[コンポーネント](components)に一覧ギャラリー**と、**[ページの種類](page-types)**のガイドを
69
+ 足しました。
70
+
71
+ ### 変更
72
+
73
+ - **依存を更新しました**: Vite 8.3、`@vitejs/plugin-react` 6.1、Tailwind CSS 4.3.3、Hono 4.13 など。
74
+ `typescript`(5 以上)を任意の peer dependency として宣言しました。
75
+ - **`vantage dev` で API(`server/`)を変えてもページ全体を再読み込みしなくなりました。** データだけを
76
+ 取り直します。
77
+ - **ホームのプレースホルダーのページは、`index.slide.tsx` などの新しいページに `/` を譲ります。**
78
+ 雛形のまま手を入れていないプレースホルダーと新しいページが `/` で衝突しても `ROUTE_CONFLICT` に
79
+ なりません。
80
+ - **`vantage doctor` が `bun.lock` を認識します。**
81
+
82
+ ### 修正
83
+
84
+ - **`.xlsx` のページで日付が 1 日ずれて表示されなくなりました。** どのタイムゾーンでもファイルに
85
+ 書かれた日付・時刻のまま表示します。
86
+ - **ドキュメント(`.doc.tsx`)を画面で見るとき、本文の周りに余白を取るようになりました**(左右 1.5rem、
87
+ 上 3rem、下 5rem。下は「PDF として保存」ボタンに最後の行が隠れないため)。印刷の見た目は変わりません。
88
+ - **`EChart` の棒グラフで、ホバーすると棒が消える不具合を直しました。** データが変わらない再描画で
89
+ チャートがちらつかなくなり、データが変わったときは差分だけアニメーションします。
90
+ - **狭い幅で `PageShell` のタイトルが縦に潰れなくなりました。** 日本語の本文でカナが細く表示されない
91
+ よう、既定のフォントに日本語のシステムフォントを足しました。
92
+ - **書きかけの props(必須の配列が未指定など)でも部品が例外を出さなくなりました。**
93
+ - **エディタ内のプレビューでもスライドを全画面表示できるようになりました。**
94
+
11
95
  ## v0.6.2
12
96
 
13
97
  ドキュメントのページを PDF として保存できるようになりました(2026-09-30)。
@@ -351,6 +351,35 @@ vantage dev --strict-port # 5173 が取れなければ起動し
351
351
  > また fullstack の `preview` は Node サーバーを 1 ポートに bind するだけなので**常に厳格**で、
352
352
  > `--no-strict-port` は効きません。
353
353
 
354
+ ## `--host` / `--allowed-hosts` — リバースプロキシの後ろで動かす
355
+
356
+ `vantage dev` と `vantage preview`(SPA)は、既定では `localhost` にしか bind せず、`Host` ヘッダが
357
+ `localhost` か bind したアドレス以外のリクエストを **403 で拒否**します(Vite の DNS リバインディング
358
+ 対策)。サンドボックスのプレビュープロキシ・トンネル・コンテナのネットワークなど、**別のホスト名で
359
+ 前に立つもの**があるときは、この 2 つを組み合わせて通します。
360
+
361
+ ```bash
362
+ vantage dev --host # すべてのインターフェースで listen
363
+ vantage dev --host 0.0.0.0 # アドレスを明示(--host=:: の形も可)
364
+ vantage dev --allowed-hosts preview.example.com # プロキシが名乗るホスト名を許可(カンマ区切りで複数)
365
+ vantage dev --allowed-hosts true # Host の検査そのものを無効化
366
+ ```
367
+
368
+ | フラグ | 意味 |
369
+ |---|---|
370
+ | `--host [addr]` | 値なしなら**すべてのインターフェース**、値があればそのアドレスに bind する(Vite の `server.host`)|
371
+ | `--allowed-hosts <list\|true>` | 受け付ける `Host` ヘッダの一覧(カンマ区切り)。`true` で検査を無効化(Vite の `server.allowedHosts`)|
372
+
373
+ `--allowed-hosts` は環境変数 **`VANTAGE_ALLOWED_HOSTS`** でも渡せます(同じ書式)。サーバーを起動する
374
+ 側の仕組みがホスト名を知っている場合はそちらが便利です。フラグと環境変数の両方があれば**フラグが
375
+ 勝ちます**。どちらも無ければ Vite の既定のままで、これまでどおり `localhost` だけを受け付けます。
376
+
377
+ > [!NOTE]
378
+ > `--host` の値は次のトークンを取ります。`vantage --host dev` のように直後にコマンドやパスが来る
379
+ > 書き方は値と取り違えるので、その場合は `--host=<addr>` か、末尾に `--host` を置いてください。
380
+ > fullstack の `preview` は Node サーバーがすべてのインターフェースで listen し `Host` を検査しない
381
+ > ので、どちらのフラグも効きません(その旨が表示されます)。
382
+
354
383
  ## dev のブラウザ出力 — 転送とオーバーレイ
355
384
 
356
385
  `vantage dev` は、ブラウザ側で起きたことを**開発ターミナルへ転送します**。既定で転送するのは
@@ -3,13 +3,15 @@
3
3
  > Vantage に同梱される shadcn/ui (Base UI) キットと、ダッシュボード用の複合コンポーネントのリファレンス。
4
4
 
5
5
  Vantage は **shadcn/ui** をそのまま同梱しています。インストールもコピーも不要で、import するだけで
6
- 使えます。公開されている入り口は 3 つで、**サイドバーもこの 3 つで区切ってあります**。
6
+ 使えます。入り口は 5 つのサブパスで、**サイドバーもこの 5 つで区切ってあります**(`/slide` と `/doc` は、スライドとドキュメントのページの中身に使う block 用です)。
7
7
 
8
- | サブパス | 中身 | 件数 |
9
- | --- | --- | --- |
10
- | [`@squadbase/vantage/ui`](ui/button) | shadcn/ui のプリミティブ(Base UI 版)と、`cn()` などのユーティリティ | 37 |
11
- | [`@squadbase/vantage/components`](parts/page-shell) | それらを組み上げたダッシュボード部品 | 15 |
12
- | [`@squadbase/vantage/markdown`](markdown/markdown-renderer) | Markdown の描画だけ(重いので分離) | 1 |
8
+ | サブパス | 中身 |
9
+ | --- | --- |
10
+ | [`@squadbase/vantage/ui`](ui/button) | shadcn/ui のプリミティブ(Base UI 版)と、`cn()` などのユーティリティ |
11
+ | [`@squadbase/vantage/components`](parts/page-shell) | それらを組み上げたダッシュボード部品 |
12
+ | [`@squadbase/vantage/markdown`](markdown/markdown-renderer) | Markdown の描画だけ(重いので分離) |
13
+ | [`@squadbase/vantage/slide`](slide/slide-cover) | `.slide.tsx` の 1 枚の中身に置く block(表紙・要旨・KPI・グラフ・スコアカード・次の打ち手の 7 つ) |
14
+ | [`@squadbase/vantage/doc`](doc/doc-report-header) | `.doc.tsx` の `<Document>` の中に並べる節・部品の block(8 つ) |
13
15
 
14
16
  ```tsx
15
17
  import { Button, Card, Badge } from "@squadbase/vantage/ui";
@@ -17,9 +19,28 @@ import { PageShell, DashboardCardPreset, EChart } from "@squadbase/vantage/compo
17
19
  import { MarkdownRenderer } from "@squadbase/vantage/markdown";
18
20
  ```
19
21
 
22
+ ## 一覧
23
+
24
+ 用途で絞り込めます。カードを開くと、動くプレビュー・import 文・props が見られます。
25
+
26
+ ## どちらを使うか
27
+
28
+ 似た役割のものが並んでいる組み合わせです。迷ったら左の列の条件で選んでください。
29
+
30
+ | 迷いやすい組み合わせ | 選び方 |
31
+ | --- | --- |
32
+ | [`Badge`](ui/badge) / [`StatusBadge`](parts/status-badge) | 件数やタグなど**ただのラベル**は `Badge`。`active` / `failed` のような**レコードの状態**を色付きドットで示すなら `StatusBadge`(色は状態名から自動で決まる)。 |
33
+ | [`ToggleGroup`](ui/toggle-group) / [`SegmentedControl`](parts/segmented-control) | 表示期間やビューの切り替えのような**単一選択**は `SegmentedControl`(値は `string`)。複数を同時に押せる**トグルの束**が要るときだけ `ToggleGroup`(値は常に配列)。 |
34
+ | [`Select`](ui/select) / [`SearchableSelect`](parts/searchable-select) / [`MultiSelect`](parts/multi-select) / [`FilterBar`](parts/filter-bar) | 候補が**数個**なら `Select`。**多くて探したい**なら `SearchableSelect`、**複数選ぶ**なら `MultiSelect`。ページ上部に並ぶ**絞り込み一式**は、個別に置かず `FilterBar`(`FilterBarSelect` / `FilterBarMultiSelect`)でまとめて 1 つの値として扱う。 |
35
+ | [`KpiCard`](parts/kpi-card) / [`Delta`](parts/delta) / [`MetricValue`](parts/metric-value) | KPI のタイル 1 枚なら `KpiCard`(値・増減・前期実績・結論の 1 文まで出る)。表のセルや見出しの横に**増減だけ**を置くなら `Delta`。`MetricValue` は書式を自分で決めた数値を大きく見せたいときだけ。`TrendIndicator` は非推奨。 |
36
+ | [`Sparkline`](parts/sparkline) / [`EChart`](parts/echart) | 表のセルや KPI タイルの隅に置く、**軸も凡例もない小さな推移**は `Sparkline`。軸・ツールチップ・凡例のある**本格的なグラフ**は `EChart`。 |
37
+ | [`Skeleton`](ui/skeleton) / [`DashboardCardSkeleton`](parts/dashboard-card) / [`Placeholder`](parts/placeholder) | **読み込み中**の任意の形は `Skeleton`、ダッシュボードのタイル 1 枚分なら `DashboardCardSkeleton`。`Placeholder` は読み込み中ではなく、**中身が仮データであること**を示す目印。 |
38
+ | [`Loading`](ui/loading) / [`Empty`](ui/empty) / [`ErrorState`](ui/error-state) | データ取得の 3 状態に 1 つずつ対応する。**取得中**は `Loading`、**0 件**は `Empty`、**失敗**は `ErrorState`(`action` に再試行ボタンを置ける)。 |
39
+
20
40
  > [!NOTE]
21
41
  > UI キットは**パッケージから import して使う**のが基本です(コピーしません)。中身を書き換えたい
22
- > ときだけ [`vantage add`](cli-reference) で編集可能なソースを取り出します。
42
+ > ときだけ [`vantage add ui`](cli-reference) で編集可能なソースを取り出します。各コンポーネントの
43
+ > ページ冒頭に、import 文と取り出しコマンドをコピーできる行があります。
23
44
 
24
45
  ## Base UI ベースであること
25
46
 
@@ -53,87 +74,18 @@ Vantage の `theme.css` は両方の綴りを受ける custom variant を定義
53
74
 
54
75
  shadcn/ui のプリミティブです。名前も props も shadcn/ui のものと同じなので、
55
76
  [shadcn/ui のドキュメント](https://ui.shadcn.com/docs/components) もそのまま参考になります。
56
- サイドバーはアルファベット順ですが、ここでは用途で並べています。
57
-
58
- ### フォームと入力
59
-
60
- [`Button`](ui/button) ·
61
- [`Input`](ui/input) ·
62
- [`InputGroup`](ui/input-group) ·
63
- [`Textarea`](ui/textarea) ·
64
- [`Label`](ui/label) ·
65
- [`Select`](ui/select) ·
66
- [`Checkbox`](ui/checkbox) ·
67
- [`Switch`](ui/switch) ·
68
- [`Slider`](ui/slider) ·
69
- [`Toggle`](ui/toggle) ·
70
- [`ToggleGroup`](ui/toggle-group) ·
71
- [`Calendar`](ui/calendar) ·
72
- [`Command`](ui/command)
73
-
74
- ### レイアウトとナビゲーション
75
-
76
- [`Card`](ui/card) ·
77
- [`Tabs`](ui/tabs) ·
78
- [`Separator`](ui/separator) ·
79
- [`ScrollArea`](ui/scroll-area) ·
80
- [`Sidebar`](ui/sidebar) ·
81
- [`Breadcrumb`](ui/breadcrumb) ·
82
- [`Accordion`](ui/accordion) ·
83
- [`Collapsible`](ui/collapsible)
84
-
85
- ### データ表示
86
-
87
- [`Table`](ui/table) ·
88
- [`Badge`](ui/badge) ·
89
- [`Progress`](ui/progress)
90
-
91
- ### オーバーレイ
92
-
93
- [`Dialog`](ui/dialog) ·
94
- [`Sheet`](ui/sheet) ·
95
- [`Popover`](ui/popover) ·
96
- [`Tooltip`](ui/tooltip) ·
97
- [`DropdownMenu`](ui/dropdown-menu)
98
-
99
- ### 状態表示
100
-
101
- [`Alert`](ui/alert) ·
102
- [`Skeleton`](ui/skeleton) ·
103
- [`Spinner`](ui/spinner) ·
104
- [`Loading`](ui/loading) ·
105
- [`Empty`](ui/empty) ·
106
- [`ErrorState`](ui/error-state)
107
-
108
77
  `Loading` / `Empty` / `ErrorState` の 3 つだけは shadcn/ui にはなく、Vantage が足したものです。
109
78
 
110
- ### ユーティリティ
111
-
112
- [`cn()`](ui/cn) · [`useIsMobile()`](ui/use-is-mobile)
113
-
114
79
  ## `@squadbase/vantage/components`
115
80
 
116
- `ui/` を組み上げた、ダッシュボード向けの複合部品です。
81
+ `ui/` を組み上げた、ダッシュボード向けの複合部品です。ページ枠(`PageShell` / `AppShell`)、
82
+ タイル(`DashboardCard`)、表(`DataTable`)、グラフ(`EChart` / `Sparkline` / `FunnelSteps`)、
83
+ フィルタ(`FilterBar` / `DateRangePicker` など)、KPI 表示が入っています。部品の正本は SquadKit で、
84
+ Vantage はそれを再エクスポートしています。
117
85
 
118
- | コンポーネント | 概要 |
119
- | --- | --- |
120
- | [`PageShell`](parts/page-shell) | ヘッダー帯・サマリー・本文からなるページ枠 |
121
- | [`AppShell`](parts/app-shell) | ナビゲーション定義を渡すだけのアプリ枠 |
122
- | [`SectionHeader`](parts/section-header) | セクション見出しとアクション |
123
- | [`DashboardCard`](parts/dashboard-card) | ダッシュボードのタイル(プリセットとスケルトン付き) |
124
- | [`DataTable`](parts/data-table) | 並べ替え・検索・ページング・選択を備えた表 |
125
- | [`EChart`](parts/echart) | Apache ECharts のラッパー |
126
- | [`FunnelSteps`](parts/funnel-steps) | ファネルの棒表示 |
127
- | [`Sparkline`](parts/sparkline) | セルやタイルに置くインラインの推移グラフ |
128
- | [`FilterBar`](parts/filter-bar) | フィルタ一式を 1 つの値で扱う行 |
129
- | [`DateRangePicker`](parts/date-range-picker) | プリセット付きの期間選択 |
130
- | [`SegmentedControl`](parts/segmented-control) | 単一選択のセグメント |
131
- | [`SearchableSelect`](parts/searchable-select) | 検索できる単一選択 |
132
- | [`MultiSelect`](parts/multi-select) | 検索できる複数選択 |
133
- | [`MetricValue`](parts/metric-value) | KPI の数値と単位 |
134
- | [`TrendIndicator`](parts/trend-indicator) | 増減の矢印と変化率 |
135
- | [`StatusBadge`](parts/status-badge) | ドット付きステータスバッジ |
136
- | [`Placeholder`](parts/placeholder) | 仮データであることを示すインラインの目印 |
86
+ KPI は [`KpiCard`](parts/kpi-card)、増減は [`Delta`](parts/delta)(`comparison` と
87
+ `polarity` を渡す)で示します。[`TrendIndicator`](parts/trend-indicator) は非推奨です。数値の
88
+ 書式と増減の計算は [format / comparison](parts/format) にまとまっています。
137
89
 
138
90
  ## `@squadbase/vantage/markdown`
139
91
 
@@ -141,6 +93,15 @@ shadcn/ui のプリミティブです。名前も props も shadcn/ui のもの
141
93
  Markdown 描画は Shiki の全言語文法を抱えており、`components` のバレルに混ぜるとビルド出力が
142
94
  10 MB 以上増えるため、意図的に分けてあります。
143
95
 
96
+ ## `@squadbase/vantage/slide` と `@squadbase/vantage/doc`
97
+
98
+ [スライド](page-types/slide)と[ドキュメント](page-types/doc)のページに置く block です。`/components` とは別のサブパスで、`vantage add` のコピー対象にもなりません(import して使います)。
99
+
100
+ - **slide**: 1 枚の `<Slide>` の中身(`<Slide>` 自体は持ちません)。[`SlideCover`](slide/slide-cover) / [`SlideExecSummary`](slide/slide-exec-summary) / [`SlideKpiHero`](slide/slide-kpi-hero) / [`SlideKpiGrid`](slide/slide-kpi-grid) / [`SlideChartInsight`](slide/slide-chart-insight) / [`SlideScorecardTable`](slide/slide-scorecard-table) / [`SlideNextActions`](slide/slide-next-actions) / [`SlideSection`](slide/slide-section) / [`SlideComparison`](slide/slide-comparison) / [`SlideChartFull`](slide/slide-chart-full)
101
+ - **slide parts**: 1 枚の中で使う部品(1 枚まるごとではありません)。[`SlideHeading`](slide/slide-heading) / [`SlideSourceLine`](slide/slide-source-line) / [`SlideColumns`, `SlideColumn`](slide/slide-columns)
102
+ - **doc**: `<Document>` の中に並べる節や部品(`DocFigure` / `DocDataTable` / `DocCallout` は節の中に置く部品)。[`DocReportHeader`](doc/doc-report-header) / [`DocExecutiveSummary`](doc/doc-executive-summary) / [`DocKpiScorecard`](doc/doc-kpi-scorecard) / [`DocFigure`](doc/doc-figure) / [`DocDataTable`](doc/doc-data-table) / [`DocCallout`](doc/doc-callout) / [`DocKeyFindings`](doc/doc-key-findings) / [`DocActionItems`](doc/doc-action-items) / [`DocNotesAndSources`](doc/doc-notes-and-sources)
103
+ - **doc parts**: 文中に置く部品(slide でも使えます)。[`DeltaText`](doc/delta-text)
104
+
144
105
  ## 組み合わせる
145
106
 
146
107
  ```tsx
@@ -154,9 +115,8 @@ import {
154
115
  PageShellHeaderEnd,
155
116
  PageShellActions,
156
117
  PageShellContent,
118
+ KpiCard,
157
119
  DashboardCardPreset,
158
- MetricValue,
159
- TrendIndicator,
160
120
  EChart,
161
121
  type EChartsOption,
162
122
  } from "@squadbase/vantage/components";
@@ -184,17 +144,25 @@ export default function Overview() {
184
144
 
185
145
  <PageShellContent>
186
146
  <div className="grid gap-4 md:grid-cols-3">
187
- <DashboardCardPreset title="売上">
188
- <MetricValue className="my-0">¥1,240,000</MetricValue>
189
- <TrendIndicator value={12.4} direction="up" />
190
- </DashboardCardPreset>
191
- <DashboardCardPreset title="新規顧客">
192
- <MetricValue className="my-0">128</MetricValue>
193
- <TrendIndicator value={3.1} direction="down" />
194
- </DashboardCardPreset>
195
- <DashboardCardPreset title="解約率">
196
- <MetricValue className="my-0">2.1%</MetricValue>
197
- </DashboardCardPreset>
147
+ <KpiCard
148
+ label="売上"
149
+ value={1_240_000}
150
+ format="currency"
151
+ comparison={{ previous: 1_103_000, vs: "prior-period" }}
152
+ />
153
+ <KpiCard
154
+ label="新規顧客"
155
+ value={128}
156
+ format="number"
157
+ comparison={{ previous: 132, vs: "prior-period" }}
158
+ />
159
+ <KpiCard
160
+ label="解約率"
161
+ value={0.021}
162
+ format={{ type: "percent", digits: 1 }}
163
+ comparison={{ previous: 0.026, vs: "prior-period" }}
164
+ polarity="lower-is-better"
165
+ />
198
166
  </div>
199
167
 
200
168
  <DashboardCardPreset title="月次売上" className="mt-4">
@@ -214,16 +182,15 @@ export default function Overview() {
214
182
 
215
183
  ## ソースを編集したいとき
216
184
 
217
- コンポーネントの中身そのものを変えたい場合は、編集可能なコピーを取り出します。
185
+ コンポーネントの中身そのものを変えたい場合は、編集可能なコピーを取り出します。名前は各ページ冒頭の
186
+ 「ソースを取り出す」の行に出ているものです。
218
187
 
219
188
  ```bash
220
- vantage add ui data-table # 編集可能な DataTable を components/ へ
189
+ vantage add ui data-table # 編集可能な DataTable を components/ui/ へ
221
190
  vantage add block sales-overview
222
191
  ```
223
192
 
224
- > [!NOTE]
225
- > 現行プロトタイプで `vantage add` がコピーできるのは `data-table`(ui)と `sales-overview`(block)
226
- > のみです。その他のコンポーネントは import 専用です。
193
+ `cn()` と `useIsMobile()`、`@squadbase/vantage/markdown` は取り出しの対象外で、import 専用です。
227
194
 
228
195
  ## このページの読み方
229
196
 
@@ -0,0 +1,40 @@
1
+ # DeltaText
2
+
3
+ > [部品] 文中に置く増減。▲ ▼ と符号つきの値。ドキュメントでもスライドでも。
4
+
5
+ 増減を文中に置くインラインの `span` です。印や符号(「▲ +3.2%」)で向きが分かるので、印刷や色覚の違いでも読めます。色は良い・悪いを足すだけです。文字サイズは指定せず、置いた行に従います。ドキュメントとスライドのどちらでも使える**部品**で、1 節や 1 枚の block ではありません。
6
+
7
+ ```tsx
8
+ import { DeltaText } from "@squadbase/vantage/doc";
9
+ import type { DeltaTextProps } from "@squadbase/vantage/doc";
10
+ // スライドでも同じものを使える
11
+ // import { DeltaText } from "@squadbase/vantage/slide";
12
+ ```
13
+
14
+ > [!NOTE]
15
+ > これは **文中に置く部品**です。自分では寸法も文字サイズも持たず、置いた行の大きさに従います。ダッシュボード用の `Delta` とは別物です。
16
+
17
+ ## props
18
+
19
+ | Prop | Type | Default | 説明 |
20
+ | --- | --- | --- | --- |
21
+ | `value` | `number \| null` | | 増減そのもの。向きは符号で決まる。`null` は「—」。**必須**。 |
22
+ | `format` | `ValueFormat` | | 値の整形(`"percent"` / `"currency"` など)。符号つきで出る。 |
23
+ | `betterWhen` | `"up" \| "down"` | `"up"` | どちらの向きが良いか。色が決まる。解約率・コストは `"down"`。 |
24
+ | `comparisonLabel` | `string` | | 比較相手の名前(「前月比」)。増減の前に薄く出る。 |
25
+
26
+ ## 使い方
27
+
28
+ ```tsx
29
+ import { DeltaText } from "@squadbase/vantage/doc";
30
+
31
+ <p>
32
+ 9 月の売上は 5.4 億円でした(<DeltaText value={0.074} format="percent" comparisonLabel="前月比" />)。
33
+ 解約率は 1.8% です(<DeltaText value={-0.006} format="percent" betterWhen="down" comparisonLabel="前月比" />)。
34
+ </p>
35
+ ```
36
+
37
+ ## 注意
38
+
39
+ - 0 は「→」で薄い色になります。
40
+ - 読み上げ用の語(「増」「減」「横ばい」「改善」「悪化」)は固定の日本語です。
@@ -0,0 +1,49 @@
1
+ # DocActionItems
2
+
3
+ > 次にやること。内容・担当・期限・期待する効果・優先度。
4
+
5
+ 推奨する対応を並べるセクションです。内容・担当・期限・期待する効果・優先度を出します。既定の `table` は表、`asks` は読み手へのお願い(紹介・判断・採用など)を短い箇条書きにします。優先度は高・中・低の語だけで、バッジや色は付きません。
6
+
7
+ ```tsx
8
+ import { DocActionItems } from "@squadbase/vantage/doc";
9
+ import type { DocActionItemsProps, DocActionItem, DocActionPriority } from "@squadbase/vantage/doc";
10
+ ```
11
+
12
+ > [!NOTE]
13
+ > これは **`<Document>` 直下に並べる 1 セクション分**です。見出し・本文の大きさや幅は `<Document>` が決めるので、ここでは寸法を指定しません。 `action` は `ReactNode` で、Markdown 文字列は解釈されません。 ページ全体の組み方は [ドキュメント](page-types/doc) を参照してください。
14
+
15
+ ## props
16
+
17
+ | Prop | Type | Default | 説明 |
18
+ | --- | --- | --- | --- |
19
+ | `title` | `string` | `"推奨する対応"` | 見出しの文言。 |
20
+ | `headingLevel` | `2 \| 3` | `2` | 見出しのレベル。`<Document>` 直下は 2、別セクションの中は 3。 |
21
+ | `items` | `DocActionItem[]` | | 対応。重要なものから。**必須**。 |
22
+ | `items[].action` | `ReactNode` | | やること。**必須**。 |
23
+ | `items[].owner` | `string` | | 担当。 |
24
+ | `items[].due` | `string` | | 期限。書いたまま出る(「2026-11-15」「11 月末」)。 |
25
+ | `items[].impact` | `string` | | 期待する効果(「解約率 −0.5pt」)。`table` だけに出る。 |
26
+ | `items[].priority` | `"high" \| "medium" \| "low"` | | 優先度。高・中・低の語で出る(高は太字)。`table` だけに出る。 |
27
+ | `variant` | `"table" \| "asks"` | `"table"` | 表か、読み手へのお願いの箇条書きか。 |
28
+
29
+ ## 使い方
30
+
31
+ ```tsx
32
+ import { Document, DocActionItems } from "@squadbase/vantage/doc";
33
+
34
+ <Document>
35
+ <DocActionItems
36
+ items={[
37
+ { action: "法人プランの導入支援を増員する", owner: "CS 部", due: "2026-11-15", impact: "解約率 −0.5pt", priority: "high" },
38
+ { action: "紹介プログラムの特典を見直す", owner: "マーケティング部", due: "11 月末", impact: "紹介経由の新規 +10 社", priority: "medium" },
39
+ { action: "料金ページの文言を改善する", owner: "プロダクト部", priority: "low" },
40
+ ]}
41
+ />
42
+ </Document>
43
+ ```
44
+
45
+ ## 注意
46
+
47
+ - `due` は書いたまま表示されます(「2026-11-15」「11 月末」)。値の無い担当・期限・効果は「—」になります。
48
+ - `variant="asks"` は担当と「`due` まで」だけを添えます(例: 「(CS 部・11 月末 まで)」)。効果と優先度は出しません。
49
+ - 印刷時、`asks` は項目 1 つごとにページをまたぎません。
@@ -0,0 +1,38 @@
1
+ # DocCallout
2
+
3
+ > 本文の中の囲み。補足・示唆・注意・決定事項。
4
+
5
+ 読み手に見落とされたくない 1 点を囲んで示す block です。`role="note"` の `div` に、種類ごとの意味色の左罫線が付きます(決定事項は中立色)。種類は「注意」「示唆」のような語でも表示されるので、色だけに頼りません。飾りには使いません。
6
+
7
+ ```tsx
8
+ import { DocCallout } from "@squadbase/vantage/doc";
9
+ import type { DocCalloutProps, DocCalloutKind } from "@squadbase/vantage/doc";
10
+ ```
11
+
12
+ > [!NOTE]
13
+ > これは **本文やセクションの中に置く部品**です(`<Document>` 直下の 1 セクションではありません)。見出し・本文の大きさや幅は `<Document>` が決めるので、ここでは寸法を指定しません。 `children` は `string` か `ReactNode` で、Markdown 文字列は解釈されません。 ページ全体の組み方は [ドキュメント](page-types/doc) を参照してください。
14
+
15
+ ## props
16
+
17
+ | Prop | Type | Default | 説明 |
18
+ | --- | --- | --- | --- |
19
+ | `kind` | `"note" \| "insight" \| "warning" \| "decision"` | `"note"` | 種類。補足 / 示唆 / 注意 / 決定事項。 |
20
+ | `title` | `string` | | 囲みの見出し(1 行)。渡すと「<種類の語>: <title>」と出る。省くと種類の語だけが出る。種類の語と同じ文字列を渡したときも 1 回だけ出る。 |
21
+ | `children` | `ReactNode` | | 本文。`string` なら段落になる。Markdown 文字列は解釈されない。**必須**。 |
22
+
23
+ ## 使い方
24
+
25
+ ```tsx
26
+ import { Document, DocCallout } from "@squadbase/vantage/doc";
27
+
28
+ <Document>
29
+ <DocCallout kind="warning" title="9 月の数値は速報値">
30
+ 10 月 10 日の確定で変わることがあります。
31
+ </DocCallout>
32
+ </Document>
33
+ ```
34
+
35
+ ## 注意
36
+
37
+ - 種類の語(「補足」「示唆」「注意」「決定事項」)は block が付けます。`title` にも同じ語を書くと重複するので、見出しの内容だけを書きます。
38
+ - 印刷時は 1 ページに収まるよう、ページをまたぎません。
@@ -0,0 +1,60 @@
1
+ # DocDataTable
2
+
3
+ > 印刷物の表に要る注記つきの表。タイトル・単位・合計行・脚注・出典。
4
+
5
+ 印刷物の表に必要な要素を揃えた表です。タイトル、単位、右揃えの数値、合計行、強調行、脚注、出典を出します。素の `table` なので、スタイルと印刷時の行の分割回避は `<Document>` が担います(並べ替えやスクロールが要る画面向けの表は `DataTable`)。
6
+
7
+ ```tsx
8
+ import { DocDataTable } from "@squadbase/vantage/doc";
9
+ import type { DocDataTableProps, DocTableColumn, DocTableRow, DocTableCell } from "@squadbase/vantage/doc";
10
+ ```
11
+
12
+ > [!NOTE]
13
+ > これは **本文やセクションの中に置く部品**です(`<Document>` 直下の 1 セクションではありません)。見出し・本文の大きさや幅は `<Document>` が決めるので、ここでは寸法を指定しません。 セルは文字列か数値で、`ReactNode` は渡せません。 ページ全体の組み方は [ドキュメント](page-types/doc) を参照してください。
14
+
15
+ ## props
16
+
17
+ | Prop | Type | 説明 |
18
+ | --- | --- | --- |
19
+ | `title` | `string` | 表のタイトル(表の上のキャプション)。 |
20
+ | `unit` | `string` | 単位・スケール(「単位: 百万円」)。タイトルがあれば「(単位: 百万円)」と続く。 |
21
+ | `columns` | `DocTableColumn[]` | 列(`{ key; label; format?: ValueFormat; align?: "left" \| "right" \| "center" }`)。`format` を省くと桁区切りの数値。`align` を省くと数値の列は右揃え、それ以外は左揃え。**必須**。 |
22
+ | `rows` | `DocTableRow[]` | 行。`columns` の `key` を持つオブジェクト。セルは文字列か数値(`null` / `undefined` / 空文字は「—」)。**必須**。 |
23
+ | `total` | `DocTableRow` | 合計行(`tfoot`)。`rows` と同じキーで書く。 |
24
+ | `highlightRows` | `number[]` | 太字にする行の index(0 始まり、`rows` の添字)。 |
25
+ | `footnotes` | `{ mark: string; text: string }[]` | 脚注。セルの文字列に同じ `mark`(「※1」)を書くと対応する。 |
26
+ | `source` | `string` | 出典。キャプションに「出典: …」と出る。 |
27
+ | `asOf` | `string` | データを取った日。日付だけを書く(「2026-10-03」)。block が「データ時点」の語を付ける。 |
28
+
29
+ ## 使い方
30
+
31
+ ```tsx
32
+ import { Document, DocDataTable } from "@squadbase/vantage/doc";
33
+
34
+ <Document>
35
+ <DocDataTable
36
+ title="部門別の売上"
37
+ unit="単位: 百万円"
38
+ columns={[
39
+ { key: "dept", label: "部門" },
40
+ { key: "sales", label: "売上", format: "number" },
41
+ { key: "share", label: "構成比", format: { type: "percent", digits: 1 } },
42
+ ]}
43
+ rows={[
44
+ { dept: "法人営業", sales: 312, share: 0.58 },
45
+ { dept: "パートナー", sales: 148, share: 0.27 },
46
+ { dept: "オンライン ※1", sales: 80, share: 0.15 },
47
+ ]}
48
+ total={{ dept: "合計", sales: 540, share: 1 }}
49
+ highlightRows={[0]}
50
+ footnotes={[{ mark: "※1", text: "9 月から集計対象に追加" }]}
51
+ source="会計システム"
52
+ asOf="2026-10-03"
53
+ />
54
+ </Document>
55
+ ```
56
+
57
+ ## 注意
58
+
59
+ - 数値は `tabular-nums` で桁が揃い、値が無いセルは「—」になります。
60
+ - 印刷時は行ごとにページをまたぎません。長い表は行の間で改ページされ、キャプション(脚注・出典)は 1 ページにまとまります。
@@ -0,0 +1,64 @@
1
+ # DocExecutiveSummary
2
+
3
+ > 結論を先に書く要旨。結論 1 文、要点 3〜5 個、任意で主要な数字。
4
+
5
+ 結論を先に書く(BLUF)要旨のセクションです。結論の 1 文、番号付きの要点 3〜5 個、任意で最大 3 つの主要な数字を出します。数字の増減は渡した `delta` の符号から向きを決め、▲▼ と符号を必ず出すので、色が見えなくても向きが分かります。
6
+
7
+ ```tsx
8
+ import { DocExecutiveSummary } from "@squadbase/vantage/doc";
9
+ import type { DocExecutiveSummaryProps, DocSummaryMetric } from "@squadbase/vantage/doc";
10
+ ```
11
+
12
+ > [!NOTE]
13
+ > これは **`<Document>` 直下に並べる 1 セクション分**です。見出し・本文の大きさや幅は `<Document>` が決めるので、ここでは寸法を指定しません。 `conclusion` と `points` は `string` か `ReactNode` で、Markdown 文字列は解釈されません。 ページ全体の組み方は [ドキュメント](page-types/doc) を参照してください。
14
+
15
+ ## props
16
+
17
+ | Prop | Type | Default | 説明 |
18
+ | --- | --- | --- | --- |
19
+ | `title` | `string` | `"要旨"` | 見出しの文言。 |
20
+ | `headingLevel` | `2 \| 3` | `2` | 見出しのレベル。`<Document>` 直下は 2、別セクションの中は 3。 |
21
+ | `conclusion` | `ReactNode` | | 結論を 1 文で。太字で出る。**必須**。 |
22
+ | `points` | `ReactNode[]` | | 裏付ける要点。3〜5 個、重要な順。番号付きで出る。**必須**。 |
23
+ | `metrics` | `DocSummaryMetric[]` | | 主要な数字(最大 3、超えた分は無視)。 |
24
+ | `metrics[].label` | `string` | | 指標の名前。 |
25
+ | `metrics[].value` | `number \| null` | | 値。`null` は「—」。 |
26
+ | `metrics[].format` | `ValueFormat` | | `value` の書式(`"currency"`、`{ type: "percent", digits: 1 }` など)。 |
27
+ | `metrics[].display` | `string` | | 渡すと値の代わりにこの文字列を出す(「約 5,400 万円」)。 |
28
+ | `metrics[].delta` | `{ value: number; format?: ValueFormat }` | | 比較先からの増減そのもの(現在値 − 比較値)。向きは符号で決まり、▲▼ と符号を必ず出す。省くと比較を出さない。`format` を省くと指標の `format` を使う。 |
29
+ | `metrics[].comparisonLabel` | `string` | `"前期比"` | 比較の名前(「前月比」)。 |
30
+ | `metrics[].betterWhen` | `"up" \| "down"` | `"up"` | どちらに動くと良いか。解約率やコストは `"down"`。色は良し悪しだけを足す。 |
31
+
32
+ ## 使い方
33
+
34
+ ```tsx
35
+ import { Document, DocExecutiveSummary } from "@squadbase/vantage/doc";
36
+
37
+ <Document>
38
+ <DocExecutiveSummary
39
+ conclusion="9 月の売上は計画を上回ったが、新規獲得は目標に届いていない。"
40
+ points={[
41
+ "売上は 5,390 万円で、計画比 +3.7%。",
42
+ "解約率は 1.8% まで下がり、3 か月連続で改善。",
43
+ "新規獲得は 38 社で、目標の 50 社に未達。",
44
+ ]}
45
+ metrics={[
46
+ { label: "売上", value: 53_900_000, format: "currency", delta: { value: 3_700_000 }, comparisonLabel: "前月比" },
47
+ {
48
+ label: "解約率",
49
+ value: 0.018,
50
+ format: { type: "percent", digits: 1 },
51
+ delta: { value: -0.003, format: { type: "number", digits: 1, unit: "pt", divisor: 0.01 } },
52
+ comparisonLabel: "前月比",
53
+ betterWhen: "down",
54
+ },
55
+ ]}
56
+ />
57
+ </Document>
58
+ ```
59
+
60
+ ## 注意
61
+
62
+ - 下がることが良い指標は `betterWhen: "down"` にします(色の良し悪しが反転します。▲▼ と符号は実際の向きのままです)。
63
+ - `delta` は比較値ではなく増減そのものです。比率の指標(解約率など)は、例のように `format` で `pt` 表記にすると相対変化と読み違えません。
64
+ - 印刷時は、要点 1 つごと・主要な数字のタイル 1 つごとがページをまたぎません。セクション全体は途中で改ページされることがあります。