@pandacss/eslint-plugin 0.1.10 → 0.1.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -7957,7 +7957,7 @@ init_cjs_shims();
7957
7957
 
7958
7958
  // package.json
7959
7959
  var name = "@pandacss/eslint-plugin";
7960
- var version = "0.1.10";
7960
+ var version = "0.1.12";
7961
7961
 
7962
7962
  // src/configs/all.ts
7963
7963
  init_cjs_shims();
@@ -7999,6 +7999,7 @@ var import_utils2 = require("@typescript-eslint/utils");
7999
7999
  var isIdentifier = (0, import_ast_utils.isNodeOfType)(import_utils2.AST_NODE_TYPES.Identifier);
8000
8000
  var isLiteral = (0, import_ast_utils.isNodeOfType)(import_utils2.AST_NODE_TYPES.Literal);
8001
8001
  var isTemplateLiteral = (0, import_ast_utils.isNodeOfType)(import_utils2.AST_NODE_TYPES.TemplateLiteral);
8002
+ var isArrayExpression = (0, import_ast_utils.isNodeOfType)(import_utils2.AST_NODE_TYPES.ArrayExpression);
8002
8003
  var isObjectExpression = (0, import_ast_utils.isNodeOfType)(import_utils2.AST_NODE_TYPES.ObjectExpression);
8003
8004
  var isMemberExpression = (0, import_ast_utils.isNodeOfType)(import_utils2.AST_NODE_TYPES.MemberExpression);
8004
8005
  var isVariableDeclarator = (0, import_ast_utils.isNodeOfType)(import_utils2.AST_NODE_TYPES.VariableDeclarator);
