@blocknote/shadcn 0.36.1 → 0.37.0

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.
Files changed (66) hide show
  1. package/dist/blocknote-shadcn.cjs +1 -1
  2. package/dist/blocknote-shadcn.cjs.map +1 -1
  3. package/dist/blocknote-shadcn.js +1237 -1187
  4. package/dist/blocknote-shadcn.js.map +1 -1
  5. package/dist/style.css +1 -1
  6. package/dist/webpack-stats.json +1 -1
  7. package/package.json +17 -19
  8. package/src/BlockNoteView.tsx +2 -0
  9. package/src/badge/Badge.tsx +3 -6
  10. package/src/comments/Card.tsx +7 -9
  11. package/src/comments/Comment.tsx +10 -27
  12. package/src/components/ui/avatar.tsx +44 -39
  13. package/src/components/ui/badge.tsx +22 -12
  14. package/src/components/ui/button.tsx +33 -32
  15. package/src/components/ui/card.tsx +78 -72
  16. package/src/components/ui/dropdown-menu.tsx +230 -176
  17. package/src/components/ui/form.tsx +40 -51
  18. package/src/components/ui/input.tsx +16 -20
  19. package/src/components/ui/label.tsx +19 -19
  20. package/src/components/ui/popover.tsx +40 -23
  21. package/src/components/ui/select.tsx +153 -133
  22. package/src/components/ui/skeleton.tsx +3 -5
  23. package/src/components/ui/tabs.tsx +59 -46
  24. package/src/components/ui/toggle.tsx +23 -21
  25. package/src/components/ui/tooltip.tsx +50 -21
  26. package/src/components.ts +0 -1
  27. package/src/form/TextInput.tsx +4 -4
  28. package/src/index.tsx +1 -2
  29. package/src/lib/utils.ts +2 -8
  30. package/src/menu/Button.tsx +1 -1
  31. package/src/menu/Menu.tsx +2 -2
  32. package/src/panel/Panel.tsx +2 -2
  33. package/src/panel/PanelTab.tsx +1 -1
  34. package/src/panel/PanelTextInput.tsx +1 -1
  35. package/src/popover/popover.tsx +2 -2
  36. package/src/sideMenu/SideMenuButton.tsx +1 -1
  37. package/src/style.css +6 -127
  38. package/src/suggestionMenu/SuggestionMenu.tsx +1 -1
  39. package/src/suggestionMenu/SuggestionMenuEmptyItem.tsx +3 -1
  40. package/src/suggestionMenu/SuggestionMenuItem.tsx +13 -10
  41. package/src/suggestionMenu/SuggestionMenuLabel.tsx +4 -1
  42. package/src/suggestionMenu/SuggestionMenuLoader.tsx +3 -2
  43. package/src/suggestionMenu/gridSuggestionMenu/GridSuggestionMenu.tsx +8 -1
  44. package/src/suggestionMenu/gridSuggestionMenu/GridSuggestionMenuItem.tsx +10 -1
  45. package/src/tableHandle/ExtendButton.tsx +6 -6
  46. package/src/tableHandle/TableHandle.tsx +1 -1
  47. package/src/toolbar/Toolbar.tsx +7 -9
  48. package/types/src/BlockNoteView.d.ts +1 -0
  49. package/types/src/ShadCNComponentsContext.d.ts +116 -132
  50. package/types/src/components/ui/avatar.d.ts +3 -3
  51. package/types/src/components/ui/badge.d.ts +5 -5
  52. package/types/src/components/ui/button.d.ts +4 -5
  53. package/types/src/components/ui/card.d.ts +8 -7
  54. package/types/src/components/ui/dropdown-menu.d.ts +21 -23
  55. package/types/src/components/ui/form.d.ts +10 -9
  56. package/types/src/components/ui/input.d.ts +1 -3
  57. package/types/src/components/ui/label.d.ts +2 -3
  58. package/types/src/components/ui/popover.d.ts +6 -5
  59. package/types/src/components/ui/select.d.ts +13 -11
  60. package/types/src/components/ui/skeleton.d.ts +1 -1
  61. package/types/src/components/ui/tabs.d.ts +6 -6
  62. package/types/src/components/ui/toggle.d.ts +3 -6
  63. package/types/src/components/ui/tooltip.d.ts +6 -6
  64. package/types/src/components.d.ts +0 -1
  65. package/types/src/index.d.ts +1 -1
  66. package/src/tailwindStyles.css +0 -421
