@squadbase/vantage 0.6.2-dev2.5e7a250 → 0.6.2-dev2.b5837f0

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 (336) hide show
  1. package/dist/add-4GHF2TX2.js +6 -0
  2. package/dist/add-4GHF2TX2.js.map +1 -0
  3. package/dist/{build-TVKFIVFQ.js → build-A23M4GCH.js} +9 -9
  4. package/dist/{build-TVKFIVFQ.js.map → build-A23M4GCH.js.map} +1 -1
  5. package/dist/{check-3KHZXZMQ.js → check-FBHT6W6J.js} +7 -7
  6. package/dist/{check-3KHZXZMQ.js.map → check-FBHT6W6J.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-5ZOP4SQR.js → chunk-2N72FKLB.js} +12 -7
  10. package/dist/chunk-2N72FKLB.js.map +1 -0
  11. package/dist/chunk-57GHR5LN.js +163 -0
  12. package/dist/chunk-57GHR5LN.js.map +1 -0
  13. package/dist/{chunk-P7W4LR3Z.js → chunk-5C2SEDPH.js} +22 -5
  14. package/dist/chunk-5C2SEDPH.js.map +1 -0
  15. package/dist/chunk-6OTTGAPO.js +44 -0
  16. package/dist/chunk-6OTTGAPO.js.map +1 -0
  17. package/dist/{chunk-RPZAALCX.js → chunk-7S52M2SL.js} +256 -165
  18. package/dist/chunk-7S52M2SL.js.map +1 -0
  19. package/dist/{chunk-U2M6HGKQ.js → chunk-AABMKHEU.js} +4 -4
  20. package/dist/{chunk-U2M6HGKQ.js.map → chunk-AABMKHEU.js.map} +1 -1
  21. package/dist/{chunk-PVTHHV7X.js → chunk-ANZLVSEP.js} +28 -7
  22. package/dist/chunk-ANZLVSEP.js.map +1 -0
  23. package/dist/chunk-CKWPK4RO.js +50 -0
  24. package/dist/chunk-CKWPK4RO.js.map +1 -0
  25. package/dist/{chunk-QI3XQKHS.js → chunk-GNXCX4WE.js} +10 -3
  26. package/dist/chunk-GNXCX4WE.js.map +1 -0
  27. package/dist/chunk-JXFCSF3K.js +673 -0
  28. package/dist/chunk-JXFCSF3K.js.map +1 -0
  29. package/dist/{chunk-PXRX5PEC.js → chunk-PDOBHMUQ.js} +3 -3
  30. package/dist/chunk-PDOBHMUQ.js.map +1 -0
  31. package/dist/chunk-QOXXOFGL.js +7051 -0
  32. package/dist/chunk-QOXXOFGL.js.map +1 -0
  33. package/dist/{chunk-ZVANIULZ.js → chunk-RNTDBX6S.js} +4 -4
  34. package/dist/{chunk-ZVANIULZ.js.map → chunk-RNTDBX6S.js.map} +1 -1
  35. package/dist/{chunk-CEXAQQ5W.js → chunk-S5MDTHH7.js} +180 -18
  36. package/dist/chunk-S5MDTHH7.js.map +1 -0
  37. package/dist/chunk-SDJTTMLK.js +1877 -0
  38. package/dist/chunk-SDJTTMLK.js.map +1 -0
  39. package/dist/{chunk-LMUACBMA.js → chunk-SHZM3EXB.js} +68 -12
  40. package/dist/chunk-SHZM3EXB.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-JKLLFVEU.js → chunk-UWSQUHX6.js} +4 -99
  44. package/dist/chunk-UWSQUHX6.js.map +1 -0
  45. package/dist/cli.js +12 -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 +1740 -29
  51. package/dist/components/index.js +7 -4
  52. package/dist/delta-text-CvwBGJ95.d.ts +15 -0
  53. package/dist/{dev-GDKATCC7.js → dev-H4I2JL63.js} +10 -10
  54. package/dist/dev-H4I2JL63.js.map +1 -0
  55. package/dist/doc/index.d.ts +215 -2
  56. package/dist/doc/index.js +309 -5
  57. package/dist/doc/index.js.map +1 -1
  58. package/dist/{docs-EJJ3BECT.js → docs-JVP4RPKT.js} +3 -3
  59. package/dist/{docs-EJJ3BECT.js.map → docs-JVP4RPKT.js.map} +1 -1
  60. package/dist/{doctor-WQXPXP6K.js → doctor-B2O3GJDU.js} +7 -7
  61. package/dist/{doctor-WQXPXP6K.js.map → doctor-B2O3GJDU.js.map} +1 -1
  62. package/dist/format-U0cQl069.d.ts +243 -0
  63. package/dist/markdown/index.js +1 -1
  64. package/dist/markdown/index.js.map +1 -1
  65. package/dist/{preview-OGMCNQUO.js → preview-T6CLSQVX.js} +3 -3
  66. package/dist/{preview-OGMCNQUO.js.map → preview-T6CLSQVX.js.map} +1 -1
  67. package/dist/query/index.d.ts +0 -11
  68. package/dist/query/index.js +2 -2
  69. package/dist/{routes-MWBWWOJ2.js → routes-PVKNT777.js} +6 -6
  70. package/dist/{routes-MWBWWOJ2.js.map → routes-PVKNT777.js.map} +1 -1
  71. package/dist/{search-6Y422SV6.js → search-5LC4XPB5.js} +3 -3
  72. package/dist/{search-6Y422SV6.js.map → search-5LC4XPB5.js.map} +1 -1
  73. package/dist/slide/index.d.ts +272 -1
  74. package/dist/slide/index.js +974 -4
  75. package/dist/slide/index.js.map +1 -1
  76. package/dist/table/index.js +14 -10
  77. package/dist/table/index.js.map +1 -1
  78. package/dist/ui/index.d.ts +148 -12
  79. package/dist/ui/index.js +1340 -88
  80. package/dist/ui/index.js.map +1 -1
  81. package/dist/{upgrade-HCANX4GQ.js → upgrade-6DT7ADRP.js} +7 -7
  82. package/dist/{upgrade-HCANX4GQ.js.map → upgrade-6DT7ADRP.js.map} +1 -1
  83. package/dist/vite/index.d.ts +10 -0
  84. package/dist/vite/index.js +4 -4
  85. package/docs/en/changelog.md +2 -0
  86. package/docs/en/components.md +42 -17
  87. package/docs/en/doc/delta-text.md +40 -0
  88. package/docs/en/doc/doc-action-items.md +49 -0
  89. package/docs/en/doc/doc-callout.md +38 -0
  90. package/docs/en/doc/doc-data-table.md +60 -0
  91. package/docs/en/doc/doc-executive-summary.md +64 -0
  92. package/docs/en/doc/doc-figure.md +56 -0
  93. package/docs/en/doc/doc-key-findings.md +61 -0
  94. package/docs/en/doc/doc-kpi-scorecard.md +80 -0
  95. package/docs/en/doc/doc-notes-and-sources.md +43 -0
  96. package/docs/en/doc/doc-report-header.md +46 -0
  97. package/docs/en/pages-and-metadata.md +15 -0
  98. package/docs/en/parts/area-chart.md +99 -0
  99. package/docs/en/parts/bar-chart.md +91 -0
  100. package/docs/en/parts/bar-list.md +50 -0
  101. package/docs/en/parts/category-bar.md +37 -0
  102. package/docs/en/parts/chart-frame.md +39 -0
  103. package/docs/en/parts/data-table.md +22 -0
  104. package/docs/en/parts/delta.md +51 -0
  105. package/docs/en/parts/donut-chart.md +72 -0
  106. package/docs/en/parts/format.md +43 -0
  107. package/docs/en/parts/funnel-steps.md +2 -1
  108. package/docs/en/parts/heatmap.md +53 -0
  109. package/docs/en/parts/kpi-card.md +58 -0
  110. package/docs/en/parts/legend.md +35 -0
  111. package/docs/en/parts/line-chart.md +94 -0
  112. package/docs/en/parts/metric-value.md +3 -2
  113. package/docs/en/parts/progress-circle.md +33 -0
  114. package/docs/en/parts/sample-data.md +39 -0
  115. package/docs/en/parts/scatter-chart.md +56 -0
  116. package/docs/en/parts/sparkline.md +1 -1
  117. package/docs/en/parts/tracker.md +36 -0
  118. package/docs/en/parts/trend-indicator.md +17 -1
  119. package/docs/en/parts/updated-at.md +30 -0
  120. package/docs/en/parts/waterfall-chart.md +56 -0
  121. package/docs/en/slide/slide-chart-full.md +48 -0
  122. package/docs/en/slide/slide-chart-insight.md +52 -0
  123. package/docs/en/slide/slide-columns.md +46 -0
  124. package/docs/en/slide/slide-comparison.md +68 -0
  125. package/docs/en/slide/slide-cover.md +39 -0
  126. package/docs/en/slide/slide-exec-summary.md +47 -0
  127. package/docs/en/slide/slide-heading.md +38 -0
  128. package/docs/en/slide/slide-kpi-grid.md +55 -0
  129. package/docs/en/slide/slide-kpi-hero.md +58 -0
  130. package/docs/en/slide/slide-next-actions.md +49 -0
  131. package/docs/en/slide/slide-scorecard-table.md +54 -0
  132. package/docs/en/slide/slide-section.md +44 -0
  133. package/docs/en/slide/slide-source-line.md +34 -0
  134. package/docs/en/ui/alert-dialog.md +42 -0
  135. package/docs/en/ui/avatar.md +31 -0
  136. package/docs/en/ui/combobox.md +74 -0
  137. package/docs/en/ui/drawer.md +41 -0
  138. package/docs/en/ui/empty.md +1 -1
  139. package/docs/en/ui/error-state.md +4 -3
  140. package/docs/en/ui/field.md +42 -0
  141. package/docs/en/ui/hover-card.md +21 -0
  142. package/docs/en/ui/kbd.md +17 -0
  143. package/docs/en/ui/loading.md +1 -1
  144. package/docs/en/ui/pagination.md +36 -0
  145. package/docs/en/ui/radio-group.md +21 -0
  146. package/docs/en/ui/toast.md +44 -0
  147. package/docs/en/ui/toggle-group.md +4 -3
  148. package/docs/en/ui-and-theming.md +1 -1
  149. package/docs/index.json +1184 -114
  150. package/docs/ja/changelog.md +33 -0
  151. package/docs/ja/components.md +68 -101
  152. package/docs/ja/doc/delta-text.md +40 -0
  153. package/docs/ja/doc/doc-action-items.md +49 -0
  154. package/docs/ja/doc/doc-callout.md +38 -0
  155. package/docs/ja/doc/doc-data-table.md +60 -0
  156. package/docs/ja/doc/doc-executive-summary.md +64 -0
  157. package/docs/ja/doc/doc-figure.md +56 -0
  158. package/docs/ja/doc/doc-key-findings.md +61 -0
  159. package/docs/ja/doc/doc-kpi-scorecard.md +80 -0
  160. package/docs/ja/doc/doc-notes-and-sources.md +43 -0
  161. package/docs/ja/doc/doc-report-header.md +46 -0
  162. package/docs/ja/page-types/csv.md +83 -0
  163. package/docs/ja/page-types/doc.md +83 -0
  164. package/docs/ja/page-types/excel.md +82 -0
  165. package/docs/ja/page-types/slide.md +133 -0
  166. package/docs/ja/page-types.md +47 -0
  167. package/docs/ja/pages-and-metadata.md +15 -0
  168. package/docs/ja/parts/area-chart.md +85 -0
  169. package/docs/ja/parts/bar-chart.md +95 -0
  170. package/docs/ja/parts/bar-list.md +58 -0
  171. package/docs/ja/parts/category-bar.md +36 -0
  172. package/docs/ja/parts/chart-frame.md +36 -0
  173. package/docs/ja/parts/data-table.md +22 -0
  174. package/docs/ja/parts/delta.md +51 -0
  175. package/docs/ja/parts/donut-chart.md +66 -0
  176. package/docs/ja/parts/echart.md +3 -0
  177. package/docs/ja/parts/format.md +44 -0
  178. package/docs/ja/parts/funnel-steps.md +27 -8
  179. package/docs/ja/parts/heatmap.md +45 -0
  180. package/docs/ja/parts/kpi-card.md +56 -0
  181. package/docs/ja/parts/legend.md +36 -0
  182. package/docs/ja/parts/line-chart.md +84 -0
  183. package/docs/ja/parts/metric-value.md +3 -2
  184. package/docs/ja/parts/progress-circle.md +34 -0
  185. package/docs/ja/parts/sample-data.md +61 -0
  186. package/docs/ja/parts/scatter-chart.md +69 -0
  187. package/docs/ja/parts/sparkline.md +2 -2
  188. package/docs/ja/parts/tracker.md +32 -0
  189. package/docs/ja/parts/trend-indicator.md +17 -1
  190. package/docs/ja/parts/updated-at.md +27 -0
  191. package/docs/ja/parts/waterfall-chart.md +61 -0
  192. package/docs/ja/routing.md +8 -86
  193. package/docs/ja/slide/slide-chart-full.md +48 -0
  194. package/docs/ja/slide/slide-chart-insight.md +52 -0
  195. package/docs/ja/slide/slide-columns.md +46 -0
  196. package/docs/ja/slide/slide-comparison.md +68 -0
  197. package/docs/ja/slide/slide-cover.md +39 -0
  198. package/docs/ja/slide/slide-exec-summary.md +47 -0
  199. package/docs/ja/slide/slide-heading.md +38 -0
  200. package/docs/ja/slide/slide-kpi-grid.md +55 -0
  201. package/docs/ja/slide/slide-kpi-hero.md +58 -0
  202. package/docs/ja/slide/slide-next-actions.md +49 -0
  203. package/docs/ja/slide/slide-scorecard-table.md +54 -0
  204. package/docs/ja/slide/slide-section.md +44 -0
  205. package/docs/ja/slide/slide-source-line.md +34 -0
  206. package/docs/ja/ui/alert-dialog.md +41 -0
  207. package/docs/ja/ui/avatar.md +31 -0
  208. package/docs/ja/ui/combobox.md +74 -0
  209. package/docs/ja/ui/drawer.md +41 -0
  210. package/docs/ja/ui/empty.md +1 -1
  211. package/docs/ja/ui/error-state.md +4 -3
  212. package/docs/ja/ui/field.md +42 -0
  213. package/docs/ja/ui/hover-card.md +21 -0
  214. package/docs/ja/ui/kbd.md +16 -0
  215. package/docs/ja/ui/loading.md +1 -1
  216. package/docs/ja/ui/pagination.md +36 -0
  217. package/docs/ja/ui/radio-group.md +21 -0
  218. package/docs/ja/ui/toast.md +46 -0
  219. package/docs/ja/ui/toggle-group.md +4 -3
  220. package/docs/ja/ui-and-theming.md +14 -7
  221. package/package.json +41 -31
  222. package/registry/ui/accordion.tsx +76 -0
  223. package/registry/ui/alert-dialog.tsx +189 -0
  224. package/registry/ui/alert.tsx +80 -0
  225. package/registry/ui/app-shell.tsx +287 -0
  226. package/registry/ui/area-chart.tsx +3701 -0
  227. package/registry/ui/attention-list.tsx +303 -0
  228. package/registry/ui/avatar.tsx +110 -0
  229. package/registry/ui/badge.tsx +56 -0
  230. package/registry/ui/bar-chart.tsx +3698 -0
  231. package/registry/ui/bar-list.tsx +3743 -0
  232. package/registry/ui/box-plot-chart.tsx +3906 -0
  233. package/registry/ui/breadcrumb.tsx +128 -0
  234. package/registry/ui/button.tsx +62 -0
  235. package/registry/ui/calendar.tsx +223 -0
  236. package/registry/ui/card.tsx +107 -0
  237. package/registry/ui/category-bar.tsx +1290 -0
  238. package/registry/ui/chart-frame.tsx +1393 -0
  239. package/registry/ui/checkbox.tsx +30 -0
  240. package/registry/ui/collapsible.tsx +23 -0
  241. package/registry/ui/combobox.tsx +310 -0
  242. package/registry/ui/command.tsx +198 -0
  243. package/registry/ui/dashboard-card.tsx +217 -0
  244. package/registry/ui/data-table.tsx +693 -146
  245. package/registry/ui/date-range-picker.tsx +390 -0
  246. package/registry/ui/delta.tsx +191 -0
  247. package/registry/ui/dialog.tsx +161 -0
  248. package/registry/ui/donut-chart.tsx +3751 -0
  249. package/registry/ui/drawer.tsx +229 -0
  250. package/registry/ui/dropdown-menu.tsx +274 -0
  251. package/registry/ui/echart.tsx +1040 -0
  252. package/registry/ui/field.tsx +240 -0
  253. package/registry/ui/filter-bar.tsx +392 -0
  254. package/registry/ui/funnel-steps.tsx +3569 -0
  255. package/registry/ui/heatmap.tsx +1786 -0
  256. package/registry/ui/histogram-chart.tsx +3986 -0
  257. package/registry/ui/hover-card.tsx +52 -0
  258. package/registry/ui/input-group.tsx +160 -0
  259. package/registry/ui/input.tsx +24 -0
  260. package/registry/ui/kbd.tsx +30 -0
  261. package/registry/ui/kpi-card.tsx +704 -0
  262. package/registry/ui/label.tsx +22 -0
  263. package/registry/ui/legend.tsx +3563 -0
  264. package/registry/ui/line-chart.tsx +3699 -0
  265. package/registry/ui/metric-value.tsx +62 -0
  266. package/registry/ui/multi-select.tsx +232 -0
  267. package/registry/ui/page-shell.tsx +282 -0
  268. package/registry/ui/pagination.tsx +140 -0
  269. package/registry/ui/paired-chart.tsx +3827 -0
  270. package/registry/ui/placeholder.tsx +36 -0
  271. package/registry/ui/popover.tsx +92 -0
  272. package/registry/ui/progress-circle.tsx +867 -0
  273. package/registry/ui/progress.tsx +85 -0
  274. package/registry/ui/radio-group.tsx +39 -0
  275. package/registry/ui/sample-data.tsx +86 -0
  276. package/registry/ui/scatter-chart.tsx +4212 -0
  277. package/registry/ui/scroll-area.tsx +56 -0
  278. package/registry/ui/searchable-select.tsx +214 -0
  279. package/registry/ui/section-header.tsx +43 -0
  280. package/registry/ui/segmented-control.tsx +76 -0
  281. package/registry/ui/select.tsx +255 -0
  282. package/registry/ui/separator.tsx +27 -0
  283. package/registry/ui/sheet.tsx +139 -0
  284. package/registry/ui/sidebar.tsx +725 -0
  285. package/registry/ui/skeleton.tsx +17 -0
  286. package/registry/ui/slider.tsx +56 -0
  287. package/registry/ui/sparkline.tsx +230 -0
  288. package/registry/ui/spinner.tsx +14 -0
  289. package/registry/ui/states.tsx +90 -0
  290. package/registry/ui/status-badge.tsx +121 -0
  291. package/registry/ui/switch.tsx +34 -0
  292. package/registry/ui/table.tsx +118 -0
  293. package/registry/ui/tabs.tsx +84 -0
  294. package/registry/ui/textarea.tsx +22 -0
  295. package/registry/ui/toast.tsx +250 -0
  296. package/registry/ui/toggle-group.tsx +91 -0
  297. package/registry/ui/toggle.tsx +47 -0
  298. package/registry/ui/tooltip.tsx +72 -0
  299. package/registry/ui/tracker.tsx +849 -0
  300. package/registry/ui/trend-indicator.tsx +74 -0
  301. package/registry/ui/updated-at.tsx +122 -0
  302. package/registry/ui/waterfall-chart.tsx +4248 -0
  303. package/skills/vantage-add-feature/SKILL.md +9 -7
  304. package/skills/vantage-design/SKILL.md +36 -24
  305. package/skills/vantage-design/references/extract.md +16 -14
  306. package/skills/vantage-design/references/format.md +6 -5
  307. package/skills/vantage-design/references/presets.md +60 -110
  308. package/skills/vantage-pitfalls/SKILL.md +10 -1
  309. package/skills/vantage-slide/SKILL.md +68 -36
  310. package/templates/AGENTS.md +26 -3
  311. package/templates/agents/api.md +29 -0
  312. package/templates/agents/csv.md +2 -1
  313. package/templates/agents/doc.md +52 -3
  314. package/templates/agents/page.md +54 -9
  315. package/templates/agents/slide.md +76 -3
  316. package/templates/agents/xlsx.md +2 -1
  317. package/theme.css +247 -132
  318. package/dist/add-DY4AXANK.js +0 -6
  319. package/dist/add-DY4AXANK.js.map +0 -1
  320. package/dist/chunk-5ZOP4SQR.js.map +0 -1
  321. package/dist/chunk-A2UUGASH.js.map +0 -1
  322. package/dist/chunk-CEXAQQ5W.js.map +0 -1
  323. package/dist/chunk-DTDVSFRY.js +0 -29
  324. package/dist/chunk-DTDVSFRY.js.map +0 -1
  325. package/dist/chunk-JKLLFVEU.js.map +0 -1
  326. package/dist/chunk-LMUACBMA.js.map +0 -1
  327. package/dist/chunk-MP3QSOXL.js +0 -2232
  328. package/dist/chunk-MP3QSOXL.js.map +0 -1
  329. package/dist/chunk-P7W4LR3Z.js.map +0 -1
  330. package/dist/chunk-PVTHHV7X.js.map +0 -1
  331. package/dist/chunk-PXRX5PEC.js.map +0 -1
  332. package/dist/chunk-QI3XQKHS.js.map +0 -1
  333. package/dist/chunk-RPZAALCX.js.map +0 -1
  334. package/dist/chunk-VA776YE5.js +0 -316
  335. package/dist/chunk-VA776YE5.js.map +0 -1
  336. package/dist/dev-GDKATCC7.js.map +0 -1