@@ -8437,7 +8438,9 @@ var rule4 = createRule({
8437
8438
  description: "Ensure user doesn't use dynamic styling at any point. \nPrefer to use static styles, leverage css variables or recipes for known dynamic styles."
8438
8439
  },
8439
8440
  messages: {
8440
- dynamic: "Remove dynamic value. Prefer static styles"
8441
+ dynamic: "Remove dynamic value. Prefer static styles",
8442
+ dynamicProperty: "Remove dynamic property. Prefer static style property",
8443
+ dynamicRecipeVariant: "Remove dynamic variant. Prefer static variant definition"
8441
8444
  },
8442
8445
  type: "suggestion",
8443
8446
  schema: []
@@ -8456,6 +8459,9 @@ var rule4 = createRule({
8456
8459
  return;
8457
8460
  if (isObjectExpression(node.value.expression))
8458
8461
  return;
8462
+ if (isArrayExpression(node.value.expression)) {
8463
+ return checkElements(node.value.expression, context);
8464
+ }
8459
8465
  if (!isPandaProp(node, context))
8460
8466
  return;
8461
8467
  context.report({
@@ -8463,6 +8469,15 @@ var rule4 = createRule({
8463
8469
  messageId: "dynamic"
8464
8470
  });
8465
8471
  },
8472
+ // Dynamic properties
8473
+ "Property[computed=true]"(node) {
8474
+ if (!isInPandaFunction(node, context))
8475
+ return;
8476
+ context.report({
8477
+ node: node.key,
8478
+ messageId: isRecipeVariant(node, context) ? "dynamicRecipeVariant" : "dynamicProperty"
8479
+ });
8480
+ },
8466
8481
  Property(node) {
8467
8482
  if (!isIdentifier(node.key))
8468
8483
  return;
@@ -8472,6 +8487,9 @@ var rule4 = createRule({
8472
8487
  return;
8473
8488
  if (isObjectExpression(node.value))
8474
8489
  return;
8490
+ if (isArrayExpression(node.value)) {
8491
+ return checkElements(node.value, context);
8492
+ }
8475
8493
  if (!isPandaAttribute(node, context))
8476
8494
  return;
8477
8495
  context.report({
@@ -8482,6 +8500,20 @@ var rule4 = createRule({
8482
8500
  };
8483
8501
  }
8484
8502
  });
8503
+ function checkElements(array, context) {
8504
+ array.elements.forEach((node) => {
8505
+ if (!node)
8506
+ return;
8507
+ if (isLiteral(node))
8508
+ return;
8509
+ if (isTemplateLiteral(node) && node.expressions.length === 0)
8510
+ return;
8511
+ context.report({
8512
+ node,
8513
+ messageId: "dynamic"
8514
+ });
8515
+ });
8516
+ }
8485
8517
  var no_dynamic_styling_default = rule4;
8486
8518
 
8487
8519
  // src/rules/no-escape-hatch.ts
package/dist/index.mjs CHANGED
@@ -10,7 +10,7 @@ var name, version;
10
10
  var init_package = __esm({
11
11
  "package.json"() {
12
12
  name = "@pandacss/eslint-plugin";
13
- version = "0.1.10";
13
+ version = "0.1.12";
14
14
  }
15
15
  });
16
16
 
@@ -7957,7 +7957,7 @@ var require_dist3 = __commonJS({
7957
7957
  // src/utils/nodes.ts
7958
7958
  import { isNodeOfType } from "@typescript-eslint/utils/ast-utils";
7959
7959
  import { AST_NODE_TYPES } from "@typescript-eslint/utils";
7960
- var isIdentifier, isLiteral, isTemplateLiteral, isObjectExpression, isMemberExpression, isVariableDeclarator, isVariableDeclaration, isJSXMemberExpression, isJSXOpeningElement, isJSXExpressionContainer, isJSXAttribute, isJSXIdentifier, isCallExpression, isImportDeclaration, isImportSpecifier, isProperty;
7960
+ var isIdentifier, isLiteral, isTemplateLiteral, isArrayExpression, isObjectExpression, isMemberExpression, isVariableDeclarator, isVariableDeclaration, isJSXMemberExpression, isJSXOpeningElement, isJSXExpressionContainer, isJSXAttribute, isJSXIdentifier, isCallExpression, isImportDeclaration, isImportSpecifier, isProperty;
7961
7961
  var init_nodes = __esm({
7962
7962
  "src/utils/nodes.ts"() {
7963
7963
  "use strict";
@@ -7965,6 +7965,7 @@ var init_nodes = __esm({
7965
7965
  isIdentifier = isNodeOfType(AST_NODE_TYPES.Identifier);
7966
7966
  isLiteral = isNodeOfType(AST_NODE_TYPES.Literal);
7967
7967
  isTemplateLiteral = isNodeOfType(AST_NODE_TYPES.TemplateLiteral);
7968
+ isArrayExpression = isNodeOfType(AST_NODE_TYPES.ArrayExpression);
7968
7969
  isObjectExpression = isNodeOfType(AST_NODE_TYPES.ObjectExpression);
7969
7970
  isMemberExpression = isNodeOfType(AST_NODE_TYPES.MemberExpression);
7970
7971
  isVariableDeclarator = isNodeOfType(AST_NODE_TYPES.VariableDeclarator);
@@ -8433,6 +8434,20 @@ var init_no_debug = __esm({
8433
8434
  });
8434
8435
 
8435
8436
  // src/rules/no-dynamic-styling.ts
8437
+ function checkElements(array, context) {
8438
+ array.elements.forEach((node) => {
8439
+ if (!node)
8440
+ return;
8441
+ if (isLiteral(node))
8442
+ return;
8443
+ if (isTemplateLiteral(node) && node.expressions.length === 0)
8444
+ return;
8445
+ context.report({
8446
+ node,
8447
+ messageId: "dynamic"
8448
+ });
8449
+ });
8450
+ }
8436
8451
  var RULE_NAME4, rule4, no_dynamic_styling_default;
8437
8452
  var init_no_dynamic_styling = __esm({
8438
8453
  "src/rules/no-dynamic-styling.ts"() {
@@ -8449,7 +8464,9 @@ var init_no_dynamic_styling = __esm({
8449
8464
  description: "Ensure user doesn't use dynamic styling at any point. \nPrefer to use static styles, leverage css variables or recipes for known dynamic styles."
8450
8465
  },
8451
8466
  messages: {
8452
- dynamic: "Remove dynamic value. Prefer static styles"
8467
+ dynamic: "Remove dynamic value. Prefer static styles",
8468
+ dynamicProperty: "Remove dynamic property. Prefer static style property",
8469
+ dynamicRecipeVariant: "Remove dynamic variant. Prefer static variant definition"
8453
8470
  },
8454
8471
  type: "suggestion",
8455
8472
  schema: []
@@ -8468,6 +8485,9 @@ var init_no_dynamic_styling = __esm({
8468
8485
  return;
8469
8486
  if (isObjectExpression(node.value.expression))
8470
8487
  return;
8488
+ if (isArrayExpression(node.value.expression)) {
8489
+ return checkElements(node.value.expression, context);
8490
+ }
8471
8491
  if (!isPandaProp(node, context))
8472
8492
  return;
8473
8493
  context.report({
@@ -8475,6 +8495,15 @@ var init_no_dynamic_styling = __esm({
8475
8495
  messageId: "dynamic"
8476
8496
  });
8477
8497
  },
8498
+ // Dynamic properties
8499
+ "Property[computed=true]"(node) {
8500
+ if (!isInPandaFunction(node, context))
8501
+ return;
8502
+ context.report({
8503
+ node: node.key,
8504
+ messageId: isRecipeVariant(node, context) ? "dynamicRecipeVariant" : "dynamicProperty"
8505
+ });
8506
+ },
8478
8507
  Property(node) {
8479
8508
  if (!isIdentifier(node.key))
8480
8509
  return;
@@ -8484,6 +8513,9 @@ var init_no_dynamic_styling = __esm({
8484
8513
  return;
8485
8514
  if (isObjectExpression(node.value))
8486
8515
  return;
8516
+ if (isArrayExpression(node.value)) {
8517
+ return checkElements(node.value, context);
8518
+ }
8487
8519
  if (!isPandaAttribute(node, context))
8488
8520
  return;
8489
8521
  context.report({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pandacss/eslint-plugin",
3
- "version": "0.1.10",
3
+ "version": "0.1.12",
4
4
  "description": "Eslint plugin for Panda CSS",
5
5
  "author": "Abraham Aremu <anubra266@gmail.com>",
6
6
  "main": "dist/index.js",