[
  {
    "path": ".editorconfig",
    "content": "# editorconfig.org\nroot = true\n\n[*]\nindent_style = space\nindent_size = 2\nend_of_line = lf\ncharset = utf-8\ntrim_trailing_whitespace = true\ninsert_final_newline = true\n"
  },
  {
    "path": ".eslintrc.js",
    "content": "/**\n * @type {import(\"eslint\").Linter.Config}\n */\nconst eslintConfig = {\n  env: {\n    browser: true,\n    commonjs: true,\n    es2022: true,\n    node: true,\n  },\n  extends: [\n    \"eslint:recommended\",\n    \"plugin:eslint-comments/recommended\",\n    \"plugin:react/recommended\",\n    \"plugin:react-hooks/recommended\",\n    \"plugin:jsx-a11y/strict\",\n    \"next/core-web-vitals\",\n    \"plugin:@typescript-eslint/recommended\",\n    \"standard\",\n    \"standard-with-typescript\",\n  ],\n  overrides: [],\n  parserOptions: {\n    ecmaVersion: \"latest\",\n    ecmaFeatures: {\n      jsx: true,\n    },\n  },\n  plugins: [\n    \"const-case\",\n    \"editorconfig\",\n    \"filenames\",\n    \"simple-import-sort\",\n    \"import\",\n    \"react\",\n    \"jsx-a11y\",\n    \"json-format\",\n    \"tailwindcss\",\n  ],\n  rules: {\n    \"comma-dangle\": [\"warn\", \"always-multiline\"],\n    \"no-console\": \"warn\",\n    quotes: [\"warn\", \"double\"],\n    \"space-before-function-paren\": [\"warn\", \"never\"],\n  },\n  settings: {\n    react: {\n      version: \"detect\",\n    },\n  },\n}\n\nmodule.exports = eslintConfig\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.yml",
    "content": "name: Bug Report\ndescription: Create a report to help us improve\ntitle: \"[Bug]: \"\nlabels: [\"🚦 status: awaiting triage\"]\nbody:\n  - type: textarea\n    id: description\n    attributes:\n      label: Description\n      description: A clear and concise description of what the bug is.\n      placeholder: When I go to the home page, the image doesn't load and returns a 404 error code\n    validations:\n      required: true\n\n  - type: textarea\n    id: reproduce\n    attributes:\n      label: To Reproduce\n      description: Steps to reproduce the behavior you were facing.\n      placeholder: How can someone reproduce the behavior you were facing?\n      value: |\n        1. Go to '...'\n        2. Click on '....'\n        3. Scroll down to '....'\n        4. See error\n    validations:\n      required: true\n\n  - type: textarea\n    attributes:\n      label: Anything else?\n      description: |\n        Links? References? Anything that will give us more context about the issue you are encountering!\n\n        Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in.\n    validations:\n      required: false\n\n  - type: checkboxes\n    id: guidelines\n    attributes:\n      label: Code of Conduct\n      options:\n        - label: I agree to follow this project's [Code of Conduct](https://github.com/FrancescoXX/4c-site/blob/main/CODE_OF_CONDUCT.md)\n          required: true\n\n\n  \n  - type: markdown\n    attributes:\n      value: |\n        ### Call to Action\n\n        To Commit on this project you should use `npm run commit`. Do not use `git commit` to avoid unwanted issues.\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "content": "# blank_issues_enabled: false\n# contact_links:\n#   - name: 4C Discussions\n#     url: https://github.com/FrancescoXX/4c-site/discussions\n#     about: Please ask and answer questions here.\n#   - name: Discord Community\n#     url: https://4c.rocks/join\n#     about: Join 4C Community, here\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/documentation.yml",
    "content": "name: \"Documentation Report\"\ndescription: Suggest improvements for the docs\ntitle: '[Docs]: '\nlabels: ['🚦 status: awaiting triage']\nbody:\n  - type: textarea\n    id: description\n    attributes:\n      label: Description\n      description: A clear and concise description of what have to be updated.\n      placeholder: When I go to the commands.md doc, I notice that it doesn't have a table of contents\n    validations:\n      required: true\n\n  - type: textarea\n    attributes:\n      label: Anything else?\n      description: |\n        Links? References? Anything that will give us more context about the issue you are encountering!\n\n        Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in.\n    validations:\n      required: false\n\n  - type: checkboxes\n    id: guidelines\n    attributes:\n      label: Code of Conduct\n      options:\n        - label: I agree to follow this project's [Code of Conduct](https://github.com/FrancescoXX/4c-site/blob/main/CODE_OF_CONDUCT.md)\n          required: true\n  - type: markdown\n    attributes:\n      value: |\n        ### Call to Action\n\n        To Commit on this project you should use `npm run commit`. Do not use `git commit` to avoid unwanted issues.\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.yml",
    "content": "name: Feature Request\ndescription: Suggest an idea for this project\ntitle: '[Feat]: '\nlabels: ['🚦 status: awaiting triage']\nbody:\n  - type: textarea\n    id: description\n    attributes:\n      label: Description\n      description: Is your feature request related to a problem? Please describe.\n      placeholder: \"I'm always frustrated when [...]\"\n      value: \"I'm always frustrated when [...]\"\n    validations:\n      required: true\n\n  - type: textarea\n    id: solution\n    attributes:\n      label: Solution\n      description: A clear and concise description of what you want to happen.\n      placeholder: I want a discord command `!server` to be added where we can view the server member count\n      value: 'I want'\n    validations:\n      required: false\n\n  - type: textarea\n    attributes:\n      label: Anything else?\n      description: |\n        Links? References? Anything that will give us more context about the issue you are encountering!\n\n        Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in.\n    validations:\n      required: false\n\n  - type: checkboxes\n    id: guidelines\n    attributes:\n      label: Code of Conduct\n      options:\n        - label: I agree to follow this project's [Code of Conduct](https://github.com/FrancescoXX/4c-site/blob/main/CODE_OF_CONDUCT.md)\n          required: true\n  - type: markdown\n    attributes:\n      value: |\n        ### Call to Action\n\n        To Commit on this project you should use `npm run commit`. Do not use `git commit` to avoid unwanted issues.\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/other.yml",
    "content": "name: Other\ndescription: Use this, Please DO NOT create blank issues\ntitle: '[Other]: '\nlabels: ['🚦 status: awaiting triage']\nbody:\n  - type: textarea\n    id: description\n    attributes:\n      label: Description\n      description: A clear and concise description of what this issue is about.\n      placeholder: If you are not using the wiki tab, please hide it\n    validations:\n      required: true\n\n  - type: textarea\n    attributes:\n      label: Anything else?\n      description: |\n        Links? References? Anything that will give us more context about the issue you are encountering!\n\n        Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in.\n    validations:\n      required: false\n\n  - type: checkboxes\n    id: guidelines\n    attributes:\n      label: Code of Conduct\n      options:\n        - label: I agree to follow this project's [Code of Conduct](https://github.com/FrancescoXX/4c-site/blob/main/CODE_OF_CONDUCT.md)\n          required: true\n\n  - type: markdown\n    attributes:\n      value: |\n        ### Call to Action\n\n        To Commit on this project you should use `npm run commit`. Do not use `git commit` to avoid unwanted issues.\n"
  },
  {
    "path": ".github/PULL_REQUEST_TEMPLATE/pull_request_template.md",
    "content": "## Related Issue\n\nCloses: # <!-- issue number that will be closed through this PR -->\n\n### Describe the changes you've made\n\n<!-- Give a clear description of what modifications you have made -->\n\n## How has this been tested?\n\n<!-- Describe how have you verified the changes made -->\n\n## Checklist\n\n<!--\nExample how to mark a checkbox:-\n- [x] I have performed a self-review of my own code.\n-->\n\n- [ ] I have performed a self-review of my own code.\n- [ ] I have commented on my code, particularly wherever it was hard to understand.\n- [ ] I have made corresponding changes to the documentation.\n- [ ] I have followed the code style of the project\n- [ ] I have tested my code, and it works without errors\n\n## Additional Information\n\n<!-- Screenshots, notes for reviewers, anything? -->\n\n## Code of Conduct\n\n- [ ] I agree to follow this project's [Code of Conduct](https://github.com/FrancescoXX/4c-site/blob/main/CODE_OF_CONDUCT.md)## Related Issue\n\nCloses: # <!-- issue number that will be closed through this PR -->\n\n### Describe the changes you've made\n\n<!-- Give a clear description of what modifications you have made -->\n\n## How has this been tested?\n\n<!-- Describe how have you verified the changes made -->\n\n## Checklist\n\n<!--\nExample how to mark a checkbox:-\n- [x] I have performed a self-review of my own code.\n-->\n\n- [ ] I have performed a self-review of my own code.\n- [ ] I have commented on my code, particularly wherever it was hard to understand.\n- [ ] I have made corresponding changes to the documentation.\n- [ ] I have followed the code style of the project\n- [ ] I have tested my code, and it works without errors\n\n## Additional Information\n\n<!-- Screenshots, notes for reviewers, anything? -->\n\n## Code of Conduct\n\n- [ ] I agree to follow this project's [Code of Conduct](https://github.com/FrancescoXX/4c-site/blob/main/CODE_OF_CONDUCT.md)\n\n**Please keep up with the [Discord Conversation](https://discord.gg/4c) for more information.**\n\n<!-- Thanks for contributing, keep up the good work 🔥 -->\n"
  },
  {
    "path": ".github/dependabot.yml",
    "content": "version: 2\nupdates:\n  # Update GitHub Actions\n  - package-ecosystem: \"github-actions\"\n    directory: \"/\"\n    schedule:\n      interval: \"daily\"\n"
  },
  {
    "path": ".github/workflows/greetings.yml",
    "content": "name: Greetings\n\non: [pull_request_target, issues]\n\njobs:\n  greeting:\n    runs-on: ubuntu-latest\n    permissions:\n      issues: write\n      pull-requests: write\n    steps:\n      - uses: actions/first-interaction@v1\n        with:\n          repo-token: ${{ secrets.GITHUB_TOKEN }}\n          issue-message: \"Congratulations, ${{ github.actor }}! 🎉 Thank you for creating your first issue in 4C. Your contribution is greatly appreciated and we look forward to working with you to resolve the issue. Keep up the great work!\"\n          pr-message: \"Great job, ${{ github.actor }}! 🎉 Thank you for submitting your first pull request to 4C. Your contribution is valuable and we appreciate your efforts to improve our project. We'll review your changes and provide feedback as soon as possible. Keep up the great work!\"\n"
  },
  {
    "path": ".github/workflows/json-syntax-check.yml",
    "content": "name: JSON Syntax Check\n\non:\n  push:\n    paths:\n      - \"**.json\"\n  pull_request:\n\njobs:\n  test:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v3\n      - name: json-syntax-check\n        uses: limitusus/json-syntax-check@v2\n        with:\n          pattern: \"\\\\.json$\"\n"
  },
  {
    "path": ".github/workflows/lint.yml",
    "content": "name: Lint\n\non:\n  - push\n  - pull_request\n\njobs:\n  lint:\n    name: Lint Before Release\n    runs-on: ubuntu-latest\n\n    steps:\n      - uses: actions/checkout@v3\n      - uses: actions/setup-node@v4\n        with:\n          node-version: 18.x\n      - name: Install dependencies\n        run: yarn install --frozen-lockfile\n      - name: Lint\n        run: yarn lint\n"
  },
  {
    "path": ".github/workflows/release.yml",
    "content": "name: Release\non:\n  push:\n    branches:\n      - main\n\njobs:\n  lint:\n    name: Lint Before Release\n    if: github.repository_owner == 'FrancescoXX'\n    runs-on: ubuntu-latest\n\n    steps:\n      - uses: actions/checkout@v3\n      - uses: actions/setup-node@v4\n        with:\n          node-version: 18.x\n      - name: Install dependencies\n        run: yarn install --frozen-lockfile\n      - name: Lint\n        run: yarn lint\n\n  build:\n    name: Try to Build Before Release\n    if: github.repository_owner == 'FrancescoXX'\n    runs-on: ubuntu-latest\n    needs: lint\n\n    steps:\n      - uses: actions/checkout@v3\n      - uses: actions/setup-node@v4\n        with:\n          node-version: 18.x\n      - name: Install dependencies\n        run: yarn install --frozen-lockfile\n      - name: Build\n        run: yarn build\n\n  release:\n    name: Create GitHub Release\n    if: github.repository_owner == 'FrancescoXX'\n    runs-on: ubuntu-latest\n    needs: build\n\n    steps:\n      - uses: actions/checkout@v3\n      - uses: actions/setup-node@v4\n        with:\n          node-version: 18.x\n      - name: Install dependencies\n        run: yarn install --frozen-lockfile\n      - name: Release package\n        run: yarn release\n        env:\n          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n"
  },
  {
    "path": ".gitignore",
    "content": "package-lock.json\n\n\n# Created by https://www.toptal.com/developers/gitignore/api/git,node,react,nextjs,vercel,dotenv,yarn,fish,linux,zsh,windows,osx,macos,emacs,vim,visualstudiocode,sublimetext,notepadpp,ssh,tower,storybookjs,now,replit\n# Edit at https://www.toptal.com/developers/gitignore?templates=git,node,react,nextjs,vercel,dotenv,yarn,fish,linux,zsh,windows,osx,macos,emacs,vim,visualstudiocode,sublimetext,notepadpp,ssh,tower,storybookjs,now,replit\n\n### dotenv ###\n.env\n\n### Emacs ###\n# -*- mode: gitignore; -*-\n*~\n\\#*\\#\n/.emacs.desktop\n/.emacs.desktop.lock\n*.elc\nauto-save-list\ntramp\n.\\#*\n\n# Org-mode\n.org-id-locations\n*_archive\n\n# flymake-mode\n*_flymake.*\n\n# eshell files\n/eshell/history\n/eshell/lastdir\n\n# elpa packages\n/elpa/\n\n# reftex files\n*.rel\n\n# AUCTeX auto folder\n/auto/\n\n# cask packages\n.cask/\ndist/\n\n# Flycheck\nflycheck_*.el\n\n# server auth directory\n/server/\n\n# projectiles files\n.projectile\n\n# directory configuration\n.dir-locals.el\n\n# network security\n/network-security.data\n\n\n### Fish ###\nfishd.*\nfish_history\nfish_variables\nconfig.local.fish\n\n### Git ###\n# Created by git for backups. To disable backups in Git:\n# $ git config --global mergetool.keepBackup false\n*.orig\n\n# Created by git when using merge tools for conflicts\n*.BACKUP.*\n*.BASE.*\n*.LOCAL.*\n*.REMOTE.*\n*_BACKUP_*.txt\n*_BASE_*.txt\n*_LOCAL_*.txt\n*_REMOTE_*.txt\n\n### Linux ###\n\n# temporary files which can be created if a process still has a handle open of a deleted file\n.fuse_hidden*\n\n# KDE directory preferences\n.directory\n\n# Linux trash folder which might appear on any partition or disk\n.Trash-*\n\n# .nfs files are created when an open file is removed but is still being accessed\n.nfs*\n\n### macOS ###\n# General\n.DS_Store\n.AppleDouble\n.LSOverride\n\n# Icon must end with two \\r\nIcon\n\n\n# Thumbnails\n._*\n\n# Files that might appear in the root of a volume\n.DocumentRevisions-V100\n.fseventsd\n.Spotlight-V100\n.TemporaryItems\n.Trashes\n.VolumeIcon.icns\n.com.apple.timemachine.donotpresent\n\n# Directories potentially created on remote AFP share\n.AppleDB\n.AppleDesktop\nNetwork Trash Folder\nTemporary Items\n.apdisk\n\n### macOS Patch ###\n# iCloud generated files\n*.icloud\n\n### NextJS ###\n# dependencies\n/node_modules\n/.pnp\n.pnp.js\n\n# testing\n/coverage\n\n# next.js\n/.next/\n/out/\n\n# production\n/build\n\n# misc\n*.pem\n\n# debug\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\n.pnpm-debug.log*\n\n# local env files\n.env*.local\n\n# vercel\n.vercel\n\n# typescript\n*.tsbuildinfo\nnext-env.d.ts\n\n### Node ###\n# Logs\nlogs\n*.log\nlerna-debug.log*\n\n# Diagnostic reports (https://nodejs.org/api/report.html)\nreport.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json\n\n# Runtime data\npids\n*.pid\n*.seed\n*.pid.lock\n\n# Directory for instrumented libs generated by jscoverage/JSCover\nlib-cov\n\n# Coverage directory used by tools like istanbul\ncoverage\n*.lcov\n\n# nyc test coverage\n.nyc_output\n\n# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)\n.grunt\n\n# Bower dependency directory (https://bower.io/)\nbower_components\n\n# node-waf configuration\n.lock-wscript\n\n# Compiled binary addons (https://nodejs.org/api/addons.html)\nbuild/Release\n\n# Dependency directories\nnode_modules/\njspm_packages/\n\n# Snowpack dependency directory (https://snowpack.dev/)\nweb_modules/\n\n# TypeScript cache\n\n# Optional npm cache directory\n.npm\n\n# Optional eslint cache\n.eslintcache\n\n# Optional stylelint cache\n.stylelintcache\n\n# Microbundle cache\n.rpt2_cache/\n.rts2_cache_cjs/\n.rts2_cache_es/\n.rts2_cache_umd/\n\n# Optional REPL history\n.node_repl_history\n\n# Output of \"npm pack\"\n*.tgz\n\n# Yarn Integrity file\n.yarn-integrity\n\n# dotenv environment variable files\n.env.development.local\n.env.test.local\n.env.production.local\n.env.local\n\n# parcel-bundler cache (https://parceljs.org/)\n.cache\n.parcel-cache\n\n# Next.js build output\n.next\nout\n\n# Nuxt.js build / generate output\n.nuxt\ndist\n\n# Gatsby files\n.cache/\n# Comment in the public line in if your project uses Gatsby and not Next.js\n# https://nextjs.org/blog/next-9-1#public-directory-support\n# public\n\n# vuepress build output\n.vuepress/dist\n\n# vuepress v2.x temp and cache directory\n.temp\n\n# Docusaurus cache and generated files\n.docusaurus\n\n# Serverless directories\n.serverless/\n\n# FuseBox cache\n.fusebox/\n\n# DynamoDB Local files\n.dynamodb/\n\n# TernJS port file\n.tern-port\n\n# Stores VSCode versions used for testing VSCode extensions\n.vscode-test\n\n# yarn v2\n.yarn/cache\n.yarn/unplugged\n.yarn/build-state.yml\n.yarn/install-state.gz\n.pnp.*\n\n### Node Patch ###\n# Serverless Webpack directories\n.webpack/\n\n# Optional stylelint cache\n\n# SvelteKit build / generate output\n.svelte-kit\n\n### NotepadPP ###\n# Notepad++ backups #\n*.bak\n\n### now ###\n.now\n\n### OSX ###\n# General\n\n# Icon must end with two \\r\n\n# Thumbnails\n\n# Files that might appear in the root of a volume\n\n# Directories potentially created on remote AFP share\n\n### react ###\n.DS_*\n**/*.backup.*\n**/*.back.*\n\nnode_modules\n\n*.sublime*\n\npsd\nthumb\nsketch\n\n### replit ###\n# Replit config file\n.replit\n\n# Replit Nix config file\nreplit.nix\n\n### SSH ###\n**/.ssh/id_*\n**/.ssh/*_id_*\n**/.ssh/known_hosts\n\n### StorybookJs ###\n# gitignore template for the Storybook, UI guide for front apps\n# website: https://storybook.js.org/\n\nstorybook-static/\n\n### SublimeText ###\n# Cache files for Sublime Text\n*.tmlanguage.cache\n*.tmPreferences.cache\n*.stTheme.cache\n\n# Workspace files are user-specific\n*.sublime-workspace\n\n# Project files should be checked into the repository, unless a significant\n# proportion of contributors will probably not be using Sublime Text\n# *.sublime-project\n\n# SFTP configuration file\nsftp-config.json\nsftp-config-alt*.json\n\n# Package control specific files\nPackage Control.last-run\nPackage Control.ca-list\nPackage Control.ca-bundle\nPackage Control.system-ca-bundle\nPackage Control.cache/\nPackage Control.ca-certs/\nPackage Control.merged-ca-bundle\nPackage Control.user-ca-bundle\noscrypto-ca-bundle.crt\nbh_unicode_properties.cache\n\n# Sublime-github package stores a github token in this file\n# https://packagecontrol.io/packages/sublime-github\nGitHub.sublime-settings\n\n### Tower ###\n# Tower.app - http://www.git-tower.com/\nIcon.png\n\n### Vercel ###\n\n### Vim ###\n# Swap\n[._]*.s[a-v][a-z]\n!*.svg  # comment out if you don\"t need vector files\n[._]*.sw[a-p]\n[._]s[a-rt-v][a-z]\n[._]ss[a-gi-z]\n[._]sw[a-p]\n\n# Session\nSession.vim\nSessionx.vim\n\n# Temporary\n.netrwhist\n# Auto-generated tag files\ntags\n# Persistent undo\n[._]*.un~\n\n### VisualStudioCode ###\n.vscode/*\n!.vscode/settings.json\n!.vscode/tasks.json\n!.vscode/launch.json\n!.vscode/extensions.json\n!.vscode/*.code-snippets\n\n# Local History for Visual Studio Code\n.history/\n\n# Built Visual Studio Code Extensions\n*.vsix\n\n### VisualStudioCode Patch ###\n# Ignore all local history of files\n.history\n.ionide\n\n### Windows ###\n# Windows thumbnail cache files\nThumbs.db\nThumbs.db:encryptable\nehthumbs.db\nehthumbs_vista.db\n\n# Dump file\n*.stackdump\n\n# Folder config file\n[Dd]esktop.ini\n\n# Recycle Bin used on file shares\n$RECYCLE.BIN/\n\n# Windows Installer files\n*.cab\n*.msi\n*.msix\n*.msm\n*.msp\n\n# Windows shortcuts\n*.lnk\n\n### yarn ###\n# https://yarnpkg.com/getting-started/qa#which-files-should-be-gitignored\n\n.yarn/*\n!.yarn/releases\n!.yarn/patches\n!.yarn/plugins\n!.yarn/sdks\n!.yarn/versions\n\n# if you are NOT using Zero-installs, then:\n# comment the following lines\n!.yarn/cache\n\n# and uncomment the following lines\n# .pnp.*\n\n### Zsh ###\n# Zsh compiled script + zrecompile backup\n*.zwc\n*.zwc.old\n\n# Zsh completion-optimization dumpfile\n*zcompdump*\n\n# Zsh zcalc history\n.zcalc_history\n\n# A popular plugin manager\"s files\n._zinit\n.zinit_lstupd\n\n# zdharma/zshelldoc tool\"s files\nzsdoc/data\n\n# robbyrussell/oh-my-zsh/plugins/per-directory-history plugin\"s files\n# (when set-up to store the history in the local directory)\n.directory_history\n\n# MichaelAquilina/zsh-autoswitch-virtualenv plugin\"s files\n# (for Zsh plugins using Python)\n.venv\n\n# Zunit tests\" output\n/tests/_output/*\n!/tests/_output/.gitkeep\n\n# End of https://www.toptal.com/developers/gitignore/api/git,node,react,nextjs,vercel,dotenv,yarn,fish,linux,zsh,windows,osx,macos,emacs,vim,visualstudiocode,sublimetext,notepadpp,ssh,tower,storybookjs,now,replit\n"
  },
  {
    "path": ".gitpod.yml",
    "content": "# List the start up tasks. Learn more https://www.gitpod.io/docs/config-start-tasks/\ntasks:\n  - name: Development Server\n    init: yarn install\n    command: yarn dev\n\n# List the ports to expose. Learn more https://www.gitpod.io/docs/config-ports/\nports:\n  - port: 3000\n    onOpen: open-browser\n\ngithub:\n  prebuilds:\n    master: true\n    branches: true\n    pullRequests: true\n    pullRequestsFromForks: true\n    addCheck: true\n    addComment: false\n    addBadge: true\n"
  },
  {
    "path": ".husky/commit-msg",
    "content": "#!/usr/bin/env sh\n . \"$(dirname -- \"$0\")/_/husky.sh\"\n\n npx --no -- commitlint --edit \"$1\""
  },
  {
    "path": ".husky/pre-commit",
    "content": "#!/usr/bin/env sh\n. \"$(dirname \"$0\")/_/husky.sh\"\n\nnpm run lint:fix\n"
  },
  {
    "path": ".releaserc.js",
    "content": "module.exports = {\n  branches: [{ name: \"main\" }],\n  plugins: [\n    [\n      \"@semantic-release/commit-analyzer\",\n      {\n        preset: \"angular\",\n      },\n    ],\n    \"@semantic-release/release-notes-generator\",\n    \"@semantic-release/changelog\",\n    [\n      \"@semantic-release/git\",\n      {\n        assets: [\"CHANGELOG.md\", \"package.json\", \"yarn.lock\"],\n        message: \"chore(release): 🤖 ${nextRelease.version} [skip ci]\",\n      },\n    ],\n    [\n      \"@semantic-release/github\",\n      {\n        assets: [\"CHANGELOG.md\"],\n      },\n    ],\n  ],\n  preset: \"angular\",\n  ci: true,\n  debug: true,\n};\n"
  },
  {
    "path": ".vscode/extensions.json",
    "content": "{\n  \"recommendations\": [\"evolution-gaming.evolution-gaming--vscode-eslint\"]\n}\n"
  },
  {
    "path": ".vscode/settings.json",
    "content": "{\n  \"eslint.enable\": true,\n  \"editor.formatOnSave\": false,\n  \"eslint.validate\": [\n    \"javascript\",\n    \"javascriptreact\",\n    \"json\"\n  ],\n  \"githubPullRequests.ignoredPullRequestBranches\": [\n    \"main\"\n  ]\n}\n"
  },
  {
    "path": "CHANGELOG.md",
    "content": "# [0.22.0](https://github.com/FrancescoXX/4c-site/compare/v0.21.4...v0.22.0) (2024-10-22)\n\n\n### Features\n\n* add detailed readme ([b00381a](https://github.com/FrancescoXX/4c-site/commit/b00381a96bc728d69e5e2e0923c2e4552b10b9e2))\n\n## [0.21.4](https://github.com/FrancescoXX/4c-site/compare/v0.21.3...v0.21.4) (2023-11-18)\n\n\n### Bug Fixes\n\n* image in activitie ([2d11869](https://github.com/FrancescoXX/4c-site/commit/2d11869601019af5f255a43694192dfa2713d74f))\n\n## [0.21.3](https://github.com/FrancescoXX/4c-site/compare/v0.21.2...v0.21.3) (2023-11-18)\n\n\n### Bug Fixes\n\n* checkout to new branch ([4d87342](https://github.com/FrancescoXX/4c-site/commit/4d87342175259e2b7baa3a3b8e9eeb92d2aba189))\n\n## [0.21.2](https://github.com/FrancescoXX/4c-site/compare/v0.21.1...v0.21.2) (2023-11-05)\n\n\n### Bug Fixes\n\n* next image issue ([09d79b6](https://github.com/FrancescoXX/4c-site/commit/09d79b62af95ffa43556956bb338a137f3f0080a))\n* next image issue ([39a5660](https://github.com/FrancescoXX/4c-site/commit/39a56609bb6cca3a12e7efb17363399091350234))\n* next image issue ([f7294e8](https://github.com/FrancescoXX/4c-site/commit/f7294e8415150d68cbcaacdcdb0abd9ade783de7))\n\n## [0.21.1](https://github.com/FrancescoXX/4c-site/compare/v0.21.0...v0.21.1) (2023-10-24)\n\n\n### Bug Fixes\n\n* lint issue ([6bceaaf](https://github.com/FrancescoXX/4c-site/commit/6bceaaf0e3cdeb6174d00b51be59f2a18f7b99fc))\n\n# [0.21.0](https://github.com/FrancescoXX/4c-site/compare/v0.20.1...v0.21.0) (2023-10-24)\n\n\n### Features\n\n* **plugin:** commitizen-support-782 ([8c6af10](https://github.com/FrancescoXX/4c-site/commit/8c6af1067383c79cc95d51d9102a30377bbaa7ff))\n\n## [0.20.1](https://github.com/FrancescoXX/4c-site/compare/v0.20.0...v0.20.1) (2023-10-15)\n\n\n### Bug Fixes\n\n* **ActiveMembers.js and Staff.js:** added feedback message if search input does not find a match ([9373549](https://github.com/FrancescoXX/4c-site/commit/937354979799de0605c3390f62c1973e4b47dc51))\n\n# [0.20.0](https://github.com/FrancescoXX/4c-site/compare/v0.19.2...v0.20.0) (2023-10-15)\n\n\n### Features\n\n* Filter staff by name and description ([48bbafa](https://github.com/FrancescoXX/4c-site/commit/48bbafa88e285d0f20f9770b7142e669e009ebf8))\n\n## [0.19.2](https://github.com/FrancescoXX/4c-site/compare/v0.19.1...v0.19.2) (2023-05-28)\n\n\n### Bug Fixes\n\n* improve user experience ([cb7b237](https://github.com/FrancescoXX/4c-site/commit/cb7b237f952d0a789024a6068ad5e3e1a0bc5fac))\n* user interface ([45a6a52](https://github.com/FrancescoXX/4c-site/commit/45a6a52620b152f0c036f8c616b2bcdfc5a1deea))\n\n## [0.19.1](https://github.com/FrancescoXX/4c-site/compare/v0.19.0...v0.19.1) (2023-05-15)\n\n\n### Bug Fixes\n\n* og image url ([f7e1afa](https://github.com/FrancescoXX/4c-site/commit/f7e1afa7c9cf693c3415d9fa8b7e674b43488be6))\n* remove trailing space ([a7d102d](https://github.com/FrancescoXX/4c-site/commit/a7d102d9b495c66df813ec4b886c7c1cb05855be))\n\n# [0.19.0](https://github.com/FrancescoXX/4c-site/compare/v0.18.9...v0.19.0) (2023-04-26)\n\n\n### Features\n\n* testing ([7d16d27](https://github.com/FrancescoXX/4c-site/commit/7d16d27b8c82e1cd1a17ac065fd3a2646aa0a38f))\n* testing ([8d64761](https://github.com/FrancescoXX/4c-site/commit/8d64761e7abb354f1d788f83d3fedcd2ce6a545f))\n\n## [0.18.9](https://github.com/FrancescoXX/4c-site/compare/v0.18.8...v0.18.9) (2023-04-11)\n\n\n### Bug Fixes\n\n* centered the menu-item! ([baea93d](https://github.com/FrancescoXX/4c-site/commit/baea93d1f3ae40eb342efbaaea053a5ccd53bfdd))\n\n## [0.18.8](https://github.com/FrancescoXX/4c-site/compare/v0.18.7...v0.18.8) (2023-04-08)\n\n\n### Bug Fixes\n\n* activities section a bit far from previous section ([cb9dbf2](https://github.com/FrancescoXX/4c-site/commit/cb9dbf25d9644370f1018663e0e1330440af22be))\n\n## [0.18.7](https://github.com/FrancescoXX/4c-site/compare/v0.18.6...v0.18.7) (2023-03-31)\n\n\n### Bug Fixes\n\n* added  to the card title ([4b9b06b](https://github.com/FrancescoXX/4c-site/commit/4b9b06b31bdb47b2942694bf164ecb1c5b9c2642))\n* blog card size(height to full) ([fc04ac4](https://github.com/FrancescoXX/4c-site/commit/fc04ac46e6b44566e6473f257473bfcc1642af85))\n* image replaced ([3a2c0b5](https://github.com/FrancescoXX/4c-site/commit/3a2c0b5c4cd5af203130fdd045f4dd6c11cf256b))\n* image replaced & blog card problem fixed ([84d4761](https://github.com/FrancescoXX/4c-site/commit/84d476155625cd12b5d7e813248334c72dd12aba))\n\n## [0.18.6](https://github.com/FrancescoXX/4c-site/compare/v0.18.5...v0.18.6) (2023-03-28)\n\n\n### Bug Fixes\n\n* **project-link-centered:** centered links in the project card ([4b339ca](https://github.com/FrancescoXX/4c-site/commit/4b339caf6fda586836d2955fcd2a0f92cc4d3ef4))\n\n## [0.18.5](https://github.com/FrancescoXX/4c-site/compare/v0.18.4...v0.18.5) (2023-03-26)\n\n\n### Bug Fixes\n\n* **comments:** removed commented code ([f77cb5c](https://github.com/FrancescoXX/4c-site/commit/f77cb5c893c56cca170fca09d3fb71b513392fc9))\n* **search-tab:** improved user experience and icon-positioning issue in search-tab of projects page ([83f1d1f](https://github.com/FrancescoXX/4c-site/commit/83f1d1f90c33537e54f3d45d57f2b21e6f6d767b))\n\n## [0.18.4](https://github.com/FrancescoXX/4c-site/compare/v0.18.3...v0.18.4) (2023-03-20)\n\n\n### Bug Fixes\n\n* search icon added in projects search bar ([608c163](https://github.com/FrancescoXX/4c-site/commit/608c163e6cadc0fdb09fbcc0a60dd165b3423317))\n\n## [0.18.3](https://github.com/FrancescoXX/4c-site/compare/v0.18.2...v0.18.3) (2023-03-12)\n\n\n### Bug Fixes\n\n* **search-tab:** Improved search-tab of the projects page ([13a0c15](https://github.com/FrancescoXX/4c-site/commit/13a0c1508ee98ba85030e99c3846bb477a28a103))\n\n## [0.18.2](https://github.com/FrancescoXX/4c-site/compare/v0.18.1...v0.18.2) (2023-03-08)\n\n\n### Bug Fixes\n\n* **Back To Top Button:** Solves back to top button overlapping footer icons in mobile-devices ([33a8198](https://github.com/FrancescoXX/4c-site/commit/33a8198bee66f6697c7e9ba912568cce1e4c6f8a))\n\n## [0.18.1](https://github.com/FrancescoXX/4c-site/compare/v0.18.0...v0.18.1) (2023-03-08)\n\n\n### Bug Fixes\n\n* **incorrect link:** fix incorrect link ([c8b9a29](https://github.com/FrancescoXX/4c-site/commit/c8b9a292e81eae4d1909973d351b7d1510d6e20d))\n\n# [0.18.0](https://github.com/FrancescoXX/4c-site/compare/v0.17.0...v0.18.0) (2023-03-04)\n\n\n### Features\n\n* change px to rem in global css ([d73b797](https://github.com/FrancescoXX/4c-site/commit/d73b7975d34a984a8b27f90a6511e385aa26d294))\n* mobile font size reduced for home page ([d3fd2fc](https://github.com/FrancescoXX/4c-site/commit/d3fd2fcb88d106f0a8a2e4baa3a3d01cc547d99e))\n* mobile font size reduced for home page ([34b4cbe](https://github.com/FrancescoXX/4c-site/commit/34b4cbea68eda254cce83aae7423397192cb0afa))\n* nav bar background color ([b06ec05](https://github.com/FrancescoXX/4c-site/commit/b06ec05e4cadd76f0e3ed8f8d3b927b02ab54ee4))\n\n# [0.17.0](https://github.com/FrancescoXX/4c-site/compare/v0.16.0...v0.17.0) (2023-03-04)\n\n\n### Features\n\n* add LBD profile to active members page ([b47f445](https://github.com/FrancescoXX/4c-site/commit/b47f4459e2124ba5c42e29e10ab9e4281ba643bd))\n\n# [0.16.0](https://github.com/FrancescoXX/4c-site/compare/v0.15.3...v0.16.0) (2023-03-04)\n\n\n### Features\n\n* remove unnecessary pages ([aceb834](https://github.com/FrancescoXX/4c-site/commit/aceb834dfe8f09f506f424d15bd3e67574eaea70))\n\n## [0.15.3](https://github.com/FrancescoXX/4c-site/compare/v0.15.2...v0.15.3) (2023-02-16)\n\n\n### Bug Fixes\n\n* fixed linting issues ([ee84210](https://github.com/FrancescoXX/4c-site/commit/ee84210fc9b75c6fa944768ca720eb340f05cd41))\n\n## [0.15.2](https://github.com/FrancescoXX/4c-site/compare/v0.15.1...v0.15.2) (2023-02-12)\n\n\n### Bug Fixes\n\n* **data/activemembers.js:** fix social links for singh-vaibhav08 ([899568e](https://github.com/FrancescoXX/4c-site/commit/899568e3fd870be56f42de3640a696a68504cff1)), closes [sin#vaibhav08](https://github.com/sin/issues/vaibhav08)\n\n## [0.15.1](https://github.com/FrancescoXX/4c-site/compare/v0.15.0...v0.15.1) (2023-02-12)\n\n\n### Bug Fixes\n\n* **ui:** enhanace search bar UI ([75baf95](https://github.com/FrancescoXX/4c-site/commit/75baf95a43dd85eeefb4159921aa674662d2769b))\n\n# [0.15.0](https://github.com/FrancescoXX/4c-site/compare/v0.14.6...v0.15.0) (2023-02-10)\n\n\n### Features\n\n* add background for navbar ([abd132c](https://github.com/FrancescoXX/4c-site/commit/abd132c8d66b3204d308802078b99abe7f629f9c))\n\n## [0.14.6](https://github.com/FrancescoXX/4c-site/compare/v0.14.5...v0.14.6) (2023-02-07)\n\n\n### Bug Fixes\n\n* **scrollable sidebar:** fix scrollable sidebar ([59cd24a](https://github.com/FrancescoXX/4c-site/commit/59cd24a320124b3d65c1722d14a4945f9d70c82f))\n* **sidebar:** fix scrollable sidebar ([c9adf70](https://github.com/FrancescoXX/4c-site/commit/c9adf70b552eb6ad3de24d7281b7372b82fc99df))\n\n## [0.14.5](https://github.com/FrancescoXX/4c-site/compare/v0.14.4...v0.14.5) (2023-02-05)\n\n\n### Bug Fixes\n\n* **bug:** fixed faq accordion answer not taking entire width ([a952dde](https://github.com/FrancescoXX/4c-site/commit/a952dde93138625cff7847e28fdd44588fb6bbfa))\n\n## [0.14.4](https://github.com/FrancescoXX/4c-site/compare/v0.14.3...v0.14.4) (2023-01-28)\n\n\n### Bug Fixes\n\n* **homepage:** mobile responsiveness ([5652922](https://github.com/FrancescoXX/4c-site/commit/56529226283f011642c7f4f9c699e5a8d9a796be))\n* **homepage:** remove deprecated frame ([752cb38](https://github.com/FrancescoXX/4c-site/commit/752cb38f687112810ab970208327171aa28d1190))\n\n## [0.14.3](https://github.com/FrancescoXX/4c-site/compare/v0.14.2...v0.14.3) (2023-01-27)\n\n\n### Bug Fixes\n\n* **cards:** fixes for activity, blog card ([d69a4f4](https://github.com/FrancescoXX/4c-site/commit/d69a4f4a50ef6c0c41ea243bcdee075db67605ea))\n* **cards:** removing extra code ([60dc4c4](https://github.com/FrancescoXX/4c-site/commit/60dc4c41e2a6dd56b346eaaccf3eb7c0d552f11d))\n\n## [0.14.2](https://github.com/FrancescoXX/4c-site/compare/v0.14.1...v0.14.2) (2023-01-25)\n\n\n### Bug Fixes\n\n* **activemembers.js:** fix ([3dedc9d](https://github.com/FrancescoXX/4c-site/commit/3dedc9d29a5dd04da09fe39be41e94a261093ada))\n\n## [0.14.1](https://github.com/FrancescoXX/4c-site/compare/v0.14.0...v0.14.1) (2023-01-24)\n\n\n### Bug Fixes\n\n* adding favicon ([d341718](https://github.com/FrancescoXX/4c-site/commit/d34171892c730dd471498fbc972ba8b001675270))\n\n# [0.14.0](https://github.com/FrancescoXX/4c-site/compare/v0.13.6...v0.14.0) (2023-01-24)\n\n\n### Features\n\n* made navbar good ([7217471](https://github.com/FrancescoXX/4c-site/commit/7217471a9544083feb1dff2c369ac6653fae2cf7))\n\n## [0.13.6](https://github.com/FrancescoXX/4c-site/compare/v0.13.5...v0.13.6) (2023-01-20)\n\n\n### Bug Fixes\n\n* fix lint error ([08331f0](https://github.com/FrancescoXX/4c-site/commit/08331f0adf623c54e4accea8b482cd940b8ead94))\n* lint ([f523c99](https://github.com/FrancescoXX/4c-site/commit/f523c9971410381127c8e3a6e671d171cf52756a))\n* lint error ([0b2019f](https://github.com/FrancescoXX/4c-site/commit/0b2019fab89422fb1e968a62ca1dd54b745b643b))\n\n## [0.13.5](https://github.com/FrancescoXX/4c-site/compare/v0.13.4...v0.13.5) (2023-01-18)\n\n\n### Bug Fixes\n\n* activities card width fixed for md lg xl device ([505a607](https://github.com/FrancescoXX/4c-site/commit/505a6078840804df630191c054252f353aed06cf))\n\n## [0.13.4](https://github.com/FrancescoXX/4c-site/compare/v0.13.3...v0.13.4) (2023-01-17)\n\n\n### Bug Fixes\n\n* activities card design improvd and card broke fixed\" ([12c1ce7](https://github.com/FrancescoXX/4c-site/commit/12c1ce72287be676322feaf83c1311addf67383b))\n\n## [0.13.3](https://github.com/FrancescoXX/4c-site/compare/v0.13.2...v0.13.3) (2023-01-14)\n\n\n### Bug Fixes\n\n* **readme:** fix readme ([d3954ef](https://github.com/FrancescoXX/4c-site/commit/d3954ef11059d598069bb14af6e360c0de606ad6))\n\n## [0.13.2](https://github.com/FrancescoXX/4c-site/compare/v0.13.1...v0.13.2) (2023-01-14)\n\n\n### Bug Fixes\n\n* **readme:** fix readme ([57ce88d](https://github.com/FrancescoXX/4c-site/commit/57ce88d446443eff2bc7ab4c1962ca75c277f384))\n* **readme:** fix readme ([5895762](https://github.com/FrancescoXX/4c-site/commit/5895762c735b5915b218d41d53ce0407097c2b88))\n\n## [0.13.1](https://github.com/FrancescoXX/4c-site/compare/v0.13.0...v0.13.1) (2023-01-09)\n\n\n### Bug Fixes\n\n* **fix responsivenes:** responsivenes and image width changed for a better look ([b50c5a5](https://github.com/FrancescoXX/4c-site/commit/b50c5a56acd453a0bbf052a143a4409e33d9128a))\n* **video page:** fixed videos page responsivenes by addjusting and adding tailwind classes ([4bc85ef](https://github.com/FrancescoXX/4c-site/commit/4bc85ef962e968e63a86dc0f99ca5f3212d058d2)), closes [#578](https://github.com/FrancescoXX/4c-site/issues/578)\n\n# [0.13.0](https://github.com/FrancescoXX/4c-site/compare/v0.12.0...v0.13.0) (2023-01-08)\n\n\n### Features\n\n* remove tobiloba's event ([147114e](https://github.com/FrancescoXX/4c-site/commit/147114eae048f249bbe0d436f1282ea21303e57e))\n\n# [0.12.0](https://github.com/FrancescoXX/4c-site/compare/v0.11.0...v0.12.0) (2023-01-08)\n\n\n### Features\n\n* super performance 4c (nuke) ([75e617f](https://github.com/FrancescoXX/4c-site/commit/75e617f077db1c0b33f50291cf1f2cd7e6e68456))\n\n# [0.11.0](https://github.com/FrancescoXX/4c-site/compare/v0.10.0...v0.11.0) (2023-01-05)\n\n\n### Features\n\n* github magic (1/2) ([480c1fa](https://github.com/FrancescoXX/4c-site/commit/480c1fa1cfacab19cf83705a7fbd1bce8e1ab673))\n* gitthub magic (2/2) ([9f106c2](https://github.com/FrancescoXX/4c-site/commit/9f106c2be67612afdcdf639ef7e49ff0a7ce8cef))\n"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "content": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nWe as members, contributors, and leaders pledge to make participation in our\ncommunity a harassment-free experience for everyone, regardless of age, body\nsize, visible or invisible disability, ethnicity, sex characteristics, gender\nidentity and expression, level of experience, education, socio-economic status,\nnationality, personal appearance, race, caste, color, religion, or sexual\nidentity and orientation.\n\nWe pledge to act and interact in ways that contribute to an open, welcoming,\ndiverse, inclusive, and healthy community.\n\n## Our Standards\n\nExamples of behavior that contributes to a positive environment for our\ncommunity include:\n\n* Demonstrating empathy and kindness toward other people\n* Being respectful of differing opinions, viewpoints, and experiences\n* Giving and gracefully accepting constructive feedback\n* Accepting responsibility and apologizing to those affected by our mistakes,\n  and learning from the experience\n* Focusing on what is best not just for us as individuals, but for the overall\n  community\n\nExamples of unacceptable behavior include:\n\n* The use of sexualized language or imagery, and sexual attention or advances of\n  any kind\n* Trolling, insulting or derogatory comments, and personal or political attacks\n* Public or private harassment\n* Publishing others' private information, such as a physical or email address,\n  without their explicit permission\n* Other conduct which could reasonably be considered inappropriate in a\n  professional setting\n\n## Enforcement Responsibilities\n\nCommunity leaders are responsible for clarifying and enforcing our standards of\nacceptable behavior and will take appropriate and fair corrective action in\nresponse to any behavior that they deem inappropriate, threatening, offensive,\nor harmful.\n\nCommunity leaders have the right and responsibility to remove, edit, or reject\ncomments, commits, code, wiki edits, issues, and other contributions that are\nnot aligned to this Code of Conduct, and will communicate reasons for moderation\ndecisions when appropriate.\n\n## Scope\n\nThis Code of Conduct applies within all community spaces, and also applies when\nan individual is officially representing the community in public spaces.\nExamples of representing our community include using an official e-mail address,\nposting via an official social media account, or acting as an appointed\nrepresentative at an online or offline event.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be\nreported to the community leaders responsible for enforcement in the\n[Discord community](https://4c.rocks/join).\nAll complaints will be reviewed and investigated promptly and fairly.\n\nAll community leaders are obligated to respect the privacy and security of the\nreporter of any incident.\n\n## Enforcement Guidelines\n\nCommunity leaders will follow these Community Impact Guidelines in determining\nthe consequences for any action they deem in violation of this Code of Conduct:\n\n### 1. Correction\n\n**Community Impact**: Use of inappropriate language or other behavior deemed\nunprofessional or unwelcome in the community.\n\n**Consequence**: A private, written warning from community leaders, providing\nclarity around the nature of the violation and an explanation of why the\nbehavior was inappropriate. A public apology may be requested.\n\n### 2. Warning\n\n**Community Impact**: A violation through a single incident or series of\nactions.\n\n**Consequence**: A warning with consequences for continued behavior. No\ninteraction with the people involved, including unsolicited interaction with\nthose enforcing the Code of Conduct, for a specified period of time. This\nincludes avoiding interactions in community spaces as well as external channels\nlike social media. Violating these terms may lead to a temporary or permanent\nban.\n\n### 3. Temporary Ban\n\n**Community Impact**: A serious violation of community standards, including\nsustained inappropriate behavior.\n\n**Consequence**: A temporary ban from any sort of interaction or public\ncommunication with the community for a specified period of time. No public or\nprivate interaction with the people involved, including unsolicited interaction\nwith those enforcing the Code of Conduct, is allowed during this period.\nViolating these terms may lead to a permanent ban.\n\n### 4. Permanent Ban\n\n**Community Impact**: Demonstrating a pattern of violation of community\nstandards, including sustained inappropriate behavior, harassment of an\nindividual, or aggression toward or disparagement of classes of individuals.\n\n**Consequence**: A permanent ban from any sort of public interaction within the\ncommunity.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant][homepage],\nversion 2.1, available at\n[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].\n\nCommunity Impact Guidelines were inspired by\n[Mozilla's code of conduct enforcement ladder][Mozilla CoC].\n\nFor answers to common questions about this code of conduct, see the FAQ at\n[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at\n[https://www.contributor-covenant.org/translations][translations].\n\n[homepage]: https://www.contributor-covenant.org\n[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html\n[Mozilla CoC]: https://github.com/mozilla/diversity\n[FAQ]: https://www.contributor-covenant.org/faq\n[translations]: https://www.contributor-covenant.org/translations\n"
  },
  {
    "path": "CONTRIBUTING.md",
    "content": "# ✨ Contributing to this project\n\nFirst of all, thanks for taking the time to contribute! 🎉👍\n\n## 💣 Reporting Bugs\n\nThis section guides you through submitting a bug report. Following these guidelines helps maintainers and the community understand your report 📝, reproduce the behavior 💻, and find related reports. 🔎\n\nSince the new GitHub Issue forms, we only suggest you include the most information possible. But you can also **Perform a [cursory search](https://github.com/FrancescoXX/4c-site/issues)** to see if the report/request has already been raised. If it has, adds a comment to the existing issue instead of opening a new one.\n\n> **Note:** If you find a **Closed** issue that seems like it is the same thing that you're experiencing, open a new issue and include a link to the original issue in the body of your new one.\n\n### How Do I Submit A (Good) Bug Report?\n\nExplain the problem and include additional details to help maintainers reproduce the problem:\n\n- **Use a clear and descriptive title** for the issue to identify the problem.\n- **Describe the exact steps which reproduce the problem** in as many details as possible.\n- **Describe the behavior you observed after following the steps** and point out what exactly is the problem with that behavior.\n- **Explain which behavior you expected to see instead and why.**\n- **Include screenshots or animated GIFs** which show you following the described steps and clearly demonstrate the problem. If you use the keyboard while following the steps, use [this tool](https://www.cockos.com/licecap/) to record GIFs on macOS and Windows, and [this tool](https://github.com/colinkeenan/silentcast) or [this tool](https://gitlab.gnome.org/Archive/byzanz) on Linux.\n\n## 🛠 Suggesting Enhancements\n\nFeature requests are tracked as [GitHub issues](https://guides.github.com/features/issues/). Create an issue on that repository and provide the following information:\n\n- **Use a clear and descriptive title** for the issue to identify the suggestion.\n- **Provide a in detail description of the suggested enhancement** in as many details as possible.\n- **Explain why this enhancement would be useful** to the website and the community.\n\n## 📝 Cloning the project & creating PR\n\n### Fork the repository.\n\nClick on the fork button on the top of the page. This will create a copy of this repository in your account. Instead click [here](https://github.com/FrancescoXX/4c-site/fork) to fork the repository.\n\n### Clone the forked repository.\n\n```bash\n git clone https://github.com/<your-username>/4c-site.git\n```\n\nor if use the github cli\n\n```bash\ngh repo clone <your-username>/4c-site\n```\n\n### Navigate to the project directory.\n\n```bash\ncd 4c-site\n```\n\n### Create a new branch (naming convention: type-description-issueNo)\n\nKindly give your branch a more descriptive name like `docs-contributing-guide-2` instead of `patch-1`.\n\nYou could follow this convention. Some ideas to get you started:\n\n- Feature Updates: `feat-<brief 2-3 words-Description>-<ISSUE_NO>`\n\n- Bug Fixes: `fix-<brief 2-3 words-Description>-<ISSUE_NO>`\n\n- Documentation: `docs-<brief 2-3 words-Description>-<ISSUE_NO>`\n\n- And so on...\n\nTo create a new branch, use the following command:\n\n```bash\ngit checkout -b your-branch-name\n```\n\n### Make the necessary changes.\n\n### Stage your changes and commit.\n\n```bash\ngit add . # Stages all the changes\ngit commit -m \"<your_commit_message>\"\n```\n\nYour commit message should be something which gives concise idea of the issue you are solving.\n\nWe implement the Conventional Commits specification for commit messages. This specification is a lightweight convention on top of commit messages. It provides an easy set of rules for creating an explicit commit history; which makes it easier to write automated tools on top of. This convention dovetails with SemVer, by describing the features, fixes, and breaking changes made in commit messages.\n\nThe commit message should be structured as follows:\n\n```bash\n<type>(optional scope): <description>\n```\n\nIf you are not sure about how to structure your commit message, you can use the following command:\n\n```bash\nnpm run commit\n```\n\n### Push your local commits to the remote repository.\n\n```bash\ngit push origin your-branch-name\n```\n\n**8.** Create a new [pull request](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request) from `your-branch-name`\n\n🎉 Congratulations! You've made your first pull request! Now, you should just wait until the maintainers review your pull request.\n\n## ✨ Understanding the project\n\nThe project is divided into two main folders:\n\n- `src` - This folder contains all the code related to the website.\n- `docs` - This folder contains everything related to the 4C community\n\n### `src` folder\n\nThe `src` folder contains all the code related to the website. The website is built using [Next.js](https://nextjs.org/), a React framework. The website is hosted on [Vercel](https://vercel.com/).\n\nThe source code is divided into two main folders:\n\n- `pages` - This folder contains all the pages of the website.\n- `components` - This folder contains all the components of the website.\n\nI suggest you to read the [Next.js documentation](https://nextjs.org/docs) to understand the project structure.\n\nTo run the website locally, you need to install the dependencies and run the development server:\n\n```bash\nnpm i -g yarn # Install yarn\nyarn # Install dependencies\nyarn dev # Run the development server\n```\n\n### `docs` folder\n\nThis folder contains markdown files describing the design of the main website and some detail about the 4C community\n"
  },
  {
    "path": "LICENSE",
    "content": "MIT License\n\nCopyright (c) 2021 - Present, Francesco Ciulla\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "README.md",
    "content": "# 4C (The Cool Community of Content Creators)\n\nImagine **The Cool Community For Content Creators** or **4C**, as a chill coffee shop (cooler even 💣). An inclusive and helpful environment, where we help content creators reach their goals by sharing experiences.\n\nGain access to exclusive talks/workshops with popular content creators, and hence, opportunities to collaborate.\n\nWe have games too! 🎮\n\n## 👋 Join Us :\nJoin our amazing community on Discord and Twitter.\n\n<a href=\"https://discord.com/invite/cRjhjFRRre\"><img src=\"https://cdn.worldvectorlogo.com/logos/discord-6.svg\" title=\"Discord\" alt=\"Discord Community\" width=\"40\"/></a><a href=\"https://twitter.com/4ccommunityhq\"><img src=\"https://worldvectorlogo.com/logo/twitter-logo-2\" title=\"Twitter\" alt=\"Twitter Account\" width=\"40\"/></a>\n\n<br>\n<img src=\"https://raw.githubusercontent.com/FrancescoXX/4c-site/main/src/assets/banner.jpg\" alt=\"4C logo\">\n\n## 📷 Website overview\n\nThis repository concerns the 4C community [website](https://www.4c.rocks/). Visit the website to stay up to date with community members' projects, active members, and other amazing content!\n\n## 🎉 Want to contribute?\n\nWhether you are a community member or not, we would love your point of view! Feel free to first check out our [code of conduct](https://github.com/FrancescoXX/4c-site/blob/main/CODE_OF_CONDUCT.md) and also the [contribution guidelines](https://github.com/FrancescoXX/4c-site/blob/main/CONTRIBUTING.md) for any missing steps.\n\n### 💻 For Contributors\n\n#### 🔖 Tech Stack\n\nThe code base of this repo uses\n\n- [NextJS](https://nextjs.org/)\n- [TailwindCSS](https://tailwindcss.com/)\n\nFor contributing to the code, you will need\n\n- [Node](https://nodejs.org/en/) installed on your computer.\n- Basic knowledge of [Git](https://git-scm.com/)\n\n#### 🔖 Contribution steps\n\nYou can directly work on this project on Gitpod!\n\n[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/FrancescoXX/4c-site)\n\nOr, to work on it locally,\n\n1. [Fork](https://github.com/FrancescoXX/4c-site) this repository\n2. Clone the repo\n\n   ```console\n   $ git clone git@github.com:<your github username>/4c-site.git\n   ```\n3. Navigate to the cloned directory\n\n   ```console\n   $ cd 4c-site\n   ```\n4. Install dependencies\n\n   ```console\n   $ npm install\n   ```\n5. Start the project on `localhost`\n\n   ```console\n   $ npm run dev\n   ```\n\n##### Troubleshooting\n\nIn the course of trying to set up the project locally, if you come across an error that says `PWA is not supported`, you can try the following steps below to fix it;\n\n> For Linux or Mac 👇\n\n1. Go to 4c-site folder using `cd 4c-site`\n2. In the terminal,\n\n   ```console\n   $ export NODE_OPTIONS=--openssl-legacy-provider\n   ```\n3. If you get an error in the above code then use the option below\n\n   ```console\n   $ unset NODE_OPTIONS=\"\"\n   ```\n4. Start the development server with\n\n   ```console\n   $ npm run dev\n   ```\n\n> For Windows 👇\n\n1. Go to 4c-site folder using `cd 4c-site`\n2. In the terminal,\n   ```console\n   $ set NODE_OPTIONS=--openssl-legacy-provider\n   ```\n3. Start the development server with\n   ```console\n   $ npm run dev\n   ```\n\nIn order to run this project locally, you might require some additional configurations, such as downgrading your `node` version to v16.\nYou may get an error similar to this:\n\n![node version mismatch](https://media.discordapp.net/attachments/881808811344683028/1051093955518935060/image.png)\n\nTo fix this, downgrade your `node` version to v16. Here is a simple way of doing that with the [`nvm` node version manager](https://github.com/nvm-sh/nvm):\n\n1. Download and install `nvm`. Use [nvm-setup.exe](https://github.com/coreybutler/nvm-windows/releases) for windows, or [install.sh](https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh) on other systems.\n2. Install version v16\n\n   ```console\n   $ nvm install 16.16.0\n   ```\n3. Make your system use version 16 of node\n\n   ```console\n   $ nvm use 16.16.0\n   ```\n\nTo check if everything has worked, restart your shell and run `node -v`. The output should be `v16.16.0`. If it is, you can continue working on the project!\n\n\n#### Run commit \n\n```console\n   $ git commit -m <Commit-message>\n   ```\n\n#### 🔖 Adding a project to the project page\n\n> Note: _The project page is reserved to display projects for community members only. Each member can put up only one project._\n\nTo add your project to the project page, head over to the [`/data`](https://github.com/FrancescoXX/4c-site/tree/main/src/data) directory, and subsequently, the `projects.json` file. There, you will find objects for each project.\n\nFor example,\n\n```json\n{\n  \"name\": \"Francesco Ciulla\",\n  \"title\": \"FREE Web3 Resources\",\n  \"screenshot\": \"https://user-images.githubusercontent.com/18360871/199210192-f5599a23-f0b1-49ff-9c52-2554a72a2c14.png\",\n  \"description\": \"A list of resources to learn Web3 for FREE\",\n  \"link\": \"https://github.com/FrancescoXX/free-Web3-resources\",\n  \"twitter\": \"https://twitter.com/FrancescoCiull4\",\n  \"live_link\": \"https://www.freeweb3resources.com\",\n  \"stack\":  [\"React\", \"CSS\", \"Solidity\"]\n}\n```\n\n- Create a new object similar to the one above.\n- Follow the example above and create project details like;\n  - Your name\n  - The project's title\n  - A screenshot\n  - A short description\n  - A link to the GitHub repo (If it is open source)\n  - A link to your Twitter profile\n  - A live link to the project.\n- Open a pull request 👍\n\n---\n\nNotice anything odd and/or missing from this README or on the website itself? Feel free to raise an [issue](https://github.com/FrancescoXX/4c-site/issues).\n\nJoin the amazing [4C community](https://discord.com/invite/cRjhjFRRre) on discord, and follow us on [Twitter](https://twitter.com/4ccommunityhq) to stay in the loop.\n\n# 🔑 License\n\nThis repository is under the [MIT](./LICENSE) license.\n\nPlease leave a star ⭐️ All support is highly appreciated.\n"
  },
  {
    "path": "commitlint.config.js",
    "content": "module.exports = { extends: [\"@commitlint/config-conventional\"] }\n"
  },
  {
    "path": "docs/theme/README.md",
    "content": "# 💎 4C style guide\n\n## Introduction\n\nThis document is a guide to the 4C style guide. It contains all the information you need to know about the 4C brand, colors, typography, and more.\n\n## About 4C\n\n4C is a community of creators, where you can connect with other like-minded creators, collaborate on ideas, and motivate each other to create and publish!\n\nOur community is focused on supporting content creators in general across all social media platforms. We are a community of creators, by creators, for creators.\n\nOur goal is to create a  decentralized community, where everyone contributes to its growth, and that growth echoes back positively to every individual creator in the community.\n\n\n## Assets\n\n### 4C Logo\n\n![4C Logo](https://raw.githubusercontent.com/FrancescoXX/4c-site/main/src/assets/logo.png)\n\n#### Square Variation\n\n![4C Logo](https://raw.githubusercontent.com/FrancescoXX/4c-site/main/src/assets/logo-square.jpg)\n\n### Banner\n\n![4C Banner](https://raw.githubusercontent.com/FrancescoXX/4c-site/main/src/assets/banner.jpg)\n\n## Typography\n\nFont Family: `Poppins`\n\n| Name                 | Weight    |\n| -------------------- | --------- |\n| `Headings(h1,h2)`    | `Bold`    |\n| `Subheadings(h3,h4)` | `Medium`  |\n| `Body Text`          | `Regular` |\n\nType scale: Following Tailwind CSS type scale system\n\n## Colors\n\n### 4C Brand Colors\n\n<table>\n    <tr>\n        <td><img src=\"http://placehold.jp/030e2c/ffffff/80x80.png?text=%20\"> <br>#030e2c</td>\n        <td><img src=\"http://placehold.jp/718fe9/ffffff/80x80.png?text=%20\"> <br>#718fe9</td>\n        <td><img src=\"http://placehold.jp/5fbec4/ffffff/80x80.png?text=%20\"> <br>#5fbec4</td>\n        <td><img src=\"http://placehold.jp/49127b/ffffff/80x80.png?text=%20\"> <br>#49127b</td>\n        <td><img src=\"http://placehold.jp/708fe6/ffffff/80x80.png?text=%20\"> <br>#708fe6</td>\n    </tr>\n</table>\n\n### 4C Gradient CSS code\n\n```css\nlinear-gradient( 34deg, rgba(68, 18, 115, 1) 0%, rgba(5, 30, 75, 1) 21%, rgba(52, 79, 141, 1) 58%, rgba(106, 137, 223, 1) 80%, rgba(145, 227, 226, 1) 99% );\n```\n\n<img src=\"https://ik.imagekit.io/u33i3sss0/4c/4c_gradient_iEc5YnyaL.png?ik-sdk-version=javascript-1.4.3&updatedAt=1669915186734\" alt=\"4C gradient\">\n\n## Buttons\n\n### Call to Action Buttons\n\n<img src=\"https://ik.imagekit.io/u33i3sss0/4c/Screenshot_2022-12-01_at_12-46-50_4C_-_Creator_Community_RFydcD8tX.png?ik-sdk-version=javascript-1.4.3&updatedAt=1669916827713\" alt=\"4C cta button\">\n\n### Call to Action Guidelines\n\n| Style                       | Values                                 |\n| --------------------------- | -------------------------------------- |\n| `padding-left`              | `2rem`                                 |\n| `padding-right`             | `2rem`                                 |\n| `padding-top`               | `0.75rem`                              |\n| `display`                   | `inline-flex`                          |\n| `align-items`               | `center`                               |\n| `justify-content`           | `center`                               |\n| `gap`                       | `0.5rem`                               |\n| `background-color`          | `rgb(17 24 39 / var(--tw-bg-opacity))` |\n| `font-weight`               | `500`                                  |\n| `border-radius`             | `9999px`                               |\n| `border-bottom-left-radius` | `0px`                                  |\n\n### NavBar Buttons\n\n<img src=\"https://ik.imagekit.io/u33i3sss0/4c/Screenshot_2022-12-01_at_14-42-11_4C_-_Creator_Community_is2hpLuyR.png?ik-sdk-version=javascript-1.4.3&updatedAt=1669923773411\" alt=\"4C cta button\">\n\n### NavBar Button Guidelines\n\n| Style              | Values   |\n| ------------------ | -------- |\n| `padding-left`     | `1rem`   |\n| `padding-right`    | `1rem`   |\n| `padding-top`      | `0.5rem` |\n| `padding-bottom`   | `0.5rem` |\n| `background-color` | `white`  |\n| `font-weight`      | `bold`   |\n| `color`            | `black`  |\n\n## Effects\n\n### Shadows\n\n```css\nbox-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(\n    --tw-ring-shadow,\n    0 0 #0000\n  ), var(--tw-shadow);\n```\n\n### Transitions\n\n```css\ntransition: PROPERTY_ANIMATING 150ms ease-out;\n```\n"
  },
  {
    "path": "jsconfig.json",
    "content": "{\n  \"compileOnSave\": true,\n  \"compilerOptions\": {\n    \"baseUrl\": \"src/\",\n    \"rootDir\": \".\",\n    \"declaration\": true,\n    \"moduleResolution\": \"node\",\n    \"emitDecoratorMetadata\": true,\n    \"esModuleInterop\": true,\n    \"experimentalDecorators\": true,\n    \"forceConsistentCasingInFileNames\": true,\n    \"importHelpers\": true,\n    \"skipLibCheck\": true,\n    \"skipDefaultLibCheck\": true,\n    \"sourceMap\": false,\n    \"strict\": true,\n    \"strictNullChecks\": true,\n    \"jsx\": \"react\"\n  },\n  \"buildOptions\": {\n    \"incremental\": true\n  }\n}\n"
  },
  {
    "path": "next.config.mjs",
    "content": "import million from 'million/compiler';\n\n/** @type {import(\"next\").NextConfig} */\nconst nextConfig = {\n  images: {\n    domains: [\"avatars.githubusercontent.com\", \"user-images.githubusercontent.com\", \"cdn.discordapp.com\", \"i.ibb.co\", \"i.postimg.cc\", \"images2.imgbox.com\", \"raw.githubusercontent.com\", \"img.youtube.com\"],\n    formats: [\"image/webp\"],\n    unoptimized: process.env.NODE_ENV === \"development\",\n  },\n  async redirects() {\n    return [\n      {\n        destination: \"https://discord.com/invite/TcmA2kbJeA\",\n        source: \"/join\",\n        permanent: true,\n      },\n    ]\n  },\n}\n\nconst millionConfig = {\n  auto: true,\n  // if you're using RSC:\n  // auto: { rsc: true },\n}\n \n\n\nexport default million.next(nextConfig, millionConfig);\n\n"
  },
  {
    "path": "package.json",
    "content": "{\n  \"name\": \"4c\",\n  \"version\": \"0.0.0\",\n  \"private\": true,\n  \"description\": \"4C Community: Website, Media Kit and More\",\n  \"homepage\": \"https://4c.rocks\",\n  \"bugs\": {\n    \"url\": \"https://github.com/FrancescoXX/4c-site/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc\"\n  },\n  \"license\": \"MIT\",\n  \"author\": \"4C Community\",\n  \"scripts\": {\n    \"build\": \"next build\",\n    \"commit\": \"commit\",\n    \"dev\": \"next dev\",\n    \"lint\": \"eslint \\\"src/**/**/*.{js,json,jsx,ts,tsx}\\\"\",\n    \"lint:fix\": \"yarn lint --fix\",\n    \"prepare\": \"husky install\",\n    \"release\": \"semantic-release\",\n    \"start\": \"next start\"\n  },\n  \"dependencies\": {\n    \"@next/font\": \"^13.1.1\",\n    \"@tailwindcss/line-clamp\": \"^0.4.2\",\n    \"@tailwindcss/typography\": \"^0.5.8\",\n    \"autoprefixer\": \"^10.4.13\",\n    \"axios\": \"^1.2.2\",\n    \"azelf\": \"^1.1.0\",\n    \"classnames\": \"^2.3.2\",\n    \"formik\": \"^2.2.9\",\n    \"framer-motion\": \"^8.1.4\",\n    \"million\": \"^2.6.0-beta.13\",\n    \"multiselect-react-dropdown\": \"^2.0.25\",\n    \"next\": \"^13.1.1\",\n    \"next-seo\": \"^5.15.0\",\n    \"postcss\": \"^8.4.20\",\n    \"react\": \"^18.2.0\",\n    \"react-dom\": \"^18.2.0\",\n    \"react-icons\": \"^4.12.0\",\n    \"react-toastify\": \"^9.1.1\",\n    \"sharp\": \"^0.31.3\",\n    \"tailwindcss\": \"^3.2.4\",\n    \"yup\": \"^0.32.11\"\n  },\n  \"devDependencies\": {\n    \"@commitlint/cli\": \"^17.3.0\",\n    \"@commitlint/config-conventional\": \"^17.3.0\",\n    \"@commitlint/prompt-cli\": \"^17.3.0\",\n    \"@semantic-release/changelog\": \"^6.0.2\",\n    \"@semantic-release/commit-analyzer\": \"^9.0.2\",\n    \"@semantic-release/git\": \"^10.0.1\",\n    \"@semantic-release/github\": \"^8.0.7\",\n    \"@semantic-release/release-notes-generator\": \"^10.0.3\",\n    \"@types/eslint\": \"^8.4.10\",\n    \"@types/node\": \"^18.11.18\",\n    \"@types/react\": \"^18.0.26\",\n    \"@typescript-eslint/eslint-plugin\": \"^5.48.0\",\n    \"@typescript-eslint/parser\": \"^5.48.0\",\n    \"cz-conventional-changelog\": \"^3.3.0\",\n    \"eslint\": \"^8.31.0\",\n    \"eslint-config-next\": \"^13.1.1\",\n    \"eslint-config-standard\": \"^17.0.0\",\n    \"eslint-config-standard-with-typescript\": \"^26.0.0\",\n    \"eslint-plugin-const-case\": \"^1.2.2\",\n    \"eslint-plugin-diff\": \"^2.0.1\",\n    \"eslint-plugin-editorconfig\": \"^4.0.2\",\n    \"eslint-plugin-eslint-comments\": \"^3.2.0\",\n    \"eslint-plugin-filenames\": \"^1.3.2\",\n    \"eslint-plugin-import\": \"^2.26.0\",\n    \"eslint-plugin-json-format\": \"^2.0.1\",\n    \"eslint-plugin-jsx-a11y\": \"^6.6.1\",\n    \"eslint-plugin-n\": \"^15.0.0\",\n    \"eslint-plugin-promise\": \"^6.0.0\",\n    \"eslint-plugin-react\": \"^7.31.11\",\n    \"eslint-plugin-react-hooks\": \"^4.6.0\",\n    \"eslint-plugin-simple-import-sort\": \"^8.0.0\",\n    \"eslint-plugin-tailwindcss\": \"^3.8.0\",\n    \"husky\": \"^8.0.3\",\n    \"semantic-release\": \"^19.0.5\",\n    \"typescript\": \"^4.9.4\",\n    \"yarn\": \"^1.22.19\"\n  },\n  \"config\": {\n    \"commitizen\": {\n      \"path\": \"./node_modules/cz-conventional-changelog\"\n    }\n  }\n}\n"
  },
  {
    "path": "postcss.config.js",
    "content": "module.exports = {\n  plugins: {\n    tailwindcss: {},\n    autoprefixer: {},\n  },\n}\n"
  },
  {
    "path": "renovate.json",
    "content": "{\n  \"extends\": [\n    \"config:recommended\"\n  ],\n  \"packageRules\": [\n    {\n      \"matchUpdateTypes\": [\n        \"minor\",\n        \"patch\"\n      ],\n      \"automerge\": false\n    }\n  ],\n  \"timezone\": \"America/Toronto\",\n  \"schedule\": [\n    \"After 11:30pm\"\n  ]\n}"
  },
  {
    "path": "src/4c.config.js",
    "content": "module.exports = {\n  siteName: \"4C\",\n  title: {\n    short: \"4C\",\n    long: \"4C - Creator Community\",\n  },\n  description: {\n    short: \"The Cool Community For Content Creators\",\n    long: \"The Cool Community For Content Creators or 4C is a community where different content creator from every domain have come together to help each other and grow.\",\n  },\n  url: \"https://www.4c.rocks/\",\n  logo: \"https://www.4c.rocks/logo.jpg\", // Relative public path to Base URL or Absolute Path\n  ogImage: \"https://www.4c.rocks/_next/static/media/logo.9b920fc5.png\",\n  favicon: \"/favicon.ico\",\n}\n"
  },
  {
    "path": "src/components/ActiveMembers.js",
    "content": "import React, { useState } from \"react\"\nimport GetActivemembers from \"components/GetActivemembers\"\nimport Users from \"components/Users\"\n\n// import contributors data\nimport activeMembers from \"data/activemembers\"\nimport Title from \"components/Title\"\nimport { FilterUsers } from \"utils/filterUsers\"\n\nconst ActiveMembers = () => {\n  // state for currentUsers\n  const [currentUsers, setCurrentUsers] = useState(activeMembers)\n\n  // filter handler\n  const searchHandler = (event) => {\n    event.preventDefault()\n    const filterdUsers = FilterUsers(\n      activeMembers,\n      event.target.value,\n    )\n    setCurrentUsers(filterdUsers)\n  }\n\n  const [tab] = useState(\"Active Members\")\n\n  return (\n    <div className=\"mt-[3em] flex items-center justify-center\">\n      <section className=\"max-w-bodyContainer flex-1 text-center font-bold text-white\">\n        <Title heading=\"Active Members\" />\n        <div className=\"flex items-center justify-center \">\n          <div className=\"break:w[500px] relative m-auto flex max-w-[800px] self-center mobile:mx-10 laptop:w-[600px] bigScreen:w-[800px]\">\n            <input\n              placeholder=\"Search here\"\n              className=\"h-10 w-full border-slate-200 px-5 py-3 text-white outline-none placeholder:text-slate-700 contrast-more:border-slate-400 contrast-more:placeholder:text-slate-500 rounded-3xl  bg-white bg-opacity-[.2] p-8 shadow backdrop-blur-3xl\"\n              onInput={searchHandler}\n            />\n            <svg\n              xmlns=\"http://www.w3.org/2000/svg\"\n              className=\"absolute right-3 top-1/2 h-5 w-5 -translate-y-1/2 rotate-90 text-white sm:text-slate-400\"\n              fill=\"none\"\n              viewBox=\"0 0 24 24\"\n              stroke=\"#000000\"\n              strokeWidth={2}\n            >\n              <path\n                strokeLinecap=\"round\"\n                strokeLinejoin=\"round\"\n                d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\"\n              />\n            </svg>\n          </div>\n        </div>\n      {currentUsers.length\n        ? <div className=\"m-2 flex flex-wrap items-center justify-center overflow-y-auto pb-4\">\n          {tab === \"Active Members\"\n            ? (\n              <GetActivemembers users={currentUsers} />\n              )\n            : (\n              <Users users={currentUsers} />\n              )}\n        </div>\n        : <p className=\"mt-3\">User does not exist!</p>}\n      </section>\n    </div>\n  )\n}\n\nexport default ActiveMembers\n"
  },
  {
    "path": "src/components/BlogCard.js",
    "content": "import React from \"react\"\nimport { FaTwitter, FaLink } from \"react-icons/fa\"\nimport blogs from \"data/blog\"\nimport Image from \"next/image\"\n\nconst styles = \"transition-all ease-in cursor-pointer\"\nconst BlogCard = () => {\n  return (\n    <section className=\"flex w-full flex-wrap items-center justify-center p-4 sm:p-10\">\n      {blogs.map((blog, index) => (\n        <div\n          key={index}\n          className=\"hov-bg-theme m-5 h-full w-[330px] rounded-xl bg-[#f1f5f9] p-5 text-black shadow-md transition-all ease-out hover:-translate-y-1 xl:w-[380px]\"\n        >\n          <div className=\"flex justify-between text-2xl\">\n            <a href={blog.twitter} target=\"_blank\" rel=\"noreferrer\">\n              <FaTwitter className={styles} />\n            </a>\n            <a href={blog.link} target=\"_blank\" rel=\"noreferrer\">\n              <FaLink className={styles} />\n            </a>\n          </div>\n          <div>\n            <h2 className=\"title my-10 text-2xl\">{blog.title}</h2>\n          </div>\n          <a href={blog.link} target=\"_blank\" rel=\"noreferrer\">\n            <Image\n              alt={`Screenshot of ${blog.title}`}\n              className=\"rounded-md object-contain \"\n              src={blog.screenshot}\n              height={320}\n              width={568.87}\n            />\n          </a>\n          <div>\n            <p className=\"mt-5 text-[18px] leading-6 text-black/80 line-clamp-2\">\n              {blog.description}\n            </p>\n          </div>\n        </div>\n      ))}\n    </section>\n  )\n}\n\nexport default BlogCard\n"
  },
  {
    "path": "src/components/CommunityPartners.js",
    "content": "import Image from \"next/image\"\nimport Link from \"next/link\"\nimport React from \"react\"\nimport partnerCommunities from \"../data/partnerCommunities.json\"\nfunction CommunityPartners() {\n  return (\n    <div className=\"container text-white flex items-center justify-center mt-20 mb-10\">\n      <div className=\"p-3 max-w-bodyContainer w-full\">\n        <header className=\"text-4xl font-semibold text-center\">\n          Community Partners\n        </header>\n        <p className=\"text-center text-sm mt-2 italic\">\n          Other great communities we collaborate with\n        </p>\n        <div className=\"flex items-center justify-center mt-8\">\n          {partnerCommunities.map((community) => (\n            <div key={community.community_name} className=\"flex\">\n              <div>\n                <Link href={community.website}>\n                  <Image\n                    src={community.logo}\n                    alt={community.community_name}\n                    width={100}\n                    height={100}\n                    className=\"object-contain transition ease-in-out delay-150 hover:-translate-y-1 hover:scale-110 duration-300\"\n                  />\n                </Link>\n              </div>\n              <div className=\"flex items-center justify-center px-6 \">\n                <div>\n                  <h1 className=\"text-2xl\">{community.community_name}</h1>\n                  <h3>{community.sub_desc}</h3>\n                  <p>{community.bio}</p>\n                </div>\n              </div>\n            </div>\n          ))}\n        </div>\n      </div>\n    </div>\n  )\n}\n\nexport default CommunityPartners\n"
  },
  {
    "path": "src/components/FaqAccordian.js",
    "content": "import React, { useState } from \"react\"\nimport { AnimatePresence, motion } from \"framer-motion\"\n\nimport { IoIosArrowDown } from \"react-icons/io\"\n\nconst FaqAccordian = ({ faq }) => {\n  const [isOpen, setIsOpen] = useState(false)\n\n  return (\n    <li className=\"flex items-center justify-center w-9/12 mb-8 flex-column sm:w-9/12 md:w-8/12 lg:w-1/2\">\n      <div\n        onClick={() => setIsOpen(!isOpen)}\n        onKeyDown={() => setIsOpen(!isOpen)}\n        tabIndex={0}\n        role=\"button\"\n        className={`w-full p-8 rounded shadow cursor-pointer details backdrop-blur-lg ${\n          isOpen ? \"bg-white/30\" : \"bg-white/20\"\n        }`}\n      >\n        <p className=\"relative flex items-center justify-between pr-4 text-base font-bold leading-none text-white list-none\">\n          <span>{faq.questions}</span>\n          <IoIosArrowDown\n            className={`text-2xl duration-200 ${\n              isOpen && \"rotate-180\"\n            }`}\n          />\n        </p>\n\n        <AnimatePresence>\n          {isOpen && (\n            <motion.p\n              initial={{ opacity: 0, height: 0, marginTop: 0 }}\n              animate={{ opacity: 1, height: \"auto\", marginTop: 12 }}\n              exit={{ opacity: 0, height: 0, margin: 0 }}\n              className={\"overflow-hidden text-base leading-normal text-white\"}\n            >\n              {faq.answers}\n            </motion.p>\n          )}\n        </AnimatePresence>\n      </div>\n    </li>\n  )\n}\n\nexport default FaqAccordian\n"
  },
  {
    "path": "src/components/Footer.jsx",
    "content": "import React from \"react\"\nimport { FaDiscord, FaGithub, FaLinkedin } from \"react-icons/fa\"\nimport { FaXTwitter } from \"react-icons/fa6\"\n\nfunction Footer() {\n  return (\n    <footer className=\"md:max-md flex flex-col items-center gap-4 bg-[#0d1117] p-4 py-8 text-center text-white/80 footer\">\n      <div className=\"flex items-center\">\n        <div className=\"flex gap-10\">\n          <a\n            className=\"text-2xl hover:text-white\"\n            href=\"https://github.com/FrancescoXX/4c-site\"\n            rel=\"noreferrer\"\n            target=\"_blank\"\n          >\n            <span className=\"sr-only\">\n              Github Repository\n            </span>\n\n            <FaGithub aria-hidden=\"true\" />\n          </a>\n\n          <a\n            className=\"text-2xl hover:text-white\"\n            href=\"https://discord.com/invite/TcmA2kbJeA\"\n            rel=\"noreferrer\"\n            target=\"_blank\"\n          >\n            <span className=\"sr-only\">\n              Discord Server\n            </span>\n\n            <FaDiscord aria-hidden=\"true\" />\n          </a>\n\n          <a\n            className=\"text-2xl hover:text-white\"\n            href=\"https://twitter.com/4ccommunityhq\"\n            rel=\"noreferrer\"\n            target=\"_blank\"\n          >\n            <span className=\"sr-only\">\n              X\n            </span>\n\n            <FaXTwitter aria-hidden=\"true\" />\n          </a>\n\n          <a\n            className=\"text-2xl hover:text-white\"\n            href=\"https://www.linkedin.com/company/4ccommunity/about/\"\n            rel=\"noreferrer\"\n            target=\"_blank\"\n          >\n            <span className=\"sr-only\">\n              LinkedIn\n            </span>\n\n            <FaLinkedin aria-hidden=\"true\" />\n          </a>\n        </div>\n      </div>\n\n      <p className=\"md:max-md: text-xs font-medium text-white/80\">\n        4C | Developed by 4C Community &#169;\n        {\" \"}\n\n        {new Date().getFullYear()}\n      </p>\n    </footer>\n  )\n}\nexport default Footer\n"
  },
  {
    "path": "src/components/Form/JoinUsForm.js",
    "content": "import React from \"react\"\nimport router from \"next/router\"\nimport { useFormik } from \"formik\"\nimport { formSchema } from \"components/Form/validation/formSchema\"\nimport Loading from \"components/Loading\"\nimport Axios from \"axios\"\n\nconst JoinusForm = () => {\n  const formik = useFormik({\n    initialValues: {\n      fullName: \"\",\n      email: \"\",\n      github: \"\",\n      twitter: \"\",\n      question1: \"\",\n      question2: \"\",\n      question3: \"\",\n    },\n    validationSchema: formSchema,\n  })\n\n  const [loading, setLoading] = React.useState(false)\n\n  const handleSubmit = () => {\n    // console.log(formik.values);\n    setLoading(true)\n    Axios.post(process.env.NEXT_PUBLIC_SHEETS_API, formik.values)\n      .then(function() {\n        setLoading(false)\n        alert(\"Thank you!! Your form has been submitted successfully!!\")\n        router.push(\"/\")\n      })\n      .catch(function(error) {\n        setLoading(false)\n        alert(error.message)\n      })\n  }\n  return (\n    <div className=\"container mx-auto\">\n      <div className=\"mx-auto my-10 max-w-xl rounded-md bg-white p-5 shadow-sm\">\n        <div className=\"pb-10 text-center\">\n          <h1 className=\"my-3 text-base font-normal text-gray-700\">\n            4C is a community to connect with other like-minded creators,\n            collaborate on ideas, and motivate each other to create and publish!\n          </h1>\n        </div>\n        <div>\n          <form id=\"loginform\" onSubmit={formik.handleSubmit}>\n            <div className=\"mb-4\">\n              <label\n                htmlFor=\"name\"\n                className=\"ml-2 block text-left text-sm text-gray-600\"\n              >\n                Full Name\n              </label>\n              <input\n                type=\"text\"\n                name=\"fullName\"\n                placeholder=\"John Doe\"\n                className=\"w-full rounded-md border border-gray-300 px-3 py-2 text-sm text-black placeholder:text-gray-300 focus:border-indigo-300 focus:outline-none focus:ring focus:ring-indigo-100\"\n                onChange={formik.handleChange}\n              />\n              {formik.errors.fullName && (\n                <p className=\"mt-2 ml-2 block text-left text-sm text-red-600 dark:text-red-500\">\n                  <span className=\"font-medium\">{formik.errors.fullName}</span>\n                </p>\n              )}\n            </div>\n            <div className=\"mb-4\">\n              <label\n                htmlFor=\"email\"\n                className=\"ml-2 block text-left text-sm text-gray-600\"\n              >\n                Email Address\n              </label>\n              <input\n                type=\"email\"\n                name=\"email\"\n                id=\"email\"\n                placeholder=\"you@email.com\"\n                required\n                className=\"w-full rounded-md border border-gray-300 px-3 py-2 text-sm text-black placeholder:text-gray-300 focus:border-indigo-300 focus:outline-none focus:ring focus:ring-indigo-100\"\n                onChange={formik.handleChange}\n              />\n              {formik.errors.email && (\n                <p className=\"mt-2 ml-2 block text-left text-sm text-red-600 dark:text-red-500\">\n                  <span className=\"font-medium\">{formik.errors.email}</span>\n                </p>\n              )}\n            </div>\n            <div className=\"mb-4\">\n              <label\n                htmlFor=\"github\"\n                className=\"ml-2 block text-left text-sm text-gray-600\"\n              >\n                Github Username\n              </label>\n              <input\n                type=\"text\"\n                name=\"github\"\n                id=\"github\"\n                placeholder=\"@\"\n                required\n                className=\"w-full rounded-md border border-gray-300 px-3 py-2 text-sm text-black placeholder:text-gray-300 focus:border-indigo-300 focus:outline-none focus:ring focus:ring-indigo-100\"\n                onChange={formik.handleChange}\n              />\n              {formik.errors.github && (\n                <p className=\"mt-2 ml-2 block text-left text-sm text-red-600 dark:text-red-500\">\n                  <span className=\"font-medium\">{formik.errors.github}</span>\n                </p>\n              )}\n            </div>\n            <div className=\"mb-4\">\n              <label\n                htmlFor=\"twitter\"\n                className=\"ml-2 block text-left text-sm text-gray-600\"\n              >\n                Twitter Username\n              </label>\n              <input\n                type=\"text\"\n                name=\"twitter\"\n                id=\"twitter\"\n                placeholder=\"@\"\n                required\n                className=\"w-full rounded-md border border-gray-300 px-3 py-2 text-sm text-black placeholder:text-gray-300 focus:border-indigo-300 focus:outline-none focus:ring focus:ring-indigo-100\"\n                onChange={formik.handleChange}\n              />\n              {formik.errors.twitter && (\n                <p className=\"mt-2 ml-2 block text-left text-sm text-red-600 dark:text-red-500\">\n                  <span className=\"font-medium\">{formik.errors.twitter}</span>\n                </p>\n              )}\n            </div>\n            <div className=\"mb-4\">\n              <label\n                htmlFor=\"message\"\n                className=\"mb-2 ml-2 block text-left text-sm text-gray-600\"\n              >\n                What do you know about 4C Community?{\" \"}\n              </label>\n\n              <textarea\n                rows=\"5\"\n                name=\"question1\"\n                id=\"question1\"\n                placeholder=\"Your Message\"\n                className=\"w-full rounded-md border border-gray-300 px-3 py-2 text-sm text-black placeholder:text-gray-300 focus:border-indigo-300 focus:outline-none focus:ring focus:ring-indigo-100\"\n                onChange={formik.handleChange}\n                required\n              ></textarea>\n\n              {formik.errors.question1 && (\n                <p className=\"mt-2 ml-2 block text-left text-sm text-red-600 dark:text-red-500\">\n                  <span className=\"font-medium\">{formik.errors.question1}</span>\n                </p>\n              )}\n            </div>\n            <div className=\"mb-4\">\n              <label\n                htmlFor=\"message\"\n                className=\"mb-2 ml-2 block text-left text-sm text-gray-600\"\n              >\n                Why do you want to join our staff team?\n              </label>\n\n              <textarea\n                rows=\"5\"\n                name=\"question2\"\n                id=\"question2\"\n                placeholder=\"Your Message\"\n                className=\"w-full rounded-md border border-gray-300 px-3 py-2 text-sm text-black placeholder:text-gray-300 focus:border-indigo-300 focus:outline-none focus:ring focus:ring-indigo-100\"\n                onChange={formik.handleChange}\n                required\n              ></textarea>\n              {formik.errors.question2 && (\n                <p className=\"mt-2 ml-2 block text-left text-sm text-red-600 dark:text-red-500\">\n                  <span className=\"font-medium\">{formik.errors.question2}</span>\n                </p>\n              )}\n            </div>\n            <div className=\"mb-4\">\n              <label\n                htmlFor=\"message\"\n                className=\"mb-2 ml-2 block text-left text-sm text-gray-600\"\n              >\n                Tell us something cool about yourself\n              </label>\n\n              <textarea\n                rows=\"5\"\n                name=\"question3\"\n                id=\"question3\"\n                placeholder=\"Your Message\"\n                className=\"w-full rounded-md border border-gray-300 px-3 py-2 text-sm text-black placeholder:text-gray-300 focus:border-indigo-300 focus:outline-none focus:ring focus:ring-indigo-100\"\n                onChange={formik.handleChange}\n                required\n              ></textarea>\n              {formik.errors.question3 && (\n                <p className=\"mt-2 ml-2 block text-left text-sm text-red-600 dark:text-red-500\">\n                  <span className=\"font-medium\">{formik.errors.question3}</span>\n                </p>\n              )}\n            </div>\n            <div className=\"mb-4\">\n              {loading\n                ? (\n                <Loading />\n                  )\n                : (\n                <button\n                  form=\"loginform\"\n                  onClick={handleSubmit}\n                  className=\"w-full rounded-md bg-blue-500 px-2 py-4 text-sm text-white focus:bg-indigo-600 focus:outline-none\"\n                  type=\"submit\"\n                >\n                  Submit your application\n                </button>\n                  )}\n            </div>\n          </form>\n        </div>\n      </div>\n    </div>\n  )\n}\n\nexport default JoinusForm\n"
  },
  {
    "path": "src/components/Form/validation/formSchema.js",
    "content": "import * as Yup from \"yup\"\nexport const formSchema = Yup.object().shape({\n  email: Yup.string().email().required(\"Required\"),\n  fullName: Yup.string().required(\"Required\").min(3, \"Too Short!\"),\n  location: Yup.string().required(\"Required\"),\n  github: Yup.string().required(\"Required\"),\n  twitter: Yup.string().required(\"Required\"),\n  question1: Yup.string().required(\"Required\"),\n  question2: Yup.string().required(\"Required\"),\n  question4: Yup.string().required(\"Required\"),\n})\n"
  },
  {
    "path": "src/components/GetActivemembers.js",
    "content": "import { motion, useReducedMotion } from \"framer-motion\"\nimport ProfileCard from \"components/ProfileCard\"\nimport React from \"react\"\nconst GetActivemembers = ({ users }) => {\n  const shouldReduceMotion = useReducedMotion()\n  const hoverAnimation = shouldReduceMotion\n    ? {}\n    : {\n        zIndex: 1,\n        scale: [1, 1.1, 1.1],\n      }\n\n  return users.map((user, index) => (\n    <motion.div key={index} whileHover={hoverAnimation}>\n      <ProfileCard\n        username={user.name}\n        avatar={user.avatar}\n        socials={[\n          { type: \"github\", username: user.github },\n          { type: \"twitter\", username: user.twitter },\n          { type: \"youtube\", username: user.youtube },\n          { type: \"twitch\", username: user.twitch },\n          { type: \"blog\", username: user.blogUrl },\n          { type: \"linkedin\", username: user.linkedin },\n        ]}\n      />\n    </motion.div>\n  ))\n}\n\nexport default GetActivemembers\n"
  },
  {
    "path": "src/components/GetActivities.js",
    "content": "import eventList from \"../data/events.json\"\nimport Title from \"./Title\"\nimport { FaTwitter, FaDiscord } from \"react-icons/fa\"\nimport Image from \"next/image\"\n\nconst events = eventList.events\nconst styles = \"transition-all ease-in cursor-pointer\"\n\nconst GetActivities = () => (\n  <div style={{ marginTop: \"50px\" }} className=\"flex flex-col items-center\">\n    <Title heading=\"Activities\" />\n    <section className=\"flex justify-center sm:w-[500px] xl:w-auto  p-4 sm:p-10\">\n      {events.map((event, idx) => {\n        return (\n          event.isActive && (\n            <div\n              key={idx}\n              className=\"hov-bg-theme m-5 h-full w-[330px] rounded-xl bg-[#f1f5f9] p-5 text-black shadow-md transition-all ease-out hover:-translate-y-1 xl:w-[380px]\"\n            >\n              <div>\n                <h2 className=\"title mt-5 text-2xl\">{event.name}</h2>\n                <div className=\"w-full\">\n                  <p className=\"text-md  text-[14px] text-gray-600 leading-[20px] mt-3\">\n                    By {event.organizer}{\" \"}\n                    <span className=\"block sm:inline text-sm font-[600] text-black\">\n                      {event.date}\n                    </span>{\" \"}\n                  </p>\n                </div>\n                <Image\n                  src={event?.image}\n                  alt={event.name}\n                  className=\"w-full mb-4 rounded-md object-cover my-4\"\n                  width={100}\n                  height={100}\n                />\n\n                <div className=\"flex justify-between text-2xl  bottom-1 w-[100%]\">\n                  <a\n                    href={event.link}\n                    target=\"_blank\"\n                    className=\"bg-theme my-4 rounded-md flex h-14 w-full items-center justify-center bg-[#70b7e6] text-4xl text-white\"\n                    rel=\"noreferrer\"\n                  >\n                    {event.venue === \"Twitter\"\n                      ? (\n                      <FaTwitter className={styles} />\n                        )\n                      : (\n                      <FaDiscord className={styles} />\n                        )}\n                  </a>\n                </div>\n              </div>\n            </div>\n          )\n        )\n      })}\n    </section>\n  </div>\n)\n\nexport default GetActivities\n"
  },
  {
    "path": "src/components/GetProjects.js",
    "content": "import React, { useState, useEffect } from \"react\"\nimport allProjects from \"data/projects.json\"\nimport Title from \"components/Title\"\nimport stackList from \"data/stacks.json\"\nimport Multiselect from \"multiselect-react-dropdown\"\nimport Image from \"next/image\"\nconst multiselectRef = React.createRef()\n\nconst stacks = stackList.stack.map((stack) => stack.name)\nconst GetProjects = () => {\n  const [selected, setSelected] = useState([])\n  const [filteredProjects, setFilteredProjects] = useState([])\n\n  // get options from stacks\n  const options = []\n  for (let i = 0; i < stacks.length; i++) {\n    const obj = {}\n    obj.id = i\n    obj.value = stacks[i]\n    options.push(obj)\n  }\n\n  // useEffect for filtering the projects\n  useEffect(() => {\n    let arr = []\n    for (let i = 0; i < allProjects.projects.length; i++) {\n      for (let j = 0; j < selected.length; j++) {\n        if (allProjects.projects[i].stack?.includes(selected[j])) {\n          arr.push(allProjects.projects[i])\n        }\n      }\n    }\n    if (arr.length > 0) {\n      arr = [...new Set(arr)]\n      setFilteredProjects(arr)\n    } else {\n      setFilteredProjects(allProjects.projects)\n    }\n  }, [selected])\n\n  // get selected values in dropdown\n  function getSelectedValues() {\n    const items = multiselectRef.current.getSelectedItems()\n    const newArray = items.map((element) => element.value)\n    setSelected(newArray)\n  }\n  return (\n    <div className=\"mt-[3em] flex items-start justify-start\">\n      <section className=\"flex-1 text-center text-white\">\n        <Title heading=\"Projects\" />\n        <p className=\"text-black/70 sm:text-white/70\">\n          Projects by 4c community Members\n        </p>\n        <div className=\"flex items-center justify-center\">\n          <div className=\"max-w-bodyContainer\">\n            <div className=\"mx-4 mt-5 mb-10 flex list-none flex-col items-center justify-center gap-[2rem] lg:flex-row lg:gap-[0.6rem]\">\n              <div className=\"py-2\">\n                <div className=\"before-multiselect bg-[#FEFEFE] text-[#314c89] w-full border-slate-200 px-2 outline-none placeholder:text-slate-700 contrast-more:border-slate-400 contrast-more:placeholder:text-slate-500 rounded-3xl bg-opacity-[.2] shadow backdrop-blur-3xl flex items-center flex-row \">\n                  <Multiselect\n                    options={options}\n                    displayValue={\"value\"}\n                    selectedValues={options.selectedValues}\n                    onSelect={getSelectedValues}\n                    onRemove={getSelectedValues}\n                    placeholder=\"Filter By Tech Stack\"\n                    ref={multiselectRef}\n                    showCheckbox={true}\n                    closeOnSelect={true}\n                    avoidHighlightFirstOption={true}\n                  />\n                  <svg\n                    xmlns=\"http://www.w3.org/2000/svg\"\n                    className=\"searchIcon h-5 w-5 rotate-90 text-white sm:text-slate-400\"\n                    fill=\"none\"\n                    viewBox=\"0 0 24 24\"\n                    stroke=\"#000000\"\n                    strokeWidth={2}\n                  >\n                    <path\n                      strokeLinecap=\"round\"\n                      strokeLinejoin=\"round\"\n                      d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\"\n                    />\n                  </svg>\n                </div>\n              </div>\n            </div>\n            <div className=\"my-[1rem] flex flex-wrap items-center justify-center gap-[1.5rem] pt-4 text-left md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4\">\n              {filteredProjects.map((project, index) => {\n                return (\n                  <div\n                    key={index}\n                    className=\"group flex w-[280px] shrink flex-col rounded-lg p-2 transition-all duration-300 ease-in-out hover:scale-110\"\n                  >\n                    <div className=\"flex h-full w-full items-center justify-center rounded-t-xl text-center shadow-sm\">\n                      <Image\n                        alt={`Screenshot of ${project.title}`}\n                        className=\"h-full max-h-[8rem] w-full overflow-hidden rounded-t-xl object-cover transition-all duration-300 ease-in-out\"\n                        src={project.screenshot}\n                        width={272}\n                        height={128}\n                      />\n                    </div>\n                    <div className=\"flex h-full w-full flex-col gap-[.2rem] justify-self-end rounded-b-xl bg-[#f1f5f9] p-4\">\n                      <div className=\"text-black \">\n                        <h2 className=\"w-[30] text-base truncate \" >{project.title}</h2>\n                        <h4 className=\"flex items-center gap-2 text-sm font-normal opacity-75\">\n                          <svg\n                            width=\"12\"\n                            height=\"24\"\n                            viewBox=\"0 0 30 34\"\n                            fill=\"none\"\n                          >\n                            <path\n                              d=\"M14.639 17.1666C18.863 17.1666 22.2872 13.7424 22.2872 9.51838C22.2872 5.29436 18.863 1.87012 14.639 1.87012C10.415 1.87012 6.99072 5.29436 6.99072 9.51838C6.99072 13.7424 10.415 17.1666 14.639 17.1666Z\"\n                              stroke=\"black\"\n                              strokeWidth=\"3.5\"\n                            />\n                            <path\n                              d=\"M22.2877 20.226H22.8262C23.9445 20.2263 25.0242 20.6349 25.8624 21.3752C26.7006 22.1154 27.2397 23.1362 27.3784 24.2459L27.9765 29.0245C28.0303 29.455 27.9919 29.892 27.8639 30.3065C27.7359 30.7211 27.5212 31.1036 27.234 31.4288C26.9469 31.754 26.5939 32.0144 26.1984 32.1928C25.8029 32.3711 25.374 32.4633 24.9401 32.4632H4.33878C3.90494 32.4633 3.47605 32.3711 3.08056 32.1928C2.68507 32.0144 2.33203 31.754 2.04488 31.4288C1.75772 31.1036 1.54301 30.7211 1.41501 30.3065C1.287 29.892 1.24862 29.455 1.30242 29.0245L1.89898 24.2459C2.03772 23.1357 2.57726 22.1144 3.41614 21.3741C4.25503 20.6338 5.33547 20.2255 6.45429 20.226H6.9912\"\n                              stroke=\"black\"\n                              strokeWidth=\"3.5\"\n                              strokeLinecap=\"round\"\n                              strokeLinejoin=\"round\"\n                            />\n                          </svg>\n                          {project.name}\n                        </h4>\n                        <div className=\"my-[.5rem] flex flex-auto\">\n                          <p className=\"w-full truncate text-sm\">\n                            {project.description}\n                          </p>\n                        </div>\n                      </div>\n                      <div className=\"bg-red my-[10px] mt-auto flex h-10 w-full items-center self-end justify-evenly pl-2.5\">\n                        <a\n                          className={\n                            project.live_link === \"\"\n                              ? \"mr-3 flex items-center gap-2 rounded-full bg-gray-500 px-4 py-1.5 text-sm transition-all ease-in  hover:bg-sky-700\"\n                              : \"mr-3 flex items-center gap-2 rounded-full bg-[#1e293b] px-4 py-1.5 text-sm transition-all ease-in  hover:bg-sky-700\"\n                          }\n                          href={project.live_link}\n                          target=\"_blank\"\n                          style={\n                            project.live_link === \"\"\n                              ? { pointerEvents: \"none\" }\n                              : { pointerEvents: \"auto\" }\n                          }\n                          rel=\"noreferrer\"\n                        >\n                          <svg\n                            stroke=\"currentColor\"\n                            fill=\"currentColor\"\n                            strokeWidth=\"0\"\n                            viewBox=\"0 0 16 16\"\n                            height=\"1em\"\n                            width=\"1em\"\n                          >\n                            <path\n                              fillRule=\"evenodd\"\n                              clipRule=\"evenodd\"\n                              d=\"M1 10c0-3.9 3.1-7 7-7s7 3.1 7 7h-1c0-3.3-2.7-6-6-6s-6 2.7-6 6H1zm4 0c0-1.7 1.3-3 3-3s3 1.3 3 3-1.3 3-3 3-3-1.3-3-3zm1 0c0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2-2 .9-2 2z\"\n                            ></path>\n                          </svg>\n                          View\n                        </a>\n                        <a\n                          className=\"mr-3 flex items-center gap-2 rounded-full bg-[#111827] px-3 py-1.5 text-sm transition-all ease-in hover:bg-sky-700\"\n                          href={project.link}\n                          target=\"_blank\"\n                          rel=\"noreferrer\"\n                        >\n                          <svg\n                            stroke=\"currentColor\"\n                            fill=\"currentColor\"\n                            strokeWidth=\"0\"\n                            viewBox=\"0 0 24 24\"\n                            height=\"1em\"\n                            width=\"1em\"\n                          >\n                            <g>\n                              <path fill=\"none\" d=\"M0 0h24v24H0z\"></path>\n                              <path\n                                fillRule=\"nonzero\"\n                                d=\"M5.883 18.653c-.3-.2-.558-.455-.86-.816a50.32 50.32 0 0 1-.466-.579c-.463-.575-.755-.84-1.057-.949a1 1 0 0 1 .676-1.883c.752.27 1.261.735 1.947 1.588-.094-.117.34.427.433.539.19.227.33.365.44.438.204.137.587.196 1.15.14.023-.382.094-.753.202-1.095C5.38 15.31 3.7 13.396 3.7 9.64c0-1.24.37-2.356 1.058-3.292-.218-.894-.185-1.975.302-3.192a1 1 0 0 1 .63-.582c.081-.024.127-.035.208-.047.803-.123 1.937.17 3.415 1.096A11.731 11.731 0 0 1 12 3.315c.912 0 1.818.104 2.684.308 1.477-.933 2.613-1.226 3.422-1.096.085.013.157.03.218.05a1 1 0 0 1 .616.58c.487 1.216.52 2.297.302 3.19.691.936 1.058 2.045 1.058 3.293 0 3.757-1.674 5.665-4.642 6.392.125.415.19.879.19 1.38a300.492 300.492 0 0 1-.012 2.716 1 1 0 0 1-.019 1.958c-1.139.228-1.983-.532-1.983-1.525l.002-.446.005-.705c.005-.708.007-1.338.007-1.998 0-.697-.183-1.152-.425-1.36-.661-.57-.326-1.655.54-1.752 2.967-.333 4.337-1.482 4.337-4.66 0-.955-.312-1.744-.913-2.404a1 1 0 0 1-.19-1.045c.166-.414.237-.957.096-1.614l-.01.003c-.491.139-1.11.44-1.858.949a1 1 0 0 1-.833.135A9.626 9.626 0 0 0 12 5.315c-.89 0-1.772.119-2.592.35a1 1 0 0 1-.83-.134c-.752-.507-1.374-.807-1.868-.947-.144.653-.073 1.194.092 1.607a1 1 0 0 1-.189 1.045C6.016 7.89 5.7 8.694 5.7 9.64c0 3.172 1.371 4.328 4.322 4.66.865.097 1.201 1.177.544 1.748-.192.168-.429.732-.429 1.364v3.15c0 .986-.835 1.725-1.96 1.528a1 1 0 0 1-.04-1.962v-.99c-.91.061-1.662-.088-2.254-.485z\"\n                              ></path>\n                            </g>\n                          </svg>\n                          Repo\n                        </a>\n                      </div>\n                    </div>\n                  </div>\n                )\n              })}\n            </div>\n          </div>\n        </div>\n      </section>\n    </div>\n  )\n}\n\nexport default GetProjects\n"
  },
  {
    "path": "src/components/GetStaff.js",
    "content": "import { motion, useReducedMotion } from \"framer-motion\"\nimport ProfileCard from \"components/ProfileCard\"\n\nconst GetStaff = ({ users }) => {\n  const shouldReduceMotion = useReducedMotion()\n  const hoverAnimation = shouldReduceMotion\n    ? {}\n    : {\n        zIndex: 1,\n        scale: [1, 1.1, 1.1],\n      }\n\n  return users.map((user) => (\n    <motion.div key={user.name} whileHover={hoverAnimation}>\n      <ProfileCard\n        username={user.name}\n        avatar={user.avatar}\n        description={user.description}\n        socials={[\n          { type: \"github\", username: user.github },\n          { type: \"twitter\", username: user.twitter },\n          { type: \"youtube\", username: user.youtube },\n          { type: \"twitch\", username: user.twitch },\n          { type: \"blog\", username: user.blogUrl },\n          { type: \"linkedin\", username: user.linkedin },\n        ]}\n      />\n    </motion.div>\n  ))\n}\n\nexport default GetStaff\n"
  },
  {
    "path": "src/components/GetVideos.js",
    "content": "import React from \"react\"\nimport allVideos from \"data/videos.json\"\nimport Title from \"components/Title\"\nimport Image from \"next/image\"\n\nconst GetVideos = () => {\n  return (\n    <div className=\"flex items-center justify-center\">\n      <section className=\"max-w-bodyContainer flex-1 text-center text-white\">\n        <Title heading=\"Videos\" />\n        <p className=\"text-white/70\">Videos by 4c community Members</p>\n        <div className=\"mx-4 lg:mx-12\">\n          <div className=\"flex w-full flex-wrap justify-center mt-4\">\n            {allVideos.videos.map((video, index) => (\n              <div\n                key={index}\n                className=\"details overflow-hidden hov-bg-theme medium:my-4 cursor-pointer rounded-md bg-white/10 text-white shadow-lg backdrop-blur-[30px] transition-all ease-out hover:-translate-y-2 m-4 w-[14rem] mobile:w-[17rem] medium:w-[20rem] laptop:w-[22rem]\"\n              >\n                <a\n                  href={`https://www.youtube.com/watch?v=${video.videoId}`}\n                  target=\"_blank\" rel=\"noreferrer\"\n                >\n                  <Image\n                    src={`https://img.youtube.com/vi/${video.videoId}/maxresdefault.jpg`}\n                    className=\"mx-auto w-full\"\n                    alt={video.videoTitle}\n                    width={272}\n                    height={153}\n                  />\n                  <div className=\"py-3 px-2\">\n                    <h2>{video.videoTitle}</h2>\n                    <span className=\"text-sm font-thin text-gray-300\">\n                      {video.videoAuthor}\n                    </span>\n                  </div>\n                </a>\n              </div>\n            ))}\n          </div>\n        </div>\n      </section>\n    </div>\n  )\n}\n\nexport default GetVideos\n"
  },
  {
    "path": "src/components/GoToTop.js",
    "content": "import React, { useEffect, useState } from \"react\"\nimport { FaArrowUp } from \"react-icons/fa\"\n\nconst GoToTop = () => {\n  // state to display toggler\n  const [isVisible, setIsVisible] = useState(false)\n\n  const goToBtn = () => {\n    window.scrollTo({ top: 0, left: 0, behavior: \"smooth\" })\n  }\n\n  const listenToScroll = () => {\n    const heightToHidden = 20\n    const winScroll =\n      document.body.scrollTop || document.documentElement.scrollTop\n\n    if (winScroll > heightToHidden) {\n      setIsVisible(true)\n    } else {\n      setIsVisible(false)\n    }\n\n    const footer = document.querySelector(\".footer\")\n    const backToTopButton = document.querySelector(\".backToTopButton\")\n    const mediaQuery = window.matchMedia(\"(max-width: 400px)\")\n    const footerIsVisible = footer.getBoundingClientRect().top <= window.innerHeight\n\n    if (mediaQuery.matches) {\n      if (footerIsVisible) {\n        backToTopButton.style.bottom = `${footer.offsetHeight}px`\n        backToTopButton.style.transition = \"0.5s\"\n      } else {\n        backToTopButton.style.bottom = \"48px\"\n      }\n    }\n  }\n\n  useEffect(() => {\n    window.addEventListener(\"scroll\", listenToScroll)\n    return () => window.removeEventListener(\"scroll\", listenToScroll)\n  }, [])\n\n  // classes for gototop button\n\n  return (\n    <div\n      onClick={goToBtn}\n      onKeyDown={goToBtn}\n      role=\"button\"\n      tabIndex={0}\n      className={`backToTopButton fixed bg-gradient-to-b from-green-400 to-blue-600 animate-bounce cursor-pointer  rounded-full p-3 right-12 bottom-12 ${!isVisible ? \"hidden\" : \"backToTop\"}`}\n    >\n      {isVisible && (\n        <div>\n          <FaArrowUp className=\"text-black\" />\n        </div>\n      )}\n    </div>\n  )\n}\n\nexport default GoToTop\n"
  },
  {
    "path": "src/components/Header.js",
    "content": "import { RiMenu4Fill, RiCloseFill } from \"react-icons/ri\"\nimport { useState, useEffect } from \"react\"\nimport Link from \"next/link\"\n\n// import navbar data\nimport navItems from \"data/navbar\"\nimport Image from \"next/image\"\nimport logoImage from \"assets/logo.png\"\n\nconst Navbar = () => {\n  const [menuActive, setMenuActive] = useState(false)\n  const [activeButton, setActiveButton] = useState()\n\n  useEffect(() => {\n    const local = window.localStorage.getItem(\"active\")\n    setActiveButton(local)\n  }, [])\n\n  return (\n    <div className=\"container -ml-4  items-center justify-center left-0 right-0 z-[1] block fixed\">\n      <header className=\"my-[0] w-[100vw] bg-[#314C89]/10 backdrop-blur-[2px] px-5 py-[0.7rem] md:px-[2rem]\">\n        <div className=\"container max-w-bodyContainer  px-1 sm:px-2\">\n          <nav className=\"flex items-start justify-between  md:justify-center\">\n            <div className=\"relative flex w-full flex-wrap items-center justify-between gap-6 z-50\">\n              <Link href=\"/\">\n                <Image\n                  width={50}\n                  height={50}\n                  id=\"four-c-logo\"\n                  className=\"hover:cursor-pointer\"\n                  alt=\"4C Logo\"\n                  src={logoImage}\n                  priority\n                />\n              </Link>\n              <button\n                className=\"text-4xl lg:hidden  text-white bg-[#030e2c] p-2 rounded\"\n                aria-label=\"Menu button\"\n                type=\"button\"\n                onClick={() => setMenuActive(true)}\n              >\n                <RiMenu4Fill />\n              </button>\n              <div\n                className={`w-full h-screen -z-40 fixed bg-[#030e2c] flex p-20 top-0 left-0 ${\n                  menuActive ? \"z-40\" : \"\"\n                } flex-col items-center justify-center gap-[2rem] lg:flex-row lg:gap-[0.6rem] transition-all duration-1000 lg:w-max lg:h-max lg:!z-40 lg:static lg:bg-inherit lg:p-0 lg:top-auto lg:left-auto lg:![clip-path:unset] lg:transition-none`}\n                style={{\n                  clipPath: menuActive\n                    ? \"circle(100% at 50% 50%)\"\n                    : \"circle(0% at 100% 0)\",\n                }}\n              >\n                <button\n                  className=\"text-4xl lg:hidden  text-white bg-[#030e2c] p-2 rounded fixed top-[4rem] right-[5rem]\"\n                  aria-label=\"Close button\"\n                  type=\"button\"\n                  onClick={() => setMenuActive(false)}\n                >\n                  <RiCloseFill />\n                </button>\n                {navItems.map((navItem, idx) => (\n                  <Link\n                    href={navItem.href}\n                    key={idx}\n                    onClick={() => {\n                      window.localStorage.setItem(\"active\", navItem.href)\n                    }}\n                    onKeyDown={() => {\n                      window.localStorage.setItem(\"active\", navItem.href)\n                    }}\n                    role=\"menuitem\"\n                    tabIndex={0}\n                    className={`hov-bg-theme w-full rounded  px-4 py-2 font-bold transition-all ease-out hover:-translate-y-1 hover:cursor-pointer lg:w-auto text-center\n                    ${\n                      activeButton === navItem.href\n                        ? \"bg-theme bg-[#70b7e6] text-white\"\n                        : \"bg-[#111827] text-white\"\n                    }`}\n                  >\n                    {navItem.pageName}\n                  </Link>\n                ))}\n              </div>\n            </div>\n          </nav>\n        </div>\n      </header>\n    </div>\n  )\n}\n\nexport default Navbar\n"
  },
  {
    "path": "src/components/JoinOurTeam.jsx",
    "content": "import React, { useState } from \"react\"\nimport JoinUsForm from \"components/Form/JoinUsForm\"\n\nfunction JoinOurTeam() {\n  const [tab] = useState(\"Join Our Team\")\n  return (\n    <div className=\"mt-18 flex items-start justify-start\">\n      <section className=\"flex-1 text-center text-4xl font-bold text-white\">\n        <h1>{tab}</h1>\n        <JoinUsForm />\n      </section>\n    </div>\n  )\n}\n\nexport default JoinOurTeam\n"
  },
  {
    "path": "src/components/Layout.js",
    "content": "import Head from \"next/head\"\nimport { NextSeo } from \"next-seo\"\nimport Header from \"components/Header\"\nimport config from \"4c.config\"\nimport { motion } from \"framer-motion\"\nimport Footer from \"components/Footer\"\nimport favicon from \"../public/favicon.ico\"\n\nconst Layout = ({ header, children, ...rest }) => {\n  const variants = {\n    hidden: { opacity: 0, x: 0, y: 200 },\n    enter: { opacity: 1, x: 0, y: 0 },\n    exit: { opacity: 0, x: 0, y: 0 },\n  }\n  return (\n    <>\n      <div className=\"bg-theme min-h-screen\" id=\"get-projects-scroll\">\n        <Header {...header} />\n        <Head>\n          <link rel=\"shortcut icon\" type=\"image/x-icon\" href={favicon.src} />\n        </Head>\n        <NextSeo\n          title={config.title.short}\n          description={config.description.short}\n          canonical={config.url}\n          openGraph={{\n            url: config.url,\n            title: config.title.long,\n            description: config.description.long,\n            images: [\n              {\n                url: config.ogImage,\n                width: 1200,\n                height: 630,\n                alt: config.title.short,\n                type: \"image/jpeg\",\n              },\n            ],\n            site_name: config.siteName,\n          }}\n        />\n        <motion.main\n          {...rest}\n          variants={variants}\n          initial=\"hidden\"\n          animate=\"enter\"\n          exit=\"exit\"\n          transition={{ type: \"linear\" }}\n        >\n          {children}\n        </motion.main>\n      </div>\n      <Footer />\n    </>\n  )\n}\n\nexport default Layout\n"
  },
  {
    "path": "src/components/Loading.jsx",
    "content": "import React from \"react\"\n\nfunction Loading() {\n  return (\n    <button\n      disabled\n      type=\"button\"\n      className=\"w-full rounded-md bg-blue-500 px-2 py-4 text-sm text-white focus:bg-indigo-600 focus:outline-none\"\n    >\n      <svg\n        role=\"status\"\n        className=\"mr-3 inline h-4 w-4 animate-spin text-white\"\n        viewBox=\"0 0 100 101\"\n        fill=\"none\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n      >\n        <path\n          d=\"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z\"\n          fill=\"#E5E7EB\"\n        />\n        <path\n          d=\"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z\"\n          fill=\"currentColor\"\n        />\n      </svg>\n      Loading...\n    </button>\n  )\n}\n\nexport default Loading\n"
  },
  {
    "path": "src/components/Main.js",
    "content": "const Main = ({ eyebrow, title, description, primaryLink, twitterLink }) => {\n  return (\n    <div>\n      <div className=\"flex items-center justify-center\">\n        <section className=\"container mb-[4em] md:my-[4em] max-w-bodyContainer md:p-[2em] md:mb-[0em]\">\n          <div className=\"grid items-center gap-12 md:grid-cols-1 lg:grid-cols-2\">\n            <div className=\"col-span-1\">\n              <p className=\"hidden text-2xl font-bold uppercase tracking-wide text-white md:block\">\n                {eyebrow}\n              </p>\n\n              <h1 className=\"main-title mt-2 text-5xl font-extrabold tracking-tight text-white md:text-6xl text-center md:text-left \">\n                {title}\n              </h1>\n\n              <div className=\"main-description prose-lg my-8 mx-[auto] text-slate-200 md:text-left text-center\">\n                {description}\n              </div>\n\n              <ul className=\"my-8 flex flex-col flex-wrap gap-4 md:flex-row md:justify-start\">\n                <li className=\"self-center break:self-start\">{primaryLink}</li>\n                <li className=\"self-center break:self-start\">{twitterLink}</li>\n              </ul>\n            </div>\n            <div className=\"flex justify-end\">\n              <iframe\n                title=\"Discord Widget\"\n                width=\"95%\"\n                height=\"500\"\n                allowtransparency=\"true\"\n                sandbox=\"allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts\"\n                src=\"https://discord.com/widget?id=784142072763383858&theme=dark\"\n              ></iframe>\n            </div>\n          </div>\n        </section>\n      </div>\n    </div>\n  )\n}\n\nexport default Main\n"
  },
  {
    "path": "src/components/ProfileCard.jsx",
    "content": "import React from \"react\"\nimport {\n  FaBlog,\n  FaGithub,\n  FaYoutube,\n  FaTwitch,\n  FaLinkedin,\n} from \"react-icons/fa\"\nimport { FaXTwitter } from \"react-icons/fa6\"\nimport SocialLink from \"components/SocialLink\"\nimport Image from \"next/image\"\n\nconst socialMediaData = {\n  github: {\n    url: \"https://github.com/\",\n    icon: FaGithub,\n  },\n  twitter: {\n    url: \"https://twitter.com/\",\n    icon: FaXTwitter,\n  },\n  blog: {\n    icon: FaBlog,\n  },\n  youtube: {\n    icon: FaYoutube,\n  },\n  twitch: {\n    icon: FaTwitch,\n  },\n  linkedin: {\n    icon: FaLinkedin,\n    url: \"https://www.linkedin.com/in/\",\n  },\n}\n\nconst getSocials = (socials, username) => {\n  socials = socials.filter((social) => social.username)\n\n  return socials.map((social) => {\n    const socialMedia = socialMediaData[social.type]\n\n    if (social.type === \"blog\" && !social?.username?.includes(\"http\")) {\n      social.username = `http://${social.username}`\n    }\n    return (\n      <SocialLink\n        link={[\n          socialMedia.url ? socialMedia.url + social.username : social.username,\n        ]}\n        Icon={socialMedia.icon}\n        label={username + \"'s \" + social.type}\n        key={social.type}\n      />\n    )\n  })\n}\n\nconst ProfileCard = ({ username, avatar, socials = [], description }) => {\n  return (\n    <div className=\"m-4 flex h-64 w-64 flex-col items-center justify-center rounded-md\">\n      <div className=\"h-32 w-32 overflow-hidden rounded-full shadow-sm\">\n        <Image\n          src={avatar}\n          alt={username}\n          width={200}\n          height={200}\n          className=\"object-contain\"\n        />\n      </div>\n      <span className=\"mt-3 text-lg text-white\">{username}</span>\n      {description?.length > 0\n        ? (\n          <div className=\"mt-[.2em] w-[20ch] truncate p-[.4em] text-sm hover:w-[30ch] hover:text-clip wrapper\">\n            <p className=\"target\">{description}</p>\n          </div>\n          )\n        : (\n            \"\"\n          )}\n      <div className=\"flex items-center justify-center space-x-3 rounded py-1 px-4\">\n        {getSocials(socials, username)}\n      </div>\n    </div>\n  )\n}\n\nexport default ProfileCard\n"
  },
  {
    "path": "src/components/SocialLink.jsx",
    "content": "import React from \"react\"\n\nconst SocialLink = ({ link, Icon, label }) => (\n  <a href={link} target=\"_blank\" rel=\"noopener noreferrer\" className=\"text-white hover:text-slate-300\">\n    <Icon className=\"text-2xl\" />\n    <span className=\"sr-only\">{label}</span>\n  </a>\n)\n\nexport default SocialLink\n"
  },
  {
    "path": "src/components/Staff.js",
    "content": "import React, { useState } from \"react\"\nimport GetStaff from \"components/GetStaff\"\nimport Users from \"components/Users\"\n\n// import staff data\nimport staff from \"data/staff\"\nimport Title from \"components/Title\"\nimport { FilterUsersByNameAndDesc } from \"utils/filterUsers\"\n\nconst Staff = () => {\n  const [tab] = useState(\"Staff\")\n  // state for currentUsers\n  const [currentUsers, setCurrentUsers] = useState(staff)\n\n  // filter handler\n  const searchHandler = (event) => {\n    event.preventDefault()\n    const filterdUsers = FilterUsersByNameAndDesc(staff, event.target.value)\n    setCurrentUsers(filterdUsers)\n  }\n  return (\n    <div className=\"flex items-center justify-center\">\n      <div className=\"mt-[3em] flex max-w-bodyContainer items-start justify-start\">\n        <section className=\"flex-1 text-center font-bold text-white\">\n          <Title heading=\"Staff\" />\n          <div className=\"flex items-center justify-center \">\n            <div className=\"break:w[500px] relative m-auto flex max-w-[800px] self-center mobile:mx-10 laptop:w-[600px] bigScreen:w-[800px]\">\n              <input\n                placeholder=\"Search here\"\n                className=\"h-10 w-full border-slate-200 px-5 py-3 text-white outline-none placeholder:text-slate-700 contrast-more:border-slate-400 contrast-more:placeholder:text-slate-500 bg-white bg-opacity-[.2] p-8 shadow backdrop-blur-3xl rounded-3xl\"\n                onInput={searchHandler}\n              />\n              <svg\n                xmlns=\"http://www.w3.org/2000/svg\"\n                className=\"absolute right-3 top-1/2 h-5 w-5 -translate-y-1/2 rotate-90 text-white sm:text-slate-400\"\n                fill=\"none\"\n                viewBox=\"0 0 24 24\"\n                stroke=\"#000000\"\n                strokeWidth={2}\n              >\n                <path\n                  strokeLinecap=\"round\"\n                  strokeLinejoin=\"round\"\n                  d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\"\n                />\n              </svg>\n            </div>\n          </div>\n          {currentUsers.length\n            ? (\n            <div className=\"m-2 flex flex-wrap items-center justify-center gap-[1.8rem] overflow-y-auto pt-5 pb-4\">\n              {tab === \"Staff\"\n                ? (\n                <GetStaff users={currentUsers} />\n                  )\n                : (\n                <Users users={currentUsers} />\n                  )}\n            </div>\n              )\n            : (\n            <p className=\"mt-3\">User does not exist!</p>\n              )}\n        </section>\n      </div>\n    </div>\n  )\n}\n\nexport default Staff\n"
  },
  {
    "path": "src/components/Title.js",
    "content": "import React from \"react\"\n\nfunction Title({ heading }) {\n  // Main Heading component\n  return (\n    <>\n      <h1 className=\"headTitle mb-5 uppercase tracking-widest text-white\">\n        {heading}\n      </h1>\n    </>\n  )\n}\n\nexport default Title\n"
  },
  {
    "path": "src/components/Users.js",
    "content": "import ProfileCard from \"components/ProfileCard\"\n\nconst Contributors = ({ users }) => {\n  if (users.length === 0) {\n    return (\n      <div className=\"flex h-64 flex-col items-center justify-start space-y-6 rounded-md bg-orange-300 p-8 text-lg text-gray-600 shadow-md\">\n        None yet\n      </div>\n    )\n  }\n  return users.map((user, index) => (\n    <ProfileCard\n      key={index}\n      username={user.name}\n      avatar={user.avatar}\n      socials={[\n        { type: \"github\", username: user.github },\n        { type: \"twitter\", username: user.twitter },\n        { type: \"blog\", username: user.blogUrl },\n      ]}\n    />\n  ))\n}\n\nexport default Contributors\n"
  },
  {
    "path": "src/components/blog-posts.js",
    "content": "import BlogCard from \"components/BlogCard\"\nimport Title from \"components/Title\"\n\nconst Blogs = () => {\n  return (\n    <div className=\"flex items-center flex-col justify-center\">\n      <Title heading=\"Blogs\" />\n      <BlogCard />\n    </div>\n  )\n}\n\nexport default Blogs\n"
  },
  {
    "path": "src/components/faq.js",
    "content": "import Faqs from \"data/faq.json\"\nimport FaqAccordian from \"components/FaqAccordian\"\nimport Title from \"components/Title\"\n\nconst Faq = () => {\n  return (\n    <div>\n        <div className=\"page-title mb-16 mt-[30px] text-center text-white\">\n          <Title heading=\"Frequently asked questions\" />\n        </div>\n        <ul className=\"flex flex-col items-center justify-center\">\n          {Faqs.map((faq, idx) => (\n            <FaqAccordian key={idx} faq={faq} />\n          ))}\n        </ul>\n    </div>\n  )\n}\n\nexport default Faq\n"
  },
  {
    "path": "src/data/activemembers.js",
    "content": "import AyushAvatar from \"assets/sources/activemembers/Aayushd18.webp\"\nimport AdetoyeAvatar from \"assets/sources/activemembers/adetoye-dev.webp\"\nimport AnishAvatar from \"assets/sources/activemembers/AnishDe12020.webp\"\nimport AryanAvatar from \"assets/sources/activemembers/AryanBabber.webp\"\nimport BaranAvatar from \"assets/sources/activemembers/baranbbr.webp\"\nimport CodewithvoidAvatar from \"assets/sources/activemembers/codewithvoid.webp\"\nimport CtofaninAvatar from \"assets/sources/activemembers/ctoffanin.webp\"\nimport DevvSakibAvatar from \"assets/sources/activemembers/devvsakib.webp\"\nimport EpicAdidashAvatar from \"assets/sources/activemembers/epicadidash.webp\"\nimport HaiderAliAvatar from \"assets/sources/activemembers/haideralipunjabi.webp\"\nimport JayNarayanAvatar from \"assets/sources/activemembers/jaynarayan-vaishnav.webp\"\nimport JonnieAvatar from \"assets/sources/activemembers/Jonnie-Dev.webp\"\nimport KrishAvatar from \"assets/sources/activemembers/krshkun.webp\"\nimport MayankAvatar from \"assets/sources/activemembers/Mayank-KS.webp\"\nimport PosanduAvatar from \"assets/sources/activemembers/Posandu.webp\"\nimport RakeshAvatar from \"assets/sources/activemembers/RakeshSangem.webp\"\nimport ShorunAvatar from \"assets/sources/activemembers/ShorunTech.webp\"\nimport SiddharthAvatar from \"assets/sources/activemembers/SiddharthShyniben.webp\"\nimport BobbyAvatar from \"assets/sources/activemembers/thedevdojo.webp\"\nimport BigDogTristAvatar from \"assets/sources/activemembers/thePlebDev.webp\"\nimport VaibhavAvatar from \"assets/sources/activemembers/singh-vaibhav08.webp\"\nimport LBD from \"assets/sources/activemembers/lbd.webp\"\nimport staff from \"./staff\"\n\n// const staff = []\n\n/**\n * @typedef {Object} Profile\n * @property {string} name\n * @property {string} avatar\n * @property {string?} github\n * @property {string} description\n * @property {string?} twitter\n * @property {string?} blogUrl\n * @property {number?} contributions\n */\n\n/**\n * @type {Profile[]}\n */\n\n// export const base = [\nconst base = [\n  {\n    name: \"L.B.D\",\n    avatar: LBD,\n    github: \"lambeboluwatife\",\n    twitter: \"Danibholie\",\n    blogUrl: \"https://boluwatifeportfolio.netlify.app/\",\n    youtube: \"https://www.youtube.com/@LBDmedia/videos\",\n    linkedin: \"lambe-boluwatife-87b0b6136\",\n    contributions: 0,\n  },\n  {\n    name: \"Aayush™\",\n    avatar: AyushAvatar,\n    github: \"Aayushd18\",\n    twitter: \"aayushdeshmukh\",\n    blogUrl: \"https://aayushd.in/\",\n    contributions: 0,\n  },\n  {\n    name: \"Adetoye Adewoye\",\n    avatar: AdetoyeAvatar,\n    github: \"adetoye-dev\",\n    twitter: \"adetoye_dev\",\n    blogUrl: \"https://adetoye.vercel.app/\",\n    contributions: 0,\n  },\n  {\n    name: \"AnishDe12020\",\n    avatar: AnishAvatar,\n    github: \"AnishDe12020\",\n    twitter: \"AnishDe12020\",\n    blogUrl: \"https://anishde.dev/\",\n    contributions: 0,\n  },\n  {\n    name: \"AryanBabber\",\n    avatar: AryanAvatar,\n    github: \"AryanBabber\",\n    twitter: \"ABgoneCoding\",\n    blogUrl: \"https://linkfree.eddiehub.io/aryanbabber\",\n    contributions: 0,\n  },\n  {\n    name: \"Baran\",\n    avatar: BaranAvatar,\n    github: \"baranbbr\",\n    twitter: \"banf\",\n    blogUrl: \"https://dev.to/banf\",\n    contributions: 3,\n  },\n  {\n    name: \"bigdogtrist\",\n    avatar: BigDogTristAvatar,\n    github: \"thePlebDev\",\n    twitter: \"AndroidTristan\",\n    blogUrl: \"https://dev.to/theplebdev\",\n    contributions: 0,\n  },\n  {\n    name: \"Bobby Iliev\",\n    avatar: BobbyAvatar,\n    github: \"thedevdojo\",\n    twitter: \"bobbyiliev_\",\n    blogUrl: \"https://devdojo.com/\",\n    contributions: 0,\n  },\n  {\n    name: \"Codewithvoid\",\n    avatar: CodewithvoidAvatar,\n    github: \"codewithvoid\",\n    twitter: \"codewithvoid\",\n    blogUrl: \"\",\n    contributions: 0,\n  },\n  {\n    name: \"epicadidash\",\n    avatar: EpicAdidashAvatar,\n    github: \"epicadidash\",\n    twitter: \"epicadidash\",\n    youtube: \"https://www.youtube.com/@epicadidash\",\n    twitch: \"https://www.twitch.tv/epicadidash\",\n    linkedin: \"epicadidash\",\n    blogUrl: \"\",\n    contributions: 0,\n  },\n  {\n    name: \"jaynarayan(Jay)\",\n    avatar: JayNarayanAvatar,\n    github: \"jaynarayan-vaishnav\",\n    twitter: \"jaystwtt\",\n    blogUrl: \"https://bio.link/jaynarayan\",\n    contributions: 0,\n  },\n  {\n    name: \"jonnie\",\n    avatar: JonnieAvatar,\n    github: \"Jonnie-Dev\",\n    twitter: \"JonnieDev\",\n    blogUrl: \"\",\n    contributions: 0,\n  },\n  {\n    name: \"Mayank\",\n    avatar: MayankAvatar,\n    github: \"Mayank-KS\",\n    twitter: \"\",\n    blogUrl: \"\",\n    contributions: 0,\n  },\n  {\n    name: \"Posandu Mapa\",\n    avatar: PosanduAvatar,\n    github: \"Posandu\",\n    twitter: null,\n    blogUrl: \"https://www.tronic247.com\",\n    contributions: 3,\n  },\n  {\n    name: \"Rakesh.js\",\n    avatar: RakeshAvatar,\n    github: \"RakeshSangem\",\n    twitter: \"RakeshSangem8\",\n    blogUrl: \"\",\n    contributions: 0,\n  },\n  {\n    name: \"ShorunTech\",\n    avatar: ShorunAvatar,\n    github: \"ShorunTech\",\n    twitter: \"shoruntech\",\n    blogUrl: \"linkfree.eddiehub.io/ShorunTech\",\n    contributions: 0,\n  },\n  {\n    name: \"Siddharth Shyniben\",\n    avatar: SiddharthAvatar,\n    github: \"SiddharthShyniben\",\n    twitter: \"SiddharthShyn\",\n    blogUrl: \"https://blog.siddu.tech/\",\n    contributions: 0,\n  },\n  {\n    name: \"Vaibhav\",\n    avatar: VaibhavAvatar,\n    github: \"singh-vaibhav08\",\n    twitter: \"singh_vaibhav08\",\n    blogUrl: \"https://vaibhavsblog.hashnode.dev/\",\n    linkedin: \"singh-vaibhav08\",\n    contributions: 1,\n  },\n  {\n    name: \"DevvSakib\",\n    avatar: DevvSakibAvatar,\n    github: \"devvsakib\",\n    twitter: \"devvsakib\",\n    blogUrl: \"https://devvsakib.me\",\n    linkedin: \"devvsakib\",\n    contributions: null,\n  },\n  {\n    name: \"Ctofanin\",\n    avatar: CtofaninAvatar,\n    github: \"ctoffanin\",\n    twitter: \"ctoffaninDev\",\n    blogUrl: \"\",\n    linkedin: \"\",\n    contributions: null,\n  },\n  {\n    name: \"Haider Ali Punjabi\",\n    avatar: HaiderAliAvatar,\n    github: \"haideralipunjabi\",\n    twitter: \"HAliPunjabi\",\n    blogUrl: \"https://blog.haideralipunjabi.com\",\n    linkedin: \"haideralipunjabi\",\n    contributions: 6,\n  },\n  {\n    name: \"Krish Gupta 🥑\",\n    avatar: KrishAvatar,\n    github: \"krshkun\",\n    twitter: \"krshkun\",\n    blogUrl: \"https://links.krsh.eu.org\",\n    linkedin: \"krshkun\",\n    contributions: null,\n  },\n].sort((a, b) => (a.name > b.name ? 1 : -1))\n\n// const staffMembersAlsoActive = [\n//   \"InHuOfficial\",\n//   \"avneesh0612\",\n//   \"ardasevinc\",\n//   \"AliReza1083\",\n//   \"avie-dev\",\n//   \"Dun-sin\",\n//   \"Njong392\",\n//   \"FrancescoXX\",\n//   \"44jax44\",\n//   \"naomi-lgbt\",\n//   \"Pradumnasaraf\",\n//   \"codewithshubhi\",\n//   \"sumitsaurabh927\",\n//   \"TechSquidTV\",\n//   \"tobySolutions\",\n//   \"Yudai-creator\",\n//   \"MadhuSaini22\",\n//   \"krupalitrivedi\",\n// ]\n\n/**\n * @type {Profile[]}\n */\n\nfunction sorting(arraytobesorted) {\n  const names = []\n  const sortedarray = []\n  arraytobesorted.forEach((object) => {\n    const name = object.name\n    const updatedname = name[0].toUpperCase() + name.substring(1)\n    names.push(updatedname)\n  })\n  names.sort()\n  names.forEach((object) => {\n    const foundobject = arraytobesorted.find(searchedobject => object.localeCompare(searchedobject.name, undefined, { sensitivity: \"accent\" }) === 0)\n    sortedarray.push(foundobject)\n  })\n  return sortedarray\n}\nconst activeMembers = sorting(staff.concat(base))\nexport default activeMembers\n// module.exports = activeMembers\n// module.exports.base = base\n"
  },
  {
    "path": "src/data/blog.js",
    "content": "import FreeWeb3Resources from \"assets/sources/blog/free-web3-resources-demo-blog.webp\"\nimport ContentCreator from \"assets/sources/blog/4c.png\"\n\nconst blogs = [\n  {\n    name: \"Francesco Ciulla\",\n    title: \"FREE Web3 Resources (demo blog)\",\n    screenshot: FreeWeb3Resources,\n    screenshotUrl:\n      \"https://user-images.githubusercontent.com/18360871/199210192-f5599a23-f0b1-49ff-9c52-2554a72a2c14.png\",\n    description: \"A list of resources to learn Web3 for FREE\",\n    link: \"https://github.com/FrancescoXX/free-Web3-resources\",\n    twitter: \"https://twitter.com/FrancescoCiull4\",\n  },\n  {\n    name: \"Francesco Ciulla 2\",\n    title: \"4C - Content Creator(demo blog)\",\n    screenshot: ContentCreator,\n    screenshotUrl: \"https://user-images.githubusercontent.com/88102392/229171789-7d74c9bd-946b-494a-97a9-86612fdf2f27.png\",\n    description: \"The Cool Community of Content Creators\",\n    link: \"https://github.com/FrancescoXX/4c-site\",\n    twitter: \"https://twitter.com/FrancescoCiull4\",\n  },\n]\n\nexport default blogs\n// module.exports = blogs\n"
  },
  {
    "path": "src/data/events.json",
    "content": "{\n  \"events\": [\n    {\n      \"name\": \"4Call\",\n      \"image\": \"https://user-images.githubusercontent.com/86878236/210950060-a1e5ec9f-e21f-4a83-97b7-7bb371d5c88a.png\",\n      \"organizer\": \"4C Community\",\n      \"venue\": \"Discord\",\n      \"date\": \"every Saturday @ 1pm GMT\",\n      \"link\": \"https://discord.com/channels/784142072763383858/1058733457112567828\",\n      \"isActive\": true\n    }\n  ]\n}\n"
  },
  {
    "path": "src/data/faq.json",
    "content": "[\n  {\n    \"questions\": \"What does \\\"4C\\\" stands for?\",\n    \"answers\": \"4C stands for \\\"Cool Community of Content Creators\\\".\"\n  },\n  {\n    \"questions\": \"What is the goal of \\\"4C\\\"? \",\n    \"answers\": \"We discuss Content Creation using Videos, Articles and Social Media. Our goal is to create a decentralized community, where everyone can create some events related to the community on their channels.\"\n  },\n  {\n    \"questions\": \"Is \\\"4C\\\" open-source and how can I contribute?\",\n    \"answers\": \"4C is open source. All contributions are welcome. Visit our contributions page to learn how you can contribute.\"\n  },\n  {\n    \"questions\": \"How can I join the community?\",\n    \"answers\": \"Join our Discord Server and visit the #start-here channel.\"\n  },\n  {\n    \"questions\": \"Is \\\"4C\\\" only for experienced content creators?\",\n    \"answers\": \"Absolutely no. The community fosters growth on all levels, irrespective of prior experience —a platform where you can talk about your ideas and get opinions on how to execute them.\"\n  },\n  {\n    \"questions\": \"What are the benefits of the \\\"4C\\\" community?\",\n    \"answers\": \"You get support, activities, collaborations, free dedicated content creation webinars (yes, you got it right ! 😄), coffee chat, and a meme channel! \"\n  }\n]\n"
  },
  {
    "path": "src/data/homepage.js",
    "content": "import { FaDiscord } from \"react-icons/fa\"\nimport { FaXTwitter } from \"react-icons/fa6\"\nimport \"react-toastify/dist/ReactToastify.css\"\n\nexport const main = {\n  eyebrow: \"👋 \",\n  title: (\n    <>\n      <div className=\"\">The Cool Community of Content Creators</div>\n      {/* <div>\n        <span className=\"text-primary\">\n          <span className=\"text-theme\">C</span>ool{\" \"}\n        </span>\n        <span className=\"text-primary\">\n          <span className=\"text-theme\">C</span>ommunity\n        </span>\n      </div>\n      <div className=\"text-x\">of</div>\n      <div>\n        <span className=\"text-primary\">\n          <span className=\"text-theme\">C</span>ontent{\" \"}\n        </span>\n        <span className=\"text-primary\">\n          <span className=\"text-theme\">C</span>reators\n        </span>\n      </div> */}\n    </>\n  ),\n  description: (\n    <>\n      <p>\n        Creating content can be rewarding, but it can also be a challenge to\n        come up with ideas, get your content out there, and get it noticed.\n      </p>\n      <p>\n        Join our online community to connect with other like-minded creators,\n        collaborate on ideas, and motivate each other to create and publish!\n      </p>\n    </>\n  ),\n  primaryLink: (\n    <a\n      href=\"https://discord.com/invite/TcmA2kbJeA\"\n      className=\"btn btn-primary\"\n      target=\"_blank\" rel=\"noreferrer\"\n    >\n      <FaDiscord />\n      Join Discord Server\n    </a>\n  ),\n  twitterLink: (\n    <a\n      href=\"https://twitter.com/4ccommunityhq\"\n      className=\"btn btn-twitter\"\n      target=\"_blank\" rel=\"noreferrer\"\n    >\n      <FaXTwitter />\n       X (Twitter)\n    </a>\n  ),\n}\n"
  },
  {
    "path": "src/data/navbar.js",
    "content": "const pages = [\n  {\n    href: \"/active-members\",\n    pageName: \"Active Members\",\n  },\n  {\n    href: \"/projects\",\n    pageName: \"Projects\",\n  },\n  {\n    href: \"/staff\",\n    pageName: \"Staff\",\n  },\n]\n\nexport default pages\n"
  },
  {
    "path": "src/data/partnerCommunities.json",
    "content": "[\n  {\n    \"logo\": \"https://user-images.githubusercontent.com/81684710/215572719-5bbd7e27-24c4-43bb-a261-33dd368e93bf.png\",\n    \"community_name\": \"EddieHub\",\n    \"sub_desc\": \"Open Source\",\n    \"bio\": \"Collaboration 1st, Code 2nd!!\",\n    \"website\": \"https://www.eddiehub.org/\"\n  }\n]\n"
  },
  {
    "path": "src/data/projects.json",
    "content": "{\n  \"projects\": [\n    {\n      \"name\": \"Francesco Ciulla\",\n      \"title\": \"FREE Web3 Resources\",\n      \"screenshot\": \"https://user-images.githubusercontent.com/18360871/199210192-f5599a23-f0b1-49ff-9c52-2554a72a2c14.png\",\n      \"description\": \"A list of resources to learn Web3 for FREE\",\n      \"link\": \"https://github.com/FrancescoXX/free-Web3-resources\",\n      \"twitter\": \"https://twitter.com/FrancescoCiull4\",\n      \"live_link\": \"https://www.freeweb3resources.com\",\n      \"stack\": [\n        \"All\",\n        \"React\",\n        \"CSS\",\n        \"Others\"\n      ]\n    },\n    {\n      \"name\": \"Pradumna Saraf\",\n      \"title\": \"Open Source With Pradumna\",\n      \"screenshot\": \"https://user-images.githubusercontent.com/51878265/198830989-51ac5f4c-92f1-4c75-b106-8f82e841a2d2.png\",\n      \"description\": \"Contains resources to learn about Open Source, Git, and GitHub.\",\n      \"link\": \"https://github.com/Pradumnasaraf/open-source-with-pradumna\",\n      \"twitter\": \"https://twitter.com/pradumna_saraf\",\n      \"live_link\": \"https://os.pradumnasaraf.dev/#/\",\n      \"stack\": [\n        \"All\",\n        \"Markdown\",\n        \"HTML\",\n        \"CSS\",\n        \"Others\"\n      ]\n    },\n    {\n      \"name\": \"Susmita Dey\",\n      \"title\": \"Sukoon\",\n      \"screenshot\": \"https://user-images.githubusercontent.com/98955085/184510782-3f699206-4768-4b3a-aa6d-40c924e13578.png\",\n      \"description\": \"The one step solution to get relief from your stress. Live a stress-free life by using this website.\",\n      \"link\": \"https://github.com/Susmita-Dey/Sukoon\",\n      \"twitter\": \"https://twitter.com/its_SusmitaDey\",\n      \"live_link\": \"https://sukoon-stress-free.netlify.app/\",\n      \"stack\": [\n        \"All\",\n        \"HTML\",\n        \"CSS\",\n        \"JS/TS\"\n      ]\n    },\n    {\n      \"name\": \"thegeekyb0y\",\n      \"title\": \"FREE Python Resources\",\n      \"screenshot\": \"https://user-images.githubusercontent.com/18360871/199207091-a66dac6a-4397-4142-af56-87c941f9e1e3.png\",\n      \"description\": \"Compiled list of Free resources to learn Python\",\n      \"link\": \"https://github.com/thegeekyb0y/learnpython\",\n      \"twitter\": \"https://twitter.com/thegeekyb0y\",\n      \"live_link\": \"\",\n      \"stack\": [\n        \"All\",\n        \"Markdown\"\n      ]\n    },\n    {\n      \"name\": \"Ali Reza\",\n      \"title\": \"AniLearn.dev\",\n      \"screenshot\": \"https://i.ibb.co/WzY25g1/banner-anilearn.png\",\n      \"description\": \"Learning something with animation doesn't get easier than this\",\n      \"link\": \"https://github.com/AliReza1083/AniLearn.dev\",\n      \"twitter\": \"https://twitter.com/Ali_Developer05\",\n      \"live_link\": \"https://www.anilearn.dev/\",\n      \"stack\": [\n        \"All\",\n        \"Next\",\n        \"Tailwind\",\n        \"Markdown\",\n        \"JS/TS\",\n        \"Others\"\n      ]\n    },\n    {\n      \"name\": \"Aditya Bisht\",\n      \"title\": \"BetterPoll\",\n      \"screenshot\": \"https://i.postimg.cc/66Z6kmf0/Capture.png\",\n      \"description\": \"A complete campus management android app.\",\n      \"link\": \"https://github.com/adityabisht02/BetterPoll-Android\",\n      \"twitter\": \"https://twitter.com/AdityaB35550332\",\n      \"live_link\": \"\",\n      \"stack\": [\n        \"All\",\n        \"Others\"\n      ]\n    },\n    {\n      \"name\": \"Akshita Gupta\",\n      \"title\": \"Face-X\",\n      \"screenshot\": \"https://user-images.githubusercontent.com/18360871/199206838-97ebea3b-a413-412c-ab72-ae7763315b31.png\",\n      \"description\": \"Demonstration of different algorithms and operations on faces.\",\n      \"link\": \"https://github.com/akshitagupta15june/Face-X\",\n      \"twitter\": \"https://twitter.com/Akshita_archer\",\n      \"live_link\": \"https://www.youtube.com/watch?v=VK-IaRY9szg\",\n      \"stack\": [\n        \"All\",\n        \"Others\"\n      ]\n    },\n    {\n      \"name\": \"Krishnansh Agarwal\",\n      \"title\": \"Library\",\n      \"screenshot\": \"https://i.postimg.cc/P5mgxvDr/Screenshot-20221101-110821-Chrome.jpg\",\n      \"description\": \"A basic library management system [only frontend]\",\n      \"link\": \"https://github.com/krishnanshagarwal112/Library\",\n      \"twitter\": \"https://twitter.com/KrishnanshDev\",\n      \"live_link\": \"\",\n      \"stack\": [\n        \"All\",\n        \"HTML\",\n        \"CSS\",\n        \"JS/TS\"\n      ]\n    },\n    {\n      \"name\": \"Becca Lyria\",\n      \"title\": \"Becca Lyria\",\n      \"screenshot\": \"https://user-images.githubusercontent.com/18360871/201510325-cfd1e1fb-e838-448a-895d-7bc1f492d97c.png\",\n      \"description\": \"A community management and moderation bot for Discord.\",\n      \"link\": \"https://github.com/beccalyria/discord-bot\",\n      \"twitter\": \"https://twitter.com/becca_lyria\",\n      \"live_link\": \"https://www.beccalyria.com\",\n      \"stack\": [\n        \"All\",\n        \"JS/TS\"\n      ]\n    },\n    {\n      \"name\": \"Njong Emy\",\n      \"title\": \"Abbreve\",\n      \"screenshot\": \"https://images2.imgbox.com/02/5a/8MUFjojh_o.png\",\n      \"description\": \"Open source dictionary for slang\",\n      \"link\": \"https://github.com/Njong392/Abbreve\",\n      \"twitter\": \"https://twitter.com/njong_emy\",\n      \"live_link\": \"https://www.abbreve.tech\",\n      \"stack\": [\n        \"All\",\n        \"React\",\n        \"Tailwind\"\n      ]\n    },\n    {\n      \"name\": \"Tobiloba Adedeji\",\n      \"title\": \"Million.js\",\n      \"screenshot\": \"https://i.ibb.co/Hq16Q2L/tobiloba-portfolio.png\",\n      \"description\": \"Virtual DOM that makes React faster\",\n      \"link\": \"https://github.com/aidenybai/million\",\n      \"twitter\": \"https://twitter.com/toby_solutions\",\n      \"live_link\": \"https://million.dev\",\n      \"stack\": [\n        \"All\",\n        \"Javascript\",\n        \"Typescript\"\n      ]\n    },\n    {\n      \"name\": \"Yudai H\",\n      \"title\": \"Yudai Creator Portfolio Website\",\n      \"screenshot\": \"https://user-images.githubusercontent.com/18360871/201510239-78ddaa5d-f3d6-4a3b-a88c-d5a2eb324341.png\",\n      \"description\": \"Building my portfolio of projects, where I going to turn this website into the center point of my brand.\",\n      \"link\": \"https://github.com/Yudai-creator/yudai-creator-definitive\",\n      \"twitter\": \"https://twitter.com/creator_yudai\",\n      \"live_link\": \"https://yudaicreator.com\",\n      \"stack\": [\n        \"All\",\n        \"Others\"\n      ]\n    },\n    {\n      \"name\": \"Dunsin\",\n      \"title\": \"Code Magic\",\n      \"screenshot\": \"https://user-images.githubusercontent.com/78784850/198844365-b79a5bb2-f3bc-47bc-94d6-b6389552b1a5.png\",\n      \"description\": \"Get short css code you can use in your applications\",\n      \"link\": \"https://github.com/Dun-sin/Code-Magic\",\n      \"twitter\": \"https://twitter.com/DunsinWebDev\",\n      \"live_link\": \"https://code-magic.vercel.app\",\n      \"stack\": [\n        \"All\",\n        \"JS/TS\"\n      ]\n    },\n    {\n      \"name\": \"Tamal Das\",\n      \"title\": \"Project Milan\",\n      \"screenshot\": \"https://user-images.githubusercontent.com/18360871/201510488-73feeba6-b08c-42a0-a985-e8f159eaa869.png\",\n      \"description\": \"A hub for users to collaborate with NGOs and make Earth a better place\",\n      \"link\": \"https://github.com/IAmTamal/Milan\",\n      \"twitter\": \"https://twitter.com/mrTamall\",\n      \"live_link\": \"https://milaan.vercel.app\",\n      \"stack\": [\n        \"All\",\n        \"React\",\n        \"Others\"\n      ]\n    },\n    {\n      \"name\": \"Avie\",\n      \"title\": \"SpacesLounge\",\n      \"screenshot\": \"https://i.ibb.co/ZMpDrBM/Spaces-Lounge.png\",\n      \"description\": \"Twitter Spaces Host and Speaker's Lounge\",\n      \"link\": \"https://github.com/avie-dev/spaceslounge\",\n      \"twitter\": \"https://twitter.com/AvieDev\",\n      \"live_link\": \"https://spaceslounge.vercel.app\",\n      \"stack\": [\n        \"All\",\n        \"Tailwind\",\n        \"Next\"\n      ]\n    },\n    {\n      \"name\": \"J S Vignesh Kanna\",\n      \"title\": \"TailwindCSS Bootstrap\",\n      \"screenshot\": \"https://user-images.githubusercontent.com/42484705/197696771-9aaf4f6d-1928-4d66-9d2b-01ad479d289a.png\",\n      \"description\": \"An opensource tailwindCSS UI component collection\",\n      \"link\": \"https://github.com/jsvigneshkanna/tailwind_ui_components\",\n      \"twitter\": \"https://twitter.com/jsvigneshkanna\",\n      \"live_link\": \"https://tailwindcsscomponents.vercel.app\",\n      \"stack\": [\n        \"All\",\n        \"Tailwind\",\n        \"Next\"\n      ]\n    },\n    {\n      \"name\": \"Ibrahim\",\n      \"title\": \"Frontend Resources\",\n      \"screenshot\": \"https://i.ibb.co/BKt0kn2/Frontend-Resources-Banner.png\",\n      \"description\": \"A curated list of resources for Frontend development\",\n      \"link\": \"https://github.com/ibrahimraimi/frontend-resources\",\n      \"twitter\": \"https://twitter.com/ibrahimraimi_\",\n      \"live_link\": \"https://frontend-dev-resources.vercel.app/\",\n      \"stack\": [\n        \"All\",\n        \"Next\",\n        \"Markdown\"\n      ]\n    },\n    {\n      \"name\": \"Mahesh Kasbe\",\n      \"title\": \"K-Dash\",\n      \"screenshot\": \"https://raw.githubusercontent.com/Mahesh-Kasabe/K-Dash/master/Images/overview.png\",\n      \"description\": \"Browser Based Kubernetes Real Time Monitoring Tool\",\n      \"link\": \"https://github.com/Mahesh-Kasabe/K-Dash\",\n      \"twitter\": \"https://twitter.com/maheshstwt\",\n      \"live_link\": \"https://youtu.be/0oRW_ZetXoc\",\n      \"stack\": [\n        \"All\",\n        \"React\"\n      ]\n    },\n    {\n      \"name\": \"Letam\",\n      \"title\": \"Letam\",\n      \"screenshot\": \"https://i.ibb.co/T4P9757/Letam-image.png\",\n      \"description\": \"My portfolio website\",\n      \"link\": \"https://github.com/Yagazie-davidson/Portfolio\",\n      \"twitter\": \"https://twitter.com/LetamDavidson\",\n      \"live_link\": \"https://letam.vercel.app/\",\n      \"stack\": [\n        \"All\",\n        \"React\"\n      ]\n    },\n    {\n      \"name\": \"Soumyadeep Das Bhowmick\",\n      \"title\": \"Santa-Funda\",\n      \"screenshot\": \"https://user-images.githubusercontent.com/115442240/209482401-d4a57d6d-0b71-4b9b-8a36-8942ec2c87b8.png\",\n      \"description\": \"Wish your friend via this site\",\n      \"link\": \"https://github.com/SoumyadeepOSD/Christmas-Gift/tree/master\",\n      \"twitter\": \"https://twitter.com/SoumyadeepDasB6\",\n      \"live_link\": \"https://soumyadeeposd.github.io/Christmas-Gift/\"\n    },\n    {\n      \"name\": \"Ellams George\",\n      \"title\": \"Ellams George\",\n      \"screenshot\": \"https://avatars.githubusercontent.com/u/103334963?v=4\",\n      \"description\": \"Ellams portfolio v2.0\",\n      \"link\": \"https://github.com/Ellamsg/folio2\",\n      \"twitter\": \"https://twitter.com/ellamsgeorge1\",\n      \"live_link\": \"https://ellamsfolio.netlify.app/\"\n    },\n    {\n      \"name\": \"Suman Paik\",\n      \"title\": \"Plant Store\",\n      \"screenshot\": \"https://user-images.githubusercontent.com/93247057/214245266-3404f4b8-aa12-4529-86d8-8f2e02bb67db.png\",\n      \"description\": \"Select and shop your favourite plant.\",\n      \"link\": \"https://github.com/sumanpaikdev/Plant-Store-Online\",\n      \"twitter\": \"https://twitter.com/sumanpaikdev\",\n      \"live_link\": \"https://shop-plant.netlify.app/\",\n      \"stack\": [\n        \"All\",\n        \"React\",\n        \"Tailwind\"\n      ]\n    }\n  ]\n}\n"
  },
  {
    "path": "src/data/stacks.json",
    "content": "{\n  \"stack\": [\n    {\n      \"key\": 0,\n      \"name\": \"All\"\n    },\n    {\n      \"key\": 1,\n      \"name\": \"HTML\"\n    },\n    {\n      \"key\": 2,\n      \"name\": \"CSS\"\n    },\n    {\n      \"key\": 3,\n      \"name\": \"JS/TS\"\n    },\n    {\n      \"key\": 4,\n      \"name\": \"React\"\n    },\n    {\n      \"key\": 5,\n      \"name\": \"Tailwind\"\n    },\n    {\n      \"key\": 6,\n      \"name\": \"Next\"\n    },\n    {\n      \"key\": 7,\n      \"name\": \"Markdown\"\n    },\n    {\n      \"key\": 8,\n      \"name\": \"Others\"\n    }\n  ]\n}\n"
  },
  {
    "path": "src/data/staff.js",
    "content": "import JaxAvatar from \"assets/sources/staff/44jax44.webp\"\nimport AliRezaAvatar from \"assets/sources/staff/AliReza1083.webp\"\nimport AvieAvatar from \"assets/sources/staff/avie-dev.webp\"\nimport DunsinAvatar from \"assets/sources/staff/Dun-sin.webp\"\nimport FrancescoAvatar from \"assets/sources/staff/FrancescoXX.webp\"\nimport GrahamAvatar from \"assets/sources/staff/InHuOfficial.webp\"\nimport KrupaliAvatar from \"assets/sources/staff/krupalitrivedi.webp\"\nimport LouellaAvatar from \"assets/sources/staff/lovelacecoding.webp\"\nimport MadhuAvatar from \"assets/sources/staff/MadhuSaini22.webp\"\nimport PradumnaAvatar from \"assets/sources/staff/Pradumnasaraf.webp\"\nimport SumitAvatar from \"assets/sources/staff/sumitsaurabh927.webp\"\nimport TobiAvatar from \"assets/sources/staff/tobySolutions.jpeg\"\nimport ElderAvatar from \"assets/sources/staff/Elder.webp\"\nimport TiyaAvatar from \"assets/sources/staff/Tiya.webp\"\n\n/**\n * @typedef {Object} Profile\n * @property {string} name\n * @property {string} avatar\n * @property {string?} github\n * @property {string} description\n * @property {string?} twitter\n * @property {string?} blogUrl\n * @property {number?} contributions\n */\n\n/**\n * @type {Profile[]}\n */\nconst staff = [\n  {\n    name: \"Graham\",\n    avatar: GrahamAvatar,\n    github: \"InHuOfficial\",\n    description: \"Open for new opportunities in 2023\",\n    twitter: \"Grahamthedev\",\n    blogUrl: \"https://dev.to/inhuofficial\",\n    contributions: 0,\n  },\n  {\n    name: \"Ali Reza\",\n    avatar: AliRezaAvatar,\n    github: \"AliReza1083\",\n    description:\n      \"Passionate in Coding, Refugee Boy, Threads about Web Development\",\n    twitter: \"Ali_Developer05\",\n    blogUrl: \"https://linkfree.eddiehub.io/AliReza1083\",\n    contributions: 0,\n  },\n  {\n    name: \"Avie\",\n    avatar: AvieAvatar,\n    github: \"avie-dev\",\n    description:\n      \"BrSE in Japan(YNS)🌸 | Community leader@ http://ossph.org | Community manager| @4ccommunityhq| open source | Spaces Host | Sharing about Tech💻, Japan🇯🇵 & Art\",\n    twitter: \"AvieDev\",\n    blogUrl: \"\",\n    contributions: 0,\n  },\n  {\n    name: \"Dunsin\",\n    avatar: DunsinAvatar,\n    github: \"Dun-sin\",\n    description:\n      \"🧑‍💻18|⚙Building https://code-magic.vercel.app and https://whischat.vercel.app |☯Being real about stuff |🥑Open Source |🎖️Tweeting from my POV |🧒She/Her\",\n    twitter: \"DunsinWebDev\",\n    blogUrl: \"https://linktr.ee/DunsinCodes\",\n    contributions: 0,\n  },\n  {\n    name: \"Francesco Ciulla\",\n    avatar: FrancescoAvatar,\n    github: \"FrancescoXX\",\n    description:\n      \"·Follow me, I will help you with Web3 & DevRel· Building a 1M Community 19%· Docker Captain |@dailydotdev · Public Speaker· 4C founder @4ccommunityhq\",\n    twitter: \"FrancescoCiull4\",\n    youtube: \"https://www.youtube.com/c/FrancescoCiulla\",\n    twitch: \"https://www.twitch.tv/francesco_ciulla\",\n    blogUrl: \"https://discord.com/invite/TcmA2kbJeA\",\n    contributions: 10,\n  },\n  {\n    name: \"JAX\",\n    avatar: JaxAvatar,\n    github: \"44jax44\",\n    description:\n      \"I will help you become a better communicator | Tweets on all aspects of communication| Life Health & Fitness Coach | Can communicate in 🇬🇧 🇫🇷 🇱🇧 🇪🇸 🇵🇹\",\n    twitter: \"44jax44\",\n    blogUrl: \"https://linktr.ee/44jax44\",\n    contributions: 0,\n  },\n  {\n    name: \"Pradumna Saraf\",\n    avatar: PradumnaAvatar,\n    github: \"Pradumnasaraf\",\n    description: \"Open Source Advocate | EddieHub Ambassador\",\n    twitter: \"pradumna_saraf\",\n    blogUrl: \"\",\n    contributions: 0,\n  },\n  {\n    name: \"Sumit\",\n    avatar: SumitAvatar,\n    github: \"sumitsaurabh927\",\n    description:\n      \"Explaining tech the way I wish I was taught | Tweets on Javascript, React, Open Source, and Web Development |🎙 Spaces | 🥑 Open Source advocate\",\n    twitter: \"sumitsaurabh927\",\n    blogUrl: \"https://sumitsaurabh.hashnode.dev/\",\n    contributions: 0,\n  },\n  {\n    name: \"Tobiloba Adedeji\",\n    avatar: TobiAvatar,\n    github: \"tobySolutions\",\n    description:\n      \"Frontend Engineer | Accessibility Advocate  l Developer Advocate at Million.js\",\n    twitter: \"toby_solutions\",\n    blogUrl: \"\",\n    linkedin: \"tobiloba-adedeji\",\n    contributions: 34,\n  },\n  {\n    name: \"Louëlla Creemers\",\n    avatar: LouellaAvatar,\n    github: \"lovelacecoding\",\n    linkedin: \"louelladev\",\n    description:\n      \"Web Developer 🌍 | Public Speaker 🗣️ | .NET & C# 🖥️  | Dad Joke Enthusiast 🤓 | Learning and Joking With You While Working and Studying CS\",\n    twitter: \"lovelacecoding\",\n    twitch: \"https://www.twitch.tv/lovelacecoding\",\n    blogUrl: \"https://lovelacecoding.hashnode.dev/\",\n    contributions: null,\n  },\n  {\n    name: \"Madhu Saini\",\n    avatar: MadhuAvatar,\n    github: \"MadhuSaini22\",\n    description: \"Full Stack Developer | Open Source Enthusiast\",\n    twitter: \"MadhuSaini22\",\n    blogUrl: \"https://madhusaini46810.wixsite.com/original\",\n    linkedin: \"madhu-saini\",\n    contributions: 24,\n  },\n  {\n    name: \"Krupali\",\n    description:\n      \"20 🚀 || talking about blogging and communities|| web3 and web dev learner | summarising spaces in threads | chillin' in discord servers |books 💜\",\n    avatar: KrupaliAvatar,\n    github: \"krupalitrivedi\",\n    twitter: \"chai_really\",\n    blogUrl: \"\",\n    linkedin: \"\",\n    contributions: null,\n  },\n  {\n    name: \"K. Eldreth aka Elder\",\n    github: \"\",\n    description: \"Just another bystander; Lead Dev in robotics\",\n    twitter: \"Elder_Youth\",\n    blogUrl: \"\",\n    avatar: ElderAvatar,\n    linkedin: \"\",\n    contributions: null,\n  },\n  {\n    name: \"Tiya Bansal\",\n    github: \"Tiyabansal\",\n    description: \"SWE Intern @JPMC, UK | Cloud and Devops | IT Undergraduate\",\n    twitter: \"TiyaTwts\",\n    blogUrl: \"\",\n    avatar: TiyaAvatar,\n    linkedin: \"tiya-bansal\",\n    contributions: null,\n  },\n].sort((a, b) => (a.name > b.name ? 1 : -1))\n\nexport default staff\n\n// module.exports = staff\n"
  },
  {
    "path": "src/data/videos.json",
    "content": "{\n  \"videos\": [\n    {\n      \"videoId\": \"az-ILjdFCe8\",\n      \"videoTitle\": \"4C Website - Let's code it\",\n      \"videoAuthor\": \"Francesco Ciulla\"\n    },\n    {\n      \"videoId\": \"uIS3hlHJ05o\",\n      \"videoTitle\": \"Communities & Content Creators - 4C\",\n      \"videoAuthor\": \"Francesco Ciulla\"\n    },\n    {\n      \"videoId\": \"o5UxTeN6OCg\",\n      \"videoTitle\": \"4Castle event - Let's GEEK out together\",\n      \"videoAuthor\": \"Francesco Ciulla\"\n    }\n  ]\n}\n"
  },
  {
    "path": "src/pages/_app.js",
    "content": "import \"styles/global.css\"\nimport React, { useEffect } from \"react\"\nimport Head from \"next/head\"\nimport { AnimatePresence } from \"framer-motion\"\nimport { Poppins, Red_Hat_Display as RedHatDisplay } from \"@next/font/google\"\nimport pages from \"data/navbar\"\nimport GoToTop from \"components/GoToTop\"\n\nconst poppins = Poppins({\n  weight: [\"400\", \"500\", \"600\"],\n  variable: \"--font-poppins\",\n  subsets: [\"latin\"],\n  display: \"swap\",\n})\n\nconst redHatDisplay = RedHatDisplay({\n  weight: [\"700\"],\n  variable: \"--font-redhat\",\n  subsets: [\"latin\"],\n  display: \"swap\",\n})\n\nexport default function App({ Component, pageProps }) {\n  useEffect(() => {\n    const preloads = [\n      ...pages.map((page) => page.href),\n      \"/\",\n    ]\n\n    preloads.forEach((href) => {\n      const link = document.createElement(\"link\")\n      link.rel = \"prefetch\"\n      link.href = href\n      document.head.appendChild(link)\n    })\n  })\n\n  return (\n    <div className={`${poppins.variable} ${redHatDisplay.variable} font-sans`}>\n      <Head>\n        <meta\n          name=\"description\"\n          content=\"4C: The Cool Community for Content Creators\"\n        />\n        <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n      </Head>\n\n      <AnimatePresence\n        mode=\"wait\"\n        onExitComplete={() => window.scrollTo(0, 0)}\n      >\n        <Component {...pageProps} />\n      </AnimatePresence>\n      <GoToTop/>\n    </div>\n  )\n}\n"
  },
  {
    "path": "src/pages/_document.js",
    "content": "import Document, { Html, Head, Main, NextScript } from \"next/document\"\n\nclass MyDocument extends Document {\n  render() {\n    return (\n      <Html lang=\"en\">\n        <Head>\n          <link\n            rel=\"manifest\"\n            crossOrigin=\"use-credentials\"\n            href=\"/manifest.json\"\n          />\n          <link rel=\"apple-touch-icon\" href=\"/icon.png\"></link>\n          <meta name=\"theme-color\" content=\"#fff\" />\n        </Head>\n        <body className=\"overflow-x-hidden\">\n          <Main />\n          <NextScript />\n        </body>\n      </Html>\n    )\n  }\n}\n\nexport default MyDocument\n"
  },
  {
    "path": "src/pages/active-members.js",
    "content": "import Layout from \"components/Layout\"\nimport ActiveMembers from \"components/ActiveMembers\"\n\nexport default function Home() {\n  return (\n    <Layout className=\"flex flex-col justify-start mt-[7rem]\">\n      <ActiveMembers />\n    </Layout>\n  )\n}\n"
  },
  {
    "path": "src/pages/index.js",
    "content": "import Blogs from \"components/blog-posts\"\nimport CommunityPartners from \"components/CommunityPartners\"\nimport Faq from \"components/faq\"\nimport GetActivities from \"components/GetActivities\"\nimport GetVideos from \"components/GetVideos\"\nimport Layout from \"components/Layout\"\nimport Main from \"components/Main\"\nimport { main } from \"data/homepage\"\nimport { useRouter } from \"next/router\"\nimport React from \"react\"\n\nexport default function Home() {\n  const router = useRouter()\n\n  if (typeof window !== \"undefined\") {\n    if (router.pathname === \"/\") {\n      localStorage.removeItem(\"active\")\n    }\n  }\n\n  return (\n    <div>\n      <Layout className=\"flex flex-col justify-center mt-[13rem] md:mt-[5rem]\">\n        <Main {...main} />\n        <div className=\"flex flex-col gap-16\">\n          <GetActivities />\n          <GetVideos />\n          <Blogs />\n          <Faq />\n        </div>\n        <CommunityPartners />\n      </Layout>\n    </div>\n  )\n}\n"
  },
  {
    "path": "src/pages/joinourteam.js",
    "content": "import Layout from \"components/Layout\"\nimport JoinOurTeam from \"components/JoinOurTeam\"\n\nexport default function joinOurTeam() {\n  return (\n    <Layout className=\"flex flex-col justify-center mt-[9rem]\">\n      <JoinOurTeam />\n    </Layout>\n  )\n}\n"
  },
  {
    "path": "src/pages/projects.js",
    "content": "import Layout from \"components/Layout\"\nimport GetProjects from \"components/GetProjects\"\n\nexport default function joinOurTeam() {\n  return (\n    <Layout className=\"flex flex-col justify-center mt-[7rem]\">\n      <GetProjects />\n    </Layout>\n  )\n}\n"
  },
  {
    "path": "src/pages/staff.js",
    "content": "import Layout from \"components/Layout\"\nimport Staff from \"components/Staff\"\n\nexport default function Home() {\n  return (\n    <Layout className=\"flex flex-col justify-start mt-[7rem]\">\n      <Staff />\n    </Layout>\n  )\n}\n"
  },
  {
    "path": "src/public/manifest.json",
    "content": "{\n  \"theme_color\": \"#FFF7ED\",\n  \"background_color\": \"#EA580C\",\n  \"display\": \"standalone\",\n  \"scope\": \"/\",\n  \"start_url\": \"/\",\n  \"name\": \"4c\",\n  \"description\": \"The Cool Community For Content Creators\",\n  \"short_name\": \"4c\",\n  \"icons\": []\n}\n"
  },
  {
    "path": "src/scripts/img.js",
    "content": "/* eslint-disable eslint-comments/disable-enable-pair */\n/* eslint-disable @typescript-eslint/no-var-requires */\nconst activemembers = require(\"../data/activemembers\")\nconst blogs = require(\"../data/blog.js\")\nconst projects = require(\"../data/projects.json\")\nconst staff = require(\"../data/staff\")\n\nconst { azelf } = require(\"azelf\")\nconst path = require(\"path\")\nconst { rm } = require(\"fs/promises\")\nconst trevenant = new (require(\"trevenant\")).Trevenant()\n\n// a function that makes sentences become url friendly endpoints\n\nfunction urlify(text) {\n  return text\n    .toString()\n    .toLowerCase()\n    .replace(/\\s+/g, \"-\") // Replace spaces with -\n    .replace(/[^\\w-]+/g, \"\") // Remove all non-word chars\n    .replace(/--+/g, \"-\") // Replace multiple - with single -\n    .replace(/^-+/, \"\") // Trim - from start of text\n    .replace(/-+$/, \"\") // Trim - from end of text\n}\n\nasync function megaAzelf(url, name, type) {\n  trevenant.info(`Processing ${name}`)\n\n  await azelf(url, name, {\n    directory: path.join(__dirname, \"..\", \"assets\", \"sources\", type),\n    webp: true,\n    quality: 60,\n  })\n\n  trevenant.success(`Finished processing ${name}`)\n}\n\nasync function main() {\n  trevenant.info(\"Cleaning up old images\")\n\n  await rm(path.join(__dirname, \"..\", \"assets\", \"sources\"), {\n    recursive: true,\n    force: true,\n  })\n\n  for await (const member of activemembers.base) {\n    megaAzelf(\n      `https://github.com/${member.github}.png`,\n      `${member.github}.webp`,\n      \"activemembers\",\n    )\n  }\n\n  for await (const member of staff) {\n    megaAzelf(\n      `https://github.com/${member.github}.png`,\n      `${member.github}.webp`,\n      \"staff\",\n    )\n  }\n\n  for await (const post of blogs) {\n    trevenant.info(`Processing ${post.title}`)\n\n    if (post.screenshot === \"\") return trevenant.warn(`No screenshot for ${post.title}`)\n\n    await azelf(post.screenshot, `${urlify(post.title)}.webp`, {\n      directory: path.join(__dirname, \"..\", \"assets\", \"sources\", \"blog\"),\n      webp: true,\n      quality: 60,\n    })\n  }\n\n  for await (const project of projects.projects) {\n    trevenant.info(`Processing ${project.titles}`)\n    if (project.screenshot === \"\") return trevenant.warn(`No screenshot for ${project.titles}`)\n    await azelf(project.screenshot, `${urlify(project.title)}.webp`, {\n      directory: path.join(__dirname, \"..\", \"assets\", \"sources\", \"projects\"),\n      webp: true,\n      quality: 60,\n    })\n  }\n}\n\nmain()\n"
  },
  {
    "path": "src/styles/global.css",
    "content": "@tailwind base;\n@tailwind components;\n@tailwind utilities;\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n  @apply font-sans;\n  font-family: var(--font-redhat)\n}\n\n.hamburger {\n  display: block;\n}\n\n.bg-theme {\n  background: rgb(68, 18, 115);\n  background: linear-gradient(\n    34deg,\n    rgba(68, 18, 115, 1) 0%,\n    rgba(5, 30, 75, 1) 21%,\n    rgba(52, 79, 141, 1) 58%,\n    rgba(106, 137, 223, 1) 80%,\n    rgba(145, 227, 226, 1) 99%\n  );\n}\n\n.hov-bg-theme:hover {\n  box-shadow: 0 0 35px rgba(255, 255, 255, 0.8);\n}\n\n.text-theme {\n  color: #fff;\n}\n\n\n@media (min-width: 768px) {\n  .text-theme {\n    color: #fff;\n  }\n}\n\n@media (min-width: 1024px) {\n  .hamburger {\n    display: none;\n  }\n}\n\n@media (max-width: 613px) {\n  body .before-multiselect{\n    @apply bg-transparent shadow-none outline-none backdrop-blur-none;\n  }\n\n  body #multiselectContainerReact .searchWrapper input {\n    @apply bg-[#FEFEFE] text-[#314c89] w-full border-slate-200 px-3 outline-none placeholder:text-slate-700 contrast-more:border-slate-400 contrast-more:placeholder:text-slate-500 rounded-3xl bg-opacity-[.2] shadow backdrop-blur-3xl ml-0 p-2;\n  }\n\n  body #multiselectContainerReact .searchWrapper .chip {\n    @apply mb-3;\n  }\n\n  .searchIcon {\n    @apply absolute right-8 bottom-[15px];\n  }\n}\n\n@media (max-width: 430px){\n  .backToTop{\n    right: 20px;\n  }\n}\n\n@media (max-width: 400px) {\n  .group {\n    width: 339px;\n  }\n\n  .main-title {\n    font-size: 2.1875rem;\n    margin-top: 1.25rem;\n  }\n\n  .main-description {\n    text-align: justify;\n    font-size: 0.9375rem;\n  }\n\n  .backToTop{\n    right: 10px;\n  }\n}\n\n@media (max-width: 358px) {\n  .group {\n    width: 310px;\n  }\n}\n\n@media (max-width: 310px) {\n  .projectContainer {\n    width: 93vw;\n  }\n\n  .group {\n    width: 95vw;\n  }\n\n  .projDetail {\n    overflow-x: hidden;\n  }\n}\n\n/* .details summary::after {\n  content: \">\";\n} */\n\n\n.headTitle {\n  @apply text-2xl md:text-2xl lg:text-3xl;\n}\n\n.btn {\n  @apply inline-flex cursor-pointer items-center justify-center gap-2 rounded-md px-8 py-3 font-semibold no-underline antialiased outline-none transition duration-200 ease-in-out focus:ring-2 focus:ring-indigo-600 focus:ring-offset-2;\n}\n\n.btn-primary {\n  @apply translate-x-0 transform rounded-full rounded-bl-none bg-gray-900 font-medium text-white shadow-2xl hover:translate-y-1 hover:bg-[#7289DA] hover:shadow-md;\n}\n.btn-twitter {\n  @apply translate-x-0 transform rounded-full rounded-bl-none bg-gray-900 font-medium text-white shadow-2xl hover:translate-y-1 hover:bg-[rgb(29,161,242)] hover:shadow-md;\n}\n\n#multiselectContainerReact {\n  @apply w-full border-slate-200 px-2 outline-none placeholder:text-slate-700 contrast-more:border-slate-400 contrast-more:placeholder:text-slate-500;\n}\n\n#multiselectContainerReact .searchWrapper{\n  @apply text-[#314c89] border-none flex flex-wrap items-center h-auto;\n}\n\n#multiselectContainerReact .searchWrapper .chip{\n  @apply mb-0; \n}\n\n#multiselectContainerReact .searchWrapper input{\n  @apply placeholder:text-slate-700 text-white font-bold ml-2 mt-0;\n}\n\n#get-projects-scroll{\n  overflow: hidden;\n}\n\n#four-c-logo{\n  height: auto;\n  width: 56px;\n}\n\n::-webkit-scrollbar {\n  width: 12px; /* Width of the scrollbar */\n}\n\n::-webkit-scrollbar-track {\n  background: #f1f1f1; /* Color of the track */\n}\n\n::-webkit-scrollbar-thumb {\n  background-color: #7aace0 ; /* Color of the scroll thumb */\n  border-radius: 13px;\n\n}"
  },
  {
    "path": "src/utils/filterUsers.js",
    "content": "export const FilterUsers = (users, target) => {\n  const filteredUsers = []\n  for (let i = 0; i < users.length; i++) {\n    const name = users[i].name.toLowerCase()\n    const matcher = target.toLowerCase()\n    if (name.includes(matcher)) {\n      filteredUsers.push(users[i])\n    }\n  }\n  return filteredUsers\n}\n\nexport const FilterUsersByNameAndDesc = (users, target) => {\n  const regex = new RegExp(target, \"i\")\n  return users.filter((user) =>\n    regex.test(user.name) ||\n    regex.test(user.description))\n}\n"
  },
  {
    "path": "tailwind.config.js",
    "content": "// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst { fontFamily: _fontFamily } = require(\"tailwindcss/defaultTheme\")\n\n/**\n * @type {import(\"tailwindcss\").Config}\n */\n\nconst tailwindConfig = {\n  content: [\n    \"./src/**/*.{js,ts,jsx,tsx}\",\n  ],\n  theme: {\n    container: {\n      center: true,\n      padding: \"1rem\",\n    },\n    extend: {\n      screens: {\n        bigScreen: \"1100px\",\n        laptop: \"801px\",\n        medium: \"450px\",\n        break: \"500px\",\n        mobile: \"300px\",\n      },\n      fontFamily: {\n        sans: [\"var(--font-poppins)\", ..._fontFamily.sans],\n      },\n      dropShadow: {\n        \"3xl\": \"0 0 10px #0000006e\",\n      },\n      maxWidth: {\n        bodyContainer: \"1300px\",\n      },\n    },\n  },\n  variants: {},\n  plugins: [\n    require(\"@tailwindcss/typography\"),\n    require(\"@tailwindcss/line-clamp\"),\n  ],\n}\n\nmodule.exports = tailwindConfig\n"
  }
]