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
2 changes: 1 addition & 1 deletion .env
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
VITE_APP_VERSION = v2.0.1
VITE_APP_VERSION = v2.1.0
GENERATE_SOURCEMAP = false

## Public URL
Expand Down
390 changes: 390 additions & 0 deletions AGENTS.md

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { fixupConfigRules } from '@eslint/compat';
import { fixupConfigRules, fixupPluginRules } from '@eslint/compat';
import prettier from 'eslint-plugin-prettier';
import react from 'eslint-plugin-react';
import reactHooks from 'eslint-plugin-react-hooks';
Expand All @@ -23,7 +23,7 @@ export default [
plugins: {
prettier,
react,
'react-hooks': reactHooks,
'react-hooks': fixupPluginRules(reactHooks),
'jsx-a11y': jsxA11y
},

Expand Down
4 changes: 2 additions & 2 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#1677ff" />
<meta name="title" content="Mantis - React Admin Dashboard Template by CodedThemes" />
<meta name="title" content="Mantis React Admin Dashboard Template" />
<meta name="description"
content="Start your next React project with Mantis admin template. It build with Reactjs, Material-UI, SWR, and Hook for faster web development." />
content="Start your next React project with the Mantis admin template. It is built with ReactJS, Material-UI, NextJS, and SWR for faster web development." />
<meta name="keywords"
content="react admin template, material-ui react dashboard template, reactjs admin template, reactjs dashboard, react backend template" />
<meta name="author" content="CodedThemes" />
Expand Down
40 changes: 20 additions & 20 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "mantis-material-free-react",
"version": "2.0.1",
"version": "2.1.0",
"homepage": "https://mantisdashboard.com/free",
"author": {
"name": "CodedThemes",
Expand All @@ -16,30 +16,30 @@
"prettier": "prettier --write \"src/**/*.{js,jsx,ts,tsx}\""
},
"dependencies": {
"@ant-design/colors": "7.2.1",
"@ant-design/colors": "8.0.1",
"@ant-design/icons": "6.1.0",
"@emotion/cache": "11.14.0",
"@emotion/react": "11.14.0",
"@emotion/styled": "11.14.1",
"@fontsource/public-sans": "5.2.7",
"@mui/base": "5.0.0-beta.70",
"@mui/lab": "7.0.1-beta.20",
"@mui/material": "7.3.6",
"@mui/system": "7.3.6",
"@mui/x-charts": "8.22.1",
"@vitejs/plugin-react": "5.1.2",
"@mui/lab": "7.0.1-beta.22",
"@mui/material": "7.3.8",
"@mui/system": "7.3.8",
"@mui/x-charts": "8.27.0",
"@vitejs/plugin-react": "5.1.4",
"formik": "2.4.9",
"framer-motion": "12.23.26",
"lodash-es": "4.17.22",
"react": "19.2.3",
"framer-motion": "12.34.2",
"lodash-es": "4.17.23",
"react": "19.2.4",
"react-device-detect": "2.2.3",
"react-dom": "19.2.3",
"react-dom": "19.2.4",
"react-number-format": "5.4.4",
"react-router": "7.11.0",
"react-router-dom": "7.11.0",
"react-router": "7.13.0",
"react-router-dom": "7.13.0",
"simplebar-react": "3.3.2",
"swr": "2.3.8",
"vite": "7.3.0",
"swr": "2.4.0",
"vite": "7.3.1",
"vite-jsconfig-paths": "2.0.1",
"web-vitals": "5.1.0",
"yup": "1.7.1"
Expand All @@ -63,16 +63,16 @@
]
},
"devDependencies": {
"@eslint/compat": "2.0.0",
"@eslint/compat": "2.0.2",
"@eslint/eslintrc": "3.3.3",
"@eslint/js": "9.39.2",
"eslint": "9.39.2",
"@eslint/js": "10.0.1",
"eslint": "10.0.0",
"eslint-config-prettier": "10.1.8",
"eslint-plugin-jsx-a11y": "6.10.2",
"eslint-plugin-prettier": "5.5.4",
"eslint-plugin-prettier": "5.5.5",
"eslint-plugin-react": "7.37.5",
"eslint-plugin-react-hooks": "7.0.1",
"prettier": "3.7.4"
"prettier": "3.8.1"
},
"packageManager": "yarn@4.12.0"
}
36 changes: 36 additions & 0 deletions prompts/apps/cleanup-pages.prompt.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<!-- DESCRIPTION: This prompt is designed to remove all unused pages, utilities, and components from the project, attempting to keep only a clean, minimal dashboard or a specific page requested by the user. -->

