diff options
Diffstat (limited to 'packages')
| -rw-r--r-- | packages/ai-sdk/package.json | 2 | ||||
| -rw-r--r-- | packages/lib/api.ts | 4 | ||||
| -rw-r--r-- | packages/lib/package.json | 2 | ||||
| -rw-r--r-- | packages/lib/posthog.tsx | 2 | ||||
| -rw-r--r-- | packages/lib/types.ts | 12 | ||||
| -rw-r--r-- | packages/tools/package.json | 2 | ||||
| -rw-r--r-- | packages/ui/assets/Logo.tsx | 266 | ||||
| -rw-r--r-- | packages/ui/assets/icons.tsx | 162 | ||||
| -rw-r--r-- | packages/ui/button/external-auth.tsx | 8 | ||||
| -rw-r--r-- | packages/ui/components/button.tsx | 12 | ||||
| -rw-r--r-- | packages/ui/components/text-separator.tsx | 4 | ||||
| -rw-r--r-- | packages/ui/globals.css | 5 | ||||
| -rw-r--r-- | packages/ui/input/labeled-input.tsx | 16 | ||||
| -rw-r--r-- | packages/ui/pages/login.tsx | 2 | ||||
| -rw-r--r-- | packages/validation/api.ts | 1 | ||||
| -rw-r--r-- | packages/validation/schemas.ts | 1 |
16 files changed, 480 insertions, 21 deletions
diff --git a/packages/ai-sdk/package.json b/packages/ai-sdk/package.json index f3800c1e..5e59fa5e 100644 --- a/packages/ai-sdk/package.json +++ b/packages/ai-sdk/package.json @@ -4,7 +4,7 @@ "version": "1.0.8", "scripts": { "build": "tsdown", - "dev": "tsdown --watch", + "dev": "tsdown --watch --ignore-watch .turbo", "check-types": "tsc --noEmit", "test": "vitest", "test:watch": "vitest --watch" diff --git a/packages/lib/api.ts b/packages/lib/api.ts index bfdc3ac0..657067a1 100644 --- a/packages/lib/api.ts +++ b/packages/lib/api.ts @@ -159,6 +159,10 @@ export const apiSchema = createSchema({ output: MigrateMCPResponseSchema, }, + "@get/documents/:id": { + output: z.any(), + }, + // Delete a memory "@delete/documents/:id": { output: z.any(), // 204 No-Content diff --git a/packages/lib/package.json b/packages/lib/package.json index 7b548984..33db50d6 100644 --- a/packages/lib/package.json +++ b/packages/lib/package.json @@ -7,6 +7,8 @@ "@ai-sdk/anthropic": "^1.2.12", "@ai-sdk/google": "^1.2.22", "@ai-sdk/groq": "^1.2.9", + "@tanstack/react-query": "^5.90.14", + "@tanstack/react-query-devtools": "^5.84.2", "ai-gateway-provider": "^0.0.11" } } diff --git a/packages/lib/posthog.tsx b/packages/lib/posthog.tsx index 0c436e1e..438cef64 100644 --- a/packages/lib/posthog.tsx +++ b/packages/lib/posthog.tsx @@ -73,7 +73,7 @@ export function PostHogProvider({ children }: { children: React.ReactNode }) { return ( <> <Suspense fallback={null}> - <PostHogPageTracking /> + {process.env.NODE_ENV === "production" && <PostHogPageTracking />} </Suspense> {children} </> diff --git a/packages/lib/types.ts b/packages/lib/types.ts new file mode 100644 index 00000000..024c4811 --- /dev/null +++ b/packages/lib/types.ts @@ -0,0 +1,12 @@ +/** + * Common TypeScript types shared across the application + */ + +export interface Project { + id: string + name: string + containerTag: string + createdAt: string + updatedAt: string + isExperimental?: boolean +} diff --git a/packages/tools/package.json b/packages/tools/package.json index 346a3e40..aba90b46 100644 --- a/packages/tools/package.json +++ b/packages/tools/package.json @@ -5,7 +5,7 @@ "description": "Memory tools for AI SDK and OpenAI function calling with supermemory", "scripts": { "build": "tsdown", - "dev": "tsdown --watch", + "dev": "tsdown --watch --ignore-watch .turbo", "check-types": "tsc --noEmit", "test": "vitest --testTimeout 100000", "test:watch": "vitest --watch --testTimeout 100000" diff --git a/packages/ui/assets/Logo.tsx b/packages/ui/assets/Logo.tsx index bb8800c8..6741acf9 100644 --- a/packages/ui/assets/Logo.tsx +++ b/packages/ui/assets/Logo.tsx @@ -16,7 +16,7 @@ export const Logo = ({ <title>supermemory Logo</title> <path d="M205.864 66.263h-76.401V0h-24.684v71.897c0 7.636 3.021 14.97 8.391 20.373l62.383 62.777 17.454-17.564-46.076-46.365h58.948v-24.84l-.015-.015ZM12.872 30.517l46.075 46.365H0v24.84h76.4v66.264h24.685V96.089c0-7.637-3.021-14.97-8.39-20.374l-62.37-62.762-17.453 17.564Z" - fill="currentColor" + fill="#ffffff" /> </svg> ); @@ -49,3 +49,267 @@ export const LogoFull = ({ </svg> ); }; + +export const GradientLogo = ({ className = "" }: { className?: string }) => { + return ( + <svg + xmlns="http://www.w3.org/2000/svg" + width="65" + height="53" + viewBox="0 0 65 53" + fill="none" + className={className} + > + <title>Gradient supermemory logo</title> + <g clipPath="url(#clip0_503_43779)"> + <path + d="M64.1607 20.7042H40.3439V0.00268555H32.6488V22.4642C32.6488 24.8499 33.5906 27.141 35.2645 28.8291L54.7116 48.4414L60.1526 42.9542L45.7893 28.4691H64.1651V20.7088L64.1607 20.7042Z" + fill="url(#paint0_linear_503_43779)" + /> + <path + d="M3.9992 9.536L18.3626 24.0213H-0.0134277V31.7816H23.8034V52.483H31.4984V30.0216C31.4984 27.6358 30.5567 25.3446 28.8827 23.6567L9.44012 4.0489L3.9992 9.536Z" + fill="url(#paint1_linear_503_43779)" + /> + </g> + <defs> + <linearGradient + id="paint0_linear_503_43779" + x1="3.272" + y1="-0.0520011" + x2="122.975" + y2="9.51098" + gradientUnits="userSpaceOnUse" + > + <stop stopColor="#369BFD" /> + <stop offset="0.41" stopColor="#36FDFD" /> + <stop offset="0.79" stopColor="#36FDB5" /> + </linearGradient> + <linearGradient + id="paint1_linear_503_43779" + x1="3.272" + y1="-0.0520011" + x2="122.975" + y2="9.51098" + gradientUnits="userSpaceOnUse" + > + <stop stopColor="#369BFD" /> + <stop offset="0.41" stopColor="#36FDFD" /> + <stop offset="0.79" stopColor="#36FDB5" /> + </linearGradient> + <clipPath id="clip0_503_43779"> + <rect + width="64.732" + height="52.4854" + fill="white" + transform="translate(-0.0136719)" + /> + </clipPath> + </defs> + </svg> + ); +}; + +export const LogoBgGradient = ({ className = "" }: { className?: string }) => { + return ( + <svg + xmlns="http://www.w3.org/2000/svg" + width="182" + height="184" + viewBox="0 0 182 184" + fill="none" + className={className} + > + <title>Logo background gradient</title> + <g opacity="0.7"> + <g filter="url(#filter0_f_503_43757)"> + <ellipse + cx="14.2835" + cy="24.7691" + rx="14.2835" + ry="24.7691" + transform="matrix(1 0 0 -1 86.3853 115.758)" + fill="#1410FF" + /> + </g> + <g filter="url(#filter1_f_503_43757)"> + <ellipse + cx="80.5032" + cy="92.8882" + rx="14.2835" + ry="24.7691" + transform="rotate(-180 80.5032 92.8882)" + fill="#1410FF" + /> + </g> + <g filter="url(#filter2_f_503_43757)"> + <ellipse + cx="23.4137" + cy="11.8923" + rx="23.4137" + ry="11.8923" + transform="matrix(0.979973 -0.199127 -0.12394 -0.99229 69.9859 107.485)" + fill="#0091FF" + /> + </g> + <g filter="url(#filter3_f_503_43757)"> + <ellipse + cx="9.9778" + cy="7.53189" + rx="9.9778" + ry="7.53189" + transform="matrix(0.829871 -0.557955 -0.381948 -0.924183 98.8062 105.408)" + fill="#0099FF" + /> + </g> + <g filter="url(#filter4_f_503_43757)"> + <ellipse + cx="9.9778" + cy="7.53189" + rx="9.9778" + ry="7.53189" + transform="matrix(-0.829871 -0.557955 0.381948 -0.924184 82.4371 105.912)" + fill="#0099FF" + /> + </g> + <g filter="url(#filter5_f_503_43757)"> + <ellipse + cx="5.38795" + cy="10.704" + rx="5.38795" + ry="10.704" + transform="matrix(-3.03601e-08 -1 -1 5.00629e-08 99.5963 84.5005)" + fill="#47A8FD" + /> + </g> + </g> + <defs> + <filter + id="filter0_f_503_43757" + x="20.1657" + y="9.15527e-05" + width="161.006" + height="181.977" + filterUnits="userSpaceOnUse" + colorInterpolationFilters="sRGB" + > + <feFlood floodOpacity="0" result="BackgroundImageFix" /> + <feBlend + mode="normal" + in="SourceGraphic" + in2="BackgroundImageFix" + result="shape" + /> + <feGaussianBlur + stdDeviation="33.1098" + result="effect1_foregroundBlur_503_43757" + /> + </filter> + <filter + id="filter1_f_503_43757" + x="3.05176e-05" + y="1.89951" + width="161.006" + height="181.977" + filterUnits="userSpaceOnUse" + colorInterpolationFilters="sRGB" + > + <feFlood floodOpacity="0" result="BackgroundImageFix" /> + <feBlend + mode="normal" + in="SourceGraphic" + in2="BackgroundImageFix" + result="shape" + /> + <feGaussianBlur + stdDeviation="33.1098" + result="effect1_foregroundBlur_503_43757" + /> + </filter> + <filter + id="filter2_f_503_43757" + x="18.7991" + y="28.6653" + width="145.315" + height="124.713" + filterUnits="userSpaceOnUse" + colorInterpolationFilters="sRGB" + > + <feFlood floodOpacity="0" result="BackgroundImageFix" /> + <feBlend + mode="normal" + in="SourceGraphic" + in2="BackgroundImageFix" + result="shape" + /> + <feGaussianBlur + stdDeviation="24.8324" + result="effect1_foregroundBlur_503_43757" + /> + </filter> + <filter + id="filter3_f_503_43757" + x="54.0543" + y="42.579" + width="100.311" + height="100.602" + filterUnits="userSpaceOnUse" + colorInterpolationFilters="sRGB" + > + <feFlood floodOpacity="0" result="BackgroundImageFix" /> + <feBlend + mode="normal" + in="SourceGraphic" + in2="BackgroundImageFix" + result="shape" + /> + <feGaussianBlur + stdDeviation="20.6936" + result="effect1_foregroundBlur_503_43757" + /> + </filter> + <filter + id="filter4_f_503_43757" + x="26.8781" + y="43.0827" + width="100.311" + height="100.602" + filterUnits="userSpaceOnUse" + colorInterpolationFilters="sRGB" + > + <feFlood floodOpacity="0" result="BackgroundImageFix" /> + <feBlend + mode="normal" + in="SourceGraphic" + in2="BackgroundImageFix" + result="shape" + /> + <feGaussianBlur + stdDeviation="20.6936" + result="effect1_foregroundBlur_503_43757" + /> + </filter> + <filter + id="filter5_f_503_43757" + x="28.5235" + y="24.0599" + width="120.737" + height="110.105" + filterUnits="userSpaceOnUse" + colorInterpolationFilters="sRGB" + > + <feFlood floodOpacity="0" result="BackgroundImageFix" /> + <feBlend + mode="normal" + in="SourceGraphic" + in2="BackgroundImageFix" + result="shape" + /> + <feGaussianBlur + stdDeviation="24.8324" + result="effect1_foregroundBlur_503_43757" + /> + </filter> + </defs> + </svg> + ); +}; diff --git a/packages/ui/assets/icons.tsx b/packages/ui/assets/icons.tsx index 5383f690..c2ae59fc 100644 --- a/packages/ui/assets/icons.tsx +++ b/packages/ui/assets/icons.tsx @@ -194,15 +194,171 @@ export const PDF = ({ className }: { className?: string }) => ( <title>PDF</title> <path d="M3 13h.86v-.9h.39c.62 0 1.14-.45 1.14-1.06s-.5-1.05-1.14-1.05H3v3Zm.86-1.59v-.72h.3c.2 0 .37.13.37.35s-.16.36-.37.36h-.3ZM6.19 13h1.19c1 0 1.62-.59 1.62-1.52C9 10.61 8.38 10 7.38 10H6.19zm.86-.71V10.7h.29c.33 0 .78.16.78.78c0 .65-.45.81-.78.81zM10 13h.86v-1.07h1.06v-.69h-1.06v-.54h1.21v-.69h-2.06v3Z" - fill="currentColor" + fill="#DC2626" /> <path d="M12.5 16h-10c-.83 0-1.5-.67-1.5-1.5v-13C1 .67 1.67 0 2.5 0h7.09c.4 0 .78.16 1.06.44l2.91 2.91c.28.28.44.66.44 1.06V14.5c0 .83-.67 1.5-1.5 1.5M2.5 1c-.28 0-.5.22-.5.5v13c0 .28.22.5.5.5h10c.28 0 .5-.22.5-.5V4.41a.47.47 0 0 0-.15-.35L9.94 1.15A.5.5 0 0 0 9.59 1z" - fill="currentColor" + fill="#DC2626" /> <path d="M13.38 5h-2.91C9.66 5 9 4.34 9 3.53V.62c0-.28.22-.5.5-.5s.5.22.5.5v2.91c0 .26.21.47.47.47h2.91c.28 0 .5.22.5.5s-.22.5-.5.5" - fill="currentColor" + fill="#DC2626" /> </svg> ); + +export const SyncLogoIcon = ({ className }: { className?: string }) => { + return ( + <svg + width="11" + height="9" + viewBox="0 0 11 9" + fill="none" + xmlns="http://www.w3.org/2000/svg" + className={className} + > + <title>Sync Logo</title> + <g clipPath="url(#clip0_344_4856)"> + <path + d="M10.596 3.41884H6.66329V0.000488281H5.39264V3.70946C5.39264 4.10339 5.54815 4.48172 5.82456 4.76047L9.03576 7.99894L9.9342 7.09287L7.56245 4.70102H10.5968V3.41959L10.596 3.41884Z" + fill="url(#paint0_linear_344_4856)" + /> + <path + d="M0.662587 1.57476L3.03434 3.96665H0V5.24807H3.93276V8.66641H5.20341V4.95745C5.20341 4.56349 5.0479 4.18516 4.77149 3.90644L1.56102 0.668701L0.662587 1.57476Z" + fill="url(#paint1_linear_344_4856)" + /> + </g> + <defs> + <linearGradient + id="paint0_linear_344_4856" + x1="5.65905" + y1="-0.00784643" + x2="15.4099" + y2="0.406611" + gradientUnits="userSpaceOnUse" + > + <stop stopColor="#369BFD" /> + <stop offset="0.41" stopColor="#36FDFD" /> + <stop offset="0.79" stopColor="#36FDB5" /> + </linearGradient> + <linearGradient + id="paint1_linear_344_4856" + x1="0.266373" + y1="0.660367" + x2="10.0159" + y2="1.07475" + gradientUnits="userSpaceOnUse" + > + <stop stopColor="#369BFD" /> + <stop offset="0.41" stopColor="#36FDFD" /> + <stop offset="0.79" stopColor="#36FDB5" /> + </linearGradient> + <clipPath id="clip0_344_4856"> + <rect width="10.6889" height="8.66667" fill="white" /> + </clipPath> + </defs> + </svg> + ); +}; + +export const MCPIcon = ({ className }: { className?: string }) => { + return ( + <svg + width="22" + height="7" + viewBox="0 0 22 7" + fill="none" + xmlns="http://www.w3.org/2000/svg" + className={className} + > + <title>Model Context Protocol</title> + <path + d="M0 6.86538V0.134615H2.54399L3.80042 6H3.98732L5.24374 0.134615H7.78774V6.86538H6.45863V1.06731H6.27173L5.02569 6.86538H2.76205L1.51601 1.06731H1.32911V6.86538H0Z" + fill="url(#paint0_linear_336_3565)" + /> + <path + d="M11.9187 7C11.0188 7 10.3058 6.76923 9.7797 6.30769C9.25359 5.83974 8.99054 5.17308 8.99054 4.30769V2.69231C8.99054 1.82692 9.25359 1.16346 9.7797 0.701923C10.3058 0.233974 11.0188 0 11.9187 0C12.8117 0 13.5005 0.227564 13.9851 0.682693C14.4766 1.13141 14.7223 1.75 14.7223 2.53846V2.59615H13.3724V2.5C13.3724 2.10256 13.2513 1.77564 13.009 1.51923C12.7737 1.26282 12.4102 1.13462 11.9187 1.13462C11.4342 1.13462 11.0534 1.27244 10.7765 1.54808C10.4996 1.82372 10.3612 2.19872 10.3612 2.67308V4.32692C10.3612 4.79487 10.4996 5.16987 10.7765 5.45192C11.0534 5.72756 11.4342 5.86539 11.9187 5.86539C12.4102 5.86539 12.7737 5.73718 13.009 5.48077C13.2513 5.21795 13.3724 4.89103 13.3724 4.5V4.32692H14.7223V4.46154C14.7223 5.25 14.4766 5.8718 13.9851 6.32692C13.5005 6.77564 12.8117 7 11.9187 7Z" + fill="url(#paint1_linear_336_3565)" + /> + <path + d="M15.8391 6.86538V0.134615H18.8296C19.2865 0.134615 19.688 0.221154 20.0341 0.394231C20.3872 0.560898 20.6606 0.798077 20.8544 1.10577C21.0552 1.41346 21.1556 1.77885 21.1556 2.20192V2.33654C21.1556 2.75321 21.0517 3.11859 20.844 3.43269C20.6433 3.74038 20.3664 3.98077 20.0134 4.15385C19.6672 4.32051 19.2727 4.40385 18.8296 4.40385H17.2098V6.86538H15.8391ZM17.2098 3.25H18.6946C19.02 3.25 19.283 3.16667 19.4838 3C19.6845 2.83333 19.7849 2.60577 19.7849 2.31731V2.22115C19.7849 1.93269 19.6845 1.70513 19.4838 1.53846C19.283 1.37179 19.02 1.28846 18.6946 1.28846H17.2098V3.25Z" + fill="url(#paint2_linear_336_3565)" + /> + <defs> + <linearGradient + id="paint0_linear_336_3565" + x1="1.08299" + y1="-0.00729429" + x2="39.3036" + y2="7.53871" + gradientUnits="userSpaceOnUse" + > + <stop stopColor="#369BFD" /> + <stop offset="0.41" stopColor="#36FDFD" /> + <stop offset="0.79" stopColor="#36FDB5" /> + </linearGradient> + <linearGradient + id="paint1_linear_336_3565" + x1="1.08299" + y1="-0.00729429" + x2="39.3036" + y2="7.53871" + gradientUnits="userSpaceOnUse" + > + <stop stopColor="#369BFD" /> + <stop offset="0.41" stopColor="#36FDFD" /> + <stop offset="0.79" stopColor="#36FDB5" /> + </linearGradient> + <linearGradient + id="paint2_linear_336_3565" + x1="1.08299" + y1="-0.00729429" + x2="39.3036" + y2="7.53871" + gradientUnits="userSpaceOnUse" + > + <stop stopColor="#369BFD" /> + <stop offset="0.41" stopColor="#36FDFD" /> + <stop offset="0.79" stopColor="#36FDB5" /> + </linearGradient> + </defs> + </svg> + ); +}; + +export const ClaudeDesktopIcon = ({ className }: { className?: string }) => { + return ( + <svg + width="12" + height="12" + viewBox="0 0 12 12" + fill="none" + xmlns="http://www.w3.org/2000/svg" + xmlnsXlink="http://www.w3.org/1999/xlink" + className={className} + > + <title>Claude Desktop</title> + <rect width="12" height="12" fill="url(#pattern0_336_3533)" /> + <defs> + <pattern + id="pattern0_336_3533" + patternContentUnits="objectBoundingBox" + width="1" + height="1" + > + <use + xlinkHref="#image0_336_3533" + transform="translate(-0.181818 -0.136364) scale(0.0050505)" + /> + </pattern> + <image + id="image0_336_3533" + width="252" + height="252" + preserveAspectRatio="none" + xlinkHref="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPwAAAD8CAYAAABTq8lnAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAB5USURBVHgB7Z1/kFzVdefPua+n54c0kpD4jbARoN8yzq4dGwhZftixWf9I8G5kacB2FHsDTmWTXW8Ckljv0uzaRuBKeTeprS3zj4mLgMSkal3eH4kdQwljWMD4B45AmtGvAWQkGSSNkDTTM9N9T06PFHzPnfH09ExPa2bu91M1qM7h3vded7/ve++cd++5RAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYJrCBGqia+O6fykiN4c+ZvdpY5OcEJKTtg0/YjYk8tSy+x/7Ps0g9hQ+fT4NDp4f+k4N5veHdm5ucWh1oXOQwLTEEQAgGSB4ABICggcgIRDDV2HPxvXXhnaZ5MP6z4dDHxNfFdoav1diWBvHMv9DaHqRx1paW7eFviWFh3ppGtF15/rfDG3nZI1+2DWhr0z8amizoxfy+ZYfhb7p9rlSJkdgbNhfY0ziq0Xo/aFPBR73ah2xHZGbQjMj+lmxWFwQtZpWwnDsrwttT/wB/agfCH3M8prpJPQN/Vx7o01B8NMEPNIDkBAQPAAJAcEDkBCI4avgxX3OOJjOpZExe80I069nIn8YuTfSWWJ/YcOCOKegicUvV+0odKl18MdZJPLRZwlMC3CHByAhIHgAEgKCByAhEMNXg/mN0NR37m1UF/gizQS8J/RoHN0S2pdRT4kL20vUAMpDxXbK6GLjHLnn6gO1hIaco5MEpiUQfFW8Ebye8edOPmU3jIpLFlpXrxF8D11WpNFkNwWIz9qZyhdH7omMxBwUT6cITEvwSA9AQkDwACQEBA9AQiCGr4Jn/mZos9B6jXhX0WQRqcTrJmYfLLb8+9B2VNyu/2ynhuDPYz/5z8Ush0nszMBGIoWCuYkdPrm39biUzGSmc9udmcm4cOHCAf6TvxygBMAdHoCEgOABSAgIHoCEQAxfjSzXFZpcLu0V4ldMG5F3Un34NbNZ4q7H1q7NQt8nOzvLNAWUy2WXKaHPe08ToOgoO0YNQL5+e9PPdvfnQ193X9fvhjZnch6TnBf6jhbFfIdvHjj8/Mt3f+q50LfqKw8fpFkIBF+FFV962Ai+e/O6fUxkBC9EUyR4euryc86Jn8KmRPBMzpGXSZ8PQq5fhBoi+IrY25qKZuSj9+5TZI6HL9d/Ljc+sUOnhPnr4kuvRJuflYLHIz0ACQHBA5AQEDwACYEYvkZy7P6fBrymDPNQ2f8kasY0kYknI5N/75u74NjvRL6/oSlAo9pzPMnlNGnkyMDQYDdNAc98Ya0ZQNOSG7pdY/bPR82WWbP6VCdm/ngT0XtD3/7CLR+0rRYUlxQeKtIMB3d4ABICggcgISB4ABICMXyN9OdLp1oHc4etl58JLSF5hwbw76BJI4vZuasj59TE8Ex5ZpprnePoyHTI9pHe+fo10SQ5MwnG3JB29u/6rN0VXcvEi6KeVPvOpF3fxRvXKWoy+55//NSsWJYNgq+R1YXOSvkmU8Kpe+M6I/jKelR63k1a8HoOLtbT92pqAJkKXo/ZCH6c0jEXP02A9V76tc5JC15xPdRjzk9V4O+bfRFdpEe5iCZPe0X0oSMbaDUCPzy/ZVYIHo/0ACQEBA9AQkDwACTEtI/hNTEzInbq2rz+v4W2hswLWPw5xsf8su2VPXGgZekToefGQqEuFWGbBgbuC+2hfPMfaRJsSdTsYqoROZ0HMLmA3ZvWfcg0ytHepV/atpcmCwvL8CrW4QGMoxvxvtDWO0hdJs7sG+j+kCf/EbsveQ9NBcw9XCkSHLDyvm8eoVkI7vAAJAQED0BCQPAAJMS0j+H3bLztklI2aJYf1qvU+00j8S0SVYBVTEwvUl54cXHX6tC3v7DhG1GfiU2QWLDA9in27dPY9mm7f1pL9YDpxtD0JfEiYuJozV/UPPqEPbVo3mFBzf2ITaEIPZgJLTO1e9P6G0K7LOVr9YP8OjWG15jpGUqAGTDwprSYy84KnOX91XqpCJYbm2g1R5VYisXi/wrtlpaW3oqbaiS+SOy+a91+Fc/TUbO6CN57uSm0md1+uvfeJ6JmNQveE7Xql3aO9Y5jKTmRqDKMO0ETwfvr7a75N3Tb76MGoBfj1/QvCcHjkR6AhIDgAUgICB6AhJj2MbzPuEkTStGa7LXPiOLTSTwTozqRZ0N7sL//O90b138n9C27f+sjVCNXtq18fjttfyH0Xdx/wYbQ1k9woR7ThVQzHMe1e/cM7DoU+b5NNW+W5+lBLaYa8eJtrsKXX6vWZ9dda5dnzKYyjScuUKNguy/9LZ5ctmXrdkoA3OEBSAgIHoCEgOABSIjpH8P7TN+Nl3tCX92uUkxzjC30bn3Hb3y7N61/PbRLRD0rt2ztobG4pyA33Fsw6zR1U9ff2V3LdbrDCcTwMbJE3yHfFDn/d9wo7rXrrs+2W09fniZCLjOTTHQjfXGT/YUNZkDPQH/fuz3zb9GYR1gfmOmwEJsiHfrDPBk166FEmPaCLw2Ve3OO9xtnVqezI6rworxbKqIPmzDtCO3c6fXae2gMuFLvhgrmIHfe2WEE79xwwu46mjxLhOxFarRDokhSLblB89mHvOQnspIcc8kIvtyUH1HtplgsGsFnnF1FIr8d+mSKFF8Ru/4cZr36lVu2badEwSM9AAkBwQOQEBA8AAkxIytxdt257jPGkfFNJP4DthXXPIhknGg+weYUPNPnQrsyCWdJ4aHesTbSdVfH72mC0H4OkpuoHojbEJos/OKyrz7y09C3a9NaOwmHss9oXP17NBbMJ1noVOhadv9Wk3h8ofDxtjkDObMklJN8NDGFF+m+6lFtdjR6jCXy4NCQfD10rfla51FKFNzhAUgICB6AhIDgAUiImbnyjKMXjS0ySI5fCV0at94R2l5kriYsqr2vHge8oDLYJfRkxGYJpIH+gR27N99m3t8vve+vbRVdpr2O6buhS4RNEQh9N+1oInkWJ6YqjjAd139MDM+e55k+LM1UBY3f+/Ro3hirTdtg2+VOeHXkNvG6vhdvrdNbdy/D42h+iWP316FdpvKP67H01WxhRgp++f3bjOD3Fza8UiwWzcw3J/IJY1dGw4jUQfAyYtad92KSdrqrv9VTLR7HYgRfzrK9zpdMAkxP3v9qtjO8YpVkVPsx2uSfRBfIYVw00o6aqw130wtHn1593hyrjYr9cj1ms7a6XigW2cOpDzKcLyVbajyXM4LPlVvevPRr34Dgz4BHegASAoIHICEgeAASYlYsgTsedp4ug3xD6NM4/x5qFMxmOSq91D6+/CtbHw9d3ZvX/YVpI/w+zTtUrdBbfdf8bc0GmBl0ZWKTv9ET4aOa5PjY2Buip7TNU6FLiH8R7exmFrmZGgHT93T/3wtdK7ZsvZ/ArwR3eAASAoIHICEgeAASYmYOvJkYPXS6eMXbsOPzTQuhNaJ/tlu8GsuEscUuvMzv3thxZehi8T8zexa5RGNiuxKOSLyk1jiQC/Sd/rsi3wFrctWBN/r9tOvxmGWvdbu2YIjIFTRlsKkEzEzP6pv4pwmMm2QEf6YsVU/o23d3h5k15UnWeaFLQp9Eg2wmjMhvGptZxS7XmP17/3nTJHNX6YUhXvqqZsHrRewC/WxX2f3LcdOGOT+OFenaqXIRCvtFiVCewqdGIflRtK/nlt+/9QcExg0e6QFICAgegISA4AFIiGQG3owHTTiN+D66N3d8OXJdNyIerx89kZ3n4crPv0Rj5nOpVpgGteOQddnlrHW7lWTbFCbcaqb3zN/bDGbu6tB2+dKp1YXOCa1Hnyq4wwOQEBA8AAkBwQOQECkNvKkKM8uION6RmeBCZfq5YzYFJfTd/W12S1Kp2jqBATK0ILKzSjlZu2mqGX2/nsXZCX03H8fr9RpgVC8q1YF/HDoqMXvUZpCmiBcKt5slyhec7J9bzpXNaj3O24FbZf3dOSNTsdf7kvn9OMteac43vxr6qlU4ricQfERF9JHLCL6r0PFiVspMBRc/OPTRaCP6H6mH4CvCnDRSuXAIxZVzplOCbgR6gdqnn/2J0NfIBN2cgaIR7mCezs88mZLcZfJmVKaK/Rz9wRaGPids1+wryQ+KvvhWtLuGCR6P9AAkBAQPQEJA8AAkBAbe1AEpFMyFs6vv5ev1i/0XphFzgcCvRKI17R27R5dtefTRsfrsLtw2r6+PTLntfNOQqRDEni9lT5caH5GdSER8kSeJZgFOURKT+TXxZGYqrnhg67XUIHCHByAhIHgAEgKCByAhEMPXgXiwTs/mjncWiS4LfU7od6NOV+m3H1WhGfkePh34/0aOF4W8GeDE0RLgnnmevuc2K+iIE9OGheZpfmB+5LvA7koq25hrfXYATb1gph3e80uhT2P49dQgMPCmDowyWKeHoplvO/50rSnnnG9yt4rYZBKlLPhoYBC74XJjy6NGJiGnj6easBOTtON4gS+aXnc1PVGO639fpbMEHukBSAgIHoCEgOABSIiGhjddd3XcEtoZawzLNo4tk/SFtkbHJSE2SwJrouY1s2GmkxpGnwhdQmKiuTL7IRY2s6uylrxZU36A2vtW3fM/zIysUeLzuvBSYW1lUoWZWJEV+Ytm3+R+Q5N71xGYpvC+yLFX8w57Q4dzdqnuLOMdrql/R+hbUvgWJs8AAOoPBA9AQkDwACREY9/Ds3wkNDXOPk+d55kmZKurClMlFjfxuCcfFRCQQSYeoMhpLO8q2ygbV7FkYqc8Hx3q3txh9t+1aX30ETSnIFy2x+jNdphpiKO8g4hdQcb1U78GdEW7ndJRe8z+kLB7xX4qeSeB8cPDVXFsZRzhw7aJnBDmuLiGyRPp7/eWxuNmtR7v5XWzHeGj2u5Y6NOY/ZDZaqn0C2paEK8m1DAaPPBGTGUYf3rpovZx9KveokppGB5Hn/FUl5FKbo/JXFxU4D1Rs37dWH/kMxcFce6wnjG/sMfIr0YHfYi8HaShF0AIvjYqYjeJWP0OTWJNf8CDjuRg6CoT///Qzpr4NZ/ZZPGKwqNv0gwDj/QAJAQED0BCQPAAJERjY3hPm43t+BaNqD5BM4tmPWa7lrrEFVSqZx3Ej5zlMWqfROczahLtmOZBTN7DMf991KxSOcbE1ZpN3R7aLS0tvY0sAz3dwR0egISA4AFICAgegIRobAwfTSSoDJjRuOxnxiNklu/RuDYnJOY4mTmObJmiqjNqmYolLNSk/22yvaJYnNhxlYugHyWq5vj4dDsSr/TCZPctlT6ci9q0Rm0qq9fEK9jMgiIZfEQ/65HQo9/XT00Lkrf0hz4RdTTnCgsfYefMYCVxmRk4VRzw2aE/+/Sc0HdgaasZiLPve8f8Jzs7y5QAZzUlNFwa6t57zTHsONlllu9xjluYS+akZ/2VjV0Rqo8E7+ySP9qnTRNlbbZfVPpIBahbGfMi6HTXPrq4sPfm+DThVBG3Ebh+1jl2Q9zMnqLPRQujPhVxxwK/jGY6zN16Jd8dujz7b4S2E+5T0ZsBM2VnR63lfXNRylLzqLXeua12VN1FNPTeOx4cogTAIz0ACQHBA5AQEDwACYEy1dOIPXevM/kLTRV0eC8dUbMlBKYcjiovCXFl8E48gOdgZJ/U5LDJD2jewVQxOtsDgXCHByAhIHgAEgKCByAhEMM3iP2FDeade6l/4IqykytCH4t8OOr2LvWauF4D+6lZxngKYea4GMibZ/7eRsQu16xn5hwNnOfS2SN+L1888/dLRg4MGlFdR3/TJ2wT/qHj3POh58otD++hBoGlphpGrxF8OcuvZs+/ZZp4+ZyxhwcUyoy/KEskFK7MchPZZdrES03R8PpvZ1PwTaPYtjqTyHlUBYnXomd6WH/9o1Gzhgkej/QAJAQED0BCQPAAJARi+Dqwv3CLmeBSLjZdLZ7N0saD/e4/hDafrppjZ+vxuML1uOJqZaZgfOG+jKYTUaJR49pWjhLGJ9v6rgntluMtLU6azfeTy5fjiVVLNNlnBiIJy9V218NlveNKv2ftRqfH8zslkZsi9yXUIHCHByAhIHgAEgKCByAhEMPXyMt3f+qiJl+6MPQNDowYMHOFRtZXWldcXSeqiDMqfED7HbAujpaeosrgnStpZnGhxvG/Fjrai3M+HtouJ7upKPb9tPhoeebsqGe7ZLMmNLpME5ZFjtyi0FUWu0S5bni+Y55n+9Fi00JE/z/H7+HjakQjYbaDdbzs12130VkCgq+RM2L/Z8YpfIe1ZYHUpRSVHNDtPBd6nFB0AaBzRGZc2asLz/z9EqGPGTNz31q6aKkte1UovEU1cnqEY280yjFvEqp6QXiH/hNdBOjqyL5Ef9d85Ksu+GhNQb0R7NPf6xk6S+CRHoCEgOABSAgIHoCEwGy5gJ2b1l+WYzaDNLz3/yW0Rf8/12ONdqY3NG41M8ayLPuj0HZMp8qlAbvUMTU9Y+1RBvBE6DE/qcf8ZOT+zzS92a9/PaEj3zrwr2yTBcUlhYcasta6yMhJTLs2d1wf2iz+fG1kJtQM8KlHQvvkQFvx2q919tNZAnd4ABICggcgISB4ABIimffwL9x+exNdfNAUNWjvb/vt0GaSK7zYQSwSxfROZH61paD/qWtkPxfZO8S5l0wH70010zLJKo3sV9mNjmMAD/MPQlOPeZ8QD9CYhzcqXbYHn6vf0SKqnbgyTKWsh129Z2R1mxGVfQaKLWa8g6e+H+l79hdC31RVhGXWLMjIOL4nNMqUvZGTkllh6ORgm8kxXDP/jbO6wk06A29U7HMGcq2Rd11o6Am9QrMzK0Jf/AuPW+xiW+qF41lji3viVEv746FvTvEts66eI16q/9wabXvMBN3pnfunQ5vZnXLRABBP1dFP0G22c/rTT1rwcnqGX/zVxoIfucyWFyP4jNxfFYvFuFrMlJWArog+cvXQDAOP9AAkBAQPQEJA8AAkxKwdeNO16ZMfNA5xt+h/boma1afSCNt179nxtz3Tt0Pfii9vfaHaZro3rXss2vAqTRStHquPBpVH9Uc0VVBPtPa9O7TnFts+oS0/YbYs/K/Ndpj61GeWV8pR/j2h7Xno8178H0aHMJ6JO3btdeZHMmIzIKUs/n+Ost1q2x6x/JNnvjG0z/bSTtMN3OEBSAgIHoCEgOABSIgZ+R5eCgVzodo1sPNKV5Ko6guvi7qt0NgxrlhC1eHolbW8IlHVGX07+zeh7Tzv9C3yOo3BaBN1NF5fFdnnjzgaomgADf1Y/54ynosuMoM7eN9xDZm5jcbgdPzOR6y35Xholf3gXnJ2PAGL3EzV4Kgcr9AST97E2pr3eDhqc5V+/ndFW4qXyq4UoDBxvmP5/dAe6i8+v3vzWrO009L7Ot+gRJmpA2+M4LMSLVMR2jJTQp+hyDHeUTO2l1jBM++XSGDLj8170LQ5dsxzZ2d5rO0Oi9376+2+aMwE3Rns2mUq+DLzN0Pfe+940Ai+e/O6TDc+J9qXhalfrzBG8Ffc/6ARvF6k9jrvn7X9uLrg4zLaTEv0WhsNIOLo99JknEh73C9q00Jx1RkhI3h2lJPMRaWxKFnB45EegISA4AFICAgegISYkTF8V7HLDKrhTBN0Ip+iycLcw9GECJeTfxPaA7nysTWFzqNUI10b114X2pqQ+ozG0Z+lGnEifxzaXuTFlV/t7Bmrj/dyiX6494W+UUZcaSrA5gdiVrSs+P522m5m4l3Sf6GJvWV4lluVNexleMCTHfRUFpNk9Y6eXPnAtj8PfTs3dhibWa7RpOE10bZN9Vn9fr6gWZjPh749m9Z+KLRLPju44oGtYyZZZwu4wwOQEBA8AAkBwQOQEDNz4I3YQgSVYiT6Hx81ii9m+v85msRBj0dbfklf3JoqNJWYPbTnH6eqFUdPr3ZC0WonA2byir7fX0nVef3M39tUYvbQbiI6FHfa8YW1C0Ob2bVpzqDKby2D+iWeHLPJPQW54d6C+Z53867/YzdDlVVd3k81Ikw3hLbzckS/x12hr9g/+F3ThuSUnghx1dobrck5JjGFT0ri/sC0oPLTu7641uQmVnypcz/NQmak4DOxg2H0ZPGVLNjYvSpil5LxCP2dsZ17/srm5aYUFRcK4ykOE9NSLBbtCDAiW2JZZDyzzF7Xa5mZZbfsq50/rdapOefi9dgrg27G/K21zaDua0zB83DJm4L5nrvv6rCCd5qwk9oFr5u+wdiOdw0NDhoRrrz/ke+E9u7NHRWxm0FGehpEgpdKWbMmuy/6A3vMrlkzdz+3/WhWCh6P9AAkBAQPQEJA8AAkxKyoeLP/zrUXDkXLD2tixsTrWdkfa4sqw1xapyV/Dv3Zp83ElBO5odu90O22la2G+yvoMRbzXyxrWfHfjWscOYXuzes+Zj3cIV5urdLt+5oFMZOCVjyw7YtUI3s2ddysB2gm1GjK5d9RrTD9XHMKJq5+pHWVGWRzzz33SFxJdufmdSZX4mR4UlU0sSpeKqyS8LV5ISdkjtk5+uEVW7b9kGY4uMMDkBAQPAAJAcEDkBCzYuWZvjl0su2UHYDiKG9islJTU//h3lyJpoATTUMfCG3vhwtZnDt2Lx6KxwVozP5XoalX459ooGrHFxQKVBXhxZFjXrUuXBmY5HjS30+ZqScj2m58QhvszrhZ4+gWGvt42jVANxNsbh3sMt/zjrvWVwpb7A19WUY7Q9uXJGPig9H+/62xpTJIis3gHGH6SGgPee+7/uNaMwhq+Zc743f3055ZIfjVhc7KgJGTdJbQE9qciMy0Rk/oKoIfFrtJGuoV6qHQzre09I6yvFFVPIkRvIqnquBVXF6Ta5MWfL65uYd6e83Ft9TcbCrnaDJuPsWVauLjkeFjNsetiUfzPeezrPLdGMEv+9I2I/j9hQ0Hi8WiSbY5kg6zM+ZFusO4ItBHbRP3uv7QPyLLjBM8HukBSAgIHoCEgOABSIh0louuEzs3rr/WCUdVVvyfUK0wb9dY30zeWXnf1h6qAxwfH8ml1foIyTHHNh6eCEsKD1UmtJgZbLs2rb3Dtspum1CFIpEvhKamHVp3bLaJtDX3db4cHc+I5aiU5aGx8+5bP6yZVjM4x0X7koqr5Ga8XnCHByAhIHgAEgKCByAhEMNXoavQYd6n+37/LmEyVU/HOQPp+6aP0DPa8TmaCljOM7bwnGrL7jDxYLlKAYyJoifZntAuk39ZiH9s90//fBybykJD8w6rmiiLlwB/mWqk7If2Zq7JFNfgctku18X8/ICXAzTDgeCrMWBHzOWY13iRD1GN6AluBC/Mz6y479GpETyRXZOOpW0cy2wNELsTNAVcuaXTCH7X5vUvMcnlppHULnhlJZ0exBPyFaqRNaePzxxj1592mEE27e3tfcu2PNhHMxw80gOQEBA8AAkBwQOQEIjhA+TrtzcdPHjQVDg90e//NrR9tB75qDA/pe1sxdUtW/8TTQEv3bn2wpxzFxin0AVUIxrie2Y/RA2gubnlu729vSan0dbc/MGo2QKq9l2PsmSVFAr2JjZKVZzxsPzPH32TZiG4wwOQEBA8AAkBwQOQEIjhAw4cPNZ+4lR+UejL3Ig4ckThBg0Q/yG0HfGzzsnj1AAyoVZhb46ZpfbruL4X13fM2RFqAD3UU7pswWVmgs1gsbjNtpJr9Yu9NuqaURUOHH+pObQX33tvJS8xJZWOZiIQfMDJYjaPiS6O3ONYEoqN4MtEz638ytbGCL6JWstlWmgPh2qGmfqkmRqSqLqxsL0iQCPC3ZvWG8Fr0rOdRq5RV1Xwg3nKh7ZeXIQg+LfBIz0ACQHBA5AQEDwACYEYPuBQy6EDi4+0mpLGvnXeH4e2BoTzNUY21VSXH5tnl2Q6dmwiS0xPCJbcOxz760JfzaNMKn2E+5cXzt5gk6Vbtv4ktLs2d/wl+fLfhz5mvj609XO+JuJfDX1XPNB5nMCvBHd4ABICggcgISB4ABICMXzADXSD375ou/Fd3HfO86HNmW8ul9kOvolj9sce85UX242gJOV5jtwl1juOKJ7ZDHypx6ozdWWQ3qR8tit0ebHVcIVLx/UERsxeAxB8wJm11+OE2/NUKw0S++ld8TwRWVxzR5EBsx3iaSX4M7PV4iTiLgKTAo/0ACQEBA9AQkDwACQEYvgZjiPe45lMiWWNz6+u1k+zDGZZZWGalRVegAV3eAASAoIHICEgeAASAjH8DKfE8npG9ELoE6Lu0GahTJhN8QhP9C3bpox33AkAwc9wfLN/vXkwZ0ablcQbwRNzXpN0pvRT0ZeN4IfKuYaUtwJnFzzSA5AQEDwACQHBAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDZ5x8BaVrDh2OM7QQAAAAASUVORK5CYII=" + /> + </defs> + </svg> + ); +}; diff --git a/packages/ui/button/external-auth.tsx b/packages/ui/button/external-auth.tsx index 04f05af3..23164cb1 100644 --- a/packages/ui/button/external-auth.tsx +++ b/packages/ui/button/external-auth.tsx @@ -15,9 +15,15 @@ export function ExternalAuthButton({ return ( <Button className={cn( - "flex flex-grow cursor-pointer max-w-full bg-background items-center justify-center gap-[0.625rem] rounded-xl border-[1.5px] border-border px-6 py-5 hover:bg-accent", + "flex flex-grow cursor-pointer max-w-full items-center justify-center gap-[0.625rem] rounded-xl px-6 py-5 hover:opacity-75", className, )} + style={{ + borderRadius: "12px", + background: "linear-gradient(180deg, #00264F 0%, #001933 100%), linear-gradient(180deg, #0A0E14 0%, #05070A 100%)", + boxShadow: "0 1px 2px 0 rgba(0, 43, 87, 0.10), 1px 1px 1px 1px #002B57 inset", + height: "44px", + }} {...props} > <span className="aspect-square">{authIcon}</span> diff --git a/packages/ui/components/button.tsx b/packages/ui/components/button.tsx index 6aee692a..e91bd2e7 100644 --- a/packages/ui/components/button.tsx +++ b/packages/ui/components/button.tsx @@ -8,18 +8,26 @@ const buttonVariants = cva( { variants: { variant: { - default: - "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90", + default: " text-primary-foreground shadow-xs hover:bg-primary/90", + newDefault: + "bg-gradient-to-b from-[#1C2026] to-[#12161C] text-white shadow-[inset_-2px_-2px_6px_0_rgba(0,0,0,0.15),inset_2px_2px_4px_0_rgba(255,255,255,0.05)] hover:from-[#1C2026]/90 hover:to-[#12161C]/90", destructive: "bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60", outline: "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50", secondary: "bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80", + headers: + "border-[#161F2C] border bg-gradient-to-b from-neutral-900 to-black !text-[14px]", ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50", link: "text-primary underline-offset-4 hover:underline", settingsNav: "cursor-pointer rounded-sm bg-transparent", + onboarding: + "rounded-xl !px-6 !py-3 bg-black border border-[#161F2C] hover:bg-[#161F2C] !h-[40px] cursor-pointer text-white", + linkPreview: + "rounded-xl !px-3 !py-1 bg-black border border-[#161F2C] hover:bg-[#161F2C] cursor-pointer text-white border border-[#161F2C]", + insideOut: "shadow-inside-out rounded-full bg-[#0D121A]", }, size: { default: "h-9 px-4 py-2 has-[>svg]:px-3", diff --git a/packages/ui/components/text-separator.tsx b/packages/ui/components/text-separator.tsx index 6e3e671b..bd448233 100644 --- a/packages/ui/components/text-separator.tsx +++ b/packages/ui/components/text-separator.tsx @@ -14,11 +14,9 @@ export function TextSeparator({ className={cn("flex gap-4 items-center justify-center", className)} {...props} > - <div className="w-full h-px bg-border" /> - <span className="text-muted-foreground text-[0.75rem] uppercase tracking-[-0.2px] leading-[0.875rem]"> + <span className="text-foreground text-[0.75rem] uppercase tracking-[-0.2px] leading-3.5"> {text} </span> - <div className="w-full h-px bg-border" /> </div> ); } diff --git a/packages/ui/globals.css b/packages/ui/globals.css index 357e34b7..d92fd10f 100644 --- a/packages/ui/globals.css +++ b/packages/ui/globals.css @@ -90,7 +90,7 @@ --shadow-offset-x: 0; --shadow-offset-y: 1px; --letter-spacing: -0.01em; - --spacing: 0.24rem; + --spacing: 0.25rem; --shadow-2xs: 0 1px 3px 0px hsl(0 0% 0% / 0.02); --shadow-xs: 0 1px 3px 0px hsl(0 0% 0% / 0.02); --shadow-sm: @@ -151,7 +151,7 @@ --shadow-offset-x: 0; --shadow-offset-y: 1px; --letter-spacing: -0.01em; - --spacing: 0.24rem; + --spacing: 0.25rem; --shadow-2xs: 0 1px 3px 0px hsl(0 0% 0% / 0.02); --shadow-xs: 0 1px 3px 0px hsl(0 0% 0% / 0.02); --shadow-sm: @@ -255,6 +255,7 @@ } body { @apply bg-background text-foreground; + font-size: 14px; letter-spacing: var(--tracking-normal); } } diff --git a/packages/ui/input/labeled-input.tsx b/packages/ui/input/labeled-input.tsx index 84f205fe..5bad5410 100644 --- a/packages/ui/input/labeled-input.tsx +++ b/packages/ui/input/labeled-input.tsx @@ -3,7 +3,7 @@ import { Input } from "@ui/components/input"; import { Label1Regular } from "@ui/text/label/label-1-regular"; interface LabeledInputProps extends React.ComponentProps<"div"> { - label: string; + label?: string; inputType: string; inputPlaceholder: string; error?: string | null; @@ -11,23 +11,29 @@ interface LabeledInputProps extends React.ComponentProps<"div"> { } export function LabeledInput({ - label, inputType, inputPlaceholder, className, error, inputProps, + label, ...props }: LabeledInputProps) { return ( <div className={cn("flex flex-col gap-2", className)} {...props}> - <Label1Regular className="text-foreground">{label}</Label1Regular> - + {label && <Label1Regular className="text-foreground">{label}</Label1Regular>} <Input className={cn( - "w-full leading-[1.375rem] tracking-[-0.4px] rounded-2xl p-5 placeholder:text-muted-foreground text-foreground border-[1.5px] border-border disabled:cursor-not-allowed disabled:opacity-50", + "w-full leading-[1.375rem] tracking-[-0.4px] rounded-xl p-4 placeholder:text-muted-foreground/50 text-foreground disabled:cursor-not-allowed disabled:opacity-50", inputProps?.className, )} + style={{ + height: "44px", + borderRadius: "12px", + border: "1px solid rgba(82, 89, 102, 0.20)", + background: "#070E1B", + boxShadow: "0 1px 2px 0 rgba(0, 43, 87, 0.10), 0 0 0 1px rgba(43, 49, 67, 0.08) inset, 0 1px 1px 0 rgba(0, 0, 0, 0.08) inset, 0 2px 4px 0 rgba(0, 0, 0, 0.02) inset", + }} placeholder={inputPlaceholder} type={inputType} {...inputProps} diff --git a/packages/ui/pages/login.tsx b/packages/ui/pages/login.tsx index 8846a906..69b52089 100644 --- a/packages/ui/pages/login.tsx +++ b/packages/ui/pages/login.tsx @@ -480,4 +480,4 @@ export function LoginPage({ )} </section> ); -} +}
\ No newline at end of file diff --git a/packages/validation/api.ts b/packages/validation/api.ts index 91ac5e09..9d8c1983 100644 --- a/packages/validation/api.ts +++ b/packages/validation/api.ts @@ -808,6 +808,7 @@ export const ConnectionResponseSchema = z.object({ id: z.string(), metadata: z.record(z.any()).optional(), provider: z.string(), + containerTags: z.array(z.string()).optional(), }) export const RequestTypeSchema = RequestTypeEnum diff --git a/packages/validation/schemas.ts b/packages/validation/schemas.ts index 92524164..0bd73a1e 100644 --- a/packages/validation/schemas.ts +++ b/packages/validation/schemas.ts @@ -261,6 +261,7 @@ export const MemoryEntrySchema = z.object({ // Status flags isInference: z.boolean().default(false), isForgotten: z.boolean().default(false), + isStatic: z.boolean().default(false), forgetAfter: z.coerce.date().nullable().optional(), forgetReason: z.string().nullable().optional(), |