- "content": "\"use client\";\nimport { createContext, useState } from \"react\";\nimport { Github, Zap } from \"lucide-react\";\nimport { Frame } from \"@/components/nurui/frame\";\nimport Link from \"next/link\";\nimport FutureButton from \"./future-button\";\n\nexport const MobileMenuContext = createContext<{\n showMenu: boolean;\n setShowMenu: React.Dispatch<React.SetStateAction<boolean>>;\n}>({\n showMenu: true,\n setShowMenu: () => {},\n});\n\nfunction FutureNavbar() {\n const [showMenu, setShowMenu] = useState(false);\n\n // 🎨 Direct color constants\n const primaryStroke = \"#4f46e5\"; // Indigo\n const primaryFill = \"rgba(79, 70, 229, 0.2)\";\n\n return (\n <MobileMenuContext.Provider value={{ showMenu, setShowMenu }}>\n <div className=\"h-16 mt-2 mx-2 lg:-mt-px lg:-mx-px flex w-full top-0 inset-x-0 z-50\">\n <div className=\"size-full relative -mr-[11px] hidden lg:block\">\n <Frame\n className=\"drop-shadow-2xl\"\n paths={JSON.parse(\n `[{\n \"show\": true,\n \"style\": {\"strokeWidth\": \"1\", \"stroke\": \"${primaryStroke}\", \"fill\": \"rgba(79,70,229,0.08)\"},\n \"path\":[[\"M\",\"0\",\"0\"],[\"L\",\"100% - 6\",\"0\"],[\"L\",\"100% - 11\",\"100% - 64\"],[\"L\",\"100% + 0\",\"0% + 29\"],[\"L\",\"0\",\"11\"],[\"L\",\"0\",\"0\"]]\n },{\n \"show\": true,\n \"style\": {\"strokeWidth\": \"1\", \"stroke\": \"${primaryStroke}38\", \"fill\": \"transparent\"},\n \"path\":[[\"M\",\"0\",\"14\"],[\"L\",\"100% - 7\",\"33\"]]\n }]`,\n )}\n />\n </div>\n <div className=\"flex lg:container h-full relative flex-none w-full\">\n <div className=\"flex-none h-full px-14 relative w-full lg:w-auto\">\n <Frame\n enableBackdropBlur\n className=\"drop-shadow-2xl\"\n paths={JSON.parse(\n `[{\n \"show\":true,\n \"style\":{\"strokeWidth\":\"1\",\"stroke\":\"${primaryStroke}\",\"fill\":\"${primaryFill}\"},\n \"path\":[[\"M\",\"6\",\"0\"],[\"L\",\"100% - 6.5\",\"0\"],[\"L\",\"100% + 0\",\"0% + 9\"],[\"L\",\"100% - 28\",\"100% - 15\"],[\"L\",\"162\",\"100% - 15\"],[\"L\",\"164\",\"100% - 30\"],[\"L\",\"153\",\"100% - 15\"],[\"L\",\"27\",\"100% - 15\"],[\"L\",\"0\",\"0% + 8\"],[\"L\",\"6\",\"0\"]]\n },{\n \"show\":true,\n \"style\":{\"strokeWidth\":\"1\",\"stroke\":\"${primaryStroke}91\",\"fill\":\"transparent\"},\n \"path\":[[\"M\",\"32\",\"100% - 15\"],[\"L\",\"0% + 152.5\",\"100% - 15\"],[\"L\",\"0% + 163.5\",\"100% - 29\"],[\"L\",\"0% + 161.5\",\"100% - 15\"],[\"L\",\"100% - 32.5\",\"100% - 15\"],[\"L\",\"100% - 36.5\",\"100% - 7\"],[\"L\",\"0% + 163.5\",\"100% - 7\"],[\"L\",\"0% + 165.5\",\"100% - 23\"],[\"L\",\"0% + 152.5\",\"100% - 7\"],[\"L\",\"37\",\"100% - 7\"],[\"L\",\"32\",\"100% - 15\"]]\n },{\n \"show\":true,\n \"style\":{\"strokeWidth\":\"1\",\"stroke\":\"${primaryStroke}3B\",\"fill\":\"transparent\"},\n \"path\":[[\"M\",\"0\",\"0% + 33\"],[\"M\",\"4\",\"0% + 33\"],[\"L\",\"0% + 18.5\",\"100% - 12\"],[\"L\",\"0% + 23.5\",\"100% - 12\"],[\"L\",\"29\",\"100% + 0\"],[\"L\",\"155\",\"100% - 0\"],[\"L\",\"160\",\"100% - 8\"],[\"L\",\"161\",\"100% - 0\"],[\"L\",\"100% - 28\",\"100% + 0\"],[\"L\",\"100% - 23\",\"100% - 11\"],[\"L\",\"100% - 17\",\"100% - 11\"],[\"L\",\"100% - 14\",\"100% - 14\"],[\"L\",\"100% + 0\",\"100% - 14\"]]\n }]`,\n )}\n />\n <div className=\"flex items-center mt-2.5 relative\">\n <Link href=\"/\" className=\"me-16 font-bold\">\n COSMIC UI\n </Link>\n <div className=\"hidden lg:flex gap-8 font-medium\">\n <Link href=\"/docs\">Docs</Link>\n <Link href=\"/docs\">Components</Link>\n <Link href=\"/docs\">About</Link>\n </div>\n <div\n onClick={() => setShowMenu(true)}\n className=\"cursor-pointer ms-auto flex items-center gap-2 lg:hidden font-medium\"\n >\n <Zap className=\"size-4\" />\n Menu\n </div>\n </div>\n </div>\n <div className=\"w-full relative -ml-[25px] lg:flex justify-end pe-8 hidden\">\n <Frame\n enableBackdropBlur\n className=\"drop-shadow-2xl\"\n paths={JSON.parse(\n `[{\n \"show\":true,\n \"style\":{\"strokeWidth\":\"1\",\"stroke\":\"${primaryStroke}80\",\"fill\":\"rgba(79,70,229,0.1)\"},\n \"path\":[[\"M\",\"19\",\"0\"],[\"L\",\"100% - 5\",\"0\"],[\"L\",\"100% + 0\",\"0% + 7\"],[\"L\",\"100% - 36\",\"100% - 20\"],[\"L\",\"0\",\"100% - 20\"],[\"L\",\"25\",\"8.999992370605469\"],[\"L\",\"19\",\"1\"]]\n },{\n \"show\":true,\n \"style\":{\"strokeWidth\":\"1\",\"stroke\":\"${primaryStroke}3B\",\"fill\":\"transparent\"},\n \"path\":[[\"M\",\"25\",\"100% - 14\"],[\"L\",\"100% - 32\",\"100% - 13\"],[\"L\",\"100% - 15\",\"36\"]]\n }]`,\n )}\n />\n <div className=\"flex items-center -mt-3.5\">\n <FutureButton\n shape=\"flat\"\n className=\"font-normal px-9 py-[0.45rem] text-xs text-foreground\"\n >\n <div className=\"me-10\">Search Docs…</div>\n <div className=\"ms-auto\">⌘+k</div>\n </FutureButton>\n <a\n target=\"_blank\"\n href=\"https://github.com/afsar-dev/Nurui/stargazers\"\n >\n <FutureButton shape=\"flat\" className=\"py-[0.45rem] px-6 ms-1 \">\n <Github className=\"size-4\" />\n </FutureButton>\n </a>\n </div>\n </div>\n </div>\n <div className=\"size-full relative -ml-[18px] hidden lg:block\">\n <Frame\n paths={JSON.parse(\n `[{\n \"show\":true,\n \"style\":{\"strokeWidth\":\"1\",\"stroke\":\"${primaryStroke}E6\",\"fill\":\"rgba(79,70,229,0.08)\"},\n \"path\":[[\"M\",\"12\",\"0\"],[\"L\",\"100% + 0\",\"0\"],[\"L\",\"100% + 0\",\"0% + 16\"],[\"L\",\"0\",\"100% - 42\"],[\"L\",\"18\",\"7\"],[\"L\",\"12\",\"0\"]]\n },{\n \"show\":true,\n \"style\":{\"strokeWidth\":\"1\",\"stroke\":\"${primaryStroke}3B\",\"fill\":\"transparent\"},\n \"path\":[[\"M\",\"3\",\"100% - 36\"],[\"L\",\"100% + 0\",\"20\"]]\n }]`,\n )}\n />\n </div>\n </div>\n </MobileMenuContext.Provider>\n );\n}\n\nexport default FutureNavbar;\n",
0 commit comments