[
  {
    "path": ".eslintrc.json",
    "content": "{\n  \"extends\": \"next/core-web-vitals\",\n  \"rules\": {\n    // next no-img-element\n    \"@next/next/no-img-element\": \"off\"\n  }\n}"
  },
  {
    "path": ".gitignore",
    "content": "# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.\n\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.DS_Store\n*.pem\n\n# debug\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\n\n# local env files\n.env*.local\n\n# vercel\n.vercel\n\n# typescript\n*.tsbuildinfo\nnext-env.d.ts\n"
  },
  {
    "path": "README.md",
    "content": "# DevUI\n\nA complete front end solution for learners\n"
  },
  {
    "path": "next.config.js",
    "content": "/** @type {import('next').NextConfig} */\nconst nextConfig = {\n  images: { domains: [\"via.placeholder.com\"] },\n};\n\nmodule.exports = nextConfig;\n"
  },
  {
    "path": "package.json",
    "content": "{\n  \"name\": \"devui\",\n  \"description\": \"Common app templates in plain HTML and TailwindCSS\",\n  \"version\": \"0.1.0\",\n  \"private\": true,\n  \"scripts\": {\n    \"dev\": \"next dev\",\n    \"build\": \"next build\",\n    \"start\": \"next start\",\n    \"lint\": \"next lint\"\n  },\n  \"dependencies\": {\n    \"@headlessui/react\": \"^1.7.17\",\n    \"@heroicons/react\": \"^2.0.18\",\n    \"@types/node\": \"20.5.6\",\n    \"@types/react\": \"18.2.21\",\n    \"@types/react-dom\": \"18.2.7\",\n    \"@uiw/codemirror-extensions-langs\": \"^4.21.11\",\n    \"@uiw/codemirror-themes-all\": \"^4.21.11\",\n    \"@uiw/react-codemirror\": \"^4.21.11\",\n    \"autoprefixer\": \"10.4.15\",\n    \"eslint\": \"8.47.0\",\n    \"eslint-config-next\": \"13.4.19\",\n    \"next\": \"13.4.19\",\n    \"postcss\": \"8.4.28\",\n    \"react\": \"18.2.0\",\n    \"react-dom\": \"18.2.0\",\n    \"tailwindcss\": \"3.3.3\",\n    \"typescript\": \"5.2.2\"\n  },\n  \"devDependencies\": {\n    \"@types/prettier\": \"^3.0.0\",\n    \"prettier\": \"^3.0.2\",\n    \"prettier-plugin-tailwindcss\": \"^0.5.3\"\n  }\n}\n"
  },
  {
    "path": "postcss.config.js",
    "content": "module.exports = {\n  plugins: {\n    tailwindcss: {},\n    autoprefixer: {},\n  },\n}\n"
  },
  {
    "path": "prettier.config.js",
    "content": "module.exports = {\n  plugins: [\"prettier-plugin-tailwindcss\"],\n};\n"
  },
  {
    "path": "src/app/about-us/page.tsx",
    "content": "import React from \"react\";\n\nconst AboutUs = () => {\n  return <div>AboutUs</div>;\n};\n\nexport default AboutUs;\n"
  },
  {
    "path": "src/app/globals.css",
    "content": "@tailwind base;\n@tailwind components;\n@tailwind utilities;\n\n.resizing,\n.resizing * {\n  @apply !cursor-ew-resize !select-none;\n}\n\n.resizing .iframe-overlay {\n  display: block !important;\n}\n\n.no-scrollbar::-webkit-scrollbar {\n  display: none;\n}\n\n.CodeMirror__Main__Editor {\n  @apply overflow-hidden rounded-md;\n}\n.CodeMirror__Main__Editor .cm-scroller {\n  @apply rounded-md px-4 py-2 pb-0;\n}\n"
  },
  {
    "path": "src/app/layout.tsx",
    "content": "import MainNavbar from \"@/components/common/MainNavbar\";\nimport type { Metadata } from \"next\";\nimport { Inter } from \"next/font/google\";\nimport \"./globals.css\";\n\nconst inter = Inter({ subsets: [\"latin\"] });\n\nexport const metadata: Metadata = {\n  title: \"DevUI | For learners\",\n  description: \"Common app templates in plain HTML and TailwindCSS\",\n};\n\nexport default function RootLayout({\n  children,\n}: {\n  children: React.ReactNode;\n}) {\n  return (\n    <html lang=\"en\">\n      <body className={`${inter.className} bg-dark text-white`}>\n        <MainNavbar />\n        <main className=\"mx-auto max-w-[85rem] p-4 lg:p-6\">{children}</main>\n      </body>\n    </html>\n  );\n}\n"
  },
  {
    "path": "src/app/page.tsx",
    "content": "import Button from \"@/components/common/Button\";\nimport {\n  CodeBracketSquareIcon,\n  LifebuoyIcon,\n} from \"@heroicons/react/24/outline\";\nimport Image from \"next/image\";\nimport Link from \"next/link\";\n\nexport default function Home() {\n  return (\n    <section aria-labelledby=\"hero-banner\">\n      <div className=\"flex flex-col items-start gap-4\">\n        <Image src=\"/hero.svg\" alt=\"Hero\" width={250} height={100} />\n        <h1 className=\"font-heading text-3xl font-bold leading-[1.1] md:text-5xl lg:text-7xl\">\n          A complete front end solution for learners\n        </h1>\n        <p className=\"max-w-[42rem] leading-normal text-gray-300 sm:text-xl sm:leading-8\">\n          DevUI is a comprehensive and easy-to-use open-source UI templates\n          library &#40; powered by <strong>TailwindCSS</strong>&#41; designed to\n          enhance your productivity as a learner\n        </p>\n        <div className=\"mt-2 flex space-x-2\">\n          <Link href=\"/templates\">\n            <Button StartIcon={CodeBracketSquareIcon}>View templates</Button>\n          </Link>\n          <a\n            href=\"https://github.com/hiteshchoudhary/devui\"\n            target=\"_blank\"\n            rel=\"noreferrer\"\n          >\n            <Button StartIcon={LifebuoyIcon}>Contribute</Button>\n          </a>\n        </div>\n      </div>\n    </section>\n  );\n}\n"
  },
  {
    "path": "src/app/templates/[id]/page.tsx",
    "content": "\"use client\";\nimport Select from \"@/components/common/Select\";\nimport CodePreviewer from \"@/components/lib/CodePreviewer\";\nimport { SelectOptionType } from \"@/types/utils\";\nimport { applications, getComponentByAppPageId } from \"@/utils/screens\";\nimport { useParams } from \"next/navigation\";\nimport { useEffect, useState } from \"react\";\n\nconst TemplateDetails = () => {\n  const { id } = useParams();\n\n  const [loadingUi, setLoadingUi] = useState(true);\n\n  const [selectedPageUI, setSelectedPageUI] = useState<SelectOptionType | null>(\n    null,\n  );\n  const [app, setApp] = useState<(typeof applications)[0] | null>(null);\n\n  useEffect(() => {\n    if (!applications) return;\n    const _app = applications.find((app) => app.id === id) || applications[0];\n    setApp(_app);\n    setSelectedPageUI(_app.pages[0]); // set 1st page as default selected page\n    setLoadingUi(false);\n  }, [applications]);\n\n  if (loadingUi) return <h1>Loading screens...</h1>;\n\n  return (\n    <div>\n      <Select\n        options={app?.pages || []}\n        label=\"Select a page UI\"\n        value={selectedPageUI}\n        setValue={setSelectedPageUI}\n      />\n      <div className=\"w-full\">\n        <CodePreviewer title={selectedPageUI?.name || \"DevUI Screen\"}>\n          {getComponentByAppPageId(app?.id || \"\", selectedPageUI?.id || \"\")}\n        </CodePreviewer>\n      </div>\n    </div>\n  );\n};\n\nexport default TemplateDetails;\n"
  },
  {
    "path": "src/app/templates/page.tsx",
    "content": "\"use client\";\n\nimport Button from \"@/components/common/Button\";\nimport { applications } from \"@/utils/screens\";\nimport {\n  ChevronDoubleRightIcon,\n  RectangleGroupIcon,\n} from \"@heroicons/react/24/outline\";\nimport Link from \"next/link\";\n\nconst Templates = () => {\n  return (\n    <div className=\"grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3\">\n      {applications.map((application, i) => {\n        return (\n          <main key={i} className=\"py-6 md:px-4\">\n            <div className=\"mx-auto grid max-w-4xl grid-cols-1\">\n              <div className=\"relative col-start-1 row-start-1 flex flex-col-reverse bg-gradient-to-t from-black/100 via-black/0 p-3\">\n                <h1 className=\"mt-1 text-lg font-semibold text-white\">\n                  {application.name}\n                </h1>\n                <p className=\"text-sm font-medium leading-4 text-white\">\n                  {application.subtitle}\n                </p>\n              </div>\n              <div className=\"col-start-1 col-end-3 row-start-1 grid items-end justify-end gap-4 border border-gray-700\">\n                <img\n                  src={application.cover}\n                  alt=\"\"\n                  className=\"w-full object-cover\"\n                  loading=\"lazy\"\n                />\n              </div>\n              <dl className=\"row-start-2 mt-2 inline-flex items-center text-sm font-medium text-gray-200\">\n                <dd className=\"inline-flex items-center gap-1\">\n                  <RectangleGroupIcon className=\"-mt-0.5 h-5 w-5\" />\n                  {application.pages?.length || 0} Screens\n                </dd>\n              </dl>\n\n              <div className=\"col-start-1 row-start-3 mt-2 self-center\">\n                <Link href={`/templates/${application.id}`}>\n                  <Button EndIcon={ChevronDoubleRightIcon}>View Screens</Button>\n                </Link>\n              </div>\n              <p className=\"col-start-1 mt-4 text-sm leading-6\">\n                {application.description}\n              </p>\n            </div>\n          </main>\n        );\n      })}\n    </div>\n  );\n};\n\nexport default Templates;\n"
  },
  {
    "path": "src/components/common/Button.tsx",
    "content": "import { TailwindIconType } from \"@/types/utils\";\nimport React from \"react\";\n\nconst Button: React.FC<\n  React.ButtonHTMLAttributes<HTMLButtonElement> & {\n    StartIcon?: TailwindIconType;\n    EndIcon?: TailwindIconType;\n  }\n> = ({ StartIcon, EndIcon, children, ...props }) => {\n  return (\n    <button\n      type=\"button\"\n      className=\"inline-flex items-center gap-x-1.5 rounded-md bg-white px-3 py-2.5 text-sm font-semibold text-gray-950 shadow-sm hover:bg-gray-200 active:bg-gray-300 disabled:bg-slate-500\"\n      {...props}\n    >\n      {StartIcon ? (\n        <StartIcon className=\"-ml-0.5 h-5 w-5\" aria-hidden=\"true\" />\n      ) : null}\n      {children}\n      {EndIcon ? (\n        <EndIcon className=\"-mr-0.5 h-5 w-5\" aria-hidden=\"true\" />\n      ) : null}\n    </button>\n  );\n};\n\nexport default Button;\n"
  },
  {
    "path": "src/components/common/MainNavbar.tsx",
    "content": "\"use client\";\nimport { classNames } from \"@/utils\";\nimport { CodeBracketSquareIcon } from \"@heroicons/react/20/solid\";\nimport { Bars3BottomLeftIcon, XMarkIcon } from \"@heroicons/react/24/outline\";\nimport Link from \"next/link\";\nimport React, { useState } from \"react\";\nimport { MobileNavbar } from \"./MobileNavbar\";\n\nconst items = [\n  {\n    title: \"Home\",\n    href: \"/\",\n  },\n  {\n    title: \"Templates\",\n    href: \"/templates\",\n  },\n\n  {\n    title: \"About us\",\n    href: \"/about-us\",\n  },\n];\n\nconst MainNavbar = () => {\n  const [showMobileMenu, setShowMobileMenu] = useState<boolean>(false);\n\n  return (\n    <header className=\"border-slate-800e bg-dark sticky top-0 z-40 border-b-2 border-gray-700\">\n      <div className=\"mx-auto flex h-20 max-w-[85rem] items-center justify-between p-4 lg:p-6\">\n        <div className=\"flex gap-6 md:gap-10\">\n          <Link href=\"/\" className=\"hidden items-center space-x-2 md:flex\">\n            <CodeBracketSquareIcon className=\"h-7 w-7 text-white\" />\n            <span className=\"font-heading hidden text-xl font-extrabold sm:inline-block\">\n              DevUI\n            </span>\n          </Link>\n          {items?.length ? (\n            <nav className=\"hidden gap-6 md:flex\">\n              {items?.map((item, index) => (\n                <Link\n                  key={index}\n                  href={item.href}\n                  className={classNames(\n                    \"flex items-center text-lg font-semibold transition-colors sm:text-sm\",\n                  )}\n                >\n                  {item.title}\n                </Link>\n              ))}\n            </nav>\n          ) : null}\n          <button\n            className=\"flex items-center space-x-2 md:hidden\"\n            onClick={() => setShowMobileMenu(!showMobileMenu)}\n          >\n            {showMobileMenu ? (\n              <XMarkIcon className=\"h-5 w-5 text-white\" />\n            ) : (\n              <Bars3BottomLeftIcon className=\"h-5 w-5 text-white\" />\n            )}\n            <span className=\"font-heading text-xl font-extrabold sm:inline-block\">\n              DevUI\n            </span>\n          </button>\n          {showMobileMenu && items && <MobileNavbar items={items} />}\n        </div>\n      </div>\n    </header>\n  );\n};\n\nexport default MainNavbar;\n"
  },
  {
    "path": "src/components/common/MobileNavbar.tsx",
    "content": "import * as React from \"react\";\nimport Link from \"next/link\";\nimport { CodeBracketSquareIcon } from \"@heroicons/react/20/solid\";\nimport { classNames } from \"@/utils\";\n\ninterface MobileNavProps {\n  items: {\n    title: string;\n    href: string;\n  }[];\n}\n\nexport function MobileNavbar({ items }: MobileNavProps) {\n  return (\n    <div\n      className={classNames(\n        \"animate-in slide-in-from-bottom-80 fixed inset-0 top-16 z-50 grid h-[calc(100vh-4rem)] grid-flow-row auto-rows-max overflow-auto p-6 pb-32 shadow-md md:hidden\",\n      )}\n    >\n      <div className=\"text-popover-foreground relative z-20 grid gap-6 rounded-md bg-dark p-4 shadow-md shadow-gray-700\">\n        <Link href=\"/\" className=\"flex items-center space-x-2\">\n          <CodeBracketSquareIcon className=\"h-7 w-7 text-white\" />\n          <span className=\"font-bold\">DevUI</span>\n        </Link>\n        <nav className=\"grid grid-flow-row auto-rows-max text-sm\">\n          {items.map((item, index) => (\n            <Link\n              key={index}\n              href={item.href}\n              className={classNames(\n                \"flex w-full items-center rounded-md p-2 text-sm font-medium hover:underline\",\n              )}\n            >\n              {item.title}\n            </Link>\n          ))}\n        </nav>\n      </div>\n    </div>\n  );\n}\n"
  },
  {
    "path": "src/components/common/Select.tsx",
    "content": "\"use client\";\nimport { SelectOptionType } from \"@/types/utils\";\nimport { classNames } from \"@/utils\";\nimport { Combobox } from \"@headlessui/react\";\nimport { CheckIcon, ChevronUpDownIcon } from \"@heroicons/react/20/solid\";\nimport React, { useState } from \"react\";\n\ninterface SelectProps {\n  label: string;\n  options: SelectOptionType[];\n  value: SelectOptionType | null;\n  setValue: (val: { id: string; name: string }) => void;\n}\n\nconst Select: React.FC<SelectProps> = ({ label, options, value, setValue }) => {\n  const [query, setQuery] = useState(\"\");\n\n  const filteredOptions =\n    query === \"\"\n      ? options\n      : options.filter((option) => {\n          return option.name.toLowerCase().includes(query.toLowerCase());\n        });\n\n  return (\n    <Combobox as=\"div\" value={value} onChange={setValue}>\n      <Combobox.Label className=\"block text-sm font-medium leading-6\">\n        {label}\n      </Combobox.Label>\n      <div className=\"relative mt-2\">\n        <Combobox.Button className=\"w-full\">\n          <Combobox.Input\n            className=\"peer block w-full rounded-md border border-gray-700 bg-transparent px-6 py-4 text-base/6 text-white ring-4 ring-transparent transition focus:border-white focus:outline-none focus:ring-white/5 group-first:rounded-t-2xl group-last:rounded-b-2xl\"\n            onChange={(event) => setQuery(event.target.value)}\n            displayValue={(option: any) => option?.name}\n          />\n        </Combobox.Button>\n        <Combobox.Button className=\"absolute inset-y-0 right-0 flex items-center rounded-r-md px-2 focus:outline-none\">\n          <ChevronUpDownIcon\n            className=\"h-5 w-5 text-gray-400\"\n            aria-hidden=\"true\"\n          />\n        </Combobox.Button>\n\n        <Combobox.Options className=\"absolute z-10 mt-1 max-h-60 w-full overflow-auto rounded-md bg-gray-900 py-1 text-base shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none sm:text-sm\">\n          {filteredOptions.map((option) => (\n            <Combobox.Option\n              key={option.id}\n              value={option}\n              className={({ active }) =>\n                classNames(\n                  \"relative cursor-default select-none py-2 pl-8 pr-4 text-white\",\n                  active ? \"bg-slate-600\" : \"\",\n                )\n              }\n            >\n              {({ active }) => (\n                <>\n                  <span\n                    className={classNames(\n                      \"block truncate capitalize\",\n                      option.id === value?.id ? \"font-semibold\" : \"\",\n                    )}\n                  >\n                    {option.name}\n                  </span>\n\n                  {option.id === value?.id && (\n                    <span\n                      className={classNames(\n                        \"absolute inset-y-0 left-0 flex items-center pl-1.5\",\n                        active ? \"text-white\" : \"text-gray-200\",\n                      )}\n                    >\n                      <CheckIcon className=\"h-5 w-5\" aria-hidden=\"true\" />\n                    </span>\n                  )}\n                </>\n              )}\n            </Combobox.Option>\n          ))}\n        </Combobox.Options>\n      </div>\n    </Combobox>\n  );\n};\n\nexport default Select;\n"
  },
  {
    "path": "src/components/lib/CodePreviewer.tsx",
    "content": "import { renderHTMLFromJSX } from \"@/utils\";\nimport { CheckCircleIcon } from \"@heroicons/react/20/solid\";\nimport {\n  CodeBracketIcon,\n  DocumentDuplicateIcon,\n  EyeIcon,\n} from \"@heroicons/react/24/outline\";\nimport React, { useState } from \"react\";\nimport CodeSnippetRenderer from \"./CodeSnippetRenderer\";\nimport PreviewCard from \"./PreviewCard\";\n\ninterface CodePreviewerProps {\n  title: string;\n  children: React.ReactElement;\n}\n\nconst CodePreviewer: React.FC<CodePreviewerProps> = ({ children, title }) => {\n  const [previewMode, setPreviewMode] = useState(true);\n  const [codeCopied, setCodeCopied] = useState(false);\n\n  const copyToClipboard = () => {\n    const codeToCopy = renderHTMLFromJSX(children);\n    navigator.clipboard.writeText(codeToCopy);\n    setCodeCopied(true);\n    setTimeout(() => {\n      setCodeCopied(false);\n    }, 4000);\n  };\n\n  return (\n    <div className=\"my-8 md:my-12 lg:my-14\">\n      <div className=\"flex flex-col justify-between md:flex-row md:items-center\">\n        <div className=\"mb-4 flex flex-row items-center space-x-4 md:mb-0\">\n          <h3 className=\" font-sans font-semibold md:mb-0\">{title}</h3>\n        </div>\n        <div className=\"flex items-center space-x-4\">\n          {/* Buttons */}\n          <div className=\"\">\n            <span className=\"isolate inline-flex rounded-md shadow-sm\">\n              <button\n                onClick={() => setPreviewMode(true)}\n                type=\"button\"\n                className=\"relative inline-flex items-center rounded-l-md bg-gray-800 px-2 py-2 ring-1 ring-inset ring-gray-500 hover:bg-gray-700 focus:z-10\"\n              >\n                <span className=\"sr-only\">UI preview</span>\n                <span className=\"flex items-center space-x-2 text-sm font-semibold text-gray-200\">\n                  <EyeIcon className=\"h-4 w-4\" />\n                  <span>Preview</span>\n                </span>\n              </button>\n              <button\n                onClick={() => setPreviewMode(false)}\n                type=\"button\"\n                className=\"relative -ml-px inline-flex items-center rounded-r-md bg-gray-800 px-2 py-2 ring-1 ring-inset ring-gray-500 hover:bg-gray-700 focus:z-10\"\n              >\n                <span className=\"sr-only\">Code snippet</span>\n                <span className=\"flex items-center space-x-2 text-sm font-semibold text-gray-200\">\n                  <CodeBracketIcon className=\"h-4 w-4\" />\n                  <span>Code</span>\n                </span>\n              </button>\n            </span>\n          </div>\n\n          <button\n            onClick={() => {\n              if (codeCopied) return;\n              copyToClipboard();\n            }}\n            className=\"cursor-pointer rounded-md p-2 hover:bg-gray-700 active:bg-gray-600\"\n          >\n            {codeCopied ? (\n              <CheckCircleIcon className=\"h-5 w-5 text-green-600\" />\n            ) : (\n              <DocumentDuplicateIcon className=\"h-5 w-5\" />\n            )}\n          </button>\n        </div>\n      </div>\n      <div className=\"mt-4 w-full\">\n        {previewMode ? (\n          <PreviewCard>{children}</PreviewCard>\n        ) : (\n          <CodeSnippetRenderer codeSnippet={renderHTMLFromJSX(children)} />\n        )}\n      </div>\n    </div>\n  );\n};\n\nexport default CodePreviewer;\n"
  },
  {
    "path": "src/components/lib/CodeSnippetRenderer.tsx",
    "content": "import { langs } from \"@uiw/codemirror-extensions-langs\";\nimport * as themes from \"@uiw/codemirror-themes-all\";\nimport CodeMirror from \"@uiw/react-codemirror\";\nimport * as parserBabel from \"prettier/parser-babel\";\nimport * as parserHtml from \"prettier/parser-html\";\nimport prettier from \"prettier/standalone\";\nimport React, { useEffect, useState } from \"react\";\n\nconst DEFAULT_BASE_SETUP = {\n  foldGutter: false,\n  highlightActiveLine: false,\n  highlightActiveLineGutter: false,\n  indentOnInput: true,\n  lineNumbers: false,\n  syntaxHighlighting: true,\n  tabSize: 4,\n};\n\ninterface CodeSnippetRendererProps {\n  codeSnippet: string;\n}\n\nconst CodeSnippetRenderer: React.FC<CodeSnippetRendererProps> = ({\n  codeSnippet,\n}) => {\n  const [code, setCode] = useState(\"\");\n\n  const formatCode = async () => {\n    try {\n      const formattedCode = await prettier.format(codeSnippet, {\n        parser: \"html\",\n        plugins: [parserHtml, parserBabel],\n        semi: false,\n        printWidth: 200,\n        tabWidth: 2,\n        bracketSameLine: true,\n        singleAttributePerLine: true,\n        htmlWhitespaceSensitivity: \"ignore\",\n      });\n      setCode(formattedCode);\n    } catch (error) {\n      console.error(\"Error while formatting the code: \\n\", error);\n      setCode(codeSnippet);\n    }\n  };\n\n  useEffect(() => {\n    formatCode();\n  }, [codeSnippet]);\n\n  return (\n    <div className=\"relative min-h-min w-full rounded-md border-2 border-gray-700 pb-0\">\n      <CodeMirror\n        className={\"CodeMirror__Main__Editor\"}\n        theme={themes[\"githubDark\"]}\n        value={code}\n        extensions={[langs.html()]}\n        readOnly={true}\n        style={{\n          fontSize: \"14px\",\n        }}\n        basicSetup={{\n          ...DEFAULT_BASE_SETUP,\n        }}\n        indentWithTab\n      />\n    </div>\n  );\n};\n\nexport default CodeSnippetRenderer;\n"
  },
  {
    "path": "src/components/lib/PreviewCard.tsx",
    "content": "import { classNames, renderHTMLFromJSX } from \"@/utils\";\nimport { useEffect, useRef, useState } from \"react\";\nimport WidthHandler from \"./WidthHandler\";\n\ninterface PreviewCardProps {\n  className?: string;\n  children: React.ReactElement;\n}\n\nconst PreviewCard = ({ children, className }: PreviewCardProps) => {\n  const editorRef = useRef<HTMLDivElement>(null);\n  const [containerWidth, setContainerWidth] = useState(\"100%\");\n  const [maxWidth, setMaxWidth] = useState<number | null>(null);\n\n  useEffect(() => {\n    if (!editorRef.current || maxWidth) return; // once set don't set max width again\n    setMaxWidth(editorRef.current?.clientWidth);\n  }, [editorRef]);\n\n  return (\n    <div\n      ref={editorRef}\n      className={classNames(\n        \"relative mx-auto min-h-[865px] overflow-visible rounded-md border-2 border-gray-700\",\n        className || \"\",\n      )}\n      style={{\n        width: containerWidth || \"100%\",\n      }}\n    >\n      <WidthHandler\n        innerRef={editorRef}\n        onChange={(width) => {\n          setContainerWidth(`${width}px`);\n        }}\n        maxWidth={maxWidth || 1440}\n      />\n      {/* \n          // ! Reason to use iframe instead on any normal div is to avoid interference of devui parent project's styling and classes with the example's styling an classes\n          // ! using iframe will isolate the examples from devui's parent application code. \n     */}\n      <div\n        className={classNames(\n          \"iframe-overlay absolute inset-0 z-20 mx-auto hidden h-full min-h-[865px] w-full overflow-auto rounded-md\",\n        )}\n      ></div>\n      <iframe\n        className={classNames(\n          \"z-10 mx-auto min-h-[865px] w-full overflow-auto rounded-md\",\n        )}\n        srcDoc={`\n      <script src=\"https://cdn.tailwindcss.com\"></script>\n      ${renderHTMLFromJSX(children)}`}\n      ></iframe>\n    </div>\n  );\n};\n\nexport default PreviewCard;\n"
  },
  {
    "path": "src/components/lib/WidthHandler.tsx",
    "content": "import React, { RefObject, useEffect, useRef } from \"react\";\n\nexport const DEFAULT_WIDTHS = {\n  minWidth: 360,\n};\n\ninterface Props {\n  innerRef: RefObject<HTMLDivElement>;\n  onChange: (width: number) => void;\n  maxWidth: number;\n}\n\nconst edgeCase = (\n  value: number,\n  min: number,\n  max: number,\n): [number, boolean] => {\n  if (value < min) {\n    return [min, false];\n  }\n  if (value > max) {\n    return [max, false];\n  }\n  return [value, true];\n};\n\nconst WidthHandler: React.FC<Props> = ({ innerRef, onChange, maxWidth }) => {\n  const { minWidth } = DEFAULT_WIDTHS;\n\n  const startX = useRef<number | null>(null);\n  const startWidth = useRef<number | null>(null);\n\n  useEffect(() => {\n    const handleMouseMove = (e: MouseEvent) => {\n      if (!startX.current || !startWidth.current) return;\n      const delta = e.pageX - startX.current; // leftOrRight === 'left' ? startX - e.pageX : (startX - e.pageX) * -1\n      const calculated = startWidth.current + delta * window.devicePixelRatio;\n      const [newWidth, isChanging] = edgeCase(calculated, minWidth, maxWidth);\n      if (isChanging) {\n        onChange(newWidth);\n      }\n    };\n    window.addEventListener(\"mousemove\", handleMouseMove);\n    return () => window.removeEventListener(\"mousemove\", handleMouseMove);\n  }, [innerRef, maxWidth, minWidth, onChange]);\n\n  useEffect(() => {\n    const handleMouseUp = () => {\n      startX.current = null;\n      document.body.classList.remove(\"resizing\");\n    };\n    window.addEventListener(\"mouseup\", handleMouseUp);\n    return () => window.removeEventListener(\"mouseup\", handleMouseUp);\n  }, []);\n\n  return (\n    <div\n      onMouseDown={(e) => {\n        document.body.classList.add(\"resizing\");\n        startX.current = e.pageX;\n        startWidth.current = innerRef.current\n          ? innerRef.current.clientWidth\n          : 0;\n      }}\n      role=\"separator\"\n      aria-orientation=\"vertical\"\n      aria-valuemin={minWidth}\n      aria-valuemax={maxWidth}\n      className=\"absolute -right-4 top-1/2 z-30 flex h-14 w-2 cursor-ew-resize rounded-md bg-slate-600\"\n    ></div>\n  );\n};\n\nexport default WidthHandler;\n"
  },
  {
    "path": "src/components/templates/authentication/forgot-password.jsx",
    "content": "import React from \"react\";\n\nconst ForgotPassword = () => {\n  return (\n    <div className=\"min-h-screen bg-[#121212]\">\n      <header className=\"fixed top-0 z-10 mx-auto w-full max-w-full bg-[#121212] p-6 text-white lg:px-10\">\n        <h1>DevUI</h1>\n      </header>\n      <div className=\"mx-auto flex w-full items-stretch justify-between gap-10\">\n        <div className=\"mt-20 flex w-full flex-col items-start justify-start p-6 md:w-1/2 lg:px-10\">\n          <div className=\"w-full\">\n            <h1 className=\"mb-2 text-5xl font-extrabold text-white\">\n              Forgot password?\n            </h1>\n            <p className=\"text-xs text-slate-400\">\n              Lorem ipsum dolor sit amet consectetur adipisicing elit. Maxime\n              eius, aliquid autem numquam iure sint perspiciatis voluptatum\n              soluta fugiat.\n            </p>\n          </div>\n          <div className=\"my-14 flex w-full flex-col items-start justify-start gap-4\">\n            <div className=\"flex w-full flex-col items-start justify-start gap-2\">\n              <label className=\"text-xs text-slate-200\">Email</label>\n              <input\n                placeholder=\"Enter an email...\"\n                autoComplete=\"false\"\n                type=\"email\"\n                className=\"w-full border-[1px] border-white bg-black p-4 text-white placeholder:text-gray-500\"\n              />\n            </div>\n\n            <button className=\"w-full bg-[#ae7aff] p-3 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e]\">\n              Start recovery\n            </button>\n\n            <p className=\"my-14 text-sm font-light text-white\">\n              Already registered?{\" \"}\n              <span className=\"cursor-pointer font-bold hover:underline\">\n                Sign in to your account\n              </span>\n            </p>\n          </div>\n        </div>\n        <div className=\"fixed right-0 z-20 hidden h-screen w-1/2 md:block\">\n          <img\n            className=\"h-full w-full object-cover\"\n            src=\"https://images.pexels.com/photos/1144275/pexels-photo-1144275.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\"\n            alt=\"register_image\"\n          />\n        </div>\n      </div>\n    </div>\n  );\n};\n\nexport default ForgotPassword;\n"
  },
  {
    "path": "src/components/templates/authentication/index.ts",
    "content": "import Register from \"./register\";\nimport Login from \"./login\";\nimport ForgotPassword from \"./forgot-password\";\n\nconst Authentication = { Register, Login, ForgotPassword };\n\nexport default Authentication;\n"
  },
  {
    "path": "src/components/templates/authentication/login.jsx",
    "content": "import React from \"react\";\n\nconst Login = () => {\n  return (\n    <div className=\"min-h-screen bg-[#121212]\">\n      <header className=\"fixed top-0 z-10 mx-auto w-full max-w-full bg-[#121212] p-6 text-white lg:px-10\">\n        <h1>DevUI</h1>\n      </header>\n      <div className=\"mx-auto flex w-full items-stretch justify-between gap-10\">\n        <div className=\"mt-20 flex w-full flex-col items-start justify-start p-6 md:w-1/2 lg:px-10\">\n          <div className=\"w-full\">\n            <h1 className=\"mb-2 text-5xl font-extrabold text-white\">Log in</h1>\n            <p className=\"text-xs text-slate-400\">\n              Before we start, please log into your account\n            </p>\n          </div>\n          <div className=\"my-14 flex w-full flex-col items-start justify-start gap-4\">\n            <div className=\"flex w-full flex-col items-start justify-start gap-2\">\n              <label className=\"text-xs text-slate-200\">Username</label>\n              <input\n                placeholder=\"Enter a username...\"\n                autoComplete=\"false\"\n                className=\"w-full border-[1px] border-white bg-black p-4 text-white placeholder:text-gray-500\"\n              />\n            </div>\n            <div className=\"flex w-full flex-col items-start justify-start gap-2\">\n              <label className=\"text-xs text-slate-200\">Password</label>\n              <input\n                placeholder=\"Enter a password...\"\n                autoComplete=\"false\"\n                type=\"password\"\n                className=\"w-full border-[1px] border-white bg-black p-4 text-white placeholder:text-gray-500\"\n              />\n            </div>\n            <div className=\"inline-flex w-full items-center justify-between\">\n              <div className=\"mr-4 flex items-center\">\n                <input\n                  type=\"checkbox\"\n                  id=\"checkbox-1\"\n                  name=\"checkbox-1\"\n                  className=\"absolute h-6 w-6 cursor-pointer opacity-0 [&:checked+div]:bg-green-500 [&:checked+div_svg]:block\"\n                />\n                <div className=\"mr-2 flex h-6 w-6 flex-shrink-0 items-center justify-center border-[1px] border-white bg-transparent focus-within:border-white\">\n                  <svg\n                    className=\"pointer-events-none hidden h-3 w-3 fill-current text-white\"\n                    version=\"1.1\"\n                    viewBox=\"0 0 17 12\"\n                    xmlns=\"http://www.w3.org/2000/svg\"\n                  >\n                    <g fill=\"none\" fillRule=\"evenodd\">\n                      <g\n                        transform=\"translate(-9 -11)\"\n                        fill=\"#000000\"\n                        fillRule=\"nonzero\"\n                      >\n                        <path d=\"m25.576 11.414c0.56558 0.55188 0.56558 1.4439 0 1.9961l-9.404 9.176c-0.28213 0.27529-0.65247 0.41385-1.0228 0.41385-0.37034 0-0.74068-0.13855-1.0228-0.41385l-4.7019-4.588c-0.56584-0.55188-0.56584-1.4442 0-1.9961 0.56558-0.55214 1.4798-0.55214 2.0456 0l3.679 3.5899 8.3812-8.1779c0.56558-0.55214 1.4798-0.55214 2.0456 0z\" />\n                      </g>\n                    </g>\n                  </svg>\n                </div>\n                <div className=\"ml-3 text-sm leading-6\">\n                  <label\n                    htmlFor=\"checkbox-1\"\n                    className=\"text-sm font-medium text-white\"\n                  >\n                    Remember me\n                  </label>\n                </div>\n              </div>\n\n              <p className=\"cursor-pointer text-sm text-white hover:underline\">\n                Forgot password?\n              </p>\n            </div>\n\n            <button className=\"w-full bg-[#ae7aff] p-3 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e]\">\n              Log in\n            </button>\n            <div className=\"mx-auto my-3 flex w-full max-w-md items-center justify-center gap-4 text-white\">\n              <hr className=\"w-full border-[0.1px] border-white\" />\n              <p className=\"text-sm\">OR</p>\n              <hr className=\"w-full border-[0.1px] border-white\" />\n            </div>\n            <button className=\"inline-flex w-full items-center justify-center gap-3 border-[1px] border-white bg-black p-3 text-center text-white\">\n              <svg\n                xmlns=\"http://www.w3.org/2000/svg\"\n                height=\"24\"\n                viewBox=\"0 0 24 24\"\n                width=\"24\"\n              >\n                <path\n                  d=\"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z\"\n                  fill=\"#4285F4\"\n                />\n                <path\n                  d=\"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z\"\n                  fill=\"#34A853\"\n                />\n                <path\n                  d=\"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z\"\n                  fill=\"#FBBC05\"\n                />\n                <path\n                  d=\"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z\"\n                  fill=\"#EA4335\"\n                />\n                <path d=\"M1 1h22v22H1z\" fill=\"none\" />\n              </svg>{\" \"}\n              Login with Google\n            </button>\n            <button className=\"inline-flex w-full items-center justify-center gap-3 border-[1px] border-white bg-black p-3 text-center text-white\">\n              <svg\n                xmlns=\"http://www.w3.org/2000/svg\"\n                width=\"24\"\n                height=\"24\"\n                viewBox=\"0 0 24 24\"\n                fill=\"#ffffff\"\n              >\n                <path d=\"M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z\" />\n              </svg>\n              Login with GitHub\n            </button>\n            <p className=\"my-14 text-sm font-light text-white\">\n              Don&apos;t have an account?{\" \"}\n              <span className=\"cursor-pointer font-bold hover:underline\">\n                Create an account\n              </span>\n            </p>\n          </div>\n        </div>\n        <div className=\"fixed right-0 z-20 hidden h-screen w-1/2 md:block\">\n          <img\n            className=\"h-full w-full object-cover\"\n            src=\"https://images.pexels.com/photos/1144275/pexels-photo-1144275.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\"\n            alt=\"register_image\"\n          />\n        </div>\n      </div>\n    </div>\n  );\n};\n\nexport default Login;\n"
  },
  {
    "path": "src/components/templates/authentication/register.jsx",
    "content": "const Register = () => {\n  return (\n    <div className=\"min-h-screen bg-[#121212]\">\n      <header className=\"fixed top-0 z-10 mx-auto w-full max-w-full bg-[#121212] p-6 text-white lg:px-10\">\n        <h1>DevUI</h1>\n      </header>\n      <div className=\"mx-auto flex w-full items-stretch justify-between gap-10\">\n        <div className=\"mt-20 flex w-full flex-col items-start justify-start p-6 md:w-1/2 lg:px-10\">\n          <div className=\"w-full\">\n            <h1 className=\"mb-2 text-5xl font-extrabold text-white\">\n              Register\n            </h1>\n            <p className=\"text-xs text-slate-400\">\n              Before we start, please create your account\n            </p>\n          </div>\n          <div className=\"my-14 flex w-full flex-col items-start justify-start gap-4\">\n            <div className=\"flex w-full flex-col items-start justify-start gap-2\">\n              <label className=\"text-xs text-slate-200\">First name</label>\n              <input\n                placeholder=\"Enter a first name...\"\n                autoComplete=\"false\"\n                className=\"w-full border-[1px] border-white bg-black p-4 text-white placeholder:text-gray-500\"\n              />\n            </div>\n            <div className=\"flex w-full flex-col items-start justify-start gap-2\">\n              <label className=\"text-xs text-slate-200\">Last name</label>\n              <input\n                placeholder=\"Enter a last name...\"\n                autoComplete=\"false\"\n                className=\"w-full border-[1px] border-white bg-black p-4 text-white placeholder:text-gray-500\"\n              />\n            </div>\n            <div className=\"flex w-full flex-col items-start justify-start gap-2\">\n              <label className=\"text-xs text-slate-200\">Email</label>\n              <input\n                placeholder=\"Enter an email...\"\n                autoComplete=\"false\"\n                className=\"w-full border-[1px] border-white bg-black p-4 text-white placeholder:text-gray-500\"\n              />\n            </div>\n            <div className=\"flex w-full flex-col items-start justify-start gap-2\">\n              <label className=\"text-xs text-slate-200\">Username</label>\n              <input\n                placeholder=\"Enter a username...\"\n                autoComplete=\"false\"\n                className=\"w-full border-[1px] border-white bg-black p-4 text-white placeholder:text-gray-500\"\n              />\n            </div>\n            <div className=\"flex w-full flex-col items-start justify-start gap-2\">\n              <label className=\"text-xs text-slate-200\">Password</label>\n              <input\n                placeholder=\"Enter a password...\"\n                autoComplete=\"false\"\n                type=\"password\"\n                className=\"w-full border-[1px] border-white bg-black p-4 text-white placeholder:text-gray-500\"\n              />\n            </div>\n\n            <div className=\"mr-4 flex items-center\">\n              <input\n                type=\"checkbox\"\n                id=\"checkbox-1\"\n                name=\"checkbox-1\"\n                className=\"absolute h-6 w-6 cursor-pointer opacity-0 [&:checked+div]:bg-green-500 [&:checked+div_svg]:block\"\n              />\n              <div className=\"mr-2 flex h-6 w-6 flex-shrink-0 items-center justify-center border-[1px] border-white bg-transparent focus-within:border-white\">\n                <svg\n                  className=\"pointer-events-none hidden h-3 w-3 fill-current text-white\"\n                  version=\"1.1\"\n                  viewBox=\"0 0 17 12\"\n                  xmlns=\"http://www.w3.org/2000/svg\"\n                >\n                  <g fill=\"none\" fillRule=\"evenodd\">\n                    <g\n                      transform=\"translate(-9 -11)\"\n                      fill=\"#000000\"\n                      fillRule=\"nonzero\"\n                    >\n                      <path d=\"m25.576 11.414c0.56558 0.55188 0.56558 1.4439 0 1.9961l-9.404 9.176c-0.28213 0.27529-0.65247 0.41385-1.0228 0.41385-0.37034 0-0.74068-0.13855-1.0228-0.41385l-4.7019-4.588c-0.56584-0.55188-0.56584-1.4442 0-1.9961 0.56558-0.55214 1.4798-0.55214 2.0456 0l3.679 3.5899 8.3812-8.1779c0.56558-0.55214 1.4798-0.55214 2.0456 0z\" />\n                    </g>\n                  </g>\n                </svg>\n              </div>\n              <div className=\"ml-3 text-sm leading-6\">\n                <label\n                  htmlFor=\"checkbox-1\"\n                  className=\"text-sm font-medium text-white\"\n                >\n                  You will get emails on new features and releases\n                </label>\n              </div>\n            </div>\n\n            <div className=\"mr-4 flex items-center\">\n              <input\n                type=\"checkbox\"\n                id=\"checkbox-2\"\n                name=\"checkbox-2\"\n                className=\"absolute h-6 w-6 cursor-pointer opacity-0 [&:checked+div]:bg-green-500 [&:checked+div_svg]:block\"\n              />\n              <div className=\"mr-2 flex h-6 w-6 flex-shrink-0 items-center justify-center border-[1px] border-white bg-transparent focus-within:border-white\">\n                <svg\n                  className=\"pointer-events-none hidden h-3 w-3 fill-current text-white\"\n                  version=\"1.1\"\n                  viewBox=\"0 0 17 12\"\n                  xmlns=\"http://www.w3.org/2000/svg\"\n                >\n                  <g fill=\"none\" fillRule=\"evenodd\">\n                    <g\n                      transform=\"translate(-9 -11)\"\n                      fill=\"#000000\"\n                      fillRule=\"nonzero\"\n                    >\n                      <path d=\"m25.576 11.414c0.56558 0.55188 0.56558 1.4439 0 1.9961l-9.404 9.176c-0.28213 0.27529-0.65247 0.41385-1.0228 0.41385-0.37034 0-0.74068-0.13855-1.0228-0.41385l-4.7019-4.588c-0.56584-0.55188-0.56584-1.4442 0-1.9961 0.56558-0.55214 1.4798-0.55214 2.0456 0l3.679 3.5899 8.3812-8.1779c0.56558-0.55214 1.4798-0.55214 2.0456 0z\" />\n                    </g>\n                  </g>\n                </svg>\n              </div>\n              <div className=\"ml-3 text-sm leading-6\">\n                <label\n                  htmlFor=\"checkbox-2\"\n                  className=\"text-sm font-medium text-white\"\n                >\n                  I agree to the terms and conditions\n                </label>\n              </div>\n            </div>\n            <button className=\"w-full bg-[#ae7aff] p-3 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e]\">\n              Create Account\n            </button>\n            <p className=\"my-14 text-sm font-light text-white\">\n              Already registered?{\" \"}\n              <span className=\"cursor-pointer font-bold hover:underline\">\n                Sign in to your account\n              </span>\n            </p>\n          </div>\n        </div>\n        <div className=\"fixed right-0 z-20 hidden h-screen w-1/2 md:block\">\n          <img\n            className=\"h-full w-full object-cover\"\n            src=\"https://images.pexels.com/photos/1144275/pexels-photo-1144275.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\"\n            alt=\"register_image\"\n          />\n        </div>\n      </div>\n    </div>\n  );\n};\n\nexport default Register;\n"
  },
  {
    "path": "src/components/templates/chat/chat-screen.jsx",
    "content": "import React from \"react\";\nimport { PaperAirplaneIcon, PlusCircleIcon } from \"@heroicons/react/20/solid\";\nimport {\n  Bars3BottomLeftIcon,\n  BellIcon,\n  EllipsisVerticalIcon,\n  FaceSmileIcon,\n  FunnelIcon,\n  MagnifyingGlassIcon,\n  PaperClipIcon,\n  ShareIcon,\n} from \"@heroicons/react/24/outline\";\nimport { classNames } from \"@/utils\";\n\nconst chatListDummyData = [\n  {\n    avatar:\n      \"https://images.pexels.com/photos/18096595/pexels-photo-18096595/free-photo-of-music-on-street.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\",\n    fullName: \"Jane Smith\",\n    lastMessage:\n      \"Hi there! How have you been? It's been a while since we last caught up. Let's plan to meet up soon.\",\n    dateTime: \"2 hours ago\",\n  },\n  {\n    avatar:\n      \"https://images.pexels.com/photos/18094275/pexels-photo-18094275.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\",\n    fullName: \"Alice Smith\",\n    lastMessage:\n      \"How's it going on your end? I heard you had an exciting trip last week. Tell me all about it!\",\n    dateTime: \"4 hours ago\",\n  },\n  {\n    avatar:\n      \"https://images.pexels.com/photos/13847652/pexels-photo-13847652.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\",\n    fullName: \"Bob Johnson\",\n    lastMessage:\n      \"What's for dinner tonight? I'm craving some Italian food. Any recommendations?\",\n    dateTime: \"Yesterday\",\n  },\n  {\n    avatar:\n      \"https://images.pexels.com/photos/13847596/pexels-photo-13847596.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\",\n    fullName: \"Emily Davis\",\n    lastMessage:\n      \"Can you help me with this coding problem? I'm stuck on it for hours now.\",\n    dateTime: \"2 days ago\",\n  },\n  {\n    avatar:\n      \"https://images.pexels.com/photos/7775636/pexels-photo-7775636.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\",\n    fullName: \"Michael Wilson\",\n    lastMessage:\n      \"See you tomorrow at the park. Don't forget to bring your running shoes!\",\n    dateTime: \"2 weeks ago\",\n  },\n  {\n    avatar:\n      \"https://images.pexels.com/photos/18107025/pexels-photo-18107025/free-photo-of-man-reading-newspaper.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\",\n    fullName: \"Sophia Anderson\",\n    lastMessage:\n      \"I miss you so much! It's been ages since we hung out. Let's plan something soon.\",\n    dateTime: \"2 weeks ago\",\n  },\n  {\n    avatar:\n      \"https://images.pexels.com/photos/7775640/pexels-photo-7775640.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\",\n    fullName: \"Liam Brown\",\n    lastMessage:\n      \"Let's meet up for coffee. I have some exciting news to share with you!\",\n    dateTime: \"3 weeks ago\",\n  },\n  {\n    avatar:\n      \"https://images.pexels.com/photos/18096595/pexels-photo-18096595/free-photo-of-music-on-street.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\",\n    fullName: \"Olivia Lee\",\n    lastMessage:\n      \"I have some big news! Guess what? I'm getting married next month!\",\n    dateTime: \"4 weeks ago\",\n  },\n  {\n    avatar:\n      \"https://images.pexels.com/photos/7775636/pexels-photo-7775636.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\",\n    fullName: \"Noah White\",\n    lastMessage:\n      \"How's the weather there? I'm planning a weekend hike and hoping for good weather.\",\n    dateTime: \"1 month ago\",\n  },\n  {\n    avatar:\n      \"https://images.pexels.com/photos/13847596/pexels-photo-13847596.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\",\n    fullName: \"Ava Garcia\",\n    lastMessage:\n      \"Good morning! Did you catch the sunrise today? It was breathtaking.\",\n    dateTime: \"2 months ago\",\n  },\n  {\n    avatar:\n      \"https://images.pexels.com/photos/7775640/pexels-photo-7775640.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\",\n    fullName: \"Ethan Martinez\",\n    lastMessage:\n      \"Let's go for a long walk by the beach this evening. The weather is perfect.\",\n    dateTime: \"3 months ago\",\n  },\n  {\n    avatar:\n      \"https://images.pexels.com/photos/18107025/pexels-photo-18107025/free-photo-of-man-reading-newspaper.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\",\n    fullName: \"Mia Jones\",\n    lastMessage:\n      \"Happy birthday! I hope you have an amazing day filled with joy and surprises.\",\n    dateTime: \"4 months ago\",\n  },\n  {\n    avatar:\n      \"https://images.pexels.com/photos/7775640/pexels-photo-7775640.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\",\n    fullName: \"James Harris\",\n    lastMessage:\n      \"What's new with you lately? I've been swamped with work, but I miss our chats.\",\n    dateTime: \"5 months ago\",\n  },\n];\n\nconst chatMessagesDummyData = [\n  {\n    fullName: \"Dan Abramov\",\n    message:\n      \"I'm good too, just catching up on some reading and enjoying the weather outside.\",\n    time: \"5 minutes ago\",\n    isOwnMessage: true,\n    hasAttachments: true,\n    avatar:\n      \"https://images.pexels.com/photos/18148932/pexels-photo-18148932/free-photo-of-bench-city-man-people.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\",\n  },\n  {\n    fullName: \"Jane Smith\",\n    message: \"That sounds lovely! What book are you currently reading?\",\n    time: \"10 minutes ago\",\n    isOwnMessage: false,\n    avatar:\n      \"https://images.pexels.com/photos/18107024/pexels-photo-18107024/free-photo-of-an-old-city-view.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\",\n  },\n  {\n    fullName: \"Dan Abramov\",\n    message:\n      \"I'm reading 'The Great Gatsby' by F. Scott Fitzgerald. It's a classic!\",\n    time: \"15 minutes ago\",\n    isOwnMessage: true,\n    avatar:\n      \"https://images.pexels.com/photos/18148932/pexels-photo-18148932/free-photo-of-bench-city-man-people.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\",\n  },\n  {\n    fullName: \"Jane Smith\",\n    message: \"Oh, I've heard great things about that book. Enjoy your reading!\",\n    time: \"20 minutes ago\",\n    isOwnMessage: false,\n    avatar:\n      \"https://images.pexels.com/photos/18107024/pexels-photo-18107024/free-photo-of-an-old-city-view.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\",\n  },\n  {\n    fullName: \"Dan Abramov\",\n    message: \"Thanks! It's such a beautifully written novel.\",\n    time: \"25 minutes ago\",\n    isOwnMessage: true,\n    avatar:\n      \"https://images.pexels.com/photos/18148932/pexels-photo-18148932/free-photo-of-bench-city-man-people.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\",\n  },\n\n  {\n    fullName: \"Dan Abramov\",\n    message:\n      \"I can't wait to see what happens next in the series. It's been so captivating!\",\n    time: \"45 minutes ago\",\n    isOwnMessage: true,\n    avatar:\n      \"https://images.pexels.com/photos/18148932/pexels-photo-18148932/free-photo-of-bench-city-man-people.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\",\n  },\n  {\n    fullName: \"Jane Smith\",\n    message:\n      \"I completely understand. It's always exciting when a series keeps you hooked.\",\n    time: \"50 minutes ago\",\n    isOwnMessage: false,\n    avatar:\n      \"https://images.pexels.com/photos/18107024/pexels-photo-18107024/free-photo-of-an-old-city-view.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\",\n  },\n  {\n    fullName: \"Dan Abramov\",\n    message:\n      \"Absolutely! Well, I should get back to work now. Catch up with you later!\",\n    time: \"55 minutes ago\",\n    isOwnMessage: true,\n    avatar:\n      \"https://images.pexels.com/photos/18148932/pexels-photo-18148932/free-photo-of-bench-city-man-people.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\",\n  },\n  {\n    fullName: \"Dan Abramov\",\n    message: \"Sounds like a plan! Let's do it!\",\n    time: \"18 hours ago\",\n    isOwnMessage: true,\n    avatar:\n      \"https://images.pexels.com/photos/18148932/pexels-photo-18148932/free-photo-of-bench-city-man-people.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\",\n  },\n  {\n    fullName: \"Jane Smith\",\n    message: \"Count me in too!\",\n    time: \"19 hours ago\",\n    isOwnMessage: false,\n    avatar:\n      \"https://images.pexels.com/photos/18107024/pexels-photo-18107024/free-photo-of-an-old-city-view.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\",\n  },\n  {\n    fullName: \"Dan Abramov\",\n    message: \"Great! I'll make a reservation then.\",\n    time: \"20 hours ago\",\n    isOwnMessage: true,\n    avatar:\n      \"https://images.pexels.com/photos/18148932/pexels-photo-18148932/free-photo-of-bench-city-man-people.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\",\n  },\n  {\n    fullName: \"Jane Smith\",\n    message: \"Awesome! Looking forward to it.\",\n    time: \"21 hours ago\",\n    isOwnMessage: false,\n    avatar:\n      \"https://images.pexels.com/photos/18107024/pexels-photo-18107024/free-photo-of-an-old-city-view.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\",\n  },\n  {\n    fullName: \"Dan Abramov\",\n    message: \"Catch up with you later!\",\n    time: \"22 hours ago\",\n    isOwnMessage: true,\n    avatar:\n      \"https://images.pexels.com/photos/18148932/pexels-photo-18148932/free-photo-of-bench-city-man-people.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\",\n  },\n  {\n    fullName: \"Jane Smith\",\n    message: \"Sure thing! Take care!\",\n    time: \"23 hours ago\",\n    isOwnMessage: false,\n    avatar:\n      \"https://images.pexels.com/photos/18107024/pexels-photo-18107024/free-photo-of-an-old-city-view.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\",\n  },\n\n  {\n    fullName: \"Jane Smith\",\n    message: \"That's the spirit! Keep up the good work.\",\n    time: \"6 days ago\",\n    isOwnMessage: false,\n    hasAttachments: true,\n\n    avatar:\n      \"https://images.pexels.com/photos/18107024/pexels-photo-18107024/free-photo-of-an-old-city-view.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\",\n  },\n];\n\nconst dummyAttachments = [\n  \"https://images.pexels.com/photos/18094275/pexels-photo-18094275.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\",\n  \"https://images.pexels.com/photos/18148932/pexels-photo-18148932/free-photo-of-bench-city-man-people.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\",\n  \"https://images.pexels.com/photos/18107024/pexels-photo-18107024/free-photo-of-an-old-city-view.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\",\n];\n\nconst ChatScreen = () => {\n  return (\n    <div className=\"bg-[#121212]\">\n      <header className=\"fixed top-0 z-10 mx-auto flex w-full max-w-full items-center justify-between border-b-[1px] border-b-slate-300 bg-[#121212] p-4 text-white lg:px-10\">\n        <h1 className=\"text-xl font-extrabold md:text-3xl\">Inbox</h1>\n        <div className=\"flex w-max flex-shrink-0 items-center justify-end gap-6\">\n          <span className=\"relative\">\n            <BellIcon className=\"h-6 w-6 text-white md:h-8 md:w-8\" />\n            <span className=\"absolute -right-1 -top-1 flex h-4 w-4 items-center justify-center rounded-full bg-red-500 p-1 text-sm text-white md:h-5 md:w-5 md:text-base\">\n              4\n            </span>\n          </span>\n          <div className=\"h-11 w-11 rounded-full border-2 border-white\">\n            <img\n              src=\"https://images.pexels.com/photos/18148932/pexels-photo-18148932/free-photo-of-bench-city-man-people.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\"\n              alt=\"avatar\"\n              className=\"h-10 w-10 rounded-full object-cover\"\n            />\n          </div>\n          <button className=\"hidden w-max items-center justify-center border-[1px] border-white p-3 text-center font-bold text-white md:inline-flex\">\n            <PlusCircleIcon className=\"mr-2 h-5 w-5\" /> Create a chat\n          </button>\n        </div>\n      </header>\n      <div className=\"mt-[77px] flex h-[calc(100vh-77px)] w-full items-center justify-center overflow-hidden p-0 md:mt-[83px] md:h-[calc(100vh-83px)]\">\n        <button\n          className=\"peer fixed h-full w-full md:hidden\"\n          aria-label=\"mobile-chatlist-toggler\"\n          aria-details=\"Remove when using in your project. Following button is only to toggle chatlist sidebar\"\n        ></button>\n        <div className=\"fixed right-full top-[77px] z-10 h-full w-full border-white bg-[#121212] transition-all duration-300 ease-in-out peer-focus:right-0 md:static md:block md:w-[30%] md:border-r-[1px]\">\n          <div className=\"flex w-full items-center justify-start gap-2 border-b-[1px] border-white p-4\">\n            <input\n              placeholder=\"Search chat...\"\n              className=\"w-full bg-transparent px-2 text-white !outline-none placeholder:text-gray-500 md:px-4\"\n            />\n            <button className=\"inline-flex h-7 w-7 flex-shrink-0 items-center justify-center border-[1px] border-white p-1 md:h-10 md:w-10\">\n              <MagnifyingGlassIcon className=\"h-5 w-5 text-white\" />\n            </button>\n            <button className=\"hidden h-10 w-10 flex-shrink-0 items-center justify-center border-[1px] border-white p-1 md:inline-flex\">\n              <FunnelIcon className=\"h-5 w-5 text-white\" />\n            </button>\n          </div>\n          <ul className=\"flex h-[calc(100%-140px)] w-full flex-col items-start justify-start divide-y-[1px] divide-white overflow-y-auto md:h-[calc(100%-73px)]\">\n            {chatListDummyData.map((item, i) => {\n              return (\n                <li\n                  className=\"w-full cursor-pointer p-4 hover:bg-[#232323] md:p-6\"\n                  key={i}\n                >\n                  <div className=\"flex w-full items-start justify-start gap-3 md:gap-4\">\n                    <img\n                      className=\"flex aspect-square h-10 w-10 flex-shrink-0 rounded-full object-cover\"\n                      src={item.avatar}\n                      alt=\"avatar\"\n                    />\n                    <div className=\"flex w-full flex-col items-start justify-start gap-1 truncate text-ellipsis\">\n                      <div className=\"flex w-full items-center justify-between text-[10px] md:text-xs\">\n                        <p className=\"text-gray-400\">{item.fullName}</p>\n                        <p className=\"text-gray-400\">{item.dateTime}</p>\n                      </div>\n                      <p className=\"text-xs text-white md:text-sm\">\n                        {item.lastMessage}\n                      </p>\n                    </div>\n                  </div>\n                </li>\n              );\n            })}\n          </ul>\n        </div>\n        <div className=\"h-full w-full md:w-[70%]\">\n          <div className=\"flex w-full items-center justify-between gap-2 border-b-[1px] border-white p-4\">\n            <div className=\"flex w-full items-center justify-start gap-3\">\n              <button className=\"inline-flex h-7 w-7 flex-shrink-0 items-center justify-center border-[1px] border-white p-1 md:hidden md:h-10 md:w-10\">\n                <Bars3BottomLeftIcon className=\"h-5 w-5 text-white\" />\n              </button>\n              <img\n                className=\"flex aspect-square h-10 w-10 flex-shrink-0 rounded-full object-cover\"\n                src=\"https://images.pexels.com/photos/18107024/pexels-photo-18107024/free-photo-of-an-old-city-view.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\"\n                alt=\"avatar\"\n              />\n              <p className=\"font-semibold text-white\">Jane smith</p>\n            </div>\n            <div className=\"flex items-center justify-end gap-4\">\n              <button className=\"hidden h-10 w-10 flex-shrink-0 items-center justify-center border-[1px] border-white p-1 md:inline-flex\">\n                <ShareIcon className=\"h-5 w-5 text-white\" />\n              </button>\n              <button className=\"inline-flex h-7 w-7 flex-shrink-0 items-center justify-center border-[1px] border-white p-1 md:h-10 md:w-10\">\n                <EllipsisVerticalIcon className=\"h-5 w-5 text-white\" />\n              </button>\n            </div>\n          </div>\n          <div className=\"relative h-[calc(100vh-150px)] w-full p-0 md:h-[calc(100vh-158px)] md:p-4\">\n            <div className=\"flex h-[calc(100%-53px)] w-full flex-col-reverse gap-8 overflow-y-auto px-2 py-4 md:h-[calc(100%-90px)] md:p-0\">\n              <div\n                className={\n                  \"flex min-w-[150px] max-w-[80%] items-start justify-start gap-2 text-white md:max-w-[70%]\"\n                }\n              >\n                <img\n                  className=\"flex aspect-square h-7 w-7 flex-shrink-0 rounded-full object-cover md:h-10 md:w-10\"\n                  src={\n                    \"https://images.pexels.com/photos/18107024/pexels-photo-18107024/free-photo-of-an-old-city-view.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\"\n                  }\n                  alt=\"avatar\"\n                />\n                <div className=\"flex w-full max-w-[70%] flex-col gap-2\">\n                  <p className=\"text-xs\">Jane Smith</p>\n                  <div\n                    className={\n                      \"relative w-fit bg-[#343434] p-3 text-sm after:absolute after:left-0 after:top-0 after:border-r-[15px] after:border-t-[15px] after:border-r-transparent after:border-t-[#121212]\"\n                    }\n                  >\n                    <div className=\"flex w-full items-center justify-center gap-1.5 px-3 py-1\">\n                      <span className=\"h-2 w-2 animate-pulse rounded-full bg-gray-300\"></span>\n                      <span className=\"h-2 w-2 animate-pulse rounded-full bg-gray-300\"></span>\n                      <span className=\"h-2 w-2 animate-pulse rounded-full bg-gray-300\"></span>\n                    </div>\n                  </div>\n                </div>\n              </div>\n              {chatMessagesDummyData.map((message, i) => {\n                return (\n                  <div\n                    className={classNames(\n                      \"flex min-w-[150px] max-w-[80%] items-start justify-start gap-2 text-white md:max-w-[70%]\",\n                      message.isOwnMessage\n                        ? \"ml-auto flex-row-reverse\"\n                        : \"mr-0\",\n                    )}\n                    key={i}\n                  >\n                    <img\n                      className=\"flex aspect-square h-7 w-7 flex-shrink-0 rounded-full object-cover md:h-10 md:w-10\"\n                      src={message.avatar}\n                      alt=\"avatar\"\n                    />\n                    <div\n                      className={classNames(\n                        \"flex w-full flex-col gap-1 md:gap-2\",\n                        message.isOwnMessage ? \"items-end justify-end\" : \"\",\n                      )}\n                    >\n                      <p className=\"text-[10px] md:text-xs\">\n                        {message.fullName}\n                        <span className=\"ml-2 text-gray-400\">\n                          {message.time}\n                        </span>\n                      </p>\n                      <div\n                        className={classNames(\n                          \"relative w-fit p-2 text-xs after:absolute after:top-0 after:border-t-[15px] after:border-t-[#121212] md:p-3 md:text-sm\",\n                          message.isOwnMessage\n                            ? \"bg-[#ae7aff] after:right-0 after:border-l-[15px] after:border-l-transparent\"\n                            : \"bg-[#343434] after:left-0 after:border-r-[15px] after:border-r-transparent\",\n                        )}\n                      >\n                        {message.message}\n                      </div>\n                      {message?.hasAttachments ? (\n                        <div\n                          className={classNames(\n                            \"grid w-full grid-cols-2 items-start justify-start gap-1 md:max-w-[90%] md:gap-2\",\n                            message.isOwnMessage ? \"ml-auto\" : \"\",\n                          )}\n                        >\n                          {dummyAttachments.map((img, i) => {\n                            return (\n                              <img\n                                key={i}\n                                className=\"flex aspect-video w-full flex-shrink-0 object-cover\"\n                                src={img}\n                                alt=\"avatar\"\n                              />\n                            );\n                          })}\n                        </div>\n                      ) : null}\n                    </div>\n                  </div>\n                );\n              })}\n            </div>\n            <div className=\"sticky top-full flex w-full items-center justify-start gap-1 border-t-[1px] border-white px-4 py-2 md:gap-4 md:border-[1px] md:shadow-[5px_5px_0px_0px_#4f4e4e]\">\n              <img\n                className=\"hidden aspect-square h-5 w-5 flex-shrink-0 rounded-full object-cover md:flex md:h-10 md:w-10\"\n                src=\"https://images.pexels.com/photos/18148932/pexels-photo-18148932/free-photo-of-bench-city-man-people.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\"\n                alt=\"avatar\"\n              />\n              <input\n                placeholder=\"Message...\"\n                className=\"w-full bg-transparent p-2 text-sm text-white !outline-none placeholder:text-gray-500 md:p-4 md:text-base\"\n              />\n              <button className=\"hidden h-5 w-5 flex-shrink-0 items-center justify-center p-1 md:flex md:h-10 md:w-10\">\n                <FaceSmileIcon className=\"h-6 w-6 text-white\" />\n              </button>\n              <button className=\"flex h-7 w-7 flex-shrink-0 items-center  justify-center p-1 md:h-10 md:w-10\">\n                <PaperClipIcon className=\"h-6 w-6 text-white\" />\n              </button>\n              <button className=\"flex h-7 w-7 flex-shrink-0 items-center justify-center  bg-[#ae7aff] p-1 md:h-10 md:w-10\">\n                <PaperAirplaneIcon className=\"h-6 w-6 text-black\" />\n              </button>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  );\n};\n\nexport default ChatScreen;\n"
  },
  {
    "path": "src/components/templates/chat/create-group-chat.jsx",
    "content": "import {\n  BellIcon,\n  PlusCircleIcon,\n  XMarkIcon,\n} from \"@heroicons/react/24/outline\";\nimport React from \"react\";\n\nconst selectedUsers = [\n  {\n    name: \"John Smith\",\n    avatar:\n      \"https://images.pexels.com/photos/18096595/pexels-photo-18096595/free-photo-of-music-on-street.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\",\n  },\n  {\n    name: \"Emily Gardener\",\n    avatar:\n      \"https://images.pexels.com/photos/18094275/pexels-photo-18094275.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\",\n  },\n  {\n    name: \"Olivia Root\",\n    avatar:\n      \"https://images.pexels.com/photos/13847652/pexels-photo-13847652.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\",\n  },\n  {\n    name: \"John Denny\",\n    avatar:\n      \"https://images.pexels.com/photos/13847596/pexels-photo-13847596.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\",\n  },\n  {\n    name: \"Emily Rose\",\n    avatar:\n      \"https://images.pexels.com/photos/7775636/pexels-photo-7775636.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\",\n  },\n];\n\nconst CreateGroupChat = () => {\n  return (\n    <div className=\"min-h-screen bg-[#121212]\">\n      <header className=\"fixed top-0 z-10 mx-auto flex w-full max-w-[85rem] items-center justify-between border-b-[1px] border-b-slate-300 bg-[#121212] p-4 text-white lg:px-10\">\n        <h1 className=\"text-xl font-extrabold md:text-3xl\">Inbox</h1>\n        <div className=\"flex w-max flex-shrink-0 items-center justify-end gap-6\">\n          <span className=\"relative\">\n            <BellIcon className=\"h-6 w-6 text-white md:h-8 md:w-8\" />\n            <span className=\"absolute -right-1 -top-1 flex h-4 w-4 items-center justify-center rounded-full bg-red-500 p-1 text-sm text-white md:h-5 md:w-5 md:text-base\">\n              4\n            </span>\n          </span>\n          <div className=\"h-11 w-11 rounded-full border-2 border-white\">\n            <img\n              src=\"https://images.pexels.com/photos/18148932/pexels-photo-18148932/free-photo-of-bench-city-man-people.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\"\n              alt=\"avatar\"\n              className=\"h-10 w-10 rounded-full object-cover\"\n            />\n          </div>\n          <button className=\"hidden w-max items-center justify-center border-[1px] border-white p-3 text-center font-bold text-white md:inline-flex\">\n            <PlusCircleIcon className=\"mr-2 h-5 w-5\" /> Create a chat\n          </button>\n        </div>\n      </header>\n      <div\n        className=\"relative z-10\"\n        aria-labelledby=\"modal-title\"\n        role=\"dialog\"\n        aria-modal=\"true\"\n      >\n        <div className=\"fixed inset-0 bg-[#121212] bg-opacity-75 transition-opacity\" />\n        <div className=\"fixed inset-0 z-10 w-screen overflow-y-auto\">\n          <div className=\"flex min-h-full items-end justify-center p-0 text-center md:items-center md:p-2\">\n            <div className=\"relative w-full transform overflow-hidden border-t-[1px] border-white bg-[#121212] text-left text-white transition-all md:my-8 md:w-full md:max-w-5xl md:border-[1px]\">\n              <div className=\"flex items-center justify-between border-b-[1px] border-white p-4\">\n                <p className=\"text-xl font-bold\">Create a Group</p>\n                <XMarkIcon className=\"h-6 w-6 text-white\" role=\"button\" />\n              </div>\n              <div className=\"flex w-full flex-col gap-4 p-4 md:gap-6 md:p-6\">\n                <div className=\"flex w-full flex-col items-start justify-start gap-2\">\n                  <label className=\"text-xs text-slate-200\">Group name</label>\n                  <input\n                    placeholder=\"Enter group name...\"\n                    autoComplete=\"false\"\n                    className=\"w-full border-[1px] border-white bg-black p-4 text-white placeholder:text-gray-500\"\n                  />\n                </div>\n                <div className=\"flex w-full flex-col items-start justify-start gap-2\">\n                  <label className=\"text-xs text-slate-200\">\n                    Select a user\n                  </label>\n                  <div className=\"w-full border-[1px] border-white pr-4\">\n                    <select\n                      placeholder=\"Select a user...\"\n                      autoComplete=\"false\"\n                      className=\"w-full bg-[#121212] py-4 pl-4 text-white placeholder:text-gray-500 focus:outline-none\"\n                    >\n                      <option value=\"0\">John Doe</option>\n                      <option value=\"1\">Jane Doe</option>\n                      <option value=\"2\">Mark Smith</option>\n                      <option value=\"3\">Tiger Woods</option>\n                    </select>\n                  </div>\n                </div>\n                <div className=\"flex w-full flex-col items-start justify-start gap-2\">\n                  <label className=\"text-xs text-slate-200\">\n                    Added participants\n                  </label>\n                  <div className=\"flex w-full flex-wrap items-center justify-start gap-4\">\n                    {selectedUsers.map((user) => {\n                      return (\n                        <div\n                          className=\"flex w-fit items-center justify-between gap-2 border-[1px] border-white px-2 py-1.5\"\n                          key={user.name}\n                        >\n                          <img\n                            alt=\"avatar\"\n                            className=\"flex h-6 w-6 flex-shrink-0 rounded-full object-cover\"\n                            src={user.avatar}\n                          />\n                          <p className=\"text-sm text-white\">{user.name}</p>\n                          <button className=\"flex flex-shrink-0 items-center justify-center\">\n                            <XMarkIcon className=\"h-4 w-4 text-white\" />\n                          </button>\n                        </div>\n                      );\n                    })}\n                  </div>\n                </div>\n                <div className=\"flex w-full flex-col items-center justify-end gap-4 md:flex-row md:gap-6\">\n                  <button className=\"w-full bg-red-500 p-3 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e]\">\n                    Cancel\n                  </button>\n                  <button className=\"w-full bg-[#ae7aff] p-3 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e]\">\n                    Create\n                  </button>\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  );\n};\n\nexport default CreateGroupChat;\n"
  },
  {
    "path": "src/components/templates/chat/create-normal-chat.jsx",
    "content": "import {\n  BellIcon,\n  PlusCircleIcon,\n  XMarkIcon,\n} from \"@heroicons/react/24/outline\";\nimport React from \"react\";\n\nconst CreateOneOnOneChat = () => {\n  return (\n    <div className=\"min-h-screen bg-[#121212]\">\n      <header className=\"fixed top-0 z-10 mx-auto flex w-full max-w-[85rem] items-center justify-between border-b-[1px] border-b-slate-300 bg-[#121212] p-4 text-white lg:px-10\">\n        <h1 className=\"text-xl font-extrabold md:text-3xl\">Inbox</h1>\n        <div className=\"flex w-max flex-shrink-0 items-center justify-end gap-6\">\n          <span className=\"relative\">\n            <BellIcon className=\"h-6 w-6 text-white md:h-8 md:w-8\" />\n            <span className=\"absolute -right-1 -top-1 flex h-4 w-4 items-center justify-center rounded-full bg-red-500 p-1 text-sm text-white md:h-5 md:w-5 md:text-base\">\n              4\n            </span>\n          </span>\n          <div className=\"h-11 w-11 rounded-full border-2 border-white\">\n            <img\n              src=\"https://images.pexels.com/photos/18148932/pexels-photo-18148932/free-photo-of-bench-city-man-people.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\"\n              alt=\"avatar\"\n              className=\"h-10 w-10 rounded-full object-cover\"\n            />\n          </div>\n          <button className=\"hidden w-max items-center justify-center border-[1px] border-white p-3 text-center font-bold text-white md:inline-flex\">\n            <PlusCircleIcon className=\"mr-2 h-5 w-5\" /> Create a chat\n          </button>\n        </div>\n      </header>\n      <div\n        className=\"relative z-10\"\n        aria-labelledby=\"modal-title\"\n        role=\"dialog\"\n        aria-modal=\"true\"\n      >\n        <div className=\"fixed inset-0 bg-[#121212] bg-opacity-75 transition-opacity\" />\n        <div className=\"fixed inset-0 z-10 w-screen overflow-y-auto\">\n          <div className=\"flex min-h-full items-end justify-center p-0 text-center md:items-center md:p-2\">\n            <div className=\"relative w-full transform overflow-hidden border-t-[1px] border-white bg-[#121212] text-left text-white transition-all md:my-8 md:w-full md:max-w-5xl md:border-[1px]\">\n              <div className=\"flex items-center justify-between border-b-[1px] border-white p-4\">\n                <p className=\"text-xl font-bold\">Create Chat</p>\n                <XMarkIcon className=\"h-6 w-6 text-white\" role=\"button\" />\n              </div>\n              <div className=\"flex w-full flex-col gap-4 p-4 md:gap-6 md:p-6\">\n                <div className=\"flex w-full flex-col items-start justify-start gap-2\">\n                  <label className=\"text-xs text-slate-200\">\n                    Select a user\n                  </label>\n                  <div className=\"w-full border-[1px] border-white pr-4\">\n                    <select\n                      placeholder=\"Select a user...\"\n                      autoComplete=\"false\"\n                      className=\"w-full bg-[#121212] py-4 pl-4 text-white placeholder:text-gray-500 focus:outline-none\"\n                    >\n                      <option value=\"0\">John Doe</option>\n                      <option value=\"1\">Jane Doe</option>\n                      <option value=\"2\">Mark Smith</option>\n                      <option value=\"3\">Tiger Woods</option>\n                    </select>\n                  </div>\n                </div>\n                <div className=\"flex w-full flex-col items-center justify-end gap-4 md:flex-row md:gap-6\">\n                  <button className=\"w-full bg-red-500 p-3 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e]\">\n                    Cancel\n                  </button>\n                  <button className=\"w-full bg-[#ae7aff] p-3 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e]\">\n                    Start Chatting\n                  </button>\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  );\n};\n\nexport default CreateOneOnOneChat;\n"
  },
  {
    "path": "src/components/templates/chat/empty-chats.jsx",
    "content": "import React from \"react\";\nimport { PlusCircleIcon } from \"@heroicons/react/20/solid\";\nimport { BellIcon, InboxIcon } from \"@heroicons/react/24/outline\";\n\nconst EmptyChats = () => {\n  return (\n    <div className=\"min-h-screen bg-[#121212]\">\n      <header className=\"fixed top-0 z-10 mx-auto flex w-full max-w-full items-center justify-between border-b-[1px] border-b-slate-300 bg-[#121212] p-4 text-white lg:px-10\">\n        <h1 className=\"text-xl font-extrabold md:text-3xl\">Inbox</h1>\n        <div className=\"flex w-max flex-shrink-0 items-center justify-end gap-6\">\n          <span className=\"relative\">\n            <BellIcon className=\"h-6 w-6 text-white md:h-8 md:w-8\" />\n            <span className=\"absolute -right-1 -top-1 flex h-4 w-4 items-center justify-center rounded-full bg-red-500 p-1 text-sm text-white md:h-5 md:w-5 md:text-base\">\n              4\n            </span>\n          </span>\n          <div className=\"h-11 w-11 rounded-full border-2 border-white\">\n            <img\n              src=\"https://images.pexels.com/photos/18148932/pexels-photo-18148932/free-photo-of-bench-city-man-people.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\"\n              alt=\"avatar\"\n              className=\"h-10 w-10 rounded-full object-cover\"\n            />\n          </div>\n          <button className=\"hidden w-max items-center justify-center border-[1px] border-white p-3 text-center font-bold text-white md:inline-flex\">\n            <PlusCircleIcon className=\"mr-2 h-5 w-5\" /> Create a chat\n          </button>\n        </div>\n      </header>\n      <div className=\"flex h-full min-h-screen w-full flex-col items-center justify-center px-4 text-center\">\n        <div className=\"flex flex-col items-center justify-center gap-4 text-white\">\n          <InboxIcon className=\"h-20 w-20 text-white md:h-28 md:w-28\" />\n          <h1 className=\"text-4xl font-extrabold md:text-6xl\">\n            No chats found?\n          </h1>\n          <p className=\"max-w-sm text-xs text-gray-200 md:text-sm\">\n            Try to initiate chat with your saved contacts by clicking the button\n            below\n          </p>\n        </div>\n\n        <button className=\"mt-14 inline-flex w-max items-center bg-[#ae7aff] p-3 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e]\">\n          <PlusCircleIcon className=\"mr-2 h-5 w-5 text-[#121212]\" /> Create a\n          chat\n        </button>\n      </div>\n    </div>\n  );\n};\n\nexport default EmptyChats;\n"
  },
  {
    "path": "src/components/templates/chat/group-information.jsx",
    "content": "import { TrashIcon, UserMinusIcon, XMarkIcon } from \"@heroicons/react/20/solid\";\nimport {\n  BellIcon,\n  ExclamationTriangleIcon,\n  PencilIcon,\n  PlusCircleIcon,\n  UserGroupIcon,\n} from \"@heroicons/react/24/outline\";\nimport React from \"react\";\n\nconst participants = [\n  {\n    fullName: \"Eva Brown\",\n    email: \"eva.brown@example.com\",\n    avatar:\n      \"https://images.pexels.com/photos/18096595/pexels-photo-18096595/free-photo-of-music-on-street.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\",\n  },\n  {\n    fullName: \"John Doe\",\n    email: \"john.doe@example.com\",\n    avatar:\n      \"https://images.pexels.com/photos/18094275/pexels-photo-18094275.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\",\n  },\n  {\n    fullName: \"Jane Smith\",\n    email: \"jane.smith@example.com\",\n    avatar:\n      \"https://images.pexels.com/photos/13847652/pexels-photo-13847652.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\",\n  },\n  {\n    fullName: \"Alice Johnson\",\n    email: \"alice.johnson@example.com\",\n    avatar:\n      \"https://images.pexels.com/photos/13847596/pexels-photo-13847596.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\",\n  },\n  {\n    fullName: \"Bob Wilson\",\n    email: \"bob.wilson@example.com\",\n    avatar:\n      \"https://images.pexels.com/photos/7775636/pexels-photo-7775636.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\",\n  },\n  {\n    fullName: \"Eva Brown\",\n    email: \"eva.brown@example.com\",\n    avatar:\n      \"https://images.pexels.com/photos/18107025/pexels-photo-18107025/free-photo-of-man-reading-newspaper.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\",\n  },\n  {\n    fullName: \"David Lee\",\n    email: \"david.lee@example.com\",\n    avatar:\n      \"https://images.pexels.com/photos/7775640/pexels-photo-7775640.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\",\n  },\n];\n\nconst GroupChatInfo = () => {\n  return (\n    <div className=\"min-h-screen bg-[#121212]\">\n      <header className=\"fixed top-0 z-10 mx-auto flex w-full max-w-[85rem] items-center justify-between border-b-[1px] border-b-slate-300 bg-[#121212] p-4 text-white lg:px-10\">\n        <h1 className=\"text-xl font-extrabold md:text-3xl\">Inbox</h1>\n        <div className=\"flex w-max flex-shrink-0 items-center justify-end gap-6\">\n          <span className=\"relative\">\n            <BellIcon className=\"h-6 w-6 text-white md:h-8 md:w-8\" />\n            <span className=\"absolute -right-1 -top-1 flex h-4 w-4 items-center justify-center rounded-full bg-red-500 p-1 text-sm text-white md:h-5 md:w-5 md:text-base\">\n              4\n            </span>\n          </span>\n          <div className=\"h-11 w-11 rounded-full border-2 border-white\">\n            <img\n              src=\"https://images.pexels.com/photos/18148932/pexels-photo-18148932/free-photo-of-bench-city-man-people.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2\"\n              alt=\"avatar\"\n              className=\"h-10 w-10 rounded-full object-cover\"\n            />\n          </div>\n          <button className=\"hidden w-max items-center justify-center border-[1px] border-white p-3 text-center font-bold text-white md:inline-flex\">\n            <PlusCircleIcon className=\"mr-2 h-5 w-5\" /> Create a chat\n          </button>\n        </div>\n      </header>\n      <div className=\"flex h-full min-h-screen w-full flex-col items-center justify-center px-4 text-center\">\n        <div className=\"fixed inset-0 z-10 bg-[#121212] bg-opacity-75 transition-opacity\" />\n        <aside className=\"fixed right-0 z-20 h-screen w-full translate-x-0 overflow-y-auto bg-[#121212] p-4 transition-all duration-200 ease-in-out peer-focus:translate-x-0 md:w-1/2 md:border-l-[1px] md:border-l-white md:p-6\">\n          <div className=\"mb-6 flex items-center justify-between\">\n            <p className=\"text-lg font-semibold text-white md:text-xl md:font-bold\">\n              About Group\n            </p>\n            <XMarkIcon\n              className=\"h-5 w-5 text-white md:h-6 md:w-6\"\n              role=\"button\"\n            />\n          </div>\n          <div className=\"flex flex-col items-center justify-start gap-4 text-center\">\n            <div className=\"flex w-14 flex-shrink-0 items-center justify-center md:w-24\">\n              <img\n                className=\"flex h-14 w-14 flex-shrink-0 rounded-full object-cover outline outline-8 outline-[#121212] md:h-24 md:w-24\"\n                alt=\"avatar\"\n                src={participants[0]?.avatar}\n              />\n              <img\n                className=\"-ml-10 flex h-14 w-14 flex-shrink-0 rounded-full object-cover outline outline-8 outline-[#121212] md:h-24 md:w-24\"\n                alt=\"avatar\"\n                src={participants[1]?.avatar}\n              />\n              <img\n                className=\"-ml-10 flex h-14 w-14 flex-shrink-0 rounded-full object-cover outline outline-8 outline-[#121212] md:h-24 md:w-24\"\n                alt=\"avatar\"\n                src={participants[2]?.avatar}\n              />\n              <p className=\"ml-2 text-sm text-white md:text-base\">+4</p>\n            </div>\n            <h1 className=\"truncate text-2xl font-extrabold text-white md:text-4xl\">\n              CodeCrafters Alliance\n            </h1>\n            <span className=\"text-sm text-gray-400\">7 Participants</span>\n          </div>\n          <hr className=\"mx-auto my-8 w-[90%] border-[1px] border-dashed border-gray-500\" />\n          <p className=\"mb-2 inline-flex items-center text-left text-white\">\n            <UserGroupIcon className=\"mr-2 h-5 w-5\" /> Group participants\n          </p>\n          <ul className=\"mb-4 flex w-full flex-col items-start justify-start divide-y-[0.1px] divide-white\">\n            {participants.map((user, i) => {\n              return (\n                <li\n                  className=\"flex w-full items-center justify-start gap-2 py-4 pr-4\"\n                  key={i}\n                >\n                  <img\n                    className=\"flex h-10 w-10 flex-shrink-0 rounded-full object-cover md:h-14 md:w-14\"\n                    src={user.avatar}\n                    alt=\"avatar\"\n                  />\n                  <div className=\"flex flex-col items-start justify-start text-left text-white\">\n                    <p className=\"inline-flex items-center text-sm font-semibold md:text-base\">\n                      {user.fullName}\n                      {i === 1 ? (\n                        <span className=\"ml-2 border-[1px] border-white px-1.5 py-0.5 text-[8px] text-white md:text-[10px]\">\n                          ADMIN\n                        </span>\n                      ) : null}\n                    </p>\n                    <span className=\"text-xs text-gray-500 md:text-sm\">\n                      {user.email}\n                    </span>\n                  </div>\n                  <button className=\"ml-auto inline-flex aspect-square items-center bg-red-500 p-3 text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e]\">\n                    <UserMinusIcon className=\"h-5 w-5\" />\n                  </button>\n                </li>\n              );\n            })}\n          </ul>\n          <div className=\"flex w-full flex-col gap-4\">\n            <button className=\"inline-flex w-full items-center justify-center bg-[#ae7aff] p-2 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e]\">\n              <PencilIcon className=\"mr-2 h-5 w-5\" /> Update Group\n            </button>\n            <button className=\"inline-flex w-full items-center justify-center bg-red-500 p-2 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e]\">\n              <TrashIcon className=\"mr-2 h-5 w-5\" /> Delete Group\n            </button>\n            <button className=\"inline-flex w-full items-center justify-center bg-red-500 p-2 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e]\">\n              <ExclamationTriangleIcon className=\"mr-2 h-5 w-5\" /> Exit Group\n            </button>\n          </div>\n        </aside>\n      </div>\n    </div>\n  );\n};\n\nexport default GroupChatInfo;\n"
  },
  {
    "path": "src/components/templates/chat/index.ts",
    "content": "import EmptyChats from \"./empty-chats\";\nimport ChatScreen from \"./chat-screen\";\nimport CreateGroupChat from \"./create-group-chat\";\nimport CreateOneOnOneChat from \"./create-normal-chat\";\nimport GroupInfo from \"./group-information\";\nimport Register from \"./register\";\nimport Login from \"./login\";\n\nconst Chat = {\n  EmptyChats,\n  ChatScreen,\n  CreateGroupChat,\n  CreateOneOnOneChat,\n  GroupInfo,\n  Register,\n  Login,\n};\n\nexport default Chat;\n"
  },
  {
    "path": "src/components/templates/chat/login.jsx",
    "content": "const SocialLogin = () => {\n  return (\n    <div className=\"min-h-screen bg-[#121212]\">\n      <header className=\"fixed top-0 z-10 mx-auto flex w-full max-w-full items-center justify-between border-b-[1px] border-b-slate-300 bg-[#121212] p-4 text-white lg:px-10\">\n        <h1 className=\"text-xl font-extrabold md:text-3xl\">Login</h1>\n        <div className=\"flex w-max flex-shrink-0 items-center justify-end gap-6\">\n          <button className=\"hidden w-max items-center justify-center border-[1px] border-white p-3 text-center font-bold text-white md:inline-flex\">\n            Register\n          </button>\n        </div>\n      </header>\n      <div className=\"mx-auto flex w-full items-stretch justify-between gap-10\">\n        <div className=\"fixed left-0 top-0 hidden h-screen w-0 bg-gradient-to-r from-indigo-500 via-purple-500 to-pink-500 md:block md:w-1/3\"></div>\n        <div className=\"ml-auto mt-28 flex w-full flex-col items-start justify-start p-6 sm:max-w-4xl md:w-2/3 lg:px-10\">\n          <div className=\"w-full\">\n            <h1 className=\"mb-3 text-5xl font-extrabold text-white\">Login</h1>\n            <p className=\"text-xs text-slate-400\">\n              Login to access your account\n            </p>\n          </div>\n          <div className=\"my-14 flex w-full flex-col items-start justify-start gap-4\">\n            <div className=\"flex w-full flex-col items-start justify-start gap-2\">\n              <label className=\"text-xs text-slate-200\">\n                Username or email\n              </label>\n              <input\n                placeholder=\"Enter a username or email...\"\n                autoComplete=\"false\"\n                className=\"w-full border-[1px] border-white bg-black p-4 text-white placeholder:text-gray-500\"\n              />\n            </div>\n\n            <div className=\"flex w-full flex-col items-start justify-start gap-2\">\n              <label className=\"text-xs text-slate-200\">Password</label>\n              <input\n                placeholder=\"Enter a password...\"\n                autoComplete=\"false\"\n                type=\"password\"\n                className=\"w-full border-[1px] border-white bg-black p-4 text-white placeholder:text-gray-500\"\n              />\n            </div>\n\n            <div className=\"mr-4 flex items-center\">\n              <input\n                type=\"checkbox\"\n                id=\"checkbox-2\"\n                name=\"checkbox-2\"\n                className=\"absolute h-6 w-6 cursor-pointer opacity-0 [&:checked+div]:bg-green-500 [&:checked+div_svg]:block\"\n              />\n              <div className=\"mr-2 flex h-6 w-6 flex-shrink-0 items-center justify-center border-[1px] border-white bg-transparent focus-within:border-white\">\n                <svg\n                  className=\"pointer-events-none hidden h-3 w-3 fill-current text-white\"\n                  version=\"1.1\"\n                  viewBox=\"0 0 17 12\"\n                  xmlns=\"http://www.w3.org/2000/svg\"\n                >\n                  <g fill=\"none\" fillRule=\"evenodd\">\n                    <g\n                      transform=\"translate(-9 -11)\"\n                      fill=\"#000000\"\n                      fillRule=\"nonzero\"\n                    >\n                      <path d=\"m25.576 11.414c0.56558 0.55188 0.56558 1.4439 0 1.9961l-9.404 9.176c-0.28213 0.27529-0.65247 0.41385-1.0228 0.41385-0.37034 0-0.74068-0.13855-1.0228-0.41385l-4.7019-4.588c-0.56584-0.55188-0.56584-1.4442 0-1.9961 0.56558-0.55214 1.4798-0.55214 2.0456 0l3.679 3.5899 8.3812-8.1779c0.56558-0.55214 1.4798-0.55214 2.0456 0z\" />\n                    </g>\n                  </g>\n                </svg>\n              </div>\n              <div className=\"ml-3 text-sm leading-6\">\n                <label\n                  htmlFor=\"checkbox-2\"\n                  className=\"text-sm font-medium text-white\"\n                >\n                  Remember me\n                </label>\n              </div>\n            </div>\n            <button className=\"w-full bg-[#ae7aff] p-3 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e]\">\n              Log in\n            </button>\n            <div className=\"mx-auto my-3 flex w-full max-w-md items-center justify-center gap-4 text-white\">\n              <hr className=\"w-full border-[0.1px] border-white\" />\n              <p className=\"text-sm\">OR</p>\n              <hr className=\"w-full border-[0.1px] border-white\" />\n            </div>\n            <button className=\"inline-flex w-full items-center justify-center gap-3 border-[1px] border-white bg-black p-3 text-center text-white\">\n              <svg\n                xmlns=\"http://www.w3.org/2000/svg\"\n                height=\"24\"\n                viewBox=\"0 0 24 24\"\n                width=\"24\"\n              >\n                <path\n                  d=\"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z\"\n                  fill=\"#4285F4\"\n                />\n                <path\n                  d=\"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z\"\n                  fill=\"#34A853\"\n                />\n                <path\n                  d=\"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z\"\n                  fill=\"#FBBC05\"\n                />\n                <path\n                  d=\"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z\"\n                  fill=\"#EA4335\"\n                />\n                <path d=\"M1 1h22v22H1z\" fill=\"none\" />\n              </svg>{\" \"}\n              Login with Google\n            </button>\n            <button className=\"inline-flex w-full items-center justify-center gap-3 border-[1px] border-white bg-black p-3 text-center text-white\">\n              <svg\n                xmlns=\"http://www.w3.org/2000/svg\"\n                width=\"24\"\n                height=\"24\"\n                viewBox=\"0 0 24 24\"\n                fill=\"#ffffff\"\n              >\n                <path d=\"M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z\" />\n              </svg>\n              Login with GitHub\n            </button>\n            <p className=\"text-sm font-light text-white\">\n              Don&apos;t have an account?{\" \"}\n              <span className=\"cursor-pointer font-bold hover:underline\">\n                Create an account\n              </span>\n            </p>\n          </div>\n        </div>\n      </div>\n    </div>\n  );\n};\n\nexport default SocialLogin;\n"
  },
  {
    "path": "src/components/templates/chat/register.jsx",
    "content": "import { PlusIcon } from \"@heroicons/react/24/outline\";\n\nconst SocialRegister = () => {\n  return (\n    <div className=\"min-h-screen bg-[#121212]\">\n      <header className=\"fixed top-0 z-10 mx-auto flex w-full max-w-full items-center justify-between border-b-[1px] border-b-slate-300 bg-[#121212] p-4 text-white lg:px-10\">\n        <h1 className=\"text-xl font-extrabold md:text-3xl\">Register</h1>\n        <div className=\"flex w-max flex-shrink-0 items-center justify-end gap-6\">\n          <button className=\"hidden w-max items-center justify-center border-[1px] border-white p-3 text-center font-bold text-white md:inline-flex\">\n            Login\n          </button>\n        </div>\n      </header>\n      <div className=\"mx-auto flex w-full items-stretch justify-between gap-10\">\n        <div className=\"fixed left-0 top-0 hidden h-screen w-0 bg-gradient-to-r from-indigo-500 via-purple-500 to-pink-500 md:block md:w-1/3\"></div>\n        <div className=\"ml-auto mt-28 flex w-full flex-col items-start justify-start p-6 sm:max-w-4xl md:w-2/3 lg:px-10\">\n          <div className=\"w-full text-center\">\n            <h1 className=\"mb-3 text-5xl font-extrabold text-white\">\n              Register\n            </h1>\n            <p className=\"text-xs text-slate-400\">\n              Before we chat, please create your account\n            </p>\n          </div>\n          <div className=\"my-14 flex w-full flex-col items-start justify-start gap-4\">\n            <div className=\"flex w-full items-center justify-center\">\n              <input id=\"avatar-input-1\" hidden type=\"file\" />\n              <label\n                htmlFor=\"avatar-input-1\"\n                className=\"relative flex aspect-square h-24 w-24 cursor-pointer items-center justify-center overflow-visible rounded-full border-4 border-[#ae7aff] p-1\"\n              >\n                <div className=\"flex h-full w-full items-center justify-center rounded-full\">\n                  <PlusIcon className=\"h-8 w-8 text-white\" />\n                </div>\n                <span className=\"absolute bottom-0 right-0 flex aspect-square h-5 w-5 items-center justify-center rounded-full bg-[#ae7aff] p-1\">\n                  <PlusIcon className=\"h-3 w-3 text-black\" />\n                </span>\n              </label>\n            </div>\n\n            <div className=\"mt-10 flex w-full flex-col items-center justify-between gap-4 md:flex-row\">\n              <div className=\"flex w-full flex-col items-start justify-start gap-2\">\n                <label className=\"text-xs text-slate-200\">First name</label>\n                <input\n                  placeholder=\"Enter a first name...\"\n                  autoComplete=\"false\"\n                  className=\"w-full border-[1px] border-white bg-black p-4 text-white placeholder:text-gray-500\"\n                />\n              </div>\n              <div className=\"flex w-full flex-col items-start justify-start gap-2\">\n                <label className=\"text-xs text-slate-200\">Last name</label>\n                <input\n                  placeholder=\"Enter a last name...\"\n                  autoComplete=\"false\"\n                  className=\"w-full border-[1px] border-white bg-black p-4 text-white placeholder:text-gray-500\"\n                />\n              </div>\n            </div>\n\n            <div className=\"flex w-full flex-col items-start justify-start gap-2\">\n              <label className=\"text-xs text-slate-200\">Username</label>\n              <input\n                placeholder=\"Enter a username...\"\n                autoComplete=\"false\"\n                className=\"w-full border-[1px] border-white bg-black p-4 text-white placeholder:text-gray-500\"\n              />\n            </div>\n\n            <div className=\"flex w-full flex-col items-start justify-start gap-2\">\n              <label className=\"text-xs text-slate-200\">Email</label>\n              <input\n                placeholder=\"Enter an email...\"\n                autoComplete=\"false\"\n                className=\"w-full border-[1px] border-white bg-black p-4 text-white placeholder:text-gray-500\"\n              />\n            </div>\n            <div className=\"flex w-full flex-col items-start justify-start gap-2\">\n              <label className=\"text-xs text-slate-200\">Password</label>\n              <input\n                placeholder=\"Enter a password...\"\n                autoComplete=\"false\"\n                type=\"password\"\n                className=\"w-full border-[1px] border-white bg-black p-4 text-white placeholder:text-gray-500\"\n              />\n            </div>\n\n            <div className=\"mr-4 flex items-center\">\n              <input\n                type=\"checkbox\"\n                id=\"checkbox-2\"\n                name=\"checkbox-2\"\n                className=\"absolute h-6 w-6 cursor-pointer opacity-0 [&:checked+div]:bg-green-500 [&:checked+div_svg]:block\"\n              />\n              <div className=\"mr-2 flex h-6 w-6 flex-shrink-0 items-center justify-center border-[1px] border-white bg-transparent focus-within:border-white\">\n                <svg\n                  className=\"pointer-events-none hidden h-3 w-3 fill-current text-white\"\n                  version=\"1.1\"\n                  viewBox=\"0 0 17 12\"\n                  xmlns=\"http://www.w3.org/2000/svg\"\n                >\n                  <g fill=\"none\" fillRule=\"evenodd\">\n                    <g\n                      transform=\"translate(-9 -11)\"\n                      fill=\"#000000\"\n                      fillRule=\"nonzero\"\n                    >\n                      <path d=\"m25.576 11.414c0.56558 0.55188 0.56558 1.4439 0 1.9961l-9.404 9.176c-0.28213 0.27529-0.65247 0.41385-1.0228 0.41385-0.37034 0-0.74068-0.13855-1.0228-0.41385l-4.7019-4.588c-0.56584-0.55188-0.56584-1.4442 0-1.9961 0.56558-0.55214 1.4798-0.55214 2.0456 0l3.679 3.5899 8.3812-8.1779c0.56558-0.55214 1.4798-0.55214 2.0456 0z\" />\n                    </g>\n                  </g>\n                </svg>\n              </div>\n              <div className=\"ml-3 text-sm leading-6\">\n                <label\n                  htmlFor=\"checkbox-2\"\n                  className=\"text-sm font-medium text-white\"\n                >\n                  I agree to the terms and conditions\n                </label>\n              </div>\n            </div>\n            <button className=\"w-full bg-[#ae7aff] p-3 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e]\">\n              Create Account\n            </button>\n            <p className=\"text-sm font-light text-white\">\n              Already registered?{\" \"}\n              <span className=\"cursor-pointer font-bold hover:underline\">\n                Sign in to your account\n              </span>\n            </p>\n          </div>\n        </div>\n      </div>\n    </div>\n  );\n};\n\nexport default SocialRegister;\n"
  },
  {
    "path": "src/components/templates/social-media/bookmark-posts.jsx",
    "content": "import React from \"react\";\nimport {\n  BellIcon,\n  BookmarkIcon,\n  EllipsisVerticalIcon,\n  HeartIcon,\n  LinkIcon,\n  MagnifyingGlassIcon,\n} from \"@heroicons/react/24/outline\";\nimport {\n  ChatBubbleOvalLeftEllipsisIcon,\n  PlusCircleIcon,\n  ShareIcon,\n} from \"@heroicons/react/24/solid\";\n\nconst posts = [\n  {\n    id: 1,\n    authorImage:\n      \"https://images.pexels.com/photos/18264716/pexels-photo-18264716.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    authorName: \"Mystical Wanderer\",\n    createdOn: \"15 minutes ago\",\n    text: \"Uncovering ancient secrets and mystical wonders. The journey is the destination. 🔮🌟 #MythologyQuest\",\n    images: [],\n    likeCount: 46,\n    commentCount: 13,\n    bookmarked: true,\n    liked: true,\n  },\n  {\n    id: 2,\n    authorImage:\n      \"https://images.pexels.com/photos/13847596/pexels-photo-13847596.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    authorName: \"Aqua Explorer\",\n    createdOn: \"1 hour ago\",\n    text: \"Swimming with the dolphins today, and it was magical! 🐬🌊 #OceanAdventure\",\n    images: [\n      \"https://images.pexels.com/photos/18107024/pexels-photo-18107024/free-photo-of-an-old-city-view.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    ],\n    likeCount: 102,\n    commentCount: 18,\n    bookmarked: true,\n    liked: false,\n  },\n  {\n    id: 3,\n    authorImage:\n      \"https://images.pexels.com/photos/7775637/pexels-photo-7775637.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    authorName: \"Solar Flare \",\n    createdOn: \"59 minutes ago\",\n    text: \"Harnessing the power of the sun for a brighter future. ☀️🔋 #SolarEnergy\",\n    images: [\n      \"https://images.pexels.com/photos/18107025/pexels-photo-18107025/free-photo-of-man-reading-newspaper.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n      \"https://images.pexels.com/photos/18148933/pexels-photo-18148933/free-photo-of-city-road-man-people.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n      \"https://images.pexels.com/photos/18148937/pexels-photo-18148937/free-photo-of-city-road-traffic-landscape.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    ],\n    likeCount: 802,\n    commentCount: 99,\n    bookmarked: true,\n    liked: true,\n  },\n  {\n    id: 4,\n    authorImage:\n      \"https://images.pexels.com/photos/7775642/pexels-photo-7775642.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    authorName: \"Aurora Starlight\",\n    createdOn: \"17 hours ago\",\n    text: \"Embracing the lunar magic tonight. The full moon is my muse. 🌕🌌 #MoonlightDreams\",\n    images: [],\n    likeCount: 420,\n    commentCount: 20,\n    bookmarked: true,\n    liked: false,\n    link: {\n      image:\n        \"https://images.pexels.com/photos/7775642/pexels-photo-7775642.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n      title: \"Aurora Starlight\",\n      caption: \"Digital artist | Creative mind | Color magician 🎨🖌️🖼️\",\n      url: \"https://www.aurorastarry.com/\",\n    },\n  },\n  {\n    id: 5,\n    authorImage:\n      \"https://images.pexels.com/photos/3532553/pexels-photo-3532553.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    authorName: \"Nova Sparks\",\n    createdOn: \"1 day ago\",\n    text: \"💡 Tech Poll: Which emerging technology excites you the most?\",\n    images: [],\n    likeCount: 207,\n    commentCount: 63,\n    bookmarked: true,\n    liked: false,\n    poll: [\n      {\n        name: \"Artificial Intelligence\",\n      },\n      {\n        name: \"Virtual Reality\",\n      },\n      {\n        name: \"Quantum Computing\",\n      },\n      {\n        name: \"5G Connectivity\",\n      },\n    ],\n  },\n  {\n    id: 6,\n    authorImage:\n      \"https://images.pexels.com/photos/569314/pexels-photo-569314.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    authorName: \"Zen Garden\",\n    createdOn: \"7 days ago\",\n    text: \"🧘‍♂️ Mindfulness Poll: Which mindfulness practice resonates with you the most?\",\n    images: [],\n    likeCount: 97,\n    commentCount: 13,\n    liked: true,\n    bookmarked: true,\n    poll: [\n      {\n        name: \"Meditation\",\n        votePercentage: 30,\n      },\n      {\n        name: \"Yoga\",\n        selected: true,\n        votePercentage: 33,\n      },\n      {\n        name: \"Deep Breathing\",\n        votePercentage: 27,\n      },\n      {\n        name: \"Tai Chi\",\n        votePercentage: 20,\n      },\n    ],\n  },\n  {\n    id: 7,\n    authorImage:\n      \"https://images.pexels.com/photos/1739942/pexels-photo-1739942.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    authorName: \"Pixel Painter\",\n    createdOn: \"1 months ago\",\n    text: \"🎨 Art Poll: What's your preferred art medium for creating masterpieces?\",\n    images: [],\n    likeCount: 99,\n    commentCount: 13,\n    bookmarked: true,\n    liked: false,\n    poll: [\n      {\n        name: \"Acrylic Paint\",\n        votePercentage: 20,\n      },\n      {\n        name: \"Watercolor\",\n        votePercentage: 19,\n      },\n      {\n        name: \"Digital Art\",\n        votePercentage: 18,\n      },\n      {\n        name: \"Charcoal Sketching\",\n        votePercentage: 43,\n      },\n    ],\n  },\n];\n\nconst BookmarkPosts = () => {\n  return (\n    <div className=\"min-h-screen bg-[#121212]\">\n      <header className=\"fixed top-0 z-10 mx-auto flex w-full max-w-full items-center justify-between border-b-[1px] border-b-slate-300 bg-[#121212] p-4 text-white lg:px-10\">\n        <h1 className=\"text-xl font-extrabold md:text-3xl\">My Profile</h1>\n        <div className=\"flex w-max flex-shrink-0 items-center justify-end gap-6\">\n          <span className=\"relative\">\n            <MagnifyingGlassIcon className=\"h-8 w-8\" />\n          </span>\n          <span className=\"relative\">\n            <BellIcon className=\"h-8 w-8 text-white\" />\n            <span className=\"absolute right-1 top-0 flex h-2.5 w-2.5 items-center justify-center rounded-full bg-green-500 p-1 text-white\"></span>\n          </span>\n          <button className=\"hidden w-max items-center justify-center border-[1px] border-white p-3 text-center font-bold text-white md:inline-flex\">\n            <PlusCircleIcon className=\"mr-2 h-5 w-5\" /> Create new\n          </button>\n        </div>\n      </header>\n      <div className=\"mt-[65px] grid grid-cols-12 gap-4 pb-8 pt-0 sm:px-4 sm:pt-8 md:mt-[83px] lg:px-10\">\n        {/* Empty */}\n        <aside className=\"col-span-12 text-white md:col-span-5 lg:col-span-4 xl:col-span-3\">\n          {/* Profile Card */}\n          <div className=\"sticky top-[100px] border-b border-white p-4 sm:border\">\n            <img\n              className=\"mb-3 flex aspect-square h-16 w-16 rounded-full border-2 border-[#ae7aff] object-cover\"\n              src=\"https://images.pexels.com/photos/7775642/pexels-photo-7775642.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\"\n              alt=\"avatar\"\n            />\n\n            <h2 className=\"mb-1 font-bold\">Aurora Starlight</h2>\n            <p className=\"text-sm\">\n              Night owl | Moon enthusiast | Wanderlust 🌕🌙🌎\n            </p>\n\n            <hr className=\"my-4 h-[1px] w-full\" />\n            <div className=\"mb-4\">\n              <h3 className=\"mb-1 font-bold\">Short Bio</h3>\n              <p className=\"text-sm\">\n                Immersed in the enchanting world of the night, captivated by the\n                moon&apos;s allure, and constantly seeking new adventures around\n                the globe. 🌕🌙🌎\n              </p>\n            </div>\n            <div className=\"mb-4 text-sm\">\n              <h3 className=\"mb-1 font-bold\">Public link</h3>\n              <button className=\"block text-[#ae7aff] hover:underline\">\n                starryaurora@gmail.com\n              </button>\n              <button className=\"block break-all text-[#ae7aff] hover:underline\">\n                https://www.aurorastarry.com/\n              </button>\n            </div>\n            <p className=\"mb-4 flex gap-x-4\">\n              <span className=\"inline-block\">\n                <span className=\"font-bold\">13.5k&nbsp;</span>\n                <span className=\"text-sm text-gray-400\">Followers</span>\n              </span>\n              <span className=\"inline-block\">\n                <span className=\"font-bold\">204&nbsp;</span>\n                <span className=\"text-sm text-gray-400\">Following</span>\n              </span>\n            </p>\n            <button className=\"inline-flex w-max items-center bg-[#ae7aff] px-4 py-2 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e]\">\n              Edit Profile\n            </button>\n          </div>\n        </aside>\n\n        <section className=\"col-span-12 text-white md:col-span-7 lg:col-span-5 xl:col-span-6\">\n          <div className=\"sticky top-[82px] z-10 mt-[1px] bg-[#121212] pb-4 before:absolute before:inset-x-0 before:bottom-full before:h-[17px] before:bg-[#121212] md:top-[100px] md:mt-0\">\n            <ul className=\"no-scrollbar flex w-full overflow-x-auto px-4 sm:px-0\">\n              <li className=\"mr-2 inline-block shrink-0\">\n                <button className=\"inline-block px-6 py-1.5 hover:bg-[#2c2c2c]\">\n                  Posts\n                </button>\n              </li>\n              <li className=\"mr-2 inline-block shrink-0\">\n                <button className=\"inline-block px-6 py-1.5 hover:bg-[#2c2c2c]\">\n                  Edit profile\n                </button>\n              </li>\n              <li className=\"mr-2 inline-block shrink-0\">\n                <button className=\"inline-block px-6 py-1.5 hover:bg-[#2c2c2c]\">\n                  Change password\n                </button>\n              </li>\n              <li className=\"mr-2 inline-block shrink-0\">\n                <button className=\"inline-block bg-[#2c2c2c] px-6 py-1.5\">\n                  Bookmarked\n                </button>\n              </li>\n            </ul>\n          </div>\n          {/* Post Lists */}\n          {posts.map((post) => (\n            <div\n              key={post.id}\n              className=\"relative mb-2 w-full last:mb-0 sm:mb-4\"\n            >\n              <div className=\"flex border-b border-t border-white p-4 text-white sm:border-l sm:border-r\">\n                {/* Author Profile */}\n                <div className=\"h-10 w-10 shrink-0 sm:h-12 sm:w-12\">\n                  <img\n                    src={post.authorImage}\n                    alt={post.authorName}\n                    className=\"h-full w-full rounded-full object-cover\"\n                  />\n                </div>\n                {/* Center-Right Content */}\n                <div className=\"pl-4 pt-1\">\n                  {/* Post Metadata */}\n                  <div className=\"mb-2 flex items-center gap-x-2\">\n                    <div className=\"w-full\">\n                      <h2 className=\"inline-block font-bold\">\n                        {post.authorName}\n                      </h2>\n                      <span className=\"ml-2 inline-block text-sm text-gray-400\">\n                        {post.createdOn}\n                      </span>\n                    </div>\n                    <button className=\"ml-auto shrink-0 hover:text-[#ae7aff]\">\n                      <EllipsisVerticalIcon className=\"h-5 w-5\" />\n                    </button>\n                  </div>\n                  {/* Post Text */}\n                  <p className=\"mb-4 text-sm sm:text-base\">{post.text}</p>\n                  {/* Post Images */}\n                  {post.images.length > 0 && (\n                    <div className=\"mb-4 grid grid-cols-[repeat(auto-fit,_minmax(200px,_1fr))] gap-4\">\n                      {post.images.map((image, i) => (\n                        <img\n                          key={image}\n                          src={image}\n                          alt={`attachment-${i}`}\n                          className=\"rounded-md\"\n                        />\n                      ))}\n                    </div>\n                  )}\n                  {/* Link Preview */}\n                  {post.link && (\n                    <div className=\"group mb-4 border opacity-95 hover:opacity-100\">\n                      <div className=\"max-h-52 overflow-hidden\">\n                        <img\n                          src={post.link.image}\n                          alt={post.link.title}\n                          className=\"object-cover\"\n                        />\n                      </div>\n                      {/* Link Content */}\n                      <div className=\"p-4\">\n                        <h3 className=\"mb-2 font-bold\">{post.link.title}</h3>\n                        <p className=\"mb-3 text-sm\">{post.link.caption}</p>\n                        <span className=\"inline-flex items-center gap-x-2 break-all text-sm text-[#ae7aff] no-underline group-hover:underline\">\n                          <LinkIcon className=\"h-4 w-4 shrink-0\" />\n                          {post.link.url}\n                        </span>\n                      </div>\n                    </div>\n                  )}\n                  {/* Polls */}\n                  {post.poll &&\n                    post.poll.map((option) => (\n                      <button\n                        key={option?.name}\n                        className={`relative z-[1] mb-4 inline-flex w-full items-center gap-x-4 border p-4 before:absolute before:inset-y-0 before:left-0 before:z-[-1] before:w-[var(--data-vote-percentage)] last:mb-0 ${\n                          option?.votePercentage && option?.votePercentage >= 0\n                            ? \"\"\n                            : \"hover:bg-[#ae7aff] hover:text-black focus:border-[#ae7aff] focus:bg-[#ae7aff] focus:text-black\"\n                        } ${\n                          option?.selected\n                            ? \"before:bg-[#ae7aff]\"\n                            : \"before:bg-gray-400/10\"\n                        }\n              `}\n                        disabled={Boolean(option?.votePercentage)}\n                        style={{\n                          \"--data-vote-percentage\": `${\n                            option?.votePercentage || 0\n                          }%`,\n                        }}\n                      >\n                        {option?.name}{\" \"}\n                        {option?.votePercentage && (\n                          <span className=\"ml-auto shrink-0 text-sm\">\n                            {option.votePercentage}%\n                          </span>\n                        )}\n                      </button>\n                    ))}\n                  {/* Post Actions Buttons */}\n                  <div className=\"flex gap-x-4\">\n                    {/* Like Button */}\n                    <button\n                      className={`group inline-flex items-center gap-x-1 outline-none after:content-[attr(data-like-count)] focus:after:content-[attr(data-like-count-alt)] ${\n                        post.liked\n                          ? \"text-[#ae7aff] focus:text-inherit\"\n                          : \"hover:text-[#ae7aff] focus:text-[#ae7aff]\"\n                      }`}\n                      data-like-count={post.likeCount}\n                      data-like-count-alt={\n                        post.liked ? post.likeCount - 1 : post.likeCount + 1\n                      }\n                    >\n                      <HeartIcon\n                        className={`h-5 w-5 ${\n                          post.liked\n                            ? \"fill-[#ae7aff] group-focus:fill-none\"\n                            : \"group-focus:fill-[#ae7aff]\"\n                        }`}\n                      />\n                    </button>\n                    {/* Comment Button */}\n                    <button className=\"inline-flex items-center gap-x-1 outline-none hover:text-[#ae7aff]\">\n                      <ChatBubbleOvalLeftEllipsisIcon className=\"h-5 w-5\" />\n                      <span>{post.commentCount}</span>\n                    </button>\n                    {/* Share and Bookmarked Button */}\n                    <div className=\"ml-auto\">\n                      <button className=\"mr-2 inline-flex items-center gap-x-1 outline-none hover:text-[#ae7aff]\">\n                        <ShareIcon className=\"h-5 w-5\" />\n                      </button>\n                      <button\n                        className={`group inline-flex items-center gap-x-1 outline-none hover:text-[#ae7aff] ${\n                          post.bookmarked\n                            ? \"focus:text-white\"\n                            : \"focus:text-[#ae7aff]\"\n                        }`}\n                      >\n                        <BookmarkIcon\n                          className={`h-5 w-5 ${\n                            post.bookmarked\n                              ? \"fill-[#ae7aff] text-[#ae7aff] group-focus:fill-none group-focus:text-inherit\"\n                              : \"group-focus:fill-[#ae7aff]\"\n                          }`}\n                        />\n                      </button>\n                    </div>\n                  </div>\n                </div>\n              </div>\n            </div>\n          ))}\n        </section>\n        {/* Trending Topics */}\n        <aside className=\"hidden text-white lg:col-span-3 lg:block\">\n          <div className=\"sticky top-[100px] border p-4\">\n            <h2 className=\"mb-4 font-bold\"># Trending Hashtags</h2>\n            <ul className=\"list-disc pl-4\">\n              {[\"javascript\", \"typescript\", \"java\", \"python\", \"golang\"].map(\n                (hashtag) => (\n                  <li key={hashtag}>\n                    <button className=\"hover:text-[#ae7aff]\">#{hashtag}</button>\n                  </li>\n                ),\n              )}\n            </ul>\n          </div>\n        </aside>\n      </div>\n    </div>\n  );\n};\n\nexport default BookmarkPosts;\n"
  },
  {
    "path": "src/components/templates/social-media/change-password.jsx",
    "content": "import React from \"react\";\nimport { BellIcon, MagnifyingGlassIcon } from \"@heroicons/react/24/outline\";\nimport { PlusCircleIcon } from \"@heroicons/react/24/solid\";\n\nconst ChangePassword = () => {\n  return (\n    <div className=\"min-h-screen bg-[#121212]\">\n      <header className=\"fixed top-0 z-10 mx-auto flex w-full max-w-full items-center justify-between border-b-[1px] border-b-slate-300 bg-[#121212] p-4 text-white lg:px-10\">\n        <h1 className=\"text-xl font-extrabold md:text-3xl\">My Profile</h1>\n        <div className=\"flex w-max flex-shrink-0 items-center justify-end gap-6\">\n          <span className=\"relative\">\n            <MagnifyingGlassIcon className=\"h-8 w-8\" />\n          </span>\n          <span className=\"relative\">\n            <BellIcon className=\"h-8 w-8 text-white\" />\n            <span className=\"absolute right-1 top-0 flex h-2.5 w-2.5 items-center justify-center rounded-full bg-green-500 p-1 text-white\"></span>\n          </span>\n          <button className=\"hidden w-max items-center justify-center border-[1px] border-white p-3 text-center font-bold text-white md:inline-flex\">\n            <PlusCircleIcon className=\"mr-2 h-5 w-5\" /> Create new\n          </button>\n        </div>\n      </header>\n      <div className=\"mt-[65px] grid grid-cols-12 gap-4 pb-8 pt-0 sm:px-4 sm:pt-8 md:mt-[83px] lg:px-10\">\n        {/* Empty */}\n        <aside className=\"col-span-12 text-white md:col-span-5 lg:col-span-4 xl:col-span-3\">\n          {/* Profile Card */}\n          <div className=\"sticky top-[100px] border-b border-white p-4 sm:border\">\n            <img\n              className=\"mb-3 flex aspect-square h-16 w-16 rounded-full border-2 border-[#ae7aff] object-cover\"\n              src=\"https://images.pexels.com/photos/7775642/pexels-photo-7775642.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\"\n              alt=\"avatar\"\n            />\n\n            <h2 className=\"mb-1 font-bold\">Aurora Starlight</h2>\n            <p className=\"text-sm\">\n              Night owl | Moon enthusiast | Wanderlust 🌕🌙🌎\n            </p>\n\n            <hr className=\"my-4 h-[1px] w-full\" />\n            <div className=\"mb-4\">\n              <h3 className=\"mb-1 font-bold\">Short Bio</h3>\n              <p className=\"text-sm\">\n                Immersed in the enchanting world of the night, captivated by the\n                moon&apos;s allure, and constantly seeking new adventures around\n                the globe. 🌕🌙🌎\n              </p>\n            </div>\n            <div className=\"mb-4 text-sm\">\n              <h3 className=\"mb-1 font-bold\">Public link</h3>\n              <button className=\"block text-[#ae7aff] hover:underline\">\n                starryaurora@gmail.com\n              </button>\n              <button className=\"block break-all text-[#ae7aff] hover:underline\">\n                https://www.aurorastarry.com/\n              </button>\n            </div>\n            <p className=\"mb-4 flex gap-x-4\">\n              <span className=\"inline-block\">\n                <span className=\"font-bold\">13.5k&nbsp;</span>\n                <span className=\"text-sm text-gray-400\">Followers</span>\n              </span>\n              <span className=\"inline-block\">\n                <span className=\"font-bold\">204&nbsp;</span>\n                <span className=\"text-sm text-gray-400\">Following</span>\n              </span>\n            </p>\n            <button className=\"inline-flex w-max items-center bg-[#ae7aff] px-4 py-2 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e]\">\n              Edit Profile\n            </button>\n          </div>\n        </aside>\n\n        <section className=\"col-span-12 text-white md:col-span-7 lg:col-span-5 xl:col-span-6\">\n          <div className=\"sticky top-[82px] z-10 mt-[1px] bg-[#121212] pb-4 before:absolute before:inset-x-0 before:bottom-full before:h-[17px] before:bg-[#121212] md:top-[100px] md:mt-0\">\n            <ul className=\"no-scrollbar flex w-full overflow-x-auto px-4 sm:px-0\">\n              <li className=\"mr-2 inline-block shrink-0\">\n                <button className=\"inline-block px-6 py-1.5 hover:bg-[#2c2c2c]\">\n                  Posts\n                </button>\n              </li>\n              <li className=\"mr-2 inline-block shrink-0\">\n                <button className=\"inline-block px-6 py-1.5 hover:bg-[#2c2c2c]\">\n                  Edit profile\n                </button>\n              </li>\n              <li className=\"mr-2 inline-block shrink-0\">\n                <button className=\"inline-block bg-[#2c2c2c] px-6 py-1.5\">\n                  Change password\n                </button>\n              </li>\n              <li className=\"mr-2 inline-block shrink-0\">\n                <button className=\"inline-block px-6 py-1.5 hover:bg-[#2c2c2c]\">\n                  Bookmarked\n                </button>\n              </li>\n            </ul>\n          </div>\n          {/* Change Password Form */}\n          <div className=\"mb-4 mt-8 flex flex-wrap gap-y-4 p-4 md:p-0\">\n            <div className=\"flex w-full flex-col items-start justify-start gap-2\">\n              <label className=\"text-xs text-slate-200\">Old password</label>\n              <input\n                placeholder=\"Enter old password\"\n                autoComplete=\"false\"\n                className=\"w-full border-[1px] border-white bg-black p-4 text-white placeholder:text-gray-500\"\n                type=\"password\"\n              />\n            </div>\n            <div className=\"flex w-full flex-col items-start justify-start gap-2\">\n              <label className=\"text-xs text-slate-200\">New password</label>\n              <input\n                placeholder=\"Enter new password\"\n                autoComplete=\"false\"\n                className=\"w-full border-[1px] border-white bg-black p-4 text-white placeholder:text-gray-500\"\n                type=\"password\"\n              />\n            </div>\n            <div className=\"flex w-full flex-col items-start justify-start gap-2\">\n              <label className=\"text-xs text-slate-200\">Confirm password</label>\n              <input\n                placeholder=\"Enter confirm password\"\n                autoComplete=\"false\"\n                className=\"w-full border-[1px] border-white bg-black p-4 text-white placeholder:text-gray-500\"\n                type=\"password\"\n              />\n            </div>\n            <button className=\"w-full bg-[#ae7aff] p-3 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e]\">\n              Change Password\n            </button>\n          </div>\n        </section>\n        {/* Trending Topics */}\n        <aside className=\"hidden text-white lg:col-span-3 lg:block\">\n          <div className=\"sticky top-[100px] border p-4\">\n            <h2 className=\"mb-4 font-bold\"># Trending Hashtags</h2>\n            <ul className=\"list-disc pl-4\">\n              {[\"javascript\", \"typescript\", \"java\", \"python\", \"golang\"].map(\n                (hashtag) => (\n                  <li key={hashtag}>\n                    <button className=\"hover:text-[#ae7aff]\">#{hashtag}</button>\n                  </li>\n                ),\n              )}\n            </ul>\n          </div>\n        </aside>\n      </div>\n    </div>\n  );\n};\n\nexport default ChangePassword;\n"
  },
  {
    "path": "src/components/templates/social-media/edit-profile.jsx",
    "content": "import React from \"react\";\nimport { BellIcon, MagnifyingGlassIcon } from \"@heroicons/react/24/outline\";\nimport { PlusCircleIcon } from \"@heroicons/react/24/solid\";\nimport { PencilIcon } from \"@heroicons/react/20/solid\";\n\nconst EditProfile = () => {\n  return (\n    <div className=\"min-h-screen bg-[#121212]\">\n      <header className=\"fixed top-0 z-10 mx-auto flex w-full max-w-full items-center justify-between border-b-[1px] border-b-slate-300 bg-[#121212] p-4 text-white lg:px-10\">\n        <h1 className=\"text-xl font-extrabold md:text-3xl\">My Profile</h1>\n        <div className=\"flex w-max flex-shrink-0 items-center justify-end gap-6\">\n          <span className=\"relative\">\n            <MagnifyingGlassIcon className=\"h-8 w-8\" />\n          </span>\n          <span className=\"relative\">\n            <BellIcon className=\"h-8 w-8 text-white\" />\n            <span className=\"absolute right-1 top-0 flex h-2.5 w-2.5 items-center justify-center rounded-full bg-green-500 p-1 text-white\"></span>\n          </span>\n          <button className=\"hidden w-max items-center justify-center border-[1px] border-white p-3 text-center font-bold text-white md:inline-flex\">\n            <PlusCircleIcon className=\"mr-2 h-5 w-5\" /> Create new\n          </button>\n        </div>\n      </header>\n      <div className=\"mt-[65px] grid grid-cols-12 gap-4 pb-8 pt-0 sm:px-4 sm:pt-8 md:mt-[83px] lg:px-10\">\n        {/* Empty */}\n        <aside className=\"col-span-12 text-white md:col-span-5 lg:col-span-4 xl:col-span-3\">\n          {/* Profile Card */}\n          <div className=\"sticky top-[100px] border-b border-white p-4 sm:border\">\n            <img\n              className=\"mb-3 flex aspect-square h-16 w-16 rounded-full border-2 border-[#ae7aff] object-cover\"\n              src=\"https://images.pexels.com/photos/7775642/pexels-photo-7775642.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\"\n              alt=\"avatar\"\n            />\n\n            <h2 className=\"mb-1 font-bold\">Aurora Starlight</h2>\n            <p className=\"text-sm\">\n              Night owl | Moon enthusiast | Wanderlust 🌕🌙🌎\n            </p>\n\n            <hr className=\"my-4 h-[1px] w-full\" />\n            <div className=\"mb-4\">\n              <h3 className=\"mb-1 font-bold\">Short Bio</h3>\n              <p className=\"text-sm\">\n                Immersed in the enchanting world of the night, captivated by the\n                moon&apos;s allure, and constantly seeking new adventures around\n                the globe. 🌕🌙🌎\n              </p>\n            </div>\n            <div className=\"mb-4 text-sm\">\n              <h3 className=\"mb-1 font-bold\">Public link</h3>\n              <button className=\"block text-[#ae7aff] hover:underline\">\n                starryaurora@gmail.com\n              </button>\n              <button className=\"block break-all text-[#ae7aff] hover:underline\">\n                https://www.aurorastarry.com/\n              </button>\n            </div>\n            <p className=\"mb-4 flex gap-x-4\">\n              <span className=\"inline-block\">\n                <span className=\"font-bold\">13.5k&nbsp;</span>\n                <span className=\"text-sm text-gray-400\">Followers</span>\n              </span>\n              <span className=\"inline-block\">\n                <span className=\"font-bold\">204&nbsp;</span>\n                <span className=\"text-sm text-gray-400\">Following</span>\n              </span>\n            </p>\n            <button className=\"inline-flex w-max items-center bg-[#ae7aff] px-4 py-2 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e]\">\n              Edit Profile\n            </button>\n          </div>\n        </aside>\n\n        <section className=\"col-span-12 text-white md:col-span-7 lg:col-span-5 xl:col-span-6\">\n          <div className=\"sticky top-[82px] z-10 mt-[1px] bg-[#121212] pb-4 before:absolute before:inset-x-0 before:bottom-full before:h-[17px] before:bg-[#121212] md:top-[100px] md:mt-0\">\n            <ul className=\"no-scrollbar flex w-full overflow-x-auto px-4 sm:px-0\">\n              <li className=\"mr-2 inline-block shrink-0\">\n                <button className=\"inline-block px-6 py-1.5 hover:bg-[#2c2c2c]\">\n                  Posts\n                </button>\n              </li>\n              <li className=\"mr-2 inline-block shrink-0\">\n                <button className=\"inline-block bg-[#2c2c2c] px-6 py-1.5\">\n                  Edit profile\n                </button>\n              </li>\n              <li className=\"mr-2 inline-block shrink-0\">\n                <button className=\"inline-block px-6 py-1.5 hover:bg-[#2c2c2c]\">\n                  Change password\n                </button>\n              </li>\n              <li className=\"mr-2 inline-block shrink-0\">\n                <button className=\"inline-block px-6 py-1.5 hover:bg-[#2c2c2c]\">\n                  Bookmarked\n                </button>\n              </li>\n            </ul>\n          </div>\n          {/* Edit profile Form */}\n          <div className=\"mb-4 mt-8 flex flex-wrap gap-y-4 p-4 md:p-0\">\n            <div className=\"flex w-full items-center justify-center\">\n              <input id=\"avatar-input-1\" hidden type=\"file\" />\n              <label\n                htmlFor=\"avatar-input-1\"\n                className=\"relative flex aspect-square h-24 w-24 cursor-pointer items-center justify-center overflow-visible rounded-full border-4 border-[#ae7aff] p-1\"\n              >\n                <img\n                  alt=\"avatar-inp\"\n                  src=\"https://images.pexels.com/photos/7775642/pexels-photo-7775642.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\"\n                  className=\"h-full w-full rounded-full object-cover\"\n                />\n                <span className=\"absolute bottom-0 right-0 flex aspect-square h-5 w-5 items-center justify-center rounded-full bg-[#ae7aff] p-1\">\n                  <PencilIcon className=\"h-3 w-3 text-black\" />\n                </span>\n              </label>\n            </div>\n            <div className=\"flex w-full flex-col items-start justify-start gap-2 xl:w-1/2 xl:pr-2\">\n              <label className=\"text-xs text-slate-200\">First name</label>\n              <input\n                placeholder=\"Enter first name\"\n                autoComplete=\"false\"\n                className=\"w-full border-[1px] border-white bg-black p-4 text-white placeholder:text-gray-500\"\n                defaultValue=\"Aurora\"\n              />\n            </div>\n            <div className=\"flex w-full flex-col items-start justify-start gap-2 xl:w-1/2 xl:pl-2\">\n              <label className=\"text-xs text-slate-200\">Last name</label>\n              <input\n                placeholder=\"Enter last name\"\n                autoComplete=\"false\"\n                className=\"w-full border-[1px] border-white bg-black p-4 text-white placeholder:text-gray-500\"\n                defaultValue=\"Starlight\"\n              />\n            </div>\n            <div className=\"flex w-full flex-col items-start justify-start gap-2\">\n              <label className=\"text-xs text-slate-200\">Email</label>\n              <input\n                placeholder=\"Enter email\"\n                autoComplete=\"false\"\n                className=\"w-full border-[1px] border-white bg-black p-4 text-white placeholder:text-gray-500\"\n                defaultValue=\"starryaurora@gmail.com\"\n              />\n            </div>\n            <div className=\"flex w-full flex-col items-start justify-start gap-2\">\n              <label className=\"text-xs text-slate-200\">Username</label>\n              <input\n                placeholder=\"Enter username\"\n                autoComplete=\"false\"\n                className=\"w-full border-[1px] border-white bg-black p-4 text-white placeholder:text-gray-500\"\n                defaultValue=\"starryaurora\"\n              />\n            </div>\n            <div className=\"flex w-full flex-col items-start justify-start gap-2\">\n              <label className=\"text-xs text-slate-200\">Tagline</label>\n              <input\n                placeholder=\"Enter tagline\"\n                autoComplete=\"false\"\n                className=\"w-full border-[1px] border-white bg-black p-4 text-white placeholder:text-gray-500\"\n                defaultValue=\"Night owl | Moon enthusiast | Wanderlust 🌕🌙🌎\"\n              />\n            </div>\n            <div className=\"flex w-full flex-col items-start justify-start gap-2\">\n              <label className=\"text-xs text-slate-200\">Short Bio</label>\n              <textarea\n                placeholder=\"Enter short bio\"\n                autoComplete=\"false\"\n                className=\"w-full resize-none border-[1px] border-white bg-black p-4 text-white placeholder:text-gray-500\"\n                defaultValue=\"Immersed in the enchanting world of the night, captivated by the\n                moon's allure, and constantly seeking new adventures around the\n                globe. 🌕🌙🌎\"\n              ></textarea>\n            </div>\n            <div className=\"flex w-full flex-col items-start justify-start gap-2\">\n              <label className=\"text-xs text-slate-200\">Portfolio URL</label>\n              <input\n                placeholder=\"Enter url\"\n                autoComplete=\"false\"\n                className=\"w-full border-[1px] border-white bg-black p-4 text-white placeholder:text-gray-500\"\n                defaultValue=\"https://www.aurorastarry.com/\"\n                type=\"url\"\n              />\n            </div>\n            <button className=\"w-full bg-[#ae7aff] p-3 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e]\">\n              Edit profile\n            </button>\n          </div>\n        </section>\n        {/* Trending Topics */}\n        <aside className=\"hidden text-white lg:col-span-3 lg:block\">\n          <div className=\"sticky top-[100px] border p-4\">\n            <h2 className=\"mb-4 font-bold\"># Trending Hashtags</h2>\n            <ul className=\"list-disc pl-4\">\n              {[\"javascript\", \"typescript\", \"java\", \"python\", \"golang\"].map(\n                (hashtag) => (\n                  <li key={hashtag}>\n                    <button className=\"hover:text-[#ae7aff]\">#{hashtag}</button>\n                  </li>\n                ),\n              )}\n            </ul>\n          </div>\n        </aside>\n      </div>\n    </div>\n  );\n};\n\nexport default EditProfile;\n"
  },
  {
    "path": "src/components/templates/social-media/index.ts",
    "content": "import PostListing from \"./post-listing\";\nimport PostDetail from \"./post-detail\";\nimport UserProfile from \"./user-profile\";\nimport MyProfile from \"./my-profile\";\nimport EditProfile from \"./edit-profile\";\nimport ChangePassword from \"./change-password\";\nimport BookmarkedPosts from \"./bookmark-posts\";\nimport Register from \"./register\";\nimport Login from \"./login\";\n\nconst SocialMedia = {\n  PostListing,\n  PostDetail,\n  UserProfile,\n  MyProfile,\n  EditProfile,\n  ChangePassword,\n  BookmarkedPosts,\n  Register,\n  Login,\n};\n\nexport default SocialMedia;\n"
  },
  {
    "path": "src/components/templates/social-media/login.jsx",
    "content": "const SocialLogin = () => {\n  return (\n    <div className=\"min-h-screen bg-[#121212]\">\n      <header className=\"fixed top-0 z-10 mx-auto flex w-full max-w-full items-center justify-between border-b-[1px] border-b-slate-300 bg-[#121212] p-4 text-white lg:px-10\">\n        <h1 className=\"text-xl font-extrabold md:text-3xl\">Login</h1>\n        <div className=\"flex w-max flex-shrink-0 items-center justify-end gap-6\">\n          <button className=\"hidden w-max items-center justify-center border-[1px] border-white p-3 text-center font-bold text-white md:inline-flex\">\n            Register\n          </button>\n        </div>\n      </header>\n      <div className=\"mx-auto flex w-full items-stretch justify-between gap-10\">\n        <div className=\"mx-auto mt-28 flex w-full flex-col items-start justify-start p-6 sm:max-w-4xl lg:px-10\">\n          <div className=\"w-full text-center\">\n            <h1 className=\"mb-3 text-5xl font-extrabold text-white\">Login</h1>\n            <p className=\"text-xs text-slate-400\">\n              Login to access your account\n            </p>\n          </div>\n          <div className=\"my-14 flex w-full flex-col items-start justify-start gap-4\">\n            <div className=\"flex w-full flex-col items-start justify-start gap-2\">\n              <label className=\"text-xs text-slate-200\">\n                Username or email\n              </label>\n              <input\n                placeholder=\"Enter a username or email...\"\n                autoComplete=\"false\"\n                className=\"w-full border-[1px] border-white bg-black p-4 text-white placeholder:text-gray-500\"\n              />\n            </div>\n\n            <div className=\"flex w-full flex-col items-start justify-start gap-2\">\n              <label className=\"text-xs text-slate-200\">Password</label>\n              <input\n                placeholder=\"Enter a password...\"\n                autoComplete=\"false\"\n                type=\"password\"\n                className=\"w-full border-[1px] border-white bg-black p-4 text-white placeholder:text-gray-500\"\n              />\n            </div>\n\n            <div className=\"mr-4 flex items-center\">\n              <input\n                type=\"checkbox\"\n                id=\"checkbox-2\"\n                name=\"checkbox-2\"\n                className=\"absolute h-6 w-6 cursor-pointer opacity-0 [&:checked+div]:bg-green-500 [&:checked+div_svg]:block\"\n              />\n              <div className=\"mr-2 flex h-6 w-6 flex-shrink-0 items-center justify-center border-[1px] border-white bg-transparent focus-within:border-white\">\n                <svg\n                  className=\"pointer-events-none hidden h-3 w-3 fill-current text-white\"\n                  version=\"1.1\"\n                  viewBox=\"0 0 17 12\"\n                  xmlns=\"http://www.w3.org/2000/svg\"\n                >\n                  <g fill=\"none\" fillRule=\"evenodd\">\n                    <g\n                      transform=\"translate(-9 -11)\"\n                      fill=\"#000000\"\n                      fillRule=\"nonzero\"\n                    >\n                      <path d=\"m25.576 11.414c0.56558 0.55188 0.56558 1.4439 0 1.9961l-9.404 9.176c-0.28213 0.27529-0.65247 0.41385-1.0228 0.41385-0.37034 0-0.74068-0.13855-1.0228-0.41385l-4.7019-4.588c-0.56584-0.55188-0.56584-1.4442 0-1.9961 0.56558-0.55214 1.4798-0.55214 2.0456 0l3.679 3.5899 8.3812-8.1779c0.56558-0.55214 1.4798-0.55214 2.0456 0z\" />\n                    </g>\n                  </g>\n                </svg>\n              </div>\n              <div className=\"ml-3 text-sm leading-6\">\n                <label\n                  htmlFor=\"checkbox-2\"\n                  className=\"text-sm font-medium text-white\"\n                >\n                  Remember me\n                </label>\n              </div>\n            </div>\n            <button className=\"w-full bg-[#ae7aff] p-3 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e]\">\n              Log in\n            </button>\n            <div className=\"mx-auto my-3 flex w-full max-w-md items-center justify-center gap-4 text-white\">\n              <hr className=\"w-full border-[0.1px] border-white\" />\n              <p className=\"text-sm\">OR</p>\n              <hr className=\"w-full border-[0.1px] border-white\" />\n            </div>\n            <button className=\"inline-flex w-full items-center justify-center gap-3 border-[1px] border-white bg-black p-3 text-center text-white\">\n              <svg\n                xmlns=\"http://www.w3.org/2000/svg\"\n                height=\"24\"\n                viewBox=\"0 0 24 24\"\n                width=\"24\"\n              >\n                <path\n                  d=\"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z\"\n                  fill=\"#4285F4\"\n                />\n                <path\n                  d=\"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z\"\n                  fill=\"#34A853\"\n                />\n                <path\n                  d=\"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z\"\n                  fill=\"#FBBC05\"\n                />\n                <path\n                  d=\"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z\"\n                  fill=\"#EA4335\"\n                />\n                <path d=\"M1 1h22v22H1z\" fill=\"none\" />\n              </svg>{\" \"}\n              Login with Google\n            </button>\n            <button className=\"inline-flex w-full items-center justify-center gap-3 border-[1px] border-white bg-black p-3 text-center text-white\">\n              <svg\n                xmlns=\"http://www.w3.org/2000/svg\"\n                width=\"24\"\n                height=\"24\"\n                viewBox=\"0 0 24 24\"\n                fill=\"#ffffff\"\n              >\n                <path d=\"M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z\" />\n              </svg>\n              Login with GitHub\n            </button>\n            <p className=\"text-sm font-light text-white\">\n              Don&apos;t have an account?{\" \"}\n              <span className=\"cursor-pointer font-bold hover:underline\">\n                Create an account\n              </span>\n            </p>\n          </div>\n        </div>\n      </div>\n    </div>\n  );\n};\n\nexport default SocialLogin;\n"
  },
  {
    "path": "src/components/templates/social-media/my-profile.jsx",
    "content": "import React from \"react\";\nimport {\n  BellIcon,\n  BookmarkIcon,\n  EllipsisVerticalIcon,\n  HeartIcon,\n  LinkIcon,\n  MagnifyingGlassIcon,\n} from \"@heroicons/react/24/outline\";\nimport {\n  ChatBubbleOvalLeftEllipsisIcon,\n  PlusCircleIcon,\n  ShareIcon,\n} from \"@heroicons/react/24/solid\";\n\nconst posts = [\n  {\n    id: 1,\n    authorImage:\n      \"https://images.pexels.com/photos/7775642/pexels-photo-7775642.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    authorName: \"Aurora Starlight\",\n    createdOn: \"15 minutes ago\",\n    text: \"Uncovering ancient secrets and mystical wonders. The journey is the destination. 🔮🌟 #MythologyQuest\",\n    images: [],\n    likeCount: 46,\n    commentCount: 13,\n    bookmarked: false,\n    liked: true,\n  },\n  {\n    id: 2,\n    authorImage:\n      \"https://images.pexels.com/photos/7775642/pexels-photo-7775642.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    authorName: \"Aurora Starlight\",\n    createdOn: \"1 hour ago\",\n    text: \"Swimming with the dolphins today, and it was magical! 🐬🌊 #OceanAdventure\",\n    images: [\n      \"https://images.pexels.com/photos/18107024/pexels-photo-18107024/free-photo-of-an-old-city-view.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    ],\n    likeCount: 102,\n    commentCount: 18,\n    bookmarked: true,\n    liked: false,\n  },\n  {\n    id: 3,\n    authorImage:\n      \"https://images.pexels.com/photos/7775642/pexels-photo-7775642.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    authorName: \"Aurora Starlight\",\n    createdOn: \"59 minutes ago\",\n    text: \"Harnessing the power of the sun for a brighter future. ☀️🔋 #SolarEnergy\",\n    images: [\n      \"https://images.pexels.com/photos/18107025/pexels-photo-18107025/free-photo-of-man-reading-newspaper.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n      \"https://images.pexels.com/photos/18148933/pexels-photo-18148933/free-photo-of-city-road-man-people.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n      \"https://images.pexels.com/photos/18148937/pexels-photo-18148937/free-photo-of-city-road-traffic-landscape.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    ],\n    likeCount: 802,\n    commentCount: 99,\n    bookmarked: true,\n    liked: true,\n  },\n  {\n    id: 4,\n    authorImage:\n      \"https://images.pexels.com/photos/7775642/pexels-photo-7775642.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    authorName: \"Aurora Starlight\",\n    createdOn: \"17 hours ago\",\n    text: \"Embracing the lunar magic tonight. The full moon is my muse. 🌕🌌 #MoonlightDreams\",\n    images: [],\n    likeCount: 420,\n    commentCount: 20,\n    bookmarked: false,\n    liked: false,\n    link: {\n      image:\n        \"https://images.pexels.com/photos/7775642/pexels-photo-7775642.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n      title: \"Aurora Starlight\",\n      caption: \"Digital artist | Creative mind | Color magician 🎨🖌️🖼️\",\n      url: \"https://www.aurorastarry.com/\",\n    },\n  },\n  {\n    id: 5,\n    authorImage:\n      \"https://images.pexels.com/photos/7775642/pexels-photo-7775642.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    authorName: \"Aurora Starlight\",\n    createdOn: \"1 day ago\",\n    text: \"💡 Tech Poll: Which emerging technology excites you the most?\",\n    images: [],\n    likeCount: 207,\n    commentCount: 63,\n    bookmarked: false,\n    liked: false,\n    poll: [\n      {\n        name: \"Artificial Intelligence\",\n      },\n      {\n        name: \"Virtual Reality\",\n      },\n      {\n        name: \"Quantum Computing\",\n      },\n      {\n        name: \"5G Connectivity\",\n      },\n    ],\n  },\n  {\n    id: 6,\n    authorImage:\n      \"https://images.pexels.com/photos/7775642/pexels-photo-7775642.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    authorName: \"Aurora Starlight\",\n    createdOn: \"7 days ago\",\n    text: \"🧘‍♂️ Mindfulness Poll: Which mindfulness practice resonates with you the most?\",\n    images: [],\n    likeCount: 97,\n    commentCount: 13,\n    liked: true,\n    bookmarked: false,\n    poll: [\n      {\n        name: \"Meditation\",\n        votePercentage: 30,\n      },\n      {\n        name: \"Yoga\",\n        selected: true,\n        votePercentage: 33,\n      },\n      {\n        name: \"Deep Breathing\",\n        votePercentage: 27,\n      },\n      {\n        name: \"Tai Chi\",\n        votePercentage: 20,\n      },\n    ],\n  },\n  {\n    id: 7,\n    authorImage:\n      \"https://images.pexels.com/photos/7775642/pexels-photo-7775642.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    authorName: \"Aurora Starlight\",\n    createdOn: \"1 months ago\",\n    text: \"🎨 Art Poll: What's your preferred art medium for creating masterpieces?\",\n    images: [],\n    likeCount: 99,\n    commentCount: 13,\n    bookmarked: true,\n    liked: false,\n    poll: [\n      {\n        name: \"Acrylic Paint\",\n        votePercentage: 20,\n      },\n      {\n        name: \"Watercolor\",\n        votePercentage: 19,\n      },\n      {\n        name: \"Digital Art\",\n        votePercentage: 18,\n      },\n      {\n        name: \"Charcoal Sketching\",\n        votePercentage: 43,\n      },\n    ],\n  },\n];\n\nconst Profile = () => {\n  return (\n    <div className=\"min-h-screen bg-[#121212]\">\n      <header className=\"fixed top-0 z-10 mx-auto flex w-full max-w-full items-center justify-between border-b-[1px] border-b-slate-300 bg-[#121212] p-4 text-white lg:px-10\">\n        <h1 className=\"text-xl font-extrabold md:text-3xl\">My Profile</h1>\n        <div className=\"flex w-max flex-shrink-0 items-center justify-end gap-6\">\n          <span className=\"relative\">\n            <MagnifyingGlassIcon className=\"h-8 w-8\" />\n          </span>\n          <span className=\"relative\">\n            <BellIcon className=\"h-8 w-8 text-white\" />\n            <span className=\"absolute right-1 top-0 flex h-2.5 w-2.5 items-center justify-center rounded-full bg-green-500 p-1 text-white\"></span>\n          </span>\n          <button className=\"hidden w-max items-center justify-center border-[1px] border-white p-3 text-center font-bold text-white md:inline-flex\">\n            <PlusCircleIcon className=\"mr-2 h-5 w-5\" /> Create new\n          </button>\n        </div>\n      </header>\n      <div className=\"mt-[65px] grid grid-cols-12 gap-4 pb-8 pt-0 sm:px-4 sm:pt-8 md:mt-[83px] lg:px-10\">\n        {/* Empty */}\n        <aside className=\"col-span-12 text-white md:col-span-5 lg:col-span-4 xl:col-span-3\">\n          {/* Profile Card */}\n          <div className=\"sticky top-[100px] border-b border-white p-4 sm:border\">\n            <img\n              className=\"mb-3 flex aspect-square h-16 w-16 rounded-full border-2 border-[#ae7aff] object-cover\"\n              src=\"https://images.pexels.com/photos/7775642/pexels-photo-7775642.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\"\n              alt=\"avatar\"\n            />\n\n            <h2 className=\"mb-1 font-bold\">Aurora Starlight</h2>\n            <p className=\"text-sm\">\n              Night owl | Moon enthusiast | Wanderlust 🌕🌙🌎\n            </p>\n\n            <hr className=\"my-4 h-[1px] w-full\" />\n            <div className=\"mb-4\">\n              <h3 className=\"mb-1 font-bold\">Short Bio</h3>\n              <p className=\"text-sm\">\n                Immersed in the enchanting world of the night, captivated by the\n                moon&apos;s allure, and constantly seeking new adventures around\n                the globe. 🌕🌙🌎\n              </p>\n            </div>\n            <div className=\"mb-4 text-sm\">\n              <h3 className=\"mb-1 font-bold\">Public link</h3>\n              <button className=\"block text-[#ae7aff] hover:underline\">\n                starryaurora@gmail.com\n              </button>\n              <button className=\"block break-all text-[#ae7aff] hover:underline\">\n                https://www.aurorastarry.com/\n              </button>\n            </div>\n            <p className=\"mb-4 flex gap-x-4\">\n              <span className=\"inline-block\">\n                <span className=\"font-bold\">13.5k&nbsp;</span>\n                <span className=\"text-sm text-gray-400\">Followers</span>\n              </span>\n              <span className=\"inline-block\">\n                <span className=\"font-bold\">204&nbsp;</span>\n                <span className=\"text-sm text-gray-400\">Following</span>\n              </span>\n            </p>\n            <button className=\"inline-flex w-max items-center bg-[#ae7aff] px-4 py-2 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e]\">\n              Edit Profile\n            </button>\n          </div>\n        </aside>\n\n        <section className=\"col-span-12 text-white md:col-span-7 lg:col-span-5 xl:col-span-6\">\n          <div className=\"sticky top-[82px] z-10 mt-[1px] bg-[#121212] pb-4 before:absolute before:inset-x-0 before:bottom-full before:h-[17px] before:bg-[#121212] md:top-[100px] md:mt-0\">\n            <ul className=\"no-scrollbar flex w-full overflow-x-auto px-4 sm:px-0\">\n              <li className=\"mr-2 inline-block shrink-0\">\n                <button className=\"inline-block bg-[#2c2c2c] px-6 py-1.5\">\n                  Posts\n                </button>\n              </li>\n              <li className=\"mr-2 inline-block shrink-0\">\n                <button className=\"inline-block px-6 py-1.5 hover:bg-[#2c2c2c]\">\n                  Edit profile\n                </button>\n              </li>\n              <li className=\"mr-2 inline-block shrink-0\">\n                <button className=\"inline-block px-6 py-1.5 hover:bg-[#2c2c2c]\">\n                  Change password\n                </button>\n              </li>\n              <li className=\"mr-2 inline-block shrink-0\">\n                <button className=\"inline-block px-6 py-1.5 hover:bg-[#2c2c2c]\">\n                  Bookmarked\n                </button>\n              </li>\n            </ul>\n          </div>\n          {/* Post Lists */}\n          {posts.map((post) => (\n            <div\n              key={post.id}\n              className=\"relative mb-2 w-full last:mb-0 sm:mb-4\"\n            >\n              <div className=\"flex border-b border-t border-white p-4 text-white sm:border-l sm:border-r\">\n                {/* Author Profile */}\n                <div className=\"h-10 w-10 shrink-0 sm:h-12 sm:w-12\">\n                  <img\n                    src={post.authorImage}\n                    alt={post.authorName}\n                    className=\"h-full w-full rounded-full object-cover\"\n                  />\n                </div>\n                {/* Center-Right Content */}\n                <div className=\"pl-4 pt-1\">\n                  {/* Post Metadata */}\n                  <div className=\"mb-2 flex items-center gap-x-2\">\n                    <div className=\"w-full\">\n                      <h2 className=\"inline-block font-bold\">\n                        {post.authorName}\n                      </h2>\n                      <span className=\"ml-2 inline-block text-sm text-gray-400\">\n                        {post.createdOn}\n                      </span>\n                    </div>\n                    <button className=\"ml-auto shrink-0 hover:text-[#ae7aff]\">\n                      <EllipsisVerticalIcon className=\"h-5 w-5\" />\n                    </button>\n                  </div>\n                  {/* Post Text */}\n                  <p className=\"mb-4 text-sm sm:text-base\">{post.text}</p>\n                  {/* Post Images */}\n                  {post.images.length > 0 && (\n                    <div className=\"mb-4 grid grid-cols-[repeat(auto-fit,_minmax(200px,_1fr))] gap-4\">\n                      {post.images.map((image, i) => (\n                        <img\n                          key={image}\n                          src={image}\n                          alt={`attachment-${i}`}\n                          className=\"rounded-md\"\n                        />\n                      ))}\n                    </div>\n                  )}\n                  {/* Link Preview */}\n                  {post.link && (\n                    <div className=\"group mb-4 border opacity-95 hover:opacity-100\">\n                      <div className=\"max-h-52 overflow-hidden\">\n                        <img\n                          src={post.link.image}\n                          alt={post.link.title}\n                          className=\"object-cover\"\n                        />\n                      </div>\n                      {/* Link Content */}\n                      <div className=\"p-4\">\n                        <h3 className=\"mb-2 font-bold\">{post.link.title}</h3>\n                        <p className=\"mb-3 text-sm\">{post.link.caption}</p>\n                        <span className=\"inline-flex items-center gap-x-2 break-all text-sm text-[#ae7aff] no-underline group-hover:underline\">\n                          <LinkIcon className=\"h-4 w-4 shrink-0\" />\n                          {post.link.url}\n                        </span>\n                      </div>\n                    </div>\n                  )}\n                  {/* Polls */}\n                  {post.poll &&\n                    post.poll.map((option) => (\n                      <button\n                        key={option?.name}\n                        className={`relative z-[1] mb-4 inline-flex w-full items-center gap-x-4 border p-4 before:absolute before:inset-y-0 before:left-0 before:z-[-1] before:w-[var(--data-vote-percentage)] last:mb-0 ${\n                          option?.votePercentage && option?.votePercentage >= 0\n                            ? \"\"\n                            : \"hover:bg-[#ae7aff] hover:text-black focus:border-[#ae7aff] focus:bg-[#ae7aff] focus:text-black\"\n                        } ${\n                          option?.selected\n                            ? \"before:bg-[#ae7aff]\"\n                            : \"before:bg-gray-400/10\"\n                        }\n              `}\n                        disabled={Boolean(option?.votePercentage)}\n                        style={{\n                          \"--data-vote-percentage\": `${\n                            option?.votePercentage || 0\n                          }%`,\n                        }}\n                      >\n                        {option?.name}{\" \"}\n                        {option?.votePercentage && (\n                          <span className=\"ml-auto shrink-0 text-sm\">\n                            {option.votePercentage}%\n                          </span>\n                        )}\n                      </button>\n                    ))}\n                  {/* Post Actions Buttons */}\n                  <div className=\"flex gap-x-4\">\n                    {/* Like Button */}\n                    <button\n                      className={`group inline-flex items-center gap-x-1 outline-none after:content-[attr(data-like-count)] focus:after:content-[attr(data-like-count-alt)] ${\n                        post.liked\n                          ? \"text-[#ae7aff] focus:text-inherit\"\n                          : \"hover:text-[#ae7aff] focus:text-[#ae7aff]\"\n                      }`}\n                      data-like-count={post.likeCount}\n                      data-like-count-alt={\n                        post.liked ? post.likeCount - 1 : post.likeCount + 1\n                      }\n                    >\n                      <HeartIcon\n                        className={`h-5 w-5 ${\n                          post.liked\n                            ? \"fill-[#ae7aff] group-focus:fill-none\"\n                            : \"group-focus:fill-[#ae7aff]\"\n                        }`}\n                      />\n                    </button>\n                    {/* Comment Button */}\n                    <button className=\"inline-flex items-center gap-x-1 outline-none hover:text-[#ae7aff]\">\n                      <ChatBubbleOvalLeftEllipsisIcon className=\"h-5 w-5\" />\n                      <span>{post.commentCount}</span>\n                    </button>\n                    {/* Share and Bookmarked Button */}\n                    <div className=\"ml-auto\">\n                      <button className=\"mr-2 inline-flex items-center gap-x-1 outline-none hover:text-[#ae7aff]\">\n                        <ShareIcon className=\"h-5 w-5\" />\n                      </button>\n                      <button\n                        className={`group inline-flex items-center gap-x-1 outline-none hover:text-[#ae7aff] ${\n                          post.bookmarked\n                            ? \"focus:text-white\"\n                            : \"focus:text-[#ae7aff]\"\n                        }`}\n                      >\n                        <BookmarkIcon\n                          className={`h-5 w-5 ${\n                            post.bookmarked\n                              ? \"fill-[#ae7aff] text-[#ae7aff] group-focus:fill-none group-focus:text-inherit\"\n                              : \"group-focus:fill-[#ae7aff]\"\n                          }`}\n                        />\n                      </button>\n                    </div>\n                  </div>\n                </div>\n              </div>\n            </div>\n          ))}\n        </section>\n        {/* Trending Topics */}\n        <aside className=\"hidden text-white lg:col-span-3 lg:block\">\n          <div className=\"sticky top-[100px] border p-4\">\n            <h2 className=\"mb-4 font-bold\"># Trending Hashtags</h2>\n            <ul className=\"list-disc pl-4\">\n              {[\"javascript\", \"typescript\", \"java\", \"python\", \"golang\"].map(\n                (hashtag) => (\n                  <li key={hashtag}>\n                    <button className=\"hover:text-[#ae7aff]\">#{hashtag}</button>\n                  </li>\n                ),\n              )}\n            </ul>\n          </div>\n        </aside>\n      </div>\n    </div>\n  );\n};\n\nexport default Profile;\n"
  },
  {
    "path": "src/components/templates/social-media/post-detail.jsx",
    "content": "import React from \"react\";\nimport {\n  BellIcon,\n  BookmarkIcon,\n  EllipsisVerticalIcon,\n  FaceSmileIcon,\n  HeartIcon,\n  LinkIcon,\n  MagnifyingGlassIcon,\n  PlusIcon,\n} from \"@heroicons/react/24/outline\";\nimport {\n  ChatBubbleOvalLeftEllipsisIcon,\n  PaperAirplaneIcon,\n  PlusCircleIcon,\n  ShareIcon,\n  ChatBubbleLeftRightIcon,\n} from \"@heroicons/react/24/solid\";\n\nconst post = {\n  id: 1,\n  authorImage:\n    \"https://images.pexels.com/photos/7775637/pexels-photo-7775637.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n  authorName: \"Solar Flare \",\n  createdOn: \"59 minutes ago\",\n  text: \"Harnessing the power of the sun for a brighter future. ☀️🔋 #SolarEnergy\",\n  images: [\n    \"https://images.pexels.com/photos/18107025/pexels-photo-18107025/free-photo-of-man-reading-newspaper.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    \"https://images.pexels.com/photos/18148933/pexels-photo-18148933/free-photo-of-city-road-man-people.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    \"https://images.pexels.com/photos/18148937/pexels-photo-18148937/free-photo-of-city-road-traffic-landscape.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n  ],\n  likeCount: 802,\n  commentCount: 99,\n  liked: true,\n  bookmarked: true,\n  comments: [\n    {\n      id: 1,\n      authorImage:\n        \"https://images.pexels.com/photos/3532554/pexels-photo-3532554.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n      authorName: \"Isabella Andrews\",\n      createdOn: \"58 minutes ago\",\n      text: \"Such an important mission! How can individuals contribute to this solar revolution, Solar Flare?\",\n      images: [\n        \"https://images.pexels.com/photos/18148936/pexels-photo-18148936.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n      ],\n      likeCount: 420,\n      commentCount: 20,\n      liked: false,\n      bookmarked: true,\n      replies: [\n        {\n          id: 1,\n          authorImage:\n            \"https://images.pexels.com/photos/7775642/pexels-photo-7775642.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n          authorName: \"Aurora Starlight\",\n          createdOn: \"55 minutes ago\",\n          text: \"Embracing the lunar magic tonight. The full moon is my muse. 🌕🌌 #MoonlightDreams\",\n          images: [],\n          likeCount: 10,\n          commentCount: 2,\n          liked: true,\n          bookmarked: false,\n          replies: [],\n        },\n      ],\n    },\n    {\n      id: 2,\n      authorImage:\n        \"https://images.pexels.com/photos/1092422/pexels-photo-1092422.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n      authorName: \"Daniel Greenfield\",\n      createdOn: \"45 minutes ago\",\n      text: \"Absolutely love your commitment to clean energy, Solar Flare! Keep up the great work! 💚♻️\",\n      images: [\n        \"https://images.pexels.com/photos/1114619/pexels-photo-1114619.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n      ],\n      likeCount: 45,\n      liked: false,\n      bookmarked: false,\n      commentCount: 0,\n      replies: [],\n    },\n    {\n      id: 3,\n      authorImage:\n        \"https://images.pexels.com/photos/998716/pexels-photo-998716.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n      authorName: \"Matthew Advocate\",\n      createdOn: \"30 minutes ago\",\n      text: \"Your efforts are helping us move towards a sustainable future. Kudos, Solar Flare! 🌞🌱\",\n      images: [\n        \"https://images.pexels.com/photos/998714/pexels-photo-998714.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n      ],\n      liked: false,\n      bookmarked: false,\n      likeCount: 60,\n      commentCount: 2,\n      replies: [\n        {\n          id: 1,\n          authorImage:\n            \"https://images.pexels.com/photos/909489/pexels-photo-909489.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n          authorName: \"Sophia Innovator\",\n          createdOn: \"28 minutes ago\",\n          text: \"Every ray of sunshine counts! Have you considered integrating solar in urban spaces, Solar Flare?\",\n          images: [],\n          likeCount: 2,\n          commentCount: 1,\n          liked: true,\n          bookmarked: true,\n          replies: [],\n        },\n        {\n          id: 2,\n          authorImage:\n            \"https://images.pexels.com/photos/909487/pexels-photo-909487.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n          authorName: \"Michael Tech\",\n          createdOn: \"2 minutes ago\",\n          text: \"Your dedication to solar energy is inspiring, Solar Flare! Are there any upcoming projects we can look forward to?\",\n          images: [],\n          liked: true,\n          bookmarked: true,\n          likeCount: 1,\n          commentCount: 0,\n          replies: [],\n        },\n      ],\n    },\n    {\n      id: 4,\n      authorImage:\n        \"https://images.pexels.com/photos/909483/pexels-photo-909483.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n      authorName: \"Samuel Eco\",\n      createdOn: \"45 seconds ago\",\n      text: \"You're doing incredible work for the environment, Solar Flare. 💪🌿 Let's all go solar!\",\n      images: [],\n      likeCount: 9,\n      commentCount: 1,\n      replies: [],\n      liked: false,\n      bookmarked: false,\n    },\n  ],\n};\n\nconst PostDetail = () => {\n  return (\n    <div className=\"min-h-screen bg-[#121212]\">\n      <header className=\"fixed top-0 z-50 mx-auto flex w-full max-w-full items-center justify-between border-b-[1px] border-b-slate-300 bg-[#121212] p-4 text-white lg:px-10\">\n        <h1 className=\"text-xl font-extrabold md:text-3xl\">View Post</h1>\n        <div className=\"flex w-max flex-shrink-0 items-center justify-end gap-6\">\n          <span className=\"relative\">\n            <MagnifyingGlassIcon className=\"h-8 w-8\" />\n          </span>\n          <span className=\"relative\">\n            <BellIcon className=\"h-8 w-8 text-white\" />\n            <span className=\"absolute right-1 top-0 flex h-2.5 w-2.5 items-center justify-center rounded-full bg-green-500 p-1 text-white\"></span>\n          </span>\n          <button className=\"hidden w-max items-center justify-center border-[1px] border-white p-3 text-center font-bold text-white md:inline-flex\">\n            <PlusCircleIcon className=\"mr-2 h-5 w-5\" /> Create new\n          </button>\n        </div>\n      </header>\n      <div className=\"mt-[65px] grid grid-cols-12 gap-4 pb-8 pt-0 sm:px-4 sm:pt-8 md:mt-[83px] lg:px-10\">\n        {/* Profile */}\n        <aside className=\"hidden text-white md:col-span-4 md:block lg:col-span-3\">\n          <div className=\"sticky top-[100px] border p-4\">\n            <img\n              className=\"mb-3 flex aspect-square h-16 w-16 flex-shrink-0 rounded-full object-cover\"\n              src=\"https://images.pexels.com/photos/7775642/pexels-photo-7775642.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\"\n              alt=\"avatar\"\n            />\n            <h2>Aurora Starlight</h2>\n            <p className=\"text-sm\">\n              <button className=\"hover:text-[#ae7aff]\">\n                starryaurora@gmail.com\n              </button>\n            </p>\n            <hr className=\"my-2 h-[1px] w-full\" />\n            <p className=\"mb-4\">\n              Night owl | Moon enthusiast | Wanderlust 🌕🌙🌎\n            </p>\n            <button className=\"inline-flex w-max items-center bg-[#ae7aff] px-4 py-2 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e]\">\n              View Profile\n            </button>\n          </div>\n        </aside>\n        <section className=\"col-span-12 border-b border-t border-white sm:border-l sm:border-r md:col-span-8 lg:col-span-6\">\n          {/* Post Card */}\n          <div className=\"flex border-b border-white p-4 text-white last:border-none\">\n            {/* Author Profile */}\n            <div className=\"h-10 w-10 shrink-0 sm:h-12 sm:w-12\">\n              <img\n                src={post.authorImage}\n                alt={post.authorName}\n                className=\"h-full w-full rounded-full object-cover\"\n              />\n            </div>\n            {/* Center-Right Content */}\n            <div className=\"pl-4 pt-1\">\n              {/* Post Metadata */}\n              <div className=\"mb-2 flex items-center gap-x-2\">\n                <div className=\"w-full\">\n                  <h2 className=\"inline-block font-bold\">{post.authorName}</h2>\n                  <span className=\"ml-2 inline-block text-sm text-gray-400\">\n                    {post.createdOn}\n                  </span>\n                </div>\n                <button className=\"ml-auto shrink-0 hover:text-[#ae7aff]\">\n                  <EllipsisVerticalIcon className=\"h-5 w-5\" />\n                </button>\n              </div>\n              {/* Post Text */}\n              <p className=\"mb-4 text-sm sm:text-base\">{post.text}</p>\n              {/* Post Images */}\n              {post.images.length > 0 && (\n                <div className=\"mb-4 grid grid-cols-[repeat(auto-fit,_minmax(200px,_1fr))] gap-4\">\n                  {post.images.map((image, i) => (\n                    <img\n                      key={image}\n                      src={image}\n                      alt={`attachment-${i}`}\n                      className=\"rounded-md\"\n                    />\n                  ))}\n                </div>\n              )}\n              {/* Link Preview */}\n              {post.link && (\n                <div className=\"group mb-4 border opacity-95 hover:opacity-100\">\n                  <div className=\"max-h-52 overflow-hidden\">\n                    <img\n                      src={post.link.image}\n                      alt={post.link.title}\n                      className=\"object-cover\"\n                    />\n                  </div>\n                  {/* Link Content */}\n                  <div className=\"p-4\">\n                    <h3 className=\"mb-2 font-bold\">{post.link.title}</h3>\n                    <p className=\"mb-3 text-sm\">{post.link.caption}</p>\n                    <span className=\"inline-flex items-center gap-x-2 break-all text-sm text-[#ae7aff] no-underline group-hover:underline\">\n                      <LinkIcon className=\"h-4 w-4 shrink-0\" />\n                      {post.link.url}\n                    </span>\n                  </div>\n                </div>\n              )}\n              {/* Post Actions Buttons */}\n              <div className=\"flex gap-x-4\">\n                {/* Like Button */}\n                <button\n                  className={`group inline-flex items-center gap-x-1 outline-none after:content-[attr(data-like-count)] focus:after:content-[attr(data-like-count-alt)] ${\n                    post.liked\n                      ? \"text-[#ae7aff] focus:text-inherit\"\n                      : \"hover:text-[#ae7aff] focus:text-[#ae7aff]\"\n                  }`}\n                  data-like-count={post.likeCount}\n                  data-like-count-alt={\n                    post.liked ? post.likeCount - 1 : post.likeCount + 1\n                  }\n                >\n                  <HeartIcon\n                    className={`h-5 w-5 ${\n                      post.liked\n                        ? \"fill-[#ae7aff] group-focus:fill-none\"\n                        : \"group-focus:fill-[#ae7aff]\"\n                    }`}\n                  />\n                </button>\n                {/* Comment Button */}\n                <button className=\"inline-flex items-center gap-x-1 outline-none hover:text-[#ae7aff]\">\n                  <ChatBubbleOvalLeftEllipsisIcon className=\"h-5 w-5\" />\n                  <span>{post.commentCount}</span>\n                </button>\n                {/* Share and bookmarked Button */}\n                <div className=\"ml-auto\">\n                  <button className=\"mr-2 inline-flex items-center gap-x-1 outline-none hover:text-[#ae7aff]\">\n                    <ShareIcon className=\"h-5 w-5\" />\n                  </button>\n                  <button\n                    className={`group inline-flex items-center gap-x-1 outline-none hover:text-[#ae7aff] ${\n                      post.bookmarked\n                        ? \"focus:text-white\"\n                        : \"focus:text-[#ae7aff]\"\n                    }`}\n                  >\n                    <BookmarkIcon\n                      className={`h-5 w-5 ${\n                        post.bookmarked\n                          ? \"fill-[#ae7aff] text-[#ae7aff] group-focus:fill-none group-focus:text-inherit\"\n                          : \"group-focus:fill-[#ae7aff]\"\n                      }`}\n                    />\n                  </button>\n                </div>\n              </div>\n            </div>\n          </div>\n\n          {/* Add Comment Form */}\n          <div className=\"flex w-full items-center justify-start border-b border-white px-4 py-2 last:border-none\">\n            <img\n              className=\"flex aspect-square h-10 w-10 shrink-0 rounded-full object-cover\"\n              src=\"https://images.pexels.com/photos/7775642/pexels-photo-7775642.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\"\n              alt=\"avatar\"\n            />\n            <input\n              placeholder=\"Comment...\"\n              className=\"w-full bg-transparent p-2 text-white !outline-none placeholder:text-gray-500 md:p-4\"\n            />\n            <div className=\"flex gap-x-1 sm:gap-x-2\">\n              <button className=\"flex shrink-0 items-center justify-center p-1\">\n                <FaceSmileIcon className=\"w-6 text-white\" />\n              </button>\n              <button className=\"flex shrink-0 items-center justify-center p-1\">\n                <PlusIcon className=\"w-6 text-white\" />\n              </button>\n              <button className=\"flex shrink-0 items-center justify-center bg-[#ae7aff] p-1\">\n                <PaperAirplaneIcon className=\"w-6 text-black\" />\n              </button>\n            </div>\n          </div>\n\n          {/* Post Comments */}\n          {post.comments.map((comment) => (\n            <div\n              className=\"relative border-b border-white last:border-none\"\n              key={comment.id}\n            >\n              <div className=\"flex p-4 text-white\">\n                {/* Author Profile */}\n                <div\n                  className={`relative shrink-0 before:absolute before:left-1/2 before:top-[30px] before:z-[5] before:h-full before:w-[1px] ${\n                    comment.replies.length > 0\n                      ? \"before:bg-white\"\n                      : \"before:bg-transparent\"\n                  }`}\n                >\n                  <div className=\"relative z-10 h-10 w-10 sm:h-12 sm:w-12\">\n                    <img\n                      src={comment.authorImage}\n                      alt={comment.authorName}\n                      className=\"h-full w-full rounded-full object-cover\"\n                    />\n                  </div>\n                </div>\n                {/* Center-Right Content */}\n                <div className=\"pl-4 pt-1\">\n                  {/* Post Metadata */}\n                  <div className=\"mb-2 flex items-center gap-x-2\">\n                    <div className=\"w-full\">\n                      <h2 className=\"inline-block font-bold\">\n                        {comment.authorName}\n                      </h2>\n                      <span className=\"ml-2 inline-block text-sm text-gray-400\">\n                        {comment.createdOn}\n                      </span>\n                    </div>\n                    <button className=\"ml-auto shrink-0 hover:text-[#ae7aff]\">\n                      <EllipsisVerticalIcon className=\"h-5 w-5\" />\n                    </button>\n                  </div>\n                  {/* Post Text */}\n                  <p className=\"mb-4 text-sm sm:text-base\">{comment.text}</p>\n                  {/* Post Images */}\n                  {comment.images.length > 0 && (\n                    <div className=\"mb-4 grid grid-cols-[repeat(auto-fit,_minmax(200px,_1fr))] gap-4\">\n                      {comment.images.map((image, i) => (\n                        <img\n                          key={image}\n                          src={image}\n                          alt={`attachment-${i}`}\n                          className=\"rounded-md\"\n                        />\n                      ))}\n                    </div>\n                  )}\n                  {/* Post Actions Buttons */}\n                  <div className=\"flex gap-x-4\">\n                    {/* Like Button */}\n                    <button\n                      className={`group inline-flex items-center gap-x-1 outline-none after:content-[attr(data-like-count)] focus:after:content-[attr(data-like-count-alt)] ${\n                        comment.liked\n                          ? \"text-[#ae7aff] focus:text-inherit\"\n                          : \"hover:text-[#ae7aff] focus:text-[#ae7aff]\"\n                      }`}\n                      data-like-count={comment.likeCount}\n                      data-like-count-alt={\n                        comment.liked\n                          ? comment.likeCount - 1\n                          : comment.likeCount + 1\n                      }\n                    >\n                      <HeartIcon\n                        className={`h-5 w-5 ${\n                          comment.liked\n                            ? \"fill-[#ae7aff] group-focus:fill-none\"\n                            : \"group-focus:fill-[#ae7aff]\"\n                        }`}\n                      />\n                    </button>\n                    {/* Comment Button */}\n                    <button className=\"inline-flex items-center gap-x-1 outline-none hover:text-[#ae7aff]\">\n                      <ChatBubbleLeftRightIcon className=\"h-5 w-5\" />\n                      <span>{comment.commentCount}</span>\n                    </button>\n                  </div>\n                </div>\n              </div>\n              {/* Nested Comments */}\n              {comment.replies.map((comment) => (\n                <div key={comment.id} className=\"flex p-4 text-white\">\n                  {/* Author Profile */}\n                  <div className=\"h-10 w-10 shrink-0 sm:h-12 sm:w-12\">\n                    <img\n                      src={comment.authorImage}\n                      alt={comment.authorName}\n                      className=\"h-full w-full rounded-full object-cover\"\n                    />\n                  </div>\n                  {/* Center-Right Content */}\n                  <div className=\"pl-4 pt-1\">\n                    {/* Post Metadata */}\n                    <div className=\"mb-2 flex items-center gap-x-2\">\n                      <div className=\"w-full\">\n                        <h2 className=\"inline-block font-bold\">\n                          {comment.authorName}\n                        </h2>\n                        <span className=\"ml-2 inline-block text-sm text-gray-400\">\n                          {comment.createdOn}\n                        </span>\n                      </div>\n                      <button className=\"ml-auto shrink-0 hover:text-[#ae7aff]\">\n                        <EllipsisVerticalIcon className=\"h-5 w-5\" />\n                      </button>\n                    </div>\n                    {/* Post Text */}\n                    <p className=\"mb-4 text-sm sm:text-base\">{comment.text}</p>\n                    {/* Post Images */}\n                    {comment.images.length > 0 && (\n                      <div className=\"mb-4 grid grid-cols-[repeat(auto-fit,_minmax(200px,_1fr))] gap-4\">\n                        {comment.images.map((image, i) => (\n                          <img\n                            key={image}\n                            src={image}\n                            alt={`attachment-${i}`}\n                            className=\"rounded-md\"\n                          />\n                        ))}\n                      </div>\n                    )}\n                    {/* Post Actions Buttons */}\n                    <div className=\"flex gap-x-4\">\n                      {/* Like Button */}\n                      <button\n                        className={`group inline-flex items-center gap-x-1 outline-none after:content-[attr(data-like-count)] focus:after:content-[attr(data-like-count-alt)] ${\n                          comment.liked\n                            ? \"text-[#ae7aff] focus:text-inherit\"\n                            : \"hover:text-[#ae7aff] focus:text-[#ae7aff]\"\n                        }`}\n                        data-like-count={comment.likeCount}\n                        data-like-count-alt={\n                          comment.liked\n                            ? comment.likeCount - 1\n                            : comment.likeCount + 1\n                        }\n                      >\n                        <HeartIcon\n                          className={`h-5 w-5 ${\n                            comment.liked\n                              ? \"fill-[#ae7aff] group-focus:fill-none\"\n                              : \"group-focus:fill-[#ae7aff]\"\n                          }`}\n                        />\n                      </button>\n                    </div>\n                  </div>\n                </div>\n              ))}\n            </div>\n          ))}\n        </section>\n        {/* Trending Topics */}\n        <aside className=\"hidden text-white lg:col-span-3 lg:block\">\n          <div className=\"sticky top-[100px] border p-4\">\n            <h2 className=\"mb-4 font-bold\"># Trending Hashtags</h2>\n            <ul className=\"list-disc pl-4\">\n              {[\"javascript\", \"typescript\", \"java\", \"python\", \"golang\"].map(\n                (hashtag) => (\n                  <li key={hashtag}>\n                    <button className=\"hover:text-[#ae7aff]\">#{hashtag}</button>\n                  </li>\n                ),\n              )}\n            </ul>\n          </div>\n        </aside>\n      </div>\n    </div>\n  );\n};\n\nexport default PostDetail;\n"
  },
  {
    "path": "src/components/templates/social-media/post-listing.jsx",
    "content": "import React from \"react\";\nimport {\n  BellIcon,\n  BookmarkIcon,\n  EllipsisVerticalIcon,\n  FaceSmileIcon,\n  HeartIcon,\n  LinkIcon,\n  MagnifyingGlassIcon,\n  PlusIcon,\n} from \"@heroicons/react/24/outline\";\nimport {\n  ChatBubbleOvalLeftEllipsisIcon,\n  PaperAirplaneIcon,\n  PlusCircleIcon,\n  ShareIcon,\n} from \"@heroicons/react/24/solid\";\n\nconst posts = [\n  {\n    id: 1,\n    authorImage:\n      \"https://images.pexels.com/photos/18264716/pexels-photo-18264716.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    authorName: \"Mystical Wanderer\",\n    createdOn: \"15 minutes ago\",\n    text: \"Uncovering ancient secrets and mystical wonders. The journey is the destination. 🔮🌟 #MythologyQuest\",\n    images: [],\n    likeCount: 46,\n    commentCount: 13,\n    bookmarked: false,\n    liked: true,\n  },\n  {\n    id: 2,\n    authorImage:\n      \"https://images.pexels.com/photos/13847596/pexels-photo-13847596.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    authorName: \"Aqua Explorer\",\n    createdOn: \"1 hour ago\",\n    text: \"Swimming with the dolphins today, and it was magical! 🐬🌊 #OceanAdventure\",\n    images: [\n      \"https://images.pexels.com/photos/18107024/pexels-photo-18107024/free-photo-of-an-old-city-view.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    ],\n    likeCount: 102,\n    commentCount: 18,\n    bookmarked: true,\n    liked: false,\n  },\n  {\n    id: 3,\n    authorImage:\n      \"https://images.pexels.com/photos/7775637/pexels-photo-7775637.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    authorName: \"Solar Flare \",\n    createdOn: \"59 minutes ago\",\n    text: \"Harnessing the power of the sun for a brighter future. ☀️🔋 #SolarEnergy\",\n    images: [\n      \"https://images.pexels.com/photos/18107025/pexels-photo-18107025/free-photo-of-man-reading-newspaper.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n      \"https://images.pexels.com/photos/18148933/pexels-photo-18148933/free-photo-of-city-road-man-people.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n      \"https://images.pexels.com/photos/18148937/pexels-photo-18148937/free-photo-of-city-road-traffic-landscape.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    ],\n    likeCount: 802,\n    commentCount: 99,\n    bookmarked: true,\n    liked: true,\n  },\n  {\n    id: 4,\n    authorImage:\n      \"https://images.pexels.com/photos/7775642/pexels-photo-7775642.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    authorName: \"Aurora Starlight\",\n    createdOn: \"17 hours ago\",\n    text: \"Embracing the lunar magic tonight. The full moon is my muse. 🌕🌌 #MoonlightDreams\",\n    images: [],\n    likeCount: 420,\n    commentCount: 20,\n    bookmarked: false,\n    liked: false,\n    link: {\n      image:\n        \"https://images.pexels.com/photos/7775642/pexels-photo-7775642.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n      title: \"Aurora Starlight\",\n      caption: \"Digital artist | Creative mind | Color magician 🎨🖌️🖼️\",\n      url: \"https://www.aurorastarry.com/\",\n    },\n  },\n  {\n    id: 5,\n    authorImage:\n      \"https://images.pexels.com/photos/3532553/pexels-photo-3532553.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    authorName: \"Nova Sparks\",\n    createdOn: \"1 day ago\",\n    text: \"💡 Tech Poll: Which emerging technology excites you the most?\",\n    images: [],\n    likeCount: 207,\n    commentCount: 63,\n    bookmarked: false,\n    liked: false,\n    poll: [\n      {\n        name: \"Artificial Intelligence\",\n      },\n      {\n        name: \"Virtual Reality\",\n      },\n      {\n        name: \"Quantum Computing\",\n      },\n      {\n        name: \"5G Connectivity\",\n      },\n    ],\n  },\n  {\n    id: 6,\n    authorImage:\n      \"https://images.pexels.com/photos/569314/pexels-photo-569314.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    authorName: \"Zen Garden\",\n    createdOn: \"7 days ago\",\n    text: \"🧘‍♂️ Mindfulness Poll: Which mindfulness practice resonates with you the most?\",\n    images: [],\n    likeCount: 97,\n    commentCount: 13,\n    liked: true,\n    bookmarked: false,\n    poll: [\n      {\n        name: \"Meditation\",\n        votePercentage: 30,\n      },\n      {\n        name: \"Yoga\",\n        selected: true,\n        votePercentage: 33,\n      },\n      {\n        name: \"Deep Breathing\",\n        votePercentage: 27,\n      },\n      {\n        name: \"Tai Chi\",\n        votePercentage: 20,\n      },\n    ],\n  },\n  {\n    id: 7,\n    authorImage:\n      \"https://images.pexels.com/photos/1739942/pexels-photo-1739942.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    authorName: \"Pixel Painter\",\n    createdOn: \"1 months ago\",\n    text: \"🎨 Art Poll: What's your preferred art medium for creating masterpieces?\",\n    images: [],\n    likeCount: 99,\n    commentCount: 13,\n    bookmarked: true,\n    liked: false,\n    poll: [\n      {\n        name: \"Acrylic Paint\",\n        votePercentage: 20,\n      },\n      {\n        name: \"Watercolor\",\n        votePercentage: 19,\n      },\n      {\n        name: \"Digital Art\",\n        votePercentage: 18,\n      },\n      {\n        name: \"Charcoal Sketching\",\n        votePercentage: 43,\n      },\n    ],\n  },\n];\n\nconst PostListing = () => {\n  return (\n    <div className=\"min-h-screen bg-[#121212]\">\n      <header className=\"fixed top-0 z-10 mx-auto flex w-full max-w-full items-center justify-between border-b-[1px] border-b-slate-300 bg-[#121212] p-4 text-white lg:px-10\">\n        <h1 className=\"text-xl font-extrabold md:text-3xl\">All Posts</h1>\n        <div className=\"flex w-max flex-shrink-0 items-center justify-end gap-6\">\n          <span className=\"relative\">\n            <MagnifyingGlassIcon className=\"h-8 w-8\" />\n          </span>\n          <span className=\"relative\">\n            <BellIcon className=\"h-8 w-8 text-white\" />\n            <span className=\"absolute right-1 top-0 flex h-2.5 w-2.5 items-center justify-center rounded-full bg-green-500 p-1 text-white\"></span>\n          </span>\n          <button className=\"hidden w-max items-center justify-center border-[1px] border-white p-3 text-center font-bold text-white md:inline-flex\">\n            <PlusCircleIcon className=\"mr-2 h-5 w-5\" /> Create new\n          </button>\n        </div>\n      </header>\n      <div className=\"mt-[65px] grid grid-cols-12 gap-4 pb-8 pt-0 sm:px-4 sm:pt-8 md:mt-[83px] lg:px-10\">\n        {/* Profile */}\n        <aside className=\"hidden text-white md:col-span-4 md:block lg:col-span-3\">\n          <div className=\"sticky top-[100px] border p-4\">\n            <img\n              className=\"mb-3 flex aspect-square h-16 w-16 flex-shrink-0 rounded-full object-cover\"\n              src=\"https://images.pexels.com/photos/7775642/pexels-photo-7775642.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\"\n              alt=\"avatar\"\n            />\n            <h2>Aurora Starlight</h2>\n            <p className=\"text-sm\">\n              <button className=\"hover:text-[#ae7aff]\">\n                starryaurora@gmail.com\n              </button>\n            </p>\n            <hr className=\"my-2 h-[1px] w-full\" />\n            <p className=\"mb-4\">\n              Night owl | Moon enthusiast | Wanderlust 🌕🌙🌎\n            </p>\n            <button className=\"inline-flex w-max items-center bg-[#ae7aff] px-4 py-2 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e]\">\n              View Profile\n            </button>\n          </div>\n        </aside>\n        <section className=\"col-span-12 md:col-span-8 lg:col-span-6\">\n          {/* Create Post Form */}\n          <div className=\"mb-2 flex w-full items-center justify-start border-b border-t border-white px-4 py-2 sm:mb-6 sm:border-l sm:border-r sm:shadow-[5px_5px_0px_0px_#4f4e4e]\">\n            <img\n              className=\"flex aspect-square h-10 w-10 shrink-0 rounded-full object-cover\"\n              src=\"https://images.pexels.com/photos/7775642/pexels-photo-7775642.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\"\n              alt=\"avatar\"\n            />\n            <input\n              placeholder=\"Type to add something\"\n              className=\"w-full bg-transparent p-2 text-white !outline-none placeholder:text-gray-500 md:p-4\"\n            />\n            <div className=\"flex gap-x-1 sm:gap-x-2\">\n              <button className=\"flex shrink-0 items-center justify-center p-1\">\n                <FaceSmileIcon className=\"w-6 text-white\" />\n              </button>\n              <button className=\"flex shrink-0 items-center justify-center p-1\">\n                <PlusIcon className=\"w-6 text-white\" />\n              </button>\n              <button className=\"flex shrink-0 items-center justify-center bg-[#ae7aff] p-1\">\n                <PaperAirplaneIcon className=\"w-6 text-black\" />\n              </button>\n            </div>\n          </div>\n          {/* Post Lists */}\n          {posts.map((post) => (\n            <div\n              key={post.id}\n              className=\"relative mb-2 w-full last:mb-0 sm:mb-4\"\n            >\n              <div className=\"flex border-b border-t border-white p-4 text-white sm:border-l sm:border-r\">\n                {/* Author Profile */}\n                <div className=\"h-10 w-10 shrink-0 sm:h-12 sm:w-12\">\n                  <img\n                    src={post.authorImage}\n                    alt={post.authorName}\n                    className=\"h-full w-full rounded-full object-cover\"\n                  />\n                </div>\n                {/* Center-Right Content */}\n                <div className=\"pl-4 pt-1\">\n                  {/* Post Metadata */}\n                  <div className=\"mb-2 flex items-center gap-x-2\">\n                    <div className=\"w-full\">\n                      <h2 className=\"inline-block font-bold\">\n                        {post.authorName}\n                      </h2>\n                      <span className=\"ml-2 inline-block text-sm text-gray-400\">\n                        {post.createdOn}\n                      </span>\n                    </div>\n                    <button className=\"ml-auto shrink-0 hover:text-[#ae7aff]\">\n                      <EllipsisVerticalIcon className=\"h-5 w-5\" />\n                    </button>\n                  </div>\n                  {/* Post Text */}\n                  <p className=\"mb-4 text-sm sm:text-base\">{post.text}</p>\n                  {/* Post Images */}\n                  {post.images.length > 0 && (\n                    <div className=\"mb-4 grid grid-cols-[repeat(auto-fit,_minmax(200px,_1fr))] gap-4\">\n                      {post.images.map((image, i) => (\n                        <img\n                          key={image}\n                          src={image}\n                          alt={`attachment-${i}`}\n                          className=\"rounded-md\"\n                        />\n                      ))}\n                    </div>\n                  )}\n                  {/* Link Preview */}\n                  {post.link && (\n                    <div className=\"group mb-4 border opacity-95 hover:opacity-100\">\n                      <div className=\"max-h-52 overflow-hidden\">\n                        <img\n                          src={post.link.image}\n                          alt={post.link.title}\n                          className=\"object-cover\"\n                        />\n                      </div>\n                      {/* Link Content */}\n                      <div className=\"p-4\">\n                        <h3 className=\"mb-2 font-bold\">{post.link.title}</h3>\n                        <p className=\"mb-3 text-sm\">{post.link.caption}</p>\n                        <span className=\"inline-flex items-center gap-x-2 break-all text-sm text-[#ae7aff] no-underline group-hover:underline\">\n                          <LinkIcon className=\"h-4 w-4 shrink-0\" />\n                          {post.link.url}\n                        </span>\n                      </div>\n                    </div>\n                  )}\n                  {/* Polls */}\n                  {post.poll &&\n                    post.poll.map((option) => (\n                      <button\n                        key={option?.name}\n                        className={`relative z-[1] mb-4 inline-flex w-full items-center gap-x-4 border p-4 before:absolute before:inset-y-0 before:left-0 before:z-[-1] before:w-[var(--data-vote-percentage)] last:mb-0 ${\n                          option?.votePercentage && option?.votePercentage >= 0\n                            ? \"\"\n                            : \"hover:bg-[#ae7aff] hover:text-black focus:border-[#ae7aff] focus:bg-[#ae7aff] focus:text-black\"\n                        } ${\n                          option?.selected\n                            ? \"before:bg-[#ae7aff]\"\n                            : \"before:bg-gray-400/10\"\n                        }\n              `}\n                        disabled={Boolean(option?.votePercentage)}\n                        style={{\n                          \"--data-vote-percentage\": `${\n                            option?.votePercentage || 0\n                          }%`,\n                        }}\n                      >\n                        {option?.name}{\" \"}\n                        {option?.votePercentage && (\n                          <span className=\"ml-auto shrink-0 text-sm\">\n                            {option.votePercentage}%\n                          </span>\n                        )}\n                      </button>\n                    ))}\n                  {/* Post Actions Buttons */}\n                  <div className=\"flex gap-x-4\">\n                    {/* Like Button */}\n                    <button\n                      className={`group inline-flex items-center gap-x-1 outline-none after:content-[attr(data-like-count)] focus:after:content-[attr(data-like-count-alt)] ${\n                        post.liked\n                          ? \"text-[#ae7aff] focus:text-inherit\"\n                          : \"hover:text-[#ae7aff] focus:text-[#ae7aff]\"\n                      }`}\n                      data-like-count={post.likeCount}\n                      data-like-count-alt={\n                        post.liked ? post.likeCount - 1 : post.likeCount + 1\n                      }\n                    >\n                      <HeartIcon\n                        className={`h-5 w-5 ${\n                          post.liked\n                            ? \"fill-[#ae7aff] group-focus:fill-none\"\n                            : \"group-focus:fill-[#ae7aff]\"\n                        }`}\n                      />\n                    </button>\n                    {/* Comment Button */}\n                    <button className=\"inline-flex items-center gap-x-1 outline-none hover:text-[#ae7aff]\">\n                      <ChatBubbleOvalLeftEllipsisIcon className=\"h-5 w-5\" />\n                      <span>{post.commentCount}</span>\n                    </button>\n                    {/* Share and Bookmarked Button */}\n                    <div className=\"ml-auto\">\n                      <button className=\"mr-2 inline-flex items-center gap-x-1 outline-none hover:text-[#ae7aff]\">\n                        <ShareIcon className=\"h-5 w-5\" />\n                      </button>\n                      <button\n                        className={`group inline-flex items-center gap-x-1 outline-none hover:text-[#ae7aff] ${\n                          post.bookmarked\n                            ? \"focus:text-white\"\n                            : \"focus:text-[#ae7aff]\"\n                        }`}\n                      >\n                        <BookmarkIcon\n                          className={`h-5 w-5 ${\n                            post.bookmarked\n                              ? \"fill-[#ae7aff] text-[#ae7aff] group-focus:fill-none group-focus:text-inherit\"\n                              : \"group-focus:fill-[#ae7aff]\"\n                          }`}\n                        />\n                      </button>\n                    </div>\n                  </div>\n                </div>\n              </div>\n            </div>\n          ))}\n        </section>\n        {/* Trending Topics */}\n        <aside className=\"hidden text-white lg:col-span-3 lg:block\">\n          <div className=\"sticky top-[100px] border p-4\">\n            <h2 className=\"mb-4 font-bold\"># Trending Hashtags</h2>\n            <ul className=\"list-disc pl-4\">\n              {[\"javascript\", \"typescript\", \"java\", \"python\", \"golang\"].map(\n                (hashtag) => (\n                  <li key={hashtag}>\n                    <button className=\"hover:text-[#ae7aff]\">#{hashtag}</button>\n                  </li>\n                ),\n              )}\n            </ul>\n          </div>\n        </aside>\n      </div>\n    </div>\n  );\n};\n\nexport default PostListing;\n"
  },
  {
    "path": "src/components/templates/social-media/register.jsx",
    "content": "import { PlusIcon } from \"@heroicons/react/24/outline\";\n\nconst SocialRegister = () => {\n  return (\n    <div className=\"min-h-screen bg-[#121212]\">\n      <header className=\"fixed top-0 z-10 mx-auto flex w-full max-w-full items-center justify-between border-b-[1px] border-b-slate-300 bg-[#121212] p-4 text-white lg:px-10\">\n        <h1 className=\"text-xl font-extrabold md:text-3xl\">Register</h1>\n        <div className=\"flex w-max flex-shrink-0 items-center justify-end gap-6\">\n          <button className=\"hidden w-max items-center justify-center border-[1px] border-white p-3 text-center font-bold text-white md:inline-flex\">\n            Login\n          </button>\n        </div>\n      </header>\n      <div className=\"mx-auto flex w-full items-stretch justify-between gap-10\">\n        <div className=\"mx-auto mt-28 flex w-full flex-col items-start justify-start p-6 sm:max-w-4xl lg:px-10\">\n          <div className=\"w-full text-center\">\n            <h1 className=\"mb-3 text-5xl font-extrabold text-white\">\n              Register\n            </h1>\n            <p className=\"text-xs text-slate-400\">\n              Before we post, please create your account\n            </p>\n          </div>\n          <div className=\"my-14 flex w-full flex-col items-start justify-start gap-4\">\n            <div className=\"flex w-full items-center justify-center\">\n              <input id=\"avatar-input-1\" hidden type=\"file\" />\n              <label\n                htmlFor=\"avatar-input-1\"\n                className=\"relative flex aspect-square h-24 w-24 cursor-pointer items-center justify-center overflow-visible rounded-full border-4 border-[#ae7aff] p-1\"\n              >\n                <div className=\"flex h-full w-full items-center justify-center rounded-full\">\n                  <PlusIcon className=\"h-8 w-8 text-white\" />\n                </div>\n                <span className=\"absolute bottom-0 right-0 flex aspect-square h-5 w-5 items-center justify-center rounded-full bg-[#ae7aff] p-1\">\n                  <PlusIcon className=\"h-3 w-3 text-black\" />\n                </span>\n              </label>\n            </div>\n\n            <div className=\"mt-10 flex w-full flex-col items-center justify-between gap-4 md:flex-row\">\n              <div className=\"flex w-full flex-col items-start justify-start gap-2\">\n                <label className=\"text-xs text-slate-200\">First name</label>\n                <input\n                  placeholder=\"Enter a first name...\"\n                  autoComplete=\"false\"\n                  className=\"w-full border-[1px] border-white bg-black p-4 text-white placeholder:text-gray-500\"\n                />\n              </div>\n              <div className=\"flex w-full flex-col items-start justify-start gap-2\">\n                <label className=\"text-xs text-slate-200\">Last name</label>\n                <input\n                  placeholder=\"Enter a last name...\"\n                  autoComplete=\"false\"\n                  className=\"w-full border-[1px] border-white bg-black p-4 text-white placeholder:text-gray-500\"\n                />\n              </div>\n            </div>\n            <div className=\"flex w-full flex-col items-start justify-start gap-2\">\n              <label className=\"text-xs text-slate-200\">Tagline</label>\n              <input\n                placeholder=\"Enter a profile tagline...\"\n                autoComplete=\"false\"\n                className=\"w-full border-[1px] border-white bg-black p-4 text-white placeholder:text-gray-500\"\n              />\n            </div>\n            <div className=\"flex w-full flex-col items-start justify-start gap-2\">\n              <label className=\"text-xs text-slate-200\">Username</label>\n              <input\n                placeholder=\"Enter a username...\"\n                autoComplete=\"false\"\n                className=\"w-full border-[1px] border-white bg-black p-4 text-white placeholder:text-gray-500\"\n              />\n            </div>\n\n            <div className=\"flex w-full flex-col items-start justify-start gap-2\">\n              <label className=\"text-xs text-slate-200\">Email</label>\n              <input\n                placeholder=\"Enter an email...\"\n                autoComplete=\"false\"\n                className=\"w-full border-[1px] border-white bg-black p-4 text-white placeholder:text-gray-500\"\n              />\n            </div>\n            <div className=\"flex w-full flex-col items-start justify-start gap-2\">\n              <label className=\"text-xs text-slate-200\">Password</label>\n              <input\n                placeholder=\"Enter a password...\"\n                autoComplete=\"false\"\n                type=\"password\"\n                className=\"w-full border-[1px] border-white bg-black p-4 text-white placeholder:text-gray-500\"\n              />\n            </div>\n\n            <div className=\"mr-4 flex items-center\">\n              <input\n                type=\"checkbox\"\n                id=\"checkbox-2\"\n                name=\"checkbox-2\"\n                className=\"absolute h-6 w-6 cursor-pointer opacity-0 [&:checked+div]:bg-green-500 [&:checked+div_svg]:block\"\n              />\n              <div className=\"mr-2 flex h-6 w-6 flex-shrink-0 items-center justify-center border-[1px] border-white bg-transparent focus-within:border-white\">\n                <svg\n                  className=\"pointer-events-none hidden h-3 w-3 fill-current text-white\"\n                  version=\"1.1\"\n                  viewBox=\"0 0 17 12\"\n                  xmlns=\"http://www.w3.org/2000/svg\"\n                >\n                  <g fill=\"none\" fillRule=\"evenodd\">\n                    <g\n                      transform=\"translate(-9 -11)\"\n                      fill=\"#000000\"\n                      fillRule=\"nonzero\"\n                    >\n                      <path d=\"m25.576 11.414c0.56558 0.55188 0.56558 1.4439 0 1.9961l-9.404 9.176c-0.28213 0.27529-0.65247 0.41385-1.0228 0.41385-0.37034 0-0.74068-0.13855-1.0228-0.41385l-4.7019-4.588c-0.56584-0.55188-0.56584-1.4442 0-1.9961 0.56558-0.55214 1.4798-0.55214 2.0456 0l3.679 3.5899 8.3812-8.1779c0.56558-0.55214 1.4798-0.55214 2.0456 0z\" />\n                    </g>\n                  </g>\n                </svg>\n              </div>\n              <div className=\"ml-3 text-sm leading-6\">\n                <label\n                  htmlFor=\"checkbox-2\"\n                  className=\"text-sm font-medium text-white\"\n                >\n                  I agree to the terms and conditions\n                </label>\n              </div>\n            </div>\n            <button className=\"w-full bg-[#ae7aff] p-3 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e]\">\n              Create Account\n            </button>\n            <p className=\"text-sm font-light text-white\">\n              Already registered?{\" \"}\n              <span className=\"cursor-pointer font-bold hover:underline\">\n                Sign in to your account\n              </span>\n            </p>\n          </div>\n        </div>\n      </div>\n    </div>\n  );\n};\n\nexport default SocialRegister;\n"
  },
  {
    "path": "src/components/templates/social-media/user-profile.jsx",
    "content": "import React from \"react\";\nimport {\n  BellIcon,\n  BookmarkIcon,\n  EllipsisVerticalIcon,\n  HeartIcon,\n  LinkIcon,\n  MagnifyingGlassIcon,\n} from \"@heroicons/react/24/outline\";\nimport {\n  ChatBubbleOvalLeftEllipsisIcon,\n  PlusCircleIcon,\n  ShareIcon,\n} from \"@heroicons/react/24/solid\";\n\nconst posts = [\n  {\n    id: 1,\n    authorImage:\n      \"https://images.pexels.com/photos/569314/pexels-photo-569314.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    authorName: \"Zen Garden\",\n    createdOn: \"15 minutes ago\",\n    text: \"Uncovering ancient secrets and mystical wonders. The journey is the destination. 🔮🌟 #MythologyQuest\",\n    images: [],\n    likeCount: 46,\n    commentCount: 13,\n    bookmarked: false,\n    liked: true,\n  },\n  {\n    id: 2,\n    authorImage:\n      \"https://images.pexels.com/photos/569314/pexels-photo-569314.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    authorName: \"Zen Garden\",\n    createdOn: \"1 hour ago\",\n    text: \"Swimming with the dolphins today, and it was magical! 🐬🌊 #OceanAdventure\",\n    images: [\n      \"https://images.pexels.com/photos/18107024/pexels-photo-18107024/free-photo-of-an-old-city-view.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    ],\n    likeCount: 102,\n    commentCount: 18,\n    bookmarked: true,\n    liked: false,\n  },\n  {\n    id: 3,\n    authorImage:\n      \"https://images.pexels.com/photos/569314/pexels-photo-569314.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    authorName: \"Zen Garden\",\n    createdOn: \"59 minutes ago\",\n    text: \"Harnessing the power of the sun for a brighter future. ☀️🔋 #SolarEnergy\",\n    images: [\n      \"https://images.pexels.com/photos/18107025/pexels-photo-18107025/free-photo-of-man-reading-newspaper.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n      \"https://images.pexels.com/photos/18148933/pexels-photo-18148933/free-photo-of-city-road-man-people.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n      \"https://images.pexels.com/photos/18148937/pexels-photo-18148937/free-photo-of-city-road-traffic-landscape.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    ],\n    likeCount: 802,\n    commentCount: 99,\n    bookmarked: true,\n    liked: true,\n  },\n  {\n    id: 4,\n    authorImage:\n      \"https://images.pexels.com/photos/569314/pexels-photo-569314.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    authorName: \"Zen Garden\",\n    createdOn: \"17 hours ago\",\n    text: \"Embracing the lunar magic tonight. The full moon is my muse. 🌕🌌 #MoonlightDreams\",\n    images: [],\n    likeCount: 420,\n    commentCount: 20,\n    bookmarked: false,\n    liked: false,\n    link: {\n      image:\n        \"https://images.pexels.com/photos/569314/pexels-photo-569314.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n      title: \"Zen Garden\",\n      caption: \"Digital artist | Creative mind | Color magician 🎨🖌️🖼️\",\n      url: \"http://www.zengardenmindfulness.com/\",\n    },\n  },\n  {\n    id: 5,\n    authorImage:\n      \"https://images.pexels.com/photos/569314/pexels-photo-569314.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    authorName: \"Zen Garden\",\n    createdOn: \"1 day ago\",\n    text: \"💡 Tech Poll: Which emerging technology excites you the most?\",\n    images: [],\n    likeCount: 207,\n    commentCount: 63,\n    bookmarked: false,\n    liked: false,\n    poll: [\n      {\n        name: \"Artificial Intelligence\",\n      },\n      {\n        name: \"Virtual Reality\",\n      },\n      {\n        name: \"Quantum Computing\",\n      },\n      {\n        name: \"5G Connectivity\",\n      },\n    ],\n  },\n  {\n    id: 6,\n    authorImage:\n      \"https://images.pexels.com/photos/569314/pexels-photo-569314.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    authorName: \"Zen Garden\",\n    createdOn: \"7 days ago\",\n    text: \"🧘‍♂️ Mindfulness Poll: Which mindfulness practice resonates with you the most?\",\n    images: [],\n    likeCount: 97,\n    commentCount: 13,\n    liked: true,\n    bookmarked: false,\n    poll: [\n      {\n        name: \"Meditation\",\n        votePercentage: 30,\n      },\n      {\n        name: \"Yoga\",\n        selected: true,\n        votePercentage: 33,\n      },\n      {\n        name: \"Deep Breathing\",\n        votePercentage: 27,\n      },\n      {\n        name: \"Tai Chi\",\n        votePercentage: 20,\n      },\n    ],\n  },\n  {\n    id: 7,\n    authorImage:\n      \"https://images.pexels.com/photos/569314/pexels-photo-569314.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    authorName: \"Zen Garden\",\n    createdOn: \"1 months ago\",\n    text: \"🎨 Art Poll: What's your preferred art medium for creating masterpieces?\",\n    images: [],\n    likeCount: 99,\n    commentCount: 13,\n    bookmarked: true,\n    liked: false,\n    poll: [\n      {\n        name: \"Acrylic Paint\",\n        votePercentage: 20,\n      },\n      {\n        name: \"Watercolor\",\n        votePercentage: 19,\n      },\n      {\n        name: \"Digital Art\",\n        votePercentage: 18,\n      },\n      {\n        name: \"Charcoal Sketching\",\n        votePercentage: 43,\n      },\n    ],\n  },\n];\n\nconst UserProfile = () => {\n  return (\n    <div className=\"min-h-screen bg-[#121212]\">\n      <header className=\"fixed top-0 z-10 mx-auto flex w-full max-w-full items-center justify-between border-b-[1px] border-b-slate-300 bg-[#121212] p-4 text-white lg:px-10\">\n        <h1 className=\"text-xl font-extrabold md:text-3xl\">Profile</h1>\n        <div className=\"flex w-max flex-shrink-0 items-center justify-end gap-6\">\n          <span className=\"relative\">\n            <MagnifyingGlassIcon className=\"h-8 w-8\" />\n          </span>\n          <span className=\"relative\">\n            <BellIcon className=\"h-8 w-8 text-white\" />\n            <span className=\"absolute right-1 top-0 flex h-2.5 w-2.5 items-center justify-center rounded-full bg-green-500 p-1 text-white\"></span>\n          </span>\n          <button className=\"hidden w-max items-center justify-center border-[1px] border-white p-3 text-center font-bold text-white md:inline-flex\">\n            <PlusCircleIcon className=\"mr-2 h-5 w-5\" /> Create new\n          </button>\n        </div>\n      </header>\n      <div className=\"mt-[65px] grid grid-cols-12 gap-4 pb-8 pt-0 sm:px-4 sm:pt-8 md:mt-[83px] lg:px-10\">\n        {/* Empty */}\n        <aside className=\"col-span-12 text-white md:col-span-5 lg:col-span-4 xl:col-span-3\">\n          {/* Profile Card */}\n          <div className=\"sticky top-[100px] border-b border-white p-4 sm:border\">\n            <img\n              className=\"mb-3 flex aspect-square h-16 w-16 rounded-full border-2 border-[#ae7aff] object-cover\"\n              src=\"https://images.pexels.com/photos/569314/pexels-photo-569314.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\"\n              alt=\"avatar\"\n            />\n\n            <h2 className=\"mb-1 font-bold\">Zen Garden</h2>\n            <p className=\"text-sm\">\n              Meditation guru | Nature lover | Zen master 🧘‍♂️🌿🍃\n            </p>\n\n            <hr className=\"my-4 h-[1px] w-full\" />\n            <div className=\"mb-4\">\n              <h3 className=\"mb-1 font-bold\">Short Bio</h3>\n              <p className=\"text-sm\">\n                Guiding inner peace through meditation, finding solace in\n                nature&apos;s embrace, and mastering the art of Zen living.\n                🧘‍♂️🌿🍃\n              </p>\n            </div>\n            <div className=\"mb-4 text-sm\">\n              <h3 className=\"mb-1 font-bold\">Public link</h3>\n              <button className=\"block text-[#ae7aff] hover:underline\">\n                gardenzen@gmail.com\n              </button>\n              <button className=\"block break-all text-[#ae7aff] hover:underline\">\n                http://www.zengardenmindfulness.com/\n              </button>\n            </div>\n            <p className=\"mb-4 flex gap-x-4\">\n              <span className=\"inline-block\">\n                <span className=\"font-bold\">400&nbsp;</span>\n                <span className=\"text-sm text-gray-400\">Followers</span>\n              </span>\n              <span className=\"inline-block\">\n                <span className=\"font-bold\">70&nbsp;</span>\n                <span className=\"text-sm text-gray-400\">Following</span>\n              </span>\n            </p>\n            <button className=\"inline-flex w-max items-center bg-[#ae7aff] px-4 py-2 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out after:content-['Follow'] focus:after:content-['Unfollow'] active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e]\"></button>\n          </div>\n        </aside>\n\n        <section className=\"col-span-12 text-white md:col-span-7 lg:col-span-5 xl:col-span-6\">\n          {/* Post Lists */}\n          {posts.map((post) => (\n            <div\n              key={post.id}\n              className=\"relative mb-2 w-full last:mb-0 sm:mb-4\"\n            >\n              <div className=\"flex border-b border-t border-white p-4 text-white sm:border-l sm:border-r\">\n                {/* Author Profile */}\n                <div className=\"h-10 w-10 shrink-0 sm:h-12 sm:w-12\">\n                  <img\n                    src={post.authorImage}\n                    alt={post.authorName}\n                    className=\"h-full w-full rounded-full object-cover\"\n                  />\n                </div>\n                {/* Center-Right Content */}\n                <div className=\"pl-4 pt-1\">\n                  {/* Post Metadata */}\n                  <div className=\"mb-2 flex items-center gap-x-2\">\n                    <div className=\"w-full\">\n                      <h2 className=\"inline-block font-bold\">\n                        {post.authorName}\n                      </h2>\n                      <span className=\"ml-2 inline-block text-sm text-gray-400\">\n                        {post.createdOn}\n                      </span>\n                    </div>\n                    <button className=\"ml-auto shrink-0 hover:text-[#ae7aff]\">\n                      <EllipsisVerticalIcon className=\"h-5 w-5\" />\n                    </button>\n                  </div>\n                  {/* Post Text */}\n                  <p className=\"mb-4 text-sm sm:text-base\">{post.text}</p>\n                  {/* Post Images */}\n                  {post.images.length > 0 && (\n                    <div className=\"mb-4 grid grid-cols-[repeat(auto-fit,_minmax(200px,_1fr))] gap-4\">\n                      {post.images.map((image, i) => (\n                        <img\n                          key={image}\n                          src={image}\n                          alt={`attachment-${i}`}\n                          className=\"rounded-md\"\n                        />\n                      ))}\n                    </div>\n                  )}\n                  {/* Link Preview */}\n                  {post.link && (\n                    <div className=\"group mb-4 border opacity-95 hover:opacity-100\">\n                      <div className=\"max-h-52 overflow-hidden\">\n                        <img\n                          src={post.link.image}\n                          alt={post.link.title}\n                          className=\"object-cover\"\n                        />\n                      </div>\n                      {/* Link Content */}\n                      <div className=\"p-4\">\n                        <h3 className=\"mb-2 font-bold\">{post.link.title}</h3>\n                        <p className=\"mb-3 text-sm\">{post.link.caption}</p>\n                        <span className=\"inline-flex items-center gap-x-2 break-all text-sm text-[#ae7aff] no-underline group-hover:underline\">\n                          <LinkIcon className=\"h-4 w-4 shrink-0\" />\n                          {post.link.url}\n                        </span>\n                      </div>\n                    </div>\n                  )}\n                  {/* Polls */}\n                  {post.poll &&\n                    post.poll.map((option) => (\n                      <button\n                        key={option?.name}\n                        className={`relative z-[1] mb-4 inline-flex w-full items-center gap-x-4 border p-4 before:absolute before:inset-y-0 before:left-0 before:z-[-1] before:w-[var(--data-vote-percentage)] last:mb-0 ${\n                          option?.votePercentage && option?.votePercentage >= 0\n                            ? \"\"\n                            : \"hover:bg-[#ae7aff] hover:text-black focus:border-[#ae7aff] focus:bg-[#ae7aff] focus:text-black\"\n                        } ${\n                          option?.selected\n                            ? \"before:bg-[#ae7aff]\"\n                            : \"before:bg-gray-400/10\"\n                        }\n              `}\n                        disabled={Boolean(option?.votePercentage)}\n                        style={{\n                          \"--data-vote-percentage\": `${\n                            option?.votePercentage || 0\n                          }%`,\n                        }}\n                      >\n                        {option?.name}{\" \"}\n                        {option?.votePercentage && (\n                          <span className=\"ml-auto shrink-0 text-sm\">\n                            {option.votePercentage}%\n                          </span>\n                        )}\n                      </button>\n                    ))}\n                  {/* Post Actions Buttons */}\n                  <div className=\"flex gap-x-4\">\n                    {/* Like Button */}\n                    <button\n                      className={`group inline-flex items-center gap-x-1 outline-none after:content-[attr(data-like-count)] focus:after:content-[attr(data-like-count-alt)] ${\n                        post.liked\n                          ? \"text-[#ae7aff] focus:text-inherit\"\n                          : \"hover:text-[#ae7aff] focus:text-[#ae7aff]\"\n                      }`}\n                      data-like-count={post.likeCount}\n                      data-like-count-alt={\n                        post.liked ? post.likeCount - 1 : post.likeCount + 1\n                      }\n                    >\n                      <HeartIcon\n                        className={`h-5 w-5 ${\n                          post.liked\n                            ? \"fill-[#ae7aff] group-focus:fill-none\"\n                            : \"group-focus:fill-[#ae7aff]\"\n                        }`}\n                      />\n                    </button>\n                    {/* Comment Button */}\n                    <button className=\"inline-flex items-center gap-x-1 outline-none hover:text-[#ae7aff]\">\n                      <ChatBubbleOvalLeftEllipsisIcon className=\"h-5 w-5\" />\n                      <span>{post.commentCount}</span>\n                    </button>\n                    {/* Share and Bookmarked Button */}\n                    <div className=\"ml-auto\">\n                      <button className=\"mr-2 inline-flex items-center gap-x-1 outline-none hover:text-[#ae7aff]\">\n                        <ShareIcon className=\"h-5 w-5\" />\n                      </button>\n                      <button\n                        className={`group inline-flex items-center gap-x-1 outline-none hover:text-[#ae7aff] ${\n                          post.bookmarked\n                            ? \"focus:text-white\"\n                            : \"focus:text-[#ae7aff]\"\n                        }`}\n                      >\n                        <BookmarkIcon\n                          className={`h-5 w-5 ${\n                            post.bookmarked\n                              ? \"fill-[#ae7aff] text-[#ae7aff] group-focus:fill-none group-focus:text-inherit\"\n                              : \"group-focus:fill-[#ae7aff]\"\n                          }`}\n                        />\n                      </button>\n                    </div>\n                  </div>\n                </div>\n              </div>\n            </div>\n          ))}\n        </section>\n        {/* Trending Topics */}\n        <aside className=\"hidden text-white lg:col-span-3 lg:block\">\n          <div className=\"sticky top-[100px] border p-4\">\n            <h2 className=\"mb-4 font-bold\"># Trending Hashtags</h2>\n            <ul className=\"list-disc pl-4\">\n              {[\"javascript\", \"typescript\", \"java\", \"python\", \"golang\"].map(\n                (hashtag) => (\n                  <li key={hashtag}>\n                    <button className=\"hover:text-[#ae7aff]\">#{hashtag}</button>\n                  </li>\n                ),\n              )}\n            </ul>\n          </div>\n        </aside>\n      </div>\n    </div>\n  );\n};\n\nexport default UserProfile;\n"
  },
  {
    "path": "src/components/templates/todo/empty-todos.jsx",
    "content": "import React from \"react\";\nimport { PlusCircleIcon } from \"@heroicons/react/20/solid\";\nimport { InboxIcon } from \"@heroicons/react/24/outline\";\n\nconst EmptyTodos = () => {\n  return (\n    <div className=\"min-h-screen bg-[#121212]\">\n      <header className=\"fixed top-0 z-10 mx-auto flex w-full max-w-full items-center justify-between border-b-[1px] border-b-slate-300 bg-[#121212] p-4 text-white lg:px-10\">\n        <h1 className=\"text-xl font-extrabold md:text-3xl\">All todos</h1>\n        <button className=\"inline-flex w-max items-center justify-center border-[1px] border-white p-3 text-center font-bold text-white\">\n          <PlusCircleIcon className=\"mr-2 h-5 w-5\" /> Create new\n        </button>\n      </header>\n      <div className=\"flex h-full min-h-screen w-full flex-col items-center justify-center px-4 text-center\">\n        <div className=\"flex flex-col items-center justify-center gap-4 text-white\">\n          <InboxIcon className=\"h-20 w-20 text-white md:h-28 md:w-28\" />\n          <h1 className=\"text-4xl font-extrabold md:text-6xl\">\n            No todos found?\n          </h1>\n          <p className=\"max-w-sm text-xs text-gray-200 md:text-sm\">\n            No todo has been added till now. Click the below button to create a\n            new task.\n          </p>\n        </div>\n        <button className=\"mt-14 inline-flex w-max items-center bg-[#ae7aff] p-3 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e]\">\n          <PlusCircleIcon className=\"mr-2 h-5 w-5 text-[#121212]\" /> Create a\n          new task\n        </button>\n      </div>\n    </div>\n  );\n};\n\nexport default EmptyTodos;\n"
  },
  {
    "path": "src/components/templates/todo/index.ts",
    "content": "import TodosList from \"./todos\";\nimport EmptyTodos from \"./empty-todos\";\n\nconst Todo = {\n  TodosList,\n  EmptyTodos,\n};\n\nexport default Todo;\n"
  },
  {
    "path": "src/components/templates/todo/todos.jsx",
    "content": "import { PlusCircleIcon } from \"@heroicons/react/20/solid\";\nimport { PencilIcon, TrashIcon } from \"@heroicons/react/24/outline\";\n\nconst todos = [\n  {\n    task: \"Complete coding challenge\",\n    date: \"10 Aug 2023\",\n  },\n  {\n    task: \"Read programming article\",\n    date: \"15 Aug 2023\",\n  },\n  {\n    task: \"Debug the issue in the backend\",\n    date: \"20 Aug 2023\",\n  },\n  {\n    task: \"Review pull requests\",\n    date: \"25 Aug 2023\",\n  },\n  {\n    task: \"Prepare presentation on algorithms\",\n    date: \"05 Sept 2023\",\n  },\n  {\n    task: \"Attend programming meetup\",\n    date: \"18 Sept 2023\",\n  },\n  {\n    task: \"Optimize database queries\",\n    date: \"10 Oct 2023\",\n  },\n  {\n    task: \"Participate in hackathon\",\n    date: \"05 Nov 2023\",\n  },\n  {\n    task: \"Contribute to open source project\",\n    date: \"15 Nov 2023\",\n  },\n];\n\nconst TodosList = () => {\n  return (\n    <div className=\"min-h-screen bg-[#121212]\">\n      <header className=\"fixed top-0 z-10 mx-auto flex w-full max-w-full items-center justify-between border-b-[1px] border-b-slate-300 bg-[#121212] p-4 text-white lg:px-10\">\n        <h1 className=\"text-xl font-extrabold md:text-3xl\">All todos</h1>\n        <button className=\"inline-flex w-max items-center justify-center border-[1px] border-white p-3 text-center font-bold text-white\">\n          <PlusCircleIcon className=\"mr-2 h-5 w-5\" /> Create new\n        </button>\n      </header>\n      <div className=\"mx-auto flex h-full min-h-screen w-full max-w-full flex-col items-start justify-start px-4 py-28 text-center md:max-w-5xl\">\n        <div className=\"flex w-full flex-col gap-5\">\n          <div className=\"flex w-full flex-shrink-0 flex-wrap items-center justify-start gap-3 md:gap-6\">\n            <button className=\"border-[1px] border-[#565656] bg-[#232323] px-3 py-2 text-sm font-semibold text-white md:text-base\">\n              All todos\n            </button>\n            <button className=\"px-3 py-2 text-sm font-semibold text-white hover:bg-[#232323] md:text-base\">\n              Pending\n            </button>\n            <button className=\"px-3 py-2 text-sm font-semibold text-white hover:bg-[#232323] md:text-base\">\n              Completed\n            </button>\n          </div>\n          <ul className=\"divide-y-[1px] divide-white border-[1px] border-white p-0\">\n            <li className=\"flex w-full items-center justify-start\">\n              <input\n                placeholder=\"Type to add a new todo...\"\n                className=\"w-full bg-transparent p-4 text-white placeholder:text-gray-500 md:p-6\"\n              />\n              <button className=\"bg-green-500 p-4 text-center text-black hover:bg-green-400 active:bg-green-600 md:p-6\">\n                <PlusCircleIcon className=\"h-8 w-8\" />\n              </button>\n            </li>\n            {todos.map(({ task, date }, i) => {\n              return (\n                <li\n                  key={i}\n                  className=\"flex w-full items-center justify-start p-4 md:p-6\"\n                >\n                  <input\n                    type=\"checkbox\"\n                    id={`checkbox-${i + 1}`}\n                    name={`checkbox-${i + 1}`}\n                    className={`absolute h-5 w-5 cursor-pointer opacity-0 md:h-6 md:w-6 [&:checked+div+p]:text-[#898989] [&:checked+div+p]:line-through [&:checked+div]:bg-green-500 [&:checked+div_svg]:block`}\n                  />\n                  <div className=\"mr-2 flex h-5 w-5 flex-shrink-0 items-center justify-center border-[1px] border-white bg-transparent focus-within:border-white md:mr-4 md:h-6 md:w-6\">\n                    <svg\n                      className=\"pointer-events-none hidden h-3 w-3 fill-current text-white\"\n                      version=\"1.1\"\n                      viewBox=\"0 0 17 12\"\n                      xmlns=\"http://www.w3.org/2000/svg\"\n                    >\n                      <g fill=\"none\" fillRule=\"evenodd\">\n                        <g\n                          transform=\"translate(-9 -11)\"\n                          fill=\"#000000\"\n                          fillRule=\"nonzero\"\n                        >\n                          <path d=\"m25.576 11.414c0.56558 0.55188 0.56558 1.4439 0 1.9961l-9.404 9.176c-0.28213 0.27529-0.65247 0.41385-1.0228 0.41385-0.37034 0-0.74068-0.13855-1.0228-0.41385l-4.7019-4.588c-0.56584-0.55188-0.56584-1.4442 0-1.9961 0.56558-0.55214 1.4798-0.55214 2.0456 0l3.679 3.5899 8.3812-8.1779c0.56558-0.55214 1.4798-0.55214 2.0456 0z\" />\n                        </g>\n                      </g>\n                    </svg>\n                  </div>\n                  <p\n                    id={`todo_${i + 1}`}\n                    className=\"mr-3 truncate text-left text-sm font-semibold text-white md:text-base\"\n                  >\n                    {task}\n                  </p>\n                  <div className=\"ml-auto flex flex-shrink-0 border-[1px] border-white px-2 py-1 text-xs text-white md:text-sm\">\n                    {date}\n                  </div>\n                  <button className=\"ml-2 flex flex-shrink-0 border-[1px] border-red-500 bg-red-500 p-1\">\n                    <TrashIcon className=\"h-5 w-5 text-white\" />\n                  </button>\n                  <button className=\"ml-2 flex flex-shrink-0 border-[1px] border-blue-500 bg-blue-500 p-1\">\n                    <PencilIcon className=\"h-5 w-5 text-white\" />\n                  </button>\n                </li>\n              );\n            })}\n          </ul>\n        </div>\n      </div>\n    </div>\n  );\n};\n\nexport default TodosList;\n"
  },
  {
    "path": "src/components/templates/youtube/change-password.jsx",
    "content": "\"use client\";\nimport { classNames } from \"@/utils\";\nimport React from \"react\";\nimport { MagnifyingGlassIcon, XCircleIcon } from \"@heroicons/react/24/outline\";\nimport { bottomTotalItems, navItems, logo } from \"./data\";\n\nconst ChangePassword = () => {\n  return (\n    <div className=\"h-screen overflow-y-auto bg-[#121212] text-white\">\n      <header className=\"sticky inset-x-0 top-0 z-50 w-full border-b border-white bg-[#121212] px-4\">\n        <nav className=\"mx-auto flex max-w-7xl items-center py-2\">\n          <div className=\"mr-4 w-12 shrink-0 sm:w-16\">{logo}</div>\n          <div className=\"relative mx-auto hidden w-full max-w-md overflow-hidden sm:block\">\n            <input\n              className=\"w-full border bg-transparent py-1 pl-8 pr-3 placeholder-white outline-none sm:py-2\"\n              placeholder=\"Search\"\n            />\n            <span className=\"absolute left-2.5 top-1/2 inline-block -translate-y-1/2\">\n              <MagnifyingGlassIcon className=\" h-4 w-4\" />\n            </span>\n          </div>\n          <button className=\"ml-auto sm:hidden\">\n            <MagnifyingGlassIcon className=\" h-6 w-6\" />\n          </button>\n          <button className=\"group peer ml-4 flex w-6 shrink-0 flex-wrap gap-y-1.5 sm:hidden\">\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-2/3 bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n          </button>\n          <div className=\"fixed inset-y-0 right-0 flex w-full max-w-xs shrink-0 translate-x-full flex-col border-l border-white bg-[#121212] duration-200 hover:translate-x-0 peer-focus:translate-x-0 sm:static sm:ml-4 sm:w-auto sm:translate-x-0 sm:border-none\">\n            <div className=\"relative flex w-full items-center justify-between border-b border-white px-4 py-2 sm:hidden\">\n              <span className=\"inline-block w-12\">{logo}</span>\n              <button className=\"inline-block w-8\">\n                <XCircleIcon />\n              </button>\n            </div>\n            <ul className=\"my-4 flex w-full flex-wrap gap-2 px-4 sm:hidden\">\n              {navItems\n                .filter((item) => !item.mobileView)\n                .map((item) => (\n                  <li key={item.name} className=\"w-full\">\n                    <button className=\"flex w-full items-center justify-start gap-x-4 border border-white px-4 py-1.5 text-left hover:bg-[#ae7aff] hover:text-black focus:border-[#ae7aff] focus:bg-[#ae7aff] focus:text-black\">\n                      <span className=\"inline-block w-full max-w-[20px] group-hover:mr-4 lg:mr-4\">\n                        {item.icon}\n                      </span>\n                      <span>{item.name}</span>\n                    </button>\n                  </li>\n                ))}\n            </ul>\n\n            <div className=\"mb-8 mt-auto px-4 sm:mb-0 sm:mt-0 sm:px-0\">\n              <button className=\"flex w-full gap-4 text-left sm:items-center\">\n                <img\n                  src=\"https://images.pexels.com/photos/1115816/pexels-photo-1115816.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\"\n                  alt=\"React-Patterns\"\n                  className=\"h-16 w-16 shrink-0 rounded-full sm:h-12 sm:w-12\"\n                />\n\n                <div className=\"w-full pt-2 sm:hidden\">\n                  <h6 className=\"font-semibold\">React Patterns</h6>\n                  <p className=\"text-sm text-gray-300\">@reactpatterns</p>\n                </div>\n              </button>\n            </div>\n          </div>\n        </nav>\n      </header>\n      <div className=\"flex min-h-[calc(100vh-66px)] sm:min-h-[calc(100vh-82px)]\">\n        <aside className=\"group fixed inset-x-0 bottom-0 z-40 w-full shrink-0 border-t border-white bg-[#121212] px-2 py-2 sm:absolute sm:inset-y-0 sm:max-w-[70px] sm:border-r sm:border-t-0 sm:py-6 sm:hover:max-w-[250px] lg:sticky lg:max-w-[250px]\">\n          <ul className=\"flex justify-around gap-y-2 sm:sticky sm:top-[106px] sm:min-h-[calc(100vh-130px)] sm:flex-col\">\n            {navItems.map((item, i, arr) => (\n              <li\n                key={item.name}\n                className={classNames(\n                  item.mobileView ? \"\" : \"hidden sm:block\",\n                  arr.length - i === bottomTotalItems ? \"mt-auto\" : \"\",\n                )}\n              >\n                <button className=\"flex flex-col items-center justify-center border-white py-1 focus:text-[#ae7aff] sm:w-full sm:flex-row sm:border sm:p-1.5 sm:hover:bg-[#ae7aff] sm:hover:text-black sm:focus:border-[#ae7aff] sm:focus:bg-[#ae7aff] sm:focus:text-black sm:group-hover:justify-start sm:group-hover:px-4 lg:justify-start lg:px-4\">\n                  <span className=\"inline-block w-5 shrink-0 sm:group-hover:mr-4 lg:mr-4\">\n                    {item.icon}\n                  </span>\n                  <span className=\"block sm:hidden sm:group-hover:inline lg:inline\">\n                    {item.name}\n                  </span>\n                </button>\n              </li>\n            ))}\n          </ul>\n        </aside>\n        <section className=\"w-full pb-[70px] sm:ml-[70px] sm:pb-0 lg:ml-0\">\n          <div className=\"relative min-h-[150px] w-full pt-[16.28%]\">\n            <div className=\"absolute inset-0 overflow-hidden\">\n              <img\n                src=\"https://images.pexels.com/photos/1092424/pexels-photo-1092424.jpeg?auto=compress\"\n                alt=\"cover-photo\"\n              />\n            </div>\n          </div>\n          <div className=\"px-4 pb-4\">\n            <div className=\"flex flex-wrap gap-4 pb-4 pt-6\">\n              <div className=\"relative -mt-12 inline-block h-28 w-28 shrink-0 overflow-hidden rounded-full border-2\">\n                <img\n                  src=\"https://images.pexels.com/photos/1115816/pexels-photo-1115816.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\"\n                  alt=\"Channel\"\n                  className=\"h-full w-full\"\n                />\n              </div>\n\n              <div className=\"mr-auto inline-block\">\n                <h1 className=\"font-bolg text-xl\">React Patterns</h1>\n                <p className=\"text-sm text-gray-400\">@reactpatterns</p>\n              </div>\n\n              <div className=\"inline-block\">\n                <button className=\"group/btn mr-1 flex w-full items-center gap-x-2 bg-[#ae7aff] px-3 py-2 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e] sm:w-auto\">\n                  View channel\n                </button>\n              </div>\n            </div>\n\n            <ul className=\"no-scrollbar sticky top-[66px] z-[2] flex flex-row gap-x-2 overflow-auto border-b-2 border-gray-400 bg-[#121212] py-2 sm:top-[82px]\">\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Personal Information\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Channel Information\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-[#ae7aff] bg-white px-3 py-1.5 text-[#ae7aff]\">\n                  Change Password\n                </button>\n              </li>\n            </ul>\n\n            <div className=\"flex flex-wrap justify-center gap-y-4 py-4\">\n              <div className=\"w-full sm:w-1/2 lg:w-1/3\">\n                <h5 className=\"font-semibold\">Password</h5>\n                <p className=\"text-gray-300\">\n                  Please enter your current password to change your password.\n                </p>\n              </div>\n              <div className=\"w-full sm:w-1/2 lg:w-2/3\">\n                <div className=\"rounded-lg border\">\n                  <div className=\"flex flex-wrap gap-y-4 p-4\">\n                    <div className=\"w-full\">\n                      <label className=\"mb-1 inline-block\" htmlFor=\"old-pwd\">\n                        Current password\n                      </label>\n                      <input\n                        type=\"password\"\n                        className=\"w-full rounded-lg border bg-transparent px-2 py-1.5\"\n                        id=\"old-pwd\"\n                        placeholder=\"Current password\"\n                      />\n                    </div>\n                    <div className=\"w-full\">\n                      <label className=\"mb-1 inline-block\" htmlFor=\"new-pwd\">\n                        New password\n                      </label>\n                      <input\n                        type=\"password\"\n                        className=\"w-full rounded-lg border bg-transparent px-2 py-1.5\"\n                        id=\"new-pwd\"\n                        placeholder=\"New password\"\n                      />\n                      <p className=\"mt-0.5 text-sm text-gray-300\">\n                        Your new password must be more than 8 characters.\n                      </p>\n                    </div>\n                    <div className=\"w-full\">\n                      <label className=\"mb-1 inline-block\" htmlFor=\"cnfrm-pwd\">\n                        Confirm password\n                      </label>\n                      <input\n                        type=\"password\"\n                        className=\"w-full rounded-lg border bg-transparent px-2 py-1.5\"\n                        id=\"cnfrm-pwd\"\n                        placeholder=\"Confirm password\"\n                      />\n                    </div>\n                  </div>\n                  <hr className=\"border border-gray-300\" />\n                  <div className=\"flex items-center justify-end gap-4 p-4\">\n                    <button className=\"inline-block rounded-lg border px-3 py-1.5 hover:bg-white/10\">\n                      Cancel\n                    </button>\n                    <button className=\"inline-block bg-[#ae7aff] px-3 py-1.5 text-black\">\n                      Update Password\n                    </button>\n                  </div>\n                </div>\n              </div>\n            </div>\n          </div>\n        </section>\n      </div>\n    </div>\n  );\n};\n\nexport default ChangePassword;\n"
  },
  {
    "path": "src/components/templates/youtube/channel-empty-playlist.jsx",
    "content": "\"use client\";\nimport { classNames } from \"@/utils\";\nimport React from \"react\";\nimport {\n  MagnifyingGlassIcon,\n  UserPlusIcon,\n  XCircleIcon,\n} from \"@heroicons/react/24/outline\";\nimport { bottomTotalItems, navItems, logo, icons } from \"./data\";\n\nconst ChannelEmptyPlaylist = () => {\n  return (\n    <div className=\"h-screen overflow-y-auto bg-[#121212] text-white\">\n      <header className=\"sticky inset-x-0 top-0 z-50 w-full border-b border-white bg-[#121212] px-4\">\n        <nav className=\"mx-auto flex max-w-7xl items-center py-2\">\n          <div className=\"mr-4 w-12 shrink-0 sm:w-16\">{logo}</div>\n          <div className=\"relative mx-auto hidden w-full max-w-md overflow-hidden sm:block\">\n            <input\n              className=\"w-full border bg-transparent py-1 pl-8 pr-3 placeholder-white outline-none sm:py-2\"\n              placeholder=\"Search\"\n            />\n            <span className=\"absolute left-2.5 top-1/2 inline-block -translate-y-1/2\">\n              <MagnifyingGlassIcon className=\" h-4 w-4\" />\n            </span>\n          </div>\n          <button className=\"ml-auto sm:hidden\">\n            <MagnifyingGlassIcon className=\" h-6 w-6\" />\n          </button>\n          <button className=\"group peer ml-4 flex w-6 shrink-0 flex-wrap gap-y-1.5 sm:hidden\">\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-2/3 bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n          </button>\n          <div className=\"fixed inset-y-0 right-0 flex w-full max-w-xs shrink-0 translate-x-full flex-col border-l border-white bg-[#121212] duration-200 hover:translate-x-0 peer-focus:translate-x-0 sm:static sm:ml-4 sm:w-auto sm:translate-x-0 sm:border-none\">\n            <div className=\"relative flex w-full items-center justify-between border-b border-white px-4 py-2 sm:hidden\">\n              <span className=\"inline-block w-12\">{logo}</span>\n              <button className=\"inline-block w-8\">\n                <XCircleIcon />\n              </button>\n            </div>\n            <ul className=\"my-4 flex w-full flex-wrap gap-2 px-4 sm:hidden\">\n              {navItems\n                .filter((item) => !item.mobileView)\n                .map((item) => (\n                  <li key={item.name} className=\"w-full\">\n                    <button className=\"flex w-full items-center justify-start gap-x-4 border border-white px-4 py-1.5 text-left hover:bg-[#ae7aff] hover:text-black focus:border-[#ae7aff] focus:bg-[#ae7aff] focus:text-black\">\n                      <span className=\"inline-block w-full max-w-[20px] group-hover:mr-4 lg:mr-4\">\n                        {item.icon}\n                      </span>\n                      <span>{item.name}</span>\n                    </button>\n                  </li>\n                ))}\n            </ul>\n\n            <div className=\"mb-8 mt-auto flex w-full flex-wrap gap-4 px-4 sm:mb-0 sm:mt-0 sm:items-center sm:px-0\">\n              <button className=\"w-full bg-[#383737] px-3 py-2 hover:bg-[#4f4e4e] sm:w-auto sm:bg-transparent\">\n                Log in\n              </button>\n              <button className=\"mr-1 w-full bg-[#ae7aff] px-3 py-2 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e] sm:w-auto\">\n                Sign up\n              </button>\n            </div>\n          </div>\n        </nav>\n      </header>\n      <div className=\"flex min-h-[calc(100vh-66px)] sm:min-h-[calc(100vh-82px)]\">\n        <aside className=\"group fixed inset-x-0 bottom-0 z-40 w-full shrink-0 border-t border-white bg-[#121212] px-2 py-2 sm:absolute sm:inset-y-0 sm:max-w-[70px] sm:border-r sm:border-t-0 sm:py-6 sm:hover:max-w-[250px] lg:sticky lg:max-w-[250px]\">\n          <ul className=\"flex justify-around gap-y-2 sm:sticky sm:top-[106px] sm:min-h-[calc(100vh-130px)] sm:flex-col\">\n            {navItems.map((item, i, arr) => (\n              <li\n                key={item.name}\n                className={classNames(\n                  item.mobileView ? \"\" : \"hidden sm:block\",\n                  arr.length - i === bottomTotalItems ? \"mt-auto\" : \"\",\n                )}\n              >\n                <button className=\"flex flex-col items-center justify-center border-white py-1 focus:text-[#ae7aff] sm:w-full sm:flex-row sm:border sm:p-1.5 sm:hover:bg-[#ae7aff] sm:hover:text-black sm:focus:border-[#ae7aff] sm:focus:bg-[#ae7aff] sm:focus:text-black sm:group-hover:justify-start sm:group-hover:px-4 lg:justify-start lg:px-4\">\n                  <span className=\"inline-block w-5 shrink-0 sm:group-hover:mr-4 lg:mr-4\">\n                    {item.icon}\n                  </span>\n                  <span className=\"block sm:hidden sm:group-hover:inline lg:inline\">\n                    {item.name}\n                  </span>\n                </button>\n              </li>\n            ))}\n          </ul>\n        </aside>\n        <section className=\"w-full pb-[70px] sm:ml-[70px] sm:pb-0 lg:ml-0\">\n          <div className=\"relative min-h-[150px] w-full pt-[16.28%]\">\n            <div className=\"absolute inset-0 overflow-hidden\">\n              <img\n                src=\"https://images.pexels.com/photos/1092424/pexels-photo-1092424.jpeg?auto=compress\"\n                alt=\"cover-photo\"\n              />\n            </div>\n          </div>\n          <div className=\"px-4 pb-4\">\n            <div className=\"flex flex-wrap gap-4 pb-4 pt-6\">\n              <span className=\"relative -mt-12 inline-block h-28 w-28 shrink-0 overflow-hidden rounded-full border-2\">\n                <img\n                  src=\"https://images.pexels.com/photos/1115816/pexels-photo-1115816.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\"\n                  alt=\"Channel\"\n                  className=\"h-full w-full\"\n                />\n              </span>\n\n              <div className=\"mr-auto inline-block\">\n                <h1 className=\"font-bolg text-xl\">React Patterns</h1>\n                <p className=\"text-sm text-gray-400\">@reactpatterns</p>\n                <p className=\"text-sm text-gray-400\">\n                  600k Subscribers&nbsp;&middot;&nbsp;220 Subscribed\n                </p>\n              </div>\n\n              <div className=\"inline-block\">\n                <div className=\"inline-flex min-w-[145px] justify-end\">\n                  <button className=\"group/btn mr-1 flex w-full items-center gap-x-2 bg-[#ae7aff] px-3 py-2 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e] sm:w-auto\">\n                    <span className=\"inline-block w-5\">\n                      <UserPlusIcon strokeWidth={2} />\n                    </span>\n                    <span className=\"group-focus/btn:hidden\">Subscribe</span>\n                    <span className=\"hidden group-focus/btn:block\">\n                      Subscribed\n                    </span>\n                  </button>\n                </div>\n              </div>\n            </div>\n\n            <ul className=\"no-scrollbar sticky top-[66px] z-[2] flex flex-row gap-x-2 overflow-auto border-b-2 border-gray-400 bg-[#121212] py-2 sm:top-[82px]\">\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Videos\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-[#ae7aff] bg-white px-3 py-1.5 text-[#ae7aff]\">\n                  Playlist\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Tweets\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Subscribed\n                </button>\n              </li>\n            </ul>\n            <div className=\"flex justify-center p-4\">\n              <div className=\"w-full max-w-sm text-center\">\n                <p className=\"mb-3 w-full\">\n                  <span className=\"inline-flex rounded-full bg-[#E4D3FF] p-2 text-[#AE7AFF]\">\n                    <span className=\"inline-block w-6\">\n                      {icons.collections}\n                    </span>\n                  </span>\n                </p>\n                <h5 className=\"mb-2 font-semibold\">No playlist created</h5>\n                <p>There are no playlist created on this channel.</p>\n              </div>\n            </div>\n          </div>\n        </section>\n      </div>\n    </div>\n  );\n};\n\nexport default ChannelEmptyPlaylist;\n"
  },
  {
    "path": "src/components/templates/youtube/channel-empty-subscribed.jsx",
    "content": "\"use client\";\nimport { classNames } from \"@/utils\";\nimport React from \"react\";\nimport {\n  MagnifyingGlassIcon,\n  UserPlusIcon,\n  UsersIcon,\n  XCircleIcon,\n} from \"@heroicons/react/24/outline\";\nimport { bottomTotalItems, navItems, logo } from \"./data\";\n\nconst ChannelEmptySubscribed = () => {\n  return (\n    <div className=\"h-screen overflow-y-auto bg-[#121212] text-white\">\n      <header className=\"sticky inset-x-0 top-0 z-50 w-full border-b border-white bg-[#121212] px-4\">\n        <nav className=\"mx-auto flex max-w-7xl items-center py-2\">\n          <div className=\"mr-4 w-12 shrink-0 sm:w-16\">{logo}</div>\n          <div className=\"relative mx-auto hidden w-full max-w-md overflow-hidden sm:block\">\n            <input\n              className=\"w-full border bg-transparent py-1 pl-8 pr-3 placeholder-white outline-none sm:py-2\"\n              placeholder=\"Search\"\n            />\n            <span className=\"absolute left-2.5 top-1/2 inline-block -translate-y-1/2\">\n              <MagnifyingGlassIcon className=\" h-4 w-4\" />\n            </span>\n          </div>\n          <button className=\"ml-auto sm:hidden\">\n            <MagnifyingGlassIcon className=\" h-6 w-6\" />\n          </button>\n          <button className=\"group peer ml-4 flex w-6 shrink-0 flex-wrap gap-y-1.5 sm:hidden\">\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-2/3 bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n          </button>\n          <div className=\"fixed inset-y-0 right-0 flex w-full max-w-xs shrink-0 translate-x-full flex-col border-l border-white bg-[#121212] duration-200 hover:translate-x-0 peer-focus:translate-x-0 sm:static sm:ml-4 sm:w-auto sm:translate-x-0 sm:border-none\">\n            <div className=\"relative flex w-full items-center justify-between border-b border-white px-4 py-2 sm:hidden\">\n              <span className=\"inline-block w-12\">{logo}</span>\n              <button className=\"inline-block w-8\">\n                <XCircleIcon />\n              </button>\n            </div>\n            <ul className=\"my-4 flex w-full flex-wrap gap-2 px-4 sm:hidden\">\n              {navItems\n                .filter((item) => !item.mobileView)\n                .map((item) => (\n                  <li key={item.name} className=\"w-full\">\n                    <button className=\"flex w-full items-center justify-start gap-x-4 border border-white px-4 py-1.5 text-left hover:bg-[#ae7aff] hover:text-black focus:border-[#ae7aff] focus:bg-[#ae7aff] focus:text-black\">\n                      <span className=\"inline-block w-full max-w-[20px] group-hover:mr-4 lg:mr-4\">\n                        {item.icon}\n                      </span>\n                      <span>{item.name}</span>\n                    </button>\n                  </li>\n                ))}\n            </ul>\n\n            <div className=\"mb-8 mt-auto flex w-full flex-wrap gap-4 px-4 sm:mb-0 sm:mt-0 sm:items-center sm:px-0\">\n              <button className=\"w-full bg-[#383737] px-3 py-2 hover:bg-[#4f4e4e] sm:w-auto sm:bg-transparent\">\n                Log in\n              </button>\n              <button className=\"mr-1 w-full bg-[#ae7aff] px-3 py-2 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e] sm:w-auto\">\n                Sign up\n              </button>\n            </div>\n          </div>\n        </nav>\n      </header>\n      <div className=\"flex min-h-[calc(100vh-66px)] sm:min-h-[calc(100vh-82px)]\">\n        <aside className=\"group fixed inset-x-0 bottom-0 z-40 w-full shrink-0 border-t border-white bg-[#121212] px-2 py-2 sm:absolute sm:inset-y-0 sm:max-w-[70px] sm:border-r sm:border-t-0 sm:py-6 sm:hover:max-w-[250px] lg:sticky lg:max-w-[250px]\">\n          <ul className=\"flex justify-around gap-y-2 sm:sticky sm:top-[106px] sm:min-h-[calc(100vh-130px)] sm:flex-col\">\n            {navItems.map((item, i, arr) => (\n              <li\n                key={item.name}\n                className={classNames(\n                  item.mobileView ? \"\" : \"hidden sm:block\",\n                  arr.length - i === bottomTotalItems ? \"mt-auto\" : \"\",\n                )}\n              >\n                <button className=\"flex flex-col items-center justify-center border-white py-1 focus:text-[#ae7aff] sm:w-full sm:flex-row sm:border sm:p-1.5 sm:hover:bg-[#ae7aff] sm:hover:text-black sm:focus:border-[#ae7aff] sm:focus:bg-[#ae7aff] sm:focus:text-black sm:group-hover:justify-start sm:group-hover:px-4 lg:justify-start lg:px-4\">\n                  <span className=\"inline-block w-5 shrink-0 sm:group-hover:mr-4 lg:mr-4\">\n                    {item.icon}\n                  </span>\n                  <span className=\"block sm:hidden sm:group-hover:inline lg:inline\">\n                    {item.name}\n                  </span>\n                </button>\n              </li>\n            ))}\n          </ul>\n        </aside>\n        <section className=\"w-full pb-[70px] sm:ml-[70px] sm:pb-0 lg:ml-0\">\n          <div className=\"relative min-h-[150px] w-full pt-[16.28%]\">\n            <div className=\"absolute inset-0 overflow-hidden\">\n              <img\n                src=\"https://images.pexels.com/photos/1092424/pexels-photo-1092424.jpeg?auto=compress\"\n                alt=\"cover-photo\"\n              />\n            </div>\n          </div>\n          <div className=\"px-4 pb-4\">\n            <div className=\"flex flex-wrap gap-4 pb-4 pt-6\">\n              <span className=\"relative -mt-12 inline-block h-28 w-28 shrink-0 overflow-hidden rounded-full border-2\">\n                <img\n                  src=\"https://images.pexels.com/photos/1115816/pexels-photo-1115816.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\"\n                  alt=\"Channel\"\n                  className=\"h-full w-full\"\n                />\n              </span>\n\n              <div className=\"mr-auto inline-block\">\n                <h1 className=\"font-bolg text-xl\">React Patterns</h1>\n                <p className=\"text-sm text-gray-400\">@reactpatterns</p>\n                <p className=\"text-sm text-gray-400\">\n                  600k Subscribers&nbsp;&middot;&nbsp;220 Subscribed\n                </p>\n              </div>\n\n              <div className=\"inline-block\">\n                <div className=\"inline-flex min-w-[145px] justify-end\">\n                  <button className=\"group/btn mr-1 flex w-full items-center gap-x-2 bg-[#ae7aff] px-3 py-2 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e] sm:w-auto\">\n                    <span className=\"inline-block w-5\">\n                      <UserPlusIcon strokeWidth={2} />\n                    </span>\n                    <span className=\"group-focus/btn:hidden\">Subscribe</span>\n                    <span className=\"hidden group-focus/btn:block\">\n                      Subscribed\n                    </span>\n                  </button>\n                </div>\n              </div>\n            </div>\n\n            <ul className=\"no-scrollbar sticky top-[66px] z-[2] flex flex-row gap-x-2 overflow-auto border-b-2 border-gray-400 bg-[#121212] py-2 sm:top-[82px]\">\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Videos\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Playlist\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Tweets\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-[#ae7aff] bg-white px-3 py-1.5 text-[#ae7aff]\">\n                  Subscribed\n                </button>\n              </li>\n            </ul>\n            <div className=\"flex justify-center p-4\">\n              <div className=\"w-full max-w-sm text-center\">\n                <p className=\"mb-3 w-full\">\n                  <span className=\"inline-flex rounded-full bg-[#E4D3FF] p-2 text-[#AE7AFF]\">\n                    <span className=\"inline-block w-6\">\n                      <UsersIcon className=\"w-6\" />\n                    </span>\n                  </span>\n                </p>\n                <h5 className=\"mb-2 font-semibold\">No people subscribers</h5>\n                <p>\n                  This channel has yet to <strong>subscribe</strong> a new\n                  channel.\n                </p>\n              </div>\n            </div>\n          </div>\n        </section>\n      </div>\n    </div>\n  );\n};\n\nexport default ChannelEmptySubscribed;\n"
  },
  {
    "path": "src/components/templates/youtube/channel-empty-tweet.jsx",
    "content": "\"use client\";\nimport { classNames } from \"@/utils\";\nimport React from \"react\";\nimport {\n  MagnifyingGlassIcon,\n  UserPlusIcon,\n  UsersIcon,\n  XCircleIcon,\n} from \"@heroicons/react/24/outline\";\nimport { bottomTotalItems, navItems, logo } from \"./data\";\n\nconst ChannelEmptyTweet = () => {\n  return (\n    <div className=\"h-screen overflow-y-auto bg-[#121212] text-white\">\n      <header className=\"sticky inset-x-0 top-0 z-50 w-full border-b border-white bg-[#121212] px-4\">\n        <nav className=\"mx-auto flex max-w-7xl items-center py-2\">\n          <div className=\"mr-4 w-12 shrink-0 sm:w-16\">{logo}</div>\n          <div className=\"relative mx-auto hidden w-full max-w-md overflow-hidden sm:block\">\n            <input\n              className=\"w-full border bg-transparent py-1 pl-8 pr-3 placeholder-white outline-none sm:py-2\"\n              placeholder=\"Search\"\n            />\n            <span className=\"absolute left-2.5 top-1/2 inline-block -translate-y-1/2\">\n              <MagnifyingGlassIcon className=\" h-4 w-4\" />\n            </span>\n          </div>\n          <button className=\"ml-auto sm:hidden\">\n            <MagnifyingGlassIcon className=\" h-6 w-6\" />\n          </button>\n          <button className=\"group peer ml-4 flex w-6 shrink-0 flex-wrap gap-y-1.5 sm:hidden\">\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-2/3 bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n          </button>\n          <div className=\"fixed inset-y-0 right-0 flex w-full max-w-xs shrink-0 translate-x-full flex-col border-l border-white bg-[#121212] duration-200 hover:translate-x-0 peer-focus:translate-x-0 sm:static sm:ml-4 sm:w-auto sm:translate-x-0 sm:border-none\">\n            <div className=\"relative flex w-full items-center justify-between border-b border-white px-4 py-2 sm:hidden\">\n              <span className=\"inline-block w-12\">{logo}</span>\n              <button className=\"inline-block w-8\">\n                <XCircleIcon />\n              </button>\n            </div>\n            <ul className=\"my-4 flex w-full flex-wrap gap-2 px-4 sm:hidden\">\n              {navItems\n                .filter((item) => !item.mobileView)\n                .map((item) => (\n                  <li key={item.name} className=\"w-full\">\n                    <button className=\"flex w-full items-center justify-start gap-x-4 border border-white px-4 py-1.5 text-left hover:bg-[#ae7aff] hover:text-black focus:border-[#ae7aff] focus:bg-[#ae7aff] focus:text-black\">\n                      <span className=\"inline-block w-full max-w-[20px] group-hover:mr-4 lg:mr-4\">\n                        {item.icon}\n                      </span>\n                      <span>{item.name}</span>\n                    </button>\n                  </li>\n                ))}\n            </ul>\n\n            <div className=\"mb-8 mt-auto flex w-full flex-wrap gap-4 px-4 sm:mb-0 sm:mt-0 sm:items-center sm:px-0\">\n              <button className=\"w-full bg-[#383737] px-3 py-2 hover:bg-[#4f4e4e] sm:w-auto sm:bg-transparent\">\n                Log in\n              </button>\n              <button className=\"mr-1 w-full bg-[#ae7aff] px-3 py-2 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e] sm:w-auto\">\n                Sign up\n              </button>\n            </div>\n          </div>\n        </nav>\n      </header>\n      <div className=\"flex min-h-[calc(100vh-66px)] sm:min-h-[calc(100vh-82px)]\">\n        <aside className=\"group fixed inset-x-0 bottom-0 z-40 w-full shrink-0 border-t border-white bg-[#121212] px-2 py-2 sm:absolute sm:inset-y-0 sm:max-w-[70px] sm:border-r sm:border-t-0 sm:py-6 sm:hover:max-w-[250px] lg:sticky lg:max-w-[250px]\">\n          <ul className=\"flex justify-around gap-y-2 sm:sticky sm:top-[106px] sm:min-h-[calc(100vh-130px)] sm:flex-col\">\n            {navItems.map((item, i, arr) => (\n              <li\n                key={item.name}\n                className={classNames(\n                  item.mobileView ? \"\" : \"hidden sm:block\",\n                  arr.length - i === bottomTotalItems ? \"mt-auto\" : \"\",\n                )}\n              >\n                <button className=\"flex flex-col items-center justify-center border-white py-1 focus:text-[#ae7aff] sm:w-full sm:flex-row sm:border sm:p-1.5 sm:hover:bg-[#ae7aff] sm:hover:text-black sm:focus:border-[#ae7aff] sm:focus:bg-[#ae7aff] sm:focus:text-black sm:group-hover:justify-start sm:group-hover:px-4 lg:justify-start lg:px-4\">\n                  <span className=\"inline-block w-5 shrink-0 sm:group-hover:mr-4 lg:mr-4\">\n                    {item.icon}\n                  </span>\n                  <span className=\"block sm:hidden sm:group-hover:inline lg:inline\">\n                    {item.name}\n                  </span>\n                </button>\n              </li>\n            ))}\n          </ul>\n        </aside>\n        <section className=\"w-full pb-[70px] sm:ml-[70px] sm:pb-0 lg:ml-0\">\n          <div className=\"relative min-h-[150px] w-full pt-[16.28%]\">\n            <div className=\"absolute inset-0 overflow-hidden\">\n              <img\n                src=\"https://images.pexels.com/photos/1092424/pexels-photo-1092424.jpeg?auto=compress\"\n                alt=\"cover-photo\"\n              />\n            </div>\n          </div>\n          <div className=\"px-4 pb-4\">\n            <div className=\"flex flex-wrap gap-4 pb-4 pt-6\">\n              <span className=\"relative -mt-12 inline-block h-28 w-28 shrink-0 overflow-hidden rounded-full border-2\">\n                <img\n                  src=\"https://images.pexels.com/photos/1115816/pexels-photo-1115816.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\"\n                  alt=\"Channel\"\n                  className=\"h-full w-full\"\n                />\n              </span>\n\n              <div className=\"mr-auto inline-block\">\n                <h1 className=\"font-bolg text-xl\">React Patterns</h1>\n                <p className=\"text-sm text-gray-400\">@reactpatterns</p>\n                <p className=\"text-sm text-gray-400\">\n                  600k Subscribers&nbsp;&middot;&nbsp;220 Subscribed\n                </p>\n              </div>\n\n              <div className=\"inline-block\">\n                <div className=\"inline-flex min-w-[145px] justify-end\">\n                  <button className=\"group/btn mr-1 flex w-full items-center gap-x-2 bg-[#ae7aff] px-3 py-2 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e] sm:w-auto\">\n                    <span className=\"inline-block w-5\">\n                      <UserPlusIcon strokeWidth={2} />\n                    </span>\n                    <span className=\"group-focus/btn:hidden\">Subscribe</span>\n                    <span className=\"hidden group-focus/btn:block\">\n                      Subscribed\n                    </span>\n                  </button>\n                </div>\n              </div>\n            </div>\n\n            <ul className=\"no-scrollbar sticky top-[66px] z-[2] flex flex-row gap-x-2 overflow-auto border-b-2 border-gray-400 bg-[#121212] py-2 sm:top-[82px]\">\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Videos\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Playlist\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-[#ae7aff] bg-white px-3 py-1.5 text-[#ae7aff]\">\n                  Tweets\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Subscribed\n                </button>\n              </li>\n            </ul>\n            <div className=\"flex justify-center p-4\">\n              <div className=\"w-full max-w-sm text-center\">\n                <p className=\"mb-3 w-full\">\n                  <span className=\"inline-flex rounded-full bg-[#E4D3FF] p-2 text-[#AE7AFF]\">\n                    <span className=\"inline-block w-6\">\n                      <UsersIcon className=\"w-6\" />\n                    </span>\n                  </span>\n                </p>\n                <h5 className=\"mb-2 font-semibold\">No Tweets</h5>\n                <p>\n                  This channel has yet to make a <strong>Tweet</strong>.\n                </p>\n              </div>\n            </div>\n          </div>\n        </section>\n      </div>\n    </div>\n  );\n};\n\nexport default ChannelEmptyTweet;\n"
  },
  {
    "path": "src/components/templates/youtube/channel-empty-video.jsx",
    "content": "\"use client\";\nimport { classNames } from \"@/utils\";\nimport React from \"react\";\nimport {\n  MagnifyingGlassIcon,\n  PlayIcon,\n  UserPlusIcon,\n  XCircleIcon,\n} from \"@heroicons/react/24/outline\";\nimport { bottomTotalItems, navItems, logo } from \"./data\";\n\nconst ChannelEmptyVideo = () => {\n  return (\n    <div className=\"h-screen overflow-y-auto bg-[#121212] text-white\">\n      <header className=\"sticky inset-x-0 top-0 z-50 w-full border-b border-white bg-[#121212] px-4\">\n        <nav className=\"mx-auto flex max-w-7xl items-center py-2\">\n          <div className=\"mr-4 w-12 shrink-0 sm:w-16\">{logo}</div>\n          <div className=\"relative mx-auto hidden w-full max-w-md overflow-hidden sm:block\">\n            <input\n              className=\"w-full border bg-transparent py-1 pl-8 pr-3 placeholder-white outline-none sm:py-2\"\n              placeholder=\"Search\"\n            />\n            <span className=\"absolute left-2.5 top-1/2 inline-block -translate-y-1/2\">\n              <MagnifyingGlassIcon className=\" h-4 w-4\" />\n            </span>\n          </div>\n          <button className=\"ml-auto sm:hidden\">\n            <MagnifyingGlassIcon className=\" h-6 w-6\" />\n          </button>\n          <button className=\"group peer ml-4 flex w-6 shrink-0 flex-wrap gap-y-1.5 sm:hidden\">\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-2/3 bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n          </button>\n          <div className=\"fixed inset-y-0 right-0 flex w-full max-w-xs shrink-0 translate-x-full flex-col border-l border-white bg-[#121212] duration-200 hover:translate-x-0 peer-focus:translate-x-0 sm:static sm:ml-4 sm:w-auto sm:translate-x-0 sm:border-none\">\n            <div className=\"relative flex w-full items-center justify-between border-b border-white px-4 py-2 sm:hidden\">\n              <span className=\"inline-block w-12\">{logo}</span>\n              <button className=\"inline-block w-8\">\n                <XCircleIcon />\n              </button>\n            </div>\n            <ul className=\"my-4 flex w-full flex-wrap gap-2 px-4 sm:hidden\">\n              {navItems\n                .filter((item) => !item.mobileView)\n                .map((item) => (\n                  <li key={item.name} className=\"w-full\">\n                    <button className=\"flex w-full items-center justify-start gap-x-4 border border-white px-4 py-1.5 text-left hover:bg-[#ae7aff] hover:text-black focus:border-[#ae7aff] focus:bg-[#ae7aff] focus:text-black\">\n                      <span className=\"inline-block w-full max-w-[20px] group-hover:mr-4 lg:mr-4\">\n                        {item.icon}\n                      </span>\n                      <span>{item.name}</span>\n                    </button>\n                  </li>\n                ))}\n            </ul>\n\n            <div className=\"mb-8 mt-auto flex w-full flex-wrap gap-4 px-4 sm:mb-0 sm:mt-0 sm:items-center sm:px-0\">\n              <button className=\"w-full bg-[#383737] px-3 py-2 hover:bg-[#4f4e4e] sm:w-auto sm:bg-transparent\">\n                Log in\n              </button>\n              <button className=\"mr-1 w-full bg-[#ae7aff] px-3 py-2 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e] sm:w-auto\">\n                Sign up\n              </button>\n            </div>\n          </div>\n        </nav>\n      </header>\n      <div className=\"flex min-h-[calc(100vh-66px)] sm:min-h-[calc(100vh-82px)]\">\n        <aside className=\"group fixed inset-x-0 bottom-0 z-40 w-full shrink-0 border-t border-white bg-[#121212] px-2 py-2 sm:absolute sm:inset-y-0 sm:max-w-[70px] sm:border-r sm:border-t-0 sm:py-6 sm:hover:max-w-[250px] lg:sticky lg:max-w-[250px]\">\n          <ul className=\"flex justify-around gap-y-2 sm:sticky sm:top-[106px] sm:min-h-[calc(100vh-130px)] sm:flex-col\">\n            {navItems.map((item, i, arr) => (\n              <li\n                key={item.name}\n                className={classNames(\n                  item.mobileView ? \"\" : \"hidden sm:block\",\n                  arr.length - i === bottomTotalItems ? \"mt-auto\" : \"\",\n                )}\n              >\n                <button className=\"flex flex-col items-center justify-center border-white py-1 focus:text-[#ae7aff] sm:w-full sm:flex-row sm:border sm:p-1.5 sm:hover:bg-[#ae7aff] sm:hover:text-black sm:focus:border-[#ae7aff] sm:focus:bg-[#ae7aff] sm:focus:text-black sm:group-hover:justify-start sm:group-hover:px-4 lg:justify-start lg:px-4\">\n                  <span className=\"inline-block w-5 shrink-0 sm:group-hover:mr-4 lg:mr-4\">\n                    {item.icon}\n                  </span>\n                  <span className=\"block sm:hidden sm:group-hover:inline lg:inline\">\n                    {item.name}\n                  </span>\n                </button>\n              </li>\n            ))}\n          </ul>\n        </aside>\n        <section className=\"w-full pb-[70px] sm:ml-[70px] sm:pb-0 lg:ml-0\">\n          <div className=\"relative min-h-[150px] w-full pt-[16.28%]\">\n            <div className=\"absolute inset-0 overflow-hidden\">\n              <img\n                src=\"https://images.pexels.com/photos/1092424/pexels-photo-1092424.jpeg?auto=compress\"\n                alt=\"cover-photo\"\n              />\n            </div>\n          </div>\n          <div className=\"px-4 pb-4\">\n            <div className=\"flex flex-wrap gap-4 pb-4 pt-6\">\n              <span className=\"relative -mt-12 inline-block h-28 w-28 shrink-0 overflow-hidden rounded-full border-2\">\n                <img\n                  src=\"https://images.pexels.com/photos/1115816/pexels-photo-1115816.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\"\n                  alt=\"Channel\"\n                  className=\"h-full w-full\"\n                />\n              </span>\n\n              <div className=\"mr-auto inline-block\">\n                <h1 className=\"font-bolg text-xl\">React Patterns</h1>\n                <p className=\"text-sm text-gray-400\">@reactpatterns</p>\n                <p className=\"text-sm text-gray-400\">\n                  600k Subscribers&nbsp;&middot;&nbsp;220 Subscribed\n                </p>\n              </div>\n\n              <div className=\"inline-block\">\n                <div className=\"inline-flex min-w-[145px] justify-end\">\n                  <button className=\"group/btn mr-1 flex w-full items-center gap-x-2 bg-[#ae7aff] px-3 py-2 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e] sm:w-auto\">\n                    <span className=\"inline-block w-5\">\n                      <UserPlusIcon strokeWidth={2} />\n                    </span>\n                    <span className=\"group-focus/btn:hidden\">Subscribe</span>\n                    <span className=\"hidden group-focus/btn:block\">\n                      Subscribed\n                    </span>\n                  </button>\n                </div>\n              </div>\n            </div>\n\n            <ul className=\"no-scrollbar sticky top-[66px] z-[2] flex flex-row gap-x-2 overflow-auto border-b-2 border-gray-400 bg-[#121212] py-2 sm:top-[82px]\">\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-[#ae7aff] bg-white px-3 py-1.5 text-[#ae7aff]\">\n                  Videos\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Playlist\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Tweets\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Subscribed\n                </button>\n              </li>\n            </ul>\n            <div className=\"flex justify-center p-4\">\n              <div className=\"w-full max-w-sm text-center\">\n                <p className=\"mb-3 w-full\">\n                  <span className=\"inline-flex rounded-full bg-[#E4D3FF] p-2 text-[#AE7AFF]\">\n                    <PlayIcon className=\"w-6\" />\n                  </span>\n                </p>\n                <h5 className=\"mb-2 font-semibold\">No videos uploaded</h5>\n                <p>\n                  This page has yet to upload a video. Search another page in\n                  order to find more videos.\n                </p>\n              </div>\n            </div>\n          </div>\n        </section>\n      </div>\n    </div>\n  );\n};\n\nexport default ChannelEmptyVideo;\n"
  },
  {
    "path": "src/components/templates/youtube/channel-playlist-videos.jsx",
    "content": "\"use client\";\nimport { classNames } from \"@/utils\";\nimport { MagnifyingGlassIcon, XCircleIcon } from \"@heroicons/react/24/outline\";\nimport React from \"react\";\nimport { bottomTotalItems, navItems, logo, playlistList } from \"./data\";\n\nconst ChannelPlaylistVideos = () => {\n  const playlist = playlistList[0];\n  playlist.videos = playlist.videos.filter((video) => video.isPublished);\n\n  return (\n    <div className=\"h-screen overflow-y-auto bg-[#121212] text-white\">\n      <header className=\"sticky inset-x-0 top-0 z-50 w-full border-b border-white bg-[#121212] px-4\">\n        <nav className=\"mx-auto flex max-w-7xl items-center py-2\">\n          <div className=\"mr-4 w-12 shrink-0 sm:w-16\">{logo}</div>\n          <div className=\"relative mx-auto hidden w-full max-w-md overflow-hidden sm:block\">\n            <input\n              className=\"w-full border bg-transparent py-1 pl-8 pr-3 placeholder-white outline-none sm:py-2\"\n              placeholder=\"Search\"\n            />\n            <span className=\"absolute left-2.5 top-1/2 inline-block -translate-y-1/2\">\n              <MagnifyingGlassIcon className=\" h-4 w-4\" />\n            </span>\n          </div>\n          <button className=\"ml-auto sm:hidden\">\n            <MagnifyingGlassIcon className=\" h-6 w-6\" />\n          </button>\n          <button className=\"group peer ml-4 flex w-6 shrink-0 flex-wrap gap-y-1.5 sm:hidden\">\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-2/3 bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n          </button>\n          <div className=\"fixed inset-y-0 right-0 flex w-full max-w-xs shrink-0 translate-x-full flex-col border-l border-white bg-[#121212] duration-200 hover:translate-x-0 peer-focus:translate-x-0 sm:static sm:ml-4 sm:w-auto sm:translate-x-0 sm:border-none\">\n            <div className=\"relative flex w-full items-center justify-between border-b border-white px-4 py-2 sm:hidden\">\n              <span className=\"inline-block w-12\">{logo}</span>\n              <button className=\"inline-block w-8\">\n                <XCircleIcon />\n              </button>\n            </div>\n            <ul className=\"my-4 flex w-full flex-wrap gap-2 px-4 sm:hidden\">\n              {navItems\n                .filter((item) => !item.mobileView)\n                .map((item) => (\n                  <li key={item.name} className=\"w-full\">\n                    <button className=\"flex w-full items-center justify-start gap-x-4 border border-white px-4 py-1.5 text-left hover:bg-[#ae7aff] hover:text-black focus:border-[#ae7aff] focus:bg-[#ae7aff] focus:text-black\">\n                      <span className=\"inline-block w-full max-w-[20px] group-hover:mr-4 lg:mr-4\">\n                        {item.icon}\n                      </span>\n                      <span>{item.name}</span>\n                    </button>\n                  </li>\n                ))}\n            </ul>\n\n            <div className=\"mb-8 mt-auto flex w-full flex-wrap gap-4 px-4 sm:mb-0 sm:mt-0 sm:items-center sm:px-0\">\n              <button className=\"w-full bg-[#383737] px-3 py-2 hover:bg-[#4f4e4e] sm:w-auto sm:bg-transparent\">\n                Log in\n              </button>\n              <button className=\"mr-1 w-full bg-[#ae7aff] px-3 py-2 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e] sm:w-auto\">\n                Sign up\n              </button>\n            </div>\n          </div>\n        </nav>\n      </header>\n      <div className=\"flex min-h-[calc(100vh-66px)] sm:min-h-[calc(100vh-82px)]\">\n        <aside className=\"group fixed inset-x-0 bottom-0 z-40 w-full shrink-0 border-t border-white bg-[#121212] px-2 py-2 sm:absolute sm:inset-y-0 sm:max-w-[70px] sm:border-r sm:border-t-0 sm:py-6 sm:hover:max-w-[250px] lg:sticky lg:max-w-[250px]\">\n          <ul className=\"flex justify-around gap-y-2 sm:sticky sm:top-[106px] sm:min-h-[calc(100vh-130px)] sm:flex-col\">\n            {navItems.map((item, i, arr) => (\n              <li\n                key={item.name}\n                className={classNames(\n                  item.mobileView ? \"\" : \"hidden sm:block\",\n                  arr.length - i === bottomTotalItems ? \"mt-auto\" : \"\",\n                )}\n              >\n                <button className=\"flex flex-col items-center justify-center border-white py-1 focus:text-[#ae7aff] sm:w-full sm:flex-row sm:border sm:p-1.5 sm:hover:bg-[#ae7aff] sm:hover:text-black sm:focus:border-[#ae7aff] sm:focus:bg-[#ae7aff] sm:focus:text-black sm:group-hover:justify-start sm:group-hover:px-4 lg:justify-start lg:px-4\">\n                  <span className=\"inline-block w-5 shrink-0 sm:group-hover:mr-4 lg:mr-4\">\n                    {item.icon}\n                  </span>\n                  <span className=\"block sm:hidden sm:group-hover:inline lg:inline\">\n                    {item.name}\n                  </span>\n                </button>\n              </li>\n            ))}\n          </ul>\n        </aside>\n        <section className=\"w-full pb-[70px] sm:ml-[70px] sm:pb-0 lg:ml-0\">\n          <div className=\"flex flex-wrap gap-x-4 gap-y-10 p-4 xl:flex-nowrap\">\n            <div className=\"w-full shrink-0 sm:max-w-md xl:max-w-sm\">\n              <div className=\"relative mb-2 w-full pt-[56%]\">\n                <div className=\"absolute inset-0\">\n                  <img\n                    src={playlist.videos[0].thumbnail}\n                    alt={playlist.name}\n                    className=\"h-full w-full\"\n                  />\n                  <div className=\"absolute inset-x-0 bottom-0\">\n                    <div className=\"relative border-t bg-white/30 p-4 text-white backdrop-blur-sm before:absolute before:inset-0 before:bg-black/40\">\n                      <div className=\"relative z-[1]\">\n                        <p className=\"flex justify-between\">\n                          <span className=\"inline-block\">Playlist</span>\n                          <span className=\"inline-block\">\n                            {playlist.videos.length}\n                            &nbsp;videos\n                          </span>\n                        </p>\n                        <p className=\"text-sm text-gray-200\">\n                          {playlist.views} Views&nbsp;&middot;&nbsp;\n                          {playlist.createdAt}\n                        </p>\n                      </div>\n                    </div>\n                  </div>\n                </div>\n              </div>\n              <h6 className=\"mb-1 font-semibold\">{playlist.name}</h6>\n              <p className=\"flex text-sm text-gray-200\">\n                {playlist.description}\n              </p>\n              <div className=\"mt-6 flex items-center gap-x-3\">\n                <div className=\"h-16 w-16 shrink-0\">\n                  <img\n                    src={playlist.owner.avatar}\n                    alt={playlist.owner.fullName}\n                    className=\"h-full w-full rounded-full\"\n                  />\n                </div>\n                <div className=\"w-full\">\n                  <h6 className=\"font-semibold\">{playlist.owner.fullName}</h6>\n                  <p className=\"text-sm text-gray-300\">\n                    {playlist.owner.subscribers} Subscribers\n                  </p>\n                </div>\n              </div>\n            </div>\n            <div className=\"flex w-full flex-col gap-y-4\">\n              {playlist.videos.map(\n                (video) =>\n                  video.isPublished && (\n                    <div key={video.id} className=\"border\">\n                      <div className=\"w-full max-w-3xl gap-x-4 sm:flex\">\n                        <div className=\"relative mb-2 w-full sm:mb-0 sm:w-5/12\">\n                          <div className=\"w-full pt-[56%]\">\n                            <div className=\"absolute inset-0\">\n                              <img\n                                src={video.thumbnail}\n                                alt={video.title}\n                                className=\"h-full w-full\"\n                              />\n                            </div>\n                            <span className=\"absolute bottom-1 right-1 inline-block rounded bg-black px-1.5 text-sm\">\n                              {video.duration}\n                            </span>\n                          </div>\n                        </div>\n                        <div className=\"flex gap-x-2 px-2 sm:w-7/12 sm:px-0\">\n                          <div className=\"h-10 w-10 shrink-0 sm:hidden\">\n                            <img\n                              src={video.owner.avatar}\n                              alt={video.owner.username}\n                              className=\"h-full w-full rounded-full\"\n                            />\n                          </div>\n                          <div className=\"w-full\">\n                            <h6 className=\"mb-1 font-semibold sm:max-w-[75%]\">\n                              {video.title}\n                            </h6>\n                            <p className=\"flex text-sm text-gray-200 sm:mt-3\">\n                              {video.views}&nbsp;Views &middot; {video.time}\n                            </p>\n                            <div className=\"flex items-center gap-x-4\">\n                              <div className=\"mt-2 hidden h-10 w-10 shrink-0 sm:block\">\n                                <img\n                                  src={video.owner.avatar}\n                                  alt={video.owner.username}\n                                  className=\"h-full w-full rounded-full\"\n                                />\n                              </div>\n                              <p className=\"text-sm text-gray-200\">\n                                {video.owner.fullName}\n                              </p>\n                            </div>\n                          </div>\n                        </div>\n                      </div>\n                    </div>\n                  ),\n              )}\n            </div>\n          </div>\n        </section>\n      </div>\n    </div>\n  );\n};\n\nexport default ChannelPlaylistVideos;\n"
  },
  {
    "path": "src/components/templates/youtube/channel-playlist.jsx",
    "content": "\"use client\";\nimport { classNames } from \"@/utils\";\nimport React from \"react\";\nimport {\n  MagnifyingGlassIcon,\n  UserPlusIcon,\n  XCircleIcon,\n} from \"@heroicons/react/24/outline\";\nimport { bottomTotalItems, navItems, logo, playlistList } from \"./data\";\n\nconst ChannelPlaylist = () => {\n  return (\n    <div className=\"h-screen overflow-y-auto bg-[#121212] text-white\">\n      <header className=\"sticky inset-x-0 top-0 z-50 w-full border-b border-white bg-[#121212] px-4\">\n        <nav className=\"mx-auto flex max-w-7xl items-center py-2\">\n          <div className=\"mr-4 w-12 shrink-0 sm:w-16\">{logo}</div>\n          <div className=\"relative mx-auto hidden w-full max-w-md overflow-hidden sm:block\">\n            <input\n              className=\"w-full border bg-transparent py-1 pl-8 pr-3 placeholder-white outline-none sm:py-2\"\n              placeholder=\"Search\"\n            />\n            <span className=\"absolute left-2.5 top-1/2 inline-block -translate-y-1/2\">\n              <MagnifyingGlassIcon className=\" h-4 w-4\" />\n            </span>\n          </div>\n          <button className=\"ml-auto sm:hidden\">\n            <MagnifyingGlassIcon className=\" h-6 w-6\" />\n          </button>\n          <button className=\"group peer ml-4 flex w-6 shrink-0 flex-wrap gap-y-1.5 sm:hidden\">\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-2/3 bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n          </button>\n          <div className=\"fixed inset-y-0 right-0 flex w-full max-w-xs shrink-0 translate-x-full flex-col border-l border-white bg-[#121212] duration-200 hover:translate-x-0 peer-focus:translate-x-0 sm:static sm:ml-4 sm:w-auto sm:translate-x-0 sm:border-none\">\n            <div className=\"relative flex w-full items-center justify-between border-b border-white px-4 py-2 sm:hidden\">\n              <span className=\"inline-block w-12\">{logo}</span>\n              <button className=\"inline-block w-8\">\n                <XCircleIcon />\n              </button>\n            </div>\n            <ul className=\"my-4 flex w-full flex-wrap gap-2 px-4 sm:hidden\">\n              {navItems\n                .filter((item) => !item.mobileView)\n                .map((item) => (\n                  <li key={item.name} className=\"w-full\">\n                    <button className=\"flex w-full items-center justify-start gap-x-4 border border-white px-4 py-1.5 text-left hover:bg-[#ae7aff] hover:text-black focus:border-[#ae7aff] focus:bg-[#ae7aff] focus:text-black\">\n                      <span className=\"inline-block w-full max-w-[20px] group-hover:mr-4 lg:mr-4\">\n                        {item.icon}\n                      </span>\n                      <span>{item.name}</span>\n                    </button>\n                  </li>\n                ))}\n            </ul>\n\n            <div className=\"mb-8 mt-auto flex w-full flex-wrap gap-4 px-4 sm:mb-0 sm:mt-0 sm:items-center sm:px-0\">\n              <button className=\"w-full bg-[#383737] px-3 py-2 hover:bg-[#4f4e4e] sm:w-auto sm:bg-transparent\">\n                Log in\n              </button>\n              <button className=\"mr-1 w-full bg-[#ae7aff] px-3 py-2 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e] sm:w-auto\">\n                Sign up\n              </button>\n            </div>\n          </div>\n        </nav>\n      </header>\n      <div className=\"flex min-h-[calc(100vh-66px)] sm:min-h-[calc(100vh-82px)]\">\n        <aside className=\"group fixed inset-x-0 bottom-0 z-40 w-full shrink-0 border-t border-white bg-[#121212] px-2 py-2 sm:absolute sm:inset-y-0 sm:max-w-[70px] sm:border-r sm:border-t-0 sm:py-6 sm:hover:max-w-[250px] lg:sticky lg:max-w-[250px]\">\n          <ul className=\"flex justify-around gap-y-2 sm:sticky sm:top-[106px] sm:min-h-[calc(100vh-130px)] sm:flex-col\">\n            {navItems.map((item, i, arr) => (\n              <li\n                key={item.name}\n                className={classNames(\n                  item.mobileView ? \"\" : \"hidden sm:block\",\n                  arr.length - i === bottomTotalItems ? \"mt-auto\" : \"\",\n                )}\n              >\n                <button className=\"flex flex-col items-center justify-center border-white py-1 focus:text-[#ae7aff] sm:w-full sm:flex-row sm:border sm:p-1.5 sm:hover:bg-[#ae7aff] sm:hover:text-black sm:focus:border-[#ae7aff] sm:focus:bg-[#ae7aff] sm:focus:text-black sm:group-hover:justify-start sm:group-hover:px-4 lg:justify-start lg:px-4\">\n                  <span className=\"inline-block w-5 shrink-0 sm:group-hover:mr-4 lg:mr-4\">\n                    {item.icon}\n                  </span>\n                  <span className=\"block sm:hidden sm:group-hover:inline lg:inline\">\n                    {item.name}\n                  </span>\n                </button>\n              </li>\n            ))}\n          </ul>\n        </aside>\n        <section className=\"w-full pb-[70px] sm:ml-[70px] sm:pb-0 lg:ml-0\">\n          <div className=\"relative min-h-[150px] w-full pt-[16.28%]\">\n            <div className=\"absolute inset-0 overflow-hidden\">\n              <img\n                src=\"https://images.pexels.com/photos/1092424/pexels-photo-1092424.jpeg?auto=compress\"\n                alt=\"cover-photo\"\n              />\n            </div>\n          </div>\n          <div className=\"px-4 pb-4\">\n            <div className=\"flex flex-wrap gap-4 pb-4 pt-6\">\n              <span className=\"relative -mt-12 inline-block h-28 w-28 shrink-0 overflow-hidden rounded-full border-2\">\n                <img\n                  src=\"https://images.pexels.com/photos/1115816/pexels-photo-1115816.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\"\n                  alt=\"Channel\"\n                  className=\"h-full w-full\"\n                />\n              </span>\n\n              <div className=\"mr-auto inline-block\">\n                <h1 className=\"font-bolg text-xl\">React Patterns</h1>\n                <p className=\"text-sm text-gray-400\">@reactpatterns</p>\n                <p className=\"text-sm text-gray-400\">\n                  600k Subscribers&nbsp;&middot;&nbsp;220 Subscribed\n                </p>\n              </div>\n\n              <div className=\"inline-block\">\n                <div className=\"inline-flex min-w-[145px] justify-end\">\n                  <button className=\"group/btn mr-1 flex w-full items-center gap-x-2 bg-[#ae7aff] px-3 py-2 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e] sm:w-auto\">\n                    <span className=\"inline-block w-5\">\n                      <UserPlusIcon strokeWidth={2} />\n                    </span>\n                    <span className=\"group-focus/btn:hidden\">Subscribe</span>\n                    <span className=\"hidden group-focus/btn:block\">\n                      Subscribed\n                    </span>\n                  </button>\n                </div>\n              </div>\n            </div>\n\n            <ul className=\"no-scrollbar sticky top-[66px] z-[2] flex flex-row gap-x-2 overflow-auto border-b-2 border-gray-400 bg-[#121212] py-2 sm:top-[82px]\">\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Videos\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-[#ae7aff] bg-white px-3 py-1.5 text-[#ae7aff]\">\n                  Playlist\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Tweets\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Subscribed\n                </button>\n              </li>\n            </ul>\n            <div className=\"grid gap-4 pt-2 sm:grid-cols-[repeat(auto-fit,_minmax(400px,_1fr))]\">\n              {playlistList.map(\n                (playlist) =>\n                  playlist.videos.filter((video) => video.isPublished).length >\n                    0 && (\n                    <div key={playlist.id} className=\"w-full\">\n                      <div className=\"relative mb-2 w-full pt-[56%]\">\n                        <div className=\"absolute inset-0\">\n                          <img\n                            src={\n                              playlist.videos.find((video) => video.isPublished)\n                                .thumbnail\n                            }\n                            alt={playlist.name}\n                            className=\"h-full w-full\"\n                          />\n                          <div className=\"absolute inset-x-0 bottom-0\">\n                            <div className=\"relative border-t bg-white/30 p-4 text-white backdrop-blur-sm before:absolute before:inset-0 before:bg-black/40\">\n                              <div className=\"relative z-[1]\">\n                                <p className=\"flex justify-between\">\n                                  <span className=\"inline-block\">Playlist</span>\n                                  <span className=\"inline-block\">\n                                    {\n                                      playlist.videos.filter(\n                                        (video) => video.isPublished,\n                                      ).length\n                                    }\n                                    &nbsp;videos\n                                  </span>\n                                </p>\n                                <p className=\"text-sm text-gray-200\">\n                                  {playlist.views} Views&nbsp;&middot;&nbsp;\n                                  {playlist.createdAt}\n                                </p>\n                              </div>\n                            </div>\n                          </div>\n                        </div>\n                      </div>\n                      <h6 className=\"mb-1 font-semibold\">{playlist.name}</h6>\n                      <p className=\"flex text-sm text-gray-200\">\n                        {playlist.description}\n                      </p>\n                    </div>\n                  ),\n              )}\n            </div>\n          </div>\n        </section>\n      </div>\n    </div>\n  );\n};\n\nexport default ChannelPlaylist;\n"
  },
  {
    "path": "src/components/templates/youtube/channel-subscribed.jsx",
    "content": "\"use client\";\nimport { classNames } from \"@/utils\";\nimport React from \"react\";\nimport {\n  MagnifyingGlassIcon,\n  UserPlusIcon,\n  XCircleIcon,\n} from \"@heroicons/react/24/outline\";\nimport { bottomTotalItems, navItems, logo, channels } from \"./data\";\n\nconst ChannelSubscribed = () => {\n  return (\n    <div className=\"h-screen overflow-y-auto bg-[#121212] text-white\">\n      <header className=\"sticky inset-x-0 top-0 z-50 w-full border-b border-white bg-[#121212] px-4\">\n        <nav className=\"mx-auto flex max-w-7xl items-center py-2\">\n          <div className=\"mr-4 w-12 shrink-0 sm:w-16\">{logo}</div>\n          <div className=\"relative mx-auto hidden w-full max-w-md overflow-hidden sm:block\">\n            <input\n              className=\"w-full border bg-transparent py-1 pl-8 pr-3 placeholder-white outline-none sm:py-2\"\n              placeholder=\"Search\"\n            />\n            <span className=\"absolute left-2.5 top-1/2 inline-block -translate-y-1/2\">\n              <MagnifyingGlassIcon className=\" h-4 w-4\" />\n            </span>\n          </div>\n          <button className=\"ml-auto sm:hidden\">\n            <MagnifyingGlassIcon className=\" h-6 w-6\" />\n          </button>\n          <button className=\"group peer ml-4 flex w-6 shrink-0 flex-wrap gap-y-1.5 sm:hidden\">\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-2/3 bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n          </button>\n          <div className=\"fixed inset-y-0 right-0 flex w-full max-w-xs shrink-0 translate-x-full flex-col border-l border-white bg-[#121212] duration-200 hover:translate-x-0 peer-focus:translate-x-0 sm:static sm:ml-4 sm:w-auto sm:translate-x-0 sm:border-none\">\n            <div className=\"relative flex w-full items-center justify-between border-b border-white px-4 py-2 sm:hidden\">\n              <span className=\"inline-block w-12\">{logo}</span>\n              <button className=\"inline-block w-8\">\n                <XCircleIcon />\n              </button>\n            </div>\n            <ul className=\"my-4 flex w-full flex-wrap gap-2 px-4 sm:hidden\">\n              {navItems\n                .filter((item) => !item.mobileView)\n                .map((item) => (\n                  <li key={item.name} className=\"w-full\">\n                    <button className=\"flex w-full items-center justify-start gap-x-4 border border-white px-4 py-1.5 text-left hover:bg-[#ae7aff] hover:text-black focus:border-[#ae7aff] focus:bg-[#ae7aff] focus:text-black\">\n                      <span className=\"inline-block w-full max-w-[20px] group-hover:mr-4 lg:mr-4\">\n                        {item.icon}\n                      </span>\n                      <span>{item.name}</span>\n                    </button>\n                  </li>\n                ))}\n            </ul>\n\n            <div className=\"mb-8 mt-auto flex w-full flex-wrap gap-4 px-4 sm:mb-0 sm:mt-0 sm:items-center sm:px-0\">\n              <button className=\"w-full bg-[#383737] px-3 py-2 hover:bg-[#4f4e4e] sm:w-auto sm:bg-transparent\">\n                Log in\n              </button>\n              <button className=\"mr-1 w-full bg-[#ae7aff] px-3 py-2 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e] sm:w-auto\">\n                Sign up\n              </button>\n            </div>\n          </div>\n        </nav>\n      </header>\n      <div className=\"flex min-h-[calc(100vh-66px)] sm:min-h-[calc(100vh-82px)]\">\n        <aside className=\"group fixed inset-x-0 bottom-0 z-40 w-full shrink-0 border-t border-white bg-[#121212] px-2 py-2 sm:absolute sm:inset-y-0 sm:max-w-[70px] sm:border-r sm:border-t-0 sm:py-6 sm:hover:max-w-[250px] lg:sticky lg:max-w-[250px]\">\n          <ul className=\"flex justify-around gap-y-2 sm:sticky sm:top-[106px] sm:min-h-[calc(100vh-130px)] sm:flex-col\">\n            {navItems.map((item, i, arr) => (\n              <li\n                key={item.name}\n                className={classNames(\n                  item.mobileView ? \"\" : \"hidden sm:block\",\n                  arr.length - i === bottomTotalItems ? \"mt-auto\" : \"\",\n                )}\n              >\n                <button className=\"flex flex-col items-center justify-center border-white py-1 focus:text-[#ae7aff] sm:w-full sm:flex-row sm:border sm:p-1.5 sm:hover:bg-[#ae7aff] sm:hover:text-black sm:focus:border-[#ae7aff] sm:focus:bg-[#ae7aff] sm:focus:text-black sm:group-hover:justify-start sm:group-hover:px-4 lg:justify-start lg:px-4\">\n                  <span className=\"inline-block w-5 shrink-0 sm:group-hover:mr-4 lg:mr-4\">\n                    {item.icon}\n                  </span>\n                  <span className=\"block sm:hidden sm:group-hover:inline lg:inline\">\n                    {item.name}\n                  </span>\n                </button>\n              </li>\n            ))}\n          </ul>\n        </aside>\n        <section className=\"w-full pb-[70px] sm:ml-[70px] sm:pb-0 lg:ml-0\">\n          <div className=\"relative min-h-[150px] w-full pt-[16.28%]\">\n            <div className=\"absolute inset-0 overflow-hidden\">\n              <img\n                src=\"https://images.pexels.com/photos/1092424/pexels-photo-1092424.jpeg?auto=compress\"\n                alt=\"cover-photo\"\n              />\n            </div>\n          </div>\n          <div className=\"px-4 pb-4\">\n            <div className=\"flex flex-wrap gap-4 pb-4 pt-6\">\n              <span className=\"relative -mt-12 inline-block h-28 w-28 shrink-0 overflow-hidden rounded-full border-2\">\n                <img\n                  src=\"https://images.pexels.com/photos/1115816/pexels-photo-1115816.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\"\n                  alt=\"Channel\"\n                  className=\"h-full w-full\"\n                />\n              </span>\n\n              <div className=\"mr-auto inline-block\">\n                <h1 className=\"font-bolg text-xl\">React Patterns</h1>\n                <p className=\"text-sm text-gray-400\">@reactpatterns</p>\n                <p className=\"text-sm text-gray-400\">\n                  600k Subscribers&nbsp;&middot;&nbsp;220 Subscribed\n                </p>\n              </div>\n\n              <div className=\"inline-block\">\n                <div className=\"inline-flex min-w-[145px] justify-end\">\n                  <button className=\"group/btn mr-1 flex w-full items-center gap-x-2 bg-[#ae7aff] px-3 py-2 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e] sm:w-auto\">\n                    <span className=\"inline-block w-5\">\n                      <UserPlusIcon strokeWidth={2} />\n                    </span>\n                    <span className=\"group-focus/btn:hidden\">Subscribe</span>\n                    <span className=\"hidden group-focus/btn:block\">\n                      Subscribed\n                    </span>\n                  </button>\n                </div>\n              </div>\n            </div>\n\n            <ul className=\"no-scrollbar sticky top-[66px] z-[2] flex flex-row gap-x-2 overflow-auto border-b-2 border-gray-400 bg-[#121212] py-2 sm:top-[82px]\">\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Videos\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Playlist\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Tweets\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-[#ae7aff] bg-white px-3 py-1.5 text-[#ae7aff]\">\n                  Subscribed\n                </button>\n              </li>\n            </ul>\n            <div className=\"flex flex-col gap-y-4 py-4\">\n              <div className=\"relative mb-2 rounded-lg bg-white py-2 pl-8 pr-3 text-black\">\n                <span className=\"absolute left-2 top-1/2 -translate-y-1/2 text-gray-400\">\n                  <MagnifyingGlassIcon className=\"h-5 w-5\" strokeWidth={2} />\n                </span>\n                <input\n                  className=\"w-full bg-transparent outline-none\"\n                  placeholder=\"Search\"\n                />\n              </div>\n\n              {channels.map((channel, i) => (\n                <div\n                  className=\"flex w-full justify-between\"\n                  key={channel.id + \"-\" + i}\n                >\n                  <div className=\"flex items-center gap-x-2\">\n                    <div className=\"h-14 w-14 shrink-0\">\n                      <img\n                        src={channel.avatar}\n                        alt={channel.fullName}\n                        className=\"h-full w-full rounded-full\"\n                      />\n                    </div>\n                    <div className=\"block\">\n                      <h6 className=\"font-semibold\">{channel.fullName}</h6>\n                      <p className=\"text-sm text-gray-300\">\n                        {channel.subscribers}&nbsp;Subscribers\n                      </p>\n                    </div>\n                  </div>\n                  <div className=\"block\">\n                    <button\n                      className={classNames(\n                        \"group/btn px-3 py-2 text-black\",\n                        channel.isSubscribed\n                          ? \"bg-[#ae7aff] focus:bg-white\"\n                          : \"bg-white focus:bg-[#ae7aff]\",\n                      )}\n                    >\n                      <span className=\"group-focus/btn:hidden\">\n                        {channel.isSubscribed ? \"Subscribed\" : \"Subscribe\"}\n                      </span>\n                      <span className=\"hidden group-focus/btn:inline\">\n                        {!channel.isSubscribed ? \"Subscribed\" : \"Subscribe\"}\n                      </span>\n                    </button>\n                  </div>\n                </div>\n              ))}\n            </div>\n          </div>\n        </section>\n      </div>\n    </div>\n  );\n};\n\nexport default ChannelSubscribed;\n"
  },
  {
    "path": "src/components/templates/youtube/channel-tweets.jsx",
    "content": "\"use client\";\nimport { classNames } from \"@/utils\";\nimport React from \"react\";\nimport {\n  HandThumbDownIcon,\n  HandThumbUpIcon,\n  MagnifyingGlassIcon,\n  UserPlusIcon,\n  XCircleIcon,\n} from \"@heroicons/react/24/outline\";\nimport { bottomTotalItems, navItems, logo, tweets } from \"./data\";\n\nconst ChannelTweets = () => {\n  return (\n    <div className=\"h-screen overflow-y-auto bg-[#121212] text-white\">\n      <header className=\"sticky inset-x-0 top-0 z-50 w-full border-b border-white bg-[#121212] px-4\">\n        <nav className=\"mx-auto flex max-w-7xl items-center py-2\">\n          <div className=\"mr-4 w-12 shrink-0 sm:w-16\">{logo}</div>\n          <div className=\"relative mx-auto hidden w-full max-w-md overflow-hidden sm:block\">\n            <input\n              className=\"w-full border bg-transparent py-1 pl-8 pr-3 placeholder-white outline-none sm:py-2\"\n              placeholder=\"Search\"\n            />\n            <span className=\"absolute left-2.5 top-1/2 inline-block -translate-y-1/2\">\n              <MagnifyingGlassIcon className=\" h-4 w-4\" />\n            </span>\n          </div>\n          <button className=\"ml-auto sm:hidden\">\n            <MagnifyingGlassIcon className=\" h-6 w-6\" />\n          </button>\n          <button className=\"group peer ml-4 flex w-6 shrink-0 flex-wrap gap-y-1.5 sm:hidden\">\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-2/3 bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n          </button>\n          <div className=\"fixed inset-y-0 right-0 flex w-full max-w-xs shrink-0 translate-x-full flex-col border-l border-white bg-[#121212] duration-200 hover:translate-x-0 peer-focus:translate-x-0 sm:static sm:ml-4 sm:w-auto sm:translate-x-0 sm:border-none\">\n            <div className=\"relative flex w-full items-center justify-between border-b border-white px-4 py-2 sm:hidden\">\n              <span className=\"inline-block w-12\">{logo}</span>\n              <button className=\"inline-block w-8\">\n                <XCircleIcon />\n              </button>\n            </div>\n            <ul className=\"my-4 flex w-full flex-wrap gap-2 px-4 sm:hidden\">\n              {navItems\n                .filter((item) => !item.mobileView)\n                .map((item) => (\n                  <li key={item.name} className=\"w-full\">\n                    <button className=\"flex w-full items-center justify-start gap-x-4 border border-white px-4 py-1.5 text-left hover:bg-[#ae7aff] hover:text-black focus:border-[#ae7aff] focus:bg-[#ae7aff] focus:text-black\">\n                      <span className=\"inline-block w-full max-w-[20px] group-hover:mr-4 lg:mr-4\">\n                        {item.icon}\n                      </span>\n                      <span>{item.name}</span>\n                    </button>\n                  </li>\n                ))}\n            </ul>\n\n            <div className=\"mb-8 mt-auto flex w-full flex-wrap gap-4 px-4 sm:mb-0 sm:mt-0 sm:items-center sm:px-0\">\n              <button className=\"w-full bg-[#383737] px-3 py-2 hover:bg-[#4f4e4e] sm:w-auto sm:bg-transparent\">\n                Log in\n              </button>\n              <button className=\"mr-1 w-full bg-[#ae7aff] px-3 py-2 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e] sm:w-auto\">\n                Sign up\n              </button>\n            </div>\n          </div>\n        </nav>\n      </header>\n      <div className=\"flex min-h-[calc(100vh-66px)] sm:min-h-[calc(100vh-82px)]\">\n        <aside className=\"group fixed inset-x-0 bottom-0 z-40 w-full shrink-0 border-t border-white bg-[#121212] px-2 py-2 sm:absolute sm:inset-y-0 sm:max-w-[70px] sm:border-r sm:border-t-0 sm:py-6 sm:hover:max-w-[250px] lg:sticky lg:max-w-[250px]\">\n          <ul className=\"flex justify-around gap-y-2 sm:sticky sm:top-[106px] sm:min-h-[calc(100vh-130px)] sm:flex-col\">\n            {navItems.map((item, i, arr) => (\n              <li\n                key={item.name}\n                className={classNames(\n                  item.mobileView ? \"\" : \"hidden sm:block\",\n                  arr.length - i === bottomTotalItems ? \"mt-auto\" : \"\",\n                )}\n              >\n                <button className=\"flex flex-col items-center justify-center border-white py-1 focus:text-[#ae7aff] sm:w-full sm:flex-row sm:border sm:p-1.5 sm:hover:bg-[#ae7aff] sm:hover:text-black sm:focus:border-[#ae7aff] sm:focus:bg-[#ae7aff] sm:focus:text-black sm:group-hover:justify-start sm:group-hover:px-4 lg:justify-start lg:px-4\">\n                  <span className=\"inline-block w-5 shrink-0 sm:group-hover:mr-4 lg:mr-4\">\n                    {item.icon}\n                  </span>\n                  <span className=\"block sm:hidden sm:group-hover:inline lg:inline\">\n                    {item.name}\n                  </span>\n                </button>\n              </li>\n            ))}\n          </ul>\n        </aside>\n        <section className=\"w-full pb-[70px] sm:ml-[70px] sm:pb-0 lg:ml-0\">\n          <div className=\"relative min-h-[150px] w-full pt-[16.28%]\">\n            <div className=\"absolute inset-0 overflow-hidden\">\n              <img\n                src=\"https://images.pexels.com/photos/1092424/pexels-photo-1092424.jpeg?auto=compress\"\n                alt=\"cover-photo\"\n              />\n            </div>\n          </div>\n          <div className=\"px-4 pb-4\">\n            <div className=\"flex flex-wrap gap-4 pb-4 pt-6\">\n              <span className=\"relative -mt-12 inline-block h-28 w-28 shrink-0 overflow-hidden rounded-full border-2\">\n                <img\n                  src=\"https://images.pexels.com/photos/1115816/pexels-photo-1115816.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\"\n                  alt=\"Channel\"\n                  className=\"h-full w-full\"\n                />\n              </span>\n\n              <div className=\"mr-auto inline-block\">\n                <h1 className=\"font-bolg text-xl\">React Patterns</h1>\n                <p className=\"text-sm text-gray-400\">@reactpatterns</p>\n                <p className=\"text-sm text-gray-400\">\n                  600k Subscribers&nbsp;&middot;&nbsp;220 Subscribed\n                </p>\n              </div>\n\n              <div className=\"inline-block\">\n                <div className=\"inline-flex min-w-[145px] justify-end\">\n                  <button className=\"group/btn mr-1 flex w-full items-center gap-x-2 bg-[#ae7aff] px-3 py-2 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e] sm:w-auto\">\n                    <span className=\"inline-block w-5\">\n                      <UserPlusIcon strokeWidth={2} />\n                    </span>\n                    <span className=\"group-focus/btn:hidden\">Subscribe</span>\n                    <span className=\"hidden group-focus/btn:block\">\n                      Subscribed\n                    </span>\n                  </button>\n                </div>\n              </div>\n            </div>\n\n            <ul className=\"no-scrollbar sticky top-[66px] z-[2] flex flex-row gap-x-2 overflow-auto border-b-2 border-gray-400 bg-[#121212] py-2 sm:top-[82px]\">\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Videos\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Playlist\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-[#ae7aff] bg-white px-3 py-1.5 text-[#ae7aff]\">\n                  Tweets\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Subscribed\n                </button>\n              </li>\n            </ul>\n            <div className=\"py-4\">\n              {tweets.map((tweet) => (\n                <div\n                  key={tweet.id}\n                  className=\"flex gap-3 border-b border-gray-700 py-4 last:border-b-transparent\"\n                >\n                  <div className=\"h-14 w-14 shrink-0\">\n                    <img\n                      src={tweet.owner.avatar}\n                      alt={tweet.owner.fullName}\n                      className=\"h-full w-full rounded-full\"\n                    />\n                  </div>\n                  <div className=\"w-full\">\n                    <h4 className=\"mb-1 flex items-center gap-x-2\">\n                      <span className=\"font-semibold\">\n                        {tweet.owner.fullName}\n                      </span>\n                      &nbsp;\n                      <span className=\"inline-block text-sm text-gray-400\">\n                        {tweet.createdAt}\n                      </span>\n                    </h4>\n                    <p className=\"mb-2\">{tweet.content}</p>\n                    <div className=\"flex gap-4\">\n                      <button\n                        className={`group inline-flex items-center gap-x-1 outline-none after:content-[attr(data-like-count)] focus:after:content-[attr(data-like-count-alt)]`}\n                        data-like-count={tweet.likeCount}\n                        data-like-count-alt={\n                          tweet.liked\n                            ? tweet.likeCount - 1\n                            : tweet.likeCount + 1\n                        }\n                      >\n                        <HandThumbUpIcon\n                          className={`h-5 w-5 ${\n                            tweet.liked\n                              ? \"text-[#ae7aff] group-focus:text-inherit\"\n                              : \"text-inherit group-focus:text-[#ae7aff]\"\n                          }`}\n                        />\n                      </button>\n                      <button\n                        className={`group inline-flex items-center gap-x-1 outline-none after:content-[attr(data-dislike-count)] focus:after:content-[attr(data-dislike-count-alt)]`}\n                        data-dislike-count={tweet.dislikeCount}\n                        data-dislike-count-alt={\n                          tweet.disliked\n                            ? tweet.dislikeCount - 1\n                            : tweet.dislikeCount + 1\n                        }\n                      >\n                        <HandThumbDownIcon\n                          className={`h-5 w-5 ${\n                            tweet.disliked\n                              ? \"text-[#ae7aff] group-focus:text-inherit\"\n                              : \"text-inherit group-focus:text-[#ae7aff]\"\n                          }`}\n                        />\n                      </button>\n                    </div>\n                  </div>\n                </div>\n              ))}\n            </div>\n          </div>\n        </section>\n      </div>\n    </div>\n  );\n};\n\nexport default ChannelTweets;\n"
  },
  {
    "path": "src/components/templates/youtube/channel-video-list.jsx",
    "content": "\"use client\";\nimport { classNames } from \"@/utils\";\nimport React from \"react\";\nimport {\n  MagnifyingGlassIcon,\n  UserPlusIcon,\n  XCircleIcon,\n} from \"@heroicons/react/24/outline\";\nimport { bottomTotalItems, navItems, logo, videos } from \"./data\";\n\nconst ChannelVideoList = () => {\n  return (\n    <div className=\"h-screen overflow-y-auto bg-[#121212] text-white\">\n      <header className=\"sticky inset-x-0 top-0 z-50 w-full border-b border-white bg-[#121212] px-4\">\n        <nav className=\"mx-auto flex max-w-7xl items-center py-2\">\n          <div className=\"mr-4 w-12 shrink-0 sm:w-16\">{logo}</div>\n          <div className=\"relative mx-auto hidden w-full max-w-md overflow-hidden sm:block\">\n            <input\n              className=\"w-full border bg-transparent py-1 pl-8 pr-3 placeholder-white outline-none sm:py-2\"\n              placeholder=\"Search\"\n            />\n            <span className=\"absolute left-2.5 top-1/2 inline-block -translate-y-1/2\">\n              <MagnifyingGlassIcon className=\" h-4 w-4\" />\n            </span>\n          </div>\n          <button className=\"ml-auto sm:hidden\">\n            <MagnifyingGlassIcon className=\" h-6 w-6\" />\n          </button>\n          <button className=\"group peer ml-4 flex w-6 shrink-0 flex-wrap gap-y-1.5 sm:hidden\">\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-2/3 bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n          </button>\n          <div className=\"fixed inset-y-0 right-0 flex w-full max-w-xs shrink-0 translate-x-full flex-col border-l border-white bg-[#121212] duration-200 hover:translate-x-0 peer-focus:translate-x-0 sm:static sm:ml-4 sm:w-auto sm:translate-x-0 sm:border-none\">\n            <div className=\"relative flex w-full items-center justify-between border-b border-white px-4 py-2 sm:hidden\">\n              <span className=\"inline-block w-12\">{logo}</span>\n              <button className=\"inline-block w-8\">\n                <XCircleIcon />\n              </button>\n            </div>\n            <ul className=\"my-4 flex w-full flex-wrap gap-2 px-4 sm:hidden\">\n              {navItems\n                .filter((item) => !item.mobileView)\n                .map((item) => (\n                  <li key={item.name} className=\"w-full\">\n                    <button className=\"flex w-full items-center justify-start gap-x-4 border border-white px-4 py-1.5 text-left hover:bg-[#ae7aff] hover:text-black focus:border-[#ae7aff] focus:bg-[#ae7aff] focus:text-black\">\n                      <span className=\"inline-block w-full max-w-[20px] group-hover:mr-4 lg:mr-4\">\n                        {item.icon}\n                      </span>\n                      <span>{item.name}</span>\n                    </button>\n                  </li>\n                ))}\n            </ul>\n\n            <div className=\"mb-8 mt-auto flex w-full flex-wrap gap-4 px-4 sm:mb-0 sm:mt-0 sm:items-center sm:px-0\">\n              <button className=\"w-full bg-[#383737] px-3 py-2 hover:bg-[#4f4e4e] sm:w-auto sm:bg-transparent\">\n                Log in\n              </button>\n              <button className=\"mr-1 w-full bg-[#ae7aff] px-3 py-2 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e] sm:w-auto\">\n                Sign up\n              </button>\n            </div>\n          </div>\n        </nav>\n      </header>\n      <div className=\"flex min-h-[calc(100vh-66px)] sm:min-h-[calc(100vh-82px)]\">\n        <aside className=\"group fixed inset-x-0 bottom-0 z-40 w-full shrink-0 border-t border-white bg-[#121212] px-2 py-2 sm:absolute sm:inset-y-0 sm:max-w-[70px] sm:border-r sm:border-t-0 sm:py-6 sm:hover:max-w-[250px] lg:sticky lg:max-w-[250px]\">\n          <ul className=\"flex justify-around gap-y-2 sm:sticky sm:top-[106px] sm:min-h-[calc(100vh-130px)] sm:flex-col\">\n            {navItems.map((item, i, arr) => (\n              <li\n                key={item.name}\n                className={classNames(\n                  item.mobileView ? \"\" : \"hidden sm:block\",\n                  arr.length - i === bottomTotalItems ? \"mt-auto\" : \"\",\n                )}\n              >\n                <button className=\"flex flex-col items-center justify-center border-white py-1 focus:text-[#ae7aff] sm:w-full sm:flex-row sm:border sm:p-1.5 sm:hover:bg-[#ae7aff] sm:hover:text-black sm:focus:border-[#ae7aff] sm:focus:bg-[#ae7aff] sm:focus:text-black sm:group-hover:justify-start sm:group-hover:px-4 lg:justify-start lg:px-4\">\n                  <span className=\"inline-block w-5 shrink-0 sm:group-hover:mr-4 lg:mr-4\">\n                    {item.icon}\n                  </span>\n                  <span className=\"block sm:hidden sm:group-hover:inline lg:inline\">\n                    {item.name}\n                  </span>\n                </button>\n              </li>\n            ))}\n          </ul>\n        </aside>\n        <section className=\"w-full pb-[70px] sm:ml-[70px] sm:pb-0 lg:ml-0\">\n          <div className=\"relative min-h-[150px] w-full pt-[16.28%]\">\n            <div className=\"absolute inset-0 overflow-hidden\">\n              <img\n                src=\"https://images.pexels.com/photos/1092424/pexels-photo-1092424.jpeg?auto=compress\"\n                alt=\"cover-photo\"\n              />\n            </div>\n          </div>\n          <div className=\"px-4 pb-4\">\n            <div className=\"flex flex-wrap gap-4 pb-4 pt-6\">\n              <span className=\"relative -mt-12 inline-block h-28 w-28 shrink-0 overflow-hidden rounded-full border-2\">\n                <img\n                  src=\"https://images.pexels.com/photos/1115816/pexels-photo-1115816.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\"\n                  alt=\"Channel\"\n                  className=\"h-full w-full\"\n                />\n              </span>\n\n              <div className=\"mr-auto inline-block\">\n                <h1 className=\"font-bolg text-xl\">React Patterns</h1>\n                <p className=\"text-sm text-gray-400\">@reactpatterns</p>\n                <p className=\"text-sm text-gray-400\">\n                  600k Subscribers&nbsp;&middot;&nbsp;220 Subscribed\n                </p>\n              </div>\n\n              <div className=\"inline-block\">\n                <div className=\"inline-flex min-w-[145px] justify-end\">\n                  <button className=\"group/btn mr-1 flex w-full items-center gap-x-2 bg-[#ae7aff] px-3 py-2 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e] sm:w-auto\">\n                    <span className=\"inline-block w-5\">\n                      <UserPlusIcon strokeWidth={2} />\n                    </span>\n                    <span className=\"group-focus/btn:hidden\">Subscribe</span>\n                    <span className=\"hidden group-focus/btn:block\">\n                      Subscribed\n                    </span>\n                  </button>\n                </div>\n              </div>\n            </div>\n\n            <ul className=\"no-scrollbar sticky top-[66px] z-[2] flex flex-row gap-x-2 overflow-auto border-b-2 border-gray-400 bg-[#121212] py-2 sm:top-[82px]\">\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-[#ae7aff] bg-white px-3 py-1.5 text-[#ae7aff]\">\n                  Videos\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Playlist\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Tweets\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Subscribed\n                </button>\n              </li>\n            </ul>\n            <div className=\"grid grid-cols-[repeat(auto-fit,_minmax(300px,_1fr))] gap-4 pt-2\">\n              {videos\n                .filter((video) => video.isPublished)\n                .map((video) => (\n                  <div key={video.id} className=\"w-full\">\n                    <div className=\"relative mb-2 w-full pt-[56%]\">\n                      <div className=\"absolute inset-0\">\n                        <img\n                          src={video.thumbnail}\n                          alt={video.title}\n                          className=\"h-full w-full\"\n                        />\n                      </div>\n                      <span className=\"absolute bottom-1 right-1 inline-block rounded bg-black px-1.5 text-sm\">\n                        {video.duration}\n                      </span>\n                    </div>\n                    <h6 className=\"mb-1 font-semibold\">{video.title}</h6>\n                    <p className=\"flex text-sm text-gray-200\">\n                      {video.views}&nbsp;Views &middot; {video.time}\n                    </p>\n                  </div>\n                ))}\n            </div>\n          </div>\n        </section>\n      </div>\n    </div>\n  );\n};\n\nexport default ChannelVideoList;\n"
  },
  {
    "path": "src/components/templates/youtube/dashboard.jsx",
    "content": "\"use client\";\nimport {\n  EyeIcon,\n  HeartIcon,\n  MagnifyingGlassIcon,\n  PencilIcon,\n  PlusIcon,\n  TrashIcon,\n  UserIcon,\n  XCircleIcon,\n} from \"@heroicons/react/24/outline\";\nimport React from \"react\";\nimport { navItems, logo, videos } from \"./data\";\nimport { classNames } from \"@/utils\";\n\nconst Dashboard = () => {\n  return (\n    <div className=\"h-screen overflow-y-auto bg-[#121212] text-white\">\n      <header className=\"sticky inset-x-0 top-0 z-50 w-full border-b border-white bg-[#121212] px-4\">\n        <nav className=\"mx-auto flex max-w-7xl items-center py-2\">\n          <div className=\"mr-4 w-12 shrink-0 sm:w-16\">{logo}</div>\n          <div className=\"relative mx-auto hidden w-full max-w-md overflow-hidden sm:block\">\n            <input\n              className=\"w-full border bg-transparent py-1 pl-8 pr-3 placeholder-white outline-none sm:py-2\"\n              placeholder=\"Search\"\n            />\n            <span className=\"absolute left-2.5 top-1/2 inline-block -translate-y-1/2\">\n              <MagnifyingGlassIcon className=\" h-4 w-4\" />\n            </span>\n          </div>\n          <button className=\"ml-auto sm:hidden\">\n            <MagnifyingGlassIcon className=\" h-6 w-6\" />\n          </button>\n          <button className=\"group peer ml-4 flex w-6 shrink-0 flex-wrap gap-y-1.5 sm:hidden\">\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-2/3 bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n          </button>\n          <div className=\"fixed inset-y-0 right-0 flex w-full max-w-xs shrink-0 translate-x-full flex-col border-l border-white bg-[#121212] duration-200 hover:translate-x-0 peer-focus:translate-x-0 sm:static sm:ml-4 sm:w-auto sm:translate-x-0 sm:border-none\">\n            <div className=\"relative flex w-full items-center justify-between border-b border-white px-4 py-2 sm:hidden\">\n              <span className=\"inline-block w-12\">{logo}</span>\n              <button className=\"inline-block w-8\">\n                <XCircleIcon />\n              </button>\n            </div>\n            <ul className=\"my-4 flex w-full flex-wrap gap-2 px-4 sm:hidden\">\n              {navItems\n                .filter((item) => !item.mobileView)\n                .map((item) => (\n                  <li key={item.name} className=\"w-full\">\n                    <button className=\"flex w-full items-center justify-start gap-x-4 border border-white px-4 py-1.5 text-left hover:bg-[#ae7aff] hover:text-black focus:border-[#ae7aff] focus:bg-[#ae7aff] focus:text-black\">\n                      <span className=\"inline-block w-full max-w-[20px] group-hover:mr-4 lg:mr-4\">\n                        {item.icon}\n                      </span>\n                      <span>{item.name}</span>\n                    </button>\n                  </li>\n                ))}\n            </ul>\n\n            <div className=\"mb-8 mt-auto px-4 sm:mb-0 sm:mt-0 sm:px-0\">\n              <button className=\"flex w-full gap-4 text-left sm:items-center\">\n                <img\n                  src=\"https://images.pexels.com/photos/1115816/pexels-photo-1115816.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\"\n                  alt=\"React-Patterns\"\n                  className=\"h-16 w-16 shrink-0 rounded-full sm:h-12 sm:w-12\"\n                />\n\n                <div className=\"w-full pt-2 sm:hidden\">\n                  <h6 className=\"font-semibold\">React Patterns</h6>\n                  <p className=\"text-sm text-gray-300\">@reactpatterns</p>\n                </div>\n              </button>\n            </div>\n          </div>\n        </nav>\n      </header>\n      <div className=\"flex min-h-[calc(100vh-66px)] sm:min-h-[calc(100vh-82px)]\">\n        <div className=\"mx-auto flex w-full max-w-7xl flex-col gap-y-6 px-4 py-8\">\n          <div className=\"flex flex-wrap justify-between gap-4\">\n            <div className=\"block\">\n              <h1 className=\"text-2xl font-bold\">\n                Welcome Back, React Patterns\n              </h1>\n              <p className=\"text-sm text-gray-300\">\n                Seamless Video Management, Elevated Results.\n              </p>\n            </div>\n            <div className=\"block\">\n              <button className=\"inline-flex items-center gap-x-2 bg-[#ae7aff] px-3 py-2 font-semibold text-black\">\n                <PlusIcon className=\"h-5 w-5\" strokeWidth={2} /> Upload video\n              </button>\n            </div>\n          </div>\n          <div className=\"grid grid-cols-[repeat(auto-fit,_minmax(300px,_1fr))] gap-4\">\n            {[\n              { Icon: EyeIcon, title: \"Total views\", count: \"221,234\" },\n              { Icon: UserIcon, title: \"Total subscribers\", count: \"4,053\" },\n              { Icon: HeartIcon, title: \"Total likes\", count: \"63,021\" },\n            ].map(({ title, Icon, count }) => (\n              <div key={title} className=\"border p-4\">\n                <div className=\"mb-4 block\">\n                  <span className=\"inline-block h-7 w-7 rounded-full bg-[#E4D3FF] p-1 text-[#ae7aff]\">\n                    <Icon />\n                  </span>\n                </div>\n                <h6 className=\"text-gray-300\">{title}</h6>\n                <p className=\"text-3xl font-semibold\">{count}</p>\n              </div>\n            ))}\n          </div>\n          <div className=\"w-full overflow-auto\">\n            <table className=\"w-full min-w-[1200px] border-collapse border text-white\">\n              <thead>\n                <tr>\n                  <th className=\"border-collapse border-b p-4\">Status</th>\n                  <th className=\"border-collapse border-b p-4\">Status</th>\n                  <th className=\"border-collapse border-b p-4\">Uploaded</th>\n                  <th className=\"border-collapse border-b p-4\">Rating</th>\n                  <th className=\"border-collapse border-b p-4\">\n                    Date uploaded\n                  </th>\n                  <th className=\"border-collapse border-b p-4\"></th>\n                </tr>\n              </thead>\n              <tbody>\n                {videos.map((video) => (\n                  <tr key={video.id} className=\"group border\">\n                    <td className=\"border-collapse border-b border-gray-600 px-4 py-3 group-last:border-none\">\n                      <div className=\"flex justify-center\">\n                        <label\n                          htmlFor={\"vid-pub-\" + video.id}\n                          className=\"relative inline-block w-12 cursor-pointer overflow-hidden\"\n                        >\n                          <input\n                            type=\"checkbox\"\n                            id={\"vid-pub-\" + video.id}\n                            className=\"peer sr-only\"\n                            defaultChecked={video.isPublished}\n                          />\n                          <span className=\"inline-block h-6 w-full rounded-2xl bg-gray-200 duration-200 after:absolute after:bottom-1 after:left-1 after:top-1 after:h-4 after:w-4 after:rounded-full after:bg-black after:duration-200 peer-checked:bg-[#ae7aff] peer-checked:after:left-7\"></span>\n                        </label>\n                      </div>\n                    </td>\n                    <td className=\"border-collapse border-b border-gray-600 px-4 py-3 group-last:border-none\">\n                      <div className=\"flex justify-center\">\n                        <span\n                          className={classNames(\n                            \"inline-block rounded-2xl border px-1.5 py-0.5\",\n                            video.isPublished\n                              ? \"border-green-600 text-green-600\"\n                              : \"border-orange-600 text-orange-600\",\n                          )}\n                        >\n                          {video.isPublished ? \"Published\" : \"Unpublished\"}\n                        </span>\n                      </div>\n                    </td>\n                    <td className=\"border-collapse border-b border-gray-600 px-4 py-3 group-last:border-none\">\n                      <div className=\"flex items-center gap-4\">\n                        <img\n                          className=\"h-10 w-10 rounded-full\"\n                          src={video.owner.avatar}\n                          alt={video.owner.fullName}\n                        />\n                        <h3 className=\"font-semibold\">{video.title}</h3>\n                      </div>\n                    </td>\n                    <td className=\"border-collapse border-b border-gray-600 px-4 py-3 group-last:border-none\">\n                      <div className=\"flex justify-center gap-4\">\n                        <span className=\"inline-block rounded-xl bg-green-200 px-1.5 py-0.5 text-green-700\">\n                          {video.likeCount} likes\n                        </span>\n                        <span className=\"inline-block rounded-xl bg-red-200 px-1.5 py-0.5 text-red-700\">\n                          {video.dislikeCount} dislikes\n                        </span>\n                      </div>\n                    </td>\n                    <td className=\"border-collapse border-b border-gray-600 px-4 py-3 group-last:border-none\">\n                      {new Date(video.createdAt).toLocaleDateString()}\n                    </td>\n                    <td className=\"border-collapse border-b border-gray-600 px-4 py-3 group-last:border-none\">\n                      <div className=\"flex gap-4\">\n                        <button className=\"h-5 w-5 hover:text-[#ae7aff]\">\n                          <TrashIcon />\n                        </button>\n                        <button className=\"h-5 w-5 hover:text-[#ae7aff]\">\n                          <PencilIcon />\n                        </button>\n                      </div>\n                    </td>\n                  </tr>\n                ))}\n              </tbody>\n            </table>\n          </div>\n        </div>\n      </div>\n    </div>\n  );\n};\n\nexport default Dashboard;\n"
  },
  {
    "path": "src/components/templates/youtube/data.jsx",
    "content": "export const logo = (\n  <svg\n    style={{ width: \"100%\" }}\n    viewBox=\"0 0 63 64\"\n    fill=\"none\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n  >\n    <path\n      d=\"M47.25 47.458C55.9485 38.7595 55.9485 24.6565 47.25 15.958C38.5515 7.25952 24.4485 7.25952 15.75 15.958C7.05151 24.6565 7.05151 38.7595 15.75 47.458C24.4485 56.1565 38.5515 56.1565 47.25 47.458Z\"\n      stroke=\"#E9FCFF\"\n      strokeWidth=\"1.38962\"\n      strokeMiterlimit=\"10\"\n    />\n    <path\n      d=\"M10.5366 47.7971V17.5057C10.5366 16.9599 11.1511 16.6391 11.599 16.9495L33.4166 32.0952C33.8041 32.3639 33.8041 32.9368 33.4166 33.2076L11.599 48.3533C11.1511 48.6657 10.5366 48.3429 10.5366 47.7971Z\"\n      stroke=\"url(#paint0_linear_53_10115)\"\n      strokeWidth=\"6.99574\"\n      strokeMiterlimit=\"10\"\n      strokeLinecap=\"round\"\n    />\n    <path\n      d=\"M18.1915 27.6963C20.1641 27.6963 21.7285 28.7066 21.7285 30.9021C21.7285 33.0976 20.1621 34.2433 18.1915 34.2433H16.8854V37.8677H14.1733V27.6984H18.1915V27.6963Z\"\n      fill=\"#E9FCFF\"\n    />\n    <path\n      d=\"M25.2053 27.6963V35.4868H28.484V37.8657H22.4932V27.6963H25.2053Z\"\n      fill=\"#E9FCFF\"\n    />\n    <path\n      d=\"M35.3142 27.6963L39.4553 37.8657H36.5328L35.9162 36.1763H32.1939L31.5773 37.8657H28.6548L32.7959 27.6963H35.3101H35.3142ZM34.9143 33.5663L34.2144 31.7832C34.1582 31.6395 33.954 31.6395 33.8978 31.7832L33.1979 33.5663C33.1541 33.6767 33.2354 33.7975 33.3562 33.7975H34.756C34.8747 33.7975 34.958 33.6767 34.9143 33.5663Z\"\n      fill=\"#E9FCFF\"\n    />\n    <path\n      d=\"M40.9491 27.6963L42.8592 30.5188L44.7694 27.6963H48.0355L44.2132 33.2559V37.8657H41.5011V33.2559L37.6787 27.6963H40.9449H40.9491Z\"\n      fill=\"#E9FCFF\"\n    />\n    <path\n      d=\"M16.894 32.1396V29.9129C16.894 29.8212 16.9982 29.7671 17.0732 29.8191L18.6771 30.9315C18.7417 30.9773 18.7417 31.0731 18.6771 31.1189L17.0732 32.2313C16.9982 32.2834 16.894 32.2313 16.894 32.1375V32.1396Z\"\n      fill=\"#232323\"\n    />\n    <defs>\n      <linearGradient\n        id=\"paint0_linear_53_10115\"\n        x1=\"2.23416\"\n        y1=\"20.3361\"\n        x2=\"26.863\"\n        y2=\"44.9649\"\n        gradientUnits=\"userSpaceOnUse\"\n      >\n        <stop stopColor=\"#007EF8\" />\n        <stop offset=\"1\" stopColor=\"#FF4A9A\" />\n      </linearGradient>\n    </defs>\n  </svg>\n);\n\nexport const icons = {\n  home: (\n    <svg\n      style={{ width: \"100%\" }}\n      viewBox=\"0 0 20 21\"\n      fill=\"none\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n    >\n      <path\n        d=\"M6 15.9997H14M9.0177 1.76375L2.23539 7.03888C1.78202 7.3915 1.55534 7.56781 1.39203 7.78861C1.24737 7.9842 1.1396 8.20454 1.07403 8.43881C1 8.70327 1 8.99045 1 9.56481V16.7997C1 17.9198 1 18.4799 1.21799 18.9077C1.40973 19.284 1.71569 19.59 2.09202 19.7818C2.51984 19.9997 3.07989 19.9997 4.2 19.9997H15.8C16.9201 19.9997 17.4802 19.9997 17.908 19.7818C18.2843 19.59 18.5903 19.284 18.782 18.9077C19 18.4799 19 17.9198 19 16.7997V9.56481C19 8.99045 19 8.70327 18.926 8.43881C18.8604 8.20454 18.7526 7.9842 18.608 7.78861C18.4447 7.56781 18.218 7.3915 17.7646 7.03888L10.9823 1.76376C10.631 1.4905 10.4553 1.35388 10.2613 1.30136C10.0902 1.25502 9.9098 1.25502 9.73865 1.30136C9.54468 1.35388 9.36902 1.4905 9.0177 1.76375Z\"\n        stroke=\"currentColor\"\n        strokeWidth=\"2\"\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n      />\n    </svg>\n  ),\n  like: (\n    <svg\n      style={{ width: \"100%\" }}\n      viewBox=\"0 0 22 22\"\n      fill=\"none\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n    >\n      <path\n        d=\"M6 21V10M1 12V19C1 20.1046 1.89543 21 3 21H16.4262C17.907 21 19.1662 19.9197 19.3914 18.4562L20.4683 11.4562C20.7479 9.6389 19.3418 8 17.5032 8H14C13.4477 8 13 7.55228 13 7V3.46584C13 2.10399 11.896 1 10.5342 1C10.2093 1 9.91498 1.1913 9.78306 1.48812L6.26394 9.40614C6.10344 9.76727 5.74532 10 5.35013 10H3C1.89543 10 1 10.8954 1 12Z\"\n        stroke=\"currentColor\"\n        strokeWidth=\"2\"\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n      />\n    </svg>\n  ),\n  history: (\n    <svg\n      style={{ width: \"100%\" }}\n      viewBox=\"0 0 22 20\"\n      fill=\"none\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n    >\n      <path\n        d=\"M20.7 11.5L18.7005 9.5L16.7 11.5M19 10C19 14.9706 14.9706 19 10 19C5.02944 19 1 14.9706 1 10C1 5.02944 5.02944 1 10 1C13.3019 1 16.1885 2.77814 17.7545 5.42909M10 5V10L13 12\"\n        stroke=\"currentColor\"\n        strokeWidth=\"2\"\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n      />\n    </svg>\n  ),\n  myContent: (\n    <svg\n      style={{ width: \"100%\" }}\n      viewBox=\"0 0 22 16\"\n      fill=\"none\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n    >\n      <path\n        d=\"M21 4.93137C21 4.32555 21 4.02265 20.8802 3.88238C20.7763 3.76068 20.6203 3.69609 20.4608 3.70865C20.2769 3.72312 20.0627 3.93731 19.6343 4.36569L16 8L19.6343 11.6343C20.0627 12.0627 20.2769 12.2769 20.4608 12.2914C20.6203 12.3039 20.7763 12.2393 20.8802 12.1176C21 11.9774 21 11.6744 21 11.0686V4.93137Z\"\n        stroke=\"currentColor\"\n        strokeWidth=\"2\"\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n      />\n      <path\n        d=\"M1 5.8C1 4.11984 1 3.27976 1.32698 2.63803C1.6146 2.07354 2.07354 1.6146 2.63803 1.32698C3.27976 1 4.11984 1 5.8 1H11.2C12.8802 1 13.7202 1 14.362 1.32698C14.9265 1.6146 15.3854 2.07354 15.673 2.63803C16 3.27976 16 4.11984 16 5.8V10.2C16 11.8802 16 12.7202 15.673 13.362C15.3854 13.9265 14.9265 14.3854 14.362 14.673C13.7202 15 12.8802 15 11.2 15H5.8C4.11984 15 3.27976 15 2.63803 14.673C2.07354 14.3854 1.6146 13.9265 1.32698 13.362C1 12.7202 1 11.8802 1 10.2V5.8Z\"\n        stroke=\"currentColor\"\n        strokeWidth=\"2\"\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n      />\n    </svg>\n  ),\n  collections: (\n    <svg\n      style={{ width: \"100%\" }}\n      viewBox=\"0 0 22 20\"\n      fill=\"none\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n    >\n      <path\n        d=\"M12 5L10.8845 2.76892C10.5634 2.1268 10.4029 1.80573 10.1634 1.57116C9.95158 1.36373 9.69632 1.20597 9.41607 1.10931C9.09916 1 8.74021 1 8.02229 1H4.2C3.0799 1 2.51984 1 2.09202 1.21799C1.71569 1.40973 1.40973 1.71569 1.21799 2.09202C1 2.51984 1 3.0799 1 4.2V5M1 5H16.2C17.8802 5 18.7202 5 19.362 5.32698C19.9265 5.6146 20.3854 6.07354 20.673 6.63803C21 7.27976 21 8.11984 21 9.8V14.2C21 15.8802 21 16.7202 20.673 17.362C20.3854 17.9265 19.9265 18.3854 19.362 18.673C18.7202 19 17.8802 19 16.2 19H5.8C4.11984 19 3.27976 19 2.63803 18.673C2.07354 18.3854 1.6146 17.9265 1.32698 17.362C1 16.7202 1 15.8802 1 14.2V5Z\"\n        stroke=\"currentColor\"\n        strokeWidth=\"2\"\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n      />\n    </svg>\n  ),\n  subscribers: (\n    <svg\n      style={{ width: \"100%\" }}\n      viewBox=\"0 0 22 20\"\n      fill=\"none\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n    >\n      <path\n        d=\"M11 13.5H6.5C5.10444 13.5 4.40665 13.5 3.83886 13.6722C2.56045 14.06 1.56004 15.0605 1.17224 16.3389C1 16.9067 1 17.6044 1 19M15 16L17 18L21 14M13.5 5.5C13.5 7.98528 11.4853 10 9 10C6.51472 10 4.5 7.98528 4.5 5.5C4.5 3.01472 6.51472 1 9 1C11.4853 1 13.5 3.01472 13.5 5.5Z\"\n        stroke=\"currentColor\"\n        strokeWidth=\"2\"\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n      />\n    </svg>\n  ),\n  support: (\n    <svg\n      style={{ width: \"100%\" }}\n      viewBox=\"0 0 22 22\"\n      fill=\"none\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n    >\n      <path\n        d=\"M8.09 8C8.3251 7.33167 8.78915 6.76811 9.39995 6.40913C10.0108 6.05016 10.7289 5.91894 11.4272 6.03871C12.1255 6.15849 12.7588 6.52152 13.2151 7.06353C13.6713 7.60553 13.9211 8.29152 13.92 9C13.92 11 10.92 12 10.92 12M11 16H11.01M21 11C21 16.5228 16.5228 21 11 21C5.47715 21 1 16.5228 1 11C1 5.47715 5.47715 1 11 1C16.5228 1 21 5.47715 21 11Z\"\n        stroke=\"currentColor\"\n        strokeWidth=\"2\"\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n      />\n    </svg>\n  ),\n  settings: (\n    <svg\n      style={{ width: \"100%\" }}\n      viewBox=\"0 0 22 22\"\n      fill=\"none\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n    >\n      <path\n        d=\"M11 14C12.6569 14 14 12.6569 14 11C14 9.34315 12.6569 8 11 8C9.34315 8 8 9.34315 8 11C8 12.6569 9.34315 14 11 14Z\"\n        stroke=\"currentColor\"\n        strokeWidth=\"2\"\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n      />\n      <path\n        d=\"M17.7273 13.7273C17.6063 14.0015 17.5702 14.3056 17.6236 14.6005C17.6771 14.8954 17.8177 15.1676 18.0273 15.3818L18.0818 15.4364C18.2509 15.6052 18.385 15.8057 18.4765 16.0265C18.568 16.2472 18.6151 16.4838 18.6151 16.7227C18.6151 16.9617 18.568 17.1983 18.4765 17.419C18.385 17.6397 18.2509 17.8402 18.0818 18.0091C17.913 18.1781 17.7124 18.3122 17.4917 18.4037C17.271 18.4952 17.0344 18.5423 16.7955 18.5423C16.5565 18.5423 16.3199 18.4952 16.0992 18.4037C15.8785 18.3122 15.678 18.1781 15.5091 18.0091L15.4545 17.9545C15.2403 17.745 14.9682 17.6044 14.6733 17.5509C14.3784 17.4974 14.0742 17.5335 13.8 17.6545C13.5311 17.7698 13.3018 17.9611 13.1403 18.205C12.9788 18.4489 12.8921 18.7347 12.8909 19.0273V19.1818C12.8909 19.664 12.6994 20.1265 12.3584 20.4675C12.0174 20.8084 11.5549 21 11.0727 21C10.5905 21 10.1281 20.8084 9.78708 20.4675C9.4461 20.1265 9.25455 19.664 9.25455 19.1818V19.1C9.24751 18.7991 9.15011 18.5073 8.97501 18.2625C8.79991 18.0176 8.55521 17.8312 8.27273 17.7273C7.99853 17.6063 7.69437 17.5702 7.39947 17.6236C7.10456 17.6771 6.83244 17.8177 6.61818 18.0273L6.56364 18.0818C6.39478 18.2509 6.19425 18.385 5.97353 18.4765C5.7528 18.568 5.51621 18.6151 5.27727 18.6151C5.03834 18.6151 4.80174 18.568 4.58102 18.4765C4.36029 18.385 4.15977 18.2509 3.99091 18.0818C3.82186 17.913 3.68775 17.7124 3.59626 17.4917C3.50476 17.271 3.45766 17.0344 3.45766 16.7955C3.45766 16.5565 3.50476 16.3199 3.59626 16.0992C3.68775 15.8785 3.82186 15.678 3.99091 15.5091L4.04545 15.4545C4.25503 15.2403 4.39562 14.9682 4.4491 14.6733C4.50257 14.3784 4.46647 14.0742 4.34545 13.8C4.23022 13.5311 4.03887 13.3018 3.79497 13.1403C3.55107 12.9788 3.26526 12.8921 2.97273 12.8909H2.81818C2.33597 12.8909 1.87351 12.6994 1.53253 12.3584C1.19156 12.0174 1 11.5549 1 11.0727C1 10.5905 1.19156 10.1281 1.53253 9.78708C1.87351 9.4461 2.33597 9.25455 2.81818 9.25455H2.9C3.2009 9.24751 3.49273 9.15011 3.73754 8.97501C3.98236 8.79991 4.16883 8.55521 4.27273 8.27273C4.39374 7.99853 4.42984 7.69437 4.37637 7.39947C4.3229 7.10456 4.18231 6.83244 3.97273 6.61818L3.91818 6.56364C3.74913 6.39478 3.61503 6.19425 3.52353 5.97353C3.43203 5.7528 3.38493 5.51621 3.38493 5.27727C3.38493 5.03834 3.43203 4.80174 3.52353 4.58102C3.61503 4.36029 3.74913 4.15977 3.91818 3.99091C4.08704 3.82186 4.28757 3.68775 4.50829 3.59626C4.72901 3.50476 4.96561 3.45766 5.20455 3.45766C5.44348 3.45766 5.68008 3.50476 5.9008 3.59626C6.12152 3.68775 6.32205 3.82186 6.49091 3.99091L6.54545 4.04545C6.75971 4.25503 7.03183 4.39562 7.32674 4.4491C7.62164 4.50257 7.9258 4.46647 8.2 4.34545H8.27273C8.54161 4.23022 8.77093 4.03887 8.93245 3.79497C9.09397 3.55107 9.18065 3.26526 9.18182 2.97273V2.81818C9.18182 2.33597 9.37338 1.87351 9.71435 1.53253C10.0553 1.19156 10.5178 1 11 1C11.4822 1 11.9447 1.19156 12.2856 1.53253C12.6266 1.87351 12.8182 2.33597 12.8182 2.81818V2.9C12.8193 3.19253 12.906 3.47834 13.0676 3.72224C13.2291 3.96614 13.4584 4.15749 13.7273 4.27273C14.0015 4.39374 14.3056 4.42984 14.6005 4.37637C14.8954 4.3229 15.1676 4.18231 15.3818 3.97273L15.4364 3.91818C15.6052 3.74913 15.8057 3.61503 16.0265 3.52353C16.2472 3.43203 16.4838 3.38493 16.7227 3.38493C16.9617 3.38493 17.1983 3.43203 17.419 3.52353C17.6397 3.61503 17.8402 3.74913 18.0091 3.91818C18.1781 4.08704 18.3122 4.28757 18.4037 4.50829C18.4952 4.72901 18.5423 4.96561 18.5423 5.20455C18.5423 5.44348 18.4952 5.68008 18.4037 5.9008C18.3122 6.12152 18.1781 6.32205 18.0091 6.49091L17.9545 6.54545C17.745 6.75971 17.6044 7.03183 17.5509 7.32674C17.4974 7.62164 17.5335 7.9258 17.6545 8.2V8.27273C17.7698 8.54161 17.9611 8.77093 18.205 8.93245C18.4489 9.09397 18.7347 9.18065 19.0273 9.18182H19.1818C19.664 9.18182 20.1265 9.37338 20.4675 9.71435C20.8084 10.0553 21 10.5178 21 11C21 11.4822 20.8084 11.9447 20.4675 12.2856C20.1265 12.6266 19.664 12.8182 19.1818 12.8182H19.1C18.8075 12.8193 18.5217 12.906 18.2778 13.0676C18.0339 13.2291 17.8425 13.4584 17.7273 13.7273Z\"\n        stroke=\"currentColor\"\n        strokeWidth=\"2\"\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n      />\n    </svg>\n  ),\n};\n\nexport const navItems = [\n  {\n    name: \"Home\",\n    mobileView: true,\n    icon: icons.home,\n  },\n  {\n    name: \"Liked Videos\",\n    mobileView: false,\n    icon: icons.like,\n  },\n  {\n    name: \"History\",\n    mobileView: true,\n    icon: icons.history,\n  },\n  {\n    name: \"My Content\",\n    mobileView: false,\n    icon: icons.myContent,\n  },\n  {\n    name: \"Collections\",\n    mobileView: true,\n    icon: icons.collections,\n  },\n  {\n    name: \"Subscribers\",\n    mobileView: true,\n    icon: icons.subscribers,\n  },\n  {\n    name: \"Support\",\n    mobileView: false,\n    icon: icons.support,\n  },\n  {\n    name: \"Settings\",\n    mobileView: false,\n    icon: icons.settings,\n  },\n];\n\nexport const siteNavItems = [\"Home\", \"Products\", \"Resources\", \"Pricing\"];\n\nexport const bottomTotalItems = 2;\n\nexport const videos = [\n  {\n    id: \"1\",\n    videoFile: \"\",\n    thumbnail:\n      \"https://images.pexels.com/photos/3561339/pexels-photo-3561339.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    title: \"JavaScript Fundamentals: Variables and Data Types\",\n    description:\n      \"Learn the basics of JavaScript, including variables, data types, and how to use them in your programs.\",\n    duration: \"20:45\",\n    views: \"10.3k\",\n    isPublished: true,\n    time: \"44 minutes ago\",\n    createdAt: \"2023-09-22T09:54:42.381Z\",\n    owner: {\n      id: \"1\",\n      username: \"codemaster\",\n      fullName: \"Code Master\",\n      avatar:\n        \"https://images.pexels.com/photos/3532545/pexels-photo-3532545.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    },\n    likeCount: 921,\n    dislikeCount: 49,\n  },\n  {\n    id: \"2\",\n    videoFile: \"\",\n    thumbnail:\n      \"https://images.pexels.com/photos/3532553/pexels-photo-3532553.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    title: \"React Hooks Explained: useState and useEffect\",\n    description:\n      \"Dive into the world of React hooks and understand how to use useState and useEffect in your components.\",\n    duration: \"15:32\",\n    views: \"8.7k\",\n    isPublished: false,\n    time: \"1 hour ago\",\n    createdAt: \"2023-09-21T09:54:42.381Z\",\n    owner: {\n      id: \"2\",\n      username: \"reactninja\",\n      fullName: \"React Ninja\",\n      avatar:\n        \"https://images.pexels.com/photos/3532552/pexels-photo-3532552.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    },\n    likeCount: 2520,\n    dislikeCount: 279,\n  },\n  {\n    id: \"3\",\n    videoFile: \"\",\n    thumbnail:\n      \"https://images.pexels.com/photos/3532555/pexels-photo-3532555.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    title: \"Mastering Async Await in JavaScript\",\n    description:\n      \"Learn how to work with asynchronous JavaScript using the async/await syntax for cleaner and more readable code.\",\n    duration: \"25:10\",\n    views: \"12.5k\",\n    isPublished: false,\n    time: \"2 hours ago\",\n    createdAt: \"2023-09-20T09:54:42.381Z\",\n    owner: {\n      id: \"3\",\n      username: \"asyncmasters\",\n      fullName: \"Async Masters\",\n      avatar:\n        \"https://images.pexels.com/photos/3532549/pexels-photo-3532549.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    },\n    likeCount: 943,\n    dislikeCount: 244,\n  },\n  {\n    id: \"4\",\n    videoFile: \"\",\n    thumbnail:\n      \"https://images.pexels.com/photos/3532550/pexels-photo-3532550.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    title: \"Building a ToDo App with React and Context API\",\n    description:\n      \"Create a simple ToDo application using React and manage state with the Context API for global data.\",\n    duration: \"30:22\",\n    views: \"15.4k\",\n    isPublished: false,\n    time: \"3 hours ago\",\n    createdAt: \"2023-09-19T09:54:42.381Z\",\n    owner: {\n      id: \"4\",\n      username: \"codecrafters\",\n      fullName: \"Code Crafters\",\n      avatar:\n        \"https://images.pexels.com/photos/2522659/pexels-photo-2522659.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    },\n    likeCount: 760,\n    dislikeCount: 302,\n  },\n  {\n    id: \"5\",\n    videoFile: \"\",\n    thumbnail:\n      \"https://images.pexels.com/photos/2522660/pexels-photo-2522660.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    title: \"Responsive Web Design with Tailwind CSS\",\n    description:\n      \"Explore the power of Tailwind CSS and build a responsive website from scratch.\",\n    duration: \"18:56\",\n    views: \"9.8k\",\n    isPublished: false,\n    time: \"4 hours ago\",\n    createdAt: \"2023-09-18T09:54:42.381Z\",\n    owner: {\n      id: \"5\",\n      username: \"tailwindpro\",\n      fullName: \"Tailwind Pro\",\n      avatar:\n        \"https://images.pexels.com/photos/2519823/pexels-photo-2519823.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    },\n    likeCount: 2630,\n    dislikeCount: 317,\n  },\n  {\n    id: \"6\",\n    videoFile: \"\",\n    thumbnail:\n      \"https://images.pexels.com/photos/2519817/pexels-photo-2519817.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    title: \"Getting Started with Express.js\",\n    description:\n      \"Learn the basics of building web applications with Node.js and Express.js framework.\",\n    duration: \"22:18\",\n    views: \"11.k\",\n    isPublished: true,\n    time: \"5 hours ago\",\n    createdAt: \"2023-09-17T09:54:42.381Z\",\n    owner: {\n      id: \"6\",\n      username: \"expresslearner\",\n      fullName: \"Express Learner\",\n      avatar:\n        \"https://images.pexels.com/photos/2519812/pexels-photo-2519812.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    },\n    likeCount: 137,\n    dislikeCount: 107,\n  },\n  {\n    id: \"7\",\n    videoFile: \"\",\n    thumbnail:\n      \"https://images.pexels.com/photos/7775641/pexels-photo-7775641.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    title: \"State Management with Redux\",\n    description:\n      \"Learn how to manage global state in your React applications using Redux.\",\n    duration: \"27:50\",\n    views: \"13.8k\",\n    isPublished: false,\n    time: \"6 hours ago\",\n    createdAt: \"2023-09-16T09:54:42.381Z\",\n    owner: {\n      id: \"7\",\n      username: \"reduxmaster\",\n      fullName: \"Redux Master\",\n      avatar:\n        \"https://images.pexels.com/photos/18264716/pexels-photo-18264716/free-photo-of-man-people-laptop-internet.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    },\n    likeCount: 1250,\n    dislikeCount: 386,\n  },\n  {\n    id: \"8\",\n    videoFile: \"\",\n    thumbnail:\n      \"https://images.pexels.com/photos/1739849/pexels-photo-1739849.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    title: \"Building a RESTful API with Node.js and Express\",\n    description:\n      \"Learn how to create a RESTful API using Node.js and the Express framework for building web applications.\",\n    duration: \"24:33\",\n    views: \"14.5k\",\n    isPublished: true,\n    time: \"7 hours ago\",\n    createdAt: \"2023-09-15T09:54:42.381Z\",\n    owner: {\n      id: \"8\",\n      username: \"apibuilder\",\n      fullName: \"API Builder\",\n      avatar:\n        \"https://images.pexels.com/photos/1739942/pexels-photo-1739942.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    },\n    likeCount: 2773,\n    dislikeCount: 50,\n  },\n  {\n    id: \"9\",\n    videoFile: \"\",\n    thumbnail:\n      \"https://images.pexels.com/photos/1739854/pexels-photo-1739854.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    title: \"Introduction to React Native\",\n    description:\n      \"Discover how to build mobile applications using React Native for both Android and iOS platforms.\",\n    duration: \"19:58\",\n    views: \"10.9k\",\n    isPublished: true,\n    time: \"8 hours ago\",\n    createdAt: \"2023-09-14T09:54:42.381Z\",\n    owner: {\n      id: \"9\",\n      username: \"reactnativedev\",\n      fullName: \"React Native Dev\",\n      avatar:\n        \"https://images.pexels.com/photos/1739856/pexels-photo-1739856.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    },\n    likeCount: 1346,\n    dislikeCount: 353,\n  },\n  {\n    id: \"10\",\n    videoFile: \"\",\n    thumbnail:\n      \"https://images.pexels.com/photos/1144256/pexels-photo-1144256.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    title: \"Creating Custom Hooks in React\",\n    description:\n      \"Learn how to create and use custom hooks to share logic across multiple React components.\",\n    duration: \"16:37\",\n    views: \"9.3k\",\n    isPublished: true,\n    time: \"9 hours ago\",\n    createdAt: \"2023-09-13T09:54:42.381Z\",\n    owner: {\n      id: \"10\",\n      username: \"hookmaster\",\n      fullName: \"Hook Master\",\n      avatar:\n        \"https://images.pexels.com/photos/1144257/pexels-photo-1144257.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    },\n    likeCount: 1578,\n    dislikeCount: 294,\n  },\n  {\n    id: \"11\",\n    videoFile: \"\",\n    thumbnail:\n      \"https://images.pexels.com/photos/1144259/pexels-photo-1144259.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    title: \"Advanced CSS: Flexbox and Grid Layouts\",\n    description:\n      \"Dive deep into CSS layout techniques with Flexbox and Grid for modern and responsive web design.\",\n    duration: \"28:15\",\n    views: \"16.7k\",\n    isPublished: false,\n    time: \"10 hours ago\",\n    createdAt: \"2023-09-12T09:54:42.381Z\",\n    owner: {\n      id: \"11\",\n      username: \"csswizard\",\n      fullName: \"CSS Wizard\",\n      avatar:\n        \"https://images.pexels.com/photos/1144261/pexels-photo-1144261.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    },\n    likeCount: 2506,\n    dislikeCount: 87,\n  },\n  {\n    id: \"12\",\n    videoFile: \"\",\n    thumbnail:\n      \"https://images.pexels.com/photos/1144265/pexels-photo-1144265.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    title: \"Introduction to Python Programming\",\n    description:\n      \"Get started with Python, a versatile and powerful programming language for beginners and professionals.\",\n    duration: \"26:50\",\n    views: \"17.8k\",\n    isPublished: false,\n    time: \"11 hours ago\",\n    createdAt: \"2023-09-11T09:54:42.381Z\",\n    owner: {\n      id: \"12\",\n      username: \"pythonista\",\n      fullName: \"Pythonista\",\n      avatar:\n        \"https://images.pexels.com/photos/1144268/pexels-photo-1144268.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    },\n    likeCount: 1312,\n    dislikeCount: 399,\n  },\n  {\n    id: \"13\",\n    videoFile: \"\",\n    thumbnail:\n      \"https://images.pexels.com/photos/1144260/pexels-photo-1144260.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    title: \"Building Scalable Web Applications with Django\",\n    description:\n      \"Learn how to build robust and scalable web applications using the Django framework for Python.\",\n    duration: \"32:18\",\n    views: \"18.9M\",\n    isPublished: true,\n    time: \"12 hours ago\",\n    createdAt: \"2023-09-10T09:54:42.381Z\",\n    owner: {\n      id: \"13\",\n      username: \"djangomaster\",\n      fullName: \"Django Master\",\n      avatar:\n        \"https://images.pexels.com/photos/1144269/pexels-photo-1144269.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    },\n    likeCount: 553,\n    dislikeCount: 219,\n  },\n  {\n    id: \"14\",\n    videoFile: \"\",\n    thumbnail:\n      \"https://images.pexels.com/photos/1144263/pexels-photo-1144263.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    title: \"Deep Dive into Machine Learning Algorithms\",\n    description:\n      \"Explore the inner workings of popular machine learning algorithms and their applications.\",\n    duration: \"34:22\",\n    views: \"19K\",\n    isPublished: false,\n    time: \"13 hours ago\",\n    createdAt: \"2023-09-09T09:54:42.381Z\",\n    owner: {\n      id: \"14\",\n      username: \"mlgeek\",\n      fullName: \"ML Geek\",\n      avatar:\n        \"https://images.pexels.com/photos/1144275/pexels-photo-1144275.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    },\n    likeCount: 2061,\n    dislikeCount: 359,\n  },\n  {\n    id: \"15\",\n    videoFile: \"\",\n    thumbnail:\n      \"https://images.pexels.com/photos/1144276/pexels-photo-1144276.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    title: \"Creating Interactive UIs with React and D3\",\n    description:\n      \"Learn how to build dynamic and interactive user interfaces with React and the D3.js data visualization library.\",\n    duration: \"29:30\",\n    views: \"20.1k\",\n    isPublished: true,\n    time: \"14 hours ago\",\n    createdAt: \"2023-09-08T09:54:42.381Z\",\n    owner: {\n      id: \"15\",\n      username: \"reactd3\",\n      fullName: \"ReactD3\",\n      avatar:\n        \"https://images.pexels.com/photos/1144277/pexels-photo-1144277.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    },\n    likeCount: 1165,\n    dislikeCount: 10,\n  },\n  {\n    id: \"16\",\n    videoFile: \"\",\n    thumbnail:\n      \"https://images.pexels.com/photos/1144274/pexels-photo-1144274.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    title: \"Node.js Authentication with Passport.js\",\n    description:\n      \"Learn how to implement user authentication in Node.js applications using the Passport.js middleware.\",\n    duration: \"26:58\",\n    views: \"21.2k\",\n    isPublished: true,\n    time: \"15 hours ago\",\n    createdAt: \"2023-09-07T09:54:42.381Z\",\n    owner: {\n      id: \"16\",\n      username: \"passportpro\",\n      fullName: \"Passport Pro\",\n      avatar:\n        \"https://images.pexels.com/photos/1144270/pexels-photo-1144270.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    },\n    likeCount: 1812,\n    dislikeCount: 347,\n  },\n  {\n    id: \"17\",\n    videoFile: \"\",\n    thumbnail:\n      \"https://images.pexels.com/photos/1144280/pexels-photo-1144280.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    title: \"Creating RESTful APIs with Django Rest Framework\",\n    description:\n      \"Learn how to build RESTful APIs with Django Rest Framework for building web applications.\",\n    duration: \"30:42\",\n    views: \"22.3k\",\n    isPublished: false,\n    time: \"16 hours ago\",\n    createdAt: \"2023-09-06T09:54:42.381Z\",\n    owner: {\n      id: \"17\",\n      username: \"djangorestapi\",\n      fullName: \"Django Rest API\",\n      avatar:\n        \"https://images.pexels.com/photos/1144235/pexels-photo-1144235.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    },\n    likeCount: 1698,\n    dislikeCount: 159,\n  },\n  {\n    id: \"18\",\n    videoFile: \"\",\n    thumbnail:\n      \"https://images.pexels.com/photos/1144282/pexels-photo-1144282.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    title: \"Advanced JavaScript: Closures and Prototypes\",\n    description:\n      \"Dive deep into JavaScript concepts like closures and prototypes for more advanced programming.\",\n    duration: \"35:28\",\n    views: \"23.4k\",\n    isPublished: false,\n    time: \"17 hours ago\",\n    createdAt: \"2023-09-05T09:54:42.381Z\",\n    owner: {\n      id: \"18\",\n      username: \"jsninja\",\n      fullName: \"JS Ninja\",\n      avatar:\n        \"https://images.pexels.com/photos/1144232/pexels-photo-1144232.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    },\n    likeCount: 2393,\n    dislikeCount: 146,\n  },\n  {\n    id: \"19\",\n    videoFile: \"\",\n    thumbnail:\n      \"https://images.pexels.com/photos/1144231/pexels-photo-1144231.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    title: \"Data Visualization with Tableau\",\n    description:\n      \"Learn how to create stunning visualizations and dashboards using Tableau for data analysis.\",\n    duration: \"32:14\",\n    views: \"24.5k\",\n    isPublished: true,\n    time: \"18 hours ago\",\n    createdAt: \"2023-09-04T09:54:42.381Z\",\n    owner: {\n      id: \"19\",\n      username: \"tableaumaster\",\n      fullName: \"Tableau Master\",\n      avatar:\n        \"https://images.pexels.com/photos/18264716/pexels-photo-18264716/free-photo-of-man-people-laptop-internet.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    },\n    likeCount: 2137,\n    dislikeCount: 280,\n  },\n  {\n    id: \"20\",\n    videoFile: \"\",\n    thumbnail:\n      \"https://images.pexels.com/photos/1144250/pexels-photo-1144250.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    title: \"Building Real-Time Applications with Socket.IO\",\n    description:\n      \"Learn how to create real-time applications using Socket.IO for seamless communication between clients and servers.\",\n    duration: \"27:37\",\n    views: \"25.6k\",\n    isPublished: true,\n    time: \"19 hours ago\",\n    createdAt: \"2023-09-03T09:54:42.381Z\",\n    owner: {\n      id: \"20\",\n      username: \"socketioexpert\",\n      fullName: \"Socket.IO Expert\",\n      avatar:\n        \"https://images.pexels.com/photos/18264716/pexels-photo-18264716/free-photo-of-man-people-laptop-internet.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    },\n    likeCount: 2991,\n    dislikeCount: 155,\n  },\n  {\n    id: \"21\",\n    videoFile: \"\",\n    thumbnail:\n      \"https://images.pexels.com/photos/1144251/pexels-photo-1144251.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    title: \"GraphQL: Building APIs with Query Language\",\n    description:\n      \"Learn how to build efficient APIs using GraphQL and leverage the power of query language for data retrieval.\",\n    duration: \"29:48\",\n    views: \"26.7k\",\n    isPublished: false,\n    time: \"20 hours ago\",\n    createdAt: \"2023-09-02T09:54:42.381Z\",\n    owner: {\n      id: \"21\",\n      username: \"graphqlpro\",\n      fullName: \"GraphQL Pro\",\n      avatar:\n        \"https://images.pexels.com/photos/18264716/pexels-photo-18264716/free-photo-of-man-people-laptop-internet.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    },\n    likeCount: 1095,\n    dislikeCount: 359,\n  },\n  {\n    id: \"22\",\n    videoFile: \"\",\n    thumbnail:\n      \"https://images.pexels.com/photos/1115890/pexels-photo-1115890.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    title: \"Full-Stack Development with MERN\",\n    description:\n      \"Master full-stack development with the MERN (MongoDB, Express, React, Node.js) stack.\",\n    duration: \"33:15\",\n    views: \"27.8k\",\n    isPublished: false,\n    time: \"21 hours ago\",\n    createdAt: \"2023-09-01T09:54:42.381Z\",\n    owner: {\n      id: \"22\",\n      username: \"mernstack\",\n      fullName: \"MERN Stack\",\n      avatar:\n        \"https://images.pexels.com/photos/1115822/pexels-photo-1115822.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    },\n    likeCount: 2375,\n    dislikeCount: 152,\n  },\n  {\n    id: \"23\",\n    videoFile: \"\",\n    thumbnail:\n      \"https://images.pexels.com/photos/1115824/pexels-photo-1115824.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    title: \"Advanced CSS: Animations and Transitions\",\n    description:\n      \"Learn how to create captivating animations and transitions using CSS for dynamic web experiences.\",\n    duration: \"31:55\",\n    views: \"28.9k\",\n    isPublished: true,\n    time: \"22 hours ago\",\n    createdAt: \"2023-08-31T09:54:42.381Z\",\n    owner: {\n      id: \"23\",\n      username: \"cssanimations\",\n      fullName: \"CSS Animations\",\n      avatar:\n        \"https://images.pexels.com/photos/18264716/pexels-photo-18264716/free-photo-of-man-people-laptop-internet.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    },\n    likeCount: 904,\n    dislikeCount: 324,\n  },\n  {\n    id: \"24\",\n    videoFile: \"\",\n    thumbnail:\n      \"https://images.pexels.com/photos/1115821/pexels-photo-1115821.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    title: \"Machine Learning for Image Recognition\",\n    description:\n      \"Dive into the world of image recognition using machine learning models for object detection.\",\n    duration: \"36:40\",\n    views: \"29M\",\n    isPublished: false,\n    time: \"23 hours ago\",\n    createdAt: \"2023-08-30T09:54:42.381Z\",\n    owner: {\n      id: \"24\",\n      username: \"mlimage\",\n      fullName: \"ML Image\",\n      avatar:\n        \"https://images.pexels.com/photos/18264716/pexels-photo-18264716/free-photo-of-man-people-laptop-internet.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    },\n    likeCount: 912,\n    dislikeCount: 97,\n  },\n  {\n    id: \"25\",\n    videoFile: \"\",\n    thumbnail:\n      \"https://images.pexels.com/photos/1115808/pexels-photo-1115808.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    title: \"Advanced React Patterns\",\n    description:\n      \"Explore advanced patterns and techniques for building scalable and maintainable React applications.\",\n    duration: \"30:25\",\n    views: \"30.1k\",\n    isPublished: true,\n    time: \"1 day ago\",\n    createdAt: \"2023-08-29T09:54:42.381Z\",\n    owner: {\n      id: \"25\",\n      username: \"reactpatterns\",\n      fullName: \"React Patterns\",\n      avatar:\n        \"https://images.pexels.com/photos/18264716/pexels-photo-18264716/free-photo-of-man-people-laptop-internet.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    },\n    likeCount: 1391,\n    dislikeCount: 319,\n  },\n];\n\nexport const videoDetails = {\n  id: \"1\",\n  videoFile:\n    \"https://res.cloudinary.com/dfw5nnic5/video/upload/v1695117968/Sample_1280x720_mp4_b4db0s.mp4\",\n  videoType: \"video/mp4\",\n  thumbnail:\n    \"https://images.pexels.com/photos/1115808/pexels-photo-1115808.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n  title: \"Advanced React Patterns\",\n  description:\n    '🚀 Dive into the world of React with our latest tutorial series: \"Advanced React Patterns\"! 🛠️ Whether you\\'re a seasoned developer or just starting out, this series is designed to elevate your React skills to the next level.',\n  duration: \"30:25\",\n  views: \"30,164\",\n  likeCount: 3050,\n  dislikeCount: 20,\n  commentCount: 573,\n  isPublished: true,\n  createdAt: \"18 hours ago\",\n  updatedAt: new Date(),\n  liked: false,\n  disliked: false,\n  owner: {\n    id: \"25\",\n    username: \"reactpatterns\",\n    fullName: \"React Patterns\",\n    avatar:\n      \"https://images.pexels.com/photos/18264716/pexels-photo-18264716/free-photo-of-man-people-laptop-internet.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n    subscribers: \"757K\",\n  },\n  comments: [\n    {\n      id: \"1\",\n      video: \"1\",\n      content:\n        \"This series is exactly what I've been looking for! Excited to dive into these advanced React patterns. Thanks for putting this together!\",\n      createdAt: \"17 hour ago\",\n      owner: {\n        id: \"25\",\n        username: \"sarahjv\",\n        fullName: \"Sarah Johnson\",\n        avatar:\n          \"https://images.pexels.com/photos/18148932/pexels-photo-18148932/free-photo-of-woman-reading-book-on-a-bench.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n      },\n    },\n    {\n      id: \"2\",\n      video: \"1\",\n      content:\n        \"Render props have always been a bit tricky for me. Can't wait to see how this series breaks it down. Thanks for sharing!\",\n      createdAt: \"5 minutes ago\",\n      owner: {\n        id: \"25\",\n        username: \"mikerod\",\n        fullName: \"Michael Rodriguez\",\n        avatar:\n          \"https://images.pexels.com/photos/18107025/pexels-photo-18107025/free-photo-of-man-reading-newspaper.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n      },\n    },\n    {\n      id: \"3\",\n      video: \"1\",\n      content:\n        \"Higher-order components have been a mystery to me for far too long. Looking forward to demystifying them with this series. Thanks!\",\n      createdAt: \"1 hour ago\",\n      owner: {\n        id: \"25\",\n        username: \"emilyt\",\n        fullName: \"Emily Turner\",\n        avatar:\n          \"https://images.pexels.com/photos/18096595/pexels-photo-18096595/free-photo-of-music-on-street.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n      },\n    },\n    {\n      id: \"4\",\n      video: \"1\",\n      content:\n        \"Compound components are a game-changer for UI development. Can't wait to learn more about them. Great work on this series!\",\n      createdAt: \"3 hour ago\",\n      owner: {\n        id: \"25\",\n        username: \"davidc\",\n        fullName: \"David Chen\",\n        avatar:\n          \"https://images.pexels.com/photos/18094275/pexels-photo-18094275.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n      },\n    },\n    {\n      id: \"5\",\n      video: \"1\",\n      content:\n        \"Controlled vs. uncontrolled components - finally! This topic has always confused me. Thanks for breaking it down!\",\n      createdAt: \"12 hour ago\",\n      owner: {\n        id: \"25\",\n        username: \"alex_p\",\n        fullName: \"Alex Parker\",\n        avatar:\n          \"https://images.pexels.com/photos/13847596/pexels-photo-13847596.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n      },\n    },\n    {\n      id: \"6\",\n      video: \"1\",\n      content:\n        \"This series is a goldmine for React developers! Compound components are something I've been eager to master. Thanks for this!\",\n      createdAt: \"5 hour ago\",\n      owner: {\n        id: \"25\",\n        username: \"jessicalee\",\n        fullName: \"Jessica Lee\",\n        avatar:\n          \"https://images.pexels.com/photos/7775637/pexels-photo-7775637.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n      },\n    },\n    {\n      id: \"7\",\n      video: \"1\",\n      content:\n        \"This is exactly what I needed to take my React skills to the next level. Looking forward to diving into the render props section!\",\n      createdAt: \"Just now\",\n      owner: {\n        id: \"25\",\n        username: \"ryanjax\",\n        fullName: \"Ryan Jackson\",\n        avatar:\n          \"https://images.pexels.com/photos/3532545/pexels-photo-3532545.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n      },\n    },\n    {\n      id: \"8\",\n      video: \"1\",\n      content:\n        \"This series looks amazing! I'm especially excited to learn more about controlled vs. uncontrolled components. Thanks for sharing!\",\n      createdAt: \"1 minutes ago\",\n      owner: {\n        id: \"25\",\n        username: \"lauraw\",\n        fullName: \"Laura Williams\",\n        avatar:\n          \"https://images.pexels.com/photos/3532552/pexels-photo-3532552.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n      },\n    },\n  ],\n};\n\nexport const playlistList = [\n  {\n    id: \"1\",\n    videos: videos,\n    name: \"React Mastery\",\n    views: \"100K\",\n    description:\n      \"Master the art of building dynamic user interfaces with React.\",\n    createdAt: \"2 hours ago\",\n    owner: {\n      id: \"25\",\n      username: \"reactpatterns\",\n      fullName: \"React Patterns\",\n      avatar:\n        \"https://images.pexels.com/photos/18264716/pexels-photo-18264716/free-photo-of-man-people-laptop-internet.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n      subscribers: \"757K\",\n    },\n  },\n  {\n    id: \"2\",\n    videos: [videos[3], videos[4], videos[5]],\n    name: \"JavaScript Fundamentals\",\n    views: \"120K\",\n    description:\n      \"Learn the core concepts and fundamentals of JavaScript programming language.\",\n    createdAt: \"3 hours ago\",\n    owner: {\n      id: \"25\",\n      username: \"reactpatterns\",\n      fullName: \"React Patterns\",\n      avatar:\n        \"https://images.pexels.com/photos/18264716/pexels-photo-18264716/free-photo-of-man-people-laptop-internet.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n      subscribers: \"757K\",\n    },\n  },\n  {\n    id: \"3\",\n    videos: [videos[6], videos[7], videos[8]],\n    name: \"TypeScript Essentials\",\n    views: \"90K\",\n    description:\n      \"Dive into TypeScript for enhanced type safety and scalable JavaScript applications.\",\n    createdAt: \"4 hours ago\",\n    owner: {\n      id: \"25\",\n      username: \"reactpatterns\",\n      fullName: \"React Patterns\",\n      avatar:\n        \"https://images.pexels.com/photos/18264716/pexels-photo-18264716/free-photo-of-man-people-laptop-internet.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n      subscribers: \"757K\",\n    },\n  },\n  {\n    id: \"4\",\n    videos: [videos[9], videos[10], videos[11]],\n    name: \"React State Management\",\n    views: \"80K\",\n    description:\n      \"Explore various state management techniques in React applications.\",\n    createdAt: \"5 hours ago\",\n    owner: {\n      id: \"25\",\n      username: \"reactpatterns\",\n      fullName: \"React Patterns\",\n      avatar:\n        \"https://images.pexels.com/photos/18264716/pexels-photo-18264716/free-photo-of-man-people-laptop-internet.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n      subscribers: \"757K\",\n    },\n  },\n  {\n    id: \"5\",\n    videos: [videos[12], videos[13], videos[14]],\n    name: \"Advanced JavaScript Techniques\",\n    views: \"110K\",\n    description:\n      \"Delve into advanced JavaScript concepts and techniques for professional-level programming.\",\n    createdAt: \"6 hours ago\",\n    owner: {\n      id: \"25\",\n      username: \"reactpatterns\",\n      fullName: \"React Patterns\",\n      avatar:\n        \"https://images.pexels.com/photos/18264716/pexels-photo-18264716/free-photo-of-man-people-laptop-internet.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n      subscribers: \"757K\",\n    },\n  },\n];\n\nexport const tweets = [\n  {\n    id: \"1\",\n    likeCount: 425,\n    dislikeCount: 87,\n    liked: true,\n    disliked: false,\n    content:\n      \"Exploring the latest features in JavaScript ES11! The language keeps evolving. 💡 #JavaScript #ES11\",\n    createdAt: \"5 hours ago\",\n    owner: {\n      id: \"25\",\n      username: \"reactpatterns\",\n      fullName: \"React Patterns\",\n      avatar:\n        \"https://images.pexels.com/photos/1115816/pexels-photo-1115816.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n      subscribers: \"757K\",\n    },\n  },\n  {\n    id: \"2\",\n    likeCount: 425,\n    dislikeCount: 87,\n    liked: false,\n    disliked: false,\n    content:\n      \"Embracing the benefits of TypeScript for stronger, more reliable code. 🚀 #TypeScript #Programming\",\n    createdAt: \"6 hours ago\",\n    owner: {\n      id: \"25\",\n      username: \"reactpatterns\",\n      fullName: \"React Patterns\",\n      avatar:\n        \"https://images.pexels.com/photos/1115816/pexels-photo-1115816.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n      subscribers: \"757K\",\n    },\n  },\n  {\n    id: \"3\",\n    likeCount: 425,\n    dislikeCount: 87,\n    liked: false,\n    disliked: false,\n    content:\n      \"Styling made easy with Tailwind CSS! Rapidly build beautiful, responsive interfaces. 🎨 #TailwindCSS #WebDev\",\n    createdAt: \"7 hours ago\",\n    owner: {\n      id: \"25\",\n      username: \"reactpatterns\",\n      fullName: \"React Patterns\",\n      avatar:\n        \"https://images.pexels.com/photos/1115816/pexels-photo-1115816.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n      subscribers: \"757K\",\n    },\n  },\n  {\n    id: \"4\",\n    likeCount: 425,\n    dislikeCount: 87,\n    liked: true,\n    disliked: false,\n    content:\n      \"Building dynamic user interfaces with React! The go-to library for modern web development. 🚀 #React #WebDev\",\n    createdAt: \"8 hours ago\",\n    owner: {\n      id: \"25\",\n      username: \"reactpatterns\",\n      fullName: \"React Patterns\",\n      avatar:\n        \"https://images.pexels.com/photos/1115816/pexels-photo-1115816.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n      subscribers: \"757K\",\n    },\n  },\n  {\n    id: \"5\",\n    likeCount: 425,\n    dislikeCount: 87,\n    liked: false,\n    disliked: true,\n    content:\n      \"Next.js makes server-side rendering a breeze! Boost your React app's performance with ease. 🚀 #Nextjs #React\",\n    createdAt: \"9 hours ago\",\n    owner: {\n      id: \"25\",\n      username: \"reactpatterns\",\n      fullName: \"React Patterns\",\n      avatar:\n        \"https://images.pexels.com/photos/1115816/pexels-photo-1115816.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n      subscribers: \"757K\",\n    },\n  },\n  {\n    id: \"6\",\n    likeCount: 425,\n    dislikeCount: 87,\n    liked: true,\n    disliked: false,\n    content:\n      \"Dive into advanced JavaScript concepts like closures and prototypes. Level up your coding skills! 🔍 #AdvancedJS #CodingTips\",\n    createdAt: \"10 hours ago\",\n    owner: {\n      id: \"25\",\n      username: \"reactpatterns\",\n      fullName: \"React Patterns\",\n      avatar:\n        \"https://images.pexels.com/photos/1115816/pexels-photo-1115816.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n      subscribers: \"757K\",\n    },\n  },\n  {\n    id: \"7\",\n    likeCount: 425,\n    dislikeCount: 87,\n    liked: true,\n    disliked: false,\n    content:\n      \"Mastering TypeScript: From basics to advanced concepts. Boost your development workflow with strong typing! 🚀 #TypeScript #Development\",\n    createdAt: \"11 hours ago\",\n    owner: {\n      id: \"26\",\n      username: \"tscripter\",\n      fullName: \"TS Scripter\",\n      avatar:\n        \"https://images.pexels.com/photos/1115816/pexels-photo-1115816.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n      subscribers: \"420K\",\n    },\n  },\n  {\n    id: \"8\",\n    likeCount: 425,\n    dislikeCount: 87,\n    liked: true,\n    disliked: false,\n    content:\n      \"Simplify your CSS workflow with Tailwind CSS. Effortless styling for modern web development! 🎨 #TailwindCSS #WebDev\",\n    createdAt: \"12 hours ago\",\n    owner: {\n      id: \"27\",\n      username: \"tailwiz\",\n      fullName: \"Tailwind Wizard\",\n      avatar:\n        \"https://images.pexels.com/photos/1115816/pexels-photo-1115816.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n      subscribers: \"600K\",\n    },\n  },\n  {\n    id: \"9\",\n    likeCount: 425,\n    dislikeCount: 87,\n    liked: true,\n    disliked: false,\n    content:\n      \"Building dynamic UIs with React - A comprehensive guide for developers. Get started with React today! 🚀 #React #WebDevelopment\",\n    createdAt: \"13 hours ago\",\n    owner: {\n      id: \"25\",\n      username: \"reactpatterns\",\n      fullName: \"React Patterns\",\n      avatar:\n        \"https://images.pexels.com/photos/1115816/pexels-photo-1115816.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n      subscribers: \"757K\",\n    },\n  },\n  {\n    id: \"10\",\n    likeCount: 425,\n    dislikeCount: 87,\n    liked: true,\n    disliked: false,\n    content:\n      \"Optimize server-side rendering with Next.js. Improve performance and SEO for your React applications! 🚀 #Nextjs #React\",\n    createdAt: \"14 hours ago\",\n    owner: {\n      id: \"25\",\n      username: \"reactpatterns\",\n      fullName: \"React Patterns\",\n      avatar:\n        \"https://images.pexels.com/photos/1115816/pexels-photo-1115816.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\n      subscribers: \"757K\",\n    },\n  },\n];\n\nexport const channels = videos.map((video, i) => ({\n  ...video.owner,\n  subscribers: 20 * (i + 1) + \"K\",\n  isSubscribed: i % 2 == 0,\n}));\n"
  },
  {
    "path": "src/components/templates/youtube/delete-video.jsx",
    "content": "\"use client\";\nimport {\n  EyeIcon,\n  HeartIcon,\n  MagnifyingGlassIcon,\n  PencilIcon,\n  PlusIcon,\n  TrashIcon,\n  UserIcon,\n  XCircleIcon,\n  XMarkIcon,\n} from \"@heroicons/react/24/outline\";\nimport React from \"react\";\nimport { navItems, logo, videos } from \"./data\";\nimport { classNames } from \"@/utils\";\n\nconst DeleteVideo = () => {\n  return (\n    <div className=\"h-screen overflow-y-auto bg-[#121212] text-white\">\n      <header className=\"sticky inset-x-0 top-0 z-50 w-full border-b border-white bg-[#121212] px-4\">\n        <nav className=\"mx-auto flex max-w-7xl items-center py-2\">\n          <div className=\"mr-4 w-12 shrink-0 sm:w-16\">{logo}</div>\n          <div className=\"relative mx-auto hidden w-full max-w-md overflow-hidden sm:block\">\n            <input\n              className=\"w-full border bg-transparent py-1 pl-8 pr-3 placeholder-white outline-none sm:py-2\"\n              placeholder=\"Search\"\n            />\n            <span className=\"absolute left-2.5 top-1/2 inline-block -translate-y-1/2\">\n              <MagnifyingGlassIcon className=\" h-4 w-4\" />\n            </span>\n          </div>\n          <button className=\"ml-auto sm:hidden\">\n            <MagnifyingGlassIcon className=\" h-6 w-6\" />\n          </button>\n          <button className=\"group peer ml-4 flex w-6 shrink-0 flex-wrap gap-y-1.5 sm:hidden\">\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-2/3 bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n          </button>\n          <div className=\"fixed inset-y-0 right-0 flex w-full max-w-xs shrink-0 translate-x-full flex-col border-l border-white bg-[#121212] duration-200 hover:translate-x-0 peer-focus:translate-x-0 sm:static sm:ml-4 sm:w-auto sm:translate-x-0 sm:border-none\">\n            <div className=\"relative flex w-full items-center justify-between border-b border-white px-4 py-2 sm:hidden\">\n              <span className=\"inline-block w-12\">{logo}</span>\n              <button className=\"inline-block w-8\">\n                <XCircleIcon />\n              </button>\n            </div>\n            <ul className=\"my-4 flex w-full flex-wrap gap-2 px-4 sm:hidden\">\n              {navItems\n                .filter((item) => !item.mobileView)\n                .map((item) => (\n                  <li key={item.name} className=\"w-full\">\n                    <button className=\"flex w-full items-center justify-start gap-x-4 border border-white px-4 py-1.5 text-left hover:bg-[#ae7aff] hover:text-black focus:border-[#ae7aff] focus:bg-[#ae7aff] focus:text-black\">\n                      <span className=\"inline-block w-full max-w-[20px] group-hover:mr-4 lg:mr-4\">\n                        {item.icon}\n                      </span>\n                      <span>{item.name}</span>\n                    </button>\n                  </li>\n                ))}\n            </ul>\n\n            <div className=\"mb-8 mt-auto px-4 sm:mb-0 sm:mt-0 sm:px-0\">\n              <button className=\"flex w-full gap-4 text-left sm:items-center\">\n                <img\n                  src=\"https://images.pexels.com/photos/1115816/pexels-photo-1115816.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\"\n                  alt=\"React-Patterns\"\n                  className=\"h-16 w-16 shrink-0 rounded-full sm:h-12 sm:w-12\"\n                />\n\n                <div className=\"w-full pt-2 sm:hidden\">\n                  <h6 className=\"font-semibold\">React Patterns</h6>\n                  <p className=\"text-sm text-gray-300\">@reactpatterns</p>\n                </div>\n              </button>\n            </div>\n          </div>\n        </nav>\n      </header>\n      <div className=\"relative flex min-h-[calc(100vh-66px)] sm:min-h-[calc(100vh-82px)]\">\n        <div className=\"mx-auto flex w-full max-w-7xl flex-col gap-y-6 px-4 py-8\">\n          <div className=\"flex flex-wrap justify-between gap-4\">\n            <div className=\"block\">\n              <h1 className=\"text-2xl font-bold\">\n                Welcome Back, React Patterns\n              </h1>\n              <p className=\"text-sm text-gray-300\">\n                Seamless Video Management, Elevated Results.\n              </p>\n            </div>\n            <div className=\"block\">\n              <button className=\"inline-flex items-center gap-x-2 bg-[#ae7aff] px-3 py-2 font-semibold text-black\">\n                <PlusIcon className=\"h-5 w-5\" strokeWidth={2} /> Upload video\n              </button>\n            </div>\n          </div>\n          <div className=\"grid grid-cols-[repeat(auto-fit,_minmax(300px,_1fr))] gap-4\">\n            {[\n              { Icon: EyeIcon, title: \"Total views\", count: \"221,234\" },\n              { Icon: UserIcon, title: \"Total subscribers\", count: \"4,053\" },\n              { Icon: HeartIcon, title: \"Total likes\", count: \"63,021\" },\n            ].map(({ title, Icon, count }) => (\n              <div key={title} className=\"border p-4\">\n                <div className=\"mb-4 block\">\n                  <span className=\"inline-block h-7 w-7 rounded-full bg-[#E4D3FF] p-1 text-[#ae7aff]\">\n                    <Icon />\n                  </span>\n                </div>\n                <h6 className=\"text-gray-300\">{title}</h6>\n                <p className=\"text-3xl font-semibold\">{count}</p>\n              </div>\n            ))}\n          </div>\n          <div className=\"w-full overflow-auto\">\n            <table className=\"w-full min-w-[1200px] border-collapse border text-white\">\n              <thead>\n                <tr>\n                  <th className=\"border-collapse border-b p-4\">Status</th>\n                  <th className=\"border-collapse border-b p-4\">Status</th>\n                  <th className=\"border-collapse border-b p-4\">Uploaded</th>\n                  <th className=\"border-collapse border-b p-4\">Rating</th>\n                  <th className=\"border-collapse border-b p-4\">\n                    Date uploaded\n                  </th>\n                  <th className=\"border-collapse border-b p-4\"></th>\n                </tr>\n              </thead>\n              <tbody>\n                {videos.map((video) => (\n                  <tr key={video.id} className=\"group border\">\n                    <td className=\"border-collapse border-b border-gray-600 px-4 py-3 group-last:border-none\">\n                      <div className=\"flex justify-center\">\n                        <label\n                          htmlFor={\"vid-pub-\" + video.id}\n                          className=\"relative inline-block w-12 cursor-pointer overflow-hidden\"\n                        >\n                          <input\n                            type=\"checkbox\"\n                            id={\"vid-pub-\" + video.id}\n                            className=\"peer sr-only\"\n                            defaultChecked={video.isPublished}\n                          />\n                          <span className=\"inline-block h-6 w-full rounded-2xl bg-gray-200 duration-200 after:absolute after:bottom-1 after:left-1 after:top-1 after:h-4 after:w-4 after:rounded-full after:bg-black after:duration-200 peer-checked:bg-[#ae7aff] peer-checked:after:left-7\"></span>\n                        </label>\n                      </div>\n                    </td>\n                    <td className=\"border-collapse border-b border-gray-600 px-4 py-3 group-last:border-none\">\n                      <div className=\"flex justify-center\">\n                        <span\n                          className={classNames(\n                            \"inline-block rounded-2xl border px-1.5 py-0.5\",\n                            video.isPublished\n                              ? \"border-green-600 text-green-600\"\n                              : \"border-orange-600 text-orange-600\",\n                          )}\n                        >\n                          {video.isPublished ? \"Published\" : \"Unpublished\"}\n                        </span>\n                      </div>\n                    </td>\n                    <td className=\"border-collapse border-b border-gray-600 px-4 py-3 group-last:border-none\">\n                      <div className=\"flex items-center gap-4\">\n                        <img\n                          className=\"h-10 w-10 rounded-full\"\n                          src={video.owner.avatar}\n                          alt={video.owner.fullName}\n                        />\n                        <h3 className=\"font-semibold\">{video.title}</h3>\n                      </div>\n                    </td>\n                    <td className=\"border-collapse border-b border-gray-600 px-4 py-3 group-last:border-none\">\n                      <div className=\"flex justify-center gap-4\">\n                        <span className=\"inline-block rounded-xl bg-green-200 px-1.5 py-0.5 text-green-700\">\n                          {video.likeCount} likes\n                        </span>\n                        <span className=\"inline-block rounded-xl bg-red-200 px-1.5 py-0.5 text-red-700\">\n                          {video.dislikeCount} dislikes\n                        </span>\n                      </div>\n                    </td>\n                    <td className=\"border-collapse border-b border-gray-600 px-4 py-3 group-last:border-none\">\n                      {new Date(video.createdAt).toLocaleDateString()}\n                    </td>\n                    <td className=\"border-collapse border-b border-gray-600 px-4 py-3 group-last:border-none\">\n                      <div className=\"flex gap-4\">\n                        <button className=\"h-5 w-5 hover:text-[#ae7aff]\">\n                          <TrashIcon />\n                        </button>\n                        <button className=\"h-5 w-5 hover:text-[#ae7aff]\">\n                          <PencilIcon />\n                        </button>\n                      </div>\n                    </td>\n                  </tr>\n                ))}\n              </tbody>\n            </table>\n          </div>\n        </div>\n        {/* Modal Popup */}\n        <div className=\"fixed inset-0 top-[calc(66px)] z-10 flex flex-col bg-black/50 px-4 pb-[86px] pt-4 sm:top-[calc(82px)] sm:px-14 sm:py-8\">\n          <div className=\"mx-auto w-full max-w-lg overflow-auto rounded-lg border border-gray-700 bg-[#121212] p-4\">\n            <div className=\"mb-6 flex items-start gap-4\">\n              <span className=\"inline-block h-8 w-8 shrink-0 rounded-full bg-red-200 p-1 text-red-700\">\n                <TrashIcon />\n              </span>\n              <h2 className=\"text-xl font-semibold\">\n                Delete Video\n                <span className=\"block text-sm text-gray-300\">\n                  Are you sure you want to delete this video? Once its deleted,\n                  you will not be able to recover it.\n                </span>\n              </h2>\n              <button className=\"ml-auto h-6 w-6 shrink-0\">\n                <XMarkIcon />\n              </button>\n            </div>\n\n            <div className=\"grid grid-cols-2 gap-4\">\n              <button className=\"col-span-2 border px-4 py-3 sm:col-span-1\">\n                Cancel\n              </button>\n              <button className=\"col-span-2 bg-red-700 px-4 py-3 disabled:bg-[#E4D3FF] sm:col-span-1\">\n                Delete\n              </button>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  );\n};\n\nexport default DeleteVideo;\n"
  },
  {
    "path": "src/components/templates/youtube/edit-channel-info.jsx",
    "content": "\"use client\";\nimport { classNames } from \"@/utils\";\nimport React from \"react\";\nimport {\n  ClockIcon,\n  ListBulletIcon,\n  MagnifyingGlassIcon,\n  XCircleIcon,\n} from \"@heroicons/react/24/outline\";\nimport { bottomTotalItems, navItems, logo } from \"./data\";\n\nconst EditChannelInfo = () => {\n  return (\n    <div className=\"h-screen overflow-y-auto bg-[#121212] text-white\">\n      <header className=\"sticky inset-x-0 top-0 z-50 w-full border-b border-white bg-[#121212] px-4\">\n        <nav className=\"mx-auto flex max-w-7xl items-center py-2\">\n          <div className=\"mr-4 w-12 shrink-0 sm:w-16\">{logo}</div>\n          <div className=\"relative mx-auto hidden w-full max-w-md overflow-hidden sm:block\">\n            <input\n              className=\"w-full border bg-transparent py-1 pl-8 pr-3 placeholder-white outline-none sm:py-2\"\n              placeholder=\"Search\"\n            />\n            <span className=\"absolute left-2.5 top-1/2 inline-block -translate-y-1/2\">\n              <MagnifyingGlassIcon className=\" h-4 w-4\" />\n            </span>\n          </div>\n          <button className=\"ml-auto sm:hidden\">\n            <MagnifyingGlassIcon className=\" h-6 w-6\" />\n          </button>\n          <button className=\"group peer ml-4 flex w-6 shrink-0 flex-wrap gap-y-1.5 sm:hidden\">\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-2/3 bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n          </button>\n          <div className=\"fixed inset-y-0 right-0 flex w-full max-w-xs shrink-0 translate-x-full flex-col border-l border-white bg-[#121212] duration-200 hover:translate-x-0 peer-focus:translate-x-0 sm:static sm:ml-4 sm:w-auto sm:translate-x-0 sm:border-none\">\n            <div className=\"relative flex w-full items-center justify-between border-b border-white px-4 py-2 sm:hidden\">\n              <span className=\"inline-block w-12\">{logo}</span>\n              <button className=\"inline-block w-8\">\n                <XCircleIcon />\n              </button>\n            </div>\n            <ul className=\"my-4 flex w-full flex-wrap gap-2 px-4 sm:hidden\">\n              {navItems\n                .filter((item) => !item.mobileView)\n                .map((item) => (\n                  <li key={item.name} className=\"w-full\">\n                    <button className=\"flex w-full items-center justify-start gap-x-4 border border-white px-4 py-1.5 text-left hover:bg-[#ae7aff] hover:text-black focus:border-[#ae7aff] focus:bg-[#ae7aff] focus:text-black\">\n                      <span className=\"inline-block w-full max-w-[20px] group-hover:mr-4 lg:mr-4\">\n                        {item.icon}\n                      </span>\n                      <span>{item.name}</span>\n                    </button>\n                  </li>\n                ))}\n            </ul>\n\n            <div className=\"mb-8 mt-auto px-4 sm:mb-0 sm:mt-0 sm:px-0\">\n              <button className=\"flex w-full gap-4 text-left sm:items-center\">\n                <img\n                  src=\"https://images.pexels.com/photos/1115816/pexels-photo-1115816.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\"\n                  alt=\"React-Patterns\"\n                  className=\"h-16 w-16 shrink-0 rounded-full sm:h-12 sm:w-12\"\n                />\n\n                <div className=\"w-full pt-2 sm:hidden\">\n                  <h6 className=\"font-semibold\">React Patterns</h6>\n                  <p className=\"text-sm text-gray-300\">@reactpatterns</p>\n                </div>\n              </button>\n            </div>\n          </div>\n        </nav>\n      </header>\n      <div className=\"flex min-h-[calc(100vh-66px)] sm:min-h-[calc(100vh-82px)]\">\n        <aside className=\"group fixed inset-x-0 bottom-0 z-40 w-full shrink-0 border-t border-white bg-[#121212] px-2 py-2 sm:absolute sm:inset-y-0 sm:max-w-[70px] sm:border-r sm:border-t-0 sm:py-6 sm:hover:max-w-[250px] lg:sticky lg:max-w-[250px]\">\n          <ul className=\"flex justify-around gap-y-2 sm:sticky sm:top-[106px] sm:min-h-[calc(100vh-130px)] sm:flex-col\">\n            {navItems.map((item, i, arr) => (\n              <li\n                key={item.name}\n                className={classNames(\n                  item.mobileView ? \"\" : \"hidden sm:block\",\n                  arr.length - i === bottomTotalItems ? \"mt-auto\" : \"\",\n                )}\n              >\n                <button className=\"flex flex-col items-center justify-center border-white py-1 focus:text-[#ae7aff] sm:w-full sm:flex-row sm:border sm:p-1.5 sm:hover:bg-[#ae7aff] sm:hover:text-black sm:focus:border-[#ae7aff] sm:focus:bg-[#ae7aff] sm:focus:text-black sm:group-hover:justify-start sm:group-hover:px-4 lg:justify-start lg:px-4\">\n                  <span className=\"inline-block w-5 shrink-0 sm:group-hover:mr-4 lg:mr-4\">\n                    {item.icon}\n                  </span>\n                  <span className=\"block sm:hidden sm:group-hover:inline lg:inline\">\n                    {item.name}\n                  </span>\n                </button>\n              </li>\n            ))}\n          </ul>\n        </aside>\n        <section className=\"w-full pb-[70px] sm:ml-[70px] sm:pb-0 lg:ml-0\">\n          <div className=\"relative min-h-[150px] w-full pt-[16.28%]\">\n            <div className=\"absolute inset-0 overflow-hidden\">\n              <img\n                src=\"https://images.pexels.com/photos/1092424/pexels-photo-1092424.jpeg?auto=compress\"\n                alt=\"cover-photo\"\n              />\n            </div>\n          </div>\n          <div className=\"px-4 pb-4\">\n            <div className=\"flex flex-wrap gap-4 pb-4 pt-6\">\n              <div className=\"relative -mt-12 inline-block h-28 w-28 shrink-0 overflow-hidden rounded-full border-2\">\n                <img\n                  src=\"https://images.pexels.com/photos/1115816/pexels-photo-1115816.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\"\n                  alt=\"Channel\"\n                  className=\"h-full w-full\"\n                />\n              </div>\n\n              <div className=\"mr-auto inline-block\">\n                <h1 className=\"font-bolg text-xl\">React Patterns</h1>\n                <p className=\"text-sm text-gray-400\">@reactpatterns</p>\n              </div>\n\n              <div className=\"inline-block\">\n                <button className=\"group/btn mr-1 flex w-full items-center gap-x-2 bg-[#ae7aff] px-3 py-2 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e] sm:w-auto\">\n                  View channel\n                </button>\n              </div>\n            </div>\n\n            <ul className=\"no-scrollbar sticky top-[66px] z-[2] flex flex-row gap-x-2 overflow-auto border-b-2 border-gray-400 bg-[#121212] py-2 sm:top-[82px]\">\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Personal Information\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-[#ae7aff] bg-white px-3 py-1.5 text-[#ae7aff]\">\n                  Channel Information\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Change Password\n                </button>\n              </li>\n            </ul>\n\n            <div className=\"flex flex-wrap justify-center gap-y-4 py-4\">\n              <div className=\"w-full sm:w-1/2 lg:w-1/3\">\n                <h5 className=\"font-semibold\">Channel Info</h5>\n                <p className=\"text-gray-300\">\n                  Update your Channel details here.\n                </p>\n              </div>\n              <div className=\"w-full sm:w-1/2 lg:w-2/3\">\n                <div className=\"rounded-lg border\">\n                  <div className=\"flex flex-wrap gap-y-4 p-4\">\n                    <div className=\"w-full\">\n                      <label className=\"mb-1 inline-block\" htmlFor=\"username\">\n                        Username\n                      </label>\n                      <div className=\"flex rounded-lg border\">\n                        <p className=\"flex shrink-0 items-center border-r border-white px-3 align-middle\">\n                          vidplay.com/\n                        </p>\n                        <input\n                          type=\"text\"\n                          className=\"w-full bg-transparent px-2 py-1.5\"\n                          id=\"username\"\n                          placeholder=\"@username\"\n                          defaultValue=\"reactpatterns\"\n                        />\n                      </div>\n                    </div>\n                    <div className=\"w-full\">\n                      <label className=\"mb-1 inline-block\" htmlFor=\"desc\">\n                        Description\n                      </label>\n                      <textarea\n                        className=\"w-full rounded-lg border bg-transparent px-2 py-1.5\"\n                        rows={4}\n                        id=\"desc\"\n                        placeholder=\"Channel Description\"\n                        defaultValue=\"I'm a Product Designer based in Melbourne, Australia. I specialise in UX/UI design, brand strategy, and Webflow development.\"\n                      ></textarea>\n                      <p className=\"mt-0.5 text-sm text-gray-300\">\n                        275 characters left\n                      </p>\n                    </div>\n                    <div className=\"flex w-full items-center gap-3\">\n                      <div className=\"w-full max-w-xs rounded-lg border\">\n                        <select\n                          className=\"w-full border-r-8 border-transparent bg-transparent py-1.5 pl-2\"\n                          defaultValue=\"regular\"\n                        >\n                          <option value=\"light\">Light</option>\n                          <option value=\"regular\">Regular</option>\n                          <option value=\"semi-bold\">Semi bold</option>\n                          <option value=\"bold\">Bold</option>\n                          <option value=\"bolder\">Bolder</option>\n                        </select>\n                      </div>\n                      <button className=\"h-6 w-6 hover:text-[#ae7aff] focus:text-[#ae7aff]\">\n                        <svg\n                          width=\"11\"\n                          height=\"14\"\n                          viewBox=\"0 0 11 14\"\n                          fill=\"none\"\n                          xmlns=\"http://www.w3.org/2000/svg\"\n                        >\n                          <path\n                            d=\"M8.6 6.79C9.57 6.12 10.25 5.02 10.25 4C10.25 1.74 8.5 0 6.25 0H0V14H7.04C9.13 14 10.75 12.3 10.75 10.21C10.75 8.69 9.89 7.39 8.6 6.79ZM3 2.5H6C6.83 2.5 7.5 3.17 7.5 4C7.5 4.83 6.83 5.5 6 5.5H3V2.5ZM6.5 11.5H3V8.5H6.5C7.33 8.5 8 9.17 8 10C8 10.83 7.33 11.5 6.5 11.5Z\"\n                            fill=\"currentColor\"\n                          />\n                        </svg>\n                      </button>\n                      <button className=\"h-6 w-6 hover:text-[#ae7aff] focus:text-[#ae7aff]\">\n                        <svg\n                          width=\"12\"\n                          height=\"14\"\n                          viewBox=\"0 0 12 14\"\n                          fill=\"none\"\n                          xmlns=\"http://www.w3.org/2000/svg\"\n                        >\n                          <path\n                            d=\"M4 0V3H6.21L2.79 11H0V14H8V11H5.79L9.21 3H12V0H4Z\"\n                            fill=\"currentColor\"\n                          />\n                        </svg>\n                      </button>\n                      <button className=\"h-6 w-6 hover:text-[#ae7aff] focus:text-[#ae7aff]\">\n                        <svg\n                          width=\"20\"\n                          height=\"10\"\n                          viewBox=\"0 0 20 10\"\n                          fill=\"none\"\n                          xmlns=\"http://www.w3.org/2000/svg\"\n                        >\n                          <path\n                            d=\"M1.9 5C1.9 3.29 3.29 1.9 5 1.9H9V0H5C2.24 0 0 2.24 0 5C0 7.76 2.24 10 5 10H9V8.1H5C3.29 8.1 1.9 6.71 1.9 5ZM6 6H14V4H6V6ZM15 0H11V1.9H15C16.71 1.9 18.1 3.29 18.1 5C18.1 6.71 16.71 8.1 15 8.1H11V10H15C17.76 10 20 7.76 20 5C20 2.24 17.76 0 15 0Z\"\n                            fill=\"currentColor\"\n                          />\n                        </svg>\n                      </button>\n                      <button className=\"h-6 w-6 hover:text-[#ae7aff] focus:text-[#ae7aff]\">\n                        <ListBulletIcon />\n                      </button>\n                      <button className=\"h-6 w-6 hover:text-[#ae7aff] focus:text-[#ae7aff]\">\n                        <svg\n                          width=\"19\"\n                          height=\"16\"\n                          viewBox=\"0 0 19 16\"\n                          fill=\"none\"\n                          xmlns=\"http://www.w3.org/2000/svg\"\n                        >\n                          <path\n                            d=\"M0 13H2V13.5H1V14.5H2V15H0V16H3V12H0V13ZM1 4H2V0H0V1H1V4ZM0 7H1.8L0 9.1V10H3V9H1.2L3 6.9V6H0V7ZM5 1V3H19V1H5ZM5 15H19V13H5V15ZM5 9H19V7H5V9Z\"\n                            fill=\"currentColor\"\n                          />\n                        </svg>\n                      </button>\n                    </div>\n                    <div className=\"w-full\">\n                      <label className=\"mb-1 inline-block\" htmlFor=\"timezone\">\n                        Timezone\n                      </label>\n                      <div className=\"relative w-full rounded-lg border\">\n                        <div className=\"absolute left-2 top-1/2 h-5 w-5 -translate-y-1/2 text-gray-300\">\n                          <ClockIcon />\n                        </div>\n                        <select\n                          id=\"timezone\"\n                          className=\"w-full border-r-8 border-transparent bg-transparent py-1.5 pl-8\"\n                          defaultValue=\"UTC+05:30\"\n                        >\n                          <option value=\"UTC-12:00\">\n                            (UTC-12:00) International Date Line West\n                          </option>\n                          <option value=\"UTC-11:00\">\n                            (UTC-11:00) Coordinated Universal Time-11\n                          </option>\n                          <option value=\"UTC-10:00\">(UTC-10:00) Hawaii</option>\n                          <option value=\"UTC-09:00\">(UTC-09:00) Alaska</option>\n                          <option value=\"UTC-08:00\">\n                            (UTC-08:00) Pacific Time (US & Canada)\n                          </option>\n                          <option value=\"UTC-07:00\">\n                            (UTC-07:00) Mountain Time (US & Canada)\n                          </option>\n                          <option value=\"UTC-06:00\">\n                            (UTC-06:00) Central Time (US & Canada)\n                          </option>\n                          <option value=\"UTC-05:00\">\n                            (UTC-05:00) Eastern Time (US & Canada)\n                          </option>\n                          <option value=\"UTC-04:00\">\n                            (UTC-04:00) Atlantic Time (Canada)\n                          </option>\n                          <option value=\"UTC-03:30\">\n                            (UTC-03:30) Newfoundland\n                          </option>\n                          <option value=\"UTC-03:00\">\n                            (UTC-03:00) Buenos Aires, Georgetown\n                          </option>\n                          <option value=\"UTC-02:00\">\n                            (UTC-02:00) Coordinated Universal Time-02\n                          </option>\n                          <option value=\"UTC-01:00\">(UTC-01:00) Azores</option>\n                          <option value=\"UTC+00:00\">\n                            (UTC+00:00) Coordinated Universal Time\n                          </option>\n                          <option value=\"UTC+01:00\">\n                            (UTC+01:00) Central European Time\n                          </option>\n                          <option value=\"UTC+02:00\">\n                            (UTC+02:00) Eastern European Time\n                          </option>\n                          <option value=\"UTC+03:00\">\n                            (UTC+03:00) Moscow, St. Petersburg\n                          </option>\n                          <option value=\"UTC+03:30\">(UTC+03:30) Tehran</option>\n                          <option value=\"UTC+04:00\">\n                            (UTC+04:00) Abu Dhabi, Muscat\n                          </option>\n                          <option value=\"UTC+04:30\">(UTC+04:30) Kabul</option>\n                          <option value=\"UTC+05:00\">\n                            (UTC+05:00) Tashkent\n                          </option>\n                          <option value=\"UTC+05:30\">\n                            (UTC+05:30) Chennai, Kolkata, Mumbai, New Delhi\n                          </option>\n                          <option value=\"UTC+05:45\">\n                            (UTC+05:45) Kathmandu\n                          </option>\n                          <option value=\"UTC+06:00\">\n                            (UTC+06:00) Almaty, Novosibirsk\n                          </option>\n                          <option value=\"UTC+06:30\">\n                            (UTC+06:30) Yangon (Rangoon)\n                          </option>\n                          <option value=\"UTC+07:00\">\n                            (UTC+07:00) Bangkok, Hanoi, Jakarta\n                          </option>\n                          <option value=\"UTC+08:00\">\n                            (UTC+08:00) Beijing, Chongqing, Hong Kong\n                          </option>\n                          <option value=\"UTC+08:45\">(UTC+08:45) Eucla</option>\n                          <option value=\"UTC+09:00\">\n                            (UTC+09:00) Osaka, Sapporo, Tokyo\n                          </option>\n                          <option value=\"UTC+09:30\">\n                            (UTC+09:30) Adelaide\n                          </option>\n                          <option value=\"UTC+09:45\">(UTC+09:45) Darwin</option>\n                          <option value=\"UTC+10:00\">\n                            (UTC+10:00) Brisbane\n                          </option>\n                          <option value=\"UTC+10:30\">\n                            (UTC+10:30) Lord Howe Island\n                          </option>\n                          <option value=\"UTC+11:00\">\n                            (UTC+11:00) Solomon Is., New Caledonia\n                          </option>\n                          <option value=\"UTC+11:30\">\n                            (UTC+11:30) Norfolk Island\n                          </option>\n                          <option value=\"UTC+12:00\">(UTC+12:00) Fiji</option>\n                          <option value=\"UTC+12:45\">\n                            (UTC+12:45) Chatham Islands\n                          </option>\n                          <option value=\"UTC+13:00\">\n                            (UTC+13:00) Nuku&apos;alofa\n                          </option>\n                          <option value=\"UTC+14:00\">\n                            (UTC+14:00) Kiritimati\n                          </option>\n                        </select>\n                      </div>\n                    </div>\n                  </div>\n                  <hr className=\"border border-gray-300\" />\n                  <div className=\"flex items-center justify-end gap-4 p-4\">\n                    <button className=\"inline-block rounded-lg border px-3 py-1.5 hover:bg-white/10\">\n                      Cancel\n                    </button>\n                    <button className=\"inline-block bg-[#ae7aff] px-3 py-1.5 text-black\">\n                      Save changes\n                    </button>\n                  </div>\n                </div>\n              </div>\n            </div>\n          </div>\n        </section>\n      </div>\n    </div>\n  );\n};\n\nexport default EditChannelInfo;\n"
  },
  {
    "path": "src/components/templates/youtube/edit-personal-info.jsx",
    "content": "\"use client\";\nimport { classNames } from \"@/utils\";\nimport React from \"react\";\nimport {\n  CloudArrowUpIcon,\n  EnvelopeIcon,\n  MagnifyingGlassIcon,\n  XCircleIcon,\n} from \"@heroicons/react/24/outline\";\nimport { bottomTotalItems, navItems, logo } from \"./data\";\n\nconst EditPersonalInfo = () => {\n  return (\n    <div className=\"h-screen overflow-y-auto bg-[#121212] text-white\">\n      <header className=\"sticky inset-x-0 top-0 z-50 w-full border-b border-white bg-[#121212] px-4\">\n        <nav className=\"mx-auto flex max-w-7xl items-center py-2\">\n          <div className=\"mr-4 w-12 shrink-0 sm:w-16\">{logo}</div>\n          <div className=\"relative mx-auto hidden w-full max-w-md overflow-hidden sm:block\">\n            <input\n              className=\"w-full border bg-transparent py-1 pl-8 pr-3 placeholder-white outline-none sm:py-2\"\n              placeholder=\"Search\"\n            />\n            <span className=\"absolute left-2.5 top-1/2 inline-block -translate-y-1/2\">\n              <MagnifyingGlassIcon className=\" h-4 w-4\" />\n            </span>\n          </div>\n          <button className=\"ml-auto sm:hidden\">\n            <MagnifyingGlassIcon className=\" h-6 w-6\" />\n          </button>\n          <button className=\"group peer ml-4 flex w-6 shrink-0 flex-wrap gap-y-1.5 sm:hidden\">\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-2/3 bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n          </button>\n          <div className=\"fixed inset-y-0 right-0 flex w-full max-w-xs shrink-0 translate-x-full flex-col border-l border-white bg-[#121212] duration-200 hover:translate-x-0 peer-focus:translate-x-0 sm:static sm:ml-4 sm:w-auto sm:translate-x-0 sm:border-none\">\n            <div className=\"relative flex w-full items-center justify-between border-b border-white px-4 py-2 sm:hidden\">\n              <span className=\"inline-block w-12\">{logo}</span>\n              <button className=\"inline-block w-8\">\n                <XCircleIcon />\n              </button>\n            </div>\n            <ul className=\"my-4 flex w-full flex-wrap gap-2 px-4 sm:hidden\">\n              {navItems\n                .filter((item) => !item.mobileView)\n                .map((item) => (\n                  <li key={item.name} className=\"w-full\">\n                    <button className=\"flex w-full items-center justify-start gap-x-4 border border-white px-4 py-1.5 text-left hover:bg-[#ae7aff] hover:text-black focus:border-[#ae7aff] focus:bg-[#ae7aff] focus:text-black\">\n                      <span className=\"inline-block w-full max-w-[20px] group-hover:mr-4 lg:mr-4\">\n                        {item.icon}\n                      </span>\n                      <span>{item.name}</span>\n                    </button>\n                  </li>\n                ))}\n            </ul>\n\n            <div className=\"mb-8 mt-auto px-4 sm:mb-0 sm:mt-0 sm:px-0\">\n              <button className=\"flex w-full gap-4 text-left sm:items-center\">\n                <img\n                  src=\"https://images.pexels.com/photos/1115816/pexels-photo-1115816.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\"\n                  alt=\"React-Patterns\"\n                  className=\"h-16 w-16 shrink-0 rounded-full sm:h-12 sm:w-12\"\n                />\n\n                <div className=\"w-full pt-2 sm:hidden\">\n                  <h6 className=\"font-semibold\">React Patterns</h6>\n                  <p className=\"text-sm text-gray-300\">@reactpatterns</p>\n                </div>\n              </button>\n            </div>\n          </div>\n        </nav>\n      </header>\n      <div className=\"flex min-h-[calc(100vh-66px)] sm:min-h-[calc(100vh-82px)]\">\n        <aside className=\"group fixed inset-x-0 bottom-0 z-40 w-full shrink-0 border-t border-white bg-[#121212] px-2 py-2 sm:absolute sm:inset-y-0 sm:max-w-[70px] sm:border-r sm:border-t-0 sm:py-6 sm:hover:max-w-[250px] lg:sticky lg:max-w-[250px]\">\n          <ul className=\"flex justify-around gap-y-2 sm:sticky sm:top-[106px] sm:min-h-[calc(100vh-130px)] sm:flex-col\">\n            {navItems.map((item, i, arr) => (\n              <li\n                key={item.name}\n                className={classNames(\n                  item.mobileView ? \"\" : \"hidden sm:block\",\n                  arr.length - i === bottomTotalItems ? \"mt-auto\" : \"\",\n                )}\n              >\n                <button className=\"flex flex-col items-center justify-center border-white py-1 focus:text-[#ae7aff] sm:w-full sm:flex-row sm:border sm:p-1.5 sm:hover:bg-[#ae7aff] sm:hover:text-black sm:focus:border-[#ae7aff] sm:focus:bg-[#ae7aff] sm:focus:text-black sm:group-hover:justify-start sm:group-hover:px-4 lg:justify-start lg:px-4\">\n                  <span className=\"inline-block w-5 shrink-0 sm:group-hover:mr-4 lg:mr-4\">\n                    {item.icon}\n                  </span>\n                  <span className=\"block sm:hidden sm:group-hover:inline lg:inline\">\n                    {item.name}\n                  </span>\n                </button>\n              </li>\n            ))}\n          </ul>\n        </aside>\n        <section className=\"w-full pb-[70px] sm:ml-[70px] sm:pb-0 lg:ml-0\">\n          <div className=\"relative min-h-[150px] w-full pt-[16.28%]\">\n            <div className=\"absolute inset-0 overflow-hidden\">\n              <img\n                src=\"https://images.pexels.com/photos/1092424/pexels-photo-1092424.jpeg?auto=compress\"\n                alt=\"cover-photo\"\n              />\n            </div>\n            <div className=\"absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2\">\n              <input type=\"file\" id=\"cover-image\" className=\"hidden\" />\n              <label\n                htmlFor=\"cover-image\"\n                className=\"inline-block h-10 w-10 cursor-pointer rounded-lg bg-white/60 p-1 text-[#ae7aff] hover:bg-white\"\n              >\n                <CloudArrowUpIcon />\n              </label>\n            </div>\n          </div>\n          <div className=\"px-4 pb-4\">\n            <div className=\"flex flex-wrap gap-4 pb-4 pt-6\">\n              <div className=\"relative -mt-12 inline-block h-28 w-28 shrink-0 overflow-hidden rounded-full border-2\">\n                <img\n                  src=\"https://images.pexels.com/photos/1115816/pexels-photo-1115816.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\"\n                  alt=\"Channel\"\n                  className=\"h-full w-full\"\n                />\n                <div className=\"absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2\">\n                  <input type=\"file\" id=\"profile-image\" className=\"hidden\" />\n                  <label\n                    htmlFor=\"profile-image\"\n                    className=\"inline-block h-8 w-8 cursor-pointer rounded-lg bg-white/60 p-1 text-[#ae7aff] hover:bg-white\"\n                  >\n                    <CloudArrowUpIcon />\n                  </label>\n                </div>\n              </div>\n\n              <div className=\"mr-auto inline-block\">\n                <h1 className=\"font-bolg text-xl\">React Patterns</h1>\n                <p className=\"text-sm text-gray-400\">@reactpatterns</p>\n              </div>\n\n              <div className=\"inline-block\">\n                <button className=\"group/btn mr-1 flex w-full items-center gap-x-2 bg-[#ae7aff] px-3 py-2 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e] sm:w-auto\">\n                  View channel\n                </button>\n              </div>\n            </div>\n\n            <ul className=\"no-scrollbar sticky top-[66px] z-[2] flex flex-row gap-x-2 overflow-auto border-b-2 border-gray-400 bg-[#121212] py-2 sm:top-[82px]\">\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-[#ae7aff] bg-white px-3 py-1.5 text-[#ae7aff]\">\n                  Personal Information\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Channel Information\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Change Password\n                </button>\n              </li>\n            </ul>\n\n            <div className=\"flex flex-wrap justify-center gap-y-4 py-4\">\n              <div className=\"w-full sm:w-1/2 lg:w-1/3\">\n                <h5 className=\"font-semibold\">Personal Info</h5>\n                <p className=\"text-gray-300\">\n                  Update your photo and personal details.\n                </p>\n              </div>\n              <div className=\"w-full sm:w-1/2 lg:w-2/3\">\n                <div className=\"rounded-lg border\">\n                  <div className=\"flex flex-wrap gap-y-4 p-4\">\n                    <div className=\"w-full lg:w-1/2 lg:pr-2\">\n                      <label htmlFor=\"firstname\" className=\"mb-1 inline-block\">\n                        First name\n                      </label>\n                      <input\n                        type=\"text\"\n                        className=\"w-full rounded-lg border bg-transparent px-2 py-1.5\"\n                        id=\"firstname\"\n                        placeholder=\"Enter first name\"\n                        defaultValue=\"React\"\n                      />\n                    </div>\n                    <div className=\"w-full lg:w-1/2 lg:pl-2\">\n                      <label htmlFor=\"lastname\" className=\"mb-1 inline-block\">\n                        Last name\n                      </label>\n                      <input\n                        type=\"text\"\n                        className=\"w-full rounded-lg border bg-transparent px-2 py-1.5\"\n                        id=\"lastname\"\n                        placeholder=\"Enter last name\"\n                        defaultValue=\"Patterns\"\n                      />\n                    </div>\n                    <div className=\"w-full\">\n                      <label htmlFor=\"lastname\" className=\"mb-1 inline-block\">\n                        Email address\n                      </label>\n                      <div className=\"relative\">\n                        <div className=\"absolute left-3 top-1/2 h-5 w-5 -translate-y-1/2 text-gray-300\">\n                          <EnvelopeIcon />\n                        </div>\n                        <input\n                          type=\"email\"\n                          className=\"w-full rounded-lg border bg-transparent py-1.5 pl-10 pr-2\"\n                          id=\"lastname\"\n                          placeholder=\"Enter email address\"\n                          defaultValue=\"patternsreact@gmail.com\"\n                        />\n                      </div>\n                    </div>\n                  </div>\n                  <hr className=\"border border-gray-300\" />\n                  <div className=\"flex items-center justify-end gap-4 p-4\">\n                    <button className=\"inline-block rounded-lg border px-3 py-1.5 hover:bg-white/10\">\n                      Cancel\n                    </button>\n                    <button className=\"inline-block bg-[#ae7aff] px-3 py-1.5 text-black\">\n                      Save changes\n                    </button>\n                  </div>\n                </div>\n              </div>\n            </div>\n          </div>\n        </section>\n      </div>\n    </div>\n  );\n};\n\nexport default EditPersonalInfo;\n"
  },
  {
    "path": "src/components/templates/youtube/edit-video.jsx",
    "content": "\"use client\";\nimport {\n  EyeIcon,\n  HeartIcon,\n  MagnifyingGlassIcon,\n  PencilIcon,\n  PlusIcon,\n  TrashIcon,\n  UserIcon,\n  XCircleIcon,\n  XMarkIcon,\n} from \"@heroicons/react/24/outline\";\nimport React from \"react\";\nimport { navItems, logo, videos } from \"./data\";\nimport { classNames } from \"@/utils\";\n\nconst EditVideo = () => {\n  return (\n    <div className=\"h-screen overflow-y-auto bg-[#121212] text-white\">\n      <header className=\"sticky inset-x-0 top-0 z-50 w-full border-b border-white bg-[#121212] px-4\">\n        <nav className=\"mx-auto flex max-w-7xl items-center py-2\">\n          <div className=\"mr-4 w-12 shrink-0 sm:w-16\">{logo}</div>\n          <div className=\"relative mx-auto hidden w-full max-w-md overflow-hidden sm:block\">\n            <input\n              className=\"w-full border bg-transparent py-1 pl-8 pr-3 placeholder-white outline-none sm:py-2\"\n              placeholder=\"Search\"\n            />\n            <span className=\"absolute left-2.5 top-1/2 inline-block -translate-y-1/2\">\n              <MagnifyingGlassIcon className=\" h-4 w-4\" />\n            </span>\n          </div>\n          <button className=\"ml-auto sm:hidden\">\n            <MagnifyingGlassIcon className=\" h-6 w-6\" />\n          </button>\n          <button className=\"group peer ml-4 flex w-6 shrink-0 flex-wrap gap-y-1.5 sm:hidden\">\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-2/3 bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n          </button>\n          <div className=\"fixed inset-y-0 right-0 flex w-full max-w-xs shrink-0 translate-x-full flex-col border-l border-white bg-[#121212] duration-200 hover:translate-x-0 peer-focus:translate-x-0 sm:static sm:ml-4 sm:w-auto sm:translate-x-0 sm:border-none\">\n            <div className=\"relative flex w-full items-center justify-between border-b border-white px-4 py-2 sm:hidden\">\n              <span className=\"inline-block w-12\">{logo}</span>\n              <button className=\"inline-block w-8\">\n                <XCircleIcon />\n              </button>\n            </div>\n            <ul className=\"my-4 flex w-full flex-wrap gap-2 px-4 sm:hidden\">\n              {navItems\n                .filter((item) => !item.mobileView)\n                .map((item) => (\n                  <li key={item.name} className=\"w-full\">\n                    <button className=\"flex w-full items-center justify-start gap-x-4 border border-white px-4 py-1.5 text-left hover:bg-[#ae7aff] hover:text-black focus:border-[#ae7aff] focus:bg-[#ae7aff] focus:text-black\">\n                      <span className=\"inline-block w-full max-w-[20px] group-hover:mr-4 lg:mr-4\">\n                        {item.icon}\n                      </span>\n                      <span>{item.name}</span>\n                    </button>\n                  </li>\n                ))}\n            </ul>\n\n            <div className=\"mb-8 mt-auto px-4 sm:mb-0 sm:mt-0 sm:px-0\">\n              <button className=\"flex w-full gap-4 text-left sm:items-center\">\n                <img\n                  src=\"https://images.pexels.com/photos/1115816/pexels-photo-1115816.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\"\n                  alt=\"React-Patterns\"\n                  className=\"h-16 w-16 shrink-0 rounded-full sm:h-12 sm:w-12\"\n                />\n\n                <div className=\"w-full pt-2 sm:hidden\">\n                  <h6 className=\"font-semibold\">React Patterns</h6>\n                  <p className=\"text-sm text-gray-300\">@reactpatterns</p>\n                </div>\n              </button>\n            </div>\n          </div>\n        </nav>\n      </header>\n      <div className=\"relative flex min-h-[calc(100vh-66px)] sm:min-h-[calc(100vh-82px)]\">\n        <div className=\"mx-auto flex w-full max-w-7xl flex-col gap-y-6 px-4 py-8\">\n          <div className=\"flex flex-wrap justify-between gap-4\">\n            <div className=\"block\">\n              <h1 className=\"text-2xl font-bold\">\n                Welcome Back, React Patterns\n              </h1>\n              <p className=\"text-sm text-gray-300\">\n                Seamless Video Management, Elevated Results.\n              </p>\n            </div>\n            <div className=\"block\">\n              <button className=\"inline-flex items-center gap-x-2 bg-[#ae7aff] px-3 py-2 font-semibold text-black\">\n                <PlusIcon className=\"h-5 w-5\" strokeWidth={2} /> Upload video\n              </button>\n            </div>\n          </div>\n          <div className=\"grid grid-cols-[repeat(auto-fit,_minmax(300px,_1fr))] gap-4\">\n            {[\n              { Icon: EyeIcon, title: \"Total views\", count: \"221,234\" },\n              { Icon: UserIcon, title: \"Total subscribers\", count: \"4,053\" },\n              { Icon: HeartIcon, title: \"Total likes\", count: \"63,021\" },\n            ].map(({ title, Icon, count }) => (\n              <div key={title} className=\"border p-4\">\n                <div className=\"mb-4 block\">\n                  <span className=\"inline-block h-7 w-7 rounded-full bg-[#E4D3FF] p-1 text-[#ae7aff]\">\n                    <Icon />\n                  </span>\n                </div>\n                <h6 className=\"text-gray-300\">{title}</h6>\n                <p className=\"text-3xl font-semibold\">{count}</p>\n              </div>\n            ))}\n          </div>\n          <div className=\"w-full overflow-auto\">\n            <table className=\"w-full min-w-[1200px] border-collapse border text-white\">\n              <thead>\n                <tr>\n                  <th className=\"border-collapse border-b p-4\">Status</th>\n                  <th className=\"border-collapse border-b p-4\">Status</th>\n                  <th className=\"border-collapse border-b p-4\">Uploaded</th>\n                  <th className=\"border-collapse border-b p-4\">Rating</th>\n                  <th className=\"border-collapse border-b p-4\">\n                    Date uploaded\n                  </th>\n                  <th className=\"border-collapse border-b p-4\"></th>\n                </tr>\n              </thead>\n              <tbody>\n                {videos.map((video) => (\n                  <tr key={video.id} className=\"group border\">\n                    <td className=\"border-collapse border-b border-gray-600 px-4 py-3 group-last:border-none\">\n                      <div className=\"flex justify-center\">\n                        <label\n                          htmlFor={\"vid-pub-\" + video.id}\n                          className=\"relative inline-block w-12 cursor-pointer overflow-hidden\"\n                        >\n                          <input\n                            type=\"checkbox\"\n                            id={\"vid-pub-\" + video.id}\n                            className=\"peer sr-only\"\n                            defaultChecked={video.isPublished}\n                          />\n                          <span className=\"inline-block h-6 w-full rounded-2xl bg-gray-200 duration-200 after:absolute after:bottom-1 after:left-1 after:top-1 after:h-4 after:w-4 after:rounded-full after:bg-black after:duration-200 peer-checked:bg-[#ae7aff] peer-checked:after:left-7\"></span>\n                        </label>\n                      </div>\n                    </td>\n                    <td className=\"border-collapse border-b border-gray-600 px-4 py-3 group-last:border-none\">\n                      <div className=\"flex justify-center\">\n                        <span\n                          className={classNames(\n                            \"inline-block rounded-2xl border px-1.5 py-0.5\",\n                            video.isPublished\n                              ? \"border-green-600 text-green-600\"\n                              : \"border-orange-600 text-orange-600\",\n                          )}\n                        >\n                          {video.isPublished ? \"Published\" : \"Unpublished\"}\n                        </span>\n                      </div>\n                    </td>\n                    <td className=\"border-collapse border-b border-gray-600 px-4 py-3 group-last:border-none\">\n                      <div className=\"flex items-center gap-4\">\n                        <img\n                          className=\"h-10 w-10 rounded-full\"\n                          src={video.owner.avatar}\n                          alt={video.owner.fullName}\n                        />\n                        <h3 className=\"font-semibold\">{video.title}</h3>\n                      </div>\n                    </td>\n                    <td className=\"border-collapse border-b border-gray-600 px-4 py-3 group-last:border-none\">\n                      <div className=\"flex justify-center gap-4\">\n                        <span className=\"inline-block rounded-xl bg-green-200 px-1.5 py-0.5 text-green-700\">\n                          {video.likeCount} likes\n                        </span>\n                        <span className=\"inline-block rounded-xl bg-red-200 px-1.5 py-0.5 text-red-700\">\n                          {video.dislikeCount} dislikes\n                        </span>\n                      </div>\n                    </td>\n                    <td className=\"border-collapse border-b border-gray-600 px-4 py-3 group-last:border-none\">\n                      {new Date(video.createdAt).toLocaleDateString()}\n                    </td>\n                    <td className=\"border-collapse border-b border-gray-600 px-4 py-3 group-last:border-none\">\n                      <div className=\"flex gap-4\">\n                        <button className=\"h-5 w-5 hover:text-[#ae7aff]\">\n                          <TrashIcon />\n                        </button>\n                        <button className=\"h-5 w-5 hover:text-[#ae7aff]\">\n                          <PencilIcon />\n                        </button>\n                      </div>\n                    </td>\n                  </tr>\n                ))}\n              </tbody>\n            </table>\n          </div>\n        </div>\n        {/* Modal Popup */}\n        <div className=\"fixed inset-0 top-[calc(66px)] z-10 flex flex-col bg-black/50 px-4 pb-[86px] pt-4 sm:top-[calc(82px)] sm:px-14 sm:py-8\">\n          <div className=\"mx-auto w-full max-w-lg overflow-auto rounded-lg border border-gray-700 bg-[#121212] p-4\">\n            <div className=\"mb-4 flex items-start justify-between\">\n              <h2 className=\"text-xl font-semibold\">\n                Edit Video\n                <span className=\"block text-sm text-gray-300\">\n                  Share where you&apos;ve worked on your profile.\n                </span>\n              </h2>\n              <button className=\"h-6 w-6\">\n                <XMarkIcon />\n              </button>\n            </div>\n\n            <label htmlFor=\"thumbnail\" className=\"mb-1 inline-block\">\n              Thumbnail<sup>*</sup>\n            </label>\n            <label\n              className=\"relative mb-4 block cursor-pointer border border-dashed p-2 after:absolute after:inset-0 after:bg-transparent hover:after:bg-black/10\"\n              htmlFor=\"thumbnail\"\n            >\n              <input type=\"file\" className=\"sr-only\" id=\"thumbnail\" />\n              <img\n                src=\"https://images.pexels.com/photos/7775641/pexels-photo-7775641.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\"\n                alt=\"State Management with Redux\"\n              />\n            </label>\n\n            <div className=\"mb-6 flex flex-col gap-y-4\">\n              <div className=\"w-full\">\n                <label htmlFor=\"title\" className=\"mb-1 inline-block\">\n                  Title<sup>*</sup>\n                </label>\n                <input\n                  id=\"title\"\n                  type=\"text\"\n                  className=\"w-full border bg-transparent px-2 py-1 outline-none\"\n                  defaultValue=\"State Management with Redux\"\n                />\n              </div>\n              <div className=\"w-full\">\n                <label htmlFor=\"desc\" className=\"mb-1 inline-block\">\n                  Description<sup>*</sup>\n                </label>\n                <textarea\n                  id=\"desc\"\n                  className=\"h-40 w-full resize-none border bg-transparent px-2 py-1 outline-none\"\n                  defaultValue=\"State Management with Redux is a comprehensive guidebook that delves into the principles and practices of managing application state in JavaScript-based web development. It explores the Redux library, a popular tool for handling state in complex applications, providing practical insights and best practices for effectively managing data flow. This book equips developers with the knowledge and skills needed to architect robust and maintainable front-end applications, making it an essential resource for anyone seeking to master state management in modern web development.\"\n                ></textarea>\n              </div>\n            </div>\n            <div className=\"grid grid-cols-2 gap-4\">\n              <button className=\"border px-4 py-3\">Cancel</button>\n              <button className=\"bg-[#ae7aff] px-4 py-3 text-black disabled:bg-[#E4D3FF]\">\n                Update\n              </button>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  );\n};\n\nexport default EditVideo;\n"
  },
  {
    "path": "src/components/templates/youtube/empty-videos.jsx",
    "content": "\"use client\";\nimport { classNames } from \"@/utils\";\nimport {\n  MagnifyingGlassIcon,\n  PlayIcon,\n  XCircleIcon,\n} from \"@heroicons/react/24/outline\";\nimport React from \"react\";\nimport { bottomTotalItems, navItems, logo } from \"./data\";\n\nconst EmptyVideos = () => {\n  return (\n    <div className=\"h-screen overflow-y-auto bg-[#121212] text-white\">\n      <header className=\"sticky inset-x-0 top-0 z-50 w-full border-b border-white bg-[#121212] px-4\">\n        <nav className=\"mx-auto flex max-w-7xl items-center py-2\">\n          <div className=\"mr-4 w-12 shrink-0 sm:w-16\">{logo}</div>\n          <div className=\"relative mx-auto hidden w-full max-w-md overflow-hidden sm:block\">\n            <input\n              className=\"w-full border bg-transparent py-1 pl-8 pr-3 placeholder-white outline-none sm:py-2\"\n              placeholder=\"Search\"\n            />\n            <span className=\"absolute left-2.5 top-1/2 inline-block -translate-y-1/2\">\n              <MagnifyingGlassIcon className=\" h-4 w-4\" />\n            </span>\n          </div>\n          <button className=\"ml-auto sm:hidden\">\n            <MagnifyingGlassIcon className=\" h-6 w-6\" />\n          </button>\n          <button className=\"group peer ml-4 flex w-6 shrink-0 flex-wrap gap-y-1.5 sm:hidden\">\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-2/3 bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n          </button>\n          <div className=\"fixed inset-y-0 right-0 flex w-full max-w-xs shrink-0 translate-x-full flex-col border-l border-white bg-[#121212] duration-200 hover:translate-x-0 peer-focus:translate-x-0 sm:static sm:ml-4 sm:w-auto sm:translate-x-0 sm:border-none\">\n            <div className=\"relative flex w-full items-center justify-between border-b border-white px-4 py-2 sm:hidden\">\n              <span className=\"inline-block w-12\">{logo}</span>\n              <button className=\"inline-block w-8\">\n                <XCircleIcon />\n              </button>\n            </div>\n            <ul className=\"my-4 flex w-full flex-wrap gap-2 px-4 sm:hidden\">\n              {navItems\n                .filter((item) => !item.mobileView)\n                .map((item) => (\n                  <li key={item.name} className=\"w-full\">\n                    <button className=\"flex w-full items-center justify-start gap-x-4 border border-white px-4 py-1.5 text-left hover:bg-[#ae7aff] hover:text-black focus:border-[#ae7aff] focus:bg-[#ae7aff] focus:text-black\">\n                      <span className=\"inline-block w-full max-w-[20px] group-hover:mr-4 lg:mr-4\">\n                        {item.icon}\n                      </span>\n                      <span>{item.name}</span>\n                    </button>\n                  </li>\n                ))}\n            </ul>\n\n            <div className=\"mb-8 mt-auto flex w-full flex-wrap gap-4 px-4 sm:mb-0 sm:mt-0 sm:items-center sm:px-0\">\n              <button className=\"w-full bg-[#383737] px-3 py-2 hover:bg-[#4f4e4e] sm:w-auto sm:bg-transparent\">\n                Log in\n              </button>\n              <button className=\"mr-1 w-full bg-[#ae7aff] px-3 py-2 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e] sm:w-auto\">\n                Sign up\n              </button>\n            </div>\n          </div>\n        </nav>\n      </header>\n      <div className=\"flex min-h-[calc(100vh-66px)] sm:min-h-[calc(100vh-82px)]\">\n        <aside className=\"group fixed inset-x-0 bottom-0 z-40 w-full shrink-0 border-t border-white bg-[#121212] px-2 py-2 sm:absolute sm:inset-y-0 sm:max-w-[70px] sm:border-r sm:border-t-0 sm:py-6 sm:hover:max-w-[250px] lg:sticky lg:max-w-[250px]\">\n          <ul className=\"flex justify-around gap-y-2 sm:sticky sm:top-[106px] sm:min-h-[calc(100vh-130px)] sm:flex-col\">\n            {navItems.map((item, i, arr) => (\n              <li\n                key={item.name}\n                className={classNames(\n                  item.mobileView ? \"\" : \"hidden sm:block\",\n                  arr.length - i === bottomTotalItems ? \"mt-auto\" : \"\",\n                )}\n              >\n                <button className=\"flex flex-col items-center justify-center border-white py-1 focus:text-[#ae7aff] sm:w-full sm:flex-row sm:border sm:p-1.5 sm:hover:bg-[#ae7aff] sm:hover:text-black sm:focus:border-[#ae7aff] sm:focus:bg-[#ae7aff] sm:focus:text-black sm:group-hover:justify-start sm:group-hover:px-4 lg:justify-start lg:px-4\">\n                  <span className=\"inline-block w-5 shrink-0 sm:group-hover:mr-4 lg:mr-4\">\n                    {item.icon}\n                  </span>\n                  <span className=\"block sm:hidden sm:group-hover:inline lg:inline\">\n                    {item.name}\n                  </span>\n                </button>\n              </li>\n            ))}\n          </ul>\n        </aside>\n        <section className=\"w-full pb-[70px] sm:ml-[70px] sm:pb-0 lg:ml-0\">\n          <div className=\"flex h-full items-center justify-center\">\n            <div className=\"w-full max-w-sm text-center\">\n              <p className=\"mb-3 w-full\">\n                <span className=\"inline-flex rounded-full bg-[#E4D3FF] p-2 text-[#AE7AFF]\">\n                  <PlayIcon className=\"w-6\" />\n                </span>\n              </p>\n              <h5 className=\"mb-2 font-semibold\">No videos available</h5>\n              <p>\n                There are no videos here available. Please try to search some\n                thing else.\n              </p>\n            </div>\n          </div>\n        </section>\n      </div>\n    </div>\n  );\n};\n\nexport default EmptyVideos;\n"
  },
  {
    "path": "src/components/templates/youtube/index.ts",
    "content": "import EmptyVideos from \"./empty-videos\";\nimport VideoCards from \"./video-cards\";\nimport VideoList from \"./video-list\";\nimport VideoDetail from \"./video-detail\";\nimport ChannelEmptyVideo from \"./channel-empty-video\";\nimport ChannelVideoList from \"./channel-video-list\";\nimport ChannelEmptyPlaylist from \"./channel-empty-playlist\";\nimport ChannelPlaylist from \"./channel-playlist\";\nimport ChannelPlaylistVideos from \"./channel-playlist-videos\";\nimport ChannelEmptyTweet from \"./channel-empty-tweet\";\nimport ChannelTweets from \"./channel-tweets\";\nimport ChannelEmptySubscribed from \"./channel-empty-subscribed\";\nimport ChannelSubscribed from \"./channel-subscribed\";\nimport MyChannelEmptyVideo from \"./mychannel-empty-video\";\nimport MyChannelEmptyTweet from \"./mychannel-empty-tweet\";\nimport MyChannelTweets from \"./mychannel-tweets\";\nimport EditPersonalInfo from \"./edit-personal-info\";\nimport EditChannelInfo from \"./edit-channel-info\";\nimport ChangePassword from \"./change-password\";\nimport Dashboard from \"./dashboard\";\nimport Register from \"./register\";\nimport Login from \"./login\";\nimport UploadVideo from \"./upload-video\";\nimport PrivacyPolicy from \"./privacy-policy\";\nimport TermsAndConditions from \"./terms-and-conditions\";\nimport UploadingVideo from \"./uploading-video\";\nimport UploadedVideo from \"./uploaded-video\";\nimport EditVideo from \"./edit-video\";\nimport DeleteVideo from \"./delete-video\";\n\nconst Youtube = {\n  EmptyVideos,\n  VideoCards,\n  VideoList,\n  VideoDetail,\n  ChannelEmptyPlaylist,\n  ChannelEmptySubscribed,\n  ChannelEmptyTweet,\n  ChannelEmptyVideo,\n  ChannelPlaylistVideos,\n  ChannelSubscribed,\n  ChannelTweets,\n  ChannelVideoList,\n  ChannelPlaylist,\n  MyChannelEmptyTweet,\n  MyChannelEmptyVideo,\n  MyChannelTweets,\n  EditPersonalInfo,\n  EditChannelInfo,\n  ChangePassword,\n  Dashboard,\n  Register,\n  Login,\n  UploadVideo,\n  PrivacyPolicy,\n  TermsAndConditions,\n  UploadingVideo,\n  UploadedVideo,\n  EditVideo,\n  DeleteVideo,\n};\n\nexport default Youtube;\n"
  },
  {
    "path": "src/components/templates/youtube/login.jsx",
    "content": "import React from \"react\";\nimport { logo } from \"./data\";\n\nconst Login = () => {\n  return (\n    <div className=\"h-screen overflow-y-auto bg-[#121212] text-white\">\n      <div className=\"mx-auto my-8 flex w-full max-w-sm flex-col px-4\">\n        <div className=\"mx-auto inline-block w-16\">{logo}</div>\n        <div className=\"mb-6 w-full text-center text-2xl font-semibold uppercase\">\n          Play\n        </div>\n\n        <label htmlFor=\"email\" className=\"mb-1 inline-block text-gray-300\">\n          Email*\n        </label>\n        <input\n          id=\"email\"\n          type=\"email\"\n          placeholder=\"Enter your email\"\n          className=\"mb-4 rounded-lg border bg-transparent px-3 py-2\"\n        />\n        <button className=\"bg-[#ae7aff] px-4 py-3 text-black\">\n          Sign in with Email\n        </button>\n      </div>\n    </div>\n  );\n};\n\nexport default Login;\n"
  },
  {
    "path": "src/components/templates/youtube/mychannel-empty-tweet.jsx",
    "content": "\"use client\";\nimport { classNames } from \"@/utils\";\nimport React from \"react\";\nimport {\n  EllipsisHorizontalIcon,\n  FaceSmileIcon,\n  MagnifyingGlassIcon,\n  PencilIcon,\n  UsersIcon,\n  XCircleIcon,\n} from \"@heroicons/react/24/outline\";\nimport { bottomTotalItems, navItems, logo } from \"./data\";\n\nconst MyChannelEmptyTweet = () => {\n  return (\n    <div className=\"h-screen overflow-y-auto bg-[#121212] text-white\">\n      <header className=\"sticky inset-x-0 top-0 z-50 w-full border-b border-white bg-[#121212] px-4\">\n        <nav className=\"mx-auto flex max-w-7xl items-center py-2\">\n          <div className=\"mr-4 w-12 shrink-0 sm:w-16\">{logo}</div>\n          <div className=\"relative mx-auto hidden w-full max-w-md overflow-hidden sm:block\">\n            <input\n              className=\"w-full border bg-transparent py-1 pl-8 pr-3 placeholder-white outline-none sm:py-2\"\n              placeholder=\"Search\"\n            />\n            <span className=\"absolute left-2.5 top-1/2 inline-block -translate-y-1/2\">\n              <MagnifyingGlassIcon className=\" h-4 w-4\" />\n            </span>\n          </div>\n          <button className=\"ml-auto sm:hidden\">\n            <MagnifyingGlassIcon className=\" h-6 w-6\" />\n          </button>\n          <button className=\"group peer ml-4 flex w-6 shrink-0 flex-wrap gap-y-1.5 sm:hidden\">\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-2/3 bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n          </button>\n          <div className=\"fixed inset-y-0 right-0 flex w-full max-w-xs shrink-0 translate-x-full flex-col border-l border-white bg-[#121212] duration-200 hover:translate-x-0 peer-focus:translate-x-0 sm:static sm:ml-4 sm:w-auto sm:translate-x-0 sm:border-none\">\n            <div className=\"relative flex w-full items-center justify-between border-b border-white px-4 py-2 sm:hidden\">\n              <span className=\"inline-block w-12\">{logo}</span>\n              <button className=\"inline-block w-8\">\n                <XCircleIcon />\n              </button>\n            </div>\n            <ul className=\"my-4 flex w-full flex-wrap gap-2 px-4 sm:hidden\">\n              {navItems\n                .filter((item) => !item.mobileView)\n                .map((item) => (\n                  <li key={item.name} className=\"w-full\">\n                    <button className=\"flex w-full items-center justify-start gap-x-4 border border-white px-4 py-1.5 text-left hover:bg-[#ae7aff] hover:text-black focus:border-[#ae7aff] focus:bg-[#ae7aff] focus:text-black\">\n                      <span className=\"inline-block w-full max-w-[20px] group-hover:mr-4 lg:mr-4\">\n                        {item.icon}\n                      </span>\n                      <span>{item.name}</span>\n                    </button>\n                  </li>\n                ))}\n            </ul>\n\n            <div className=\"mb-8 mt-auto px-4 sm:mb-0 sm:mt-0 sm:px-0\">\n              <button className=\"flex w-full gap-4 text-left sm:items-center\">\n                <img\n                  src=\"https://images.pexels.com/photos/1115816/pexels-photo-1115816.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\"\n                  alt=\"React-Patterns\"\n                  className=\"h-16 w-16 shrink-0 rounded-full sm:h-12 sm:w-12\"\n                />\n\n                <div className=\"w-full pt-2 sm:hidden\">\n                  <h6 className=\"font-semibold\">React Patterns</h6>\n                  <p className=\"text-sm text-gray-300\">@reactpatterns</p>\n                </div>\n              </button>\n            </div>\n          </div>\n        </nav>\n      </header>\n      <div className=\"flex min-h-[calc(100vh-66px)] sm:min-h-[calc(100vh-82px)]\">\n        <aside className=\"group fixed inset-x-0 bottom-0 z-40 w-full shrink-0 border-t border-white bg-[#121212] px-2 py-2 sm:absolute sm:inset-y-0 sm:max-w-[70px] sm:border-r sm:border-t-0 sm:py-6 sm:hover:max-w-[250px] lg:sticky lg:max-w-[250px]\">\n          <ul className=\"flex justify-around gap-y-2 sm:sticky sm:top-[106px] sm:min-h-[calc(100vh-130px)] sm:flex-col\">\n            {navItems.map((item, i, arr) => (\n              <li\n                key={item.name}\n                className={classNames(\n                  item.mobileView ? \"\" : \"hidden sm:block\",\n                  arr.length - i === bottomTotalItems ? \"mt-auto\" : \"\",\n                )}\n              >\n                <button className=\"flex flex-col items-center justify-center border-white py-1 focus:text-[#ae7aff] sm:w-full sm:flex-row sm:border sm:p-1.5 sm:hover:bg-[#ae7aff] sm:hover:text-black sm:focus:border-[#ae7aff] sm:focus:bg-[#ae7aff] sm:focus:text-black sm:group-hover:justify-start sm:group-hover:px-4 lg:justify-start lg:px-4\">\n                  <span className=\"inline-block w-5 shrink-0 sm:group-hover:mr-4 lg:mr-4\">\n                    {item.icon}\n                  </span>\n                  <span className=\"block sm:hidden sm:group-hover:inline lg:inline\">\n                    {item.name}\n                  </span>\n                </button>\n              </li>\n            ))}\n          </ul>\n        </aside>\n        <section className=\"w-full pb-[70px] sm:ml-[70px] sm:pb-0 lg:ml-0\">\n          <div className=\"relative min-h-[150px] w-full pt-[16.28%]\">\n            <div className=\"absolute inset-0 overflow-hidden\">\n              <img\n                src=\"https://images.pexels.com/photos/1092424/pexels-photo-1092424.jpeg?auto=compress\"\n                alt=\"cover-photo\"\n              />\n            </div>\n          </div>\n          <div className=\"px-4 pb-4\">\n            <div className=\"flex flex-wrap gap-4 pb-4 pt-6\">\n              <span className=\"relative -mt-12 inline-block h-28 w-28 shrink-0 overflow-hidden rounded-full border-2\">\n                <img\n                  src=\"https://images.pexels.com/photos/1115816/pexels-photo-1115816.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\"\n                  alt=\"Channel\"\n                  className=\"h-full w-full\"\n                />\n              </span>\n\n              <div className=\"mr-auto inline-block\">\n                <h1 className=\"font-bolg text-xl\">React Patterns</h1>\n                <p className=\"text-sm text-gray-400\">@reactpatterns</p>\n                <p className=\"text-sm text-gray-400\">\n                  600k Subscribers&nbsp;&middot;&nbsp;220 Subscribed\n                </p>\n              </div>\n\n              <div className=\"inline-block\">\n                <button className=\"group/btn mr-1 flex w-full items-center gap-x-2 bg-[#ae7aff] px-3 py-2 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e] sm:w-auto\">\n                  <span className=\"inline-block w-5\">\n                    <PencilIcon strokeWidth={2} />\n                  </span>\n                  Edit\n                </button>\n              </div>\n            </div>\n\n            <ul className=\"no-scrollbar sticky top-[66px] z-[2] flex flex-row gap-x-2 overflow-auto border-b-2 border-gray-400 bg-[#121212] py-2 sm:top-[82px]\">\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Videos\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Playlist\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-[#ae7aff] bg-white px-3 py-1.5 text-[#ae7aff]\">\n                  Tweets\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Subscribed\n                </button>\n              </li>\n            </ul>\n            <div className=\"mt-2 border pb-2\">\n              <textarea\n                className=\"mb-2 h-10 w-full resize-none border-none bg-transparent px-3 pt-2 outline-none\"\n                placeholder=\"Write a tweet\"\n              ></textarea>\n              <div className=\"flex items-center justify-end gap-x-3 px-3\">\n                <button className=\"inline-block h-5 w-5 hover:text-[#ae7aff]\">\n                  <FaceSmileIcon strokeWidth={2} />\n                </button>\n                <button className=\"inline-block h-5 w-5 hover:text-[#ae7aff]\">\n                  <EllipsisHorizontalIcon strokeWidth={2} />\n                </button>\n                <button className=\"bg-[#ae7aff] px-3 py-2 font-semibold text-black\">\n                  Send\n                </button>\n              </div>\n            </div>\n            <div className=\"flex justify-center p-4\">\n              <div className=\"w-full max-w-sm text-center\">\n                <p className=\"mb-3 w-full\">\n                  <span className=\"inline-flex rounded-full bg-[#E4D3FF] p-2 text-[#AE7AFF]\">\n                    <span className=\"inline-block w-6\">\n                      <UsersIcon className=\"w-6\" />\n                    </span>\n                  </span>\n                </p>\n                <h5 className=\"mb-2 font-semibold\">No Tweets</h5>\n                <p>\n                  This channel has yet to make a <strong>Tweet</strong>.\n                </p>\n              </div>\n            </div>\n          </div>\n        </section>\n      </div>\n    </div>\n  );\n};\n\nexport default MyChannelEmptyTweet;\n"
  },
  {
    "path": "src/components/templates/youtube/mychannel-empty-video.jsx",
    "content": "\"use client\";\nimport { classNames } from \"@/utils\";\nimport React from \"react\";\nimport {\n  MagnifyingGlassIcon,\n  PencilIcon,\n  PlayIcon,\n  PlusIcon,\n  XCircleIcon,\n} from \"@heroicons/react/24/outline\";\nimport { bottomTotalItems, navItems, logo } from \"./data\";\n\nconst MyChannelEmptyVideo = () => {\n  return (\n    <div className=\"h-screen overflow-y-auto bg-[#121212] text-white\">\n      <header className=\"sticky inset-x-0 top-0 z-50 w-full border-b border-white bg-[#121212] px-4\">\n        <nav className=\"mx-auto flex max-w-7xl items-center py-2\">\n          <div className=\"mr-4 w-12 shrink-0 sm:w-16\">{logo}</div>\n          <div className=\"relative mx-auto hidden w-full max-w-md overflow-hidden sm:block\">\n            <input\n              className=\"w-full border bg-transparent py-1 pl-8 pr-3 placeholder-white outline-none sm:py-2\"\n              placeholder=\"Search\"\n            />\n            <span className=\"absolute left-2.5 top-1/2 inline-block -translate-y-1/2\">\n              <MagnifyingGlassIcon className=\" h-4 w-4\" />\n            </span>\n          </div>\n          <button className=\"ml-auto sm:hidden\">\n            <MagnifyingGlassIcon className=\" h-6 w-6\" />\n          </button>\n          <button className=\"group peer ml-4 flex w-6 shrink-0 flex-wrap gap-y-1.5 sm:hidden\">\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-2/3 bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n          </button>\n          <div className=\"fixed inset-y-0 right-0 flex w-full max-w-xs shrink-0 translate-x-full flex-col border-l border-white bg-[#121212] duration-200 hover:translate-x-0 peer-focus:translate-x-0 sm:static sm:ml-4 sm:w-auto sm:translate-x-0 sm:border-none\">\n            <div className=\"relative flex w-full items-center justify-between border-b border-white px-4 py-2 sm:hidden\">\n              <span className=\"inline-block w-12\">{logo}</span>\n              <button className=\"inline-block w-8\">\n                <XCircleIcon />\n              </button>\n            </div>\n            <ul className=\"my-4 flex w-full flex-wrap gap-2 px-4 sm:hidden\">\n              {navItems\n                .filter((item) => !item.mobileView)\n                .map((item) => (\n                  <li key={item.name} className=\"w-full\">\n                    <button className=\"flex w-full items-center justify-start gap-x-4 border border-white px-4 py-1.5 text-left hover:bg-[#ae7aff] hover:text-black focus:border-[#ae7aff] focus:bg-[#ae7aff] focus:text-black\">\n                      <span className=\"inline-block w-full max-w-[20px] group-hover:mr-4 lg:mr-4\">\n                        {item.icon}\n                      </span>\n                      <span>{item.name}</span>\n                    </button>\n                  </li>\n                ))}\n            </ul>\n\n            <div className=\"mb-8 mt-auto px-4 sm:mb-0 sm:mt-0 sm:px-0\">\n              <button className=\"flex w-full gap-4 text-left sm:items-center\">\n                <img\n                  src=\"https://images.pexels.com/photos/1115816/pexels-photo-1115816.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\"\n                  alt=\"React-Patterns\"\n                  className=\"h-16 w-16 shrink-0 rounded-full sm:h-12 sm:w-12\"\n                />\n\n                <div className=\"w-full pt-2 sm:hidden\">\n                  <h6 className=\"font-semibold\">React Patterns</h6>\n                  <p className=\"text-sm text-gray-300\">@reactpatterns</p>\n                </div>\n              </button>\n            </div>\n          </div>\n        </nav>\n      </header>\n      <div className=\"flex min-h-[calc(100vh-66px)] sm:min-h-[calc(100vh-82px)]\">\n        <aside className=\"group fixed inset-x-0 bottom-0 z-40 w-full shrink-0 border-t border-white bg-[#121212] px-2 py-2 sm:absolute sm:inset-y-0 sm:max-w-[70px] sm:border-r sm:border-t-0 sm:py-6 sm:hover:max-w-[250px] lg:sticky lg:max-w-[250px]\">\n          <ul className=\"flex justify-around gap-y-2 sm:sticky sm:top-[106px] sm:min-h-[calc(100vh-130px)] sm:flex-col\">\n            {navItems.map((item, i, arr) => (\n              <li\n                key={item.name}\n                className={classNames(\n                  item.mobileView ? \"\" : \"hidden sm:block\",\n                  arr.length - i === bottomTotalItems ? \"mt-auto\" : \"\",\n                )}\n              >\n                <button className=\"flex flex-col items-center justify-center border-white py-1 focus:text-[#ae7aff] sm:w-full sm:flex-row sm:border sm:p-1.5 sm:hover:bg-[#ae7aff] sm:hover:text-black sm:focus:border-[#ae7aff] sm:focus:bg-[#ae7aff] sm:focus:text-black sm:group-hover:justify-start sm:group-hover:px-4 lg:justify-start lg:px-4\">\n                  <span className=\"inline-block w-5 shrink-0 sm:group-hover:mr-4 lg:mr-4\">\n                    {item.icon}\n                  </span>\n                  <span className=\"block sm:hidden sm:group-hover:inline lg:inline\">\n                    {item.name}\n                  </span>\n                </button>\n              </li>\n            ))}\n          </ul>\n        </aside>\n        <section className=\"w-full pb-[70px] sm:ml-[70px] sm:pb-0 lg:ml-0\">\n          <div className=\"relative min-h-[150px] w-full pt-[16.28%]\">\n            <div className=\"absolute inset-0 overflow-hidden\">\n              <img\n                src=\"https://images.pexels.com/photos/1092424/pexels-photo-1092424.jpeg?auto=compress\"\n                alt=\"cover-photo\"\n              />\n            </div>\n          </div>\n          <div className=\"px-4 pb-4\">\n            <div className=\"flex flex-wrap gap-4 pb-4 pt-6\">\n              <span className=\"relative -mt-12 inline-block h-28 w-28 shrink-0 overflow-hidden rounded-full border-2\">\n                <img\n                  src=\"https://images.pexels.com/photos/1115816/pexels-photo-1115816.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\"\n                  alt=\"Channel\"\n                  className=\"h-full w-full\"\n                />\n              </span>\n\n              <div className=\"mr-auto inline-block\">\n                <h1 className=\"font-bolg text-xl\">React Patterns</h1>\n                <p className=\"text-sm text-gray-400\">@reactpatterns</p>\n                <p className=\"text-sm text-gray-400\">\n                  600k Subscribers&nbsp;&middot;&nbsp;220 Subscribed\n                </p>\n              </div>\n\n              <div className=\"inline-block\">\n                <button className=\"group/btn mr-1 flex w-full items-center gap-x-2 bg-[#ae7aff] px-3 py-2 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e] sm:w-auto\">\n                  <span className=\"inline-block w-5\">\n                    <PencilIcon strokeWidth={2} />\n                  </span>\n                  Edit\n                </button>\n              </div>\n            </div>\n\n            <ul className=\"no-scrollbar sticky top-[66px] z-[2] flex flex-row gap-x-2 overflow-auto border-b-2 border-gray-400 bg-[#121212] py-2 sm:top-[82px]\">\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-[#ae7aff] bg-white px-3 py-1.5 text-[#ae7aff]\">\n                  Videos\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Playlist\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Tweets\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Subscribed\n                </button>\n              </li>\n            </ul>\n            <div className=\"flex justify-center p-4\">\n              <div className=\"w-full max-w-sm text-center\">\n                <p className=\"mb-3 w-full\">\n                  <span className=\"inline-flex rounded-full bg-[#E4D3FF] p-2 text-[#AE7AFF]\">\n                    <PlayIcon className=\"w-6\" />\n                  </span>\n                </p>\n                <h5 className=\"mb-2 font-semibold\">No videos uploaded</h5>\n                <p>\n                  This page has yet to upload a video. Search another page in\n                  order to find more videos.\n                </p>\n                <button className=\"mt-4 inline-flex items-center gap-x-2 bg-[#ae7aff] px-3 py-2 font-semibold text-black\">\n                  <PlusIcon className=\"h-5 w-5\" strokeWidth={2} /> New video\n                </button>\n              </div>\n            </div>\n          </div>\n        </section>\n      </div>\n    </div>\n  );\n};\n\nexport default MyChannelEmptyVideo;\n"
  },
  {
    "path": "src/components/templates/youtube/mychannel-tweets.jsx",
    "content": "\"use client\";\nimport { classNames } from \"@/utils\";\nimport React from \"react\";\nimport {\n  EllipsisHorizontalIcon,\n  FaceSmileIcon,\n  HandThumbDownIcon,\n  HandThumbUpIcon,\n  MagnifyingGlassIcon,\n  PencilIcon,\n  XCircleIcon,\n} from \"@heroicons/react/24/outline\";\nimport { bottomTotalItems, navItems, logo, tweets } from \"./data\";\n\nconst MyChannelTweets = () => {\n  return (\n    <div className=\"h-screen overflow-y-auto bg-[#121212] text-white\">\n      <header className=\"sticky inset-x-0 top-0 z-50 w-full border-b border-white bg-[#121212] px-4\">\n        <nav className=\"mx-auto flex max-w-7xl items-center py-2\">\n          <div className=\"mr-4 w-12 shrink-0 sm:w-16\">{logo}</div>\n          <div className=\"relative mx-auto hidden w-full max-w-md overflow-hidden sm:block\">\n            <input\n              className=\"w-full border bg-transparent py-1 pl-8 pr-3 placeholder-white outline-none sm:py-2\"\n              placeholder=\"Search\"\n            />\n            <span className=\"absolute left-2.5 top-1/2 inline-block -translate-y-1/2\">\n              <MagnifyingGlassIcon className=\" h-4 w-4\" />\n            </span>\n          </div>\n          <button className=\"ml-auto sm:hidden\">\n            <MagnifyingGlassIcon className=\" h-6 w-6\" />\n          </button>\n          <button className=\"group peer ml-4 flex w-6 shrink-0 flex-wrap gap-y-1.5 sm:hidden\">\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-2/3 bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n          </button>\n          <div className=\"fixed inset-y-0 right-0 flex w-full max-w-xs shrink-0 translate-x-full flex-col border-l border-white bg-[#121212] duration-200 hover:translate-x-0 peer-focus:translate-x-0 sm:static sm:ml-4 sm:w-auto sm:translate-x-0 sm:border-none\">\n            <div className=\"relative flex w-full items-center justify-between border-b border-white px-4 py-2 sm:hidden\">\n              <span className=\"inline-block w-12\">{logo}</span>\n              <button className=\"inline-block w-8\">\n                <XCircleIcon />\n              </button>\n            </div>\n            <ul className=\"my-4 flex w-full flex-wrap gap-2 px-4 sm:hidden\">\n              {navItems\n                .filter((item) => !item.mobileView)\n                .map((item) => (\n                  <li key={item.name} className=\"w-full\">\n                    <button className=\"flex w-full items-center justify-start gap-x-4 border border-white px-4 py-1.5 text-left hover:bg-[#ae7aff] hover:text-black focus:border-[#ae7aff] focus:bg-[#ae7aff] focus:text-black\">\n                      <span className=\"inline-block w-full max-w-[20px] group-hover:mr-4 lg:mr-4\">\n                        {item.icon}\n                      </span>\n                      <span>{item.name}</span>\n                    </button>\n                  </li>\n                ))}\n            </ul>\n\n            <div className=\"mb-8 mt-auto px-4 sm:mb-0 sm:mt-0 sm:px-0\">\n              <button className=\"flex w-full gap-4 text-left sm:items-center\">\n                <img\n                  src=\"https://images.pexels.com/photos/1115816/pexels-photo-1115816.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\"\n                  alt=\"React-Patterns\"\n                  className=\"h-16 w-16 shrink-0 rounded-full sm:h-12 sm:w-12\"\n                />\n\n                <div className=\"w-full pt-2 sm:hidden\">\n                  <h6 className=\"font-semibold\">React Patterns</h6>\n                  <p className=\"text-sm text-gray-300\">@reactpatterns</p>\n                </div>\n              </button>\n            </div>\n          </div>\n        </nav>\n      </header>\n      <div className=\"flex min-h-[calc(100vh-66px)] sm:min-h-[calc(100vh-82px)]\">\n        <aside className=\"group fixed inset-x-0 bottom-0 z-40 w-full shrink-0 border-t border-white bg-[#121212] px-2 py-2 sm:absolute sm:inset-y-0 sm:max-w-[70px] sm:border-r sm:border-t-0 sm:py-6 sm:hover:max-w-[250px] lg:sticky lg:max-w-[250px]\">\n          <ul className=\"flex justify-around gap-y-2 sm:sticky sm:top-[106px] sm:min-h-[calc(100vh-130px)] sm:flex-col\">\n            {navItems.map((item, i, arr) => (\n              <li\n                key={item.name}\n                className={classNames(\n                  item.mobileView ? \"\" : \"hidden sm:block\",\n                  arr.length - i === bottomTotalItems ? \"mt-auto\" : \"\",\n                )}\n              >\n                <button className=\"flex flex-col items-center justify-center border-white py-1 focus:text-[#ae7aff] sm:w-full sm:flex-row sm:border sm:p-1.5 sm:hover:bg-[#ae7aff] sm:hover:text-black sm:focus:border-[#ae7aff] sm:focus:bg-[#ae7aff] sm:focus:text-black sm:group-hover:justify-start sm:group-hover:px-4 lg:justify-start lg:px-4\">\n                  <span className=\"inline-block w-5 shrink-0 sm:group-hover:mr-4 lg:mr-4\">\n                    {item.icon}\n                  </span>\n                  <span className=\"block sm:hidden sm:group-hover:inline lg:inline\">\n                    {item.name}\n                  </span>\n                </button>\n              </li>\n            ))}\n          </ul>\n        </aside>\n        <section className=\"w-full pb-[70px] sm:ml-[70px] sm:pb-0 lg:ml-0\">\n          <div className=\"relative min-h-[150px] w-full pt-[16.28%]\">\n            <div className=\"absolute inset-0 overflow-hidden\">\n              <img\n                src=\"https://images.pexels.com/photos/1092424/pexels-photo-1092424.jpeg?auto=compress\"\n                alt=\"cover-photo\"\n              />\n            </div>\n          </div>\n          <div className=\"px-4 pb-4\">\n            <div className=\"flex flex-wrap gap-4 pb-4 pt-6\">\n              <span className=\"relative -mt-12 inline-block h-28 w-28 shrink-0 overflow-hidden rounded-full border-2\">\n                <img\n                  src=\"https://images.pexels.com/photos/1115816/pexels-photo-1115816.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\"\n                  alt=\"Channel\"\n                  className=\"h-full w-full\"\n                />\n              </span>\n\n              <div className=\"mr-auto inline-block\">\n                <h1 className=\"font-bolg text-xl\">React Patterns</h1>\n                <p className=\"text-sm text-gray-400\">@reactpatterns</p>\n                <p className=\"text-sm text-gray-400\">\n                  600k Subscribers&nbsp;&middot;&nbsp;220 Subscribed\n                </p>\n              </div>\n\n              <div className=\"inline-block\">\n                <button className=\"group/btn mr-1 flex w-full items-center gap-x-2 bg-[#ae7aff] px-3 py-2 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e] sm:w-auto\">\n                  <span className=\"inline-block w-5\">\n                    <PencilIcon strokeWidth={2} />\n                  </span>\n                  Edit\n                </button>\n              </div>\n            </div>\n\n            <ul className=\"no-scrollbar sticky top-[66px] z-[2] flex flex-row gap-x-2 overflow-auto border-b-2 border-gray-400 bg-[#121212] py-2 sm:top-[82px]\">\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Videos\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Playlist\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-[#ae7aff] bg-white px-3 py-1.5 text-[#ae7aff]\">\n                  Tweets\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Subscribed\n                </button>\n              </li>\n            </ul>\n            <div className=\"mt-2 border pb-2\">\n              <textarea\n                className=\"mb-2 h-10 w-full resize-none border-none bg-transparent px-3 pt-2 outline-none\"\n                placeholder=\"Write a tweet\"\n              ></textarea>\n              <div className=\"flex items-center justify-end gap-x-3 px-3\">\n                <button className=\"inline-block h-5 w-5 hover:text-[#ae7aff]\">\n                  <FaceSmileIcon strokeWidth={2} />\n                </button>\n                <button className=\"inline-block h-5 w-5 hover:text-[#ae7aff]\">\n                  <EllipsisHorizontalIcon strokeWidth={2} />\n                </button>\n                <button className=\"bg-[#ae7aff] px-3 py-2 font-semibold text-black\">\n                  Send\n                </button>\n              </div>\n            </div>\n            <div className=\"py-4\">\n              {tweets.map((tweet) => (\n                <div\n                  key={tweet.id}\n                  className=\"flex gap-3 border-b border-gray-700 py-4 last:border-b-transparent\"\n                >\n                  <div className=\"h-14 w-14 shrink-0\">\n                    <img\n                      src={tweet.owner.avatar}\n                      alt={tweet.owner.fullName}\n                      className=\"h-full w-full rounded-full\"\n                    />\n                  </div>\n                  <div className=\"w-full\">\n                    <h4 className=\"mb-1 flex items-center gap-x-2\">\n                      <span className=\"font-semibold\">\n                        {tweet.owner.fullName}\n                      </span>\n                      &nbsp;\n                      <span className=\"inline-block text-sm text-gray-400\">\n                        {tweet.createdAt}\n                      </span>\n                    </h4>\n                    <p className=\"mb-2\">{tweet.content}</p>\n                    <div className=\"flex gap-4\">\n                      <button\n                        className={`group inline-flex items-center gap-x-1 outline-none after:content-[attr(data-like-count)] focus:after:content-[attr(data-like-count-alt)]`}\n                        data-like-count={tweet.likeCount}\n                        data-like-count-alt={\n                          tweet.liked\n                            ? tweet.likeCount - 1\n                            : tweet.likeCount + 1\n                        }\n                      >\n                        <HandThumbUpIcon\n                          className={`h-5 w-5 ${\n                            tweet.liked\n                              ? \"text-[#ae7aff] group-focus:text-inherit\"\n                              : \"text-inherit group-focus:text-[#ae7aff]\"\n                          }`}\n                        />\n                      </button>\n                      <button\n                        className={`group inline-flex items-center gap-x-1 outline-none after:content-[attr(data-dislike-count)] focus:after:content-[attr(data-dislike-count-alt)]`}\n                        data-dislike-count={tweet.dislikeCount}\n                        data-dislike-count-alt={\n                          tweet.disliked\n                            ? tweet.dislikeCount - 1\n                            : tweet.dislikeCount + 1\n                        }\n                      >\n                        <HandThumbDownIcon\n                          className={`h-5 w-5 ${\n                            tweet.disliked\n                              ? \"text-[#ae7aff] group-focus:text-inherit\"\n                              : \"text-inherit group-focus:text-[#ae7aff]\"\n                          }`}\n                        />\n                      </button>\n                    </div>\n                  </div>\n                </div>\n              ))}\n            </div>\n          </div>\n        </section>\n      </div>\n    </div>\n  );\n};\n\nexport default MyChannelTweets;\n"
  },
  {
    "path": "src/components/templates/youtube/privacy-policy.jsx",
    "content": "import React from \"react\";\nimport { XCircleIcon } from \"@heroicons/react/24/outline\";\nimport { siteNavItems, logo } from \"./data\";\n\nconst PrivacyPolicy = () => {\n  return (\n    <div className=\"h-screen overflow-y-auto bg-[#121212] text-white\">\n      <header className=\"sticky inset-x-0 top-0 z-50 w-full border-b border-white bg-[#121212] px-4\">\n        <nav className=\"mx-auto flex max-w-7xl items-center py-2\">\n          <div className=\"mr-4 w-12 shrink-0 sm:w-16\">{logo}</div>\n\n          <button className=\"group peer ml-auto flex w-6 shrink-0 flex-wrap gap-y-1.5 md:hidden\">\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-2/3 bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n          </button>\n          <div className=\"fixed inset-y-0 right-0 flex w-full max-w-xs shrink-0 translate-x-full flex-col justify-between border-l border-white bg-[#121212] duration-200 hover:translate-x-0 peer-focus:translate-x-0 md:static md:ml-4 md:max-w-full md:shrink md:translate-x-0 md:flex-row md:border-none\">\n            <div className=\"relative flex w-full items-center justify-between border-b border-white px-4 py-2 md:hidden\">\n              <span className=\"inline-block w-12\">{logo}</span>\n              <button className=\"inline-block w-8\">\n                <XCircleIcon />\n              </button>\n            </div>\n            <ul className=\"my-4 flex w-full flex-wrap gap-2 px-4 md:my-0 md:w-auto md:px-0\">\n              {siteNavItems.map((item) => (\n                <li key={item} className=\"w-full md:w-auto\">\n                  <button className=\"flex w-full items-center justify-start gap-x-4 border border-white px-4 py-1.5 text-left hover:bg-[#ae7aff] hover:text-black focus:border-[#ae7aff] focus:bg-[#ae7aff] focus:text-black md:border-none\">\n                    <span>{item}</span>\n                  </button>\n                </li>\n              ))}\n            </ul>\n\n            <div className=\"mb-8 mt-auto flex flex-wrap gap-4 px-4 md:mb-0 md:mt-0 md:items-center md:px-0\">\n              <button className=\"w-full bg-[#383737] px-3 py-2 hover:bg-[#4f4e4e] md:w-auto md:bg-transparent\">\n                Log in\n              </button>\n              <button className=\"mr-1 w-full bg-[#ae7aff] px-3 py-2 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e] md:w-auto\">\n                Sign up\n              </button>\n            </div>\n          </div>\n        </nav>\n      </header>\n      <section className=\"relative mx-auto max-w-3xl px-4 py-20\">\n        <div className=\"mb-16 text-center\">\n          <h1 className=\"mb-3 text-sm text-[#ae7aff]\">Privacy Policy</h1>\n          <h2 className=\"mb-4 text-4xl font-bold\">\n            We care about your privacy\n          </h2>\n          <h3 className=\"text-gray-300\">\n            Your privacy is important to us at videoTube. We repect your privacy\n            regarding any information we may collect from you across out\n            website.\n          </h3>\n        </div>\n        <div className=\"mb-8\">\n          <p className=\"mb-4 text-gray-300\">\n            Lorem, ipsum dolor sit amet consectetur adipisicing elit. Voluptate\n            facilis officia magni quidem labore obcaecati sequi repellat sit\n            iusto modi doloribus excepturi consectetur, numquam quis. Lorem\n            ipsum dolor sit amet, consectetur adipisicing elit. Nemo voluptatum\n            provident eveniet neque impedit ipsa molestias, animi reiciendis\n            dolorum vitae cumque, itaque quae. Repudiandae obcaecati eaque\n            perferendis fuga amet at?\n          </p>\n          <p className=\"mb-4 text-gray-300\">\n            Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ad\n            excepturi optio consequuntur quas deleniti sequi laboriosam rem,\n            necessitatibus voluptates modi commodi exercitationem eos expedita\n            repellendus? Quisquam reiciendis illo deleniti, eligendi architecto\n            velit veniam. Odit repudiandae rem, recusandae placeat suscipit non\n            incidunt similique optio facilis quae architecto minus iusto modi\n            natus quod quidem laboriosam unde error explicabo ullam! Enim unde\n            iste, beatae, corrupti, velit animi perferendis nisi maxime dolore\n            qui aliquam.\n          </p>\n        </div>\n        <div className=\"mb-8\">\n          <h3 className=\"mb-4 text-xl font-bold sm:text-2xl md:text-3xl\">\n            What information do we collect?\n          </h3>\n          <p className=\"mb-4 text-gray-300\">\n            Lorem ipsum dolor, sit amet consectetur adipisicing elit. Sit\n            tenetur aperiam excepturi deleniti, tempora quidem magni obcaecati\n            quas. Quo perspiciatis, deserunt velit porro ipsum, quod sit ratione\n            cupiditate cumque aperiam dolorem adipisci architecto dolor id\n            quisquam aliquid aspernatur. Repellat, consectetur? At harum\n            necessitatibus nisi rem ullam sapiente laborum eaque? Harum?\n          </p>\n          <p className=\"mb-4 text-gray-300\">\n            Lorem ipsum dolor sit amet consectetur adipisicing elit. Porro at\n            iusto laboriosam possimus in! Repellendus ea accusantium omnis\n            impedit incidunt facere fuga consectetur quidem sint dolorem\n            necessitatibus corporis itaque sed qui voluptates amet, sunt fugit?\n            Deleniti explicabo et veniam alias eligendi similique, molestiae\n            ipsa vitae rerum non repudiandae accusamus error temporibus\n            pariatur. Sit totam, odit facilis adipisci ut vitae neque deserunt\n            obcaecati. Laborum labore possimus ipsa quo placeat, tempora\n            voluptatibus commodi itaque quia cupiditate nihil at, porro deleniti\n            totam quaerat!\n          </p>\n          <p className=\"mb-4 text-gray-300\">\n            Lorem ipsum dolor sit amet consectetur adipisicing elit. Laborum\n            fuga asperiores voluptatibus quidem dolores, quos officiis nostrum\n            veritatis. A praesentium dicta temporibus vitae, excepturi sequi\n            itaque? Pariatur veniam praesentium error qui necessitatibus. Et\n            autem dolorum consectetur officia, provident quasi soluta?\n          </p>\n        </div>\n        <div className=\"mb-8\">\n          <h3 className=\"mb-4 text-xl font-bold sm:text-2xl md:text-3xl\">\n            How do we use your information\n          </h3>\n          <p className=\"mb-4 text-gray-300\">\n            Lorem ipsum dolor, sit amet consectetur adipisicing elit. Sit\n            tenetur aperiam excepturi deleniti, tempora quidem magni obcaecati\n            quas. Quo perspiciatis, deserunt velit porro ipsum, quod sit ratione\n            cupiditate cumque aperiam dolorem adipisci architecto dolor id\n            quisquam aliquid aspernatur. Repellat, consectetur? At harum\n            necessitatibus nisi rem ullam sapiente laborum eaque? Harum?\n          </p>\n          <p className=\"mb-4 text-gray-300\">\n            Lorem ipsum dolor sit amet consectetur adipisicing elit. Porro at\n            iusto laboriosam possimus in! Repellendus ea accusantium omnis\n            impedit incidunt facere fuga consectetur quidem sint dolorem\n            necessitatibus corporis itaque sed qui voluptates amet, sunt fugit?\n            Deleniti explicabo et veniam alias eligendi similique, molestiae\n            ipsa vitae rerum non repudiandae accusamus error temporibus\n            pariatur. Sit totam, odit facilis adipisci ut vitae neque deserunt\n            obcaecati. Laborum labore possimus ipsa quo placeat, tempora\n            voluptatibus commodi itaque quia cupiditate nihil at, porro deleniti\n            totam quaerat!\n          </p>\n          <p className=\"mb-4 text-gray-300\">\n            Lorem ipsum dolor sit amet consectetur adipisicing elit. Laborum\n            fuga asperiores voluptatibus quidem dolores, quos officiis nostrum\n            veritatis. A praesentium dicta temporibus vitae, excepturi sequi\n            itaque? Pariatur veniam praesentium error qui necessitatibus. Et\n            autem dolorum consectetur officia, provident quasi soluta?\n          </p>\n        </div>\n        <div className=\"mb-8\">\n          <h3 className=\"mb-4 text-xl font-bold sm:text-2xl md:text-3xl\">\n            Do we use cookies and other tracking technologies?\n          </h3>\n          <p className=\"mb-4 text-gray-300\">\n            Lorem ipsum dolor sit amet consectetur adipisicing elit. Laborum\n            fuga asperiores voluptatibus quidem dolores, quos officiis nostrum\n            veritatis. A praesentium dicta temporibus vitae, excepturi sequi\n            itaque? Pariatur veniam praesentium error qui necessitatibus. Et\n            autem dolorum consectetur officia, provident quasi soluta?\n          </p>\n        </div>\n        <div className=\"mb-8\">\n          <h3 className=\"mb-4 text-xl font-bold sm:text-2xl md:text-3xl\">\n            How long do we keep tour information?\n          </h3>\n          <p className=\"mb-4 text-gray-300\">\n            Lorem ipsum dolor sit amet consectetur adipisicing elit. Laborum\n            fuga asperiores voluptatibus quidem dolores, quos officiis nostrum\n            veritatis. A praesentium dicta temporibus vitae, excepturi sequi\n            itaque? Pariatur veniam praesentium error qui necessitatibus. Et\n            autem dolorum consectetur officia, provident quasi soluta?\n          </p>\n        </div>\n        <div className=\"mb-8\">\n          <h3 className=\"mb-4 text-xl font-bold sm:text-2xl md:text-3xl\">\n            How do we keep your information safe?\n          </h3>\n          <p className=\"mb-4 text-gray-300\">\n            Lorem ipsum dolor sit amet consectetur adipisicing elit. Laborum\n            fuga asperiores voluptatibus quidem dolores, quos officiis nostrum\n            veritatis. A praesentium dicta temporibus vitae, excepturi sequi\n            itaque? Pariatur veniam praesentium error qui necessitatibus. Et\n            autem dolorum consectetur officia, provident quasi soluta?\n          </p>\n        </div>\n        <div className=\"mb-8\">\n          <h3 className=\"mb-4 text-xl font-bold sm:text-2xl md:text-3xl\">\n            What are your privacy rights\n          </h3>\n          <p className=\"mb-4 text-gray-300\">\n            Lorem ipsum dolor sit amet consectetur adipisicing elit. Laborum\n            fuga asperiores voluptatibus quidem dolores, quos officiis nostrum\n            veritatis. A praesentium dicta temporibus vitae, excepturi sequi\n            itaque? Pariatur veniam praesentium error qui necessitatibus. Et\n            autem dolorum consectetur officia, provident quasi soluta?\n          </p>\n        </div>\n        <div className=\"mb-8\">\n          <h3 className=\"mb-4 text-xl font-bold sm:text-2xl md:text-3xl\">\n            How can you contact us about this policy?\n          </h3>\n          <p className=\"mb-4 text-gray-300\">\n            Lorem ipsum dolor sit amet consectetur adipisicing elit. Laborum\n            fuga asperiores voluptatibus quidem dolores, quos officiis nostrum\n            veritatis. A praesentium dicta temporibus vitae, excepturi sequi\n            itaque? Pariatur veniam praesentium error qui necessitatibus. Et\n            autem dolorum consectetur officia, provident quasi soluta?\n          </p>\n          <ol className=\"list-decimal pl-4 text-gray-300\">\n            <li>\n              Lorem ipsum dolor sit amet, consectetur adipisicing elit. Error,\n              voluptas.\n            </li>\n            <li>Lorem ipsum dolor sit amet consectetur adipisicing.</li>\n            <li>\n              Lorem ipsum dolor sit amet consectetur adipisicing elit. Doloribus\n              voluptatem optio autem eveniet ab natus!\n            </li>\n          </ol>\n        </div>\n      </section>\n      <footer className=\"px-4\">\n        <div className=\"mx-auto flex max-w-7xl items-center justify-between py-2\">\n          <div className=\"mr-4 w-12 shrink-0 sm:w-16\">{logo}</div>\n          <p className=\"text-sm\">\n            &copy;{new Date().getFullYear()} VideoTube. All rights reserved.\n          </p>\n        </div>\n      </footer>\n    </div>\n  );\n};\n\nexport default PrivacyPolicy;\n"
  },
  {
    "path": "src/components/templates/youtube/register.jsx",
    "content": "import React from \"react\";\nimport { logo } from \"./data\";\n\nconst Register = () => {\n  return (\n    <div className=\"h-screen overflow-y-auto bg-[#121212] text-white\">\n      <div className=\"mx-auto my-8 flex w-full max-w-sm flex-col px-4\">\n        <div className=\"mx-auto inline-block w-16\">{logo}</div>\n        <div className=\"mb-6 w-full text-center text-2xl font-semibold uppercase\">\n          Play\n        </div>\n\n        <label htmlFor=\"email\" className=\"mb-1 inline-block text-gray-300\">\n          Email*\n        </label>\n        <input\n          id=\"email\"\n          type=\"email\"\n          placeholder=\"Enter your email\"\n          className=\"mb-4 rounded-lg border bg-transparent px-3 py-2\"\n        />\n        <button className=\"bg-[#ae7aff] px-4 py-3 text-black\">\n          Sign up with Email\n        </button>\n      </div>\n    </div>\n  );\n};\n\nexport default Register;\n"
  },
  {
    "path": "src/components/templates/youtube/terms-and-conditions.jsx",
    "content": "import React from \"react\";\nimport { XCircleIcon } from \"@heroicons/react/24/outline\";\nimport { siteNavItems, logo } from \"./data\";\n\nconst TermsAndConditions = () => {\n  return (\n    <div className=\"h-screen overflow-y-auto bg-[#121212] text-white\">\n      <header className=\"sticky inset-x-0 top-0 z-50 w-full border-b border-white bg-[#121212] px-4\">\n        <nav className=\"mx-auto flex max-w-7xl items-center py-2\">\n          <div className=\"mr-4 w-12 shrink-0 sm:w-16\">{logo}</div>\n\n          <button className=\"group peer ml-auto flex w-6 shrink-0 flex-wrap gap-y-1.5 md:hidden\">\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-2/3 bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n          </button>\n          <div className=\"fixed inset-y-0 right-0 flex w-full max-w-xs shrink-0 translate-x-full flex-col justify-between border-l border-white bg-[#121212] duration-200 hover:translate-x-0 peer-focus:translate-x-0 md:static md:ml-4 md:max-w-full md:shrink md:translate-x-0 md:flex-row md:border-none\">\n            <div className=\"relative flex w-full items-center justify-between border-b border-white px-4 py-2 md:hidden\">\n              <span className=\"inline-block w-12\">{logo}</span>\n              <button className=\"inline-block w-8\">\n                <XCircleIcon />\n              </button>\n            </div>\n            <ul className=\"my-4 flex w-full flex-wrap gap-2 px-4 md:my-0 md:w-auto md:px-0\">\n              {siteNavItems.map((item) => (\n                <li key={item} className=\"w-full md:w-auto\">\n                  <button className=\"flex w-full items-center justify-start gap-x-4 border border-white px-4 py-1.5 text-left hover:bg-[#ae7aff] hover:text-black focus:border-[#ae7aff] focus:bg-[#ae7aff] focus:text-black md:border-none\">\n                    <span>{item}</span>\n                  </button>\n                </li>\n              ))}\n            </ul>\n\n            <div className=\"mb-8 mt-auto flex flex-wrap gap-4 px-4 md:mb-0 md:mt-0 md:items-center md:px-0\">\n              <button className=\"w-full bg-[#383737] px-3 py-2 hover:bg-[#4f4e4e] md:w-auto md:bg-transparent\">\n                Log in\n              </button>\n              <button className=\"mr-1 w-full bg-[#ae7aff] px-3 py-2 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e] md:w-auto\">\n                Sign up\n              </button>\n            </div>\n          </div>\n        </nav>\n      </header>\n      <section className=\"relative mx-auto max-w-3xl px-4 py-20\">\n        <div className=\"mb-16 border-b pb-16 text-center\">\n          <h1 className=\"mb-3 text-sm text-[#ae7aff]\">\n            Current as of 20 Jan 2022\n          </h1>\n          <h2 className=\"mb-4 text-4xl font-bold\">Terms and conditions</h2>\n          <h3 className=\"text-gray-300\">\n            By accessing our website, you are agreeing to be bound by these\n            terms of service, and agree that you are responsible for compliance\n            with any applicable local laws.\n          </h3>\n        </div>\n        <div className=\"mb-8\">\n          <p className=\"mb-4 text-gray-300\">\n            Lorem, ipsum dolor sit amet consectetur adipisicing elit. Voluptate\n            facilis officia magni quidem labore obcaecati sequi repellat sit\n            iusto modi doloribus excepturi consectetur, numquam quis. Lorem\n            ipsum dolor sit amet, consectetur adipisicing elit. Nemo voluptatum\n            provident eveniet neque impedit ipsa molestias, animi reiciendis\n            dolorum vitae cumque, itaque quae. Repudiandae obcaecati eaque\n            perferendis fuga amet at?\n          </p>\n          <p className=\"mb-4 text-gray-300\">\n            Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ad\n            excepturi optio consequuntur quas deleniti sequi laboriosam rem,\n            necessitatibus voluptates modi commodi exercitationem eos expedita\n            repellendus? Quisquam reiciendis illo deleniti, eligendi architecto\n            velit veniam. Odit repudiandae rem, recusandae placeat suscipit non\n            incidunt similique optio facilis quae architecto minus iusto modi\n            natus quod quidem laboriosam unde error explicabo ullam! Enim unde\n            iste, beatae, corrupti, velit animi perferendis nisi maxime dolore\n            qui aliquam.\n          </p>\n        </div>\n        <div className=\"mb-8\">\n          <h3 className=\"mb-4 text-xl font-bold sm:text-2xl md:text-3xl\">\n            What information do we collect?\n          </h3>\n          <p className=\"mb-4 text-gray-300\">\n            Lorem ipsum dolor, sit amet consectetur adipisicing elit. Sit\n            tenetur aperiam excepturi deleniti, tempora quidem magni obcaecati\n            quas. Quo perspiciatis, deserunt velit porro ipsum, quod sit ratione\n            cupiditate cumque aperiam dolorem adipisci architecto dolor id\n            quisquam aliquid aspernatur. Repellat, consectetur? At harum\n            necessitatibus nisi rem ullam sapiente laborum eaque? Harum?\n          </p>\n          <p className=\"mb-4 text-gray-300\">\n            Lorem ipsum dolor sit amet consectetur adipisicing elit. Porro at\n            iusto laboriosam possimus in! Repellendus ea accusantium omnis\n            impedit incidunt facere fuga consectetur quidem sint dolorem\n            necessitatibus corporis itaque sed qui voluptates amet, sunt fugit?\n            Deleniti explicabo et veniam alias eligendi similique, molestiae\n            ipsa vitae rerum non repudiandae accusamus error temporibus\n            pariatur. Sit totam, odit facilis adipisci ut vitae neque deserunt\n            obcaecati. Laborum labore possimus ipsa quo placeat, tempora\n            voluptatibus commodi itaque quia cupiditate nihil at, porro deleniti\n            totam quaerat!\n          </p>\n          <p className=\"mb-4 text-gray-300\">\n            Lorem ipsum dolor sit amet consectetur adipisicing elit. Laborum\n            fuga asperiores voluptatibus quidem dolores, quos officiis nostrum\n            veritatis. A praesentium dicta temporibus vitae, excepturi sequi\n            itaque? Pariatur veniam praesentium error qui necessitatibus. Et\n            autem dolorum consectetur officia, provident quasi soluta?\n          </p>\n        </div>\n        <div className=\"mb-8\">\n          <h3 className=\"mb-4 text-xl font-bold sm:text-2xl md:text-3xl\">\n            How do we use your information\n          </h3>\n          <p className=\"mb-4 text-gray-300\">\n            Lorem ipsum dolor, sit amet consectetur adipisicing elit. Sit\n            tenetur aperiam excepturi deleniti, tempora quidem magni obcaecati\n            quas. Quo perspiciatis, deserunt velit porro ipsum, quod sit ratione\n            cupiditate cumque aperiam dolorem adipisci architecto dolor id\n            quisquam aliquid aspernatur. Repellat, consectetur? At harum\n            necessitatibus nisi rem ullam sapiente laborum eaque? Harum?\n          </p>\n          <p className=\"mb-4 text-gray-300\">\n            Lorem ipsum dolor sit amet consectetur adipisicing elit. Porro at\n            iusto laboriosam possimus in! Repellendus ea accusantium omnis\n            impedit incidunt facere fuga consectetur quidem sint dolorem\n            necessitatibus corporis itaque sed qui voluptates amet, sunt fugit?\n            Deleniti explicabo et veniam alias eligendi similique, molestiae\n            ipsa vitae rerum non repudiandae accusamus error temporibus\n            pariatur. Sit totam, odit facilis adipisci ut vitae neque deserunt\n            obcaecati. Laborum labore possimus ipsa quo placeat, tempora\n            voluptatibus commodi itaque quia cupiditate nihil at, porro deleniti\n            totam quaerat!\n          </p>\n          <p className=\"mb-4 text-gray-300\">\n            Lorem ipsum dolor sit amet consectetur adipisicing elit. Laborum\n            fuga asperiores voluptatibus quidem dolores, quos officiis nostrum\n            veritatis. A praesentium dicta temporibus vitae, excepturi sequi\n            itaque? Pariatur veniam praesentium error qui necessitatibus. Et\n            autem dolorum consectetur officia, provident quasi soluta?\n          </p>\n        </div>\n        <div className=\"mb-8\">\n          <h3 className=\"mb-4 text-xl font-bold sm:text-2xl md:text-3xl\">\n            Do we use cookies and other tracking technologies?\n          </h3>\n          <p className=\"mb-4 text-gray-300\">\n            Lorem ipsum dolor sit amet consectetur adipisicing elit. Laborum\n            fuga asperiores voluptatibus quidem dolores, quos officiis nostrum\n            veritatis. A praesentium dicta temporibus vitae, excepturi sequi\n            itaque? Pariatur veniam praesentium error qui necessitatibus. Et\n            autem dolorum consectetur officia, provident quasi soluta?\n          </p>\n        </div>\n        <div className=\"mb-8\">\n          <h3 className=\"mb-4 text-xl font-bold sm:text-2xl md:text-3xl\">\n            How long do we keep tour information?\n          </h3>\n          <p className=\"mb-4 text-gray-300\">\n            Lorem ipsum dolor sit amet consectetur adipisicing elit. Laborum\n            fuga asperiores voluptatibus quidem dolores, quos officiis nostrum\n            veritatis. A praesentium dicta temporibus vitae, excepturi sequi\n            itaque? Pariatur veniam praesentium error qui necessitatibus. Et\n            autem dolorum consectetur officia, provident quasi soluta?\n          </p>\n        </div>\n        <div className=\"mb-8\">\n          <h3 className=\"mb-4 text-xl font-bold sm:text-2xl md:text-3xl\">\n            How do we keep your information safe?\n          </h3>\n          <p className=\"mb-4 text-gray-300\">\n            Lorem ipsum dolor sit amet consectetur adipisicing elit. Laborum\n            fuga asperiores voluptatibus quidem dolores, quos officiis nostrum\n            veritatis. A praesentium dicta temporibus vitae, excepturi sequi\n            itaque? Pariatur veniam praesentium error qui necessitatibus. Et\n            autem dolorum consectetur officia, provident quasi soluta?\n          </p>\n        </div>\n        <div className=\"mb-8\">\n          <h3 className=\"mb-4 text-xl font-bold sm:text-2xl md:text-3xl\">\n            What are your privacy rights\n          </h3>\n          <p className=\"mb-4 text-gray-300\">\n            Lorem ipsum dolor sit amet consectetur adipisicing elit. Laborum\n            fuga asperiores voluptatibus quidem dolores, quos officiis nostrum\n            veritatis. A praesentium dicta temporibus vitae, excepturi sequi\n            itaque? Pariatur veniam praesentium error qui necessitatibus. Et\n            autem dolorum consectetur officia, provident quasi soluta?\n          </p>\n        </div>\n        <div className=\"mb-8\">\n          <h3 className=\"mb-4 text-xl font-bold sm:text-2xl md:text-3xl\">\n            How can you contact us about this policy?\n          </h3>\n          <p className=\"mb-4 text-gray-300\">\n            Lorem ipsum dolor sit amet consectetur adipisicing elit. Laborum\n            fuga asperiores voluptatibus quidem dolores, quos officiis nostrum\n            veritatis. A praesentium dicta temporibus vitae, excepturi sequi\n            itaque? Pariatur veniam praesentium error qui necessitatibus. Et\n            autem dolorum consectetur officia, provident quasi soluta?\n          </p>\n          <ol className=\"list-decimal pl-4 text-gray-300\">\n            <li>\n              Lorem ipsum dolor sit amet, consectetur adipisicing elit. Error,\n              voluptas.\n            </li>\n            <li>Lorem ipsum dolor sit amet consectetur adipisicing.</li>\n            <li>\n              Lorem ipsum dolor sit amet consectetur adipisicing elit. Doloribus\n              voluptatem optio autem eveniet ab natus!\n            </li>\n          </ol>\n        </div>\n      </section>\n      <footer className=\"px-4\">\n        <div className=\"mx-auto flex max-w-7xl items-center justify-between border-t py-2\">\n          <div className=\"mr-4 w-12 shrink-0 sm:w-16\">{logo}</div>\n          <p className=\"text-sm\">\n            &copy;{new Date().getFullYear()} VideoTube. All rights reserved.\n          </p>\n        </div>\n      </footer>\n    </div>\n  );\n};\n\nexport default TermsAndConditions;\n"
  },
  {
    "path": "src/components/templates/youtube/upload-video.jsx",
    "content": "\"use client\";\nimport { classNames } from \"@/utils\";\nimport React from \"react\";\nimport {\n  ArrowUpTrayIcon,\n  MagnifyingGlassIcon,\n  PencilIcon,\n  PlayIcon,\n  PlusIcon,\n  XCircleIcon,\n} from \"@heroicons/react/24/outline\";\nimport { bottomTotalItems, navItems, logo } from \"./data\";\n\nconst UploadVideo = () => {\n  return (\n    <div className=\"h-screen overflow-y-auto bg-[#121212] text-white\">\n      <header className=\"sticky inset-x-0 top-0 z-50 w-full border-b border-white bg-[#121212] px-4\">\n        <nav className=\"mx-auto flex max-w-7xl items-center py-2\">\n          <div className=\"mr-4 w-12 shrink-0 sm:w-16\">{logo}</div>\n          <div className=\"relative mx-auto hidden w-full max-w-md overflow-hidden sm:block\">\n            <input\n              className=\"w-full border bg-transparent py-1 pl-8 pr-3 placeholder-white outline-none sm:py-2\"\n              placeholder=\"Search\"\n            />\n            <span className=\"absolute left-2.5 top-1/2 inline-block -translate-y-1/2\">\n              <MagnifyingGlassIcon className=\" h-4 w-4\" />\n            </span>\n          </div>\n          <button className=\"ml-auto sm:hidden\">\n            <MagnifyingGlassIcon className=\" h-6 w-6\" />\n          </button>\n          <button className=\"group peer ml-4 flex w-6 shrink-0 flex-wrap gap-y-1.5 sm:hidden\">\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-2/3 bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n          </button>\n          <div className=\"fixed inset-y-0 right-0 flex w-full max-w-xs shrink-0 translate-x-full flex-col border-l border-white bg-[#121212] duration-200 hover:translate-x-0 peer-focus:translate-x-0 sm:static sm:ml-4 sm:w-auto sm:translate-x-0 sm:border-none\">\n            <div className=\"relative flex w-full items-center justify-between border-b border-white px-4 py-2 sm:hidden\">\n              <span className=\"inline-block w-12\">{logo}</span>\n              <button className=\"inline-block w-8\">\n                <XCircleIcon />\n              </button>\n            </div>\n            <ul className=\"my-4 flex w-full flex-wrap gap-2 px-4 sm:hidden\">\n              {navItems\n                .filter((item) => !item.mobileView)\n                .map((item) => (\n                  <li key={item.name} className=\"w-full\">\n                    <button className=\"flex w-full items-center justify-start gap-x-4 border border-white px-4 py-1.5 text-left hover:bg-[#ae7aff] hover:text-black focus:border-[#ae7aff] focus:bg-[#ae7aff] focus:text-black\">\n                      <span className=\"inline-block w-full max-w-[20px] group-hover:mr-4 lg:mr-4\">\n                        {item.icon}\n                      </span>\n                      <span>{item.name}</span>\n                    </button>\n                  </li>\n                ))}\n            </ul>\n\n            <div className=\"mb-8 mt-auto px-4 sm:mb-0 sm:mt-0 sm:px-0\">\n              <button className=\"flex w-full gap-4 text-left sm:items-center\">\n                <img\n                  src=\"https://images.pexels.com/photos/1115816/pexels-photo-1115816.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\"\n                  alt=\"React-Patterns\"\n                  className=\"h-16 w-16 shrink-0 rounded-full sm:h-12 sm:w-12\"\n                />\n\n                <div className=\"w-full pt-2 sm:hidden\">\n                  <h6 className=\"font-semibold\">React Patterns</h6>\n                  <p className=\"text-sm text-gray-300\">@reactpatterns</p>\n                </div>\n              </button>\n            </div>\n          </div>\n        </nav>\n      </header>\n      <div className=\"flex min-h-[calc(100vh-66px)] sm:min-h-[calc(100vh-82px)]\">\n        <aside className=\"group fixed inset-x-0 bottom-0 z-40 w-full shrink-0 border-t border-white bg-[#121212] px-2 py-2 sm:absolute sm:inset-y-0 sm:max-w-[70px] sm:border-r sm:border-t-0 sm:py-6 sm:hover:max-w-[250px] lg:sticky lg:max-w-[250px]\">\n          <ul className=\"flex justify-around gap-y-2 sm:sticky sm:top-[106px] sm:min-h-[calc(100vh-130px)] sm:flex-col\">\n            {navItems.map((item, i, arr) => (\n              <li\n                key={item.name}\n                className={classNames(\n                  item.mobileView ? \"\" : \"hidden sm:block\",\n                  arr.length - i === bottomTotalItems ? \"mt-auto\" : \"\",\n                )}\n              >\n                <button className=\"flex flex-col items-center justify-center border-white py-1 focus:text-[#ae7aff] sm:w-full sm:flex-row sm:border sm:p-1.5 sm:hover:bg-[#ae7aff] sm:hover:text-black sm:focus:border-[#ae7aff] sm:focus:bg-[#ae7aff] sm:focus:text-black sm:group-hover:justify-start sm:group-hover:px-4 lg:justify-start lg:px-4\">\n                  <span className=\"inline-block w-5 shrink-0 sm:group-hover:mr-4 lg:mr-4\">\n                    {item.icon}\n                  </span>\n                  <span className=\"block sm:hidden sm:group-hover:inline lg:inline\">\n                    {item.name}\n                  </span>\n                </button>\n              </li>\n            ))}\n          </ul>\n        </aside>\n        <section className=\"relative w-full pb-[70px] sm:ml-[70px] sm:pb-0 lg:ml-0\">\n          <div className=\"relative min-h-[150px] w-full pt-[16.28%]\">\n            <div className=\"absolute inset-0 overflow-hidden\">\n              <img\n                src=\"https://images.pexels.com/photos/1092424/pexels-photo-1092424.jpeg?auto=compress\"\n                alt=\"cover-photo\"\n              />\n            </div>\n          </div>\n          <div className=\"px-4 pb-4\">\n            <div className=\"flex flex-wrap gap-4 pb-4 pt-6\">\n              <span className=\"relative -mt-12 inline-block h-28 w-28 shrink-0 overflow-hidden rounded-full border-2\">\n                <img\n                  src=\"https://images.pexels.com/photos/1115816/pexels-photo-1115816.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\"\n                  alt=\"Channel\"\n                  className=\"h-full w-full\"\n                />\n              </span>\n\n              <div className=\"mr-auto inline-block\">\n                <h1 className=\"font-bolg text-xl\">React Patterns</h1>\n                <p className=\"text-sm text-gray-400\">@reactpatterns</p>\n                <p className=\"text-sm text-gray-400\">\n                  600k Subscribers&nbsp;&middot;&nbsp;220 Subscribed\n                </p>\n              </div>\n\n              <div className=\"inline-block\">\n                <button className=\"group/btn mr-1 flex w-full items-center gap-x-2 bg-[#ae7aff] px-3 py-2 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e] sm:w-auto\">\n                  <span className=\"inline-block w-5\">\n                    <PencilIcon strokeWidth={2} />\n                  </span>\n                  Edit\n                </button>\n              </div>\n            </div>\n\n            <ul className=\"no-scrollbar sticky top-[66px] z-[2] flex flex-row gap-x-2 overflow-auto border-b-2 border-gray-400 bg-[#121212] py-2 sm:top-[82px]\">\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-[#ae7aff] bg-white px-3 py-1.5 text-[#ae7aff]\">\n                  Videos\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Playlist\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Tweets\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Subscribed\n                </button>\n              </li>\n            </ul>\n            <div className=\"flex justify-center p-4\">\n              <div className=\"w-full max-w-sm text-center\">\n                <p className=\"mb-3 w-full\">\n                  <span className=\"inline-flex rounded-full bg-[#E4D3FF] p-2 text-[#AE7AFF]\">\n                    <PlayIcon className=\"w-6\" />\n                  </span>\n                </p>\n                <h5 className=\"mb-2 font-semibold\">No videos uploaded</h5>\n                <p>\n                  This page has yet to upload a video. Search another page in\n                  order to find more videos.\n                </p>\n                <button className=\"mt-4 inline-flex items-center gap-x-2 bg-[#ae7aff] px-3 py-2 font-semibold text-black\">\n                  <PlusIcon className=\"h-5 w-5\" strokeWidth={2} /> New video\n                </button>\n              </div>\n            </div>\n          </div>\n          {/* Modal Popup */}\n          <div className=\"absolute inset-0 z-10 bg-black/50 px-4 pb-[86px] pt-4 sm:px-14 sm:py-8\">\n            <div className=\"h-full overflow-auto border bg-[#121212]\">\n              <div className=\"flex items-center justify-between border-b p-4\">\n                <h2 className=\"text-xl font-semibold\">Upload Videos</h2>\n                <button className=\"group/btn mr-1 flex w-auto items-center gap-x-2 bg-[#ae7aff] px-3 py-2 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e]\">\n                  Save\n                </button>\n              </div>\n              <div className=\"mx-auto flex w-full max-w-3xl flex-col gap-y-4 p-4\">\n                <div className=\"w-full border-2 border-dashed px-4 py-12 text-center\">\n                  <span className=\"mb-4 inline-block w-24 rounded-full bg-[#E4D3FF] p-4 text-[#AE7AFF]\">\n                    <ArrowUpTrayIcon />\n                  </span>\n                  <h6 className=\"mb-2 font-semibold\">\n                    Drag and drop video files to upload\n                  </h6>\n                  <p className=\"text-gray-400\">\n                    Your videos will be private untill you publish them.\n                  </p>\n                  <label\n                    htmlFor=\"upload-video\"\n                    className=\"group/btn mt-4 inline-flex w-auto cursor-pointer items-center gap-x-2 bg-[#ae7aff] px-3 py-2 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e]\"\n                  >\n                    <input type=\"file\" id=\"upload-video\" className=\"sr-only\" />\n                    Select Files\n                  </label>\n                </div>\n                <div className=\"w-full\">\n                  <label htmlFor=\"thumbnail\" className=\"mb-1 inline-block\">\n                    Thumbnail<sup>*</sup>\n                  </label>\n                  <input\n                    id=\"thumbnail\"\n                    type=\"file\"\n                    className=\"w-full border p-1 file:mr-4 file:border-none file:bg-[#ae7aff] file:px-3 file:py-1.5\"\n                  />\n                </div>\n                <div className=\"w-full\">\n                  <label htmlFor=\"title\" className=\"mb-1 inline-block\">\n                    Title<sup>*</sup>\n                  </label>\n                  <input\n                    id=\"title\"\n                    type=\"text\"\n                    className=\"w-full border bg-transparent px-2 py-1 outline-none\"\n                  />\n                </div>\n                <div className=\"w-full\">\n                  <label htmlFor=\"desc\" className=\"mb-1 inline-block\">\n                    Description<sup>*</sup>\n                  </label>\n                  <textarea\n                    id=\"desc\"\n                    className=\"h-40 w-full resize-none border bg-transparent px-2 py-1 outline-none\"\n                  ></textarea>\n                </div>\n              </div>\n            </div>\n          </div>\n        </section>\n      </div>\n    </div>\n  );\n};\n\nexport default UploadVideo;\n"
  },
  {
    "path": "src/components/templates/youtube/uploaded-video.jsx",
    "content": "\"use client\";\nimport { classNames } from \"@/utils\";\nimport React from \"react\";\nimport {\n  FilmIcon,\n  MagnifyingGlassIcon,\n  PencilIcon,\n  PlayIcon,\n  PlusIcon,\n  XCircleIcon,\n  XMarkIcon,\n} from \"@heroicons/react/24/outline\";\nimport { bottomTotalItems, navItems, logo } from \"./data\";\nimport { CheckCircleIcon } from \"@heroicons/react/20/solid\";\n\nconst UploadedVideo = () => {\n  return (\n    <div className=\"h-screen overflow-y-auto bg-[#121212] text-white\">\n      <header className=\"sticky inset-x-0 top-0 z-50 w-full border-b border-white bg-[#121212] px-4\">\n        <nav className=\"mx-auto flex max-w-7xl items-center py-2\">\n          <div className=\"mr-4 w-12 shrink-0 sm:w-16\">{logo}</div>\n          <div className=\"relative mx-auto hidden w-full max-w-md overflow-hidden sm:block\">\n            <input\n              className=\"w-full border bg-transparent py-1 pl-8 pr-3 placeholder-white outline-none sm:py-2\"\n              placeholder=\"Search\"\n            />\n            <span className=\"absolute left-2.5 top-1/2 inline-block -translate-y-1/2\">\n              <MagnifyingGlassIcon className=\" h-4 w-4\" />\n            </span>\n          </div>\n          <button className=\"ml-auto sm:hidden\">\n            <MagnifyingGlassIcon className=\" h-6 w-6\" />\n          </button>\n          <button className=\"group peer ml-4 flex w-6 shrink-0 flex-wrap gap-y-1.5 sm:hidden\">\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-2/3 bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n          </button>\n          <div className=\"fixed inset-y-0 right-0 flex w-full max-w-xs shrink-0 translate-x-full flex-col border-l border-white bg-[#121212] duration-200 hover:translate-x-0 peer-focus:translate-x-0 sm:static sm:ml-4 sm:w-auto sm:translate-x-0 sm:border-none\">\n            <div className=\"relative flex w-full items-center justify-between border-b border-white px-4 py-2 sm:hidden\">\n              <span className=\"inline-block w-12\">{logo}</span>\n              <button className=\"inline-block w-8\">\n                <XCircleIcon />\n              </button>\n            </div>\n            <ul className=\"my-4 flex w-full flex-wrap gap-2 px-4 sm:hidden\">\n              {navItems\n                .filter((item) => !item.mobileView)\n                .map((item) => (\n                  <li key={item.name} className=\"w-full\">\n                    <button className=\"flex w-full items-center justify-start gap-x-4 border border-white px-4 py-1.5 text-left hover:bg-[#ae7aff] hover:text-black focus:border-[#ae7aff] focus:bg-[#ae7aff] focus:text-black\">\n                      <span className=\"inline-block w-full max-w-[20px] group-hover:mr-4 lg:mr-4\">\n                        {item.icon}\n                      </span>\n                      <span>{item.name}</span>\n                    </button>\n                  </li>\n                ))}\n            </ul>\n\n            <div className=\"mb-8 mt-auto px-4 sm:mb-0 sm:mt-0 sm:px-0\">\n              <button className=\"flex w-full gap-4 text-left sm:items-center\">\n                <img\n                  src=\"https://images.pexels.com/photos/1115816/pexels-photo-1115816.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\"\n                  alt=\"React-Patterns\"\n                  className=\"h-16 w-16 shrink-0 rounded-full sm:h-12 sm:w-12\"\n                />\n\n                <div className=\"w-full pt-2 sm:hidden\">\n                  <h6 className=\"font-semibold\">React Patterns</h6>\n                  <p className=\"text-sm text-gray-300\">@reactpatterns</p>\n                </div>\n              </button>\n            </div>\n          </div>\n        </nav>\n      </header>\n      <div className=\"flex min-h-[calc(100vh-66px)] sm:min-h-[calc(100vh-82px)]\">\n        <aside className=\"group fixed inset-x-0 bottom-0 z-40 w-full shrink-0 border-t border-white bg-[#121212] px-2 py-2 sm:absolute sm:inset-y-0 sm:max-w-[70px] sm:border-r sm:border-t-0 sm:py-6 sm:hover:max-w-[250px] lg:sticky lg:max-w-[250px]\">\n          <ul className=\"flex justify-around gap-y-2 sm:sticky sm:top-[106px] sm:min-h-[calc(100vh-130px)] sm:flex-col\">\n            {navItems.map((item, i, arr) => (\n              <li\n                key={item.name}\n                className={classNames(\n                  item.mobileView ? \"\" : \"hidden sm:block\",\n                  arr.length - i === bottomTotalItems ? \"mt-auto\" : \"\",\n                )}\n              >\n                <button className=\"flex flex-col items-center justify-center border-white py-1 focus:text-[#ae7aff] sm:w-full sm:flex-row sm:border sm:p-1.5 sm:hover:bg-[#ae7aff] sm:hover:text-black sm:focus:border-[#ae7aff] sm:focus:bg-[#ae7aff] sm:focus:text-black sm:group-hover:justify-start sm:group-hover:px-4 lg:justify-start lg:px-4\">\n                  <span className=\"inline-block w-5 shrink-0 sm:group-hover:mr-4 lg:mr-4\">\n                    {item.icon}\n                  </span>\n                  <span className=\"block sm:hidden sm:group-hover:inline lg:inline\">\n                    {item.name}\n                  </span>\n                </button>\n              </li>\n            ))}\n          </ul>\n        </aside>\n        <section className=\"relative w-full pb-[70px] sm:ml-[70px] sm:pb-0 lg:ml-0\">\n          <div className=\"relative min-h-[150px] w-full pt-[16.28%]\">\n            <div className=\"absolute inset-0 overflow-hidden\">\n              <img\n                src=\"https://images.pexels.com/photos/1092424/pexels-photo-1092424.jpeg?auto=compress\"\n                alt=\"cover-photo\"\n              />\n            </div>\n          </div>\n          <div className=\"px-4 pb-4\">\n            <div className=\"flex flex-wrap gap-4 pb-4 pt-6\">\n              <span className=\"relative -mt-12 inline-block h-28 w-28 shrink-0 overflow-hidden rounded-full border-2\">\n                <img\n                  src=\"https://images.pexels.com/photos/1115816/pexels-photo-1115816.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\"\n                  alt=\"Channel\"\n                  className=\"h-full w-full\"\n                />\n              </span>\n\n              <div className=\"mr-auto inline-block\">\n                <h1 className=\"font-bolg text-xl\">React Patterns</h1>\n                <p className=\"text-sm text-gray-400\">@reactpatterns</p>\n                <p className=\"text-sm text-gray-400\">\n                  600k Subscribers&nbsp;&middot;&nbsp;220 Subscribed\n                </p>\n              </div>\n\n              <div className=\"inline-block\">\n                <button className=\"group/btn mr-1 flex w-full items-center gap-x-2 bg-[#ae7aff] px-3 py-2 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e] sm:w-auto\">\n                  <span className=\"inline-block w-5\">\n                    <PencilIcon strokeWidth={2} />\n                  </span>\n                  Edit\n                </button>\n              </div>\n            </div>\n\n            <ul className=\"no-scrollbar sticky top-[66px] z-[2] flex flex-row gap-x-2 overflow-auto border-b-2 border-gray-400 bg-[#121212] py-2 sm:top-[82px]\">\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-[#ae7aff] bg-white px-3 py-1.5 text-[#ae7aff]\">\n                  Videos\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Playlist\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Tweets\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Subscribed\n                </button>\n              </li>\n            </ul>\n            <div className=\"flex justify-center p-4\">\n              <div className=\"w-full max-w-sm text-center\">\n                <p className=\"mb-3 w-full\">\n                  <span className=\"inline-flex rounded-full bg-[#E4D3FF] p-2 text-[#AE7AFF]\">\n                    <PlayIcon className=\"w-6\" />\n                  </span>\n                </p>\n                <h5 className=\"mb-2 font-semibold\">No videos uploaded</h5>\n                <p>\n                  This page has yet to upload a video. Search another page in\n                  order to find more videos.\n                </p>\n                <button className=\"mt-4 inline-flex items-center gap-x-2 bg-[#ae7aff] px-3 py-2 font-semibold text-black\">\n                  <PlusIcon className=\"h-5 w-5\" strokeWidth={2} /> New video\n                </button>\n              </div>\n            </div>\n          </div>\n          {/* Modal Popup */}\n          <div className=\"absolute inset-x-0 top-0 z-10 flex h-[calc(100vh-66px)] items-center justify-center bg-black/50 px-4 pb-[86px] pt-4 sm:h-[calc(100vh-82px)] sm:px-14 sm:py-8\">\n            <div className=\"w-full max-w-lg overflow-auto rounded-lg border border-gray-700 bg-[#121212] p-4\">\n              <div className=\"mb-4 flex items-start justify-between\">\n                <h2 className=\"text-xl font-semibold\">\n                  Uploaded Video\n                  <span className=\"block text-sm text-gray-300\">\n                    Track your video uploading process.\n                  </span>\n                </h2>\n                <button className=\"h-6 w-6\">\n                  <XMarkIcon />\n                </button>\n              </div>\n              <div className=\"mb-6 flex gap-x-2 border p-3\">\n                <div className=\"w-8 shrink-0\">\n                  <span className=\"inline-block w-full rounded-full bg-[#E4D3FF] p-1 text-[#AE7AFF]\">\n                    <FilmIcon />\n                  </span>\n                </div>\n                <div className=\"flex flex-col\">\n                  <h6>Dashboard prototype recording.mp4</h6>\n                  <p className=\"text-sm\">16 MB</p>\n                  <div class=\"mt-2 flex items-center\">\n                    <span className=\"mr-2 inline-block w-6 text-[#ae7aff]\">\n                      <CheckCircleIcon />\n                    </span>\n                    Uploaded Successfully\n                  </div>\n                </div>\n              </div>\n              <div className=\"grid grid-cols-2 gap-4\">\n                <button className=\"border px-4 py-3\">Cancel</button>\n                <button className=\"bg-[#ae7aff] px-4 py-3 text-black disabled:bg-[#E4D3FF]\">\n                  Finish\n                </button>\n              </div>\n            </div>\n          </div>\n        </section>\n      </div>\n    </div>\n  );\n};\n\nexport default UploadedVideo;\n"
  },
  {
    "path": "src/components/templates/youtube/uploading-video.jsx",
    "content": "\"use client\";\nimport { classNames } from \"@/utils\";\nimport React from \"react\";\nimport {\n  FilmIcon,\n  MagnifyingGlassIcon,\n  PencilIcon,\n  PlayIcon,\n  PlusIcon,\n  XCircleIcon,\n  XMarkIcon,\n} from \"@heroicons/react/24/outline\";\nimport { bottomTotalItems, navItems, logo } from \"./data\";\n\nconst UploadingVideo = () => {\n  return (\n    <div className=\"h-screen overflow-y-auto bg-[#121212] text-white\">\n      <header className=\"sticky inset-x-0 top-0 z-50 w-full border-b border-white bg-[#121212] px-4\">\n        <nav className=\"mx-auto flex max-w-7xl items-center py-2\">\n          <div className=\"mr-4 w-12 shrink-0 sm:w-16\">{logo}</div>\n          <div className=\"relative mx-auto hidden w-full max-w-md overflow-hidden sm:block\">\n            <input\n              className=\"w-full border bg-transparent py-1 pl-8 pr-3 placeholder-white outline-none sm:py-2\"\n              placeholder=\"Search\"\n            />\n            <span className=\"absolute left-2.5 top-1/2 inline-block -translate-y-1/2\">\n              <MagnifyingGlassIcon className=\" h-4 w-4\" />\n            </span>\n          </div>\n          <button className=\"ml-auto sm:hidden\">\n            <MagnifyingGlassIcon className=\" h-6 w-6\" />\n          </button>\n          <button className=\"group peer ml-4 flex w-6 shrink-0 flex-wrap gap-y-1.5 sm:hidden\">\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-2/3 bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n          </button>\n          <div className=\"fixed inset-y-0 right-0 flex w-full max-w-xs shrink-0 translate-x-full flex-col border-l border-white bg-[#121212] duration-200 hover:translate-x-0 peer-focus:translate-x-0 sm:static sm:ml-4 sm:w-auto sm:translate-x-0 sm:border-none\">\n            <div className=\"relative flex w-full items-center justify-between border-b border-white px-4 py-2 sm:hidden\">\n              <span className=\"inline-block w-12\">{logo}</span>\n              <button className=\"inline-block w-8\">\n                <XCircleIcon />\n              </button>\n            </div>\n            <ul className=\"my-4 flex w-full flex-wrap gap-2 px-4 sm:hidden\">\n              {navItems\n                .filter((item) => !item.mobileView)\n                .map((item) => (\n                  <li key={item.name} className=\"w-full\">\n                    <button className=\"flex w-full items-center justify-start gap-x-4 border border-white px-4 py-1.5 text-left hover:bg-[#ae7aff] hover:text-black focus:border-[#ae7aff] focus:bg-[#ae7aff] focus:text-black\">\n                      <span className=\"inline-block w-full max-w-[20px] group-hover:mr-4 lg:mr-4\">\n                        {item.icon}\n                      </span>\n                      <span>{item.name}</span>\n                    </button>\n                  </li>\n                ))}\n            </ul>\n\n            <div className=\"mb-8 mt-auto px-4 sm:mb-0 sm:mt-0 sm:px-0\">\n              <button className=\"flex w-full gap-4 text-left sm:items-center\">\n                <img\n                  src=\"https://images.pexels.com/photos/1115816/pexels-photo-1115816.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\"\n                  alt=\"React-Patterns\"\n                  className=\"h-16 w-16 shrink-0 rounded-full sm:h-12 sm:w-12\"\n                />\n\n                <div className=\"w-full pt-2 sm:hidden\">\n                  <h6 className=\"font-semibold\">React Patterns</h6>\n                  <p className=\"text-sm text-gray-300\">@reactpatterns</p>\n                </div>\n              </button>\n            </div>\n          </div>\n        </nav>\n      </header>\n      <div className=\"flex min-h-[calc(100vh-66px)] sm:min-h-[calc(100vh-82px)]\">\n        <aside className=\"group fixed inset-x-0 bottom-0 z-40 w-full shrink-0 border-t border-white bg-[#121212] px-2 py-2 sm:absolute sm:inset-y-0 sm:max-w-[70px] sm:border-r sm:border-t-0 sm:py-6 sm:hover:max-w-[250px] lg:sticky lg:max-w-[250px]\">\n          <ul className=\"flex justify-around gap-y-2 sm:sticky sm:top-[106px] sm:min-h-[calc(100vh-130px)] sm:flex-col\">\n            {navItems.map((item, i, arr) => (\n              <li\n                key={item.name}\n                className={classNames(\n                  item.mobileView ? \"\" : \"hidden sm:block\",\n                  arr.length - i === bottomTotalItems ? \"mt-auto\" : \"\",\n                )}\n              >\n                <button className=\"flex flex-col items-center justify-center border-white py-1 focus:text-[#ae7aff] sm:w-full sm:flex-row sm:border sm:p-1.5 sm:hover:bg-[#ae7aff] sm:hover:text-black sm:focus:border-[#ae7aff] sm:focus:bg-[#ae7aff] sm:focus:text-black sm:group-hover:justify-start sm:group-hover:px-4 lg:justify-start lg:px-4\">\n                  <span className=\"inline-block w-5 shrink-0 sm:group-hover:mr-4 lg:mr-4\">\n                    {item.icon}\n                  </span>\n                  <span className=\"block sm:hidden sm:group-hover:inline lg:inline\">\n                    {item.name}\n                  </span>\n                </button>\n              </li>\n            ))}\n          </ul>\n        </aside>\n        <section className=\"relative w-full pb-[70px] sm:ml-[70px] sm:pb-0 lg:ml-0\">\n          <div className=\"relative min-h-[150px] w-full pt-[16.28%]\">\n            <div className=\"absolute inset-0 overflow-hidden\">\n              <img\n                src=\"https://images.pexels.com/photos/1092424/pexels-photo-1092424.jpeg?auto=compress\"\n                alt=\"cover-photo\"\n              />\n            </div>\n          </div>\n          <div className=\"px-4 pb-4\">\n            <div className=\"flex flex-wrap gap-4 pb-4 pt-6\">\n              <span className=\"relative -mt-12 inline-block h-28 w-28 shrink-0 overflow-hidden rounded-full border-2\">\n                <img\n                  src=\"https://images.pexels.com/photos/1115816/pexels-photo-1115816.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\"\n                  alt=\"Channel\"\n                  className=\"h-full w-full\"\n                />\n              </span>\n\n              <div className=\"mr-auto inline-block\">\n                <h1 className=\"font-bolg text-xl\">React Patterns</h1>\n                <p className=\"text-sm text-gray-400\">@reactpatterns</p>\n                <p className=\"text-sm text-gray-400\">\n                  600k Subscribers&nbsp;&middot;&nbsp;220 Subscribed\n                </p>\n              </div>\n\n              <div className=\"inline-block\">\n                <button className=\"group/btn mr-1 flex w-full items-center gap-x-2 bg-[#ae7aff] px-3 py-2 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e] sm:w-auto\">\n                  <span className=\"inline-block w-5\">\n                    <PencilIcon strokeWidth={2} />\n                  </span>\n                  Edit\n                </button>\n              </div>\n            </div>\n\n            <ul className=\"no-scrollbar sticky top-[66px] z-[2] flex flex-row gap-x-2 overflow-auto border-b-2 border-gray-400 bg-[#121212] py-2 sm:top-[82px]\">\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-[#ae7aff] bg-white px-3 py-1.5 text-[#ae7aff]\">\n                  Videos\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Playlist\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Tweets\n                </button>\n              </li>\n              <li className=\"w-full\">\n                <button className=\"w-full border-b-2 border-transparent px-3 py-1.5 text-gray-400\">\n                  Subscribed\n                </button>\n              </li>\n            </ul>\n            <div className=\"flex justify-center p-4\">\n              <div className=\"w-full max-w-sm text-center\">\n                <p className=\"mb-3 w-full\">\n                  <span className=\"inline-flex rounded-full bg-[#E4D3FF] p-2 text-[#AE7AFF]\">\n                    <PlayIcon className=\"w-6\" />\n                  </span>\n                </p>\n                <h5 className=\"mb-2 font-semibold\">No videos uploaded</h5>\n                <p>\n                  This page has yet to upload a video. Search another page in\n                  order to find more videos.\n                </p>\n                <button className=\"mt-4 inline-flex items-center gap-x-2 bg-[#ae7aff] px-3 py-2 font-semibold text-black\">\n                  <PlusIcon className=\"h-5 w-5\" strokeWidth={2} /> New video\n                </button>\n              </div>\n            </div>\n          </div>\n          {/* Modal Popup */}\n          <div className=\"absolute inset-x-0 top-0 z-10 flex h-[calc(100vh-66px)] items-center justify-center bg-black/50 px-4 pb-[86px] pt-4 sm:h-[calc(100vh-82px)] sm:px-14 sm:py-8\">\n            <div className=\"w-full max-w-lg overflow-auto rounded-lg border border-gray-700 bg-[#121212] p-4\">\n              <div className=\"mb-4 flex items-start justify-between\">\n                <h2 className=\"text-xl font-semibold\">\n                  Uploading Video...\n                  <span className=\"block text-sm text-gray-300\">\n                    Track your video uploading process.\n                  </span>\n                </h2>\n                <button className=\"h-6 w-6\">\n                  <XMarkIcon />\n                </button>\n              </div>\n              <div className=\"mb-6 flex gap-x-2 border p-3\">\n                <div className=\"w-8 shrink-0\">\n                  <span className=\"inline-block w-full rounded-full bg-[#E4D3FF] p-1 text-[#AE7AFF]\">\n                    <FilmIcon />\n                  </span>\n                </div>\n                <div className=\"flex flex-col\">\n                  <h6>Dashboard prototype recording.mp4</h6>\n                  <p className=\"text-sm\">16 MB</p>\n                  <div class=\"mt-2\">\n                    <svg\n                      aria-hidden=\"true\"\n                      role=\"status\"\n                      class=\"mr-2 inline-block h-5 w-5 animate-spin text-gray-200\"\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=\"currentColor\"\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=\"#AE7AFF\"\n                      />\n                    </svg>\n                    Uploading...\n                  </div>\n                </div>\n              </div>\n              <div className=\"grid grid-cols-2 gap-4\">\n                <button className=\"border px-4 py-3\">Cancel</button>\n                <button\n                  className=\"bg-[#ae7aff] px-4 py-3 text-black disabled:bg-[#E4D3FF]\"\n                  disabled\n                >\n                  Finish\n                </button>\n              </div>\n            </div>\n          </div>\n        </section>\n      </div>\n    </div>\n  );\n};\n\nexport default UploadingVideo;\n"
  },
  {
    "path": "src/components/templates/youtube/video-cards.jsx",
    "content": "\"use client\";\nimport { classNames } from \"@/utils\";\nimport React from \"react\";\nimport { MagnifyingGlassIcon, XCircleIcon } from \"@heroicons/react/24/outline\";\nimport { bottomTotalItems, navItems, logo, videos } from \"./data\";\n\nconst VideoCards = () => {\n  return (\n    <div className=\"h-screen overflow-y-auto bg-[#121212] text-white\">\n      <header className=\"sticky inset-x-0 top-0 z-50 w-full border-b border-white bg-[#121212] px-4\">\n        <nav className=\"mx-auto flex max-w-7xl items-center py-2\">\n          <div className=\"mr-4 w-12 shrink-0 sm:w-16\">{logo}</div>\n          <div className=\"relative mx-auto hidden w-full max-w-md overflow-hidden sm:block\">\n            <input\n              className=\"w-full border bg-transparent py-1 pl-8 pr-3 placeholder-white outline-none sm:py-2\"\n              placeholder=\"Search\"\n            />\n            <span className=\"absolute left-2.5 top-1/2 inline-block -translate-y-1/2\">\n              <MagnifyingGlassIcon className=\" h-4 w-4\" />\n            </span>\n          </div>\n          <button className=\"ml-auto sm:hidden\">\n            <MagnifyingGlassIcon className=\" h-6 w-6\" />\n          </button>\n          <button className=\"group peer ml-4 flex w-6 shrink-0 flex-wrap gap-y-1.5 sm:hidden\">\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-2/3 bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n          </button>\n          <div className=\"fixed inset-y-0 right-0 flex w-full max-w-xs shrink-0 translate-x-full flex-col border-l border-white bg-[#121212] duration-200 hover:translate-x-0 peer-focus:translate-x-0 sm:static sm:ml-4 sm:w-auto sm:translate-x-0 sm:border-none\">\n            <div className=\"relative flex w-full items-center justify-between border-b border-white px-4 py-2 sm:hidden\">\n              <span className=\"inline-block w-12\">{logo}</span>\n              <button className=\"inline-block w-8\">\n                <XCircleIcon />\n              </button>\n            </div>\n            <ul className=\"my-4 flex w-full flex-wrap gap-2 px-4 sm:hidden\">\n              {navItems\n                .filter((item) => !item.mobileView)\n                .map((item) => (\n                  <li key={item.name} className=\"w-full\">\n                    <button className=\"flex w-full items-center justify-start gap-x-4 border border-white px-4 py-1.5 text-left hover:bg-[#ae7aff] hover:text-black focus:border-[#ae7aff] focus:bg-[#ae7aff] focus:text-black\">\n                      <span className=\"inline-block w-full max-w-[20px] group-hover:mr-4 lg:mr-4\">\n                        {item.icon}\n                      </span>\n                      <span>{item.name}</span>\n                    </button>\n                  </li>\n                ))}\n            </ul>\n\n            <div className=\"mb-8 mt-auto flex w-full flex-wrap gap-4 px-4 sm:mb-0 sm:mt-0 sm:items-center sm:px-0\">\n              <button className=\"w-full bg-[#383737] px-3 py-2 hover:bg-[#4f4e4e] sm:w-auto sm:bg-transparent\">\n                Log in\n              </button>\n              <button className=\"mr-1 w-full bg-[#ae7aff] px-3 py-2 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e] sm:w-auto\">\n                Sign up\n              </button>\n            </div>\n          </div>\n        </nav>\n      </header>\n      <div className=\"flex min-h-[calc(100vh-66px)] sm:min-h-[calc(100vh-82px)]\">\n        <aside className=\"group fixed inset-x-0 bottom-0 z-40 w-full shrink-0 border-t border-white bg-[#121212] px-2 py-2 sm:absolute sm:inset-y-0 sm:max-w-[70px] sm:border-r sm:border-t-0 sm:py-6 sm:hover:max-w-[250px] lg:sticky lg:max-w-[250px]\">\n          <ul className=\"flex justify-around gap-y-2 sm:sticky sm:top-[106px] sm:min-h-[calc(100vh-130px)] sm:flex-col\">\n            {navItems.map((item, i, arr) => (\n              <li\n                key={item.name}\n                className={classNames(\n                  item.mobileView ? \"\" : \"hidden sm:block\",\n                  arr.length - i === bottomTotalItems ? \"mt-auto\" : \"\",\n                )}\n              >\n                <button className=\"flex flex-col items-center justify-center border-white py-1 focus:text-[#ae7aff] sm:w-full sm:flex-row sm:border sm:p-1.5 sm:hover:bg-[#ae7aff] sm:hover:text-black sm:focus:border-[#ae7aff] sm:focus:bg-[#ae7aff] sm:focus:text-black sm:group-hover:justify-start sm:group-hover:px-4 lg:justify-start lg:px-4\">\n                  <span className=\"inline-block w-5 shrink-0 sm:group-hover:mr-4 lg:mr-4\">\n                    {item.icon}\n                  </span>\n                  <span className=\"block sm:hidden sm:group-hover:inline lg:inline\">\n                    {item.name}\n                  </span>\n                </button>\n              </li>\n            ))}\n          </ul>\n        </aside>\n        <section className=\"w-full pb-[70px] sm:ml-[70px] sm:pb-0 lg:ml-0\">\n          <div className=\"grid grid-cols-[repeat(auto-fit,_minmax(300px,_1fr))] gap-4 p-4\">\n            {videos\n              .filter((video) => video.isPublished)\n              .map((video) => (\n                <div key={video.id} className=\"w-full\">\n                  <div className=\"relative mb-2 w-full pt-[56%]\">\n                    <div className=\"absolute inset-0\">\n                      <img\n                        src={video.thumbnail}\n                        alt={video.title}\n                        className=\"h-full w-full\"\n                      />\n                    </div>\n                    <span className=\"absolute bottom-1 right-1 inline-block rounded bg-black px-1.5 text-sm\">\n                      {video.duration}\n                    </span>\n                  </div>\n                  <div className=\"flex gap-x-2\">\n                    <div className=\"h-10 w-10 shrink-0\">\n                      <img\n                        src={video.owner.avatar}\n                        alt={video.owner.username}\n                        className=\"h-full w-full rounded-full\"\n                      />\n                    </div>\n                    <div className=\"w-full\">\n                      <h6 className=\"mb-1 font-semibold\">{video.title}</h6>\n                      <p className=\"flex text-sm text-gray-200\">\n                        {video.views}&nbsp;Views &middot; {video.time}\n                      </p>\n                      <p className=\"text-sm text-gray-200\">\n                        {video.owner.fullName}\n                      </p>\n                    </div>\n                  </div>\n                </div>\n              ))}\n          </div>\n        </section>\n      </div>\n    </div>\n  );\n};\n\nexport default VideoCards;\n"
  },
  {
    "path": "src/components/templates/youtube/video-detail.jsx",
    "content": "\"use client\";\nimport { classNames } from \"@/utils\";\nimport React from \"react\";\nimport {\n  CheckIcon,\n  FolderPlusIcon,\n  HandThumbDownIcon,\n  HandThumbUpIcon,\n  MagnifyingGlassIcon,\n  UserPlusIcon,\n  XCircleIcon,\n} from \"@heroicons/react/24/outline\";\nimport { bottomTotalItems, navItems, logo, videos, videoDetails } from \"./data\";\n\nconst VideoList = () => {\n  return (\n    <div className=\"h-screen overflow-y-auto bg-[#121212] text-white\">\n      <header className=\"sticky inset-x-0 top-0 z-50 w-full border-b border-white bg-[#121212] px-4\">\n        <nav className=\"mx-auto flex max-w-7xl items-center py-2\">\n          <div className=\"mr-4 w-12 shrink-0 sm:w-16\">{logo}</div>\n          <div className=\"relative mx-auto hidden w-full max-w-md overflow-hidden sm:block\">\n            <input\n              className=\"w-full border bg-transparent py-1 pl-8 pr-3 placeholder-white outline-none sm:py-2\"\n              placeholder=\"Search\"\n            />\n            <span className=\"absolute left-2.5 top-1/2 inline-block -translate-y-1/2\">\n              <MagnifyingGlassIcon className=\" h-4 w-4\" />\n            </span>\n          </div>\n          <button className=\"ml-auto sm:hidden\">\n            <MagnifyingGlassIcon className=\" h-6 w-6\" />\n          </button>\n          <button className=\"group peer ml-4 flex w-6 shrink-0 flex-wrap gap-y-1.5 sm:hidden\">\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-2/3 bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n          </button>\n          <div className=\"fixed inset-y-0 right-0 flex w-full max-w-xs shrink-0 translate-x-full flex-col border-l border-white bg-[#121212] duration-200 hover:translate-x-0 peer-focus:translate-x-0 sm:static sm:ml-4 sm:w-auto sm:translate-x-0 sm:border-none\">\n            <div className=\"relative flex w-full items-center justify-between border-b border-white px-4 py-2 sm:hidden\">\n              <span className=\"inline-block w-12\">{logo}</span>\n              <button className=\"inline-block w-8\">\n                <XCircleIcon />\n              </button>\n            </div>\n            <ul className=\"my-4 flex w-full flex-wrap gap-2 px-4 sm:hidden\">\n              {navItems\n                .filter((item) => !item.mobileView)\n                .map((item) => (\n                  <li key={item.name} className=\"w-full\">\n                    <button className=\"flex w-full items-center justify-start gap-x-4 border border-white px-4 py-1.5 text-left hover:bg-[#ae7aff] hover:text-black focus:border-[#ae7aff] focus:bg-[#ae7aff] focus:text-black\">\n                      <span className=\"inline-block w-full max-w-[20px] group-hover:mr-4 lg:mr-4\">\n                        {item.icon}\n                      </span>\n                      <span>{item.name}</span>\n                    </button>\n                  </li>\n                ))}\n            </ul>\n\n            <div className=\"mb-8 mt-auto flex w-full flex-wrap gap-4 px-4 sm:mb-0 sm:mt-0 sm:items-center sm:px-0\">\n              <button className=\"w-full bg-[#383737] px-3 py-2 hover:bg-[#4f4e4e] sm:w-auto sm:bg-transparent\">\n                Log in\n              </button>\n              <button className=\"mr-1 w-full bg-[#ae7aff] px-3 py-2 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e] sm:w-auto\">\n                Sign up\n              </button>\n            </div>\n          </div>\n        </nav>\n      </header>\n      <div className=\"flex min-h-[calc(100vh-66px)] sm:min-h-[calc(100vh-82px)]\">\n        <aside className=\"group fixed inset-x-0 bottom-0 z-40 w-full shrink-0 border-t border-white bg-[#121212] px-2 py-2 sm:absolute sm:inset-y-0 sm:max-w-[70px] sm:border-r sm:border-t-0 sm:py-6 sm:hover:max-w-[250px]\">\n          <ul className=\"flex justify-around gap-y-2 sm:sticky sm:top-[106px] sm:min-h-[calc(100vh-130px)] sm:flex-col\">\n            {navItems.map((item, i, arr) => (\n              <li\n                key={item.name}\n                className={classNames(\n                  item.mobileView ? \"\" : \"hidden sm:block\",\n                  arr.length - i === bottomTotalItems ? \"mt-auto\" : \"\",\n                )}\n              >\n                <button className=\"flex flex-col items-center justify-center border-white py-1 focus:text-[#ae7aff] sm:w-full sm:flex-row sm:border sm:p-1.5 sm:hover:bg-[#ae7aff] sm:hover:text-black sm:focus:border-[#ae7aff] sm:focus:bg-[#ae7aff] sm:focus:text-black sm:group-hover:justify-start sm:group-hover:px-4 lg:justify-start lg:px-4\">\n                  <span className=\"inline-block w-5 shrink-0 sm:group-hover:mr-4 lg:mr-4\">\n                    {item.icon}\n                  </span>\n                  <span className=\"block sm:hidden sm:group-hover:inline\">\n                    {item.name}\n                  </span>\n                </button>\n              </li>\n            ))}\n          </ul>\n        </aside>\n        <section className=\"w-full pb-[70px] sm:ml-[70px] sm:pb-0\">\n          <div className=\"flex w-full flex-wrap gap-4 p-4 lg:flex-nowrap\">\n            <div className=\"col-span-12 w-full\">\n              <div className=\"relative mb-4 w-full pt-[56%]\">\n                <div className=\"absolute inset-0\">\n                  <video className=\"h-full w-full\" controls autoPlay muted>\n                    <source\n                      src={videoDetails.videoFile}\n                      type={videoDetails.videoType}\n                    />\n                  </video>\n                </div>\n              </div>\n              <div\n                className=\"group mb-4 w-full rounded-lg border p-4 duration-200 hover:bg-white/5 focus:bg-white/5\"\n                role=\"button\"\n                tabIndex={0}\n              >\n                <div className=\"flex flex-wrap gap-y-2\">\n                  <div className=\"w-full md:w-1/2 lg:w-full xl:w-1/2\">\n                    <h1 className=\"text-lg font-bold\">{videoDetails.title}</h1>\n                    <p className=\"flex text-sm text-gray-200\">\n                      {videoDetails.views}&nbsp;Views &middot;\n                      {videoDetails.createdAt}\n                    </p>\n                  </div>\n                  <div className=\"w-full md:w-1/2 lg:w-full xl:w-1/2\">\n                    <div className=\"flex items-center justify-between gap-x-4 md:justify-end lg:justify-between xl:justify-end\">\n                      <div className=\"flex overflow-hidden rounded-lg border\">\n                        <button\n                          className=\"group/btn flex items-center gap-x-2 border-r border-gray-700 px-4 py-1.5 after:content-[attr(data-like)] hover:bg-white/10 focus:after:content-[attr(data-like-alt)]\"\n                          data-like={videoDetails.likeCount}\n                          data-like-alt={\n                            videoDetails.liked\n                              ? videoDetails.likeCount - 1\n                              : videoDetails.likeCount + 1\n                          }\n                        >\n                          <span\n                            className={`inline-block w-5 ${\n                              videoDetails.liked\n                                ? \"text-[#ae7aff] group-focus/btn:text-inherit\"\n                                : \"group-focus/btn:text-[#ae7aff]\"\n                            }`}\n                          >\n                            <HandThumbUpIcon />\n                          </span>\n                        </button>\n                        <button\n                          className=\"group/btn flex items-center gap-x-2 px-4 py-1.5 after:content-[attr(data-like)] hover:bg-white/10 focus:after:content-[attr(data-like-alt)]\"\n                          data-like={videoDetails.dislikeCount}\n                          data-like-alt={\n                            videoDetails.disliked\n                              ? videoDetails.dislikeCount - 1\n                              : videoDetails.dislikeCount + 1\n                          }\n                        >\n                          <span\n                            className={`inline-block w-5 ${\n                              videoDetails.disliked\n                                ? \"text-[#ae7aff] group-focus/btn:text-inherit\"\n                                : \"group-focus/btn:text-[#ae7aff]\"\n                            }`}\n                          >\n                            <HandThumbDownIcon />\n                          </span>\n                        </button>\n                      </div>\n                      <div className=\"relative block\">\n                        <button className=\"peer flex items-center gap-x-2 rounded-lg bg-white px-4 py-1.5 text-black\">\n                          <span className=\"inline-block w-5\">\n                            <FolderPlusIcon />\n                          </span>\n                          Save\n                        </button>\n                        <div className=\"absolute right-0 top-full z-10 hidden w-64 overflow-hidden rounded-lg bg-[#121212] p-4 shadow shadow-slate-50/30 hover:block peer-focus:block\">\n                          <h3 className=\"mb-4 text-center text-lg font-semibold\">\n                            Save to playlist\n                          </h3>\n                          <ul className=\"mb-4\">\n                            {[\n                              \"Collections\",\n                              \"JavaScript Basics\",\n                              \"C++ Tuts\",\n                              \"Feel Good Music\",\n                              \"Ed Sheeran\",\n                              \"Python\",\n                            ].map((playlistName) => (\n                              <li key={playlistName} className=\"mb-2 last:mb-0\">\n                                <label\n                                  className=\"group/label inline-flex cursor-pointer items-center gap-x-3\"\n                                  htmlFor={playlistName + \"-checkbox\"}\n                                >\n                                  <input\n                                    type=\"checkbox\"\n                                    className=\"peer hidden\"\n                                    id={playlistName + \"-checkbox\"}\n                                  />\n                                  <span className=\"inline-flex h-4 w-4 items-center justify-center rounded-[4px] border border-transparent bg-white text-white group-hover/label:border-[#ae7aff] peer-checked:border-[#ae7aff] peer-checked:text-[#ae7aff]\">\n                                    <CheckIcon strokeWidth={3} />\n                                  </span>\n                                  {playlistName}\n                                </label>\n                              </li>\n                            ))}\n                          </ul>\n                          <div className=\"flex flex-col\">\n                            <label\n                              htmlFor=\"playlist-name\"\n                              className=\"mb-1 inline-block cursor-pointer\"\n                            >\n                              Name\n                            </label>\n                            <input\n                              className=\"w-full rounded-lg border border-transparent bg-white px-3 py-2 text-black outline-none focus:border-[#ae7aff]\"\n                              id=\"playlist-name\"\n                              placeholder=\"Enter playlist name\"\n                            />\n                            <button className=\"mx-auto mt-4 rounded-lg bg-[#ae7aff] px-4 py-2 text-black\">\n                              Create new playlist\n                            </button>\n                          </div>\n                        </div>\n                      </div>\n                    </div>\n                  </div>\n                </div>\n                <div className=\"mt-4 flex items-center justify-between\">\n                  <div className=\"flex items-center gap-x-4\">\n                    <div className=\"mt-2 h-12 w-12 shrink-0\">\n                      <img\n                        src={videoDetails.owner.avatar}\n                        alt={videoDetails.owner.username}\n                        className=\"h-full w-full rounded-full\"\n                      />\n                    </div>\n                    <div className=\"block\">\n                      <p className=\"text-gray-200\">\n                        {videoDetails.owner.fullName}\n                      </p>\n                      <p className=\"text-sm text-gray-400\">\n                        {videoDetails.owner.subscribers} Subscribers\n                      </p>\n                    </div>\n                  </div>\n                  <div className=\"block\">\n                    <button className=\"group/btn mr-1 flex w-full items-center gap-x-2 bg-[#ae7aff] px-3 py-2 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e] sm:w-auto\">\n                      <span className=\"inline-block w-5\">\n                        <UserPlusIcon strokeWidth={2} />\n                      </span>\n                      <span className=\"group-focus/btn:hidden\">Subscribe</span>\n                      <span className=\"hidden group-focus/btn:block\">\n                        Subscribed\n                      </span>\n                    </button>\n                  </div>\n                </div>\n                <hr className=\"my-4 border-white\" />\n                <div className=\"h-5 overflow-hidden group-focus:h-auto\">\n                  <p className=\"text-sm\">{videoDetails.description}</p>\n                </div>\n              </div>\n              <button className=\"peer w-full rounded-lg border p-4 text-left duration-200 hover:bg-white/5 focus:bg-white/5 sm:hidden\">\n                <h6 className=\"font-semibold\">\n                  {videoDetails.commentCount} Comments...\n                </h6>\n              </button>\n              <div className=\"fixed inset-x-0 top-full z-[60] h-[calc(100%-69px)] overflow-auto rounded-lg border bg-[#121212] p-4 duration-200 hover:top-[67px] peer-focus:top-[67px] sm:static sm:h-auto sm:max-h-[500px] lg:max-h-none\">\n                <div className=\"block\">\n                  <h6 className=\"mb-4 font-semibold\">\n                    {videoDetails.commentCount} Comments\n                  </h6>\n                  <input\n                    type=\"text\"\n                    className=\"w-full rounded-lg border bg-transparent px-2 py-1 placeholder-white\"\n                    placeholder=\"Add a Comment\"\n                  />\n                </div>\n                <hr className=\"my-4 border-white\" />\n                {videoDetails.comments.map((comment) => (\n                  <div key={comment.id}>\n                    <div className=\"flex gap-x-4\">\n                      <div className=\"mt-2 h-11 w-11 shrink-0\">\n                        <img\n                          src={comment.owner.avatar}\n                          alt={comment.owner.username}\n                          className=\"h-full w-full rounded-full\"\n                        />\n                      </div>\n                      <div className=\"block\">\n                        <p className=\"flex items-center text-gray-200\">\n                          {comment.owner.fullName}&nbsp;&middot;&nbsp;\n                          <span className=\"text-sm\">{comment.createdAt}</span>\n                        </p>\n                        <p className=\"text-sm text-gray-200\">\n                          @{comment.owner.username}\n                        </p>\n                        <p className=\"mt-3 text-sm\">{comment.content}</p>\n                      </div>\n                    </div>\n\n                    <hr className=\"my-4 border-white\" />\n                  </div>\n                ))}\n              </div>\n            </div>\n            <div className=\"col-span-12 flex w-full shrink-0 flex-col gap-3 lg:w-[350px] xl:w-[400px]\">\n              {videos\n                .filter((video) => video.isPublished)\n                .map((video) => (\n                  <div\n                    key={video.id}\n                    className=\"w-full gap-x-2 border pr-2 md:flex\"\n                  >\n                    <div className=\"relative mb-2 w-full md:mb-0 md:w-5/12\">\n                      <div className=\"w-full pt-[56%]\">\n                        <div className=\"absolute inset-0\">\n                          <img\n                            src={video.thumbnail}\n                            alt={video.title}\n                            className=\"h-full w-full\"\n                          />\n                        </div>\n                        <span className=\"absolute bottom-1 right-1 inline-block rounded bg-black px-1.5 text-sm\">\n                          {video.duration}\n                        </span>\n                      </div>\n                    </div>\n                    <div className=\"flex gap-x-2 px-2 pb-4 pt-1 md:w-7/12 md:px-0 md:py-0.5\">\n                      <div className=\"h-12 w-12 shrink-0 md:hidden\">\n                        <img\n                          src={videoDetails.owner.avatar}\n                          alt={videoDetails.owner.username}\n                          className=\"h-full w-full rounded-full\"\n                        />\n                      </div>\n                      <div className=\"w-full pt-1 md:pt-0\">\n                        <h6 className=\"mb-1 text-sm font-semibold\">\n                          {video.title}\n                        </h6>\n                        <p className=\"mb-0.5 mt-2 text-sm text-gray-200\">\n                          {video.owner.fullName}\n                        </p>\n                        <p className=\"flex text-sm text-gray-200\">\n                          {video.views}&nbsp;Views &middot; {video.time}\n                        </p>\n                      </div>\n                    </div>\n                  </div>\n                ))}\n            </div>\n          </div>\n        </section>\n      </div>\n    </div>\n  );\n};\n\nexport default VideoList;\n"
  },
  {
    "path": "src/components/templates/youtube/video-list.jsx",
    "content": "\"use client\";\nimport { classNames } from \"@/utils\";\nimport React from \"react\";\nimport { MagnifyingGlassIcon, XCircleIcon } from \"@heroicons/react/24/outline\";\nimport { bottomTotalItems, navItems, logo, videos } from \"./data\";\n\nconst VideoList = () => {\n  return (\n    <div className=\"h-screen overflow-y-auto bg-[#121212] text-white\">\n      <header className=\"sticky inset-x-0 top-0 z-50 w-full border-b border-white bg-[#121212] px-4\">\n        <nav className=\"mx-auto flex max-w-7xl items-center py-2\">\n          <div className=\"mr-4 w-12 shrink-0 sm:w-16\">{logo}</div>\n          <div className=\"relative mx-auto hidden w-full max-w-md overflow-hidden sm:block\">\n            <input\n              className=\"w-full border bg-transparent py-1 pl-8 pr-3 placeholder-white outline-none sm:py-2\"\n              placeholder=\"Search\"\n            />\n            <span className=\"absolute left-2.5 top-1/2 inline-block -translate-y-1/2\">\n              <MagnifyingGlassIcon className=\" h-4 w-4\" />\n            </span>\n          </div>\n          <button className=\"ml-auto sm:hidden\">\n            <MagnifyingGlassIcon className=\" h-6 w-6\" />\n          </button>\n          <button className=\"group peer ml-4 flex w-6 shrink-0 flex-wrap gap-y-1.5 sm:hidden\">\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-2/3 bg-white group-hover:bg-[#ae7aff]\"></span>\n            <span className=\"block h-[2px] w-full bg-white group-hover:bg-[#ae7aff]\"></span>\n          </button>\n          <div className=\"fixed inset-y-0 right-0 flex w-full max-w-xs shrink-0 translate-x-full flex-col border-l border-white bg-[#121212] duration-200 hover:translate-x-0 peer-focus:translate-x-0 sm:static sm:ml-4 sm:w-auto sm:translate-x-0 sm:border-none\">\n            <div className=\"relative flex w-full items-center justify-between border-b border-white px-4 py-2 sm:hidden\">\n              <span className=\"inline-block w-12\">{logo}</span>\n              <button className=\"inline-block w-8\">\n                <XCircleIcon />\n              </button>\n            </div>\n            <ul className=\"my-4 flex w-full flex-wrap gap-2 px-4 sm:hidden\">\n              {navItems\n                .filter((item) => !item.mobileView)\n                .map((item) => (\n                  <li key={item.name} className=\"w-full\">\n                    <button className=\"flex w-full items-center justify-start gap-x-4 border border-white px-4 py-1.5 text-left hover:bg-[#ae7aff] hover:text-black focus:border-[#ae7aff] focus:bg-[#ae7aff] focus:text-black\">\n                      <span className=\"inline-block w-full max-w-[20px] group-hover:mr-4 lg:mr-4\">\n                        {item.icon}\n                      </span>\n                      <span>{item.name}</span>\n                    </button>\n                  </li>\n                ))}\n            </ul>\n\n            <div className=\"mb-8 mt-auto flex w-full flex-wrap gap-4 px-4 sm:mb-0 sm:mt-0 sm:items-center sm:px-0\">\n              <button className=\"w-full bg-[#383737] px-3 py-2 hover:bg-[#4f4e4e] sm:w-auto sm:bg-transparent\">\n                Log in\n              </button>\n              <button className=\"mr-1 w-full bg-[#ae7aff] px-3 py-2 text-center font-bold text-black shadow-[5px_5px_0px_0px_#4f4e4e] transition-all duration-150 ease-in-out active:translate-x-[5px] active:translate-y-[5px] active:shadow-[0px_0px_0px_0px_#4f4e4e] sm:w-auto\">\n                Sign up\n              </button>\n            </div>\n          </div>\n        </nav>\n      </header>\n      <div className=\"flex min-h-[calc(100vh-66px)] sm:min-h-[calc(100vh-82px)]\">\n        <aside className=\"group fixed inset-x-0 bottom-0 z-40 w-full shrink-0 border-t border-white bg-[#121212] px-2 py-2 sm:absolute sm:inset-y-0 sm:max-w-[70px] sm:border-r sm:border-t-0 sm:py-6 sm:hover:max-w-[250px] lg:sticky lg:max-w-[250px]\">\n          <ul className=\"flex justify-around gap-y-2 sm:sticky sm:top-[106px] sm:min-h-[calc(100vh-130px)] sm:flex-col\">\n            {navItems.map((item, i, arr) => (\n              <li\n                key={item.name}\n                className={classNames(\n                  item.mobileView ? \"\" : \"hidden sm:block\",\n                  arr.length - i === bottomTotalItems ? \"mt-auto\" : \"\",\n                )}\n              >\n                <button className=\"flex flex-col items-center justify-center border-white py-1 focus:text-[#ae7aff] sm:w-full sm:flex-row sm:border sm:p-1.5 sm:hover:bg-[#ae7aff] sm:hover:text-black sm:focus:border-[#ae7aff] sm:focus:bg-[#ae7aff] sm:focus:text-black sm:group-hover:justify-start sm:group-hover:px-4 lg:justify-start lg:px-4\">\n                  <span className=\"inline-block w-5 shrink-0 sm:group-hover:mr-4 lg:mr-4\">\n                    {item.icon}\n                  </span>\n                  <span className=\"block sm:hidden sm:group-hover:inline lg:inline\">\n                    {item.name}\n                  </span>\n                </button>\n              </li>\n            ))}\n          </ul>\n        </aside>\n        <section className=\"w-full pb-[70px] sm:ml-[70px] sm:pb-0 lg:ml-0\">\n          <div className=\"flex flex-col gap-4 p-4\">\n            {videos\n              .filter((video) => video.isPublished)\n              .map((video) => (\n                <div\n                  key={video.id}\n                  className=\"w-full max-w-3xl gap-x-4 md:flex\"\n                >\n                  <div className=\"relative mb-2 w-full md:mb-0 md:w-5/12\">\n                    <div className=\"w-full pt-[56%]\">\n                      <div className=\"absolute inset-0\">\n                        <img\n                          src={video.thumbnail}\n                          alt={video.title}\n                          className=\"h-full w-full\"\n                        />\n                      </div>\n                      <span className=\"absolute bottom-1 right-1 inline-block rounded bg-black px-1.5 text-sm\">\n                        {video.duration}\n                      </span>\n                    </div>\n                  </div>\n                  <div className=\"flex gap-x-2 md:w-7/12\">\n                    <div className=\"h-10 w-10 shrink-0 md:hidden\">\n                      <img\n                        src={video.owner.avatar}\n                        alt={video.owner.username}\n                        className=\"h-full w-full rounded-full\"\n                      />\n                    </div>\n                    <div className=\"w-full\">\n                      <h6 className=\"mb-1 font-semibold md:max-w-[75%]\">\n                        {video.title}\n                      </h6>\n                      <p className=\"flex text-sm text-gray-200 sm:mt-3\">\n                        {video.views}&nbsp;Views &middot; {video.time}\n                      </p>\n                      <div className=\"flex items-center gap-x-4\">\n                        <div className=\"mt-2 hidden h-10 w-10 shrink-0 md:block\">\n                          <img\n                            src={video.owner.avatar}\n                            alt={video.owner.username}\n                            className=\"h-full w-full rounded-full\"\n                          />\n                        </div>\n                        <p className=\"text-sm text-gray-200\">\n                          {video.owner.fullName}\n                        </p>\n                      </div>\n                      <p className=\"mt-2 hidden text-sm md:block\">\n                        {video.description}\n                      </p>\n                    </div>\n                  </div>\n                </div>\n              ))}\n          </div>\n        </section>\n      </div>\n    </div>\n  );\n};\n\nexport default VideoList;\n"
  },
  {
    "path": "src/types/utils.ts",
    "content": "export type TailwindIconType = React.ForwardRefExoticComponent<\n  Omit<React.SVGProps<SVGSVGElement>, \"ref\"> & {\n    title?: string | undefined;\n    titleId?: string | undefined;\n  } & React.RefAttributes<SVGSVGElement>\n>;\n\nexport type SelectOptionType = {\n  id: string;\n  name: string;\n};\n"
  },
  {
    "path": "src/utils/index.ts",
    "content": "import { ReactElement } from \"react\";\nimport { renderToStaticMarkup } from \"react-dom/server\";\n\nexport const classNames = (...classes: string[]) => {\n  return classes.filter(Boolean).join(\" \");\n};\n\nexport const renderHTMLFromJSX = (jsx: ReactElement): string => {\n  return renderToStaticMarkup(jsx).replaceAll(\"&amp;\", \"&\");\n};\n"
  },
  {
    "path": "src/utils/screens.tsx",
    "content": "import Authentication from \"@/components/templates/authentication\";\nimport Chat from \"@/components/templates/chat\";\nimport SocialMedia from \"@/components/templates/social-media\";\nimport Todo from \"@/components/templates/todo\";\nimport Youtube from \"@/components/templates/youtube\";\n\nexport const applications = [\n  {\n    name: \"Authentication app\",\n    id: \"authentication\",\n    subtitle: \"User Authentication\",\n    cover: \"/auth.png\",\n    description:\n      \"Explore authentication screens for a seamless and secure login and registration UI designs. Access the HTML templates by clicking below.\",\n    pages: [\n      {\n        id: \"register\",\n        name: \"Register Page\",\n        component: <Authentication.Register />,\n      },\n      {\n        id: \"login\",\n        name: \"Login Page\",\n        component: <Authentication.Login />,\n      },\n      {\n        id: \"forgot-password\",\n        name: \"Forgot Password Page\",\n        component: <Authentication.ForgotPassword />,\n      },\n    ],\n  },\n\n  {\n    name: \"Chat app\",\n    id: \"chat\",\n    subtitle: \"Real-time Chat\",\n    cover: \"/chat.png\",\n    description:\n      \"Discover HTML templates for our chat application screens. Explore sleek, intuitive and responsive designs for seamless communication experiences.\",\n    pages: [\n      {\n        id: \"empty-chats\",\n        name: \"Empty Chats\",\n        component: <Chat.EmptyChats />,\n      },\n      {\n        id: \"chat-screen\",\n        name: \"Chat Screen\",\n        component: <Chat.ChatScreen />,\n      },\n      {\n        id: \"create-normal-chat\",\n        name: \"Create Personal Chat\",\n        component: <Chat.CreateOneOnOneChat />,\n      },\n      {\n        id: \"create-group-chat\",\n        name: \"Create Group Chat\",\n        component: <Chat.CreateGroupChat />,\n      },\n      {\n        id: \"group-chat-info\",\n        name: \"About Group Chat\",\n        component: <Chat.GroupInfo />,\n      },\n      {\n        id: \"chat-register\",\n        name: \"Chat Register\",\n        component: <Chat.Register />,\n      },\n      {\n        id: \"chat-login\",\n        name: \"Chat Login\",\n        component: <Chat.Login />,\n      },\n    ],\n  },\n  {\n    name: \"Social Media App\",\n    id: \"social-media\",\n    subtitle: \"Social Media\",\n    cover: \"/social-media.png\",\n    description:\n      \"Discover HTML templates for social media application screens. Dive into our UI designs to create engaging, responsive and user-friendly social platforms.\",\n    pages: [\n      {\n        id: \"post-listing\",\n        name: \"Post Listing\",\n        component: <SocialMedia.PostListing />,\n      },\n      {\n        id: \"post-detail\",\n        name: \"Post Detail\",\n        component: <SocialMedia.PostDetail />,\n      },\n      {\n        id: \"user-profile\",\n        name: \"User Profile\",\n        component: <SocialMedia.UserProfile />,\n      },\n      {\n        id: \"my-profile\",\n        name: \"My Profile\",\n        component: <SocialMedia.MyProfile />,\n      },\n      {\n        id: \"edit-profile\",\n        name: \"Edit Profile\",\n        component: <SocialMedia.EditProfile />,\n      },\n      {\n        id: \"change-password\",\n        name: \"Change Password\",\n        component: <SocialMedia.ChangePassword />,\n      },\n      {\n        id: \"bookmarked-posts\",\n        name: \"Bookmarked Posts\",\n        component: <SocialMedia.BookmarkedPosts />,\n      },\n      {\n        id: \"social-register\",\n        name: \"Social Register\",\n        component: <SocialMedia.Register />,\n      },\n      {\n        id: \"social-login\",\n        name: \"Social Login\",\n        component: <SocialMedia.Login />,\n      },\n    ],\n  },\n  {\n    name: \"Todo app\",\n    id: \"todo\",\n    subtitle: \"Task Management\",\n    cover: \"/todo.png\",\n    description:\n      \"Explore UI designs for Todo app, a user-friendly task management application. Streamline your productivity by accessing the HTML templates.\",\n    pages: [\n      {\n        id: \"empty-todos\",\n        name: \"Empty Todos Page\",\n        component: <Todo.EmptyTodos />,\n      },\n      {\n        id: \"todos\",\n        name: \"Todos Page\",\n        component: <Todo.TodosList />,\n      },\n    ],\n  },\n  {\n    name: \"Youtube App\",\n    id: \"youtube\",\n    subtitle: \"Video Sharing Platform\",\n    cover: \"/youtube.png\",\n    description:\n      \"Explore UI designs for a Youtube clone, a user-friendly video sharing platform. Enhance your viewing experience with these accessible HTML templates.\",\n    pages: [\n      {\n        id: \"empty-videos\",\n        name: \"Empty Video Page\",\n        component: <Youtube.EmptyVideos />,\n      },\n      {\n        id: \"video-card\",\n        name: \"Video Listing Page (Card View)\",\n        component: <Youtube.VideoCards />,\n      },\n      {\n        id: \"video-list\",\n        name: \"Video Listing Page (List View)\",\n        component: <Youtube.VideoList />,\n      },\n      {\n        id: \"video-detail\",\n        name: \"Video Detail Page\",\n        component: <Youtube.VideoDetail />,\n      },\n      {\n        id: \"channel-empty-video\",\n        name: \"Channel Empty Video Page\",\n        component: <Youtube.ChannelEmptyVideo />,\n      },\n      {\n        id: \"channel-video-list\",\n        name: \"Channel Video List Page\",\n        component: <Youtube.ChannelVideoList />,\n      },\n      {\n        id: \"channel-empty-playlist\",\n        name: \"Channel Empty Playlist Page\",\n        component: <Youtube.ChannelEmptyPlaylist />,\n      },\n      {\n        id: \"channel-playlist\",\n        name: \"Channel Playlist Page\",\n        component: <Youtube.ChannelPlaylist />,\n      },\n      {\n        id: \"channel-paylist-videos\",\n        name: \"Channel Playlist Videos Page\",\n        component: <Youtube.ChannelPlaylistVideos />,\n      },\n      {\n        id: \"channel-empty-tweet\",\n        name: \"Channel Empty Tweet Page\",\n        component: <Youtube.ChannelEmptyTweet />,\n      },\n      {\n        id: \"channel-tweets\",\n        name: \"Channel Tweets Page\",\n        component: <Youtube.ChannelTweets />,\n      },\n      {\n        id: \"channel-empty-subscribed\",\n        name: \"Channel Empty Subscribed Page\",\n        component: <Youtube.ChannelEmptySubscribed />,\n      },\n      {\n        id: \"channel-subscribed\",\n        name: \"Channel Subscribed Page\",\n        component: <Youtube.ChannelSubscribed />,\n      },\n      {\n        id: \"login\",\n        name: \"Login Page\",\n        component: <Youtube.Login />,\n      },\n      {\n        id: \"register\",\n        name: \"Register Page\",\n        component: <Youtube.Register />,\n      },\n      {\n        id: \"mychannel-empty-video\",\n        name: \"My Channel Empty Video Page\",\n        component: <Youtube.MyChannelEmptyVideo />,\n      },\n      {\n        id: \"upload-video\",\n        name: \"Upload Video Modal Popup\",\n        component: <Youtube.UploadVideo />,\n      },\n      {\n        id: \"uploading-video\",\n        name: \"Uploading Video Modal Popup\",\n        component: <Youtube.UploadingVideo />,\n      },\n      {\n        id: \"uploaded-video\",\n        name: \"Uploaded Video Successfully Modal Popup\",\n        component: <Youtube.UploadedVideo />,\n      },\n      {\n        id: \"mychannel-empty-tweet\",\n        name: \"My Channel Empty Tweet Page\",\n        component: <Youtube.MyChannelEmptyTweet />,\n      },\n      {\n        id: \"mychannel-tweets\",\n        name: \"My Channel Tweets Page\",\n        component: <Youtube.MyChannelTweets />,\n      },\n      {\n        id: \"edit-personal-info\",\n        name: \"Edit Personal Info Page\",\n        component: <Youtube.EditPersonalInfo />,\n      },\n      {\n        id: \"edit-channel-info\",\n        name: \"Edit Channel Info Page\",\n        component: <Youtube.EditChannelInfo />,\n      },\n      {\n        id: \"change-password\",\n        name: \"Change Password Page\",\n        component: <Youtube.ChangePassword />,\n      },\n      {\n        id: \"dashboard\",\n        name: \"Admin Dashboard Page\",\n        component: <Youtube.Dashboard />,\n      },\n      {\n        id: \"edit-video\",\n        name: \"Edit Video Modal Popup\",\n        component: <Youtube.EditVideo />,\n      },\n      {\n        id: \"delete-video\",\n        name: \"Delete Video Modal Popup\",\n        component: <Youtube.DeleteVideo />,\n      },\n      {\n        id: \"privacy-policy\",\n        name: \"Privacy Policy Page\",\n        component: <Youtube.PrivacyPolicy />,\n      },\n      {\n        id: \"terms-and-conditions\",\n        name: \"Terms and Conditions Page\",\n        component: <Youtube.TermsAndConditions />,\n      },\n    ],\n  },\n];\n\nexport const getComponentByAppPageId = (appId: string, pageId: string) => {\n  const application = applications.find((app) => app.id === appId);\n\n  if (!application) return <h1>Application id in invalid</h1>;\n\n  const page = application.pages.find((page) => page.id === pageId);\n\n  if (!page) return <h1>Page id in invalid</h1>;\n\n  return page.component;\n};\n"
  },
  {
    "path": "tailwind.config.ts",
    "content": "import type { Config } from \"tailwindcss\";\n\nconst config: Config = {\n  content: [\n    \"./src/pages/**/*.{js,ts,jsx,tsx,mdx}\",\n    \"./src/components/**/*.{js,ts,jsx,tsx,mdx}\",\n    \"./src/app/**/*.{js,ts,jsx,tsx,mdx}\",\n    \"./src/utils/**/*.{js,ts,jsx,tsx,mdx}\",\n  ],\n  theme: {\n    extend: {\n      colors: {\n        dark: \"#020617\",\n      },\n    },\n  },\n  plugins: [],\n};\nexport default config;\n"
  },
  {
    "path": "tsconfig.json",
    "content": "{\n  \"compilerOptions\": {\n    \"target\": \"es5\",\n    \"lib\": [\n      \"dom\",\n      \"dom.iterable\",\n      \"esnext\"\n    ],\n    \"allowJs\": true,\n    \"skipLibCheck\": true,\n    \"strict\": true,\n    \"noEmit\": true,\n    \"esModuleInterop\": true,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"bundler\",\n    \"resolveJsonModule\": true,\n    \"isolatedModules\": true,\n    \"jsx\": \"preserve\",\n    \"allowSyntheticDefaultImports\": true,\n    \"incremental\": true,\n    \"plugins\": [\n      {\n        \"name\": \"next\"\n      }\n    ],\n    \"paths\": {\n      \"@/*\": [\n        \"./src/*\"\n      ]\n    }\n  },\n  \"include\": [\n    \"next-env.d.ts\",\n    \"**/*.ts\",\n    \"**/*.tsx\",\n    \".next/types/**/*.ts\"\n  ],\n  \"exclude\": [\n    \"node_modules\"\n  ]\n}"
  }
]