<!-- AGENT : Gemini 3 Flash -->

I want to specifically focus on the **{{KEEP_PAGE_NAME}}** page/section.
Please remove all other sample pages and unnecessary components from the codebase to clean it up.

**Rules for Removal:**

1. **Identify the Page to Keep:** Ensure you clearly understand which page or section is "{{KEEP_PAGE_NAME}}". If "{{KEEP_PAGE_NAME}}" is "minimal", remove all sample pages.
2. **Delete Page Files:**
- `src/pages/component-overview/`: Remove files NOT belonging to {{KEEP_PAGE_NAME}}.
- `src/pages/extra-pages/`: Remove files NOT belonging to {{KEEP_PAGE_NAME}} (e.g., `sample-page.jsx`).
- `src/sections/`: Remove directories/files NOT used by the dashboard or the page you are keeping.
3. **Clean Global References (Crucial):**
- **Layouts:** Check `src/layout/Dashboard/Drawer/DrawerContent/Navigation` and `src/layout/Dashboard/` for any hardcoded links to deleted pages.
- **Landing/Main Page:** Check `src/pages/dashboard/` or `src/index.jsx` for imports of deleted components.
4. **Update Routing & Navigation:**
- `src/routes/MainRoutes.jsx`: Remove routes **AND** their imports for the pages being deleted.
- `src/menu-items/`:
- Update `utilities.jsx`, `page.jsx`, and `support.jsx` to remove links to deleted pages.
- Update `index.jsx` to exclude entire menu groups if all their items are removed.
5. **Final Verification:** Run a global search for the deleted page names (e.g., "color", "shadow", "sample-page") to ensure no "dead" imports or navigation items remain in the codebase.

## Example

**Input:**
I want to focus on a **minimal** dashboard. Remove all other sample pages.

**Output:**

- Deleted `src/pages/component-overview/color.jsx`, `shadows.jsx`, `typography.jsx`, etc.
- Deleted `src/pages/extra-pages/sample-page.jsx`.
- Updated `src/routes/MainRoutes.jsx` to remove sample page routes.
- Updated `src/menu-items/utilities.jsx`, `src/menu-items/page.jsx`, and `src/menu-items/support.jsx` to remove menu items.
- Updated `src/menu-items/index.jsx` to only include the dashboard group.
54 changes: 54 additions & 0 deletions prompts/auth/customize-validation-messages.prompt.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
<!-- DESCRIPTION: Customize Form Validation Messages: Allow users to easily change validation error messages for Login and Register forms by centralizing all Yup validation schema messages in a configurable file. -->

<!-- AGENT: Claude Opus 4.5 -->

## Requirements

### 1. Create Centralized Validation Messages File

Create a new file at `src/utils/validationMessages.js` that contains all validation messages as constants/config object, making them easy to find and modify.

### 2. Validation Rules & Messages

---

#### **First Name & Last Name Validation:**

