HEX
Server: Apache
System: Linux webd004.cluster130.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64
User: frenchy (106757)
PHP: 7.4.33
Disabled: _dyuweyrj4,_dyuweyrj4r,dl
Upload Files
File: /home/frenchy/www/french-american.org/current/node_modules/stylelint/lib/utils/findAnimationName.js
/* @flow */
"use strict";

const getUnitFromValueNode = require("./getUnitFromValueNode");
const isStandardSyntaxValue = require("./isStandardSyntaxValue");
const isVariable = require("./isVariable");
const keywordSets = require("../reference/keywordSets");
const postcssValueParser = require("postcss-value-parser");

/**
 * Get the font-families within a `font` shorthand property value.
 */
module.exports = function findAnimationName(
  value /*: string*/
) /*: Array<Object>*/ {
  const animationNames = [];

  const valueNodes = postcssValueParser(value);

  // Handle `inherit`, `initial` and etc
  if (
    valueNodes.nodes.length === 1 &&
    keywordSets.basicKeywords.has(valueNodes.nodes[0].value.toLowerCase())
  ) {
    return [valueNodes.nodes[0]];
  }

  valueNodes.walk(valueNode => {
    if (valueNode.type === "function") {
      return false;
    }

    if (valueNode.type !== "word") {
      return;
    }

    const valueLowerCase = valueNode.value.toLowerCase();

    // Ignore non standard syntax
    if (!isStandardSyntaxValue(valueLowerCase)) {
      return;
    }

    // Ignore variables
    if (isVariable(valueLowerCase)) {
      return;
    }

    // Ignore keywords for other font parts
    if (keywordSets.animationShorthandKeywords.has(valueLowerCase)) {
      return;
    }

    // Ignore numbers with units
    const unit = getUnitFromValueNode(valueNode);

    if (unit || unit === "") {
      return;
    }

    animationNames.push(valueNode);
  });

  return animationNames;
};