@@ -1,6 +1,9 @@
1
- export { AppShell, DashboardCard, DashboardCardAction, DashboardCardContent, DashboardCardDescription, DashboardCardFooter, DashboardCardHeader, DashboardCardPreset, DashboardCardSkeleton, DashboardCardTitle, DataTable, DataTableColumnVisibility, DataTableContent, DataTablePagination, DataTablePreset, DataTableToolbar, DateRangePicker, EChart, FilterBar, FilterBarActiveChips, FilterBarClearButton, FilterBarMultiSelect, FilterBarPreset, FilterBarSelect, FunnelSteps, MetricUnit, MetricValue, MultiSelect, PageShell, PageShellActions, PageShellContent, PageShellDescription, PageShellHeader, PageShellHeaderEnd, PageShellHeading, PageShellMeta, PageShellSummary, PageShellSummaryCard, PageShellTitle, Placeholder, SearchableSelect, SectionHeader, SegmentedControl, Sparkline, StatusBadge, TrendIndicator, defaultPresets, flattenOptions, funnelStepsVariants, isGroupedOptions, metricValueVariants, pageShellSummaryCardVariants, useDataTable } from '../chunk-MP3QSOXL.js';
2
- import '../chunk-RPZAALCX.js';
3
- import '../chunk-PXRX5PEC.js';
4
- import '../chunk-A2UUGASH.js';
1
+ export { AppShell, AreaChart, BarChart, BarList, COMPARISON_LABELS, CategoryBar, ChartFrame, DEFAULT_SAMPLE_LABEL, DELTA_NOT_COMPARABLE, DashboardCard, DashboardCardAction, DashboardCardContent, DashboardCardDescription, DashboardCardFooter, DashboardCardHeader, DashboardCardPreset, DashboardCardSkeleton, DashboardCardTitle, DataTable, DataTableColumnVisibility, DataTableContent, DataTableExport, DataTablePagination, DataTablePreset, DataTableToolbar, DateRangePicker, Delta, DonutChart, FilterBar, FilterBarActiveChips, FilterBarClearButton, FilterBarMultiSelect, FilterBarPreset, FilterBarSelect, FunnelSteps, Heatmap, KpiCard, Legend, LineChart, MetricUnit, MetricValue, MultiSelect, PageShell, PageShellActions, PageShellContent, PageShellDescription, PageShellHeader, PageShellHeaderEnd, PageShellHeading, PageShellMeta, PageShellSummary, PageShellSummaryCard, PageShellTitle, Placeholder, ProgressCircle, RECORD_MIN_POINTS, SampleBadge, SampleClaim, SampleData, ScatterChart, SearchableSelect, SectionHeader, SegmentedControl, StatusBadge, Tracker, TrendIndicator, UpdatedAt, WaterfallChart, comparisonBaseline, comparisonLabel, computeComparison, computeTargetProgress, defaultChangeDisplay, defaultPresets, deltaVariants, detectRecord, fillKpiTemplate, flattenOptions, formatChange, formatChangeAmount, formatRelativeTime, funnelStepsVariants, inferPeriodGrain, isGroupedOptions, metricValueVariants, pageShellSummaryCardVariants, tableToCsv, toCsv, toneForValue, useDataTable, useSampleMark } from '../chunk-QOXXOFGL.js';
2
+ export { EChart, useResolvedChartColors } from '../chunk-JXFCSF3K.js';
3
+ export { Sparkline } from '../chunk-2IAPIOPS.js';
4
+ export { DEFAULT_LOCALE, EMPTY_VALUE, MINUS_SIGN, formatDate, formatDateRange, formatDatesInText, formatDelta, formatKind, formatPoints, formatValue, toValueFormatter } from '../chunk-57GHR5LN.js';
5
+ import '../chunk-7S52M2SL.js';
6
+ import '../chunk-PDOBHMUQ.js';
7
+ import '../chunk-U736PVHY.js';
5
8
  //# sourceMappingURL=index.js.map