@@ -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 { type ClassValue, clsx } from \"clsx\";\nimport { extendTailwindMerge } from \"tailwind-merge\";\n\n// Ensures that `bn-` prefixed Tailwind classes are recognized as Tailwind\n// classes, so they can be merged correctly.\nconst twMerge = extendTailwindMerge({\n prefix: \"bn-\",\n});\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import * as React from \"react\";\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst Avatar = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Root\n ref={ref}\n className={cn(\n \"relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full\",\n className,\n )}\n {...props}\n />\n));\nAvatar.displayName = AvatarPrimitive.Root.displayName;\n\nconst AvatarImage = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Image>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Image\n ref={ref}\n className={cn(\"aspect-square h-full w-full\", className)}\n {...props}\n />\n));\nAvatarImage.displayName = AvatarPrimitive.Image.displayName;\n\nconst AvatarFallback = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Fallback>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Fallback\n ref={ref}\n className={cn(\n \"bg-muted flex h-full w-full items-center justify-center rounded-full\",\n className,\n )}\n {...props}\n />\n));\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;\n\nexport { Avatar, AvatarImage, AvatarFallback };\n","import { cva, type VariantProps } from \"class-variance-authority\";\nimport * as React from \"react\";\n\nimport { cn } from \"../../lib/utils.js\";\n\nconst badgeVariants = cva(\n \"bn-inline-flex bn-items-center bn-rounded-full bn-border bn-px-2.5 bn-py-0.5 bn-text-xs bn-font-semibold bn-transition-colors focus:bn-outline-none focus:bn-ring-2 focus:bn-ring-ring focus:bn-ring-offset-2\",\n {\n variants: {\n variant: {\n default:\n \"bn-border-transparent bn-bg-primary bn-text-primary-foreground hover:bn-bg-primary/80\",\n secondary:\n \"bn-border-transparent bn-bg-secondary bn-text-secondary-foreground hover:bn-bg-secondary/80\",\n destructive:\n \"bn-border-transparent bn-bg-destructive bn-text-destructive-foreground hover:bn-bg-destructive/80\",\n outline: \"bn-text-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return (\n <div className={cn(badgeVariants({ variant }), className)} {...props} />\n );\n}\n\nexport { Badge, badgeVariants };\n","import { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport * as React from \"react\";\n\nimport { cn } from \"../../lib/utils.js\";\n\nconst buttonVariants = cva(\n \"bn-inline-flex bn-items-center bn-justify-center bn-whitespace-nowrap bn-rounded-md bn-text-sm bn-font-medium bn-ring-offset-background bn-transition-colors focus-visible:bn-outline-none focus-visible:bn-ring-2 focus-visible:bn-ring-ring focus-visible:bn-ring-offset-2 disabled:bn-pointer-events-none disabled:bn-opacity-50\",\n {\n variants: {\n variant: {\n default:\n \"bn-bg-primary bn-text-primary-foreground hover:bn-bg-primary/90\",\n destructive:\n \"bn-bg-destructive bn-text-destructive-foreground hover:bn-bg-destructive/90\",\n outline:\n \"bn-border bn-border-input bn-bg-background hover:bn-bg-accent hover:bn-text-accent-foreground\",\n secondary:\n \"bn-bg-secondary bn-text-secondary-foreground hover:bn-bg-secondary/80\",\n ghost: \"hover:bn-bg-accent hover:bn-text-accent-foreground\",\n link: \"bn-text-primary bn-underline-offset-4 hover:bn-underline\",\n },\n size: {\n default: \"bn-h-10 bn-px-4 bn-py-2\",\n sm: \"bn-h-9 bn-rounded-md bn-px-3\",\n lg: \"bn-h-11 bn-rounded-md bn-px-8\",\n icon: \"bn-h-10 bn-w-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\";\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, className }))}\n ref={ref}\n type=\"button\"\n {...props}\n />\n );\n },\n);\nButton.displayName = \"Button\";\n\nexport { Button, buttonVariants };\n","import * as React from \"react\";\n\nimport { cn } from \"../../lib/utils.js\";\n\nconst Card = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"bn-rounded-lg bn-border bn-bg-card bn-text-card-foreground bn-shadow-sm\",\n className,\n )}\n {...props}\n />\n));\nCard.displayName = \"Card\";\n\nconst CardHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"bn-flex bn-flex-col bn-space-y-1.5 bn-p-6\", className)}\n {...props}\n />\n));\nCardHeader.displayName = \"CardHeader\";\n\nconst CardTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cn(\n \"bn-text-2xl bn-font-semibold bn-leading-none bn-tracking-tight\",\n className,\n )}\n {...props}\n />\n));\nCardTitle.displayName = \"CardTitle\";\n\nconst CardDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn(\"bn-text-sm bn-text-muted-foreground\", className)}\n {...props}\n />\n));\nCardDescription.displayName = \"CardDescription\";\n\nconst CardContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"bn-p-6 bn-pt-0\", className)} {...props} />\n));\nCardContent.displayName = \"CardContent\";\n\nconst CardFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"bn-flex bn-items-center bn-p-6 bn-pt-0\", className)}\n {...props}\n />\n));\nCardFooter.displayName = \"CardFooter\";\n\nexport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n};\n","import * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\nimport { Check, ChevronRight, Circle } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { cn } from \"../../lib/utils.js\";\n\nconst DropdownMenu = DropdownMenuPrimitive.Root;\n\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;\n\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group;\n\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal;\n\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub;\n\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;\n\nconst DropdownMenuSubTrigger = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n }\n>(({ className, inset, children, ...props }, ref) => (\n <DropdownMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n \"bn-flex bn-cursor-default bn-select-none bn-items-center bn-rounded-sm bn-px-2 bn-py-1.5 bn-text-sm bn-outline-none focus:bn-bg-accent data-[state=open]:bn-bg-accent\",\n inset && \"bn-pl-8\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"bn-ml-auto bn-h-4 bn-w-4\" />\n </DropdownMenuPrimitive.SubTrigger>\n));\nDropdownMenuSubTrigger.displayName =\n DropdownMenuPrimitive.SubTrigger.displayName;\n\nconst DropdownMenuSubContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.SubContent\n ref={ref}\n className={cn(\n \"bn-z-50 bn-min-w-[8rem] bn-overflow-hidden bn-rounded-md bn-border bn-bg-popover bn-p-1 bn-text-popover-foreground bn-shadow-lg data-[state=open]:bn-animate-in data-[state=closed]:bn-animate-out data-[state=closed]:bn-fade-out-0 data-[state=open]:bn-fade-in-0 data-[state=closed]:bn-zoom-out-95 data-[state=open]:bn-zoom-in-95 data-[side=bottom]:bn-slide-in-from-top-2 data-[side=left]:bn-slide-in-from-right-2 data-[side=right]:bn-slide-in-from-left-2 data-[side=top]:bn-slide-in-from-bottom-2\",\n className,\n )}\n {...props}\n />\n));\nDropdownMenuSubContent.displayName =\n DropdownMenuPrimitive.SubContent.displayName;\n\nconst DropdownMenuContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n // <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"bn-z-50 bn-min-w-[8rem] bn-overflow-hidden bn-rounded-md bn-border bn-bg-popover bn-p-1 bn-text-popover-foreground bn-shadow-md data-[state=open]:bn-animate-in data-[state=closed]:bn-animate-out data-[state=closed]:bn-fade-out-0 data-[state=open]:bn-fade-in-0 data-[state=closed]:bn-zoom-out-95 data-[state=open]:bn-zoom-in-95 data-[side=bottom]:bn-slide-in-from-top-2 data-[side=left]:bn-slide-in-from-right-2 data-[side=right]:bn-slide-in-from-left-2 data-[side=top]:bn-slide-in-from-bottom-2\",\n className,\n )}\n {...props}\n />\n // </DropdownMenuPrimitive.Portal>\n));\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;\n\nconst DropdownMenuItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Item\n ref={ref}\n className={cn(\n \"bn-relative bn-flex bn-cursor-default bn-select-none bn-items-center bn-rounded-sm bn-px-2 bn-py-1.5 bn-text-sm bn-outline-none bn-transition-colors focus:bn-bg-accent focus:bn-text-accent-foreground data-[disabled]:bn-pointer-events-none data-[disabled]:bn-opacity-50\",\n inset && \"bn-pl-8\",\n className,\n )}\n {...props}\n />\n));\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;\n\nconst DropdownMenuCheckboxItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <DropdownMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n \"bn-relative bn-flex bn-cursor-default bn-select-none bn-items-center bn-rounded-sm bn-py-1.5 bn-pl-8 bn-pr-2 bn-text-sm bn-outline-none bn-transition-colors focus:bn-bg-accent focus:bn-text-accent-foreground data-[disabled]:bn-pointer-events-none data-[disabled]:bn-opacity-50\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"bn-absolute bn-left-2 bn-flex bn-h-3.5 bn-w-3.5 bn-items-center bn-justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Check className=\"bn-h-4 bn-w-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n));\nDropdownMenuCheckboxItem.displayName =\n DropdownMenuPrimitive.CheckboxItem.displayName;\n\nconst DropdownMenuRadioItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <DropdownMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n \"bn-relative bn-flex bn-cursor-default bn-select-none bn-items-center bn-rounded-sm bn-py-1.5 bn-pl-8 bn-pr-2 bn-text-sm bn-outline-none bn-transition-colors focus:bn-bg-accent focus:bn-text-accent-foreground data-[disabled]:bn-pointer-events-none data-[disabled]:bn-opacity-50\",\n className,\n )}\n {...props}\n >\n <span className=\"bn-absolute bn-left-2 bn-flex bn-h-3.5 bn-w-3.5 bn-items-center bn-justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Circle className=\"bn-h-2 bn-w-2 bn-fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n));\nDropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;\n\nconst DropdownMenuLabel = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Label\n ref={ref}\n className={cn(\n \"bn-px-2 bn-py-1.5 bn-text-sm bn-font-semibold\",\n inset && \"bn-pl-8\",\n className,\n )}\n {...props}\n />\n));\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;\n\nconst DropdownMenuSeparator = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.Separator\n ref={ref}\n className={cn(\"bn--mx-1 bn-my-1 bn-h-px bn-bg-muted\", className)}\n {...props}\n />\n));\nDropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;\n\nconst DropdownMenuShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\n \"bn-ml-auto bn-text-xs bn-tracking-widest bn-opacity-60\",\n className,\n )}\n {...props}\n />\n );\n};\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\";\n\nexport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuPortal,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n};\n","import * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport * as React from \"react\";\n\nimport { cn } from \"../../lib/utils.js\";\n\nconst labelVariants = cva(\n \"bn-text-sm bn-font-medium bn-leading-none peer-disabled:bn-cursor-not-allowed peer-disabled:bn-opacity-70\",\n);\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> &\n VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root\n ref={ref}\n className={cn(labelVariants(), className)}\n {...props}\n />\n));\nLabel.displayName = LabelPrimitive.Root.displayName;\n\nexport { Label };\n","import * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport * as React from \"react\";\nimport {\n Controller,\n ControllerProps,\n FieldPath,\n FieldValues,\n FormProvider,\n useFormContext,\n} from \"react-hook-form\";\n\nimport { cn } from \"../../lib/utils.js\";\nimport { Label } from \"./label.js\";\n\nconst Form = FormProvider;\n\ntype FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n> = {\n name: TName;\n};\n\nconst FormFieldContext = React.createContext<FormFieldContextValue>(\n {} as FormFieldContextValue,\n);\n\nconst FormField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n return (\n <FormFieldContext.Provider value={{ name: props.name }}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n );\n};\n\nconst useFormField = () => {\n const fieldContext = React.useContext(FormFieldContext);\n const itemContext = React.useContext(FormItemContext);\n const { getFieldState, formState } = useFormContext();\n\n const fieldState = getFieldState(fieldContext.name, formState);\n\n if (!fieldContext) {\n throw new Error(\"useFormField should be used within <FormField>\");\n }\n\n const { id } = itemContext;\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n };\n};\n\ntype FormItemContextValue = {\n id: string;\n};\n\nconst FormItemContext = React.createContext<FormItemContextValue>(\n {} as FormItemContextValue,\n);\n\nconst FormItem = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n const id = React.useId();\n\n return (\n <FormItemContext.Provider value={{ id }}>\n <div ref={ref} className={cn(\"bn-space-y-2\", className)} {...props} />\n </FormItemContext.Provider>\n );\n});\nFormItem.displayName = \"FormItem\";\n\nconst FormLabel = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>\n>(({ className, ...props }, ref) => {\n const { error, formItemId } = useFormField();\n\n return (\n <Label\n ref={ref}\n className={cn(error && \"bn-text-destructive\", className)}\n htmlFor={formItemId}\n {...props}\n />\n );\n});\nFormLabel.displayName = \"FormLabel\";\n\nconst FormControl = React.forwardRef<\n React.ElementRef<typeof Slot>,\n React.ComponentPropsWithoutRef<typeof Slot>\n>(({ ...props }, ref) => {\n const { error, formItemId, formDescriptionId, formMessageId } =\n useFormField();\n\n return (\n <Slot\n ref={ref}\n id={formItemId}\n aria-describedby={\n !error\n ? `${formDescriptionId}`\n : `${formDescriptionId} ${formMessageId}`\n }\n aria-invalid={!!error}\n {...props}\n />\n );\n});\nFormControl.displayName = \"FormControl\";\n\nconst FormDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => {\n const { formDescriptionId } = useFormField();\n\n return (\n <p\n ref={ref}\n id={formDescriptionId}\n className={cn(\"bn-text-sm bn-text-muted-foreground\", className)}\n {...props}\n />\n );\n});\nFormDescription.displayName = \"FormDescription\";\n\nconst FormMessage = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, children, ...props }, ref) => {\n const { error, formMessageId } = useFormField();\n const body = error ? String(error?.message) : children;\n\n if (!body) {\n return null;\n }\n\n return (\n <p\n ref={ref}\n id={formMessageId}\n className={cn(\"bn-text-sm bn-font-medium bn-text-destructive\", className)}\n {...props}\n >\n {body}\n </p>\n );\n});\nFormMessage.displayName = \"FormMessage\";\n\nexport {\n Form,\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n useFormField,\n};\n","import * as React from \"react\";\n\nimport { cn } from \"../../lib/utils.js\";\n\nexport interface InputProps\n extends React.InputHTMLAttributes<HTMLInputElement> {}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n \"bn-flex bn-h-10 bn-w-full bn-rounded-md bn-border bn-border-input bn-bg-background bn-px-3 bn-py-2 bn-text-sm bn-ring-offset-background file:bn-border-0 file:bn-bg-transparent file:bn-text-sm file:bn-font-medium placeholder:bn-text-muted-foreground focus-visible:bn-outline-none focus-visible:bn-ring-2 focus-visible:bn-ring-ring focus-visible:bn-ring-offset-2 disabled:bn-cursor-not-allowed disabled:bn-opacity-50\",\n className,\n )}\n ref={ref}\n {...props}\n />\n );\n },\n);\nInput.displayName = \"Input\";\n\nexport { Input };\n","import * as PopoverPrimitive from \"@radix-ui/react-popover\";\nimport * as React from \"react\";\n\nimport { cn } from \"../../lib/utils.js\";\n\nconst Popover = PopoverPrimitive.Root;\n\nconst PopoverTrigger = PopoverPrimitive.Trigger;\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n>(({ className, align = \"center\", sideOffset = 4, ...props }, ref) => (\n // <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"bn-z-50 bn-w-72 bn-rounded-md bn-border bn-bg-popover bn-p-4 bn-text-popover-foreground bn-shadow-md bn-outline-none data-[state=open]:bn-animate-in data-[state=closed]:bn-animate-out data-[state=closed]:bn-fade-out-0 data-[state=open]:bn-fade-in-0 data-[state=closed]:bn-zoom-out-95 data-[state=open]:bn-zoom-in-95 data-[side=bottom]:bn-slide-in-from-top-2 data-[side=left]:bn-slide-in-from-right-2 data-[side=right]:bn-slide-in-from-left-2 data-[side=top]:bn-slide-in-from-bottom-2\",\n className,\n )}\n {...props}\n />\n // </PopoverPrimitive.Portal>\n));\nPopoverContent.displayName = PopoverPrimitive.Content.displayName;\n\nexport { Popover, PopoverContent, PopoverTrigger };\n","import * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { Check, ChevronDown, ChevronUp } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { cn } from \"../../lib/utils.js\";\n\nconst Select = SelectPrimitive.Root;\n\nconst SelectGroup = SelectPrimitive.Group;\n\nconst SelectValue = SelectPrimitive.Value;\n\nconst SelectTrigger = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n \"bn-flex bn-h-10 bn-w-full bn-items-center bn-justify-between bn-rounded-md bn-border bn-border-input bn-bg-background bn-px-3 bn-py-2 bn-text-sm bn-ring-offset-background placeholder:bn-text-muted-foreground focus:bn-outline-none focus:bn-ring-2 focus:bn-ring-ring focus:bn-ring-offset-2 disabled:bn-cursor-not-allowed disabled:bn-opacity-50 [&>span]:bn-line-clamp-1\",\n className,\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"bn-h-4 bn-w-4 bn-opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n));\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName;\n\nconst SelectScrollUpButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollUpButton\n ref={ref}\n className={cn(\n \"bn-flex bn-cursor-default bn-items-center bn-justify-center bn-py-1\",\n className,\n )}\n {...props}\n >\n <ChevronUp className=\"bn-h-4 bn-w-4\" />\n </SelectPrimitive.ScrollUpButton>\n));\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;\n\nconst SelectScrollDownButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollDownButton\n ref={ref}\n className={cn(\n \"bn-flex bn-cursor-default bn-items-center bn-justify-center bn-py-1\",\n className,\n )}\n {...props}\n >\n <ChevronDown className=\"bn-h-4 bn-w-4\" />\n </SelectPrimitive.ScrollDownButton>\n));\nSelectScrollDownButton.displayName =\n SelectPrimitive.ScrollDownButton.displayName;\n\nconst SelectContent = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = \"popper\", ...props }, ref) => (\n // <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n className={cn(\n \"bn-relative bn-z-50 bn-max-h-96 bn-min-w-[8rem] bn-overflow-hidden bn-rounded-md bn-border bn-bg-popover bn-text-popover-foreground bn-shadow-md data-[state=open]:bn-animate-in data-[state=closed]:bn-animate-out data-[state=closed]:bn-fade-out-0 data-[state=open]:bn-fade-in-0 data-[state=closed]:bn-zoom-out-95 data-[state=open]:bn-zoom-in-95 data-[side=bottom]:bn-slide-in-from-top-2 data-[side=left]:bn-slide-in-from-right-2 data-[side=right]:bn-slide-in-from-left-2 data-[side=top]:bn-slide-in-from-bottom-2\",\n position === \"popper\" &&\n \"data-[side=bottom]:bn-translate-y-1 data-[side=left]:bn--translate-x-1 data-[side=right]:bn-translate-x-1 data-[side=top]:bn--translate-y-1\",\n className,\n )}\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n \"bn-p-1\",\n position === \"popper\" &&\n \"bn-h-[var(--radix-select-trigger-height)] bn-w-full bn-min-w-[var(--radix-select-trigger-width)]\",\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n // </SelectPrimitive.Portal>\n));\nSelectContent.displayName = SelectPrimitive.Content.displayName;\n\nconst SelectLabel = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Label\n ref={ref}\n className={cn(\n \"bn-py-1.5 bn-pl-8 bn-pr-2 bn-text-sm bn-font-semibold\",\n className,\n )}\n {...props}\n />\n));\nSelectLabel.displayName = SelectPrimitive.Label.displayName;\n\nconst SelectItem = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(\n \"bn-relative bn-flex bn-w-full bn-cursor-default bn-select-none bn-items-center bn-rounded-sm bn-py-1.5 bn-pl-8 bn-pr-2 bn-text-sm bn-outline-none focus:bn-bg-accent focus:bn-text-accent-foreground data-[disabled]:bn-pointer-events-none data-[disabled]:bn-opacity-50\",\n className,\n )}\n {...props}\n >\n <span className=\"bn-absolute bn-left-2 bn-flex bn-h-3.5 bn-w-3.5 bn-items-center bn-justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check className=\"bn-h-4 bn-w-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n));\nSelectItem.displayName = SelectPrimitive.Item.displayName;\n\nconst SelectSeparator = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Separator\n ref={ref}\n className={cn(\"bn--mx-1 bn-my-1 bn-h-px bn-bg-muted\", className)}\n {...props}\n />\n));\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName;\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n};\n","import { cn } from \"../../lib/utils\";\n\nfunction Skeleton({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\"bg-primary/10 animate-pulse rounded-md\", className)}\n {...props}\n />\n );\n}\n\nexport { Skeleton };\n","import * as TabsPrimitive from \"@radix-ui/react-tabs\";\nimport * as React from \"react\";\n\nimport { cn } from \"../../lib/utils.js\";\n\nconst Tabs = TabsPrimitive.Root;\n\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n \"bn-inline-flex bn-h-10 bn-items-center bn-justify-center bn-rounded-md bn-bg-muted bn-p-1 bn-text-muted-foreground\",\n className,\n )}\n {...props}\n />\n));\nTabsList.displayName = TabsPrimitive.List.displayName;\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n \"bn-inline-flex bn-items-center bn-justify-center bn-whitespace-nowrap bn-rounded-sm bn-px-3 bn-py-1.5 bn-text-sm bn-font-medium bn-ring-offset-background bn-transition-all focus-visible:bn-outline-none focus-visible:bn-ring-2 focus-visible:bn-ring-ring focus-visible:bn-ring-offset-2 disabled:bn-pointer-events-none disabled:bn-opacity-50 data-[state=active]:bn-bg-background data-[state=active]:bn-text-foreground data-[state=active]:bn-shadow-sm\",\n className,\n )}\n {...props}\n />\n));\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\n\nconst TabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n \"bn-mt-2 bn-ring-offset-background focus-visible:bn-outline-none focus-visible:bn-ring-2 focus-visible:bn-ring-ring focus-visible:bn-ring-offset-2\",\n className,\n )}\n {...props}\n />\n));\nTabsContent.displayName = TabsPrimitive.Content.displayName;\n\nexport { Tabs, TabsContent, TabsList, TabsTrigger };\n","import * as TogglePrimitive from \"@radix-ui/react-toggle\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport * as React from \"react\";\n\nimport { cn } from \"../../lib/utils.js\";\n\nconst toggleVariants = cva(\n \"bn-inline-flex bn-items-center bn-justify-center bn-rounded-md bn-text-sm bn-font-medium bn-ring-offset-background bn-transition-colors hover:bn-bg-muted hover:bn-text-muted-foreground focus-visible:bn-outline-none focus-visible:bn-ring-2 focus-visible:bn-ring-ring focus-visible:bn-ring-offset-2 disabled:bn-pointer-events-none disabled:bn-opacity-50 data-[state=on]:bn-bg-accent data-[state=on]:bn-text-accent-foreground\",\n {\n variants: {\n variant: {\n default: \"bn-bg-transparent\",\n outline:\n \"bn-border bn-border-input bn-bg-transparent hover:bn-bg-accent hover:bn-text-accent-foreground\",\n },\n size: {\n default: \"bn-h-10 bn-px-3\",\n sm: \"bn-h-9 bn-px-2.5\",\n lg: \"bn-h-11 bn-px-5\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nconst Toggle = React.forwardRef<\n React.ElementRef<typeof TogglePrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof TogglePrimitive.Root> &\n VariantProps<typeof toggleVariants>\n>(({ className, variant, size, ...props }, ref) => (\n <TogglePrimitive.Root\n ref={ref}\n className={cn(toggleVariants({ variant, size, className }))}\n {...props}\n />\n));\n\nToggle.displayName = TogglePrimitive.Root.displayName;\n\nexport { Toggle, toggleVariants };\n","import * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\nimport * as React from \"react\";\n\nimport { cn } from \"../../lib/utils.js\";\n\nconst TooltipProvider = TooltipPrimitive.Provider;\n\nconst Tooltip = TooltipPrimitive.Root;\n\nconst TooltipTrigger = TooltipPrimitive.Trigger;\n\nconst TooltipContent = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"bn-z-50 bn-overflow-hidden bn-rounded-md bn-border bn-bg-popover bn-px-3 bn-py-1.5 bn-text-sm bn-text-popover-foreground bn-shadow-md bn-animate-in bn-fade-in-0 bn-zoom-in-95 data-[state=closed]:bn-animate-out data-[state=closed]:bn-fade-out-0 data-[state=closed]:bn-zoom-out-95 data-[side=bottom]:bn-slide-in-from-top-2 data-[side=left]:bn-slide-in-from-right-2 data-[side=right]:bn-slide-in-from-left-2 data-[side=top]:bn-slide-in-from-bottom-2\",\n className,\n )}\n {...props}\n />\n));\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\n\nexport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };\n","import {\n Avatar as ShadCNAvatar,\n AvatarFallback as ShadCNAvatarFallback,\n AvatarImage as ShadCNAvatarImage,\n} from \"./components/ui/avatar.js\";\nimport { Badge as ShadCNBadge } from \"./components/ui/badge.js\";\nimport { Button as ShadCNButton } from \"./components/ui/button.js\";\nimport {\n Card as ShadCNCard,\n CardContent as ShadCNCardContent,\n} from \"./components/ui/card.js\";\nimport {\n DropdownMenu as ShadCNDropdownMenu,\n DropdownMenuCheckboxItem as ShadCNDropdownMenuCheckboxItem,\n DropdownMenuContent as ShadCNDropdownMenuContent,\n DropdownMenuItem as ShadCNDropdownMenuItem,\n DropdownMenuLabel as ShadCNDropdownMenuLabel,\n DropdownMenuSeparator as ShadCNDropdownMenuSeparator,\n DropdownMenuSub as ShadCNDropdownMenuSub,\n DropdownMenuSubContent as ShadCNDropdownMenuSubContent,\n DropdownMenuSubTrigger as ShadCNDropdownMenuSubTrigger,\n DropdownMenuTrigger as ShadCNDropdownMenuTrigger,\n} from \"./components/ui/dropdown-menu.js\";\nimport { Form as ShadCNForm } from \"./components/ui/form.js\";\nimport { Input as ShadCNInput } from \"./components/ui/input.js\";\nimport { Label as ShadCNLabel } from \"./components/ui/label.js\";\nimport {\n Popover as ShadCNPopover,\n PopoverContent as ShadCNPopoverContent,\n PopoverTrigger as ShadCNPopoverTrigger,\n} from \"./components/ui/popover.js\";\nimport {\n Select as ShadCNSelect,\n SelectContent as ShadCNSelectContent,\n SelectItem as ShadCNSelectItem,\n SelectTrigger as ShadCNSelectTrigger,\n SelectValue as ShadCNSelectValue,\n} from \"./components/ui/select.js\";\nimport { Skeleton as ShadCNSkeleton } from \"./components/ui/skeleton.js\";\nimport {\n Tabs as ShadCNTabs,\n TabsContent as ShadCNTabsContent,\n TabsList as ShadCNTabsList,\n TabsTrigger as ShadCNTabsTrigger,\n} from \"./components/ui/tabs.js\";\nimport { Toggle as ShadCNToggle } from \"./components/ui/toggle.js\";\nimport {\n Tooltip as ShadCNTooltip,\n TooltipContent as ShadCNTooltipContent,\n TooltipProvider as ShadCNTooltipProvider,\n TooltipTrigger as ShadCNTooltipTrigger,\n} from \"./components/ui/tooltip.js\";\n\nimport { createContext, useContext } from \"react\";\n\nexport const ShadCNDefaultComponents = {\n Avatar: {\n Avatar: ShadCNAvatar,\n AvatarFallback: ShadCNAvatarFallback,\n AvatarImage: ShadCNAvatarImage,\n },\n Badge: {\n Badge: ShadCNBadge,\n },\n Button: {\n Button: ShadCNButton,\n },\n Card: {\n Card: ShadCNCard,\n CardContent: ShadCNCardContent,\n },\n DropdownMenu: {\n DropdownMenu: ShadCNDropdownMenu,\n DropdownMenuCheckboxItem: ShadCNDropdownMenuCheckboxItem,\n DropdownMenuContent: ShadCNDropdownMenuContent,\n DropdownMenuItem: ShadCNDropdownMenuItem,\n DropdownMenuLabel: ShadCNDropdownMenuLabel,\n DropdownMenuSeparator: ShadCNDropdownMenuSeparator,\n DropdownMenuSub: ShadCNDropdownMenuSub,\n DropdownMenuSubContent: ShadCNDropdownMenuSubContent,\n DropdownMenuSubTrigger: ShadCNDropdownMenuSubTrigger,\n DropdownMenuTrigger: ShadCNDropdownMenuTrigger,\n },\n Form: {\n Form: ShadCNForm,\n },\n Input: {\n Input: ShadCNInput,\n },\n Label: {\n Label: ShadCNLabel,\n },\n Popover: {\n Popover: ShadCNPopover,\n PopoverContent: ShadCNPopoverContent,\n PopoverTrigger: ShadCNPopoverTrigger,\n },\n Select: {\n Select: ShadCNSelect,\n SelectContent: ShadCNSelectContent,\n SelectItem: ShadCNSelectItem,\n SelectTrigger: ShadCNSelectTrigger,\n SelectValue: ShadCNSelectValue,\n },\n Skeleton: {\n Skeleton: ShadCNSkeleton,\n },\n Tabs: {\n Tabs: ShadCNTabs,\n TabsContent: ShadCNTabsContent,\n TabsList: ShadCNTabsList,\n TabsTrigger: ShadCNTabsTrigger,\n },\n Toggle: {\n Toggle: ShadCNToggle,\n },\n Tooltip: {\n Tooltip: ShadCNTooltip,\n TooltipContent: ShadCNTooltipContent,\n TooltipProvider: ShadCNTooltipProvider,\n TooltipTrigger: ShadCNTooltipTrigger,\n },\n};\n\nexport type ShadCNComponents = typeof ShadCNDefaultComponents;\n\nexport const ShadCNComponentsContext = createContext<\n ShadCNComponents | undefined\n>(undefined);\n\nexport function useShadCNComponentsContext() {\n return useContext(ShadCNComponentsContext);\n}\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { useForm } from \"react-hook-form\";\n\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\n\nexport const Form = (props: ComponentProps[\"Generic\"][\"Form\"][\"Root\"]) => {\n const { children, ...rest } = props;\n\n assertEmpty(rest);\n\n const ShadCNComponents = useShadCNComponentsContext()!;\n\n const form = useForm();\n\n return (\n <ShadCNComponents.Form.Form {...form}>\n {children}\n </ShadCNComponents.Form.Form>\n );\n};\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\nimport { cn } from \"../lib/utils.js\";\n\nexport const TextInput = forwardRef<\n HTMLInputElement,\n ComponentProps[\"Generic\"][\"Form\"][\"TextInput\"]\n>((props, ref) => {\n const {\n className,\n name,\n label,\n variant,\n icon, // TODO: implement\n value,\n autoFocus,\n placeholder,\n disabled,\n onKeyDown,\n onChange,\n onSubmit,\n autoComplete,\n rightSection, // TODO: add rightSection\n ...rest\n } = props;\n\n assertEmpty(rest);\n\n const ShadCNComponents = useShadCNComponentsContext()!;\n\n return (\n <div\n className={cn(\n className,\n \"bn-flex bn-h-10 bn-w-full bn-rounded-md bn-border bn-border-input bn-bg-background bn-px-3 bn-py-2 bn-text-sm bn-ring-offset-background file:bn-border-0 file:bn-bg-transparent file:bn-text-sm file:bn-font-medium placeholder:bn-text-muted-foreground focus-visible:bn-outline-none focus-visible:bn-ring-2 focus-visible:bn-ring-ring focus-visible:bn-ring-offset-2 disabled:bn-cursor-not-allowed disabled:bn-opacity-50\",\n \"bn-items-center bn-gap-2 bn-text-foreground\",\n )}\n >\n {icon}\n <div className=\"bn-flex-1\">\n {label && (\n <ShadCNComponents.Label.Label htmlFor={label}>\n {label}\n </ShadCNComponents.Label.Label>\n )}\n <ShadCNComponents.Input.Input\n className={cn(className, \"bn-border-none bn-p-0 bn-h-auto\")}\n id={label}\n name={name}\n autoFocus={autoFocus}\n placeholder={placeholder}\n disabled={disabled}\n value={value}\n onKeyDown={onKeyDown}\n onChange={onChange}\n onSubmit={onSubmit}\n ref={ref}\n />\n </div>\n {rightSection}\n </div>\n );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { ChevronRight } from \"lucide-react\";\nimport { forwardRef, useMemo } from \"react\";\n\nimport type { DropdownMenuTrigger as ShadCNDropdownMenuTrigger } from \"../components/ui/dropdown-menu.js\";\nimport { cn } from \"../lib/utils.js\";\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\n\n// hacky HoC to change DropdownMenuTrigger to open a menu on PointerUp instead of PointerDown\n// Needed to fix this issue: https://github.com/radix-ui/primitives/issues/2867\nconst MenuTriggerWithPointerUp = (Comp: typeof ShadCNDropdownMenuTrigger) =>\n forwardRef<any, React.ComponentProps<typeof ShadCNDropdownMenuTrigger>>(\n (props, ref) => {\n return (\n <Comp\n onPointerDown={(e) => {\n if (!(e.nativeEvent as any).fakeEvent) {\n // setting ctrlKey will block the menu from opening\n // as it will block this line: https://github.com/radix-ui/primitives/blob/b32a93318cdfce383c2eec095710d35ffbd33a1c/packages/react/dropdown-menu/src/DropdownMenu.tsx#L120\n e.ctrlKey = true;\n }\n }}\n onPointerUp={(event) => {\n // dispatch a pointerdown event so the Radix pointer down handler gets called that opens the menu\n const e = new PointerEvent(\"pointerdown\", event.nativeEvent);\n (e as any).fakeEvent = true;\n event.target.dispatchEvent(e);\n }}\n {...props}\n ref={ref}\n />\n );\n },\n );\n\nexport const Menu = (props: ComponentProps[\"Generic\"][\"Menu\"][\"Root\"]) => {\n const {\n children,\n onOpenChange,\n position, // Unused\n sub,\n ...rest\n } = props;\n\n assertEmpty(rest);\n\n const ShadCNComponents = useShadCNComponentsContext()!;\n\n if (sub) {\n return (\n <ShadCNComponents.DropdownMenu.DropdownMenuSub\n onOpenChange={onOpenChange}\n >\n {children}\n </ShadCNComponents.DropdownMenu.DropdownMenuSub>\n );\n } else {\n return (\n <ShadCNComponents.DropdownMenu.DropdownMenu\n modal={false}\n onOpenChange={onOpenChange}\n >\n {children}\n </ShadCNComponents.DropdownMenu.DropdownMenu>\n );\n }\n};\n\nexport const MenuTrigger = (\n props: ComponentProps[\"Generic\"][\"Menu\"][\"Trigger\"],\n) => {\n const { children, sub, ...rest } = props;\n\n assertEmpty(rest);\n\n const ShadCNComponents = useShadCNComponentsContext()!;\n\n const DropdownMenuTrigger = useMemo(\n () =>\n MenuTriggerWithPointerUp(\n ShadCNComponents.DropdownMenu.DropdownMenuTrigger,\n ),\n [ShadCNComponents.DropdownMenu.DropdownMenuTrigger],\n );\n\n if (sub) {\n return (\n <ShadCNComponents.DropdownMenu.DropdownMenuSubTrigger>\n {children}\n </ShadCNComponents.DropdownMenu.DropdownMenuSubTrigger>\n );\n } else {\n return (\n <DropdownMenuTrigger asChild={true} {...rest}>\n {children}\n </DropdownMenuTrigger>\n );\n }\n};\n\nexport const MenuDropdown = forwardRef<\n HTMLDivElement,\n ComponentProps[\"Generic\"][\"Menu\"][\"Dropdown\"]\n>((props, ref) => {\n const { className, children, sub, ...rest } = props;\n\n assertEmpty(rest);\n\n const ShadCNComponents = useShadCNComponentsContext()!;\n\n if (sub) {\n return (\n <ShadCNComponents.DropdownMenu.DropdownMenuSubContent\n className={className}\n ref={ref}\n >\n {children}\n </ShadCNComponents.DropdownMenu.DropdownMenuSubContent>\n );\n } else {\n return (\n <ShadCNComponents.DropdownMenu.DropdownMenuContent\n className={className}\n ref={ref}\n >\n {children}\n </ShadCNComponents.DropdownMenu.DropdownMenuContent>\n );\n }\n});\n\nexport const MenuItem = forwardRef<\n HTMLDivElement,\n ComponentProps[\"Generic\"][\"Menu\"][\"Item\"]\n>((props, ref) => {\n const { className, children, icon, checked, subTrigger, onClick, ...rest } =\n props;\n\n assertEmpty(rest);\n\n const ShadCNComponents = useShadCNComponentsContext()!;\n\n if (subTrigger) {\n return (\n <>\n {icon}\n {children}\n </>\n );\n }\n\n if (checked !== undefined) {\n return (\n <ShadCNComponents.DropdownMenu.DropdownMenuCheckboxItem\n className={cn(className, \"bn-gap-1\", checked ? \"\" : \"bn-px-2\")}\n ref={ref}\n checked={checked}\n onClick={onClick}\n {...rest}\n >\n {icon}\n {children}\n </ShadCNComponents.DropdownMenu.DropdownMenuCheckboxItem>\n );\n }\n\n return (\n <ShadCNComponents.DropdownMenu.DropdownMenuItem\n className={className}\n ref={ref}\n onClick={onClick}\n {...rest}\n >\n {icon}\n {children}\n {subTrigger && <ChevronRight className=\"bn-ml-auto bn-h-4 bn-w-4\" />}\n </ShadCNComponents.DropdownMenu.DropdownMenuItem>\n );\n});\n\nexport const MenuDivider = forwardRef<\n HTMLDivElement,\n ComponentProps[\"Generic\"][\"Menu\"][\"Divider\"]\n>((props, ref) => {\n const { className, ...rest } = props;\n\n assertEmpty(rest);\n\n const ShadCNComponents = useShadCNComponentsContext()!;\n\n return (\n <ShadCNComponents.DropdownMenu.DropdownMenuSeparator\n className={className}\n ref={ref}\n />\n );\n});\n\nexport const MenuLabel = forwardRef<\n HTMLDivElement,\n ComponentProps[\"Generic\"][\"Menu\"][\"Label\"]\n>((props, ref) => {\n const { className, children, ...rest } = props;\n\n assertEmpty(rest);\n\n const ShadCNComponents = useShadCNComponentsContext()!;\n\n return (\n <ShadCNComponents.DropdownMenu.DropdownMenuLabel\n className={className}\n ref={ref}\n >\n {children}\n </ShadCNComponents.DropdownMenu.DropdownMenuLabel>\n );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { cn } from \"../lib/utils.js\";\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\n\nexport const MenuButton = forwardRef<\n HTMLButtonElement,\n ComponentProps[\"Generic\"][\"Menu\"][\"Button\"]\n>((props, ref) => {\n const {\n className,\n children,\n icon,\n onClick,\n onDragEnd,\n onDragStart,\n draggable,\n label,\n ...rest\n } = props;\n\n // false, because rest props can be added by ariakit when button is used as a trigger\n // assertEmpty in this case is only used at typescript level, not runtime level\n assertEmpty(rest, false);\n\n const ShadCNComponents = useShadCNComponentsContext()!;\n\n return (\n <ShadCNComponents.Button.Button\n variant={\"ghost\"}\n className={cn(className, \"bn-text-gray-400\")}\n ref={ref}\n aria-label={label}\n onClick={onClick}\n onDragStart={onDragStart}\n onDragEnd={onDragEnd}\n draggable={draggable}\n {...rest}\n >\n {icon}\n {children}\n </ShadCNComponents.Button.Button>\n );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { cn } from \"../lib/utils.js\";\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\n\nexport const Panel = forwardRef<\n HTMLDivElement,\n ComponentProps[\"FilePanel\"][\"Root\"]\n>((props, ref) => {\n const {\n className,\n tabs,\n defaultOpenTab,\n openTab,\n setOpenTab,\n loading, // TODO: implement loader\n ...rest\n } = props;\n\n assertEmpty(rest);\n\n const ShadCNComponents = useShadCNComponentsContext()!;\n\n return (\n <ShadCNComponents.Tabs.Tabs\n className={cn(className, \"bn-bg-popover bn-p-2 bn-rounded-lg\")}\n ref={ref}\n value={openTab}\n defaultValue={defaultOpenTab}\n onValueChange={setOpenTab}\n >\n {/*{loading && <LoadingOverlay visible={loading} />}*/}\n\n <ShadCNComponents.Tabs.TabsList>\n {tabs.map((tab) => (\n <ShadCNComponents.Tabs.TabsTrigger value={tab.name} key={tab.name}>\n {tab.name}\n </ShadCNComponents.Tabs.TabsTrigger>\n ))}\n </ShadCNComponents.Tabs.TabsList>\n\n {tabs.map((tab) => (\n <ShadCNComponents.Tabs.TabsContent value={tab.name} key={tab.name}>\n <ShadCNComponents.Card.Card>\n <ShadCNComponents.Card.CardContent className={\"bn-p-4\"}>\n {tab.tabPanel}\n </ShadCNComponents.Card.CardContent>\n </ShadCNComponents.Card.Card>\n </ShadCNComponents.Tabs.TabsContent>\n ))}\n </ShadCNComponents.Tabs.Tabs>\n );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { cn } from \"../lib/utils.js\";\n\nexport const PanelTab = forwardRef<\n HTMLDivElement,\n ComponentProps[\"FilePanel\"][\"TabPanel\"]\n>((props, ref) => {\n const { className, children, ...rest } = props;\n\n assertEmpty(rest);\n\n return (\n <div\n className={cn(\n className,\n \"bn-flex bn-flex-col bn-gap-2 bn-items-start bn-justify-center\",\n )}\n ref={ref}\n >\n {children}\n </div>\n );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { cn } from \"../lib/utils.js\";\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\n\nexport const PanelTextInput = forwardRef<\n HTMLInputElement,\n ComponentProps[\"FilePanel\"][\"TextInput\"]\n>((props, ref) => {\n const { className, value, placeholder, onKeyDown, onChange, ...rest } = props;\n\n assertEmpty(rest);\n\n const ShadCNComponents = useShadCNComponentsContext()!;\n\n return (\n <ShadCNComponents.Input.Input\n data-test={\"embed-input\"}\n className={cn(className, \"bn-w-80\")}\n ref={ref}\n value={value}\n placeholder={placeholder}\n onKeyDown={onKeyDown}\n onChange={onChange}\n />\n );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { cn } from \"../lib/utils.js\";\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\n\nexport const Popover = (\n props: ComponentProps[\"Generic\"][\"Popover\"][\"Root\"],\n) => {\n const {\n children,\n opened,\n position, // unused\n ...rest\n } = props;\n\n assertEmpty(rest);\n\n const ShadCNComponents = useShadCNComponentsContext()!;\n\n return (\n <ShadCNComponents.Popover.Popover open={opened}>\n {children}\n </ShadCNComponents.Popover.Popover>\n );\n};\n\nexport const PopoverTrigger = forwardRef(\n (props: ComponentProps[\"Generic\"][\"Popover\"][\"Trigger\"], ref: any) => {\n const { children, ...rest } = props;\n\n assertEmpty(rest);\n\n const ShadCNComponents = useShadCNComponentsContext()!;\n\n return (\n <ShadCNComponents.Popover.PopoverTrigger ref={ref} asChild={true}>\n {children}\n </ShadCNComponents.Popover.PopoverTrigger>\n );\n },\n);\n\nexport const PopoverContent = forwardRef<\n HTMLDivElement,\n ComponentProps[\"Generic\"][\"Popover\"][\"Content\"]\n>((props, ref) => {\n const { className, variant, children, ...rest } = props;\n\n assertEmpty(rest);\n\n const ShadCNComponents = useShadCNComponentsContext()!;\n\n return (\n <ShadCNComponents.Popover.PopoverContent\n sideOffset={8}\n className={cn(\n className,\n \"bn-flex bn-flex-col bn-gap-2\",\n variant === \"panel-popover\"\n ? \"bn-p-0 bn-border-none bn-shadow-none bn-max-w-none bn-w-fit\"\n : \"\",\n )}\n ref={ref}\n >\n {children}\n </ShadCNComponents.Popover.PopoverContent>\n );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nexport const SideMenu = forwardRef<\n HTMLDivElement,\n ComponentProps[\"SideMenu\"][\"Root\"]\n>((props, ref) => {\n const { className, children, ...rest } = props;\n\n assertEmpty(rest, false);\n\n return (\n <div className={className} ref={ref} {...rest}>\n {children}\n </div>\n );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { cn } from \"../lib/utils.js\";\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\n\nexport const SideMenuButton = forwardRef<\n HTMLButtonElement,\n ComponentProps[\"SideMenu\"][\"Button\"]\n>((props, ref) => {\n const {\n className,\n children,\n icon,\n onClick,\n onDragEnd,\n onDragStart,\n draggable,\n label,\n ...rest\n } = props;\n\n // false, because rest props can be added by ariakit when button is used as a trigger\n // assertEmpty in this case is only used at typescript level, not runtime level\n assertEmpty(rest, false);\n\n const ShadCNComponents = useShadCNComponentsContext()!;\n\n return (\n <ShadCNComponents.Button.Button\n variant={\"ghost\"}\n className={cn(className, \"bn-text-gray-400\")}\n ref={ref}\n aria-label={label}\n onClick={onClick}\n onDragStart={onDragStart}\n onDragEnd={onDragEnd}\n draggable={draggable}\n {...rest}\n >\n {icon}\n {children}\n </ShadCNComponents.Button.Button>\n );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nexport const GridSuggestionMenu = forwardRef<\n HTMLDivElement,\n ComponentProps[\"GridSuggestionMenu\"][\"Root\"]\n>((props, ref) => {\n const { className, children, id, columns, ...rest } = props;\n\n assertEmpty(rest);\n\n return (\n <div\n className={className}\n style={{ gridTemplateColumns: `repeat(${columns}, 1fr)` } as any}\n ref={ref}\n id={id}\n role=\"grid\"\n >\n {children}\n </div>\n );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nexport const GridSuggestionMenuEmptyItem = forwardRef<\n HTMLDivElement,\n ComponentProps[\"GridSuggestionMenu\"][\"EmptyItem\"]\n>((props, ref) => {\n const { className, children, columns, ...rest } = props;\n\n assertEmpty(rest);\n\n return (\n <div\n className={className}\n style={{ gridColumn: `1 / ${columns + 1}` }}\n ref={ref}\n >\n {children}\n </div>\n );\n});\n","import { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { assertEmpty } from \"@blocknote/core\";\nimport { cn } from \"../lib/utils.js\";\n\nexport const SuggestionMenu = forwardRef<\n HTMLDivElement,\n ComponentProps[\"SuggestionMenu\"][\"Root\"]\n>((props, ref) => {\n const { className, children, id, ...rest } = props;\n\n assertEmpty(rest);\n\n return (\n <div\n id={id}\n role=\"listbox\"\n // Styles from ShadCN DropdownMenuContent component\n className={cn(\n \"bn-z-50 bn-min-w-[8rem] bn-overflow-auto bn-rounded-md bn-border bn-bg-popover bn-p-1 bn-text-popover-foreground bn-shadow-md data-[state=open]:bn-animate-in data-[state=closed]:bn-animate-out data-[state=closed]:bn-fade-out-0 data-[state=open]:bn-fade-in-0 data-[state=closed]:bn-zoom-out-95 data-[state=open]:bn-zoom-in-95 data-[side=bottom]:bn-slide-in-from-top-2 data-[side=left]:bn-slide-in-from-right-2 data-[side=right]:bn-slide-in-from-left-2 data-[side=top]:bn-slide-in-from-bottom-2\",\n className,\n )}\n ref={ref}\n >\n {children}\n </div>\n );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { cn } from \"../lib/utils.js\";\n\nexport const SuggestionMenuEmptyItem = forwardRef<\n HTMLDivElement,\n ComponentProps[\"SuggestionMenu\"][\"EmptyItem\"]\n>((props, ref) => {\n const { className, children, ...rest } = props;\n\n assertEmpty(rest);\n\n return (\n <div\n // Styles from ShadCN DropdownMenuItem component\n className={cn(\n \"bn-relative bn-flex bn-cursor-default bn-select-none bn-items-center bn-rounded-sm bn-px-2 bn-py-1.5 bn-text-sm bn-outline-none bn-transition-colors focus:bn-bg-accent focus:bn-text-accent-foreground data-[disabled]:bn-pointer-events-none data-[disabled]:bn-opacity-50\",\n className,\n )}\n ref={ref}\n >\n <div>{children}</div>\n </div>\n );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps, elementOverflow, mergeRefs } from \"@blocknote/react\";\nimport { forwardRef, useEffect, useRef } from \"react\";\n\nimport { cn } from \"../lib/utils.js\";\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\n\nexport const SuggestionMenuItem = forwardRef<\n HTMLDivElement,\n ComponentProps[\"SuggestionMenu\"][\"Item\"]\n>((props, ref) => {\n const ShadCNComponents = useShadCNComponentsContext()!;\n\n const { className, item, isSelected, onClick, id, ...rest } = props;\n\n assertEmpty(rest);\n\n const itemRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!itemRef.current || !isSelected) {\n return;\n }\n\n const overflow = elementOverflow(\n itemRef.current,\n document.querySelector(\".bn-suggestion-menu, #ai-suggestion-menu\")!, // TODO\n );\n if (overflow === \"top\") {\n itemRef.current.scrollIntoView(true);\n } else if (overflow === \"bottom\") {\n itemRef.current.scrollIntoView(false);\n }\n }, [isSelected]);\n\n return (\n <div\n // Styles from ShadCN DropdownMenuItem component\n className={cn(\n \"bn-relative bn-flex bn-cursor-pointer bn-select-none bn-items-center bn-rounded-sm bn-px-2 bn-py-1.5 bn-text-sm bn-outline-none bn-transition-colors focus:bn-bg-accent focus:bn-text-accent-foreground data-[disabled]:bn-pointer-events-none data-[disabled]:bn-opacity-50\",\n props.item.size === \"small\" ? \"bn-gap-3 bn-py-1\" : \"\",\n className,\n )}\n ref={mergeRefs([ref, itemRef])}\n id={id}\n onMouseDown={(event) => event.preventDefault()}\n onClick={onClick}\n role=\"option\"\n aria-selected={isSelected || undefined}\n >\n {item.icon && (\n <div\n className={cn(\n \"bn-p-3\",\n props.item.size === \"small\" ? \"bn-p-0\" : \"\",\n className,\n )}\n data-position=\"left\"\n >\n {item.icon}\n </div>\n )}\n <div className=\"bn-flex-1\">\n <div\n className={cn(\n \"bn-text-base\",\n props.item.size === \"small\" ? \"bn-text-sm\" : \"\",\n className,\n )}\n >\n {item.title}\n </div>\n <div\n className={cn(\n \"bn-text-xs\",\n props.item.size === \"small\" ? \"bn-hidden\" : \"\",\n className,\n )}\n >\n {item.subtext}\n </div>\n </div>\n {item.badge && (\n <div data-position=\"right\" className=\"bn-text-xs\">\n <ShadCNComponents.Badge.Badge variant={\"secondary\"}>\n {item.badge}\n </ShadCNComponents.Badge.Badge>\n </div>\n )}\n </div>\n );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { cn } from \"../lib/utils.js\";\n\nexport const SuggestionMenuLabel = forwardRef<\n HTMLDivElement,\n ComponentProps[\"SuggestionMenu\"][\"Label\"]\n>((props, ref) => {\n const { className, children, ...rest } = props;\n\n assertEmpty(rest);\n\n return (\n <div\n // Styles from ShadCN DropdownMenuLabel component\n className={cn(\"bn-px-2 bn-py-1.5 bn-text-sm bn-font-semibold\", className)}\n ref={ref}\n >\n {children}\n </div>\n );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { cn } from \"../lib/utils.js\";\n\nexport const SuggestionMenuLoader = forwardRef<\n HTMLDivElement,\n ComponentProps[\"SuggestionMenu\"][\"Loader\"]\n>((props, ref) => {\n const { className, ...rest } = props;\n\n assertEmpty(rest);\n\n return (\n <div className={cn(className, \"bn-animate-spin\")} ref={ref}>\n {/* Taken from Google Material Icons */}\n {/* https://fonts.google.com/icons?selected=Material+Symbols+Rounded:progress_activity:FILL@0;wght@400;GRAD@0;opsz@24&icon.query=load&icon.size=24&icon.color=%23e8eaed&icon.set=Material+Symbols&icon.style=Rounded&icon.platform=web */}\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"1em\"\n viewBox=\"0 -960 960 960\"\n width=\"1em\"\n fill=\"#e8eaed\">\n <path d=\"M480-80q-82 0-155-31.5t-127.5-86Q143-252 111.5-325T80-480q0-83 31.5-155.5t86-127Q252-817 325-848.5T480-880q17 0 28.5 11.5T520-840q0 17-11.5 28.5T480-800q-133 0-226.5 93.5T160-480q0 133 93.5 226.5T480-160q133 0 226.5-93.5T800-480q0-17 11.5-28.5T840-520q17 0 28.5 11.5T880-480q0 82-31.5 155t-86 127.5q-54.5 54.5-127 86T480-80Z\" />\n </svg>\n </div>\n );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { cn } from \"../lib/utils.js\";\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\n\nexport const ExtendButton = forwardRef<\n HTMLButtonElement,\n ComponentProps[\"TableHandle\"][\"ExtendButton\"]\n>((props, ref) => {\n const { className, children, onMouseDown, onClick, ...rest } = props;\n\n // false, because rest props can be added by shadcn when button is used as a trigger\n // assertEmpty in this case is only used at typescript level, not runtime level\n assertEmpty(rest, false);\n\n const ShadCNComponents = useShadCNComponentsContext()!;\n\n return (\n <ShadCNComponents.Button.Button\n variant={\"ghost\"}\n className={cn(\n className,\n \"bn-p-0 bn-h-full bn-w-full bn-text-gray-400\",\n className?.includes(\"bn-extend-button-add-remove-columns\")\n ? \"bn-ml-1\"\n : \"bn-mt-1\",\n className?.includes(\"bn-extend-button-editing\")\n ? \"bn-bg-accent bn-text-accent-foreground\"\n : \"\",\n )}\n ref={ref}\n onClick={onClick}\n onMouseDown={onMouseDown}\n {...rest}\n >\n {children}\n </ShadCNComponents.Button.Button>\n );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { cn } from \"../lib/utils.js\";\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\n\nexport const TableHandle = forwardRef<\n HTMLButtonElement,\n ComponentProps[\"TableHandle\"][\"Root\"]\n>((props, ref) => {\n const {\n className,\n children,\n draggable,\n onDragStart,\n onDragEnd,\n style,\n label,\n ...rest\n } = props;\n\n // false, because rest props can be added by shadcn when button is used as a trigger\n // assertEmpty in this case is only used at typescript level, not runtime level\n assertEmpty(rest, false);\n\n const ShadCNComponents = useShadCNComponentsContext()!;\n\n return (\n <ShadCNComponents.Button.Button\n variant={\"ghost\"}\n className={cn(className, \"bn-p-0 bn-h-fit bn-w-fit bn-text-gray-400\")}\n ref={ref}\n aria-label={label}\n draggable={draggable}\n onDragStart={onDragStart}\n onDragEnd={onDragEnd}\n style={style}\n {...rest}\n >\n {children}\n </ShadCNComponents.Button.Button>\n );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { cn } from \"../lib/utils.js\";\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\n\ntype ToolbarProps = ComponentProps[\"Generic\"][\"Toolbar\"][\"Root\"];\n\nexport const Toolbar = forwardRef<HTMLDivElement, ToolbarProps>(\n (props, ref) => {\n const {\n className,\n children,\n onMouseEnter,\n onMouseLeave,\n variant,\n ...rest\n } = props;\n\n assertEmpty(rest);\n\n const ShadCNComponents = useShadCNComponentsContext()!;\n\n return (\n <ShadCNComponents.Tooltip.TooltipProvider delayDuration={0}>\n <div\n className={cn(\n className,\n \"bn-flex bn-gap-1 bn-p-1 bn-bg-popover bn-text-popover-foreground bn-border bn-rounded-lg bn-shadow-md bn-h-fit\",\n variant === \"action-toolbar\" ? \"bn-w-fit\" : \"\",\n )}\n ref={ref}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n >\n {children}\n </div>\n </ShadCNComponents.Tooltip.TooltipProvider>\n );\n },\n);\n\ntype ToolbarButtonProps = ComponentProps[\"Generic\"][\"Toolbar\"][\"Button\"];\n\nexport const ToolbarButton = forwardRef<HTMLButtonElement, ToolbarButtonProps>(\n (props, ref) => {\n const {\n className,\n children,\n mainTooltip,\n secondaryTooltip,\n icon,\n isSelected,\n isDisabled,\n onClick,\n label,\n variant,\n ...rest\n } = props;\n\n // false, because rest props can be added by shadcn when button is used as a trigger\n // assertEmpty in this case is only used at typescript level, not runtime level\n assertEmpty(rest, false);\n\n const ShadCNComponents = useShadCNComponentsContext()!;\n\n const trigger =\n isSelected === undefined ? (\n <ShadCNComponents.Button.Button\n className={cn(\n className,\n variant === \"compact\" ? \"bn-h-6 bn-min-w-6 bn-p-0\" : \"\",\n )}\n variant=\"ghost\"\n size={variant === \"compact\" ? \"sm\" : \"default\"}\n disabled={isDisabled}\n onClick={onClick}\n ref={ref}\n aria-label={label}\n {...rest}\n >\n {icon}\n {children}\n </ShadCNComponents.Button.Button>\n ) : (\n <ShadCNComponents.Toggle.Toggle\n className={cn(\n className,\n \"data-[state=open]:bg-accent data-[state=closed]:text-accent-foreground\",\n variant === \"compact\" ? \"bn-h-6 bn-min-w-6 bn-p-0\" : \"\",\n )}\n size={variant === \"compact\" ? \"sm\" : \"default\"}\n aria-label={label}\n onClick={onClick}\n pressed={isSelected}\n disabled={isDisabled}\n data-state={isSelected ? \"on\" : \"off\"}\n data-disabled={isDisabled}\n ref={ref}\n {...rest}\n >\n {icon}\n {children}\n </ShadCNComponents.Toggle.Toggle>\n );\n\n return (\n <ShadCNComponents.Tooltip.Tooltip>\n <ShadCNComponents.Tooltip.TooltipTrigger asChild>\n {trigger}\n </ShadCNComponents.Tooltip.TooltipTrigger>\n <ShadCNComponents.Tooltip.TooltipContent\n className={\n \"bn-flex bn-flex-col bn-items-center bn-whitespace-pre-wrap\"\n }\n >\n <span>{mainTooltip}</span>\n {secondaryTooltip && <span>{secondaryTooltip}</span>}\n </ShadCNComponents.Tooltip.TooltipContent>\n </ShadCNComponents.Tooltip.Tooltip>\n );\n },\n);\n\nexport const ToolbarSelect = forwardRef<\n HTMLDivElement,\n ComponentProps[\"FormattingToolbar\"][\"Select\"]\n>((props, ref) => {\n const { className, items, isDisabled, ...rest } = props;\n\n assertEmpty(rest);\n\n const ShadCNComponents = useShadCNComponentsContext()!;\n\n // TODO?\n const SelectItemContent = (props: any) => (\n <div className={\"bn-flex bn-gap-1 bn-items-center\"}>\n {props.icon}\n {props.text}\n </div>\n );\n\n const selectedItem = items.filter((p) => p.isSelected)[0];\n\n if (!selectedItem) {\n return null;\n }\n\n return (\n <ShadCNComponents.Select.Select\n value={selectedItem.text}\n onValueChange={(value) =>\n items.find((item) => item.text === value)!.onClick?.()\n }\n disabled={isDisabled}\n >\n <ShadCNComponents.Select.SelectTrigger className={\"bn-border-none\"}>\n <ShadCNComponents.Select.SelectValue />\n </ShadCNComponents.Select.SelectTrigger>\n <ShadCNComponents.Select.SelectContent className={className} ref={ref}>\n {items.map((item) => (\n <ShadCNComponents.Select.SelectItem\n disabled={item.isDisabled}\n key={item.text}\n value={item.text}\n >\n <SelectItemContent {...item} />\n </ShadCNComponents.Select.SelectItem>\n ))}\n </ShadCNComponents.Select.SelectContent>\n </ShadCNComponents.Select.Select>\n );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { cn } from \"../lib/utils.js\";\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\n\nexport const Card = forwardRef<\n HTMLDivElement,\n ComponentProps[\"Comments\"][\"Card\"]\n>((props, ref) => {\n const {\n className,\n children,\n selected,\n headerText,\n onFocus,\n onBlur,\n tabIndex,\n ...rest\n } = props;\n\n assertEmpty(rest);\n\n const ShadCNComponents = useShadCNComponentsContext()!;\n\n return (\n <ShadCNComponents.Card.Card\n className={cn(\n className,\n \"bn-w-[300px]\",\n selected ? \"bn-bg-accent bn-text-accent-foreground\" : \"\",\n )}\n onFocus={onFocus}\n onBlur={onBlur}\n tabIndex={tabIndex}\n ref={ref}\n >\n {headerText && (\n <div className={\"bn-px-4 bn-pt-4 bn-italic bn-text-sm\"}>\n {headerText}\n </div>\n )}\n {children}\n </ShadCNComponents.Card.Card>\n );\n});\n\nexport const CardSection = forwardRef<\n HTMLDivElement,\n ComponentProps[\"Comments\"][\"CardSection\"]\n>((props, ref) => {\n const { className, children, ...rest } = props;\n\n assertEmpty(rest);\n\n return (\n <div\n className={cn(\n className,\n \"bn-p-4\",\n className?.includes(\"bn-thread-comments\")\n ? \"bn-flex bn-flex-col bn-gap-6 bn-border-b\"\n : \"\",\n )}\n ref={ref}\n >\n {children}\n </div>\n );\n});\n\nexport const ExpandSectionsPrompt = forwardRef<\n HTMLButtonElement,\n ComponentProps[\"Comments\"][\"ExpandSectionsPrompt\"]\n>((props, ref) => {\n const { className, children, ...rest } = props;\n\n assertEmpty(rest, false);\n\n const ShadCNComponents = useShadCNComponentsContext()!;\n\n return (\n <ShadCNComponents.Button.Button\n className={cn(\n className,\n \"bn-p-0 bn-w-fit bn-text-foreground bn-bg-transparent hover:bn-bg-transparent\",\n )}\n ref={ref}\n >\n {children}\n </ShadCNComponents.Button.Button>\n );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport {\n ComponentProps,\n useDictionary,\n useFocusWithin,\n} from \"@blocknote/react\";\nimport { forwardRef, useState } from \"react\";\n\nimport { cn } from \"../lib/utils.js\";\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\n\nconst AuthorInfo = forwardRef<\n HTMLDivElement,\n Pick<\n ComponentProps[\"Comments\"][\"Comment\"],\n \"authorInfo\" | \"timeString\" | \"edited\"\n >\n>((props, _ref) => {\n const { authorInfo, timeString, edited, ...rest } = props;\n const dict = useDictionary();\n\n assertEmpty(rest, false);\n\n const ShadCNComponents = useShadCNComponentsContext()!;\n\n if (authorInfo === \"loading\") {\n return (\n <div\n className={\n \"bn-flex bn-flex-row bn-flex-nowrap bn-items-center bn-gap-4\"\n }\n >\n <ShadCNComponents.Skeleton.Skeleton\n className={\n \"bn-size-7 bn-rounded-full bn-bg-neutral-400 bn-animate-pulse\"\n }\n />\n <ShadCNComponents.Skeleton.Skeleton\n className={\n \"bn-h-3 bn-w-32 bn-rounded-full bn-bg-neutral-400 bn-animate-pulse\"\n }\n />\n </div>\n );\n }\n\n return (\n <div\n className={\"bn-flex bn-flex-row bn-flex-nowrap bn-items-center bn-gap-4\"}\n >\n <ShadCNComponents.Avatar.Avatar>\n <ShadCNComponents.Avatar.AvatarImage\n src={authorInfo.avatarUrl}\n alt={authorInfo.username}\n className={\"bn-h-7 bn-rounded-full\"}\n />\n <ShadCNComponents.Avatar.AvatarFallback>\n {authorInfo.username[0]}\n </ShadCNComponents.Avatar.AvatarFallback>\n </ShadCNComponents.Avatar.Avatar>\n\n <div\n className={\n \"bn-flex bn-flex-row bn-flex-nowrap bn-items-center bn-gap-2\"\n }\n >\n <span className={\"bn-text-sm bn-font-bold\"}>{authorInfo.username}</span>\n <span className={\"bn-text-xs\"}>\n {timeString} {edited && `(${dict.comments.edited})`}\n </span>\n </div>\n </div>\n );\n});\n\nexport const Comment = forwardRef<\n HTMLDivElement,\n ComponentProps[\"Comments\"][\"Comment\"]\n>((props, ref) => {\n const {\n className,\n showActions,\n authorInfo,\n timeString,\n actions,\n edited,\n children,\n ...rest\n } = props;\n\n assertEmpty(rest);\n\n const [hovered, setHovered] = useState(false);\n const { focused, ref: focusRef } = useFocusWithin();\n\n const doShowActions =\n actions &&\n (showActions === true ||\n showActions === undefined ||\n (showActions === \"hover\" && hovered) ||\n focused);\n\n return (\n <div\n ref={ref}\n className={cn(className, \"bn-relative bn-flex bn-flex-col bn-gap-2\")}\n onMouseEnter={() => setHovered(true)}\n onMouseLeave={() => setHovered(false)}\n >\n {doShowActions ? (\n <div\n className={\"bn-absolute bn-right-0 bn-top-0 bn-z-10\"}\n ref={focusRef}\n >\n {actions}\n </div>\n ) : null}\n <AuthorInfo {...props} />\n {children}\n </div>\n );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport {\n ComponentProps,\n FormattingToolbar,\n FormattingToolbarController,\n getFormattingToolbarItems,\n 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 \"bn-flex bn-items-center bn-gap-1 bn-rounded-full bn-h-7 bn-px-2.5\",\n )}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n ref={ref}\n >\n <span>{icon}</span>\n <span>{text}</span>\n </ShadCNComponents.Button.Button>\n );\n\n if (!mainTooltip) {\n return badge;\n }\n\n return (\n <ShadCNComponents.Tooltip.Tooltip>\n <ShadCNComponents.Tooltip.TooltipTrigger asChild>\n {badge}\n </ShadCNComponents.Tooltip.TooltipTrigger>\n <ShadCNComponents.Tooltip.TooltipContent\n className={\"bn-flex bn-flex-col bn-items-center bn-whitespace-pre-wrap\"}\n >\n <span>{mainTooltip}</span>\n {secondaryTooltip && <span>{secondaryTooltip}</span>}\n </ShadCNComponents.Tooltip.TooltipContent>\n </ShadCNComponents.Tooltip.Tooltip>\n );\n});\n\nexport const BadgeGroup = forwardRef<\n HTMLDivElement,\n ComponentProps[\"Generic\"][\"Badge\"][\"Group\"]\n>((props, ref) => {\n const { className, children, ...rest } = props;\n\n assertEmpty(rest);\n\n const ShadCNComponents = useShadCNComponentsContext()!;\n\n return (\n <ShadCNComponents.Tooltip.TooltipProvider delayDuration={0}>\n <div\n className={cn(\n className,\n \"bn-flex bn-flex-row bn-flex-wrap bn-gap-1 bn-w-full\",\n )}\n ref={ref}\n >\n {children}\n </div>\n </ShadCNComponents.Tooltip.TooltipProvider>\n );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\n\nexport const PanelButton = forwardRef<\n HTMLButtonElement,\n ComponentProps[\"FilePanel\"][\"Button\"]\n>((props, ref) => {\n const { className, children, onClick, label, ...rest } = props;\n\n assertEmpty(rest);\n\n const ShadCNComponents = useShadCNComponentsContext()!;\n\n return (\n <ShadCNComponents.Button.Button\n type={\"submit\"}\n className={className}\n aria-label={label}\n ref={ref}\n onClick={onClick}\n >\n {children}\n </ShadCNComponents.Button.Button>\n );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\n\nexport const PanelFileInput = forwardRef<\n HTMLInputElement,\n ComponentProps[\"FilePanel\"][\"FileInput\"]\n>((props, ref) => {\n const { className, accept, value, placeholder, onChange, ...rest } = props;\n\n assertEmpty(rest);\n\n const ShadCNComponents = useShadCNComponentsContext()!;\n\n return (\n <ShadCNComponents.Input.Input\n type={\"file\"}\n className={className}\n ref={ref}\n accept={accept}\n value={value ? value.name : undefined}\n onChange={async (e) => onChange?.(e.target.files![0])}\n placeholder={placeholder}\n />\n );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps, elementOverflow, mergeRefs } from \"@blocknote/react\";\nimport { forwardRef, useEffect, useRef } from \"react\";\n\nexport const GridSuggestionMenuItem = forwardRef<\n HTMLDivElement,\n ComponentProps[\"GridSuggestionMenu\"][\"Item\"]\n>((props, ref) => {\n const { className, isSelected, onClick, item, id, ...rest } = props;\n\n assertEmpty(rest);\n\n const itemRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!itemRef.current || !isSelected) {\n return;\n }\n\n const overflow = elementOverflow(\n itemRef.current,\n document.querySelector(\".bn-grid-suggestion-menu\")!,\n );\n\n if (overflow === \"top\") {\n itemRef.current.scrollIntoView(true);\n } else if (overflow === \"bottom\") {\n itemRef.current.scrollIntoView(false);\n }\n }, [isSelected]);\n\n return (\n <div\n className={className}\n ref={mergeRefs([ref, itemRef])}\n id={id}\n role=\"option\"\n onClick={onClick}\n aria-selected={isSelected || undefined}\n >\n {item.icon}\n </div>\n );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nexport const GridSuggestionMenuLoader = forwardRef<\n HTMLDivElement,\n ComponentProps[\"GridSuggestionMenu\"][\"Loader\"]\n>((props, ref) => {\n const {\n className,\n children, // unused, using \"dots\" instead\n columns,\n ...rest\n } = props;\n\n assertEmpty(rest);\n\n return (\n <div\n className={className}\n style={{ gridColumn: `1 / ${columns + 1}` }}\n ref={ref}\n >\n {children}\n </div>\n );\n});\n","import { Components } from \"@blocknote/react\";\n\nimport { Form } from \"./form/Form.js\";\nimport { TextInput } from \"./form/TextInput.js\";\nimport {\n Menu,\n MenuDivider,\n MenuDropdown,\n MenuItem,\n MenuLabel,\n MenuTrigger,\n} from \"./menu/Menu.js\";\nimport { MenuButton } from \"./menu/Button.js\";\nimport { Panel } from \"./panel/Panel.js\";\nimport { PanelTab } from \"./panel/PanelTab.js\";\nimport { PanelTextInput } from \"./panel/PanelTextInput.js\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"./popover/popover.js\";\nimport { SideMenu } from \"./sideMenu/SideMenu.js\";\nimport { SideMenuButton } from \"./sideMenu/SideMenuButton.js\";\nimport { GridSuggestionMenu } from \"./suggestionMenu/gridSuggestionMenu/GridSuggestionMenu.js\";\nimport { GridSuggestionMenuEmptyItem } from \"./suggestionMenu/gridSuggestionMenu/GridSuggestionMenuEmptyItem.js\";\nimport { SuggestionMenu } from \"./suggestionMenu/SuggestionMenu.js\";\nimport { SuggestionMenuEmptyItem } from \"./suggestionMenu/SuggestionMenuEmptyItem.js\";\nimport { SuggestionMenuItem } from \"./suggestionMenu/SuggestionMenuItem.js\";\nimport { SuggestionMenuLabel } from \"./suggestionMenu/SuggestionMenuLabel.js\";\nimport { SuggestionMenuLoader } from \"./suggestionMenu/SuggestionMenuLoader.js\";\nimport { ExtendButton } from \"./tableHandle/ExtendButton.js\";\nimport { TableHandle } from \"./tableHandle/TableHandle.js\";\nimport { Toolbar, ToolbarButton, ToolbarSelect } from \"./toolbar/Toolbar.js\";\nimport { Card, CardSection, ExpandSectionsPrompt } from \"./comments/Card.js\";\nimport { Comment } from \"./comments/Comment.js\";\nimport { Editor } from \"./comments/Editor.js\";\nimport { Badge, BadgeGroup } from \"./badge/Badge.js\";\n\nimport { PanelButton } from \"./panel/PanelButton.js\";\nimport { PanelFileInput } from \"./panel/PanelFileInput.js\";\nimport \"./style.css\";\nimport { GridSuggestionMenuItem } from \"./suggestionMenu/gridSuggestionMenu/GridSuggestionMenuItem.js\";\nimport { GridSuggestionMenuLoader } from \"./suggestionMenu/gridSuggestionMenu/GridSuggestionMenuLoader.js\";\n\nexport const components: Components = {\n FormattingToolbar: {\n Root: Toolbar,\n Button: ToolbarButton,\n Select: ToolbarSelect,\n },\n FilePanel: {\n Root: Panel,\n Button: PanelButton,\n FileInput: PanelFileInput,\n TabPanel: PanelTab,\n TextInput: PanelTextInput,\n },\n LinkToolbar: {\n Root: Toolbar,\n Button: ToolbarButton,\n Select: ToolbarSelect,\n },\n SideMenu: {\n Root: SideMenu,\n Button: SideMenuButton,\n },\n SuggestionMenu: {\n Root: SuggestionMenu,\n Item: SuggestionMenuItem,\n EmptyItem: SuggestionMenuEmptyItem,\n Label: SuggestionMenuLabel,\n Loader: SuggestionMenuLoader,\n },\n GridSuggestionMenu: {\n Root: GridSuggestionMenu,\n Item: GridSuggestionMenuItem,\n EmptyItem: GridSuggestionMenuEmptyItem,\n Loader: GridSuggestionMenuLoader,\n },\n TableHandle: {\n Root: TableHandle,\n ExtendButton: ExtendButton,\n },\n Comments: {\n Comment: Comment,\n Editor: Editor,\n Card: Card,\n CardSection: CardSection,\n ExpandSectionsPrompt: ExpandSectionsPrompt,\n },\n Generic: {\n Badge: {\n Root: Badge,\n Group: BadgeGroup,\n },\n Toolbar: {\n Root: Toolbar,\n Button: ToolbarButton,\n Select: ToolbarSelect,\n },\n Form: {\n Root: Form,\n TextInput: TextInput,\n },\n Menu: {\n Root: Menu,\n Trigger: MenuTrigger,\n Dropdown: MenuDropdown,\n Divider: MenuDivider,\n Label: MenuLabel,\n Item: MenuItem,\n Button: MenuButton,\n },\n Popover: {\n Root: Popover,\n Trigger: PopoverTrigger,\n Content: PopoverContent,\n },\n },\n};\n","import {\n BlockSchema,\n InlineContentSchema,\n mergeCSSClasses,\n StyleSchema,\n} from \"@blocknote/core\";\nimport { 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\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":["twMerge","extendTailwindMerge","cn","inputs","clsx","Avatar","React","className","props","ref","jsx","AvatarPrimitive","AvatarImage","AvatarFallback","badgeVariants","cva","Badge","variant","buttonVariants","Button","size","asChild","Comp","Slot","Card","CardHeader","CardTitle","CardDescription","CardContent","CardFooter","DropdownMenu","DropdownMenuPrimitive","DropdownMenuTrigger","DropdownMenuSub","DropdownMenuSubTrigger","inset","children","jsxs","ChevronRight","DropdownMenuSubContent","DropdownMenuContent","sideOffset","DropdownMenuItem","DropdownMenuCheckboxItem","checked","Check","DropdownMenuRadioItem","Circle","DropdownMenuLabel","DropdownMenuSeparator","labelVariants","Label","LabelPrimitive","Form","FormProvider","FormFieldContext","useFormField","fieldContext","itemContext","FormItemContext","getFieldState","formState","useFormContext","fieldState","id","FormItem","FormLabel","error","formItemId","FormControl","formDescriptionId","formMessageId","FormDescription","FormMessage","body","Input","type","Popover","PopoverPrimitive","PopoverTrigger","PopoverContent","align","Select","SelectPrimitive","SelectValue","SelectTrigger","ChevronDown","SelectScrollUpButton","ChevronUp","SelectScrollDownButton","SelectContent","position","SelectLabel","SelectItem","SelectSeparator","Skeleton","Tabs","TabsPrimitive","TabsList","TabsTrigger","TabsContent","toggleVariants","Toggle","TogglePrimitive","TooltipProvider","TooltipPrimitive","Tooltip","TooltipTrigger","TooltipContent","ShadCNDefaultComponents","ShadCNAvatar","ShadCNAvatarFallback","ShadCNAvatarImage","ShadCNBadge","ShadCNButton","ShadCNCard","ShadCNCardContent","ShadCNDropdownMenu","ShadCNDropdownMenuCheckboxItem","ShadCNDropdownMenuContent","ShadCNDropdownMenuItem","ShadCNDropdownMenuLabel","ShadCNDropdownMenuSeparator","ShadCNDropdownMenuSub","ShadCNDropdownMenuSubContent","ShadCNDropdownMenuSubTrigger","ShadCNDropdownMenuTrigger","ShadCNForm","ShadCNInput","ShadCNLabel","ShadCNPopover","ShadCNPopoverContent","ShadCNPopoverTrigger","ShadCNSelect","ShadCNSelectContent","ShadCNSelectItem","ShadCNSelectTrigger","ShadCNSelectValue","ShadCNSkeleton","ShadCNTabs","ShadCNTabsContent","ShadCNTabsList","ShadCNTabsTrigger","ShadCNToggle","ShadCNTooltip","ShadCNTooltipContent","ShadCNTooltipProvider","ShadCNTooltipTrigger","ShadCNComponentsContext","createContext","useShadCNComponentsContext","useContext","rest","assertEmpty","ShadCNComponents","form","useForm","TextInput","forwardRef","name","label","icon","value","autoFocus","placeholder","disabled","onKeyDown","onChange","onSubmit","autoComplete","rightSection","MenuTriggerWithPointerUp","e","event","Menu","onOpenChange","sub","MenuTrigger","useMemo","MenuDropdown","MenuItem","subTrigger","onClick","Fragment","MenuDivider","MenuLabel","MenuButton","onDragEnd","onDragStart","draggable","Panel","tabs","defaultOpenTab","openTab","setOpenTab","loading","tab","PanelTab","PanelTextInput","opened","SideMenu","SideMenuButton","GridSuggestionMenu","columns","GridSuggestionMenuEmptyItem","SuggestionMenu","SuggestionMenuEmptyItem","SuggestionMenuItem","item","isSelected","itemRef","useRef","useEffect","overflow","elementOverflow","mergeRefs","SuggestionMenuLabel","SuggestionMenuLoader","ExtendButton","onMouseDown","TableHandle","style","Toolbar","onMouseEnter","onMouseLeave","ToolbarButton","mainTooltip","secondaryTooltip","isDisabled","trigger","ToolbarSelect","items","SelectItemContent","selectedItem","p","_b","_a","selected","headerText","onFocus","onBlur","tabIndex","CardSection","ExpandSectionsPrompt","AuthorInfo","_ref","authorInfo","timeString","edited","dict","useDictionary","Comment","showActions","actions","hovered","setHovered","useState","focused","focusRef","useFocusWithin","doShowActions","Editor","editor","editable","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 rounded-lg p-2\")}\n ref={ref}\n value={openTab}\n defaultValue={defaultOpenTab}\n onValueChange={setOpenTab}\n >\n {/*{loading && <LoadingOverlay visible={loading} />}*/}\n\n <ShadCNComponents.Tabs.TabsList>\n {tabs.map((tab) => (\n <ShadCNComponents.Tabs.TabsTrigger value={tab.name} key={tab.name}>\n {tab.name}\n </ShadCNComponents.Tabs.TabsTrigger>\n ))}\n </ShadCNComponents.Tabs.TabsList>\n\n {tabs.map((tab) => (\n <ShadCNComponents.Tabs.TabsContent value={tab.name} key={tab.name}>\n <ShadCNComponents.Card.Card>\n <ShadCNComponents.Card.CardContent className={\"p-4\"}>\n {tab.tabPanel}\n </ShadCNComponents.Card.CardContent>\n </ShadCNComponents.Card.Card>\n </ShadCNComponents.Tabs.TabsContent>\n ))}\n </ShadCNComponents.Tabs.Tabs>\n );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { cn } from \"../lib/utils.js\";\n\nexport const PanelTab = forwardRef<\n HTMLDivElement,\n ComponentProps[\"FilePanel\"][\"TabPanel\"]\n>((props, ref) => {\n const { className, children, ...rest } = props;\n\n assertEmpty(rest);\n\n return (\n <div\n className={cn(\n className,\n \"flex flex-col items-start justify-center gap-2\",\n )}\n ref={ref}\n >\n {children}\n </div>\n );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { cn } from \"../lib/utils.js\";\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\n\nexport const PanelTextInput = forwardRef<\n HTMLInputElement,\n ComponentProps[\"FilePanel\"][\"TextInput\"]\n>((props, ref) => {\n const { className, value, placeholder, onKeyDown, onChange, ...rest } = props;\n\n assertEmpty(rest);\n\n const ShadCNComponents = useShadCNComponentsContext()!;\n\n return (\n <ShadCNComponents.Input.Input\n data-test={\"embed-input\"}\n className={cn(className, \"w-80\")}\n ref={ref}\n value={value}\n placeholder={placeholder}\n onKeyDown={onKeyDown}\n onChange={onChange}\n />\n );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { cn } from \"../lib/utils.js\";\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\n\nexport const Popover = (\n props: ComponentProps[\"Generic\"][\"Popover\"][\"Root\"],\n) => {\n const {\n children,\n opened,\n position, // unused\n ...rest\n } = props;\n\n assertEmpty(rest);\n\n const ShadCNComponents = useShadCNComponentsContext()!;\n\n return (\n <ShadCNComponents.Popover.Popover open={opened}>\n {children}\n </ShadCNComponents.Popover.Popover>\n );\n};\n\nexport const PopoverTrigger = forwardRef(\n (props: ComponentProps[\"Generic\"][\"Popover\"][\"Trigger\"], ref: any) => {\n const { children, ...rest } = props;\n\n assertEmpty(rest);\n\n const ShadCNComponents = useShadCNComponentsContext()!;\n\n return (\n <ShadCNComponents.Popover.PopoverTrigger ref={ref} asChild={true}>\n {children}\n </ShadCNComponents.Popover.PopoverTrigger>\n );\n },\n);\n\nexport const PopoverContent = forwardRef<\n HTMLDivElement,\n ComponentProps[\"Generic\"][\"Popover\"][\"Content\"]\n>((props, ref) => {\n const { className, variant, children, ...rest } = props;\n\n assertEmpty(rest);\n\n const ShadCNComponents = useShadCNComponentsContext()!;\n\n return (\n <ShadCNComponents.Popover.PopoverContent\n sideOffset={8}\n className={cn(\n className,\n \"flex flex-col gap-2\",\n variant === \"panel-popover\"\n ? \"w-fit max-w-none border-none p-0 shadow-none\"\n : \"\",\n )}\n ref={ref}\n >\n {children}\n </ShadCNComponents.Popover.PopoverContent>\n );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nexport const SideMenu = forwardRef<\n HTMLDivElement,\n ComponentProps[\"SideMenu\"][\"Root\"]\n>((props, ref) => {\n const { className, children, ...rest } = props;\n\n assertEmpty(rest, false);\n\n return (\n <div className={className} ref={ref} {...rest}>\n {children}\n </div>\n );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { cn } from \"../lib/utils.js\";\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\n\nexport const SideMenuButton = forwardRef<\n HTMLButtonElement,\n ComponentProps[\"SideMenu\"][\"Button\"]\n>((props, ref) => {\n const {\n className,\n children,\n icon,\n onClick,\n onDragEnd,\n onDragStart,\n draggable,\n label,\n ...rest\n } = props;\n\n // false, because rest props can be added by ariakit when button is used as a trigger\n // assertEmpty in this case is only used at typescript level, not runtime level\n assertEmpty(rest, false);\n\n const ShadCNComponents = useShadCNComponentsContext()!;\n\n return (\n <ShadCNComponents.Button.Button\n variant={\"ghost\"}\n className={cn(className, \"text-gray-400\")}\n ref={ref}\n aria-label={label}\n onClick={onClick}\n onDragStart={onDragStart}\n onDragEnd={onDragEnd}\n draggable={draggable}\n {...rest}\n >\n {icon}\n {children}\n </ShadCNComponents.Button.Button>\n );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { cn } from \"../../lib/utils.js\";\n\nexport const GridSuggestionMenu = forwardRef<\n HTMLDivElement,\n ComponentProps[\"GridSuggestionMenu\"][\"Root\"]\n>((props, ref) => {\n const { className, children, id, columns, ...rest } = props;\n\n assertEmpty(rest);\n\n return (\n <div\n // Styles from ShadCN DropdownMenuContent component\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 max-h-(--radix-dropdown-menu-content-available-height) origin-(--radix-dropdown-menu-content-transform-origin) z-50 min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border p-1 shadow-md\",\n \"grid\",\n className,\n )}\n style={{ gridTemplateColumns: `repeat(${columns}, 1fr)` } as any}\n ref={ref}\n id={id}\n role=\"grid\"\n >\n {children}\n </div>\n );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nexport const GridSuggestionMenuEmptyItem = forwardRef<\n HTMLDivElement,\n ComponentProps[\"GridSuggestionMenu\"][\"EmptyItem\"]\n>((props, ref) => {\n const { className, children, columns, ...rest } = props;\n\n assertEmpty(rest);\n\n return (\n <div\n className={className}\n style={{ gridColumn: `1 / ${columns + 1}` }}\n ref={ref}\n >\n {children}\n </div>\n );\n});\n","import { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { assertEmpty } from \"@blocknote/core\";\nimport { cn } from \"../lib/utils.js\";\n\nexport const SuggestionMenu = forwardRef<\n HTMLDivElement,\n ComponentProps[\"SuggestionMenu\"][\"Root\"]\n>((props, ref) => {\n const { className, children, id, ...rest } = props;\n\n assertEmpty(rest);\n\n return (\n <div\n id={id}\n role=\"listbox\"\n // Styles from ShadCN DropdownMenuContent component\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 max-h-(--radix-dropdown-menu-content-available-height) origin-(--radix-dropdown-menu-content-transform-origin) z-50 min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border p-1 shadow-md\",\n className,\n )}\n ref={ref}\n >\n {children}\n </div>\n );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { cn } from \"../lib/utils.js\";\n\nexport const SuggestionMenuEmptyItem = forwardRef<\n HTMLDivElement,\n ComponentProps[\"SuggestionMenu\"][\"EmptyItem\"]\n>((props, ref) => {\n const { className, children, ...rest } = props;\n\n assertEmpty(rest);\n\n return (\n <div\n // Styles from ShadCN DropdownMenuItem component\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*=text-])]:text-muted-foreground outline-hidden relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm data-[disabled]:pointer-events-none data-[inset]:pl-8 data-[disabled]:opacity-50 [&_svg:not([class*=size-])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n \"hover:bg-accent hover:text-accent-foreground data-[variant=destructive]:hover:bg-destructive/10 dark:data-[variant=destructive]:hover:bg-destructive/20 data-[variant=destructive]:hover:text-destructive\",\n \"aria-selected:bg-accent aria-selected:text-accent-foreground data-[variant=destructive]:aria-selected:bg-destructive/10 dark:data-[variant=destructive]:aria-selected:bg-destructive/20 data-[variant=destructive]:aria-selected:text-destructive\",\n className,\n )}\n ref={ref}\n >\n <div>{children}</div>\n </div>\n );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps, elementOverflow, mergeRefs } from \"@blocknote/react\";\nimport { forwardRef, useEffect, useRef } from \"react\";\n\nimport { cn } from \"../lib/utils.js\";\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\n\nexport const SuggestionMenuItem = forwardRef<\n HTMLDivElement,\n ComponentProps[\"SuggestionMenu\"][\"Item\"]\n>((props, ref) => {\n const ShadCNComponents = useShadCNComponentsContext()!;\n\n const { className, item, isSelected, onClick, id, ...rest } = props;\n\n assertEmpty(rest);\n\n const itemRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!itemRef.current || !isSelected) {\n return;\n }\n\n const overflow = elementOverflow(\n itemRef.current,\n document.querySelector(\".bn-suggestion-menu, #ai-suggestion-menu\")!, // TODO\n );\n if (overflow === \"top\") {\n itemRef.current.scrollIntoView(true);\n } else if (overflow === \"bottom\") {\n itemRef.current.scrollIntoView(false);\n }\n }, [isSelected]);\n\n return (\n <div\n // Styles from ShadCN DropdownMenuItem component\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*=text-])]:text-muted-foreground outline-hidden relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm data-[disabled]:pointer-events-none data-[inset]:pl-8 data-[disabled]:opacity-50 [&_svg:not([class*=size-])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n \"hover:bg-accent hover:text-accent-foreground data-[variant=destructive]:hover:bg-destructive/10 dark:data-[variant=destructive]:hover:bg-destructive/20 data-[variant=destructive]:hover:text-destructive\",\n \"aria-selected:bg-accent aria-selected:text-accent-foreground data-[variant=destructive]:aria-selected:bg-destructive/10 dark:data-[variant=destructive]:aria-selected:bg-destructive/20 data-[variant=destructive]:aria-selected:text-destructive\",\n props.item.size === \"small\" ? \"gap-3 py-1\" : \"\",\n className,\n )}\n data-highlighted\n ref={mergeRefs([ref, itemRef])}\n id={id}\n onMouseDown={(event) => event.preventDefault()}\n onClick={onClick}\n role=\"option\"\n aria-selected={isSelected || undefined}\n >\n {item.icon && (\n <div\n className={cn(\n \"p-3\",\n props.item.size === \"small\" ? \"p-0\" : \"\",\n className,\n )}\n data-position=\"left\"\n >\n {item.icon}\n </div>\n )}\n <div className=\"flex-1\">\n <div\n className={cn(\n \"text-base\",\n props.item.size === \"small\" ? \"text-sm\" : \"\",\n className,\n )}\n >\n {item.title}\n </div>\n <div\n className={cn(\n \"text-xs\",\n props.item.size === \"small\" ? \"hidden\" : \"\",\n className,\n )}\n >\n {item.subtext}\n </div>\n </div>\n {item.badge && (\n <div data-position=\"right\" className=\"text-xs\">\n <ShadCNComponents.Badge.Badge variant={\"secondary\"}>\n {item.badge}\n </ShadCNComponents.Badge.Badge>\n </div>\n )}\n </div>\n );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { cn } from \"../lib/utils.js\";\n\nexport const SuggestionMenuLabel = forwardRef<\n HTMLDivElement,\n ComponentProps[\"SuggestionMenu\"][\"Label\"]\n>((props, ref) => {\n const { className, children, ...rest } = props;\n\n assertEmpty(rest);\n\n return (\n <div\n // Styles from ShadCN DropdownMenuLabel component\n className={cn(\n \"px-2 py-1.5 text-sm font-medium data-[inset]:pl-8\",\n className,\n )}\n ref={ref}\n >\n {children}\n </div>\n );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { cn } from \"../lib/utils.js\";\n\nexport const SuggestionMenuLoader = forwardRef<\n HTMLDivElement,\n ComponentProps[\"SuggestionMenu\"][\"Loader\"]\n>((props, ref) => {\n const { className, ...rest } = props;\n\n assertEmpty(rest);\n\n return (\n <div className={cn(className, \"animate-spin\")} ref={ref}>\n {/* Taken from Google Material Icons */}\n {/* https://fonts.google.com/icons?selected=Material+Symbols+Rounded:progress_activity:FILL@0;wght@400;GRAD@0;opsz@24&icon.query=load&icon.size=24&icon.color=%23e8eaed&icon.set=Material+Symbols&icon.style=Rounded&icon.platform=web */}\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"1em\"\n viewBox=\"0 -960 960 960\"\n width=\"1em\"\n fill=\"#e8eaed\"\n >\n <path d=\"M480-80q-82 0-155-31.5t-127.5-86Q143-252 111.5-325T80-480q0-83 31.5-155.5t86-127Q252-817 325-848.5T480-880q17 0 28.5 11.5T520-840q0 17-11.5 28.5T480-800q-133 0-226.5 93.5T160-480q0 133 93.5 226.5T480-160q133 0 226.5-93.5T800-480q0-17 11.5-28.5T840-520q17 0 28.5 11.5T880-480q0 82-31.5 155t-86 127.5q-54.5 54.5-127 86T480-80Z\" />\n </svg>\n </div>\n );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { cn } from \"../lib/utils.js\";\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\n\nexport const ExtendButton = forwardRef<\n HTMLButtonElement,\n ComponentProps[\"TableHandle\"][\"ExtendButton\"]\n>((props, ref) => {\n const { className, children, onMouseDown, onClick, ...rest } = props;\n\n // false, because rest props can be added by shadcn when button is used as a trigger\n // assertEmpty in this case is only used at typescript level, not runtime level\n assertEmpty(rest, false);\n\n const ShadCNComponents = useShadCNComponentsContext()!;\n\n return (\n <ShadCNComponents.Button.Button\n variant={\"ghost\"}\n className={cn(\n className,\n \"h-full w-full p-0 text-gray-400\",\n className?.includes(\"extend-button-add-remove-columns\")\n ? \"ml-1\"\n : \"mt-1\",\n className?.includes(\"extend-button-editing\")\n ? \"bg-accent text-accent-foreground\"\n : \"\",\n )}\n ref={ref}\n onClick={onClick}\n onMouseDown={onMouseDown}\n {...rest}\n >\n {children}\n </ShadCNComponents.Button.Button>\n );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { cn } from \"../lib/utils.js\";\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\n\nexport const TableHandle = forwardRef<\n HTMLButtonElement,\n ComponentProps[\"TableHandle\"][\"Root\"]\n>((props, ref) => {\n const {\n className,\n children,\n draggable,\n onDragStart,\n onDragEnd,\n style,\n label,\n ...rest\n } = props;\n\n // false, because rest props can be added by shadcn when button is used as a trigger\n // assertEmpty in this case is only used at typescript level, not runtime level\n assertEmpty(rest, false);\n\n const ShadCNComponents = useShadCNComponentsContext()!;\n\n return (\n <ShadCNComponents.Button.Button\n variant={\"ghost\"}\n className={cn(className, \"h-fit w-fit p-0 text-gray-400\")}\n ref={ref}\n aria-label={label}\n draggable={draggable}\n onDragStart={onDragStart}\n onDragEnd={onDragEnd}\n style={style}\n {...rest}\n >\n {children}\n </ShadCNComponents.Button.Button>\n );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { cn } from \"../lib/utils.js\";\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\n\ntype ToolbarProps = ComponentProps[\"Generic\"][\"Toolbar\"][\"Root\"];\n\nexport const Toolbar = forwardRef<HTMLDivElement, ToolbarProps>(\n (props, ref) => {\n const {\n className,\n children,\n onMouseEnter,\n onMouseLeave,\n variant,\n ...rest\n } = props;\n\n assertEmpty(rest);\n\n const ShadCNComponents = useShadCNComponentsContext()!;\n\n return (\n <ShadCNComponents.Tooltip.TooltipProvider delayDuration={0}>\n <div\n className={cn(\n className,\n \"bg-popover text-popover-foreground flex h-fit gap-1 rounded-lg border p-1 shadow-md\",\n variant === \"action-toolbar\" ? \"w-fit\" : \"\",\n )}\n ref={ref}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n >\n {children}\n </div>\n </ShadCNComponents.Tooltip.TooltipProvider>\n );\n },\n);\n\ntype ToolbarButtonProps = ComponentProps[\"Generic\"][\"Toolbar\"][\"Button\"];\n\nexport const ToolbarButton = forwardRef<HTMLButtonElement, ToolbarButtonProps>(\n (props, ref) => {\n const {\n className,\n children,\n mainTooltip,\n secondaryTooltip,\n icon,\n isSelected,\n isDisabled,\n onClick,\n label,\n variant,\n ...rest\n } = props;\n\n // false, because rest props can be added by shadcn when button is used as a trigger\n // assertEmpty in this case is only used at typescript level, not runtime level\n assertEmpty(rest, false);\n\n const ShadCNComponents = useShadCNComponentsContext()!;\n\n const trigger =\n isSelected === undefined ? (\n <ShadCNComponents.Button.Button\n className={cn(\n className,\n variant === \"compact\" ? \"h-6 min-w-6 p-0\" : \"\",\n )}\n variant=\"ghost\"\n size={variant === \"compact\" ? \"sm\" : \"default\"}\n disabled={isDisabled}\n onClick={onClick}\n ref={ref}\n aria-label={label}\n {...rest}\n >\n {icon}\n {children}\n </ShadCNComponents.Button.Button>\n ) : (\n <ShadCNComponents.Toggle.Toggle\n className={cn(\n className,\n \"data-[state=open]:bg-accent data-[state=closed]:text-accent-foreground\",\n variant === \"compact\" ? \"h-6 min-w-6 p-0\" : \"\",\n )}\n size={variant === \"compact\" ? \"sm\" : \"default\"}\n aria-label={label}\n onClick={onClick}\n pressed={isSelected}\n disabled={isDisabled}\n data-state={isSelected ? \"on\" : \"off\"}\n data-disabled={isDisabled}\n ref={ref}\n {...rest}\n >\n {icon}\n {children}\n </ShadCNComponents.Toggle.Toggle>\n );\n\n return (\n <ShadCNComponents.Tooltip.Tooltip>\n <ShadCNComponents.Tooltip.TooltipTrigger asChild>\n {trigger}\n </ShadCNComponents.Tooltip.TooltipTrigger>\n <ShadCNComponents.Tooltip.TooltipContent\n className={\"flex flex-col items-center whitespace-pre-wrap\"}\n >\n <span>{mainTooltip}</span>\n {secondaryTooltip && <span>{secondaryTooltip}</span>}\n </ShadCNComponents.Tooltip.TooltipContent>\n </ShadCNComponents.Tooltip.Tooltip>\n );\n },\n);\n\nexport const ToolbarSelect = forwardRef<\n HTMLDivElement,\n ComponentProps[\"FormattingToolbar\"][\"Select\"]\n>((props, ref) => {\n const { className, items, isDisabled, ...rest } = props;\n\n assertEmpty(rest);\n\n const ShadCNComponents = useShadCNComponentsContext()!;\n\n // TODO?\n const SelectItemContent = (props: any) => (\n <div className={\"flex items-center gap-1\"}>\n {props.icon}\n {props.text}\n </div>\n );\n\n const selectedItem = items.filter((p) => p.isSelected)[0];\n\n if (!selectedItem) {\n return null;\n }\n\n return (\n <ShadCNComponents.Select.Select\n value={selectedItem.text}\n onValueChange={(value) =>\n items.find((item) => item.text === value)!.onClick?.()\n }\n disabled={isDisabled}\n >\n <ShadCNComponents.Select.SelectTrigger className={\"border-none\"}>\n <ShadCNComponents.Select.SelectValue />\n </ShadCNComponents.Select.SelectTrigger>\n <ShadCNComponents.Select.SelectContent className={className} ref={ref}>\n {items.map((item) => (\n <ShadCNComponents.Select.SelectItem\n disabled={item.isDisabled}\n key={item.text}\n value={item.text}\n >\n <SelectItemContent {...item} />\n </ShadCNComponents.Select.SelectItem>\n ))}\n </ShadCNComponents.Select.SelectContent>\n </ShadCNComponents.Select.Select>\n );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { cn } from \"../lib/utils.js\";\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\n\nexport const Card = forwardRef<\n HTMLDivElement,\n ComponentProps[\"Comments\"][\"Card\"]\n>((props, ref) => {\n const {\n className,\n children,\n selected,\n headerText,\n onFocus,\n onBlur,\n tabIndex,\n ...rest\n } = props;\n\n assertEmpty(rest);\n\n const ShadCNComponents = useShadCNComponentsContext()!;\n\n return (\n <ShadCNComponents.Card.Card\n className={cn(\n className,\n \"w-[300px]\",\n selected ? \"bg-accent text-accent-foreground\" : \"\",\n )}\n onFocus={onFocus}\n onBlur={onBlur}\n tabIndex={tabIndex}\n ref={ref}\n >\n {headerText && (\n <div className={\"px-4 pt-4 text-sm italic\"}>{headerText}</div>\n )}\n {children}\n </ShadCNComponents.Card.Card>\n );\n});\n\nexport const CardSection = forwardRef<\n HTMLDivElement,\n ComponentProps[\"Comments\"][\"CardSection\"]\n>((props, ref) => {\n const { className, children, ...rest } = props;\n\n assertEmpty(rest);\n\n return (\n <div\n className={cn(\n className,\n \"p-4\",\n className?.includes(\"thread-comments\")\n ? \"flex flex-col gap-6 border-b\"\n : \"\",\n )}\n ref={ref}\n >\n {children}\n </div>\n );\n});\n\nexport const ExpandSectionsPrompt = forwardRef<\n HTMLButtonElement,\n ComponentProps[\"Comments\"][\"ExpandSectionsPrompt\"]\n>((props, ref) => {\n const { className, children, ...rest } = props;\n\n assertEmpty(rest, false);\n\n const ShadCNComponents = useShadCNComponentsContext()!;\n\n return (\n <ShadCNComponents.Button.Button\n className={cn(\n className,\n \"text-foreground w-fit bg-transparent p-0 hover:bg-transparent\",\n )}\n ref={ref}\n >\n {children}\n </ShadCNComponents.Button.Button>\n );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport {\n ComponentProps,\n useDictionary,\n useFocusWithin,\n} from \"@blocknote/react\";\nimport { forwardRef, useState } from \"react\";\n\nimport { cn } from \"../lib/utils.js\";\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\n\nconst AuthorInfo = forwardRef<\n HTMLDivElement,\n Pick<\n ComponentProps[\"Comments\"][\"Comment\"],\n \"authorInfo\" | \"timeString\" | \"edited\"\n >\n>((props, _ref) => {\n const { authorInfo, timeString, edited, ...rest } = props;\n const dict = useDictionary();\n\n assertEmpty(rest, false);\n\n const ShadCNComponents = useShadCNComponentsContext()!;\n\n if (authorInfo === \"loading\") {\n return (\n <div className={\"flex flex-row flex-nowrap items-center gap-4\"}>\n <ShadCNComponents.Skeleton.Skeleton\n className={\"size-7 animate-pulse rounded-full bg-neutral-400\"}\n />\n <ShadCNComponents.Skeleton.Skeleton\n className={\"h-3 w-32 animate-pulse rounded-full bg-neutral-400\"}\n />\n </div>\n );\n }\n\n return (\n <div className={\"flex flex-row flex-nowrap items-center gap-4\"}>\n <ShadCNComponents.Avatar.Avatar>\n <ShadCNComponents.Avatar.AvatarImage\n src={authorInfo.avatarUrl}\n alt={authorInfo.username}\n className={\"h-7 rounded-full\"}\n />\n <ShadCNComponents.Avatar.AvatarFallback>\n {authorInfo.username[0]}\n </ShadCNComponents.Avatar.AvatarFallback>\n </ShadCNComponents.Avatar.Avatar>\n\n <div className={\"flex flex-row flex-nowrap items-center gap-2\"}>\n <span className={\"text-sm font-bold\"}>{authorInfo.username}</span>\n <span className={\"text-xs\"}>\n {timeString} {edited && `(${dict.comments.edited})`}\n </span>\n </div>\n </div>\n );\n});\n\nexport const Comment = forwardRef<\n HTMLDivElement,\n ComponentProps[\"Comments\"][\"Comment\"]\n>((props, ref) => {\n const {\n className,\n showActions,\n authorInfo,\n timeString,\n actions,\n edited,\n children,\n ...rest\n } = props;\n\n assertEmpty(rest);\n\n const [hovered, setHovered] = useState(false);\n const { focused, ref: focusRef } = useFocusWithin();\n\n const doShowActions =\n actions &&\n (showActions === true ||\n showActions === undefined ||\n (showActions === \"hover\" && hovered) ||\n focused);\n\n return (\n <div\n ref={ref}\n className={cn(className, \"relative flex flex-col gap-2\")}\n onMouseEnter={() => setHovered(true)}\n onMouseLeave={() => setHovered(false)}\n >\n {doShowActions ? (\n <div className={\"absolute right-0 top-0 z-10\"} ref={focusRef}>\n {actions}\n </div>\n ) : null}\n <AuthorInfo {...props} />\n {children}\n </div>\n );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport {\n ComponentProps,\n FormattingToolbar,\n FormattingToolbarController,\n getFormattingToolbarItems,\n useBlockNoteContext,\n} from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { BlockNoteView } from \"../BlockNoteView.js\";\nimport { cn } from \"../lib/utils.js\";\n\nexport const Editor = forwardRef<\n HTMLDivElement,\n ComponentProps[\"Comments\"][\"Editor\"]\n>((props, ref) => {\n const { className, onFocus, onBlur, autoFocus, editor, editable, ...rest } =\n props;\n\n assertEmpty(rest);\n\n const blockNoteContext = useBlockNoteContext();\n\n return (\n <BlockNoteView\n autoFocus={autoFocus}\n className={cn(className, \"\")}\n theme={blockNoteContext?.colorSchemePreference}\n editor={props.editor}\n sideMenu={false}\n slashMenu={false}\n tableHandles={false}\n filePanel={false}\n formattingToolbar={false}\n editable={editable}\n ref={ref}\n onFocus={onFocus}\n onBlur={onBlur}\n >\n <FormattingToolbarController\n formattingToolbar={CustomFormattingToolbar}\n />\n </BlockNoteView>\n );\n});\n\nconst CustomFormattingToolbar = () => {\n const items = getFormattingToolbarItems([]).filter(\n (el) => el.key !== \"nestBlockButton\" && el.key !== \"unnestBlockButton\",\n );\n return (\n <FormattingToolbar blockTypeSelectItems={[]}>{items}</FormattingToolbar>\n );\n};\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { cn } from \"../lib/utils.js\";\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\n\nexport const Badge = forwardRef<\n HTMLButtonElement,\n ComponentProps[\"Generic\"][\"Badge\"][\"Root\"]\n>((props, ref) => {\n const {\n className,\n text,\n icon,\n isSelected,\n mainTooltip,\n secondaryTooltip,\n onClick,\n onMouseEnter,\n ...rest\n } = props;\n\n assertEmpty(rest, false);\n\n const ShadCNComponents = useShadCNComponentsContext()!;\n\n const badge = (\n <ShadCNComponents.Button.Button\n variant={isSelected ? \"secondary\" : \"outline\"}\n className={cn(\n className,\n \"flex h-7 items-center gap-1 rounded-full px-2.5\",\n )}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n ref={ref}\n >\n <span>{icon}</span>\n <span>{text}</span>\n </ShadCNComponents.Button.Button>\n );\n\n if (!mainTooltip) {\n return badge;\n }\n\n return (\n <ShadCNComponents.Tooltip.Tooltip>\n <ShadCNComponents.Tooltip.TooltipTrigger asChild>\n {badge}\n </ShadCNComponents.Tooltip.TooltipTrigger>\n <ShadCNComponents.Tooltip.TooltipContent\n className={\"flex flex-col items-center whitespace-pre-wrap\"}\n >\n <span>{mainTooltip}</span>\n {secondaryTooltip && <span>{secondaryTooltip}</span>}\n </ShadCNComponents.Tooltip.TooltipContent>\n </ShadCNComponents.Tooltip.Tooltip>\n );\n});\n\nexport const BadgeGroup = forwardRef<\n HTMLDivElement,\n ComponentProps[\"Generic\"][\"Badge\"][\"Group\"]\n>((props, ref) => {\n const { className, children, ...rest } = props;\n\n assertEmpty(rest);\n\n const ShadCNComponents = useShadCNComponentsContext()!;\n\n return (\n <ShadCNComponents.Tooltip.TooltipProvider delayDuration={0}>\n <div\n className={cn(className, \"flex w-full flex-row flex-wrap gap-1\")}\n ref={ref}\n >\n {children}\n </div>\n </ShadCNComponents.Tooltip.TooltipProvider>\n );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\n\nexport const PanelButton = forwardRef<\n HTMLButtonElement,\n ComponentProps[\"FilePanel\"][\"Button\"]\n>((props, ref) => {\n const { className, children, onClick, label, ...rest } = props;\n\n assertEmpty(rest);\n\n const ShadCNComponents = useShadCNComponentsContext()!;\n\n return (\n <ShadCNComponents.Button.Button\n type={\"submit\"}\n className={className}\n aria-label={label}\n ref={ref}\n onClick={onClick}\n >\n {children}\n </ShadCNComponents.Button.Button>\n );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nimport { useShadCNComponentsContext } from \"../ShadCNComponentsContext.js\";\n\nexport const PanelFileInput = forwardRef<\n HTMLInputElement,\n ComponentProps[\"FilePanel\"][\"FileInput\"]\n>((props, ref) => {\n const { className, accept, value, placeholder, onChange, ...rest } = props;\n\n assertEmpty(rest);\n\n const ShadCNComponents = useShadCNComponentsContext()!;\n\n return (\n <ShadCNComponents.Input.Input\n type={\"file\"}\n className={className}\n ref={ref}\n accept={accept}\n value={value ? value.name : undefined}\n onChange={async (e) => onChange?.(e.target.files![0])}\n placeholder={placeholder}\n />\n );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps, elementOverflow, mergeRefs } from \"@blocknote/react\";\nimport { forwardRef, useEffect, useRef } from \"react\";\n\nimport { cn } from \"../../lib/utils.js\";\n\nexport const GridSuggestionMenuItem = forwardRef<\n HTMLDivElement,\n ComponentProps[\"GridSuggestionMenu\"][\"Item\"]\n>((props, ref) => {\n const { className, isSelected, onClick, item, id, ...rest } = props;\n\n assertEmpty(rest);\n\n const itemRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!itemRef.current || !isSelected) {\n return;\n }\n\n const overflow = elementOverflow(\n itemRef.current,\n document.querySelector(\".bn-grid-suggestion-menu\")!,\n );\n\n if (overflow === \"top\") {\n itemRef.current.scrollIntoView(true);\n } else if (overflow === \"bottom\") {\n itemRef.current.scrollIntoView(false);\n }\n }, [isSelected]);\n\n return (\n <div\n // Styles from ShadCN DropdownMenuItem component\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*=text-])]:text-muted-foreground outline-hidden relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm data-[disabled]:pointer-events-none data-[inset]:pl-8 data-[disabled]:opacity-50 [&_svg:not([class*=size-])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n \"hover:bg-accent hover:text-accent-foreground data-[variant=destructive]:hover:bg-destructive/10 dark:data-[variant=destructive]:hover:bg-destructive/20 data-[variant=destructive]:hover:text-destructive\",\n \"aria-selected:bg-accent aria-selected:text-accent-foreground data-[variant=destructive]:aria-selected:bg-destructive/10 dark:data-[variant=destructive]:aria-selected:bg-destructive/20 data-[variant=destructive]:aria-selected:text-destructive\",\n \"text-lg!\",\n className,\n )}\n ref={mergeRefs([ref, itemRef])}\n id={id}\n role=\"option\"\n onClick={onClick}\n aria-selected={isSelected || undefined}\n >\n {item.icon}\n </div>\n );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nexport const GridSuggestionMenuLoader = forwardRef<\n HTMLDivElement,\n ComponentProps[\"GridSuggestionMenu\"][\"Loader\"]\n>((props, ref) => {\n const {\n className,\n children, // unused, using \"dots\" instead\n columns,\n ...rest\n } = props;\n\n assertEmpty(rest);\n\n return (\n <div\n className={className}\n style={{ gridColumn: `1 / ${columns + 1}` }}\n ref={ref}\n >\n {children}\n </div>\n );\n});\n","import { Components } from \"@blocknote/react\";\n\nimport { Form } from \"./form/Form.js\";\nimport { TextInput } from \"./form/TextInput.js\";\nimport {\n Menu,\n MenuDivider,\n MenuDropdown,\n MenuItem,\n MenuLabel,\n MenuTrigger,\n} from \"./menu/Menu.js\";\nimport { MenuButton } from \"./menu/Button.js\";\nimport { Panel } from \"./panel/Panel.js\";\nimport { PanelTab } from \"./panel/PanelTab.js\";\nimport { PanelTextInput } from \"./panel/PanelTextInput.js\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"./popover/popover.js\";\nimport { SideMenu } from \"./sideMenu/SideMenu.js\";\nimport { SideMenuButton } from \"./sideMenu/SideMenuButton.js\";\nimport { GridSuggestionMenu } from \"./suggestionMenu/gridSuggestionMenu/GridSuggestionMenu.js\";\nimport { GridSuggestionMenuEmptyItem } from \"./suggestionMenu/gridSuggestionMenu/GridSuggestionMenuEmptyItem.js\";\nimport { SuggestionMenu } from \"./suggestionMenu/SuggestionMenu.js\";\nimport { SuggestionMenuEmptyItem } from \"./suggestionMenu/SuggestionMenuEmptyItem.js\";\nimport { SuggestionMenuItem } from \"./suggestionMenu/SuggestionMenuItem.js\";\nimport { SuggestionMenuLabel } from \"./suggestionMenu/SuggestionMenuLabel.js\";\nimport { SuggestionMenuLoader } from \"./suggestionMenu/SuggestionMenuLoader.js\";\nimport { ExtendButton } from \"./tableHandle/ExtendButton.js\";\nimport { TableHandle } from \"./tableHandle/TableHandle.js\";\nimport { Toolbar, ToolbarButton, ToolbarSelect } from \"./toolbar/Toolbar.js\";\nimport { Card, CardSection, ExpandSectionsPrompt } from \"./comments/Card.js\";\nimport { Comment } from \"./comments/Comment.js\";\nimport { Editor } from \"./comments/Editor.js\";\nimport { Badge, BadgeGroup } from \"./badge/Badge.js\";\n\nimport { PanelButton } from \"./panel/PanelButton.js\";\nimport { PanelFileInput } from \"./panel/PanelFileInput.js\";\nimport { GridSuggestionMenuItem } from \"./suggestionMenu/gridSuggestionMenu/GridSuggestionMenuItem.js\";\nimport { GridSuggestionMenuLoader } from \"./suggestionMenu/gridSuggestionMenu/GridSuggestionMenuLoader.js\";\n\nexport const components: Components = {\n FormattingToolbar: {\n Root: Toolbar,\n Button: ToolbarButton,\n Select: ToolbarSelect,\n },\n FilePanel: {\n Root: Panel,\n Button: PanelButton,\n FileInput: PanelFileInput,\n TabPanel: PanelTab,\n TextInput: PanelTextInput,\n },\n LinkToolbar: {\n Root: Toolbar,\n Button: ToolbarButton,\n Select: ToolbarSelect,\n },\n SideMenu: {\n Root: SideMenu,\n Button: SideMenuButton,\n },\n SuggestionMenu: {\n Root: SuggestionMenu,\n Item: SuggestionMenuItem,\n EmptyItem: SuggestionMenuEmptyItem,\n Label: SuggestionMenuLabel,\n Loader: SuggestionMenuLoader,\n },\n GridSuggestionMenu: {\n Root: GridSuggestionMenu,\n Item: GridSuggestionMenuItem,\n EmptyItem: GridSuggestionMenuEmptyItem,\n Loader: GridSuggestionMenuLoader,\n },\n TableHandle: {\n Root: TableHandle,\n ExtendButton: ExtendButton,\n },\n Comments: {\n Comment: Comment,\n Editor: Editor,\n Card: Card,\n CardSection: CardSection,\n ExpandSectionsPrompt: ExpandSectionsPrompt,\n },\n Generic: {\n Badge: {\n Root: Badge,\n Group: BadgeGroup,\n },\n Toolbar: {\n Root: Toolbar,\n Button: ToolbarButton,\n Select: ToolbarSelect,\n },\n Form: {\n Root: Form,\n TextInput: TextInput,\n },\n Menu: {\n Root: Menu,\n Trigger: MenuTrigger,\n Dropdown: MenuDropdown,\n Divider: MenuDivider,\n Label: MenuLabel,\n Item: MenuItem,\n Button: MenuButton,\n },\n Popover: {\n Root: Popover,\n Trigger: PopoverTrigger,\n Content: PopoverContent,\n },\n },\n};\n","import {\n BlockSchema,\n InlineContentSchema,\n mergeCSSClasses,\n StyleSchema,\n} from \"@blocknote/core\";\nimport { BlockNoteViewRaw, ComponentsContext } from \"@blocknote/react\";\nimport { useMemo } from \"react\";\n\nimport { components } from \"./components.js\";\nimport {\n ShadCNComponents,\n ShadCNComponentsContext,\n ShadCNDefaultComponents,\n} from \"./ShadCNComponentsContext.js\";\n\nimport \"./style.css\";\n\nexport const BlockNoteView = <\n BSchema extends BlockSchema,\n ISchema extends InlineContentSchema,\n SSchema extends StyleSchema,\n>(\n props: React.ComponentProps<\n typeof BlockNoteViewRaw<BSchema, ISchema, SSchema>\n > & {\n /**\n * (optional)Provide your own shadcn component overrides\n */\n shadCNComponents?: Partial<ShadCNComponents>;\n },\n) => {\n const { className, shadCNComponents, ...rest } = props;\n\n const componentsValue = useMemo(() => {\n return {\n ...ShadCNDefaultComponents,\n ...shadCNComponents,\n };\n }, [shadCNComponents]);\n\n return (\n <ShadCNComponentsContext.Provider value={componentsValue}>\n <ComponentsContext.Provider value={components}>\n <BlockNoteViewRaw\n className={mergeCSSClasses(\"bn-shadcn\", className || \"\")}\n {...rest}\n />\n </ComponentsContext.Provider>\n </ShadCNComponentsContext.Provider>\n );\n};\n"],"names":["cn","inputs","twMerge","clsx","Avatar","className","props","jsx","AvatarPrimitive","AvatarImage","AvatarFallback","badgeVariants","cva","Badge","variant","asChild","Comp","Slot","buttonVariants","Button","size","Card","CardContent","DropdownMenu","DropdownMenuPrimitive","DropdownMenuTrigger","DropdownMenuContent","sideOffset","DropdownMenuItem","inset","DropdownMenuCheckboxItem","children","checked","jsxs","CheckIcon","DropdownMenuLabel","DropdownMenuSeparator","DropdownMenuSub","DropdownMenuSubTrigger","ChevronRightIcon","DropdownMenuSubContent","Label","LabelPrimitive","Form","FormProvider","React","Input","type","Popover","PopoverPrimitive","PopoverTrigger","PopoverContent","align","Select","SelectPrimitive","SelectValue","SelectTrigger","ChevronDownIcon","SelectContent","position","SelectScrollUpButton","SelectScrollDownButton","SelectItem","ChevronUpIcon","Skeleton","Tabs","TabsPrimitive","TabsList","TabsTrigger","TabsContent","toggleVariants","Toggle","TogglePrimitive","TooltipProvider","delayDuration","TooltipPrimitive","Tooltip","TooltipTrigger","TooltipContent","ShadCNDefaultComponents","ShadCNAvatar","ShadCNAvatarFallback","ShadCNAvatarImage","ShadCNBadge","ShadCNButton","ShadCNCard","ShadCNCardContent","ShadCNDropdownMenu","ShadCNDropdownMenuCheckboxItem","ShadCNDropdownMenuContent","ShadCNDropdownMenuItem","ShadCNDropdownMenuLabel","ShadCNDropdownMenuSeparator","ShadCNDropdownMenuSub","ShadCNDropdownMenuSubContent","ShadCNDropdownMenuSubTrigger","ShadCNDropdownMenuTrigger","ShadCNForm","ShadCNInput","ShadCNLabel","ShadCNPopover","ShadCNPopoverContent","ShadCNPopoverTrigger","ShadCNSelect","ShadCNSelectContent","ShadCNSelectItem","ShadCNSelectTrigger","ShadCNSelectValue","ShadCNSkeleton","ShadCNTabs","ShadCNTabsContent","ShadCNTabsList","ShadCNTabsTrigger","ShadCNToggle","ShadCNTooltip","ShadCNTooltipContent","ShadCNTooltipProvider","ShadCNTooltipTrigger","ShadCNComponentsContext","createContext","useShadCNComponentsContext","useContext","rest","assertEmpty","ShadCNComponents","form","useForm","TextInput","forwardRef","ref","name","label","icon","value","autoFocus","placeholder","disabled","onKeyDown","onChange","onSubmit","autoComplete","rightSection","MenuTriggerWithPointerUp","e","event","Menu","onOpenChange","sub","MenuTrigger","useMemo","MenuDropdown","MenuItem","subTrigger","onClick","Fragment","ChevronRight","MenuDivider","MenuLabel","MenuButton","onDragEnd","onDragStart","draggable","Panel","tabs","defaultOpenTab","openTab","setOpenTab","loading","tab","PanelTab","PanelTextInput","opened","SideMenu","SideMenuButton","GridSuggestionMenu","id","columns","GridSuggestionMenuEmptyItem","SuggestionMenu","SuggestionMenuEmptyItem","SuggestionMenuItem","item","isSelected","itemRef","useRef","useEffect","overflow","elementOverflow","mergeRefs","SuggestionMenuLabel","SuggestionMenuLoader","ExtendButton","onMouseDown","TableHandle","style","Toolbar","onMouseEnter","onMouseLeave","ToolbarButton","mainTooltip","secondaryTooltip","isDisabled","trigger","ToolbarSelect","items","SelectItemContent","selectedItem","p","_b","_a","selected","headerText","onFocus","onBlur","tabIndex","CardSection","ExpandSectionsPrompt","AuthorInfo","_ref","authorInfo","timeString","edited","dict","useDictionary","Comment","showActions","actions","hovered","setHovered","useState","focused","focusRef","useFocusWithin","doShowActions","Editor","editor","editable","blockNoteContext","useBlockNoteContext","BlockNoteView","FormattingToolbarController","CustomFormattingToolbar","getFormattingToolbarItems","el","FormattingToolbar","text","badge","BadgeGroup","PanelButton","PanelFileInput","accept","GridSuggestionMenuItem","GridSuggestionMenuLoader","components","shadCNComponents","componentsValue","ComponentsContext","BlockNoteViewRaw","mergeCSSClasses"],"mappings":"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"}