{"version":3,"file":"blocknote-shadcn.cjs","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    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        />\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 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\")}\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 { forwardRef } from \"react\";\n\nimport { cn } from \"../lib/utils.js\";\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\n\nexport const Popover = (\n  props: ComponentProps[\"Generic\"][\"Popover\"][\"Root\"],\n) => {\n  const {\n    children,\n    opened,\n    position, // unused\n    ...rest\n  } = props;\n\n  assertEmpty(rest);\n\n  const ShadCNComponents = useShadCNComponentsContext()!;\n\n  return (\n    <ShadCNComponents.Popover.Popover open={opened}>\n      {children}\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\n  return (\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","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      document.querySelector(\".bn-suggestion-menu, #ai-suggestion-menu\")!, // TODO\n    );\n    if (overflow === \"top\") {\n      itemRef.current.scrollIntoView(true);\n    } else if (overflow === \"bottom\") {\n      itemRef.current.scrollIntoView(false);\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    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\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      document.querySelector(\".bn-grid-suggestion-menu\")!,\n    );\n\n    if (overflow === \"top\") {\n      itemRef.current.scrollIntoView(true);\n    } else if (overflow === \"bottom\") {\n      itemRef.current.scrollIntoView(false);\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"],"names":["cn","inputs","twMerge","clsx","Avatar","className","props","jsx","AvatarPrimitive","AvatarImage","AvatarFallback","badgeVariants","cva","Badge","variant","asChild","Comp","Slot","buttonVariants","Button","size","Card","CardContent","DropdownMenu","DropdownMenuPrimitive","DropdownMenuTrigger","DropdownMenuContent","sideOffset","DropdownMenuItem","inset","DropdownMenuCheckboxItem","children","checked","jsxs","CheckIcon","DropdownMenuLabel","DropdownMenuSeparator","DropdownMenuSub","DropdownMenuSubTrigger","ChevronRightIcon","DropdownMenuSubContent","Label","LabelPrimitive","Form","FormProvider","React","Input","type","Popover","PopoverPrimitive","PopoverTrigger","PopoverContent","align","Select","SelectPrimitive","SelectValue","SelectTrigger","ChevronDownIcon","SelectContent","position","SelectScrollUpButton","SelectScrollDownButton","SelectItem","ChevronUpIcon","Skeleton","Tabs","TabsPrimitive","TabsList","TabsTrigger","TabsContent","toggleVariants","Toggle","TogglePrimitive","TooltipProvider","delayDuration","TooltipPrimitive","Tooltip","TooltipTrigger","TooltipContent","ShadCNDefaultComponents","ShadCNAvatar","ShadCNAvatarFallback","ShadCNAvatarImage","ShadCNBadge","ShadCNButton","ShadCNCard","ShadCNCardContent","ShadCNDropdownMenu","ShadCNDropdownMenuCheckboxItem","ShadCNDropdownMenuContent","ShadCNDropdownMenuItem","ShadCNDropdownMenuLabel","ShadCNDropdownMenuSeparator","ShadCNDropdownMenuSub","ShadCNDropdownMenuSubContent","ShadCNDropdownMenuSubTrigger","ShadCNDropdownMenuTrigger","ShadCNForm","ShadCNInput","ShadCNLabel","ShadCNPopover","ShadCNPopoverContent","ShadCNPopoverTrigger","ShadCNSelect","ShadCNSelectContent","ShadCNSelectItem","ShadCNSelectTrigger","ShadCNSelectValue","ShadCNSkeleton","ShadCNTabs","ShadCNTabsContent","ShadCNTabsList","ShadCNTabsTrigger","ShadCNToggle","ShadCNTooltip","ShadCNTooltipContent","ShadCNTooltipProvider","ShadCNTooltipTrigger","ShadCNComponentsContext","createContext","useShadCNComponentsContext","useContext","rest","assertEmpty","ShadCNComponents","form","useForm","TextInput","forwardRef","ref","name","label","icon","value","autoFocus","placeholder","disabled","onKeyDown","onChange","onSubmit","autoComplete","rightSection","MenuTriggerWithPointerUp","e","event","Menu","onOpenChange","sub","MenuTrigger","useMemo","MenuDropdown","MenuItem","subTrigger","onClick","Fragment","ChevronRight","MenuDivider","MenuLabel","MenuButton","onDragEnd","onDragStart","draggable","Panel","tabs","defaultOpenTab","openTab","setOpenTab","loading","tab","PanelTab","PanelTextInput","opened","SideMenu","SideMenuButton","GridSuggestionMenu","id","columns","GridSuggestionMenuEmptyItem","SuggestionMenu","SuggestionMenuEmptyItem","SuggestionMenuItem","item","isSelected","itemRef","useRef","useEffect","overflow","elementOverflow","mergeRefs","SuggestionMenuLabel","SuggestionMenuLoader","ExtendButton","onMouseDown","TableHandle","style","Toolbar","onMouseEnter","onMouseLeave","ToolbarButton","mainTooltip","secondaryTooltip","isDisabled","trigger","ToolbarSelect","items","SelectItemContent","selectedItem","p","_b","_a","selected","headerText","onFocus","onBlur","tabIndex","CardSection","ExpandSectionsPrompt","AuthorInfo","_ref","authorInfo","timeString","edited","dict","useDictionary","Comment","showActions","actions","hovered","setHovered","useState","focused","focusRef","useFocusWithin","doShowActions","Editor","editor","editable","blockNoteContext","useBlockNoteContext","BlockNoteView","FormattingToolbarController","CustomFormattingToolbar","getFormattingToolbarItems","el","FormattingToolbar","text","badge","BadgeGroup","PanelButton","PanelFileInput","accept","GridSuggestionMenuItem","GridSuggestionMenuLoader","components","shadCNComponents","componentsValue","ComponentsContext","BlockNoteViewRaw","mergeCSSClasses"],"mappings":"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"}