6
9
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,15 @@
1
+ import * as React from 'react';
2
+ import { V as ValueFormat } from './format-U0cQl069.js';
3
+
4
+ interface DeltaTextProps {
5
+ /** The change itself; its direction comes from the sign. `null` shows "—". */
6
+ value: number | null;
7
+ format?: ValueFormat;
8
+ /** Which way is good. Default `"up"`. */
9
+ betterWhen?: "up" | "down";
10
+ /** Name of the comparison, e.g. "前月比". Printed before the change; omit to print only the change. */
11
+ comparisonLabel?: string;
12
+ }
13
+ declare function DeltaText({ value, format, betterWhen, comparisonLabel }: DeltaTextProps): React.JSX.Element;
14
+
15
+ export { DeltaText as D, type DeltaTextProps as a };
@@ -1,12 +1,12 @@
1
- import { runDiagnostics } from './chunk-P7W4LR3Z.js';
2
- import './chunk-JKLLFVEU.js';
3
- import { vantagePlugin } from './chunk-VA776YE5.js';
4
- import './chunk-LMUACBMA.js';
5
- import './chunk-CEXAQQ5W.js';
6
- import { scanProject, timedAsync } from './chunk-ZVANIULZ.js';
1
+ import { runDiagnostics } from './chunk-5C2SEDPH.js';
2
+ import './chunk-UWSQUHX6.js';
3
+ import { vantagePlugin } from './chunk-SDJTTMLK.js';
4
+ import './chunk-SHZM3EXB.js';
5
+ import './chunk-S5MDTHH7.js';
6
+ import { scanProject, timedAsync } from './chunk-RNTDBX6S.js';
7
7
  import './chunk-46QI6GFC.js';
