@blocknote/mantine 0.49.0 → 0.51.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.
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let c=require(`@blocknote/core`),l=require(`@blocknote/react`),u=require(`@mantine/core`),d=require(`react`);d=s(d,1);let f=require(`react/jsx-runtime`),p=require(`@mantine/hooks`),m=require(`react-icons/hi`);var h=(e,t,n=!1)=>{let r=[];function i(e,r=`--bn`){for(let a in e){let o=`${r}-${a.replace(/([a-z])([A-Z])/g,`$1-$2`).toLowerCase()}`;typeof e[a]==`object`?i(e[a],o):(typeof e[a]==`number`&&(e[a]=`${e[a]}px`),n?t.style.removeProperty(o):t.style.setProperty(o,e[a].toString()))}}return i(e),r},g=(e,t)=>h(e,t),_={colors:{editor:{text:void 0,background:void 0},menu:{text:void 0,background:void 0},tooltip:{text:void 0,background:void 0},hovered:{text:void 0,background:void 0},selected:{text:void 0,background:void 0},disabled:{text:void 0,background:void 0},shadow:void 0,border:void 0,sideMenu:void 0,highlights:{gray:{text:void 0,background:void 0},brown:{text:void 0,background:void 0},red:{text:void 0,background:void 0},orange:{text:void 0,background:void 0},yellow:{text:void 0,background:void 0},green:{text:void 0,background:void 0},blue:{text:void 0,background:void 0},purple:{text:void 0,background:void 0},pink:{text:void 0,background:void 0}}},borderRadius:void 0,fontFamily:void 0},v=e=>h(_,e,!0),y=e=>(0,f.jsxs)(u.Stack,{gap:0,className:`bn-tooltip`,children:[(0,f.jsx)(u.Text,{size:`sm`,lineClamp:5,children:e.mainTooltip}),e.secondaryTooltip&&(0,f.jsx)(u.Text,{size:`xs`,lineClamp:5,children:e.secondaryTooltip})]}),b=(0,d.forwardRef)((e,t)=>{let{className:n,children:r,mainTooltip:i,secondaryTooltip:a,icon:o,isSelected:s,isDisabled:l,onClick:p,label:m,variant:h,...g}=e;(0,c.assertEmpty)(g,!1);let[_,v]=(0,d.useState)(!1),b=r?(0,f.jsx)(u.Button,{"aria-label":m,className:n,onMouseDown:e=>{(0,c.isSafari)()&&e.currentTarget.focus()},onClick:e=>{v(!0),p?.(e)},onPointerLeave:()=>v(!1),"aria-pressed":s,"data-selected":s||void 0,"data-test":i?i.slice(0,1).toLowerCase()+i.replace(/\s+/g,``).slice(1):void 0,size:h===`compact`?`compact-xs`:`xs`,disabled:l||!1,ref:t,...g,children:r}):(0,f.jsx)(u.ActionIcon,{className:n,"aria-label":m,onMouseDown:e=>{(0,c.isSafari)()&&e.currentTarget.focus()},onClick:e=>{v(!0),p?.(e)},onPointerLeave:()=>v(!1),"aria-pressed":s,"data-selected":s||void 0,"data-test":i?i.slice(0,1).toLowerCase()+i.replace(/\s+/g,``).slice(1):void 0,size:h===`compact`?20:30,disabled:l||!1,ref:t,...g,children:o});return i?(0,f.jsx)(u.Tooltip,{disabled:_,withinPortal:!1,label:(0,f.jsx)(y,{mainTooltip:i,secondaryTooltip:a}),children:b}):b}),ee=(0,d.forwardRef)((e,t)=>{let{className:n,text:r,icon:i,isSelected:a,mainTooltip:o,secondaryTooltip:s,onClick:l,onMouseEnter:p,...m}=e;(0,c.assertEmpty)(m,!1);let[h,g]=(0,d.useState)(!1),_=(0,f.jsxs)(u.Chip,{className:n,checked:a===!0,wrapperProps:{onMouseEnter:p,onMouseLeave:()=>g(!1),onClick:e=>{g(!0),l?.(e)}},variant:`light`,icon:null,ref:t,children:[(0,f.jsx)(`span`,{children:i}),(0,f.jsx)(`span`,{children:r})]});return!o||h?_:(0,f.jsx)(u.Tooltip,{refProp:`rootRef`,withinPortal:!1,label:(0,f.jsx)(y,{mainTooltip:o,secondaryTooltip:s}),children:_})}),te=(0,d.forwardRef)((e,t)=>{let{className:n,children:r,...i}=e;return(0,c.assertEmpty)(i),(0,f.jsx)(u.Group,{className:n,ref:t,children:r})}),ne=(0,d.forwardRef)((e,t)=>{let{className:n,children:r,headerText:i,selected:a,onFocus:o,onBlur:s,tabIndex:l,...d}=e;return(0,c.assertEmpty)(d,!1),(0,f.jsxs)(u.Card,{className:(0,c.mergeCSSClasses)(n,a?`selected`:``),onFocus:o,onBlur:s,tabIndex:l,ref:t,children:[i&&(0,f.jsx)(u.Text,{className:`bn-header-text`,children:i}),r]})}),re=(0,d.forwardRef)((e,t)=>{let{className:n,children:r,...i}=e;return(0,c.assertEmpty)(i,!1),(0,f.jsx)(u.Card.Section,{className:n,ref:t,children:r})}),ie=(0,d.forwardRef)((e,t)=>{let{className:n,children:r,...i}=e;return(0,c.assertEmpty)(i,!1),(0,f.jsx)(u.Divider,{className:n,label:(0,f.jsx)(u.Text,{children:r}),ref:t})}),x=(0,d.forwardRef)((e,t)=>{let{authorInfo:n,timeString:r,edited:i,...a}=e,o=(0,l.useDictionary)();return(0,c.assertEmpty)(a,!1),n===`loading`?(0,f.jsxs)(u.Group,{children:[(0,f.jsx)(u.Skeleton,{height:24,width:24}),(0,f.jsx)(`div`,{children:(0,f.jsx)(u.Skeleton,{height:12,width:100})})]}):(0,f.jsxs)(u.Group,{children:[(0,f.jsx)(u.Avatar,{src:n.avatarUrl,alt:n.username,radius:`xl`,size:`sm`,color:`initials`}),(0,f.jsxs)(u.Text,{fz:`sm`,fw:`bold`,children:[n.username,(0,f.jsxs)(u.Text,{fz:`xs`,c:`dimmed`,span:!0,ml:`xs`,children:[r,` `,i&&`(${o.comments.edited})`]})]})]})}),S=(0,d.forwardRef)((e,t)=>{let{className:n,showActions:r,authorInfo:i,timeString:a,edited:o,actions:s,emojiPickerOpen:d,children:m,...h}=e,{hovered:g,ref:_}=(0,p.useHover)(),v=(0,l.mergeRefs)([t,_]);return(0,c.assertEmpty)(h,!1),(0,f.jsxs)(u.Group,{pos:`relative`,ref:v,className:n,children:[s&&(r===!0||r===void 0||r===`hover`&&g||d)?(0,f.jsx)(u.Group,{style:{position:`absolute`,right:0,top:0,zIndex:10},children:s}):null,(0,f.jsx)(x,{...e}),m]})}),ae=(0,d.forwardRef)((e,t)=>{let{className:n,autoFocus:r,onFocus:i,onBlur:a,editor:o,editable:s,...u}=e;(0,c.assertEmpty)(u,!1);let d=(0,l.useBlockNoteContext)();return(0,f.jsx)(Z,{autoFocus:r,className:n,editor:e.editor,sideMenu:!1,slashMenu:!1,tableHandles:!1,filePanel:!1,formattingToolbar:!1,editable:s,theme:d?.colorSchemePreference,ref:t,onFocus:i,onBlur:a,children:(0,f.jsx)(l.FormattingToolbarController,{formattingToolbar:C})})}),C=()=>(0,f.jsx)(l.FormattingToolbar,{blockTypeSelectItems:[],children:(0,l.getFormattingToolbarItems)([]).filter(e=>e.key!==`nestBlockButton`&&e.key!==`unnestBlockButton`)}),w=(0,d.forwardRef)((e,t)=>{let{className:n,name:r,label:i,variant:a,icon:o,value:s,autoFocus:l,placeholder:d,disabled:p,onKeyDown:m,onChange:h,onSubmit:g,autoComplete:_,"aria-activedescendant":v,rightSection:y,...b}=e;return(0,c.assertEmpty)(b),(0,f.jsx)(u.TextInput,{size:`xs`,className:(0,c.mergeCSSClasses)(n||``,a===`large`?`bn-mt-input-large`:``),ref:t,name:r,label:i,leftSection:o,value:s,autoFocus:l,"data-autofocus":l?`true`:void 0,rightSection:y,placeholder:d,disabled:p,onKeyDown:m,onChange:h,onSubmit:g,autoComplete:_,"aria-activedescendant":v})}),T=(0,d.createContext)(void 0),E=e=>{let{children:t,onOpenChange:n,position:r,sub:i,...a}=e;return(0,c.assertEmpty)(a),i?(0,f.jsx)(u.Menu.Sub,{transitionProps:{duration:250,exitDelay:250},withinPortal:!1,middlewares:{flip:!0,shift:!0,inline:!1,size:!0},onChange:n,position:r,children:t}):(0,f.jsx)(u.Menu,{withinPortal:!1,middlewares:{flip:!0,shift:!0,inline:!1,size:!0},onChange:n,position:r,returnFocus:!1,children:t})},D=(0,d.forwardRef)((e,t)=>{let{className:n,children:r,icon:i,checked:a,subTrigger:o,onClick:s,...l}=e;return(0,c.assertEmpty)(l,!1),o?(0,f.jsx)(u.Menu.Sub.Item,{className:n,ref:t,leftSection:i,rightSection:a?(0,f.jsx)(u.CheckIcon,{size:10}):a===!1?(0,f.jsx)(`div`,{className:`bn-tick-space`}):null,onClick:s,...l,children:r}):(0,f.jsx)(u.Menu.Item,{className:n,ref:t,leftSection:i,rightSection:a?(0,f.jsx)(u.CheckIcon,{size:10}):a===!1?(0,f.jsx)(`div`,{className:`bn-tick-space`}):null,onClick:s,...l,children:r})}),O=e=>{let{children:t,sub:n,...r}=e;return(0,c.assertEmpty)(r),n?(0,f.jsx)(u.Menu.Sub.Target,{children:t}):(0,f.jsx)(u.Menu.Target,{children:t})},k=(0,d.forwardRef)((e,t)=>{let{className:n,children:r,sub:i,...a}=e;(0,c.assertEmpty)(a);let o=(0,d.useContext)(T);return i?(0,f.jsx)(u.Menu.Sub.Dropdown,{className:n,ref:t,onMouseOver:o?.onMenuMouseOver,onMouseLeave:o?.onMenuMouseLeave,children:r}):(0,f.jsx)(u.Menu.Dropdown,{className:n,ref:t,onMouseOver:o?.onMenuMouseOver,onMouseLeave:o?.onMenuMouseLeave,children:r})}),A=(0,d.forwardRef)((e,t)=>{let{className:n,...r}=e;return(0,c.assertEmpty)(r),(0,f.jsx)(u.Menu.Divider,{className:n,ref:t})}),j=(0,d.forwardRef)((e,t)=>{let{className:n,children:r,...i}=e;return(0,c.assertEmpty)(i),(0,f.jsx)(u.Menu.Label,{className:n,ref:t,children:r})}),M=(0,d.forwardRef)((e,t)=>{let{className:n,children:r,icon:i,onClick:a,onDragEnd:o,onDragStart:s,draggable:l,label:d,...p}=e;return(0,c.assertEmpty)(p,!1),i?(0,f.jsx)(u.ActionIcon,{size:24,className:n,ref:t,onClick:a,onDragEnd:o,onDragStart:s,draggable:l,"aria-label":d,...p,children:i}):(0,f.jsx)(u.Button,{className:n,ref:t,onClick:a,onDragEnd:o,onDragStart:s,draggable:l,"aria-label":d,...p,children:r})}),N=(0,d.forwardRef)((e,t)=>{let{className:n,tabs:r,defaultOpenTab:i,openTab:a,setOpenTab:o,loading:s,...l}=e;return(0,c.assertEmpty)(l),(0,f.jsx)(u.Group,{className:n,ref:t,children:(0,f.jsxs)(u.Tabs,{value:a,defaultValue:i,onChange:o,children:[s&&(0,f.jsx)(u.LoadingOverlay,{visible:s}),(0,f.jsx)(u.Tabs.List,{children:r.map(e=>(0,f.jsx)(u.Tabs.Tab,{"data-test":`${e.name.toLowerCase()}-tab`,value:e.name,children:e.name},e.name))}),r.map(e=>(0,f.jsx)(u.Tabs.Panel,{value:e.name,children:e.tabPanel},e.name))]})})}),P=(0,d.forwardRef)((e,t)=>{let{className:n,children:r,onClick:i,label:a,...o}=e;return(0,c.assertEmpty)(o),(0,f.jsx)(u.Button,{size:`xs`,"aria-label":a,className:n,ref:t,onClick:i,...o,children:r})}),F=(0,d.forwardRef)((e,t)=>{let{className:n,accept:r,value:i,placeholder:a,onChange:o,...s}=e;return(0,c.assertEmpty)(s),(0,f.jsx)(u.FileInput,{size:`xs`,className:n,ref:t,accept:r,value:i,placeholder:a,onChange:o,...s})}),I=(0,d.forwardRef)((e,t)=>{let{className:n,children:r,...i}=e;return(0,c.assertEmpty)(i),(0,f.jsx)(`div`,{className:n,ref:t,children:r})}),L=(0,d.forwardRef)((e,t)=>{let{className:n,value:r,placeholder:i,onKeyDown:a,onChange:o,...s}=e;return(0,c.assertEmpty)(s),(0,f.jsx)(u.TextInput,{size:`xs`,"data-test":`embed-input`,className:n,ref:t,value:r,placeholder:i,onKeyDown:a,onChange:o})}),oe=e=>{let{open:t,onOpenChange:n,position:r,portalRoot:i,children:a,...o}=e;return(0,c.assertEmpty)(o),(0,f.jsx)(u.Popover,{middlewares:{size:{padding:20}},withinPortal:!!i,portalProps:i?{target:i}:void 0,opened:t,onChange:n,position:r,children:a})},R=e=>{let{children:t,...n}=e;return(0,c.assertEmpty)(n),(0,f.jsx)(u.PopoverTarget,{children:t})},z=(0,d.forwardRef)((e,t)=>{let{className:n,children:r,variant:i,...a}=e;return(0,c.assertEmpty)(a),(0,f.jsx)(u.PopoverDropdown,{className:n,ref:t,children:r})}),B=(0,d.forwardRef)((e,t)=>{let{className:n,children:r,...i}=e;return(0,c.assertEmpty)(i,!1),(0,f.jsx)(u.Group,{align:`center`,gap:0,className:n,ref:t,...i,children:r})}),V=(0,d.forwardRef)((e,t)=>{let{className:n,children:r,icon:i,onClick:a,onDragEnd:o,onDragStart:s,draggable:l,label:d,...p}=e;return(0,c.assertEmpty)(p,!1),i?(0,f.jsx)(u.ActionIcon,{size:24,className:n,ref:t,onClick:a,onDragEnd:o,onDragStart:s,draggable:l,"aria-label":d,...p,children:i}):(0,f.jsx)(u.Button,{className:n,ref:t,onClick:a,onDragEnd:o,onDragStart:s,draggable:l,"aria-label":d,...p,children:r})}),H=(0,d.forwardRef)((e,t)=>{let{className:n,children:r,id:i,...a}=e;return(0,c.assertEmpty)(a),(0,f.jsx)(u.Stack,{gap:0,className:n,ref:t,id:i,role:`listbox`,children:r})}),U=(0,d.forwardRef)((e,t)=>{let{className:n,children:r,...i}=e;return(0,c.assertEmpty)(i),(0,f.jsx)(u.Group,{className:n,ref:t,children:(0,f.jsx)(u.Group,{className:`bn-mt-suggestion-menu-item-title`,children:r})})}),W=(0,d.forwardRef)((e,t)=>{let{className:n,isSelected:r,onClick:i,item:a,id:o,...s}=e;(0,c.assertEmpty)(s);let m=(0,d.useRef)(null);return(0,d.useEffect)(()=>{!m.current||!r||(0,l.elementOverflow)(m.current,m.current.closest(`.bn-suggestion-menu, #ai-suggestion-menu`))!==`none`&&m.current.scrollIntoView({block:`nearest`})},[r]),(0,f.jsxs)(u.Group,{gap:0,className:n,ref:(0,p.mergeRefs)(t,m),id:o,role:`option`,onMouseDown:e=>e.preventDefault(),onClick:i,"aria-selected":r||void 0,children:[a.icon&&(0,f.jsx)(u.Group,{className:`bn-mt-suggestion-menu-item-section`,"data-position":`left`,children:a.icon}),(0,f.jsxs)(u.Stack,{gap:0,className:`bn-mt-suggestion-menu-item-body`,children:[(0,f.jsx)(u.Text,{className:`bn-mt-suggestion-menu-item-title`,children:a.title}),(0,f.jsx)(u.Text,{className:`bn-mt-suggestion-menu-item-subtitle`,children:a.subtext})]}),a.badge&&(0,f.jsx)(u.Group,{"data-position":`right`,className:`bn-mt-suggestion-menu-item-section`,children:(0,f.jsx)(u.Badge,{size:`xs`,children:a.badge})})]})}),G=(0,d.forwardRef)((e,t)=>{let{className:n,children:r,...i}=e;return(0,c.assertEmpty)(i),(0,f.jsx)(u.Group,{className:n,ref:t,children:r})}),K=(0,d.forwardRef)((e,t)=>{let{className:n,...r}=e;return(0,c.assertEmpty)(r),(0,f.jsx)(u.Loader,{className:n,type:`dots`,size:16,ref:t})}),q=(0,d.forwardRef)((e,t)=>{let{className:n,children:r,id:i,columns:a,...o}=e;return(0,c.assertEmpty)(o),(0,f.jsx)(`div`,{className:n,style:{gridTemplateColumns:`repeat(${a}, 1fr)`},ref:t,id:i,role:`grid`,children:r})}),se=(0,d.forwardRef)((e,t)=>{let{className:n,children:r,columns:i,...a}=e;return(0,c.assertEmpty)(a),(0,f.jsx)(u.Group,{className:n,style:{gridColumn:`1 / ${i+1}`},ref:t,children:(0,f.jsx)(u.Group,{className:`bn-mt-suggestion-menu-item-title`,children:r})})}),ce=(0,d.forwardRef)((e,t)=>{let{className:n,isSelected:r,onClick:i,item:a,id:o,...s}=e;(0,c.assertEmpty)(s);let u=(0,d.useRef)(null);return(0,d.useEffect)(()=>{!u.current||!r||(0,l.elementOverflow)(u.current,u.current.closest(`.bn-grid-suggestion-menu`))!==`none`&&u.current.scrollIntoView({block:`nearest`})},[r]),(0,f.jsx)(`div`,{className:n,ref:(0,p.mergeRefs)(t,u),id:o,role:`option`,onClick:i,"aria-selected":r||void 0,children:a.icon})}),le=(0,d.forwardRef)((e,t)=>{let{className:n,children:r,columns:i,...a}=e;return(0,c.assertEmpty)(a),(0,f.jsx)(u.Loader,{className:n,style:{gridColumn:`1 / ${i+1}`},type:`dots`,ref:t})}),ue=(0,d.forwardRef)((e,t)=>{let{children:n,className:r,onMouseDown:i,onClick:a,...o}=e;return(0,c.assertEmpty)(o,!1),(0,f.jsx)(u.Button,{className:r,ref:t,onMouseDown:i,onClick:a,...o,children:n})}),de=(0,d.forwardRef)((e,t)=>{let{className:n,children:r,draggable:i,onDragStart:a,onDragEnd:o,style:s,label:l,...d}=e;return(0,c.assertEmpty)(d,!1),(0,f.jsx)(u.Button,{className:n,ref:t,"aria-label":l,draggable:i,onDragStart:a,onDragEnd:o,style:s,...d,children:r})}),J=(0,d.forwardRef)((e,t)=>{let{className:n,children:r,onMouseEnter:i,onMouseLeave:a,variant:o,...s}=e;(0,c.assertEmpty)(s);let{ref:l,focused:d}=(0,p.useFocusWithin)();return(0,f.jsx)(u.Flex,{className:n,ref:(0,p.mergeRefs)(t,l,(0,p.useFocusTrap)(d)),role:`toolbar`,onMouseEnter:i,onMouseLeave:a,gap:o===`action-toolbar`?2:void 0,children:r})}),Y=(0,d.forwardRef)((e,t)=>{let{className:n,items:r,isDisabled:i,...a}=e;(0,c.assertEmpty)(a);let o=r.filter(e=>e.isSelected)[0];return o?(0,f.jsxs)(u.Menu,{withinPortal:!1,transitionProps:{exitDuration:0},disabled:i,middlewares:{flip:!0,shift:!0,inline:!1,size:!0},children:[(0,f.jsx)(u.Menu.Target,{children:(0,f.jsx)(u.Button,{onMouseDown:e=>{(0,c.isSafari)()&&e.currentTarget.focus()},leftSection:o.icon,rightSection:(0,f.jsx)(m.HiChevronDown,{}),size:`xs`,variant:`subtle`,disabled:i,children:o.text})}),(0,f.jsx)(u.Menu.Dropdown,{className:n,ref:t,children:r.map(e=>(0,f.jsx)(u.Menu.Item,{onClick:e.onClick,leftSection:e.icon,rightSection:e.isSelected?(0,f.jsx)(u.CheckIcon,{size:10,className:`bn-tick-icon`}):(0,f.jsx)(`div`,{className:`bn-tick-space`}),disabled:e.isDisabled,children:e.text},e.text))})]}):null}),X={FormattingToolbar:{Root:J,Button:b,Select:Y},FilePanel:{Root:N,Button:P,FileInput:F,TabPanel:I,TextInput:L},GridSuggestionMenu:{Root:q,Item:ce,EmptyItem:se,Loader:le},LinkToolbar:{Root:J,Button:b,Select:Y},SideMenu:{Root:B,Button:V},SuggestionMenu:{Root:H,Item:W,EmptyItem:U,Label:G,Loader:K},TableHandle:{Root:de,ExtendButton:ue},Generic:{Badge:{Root:ee,Group:te},Form:{Root:e=>(0,f.jsx)(`div`,{children:e.children}),TextInput:w},Menu:{Root:E,Trigger:O,Dropdown:k,Divider:A,Label:j,Item:D,Button:M},Popover:{Root:oe,Trigger:R,Content:z},Toolbar:{Root:J,Button:b,Select:Y}},Comments:{Comment:S,Editor:ae,Card:ne,CardSection:re,ExpandSectionsPrompt:ie}},Z=e=>{let{className:t,theme:n,editor:r,...i}=e,a=(0,l.useBlockNoteContext)(),o=(0,l.usePrefersColorScheme)(),s=a?.colorSchemePreference||o,p=typeof n==`string`?n:s===`no-preference`?`light`:s,m=(0,d.useCallback)(e=>{if(e&&(v(e),typeof n==`object`)){if(`light`in n&&`dark`in n){g(n[s===`dark`?`dark`:`light`],e);return}g(n,e);return}},[s,n]);(0,d.useEffect)(()=>{if(!r.portalElement)throw Error(`Portal element not found`);r.portalElement.setAttribute(`data-mantine-color-scheme`,p),m(r.portalElement)},[r,m,p]);let h=(0,d.useContext)(u.MantineContext),_=(0,f.jsx)(l.ComponentsContext.Provider,{value:X,children:(0,f.jsx)(l.BlockNoteViewRaw,{"data-mantine-color-scheme":p,className:(0,c.mergeCSSClasses)(`bn-mantine`,t||``),theme:typeof n==`object`?void 0:n,editor:r,...i,ref:m})});return h?_:(0,f.jsx)(u.MantineProvider,{withCssVariables:!1,getRootElement:()=>void 0,children:_})},Q=[`#FFFFFF`,`#EFEFEF`,`#CFCFCF`,`#AFAFAF`,`#7F7F7F`,`#3F3F3F`,`#1F1F1F`,`#161616`,`#0F0F0F`,`#000000`],$={colors:{editor:{text:Q[5],background:Q[0]},menu:{text:Q[5],background:Q[0]},tooltip:{text:Q[5],background:Q[1]},hovered:{text:Q[5],background:Q[1]},selected:{text:Q[0],background:Q[5]},disabled:{text:Q[3],background:Q[1]},shadow:Q[2],border:Q[1],sideMenu:Q[2],highlights:c.COLORS_DEFAULT},borderRadius:6,fontFamily:`"Inter", "SF Pro Display", -apple-system, BlinkMacSystemFont, "Open Sans", "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif`},fe={colors:{editor:{text:Q[2],background:Q[6]},menu:{text:Q[2],background:Q[6]},tooltip:{text:Q[2],background:Q[7]},hovered:{text:Q[2],background:Q[7]},selected:{text:Q[2],background:Q[8]},disabled:{text:Q[5],background:Q[7]},shadow:Q[8],border:Q[7],sideMenu:Q[4],highlights:c.COLORS_DARK_MODE_DEFAULT},borderRadius:$.borderRadius,fontFamily:$.fontFamily};exports.BlockNoteView=Z,exports.applyBlockNoteCSSVariablesFromTheme=g,exports.components=X,exports.darkDefaultTheme=fe,exports.defaultColorScheme=Q,exports.lightDefaultTheme=$,exports.removeBlockNoteCSSVariables=v;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let c=require(`@blocknote/core`),l=require(`@blocknote/react`),u=require(`@mantine/core`),d=require(`react`);d=s(d,1);let f=require(`react/jsx-runtime`),p=require(`@mantine/hooks`),m=require(`react-icons/hi`);var h=(e,t,n=!1)=>{let r=[];function i(e,r=`--bn`){for(let a in e){let o=`${r}-${a.replace(/([a-z])([A-Z])/g,`$1-$2`).toLowerCase()}`;typeof e[a]==`object`?i(e[a],o):(typeof e[a]==`number`&&(e[a]=`${e[a]}px`),n?t.style.removeProperty(o):t.style.setProperty(o,e[a].toString()))}}return i(e),r},g=(e,t)=>h(e,t),_={colors:{editor:{text:void 0,background:void 0},menu:{text:void 0,background:void 0},tooltip:{text:void 0,background:void 0},hovered:{text:void 0,background:void 0},selected:{text:void 0,background:void 0},disabled:{text:void 0,background:void 0},shadow:void 0,border:void 0,sideMenu:void 0,highlights:{gray:{text:void 0,background:void 0},brown:{text:void 0,background:void 0},red:{text:void 0,background:void 0},orange:{text:void 0,background:void 0},yellow:{text:void 0,background:void 0},green:{text:void 0,background:void 0},blue:{text:void 0,background:void 0},purple:{text:void 0,background:void 0},pink:{text:void 0,background:void 0}}},borderRadius:void 0,fontFamily:void 0},v=e=>h(_,e,!0),y=e=>(0,f.jsxs)(u.Stack,{gap:0,className:`bn-tooltip`,children:[(0,f.jsx)(u.Text,{size:`sm`,lineClamp:5,children:e.mainTooltip}),e.secondaryTooltip&&(0,f.jsx)(u.Text,{size:`xs`,lineClamp:5,children:e.secondaryTooltip})]}),b=(0,d.forwardRef)((e,t)=>{let{className:n,children:r,mainTooltip:i,secondaryTooltip:a,icon:o,isSelected:s,isDisabled:l,onClick:p,label:m,variant:h,...g}=e;(0,c.assertEmpty)(g,!1);let[_,v]=(0,d.useState)(!1),b=r?(0,f.jsx)(u.Button,{"aria-label":m,className:n,onMouseDown:e=>{(0,c.isSafari)()&&e.currentTarget.focus()},onClick:e=>{v(!0),p?.(e)},onPointerLeave:()=>v(!1),"aria-pressed":s,"data-selected":s||void 0,"data-test":i?i.slice(0,1).toLowerCase()+i.replace(/\s+/g,``).slice(1):void 0,size:h===`compact`?`compact-xs`:`xs`,disabled:l||!1,ref:t,...g,children:r}):(0,f.jsx)(u.ActionIcon,{className:n,"aria-label":m,onMouseDown:e=>{(0,c.isSafari)()&&e.currentTarget.focus()},onClick:e=>{v(!0),p?.(e)},onPointerLeave:()=>v(!1),"aria-pressed":s,"data-selected":s||void 0,"data-test":i?i.slice(0,1).toLowerCase()+i.replace(/\s+/g,``).slice(1):void 0,size:h===`compact`?20:30,disabled:l||!1,ref:t,...g,children:o});return i?(0,f.jsx)(u.Tooltip,{disabled:_,withinPortal:!1,label:(0,f.jsx)(y,{mainTooltip:i,secondaryTooltip:a}),children:b}):b}),ee=(0,d.forwardRef)((e,t)=>{let{className:n,text:r,icon:i,isSelected:a,mainTooltip:o,secondaryTooltip:s,onClick:l,onMouseEnter:p,...m}=e;(0,c.assertEmpty)(m,!1);let[h,g]=(0,d.useState)(!1),_=(0,f.jsxs)(u.Chip,{className:n,checked:a===!0,wrapperProps:{onMouseEnter:p,onMouseLeave:()=>g(!1),onClick:e=>{g(!0),l?.(e)}},variant:`light`,icon:null,ref:t,children:[(0,f.jsx)(`span`,{children:i}),(0,f.jsx)(`span`,{children:r})]});return!o||h?_:(0,f.jsx)(u.Tooltip,{refProp:`rootRef`,withinPortal:!1,label:(0,f.jsx)(y,{mainTooltip:o,secondaryTooltip:s}),children:_})}),te=(0,d.forwardRef)((e,t)=>{let{className:n,children:r,...i}=e;return(0,c.assertEmpty)(i),(0,f.jsx)(u.Group,{className:n,ref:t,children:r})}),ne=(0,d.forwardRef)((e,t)=>{let{className:n,children:r,headerText:i,selected:a,onFocus:o,onBlur:s,tabIndex:l,...d}=e;return(0,c.assertEmpty)(d,!1),(0,f.jsxs)(u.Card,{className:(0,c.mergeCSSClasses)(n,a?`selected`:``),onFocus:o,onBlur:s,tabIndex:l,ref:t,children:[i&&(0,f.jsx)(u.Text,{className:`bn-header-text`,children:i}),r]})}),re=(0,d.forwardRef)((e,t)=>{let{className:n,children:r,...i}=e;return(0,c.assertEmpty)(i,!1),(0,f.jsx)(u.Card.Section,{className:n,ref:t,children:r})}),ie=(0,d.forwardRef)((e,t)=>{let{className:n,children:r,...i}=e;return(0,c.assertEmpty)(i,!1),(0,f.jsx)(u.Divider,{className:n,label:(0,f.jsx)(u.Text,{children:r}),ref:t})}),x=(0,d.forwardRef)((e,t)=>{let{authorInfo:n,timeString:r,edited:i,...a}=e,o=(0,l.useDictionary)();return(0,c.assertEmpty)(a,!1),n===`loading`?(0,f.jsxs)(u.Group,{children:[(0,f.jsx)(u.Skeleton,{height:24,width:24}),(0,f.jsx)(`div`,{children:(0,f.jsx)(u.Skeleton,{height:12,width:100})})]}):(0,f.jsxs)(u.Group,{children:[(0,f.jsx)(u.Avatar,{src:n.avatarUrl,alt:n.username,radius:`xl`,size:`sm`,color:`initials`}),(0,f.jsxs)(u.Text,{fz:`sm`,fw:`bold`,children:[n.username,(0,f.jsxs)(u.Text,{fz:`xs`,c:`dimmed`,span:!0,ml:`xs`,children:[r,` `,i&&`(${o.comments.edited})`]})]})]})}),S=(0,d.forwardRef)((e,t)=>{let{className:n,showActions:r,authorInfo:i,timeString:a,edited:o,actions:s,emojiPickerOpen:d,children:m,...h}=e,{hovered:g,ref:_}=(0,p.useHover)(),v=(0,l.mergeRefs)([t,_]);return(0,c.assertEmpty)(h,!1),(0,f.jsxs)(u.Group,{pos:`relative`,ref:v,className:n,children:[s&&(r===!0||r===void 0||r===`hover`&&g||d)?(0,f.jsx)(u.Group,{style:{position:`absolute`,right:0,top:0,zIndex:10},children:s}):null,(0,f.jsx)(x,{...e}),m]})}),ae=(0,d.forwardRef)((e,t)=>{let{className:n,autoFocus:r,onFocus:i,onBlur:a,editor:o,editable:s,...u}=e;(0,c.assertEmpty)(u,!1);let d=(0,l.useBlockNoteContext)();return(0,f.jsx)(Z,{autoFocus:r,className:n,editor:e.editor,sideMenu:!1,slashMenu:!1,tableHandles:!1,filePanel:!1,formattingToolbar:!1,editable:s,theme:d?.colorSchemePreference,ref:t,onFocus:i,onBlur:a,children:(0,f.jsx)(l.FormattingToolbarController,{formattingToolbar:C})})}),C=()=>(0,f.jsx)(l.FormattingToolbar,{blockTypeSelectItems:[],children:(0,l.getFormattingToolbarItems)([]).filter(e=>e.key!==`nestBlockButton`&&e.key!==`unnestBlockButton`)}),w=(0,d.forwardRef)((e,t)=>{let{className:n,name:r,label:i,variant:a,icon:o,value:s,autoFocus:l,placeholder:d,disabled:p,onKeyDown:m,onChange:h,onSubmit:g,autoComplete:_,"aria-activedescendant":v,rightSection:y,...b}=e;return(0,c.assertEmpty)(b),(0,f.jsx)(u.TextInput,{size:`xs`,className:(0,c.mergeCSSClasses)(n||``,a===`large`?`bn-mt-input-large`:``),ref:t,name:r,label:i,leftSection:o,value:s,autoFocus:l,"data-autofocus":l?`true`:void 0,rightSection:y,placeholder:d,disabled:p,onKeyDown:m,onChange:h,onSubmit:g,autoComplete:_,"aria-activedescendant":v})}),T=(0,d.createContext)(void 0),E=e=>{let{children:t,onOpenChange:n,position:r,sub:i,...a}=e;return(0,c.assertEmpty)(a),i?(0,f.jsx)(u.Menu.Sub,{transitionProps:{duration:250,exitDelay:250},withinPortal:!1,middlewares:{flip:!0,shift:!0,inline:!1,size:!0},onChange:n,position:r,children:t}):(0,f.jsx)(u.Menu,{withinPortal:!1,middlewares:{flip:!0,shift:!0,inline:!1,size:!0},onChange:n,position:r,returnFocus:!1,children:t})},D=(0,d.forwardRef)((e,t)=>{let{className:n,children:r,icon:i,checked:a,subTrigger:o,onClick:s,...l}=e;return(0,c.assertEmpty)(l,!1),o?(0,f.jsx)(u.Menu.Sub.Item,{className:n,ref:t,leftSection:i,rightSection:a?(0,f.jsx)(u.CheckIcon,{size:10}):a===!1?(0,f.jsx)(`div`,{className:`bn-tick-space`}):null,onClick:s,...l,children:r}):(0,f.jsx)(u.Menu.Item,{className:n,ref:t,leftSection:i,rightSection:a?(0,f.jsx)(u.CheckIcon,{size:10}):a===!1?(0,f.jsx)(`div`,{className:`bn-tick-space`}):null,onClick:s,...l,children:r})}),O=e=>{let{children:t,sub:n,...r}=e;return(0,c.assertEmpty)(r),n?(0,f.jsx)(u.Menu.Sub.Target,{children:t}):(0,f.jsx)(u.Menu.Target,{children:t})},k=(0,d.forwardRef)((e,t)=>{let{className:n,children:r,sub:i,...a}=e;(0,c.assertEmpty)(a);let o=(0,d.useContext)(T);return i?(0,f.jsx)(u.Menu.Sub.Dropdown,{className:n,ref:t,onMouseOver:o?.onMenuMouseOver,onMouseLeave:o?.onMenuMouseLeave,children:r}):(0,f.jsx)(u.Menu.Dropdown,{className:n,ref:t,onMouseOver:o?.onMenuMouseOver,onMouseLeave:o?.onMenuMouseLeave,children:r})}),A=(0,d.forwardRef)((e,t)=>{let{className:n,...r}=e;return(0,c.assertEmpty)(r),(0,f.jsx)(u.Menu.Divider,{className:n,ref:t})}),j=(0,d.forwardRef)((e,t)=>{let{className:n,children:r,...i}=e;return(0,c.assertEmpty)(i),(0,f.jsx)(u.Menu.Label,{className:n,ref:t,children:r})}),M=(0,d.forwardRef)((e,t)=>{let{className:n,children:r,icon:i,onClick:a,onDragEnd:o,onDragStart:s,draggable:l,label:d,...p}=e;return(0,c.assertEmpty)(p,!1),i?(0,f.jsx)(u.ActionIcon,{size:24,className:n,ref:t,onClick:a,onDragEnd:o,onDragStart:s,draggable:l,"aria-label":d,...p,children:i}):(0,f.jsx)(u.Button,{className:n,ref:t,onClick:a,onDragEnd:o,onDragStart:s,draggable:l,"aria-label":d,...p,children:r})}),N=(0,d.forwardRef)((e,t)=>{let{className:n,tabs:r,defaultOpenTab:i,openTab:a,setOpenTab:o,loading:s,...l}=e;return(0,c.assertEmpty)(l),(0,f.jsx)(u.Group,{className:n,ref:t,children:(0,f.jsxs)(u.Tabs,{value:a,defaultValue:i,onChange:o,children:[s&&(0,f.jsx)(u.LoadingOverlay,{visible:s}),(0,f.jsx)(u.Tabs.List,{children:r.map(e=>(0,f.jsx)(u.Tabs.Tab,{"data-test":`${e.name.toLowerCase()}-tab`,value:e.name,children:e.name},e.name))}),r.map(e=>(0,f.jsx)(u.Tabs.Panel,{value:e.name,children:e.tabPanel},e.name))]})})}),P=(0,d.forwardRef)((e,t)=>{let{className:n,children:r,onClick:i,label:a,...o}=e;return(0,c.assertEmpty)(o),(0,f.jsx)(u.Button,{size:`xs`,"aria-label":a,className:n,ref:t,onClick:i,...o,children:r})}),F=(0,d.forwardRef)((e,t)=>{let{className:n,accept:r,value:i,placeholder:a,onChange:o,...s}=e;return(0,c.assertEmpty)(s),(0,f.jsx)(u.FileInput,{size:`xs`,className:n,ref:t,accept:r,value:i,placeholder:a,onChange:o,...s})}),I=(0,d.forwardRef)((e,t)=>{let{className:n,children:r,...i}=e;return(0,c.assertEmpty)(i),(0,f.jsx)(`div`,{className:n,ref:t,children:r})}),L=(0,d.forwardRef)((e,t)=>{let{className:n,value:r,placeholder:i,onKeyDown:a,onChange:o,...s}=e;return(0,c.assertEmpty)(s),(0,f.jsx)(u.TextInput,{size:`xs`,"data-test":`embed-input`,className:n,ref:t,value:r,placeholder:i,onKeyDown:a,onChange:o})}),oe=e=>{let{open:t,onOpenChange:n,position:r,portalRoot:i,children:a,...o}=e;return(0,c.assertEmpty)(o),(0,f.jsx)(u.Popover,{middlewares:{size:{padding:20}},withinPortal:!!i,portalProps:i?{target:i}:void 0,opened:t,onChange:n,position:r,children:a})},R=e=>{let{children:t,...n}=e;return(0,c.assertEmpty)(n),(0,f.jsx)(u.PopoverTarget,{children:t})},z=(0,d.forwardRef)((e,t)=>{let{className:n,children:r,variant:i,...a}=e;return(0,c.assertEmpty)(a),(0,f.jsx)(u.PopoverDropdown,{className:n,ref:t,children:r})}),B=(0,d.forwardRef)((e,t)=>{let{className:n,children:r,...i}=e;return(0,c.assertEmpty)(i,!1),(0,f.jsx)(u.Group,{align:`center`,gap:0,className:n,ref:t,...i,children:r})}),V=(0,d.forwardRef)((e,t)=>{let{className:n,children:r,icon:i,onClick:a,onDragEnd:o,onDragStart:s,draggable:l,label:d,...p}=e;return(0,c.assertEmpty)(p,!1),i?(0,f.jsx)(u.ActionIcon,{size:24,className:n,ref:t,onClick:a,onDragEnd:o,onDragStart:s,draggable:l,"aria-label":d,...p,children:i}):(0,f.jsx)(u.Button,{className:n,ref:t,onClick:a,onDragEnd:o,onDragStart:s,draggable:l,"aria-label":d,...p,children:r})}),H=(0,d.forwardRef)((e,t)=>{let{className:n,children:r,id:i,...a}=e;return(0,c.assertEmpty)(a),(0,f.jsx)(u.Stack,{gap:0,className:n,ref:t,id:i,role:`listbox`,children:r})}),U=(0,d.forwardRef)((e,t)=>{let{className:n,children:r,...i}=e;return(0,c.assertEmpty)(i),(0,f.jsx)(u.Group,{className:n,ref:t,children:(0,f.jsx)(u.Group,{className:`bn-mt-suggestion-menu-item-title`,children:r})})}),W=(0,d.forwardRef)((e,t)=>{let{className:n,isSelected:r,onClick:i,item:a,id:o,...s}=e;(0,c.assertEmpty)(s);let m=(0,d.useRef)(null);return(0,d.useEffect)(()=>{!m.current||!r||(0,l.elementOverflow)(m.current,m.current.closest(`.bn-suggestion-menu, #ai-suggestion-menu`))!==`none`&&m.current.scrollIntoView({block:`nearest`})},[r]),(0,f.jsxs)(u.Group,{gap:0,className:n,ref:(0,p.mergeRefs)(t,m),id:o,role:`option`,onMouseDown:e=>e.preventDefault(),onClick:i,"aria-selected":r||void 0,children:[a.icon&&(0,f.jsx)(u.Group,{className:`bn-mt-suggestion-menu-item-section`,"data-position":`left`,children:a.icon}),(0,f.jsxs)(u.Stack,{gap:0,className:`bn-mt-suggestion-menu-item-body`,children:[(0,f.jsx)(u.Text,{className:`bn-mt-suggestion-menu-item-title`,children:a.title}),(0,f.jsx)(u.Text,{className:`bn-mt-suggestion-menu-item-subtitle`,children:a.subtext})]}),a.badge&&(0,f.jsx)(u.Group,{"data-position":`right`,className:`bn-mt-suggestion-menu-item-section`,children:(0,f.jsx)(u.Badge,{size:`xs`,children:a.badge})})]})}),G=(0,d.forwardRef)((e,t)=>{let{className:n,children:r,...i}=e;return(0,c.assertEmpty)(i),(0,f.jsx)(u.Group,{className:n,ref:t,children:r})}),K=(0,d.forwardRef)((e,t)=>{let{className:n,...r}=e;return(0,c.assertEmpty)(r),(0,f.jsx)(`div`,{ref:t,children:(0,f.jsx)(u.Loader,{className:n,type:`dots`,size:16})})}),q=(0,d.forwardRef)((e,t)=>{let{className:n,children:r,id:i,columns:a,...o}=e;return(0,c.assertEmpty)(o),(0,f.jsx)(`div`,{className:n,style:{gridTemplateColumns:`repeat(${a}, 1fr)`},ref:t,id:i,role:`grid`,children:r})}),se=(0,d.forwardRef)((e,t)=>{let{className:n,children:r,columns:i,...a}=e;return(0,c.assertEmpty)(a),(0,f.jsx)(u.Group,{className:n,style:{gridColumn:`1 / ${i+1}`},ref:t,children:(0,f.jsx)(u.Group,{className:`bn-mt-suggestion-menu-item-title`,children:r})})}),ce=(0,d.forwardRef)((e,t)=>{let{className:n,isSelected:r,onClick:i,item:a,id:o,...s}=e;(0,c.assertEmpty)(s);let u=(0,d.useRef)(null);return(0,d.useEffect)(()=>{!u.current||!r||(0,l.elementOverflow)(u.current,u.current.closest(`.bn-grid-suggestion-menu`))!==`none`&&u.current.scrollIntoView({block:`nearest`})},[r]),(0,f.jsx)(`div`,{className:n,ref:(0,p.mergeRefs)(t,u),id:o,role:`option`,onClick:i,"aria-selected":r||void 0,children:a.icon})}),le=(0,d.forwardRef)((e,t)=>{let{className:n,children:r,columns:i,...a}=e;return(0,c.assertEmpty)(a),(0,f.jsx)(`div`,{style:{gridColumn:`1 / ${i+1}`},ref:t,children:(0,f.jsx)(u.Loader,{className:n,type:`dots`})})}),ue=(0,d.forwardRef)((e,t)=>{let{children:n,className:r,onMouseDown:i,onClick:a,...o}=e;return(0,c.assertEmpty)(o,!1),(0,f.jsx)(u.Button,{className:r,ref:t,onMouseDown:i,onClick:a,...o,children:n})}),de=(0,d.forwardRef)((e,t)=>{let{className:n,children:r,draggable:i,onDragStart:a,onDragEnd:o,style:s,label:l,...d}=e;return(0,c.assertEmpty)(d,!1),(0,f.jsx)(u.Button,{className:n,ref:t,"aria-label":l,draggable:i,onDragStart:a,onDragEnd:o,style:s,...d,children:r})}),J=(0,d.forwardRef)((e,t)=>{let{className:n,children:r,onMouseEnter:i,onMouseLeave:a,variant:o,...s}=e;(0,c.assertEmpty)(s);let{ref:l,focused:d}=(0,p.useFocusWithin)();return(0,f.jsx)(u.Flex,{className:n,ref:(0,p.mergeRefs)(t,l,(0,p.useFocusTrap)(d)),role:`toolbar`,onMouseEnter:i,onMouseLeave:a,gap:o===`action-toolbar`?2:void 0,children:r})}),Y=(0,d.forwardRef)((e,t)=>{let{className:n,items:r,isDisabled:i,...a}=e;(0,c.assertEmpty)(a);let o=r.filter(e=>e.isSelected)[0];return o?(0,f.jsxs)(u.Menu,{withinPortal:!1,transitionProps:{exitDuration:0},disabled:i,middlewares:{flip:!0,shift:!0,inline:!1,size:!0},children:[(0,f.jsx)(u.Menu.Target,{children:(0,f.jsx)(u.Button,{onMouseDown:e=>{(0,c.isSafari)()&&e.currentTarget.focus()},leftSection:o.icon,rightSection:(0,f.jsx)(m.HiChevronDown,{}),size:`xs`,variant:`subtle`,disabled:i,children:o.text})}),(0,f.jsx)(u.Menu.Dropdown,{className:n,ref:t,children:r.map(e=>(0,f.jsx)(u.Menu.Item,{onClick:e.onClick,leftSection:e.icon,rightSection:e.isSelected?(0,f.jsx)(u.CheckIcon,{size:10,className:`bn-tick-icon`}):(0,f.jsx)(`div`,{className:`bn-tick-space`}),disabled:e.isDisabled,children:e.text},e.text))})]}):null}),X={FormattingToolbar:{Root:J,Button:b,Select:Y},FilePanel:{Root:N,Button:P,FileInput:F,TabPanel:I,TextInput:L},GridSuggestionMenu:{Root:q,Item:ce,EmptyItem:se,Loader:le},LinkToolbar:{Root:J,Button:b,Select:Y},SideMenu:{Root:B,Button:V},SuggestionMenu:{Root:H,Item:W,EmptyItem:U,Label:G,Loader:K},TableHandle:{Root:de,ExtendButton:ue},Generic:{Badge:{Root:ee,Group:te},Form:{Root:e=>(0,f.jsx)(`div`,{children:e.children}),TextInput:w},Menu:{Root:E,Trigger:O,Dropdown:k,Divider:A,Label:j,Item:D,Button:M},Popover:{Root:oe,Trigger:R,Content:z},Toolbar:{Root:J,Button:b,Select:Y}},Comments:{Comment:S,Editor:ae,Card:ne,CardSection:re,ExpandSectionsPrompt:ie}},Z=e=>{let{className:t,theme:n,editor:r,...i}=e,a=(0,l.useBlockNoteContext)(),o=(0,l.usePrefersColorScheme)(),s=a?.colorSchemePreference||o,p=typeof n==`string`?n:s===`no-preference`?`light`:s,m=(0,d.useCallback)(e=>{if(e&&(v(e),typeof n==`object`)){if(`light`in n&&`dark`in n){g(n[s===`dark`?`dark`:`light`],e);return}g(n,e);return}},[s,n]);(0,d.useEffect)(()=>{if(!r.portalElement)throw Error(`Portal element not found`);r.portalElement.setAttribute(`data-mantine-color-scheme`,p),m(r.portalElement)},[r,m,p]);let h=(0,d.useContext)(u.MantineContext),_=(0,f.jsx)(l.ComponentsContext.Provider,{value:X,children:(0,f.jsx)(l.BlockNoteViewRaw,{"data-mantine-color-scheme":p,className:(0,c.mergeCSSClasses)(`bn-mantine`,t||``),theme:typeof n==`object`?void 0:n,editor:r,...i,ref:m})});return h?_:(0,f.jsx)(u.MantineProvider,{withCssVariables:!1,getRootElement:()=>void 0,children:_})},Q=[`#FFFFFF`,`#EFEFEF`,`#CFCFCF`,`#AFAFAF`,`#7F7F7F`,`#3F3F3F`,`#1F1F1F`,`#161616`,`#0F0F0F`,`#000000`],$={colors:{editor:{text:Q[5],background:Q[0]},menu:{text:Q[5],background:Q[0]},tooltip:{text:Q[5],background:Q[1]},hovered:{text:Q[5],background:Q[1]},selected:{text:Q[0],background:Q[5]},disabled:{text:Q[3],background:Q[1]},shadow:Q[2],border:Q[1],sideMenu:Q[2],highlights:c.COLORS_DEFAULT},borderRadius:6,fontFamily:`"Inter", "SF Pro Display", -apple-system, BlinkMacSystemFont, "Open Sans", "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif`},fe={colors:{editor:{text:Q[2],background:Q[6]},menu:{text:Q[2],background:Q[6]},tooltip:{text:Q[2],background:Q[7]},hovered:{text:Q[2],background:Q[7]},selected:{text:Q[2],background:Q[8]},disabled:{text:Q[5],background:Q[7]},shadow:Q[8],border:Q[7],sideMenu:Q[4],highlights:c.COLORS_DARK_MODE_DEFAULT},borderRadius:$.borderRadius,fontFamily:$.fontFamily};exports.BlockNoteView=Z,exports.applyBlockNoteCSSVariablesFromTheme=g,exports.components=X,exports.darkDefaultTheme=fe,exports.defaultColorScheme=Q,exports.lightDefaultTheme=$,exports.removeBlockNoteCSSVariables=v;
2
2
  //# sourceMappingURL=blocknote-mantine.cjs.map
