--- /** * 热力图网格(可复用渲染件):给 5 个动效方案预览共用,避免把 371 个格子抄五遍。 * * 每格带 `data-c/--c`(列=周)与 `data-r/--r`(行=星期),动效方案靠这两个自定义属性 * 算错峰延迟;`data-l` 是灰阶档(0–4,复用 tokens 的 --ink-1..4)。 * 全部格子 aria-hidden:语义由外层 role="img" + aria-label 概括(371 个 aria 节点是噪音)。 */ import { levelOf, type HeatDay } from '../../lib/heatmap'; interface Props { weeks: HeatDay[][]; /** 网格类型,仅用于选择器命名(不动行为) */ variant: string; /** 单元格错峰延迟基数(ms),0 = 不设延迟 */ step?: number; } const { weeks, variant, step = 0 } = Astro.props; ---
{weeks.map((week, ci) => week.map((day, ri) => (