{"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 { type ClassValue, clsx } from \"clsx\";\nimport { extendTailwindMerge } from \"tailwind-merge\";\n\n// Ensures that `bn-` prefixed Tailwind classes are recognized as Tailwind\n// classes, so they can be merged correctly.\nconst twMerge = extendTailwindMerge({\n  prefix: \"bn-\",\n});\n\nexport function cn(...inputs: ClassValue[]) {\n  return twMerge(clsx(inputs));\n}\n","import * as React from \"react\";\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst Avatar = React.forwardRef<\n  React.ElementRef<typeof AvatarPrimitive.Root>,\n  React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>\n>(({ className, ...props }, ref) => (\n  <AvatarPrimitive.Root\n    ref={ref}\n    className={cn(\n      \"relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full\",\n      className,\n    )}\n    {...props}\n  />\n));\nAvatar.displayName = AvatarPrimitive.Root.displayName;\n\nconst AvatarImage = React.forwardRef<\n  React.ElementRef<typeof AvatarPrimitive.Image>,\n  React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>\n>(({ className, ...props }, ref) => (\n  <AvatarPrimitive.Image\n    ref={ref}\n    className={cn(\"aspect-square h-full w-full\", className)}\n    {...props}\n  />\n));\nAvatarImage.displayName = AvatarPrimitive.Image.displayName;\n\nconst AvatarFallback = React.forwardRef<\n  React.ElementRef<typeof AvatarPrimitive.Fallback>,\n  React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback>\n>(({ className, ...props }, ref) => (\n  <AvatarPrimitive.Fallback\n    ref={ref}\n    className={cn(\n      \"bg-muted flex h-full w-full items-center justify-center rounded-full\",\n      className,\n    )}\n    {...props}\n  />\n));\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;\n\nexport { Avatar, AvatarImage, AvatarFallback };\n","import { cva, type VariantProps } from \"class-variance-authority\";\nimport * as React from \"react\";\n\nimport { cn } from \"../../lib/utils.js\";\n\nconst badgeVariants = cva(\n  \"bn-inline-flex bn-items-center bn-rounded-full bn-border bn-px-2.5 bn-py-0.5 bn-text-xs bn-font-semibold bn-transition-colors focus:bn-outline-none focus:bn-ring-2 focus:bn-ring-ring focus:bn-ring-offset-2\",\n  {\n    variants: {\n      variant: {\n        default:\n          \"bn-border-transparent bn-bg-primary bn-text-primary-foreground hover:bn-bg-primary/80\",\n        secondary:\n          \"bn-border-transparent bn-bg-secondary bn-text-secondary-foreground hover:bn-bg-secondary/80\",\n        destructive:\n          \"bn-border-transparent bn-bg-destructive bn-text-destructive-foreground hover:bn-bg-destructive/80\",\n        outline: \"bn-text-foreground\",\n      },\n    },\n    defaultVariants: {\n      variant: \"default\",\n    },\n  },\n);\n\nexport interface BadgeProps\n  extends React.HTMLAttributes<HTMLDivElement>,\n    VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n  return (\n    <div className={cn(badgeVariants({ variant }), className)} {...props} />\n  );\n}\n\nexport { Badge, badgeVariants };\n","import { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport * as React from \"react\";\n\nimport { cn } from \"../../lib/utils.js\";\n\nconst buttonVariants = cva(\n  \"bn-inline-flex bn-items-center bn-justify-center bn-whitespace-nowrap bn-rounded-md bn-text-sm bn-font-medium bn-ring-offset-background bn-transition-colors focus-visible:bn-outline-none focus-visible:bn-ring-2 focus-visible:bn-ring-ring focus-visible:bn-ring-offset-2 disabled:bn-pointer-events-none disabled:bn-opacity-50\",\n  {\n    variants: {\n      variant: {\n        default:\n          \"bn-bg-primary bn-text-primary-foreground hover:bn-bg-primary/90\",\n        destructive:\n          \"bn-bg-destructive bn-text-destructive-foreground hover:bn-bg-destructive/90\",\n        outline:\n          \"bn-border bn-border-input bn-bg-background hover:bn-bg-accent hover:bn-text-accent-foreground\",\n        secondary:\n          \"bn-bg-secondary bn-text-secondary-foreground hover:bn-bg-secondary/80\",\n        ghost: \"hover:bn-bg-accent hover:bn-text-accent-foreground\",\n        link: \"bn-text-primary bn-underline-offset-4 hover:bn-underline\",\n      },\n      size: {\n        default: \"bn-h-10 bn-px-4 bn-py-2\",\n        sm: \"bn-h-9 bn-rounded-md bn-px-3\",\n        lg: \"bn-h-11 bn-rounded-md bn-px-8\",\n        icon: \"bn-h-10 bn-w-10\",\n      },\n    },\n    defaultVariants: {\n      variant: \"default\",\n      size: \"default\",\n    },\n  },\n);\n\nexport interface ButtonProps\n  extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n    VariantProps<typeof buttonVariants> {\n  asChild?: boolean;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n  ({ className, variant, size, asChild = false, ...props }, ref) => {\n    const Comp = asChild ? Slot : \"button\";\n    return (\n      <Comp\n        className={cn(buttonVariants({ variant, size, className }))}\n        ref={ref}\n        type=\"button\"\n        {...props}\n      />\n    );\n  },\n);\nButton.displayName = \"Button\";\n\nexport { Button, buttonVariants };\n","import * as React from \"react\";\n\nimport { cn } from \"../../lib/utils.js\";\n\nconst Card = React.forwardRef<\n  HTMLDivElement,\n  React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n  <div\n    ref={ref}\n    className={cn(\n      \"bn-rounded-lg bn-border bn-bg-card bn-text-card-foreground bn-shadow-sm\",\n      className,\n    )}\n    {...props}\n  />\n));\nCard.displayName = \"Card\";\n\nconst CardHeader = React.forwardRef<\n  HTMLDivElement,\n  React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n  <div\n    ref={ref}\n    className={cn(\"bn-flex bn-flex-col bn-space-y-1.5 bn-p-6\", className)}\n    {...props}\n  />\n));\nCardHeader.displayName = \"CardHeader\";\n\nconst CardTitle = React.forwardRef<\n  HTMLParagraphElement,\n  React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n  <h3\n    ref={ref}\n    className={cn(\n      \"bn-text-2xl bn-font-semibold bn-leading-none bn-tracking-tight\",\n      className,\n    )}\n    {...props}\n  />\n));\nCardTitle.displayName = \"CardTitle\";\n\nconst CardDescription = React.forwardRef<\n  HTMLParagraphElement,\n  React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n  <p\n    ref={ref}\n    className={cn(\"bn-text-sm bn-text-muted-foreground\", className)}\n    {...props}\n  />\n));\nCardDescription.displayName = \"CardDescription\";\n\nconst CardContent = React.forwardRef<\n  HTMLDivElement,\n  React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n  <div ref={ref} className={cn(\"bn-p-6 bn-pt-0\", className)} {...props} />\n));\nCardContent.displayName = \"CardContent\";\n\nconst CardFooter = React.forwardRef<\n  HTMLDivElement,\n  React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n  <div\n    ref={ref}\n    className={cn(\"bn-flex bn-items-center bn-p-6 bn-pt-0\", className)}\n    {...props}\n  />\n));\nCardFooter.displayName = \"CardFooter\";\n\nexport {\n  Card,\n  CardContent,\n  CardDescription,\n  CardFooter,\n  CardHeader,\n  CardTitle,\n};\n","import * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\nimport { Check, ChevronRight, Circle } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { cn } from \"../../lib/utils.js\";\n\nconst DropdownMenu = DropdownMenuPrimitive.Root;\n\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;\n\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group;\n\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal;\n\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub;\n\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;\n\nconst DropdownMenuSubTrigger = React.forwardRef<\n  React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,\n  React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & {\n    inset?: boolean;\n  }\n>(({ className, inset, children, ...props }, ref) => (\n  <DropdownMenuPrimitive.SubTrigger\n    ref={ref}\n    className={cn(\n      \"bn-flex bn-cursor-default bn-select-none bn-items-center bn-rounded-sm bn-px-2 bn-py-1.5 bn-text-sm bn-outline-none focus:bn-bg-accent data-[state=open]:bn-bg-accent\",\n      inset && \"bn-pl-8\",\n      className,\n    )}\n    {...props}\n  >\n    {children}\n    <ChevronRight className=\"bn-ml-auto bn-h-4 bn-w-4\" />\n  </DropdownMenuPrimitive.SubTrigger>\n));\nDropdownMenuSubTrigger.displayName =\n  DropdownMenuPrimitive.SubTrigger.displayName;\n\nconst DropdownMenuSubContent = React.forwardRef<\n  React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,\n  React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n  <DropdownMenuPrimitive.SubContent\n    ref={ref}\n    className={cn(\n      \"bn-z-50 bn-min-w-[8rem] bn-overflow-hidden bn-rounded-md bn-border bn-bg-popover bn-p-1 bn-text-popover-foreground bn-shadow-lg data-[state=open]:bn-animate-in data-[state=closed]:bn-animate-out data-[state=closed]:bn-fade-out-0 data-[state=open]:bn-fade-in-0 data-[state=closed]:bn-zoom-out-95 data-[state=open]:bn-zoom-in-95 data-[side=bottom]:bn-slide-in-from-top-2 data-[side=left]:bn-slide-in-from-right-2 data-[side=right]:bn-slide-in-from-left-2 data-[side=top]:bn-slide-in-from-bottom-2\",\n      className,\n    )}\n    {...props}\n  />\n));\nDropdownMenuSubContent.displayName =\n  DropdownMenuPrimitive.SubContent.displayName;\n\nconst DropdownMenuContent = React.forwardRef<\n  React.ElementRef<typeof DropdownMenuPrimitive.Content>,\n  React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n  // <DropdownMenuPrimitive.Portal>\n  <DropdownMenuPrimitive.Content\n    ref={ref}\n    sideOffset={sideOffset}\n    className={cn(\n      \"bn-z-50 bn-min-w-[8rem] bn-overflow-hidden bn-rounded-md bn-border bn-bg-popover bn-p-1 bn-text-popover-foreground bn-shadow-md data-[state=open]:bn-animate-in data-[state=closed]:bn-animate-out data-[state=closed]:bn-fade-out-0 data-[state=open]:bn-fade-in-0 data-[state=closed]:bn-zoom-out-95 data-[state=open]:bn-zoom-in-95 data-[side=bottom]:bn-slide-in-from-top-2 data-[side=left]:bn-slide-in-from-right-2 data-[side=right]:bn-slide-in-from-left-2 data-[side=top]:bn-slide-in-from-bottom-2\",\n      className,\n    )}\n    {...props}\n  />\n  // </DropdownMenuPrimitive.Portal>\n));\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;\n\nconst DropdownMenuItem = React.forwardRef<\n  React.ElementRef<typeof DropdownMenuPrimitive.Item>,\n  React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {\n    inset?: boolean;\n  }\n>(({ className, inset, ...props }, ref) => (\n  <DropdownMenuPrimitive.Item\n    ref={ref}\n    className={cn(\n      \"bn-relative bn-flex bn-cursor-default bn-select-none bn-items-center bn-rounded-sm bn-px-2 bn-py-1.5 bn-text-sm bn-outline-none bn-transition-colors focus:bn-bg-accent focus:bn-text-accent-foreground data-[disabled]:bn-pointer-events-none data-[disabled]:bn-opacity-50\",\n      inset && \"bn-pl-8\",\n      className,\n    )}\n    {...props}\n  />\n));\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;\n\nconst DropdownMenuCheckboxItem = React.forwardRef<\n  React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,\n  React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n  <DropdownMenuPrimitive.CheckboxItem\n    ref={ref}\n    className={cn(\n      \"bn-relative bn-flex bn-cursor-default bn-select-none bn-items-center bn-rounded-sm bn-py-1.5 bn-pl-8 bn-pr-2 bn-text-sm bn-outline-none bn-transition-colors focus:bn-bg-accent focus:bn-text-accent-foreground data-[disabled]:bn-pointer-events-none data-[disabled]:bn-opacity-50\",\n      className,\n    )}\n    checked={checked}\n    {...props}\n  >\n    <span className=\"bn-absolute bn-left-2 bn-flex bn-h-3.5 bn-w-3.5 bn-items-center bn-justify-center\">\n      <DropdownMenuPrimitive.ItemIndicator>\n        <Check className=\"bn-h-4 bn-w-4\" />\n      </DropdownMenuPrimitive.ItemIndicator>\n    </span>\n    {children}\n  </DropdownMenuPrimitive.CheckboxItem>\n));\nDropdownMenuCheckboxItem.displayName =\n  DropdownMenuPrimitive.CheckboxItem.displayName;\n\nconst DropdownMenuRadioItem = React.forwardRef<\n  React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,\n  React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n  <DropdownMenuPrimitive.RadioItem\n    ref={ref}\n    className={cn(\n      \"bn-relative bn-flex bn-cursor-default bn-select-none bn-items-center bn-rounded-sm bn-py-1.5 bn-pl-8 bn-pr-2 bn-text-sm bn-outline-none bn-transition-colors focus:bn-bg-accent focus:bn-text-accent-foreground data-[disabled]:bn-pointer-events-none data-[disabled]:bn-opacity-50\",\n      className,\n    )}\n    {...props}\n  >\n    <span className=\"bn-absolute bn-left-2 bn-flex bn-h-3.5 bn-w-3.5 bn-items-center bn-justify-center\">\n      <DropdownMenuPrimitive.ItemIndicator>\n        <Circle className=\"bn-h-2 bn-w-2 bn-fill-current\" />\n      </DropdownMenuPrimitive.ItemIndicator>\n    </span>\n    {children}\n  </DropdownMenuPrimitive.RadioItem>\n));\nDropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;\n\nconst DropdownMenuLabel = React.forwardRef<\n  React.ElementRef<typeof DropdownMenuPrimitive.Label>,\n  React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {\n    inset?: boolean;\n  }\n>(({ className, inset, ...props }, ref) => (\n  <DropdownMenuPrimitive.Label\n    ref={ref}\n    className={cn(\n      \"bn-px-2 bn-py-1.5 bn-text-sm bn-font-semibold\",\n      inset && \"bn-pl-8\",\n      className,\n    )}\n    {...props}\n  />\n));\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;\n\nconst DropdownMenuSeparator = React.forwardRef<\n  React.ElementRef<typeof DropdownMenuPrimitive.Separator>,\n  React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n  <DropdownMenuPrimitive.Separator\n    ref={ref}\n    className={cn(\"bn--mx-1 bn-my-1 bn-h-px bn-bg-muted\", className)}\n    {...props}\n  />\n));\nDropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;\n\nconst DropdownMenuShortcut = ({\n  className,\n  ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n  return (\n    <span\n      className={cn(\n        \"bn-ml-auto bn-text-xs bn-tracking-widest bn-opacity-60\",\n        className,\n      )}\n      {...props}\n    />\n  );\n};\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\";\n\nexport {\n  DropdownMenu,\n  DropdownMenuCheckboxItem,\n  DropdownMenuContent,\n  DropdownMenuGroup,\n  DropdownMenuItem,\n  DropdownMenuLabel,\n  DropdownMenuPortal,\n  DropdownMenuRadioGroup,\n  DropdownMenuRadioItem,\n  DropdownMenuSeparator,\n  DropdownMenuShortcut,\n  DropdownMenuSub,\n  DropdownMenuSubContent,\n  DropdownMenuSubTrigger,\n  DropdownMenuTrigger,\n};\n","import * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport * as React from \"react\";\n\nimport { cn } from \"../../lib/utils.js\";\n\nconst labelVariants = cva(\n  \"bn-text-sm bn-font-medium bn-leading-none peer-disabled:bn-cursor-not-allowed peer-disabled:bn-opacity-70\",\n);\n\nconst Label = React.forwardRef<\n  React.ElementRef<typeof LabelPrimitive.Root>,\n  React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> &\n    VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n  <LabelPrimitive.Root\n    ref={ref}\n    className={cn(labelVariants(), className)}\n    {...props}\n  />\n));\nLabel.displayName = LabelPrimitive.Root.displayName;\n\nexport { Label };\n","import * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport * as React from \"react\";\nimport {\n  Controller,\n  ControllerProps,\n  FieldPath,\n  FieldValues,\n  FormProvider,\n  useFormContext,\n} from \"react-hook-form\";\n\nimport { cn } from \"../../lib/utils.js\";\nimport { Label } from \"./label.js\";\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, formState } = useFormContext();\n\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\nconst FormItem = React.forwardRef<\n  HTMLDivElement,\n  React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n  const id = React.useId();\n\n  return (\n    <FormItemContext.Provider value={{ id }}>\n      <div ref={ref} className={cn(\"bn-space-y-2\", className)} {...props} />\n    </FormItemContext.Provider>\n  );\n});\nFormItem.displayName = \"FormItem\";\n\nconst FormLabel = React.forwardRef<\n  React.ElementRef<typeof LabelPrimitive.Root>,\n  React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>\n>(({ className, ...props }, ref) => {\n  const { error, formItemId } = useFormField();\n\n  return (\n    <Label\n      ref={ref}\n      className={cn(error && \"bn-text-destructive\", className)}\n      htmlFor={formItemId}\n      {...props}\n    />\n  );\n});\nFormLabel.displayName = \"FormLabel\";\n\nconst FormControl = React.forwardRef<\n  React.ElementRef<typeof Slot>,\n  React.ComponentPropsWithoutRef<typeof Slot>\n>(({ ...props }, ref) => {\n  const { error, formItemId, formDescriptionId, formMessageId } =\n    useFormField();\n\n  return (\n    <Slot\n      ref={ref}\n      id={formItemId}\n      aria-describedby={\n        !error\n          ? `${formDescriptionId}`\n          : `${formDescriptionId} ${formMessageId}`\n      }\n      aria-invalid={!!error}\n      {...props}\n    />\n  );\n});\nFormControl.displayName = \"FormControl\";\n\nconst FormDescription = React.forwardRef<\n  HTMLParagraphElement,\n  React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => {\n  const { formDescriptionId } = useFormField();\n\n  return (\n    <p\n      ref={ref}\n      id={formDescriptionId}\n      className={cn(\"bn-text-sm bn-text-muted-foreground\", className)}\n      {...props}\n    />\n  );\n});\nFormDescription.displayName = \"FormDescription\";\n\nconst FormMessage = React.forwardRef<\n  HTMLParagraphElement,\n  React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, children, ...props }, ref) => {\n  const { error, formMessageId } = useFormField();\n  const body = error ? String(error?.message) : children;\n\n  if (!body) {\n    return null;\n  }\n\n  return (\n    <p\n      ref={ref}\n      id={formMessageId}\n      className={cn(\"bn-text-sm bn-font-medium bn-text-destructive\", className)}\n      {...props}\n    >\n      {body}\n    </p>\n  );\n});\nFormMessage.displayName = \"FormMessage\";\n\nexport {\n  Form,\n  FormControl,\n  FormDescription,\n  FormField,\n  FormItem,\n  FormLabel,\n  FormMessage,\n  useFormField,\n};\n","import * as React from \"react\";\n\nimport { cn } from \"../../lib/utils.js\";\n\nexport interface InputProps\n  extends React.InputHTMLAttributes<HTMLInputElement> {}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n  ({ className, type, ...props }, ref) => {\n    return (\n      <input\n        type={type}\n        className={cn(\n          \"bn-flex bn-h-10 bn-w-full bn-rounded-md bn-border bn-border-input bn-bg-background bn-px-3 bn-py-2 bn-text-sm bn-ring-offset-background file:bn-border-0 file:bn-bg-transparent file:bn-text-sm file:bn-font-medium placeholder:bn-text-muted-foreground focus-visible:bn-outline-none focus-visible:bn-ring-2 focus-visible:bn-ring-ring focus-visible:bn-ring-offset-2 disabled:bn-cursor-not-allowed disabled:bn-opacity-50\",\n          className,\n        )}\n        ref={ref}\n        {...props}\n      />\n    );\n  },\n);\nInput.displayName = \"Input\";\n\nexport { Input };\n","import * as PopoverPrimitive from \"@radix-ui/react-popover\";\nimport * as React from \"react\";\n\nimport { cn } from \"../../lib/utils.js\";\n\nconst Popover = PopoverPrimitive.Root;\n\nconst PopoverTrigger = PopoverPrimitive.Trigger;\n\nconst PopoverContent = React.forwardRef<\n  React.ElementRef<typeof PopoverPrimitive.Content>,\n  React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n>(({ className, align = \"center\", sideOffset = 4, ...props }, ref) => (\n  // <PopoverPrimitive.Portal>\n  <PopoverPrimitive.Content\n    ref={ref}\n    align={align}\n    sideOffset={sideOffset}\n    className={cn(\n      \"bn-z-50 bn-w-72 bn-rounded-md bn-border bn-bg-popover bn-p-4 bn-text-popover-foreground bn-shadow-md bn-outline-none data-[state=open]:bn-animate-in data-[state=closed]:bn-animate-out data-[state=closed]:bn-fade-out-0 data-[state=open]:bn-fade-in-0 data-[state=closed]:bn-zoom-out-95 data-[state=open]:bn-zoom-in-95 data-[side=bottom]:bn-slide-in-from-top-2 data-[side=left]:bn-slide-in-from-right-2 data-[side=right]:bn-slide-in-from-left-2 data-[side=top]:bn-slide-in-from-bottom-2\",\n      className,\n    )}\n    {...props}\n  />\n  // </PopoverPrimitive.Portal>\n));\nPopoverContent.displayName = PopoverPrimitive.Content.displayName;\n\nexport { Popover, PopoverContent, PopoverTrigger };\n","import * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { Check, ChevronDown, ChevronUp } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { cn } from \"../../lib/utils.js\";\n\nconst Select = SelectPrimitive.Root;\n\nconst SelectGroup = SelectPrimitive.Group;\n\nconst SelectValue = SelectPrimitive.Value;\n\nconst SelectTrigger = React.forwardRef<\n  React.ElementRef<typeof SelectPrimitive.Trigger>,\n  React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n  <SelectPrimitive.Trigger\n    ref={ref}\n    className={cn(\n      \"bn-flex bn-h-10 bn-w-full bn-items-center bn-justify-between bn-rounded-md bn-border bn-border-input bn-bg-background bn-px-3 bn-py-2 bn-text-sm bn-ring-offset-background placeholder:bn-text-muted-foreground focus:bn-outline-none focus:bn-ring-2 focus:bn-ring-ring focus:bn-ring-offset-2 disabled:bn-cursor-not-allowed disabled:bn-opacity-50 [&>span]:bn-line-clamp-1\",\n      className,\n    )}\n    {...props}\n  >\n    {children}\n    <SelectPrimitive.Icon asChild>\n      <ChevronDown className=\"bn-h-4 bn-w-4 bn-opacity-50\" />\n    </SelectPrimitive.Icon>\n  </SelectPrimitive.Trigger>\n));\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName;\n\nconst SelectScrollUpButton = React.forwardRef<\n  React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,\n  React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\n>(({ className, ...props }, ref) => (\n  <SelectPrimitive.ScrollUpButton\n    ref={ref}\n    className={cn(\n      \"bn-flex bn-cursor-default bn-items-center bn-justify-center bn-py-1\",\n      className,\n    )}\n    {...props}\n  >\n    <ChevronUp className=\"bn-h-4 bn-w-4\" />\n  </SelectPrimitive.ScrollUpButton>\n));\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;\n\nconst SelectScrollDownButton = React.forwardRef<\n  React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,\n  React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\n>(({ className, ...props }, ref) => (\n  <SelectPrimitive.ScrollDownButton\n    ref={ref}\n    className={cn(\n      \"bn-flex bn-cursor-default bn-items-center bn-justify-center bn-py-1\",\n      className,\n    )}\n    {...props}\n  >\n    <ChevronDown className=\"bn-h-4 bn-w-4\" />\n  </SelectPrimitive.ScrollDownButton>\n));\nSelectScrollDownButton.displayName =\n  SelectPrimitive.ScrollDownButton.displayName;\n\nconst SelectContent = React.forwardRef<\n  React.ElementRef<typeof SelectPrimitive.Content>,\n  React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = \"popper\", ...props }, ref) => (\n  // <SelectPrimitive.Portal>\n  <SelectPrimitive.Content\n    ref={ref}\n    className={cn(\n      \"bn-relative bn-z-50 bn-max-h-96 bn-min-w-[8rem] bn-overflow-hidden bn-rounded-md bn-border bn-bg-popover bn-text-popover-foreground bn-shadow-md data-[state=open]:bn-animate-in data-[state=closed]:bn-animate-out data-[state=closed]:bn-fade-out-0 data-[state=open]:bn-fade-in-0 data-[state=closed]:bn-zoom-out-95 data-[state=open]:bn-zoom-in-95 data-[side=bottom]:bn-slide-in-from-top-2 data-[side=left]:bn-slide-in-from-right-2 data-[side=right]:bn-slide-in-from-left-2 data-[side=top]:bn-slide-in-from-bottom-2\",\n      position === \"popper\" &&\n        \"data-[side=bottom]:bn-translate-y-1 data-[side=left]:bn--translate-x-1 data-[side=right]:bn-translate-x-1 data-[side=top]:bn--translate-y-1\",\n      className,\n    )}\n    position={position}\n    {...props}\n  >\n    <SelectScrollUpButton />\n    <SelectPrimitive.Viewport\n      className={cn(\n        \"bn-p-1\",\n        position === \"popper\" &&\n          \"bn-h-[var(--radix-select-trigger-height)] bn-w-full bn-min-w-[var(--radix-select-trigger-width)]\",\n      )}\n    >\n      {children}\n    </SelectPrimitive.Viewport>\n    <SelectScrollDownButton />\n  </SelectPrimitive.Content>\n  // </SelectPrimitive.Portal>\n));\nSelectContent.displayName = SelectPrimitive.Content.displayName;\n\nconst SelectLabel = React.forwardRef<\n  React.ElementRef<typeof SelectPrimitive.Label>,\n  React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n  <SelectPrimitive.Label\n    ref={ref}\n    className={cn(\n      \"bn-py-1.5 bn-pl-8 bn-pr-2 bn-text-sm bn-font-semibold\",\n      className,\n    )}\n    {...props}\n  />\n));\nSelectLabel.displayName = SelectPrimitive.Label.displayName;\n\nconst SelectItem = React.forwardRef<\n  React.ElementRef<typeof SelectPrimitive.Item>,\n  React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n  <SelectPrimitive.Item\n    ref={ref}\n    className={cn(\n      \"bn-relative bn-flex bn-w-full bn-cursor-default bn-select-none bn-items-center bn-rounded-sm bn-py-1.5 bn-pl-8 bn-pr-2 bn-text-sm bn-outline-none focus:bn-bg-accent focus:bn-text-accent-foreground data-[disabled]:bn-pointer-events-none data-[disabled]:bn-opacity-50\",\n      className,\n    )}\n    {...props}\n  >\n    <span className=\"bn-absolute bn-left-2 bn-flex bn-h-3.5 bn-w-3.5 bn-items-center bn-justify-center\">\n      <SelectPrimitive.ItemIndicator>\n        <Check className=\"bn-h-4 bn-w-4\" />\n      </SelectPrimitive.ItemIndicator>\n    </span>\n\n    <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n  </SelectPrimitive.Item>\n));\nSelectItem.displayName = SelectPrimitive.Item.displayName;\n\nconst SelectSeparator = React.forwardRef<\n  React.ElementRef<typeof SelectPrimitive.Separator>,\n  React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n  <SelectPrimitive.Separator\n    ref={ref}\n    className={cn(\"bn--mx-1 bn-my-1 bn-h-px bn-bg-muted\", className)}\n    {...props}\n  />\n));\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName;\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({\n  className,\n  ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n  return (\n    <div\n      className={cn(\"bg-primary/10 animate-pulse rounded-md\", className)}\n      {...props}\n    />\n  );\n}\n\nexport { Skeleton };\n","import * as TabsPrimitive from \"@radix-ui/react-tabs\";\nimport * as React from \"react\";\n\nimport { cn } from \"../../lib/utils.js\";\n\nconst Tabs = TabsPrimitive.Root;\n\nconst TabsList = React.forwardRef<\n  React.ElementRef<typeof TabsPrimitive.List>,\n  React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\n>(({ className, ...props }, ref) => (\n  <TabsPrimitive.List\n    ref={ref}\n    className={cn(\n      \"bn-inline-flex bn-h-10 bn-items-center bn-justify-center bn-rounded-md bn-bg-muted bn-p-1 bn-text-muted-foreground\",\n      className,\n    )}\n    {...props}\n  />\n));\nTabsList.displayName = TabsPrimitive.List.displayName;\n\nconst TabsTrigger = React.forwardRef<\n  React.ElementRef<typeof TabsPrimitive.Trigger>,\n  React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n  <TabsPrimitive.Trigger\n    ref={ref}\n    className={cn(\n      \"bn-inline-flex bn-items-center bn-justify-center bn-whitespace-nowrap bn-rounded-sm bn-px-3 bn-py-1.5 bn-text-sm bn-font-medium bn-ring-offset-background bn-transition-all focus-visible:bn-outline-none focus-visible:bn-ring-2 focus-visible:bn-ring-ring focus-visible:bn-ring-offset-2 disabled:bn-pointer-events-none disabled:bn-opacity-50 data-[state=active]:bn-bg-background data-[state=active]:bn-text-foreground data-[state=active]:bn-shadow-sm\",\n      className,\n    )}\n    {...props}\n  />\n));\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\n\nconst TabsContent = React.forwardRef<\n  React.ElementRef<typeof TabsPrimitive.Content>,\n  React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n  <TabsPrimitive.Content\n    ref={ref}\n    className={cn(\n      \"bn-mt-2 bn-ring-offset-background focus-visible:bn-outline-none focus-visible:bn-ring-2 focus-visible:bn-ring-ring focus-visible:bn-ring-offset-2\",\n      className,\n    )}\n    {...props}\n  />\n));\nTabsContent.displayName = TabsPrimitive.Content.displayName;\n\nexport { Tabs, TabsContent, TabsList, TabsTrigger };\n","import * as TogglePrimitive from \"@radix-ui/react-toggle\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport * as React from \"react\";\n\nimport { cn } from \"../../lib/utils.js\";\n\nconst toggleVariants = cva(\n  \"bn-inline-flex bn-items-center bn-justify-center bn-rounded-md bn-text-sm bn-font-medium bn-ring-offset-background bn-transition-colors hover:bn-bg-muted hover:bn-text-muted-foreground focus-visible:bn-outline-none focus-visible:bn-ring-2 focus-visible:bn-ring-ring focus-visible:bn-ring-offset-2 disabled:bn-pointer-events-none disabled:bn-opacity-50 data-[state=on]:bn-bg-accent data-[state=on]:bn-text-accent-foreground\",\n  {\n    variants: {\n      variant: {\n        default: \"bn-bg-transparent\",\n        outline:\n          \"bn-border bn-border-input bn-bg-transparent hover:bn-bg-accent hover:bn-text-accent-foreground\",\n      },\n      size: {\n        default: \"bn-h-10 bn-px-3\",\n        sm: \"bn-h-9 bn-px-2.5\",\n        lg: \"bn-h-11 bn-px-5\",\n      },\n    },\n    defaultVariants: {\n      variant: \"default\",\n      size: \"default\",\n    },\n  },\n);\n\nconst Toggle = React.forwardRef<\n  React.ElementRef<typeof TogglePrimitive.Root>,\n  React.ComponentPropsWithoutRef<typeof TogglePrimitive.Root> &\n    VariantProps<typeof toggleVariants>\n>(({ className, variant, size, ...props }, ref) => (\n  <TogglePrimitive.Root\n    ref={ref}\n    className={cn(toggleVariants({ variant, size, className }))}\n    {...props}\n  />\n));\n\nToggle.displayName = TogglePrimitive.Root.displayName;\n\nexport { Toggle, toggleVariants };\n","import * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\nimport * as React from \"react\";\n\nimport { cn } from \"../../lib/utils.js\";\n\nconst TooltipProvider = TooltipPrimitive.Provider;\n\nconst Tooltip = TooltipPrimitive.Root;\n\nconst TooltipTrigger = TooltipPrimitive.Trigger;\n\nconst TooltipContent = React.forwardRef<\n  React.ElementRef<typeof TooltipPrimitive.Content>,\n  React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n  <TooltipPrimitive.Content\n    ref={ref}\n    sideOffset={sideOffset}\n    className={cn(\n      \"bn-z-50 bn-overflow-hidden bn-rounded-md bn-border bn-bg-popover bn-px-3 bn-py-1.5 bn-text-sm bn-text-popover-foreground bn-shadow-md bn-animate-in bn-fade-in-0 bn-zoom-in-95 data-[state=closed]:bn-animate-out data-[state=closed]:bn-fade-out-0 data-[state=closed]:bn-zoom-out-95 data-[side=bottom]:bn-slide-in-from-top-2 data-[side=left]:bn-slide-in-from-right-2 data-[side=right]:bn-slide-in-from-left-2 data-[side=top]:bn-slide-in-from-bottom-2\",\n      className,\n    )}\n    {...props}\n  />\n));\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\n\nexport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };\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        \"bn-flex bn-h-10 bn-w-full bn-rounded-md bn-border bn-border-input bn-bg-background bn-px-3 bn-py-2 bn-text-sm bn-ring-offset-background file:bn-border-0 file:bn-bg-transparent file:bn-text-sm file:bn-font-medium placeholder:bn-text-muted-foreground focus-visible:bn-outline-none focus-visible:bn-ring-2 focus-visible:bn-ring-ring focus-visible:bn-ring-offset-2 disabled:bn-cursor-not-allowed disabled:bn-opacity-50\",\n        \"bn-items-center bn-gap-2 bn-text-foreground\",\n      )}\n    >\n      {icon}\n      <div className=\"bn-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, \"bn-border-none bn-p-0 bn-h-auto\")}\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, \"bn-gap-1\", checked ? \"\" : \"bn-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=\"bn-ml-auto bn-h-4 bn-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, \"bn-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, \"bn-bg-popover bn-p-2 bn-rounded-lg\")}\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={\"bn-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        \"bn-flex bn-flex-col bn-gap-2 bn-items-start bn-justify-center\",\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, \"bn-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        \"bn-flex bn-flex-col bn-gap-2\",\n        variant === \"panel-popover\"\n          ? \"bn-p-0 bn-border-none bn-shadow-none bn-max-w-none bn-w-fit\"\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, \"bn-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\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      className={className}\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        \"bn-z-50 bn-min-w-[8rem] bn-overflow-auto bn-rounded-md bn-border bn-bg-popover bn-p-1 bn-text-popover-foreground bn-shadow-md data-[state=open]:bn-animate-in data-[state=closed]:bn-animate-out data-[state=closed]:bn-fade-out-0 data-[state=open]:bn-fade-in-0 data-[state=closed]:bn-zoom-out-95 data-[state=open]:bn-zoom-in-95 data-[side=bottom]:bn-slide-in-from-top-2 data-[side=left]:bn-slide-in-from-right-2 data-[side=right]:bn-slide-in-from-left-2 data-[side=top]:bn-slide-in-from-bottom-2\",\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        \"bn-relative bn-flex bn-cursor-default bn-select-none bn-items-center bn-rounded-sm bn-px-2 bn-py-1.5 bn-text-sm bn-outline-none bn-transition-colors focus:bn-bg-accent focus:bn-text-accent-foreground data-[disabled]:bn-pointer-events-none data-[disabled]:bn-opacity-50\",\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        \"bn-relative bn-flex bn-cursor-pointer bn-select-none bn-items-center bn-rounded-sm bn-px-2 bn-py-1.5 bn-text-sm bn-outline-none bn-transition-colors focus:bn-bg-accent focus:bn-text-accent-foreground data-[disabled]:bn-pointer-events-none data-[disabled]:bn-opacity-50\",\n        props.item.size === \"small\" ? \"bn-gap-3 bn-py-1\" : \"\",\n        className,\n      )}\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            \"bn-p-3\",\n            props.item.size === \"small\" ? \"bn-p-0\" : \"\",\n            className,\n          )}\n          data-position=\"left\"\n        >\n          {item.icon}\n        </div>\n      )}\n      <div className=\"bn-flex-1\">\n        <div\n          className={cn(\n            \"bn-text-base\",\n            props.item.size === \"small\" ? \"bn-text-sm\" : \"\",\n            className,\n          )}\n        >\n          {item.title}\n        </div>\n        <div\n          className={cn(\n            \"bn-text-xs\",\n            props.item.size === \"small\" ? \"bn-hidden\" : \"\",\n            className,\n          )}\n        >\n          {item.subtext}\n        </div>\n      </div>\n      {item.badge && (\n        <div data-position=\"right\" className=\"bn-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(\"bn-px-2 bn-py-1.5 bn-text-sm bn-font-semibold\", className)}\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, \"bn-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        <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        \"bn-p-0 bn-h-full bn-w-full bn-text-gray-400\",\n        className?.includes(\"bn-extend-button-add-remove-columns\")\n          ? \"bn-ml-1\"\n          : \"bn-mt-1\",\n        className?.includes(\"bn-extend-button-editing\")\n          ? \"bn-bg-accent bn-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, \"bn-p-0 bn-h-fit bn-w-fit bn-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            \"bn-flex bn-gap-1 bn-p-1 bn-bg-popover bn-text-popover-foreground bn-border bn-rounded-lg bn-shadow-md bn-h-fit\",\n            variant === \"action-toolbar\" ? \"bn-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\" ? \"bn-h-6 bn-min-w-6 bn-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\" ? \"bn-h-6 bn-min-w-6 bn-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={\n            \"bn-flex bn-flex-col bn-items-center bn-whitespace-pre-wrap\"\n          }\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={\"bn-flex bn-gap-1 bn-items-center\"}>\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={\"bn-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        \"bn-w-[300px]\",\n        selected ? \"bn-bg-accent bn-text-accent-foreground\" : \"\",\n      )}\n      onFocus={onFocus}\n      onBlur={onBlur}\n      tabIndex={tabIndex}\n      ref={ref}\n    >\n      {headerText && (\n        <div className={\"bn-px-4 bn-pt-4 bn-italic bn-text-sm\"}>\n          {headerText}\n        </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        \"bn-p-4\",\n        className?.includes(\"bn-thread-comments\")\n          ? \"bn-flex bn-flex-col bn-gap-6 bn-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        \"bn-p-0 bn-w-fit bn-text-foreground bn-bg-transparent hover:bn-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\n        className={\n          \"bn-flex bn-flex-row bn-flex-nowrap bn-items-center bn-gap-4\"\n        }\n      >\n        <ShadCNComponents.Skeleton.Skeleton\n          className={\n            \"bn-size-7 bn-rounded-full bn-bg-neutral-400 bn-animate-pulse\"\n          }\n        />\n        <ShadCNComponents.Skeleton.Skeleton\n          className={\n            \"bn-h-3 bn-w-32 bn-rounded-full bn-bg-neutral-400 bn-animate-pulse\"\n          }\n        />\n      </div>\n    );\n  }\n\n  return (\n    <div\n      className={\"bn-flex bn-flex-row bn-flex-nowrap bn-items-center bn-gap-4\"}\n    >\n      <ShadCNComponents.Avatar.Avatar>\n        <ShadCNComponents.Avatar.AvatarImage\n          src={authorInfo.avatarUrl}\n          alt={authorInfo.username}\n          className={\"bn-h-7 bn-rounded-full\"}\n        />\n        <ShadCNComponents.Avatar.AvatarFallback>\n          {authorInfo.username[0]}\n        </ShadCNComponents.Avatar.AvatarFallback>\n      </ShadCNComponents.Avatar.Avatar>\n\n      <div\n        className={\n          \"bn-flex bn-flex-row bn-flex-nowrap bn-items-center bn-gap-2\"\n        }\n      >\n        <span className={\"bn-text-sm bn-font-bold\"}>{authorInfo.username}</span>\n        <span className={\"bn-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, \"bn-relative bn-flex bn-flex-col bn-gap-2\")}\n      onMouseEnter={() => setHovered(true)}\n      onMouseLeave={() => setHovered(false)}\n    >\n      {doShowActions ? (\n        <div\n          className={\"bn-absolute bn-right-0 bn-top-0 bn-z-10\"}\n          ref={focusRef}\n        >\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} 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  return (\n    <BlockNoteView\n      autoFocus={autoFocus}\n      className={cn(className, \"\")}\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        \"bn-flex bn-items-center bn-gap-1 bn-rounded-full bn-h-7 bn-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={\"bn-flex bn-flex-col bn-items-center bn-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(\n          className,\n          \"bn-flex bn-flex-row bn-flex-wrap bn-gap-1 bn-w-full\",\n        )}\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\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      className={className}\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 \"./style.css\";\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 {\n  BlockNoteViewProps,\n  BlockNoteViewRaw,\n  ComponentsContext,\n} 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\nexport const BlockNoteView = <\n  BSchema extends BlockSchema,\n  ISchema extends InlineContentSchema,\n  SSchema extends StyleSchema,\n>(\n  props: BlockNoteViewProps<BSchema, ISchema, SSchema> & {\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":["twMerge","extendTailwindMerge","cn","inputs","clsx","Avatar","React","className","props","ref","jsx","AvatarPrimitive","AvatarImage","AvatarFallback","badgeVariants","cva","Badge","variant","buttonVariants","Button","size","asChild","Comp","Slot","Card","CardHeader","CardTitle","CardDescription","CardContent","CardFooter","DropdownMenu","DropdownMenuPrimitive","DropdownMenuTrigger","DropdownMenuSub","DropdownMenuSubTrigger","inset","children","jsxs","ChevronRight","DropdownMenuSubContent","DropdownMenuContent","sideOffset","DropdownMenuItem","DropdownMenuCheckboxItem","checked","Check","DropdownMenuRadioItem","Circle","DropdownMenuLabel","DropdownMenuSeparator","labelVariants","Label","LabelPrimitive","Form","FormProvider","FormFieldContext","useFormField","fieldContext","itemContext","FormItemContext","getFieldState","formState","useFormContext","fieldState","id","FormItem","FormLabel","error","formItemId","FormControl","formDescriptionId","formMessageId","FormDescription","FormMessage","body","Input","type","Popover","PopoverPrimitive","PopoverTrigger","PopoverContent","align","Select","SelectPrimitive","SelectValue","SelectTrigger","ChevronDown","SelectScrollUpButton","ChevronUp","SelectScrollDownButton","SelectContent","position","SelectLabel","SelectItem","SelectSeparator","Skeleton","Tabs","TabsPrimitive","TabsList","TabsTrigger","TabsContent","toggleVariants","Toggle","TogglePrimitive","TooltipProvider","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","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","MenuDivider","MenuLabel","MenuButton","onDragEnd","onDragStart","draggable","Panel","tabs","defaultOpenTab","openTab","setOpenTab","loading","tab","PanelTab","PanelTextInput","opened","SideMenu","SideMenuButton","GridSuggestionMenu","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","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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"}