@@ -1 +1 @@
1
- {"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 <MantineLoader className={className} type=\"dots\" size={16} ref={ref} />\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 <MantineLoader\n className={className}\n style={{ gridColumn: `1 / ${columns + 1}` }}\n type=\"dots\"\n ref={ref}\n />\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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"}
1
+ {"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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"}
@@ -583,11 +583,13 @@ var H = (e, t, n = !1) => {
583
583
  });
584
584
  }), Ge = j((e, t) => {
585
585
  let { className: r, ...i } = e;
586
- return n(i), /* @__PURE__ */ I(S, {
587
- className: r,
588
- type: "dots",
589
- size: 16,
590
- ref: t
586
+ return n(i), /* @__PURE__ */ I("div", {
587
+ ref: t,
588
+ children: /* @__PURE__ */ I(S, {
589
+ className: r,
590
+ type: "dots",
591
+ size: 16
592
+ })
591
593
  });
592
594
  }), Ke = j((e, t) => {
593
595
  let { className: r, children: i, id: a, columns: o, ...s } = e;
@@ -627,11 +629,13 @@ var H = (e, t, n = !1) => {
627
629
  });
628
630
  }), Je = j((e, t) => {
629
631
  let { className: r, children: i, columns: a, ...o } = e;
630
- return n(o), /* @__PURE__ */ I(S, {
631
- className: r,
632
+ return n(o), /* @__PURE__ */ I("div", {
632
633
  style: { gridColumn: `1 / ${a + 1}` },
633
- type: "dots",
634
- ref: t
634
+ ref: t,
635
+ children: /* @__PURE__ */ I(S, {
636
+ className: r,
637
+ type: "dots"
638
+ })
635
639
  });
636
640
  }), Ye = j((e, t) => {
637
641
  let { children: r, className: i, onMouseDown: a, onClick: o, ...s } = e;
@@ -1 +1 @@
1
- {"version":3,"file":"blocknote-mantine.js","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 <MantineLoader className={className} type=\"dots\" size={16} ref={ref} />\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 <MantineLoader\n className={className}\n style={{ gridColumn: `1 / ${columns + 1}` }}\n type=\"dots\"\n ref={ref}\n />\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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"}
1
+ {"version":3,"file":"blocknote-mantine.js","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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"}
@@ -1 +1 @@
1
- {"builtAt":1777035753484,"assets":[{"name":"blocknote-mantine.cjs","size":18329},{"name":"blocknote-mantine.cjs.map","size":71920}],"chunks":[{"id":"ec22802","entry":true,"initial":true,"files":["blocknote-mantine.cjs"],"names":["blocknote-mantine"]}],"modules":[{"name":"./rolldown/runtime.js","size":1008,"chunks":["ec22802"]},{"name":"./src/BlockNoteTheme.ts","size":1876,"chunks":["ec22802"]},{"name":"./src/toolbar/ToolbarButton.tsx","size":2388,"chunks":["ec22802"]},{"name":"./src/badge/Badge.tsx","size":1389,"chunks":["ec22802"]},{"name":"./src/comments/Card.tsx","size":1250,"chunks":["ec22802"]},{"name":"./src/comments/Comment.tsx","size":2184,"chunks":["ec22802"]},{"name":"./src/comments/Editor.tsx","size":1086,"chunks":["ec22802"]},{"name":"./src/form/TextInput.tsx","size":834,"chunks":["ec22802"]},{"name":"./src/menu/Menu.tsx","size":3204,"chunks":["ec22802"]},{"name":"./src/menu/Button.tsx","size":680,"chunks":["ec22802"]},{"name":"./src/panel/Panel.tsx","size":1072,"chunks":["ec22802"]},{"name":"./src/panel/PanelButton.tsx","size":387,"chunks":["ec22802"]},{"name":"./src/panel/PanelFileInput.tsx","size":408,"chunks":["ec22802"]},{"name":"./src/panel/PanelTab.tsx","size":291,"chunks":["ec22802"]},{"name":"./src/panel/PanelTextInput.tsx","size":433,"chunks":["ec22802"]},{"name":"./src/popover/Popover.tsx","size":972,"chunks":["ec22802"]},{"name":"./src/sideMenu/SideMenu.tsx","size":355,"chunks":["ec22802"]},{"name":"./src/sideMenu/SideMenuButton.tsx","size":700,"chunks":["ec22802"]},{"name":"./src/suggestionMenu/SuggestionMenu.tsx","size":365,"chunks":["ec22802"]},{"name":"./src/suggestionMenu/SuggestionMenuEmptyItem.tsx","size":478,"chunks":["ec22802"]},{"name":"./src/suggestionMenu/SuggestionMenuItem.tsx","size":1836,"chunks":["ec22802"]},{"name":"./src/suggestionMenu/SuggestionMenuLabel.tsx","size":336,"chunks":["ec22802"]},{"name":"./src/suggestionMenu/SuggestionMenuLoader.tsx","size":345,"chunks":["ec22802"]},{"name":"./src/suggestionMenu/gridSuggestionMenu/GridSuggestionMenu.tsx","size":435,"chunks":["ec22802"]},{"name":"./src/suggestionMenu/gridSuggestionMenu/GridSuggestionMenuEmptyItem.tsx","size":561,"chunks":["ec22802"]},{"name":"./src/suggestionMenu/gridSuggestionMenu/GridSuggestionMenuItem.tsx","size":818,"chunks":["ec22802"]},{"name":"./src/suggestionMenu/gridSuggestionMenu/GridSuggestionMenuLoader.tsx","size":426,"chunks":["ec22802"]},{"name":"./src/tableHandle/ExtendButton.tsx","size":386,"chunks":["ec22802"]},{"name":"./src/tableHandle/TableHandle.tsx","size":458,"chunks":["ec22802"]},{"name":"./src/toolbar/Toolbar.tsx","size":605,"chunks":["ec22802"]},{"name":"./src/toolbar/ToolbarSelect.tsx","size":1628,"chunks":["ec22802"]},{"name":"./src/components.tsx","size":1446,"chunks":["ec22802"]},{"name":"./src/BlockNoteView.tsx","size":1940,"chunks":["ec22802"]},{"name":"./src/defaultThemes.ts","size":1952,"chunks":["ec22802"]},{"name":"./src/index.tsx","size":0,"chunks":["ec22802"]}]}
1
+ {"builtAt":1778742589913,"assets":[{"name":"blocknote-mantine.cjs","size":18385},{"name":"blocknote-mantine.cjs.map","size":72011}],"chunks":[{"id":"ec22802","entry":true,"initial":true,"files":["blocknote-mantine.cjs"],"names":["blocknote-mantine"]}],"modules":[{"name":"./rolldown/runtime.js","size":1008,"chunks":["ec22802"]},{"name":"./src/BlockNoteTheme.ts","size":1876,"chunks":["ec22802"]},{"name":"./src/toolbar/ToolbarButton.tsx","size":2388,"chunks":["ec22802"]},{"name":"./src/badge/Badge.tsx","size":1389,"chunks":["ec22802"]},{"name":"./src/comments/Card.tsx","size":1250,"chunks":["ec22802"]},{"name":"./src/comments/Comment.tsx","size":2184,"chunks":["ec22802"]},{"name":"./src/comments/Editor.tsx","size":1086,"chunks":["ec22802"]},{"name":"./src/form/TextInput.tsx","size":834,"chunks":["ec22802"]},{"name":"./src/menu/Menu.tsx","size":3204,"chunks":["ec22802"]},{"name":"./src/menu/Button.tsx","size":680,"chunks":["ec22802"]},{"name":"./src/panel/Panel.tsx","size":1072,"chunks":["ec22802"]},{"name":"./src/panel/PanelButton.tsx","size":387,"chunks":["ec22802"]},{"name":"./src/panel/PanelFileInput.tsx","size":408,"chunks":["ec22802"]},{"name":"./src/panel/PanelTab.tsx","size":291,"chunks":["ec22802"]},{"name":"./src/panel/PanelTextInput.tsx","size":433,"chunks":["ec22802"]},{"name":"./src/popover/Popover.tsx","size":972,"chunks":["ec22802"]},{"name":"./src/sideMenu/SideMenu.tsx","size":355,"chunks":["ec22802"]},{"name":"./src/sideMenu/SideMenuButton.tsx","size":700,"chunks":["ec22802"]},{"name":"./src/suggestionMenu/SuggestionMenu.tsx","size":365,"chunks":["ec22802"]},{"name":"./src/suggestionMenu/SuggestionMenuEmptyItem.tsx","size":478,"chunks":["ec22802"]},{"name":"./src/suggestionMenu/SuggestionMenuItem.tsx","size":1836,"chunks":["ec22802"]},{"name":"./src/suggestionMenu/SuggestionMenuLabel.tsx","size":336,"chunks":["ec22802"]},{"name":"./src/suggestionMenu/SuggestionMenuLoader.tsx","size":417,"chunks":["ec22802"]},{"name":"./src/suggestionMenu/gridSuggestionMenu/GridSuggestionMenu.tsx","size":435,"chunks":["ec22802"]},{"name":"./src/suggestionMenu/gridSuggestionMenu/GridSuggestionMenuEmptyItem.tsx","size":561,"chunks":["ec22802"]},{"name":"./src/suggestionMenu/gridSuggestionMenu/GridSuggestionMenuItem.tsx","size":818,"chunks":["ec22802"]},{"name":"./src/suggestionMenu/gridSuggestionMenu/GridSuggestionMenuLoader.tsx","size":497,"chunks":["ec22802"]},{"name":"./src/tableHandle/ExtendButton.tsx","size":386,"chunks":["ec22802"]},{"name":"./src/tableHandle/TableHandle.tsx","size":458,"chunks":["ec22802"]},{"name":"./src/toolbar/Toolbar.tsx","size":605,"chunks":["ec22802"]},{"name":"./src/toolbar/ToolbarSelect.tsx","size":1628,"chunks":["ec22802"]},{"name":"./src/components.tsx","size":1446,"chunks":["ec22802"]},{"name":"./src/BlockNoteView.tsx","size":1940,"chunks":["ec22802"]},{"name":"./src/defaultThemes.ts","size":1952,"chunks":["ec22802"]},{"name":"./src/index.tsx","size":0,"chunks":["ec22802"]}]}
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "directory": "packages/mantine"
12
12
  },
13
13
  "license": "MPL-2.0",
14
- "version": "0.49.0",
14
+ "version": "0.51.0",
15
15
  "files": [
16
16
  "dist",
17
17
  "types",
@@ -54,8 +54,8 @@
54
54
  }
55
55
  },
56
56
  "dependencies": {
57
- "@blocknote/core": "0.49.0",
58
- "@blocknote/react": "0.49.0",
57
+ "@blocknote/core": "0.51.0",
58
+ "@blocknote/react": "0.51.0",
59
59
  "react-icons": "^5.5.0"
60
60
  },
61
61
  "devDependencies": {
@@ -73,9 +73,8 @@
73
73
  "vite-plugin-externalize-deps": "^0.10.0"
74
74
  },
75
75
  "peerDependencies": {
76
- "@mantine/core": "^8.3.11",
77
- "@mantine/hooks": "^8.3.11",
78
- "@mantine/utils": "^6.0.22",
76
+ "@mantine/core": "^8.3.11 || ^9.0.2",
77
+ "@mantine/hooks": "^8.3.11 || ^9.0.2",
79
78
  "react": "^18.0 || ^19.0 || >= 19.0.0-rc",
80
79
  "react-dom": "^18.0 || ^19.0 || >= 19.0.0-rc"
81
80
  },
@@ -13,6 +13,8 @@ export const SuggestionMenuLoader = forwardRef<
13
13
  assertEmpty(rest);
14
14
 
15
15
  return (
16
- <MantineLoader className={className} type="dots" size={16} ref={ref} />
16
+ <div ref={ref}>
17
+ <MantineLoader className={className} type="dots" size={16} />
18
+ </div>
17
19
  );
18
20
  });
@@ -18,11 +18,8 @@ export const GridSuggestionMenuLoader = forwardRef<
18
18
  assertEmpty(rest);
19
19
 
20
20
  return (
21
- <MantineLoader
22
- className={className}
23
- style={{ gridColumn: `1 / ${columns + 1}` }}
24
- type="dots"
25
- ref={ref}
26
- />
21
+ <div style={{ gridColumn: `1 / ${columns + 1}` }} ref={ref}>
22
+ <MantineLoader className={className} type="dots" />
23
+ </div>
27
24
  );
28
25
  });