8
8
  import './chunk-B7LLBNLV.js';
9
- import { printDiagnostics, log, applyApiBaseUrlFlag, resolvePortOptions, resolveHostOptions, resolveHmrOverlay, reportPortInUse } from './chunk-QI3XQKHS.js';
9
+ import { printDiagnostics, log, applyApiBaseUrlFlag, resolvePortOptions, resolveHostOptions, resolveHmrOverlay, resolveDraftPreview, reportPortInUse } from './chunk-GNXCX4WE.js';
10
10
  import './chunk-C2CX6GLX.js';
11
11
  import { loadEnv, createServer } from 'vite';
12
12
 
@@ -42,7 +42,7 @@ async function dev(root, args) {
42
42
  mode,
43
43
  // The model was just scanned for diagnostics; hand it over so the plugin
44
44
  // does not walk the project again.
45
- plugins: [vantagePlugin({ root, env, model })],
45
+ plugins: [vantagePlugin({ root, env, model, draftPreview: resolveDraftPreview(args.flags) })],
46
46
  // `host` / `allowedHosts` are only present when asked for, and `hmr` is
47
47
  // left alone unless the overlay is being turned off, so Vite's own
48
48
  // defaults (host, port, protocol) keep applying.
@@ -77,5 +77,5 @@ async function dev(root, args) {
77
77
  }
78
78
 
79
79
  export { dev };
80
- //# sourceMappingURL=dev-GDKATCC7.js.map
81
- //# sourceMappingURL=dev-GDKATCC7.js.map
80
+ //# sourceMappingURL=dev-H4I2JL63.js.map
81
+ //# sourceMappingURL=dev-H4I2JL63.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/dev.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAkBA,eAAsB,GAAA,CAAI,MAAc,IAAA,EAAmC;AACzE,EAAA,MAAM,KAAA,GAAQ,YAAY,IAAI,CAAA;AAC9B,EAAA,MAAM,MAAA,GAAS,cAAA,CAAe,IAAA,EAAM,KAAK,CAAA,CAAE,OAAO,CAAC,CAAA,KAAM,CAAA,CAAE,QAAA,KAAa,OAAO,CAAA;AAC/E,EAAA,IAAI,OAAO,MAAA,EAAQ;AACjB,IAAA,gBAAA,CAAiB,MAAM,CAAA;AACvB,IAAA,GAAA,CAAI,MAAM,sDAAsD,CAAA;AAChE,IAAA,OAAO,CAAA;AAAA,EACT;AAEA,EAAA,MAAM,IAAA,GAAO,aAAA;AACb,EAAA,mBAAA,CAAoB,IAAI,CAAA;AACxB,EAAA,MAAM,GAAA,GAAM,EAAE,GAAG,OAAA,CAAQ,GAAA,EAAK,GAAG,OAAA,CAAQ,IAAA,EAAM,IAAA,EAAM,EAAE,CAAA,EAAE;AACzD,EAAA,MAAM,KAAA,GAAQ,kBAAA,CAAmB,IAAA,CAAK,KAAA,EAAO,IAAI,CAAA;AACjD,EAAA,IAAI,CAAC,MAAM,EAAA,EAAI;AACb,IAAA,GAAA,CAAI,KAAA,CAAM,MAAM,KAAK,CAAA;AACrB,IAAA,OAAO,CAAA;AAAA,EACT;AACA,EAAA,MAAM,EAAE,IAAA,EAAM,UAAA,EAAW,GAAI,KAAA;AAC7B,EAAA,MAAM,KAAA,GAAQ,kBAAA,CAAmB,IAAA,CAAK,KAAK,CAAA;AAC3C,EAAA,IAAI,CAAC,MAAM,EAAA,EAAI;AACb,IAAA,GAAA,CAAI,KAAA,CAAM,MAAM,KAAK,CAAA;AACrB,IAAA,OAAO,CAAA;AAAA,EACT;AACA,EAAA,MAAM,OAAA,GAAU,iBAAA,CAAkB,IAAA,CAAK,KAAK,CAAA;AAE5C,EAAA,MAAM,SAAS,MAAM,UAAA;AAAA,IAAW,mBAAA;AAAA,IAAqB,MACnD,YAAA,CAAa;AAAA,MACX,UAAA,EAAY,KAAA;AAAA,MACZ,IAAA;AAAA,MACA,IAAA;AAAA;AAAA;AAAA,MAGA,OAAA,EAAS,CAAC,aAAA,CAAc,EAAE,IAAA,EAAM,GAAA,EAAK,KAAA,EAAO,YAAA,EAAc,mBAAA,CAAoB,IAAA,CAAK,KAAK,CAAA,EAAG,CAAC,CAAA;AAAA;AAAA;AAAA;AAAA,MAI5F,MAAA,EAAQ;AAAA,QACN,IAAA;AAAA,QACA,UAAA;AAAA,QACA,GAAG,KAAA,CAAM,OAAA;AAAA,QACT,GAAI,UAAU,EAAC,GAAI,EAAE,GAAA,EAAK,EAAE,OAAA,EAAS,KAAA,EAAM;AAAE,OAC/C;AAAA,MACA,WAAA,EAAa;AAAA,KACd;AAAA,GACH;AAEA,EAAA,IAAI;AACF,IAAA,MAAM,UAAA,CAAW,aAAA,EAAe,MAAM,MAAA,CAAO,QAAQ,CAAA;AAAA,EACvD,SAAS,GAAA,EAAK;AACZ,IAAA,MAAM,MAAA,CAAO,KAAA,EAAM,CAAE,KAAA,CAAM,MAAM;AAAA,IAAC,CAAC,CAAA;AACnC,IAAA,IAAI,eAAA,CAAgB,GAAA,EAAK,IAAA,EAAM,UAAU,GAAG,OAAO,CAAA;AACnD,IAAA,MAAM,GAAA;AAAA,EACR;AACA,EAAA,GAAA,CAAI,MAAM,kBAAkB,CAAA;AAC5B,EAAA,MAAA,CAAO,SAAA,EAAU;AACjB,EAAA,IAAI,KAAA,CAAM,SAAA,EAAW,GAAA,CAAI,IAAA,CAAK,sBAA2B,CAAA;AAEzD,EAAA,MAAM,WAAW,YAAY;AAC3B,IAAA,MAAM,OAAO,KAAA,EAAM;AACnB,IAAA,OAAA,CAAQ,KAAK,CAAC,CAAA;AAAA,EAChB,CAAA;AACA,EAAA,OAAA,CAAQ,EAAA,CAAG,UAAU,QAAQ,CAAA;AAC7B,EAAA,OAAA,CAAQ,EAAA,CAAG,WAAW,QAAQ,CAAA;AAG9B,EAAA,OAAO,IAAI,QAAgB,MAAM;AAAA,EAAC,CAAC,CAAA;AACrC","file":"dev-H4I2JL63.js","sourcesContent":["import { createServer, loadEnv } from \"vite\"\nimport { runDiagnostics } from \"../core/diagnostics\"\nimport { timedAsync } from \"../core/profile\"\nimport { scanProject } from \"../core/scan\"\nimport { vantagePlugin } from \"../vite/index\"\nimport {\n applyApiBaseUrlFlag,\n log,\n printDiagnostics,\n reportPortInUse,\n resolveDraftPreview,\n resolveHmrOverlay,\n resolveHostOptions,\n resolvePortOptions,\n type ParsedArgs,\n} from \"./util\"\n\n/** `vantage dev` — start the dev server with HMR and the optional API server. */\nexport async function dev(root: string, args: ParsedArgs): Promise<number> {\n const model = scanProject(root)\n const errors = runDiagnostics(root, model).filter((d) => d.severity === \"error\")\n if (errors.length) {\n printDiagnostics(errors)\n log.error(\"Fix the errors above before starting the dev server.\")\n return 1\n }\n\n const mode = \"development\"\n applyApiBaseUrlFlag(args)\n const env = { ...process.env, ...loadEnv(mode, root, \"\") }\n const ports = resolvePortOptions(args.flags, 5173)\n if (!ports.ok) {\n log.error(ports.error)\n return 1\n }\n const { port, strictPort } = ports\n const hosts = resolveHostOptions(args.flags)\n if (!hosts.ok) {\n log.error(hosts.error)\n return 1\n }\n const overlay = resolveHmrOverlay(args.flags)\n\n const server = await timedAsync(\"vite:createServer\", () =>\n createServer({\n configFile: false,\n root,\n mode,\n // The model was just scanned for diagnostics; hand it over so the plugin\n // does not walk the project again.\n plugins: [vantagePlugin({ root, env, model, draftPreview: resolveDraftPreview(args.flags) })],\n // `host` / `allowedHosts` are only present when asked for, and `hmr` is\n // left alone unless the overlay is being turned off, so Vite's own\n // defaults (host, port, protocol) keep applying.\n server: {\n port,\n strictPort,\n ...hosts.options,\n ...(overlay ? {} : { hmr: { overlay: false } }),\n },\n clearScreen: false,\n }),\n )\n\n try {\n await timedAsync(\"vite:listen\", () => server.listen())\n } catch (err) {\n await server.close().catch(() => {})\n if (reportPortInUse(err, port, strictPort)) return 1\n throw err\n }\n log.brand(\"dev server ready\")\n server.printUrls()\n if (model.hasServer) log.info(\" \" + \"server/api enabled\")\n\n const shutdown = async () => {\n await server.close()\n process.exit(0)\n }\n process.on(\"SIGINT\", shutdown)\n process.on(\"SIGTERM\", shutdown)\n\n // Keep the process alive; the listening server owns the lifecycle.\n return new Promise<number>(() => {})\n}\n"]}
@@ -1,5 +1,7 @@
1
1
  import * as React from 'react';
2
- import { HTMLAttributes } from 'react';
2
+ import { HTMLAttributes, ReactNode } from 'react';
3
+ import { V as ValueFormat } from '../format-U0cQl069.js';
4
+ export { D as DeltaText, a as DeltaTextProps } from '../delta-text-CvwBGJ95.js';
3
5
 
4
6
  /**
5
7
  * Per-document token overrides. Anything left out falls through to `--doc-*`
@@ -40,4 +42,215 @@ interface DocumentProps extends HTMLAttributes<HTMLElement> {
40
42
  */
41
43
  declare const Document: React.ForwardRefExoticComponent<DocumentProps & React.RefAttributes<HTMLElement>>;
42
44
 
43
- export { Document, type DocumentProps, type DocumentTheme };
45
+ type DocActionPriority = "high" | "medium" | "low";
46
+ interface DocActionItem {
47
+ action: ReactNode;
48
+ owner?: string;
49
+ /** Due date as written, e.g. "2026-11-15" or "11 月末". */
50
+ due?: string;
51
+ /** What we expect to change, e.g. "解約率 −0.5pt". */
52
+ impact?: string;
53
+ priority?: DocActionPriority;
54
+ }
55
+ interface DocActionItemsProps {
56
+ /** Heading text. Default "推奨する対応". */
57
+ title?: string;
58
+ /** `2` directly under the document, `3` inside another section. Default 2. */
59
+ headingLevel?: 2 | 3;
60
+ items: DocActionItem[];
61
+ variant?: "table" | "asks";
62
+ }
63
+ declare function DocActionItems({ title, headingLevel, items, variant }: DocActionItemsProps): React.JSX.Element;
64
+
65
+ type DocCalloutKind = "note" | "insight" | "warning" | "decision";
66
+ interface DocCalloutProps {
67
+ kind?: DocCalloutKind;
68
+ /** Heading of the box, one short line. Default: the kind's word. */
69
+ title?: string;
70
+ children: ReactNode;
71
+ }
72
+ declare function DocCallout({ kind, title, children }: DocCalloutProps): React.JSX.Element;
73
+
74
+ type DocTableCell = string | number | null | undefined;
75
+ type DocTableRow = Record<string, DocTableCell>;
76
+ interface DocTableColumn {
77
+ key: string;
78
+ label: string;
79
+ /** Format of a numeric column. Without it, numbers use a plain thousands format. */
80
+ format?: ValueFormat;
81
+ /** Default: right for a column of numbers, left otherwise. */
82
+ align?: "left" | "right" | "center";
83
+ }
84
+ interface DocDataTableProps {
85
+ /** Table title, as a caption above the table. */
86
+ title?: string;
87
+ /** Unit or scale, e.g. "単位: 百万円". */
88
+ unit?: string;
89
+ columns: DocTableColumn[];
90
+ rows: DocTableRow[];
91
+ /** The total row, keyed like `rows`. */
92
+ total?: DocTableRow;
93
+ /** Row indexes to set in semibold. */
94
+ highlightRows?: number[];
95
+ footnotes?: {
96
+ mark: string;
97
+ text: string;
98
+ }[];
99
+ source?: string;
100
+ /** When the data was taken: a date only, e.g. "2026-10-03". "データ時点" is added here. */
101
+ asOf?: string;
102
+ }
103
+ declare function DocDataTable({ title, unit, columns, rows, total, highlightRows, footnotes, source, asOf }: DocDataTableProps): React.JSX.Element;
104
+
105
+ interface DocSummaryMetric {
106
+ label: string;
107
+ value: number | null;
108
+ format?: ValueFormat;
109
+ /** Overrides the shown value (e.g. "約 5,400 万円"). */
110
+ display?: string;
111
+ /** The change from the comparison; direction comes from its sign. Omit for no comparison. */
112
+ delta?: {
113
+ value: number;
114
+ format?: ValueFormat;
115
+ };
116
+ /** Name of the comparison, e.g. "前月比". Default "前期比". */
117
+ comparisonLabel?: string;
118
+ /** Which way is good. Default `"up"`. */
119
+ betterWhen?: "up" | "down";
120
+ }
121
+ interface DocExecutiveSummaryProps {
122
+ /** Heading text. Default "要旨". */
123
+ title?: string;
124
+ /** `2` directly under the document, `3` inside another section. Default 2. */
125
+ headingLevel?: 2 | 3;
126
+ /** The verdict in one sentence. */
127
+ conclusion: ReactNode;
128
+ /** 3–5 supporting points, most important first. */
129
+ points: ReactNode[];
130
+ /** Up to 3 headline numbers; any beyond are ignored. */
131
+ metrics?: DocSummaryMetric[];
132
+ }
133
+ declare function DocExecutiveSummary({ title, headingLevel, conclusion, points, metrics, }: DocExecutiveSummaryProps): React.JSX.Element;
134
+
135
+ interface DocFigureProps {
136
+ /** The finding, as a sentence. */
137
+ title: string;
138
+ /** Unit or scale, e.g. "単位: 百万円". */
139
+ unit?: string;
140
+ /** Figure number; shown as "図 N" in the caption. */
141
+ number?: number;
142
+ /** Where the data comes from. */
143
+ source?: string;
144
+ /** When the data was taken: a date only, e.g. "2026-10-03". */
145
+ asOf?: string;
146
+ /** Footnotes, one per line. */
147
+ notes?: string[];
148
+ /** The chart. */
149
+ children: ReactNode;
150
+ }
151
+ declare function DocFigure({ title, unit, number, source, asOf, notes, children }: DocFigureProps): React.JSX.Element;
152
+
153
+ interface DocFindingMetric {
154
+ label: string;
155
+ value: number | null;
156
+ format?: ValueFormat;
157
+ /** Overrides the shown value. */
158
+ display?: string;
159
+ /** The change from the comparison; direction comes from its sign. */
160
+ delta?: {
161
+ value: number;
162
+ format?: ValueFormat;
163
+ };
164
+ /** Name of the comparison, e.g. "前月比". Default "前期比". */
165
+ comparisonLabel?: string;
166
+ /** Which way is good. Default `"up"`. */
167
+ betterWhen?: "up" | "down";
168
+ }
169
+ interface DocFinding {
170
+ /** The conclusion, as a sentence. */
171
+ headline: string;
172
+ evidence: ReactNode;
173
+ metric?: DocFindingMetric;
174
+ }
175
+ interface DocKeyFindingsProps {
176
+ /** Heading text. Default "主要な発見". */
177
+ title?: string;
178
+ /** `2` directly under the document, `3` inside another section. Default 2. */
179
+ headingLevel?: 2 | 3;
180
+ /** 3–5 findings, most important first. */
181
+ findings: DocFinding[];
182
+ }
183
+ declare function DocKeyFindings({ title, headingLevel, findings }: DocKeyFindingsProps): React.JSX.Element;
184
+
185
+ interface DocScorecardMetric {
186
+ label: string;
187
+ value: number | null;
188
+ format?: ValueFormat;
189
+ /** Overrides the shown value. */
190
+ display?: string;
191
+ /** The change from the comparison; direction comes from its sign. */
192
+ delta?: {
193
+ value: number;
194
+ format?: ValueFormat;
195
+ };
196
+ /** Name of the comparison, e.g. "前年同期比". Default "前期比". */
197
+ comparisonLabel?: string;
198
+ /** Which way is good. Default `"up"`. */
199
+ betterWhen?: "up" | "down";
200
+ /** The target for the period, in the same `format` as `value`. */
201
+ target?: number;
202
+ /** One series over time, oldest first; the last one is the current value. */
203
+ trend?: {
204
+ x: string;
205
+ y: number;
206
+ }[];
207
+ }
208
+ interface DocKpiScorecardProps {
209
+ /** Heading text. Default "主要指標". */
210
+ title?: string;
211
+ /** `2` directly under the document, `3` inside another section. Default 2. */
212
+ headingLevel?: 2 | 3;
213
+ metrics: DocScorecardMetric[];
214
+ variant?: "table" | "grid";
215
+ /** When the numbers were taken: a date only, e.g. "2026-10-03". "データ時点" is added here. */
216
+ asOf?: string;
217
+ source?: string;
218
+ }
219
+ declare function DocKpiScorecard({ title, headingLevel, metrics, variant, asOf, source, }: DocKpiScorecardProps): React.JSX.Element;
220
+
221
+ interface DocReportHeaderProps {
222
+ /** The document title (h1). State the subject and the period, not a slogan. */
223
+ title: string;
224
+ /** One line under the title, e.g. who the report is for. */
225
+ subtitle?: ReactNode;
226
+ /** The period the numbers cover, e.g. "2026 年 9 月" or "2026-07-01 〜 2026-09-30". */
227
+ period?: string;
228
+ /** When the data was taken: a date only, e.g. "2026-10-03". Shown under "データ時点". */
229
+ asOf?: string;
230
+ author?: string;
231
+ /** Where the numbers come from, e.g. "受注管理システム、会計システム". */
232
+ source?: string;
233
+ }
234
+ declare function DocReportHeader({ title, subtitle, period, asOf, author, source }: DocReportHeaderProps): React.JSX.Element;
235
+
236
+ interface DocDefinition {
237
+ term: string;
238
+ description: ReactNode;
239
+ }
240
+ interface DocSource {
241
+ name: string;
242
+ /** Data as-of date, e.g. "2026-10-03". */
243
+ asOf?: string;
244
+ }
245
+ interface DocNotesAndSourcesProps {
246
+ /** Heading text. Default "注記・出典". */
247
+ title?: string;
248
+ /** `2` directly under the document, `3` inside another section. Default 2. */
249
+ headingLevel?: 2 | 3;
250
+ notes?: ReactNode[];
251
+ definitions?: DocDefinition[];
252
+ sources?: DocSource[];
253
+ }
254
+ declare function DocNotesAndSources({ title, headingLevel, notes, definitions, sources }: DocNotesAndSourcesProps): React.JSX.Element | null;
255
+
256
+ export { type DocActionItem, DocActionItems, type DocActionItemsProps, type DocActionPriority, DocCallout, type DocCalloutKind, type DocCalloutProps, DocDataTable, type DocDataTableProps, type DocDefinition, DocExecutiveSummary, type DocExecutiveSummaryProps, DocFigure, type DocFigureProps, type DocFinding, type DocFindingMetric, DocKeyFindings, type DocKeyFindingsProps, DocKpiScorecard, type DocKpiScorecardProps, DocNotesAndSources, type DocNotesAndSourcesProps, DocReportHeader, type DocReportHeaderProps, type DocScorecardMetric, type DocSource, type DocSummaryMetric, type DocTableCell, type DocTableColumn, type DocTableRow, Document, type DocumentProps, type DocumentTheme };
package/dist/doc/index.js CHANGED
@@ -1,6 +1,10 @@
1
- import { Button } from '../chunk-PXRX5PEC.js';
2
- import '../chunk-A2UUGASH.js';
3
- import { forwardRef, useEffect } from 'react';
1
+ import { DeltaText } from '../chunk-6OTTGAPO.js';
2
+ export { DeltaText } from '../chunk-6OTTGAPO.js';
3
+ import { Sparkline } from '../chunk-2IAPIOPS.js';
4
+ import { formatValue } from '../chunk-57GHR5LN.js';
5
+ import { Button } from '../chunk-PDOBHMUQ.js';
6
+ import '../chunk-U736PVHY.js';
7
+ import { forwardRef, useEffect, useId } from 'react';
4
8
  import { PrinterIcon } from 'lucide-react';
5
9
  import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
6
10
 
@@ -105,7 +109,14 @@ var Document = forwardRef(function Document2({ theme, style, ...props }, ref) {
105
109
  {
106
110
  ref,
107
111
  "data-slot": "document",
108
- style: themeVars || style ? { ...themeVars, ...style } : void 0,
112
+ style: {
113
+ width: "100%",
114
+ // Phrase-aware Japanese line breaks (no-op unless <html lang> is CJK / unsupported browsers drop it).
115
+ wordBreak: "auto-phrase",
116
+ lineBreak: "strict",
117
+ ...themeVars,
118
+ ...style
119
+ },
109
120
  ...props
110
121
  }
111
122
  ),
@@ -128,7 +139,300 @@ var Document = forwardRef(function Document2({ theme, style, ...props }, ref) {
128
139
  ] });
129
140
  });
