{"version":3,"file":"blocknote-shadcn.cjs","names":[],"sources":["../src/lib/utils.ts","../src/components/ui/avatar.tsx","../src/components/ui/badge.tsx","../src/components/ui/button.tsx","../src/components/ui/card.tsx","../src/components/ui/dropdown-menu.tsx","../src/components/ui/label.tsx","../src/components/ui/form.tsx","../src/components/ui/input.tsx","../src/components/ui/popover.tsx","../src/components/ui/select.tsx","../src/components/ui/skeleton.tsx","../src/components/ui/tabs.tsx","../src/components/ui/toggle.tsx","../src/components/ui/tooltip.tsx","../src/ShadCNComponentsContext.tsx","../src/form/Form.tsx","../src/form/TextInput.tsx","../src/menu/Menu.tsx","../src/menu/Button.tsx","../src/panel/Panel.tsx","../src/panel/PanelTab.tsx","../src/panel/PanelTextInput.tsx","../src/popover/popover.tsx","../src/sideMenu/SideMenu.tsx","../src/sideMenu/SideMenuButton.tsx","../src/suggestionMenu/gridSuggestionMenu/GridSuggestionMenu.tsx","../src/suggestionMenu/gridSuggestionMenu/GridSuggestionMenuEmptyItem.tsx","../src/suggestionMenu/SuggestionMenu.tsx","../src/suggestionMenu/SuggestionMenuEmptyItem.tsx","../src/suggestionMenu/SuggestionMenuItem.tsx","../src/suggestionMenu/SuggestionMenuLabel.tsx","../src/suggestionMenu/SuggestionMenuLoader.tsx","../src/tableHandle/ExtendButton.tsx","../src/tableHandle/TableHandle.tsx","../src/toolbar/Toolbar.tsx","../src/comments/Card.tsx","../src/comments/Comment.tsx","../src/comments/Editor.tsx","../src/badge/Badge.tsx","../src/panel/PanelButton.tsx","../src/panel/PanelFileInput.tsx","../src/suggestionMenu/gridSuggestionMenu/GridSuggestionMenuItem.tsx","../src/suggestionMenu/gridSuggestionMenu/GridSuggestionMenuLoader.tsx","../src/components.ts","../src/BlockNoteView.tsx"],"sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n  return twMerge(clsx(inputs));\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\";\n\nimport { cn } from \"../../lib/utils\";\n\nfunction Avatar({\n  className,\n  ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Root>) {\n  return (\n    <AvatarPrimitive.Root\n      data-slot=\"avatar\"\n      className={cn(\n        \"relative flex size-8 shrink-0 overflow-hidden rounded-full\",\n        className,\n      )}\n      {...props}\n    />\n  );\n}\n\nfunction AvatarImage({\n  className,\n  ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Image>) {\n  return (\n    <AvatarPrimitive.Image\n      data-slot=\"avatar-image\"\n      className={cn(\"aspect-square size-full\", className)}\n      {...props}\n    />\n  );\n}\n\nfunction AvatarFallback({\n  className,\n  ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Fallback>) {\n  return (\n    <AvatarPrimitive.Fallback\n      data-slot=\"avatar-fallback\"\n      className={cn(\n        \"bg-muted flex size-full items-center justify-center rounded-full\",\n        className,\n      )}\n      {...props}\n    />\n  );\n}\n\nexport { Avatar, AvatarImage, AvatarFallback };\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst badgeVariants = cva(\n  \"inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden\",\n  {\n    variants: {\n      variant: {\n        default:\n          \"border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90\",\n        secondary:\n          \"border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90\",\n        destructive:\n          \"border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n        outline:\n          \"text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground\",\n      },\n    },\n    defaultVariants: {\n      variant: \"default\",\n    },\n  },\n);\n\nfunction Badge({\n  className,\n  variant,\n  asChild = false,\n  ...props\n}: React.ComponentProps<\"span\"> &\n  VariantProps<typeof badgeVariants> & { asChild?: boolean }) {\n  const Comp = asChild ? Slot : \"span\";\n\n  return (\n    <Comp\n      data-slot=\"badge\"\n      className={cn(badgeVariants({ variant }), className)}\n      {...props}\n    />\n  );\n}\n\nexport { Badge, badgeVariants };\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst buttonVariants = cva(\n  \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*=size-])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n  {\n    variants: {\n      variant: {\n        default:\n          \"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90\",\n        destructive:\n          \"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\",\n        outline:\n          \"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50\",\n        secondary:\n          \"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80\",\n        ghost:\n          \"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50\",\n        link: \"text-primary underline-offset-4 hover:underline\",\n      },\n      size: {\n        default: \"h-9 px-4 py-2 has-[>svg]:px-3\",\n        sm: \"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5\",\n        lg: \"h-10 rounded-md px-6 has-[>svg]:px-4\",\n        icon: \"size-9\",\n      },\n    },\n    defaultVariants: {\n      variant: \"default\",\n      size: \"default\",\n    },\n  },\n);\n\nfunction Button({\n  className,\n  variant,\n  size,\n  asChild = false,\n  ...props\n}: React.ComponentProps<\"button\"> &\n  VariantProps<typeof buttonVariants> & {\n    asChild?: boolean;\n  }) {\n  const Comp = asChild ? Slot : \"button\";\n\n  return (\n    <Comp\n      data-slot=\"button\"\n      className={cn(buttonVariants({ variant, size, className }))}\n      {...props}\n    />\n  );\n}\n\nexport { Button, buttonVariants };\n","import * as React from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nfunction Card({ className, ...props }: React.ComponentProps<\"div\">) {\n  return (\n    <div\n      data-slot=\"card\"\n      className={cn(\n        \"bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm\",\n        className,\n      )}\n      {...props}\n    />\n  );\n}\n\nfunction CardHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n  return (\n    <div\n      data-slot=\"card-header\"\n      className={cn(\n        \"@container/card-header has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6 grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6\",\n        className,\n      )}\n      {...props}\n    />\n  );\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n  return (\n    <div\n      data-slot=\"card-title\"\n      className={cn(\"font-semibold leading-none\", className)}\n      {...props}\n    />\n  );\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<\"div\">) {\n  return (\n    <div\n      data-slot=\"card-description\"\n      className={cn(\"text-muted-foreground text-sm\", className)}\n      {...props}\n    />\n  );\n}\n\nfunction CardAction({ className, ...props }: React.ComponentProps<\"div\">) {\n  return (\n    <div\n      data-slot=\"card-action\"\n      className={cn(\n        \"col-start-2 row-span-2 row-start-1 self-start justify-self-end\",\n        className,\n      )}\n      {...props}\n    />\n  );\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<\"div\">) {\n  return (\n    <div\n      data-slot=\"card-content\"\n      className={cn(\"px-6\", className)}\n      {...props}\n    />\n  );\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n  return (\n    <div\n      data-slot=\"card-footer\"\n      className={cn(\"[.border-t]:pt-6 flex items-center px-6\", className)}\n      {...props}\n    />\n  );\n}\n\nexport {\n  Card,\n  CardHeader,\n  CardFooter,\n  CardTitle,\n  CardAction,\n  CardDescription,\n  CardContent,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from \"lucide-react\";\n\nimport { cn } from \"../../lib/utils\";\n\nfunction DropdownMenu({\n  ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) {\n  return <DropdownMenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />;\n}\n\nfunction DropdownMenuPortal({\n  ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) {\n  return (\n    <DropdownMenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />\n  );\n}\n\nfunction DropdownMenuTrigger({\n  ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>) {\n  return (\n    <DropdownMenuPrimitive.Trigger\n      data-slot=\"dropdown-menu-trigger\"\n      {...props}\n    />\n  );\n}\n\nfunction DropdownMenuContent({\n  className,\n  sideOffset = 4,\n  ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Content>) {\n  return (\n    <DropdownMenuPrimitive.Content\n      data-slot=\"dropdown-menu-content\"\n      sideOffset={sideOffset}\n      className={cn(\n        \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 max-h-(--radix-dropdown-menu-content-available-height) origin-(--radix-dropdown-menu-content-transform-origin) z-50 min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border p-1 shadow-md\",\n        className,\n      )}\n      {...props}\n    />\n  );\n}\n\nfunction DropdownMenuGroup({\n  ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Group>) {\n  return (\n    <DropdownMenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />\n  );\n}\n\nfunction DropdownMenuItem({\n  className,\n  inset,\n  variant = \"default\",\n  ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {\n  inset?: boolean;\n  variant?: \"default\" | \"destructive\";\n}) {\n  return (\n    <DropdownMenuPrimitive.Item\n      data-slot=\"dropdown-menu-item\"\n      data-inset={inset}\n      data-variant={variant}\n      className={cn(\n        \"focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*=text-])]:text-muted-foreground outline-hidden relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm data-[disabled]:pointer-events-none data-[inset]:pl-8 data-[disabled]:opacity-50 [&_svg:not([class*=size-])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n        className,\n      )}\n      {...props}\n    />\n  );\n}\n\nfunction DropdownMenuCheckboxItem({\n  className,\n  children,\n  checked,\n  ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem>) {\n  return (\n    <DropdownMenuPrimitive.CheckboxItem\n      data-slot=\"dropdown-menu-checkbox-item\"\n      className={cn(\n        \"focus:bg-accent focus:text-accent-foreground outline-hidden relative flex cursor-default select-none items-center gap-2 rounded-sm py-1.5 pl-8 pr-2 text-sm data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg:not([class*=size-])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n        className,\n      )}\n      checked={checked}\n      {...props}\n    >\n      <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n        <DropdownMenuPrimitive.ItemIndicator>\n          <CheckIcon className=\"size-4\" />\n        </DropdownMenuPrimitive.ItemIndicator>\n      </span>\n      {children}\n    </DropdownMenuPrimitive.CheckboxItem>\n  );\n}\n\nfunction DropdownMenuRadioGroup({\n  ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) {\n  return (\n    <DropdownMenuPrimitive.RadioGroup\n      data-slot=\"dropdown-menu-radio-group\"\n      {...props}\n    />\n  );\n}\n\nfunction DropdownMenuRadioItem({\n  className,\n  children,\n  ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem>) {\n  return (\n    <DropdownMenuPrimitive.RadioItem\n      data-slot=\"dropdown-menu-radio-item\"\n      className={cn(\n        \"focus:bg-accent focus:text-accent-foreground outline-hidden relative flex cursor-default select-none items-center gap-2 rounded-sm py-1.5 pl-8 pr-2 text-sm data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg:not([class*=size-])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n        className,\n      )}\n      {...props}\n    >\n      <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n        <DropdownMenuPrimitive.ItemIndicator>\n          <CircleIcon className=\"size-2 fill-current\" />\n        </DropdownMenuPrimitive.ItemIndicator>\n      </span>\n      {children}\n    </DropdownMenuPrimitive.RadioItem>\n  );\n}\n\nfunction DropdownMenuLabel({\n  className,\n  inset,\n  ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {\n  inset?: boolean;\n}) {\n  return (\n    <DropdownMenuPrimitive.Label\n      data-slot=\"dropdown-menu-label\"\n      data-inset={inset}\n      className={cn(\n        \"px-2 py-1.5 text-sm font-medium data-[inset]:pl-8\",\n        className,\n      )}\n      {...props}\n    />\n  );\n}\n\nfunction DropdownMenuSeparator({\n  className,\n  ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>) {\n  return (\n    <DropdownMenuPrimitive.Separator\n      data-slot=\"dropdown-menu-separator\"\n      className={cn(\"bg-border -mx-1 my-1 h-px\", className)}\n      {...props}\n    />\n  );\n}\n\nfunction DropdownMenuShortcut({\n  className,\n  ...props\n}: React.ComponentProps<\"span\">) {\n  return (\n    <span\n      data-slot=\"dropdown-menu-shortcut\"\n      className={cn(\n        \"text-muted-foreground ml-auto text-xs tracking-widest\",\n        className,\n      )}\n      {...props}\n    />\n  );\n}\n\nfunction DropdownMenuSub({\n  ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>) {\n  return <DropdownMenuPrimitive.Sub data-slot=\"dropdown-menu-sub\" {...props} />;\n}\n\nfunction DropdownMenuSubTrigger({\n  className,\n  inset,\n  children,\n  ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {\n  inset?: boolean;\n}) {\n  return (\n    <DropdownMenuPrimitive.SubTrigger\n      data-slot=\"dropdown-menu-sub-trigger\"\n      data-inset={inset}\n      className={cn(\n        \"focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground outline-hidden flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm data-[inset]:pl-8\",\n        className,\n      )}\n      {...props}\n    >\n      {children}\n      <ChevronRightIcon className=\"ml-auto size-4\" />\n    </DropdownMenuPrimitive.SubTrigger>\n  );\n}\n\nfunction DropdownMenuSubContent({\n  className,\n  ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>) {\n  return (\n    <DropdownMenuPrimitive.SubContent\n      data-slot=\"dropdown-menu-sub-content\"\n      className={cn(\n        \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-(--radix-dropdown-menu-content-transform-origin) z-50 min-w-[8rem] overflow-hidden rounded-md border p-1 shadow-lg\",\n        className,\n      )}\n      {...props}\n    />\n  );\n}\n\nexport {\n  DropdownMenu,\n  DropdownMenuPortal,\n  DropdownMenuTrigger,\n  DropdownMenuContent,\n  DropdownMenuGroup,\n  DropdownMenuLabel,\n  DropdownMenuItem,\n  DropdownMenuCheckboxItem,\n  DropdownMenuRadioGroup,\n  DropdownMenuRadioItem,\n  DropdownMenuSeparator,\n  DropdownMenuShortcut,\n  DropdownMenuSub,\n  DropdownMenuSubTrigger,\n  DropdownMenuSubContent,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\n\nimport { cn } from \"../../lib/utils\";\n\nfunction Label({\n  className,\n  ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n  return (\n    <LabelPrimitive.Root\n      data-slot=\"label\"\n      className={cn(\n        \"flex select-none items-center gap-2 text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-50 group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50\",\n        className,\n      )}\n      {...props}\n    />\n  );\n}\n\nexport { Label };\n","import * as React from \"react\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport {\n  Controller,\n  FormProvider,\n  useFormContext,\n  useFormState,\n  type ControllerProps,\n  type FieldPath,\n  type FieldValues,\n} from \"react-hook-form\";\n\nimport { cn } from \"../../lib/utils\";\nimport { Label } from \"./label\";\n\nconst Form = FormProvider;\n\ntype FormFieldContextValue<\n  TFieldValues extends FieldValues = FieldValues,\n  TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n> = {\n  name: TName;\n};\n\nconst FormFieldContext = React.createContext<FormFieldContextValue>(\n  {} as FormFieldContextValue,\n);\n\nconst FormField = <\n  TFieldValues extends FieldValues = FieldValues,\n  TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n  ...props\n}: ControllerProps<TFieldValues, TName>) => {\n  return (\n    <FormFieldContext.Provider value={{ name: props.name }}>\n      <Controller {...props} />\n    </FormFieldContext.Provider>\n  );\n};\n\nconst useFormField = () => {\n  const fieldContext = React.useContext(FormFieldContext);\n  const itemContext = React.useContext(FormItemContext);\n  const { getFieldState } = useFormContext();\n  const formState = useFormState({ name: fieldContext.name });\n  const fieldState = getFieldState(fieldContext.name, formState);\n\n  if (!fieldContext) {\n    throw new Error(\"useFormField should be used within <FormField>\");\n  }\n\n  const { id } = itemContext;\n\n  return {\n    id,\n    name: fieldContext.name,\n    formItemId: `${id}-form-item`,\n    formDescriptionId: `${id}-form-item-description`,\n    formMessageId: `${id}-form-item-message`,\n    ...fieldState,\n  };\n};\n\ntype FormItemContextValue = {\n  id: string;\n};\n\nconst FormItemContext = React.createContext<FormItemContextValue>(\n  {} as FormItemContextValue,\n);\n\nfunction FormItem({ className, ...props }: React.ComponentProps<\"div\">) {\n  const id = React.useId();\n\n  return (\n    <FormItemContext.Provider value={{ id }}>\n      <div\n        data-slot=\"form-item\"\n        className={cn(\"grid gap-2\", className)}\n        {...props}\n      />\n    </FormItemContext.Provider>\n  );\n}\n\nfunction FormLabel({\n  className,\n  ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n  const { error, formItemId } = useFormField();\n\n  return (\n    <Label\n      data-slot=\"form-label\"\n      data-error={!!error}\n      className={cn(\"data-[error=true]:text-destructive\", className)}\n      htmlFor={formItemId}\n      {...props}\n    />\n  );\n}\n\nfunction FormControl({ ...props }: React.ComponentProps<typeof Slot>) {\n  const { error, formItemId, formDescriptionId, formMessageId } =\n    useFormField();\n\n  return (\n    <Slot\n      data-slot=\"form-control\"\n      id={formItemId}\n      aria-describedby={\n        !error\n          ? `${formDescriptionId}`\n          : `${formDescriptionId} ${formMessageId}`\n      }\n      aria-invalid={!!error}\n      {...props}\n    />\n  );\n}\n\nfunction FormDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n  const { formDescriptionId } = useFormField();\n\n  return (\n    <p\n      data-slot=\"form-description\"\n      id={formDescriptionId}\n      className={cn(\"text-muted-foreground text-sm\", className)}\n      {...props}\n    />\n  );\n}\n\nfunction FormMessage({ className, ...props }: React.ComponentProps<\"p\">) {\n  const { error, formMessageId } = useFormField();\n  const body = error ? String(error?.message ?? \"\") : props.children;\n\n  if (!body) {\n    return null;\n  }\n\n  return (\n    <p\n      data-slot=\"form-message\"\n      id={formMessageId}\n      className={cn(\"text-destructive text-sm\", className)}\n      {...props}\n    >\n      {body}\n    </p>\n  );\n}\n\nexport {\n  useFormField,\n  Form,\n  FormItem,\n  FormLabel,\n  FormControl,\n  FormDescription,\n  FormMessage,\n  FormField,\n};\n","import * as React from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nfunction Input({ className, type, ...props }: React.ComponentProps<\"input\">) {\n  return (\n    <input\n      type={type}\n      data-slot=\"input\"\n      className={cn(\n        \"file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input shadow-xs flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base outline-none transition-[color,box-shadow] file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n        \"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\n        \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n        className,\n      )}\n      {...props}\n    />\n  );\n}\n\nexport { Input };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\";\n\nimport { cn } from \"../../lib/utils\";\n\nfunction Popover({\n  ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n  return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />;\n}\n\nfunction PopoverTrigger({\n  ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n  return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />;\n}\n\nfunction PopoverContent({\n  className,\n  align = \"center\",\n  sideOffset = 4,\n  ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Content>) {\n  return (\n    <PopoverPrimitive.Content\n      data-slot=\"popover-content\"\n      align={align}\n      sideOffset={sideOffset}\n      className={cn(\n        \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-(--radix-popover-content-transform-origin) outline-hidden z-50 w-72 rounded-md border p-4 shadow-md\",\n        className,\n      )}\n      {...props}\n    />\n  );\n}\n\nfunction PopoverAnchor({\n  ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n  return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />;\n}\n\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor };\n","import * as React from \"react\";\nimport * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon } from \"lucide-react\";\n\nimport { cn } from \"../../lib/utils\";\n\nfunction Select({\n  ...props\n}: React.ComponentProps<typeof SelectPrimitive.Root>) {\n  return <SelectPrimitive.Root data-slot=\"select\" {...props} />;\n}\n\nfunction SelectGroup({\n  ...props\n}: React.ComponentProps<typeof SelectPrimitive.Group>) {\n  return <SelectPrimitive.Group data-slot=\"select-group\" {...props} />;\n}\n\nfunction SelectValue({\n  ...props\n}: React.ComponentProps<typeof SelectPrimitive.Value>) {\n  return <SelectPrimitive.Value data-slot=\"select-value\" {...props} />;\n}\n\nfunction SelectTrigger({\n  className,\n  size = \"default\",\n  children,\n  ...props\n}: React.ComponentProps<typeof SelectPrimitive.Trigger> & {\n  size?: \"sm\" | \"default\";\n}) {\n  return (\n    <SelectPrimitive.Trigger\n      data-slot=\"select-trigger\"\n      data-size={size}\n      className={cn(\n        \"border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*=text-])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 shadow-xs flex w-fit items-center justify-between gap-2 whitespace-nowrap rounded-md border bg-transparent px-3 py-2 text-sm outline-none transition-[color,box-shadow] focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg:not([class*=size-])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n        className,\n      )}\n      {...props}\n    >\n      {children}\n      <SelectPrimitive.Icon asChild>\n        <ChevronDownIcon className=\"size-4 opacity-50\" />\n      </SelectPrimitive.Icon>\n    </SelectPrimitive.Trigger>\n  );\n}\n\nfunction SelectContent({\n  className,\n  children,\n  position = \"popper\",\n  ...props\n}: React.ComponentProps<typeof SelectPrimitive.Content>) {\n  return (\n    <SelectPrimitive.Content\n      data-slot=\"select-content\"\n      className={cn(\n        \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 max-h-(--radix-select-content-available-height) origin-(--radix-select-content-transform-origin) relative z-50 min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border shadow-md\",\n        position === \"popper\" &&\n          \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n        className,\n      )}\n      position={position}\n      {...props}\n    >\n      <SelectScrollUpButton />\n      <SelectPrimitive.Viewport\n        className={cn(\n          \"p-1\",\n          position === \"popper\" &&\n            \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1\",\n        )}\n      >\n        {children}\n      </SelectPrimitive.Viewport>\n      <SelectScrollDownButton />\n    </SelectPrimitive.Content>\n  );\n}\n\nfunction SelectLabel({\n  className,\n  ...props\n}: React.ComponentProps<typeof SelectPrimitive.Label>) {\n  return (\n    <SelectPrimitive.Label\n      data-slot=\"select-label\"\n      className={cn(\"text-muted-foreground px-2 py-1.5 text-xs\", className)}\n      {...props}\n    />\n  );\n}\n\nfunction SelectItem({\n  className,\n  children,\n  ...props\n}: React.ComponentProps<typeof SelectPrimitive.Item>) {\n  return (\n    <SelectPrimitive.Item\n      data-slot=\"select-item\"\n      className={cn(\n        \"focus:bg-accent focus:text-accent-foreground [&_svg:not([class*=text-])]:text-muted-foreground outline-hidden *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2 relative flex w-full cursor-default select-none items-center gap-2 rounded-sm py-1.5 pl-2 pr-8 text-sm data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg:not([class*=size-])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n        className,\n      )}\n      {...props}\n    >\n      <span className=\"absolute right-2 flex size-3.5 items-center justify-center\">\n        <SelectPrimitive.ItemIndicator>\n          <CheckIcon className=\"size-4\" />\n        </SelectPrimitive.ItemIndicator>\n      </span>\n      <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n    </SelectPrimitive.Item>\n  );\n}\n\nfunction SelectSeparator({\n  className,\n  ...props\n}: React.ComponentProps<typeof SelectPrimitive.Separator>) {\n  return (\n    <SelectPrimitive.Separator\n      data-slot=\"select-separator\"\n      className={cn(\"bg-border pointer-events-none -mx-1 my-1 h-px\", className)}\n      {...props}\n    />\n  );\n}\n\nfunction SelectScrollUpButton({\n  className,\n  ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) {\n  return (\n    <SelectPrimitive.ScrollUpButton\n      data-slot=\"select-scroll-up-button\"\n      className={cn(\n        \"flex cursor-default items-center justify-center py-1\",\n        className,\n      )}\n      {...props}\n    >\n      <ChevronUpIcon className=\"size-4\" />\n    </SelectPrimitive.ScrollUpButton>\n  );\n}\n\nfunction SelectScrollDownButton({\n  className,\n  ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>) {\n  return (\n    <SelectPrimitive.ScrollDownButton\n      data-slot=\"select-scroll-down-button\"\n      className={cn(\n        \"flex cursor-default items-center justify-center py-1\",\n        className,\n      )}\n      {...props}\n    >\n      <ChevronDownIcon className=\"size-4\" />\n    </SelectPrimitive.ScrollDownButton>\n  );\n}\n\nexport {\n  Select,\n  SelectContent,\n  SelectGroup,\n  SelectItem,\n  SelectLabel,\n  SelectScrollDownButton,\n  SelectScrollUpButton,\n  SelectSeparator,\n  SelectTrigger,\n  SelectValue,\n};\n","import { cn } from \"../../lib/utils\";\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<\"div\">) {\n  return (\n    <div\n      data-slot=\"skeleton\"\n      className={cn(\"bg-accent animate-pulse rounded-md\", className)}\n      {...props}\n    />\n  );\n}\n\nexport { Skeleton };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\";\n\nimport { cn } from \"../../lib/utils\";\n\nfunction Tabs({\n  className,\n  ...props\n}: React.ComponentProps<typeof TabsPrimitive.Root>) {\n  return (\n    <TabsPrimitive.Root\n      data-slot=\"tabs\"\n      className={cn(\"flex flex-col gap-2\", className)}\n      {...props}\n    />\n  );\n}\n\nfunction TabsList({\n  className,\n  ...props\n}: React.ComponentProps<typeof TabsPrimitive.List>) {\n  return (\n    <TabsPrimitive.List\n      data-slot=\"tabs-list\"\n      className={cn(\n        \"bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]\",\n        className,\n      )}\n      {...props}\n    />\n  );\n}\n\nfunction TabsTrigger({\n  className,\n  ...props\n}: React.ComponentProps<typeof TabsPrimitive.Trigger>) {\n  return (\n    <TabsPrimitive.Trigger\n      data-slot=\"tabs-trigger\"\n      className={cn(\n        \"data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 whitespace-nowrap rounded-md border border-transparent px-2 py-1 text-sm font-medium transition-[color,box-shadow] focus-visible:outline-1 focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg:not([class*=size-])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n        className,\n      )}\n      {...props}\n    />\n  );\n}\n\nfunction TabsContent({\n  className,\n  ...props\n}: React.ComponentProps<typeof TabsPrimitive.Content>) {\n  return (\n    <TabsPrimitive.Content\n      data-slot=\"tabs-content\"\n      className={cn(\"flex-1 outline-none\", className)}\n      {...props}\n    />\n  );\n}\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent };\n","import * as React from \"react\";\nimport * as TogglePrimitive from \"@radix-ui/react-toggle\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst toggleVariants = cva(\n  \"inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium hover:bg-muted hover:text-muted-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg:not([class*=size-])]:size-4 [&_svg]:shrink-0 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] outline-none transition-[color,box-shadow] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive whitespace-nowrap\",\n  {\n    variants: {\n      variant: {\n        default: \"bg-transparent\",\n        outline:\n          \"border border-input bg-transparent shadow-xs hover:bg-accent hover:text-accent-foreground\",\n      },\n      size: {\n        default: \"h-9 px-2 min-w-9\",\n        sm: \"h-8 px-1.5 min-w-8\",\n        lg: \"h-10 px-2.5 min-w-10\",\n      },\n    },\n    defaultVariants: {\n      variant: \"default\",\n      size: \"default\",\n    },\n  },\n);\n\nfunction Toggle({\n  className,\n  variant,\n  size,\n  ...props\n}: React.ComponentProps<typeof TogglePrimitive.Root> &\n  VariantProps<typeof toggleVariants>) {\n  return (\n    <TogglePrimitive.Root\n      data-slot=\"toggle\"\n      className={cn(toggleVariants({ variant, size, className }))}\n      {...props}\n    />\n  );\n}\n\nexport { Toggle, toggleVariants };\n","import * as React from \"react\";\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\n\nimport { cn } from \"../../lib/utils\";\n\nfunction TooltipProvider({\n  delayDuration = 0,\n  ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n  return (\n    <TooltipPrimitive.Provider\n      data-slot=\"tooltip-provider\"\n      delayDuration={delayDuration}\n      {...props}\n    />\n  );\n}\n\nfunction Tooltip({\n  ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Root>) {\n  return (\n    <TooltipProvider>\n      <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n    </TooltipProvider>\n  );\n}\n\nfunction TooltipTrigger({\n  ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\n  return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />;\n}\n\nfunction TooltipContent({\n  className,\n  sideOffset = 0,\n  children,\n  ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Content>) {\n  return (\n    <TooltipPrimitive.Content\n      data-slot=\"tooltip-content\"\n      sideOffset={sideOffset}\n      className={cn(\n        \"bg-primary text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-(--radix-tooltip-content-transform-origin) z-50 w-fit text-balance rounded-md px-3 py-1.5 text-xs\",\n        className,\n      )}\n      {...props}\n    >\n      {children}\n      <TooltipPrimitive.Arrow className=\"bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]\" />\n    </TooltipPrimitive.Content>\n  );\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };\n","import {\n  Avatar as ShadCNAvatar,\n  AvatarFallback as ShadCNAvatarFallback,\n  AvatarImage as ShadCNAvatarImage,\n} from \"./components/ui/avatar.js\";\nimport { Badge as ShadCNBadge } from \"./components/ui/badge.js\";\nimport { Button as ShadCNButton } from \"./components/ui/button.js\";\nimport {\n  Card as ShadCNCard,\n  CardContent as ShadCNCardContent,\n} from \"./components/ui/card.js\";\nimport {\n  DropdownMenu as ShadCNDropdownMenu,\n  DropdownMenuCheckboxItem as ShadCNDropdownMenuCheckboxItem,\n  DropdownMenuContent as ShadCNDropdownMenuContent,\n  DropdownMenuItem as ShadCNDropdownMenuItem,\n  DropdownMenuLabel as ShadCNDropdownMenuLabel,\n  DropdownMenuSeparator as ShadCNDropdownMenuSeparator,\n  DropdownMenuSub as ShadCNDropdownMenuSub,\n  DropdownMenuSubContent as ShadCNDropdownMenuSubContent,\n  DropdownMenuSubTrigger as ShadCNDropdownMenuSubTrigger,\n  DropdownMenuTrigger as ShadCNDropdownMenuTrigger,\n} from \"./components/ui/dropdown-menu.js\";\nimport { Form as ShadCNForm } from \"./components/ui/form.js\";\nimport { Input as ShadCNInput } from \"./components/ui/input.js\";\nimport { Label as ShadCNLabel } from \"./components/ui/label.js\";\nimport {\n  Popover as ShadCNPopover,\n  PopoverContent as ShadCNPopoverContent,\n  PopoverTrigger as ShadCNPopoverTrigger,\n} from \"./components/ui/popover.js\";\nimport {\n  Select as ShadCNSelect,\n  SelectContent as ShadCNSelectContent,\n  SelectItem as ShadCNSelectItem,\n  SelectTrigger as ShadCNSelectTrigger,\n  SelectValue as ShadCNSelectValue,\n} from \"./components/ui/select.js\";\nimport { Skeleton as ShadCNSkeleton } from \"./components/ui/skeleton.js\";\nimport {\n  Tabs as ShadCNTabs,\n  TabsContent as ShadCNTabsContent,\n  TabsList as ShadCNTabsList,\n  TabsTrigger as ShadCNTabsTrigger,\n} from \"./components/ui/tabs.js\";\nimport { Toggle as ShadCNToggle } from \"./components/ui/toggle.js\";\nimport {\n  Tooltip as ShadCNTooltip,\n  TooltipContent as ShadCNTooltipContent,\n  TooltipProvider as ShadCNTooltipProvider,\n  TooltipTrigger as ShadCNTooltipTrigger,\n} from \"./components/ui/tooltip.js\";\n\nimport { createContext, useContext } from \"react\";\n\nexport const ShadCNDefaultComponents = {\n  Avatar: {\n    Avatar: ShadCNAvatar,\n    AvatarFallback: ShadCNAvatarFallback,\n    AvatarImage: ShadCNAvatarImage,\n  },\n  Badge: {\n    Badge: ShadCNBadge,\n  },\n  Button: {\n    Button: ShadCNButton,\n  },\n  Card: {\n    Card: ShadCNCard,\n    CardContent: ShadCNCardContent,\n  },\n  DropdownMenu: {\n    DropdownMenu: ShadCNDropdownMenu,\n    DropdownMenuCheckboxItem: ShadCNDropdownMenuCheckboxItem,\n    DropdownMenuContent: ShadCNDropdownMenuContent,\n    DropdownMenuItem: ShadCNDropdownMenuItem,\n    DropdownMenuLabel: ShadCNDropdownMenuLabel,\n    DropdownMenuSeparator: ShadCNDropdownMenuSeparator,\n    DropdownMenuSub: ShadCNDropdownMenuSub,\n    DropdownMenuSubContent: ShadCNDropdownMenuSubContent,\n    DropdownMenuSubTrigger: ShadCNDropdownMenuSubTrigger,\n    DropdownMenuTrigger: ShadCNDropdownMenuTrigger,\n  },\n  Form: {\n    Form: ShadCNForm,\n  },\n  Input: {\n    Input: ShadCNInput,\n  },\n  Label: {\n    Label: ShadCNLabel,\n  },\n  Popover: {\n    Popover: ShadCNPopover,\n    PopoverContent: ShadCNPopoverContent,\n    PopoverTrigger: ShadCNPopoverTrigger,\n  },\n  Select: {\n    Select: ShadCNSelect,\n    SelectContent: ShadCNSelectContent,\n    SelectItem: ShadCNSelectItem,\n    SelectTrigger: ShadCNSelectTrigger,\n    SelectValue: ShadCNSelectValue,\n  },\n  Skeleton: {\n    Skeleton: ShadCNSkeleton,\n  },\n  Tabs: {\n    Tabs: ShadCNTabs,\n    TabsContent: ShadCNTabsContent,\n    TabsList: ShadCNTabsList,\n    TabsTrigger: ShadCNTabsTrigger,\n  },\n  Toggle: {\n    Toggle: ShadCNToggle,\n  },\n  Tooltip: {\n    Tooltip: ShadCNTooltip,\n    TooltipContent: ShadCNTooltipContent,\n    TooltipProvider: ShadCNTooltipProvider,\n    TooltipTrigger: ShadCNTooltipTrigger,\n  },\n};\n\nexport type ShadCNComponents = typeof ShadCNDefaultComponents;\n\nexport const ShadCNComponentsContext = createContext<\n  ShadCNComponents | undefined\n>(undefined);\n\nexport function useShadCNComponentsContext() {\n  return useContext(ShadCNComponentsContext);\n}\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { useForm } from \"react-hook-form\";\n\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\n\nexport const Form = (props: ComponentProps[\"Generic\"][\"Form\"][\"Root\"]) => {\n  const { children, ...rest } = props;\n\n  assertEmpty(rest);\n\n  const ShadCNComponents = useShadCNComponentsContext()!;\n\n  const form = useForm();\n\n  return (\n    <ShadCNComponents.Form.Form {...form}>\n      {children}\n    </ShadCNComponents.Form.Form>\n  );\n};\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\nimport { cn } from \"../lib/utils.js\";\n\nexport const TextInput = forwardRef<\n  HTMLInputElement,\n  ComponentProps[\"Generic\"][\"Form\"][\"TextInput\"]\n>((props, ref) => {\n  const {\n    className,\n    name,\n    label,\n    variant,\n    icon, // TODO: implement\n    value,\n    autoFocus,\n    placeholder,\n    disabled,\n    onKeyDown,\n    onChange,\n    onSubmit,\n    autoComplete,\n    \"aria-activedescendant\": ariaActivedescendant,\n    rightSection, // TODO: add rightSection\n    ...rest\n  } = props;\n\n  assertEmpty(rest);\n\n  const ShadCNComponents = useShadCNComponentsContext()!;\n\n  return (\n    <div\n      className={cn(\n        className,\n        \"border-input bg-background ring-offset-background placeholder:text-muted-foreground focus-visible:ring-ring flex h-10 w-full rounded-md border px-3 py-2 text-sm file:border-0 file:bg-transparent file:text-sm file:font-medium focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n        \"text-foreground items-center gap-2\",\n      )}\n    >\n      {icon}\n      <div className=\"flex-1\">\n        {label && (\n          <ShadCNComponents.Label.Label htmlFor={label}>\n            {label}\n          </ShadCNComponents.Label.Label>\n        )}\n        <ShadCNComponents.Input.Input\n          className={cn(className, \"h-auto border-none p-0\")}\n          id={label}\n          name={name}\n          autoFocus={autoFocus}\n          placeholder={placeholder}\n          disabled={disabled}\n          value={value}\n          onKeyDown={onKeyDown}\n          onChange={onChange}\n          onSubmit={onSubmit}\n          ref={ref}\n          aria-activedescendant={ariaActivedescendant}\n        />\n      </div>\n      {rightSection}\n    </div>\n  );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { ChevronRight } from \"lucide-react\";\nimport { forwardRef, useMemo } from \"react\";\n\nimport type { DropdownMenuTrigger as ShadCNDropdownMenuTrigger } from \"../components/ui/dropdown-menu.js\";\nimport { cn } from \"../lib/utils.js\";\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\n\n// hacky HoC to change DropdownMenuTrigger to open a menu on PointerUp instead of PointerDown\n// Needed to fix this issue: https://github.com/radix-ui/primitives/issues/2867\nconst MenuTriggerWithPointerUp = (Comp: typeof ShadCNDropdownMenuTrigger) =>\n  forwardRef<any, React.ComponentProps<typeof ShadCNDropdownMenuTrigger>>(\n    (props, ref) => {\n      return (\n        <Comp\n          onPointerDown={(e) => {\n            if (!(e.nativeEvent as any).fakeEvent) {\n              // setting ctrlKey will block the menu from opening\n              // as it will block this line: https://github.com/radix-ui/primitives/blob/b32a93318cdfce383c2eec095710d35ffbd33a1c/packages/react/dropdown-menu/src/DropdownMenu.tsx#L120\n              e.ctrlKey = true;\n            }\n          }}\n          onPointerUp={(event) => {\n            // dispatch a pointerdown event so the Radix pointer down handler gets called that opens the menu\n            const e = new PointerEvent(\"pointerdown\", event.nativeEvent);\n            (e as any).fakeEvent = true;\n            event.target.dispatchEvent(e);\n          }}\n          {...props}\n          ref={ref}\n        />\n      );\n    },\n  );\n\nexport const Menu = (props: ComponentProps[\"Generic\"][\"Menu\"][\"Root\"]) => {\n  const {\n    children,\n    onOpenChange,\n    position, // Unused\n    sub,\n    ...rest\n  } = props;\n\n  assertEmpty(rest);\n\n  const ShadCNComponents = useShadCNComponentsContext()!;\n\n  if (sub) {\n    return (\n      <ShadCNComponents.DropdownMenu.DropdownMenuSub\n        onOpenChange={onOpenChange}\n      >\n        {children}\n      </ShadCNComponents.DropdownMenu.DropdownMenuSub>\n    );\n  } else {\n    return (\n      <ShadCNComponents.DropdownMenu.DropdownMenu\n        modal={false}\n        onOpenChange={onOpenChange}\n      >\n        {children}\n      </ShadCNComponents.DropdownMenu.DropdownMenu>\n    );\n  }\n};\n\nexport const MenuTrigger = (\n  props: ComponentProps[\"Generic\"][\"Menu\"][\"Trigger\"],\n) => {\n  const { children, sub, ...rest } = props;\n\n  assertEmpty(rest);\n\n  const ShadCNComponents = useShadCNComponentsContext()!;\n\n  const DropdownMenuTrigger = useMemo(\n    () =>\n      MenuTriggerWithPointerUp(\n        ShadCNComponents.DropdownMenu.DropdownMenuTrigger,\n      ),\n    [ShadCNComponents.DropdownMenu.DropdownMenuTrigger],\n  );\n\n  if (sub) {\n    return (\n      <ShadCNComponents.DropdownMenu.DropdownMenuSubTrigger>\n        {children}\n      </ShadCNComponents.DropdownMenu.DropdownMenuSubTrigger>\n    );\n  } else {\n    return (\n      <DropdownMenuTrigger asChild={true} {...rest}>\n        {children}\n      </DropdownMenuTrigger>\n    );\n  }\n};\n\nexport const MenuDropdown = forwardRef<\n  HTMLDivElement,\n  ComponentProps[\"Generic\"][\"Menu\"][\"Dropdown\"]\n>((props, ref) => {\n  const { className, children, sub, ...rest } = props;\n\n  assertEmpty(rest);\n\n  const ShadCNComponents = useShadCNComponentsContext()!;\n\n  if (sub) {\n    return (\n      <ShadCNComponents.DropdownMenu.DropdownMenuSubContent\n        className={className}\n        ref={ref}\n      >\n        {children}\n      </ShadCNComponents.DropdownMenu.DropdownMenuSubContent>\n    );\n  } else {\n    return (\n      <ShadCNComponents.DropdownMenu.DropdownMenuContent\n        className={className}\n        ref={ref}\n      >\n        {children}\n      </ShadCNComponents.DropdownMenu.DropdownMenuContent>\n    );\n  }\n});\n\nexport const MenuItem = forwardRef<\n  HTMLDivElement,\n  ComponentProps[\"Generic\"][\"Menu\"][\"Item\"]\n>((props, ref) => {\n  const { className, children, icon, checked, subTrigger, onClick, ...rest } =\n    props;\n\n  assertEmpty(rest);\n\n  const ShadCNComponents = useShadCNComponentsContext()!;\n\n  if (subTrigger) {\n    return (\n      <>\n        {icon}\n        {children}\n      </>\n    );\n  }\n\n  if (checked !== undefined) {\n    return (\n      <ShadCNComponents.DropdownMenu.DropdownMenuCheckboxItem\n        className={cn(className, \"gap-1\", checked ? \"\" : \"px-2\")}\n        ref={ref}\n        checked={checked}\n        onClick={onClick}\n        {...rest}\n      >\n        {icon}\n        {children}\n      </ShadCNComponents.DropdownMenu.DropdownMenuCheckboxItem>\n    );\n  }\n\n  return (\n    <ShadCNComponents.DropdownMenu.DropdownMenuItem\n      className={className}\n      ref={ref}\n      onClick={onClick}\n      {...rest}\n    >\n      {icon}\n      {children}\n      {subTrigger && <ChevronRight className=\"ml-auto h-4 w-4\" />}\n    </ShadCNComponents.DropdownMenu.DropdownMenuItem>\n  );\n});\n\nexport const MenuDivider = forwardRef<\n  HTMLDivElement,\n  ComponentProps[\"Generic\"][\"Menu\"][\"Divider\"]\n>((props, ref) => {\n  const { className, ...rest } = props;\n\n  assertEmpty(rest);\n\n  const ShadCNComponents = useShadCNComponentsContext()!;\n\n  return (\n    <ShadCNComponents.DropdownMenu.DropdownMenuSeparator\n      className={className}\n      ref={ref}\n    />\n  );\n});\n\nexport const MenuLabel = forwardRef<\n  HTMLDivElement,\n  ComponentProps[\"Generic\"][\"Menu\"][\"Label\"]\n>((props, ref) => {\n  const { className, children, ...rest } = props;\n\n  assertEmpty(rest);\n\n  const ShadCNComponents = useShadCNComponentsContext()!;\n\n  return (\n    <ShadCNComponents.DropdownMenu.DropdownMenuLabel\n      className={className}\n      ref={ref}\n    >\n      {children}\n    </ShadCNComponents.DropdownMenu.DropdownMenuLabel>\n  );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { cn } from \"../lib/utils.js\";\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\n\nexport const MenuButton = forwardRef<\n  HTMLButtonElement,\n  ComponentProps[\"Generic\"][\"Menu\"][\"Button\"]\n>((props, ref) => {\n  const {\n    className,\n    children,\n    icon,\n    onClick,\n    onDragEnd,\n    onDragStart,\n    draggable,\n    label,\n    ...rest\n  } = props;\n\n  // false, because rest props can be added by ariakit when button is used as a trigger\n  // assertEmpty in this case is only used at typescript level, not runtime level\n  assertEmpty(rest, false);\n\n  const ShadCNComponents = useShadCNComponentsContext()!;\n\n  return (\n    <ShadCNComponents.Button.Button\n      variant={\"ghost\"}\n      className={cn(className, \"text-gray-400\")}\n      ref={ref}\n      aria-label={label}\n      onClick={onClick}\n      onDragStart={onDragStart}\n      onDragEnd={onDragEnd}\n      draggable={draggable}\n      {...rest}\n    >\n      {icon}\n      {children}\n    </ShadCNComponents.Button.Button>\n  );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { cn } from \"../lib/utils.js\";\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\n\nexport const Panel = forwardRef<\n  HTMLDivElement,\n  ComponentProps[\"FilePanel\"][\"Root\"]\n>((props, ref) => {\n  const {\n    className,\n    tabs,\n    defaultOpenTab,\n    openTab,\n    setOpenTab,\n    loading, // TODO: implement loader\n    ...rest\n  } = props;\n\n  assertEmpty(rest);\n\n  const ShadCNComponents = useShadCNComponentsContext()!;\n\n  return (\n    <ShadCNComponents.Tabs.Tabs\n      className={cn(className, \"bg-popover max-w-screen rounded-lg p-2\")}\n      ref={ref}\n      value={openTab}\n      defaultValue={defaultOpenTab}\n      onValueChange={setOpenTab}\n    >\n      {/*{loading && <LoadingOverlay visible={loading} />}*/}\n\n      <ShadCNComponents.Tabs.TabsList>\n        {tabs.map((tab) => (\n          <ShadCNComponents.Tabs.TabsTrigger value={tab.name} key={tab.name}>\n            {tab.name}\n          </ShadCNComponents.Tabs.TabsTrigger>\n        ))}\n      </ShadCNComponents.Tabs.TabsList>\n\n      {tabs.map((tab) => (\n        <ShadCNComponents.Tabs.TabsContent value={tab.name} key={tab.name}>\n          <ShadCNComponents.Card.Card>\n            <ShadCNComponents.Card.CardContent className={\"p-4\"}>\n              {tab.tabPanel}\n            </ShadCNComponents.Card.CardContent>\n          </ShadCNComponents.Card.Card>\n        </ShadCNComponents.Tabs.TabsContent>\n      ))}\n    </ShadCNComponents.Tabs.Tabs>\n  );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { cn } from \"../lib/utils.js\";\n\nexport const PanelTab = forwardRef<\n  HTMLDivElement,\n  ComponentProps[\"FilePanel\"][\"TabPanel\"]\n>((props, ref) => {\n  const { className, children, ...rest } = props;\n\n  assertEmpty(rest);\n\n  return (\n    <div\n      className={cn(\n        className,\n        \"flex flex-col items-start justify-center gap-2\",\n      )}\n      ref={ref}\n    >\n      {children}\n    </div>\n  );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { cn } from \"../lib/utils.js\";\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\n\nexport const PanelTextInput = forwardRef<\n  HTMLInputElement,\n  ComponentProps[\"FilePanel\"][\"TextInput\"]\n>((props, ref) => {\n  const { className, value, placeholder, onKeyDown, onChange, ...rest } = props;\n\n  assertEmpty(rest);\n\n  const ShadCNComponents = useShadCNComponentsContext()!;\n\n  return (\n    <ShadCNComponents.Input.Input\n      data-test={\"embed-input\"}\n      className={cn(className, \"w-80 max-w-full\")}\n      ref={ref}\n      value={value}\n      placeholder={placeholder}\n      onKeyDown={onKeyDown}\n      onChange={onChange}\n    />\n  );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { createContext, forwardRef, useContext } from \"react\";\nimport { createPortal } from \"react-dom\";\n\nimport { cn } from \"../lib/utils.js\";\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\n\nconst PortalRootContext = createContext<HTMLElement | null | undefined>(\n  undefined,\n);\n\nexport const Popover = (\n  props: ComponentProps[\"Generic\"][\"Popover\"][\"Root\"],\n) => {\n  const {\n    children,\n    open,\n    onOpenChange,\n    position, // unused\n    portalRoot,\n    ...rest\n  } = props;\n\n  assertEmpty(rest);\n\n  const ShadCNComponents = useShadCNComponentsContext()!;\n\n  return (\n    <ShadCNComponents.Popover.Popover open={open} onOpenChange={onOpenChange}>\n      <PortalRootContext.Provider value={portalRoot}>\n        {children}\n      </PortalRootContext.Provider>\n    </ShadCNComponents.Popover.Popover>\n  );\n};\n\nexport const PopoverTrigger = forwardRef(\n  (props: ComponentProps[\"Generic\"][\"Popover\"][\"Trigger\"], ref: any) => {\n    const { children, ...rest } = props;\n\n    assertEmpty(rest);\n\n    const ShadCNComponents = useShadCNComponentsContext()!;\n\n    return (\n      <ShadCNComponents.Popover.PopoverTrigger ref={ref} asChild={true}>\n        {children}\n      </ShadCNComponents.Popover.PopoverTrigger>\n    );\n  },\n);\n\nexport const PopoverContent = forwardRef<\n  HTMLDivElement,\n  ComponentProps[\"Generic\"][\"Popover\"][\"Content\"]\n>((props, ref) => {\n  const { className, variant, children, ...rest } = props;\n\n  assertEmpty(rest);\n\n  const ShadCNComponents = useShadCNComponentsContext()!;\n  const portalRoot = useContext(PortalRootContext);\n\n  const content = (\n    <ShadCNComponents.Popover.PopoverContent\n      sideOffset={8}\n      className={cn(\n        className,\n        \"flex flex-col gap-2\",\n        variant === \"panel-popover\"\n          ? \"w-fit max-w-none border-none p-0 shadow-none\"\n          : \"\",\n      )}\n      ref={ref}\n    >\n      {children}\n    </ShadCNComponents.Popover.PopoverContent>\n  );\n\n  if (portalRoot) {\n    return createPortal(content, portalRoot);\n  }\n\n  return content;\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nexport const SideMenu = forwardRef<\n  HTMLDivElement,\n  ComponentProps[\"SideMenu\"][\"Root\"]\n>((props, ref) => {\n  const { className, children, ...rest } = props;\n\n  assertEmpty(rest, false);\n\n  return (\n    <div className={className} ref={ref} {...rest}>\n      {children}\n    </div>\n  );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { cn } from \"../lib/utils.js\";\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\n\nexport const SideMenuButton = forwardRef<\n  HTMLButtonElement,\n  ComponentProps[\"SideMenu\"][\"Button\"]\n>((props, ref) => {\n  const {\n    className,\n    children,\n    icon,\n    onClick,\n    onDragEnd,\n    onDragStart,\n    draggable,\n    label,\n    ...rest\n  } = props;\n\n  // false, because rest props can be added by ariakit when button is used as a trigger\n  // assertEmpty in this case is only used at typescript level, not runtime level\n  assertEmpty(rest, false);\n\n  const ShadCNComponents = useShadCNComponentsContext()!;\n\n  return (\n    <ShadCNComponents.Button.Button\n      variant={\"ghost\"}\n      className={cn(className, \"text-gray-400\")}\n      ref={ref}\n      aria-label={label}\n      onClick={onClick}\n      onDragStart={onDragStart}\n      onDragEnd={onDragEnd}\n      draggable={draggable}\n      {...rest}\n    >\n      {icon}\n      {children}\n    </ShadCNComponents.Button.Button>\n  );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { cn } from \"../../lib/utils.js\";\n\nexport const GridSuggestionMenu = forwardRef<\n  HTMLDivElement,\n  ComponentProps[\"GridSuggestionMenu\"][\"Root\"]\n>((props, ref) => {\n  const { className, children, id, columns, ...rest } = props;\n\n  assertEmpty(rest);\n\n  return (\n    <div\n      // Styles from ShadCN DropdownMenuContent component\n      className={cn(\n        \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 max-h-(--radix-dropdown-menu-content-available-height) origin-(--radix-dropdown-menu-content-transform-origin) z-50 min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border p-1 shadow-md\",\n        \"grid\",\n        className,\n      )}\n      style={{ gridTemplateColumns: `repeat(${columns}, 1fr)` } as any}\n      ref={ref}\n      id={id}\n      role=\"grid\"\n    >\n      {children}\n    </div>\n  );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nexport const GridSuggestionMenuEmptyItem = forwardRef<\n  HTMLDivElement,\n  ComponentProps[\"GridSuggestionMenu\"][\"EmptyItem\"]\n>((props, ref) => {\n  const { className, children, columns, ...rest } = props;\n\n  assertEmpty(rest);\n\n  return (\n    <div\n      className={className}\n      style={{ gridColumn: `1 / ${columns + 1}` }}\n      ref={ref}\n    >\n      {children}\n    </div>\n  );\n});\n","import { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { assertEmpty } from \"@blocknote/core\";\nimport { cn } from \"../lib/utils.js\";\n\nexport const SuggestionMenu = forwardRef<\n  HTMLDivElement,\n  ComponentProps[\"SuggestionMenu\"][\"Root\"]\n>((props, ref) => {\n  const { className, children, id, ...rest } = props;\n\n  assertEmpty(rest);\n\n  return (\n    <div\n      id={id}\n      role=\"listbox\"\n      // Styles from ShadCN DropdownMenuContent component\n      className={cn(\n        \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 max-h-(--radix-dropdown-menu-content-available-height) origin-(--radix-dropdown-menu-content-transform-origin) z-50 min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border p-1 shadow-md\",\n        className,\n      )}\n      ref={ref}\n    >\n      {children}\n    </div>\n  );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { cn } from \"../lib/utils.js\";\n\nexport const SuggestionMenuEmptyItem = forwardRef<\n  HTMLDivElement,\n  ComponentProps[\"SuggestionMenu\"][\"EmptyItem\"]\n>((props, ref) => {\n  const { className, children, ...rest } = props;\n\n  assertEmpty(rest);\n\n  return (\n    <div\n      // Styles from ShadCN DropdownMenuItem component\n      className={cn(\n        \"focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*=text-])]:text-muted-foreground outline-hidden relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm data-[disabled]:pointer-events-none data-[inset]:pl-8 data-[disabled]:opacity-50 [&_svg:not([class*=size-])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n        \"hover:bg-accent hover:text-accent-foreground data-[variant=destructive]:hover:bg-destructive/10 dark:data-[variant=destructive]:hover:bg-destructive/20 data-[variant=destructive]:hover:text-destructive\",\n        \"aria-selected:bg-accent aria-selected:text-accent-foreground data-[variant=destructive]:aria-selected:bg-destructive/10 dark:data-[variant=destructive]:aria-selected:bg-destructive/20 data-[variant=destructive]:aria-selected:text-destructive\",\n        className,\n      )}\n      ref={ref}\n    >\n      <div>{children}</div>\n    </div>\n  );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps, elementOverflow, mergeRefs } from \"@blocknote/react\";\nimport { forwardRef, useEffect, useRef } from \"react\";\n\nimport { cn } from \"../lib/utils.js\";\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\n\nexport const SuggestionMenuItem = forwardRef<\n  HTMLDivElement,\n  ComponentProps[\"SuggestionMenu\"][\"Item\"]\n>((props, ref) => {\n  const ShadCNComponents = useShadCNComponentsContext()!;\n\n  const { className, item, isSelected, onClick, id, ...rest } = props;\n\n  assertEmpty(rest);\n\n  const itemRef = useRef<HTMLDivElement>(null);\n\n  useEffect(() => {\n    if (!itemRef.current || !isSelected) {\n      return;\n    }\n\n    const overflow = elementOverflow(\n      itemRef.current,\n      itemRef.current.closest(\".bn-suggestion-menu, #ai-suggestion-menu\")!,\n    );\n\n    if (overflow !== \"none\") {\n      itemRef.current.scrollIntoView({ block: \"nearest\" });\n    }\n  }, [isSelected]);\n\n  return (\n    <div\n      // Styles from ShadCN DropdownMenuItem component\n      className={cn(\n        \"focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*=text-])]:text-muted-foreground outline-hidden relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm data-[disabled]:pointer-events-none data-[inset]:pl-8 data-[disabled]:opacity-50 [&_svg:not([class*=size-])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n        \"hover:bg-accent hover:text-accent-foreground data-[variant=destructive]:hover:bg-destructive/10 dark:data-[variant=destructive]:hover:bg-destructive/20 data-[variant=destructive]:hover:text-destructive\",\n        \"aria-selected:bg-accent aria-selected:text-accent-foreground data-[variant=destructive]:aria-selected:bg-destructive/10 dark:data-[variant=destructive]:aria-selected:bg-destructive/20 data-[variant=destructive]:aria-selected:text-destructive\",\n        props.item.size === \"small\" ? \"gap-3 py-1\" : \"\",\n        className,\n      )}\n      data-highlighted\n      ref={mergeRefs([ref, itemRef])}\n      id={id}\n      onMouseDown={(event) => event.preventDefault()}\n      onClick={onClick}\n      role=\"option\"\n      aria-selected={isSelected || undefined}\n    >\n      {item.icon && (\n        <div\n          className={cn(\n            \"p-3\",\n            props.item.size === \"small\" ? \"p-0\" : \"\",\n            className,\n          )}\n          data-position=\"left\"\n        >\n          {item.icon}\n        </div>\n      )}\n      <div className=\"flex-1\">\n        <div\n          className={cn(\n            \"text-base\",\n            props.item.size === \"small\" ? \"text-sm\" : \"\",\n            className,\n          )}\n        >\n          {item.title}\n        </div>\n        <div\n          className={cn(\n            \"text-xs\",\n            props.item.size === \"small\" ? \"hidden\" : \"\",\n            className,\n          )}\n        >\n          {item.subtext}\n        </div>\n      </div>\n      {item.badge && (\n        <div data-position=\"right\" className=\"text-xs\">\n          <ShadCNComponents.Badge.Badge variant={\"secondary\"}>\n            {item.badge}\n          </ShadCNComponents.Badge.Badge>\n        </div>\n      )}\n    </div>\n  );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { cn } from \"../lib/utils.js\";\n\nexport const SuggestionMenuLabel = forwardRef<\n  HTMLDivElement,\n  ComponentProps[\"SuggestionMenu\"][\"Label\"]\n>((props, ref) => {\n  const { className, children, ...rest } = props;\n\n  assertEmpty(rest);\n\n  return (\n    <div\n      // Styles from ShadCN DropdownMenuLabel component\n      className={cn(\n        \"px-2 py-1.5 text-sm font-medium data-[inset]:pl-8\",\n        className,\n      )}\n      ref={ref}\n    >\n      {children}\n    </div>\n  );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { cn } from \"../lib/utils.js\";\n\nexport const SuggestionMenuLoader = forwardRef<\n  HTMLDivElement,\n  ComponentProps[\"SuggestionMenu\"][\"Loader\"]\n>((props, ref) => {\n  const { className, ...rest } = props;\n\n  assertEmpty(rest);\n\n  return (\n    <div className={cn(className, \"animate-spin\")} ref={ref}>\n      {/* Taken from Google Material Icons */}\n      {/* https://fonts.google.com/icons?selected=Material+Symbols+Rounded:progress_activity:FILL@0;wght@400;GRAD@0;opsz@24&icon.query=load&icon.size=24&icon.color=%23e8eaed&icon.set=Material+Symbols&icon.style=Rounded&icon.platform=web */}\n      <svg\n        xmlns=\"http://www.w3.org/2000/svg\"\n        height=\"1em\"\n        viewBox=\"0 -960 960 960\"\n        width=\"1em\"\n        fill=\"#e8eaed\"\n      >\n        <path d=\"M480-80q-82 0-155-31.5t-127.5-86Q143-252 111.5-325T80-480q0-83 31.5-155.5t86-127Q252-817 325-848.5T480-880q17 0 28.5 11.5T520-840q0 17-11.5 28.5T480-800q-133 0-226.5 93.5T160-480q0 133 93.5 226.5T480-160q133 0 226.5-93.5T800-480q0-17 11.5-28.5T840-520q17 0 28.5 11.5T880-480q0 82-31.5 155t-86 127.5q-54.5 54.5-127 86T480-80Z\" />\n      </svg>\n    </div>\n  );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { cn } from \"../lib/utils.js\";\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\n\nexport const ExtendButton = forwardRef<\n  HTMLButtonElement,\n  ComponentProps[\"TableHandle\"][\"ExtendButton\"]\n>((props, ref) => {\n  const { className, children, onMouseDown, onClick, ...rest } = props;\n\n  // false, because rest props can be added by shadcn when button is used as a trigger\n  // assertEmpty in this case is only used at typescript level, not runtime level\n  assertEmpty(rest, false);\n\n  const ShadCNComponents = useShadCNComponentsContext()!;\n\n  return (\n    <ShadCNComponents.Button.Button\n      variant={\"ghost\"}\n      className={cn(\n        className,\n        \"h-full w-full p-0 text-gray-400\",\n        className?.includes(\"extend-button-add-remove-columns\")\n          ? \"ml-1\"\n          : \"mt-1\",\n        className?.includes(\"extend-button-editing\")\n          ? \"bg-accent text-accent-foreground\"\n          : \"\",\n      )}\n      ref={ref}\n      onClick={onClick}\n      onMouseDown={onMouseDown}\n      {...rest}\n    >\n      {children}\n    </ShadCNComponents.Button.Button>\n  );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { cn } from \"../lib/utils.js\";\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\n\nexport const TableHandle = forwardRef<\n  HTMLButtonElement,\n  ComponentProps[\"TableHandle\"][\"Root\"]\n>((props, ref) => {\n  const {\n    className,\n    children,\n    draggable,\n    onDragStart,\n    onDragEnd,\n    style,\n    label,\n    ...rest\n  } = props;\n\n  // false, because rest props can be added by shadcn when button is used as a trigger\n  // assertEmpty in this case is only used at typescript level, not runtime level\n  assertEmpty(rest, false);\n\n  const ShadCNComponents = useShadCNComponentsContext()!;\n\n  return (\n    <ShadCNComponents.Button.Button\n      variant={\"ghost\"}\n      className={cn(className, \"h-fit w-fit p-0 text-gray-400\")}\n      ref={ref}\n      aria-label={label}\n      draggable={draggable}\n      onDragStart={onDragStart}\n      onDragEnd={onDragEnd}\n      style={style}\n      {...rest}\n    >\n      {children}\n    </ShadCNComponents.Button.Button>\n  );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { cn } from \"../lib/utils.js\";\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\n\ntype ToolbarProps = ComponentProps[\"Generic\"][\"Toolbar\"][\"Root\"];\n\nexport const Toolbar = forwardRef<HTMLDivElement, ToolbarProps>(\n  (props, ref) => {\n    const {\n      className,\n      children,\n      onMouseEnter,\n      onMouseLeave,\n      variant,\n      ...rest\n    } = props;\n\n    assertEmpty(rest);\n\n    const ShadCNComponents = useShadCNComponentsContext()!;\n\n    return (\n      <ShadCNComponents.Tooltip.TooltipProvider delayDuration={0}>\n        <div\n          className={cn(\n            className,\n            \"bg-popover text-popover-foreground flex h-fit gap-1 rounded-lg border p-1 shadow-md\",\n            variant === \"action-toolbar\" ? \"w-fit\" : \"\",\n          )}\n          ref={ref}\n          onMouseEnter={onMouseEnter}\n          onMouseLeave={onMouseLeave}\n        >\n          {children}\n        </div>\n      </ShadCNComponents.Tooltip.TooltipProvider>\n    );\n  },\n);\n\ntype ToolbarButtonProps = ComponentProps[\"Generic\"][\"Toolbar\"][\"Button\"];\n\nexport const ToolbarButton = forwardRef<HTMLButtonElement, ToolbarButtonProps>(\n  (props, ref) => {\n    const {\n      className,\n      children,\n      mainTooltip,\n      secondaryTooltip,\n      icon,\n      isSelected,\n      isDisabled,\n      onClick,\n      label,\n      variant,\n      ...rest\n    } = props;\n\n    // false, because rest props can be added by shadcn when button is used as a trigger\n    // assertEmpty in this case is only used at typescript level, not runtime level\n    assertEmpty(rest, false);\n\n    const ShadCNComponents = useShadCNComponentsContext()!;\n\n    const trigger =\n      isSelected === undefined ? (\n        <ShadCNComponents.Button.Button\n          className={cn(\n            className,\n            variant === \"compact\" ? \"h-6 min-w-6 p-0\" : \"\",\n          )}\n          variant=\"ghost\"\n          size={variant === \"compact\" ? \"sm\" : \"default\"}\n          disabled={isDisabled}\n          onClick={onClick}\n          ref={ref}\n          aria-label={label}\n          {...rest}\n        >\n          {icon}\n          {children}\n        </ShadCNComponents.Button.Button>\n      ) : (\n        <ShadCNComponents.Toggle.Toggle\n          className={cn(\n            className,\n            \"data-[state=open]:bg-accent data-[state=closed]:text-accent-foreground\",\n            variant === \"compact\" ? \"h-6 min-w-6 p-0\" : \"\",\n          )}\n          size={variant === \"compact\" ? \"sm\" : \"default\"}\n          aria-label={label}\n          onClick={onClick}\n          pressed={isSelected}\n          disabled={isDisabled}\n          data-state={isSelected ? \"on\" : \"off\"}\n          data-disabled={isDisabled}\n          ref={ref}\n          {...rest}\n        >\n          {icon}\n          {children}\n        </ShadCNComponents.Toggle.Toggle>\n      );\n\n    return (\n      <ShadCNComponents.Tooltip.Tooltip>\n        <ShadCNComponents.Tooltip.TooltipTrigger asChild>\n          {trigger}\n        </ShadCNComponents.Tooltip.TooltipTrigger>\n        <ShadCNComponents.Tooltip.TooltipContent\n          className={\"flex flex-col items-center whitespace-pre-wrap\"}\n        >\n          <span>{mainTooltip}</span>\n          {secondaryTooltip && <span>{secondaryTooltip}</span>}\n        </ShadCNComponents.Tooltip.TooltipContent>\n      </ShadCNComponents.Tooltip.Tooltip>\n    );\n  },\n);\n\nexport const ToolbarSelect = forwardRef<\n  HTMLDivElement,\n  ComponentProps[\"FormattingToolbar\"][\"Select\"]\n>((props, ref) => {\n  const { className, items, isDisabled, ...rest } = props;\n\n  assertEmpty(rest);\n\n  const ShadCNComponents = useShadCNComponentsContext()!;\n\n  // TODO?\n  const SelectItemContent = (props: any) => (\n    <div className={\"flex items-center gap-1\"}>\n      {props.icon}\n      {props.text}\n    </div>\n  );\n\n  const selectedItem = items.filter((p) => p.isSelected)[0];\n\n  if (!selectedItem) {\n    return null;\n  }\n\n  return (\n    <ShadCNComponents.Select.Select\n      value={selectedItem.text}\n      onValueChange={(value) =>\n        items.find((item) => item.text === value)!.onClick?.()\n      }\n      disabled={isDisabled}\n    >\n      <ShadCNComponents.Select.SelectTrigger className={\"border-none\"}>\n        <ShadCNComponents.Select.SelectValue />\n      </ShadCNComponents.Select.SelectTrigger>\n      <ShadCNComponents.Select.SelectContent className={className} ref={ref}>\n        {items.map((item) => (\n          <ShadCNComponents.Select.SelectItem\n            disabled={item.isDisabled}\n            key={item.text}\n            value={item.text}\n          >\n            <SelectItemContent {...item} />\n          </ShadCNComponents.Select.SelectItem>\n        ))}\n      </ShadCNComponents.Select.SelectContent>\n    </ShadCNComponents.Select.Select>\n  );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { cn } from \"../lib/utils.js\";\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\n\nexport const Card = forwardRef<\n  HTMLDivElement,\n  ComponentProps[\"Comments\"][\"Card\"]\n>((props, ref) => {\n  const {\n    className,\n    children,\n    selected,\n    headerText,\n    onFocus,\n    onBlur,\n    tabIndex,\n    ...rest\n  } = props;\n\n  assertEmpty(rest);\n\n  const ShadCNComponents = useShadCNComponentsContext()!;\n\n  return (\n    <ShadCNComponents.Card.Card\n      className={cn(\n        className,\n        \"w-[300px]\",\n        selected ? \"bg-accent text-accent-foreground\" : \"\",\n      )}\n      onFocus={onFocus}\n      onBlur={onBlur}\n      tabIndex={tabIndex}\n      ref={ref}\n    >\n      {headerText && (\n        <div className={\"px-4 pt-4 text-sm italic\"}>{headerText}</div>\n      )}\n      {children}\n    </ShadCNComponents.Card.Card>\n  );\n});\n\nexport const CardSection = forwardRef<\n  HTMLDivElement,\n  ComponentProps[\"Comments\"][\"CardSection\"]\n>((props, ref) => {\n  const { className, children, ...rest } = props;\n\n  assertEmpty(rest);\n\n  return (\n    <div\n      className={cn(\n        className,\n        \"p-4\",\n        className?.includes(\"thread-comments\")\n          ? \"flex flex-col gap-6 border-b\"\n          : \"\",\n      )}\n      ref={ref}\n    >\n      {children}\n    </div>\n  );\n});\n\nexport const ExpandSectionsPrompt = forwardRef<\n  HTMLButtonElement,\n  ComponentProps[\"Comments\"][\"ExpandSectionsPrompt\"]\n>((props, ref) => {\n  const { className, children, ...rest } = props;\n\n  assertEmpty(rest, false);\n\n  const ShadCNComponents = useShadCNComponentsContext()!;\n\n  return (\n    <ShadCNComponents.Button.Button\n      className={cn(\n        className,\n        \"text-foreground w-fit bg-transparent p-0 hover:bg-transparent\",\n      )}\n      ref={ref}\n    >\n      {children}\n    </ShadCNComponents.Button.Button>\n  );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport {\n  ComponentProps,\n  useDictionary,\n  useFocusWithin,\n} from \"@blocknote/react\";\nimport { forwardRef, useState } from \"react\";\n\nimport { cn } from \"../lib/utils.js\";\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\n\nconst AuthorInfo = forwardRef<\n  HTMLDivElement,\n  Pick<\n    ComponentProps[\"Comments\"][\"Comment\"],\n    \"authorInfo\" | \"timeString\" | \"edited\"\n  >\n>((props, _ref) => {\n  const { authorInfo, timeString, edited, ...rest } = props;\n  const dict = useDictionary();\n\n  assertEmpty(rest, false);\n\n  const ShadCNComponents = useShadCNComponentsContext()!;\n\n  if (authorInfo === \"loading\") {\n    return (\n      <div className={\"flex flex-row flex-nowrap items-center gap-4\"}>\n        <ShadCNComponents.Skeleton.Skeleton\n          className={\"size-7 animate-pulse rounded-full bg-neutral-400\"}\n        />\n        <ShadCNComponents.Skeleton.Skeleton\n          className={\"h-3 w-32 animate-pulse rounded-full bg-neutral-400\"}\n        />\n      </div>\n    );\n  }\n\n  return (\n    <div className={\"flex flex-row flex-nowrap items-center gap-4\"}>\n      <ShadCNComponents.Avatar.Avatar>\n        <ShadCNComponents.Avatar.AvatarImage\n          src={authorInfo.avatarUrl}\n          alt={authorInfo.username}\n          className={\"h-7 rounded-full\"}\n        />\n        <ShadCNComponents.Avatar.AvatarFallback>\n          {authorInfo.username[0]}\n        </ShadCNComponents.Avatar.AvatarFallback>\n      </ShadCNComponents.Avatar.Avatar>\n\n      <div className={\"flex flex-row flex-nowrap items-center gap-2\"}>\n        <span className={\"text-sm font-bold\"}>{authorInfo.username}</span>\n        <span className={\"text-xs\"}>\n          {timeString} {edited && `(${dict.comments.edited})`}\n        </span>\n      </div>\n    </div>\n  );\n});\n\nexport const Comment = forwardRef<\n  HTMLDivElement,\n  ComponentProps[\"Comments\"][\"Comment\"]\n>((props, ref) => {\n  const {\n    className,\n    showActions,\n    authorInfo,\n    timeString,\n    actions,\n    edited,\n    emojiPickerOpen,\n    children,\n    ...rest\n  } = props;\n\n  assertEmpty(rest);\n\n  const [hovered, setHovered] = useState(false);\n  const { focused, ref: focusRef } = useFocusWithin();\n\n  const doShowActions =\n    actions &&\n    (showActions === true ||\n      showActions === undefined ||\n      (showActions === \"hover\" && hovered) ||\n      focused ||\n      emojiPickerOpen);\n\n  return (\n    <div\n      ref={ref}\n      className={cn(className, \"relative flex flex-col gap-2\")}\n      onMouseEnter={() => setHovered(true)}\n      onMouseLeave={() => setHovered(false)}\n    >\n      {doShowActions ? (\n        <div className={\"absolute right-0 top-0 z-10\"} ref={focusRef}>\n          {actions}\n        </div>\n      ) : null}\n      <AuthorInfo {...props} />\n      {children}\n    </div>\n  );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport {\n  ComponentProps,\n  FormattingToolbar,\n  FormattingToolbarController,\n  getFormattingToolbarItems,\n  useBlockNoteContext,\n} from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { BlockNoteView } from \"../BlockNoteView.js\";\nimport { cn } from \"../lib/utils.js\";\n\nexport const Editor = forwardRef<\n  HTMLDivElement,\n  ComponentProps[\"Comments\"][\"Editor\"]\n>((props, ref) => {\n  const { className, onFocus, onBlur, autoFocus, editor, editable, ...rest } =\n    props;\n\n  assertEmpty(rest);\n\n  const blockNoteContext = useBlockNoteContext();\n\n  return (\n    <BlockNoteView\n      autoFocus={autoFocus}\n      className={cn(className, \"\")}\n      theme={blockNoteContext?.colorSchemePreference}\n      editor={props.editor}\n      sideMenu={false}\n      slashMenu={false}\n      tableHandles={false}\n      filePanel={false}\n      formattingToolbar={false}\n      editable={editable}\n      ref={ref}\n      onFocus={onFocus}\n      onBlur={onBlur}\n    >\n      <FormattingToolbarController\n        formattingToolbar={CustomFormattingToolbar}\n      />\n    </BlockNoteView>\n  );\n});\n\nconst CustomFormattingToolbar = () => {\n  const items = getFormattingToolbarItems([]).filter(\n    (el) => el.key !== \"nestBlockButton\" && el.key !== \"unnestBlockButton\",\n  );\n  return (\n    <FormattingToolbar blockTypeSelectItems={[]}>{items}</FormattingToolbar>\n  );\n};\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { cn } from \"../lib/utils.js\";\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\n\nexport const Badge = forwardRef<\n  HTMLButtonElement,\n  ComponentProps[\"Generic\"][\"Badge\"][\"Root\"]\n>((props, ref) => {\n  const {\n    className,\n    text,\n    icon,\n    isSelected,\n    mainTooltip,\n    secondaryTooltip,\n    onClick,\n    onMouseEnter,\n    ...rest\n  } = props;\n\n  assertEmpty(rest, false);\n\n  const ShadCNComponents = useShadCNComponentsContext()!;\n\n  const badge = (\n    <ShadCNComponents.Button.Button\n      variant={isSelected ? \"secondary\" : \"outline\"}\n      className={cn(\n        className,\n        \"flex h-7 items-center gap-1 rounded-full px-2.5\",\n      )}\n      onClick={onClick}\n      onMouseEnter={onMouseEnter}\n      ref={ref}\n    >\n      <span>{icon}</span>\n      <span>{text}</span>\n    </ShadCNComponents.Button.Button>\n  );\n\n  if (!mainTooltip) {\n    return badge;\n  }\n\n  return (\n    <ShadCNComponents.Tooltip.Tooltip>\n      <ShadCNComponents.Tooltip.TooltipTrigger asChild>\n        {badge}\n      </ShadCNComponents.Tooltip.TooltipTrigger>\n      <ShadCNComponents.Tooltip.TooltipContent\n        className={\"flex flex-col items-center whitespace-pre-wrap\"}\n      >\n        <span>{mainTooltip}</span>\n        {secondaryTooltip && <span>{secondaryTooltip}</span>}\n      </ShadCNComponents.Tooltip.TooltipContent>\n    </ShadCNComponents.Tooltip.Tooltip>\n  );\n});\n\nexport const BadgeGroup = forwardRef<\n  HTMLDivElement,\n  ComponentProps[\"Generic\"][\"Badge\"][\"Group\"]\n>((props, ref) => {\n  const { className, children, ...rest } = props;\n\n  assertEmpty(rest);\n\n  const ShadCNComponents = useShadCNComponentsContext()!;\n\n  return (\n    <ShadCNComponents.Tooltip.TooltipProvider delayDuration={0}>\n      <div\n        className={cn(className, \"flex w-full flex-row flex-wrap gap-1\")}\n        ref={ref}\n      >\n        {children}\n      </div>\n    </ShadCNComponents.Tooltip.TooltipProvider>\n  );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\n\nexport const PanelButton = forwardRef<\n  HTMLButtonElement,\n  ComponentProps[\"FilePanel\"][\"Button\"]\n>((props, ref) => {\n  const { className, children, onClick, label, ...rest } = props;\n\n  assertEmpty(rest);\n\n  const ShadCNComponents = useShadCNComponentsContext()!;\n\n  return (\n    <ShadCNComponents.Button.Button\n      type={\"submit\"}\n      className={className}\n      aria-label={label}\n      ref={ref}\n      onClick={onClick}\n    >\n      {children}\n    </ShadCNComponents.Button.Button>\n  );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\n\nexport const PanelFileInput = forwardRef<\n  HTMLInputElement,\n  ComponentProps[\"FilePanel\"][\"FileInput\"]\n>((props, ref) => {\n  const { className, accept, value, placeholder, onChange, ...rest } = props;\n\n  assertEmpty(rest);\n\n  const ShadCNComponents = useShadCNComponentsContext()!;\n\n  return (\n    <ShadCNComponents.Input.Input\n      type={\"file\"}\n      className={className}\n      ref={ref}\n      accept={accept}\n      value={value ? value.name : undefined}\n      onChange={async (e) => onChange?.(e.target.files![0])}\n      placeholder={placeholder}\n    />\n  );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps, elementOverflow, mergeRefs } from \"@blocknote/react\";\nimport { forwardRef, useEffect, useRef } from \"react\";\n\nimport { cn } from \"../../lib/utils.js\";\n\nexport const GridSuggestionMenuItem = forwardRef<\n  HTMLDivElement,\n  ComponentProps[\"GridSuggestionMenu\"][\"Item\"]\n>((props, ref) => {\n  const { className, isSelected, onClick, item, id, ...rest } = props;\n\n  assertEmpty(rest);\n\n  const itemRef = useRef<HTMLDivElement>(null);\n\n  useEffect(() => {\n    if (!itemRef.current || !isSelected) {\n      return;\n    }\n\n    const overflow = elementOverflow(\n      itemRef.current,\n      itemRef.current.closest(\".bn-grid-suggestion-menu\")!,\n    );\n\n    if (overflow !== \"none\") {\n      itemRef.current.scrollIntoView({ block: \"nearest\" });\n    }\n  }, [isSelected]);\n\n  return (\n    <div\n      // Styles from ShadCN DropdownMenuItem component\n      className={cn(\n        \"focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*=text-])]:text-muted-foreground outline-hidden relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm data-[disabled]:pointer-events-none data-[inset]:pl-8 data-[disabled]:opacity-50 [&_svg:not([class*=size-])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n        \"hover:bg-accent hover:text-accent-foreground data-[variant=destructive]:hover:bg-destructive/10 dark:data-[variant=destructive]:hover:bg-destructive/20 data-[variant=destructive]:hover:text-destructive\",\n        \"aria-selected:bg-accent aria-selected:text-accent-foreground data-[variant=destructive]:aria-selected:bg-destructive/10 dark:data-[variant=destructive]:aria-selected:bg-destructive/20 data-[variant=destructive]:aria-selected:text-destructive\",\n        \"text-lg!\",\n        className,\n      )}\n      ref={mergeRefs([ref, itemRef])}\n      id={id}\n      role=\"option\"\n      onClick={onClick}\n      aria-selected={isSelected || undefined}\n    >\n      {item.icon}\n    </div>\n  );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nexport const GridSuggestionMenuLoader = forwardRef<\n  HTMLDivElement,\n  ComponentProps[\"GridSuggestionMenu\"][\"Loader\"]\n>((props, ref) => {\n  const {\n    className,\n    children, // unused, using \"dots\" instead\n    columns,\n    ...rest\n  } = props;\n\n  assertEmpty(rest);\n\n  return (\n    <div\n      className={className}\n      style={{ gridColumn: `1 / ${columns + 1}` }}\n      ref={ref}\n    >\n      {children}\n    </div>\n  );\n});\n","import { Components } from \"@blocknote/react\";\n\nimport { Form } from \"./form/Form.js\";\nimport { TextInput } from \"./form/TextInput.js\";\nimport {\n  Menu,\n  MenuDivider,\n  MenuDropdown,\n  MenuItem,\n  MenuLabel,\n  MenuTrigger,\n} from \"./menu/Menu.js\";\nimport { MenuButton } from \"./menu/Button.js\";\nimport { Panel } from \"./panel/Panel.js\";\nimport { PanelTab } from \"./panel/PanelTab.js\";\nimport { PanelTextInput } from \"./panel/PanelTextInput.js\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"./popover/popover.js\";\nimport { SideMenu } from \"./sideMenu/SideMenu.js\";\nimport { SideMenuButton } from \"./sideMenu/SideMenuButton.js\";\nimport { GridSuggestionMenu } from \"./suggestionMenu/gridSuggestionMenu/GridSuggestionMenu.js\";\nimport { GridSuggestionMenuEmptyItem } from \"./suggestionMenu/gridSuggestionMenu/GridSuggestionMenuEmptyItem.js\";\nimport { SuggestionMenu } from \"./suggestionMenu/SuggestionMenu.js\";\nimport { SuggestionMenuEmptyItem } from \"./suggestionMenu/SuggestionMenuEmptyItem.js\";\nimport { SuggestionMenuItem } from \"./suggestionMenu/SuggestionMenuItem.js\";\nimport { SuggestionMenuLabel } from \"./suggestionMenu/SuggestionMenuLabel.js\";\nimport { SuggestionMenuLoader } from \"./suggestionMenu/SuggestionMenuLoader.js\";\nimport { ExtendButton } from \"./tableHandle/ExtendButton.js\";\nimport { TableHandle } from \"./tableHandle/TableHandle.js\";\nimport { Toolbar, ToolbarButton, ToolbarSelect } from \"./toolbar/Toolbar.js\";\nimport { Card, CardSection, ExpandSectionsPrompt } from \"./comments/Card.js\";\nimport { Comment } from \"./comments/Comment.js\";\nimport { Editor } from \"./comments/Editor.js\";\nimport { Badge, BadgeGroup } from \"./badge/Badge.js\";\n\nimport { PanelButton } from \"./panel/PanelButton.js\";\nimport { PanelFileInput } from \"./panel/PanelFileInput.js\";\nimport { GridSuggestionMenuItem } from \"./suggestionMenu/gridSuggestionMenu/GridSuggestionMenuItem.js\";\nimport { GridSuggestionMenuLoader } from \"./suggestionMenu/gridSuggestionMenu/GridSuggestionMenuLoader.js\";\n\nexport const components: Components = {\n  FormattingToolbar: {\n    Root: Toolbar,\n    Button: ToolbarButton,\n    Select: ToolbarSelect,\n  },\n  FilePanel: {\n    Root: Panel,\n    Button: PanelButton,\n    FileInput: PanelFileInput,\n    TabPanel: PanelTab,\n    TextInput: PanelTextInput,\n  },\n  LinkToolbar: {\n    Root: Toolbar,\n    Button: ToolbarButton,\n    Select: ToolbarSelect,\n  },\n  SideMenu: {\n    Root: SideMenu,\n    Button: SideMenuButton,\n  },\n  SuggestionMenu: {\n    Root: SuggestionMenu,\n    Item: SuggestionMenuItem,\n    EmptyItem: SuggestionMenuEmptyItem,\n    Label: SuggestionMenuLabel,\n    Loader: SuggestionMenuLoader,\n  },\n  GridSuggestionMenu: {\n    Root: GridSuggestionMenu,\n    Item: GridSuggestionMenuItem,\n    EmptyItem: GridSuggestionMenuEmptyItem,\n    Loader: GridSuggestionMenuLoader,\n  },\n  TableHandle: {\n    Root: TableHandle,\n    ExtendButton: ExtendButton,\n  },\n  Comments: {\n    Comment: Comment,\n    Editor: Editor,\n    Card: Card,\n    CardSection: CardSection,\n    ExpandSectionsPrompt: ExpandSectionsPrompt,\n  },\n  Generic: {\n    Badge: {\n      Root: Badge,\n      Group: BadgeGroup,\n    },\n    Toolbar: {\n      Root: Toolbar,\n      Button: ToolbarButton,\n      Select: ToolbarSelect,\n    },\n    Form: {\n      Root: Form,\n      TextInput: TextInput,\n    },\n    Menu: {\n      Root: Menu,\n      Trigger: MenuTrigger,\n      Dropdown: MenuDropdown,\n      Divider: MenuDivider,\n      Label: MenuLabel,\n      Item: MenuItem,\n      Button: MenuButton,\n    },\n    Popover: {\n      Root: Popover,\n      Trigger: PopoverTrigger,\n      Content: PopoverContent,\n    },\n  },\n};\n","import {\n  BlockSchema,\n  InlineContentSchema,\n  mergeCSSClasses,\n  StyleSchema,\n} from \"@blocknote/core\";\nimport { BlockNoteViewRaw, ComponentsContext } from \"@blocknote/react\";\nimport { useMemo } from \"react\";\n\nimport { components } from \"./components.js\";\nimport {\n  ShadCNComponents,\n  ShadCNComponentsContext,\n  ShadCNDefaultComponents,\n} from \"./ShadCNComponentsContext.js\";\n\nimport \"./style.css\";\n\nexport const BlockNoteView = <\n  BSchema extends BlockSchema,\n  ISchema extends InlineContentSchema,\n  SSchema extends StyleSchema,\n>(\n  props: React.ComponentProps<\n    typeof BlockNoteViewRaw<BSchema, ISchema, SSchema>\n  > & {\n    /**\n     * (optional)Provide your own shadcn component overrides\n     */\n    shadCNComponents?: Partial<ShadCNComponents>;\n  },\n) => {\n  const { className, shadCNComponents, ...rest } = props;\n\n  const componentsValue = useMemo(() => {\n    return {\n      ...ShadCNDefaultComponents,\n      ...shadCNComponents,\n    };\n  }, [shadCNComponents]);\n\n  return (\n    <ShadCNComponentsContext.Provider value={componentsValue}>\n      <ComponentsContext.Provider value={components}>\n        <BlockNoteViewRaw\n          className={mergeCSSClasses(\"bn-shadcn\", className || \"\")}\n          {...rest}\n        />\n      </ComponentsContext.Provider>\n    </ShadCNComponentsContext.Provider>\n  );\n};\n"],"mappings":"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"}