SYMBOL INDEX (196 symbols across 89 files) FILE: app/(auth)/layout.tsx type AuthLayoutProps (line 1) | interface AuthLayoutProps { function AuthLayout (line 5) | function AuthLayout({ children }: AuthLayoutProps) { FILE: app/(auth)/login/page.tsx function LoginPage (line 14) | function LoginPage() { FILE: app/(auth)/register/page.tsx function RegisterPage (line 13) | function RegisterPage() { FILE: app/(dashboard)/dashboard/billing/loading.tsx function DashboardBillingLoading (line 5) | function DashboardBillingLoading() { FILE: app/(dashboard)/dashboard/billing/page.tsx function BillingPage (line 25) | async function BillingPage() { FILE: app/(dashboard)/dashboard/layout.tsx type DashboardLayoutProps (line 10) | interface DashboardLayoutProps { function DashboardLayout (line 14) | async function DashboardLayout({ FILE: app/(dashboard)/dashboard/loading.tsx function DashboardLoading (line 6) | function DashboardLoading() { FILE: app/(dashboard)/dashboard/page.tsx function DashboardPage (line 16) | async function DashboardPage() { FILE: app/(dashboard)/dashboard/settings/loading.tsx function DashboardSettingsLoading (line 6) | function DashboardSettingsLoading() { FILE: app/(dashboard)/dashboard/settings/page.tsx function SettingsPage (line 14) | async function SettingsPage() { FILE: app/(docs)/docs/[[...slug]]/page.tsx type DocPageProps (line 16) | interface DocPageProps { function getDocFromParams (line 22) | async function getDocFromParams(params) { function generateMetadata (line 33) | async function generateMetadata({ function generateStaticParams (line 75) | async function generateStaticParams(): Promise< function DocPage (line 83) | async function DocPage({ params }: DocPageProps) { FILE: app/(docs)/docs/layout.tsx type DocsLayoutProps (line 4) | interface DocsLayoutProps { function DocsLayout (line 8) | function DocsLayout({ children }: DocsLayoutProps) { FILE: app/(docs)/guides/[...slug]/page.tsx type GuidePageProps (line 18) | interface GuidePageProps { function getGuideFromParams (line 24) | async function getGuideFromParams(params) { function generateMetadata (line 35) | async function generateMetadata({ function generateStaticParams (line 77) | async function generateStaticParams(): Promise< function GuidePage (line 85) | async function GuidePage({ params }: GuidePageProps) { FILE: app/(docs)/guides/layout.tsx type GuidesLayoutProps (line 1) | interface GuidesLayoutProps { function GuidesLayout (line 5) | function GuidesLayout({ children }: GuidesLayoutProps) { FILE: app/(docs)/guides/page.tsx function GuidesPage (line 14) | function GuidesPage() { FILE: app/(docs)/layout.tsx type DocsLayoutProps (line 11) | interface DocsLayoutProps { function DocsLayout (line 15) | function DocsLayout({ children }: DocsLayoutProps) { FILE: app/(editor)/editor/[postId]/loading.tsx function Loading (line 3) | function Loading() { FILE: app/(editor)/editor/[postId]/not-found.tsx function NotFound (line 6) | function NotFound() { FILE: app/(editor)/editor/[postId]/page.tsx function getPostForUser (line 9) | async function getPostForUser(postId: Post["id"], userId: User["id"]) { type EditorPageProps (line 18) | interface EditorPageProps { function EditorPage (line 22) | async function EditorPage({ params }: EditorPageProps) { FILE: app/(editor)/editor/layout.tsx type EditorProps (line 1) | interface EditorProps { function EditorLayout (line 5) | function EditorLayout({ children }: EditorProps) { FILE: app/(marketing)/[...slug]/page.tsx type PageProps (line 13) | interface PageProps { function getPageFromParams (line 19) | async function getPageFromParams(params) { function generateMetadata (line 30) | async function generateMetadata({ function generateStaticParams (line 72) | async function generateStaticParams(): Promise { function PagePage (line 78) | async function PagePage({ params }: PageProps) { FILE: app/(marketing)/blog/[...slug]/page.tsx type PostPageProps (line 16) | interface PostPageProps { function getPostFromParams (line 22) | async function getPostFromParams(params) { function generateMetadata (line 33) | async function generateMetadata({ function generateStaticParams (line 78) | async function generateStaticParams(): Promise< function PostPage (line 86) | async function PostPage({ params }: PostPageProps) { FILE: app/(marketing)/blog/page.tsx function BlogPage (line 12) | async function BlogPage() { FILE: app/(marketing)/layout.tsx type MarketingLayoutProps (line 9) | interface MarketingLayoutProps { function MarketingLayout (line 13) | async function MarketingLayout({ FILE: app/(marketing)/page.tsx function getGitHubStars (line 8) | async function getGitHubStars(): Promise { function IndexPage (line 35) | async function IndexPage() { FILE: app/(marketing)/pricing/page.tsx function PricingPage (line 11) | function PricingPage() { FILE: app/api/og/route.tsx function GET (line 15) | async function GET(req: Request) { FILE: app/api/posts/[postId]/route.ts function DELETE (line 14) | async function DELETE( function PATCH (line 44) | async function PATCH( function verifyCurrentUserHasAccessToPost (line 83) | async function verifyCurrentUserHasAccessToPost(postId: string) { FILE: app/api/posts/route.ts function GET (line 14) | async function GET() { function POST (line 41) | async function POST(req: Request) { FILE: app/api/users/[userId]/route.ts function PATCH (line 14) | async function PATCH( FILE: app/api/users/stripe/route.ts function GET (line 12) | async function GET(req: Request) { FILE: app/api/webhooks/stripe/route.ts function POST (line 8) | async function POST(req: Request) { FILE: app/layout.tsx type RootLayoutProps (line 23) | interface RootLayoutProps { function RootLayout (line 74) | function RootLayout({ children }: RootLayoutProps) { FILE: app/robots.ts function robots (line 3) | function robots(): MetadataRoute.Robots { FILE: components/analytics.tsx function Analytics (line 5) | function Analytics() { FILE: components/billing-form.tsx type BillingFormProps (line 19) | interface BillingFormProps extends React.HTMLAttributes { function BillingForm (line 25) | function BillingForm({ FILE: components/callout.tsx type CalloutProps (line 3) | interface CalloutProps { function Callout (line 9) | function Callout({ FILE: components/card-skeleton.tsx function CardSkeleton (line 4) | function CardSkeleton() { FILE: components/editor.tsx type EditorProps (line 20) | interface EditorProps { type FormData (line 24) | type FormData = z.infer function Editor (line 26) | function Editor({ post }: EditorProps) { FILE: components/empty-placeholder.tsx type EmptyPlaceholderProps (line 6) | interface EmptyPlaceholderProps extends React.HTMLAttributes { function MdxCard (line 10) | function MdxCard({ FILE: components/mdx-components.tsx type MdxProps (line 155) | interface MdxProps { function Mdx (line 159) | function Mdx({ code }: MdxProps) { FILE: components/mobile-nav.tsx type MobileNavProps (line 10) | interface MobileNavProps { function MobileNav (line 15) | function MobileNav({ items, children }: MobileNavProps) { FILE: components/mode-toggle.tsx function ModeToggle (line 15) | function ModeToggle() { FILE: components/nav.tsx type DashboardNavProps (line 10) | interface DashboardNavProps { function DashboardNav (line 14) | function DashboardNav({ items }: DashboardNavProps) { FILE: components/page-header.tsx type DocsPageHeaderProps (line 3) | interface DocsPageHeaderProps extends React.HTMLAttributes {} function DocsSearch (line 11) | function DocsSearch({ className, ...props }: DocsSearchProps) { FILE: components/shell.tsx type DashboardShellProps (line 5) | interface DashboardShellProps extends React.HTMLAttributes) { FILE: components/tailwind-indicator.tsx function TailwindIndicator (line 1) | function TailwindIndicator() { FILE: components/theme-provider.tsx function ThemeProvider (line 7) | function ThemeProvider({ children, ...props }: ThemeProviderProps) { FILE: components/toc.tsx type TocProps (line 9) | interface TocProps { function DashboardTableOfContents (line 13) | function DashboardTableOfContents({ toc }: TocProps) { function useActiveItem (line 40) | function useActiveItem(itemIds: (string | undefined)[]) { type TreeProps (line 83) | interface TreeProps { function Tree (line 89) | function Tree({ tree, level = 1, activeItem }: TreeProps) { FILE: components/ui/badge.tsx type BadgeProps (line 26) | interface BadgeProps function Badge (line 30) | function Badge({ className, variant, ...props }: BadgeProps) { FILE: components/ui/button.tsx type ButtonProps (line 34) | interface ButtonProps FILE: components/ui/calendar.tsx type CalendarProps (line 10) | type CalendarProps = React.ComponentProps function Calendar (line 12) | function Calendar({ FILE: components/ui/command.tsx type CommandDialogProps (line 26) | interface CommandDialogProps extends DialogProps {} FILE: components/ui/input.tsx type InputProps (line 5) | interface InputProps FILE: components/ui/sheet.tsx type SheetPortalProps (line 26) | interface SheetPortalProps type DialogContentProps (line 145) | interface DialogContentProps FILE: components/ui/skeleton.tsx function Skeleton (line 3) | function Skeleton({ FILE: components/ui/textarea.tsx type TextareaProps (line 5) | interface TextareaProps 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 6) | const TOAST_LIMIT = 1 constant TOAST_REMOVE_DELAY (line 7) | const TOAST_REMOVE_DELAY = 1000000 type ToasterToast (line 9) | type ToasterToast = ToastProps & { function genId (line 25) | function genId() { type ActionType (line 30) | type ActionType = typeof actionTypes type Action (line 32) | type Action = type State (line 50) | interface State { function dispatch (line 131) | function dispatch(action: Action) { type Toast (line 138) | interface Toast extends Omit {} function toast (line 140) | function toast({ ...props }: Toast) { function useToast (line 169) | function useToast() { FILE: components/user-account-nav.tsx type UserAccountNavProps (line 16) | interface UserAccountNavProps extends React.HTMLAttributes {} type FormData (line 20) | type FormData = z.infer function UserAuthForm (line 22) | function UserAuthForm({ className, ...props }: UserAuthFormProps) { FILE: components/user-avatar.tsx type UserAvatarProps (line 7) | interface UserAvatarProps extends AvatarProps { function UserAvatar (line 11) | function UserAvatar({ user, ...props }: UserAvatarProps) { FILE: components/user-name-form.tsx type UserNameFormProps (line 26) | interface UserNameFormProps extends React.HTMLAttributes { type FormData (line 30) | type FormData = z.infer function UserNameForm (line 32) | function UserNameForm({ user, className, ...props }: UserNameFormProps) { FILE: contentlayer.config.js method onVisitLine (line 155) | onVisitLine(node) { method onVisitHighlightedLine (line 162) | onVisitHighlightedLine(node) { method onVisitHighlightedWord (line 165) | onVisitHighlightedWord(node) { FILE: hooks/use-lock-body.ts function useLockBody (line 4) | function useLockBody() { FILE: hooks/use-mounted.ts function useMounted (line 3) | function useMounted() { FILE: lib/auth.ts method session (line 73) | async session({ token, session }) { method jwt (line 83) | async jwt({ token, user }) { FILE: lib/exceptions.ts class RequiresProPlanError (line 1) | class RequiresProPlanError extends Error { method constructor (line 2) | constructor(message = "This action requires a pro plan") { FILE: lib/session.ts function getCurrentUser (line 5) | async function getCurrentUser() { FILE: lib/subscription.ts function getUserSubscriptionPlan (line 7) | async function getUserSubscriptionPlan( FILE: lib/toc.ts function flattenNode (line 10) | function flattenNode(node) { type Item (line 19) | interface Item { type Items (line 25) | interface Items { function getItems (line 29) | function getItems(node, current): Items { type TableOfContents (line 71) | type TableOfContents = Items function getTableOfContents (line 73) | async function getTableOfContents( FILE: lib/utils.ts function cn (line 6) | function cn(...inputs: ClassValue[]) { function formatDate (line 10) | function formatDate(input: string | number): string { function absoluteUrl (line 19) | function absoluteUrl(path: string) { FILE: middleware.ts method authorized (line 34) | async authorized() { FILE: prisma/migrations/20221021182747_init/migration.sql type `accounts` (line 2) | CREATE TABLE `accounts` ( type `sessions` (line 23) | CREATE TABLE `sessions` ( type `users` (line 34) | CREATE TABLE `users` ( type `verification_tokens` (line 48) | CREATE TABLE `verification_tokens` ( type `posts` (line 58) | CREATE TABLE `posts` ( FILE: prisma/migrations/20221118173244_add_stripe_columns/migration.sql type `users_stripe_customer_id_key` (line 24) | CREATE UNIQUE INDEX `users_stripe_customer_id_key` ON `users`(`stripe_cu... type `users_stripe_subscription_id_key` (line 27) | CREATE UNIQUE INDEX `users_stripe_subscription_id_key` ON `users`(`strip... FILE: types/index.d.ts type NavItem (line 6) | type NavItem = { type MainNavItem (line 12) | type MainNavItem = NavItem type SidebarNavItem (line 14) | type SidebarNavItem = { type SiteConfig (line 30) | type SiteConfig = { type DocsConfig (line 41) | type DocsConfig = { type MarketingConfig (line 46) | type MarketingConfig = { type DashboardConfig (line 50) | type DashboardConfig = { type SubscriptionPlan (line 55) | type SubscriptionPlan = { type UserSubscriptionPlan (line 61) | type UserSubscriptionPlan = SubscriptionPlan & FILE: types/next-auth.d.ts type UserId (line 4) | type UserId = string type JWT (line 7) | interface JWT { type Session (line 13) | interface Session {