{"version":3,"file":"react.mjs","names":[],"sources":["../../../../src/presets/react/rules/react.ts"],"sourcesContent":["/**\n * No lint rules have been configured for class components.\n */\n\nimport type { LintRules } from \"#/@types/oxlint\";\n\nconst RULES_REACT_CORRECTNESS = {\n    \"react/exhaustive-deps\": \"error\",\n    \"react/forward-ref-uses-ref\": \"error\",\n    \"react/jsx-key\": [\n        \"error\",\n        {\n            checkFragmentShorthand: true,\n            checkKeyMustBeforeSpread: false,\n            warnOnDuplicates: true,\n        },\n    ],\n    \"react/jsx-no-duplicate-props\": \"error\",\n    \"react/jsx-no-undef\": \"error\",\n    \"react/jsx-props-no-spread-multi\": \"error\",\n    \"react/no-children-prop\": \"error\",\n    \"react/no-danger-with-children\": \"error\",\n    \"react/no-render-return-value\": \"error\",\n    \"react/no-string-refs\": [\n        \"error\",\n        {\n            noTemplateLiterals: true,\n        },\n    ],\n    \"react/no-this-in-sfc\": \"error\",\n    \"react/void-dom-elements-no-children\": \"error\",\n} as const satisfies LintRules;\n\nconst RULES_REACT_NURSERY = {\n    \"react/react-compiler\": \"error\",\n} as const satisfies LintRules;\n\nconst RULES_REACT_PEDANTIC = {\n    \"react/checked-requires-onchange-or-readonly\": [\n        \"error\",\n        {\n            ignoreExclusiveCheckedAttribute: false,\n            ignoreMissingProperties: false,\n        },\n    ],\n    \"react/jsx-no-target-blank\": [\n        \"error\",\n        {\n            allowReferrer: false,\n            enforceDynamicLinks: \"always\",\n            forms: true,\n            links: true,\n            warnOnSpreadAttributes: false,\n        },\n    ],\n    \"react/jsx-no-useless-fragment\": [\n        \"error\",\n        {\n            allowExpressions: true,\n        },\n    ],\n    \"react/no-unescaped-entities\": \"error\",\n    \"react/rules-of-hooks\": \"error\",\n} as const satisfies LintRules;\n\nconst RULES_REACT_PERF = {\n    \"react/jsx-no-constructed-context-values\": \"error\",\n    \"react/no-array-index-key\": \"error\",\n} as const satisfies LintRules;\n\nconst RULES_REACT_RESTRICTION = {\n    \"react/button-has-type\": [\n        \"error\",\n        {\n            button: true,\n            reset: true,\n            submit: true,\n        },\n    ],\n    \"react/jsx-no-literals\": [\n        \"error\",\n        {\n            ignoreProps: false,\n            noAttributeStrings: true,\n            noStrings: false,\n        },\n    ],\n    \"react/no-react-children\": \"error\",\n    \"react/prefer-function-component\": [\n        \"error\",\n        {\n            allowErrorBoundary: true,\n            allowJsxUtilityClass: true,\n        },\n    ],\n} as const satisfies LintRules;\n\nconst RULES_REACT_STYLE = {\n    \"react/jsx-boolean-value\": [\n        \"error\",\n        \"never\",\n    ],\n    \"react/jsx-curly-brace-presence\": [\n        \"error\",\n        \"always\",\n    ],\n    \"react/jsx-fragments\": [\n        \"error\",\n        \"syntax\",\n    ],\n    \"react/jsx-pascal-case\": [\n        \"error\",\n        {\n            allowAllCaps: false,\n            allowLeadingUnderscore: false,\n            allowNamespace: true,\n        },\n    ],\n    \"react/self-closing-comp\": [\n        \"error\",\n        {\n            component: true,\n            html: true,\n        },\n    ],\n} as const satisfies LintRules;\n\nconst RULES_REACT_SUSPICIOUS = {\n    \"react/iframe-missing-sandbox\": \"error\",\n    \"react/jsx-no-comment-textnodes\": \"error\",\n    \"react/no-namespace\": \"error\",\n    \"react/no-unstable-nested-components\": [\n        \"error\",\n        {\n            allowAsProps: true,\n        },\n    ],\n} as const satisfies LintRules;\n\nconst RULES_REACT = {\n    ...RULES_REACT_CORRECTNESS,\n    ...RULES_REACT_NURSERY,\n    ...RULES_REACT_PEDANTIC,\n    ...RULES_REACT_PERF,\n    ...RULES_REACT_RESTRICTION,\n    ...RULES_REACT_STYLE,\n    ...RULES_REACT_SUSPICIOUS,\n} as const satisfies LintRules;\n\nexport {\n    RULES_REACT,\n    RULES_REACT_CORRECTNESS,\n    RULES_REACT_NURSERY,\n    RULES_REACT_PEDANTIC,\n    RULES_REACT_PERF,\n    RULES_REACT_RESTRICTION,\n    RULES_REACT_STYLE,\n    RULES_REACT_SUSPICIOUS,\n};\n"],"mappings":"AAMA,MAAM,0BAA0B;CAC5B,yBAAyB;CACzB,8BAA8B;CAC9B,iBAAiB,CACb,SACA;EACI,wBAAwB;EACxB,0BAA0B;EAC1B,kBAAkB;CACtB,CACJ;CACA,gCAAgC;CAChC,sBAAsB;CACtB,mCAAmC;CACnC,0BAA0B;CAC1B,iCAAiC;CACjC,gCAAgC;CAChC,wBAAwB,CACpB,SACA,EACI,oBAAoB,KACxB,CACJ;CACA,wBAAwB;CACxB,uCAAuC;AAC3C;AAEA,MAAM,sBAAsB,EACxB,wBAAwB,QAC5B;AAEA,MAAM,uBAAuB;CACzB,+CAA+C,CAC3C,SACA;EACI,iCAAiC;EACjC,yBAAyB;CAC7B,CACJ;CACA,6BAA6B,CACzB,SACA;EACI,eAAe;EACf,qBAAqB;EACrB,OAAO;EACP,OAAO;EACP,wBAAwB;CAC5B,CACJ;CACA,iCAAiC,CAC7B,SACA,EACI,kBAAkB,KACtB,CACJ;CACA,+BAA+B;CAC/B,wBAAwB;AAC5B;AAEA,MAAM,mBAAmB;CACrB,2CAA2C;CAC3C,4BAA4B;AAChC;AAEA,MAAM,0BAA0B;CAC5B,yBAAyB,CACrB,SACA;EACI,QAAQ;EACR,OAAO;EACP,QAAQ;CACZ,CACJ;CACA,yBAAyB,CACrB,SACA;EACI,aAAa;EACb,oBAAoB;EACpB,WAAW;CACf,CACJ;CACA,2BAA2B;CAC3B,mCAAmC,CAC/B,SACA;EACI,oBAAoB;EACpB,sBAAsB;CAC1B,CACJ;AACJ;AAEA,MAAM,oBAAoB;CACtB,2BAA2B,CACvB,SACA,OACJ;CACA,kCAAkC,CAC9B,SACA,QACJ;CACA,uBAAuB,CACnB,SACA,QACJ;CACA,yBAAyB,CACrB,SACA;EACI,cAAc;EACd,wBAAwB;EACxB,gBAAgB;CACpB,CACJ;CACA,2BAA2B,CACvB,SACA;EACI,WAAW;EACX,MAAM;CACV,CACJ;AACJ;AAEA,MAAM,yBAAyB;CAC3B,gCAAgC;CAChC,kCAAkC;CAClC,sBAAsB;CACtB,uCAAuC,CACnC,SACA,EACI,cAAc,KAClB,CACJ;AACJ;AAEA,MAAM,cAAc;CAChB,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;AACP"}