{"version":3,"file":"blocknote-mantine.cjs","names":[],"sources":["../src/BlockNoteTheme.ts","../src/toolbar/ToolbarButton.tsx","../src/badge/Badge.tsx","../src/comments/Card.tsx","../src/comments/Comment.tsx","../src/comments/Editor.tsx","../src/form/TextInput.tsx","../src/menu/Menu.tsx","../src/menu/Button.tsx","../src/panel/Panel.tsx","../src/panel/PanelButton.tsx","../src/panel/PanelFileInput.tsx","../src/panel/PanelTab.tsx","../src/panel/PanelTextInput.tsx","../src/popover/Popover.tsx","../src/sideMenu/SideMenu.tsx","../src/sideMenu/SideMenuButton.tsx","../src/suggestionMenu/SuggestionMenu.tsx","../src/suggestionMenu/SuggestionMenuEmptyItem.tsx","../src/suggestionMenu/SuggestionMenuItem.tsx","../src/suggestionMenu/SuggestionMenuLabel.tsx","../src/suggestionMenu/SuggestionMenuLoader.tsx","../src/suggestionMenu/gridSuggestionMenu/GridSuggestionMenu.tsx","../src/suggestionMenu/gridSuggestionMenu/GridSuggestionMenuEmptyItem.tsx","../src/suggestionMenu/gridSuggestionMenu/GridSuggestionMenuItem.tsx","../src/suggestionMenu/gridSuggestionMenu/GridSuggestionMenuLoader.tsx","../src/tableHandle/ExtendButton.tsx","../src/tableHandle/TableHandle.tsx","../src/toolbar/Toolbar.tsx","../src/toolbar/ToolbarSelect.tsx","../src/components.tsx","../src/BlockNoteView.tsx","../src/defaultThemes.ts"],"sourcesContent":["export type CombinedColor = Partial<{\n  text: string;\n  background: string;\n}>;\n\nexport type ColorScheme = Partial<{\n  editor: CombinedColor;\n  menu: CombinedColor;\n  tooltip: CombinedColor;\n  hovered: CombinedColor;\n  selected: CombinedColor;\n  disabled: CombinedColor;\n  shadow: string;\n  border: string;\n  sideMenu: string;\n  highlights: Partial<{\n    gray: CombinedColor;\n    brown: CombinedColor;\n    red: CombinedColor;\n    orange: CombinedColor;\n    yellow: CombinedColor;\n    green: CombinedColor;\n    blue: CombinedColor;\n    purple: CombinedColor;\n    pink: CombinedColor;\n  }>;\n}>;\n\nexport type Theme = Partial<{\n  colors: ColorScheme;\n  borderRadius: number;\n  fontFamily: string;\n}>;\n\ntype NestedObject = { [key: string]: number | string | NestedObject };\n\nconst cssVariablesHelper = (\n  theme: Theme,\n  editorDOM: HTMLElement,\n  unset = false,\n) => {\n  const result: string[] = [];\n\n  function traverse(current: NestedObject, currentKey = \"--bn\") {\n    for (const key in current) {\n      const kebabCaseKey = key\n        .replace(/([a-z])([A-Z])/g, \"$1-$2\")\n        .toLowerCase();\n      const fullKey = `${currentKey}-${kebabCaseKey}`;\n\n      if (typeof current[key] !== \"object\") {\n        // Convert numbers to px\n        if (typeof current[key] === \"number\") {\n          current[key] = `${current[key]}px`;\n        }\n\n        if (unset) {\n          editorDOM.style.removeProperty(fullKey);\n        } else {\n          editorDOM.style.setProperty(fullKey, current[key].toString());\n        }\n      } else {\n        traverse(current[key] as NestedObject, fullKey);\n      }\n    }\n  }\n\n  traverse(theme);\n\n  return result;\n};\n\nexport const applyBlockNoteCSSVariablesFromTheme = (\n  theme: Theme,\n  editorDOM: HTMLElement,\n) => cssVariablesHelper(theme, editorDOM);\n\n// We don't need a theme to remove the CSS variables, but having access to a\n// theme object allows us to use the same logic to set/unset them, so this\n// placeholder theme is used.\nconst placeholderTheme: Theme = {\n  colors: {\n    editor: {\n      text: undefined as any,\n      background: undefined as any,\n    },\n    menu: {\n      text: undefined as any,\n      background: undefined as any,\n    },\n    tooltip: {\n      text: undefined as any,\n      background: undefined as any,\n    },\n    hovered: {\n      text: undefined as any,\n      background: undefined as any,\n    },\n    selected: {\n      text: undefined as any,\n      background: undefined as any,\n    },\n    disabled: {\n      text: undefined as any,\n      background: undefined as any,\n    },\n    shadow: undefined as any,\n    border: undefined as any,\n    sideMenu: undefined as any,\n    highlights: {\n      gray: {\n        text: undefined as any,\n        background: undefined as any,\n      },\n      brown: {\n        text: undefined as any,\n        background: undefined as any,\n      },\n      red: {\n        text: undefined as any,\n        background: undefined as any,\n      },\n      orange: {\n        text: undefined as any,\n        background: undefined as any,\n      },\n      yellow: {\n        text: undefined as any,\n        background: undefined as any,\n      },\n      green: {\n        text: undefined as any,\n        background: undefined as any,\n      },\n      blue: {\n        text: undefined as any,\n        background: undefined as any,\n      },\n      purple: {\n        text: undefined as any,\n        background: undefined as any,\n      },\n      pink: {\n        text: undefined as any,\n        background: undefined as any,\n      },\n    },\n  },\n  borderRadius: undefined as any,\n  fontFamily: undefined as any,\n};\nexport const removeBlockNoteCSSVariables = (editorDOM: HTMLElement) =>\n  cssVariablesHelper(placeholderTheme, editorDOM, true);\n","import {\n  ActionIcon as MantineActionIcon,\n  Button as MantineButton,\n  Stack as MantineStack,\n  Text as MantineText,\n  Tooltip as MantineTooltip,\n} from \"@mantine/core\";\n\nimport { assertEmpty, isSafari } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef, useState } from \"react\";\n\nexport const TooltipContent = (props: {\n  mainTooltip: string;\n  secondaryTooltip?: string;\n}) => (\n  <MantineStack gap={0} className={\"bn-tooltip\"}>\n    <MantineText size={\"sm\"} lineClamp={5}>\n      {props.mainTooltip}\n    </MantineText>\n    {props.secondaryTooltip && (\n      <MantineText size={\"xs\"} lineClamp={5}>\n        {props.secondaryTooltip}\n      </MantineText>\n    )}\n  </MantineStack>\n);\n\ntype ToolbarButtonProps = ComponentProps[\"Generic\"][\"Toolbar\"][\"Button\"];\n\n/**\n * Helper for basic buttons that show in the formatting toolbar.\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 mantine 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 [hideTooltip, setHideTooltip] = useState(false);\n\n    const button = children ? (\n      <MantineButton\n        aria-label={label}\n        className={className}\n        // Needed as Safari doesn't focus button elements on mouse down\n        // unlike other browsers.\n        onMouseDown={(e) => {\n          if (isSafari()) {\n            (e.currentTarget as HTMLButtonElement).focus();\n          }\n        }}\n        onClick={(event) => {\n          setHideTooltip(true);\n          onClick?.(event);\n        }}\n        // Mantine Menu.Target elements block mouseleave events for some reason,\n        // but pointerleave events work fine.\n        onPointerLeave={() => setHideTooltip(false)}\n        aria-pressed={isSelected}\n        data-selected={isSelected || undefined}\n        data-test={\n          mainTooltip\n            ? mainTooltip.slice(0, 1).toLowerCase() +\n              mainTooltip.replace(/\\s+/g, \"\").slice(1)\n            : undefined\n        }\n        size={variant === \"compact\" ? \"compact-xs\" : \"xs\"}\n        disabled={isDisabled || false}\n        ref={ref}\n        {...rest}\n      >\n        {children}\n      </MantineButton>\n    ) : (\n      <MantineActionIcon\n        className={className}\n        aria-label={label}\n        // Needed as Safari doesn't focus button elements on mouse down\n        // unlike other browsers.\n        onMouseDown={(e) => {\n          if (isSafari()) {\n            (e.currentTarget as HTMLButtonElement).focus();\n          }\n        }}\n        onClick={(event) => {\n          // We manually hide the tooltip onclick, because the click event\n          // might open a popover which would then show both the tooltip and the popover\n          // this is similar to default behavior of shadcn / radix\n          setHideTooltip(true);\n          onClick?.(event);\n        }}\n        // Mantine Menu.Target elements block mouseleave events for some reason,\n        // but pointerleave events work fine.\n        onPointerLeave={() => setHideTooltip(false)}\n        aria-pressed={isSelected}\n        data-selected={isSelected || undefined}\n        data-test={\n          mainTooltip\n            ? mainTooltip.slice(0, 1).toLowerCase() +\n              mainTooltip.replace(/\\s+/g, \"\").slice(1)\n            : undefined\n        }\n        size={variant === \"compact\" ? 20 : 30}\n        disabled={isDisabled || false}\n        ref={ref}\n        {...rest}\n      >\n        {icon}\n      </MantineActionIcon>\n    );\n\n    if (!mainTooltip) {\n      return button;\n    }\n\n    return (\n      <MantineTooltip\n        disabled={hideTooltip}\n        withinPortal={false}\n        label={\n          <TooltipContent\n            mainTooltip={mainTooltip}\n            secondaryTooltip={secondaryTooltip}\n          />\n        }\n      >\n        {button}\n      </MantineTooltip>\n    );\n  },\n);\n","import {\n  Chip as MantineChip,\n  Group as MantineGroup,\n  Tooltip as MantineTooltip,\n} from \"@mantine/core\";\n\nimport { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { MouseEvent, forwardRef, useState } from \"react\";\n\nimport { TooltipContent } from \"../toolbar/ToolbarButton.js\";\n\nexport const Badge = forwardRef<\n  HTMLInputElement,\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  // false, because rest props can be added by mantine when chip 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 [hideTooltip, setHideTooltip] = useState(false);\n\n  const badge = (\n    <MantineChip\n      className={className}\n      checked={isSelected === true}\n      wrapperProps={{\n        onMouseEnter,\n        onMouseLeave: () => setHideTooltip(false),\n        onClick: (event: MouseEvent) => {\n          setHideTooltip(true);\n          onClick?.(event);\n        },\n      }}\n      variant={\"light\"}\n      icon={null}\n      ref={ref}\n    >\n      <span>{icon}</span>\n      <span>{text}</span>\n    </MantineChip>\n  );\n\n  if (!mainTooltip || hideTooltip) {\n    return badge;\n  }\n\n  return (\n    <MantineTooltip\n      refProp=\"rootRef\"\n      withinPortal={false}\n      label={\n        <TooltipContent\n          mainTooltip={mainTooltip}\n          secondaryTooltip={secondaryTooltip}\n        />\n      }\n    >\n      {badge}\n    </MantineTooltip>\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  return (\n    <MantineGroup className={className} ref={ref}>\n      {children}\n    </MantineGroup>\n  );\n});\n","import { assertEmpty, mergeCSSClasses } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport {\n  Card as MantineCard,\n  Divider as MantineDivider,\n  Text as MantineText,\n} from \"@mantine/core\";\nimport { forwardRef } from \"react\";\n\nexport const Card = forwardRef<\n  HTMLDivElement,\n  ComponentProps[\"Comments\"][\"Card\"]\n>((props, ref) => {\n  const {\n    className,\n    children,\n    headerText,\n    selected,\n    onFocus,\n    onBlur,\n    tabIndex,\n    ...rest\n  } = props;\n\n  assertEmpty(rest, false);\n\n  return (\n    <MantineCard\n      className={mergeCSSClasses(className, selected ? \"selected\" : \"\")}\n      onFocus={onFocus}\n      onBlur={onBlur}\n      tabIndex={tabIndex}\n      ref={ref}\n    >\n      {headerText && (\n        <MantineText className={\"bn-header-text\"}>{headerText}</MantineText>\n      )}\n      {children}\n    </MantineCard>\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, false);\n\n  return (\n    <MantineCard.Section className={className} ref={ref}>\n      {children}\n    </MantineCard.Section>\n  );\n});\n\nexport const ExpandSectionsPrompt = forwardRef<\n  HTMLDivElement,\n  ComponentProps[\"Comments\"][\"ExpandSectionsPrompt\"]\n>((props, ref) => {\n  const { className, children, ...rest } = props;\n\n  assertEmpty(rest, false);\n\n  return (\n    <MantineDivider\n      className={className}\n      label={<MantineText>{children}</MantineText>}\n      ref={ref}\n    />\n  );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps, mergeRefs, useDictionary } from \"@blocknote/react\";\nimport { Avatar, Group, Skeleton, Text } from \"@mantine/core\";\nimport { useHover } from \"@mantine/hooks\";\nimport { forwardRef } from \"react\";\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  if (authorInfo === \"loading\") {\n    return (\n      <Group>\n        <Skeleton height={24} width={24} />\n        <div>\n          <Skeleton height={12} width={100} />\n        </div>\n      </Group>\n    );\n  }\n\n  return (\n    <Group>\n      <Avatar\n        src={authorInfo.avatarUrl}\n        alt={authorInfo.username}\n        radius=\"xl\"\n        size=\"sm\"\n        // name={authorInfo.username} TODO: upgrade mantine?\n        color=\"initials\"\n      />\n\n      <Text fz=\"sm\" fw={\"bold\"}>\n        {authorInfo.username}\n        <Text fz=\"xs\" c=\"dimmed\" span ml={\"xs\"}>\n          {timeString} {edited && `(${dict.comments.edited})`}\n        </Text>\n      </Text>\n    </Group>\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    edited,\n    actions,\n    emojiPickerOpen,\n    children,\n    ...rest\n  } = props;\n\n  const { hovered, ref: hoverRef } = useHover();\n  const mergedRef = mergeRefs([ref, hoverRef]);\n  assertEmpty(rest, false);\n\n  const doShowActions =\n    actions &&\n    (showActions === true ||\n      showActions === undefined ||\n      (showActions === \"hover\" && hovered) ||\n      emojiPickerOpen);\n\n  return (\n    <Group pos=\"relative\" ref={mergedRef} className={className}>\n      {doShowActions ? (\n        <Group\n          style={{\n            position: \"absolute\",\n            right: 0,\n            top: 0,\n            zIndex: 10,\n          }}\n        >\n          {actions}\n        </Group>\n      ) : null}\n      <AuthorInfo {...props} />\n      {children}\n    </Group>\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\";\nimport { BlockNoteView } from \"../BlockNoteView.js\";\n\nexport const Editor = forwardRef<\n  HTMLDivElement,\n  ComponentProps[\"Comments\"][\"Editor\"]\n>((props, ref) => {\n  const { className, autoFocus, onFocus, onBlur, editor, editable, ...rest } =\n    props;\n\n  assertEmpty(rest, false);\n\n  const blockNoteContext = useBlockNoteContext();\n\n  return (\n    <BlockNoteView\n      autoFocus={autoFocus}\n      className={className}\n      editor={props.editor}\n      sideMenu={false}\n      slashMenu={false}\n      tableHandles={false}\n      filePanel={false}\n      formattingToolbar={false}\n      editable={editable}\n      theme={blockNoteContext?.colorSchemePreference}\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 { TextInput as MantineTextInput } from \"@mantine/core\";\n\nimport { assertEmpty, mergeCSSClasses } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\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,\n    value,\n    autoFocus,\n    placeholder,\n    disabled,\n    onKeyDown,\n    onChange,\n    onSubmit,\n    autoComplete,\n    \"aria-activedescendant\": ariaActivedescendant,\n    rightSection,\n    ...rest\n  } = props;\n\n  assertEmpty(rest);\n\n  return (\n    <MantineTextInput\n      size={\"xs\"}\n      className={mergeCSSClasses(\n        className || \"\",\n        variant === \"large\" ? \"bn-mt-input-large\" : \"\",\n      )}\n      ref={ref}\n      name={name}\n      label={label}\n      leftSection={icon}\n      value={value}\n      autoFocus={autoFocus}\n      data-autofocus={autoFocus ? \"true\" : undefined}\n      rightSection={rightSection}\n      placeholder={placeholder}\n      disabled={disabled}\n      onKeyDown={onKeyDown}\n      onChange={onChange}\n      onSubmit={onSubmit}\n      autoComplete={autoComplete}\n      aria-activedescendant={ariaActivedescendant}\n    />\n  );\n});\n","import {\n  CheckIcon as MantineCheckIcon,\n  Menu as MantineMenu,\n} from \"@mantine/core\";\n\nimport { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { createContext, forwardRef, useContext } from \"react\";\n\nconst SubMenuContext = createContext<\n  | {\n      onMenuMouseOver: () => void;\n      onMenuMouseLeave: () => void;\n    }\n  | undefined\n>(undefined);\n\nexport const Menu = (props: ComponentProps[\"Generic\"][\"Menu\"][\"Root\"]) => {\n  const { children, onOpenChange, position, sub, ...rest } = props;\n\n  assertEmpty(rest);\n\n  if (sub) {\n    return (\n      <MantineMenu.Sub\n        transitionProps={{ duration: 250, exitDelay: 250 }}\n        withinPortal={false}\n        middlewares={{ flip: true, shift: true, inline: false, size: true }}\n        onChange={onOpenChange}\n        position={position}\n      >\n        {children}\n      </MantineMenu.Sub>\n    );\n  }\n\n  return (\n    <MantineMenu\n      withinPortal={false}\n      middlewares={{ flip: true, shift: true, inline: false, size: true }}\n      onChange={onOpenChange}\n      position={position}\n      returnFocus={false}\n    >\n      {children}\n    </MantineMenu>\n  );\n};\n\nexport const MenuItem = forwardRef<\n  HTMLButtonElement & HTMLDivElement,\n  ComponentProps[\"Generic\"][\"Menu\"][\"Item\"]\n>((props, ref) => {\n  const { className, children, icon, checked, subTrigger, onClick, ...rest } =\n    props;\n\n  // false, because rest props can be added by mantine 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  if (subTrigger) {\n    return (\n      <MantineMenu.Sub.Item\n        className={className}\n        ref={ref}\n        leftSection={icon}\n        rightSection={\n          checked ? (\n            <MantineCheckIcon size={10} />\n          ) : checked === false ? (\n            <div className={\"bn-tick-space\"} />\n          ) : null\n        }\n        onClick={onClick}\n        {...rest}\n      >\n        {children}\n      </MantineMenu.Sub.Item>\n    );\n  }\n\n  return (\n    <MantineMenu.Item\n      className={className}\n      ref={ref}\n      leftSection={icon}\n      rightSection={\n        checked ? (\n          <MantineCheckIcon size={10} />\n        ) : checked === false ? (\n          <div className={\"bn-tick-space\"} />\n        ) : null\n      }\n      onClick={onClick}\n      {...rest}\n    >\n      {children}\n    </MantineMenu.Item>\n  );\n});\n\nexport const MenuTrigger = (\n  props: ComponentProps[\"Generic\"][\"Menu\"][\"Trigger\"],\n) => {\n  const {\n    children,\n    sub, // unused\n    ...rest\n  } = props;\n\n  assertEmpty(rest);\n\n  if (sub) {\n    return <MantineMenu.Sub.Target>{children}</MantineMenu.Sub.Target>;\n  }\n\n  return <MantineMenu.Target>{children}</MantineMenu.Target>;\n};\n\nexport const MenuDropdown = forwardRef<\n  HTMLDivElement,\n  ComponentProps[\"Generic\"][\"Menu\"][\"Dropdown\"]\n>((props, ref) => {\n  const {\n    className,\n    children,\n    sub, //unused\n    ...rest\n  } = props;\n\n  assertEmpty(rest);\n\n  const ctx = useContext(SubMenuContext);\n\n  if (sub) {\n    return (\n      <MantineMenu.Sub.Dropdown\n        className={className}\n        ref={ref}\n        onMouseOver={ctx?.onMenuMouseOver}\n        onMouseLeave={ctx?.onMenuMouseLeave}\n      >\n        {children}\n      </MantineMenu.Sub.Dropdown>\n    );\n  }\n\n  return (\n    <MantineMenu.Dropdown\n      className={className}\n      ref={ref}\n      onMouseOver={ctx?.onMenuMouseOver}\n      onMouseLeave={ctx?.onMenuMouseLeave}\n    >\n      {children}\n    </MantineMenu.Dropdown>\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  return <MantineMenu.Divider className={className} ref={ref} />;\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  return (\n    <MantineMenu.Label className={className} ref={ref}>\n      {children}\n    </MantineMenu.Label>\n  );\n});\n","import {\n  ActionIcon as MantineActionIcon,\n  Button as MantineButton,\n} from \"@mantine/core\";\n\nimport { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nexport const Button = 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 mantine 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  if (icon) {\n    return (\n      <MantineActionIcon\n        size={24}\n        className={className}\n        ref={ref}\n        onClick={onClick}\n        onDragEnd={onDragEnd}\n        onDragStart={onDragStart}\n        draggable={draggable}\n        aria-label={label}\n        {...rest}\n      >\n        {icon}\n      </MantineActionIcon>\n    );\n  }\n\n  return (\n    <MantineButton\n      className={className}\n      ref={ref}\n      onClick={onClick}\n      onDragEnd={onDragEnd}\n      onDragStart={onDragStart}\n      draggable={draggable}\n      aria-label={label}\n      {...rest}\n    >\n      {children}\n    </MantineButton>\n  );\n});\n","import {\n  Group as MantineGroup,\n  LoadingOverlay as MantineLoadingOverlay,\n  Tabs as MantineTabs,\n} from \"@mantine/core\";\n\nimport { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\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,\n    ...rest\n  } = props;\n\n  assertEmpty(rest);\n\n  return (\n    <MantineGroup className={className} ref={ref}>\n      <MantineTabs\n        value={openTab}\n        defaultValue={defaultOpenTab}\n        onChange={setOpenTab as any}\n      >\n        {loading && <MantineLoadingOverlay visible={loading} />}\n\n        <MantineTabs.List>\n          {tabs.map((tab) => (\n            <MantineTabs.Tab\n              data-test={`${tab.name.toLowerCase()}-tab`}\n              value={tab.name}\n              key={tab.name}\n            >\n              {tab.name}\n            </MantineTabs.Tab>\n          ))}\n        </MantineTabs.List>\n\n        {tabs.map((tab) => (\n          <MantineTabs.Panel value={tab.name} key={tab.name}>\n            {tab.tabPanel}\n          </MantineTabs.Panel>\n        ))}\n      </MantineTabs>\n    </MantineGroup>\n  );\n});\n","import { Button as MantineButton } from \"@mantine/core\";\n\nimport { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\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  return (\n    <MantineButton\n      size={\"xs\"}\n      aria-label={label}\n      className={className}\n      ref={ref}\n      onClick={onClick}\n      {...rest}\n    >\n      {children}\n    </MantineButton>\n  );\n});\n","import { FileInput as MantineFileInput } from \"@mantine/core\";\n\nimport { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nexport const PanelFileInput = forwardRef<\n  HTMLButtonElement,\n  ComponentProps[\"FilePanel\"][\"FileInput\"]\n>((props, ref) => {\n  const { className, accept, value, placeholder, onChange, ...rest } = props;\n\n  assertEmpty(rest);\n\n  return (\n    <MantineFileInput\n      size={\"xs\"}\n      className={className}\n      ref={ref}\n      accept={accept}\n      value={value}\n      placeholder={placeholder}\n      onChange={onChange}\n      {...rest}\n    />\n  );\n});\n","import { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\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 className={className} ref={ref}>\n      {children}\n    </div>\n  );\n});\n","import { TextInput as MantineTextInput } from \"@mantine/core\";\n\nimport { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\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  return (\n    <MantineTextInput\n      size={\"xs\"}\n      data-test={\"embed-input\"}\n      className={className}\n      ref={ref}\n      value={value}\n      placeholder={placeholder}\n      onKeyDown={onKeyDown}\n      onChange={onChange}\n    />\n  );\n});\n","import {\n  Popover as MantinePopover,\n  PopoverDropdown as MantinePopoverDropdown,\n  PopoverTarget as MantinePopoverTarget,\n} from \"@mantine/core\";\n\nimport { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nexport const Popover = (\n  props: ComponentProps[\"Generic\"][\"Popover\"][\"Root\"],\n) => {\n  const { open, onOpenChange, position, portalRoot, children, ...rest } = props;\n\n  assertEmpty(rest);\n\n  return (\n    <MantinePopover\n      middlewares={{ size: { padding: 20 } }}\n      withinPortal={!!portalRoot}\n      portalProps={portalRoot ? { target: portalRoot } : undefined}\n      opened={open}\n      onChange={onOpenChange}\n      position={position}\n    >\n      {children}\n    </MantinePopover>\n  );\n};\n\nexport const PopoverTrigger = (\n  props: ComponentProps[\"Generic\"][\"Popover\"][\"Trigger\"],\n) => {\n  const { children, ...rest } = props;\n\n  assertEmpty(rest);\n\n  return <MantinePopoverTarget>{children}</MantinePopoverTarget>;\n};\n\nexport const PopoverContent = forwardRef<\n  HTMLDivElement,\n  ComponentProps[\"Generic\"][\"Popover\"][\"Content\"]\n>((props, ref) => {\n  const {\n    className,\n    children,\n    variant, // unused\n    ...rest\n  } = props;\n\n  assertEmpty(rest);\n\n  return (\n    <MantinePopoverDropdown className={className} ref={ref}>\n      {children}\n    </MantinePopoverDropdown>\n  );\n});\n","import { Group as MantineGroup } from \"@mantine/core\";\n\nimport { 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    <MantineGroup\n      align={\"center\"}\n      gap={0}\n      className={className}\n      ref={ref}\n      {...rest}\n    >\n      {children}\n    </MantineGroup>\n  );\n});\n","import {\n  ActionIcon as MantineActionIcon,\n  Button as MantineButton,\n} from \"@mantine/core\";\n\nimport { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\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 mantine 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  if (icon) {\n    return (\n      <MantineActionIcon\n        size={24}\n        className={className}\n        ref={ref}\n        onClick={onClick}\n        onDragEnd={onDragEnd}\n        onDragStart={onDragStart}\n        draggable={draggable}\n        aria-label={label}\n        {...rest}\n      >\n        {icon}\n      </MantineActionIcon>\n    );\n  }\n\n  return (\n    <MantineButton\n      className={className}\n      ref={ref}\n      onClick={onClick}\n      onDragEnd={onDragEnd}\n      onDragStart={onDragStart}\n      draggable={draggable}\n      aria-label={label}\n      {...rest}\n    >\n      {children}\n    </MantineButton>\n  );\n});\n","import { Stack as MantineStack } from \"@mantine/core\";\n\nimport { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\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    <MantineStack\n      gap={0}\n      className={className}\n      ref={ref}\n      id={id}\n      role=\"listbox\"\n    >\n      {children}\n    </MantineStack>\n  );\n});\n","import { Group as MantineGroup } from \"@mantine/core\";\n\nimport { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\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    <MantineGroup className={className} ref={ref}>\n      <MantineGroup className=\"bn-mt-suggestion-menu-item-title\">\n        {children}\n      </MantineGroup>\n    </MantineGroup>\n  );\n});\n","import {\n  Badge as MantineBadge,\n  Group as MantineGroup,\n  Stack as MantineStack,\n  Text as MantineText,\n} from \"@mantine/core\";\nimport { mergeRefs } from \"@mantine/hooks\";\n\nimport { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps, elementOverflow } from \"@blocknote/react\";\nimport { forwardRef, useEffect, useRef } from \"react\";\n\nexport const SuggestionMenuItem = forwardRef<\n  HTMLDivElement,\n  ComponentProps[\"SuggestionMenu\"][\"Item\"]\n>((props, ref) => {\n  const { className, isSelected, onClick, item, id, ...rest } = props;\n\n  assertEmpty(rest);\n\n  const itemRef = useRef<HTMLDivElement>(null);\n\n  useEffect(() => {\n    if (!itemRef.current || !isSelected) {\n      return;\n    }\n\n    const overflow = elementOverflow(\n      itemRef.current,\n      itemRef.current.closest(\".bn-suggestion-menu, #ai-suggestion-menu\")!,\n    );\n\n    if (overflow !== \"none\") {\n      itemRef.current.scrollIntoView({ block: \"nearest\" });\n    }\n  }, [isSelected]);\n\n  return (\n    <MantineGroup\n      gap={0}\n      className={className}\n      ref={mergeRefs(ref, itemRef)}\n      id={id}\n      role=\"option\"\n      onMouseDown={(event) => event.preventDefault()}\n      onClick={onClick}\n      aria-selected={isSelected || undefined}\n    >\n      {item.icon && (\n        <MantineGroup\n          className=\"bn-mt-suggestion-menu-item-section\"\n          data-position=\"left\"\n        >\n          {item.icon}\n        </MantineGroup>\n      )}\n      <MantineStack gap={0} className=\"bn-mt-suggestion-menu-item-body\">\n        <MantineText className=\"bn-mt-suggestion-menu-item-title\">\n          {item.title}\n        </MantineText>\n        <MantineText className=\"bn-mt-suggestion-menu-item-subtitle\">\n          {item.subtext}\n        </MantineText>\n      </MantineStack>\n      {item.badge && (\n        <MantineGroup\n          data-position=\"right\"\n          className=\"bn-mt-suggestion-menu-item-section\"\n        >\n          <MantineBadge size={\"xs\"}>{item.badge}</MantineBadge>\n        </MantineGroup>\n      )}\n    </MantineGroup>\n  );\n});\n","import { Group as MantineGroup } from \"@mantine/core\";\n\nimport { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\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    <MantineGroup className={className} ref={ref}>\n      {children}\n    </MantineGroup>\n  );\n});\n","import { Loader as MantineLoader } from \"@mantine/core\";\n\nimport { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\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 ref={ref}>\n      <MantineLoader className={className} type=\"dots\" size={16} />\n    </div>\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 { Group as MantineGroup } from \"@mantine/core\";\n\nimport { 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    <MantineGroup\n      className={className}\n      style={{ gridColumn: `1 / ${columns + 1}` }}\n      ref={ref}\n    >\n      <MantineGroup className=\"bn-mt-suggestion-menu-item-title\">\n        {children}\n      </MantineGroup>\n    </MantineGroup>\n  );\n});\n","import { mergeRefs } from \"@mantine/hooks\";\n\nimport { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps, elementOverflow } 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      itemRef.current.closest(\".bn-grid-suggestion-menu\")!,\n    );\n\n    if (overflow !== \"none\") {\n      itemRef.current.scrollIntoView({ block: \"nearest\" });\n    }\n  }, [isSelected]);\n\n  return (\n    <div\n      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 { Loader as MantineLoader } from \"@mantine/core\";\n\nimport { 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 style={{ gridColumn: `1 / ${columns + 1}` }} ref={ref}>\n      <MantineLoader className={className} type=\"dots\" />\n    </div>\n  );\n});\n","import { Button as MantineButton } from \"@mantine/core\";\n\nimport { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\n\nexport const ExtendButton = forwardRef<\n  HTMLButtonElement,\n  ComponentProps[\"TableHandle\"][\"ExtendButton\"]\n>((props, ref) => {\n  const { children, className, onMouseDown, onClick, ...rest } = props;\n\n  // false, because rest props can be added by mantine 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  return (\n    <MantineButton\n      className={className}\n      ref={ref}\n      onMouseDown={onMouseDown}\n      onClick={onClick}\n      {...rest}\n    >\n      {children}\n    </MantineButton>\n  );\n});\n","import { Button as MantineButton } from \"@mantine/core\";\n\nimport { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\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 mantine 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  return (\n    <MantineButton\n      className={className}\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    </MantineButton>\n  );\n});\n","import { Flex } from \"@mantine/core\";\n\nimport { assertEmpty } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { mergeRefs, useFocusTrap, useFocusWithin } from \"@mantine/hooks\";\nimport { forwardRef } from \"react\";\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    // use a focus trap so that tab cycles through toolbar buttons, but only if focus is within the toolbar\n    const { ref: focusRef, focused } = useFocusWithin();\n\n    const trapRef = useFocusTrap(focused);\n\n    const combinedRef = mergeRefs(ref, focusRef, trapRef);\n\n    return (\n      <Flex\n        className={className}\n        ref={combinedRef}\n        role=\"toolbar\"\n        // TODO: aria-label\n        onMouseEnter={onMouseEnter}\n        onMouseLeave={onMouseLeave}\n        gap={variant === \"action-toolbar\" ? 2 : undefined}\n      >\n        {children}\n      </Flex>\n    );\n  },\n);\n","import {\n  Button as MantineButton,\n  CheckIcon as MantineCheckIcon,\n  Menu as MantineMenu,\n} from \"@mantine/core\";\n\nimport { assertEmpty, isSafari } from \"@blocknote/core\";\nimport { ComponentProps } from \"@blocknote/react\";\nimport { forwardRef } from \"react\";\nimport { HiChevronDown } from \"react-icons/hi\";\n\n// TODO: Turn into select?\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 selectedItem = items.filter((p) => p.isSelected)[0];\n\n  if (!selectedItem) {\n    return null;\n  }\n\n  return (\n    <MantineMenu\n      withinPortal={false}\n      transitionProps={{\n        exitDuration: 0,\n      }}\n      disabled={isDisabled}\n      middlewares={{ flip: true, shift: true, inline: false, size: true }}\n    >\n      <MantineMenu.Target>\n        <MantineButton\n          // Needed as Safari doesn't focus button elements on mouse down\n          // unlike other browsers.\n          onMouseDown={(e) => {\n            if (isSafari()) {\n              (e.currentTarget as HTMLButtonElement).focus();\n            }\n          }}\n          leftSection={selectedItem.icon}\n          rightSection={<HiChevronDown />}\n          size={\"xs\"}\n          variant={\"subtle\"}\n          disabled={isDisabled}\n        >\n          {selectedItem.text}\n        </MantineButton>\n      </MantineMenu.Target>\n      <MantineMenu.Dropdown className={className} ref={ref}>\n        {items.map((item) => (\n          <MantineMenu.Item\n            key={item.text}\n            onClick={item.onClick}\n            leftSection={item.icon}\n            rightSection={\n              item.isSelected ? (\n                <MantineCheckIcon size={10} className={\"bn-tick-icon\"} />\n              ) : (\n                // Ensures space for tick even if item isn't currently selected.\n                <div className={\"bn-tick-space\"} />\n              )\n            }\n            disabled={item.isDisabled}\n          >\n            {item.text}\n          </MantineMenu.Item>\n        ))}\n      </MantineMenu.Dropdown>\n    </MantineMenu>\n  );\n});\n","import { Components } from \"@blocknote/react\";\nimport { Badge, BadgeGroup } from \"./badge/Badge.js\";\nimport { Card, CardSection, ExpandSectionsPrompt } from \"./comments/Card.js\";\nimport { Comment } from \"./comments/Comment.js\";\nimport { Editor } from \"./comments/Editor.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 { Button } from \"./menu/Button.js\";\nimport { Panel } from \"./panel/Panel.js\";\nimport { PanelButton } from \"./panel/PanelButton.js\";\nimport { PanelFileInput } from \"./panel/PanelFileInput.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 { 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 { GridSuggestionMenu } from \"./suggestionMenu/gridSuggestionMenu/GridSuggestionMenu.js\";\nimport { GridSuggestionMenuEmptyItem } from \"./suggestionMenu/gridSuggestionMenu/GridSuggestionMenuEmptyItem.js\";\nimport { GridSuggestionMenuItem } from \"./suggestionMenu/gridSuggestionMenu/GridSuggestionMenuItem.js\";\nimport { GridSuggestionMenuLoader } from \"./suggestionMenu/gridSuggestionMenu/GridSuggestionMenuLoader.js\";\nimport { ExtendButton } from \"./tableHandle/ExtendButton.js\";\nimport { TableHandle } from \"./tableHandle/TableHandle.js\";\nimport { Toolbar } from \"./toolbar/Toolbar.js\";\nimport { ToolbarButton } from \"./toolbar/ToolbarButton.js\";\nimport { ToolbarSelect } from \"./toolbar/ToolbarSelect.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  GridSuggestionMenu: {\n    Root: GridSuggestionMenu,\n    Item: GridSuggestionMenuItem,\n    EmptyItem: GridSuggestionMenuEmptyItem,\n    Loader: GridSuggestionMenuLoader,\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  TableHandle: {\n    Root: TableHandle,\n    ExtendButton: ExtendButton,\n  },\n  Generic: {\n    Badge: {\n      Root: Badge,\n      Group: BadgeGroup,\n    },\n    Form: {\n      Root: (props) => <div>{props.children}</div>,\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: Button,\n    },\n    Popover: {\n      Root: Popover,\n      Trigger: PopoverTrigger,\n      Content: PopoverContent,\n    },\n    Toolbar: {\n      Root: Toolbar,\n      Button: ToolbarButton,\n      Select: ToolbarSelect,\n    },\n  },\n  Comments: {\n    Comment,\n    Editor,\n    Card,\n    CardSection,\n    ExpandSectionsPrompt,\n  },\n};\n","import {\n  BlockSchema,\n  InlineContentSchema,\n  mergeCSSClasses,\n  StyleSchema,\n} from \"@blocknote/core\";\nimport {\n  BlockNoteViewRaw,\n  ComponentsContext,\n  useBlockNoteContext,\n  usePrefersColorScheme,\n} from \"@blocknote/react\";\nimport { MantineContext, MantineProvider } from \"@mantine/core\";\nimport React, { useCallback, useContext, useEffect } from \"react\";\nimport {\n  applyBlockNoteCSSVariablesFromTheme,\n  removeBlockNoteCSSVariables,\n  Theme,\n} from \"./BlockNoteTheme.js\";\nimport { components } from \"./components.js\";\n\nexport const BlockNoteView = <\n  BSchema extends BlockSchema,\n  ISchema extends InlineContentSchema,\n  SSchema extends StyleSchema,\n>(\n  props: Omit<\n    React.ComponentProps<typeof BlockNoteViewRaw<BSchema, ISchema, SSchema>>,\n    \"theme\"\n  > & {\n    theme?:\n      | \"light\"\n      | \"dark\"\n      | Theme\n      | {\n          light: Theme;\n          dark: Theme;\n        };\n  },\n) => {\n  const { className, theme, editor, ...rest } = props;\n\n  const existingContext = useBlockNoteContext();\n  const systemColorScheme = usePrefersColorScheme();\n  const defaultColorScheme =\n    existingContext?.colorSchemePreference || systemColorScheme;\n\n  const finalTheme =\n    typeof theme === \"string\"\n      ? theme\n      : defaultColorScheme !== \"no-preference\"\n        ? defaultColorScheme\n        : \"light\";\n\n  const applyThemeVariables = useCallback(\n    (node: HTMLElement | null) => {\n      if (!node) {\n        return;\n      }\n\n      removeBlockNoteCSSVariables(node);\n\n      if (typeof theme === \"object\") {\n        if (\"light\" in theme && \"dark\" in theme) {\n          applyBlockNoteCSSVariablesFromTheme(\n            theme[defaultColorScheme === \"dark\" ? \"dark\" : \"light\"],\n            node,\n          );\n          return;\n        }\n\n        applyBlockNoteCSSVariablesFromTheme(theme, node);\n        return;\n      }\n    },\n    [defaultColorScheme, theme],\n  );\n\n  useEffect(() => {\n    if (!editor.portalElement) {\n      throw new Error(\"Portal element not found\");\n    }\n    editor.portalElement.setAttribute(\"data-mantine-color-scheme\", finalTheme);\n    applyThemeVariables(editor.portalElement);\n  }, [editor, applyThemeVariables, finalTheme]);\n\n  const mantineContext = useContext(MantineContext);\n\n  const view = (\n    <ComponentsContext.Provider value={components}>\n      <BlockNoteViewRaw\n        data-mantine-color-scheme={finalTheme}\n        className={mergeCSSClasses(\"bn-mantine\", className || \"\")}\n        theme={typeof theme === \"object\" ? undefined : theme}\n        editor={editor}\n        {...rest}\n        ref={applyThemeVariables}\n      />\n    </ComponentsContext.Provider>\n  );\n\n  if (mantineContext) {\n    return view;\n  }\n\n  return (\n    <MantineProvider\n      // By default, Mantine adds its CSS variables to the root. This disables\n      // that, as we instead set the variables on `.bn-mantine` in\n      // `mantineStyles.css`.\n      withCssVariables={false}\n      // This gets the element to set `data-mantine-color-scheme` on. This\n      // element needs to already be rendered, so we can't set it to the\n      // editor container element. Instead, we set it to `undefined` and set it\n      // manually in `BlockNoteViewRaw`.\n      getRootElement={() => undefined}\n    >\n      {view}\n    </MantineProvider>\n  );\n};\n","import { COLORS_DARK_MODE_DEFAULT, COLORS_DEFAULT } from \"@blocknote/core\";\nimport { Theme } from \"./BlockNoteTheme.js\";\n\nexport const defaultColorScheme = [\n  \"#FFFFFF\",\n  \"#EFEFEF\",\n  \"#CFCFCF\",\n  \"#AFAFAF\",\n  \"#7F7F7F\",\n  \"#3F3F3F\",\n  \"#1F1F1F\",\n  \"#161616\",\n  \"#0F0F0F\",\n  \"#000000\",\n];\n\nexport const lightDefaultTheme = {\n  colors: {\n    editor: {\n      text: defaultColorScheme[5],\n      background: defaultColorScheme[0],\n    },\n    menu: {\n      text: defaultColorScheme[5],\n      background: defaultColorScheme[0],\n    },\n    tooltip: {\n      text: defaultColorScheme[5],\n      background: defaultColorScheme[1],\n    },\n    hovered: {\n      text: defaultColorScheme[5],\n      background: defaultColorScheme[1],\n    },\n    selected: {\n      text: defaultColorScheme[0],\n      background: defaultColorScheme[5],\n    },\n    disabled: {\n      text: defaultColorScheme[3],\n      background: defaultColorScheme[1],\n    },\n    shadow: defaultColorScheme[2],\n    border: defaultColorScheme[1],\n    sideMenu: defaultColorScheme[2],\n    highlights: COLORS_DEFAULT,\n  },\n  borderRadius: 6,\n  fontFamily:\n    '\"Inter\", \"SF Pro Display\", -apple-system, BlinkMacSystemFont, \"Open Sans\", \"Segoe UI\", \"Roboto\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", sans-serif',\n} satisfies Theme;\n\nexport const darkDefaultTheme = {\n  colors: {\n    editor: {\n      text: defaultColorScheme[2],\n      background: defaultColorScheme[6],\n    },\n    menu: {\n      text: defaultColorScheme[2],\n      background: defaultColorScheme[6],\n    },\n    tooltip: {\n      text: defaultColorScheme[2],\n      background: defaultColorScheme[7],\n    },\n    hovered: {\n      text: defaultColorScheme[2],\n      background: defaultColorScheme[7],\n    },\n    selected: {\n      text: defaultColorScheme[2],\n      background: defaultColorScheme[8],\n    },\n    disabled: {\n      text: defaultColorScheme[5],\n      background: defaultColorScheme[7],\n    },\n    shadow: defaultColorScheme[8],\n    border: defaultColorScheme[7],\n    sideMenu: defaultColorScheme[4],\n    highlights: COLORS_DARK_MODE_DEFAULT,\n  },\n  borderRadius: lightDefaultTheme.borderRadius,\n  fontFamily: lightDefaultTheme.fontFamily,\n} satisfies Theme;\n"],"mappings":"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"}