Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
.vercel
.next
pnpm-lock.yaml
.tmp
**/.git
**/.hg
**/.pnp.*
**/.svn
**/.yarn/**
**/build
**/dist/**
**/node_modules
**/temp
**/docs/**
tsconfig.json
*. env
.env
.env .*
Comment on lines +16 to +18

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix typos in env ignore patterns.

*. env and .env .* contain embedded spaces and will not match any real files. The intent is presumably *.env and .env.*.

Proposed fix
-*. env
 .env
-.env .*
+.env.*
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.prettierignore around lines 16 - 18, Fix the typos in the .prettierignore
file patterns: replace the invalid "*. env" with "*.env" and replace ".env .*"
with ".env.*" (keep the existing ".env" line as well if you want to ignore the
exact file); ensure the three patterns present are ".env", "*.env", and ".env.*"
so they correctly match environment files.

Comment on lines +16 to +18

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Invalid .env ignore patterns due to incorrect spacing. Lines 16 and 18 contain spaces that break the glob patterns (*. env and .env .*), which means .env files and their variants may NOT be properly ignored by Prettier. This creates a security risk where environment files containing sensitive credentials (API keys, database passwords, secrets) might be formatted and accidentally committed to version control.

Confidence: 5/5

Suggested Fix
Suggested change
*. env
.env
.env .*
*.env
.env
.env.*

Remove the spaces in the glob patterns:

  • Line 16: Change *. env to *.env (remove space before .env)
  • Line 18: Change .env .* to .env.* (remove space after .env)
    This ensures all .env files and their variants (.env.local, .env.production, etc.) are properly ignored by Prettier, preventing accidental exposure of sensitive credentials.
Prompt for AI

Copy this prompt to your AI IDE to fix this issue locally:

In .prettierignore at lines 16-18, there are invalid glob patterns for .env files due to incorrect spacing. On line 16, change "*. env" to "*.env" (remove the space between * and .env). On line 18, change ".env .*" to ".env.*" (remove the space between .env and .*). These spaces break the ignore patterns and create a security risk where environment files containing sensitive credentials might not be properly ignored by Prettier, potentially leading to accidental commits of secrets to version control.

📍 This suggestion applies to lines 16-18

24 changes: 24 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"singleQuote": false,
"bracketSpacing": true,
"tabWidth": 2,
"trailingComma": "all",
"semi": true,
"plugins": [
"prettier-plugin-tailwindcss",
"@ianvs/prettier-plugin-sort-imports"
],
"importOrder": [
"^react",
"^next",
" ",
"<THIRD_PARTY_MODULES>",
" ",
"^@/(.*)$",
"^[./]"
],
"importOrderSeparation": true,
"importOrderSortSpecifiers": true,
"importOrderGroupNamespaceSpecifiers": true,
"importOrderCaseInsensitive": true
Comment on lines +11 to +23

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🌐 Web query:

@ianvs/prettier-plugin-sort-imports importOrder empty string separator blank line

💡 Result:

In @ianvs/prettier-plugin-sort-imports, empty strings ("") in the importOrder array act as separators to insert blank lines between import groups. This replaces the removed importOrderSeparation option from previous versions. Example configuration from official docs: { "plugins": ["@ianvs/prettier-plugin-sort-imports"], "importOrder": ["<BUILTIN_MODULES>", "", "<THIRD_PARTY_MODULES>", "", "^[.]"] } This produces output like: import fs from 'fs'; import { debounce, reduce } from 'lodash'; import MyApp from './MyApp'; The maintainer confirmed in GitHub issue #117 that adding blank groups like "" is the intended way to achieve separation between sorted import groups.

Citations:


🏁 Script executed:

# Check if .prettierrc exists and read its content
if [ -f ".prettierrc" ]; then
  cat -n ".prettierrc"
else
  echo ".prettierrc file not found"
fi

Repository: Leadlly/leadlly.in

Length of output: 719


Use empty strings as importOrder separators, not spaces.

@ianvs/prettier-plugin-sort-imports treats an empty string "" as the blank-line separator between groups. A single-space string " " is not a recognized separator and is parsed as a regex group matching a literal space, which won't do what you expect.

Proposed fix
   "importOrder": [
     "^react",
     "^next",
-    " ",
+    "",
     "<THIRD_PARTY_MODULES>",
-    " ",
+    "",
     "^@/(.*)$",
     "^[./]"
   ],
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"importOrder": [
"^react",
"^next",
" ",
"<THIRD_PARTY_MODULES>",
" ",
"^@/(.*)$",
"^[./]"
],
"importOrderSeparation": true,
"importOrderSortSpecifiers": true,
"importOrderGroupNamespaceSpecifiers": true,
"importOrderCaseInsensitive": true
"importOrder": [
"^react",
"^next",
"",
"<THIRD_PARTY_MODULES>",
"",
"^@/(.*)$",
"^[./]"
],
"importOrderSeparation": true,
"importOrderSortSpecifiers": true,
"importOrderGroupNamespaceSpecifiers": true,
"importOrderCaseInsensitive": true
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.prettierrc around lines 11 - 23, The importOrder array uses literal space
strings (" ") as group separators which the plugin
`@ianvs/prettier-plugin-sort-imports` does not recognize; replace each " " entry
with an empty string "" in the "importOrder" configuration so the plugin
interprets them as blank-line separators between groups (leave other entries
like "^react", "<THIRD_PARTY_MODULES>", "^@/(.*)$", and "^[./]" unchanged).

}
7 changes: 7 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<!-- BEGIN:nextjs-agent-rules -->

# This is NOT the Next.js you know

This version has breaking changes — APIs, conventions, and file structure may all differ from your training data. Read the relevant guide in `node_modules/next/dist/docs/` before writing any code. Heed deprecation notices.

<!-- END:nextjs-agent-rules -->
Comment on lines +1 to +7

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Content doesn't align with coding guidelines.

As per coding guidelines, this file should "Document agent implementations and responsibilities in AGENTS.md file." The current content warns about Next.js breaking changes but doesn't document agent implementations or responsibilities.

Consider restructuring to include:

  • Which AI agents/assistants are used in this repository
  • Their specific responsibilities and tasks
  • Configuration or behavioral guidelines for each agent
  • Next.js-specific guidance can be a subsection within agent responsibilities
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@AGENTS.md` around lines 1 - 7, The AGENTS.md currently contains only a
Next.js warning and must be replaced with documented agent implementations and
responsibilities: update AGENTS.md to list each AI agent/assistant used in this
repo (name/identifier), specify for each its concrete responsibilities and
tasks, include configuration/behavioral guidelines (environment variables, rate
limits, retry logic, prompt templates), and add a Next.js-specific subsection
under the relevant agent(s) describing conventions and caveats from the existing
Next.js note; ensure headings like "Agents", "Responsibilities",
"Configuration", and "Next.js guidance" are present so reviewers can quickly
find each agent's role and settings.

1 change: 1 addition & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
@AGENTS.md
11 changes: 8 additions & 3 deletions components.json
Original file line number Diff line number Diff line change
@@ -1,17 +1,22 @@
{
"$schema": "https://ui.shadcn.com/schema.json",
"style": "new-york",
"style": "base-mira",
"rsc": true,
"tsx": true,
"tailwind": {
"config": "tailwind.config.ts",
"css": "src/app/globals.css",
"baseColor": "slate",
"baseColor": "neutral",
"cssVariables": true,
"prefix": ""
},
"iconLibrary": "hugeicons",
"rtl": false,
"aliases": {
"components": "@/components",
"utils": "@/lib/utils"
}
},
"menuColor": "default",
"menuAccent": "subtle",
"registries": {}
Comment on lines 2 to +21

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Description: Validate components.json against the declared remote JSON schema without modifying the repo.
set -euo pipefail

python - <<'PY'
import json
from urllib.request import urlopen

try:
    import jsonschema
except ImportError:
    raise SystemExit("jsonschema is not installed in this sandbox; install locally or validate in your editor/CI.")

with open("components.json", "r", encoding="utf-8") as f:
    config = json.load(f)

schema_url = config["$schema"]
with urlopen(schema_url) as response:
    schema = json.load(response)

jsonschema.Draft7Validator(schema).validate(config)
print("components.json validates against", schema_url)
PY

Repository: Leadlly/leadlly.in

Length of output: 2644


🏁 Script executed:

fd -t f "schema" --iglob "*schema*" | head -20

Repository: Leadlly/leadlly.in

Length of output: 264


🌐 Web query:

shadcn components.json valid configuration schema baseColor iconLibrary menuColor

💡 Result:

The valid configuration schema for shadcn/ui's components.json is defined at https://ui.shadcn.com/schema.json, which provides IDE validation and autocompletion. Key relevant properties: - $schema: "https://ui.shadcn.com/schema.json" - style: "new-york" (default deprecated) - tailwind.baseColor: Valid values include "neutral", "stone", "zinc", "mauve", "olive", "mist", "taupe", "slate", "gray" (varies slightly by version/docs, but these are explicitly listed in official docs). - iconLibrary: "lucide" or "radix". Defaults to "lucide" for default style, "radix" for new-york style. Used to determine icon library for components. - menuColor: Options include "default", "inverted", "default-translucent", "inverted-translucent". Controls menu color mode (solid/translucent variants). Other common properties: rsc (true/false), tsx (true/false), tailwind.config, tailwind.css, tailwind.cssVariables (true/false), aliases (object with utils, components, ui, etc.), registries (object). Example full config: { "$schema": "https://ui.shadcn.com/schema.json", "style": "new-york", "tailwind": { "baseColor": "neutral", "cssVariables": true }, "iconLibrary": "lucide", "menuColor": "default", "rsc": true, "tsx": true, "aliases": { "components": "@/components", "utils": "@/lib/utils" } } Official docs recommend running npx shadcn@latest init to generate with prompts. Changes to baseColor after init require re-init or manual CSS updates if using cssVariables.

Citations:


🏁 Script executed:

fd -type f --glob "*schema*"

Repository: Leadlly/leadlly.in

Length of output: 232


🏁 Script executed:

grep -r "base-mira" --include="*.json" --include="*.ts" --include="*.tsx" --include="*.js" | head -10

Repository: Leadlly/leadlly.in

Length of output: 101


🏁 Script executed:

cat components.json

Repository: Leadlly/leadlly.in

Length of output: 529


Fix unsupported config values in components.json that will break component generation.

The config references values not in the official shadcn schema:

  • "style": "base-mira" — not a standard style (only "new-york" or default documented)
  • "iconLibrary": "hugeicons" — unsupported; only "lucide" or "radix" are valid
  • "rtl" and "menuAccent" — not documented standard fields

These will cause failures when running shadcn's component generation CLI. Align with supported values or verify against the actual generator your project uses.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@components.json` around lines 2 - 21, components.json contains unsupported
keys/values that break shadcn generation: change "style": "base-mira" to a
supported value (e.g., "new-york" or remove the key to use default), set
"iconLibrary": to a supported option ("lucide" or "radix"), and remove or
relocate non-standard keys "rtl" and "menuAccent" (delete them from
components.json or move them to your own app config) so the file conforms to the
shadcn schema; validate the file after edits to ensure generation succeeds.

}
18 changes: 18 additions & 0 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import nextCoreWebVitals from "eslint-config-next/core-web-vitals";
import nextTypescript from "eslint-config-next/typescript";

const eslintConfig = [
...nextCoreWebVitals,
...nextTypescript,
{
ignores: [
"node_modules/**",
".next/**",
"out/**",
"build/**",
"next-env.d.ts",
],
},
];

export default eslintConfig;
15 changes: 1 addition & 14 deletions next.config.mjs
Original file line number Diff line number Diff line change
@@ -1,17 +1,4 @@
/** @type {import('next').NextConfig} */
const nextConfig = {
webpack: (config) => {
config.resolve.alias.canvas = false;
config.module.rules.push({
test: /\.(pdf)$/,
loader: "file-loader",

type: "asset/resource",
});

return config;
},
swcMinify: false,
};
const nextConfig = {};

export default nextConfig;
Loading