161 | {body} 162 |
163 | ); 164 | }); 165 | FormMessage.displayName = "FormMessage"; 166 | 167 | export { 168 | useFormField, 169 | Form, 170 | FormItem, 171 | FormLabel, 172 | FormControl, 173 | FormDescription, 174 | FormMessage, 175 | FormField, 176 | }; 177 | -------------------------------------------------------------------------------- /.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { browser: true, es2020: true }, 4 | extends: [ 5 | "eslint:recommended", 6 | "plugin:@typescript-eslint/strict-type-checked", 7 | "plugin:react/recommended", 8 | "plugin:import/errors", 9 | "plugin:import/warnings", 10 | "plugin:react/jsx-runtime", 11 | "plugin:react-hooks/recommended", 12 | "plugin:jsx-a11y/recommended", 13 | "plugin:@cspell/recommended", 14 | "plugin:prettier/recommended", 15 | ], 16 | ignorePatterns: ["dist", ".eslintrc.cjs"], 17 | parser: "@typescript-eslint/parser", 18 | parserOptions: { 19 | ecmaVersion: "latest", 20 | sourceType: "module", 21 | project: "./tsconfig.json", 22 | tsconfigRootDir: __dirname, 23 | ecmaFeatures: { 24 | jsx: true, 25 | }, 26 | }, 27 | plugins: [ 28 | "react-refresh", 29 | "react", 30 | "readable-tailwind", 31 | "@typescript-eslint", 32 | ], 33 | rules: { 34 | "react-refresh/only-export-components": [ 35 | "warn", 36 | { allowConstantExport: true }, 37 | ], 38 | "prettier/prettier": [ 39 | "error", 40 | { 41 | printWidth: 80, 42 | trailingComma: "es5", 43 | bracketSpacing: true, 44 | bracketSameLine: false, 45 | arrowParens: "always", 46 | endOfLine: "auto", 47 | }, 48 | ], 49 | "react/jsx-uses-react": "error", 50 | "react/jsx-uses-vars": "error", 51 | "react/function-component-definition": [ 52 | "error", 53 | { 54 | namedComponents: "arrow-function", 55 | unnamedComponents: "arrow-function", 56 | }, 57 | ], 58 | "arrow-body-style": ["error", "as-needed"], 59 | "no-unused-vars": "error", 60 | "react/jsx-filename-extension": ["warn", { extensions: [".jsx", ".tsx"] }], 61 | "import/no-unresolved": "error", 62 | "import/no-duplicates": "error", 63 | "react/prop-types": "off", 64 | "react/no-this-in-sfc": "error", 65 | "no-useless-call": "error", 66 | "no-nested-ternary": "off", 67 | "no-useless-return": "error", 68 | "no-console": ["error", { allow: ["log", "warn", "error"] }], 69 | "@typescript-eslint/no-shadow": "error", 70 | "@typescript-eslint/no-unsafe-assignment": "off", // research on this 71 | "@typescript-eslint/no-unsafe-call": "off", // research on this 72 | // "import/order": [ 73 | // "error", 74 | // { 75 | // groups: [ 76 | // "builtin", 77 | // "index", 78 | // "sibling", 79 | // "parent", 80 | // "internal", 81 | // "external", 82 | // "object", 83 | // "type", 84 | // ], 85 | // }, 86 | // ], 87 | // "import/exports-last": "error", 88 | // "import/newline-after-import": "error", 89 | "import/order": [ 90 | "error", 91 | { 92 | groups: [ 93 | "builtin", // Built-in Node.js modules 94 | "external", // External modules from node_modules 95 | "internal", // Internal packages 96 | ["sibling", "parent"], // Parent and sibling modules 97 | "index", // Index files 98 | "unknown", // Unknown group 99 | ], 100 | pathGroups: [ 101 | { 102 | pattern: "react|react-dom|react-router-dom", // Libraries 103 | group: "external", 104 | position: "before", 105 | }, 106 | { 107 | pattern: "components/**", // Components 108 | group: "internal", 109 | position: "after", 110 | }, 111 | { 112 | pattern: "utils/**", // Utils (functions) 113 | group: "internal", 114 | position: "after", 115 | }, 116 | { 117 | pattern: "const/**", // Constants 118 | group: "internal", 119 | position: "after", 120 | }, 121 | { 122 | pattern: "redux/**", // Redux files 123 | group: "internal", 124 | position: "after", 125 | }, 126 | { 127 | pattern: "selectors/**", // Selectors 128 | group: "internal", 129 | position: "after", 130 | }, 131 | { 132 | pattern: "images/**", // Images 133 | group: "internal", 134 | position: "after", 135 | }, 136 | { 137 | pattern: "style/**", // Styles 138 | group: "internal", 139 | position: "after", 140 | }, 141 | ], 142 | pathGroupsExcludedImportTypes: ["builtin", "external"], 143 | alphabetize: { 144 | order: "asc", // Alphabetize within each group 145 | caseInsensitive: true, 146 | }, 147 | }, 148 | ], 149 | }, 150 | settings: { 151 | react: { 152 | version: "detect", 153 | }, 154 | "import/parsers": { 155 | "@typescript-eslint/parser": [".ts", ".tsx"], 156 | }, 157 | "import/resolver": { 158 | typescript: { 159 | alwaysTryTypes: true, 160 | project: "./tsconfig.json", 161 | }, 162 | node: { 163 | extensions: [".js", ".jsx", ".ts", ".tsx"], 164 | }, 165 | }, 166 | }, 167 | }; 168 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | We as members, contributors, and leaders pledge to make participation in our 6 | community a harassment-free experience for everyone, regardless of age, body 7 | size, visible or invisible disability, ethnicity, sex characteristics, gender 8 | identity and expression, level of experience, education, socio-economic status, 9 | nationality, personal appearance, race, religion, or sexual identity 10 | and orientation. 11 | 12 | We pledge to act and interact in ways that contribute to an open, welcoming, 13 | diverse, inclusive, and healthy community. 14 | 15 | ## Our Standards 16 | 17 | Examples of behavior that contributes to a positive environment for our 18 | community include: 19 | 20 | * Demonstrating empathy and kindness toward other people 21 | * Being respectful of differing opinions, viewpoints, and experiences 22 | * Giving and gracefully accepting constructive feedback 23 | * Accepting responsibility and apologizing to those affected by our mistakes, 24 | and learning from the experience 25 | * Focusing on what is best not just for us as individuals, but for the 26 | overall community 27 | 28 | Examples of unacceptable behavior include: 29 | 30 | * The use of sexualized language or imagery, and sexual attention or 31 | advances of any kind 32 | * Trolling, insulting or derogatory comments, and personal or political attacks 33 | * Public or private harassment 34 | * Publishing others' private information, such as a physical or email 35 | address, without their explicit permission 36 | * Other conduct which could reasonably be considered inappropriate in a 37 | professional setting 38 | 39 | ## Enforcement Responsibilities 40 | 41 | Community leaders are responsible for clarifying and enforcing our standards of 42 | acceptable behavior and will take appropriate and fair corrective action in 43 | response to any behavior that they deem inappropriate, threatening, offensive, 44 | or harmful. 45 | 46 | Community leaders have the right and responsibility to remove, edit, or reject 47 | comments, commits, code, wiki edits, issues, and other contributions that are 48 | not aligned to this Code of Conduct, and will communicate reasons for moderation 49 | decisions when appropriate. 50 | 51 | ## Scope 52 | 53 | This Code of Conduct applies within all community spaces, and also applies when 54 | an individual is officially representing the community in public spaces. 55 | Examples of representing our community include using an official e-mail address, 56 | posting via an official social media account, or acting as an appointed 57 | representative at an online or offline event. 58 | 59 | ## Enforcement 60 | 61 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 62 | reported to the community leaders responsible for enforcement at 63 | . 64 | All complaints will be reviewed and investigated promptly and fairly. 65 | 66 | All community leaders are obligated to respect the privacy and security of the 67 | reporter of any incident. 68 | 69 | ## Enforcement Guidelines 70 | 71 | Community leaders will follow these Community Impact Guidelines in determining 72 | the consequences for any action they deem in violation of this Code of Conduct: 73 | 74 | ### 1. Correction 75 | 76 | **Community Impact**: Use of inappropriate language or other behavior deemed 77 | unprofessional or unwelcome in the community. 78 | 79 | **Consequence**: A private, written warning from community leaders, providing 80 | clarity around the nature of the violation and an explanation of why the 81 | behavior was inappropriate. A public apology may be requested. 82 | 83 | ### 2. Warning 84 | 85 | **Community Impact**: A violation through a single incident or series 86 | of actions. 87 | 88 | **Consequence**: A warning with consequences for continued behavior. No 89 | interaction with the people involved, including unsolicited interaction with 90 | those enforcing the Code of Conduct, for a specified period of time. This 91 | includes avoiding interactions in community spaces as well as external channels 92 | like social media. Violating these terms may lead to a temporary or 93 | permanent ban. 94 | 95 | ### 3. Temporary Ban 96 | 97 | **Community Impact**: A serious violation of community standards, including 98 | sustained inappropriate behavior. 99 | 100 | **Consequence**: A temporary ban from any sort of interaction or public 101 | communication with the community for a specified period of time. No public or 102 | private interaction with the people involved, including unsolicited interaction 103 | with those enforcing the Code of Conduct, is allowed during this period. 104 | Violating these terms may lead to a permanent ban. 105 | 106 | ### 4. Permanent Ban 107 | 108 | **Community Impact**: Demonstrating a pattern of violation of community 109 | standards, including sustained inappropriate behavior, harassment of an 110 | individual, or aggression toward or disparagement of classes of individuals. 111 | 112 | **Consequence**: A permanent ban from any sort of public interaction within 113 | the community. 114 | 115 | ## Attribution 116 | 117 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], 118 | version 2.0, available at 119 | https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. 120 | 121 | Community Impact Guidelines were inspired by [Mozilla's code of conduct 122 | enforcement ladder](https://github.com/mozilla/diversity). 123 | 124 | [homepage]: https://www.contributor-covenant.org 125 | 126 | For answers to common questions about this code of conduct, see the FAQ at 127 | https://www.contributor-covenant.org/faq. Translations are available at 128 | https://www.contributor-covenant.org/translations. 129 | -------------------------------------------------------------------------------- /docs/_images/react.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/components/ui/DropDownMenu/DropDownMenu.tsx: -------------------------------------------------------------------------------- 1 | "use client"; 2 | 3 | import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu"; 4 | import { Check, ChevronRight, Circle } from "lucide-react"; 5 | import { 6 | ComponentPropsWithoutRef, 7 | ElementRef, 8 | forwardRef, 9 | HTMLAttributes, 10 | } from "react"; 11 | import { cn } from "@Utils/className"; 12 | 13 | interface DropdownMenuProps extends DropdownMenuPrimitive.DropdownMenuProps { 14 | Trigger?: typeof DropdownMenuTrigger; 15 | Content?: typeof DropdownMenuContent; 16 | Item?: typeof DropdownMenuItem; 17 | CheckboxItem?: typeof DropdownMenuCheckboxItem; 18 | RadioItem?: typeof DropdownMenuRadioItem; 19 | Label?: typeof DropdownMenuLabel; 20 | Separator?: typeof DropdownMenuSeparator; 21 | Shortcut?: typeof DropdownMenuShortcut; 22 | Group?: typeof DropdownMenuGroup; 23 | Portal?: typeof DropdownMenuPortal; 24 | Sub?: typeof DropdownMenuSub; 25 | SubContent?: typeof DropdownMenuSubContent; 26 | SubTrigger?: typeof DropdownMenuSubTrigger; 27 | RadioGroup?: typeof DropdownMenuRadioGroup; 28 | } 29 | const DropdownMenu = (props: DropdownMenuProps) => ( 30 |420 | The React Framework – created and maintained by @vercel. 421 |
422 |
2 |
3 |
4 |
5 |
9 | 🚀 Modern React Template: 2024-Ready and Pre-Configured! 🚀 10 |
11 |13 | Live! 14 |
15 |16 | 📖 Documentation | 17 | 🚀 Getting Started | 18 | 🙌 Join Us 19 |
20 | 21 |