@salesforce-ux/eslint-plugin-slds 1.0.2 → 1.0.4-internal

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.
Files changed (53) hide show
  1. package/build/index.js +154 -82
  2. package/build/index.js.map +4 -4
  3. package/build/rules/enforce-bem-usage.js +7 -7
  4. package/build/rules/enforce-bem-usage.js.map +4 -4
  5. package/build/rules/modal-close-button-issue.js +2 -2
  6. package/build/rules/modal-close-button-issue.js.map +2 -2
  7. package/build/rules/no-deprecated-classes-slds2.js +4 -4
  8. package/build/rules/no-deprecated-classes-slds2.js.map +3 -3
  9. package/build/rules/v9/enforce-bem-usage.js +4 -4
  10. package/build/rules/v9/enforce-bem-usage.js.map +3 -3
  11. package/build/rules/v9/enforce-component-hook-naming-convention.js +4 -4
  12. package/build/rules/v9/enforce-component-hook-naming-convention.js.map +3 -3
  13. package/build/rules/v9/enforce-sds-to-slds-hooks.js +4 -4
  14. package/build/rules/v9/enforce-sds-to-slds-hooks.js.map +3 -3
  15. package/build/rules/v9/lwc-token-to-slds-hook.js +47 -11
  16. package/build/rules/v9/lwc-token-to-slds-hook.js.map +3 -3
  17. package/build/rules/v9/no-deprecated-slds-classes.js +4 -4
  18. package/build/rules/v9/no-deprecated-slds-classes.js.map +3 -3
  19. package/build/rules/v9/no-deprecated-tokens-slds1.js +4 -4
  20. package/build/rules/v9/no-deprecated-tokens-slds1.js.map +3 -3
  21. package/build/rules/v9/no-hardcoded-values/handlers/boxShadowHandler.js.map +2 -2
  22. package/build/rules/v9/no-hardcoded-values/handlers/colorHandler.js.map +2 -2
  23. package/build/rules/v9/no-hardcoded-values/handlers/densityHandler.js.map +2 -2
  24. package/build/rules/v9/no-hardcoded-values/handlers/fontHandler.js.map +2 -2
  25. package/build/rules/v9/no-hardcoded-values/handlers/index.js.map +2 -2
  26. package/build/rules/v9/no-hardcoded-values/no-hardcoded-values-slds1.js +4 -4
  27. package/build/rules/v9/no-hardcoded-values/no-hardcoded-values-slds1.js.map +3 -3
  28. package/build/rules/v9/no-hardcoded-values/no-hardcoded-values-slds2.js +4 -4
  29. package/build/rules/v9/no-hardcoded-values/no-hardcoded-values-slds2.js.map +3 -3
  30. package/build/rules/v9/no-hardcoded-values/noHardcodedValueRule.js.map +2 -2
  31. package/build/rules/v9/no-slds-class-overrides.js +4 -4
  32. package/build/rules/v9/no-slds-class-overrides.js.map +3 -3
  33. package/build/rules/v9/no-slds-namespace-for-custom-hooks.js +139 -28
  34. package/build/rules/v9/no-slds-namespace-for-custom-hooks.js.map +4 -4
  35. package/build/rules/v9/no-slds-private-var.js +2 -2
  36. package/build/rules/v9/no-slds-private-var.js.map +2 -2
  37. package/build/rules/v9/no-slds-var-without-fallback.js +17 -14
  38. package/build/rules/v9/no-slds-var-without-fallback.js.map +3 -3
  39. package/build/rules/v9/no-sldshook-fallback-for-lwctoken.js +4 -4
  40. package/build/rules/v9/no-sldshook-fallback-for-lwctoken.js.map +3 -3
  41. package/build/rules/v9/no-unsupported-hooks-slds2.js +4 -4
  42. package/build/rules/v9/no-unsupported-hooks-slds2.js.map +3 -3
  43. package/build/rules/v9/reduce-annotations.js +2 -2
  44. package/build/rules/v9/reduce-annotations.js.map +2 -2
  45. package/build/src/utils/css-utils.d.ts +6 -0
  46. package/build/types/index.js.map +1 -1
  47. package/build/utils/boxShadowValueParser.js.map +1 -1
  48. package/build/utils/color-lib-utils.js.map +1 -1
  49. package/build/utils/css-utils.js +24 -10
  50. package/build/utils/css-utils.js.map +2 -2
  51. package/build/utils/hardcoded-shared-utils.js.map +1 -1
  52. package/build/utils/styling-hook-utils.js.map +1 -1
  53. package/package.json +2 -2
