feat: fold dasha periods and redraw the western wheel

The dasha tab leads with a now card and a duration bar, and keeps sub-periods inside the current details element. A zero-year Chara row stays grey, shows 0 年, and cannot expand. The tropical wheel uses a 520 view box, element bands, separated planet labels, and aspect lines that stay visible while a selected body is highlighted.
This commit is contained in:
jesse-ux
2026-09-25 03:01:48 +08:00
parent c2030a4f36
commit 5a2d9da985
17 changed files with 1305 additions and 104 deletions
+3
View File
@@ -213,6 +213,9 @@ export const chartViewOkSchema = z.object({
planets: z.array(chartViewPlanetRowSchema).min(1),
}),
dasha: z.object({
// The day the current flags were computed against. The dasha tab uses it
// for the "现在" card and the timeline cursor. It is not an engine field.
asOf: isoDate,
vimshottari: chartViewDashaTrackSchema,
chara: chartViewDashaTrackSchema,
dualTrackNote: z.string().min(1),
+1
View File
@@ -695,6 +695,7 @@ export function buildChartView(bundle: ChartViewEngineBundle): ChartViewOk {
planets: planetRows(chart, varga),
},
dasha: {
asOf: isoDay(asOf),
vimshottari,
chara: charaMapped,
dualTrackNote: DASHA_DUAL_TRACK_NOTE,