| Rule | Message |
| --------------------------------------------- | -------------------------------------------------- |
| Must not be empty | "First Name is required" / "Last Name is required" |
| Minimum 2 characters | "Must be at least 2 characters" |
| Numbers are not allowed | "Numbers are not allowed" |
| Special characters not allowed (@ # $ % etc.) | "Special characters are not allowed" |
| No multiple spaces between words | "Multiple spaces are not allowed" |

---

#### **Email Validation:**

| Rule | Message |
| ----------------------------------------------------------------------- | --------------------------------------- |
| Must not be empty | "Email is required" |
| No space at beginning or end | "Email cannot start or end with spaces" |
| No spaces anywhere in email | "Spaces are not allowed in email" |
| Must contain @ | "Email must contain @" |
| Must contain domain (.com, .in, .net) | "Email must have a valid domain" |
| Only one @ allowed | "Email can only contain one @" |
| Username allows: letters, numbers, dot (.), underscore (\_), hyphen (-) | "Invalid characters in email username" |
| Minimum length 5 characters | "Email must be at least 5 characters" |

---

#### **Password Validation:**

| Rule | Message |
| ----------------------------------------------- | ------------------------------------------------------ |
| Must not be empty | "Password is required" |
| Minimum 8 characters | "Password must be at least 8 characters" |
| At least 1 Capital letter (A-Z) | "Password must contain at least one uppercase letter" |
| At least 1 Small letter (a-z) | "Password must contain at least one lowercase letter" |
| At least 1 Number (0-9) | "Password must contain at least one number" |
| At least 1 Special character (@ # $ % & ! etc.) | "Password must contain at least one special character" |
| Spaces are not allowed | "Password cannot contain spaces" |

---
89 changes: 89 additions & 0 deletions prompts/common/change-branding.prompt.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
<!-- DESCRIPTION: The "Global Rebrand" Prompt
This prompt completely rebrands the application by replacing the Project Name, Text References, Metadata, and Logo Alt Text. -->

<!-- AGENT: [Gemini 3.0 Pro] -->

Act as a Senior Frontend Developer. Your goal is to rebrand this application from **{{OLD_BRAND}}** to **{{NEW_BRAND}}** with ZERO errors. You must update all configuration files, global text references, and asset pointers.

**INPUT VARIABLES:**

- **Old Brand:** `{{OLD_BRAND}}` (e.g., Mantis)
- **New Brand:** `{{NEW_BRAND}}` (e.g., Able Pro)
- **New Package Name:** `{{NEW_PACKAGE_NAME}}` (e.g., able-pro-react-js)

---

### **Step 1: Global Text Replacement**

**Action:**

1. **Case Sensitive Search:** Search for `{{OLD_BRAND}}` and replace with `{{NEW_BRAND}}` in all text files (excluding `node_modules`).
2. **Lowercase Search:** Search for `{{OLD_BRAND_LOWER}}` (lowercase) and replace with `{{NEW_BRAND_LOWER}}` (lowercase).
- _Constraint:_ Do NOT replace external library names (e.g., `mantis-ui` if it is a third-party dependency) unless you are sure it is an internal package.
- _Constraint:_ Check URLs carefully. Update links to documentation or repositories if they should point to the new brand, but keep them if they are historical references.

---

### **Step 2: Update Configuration Files**

**Target File:** `package.json`
**Action:**

1. Update `"name"` property to `{{NEW_PACKAGE_NAME}}`.
2. Update `"description"` references.

**Target File:** `public/index.html`
**Action:**

1. Update `<title>` to `{{NEW_BRAND}} React Admin Dashboard`.
2. Update `<meta name="title">` and `<meta name="description">` content.

**Target File:** `README.md`
**Action:**

1. Replace the H1 title with `{{NEW_BRAND}} Material React Admin Template`.
2. Update installation steps and descriptions to reflect `{{NEW_BRAND}}`.

---

### **Step 3: Update Components & Assets**

**Target File:** `src/components/logo/LogoMain.jsx` & `src/components/logo/LogoIcon.jsx`
**Action:**

1. Update the `alt` text for images/SVGs to `{{NEW_BRAND}}`.
```jsx
// Example
alt = "{{NEW_BRAND}}";
```

**Target File:** `src/layout/Dashboard/Drawer/DrawerHeader/index.jsx`
**Action:**

1. Ensure the Logo component is correctly wrapped and accessible.

**Target File:** `src/layout/Dashboard/Footer.jsx`
**Action:**

1. Update copyright text to reflect the new brand or company if applicable.

---

### **Step 4: Landing Page & Content Updates**

**Target Directories:** `src/sections/landing/`, `src/pages/`
**Action:**

1. Iterate through all Landing Page blocks (Header, Feature, Demo, Testimonial, etc.).
2. Replace marketing copy: "Welcome to {{OLD_BRAND}}" -> "Welcome to {{NEW_BRAND}}".
3. Update `alt` tags in `CardMedia` or `img` elements: `alt="{{OLD_BRAND}}"` -> `alt="{{NEW_BRAND}}"`.

---

### **Final Verification Checklist**

- [ ] `package.json` name is updated.
- [ ] Browser tab title reads `{{NEW_BRAND}}...`.
- [ ] "Welcome to {{OLD_BRAND}}" no longer appears on the Landing Page.
- [ ] Footer copyright is correct.
- [ ] No broken links in `package.json` dependencies.
Loading