@blocknote/shadcn 0.44.0 → 0.44.2

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