@salesforce-ux/eslint-plugin-slds 1.0.5 → 1.0.6-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.
- package/README.md +62 -0
- package/build/index.js +280 -141
- package/build/index.js.map +4 -4
- package/build/rules/enforce-bem-usage.js +5 -5
- package/build/rules/enforce-bem-usage.js.map +3 -3
- package/build/rules/no-deprecated-classes-slds2.js +2 -2
- package/build/rules/no-deprecated-classes-slds2.js.map +2 -2
- package/build/rules/v9/enforce-bem-usage.js +2 -2
- package/build/rules/v9/enforce-bem-usage.js.map +2 -2
- package/build/rules/v9/enforce-component-hook-naming-convention.js +2 -2
- package/build/rules/v9/enforce-component-hook-naming-convention.js.map +2 -2
- package/build/rules/v9/enforce-sds-to-slds-hooks.js +2 -2
- package/build/rules/v9/enforce-sds-to-slds-hooks.js.map +2 -2
- package/build/rules/v9/lwc-token-to-slds-hook.js +2 -2
- package/build/rules/v9/lwc-token-to-slds-hook.js.map +2 -2
- package/build/rules/v9/no-deprecated-slds-classes.js +2 -2
- package/build/rules/v9/no-deprecated-slds-classes.js.map +2 -2
- package/build/rules/v9/no-deprecated-tokens-slds1.js +2 -2
- package/build/rules/v9/no-deprecated-tokens-slds1.js.map +2 -2
- package/build/rules/v9/no-hardcoded-values/handlers/boxShadowHandler.js +86 -30
- package/build/rules/v9/no-hardcoded-values/handlers/boxShadowHandler.js.map +3 -3
- package/build/rules/v9/no-hardcoded-values/handlers/colorHandler.js +116 -104
- package/build/rules/v9/no-hardcoded-values/handlers/colorHandler.js.map +3 -3
- package/build/rules/v9/no-hardcoded-values/handlers/densityHandler.js +83 -30
- package/build/rules/v9/no-hardcoded-values/handlers/densityHandler.js.map +3 -3
- package/build/rules/v9/no-hardcoded-values/handlers/fontHandler.js +78 -74
- package/build/rules/v9/no-hardcoded-values/handlers/fontHandler.js.map +3 -3
- package/build/rules/v9/no-hardcoded-values/handlers/index.js +175 -99
- package/build/rules/v9/no-hardcoded-values/handlers/index.js.map +3 -3
- package/build/rules/v9/no-hardcoded-values/no-hardcoded-values-slds1.js +223 -103
- package/build/rules/v9/no-hardcoded-values/no-hardcoded-values-slds1.js.map +3 -3
- package/build/rules/v9/no-hardcoded-values/no-hardcoded-values-slds2.js +223 -103
- package/build/rules/v9/no-hardcoded-values/no-hardcoded-values-slds2.js.map +3 -3
- package/build/rules/v9/no-hardcoded-values/noHardcodedValueRule.js +221 -101
- package/build/rules/v9/no-hardcoded-values/noHardcodedValueRule.js.map +3 -3
- package/build/rules/v9/no-hardcoded-values/ruleOptionsSchema.js +63 -0
- package/build/rules/v9/no-hardcoded-values/ruleOptionsSchema.js.map +7 -0
- package/build/rules/v9/no-slds-class-overrides.js +2 -2
- package/build/rules/v9/no-slds-class-overrides.js.map +2 -2
- package/build/rules/v9/no-slds-namespace-for-custom-hooks.js +2 -2
- package/build/rules/v9/no-slds-namespace-for-custom-hooks.js.map +2 -2
- package/build/rules/v9/no-slds-var-without-fallback.js +2 -2
- package/build/rules/v9/no-slds-var-without-fallback.js.map +2 -2
- package/build/rules/v9/no-sldshook-fallback-for-lwctoken.js +2 -2
- package/build/rules/v9/no-sldshook-fallback-for-lwctoken.js.map +2 -2
- package/build/rules/v9/no-unsupported-hooks-slds2.js +2 -2
- package/build/rules/v9/no-unsupported-hooks-slds2.js.map +2 -2
- package/build/src/rules/v9/no-hardcoded-values/ruleOptionsSchema.d.ts +40 -0
- package/build/src/types/index.d.ts +31 -0
- package/build/src/utils/color-lib-utils.d.ts +16 -9
- package/build/src/utils/custom-mapping-utils.d.ts +9 -0
- package/build/src/utils/hardcoded-shared-utils.d.ts +1 -0
- package/build/src/utils/property-matcher.d.ts +3 -1
- package/build/types/index.js.map +1 -1
- package/build/utils/boxShadowValueParser.js.map +2 -2
- package/build/utils/color-lib-utils.js +26 -50
- package/build/utils/color-lib-utils.js.map +2 -2
- package/build/utils/css-utils.js.map +2 -2
- package/build/utils/custom-mapping-utils.js +62 -0
- package/build/utils/custom-mapping-utils.js.map +7 -0
- package/build/utils/hardcoded-shared-utils.js +29 -16
- package/build/utils/hardcoded-shared-utils.js.map +2 -2
- package/build/utils/property-matcher.js +20 -6
- package/build/utils/property-matcher.js.map +2 -2
- package/build/utils/styling-hook-utils.js.map +1 -1
- package/eslint.config.mjs +0 -4
- package/package.json +2 -2
package/build/index.js
CHANGED
|
@@ -203,13 +203,13 @@ var require_rule_messages = __commonJS({
|
|
|
203
203
|
});
|
|
204
204
|
|
|
205
205
|
// src/rules/v9/enforce-bem-usage.ts
|
|
206
|
-
var
|
|
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
|
-
|
|
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 =
|
|
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
|
|
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 =
|
|
261
|
-
var deprecatedClasses2 =
|
|
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
|
|
352
|
+
var import_next14 = __toESM(require("@salesforce-ux/sds-metadata/next"));
|
|
353
353
|
var import_rule_messages16 = __toESM(require_rule_messages());
|
|
354
|
-
var deprecatedClasses2 =
|
|
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
|
|
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 =
|
|
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
|
|
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 =
|
|
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
|
|
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 =
|
|
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
|
|
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
|
|
@@ -780,11 +780,7 @@ function isCssColorFunction(value) {
|
|
|
780
780
|
}
|
|
781
781
|
|
|
782
782
|
// src/utils/color-lib-utils.ts
|
|
783
|
-
var
|
|
784
|
-
var isHexCode = (color) => {
|
|
785
|
-
const hexPattern = /^#(?:[0-9a-fA-F]{3}){1,2}$/;
|
|
786
|
-
return hexPattern.test(color);
|
|
787
|
-
};
|
|
783
|
+
var DELTAE_THRESHOLD = 10;
|
|
788
784
|
var convertToHex = (color) => {
|
|
789
785
|
try {
|
|
790
786
|
return (0, import_chroma_js.default)(color).hex();
|
|
@@ -792,52 +788,40 @@ var convertToHex = (color) => {
|
|
|
792
788
|
return null;
|
|
793
789
|
}
|
|
794
790
|
};
|
|
791
|
+
var isHookPropertyMatch = (hook, cssProperty) => {
|
|
792
|
+
return hook.properties.includes(cssProperty) || hook.properties.includes("*");
|
|
793
|
+
};
|
|
794
|
+
function getOrderByCssProp(cssProperty) {
|
|
795
|
+
if (cssProperty === "color" || cssProperty === "fill") {
|
|
796
|
+
return ["surface", "theme", "feedback", "reference"];
|
|
797
|
+
} else if (cssProperty.match(/background/)) {
|
|
798
|
+
return ["surface", "surface-inverse", "theme", "feedback", "reference"];
|
|
799
|
+
} else if (cssProperty.match(/border/) || cssProperty.match(/outline/) || cssProperty.match(/stroke/)) {
|
|
800
|
+
return ["borders", "borders-inverse", "feedback", "theme", "reference"];
|
|
801
|
+
}
|
|
802
|
+
return ["surface", "surface-inverse", "borders", "borders-inverse", "theme", "feedback", "reference"];
|
|
803
|
+
}
|
|
795
804
|
var findClosestColorHook = (color, supportedColors, cssProperty) => {
|
|
796
|
-
const
|
|
797
|
-
const closestHooksWithSameProperty = [];
|
|
798
|
-
const closestHooksWithoutSameProperty = [];
|
|
799
|
-
const closestHooksWithAllProperty = [];
|
|
800
|
-
const labColor = (0, import_chroma_js.default)(color).lab();
|
|
805
|
+
const closestHooks = [];
|
|
801
806
|
Object.entries(supportedColors).forEach(([sldsValue, data]) => {
|
|
802
|
-
if (sldsValue &&
|
|
807
|
+
if (sldsValue && isValidColor(sldsValue)) {
|
|
803
808
|
const hooks = data;
|
|
804
809
|
hooks.forEach((hook) => {
|
|
805
|
-
const
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
if (distance <= LAB_THRESHOLD) {
|
|
809
|
-
closestHooksWithSameProperty.push({ name: hook.name, distance });
|
|
810
|
-
}
|
|
811
|
-
} else if (hook.properties.includes("*")) {
|
|
812
|
-
if (distance <= LAB_THRESHOLD) {
|
|
813
|
-
closestHooksWithAllProperty.push({ name: hook.name, distance });
|
|
814
|
-
}
|
|
815
|
-
} else {
|
|
816
|
-
if (distance <= LAB_THRESHOLD) {
|
|
817
|
-
closestHooksWithoutSameProperty.push({ name: hook.name, distance });
|
|
818
|
-
}
|
|
810
|
+
const distance = sldsValue.toLowerCase() === color.toLowerCase() ? 0 : import_chroma_js.default.deltaE(sldsValue, color);
|
|
811
|
+
if (isHookPropertyMatch(hook, cssProperty) && distance <= DELTAE_THRESHOLD) {
|
|
812
|
+
closestHooks.push({ distance, group: hook.group, name: hook.name });
|
|
819
813
|
}
|
|
820
814
|
});
|
|
821
815
|
}
|
|
822
816
|
});
|
|
823
|
-
const
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
{ hooks: closestHooksWithSameProperty, distance: Infinity },
|
|
827
|
-
// For hooks with distance > 0
|
|
828
|
-
{ hooks: closestHooksWithAllProperty, distance: Infinity },
|
|
829
|
-
{ hooks: closestHooksWithoutSameProperty, distance: Infinity }
|
|
830
|
-
];
|
|
831
|
-
for (const group of closesthookGroups) {
|
|
832
|
-
const filteredHooks = group.hooks.filter(
|
|
833
|
-
(h) => group.distance === 0 ? h.distance === 0 : h.distance > 0
|
|
834
|
-
);
|
|
835
|
-
if (returnStylingHooks.length < 1 && filteredHooks.length > 0) {
|
|
836
|
-
filteredHooks.sort((a, b) => a.distance - b.distance);
|
|
837
|
-
returnStylingHooks.push(...filteredHooks.slice(0, 5).map((h) => h.name));
|
|
817
|
+
const hooksByGroupMap = closestHooks.sort((a, b) => a.distance - b.distance).reduce((acc, hook) => {
|
|
818
|
+
if (!acc[hook.group]) {
|
|
819
|
+
acc[hook.group] = [];
|
|
838
820
|
}
|
|
839
|
-
|
|
840
|
-
|
|
821
|
+
acc[hook.group].push(hook.name);
|
|
822
|
+
return acc;
|
|
823
|
+
}, {});
|
|
824
|
+
return getOrderByCssProp(cssProperty).map((group) => hooksByGroupMap[group] || []).flat().slice(0, 5);
|
|
841
825
|
};
|
|
842
826
|
var isValidColor = (val) => import_chroma_js.default.valid(val);
|
|
843
827
|
var extractColorValue = (node) => {
|
|
@@ -879,13 +863,33 @@ function isKnownFontWeight(value) {
|
|
|
879
863
|
return FONT_WEIGHTS.includes(stringValue.toLowerCase());
|
|
880
864
|
}
|
|
881
865
|
function handleShorthandAutoFix(declarationNode, context, valueText, replacements) {
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
sortedReplacements.
|
|
866
|
+
if (!replacements || replacements.length === 0) {
|
|
867
|
+
return;
|
|
868
|
+
}
|
|
869
|
+
const sortedReplacements = replacements.sort((a, b) => b.start - a.start);
|
|
870
|
+
const reportNumericValue = context.options?.reportNumericValue || "always";
|
|
871
|
+
const fixCallback = (start, originalValue, replacement) => {
|
|
872
|
+
let newValue = valueText;
|
|
873
|
+
newValue = newValue.substring(0, start) + replacement + newValue.substring(start + originalValue.length);
|
|
874
|
+
if (newValue !== valueText) {
|
|
875
|
+
return (fixer) => {
|
|
876
|
+
return fixer.replaceText(declarationNode.value, newValue);
|
|
877
|
+
};
|
|
878
|
+
}
|
|
879
|
+
};
|
|
880
|
+
sortedReplacements.forEach(({ start, end, replacement, displayValue, hasHook, isNumeric }) => {
|
|
886
881
|
const originalValue = valueText.substring(start, end);
|
|
887
|
-
|
|
888
|
-
|
|
882
|
+
if (isNumeric) {
|
|
883
|
+
if (reportNumericValue === "never") {
|
|
884
|
+
return;
|
|
885
|
+
}
|
|
886
|
+
if (reportNumericValue === "hasReplacement" && !hasHook) {
|
|
887
|
+
return;
|
|
888
|
+
}
|
|
889
|
+
}
|
|
890
|
+
const valueColumnStart = declarationNode.value.loc.start.column + start;
|
|
891
|
+
const valueColumnEnd = valueColumnStart + originalValue.length;
|
|
892
|
+
const canAutoFix = originalValue !== replacement;
|
|
889
893
|
const { loc: { start: locStart, end: locEnd } } = declarationNode.value;
|
|
890
894
|
const reportNode = {
|
|
891
895
|
...declarationNode.value,
|
|
@@ -893,23 +897,16 @@ function handleShorthandAutoFix(declarationNode, context, valueText, replacement
|
|
|
893
897
|
...declarationNode.value.loc,
|
|
894
898
|
start: {
|
|
895
899
|
...locStart,
|
|
896
|
-
column:
|
|
900
|
+
column: valueColumnStart
|
|
897
901
|
},
|
|
898
902
|
end: {
|
|
899
903
|
...locEnd,
|
|
900
|
-
column:
|
|
904
|
+
column: valueColumnEnd
|
|
901
905
|
}
|
|
902
906
|
}
|
|
903
907
|
};
|
|
904
908
|
if (hasHook) {
|
|
905
|
-
const fix = canAutoFix ? (
|
|
906
|
-
let newValue = valueText;
|
|
907
|
-
for (let i = sortedReplacements.length - 1; i >= 0; i--) {
|
|
908
|
-
const { start: rStart, end: rEnd, replacement: rReplacement } = sortedReplacements[i];
|
|
909
|
-
newValue = newValue.substring(0, rStart) + rReplacement + newValue.substring(rEnd);
|
|
910
|
-
}
|
|
911
|
-
return fixer.replaceText(declarationNode.value, newValue);
|
|
912
|
-
} : void 0;
|
|
909
|
+
const fix = canAutoFix ? fixCallback(start, originalValue, replacement) : void 0;
|
|
913
910
|
context.context.report({
|
|
914
911
|
node: reportNode,
|
|
915
912
|
messageId: "hardcodedValue",
|
|
@@ -1120,7 +1117,7 @@ function formatSuggestionHooks(hooks) {
|
|
|
1120
1117
|
// src/rules/v9/lwc-token-to-slds-hook.ts
|
|
1121
1118
|
var ruleConfig3 = import_rule_messages5.default["lwc-token-to-slds-hook"];
|
|
1122
1119
|
var { type: type4, description: description4, url: url4, messages: messages4 } = ruleConfig3;
|
|
1123
|
-
var lwcToSlds =
|
|
1120
|
+
var lwcToSlds = import_next5.default.lwcToSlds;
|
|
1124
1121
|
function shouldIgnoreDetection(lwcToken) {
|
|
1125
1122
|
return !lwcToken.startsWith("--lwc-") || !(lwcToken in lwcToSlds) || lwcToSlds[lwcToken].continueToUse;
|
|
1126
1123
|
}
|
|
@@ -1251,11 +1248,11 @@ var lwc_token_to_slds_hook_default = {
|
|
|
1251
1248
|
};
|
|
1252
1249
|
|
|
1253
1250
|
// src/rules/v9/enforce-sds-to-slds-hooks.ts
|
|
1254
|
-
var
|
|
1251
|
+
var import_next6 = __toESM(require("@salesforce-ux/sds-metadata/next"));
|
|
1255
1252
|
var import_rule_messages6 = __toESM(require_rule_messages());
|
|
1256
1253
|
var ruleConfig4 = import_rule_messages6.default["enforce-sds-to-slds-hooks"];
|
|
1257
1254
|
var { type: type5, description: description5, url: url5, messages: messages5 } = ruleConfig4;
|
|
1258
|
-
var sldsPlusStylingHooks =
|
|
1255
|
+
var sldsPlusStylingHooks = import_next6.default.sldsPlusStylingHooks;
|
|
1259
1256
|
var allSldsHooks = [...sldsPlusStylingHooks.global, ...sldsPlusStylingHooks.component];
|
|
1260
1257
|
var toSldsToken = (sdsToken) => sdsToken.replace("--sds-", "--slds-");
|
|
1261
1258
|
function shouldIgnoreDetection2(sdsToken) {
|
|
@@ -1318,11 +1315,11 @@ var enforce_sds_to_slds_hooks_default = {
|
|
|
1318
1315
|
};
|
|
1319
1316
|
|
|
1320
1317
|
// src/rules/v9/no-sldshook-fallback-for-lwctoken.ts
|
|
1321
|
-
var
|
|
1318
|
+
var import_next7 = __toESM(require("@salesforce-ux/sds-metadata/next"));
|
|
1322
1319
|
var import_rule_messages7 = __toESM(require_rule_messages());
|
|
1323
1320
|
var ruleConfig5 = import_rule_messages7.default["no-sldshook-fallback-for-lwctoken"];
|
|
1324
1321
|
var { type: type6, description: description6, url: url6, messages: messages6 } = ruleConfig5;
|
|
1325
|
-
var sldsPlusStylingHooks2 =
|
|
1322
|
+
var sldsPlusStylingHooks2 = import_next7.default.sldsPlusStylingHooks;
|
|
1326
1323
|
var allSldsHooks2 = [...sldsPlusStylingHooks2.global, ...sldsPlusStylingHooks2.component];
|
|
1327
1324
|
var allSldsHooksSet = new Set(allSldsHooks2);
|
|
1328
1325
|
function hasUnsupportedFallback(lwcToken, sldsToken) {
|
|
@@ -1378,11 +1375,11 @@ var no_sldshook_fallback_for_lwctoken_default = {
|
|
|
1378
1375
|
};
|
|
1379
1376
|
|
|
1380
1377
|
// src/rules/v9/no-unsupported-hooks-slds2.ts
|
|
1381
|
-
var
|
|
1378
|
+
var import_next8 = __toESM(require("@salesforce-ux/sds-metadata/next"));
|
|
1382
1379
|
var import_rule_messages8 = __toESM(require_rule_messages());
|
|
1383
1380
|
var ruleConfig6 = import_rule_messages8.default["no-unsupported-hooks-slds2"];
|
|
1384
1381
|
var { type: type7, description: description7, url: url7, messages: messages7 } = ruleConfig6;
|
|
1385
|
-
var deprecatedHooks = new Set(
|
|
1382
|
+
var deprecatedHooks = new Set(import_next8.default.deprecatedStylingHooks);
|
|
1386
1383
|
function shouldIgnoreDetection3(sldsHook) {
|
|
1387
1384
|
return !deprecatedHooks.has(sldsHook);
|
|
1388
1385
|
}
|
|
@@ -1428,11 +1425,11 @@ var no_unsupported_hooks_slds2_default = {
|
|
|
1428
1425
|
};
|
|
1429
1426
|
|
|
1430
1427
|
// src/rules/v9/no-slds-var-without-fallback.ts
|
|
1431
|
-
var
|
|
1428
|
+
var import_next9 = __toESM(require("@salesforce-ux/sds-metadata/next"));
|
|
1432
1429
|
var import_rule_messages9 = __toESM(require_rule_messages());
|
|
1433
1430
|
var ruleConfig7 = import_rule_messages9.default["no-slds-var-without-fallback"];
|
|
1434
1431
|
var { type: type8, description: description8, url: url8, messages: messages8 } = ruleConfig7;
|
|
1435
|
-
var sldsVariables =
|
|
1432
|
+
var sldsVariables = import_next9.default.slds1ExcludedVars || {};
|
|
1436
1433
|
var no_slds_var_without_fallback_default = {
|
|
1437
1434
|
meta: {
|
|
1438
1435
|
type: type8,
|
|
@@ -1484,11 +1481,11 @@ var no_slds_var_without_fallback_default = {
|
|
|
1484
1481
|
};
|
|
1485
1482
|
|
|
1486
1483
|
// src/rules/v9/no-slds-namespace-for-custom-hooks.ts
|
|
1487
|
-
var
|
|
1484
|
+
var import_next10 = __toESM(require("@salesforce-ux/sds-metadata/next"));
|
|
1488
1485
|
var import_rule_messages10 = __toESM(require_rule_messages());
|
|
1489
1486
|
var ruleConfig8 = import_rule_messages10.default["no-slds-namespace-for-custom-hooks"];
|
|
1490
1487
|
var { type: type9, description: description9, url: url9, messages: messages9 } = ruleConfig8;
|
|
1491
|
-
var sldsPlusStylingHooks3 =
|
|
1488
|
+
var sldsPlusStylingHooks3 = import_next10.default.sldsPlusStylingHooks;
|
|
1492
1489
|
var allSldsHooks3 = [...sldsPlusStylingHooks3.global, ...sldsPlusStylingHooks3.component, ...sldsPlusStylingHooks3.shared];
|
|
1493
1490
|
var toSldsToken2 = (sdsToken) => sdsToken.replace("--sds-", "--slds-");
|
|
1494
1491
|
function shouldIgnoreDetection4(sdsToken) {
|
|
@@ -1562,11 +1559,11 @@ var no_slds_namespace_for_custom_hooks_default = {
|
|
|
1562
1559
|
};
|
|
1563
1560
|
|
|
1564
1561
|
// src/rules/v9/enforce-component-hook-naming-convention.ts
|
|
1565
|
-
var
|
|
1562
|
+
var import_next11 = __toESM(require("@salesforce-ux/sds-metadata/next"));
|
|
1566
1563
|
var import_rule_messages11 = __toESM(require_rule_messages());
|
|
1567
1564
|
var ruleConfig9 = import_rule_messages11.default["enforce-component-hook-naming-convention"];
|
|
1568
1565
|
var { type: type10, description: description10, url: url10, messages: messages10 } = ruleConfig9;
|
|
1569
|
-
var slds1DeprecatedComponentHooks =
|
|
1566
|
+
var slds1DeprecatedComponentHooks = import_next11.default.slds1DeprecatedComponentHooks;
|
|
1570
1567
|
function shouldIgnoreDetection5(hook) {
|
|
1571
1568
|
return !hook.startsWith("--slds-c-") || !(hook in slds1DeprecatedComponentHooks);
|
|
1572
1569
|
}
|
|
@@ -1709,7 +1706,7 @@ var no_slds_private_var_default = {
|
|
|
1709
1706
|
};
|
|
1710
1707
|
|
|
1711
1708
|
// src/rules/v9/no-hardcoded-values/no-hardcoded-values-slds1.ts
|
|
1712
|
-
var
|
|
1709
|
+
var import_next12 = __toESM(require("@salesforce-ux/sds-metadata/next"));
|
|
1713
1710
|
var import_rule_messages14 = __toESM(require_rule_messages());
|
|
1714
1711
|
|
|
1715
1712
|
// src/utils/property-matcher.ts
|
|
@@ -1790,9 +1787,9 @@ function toSelector(properties) {
|
|
|
1790
1787
|
});
|
|
1791
1788
|
return selectorParts.join(", ");
|
|
1792
1789
|
}
|
|
1793
|
-
function
|
|
1790
|
+
function resolveDensityPropertyToMatch(cssProperty) {
|
|
1794
1791
|
const propertyToMatch = cssProperty.toLowerCase();
|
|
1795
|
-
if (propertyToMatch
|
|
1792
|
+
if (isOutlineWidthProperty(propertyToMatch) || isBorderWidthProperty(propertyToMatch)) {
|
|
1796
1793
|
return "border-width";
|
|
1797
1794
|
} else if (isMarginProperty(propertyToMatch)) {
|
|
1798
1795
|
return "margin";
|
|
@@ -1804,13 +1801,58 @@ function resolvePropertyToMatch(cssProperty) {
|
|
|
1804
1801
|
return "width";
|
|
1805
1802
|
} else if (isInsetProperty(propertyToMatch)) {
|
|
1806
1803
|
return "top";
|
|
1807
|
-
}
|
|
1804
|
+
}
|
|
1805
|
+
return propertyToMatch;
|
|
1806
|
+
}
|
|
1807
|
+
function resolveColorPropertyToMatch(cssProperty) {
|
|
1808
|
+
const propertyToMatch = cssProperty.toLowerCase();
|
|
1809
|
+
if (propertyToMatch === "outline" || propertyToMatch === "outline-color") {
|
|
1810
|
+
return "border-color";
|
|
1811
|
+
} else if (propertyToMatch === "background" || propertyToMatch === "background-color") {
|
|
1808
1812
|
return "background-color";
|
|
1809
|
-
} else if (
|
|
1813
|
+
} else if (isBorderColorProperty(propertyToMatch)) {
|
|
1810
1814
|
return "border-color";
|
|
1811
1815
|
}
|
|
1812
1816
|
return propertyToMatch;
|
|
1813
1817
|
}
|
|
1818
|
+
function isOutlineWidthProperty(propertyToMatch) {
|
|
1819
|
+
return propertyToMatch === "outline" || propertyToMatch === "outline-width";
|
|
1820
|
+
}
|
|
1821
|
+
|
|
1822
|
+
// src/utils/custom-mapping-utils.ts
|
|
1823
|
+
function matchesPropertyPattern(cssProperty, pattern) {
|
|
1824
|
+
const normalizedProperty = cssProperty.toLowerCase();
|
|
1825
|
+
const normalizedPattern = pattern.toLowerCase();
|
|
1826
|
+
if (normalizedProperty === normalizedPattern) {
|
|
1827
|
+
return true;
|
|
1828
|
+
}
|
|
1829
|
+
if (normalizedPattern.endsWith("*")) {
|
|
1830
|
+
const prefix = normalizedPattern.slice(0, -1);
|
|
1831
|
+
return normalizedProperty.startsWith(prefix);
|
|
1832
|
+
}
|
|
1833
|
+
return false;
|
|
1834
|
+
}
|
|
1835
|
+
function getCustomMapping(cssProperty, value, customMapping) {
|
|
1836
|
+
if (!customMapping) {
|
|
1837
|
+
return null;
|
|
1838
|
+
}
|
|
1839
|
+
const normalizedValue = value.toLowerCase().trim();
|
|
1840
|
+
for (const [hookName, config] of Object.entries(customMapping)) {
|
|
1841
|
+
const propertyMatches = config.properties.some(
|
|
1842
|
+
(pattern) => matchesPropertyPattern(cssProperty, pattern)
|
|
1843
|
+
);
|
|
1844
|
+
if (!propertyMatches) {
|
|
1845
|
+
continue;
|
|
1846
|
+
}
|
|
1847
|
+
const valueMatches = config.values.some(
|
|
1848
|
+
(configValue) => configValue.toLowerCase().trim() === normalizedValue
|
|
1849
|
+
);
|
|
1850
|
+
if (valueMatches) {
|
|
1851
|
+
return hookName;
|
|
1852
|
+
}
|
|
1853
|
+
}
|
|
1854
|
+
return null;
|
|
1855
|
+
}
|
|
1814
1856
|
|
|
1815
1857
|
// src/rules/v9/no-hardcoded-values/handlers/colorHandler.ts
|
|
1816
1858
|
var handleColorDeclaration = (node, context) => {
|
|
@@ -1835,24 +1877,32 @@ function createColorReplacement(colorValue, cssProperty, context, positionInfo,
|
|
|
1835
1877
|
if (!hexValue) {
|
|
1836
1878
|
return null;
|
|
1837
1879
|
}
|
|
1838
|
-
const propToMatch = resolvePropertyToMatch(cssProperty);
|
|
1839
|
-
const closestHooks = findClosestColorHook(hexValue, context.valueToStylinghook, propToMatch);
|
|
1840
1880
|
const start = positionInfo.start.offset;
|
|
1841
1881
|
const end = positionInfo.end.offset;
|
|
1842
1882
|
const originalValue = originalValueText ? originalValueText.substring(start, end) : colorValue;
|
|
1843
|
-
|
|
1844
|
-
|
|
1845
|
-
|
|
1846
|
-
|
|
1847
|
-
|
|
1848
|
-
|
|
1849
|
-
|
|
1850
|
-
|
|
1851
|
-
|
|
1883
|
+
const customHook = getCustomMapping(cssProperty, colorValue, context.options?.customMapping);
|
|
1884
|
+
let closestHooks = [];
|
|
1885
|
+
if (customHook) {
|
|
1886
|
+
closestHooks = [customHook];
|
|
1887
|
+
} else {
|
|
1888
|
+
const propToMatch = resolveColorPropertyToMatch(cssProperty);
|
|
1889
|
+
closestHooks = findClosestColorHook(hexValue, context.valueToStylinghook, propToMatch);
|
|
1890
|
+
}
|
|
1891
|
+
let replacement = originalValue;
|
|
1892
|
+
let paletteHook = null;
|
|
1893
|
+
if (context.options?.preferPaletteHook && closestHooks.length > 1) {
|
|
1894
|
+
paletteHook = closestHooks.filter((hook) => hook.includes("-palette-"))[0];
|
|
1895
|
+
}
|
|
1896
|
+
if (paletteHook) {
|
|
1897
|
+
replacement = `var(${paletteHook}, ${colorValue})`;
|
|
1898
|
+
} else if (closestHooks.length === 1) {
|
|
1899
|
+
replacement = `var(${closestHooks[0]}, ${colorValue})`;
|
|
1900
|
+
}
|
|
1901
|
+
if (closestHooks.length > 0) {
|
|
1852
1902
|
return {
|
|
1853
1903
|
start,
|
|
1854
1904
|
end,
|
|
1855
|
-
replacement
|
|
1905
|
+
replacement,
|
|
1856
1906
|
// Use original value to preserve spacing
|
|
1857
1907
|
displayValue: formatSuggestionHooks(closestHooks),
|
|
1858
1908
|
hasHook: true
|
|
@@ -1861,7 +1911,7 @@ function createColorReplacement(colorValue, cssProperty, context, positionInfo,
|
|
|
1861
1911
|
return {
|
|
1862
1912
|
start,
|
|
1863
1913
|
end,
|
|
1864
|
-
replacement
|
|
1914
|
+
replacement,
|
|
1865
1915
|
// Use original value to preserve spacing
|
|
1866
1916
|
displayValue: originalValue,
|
|
1867
1917
|
hasHook: false
|
|
@@ -1909,8 +1959,14 @@ function createDimensionReplacement(parsedDimension, cssProperty, context, posit
|
|
|
1909
1959
|
return null;
|
|
1910
1960
|
}
|
|
1911
1961
|
const rawValue = parsedDimension.unit ? `${parsedDimension.number}${parsedDimension.unit}` : parsedDimension.number.toString();
|
|
1912
|
-
const
|
|
1913
|
-
|
|
1962
|
+
const customHook = getCustomMapping(cssProperty, rawValue, context.options?.customMapping);
|
|
1963
|
+
let closestHooks = [];
|
|
1964
|
+
if (customHook) {
|
|
1965
|
+
closestHooks = [customHook];
|
|
1966
|
+
} else {
|
|
1967
|
+
const propToMatch = resolveDensityPropertyToMatch(cssProperty);
|
|
1968
|
+
closestHooks = getStylingHooksForDensityValue(parsedDimension, context.valueToStylinghook, propToMatch);
|
|
1969
|
+
}
|
|
1914
1970
|
const start = positionInfo.start.offset;
|
|
1915
1971
|
const end = positionInfo.end.offset;
|
|
1916
1972
|
if (closestHooks.length === 1) {
|
|
@@ -1919,7 +1975,8 @@ function createDimensionReplacement(parsedDimension, cssProperty, context, posit
|
|
|
1919
1975
|
end,
|
|
1920
1976
|
replacement: `var(${closestHooks[0]}, ${rawValue})`,
|
|
1921
1977
|
displayValue: closestHooks[0],
|
|
1922
|
-
hasHook: true
|
|
1978
|
+
hasHook: true,
|
|
1979
|
+
isNumeric: true
|
|
1923
1980
|
};
|
|
1924
1981
|
} else if (closestHooks.length > 1) {
|
|
1925
1982
|
return {
|
|
@@ -1927,7 +1984,8 @@ function createDimensionReplacement(parsedDimension, cssProperty, context, posit
|
|
|
1927
1984
|
end,
|
|
1928
1985
|
replacement: rawValue,
|
|
1929
1986
|
displayValue: formatSuggestionHooks(closestHooks),
|
|
1930
|
-
hasHook: true
|
|
1987
|
+
hasHook: true,
|
|
1988
|
+
isNumeric: true
|
|
1931
1989
|
};
|
|
1932
1990
|
} else {
|
|
1933
1991
|
return {
|
|
@@ -1935,7 +1993,8 @@ function createDimensionReplacement(parsedDimension, cssProperty, context, posit
|
|
|
1935
1993
|
end,
|
|
1936
1994
|
replacement: rawValue,
|
|
1937
1995
|
displayValue: rawValue,
|
|
1938
|
-
hasHook: false
|
|
1996
|
+
hasHook: false,
|
|
1997
|
+
isNumeric: true
|
|
1939
1998
|
};
|
|
1940
1999
|
}
|
|
1941
2000
|
}
|
|
@@ -1976,8 +2035,14 @@ function createFontReplacement(fontValue, cssProperty, context, positionInfo) {
|
|
|
1976
2035
|
return null;
|
|
1977
2036
|
}
|
|
1978
2037
|
const rawValue = fontValue.unit ? `${fontValue.number}${fontValue.unit}` : fontValue.number.toString();
|
|
1979
|
-
const propToMatch = !fontValue.unit && isKnownFontWeight(fontValue.number) ?
|
|
1980
|
-
const
|
|
2038
|
+
const propToMatch = !fontValue.unit && isKnownFontWeight(fontValue.number) ? "font-weight" : "font-size";
|
|
2039
|
+
const customHook = getCustomMapping(propToMatch, rawValue, context.options?.customMapping);
|
|
2040
|
+
let closestHooks = [];
|
|
2041
|
+
if (customHook) {
|
|
2042
|
+
closestHooks = [customHook];
|
|
2043
|
+
} else {
|
|
2044
|
+
closestHooks = getStylingHooksForDensityValue(fontValue, context.valueToStylinghook, propToMatch);
|
|
2045
|
+
}
|
|
1981
2046
|
const start = positionInfo.start.offset;
|
|
1982
2047
|
const end = positionInfo.end.offset;
|
|
1983
2048
|
if (closestHooks.length === 1) {
|
|
@@ -1986,7 +2051,8 @@ function createFontReplacement(fontValue, cssProperty, context, positionInfo) {
|
|
|
1986
2051
|
end,
|
|
1987
2052
|
replacement: `var(${closestHooks[0]}, ${rawValue})`,
|
|
1988
2053
|
displayValue: closestHooks[0],
|
|
1989
|
-
hasHook: true
|
|
2054
|
+
hasHook: true,
|
|
2055
|
+
isNumeric: true
|
|
1990
2056
|
};
|
|
1991
2057
|
} else if (closestHooks.length > 1) {
|
|
1992
2058
|
return {
|
|
@@ -1994,7 +2060,8 @@ function createFontReplacement(fontValue, cssProperty, context, positionInfo) {
|
|
|
1994
2060
|
end,
|
|
1995
2061
|
replacement: rawValue,
|
|
1996
2062
|
displayValue: formatSuggestionHooks(closestHooks),
|
|
1997
|
-
hasHook: true
|
|
2063
|
+
hasHook: true,
|
|
2064
|
+
isNumeric: true
|
|
1998
2065
|
};
|
|
1999
2066
|
} else {
|
|
2000
2067
|
return {
|
|
@@ -2002,7 +2069,8 @@ function createFontReplacement(fontValue, cssProperty, context, positionInfo) {
|
|
|
2002
2069
|
end,
|
|
2003
2070
|
replacement: rawValue,
|
|
2004
2071
|
displayValue: rawValue,
|
|
2005
|
-
hasHook: false
|
|
2072
|
+
hasHook: false,
|
|
2073
|
+
isNumeric: true
|
|
2006
2074
|
};
|
|
2007
2075
|
}
|
|
2008
2076
|
}
|
|
@@ -2134,9 +2202,30 @@ function shadowValueToHookEntries(supportedStylinghooks) {
|
|
|
2134
2202
|
return [key, value.map((hook) => hook.name)];
|
|
2135
2203
|
});
|
|
2136
2204
|
}
|
|
2205
|
+
function reportBoxShadowViolation(node, context, valueText, hooks) {
|
|
2206
|
+
const positionInfo = {
|
|
2207
|
+
start: { offset: 0, line: 1, column: 1 },
|
|
2208
|
+
end: { offset: valueText.length, line: 1, column: valueText.length + 1 }
|
|
2209
|
+
};
|
|
2210
|
+
const replacement = createBoxShadowReplacement(
|
|
2211
|
+
valueText,
|
|
2212
|
+
hooks,
|
|
2213
|
+
context,
|
|
2214
|
+
positionInfo
|
|
2215
|
+
);
|
|
2216
|
+
if (replacement) {
|
|
2217
|
+
const replacements = [replacement];
|
|
2218
|
+
handleShorthandAutoFix(node, context, valueText, replacements);
|
|
2219
|
+
}
|
|
2220
|
+
}
|
|
2137
2221
|
var handleBoxShadowDeclaration = (node, context) => {
|
|
2138
2222
|
const cssProperty = node.property.toLowerCase();
|
|
2139
2223
|
const valueText = context.sourceCode.getText(node.value);
|
|
2224
|
+
const customHook = getCustomMapping(cssProperty, valueText, context.options?.customMapping);
|
|
2225
|
+
if (customHook) {
|
|
2226
|
+
reportBoxShadowViolation(node, context, valueText, [customHook]);
|
|
2227
|
+
return;
|
|
2228
|
+
}
|
|
2140
2229
|
const shadowHooks = shadowValueToHookEntries(context.valueToStylinghook);
|
|
2141
2230
|
const parsedCssValue = toBoxShadowValue(valueText);
|
|
2142
2231
|
if (!parsedCssValue) {
|
|
@@ -2146,20 +2235,7 @@ var handleBoxShadowDeclaration = (node, context) => {
|
|
|
2146
2235
|
const parsedValueHook = toBoxShadowValue(shadow);
|
|
2147
2236
|
if (parsedValueHook && isBoxShadowMatch(parsedCssValue, parsedValueHook)) {
|
|
2148
2237
|
if (closestHooks.length > 0) {
|
|
2149
|
-
|
|
2150
|
-
start: { offset: 0, line: 1, column: 1 },
|
|
2151
|
-
end: { offset: valueText.length, line: 1, column: valueText.length + 1 }
|
|
2152
|
-
};
|
|
2153
|
-
const replacement = createBoxShadowReplacement(
|
|
2154
|
-
valueText,
|
|
2155
|
-
closestHooks,
|
|
2156
|
-
context,
|
|
2157
|
-
positionInfo
|
|
2158
|
-
);
|
|
2159
|
-
if (replacement) {
|
|
2160
|
-
const replacements = [replacement];
|
|
2161
|
-
handleShorthandAutoFix(node, context, valueText, replacements);
|
|
2162
|
-
}
|
|
2238
|
+
reportBoxShadowViolation(node, context, valueText, closestHooks);
|
|
2163
2239
|
}
|
|
2164
2240
|
return;
|
|
2165
2241
|
}
|
|
@@ -2209,6 +2285,42 @@ function isRuleEnabled(context, ruleName3) {
|
|
|
2209
2285
|
}
|
|
2210
2286
|
}
|
|
2211
2287
|
|
|
2288
|
+
// src/rules/v9/no-hardcoded-values/ruleOptionsSchema.ts
|
|
2289
|
+
var ruleOptionsSchema = [
|
|
2290
|
+
{
|
|
2291
|
+
type: "object",
|
|
2292
|
+
properties: {
|
|
2293
|
+
reportNumericValue: {
|
|
2294
|
+
type: "string",
|
|
2295
|
+
enum: ["never", "always", "hasReplacement"],
|
|
2296
|
+
default: "always"
|
|
2297
|
+
},
|
|
2298
|
+
customMapping: {
|
|
2299
|
+
type: "object",
|
|
2300
|
+
additionalProperties: {
|
|
2301
|
+
type: "object",
|
|
2302
|
+
properties: {
|
|
2303
|
+
properties: {
|
|
2304
|
+
type: "array",
|
|
2305
|
+
items: { type: "string" }
|
|
2306
|
+
},
|
|
2307
|
+
values: {
|
|
2308
|
+
type: "array",
|
|
2309
|
+
items: { type: "string" }
|
|
2310
|
+
}
|
|
2311
|
+
},
|
|
2312
|
+
required: ["properties", "values"]
|
|
2313
|
+
}
|
|
2314
|
+
},
|
|
2315
|
+
preferPaletteHook: {
|
|
2316
|
+
type: "boolean",
|
|
2317
|
+
default: false
|
|
2318
|
+
}
|
|
2319
|
+
},
|
|
2320
|
+
additionalProperties: false
|
|
2321
|
+
}
|
|
2322
|
+
];
|
|
2323
|
+
|
|
2212
2324
|
// src/rules/v9/no-hardcoded-values/noHardcodedValueRule.ts
|
|
2213
2325
|
function defineNoHardcodedValueRule(config) {
|
|
2214
2326
|
const { ruleConfig: ruleConfig14, ruleName: ruleName3 } = config;
|
|
@@ -2222,16 +2334,24 @@ function defineNoHardcodedValueRule(config) {
|
|
|
2222
2334
|
url: url15
|
|
2223
2335
|
},
|
|
2224
2336
|
fixable: "code",
|
|
2225
|
-
messages: messages15
|
|
2337
|
+
messages: messages15,
|
|
2338
|
+
schema: ruleOptionsSchema
|
|
2226
2339
|
},
|
|
2227
2340
|
create(context) {
|
|
2228
2341
|
if (ruleName3 === "no-hardcoded-values-slds1" && isRuleEnabled(context, "@salesforce-ux/slds/no-hardcoded-values-slds2")) {
|
|
2229
2342
|
return {};
|
|
2230
2343
|
}
|
|
2344
|
+
const options = context.options[0] || {};
|
|
2345
|
+
const ruleOptions = {
|
|
2346
|
+
reportNumericValue: options.reportNumericValue || "always",
|
|
2347
|
+
customMapping: options.customMapping || {},
|
|
2348
|
+
preferPaletteHook: options.preferPaletteHook || false
|
|
2349
|
+
};
|
|
2231
2350
|
const handlerContext = {
|
|
2232
2351
|
valueToStylinghook: config.valueToStylinghook,
|
|
2233
2352
|
context,
|
|
2234
|
-
sourceCode: context.sourceCode
|
|
2353
|
+
sourceCode: context.sourceCode,
|
|
2354
|
+
options: ruleOptions
|
|
2235
2355
|
};
|
|
2236
2356
|
const colorOnlySelector = toSelector(colorProperties);
|
|
2237
2357
|
const densityOnlySelector = toSelector(densificationProperties);
|
|
@@ -2286,7 +2406,7 @@ function defineNoHardcodedValueRule(config) {
|
|
|
2286
2406
|
var ruleName = "no-hardcoded-values-slds1";
|
|
2287
2407
|
var ruleConfig12 = import_rule_messages14.default[ruleName];
|
|
2288
2408
|
var { type: type13, description: description13, url: url13, messages: messages13 } = ruleConfig12;
|
|
2289
|
-
var valueToStylinghook =
|
|
2409
|
+
var valueToStylinghook = import_next12.default.valueToStylingHooksSlds;
|
|
2290
2410
|
var no_hardcoded_values_slds1_default = defineNoHardcodedValueRule({
|
|
2291
2411
|
ruleConfig: ruleConfig12,
|
|
2292
2412
|
valueToStylinghook,
|
|
@@ -2294,12 +2414,12 @@ var no_hardcoded_values_slds1_default = defineNoHardcodedValueRule({
|
|
|
2294
2414
|
});
|
|
2295
2415
|
|
|
2296
2416
|
// src/rules/v9/no-hardcoded-values/no-hardcoded-values-slds2.ts
|
|
2297
|
-
var
|
|
2417
|
+
var import_next13 = __toESM(require("@salesforce-ux/sds-metadata/next"));
|
|
2298
2418
|
var import_rule_messages15 = __toESM(require_rule_messages());
|
|
2299
2419
|
var ruleName2 = "no-hardcoded-values-slds2";
|
|
2300
2420
|
var ruleConfig13 = import_rule_messages15.default[ruleName2];
|
|
2301
2421
|
var { type: type14, description: description14, url: url14, messages: messages14 } = ruleConfig13;
|
|
2302
|
-
var valueToStylinghook2 =
|
|
2422
|
+
var valueToStylinghook2 = import_next13.default.valueToStylingHooksCosmos;
|
|
2303
2423
|
var no_hardcoded_values_slds2_default = defineNoHardcodedValueRule({
|
|
2304
2424
|
ruleConfig: ruleConfig13,
|
|
2305
2425
|
valueToStylinghook: valueToStylinghook2,
|
|
@@ -2309,11 +2429,13 @@ var no_hardcoded_values_slds2_default = defineNoHardcodedValueRule({
|
|
|
2309
2429
|
// src/index.ts
|
|
2310
2430
|
var import_parser2 = __toESM(require("@html-eslint/parser"));
|
|
2311
2431
|
|
|
2312
|
-
// eslint.rules.json
|
|
2313
|
-
var
|
|
2432
|
+
// eslint.rules.internal.json
|
|
2433
|
+
var eslint_rules_internal_default = {
|
|
2314
2434
|
css: {
|
|
2435
|
+
"@salesforce-ux/slds/enforce-bem-usage": "warn",
|
|
2315
2436
|
"@salesforce-ux/slds/no-slds-class-overrides": "warn",
|
|
2316
2437
|
"@salesforce-ux/slds/no-deprecated-slds-classes": "warn",
|
|
2438
|
+
"@salesforce-ux/slds/no-deprecated-tokens-slds1": "error",
|
|
2317
2439
|
"@salesforce-ux/slds/lwc-token-to-slds-hook": "error",
|
|
2318
2440
|
"@salesforce-ux/slds/enforce-sds-to-slds-hooks": "warn",
|
|
2319
2441
|
"@salesforce-ux/slds/no-sldshook-fallback-for-lwctoken": "warn",
|
|
@@ -2322,7 +2444,24 @@ var eslint_rules_default = {
|
|
|
2322
2444
|
"@salesforce-ux/slds/no-slds-namespace-for-custom-hooks": "warn",
|
|
2323
2445
|
"@salesforce-ux/slds/enforce-component-hook-naming-convention": "error",
|
|
2324
2446
|
"@salesforce-ux/slds/no-slds-private-var": "warn",
|
|
2325
|
-
"@salesforce-ux/slds/no-hardcoded-values-slds2": "warn",
|
|
2447
|
+
"@salesforce-ux/slds/no-hardcoded-values-slds2": ["warn", {
|
|
2448
|
+
reportNumericValue: "hasReplacement",
|
|
2449
|
+
preferPaletteHook: true,
|
|
2450
|
+
customMapping: {
|
|
2451
|
+
"--slds-g-font-line-height-4": {
|
|
2452
|
+
properties: ["line-height"],
|
|
2453
|
+
values: ["1.5"]
|
|
2454
|
+
},
|
|
2455
|
+
"--slds-g-sizing-5": {
|
|
2456
|
+
properties: ["width", "height", "max-width", "max-height", "border*"],
|
|
2457
|
+
values: ["1rem", "16px"]
|
|
2458
|
+
},
|
|
2459
|
+
"--slds-g-sizing-content-1": {
|
|
2460
|
+
properties: ["width", "height", "max-width", "max-height", "border*"],
|
|
2461
|
+
values: ["20ch"]
|
|
2462
|
+
}
|
|
2463
|
+
}
|
|
2464
|
+
}],
|
|
2326
2465
|
"@salesforce-ux/slds/reduce-annotations": "warn"
|
|
2327
2466
|
},
|
|
2328
2467
|
html: {
|
|
@@ -2355,7 +2494,7 @@ var rules = {
|
|
|
2355
2494
|
var plugin = {
|
|
2356
2495
|
meta: {
|
|
2357
2496
|
name: "@salesforce-ux/eslint-plugin-slds",
|
|
2358
|
-
version: "1.0.
|
|
2497
|
+
version: "1.0.6-internal"
|
|
2359
2498
|
},
|
|
2360
2499
|
rules,
|
|
2361
2500
|
configs: {}
|
|
@@ -2372,10 +2511,10 @@ var cssConfigArray = [
|
|
|
2372
2511
|
plugins: {
|
|
2373
2512
|
"@salesforce-ux/slds": plugin
|
|
2374
2513
|
},
|
|
2375
|
-
rules:
|
|
2514
|
+
rules: eslint_rules_internal_default.css,
|
|
2376
2515
|
settings: {
|
|
2377
2516
|
// Pass rules configuration to context for runtime access
|
|
2378
|
-
sldsRules: { ...
|
|
2517
|
+
sldsRules: { ...eslint_rules_internal_default.css }
|
|
2379
2518
|
}
|
|
2380
2519
|
}
|
|
2381
2520
|
];
|
|
@@ -2391,7 +2530,7 @@ var htmlConfigArray = [
|
|
|
2391
2530
|
plugins: {
|
|
2392
2531
|
"@salesforce-ux/slds": plugin
|
|
2393
2532
|
},
|
|
2394
|
-
rules:
|
|
2533
|
+
rules: eslint_rules_internal_default.html
|
|
2395
2534
|
}
|
|
2396
2535
|
];
|
|
2397
2536
|
Object.assign(plugin.configs, {
|
|
@@ -2402,7 +2541,7 @@ Object.assign(plugin.configs, {
|
|
|
2402
2541
|
// legacy config for ESLint v8-
|
|
2403
2542
|
recommended: {
|
|
2404
2543
|
plugins: ["@salesforce-ux/slds"],
|
|
2405
|
-
rules:
|
|
2544
|
+
rules: eslint_rules_internal_default.html,
|
|
2406
2545
|
parser: import_parser2.default,
|
|
2407
2546
|
parserOptions: {
|
|
2408
2547
|
ecmaVersion: 2021,
|