import { Video, Layout, makeScene2D } from "@motion-canvas/2d"; import { Direction, all, beginSlide, createRef, slideTransition, } from "@motion-canvas/core"; import { PEOPLE, Person, PersonI } from "../components/person"; import { birthdayCardFn, valentineCardFn } from "./generalized"; import { CardI } from "./birthday_letters"; import { FunctionBox } from "../components/function_box"; import curry from "../../public/img/curry.mp4"; export const cardGeneratorsFor = ( person: PersonI, ): ((type: string) => () => CardI) => { const birthdayCardGenerator = () => birthdayCardFn(person); const valentineCardGenerator = () => valentineCardFn(person); const messageType = (type: string) => { switch (type) { case "valentine": return valentineCardGenerator; case "birthday": return birthdayCardGenerator; } throw new Error(type + " not implemented"); }; return messageType; }; export const cardGeneratorsForSource = `const cardGeneratorsFor = (person: PersonI): ((type: string) => () => CardI) => { const birthdayCardGenerator = () => birthdayCardFn(person); const valentineCardGenerator = () => valentineCardFn(person); const generatorForType = (type: string) => { switch (type) { case "valentine": return valentineCardGenerator; case "birthday": return birthdayCardGenerator; } throw new Error(type + " not implemented"); }; return generatorForType; };`; export default makeScene2D(function* (view) { const box = createRef(); const vid = createRef