@squadbase/vantage 0.6.1 → 0.6.2-dev1.0017a4d
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/add-4GHF2TX2.js +6 -0
- package/dist/add-4GHF2TX2.js.map +1 -0
- package/dist/{build-O5TVNH4E.js → build-X5NVCQKT.js} +9 -9
- package/dist/{build-O5TVNH4E.js.map → build-X5NVCQKT.js.map} +1 -1
- package/dist/{check-WFBEDHDR.js → check-ZBIH422T.js} +7 -7
- package/dist/{check-WFBEDHDR.js.map → check-ZBIH422T.js.map} +1 -1
- package/dist/chunk-2IAPIOPS.js +152 -0
- package/dist/chunk-2IAPIOPS.js.map +1 -0
- package/dist/chunk-2ICNHUG6.js +1820 -0
- package/dist/chunk-2ICNHUG6.js.map +1 -0
- package/dist/{chunk-5ZOP4SQR.js → chunk-2N72FKLB.js} +12 -7
- package/dist/chunk-2N72FKLB.js.map +1 -0
- package/dist/chunk-57GHR5LN.js +163 -0
- package/dist/chunk-57GHR5LN.js.map +1 -0
- package/dist/{chunk-BCE22JSM.js → chunk-7DZGJQ3P.js} +33 -14
- package/dist/chunk-7DZGJQ3P.js.map +1 -0
- package/dist/{chunk-MXI3PZFT.js → chunk-7S52M2SL.js} +257 -210
- package/dist/chunk-7S52M2SL.js.map +1 -0
- package/dist/{chunk-QDZA5JSL.js → chunk-AABMKHEU.js} +4 -4
- package/dist/{chunk-QDZA5JSL.js.map → chunk-AABMKHEU.js.map} +1 -1
- package/dist/{chunk-KLEIVDUV.js → chunk-CEXAQQ5W.js} +150 -11
- package/dist/chunk-CEXAQQ5W.js.map +1 -0
- package/dist/{chunk-3G43C6OL.js → chunk-GNXCX4WE.js} +46 -3
- package/dist/chunk-GNXCX4WE.js.map +1 -0
- package/dist/{chunk-JGRMRXXZ.js → chunk-JKLLFVEU.js} +3 -3
- package/dist/{chunk-JGRMRXXZ.js.map → chunk-JKLLFVEU.js.map} +1 -1
- package/dist/chunk-JXFCSF3K.js +673 -0
- package/dist/chunk-JXFCSF3K.js.map +1 -0
- package/dist/chunk-PDOBHMUQ.js +54 -0
- package/dist/chunk-PDOBHMUQ.js.map +1 -0
- package/dist/{chunk-ZVANIULZ.js → chunk-RNTDBX6S.js} +4 -4
- package/dist/{chunk-ZVANIULZ.js.map → chunk-RNTDBX6S.js.map} +1 -1
- package/dist/chunk-RU6WKEOG.js +7048 -0
- package/dist/chunk-RU6WKEOG.js.map +1 -0
- package/dist/{chunk-A2UUGASH.js → chunk-U736PVHY.js} +2 -2
- package/dist/chunk-U736PVHY.js.map +1 -0
- package/dist/{chunk-PVTHHV7X.js → chunk-V3LF7BE7.js} +27 -5
- package/dist/chunk-V3LF7BE7.js.map +1 -0
- package/dist/{chunk-EP6JHXSR.js → chunk-WAMZWZJB.js} +54 -9
- package/dist/chunk-WAMZWZJB.js.map +1 -0
- package/dist/{chunk-DTDVSFRY.js → chunk-XQUSGIDG.js} +17 -3
- package/dist/chunk-XQUSGIDG.js.map +1 -0
- package/dist/cli.js +15 -11
- package/dist/cli.js.map +1 -1
- package/dist/client/index.d.ts +32 -3
- package/dist/client/index.js +205 -12
- package/dist/client/index.js.map +1 -1
- package/dist/components/index.d.ts +1743 -29
- package/dist/components/index.js +7 -3
- package/dist/{dev-NZRLOQCL.js → dev-4XEDTELV.js} +24 -13
- package/dist/dev-4XEDTELV.js.map +1 -0
- package/dist/doc/index.d.ts +198 -2
- package/dist/doc/index.js +438 -11
- package/dist/doc/index.js.map +1 -1
- package/dist/{docs-ZGDJUHJI.js → docs-JVP4RPKT.js} +3 -3
- package/dist/{docs-ZGDJUHJI.js.map → docs-JVP4RPKT.js.map} +1 -1
- package/dist/{doctor-VFKEMR54.js → doctor-5E2VEZPK.js} +8 -8
- package/dist/doctor-5E2VEZPK.js.map +1 -0
- package/dist/format-U0cQl069.d.ts +243 -0
- package/dist/markdown/index.js +1 -1
- package/dist/markdown/index.js.map +1 -1
- package/dist/{preview-QDCIVVSR.js → preview-T6CLSQVX.js} +12 -4
- package/dist/preview-T6CLSQVX.js.map +1 -0
- package/dist/query/index.d.ts +0 -11
- package/dist/query/index.js +2 -2
- package/dist/{routes-RHP5FVGD.js → routes-3SGAFDMC.js} +6 -6
- package/dist/{routes-RHP5FVGD.js.map → routes-3SGAFDMC.js.map} +1 -1
- package/dist/{search-RFBELGY7.js → search-5LC4XPB5.js} +3 -3
- package/dist/{search-RFBELGY7.js.map → search-5LC4XPB5.js.map} +1 -1
- package/dist/slide/index.d.ts +177 -1
- package/dist/slide/index.js +917 -18
- package/dist/slide/index.js.map +1 -1
- package/dist/table/index.js +14 -9
- package/dist/table/index.js.map +1 -1
- package/dist/ui/index.d.ts +148 -12
- package/dist/ui/index.js +1340 -87
- package/dist/ui/index.js.map +1 -1
- package/dist/{upgrade-GF2P67M6.js → upgrade-JHXZBGQS.js} +7 -7
- package/dist/{upgrade-GF2P67M6.js.map → upgrade-JHXZBGQS.js.map} +1 -1
- package/dist/vite/index.d.ts +10 -0
- package/dist/vite/index.js +4 -4
- package/docs/en/changelog.md +24 -0
- package/docs/en/cli-reference.md +30 -0
- package/docs/en/components.md +40 -17
- package/docs/en/doc/doc-action-items.md +49 -0
- package/docs/en/doc/doc-callout.md +38 -0
- package/docs/en/doc/doc-data-table.md +60 -0
- package/docs/en/doc/doc-executive-summary.md +64 -0
- package/docs/en/doc/doc-figure.md +56 -0
- package/docs/en/doc/doc-key-findings.md +61 -0
- package/docs/en/doc/doc-kpi-scorecard.md +80 -0
- package/docs/en/doc/doc-report-header.md +46 -0
- package/docs/en/parts/area-chart.md +99 -0
- package/docs/en/parts/bar-chart.md +91 -0
- package/docs/en/parts/bar-list.md +50 -0
- package/docs/en/parts/category-bar.md +37 -0
- package/docs/en/parts/chart-frame.md +39 -0
- package/docs/en/parts/data-table.md +22 -0
- package/docs/en/parts/delta.md +50 -0
- package/docs/en/parts/donut-chart.md +72 -0
- package/docs/en/parts/format.md +43 -0
- package/docs/en/parts/funnel-steps.md +2 -1
- package/docs/en/parts/heatmap.md +53 -0
- package/docs/en/parts/kpi-card.md +57 -0
- package/docs/en/parts/legend.md +35 -0
- package/docs/en/parts/line-chart.md +94 -0
- package/docs/en/parts/metric-value.md +3 -2
- package/docs/en/parts/page-shell.md +1 -1
- package/docs/en/parts/progress-circle.md +33 -0
- package/docs/en/parts/sample-data.md +39 -0
- package/docs/en/parts/scatter-chart.md +56 -0
- package/docs/en/parts/sparkline.md +1 -1
- package/docs/en/parts/tracker.md +36 -0
- package/docs/en/parts/trend-indicator.md +17 -1
- package/docs/en/parts/updated-at.md +30 -0
- package/docs/en/parts/waterfall-chart.md +56 -0
- package/docs/en/routing.md +4 -2
- package/docs/en/slide/slide-chart-insight.md +52 -0
- package/docs/en/slide/slide-cover.md +39 -0
- package/docs/en/slide/slide-exec-summary.md +47 -0
- package/docs/en/slide/slide-kpi-grid.md +55 -0
- package/docs/en/slide/slide-kpi-hero.md +58 -0
- package/docs/en/slide/slide-next-actions.md +49 -0
- package/docs/en/slide/slide-scorecard-table.md +54 -0
- package/docs/en/ui/alert-dialog.md +42 -0
- package/docs/en/ui/avatar.md +31 -0
- package/docs/en/ui/combobox.md +74 -0
- package/docs/en/ui/drawer.md +41 -0
- package/docs/en/ui/empty.md +1 -1
- package/docs/en/ui/error-state.md +4 -3
- package/docs/en/ui/field.md +42 -0
- package/docs/en/ui/hover-card.md +21 -0
- package/docs/en/ui/kbd.md +17 -0
- package/docs/en/ui/loading.md +1 -1
- package/docs/en/ui/pagination.md +36 -0
- package/docs/en/ui/radio-group.md +21 -0
- package/docs/en/ui/toast.md +44 -0
- package/docs/en/ui/toggle-group.md +4 -3
- package/docs/en/ui-and-theming.md +1 -1
- package/docs/index.json +1024 -114
- package/docs/ja/changelog.md +55 -0
- package/docs/ja/cli-reference.md +29 -0
- package/docs/ja/components.md +66 -101
- package/docs/ja/doc/doc-action-items.md +49 -0
- package/docs/ja/doc/doc-callout.md +38 -0
- package/docs/ja/doc/doc-data-table.md +60 -0
- package/docs/ja/doc/doc-executive-summary.md +64 -0
- package/docs/ja/doc/doc-figure.md +56 -0
- package/docs/ja/doc/doc-key-findings.md +61 -0
- package/docs/ja/doc/doc-kpi-scorecard.md +80 -0
- package/docs/ja/doc/doc-report-header.md +46 -0
- package/docs/ja/page-types/csv.md +83 -0
- package/docs/ja/page-types/doc.md +83 -0
- package/docs/ja/page-types/excel.md +82 -0
- package/docs/ja/page-types/slide.md +132 -0
- package/docs/ja/page-types.md +47 -0
- package/docs/ja/parts/area-chart.md +85 -0
- package/docs/ja/parts/bar-chart.md +95 -0
- package/docs/ja/parts/bar-list.md +58 -0
- package/docs/ja/parts/category-bar.md +36 -0
- package/docs/ja/parts/chart-frame.md +36 -0
- package/docs/ja/parts/data-table.md +22 -0
- package/docs/ja/parts/delta.md +50 -0
- package/docs/ja/parts/donut-chart.md +66 -0
- package/docs/ja/parts/echart.md +3 -0
- package/docs/ja/parts/format.md +44 -0
- package/docs/ja/parts/funnel-steps.md +27 -8
- package/docs/ja/parts/heatmap.md +45 -0
- package/docs/ja/parts/kpi-card.md +55 -0
- package/docs/ja/parts/legend.md +36 -0
- package/docs/ja/parts/line-chart.md +84 -0
- package/docs/ja/parts/metric-value.md +3 -2
- package/docs/ja/parts/page-shell.md +1 -1
- package/docs/ja/parts/progress-circle.md +34 -0
- package/docs/ja/parts/sample-data.md +61 -0
- package/docs/ja/parts/scatter-chart.md +69 -0
- package/docs/ja/parts/sparkline.md +2 -2
- package/docs/ja/parts/tracker.md +32 -0
- package/docs/ja/parts/trend-indicator.md +17 -1
- package/docs/ja/parts/updated-at.md +27 -0
- package/docs/ja/parts/waterfall-chart.md +61 -0
- package/docs/ja/routing.md +8 -84
- package/docs/ja/slide/slide-chart-insight.md +52 -0
- package/docs/ja/slide/slide-cover.md +39 -0
- package/docs/ja/slide/slide-exec-summary.md +47 -0
- package/docs/ja/slide/slide-kpi-grid.md +55 -0
- package/docs/ja/slide/slide-kpi-hero.md +58 -0
- package/docs/ja/slide/slide-next-actions.md +49 -0
- package/docs/ja/slide/slide-scorecard-table.md +54 -0
- package/docs/ja/ui/alert-dialog.md +41 -0
- package/docs/ja/ui/avatar.md +31 -0
- package/docs/ja/ui/combobox.md +74 -0
- package/docs/ja/ui/drawer.md +41 -0
- package/docs/ja/ui/empty.md +1 -1
- package/docs/ja/ui/error-state.md +4 -3
- package/docs/ja/ui/field.md +42 -0
- package/docs/ja/ui/hover-card.md +21 -0
- package/docs/ja/ui/kbd.md +16 -0
- package/docs/ja/ui/loading.md +1 -1
- package/docs/ja/ui/pagination.md +36 -0
- package/docs/ja/ui/radio-group.md +21 -0
- package/docs/ja/ui/toast.md +46 -0
- package/docs/ja/ui/toggle-group.md +4 -3
- package/docs/ja/ui-and-theming.md +14 -7
- package/package.json +43 -29
- package/registry/ui/accordion.tsx +76 -0
- package/registry/ui/alert-dialog.tsx +189 -0
- package/registry/ui/alert.tsx +80 -0
- package/registry/ui/app-shell.tsx +287 -0
- package/registry/ui/area-chart.tsx +3701 -0
- package/registry/ui/attention-list.tsx +303 -0
- package/registry/ui/avatar.tsx +110 -0
- package/registry/ui/badge.tsx +56 -0
- package/registry/ui/bar-chart.tsx +3698 -0
- package/registry/ui/bar-list.tsx +3743 -0
- package/registry/ui/box-plot-chart.tsx +3906 -0
- package/registry/ui/breadcrumb.tsx +128 -0
- package/registry/ui/button.tsx +62 -0
- package/registry/ui/calendar.tsx +223 -0
- package/registry/ui/card.tsx +107 -0
- package/registry/ui/category-bar.tsx +1290 -0
- package/registry/ui/chart-frame.tsx +1393 -0
- package/registry/ui/checkbox.tsx +30 -0
- package/registry/ui/collapsible.tsx +23 -0
- package/registry/ui/combobox.tsx +310 -0
- package/registry/ui/command.tsx +198 -0
- package/registry/ui/dashboard-card.tsx +217 -0
- package/registry/ui/data-table.tsx +693 -146
- package/registry/ui/date-range-picker.tsx +390 -0
- package/registry/ui/delta.tsx +188 -0
- package/registry/ui/dialog.tsx +161 -0
- package/registry/ui/donut-chart.tsx +3751 -0
- package/registry/ui/drawer.tsx +229 -0
- package/registry/ui/dropdown-menu.tsx +274 -0
- package/registry/ui/echart.tsx +1040 -0
- package/registry/ui/field.tsx +240 -0
- package/registry/ui/filter-bar.tsx +392 -0
- package/registry/ui/funnel-steps.tsx +3569 -0
- package/registry/ui/heatmap.tsx +1786 -0
- package/registry/ui/histogram-chart.tsx +3986 -0
- package/registry/ui/hover-card.tsx +52 -0
- package/registry/ui/input-group.tsx +160 -0
- package/registry/ui/input.tsx +24 -0
- package/registry/ui/kbd.tsx +30 -0
- package/registry/ui/kpi-card.tsx +699 -0
- package/registry/ui/label.tsx +22 -0
- package/registry/ui/legend.tsx +3563 -0
- package/registry/ui/line-chart.tsx +3699 -0
- package/registry/ui/metric-value.tsx +62 -0
- package/registry/ui/multi-select.tsx +232 -0
- package/registry/ui/page-shell.tsx +282 -0
- package/registry/ui/pagination.tsx +140 -0
- package/registry/ui/paired-chart.tsx +3827 -0
- package/registry/ui/placeholder.tsx +36 -0
- package/registry/ui/popover.tsx +92 -0
- package/registry/ui/progress-circle.tsx +867 -0
- package/registry/ui/progress.tsx +85 -0
- package/registry/ui/radio-group.tsx +39 -0
- package/registry/ui/sample-data.tsx +86 -0
- package/registry/ui/scatter-chart.tsx +4212 -0
- package/registry/ui/scroll-area.tsx +56 -0
- package/registry/ui/searchable-select.tsx +214 -0
- package/registry/ui/section-header.tsx +43 -0
- package/registry/ui/segmented-control.tsx +76 -0
- package/registry/ui/select.tsx +255 -0
- package/registry/ui/separator.tsx +27 -0
- package/registry/ui/sheet.tsx +139 -0
- package/registry/ui/sidebar.tsx +725 -0
- package/registry/ui/skeleton.tsx +17 -0
- package/registry/ui/slider.tsx +56 -0
- package/registry/ui/sparkline.tsx +230 -0
- package/registry/ui/spinner.tsx +14 -0
- package/registry/ui/states.tsx +90 -0
- package/registry/ui/status-badge.tsx +121 -0
- package/registry/ui/switch.tsx +34 -0
- package/registry/ui/table.tsx +118 -0
- package/registry/ui/tabs.tsx +84 -0
- package/registry/ui/textarea.tsx +22 -0
- package/registry/ui/toast.tsx +250 -0
- package/registry/ui/toggle-group.tsx +91 -0
- package/registry/ui/toggle.tsx +47 -0
- package/registry/ui/tooltip.tsx +72 -0
- package/registry/ui/tracker.tsx +849 -0
- package/registry/ui/trend-indicator.tsx +74 -0
- package/registry/ui/updated-at.tsx +122 -0
- package/registry/ui/waterfall-chart.tsx +4248 -0
- package/skills/vantage-add-feature/SKILL.md +9 -7
- package/skills/vantage-design/SKILL.md +36 -24
- package/skills/vantage-design/references/extract.md +16 -14
- package/skills/vantage-design/references/format.md +6 -5
- package/skills/vantage-design/references/presets.md +60 -110
- package/skills/vantage-pitfalls/SKILL.md +5 -1
- package/skills/vantage-slide/SKILL.md +71 -36
- package/templates/AGENTS.md +24 -3
- package/templates/agents/api.md +29 -0
- package/templates/agents/csv.md +2 -1
- package/templates/agents/doc.md +51 -3
- package/templates/agents/page.md +54 -9
- package/templates/agents/slide.md +68 -3
- package/templates/agents/xlsx.md +2 -1
- package/theme.css +284 -128
- package/dist/add-EISGSZAH.js +0 -6
- package/dist/add-EISGSZAH.js.map +0 -1
- package/dist/chunk-3G43C6OL.js.map +0 -1
- package/dist/chunk-5ZOP4SQR.js.map +0 -1
- package/dist/chunk-A2UUGASH.js.map +0 -1
- package/dist/chunk-BCE22JSM.js.map +0 -1
- package/dist/chunk-DTDVSFRY.js.map +0 -1
- package/dist/chunk-EP6JHXSR.js.map +0 -1
- package/dist/chunk-KLEIVDUV.js.map +0 -1
- package/dist/chunk-MXI3PZFT.js.map +0 -1
- package/dist/chunk-PLST5Q7T.js +0 -2221
- package/dist/chunk-PLST5Q7T.js.map +0 -1
- package/dist/chunk-PVTHHV7X.js.map +0 -1
- package/dist/chunk-T3FLAGI6.js +0 -316
- package/dist/chunk-T3FLAGI6.js.map +0 -1
- package/dist/dev-NZRLOQCL.js.map +0 -1
- package/dist/doctor-VFKEMR54.js.map +0 -1
- package/dist/preview-QDCIVVSR.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"add-4GHF2TX2.js"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { runDiagnostics } from './chunk-
|
|
2
|
-
import './chunk-
|
|
3
|
-
import { vantagePlugin } from './chunk-
|
|
4
|
-
import { generateArtifacts } from './chunk-
|
|
5
|
-
import './chunk-
|
|
6
|
-
import { scanProject, timedAsync } from './chunk-
|
|
1
|
+
import { runDiagnostics } from './chunk-7DZGJQ3P.js';
|
|
2
|
+
import './chunk-JKLLFVEU.js';
|
|
3
|
+
import { vantagePlugin } from './chunk-2ICNHUG6.js';
|
|
4
|
+
import { generateArtifacts } from './chunk-WAMZWZJB.js';
|
|
5
|
+
import './chunk-CEXAQQ5W.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 } from './chunk-
|
|
9
|
+
import { printDiagnostics, log, applyApiBaseUrlFlag } from './chunk-GNXCX4WE.js';
|
|
10
10
|
import { VANTAGE_DIR, MANIFEST_SCHEMA_VERSION } from './chunk-C2CX6GLX.js';
|
|
11
11
|
import fs from 'fs';
|
|
12
12
|
import path from 'path';
|
|
@@ -104,5 +104,5 @@ function writeDeployManifest(root, model) {
|
|
|
104
104
|
}
|
|
105
105
|
|
|
106
106
|
export { build };
|
|
107
|
-
//# sourceMappingURL=build-
|
|
108
|
-
//# sourceMappingURL=build-
|
|
107
|
+
//# sourceMappingURL=build-X5NVCQKT.js.map
|
|
108
|
+
//# sourceMappingURL=build-X5NVCQKT.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli/build.ts"],"names":["viteBuild"],"mappings":"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","file":"build-
|
|
1
|
+
{"version":3,"sources":["../src/cli/build.ts"],"names":["viteBuild"],"mappings":"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","file":"build-X5NVCQKT.js","sourcesContent":["import fs from \"node:fs\"\nimport path from \"node:path\"\nimport { build as viteBuild, loadEnv } from \"vite\"\nimport { MANIFEST_SCHEMA_VERSION, VANTAGE_DIR } from \"../core/constants\"\nimport { runDiagnostics } from \"../core/diagnostics\"\nimport { generateArtifacts } from \"../core/generate\"\nimport { timedAsync } from \"../core/profile\"\nimport { scanProject } from \"../core/scan\"\nimport type { RouteModel } from \"../core/types\"\nimport { vantagePlugin } from \"../vite/index\"\nimport { applyApiBaseUrlFlag, log, printDiagnostics, type ParsedArgs } from \"./util\"\n\nconst SERVER_ENTRY = `// AUTO-GENERATED by @squadbase/vantage.\nimport path from \"node:path\"\nimport { fileURLToPath } from \"node:url\"\nimport { startNodeServer } from \"@squadbase/vantage/server/node\"\nimport { apiRoutes } from \"./server-routes.gen\"\n\nconst clientDir = path.resolve(path.dirname(fileURLToPath(import.meta.url)), \"../client\")\nstartNodeServer({ apiRoutes, clientDir })\n`\n\n/** `vantage build` — build client and (optionally) server into dist/. */\nexport async function build(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 building.\")\n return 1\n }\n\n const mode = \"production\"\n // `--api-base-url` feeds the client's PUBLIC_API_BASE_URL. Setting it on\n // process.env (before loadEnv/Vite read env) makes the flag win over any .env\n // value and keeps the single env-prefix mechanism — no Vite `define`.\n applyApiBaseUrlFlag(args)\n const env = { ...process.env, ...loadEnv(mode, root, \"\") }\n const quiet = Boolean(args.flags.json)\n\n // Write .vantage/ up front instead of letting the plugin do it at\n // configResolved: the server bundle reads server-routes.gen.ts, so once the\n // artifacts exist the two builds no longer depend on each other and can run\n // at the same time (they write to dist/client and dist/server respectively).\n generateArtifacts({ root, model })\n\n if (!quiet) log.step(model.hasServer ? \"Building client and server…\" : \"Building client…\")\n\n const clientBuild = timedAsync(\"build:client\", async () => {\n await viteBuild({\n configFile: false,\n root,\n mode,\n plugins: [vantagePlugin({ root, env, model, artifactsWritten: true })],\n logLevel: quiet ? \"silent\" : args.flags.verbose ? \"info\" : \"warn\",\n })\n // The HTML input lives in .vantage/, so Vite emits it to dist/client/.vantage/.\n // Hoist it to dist/client/index.html (asset URLs are already root-absolute).\n relocateClientHtml(root)\n })\n\n const serverBuild = model.hasServer\n ? timedAsync(\"build:server\", () => buildServer(root))\n : Promise.resolve()\n\n await Promise.all([clientBuild, serverBuild])\n\n writeDeployManifest(root, model)\n if (!quiet) log.ok(`Build complete → ${path.relative(process.cwd(), path.join(root, \"dist\")) || \"dist\"}/`)\n\n if (args.flags.json) {\n process.stdout.write(\n JSON.stringify({\n ok: true,\n mode: model.hasServer ? \"fullstack\" : \"spa\",\n output: \"dist\",\n pages: model.pages.length,\n apis: model.apis.length,\n }) + \"\\n\",\n )\n }\n return 0\n}\n\nfunction relocateClientHtml(root: string): void {\n const clientDir = path.join(root, \"dist\", \"client\")\n const nested = path.join(clientDir, VANTAGE_DIR, \"index.html\")\n const target = path.join(clientDir, \"index.html\")\n if (fs.existsSync(nested)) {\n fs.mkdirSync(clientDir, { recursive: true })\n fs.renameSync(nested, target)\n fs.rmSync(path.join(clientDir, VANTAGE_DIR), { recursive: true, force: true })\n }\n}\n\nasync function buildServer(root: string): Promise<void> {\n // Loaded here, not at module scope: an SPA project never builds a server and\n // should not pay for esbuild's binary being brought up.\n const { build: esbuildBuild } = await import(\"esbuild\")\n const vantageDir = path.join(root, VANTAGE_DIR)\n const entry = path.join(vantageDir, \"server-entry.ts\")\n fs.writeFileSync(entry, SERVER_ENTRY)\n await esbuildBuild({\n entryPoints: [entry],\n outfile: path.join(root, \"dist\", \"server\", \"index.mjs\"),\n bundle: true,\n platform: \"node\",\n format: \"esm\",\n target: \"node20\",\n logLevel: \"warning\",\n banner: { js: \"// @squadbase/vantage server bundle\" },\n })\n}\n\nfunction writeDeployManifest(root: string, model: RouteModel): void {\n const dist = path.join(root, \"dist\")\n fs.mkdirSync(dist, { recursive: true })\n const manifest = {\n schemaVersion: MANIFEST_SCHEMA_VERSION,\n mode: model.hasServer ? \"fullstack\" : \"spa\",\n client: \"./client\",\n ...(model.hasServer ? { server: \"./server/index.mjs\" } : {}),\n spaFallback: \"./client/index.html\",\n runtime: \"node\",\n }\n fs.writeFileSync(path.join(dist, \"vantage-manifest.json\"), JSON.stringify(manifest, null, 2) + \"\\n\")\n}\n"]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { runDiagnostics } from './chunk-
|
|
2
|
-
import './chunk-
|
|
3
|
-
import './chunk-
|
|
4
|
-
import { scanProject } from './chunk-
|
|
5
|
-
import { printJson, log, printDiagnostics } from './chunk-
|
|
1
|
+
import { runDiagnostics } from './chunk-7DZGJQ3P.js';
|
|
2
|
+
import './chunk-JKLLFVEU.js';
|
|
3
|
+
import './chunk-CEXAQQ5W.js';
|
|
4
|
+
import { scanProject } from './chunk-RNTDBX6S.js';
|
|
5
|
+
import { printJson, log, printDiagnostics } from './chunk-GNXCX4WE.js';
|
|
6
6
|
import './chunk-C2CX6GLX.js';
|
|
7
7
|
|
|
8
8
|
// @squadbase/vantage — generated build. Do not edit.
|
|
@@ -34,5 +34,5 @@ async function check(root, args) {
|
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
export { check };
|
|
37
|
-
//# sourceMappingURL=check-
|
|
38
|
-
//# sourceMappingURL=check-
|
|
37
|
+
//# sourceMappingURL=check-ZBIH422T.js.map
|
|
38
|
+
//# sourceMappingURL=check-ZBIH422T.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli/check.ts"],"names":[],"mappings":";;;;;;;;;;AAKA,eAAsB,KAAA,CAAM,MAAc,IAAA,EAAmC;AAC3E,EAAA,MAAM,KAAA,GAAQ,YAAY,IAAI,CAAA;AAC9B,EAAA,MAAM,KAAA,GAAQ,cAAA,CAAe,IAAA,EAAM,KAAK,CAAA;AACxC,EAAA,MAAM,SAAS,KAAA,CAAM,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,aAAa,OAAO,CAAA;AACzD,EAAA,MAAM,WAAW,KAAA,CAAM,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,aAAa,SAAS,CAAA;AAE7D,EAAA,IAAI,IAAA,CAAK,MAAM,IAAA,EAAM;AACnB,IAAA,SAAA,CAAU;AAAA,MACR,EAAA,EAAI,OAAO,MAAA,KAAW,CAAA;AAAA,MACtB,YAAY,MAAA,CAAO,MAAA;AAAA,MACnB,cAAc,QAAA,CAAS,MAAA;AAAA,MACvB,WAAA,EAAa;AAAA,KACd,CAAA;AACD,IAAA,OAAO,MAAA,CAAO,SAAS,CAAA,GAAI,CAAA;AAAA,EAC7B;AAEA,EAAA,IAAI,KAAA,CAAM,WAAW,CAAA,EAAG;AACtB,IAAA,GAAA,CAAI,GAAG,oBAAoB,CAAA;AAC3B,IAAA,OAAO,CAAA;AAAA,EACT;AACA,EAAA,gBAAA,CAAiB,KAAK,CAAA;AACtB,EAAA,OAAA,CAAQ,IAAI,EAAE,CAAA;AACd,EAAA,IAAI,MAAA,CAAO,MAAA,EAAQ,GAAA,CAAI,KAAA,CAAM,CAAA,EAAG,OAAO,MAAM,CAAA,WAAA,EAAc,QAAA,CAAS,MAAM,CAAA,YAAA,CAAc,CAAA;AAAA,OACnF,GAAA,CAAI,IAAA,CAAK,CAAA,EAAG,QAAA,CAAS,MAAM,CAAA,YAAA,CAAc,CAAA;AAC9C,EAAA,OAAO,MAAA,CAAO,SAAS,CAAA,GAAI,CAAA;AAC7B","file":"check-
|
|
1
|
+
{"version":3,"sources":["../src/cli/check.ts"],"names":[],"mappings":";;;;;;;;;;AAKA,eAAsB,KAAA,CAAM,MAAc,IAAA,EAAmC;AAC3E,EAAA,MAAM,KAAA,GAAQ,YAAY,IAAI,CAAA;AAC9B,EAAA,MAAM,KAAA,GAAQ,cAAA,CAAe,IAAA,EAAM,KAAK,CAAA;AACxC,EAAA,MAAM,SAAS,KAAA,CAAM,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,aAAa,OAAO,CAAA;AACzD,EAAA,MAAM,WAAW,KAAA,CAAM,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,aAAa,SAAS,CAAA;AAE7D,EAAA,IAAI,IAAA,CAAK,MAAM,IAAA,EAAM;AACnB,IAAA,SAAA,CAAU;AAAA,MACR,EAAA,EAAI,OAAO,MAAA,KAAW,CAAA;AAAA,MACtB,YAAY,MAAA,CAAO,MAAA;AAAA,MACnB,cAAc,QAAA,CAAS,MAAA;AAAA,MACvB,WAAA,EAAa;AAAA,KACd,CAAA;AACD,IAAA,OAAO,MAAA,CAAO,SAAS,CAAA,GAAI,CAAA;AAAA,EAC7B;AAEA,EAAA,IAAI,KAAA,CAAM,WAAW,CAAA,EAAG;AACtB,IAAA,GAAA,CAAI,GAAG,oBAAoB,CAAA;AAC3B,IAAA,OAAO,CAAA;AAAA,EACT;AACA,EAAA,gBAAA,CAAiB,KAAK,CAAA;AACtB,EAAA,OAAA,CAAQ,IAAI,EAAE,CAAA;AACd,EAAA,IAAI,MAAA,CAAO,MAAA,EAAQ,GAAA,CAAI,KAAA,CAAM,CAAA,EAAG,OAAO,MAAM,CAAA,WAAA,EAAc,QAAA,CAAS,MAAM,CAAA,YAAA,CAAc,CAAA;AAAA,OACnF,GAAA,CAAI,IAAA,CAAK,CAAA,EAAG,QAAA,CAAS,MAAM,CAAA,YAAA,CAAc,CAAA;AAC9C,EAAA,OAAO,MAAA,CAAO,SAAS,CAAA,GAAI,CAAA;AAC7B","file":"check-ZBIH422T.js","sourcesContent":["import { runDiagnostics } from \"../core/diagnostics\"\nimport { scanProject } from \"../core/scan\"\nimport { log, printDiagnostics, printJson, type ParsedArgs } from \"./util\"\n\n/** `vantage check` — static verification of the project. */\nexport async function check(root: string, args: ParsedArgs): Promise<number> {\n const model = scanProject(root)\n const diags = runDiagnostics(root, model)\n const errors = diags.filter((d) => d.severity === \"error\")\n const warnings = diags.filter((d) => d.severity === \"warning\")\n\n if (args.flags.json) {\n printJson({\n ok: errors.length === 0,\n errorCount: errors.length,\n warningCount: warnings.length,\n diagnostics: diags,\n })\n return errors.length ? 1 : 0\n }\n\n if (diags.length === 0) {\n log.ok(\"No problems found.\")\n return 0\n }\n printDiagnostics(diags)\n console.log(\"\")\n if (errors.length) log.error(`${errors.length} error(s), ${warnings.length} warning(s).`)\n else log.warn(`${warnings.length} warning(s).`)\n return errors.length ? 1 : 0\n}\n"]}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { cn } from './chunk-U736PVHY.js';
|
|
2
|
+
import { forwardRef, useState, useEffect } from 'react';
|
|
3
|
+
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
4
|
+
|
|
5
|
+
// @squadbase/vantage — generated build. Do not edit.
|
|
6
|
+
var VB_WIDTH = 100;
|
|
7
|
+
function normalizeData(values, height, vPad = 2) {
|
|
8
|
+
const min = Math.min(...values);
|
|
9
|
+
const max = Math.max(...values);
|
|
10
|
+
const range = max - min;
|
|
11
|
+
const drawHeight = height - vPad * 2;
|
|
12
|
+
if (range === 0) return values.map(() => vPad + drawHeight / 2);
|
|
13
|
+
return values.map((v) => height - vPad - (v - min) / range * drawHeight);
|
|
14
|
+
}
|
|
15
|
+
function buildLinePath(ys) {
|
|
16
|
+
if (ys.length === 0) return "";
|
|
17
|
+
const step = ys.length > 1 ? VB_WIDTH / (ys.length - 1) : 0;
|
|
18
|
+
return ys.map((y, i) => `${i === 0 ? "M" : "L"}${(i * step).toFixed(2)},${y.toFixed(2)}`).join(" ");
|
|
19
|
+
}
|
|
20
|
+
function buildAreaPath(ys, height) {
|
|
21
|
+
if (ys.length === 0) return "";
|
|
22
|
+
const step = ys.length > 1 ? VB_WIDTH / (ys.length - 1) : 0;
|
|
23
|
+
const lastX = ((ys.length - 1) * step).toFixed(2);
|
|
24
|
+
return `${buildLinePath(ys)} L${lastX},${height} L0,${height} Z`;
|
|
25
|
+
}
|
|
26
|
+
function sparklineHighlightPoints(values) {
|
|
27
|
+
if (values.length === 0) return [];
|
|
28
|
+
const last = values.length - 1;
|
|
29
|
+
const points = [{ kind: "latest", index: last }];
|
|
30
|
+
let maxI = 0;
|
|
31
|
+
let minI = 0;
|
|
32
|
+
let max = values[0];
|
|
33
|
+
let min = max;
|
|
34
|
+
values.forEach((v, i) => {
|
|
35
|
+
if (v >= max) [max, maxI] = [v, i];
|
|
36
|
+
if (v <= min) [min, minI] = [v, i];
|
|
37
|
+
});
|
|
38
|
+
const latest = values[last];
|
|
39
|
+
if (max === min) return points;
|
|
40
|
+
if (max !== latest) points.push({ kind: "max", index: maxI });
|
|
41
|
+
if (min !== latest) points.push({ kind: "min", index: minI });
|
|
42
|
+
return points;
|
|
43
|
+
}
|
|
44
|
+
function buildBarRects(ys, height, gap = 1) {
|
|
45
|
+
const barW = Math.max(1, VB_WIDTH / ys.length - gap);
|
|
46
|
+
return ys.map((y, i) => ({ x: i * (barW + gap), y, w: barW, h: height - y }));
|
|
47
|
+
}
|
|
48
|
+
var NO_ROWS = [];
|
|
49
|
+
var Sparkline = forwardRef(function Sparkline2({
|
|
50
|
+
data = NO_ROWS,
|
|
51
|
+
variant = "line",
|
|
52
|
+
height = 40,
|
|
53
|
+
color = "text-chart-1",
|
|
54
|
+
area = false,
|
|
55
|
+
animate = false,
|
|
56
|
+
highlight = "auto",
|
|
57
|
+
"aria-label": ariaLabel,
|
|
58
|
+
className,
|
|
59
|
+
...props
|
|
60
|
+
}, ref) {
|
|
61
|
+
const [mounted, setMounted] = useState(false);
|
|
62
|
+
useEffect(() => {
|
|
63
|
+
if (animate) setMounted(true);
|
|
64
|
+
}, [animate]);
|
|
65
|
+
if (data.length === 0) return null;
|
|
66
|
+
const values = data.map((d) => d.value);
|
|
67
|
+
const ys = normalizeData(values, height);
|
|
68
|
+
const step = ys.length > 1 ? VB_WIDTH / (ys.length - 1) : 0;
|
|
69
|
+
const points = variant !== "line" ? [] : highlight === "auto" ? sparklineHighlightPoints(values) : highlight === "latest" ? [{ kind: "latest", index: values.length - 1 }] : [];
|
|
70
|
+
return /* @__PURE__ */ jsxs(
|
|
71
|
+
"svg",
|
|
72
|
+
{
|
|
73
|
+
ref,
|
|
74
|
+
"data-slot": "sparkline",
|
|
75
|
+
viewBox: `0 0 ${VB_WIDTH} ${height}`,
|
|
76
|
+
preserveAspectRatio: "none",
|
|
77
|
+
width: "100%",
|
|
78
|
+
height,
|
|
79
|
+
role: ariaLabel ? "img" : void 0,
|
|
80
|
+
"aria-label": ariaLabel,
|
|
81
|
+
"aria-hidden": ariaLabel ? void 0 : true,
|
|
82
|
+
className: cn("overflow-visible", className),
|
|
83
|
+
...props,
|
|
84
|
+
children: [
|
|
85
|
+
variant === "line" && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
86
|
+
area && /* @__PURE__ */ jsx(
|
|
87
|
+
"path",
|
|
88
|
+
{
|
|
89
|
+
d: buildAreaPath(ys, height),
|
|
90
|
+
strokeWidth: 0,
|
|
91
|
+
className: cn("fill-current opacity-15", color)
|
|
92
|
+
}
|
|
93
|
+
),
|
|
94
|
+
/* @__PURE__ */ jsx(
|
|
95
|
+
"path",
|
|
96
|
+
{
|
|
97
|
+
d: buildLinePath(ys),
|
|
98
|
+
fill: "none",
|
|
99
|
+
strokeWidth: 1.5,
|
|
100
|
+
strokeLinecap: "round",
|
|
101
|
+
strokeLinejoin: "round",
|
|
102
|
+
vectorEffect: "non-scaling-stroke",
|
|
103
|
+
pathLength: animate ? 1 : void 0,
|
|
104
|
+
strokeDasharray: animate ? 1 : void 0,
|
|
105
|
+
strokeDashoffset: animate ? mounted ? 0 : 1 : void 0,
|
|
106
|
+
className: cn("stroke-current", animate && "motion-reduce:transition-none!", color),
|
|
107
|
+
style: animate ? { transition: "stroke-dashoffset 0.6s ease-in-out" } : void 0
|
|
108
|
+
}
|
|
109
|
+
),
|
|
110
|
+
points.map((p) => {
|
|
111
|
+
const x = (p.index * step).toFixed(2);
|
|
112
|
+
const y = (ys[p.index] ?? 0).toFixed(2);
|
|
113
|
+
return /* @__PURE__ */ jsx(
|
|
114
|
+
"path",
|
|
115
|
+
{
|
|
116
|
+
"data-slot": "sparkline-point",
|
|
117
|
+
"data-point": p.kind,
|
|
118
|
+
d: `M${x},${y} L${x},${y}`,
|
|
119
|
+
fill: "none",
|
|
120
|
+
strokeWidth: p.kind === "latest" ? 5 : 4,
|
|
121
|
+
strokeLinecap: "round",
|
|
122
|
+
vectorEffect: "non-scaling-stroke",
|
|
123
|
+
className: cn("stroke-current", p.kind === "latest" ? color : "text-muted-foreground")
|
|
124
|
+
},
|
|
125
|
+
p.kind
|
|
126
|
+
);
|
|
127
|
+
})
|
|
128
|
+
] }),
|
|
129
|
+
variant === "bar" && buildBarRects(ys, height).map((rect, i) => /* @__PURE__ */ jsx(
|
|
130
|
+
"rect",
|
|
131
|
+
{
|
|
132
|
+
x: rect.x,
|
|
133
|
+
y: animate ? mounted ? rect.y : height : rect.y,
|
|
134
|
+
width: rect.w,
|
|
135
|
+
height: animate ? mounted ? rect.h : 0 : rect.h,
|
|
136
|
+
rx: 0.5,
|
|
137
|
+
className: cn("fill-current", animate && "motion-reduce:transition-none!", color),
|
|
138
|
+
style: animate ? {
|
|
139
|
+
transition: `height 0.4s ease-out ${i * 0.02}s, y 0.4s ease-out ${i * 0.02}s`
|
|
140
|
+
} : void 0
|
|
141
|
+
},
|
|
142
|
+
i
|
|
143
|
+
))
|
|
144
|
+
]
|
|
145
|
+
}
|
|
146
|
+
);
|
|
147
|
+
});
|
|
148
|
+
Sparkline.displayName = "Sparkline";
|
|
149
|
+
|
|
150
|
+
export { Sparkline };
|
|
151
|
+
//# sourceMappingURL=chunk-2IAPIOPS.js.map
|
|
152
|
+
//# sourceMappingURL=chunk-2IAPIOPS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../squadkit/registry/charts/sparkline.tsx"],"names":["Sparkline"],"mappings":"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","file":"chunk-2IAPIOPS.js","sourcesContent":["\"use client\"\n\n/**\n * Sparkline — an inline trend micro-chart. Deliberately *not* an `EChart`: a\n * sparkline sits inside table cells and KPI tiles by the dozen, where one\n * ECharts instance per cell would be wasteful. This renders a single stateless\n * `<svg>` instead, so hundreds of them stay cheap.\n */\nimport { forwardRef, useEffect, useState, type SVGAttributes } from \"react\"\n\nimport { cn } from \"../lib/utils\"\nimport type { ChartHighlight } from \"../lib/types\"\n\nexport type SparklineVariant = \"line\" | \"bar\"\n\nexport interface SparklineDataPoint {\n value: number\n label?: string\n}\n\nexport interface SparklineProps extends SVGAttributes<SVGSVGElement> {\n data: SparklineDataPoint[]\n variant?: SparklineVariant\n height?: number\n /** Tailwind text-colour class; drives both stroke and fill via `currentColor`. */\n color?: string\n area?: boolean\n /** マウント時に線を引く / 棒を伸ばす。既定 `false`(`prefers-reduced-motion` では常に無効)。 */\n animate?: boolean\n /**\n * 点の強調(Tufte 流)。`\"auto\"` は最新・最大・最小の 3 点だけに小さな点を打つ\n * (最新は系列の色、最大・最小は muted)。`\"latest\"` は最新の 1 点だけ、`\"none\"` は線だけ。`variant=\"line\"` のときだけ効く。既定 `\"auto\"`。\n */\n highlight?: ChartHighlight | \"latest\"\n /** 指定すると `role=\"img\"` で読み上げ対象にする。省略時は装飾として `aria-hidden`。 */\n \"aria-label\"?: string\n className?: string\n}\n\nconst VB_WIDTH = 100\n\n/** Map raw values onto SVG y-coordinates (inverted, padded). */\nfunction normalizeData(values: number[], height: number, vPad = 2): number[] {\n const min = Math.min(...values)\n const max = Math.max(...values)\n const range = max - min\n const drawHeight = height - vPad * 2\n if (range === 0) return values.map(() => vPad + drawHeight / 2)\n return values.map((v) => height - vPad - ((v - min) / range) * drawHeight)\n}\n\nfunction buildLinePath(ys: number[]): string {\n if (ys.length === 0) return \"\"\n const step = ys.length > 1 ? VB_WIDTH / (ys.length - 1) : 0\n return ys\n .map((y, i) => `${i === 0 ? \"M\" : \"L\"}${(i * step).toFixed(2)},${y.toFixed(2)}`)\n .join(\" \")\n}\n\nfunction buildAreaPath(ys: number[], height: number): string {\n if (ys.length === 0) return \"\"\n const step = ys.length > 1 ? VB_WIDTH / (ys.length - 1) : 0\n const lastX = ((ys.length - 1) * step).toFixed(2)\n return `${buildLinePath(ys)} L${lastX},${height} L0,${height} Z`\n}\n\nexport type SparklinePointKind = \"latest\" | \"max\" | \"min\"\n\nexport interface SparklinePoint {\n kind: SparklinePointKind\n index: number\n}\n\n/**\n * The points a Tufte-style sparkline marks: the latest, the max and the min.\n * A point that is both latest and max/min is drawn once, as `latest`; a flat\n * series marks only the latest. Ties pick the most recent occurrence.\n */\nexport function sparklineHighlightPoints(values: number[]): SparklinePoint[] {\n if (values.length === 0) return []\n const last = values.length - 1\n const points: SparklinePoint[] = [{ kind: \"latest\", index: last }]\n let maxI = 0\n let minI = 0\n let max = values[0] as number\n let min = max\n values.forEach((v, i) => {\n if (v >= max) [max, maxI] = [v, i]\n if (v <= min) [min, minI] = [v, i]\n })\n const latest = values[last] as number\n if (max === min) return points\n if (max !== latest) points.push({ kind: \"max\", index: maxI })\n if (min !== latest) points.push({ kind: \"min\", index: minI })\n return points\n}\n\ninterface BarRect {\n x: number\n y: number\n w: number\n h: number\n}\n\nfunction buildBarRects(ys: number[], height: number, gap = 1): BarRect[] {\n const barW = Math.max(1, VB_WIDTH / ys.length - gap)\n return ys.map((y, i) => ({ x: i * (barW + gap), y, w: barW, h: height - y }))\n}\n\n/** Rows not given yet (a draft fills props in steps): draw the empty state, keep the same array between renders. */\nconst NO_ROWS: never[] = []\n\nexport const Sparkline = forwardRef<SVGSVGElement, SparklineProps>(function Sparkline(\n {\n data = NO_ROWS,\n variant = \"line\",\n height = 40,\n color = \"text-chart-1\",\n area = false,\n animate = false,\n highlight = \"auto\",\n \"aria-label\": ariaLabel,\n className,\n ...props\n },\n ref,\n) {\n const [mounted, setMounted] = useState(false)\n\n useEffect(() => {\n if (animate) setMounted(true)\n }, [animate])\n\n if (data.length === 0) return null\n\n const values = data.map((d) => d.value)\n const ys = normalizeData(values, height)\n const step = ys.length > 1 ? VB_WIDTH / (ys.length - 1) : 0\n const points =\n variant !== \"line\"\n ? []\n : highlight === \"auto\"\n ? sparklineHighlightPoints(values)\n : highlight === \"latest\"\n ? [{ kind: \"latest\" as const, index: values.length - 1 }]\n : []\n\n return (\n <svg\n ref={ref}\n data-slot=\"sparkline\"\n viewBox={`0 0 ${VB_WIDTH} ${height}`}\n preserveAspectRatio=\"none\"\n width=\"100%\"\n height={height}\n role={ariaLabel ? \"img\" : undefined}\n aria-label={ariaLabel}\n aria-hidden={ariaLabel ? undefined : true}\n className={cn(\"overflow-visible\", className)}\n {...props}\n >\n {variant === \"line\" && (\n <>\n {area && (\n <path\n d={buildAreaPath(ys, height)}\n strokeWidth={0}\n className={cn(\"fill-current opacity-15\", color)}\n />\n )}\n <path\n d={buildLinePath(ys)}\n fill=\"none\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n vectorEffect=\"non-scaling-stroke\"\n pathLength={animate ? 1 : undefined}\n strokeDasharray={animate ? 1 : undefined}\n strokeDashoffset={animate ? (mounted ? 0 : 1) : undefined}\n className={cn(\"stroke-current\", animate && \"motion-reduce:transition-none!\", color)}\n style={animate ? { transition: \"stroke-dashoffset 0.6s ease-in-out\" } : undefined}\n />\n {/* A zero-length round-capped stroke with a non-scaling width stays a\n circle even though the viewBox stretches (`preserveAspectRatio=\"none\"`). */}\n {points.map((p) => {\n const x = (p.index * step).toFixed(2)\n const y = (ys[p.index] ?? 0).toFixed(2)\n return (\n <path\n key={p.kind}\n data-slot=\"sparkline-point\"\n data-point={p.kind}\n d={`M${x},${y} L${x},${y}`}\n fill=\"none\"\n strokeWidth={p.kind === \"latest\" ? 5 : 4}\n strokeLinecap=\"round\"\n vectorEffect=\"non-scaling-stroke\"\n className={cn(\"stroke-current\", p.kind === \"latest\" ? color : \"text-muted-foreground\")}\n />\n )\n })}\n </>\n )}\n\n {variant === \"bar\" &&\n buildBarRects(ys, height).map((rect, i) => (\n <rect\n key={i}\n x={rect.x}\n y={animate ? (mounted ? rect.y : height) : rect.y}\n width={rect.w}\n height={animate ? (mounted ? rect.h : 0) : rect.h}\n rx={0.5}\n className={cn(\"fill-current\", animate && \"motion-reduce:transition-none!\", color)}\n style={\n animate\n ? {\n transition: `height 0.4s ease-out ${i * 0.02}s, y 0.4s ease-out ${i * 0.02}s`,\n }\n : undefined\n }\n />\n ))}\n </svg>\n )\n})\nSparkline.displayName = \"Sparkline\"\n"]}
|