@yamada-ui/react
Version:
React UI components of the Yamada, by the Yamada, for the Yamada built with React and Emotion
1 lines • 3.67 kB
Source Map (JSON)
{"version":3,"file":"animation.cjs","names":["StyleSheet","value","globalValues","tokenToVar"],"sources":["../../../../src/core/css/animation.ts"],"sourcesContent":["\"use client\"\n\nimport type { Dict } from \"../../utils\"\nimport type { TransformOptions } from \"./utils\"\nimport { keyframes as emotionKeyframes } from \"@emotion/react\"\nimport { StyleSheet } from \"@emotion/sheet\"\nimport { createdDom, isObject } from \"../../utils\"\nimport { globalValues, tokenToVar } from \"./utils\"\n\nconst styleSheet = createdDom()\n ? new StyleSheet({ key: \"css\", container: document.head })\n : undefined\n\nfunction transformAnimationValue(value: Dict) {\n return Object.entries(value).reduce<Dict>((prev, [key, value]) => {\n if (key === \"keyframes\") {\n prev._keyframes = value\n } else if (key === \"duration\") {\n prev.animationDuration = value\n } else if (key === \"timingFunction\") {\n prev.animationTimingFunction = value\n } else {\n prev[key] = value\n }\n\n return prev\n }, {})\n}\n\nexport function injectKeyframes(value: any) {\n const { name, styles } = emotionKeyframes(value)\n\n styleSheet?.insert(styles)\n\n return name\n}\n\nexport function animation(\n value: any,\n { css, system, theme }: TransformOptions,\n) {\n if (value == null || globalValues.has(value)) return value\n\n if (isObject(value)) {\n const {\n animationDuration = \"0s\",\n animationName,\n animationTimingFunction = \"ease\",\n delay = \"0s\",\n direction = \"normal\",\n fillMode = \"none\",\n iterationCount = \"1\",\n playState = \"running\",\n } = css?.(system, theme)(transformAnimationValue(value)) ?? {}\n\n return `${animationName} ${animationDuration} ${animationTimingFunction} ${delay} ${iterationCount} ${direction} ${fillMode} ${playState}`\n } else if (value.includes(\",\")) {\n value = value\n .split(\",\")\n .map((value: string) => {\n value = value.trim()\n\n value = tokenToVar(system)(\"animations\", value)\n\n return value\n })\n .join(\",\")\n\n return value\n } else {\n value = tokenToVar(system)(\"animations\", value)\n\n return value\n }\n}\n\nexport function keyframes(\n value: any,\n { css, system, theme }: TransformOptions,\n) {\n if (value == null) return value\n\n if (isObject(value)) {\n value = css?.(system, theme)(value)\n\n const name = injectKeyframes(value)\n\n return name\n } else {\n return value\n }\n}\n"],"mappings":";;;;;;;;;;;;AASA,MAAM,gEAAyB,GAC3B,IAAIA,2BAAW;CAAE,KAAK;CAAO,WAAW,SAAS;CAAM,CAAC,GACxD;AAEJ,SAAS,wBAAwB,OAAa;AAC5C,QAAO,OAAO,QAAQ,MAAM,CAAC,QAAc,MAAM,CAAC,KAAKC,aAAW;AAChE,MAAI,QAAQ,YACV,MAAK,aAAaA;WACT,QAAQ,WACjB,MAAK,oBAAoBA;WAChB,QAAQ,iBACjB,MAAK,0BAA0BA;MAE/B,MAAK,OAAOA;AAGd,SAAO;IACN,EAAE,CAAC;;AAGR,SAAgB,gBAAgB,OAAY;CAC1C,MAAM,EAAE,MAAM,0CAA4B,MAAM;AAEhD,aAAY,OAAO,OAAO;AAE1B,QAAO;;AAGT,SAAgB,UACd,OACA,EAAE,KAAK,QAAQ,SACf;AACA,KAAI,SAAS,QAAQC,2BAAa,IAAI,MAAM,CAAE,QAAO;AAErD,qDAAa,MAAM,EAAE;EACnB,MAAM,EACJ,oBAAoB,MACpB,eACA,0BAA0B,QAC1B,QAAQ,MACR,YAAY,UACZ,WAAW,QACX,iBAAiB,KACjB,YAAY,cACV,MAAM,QAAQ,MAAM,CAAC,wBAAwB,MAAM,CAAC,IAAI,EAAE;AAE9D,SAAO,GAAG,cAAc,GAAG,kBAAkB,GAAG,wBAAwB,GAAG,MAAM,GAAG,eAAe,GAAG,UAAU,GAAG,SAAS,GAAG;YACtH,MAAM,SAAS,IAAI,EAAE;AAC9B,UAAQ,MACL,MAAM,IAAI,CACV,KAAK,YAAkB;AACtB,aAAQD,QAAM,MAAM;AAEpB,aAAQE,yBAAW,OAAO,CAAC,cAAcF,QAAM;AAE/C,UAAOA;IACP,CACD,KAAK,IAAI;AAEZ,SAAO;QACF;AACL,UAAQE,yBAAW,OAAO,CAAC,cAAc,MAAM;AAE/C,SAAO;;;AAIX,SAAgB,UACd,OACA,EAAE,KAAK,QAAQ,SACf;AACA,KAAI,SAAS,KAAM,QAAO;AAE1B,qDAAa,MAAM,EAAE;AACnB,UAAQ,MAAM,QAAQ,MAAM,CAAC,MAAM;AAInC,SAFa,gBAAgB,MAAM;OAInC,QAAO"}