@terreno/mcp 57.8.0 → 57.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/dist/docs/upgrades/57.9.0.md +28 -0
  2. package/dist/docs/versioned/next/explanation/charts.md +12 -0
  3. package/dist/docs/versioned/next/explanation/example-coverage.md +1 -1
  4. package/dist/docs/versioned/next/explanation/roadmap-seed-issues.md +20 -0
  5. package/dist/docs/versioned/next/how-to/README.md +1 -1
  6. package/dist/docs/versioned/next/how-to/admin-import-prebuilt.md +1 -1
  7. package/dist/docs/versioned/next/how-to/charts-and-dashboards.md +5 -0
  8. package/dist/docs/versioned/next/how-to/circleci.md +4 -3
  9. package/dist/docs/versioned/next/how-to/compare-chart-rendered-snapshots.md +8 -0
  10. package/dist/docs/versioned/next/how-to/install-agent-skills.md +1 -1
  11. package/dist/docs/versioned/next/implementationPlans/ai-observability.md +1 -1
  12. package/dist/docs/versioned/next/implementationPlans/b2b-platform-program.md +1 -1
  13. package/dist/docs/versioned/next/implementationPlans/charts-and-dashboards.md +3 -2
  14. package/dist/docs/versioned/next/implementationPlans/dashboard-chart-parity.md +275 -0
  15. package/dist/docs/versioned/next/reference/ai.md +39 -10
  16. package/dist/docs/versioned/next/reference/environment-variables.md +1 -1
  17. package/dist/docs/versioned/next/reference/feature-flags.md +1 -1
  18. package/dist/docs/versioned/next/reference/ui.md +94 -11
  19. package/dist/docs/versioned/next/tasks/dashboard-chart-parity.md +145 -0
  20. package/package.json +2 -2
  21. package/src/docs/upgrades/57.9.0.md +28 -0
  22. package/src/docs/versioned/next/explanation/charts.md +12 -0
  23. package/src/docs/versioned/next/explanation/example-coverage.md +1 -1
  24. package/src/docs/versioned/next/explanation/roadmap-seed-issues.md +20 -0
  25. package/src/docs/versioned/next/how-to/README.md +1 -1
  26. package/src/docs/versioned/next/how-to/admin-import-prebuilt.md +1 -1
  27. package/src/docs/versioned/next/how-to/charts-and-dashboards.md +5 -0
  28. package/src/docs/versioned/next/how-to/circleci.md +4 -3
  29. package/src/docs/versioned/next/how-to/compare-chart-rendered-snapshots.md +8 -0
  30. package/src/docs/versioned/next/how-to/install-agent-skills.md +1 -1
  31. package/src/docs/versioned/next/implementationPlans/ai-observability.md +1 -1
  32. package/src/docs/versioned/next/implementationPlans/b2b-platform-program.md +1 -1
  33. package/src/docs/versioned/next/implementationPlans/charts-and-dashboards.md +3 -2
  34. package/src/docs/versioned/next/implementationPlans/dashboard-chart-parity.md +275 -0
  35. package/src/docs/versioned/next/reference/ai.md +39 -10
  36. package/src/docs/versioned/next/reference/environment-variables.md +1 -1
  37. package/src/docs/versioned/next/reference/feature-flags.md +1 -1
  38. package/src/docs/versioned/next/reference/ui.md +94 -11
  39. package/src/docs/versioned/next/tasks/dashboard-chart-parity.md +145 -0