package/build/index.js CHANGED
@@ -45,9 +45,9 @@ var init_node = __esm({
45
45
  }
46
46
  });
47
47
 
48
- // yaml-file:/Users/ritesh.kumar2/Documents/projects/stylelint-sds/packages/eslint-plugin-slds/src/config/rule-messages.yml
48
+ // yaml-file:rule-messages.yml
49
49
  var require_rule_messages = __commonJS({
50
- "yaml-file:/Users/ritesh.kumar2/Documents/projects/stylelint-sds/packages/eslint-plugin-slds/src/config/rule-messages.yml"(exports2, module2) {
50
+ "yaml-file:rule-messages.yml"(exports2, module2) {
51
51
  module2.exports = {
52
52
  "no-slds-class-overrides": {
53
53
  "description": "Create new custom CSS classes instead of overriding SLDS selectors",
@@ -203,13 +203,13 @@ var require_rule_messages = __commonJS({
203
203
  });
204
204
 
205
205
  // src/rules/v9/enforce-bem-usage.ts
206
- var import_sds_metadata, import_rule_messages, type, description, url, messages, bemMapping, enforce_bem_usage_default;
206
+ var import_next, import_rule_messages, type, description, url, messages, bemMapping, enforce_bem_usage_default;
207
207
  var init_enforce_bem_usage = __esm({
208
208
  "src/rules/v9/enforce-bem-usage.ts"() {
209
- import_sds_metadata = __toESM(require("@salesforce-ux/sds-metadata"));
209
+ import_next = __toESM(require("@salesforce-ux/sds-metadata/next"));
210
210
  import_rule_messages = __toESM(require_rule_messages());
211
211
  ({ type, description, url, messages } = import_rule_messages.default["enforce-bem-usage"]);
212
- bemMapping = import_sds_metadata.default.bemNaming;
212
+ bemMapping = import_next.default.bemNaming;
213
213
  enforce_bem_usage_default = {
214
214
  meta: {
215
215
  type,
@@ -254,11 +254,11 @@ var init_enforce_bem_usage = __esm({
254
254
  var require_enforce_bem_usage = __commonJS({
255
255
  "src/rules/enforce-bem-usage.ts"(exports2, module2) {
256
256
  init_node();
257
- var import_sds_metadata14 = __toESM(require("@salesforce-ux/sds-metadata"));
257
+ var import_next14 = __toESM(require("@salesforce-ux/sds-metadata/next"));
258
258
  var import_rule_messages16 = __toESM(require_rule_messages());
259
259
  init_enforce_bem_usage();
260
- var bemMapping2 = import_sds_metadata14.default.bemNaming;
261
- var deprecatedClasses2 = import_sds_metadata14.default.deprecatedClasses;
260
+ var bemMapping2 = import_next14.default.bemNaming;
261
+ var deprecatedClasses2 = import_next14.default.deprecatedClasses;
262
262
  var ruleConfig14 = import_rule_messages16.default["enforce-bem-usage"];
263
263
  var { type: type15, description: description15, url: url15, messages: messages15 } = ruleConfig14;
264
264
  var isDeprecatedClass = (className) => {
@@ -349,9 +349,9 @@ var require_enforce_bem_usage = __commonJS({
349
349
  var require_no_deprecated_classes_slds2 = __commonJS({
350
350
  "src/rules/no-deprecated-classes-slds2.ts"(exports2, module2) {
351
351
  init_node();
352
- var import_sds_metadata14 = __toESM(require("@salesforce-ux/sds-metadata"));
352
+ var import_next14 = __toESM(require("@salesforce-ux/sds-metadata/next"));
353
353
  var import_rule_messages16 = __toESM(require_rule_messages());
354
- var deprecatedClasses2 = import_sds_metadata14.default.deprecatedClasses;
354
+ var deprecatedClasses2 = import_next14.default.deprecatedClasses;
355
355
  var ruleConfig14 = import_rule_messages16.default["no-deprecated-classes-slds2"];
356
356
  module2.exports = {
357
357
  meta: {
@@ -555,10 +555,10 @@ var import_no_deprecated_classes_slds2 = __toESM(require_no_deprecated_classes_s
555
555
  var import_modal_close_button_issue = __toESM(require_modal_close_button_issue());
556
556
 
557
557
  // src/rules/v9/no-slds-class-overrides.ts
558
- var import_sds_metadata2 = __toESM(require("@salesforce-ux/sds-metadata"));
558
+ var import_next2 = __toESM(require("@salesforce-ux/sds-metadata/next"));
559
559
  var import_rule_messages2 = __toESM(require_rule_messages());
560
560
  var ruleConfig = import_rule_messages2.default["no-slds-class-overrides"];
561
- var sldsClasses = import_sds_metadata2.default.sldsPlusClasses;
561
+ var sldsClasses = import_next2.default.sldsPlusClasses;
562
562
  var sldsClassesSet = new Set(sldsClasses);
563
563
  var no_slds_class_overrides_default = {
564
564
  meta: {
@@ -595,10 +595,10 @@ var no_slds_class_overrides_default = {
595
595
  };
596
596
 
597
597
  // src/rules/v9/no-deprecated-slds-classes.ts
598
- var import_sds_metadata3 = __toESM(require("@salesforce-ux/sds-metadata"));
598
+ var import_next3 = __toESM(require("@salesforce-ux/sds-metadata/next"));
599
599
  var import_rule_messages3 = __toESM(require_rule_messages());
600
600
  var { type: type2, description: description2, url: url2, messages: messages2 } = import_rule_messages3.default["no-deprecated-slds-classes"];
601
- var deprecatedClasses = import_sds_metadata3.default.deprecatedClasses;
601
+ var deprecatedClasses = import_next3.default.deprecatedClasses;
602
602
  var deprecatedClassesSet = new Set(deprecatedClasses);
603
603
  var no_deprecated_slds_classes_default = {
604
604
  meta: {
@@ -629,11 +629,11 @@ var no_deprecated_slds_classes_default = {
629
629
  };
630
630
 
631
631
  // src/rules/v9/no-deprecated-tokens-slds1.ts
632
- var import_sds_metadata4 = __toESM(require("@salesforce-ux/sds-metadata"));
632
+ var import_next4 = __toESM(require("@salesforce-ux/sds-metadata/next"));
633
633
  var import_rule_messages4 = __toESM(require_rule_messages());
634
634
  var ruleConfig2 = import_rule_messages4.default["no-deprecated-tokens-slds1"];
635
635
  var { type: type3, description: description3, url: url3, messages: messages3 } = ruleConfig2;
636
- var tokenMapping = import_sds_metadata4.default.auraToLwcTokensMapping;
636
+ var tokenMapping = import_next4.default.auraToLwcTokensMapping;
637
637
  var no_deprecated_tokens_slds1_default = {
638
638
  meta: {
639
639
  type: type3,
@@ -706,7 +706,7 @@ var no_deprecated_tokens_slds1_default = {
706
706
  };
707
707
 
708
708
  // src/rules/v9/lwc-token-to-slds-hook.ts
709
- var import_sds_metadata5 = __toESM(require("@salesforce-ux/sds-metadata"));
709
+ var import_next5 = __toESM(require("@salesforce-ux/sds-metadata/next"));
710
710
  var import_rule_messages5 = __toESM(require_rule_messages());
711
711
 
712
712
  // src/utils/hardcoded-shared-utils.ts
@@ -1056,7 +1056,7 @@ function forEachFontValue(valueText, callback) {
1056
1056
  }
1057
1057
 
1058
1058
  // src/utils/css-utils.ts
1059
- function extractSldsVariable(node) {
1059
+ function extractCssVariable(node, filter) {
1060
1060
  if (!node || node.type !== "Function" || node.name !== "var") {
1061
1061
  return null;
1062
1062
  }
@@ -1072,19 +1072,31 @@ function extractSldsVariable(node) {
1072
1072
  return null;
1073
1073
  }
1074
1074
  const variableName = firstChild.name;
1075
- if (!variableName || !variableName.startsWith("--slds-")) {
1075
+ if (!variableName) {
1076
1076
  return null;
1077
1077
  }
1078
- const hasFallback = childrenArray.some(
1079
- (child) => child.type === "Operator" && child.value === ","
1080
- );
1081
- return {
1082
- name: variableName,
1083
- hasFallback
1084
- };
1078
+ return filter(variableName, childrenArray);
1085
1079
  }
1086
1080
  function forEachSldsVariable(valueText, callback) {
1087
- forEachValue(valueText, extractSldsVariable, () => false, callback);
1081
+ const extractor = (node) => extractCssVariable(node, (variableName, childrenArray) => {
1082
+ if (!variableName.startsWith("--slds-")) {
1083
+ return null;
1084
+ }
1085
+ const hasFallback = childrenArray.some(
1086
+ (child) => child.type === "Operator" && child.value === ","
1087
+ );
1088
+ return { name: variableName, hasFallback };
1089
+ });
1090
+ forEachValue(valueText, extractor, () => false, callback);
1091
+ }
1092
+ function forEachNamespacedVariable(valueText, callback) {
1093
+ const extractor = (node) => extractCssVariable(node, (variableName) => {
1094
+ if (variableName.startsWith("--slds-") || variableName.startsWith("--sds-")) {
1095
+ return { name: variableName, hasFallback: false };
1096
+ }
1097
+ return null;
1098
+ });
1099
+ forEachValue(valueText, extractor, () => false, callback);
1088
1100
  }
1089
1101
  function formatSuggestionHooks(hooks) {
1090
1102
  if (hooks.length === 1) {
@@ -1096,7 +1108,7 @@ function formatSuggestionHooks(hooks) {
1096
1108
  // src/rules/v9/lwc-token-to-slds-hook.ts
1097
1109
  var ruleConfig3 = import_rule_messages5.default["lwc-token-to-slds-hook"];
1098
1110
  var { type: type4, description: description4, url: url4, messages: messages4 } = ruleConfig3;
1099
- var lwcToSlds = import_sds_metadata5.default.lwcToSlds;
1111
+ var lwcToSlds = import_next5.default.lwcToSlds;
1100
1112
  function shouldIgnoreDetection(lwcToken) {
1101
1113
  return !lwcToken.startsWith("--lwc-") || !(lwcToken in lwcToSlds) || lwcToSlds[lwcToken].continueToUse;
1102
1114
  }
@@ -1119,6 +1131,32 @@ function getRecommendation(lwcToken) {
1119
1131
  const hasRecommendation = oldValue in lwcToSlds && replacementCategory !== "empty" /* EMPTY */;
1120
1132
  return { hasRecommendation, recommendation, replacementCategory };
1121
1133
  }
1134
+ function extractLwcVariableWithFallback(node, sourceCode) {
1135
+ if (!node?.children || node.type !== "Function" || node.name !== "var") {
1136
+ return null;
1137
+ }
1138
+ const children = Array.from(node.children);
1139
+ const firstChild = children[0];
1140
+ if (!firstChild?.name?.startsWith("--lwc-") || firstChild.type !== "Identifier") {
1141
+ return null;
1142
+ }
1143
+ const commaIndex = children.findIndex(
1144
+ (child) => child.type === "Operator" && child.value === ","
1145
+ );
1146
+ let fallbackValue = null;
1147
+ if (commaIndex !== -1 && commaIndex + 1 < children.length) {
1148
+ const fallbackStart = children[commaIndex + 1];
1149
+ const fallbackEnd = children[children.length - 1];
1150
+ if (fallbackStart?.loc && fallbackEnd?.loc) {
1151
+ const fullText = sourceCode.getText();
1152
+ fallbackValue = fullText.substring(fallbackStart.loc.start.offset, fallbackEnd.loc.end.offset).trim();
1153
+ }
1154
+ }
1155
+ return {
1156
+ lwcToken: firstChild.name,
1157
+ fallbackValue
1158
+ };
1159
+ }
1122
1160
  function getReportMessage(cssVar, replacementCategory, recommendation) {
1123
1161
  if (!recommendation) {
1124
1162
  return {
@@ -1168,6 +1206,12 @@ var lwc_token_to_slds_hook_default = {
1168
1206
  if (textAtPosition === oldValue) {
1169
1207
  return fixer.replaceTextRange([propertyStart, propertyEnd], suggestedMatch);
1170
1208
  }
1209
+ } else if (node.type === "Function" && node.name === "var") {
1210
+ const sourceCode = context.sourceCode;
1211
+ const fullText = sourceCode.getText();
1212
+ const nodeOffset = node.loc.start.offset;
1213
+ const nodeEnd = node.loc.end.offset;
1214
+ return fixer.replaceTextRange([nodeOffset, nodeEnd], suggestedMatch);
1171
1215
  } else {
1172
1216
  const sourceCode = context.sourceCode;
1173
1217
  const fullText = sourceCode.getText();
@@ -1206,34 +1250,38 @@ var lwc_token_to_slds_hook_default = {
1206
1250
  reportAndFix(node, property, suggestedMatch, messageId, data);
1207
1251
  },
1208
1252
  // LWC tokens inside var() functions: var(--lwc-*)
1209
- "Function[name='var'] Identifier[name=/^--lwc-/]"(node) {
1210
- const tokenName = node.name;
1211
- if (shouldIgnoreDetection(tokenName)) {
1253
+ "Function[name='var']"(node) {
1254
+ const lwcVarInfo = extractLwcVariableWithFallback(node, context.sourceCode);
1255
+ if (!lwcVarInfo) {
1256
+ return;
1257
+ }
1258
+ const { lwcToken, fallbackValue } = lwcVarInfo;
1259
+ if (shouldIgnoreDetection(lwcToken)) {
1212
1260
  return;
1213
1261
  }
1214
- const { hasRecommendation, recommendation, replacementCategory } = getRecommendation(tokenName);
1215
- const { messageId, data } = getReportMessage(tokenName, replacementCategory, recommendation);
1262
+ const { hasRecommendation, recommendation, replacementCategory } = getRecommendation(lwcToken);
1263
+ const { messageId, data } = getReportMessage(lwcToken, replacementCategory, recommendation);
1216
1264
  let suggestedMatch = null;
1217
1265
  if (hasRecommendation) {
1218
1266
  if (replacementCategory === "slds_token" /* SLDS_TOKEN */) {
1219
- const originalVarCall = `var(${tokenName})`;
1267
+ const originalVarCall = fallbackValue ? `var(${lwcToken}, ${fallbackValue})` : `var(${lwcToken})`;
1220
1268
  suggestedMatch = `var(${recommendation}, ${originalVarCall})`;
1221
1269
  } else if (replacementCategory === "raw_value" /* RAW_VALUE */) {
1222
1270
  suggestedMatch = recommendation;
1223
1271
  }
1224
1272
  }
1225
- reportAndFix(node, tokenName, suggestedMatch, messageId, data);
1273
+ reportAndFix(node, lwcToken, suggestedMatch, messageId, data);
1226
1274
  }
1227
1275
  };
1228
1276
  }
1229
1277
  };
1230
1278
 
1231
1279
  // src/rules/v9/enforce-sds-to-slds-hooks.ts
1232
- var import_sds_metadata6 = __toESM(require("@salesforce-ux/sds-metadata"));
1280
+ var import_next6 = __toESM(require("@salesforce-ux/sds-metadata/next"));
1233
1281
  var import_rule_messages6 = __toESM(require_rule_messages());
1234
1282
  var ruleConfig4 = import_rule_messages6.default["enforce-sds-to-slds-hooks"];
1235
1283
  var { type: type5, description: description5, url: url5, messages: messages5 } = ruleConfig4;
1236
- var sldsPlusStylingHooks = import_sds_metadata6.default.sldsPlusStylingHooks;
1284
+ var sldsPlusStylingHooks = import_next6.default.sldsPlusStylingHooks;
1237
1285
  var allSldsHooks = [...sldsPlusStylingHooks.global, ...sldsPlusStylingHooks.component];
1238
1286
  var toSldsToken = (sdsToken) => sdsToken.replace("--sds-", "--slds-");
1239
1287
  function shouldIgnoreDetection2(sdsToken) {
@@ -1296,11 +1344,11 @@ var enforce_sds_to_slds_hooks_default = {
1296
1344
  };
1297
1345
 
1298
1346
  // src/rules/v9/no-sldshook-fallback-for-lwctoken.ts
1299
- var import_sds_metadata7 = __toESM(require("@salesforce-ux/sds-metadata"));
1347
+ var import_next7 = __toESM(require("@salesforce-ux/sds-metadata/next"));
1300
1348
  var import_rule_messages7 = __toESM(require_rule_messages());
1301
1349
  var ruleConfig5 = import_rule_messages7.default["no-sldshook-fallback-for-lwctoken"];
1302
1350
  var { type: type6, description: description6, url: url6, messages: messages6 } = ruleConfig5;
1303
- var sldsPlusStylingHooks2 = import_sds_metadata7.default.sldsPlusStylingHooks;
1351
+ var sldsPlusStylingHooks2 = import_next7.default.sldsPlusStylingHooks;
1304
1352
  var allSldsHooks2 = [...sldsPlusStylingHooks2.global, ...sldsPlusStylingHooks2.component];
1305
1353
  var allSldsHooksSet = new Set(allSldsHooks2);
1306
1354
  function hasUnsupportedFallback(lwcToken, sldsToken) {
@@ -1356,11 +1404,11 @@ var no_sldshook_fallback_for_lwctoken_default = {
1356
1404
  };
1357
1405
 
1358
1406
  // src/rules/v9/no-unsupported-hooks-slds2.ts
1359
- var import_sds_metadata8 = __toESM(require("@salesforce-ux/sds-metadata"));
1407
+ var import_next8 = __toESM(require("@salesforce-ux/sds-metadata/next"));
1360
1408
  var import_rule_messages8 = __toESM(require_rule_messages());
1361
1409
  var ruleConfig6 = import_rule_messages8.default["no-unsupported-hooks-slds2"];
1362
1410
  var { type: type7, description: description7, url: url7, messages: messages7 } = ruleConfig6;
1363
- var deprecatedHooks = new Set(import_sds_metadata8.default.deprecatedStylingHooks);
1411
+ var deprecatedHooks = new Set(import_next8.default.deprecatedStylingHooks);
1364
1412
  function shouldIgnoreDetection3(sldsHook) {
1365
1413
  return !deprecatedHooks.has(sldsHook);
1366
1414
  }
@@ -1406,11 +1454,11 @@ var no_unsupported_hooks_slds2_default = {
1406
1454
  };
1407
1455
 
1408
1456
  // src/rules/v9/no-slds-var-without-fallback.ts
1409
- var import_sds_metadata9 = __toESM(require("@salesforce-ux/sds-metadata"));
1457
+ var import_next9 = __toESM(require("@salesforce-ux/sds-metadata/next"));
1410
1458
  var import_rule_messages9 = __toESM(require_rule_messages());
1411
1459
  var ruleConfig7 = import_rule_messages9.default["no-slds-var-without-fallback"];
1412
1460
  var { type: type8, description: description8, url: url8, messages: messages8 } = ruleConfig7;
1413
- var sldsVariables = import_sds_metadata9.default.slds1ExcludedVars || {};
1461
+ var sldsVariables = import_next9.default.slds1ExcludedVars || {};
1414
1462
  var no_slds_var_without_fallback_default = {
1415
1463
  meta: {
1416
1464
  type: type8,
@@ -1462,12 +1510,12 @@ var no_slds_var_without_fallback_default = {
1462
1510
  };
1463
1511
 
1464
1512
  // src/rules/v9/no-slds-namespace-for-custom-hooks.ts
1465
- var import_sds_metadata10 = __toESM(require("@salesforce-ux/sds-metadata"));
1513
+ var import_next10 = __toESM(require("@salesforce-ux/sds-metadata/next"));
1466
1514
  var import_rule_messages10 = __toESM(require_rule_messages());
1467
1515
  var ruleConfig8 = import_rule_messages10.default["no-slds-namespace-for-custom-hooks"];
1468
1516
  var { type: type9, description: description9, url: url9, messages: messages9 } = ruleConfig8;
1469
- var sldsPlusStylingHooks3 = import_sds_metadata10.default.sldsPlusStylingHooks;
1470
- var allSldsHooks3 = [...sldsPlusStylingHooks3.global, ...sldsPlusStylingHooks3.component];
1517
+ var sldsPlusStylingHooks3 = import_next10.default.sldsPlusStylingHooks;
1518
+ var allSldsHooks3 = [...sldsPlusStylingHooks3.global, ...sldsPlusStylingHooks3.component, ...sldsPlusStylingHooks3.shared];
1471
1519
  var toSldsToken2 = (sdsToken) => sdsToken.replace("--sds-", "--slds-");
1472
1520
  function shouldIgnoreDetection4(sdsToken) {
1473
1521
  if (sdsToken.startsWith("--sds-") || sdsToken.startsWith("--slds-")) {
@@ -1486,44 +1534,65 @@ var no_slds_namespace_for_custom_hooks_default = {
1486
1534
  messages: messages9
1487
1535
  },
1488
1536
  create(context) {
1489
- function reportViolation(node, token) {
1490
- const tokenWithoutNamespace = token.replace("--slds-", "").replace("--sds-", "");
1491
- context.report({
1492
- node,
1493
- messageId: "customHookNamespace",
1494
- data: {
1495
- token,
1496
- tokenWithoutNamespace
1497
- }
1498
- });
1499
- }
1500
1537
  return {
1501
- // CSS custom property declarations: --slds-* and --sds-* properties
1502
- "Declaration[property=/^--s(lds|ds)-/]"(node) {
1538
+ "Declaration"(node) {
1503
1539
  const property = node.property;
1504
- if (shouldIgnoreDetection4(property)) {
1505
- return;
1540
+ if (property && (property.startsWith("--slds-") || property.startsWith("--sds-")) && !shouldIgnoreDetection4(property)) {
1541
+ const tokenWithoutNamespace = property.replace("--slds-", "").replace("--sds-", "");
1542
+ context.report({
1543
+ node,
1544
+ loc: node.loc,
1545
+ // Use full declaration loc which includes the property
1546
+ messageId: "customHookNamespace",
1547
+ data: {
1548
+ token: property,
1549
+ tokenWithoutNamespace
1550
+ }
1551
+ });
1506
1552
  }
1507
- reportViolation(node, property);
1508
- },
1509
- // SLDS/SDS tokens inside var() functions: var(--slds-*) or var(--sds-*)
1510
- "Function[name='var'] Identifier[name=/^--s(lds|ds)-/]"(node) {
1511
- const tokenName = node.name;
1512
- if (shouldIgnoreDetection4(tokenName)) {
1513
- return;
1553
+ const valueText = context.sourceCode.getText(node.value);
1554
+ if (valueText) {
1555
+ forEachNamespacedVariable(valueText, (variableInfo, positionInfo) => {
1556
+ const { name: tokenName } = variableInfo;
1557
+ if (!shouldIgnoreDetection4(tokenName)) {
1558
+ const tokenWithoutNamespace = tokenName.replace("--slds-", "").replace("--sds-", "");
1559
+ if (positionInfo.start && positionInfo.end && node.value.loc) {
1560
+ context.report({
1561
+ node,
1562
+ loc: {
1563
+ start: {
1564
+ line: node.value.loc.start.line + positionInfo.start.line - 1,
1565
+ column: node.value.loc.start.column + positionInfo.start.column - 1
1566
+ },
1567
+ end: {
1568
+ line: node.value.loc.start.line + positionInfo.end.line - 1,
1569
+ column: node.value.loc.start.column + positionInfo.end.column - 1
1570
+ }
1571
+ },
1572
+ messageId: "customHookNamespace",
1573
+ data: { token: tokenName, tokenWithoutNamespace }
1574
+ });
1575
+ } else {
1576
+ context.report({
1577
+ node,
1578
+ messageId: "customHookNamespace",
1579
+ data: { token: tokenName, tokenWithoutNamespace }
1580
+ });
1581
+ }
1582
+ }
1583
+ });
1514
1584
  }
1515
- reportViolation(node, tokenName);
1516
1585
  }
1517
1586
  };
1518
1587
  }
1519
1588
  };
1520
1589
 
1521
1590
  // src/rules/v9/enforce-component-hook-naming-convention.ts
1522
- var import_sds_metadata11 = __toESM(require("@salesforce-ux/sds-metadata"));
1591
+ var import_next11 = __toESM(require("@salesforce-ux/sds-metadata/next"));
1523
1592
  var import_rule_messages11 = __toESM(require_rule_messages());
1524
1593
  var ruleConfig9 = import_rule_messages11.default["enforce-component-hook-naming-convention"];
1525
1594
  var { type: type10, description: description10, url: url10, messages: messages10 } = ruleConfig9;
1526
- var slds1DeprecatedComponentHooks = import_sds_metadata11.default.slds1DeprecatedComponentHooks;
1595
+ var slds1DeprecatedComponentHooks = import_next11.default.slds1DeprecatedComponentHooks;
1527
1596
  function shouldIgnoreDetection5(hook) {
1528
1597
  return !hook.startsWith("--slds-c-") || !(hook in slds1DeprecatedComponentHooks);
1529
1598
  }
@@ -1666,7 +1735,7 @@ var no_slds_private_var_default = {
1666
1735
  };
1667
1736
 
1668
1737
  // src/rules/v9/no-hardcoded-values/no-hardcoded-values-slds1.ts
1669
- var import_sds_metadata12 = __toESM(require("@salesforce-ux/sds-metadata"));
1738
+ var import_next12 = __toESM(require("@salesforce-ux/sds-metadata/next"));
1670
1739
  var import_rule_messages14 = __toESM(require_rule_messages());
1671
1740
 
1672
1741
  // src/utils/property-matcher.ts
@@ -2243,7 +2312,7 @@ function defineNoHardcodedValueRule(config) {
2243
2312
  var ruleName = "no-hardcoded-values-slds1";
2244
2313
  var ruleConfig12 = import_rule_messages14.default[ruleName];
2245
2314
  var { type: type13, description: description13, url: url13, messages: messages13 } = ruleConfig12;
2246
- var valueToStylinghook = import_sds_metadata12.default.valueToStylingHooksSlds;
2315
+ var valueToStylinghook = import_next12.default.valueToStylingHooksSlds;
2247
2316
  var no_hardcoded_values_slds1_default = defineNoHardcodedValueRule({
2248
2317
  ruleConfig: ruleConfig12,
2249
2318
  valueToStylinghook,
@@ -2251,12 +2320,12 @@ var no_hardcoded_values_slds1_default = defineNoHardcodedValueRule({
2251
2320
  });
2252
2321
 
2253
2322
  // src/rules/v9/no-hardcoded-values/no-hardcoded-values-slds2.ts
2254
- var import_sds_metadata13 = __toESM(require("@salesforce-ux/sds-metadata"));
2323
+ var import_next13 = __toESM(require("@salesforce-ux/sds-metadata/next"));
2255
2324
  var import_rule_messages15 = __toESM(require_rule_messages());
2256
2325
  var ruleName2 = "no-hardcoded-values-slds2";
2257
2326
  var ruleConfig13 = import_rule_messages15.default[ruleName2];
2258
2327
  var { type: type14, description: description14, url: url14, messages: messages14 } = ruleConfig13;
2259
- var valueToStylinghook2 = import_sds_metadata13.default.valueToStylingHooksCosmos;
2328
+ var valueToStylinghook2 = import_next13.default.valueToStylingHooksCosmos;
2260
2329
  var no_hardcoded_values_slds2_default = defineNoHardcodedValueRule({
2261
2330
  ruleConfig: ruleConfig13,
2262
2331
  valueToStylinghook: valueToStylinghook2,
@@ -2267,11 +2336,13 @@ var no_hardcoded_values_slds2_default = defineNoHardcodedValueRule({
2267
2336
  var import_parser2 = __toESM(require("@html-eslint/parser"));
2268
2337
  var import_css = __toESM(require("@eslint/css"));
2269
2338
 
2270
- // eslint.rules.json
2271
- var eslint_rules_default = {
2339
+ // eslint.rules.internal.json
2340
+ var eslint_rules_internal_default = {
2272
2341
  css: {
2342
+ "@salesforce-ux/slds/enforce-bem-usage": "warn",
2273
2343
  "@salesforce-ux/slds/no-slds-class-overrides": "warn",
2274
2344
  "@salesforce-ux/slds/no-deprecated-slds-classes": "warn",
2345
+ "@salesforce-ux/slds/no-deprecated-tokens-slds1": "error",
2275
2346
  "@salesforce-ux/slds/lwc-token-to-slds-hook": "error",
2276
2347
  "@salesforce-ux/slds/enforce-sds-to-slds-hooks": "warn",
2277
2348
  "@salesforce-ux/slds/no-sldshook-fallback-for-lwctoken": "warn",
@@ -2280,6 +2351,7 @@ var eslint_rules_default = {
2280
2351
  "@salesforce-ux/slds/no-slds-namespace-for-custom-hooks": "warn",
2281
2352
  "@salesforce-ux/slds/enforce-component-hook-naming-convention": "error",
2282
2353
  "@salesforce-ux/slds/no-slds-private-var": "warn",
2354
+ "@salesforce-ux/slds/no-hardcoded-values-slds1": "error",
2283
2355
  "@salesforce-ux/slds/no-hardcoded-values-slds2": "warn",
2284
2356
  "@salesforce-ux/slds/reduce-annotations": "warn"
2285
2357
  },
@@ -2313,7 +2385,7 @@ var rules = {
2313
2385
  var plugin = {
2314
2386
  meta: {
2315
2387
  name: "@salesforce-ux/eslint-plugin-slds",
2316
- version: "1.0.2"
2388
+ version: "1.0.4-internal"
2317
2389
  },
2318
2390
  rules,
2319
2391
  configs: {}
@@ -2332,10 +2404,10 @@ var cssConfigArray = [
2332
2404
  css: import_css.default,
2333
2405
  "@salesforce-ux/slds": plugin
2334
2406
  },
2335
- rules: eslint_rules_default.css,
2407
+ rules: eslint_rules_internal_default.css,
2336
2408
  settings: {
2337
2409
  // Pass rules configuration to context for runtime access
2338
- sldsRules: { ...eslint_rules_default.css }
2410
+ sldsRules: { ...eslint_rules_internal_default.css }
2339
2411
  }
2340
2412
  }
2341
2413
  ];
@@ -2351,7 +2423,7 @@ var htmlConfigArray = [
2351
2423
  plugins: {
2352
2424
  "@salesforce-ux/slds": plugin
2353
2425
  },
2354
- rules: eslint_rules_default.html
2426
+ rules: eslint_rules_internal_default.html
2355
2427
  }
2356
2428
  ];
2357
2429
  Object.assign(plugin.configs, {
@@ -2362,7 +2434,7 @@ Object.assign(plugin.configs, {
2362
2434
  // legacy config for ESLint v8-
2363
2435
  recommended: {
2364
2436
  plugins: ["@salesforce-ux/slds"],
2365
- rules: eslint_rules_default.html,
2437
+ rules: eslint_rules_internal_default.html,
2366
2438
  parser: import_parser2.default,
2367
2439
  parserOptions: {
2368
2440
  ecmaVersion: 2021,