ocean-brain 0.8.0 → 0.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +113 -0
- package/dist/mcp.js +230 -291
- package/package.json +6 -5
- package/server/client/dist/assets/ArrowRight.es-g2YZTklZ.js +1 -0
- package/server/client/dist/assets/Calendar-BP6HTuSn.js +25 -0
- package/server/client/dist/assets/Callout-B_IPSF_5.js +1 -0
- package/server/client/dist/assets/Copy.es-CNxe4ujr.js +1 -0
- package/server/client/dist/assets/Graph-D9GeO71k.js +1 -0
- package/server/client/dist/assets/Graph-Xha3fwhp.js +46 -0
- package/server/client/dist/assets/Image-BLEjLUqd.js +1 -0
- package/server/client/dist/assets/Image.es-DnON8cv2.js +1 -0
- package/server/client/dist/assets/Note-DjrCYtat.js +24 -0
- package/server/client/dist/assets/NotePropertiesPanel-2DgXEM4B.js +2 -0
- package/server/client/dist/assets/Plus.es-CQ8wn2is.js +1 -0
- package/server/client/dist/assets/Reminders-B4l3KdlK.js +1 -0
- package/server/client/dist/assets/Search-BN5sf7bE.js +1 -0
- package/server/client/dist/assets/SurfaceCard-BZm73nyS.js +1 -0
- package/server/client/dist/assets/Tag-oSnmViVp.js +1 -0
- package/server/client/dist/assets/TagNotes-BDTCcJcL.js +1 -0
- package/server/client/dist/assets/Trash.es-0aPpA-3S.js +1 -0
- package/server/client/dist/assets/ViewNotes-CiZtGJNE.js +1 -0
- package/server/client/dist/assets/{ViewSectionDialog-CzskgmMF.js → ViewSectionDialog-Ctl_694Y.js} +17 -17
- package/server/client/dist/assets/Views-D-zlatYD.js +1 -0
- package/server/client/dist/assets/app-DmqIOMWF.css +1 -0
- package/server/client/dist/assets/app-cTRcKMGc.js +26 -0
- package/server/client/dist/assets/floating-ui.react-dom-wWLZ1CdM.js +1 -0
- package/server/client/dist/assets/{image.api-8dlMwzMd.js → image.api-CVuuvTBk.js} +1 -1
- package/server/client/dist/assets/index-DKJChPr4.js +1 -0
- package/server/client/dist/assets/manage-image-BZjaxp-f.js +1 -0
- package/server/client/dist/assets/manage-image-detail-DPv0FQ2m.js +1 -0
- package/server/client/dist/assets/{mcp-EDurbggR.js → mcp-CT_9IV2c.js} +2 -2
- package/server/client/dist/assets/mcp-admin-adapter-xAuyZc_M.js +1 -0
- package/server/client/dist/assets/note-core-Buwzyxi7.js +13 -0
- package/server/client/dist/assets/note-runtime-CPDVOFEo.js +168 -0
- package/server/client/dist/assets/note-ui-CHI-tzj-.js +2 -0
- package/server/client/dist/assets/{index-BEUqDuAZ.css → note-ui-DL8owV-U.css} +1 -1
- package/server/client/dist/assets/note.api-D_00ZzJC.js +356 -0
- package/server/client/dist/assets/{placeholder-DeKgSBnC.js → placeholder-DbdGiYGL.js} +4 -4
- package/server/client/dist/assets/preload-helper-BXl3LOEh.js +1 -0
- package/server/client/dist/assets/properties-D447wsWk.js +1 -0
- package/server/client/dist/assets/route-preload.js +2 -0
- package/server/client/dist/assets/{tag.api-Dl8DQd0m.js → tag.api-CX0SE06J.js} +1 -1
- package/server/client/dist/assets/time-B3pt8vt4.js +9 -0
- package/server/client/dist/assets/trash-8sH7EZgc.js +1 -0
- package/server/client/dist/assets/url-BSnWpmJx.js +1 -0
- package/server/client/dist/assets/{useReminderMutate-CoXXqJY2.js → useReminderMutate-CLK1tHvT.js} +4 -4
- package/server/client/dist/index.html +10 -5
- package/server/dist/app.js +1 -2
- package/server/dist/features/auth/http/api.js +0 -1
- package/server/dist/features/auth/http/login-page.js +272 -5
- package/server/dist/features/auth/http/pages.js +20 -3
- package/server/dist/features/auth/service.js +3 -2
- package/server/dist/features/cache/graphql/cache.field.resolver.js +0 -1
- package/server/dist/features/cache/graphql/cache.mutation.resolver.js +0 -1
- package/server/dist/features/cache/graphql/cache.query.resolver.js +0 -1
- package/server/dist/features/cache/graphql/cache.resolver.js +0 -1
- package/server/dist/features/cache/graphql/cache.type-defs.js +0 -1
- package/server/dist/features/cache/graphql/index.js +0 -1
- package/server/dist/features/image/graphql/image.field.resolver.js +0 -1
- package/server/dist/features/image/graphql/image.mutation.resolver.js +0 -1
- package/server/dist/features/image/graphql/image.query.resolver.js +0 -1
- package/server/dist/features/image/graphql/image.resolver.js +0 -1
- package/server/dist/features/image/graphql/image.type-defs.js +0 -1
- package/server/dist/features/image/graphql/index.js +0 -1
- package/server/dist/features/image/http/upload.js +0 -1
- package/server/dist/features/image/services/delete.js +0 -1
- package/server/dist/features/image/services/upload.js +0 -1
- package/server/dist/features/image/services/validation.js +0 -1
- package/server/dist/features/mcp-admin/http/handlers.js +0 -1
- package/server/dist/features/mcp-admin/service.js +0 -1
- package/server/dist/features/note/graphql/index.js +0 -1
- package/server/dist/features/note/graphql/note.field.resolver.js +0 -1
- package/server/dist/features/note/graphql/note.mutation.resolver.js +0 -1
- package/server/dist/features/note/graphql/note.query.resolver.js +0 -1
- package/server/dist/features/note/graphql/note.resolver.js +0 -1
- package/server/dist/features/note/graphql/note.type-defs.js +0 -1
- package/server/dist/features/note/http/mcp.js +0 -1
- package/server/dist/features/note/services/authoring.js +0 -1
- package/server/dist/features/note/services/cleanup.js +0 -1
- package/server/dist/features/note/services/content-blocks.js +0 -1
- package/server/dist/features/note/services/markdown-intent-write.js +0 -1
- package/server/dist/features/note/services/markdown-patch.js +0 -1
- package/server/dist/features/note/services/properties.js +0 -1
- package/server/dist/features/note/services/search-backfill.js +0 -1
- package/server/dist/features/note/services/search.js +0 -1
- package/server/dist/features/note/services/snapshot.js +0 -1
- package/server/dist/features/note/services/tag-filter.js +0 -1
- package/server/dist/features/note/services/trash.js +0 -1
- package/server/dist/features/note/services/write-conflict.js +0 -1
- package/server/dist/features/note/services/write.js +0 -1
- package/server/dist/features/placeholder/graphql/index.js +0 -1
- package/server/dist/features/placeholder/graphql/placeholder.field.resolver.js +0 -1
- package/server/dist/features/placeholder/graphql/placeholder.mutation.resolver.js +0 -1
- package/server/dist/features/placeholder/graphql/placeholder.query.resolver.js +0 -1
- package/server/dist/features/placeholder/graphql/placeholder.resolver.js +0 -1
- package/server/dist/features/placeholder/graphql/placeholder.type-defs.js +0 -1
- package/server/dist/features/reminder/graphql/index.js +0 -1
- package/server/dist/features/reminder/graphql/reminder.field.resolver.js +0 -1
- package/server/dist/features/reminder/graphql/reminder.mutation.resolver.js +0 -1
- package/server/dist/features/reminder/graphql/reminder.query.resolver.js +0 -1
- package/server/dist/features/reminder/graphql/reminder.resolver.js +0 -1
- package/server/dist/features/reminder/graphql/reminder.type-defs.js +0 -1
- package/server/dist/features/tag/graphql/index.js +0 -1
- package/server/dist/features/tag/graphql/tag.field.resolver.js +0 -1
- package/server/dist/features/tag/graphql/tag.mutation.resolver.js +0 -1
- package/server/dist/features/tag/graphql/tag.query.resolver.js +0 -1
- package/server/dist/features/tag/graphql/tag.resolver.js +0 -1
- package/server/dist/features/tag/graphql/tag.type-defs.js +0 -1
- package/server/dist/features/tag/http/mcp.js +0 -1
- package/server/dist/features/tag/services/organization.js +0 -1
- package/server/dist/features/view/graphql/index.js +0 -1
- package/server/dist/features/view/graphql/view.mutation.resolver.js +0 -1
- package/server/dist/features/view/graphql/view.query.resolver.js +0 -1
- package/server/dist/features/view/graphql/view.resolver.js +0 -1
- package/server/dist/features/view/graphql/view.type-defs.js +0 -1
- package/server/dist/features/view/services/workspace.js +0 -1
- package/server/dist/main.js +0 -1
- package/server/dist/models.js +0 -1
- package/server/dist/modules/app-version.js +0 -1
- package/server/dist/modules/auth-guard.js +0 -1
- package/server/dist/modules/auth-mode.js +0 -1
- package/server/dist/modules/auth-redirect.js +0 -1
- package/server/dist/modules/blocknote-markdown-editor.js +53 -0
- package/server/dist/modules/blocknote-tree.js +0 -1
- package/server/dist/modules/blocknote.js +272 -79
- package/server/dist/modules/data-maintenance.js +0 -1
- package/server/dist/modules/error-handler.js +8 -1
- package/server/dist/modules/graphql.js +0 -1
- package/server/dist/modules/logger.js +0 -1
- package/server/dist/modules/mcp-auth.js +0 -1
- package/server/dist/modules/mcp-token.js +0 -1
- package/server/dist/modules/prisma-runtime.js +0 -1
- package/server/dist/modules/rate-limit.js +0 -1
- package/server/dist/modules/recovery-retention.js +0 -1
- package/server/dist/modules/server-events-handler.js +0 -1
- package/server/dist/modules/server-events.js +0 -1
- package/server/dist/modules/session-store.js +0 -1
- package/server/dist/modules/use-async.js +0 -1
- package/server/dist/paths.js +0 -1
- package/server/dist/routes/api.js +0 -1
- package/server/dist/routes/auth-pages.js +0 -1
- package/server/dist/routes/client.js +0 -1
- package/server/dist/routes/graphql.js +0 -1
- package/server/dist/routes/index.js +0 -1
- package/server/dist/routes/mcp.js +0 -1
- package/server/dist/schema/index.js +0 -1
- package/server/dist/start.js +0 -1
- package/server/dist/types/index.js +0 -1
- package/server/dist/types/input.js +0 -1
- package/server/client/dist/assets/ArrowRight.es-C4zlc54Z.js +0 -1
- package/server/client/dist/assets/Calendar-COrN6Hjv.js +0 -25
- package/server/client/dist/assets/Callout-BK0K9E74.js +0 -1
- package/server/client/dist/assets/Copy.es-zm8f_XXX.js +0 -1
- package/server/client/dist/assets/Graph-BH1fzhue.js +0 -1
- package/server/client/dist/assets/Image-KXuHOG4b.js +0 -1
- package/server/client/dist/assets/Image.es-BKahRbIm.js +0 -1
- package/server/client/dist/assets/Note-C143cKKw.js +0 -12
- package/server/client/dist/assets/Plus.es-BqeC8T8h.js +0 -1
- package/server/client/dist/assets/Reminders-BYG5rz1M.js +0 -1
- package/server/client/dist/assets/Search-DBWsIMDP.js +0 -1
- package/server/client/dist/assets/SurfaceCard-CNSQfYfM.js +0 -1
- package/server/client/dist/assets/Tag-5aCfSO8Y.js +0 -1
- package/server/client/dist/assets/TagNotes-BPZjN-6l.js +0 -1
- package/server/client/dist/assets/Trash.es-CRQkTnXZ.js +0 -1
- package/server/client/dist/assets/ViewNotes-DGLNF96x.js +0 -1
- package/server/client/dist/assets/Views-DR5jT23G.js +0 -1
- package/server/client/dist/assets/graph-vendor-UTvF2NS_.js +0 -46
- package/server/client/dist/assets/index-DGIAh3ZY.js +0 -1
- package/server/client/dist/assets/index-VHp17GQX.js +0 -342
- package/server/client/dist/assets/manage-image-RqtWKas2.js +0 -1
- package/server/client/dist/assets/manage-image-detail-BTSIbLlQ.js +0 -1
- package/server/client/dist/assets/mcp-admin-adapter-DmGUo5G8.js +0 -1
- package/server/client/dist/assets/note-core-BklwyZHk.js +0 -180
- package/server/client/dist/assets/note-vendor-DkYKUmLo.js +0 -54
- package/server/client/dist/assets/properties-BjrZvOYn.js +0 -1
- package/server/client/dist/assets/trash-C5ntddLu.js +0 -1
- package/server/client/dist/fonts/Pretendard-Bold.woff +0 -0
- package/server/client/dist/fonts/Pretendard-Regular.woff +0 -0
- package/server/dist/app.js.map +0 -1
- package/server/dist/features/auth/http/api.js.map +0 -1
- package/server/dist/features/auth/http/login-page.js.map +0 -1
- package/server/dist/features/auth/http/pages.js.map +0 -1
- package/server/dist/features/auth/service.js.map +0 -1
- package/server/dist/features/cache/graphql/cache.field.resolver.js.map +0 -1
- package/server/dist/features/cache/graphql/cache.mutation.resolver.js.map +0 -1
- package/server/dist/features/cache/graphql/cache.query.resolver.js.map +0 -1
- package/server/dist/features/cache/graphql/cache.resolver.js.map +0 -1
- package/server/dist/features/cache/graphql/cache.type-defs.js.map +0 -1
- package/server/dist/features/cache/graphql/index.js.map +0 -1
- package/server/dist/features/image/graphql/image.field.resolver.js.map +0 -1
- package/server/dist/features/image/graphql/image.mutation.resolver.js.map +0 -1
- package/server/dist/features/image/graphql/image.query.resolver.js.map +0 -1
- package/server/dist/features/image/graphql/image.resolver.js.map +0 -1
- package/server/dist/features/image/graphql/image.type-defs.js.map +0 -1
- package/server/dist/features/image/graphql/index.js.map +0 -1
- package/server/dist/features/image/http/upload.js.map +0 -1
- package/server/dist/features/image/services/delete.js.map +0 -1
- package/server/dist/features/image/services/upload.js.map +0 -1
- package/server/dist/features/image/services/validation.js.map +0 -1
- package/server/dist/features/mcp-admin/http/handlers.js.map +0 -1
- package/server/dist/features/mcp-admin/service.js.map +0 -1
- package/server/dist/features/note/graphql/index.js.map +0 -1
- package/server/dist/features/note/graphql/note.field.resolver.js.map +0 -1
- package/server/dist/features/note/graphql/note.mutation.resolver.js.map +0 -1
- package/server/dist/features/note/graphql/note.query.resolver.js.map +0 -1
- package/server/dist/features/note/graphql/note.resolver.js.map +0 -1
- package/server/dist/features/note/graphql/note.type-defs.js.map +0 -1
- package/server/dist/features/note/http/mcp.js.map +0 -1
- package/server/dist/features/note/services/authoring.js.map +0 -1
- package/server/dist/features/note/services/cleanup.js.map +0 -1
- package/server/dist/features/note/services/content-blocks.js.map +0 -1
- package/server/dist/features/note/services/markdown-intent-write.js.map +0 -1
- package/server/dist/features/note/services/markdown-patch.js.map +0 -1
- package/server/dist/features/note/services/properties.js.map +0 -1
- package/server/dist/features/note/services/search-backfill.js.map +0 -1
- package/server/dist/features/note/services/search.js.map +0 -1
- package/server/dist/features/note/services/snapshot.js.map +0 -1
- package/server/dist/features/note/services/tag-filter.js.map +0 -1
- package/server/dist/features/note/services/trash.js.map +0 -1
- package/server/dist/features/note/services/write-conflict.js.map +0 -1
- package/server/dist/features/note/services/write.js.map +0 -1
- package/server/dist/features/placeholder/graphql/index.js.map +0 -1
- package/server/dist/features/placeholder/graphql/placeholder.field.resolver.js.map +0 -1
- package/server/dist/features/placeholder/graphql/placeholder.mutation.resolver.js.map +0 -1
- package/server/dist/features/placeholder/graphql/placeholder.query.resolver.js.map +0 -1
- package/server/dist/features/placeholder/graphql/placeholder.resolver.js.map +0 -1
- package/server/dist/features/placeholder/graphql/placeholder.type-defs.js.map +0 -1
- package/server/dist/features/reminder/graphql/index.js.map +0 -1
- package/server/dist/features/reminder/graphql/reminder.field.resolver.js.map +0 -1
- package/server/dist/features/reminder/graphql/reminder.mutation.resolver.js.map +0 -1
- package/server/dist/features/reminder/graphql/reminder.query.resolver.js.map +0 -1
- package/server/dist/features/reminder/graphql/reminder.resolver.js.map +0 -1
- package/server/dist/features/reminder/graphql/reminder.type-defs.js.map +0 -1
- package/server/dist/features/tag/graphql/index.js.map +0 -1
- package/server/dist/features/tag/graphql/tag.field.resolver.js.map +0 -1
- package/server/dist/features/tag/graphql/tag.mutation.resolver.js.map +0 -1
- package/server/dist/features/tag/graphql/tag.query.resolver.js.map +0 -1
- package/server/dist/features/tag/graphql/tag.resolver.js.map +0 -1
- package/server/dist/features/tag/graphql/tag.type-defs.js.map +0 -1
- package/server/dist/features/tag/http/mcp.js.map +0 -1
- package/server/dist/features/tag/services/organization.js.map +0 -1
- package/server/dist/features/view/graphql/index.js.map +0 -1
- package/server/dist/features/view/graphql/view.mutation.resolver.js.map +0 -1
- package/server/dist/features/view/graphql/view.query.resolver.js.map +0 -1
- package/server/dist/features/view/graphql/view.resolver.js.map +0 -1
- package/server/dist/features/view/graphql/view.type-defs.js.map +0 -1
- package/server/dist/features/view/services/workspace.js.map +0 -1
- package/server/dist/main.js.map +0 -1
- package/server/dist/models.js.map +0 -1
- package/server/dist/modules/app-version.js.map +0 -1
- package/server/dist/modules/auth-guard.js.map +0 -1
- package/server/dist/modules/auth-mode.js.map +0 -1
- package/server/dist/modules/auth-redirect.js.map +0 -1
- package/server/dist/modules/blocknote-tree.js.map +0 -1
- package/server/dist/modules/blocknote.js.map +0 -1
- package/server/dist/modules/data-maintenance.js.map +0 -1
- package/server/dist/modules/error-handler.js.map +0 -1
- package/server/dist/modules/graphql.js.map +0 -1
- package/server/dist/modules/logger.js.map +0 -1
- package/server/dist/modules/mcp-auth.js.map +0 -1
- package/server/dist/modules/mcp-token.js.map +0 -1
- package/server/dist/modules/prisma-runtime.js.map +0 -1
- package/server/dist/modules/rate-limit.js.map +0 -1
- package/server/dist/modules/recovery-retention.js.map +0 -1
- package/server/dist/modules/server-events-handler.js.map +0 -1
- package/server/dist/modules/server-events.js.map +0 -1
- package/server/dist/modules/session-store.js.map +0 -1
- package/server/dist/modules/use-async.js.map +0 -1
- package/server/dist/paths.js.map +0 -1
- package/server/dist/routes/api.js.map +0 -1
- package/server/dist/routes/auth-pages.js.map +0 -1
- package/server/dist/routes/client.js.map +0 -1
- package/server/dist/routes/graphql.js.map +0 -1
- package/server/dist/routes/index.js.map +0 -1
- package/server/dist/routes/mcp.js.map +0 -1
- package/server/dist/schema/index.js.map +0 -1
- package/server/dist/start.js.map +0 -1
- package/server/dist/types/index.js.map +0 -1
- package/server/dist/types/input.js.map +0 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import{S as Tn,E as V,P as B,a as I,c as kt,g as wo,f as Ne,u as xo,C as de,D as _,b as U,N as F,M as ce,T as L,d as De,R as So,e as H,F as M,h as An,i as Ln,j as Dt,k as Pn,t as $n,m as oe,l as In,y as et,n as On,r as _n,o as ie,p as Nn,q as le,s as Dn,v as Hn,w as Vn,x as Rn,z as zn,A as Un,B as jn,G as Fn,O as qn,H as Wn,I as Eo,J as Gn,K as Zn,L as Jn,Q as Xn,U as Kn,V as Yn,W as Qn,X as er,Y as tr,Z as or,_ as nr,$ as Mo,a0 as rr,a1 as ir,a2 as Bo,a3 as ar,a4 as ue,a5 as sr,a6 as Ht,a7 as Vt,a8 as Rt,a9 as lr,aa as dr,ab as cr,ac as ur,ad as pr,ae as hr,af as fr,ag as Pe,ah as mr,ai as To,aj as gr,ak as br,al as kr,am as yr,an as vr,ao as Cr,ap as wr,aq as xr,ar as Sr,as as Er,at as Mr,au as fe,av as Br,aw as Tr,ax as Ar,ay as Lr,az as Pr,aA as zt,aB as $r,aC as Ir,aD as Or,aE as He,aF as _r,aG as Nr,aH as Dr,aI as Hr,aJ as Vr,aK as Rr}from"./note-runtime-CPDVOFEo.js";import{_ as Ut}from"./preload-helper-BXl3LOEh.js";var tt=Symbol("originalFactory");function v(e){if(typeof e=="object"&&"key"in e)return function t(){return e[tt]=t,e};if(typeof e!="function")throw Error("factory must be a function");return function t(o){return n=>{let r=e({editor:n.editor,options:o});return r[tt]=t,r}}}function Q(e,t){return new Tn(e,t)}function zr(e,t=JSON.stringify){let o={};return e.filter(n=>{let r=t(n);return Object.prototype.hasOwnProperty.call(o,r)?!1:o[r]=!0})}function Ur(e){return zr(e.filter((t,o)=>e.indexOf(t)!==o))}var Ve=V.create({name:"uniqueID",priority:1e4,addOptions(){return{attributeName:"id",types:[],setIdAttribute:!1,isWithinEditor:void 0,generateID:()=>{if(typeof window<"u"&&window.__TEST_OPTIONS){let e=window.__TEST_OPTIONS;return e.mockID===void 0?e.mockID=0:e.mockID++,e.mockID.toString()}return xo()},filterTransaction:null}},addGlobalAttributes(){return[{types:this.options.types,attributes:{[this.options.attributeName]:{default:null,parseHTML:e=>e.getAttribute(`data-${this.options.attributeName}`),renderHTML:e=>{let t={[`data-${this.options.attributeName}`]:e[this.options.attributeName]};return this.options.setIdAttribute?{...t,id:e[this.options.attributeName]}:t}}}}]},addProseMirrorPlugins(){let{isWithinEditor:e}=this.options,t=null,o=!1;return[new B({key:new I("uniqueID"),appendTransaction:(n,r,i)=>{let a=n.some(m=>m.docChanged)&&!r.doc.eq(i.doc),s=this.options.filterTransaction&&n.some(m=>!this.options.filterTransaction?.(m));if(!a||s)return;let{tr:l}=i,{types:d,attributeName:c,generateID:u}=this.options,p=kt(r.doc,n),{mapping:f}=p;if(wo(p).forEach(({newRange:m})=>{let h=Ne(i.doc,m,g=>d.includes(g.type.name)),b=Ur(h.map(({node:g})=>g.attrs[c]).filter(g=>g!==null));h.forEach(({node:g,pos:k})=>{let y=l.doc.nodeAt(k)?.attrs[c];if(y===null){let S=r.doc.type.createAndFill().content;if(r.doc.content.findDiffStart(S)===null){let q=JSON.parse(JSON.stringify(i.doc.toJSON()));if(q.content[0].content[0].attrs.id="initialBlockId",JSON.stringify(q.content)===JSON.stringify(S.toJSON())){l.setNodeMarkup(k,void 0,{...g.attrs,[c]:"initialBlockId"});return}}l.setNodeMarkup(k,void 0,{...g.attrs,[c]:u()});return}let{deleted:w}=f.invert().mapResult(k);w&&b.includes(y)&&l.setNodeMarkup(k,void 0,{...g.attrs,[c]:u()})})}),l.steps.length)return l.setMeta("uniqueID",!0),l},view(n){let r=i=>{let a=n.dom.parentElement;t=a?.contains(i.target)||e?.(i.target)?a:null};return window.addEventListener("dragstart",r),{destroy(){window.removeEventListener("dragstart",r)}}},props:{handleDOMEvents:{drop:(n,r)=>(o=t!==n.dom.parentElement||r.dataTransfer?.effectAllowed==="copy",t=null,!1),paste:()=>(o=!0,!1)},transformPasted:n=>{if(!o)return n;let{types:r,attributeName:i}=this.options,a=s=>{let l=[];return s.forEach(d=>{if(d.isText){l.push(d);return}if(!r.includes(d.type.name)){l.push(d.copy(a(d.content)));return}let c=d.type.create({...d.attrs,[i]:null},a(d.content),d.marks);l.push(c)}),M.from(l)};return o=!1,new H(a(n.content),n.openStart,n.openEnd)}}})]}});function jt(e){return e.type==="link"}function Ao(e){return typeof e!="string"&&e.type==="link"}function ne(e){return typeof e!="string"&&e.type==="text"}function ot(e){return yt(e)?{...e}:ve(e)?{type:"tableCell",content:[].concat(e.content),props:{backgroundColor:e.props?.backgroundColor??"default",textColor:e.props?.textColor??"default",textAlignment:e.props?.textAlignment??"left",colspan:e.props?.colspan??1,rowspan:e.props?.rowspan??1}}:{type:"tableCell",content:[].concat(e),props:{backgroundColor:"default",textColor:"default",textAlignment:"left",colspan:1,rowspan:1}}}function ve(e){return e!=null&&typeof e!="string"&&!Array.isArray(e)&&e.type==="tableCell"}function yt(e){return ve(e)&&e.props!==void 0&&e.content!==void 0}function Ce(e){return yt(e)?e.props.colspan??1:1}function nt(e){return yt(e)?e.props.rowspan??1:1}var j=class extends Error{constructor(e){super(`Unreachable case: ${e}`)}};function Ed(e,t=!0){let{"data-test":o,...n}=e;if(Object.keys(n).length>0&&t)throw Error("Object must be empty "+JSON.stringify(e))}var jr=()=>typeof navigator<"u"&&(/Mac/.test(navigator.platform)||/AppleWebKit/.test(navigator.userAgent)&&/Mobile\/\w+/.test(navigator.userAgent));function G(e,t="Ctrl"){return jr()?e.replace("Mod","⌘"):e.replace("Mod",t)}function X(...e){return[...new Set(e.filter(t=>t).join(" ").split(" "))].join(" ")}var Md=()=>/^((?!chrome|android).)*safari/i.test(navigator.userAgent);function Fr(e,t,o,n){let r=document.createElement("div");r.className=X("bn-block-content",o.class),r.setAttribute("data-content-type",e);for(let[a,s]of Object.entries(o))a!=="class"&&r.setAttribute(a,s);let i=document.createElement(t);i.className=X("bn-inline-content",n.class);for(let[a,s]of Object.entries(n))a!=="class"&&i.setAttribute(a,s);return r.appendChild(i),{dom:r,contentDOM:i}}var Ft=(e,t)=>{let o=ae(e,t.pmSchema);o.type.name==="blockContainer"&&(o=o.firstChild);let n=t.pmSchema.nodes[o.type.name].spec.toDOM;if(n===void 0)throw Error("This block has no default HTML serialization as its corresponding TipTap node doesn't implement `renderHTML`.");let r=n(o);if(typeof r!="object"||!("dom"in r))throw Error("Cannot use this block's default HTML serialization as its corresponding TipTap node's `renderHTML` function does not return an object with the `dom` property.");return r};function Lo(e,t="<br>"){let o=e.querySelectorAll("p");if(o.length>1){let n=o[0];for(let r=1;r<o.length;r++){let i=o[r];n.innerHTML+=t+i.innerHTML,i.remove()}}}function we(e){return"data-"+e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}function Bd(e){let t=e.split("/");return!t.length||t[t.length-1]===""?e:t[t.length-1]}function qr(e){let t=["mp4","webm","ogg","mov","mkv","flv","avi","wmv","m4v"];try{let o=new URL(e).pathname.split(".").pop()?.toLowerCase()||"";return t.includes(o)}catch{return!1}}function Wr(e){let t={};return Object.entries(e).forEach(([o,n])=>{t[o]={default:n.default,keepOnSplit:!0,parseHTML:r=>{let i=r.getAttribute(we(o));if(i===null)return null;if(n.default===void 0&&n.type==="boolean"||n.default!==void 0&&typeof n.default=="boolean")return i==="true"?!0:i==="false"?!1:null;if(n.default===void 0&&n.type==="number"||n.default!==void 0&&typeof n.default=="number"){let a=parseFloat(i);return!Number.isNaN(a)&&Number.isFinite(a)?a:null}return i},renderHTML:r=>r[o]===n.default?{}:{[we(o)]:r[o]}}}),t}function Gr(e,t,o,n){let r=e();if(r===void 0)throw Error("Cannot find node position");let i=o.state.doc.resolve(r).node().attrs.id;if(!i)throw Error("Block doesn't have id");let a=t.getBlock(i);if(a.type!==n)throw Error("Block type does not match");return a}function rt(e,t,o,n,r=!1,i){let a=document.createElement("div");if(i!==void 0)for(let[s,l]of Object.entries(i))s!=="class"&&a.setAttribute(s,l);a.className=X("bn-block-content",i?.class||""),a.setAttribute("data-content-type",t);for(let[s,l]of Object.entries(o))l!==n[s].default&&a.setAttribute(we(s),l);return r&&a.setAttribute("data-file-block",""),a.appendChild(e.dom),e.contentDOM&&(e.contentDOM.className=X("bn-inline-content",e.contentDOM.className)),{...e,dom:a}}function Zr(e,t,o){return{config:{type:e.type,content:e.content,propSchema:t},implementation:{node:e.node,render:Ft,toExternalHTML:Ft},extensions:o}}function Jr(e,t){e.stopEvent=o=>(o.type==="mousedown"&&setTimeout(()=>{t.view.dom.blur()},10),!0)}function Xr(e,t){let o=[{tag:"[data-content-type="+e.type+"]",contentElement:".bn-inline-content"}];return t.parse&&o.push({tag:"*",getAttrs(n){if(typeof n=="string")return!1;let r=t.parse?.(n);return r===void 0?!1:r},preserveWhitespace:!0,getContent:e.content==="inline"||e.content==="none"?(n,r)=>{if(t.parseContent){let i=t.parseContent({el:n,schema:r});if(i!==void 0)return i}if(e.content==="inline"){let i=n.cloneNode(!0);return Lo(i,t.meta?.code?`
|
|
2
|
+
`:"<br>"),ie.fromSchema(r).parse(i,{topNode:r.nodes.paragraph.create(),preserveWhitespace:!0}).content}return M.empty}:void 0}),o}function Kr(e,t,o,n){let r=t.node||F.create({name:e.type,content:e.content==="inline"?"inline*":e.content==="none"?"":e.content,group:"blockContent",selectable:t.meta?.selectable??!0,isolating:t.meta?.isolating??!0,code:t.meta?.code??!1,defining:t.meta?.defining??!0,priority:n,addAttributes(){return Wr(e.propSchema)},parseHTML(){return Xr(e,t)},renderHTML({HTMLAttributes:i}){let a=document.createElement("div");return rt({dom:a,contentDOM:e.content==="inline"?a:void 0},e.type,{},e.propSchema,t.meta?.fileBlockAccept!==void 0,i)},addNodeView(){return i=>{let a=this.options.editor,s=Gr(i.getPos,a,this.editor,e.type),l=this.options.domAttributes?.blockContent||{},d=t.render.call({blockContentDOMAttributes:l,props:i,renderType:"nodeView"},s,a);return t.meta?.selectable===!1&&Jr(d,this.editor),d}}});if(r.name!==e.type)throw Error("Node name does not match block type. This is a bug in BlockNote.");return{config:e,implementation:{...t,node:r,render(i,a){let s=r.options.domAttributes?.blockContent||{};return t.render.call({blockContentDOMAttributes:s,props:void 0,renderType:"dom"},i,a)},toExternalHTML:(i,a,s)=>{let l=r.options.domAttributes?.blockContent||{};return t.toExternalHTML?.call({blockContentDOMAttributes:l},i,a,s)??t.render.call({blockContentDOMAttributes:l,renderType:"dom",props:void 0},i,a)}},extensions:o}}function D(e,t,o){return(n={})=>{let r=typeof e=="function"?e(n):e,i=typeof t=="function"?t(n):t,a=o?typeof o=="function"?o(n):o:void 0;return{config:r,implementation:{...i,toExternalHTML(s,l,d){let c=i.toExternalHTML?.call({blockContentDOMAttributes:this.blockContentDOMAttributes},s,l,d);if(c!==void 0)return rt(c,s.type,s.props,r.propSchema,i.meta?.fileBlockAccept!==void 0)},render(s,l){return rt(i.render.call({blockContentDOMAttributes:this.blockContentDOMAttributes,renderType:this.renderType,props:this.props},s,l),s.type,s.props,r.propSchema,i.meta?.fileBlockAccept!==void 0,this.blockContentDOMAttributes)}},extensions:a}}}function K(e,t){let o=e.resolve(t);if(o.nodeAfter&&o.nodeAfter.type.isInGroup("bnBlock"))return{posBeforeNode:o.pos,node:o.nodeAfter};let n=o.depth,r=o.node(n);for(;n>0;){if(r.type.isInGroup("bnBlock"))return{posBeforeNode:o.before(n),node:r};n--,r=o.node(n)}let i=[];e.descendants((s,l)=>{s.type.isInGroup("bnBlock")&&i.push(l)}),console.warn(`Position ${t} is not within a blockContainer node.`);let a=e.resolve(i.find(s=>s>=t)||i[i.length-1]);return{posBeforeNode:a.pos,node:a.nodeAfter}}function vt(e,t){if(!e.type.isInGroup("bnBlock"))throw Error(`Attempted to get bnBlock node at position but found node of different type ${e.type.name}`);let o=e,n=t,r={node:o,beforePos:n,afterPos:n+o.nodeSize};if(o.type.name==="blockContainer"){let i,a;if(o.forEach((s,l)=>{if(s.type.spec.group==="blockContent"){let d=s,c=n+l+1;i={node:d,beforePos:c,afterPos:c+s.nodeSize}}else if(s.type.name==="blockGroup"){let d=s,c=n+l+1;a={node:d,beforePos:c,afterPos:c+s.nodeSize}}}),!i)throw Error(`blockContainer node does not contain a blockContent node in its children: ${o}`);return{isBlockContainer:!0,bnBlock:r,blockContent:i,childContainer:a,blockNoteType:i.node.type.name}}else{if(!r.node.type.isInGroup("childContainer"))throw Error(`bnBlock node is not in the childContainer group: ${r.node}`);return{isBlockContainer:!1,bnBlock:r,childContainer:r,blockNoteType:r.node.type.name}}}function W(e){return vt(e.node,e.posBeforeNode)}function Y(e){if(!e.nodeAfter)throw Error(`Attempted to get blockContainer node at position ${e.pos} but a node at this position does not exist`);return vt(e.nodeAfter,e.pos)}function E(e){return W(K(e.doc,e.selection.anchor))}function Se(e){return W(K(e.doc,e.selection.anchor))}function T(e){return"doc"in e?e.doc.type.schema:e.type.schema}function Po(e){return e.cached.blockNoteEditor}function Ee(e){return Po(e).schema}function Ct(e){return Ee(e).blockSchema}function wt(e){return Ee(e).inlineContentSchema}function pe(e){return Ee(e).styleSchema}function xt(e){return Po(e).blockCache}function $o(e,t,o){let n={type:"tableContent",columnWidths:[],headerRows:void 0,headerCols:void 0,rows:[]},r=[];e.content.forEach((i,a,s)=>{let l={cells:[]};s===0&&i.content.forEach(d=>{let c=d.attrs.colwidth;c??=Array(d.attrs.colspan??1).fill(void 0),n.columnWidths.push(...c)}),l.cells=i.content.content.map((d,c)=>(r[s]||(r[s]=[]),r[s][c]=d.type.name==="tableHeader",{type:"tableCell",content:d.content.content.map(u=>Re(u,t,o)).reduce((u,p)=>{if(!u.length)return p;let f=u[u.length-1],m=p[0];return m&&ne(f)&&ne(m)&&JSON.stringify(f.styles)===JSON.stringify(m.styles)?(f.text+=`
|
|
3
|
+
`+m.text,u.push(...p.slice(1)),u):(u.push(...p),u)},[]),props:{colspan:d.attrs.colspan,rowspan:d.attrs.rowspan,backgroundColor:d.attrs.backgroundColor,textColor:d.attrs.textColor,textAlignment:d.attrs.textAlignment}})),n.rows.push(l)});for(let i=0;i<r.length;i++)r[i]?.every(a=>a)&&(n.headerRows=(n.headerRows??0)+1);for(let i=0;i<r[0]?.length;i++)r?.every(a=>a[i])&&(n.headerCols=(n.headerCols??0)+1);return n}function Re(e,t,o){let n=[],r;return e.content.forEach(i=>{if(i.type.name==="hardBreak"){if(r)if(ne(r))r.text+=`
|
|
4
|
+
`;else if(jt(r))r.content[r.content.length-1].text+=`
|
|
5
|
+
`;else throw Error("unexpected");else r={type:"text",text:`
|
|
6
|
+
`,styles:{}};return}if(i.type.name!=="link"&&i.type.name!=="text"){if(!t[i.type.name]){console.warn("unrecognized inline content type",i.type.name);return}r&&=(n.push(r),void 0),n.push(St(i,t,o));return}let a={},s;for(let l of i.marks)if(l.type.name==="link")s=l;else{let d=o[l.type.name];if(!d){if(l.type.spec.blocknoteIgnore)continue;throw Error(`style ${l.type.name} not found in styleSchema`)}if(d.propSchema==="boolean")a[d.type]=!0;else if(d.propSchema==="string")a[d.type]=l.attrs.stringValue;else throw new j(d.propSchema)}r?ne(r)?s?(n.push(r),r={type:"link",href:s.attrs.href,content:[{type:"text",text:i.textContent,styles:a}]}):JSON.stringify(r.styles)===JSON.stringify(a)?r.text+=i.textContent:(n.push(r),r={type:"text",text:i.textContent,styles:a}):jt(r)&&(s?r.href===s.attrs.href?JSON.stringify(r.content[r.content.length-1].styles)===JSON.stringify(a)?r.content[r.content.length-1].text+=i.textContent:r.content.push({type:"text",text:i.textContent,styles:a}):(n.push(r),r={type:"link",href:s.attrs.href,content:[{type:"text",text:i.textContent,styles:a}]}):(n.push(r),r={type:"text",text:i.textContent,styles:a})):r=s?{type:"link",href:s.attrs.href,content:[{type:"text",text:i.textContent,styles:a}]}:{type:"text",text:i.textContent,styles:a}}),r&&n.push(r),n}function St(e,t,o){if(e.type.name==="text"||e.type.name==="link")throw Error("unexpected");let n={},r=t[e.type.name];for(let[a,s]of Object.entries(e.attrs)){if(!r)throw Error("ic node is of an unrecognized type: "+e.type.name);a in r.propSchema&&(n[a]=s)}let i;return i=r.content==="styled"?Re(e,t,o):void 0,{type:e.type.name,props:n,content:i}}function x(e,t,o=Ct(t),n=wt(t),r=pe(t),i=xt(t)){if(!e.type.isInGroup("bnBlock"))throw Error("Node should be a bnBlock, but is instead: "+e.type.name);let a=i?.get(e);if(a)return a;let s=vt(e,0),l=s.bnBlock.node.attrs.id;l===null&&(l=Ve.options.generateID());let d=o[s.blockNoteType];if(!d)throw Error("Block is of an unrecognized type: "+s.blockNoteType);let c={};for(let[h,b]of Object.entries({...e.attrs,...s.isBlockContainer?s.blockContent.node.attrs:{}})){let g=d.propSchema;h in g&&!(g[h].default===void 0&&b===void 0)&&(c[h]=b)}let u=o[s.blockNoteType],p=[];s.childContainer?.node.forEach(h=>{p.push(x(h,t,o,n,r,i))});let f;if(u.content==="inline"){if(!s.isBlockContainer)throw Error("impossible");f=Re(s.blockContent.node,n,r)}else if(u.content==="table"){if(!s.isBlockContainer)throw Error("impossible");f=$o(s.blockContent.node,n,r)}else if(u.content==="none")f=void 0;else throw new j(u.content);let m={id:l,type:u.type,props:c,content:f,children:p};return i?.set(e,m),m}function Yr(e,t=T(e),o=Ct(t),n=wt(t),r=pe(t),i=xt(t)){let a=[];return e.firstChild&&e.firstChild.descendants(s=>(a.push(x(s,t,o,n,r,i)),!1)),a}function Qr(e,t,o=Ct(t),n=wt(t),r=pe(t),i=xt(t)){function a(s,l,d){if(s.type.name!=="blockGroup")throw Error("unexpected");let c=[],u,p;return s.forEach((f,m,h)=>{if(f.type.name!=="blockContainer")throw Error("unexpected");if(f.childCount===0)return;if(f.childCount===0||f.childCount>2)throw Error("unexpected, blockContainer.childCount: "+f.childCount);let b=h===0,g=h===s.childCount-1;if(f.firstChild.type.name==="blockGroup"){if(!b)throw Error("unexpected");let S=a(f.firstChild,Math.max(0,l-1),g?Math.max(0,d-1):0);u=S.blockCutAtStart,g&&(p=S.blockCutAtEnd),c.push(...S.blocks);return}let k=x(f,t,o,n,r,i),y=f.childCount>1?f.child(1):void 0,w=[];if(y){let S=a(y,0,g?Math.max(0,d-1):0);w=S.blocks,g&&(p=S.blockCutAtEnd)}g&&!y&&d>1&&(p=k.id),b&&l>1&&(u=k.id),c.push({...k,children:w})}),{blocks:c,blockCutAtStart:u,blockCutAtEnd:p}}if(e.content.childCount===0)return{blocks:[],blockCutAtStart:void 0,blockCutAtEnd:void 0};if(e.content.childCount!==1)throw Error("slice must be a single block, did you forget includeParents=true?");return a(e.content.firstChild,Math.max(e.openStart-1,0),Math.max(e.openEnd-1,0))}function Td(e,t,o,n){return e.dom.setAttribute("data-inline-content-type",t),Object.entries(o).filter(([r,i])=>i!==n[r].default).map(([r,i])=>[we(r),i]).forEach(([r,i])=>e.dom.setAttribute(r,i)),e.contentDOM&&e.contentDOM.setAttribute("data-editable",""),e}function Ad(e){return{Backspace:({editor:t})=>{let o=t.state.selection.$from;return t.state.selection.empty&&o.node().type.name===e.type&&o.parentOffset===0}}}function Ld(e,t){return{config:e,implementation:t}}function Io(e){return Object.fromEntries(Object.entries(e).map(([t,o])=>[t,o.config]))}function ei(e){return e==="boolean"?{}:{stringValue:{default:void 0,keepOnSplit:!0,parseHTML:t=>t.getAttribute("data-value"),renderHTML:t=>t.stringValue===void 0?{}:{"data-value":t.stringValue}}}}function Me(e,t,o,n){return e.dom.setAttribute("data-style-type",t),n==="string"&&e.dom.setAttribute("data-value",o),e.contentDOM&&e.contentDOM.setAttribute("data-editable",""),e}function Oo(e,t){return{config:e,implementation:t}}function me(e,t){return Oo({type:e.name,propSchema:t},{mark:e,render(o,n){let r=n.pmSchema.marks[e.name].spec.toDOM;if(r===void 0)throw Error("This block has no default HTML serialization as its corresponding TipTap node doesn't implement `renderHTML`.");let i=n.pmSchema.mark(e.name,{stringValue:o}),a=le.renderSpec(document,r(i,!0));if(typeof a!="object"||!("dom"in a))throw Error("Cannot use this block's default HTML serialization as its corresponding TipTap mark's `renderHTML` function does not return an object with the `dom` property.");return a},toExternalHTML(o,n){let r=n.pmSchema.marks[e.name].spec.toDOM;if(r===void 0)throw Error("This block has no default HTML serialization as its corresponding TipTap node doesn't implement `renderHTML`.");let i=n.pmSchema.mark(e.name,{stringValue:o}),a=le.renderSpec(document,r(i,!0));if(typeof a!="object"||!("dom"in a))throw Error("Cannot use this block's default HTML serialization as its corresponding TipTap mark's `renderHTML` function does not return an object with the `dom` property.");return a}})}function _o(e){return Object.fromEntries(Object.entries(e).map(([t,o])=>[t,o.config]))}function ti(e,t){let o=[{tag:`[data-style-type="${e.type}"]`,contentElement:n=>{let r=n;return r.matches("[data-editable]")?r:r.querySelector("[data-editable]")||r}}];return t&&o.push({tag:"*",consuming:!1,getAttrs(n){if(typeof n=="string")return!1;let r=t?.(n);return r===void 0?!1:{stringValue:r}}}),o}function No(e,t){let o=ce.create({name:e.type,addAttributes(){return ei(e.propSchema)},parseHTML(){return ti(e,t.parse)},renderHTML({mark:n}){return Me((t.toExternalHTML||t.render)(n.attrs.stringValue),e.type,n.attrs.stringValue,e.propSchema)},addMarkView(){return({mark:n})=>Me(t.render(n.attrs.stringValue),e.type,n.attrs.stringValue,e.propSchema)}});return Oo(e,{...t,mark:o,render:n=>Me(t.render(n),e.type,n,e.propSchema),toExternalHTML:n=>Me((t.toExternalHTML||t.render)(n),e.type,n,e.propSchema)})}function oi(e){let t=ri(e),{roots:o,nonRoots:n}=qt(t),r=[];for(;o.size;){r.push(o);let i=new Set;for(let a of o){let s=e.get(a);if(s)for(let l of s){let d=t.get(l);if(d===void 0)continue;let c=d-1;t.set(l,c),c===0&&i.add(l)}}o=i}if(n=qt(t).nonRoots,n.size)throw Error(`Cycle(s) detected; toposort only works on acyclic graphs. Cyclic nodes: ${Array.from(n).join(", ")}`);return r}function ni(e){return oi(ii(e))}function ri(e){let t=new Map;for(let[o,n]of e.entries()){t.has(o)||t.set(o,0);for(let r of n){let i=t.get(r)??0;t.set(r,i+1)}}return t}function qt(e){let t=new Set,o=new Set;for(let[n,r]of e.entries())r===0?t.add(n):o.add(n);return{roots:t,nonRoots:o}}function ii(e){let t=new Map;for(let[o,n]of e.entries()){t.has(o)||t.set(o,new Set);for(let r of n)t.has(r)||t.set(r,new Set),t.get(r).add(o)}return t}function ai(){return new Map}function Wt(e,t,o){return e.has(t)||e.set(t,new Set),e.get(t).add(o),e}function Do(e){let t=ai();for(let r of e)Array.isArray(r.runsBefore)&&r.runsBefore.length>0?r.runsBefore.forEach(i=>{Wt(t,r.key,i)}):Wt(t,"default",r.key);let o=ni(t),n=o.findIndex(r=>r.has("default"));return r=>91+(o.findIndex(i=>i.has(r))+n)*10}function Gt(e){return e&&Object.fromEntries(Object.entries(e).filter(([,t])=>t!==void 0))}var si=class{BlockNoteEditor="only for types";Block="only for types";PartialBlock="only for types";inlineContentSpecs;styleSpecs;blockSpecs;blockSchema;inlineContentSchema;styleSchema;constructor(t){this.opts=t;let{blockSpecs:o,inlineContentSpecs:n,styleSpecs:r,blockSchema:i,inlineContentSchema:a,styleSchema:s}=this.init();this.blockSpecs=o,this.styleSpecs=r,this.styleSchema=s,this.inlineContentSpecs=n,this.blockSchema=i,this.inlineContentSchema=a}init(){let t=Do(Object.entries({...this.opts.blockSpecs,...this.opts.inlineContentSpecs,...this.opts.styleSpecs}).map(([i,a])=>({key:i,runsBefore:a.implementation?.runsBefore??[]}))),o=Object.fromEntries(Object.entries(this.opts.blockSpecs).map(([i,a])=>[i,Kr(a.config,a.implementation,a.extensions,t(i))])),n=Object.fromEntries(Object.entries(this.opts.inlineContentSpecs).map(([i,a])=>typeof a.config=="object"?[i,{...a,implementation:{...a.implementation,node:a.implementation?.node.extend({priority:t(i)})}}]:[i,a])),r=Object.fromEntries(Object.entries(this.opts.styleSpecs).map(([i,a])=>[i,{...a,implementation:{...a.implementation,mark:a.implementation?.mark.extend({priority:t(i)})}}]));return{blockSpecs:o,blockSchema:Object.fromEntries(Object.entries(o).map(([i,a])=>[i,a.config])),inlineContentSpecs:Gt(n),styleSpecs:Gt(r),inlineContentSchema:Io(n),styleSchema:_o(r)}}extend(t){Object.assign(this.opts.blockSpecs,t.blockSpecs),Object.assign(this.opts.inlineContentSpecs,t.inlineContentSpecs),Object.assign(this.opts.styleSpecs,t.styleSpecs);let{blockSpecs:o,inlineContentSpecs:n,styleSpecs:r,blockSchema:i,inlineContentSchema:a,styleSchema:s}=this.init();return this.blockSpecs=o,this.styleSpecs=r,this.styleSchema=s,this.inlineContentSpecs=n,this.blockSchema=i,this.inlineContentSchema=a,this}};function ee(e){let{height:t,width:o}=Et(e),n=Array(t).fill(!1).map(()=>Array(o).fill(null)),r=(i,a)=>{for(let s=i;s<t;s++)for(let l=a;l<o;l++)if(!n[s][l])return{row:s,col:l};throw Error("Unable to create occupancy grid for table, no more available cells")};for(let i=0;i<e.content.rows.length;i++)for(let a=0;a<e.content.rows[i].cells.length;a++){let s=ot(e.content.rows[i].cells[a]),l=nt(s),d=Ce(s),{row:c,col:u}=r(i,a);for(let p=c;p<c+l;p++)for(let f=u;f<u+d;f++){if(n[p][f])throw Error(`Unable to create occupancy grid for table, cell at ${p},${f} is already occupied`);n[p][f]={row:i,col:a,rowspan:l,colspan:d,cell:s}}}return n}function xe(e){let t=new Set;return e.map(o=>({cells:o.map(n=>t.has(n.row+":"+n.col)?!1:(t.add(n.row+":"+n.col),n.cell)).filter(n=>n!==!1)}))}function re(e,t,o=ee(t)){for(let n=0;n<o.length;n++)for(let r=0;r<o[n].length;r++){let i=o[n][r];if(i&&i.row===e.row&&i.col===e.col)return{row:n,col:r,cell:i.cell}}throw Error(`Unable to resolve relative table cell indices for table, cell at ${e.row},${e.col} is not occupied`)}function Et(e){let t=e.content.rows.length,o=0;return e.content.rows.forEach(n=>{let r=0;n.cells.forEach(i=>{r+=Ce(i)}),o=Math.max(o,r)}),{height:t,width:o}}function Ho(e,t,o=ee(t)){let n=o[e.row]?.[e.col];if(n)return{row:n.row,col:n.col,cell:n.cell}}function it(e,t){let o=ee(e);if(t<0||t>=o.length)return[];let n=0;for(let i=0;i<t;i++){let a=o[n]?.[0];if(!a)return[];n+=a.rowspan}let r=Array(o[0].length).fill(!1).map((i,a)=>Ho({row:n,col:a},e,o)).filter(i=>i!==void 0);return r.filter((i,a)=>r.findIndex(s=>s.row===i.row&&s.col===i.col)===a)}function at(e,t){let o=ee(e);if(t<0||t>=o[0].length)return[];let n=0;for(let i=0;i<t;i++){let a=o[0]?.[n];if(!a)return[];n+=a.colspan}let r=Array(o.length).fill(!1).map((i,a)=>Ho({row:a,col:n},e,o)).filter(i=>i!==void 0);return r.filter((i,a)=>r.findIndex(s=>s.row===i.row&&s.col===i.col)===a)}function li(e,t,o,n=ee(e)){let{col:r}=re({row:0,col:t},e,n),{col:i}=re({row:0,col:o},e,n);return n.forEach(a=>{let[s]=a.splice(r,1);a.splice(i,0,s)}),xe(n)}function di(e,t,o,n=ee(e)){let{row:r}=re({row:t,col:0},e,n),{row:i}=re({row:o,col:0},e,n),[a]=n.splice(r,1);return n.splice(i,0,a),xe(n)}function st(e){return e?ve(e)?st(e.content):typeof e=="string"?e.length===0:Array.isArray(e)?e.every(t=>typeof t=="string"?t.length===0:ne(t)?t.text.length===0:Ao(t)?typeof t.content=="string"?t.content.length===0:t.content.every(o=>o.text.length===0):!1):!1:!0}function ci(e,t,o=ee(e)){if(t==="columns"){let i=0;for(let a=o[0].length-1;a>=0&&o.every(s=>st(s[a].cell)&&s[a].colspan===1);a--)i++;for(let a=o.length-1;a>=0;a--){let s=Math.max(o[a].length-i,1);o[a]=o[a].slice(0,s)}return xe(o)}let n=0;for(let i=o.length-1;i>=0&&o[i].every(a=>st(a.cell)&&a.rowspan===1);i--)n++;let r=Math.min(n,o.length-1);return o.splice(o.length-r,r),xe(o)}function ui(e,t,o,n=ee(e)){let{width:r,height:i}=Et(e);if(t==="columns")n.forEach((a,s)=>{if(o>=0)for(let l=0;l<o;l++)a.push({row:s,col:Math.max(...a.map(d=>d.col))+1,rowspan:1,colspan:1,cell:ot("")});else a.splice(r+o,-1*o)});else if(o>0)for(let a=0;a<o;a++){let s=Array(r).fill(null).map((l,d)=>({row:i+a,col:d,rowspan:1,colspan:1,cell:ot("")}));n.push(s)}else o<0&&n.splice(i+o,-1*o);return xe(n)}function Vo(e,t,o){let n=it(e,o);if(!n.some(a=>nt(a.cell)>1))return!0;let r=o,i=o;return n.forEach(a=>{let s=nt(a.cell);r=Math.max(r,a.row+s-1),i=Math.min(i,a.row)}),t<o?o===r:o===i}function Ro(e,t,o){let n=at(e,o);if(!n.some(a=>Ce(a.cell)>1))return!0;let r=o,i=o;return n.forEach(a=>{let s=Ce(a.cell);r=Math.max(r,a.col+s-1),i=Math.min(i,a.col)}),t<o?o===r:o===i}function pi(e,t,o){let n=re(e,o),r=re(t,o);return n.col===r.col}function Zt(e,t,o,n){let r=[];for(let[i,a]of Object.entries(e.styles||{})){let s=o[i];if(!s)throw Error(`style ${i} not found in styleSchema`);if(s.propSchema==="boolean")a&&r.push(t.mark(i));else if(s.propSchema==="string")a&&r.push(t.mark(i,{stringValue:a}));else throw new j(s.propSchema)}return!n||!t.nodes[n].spec.code?e.text.split(/(\n)/g).filter(i=>i.length>0).map(i=>i===`
|
|
7
|
+
`?t.nodes.hardBreak.createChecked():t.text(i,r)):e.text.length>0?[t.text(e.text,r)]:[]}function hi(e,t,o){let n=t.marks.link.create({href:e.href});return lt(e.content,t,o).map(r=>{if(r.type.name==="text")return r.mark([...r.marks,n]);if(r.type.name==="hardBreak")return r;throw Error("unexpected node type")})}function lt(e,t,o,n){let r=[];if(typeof e=="string")return r.push(...Zt({text:e,styles:{}},t,o,n)),r;for(let i of e)r.push(...Zt(i,t,o,n));return r}function z(e,t,o,n=pe(t)){let r=[];for(let i of e)typeof i=="string"?r.push(...lt(i,t,n,o)):Ao(i)?r.push(...hi(i,t,n)):ne(i)?r.push(...lt([i],t,n,o)):r.push(zo(i,t,n));return r}function ze(e,t,o=pe(t)){let n=[],r=Array(e.headerRows??0).fill(!0),i=Array(e.headerCols??0).fill(!0),a=e.columnWidths??[];for(let s=0;s<e.rows.length;s++){let l=e.rows[s],d=[],c=r[s];for(let p=0;p<l.cells.length;p++){let f=l.cells[p],m=i[p],h=null,b=re({row:s,col:p},{content:e}),g=a[b.col]?[a[b.col]]:null;if(f)if(typeof f=="string")h=t.text(f);else if(ve(f)){f.content&&(h=z(f.content,t,"tableParagraph",o));let y=Ce(f);y>1&&(g=Array(y).fill(!1).map((w,S)=>a[b.col+S]??void 0))}else h=z(f,t,"tableParagraph",o);let k=t.nodes[m||c?"tableHeader":"tableCell"].createChecked({...ve(f)?f.props:{},colwidth:g},t.nodes.tableParagraph.createChecked(void 0,h));d.push(k)}let u=t.nodes.tableRow.createChecked({},d);n.push(u)}return n}function zo(e,t,o){let n,r=e.type;if(r===void 0&&(r="paragraph"),!t.nodes[r])throw Error(`node type ${r} not found in schema`);if(!e.content)n=t.nodes[r].createChecked(e.props);else if(typeof e.content=="string"){let i=z([e.content],t,r,o);n=t.nodes[r].createChecked(e.props,i)}else if(Array.isArray(e.content)){let i=z(e.content,t,r,o);n=t.nodes[r].createChecked(e.props,i)}else if(e.content.type==="tableContent"){let i=ze(e.content,t,o);n=t.nodes[r].createChecked(e.props,i)}else throw new j(e.content.type);return n}function ae(e,t,o=pe(t)){let n=e.id;n===void 0&&(n=Ve.options.generateID());let r=[];if(e.children)for(let i of e.children)r.push(ae(i,t,o));if(!e.type||t.nodes[e.type].isInGroup("blockContent")){let i=zo(e,t,o),a=r.length>0?t.nodes.blockGroup.createChecked({},r):void 0;return t.nodes.blockContainer.createChecked({id:n,...e.props},a?[i,a]:i)}else{if(t.nodes[e.type].isInGroup("bnBlock"))return t.nodes[e.type].createChecked({id:n,...e.props},r);throw Error(`block type ${e.type} doesn't match blockContent or bnBlock group`)}}function N(e,t){let o,n;if(t.firstChild.descendants((r,i)=>o?!1:!Mt(r)||r.attrs.id!==e?!0:(o=r,n=i+1,!1)),!(o===void 0||n===void 0))return{node:o,posBeforeNode:n}}function Mt(e){return e.type.isInGroup("bnBlock")}var fi=(e,t)=>({tr:o,dispatch:n})=>(n&&Ue(o,e,t),!0);function Ue(e,t,o,n,r){let i=Y(e.doc.resolve(t)),a=null;i.blockNoteType==="table"&&(a=bi(e));let s=T(e),l=s.nodes[i.blockNoteType],d=s.nodes[o.type||i.blockNoteType],c=d.isInGroup("bnBlock")?d:s.nodes.blockContainer;if(i.isBlockContainer&&d.isInGroup("blockContent"))Jt(o,e,i),mi(o,e,l,d,i);else if(!i.isBlockContainer&&d.isInGroup("bnBlock"))Jt(o,e,i);else{let u=x(i.bnBlock.node,s);e.replaceWith(i.bnBlock.beforePos,i.bnBlock.afterPos,ae({children:u.children,...o},s));return}e.setNodeMarkup(i.bnBlock.beforePos,c,{...i.bnBlock.node.attrs,...o.props}),a&&ki(e,i,a)}function mi(e,t,o,n,r,i,a){let s=T(t),l="keep";if(e.content)if(typeof e.content=="string")l=z([e.content],s,n.name);else if(Array.isArray(e.content))l=z(e.content,s,n.name);else if(e.content.type==="tableContent")l=ze(e.content,s);else throw new j(e.content.type);else o.spec.content===""||n.spec.content!==o.spec.content&&(l=[]);l==="keep"?t.setNodeMarkup(r.blockContent.beforePos,n,{...r.blockContent.node.attrs,...e.props}):t.replaceWith(r.blockContent.beforePos,r.blockContent.afterPos,n.createChecked({...r.blockContent.node.attrs,...e.props},l))}function Jt(e,t,o){let n=T(t);if(e.children!==void 0&&e.children.length>0){let r=e.children.map(i=>ae(i,n));if(o.childContainer)t.step(new So(o.childContainer.beforePos+1,o.childContainer.afterPos-1,new H(M.from(r),0,0)));else{if(!o.isBlockContainer)throw Error("impossible");t.insert(o.blockContent.afterPos,n.nodes.blockGroup.createChecked({},r))}}}function gi(e,t,o,n,r){let i=typeof t=="string"?t:t.id,a=N(i,e.doc);if(!a)throw Error(`Block with ID ${i} not found`);return Ue(e,a.posBeforeNode,o),x(e.doc.resolve(a.posBeforeNode+1).node(),T(e))}function bi(e){let t="selection"in e?e.selection:null;if(!(t instanceof L))return null;let o=e.doc.resolve(t.head),n=-1,r=-1;for(let m=o.depth;m>=0;m--){let h=o.node(m).type.name;if(n<0&&(h==="tableCell"||h==="tableHeader")&&(n=m),h==="table"){r=m;break}}if(n<0||r<0)return null;let i=o.before(n),a=o.before(r),s=e.doc.nodeAt(a);if(!s||s.type.name!=="table")return null;let l=De.get(s),d=i-(a+1),c=l.map.indexOf(d);if(c<0)return null;let u=Math.floor(c/l.width),p=c%l.width,f=i+1+1;return{row:u,col:p,offset:Math.max(0,t.head-f)}}function ki(e,t,o){if(t.blockNoteType!=="table")return!1;let n=-1;if(t.isBlockContainer)n=e.mapping.map(t.blockContent.beforePos);else{let h=e.mapping.map(t.bnBlock.beforePos),b=h+(e.doc.nodeAt(h)?.nodeSize||0);e.doc.nodesBetween(h,b,(g,k)=>g.type.name==="table"?(n=k,!1):!0)}let r=n>=0?e.doc.nodeAt(n):null;if(!r||r.type.name!=="table")return!1;let i=De.get(r),a=Math.max(0,Math.min(o.row,i.height-1)),s=Math.max(0,Math.min(o.col,i.width-1)),l=a*i.width+s,d=i.map[l];if(d==null)return!1;let c=n+1+d+1,u=e.doc.nodeAt(c),p=c+1,f=u?u.content.size:0,m=p+Math.max(0,Math.min(o.offset,f));return"selection"in e&&e.setSelection(L.create(e.doc,m)),!0}var Z={gray:{text:"#9b9a97",background:"#ebeced"},brown:{text:"#64473a",background:"#e9e5e3"},red:{text:"#e03e3e",background:"#fbe4e4"},orange:{text:"#d9730d",background:"#f6e9d9"},yellow:{text:"#dfab01",background:"#fbf3db"},green:{text:"#4d6461",background:"#ddedea"},blue:{text:"#0b6e99",background:"#ddebf1"},purple:{text:"#6940a5",background:"#eae4f2"},pink:{text:"#ad1a72",background:"#f4dfeb"}},C={backgroundColor:{default:"default"},textColor:{default:"default"},textAlignment:{default:"left",values:["left","center","right","justify"]}},P=e=>{let t={};return e.hasAttribute("data-background-color")?t.backgroundColor=e.getAttribute("data-background-color"):e.style.backgroundColor&&(t.backgroundColor=e.style.backgroundColor),e.hasAttribute("data-text-color")?t.textColor=e.getAttribute("data-text-color"):e.style.color&&(t.textColor=e.style.color),t.textAlignment=C.textAlignment.values.includes(e.style.textAlign)?e.style.textAlign:void 0,t},se=(e,t)=>{e.backgroundColor&&e.backgroundColor!==C.backgroundColor.default&&(t.style.backgroundColor=e.backgroundColor in Z?Z[e.backgroundColor].background:e.backgroundColor),e.textColor&&e.textColor!==C.textColor.default&&(t.style.color=e.textColor in Z?Z[e.textColor].text:e.textColor),e.textAlignment&&e.textAlignment!==C.textAlignment.default&&(t.style.textAlign=e.textAlignment)},yi=(e="backgroundColor")=>({default:C.backgroundColor.default,parseHTML:t=>t.hasAttribute("data-background-color")?t.getAttribute("data-background-color"):t.style.backgroundColor?t.style.backgroundColor:C.backgroundColor.default,renderHTML:t=>t[e]===C.backgroundColor.default?{}:{"data-background-color":t[e]}}),vi=(e="textColor")=>({default:C.textColor.default,parseHTML:t=>t.hasAttribute("data-text-color")?t.getAttribute("data-text-color"):t.style.color?t.style.color:C.textColor.default,renderHTML:t=>t[e]===C.textColor.default?{}:{"data-text-color":t[e]}}),je=(e,t)=>{let o=e.querySelector(t);if(o)return{targetElement:o,caption:e.querySelector("figcaption")?.textContent??void 0}},J=v(({editor:e})=>{let t=Q(void 0);function o(){t.setState(void 0)}return{key:"filePanel",store:t,mount({signal:n}){let r=e.onChange(o,!1),i=e.onSelectionChange(o,!1);n.addEventListener("abort",()=>{r(),i()})},closeMenu:o,showMenu(n){t.setState(n)}}}),Ci=(e,t,o)=>{let n=document.createElement("div");n.className="bn-add-file-button";let r=document.createElement("div");r.className="bn-add-file-button-icon",o?r.appendChild(o):r.innerHTML='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M3 8L9.00319 2H19.9978C20.5513 2 21 2.45531 21 2.9918V21.0082C21 21.556 20.5551 22 20.0066 22H3.9934C3.44476 22 3 21.5501 3 20.9932V8ZM10 4V9H5V20H19V4H10Z"></path></svg>',n.appendChild(r);let i=document.createElement("p");i.className="bn-add-file-button-text",i.innerHTML=e.type in t.dictionary.file_blocks.add_button_text?t.dictionary.file_blocks.add_button_text[e.type]:t.dictionary.file_blocks.add_button_text.file,n.appendChild(i);let a=l=>{l.preventDefault(),l.stopPropagation()},s=()=>{t.isEditable&&t.getExtension(J)?.showMenu(e.id)};return n.addEventListener("mousedown",a,!0),n.addEventListener("click",s,!0),{dom:n,destroy:()=>{n.removeEventListener("mousedown",a,!0),n.removeEventListener("click",s,!0)}}},wi='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M3 8L9.00319 2H19.9978C20.5513 2 21 2.45531 21 2.9918V21.0082C21 21.556 20.5551 22 20.0066 22H3.9934C3.44476 22 3 21.5501 3 20.9932V8ZM10 4V9H5V20H19V4H10Z"></path></svg>',xi=e=>{let t=document.createElement("div");t.className="bn-file-name-with-icon";let o=document.createElement("div");o.className="bn-file-icon",o.innerHTML=wi,t.appendChild(o);let n=document.createElement("p");return n.className="bn-file-name",n.textContent=e.props.name,t.appendChild(n),{dom:t}},Bt=(e,t,o,n)=>{let r=document.createElement("div");if(r.className="bn-file-block-content-wrapper",e.props.url===""){let a=Ci(e,t,n);r.appendChild(a.dom);let s=t.onUploadStart(l=>{if(l===e.id){r.removeChild(a.dom);let d=document.createElement("div");d.className="bn-file-loading-preview",d.textContent="Loading...",r.appendChild(d)}});return{dom:r,destroy:()=>{s(),a.destroy()}}}let i={dom:r};if(e.props.showPreview===!1||!o){let a=xi(e);r.appendChild(a.dom),i.destroy=()=>{a.destroy?.()}}else r.appendChild(o.dom);if(e.props.caption){let a=document.createElement("p");a.className="bn-file-caption",a.textContent=e.props.caption,r.appendChild(a)}return i},Tt=(e,t)=>{let o=document.createElement("figure"),n=document.createElement("figcaption");return n.textContent=t,o.appendChild(e),o.appendChild(n),{dom:o}},Fe=(e,t)=>{let o=document.createElement("div"),n=document.createElement("p");return n.textContent=t,o.appendChild(e),o.appendChild(n),{dom:o}},Xt=e=>({url:e.src||void 0}),Si=e=>({type:"audio",propSchema:{backgroundColor:C.backgroundColor,name:{default:""},url:{default:""},caption:{default:""},showPreview:{default:!0}},content:"none"}),Ei=(e={})=>t=>{if(t.tagName==="AUDIO"){if(t.closest("figure"))return;let{backgroundColor:o}=P(t);return{...Xt(t),backgroundColor:o}}if(t.tagName==="FIGURE"){let o=je(t,"audio");if(!o)return;let{targetElement:n,caption:r}=o,{backgroundColor:i}=P(t);return{...Xt(n),backgroundColor:i,caption:r}}},Mi=(e={})=>(t,o)=>{let n=document.createElement("div");n.innerHTML=e.icon??'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M2 16.0001H5.88889L11.1834 20.3319C11.2727 20.405 11.3846 20.4449 11.5 20.4449C11.7761 20.4449 12 20.2211 12 19.9449V4.05519C12 3.93977 11.9601 3.8279 11.887 3.73857C11.7121 3.52485 11.3971 3.49335 11.1834 3.66821L5.88889 8.00007H2C1.44772 8.00007 1 8.44778 1 9.00007V15.0001C1 15.5524 1.44772 16.0001 2 16.0001ZM23 12C23 15.292 21.5539 18.2463 19.2622 20.2622L17.8445 18.8444C19.7758 17.1937 21 14.7398 21 12C21 9.26016 19.7758 6.80629 17.8445 5.15557L19.2622 3.73779C21.5539 5.75368 23 8.70795 23 12ZM18 12C18 10.0883 17.106 8.38548 15.7133 7.28673L14.2842 8.71584C15.3213 9.43855 16 10.64 16 12C16 13.36 15.3213 14.5614 14.2842 15.2841L15.7133 16.7132C17.106 15.6145 18 13.9116 18 12Z"></path></svg>';let r=document.createElement("audio");return r.className="bn-audio",o.resolveFileUrl?o.resolveFileUrl(t.props.url).then(i=>{r.src=i}):r.src=t.props.url,r.controls=!0,r.contentEditable="false",r.draggable=!1,Bt(t,o,{dom:r},n.firstElementChild)},Bi=(e={})=>(t,o)=>{if(!t.props.url){let r=document.createElement("p");return r.textContent="Add audio",{dom:r}}let n;return t.props.showPreview?(n=document.createElement("audio"),n.src=t.props.url):(n=document.createElement("a"),n.href=t.props.url,n.textContent=t.props.name||t.props.url),t.props.caption?t.props.showPreview?Tt(n,t.props.caption):Fe(n,t.props.caption):{dom:n}},Ti=D(Si,e=>({meta:{fileBlockAccept:["audio/*"]},parse:Ei(e),render:Mi(e),toExternalHTML:Bi(e),runsBefore:["file"]})),Kt=Symbol.for("blocknote.shikiParser"),Ze=Symbol.for("blocknote.shikiHighlighterPromise");function Ai(e){let t=globalThis,o,n;return Un({parser:r=>{if(!e.createHighlighter)return[];if(!o)return t[Ze]=t[Ze]||e.createHighlighter(),t[Ze].then(a=>{o=a});let i=Uo(e,r.language);return!i||i==="text"||i==="none"||i==="plaintext"||i==="txt"?[]:o.getLoadedLanguages().includes(i)?(n||(n=t[Kt]||Fn(o),t[Kt]=n),n(r)):o.loadLanguage(i)},languageExtractor:r=>r.attrs.language,nodeTypes:["codeBlock"]})}var Li=({defaultLanguage:e="text"})=>({type:"codeBlock",propSchema:{language:{default:e}},content:"inline"}),Pi=D(Li,e=>({meta:{code:!0,defining:!0,isolating:!1},parse:t=>{if(t.tagName!=="PRE"||t.childElementCount!==1||t.firstElementChild?.tagName!=="CODE")return;let o=t.firstElementChild;return{language:o.getAttribute("data-language")||o.className.split(" ").find(n=>n.includes("language-"))?.replace("language-","")}},parseContent:({el:t,schema:o})=>{let n=ie.fromSchema(o),r=t.firstElementChild;return n.parse(r,{preserveWhitespace:"full",topNode:o.nodes.codeBlock.create()}).content},render(t,o){let n=document.createDocumentFragment(),r=document.createElement("pre"),i=document.createElement("code");r.appendChild(i);let a;if(e.supportedLanguages){let s=document.createElement("select");if(Object.entries(e.supportedLanguages??{}).forEach(([d,{name:c}])=>{let u=document.createElement("option");u.value=d,u.text=c,s.appendChild(u)}),s.value=t.props.language||e.defaultLanguage||"text",o.isEditable){let d=c=>{let u=c.target.value;o.updateBlock(t.id,{props:{language:u}})};s.addEventListener("change",d),a=()=>s.removeEventListener("change",d)}else s.disabled=!0;let l=document.createElement("div");l.contentEditable="false",l.appendChild(s),n.appendChild(l)}return n.appendChild(r),{dom:n,contentDOM:i,destroy:()=>{a?.()}}},toExternalHTML(t){let o=document.createElement("pre"),n=document.createElement("code");return n.className=`language-${t.props.language}`,n.dataset.language=t.props.language,o.appendChild(n),{dom:o,contentDOM:n}}}),e=>[v({key:"code-block-highlighter",prosemirrorPlugins:[Ai(e)]}),v({key:"code-block-keyboard-shortcuts",keyboardShortcuts:{Delete:({editor:t})=>t.transact(o=>{let{block:n}=t.getTextCursorPosition();if(n.type!=="codeBlock")return!1;let{$from:r}=o.selection;return r.parent.textContent?!1:(t.removeBlocks([n]),!0)}),Tab:({editor:t})=>e.indentLineWithTab===!1?!1:t.transact(o=>{let{block:n}=t.getTextCursorPosition();return n.type==="codeBlock"?(o.insertText(" "),!0):!1}),Enter:({editor:t})=>t.transact(o=>{let{block:n,nextBlock:r}=t.getTextCursorPosition();if(n.type!=="codeBlock")return!1;let{$from:i}=o.selection,a=i.parentOffset===i.parent.nodeSize-2,s=i.parent.textContent.endsWith(`
|
|
8
|
+
|
|
9
|
+
`);if(a&&s){if(o.delete(i.pos-2,i.pos),r)return t.setTextCursorPosition(r,"start"),!0;let[l]=t.insertBlocks([{type:"paragraph"}],n,"after");return t.setTextCursorPosition(l,"start"),!0}return o.insertText(`
|
|
10
|
+
`),!0}),"Shift-Enter":({editor:t})=>t.transact(()=>{let{block:o}=t.getTextCursorPosition();if(o.type!=="codeBlock")return!1;let[n]=t.insertBlocks([{type:"paragraph"}],o,"after");return t.setTextCursorPosition(n,"start"),!0})},inputRules:[{find:/^```(.*?)\s$/,replace:({match:t})=>{let o=t[1].trim();return{type:"codeBlock",props:{language:{language:Uo(e,o)??o}.language},content:[]}}}]})]);function Uo(e,t){return Object.entries(e.supportedLanguages??{}).find(([o,{aliases:n}])=>n?.includes(t)||o===t)?.[0]}var $i=()=>({type:"divider",propSchema:{},content:"none"}),Ii=D($i,{meta:{isolating:!1},parse(e){if(e.tagName==="HR")return{}},render(){return{dom:document.createElement("hr")}}},[v({key:"divider-block-shortcuts",inputRules:[{find:RegExp("^---$"),replace(){return{type:"divider",props:{},content:[]}}}]})]),Yt=e=>({url:e.src||void 0}),Oi=()=>({type:"file",propSchema:{backgroundColor:C.backgroundColor,name:{default:""},url:{default:""},caption:{default:""}},content:"none"}),_i=()=>e=>{if(e.tagName==="EMBED"){if(e.closest("figure"))return;let{backgroundColor:t}=P(e);return{...Yt(e),backgroundColor:t}}if(e.tagName==="FIGURE"){let t=je(e,"embed");if(!t)return;let{targetElement:o,caption:n}=t,{backgroundColor:r}=P(e);return{...Yt(o),backgroundColor:r,caption:n}}},Ni=D(Oi,{meta:{fileBlockAccept:["*/*"]},parse:_i(),render(e,t){return Bt(e,t)},toExternalHTML(e){if(!e.props.url){let o=document.createElement("p");return o.textContent="Add file",{dom:o}}let t=document.createElement("a");return t.href=e.props.url,t.textContent=e.props.name||e.props.url,e.props.caption?Fe(t,e.props.caption):{dom:t}}});function jo(e,t,o){let n=ie.fromSchema(t),r=e.querySelector(":scope > summary"),i;if(r){let c=r.cloneNode(!0);Lo(c),i=n.parse(c,{topNode:t.nodes.paragraph.create(),preserveWhitespace:!0}).content}else i=M.empty;let a=document.createElement("div");a.setAttribute("data-node-type","blockGroup");let s=!1;for(let c of Array.from(e.childNodes))c.tagName!=="SUMMARY"&&(c.nodeType===3&&!c.textContent?.trim()||(s=!0,a.appendChild(c.cloneNode(!0))));let l=t.nodes[o].create({},i);if(!s)return l.content;let d=n.parse(a,{topNode:t.nodes.blockGroup.create()});return d.content.size>0?l.content.addToEnd(d):l.content}var Di={set:(e,t)=>window.localStorage.setItem(`toggle-${e.id}`,t?"true":"false"),get:e=>window.localStorage.getItem(`toggle-${e.id}`)==="true"},Fo=(e,t,o,n=Di)=>{if("isToggleable"in e.props&&!e.props.isToggleable)return{dom:o};let r=document.createElement("div"),i=document.createElement("div");i.className="bn-toggle-wrapper";let a=document.createElement("button");a.className="bn-toggle-button",a.type="button",a.innerHTML='<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="CURRENTCOLOR"><path d="M320-200v-560l440 280-440 280Z"/></svg>';let s=m=>m.preventDefault();a.addEventListener("mousedown",s);let l=()=>{i.getAttribute("data-show-children")==="true"?(i.setAttribute("data-show-children","false"),n.set(t.getBlock(e),!1),r.contains(d)&&r.removeChild(d)):(i.setAttribute("data-show-children","true"),n.set(t.getBlock(e),!0),t.isEditable&&t.getBlock(e)?.children.length===0&&!r.contains(d)&&r.appendChild(d))};a.addEventListener("click",l),i.appendChild(a),i.appendChild(o);let d=document.createElement("button");d.className="bn-toggle-add-block-button",d.type="button",d.textContent=t.dictionary.toggle_blocks.add_block_button;let c=m=>m.preventDefault();d.addEventListener("mousedown",c);let u=()=>{t.transact(()=>{let m=t.updateBlock(e,{children:[{}]});t.setTextCursorPosition(m.children[0].id,"end"),t.focus()})};d.addEventListener("click",u),r.appendChild(i);let p=e.children.length,f=t.onChange(()=>{let m=t.getBlock(e)?.children.length??0;m>p?(i.getAttribute("data-show-children")==="false"&&(i.setAttribute("data-show-children","true"),n.set(t.getBlock(e),!0)),r.contains(d)&&r.removeChild(d)):m===0&&m<p&&(i.getAttribute("data-show-children")==="true"&&(i.setAttribute("data-show-children","false"),n.set(t.getBlock(e),!1)),r.contains(d)&&r.removeChild(d)),p=m});return n.get(e)?(i.setAttribute("data-show-children","true"),t.isEditable&&e.children.length===0&&r.appendChild(d)):i.setAttribute("data-show-children","false"),{dom:r,ignoreMutation:m=>m instanceof MutationRecord&&(m.type==="attributes"&&m.target===i&&m.attributeName==="data-show-children"||m.type==="childList"&&(m.addedNodes[0]===d||m.removedNodes[0]===d)),destroy:()=>{a.removeEventListener("mousedown",s),a.removeEventListener("click",l),d.removeEventListener("mousedown",c),d.removeEventListener("click",u),f?.()}}},qo=[1,2,3,4,5,6],Hi=e=>({editor:t})=>{let o=t.getTextCursorPosition();return t.schema.blockSchema[o.block.type].content==="inline"?(t.updateBlock(o.block,{type:"heading",props:{level:e}}),!0):!1},Vi=({defaultLevel:e=1,levels:t=qo,allowToggleHeadings:o=!0}={})=>({type:"heading",propSchema:{...C,level:{default:e,values:t},...o?{isToggleable:{default:!1,optional:!0}}:{}},content:"inline"}),Ri=D(Vi,({allowToggleHeadings:e=!0}={})=>({meta:{isolating:!1},parse(t){if(e&&t.tagName==="DETAILS"){let n=t.querySelector(":scope > summary");if(!n)return;let r=n.querySelector("h1, h2, h3, h4, h5, h6");return r?{...P(r),level:parseInt(r.tagName[1]),isToggleable:!0}:void 0}let o;switch(t.tagName){case"H1":o=1;break;case"H2":o=2;break;case"H3":o=3;break;case"H4":o=4;break;case"H5":o=5;break;case"H6":o=6;break;default:return}return{...P(t),level:o}},...e?{parseContent:({el:t,schema:o})=>{if(t.tagName==="DETAILS")return jo(t,o,"heading")}}:{},runsBefore:["toggleListItem"],render(t,o){let n=document.createElement(`h${t.props.level}`);return e?{...Fo(t,o,n),contentDOM:n}:{dom:n,contentDOM:n}},toExternalHTML(t){let o=document.createElement(`h${t.props.level}`);if(se(t.props,o),e&&t.props.isToggleable){let n=document.createElement("details");n.setAttribute("open","");let r=document.createElement("summary");return r.appendChild(o),n.appendChild(r),{dom:n,contentDOM:o,childrenDOM:n}}return{dom:o,contentDOM:o}}}),({levels:e=qo}={})=>[v({key:"heading-shortcuts",keyboardShortcuts:Object.fromEntries(e.map(t=>[`Mod-Alt-${t}`,Hi(t)])??[]),inputRules:e.map(t=>({find:RegExp(`^(#{${t}})\\s$`),replace({match:o}){return{type:"heading",props:{level:o[1].length}}}}))})]),Wo=(e,t,o,n,r)=>{let{dom:i,destroy:a}=Bt(e,t,o,r),s=i;s.style.position="relative",e.props.url&&e.props.showPreview&&(e.props.previewWidth?s.style.width=`${e.props.previewWidth}px`:s.style.width="fit-content");let l=document.createElement("div");l.className="bn-resize-handle",l.style.left="4px",l.style.display="none",n.appendChild(l);let d=document.createElement("div");d.className="bn-resize-handle",d.style.right="4px",d.style.display="none",n.appendChild(d);let c=document.createElement("div");c.style.position="absolute",c.style.height="100%",c.style.width="100%";let u,p=e.props.previewWidth,f=y=>{if(!u){t.isEditable||(l.style.display="none",d.style.display="none");return}let w,S="touches"in y?y.touches[0].clientX:y.clientX;w=e.props.textAlignment==="center"?u.handleUsed==="left"?u.initialWidth+(u.initialClientX-S)*2:u.initialWidth+(S-u.initialClientX)*2:u.handleUsed==="left"?u.initialWidth+u.initialClientX-S:u.initialWidth+S-u.initialClientX,p=Math.min(Math.max(w,64),t.domElement?.firstElementChild?.clientWidth||Number.MAX_VALUE),s.style.width=`${p}px`},m=y=>{(!y.target||!s.contains(y.target)||!t.isEditable)&&(l.style.display="none",d.style.display="none"),u&&(u=void 0,s.contains(c)&&s.removeChild(c),t.updateBlock(e,{props:{previewWidth:p}}))},h=()=>{t.isEditable&&(l.style.display="",d.style.display="")},b=y=>{y.relatedTarget===l||y.relatedTarget===d||u||t.isEditable&&(l.style.display="none",d.style.display="none")},g=y=>{y.preventDefault(),s.contains(c)||s.appendChild(c);let w="touches"in y?y.touches[0].clientX:y.clientX;u={handleUsed:"left",initialWidth:s.clientWidth,initialClientX:w}},k=y=>{y.preventDefault(),s.contains(c)||s.appendChild(c);let w="touches"in y?y.touches[0].clientX:y.clientX;u={handleUsed:"right",initialWidth:s.clientWidth,initialClientX:w}};return window.addEventListener("mousemove",f),window.addEventListener("touchmove",f),window.addEventListener("mouseup",m),window.addEventListener("touchend",m),s.addEventListener("mouseenter",h),s.addEventListener("mouseleave",b),l.addEventListener("mousedown",g),l.addEventListener("touchstart",g),d.addEventListener("mousedown",k),d.addEventListener("touchstart",k),{dom:s,destroy:()=>{a?.(),window.removeEventListener("mousemove",f),window.removeEventListener("touchmove",f),window.removeEventListener("mouseup",m),window.removeEventListener("touchend",m),s.removeEventListener("mouseenter",h),s.removeEventListener("mouseleave",b),l.removeEventListener("mousedown",g),l.removeEventListener("touchstart",g),d.removeEventListener("mousedown",k),d.removeEventListener("touchstart",k)}}},Qt=e=>({url:e.src||void 0,previewWidth:e.width||void 0,name:e.alt||void 0}),zi=(e={})=>({type:"image",propSchema:{textAlignment:C.textAlignment,backgroundColor:C.backgroundColor,name:{default:""},url:{default:""},caption:{default:""},showPreview:{default:!0},previewWidth:{default:void 0,type:"number"}},content:"none"}),Ui=(e={})=>t=>{if(t.tagName==="IMG"){if(t.closest("figure"))return;let{backgroundColor:o}=P(t);return{...Qt(t),backgroundColor:o}}if(t.tagName==="FIGURE"){let o=je(t,"img");if(!o)return;let{targetElement:n,caption:r}=o,{backgroundColor:i}=P(t);return{...Qt(n),backgroundColor:i,caption:r}}},ji=(e={})=>(t,o)=>{let n=document.createElement("div");n.innerHTML=e.icon??'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M5 11.1005L7 9.1005L12.5 14.6005L16 11.1005L19 14.1005V5H5V11.1005ZM4 3H20C20.5523 3 21 3.44772 21 4V20C21 20.5523 20.5523 21 20 21H4C3.44772 21 3 20.5523 3 20V4C3 3.44772 3.44772 3 4 3ZM15.5 10C14.6716 10 14 9.32843 14 8.5C14 7.67157 14.6716 7 15.5 7C16.3284 7 17 7.67157 17 8.5C17 9.32843 16.3284 10 15.5 10Z"></path></svg>';let r=document.createElement("div");r.className="bn-visual-media-wrapper";let i=document.createElement("img");return i.className="bn-visual-media",o.resolveFileUrl?o.resolveFileUrl(t.props.url).then(a=>{i.src=a}):i.src=t.props.url,i.alt=t.props.name||t.props.caption||"BlockNote image",i.contentEditable="false",i.draggable=!1,r.appendChild(i),Wo(t,o,{dom:r},r,n.firstElementChild)},Fi=(e={})=>(t,o)=>{if(!t.props.url){let r=document.createElement("p");return r.textContent="Add image",{dom:r}}let n;return t.props.showPreview?(n=document.createElement("img"),n.src=t.props.url,n.alt=t.props.name||t.props.caption||"BlockNote image",t.props.previewWidth&&(n.width=t.props.previewWidth)):(n=document.createElement("a"),n.href=t.props.url,n.textContent=t.props.name||t.props.url),t.props.caption?t.props.showPreview?Tt(n,t.props.caption):Fe(n,t.props.caption):{dom:n}},qi=D(zi,e=>({meta:{fileBlockAccept:["image/*"]},parse:Ui(e),render:ji(e),toExternalHTML:Fi(e),runsBefore:["file"]})),Wi=(e,t,o)=>({state:n,dispatch:r})=>r?Go(n.tr,e,t,o):!0,Go=(e,t,o,n)=>{let r=W(K(e.doc,t));if(!r.isBlockContainer)return!1;let i=T(e),a=[{type:r.bnBlock.node.type,attrs:n?{...r.bnBlock.node.attrs,id:void 0}:{}},{type:o?r.blockContent.node.type:i.nodes.paragraph,attrs:n?{...r.blockContent.node.attrs}:{}}];return e.split(t,2,a),!0},qe=(e,t)=>{let{blockInfo:o,selectionEmpty:n}=e.transact(a=>({blockInfo:Se(a),selectionEmpty:a.selection.anchor===a.selection.head}));if(!o.isBlockContainer)return!1;let{bnBlock:r,blockContent:i}=o;return i.node.type.name!==t||!n?!1:i.node.childCount===0?(e.transact(a=>{Ue(a,r.beforePos,{type:"paragraph",props:{}})}),!0):i.node.childCount>0?e.transact(a=>(a.deleteSelection(),Go(a,a.selection.from,!0))):!1};function At(e,t,o){let n=ie.fromSchema(t),r=e,i=document.createElement("div");i.setAttribute("data-node-type","blockGroup");for(let c of Array.from(r.childNodes))i.appendChild(c.cloneNode(!0));let a=n.parse(i,{topNode:t.nodes.blockGroup.create()});a.firstChild?.firstChild?.type.name==="checkListItem"&&(a=a.copy(a.content.cut(a.firstChild.firstChild.nodeSize+2)));let s=a.firstChild?.firstChild;if(!s?.isTextblock)return M.from(a);let l=t.nodes[o].create({},s.content),d=a.content.cut(s.nodeSize+2);if(d.size>0){let c=a.copy(d);return l.content.addToEnd(c)}return l.content}var Gi=()=>({type:"bulletListItem",propSchema:{...C},content:"inline"}),Zi=D(Gi,{meta:{isolating:!1},parse(e){if(e.tagName!=="LI")return;let t=e.parentElement;if(t!==null&&(t.tagName==="UL"||t.tagName==="DIV"&&t.parentElement?.tagName==="UL"))return P(e)},parseContent:({el:e,schema:t})=>At(e,t,"bulletListItem"),render(){let e=document.createElement("p");return{dom:e,contentDOM:e}},toExternalHTML(e){let t=document.createElement("li"),o=document.createElement("p");return se(e.props,t),t.appendChild(o),{dom:t,contentDOM:o}}},[v({key:"bullet-list-item-shortcuts",keyboardShortcuts:{Enter:({editor:e})=>qe(e,"bulletListItem"),"Mod-Shift-8":({editor:e})=>{let t=e.getTextCursorPosition();return e.schema.blockSchema[t.block.type].content==="inline"?(e.updateBlock(t.block,{type:"bulletListItem",props:{}}),!0):!1}},inputRules:[{find:/^\s?[-+*]\s$/,replace({editor:e}){if(E(e.prosemirrorState).blockNoteType!=="heading")return{type:"bulletListItem",props:{}}}}]})]),Ji=()=>({type:"checkListItem",propSchema:{...C,checked:{default:!1,type:"boolean"}},content:"inline"}),Xi=D(Ji,{meta:{isolating:!1},parse(e){if(e.tagName==="input")return e.closest("[data-content-type]")||e.closest("li")?void 0:e.type==="checkbox"?{checked:e.checked}:void 0;if(e.tagName!=="LI")return;let t=e.parentElement;if(t!==null&&(t.tagName==="UL"||t.tagName==="DIV"&&t.parentElement?.tagName==="UL")){let o=e.querySelector("input[type=checkbox]")||null;return o===null?void 0:{...P(e),checked:o.checked}}},parseContent:({el:e,schema:t})=>At(e,t,"checkListItem"),render(e,t){let o=document.createDocumentFragment(),n=document.createElement("input");n.type="checkbox",n.checked=e.props.checked,e.props.checked&&n.setAttribute("checked",""),n.disabled=!t.isEditable,n.addEventListener("change",()=>{t.isEditable&&t.updateBlock(e,{props:{checked:!e.props.checked}})});let r=document.createElement("p"),i=document.createElement("div");return i.contentEditable="false",i.appendChild(n),o.appendChild(i),o.appendChild(r),{dom:o,contentDOM:r}},toExternalHTML(e){let t=document.createElement("li"),o=document.createElement("input");o.type="checkbox",o.checked=e.props.checked,e.props.checked&&o.setAttribute("checked","");let n=document.createElement("p");return se(e.props,t),t.appendChild(o),t.appendChild(n),{dom:t,contentDOM:n}},runsBefore:["bulletListItem"]},[v({key:"check-list-item-shortcuts",keyboardShortcuts:{Enter:({editor:e})=>qe(e,"checkListItem"),"Mod-Shift-9":({editor:e})=>{let t=e.getTextCursorPosition();return e.schema.blockSchema[t.block.type].content==="inline"?(e.updateBlock(t.block,{type:"checkListItem",props:{}}),!0):!1}},inputRules:[{find:/^\s?\[\s*\]\s$/,replace(){return{type:"checkListItem",props:{checked:!1}}}},{find:/^\s?\[[Xx]\]\s$/,replace(){return{type:"checkListItem",props:{checked:!0}}}}]})]);function Ki(e,t,o,n){let r=!!e.firstChild.attrs.start,i=W({posBeforeNode:t,node:e});if(!i.isBlockContainer)throw Error("impossible");let a=o.doc.resolve(i.bnBlock.beforePos).nodeBefore,s=a?n.get(a):void 0;if(s!==void 0){let g=s+1;return n.set(e,g),{index:g,isFirst:!1,hasStart:r}}let l=[{node:e,pos:t}],d=a,c=i.bnBlock.beforePos;for(;d&&n.get(d)===void 0;){let g=W({posBeforeNode:c-d.nodeSize,node:d});if(g.blockNoteType!=="numberedListItem")break;l.push({node:d,pos:c-d.nodeSize});let k=o.doc.resolve(g.bnBlock.beforePos).nodeBefore;c=g.bnBlock.beforePos,d=k}let u,p,f=l[l.length-1],m=W({posBeforeNode:f.pos,node:f.node});if(!m.isBlockContainer)throw Error("impossible");let h=o.doc.resolve(m.bnBlock.beforePos).nodeBefore,b=h?n.get(h):void 0;b===void 0?(u=(f.node.firstChild.attrs.start||1)-1,p=!0):(u=b,p=!1);for(let g=l.length-1;g>=0;g--){let k=l[g];p&&g<l.length-1&&(p=!1),u++,n.set(k.node,u)}return{index:u,isFirst:l.length===1?p||b===void 0:!1,hasStart:r}}function eo(e,t){let o=new Map,n=t.decorations.map(e.mapping,e.doc),r=e.changedRange();if(!r)return{decorations:n};let i=[],a=new Set;e.doc.nodesBetween(r.from,e.doc.nodeSize-2,(l,d,c)=>{if(c&&a.has(c))return!1;if(l.type.name==="blockContainer"&&l.firstChild.type.name==="numberedListItem"){let{index:u,isFirst:p,hasStart:f}=Ki(l,d,e,o),m=e.doc.nodeAt(d+1);if(n.find(d+1,d+1+m.nodeSize,h=>h.index===u&&h.isFirst===p&&h.hasStart===f).length===0)i.push(U.node(d+1,d+1+m.nodeSize,{"data-index":u.toString()},{index:u,isFirst:p,hasStart:f}));else if(d>=r.to&&c)return a.add(c),!1}});let s=i.flatMap(l=>n.find(l.from,l.to));return{decorations:n.remove(s).add(e.doc,i)}}var Yi=()=>new B({key:new I("numbered-list-indexing-decorations"),state:{init(e,t){return eo(t.tr,{decorations:_.empty})},apply(e,t){return!e.docChanged&&t.decorations?t:eo(e,t)}},props:{decorations(e){return this.getState(e)?.decorations??_.empty}}}),Qi=()=>({type:"numberedListItem",propSchema:{...C,start:{default:void 0,type:"number"}},content:"inline"}),ea=D(Qi,{meta:{isolating:!1},parse(e){if(e.tagName!=="LI")return;let t=e.parentElement;if(t!==null&&(t.tagName==="OL"||t.tagName==="DIV"&&t.parentElement?.tagName==="OL")){let o=parseInt(t.getAttribute("start")||"1"),n=P(e);return e.previousElementSibling||o===1?n:{...n,start:o}}},parseContent:({el:e,schema:t})=>At(e,t,"numberedListItem"),render(){let e=document.createElement("p");return{dom:e,contentDOM:e}},toExternalHTML(e){let t=document.createElement("li"),o=document.createElement("p");return se(e.props,t),t.appendChild(o),{dom:t,contentDOM:o}}},[v({key:"numbered-list-item-shortcuts",inputRules:[{find:/^\s?(\d+)\.\s$/,replace({match:e,editor:t}){if(E(t.prosemirrorState).blockNoteType==="heading")return;let o=parseInt(e[1]);return{type:"numberedListItem",props:{start:o===1?void 0:o}}}}],keyboardShortcuts:{Enter:({editor:e})=>qe(e,"numberedListItem"),"Mod-Shift-7":({editor:e})=>{let t=e.getTextCursorPosition();return e.schema.blockSchema[t.block.type].content==="inline"?(e.updateBlock(t.block,{type:"numberedListItem",props:{}}),!0):!1}},prosemirrorPlugins:[Yi()]})]),ta=()=>({type:"toggleListItem",propSchema:{...C},content:"inline"}),oa=D(ta,{meta:{isolating:!1},parse(e){if(e.tagName==="DETAILS")return P(e);if(e.tagName==="LI"){let t=e.parentElement;if(t&&(t.tagName==="UL"||t.tagName==="DIV"&&t.parentElement?.tagName==="UL")&&e.querySelector(":scope > details"))return P(e)}},parseContent:({el:e,schema:t})=>{let o=e.tagName==="DETAILS"?e:e.querySelector(":scope > details");if(!o)throw Error("No details found in toggleListItem parseContent");return jo(o,t,"toggleListItem")},runsBefore:["bulletListItem"],render(e,t){let o=document.createElement("p");return{...Fo(e,t,o),contentDOM:o}},toExternalHTML(e){let t=document.createElement("li"),o=document.createElement("details");o.setAttribute("open","");let n=document.createElement("summary"),r=document.createElement("p");return n.appendChild(r),o.appendChild(n),se(e.props,t),t.appendChild(o),{dom:t,contentDOM:r,childrenDOM:o}}},[v({key:"toggle-list-item-shortcuts",keyboardShortcuts:{Enter:({editor:e})=>qe(e,"toggleListItem"),"Mod-Shift-6":({editor:e})=>{let t=e.getTextCursorPosition();return e.schema.blockSchema[t.block.type].content==="inline"?(e.updateBlock(t.block,{type:"toggleListItem",props:{}}),!0):!1}}})]),na=()=>({type:"paragraph",propSchema:C,content:"inline"}),ra=D(na,{meta:{isolating:!1},parse:e=>{if(e.tagName==="P"&&e.textContent?.trim())return P(e)},render:()=>{let e=document.createElement("p");return{dom:e,contentDOM:e}},toExternalHTML:e=>{let t=document.createElement("p");return se(e.props,t),{dom:t,contentDOM:t}},runsBefore:["default","heading"]},[v({key:"paragraph-shortcuts",keyboardShortcuts:{"Mod-Alt-0":({editor:e})=>{let t=e.getTextCursorPosition();return e.schema.blockSchema[t.block.type].content==="inline"?(e.updateBlock(t.block,{type:"paragraph",props:{}}),!0):!1}}})]),ia=()=>({type:"quote",propSchema:{backgroundColor:C.backgroundColor,textColor:C.textColor},content:"inline"}),aa=D(ia,{meta:{isolating:!1},parse(e){if(e.tagName==="BLOCKQUOTE"){let{backgroundColor:t,textColor:o}=P(e);return{backgroundColor:t,textColor:o}}},render(){let e=document.createElement("blockquote");return{dom:e,contentDOM:e}},toExternalHTML(e){let t=document.createElement("blockquote");return se(e.props,t),{dom:t,contentDOM:t}}},[v({key:"quote-block-shortcuts",keyboardShortcuts:{"Mod-Alt-q":({editor:e})=>{let t=e.getTextCursorPosition();return e.schema.blockSchema[t.block.type].content==="inline"?(e.updateBlock(t.block,{type:"quote",props:{}}),!0):!1}},inputRules:[{find:RegExp("^>\\s$"),replace(){return{type:"quote",props:{}}}},{find:RegExp("^\\p{Quotation_Mark}\\s$","u"),replace(){return{type:"quote",props:{}}}}]})]),$d=120,Id=31,sa=V.create({name:"BlockNoteTableExtension",addProseMirrorPlugins:()=>[Pn({cellMinWidth:35,defaultCellMinWidth:120,View:null}),$n()],addKeyboardShortcuts(){return{Enter:()=>this.editor.state.selection.empty&&this.editor.state.selection.$head.parent.type.name==="tableParagraph"?(this.editor.commands.insertContent({type:"hardBreak"}),!0):!1,Backspace:()=>{let e=this.editor.state.selection,t=e.empty,o=e.$head.parentOffset===0,n=e.$head.node().type.name==="tableParagraph";return t&&o&&n},Tab:()=>this.editor.commands.command(({state:e,dispatch:t,view:o})=>Dt(1)(e,t,o)),"Shift-Tab":()=>this.editor.commands.command(({state:e,dispatch:t,view:o})=>Dt(-1)(e,t,o))}},extendNodeSchema(e){return{tableRole:An(Ln(e,"tableRole",{name:e.name,options:e.options,storage:e.storage}))}}}),Zo={textColor:C.textColor},la=F.create({name:"tableHeader",addOptions(){return{HTMLAttributes:{}}},content:"tableContent+",addAttributes(){return{colspan:{default:1},rowspan:{default:1},colwidth:{default:null,parseHTML:e=>{let t=e.getAttribute("colwidth");return t?t.split(",").map(o=>parseInt(o,10)):null}}}},tableRole:"header_cell",isolating:!0,parseHTML(){return[{tag:"th",getContent:(e,t)=>Jo(e,t)}]},renderHTML({HTMLAttributes:e}){return["th",oe(this.options.HTMLAttributes,e),0]}}),da=F.create({name:"tableCell",addOptions(){return{HTMLAttributes:{}}},content:"tableContent+",addAttributes(){return{colspan:{default:1},rowspan:{default:1},colwidth:{default:null,parseHTML:e=>{let t=e.getAttribute("colwidth");return t?t.split(",").map(o=>parseInt(o,10)):null}}}},tableRole:"cell",isolating:!0,parseHTML(){return[{tag:"td",getContent:(e,t)=>Jo(e,t)}]},renderHTML({HTMLAttributes:e}){return["td",oe(this.options.HTMLAttributes,e),0]}}),ca=F.create({name:"table",content:"tableRow+",group:"blockContent",tableRole:"table",marks:"deletion insertion modification",isolating:!0,parseHTML(){return[{tag:"table"}]},renderHTML({node:e,HTMLAttributes:t}){let o=Fr(this.name,"table",{...this.options.domAttributes?.blockContent||{},...t},this.options.domAttributes?.inlineContent||{}),n=document.createElement("colgroup");for(let r of e.children[0].children)if(r.attrs.colwidth)for(let i of r.attrs.colwidth){let a=document.createElement("col");i&&(a.style=`width: ${i}px`),n.appendChild(a)}else n.appendChild(document.createElement("col"));return o.dom.firstChild?.appendChild(n),o},addNodeView(){return({node:e,HTMLAttributes:t})=>{class o extends jn{constructor(r,i,a){super(r,i),this.node=r,this.cellMinWidth=i,this.blockContentHTMLAttributes=a;let s=document.createElement("div");s.className=X("bn-block-content",a.class),s.setAttribute("data-content-type","table");for(let[u,p]of Object.entries(a))u!=="class"&&s.setAttribute(u,p);let l=this.dom,d=document.createElement("div");d.className="tableWrapper-inner",d.appendChild(l.firstChild),l.appendChild(d),s.appendChild(l);let c=document.createElement("div");c.className="table-widgets-container",c.style.position="relative",l.appendChild(c),this.dom=s}ignoreMutation(r){return!r.target.closest(".tableWrapper-inner")||super.ignoreMutation(r)}update(r){if(!super.update(r))return!1;for(let[i,a]of Object.entries(Zo)){let s=we(i),l=r.attrs[i];l===a.default?this.dom.removeAttribute(s):this.dom.setAttribute(s,String(l))}return!0}}return new o(e,120,{...this.options.domAttributes?.blockContent||{},...t})}}}),ua=F.create({name:"tableParagraph",group:"tableContent",content:"inline*",parseHTML(){return[{tag:"p",getAttrs:e=>{if(typeof e=="string"||!e.textContent||!e.closest("[data-content-type]"))return!1;let t=e.parentElement;return t===null?!1:t.tagName==="TD"||t.tagName==="TH"?{}:!1},node:"tableParagraph"}]},renderHTML({HTMLAttributes:e}){return["p",e,0]}}),pa=F.create({name:"tableRow",addOptions(){return{HTMLAttributes:{}}},content:"(tableCell | tableHeader)+",tableRole:"row",marks:"deletion insertion modification",parseHTML(){return[{tag:"tr"}]},renderHTML({HTMLAttributes:e}){return["tr",oe(this.options.HTMLAttributes,e),0]}});function Jo(e,t){let o=ie.fromSchema(t).parse(e,{topNode:t.nodes.blockGroup.create()}),n=[];return o.content.descendants(r=>{if(r.isInline)return n.push(r),!1}),M.fromArray(n)}var ha=()=>Zr({node:ca,type:"table",content:"table"},Zo,[v({key:"table-extensions",tiptapExtensions:[sa,ua,la,da,pa]}),v({key:"table-keyboard-delete",keyboardShortcuts:{Backspace:({editor:e})=>{if(!(e.prosemirrorState.selection instanceof de))return!1;let t=e.getTextCursorPosition().block,o=t.content,n=0;for(let i of o.rows)for(let a of i.cells){if("type"in a&&a.content.length>0||!("type"in a)&&a.length>0)return!1;n++}let r=0;return e.prosemirrorState.selection.forEachCell(()=>{r++}),r<n?!1:(e.transact(()=>{(e.getPrevBlock(t)||e.getNextBlock(t))&&e.setTextCursorPosition(t),e.removeBlocks([t])}),!0)}}})]),to=e=>({url:e.src||void 0,previewWidth:e.width||void 0}),fa=e=>({type:"video",propSchema:{textAlignment:C.textAlignment,backgroundColor:C.backgroundColor,name:{default:""},url:{default:""},caption:{default:""},showPreview:{default:!0},previewWidth:{default:void 0,type:"number"}},content:"none"}),ma=e=>t=>{if(t.tagName==="VIDEO"){if(t.closest("figure"))return;let{backgroundColor:o}=P(t);return{...to(t),backgroundColor:o}}if(t.tagName==="FIGURE"){let o=je(t,"video");if(!o)return;let{targetElement:n,caption:r}=o,{backgroundColor:i}=P(t);return{...to(n),backgroundColor:i,caption:r}}},ga=D(fa,e=>({meta:{fileBlockAccept:["video/*"]},parse:ma(),render(t,o){let n=document.createElement("div");n.innerHTML=e.icon??'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M2 3.9934C2 3.44476 2.45531 3 2.9918 3H21.0082C21.556 3 22 3.44495 22 3.9934V20.0066C22 20.5552 21.5447 21 21.0082 21H2.9918C2.44405 21 2 20.5551 2 20.0066V3.9934ZM8 5V19H16V5H8ZM4 5V7H6V5H4ZM18 5V7H20V5H18ZM4 9V11H6V9H4ZM18 9V11H20V9H18ZM4 13V15H6V13H4ZM18 13V15H20V13H18ZM4 17V19H6V17H4ZM18 17V19H20V17H18Z"></path></svg>';let r=document.createElement("div");r.className="bn-visual-media-wrapper";let i=document.createElement("video");return i.className="bn-visual-media",o.resolveFileUrl?o.resolveFileUrl(t.props.url).then(a=>{i.src=a}):i.src=t.props.url,i.controls=!0,i.contentEditable="false",i.draggable=!1,i.width=t.props.previewWidth,r.appendChild(i),Wo(t,o,{dom:r},r,n.firstElementChild)},toExternalHTML(t){if(!t.props.url){let n=document.createElement("p");return n.textContent="Add video",{dom:n}}let o;return t.props.showPreview?(o=document.createElement("video"),o.src=t.props.url,t.props.previewWidth&&(o.width=t.props.previewWidth)):(o=document.createElement("a"),o.href=t.props.url,o.textContent=t.props.name||t.props.url),t.props.caption?t.props.showPreview?Tt(o,t.props.caption):Fe(o,t.props.caption):{dom:o}},runsBefore:["file"]}));function A(e,t,o){if(!(t in e.schema.blockSpecs))return!1;if(!o)return!0;for(let[n,r]of Object.entries(o)){if(!(n in e.schema.blockSpecs[t].config.propSchema))return!1;if(typeof r=="string"){if(e.schema.blockSpecs[t].config.propSchema[n].default!==void 0&&typeof e.schema.blockSpecs[t].config.propSchema[n].default!==r||e.schema.blockSpecs[t].config.propSchema[n].type!==void 0&&e.schema.blockSpecs[t].config.propSchema[n].type!==r)return!1}else{if(e.schema.blockSpecs[t].config.propSchema[n].default!==r.default||e.schema.blockSpecs[t].config.propSchema[n].default===void 0&&r.default===void 0&&e.schema.blockSpecs[t].config.propSchema[n].type!==r.type||typeof e.schema.blockSpecs[t].config.propSchema[n].values!=typeof r.values)return!1;if(typeof e.schema.blockSpecs[t].config.propSchema[n].values=="object"&&typeof r.values=="object"){for(let i of r.values)if(!e.schema.blockSpecs[t].config.propSchema[n].values.includes(i))return!1}}}return!0}function Od(e,t,o,n){return A(t,o,n)&&e.type===o}function oo(e){return e instanceof de}var Be=new Map;function ba(e){if(Be.has(e))return Be.get(e);let t=new Nn;return e._tiptapEditor.on("transaction",({transaction:o})=>{t.appendMapping(o.mapping)}),e._tiptapEditor.on("destroy",()=>{Be.delete(e)}),Be.set(e,t),t}function ka(e,t,o="left"){let n=et.getState(e.prosemirrorState);if(!n){let i=ba(e),a=i.maps.length;return()=>i.slice(a).map(t,o==="left"?-1:1)}let r=On(t+(o==="right"?1:-1),n.binding.type,n.binding.mapping);return()=>{let i=et.getState(e.prosemirrorState),a=_n(i.doc,i.binding.type,r,i.binding.mapping);if(a===null)throw Error("Position not found, cannot track positions");return a+(o==="right"?-1:1)}}var ya=In(e=>e.type.name==="blockContainer"),va=class{state;emitUpdate;rootEl;pluginState;constructor(t,o,n){this.editor=t,this.pluginState=void 0,this.emitUpdate=r=>{if(!this.state)throw Error("Attempting to update uninitialized suggestions menu");o(r,{...this.state,ignoreQueryLength:this.pluginState?.ignoreQueryLength})},this.rootEl=n.root,this.rootEl?.addEventListener("scroll",this.handleScroll,!0)}handleScroll=()=>{if(this.state?.show){let t=this.rootEl?.querySelector(`[data-decoration-id="${this.pluginState.decorationId}"]`);if(!t)return;this.state.referencePos=t.getBoundingClientRect().toJSON(),this.emitUpdate(this.pluginState.triggerCharacter)}};update(t,o){let n=te.getState(o),r=te.getState(t.state),i=n===void 0&&r!==void 0,a=n!==void 0&&r===void 0;if(!i&&!(n!==void 0&&r!==void 0)&&!a)return;if(this.pluginState=a?n:r,a||!this.editor.isEditable){this.state&&(this.state.show=!1),this.emitUpdate(this.pluginState.triggerCharacter);return}let s=this.rootEl?.querySelector(`[data-decoration-id="${this.pluginState.decorationId}"]`);this.editor.isEditable&&s&&(this.state={show:!0,referencePos:s.getBoundingClientRect().toJSON(),query:this.pluginState.query},this.emitUpdate(this.pluginState.triggerCharacter))}destroy(){this.rootEl?.removeEventListener("scroll",this.handleScroll,!0)}closeMenu=()=>{this.editor.transact(t=>t.setMeta(te,null))};clearQuery=()=>{this.pluginState!==void 0&&this.editor._tiptapEditor.chain().focus().deleteRange({from:this.pluginState.queryStartPos()-(this.pluginState.deleteTriggerCharacter?this.pluginState.triggerCharacter.length:0),to:this.editor.transact(t=>t.selection.from)}).run()}},te=new I("SuggestionMenuPlugin"),Lt=v(({editor:e})=>{let t=new Map,o,n=Q(void 0);return{key:"suggestionMenu",store:n,addSuggestionMenu:r=>{t.set(r.triggerCharacter,r)},removeSuggestionMenu:r=>{t.delete(r)},closeMenu:()=>{o?.closeMenu()},clearQuery:()=>{o?.clearQuery()},shown:()=>o?.state?.show||!1,openSuggestionMenu:(r,i)=>{e.headless||(e.focus(),e.transact(a=>{i?.deleteTriggerCharacter&&a.insertText(r),a.scrollIntoView().setMeta(te,{triggerCharacter:r,deleteTriggerCharacter:i?.deleteTriggerCharacter||!1,ignoreQueryLength:i?.ignoreQueryLength||!1})}))},prosemirrorPlugins:[new B({key:te,view:r=>(o=new va(e,(i,a)=>{n.setState({...a,triggerCharacter:i})},r),o),state:{init(){},apply:(r,i,a,s)=>{if(r.selection.$from.parent.type.spec.code)return i;let l=r.getMeta(te);if(typeof l=="object"&&l){i&&o?.closeMenu();let c=ka(e,s.selection.from-l.triggerCharacter.length);return{triggerCharacter:l.triggerCharacter,deleteTriggerCharacter:l.deleteTriggerCharacter!==!1,queryStartPos:()=>c()+l.triggerCharacter.length,query:"",decorationId:`id_${Math.floor(Math.random()*4294967295)}`,ignoreQueryLength:l?.ignoreQueryLength}}if(i===void 0)return i;if(s.selection.from!==s.selection.to||l===null||r.getMeta("focus")||r.getMeta("blur")||r.getMeta("pointer")||i.triggerCharacter!==void 0&&s.selection.from<i.queryStartPos()||!s.selection.$from.sameParent(s.doc.resolve(i.queryStartPos())))return;let d={...i};return d.query=s.doc.textBetween(i.queryStartPos(),s.selection.from),d}},props:{handleTextInput(r,i,a,s){if(i===a){let l=r.state.doc;for(let[d,c]of t){let u=d.length>1?l.textBetween(i-d.length,i)+s:s;if(d===u){if(c.shouldOpen&&!c.shouldOpen(r.state.tr))continue;return r.dispatch(r.state.tr.insertText(s)),r.dispatch(r.state.tr.setMeta(te,{triggerCharacter:u}).scrollIntoView()),!0}}}return!1},decorations(r){let i=this.getState(r);if(i===void 0)return null;if(!i.deleteTriggerCharacter){let a=ya(r.selection);if(a)return _.create(r.doc,[U.node(a.pos,a.pos+a.node.nodeSize,{nodeName:"span",class:"bn-suggestion-decorator","data-decoration-id":i.decorationId})])}return _.create(r.doc,[U.inline(i.queryStartPos()-i.triggerCharacter.length,i.queryStartPos(),{nodeName:"span",class:"bn-suggestion-decorator","data-decoration-id":i.decorationId})])}}})]}});function Ca(e){let t=e.getTextCursorPosition().block,o=e.schema.blockSchema[t.type].content;for(;o==="none";){if(t=e.getTextCursorPosition().nextBlock,t===void 0)return;o=e.schema.blockSchema[t.type].content,e.setTextCursorPosition(t,"end")}}function $(e,t){let o=e.getTextCursorPosition().block;if(o.content===void 0)throw Error("Slash Menu open in a block that doesn't contain content.");let n;return Array.isArray(o.content)&&(o.content.length===1&&ne(o.content[0])&&o.content[0].type==="text"&&o.content[0].text==="/"||o.content.length===0)?(n=e.updateBlock(o,t),e.setTextCursorPosition(n)):(n=e.insertBlocks([t],o,"after")[0],e.setTextCursorPosition(e.getTextCursorPosition().nextBlock)),Ca(e),n}function Nd(e){let t=[];return A(e,"heading",{level:"number"})&&(e.schema.blockSchema.heading.propSchema.level.values||[]).filter(o=>o<=3).forEach(o=>{t.push({onItemClick:()=>{$(e,{type:"heading",props:{level:o}})},badge:G(`Mod-Alt-${o}`),key:o===1?"heading":`heading_${o}`,...e.dictionary.slash_menu[o===1?"heading":`heading_${o}`]})}),A(e,"quote")&&t.push({onItemClick:()=>{$(e,{type:"quote"})},key:"quote",...e.dictionary.slash_menu.quote}),A(e,"toggleListItem")&&t.push({onItemClick:()=>{$(e,{type:"toggleListItem"})},badge:G("Mod-Shift-6"),key:"toggle_list",...e.dictionary.slash_menu.toggle_list}),A(e,"numberedListItem")&&t.push({onItemClick:()=>{$(e,{type:"numberedListItem"})},badge:G("Mod-Shift-7"),key:"numbered_list",...e.dictionary.slash_menu.numbered_list}),A(e,"bulletListItem")&&t.push({onItemClick:()=>{$(e,{type:"bulletListItem"})},badge:G("Mod-Shift-8"),key:"bullet_list",...e.dictionary.slash_menu.bullet_list}),A(e,"checkListItem")&&t.push({onItemClick:()=>{$(e,{type:"checkListItem"})},badge:G("Mod-Shift-9"),key:"check_list",...e.dictionary.slash_menu.check_list}),A(e,"paragraph")&&t.push({onItemClick:()=>{$(e,{type:"paragraph"})},badge:G("Mod-Alt-0"),key:"paragraph",...e.dictionary.slash_menu.paragraph}),A(e,"codeBlock")&&t.push({onItemClick:()=>{$(e,{type:"codeBlock"})},badge:G("Mod-Alt-c"),key:"code_block",...e.dictionary.slash_menu.code_block}),A(e,"divider")&&t.push({onItemClick:()=>{$(e,{type:"divider"})},key:"divider",...e.dictionary.slash_menu.divider}),A(e,"table")&&t.push({onItemClick:()=>{$(e,{type:"table",content:{type:"tableContent",rows:[{cells:["","",""]},{cells:["","",""]}]}})},badge:void 0,key:"table",...e.dictionary.slash_menu.table}),A(e,"image",{url:"string"})&&t.push({onItemClick:()=>{let o=$(e,{type:"image"});e.getExtension(J)?.showMenu(o.id)},key:"image",...e.dictionary.slash_menu.image}),A(e,"video",{url:"string"})&&t.push({onItemClick:()=>{let o=$(e,{type:"video"});e.getExtension(J)?.showMenu(o.id)},key:"video",...e.dictionary.slash_menu.video}),A(e,"audio",{url:"string"})&&t.push({onItemClick:()=>{let o=$(e,{type:"audio"});e.getExtension(J)?.showMenu(o.id)},key:"audio",...e.dictionary.slash_menu.audio}),A(e,"file",{url:"string"})&&t.push({onItemClick:()=>{let o=$(e,{type:"file"});e.getExtension(J)?.showMenu(o.id)},key:"file",...e.dictionary.slash_menu.file}),A(e,"heading",{level:"number",isToggleable:"boolean"})&&(e.schema.blockSchema.heading.propSchema.level.values||[]).filter(o=>o<=3).forEach(o=>{t.push({onItemClick:()=>{$(e,{type:"heading",props:{level:o,isToggleable:!0}})},key:o===1?"toggle_heading":`toggle_heading_${o}`,...e.dictionary.slash_menu[o===1?"toggle_heading":`toggle_heading_${o}`]})}),A(e,"heading",{level:"number"})&&(e.schema.blockSchema.heading.propSchema.level.values||[]).filter(o=>o>3).forEach(o=>{t.push({onItemClick:()=>{$(e,{type:"heading",props:{level:o}})},badge:G(`Mod-Alt-${o}`),key:`heading_${o}`,...e.dictionary.slash_menu[`heading_${o}`]})}),t.push({onItemClick:()=>{e.getExtension(Lt)?.openSuggestionMenu(":",{deleteTriggerCharacter:!0,ignoreQueryLength:!0})},key:"emoji",...e.dictionary.slash_menu.emoji}),t}function Dd(e,t){return e.filter(({title:o,aliases:n})=>o.toLowerCase().includes(t.toLowerCase())||n&&n.filter(r=>r.toLowerCase().includes(t.toLowerCase())).length!==0)}var wa={audio:Ti(),bulletListItem:Zi(),checkListItem:Xi(),codeBlock:Pi(),divider:Ii(),file:Ni(),heading:Ri(),image:qi(),numberedListItem:ea(),paragraph:ra(),quote:aa(),table:ha(),toggleListItem:oa(),video:ga()},xa=No({type:"textColor",propSchema:"string"},{render:()=>{let e=document.createElement("span");return{dom:e,contentDOM:e}},toExternalHTML:e=>{let t=document.createElement("span");return e!==C.textColor.default&&(t.style.color=e in Z?Z[e].text:e),{dom:t,contentDOM:t}},parse:e=>{if(e.tagName==="SPAN"&&e.style.color)return e.style.color}}),Sa=No({type:"backgroundColor",propSchema:"string"},{render:()=>{let e=document.createElement("span");return{dom:e,contentDOM:e}},toExternalHTML:e=>{let t=document.createElement("span");return e!==C.backgroundColor.default&&(t.style.backgroundColor=e in Z?Z[e].background:e),{dom:t,contentDOM:t}},parse:e=>{if(e.tagName==="SPAN"&&e.style.backgroundColor)return e.style.backgroundColor}}),Xo={bold:me(zn,"boolean"),italic:me(Rn,"boolean"),underline:me(Vn,"boolean"),strike:me(Hn,"boolean"),code:me(Dn,"boolean"),textColor:xa,backgroundColor:Sa};_o(Xo);var Ko={text:{config:"text",implementation:{}},link:{config:"link",implementation:{}}},Ea=Io(Ko),Ma=class Yo extends si{static create(t){return new Yo({blockSpecs:t?.blockSpecs??wa,inlineContentSpecs:t?.inlineContentSpecs??Ko,styleSpecs:t?.styleSpecs??Xo})}};function Qo(e){let t=Array.from(e.classList).filter(o=>!o.startsWith("bn-"))||[];t.length>0?e.className=t.join(" "):e.removeAttribute("class")}function en(e,t,o,n){let r;if(!t)throw Error("blockContent is required");if(typeof t=="string")r=z([t],e.pmSchema);else if(Array.isArray(t))r=z(t,e.pmSchema);else if(t.type==="tableContent")r=ze(t,e.pmSchema);else throw new j(t.type);let i=(n?.document??document).createDocumentFragment();for(let a of r)if(a.type.name!=="text"&&e.schema.inlineContentSchema[a.type.name]){let s=e.schema.inlineContentSpecs[a.type.name].implementation;if(s){let l=St(a,e.schema.inlineContentSchema,e.schema.styleSchema),d=s.toExternalHTML?s.toExternalHTML(l,e):s.render.call({renderType:"dom",props:void 0},l,()=>{},e);if(d){if(i.appendChild(d.dom),d.contentDOM){let c=o.serializeFragment(a.content,n);d.contentDOM.dataset.editable="",d.contentDOM.appendChild(c)}continue}}}else if(a.type.name==="text"){let s=document.createTextNode(a.textContent);for(let l of a.marks.toReversed())if(l.type.name in e.schema.styleSpecs){let d=(e.schema.styleSpecs[l.type.name].implementation.toExternalHTML??e.schema.styleSpecs[l.type.name].implementation.render)(l.attrs.stringValue,e);d.contentDOM.appendChild(s),s=d.dom}else{let d=l.type.spec.toDOM(l,!0),c=le.renderSpec(document,d);c.contentDOM.appendChild(s),s=c.dom}i.appendChild(s)}else{let s=o.serializeFragment(M.from([a]),n);i.appendChild(s)}return i.childNodes.length===1&&i.firstChild?.nodeType===1&&Qo(i.firstChild),i}function Ba(e,t,o,n,r,i,a,s){let l=s?.document??document,d=t.pmSchema.nodes.blockContainer,c=o.props||{};for(let[g,k]of Object.entries(t.schema.blockSchema[o.type].propSchema))!(g in c)&&k.default!==void 0&&(c[g]=k.default);let u=d.spec?.toDOM?.(d.create({id:o.id,...c})),p=Array.from(u.dom.attributes),f=t.blockImplementations[o.type].implementation,m=f.toExternalHTML?.call({},{...o,props:c},t,{nestingLevel:a})||f.render.call({},{...o,props:c},t),h=l.createDocumentFragment();if(m.dom.classList.contains("bn-block-content")){let g=[...p,...Array.from(m.dom.attributes)].filter(k=>k.name.startsWith("data")&&k.name!=="data-content-type"&&k.name!=="data-file-block"&&k.name!=="data-node-view-wrapper"&&k.name!=="data-node-type"&&k.name!=="data-id"&&k.name!=="data-editable");for(let k of g)m.dom.firstChild.setAttribute(k.name,k.value);Qo(m.dom.firstChild),a>0&&m.dom.firstChild.setAttribute("data-nesting-level",a.toString()),h.append(...Array.from(m.dom.childNodes))}else h.append(m.dom),a>0&&m.dom.setAttribute("data-nesting-level",a.toString());if(m.contentDOM&&o.content){let g=en(t,o.content,n,s);m.contentDOM.appendChild(g)}let b;if(r.has(o.type)?b="OL":i.has(o.type)&&(b="UL"),b){if(e.lastChild?.nodeName!==b){let g=l.createElement(b);b==="OL"&&"start"in c&&c.start&&c?.start!==1&&g.setAttribute("start",c.start+""),e.append(g)}e.lastChild.appendChild(h)}else e.append(h);if(o.children&&o.children.length>0){let g=l.createDocumentFragment();if(tn(g,t,o.children,n,r,i,a+1,s),e.lastChild?.nodeName==="UL"||e.lastChild?.nodeName==="OL")for(;g.firstChild?.nodeName==="UL"||g.firstChild?.nodeName==="OL";)e.lastChild.lastChild.appendChild(g.firstChild);"childrenDOM"in m&&m.childrenDOM?m.childrenDOM.append(g):t.pmSchema.nodes[o.type].isInGroup("blockContent")?e.append(g):m.contentDOM?.append(g)}}var tn=(e,t,o,n,r,i,a=0,s)=>{for(let l of o)Ba(e,t,l,n,r,i,a,s)},Ta=(e,t,o,n,r,i)=>{let a=(i?.document??document).createDocumentFragment();return tn(a,e,t,o,n,r,0,i),a},We=(e,t)=>{let o=le.fromSchema(e);return{exportBlocks:(n,r)=>{let i=Ta(t,n,o,new Set(["numberedListItem"]),new Set(["bulletListItem","checkListItem","toggleListItem"]),r),a=document.createElement("div");return a.append(i),a.innerHTML},exportInlineContent:(n,r)=>{let i=en(t,n,o,r),a=document.createElement("div");return a.append(i.cloneNode(!0)),a.innerHTML}}};function Aa(e,t){if(t===0)return;let o=e.resolve(t);for(let n=o.depth;n>0;n--){let r=o.node(n);if(Mt(r))return r.attrs.id}}function La(e){return e.getMeta("paste")?{type:"paste"}:e.getMeta("uiEvent")==="drop"?{type:"drop"}:e.getMeta("history$")?{type:e.getMeta("history$").redo?"redo":"undo"}:e.getMeta("y-sync$")?e.getMeta("y-sync$").isUndoRedoOperation?{type:"undo-redo"}:{type:"yjs-remote"}:{type:"local"}}function no(e){let t={},o={},n=T(e);return e.descendants((r,i)=>{if(!Mt(r))return!0;let a=Aa(e,i),s=a??"__root__";o[s]||(o[s]=[]);let l=x(r,n);return t[r.attrs.id]={block:l,parentId:a},o[s].push(r.attrs.id),!0}),{byId:t,childrenByParent:o}}function Pa(e,t){let o=new Set;if(!e||!t)return o;let n=new Set(e),r=t.filter(h=>n.has(h)),i=e.filter(h=>r.includes(h));if(i.length<=1||r.length<=1)return o;let a={};for(let h=0;h<i.length;h++)a[i[h]]=h;let s=r.map(h=>a[h]),l=s.length,d=[],c=[],u=Array(l).fill(-1),p=(h,b)=>{let g=0,k=h.length;for(;g<k;){let y=g+k>>>1;h[y]<b?g=y+1:k=y}return g};for(let h=0;h<l;h++){let b=s[h],g=p(d,b);g>0&&(u[h]=c[g-1]),g===d.length?(d.push(b),c.push(h)):(d[g]=b,c[g]=h)}let f=new Set,m=c[c.length-1]??-1;for(;m!==-1;)f.add(m),m=u[m];for(let h=0;h<r.length;h++)f.has(h)||o.add(r[h]);return o}function on(e,t=[]){let o=La(e),n=kt(e.before,[e,...t]),r=no(n.before),i=no(n.doc),a=[],s=new Set;Object.keys(i.byId).filter(p=>!(p in r.byId)).forEach(p=>{a.push({type:"insert",block:i.byId[p].block,source:o,prevBlock:void 0}),s.add(p)}),Object.keys(r.byId).filter(p=>!(p in i.byId)).forEach(p=>{a.push({type:"delete",block:r.byId[p].block,source:o,prevBlock:void 0}),s.add(p)}),Object.keys(i.byId).filter(p=>p in r.byId).forEach(p=>{let f=r.byId[p],m=i.byId[p];f.parentId===m.parentId?qn({...f.block,children:void 0},{...m.block,children:void 0})||(a.push({type:"update",block:m.block,prevBlock:f.block,source:o}),s.add(p)):(a.push({type:"move",block:m.block,prevBlock:f.block,source:o,prevParent:f.parentId?r.byId[f.parentId]?.block:void 0,currentParent:m.parentId?i.byId[m.parentId]?.block:void 0}),s.add(p))});let l=r.childrenByParent,d=i.childrenByParent,c=new Set([...Object.keys(l),...Object.keys(d)]),u=new Set;return c.forEach(p=>{let f=Pa(l[p],d[p]);f.size!==0&&f.forEach(m=>{let h=r.byId[m],b=i.byId[m];!h||!b||h.parentId===b.parentId&&(s.has(m)||(h.parentId??"__root__")===p&&(u.has(m)||(u.add(m),a.push({type:"move",block:b.block,prevBlock:h.block,source:o,prevParent:h.parentId?r.byId[h.parentId]?.block:void 0,currentParent:b.parentId?i.byId[b.parentId]?.block:void 0}),s.add(m))))})}),a}var nn=v(()=>{let e=[];return{key:"blockChange",prosemirrorPlugins:[new B({key:new I("blockChange"),filterTransaction:t=>{let o;return e.reduce((n,r)=>n===!1?n:r({getChanges(){return o||(o=on(t),o)},tr:t})!==!1,!0)}})],subscribe(t){return e.push(t),()=>{e.splice(e.indexOf(t),1)}}}});function ro(e){let t=e.charAt(0)==="#"?e.substring(1,7):e,o=parseInt(t.substring(0,2),16),n=parseInt(t.substring(2,4),16),r=parseInt(t.substring(4,6),16),i=[o/255,n/255,r/255].map(a=>a<=.03928?a/12.92:((a+.055)/1.055)**2.4);return .2126*i[0]+.7152*i[1]+.0722*i[2]<=.179}function $a(e){let t=document.createElement("span");t.classList.add("bn-collaboration-cursor__base");let o=document.createElement("span");o.setAttribute("contentedEditable","false"),o.classList.add("bn-collaboration-cursor__caret"),o.setAttribute("style",`background-color: ${e.color}; color: ${ro(e.color)?"white":"black"}`);let n=document.createElement("span");return n.classList.add("bn-collaboration-cursor__label"),n.setAttribute("style",`background-color: ${e.color}; color: ${ro(e.color)?"white":"black"}`),n.insertBefore(document.createTextNode(e.name),null),o.insertBefore(n,null),t.insertBefore(document.createTextNode(""),null),t.insertBefore(o,null),t.insertBefore(document.createTextNode(""),null),t}var dt=v(({options:e})=>{let t=new Map,o=e.provider&&"awareness"in e.provider&&typeof e.provider.awareness=="object"?e.provider.awareness:void 0;return o&&("setLocalStateField"in o&&typeof o.setLocalStateField=="function"&&o.setLocalStateField("user",e.user),"on"in o&&typeof o.on=="function"&&e.showCursorLabels!=="always"&&o.on("change",({updated:n})=>{for(let r of n){let i=t.get(r);i&&(setTimeout(()=>{i.element.setAttribute("data-active","")},10),i.hideTimeout&&clearTimeout(i.hideTimeout),t.set(r,{element:i.element,hideTimeout:setTimeout(()=>{i.element.removeAttribute("data-active")},2e3)}))}})),{key:"yCursor",prosemirrorPlugins:[o?dr(o,{selectionBuilder:br,cursorBuilder(n,r){let i=t.get(r);if(!i){let a=(e.renderCursor??$a)(n);e.showCursorLabels!=="always"&&(a.addEventListener("mouseenter",()=>{let s=t.get(r);s.element.setAttribute("data-active",""),s.hideTimeout&&(clearTimeout(s.hideTimeout),t.set(r,{element:s.element,hideTimeout:void 0}))}),a.addEventListener("mouseleave",()=>{let s=t.get(r);t.set(r,{element:s.element,hideTimeout:setTimeout(()=>{s.element.removeAttribute("data-active")},2e3)})})),i={element:a,hideTimeout:void 0},t.set(r,i)}return i.element}}):void 0].filter(Boolean),dependsOn:["ySync"],updateUser(n){o?.setLocalStateField("user",n)}}}),$e=v(({options:e})=>({key:"ySync",prosemirrorPlugins:[cr(e.fragment)],runsBefore:["default"]})),Ie=v(()=>({key:"yUndo",prosemirrorPlugins:[hr()],dependsOn:["yCursor","ySync"],undoCommand:pr,redoCommand:ur}));function Ia(e,t){let o=e.doc;if(e._item===null){let n=Array.from(o.share.keys()).find(r=>o.share.get(r)===e);if(n==null)throw Error("type does not exist in other ydoc");return t.get(n,e.constructor)}else{let n=e._item,r=t.store.clients.get(n.id.client)??[];return r[mr(r,n.id.clock)].content.type}}var Oa=v(({editor:e,options:t})=>{let o,n=Q({isForked:!1});return{key:"yForkDoc",store:n,fork(){if(o)return;let r=t.fragment;if(!r)throw Error("No fragment to fork from");let i=new sr;Ht(i,Vt(r.doc));let a=Ia(r,i);o={undoStack:Rt.getState(e.prosemirrorState).undoManager.undoStack,originalFragment:r,forkedFragment:a},e.unregisterExtension([Ie,dt,$e]);let s={...t,fragment:a};e.registerExtension([$e(s),Ie()]),n.setState({isForked:!0})},merge({keepChanges:r}){if(!o)return;e.unregisterExtension(["ySync","yCursor","yUndo"]);let{originalFragment:i,forkedFragment:a,undoStack:s}=o;if(e.registerExtension([$e(t),dt(t),Ie()]),Rt.getState(e.prosemirrorState).undoManager.undoStack=s,r){let l=Vt(a.doc,lr(i.doc));Ht(i.doc,l,e)}o=void 0,n.setState({isForked:!1})}}}),rn=(e,t)=>{t(e),e.forEach(o=>{o instanceof To&&rn(o,t)})},_a=[(e,t)=>{let o=new Map;return e.forEach(n=>{n instanceof To&&rn(n,r=>{if(r.nodeName==="blockContainer"&&r.hasAttribute("id")){let i=r.getAttribute("textColor"),a=r.getAttribute("backgroundColor"),s={textColor:i===C.textColor.default?void 0:i,backgroundColor:a===C.backgroundColor.default?void 0:a};(s.textColor||s.backgroundColor)&&o.set(r.getAttribute("id"),s)}})}),o.size===0?!1:(t.doc.descendants((n,r)=>{if(n.type.name==="blockContainer"&&o.has(n.attrs.id)){let i=t.doc.nodeAt(r+1);if(!i)throw Error("No element found");t.setNodeMarkup(r+1,void 0,{...i.attrs,...o.get(n.attrs.id)})}}),!0)}],Na=v(({options:e})=>{let t=!1;return{key:"schemaMigration",prosemirrorPlugins:[new B({key:new I("schemaMigration"),appendTransaction:(o,n,r)=>{if(t||!o.some(a=>a.getMeta("y-sync$"))||o.every(a=>!a.docChanged)||!e.fragment.firstChild)return;let i=r.tr;for(let a of _a)a(e.fragment,i);if(t=!0,i.docChanged)return i}})]}});function io(e,t){return!e||!t?!1:!!e.closest(`.${t}`)}function Da(e,t,o,n,r){let i=e.state.doc.resolve(t.pos);if(i.parent.inlineContent||t.orientation==="inline")return null;let a=i.nodeBefore,s=i.nodeAfter;if(!a&&!s)return null;let l=t.orientation==="block-vertical-left"||t.orientation==="block-vertical-right",d=l?t.pos:t.pos-(a?a.nodeSize:0),c=e.nodeDOM(d);if(!c)return null;let u=c.getBoundingClientRect();if(l){let m=o/2*n,h=t.orientation==="block-vertical-left"?u.left:u.right;return{left:h-m,right:h+m,top:u.top,bottom:u.bottom}}let p=a?u.bottom:u.top;a&&s&&(p=(p+e.nodeDOM(t.pos).getBoundingClientRect().top)/2);let f=o/2*r;return{left:u.left,right:u.right,top:p-f,bottom:p+f}}function Ha(e,t,o,n){let r=e.coordsAtPos(t.pos),i=o/2*n;return{left:r.left-i,right:r.left+i,top:r.top,bottom:r.bottom}}function Va(e,t){e.classList.toggle("prosemirror-dropcursor-inline",t==="inline"),e.classList.toggle("prosemirror-dropcursor-block-horizontal",t==="block-horizontal"),e.classList.toggle("prosemirror-dropcursor-block-vertical-left",t==="block-vertical-left"),e.classList.toggle("prosemirror-dropcursor-block-vertical-right",t==="block-vertical-right"),e.classList.toggle("prosemirror-dropcursor-block",t==="block-horizontal"),e.classList.toggle("prosemirror-dropcursor-vertical",t==="block-vertical-left"||t==="block-vertical-right")}function Ra(e){if(!e||e===document.body&&getComputedStyle(e).position==="static")return{parentLeft:-window.pageXOffset,parentTop:-window.pageYOffset};let t=e.getBoundingClientRect(),o=t.width/e.offsetWidth,n=t.height/e.offsetHeight;return{parentLeft:t.left-e.scrollLeft*o,parentTop:t.top-e.scrollTop*n}}var za=v(({editor:e,options:t})=>{let o=null,n=null,r=-1,i=null,a={width:t.dropCursor?.width??5,color:t.dropCursor?.color??"#ddeeff",exclude:t.dropCursor?.exclude??"bn-drag-exclude",hooks:t.dropCursor?.hooks},s=h=>{h?.pos===o?.pos&&h?.orientation===o?.orientation||(o=h,h==null?(n&&n.parentNode&&n.parentNode.removeChild(n),n=null):l())},l=()=>{if(!o)return;let h=e.prosemirrorView,b=h.dom,g=b.getBoundingClientRect(),k=g.width/b.offsetWidth,y=g.height/b.offsetHeight,w=Da(h,o,a.width,k,y)??Ha(h,o,a.width,k),S=h.dom.offsetParent;n||(n=S.appendChild(document.createElement("div")),n.style.cssText="position: absolute; z-index: 50; pointer-events: none;",a.color&&(n.style.backgroundColor=a.color)),Va(n,o.orientation);let{parentLeft:q,parentTop:Ge}=Ra(S);n.style.left=(w.left-q)/k+"px",n.style.top=(w.top-Ge)/y+"px",n.style.width=(w.right-w.left)/k+"px",n.style.height=(w.bottom-w.top)/y+"px"},d=h=>{clearTimeout(r),r=window.setTimeout(()=>s(null),h)},c=h=>{let b=h;i=b.target instanceof Element?b.target:null},u=h=>{let b=h;if(i&&io(i,a.exclude)||b.target instanceof Element&&io(b.target,a.exclude))return;let g=e.prosemirrorView;if(!g.editable)return;let k=g.posAtCoords({left:b.clientX,top:b.clientY}),y=k&&k.inside>=0&&g.state.doc.nodeAt(k.inside),w=y&&y.type.spec.disableDropCursor,S=typeof w=="function"?w(g,k,b):w;if(k&&!S){let q=k.pos;if(g.dragging&&g.dragging.slice){let he=Wn(g.state.doc,q,g.dragging.slice);he!=null&&(q=he)}let Ge=!g.state.doc.resolve(q).parent.inlineContent,_t={pos:q,orientation:Ge?"block-horizontal":"inline"},Nt=_t;if(a.hooks?.computeDropPosition){let he=a.hooks.computeDropPosition({editor:e,event:b,view:g,defaultPosition:_t});if(he===null){s(null);return}Nt=he}s(Nt),d(5e3)}},p=h=>{let b=h;(!(b.relatedTarget instanceof Node)||!e.prosemirrorView.dom.contains(b.relatedTarget))&&s(null)},f=()=>{d(20)},m=()=>{d(20),i=null};return{key:"dropCursor",mount({signal:h,dom:b,root:g}){g.addEventListener("dragstart",c,{capture:!0,signal:h}),b.addEventListener("dragover",u,{signal:h}),b.addEventListener("dragleave",p,{signal:h}),b.addEventListener("drop",f,{signal:h}),b.addEventListener("dragend",m,{signal:h}),h.addEventListener("abort",()=>{clearTimeout(r),s(null)})}}}),ct=v(({editor:e})=>{let t=Q(!1),o=()=>e.transact(n=>{if(n.selection.empty||n.selection instanceof L&&n.doc.textBetween(n.selection.from,n.selection.to).length===0)return!1;let r=!1;return n.selection.content().content.descendants(i=>(i.type.spec.code&&(r=!0),!r)),!r});return{key:"formattingToolbar",store:t,mount({dom:n,signal:r}){let i=!1,a=!1,s=e.onChange(()=>{i||a||t.setState(o())}),l=e.onSelectionChange(()=>{i||a||t.setState(o())});n.addEventListener("pointerdown",()=>{i=!0,t.setState(!1)},{signal:r}),e.prosemirrorView.root.addEventListener("pointerup",()=>{i=!1,e.isFocused()&&t.setState(o())},{signal:r,capture:!0}),n.addEventListener("pointercancel",()=>{i=!0},{signal:r,capture:!0}),e.prosemirrorView.root.addEventListener("dragstart",()=>{a=!0,t.setState(!1)},{signal:r}),e.prosemirrorView.root.addEventListener("dragend",()=>{a=!1},{signal:r}),r.addEventListener("abort",()=>{s(),l()})}}}),Ua=v(()=>({key:"history",prosemirrorPlugins:[Jn()],undoCommand:Zn,redoCommand:Gn})),ja=v(({editor:e})=>{function t(r){let i=e.prosemirrorView.nodeDOM(r);for(;i&&i.parentElement;){if(i.nodeName==="A")return i;i=i.parentElement}return null}function o(r){let i=e.getLinkMarkAtPos(r);if(i)return{range:{from:i.from,to:i.to},mark:{attrs:{href:i.href}},get text(){return i.text},get position(){return Eo(e.prosemirrorView,i.from,i.to).toJSON()}}}function n(){return e.transact(r=>{if(r.selection.empty)return o(r.selection.anchor)})}return{key:"linkToolbar",getLinkAtSelection:n,getLinkElementAtPos:t,getMarkAtPos(r,i){return o(r)},getLinkAtElement(r){return e.transact(()=>o(e.prosemirrorView.posAtDOM(r,0)+1))},editLink(r,i,a=e.transact(s=>s.selection.anchor)){e.editLink(r,i,a)},deleteLink(r=e.transact(i=>i.selection.anchor)){e.deleteLink(r)}}}),Hd=["http","https","ftp","ftps","mailto","tel","callto","sms","cid","xmpp"],Vd="https",Fa=new I("node-selection-keyboard"),qa=v(()=>({key:"nodeSelectionKeyboard",prosemirrorPlugins:[new B({key:Fa,props:{handleKeyDown:(e,t)=>{if("node"in e.state.selection){if(t.ctrlKey||t.metaKey)return!1;if(t.key.length===1)return t.preventDefault(),!0;if(t.key==="Enter"&&!t.isComposing&&!t.shiftKey&&!t.altKey&&!t.ctrlKey&&!t.metaKey){let o=e.state.tr;return e.dispatch(o.insert(e.state.tr.selection.$to.after(),e.state.schema.nodes.paragraph.createChecked()).setSelection(new L(o.doc.resolve(e.state.tr.selection.$to.after()+1)))),!0}}return!1}}})]})),Wa=new I("blocknote-placeholder"),Ga=v(({editor:e,options:t})=>{let o=t.placeholders;return{key:"placeholder",prosemirrorPlugins:[new B({key:Wa,view:n=>{let r=`placeholder-selector-${xo()}`;n.dom.classList.add(r);let i=document.createElement("style"),a=e._tiptapEditor.options.injectNonce;a&&i.setAttribute("nonce",a),n.root instanceof window.ShadowRoot?n.root.append(i):n.root.head.appendChild(i);let s=i.sheet,l=(d="")=>`.${r} .bn-block-content${d}:has(.ProseMirror-trailingBreak:only-child):after`;try{let{default:d,emptyDocument:c,...u}=o||{};for(let[p,f]of Object.entries(u)){let m=`[data-content-type="${p}"]`;s.insertRule(`${l(m)} { content: ${JSON.stringify(f)}; }`)}s.insertRule(`${l("[data-is-only-empty-block]")} { content: ${JSON.stringify(c)}; }`),s.insertRule(`${l("[data-is-empty-and-focused]")} { content: ${JSON.stringify(d)}; }`)}catch(d){console.warn("Failed to insert placeholder CSS rule - this is likely due to the browser not supporting certain CSS pseudo-element selectors (:has, :only-child:, or :before)",d)}return{destroy:()=>{n.root instanceof window.ShadowRoot?n.root.removeChild(i):n.root.head.removeChild(i)}}},props:{decorations:n=>{let{doc:r,selection:i}=n;if(!e.isEditable||!i.empty||i.$from.parent.type.spec.code)return;let a=[];n.doc.content.size===6&&a.push(U.node(2,4,{"data-is-only-empty-block":"true"}));let s=i.$anchor,l=s.parent;if(l.content.size===0){let d=s.before();a.push(U.node(d,d+l.nodeSize,{"data-is-empty-and-focused":"true"}))}return _.create(r,a)}}})]}}),ao=new I("previous-blocks"),Za={index:"index",level:"level",type:"type",depth:"depth","depth-change":"depth-change"},Ja=v(()=>{let e;return{key:"previousBlockType",prosemirrorPlugins:[new B({key:ao,view(t){return{update:async(o,n)=>{this.key?.getState(o.state).updatedBlocks.size>0&&(e=setTimeout(()=>{o.dispatch(o.state.tr.setMeta(ao,{clearUpdate:!0}))},0))},destroy:()=>{e&&clearTimeout(e)}}},state:{init(){return{prevTransactionOldBlockAttrs:{},currentTransactionOldBlockAttrs:{},updatedBlocks:new Set}},apply(t,o,n,r){if(o.currentTransactionOldBlockAttrs={},o.updatedBlocks.clear(),!t.docChanged)return o;let i=t.changedRange();if(!i)return o;let a=t.mapping.invert(),s={from:a.map(i.from,-1),to:a.map(i.to,1)},l={},d=Ne(n.doc,s,p=>p.attrs.id),c=new Map(d.map(p=>[p.node.attrs.id,p])),u=Ne(r.doc,i,p=>p.attrs.id);for(let p of u){let f=c.get(p.node.attrs.id),m=f?.node.firstChild,h=p.node.firstChild;if(f&&m&&h){let b={index:h.attrs.index,level:h.attrs.level,type:h.type.name,depth:r.doc.resolve(p.pos).depth},g={index:m.attrs.index,level:m.attrs.level,type:m.type.name,depth:n.doc.resolve(f.pos).depth};l[p.node.attrs.id]=g,o.currentTransactionOldBlockAttrs[p.node.attrs.id]=g,(g.index!==b.index||g.level!==b.level||g.type!==b.type||g.depth!==b.depth)&&(g["depth-change"]=g.depth-b.depth,o.updatedBlocks.add(p.node.attrs.id))}}return o.prevTransactionOldBlockAttrs=l,o}},props:{decorations(t){let o=this.getState(t);if(o.updatedBlocks.size===0)return;let n=[];return t.doc.descendants((r,i)=>{if(!r.attrs.id||!o.updatedBlocks.has(r.attrs.id))return;let a=o.currentTransactionOldBlockAttrs[r.attrs.id],s={};for(let[l,d]of Object.entries(a))s["data-prev-"+Za[l]]=d||"none";n.push(U.node(i,i+r.nodeSize,{...s}))}),_.create(t.doc,n)}}})]}});function an(e,t){for(;e&&e.parentElement&&e.parentElement!==t.dom&&e.getAttribute?.("data-node-type")!=="blockContainer";)e=e.parentElement;if(e.getAttribute?.("data-node-type")==="blockContainer")return{node:e,id:e.getAttribute("data-id")}}function Xa(){let e=t=>{let o=t.children.length;for(let n=0;n<o;n++){let r=t.children[n];if(r.type==="element"&&(e(r),r.tagName==="u"))if(r.children.length>0){t.children.splice(n,1,...r.children);let i=r.children.length-1;o+=i,n+=i}else t.children.splice(n,1),o--,n--}};return e}function Ka(){let e=t=>{if(t.children&&"length"in t.children&&t.children.length)for(let o=t.children.length-1;o>=0;o--){let n=t.children[o],r=o+1<t.children.length?t.children[o+1]:void 0;n.type==="element"&&n.tagName==="input"&&n.properties?.type==="checkbox"&&r?.type==="element"&&r.tagName==="p"?(r.tagName="span",r.children.splice(0,0,gr(document.createTextNode(" ")))):e(n)}};return e}function Ya(){return e=>{fr(e,"element",(t,o,n)=>{if(n&&t.tagName==="video"){let r=t.properties?.src||t.properties?.["data-url"]||"",i=t.properties?.title||t.properties?.["data-name"]||"";n.children[o]={type:"text",value:``}}})}}function Pt(e){return Mo().use(rr,{fragment:!0}).use(Ya).use(Xa).use(Ka).use(ir).use(Bo).use(ar,{handlers:{text:t=>t.value}}).processSync(e).value}function Qa(e,t,o,n){return Pt(We(t,o).exportBlocks(e,n))}function sn(e){let t=[];return e.descendants(o=>{let n=T(o);return o.type.name==="blockContainer"&&o.firstChild?.type.name==="blockGroup"?!0:o.type.name==="columnList"&&o.childCount===1?(o.firstChild?.forEach(r=>{t.push(x(r,n))}),!1):o.type.isInGroup("bnBlock")?(t.push(x(o,n)),!1):!0}),t}var ut=class Oe extends Pe{nodes;constructor(t,o){super(t,o);let n=t.node();this.nodes=[],t.doc.nodesBetween(t.pos,o.pos,(r,i,a)=>{if(a!==null&&a.eq(n))return this.nodes.push(r),!1})}static create(t,o,n=o){return new Oe(t.resolve(o),t.resolve(n))}content(){return new H(M.from(this.nodes),0,0)}eq(t){if(!(t instanceof Oe)||this.nodes.length!==t.nodes.length||this.from!==t.from||this.to!==t.to)return!1;for(let o=0;o<this.nodes.length;o++)if(!this.nodes[o].eq(t.nodes[o]))return!1;return!0}map(t,o){let n=o.mapResult(this.from),r=o.mapResult(this.to);return r.deleted?Pe.near(t.resolve(n.pos)):n.deleted?Pe.near(t.resolve(r.pos)):new Oe(t.resolve(n.pos),t.resolve(r.pos))}toJSON(){return{type:"multiple-node",anchor:this.anchor,head:this.head}}};Pe.jsonID("multiple-node",ut);var R;function es(e,t){let o,n,r=t.resolve(e.from).node().type.spec.group==="blockContent",i=t.resolve(e.to).node().type.spec.group==="blockContent",a=Math.min(e.$anchor.depth,e.$head.depth);if(r&&i){let s=e.$from.start(a-1),l=e.$to.end(a-1);o=t.resolve(s-1).pos,n=t.resolve(l+1).pos}else o=e.from,n=e.to;return{from:o,to:n}}function so(e,t,o=t){t===o&&(o+=e.state.doc.resolve(t+1).node().nodeSize);let n=e.domAtPos(t).node.cloneNode(!0),r=e.domAtPos(t).node,i=(c,u)=>Array.prototype.indexOf.call(c.children,u),a=i(r,e.domAtPos(t+1).node.parentElement),s=i(r,e.domAtPos(o-1).node.parentElement);for(let c=r.childElementCount-1;c>=0;c--)(c>s||c<a)&&n.removeChild(n.children[c]);ln(e.root),R=n;let l=R.getElementsByTagName("iframe");for(let c=0;c<l.length;c++){let u=l[c],p=u.parentElement;p&&p.removeChild(u)}let d=e.dom.className.split(" ").filter(c=>c!=="ProseMirror"&&c!=="bn-root"&&c!=="bn-editor").join(" ");R.className=R.className+" bn-drag-preview "+d,e.root instanceof ShadowRoot?e.root.appendChild(R):e.root.body.appendChild(R)}function ln(e){R!==void 0&&(e instanceof ShadowRoot?e.removeChild(R):e.body.removeChild(R),R=void 0)}function ts(e,t,o){if(!e.dataTransfer||o.headless)return;let n=o.prosemirrorView,r=N(t.id,n.state.doc);if(!r)throw Error(`Block with ID ${t.id} not found`);let i=r.posBeforeNode;if(i!=null){let a=n.state.selection,s=n.state.doc,{from:l,to:d}=es(a,s),c=l<=i&&i<d,u=a.$anchor.node()!==a.$head.node()||a instanceof ut;c&&u?(n.dispatch(n.state.tr.setSelection(ut.create(s,l,d))),so(n,l,d)):(n.dispatch(n.state.tr.setSelection(ue.create(n.state.doc,i))),so(n,i));let p=n.state.selection.content(),f=o.pmSchema,m=n.serializeForClipboard(p).dom.innerHTML,h=We(f,o),b=sn(p.content),g=h.exportBlocks(b,{}),k=Pt(g);e.dataTransfer.clearData(),e.dataTransfer.setData("blocknote/html",m),e.dataTransfer.setData("text/html",g),e.dataTransfer.setData("text/plain",k),e.dataTransfer.effectAllowed="move",e.dataTransfer.setDragImage(R,0,0)}}var lo=250;function pt(e,t,o=!0){let n=e.root.elementsFromPoint(t.left,t.top);for(let r of n)if(e.dom.contains(r))return o&&r.closest("[data-node-type=columnList]")?pt(e,{left:t.left+50,top:t.top},!1):an(r,e)}function os(e,t){if(!t.dom.firstChild)return;let o=t.dom.firstChild.getBoundingClientRect(),n=pt(t,{left:Math.min(Math.max(o.left+10,e.x),o.right-10),top:e.y});if(n)return pt(t,{left:n.node.getBoundingClientRect().right-10,top:e.y},!1)}var ns=class{state;emitUpdate;mousePos;hoveredBlock;menuFrozen=!1;isDragOrigin=!1;constructor(t,o,n){this.editor=t,this.pmView=o,this.emitUpdate=()=>{if(!this.state)throw Error("Attempting to update uninitialized side menu");n(this.state)},this.pmView.root.addEventListener("dragstart",this.onDragStart),this.pmView.root.addEventListener("dragover",this.onDragOver),this.pmView.root.addEventListener("drop",this.onDrop,!0),this.pmView.root.addEventListener("dragend",this.onDragEnd,!0),this.pmView.root.addEventListener("mousemove",this.onMouseMove,!0),this.pmView.root.addEventListener("keydown",this.onKeyDown,!0)}updateState=t=>{this.state=t,this.emitUpdate(this.state)};updateStateFromMousePos=()=>{if(this.menuFrozen||!this.mousePos)return;let t=this.findClosestEditorElement({clientX:this.mousePos.x,clientY:this.mousePos.y});if(t?.element!==this.pmView.dom||t.distance>lo){this.state?.show&&(this.state.show=!1,this.updateState(this.state));return}let o=os(this.mousePos,this.pmView);if(!o||!this.editor.isEditable){this.state?.show&&(this.state.show=!1,this.updateState(this.state));return}if(!(this.state?.show&&this.hoveredBlock?.hasAttribute("data-id")&&this.hoveredBlock?.getAttribute("data-id")===o.id)&&(this.hoveredBlock=o.node,this.editor.isEditable)){let n=o.node.getBoundingClientRect(),r=o.node.closest("[data-node-type=column]");this.state={show:!0,referencePos:new DOMRect(r?r.firstElementChild.getBoundingClientRect().x:this.pmView.dom.firstChild.getBoundingClientRect().x,n.y,n.width,n.height),block:this.editor.getBlock(this.hoveredBlock.getAttribute("data-id"))},this.updateState(this.state)}};onDragStart=t=>{let o=t.dataTransfer?.getData("blocknote/html");if(!o||this.pmView.dragging)return;let n=document.createElement("div");n.innerHTML=o;let r=ie.fromSchema(this.pmView.state.schema).parse(n,{topNode:this.pmView.state.schema.nodes.blockGroup.create()});this.pmView.dragging={slice:new H(r.content,0,0),move:!0}};findClosestEditorElement=t=>{let o=Array.from(this.pmView.root.querySelectorAll(".bn-editor"));if(o.length===0)return null;let n=o[0],r=Number.MAX_VALUE;return o.forEach(i=>{let a=i.querySelector(".bn-block-group").getBoundingClientRect(),s=t.clientX<a.left?a.left-t.clientX:t.clientX>a.right?t.clientX-a.right:0,l=t.clientY<a.top?a.top-t.clientY:t.clientY>a.bottom?t.clientY-a.bottom:0,d=Math.sqrt(s**2+l**2);d<r&&(r=d,n=i)}),{element:n,distance:r}};onDragOver=t=>{if(t.synthetic||!(this.pmView.dragging!==null||this.isDragOrigin||t.dataTransfer?.types.includes("blocknote/html")||t.target instanceof Node&&this.pmView.dom.contains(t.target)))return;let o=this.getDragEventContext(t);if(!o||!o.isDropPoint){this.closeDropCursor();return}o.isDropPoint&&!o.isDropWithinEditorBounds&&this.dispatchSyntheticEvent(t)};closeDropCursor=()=>{let t=new Event("dragleave",{bubbles:!1});t.synthetic=!0,this.pmView.dom.dispatchEvent(t)};getDragEventContext=t=>{if(!(this.pmView.dragging!==null||this.isDragOrigin||t.dataTransfer?.types.includes("blocknote/html")||t.target instanceof Node&&this.pmView.dom.contains(t.target)))return;let o=!t.dataTransfer?.types.includes("blocknote/html")&&!!this.pmView.dragging,n=!!this.isDragOrigin,r=o||n,i=this.findClosestEditorElement(t);if(!i||i.distance>lo)return;let a=i.element===this.pmView.dom,s=a&&i.distance===0;if(!(!a&&!r))return{isDropPoint:a,isDropWithinEditorBounds:s,isDragOrigin:r}};onDrop=t=>{if(t.synthetic||!(this.pmView.dragging!==null||this.isDragOrigin||t.dataTransfer?.types.includes("blocknote/html")||t.target instanceof Node&&this.pmView.dom.contains(t.target)))return;let o=this.getDragEventContext(t);if(!o){this.closeDropCursor();return}let{isDropPoint:n,isDropWithinEditorBounds:r,isDragOrigin:i}=o;if(!r&&n&&this.dispatchSyntheticEvent(t),n){if(this.pmView.dragging)return;this.pmView.dispatch(this.pmView.state.tr.setSelection(L.create(this.pmView.state.tr.doc,this.pmView.state.tr.selection.anchor)));return}else if(i){setTimeout(()=>this.pmView.dispatch(this.pmView.state.tr.deleteSelection()),0);return}};onDragEnd=t=>{t.synthetic||(this.pmView.dragging=null)};onKeyDown=t=>{this.state?.show&&this.editor.isFocused()&&(this.state.show=!1,this.emitUpdate(this.state))};onMouseMove=t=>{if(this.menuFrozen)return;this.mousePos={x:t.clientX,y:t.clientY};let o=this.pmView.dom.getBoundingClientRect();if(this.mousePos.x>o.left&&this.mousePos.x<o.right&&this.mousePos.y>o.top&&this.mousePos.y<o.bottom&&t&&t.target&&!this.editor.isWithinEditor(t.target)){this.state?.show&&(this.state.show=!1,this.emitUpdate(this.state));return}this.updateStateFromMousePos()};dispatchSyntheticEvent(t){let o=new Event(t.type,t),n=this.pmView.dom.firstChild.getBoundingClientRect();o.clientX=t.clientX,o.clientY=t.clientY,o.clientX=Math.min(Math.max(t.clientX,n.left),n.left+n.width),o.clientY=Math.min(Math.max(t.clientY,n.top),n.top+n.height),o.dataTransfer=t.dataTransfer,o.preventDefault=()=>t.preventDefault(),o.synthetic=!0,this.pmView.dom.dispatchEvent(o)}update(t,o){!o.doc.eq(this.pmView.state.doc)&&this.state?.show&&this.updateStateFromMousePos()}destroy(){this.state?.show&&(this.state.show=!1,this.emitUpdate(this.state)),this.pmView.root.removeEventListener("mousemove",this.onMouseMove,!0),this.pmView.root.removeEventListener("dragstart",this.onDragStart),this.pmView.root.removeEventListener("dragover",this.onDragOver),this.pmView.root.removeEventListener("drop",this.onDrop,!0),this.pmView.root.removeEventListener("dragend",this.onDragEnd,!0),this.pmView.root.removeEventListener("keydown",this.onKeyDown,!0)}},rs=new I("SideMenuPlugin"),is=v(({editor:e})=>{let t,o=Q(void 0);return{key:"sideMenu",store:o,prosemirrorPlugins:[new B({key:rs,view:n=>(t=new ns(e,n,r=>{o.setState({...r})}),t)})],blockDragStart(n,r){t&&(t.isDragOrigin=!0),ts(n,r,e)},blockDragEnd(){ln(e.prosemirrorView.root),t&&(t.isDragOrigin=!1),e.blur()},freezeMenu(){t.menuFrozen=!0,t.state.show=!0,t.emitUpdate(t.state)},unfreezeMenu(){t.menuFrozen=!1,t.state.show=!1,t.emitUpdate(t.state)},hideMenuIfNotFrozen(){!t.menuFrozen&&t.state.show&&(t.state.show=!1,t.emitUpdate(t.state))}}}),Je;async function as(){return Je||(Je=(async()=>{let[e,t]=await Promise.all([Ut(()=>import("./module-RjUF93sV.js"),[]),Ut(()=>import("./native-48B9X9Wg.js"),[])]),o="default"in e?e.default:e,n="default"in t?t.default:t;return await o.init({data:n}),{emojiMart:o,emojiData:n}})(),Je)}async function zd(e,t){if(!("text"in e.schema.inlineContentSchema)||e.schema.inlineContentSchema.text!==Ea.text)return[];let{emojiData:o,emojiMart:n}=await as();return(t.trim()===""?Object.values(o.emojis):await n.SearchIndex.search(t)).map(r=>({id:r.skins[0].native,onItemClick:()=>e.insertInlineContent(r.skins[0].native+" ")}))}var O;function co(e){O||(O=document.createElement("div"),O.innerHTML="_",O.style.opacity="0",O.style.height="1px",O.style.width="1px",e instanceof Document?e.body.appendChild(O):e.appendChild(O))}function ss(e){O&&=(e instanceof Document?e.body.removeChild(O):e.removeChild(O),void 0)}function Te(e){return Array.prototype.indexOf.call(e.parentElement.childNodes,e)}function ls(e){let t=e;for(;t&&t.nodeName!=="TD"&&t.nodeName!=="TH"&&!t.classList.contains("tableWrapper");){if(t.classList.contains("ProseMirror"))return;let o=t.parentNode;if(!o||!(o instanceof Element))return;t=o}return t.nodeName==="TD"||t.nodeName==="TH"?{type:"cell",domNode:t,tbodyNode:t.closest("tbody")}:{type:"wrapper",domNode:t,tbodyNode:t.querySelector("tbody")}}function ds(e,t){let o=t.querySelectorAll(e);for(let n=0;n<o.length;n++)o[n].style.visibility="hidden"}var cs=class{state;emitUpdate;tableId;tablePos;tableElement;menuFrozen=!1;mouseState="up";prevWasEditable=null;constructor(t,o,n){this.editor=t,this.pmView=o,this.emitUpdate=()=>{if(!this.state)throw Error("Attempting to update uninitialized image toolbar");n(this.state)},o.dom.addEventListener("mousemove",this.mouseMoveHandler),o.dom.addEventListener("mousedown",this.viewMousedownHandler),window.addEventListener("mouseup",this.mouseUpHandler),o.root.addEventListener("dragover",this.dragOverHandler),o.root.addEventListener("drop",this.dropHandler)}viewMousedownHandler=()=>{this.mouseState="down"};mouseUpHandler=t=>{this.mouseState="up",this.mouseMoveHandler(t)};mouseMoveHandler=t=>{if(this.menuFrozen||this.mouseState==="selecting"||!(t.target instanceof Element)||!this.pmView.dom.contains(t.target))return;let o=ls(t.target);if(o?.type==="cell"&&this.mouseState==="down"&&!this.state?.draggingState){this.mouseState="selecting",this.state?.show&&(this.state.show=!1,this.state.showAddOrRemoveRowsButton=!1,this.state.showAddOrRemoveColumnsButton=!1,this.emitUpdate());return}if(!o||!this.editor.isEditable){this.state?.show&&(this.state.show=!1,this.state.showAddOrRemoveRowsButton=!1,this.state.showAddOrRemoveColumnsButton=!1,this.emitUpdate());return}if(!o.tbodyNode)return;let n=o.tbodyNode.getBoundingClientRect(),r=an(o.domNode,this.pmView);if(!r)return;this.tableElement=r.node;let i,a=this.editor.transact(d=>N(r.id,d.doc));if(!a)throw Error(`Block with ID ${r.id} not found`);let s=x(a.node,this.editor.pmSchema,this.editor.schema.blockSchema,this.editor.schema.inlineContentSchema,this.editor.schema.styleSchema);if(A(this.editor,"table")&&(this.tablePos=a.posBeforeNode+1,i=s),!i)return;this.tableId=r.id;let l=o.domNode.closest(".tableWrapper")?.querySelector(".table-widgets-container");if(o?.type==="wrapper"){let d=t.clientY>=n.bottom-1&&t.clientY<n.bottom+20,c=t.clientX>=n.right-1&&t.clientX<n.right+20,u=this.state?.block.id!==i.id||t.clientX>n.right||t.clientY>n.bottom;this.state={...this.state,show:!0,showAddOrRemoveRowsButton:d,showAddOrRemoveColumnsButton:c,referencePosTable:n,block:i,widgetContainer:l,colIndex:u?void 0:this.state?.colIndex,rowIndex:u?void 0:this.state?.rowIndex,referencePosCell:u?void 0:this.state?.referencePosCell}}else{let d=Te(o.domNode),c=Te(o.domNode.parentElement),u=o.domNode.getBoundingClientRect();if(this.state!==void 0&&this.state.show&&this.tableId===r.id&&this.state.rowIndex===c&&this.state.colIndex===d)return;this.state={show:!0,showAddOrRemoveColumnsButton:d===i.content.rows[0].cells.length-1,showAddOrRemoveRowsButton:c===i.content.rows.length-1,referencePosTable:n,block:i,draggingState:void 0,referencePosCell:u,colIndex:d,rowIndex:c,widgetContainer:l}}return this.emitUpdate(),!1};dragOverHandler=t=>{if(this.state?.draggingState===void 0)return;t.preventDefault(),t.dataTransfer.dropEffect="move",ds(".prosemirror-dropcursor-block, .prosemirror-dropcursor-inline",this.pmView.root);let o={left:Math.min(Math.max(t.clientX,this.state.referencePosTable.left+1),this.state.referencePosTable.right-1),top:Math.min(Math.max(t.clientY,this.state.referencePosTable.top+1),this.state.referencePosTable.bottom-1)},n=this.pmView.root.elementsFromPoint(o.left,o.top).filter(u=>u.tagName==="TD"||u.tagName==="TH");if(n.length===0)return;let r=n[0],i=!1,a=Te(r.parentElement),s=Te(r),l=this.state.draggingState.draggedCellOrientation==="row"?this.state.rowIndex:this.state.colIndex,d=(this.state.draggingState.draggedCellOrientation==="row"?a:s)!==l;(this.state.rowIndex!==a||this.state.colIndex!==s)&&(this.state.rowIndex=a,this.state.colIndex=s,this.state.referencePosCell=r.getBoundingClientRect(),i=!0);let c=this.state.draggingState.draggedCellOrientation==="row"?o.top:o.left;this.state.draggingState.mousePos!==c&&(this.state.draggingState.mousePos=c,i=!0),i&&this.emitUpdate(),d&&this.editor.transact(u=>u.setMeta(ke,!0))};dropHandler=t=>{if(this.mouseState="up",this.state===void 0||this.state.draggingState===void 0)return!1;if(this.state.rowIndex===void 0||this.state.colIndex===void 0)throw Error("Attempted to drop table row or column, but no table block was hovered prior.");t.preventDefault();let{draggingState:o,colIndex:n,rowIndex:r}=this.state,i=this.state.block.content.columnWidths;if(o.draggedCellOrientation==="row"){if(!Vo(this.state.block,o.originalIndex,r))return!1;let a=di(this.state.block,o.originalIndex,r);this.editor.updateBlock(this.state.block,{type:"table",content:{...this.state.block.content,rows:a}})}else{if(!Ro(this.state.block,o.originalIndex,n))return!1;let a=li(this.state.block,o.originalIndex,n),[s]=i.splice(o.originalIndex,1);i.splice(n,0,s),this.editor.updateBlock(this.state.block,{type:"table",content:{...this.state.block.content,columnWidths:i,rows:a}})}return this.editor.setTextCursorPosition(this.state.block.id),!0};update(){if(!this.state||!this.state.show)return;if(this.state.block=this.editor.getBlock(this.state.block.id),!this.state.block||this.state.block.type!=="table"||!this.tableElement?.isConnected){this.state.show=!1,this.state.showAddOrRemoveRowsButton=!1,this.state.showAddOrRemoveColumnsButton=!1,this.emitUpdate();return}let{height:t,width:o}=Et(this.state.block);this.state.rowIndex!==void 0&&this.state.colIndex!==void 0&&(this.state.rowIndex>=t&&(this.state.rowIndex=t-1),this.state.colIndex>=o&&(this.state.colIndex=o-1));let n=this.tableElement.querySelector("tbody");if(!n)throw Error("Table block does not contain a 'tbody' HTML element. This should never happen.");if(this.state.rowIndex!==void 0&&this.state.colIndex!==void 0){let r=n.children[this.state.rowIndex].children[this.state.colIndex];r?this.state.referencePosCell=r.getBoundingClientRect():(this.state.rowIndex=void 0,this.state.colIndex=void 0)}this.state.referencePosTable=n.getBoundingClientRect(),this.emitUpdate()}destroy(){this.pmView.dom.removeEventListener("mousemove",this.mouseMoveHandler),window.removeEventListener("mouseup",this.mouseUpHandler),this.pmView.dom.removeEventListener("mousedown",this.viewMousedownHandler),this.pmView.root.removeEventListener("dragover",this.dragOverHandler),this.pmView.root.removeEventListener("drop",this.dropHandler)}},ke=new I("TableHandlesPlugin"),us=v(({editor:e})=>{let t,o=Q(void 0);return{key:"tableHandles",store:o,prosemirrorPlugins:[new B({key:ke,view:n=>(t=new cs(e,n,r=>{o.setState(r.block?{...r,draggingState:r.draggingState?{...r.draggingState}:void 0}:void 0)}),t),props:{decorations:n=>{if(t===void 0||t.state===void 0||t.state.draggingState===void 0||t.tablePos===void 0)return;let r=t.state.draggingState.draggedCellOrientation==="row"?t.state.rowIndex:t.state.colIndex;if(r===void 0)return;let i=[],{block:a,draggingState:s}=t.state,{originalIndex:l,draggedCellOrientation:d}=s;if(r===l||!a||d==="row"&&!Vo(a,l,r)||d==="col"&&!Ro(a,l,r))return _.create(n.doc,i);let c=n.doc.resolve(t.tablePos+1);return t.state.draggingState.draggedCellOrientation==="row"?it(t.state.block,r).forEach(({row:u,col:p})=>{let f=n.doc.resolve(c.posAtIndex(u)+1),m=n.doc.resolve(f.posAtIndex(p)+1),h=m.node(),b=m.pos+(r>l?h.nodeSize-2:0);i.push(U.widget(b,()=>{let g=document.createElement("div");return g.className="bn-table-drop-cursor",g.style.left="0",g.style.right="0",r>l?g.style.bottom="-2px":g.style.top="-3px",g.style.height="4px",g}))}):at(t.state.block,r).forEach(({row:u,col:p})=>{let f=n.doc.resolve(c.posAtIndex(u)+1),m=n.doc.resolve(f.posAtIndex(p)+1),h=m.node(),b=m.pos+(r>l?h.nodeSize-2:0);i.push(U.widget(b,()=>{let g=document.createElement("div");return g.className="bn-table-drop-cursor",g.style.top="0",g.style.bottom="0",r>l?g.style.right="-2px":g.style.left="-3px",g.style.width="4px",g}))}),_.create(n.doc,i)}}})],colDragStart(n){if(t===void 0||t.state===void 0||t.state.colIndex===void 0)throw Error("Attempted to drag table column, but no table block was hovered prior.");t.state.draggingState={draggedCellOrientation:"col",originalIndex:t.state.colIndex,mousePos:n.clientX},t.emitUpdate(),e.transact(r=>r.setMeta(ke,{draggedCellOrientation:t.state.draggingState.draggedCellOrientation,originalIndex:t.state.colIndex,newIndex:t.state.colIndex,tablePos:t.tablePos})),!e.headless&&(co(e.prosemirrorView.root),n.dataTransfer.setDragImage(O,0,0),n.dataTransfer.effectAllowed="move")},rowDragStart(n){if(t.state===void 0||t.state.rowIndex===void 0)throw Error("Attempted to drag table row, but no table block was hovered prior.");t.state.draggingState={draggedCellOrientation:"row",originalIndex:t.state.rowIndex,mousePos:n.clientY},t.emitUpdate(),e.transact(r=>r.setMeta(ke,{draggedCellOrientation:t.state.draggingState.draggedCellOrientation,originalIndex:t.state.rowIndex,newIndex:t.state.rowIndex,tablePos:t.tablePos})),!e.headless&&(co(e.prosemirrorView.root),n.dataTransfer.setDragImage(O,0,0),n.dataTransfer.effectAllowed="copyMove")},dragEnd(){if(t.state===void 0)throw Error("Attempted to drag table row, but no table block was hovered prior.");t.state.draggingState=void 0,t.emitUpdate(),e.transact(n=>n.setMeta(ke,null)),!e.headless&&ss(e.prosemirrorView.root)},freezeHandles(){t.menuFrozen=!0},unfreezeHandles(){t.menuFrozen=!1},hideHandlesIfNotFrozen(){!t.menuFrozen&&t.state?.show&&(t.state.show=!1,t.state.showAddOrRemoveRowsButton=!1,t.state.showAddOrRemoveColumnsButton=!1,t.emitUpdate())},getCellsAtRowHandle(n,r){return it(n,r)},getCellsAtColumnHandle(n,r){return at(n,r)},setCellSelection(n,r,i=r){if(!t)throw Error("Table handles view not initialized");let a=n.doc.resolve(t.tablePos+1),s=n.doc.resolve(a.posAtIndex(r.row)+1),l=n.doc.resolve(s.posAtIndex(r.col)),d=n.doc.resolve(a.posAtIndex(i.row)+1),c=n.doc.resolve(d.posAtIndex(i.col)),u=n.tr;return u.setSelection(new de(l,c)),n.apply(u)},addRowOrColumn(n,r){e.exec((i,a)=>{let s=this.setCellSelection(i,r.orientation==="row"?{row:n,col:0}:{row:0,col:n});return r.orientation==="row"?r.side==="above"?er(s,a):tr(s,a):r.side==="left"?or(s,a):nr(s,a)})},removeRowOrColumn(n,r){return r==="row"?e.exec((i,a)=>Yn(this.setCellSelection(i,{row:n,col:0}),a)):e.exec((i,a)=>Qn(this.setCellSelection(i,{row:0,col:n}),a))},mergeCells(n){return e.exec((r,i)=>Kn(n?this.setCellSelection(r,n.relativeStartCell,n.relativeEndCell):r,i))},splitCell(n){return e.exec((r,i)=>Xn(n?this.setCellSelection(r,n):r,i))},getCellSelection(){return e.transact(n=>{let r=n.selection,i=r.$from,a=r.$to;if(oo(r)){let{ranges:h}=r;h.forEach(b=>{i=b.$from.min(i??b.$from),a=b.$to.max(a??b.$to)})}else if(i=n.doc.resolve(r.$from.pos-r.$from.parentOffset-1),a=n.doc.resolve(r.$to.pos-r.$to.parentOffset-1),i.pos===0||a.pos===0)return;let s=n.doc.resolve(i.pos-i.parentOffset-1),l=n.doc.resolve(a.pos-a.parentOffset-1),d=n.doc.resolve(s.pos-s.parentOffset-1),c=i.index(s.depth),u=s.index(d.depth),p=a.index(l.depth),f=l.index(d.depth),m=[];for(let h=u;h<=f;h++)for(let b=c;b<=p;b++)m.push({row:h,col:b});return{from:{row:u,col:c},to:{row:f,col:p},cells:m}})},getMergeDirection(n){return e.transact(r=>{let i=oo(r.selection)?r.selection:void 0;if(!i||!n||i.ranges.length<=1)return;let a=this.getCellSelection();if(a)return pi(a.from,a.to,n)?"vertical":"horizontal"})},cropEmptyRowsOrColumns(n,r){return ci(n,r)},addRowsOrColumns(n,r,i){return ui(n,r,i)}}}),uo=new I("trailingNode"),ps=v(()=>({key:"trailingNode",prosemirrorPlugins:[new B({key:uo,appendTransaction:(e,t,o)=>{let{doc:n,tr:r,schema:i}=o,a=uo.getState(o),s=n.content.size-2,l=i.nodes.blockContainer,d=i.nodes.paragraph;if(a)return r.insert(s,l.create(void 0,d.create()))},state:{init:(e,t)=>{},apply:(e,t)=>{if(!e.docChanged)return t;let o=e.doc.lastChild;if(!o||o.type.name!=="blockGroup")throw Error("Expected blockGroup");if(o=o.lastChild,!o||o.type.name!=="blockContainer")return!0;let n=o.firstChild;if(!n)throw Error("Expected blockContent");return o.nodeSize>4||n.type.spec.content!=="inline*"}}})]})),po=new I("blocknote-show-selection"),ht=v(({editor:e})=>{let t=Q({enabledSet:new Set},{onUpdate(){e.transact(o=>o.setMeta(po,{}))}});return{key:"showSelection",store:t,prosemirrorPlugins:[new B({key:po,props:{decorations:o=>{let{doc:n,selection:r}=o;if(t.state.enabledSet.size===0)return _.empty;let i=U.inline(r.from,r.to,{"data-show-selection":"true"});return _.create(n,[i])}}})],showSelection(o,n){t.setState({enabledSet:o?new Set([...t.state.enabledSet,n]):new Set([...t.state.enabledSet].filter(r=>r!==n))})}}}),hs={slash_menu:{heading:{title:"Heading 1",subtext:"Top-level heading",aliases:["h","heading1","h1"],group:"Headings"},heading_2:{title:"Heading 2",subtext:"Key section heading",aliases:["h2","heading2","subheading"],group:"Headings"},heading_3:{title:"Heading 3",subtext:"Subsection and group heading",aliases:["h3","heading3","subheading"],group:"Headings"},heading_4:{title:"Heading 4",subtext:"Minor subsection heading",aliases:["h4","heading4","subheading4"],group:"Subheadings"},heading_5:{title:"Heading 5",subtext:"Small subsection heading",aliases:["h5","heading5","subheading5"],group:"Subheadings"},heading_6:{title:"Heading 6",subtext:"Lowest-level heading",aliases:["h6","heading6","subheading6"],group:"Subheadings"},toggle_heading:{title:"Toggle Heading 1",subtext:"Toggleable top-level heading",aliases:["h","heading1","h1","collapsable"],group:"Subheadings"},toggle_heading_2:{title:"Toggle Heading 2",subtext:"Toggleable key section heading",aliases:["h2","heading2","subheading","collapsable"],group:"Subheadings"},toggle_heading_3:{title:"Toggle Heading 3",subtext:"Toggleable subsection and group heading",aliases:["h3","heading3","subheading","collapsable"],group:"Subheadings"},quote:{title:"Quote",subtext:"Quote or excerpt",aliases:["quotation","blockquote","bq"],group:"Basic blocks"},toggle_list:{title:"Toggle List",subtext:"List with hideable sub-items",aliases:["li","list","toggleList","toggle list","collapsable list"],group:"Basic blocks"},numbered_list:{title:"Numbered List",subtext:"List with ordered items",aliases:["ol","li","list","numberedlist","numbered list"],group:"Basic blocks"},bullet_list:{title:"Bullet List",subtext:"List with unordered items",aliases:["ul","li","list","bulletlist","bullet list"],group:"Basic blocks"},check_list:{title:"Check List",subtext:"List with checkboxes",aliases:["ul","li","list","checklist","check list","checked list","checkbox"],group:"Basic blocks"},paragraph:{title:"Paragraph",subtext:"The body of your document",aliases:["p","paragraph"],group:"Basic blocks"},code_block:{title:"Code Block",subtext:"Code block with syntax highlighting",aliases:["code","pre"],group:"Basic blocks"},page_break:{title:"Page Break",subtext:"Page separator",aliases:["page","break","separator"],group:"Basic blocks"},table:{title:"Table",subtext:"Table with editable cells",aliases:["table"],group:"Advanced"},image:{title:"Image",subtext:"Resizable image with caption",aliases:["image","imageUpload","upload","img","picture","media","url"],group:"Media"},video:{title:"Video",subtext:"Resizable video with caption",aliases:["video","videoUpload","upload","mp4","film","media","url"],group:"Media"},audio:{title:"Audio",subtext:"Embedded audio with caption",aliases:["audio","audioUpload","upload","mp3","sound","media","url"],group:"Media"},file:{title:"File",subtext:"Embedded file",aliases:["file","upload","embed","media","url"],group:"Media"},emoji:{title:"Emoji",subtext:"Search for and insert an emoji",aliases:["emoji","emote","emotion","face"],group:"Others"},divider:{title:"Divider",subtext:"Visually divide blocks",aliases:["divider","hr","line","horizontal rule"],group:"Basic blocks"}},placeholders:{default:"Enter text or type '/' for commands",heading:"Heading",toggleListItem:"Toggle",bulletListItem:"List",numberedListItem:"List",checkListItem:"List",emptyDocument:void 0,new_comment:"Write a comment...",edit_comment:"Edit comment...",comment_reply:"Add comment..."},file_blocks:{add_button_text:{image:"Add image",video:"Add video",audio:"Add audio",file:"Add file"}},toggle_blocks:{add_block_button:"Empty toggle. Click to add a block."},side_menu:{add_block_label:"Add block",drag_handle_label:"Open block menu"},drag_handle:{delete_menuitem:"Delete",colors_menuitem:"Colors",header_row_menuitem:"Header row",header_column_menuitem:"Header column"},table_handle:{delete_column_menuitem:"Delete column",delete_row_menuitem:"Delete row",add_left_menuitem:"Add column left",add_right_menuitem:"Add column right",add_above_menuitem:"Add row above",add_below_menuitem:"Add row below",split_cell_menuitem:"Split cell",merge_cells_menuitem:"Merge cells",background_color_menuitem:"Background color"},suggestion_menu:{no_items_title:"No items found"},color_picker:{text_title:"Text",background_title:"Background",colors:{default:"Default",gray:"Gray",brown:"Brown",red:"Red",orange:"Orange",yellow:"Yellow",green:"Green",blue:"Blue",purple:"Purple",pink:"Pink"}},formatting_toolbar:{bold:{tooltip:"Bold",secondary_tooltip:"Mod+B"},italic:{tooltip:"Italic",secondary_tooltip:"Mod+I"},underline:{tooltip:"Underline",secondary_tooltip:"Mod+U"},strike:{tooltip:"Strike",secondary_tooltip:"Mod+Shift+S"},code:{tooltip:"Code",secondary_tooltip:""},colors:{tooltip:"Colors"},link:{tooltip:"Create link",secondary_tooltip:"Mod+K"},file_caption:{tooltip:"Edit caption",input_placeholder:"Edit caption"},file_replace:{tooltip:{image:"Replace image",video:"Replace video",audio:"Replace audio",file:"Replace file"}},file_rename:{tooltip:{image:"Rename image",video:"Rename video",audio:"Rename audio",file:"Rename file"},input_placeholder:{image:"Rename image",video:"Rename video",audio:"Rename audio",file:"Rename file"}},file_download:{tooltip:{image:"Download image",video:"Download video",audio:"Download audio",file:"Download file"}},file_delete:{tooltip:{image:"Delete image",video:"Delete video",audio:"Delete audio",file:"Delete file"}},file_preview_toggle:{tooltip:"Toggle preview"},nest:{tooltip:"Nest block",secondary_tooltip:"Tab"},unnest:{tooltip:"Unnest block",secondary_tooltip:"Shift+Tab"},align_left:{tooltip:"Align text left"},align_center:{tooltip:"Align text center"},align_right:{tooltip:"Align text right"},align_justify:{tooltip:"Justify text"},table_cell_merge:{tooltip:"Merge cells"},comment:{tooltip:"Add comment"}},file_panel:{upload:{title:"Upload",file_placeholder:{image:"Upload image",video:"Upload video",audio:"Upload audio",file:"Upload file"},upload_error:"Error: Upload failed"},embed:{title:"Embed",embed_button:{image:"Embed image",video:"Embed video",audio:"Embed audio",file:"Embed file"},url_placeholder:"Enter URL"}},link_toolbar:{delete:{tooltip:"Remove link"},edit:{text:"Edit link",tooltip:"Edit"},open:{tooltip:"Open in new tab"},form:{title_placeholder:"Edit title",url_placeholder:"Edit URL"}},comments:{edited:"edited",save_button_text:"Save",cancel_button_text:"Cancel",actions:{add_reaction:"Add reaction",resolve:"Resolve",edit_comment:"Edit comment",delete_comment:"Delete comment",more_actions:"More actions"},reactions:{reacted_by:"Reacted by"},sidebar:{marked_as_resolved:"Marked as resolved",more_replies:e=>`${e} more replies`}},generic:{ctrl_shortcut:"Ctrl"}},$t=class{callbacks={};on(e,t){return this.callbacks[e]||(this.callbacks[e]=[]),this.callbacks[e].push(t),()=>this.off(e,t)}emit(e,...t){let o=this.callbacks[e];o&&o.forEach(n=>n.apply(this,t))}off(e,t){let o=this.callbacks[e];o&&(t?this.callbacks[e]=o.filter(n=>n!==t):delete this.callbacks[e])}removeAllListeners(){this.callbacks={}}};function jd(e,t){let o=[{tag:`[data-inline-content-type="${e.type}"]`,contentElement:n=>{let r=n;return r.matches("[data-editable]")?r:r.querySelector("[data-editable]")||r}}];return t&&o.push({tag:"*",getAttrs(n){if(typeof n=="string")return!1;let r=t?.(n);return r===void 0?!1:r}}),o}function fs(e,t,o,n="before"){let r=typeof o=="string"?o:o.id,i=T(e),a=t.map(d=>ae(d,i)),s=N(r,e.doc);if(!s)throw Error(`Block with ID ${r} not found`);let l=s.posBeforeNode;return n==="after"&&(l+=s.node.nodeSize),e.step(new So(l,l,new H(M.from(a),0,0))),a.map(d=>x(d,i))}function ft(e){if(!e||e.type.name!=="column")throw Error("Invalid columnPos: does not point to column node.");let t=e.firstChild;if(!t)throw Error("Invalid column: does not have child node.");let o=t.firstChild;if(!o)throw Error("Invalid blockContainer: does not have child node.");return e.childCount===1&&t.childCount===1&&o.type.name==="paragraph"&&o.content.content.length===0}function ms(e,t){let o=e.doc.resolve(t),n=o.nodeAfter;if(!n||n.type.name!=="columnList")throw Error("Invalid columnListPos: does not point to columnList node.");for(let r=n.childCount-1;r>=0;r--){let i=e.doc.resolve(o.pos+1).posAtIndex(r),a=e.doc.resolve(i).nodeAfter;if(!a||a.type.name!=="column")throw Error("Invalid columnPos: does not point to column node.");ft(a)&&e.delete(i,i+a.nodeSize)}}function _e(e,t){ms(e,t);let o=e.doc.resolve(t).nodeAfter;if(!o||o.type.name!=="columnList")throw Error("Invalid columnListPos: does not point to columnList node.");if(o.childCount>2)return;if(o.childCount<2)throw Error("Invalid columnList: contains fewer than two children.");let n=t+1,r=e.doc.resolve(n).nodeAfter,i=t+o.nodeSize-1,a=e.doc.resolve(i).nodeBefore;if(!r||!a)throw Error("Invalid columnList: does not contain children.");let s=ft(r),l=ft(a);if(s&&l){e.delete(t,t+o.nodeSize);return}if(s){e.step(new He(t,t+o.nodeSize,i-a.nodeSize+1,i-1,H.empty,0,!1));return}if(l){e.step(new He(t,t+o.nodeSize,n+1,n+r.nodeSize-1,H.empty,0,!1));return}}function ho(e,t,o){let n=T(e),r=o.map(c=>ae(c,n)),i=new Set(t.map(c=>typeof c=="string"?c:c.id)),a=[],s=new Set,l=typeof t[0]=="string"?t[0]:t[0].id,d=0;if(e.doc.descendants((c,u)=>{if(i.size===0)return!1;if(!c.type.isInGroup("bnBlock")||!i.has(c.attrs.id))return!0;if(a.push(x(c,n)),i.delete(c.attrs.id),o.length>0&&c.attrs.id===l){let h=e.doc.nodeSize;e.insert(u,r);let b=e.doc.nodeSize;d+=h-b}let p=e.doc.nodeSize,f=e.doc.resolve(u-d);f.node().type.name==="column"?s.add(f.before(-1)):f.node().type.name==="columnList"&&s.add(f.before()),f.node().type.name==="blockGroup"&&f.node(f.depth-1).type.name!=="doc"&&f.node().childCount===1?e.delete(f.before(),f.after()):e.delete(u-d,u-d+c.nodeSize);let m=e.doc.nodeSize;return d+=p-m,!1}),i.size>0){let c=[...i].join(`
|
|
11
|
+
`);throw Error("Blocks with the following IDs could not be found in the editor: "+c)}return s.forEach(c=>_e(e,c)),{insertedBlocks:r.map(c=>x(c,n)),removedBlocks:a}}function gs(e,t,o,n,r){let i;if(!t)throw Error("blockContent is required");if(typeof t=="string")i=z([t],e.pmSchema,n);else if(Array.isArray(t))i=z(t,e.pmSchema,n);else if(t.type==="tableContent")i=ze(t,e.pmSchema);else throw new j(t.type);let a=(r?.document??document).createDocumentFragment();for(let s of i)if(s.type.name!=="text"&&e.schema.inlineContentSchema[s.type.name]){let l=e.schema.inlineContentSpecs[s.type.name].implementation;if(l){let d=St(s,e.schema.inlineContentSchema,e.schema.styleSchema),c=l.render.call({renderType:"dom",props:void 0},d,()=>{},e);if(c){if(a.appendChild(c.dom),c.contentDOM){let u=o.serializeFragment(s.content,r);c.contentDOM.dataset.editable="",c.contentDOM.appendChild(u)}continue}}}else if(s.type.name==="text"){let l=document.createTextNode(s.textContent);for(let d of s.marks.toReversed())if(d.type.name in e.schema.styleSpecs){let c=e.schema.styleSpecs[d.type.name].implementation.render(d.attrs.stringValue,e);c.contentDOM.appendChild(l),l=c.dom}else{let c=d.type.spec.toDOM(d,!0),u=le.renderSpec(document,c);u.contentDOM.appendChild(l),l=u.dom}a.appendChild(l)}else{let l=o.serializeFragment(M.from([s]),r);a.appendChild(l)}return a}function bs(e,t,o,n){let r=e.pmSchema.nodes.blockContainer,i=t.props||{};for(let[d,c]of Object.entries(e.schema.blockSchema[t.type].propSchema))!(d in i)&&c.default!==void 0&&(i[d]=c.default);let a=t.children||[],s=e.blockImplementations[t.type].implementation.render.call({renderType:"dom",props:void 0},{...t,props:i,children:a},e);if(s.contentDOM&&t.content){let d=gs(e,t.content,o,t.type,n);s.contentDOM.appendChild(d)}if(e.pmSchema.nodes[t.type].isInGroup("bnBlock")){if(t.children&&t.children.length>0){let d=dn(e,t.children,o,n);s.contentDOM?.append(d)}return s.dom}let l=r.spec?.toDOM?.(r.create({id:t.id,...i}));return l.contentDOM?.appendChild(s.dom),t.children&&t.children.length>0&&l.contentDOM?.appendChild(cn(e,t.children,o,n)),l.dom}function dn(e,t,o,n){let r=(n?.document??document).createDocumentFragment();for(let i of t){let a=bs(e,i,o,n);r.appendChild(a)}return r}var cn=(e,t,o,n)=>{let r=e.pmSchema.nodes.blockGroup,i=r.spec.toDOM(r.create({})),a=dn(e,t,o,n);return i.contentDOM?.appendChild(a),i.dom},ks=e=>(e.querySelectorAll('[data-content-type="numberedListItem"]').forEach(t=>{let o=t.closest(".bn-block-outer")?.previousElementSibling?.querySelector('[data-content-type="numberedListItem"]');if(!o)t.setAttribute("data-index",t.getAttribute("data-start")||"1");else{let n=o.getAttribute("data-index");t.setAttribute("data-index",(parseInt(n||"0")+1).toString())}}),e),ys=e=>(e.querySelectorAll('[data-content-type="checkListItem"] input').forEach(t=>{t.disabled=!0}),e),vs=e=>(e.querySelectorAll('.bn-toggle-wrapper[data-show-children="false"]').forEach(t=>{t.setAttribute("data-show-children","true")}),e),Cs=e=>(e.querySelectorAll('[data-content-type="table"] table').forEach(t=>{t.setAttribute("style","--default-cell-min-width: 120px;"),t.setAttribute("data-show-children","true")}),e),ws=e=>(e.querySelectorAll('[data-content-type="table"] table').forEach(t=>{let o=document.createElement("div");o.className="tableWrapper";let n=document.createElement("div");n.className="tableWrapper-inner",o.appendChild(n),t.parentElement?.appendChild(o),o.appendChild(t)}),e),xs=e=>(e.querySelectorAll(".bn-inline-content:empty").forEach(t=>{let o=document.createElement("span");o.className="ProseMirror-trailingBreak",o.setAttribute("style","display: inline-block;"),t.appendChild(o)}),e),Ss=(e,t)=>{let o=le.fromSchema(e),n=[ks,ys,vs,Cs,ws,xs];return{serializeBlocks:(r,i)=>{let a=cn(t,r,o,i);for(let s of n)a=s(a);return a.outerHTML}}};function Es(e){return e.transact(t=>{let o=K(t.doc,t.selection.anchor);if(t.selection instanceof de)return{type:"cell",anchorBlockId:o.node.attrs.id,anchorCellOffset:t.selection.$anchorCell.pos-o.posBeforeNode,headCellOffset:t.selection.$headCell.pos-o.posBeforeNode};if(t.selection instanceof ue)return{type:"node",anchorBlockId:o.node.attrs.id};{let n=K(t.doc,t.selection.head);return{type:"text",anchorBlockId:o.node.attrs.id,headBlockId:n.node.attrs.id,anchorOffset:t.selection.anchor-o.posBeforeNode,headOffset:t.selection.head-n.posBeforeNode}}})}function Ms(e,t){let o=N(t.anchorBlockId,e.doc)?.posBeforeNode;if(o===void 0)throw Error(`Could not find block with ID ${t.anchorBlockId} to update selection`);let n;if(t.type==="cell")n=de.create(e.doc,o+t.anchorCellOffset,o+t.headCellOffset);else if(t.type==="node")n=ue.create(e.doc,o+1);else{let r=N(t.headBlockId,e.doc)?.posBeforeNode;if(r===void 0)throw Error(`Could not find block with ID ${t.headBlockId} to update selection`);n=L.create(e.doc,o+t.anchorOffset,r+t.headOffset)}e.setSelection(n)}function mt(e){return e.map(t=>t.type==="columnList"?t.children.map(o=>mt(o.children)).flat():{...t,children:mt(t.children)}).flat()}function un(e,t,o){e.transact(n=>{let r=e.getSelection()?.blocks||[e.getTextCursorPosition().block],i=Es(e);e.removeBlocks(r),e.insertBlocks(mt(r),t,o),Ms(n,i)})}function pn(e){return!e||e.type!=="columnList"}function hn(e,t,o){let n,r;if(t?t.children.length>0?(n=t.children[t.children.length-1],r="after"):(n=t,r="before"):o&&(n=o,r="before"),!n||!r)return;let i=e.getParentBlock(n);return pn(i)?{referenceBlock:n,placement:r}:hn(e,r==="after"?n:e.getPrevBlock(n),i)}function fn(e,t,o){let n,r;if(t?t.children.length>0?(n=t.children[0],r="before"):(n=t,r="after"):o&&(n=o,r="after"),!n||!r)return;let i=e.getParentBlock(n);return pn(i)?{referenceBlock:n,placement:r}:fn(e,r==="before"?n:e.getNextBlock(n),i)}function Bs(e){e.transact(()=>{let t=e.getSelection()?.blocks[0]||e.getTextCursorPosition().block,o=hn(e,e.getPrevBlock(t),e.getParentBlock(t));o&&un(e,o.referenceBlock,o.placement)})}function Ts(e){e.transact(()=>{let t=e.getSelection(),o=t?.blocks[t?.blocks.length-1]||e.getTextCursorPosition().block,n=fn(e,e.getNextBlock(o),e.getParentBlock(o));n&&un(e,n.referenceBlock,n.placement)})}function As(e,t,o){let{$from:n,$to:r}=e.selection,i=n.blockRange(r,f=>f.childCount>0&&(f.type.name==="blockGroup"||f.type.name==="column"));if(!i)return!1;let a=i.startIndex;if(a===0)return!1;let s=i.parent.child(a-1);if(s.type!==t)return!1;let l=s.lastChild&&s.lastChild.type===o,d=M.from(l?t.create():null),c=new H(M.from(t.create(null,M.from(o.create(null,d)))),l?3:1,0),u=i.start,p=i.end;return e.step(new He(u-(l?3:1),p,u,p,c,1,!0)).scrollIntoView(),!0}function mn(e){return e.transact(t=>As(t,e.pmSchema.nodes.blockContainer,e.pmSchema.nodes.blockGroup))}function Ls(e,t,o,n){let r=n.end,i=n.$to.end(n.depth);if(r<i){let l=n.parent.child(n.endIndex-1),d=l.lastChild&&l.lastChild.type===o;e.step(new He(r-(d?2:1),i,r,i,new H(M.from(t.create(null,o.create())),d?2:1,0),+!d,!0)),n=new Dr(e.doc.resolve(n.$from.pos),e.doc.resolve(i),n.depth)}let a=Hr(n);if(a==null)return!1;e.lift(n,a);let s=e.doc.resolve(e.mapping.map(r,-1)-1);return Vr(e.doc,s.pos)&&s.nodeBefore.type===s.nodeAfter.type&&e.join(s.pos),e.scrollIntoView(),!0}function gt(e,t,o){let{$from:n,$to:r}=e.selection,i=n.blockRange(r,a=>a.childCount>0&&(a.type.name==="blockGroup"||a.type.name==="column"));return i&&n.node(i.depth-1).type===t?Ls(e,t,o,i):!1}function gn(e){return e.transact(t=>gt(t,e.pmSchema.nodes.blockContainer,e.pmSchema.nodes.blockGroup))}function Ps(e){return e.transact(t=>{let{bnBlock:o}=Se(t);return t.doc.resolve(o.beforePos).nodeBefore!==null})}function $s(e){return e.transact(t=>{let{bnBlock:o}=Se(t);return t.doc.resolve(o.beforePos).depth>1})}function Is(e,t){let o=typeof t=="string"?t:t.id,n=T(e),r=N(o,e);if(r)return x(r.node,n)}function Os(e,t){let o=N(typeof t=="string"?t:t.id,e),n=T(e);if(!o)return;let r=e.resolve(o.posBeforeNode).nodeBefore;if(r)return x(r,n)}function _s(e,t){let o=N(typeof t=="string"?t:t.id,e),n=T(e);if(!o)return;let r=e.resolve(o.posBeforeNode+o.node.nodeSize).nodeAfter;if(r)return x(r,n)}function Ns(e,t){let o=typeof t=="string"?t:t.id,n=T(e),r=N(o,e);if(!r)return;let i=e.resolve(r.posBeforeNode),a=i.node(),s=i.node(-1),l=s.type.name==="doc"?void 0:a.type.name==="blockGroup"?s:a;if(l)return x(l,n)}var Ds=class{constructor(e){this.editor=e}get document(){return this.editor.transact(e=>Yr(e.doc,this.editor.pmSchema))}getBlock(e){return this.editor.transact(t=>Is(t.doc,e))}getPrevBlock(e){return this.editor.transact(t=>Os(t.doc,e))}getNextBlock(e){return this.editor.transact(t=>_s(t.doc,e))}getParentBlock(e){return this.editor.transact(t=>Ns(t.doc,e))}forEachBlock(e,t=!1){let o=this.document.slice();t&&o.reverse();function n(r){for(let i of r)if(e(i)===!1||!n(t?i.children.slice().reverse():i.children))return!1;return!0}n(o)}insertBlocks(e,t,o="before"){return this.editor.transact(n=>fs(n,e,t,o))}updateBlock(e,t){return this.editor.transact(o=>gi(o,e,t))}removeBlocks(e){return this.editor.transact(t=>ho(t,e,[]).removedBlocks)}replaceBlocks(e,t){return this.editor.transact(o=>ho(o,e,t))}canNestBlock(){return Ps(this.editor)}nestBlock(){mn(this.editor)}canUnnestBlock(){return $s(this.editor)}unnestBlock(){gn(this.editor)}moveBlocksUp(){return Bs(this.editor)}moveBlocksDown(){return Ts(this.editor)}},Hs=class extends $t{constructor(e){super(),this.editor=e,e.on("create",()=>{e._tiptapEditor.on("update",({transaction:t,appendedTransactions:o})=>{this.emit("onChange",{editor:e,transaction:t,appendedTransactions:o})}),e._tiptapEditor.on("selectionUpdate",({transaction:t})=>{this.emit("onSelectionChange",{editor:e,transaction:t})}),e._tiptapEditor.on("mount",()=>{this.emit("onMount",{editor:e})}),e._tiptapEditor.on("unmount",()=>{this.emit("onUnmount",{editor:e})})})}onChange(e,t=!0){let o=({transaction:n,appendedTransactions:r})=>{!t&&fo(n)||e(this.editor,{getChanges(){return on(n,r)}})};return this.on("onChange",o),()=>{this.off("onChange",o)}}onSelectionChange(e,t=!1){let o=n=>{!t&&fo(n.transaction)||e(this.editor)};return this.on("onSelectionChange",o),()=>{this.off("onSelectionChange",o)}}onMount(e){return this.on("onMount",e),()=>{this.off("onMount",e)}}onUnmount(e){return this.on("onUnmount",e),()=>{this.off("onUnmount",e)}}};function fo(e){return!!e.getMeta("y-sync$")}function Vs(e){return Array.prototype.indexOf.call(e.parentElement.childNodes,e)}function Rs(e){return e.nodeType===3&&!/\S/.test(e.nodeValue||"")}function zs(e){e.querySelectorAll("li > ul, li > ol").forEach(t=>{let o=Vs(t),n=t.parentElement,r=Array.from(n.childNodes).slice(o+1);t.remove(),r.forEach(i=>{i.remove()}),n.insertAdjacentElement("afterend",t),r.reverse().forEach(i=>{if(Rs(i))return;let a=document.createElement("li");a.append(i),t.insertAdjacentElement("afterend",a)}),n.childNodes.length===0&&n.remove()})}function Us(e){e.querySelectorAll("li + ul, li + ol").forEach(t=>{let o=t.previousElementSibling,n=document.createElement("div");o.insertAdjacentElement("afterend",n),n.append(o);let r=document.createElement("div");for(r.setAttribute("data-node-type","blockGroup"),n.append(r);n.nextElementSibling?.nodeName==="UL"||n.nextElementSibling?.nodeName==="OL";)r.append(n.nextElementSibling)})}var js=null;function Fs(){return js||=document.implementation.createHTMLDocument("title")}function qs(e){if(typeof e=="string"){let t=Fs().createElement("div");t.innerHTML=e,e=t}return zs(e),Us(e),e}function Ws(e){let t=e.ownerDocument.createTreeWalker(e,128),o;for(;o=t.nextNode();)if(/^\s*notionvc:/.test(o.nodeValue||""))return!0;return!1}function Gs(e){let t=new Set(["PRE","CODE"]),o=e.ownerDocument.createTreeWalker(e,4,{acceptNode(i){let a=i.parentElement;for(;a&&a!==e;){if(t.has(a.tagName))return 2;a=a.parentElement}return 1}}),n=[],r;for(;r=o.nextNode();)n.push(r);for(let i of n)i.nodeValue&&/[\r\n]/.test(i.nodeValue)&&(i.nodeValue=i.nodeValue.replace(/[ \t\r\n\f]+/g," "))}function Zs(e){Ws(e)||Gs(e)}function bn(e,t){let o=qs(e);Zs(o);let n=ie.fromSchema(t).parse(o,{topNode:t.nodes.blockGroup.create()}),r=[];for(let i=0;i<n.childCount;i++)r.push(x(n.child(i),t));return r}function Js(e,t){let o=t.value?t.value:"",n={};t.lang&&(n["data-language"]=t.lang);let r={type:"element",tagName:"code",properties:n,children:[{type:"text",value:o}]};return t.meta&&(r.data={meta:t.meta}),e.patch(t,r),r=e.applyData(t,r),r={type:"element",tagName:"pre",properties:{},children:[r]},e.patch(t,r),r}function Xs(e,t){let o=String(t?.url||""),n={type:"element",tagName:"video",properties:{src:o,"data-name":t?.title?String(t.title):void 0,"data-url":o,controls:!0},children:[]};return e.patch?.(t,n),n=e.applyData?e.applyData(t,n):n,n}function kn(e){return Mo().use(Lr).use(Bo).use(Pr,{handlers:{...zt,image:(t,o)=>qr(String(o?.url||""))?Xs(t,o):zt.image(t,o),code:Js,blockquote:(t,o)=>{let n={type:"element",tagName:"blockquote",properties:{},children:t.wrap(t.all(o),!1)};return t.patch(o,n),t.applyData(o,n)}}}).use($r).processSync(e).value}function Ks(e,t){return bn(kn(e),t)}var Ys=class{constructor(e){this.editor=e}blocksToHTMLLossy(e=this.editor.document){return We(this.editor.pmSchema,this.editor).exportBlocks(e,{})}blocksToFullHTML(e=this.editor.document){return Ss(this.editor.pmSchema,this.editor).serializeBlocks(e,{})}tryParseHTMLToBlocks(e){return bn(e,this.editor.pmSchema)}blocksToMarkdownLossy(e=this.editor.document){return Qa(e,this.editor.pmSchema,this.editor,{})}tryParseMarkdownToBlocks(e){return Ks(e,this.editor.pmSchema)}pasteHTML(e,t=!1){let o=e;if(!t){let n=this.tryParseHTMLToBlocks(e);o=this.blocksToFullHTML(n)}o&&this.editor.prosemirrorView?.pasteHTML(o)}pasteText(e){return this.editor.prosemirrorView?.pasteText(e)}pasteMarkdown(e){let t=kn(e);return this.pasteHTML(t)}},Qs="aaa1rp3bb0ott3vie4c1le2ogado5udhabi7c0ademy5centure6ountant0s9o1tor4d0s1ult4e0g1ro2tna4f0l1rica5g0akhan5ency5i0g1rbus3force5tel5kdn3l0ibaba4pay4lfinanz6state5y2sace3tom5m0azon4ericanexpress7family11x2fam3ica3sterdam8nalytics7droid5quan4z2o0l2partments8p0le4q0uarelle8r0ab1mco4chi3my2pa2t0e3s0da2ia2sociates9t0hleta5torney7u0ction5di0ble3o3spost5thor3o0s4w0s2x0a2z0ure5ba0by2idu3namex4d1k2r0celona5laycard4s5efoot5gains6seball5ketball8uhaus5yern5b0c1t1va3cg1n2d1e0ats2uty4er2rlin4st0buy5t2f1g1h0arti5i0ble3d1ke2ng0o3o1z2j1lack0friday9ockbuster8g1omberg7ue3m0s1w2n0pparibas9o0ats3ehringer8fa2m1nd2o0k0ing5sch2tik2on4t1utique6x2r0adesco6idgestone9oadway5ker3ther5ussels7s1t1uild0ers6siness6y1zz3v1w1y1z0h3ca0b1fe2l0l1vinklein9m0era3p2non3petown5ital0one8r0avan4ds2e0er0s4s2sa1e1h1ino4t0ering5holic7ba1n1re3c1d1enter4o1rn3f0a1d2g1h0anel2nel4rity4se2t2eap3intai5ristmas6ome4urch5i0priani6rcle4sco3tadel4i0c2y3k1l0aims4eaning6ick2nic1que6othing5ud3ub0med6m1n1o0ach3des3ffee4llege4ogne5m0mbank4unity6pany2re3uter5sec4ndos3struction8ulting7tact3ractors9oking4l1p2rsica5untry4pon0s4rses6pa2r0edit0card4union9icket5own3s1uise0s6u0isinella9v1w1x1y0mru3ou3z2dad1nce3ta1e1ing3sun4y2clk3ds2e0al0er2s3gree4livery5l1oitte5ta3mocrat6ntal2ist5si0gn4v2hl2iamonds6et2gital5rect0ory7scount3ver5h2y2j1k1m1np2o0cs1tor4g1mains5t1wnload7rive4tv2ubai3pont4rban5vag2r2z2earth3t2c0o2deka3u0cation8e1g1mail3erck5nergy4gineer0ing9terprises10pson4quipment8r0icsson6ni3s0q1tate5t1u0rovision8s2vents5xchange6pert3osed4ress5traspace10fage2il1rwinds6th3mily4n0s2rm0ers5shion4t3edex3edback6rrari3ero6i0delity5o2lm2nal1nce1ial7re0stone6mdale6sh0ing5t0ness6j1k1lickr3ghts4r2orist4wers5y2m1o0o0d1tball6rd1ex2sale4um3undation8x2r0ee1senius7l1ogans4ntier7tr2ujitsu5n0d2rniture7tbol5yi3ga0l0lery3o1up4me0s3p1rden4y2b0iz3d0n2e0a1nt0ing5orge5f1g0ee3h1i0ft0s3ves2ing5l0ass3e1obal2o4m0ail3bh2o1x2n1odaddy5ld0point6f2odyear5g0le4p1t1v2p1q1r0ainger5phics5tis4een3ipe3ocery4up4s1t1u0cci3ge2ide2tars5ru3w1y2hair2mburg5ngout5us3bo2dfc0bank7ealth0care8lp1sinki6re1mes5iphop4samitsu7tachi5v2k0t2m1n1ockey4ldings5iday5medepot5goods5s0ense7nda3rse3spital5t0ing5t0els3mail5use3w2r1sbc3t1u0ghes5yatt3undai7ibm2cbc2e1u2d1e0ee3fm2kano4l1m0amat4db2mo0bilien9n0c1dustries8finiti5o2g1k1stitute6urance4e4t0ernational10uit4vestments10o1piranga7q1r0ish4s0maili5t0anbul7t0au2v3jaguar4va3cb2e0ep2tzt3welry6io2ll2m0p2nj2o0bs1urg4t1y2p0morgan6rs3uegos4niper7kaufen5ddi3e0rryhotels6properties14fh2g1h1i0a1ds2m1ndle4tchen5wi3m1n1oeln3matsu5sher5p0mg2n2r0d1ed3uokgroup8w1y0oto4z2la0caixa5mborghini8er3nd0rover6xess5salle5t0ino3robe5w0yer5b1c1ds2ease3clerc5frak4gal2o2xus4gbt3i0dl2fe0insurance9style7ghting6ke2lly3mited4o2ncoln4k2ve1ing5k1lc1p2oan0s3cker3us3l1ndon4tte1o3ve3pl0financial11r1s1t0d0a3u0ndbeck6xe1ury5v1y2ma0drid4if1son4keup4n0agement7go3p1rket0ing3s4riott5shalls7ttel5ba2c0kinsey7d1e0d0ia3et2lbourne7me1orial6n0u2rck0msd7g1h1iami3crosoft7l1ni1t2t0subishi9k1l0b1s2m0a2n1o0bi0le4da2e1i1m1nash3ey2ster5rmon3tgage6scow4to0rcycles9v0ie4p1q1r1s0d2t0n1r2u0seum3ic4v1w1x1y1z2na0b1goya4me2vy3ba2c1e0c1t0bank4flix4work5ustar5w0s2xt0direct7us4f0l2g0o2hk2i0co2ke1on3nja3ssan1y5l1o0kia3rton4w0ruz3tv4p1r0a1w2tt2u1yc2z2obi1server7ffice5kinawa6layan0group9lo3m0ega4ne1g1l0ine5oo2pen3racle3nge4g0anic5igins6saka4tsuka4t2vh3pa0ge2nasonic7ris2s1tners4s1y3y2ccw3e0t2f0izer5g1h0armacy6d1ilips5one2to0graphy6s4ysio5ics1tet2ures6d1n0g1k2oneer5zza4k1l0ace2y0station9umbing5s3m1n0c2ohl2ker3litie5rn2st3r0axi3ess3ime3o0d0uctions8f1gressive8mo2perties3y5tection8u0dential9s1t1ub2w0c2y2qa1pon3uebec3st5racing4dio4e0ad1lestate6tor2y4cipes5d0umbrella9hab3ise0n3t2liance6n0t0als5pair3ort3ublican8st0aurant8view0s5xroth6ich0ardli6oh3l1o1p2o0cks3deo3gers4om3s0vp3u0gby3hr2n2w0e2yukyu6sa0arland6fe0ty4kura4le1on3msclub4ung5ndvik0coromant12ofi4p1rl2s1ve2xo3b0i1s2c0b1haeffler7midt4olarships8ol3ule3warz5ience5ot3d1e0arch3t2cure1ity6ek2lect4ner3rvices6ven3w1x0y3fr2g1h0angrila6rp3ell3ia1ksha5oes2p0ping5uji3w3i0lk2na1gles5te3j1k0i0n2y0pe4l0ing4m0art3ile4n0cf3o0ccer3ial4ftbank4ware6hu2lar2utions7ng1y2y2pa0ce3ort2t3r0l2s1t0ada2ples4r1tebank4farm7c0group6ockholm6rage3e3ream4udio2y3yle4u0cks3pplies3y2ort5rf1gery5zuki5v1watch4iss4x1y0dney4stems6z2tab1ipei4lk2obao4rget4tamotors6r2too4x0i3c0i2d0k2eam2ch0nology8l1masek5nnis4va3f1g1h0d1eater2re6iaa2ckets5enda4ps2res2ol4j0maxx4x2k0maxx5l1m0all4n1o0day3kyo3ols3p1ray3shiba5tal3urs3wn2yota3s3r0ade1ing4ining5vel0ers0insurance16ust3v2t1ube2i1nes3shu4v0s2w1z2ua1bank3s2g1k1nicom3versity8o2ol2ps2s1y1z2va0cations7na1guard7c1e0gas3ntures6risign5sicherung10t2g1i0ajes4deo3g1king4llas4n1p1rgin4sa1ion4va1o3laanderen9n1odka3lvo3te1ing3o2yage5u2wales2mart4ter4ng0gou5tch0es6eather0channel12bcam3er2site5d0ding5ibo2r3f1hoswho6ien2ki2lliamhill9n0dows4e1ners6me2oodside6rk0s2ld3w2s1tc1f3xbox3erox4ihuan4n2xx2yz3yachts4hoo3maxun5ndex5e1odobashi7ga2kohama6u0tube6t1un3za0ppos4ra3ero3ip2m1one3uerich6w2";function el(e){let t=[],o=[],n=0;for(;n<e.length;){let r=0;for(;n+r<e.length&&e.charCodeAt(n+r)>=48&&e.charCodeAt(n+r)<=57;)r++;if(r>0){t.push(o.join(""));let i=parseInt(e.substring(n,n+r),10);for(;i-- >0;)o.pop();n+=r}else o.push(e[n]),n++}return t}var yn=new Set(el(Qs)),tl=new Set(["localhost"]),ol=/[.,;:!?"']+$/,nl=/(?:https?|ftp|ftps):\/\/[^\s]+/g,rl=/mailto:[^\s]+/g,il=/[a-zA-Z0-9._%+-]+@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}/g,al=/(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}(?::\d{1,5})?(?:[/?#][^\s]*)?/g;function sl(e){let t=e,o=!0;for(;o;){o=!1;let n=t;t=t.replace(ol,""),t!==n&&(o=!0);for(let[r,i]of[["(",")"],["[","]"]])for(;t.endsWith(i);){let a=mo(t,r);if(mo(t,i)>a)t=t.slice(0,-1),o=!0;else break}}return t}function mo(e,t){let o=0;for(let n=0;n<e.length;n++)e[n]===t&&o++;return o}function ll(e){let t=e.split(".");return t[t.length-1].toLowerCase()}function go(e){let t=ll(e);return yn.has(t)}function vn(e,t,o){return t==="email"?"mailto:"+e:/^[a-zA-Z][a-zA-Z0-9+.-]*:\/\//.test(e)||/^mailto:/i.test(e)?e:o+"://"+e}function Cn(e,t){if(!e)return[];let o=t?.defaultProtocol||"http",n=[];for(let s of e.matchAll(nl))n.push({type:"url",value:s[0],start:s.index,end:s.index+s[0].length});for(let s of e.matchAll(rl))n.push({type:"url",value:s[0],start:s.index,end:s.index+s[0].length});for(let s of e.matchAll(il))n.push({type:"email",value:s[0],start:s.index,end:s.index+s[0].length});for(let s of e.matchAll(al))n.push({type:"url",value:s[0],start:s.index,end:s.index+s[0].length});n.sort((s,l)=>s.start-l.start||l.end-s.end);let r=[],i=-1;for(let s of n)s.start>=i&&(r.push(s),i=s.end);let a=[];for(let s of r){let l=sl(s.value);if(!l)continue;let d=s.start,c=d+l.length;if(s.type==="url"&&!/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(l)){let p=new URL("http://"+l).hostname;if(!go(p))continue}if(s.type==="email"){let p=l.split("@")[1];if(!go(p))continue}let u=vn(l,s.type,o);a.push({type:s.type,value:l,isLink:!0,href:u,start:d,end:c})}return a}function dl(e,t="http"){if(!e)return[ge(e,0,0)];for(let[o,n]of[["(",")"],["[","]"],["{","}"]])if(e.startsWith(o)&&e.endsWith(n)&&e.length>2){let r=e.slice(1,-1);if(Xe(r))return[ge(o,0,1),Ke(r,1,1+r.length,t),ge(n,1+r.length,e.length)]}if(e.endsWith(".")&&e.length>1){let o=e.slice(0,-1);if(Xe(o))return[Ke(o,0,o.length,t),ge(".",o.length,e.length)]}return Xe(e)?[Ke(e,0,e.length,t)]:[ge(e,0,e.length)]}function Xe(e){if(/^(?:https?|ftp|ftps):\/\/[^\s]+$/.test(e)||/^mailto:[^\s]+$/.test(e)||tl.has(e.toLowerCase()))return!0;let t=e.match(/^(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+([a-zA-Z]{2,})(?::\d{1,5})?(?:[/?#][^\s]*)?$/);if(t){let o=t[1].toLowerCase();if(yn.has(o))return!0}return!1}function Ke(e,t,o,n){let r=e.includes("@")&&!e.includes("://")&&!e.startsWith("mailto:")?"email":"url";return{type:r,value:e,isLink:!0,href:vn(e,r,n),start:t,end:o}}function ge(e,t,o){return{type:"text",value:e,isLink:!1,href:e,start:t,end:o}}var It="[\0- -\u2029 ]",cl=new RegExp(It),ul=RegExp(`${It}$`),pl=new RegExp(It,"g");function hl(e){return e.length===1?e[0].isLink:e.length===3&&e[1].isLink?["()","[]"].includes(e[0].value+e[2].value):!1}function fl(e){return new B({key:new I("autolink"),appendTransaction:(t,o,n)=>{let r=t.some(s=>s.docChanged)&&!o.doc.eq(n.doc),i=t.some(s=>s.getMeta("preventAutolink"));if(!r||i)return;let{tr:a}=n;if(wo(kt(o.doc,[...t])).forEach(({newRange:s})=>{let l=Ne(n.doc,s,u=>u.isTextblock),d,c;if(l.length>1)d=l[0],c=n.doc.textBetween(d.pos,d.pos+d.node.nodeSize,void 0," ");else if(l.length){let u=n.doc.textBetween(s.from,s.to," "," ");if(!ul.test(u))return;d=l[0],c=n.doc.textBetween(d.pos,s.to,void 0," ")}if(d&&c){let u=c.split(cl).filter(Boolean);if(u.length<=0)return;let p=u[u.length-1],f=d.pos+c.lastIndexOf(p);if(!p)return;let m=dl(p,e.defaultProtocol);if(!hl(m))return;m.filter(h=>h.isLink).map(h=>({...h,from:f+h.start+1,to:f+h.end+1})).filter(h=>n.schema.marks.code?!n.doc.rangeHasMark(h.from,h.to,n.schema.marks.code):!0).filter(h=>e.validate(h.value)).filter(h=>e.shouldAutoLink(h.value)).forEach(h=>{_r(h.from,h.to,n.doc).some(b=>b.mark.type===e.type)||a.addMark(h.from,h.to,e.type.create({href:h.href}))})}}),a.steps.length)return a}})}function ml(e){return new B({key:new I("handleClickLink"),props:{handleClick:(t,o,n)=>{if(n.button!==0||!t.editable)return!1;let r=null;if(n.target instanceof HTMLAnchorElement&&n.target.getAttribute("data-inline-content-type")==="link")r=n.target;else{let l=n.target;if(!l)return!1;let d=e.tiptapEditor.view.dom;r=l.closest('a[data-inline-content-type="link"]'),r&&!d.contains(r)&&(r=null)}if(!r)return!1;if(e.onClick){if(!e.editor)throw Error("BlockNoteEditor not found in Link click handler");return e.onClick(n,e.editor)??!0}let i=Nr(t.state,e.type.name),a=r.href??i.href,s=r.target??i.target;return a?(window.open(a,s),!0):!1}}})}function gl(e){return new B({key:new I("handlePasteLink"),props:{handlePaste:(t,o,n)=>{let{shouldAutoLink:r,isValidLink:i}=e,{state:a}=t,{selection:s}=a,{empty:l}=s;if(l)return!1;let d="";n.content.forEach(u=>{d+=u.textContent});let c=Cn(d,{defaultProtocol:e.defaultProtocol}).find(u=>u.isLink&&u.value===d);return!d||!c||!i(c.value)||r!==void 0&&!r(c.value)?!1:e.editor.commands.setMark(e.type,{href:c.href})}}})}var Ye="https",Ae={target:"_blank",rel:"noopener noreferrer nofollow",className:"bn-inline-content-section","data-inline-content-type":"link"},bl=/^(?:(?:http|https|ftp|ftps|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z0-9+.\-]+(?:[^a-z+.\-:]|$))/i;function kl(e){if(!e)return!0;let t=e.replace(pl,"");return bl.test(t)}function Qe(e){let t=/^[a-z][a-z0-9+.-]*:\/\//i.test(e),o=/^[a-z][a-z0-9+.-]*:/i.test(e);if(t||o&&!e.includes("@"))return!0;let n=(e.includes("@")?e.split("@").pop():e).split(/[/?#:]/)[0];return!(/^\d{1,3}(\.\d{1,3}){3}$/.test(n)||!/\./.test(n))}var yl=ce.create({name:"link",priority:1e3,keepOnSplit:!1,exitable:!0,inclusive:!1,addOptions(){return{HTMLAttributes:{},editor:void 0,onClick:void 0,isValidLink:kl}},addAttributes(){return{href:{default:null,parseHTML(e){return e.getAttribute("href")}},target:{default:Ae.target},rel:{default:Ae.rel}}},parseHTML(){let e=this.options.isValidLink;return[{tag:"a[href]",getAttrs:t=>{let o=t.getAttribute("href");return!o||!e(o)?!1:null}}]},renderHTML({HTMLAttributes:e}){return this.options.isValidLink(e.href)?["a",oe(Ae,e),0]:["a",oe(Ae,{...e,href:""}),0]},addPasteRules(){let e=this.options.isValidLink;return[Or({find:t=>{let o=[];if(t){let n=Cn(t,{defaultProtocol:Ye}).filter(r=>r.isLink&&e(r.value));for(let r of n)Qe(r.value)&&o.push({text:r.value,data:{href:r.href},index:r.start})}return o},type:this.type,getAttributes:t=>({href:t.data?.href})})]},addProseMirrorPlugins(){let e=[];return e.push(fl({type:this.type,defaultProtocol:Ye,validate:this.options.isValidLink,shouldAutoLink:Qe})),e.push(ml({type:this.type,tiptapEditor:this.editor,editor:this.options.editor,onClick:this.options.onClick})),e.push(gl({editor:this.editor,defaultProtocol:Ye,type:this.type,shouldAutoLink:Qe,isValidLink:this.options.isValidLink})),e}}),Ot=["vscode-editor-data","blocknote/html","text/markdown","text/html","text/plain","Files"];function vl(e,t){if(!e.startsWith(".")||!t.startsWith("."))throw Error("The strings provided are not valid file extensions.");return e===t}function Cl(e,t){let o=e.split("/"),n=t.split("/");if(o.length!==2)throw Error(`The string ${e} is not a valid MIME type.`);if(n.length!==2)throw Error(`The string ${t} is not a valid MIME type.`);return o[1]==="*"||n[1]==="*"?o[0]===n[0]:(o[0]==="*"||n[0]==="*"||o[0]===n[0])&&o[1]===n[1]}function bo(e,t,o,n="after"){let r;return r=Array.isArray(t.content)&&t.content.length===0?e.updateBlock(t,o).id:e.insertBlocks([o],t,n)[0].id,r}async function wn(e,t){if(!t.uploadFile){console.warn("Attempted ot insert file, but uploadFile is not set in the BlockNote editor options");return}let o="dataTransfer"in e?e.dataTransfer:e.clipboardData;if(o===null)return;let n=null;for(let i of Ot)if(o.types.includes(i)){n=i;break}if(n!=="Files")return;let r=o.items;if(r){e.preventDefault();for(let i=0;i<r.length;i++){let a="file";for(let l of Object.values(t.schema.blockSpecs))for(let d of l.implementation.meta?.fileBlockAccept||[]){let c=d.startsWith("."),u=r[i].getAsFile();if(u&&(!c&&u.type&&Cl(r[i].type,d)||c&&vl("."+u.name.split(".").pop(),d))){a=l.config.type;break}}let s=r[i].getAsFile();if(s){let l={type:a,props:{name:s.name}},d;if(e.type==="paste"){let p=t.getTextCursorPosition().block;d=bo(t,p,l)}else if(e.type==="drop"){let p={left:e.clientX,top:e.clientY},f=t.prosemirrorView.posAtCoords(p);if(!f)return;d=t.transact(m=>{let h=K(m.doc,f.pos),b=t.domElement?.querySelector(`[data-id="${h.node.attrs.id}"]`)?.getBoundingClientRect();return bo(t,t.getBlock(h.node.attrs.id),l,b&&(b.top+b.bottom)/2>p.top?"before":"after")})}else return;let c=await t.uploadFile(s,d),u=typeof c=="string"?{props:{url:c}}:{...c};t.updateBlock(d,u)}}}}var wl=e=>V.create({name:"dropFile",addProseMirrorPlugins(){return[new B({props:{handleDOMEvents:{drop(t,o){if(!e.isEditable)return;let n=null;for(let r of Ot)if(o.dataTransfer.types.includes(r)){n=r;break}return n===null?!0:n==="Files"?(wn(o,e),!0):!1}}}})]}}),xl=/(^|\n) {0,3}#{1,6} {1,8}[^\n]{1,64}\r?\n\r?\n\s{0,32}\S/,Sl=/(_|__|\*|\*\*|~~|==|\+\+)(?!\s)(?:[^\s](?:.{0,62}[^\s])?|\S)(?=\1)/,El=/\[[^\]]{1,128}\]\(https?:\/\/\S{1,999}\)/,Ml=/(?:\s|^)`(?!\s)(?:[^\s`](?:[^`]{0,46}[^\s`])?|[^\s`])`([^\w]|$)/,Bl=/(?:^|\n)\s{0,5}-\s{1}[^\n]+\n\s{0,15}-\s/,Tl=/(?:^|\n)\s{0,5}\d+\.\s{1}[^\n]+\n\s{0,15}\d+\.\s/,Al=/\n{2} {0,3}-{2,48}\n{2}/,Ll=/(?:\n|^)(```|~~~|\$\$)(?!`|~)[^\s]{0,64} {0,64}[^\n]{0,64}\n[\s\S]{0,9999}?\s*\1 {0,64}(?:\n+|$)/,Pl=/(?:\n|^)(?!\s)\w[^\n]{0,64}\r?\n(-|=)\1{0,64}\n\n\s{0,64}(\w|$)/,$l=/(?:^|(\r?\n\r?\n))( {0,3}>[^\n]{1,333}\n){1,999}($|(\r?\n))/,Il=/^\s*\|(.+\|)+\s*$/m,Ol=/^\s*\|(\s*[-:]+[-:]\s*\|)+\s*$/m,_l=/^\s*\|(.+\|)+\s*$/m,Nl=e=>xl.test(e)||Sl.test(e)||El.test(e)||Ml.test(e)||Bl.test(e)||Tl.test(e)||Al.test(e)||Ll.test(e)||Pl.test(e)||$l.test(e)||Il.test(e)||Ol.test(e)||_l.test(e);async function Dl(e,t){let{schema:o}=t.state;if(!e.clipboardData)return!1;let n=e.clipboardData.getData("text/plain");if(!n)return!1;if(!o.nodes.codeBlock)return t.pasteText(n),!0;let r=e.clipboardData.getData("vscode-editor-data"),i=(r?JSON.parse(r):void 0)?.mode;return i?(t.pasteHTML(`<pre><code class="language-${i}">${n.replace(/\r\n?/g,`
|
|
12
|
+
`)}</code></pre>`),!0):!1}function Hl({event:e,editor:t,prioritizeMarkdownOverHTML:o,plainTextAsMarkdown:n}){if(t.transact(a=>a.selection.$from.parent.type.spec.code&&a.selection.$to.parent.type.spec.code)){let a=e.clipboardData?.getData("text/plain");if(a)return t.pasteText(a),!0}let r;for(let a of Ot)if(e.clipboardData.types.includes(a)){r=a;break}if(!r)return!0;if(r==="vscode-editor-data")return Dl(e,t.prosemirrorView),!0;if(r==="Files")return wn(e,t),!0;let i=e.clipboardData.getData(r);if(r==="blocknote/html")return t.pasteHTML(i,!0),!0;if(r==="text/markdown")return t.pasteMarkdown(i),!0;if(o){let a=e.clipboardData.getData("text/plain");if(Nl(a))return t.pasteMarkdown(a),!0}return r==="text/html"?(t.pasteHTML(i),!0):n?(t.pasteMarkdown(i),!0):(t.pasteText(i),!0)}var Vl=(e,t)=>V.create({name:"pasteFromClipboard",addProseMirrorPlugins(){return[new B({props:{handleDOMEvents:{paste(o,n){if(n.preventDefault(),e.isEditable)return t({event:n,editor:e,defaultPasteHandler:({prioritizeMarkdownOverHTML:r=!0,plainTextAsMarkdown:i=!0}={})=>Hl({event:n,editor:e,prioritizeMarkdownOverHTML:r,plainTextAsMarkdown:i})})}}}})]}});function Rl(e,t,o){let n=!1,r=e.state.selection instanceof de;if(!r){let s=e.state.doc.slice(e.state.selection.from,e.state.selection.to,!1).content,l=[];for(let d=0;d<s.childCount;d++)l.push(s.child(d));n=l.find(d=>d.type.isInGroup("bnBlock")||d.type.name==="blockGroup"||d.type.spec.group==="blockContent")===void 0,n&&(t=s)}let i,a=We(e.state.schema,o);if(r){t.firstChild?.type.name==="table"&&(t=t.firstChild.content);let s=$o(t,o.schema.inlineContentSchema,o.schema.styleSchema);i=`<table>${a.exportInlineContent(s,{})}</table>`}else if(n){let s=Re(t,o.schema.inlineContentSchema,o.schema.styleSchema);i=a.exportInlineContent(s,{})}else{let s=sn(t);i=a.exportBlocks(s,{})}return i}function xn(e,t){"node"in e.state.selection&&e.state.selection.node.type.spec.group==="blockContent"&&t.transact(i=>i.setSelection(new ue(i.doc.resolve(e.state.selection.from-1))));let o=e.serializeForClipboard(e.state.selection.content()).dom.innerHTML,n=e.state.selection.content().content,r=Rl(e,n,t);return{clipboardHTML:o,externalHTML:r,markdown:Pt(r)}}var ko=()=>{let e=window.getSelection();if(!e||e.isCollapsed)return!0;let t=e.focusNode;for(;t;){if(t instanceof HTMLElement&&t.getAttribute("contenteditable")==="false")return!0;t=t.parentElement}return!1},yo=(e,t,o)=>{o.preventDefault(),o.clipboardData.clearData();let{clipboardHTML:n,externalHTML:r,markdown:i}=xn(t,e);o.clipboardData.setData("blocknote/html",n),o.clipboardData.setData("text/html",r),o.clipboardData.setData("text/plain",i)},zl=e=>V.create({name:"copyToClipboard",addProseMirrorPlugins(){return[new B({props:{handleDOMEvents:{copy(t,o){return ko()||yo(e,t,o),!0},cut(t,o){return ko()||(yo(e,t,o),t.editable&&t.dispatch(t.state.tr.deleteSelection())),!0},dragstart(t,o){if(!("node"in t.state.selection)||t.state.selection.node.type.spec.group!=="blockContent")return;e.transact(a=>a.setSelection(new ue(a.doc.resolve(t.state.selection.from-1)))),o.preventDefault(),o.dataTransfer.clearData();let{clipboardHTML:n,externalHTML:r,markdown:i}=xn(t,e);return o.dataTransfer.setData("blocknote/html",n),o.dataTransfer.setData("text/html",r),o.dataTransfer.setData("text/plain",i),!0}}}})]}}),Ul=V.create({name:"blockBackgroundColor",addGlobalAttributes(){return[{types:["tableCell","tableHeader"],attributes:{backgroundColor:yi()}}]}}),jl=F.create({name:"hardBreak",inline:!0,group:"inline",selectable:!1,linebreakReplacement:!0,priority:10,parseHTML(){return[{tag:"br"}]},renderHTML({HTMLAttributes:e}){return["br",oe(this.options.HTMLAttributes,e)]},renderText(){return`
|
|
13
|
+
`}}),Sn=(e,t)=>{let o=e.resolve(t),n=o.depth-1;if(n<1)return;let r=o.before(n),i=e.resolve(r).nodeAfter;if(i)return i.type.spec.group?.includes("bnBlock")?Y(e.resolve(r)):Sn(e,r)},ye=(e,t)=>{let o=e.resolve(t),n=o.index();if(n===0)return;let r=o.posAtIndex(n-1);return Y(e.resolve(r))},be=(e,t)=>{let o=e.resolve(t),n=o.index();if(n===o.node().childCount-1)return;let r=o.posAtIndex(n+1);return Y(e.resolve(r))},bt=(e,t)=>{for(;t.childContainer;){let o=t.childContainer.node,n=e.resolve(t.childContainer.beforePos+1).posAtIndex(o.childCount-1);t=Y(e.resolve(n))}return t},Fl=(e,t)=>e.isBlockContainer&&e.blockContent.node.type.spec.content==="inline*"&&e.blockContent.node.childCount>0&&t.isBlockContainer&&t.blockContent.node.type.spec.content==="inline*",ql=(e,t,o,n)=>{if(!n.isBlockContainer)throw Error(`Attempted to merge block at position ${n.bnBlock.beforePos} into previous block at position ${o.bnBlock.beforePos}, but next block is not a block container`);if(n.childContainer){let r=e.doc.resolve(n.childContainer.beforePos+1),i=e.doc.resolve(n.childContainer.afterPos-1),a=r.blockRange(i);if(t){let s=e.doc.resolve(n.bnBlock.beforePos);e.tr.lift(a,s.depth)}}if(t){if(!o.isBlockContainer)throw Error(`Attempted to merge block at position ${n.bnBlock.beforePos} into previous block at position ${o.bnBlock.beforePos}, but previous block is not a block container`);t(e.tr.delete(o.blockContent.afterPos-1,n.blockContent.beforePos+1))}return!0},vo=e=>({state:t,dispatch:o})=>{let n=Y(t.doc.resolve(e)),r=ye(t.doc,n.bnBlock.beforePos);if(!r)return!1;let i=bt(t.doc,r);return Fl(i,n)?ql(t,o,i,n):!1},Wl=V.create({priority:50,addKeyboardShortcuts(){let e=()=>this.editor.commands.first(({chain:n,commands:r})=>[()=>r.deleteSelection(),()=>r.undoInputRule(),()=>r.command(({state:i})=>{let a=E(i);if(!a.isBlockContainer)return!1;let s=i.selection.from===a.blockContent.beforePos+1,l=a.blockContent.node.type.name==="paragraph";return s&&!l?r.command(fi(a.bnBlock.beforePos,{type:"paragraph",props:{}})):!1}),()=>r.command(({state:i,tr:a})=>{let s=E(i);if(!s.isBlockContainer)return!1;let{blockContent:l}=s;return i.selection.from===l.beforePos+1?gt(a,a.doc.type.schema.nodes.blockContainer,a.doc.type.schema.nodes.blockGroup):!1}),()=>r.command(({state:i})=>{let a=E(i);if(!a.isBlockContainer)return!1;let{bnBlock:s,blockContent:l}=a,d=ye(i.doc,a.bnBlock.beforePos);if(!d||!d.isBlockContainer||d.blockContent.node.type.spec.content!=="inline*")return!1;let c=i.selection.from===l.beforePos+1,u=i.selection.empty,p=s.beforePos;return c&&u?n().command(vo(p)).scrollIntoView().run():!1}),()=>r.command(({state:i,tr:a,dispatch:s})=>{let l=E(i);if(!l.isBlockContainer||i.selection.from!==l.blockContent.beforePos+1)return!1;let d=ye(i.doc,l.bnBlock.beforePos);if(!d||d.isBlockContainer)return!1;if(s){let c=d.bnBlock.afterPos-1,u=a.doc.resolve(c-1);return a.delete(l.bnBlock.beforePos,l.bnBlock.afterPos),a.insert(u.pos,l.bnBlock.node),a.setSelection(L.near(a.doc.resolve(u.pos+1))),!0}return!1}),()=>r.command(({state:i,tr:a,dispatch:s})=>{let l=E(i);if(!l.isBlockContainer||a.selection.from!==l.blockContent.beforePos+1)return!1;let d=a.doc.resolve(l.bnBlock.beforePos);if(d.nodeBefore||d.node().type.name!=="column")return!1;let c=a.doc.resolve(l.bnBlock.beforePos),u=a.doc.resolve(c.before()),p=u.before();return s&&(a.delete(l.bnBlock.beforePos,l.bnBlock.afterPos),_e(a,p),u.pos===p+1?(a.insert(p,l.bnBlock.node),a.setSelection(L.near(a.doc.resolve(p)))):(a.insert(u.pos-1,l.bnBlock.node),a.setSelection(L.near(a.doc.resolve(u.pos))))),!0}),()=>r.command(({state:i})=>{let a=E(i);if(!a.isBlockContainer)return!1;if(a.blockContent.node.childCount===0&&a.blockContent.node.type.spec.content==="inline*"){let s=ye(i.doc,a.bnBlock.beforePos);if(!s)return!1;let l=bt(i.doc,s);if(!l.isBlockContainer||!l||!l.isBlockContainer)return!1;let d=n();if(a.childContainer&&d.insertContentAt(a.bnBlock.afterPos,a.childContainer?.node.content),l.blockContent.node.type.spec.content==="tableRow+"){let c=a.bnBlock.beforePos-1-1-1-1-1;d=d.setTextSelection(c)}else if(l.blockContent.node.type.spec.content==="")d=d.setNodeSelection(l.blockContent.beforePos);else{let c=l.blockContent.afterPos-1;d=d.setTextSelection(c)}return d.deleteRange({from:a.bnBlock.beforePos,to:a.bnBlock.afterPos}).scrollIntoView().run()}return!1}),()=>r.command(({state:i})=>{let a=E(i);if(!a.isBlockContainer)return!1;let s=i.selection.from===a.blockContent.beforePos+1,l=i.selection.empty,d=ye(i.doc,a.bnBlock.beforePos);if(d&&s&&l){let c=bt(i.doc,d);if(!c.isBlockContainer)return!1;if(c.blockContent.node.type.spec.content===""||c.blockContent.node.type.spec.content==="inline*"&&c.blockContent.node.childCount===0)return n().cut({from:a.bnBlock.beforePos,to:a.bnBlock.afterPos},c.bnBlock.afterPos).deleteRange({from:c.bnBlock.beforePos,to:c.bnBlock.afterPos}).run()}return!1})]),t=()=>this.editor.commands.first(({chain:n,commands:r})=>[()=>r.deleteSelection(),()=>r.command(({state:i})=>{let a=E(i);if(!a.isBlockContainer||!a.childContainer)return!1;let{blockContent:s,childContainer:l}=a,d=i.selection.from===s.afterPos-1,c=i.selection.empty,u=Y(i.doc.resolve(l.beforePos+1));if(!u.isBlockContainer)return!1;if(d&&c){let p=u.blockContent.node,f=p.type.spec.content==="inline*",m=s.node.type.spec.content==="inline*";return n().insertContentAt(u.bnBlock.afterPos,u.childContainer?.node.content||M.empty).deleteRange(l.node.childCount===1?{from:l.beforePos,to:l.afterPos}:{from:u.bnBlock.beforePos,to:u.bnBlock.afterPos}).insertContentAt(i.selection.from,f&&m?p.content:null).setTextSelection(i.selection.from).scrollIntoView().run()}return!1}),()=>r.command(({state:i})=>{let a=E(i);if(!a.isBlockContainer)return!1;let{bnBlock:s,blockContent:l}=a,d=be(i.doc,a.bnBlock.beforePos);if(!d||!d.isBlockContainer)return!1;let c=i.selection.from===l.afterPos-1,u=i.selection.empty,p=s.afterPos;return c&&u?n().command(vo(p)).scrollIntoView().run():!1}),()=>r.command(({state:i,tr:a,dispatch:s})=>{let l=E(i);if(!l.isBlockContainer||i.selection.from!==l.blockContent.afterPos-1)return!1;let d=be(i.doc,l.bnBlock.beforePos);if(!d||d.isBlockContainer)return!1;if(s){let c=d.bnBlock.beforePos+1,u=a.doc.resolve(c+1);return a.delete(u.pos,u.pos+u.nodeAfter.nodeSize),_e(a,d.bnBlock.beforePos),a.insert(l.bnBlock.afterPos,u.nodeAfter),a.setSelection(L.near(a.doc.resolve(u.pos))),!0}return!1}),()=>r.command(({state:i,tr:a,dispatch:s})=>{let l=E(i);if(!l.isBlockContainer||a.selection.from!==l.blockContent.afterPos-1)return!1;let d=a.doc.resolve(l.bnBlock.afterPos);if(d.nodeAfter||d.node().type.name!=="column")return!1;let c=a.doc.resolve(l.bnBlock.afterPos),u=a.doc.resolve(c.after()),p=u.after();if(s){let f=u.pos===p-1?p:u.pos+1,m=Y(a.doc.resolve(f));a.delete(m.bnBlock.beforePos,m.bnBlock.afterPos),_e(a,p-u.node().nodeSize),a.insert(c.pos,m.bnBlock.node),a.setSelection(L.near(a.doc.resolve(f)))}return!0}),()=>r.command(({state:i})=>{let a=E(i);if(!a.isBlockContainer)return!1;let{blockContent:s}=a,l=i.selection.from===s.afterPos-1,d=i.selection.empty;if(l&&d){let c=(h,b)=>{let g=be(h,b);if(g)return g;let k=Sn(h,b);if(k)return c(h,k.bnBlock.beforePos)},u=c(i.doc,a.bnBlock.beforePos);if(!u||!u.isBlockContainer)return!1;let p=u.blockContent.node,f=p.type.spec.content==="inline*",m=s.node.type.spec.content==="inline*";return n().insertContentAt(u.bnBlock.afterPos,u.childContainer?.node.content||M.empty).deleteRange({from:u.bnBlock.beforePos,to:u.bnBlock.afterPos}).insertContentAt(i.selection.from,f&&m?p.content:null).setTextSelection(i.selection.from).scrollIntoView().run()}return!1}),()=>r.command(({state:i})=>{let a=E(i);if(!a.isBlockContainer)return!1;if(a.blockContent.node.childCount===0&&a.blockContent.node.type.spec.content==="inline*"){let s=be(i.doc,a.bnBlock.beforePos);if(!s||!s.isBlockContainer)return!1;let l=n();if(s.blockContent.node.type.spec.content==="tableRow+"){let d=a.bnBlock.afterPos+1+1+1+1+1;l=l.setTextSelection(d)}else l=s.blockContent.node.type.spec.content===""?l.setNodeSelection(s.blockContent.beforePos):l.setTextSelection(s.blockContent.beforePos+1);return l.deleteRange({from:a.bnBlock.beforePos,to:a.bnBlock.afterPos}).scrollIntoView().run()}return!1}),()=>r.command(({state:i})=>{let a=E(i);if(!a.isBlockContainer)return!1;let s=i.selection.from===a.blockContent.afterPos-1,l=i.selection.empty,d=be(i.doc,a.bnBlock.beforePos);if(!d||!d.isBlockContainer)return!1;if(d&&s&&l&&(d.blockContent.node.type.spec.content===""||d.blockContent.node.type.spec.content==="inline*"&&d.blockContent.node.childCount===0)){let c=d.bnBlock.node.lastChild.content;return n().deleteRange({from:d.bnBlock.beforePos,to:d.bnBlock.afterPos}).insertContentAt(a.bnBlock.afterPos,d.bnBlock.node.childCount===2?c:null).run()}return!1})]),o=(n=!1)=>this.editor.commands.first(({commands:r,tr:i})=>[()=>r.command(({state:a,tr:s})=>{let l=E(a);if(!l.isBlockContainer)return!1;let{bnBlock:d,blockContent:c}=l,{depth:u}=a.doc.resolve(d.beforePos),p=a.selection.$anchor.parentOffset===0,f=a.selection.anchor===a.selection.head,m=c.node.childCount===0;return p&&f&&m&&u>1?gt(s,s.doc.type.schema.nodes.blockContainer,s.doc.type.schema.nodes.blockGroup):!1}),()=>r.command(({state:a})=>{let s=E(a),l=this.options.editor.schema.blockSchema[s.blockNoteType].meta?.hardBreakShortcut??"shift+enter";if(l==="none")return!1;if(l==="shift+enter"&&n||l==="enter"){let d=i.storedMarks||i.selection.$head.marks().filter(c=>this.editor.extensionManager.splittableMarks.includes(c.type.name));return i.insert(i.selection.head,i.doc.type.schema.nodes.hardBreak.create()).ensureMarks(d),!0}return!1}),()=>r.command(({state:a,dispatch:s,tr:l})=>{let d=E(a);if(!d.isBlockContainer)return!1;let{bnBlock:c,blockContent:u}=d,p=a.selection.$anchor.parentOffset===0,f=a.selection.anchor===a.selection.head,m=u.node.childCount===0;if(p&&f&&m){let h=c.afterPos,b=h+2;if(s){let g=a.schema.nodes.blockContainer.createAndFill(void 0,[a.schema.nodes.paragraph.createAndFill()||void 0,d.childContainer?.node].filter(k=>k!==void 0));l.insert(h,g).setSelection(new L(l.doc.resolve(b))).scrollIntoView(),d.childContainer&&l.delete(d.childContainer.beforePos,d.childContainer.afterPos)}return!0}return!1}),()=>r.command(({state:a,chain:s})=>{let l=E(a);if(!l.isBlockContainer)return!1;let{blockContent:d}=l,c=a.selection.$anchor.parentOffset===0;return d.node.childCount===0?!1:(s().deleteSelection().command(Wi(a.selection.from,c,c)).run(),!0)})]);return{Backspace:e,Delete:t,Enter:()=>o(),"Shift-Enter":()=>o(!0),Tab:()=>this.options.tabBehavior!=="prefer-indent"&&(this.options.editor.getExtension(ct)?.store.state||this.options.editor.getExtension(J)?.store.state!==void 0)?!1:mn(this.options.editor),"Shift-Tab":()=>this.options.tabBehavior!=="prefer-indent"&&(this.options.editor.getExtension(ct)?.store.state||this.options.editor.getExtension(J)?.store.state!==void 0)?!1:gn(this.options.editor),"Shift-Mod-ArrowUp":()=>(this.options.editor.moveBlocksUp(),!0),"Shift-Mod-ArrowDown":()=>(this.options.editor.moveBlocksDown(),!0),"Mod-z":()=>this.options.editor.undo(),"Mod-y":()=>this.options.editor.redo(),"Shift-Mod-z":()=>this.options.editor.redo()}}}),Gl=ce.create({name:"insertion",inclusive:!1,excludes:"deletion modification insertion",addAttributes(){return{id:{default:null,validate:"number"}}},extendMarkSchema(e){return e.name==="insertion"?{blocknoteIgnore:!0,inclusive:!1,toDOM(t,o){return["ins",{"data-id":String(t.attrs.id),"data-inline":String(o),...!o&&{style:"display: contents"}},0]},parseDOM:[{tag:"ins",getAttrs(t){return t.dataset.id?{id:parseInt(t.dataset.id,10)}:!1}}]}:{}}}),Zl=ce.create({name:"deletion",inclusive:!1,excludes:"insertion modification deletion",addAttributes(){return{id:{default:null,validate:"number"}}},extendMarkSchema(e){return e.name==="deletion"?{blocknoteIgnore:!0,inclusive:!1,toDOM(t,o){return["del",{"data-id":String(t.attrs.id),"data-inline":String(o),...!o&&{style:"display: contents"}},0]},parseDOM:[{tag:"del",getAttrs(t){return t.dataset.id?{id:parseInt(t.dataset.id,10)}:!1}}]}:{}}}),Jl=ce.create({name:"modification",inclusive:!1,excludes:"deletion insertion",addAttributes(){return{id:{default:null,validate:"number"},type:{validate:"string"},attrName:{default:null,validate:"string|null"},previousValue:{default:null},newValue:{default:null}}},extendMarkSchema(e){return e.name==="modification"?{blocknoteIgnore:!0,inclusive:!1,toDOM(t,o){return[o?"span":"div",{"data-type":"modification","data-id":String(t.attrs.id),"data-mod-type":t.attrs.type,"data-mod-prev-val":JSON.stringify(t.attrs.previousValue),"data-mod-new-val":JSON.stringify(t.attrs.newValue)},0]},parseDOM:[{tag:"span[data-type='modification']",getAttrs(t){return t.dataset.id?{id:parseInt(t.dataset.id,10),type:t.dataset.modType,previousValue:t.dataset.modPrevVal,newValue:t.dataset.modNewVal}:!1}},{tag:"div[data-type='modification']",getAttrs(t){return t.dataset.id?{id:parseInt(t.dataset.id,10),type:t.dataset.modType,previousValue:t.dataset.modPrevVal}:!1}}]}:{}}}),Xl=V.create({name:"textAlignment",addGlobalAttributes(){return[{types:["tableCell","tableHeader"],attributes:{textAlignment:{default:"left",parseHTML:e=>e.getAttribute("data-text-alignment"),renderHTML:e=>e.textAlignment==="left"?{}:{"data-text-alignment":e.textAlignment}}}}]}}),Kl=V.create({name:"blockTextColor",addGlobalAttributes(){return[{types:["table","tableCell","tableHeader"],attributes:{textColor:vi()}}]}}),Yl={blockColor:"data-block-color",blockStyle:"data-block-style",id:"data-id",depth:"data-depth",depthChange:"data-depth-change"},Ql=F.create({name:"blockContainer",group:"blockGroupChild bnBlock",content:"blockContent blockGroup?",priority:50,defining:!0,marks:"insertion modification deletion",parseHTML(){return[{tag:"div[data-node-type="+this.name+"]",getAttrs:e=>{if(typeof e=="string")return!1;let t={};for(let[o,n]of Object.entries(Yl))e.getAttribute(n)&&(t[o]=e.getAttribute(n));return t}},{tag:'div[data-node-type="blockOuter"]',skip:!0}]},renderHTML({HTMLAttributes:e}){let t=document.createElement("div");t.className="bn-block-outer",t.setAttribute("data-node-type","blockOuter");for(let[r,i]of Object.entries(e))r!=="class"&&t.setAttribute(r,i);let o={...this.options.domAttributes?.block||{},...e},n=document.createElement("div");n.className=X("bn-block",o.class),n.setAttribute("data-node-type",this.name);for(let[r,i]of Object.entries(o))r!=="class"&&n.setAttribute(r,i);return t.appendChild(n),{dom:t,contentDOM:n}}}),ed=F.create({name:"blockGroup",group:"childContainer",content:"blockGroupChild+",marks:"deletion insertion modification",parseHTML(){return[{tag:"div",getAttrs:e=>typeof e=="string"?!1:e.getAttribute("data-node-type")==="blockGroup"?null:!1}]},renderHTML({HTMLAttributes:e}){let t={...this.options.domAttributes?.blockGroup||{},...e},o=document.createElement("div");o.className=X("bn-block-group",t.class),o.setAttribute("data-node-type","blockGroup");for(let[n,r]of Object.entries(t))n!=="class"&&o.setAttribute(n,r);return{dom:o,contentDOM:o}}}),td=F.create({name:"doc",topNode:!0,content:"blockGroup",marks:"insertion modification deletion"}),od=v(({options:e})=>({key:"collaboration",blockNoteExtensions:[Oa(e),dt(e),$e(e),Ie(),Na(e)]}));function nd(e,t){return[fe.ClipboardTextSerializer,fe.Commands,fe.Editable,fe.FocusEvents,fe.Tabindex,Br,Ve.configure({types:["blockContainer","columnList","column"],setIdAttribute:t.setIdAttribute,isWithinEditor:e.isWithinEditor}),jl,Tr,Gl,Zl,Jl,yl.configure({HTMLAttributes:t.links?.HTMLAttributes??{},editor:e,onClick:t.links?.onClick,...t.links?.isValidLink?{isValidLink:t.links.isValidLink}:{}}),...Object.values(e.schema.styleSpecs).map(o=>o.implementation.mark.configure({editor:e})),Kl,Ul,Xl,V.create({name:"OverrideEscape",addKeyboardShortcuts:()=>({Escape:()=>e.getExtension(Lt)?.shown()?!1:(e.blur(),!0)})}),td,Ql.configure({editor:e,domAttributes:t.domAttributes}),Wl.configure({editor:e,tabBehavior:t.tabBehavior}),ed.configure({domAttributes:t.domAttributes}),...Object.values(e.schema.inlineContentSpecs).filter(o=>o.config!=="link"&&o.config!=="text").map(o=>o.implementation.node.configure({editor:e})),...Object.values(e.schema.blockSpecs).flatMap(o=>[..."node"in o.implementation?[o.implementation.node.configure({editor:e,domAttributes:t.domAttributes})]:[]]),zl(e),Vl(e,t.pasteHandler||(o=>o.defaultPasteHandler())),wl(e)]}function rd(e,t){let o=[nn(),za(t),J(t),ct(t),ja(t),qa(),Ga(t),ht(t),is(t),Lt(t),...t.trailingBlock===!1?[]:[ps()]];return t.collaboration?o.push(od(t.collaboration)):o.push(Ua()),"table"in e.schema.blockSpecs&&o.push(us(t)),t.animations!==!1&&o.push(Ja()),o}var id=class{disabledExtensions=new Set;extensions=[];abortMap=new Map;extensionFactories=new Map;extensionPlugins=new Map;constructor(e,t){this.editor=e,this.options=t,e.onMount(()=>{for(let o of this.extensions)if(o.mount){let n=new window.AbortController,r=o.mount({dom:e.prosemirrorView.dom,root:e.prosemirrorView.root,signal:n.signal});r&&n.signal.addEventListener("abort",()=>{r()}),this.abortMap.set(o,n)}}),e.onUnmount(()=>{for(let[o,n]of this.abortMap.entries())this.abortMap.delete(o),n.abort()}),this.disabledExtensions=new Set(t.disableExtensions||[]);for(let o of rd(this.editor,this.options))this.addExtension(o);for(let o of this.options.extensions??[])this.addExtension(o);for(let o of Object.values(this.editor.schema.blockSpecs))for(let n of o.extensions??[])this.addExtension(n)}registerExtension(e){let t=[].concat(e).filter(Boolean);if(!t.length){console.warn("No extensions found to register",e);return}let o=t.map(r=>this.addExtension(r)).filter(Boolean),n=new Set;for(let r of o)r?.tiptapExtensions&&console.warn(`Extension ${r.key} has tiptap extensions, but these cannot be changed after initializing the editor. Please separate the extension into multiple extensions if you want to add them, or re-initialize the editor.`,r),r?.inputRules?.length&&console.warn(`Extension ${r.key} has input rules, but these cannot be changed after initializing the editor. Please separate the extension into multiple extensions if you want to add them, or re-initialize the editor.`,r),this.getProsemirrorPluginsFromExtension(r).plugins.forEach(i=>{n.add(i)});this.updatePlugins(r=>[...r,...n])}addExtension(e){let t;if(t=typeof e=="function"?e({editor:this.editor}):e,!(!t||this.disabledExtensions.has(t.key))){if(typeof e=="function"){let o=t[tt];typeof o=="function"&&this.extensionFactories.set(o,t)}if(this.extensions.push(t),t.blockNoteExtensions)for(let o of t.blockNoteExtensions)this.addExtension(o);return t}}resolveExtensions(e){let t=[];if(typeof e=="function"){let o=this.extensionFactories.get(e);o&&t.push(o)}else if(Array.isArray(e))for(let o of e)t.push(...this.resolveExtensions(o));else if(typeof e=="object"&&"key"in e)t.push(e);else if(typeof e=="string"){let o=this.extensions.find(n=>n.key===e);o&&t.push(o)}return t}unregisterExtension(e){let t=this.resolveExtensions(e);if(!t.length){console.warn("No extensions found to unregister",e);return}let o=!1,n=new Set;for(let r of t)this.extensions=this.extensions.filter(i=>i!==r),this.extensionFactories.forEach((i,a)=>{i===r&&this.extensionFactories.delete(a)}),this.abortMap.get(r)?.abort(),this.abortMap.delete(r),this.extensionPlugins.get(r)?.forEach(i=>{n.add(i)}),this.extensionPlugins.delete(r),r.tiptapExtensions&&!o&&(o=!0,console.warn(`Extension ${r.key} has tiptap extensions, but they will not be removed. Please separate the extension into multiple extensions if you want to remove them, or re-initialize the editor.`,e));this.updatePlugins(r=>r.filter(i=>!n.has(i)))}updatePlugins(e){let t=this.editor.prosemirrorState,o=t.reconfigure({plugins:e(t.plugins.slice())});this.editor.prosemirrorView.updateState(o)}getTiptapExtensions(){let e=nd(this.editor,this.options).filter(n=>!this.disabledExtensions.has(n.name)),t=Do(this.extensions),o=new Map;for(let n of this.extensions){n.tiptapExtensions&&e.push(...n.tiptapExtensions);let r=t(n.key),{plugins:i,inputRules:a}=this.getProsemirrorPluginsFromExtension(n);i.length&&e.push(V.create({name:n.key,priority:r,addProseMirrorPlugins:()=>i})),a.length&&(o.has(r)||o.set(r,[]),o.get(r).push(...a))}e.push(V.create({name:"blocknote-input-rules",addProseMirrorPlugins(){let n=[];return Array.from(o.keys()).sort().reverse().forEach(r=>{n.push(...o.get(r))}),[wr({rules:n})]}}));for(let n of this.options._tiptapOptions?.extensions??[])e.push(n);return e}getProsemirrorPluginsFromExtension(e){let t=[...e.prosemirrorPlugins??[]],o=[];return!e.prosemirrorPlugins?.length&&!Object.keys(e.keyboardShortcuts||{}).length&&!e.inputRules?.length?{plugins:t,inputRules:o}:(this.extensionPlugins.set(e,t),e.inputRules?.length&&o.push(...e.inputRules.map(n=>new xr(n.find,(r,i,a,s)=>{let l=n.replace({match:i,range:{from:a,to:s},editor:this.editor});if(l){let d=this.editor.getTextCursorPosition();if(this.editor.schema.blockSchema[d.block.type].content!=="inline")return null;let c=Se(r.tr),u=r.tr.deleteRange(a,s);return Ue(u,c.bnBlock.beforePos,l),u}return null}))),Object.keys(e.keyboardShortcuts||{}).length&&t.push(Sr(Object.fromEntries(Object.entries(e.keyboardShortcuts).map(([n,r])=>[n,()=>r({editor:this.editor})])))),{plugins:t,inputRules:o})}getExtensions(){return new Map(this.extensions.map(e=>[e.key,e]))}getExtension(e){if(typeof e=="string")return this.extensions.find(t=>t.key===e)||void 0;if(typeof e=="function")return this.extensionFactories.get(e)||void 0;throw Error(`Invalid extension type: ${typeof e}`)}hasExtension(e){return typeof e=="string"?this.extensions.some(t=>t.key===e):typeof e=="object"&&"key"in e?this.extensions.some(t=>t.key===e.key):typeof e=="function"?this.extensionFactories.has(e):!1}};function ad(e,t){let{$from:o,$to:n}=t;if(o.pos>o.start()&&o.pos<e.content.size){let r=e.textBetween(o.pos,o.pos+1);if(/^[\w\p{P}]$/u.test(r)){let i=e.textBetween(o.start(),o.pos).match(/[\w\p{P}]+$/u);i&&(o=e.resolve(o.pos-i[0].length))}}if(n.pos<n.end()&&n.pos>0){let r=e.textBetween(n.pos-1,n.pos);if(/^[\w\p{P}]$/u.test(r)){let i=e.textBetween(n.pos,n.end()).match(/^[\w\p{P}]+/u);i&&(n=e.resolve(n.pos+i[0].length))}}return{$from:o,$to:n,from:o.pos,to:n.pos}}function sd(e){let t=T(e);if(e.selection.empty||"node"in e.selection)return;let o=e.doc.resolve(K(e.doc,e.selection.from).posBeforeNode),n=e.doc.resolve(K(e.doc,e.selection.to).posBeforeNode),r=(d,c)=>{let u=o.posAtIndex(d,c),p=e.doc.resolve(u).nodeAfter;if(!p)throw Error(`Error getting selection - node not found at position ${u}`);return x(p,t)},i=[],a=o.sharedDepth(n.pos),s=o.index(a),l=n.index(a);if(o.depth>a){i.push(x(o.nodeAfter,t));for(let d=o.depth;d>a;d--)if(o.node(d).type.isInGroup("childContainer")){let c=o.index(d)+1,u=o.node(d).childCount;for(let p=c;p<u;p++)i.push(r(p,d))}}else i.push(r(s,a));for(let d=s+1;d<=l;d++)i.push(r(d,a));if(i.length===0)throw Error(`Error getting selection - selection doesn't span any blocks (${e.selection})`);return{blocks:i}}function ld(e,t,o){let n=typeof t=="string"?t:t.id,r=typeof o=="string"?o:o.id,i=Ee(T(e));if(n===r)throw Error(`Attempting to set selection with the same anchor and head blocks (id ${n})`);let a=N(n,e.doc);if(!a)throw Error(`Block with ID ${n} not found`);let s=N(r,e.doc);if(!s)throw Error(`Block with ID ${r} not found`);let l=W(a),d=W(s),c=i.blockSchema[l.blockNoteType],u=i.blockSchema[d.blockNoteType];if(!l.isBlockContainer||c.content==="none")throw Error(`Attempting to set selection anchor in block without content (id ${n})`);if(!d.isBlockContainer||u.content==="none")throw Error(`Attempting to set selection anchor in block without content (id ${r})`);let p,f;if(c.content==="table"){let m=De.get(l.blockContent.node);p=l.blockContent.beforePos+m.positionAt(0,0,l.blockContent.node)+1+2}else p=l.blockContent.beforePos+1;if(u.content==="table"){let m=De.get(d.blockContent.node),h=d.blockContent.beforePos+m.positionAt(m.height-1,m.width-1,d.blockContent.node)+1;f=h+e.doc.resolve(h).nodeAfter.nodeSize-2}else f=d.blockContent.afterPos-1;e.setSelection(L.create(e.doc,p,f))}function dd(e,t=!1){let o=T(e),n=t?ad(e.doc,e.selection):e.selection,r=n.$from,i=n.$to;for(;i.parentOffset>=i.parent.nodeSize-2&&i.depth>0;)i=e.doc.resolve(i.pos+1);for(;i.parentOffset===0&&i.depth>0;)i=e.doc.resolve(i.pos-1);for(;r.parentOffset===0&&r.depth>0;)r=e.doc.resolve(r.pos-1);for(;r.parentOffset>=r.parent.nodeSize-2&&r.depth>0;)r=e.doc.resolve(r.pos+1);let a=Qr(e.doc.slice(r.pos,i.pos,!0),o);return{_meta:{startPos:r.pos,endPos:i.pos},...a}}function cd(e){let{bnBlock:t}=Se(e),o=T(e.doc),n=e.doc.resolve(t.beforePos),r=n.nodeBefore,i=e.doc.resolve(t.afterPos).nodeAfter,a;return n.depth>1&&(a=n.node(),a.type.isInGroup("bnBlock")||(a=n.node(n.depth-1))),{block:x(t.node,o),prevBlock:r===null?void 0:x(r,o),nextBlock:i===null?void 0:x(i,o),parentBlock:a===void 0?void 0:x(a,o)}}function En(e,t,o="start"){let n=typeof t=="string"?t:t.id,r=Ee(T(e.doc)),i=N(n,e.doc);if(!i)throw Error(`Block with ID ${n} not found`);let a=W(i),s=r.blockSchema[a.blockNoteType].content;if(a.isBlockContainer){let l=a.blockContent;if(s==="none"){e.setSelection(ue.create(e.doc,l.beforePos));return}if(s==="inline")o==="start"?e.setSelection(L.create(e.doc,l.beforePos+1)):e.setSelection(L.create(e.doc,l.afterPos-1));else if(s==="table")o==="start"?e.setSelection(L.create(e.doc,l.beforePos+4)):e.setSelection(L.create(e.doc,l.afterPos-4));else throw new j(s)}else En(e,(o==="start"?a.childContainer.node.firstChild:a.childContainer.node.lastChild).attrs.id,o)}var ud=class{constructor(e){this.editor=e}getSelection(){return this.editor.transact(e=>sd(e))}getSelectionCutBlocks(e=!1){return this.editor.transact(t=>dd(t,e))}setSelection(e,t){return this.editor.transact(o=>ld(o,e,t))}getTextCursorPosition(){return this.editor.transact(e=>cd(e))}setTextCursorPosition(e,t="start"){return this.editor.transact(o=>En(o,e,t))}getSelectionBoundingBox(){if(!this.editor.prosemirrorView)return;let{selection:e}=this.editor.prosemirrorState,{ranges:t}=e,o=Math.min(...t.map(r=>r.$from.pos)),n=Math.max(...t.map(r=>r.$to.pos));if(Er(e)){let r=this.editor.prosemirrorView.nodeDOM(o);if(r)return r.getBoundingClientRect()}return Eo(this.editor.prosemirrorView,o,n).toJSON()}},pd=class{constructor(e){this.editor=e}activeTransaction=null;can(e){try{return this.isInCan=!0,e()}finally{this.isInCan=!1}}isInCan=!1;exec(e){if(this.activeTransaction)throw Error("`exec` should not be called within a `transact` call, move the `exec` call outside of the `transact` call");if(this.isInCan)return this.canExec(e);let t=this.prosemirrorState,o=this.prosemirrorView;return e(t,n=>this.prosemirrorView.dispatch(n),o)}canExec(e){if(this.activeTransaction)throw Error("`canExec` should not be called within a `transact` call, move the `canExec` call outside of the `transact` call");let t=this.prosemirrorState,o=this.prosemirrorView;return e(t,void 0,o)}transact(e){if(this.activeTransaction)return e(this.activeTransaction);try{this.activeTransaction=this.editor._tiptapEditor.state.tr;let t=e(this.activeTransaction),o=this.activeTransaction;return this.activeTransaction=null,o&&(o.docChanged||o.selectionSet||o.scrolledIntoView||o.storedMarksSet||!o.isGeneric)&&this.prosemirrorView.dispatch(o),t}finally{this.activeTransaction=null}}get prosemirrorState(){if(this.activeTransaction)throw Error("`prosemirrorState` should not be called within a `transact` call, move the `prosemirrorState` call outside of the `transact` call or use `editor.transact` to read the current editor state");return this.editor._tiptapEditor.state}get prosemirrorView(){return this.editor._tiptapEditor.view}isFocused(){return this.prosemirrorView?.hasFocus()||!1}focus(){this.prosemirrorView?.focus()}get isEditable(){if(!this.editor._tiptapEditor){if(!this.editor.headless)throw Error("no editor, but also not headless?");return!1}return this.editor._tiptapEditor.isEditable===void 0?!0:this.editor._tiptapEditor.isEditable}set isEditable(e){if(!this.editor._tiptapEditor){if(!this.editor.headless)throw Error("no editor, but also not headless?");return}this.editor._tiptapEditor.options.editable!==e&&this.editor._tiptapEditor.setEditable(e)}undo(){let e=this.editor.getExtension("yUndo");if(e)return this.exec(e.undoCommand);let t=this.editor.getExtension("history");if(t)return this.exec(t.undoCommand);throw Error("No undo plugin found")}redo(){let e=this.editor.getExtension("yUndo");if(e)return this.exec(e.redoCommand);let t=this.editor.getExtension("history");if(t)return this.exec(t.redoCommand);throw Error("No redo plugin found")}};function hd(e,t,o,n={updateSelection:!0}){let{from:r,to:i}=typeof t=="number"?{from:t,to:t}:{from:t.from,to:t.to},a=!0,s=!0,l="";if(o.forEach(d=>{d.check(),a&&d.isText&&d.marks.length===0?l+=d.text:a=!1,s=s?d.isBlock:!1}),r===i&&s){let{parent:d}=e.doc.resolve(r);d.isTextblock&&!d.type.spec.code&&!d.childCount&&(--r,i+=1)}return a?e.insertText(l,r,i):e.replaceWith(r,i,o),n.updateSelection&&Ir(e,e.steps.length-1,-1),!0}var fd=class{constructor(e){this.editor=e}insertInlineContent(e,{updateSelection:t=!1}={}){let o=z(e,this.editor.pmSchema);this.editor.transact(n=>{hd(n,{from:n.selection.from,to:n.selection.to},o,{updateSelection:t})})}getActiveStyles(){return this.editor.transact(e=>{let t={},o=e.selection.$to.marks();for(let n of o){let r=this.editor.schema.styleSchema[n.type.name];if(!r){n.type.name!=="link"&&!n.type.spec.blocknoteIgnore&&console.warn("mark not found in styleschema",n.type.name);continue}r.propSchema==="boolean"?t[r.type]=!0:t[r.type]=n.attrs.stringValue}return t})}addStyles(e){for(let[t,o]of Object.entries(e)){let n=this.editor.schema.styleSchema[t];if(!n)throw Error(`style ${t} not found in styleSchema`);if(n.propSchema==="boolean")this.editor._tiptapEditor.commands.setMark(t);else if(n.propSchema==="string")this.editor._tiptapEditor.commands.setMark(t,{stringValue:o});else throw new j(n.propSchema)}}removeStyles(e){for(let t of Object.keys(e))this.editor._tiptapEditor.commands.unsetMark(t)}toggleStyles(e){for(let[t,o]of Object.entries(e)){let n=this.editor.schema.styleSchema[t];if(!n)throw Error(`style ${t} not found in styleSchema`);if(n.propSchema==="boolean")this.editor._tiptapEditor.commands.toggleMark(t);else if(n.propSchema==="string")this.editor._tiptapEditor.commands.toggleMark(t,{stringValue:o});else throw new j(n.propSchema)}}getSelectedText(){return this.editor.transact(e=>e.doc.textBetween(e.selection.from,e.selection.to))}getLinkMarkAtPos(e){return this.editor.transact(t=>{let o=t.doc.resolve(e),n=o.marks().find(i=>i.type.name==="link");if(!n)return;let r=Mr(o,n.type);if(r)return{href:n.attrs.href,from:r.from,to:r.to,text:t.doc.textBetween(r.from,r.to)}})}getSelectedLinkUrl(){return this.editor.transact(e=>this.getLinkMarkAtPos(e.selection.from)?.href)}createLink(e,t){e!==""&&this.editor.transact(o=>{let{from:n,to:r}=o.selection,i=this.editor.pmSchema.mark("link",{href:e});t?o.insertText(t,n,r).addMark(n,n+t.length,i):o.addMark(n,r,i)})}editLink(e,t,o=this.editor.transact(n=>n.selection.anchor)){this.editor.transact(n=>{let{from:r,to:i}=this.getLinkMarkAtPos(o+1)||{from:n.selection.from,to:n.selection.to},a=this.editor.pmSchema.mark("link",{href:e});t!==n.doc.textBetween(r,i)&&n.insertText(t,r,i),n.addMark(r,r+t.length,a)}),this.editor.prosemirrorView.focus()}deleteLink(e=this.editor.transact(t=>t.selection.anchor)){this.editor.transact(t=>{let{from:o,to:n}=this.getLinkMarkAtPos(e+1)||{from:t.selection.from,to:t.selection.to};t.removeMark(o,n,this.editor.pmSchema.marks.link).setMeta("preventAutolink",!0)}),this.editor.prosemirrorView.focus()}};function md(e){return Ar(e.state.selection.$from,t=>t.type.name==="tableCell"||t.type.name==="tableHeader")!==void 0}function Mn(e,t){let o=t.nodes.hardBreak,n=M.empty;return e.forEach(r=>{r.isTextblock&&r.childCount>0?(n=n.append(r.content),n=n.addToEnd(o.create())):r.isText?n=n.addToEnd(r):r.isBlock&&r.childCount>0&&(n=n.append(Mn(r.content,t)),n=n.addToEnd(o.create()))}),n.lastChild?.type===o&&(n=n.cut(0,n.size-1)),n}function gd(e,t){let o=[];return e.forEach((n,r,i)=>{i!==t&&o.push(n)}),M.from(o)}function bd(e,t){let o=[];for(let n=0;n<e.childCount;n++)if(e.child(n).type.name==="tableRow")if(o.length>0&&o[o.length-1].type.name==="table"){let r=o[o.length-1],i=r.copy(r.content.addToEnd(e.child(n)));o[o.length-1]=i}else{let r=t.nodes.table.createChecked(void 0,e.child(n));o.push(r)}else o.push(e.child(n));return e=M.from(o),e}function kd(e,t){let o=M.from(e.content);if(o=bd(o,t.state.schema),md(t)){let n=!1;if(o.descendants(r=>{r.type.isInGroup("tableContent")&&(n=!0)}),!n&&!t.state.schema.nodes.tableParagraph.validContent(o))return new H(Mn(o,t.state.schema),0,0)}if(!yd(o,t))return new H(o,e.openStart,e.openEnd);for(let n=0;n<o.childCount;n++)if(o.child(n).type.spec.group==="blockContent"){let r=[o.child(n)];if(n+1<o.childCount&&o.child(n+1).type.name==="blockGroup"){let a=o.child(n+1).child(0).child(0);(a.type.name==="bulletListItem"||a.type.name==="numberedListItem"||a.type.name==="checkListItem")&&(r.push(o.child(n+1)),o=gd(o,n+1))}let i=t.state.schema.nodes.blockContainer.createChecked(void 0,r);o=o.replaceChild(n,i)}return new H(o,e.openStart,e.openEnd)}function yd(e,t){let o=e.childCount===1,n=e.firstChild?.type.spec.content==="inline*",r=e.firstChild?.type.spec.content==="tableRow+";if(o){if(n)return!1;if(r){let i=E(t.state);if(i.isBlockContainer)return i.blockContent.node.type.spec.content!=="tableRow+"}}return!0}var vd={enableInputRules:!0,enablePasteRules:!0,enableCoreExtensions:!1},Fd=class Bn extends $t{pmSchema;_tiptapEditor;elementRenderer=null;blockCache=new WeakMap;dictionary;schema;blockImplementations;inlineContentImplementations;styleImplementations;uploadFile;onUploadStartCallbacks=[];onUploadEndCallbacks=[];resolveFileUrl;settings;static create(t){return new Bn(t??{})}constructor(t){super(),this.options=t,this.dictionary=t.dictionary||hs,this.settings={tables:{splitCells:t?.tables?.splitCells??!1,cellBackgroundColor:t?.tables?.cellBackgroundColor??!1,cellTextColor:t?.tables?.cellTextColor??!1,headers:t?.tables?.headers??!1}};let o={defaultStyles:!0,schema:t.schema||Ma.create(),...t,placeholders:{...this.dictionary.placeholders,...t.placeholders}};if(this.schema=o.schema,this.blockImplementations=o.schema.blockSpecs,this.inlineContentImplementations=o.schema.inlineContentSpecs,this.styleImplementations=o.schema.styleSpecs,o.uploadFile){let l=o.uploadFile;this.uploadFile=async(d,c)=>{this.onUploadStartCallbacks.forEach(u=>u.apply(this,[c]));try{return await l(d,c)}finally{this.onUploadEndCallbacks.forEach(u=>u.apply(this,[c]))}}}this.resolveFileUrl=o.resolveFileUrl,this._eventManager=new Hs(this),this._extensionManager=new id(this,o);let n=this._extensionManager.getTiptapExtensions(),r=this._extensionManager.hasExtension("ySync")||this._extensionManager.hasExtension("liveblocksExtension");r&&o.initialContent&&console.warn("When using Collaboration, initialContent might cause conflicts, because changes should come from the collaboration provider");let i={...vd,...o._tiptapOptions,element:null,autofocus:o.autofocus??!1,extensions:n,editorProps:{...o._tiptapOptions?.editorProps,attributes:{tabIndex:"0",...o._tiptapOptions?.editorProps?.attributes,...o.domAttributes?.editor,class:X("bn-editor",o.defaultStyles?"bn-default-styles":"",o.domAttributes?.editor?.class||"")},transformPasted:kd}};try{let l=o.initialContent||(r?[{type:"paragraph",id:"initialBlockId"}]:[{type:"paragraph",id:Ve.options.generateID()}]);if(!Array.isArray(l)||l.length===0)throw Error("initialContent must be a non-empty array of blocks, received: "+l);let d=kr(i.extensions),c=yr({type:"doc",content:[{type:"blockGroup",content:l.map(u=>ae(u,d,this.schema.styleSchema).toJSON())}]},d,i.parseOptions);this._tiptapEditor=new vr({...i,content:c.toJSON()}),this.pmSchema=this._tiptapEditor.schema}catch(l){throw Error("Error creating document from blocks passed as `initialContent`",{cause:l})}let a,s=this.pmSchema.nodes.doc.createAndFill;this.pmSchema.nodes.doc.createAndFill=(...l)=>{if(a)return a;let d=s.apply(this.pmSchema.nodes.doc,l),c=JSON.parse(JSON.stringify(d.toJSON()));return c.content[0].content[0].attrs.id="initialBlockId",a=Cr.fromJSON(this.pmSchema,c),a},this.pmSchema.cached.blockNoteEditor=this,this._tiptapEditor.on("mount",()=>{this.headless=!1}),this._tiptapEditor.on("unmount",()=>{this.headless=!0}),this._blockManager=new Ds(this),this._exportManager=new Ys(this),this._selectionManager=new ud(this),this._stateManager=new pd(this),this._styleManager=new fd(this),this.emit("create")}_blockManager;_eventManager;_exportManager;_extensionManager;_selectionManager;_stateManager;_styleManager;get extensions(){return this._extensionManager.getExtensions()}exec(t){return this._stateManager.exec(t)}canExec(t){return this._stateManager.canExec(t)}transact(t){return this._stateManager.transact(t)}unregisterExtension=(...t)=>this._extensionManager.unregisterExtension(...t);registerExtension=(...t)=>this._extensionManager.registerExtension(...t);getExtension=((...t)=>this._extensionManager.getExtension(...t));mount=t=>{let o=t.getRootNode();typeof ShadowRoot<"u"&&o instanceof ShadowRoot?o.appendChild(this.portalElement):document.body.appendChild(this.portalElement),this._tiptapEditor.mount({mount:t})};unmount=()=>{this.portalElement?.remove(),this._tiptapEditor.unmount()};get prosemirrorState(){return this._stateManager.prosemirrorState}get prosemirrorView(){return this._stateManager.prosemirrorView}get domElement(){if(!this.headless)return this.prosemirrorView?.dom}_portalElement;get portalElement(){if(typeof document>"u")throw Error("Portal element accessed, but not available in headless mode");return this._portalElement||=document.createElement("div"),this._portalElement}isWithinEditor=t=>!!(this.domElement?.parentElement?.contains(t)||this.portalElement?.contains(t));isFocused(){return this.headless?!1:this.prosemirrorView?.hasFocus()||!1}headless=!0;focus(){this.headless||this.prosemirrorView.focus()}blur(){this.headless||this.domElement?.blur()}onUploadStart(t){return this.onUploadStartCallbacks.push(t),()=>{let o=this.onUploadStartCallbacks.indexOf(t);o>-1&&this.onUploadStartCallbacks.splice(o,1)}}onUploadEnd(t){return this.onUploadEndCallbacks.push(t),()=>{let o=this.onUploadEndCallbacks.indexOf(t);o>-1&&this.onUploadEndCallbacks.splice(o,1)}}get topLevelBlocks(){return this.document}get document(){return this._blockManager.document}getBlock(t){return this._blockManager.getBlock(t)}getPrevBlock(t){return this._blockManager.getPrevBlock(t)}getNextBlock(t){return this._blockManager.getNextBlock(t)}getParentBlock(t){return this._blockManager.getParentBlock(t)}forEachBlock(t,o=!1){this._blockManager.forEachBlock(t,o)}onEditorContentChange(t){this._tiptapEditor.on("update",t)}onEditorSelectionChange(t){this._tiptapEditor.on("selectionUpdate",t)}onBeforeChange(t){return this._extensionManager.getExtension(nn).subscribe(t)}getTextCursorPosition(){return this._selectionManager.getTextCursorPosition()}setTextCursorPosition(t,o="start"){return this._selectionManager.setTextCursorPosition(t,o)}getSelection(){return this._selectionManager.getSelection()}getSelectionCutBlocks(t=!1){return this._selectionManager.getSelectionCutBlocks(t)}setSelection(t,o){return this._selectionManager.setSelection(t,o)}get isEditable(){return this._stateManager.isEditable}set isEditable(t){this._stateManager.isEditable=t}insertBlocks(t,o,n="before"){return this._blockManager.insertBlocks(t,o,n)}updateBlock(t,o){return this._blockManager.updateBlock(t,o)}removeBlocks(t){return this._blockManager.removeBlocks(t)}replaceBlocks(t,o){return this._blockManager.replaceBlocks(t,o)}undo(){return this._stateManager.undo()}redo(){return this._stateManager.redo()}insertInlineContent(t,{updateSelection:o=!1}={}){this._styleManager.insertInlineContent(t,{updateSelection:o})}getActiveStyles(){return this._styleManager.getActiveStyles()}addStyles(t){this._styleManager.addStyles(t)}removeStyles(t){this._styleManager.removeStyles(t)}toggleStyles(t){this._styleManager.toggleStyles(t)}getSelectedText(){return this._styleManager.getSelectedText()}getSelectedLinkUrl(){return this._styleManager.getSelectedLinkUrl()}createLink(t,o){this._styleManager.createLink(t,o)}getLinkMarkAtPos(t){return this._styleManager.getLinkMarkAtPos(t)}editLink(t,o,n){this._styleManager.editLink(t,o,n)}deleteLink(t){this._styleManager.deleteLink(t)}canNestBlock(){return this._blockManager.canNestBlock()}nestBlock(){this._blockManager.nestBlock()}canUnnestBlock(){return this._blockManager.canUnnestBlock()}unnestBlock(){this._blockManager.unnestBlock()}moveBlocksUp(){return this._blockManager.moveBlocksUp()}moveBlocksDown(){return this._blockManager.moveBlocksDown()}blocksToHTMLLossy(t=this.document){return this._exportManager.blocksToHTMLLossy(t)}blocksToFullHTML(t=this.document){return this._exportManager.blocksToFullHTML(t)}tryParseHTMLToBlocks(t){return this._exportManager.tryParseHTMLToBlocks(t)}blocksToMarkdownLossy(t=this.document){return this._exportManager.blocksToMarkdownLossy(t)}tryParseMarkdownToBlocks(t){return this._exportManager.tryParseMarkdownToBlocks(t)}onChange(t,o){return this._eventManager.onChange(t,o)}onSelectionChange(t,o){return this._eventManager.onSelectionChange(t,o)}onMount(t){return this._eventManager.onMount(t)}onUnmount(t){return this._eventManager.onUnmount(t)}getSelectionBoundingBox(){return this._selectionManager.getSelectionBoundingBox()}get isEmpty(){let t=this.document;return t.length===0||t.length===1&&t[0].type==="paragraph"&&t[0].content.length===0}pasteHTML(t,o=!1){this._exportManager.pasteHTML(t,o)}pasteText(t){return this._exportManager.pasteText(t)}pasteMarkdown(t){return this._exportManager.pasteMarkdown(t)}},Co=ce.create({name:"comment",excludes:"",inclusive:!1,keepOnSplit:!0,addAttributes(){return{orphan:{parseHTML:e=>!!e.getAttribute("data-orphan"),renderHTML:e=>e.orphan?{"data-orphan":"true"}:{},default:!1},threadId:{parseHTML:e=>e.getAttribute("data-bn-thread-id"),renderHTML:e=>({"data-bn-thread-id":e.threadId}),default:""}}},renderHTML({HTMLAttributes:e}){return["span",oe(e,{class:"bn-thread-mark"})]},parseHTML(){return[{tag:"span.bn-thread-mark"}]},extendMarkSchema(e){return e.name==="comment"?{blocknoteIgnore:!0}:{}}}),Cd=class extends $t{userCache=new Map;loadingUsers=new Set;constructor(e){super(),this.resolveUsers=e}async loadUsers(e){let t=e.filter(o=>!this.userCache.has(o)&&!this.loadingUsers.has(o));if(t.length!==0){for(let o of t)this.loadingUsers.add(o);try{let o=await this.resolveUsers(t);for(let n of o)this.userCache.set(n.id,n);this.emit("update",this.userCache)}finally{for(let o of t)this.loadingUsers.delete(o)}}}getUser(e){return this.userCache.get(e)}subscribe(e){return this.on("update",e)}},Le=new I("blocknote-comments");function wd(e,t){let o=new Map;return e.descendants((n,r)=>{n.marks.forEach(i=>{if(i.type.name===t){let a=i.attrs.threadId;if(!a)return;let s=r,l=s+n.nodeSize,d=o.get(a)??{from:1/0,to:0};o.set(a,{from:Math.min(s,d.from),to:Math.max(l,d.to)})}})}),o}var qd=v(({editor:e,options:{schema:t,threadStore:o,resolveUsers:n}})=>{if(!n)throw Error("resolveUsers is required to be defined when using comments");if(!o)throw Error("threadStore is required to be defined when using comments");let r=Co.name,i=new Cd(n),a=Q({pendingComment:!1,selectedThreadId:void 0,threadPositions:new Map},{onUpdate(){a.state.selectedThreadId!==a.prevState.selectedThreadId&&e.transact(l=>l.setMeta(Le,!0))}}),s=l=>{e.transact(d=>{d.doc.descendants((c,u)=>{c.marks.forEach(p=>{if(p.type.name===r){let f=p.type,m=p.attrs.threadId,h=l.get(m),b=!!(!h||h.resolved||h.deletedAt);if(b!==p.attrs.orphan){let g=Math.max(u,0),k=Math.min(u+c.nodeSize,d.doc.content.size-1,d.doc.content.size-1);d.removeMark(g,k,p),d.addMark(g,k,f.create({...p.attrs,orphan:b})),b&&a.state.selectedThreadId===m&&a.setState(y=>({...y,selectedThreadId:void 0}))}}})})})};return{key:"comments",store:a,prosemirrorPlugins:[new B({key:Le,state:{init(){return{decorations:_.empty}},apply(l,d){let c=l.getMeta(Le);if(!l.docChanged&&!c)return d;let u=l.docChanged?wd(l.doc,r):a.state.threadPositions;(u.size>0||a.state.threadPositions.size>0)&&a.setState(f=>({...f,threadPositions:u}));let p=[];if(a.state.selectedThreadId){let f=u.get(a.state.selectedThreadId);f&&p.push(U.inline(f.from,f.to,{class:"bn-thread-mark-selected"}))}return{decorations:_.create(l.doc,p)}}},props:{decorations(l){return Le.getState(l)?.decorations??_.empty},handleClick:(l,d,c)=>{if(c.button!==0)return;let u=l.state.doc.nodeAt(d);if(!u){a.setState(f=>({...f,selectedThreadId:void 0}));return}let p=u.marks.find(f=>f.type.name===r&&f.attrs.orphan!==!0)?.attrs.threadId;p!==a.state.selectedThreadId&&a.setState(f=>({...f,selectedThreadId:p}))}}})],threadStore:o,mount(){let l=o.subscribe(s);s(o.getThreads());let d=e.onSelectionChange(()=>{a.state.pendingComment&&a.setState(c=>({...c,pendingComment:!1}))});return()=>{l(),d()}},selectThread(l,d=!0){if(a.state.selectedThreadId!==l&&(a.setState(c=>({...c,pendingComment:!1,selectedThreadId:l})),l&&d)){let c=a.state.threadPositions.get(l);if(!c)return;e.prosemirrorView?.domAtPos(c.from).node?.scrollIntoView({behavior:"smooth",block:"center"})}},startPendingComment(){a.setState(l=>({...l,selectedThreadId:void 0,pendingComment:!0})),e.domElement?.focus(),e.getExtension(ht)?.showSelection(!0,"comments")},stopPendingComment(){a.setState(l=>({...l,selectedThreadId:void 0,pendingComment:!1})),e.getExtension(ht)?.showSelection(!1,"comments")},async createThread(l){let d=await o.createThread(l);if(o.addThreadToDocument){let c=e.prosemirrorView,u=c.state.selection,p=et.getState(c.state),f={prosemirror:{head:u.head,anchor:u.anchor},yjs:p?Rr(p.binding,c.state):void 0};await o.addThreadToDocument({threadId:d.id,selection:f})}else e._tiptapEditor.commands.setMark(r,{orphan:!1,threadId:d.id})},userStore:i,commentEditorSchema:t,tiptapExtensions:[Co]}});export{Fd as $,zd as A,wa as B,G as C,Od as D,Ed as F,Ko as G,z as H,Nd as I,C as K,Dd as L,ot as M,yt as N,oo as O,Lt as P,we as T,Xo as U,Bd as V,Gr as W,J as Y,A as Z,us as a,ht as b,is as c,Hd as d,N as e,nt as f,Id as g,Td as h,ja as i,jd as j,Ad as k,Wr as l,Ld as m,ct as n,Vd as o,Md as p,Ma as q,St as r,ra as s,kn as t,$d as u,qd as v,X as w,Ce as x};
|