130
141
  Document.displayName = "Document";
142
+ var PRIORITY = { high: "\u9AD8", medium: "\u4E2D", low: "\u4F4E" };
143
+ var MUTED = { color: "var(--doc-muted)" };
144
+ function Priority({ value }) {
145
+ if (!value) return /* @__PURE__ */ jsx(Fragment, { children: "\u2014" });
146
+ return /* @__PURE__ */ jsx("span", { className: value === "high" ? "font-semibold" : void 0, children: PRIORITY[value] });
147
+ }
148
+ function DocActionItems({ title = "\u63A8\u5968\u3059\u308B\u5BFE\u5FDC", headingLevel = 2, items, variant = "table" }) {
149
+ const Heading = headingLevel === 3 ? "h3" : "h2";
150
+ return /* @__PURE__ */ jsxs("section", { "data-slot": "doc-action-items", children: [
151
+ /* @__PURE__ */ jsx(Heading, { children: title }),
152
+ variant === "asks" ? /* @__PURE__ */ jsx("ul", { children: items.map((item, i) => /* @__PURE__ */ jsxs("li", { className: "break-inside-avoid", children: [
153
+ item.action,
154
+ item.owner || item.due ? /* @__PURE__ */ jsxs("span", { style: MUTED, children: [
155
+ "\uFF08",
156
+ [item.owner, item.due ? `${item.due} \u307E\u3067` : void 0].filter(Boolean).join("\u30FB"),
157
+ "\uFF09"
158
+ ] }) : null
159
+ ] }, i)) }) : /* @__PURE__ */ jsx("div", { className: "w-full overflow-x-auto", children: /* @__PURE__ */ jsxs("table", { className: "table w-full", children: [
160
+ /* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsxs("tr", { children: [
161
+ /* @__PURE__ */ jsx("th", { scope: "col", children: "\u5BFE\u5FDC" }),
162
+ /* @__PURE__ */ jsx("th", { scope: "col", children: "\u62C5\u5F53" }),
163
+ /* @__PURE__ */ jsx("th", { scope: "col", children: "\u671F\u9650" }),
164
+ /* @__PURE__ */ jsx("th", { scope: "col", children: "\u671F\u5F85\u3059\u308B\u52B9\u679C" }),
165
+ /* @__PURE__ */ jsx("th", { scope: "col", children: "\u512A\u5148\u5EA6" })
166
+ ] }) }),
167
+ /* @__PURE__ */ jsx("tbody", { children: items.map((item, i) => /* @__PURE__ */ jsxs("tr", { children: [
168
+ /* @__PURE__ */ jsx("td", { children: item.action }),
169
+ /* @__PURE__ */ jsx("td", { children: item.owner ?? "\u2014" }),
170
+ /* @__PURE__ */ jsx("td", { className: "whitespace-nowrap tabular-nums", children: item.due ?? "\u2014" }),
171
+ /* @__PURE__ */ jsx("td", { children: item.impact ?? "\u2014" }),
172
+ /* @__PURE__ */ jsx("td", { children: /* @__PURE__ */ jsx(Priority, { value: item.priority }) })
173
+ ] }, i)) })
174
+ ] }) })
175
+ ] });
176
+ }
177
+ var KINDS = {
178
+ note: { word: "\u88DC\u8DB3", rule: "border-info", tint: "bg-info-subtle", text: "text-info" },
179
+ insight: { word: "\u793A\u5506", rule: "border-positive", tint: "bg-positive-subtle", text: "text-positive" },
180
+ warning: { word: "\u6CE8\u610F", rule: "border-warning", tint: "bg-warning-subtle", text: "text-warning" },
181
+ decision: { word: "\u6C7A\u5B9A\u4E8B\u9805", rule: "border-foreground", tint: "bg-muted", text: "text-foreground" }
182
+ };
183
+ function DocCallout({ kind = "note", title, children }) {
184
+ const k = KINDS[kind];
185
+ const titleId = useId();
186
+ const heading = title && title !== k.word ? `${k.word}: ${title}` : k.word;
187
+ return /* @__PURE__ */ jsxs(
188
+ "div",
189
+ {
190
+ role: "note",
191
+ "aria-labelledby": titleId,
192
+ "data-slot": "doc-callout",
193
+ "data-kind": kind,
194
+ className: `break-inside-avoid border-l-4 px-4 py-2 ${k.rule} ${k.tint}`,
195
+ children: [
196
+ /* @__PURE__ */ jsx("p", { id: titleId, className: `m-0 font-semibold ${k.text}`, children: heading }),
197
+ /* @__PURE__ */ jsx("div", { children: typeof children === "string" ? /* @__PURE__ */ jsx("p", { className: "m-0", children }) : children })
198
+ ]
199
+ }
200
+ );
201
+ }
202
+ var ALIGN = { left: "text-left", right: "text-right", center: "text-center" };
203
+ function DocDataTable({ title, unit, columns, rows, total, highlightRows, footnotes, source, asOf }) {
204
+ const isNumeric = (col) => rows.some((r) => typeof r[col.key] === "number");
205
+ const cls = (col) => {
206
+ const numeric = isNumeric(col);
207
+ return `${ALIGN[col.align ?? (numeric ? "right" : "left")]}${numeric ? " tabular-nums" : ""}`;
208
+ };
209
+ const text = (col, v) => typeof v === "number" ? formatValue(v, col.format ?? "number") : v === null || v === void 0 || v === "" ? "\u2014" : v;
210
+ const origin = [source ? `\u51FA\u5178: ${source}` : void 0, asOf ? `\u30C7\u30FC\u30BF\u6642\u70B9 ${asOf}` : void 0].filter(Boolean).join(" \uFF0F ");
211
+ const highlighted = new Set(highlightRows);
212
+ return /* @__PURE__ */ jsxs("figure", { "data-slot": "doc-data-table", className: "m-0 w-full break-inside-auto", children: [
213
+ /* @__PURE__ */ jsx("div", { className: "w-full overflow-x-auto", children: /* @__PURE__ */ jsxs("table", { className: "table w-full", children: [
214
+ title || unit ? /* @__PURE__ */ jsxs("caption", { className: "text-left", children: [
215
+ title ? /* @__PURE__ */ jsx("span", { className: "font-semibold", children: title }) : null,
216
+ unit ? /* @__PURE__ */ jsx("span", { style: { color: "var(--doc-muted)" }, children: title ? `\uFF08${unit}\uFF09` : unit }) : null
217
+ ] }) : null,
218
+ /* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsx("tr", { children: columns.map((col) => /* @__PURE__ */ jsx("th", { scope: "col", className: cls(col), children: col.label }, col.key)) }) }),
219
+ /* @__PURE__ */ jsx("tbody", { children: rows.map((row, i) => /* @__PURE__ */ jsx("tr", { className: highlighted.has(i) ? "font-semibold" : void 0, children: columns.map((col) => /* @__PURE__ */ jsx("td", { className: cls(col), children: text(col, row[col.key]) }, col.key)) }, i)) }),
220
+ total ? /* @__PURE__ */ jsx("tfoot", { children: /* @__PURE__ */ jsx("tr", { className: "font-semibold", children: columns.map((col) => /* @__PURE__ */ jsx("td", { className: cls(col), children: text(col, total[col.key]) }, col.key)) }) }) : null
221
+ ] }) }),
222
+ footnotes?.length || origin ? /* @__PURE__ */ jsxs("figcaption", { className: "flex flex-col gap-0.5 break-inside-avoid text-left", children: [
223
+ footnotes?.map((f) => /* @__PURE__ */ jsxs("span", { children: [
224
+ f.mark,
225
+ " ",
226
+ f.text
227
+ ] }, f.mark)),
228
+ origin ? /* @__PURE__ */ jsx("span", { children: origin }) : null
229
+ ] }) : null
230
+ ] });
231
+ }
232
+ function DocExecutiveSummary({
233
+ title = "\u8981\u65E8",
234
+ headingLevel = 2,
235
+ conclusion,
236
+ points,
237
+ metrics
238
+ }) {
239
+ const Heading = headingLevel === 3 ? "h3" : "h2";
240
+ const shown2 = (metrics ?? []).slice(0, 3);
241
+ return /* @__PURE__ */ jsxs("section", { "data-slot": "doc-executive-summary", children: [
242
+ /* @__PURE__ */ jsx(Heading, { children: title }),
243
+ /* @__PURE__ */ jsx("p", { className: "font-semibold", children: conclusion }),
244
+ /* @__PURE__ */ jsx("ol", { children: points.map((point, i) => /* @__PURE__ */ jsx("li", { className: "break-inside-avoid", children: point }, i)) }),
245
+ shown2.length > 0 ? /* @__PURE__ */ jsx("dl", { className: "grid grid-cols-1 gap-4 sm:grid-cols-3 print:grid-cols-3", children: shown2.map((m) => /* @__PURE__ */ jsxs(
246
+ "div",
247
+ {
248
+ className: "break-inside-avoid border-l-2 pl-3",
249
+ style: { borderColor: "var(--doc-border)" },
250
+ children: [
251
+ /* @__PURE__ */ jsx("dt", { style: { color: "var(--doc-muted)" }, children: m.label }),
252
+ /* @__PURE__ */ jsx("dd", { className: "m-0 font-semibold tabular-nums", children: m.display ?? formatValue(m.value, m.format) }),
253
+ m.delta ? /* @__PURE__ */ jsxs("dd", { className: "m-0", children: [
254
+ /* @__PURE__ */ jsxs("span", { style: { color: "var(--doc-muted)" }, children: [
255
+ m.comparisonLabel ?? "\u524D\u671F\u6BD4",
256
+ " "
257
+ ] }),
258
+ /* @__PURE__ */ jsx(DeltaText, { value: m.delta.value, format: m.delta.format ?? m.format, betterWhen: m.betterWhen })
259
+ ] }) : null
260
+ ]
261
+ },
262
+ m.label
263
+ )) }) : null
264
+ ] });
265
+ }
266
+ function DocFigure({ title, unit, number, source, asOf, notes, children }) {
267
+ const titleId = useId();
268
+ const origin = [source ? `\u51FA\u5178: ${source}` : void 0, asOf ? `\u30C7\u30FC\u30BF\u6642\u70B9 ${asOf}` : void 0].filter(Boolean).join(" \uFF0F ");
269
+ const hasCaption = number !== void 0 || origin || notes && notes.length > 0;
270
+ return /* @__PURE__ */ jsxs("figure", { "data-slot": "doc-figure", "aria-labelledby": titleId, className: "w-full break-inside-avoid", children: [
271
+ /* @__PURE__ */ jsx("p", { id: titleId, className: "m-0 font-semibold", children: title }),
272
+ unit ? /* @__PURE__ */ jsx("p", { className: "m-0", style: { color: "var(--doc-muted)" }, children: unit }) : null,
273
+ /* @__PURE__ */ jsx("div", { className: "w-full", children }),
274
+ hasCaption ? /* @__PURE__ */ jsxs("figcaption", { className: "flex flex-col gap-0.5 text-left", children: [
275
+ number !== void 0 ? /* @__PURE__ */ jsxs("span", { className: "font-medium", children: [
276
+ "\u56F3 ",
277
+ number
278
+ ] }) : null,
279
+ origin ? /* @__PURE__ */ jsx("span", { children: origin }) : null,
280
+ notes?.map((note, i) => /* @__PURE__ */ jsx("span", { children: note }, i))
281
+ ] }) : null
282
+ ] });
283
+ }
284
+ function DocKeyFindings({ title = "\u4E3B\u8981\u306A\u767A\u898B", headingLevel = 2, findings }) {
285
+ const Heading = headingLevel === 3 ? "h3" : "h2";
286
+ const Item = headingLevel === 3 ? "h4" : "h3";
287
+ return /* @__PURE__ */ jsxs("section", { "data-slot": "doc-key-findings", children: [
288
+ /* @__PURE__ */ jsx(Heading, { children: title }),
289
+ findings.map((f, i) => /* @__PURE__ */ jsxs("article", { className: "break-inside-avoid", children: [
290
+ /* @__PURE__ */ jsxs(Item, { children: [
291
+ i + 1,
292
+ ". ",
293
+ f.headline
294
+ ] }),
295
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2 sm:flex-row sm:items-start sm:justify-between print:flex-row print:justify-between", children: [
296
+ /* @__PURE__ */ jsx("div", { children: typeof f.evidence === "string" ? /* @__PURE__ */ jsx("p", { className: "m-0", children: f.evidence }) : f.evidence }),
297
+ f.metric ? /* @__PURE__ */ jsxs("dl", { className: "m-0 shrink-0 sm:text-right print:text-right", children: [
298
+ /* @__PURE__ */ jsx("dt", { style: { color: "var(--doc-muted)" }, children: f.metric.label }),
299
+ /* @__PURE__ */ jsx("dd", { className: "m-0 font-semibold tabular-nums", children: f.metric.display ?? formatValue(f.metric.value, f.metric.format) }),
300
+ f.metric.delta ? /* @__PURE__ */ jsxs("dd", { className: "m-0", children: [
301
+ /* @__PURE__ */ jsxs("span", { style: { color: "var(--doc-muted)" }, children: [
302
+ f.metric.comparisonLabel ?? "\u524D\u671F\u6BD4",
303
+ " "
304
+ ] }),
305
+ /* @__PURE__ */ jsx(DeltaText, { value: f.metric.delta.value, format: f.metric.delta.format ?? f.metric.format, betterWhen: f.metric.betterWhen })
306
+ ] }) : null
307
+ ] }) : null
308
+ ] })
309
+ ] }, i))
310
+ ] });
311
+ }
312
+ var MUTED2 = { color: "var(--doc-muted)" };
313
+ var ACHIEVEMENT = { type: "percent", digits: 1 };
314
+ var shown = (m) => m.display ?? formatValue(m.value, m.format);
315
+ var achievement = (m) => m.target === void 0 || m.target === 0 || m.value === null ? "\u2014" : formatValue(m.value / m.target, ACHIEVEMENT);
316
+ var change = (m) => m.delta ? /* @__PURE__ */ jsx(DeltaText, { value: m.delta.value, format: m.delta.format ?? m.format, betterWhen: m.betterWhen }) : "\u2014";
317
+ var trendOf = (m) => (m.trend ?? []).map(({ y }) => ({ value: y }));
318
+ function DocKpiScorecard({
319
+ title = "\u4E3B\u8981\u6307\u6A19",
320
+ headingLevel = 2,
321
+ metrics,
322
+ variant = "table",
323
+ asOf,
324
+ source
325
+ }) {
326
+ const Heading = headingLevel === 3 ? "h3" : "h2";
327
+ const caption = [source ? `\u51FA\u5178: ${source}` : void 0, asOf ? `\u30C7\u30FC\u30BF\u6642\u70B9 ${asOf}` : void 0].filter(Boolean).join(" \uFF0F ");
328
+ const columnLabel = metrics.find((m) => m.comparisonLabel)?.comparisonLabel ?? "\u524D\u671F\u6BD4";
329
+ return /* @__PURE__ */ jsxs("section", { "data-slot": "doc-kpi-scorecard", children: [
330
+ /* @__PURE__ */ jsx(Heading, { children: title }),
331
+ variant === "grid" ? /* @__PURE__ */ jsx("dl", { className: "m-0 grid grid-cols-1 gap-4 sm:grid-cols-3 print:grid-cols-3", children: metrics.map((m) => /* @__PURE__ */ jsxs(
332
+ "div",
333
+ {
334
+ className: "break-inside-avoid rounded-md border p-3",
335
+ style: { borderColor: "var(--doc-border)", background: "var(--doc-subtle)" },
336
+ children: [
337
+ /* @__PURE__ */ jsx("dt", { style: MUTED2, children: m.label }),
338
+ /* @__PURE__ */ jsx("dd", { className: "m-0 font-semibold tabular-nums", children: shown(m) }),
339
+ /* @__PURE__ */ jsxs("dd", { className: "m-0 flex flex-col gap-0.5", children: [
340
+ m.delta ? /* @__PURE__ */ jsxs("span", { children: [
341
+ /* @__PURE__ */ jsxs("span", { style: MUTED2, children: [
342
+ m.comparisonLabel ?? "\u524D\u671F\u6BD4",
343
+ " "
344
+ ] }),
345
+ change(m)
346
+ ] }) : null,
347
+ m.target !== void 0 ? /* @__PURE__ */ jsxs("span", { children: [
348
+ /* @__PURE__ */ jsx("span", { style: MUTED2, children: "\u9054\u6210\u7387 " }),
349
+ achievement(m),
350
+ /* @__PURE__ */ jsxs("span", { style: MUTED2, children: [
351
+ "\uFF08\u76EE\u6A19 ",
352
+ formatValue(m.target, m.format),
353
+ "\uFF09"
354
+ ] })
355
+ ] }) : null
356
+ ] }),
357
+ m.trend && m.trend.length > 1 ? /* @__PURE__ */ jsx("dd", { className: "m-0", children: /* @__PURE__ */ jsx(Sparkline, { data: trendOf(m), height: 28, "aria-label": `${m.label}\u306E\u63A8\u79FB` }) }) : null
358
+ ]
359
+ },
360
+ m.label
361
+ )) }) : /* @__PURE__ */ jsx("div", { className: "w-full overflow-x-auto", children: /* @__PURE__ */ jsxs("table", { className: "table w-full", children: [
362
+ /* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsxs("tr", { children: [
363
+ /* @__PURE__ */ jsx("th", { scope: "col", children: "\u6307\u6A19" }),
364
+ /* @__PURE__ */ jsx("th", { scope: "col", className: "text-right", children: "\u5B9F\u7E3E" }),
365
+ /* @__PURE__ */ jsx("th", { scope: "col", className: "text-right", children: columnLabel }),
366
+ /* @__PURE__ */ jsx("th", { scope: "col", className: "text-right", children: "\u76EE\u6A19" }),
367
+ /* @__PURE__ */ jsx("th", { scope: "col", className: "text-right", children: "\u9054\u6210\u7387" }),
368
+ /* @__PURE__ */ jsx("th", { scope: "col", children: "\u63A8\u79FB" })
369
+ ] }) }),
370
+ /* @__PURE__ */ jsx("tbody", { children: metrics.map((m) => /* @__PURE__ */ jsxs("tr", { children: [
371
+ /* @__PURE__ */ jsx("th", { scope: "row", className: "font-medium", children: m.label }),
372
+ /* @__PURE__ */ jsx("td", { className: "text-right font-semibold tabular-nums", children: shown(m) }),
373
+ /* @__PURE__ */ jsx("td", { className: "text-right whitespace-nowrap", children: change(m) }),
374
+ /* @__PURE__ */ jsx("td", { className: "text-right tabular-nums", children: m.target === void 0 ? "\u2014" : formatValue(m.target, m.format) }),
375
+ /* @__PURE__ */ jsx("td", { className: "text-right tabular-nums", children: achievement(m) }),
376
+ /* @__PURE__ */ jsx("td", { children: m.trend && m.trend.length > 1 ? /* @__PURE__ */ jsx(Sparkline, { data: trendOf(m), height: 24, "aria-label": `${m.label}\u306E\u63A8\u79FB` }) : "\u2014" })
377
+ ] }, m.label)) })
378
+ ] }) }),
379
+ caption ? /* @__PURE__ */ jsx("p", { style: MUTED2, children: caption }) : null
380
+ ] });
381
+ }
382
+ function DocReportHeader({ title, subtitle, period, asOf, author, source }) {
383
+ const facts = [
384
+ ...period ? [{ label: "\u5BFE\u8C61\u671F\u9593", value: period }] : [],
385
+ ...asOf ? [{ label: "\u30C7\u30FC\u30BF\u6642\u70B9", value: asOf }] : [],
386
+ ...author ? [{ label: "\u4F5C\u6210\u8005", value: author }] : [],
387
+ ...source ? [{ label: "\u51FA\u5178", value: source }] : []
388
+ ];
389
+ return /* @__PURE__ */ jsxs("header", { "data-slot": "doc-report-header", className: "break-inside-avoid", children: [
390
+ /* @__PURE__ */ jsx("h1", { children: title }),
391
+ subtitle ? typeof subtitle === "string" ? /* @__PURE__ */ jsx("p", { style: { color: "var(--doc-muted)" }, children: subtitle }) : /* @__PURE__ */ jsx("div", { style: { color: "var(--doc-muted)" }, children: subtitle }) : null,
392
+ facts.length > 0 ? /* @__PURE__ */ jsx(
393
+ "dl",
394
+ {
395
+ className: "grid grid-cols-1 gap-x-8 gap-y-2 border-y py-3 sm:grid-cols-2 print:grid-cols-2",
396
+ style: { borderColor: "var(--doc-border)" },
397
+ children: facts.map((fact) => /* @__PURE__ */ jsxs("div", { className: "flex gap-3", children: [
398
+ /* @__PURE__ */ jsx("dt", { className: "shrink-0", style: { color: "var(--doc-muted)" }, children: fact.label }),
399
+ /* @__PURE__ */ jsx("dd", { className: "m-0 font-medium", children: fact.value })
400
+ ] }, fact.label))
401
+ }
402
+ ) : null
403
+ ] });
404
+ }
405
+ function DocNotesAndSources({ title = "\u6CE8\u8A18\u30FB\u51FA\u5178", headingLevel = 2, notes = [], definitions = [], sources = [] }) {
406
+ if (notes.length === 0 && definitions.length === 0 && sources.length === 0) return null;
407
+ const Heading = headingLevel === 3 ? "h3" : "h2";
408
+ const Sub = headingLevel === 3 ? "h4" : "h3";
409
+ return /* @__PURE__ */ jsxs("section", { "data-slot": "doc-notes-and-sources", children: [
410
+ /* @__PURE__ */ jsx(Heading, { children: title }),
411
+ notes.length > 0 ? /* @__PURE__ */ jsxs("div", { className: "break-inside-avoid", children: [
412
+ /* @__PURE__ */ jsx(Sub, { children: "\u6CE8\u8A18" }),
413
+ /* @__PURE__ */ jsx("ol", { children: notes.map((n, i) => /* @__PURE__ */ jsx("li", { children: n }, i)) })
414
+ ] }) : null,
415
+ definitions.length > 0 ? /* @__PURE__ */ jsxs("div", { className: "break-inside-avoid", children: [
416
+ /* @__PURE__ */ jsx(Sub, { children: "\u7528\u8A9E\u306E\u5B9A\u7FA9" }),
417
+ /* @__PURE__ */ jsx("dl", { className: "m-0", children: definitions.map((d, i) => /* @__PURE__ */ jsxs("div", { className: "break-inside-avoid", children: [
418
+ /* @__PURE__ */ jsx("dt", { className: "font-semibold", children: d.term }),
419
+ /* @__PURE__ */ jsx("dd", { className: "m-0", children: d.description })
420
+ ] }, i)) })
421
+ ] }) : null,
422
+ sources.length > 0 ? /* @__PURE__ */ jsxs("div", { className: "break-inside-avoid", children: [
423
+ /* @__PURE__ */ jsx(Sub, { children: "\u51FA\u5178" }),
424
+ /* @__PURE__ */ jsx("ul", { children: sources.map((s, i) => /* @__PURE__ */ jsxs("li", { children: [
425
+ s.name,
426
+ s.asOf ? /* @__PURE__ */ jsxs("span", { style: { color: "var(--doc-muted)" }, children: [
427
+ "\uFF08\u30C7\u30FC\u30BF\u6642\u70B9 ",
428
+ s.asOf,
429
+ "\uFF09"
430
+ ] }) : null
431
+ ] }, i)) })
432
+ ] }) : null
433
+ ] });
434
+ }
131
435
 
132
- export { Document };
436
+ export { DocActionItems, DocCallout, DocDataTable, DocExecutiveSummary, DocFigure, DocKeyFindings, DocKpiScorecard, DocNotesAndSources, DocReportHeader, Document };
133
437
  //# sourceMappingURL=index.js.map
134
438
  //# sourceMappingURL=index.js.map