@@ -0,0 +1,145 @@
1
+ # Tasks: Dashboard chart parity
2
+
3
+ IP: [dashboard-chart-parity.md](../implementationPlans/dashboard-chart-parity.md)
4
+ **Follows:** https://github.com/TerrenoLabs/terreno/issues/1175
5
+ **Roadmap issue:** set after IP approval
6
+
7
+ **Feature profile:** false (full IP)
8
+
9
+ ## Phase 1 — Tracer (scorecard)
10
+
11
+ - [x] **Task 1.1**: `SparklineChart` + dotted `comparisonData`
12
+ - Delivers: public plot-only sparkline; solid current series; dotted comparison aligned on `label`; no axes/grid/legend/tooltip row; empty input does not throw
13
+ - Files: `ui/src/SparklineChart.tsx`, `ui/src/SparklineChart.test.tsx`, `ui/src/charts/paths.ts` (reuse line path), `ui/src/Common.ts` (TypeDoc props), `ui/src/index.tsx` / `heavyOptionalExports.tsx`
14
+ - Blocked by: none
15
+ - Skills: `terreno-ui`, `update-docs`
16
+ - Docs: stub `SparklineChart` on `docs/reference/ui.md` Display list
17
+ - Acceptance: bun tests — N points → path present; comparison path present when `comparisonData` set; empty data shows nothing / emptyText if provided; `ui` compile green
18
+
19
+ - [x] **Task 1.2**: `Scorecard` + `ChartCard`
20
+ - Delivers: KPI tile with title, formatted value, optional sparkline; `ChartCard` with title, period badge, optional `onPeriodPress`, optional `filterSummary`
21
+ - Files: `ui/src/Scorecard.tsx`, `ui/src/Scorecard.test.tsx`, `ui/src/ChartCard.tsx`, `ui/src/ChartCard.test.tsx`, lazy exports
22
+ - Blocked by: 1.1
23
+ - Skills: `terreno-ui`, `verify-ui-changes`, `update-docs`
24
+ - Docs: stub both on `docs/reference/ui.md`
25
+ - Acceptance: bun tests — value + title render; sparkline mounts when `sparklineData` set; badge press fires; period badge has no press handler when `onPeriodPress` omitted
26
+
27
+ - [x] **Task 1.3**: Scorecard demo + first golden
28
+ - Delivers: demo story; gallery fixture `scorecard-sparkline-comparison` (five KPI tiles, static data); PNG golden
29
+ - Files: `demo/stories/Scorecard.stories.tsx`, `demo/stories/ChartCard.stories.tsx`, `demo/demoConfig.tsx`, `demo/chartVisual/fixtureCatalog.ts`, `demo/chartVisual/fixtures.tsx`, `demo/rendered-snapshots/scorecard-sparkline-comparison.png`
30
+ - Blocked by: 1.2
31
+ - Skills: `terreno-ui`, `review-chart-visuals`, `verify-ui-changes`
32
+ - Docs: `docs/how-to/compare-chart-rendered-snapshots.md` lists the new id
33
+ - Acceptance: fixture catalog test includes the id; `bun run ui:charts:compare` green for it; story registered
34
+
35
+ ## Phase 2 — Cartesian additive facades
36
+
37
+ - [x] **Task 2.1**: `series` + `comparisonData` on `LineChart` / `AreaChart`
38
+ - Delivers: multi-series lines from `series`; single `data` still works; dotted comparison overlay; per-series legend; markers stay
39
+ - Files: `ui/src/LineChart.tsx`, `ui/src/AreaChart.tsx`, matching tests, `ui/src/charts/scales.ts` (shared x domain across series)
40
+ - Blocked by: 1.2
41
+ - Skills: `terreno-ui`, `update-docs`
42
+ - Docs: `docs/reference/ui.md` Line/Area props
43
+ - Acceptance: bun tests — three `series` → three paths + three legend labels; `{label,value}[]` only still draws one series; comparison path exists when set
44
+
45
+ - [x] **Task 2.2**: `xTickPolicy` + bar comparison + header shortcuts
46
+ - Delivers: `"auto"` rotates when labels would truncate, stays horizontal for ≤7 categories; `BarChart` accepts `series` (grouped later if >1 — this slice: first series only unless a second is comparison) and `comparisonData`; `title` / `periodLabel` / `onPeriodPress` on cartesian facades
47
+ - Files: `ui/src/BarChart.tsx`, `ui/src/LineChart.tsx`, `ui/src/charts/layout.ts`, `ui/src/BarChart.test.tsx`, `ui/src/LineChart.test.tsx`
48
+ - Blocked by: 2.1
49
+ - Skills: `terreno-ui`
50
+ - Docs: tick policy in `docs/explanation/charts.md`
51
+ - Acceptance: bun tests — 14 long date labels with `auto` → rotated tick style; 7 weekday labels stay horizontal; facade title renders when set and `ChartCard` is not wrapping (documented exclusive use)
52
+
53
+ - [x] **Task 2.3**: Cartesian goldens
54
+ - Delivers: fixtures `bar-time-rotated-ticks`, `line-three-series`, `bar-day-of-week`
55
+ - Files: `demo/chartVisual/**`, `demo/rendered-snapshots/*.png`
56
+ - Blocked by: 2.2
57
+ - Skills: `review-chart-visuals`, `verify-ui-changes`
58
+ - Docs: compare-how-to fixture table
59
+ - Acceptance: `bun run ui:charts:compare` green for the three ids
60
+
61
+ ## Phase 3 — Donut center and share legend
62
+
63
+ - [x] **Task 3.1**: Donut hole + percent legend
64
+ - Delivers: `centerTitle`, `centerValue`; legend `swatch + label + formatShare` (default percent of total); 100% single-slice still draws a ring + center
65
+ - Files: `ui/src/DonutChart.tsx`, `ui/src/DonutChart.test.tsx`
66
+ - Blocked by: 1.2
67
+ - Skills: `terreno-ui`, `update-docs`
68
+ - Docs: `docs/reference/ui.md` Donut props
69
+ - Acceptance: bun tests — center copy present; legend includes `%`; one-slice data still has one path; existing slice color override still works
70
+
71
+ - [x] **Task 3.2**: Donut goldens
72
+ - Delivers: `donut-center-and-share`, `donut-single-slice`
73
+ - Files: `demo/chartVisual/**`, goldens
74
+ - Blocked by: 3.1
75
+ - Skills: `review-chart-visuals`
76
+ - Docs: compare-how-to
77
+ - Acceptance: compare green for both ids
78
+
79
+ ## Phase 4 — Spanning grid
80
+
81
+ - [x] **Task 4.1**: `DashboardGridItem` spans
82
+ - Delivers: eager `DashboardGridItem` with `span` per breakpoint; default span 1; children without a wrapper keep current equal-column behavior
83
+ - Files: `ui/src/DashboardGrid.tsx` and/or `ui/src/DashboardGridItem.tsx`, `ui/src/DashboardGrid.test.tsx`, `ui/src/index.tsx` (eager)
84
+ - Blocked by: 1.2
85
+ - Skills: `terreno-ui`, `update-docs`
86
+ - Docs: `docs/reference/ui.md` Layout
87
+ - Acceptance: bun tests — span 2 in a 4-column row yields ~2× cell width minus gap; unwrapped children still fill 1 column
88
+
89
+ - [ ] **Task 4.2**: `hows-it-going-dashboard` chart composition
90
+ - Delivers: hard fixture matching the reference layout (5 scorecards, cost/conv bar, 3-line imp share, DOW bar, two donuts). Table slot may be a `ChartCard` placeholder until 5.2
91
+ - Files: `demo/chartVisual/fixtures.tsx`, `fixtureCatalog.ts`, golden
92
+ - Blocked by: 2.3, 3.2, 4.1
93
+ - Skills: `review-chart-visuals`, `verify-ui-changes`
94
+ - Docs: how-to example rewritten to this composition
95
+ - Acceptance: compare green; fixture uses `Scorecard` / `ChartCard` / `DashboardGridItem`, not ad-hoc `Box` widths only
96
+
97
+ ## Phase 5 — Table chrome
98
+
99
+ - [ ] **Task 5.1**: Header groups, footer rows, range status, wrapLines
100
+ - Delivers: `headerGroups` second header row; `footerRows` sticky totals; range copy `start–end of total` with existing pagination; `wrapLines={2}` wraps cell text inside `rowHeight` (virtualization unchanged)
101
+ - Files: `ui/src/DataTable.tsx`, `ui/src/DataTable.test.tsx`, `ui/src/Pagination.tsx` (if range lives there), `ui/src/Common.ts`
102
+ - Blocked by: 4.1
103
+ - Skills: `terreno-ui`, `update-docs`
104
+ - Docs: `docs/reference/ui.md` DataTable; pointer from charts how-to
105
+ - Acceptance: bun tests — grouped header text visible; footer row present; range text `1–50 of 452` with page 1 size 50 total 452; pinned column scroll still syncs with groups/footer; wrapLines 2 does not change `rowHeight`
106
+
107
+ - [ ] **Task 5.2**: Table card in the hard fixture
108
+ - Delivers: one `ChartCard` + `DataTable` in `hows-it-going-dashboard` (Search Terms or Ad Group Check-in static rows, totals, period headers)
109
+ - Files: `demo/chartVisual/fixtures.tsx`, update golden
110
+ - Blocked by: 5.1, 4.2
111
+ - Skills: `review-chart-visuals`, `verify-ui-changes`
112
+ - Docs: how-to shows table in the same grid
113
+ - Acceptance: compare green after intentional golden update; wrapped first-column names visible in the PNG
114
+
115
+ ## Phase 6 — Packaging and docs
116
+
117
+ - [ ] **Task 6.1**: Lazy root + import regression
118
+ - Delivers: `Scorecard`, `SparklineChart`, `ChartCard`, chart facades stay on `heavyOptionalExports`; `DashboardGrid` / `DashboardGridItem` eager; root import does not evaluate chart files
119
+ - Files: `ui/src/lazyBoundaries/heavyOptionalExports.tsx`, `ui/src/index.tsx`, `ui/src/RootImportRegression.test.tsx`, `docs/reference/ui-performance.md`
120
+ - Blocked by: 4.1, 5.1, 2.1, 3.1
121
+ - Skills: `terreno-ui`, `update-docs`
122
+ - Docs: performance page lists new lazy exports
123
+ - Acceptance: `RootImportRegression` fails if new chart files load with the root import; subpath imports work
124
+
125
+ - [ ] **Task 6.2**: Diátaxis + changelog + rules
126
+ - Delivers: how-to rewritten for easy-build composition; explanation covers scorecard, comparison stroke, additive facades vs grammar; reference complete; changelog fragment; ui rule export list; TypeDoc
127
+ - Files: `docs/how-to/charts-and-dashboards.md`, `docs/explanation/charts.md`, `docs/reference/ui.md`, `docs/how-to/README.md`, `.rulesync/rules/ui/00-ui.mdc`, `changelog/unreleased/dashboard-chart-parity.md`; `bun run website:generate` if needed
128
+ - Blocked by: 6.1, 5.2
129
+ - Skills: `update-docs`, `docs-audit`, `terreno-ui`
130
+ - Docs: the files listed above
131
+ - Acceptance: a stranger can copy the how-to into a screen that resembles the reference; explanation states grammar is not required; changelog `category: Added`; existing single-series how-to steps still valid as a subset
132
+
133
+ ## Verification mapping
134
+
135
+ | Criterion | Method |
136
+ |-----------|--------|
137
+ | Scorecard + sparkline + comparison | bun tests + `scorecard-sparkline-comparison` PNG |
138
+ | Multi-series line | bun tests + `line-three-series` PNG |
139
+ | Rotated vs horizontal ticks | bun tests + `bar-time-rotated-ticks` / `bar-day-of-week` |
140
+ | Donut center + share | bun tests + donut goldens |
141
+ | Grid spans + reference layout | `hows-it-going-dashboard` PNG + grid unit tests |
142
+ | Table chrome | bun tests + table region of hard golden |
143
+ | Facade compatibility | existing `*Chart.test.tsx` stay green |
144
+ | Lazy charts | `RootImportRegression` |
145
+ | Frontend proof | `verify-ui-changes` on demo gallery; artifacts on the implementation PR |