File tree Expand file tree Collapse file tree 1 file changed +26
-6
lines changed
packages/cli/src/utils/updaters Expand file tree Collapse file tree 1 file changed +26
-6
lines changed Original file line number Diff line number Diff line change @@ -268,13 +268,33 @@ function updateCssPlugin(css: z.infer<typeof registryItemCssSchema>) {
268268 )
269269 }
270270
271- const keyframesRule = postcss . atRule ( {
272- name : 'keyframes' ,
273- params,
274- raws : { semicolon : true , between : ' ' , before : '\n ' } ,
275- } )
271+ // Check if a keyframe with the same name already exists
272+ const existingKeyframesRule = themeInline . nodes ?. find (
273+ ( node ) : node is AtRule =>
274+ node . type === 'atrule'
275+ && node . name === 'keyframes'
276+ && node . params === params ,
277+ )
276278
277- themeInline . append ( keyframesRule )
279+ let keyframesRule : AtRule
280+ if ( existingKeyframesRule ) {
281+ // Replace existing keyframe
282+ keyframesRule = postcss . atRule ( {
283+ name : 'keyframes' ,
284+ params,
285+ raws : { semicolon : true , between : ' ' , before : '\n ' } ,
286+ } )
287+ existingKeyframesRule . replaceWith ( keyframesRule )
288+ }
289+ else {
290+ // Create new keyframe
291+ keyframesRule = postcss . atRule ( {
292+ name : 'keyframes' ,
293+ params,
294+ raws : { semicolon : true , between : ' ' , before : '\n ' } ,
295+ } )
296+ themeInline . append ( keyframesRule )
297+ }
278298
279299 if ( typeof properties === 'object' ) {
280300 for ( const [ step , stepProps ] of Object . entries ( properties ) ) {
You can’t perform that action at this time.
0 commit comments