SYMBOL INDEX (76 symbols across 52 files) FILE: drizzle/0000_funny_johnny_blaze.sql type "early_access" (line 1) | CREATE TABLE IF NOT EXISTS "early_access" ( FILE: drizzle/0001_minor_warlock.sql type "modules" (line 1) | CREATE TABLE IF NOT EXISTS "modules" ( FILE: eslint.d.ts class FlatCompat (line 27) | class FlatCompat { FILE: src/app/(dashboard)/(auth)/sign-in/[[...sign-in]]/page.tsx function Page (line 7) | function Page() { FILE: src/app/(dashboard)/(auth)/sign-up/[[...sign-in]]/page.tsx function Page (line 7) | function Page() { FILE: src/app/(dashboard)/app/_components/active-button.tsx type Props (line 9) | interface Props { function ActiveButton (line 15) | function ActiveButton({ href, label, icon }: Props) { FILE: src/app/(dashboard)/app/_components/create-module-popover.tsx type StepHeadingProps (line 32) | interface StepHeadingProps { type IconPickerProps (line 49) | interface IconPickerProps { function IconPicker (line 53) | function IconPicker({ iconOnClickHandler }: IconPickerProps) { function CreateModulePopover (line 100) | function CreateModulePopover() { FILE: src/app/(dashboard)/app/_components/module-card.tsx type ModuleCardProps (line 7) | interface ModuleCardProps { function ModuleCard (line 15) | function ModuleCard({ FILE: src/app/(dashboard)/app/_components/recent-modules.tsx type RecentModulesProps (line 12) | interface RecentModulesProps { function RecentModules (line 16) | function RecentModules({ modules }: RecentModulesProps) { FILE: src/app/(dashboard)/app/_components/side-menu.tsx function SideMenu (line 37) | async function SideMenu() { FILE: src/app/(dashboard)/app/_components/welcome-message.tsx function WelcomeMessage (line 6) | function WelcomeMessage() { FILE: src/app/(dashboard)/app/layout.tsx function AppLayout (line 7) | function AppLayout({ children }: PropsWithChildren) { FILE: src/app/(dashboard)/app/module/[id]/page.tsx type Props (line 17) | interface Props { type UserModule (line 23) | type UserModule = RouterOutputs['modules']['getById']; function ModulePage (line 25) | async function ModulePage({ params }: Props) { FILE: src/app/(dashboard)/app/page.tsx function DashboardHome (line 5) | async function DashboardHome() { FILE: src/app/(dashboard)/layout.tsx function DashboardLayout (line 12) | function DashboardLayout({ children }: PropsWithChildren) { FILE: src/app/(site)/(legal)/layout.tsx function LegalLayout (line 3) | function LegalLayout({ children }: PropsWithChildren) { FILE: src/app/(site)/(legal)/privacy/page.tsx function PrivacyPage (line 5) | async function PrivacyPage() { FILE: src/app/(site)/(legal)/tos/page.tsx function TermsPage (line 5) | async function TermsPage() { FILE: src/app/(site)/_components/custom-mdx.tsx function createHeading (line 9) | function createHeading(level: 1 | 2 | 3 | 4 | 5 | 6, className: string) { function CustomMDX (line 100) | function CustomMDX(props: MDXRemoteProps) { FILE: src/app/(site)/blog/[slug]/page.tsx type Props (line 11) | interface Props { function generateMetadata (line 17) | async function generateMetadata({ function Home (line 44) | async function Home({ params }: Props) { FILE: src/app/(site)/blog/page.tsx function BlogPage (line 6) | async function BlogPage() { FILE: src/app/(site)/early-access/_forms/join.tsx function onSubmit (line 57) | function onSubmit(values: z.infer) { FILE: src/app/(site)/early-access/layout.tsx function EarlyAccessLayout (line 4) | function EarlyAccessLayout({ children }: PropsWithChildren) { FILE: src/app/(site)/early-access/page.tsx function EarlyAccessPage (line 10) | function EarlyAccessPage() { FILE: src/app/(site)/layout.tsx function RootLayout (line 13) | function RootLayout({ children }: PropsWithChildren) { FILE: src/app/(site)/page.tsx function Home (line 13) | function Home() { FILE: src/app/layout.tsx function RootLayout (line 26) | function RootLayout({ children }: PropsWithChildren) { FILE: src/app/manifest.ts function manifest (line 10) | function manifest(): MetadataRoute.Manifest { FILE: src/app/not-found.tsx function NotFoundPage (line 7) | function NotFoundPage() { FILE: src/app/robots.ts function robots (line 10) | function robots(): MetadataRoute.Robots { FILE: src/db/schema/modules.ts type InsertModuleInput (line 39) | type InsertModuleInput = z.infer; FILE: src/emails/layouts/Base.tsx type Props (line 15) | type Props = PropsWithChildren<{ FILE: src/emails/templates/early-access-joined.tsx type Props (line 6) | interface Props { function EarlyAccessJoinedEmail (line 11) | function EarlyAccessJoinedEmail({ name, email }: Props) { FILE: src/lib/mdx.ts function parseFrontmatter (line 5) | function parseFrontmatter>( function getMDXData (line 32) | async function getMDXData>(dir: string) { type BlogMetadata (line 54) | interface BlogMetadata { type LegalMetadata (line 62) | interface LegalMetadata { function getBlogPosts (line 68) | function getBlogPosts() { function getLegalDocs (line 72) | function getLegalDocs() { FILE: src/lib/trpc/react.tsx function TRPCReactProvider (line 33) | function TRPCReactProvider(props: { children: React.ReactNode }) { FILE: src/lib/trpc/types.ts type ReactQueryOptions (line 5) | type ReactQueryOptions = inferReactQueryProcedureOptions; type RouterInputs (line 6) | type RouterInputs = inferRouterInputs; type RouterOutputs (line 7) | type RouterOutputs = inferRouterOutputs; FILE: src/mdx-components.tsx function useMDXComponents (line 5) | function useMDXComponents(components: MDXComponents): MDXComponents { FILE: src/primitives/button.tsx type ButtonProps (line 38) | interface ButtonProps FILE: src/primitives/form.tsx type FormFieldContextValue (line 17) | interface FormFieldContextValue< type FormItemContextValue (line 65) | interface FormItemContextValue { FILE: src/primitives/icon.tsx type Props (line 3) | interface Props { type IconNames (line 19) | type IconNames = keyof typeof icons; FILE: src/primitives/input.tsx type InputProps (line 5) | type InputProps = React.InputHTMLAttributes; FILE: src/primitives/resizable-panel.tsx function ResizablePanel (line 21) | function ResizablePanel({ children }: PropsWithChildren) { FILE: src/primitives/skeleton.tsx function Skeleton (line 3) | function Skeleton({ FILE: src/primitives/sonner.tsx type ToasterProps (line 6) | type ToasterProps = React.ComponentProps; FILE: src/primitives/textarea.tsx type TextareaProps (line 5) | type TextareaProps = React.TextareaHTMLAttributes; FILE: src/server/index.ts type AppRouter (line 11) | type AppRouter = typeof appRouter; FILE: src/server/routers/early-access.ts function isEmailGibberish (line 81) | function isEmailGibberish(username: string): boolean { function hasAlternatingCharsAndNumbers (line 92) | function hasAlternatingCharsAndNumbers(username: string): boolean { function scoreEmail (line 98) | function scoreEmail(email: string): number { function isLikelyHuman (line 155) | function isLikelyHuman(email: string, threshold = 30): boolean { FILE: src/server/trpc.ts method errorFormatter (line 21) | errorFormatter({ shape, error }) { FILE: src/utils/base-url.ts function getBaseUrl (line 7) | function getBaseUrl() { FILE: src/utils/cn.ts function cn (line 15) | function cn(...inputs: ClassValue[]) { FILE: src/utils/construct-metadata.ts function constructMetadata (line 19) | function constructMetadata({ FILE: tailwind.config.ts type Scale (line 8) | type Scale = 'gray' | 'pink' | 'salmon' | 'indigo' | 'red';