while-basic celaya-chatbot .cursorrules file for TypeScript

{
  "version": "1.0",
  "language": {
    "typescript": {
      "fileExtensions": [".ts", ".tsx"],
      "importOrder": [
        "^react$",
        "^react-dom.*$",
        "^next.*$",
        "^@vercel/.*$",
        "^ai$",
        "^@radix-ui/.*$",
        "^prosemirror-.*$",
        "^@/components/.*$",
        "^@/lib/.*$",
        "^@/hooks/.*$",
        "^[./]"
      ],
      "componentStructure": {
        "order": [
          "imports",
          "types",
          "interfaces",
          "constants",
          "component",
          "exports"
        ]
      }
    }
  },
  "formatting": {
    "indentStyle": "space",
    "indentSize": 2,
    "lineWidth": 80,
    "quoteStyle": {
      "typescript": "single",
      "json": "double"
    },
    "semicolons": "always",
    "trailingComma": "all"
  },
  "components": {
    "directory": "components",
    "naming": {
      "pattern": "kebab-case",
      "exceptions": ["ui"]
    },
    "structure": {
      "ui": "components/ui",
      "icons": "components/icons.tsx",
      "shared": "components"
    }
  },
  "paths": {
    "aliases": {
      "@": ".",
      "@/components": "./components",
      "@/lib": "./lib",
      "@/hooks": "./hooks"
    }
  },
  "ignore": [
    "node_modules",
    ".next",
    "public",
    ".vercel",
    "lib/db/migrations"
  ],
  "rules": {
    "typescript": {
      "noExplicitAny": "off",
      "useFragmentSyntax": "warn",
      "noUnusedImports": "warn",
      "useArrayLiterals": "warn",
      "noNewSymbol": "warn"
    },
    "a11y": {
      "useHtmlLang": "warn",
      "noHeaderScope": "warn",
      "useValidAriaRole": {
        "level": "warn",
        "ignoreNonDom": false,
        "allowInvalidRoles": ["none", "text"]
      }
    },
    "nextjs": {
      "clientComponents": {
        "directive": "'use client'",
        "location": "top",
        "required": true
      },
      "hydration": {
        "preventMismatch": {
          "dateHandling": "useEffect",
          "windowChecks": "useEffect",
          "randomValues": "useEffect",
          "dynamicClassNames": "warn"
        },
        "suppressWarning": {
          "enabled": false,
          "message": "suppressHydrationWarning should only be used when necessary"
        }
      },
      "serverComponents": {
        "defaultServer": true,
        "asyncComponents": "preferred"
      }
    },
    "react": {
      "hooks": {
        "dependencies": "error",
        "exhaustiveDeps": "warn",
        "rulesOfHooks": "error"
      },
      "performance": {
        "useMemo": "recommended",
        "useCallback": "recommended",
        "reactMemo": "selective"
      }
    }
  }
} 
css
javascript
next.js
radix-ui
react
typescript
vercel

First Time Repository

TypeScript

Languages:

CSS: 4.4KB
JavaScript: 13.0KB
TypeScript: 327.4KB
Created: 12/31/2024
Updated: 1/18/2025

All Repositories (1)