File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 2727 *
2828 * 副作用:**进程级全局副作用** —— `registerPlugin` 执行后这四个插件对本进程内所有 GSAP 实例可见。
2929 * 测试隔离不受影响(每个测试文件独立环境),但**不得**把本模块当「无副作用工具」在首屏路径上静态引用。
30- * 边界:本模块**只能经 `await import()` 到达**(判据 = 上面那条**闭包交集**,不是白名单);
31- * 凡需要 `useGSAP` 的组件,其自身必须在动态 import 链上。
30+ * 边界:**不许从「首屏静态可达」的模块静态引入本模块**(判据 = 上面那条**闭包交集**,不是白名单);
31+ * **惰性链上的模块静态引入是安全的** —— 旧措辞「本模块**只能经 `await import()` 到达**」是**过宽**的,
32+ * 已按 R60.1 更正 R41.3 的适用范围(先例 ✅:`motion/controls.ts:49` 今天就静态引入本模块,而该件
33+ * ∉ 首屏静态闭包(89 文件)⇒ 守卫绿 —— T35d 用 `engine.guard.test.ts` 自己的仪器实测;这与
34+ * `motion/controls.ts` 头注「使用纪律」是同一条纪律,两处口径一致)。
35+ * 凡需要 `useGSAP` 的组件,其自身必须在**惰性链**上:经 `await import()` 到达,或经惰性视图 /
36+ * 注册表驱动的静态引入到达 —— 两种形态都不产生首屏静态边。
3237 * 本文件不做任何动效编排 —— 时长 / 位移 / 具名 ease 分别归 token 真源、`motion/shift.ts` 与 T8。
3338 */
3439import { useGSAP } from "@gsap/react" ;
Original file line number Diff line number Diff line change 5656 * —— 此时**不出时间轨**(刻度的三个来源全空 ⇒ 轨上无内容可指);
5757 * ② 单轨为空时该轨**照常渲染**(列头在、列内 0 条)—— 「三轨对齐」的语义是「三轨同框」,
5858 * 缺一条轨不等于整块没内容,故**不用**整块空态顶掉(否则用户看不到"哪一轨是空的");
59- * ③ 本件不做虚拟滚动(数据量由容器与产品上限决定;长列表的滚动/密度手感见批 6)。
59+ * ③ 本件不做虚拟滚动(数据量由容器与产品上限决定;全仓 0 处虚拟滚动实现 —— 命中全在这类注释里,零实现);
60+ * 🔴 长列表滚动/密度**手感批 6 未交付**(批 6 计划 `:2540` 列为**仪器不可达**、`:2481` 列入「未交付 / 未验证」;
61+ * 批 7 尚无计划文件)⇒ **去向批 7/8**(T35d 实测)。
6062 */
6163import type { CSSProperties , ReactElement } from "react" ;
6264import { Button , EmptyState , Text } from "../../ui/primitives" ;
You can’t perform that action at this time.
0 commit comments