eslint-plugin-react-dom 2.0.0-next.126 → 2.0.0-next.129

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.d.ts CHANGED
@@ -35,6 +35,7 @@ declare const _default: {
35
35
  readonly "no-render": _typescript_eslint_utils_ts_eslint.RuleModule<"noRender", [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
36
36
  readonly "no-render-return-value": _typescript_eslint_utils_ts_eslint.RuleModule<"noRenderReturnValue", [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
37
37
  readonly "no-script-url": _typescript_eslint_utils_ts_eslint.RuleModule<"noScriptUrl", [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
38
+ readonly "no-string-style-prop": _typescript_eslint_utils_ts_eslint.RuleModule<"noStringStyleProp", [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
38
39
  readonly "no-unknown-property": _typescript_eslint_utils_ts_eslint.RuleModule<"dataLowercaseRequired" | "invalidPropOnTag" | "unknownProp" | "unknownPropWithStandardName", unknown[], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
39
40
  readonly "no-unsafe-iframe-sandbox": _typescript_eslint_utils_ts_eslint.RuleModule<"noUnsafeIframeSandbox", [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
40
41
  readonly "no-unsafe-target-blank": _typescript_eslint_utils_ts_eslint.RuleModule<MessageID$2, [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
@@ -67,6 +68,7 @@ declare const _default: {
67
68
  readonly "no-render": _typescript_eslint_utils_ts_eslint.RuleModule<"noRender", [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
68
69
  readonly "no-render-return-value": _typescript_eslint_utils_ts_eslint.RuleModule<"noRenderReturnValue", [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
69
70
  readonly "no-script-url": _typescript_eslint_utils_ts_eslint.RuleModule<"noScriptUrl", [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
71
+ readonly "no-string-style-prop": _typescript_eslint_utils_ts_eslint.RuleModule<"noStringStyleProp", [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
70
72
  readonly "no-unknown-property": _typescript_eslint_utils_ts_eslint.RuleModule<"dataLowercaseRequired" | "invalidPropOnTag" | "unknownProp" | "unknownPropWithStandardName", unknown[], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
71
73
  readonly "no-unsafe-iframe-sandbox": _typescript_eslint_utils_ts_eslint.RuleModule<"noUnsafeIframeSandbox", [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
72
74
  readonly "no-unsafe-target-blank": _typescript_eslint_utils_ts_eslint.RuleModule<MessageID$2, [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
package/dist/index.js CHANGED
@@ -32,6 +32,7 @@ var rules = {
32
32
  "react-dom/no-render": "error",
33
33
  "react-dom/no-render-return-value": "error",
34
34
  "react-dom/no-script-url": "warn",
35
+ "react-dom/no-string-style-prop": "error",
35
36
  "react-dom/no-unsafe-iframe-sandbox": "warn",
36
37
  "react-dom/no-unsafe-target-blank": "warn",
37
38
  "react-dom/no-use-form-state": "error",
@@ -43,7 +44,7 @@ var settings = {
43
44
 
44
45
  // package.json
45
46
  var name2 = "eslint-plugin-react-dom";
46
- var version = "2.0.0-next.126";
47
+ var version = "2.0.0-next.129";
47
48
  function createJsxElementResolver(context) {
48
49
  const { components, polymorphicPropName } = getSettingsFromContext(context);
49
50
  return {
@@ -695,7 +696,51 @@ function create11(context) {
695
696
  }
696
697
  };
697
698
  }
698
- var RULE_NAME12 = "no-unknown-property";
699
+ var RULE_NAME12 = "no-string-style-prop";
700
+ var RULE_FEATURES12 = [];
701
+ var no_string_style_prop_default = createRule({
702
+ meta: {
703
+ type: "problem",
704
+ docs: {
705
+ description: "Disallows the use of string style prop.",
706
+ [Symbol.for("rule_features")]: RULE_FEATURES12
707
+ },
708
+ messages: {
709
+ noStringStyleProp: "Do not use string style prop. Use an object instead."
710
+ },
711
+ schema: []
712
+ },
713
+ name: RULE_NAME12,
714
+ create: create12,
715
+ defaultOptions: []
716
+ });
717
+ function create12(context) {
718
+ return {
719
+ JSXAttribute(node) {
720
+ if (node.name.name !== "style") return;
721
+ const styleText = getAttributeValueText(context, node.value);
722
+ if (styleText == null) return;
723
+ context.report({
724
+ messageId: "noStringStyleProp",
725
+ node
726
+ });
727
+ }
728
+ };
729
+ }
730
+ function getAttributeValueText(context, node) {
731
+ if (node == null) return null;
732
+ switch (true) {
733
+ case (node.type === AST_NODE_TYPES.Literal && typeof node.value === "string"):
734
+ return context.sourceCode.getText(node);
735
+ case (node.type === AST_NODE_TYPES.JSXExpressionContainer && node.expression.type === AST_NODE_TYPES.Literal && typeof node.expression.value === "string"):
736
+ return context.sourceCode.getText(node.expression);
737
+ case (node.type === AST_NODE_TYPES.JSXExpressionContainer && node.expression.type === AST_NODE_TYPES.TemplateLiteral):
738
+ return context.sourceCode.getText(node.expression);
739
+ default:
740
+ return null;
741
+ }
742
+ }
743
+ var RULE_NAME13 = "no-unknown-property";
699
744
  var DEFAULTS = {
700
745
  ignore: [],
701
746
  requireDataLowercase: false
@@ -1658,11 +1703,11 @@ var no_unknown_property_default = createRule({
1658
1703
  }
1659
1704
  }]
1660
1705
  },
1661
- name: RULE_NAME12,
1662
- create: create12,
1706
+ name: RULE_NAME13,
1707
+ create: create13,
1663
1708
  defaultOptions: []
1664
1709
  });
1665
- function create12(context) {
1710
+ function create13(context) {
1666
1711
  const report = Reporter.make(context);
1667
1712
  function getIgnoreConfig() {
1668
1713
  return context.options[0]?.ignore || DEFAULTS.ignore;
@@ -1755,8 +1800,8 @@ function testReactVersion(context, comparator, version2) {
1755
1800
  }
1756
1801
 
1757
1802
  // src/rules/no-unsafe-iframe-sandbox.ts
1758
- var RULE_NAME13 = "no-unsafe-iframe-sandbox";
1759
- var RULE_FEATURES12 = [];
1803
+ var RULE_NAME14 = "no-unsafe-iframe-sandbox";
1804
+ var RULE_FEATURES13 = [];
1760
1805
  var unsafeSandboxValues = [
1761
1806
  ["allow-scripts", "allow-same-origin"]
1762
1807
  ];
@@ -1771,18 +1816,18 @@ var no_unsafe_iframe_sandbox_default = createRule({
1771
1816
  type: "problem",
1772
1817
  docs: {
1773
1818
  description: "Enforces `sandbox` attribute for `iframe` elements is not set to unsafe combinations.",
1774
- [Symbol.for("rule_features")]: RULE_FEATURES12
1819
+ [Symbol.for("rule_features")]: RULE_FEATURES13
1775
1820
  },
1776
1821
  messages: {
1777
1822
  noUnsafeIframeSandbox: "Unsafe 'sandbox' attribute value on 'iframe' component."
1778
1823
  },
1779
1824
  schema: []
1780
1825
  },
1781
- name: RULE_NAME13,
1782
- create: create13,
1826
+ name: RULE_NAME14,
1827
+ create: create14,
1783
1828
  defaultOptions: []
1784
1829
  });
1785
- function create13(context) {
1830
+ function create14(context) {
1786
1831
  const resolver = createJsxElementResolver(context);
1787
1832
  return {
1788
1833
  JSXElement(node) {
@@ -1800,8 +1845,8 @@ function create13(context) {
1800
1845
  }
1801
1846
 
1802
1847
  // src/rules/no-unsafe-target-blank.ts
1803
- var RULE_NAME14 = "no-unsafe-target-blank";
1804
- var RULE_FEATURES13 = [
1848
+ var RULE_NAME15 = "no-unsafe-target-blank";
1849
+ var RULE_FEATURES14 = [
1805
1850
  "FIX"
1806
1851
  ];
1807
1852
  function isExternalLinkLike(value) {
@@ -1817,7 +1862,7 @@ var no_unsafe_target_blank_default = createRule({
1817
1862
  type: "problem",
1818
1863
  docs: {
1819
1864
  description: 'Disallow `target="_blank"` without `rel="noreferrer noopener"`.',
1820
- [Symbol.for("rule_features")]: RULE_FEATURES13
1865
+ [Symbol.for("rule_features")]: RULE_FEATURES14
1821
1866
  },
1822
1867
  fixable: "code",
1823
1868
  hasSuggestions: true,
@@ -1827,11 +1872,11 @@ var no_unsafe_target_blank_default = createRule({
1827
1872
  },
1828
1873
  schema: []
1829
1874
  },
1830
- name: RULE_NAME14,
1831
- create: create14,
1875
+ name: RULE_NAME15,
1876
+ create: create15,
1832
1877
  defaultOptions: []
1833
1878
  });
1834
- function create14(context) {
1879
+ function create15(context) {
1835
1880
  const resolver = createJsxElementResolver(context);
1836
1881
  return {
1837
1882
  JSXElement(node) {
@@ -1879,8 +1924,8 @@ function create14(context) {
1879
1924
  }
1880
1925
  };
1881
1926
  }
1882
- var RULE_NAME15 = "no-use-form-state";
1883
- var RULE_FEATURES14 = [
1927
+ var RULE_NAME16 = "no-use-form-state";
1928
+ var RULE_FEATURES15 = [
1884
1929
  "MOD"
1885
1930
  ];
1886
1931
  var no_use_form_state_default = createRule({
@@ -1888,7 +1933,7 @@ var no_use_form_state_default = createRule({
1888
1933
  type: "problem",
1889
1934
  docs: {
1890
1935
  description: "Replaces usages of `useFormState` with `useActionState`.",
1891
- [Symbol.for("rule_features")]: RULE_FEATURES14
1936
+ [Symbol.for("rule_features")]: RULE_FEATURES15
1892
1937
  },
1893
1938
  fixable: "code",
1894
1939
  messages: {
@@ -1896,11 +1941,11 @@ var no_use_form_state_default = createRule({
1896
1941
  },
1897
1942
  schema: []
1898
1943
  },
1899
- name: RULE_NAME15,
1900
- create: create15,
1944
+ name: RULE_NAME16,
1945
+ create: create16,
1901
1946
  defaultOptions: []
1902
1947
  });
1903
- function create15(context) {
1948
+ function create16(context) {
1904
1949
  if (!context.sourceCode.text.includes("useFormState")) return {};
1905
1950
  const settings2 = getSettingsFromContext(context);
1906
1951
  if (compare(settings2.version, "19.0.0", "<")) return {};
@@ -1955,8 +2000,8 @@ function getFix3(context, node) {
1955
2000
  ];
1956
2001
  };
1957
2002
  }
1958
- var RULE_NAME16 = "no-void-elements-with-children";
1959
- var RULE_FEATURES15 = [];
2003
+ var RULE_NAME17 = "no-void-elements-with-children";
2004
+ var RULE_FEATURES16 = [];
1960
2005
  var voidElements = /* @__PURE__ */ new Set([
1961
2006
  "area",
1962
2007
  "base",
@@ -1980,18 +2025,18 @@ var no_void_elements_with_children_default = createRule({
1980
2025
  type: "problem",
1981
2026
  docs: {
1982
2027
  description: "Disallow `children` in void DOM elements.",
1983
- [Symbol.for("rule_features")]: RULE_FEATURES15
2028
+ [Symbol.for("rule_features")]: RULE_FEATURES16
1984
2029
  },
1985
2030
  messages: {
1986
2031
  noVoidElementsWithChildren: "'{{element}}' is a void element tag and must not have children."
1987
2032
  },
1988
2033
  schema: []
1989
2034
  },
1990
- name: RULE_NAME16,
1991
- create: create16,
2035
+ name: RULE_NAME17,
2036
+ create: create17,
1992
2037
  defaultOptions: []
1993
2038
  });
1994
- function create16(context) {
2039
+ function create17(context) {
1995
2040
  const resolver = createJsxElementResolver(context);
1996
2041
  return {
1997
2042
  JSXElement(node) {
@@ -2042,6 +2087,7 @@ var plugin = {
2042
2087
  "no-render": no_render_default,
2043
2088
  "no-render-return-value": no_render_return_value_default,
2044
2089
  "no-script-url": no_script_url_default,
2090
+ "no-string-style-prop": no_string_style_prop_default,
2045
2091
  "no-unknown-property": no_unknown_property_default,
2046
2092
  "no-unsafe-iframe-sandbox": no_unsafe_iframe_sandbox_default,
2047
2093
  "no-unsafe-target-blank": no_unsafe_target_blank_default,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eslint-plugin-react-dom",
3
- "version": "2.0.0-next.126",
3
+ "version": "2.0.0-next.129",
4
4
  "description": "ESLint React's ESLint plugin for React DOM related rules.",
5
5
  "keywords": [
6
6
  "react",
@@ -41,12 +41,12 @@
41
41
  "compare-versions": "^6.1.1",
42
42
  "string-ts": "^2.2.1",
43
43
  "ts-pattern": "^5.8.0",
44
- "@eslint-react/ast": "2.0.0-next.126",
45
- "@eslint-react/core": "2.0.0-next.126",
46
- "@eslint-react/eff": "2.0.0-next.126",
47
- "@eslint-react/kit": "2.0.0-next.126",
48
- "@eslint-react/shared": "2.0.0-next.126",
49
- "@eslint-react/var": "2.0.0-next.126"
44
+ "@eslint-react/ast": "2.0.0-next.129",
45
+ "@eslint-react/eff": "2.0.0-next.129",
46
+ "@eslint-react/kit": "2.0.0-next.129",
47
+ "@eslint-react/core": "2.0.0-next.129",
48
+ "@eslint-react/shared": "2.0.0-next.129",
49
+ "@eslint-react/var": "2.0.0-next.129"
50
50
  },
51
51
  "devDependencies": {
52
52
  "@types/react": "^19.1.10",