{"version":3,"file":"logicalPropertiesLinter.mjs","sources":["../../../../../../packages/theme/cssinjs/linters/logicalPropertiesLinter.ts"],"sourcesContent":["import type { Linter } from './interface';\nimport { lintWarning } from './utils';\n\nconst linter: Linter = (key, value, info) => {\n  switch (key) {\n    case 'marginLeft':\n    case 'marginRight':\n    case 'paddingLeft':\n    case 'paddingRight':\n    case 'left':\n    case 'right':\n    case 'borderLeft':\n    case 'borderLeftWidth':\n    case 'borderLeftStyle':\n    case 'borderLeftColor':\n    case 'borderRight':\n    case 'borderRightWidth':\n    case 'borderRightStyle':\n    case 'borderRightColor':\n    case 'borderTopLeftRadius':\n    case 'borderTopRightRadius':\n    case 'borderBottomLeftRadius':\n    case 'borderBottomRightRadius':\n      lintWarning(\n        `You seem to be using non-logical property '${key}' which is not compatible with RTL mode. Please use logical properties and values instead. For more information: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Logical_Properties.`,\n        info,\n      );\n      return;\n    case 'margin':\n    case 'padding':\n    case 'borderWidth':\n    case 'borderStyle':\n      // case 'borderColor':\n      if (typeof value === 'string') {\n        const valueArr = value.split(' ').map(item => item.trim());\n        if (valueArr.length === 4 && valueArr[1] !== valueArr[3]) {\n          lintWarning(\n            `You seem to be using '${key}' property with different left ${key} and right ${key}, which is not compatible with RTL mode. Please use logical properties and values instead. For more information: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Logical_Properties.`,\n            info,\n          );\n        }\n      }\n      return;\n    case 'clear':\n    case 'textAlign':\n      if (value === 'left' || value === 'right') {\n        lintWarning(\n          `You seem to be using non-logical value '${value}' of ${key}, which is not compatible with RTL mode. Please use logical properties and values instead. For more information: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Logical_Properties.`,\n          info,\n        );\n      }\n      return;\n    case 'borderRadius':\n      if (typeof value === 'string') {\n        const radiusGroups = value.split('/').map(item => item.trim());\n        const invalid = radiusGroups.reduce((result, group) => {\n          if (result)\n            return result;\n\n          const radiusArr = group.split(' ').map(item => item.trim());\n          // borderRadius: '2px 4px'\n          if (radiusArr.length >= 2 && radiusArr[0] !== radiusArr[1])\n            return true;\n\n          // borderRadius: '4px 4px 2px'\n          if (radiusArr.length === 3 && radiusArr[1] !== radiusArr[2])\n            return true;\n\n          // borderRadius: '4px 4px 2px 4px'\n          if (radiusArr.length === 4 && radiusArr[2] !== radiusArr[3])\n            return true;\n\n          return result;\n        }, false);\n\n        if (invalid) {\n          lintWarning(\n            `You seem to be using non-logical value '${value}' of ${key}, which is not compatible with RTL mode. Please use logical properties and values instead. For more information: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Logical_Properties.`,\n            info,\n          );\n        }\n      }\n      break;\n    default:\n  }\n};\n\nexport default linter;\n"],"names":[],"mappings":"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"}