SYMBOL INDEX (62 symbols across 37 files) FILE: actions/chat.ts type Message (line 11) | type Message = { type NewMessage (line 17) | type NewMessage = Omit; function newChat (line 19) | async function newChat(params: NewMessage) { function chat (line 54) | async function chat(params: Message) { function createCompletion (line 98) | async function createCompletion(apiKey: string, message: string) { FILE: app/(private-layout)/chat/[id]/chat.tsx type ChatProps (line 13) | type ChatProps = { function Chat (line 18) | function Chat({ messages, id }: ChatProps) { type ConversationComponent (line 65) | type ConversationComponent = { function ChatInput (line 70) | function ChatInput({ addMessage, id }: ConversationComponent) { FILE: app/(private-layout)/chat/[id]/loading.tsx function ChatLoading (line 3) | function ChatLoading() { FILE: app/(private-layout)/chat/[id]/page.tsx type PageParams (line 6) | type PageParams = { function ChatSpecificPage (line 12) | async function ChatSpecificPage({ params: { id } }: PageParams) { FILE: app/(private-layout)/chat/input.tsx function ChatInput (line 9) | function ChatInput() { FILE: app/(private-layout)/chat/layout.tsx function ChatLayout (line 4) | function ChatLayout({ children }: PropsWithChildren) { FILE: app/(private-layout)/chat/page.tsx function Chat (line 3) | function Chat() { FILE: app/(private-layout)/layout.tsx function PrivateLayout (line 6) | async function PrivateLayout({ children }: PropsWithChildren) { FILE: app/(public-layout)/(auth)/login/page.tsx function Login (line 3) | function Login() { FILE: app/(public-layout)/(auth)/register/page.tsx function Login (line 3) | function Login() { FILE: app/(public-layout)/(hero)/page.tsx function Home (line 4) | function Home() { FILE: app/(public-layout)/layout.tsx function PublicLayout (line 6) | async function PublicLayout({ children }: PropsWithChildren) { FILE: app/error.tsx function Error (line 6) | function Error({ FILE: app/layout.tsx function RootLayout (line 15) | function RootLayout({ FILE: app/not-found.tsx function NotFoundPage (line 4) | function NotFoundPage() { FILE: components/google-login.tsx function GoogleLogin (line 6) | function GoogleLogin() { FILE: components/hero-nav.tsx function HeroNav (line 6) | function HeroNav() { FILE: components/left-panel.tsx function LeftPanel (line 15) | function LeftPanel() { function ConversationList (line 40) | async function ConversationList() { FILE: components/logo.tsx function Logo (line 3) | function Logo({ function NamedLogoWithLink (line 27) | function NamedLogoWithLink() { FILE: components/navbar.tsx function Navbar (line 14) | function Navbar() { FILE: components/profile.tsx function Profile (line 15) | async function Profile() { FILE: components/session-provider.tsx function NextAuthProvider (line 6) | function NextAuthProvider({ children }: PropsWithChildren) { FILE: components/signout-btn.tsx function SignOutButton (line 6) | function SignOutButton() { FILE: components/submit.tsx function Submit (line 7) | function Submit() { FILE: components/theme-provider.tsx function ThemeProvider (line 6) | function ThemeProvider({ children, ...props }: ThemeProviderProps) { FILE: components/toggle.tsx function ToggleTheme (line 8) | function ToggleTheme() { FILE: components/ui/button.tsx type ButtonProps (line 36) | interface ButtonProps FILE: components/ui/input.tsx type InputProps (line 5) | interface InputProps FILE: components/ui/sheet.tsx type SheetContentProps (line 52) | interface SheetContentProps FILE: components/ui/skeleton.tsx function Skeleton (line 3) | function Skeleton({ FILE: components/ui/toast.tsx type ToastProps (line 113) | type ToastProps = React.ComponentPropsWithoutRef type ToastActionElement (line 115) | type ToastActionElement = React.ReactElement FILE: components/ui/toaster.tsx function Toaster (line 13) | function Toaster() { FILE: components/ui/use-toast.ts constant TOAST_LIMIT (line 9) | const TOAST_LIMIT = 1 constant TOAST_REMOVE_DELAY (line 10) | const TOAST_REMOVE_DELAY = 1000000 type ToasterToast (line 12) | type ToasterToast = ToastProps & { function genId (line 28) | function genId() { type ActionType (line 33) | type ActionType = typeof actionTypes type Action (line 35) | type Action = type State (line 53) | interface State { function dispatch (line 134) | function dispatch(action: Action) { type Toast (line 141) | type Toast = Omit function toast (line 143) | function toast({ ...props }: Toast) { function useToast (line 172) | function useToast() { FILE: components/user-api.tsx function UserApi (line 10) | function UserApi() { FILE: lib/auth.ts type Session (line 7) | interface Session extends DefaultSession { type JWT (line 15) | interface JWT { function getUser (line 54) | async function getUser() { FILE: lib/utils.ts function cn (line 4) | function cn(...inputs: ClassValue[]) { function delay (line 9) | function delay(ms: number): Promise { function generateRandomId (line 17) | function generateRandomId(length: number) { FILE: types/index.ts type JSONMessage (line 11) | type JSONMessage = z.infer;