@blocknote/core 0.15.3 → 0.15.5

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/dist/blocknote.js CHANGED
@@ -1,14 +1,14 @@
1
1
  var Bt = Object.defineProperty;
2
2
  var Lt = (e, t, o) => t in e ? Bt(e, t, { enumerable: !0, configurable: !0, writable: !0, value: o }) : e[t] = o;
3
3
  var c = (e, t, o) => Lt(e, typeof t != "symbol" ? t + "" : t, o);
4
- import { Slice as j, Fragment as L, DOMSerializer as xe, DOMParser as It, Node as At } from "prosemirror-model";
4
+ import { Slice as D, Fragment as L, DOMSerializer as xe, DOMParser as It, Node as At } from "prosemirror-model";
5
5
  import Je from "rehype-parse";
6
6
  import Ye from "rehype-stringify";
7
7
  import { unified as Ee } from "unified";
8
- import { Extension as M, combineTransactionSteps as Nt, getChangedRanges as Pt, findChildrenInRange as Ht, Node as $, Mark as Ce, InputRule as ee, callOrReturn as Ut, getExtensionField as jt, mergeAttributes as Dt, selectionToInsertionEnd as Vt, isTextSelection as Rt, isNodeSelection as Ot, posToDOMRect as ye, getMarkRange as je, findParentNode as zt, findChildren as De, extensions as J, Editor as Ft, createDocument as Gt, getSchema as Kt } from "@tiptap/core";
8
+ import { Extension as M, combineTransactionSteps as Nt, getChangedRanges as Pt, findChildrenInRange as Ht, Node as $, Mark as Ce, InputRule as ee, callOrReturn as Ut, getExtensionField as Dt, mergeAttributes as jt, selectionToInsertionEnd as zt, isTextSelection as Rt, isNodeSelection as Vt, posToDOMRect as ye, getMarkRange as De, findParentNode as Ot, findChildren as je, extensions as J, Editor as Ft, createDocument as Gt, getSchema as Kt } from "@tiptap/core";
9
9
  import { Plugin as y, PluginKey as S, Selection as me, NodeSelection as re, TextSelection as Y, EditorState as Wt } from "prosemirror-state";
10
10
  import { v4 as $t } from "uuid";
11
- import { fromDom as we } from "hast-util-from-dom";
11
+ import { fromDom as ve } from "hast-util-from-dom";
12
12
  import qt from "@tiptap/extension-bold";
13
13
  import Xt from "@tiptap/extension-code";
14
14
  import Zt from "@tiptap/extension-italic";
@@ -31,8 +31,8 @@ import { Gapcursor as mo } from "@tiptap/extension-gapcursor";
31
31
  import { HardBreak as fo } from "@tiptap/extension-hard-break";
32
32
  import { History as go } from "@tiptap/extension-history";
33
33
  import { Link as bo } from "@tiptap/extension-link";
34
- import { Text as ko } from "@tiptap/extension-text";
35
- const _o = {
34
+ import { Text as _o } from "@tiptap/extension-text";
35
+ const ko = {
36
36
  slash_menu: {
37
37
  heading: {
38
38
  title: "عنوان 1",
@@ -322,6 +322,311 @@ const _o = {
322
322
  generic: {
323
323
  ctrl_shortcut: "Ctrl"
324
324
  }
325
+ }, yo = {
326
+ slash_menu: {
327
+ heading: {
328
+ title: "Überschrift 1",
329
+ subtext: "Hauptebene Überschrift",
330
+ aliases: ["h", "überschrift1", "h1"],
331
+ group: "Überschriften"
332
+ },
333
+ heading_2: {
334
+ title: "Überschrift 2",
335
+ subtext: "Wichtige Abschnittsüberschrift",
336
+ aliases: ["h2", "überschrift2", "unterüberschrift"],
337
+ group: "Überschriften"
338
+ },
339
+ heading_3: {
340
+ title: "Überschrift 3",
341
+ subtext: "Unterabschnitts- und Gruppenüberschrift",
342
+ aliases: ["h3", "überschrift3", "unterüberschrift"],
343
+ group: "Überschriften"
344
+ },
345
+ numbered_list: {
346
+ title: "Nummerierte Liste",
347
+ subtext: "Liste mit nummerierten Elementen",
348
+ aliases: ["ol", "li", "liste", "nummerierteliste", "nummerierte liste"],
349
+ group: "Grundlegende Blöcke"
350
+ },
351
+ bullet_list: {
352
+ title: "Aufzählungsliste",
353
+ subtext: "Liste mit unnummerierten Elementen",
354
+ aliases: ["ul", "li", "liste", "aufzählungsliste", "aufzählung liste"],
355
+ group: "Grundlegende Blöcke"
356
+ },
357
+ check_list: {
358
+ title: "Checkliste",
359
+ subtext: "Liste mit Kontrollkästchen",
360
+ aliases: [
361
+ "ul",
362
+ "li",
363
+ "liste",
364
+ "checkliste",
365
+ "check liste",
366
+ "geprüfte liste",
367
+ "kontrollkästchen"
368
+ ],
369
+ group: "Grundlegende Blöcke"
370
+ },
371
+ paragraph: {
372
+ title: "Absatz",
373
+ subtext: "Der Hauptteil Ihres Dokuments",
374
+ aliases: ["p", "absatz"],
375
+ group: "Grundlegende Blöcke"
376
+ },
377
+ table: {
378
+ title: "Tabelle",
379
+ subtext: "Tabelle mit editierbaren Zellen",
380
+ aliases: ["tabelle"],
381
+ group: "Erweitert"
382
+ },
383
+ image: {
384
+ title: "Bild",
385
+ subtext: "Größenveränderbares Bild mit Beschriftung",
386
+ aliases: [
387
+ "bild",
388
+ "bildhochladen",
389
+ "hochladen",
390
+ "img",
391
+ "bild",
392
+ "medien",
393
+ "url"
394
+ ],
395
+ group: "Medien"
396
+ },
397
+ video: {
398
+ title: "Video",
399
+ subtext: "Größenveränderbares Video mit Beschriftung",
400
+ aliases: [
401
+ "video",
402
+ "videoupload",
403
+ "hochladen",
404
+ "mp4",
405
+ "film",
406
+ "medien",
407
+ "url"
408
+ ],
409
+ group: "Medien"
410
+ },
411
+ audio: {
412
+ title: "Audio",
413
+ subtext: "Eingebettetes Audio mit Beschriftung",
414
+ aliases: [
415
+ "audio",
416
+ "audioupload",
417
+ "hochladen",
418
+ "mp3",
419
+ "ton",
420
+ "medien",
421
+ "url"
422
+ ],
423
+ group: "Medien"
424
+ },
425
+ file: {
426
+ title: "Datei",
427
+ subtext: "Eingebettete Datei",
428
+ aliases: ["datei", "hochladen", "einbetten", "medien", "url"],
429
+ group: "Medien"
430
+ },
431
+ emoji: {
432
+ title: "Emoji",
433
+ subtext: "Nach Emoji suchen und einfügen",
434
+ aliases: ["emoji", "emote", "emotion", "gesicht"],
435
+ group: "Andere"
436
+ }
437
+ },
438
+ placeholders: {
439
+ default: "Text eingeben oder '/' für Befehle tippen",
440
+ heading: "Überschrift",
441
+ bulletListItem: "Liste",
442
+ numberedListItem: "Liste",
443
+ checkListItem: "Liste"
444
+ },
445
+ file_blocks: {
446
+ image: {
447
+ add_button_text: "Bild hinzufügen"
448
+ },
449
+ video: {
450
+ add_button_text: "Video hinzufügen"
451
+ },
452
+ audio: {
453
+ add_button_text: "Audio hinzufügen"
454
+ },
455
+ file: {
456
+ add_button_text: "Datei hinzufügen"
457
+ }
458
+ },
459
+ side_menu: {
460
+ add_block_label: "Block hinzufügen",
461
+ drag_handle_label: "Blockmenü öffnen"
462
+ },
463
+ drag_handle: {
464
+ delete_menuitem: "Löschen",
465
+ colors_menuitem: "Farben"
466
+ },
467
+ table_handle: {
468
+ delete_column_menuitem: "Spalte löschen",
469
+ delete_row_menuitem: "Zeile löschen",
470
+ add_left_menuitem: "Spalte links hinzufügen",
471
+ add_right_menuitem: "Spalte rechts hinzufügen",
472
+ add_above_menuitem: "Zeile oberhalb hinzufügen",
473
+ add_below_menuitem: "Zeile unterhalb hinzufügen"
474
+ },
475
+ suggestion_menu: {
476
+ no_items_title: "Keine Elemente gefunden",
477
+ loading: "Laden…"
478
+ },
479
+ color_picker: {
480
+ text_title: "Text",
481
+ background_title: "Hintergrund",
482
+ colors: {
483
+ default: "Standard",
484
+ gray: "Grau",
485
+ brown: "Braun",
486
+ red: "Rot",
487
+ orange: "Orange",
488
+ yellow: "Gelb",
489
+ green: "Grün",
490
+ blue: "Blau",
491
+ purple: "Lila",
492
+ pink: "Rosa"
493
+ }
494
+ },
495
+ formatting_toolbar: {
496
+ bold: {
497
+ tooltip: "Fett",
498
+ secondary_tooltip: "Mod+B"
499
+ },
500
+ italic: {
501
+ tooltip: "Kursiv",
502
+ secondary_tooltip: "Mod+I"
503
+ },
504
+ underline: {
505
+ tooltip: "Unterstrichen",
506
+ secondary_tooltip: "Mod+U"
507
+ },
508
+ strike: {
509
+ tooltip: "Durchgestrichen",
510
+ secondary_tooltip: "Mod+Shift+S"
511
+ },
512
+ code: {
513
+ tooltip: "Code",
514
+ secondary_tooltip: ""
515
+ },
516
+ colors: {
517
+ tooltip: "Farben"
518
+ },
519
+ link: {
520
+ tooltip: "Link erstellen",
521
+ secondary_tooltip: "Mod+K"
522
+ },
523
+ file_caption: {
524
+ tooltip: "Beschriftung bearbeiten",
525
+ input_placeholder: "Beschriftung bearbeiten"
526
+ },
527
+ file_replace: {
528
+ tooltip: {
529
+ image: "Bild ersetzen",
530
+ video: "Video ersetzen",
531
+ audio: "Audio ersetzen",
532
+ file: "Datei ersetzen"
533
+ }
534
+ },
535
+ file_rename: {
536
+ tooltip: {
537
+ image: "Bild umbenennen",
538
+ video: "Video umbenennen",
539
+ audio: "Audio umbenennen",
540
+ file: "Datei umbenennen"
541
+ },
542
+ input_placeholder: {
543
+ image: "Bild umbenennen",
544
+ video: "Video umbenennen",
545
+ audio: "Audio umbenennen",
546
+ file: "Datei umbenennen"
547
+ }
548
+ },
549
+ file_download: {
550
+ tooltip: {
551
+ image: "Bild herunterladen",
552
+ video: "Video herunterladen",
553
+ audio: "Audio herunterladen",
554
+ file: "Datei herunterladen"
555
+ }
556
+ },
557
+ file_delete: {
558
+ tooltip: {
559
+ image: "Bild löschen",
560
+ video: "Video löschen",
561
+ audio: "Audio löschen",
562
+ file: "Datei löschen"
563
+ }
564
+ },
565
+ file_preview_toggle: {
566
+ tooltip: "Vorschau umschalten"
567
+ },
568
+ nest: {
569
+ tooltip: "Block verschachteln",
570
+ secondary_tooltip: "Tab"
571
+ },
572
+ unnest: {
573
+ tooltip: "Block entnesten",
574
+ secondary_tooltip: "Shift+Tab"
575
+ },
576
+ align_left: {
577
+ tooltip: "Text linksbündig"
578
+ },
579
+ align_center: {
580
+ tooltip: "Text zentrieren"
581
+ },
582
+ align_right: {
583
+ tooltip: "Text rechtsbündig"
584
+ },
585
+ align_justify: {
586
+ tooltip: "Text Blocksatz"
587
+ }
588
+ },
589
+ file_panel: {
590
+ upload: {
591
+ title: "Hochladen",
592
+ file_placeholder: {
593
+ image: "Bild hochladen",
594
+ video: "Video hochladen",
595
+ audio: "Audio hochladen",
596
+ file: "Datei hochladen"
597
+ },
598
+ upload_error: "Fehler: Hochladen fehlgeschlagen"
599
+ },
600
+ embed: {
601
+ title: "Einbetten",
602
+ embed_button: {
603
+ image: "Bild einbetten",
604
+ video: "Video einbetten",
605
+ audio: "Audio einbetten",
606
+ file: "Datei einbetten"
607
+ },
608
+ url_placeholder: "URL eingeben"
609
+ }
610
+ },
611
+ link_toolbar: {
612
+ delete: {
613
+ tooltip: "Link entfernen"
614
+ },
615
+ edit: {
616
+ text: "Link bearbeiten",
617
+ tooltip: "Bearbeiten"
618
+ },
619
+ open: {
620
+ tooltip: "In neuem Tab öffnen"
621
+ },
622
+ form: {
623
+ title_placeholder: "Titel bearbeiten",
624
+ url_placeholder: "URL bearbeiten"
625
+ }
626
+ },
627
+ generic: {
628
+ ctrl_shortcut: "Strg"
629
+ }
325
630
  }, et = {
326
631
  slash_menu: {
327
632
  heading: {
@@ -628,126 +933,399 @@ const _o = {
628
933
  generic: {
629
934
  ctrl_shortcut: "Ctrl"
630
935
  }
631
- }, yo = {
936
+ }, vo = {
632
937
  slash_menu: {
633
938
  heading: {
634
- title: "Titre 1",
635
- subtext: "Utilisé pour un titre de premier niveau",
636
- aliases: ["h", "titre1", "h1"],
637
- group: "Titres"
939
+ title: "Encabezado 1",
940
+ subtext: "Encabezado de primer nivel",
941
+ aliases: ["h", "encabezado1", "h1"],
942
+ group: "Encabezados"
638
943
  },
639
944
  heading_2: {
640
- title: "Titre 2",
641
- subtext: "Utilisé pour les sections clés",
642
- aliases: ["h2", "titre2", "sous-titre"],
643
- group: "Titres"
945
+ title: "Encabezado 2",
946
+ subtext: "Encabezado de sección principal",
947
+ aliases: ["h2", "encabezado2", "subencabezado"],
948
+ group: "Encabezados"
644
949
  },
645
950
  heading_3: {
646
- title: "Titre 3",
647
- subtext: "Utilisé pour les sous-sections et les titres de groupe",
648
- aliases: ["h3", "titre3", "sous-titre"],
649
- group: "Titres"
951
+ title: "Encabezado 3",
952
+ subtext: "Encabezado de subsección y grupo",
953
+ aliases: ["h3", "encabezado3", "subencabezado"],
954
+ group: "Encabezados"
650
955
  },
651
956
  numbered_list: {
652
- title: "Liste Numérotée",
653
- subtext: "Utilisé pour afficher une liste numérotée",
654
- aliases: ["ol", "li", "liste", "listenumérotée", "liste numérotée"],
655
- group: "Blocs de base"
957
+ title: "Lista Numerada",
958
+ subtext: "Lista con elementos ordenados",
959
+ aliases: ["ol", "li", "lista", "lista numerada"],
960
+ group: "Bloques básicos"
656
961
  },
657
962
  bullet_list: {
658
- title: "Liste à Puces",
659
- subtext: "Utilisé pour afficher une liste non ordonnée",
660
- aliases: ["ul", "li", "liste", "listeàpuces", "liste à puces"],
661
- group: "Blocs de base"
963
+ title: "Lista con Viñetas",
964
+ subtext: "Lista con elementos no ordenados",
965
+ aliases: ["ul", "li", "lista", "lista con viñetas"],
966
+ group: "Bloques básicos"
662
967
  },
663
968
  check_list: {
664
- title: "Liste de vérification",
665
- subtext: "Utilisé pour afficher une liste avec des cases à cocher",
666
- aliases: [
667
- "ul",
668
- "li",
669
- "liste",
670
- "liste de vérification",
671
- "liste cochée",
672
- "case à cocher"
673
- ],
674
- group: "Blocs de base"
969
+ title: "Lista de Verificación",
970
+ subtext: "Lista con casillas de verificación",
971
+ aliases: ["ul", "li", "lista", "lista de verificación", "lista de chequeo", "checkbox"],
972
+ group: "Bloques básicos"
675
973
  },
676
974
  paragraph: {
677
- title: "Paragraphe",
678
- subtext: "Utilisé pour le corps de votre document",
679
- aliases: ["p", "paragraphe"],
680
- group: "Blocs de base"
975
+ title: "Párrafo",
976
+ subtext: "El cuerpo de tu documento",
977
+ aliases: ["p", "párrafo"],
978
+ group: "Bloques básicos"
681
979
  },
682
980
  table: {
683
- title: "Tableau",
684
- subtext: "Utilisé pour les tableaux",
685
- aliases: ["tableau"],
686
- group: "Avancé"
981
+ title: "Tabla",
982
+ subtext: "Tabla con celdas editables",
983
+ aliases: ["tabla"],
984
+ group: "Avanzado"
687
985
  },
688
986
  image: {
689
- title: "Image",
690
- subtext: "Insérer une image",
691
- aliases: [
692
- "image",
693
- "uploadImage",
694
- "télécharger",
695
- "img",
696
- "photo",
697
- "média",
698
- "url"
699
- ],
700
- group: "Médias"
987
+ title: "Imagen",
988
+ subtext: "Imagen redimensionable con leyenda",
989
+ aliases: ["imagen", "subir imagen", "cargar", "img", "foto", "media", "url"],
990
+ group: "Medios"
701
991
  },
702
992
  video: {
703
- title: "Vidéo",
704
- subtext: "Insérer une vidéo",
705
- aliases: [
706
- "vidéo",
707
- "téléchargerVidéo",
708
- "téléverser",
709
- "mp4",
710
- "film",
711
- "média",
712
- "url"
713
- ],
714
- group: "Média"
993
+ title: "Vídeo",
994
+ subtext: "Vídeo redimensionable con leyenda",
995
+ aliases: ["video", "subir vídeo", "cargar", "mp4", "película", "media", "url"],
996
+ group: "Medios"
715
997
  },
716
998
  audio: {
717
999
  title: "Audio",
718
- subtext: "Insérer un audio",
719
- aliases: [
720
- "audio",
721
- "téléchargerAudio",
722
- "téléverser",
723
- "mp3",
724
- "son",
725
- "média",
726
- "url"
727
- ],
728
- group: "Média"
1000
+ subtext: "Audio incrustado con leyenda",
1001
+ aliases: ["audio", "subir audio", "cargar", "mp3", "sonido", "media", "url"],
1002
+ group: "Medios"
729
1003
  },
730
1004
  file: {
731
- title: "Fichier",
732
- subtext: "Insérer un fichier",
733
- aliases: ["fichier", "téléverser", "intégrer", "média", "url"],
734
- group: "Média"
1005
+ title: "Archivo",
1006
+ subtext: "Archivo incrustado",
1007
+ aliases: ["archivo", "cargar", "incrustar", "media", "url"],
1008
+ group: "Medios"
735
1009
  },
736
1010
  emoji: {
737
1011
  title: "Emoji",
738
- subtext: "Utilisé pour insérer un emoji",
739
- aliases: ["emoji", "émoticône", "émotion", "visage"],
740
- group: "Autres"
1012
+ subtext: "Busca e inserta un emoji",
1013
+ aliases: ["emoji", "emoticono", "emoción", "cara"],
1014
+ group: "Otros"
741
1015
  }
742
1016
  },
743
1017
  placeholders: {
744
- default: "Entrez du texte ou tapez '/' pour les commandes",
745
- heading: "Titre",
746
- bulletListItem: "Liste",
747
- numberedListItem: "Liste",
748
- checkListItem: "Liste"
749
- },
750
- file_blocks: {
1018
+ default: "Escribe o teclea '/' para comandos",
1019
+ heading: "Encabezado",
1020
+ bulletListItem: "Lista",
1021
+ numberedListItem: "Lista",
1022
+ checkListItem: "Lista"
1023
+ },
1024
+ file_blocks: {
1025
+ image: {
1026
+ add_button_text: "Agregar imagen"
1027
+ },
1028
+ video: {
1029
+ add_button_text: "Agregar vídeo"
1030
+ },
1031
+ audio: {
1032
+ add_button_text: "Agregar audio"
1033
+ },
1034
+ file: {
1035
+ add_button_text: "Agregar archivo"
1036
+ }
1037
+ },
1038
+ side_menu: {
1039
+ add_block_label: "Agregar bloque",
1040
+ drag_handle_label: "Abrir menú de bloque"
1041
+ },
1042
+ drag_handle: {
1043
+ delete_menuitem: "Eliminar",
1044
+ colors_menuitem: "Colores"
1045
+ },
1046
+ table_handle: {
1047
+ delete_column_menuitem: "Eliminar columna",
1048
+ delete_row_menuitem: "Eliminar fila",
1049
+ add_left_menuitem: "Agregar columna a la izquierda",
1050
+ add_right_menuitem: "Agregar columna a la derecha",
1051
+ add_above_menuitem: "Agregar fila arriba",
1052
+ add_below_menuitem: "Agregar fila abajo"
1053
+ },
1054
+ suggestion_menu: {
1055
+ no_items_title: "No se encontraron elementos",
1056
+ loading: "Cargando…"
1057
+ },
1058
+ color_picker: {
1059
+ text_title: "Texto",
1060
+ background_title: "Fondo",
1061
+ colors: {
1062
+ default: "Por defecto",
1063
+ gray: "Gris",
1064
+ brown: "Marrón",
1065
+ red: "Rojo",
1066
+ orange: "Naranja",
1067
+ yellow: "Amarillo",
1068
+ green: "Verde",
1069
+ blue: "Azul",
1070
+ purple: "Morado",
1071
+ pink: "Rosa"
1072
+ }
1073
+ },
1074
+ formatting_toolbar: {
1075
+ bold: {
1076
+ tooltip: "Negrita",
1077
+ secondary_tooltip: "Mod+B"
1078
+ },
1079
+ italic: {
1080
+ tooltip: "Cursiva",
1081
+ secondary_tooltip: "Mod+I"
1082
+ },
1083
+ underline: {
1084
+ tooltip: "Subrayado",
1085
+ secondary_tooltip: "Mod+U"
1086
+ },
1087
+ strike: {
1088
+ tooltip: "Tachado",
1089
+ secondary_tooltip: "Mod+Shift+S"
1090
+ },
1091
+ code: {
1092
+ tooltip: "Código",
1093
+ secondary_tooltip: ""
1094
+ },
1095
+ colors: {
1096
+ tooltip: "Colores"
1097
+ },
1098
+ link: {
1099
+ tooltip: "Crear enlace",
1100
+ secondary_tooltip: "Mod+K"
1101
+ },
1102
+ file_caption: {
1103
+ tooltip: "Editar leyenda",
1104
+ input_placeholder: "Editar leyenda"
1105
+ },
1106
+ file_replace: {
1107
+ tooltip: {
1108
+ image: "Reemplazar imagen",
1109
+ video: "Reemplazar vídeo",
1110
+ audio: "Reemplazar audio",
1111
+ file: "Reemplazar archivo"
1112
+ }
1113
+ },
1114
+ file_rename: {
1115
+ tooltip: {
1116
+ image: "Renombrar imagen",
1117
+ video: "Renombrar vídeo",
1118
+ audio: "Renombrar audio",
1119
+ file: "Renombrar archivo"
1120
+ },
1121
+ input_placeholder: {
1122
+ image: "Renombrar imagen",
1123
+ video: "Renombrar vídeo",
1124
+ audio: "Renombrar audio",
1125
+ file: "Renombrar archivo"
1126
+ }
1127
+ },
1128
+ file_download: {
1129
+ tooltip: {
1130
+ image: "Descargar imagen",
1131
+ video: "Descargar vídeo",
1132
+ audio: "Descargar audio",
1133
+ file: "Descargar archivo"
1134
+ }
1135
+ },
1136
+ file_delete: {
1137
+ tooltip: {
1138
+ image: "Eliminar imagen",
1139
+ video: "Eliminar vídeo",
1140
+ audio: "Eliminar audio",
1141
+ file: "Eliminar archivo"
1142
+ }
1143
+ },
1144
+ file_preview_toggle: {
1145
+ tooltip: "Alternar vista previa"
1146
+ },
1147
+ nest: {
1148
+ tooltip: "Anidar bloque",
1149
+ secondary_tooltip: "Tab"
1150
+ },
1151
+ unnest: {
1152
+ tooltip: "Desanidar bloque",
1153
+ secondary_tooltip: "Shift+Tab"
1154
+ },
1155
+ align_left: {
1156
+ tooltip: "Alinear texto a la izquierda"
1157
+ },
1158
+ align_center: {
1159
+ tooltip: "Alinear texto al centro"
1160
+ },
1161
+ align_right: {
1162
+ tooltip: "Alinear texto a la derecha"
1163
+ },
1164
+ align_justify: {
1165
+ tooltip: "Justificar texto"
1166
+ }
1167
+ },
1168
+ file_panel: {
1169
+ upload: {
1170
+ title: "Subir",
1171
+ file_placeholder: {
1172
+ image: "Subir imagen",
1173
+ video: "Subir vídeo",
1174
+ audio: "Subir audio",
1175
+ file: "Subir archivo"
1176
+ },
1177
+ upload_error: "Error: Fallo en la subida"
1178
+ },
1179
+ embed: {
1180
+ title: "Incrustar",
1181
+ embed_button: {
1182
+ image: "Incrustar imagen",
1183
+ video: "Incrustar vídeo",
1184
+ audio: "Incrustar audio",
1185
+ file: "Incrustar archivo"
1186
+ },
1187
+ url_placeholder: "Introduce la URL"
1188
+ }
1189
+ },
1190
+ link_toolbar: {
1191
+ delete: {
1192
+ tooltip: "Eliminar enlace"
1193
+ },
1194
+ edit: {
1195
+ text: "Editar enlace",
1196
+ tooltip: "Editar"
1197
+ },
1198
+ open: {
1199
+ tooltip: "Abrir en nueva pestaña"
1200
+ },
1201
+ form: {
1202
+ title_placeholder: "Editar título",
1203
+ url_placeholder: "Editar URL"
1204
+ }
1205
+ },
1206
+ generic: {
1207
+ ctrl_shortcut: "Ctrl"
1208
+ }
1209
+ }, wo = {
1210
+ slash_menu: {
1211
+ heading: {
1212
+ title: "Titre 1",
1213
+ subtext: "Utilisé pour un titre de premier niveau",
1214
+ aliases: ["h", "titre1", "h1"],
1215
+ group: "Titres"
1216
+ },
1217
+ heading_2: {
1218
+ title: "Titre 2",
1219
+ subtext: "Utilisé pour les sections clés",
1220
+ aliases: ["h2", "titre2", "sous-titre"],
1221
+ group: "Titres"
1222
+ },
1223
+ heading_3: {
1224
+ title: "Titre 3",
1225
+ subtext: "Utilisé pour les sous-sections et les titres de groupe",
1226
+ aliases: ["h3", "titre3", "sous-titre"],
1227
+ group: "Titres"
1228
+ },
1229
+ numbered_list: {
1230
+ title: "Liste Numérotée",
1231
+ subtext: "Utilisé pour afficher une liste numérotée",
1232
+ aliases: ["ol", "li", "liste", "listenumérotée", "liste numérotée"],
1233
+ group: "Blocs de base"
1234
+ },
1235
+ bullet_list: {
1236
+ title: "Liste à Puces",
1237
+ subtext: "Utilisé pour afficher une liste non ordonnée",
1238
+ aliases: ["ul", "li", "liste", "listeàpuces", "liste à puces"],
1239
+ group: "Blocs de base"
1240
+ },
1241
+ check_list: {
1242
+ title: "Liste de vérification",
1243
+ subtext: "Utilisé pour afficher une liste avec des cases à cocher",
1244
+ aliases: [
1245
+ "ul",
1246
+ "li",
1247
+ "liste",
1248
+ "liste de vérification",
1249
+ "liste cochée",
1250
+ "case à cocher"
1251
+ ],
1252
+ group: "Blocs de base"
1253
+ },
1254
+ paragraph: {
1255
+ title: "Paragraphe",
1256
+ subtext: "Utilisé pour le corps de votre document",
1257
+ aliases: ["p", "paragraphe"],
1258
+ group: "Blocs de base"
1259
+ },
1260
+ table: {
1261
+ title: "Tableau",
1262
+ subtext: "Utilisé pour les tableaux",
1263
+ aliases: ["tableau"],
1264
+ group: "Avancé"
1265
+ },
1266
+ image: {
1267
+ title: "Image",
1268
+ subtext: "Insérer une image",
1269
+ aliases: [
1270
+ "image",
1271
+ "uploadImage",
1272
+ "télécharger",
1273
+ "img",
1274
+ "photo",
1275
+ "média",
1276
+ "url"
1277
+ ],
1278
+ group: "Médias"
1279
+ },
1280
+ video: {
1281
+ title: "Vidéo",
1282
+ subtext: "Insérer une vidéo",
1283
+ aliases: [
1284
+ "vidéo",
1285
+ "téléchargerVidéo",
1286
+ "téléverser",
1287
+ "mp4",
1288
+ "film",
1289
+ "média",
1290
+ "url"
1291
+ ],
1292
+ group: "Média"
1293
+ },
1294
+ audio: {
1295
+ title: "Audio",
1296
+ subtext: "Insérer un audio",
1297
+ aliases: [
1298
+ "audio",
1299
+ "téléchargerAudio",
1300
+ "téléverser",
1301
+ "mp3",
1302
+ "son",
1303
+ "média",
1304
+ "url"
1305
+ ],
1306
+ group: "Média"
1307
+ },
1308
+ file: {
1309
+ title: "Fichier",
1310
+ subtext: "Insérer un fichier",
1311
+ aliases: ["fichier", "téléverser", "intégrer", "média", "url"],
1312
+ group: "Média"
1313
+ },
1314
+ emoji: {
1315
+ title: "Emoji",
1316
+ subtext: "Utilisé pour insérer un emoji",
1317
+ aliases: ["emoji", "émoticône", "émotion", "visage"],
1318
+ group: "Autres"
1319
+ }
1320
+ },
1321
+ placeholders: {
1322
+ default: "Entrez du texte ou tapez '/' pour les commandes",
1323
+ heading: "Titre",
1324
+ bulletListItem: "Liste",
1325
+ numberedListItem: "Liste",
1326
+ checkListItem: "Liste"
1327
+ },
1328
+ file_blocks: {
751
1329
  image: {
752
1330
  add_button_text: "Ajouter une image"
753
1331
  },
@@ -933,7 +1511,7 @@ const _o = {
933
1511
  generic: {
934
1512
  ctrl_shortcut: "Ctrl"
935
1513
  }
936
- }, wo = {
1514
+ }, xo = {
937
1515
  slash_menu: {
938
1516
  heading: {
939
1517
  title: "Fyrirsögn 1",
@@ -1230,7 +1808,7 @@ const _o = {
1230
1808
  generic: {
1231
1809
  ctrl_shortcut: "Ctrl"
1232
1810
  }
1233
- }, vo = {
1811
+ }, Eo = {
1234
1812
  slash_menu: {
1235
1813
  heading: {
1236
1814
  title: "見出し1",
@@ -1555,7 +2133,7 @@ const _o = {
1555
2133
  generic: {
1556
2134
  ctrl_shortcut: "Ctrl"
1557
2135
  }
1558
- }, xo = {
2136
+ }, Co = {
1559
2137
  slash_menu: {
1560
2138
  heading: {
1561
2139
  title: "제목1",
@@ -1873,7 +2451,7 @@ const _o = {
1873
2451
  generic: {
1874
2452
  ctrl_shortcut: "Ctrl"
1875
2453
  }
1876
- }, Eo = {
2454
+ }, So = {
1877
2455
  slash_menu: {
1878
2456
  heading: {
1879
2457
  title: "Kop 1",
@@ -2178,7 +2756,7 @@ const _o = {
2178
2756
  generic: {
2179
2757
  ctrl_shortcut: "Ctrl"
2180
2758
  }
2181
- }, Co = {
2759
+ }, Mo = {
2182
2760
  slash_menu: {
2183
2761
  heading: {
2184
2762
  title: "Nagłówek 1",
@@ -2467,7 +3045,7 @@ const _o = {
2467
3045
  generic: {
2468
3046
  ctrl_shortcut: "Ctrl"
2469
3047
  }
2470
- }, So = {
3048
+ }, To = {
2471
3049
  slash_menu: {
2472
3050
  heading: {
2473
3051
  title: "Título",
@@ -2764,1007 +3342,1009 @@ const _o = {
2764
3342
  generic: {
2765
3343
  ctrl_shortcut: "Ctrl"
2766
3344
  }
2767
- }, Mo = {
3345
+ }, Bo = {
2768
3346
  slash_menu: {
2769
3347
  heading: {
2770
- title: "Tiêu đề H1",
2771
- subtext: "Sử dụng cho tiêu đề cấp cao nhất",
2772
- aliases: ["h", "tieude1", "dd1"],
2773
- group: "Tiêu đề"
2774
- },
3348
+ title: "Заголовок 1 уровня",
3349
+ subtext: "Используется для заголовка верхнего уровня",
3350
+ aliases: ["h", "heading1", "h1", "заголовок1"],
3351
+ group: "Заголовки"
3352
+ },
2775
3353
  heading_2: {
2776
- title: "Tiêu đề H2",
2777
- subtext: "Sử dụng cho các phần chính",
2778
- aliases: ["h2", "tieude2", "tieudephu"],
2779
- group: "Tiêu đề"
3354
+ title: "Заголовок 2 уровня",
3355
+ subtext: "Используется для ключевых разделов",
3356
+ aliases: ["h2", "heading2", "subheading", "заголовок2", "подзаголовок"],
3357
+ group: "Заголовки"
2780
3358
  },
2781
3359
  heading_3: {
2782
- title: "Tiêu đề H3",
2783
- subtext: "Sử dụng cho phụ đề và tiêu đề nhóm",
2784
- aliases: ["h3", "tieude3", "tieudephu"],
2785
- group: "Tiêu đề"
3360
+ title: "Заголовок 3 уровня",
3361
+ subtext: "Используется для подразделов и групп",
3362
+ aliases: ["h3", "heading3", "subheading", "заголовок3", "подзаголовок"],
3363
+ group: "Заголовки"
2786
3364
  },
2787
3365
  numbered_list: {
2788
- title: "Danh sách đánh số",
2789
- subtext: "Sử dụng để hiển thị danh sách có đánh số",
2790
- aliases: ["ol", "li", "ds", "danhsachdso", "danh sach danh so"],
2791
- group: "Khối cơ bản"
3366
+ title: "Нумерованный список",
3367
+ subtext: "Используется для отображения нумерованного списка",
3368
+ aliases: [
3369
+ "ol",
3370
+ "li",
3371
+ "list",
3372
+ "numberedlist",
3373
+ "numbered list",
3374
+ "список",
3375
+ "нумерованный список"
3376
+ ],
3377
+ group: "Базовые блоки"
2792
3378
  },
2793
3379
  bullet_list: {
2794
- title: "Danh sách",
2795
- subtext: "Sử dụng để hiển thị danh sách không đánh số",
2796
- aliases: ["ul", "li", "ds", "danhsach", "danh sach"],
2797
- group: "Khối cơ bản"
3380
+ title: "Маркированный список",
3381
+ subtext: "Для отображения неупорядоченного списка.",
3382
+ aliases: [
3383
+ "ul",
3384
+ "li",
3385
+ "list",
3386
+ "bulletlist",
3387
+ "bullet list",
3388
+ "список",
3389
+ "маркированный список"
3390
+ ],
3391
+ group: "Базовые блоки"
2798
3392
  },
2799
3393
  check_list: {
2800
- title: "Danh sách kiểm tra",
2801
- subtext: "Dùng để hiển thị danh sách có hộp kiểm",
3394
+ title: "Контрольный список",
3395
+ subtext: "Для отображения списка с флажками",
2802
3396
  aliases: [
2803
3397
  "ul",
2804
3398
  "li",
2805
- "danh sach",
2806
- "danh sach kiem tra",
2807
- "danh sach da kiem tra",
2808
- "hop kiem"
3399
+ "list",
3400
+ "checklist",
3401
+ "check list",
3402
+ "checked list",
3403
+ "checkbox",
3404
+ "список"
2809
3405
  ],
2810
- group: "Khối cơ bản"
3406
+ group: "Базовые блоки"
2811
3407
  },
2812
3408
  paragraph: {
2813
- title: "Đoạn văn",
2814
- subtext: "Sử dụng cho nội dung chính của tài liệu",
2815
- aliases: ["p", "doanvan"],
2816
- group: "Khối cơ bản"
3409
+ title: "Параграф",
3410
+ subtext: "Основной текст",
3411
+ aliases: ["p", "paragraph", "параграф"],
3412
+ group: "Базовые блоки"
2817
3413
  },
2818
3414
  table: {
2819
- title: "Bảng",
2820
- subtext: "Sử dụng để tạo bảng",
2821
- aliases: ["bang"],
2822
- group: "Nâng cao"
3415
+ title: "Таблица",
3416
+ subtext: "Используется для таблиц",
3417
+ aliases: ["table", "таблица"],
3418
+ group: "Продвинутый"
2823
3419
  },
2824
3420
  image: {
2825
- title: "Hình ảnh",
2826
- subtext: "Chèn hình ảnh",
2827
- aliases: ["anh", "tai-len-anh", "tai-len", "img", "hinh", "media", "url"],
2828
- group: "Phương tiện"
3421
+ title: "Картинка",
3422
+ subtext: "Вставить изображение",
3423
+ aliases: [
3424
+ "image",
3425
+ "imageUpload",
3426
+ "upload",
3427
+ "img",
3428
+ "picture",
3429
+ "media",
3430
+ "url",
3431
+ "загрузка",
3432
+ "картинка",
3433
+ "рисунок"
3434
+ ],
3435
+ group: "Медиа"
2829
3436
  },
2830
3437
  video: {
2831
- title: "Video",
2832
- subtext: "Chèn video",
3438
+ title: "Видео",
3439
+ subtext: "Вставить видео",
2833
3440
  aliases: [
2834
3441
  "video",
2835
- "tai-len-video",
2836
- "tai-len",
3442
+ "videoUpload",
3443
+ "upload",
2837
3444
  "mp4",
2838
- "phim",
3445
+ "film",
2839
3446
  "media",
2840
- "url"
3447
+ "url",
3448
+ "загрузка",
3449
+ "видео"
2841
3450
  ],
2842
- group: "Phương tiện"
3451
+ group: "Медиа"
2843
3452
  },
2844
3453
  audio: {
2845
- title: "Âm thanh",
2846
- subtext: "Chèn âm thanh",
3454
+ title: "Аудио",
3455
+ subtext: "Вставить аудио",
2847
3456
  aliases: [
2848
- "âm thanh",
2849
- "tai-len-am-thanh",
2850
- "tai-len",
3457
+ "audio",
3458
+ "audioUpload",
3459
+ "upload",
2851
3460
  "mp3",
2852
- "am thanh",
3461
+ "sound",
2853
3462
  "media",
2854
- "url"
3463
+ "url",
3464
+ "загрузка",
3465
+ "аудио",
3466
+ "звук",
3467
+ "музыка"
2855
3468
  ],
2856
- group: "Phương tiện"
3469
+ group: "Медиа"
2857
3470
  },
2858
3471
  file: {
2859
- title: "Tệp",
2860
- subtext: "Chèn tệp",
2861
- aliases: ["tep", "tai-len", "nhung", "media", "url"],
2862
- group: "Phương tiện"
3472
+ title: "Файл",
3473
+ subtext: "Вставить файл",
3474
+ aliases: ["file", "upload", "embed", "media", "url", "загрузка", "файл"],
3475
+ group: "Медиа"
2863
3476
  },
2864
3477
  emoji: {
2865
- title: "Biểu tượng cảm xúc",
2866
- subtext: "Dùng để chèn biểu tượng cảm xúc",
2867
- aliases: [
2868
- "biểu tượng cảm xúc",
2869
- "emoji",
2870
- "emoticon",
2871
- "cảm xúc expression",
2872
- "khuôn mặt",
2873
- "face"
2874
- ],
2875
- group: "Khác"
3478
+ title: "Эмодзи",
3479
+ subtext: "Используется для вставки эмодзи",
3480
+ aliases: ["эмодзи", "смайлик", "выражение эмоций", "лицо"],
3481
+ group: "Прочее"
2876
3482
  }
2877
3483
  },
2878
3484
  placeholders: {
2879
- default: "Nhập văn bản hoặc '/' để thêm định dạng",
2880
- heading: "Tiêu đề",
2881
- bulletListItem: "Danh sách",
2882
- numberedListItem: "Danh sách",
2883
- checkListItem: "Danh sách"
3485
+ default: "Ведите текст или введите «/» для команд",
3486
+ heading: "Заголовок",
3487
+ bulletListItem: "Список",
3488
+ numberedListItem: "Список",
3489
+ checkListItem: "Список"
2884
3490
  },
2885
3491
  file_blocks: {
2886
3492
  image: {
2887
- add_button_text: "Thêm ảnh"
3493
+ add_button_text: "Добавить изображение"
2888
3494
  },
2889
3495
  video: {
2890
- add_button_text: "Thêm video"
3496
+ add_button_text: "Добавить видео"
2891
3497
  },
2892
3498
  audio: {
2893
- add_button_text: "Thêm âm thanh"
3499
+ add_button_text: "Добавить аудио"
2894
3500
  },
2895
3501
  file: {
2896
- add_button_text: "Thêm tệp"
3502
+ add_button_text: "Добавить файл"
2897
3503
  }
2898
3504
  },
2899
- // từ gói phản ứng:
3505
+ // from react package:
2900
3506
  side_menu: {
2901
- add_block_label: "Thêm khối",
2902
- drag_handle_label: "Mở trình đơn khối"
3507
+ add_block_label: "Добавить блок",
3508
+ drag_handle_label: "Открыть меню блока"
2903
3509
  },
2904
3510
  drag_handle: {
2905
- delete_menuitem: "Xóa",
2906
- colors_menuitem: "Màu sắc"
3511
+ delete_menuitem: "Удалить",
3512
+ colors_menuitem: "Цвета"
2907
3513
  },
2908
3514
  table_handle: {
2909
- delete_column_menuitem: "Xóa cột",
2910
- delete_row_menuitem: "Xóa hàng",
2911
- add_left_menuitem: "Thêm cột bên trái",
2912
- add_right_menuitem: "Thêm cột bên phải",
2913
- add_above_menuitem: "Thêm hàng phía trên",
2914
- add_below_menuitem: "Thêm hàng phía dưới"
3515
+ delete_column_menuitem: "Удалить столбец",
3516
+ delete_row_menuitem: "Удалить строку",
3517
+ add_left_menuitem: "Добавить столбец слева",
3518
+ add_right_menuitem: "Добавить столбец справа",
3519
+ add_above_menuitem: "Добавить строку выше",
3520
+ add_below_menuitem: "Добавить строку ниже"
2915
3521
  },
2916
3522
  suggestion_menu: {
2917
- no_items_title: "Không tìm thấy mục nào",
2918
- loading: "Đang tải..."
3523
+ no_items_title: "ничего не найдено",
3524
+ loading: "Загрузка…"
2919
3525
  },
2920
3526
  color_picker: {
2921
- text_title: "Văn bản",
2922
- background_title: "Nền",
3527
+ text_title: "Текст",
3528
+ background_title: "Задний фон",
2923
3529
  colors: {
2924
- default: "Mặc định",
2925
- gray: "Xám",
2926
- brown: "Nâu",
2927
- red: "Đỏ",
2928
- orange: "Cam",
2929
- yellow: "Vàng",
2930
- green: "Xanh lá",
2931
- blue: "Xanh dương",
2932
- purple: "Tím",
2933
- pink: "Hồng"
3530
+ default: "По умолчинию",
3531
+ gray: "Серый",
3532
+ brown: "Коричневый",
3533
+ red: "Красный",
3534
+ orange: "Оранжевый",
3535
+ yellow: "Жёлтый",
3536
+ green: "Зелёный",
3537
+ blue: "Голубой",
3538
+ purple: "Фиолетовый",
3539
+ pink: "Розовый"
2934
3540
  }
2935
3541
  },
2936
3542
  formatting_toolbar: {
2937
3543
  bold: {
2938
- tooltip: "In đậm",
3544
+ tooltip: "Жирный",
2939
3545
  secondary_tooltip: "Mod+B"
2940
3546
  },
2941
3547
  italic: {
2942
- tooltip: "In nghiêng",
3548
+ tooltip: "Курсив",
2943
3549
  secondary_tooltip: "Mod+I"
2944
3550
  },
2945
3551
  underline: {
2946
- tooltip: "Gạch dưới",
3552
+ tooltip: "Подчёркнутый",
2947
3553
  secondary_tooltip: "Mod+U"
2948
3554
  },
2949
3555
  strike: {
2950
- tooltip: "Gạch ngang",
3556
+ tooltip: "Зачёркнутый",
2951
3557
  secondary_tooltip: "Mod+Shift+X"
2952
3558
  },
2953
3559
  code: {
2954
- tooltip: "Code",
3560
+ tooltip: "Код",
2955
3561
  secondary_tooltip: ""
2956
3562
  },
2957
3563
  colors: {
2958
- tooltip: "Màu sắc"
3564
+ tooltip: "Цвета"
2959
3565
  },
2960
3566
  link: {
2961
- tooltip: "Tạo liên kết",
3567
+ tooltip: "Создать ссылку",
2962
3568
  secondary_tooltip: "Mod+K"
2963
3569
  },
2964
3570
  file_caption: {
2965
- tooltip: "Chỉnh sửa chú thích",
2966
- input_placeholder: "Chỉnh sửa chú thích"
3571
+ tooltip: "Изменить подпись",
3572
+ input_placeholder: "Изменить подпись"
2967
3573
  },
2968
3574
  file_replace: {
2969
3575
  tooltip: {
2970
- image: "Thay thế hình ảnh",
2971
- video: "Thay thế video",
2972
- audio: "Thay thế âm thanh",
2973
- file: "Thay thế tệp"
3576
+ image: "Заменить изображение",
3577
+ video: "Заменить видео",
3578
+ audio: "Заменить аудио",
3579
+ file: "Заменить файл"
2974
3580
  }
2975
3581
  },
2976
3582
  file_rename: {
2977
3583
  tooltip: {
2978
- image: "Đổi tên hình ảnh",
2979
- video: "Đổi tên video",
2980
- audio: "Đổi tên âm thanh",
2981
- file: "Đổi tên tệp"
3584
+ image: "Переименовать изображение",
3585
+ video: "Переименовать видео",
3586
+ audio: "Переименовать аудио",
3587
+ file: "Переименовать файл"
2982
3588
  },
2983
3589
  input_placeholder: {
2984
- image: "Đổi tên hình ảnh",
2985
- video: "Đổi tên video",
2986
- audio: "Đổi tên âm thanh",
2987
- file: "Đổi tên tệp"
3590
+ image: "Переименовать изображение",
3591
+ video: "Переименовать видео",
3592
+ audio: "Переименовать аудио",
3593
+ file: "Переименовать файл"
2988
3594
  }
2989
3595
  },
2990
3596
  file_download: {
2991
3597
  tooltip: {
2992
- image: "Tải xuống hình ảnh",
2993
- video: "Tải xuống video",
2994
- audio: "Tải xuống âm thanh",
2995
- file: "Tải xuống tệp"
3598
+ image: "Скачать картинку",
3599
+ video: "Скачать видео",
3600
+ audio: "Скачать аудио",
3601
+ file: "Скачать файл"
2996
3602
  }
2997
3603
  },
2998
3604
  file_delete: {
2999
3605
  tooltip: {
3000
- image: "Xóa hình ảnh",
3001
- video: "Xóa video",
3002
- audio: "Xóa âm thanh",
3003
- file: "Xóa tệp"
3606
+ image: "Удалить картинку",
3607
+ video: "Удалить видео",
3608
+ audio: "Удалить аудио",
3609
+ file: "Скачать файл"
3004
3610
  }
3005
3611
  },
3006
3612
  file_preview_toggle: {
3007
- tooltip: "Chuyển đổi xem trước"
3613
+ tooltip: "Переключить предварительный просмотр"
3008
3614
  },
3009
3615
  nest: {
3010
- tooltip: "Lồng khối",
3616
+ tooltip: "Сдвинуть вправо",
3011
3617
  secondary_tooltip: "Tab"
3012
3618
  },
3013
3619
  unnest: {
3014
- tooltip: "Bỏ lồng khối",
3620
+ tooltip: "Сдвинуть влево",
3015
3621
  secondary_tooltip: "Shift+Tab"
3016
3622
  },
3017
3623
  align_left: {
3018
- tooltip: "Căn trái văn bản"
3624
+ tooltip: "Текст по левому краю"
3019
3625
  },
3020
3626
  align_center: {
3021
- tooltip: "Căn giữa văn bản"
3627
+ tooltip: "Текст по середине"
3022
3628
  },
3023
3629
  align_right: {
3024
- tooltip: "Căn phải văn bản"
3630
+ tooltip: "Текст по правому краю"
3025
3631
  },
3026
3632
  align_justify: {
3027
- tooltip: "Căn đều văn bản"
3633
+ tooltip: "По середине текст"
3028
3634
  }
3029
3635
  },
3030
3636
  file_panel: {
3031
3637
  upload: {
3032
- title: "Tải lên",
3638
+ title: "Загрузить",
3033
3639
  file_placeholder: {
3034
- image: "Tải lên hình ảnh",
3035
- video: "Tải lên video",
3036
- audio: "Tải lên âm thanh",
3037
- file: "Tải lên tệp"
3640
+ image: "Загрузить картинки",
3641
+ video: "Загрузить видео",
3642
+ audio: "Загрузить аудио",
3643
+ file: "Загрузить файл"
3038
3644
  },
3039
- upload_error: "Lỗi: Tải lên thất bại"
3645
+ upload_error: "Ошибка: не удалось загрузить"
3040
3646
  },
3041
3647
  embed: {
3042
- title: "Nhúng",
3648
+ title: "Вставить",
3043
3649
  embed_button: {
3044
- image: "Nhúng hình ảnh",
3045
- video: "Nhúng video",
3046
- audio: "Nhúng âm thanh",
3047
- file: "Nhúng tệp"
3650
+ image: "Вставить картинку",
3651
+ video: "Вставить видео",
3652
+ audio: "Вставить аудио",
3653
+ file: "Вставить файл"
3048
3654
  },
3049
- url_placeholder: "Nhập URL"
3655
+ url_placeholder: "Введите URL"
3050
3656
  }
3051
3657
  },
3052
3658
  link_toolbar: {
3053
3659
  delete: {
3054
- tooltip: "Xóa liên kết"
3660
+ tooltip: "Удалить ссылку"
3055
3661
  },
3056
3662
  edit: {
3057
- text: "Chỉnh sửa liên kết",
3058
- tooltip: "Chỉnh sửa"
3663
+ text: "Изменить ссылку",
3664
+ tooltip: "Редактировать"
3059
3665
  },
3060
3666
  open: {
3061
- tooltip: "Mở trong tab mới"
3667
+ tooltip: "Открыть в новой вкладке"
3062
3668
  },
3063
3669
  form: {
3064
- title_placeholder: "Chỉnh sửa tiêu đề",
3065
- url_placeholder: "Chỉnh sửa URL"
3670
+ title_placeholder: "Изменить заголовок",
3671
+ url_placeholder: "Изменить URL"
3066
3672
  }
3067
3673
  },
3068
3674
  generic: {
3069
3675
  ctrl_shortcut: "Ctrl"
3070
3676
  }
3071
- }, To = {
3677
+ }, Lo = {
3072
3678
  slash_menu: {
3073
3679
  heading: {
3074
- title: "一级标题",
3075
- subtext: "用于顶级标题",
3076
- aliases: ["h", "heading1", "h1", "标题", "一级标题"],
3077
- group: "标题"
3680
+ title: "Tiêu đề H1",
3681
+ subtext: "Sử dụng cho tiêu đề cấp cao nhất",
3682
+ aliases: ["h", "tieude1", "dd1"],
3683
+ group: "Tiêu đề"
3078
3684
  },
3079
3685
  heading_2: {
3080
- title: "二级标题",
3081
- subtext: "用于关键部分",
3082
- aliases: ["h2", "heading2", "subheading", "标题", "二级标题", "副标题"],
3083
- group: "标题"
3686
+ title: "Tiêu đề H2",
3687
+ subtext: "Sử dụng cho các phần chính",
3688
+ aliases: ["h2", "tieude2", "tieudephu"],
3689
+ group: "Tiêu đề"
3084
3690
  },
3085
3691
  heading_3: {
3086
- title: "三级标题",
3087
- subtext: "用于小节和分组标题",
3088
- aliases: ["h3", "heading3", "subheading", "标题", "三级标题"],
3089
- group: "标题"
3692
+ title: "Tiêu đề H3",
3693
+ subtext: "Sử dụng cho phụ đề và tiêu đề nhóm",
3694
+ aliases: ["h3", "tieude3", "tieudephu"],
3695
+ group: "Tiêu đề"
3090
3696
  },
3091
3697
  numbered_list: {
3092
- title: "有序列表",
3093
- subtext: "用于显示有序列表",
3094
- aliases: [
3095
- "ol",
3096
- "li",
3097
- "list",
3098
- "numberedlist",
3099
- "numbered list",
3100
- "列表",
3101
- "有序列表"
3102
- ],
3103
- group: "基础"
3698
+ title: "Danh sách đánh số",
3699
+ subtext: "Sử dụng để hiển thị danh sách có đánh số",
3700
+ aliases: ["ol", "li", "ds", "danhsachdso", "danh sach danh so"],
3701
+ group: "Khối cơ bản"
3104
3702
  },
3105
3703
  bullet_list: {
3106
- title: "无序列表",
3107
- subtext: "用于显示无序列表",
3108
- aliases: [
3109
- "ul",
3110
- "li",
3111
- "list",
3112
- "bulletlist",
3113
- "bullet list",
3114
- "列表",
3115
- "无序列表"
3116
- ],
3117
- group: "基础"
3704
+ title: "Danh sách",
3705
+ subtext: "Sử dụng để hiển thị danh sách không đánh số",
3706
+ aliases: ["ul", "li", "ds", "danhsach", "danh sach"],
3707
+ group: "Khối cơ bản"
3118
3708
  },
3119
3709
  check_list: {
3120
- title: "检查清单",
3121
- subtext: "用于显示带有复选框的列表",
3710
+ title: "Danh sách kiểm tra",
3711
+ subtext: "Dùng để hiển thị danh sách có hộp kiểm",
3122
3712
  aliases: [
3123
3713
  "ul",
3124
3714
  "li",
3125
- "checklist",
3126
- "checked list",
3127
- "列表",
3128
- "检查清单",
3129
- "勾选列表",
3130
- "复选框"
3715
+ "danh sach",
3716
+ "danh sach kiem tra",
3717
+ "danh sach da kiem tra",
3718
+ "hop kiem"
3131
3719
  ],
3132
- group: "基础"
3720
+ group: "Khối cơ bản"
3133
3721
  },
3134
3722
  paragraph: {
3135
- title: "段落",
3136
- subtext: "用于文档正文",
3137
- aliases: ["p", "paragraph", "text", "正文"],
3138
- group: "基础"
3723
+ title: "Đoạn văn",
3724
+ subtext: "Sử dụng cho nội dung chính của tài liệu",
3725
+ aliases: ["p", "doanvan"],
3726
+ group: "Khối cơ bản"
3139
3727
  },
3140
3728
  table: {
3141
- title: "表格",
3142
- subtext: "使用表格",
3143
- aliases: ["table", "表格"],
3144
- group: "高级功能"
3729
+ title: "Bảng",
3730
+ subtext: "Sử dụng để tạo bảng",
3731
+ aliases: ["bang"],
3732
+ group: "Nâng cao"
3145
3733
  },
3146
3734
  image: {
3147
- title: "图片",
3148
- subtext: "插入图片",
3149
- aliases: [
3150
- "图片",
3151
- "上传图片",
3152
- "上传",
3153
- "image",
3154
- "img",
3155
- "相册",
3156
- "媒体",
3157
- "url"
3158
- ],
3159
- group: "媒体"
3735
+ title: "Hình ảnh",
3736
+ subtext: "Chèn hình ảnh",
3737
+ aliases: ["anh", "tai-len-anh", "tai-len", "img", "hinh", "media", "url"],
3738
+ group: "Phương tiện"
3160
3739
  },
3161
3740
  video: {
3162
- title: "视频",
3163
- subtext: "插入视频",
3741
+ title: "Video",
3742
+ subtext: "Chèn video",
3164
3743
  aliases: [
3165
- "视频",
3166
- "视频上传",
3167
- "上传",
3168
3744
  "video",
3745
+ "tai-len-video",
3746
+ "tai-len",
3169
3747
  "mp4",
3170
- "电影",
3171
- "媒体",
3172
- "url",
3173
- "驱动",
3174
- "dropbox"
3748
+ "phim",
3749
+ "media",
3750
+ "url"
3175
3751
  ],
3176
- group: "媒体"
3752
+ group: "Phương tiện"
3177
3753
  },
3178
3754
  audio: {
3179
- title: "音频",
3180
- subtext: "插入音频",
3755
+ title: "Âm thanh",
3756
+ subtext: "Chèn âm thanh",
3181
3757
  aliases: [
3182
- "音频",
3183
- "音频上传",
3184
- "上传",
3185
- "audio",
3758
+ "âm thanh",
3759
+ "tai-len-am-thanh",
3760
+ "tai-len",
3186
3761
  "mp3",
3187
- "声音",
3188
- "媒体",
3189
- "url",
3190
- "驱动",
3191
- "dropbox"
3762
+ "am thanh",
3763
+ "media",
3764
+ "url"
3192
3765
  ],
3193
- group: "媒体"
3766
+ group: "Phương tiện"
3194
3767
  },
3195
3768
  file: {
3196
- title: "文件",
3197
- subtext: "插入文件",
3198
- aliases: ["文件", "上传", "file", "嵌入", "媒体", "url"],
3199
- group: "媒体"
3769
+ title: "Tệp",
3770
+ subtext: "Chèn tệp",
3771
+ aliases: ["tep", "tai-len", "nhung", "media", "url"],
3772
+ group: "Phương tiện"
3200
3773
  },
3201
3774
  emoji: {
3202
- title: "表情符号",
3203
- subtext: "用于插入表情符号",
3775
+ title: "Biểu tượng cảm xúc",
3776
+ subtext: "Dùng để chèn biểu tượng cảm xúc",
3204
3777
  aliases: [
3205
- "表情符号",
3778
+ "biểu tượng cảm xúc",
3206
3779
  "emoji",
3207
- "face",
3208
- "emote",
3209
- "表情",
3210
- "表情表达",
3211
- "表情"
3780
+ "emoticon",
3781
+ "cảm xúc expression",
3782
+ "khuôn mặt",
3783
+ "face"
3212
3784
  ],
3213
- group: "其他"
3785
+ group: "Khác"
3214
3786
  }
3215
3787
  },
3216
3788
  placeholders: {
3217
- default: "输入 '/' 以使用命令",
3218
- heading: "标题",
3219
- bulletListItem: "列表",
3220
- numberedListItem: "列表",
3221
- checkListItem: "列表"
3789
+ default: "Nhập văn bản hoặc gõ '/' để thêm định dạng",
3790
+ heading: "Tiêu đề",
3791
+ bulletListItem: "Danh sách",
3792
+ numberedListItem: "Danh sách",
3793
+ checkListItem: "Danh sách"
3222
3794
  },
3223
3795
  file_blocks: {
3224
3796
  image: {
3225
- add_button_text: "添加图片"
3797
+ add_button_text: "Thêm ảnh"
3226
3798
  },
3227
3799
  video: {
3228
- add_button_text: "添加视频"
3800
+ add_button_text: "Thêm video"
3229
3801
  },
3230
3802
  audio: {
3231
- add_button_text: "添加音频"
3803
+ add_button_text: "Thêm âm thanh"
3232
3804
  },
3233
3805
  file: {
3234
- add_button_text: "添加文件"
3806
+ add_button_text: "Thêm tệp"
3235
3807
  }
3236
3808
  },
3237
- // from react package:
3809
+ // từ gói phản ứng:
3238
3810
  side_menu: {
3239
- add_block_label: "添加块",
3240
- drag_handle_label: "打开菜单"
3811
+ add_block_label: "Thêm khối",
3812
+ drag_handle_label: "Mở trình đơn khối"
3241
3813
  },
3242
3814
  drag_handle: {
3243
- delete_menuitem: "删除",
3244
- colors_menuitem: "颜色"
3815
+ delete_menuitem: "Xóa",
3816
+ colors_menuitem: "Màu sắc"
3245
3817
  },
3246
- table_handle: {
3247
- delete_column_menuitem: "删除列",
3248
- delete_row_menuitem: "删除行",
3249
- add_left_menuitem: "左侧添加列",
3250
- add_right_menuitem: "右侧添加列",
3251
- add_above_menuitem: "上方添加行",
3252
- add_below_menuitem: "下方添加行"
3818
+ table_handle: {
3819
+ delete_column_menuitem: "Xóa cột",
3820
+ delete_row_menuitem: "Xóa hàng",
3821
+ add_left_menuitem: "Thêm cột bên trái",
3822
+ add_right_menuitem: "Thêm cột bên phải",
3823
+ add_above_menuitem: "Thêm hàng phía trên",
3824
+ add_below_menuitem: "Thêm hàng phía dưới"
3253
3825
  },
3254
3826
  suggestion_menu: {
3255
- no_items_title: "无匹配项",
3256
- loading: "加载中…"
3827
+ no_items_title: "Không tìm thấy mục nào",
3828
+ loading: "Đang tải..."
3257
3829
  },
3258
3830
  color_picker: {
3259
- text_title: "文本",
3260
- background_title: "背景色",
3831
+ text_title: "Văn bản",
3832
+ background_title: "Nền",
3261
3833
  colors: {
3262
- default: "默认",
3263
- gray: "灰色",
3264
- brown: "棕色",
3265
- red: "红色",
3266
- orange: "橙色",
3267
- yellow: "黄色",
3268
- green: "绿色",
3269
- blue: "蓝色",
3270
- purple: "紫色",
3271
- pink: "粉色"
3834
+ default: "Mặc định",
3835
+ gray: "Xám",
3836
+ brown: "Nâu",
3837
+ red: "Đỏ",
3838
+ orange: "Cam",
3839
+ yellow: "Vàng",
3840
+ green: "Xanh lá",
3841
+ blue: "Xanh dương",
3842
+ purple: "Tím",
3843
+ pink: "Hồng"
3272
3844
  }
3273
3845
  },
3274
3846
  formatting_toolbar: {
3275
3847
  bold: {
3276
- tooltip: "加粗",
3848
+ tooltip: "In đậm",
3277
3849
  secondary_tooltip: "Mod+B"
3278
3850
  },
3279
3851
  italic: {
3280
- tooltip: "斜体",
3852
+ tooltip: "In nghiêng",
3281
3853
  secondary_tooltip: "Mod+I"
3282
3854
  },
3283
3855
  underline: {
3284
- tooltip: "下划线",
3856
+ tooltip: "Gạch dưới",
3285
3857
  secondary_tooltip: "Mod+U"
3286
3858
  },
3287
3859
  strike: {
3288
- tooltip: "删除线",
3860
+ tooltip: "Gạch ngang",
3289
3861
  secondary_tooltip: "Mod+Shift+X"
3290
3862
  },
3291
3863
  code: {
3292
- tooltip: "代码标记",
3864
+ tooltip: "Code",
3293
3865
  secondary_tooltip: ""
3294
3866
  },
3295
3867
  colors: {
3296
- tooltip: "颜色"
3868
+ tooltip: "Màu sắc"
3297
3869
  },
3298
3870
  link: {
3299
- tooltip: "添加链接",
3871
+ tooltip: "Tạo liên kết",
3300
3872
  secondary_tooltip: "Mod+K"
3301
3873
  },
3302
3874
  file_caption: {
3303
- tooltip: "编辑标题",
3304
- input_placeholder: "编辑标题"
3875
+ tooltip: "Chỉnh sửa chú thích",
3876
+ input_placeholder: "Chỉnh sửa chú thích"
3305
3877
  },
3306
3878
  file_replace: {
3307
3879
  tooltip: {
3308
- image: "替换图片",
3309
- video: "替换视频",
3310
- audio: "替换音频",
3311
- file: "替换文件"
3880
+ image: "Thay thế hình ảnh",
3881
+ video: "Thay thế video",
3882
+ audio: "Thay thế âm thanh",
3883
+ file: "Thay thế tệp"
3312
3884
  }
3313
3885
  },
3314
3886
  file_rename: {
3315
3887
  tooltip: {
3316
- image: "重命名图片",
3317
- video: "重命名视频",
3318
- audio: "重命名音频",
3319
- file: "重命名文件"
3888
+ image: "Đổi tên hình ảnh",
3889
+ video: "Đổi tên video",
3890
+ audio: "Đổi tên âm thanh",
3891
+ file: "Đổi tên tệp"
3320
3892
  },
3321
3893
  input_placeholder: {
3322
- image: "重命名图片",
3323
- video: "重命名视频",
3324
- audio: "重命名音频",
3325
- file: "重命名文件"
3894
+ image: "Đổi tên hình ảnh",
3895
+ video: "Đổi tên video",
3896
+ audio: "Đổi tên âm thanh",
3897
+ file: "Đổi tên tệp"
3326
3898
  }
3327
3899
  },
3328
3900
  file_download: {
3329
3901
  tooltip: {
3330
- image: "下载图片",
3331
- video: "下载视频",
3332
- audio: "下载音频",
3333
- file: "下载文件"
3902
+ image: "Tải xuống hình ảnh",
3903
+ video: "Tải xuống video",
3904
+ audio: "Tải xuống âm thanh",
3905
+ file: "Tải xuống tệp"
3334
3906
  }
3335
3907
  },
3336
3908
  file_delete: {
3337
3909
  tooltip: {
3338
- image: "删除图片",
3339
- video: "删除视频",
3340
- audio: "删除音频",
3341
- file: "删除文件"
3910
+ image: "Xóa hình ảnh",
3911
+ video: "Xóa video",
3912
+ audio: "Xóa âm thanh",
3913
+ file: "Xóa tệp"
3342
3914
  }
3343
3915
  },
3344
3916
  file_preview_toggle: {
3345
- tooltip: "切换预览"
3917
+ tooltip: "Chuyển đổi xem trước"
3346
3918
  },
3347
3919
  nest: {
3348
- tooltip: "嵌套",
3920
+ tooltip: "Lồng khối",
3349
3921
  secondary_tooltip: "Tab"
3350
3922
  },
3351
3923
  unnest: {
3352
- tooltip: "取消嵌套",
3924
+ tooltip: "Bỏ lồng khối",
3353
3925
  secondary_tooltip: "Shift+Tab"
3354
3926
  },
3355
3927
  align_left: {
3356
- tooltip: "左对齐"
3928
+ tooltip: "Căn trái văn bản"
3357
3929
  },
3358
3930
  align_center: {
3359
- tooltip: "居中"
3931
+ tooltip: "Căn giữa văn bản"
3360
3932
  },
3361
3933
  align_right: {
3362
- tooltip: "右对齐"
3934
+ tooltip: "Căn phải văn bản"
3363
3935
  },
3364
3936
  align_justify: {
3365
- tooltip: "文本对齐"
3937
+ tooltip: "Căn đều văn bản"
3366
3938
  }
3367
3939
  },
3368
3940
  file_panel: {
3369
3941
  upload: {
3370
- title: "上传",
3942
+ title: "Tải lên",
3371
3943
  file_placeholder: {
3372
- image: "上传图片",
3373
- video: "上传视频",
3374
- audio: "上传音频",
3375
- file: "上传文件"
3944
+ image: "Tải lên hình ảnh",
3945
+ video: "Tải lên video",
3946
+ audio: "Tải lên âm thanh",
3947
+ file: "Tải lên tệp"
3376
3948
  },
3377
- upload_error: "Error:上传失败"
3949
+ upload_error: "Lỗi: Tải lên thất bại"
3378
3950
  },
3379
3951
  embed: {
3380
- title: "嵌入",
3952
+ title: "Nhúng",
3381
3953
  embed_button: {
3382
- image: "嵌入图片",
3383
- video: "嵌入视频",
3384
- audio: "嵌入音频",
3385
- file: "嵌入文件"
3954
+ image: "Nhúng hình ảnh",
3955
+ video: "Nhúng video",
3956
+ audio: "Nhúng âm thanh",
3957
+ file: "Nhúng tệp"
3386
3958
  },
3387
- url_placeholder: "输入图片地址"
3959
+ url_placeholder: "Nhập URL"
3388
3960
  }
3389
3961
  },
3390
3962
  link_toolbar: {
3391
3963
  delete: {
3392
- tooltip: "清除链接"
3964
+ tooltip: "Xóa liên kết"
3393
3965
  },
3394
3966
  edit: {
3395
- text: "编辑链接",
3396
- tooltip: "编辑"
3967
+ text: "Chỉnh sửa liên kết",
3968
+ tooltip: "Chỉnh sửa"
3397
3969
  },
3398
3970
  open: {
3399
- tooltip: "新窗口打开"
3971
+ tooltip: "Mở trong tab mới"
3400
3972
  },
3401
3973
  form: {
3402
- title_placeholder: "编辑标题",
3403
- url_placeholder: "编辑链接地址"
3974
+ title_placeholder: "Chỉnh sửa tiêu đề",
3975
+ url_placeholder: "Chỉnh sửa URL"
3404
3976
  }
3405
3977
  },
3406
3978
  generic: {
3407
3979
  ctrl_shortcut: "Ctrl"
3408
3980
  }
3409
- }, Bo = {
3981
+ }, Io = {
3410
3982
  slash_menu: {
3411
3983
  heading: {
3412
- title: "Заголовок 1 уровня",
3413
- subtext: "Используется для заголовка верхнего уровня",
3414
- aliases: ["h", "heading1", "h1", "заголовок1"],
3415
- group: "Заголовки"
3984
+ title: "一级标题",
3985
+ subtext: "用于顶级标题",
3986
+ aliases: ["h", "heading1", "h1", "标题", "一级标题"],
3987
+ group: "标题"
3416
3988
  },
3417
3989
  heading_2: {
3418
- title: "Заголовок 2 уровня",
3419
- subtext: "Используется для ключевых разделов",
3420
- aliases: ["h2", "heading2", "subheading", "заголовок2", "подзаголовок"],
3421
- group: "Заголовки"
3990
+ title: "二级标题",
3991
+ subtext: "用于关键部分",
3992
+ aliases: ["h2", "heading2", "subheading", "标题", "二级标题", "副标题"],
3993
+ group: "标题"
3422
3994
  },
3423
3995
  heading_3: {
3424
- title: "Заголовок 3 уровня",
3425
- subtext: "Используется для подразделов и групп",
3426
- aliases: ["h3", "heading3", "subheading", "заголовок3", "подзаголовок"],
3427
- group: "Заголовки"
3996
+ title: "三级标题",
3997
+ subtext: "用于小节和分组标题",
3998
+ aliases: ["h3", "heading3", "subheading", "标题", "三级标题"],
3999
+ group: "标题"
3428
4000
  },
3429
4001
  numbered_list: {
3430
- title: "Нумерованный список",
3431
- subtext: "Используется для отображения нумерованного списка",
4002
+ title: "有序列表",
4003
+ subtext: "用于显示有序列表",
3432
4004
  aliases: [
3433
4005
  "ol",
3434
4006
  "li",
3435
4007
  "list",
3436
4008
  "numberedlist",
3437
4009
  "numbered list",
3438
- "список",
3439
- "нумерованный список"
4010
+ "列表",
4011
+ "有序列表"
3440
4012
  ],
3441
- group: "Базовые блоки"
4013
+ group: "基础"
3442
4014
  },
3443
4015
  bullet_list: {
3444
- title: "Маркированный список",
3445
- subtext: "Для отображения неупорядоченного списка.",
4016
+ title: "无序列表",
4017
+ subtext: "用于显示无序列表",
3446
4018
  aliases: [
3447
4019
  "ul",
3448
4020
  "li",
3449
4021
  "list",
3450
4022
  "bulletlist",
3451
4023
  "bullet list",
3452
- "список",
3453
- "маркированный список"
4024
+ "列表",
4025
+ "无序列表"
3454
4026
  ],
3455
- group: "Базовые блоки"
4027
+ group: "基础"
3456
4028
  },
3457
4029
  check_list: {
3458
- title: "Контрольный список",
3459
- subtext: "Для отображения списка с флажками",
4030
+ title: "检查清单",
4031
+ subtext: "用于显示带有复选框的列表",
3460
4032
  aliases: [
3461
4033
  "ul",
3462
4034
  "li",
3463
- "list",
3464
4035
  "checklist",
3465
- "check list",
3466
4036
  "checked list",
3467
- "checkbox",
3468
- "список"
4037
+ "列表",
4038
+ "检查清单",
4039
+ "勾选列表",
4040
+ "复选框"
3469
4041
  ],
3470
- group: "Базовые блоки"
4042
+ group: "基础"
3471
4043
  },
3472
4044
  paragraph: {
3473
- title: "Параграф",
3474
- subtext: "Основной текст",
3475
- aliases: ["p", "paragraph", "параграф"],
3476
- group: "Базовые блоки"
4045
+ title: "段落",
4046
+ subtext: "用于文档正文",
4047
+ aliases: ["p", "paragraph", "text", "正文"],
4048
+ group: "基础"
3477
4049
  },
3478
4050
  table: {
3479
- title: "Таблица",
3480
- subtext: "Используется для таблиц",
3481
- aliases: ["table", "таблица"],
3482
- group: "Продвинутый"
4051
+ title: "表格",
4052
+ subtext: "使用表格",
4053
+ aliases: ["table", "表格"],
4054
+ group: "高级功能"
3483
4055
  },
3484
4056
  image: {
3485
- title: "Картинка",
3486
- subtext: "Вставить изображение",
4057
+ title: "图片",
4058
+ subtext: "插入图片",
3487
4059
  aliases: [
4060
+ "图片",
4061
+ "上传图片",
4062
+ "上传",
3488
4063
  "image",
3489
- "imageUpload",
3490
- "upload",
3491
4064
  "img",
3492
- "picture",
3493
- "media",
3494
- "url",
3495
- "загрузка",
3496
- "картинка",
3497
- "рисунок"
4065
+ "相册",
4066
+ "媒体",
4067
+ "url"
3498
4068
  ],
3499
- group: "Медиа"
4069
+ group: "媒体"
3500
4070
  },
3501
4071
  video: {
3502
- title: "Видео",
3503
- subtext: "Вставить видео",
4072
+ title: "视频",
4073
+ subtext: "插入视频",
3504
4074
  aliases: [
4075
+ "视频",
4076
+ "视频上传",
4077
+ "上传",
3505
4078
  "video",
3506
- "videoUpload",
3507
- "upload",
3508
4079
  "mp4",
3509
- "film",
3510
- "media",
4080
+ "电影",
4081
+ "媒体",
3511
4082
  "url",
3512
- "загрузка",
3513
- "видео"
4083
+ "驱动",
4084
+ "dropbox"
3514
4085
  ],
3515
- group: "Медиа"
4086
+ group: "媒体"
3516
4087
  },
3517
4088
  audio: {
3518
- title: "Аудио",
3519
- subtext: "Вставить аудио",
4089
+ title: "音频",
4090
+ subtext: "插入音频",
3520
4091
  aliases: [
4092
+ "音频",
4093
+ "音频上传",
4094
+ "上传",
3521
4095
  "audio",
3522
- "audioUpload",
3523
- "upload",
3524
4096
  "mp3",
3525
- "sound",
3526
- "media",
4097
+ "声音",
4098
+ "媒体",
3527
4099
  "url",
3528
- "загрузка",
3529
- "аудио",
3530
- "звук",
3531
- "музыка"
4100
+ "驱动",
4101
+ "dropbox"
3532
4102
  ],
3533
- group: "Медиа"
4103
+ group: "媒体"
3534
4104
  },
3535
4105
  file: {
3536
- title: "Файл",
3537
- subtext: "Вставить файл",
3538
- aliases: ["file", "upload", "embed", "media", "url", "загрузка", "файл"],
3539
- group: "Медиа"
4106
+ title: "文件",
4107
+ subtext: "插入文件",
4108
+ aliases: ["文件", "上传", "file", "嵌入", "媒体", "url"],
4109
+ group: "媒体"
3540
4110
  },
3541
4111
  emoji: {
3542
- title: "Эмодзи",
3543
- subtext: "Используется для вставки эмодзи",
3544
- aliases: ["эмодзи", "смайлик", "выражение эмоций", "лицо"],
3545
- group: "Прочее"
4112
+ title: "表情符号",
4113
+ subtext: "用于插入表情符号",
4114
+ aliases: [
4115
+ "表情符号",
4116
+ "emoji",
4117
+ "face",
4118
+ "emote",
4119
+ "表情",
4120
+ "表情表达",
4121
+ "表情"
4122
+ ],
4123
+ group: "其他"
3546
4124
  }
3547
4125
  },
3548
4126
  placeholders: {
3549
- default: "Ведите текст или введите «/» для команд",
3550
- heading: "Заголовок",
3551
- bulletListItem: "Список",
3552
- numberedListItem: "Список",
3553
- checkListItem: "Список"
4127
+ default: "输入 '/' 以使用命令",
4128
+ heading: "标题",
4129
+ bulletListItem: "列表",
4130
+ numberedListItem: "列表",
4131
+ checkListItem: "列表"
3554
4132
  },
3555
4133
  file_blocks: {
3556
4134
  image: {
3557
- add_button_text: "Добавить изображение"
4135
+ add_button_text: "添加图片"
3558
4136
  },
3559
4137
  video: {
3560
- add_button_text: "Добавить видео"
4138
+ add_button_text: "添加视频"
3561
4139
  },
3562
4140
  audio: {
3563
- add_button_text: "Добавить аудио"
4141
+ add_button_text: "添加音频"
3564
4142
  },
3565
4143
  file: {
3566
- add_button_text: "Добавить файл"
4144
+ add_button_text: "添加文件"
3567
4145
  }
3568
4146
  },
3569
4147
  // from react package:
3570
4148
  side_menu: {
3571
- add_block_label: "Добавить блок",
3572
- drag_handle_label: "Открыть меню блока"
4149
+ add_block_label: "添加块",
4150
+ drag_handle_label: "打开菜单"
3573
4151
  },
3574
4152
  drag_handle: {
3575
- delete_menuitem: "Удалить",
3576
- colors_menuitem: "Цвета"
4153
+ delete_menuitem: "删除",
4154
+ colors_menuitem: "颜色"
3577
4155
  },
3578
4156
  table_handle: {
3579
- delete_column_menuitem: "Удалить столбец",
3580
- delete_row_menuitem: "Удалить строку",
3581
- add_left_menuitem: "Добавить столбец слева",
3582
- add_right_menuitem: "Добавить столбец справа",
3583
- add_above_menuitem: "Добавить строку выше",
3584
- add_below_menuitem: "Добавить строку ниже"
4157
+ delete_column_menuitem: "删除列",
4158
+ delete_row_menuitem: "删除行",
4159
+ add_left_menuitem: "左侧添加列",
4160
+ add_right_menuitem: "右侧添加列",
4161
+ add_above_menuitem: "上方添加行",
4162
+ add_below_menuitem: "下方添加行"
3585
4163
  },
3586
4164
  suggestion_menu: {
3587
- no_items_title: "ничего не найдено",
3588
- loading: "Загрузка…"
4165
+ no_items_title: "无匹配项",
4166
+ loading: "加载中…"
3589
4167
  },
3590
4168
  color_picker: {
3591
- text_title: "Текст",
3592
- background_title: "Задний фон",
4169
+ text_title: "文本",
4170
+ background_title: "背景色",
3593
4171
  colors: {
3594
- default: "По умолчинию",
3595
- gray: "Серый",
3596
- brown: "Коричневый",
3597
- red: "Красный",
3598
- orange: "Оранжевый",
3599
- yellow: "Жёлтый",
3600
- green: "Зелёный",
3601
- blue: "Голубой",
3602
- purple: "Фиолетовый",
3603
- pink: "Розовый"
4172
+ default: "默认",
4173
+ gray: "灰色",
4174
+ brown: "棕色",
4175
+ red: "红色",
4176
+ orange: "橙色",
4177
+ yellow: "黄色",
4178
+ green: "绿色",
4179
+ blue: "蓝色",
4180
+ purple: "紫色",
4181
+ pink: "粉色"
3604
4182
  }
3605
4183
  },
3606
4184
  formatting_toolbar: {
3607
4185
  bold: {
3608
- tooltip: "Жирный",
4186
+ tooltip: "加粗",
3609
4187
  secondary_tooltip: "Mod+B"
3610
4188
  },
3611
4189
  italic: {
3612
- tooltip: "Курсив",
4190
+ tooltip: "斜体",
3613
4191
  secondary_tooltip: "Mod+I"
3614
4192
  },
3615
4193
  underline: {
3616
- tooltip: "Подчёркнутый",
4194
+ tooltip: "下划线",
3617
4195
  secondary_tooltip: "Mod+U"
3618
4196
  },
3619
4197
  strike: {
3620
- tooltip: "Зачёркнутый",
4198
+ tooltip: "删除线",
3621
4199
  secondary_tooltip: "Mod+Shift+X"
3622
4200
  },
3623
4201
  code: {
3624
- tooltip: "Код",
4202
+ tooltip: "代码标记",
3625
4203
  secondary_tooltip: ""
3626
4204
  },
3627
4205
  colors: {
3628
- tooltip: "Цвета"
4206
+ tooltip: "颜色"
3629
4207
  },
3630
4208
  link: {
3631
- tooltip: "Создать ссылку",
4209
+ tooltip: "添加链接",
3632
4210
  secondary_tooltip: "Mod+K"
3633
4211
  },
3634
4212
  file_caption: {
3635
- tooltip: "Изменить подпись",
3636
- input_placeholder: "Изменить подпись"
4213
+ tooltip: "编辑标题",
4214
+ input_placeholder: "编辑标题"
3637
4215
  },
3638
4216
  file_replace: {
3639
4217
  tooltip: {
3640
- image: "Заменить изображение",
3641
- video: "Заменить видео",
3642
- audio: "Заменить аудио",
3643
- file: "Заменить файл"
4218
+ image: "替换图片",
4219
+ video: "替换视频",
4220
+ audio: "替换音频",
4221
+ file: "替换文件"
3644
4222
  }
3645
4223
  },
3646
4224
  file_rename: {
3647
4225
  tooltip: {
3648
- image: "Переименовать изображение",
3649
- video: "Переименовать видео",
3650
- audio: "Переименовать аудио",
3651
- file: "Переименовать файл"
4226
+ image: "重命名图片",
4227
+ video: "重命名视频",
4228
+ audio: "重命名音频",
4229
+ file: "重命名文件"
3652
4230
  },
3653
4231
  input_placeholder: {
3654
- image: "Переименовать изображение",
3655
- video: "Переименовать видео",
3656
- audio: "Переименовать аудио",
3657
- file: "Переименовать файл"
4232
+ image: "重命名图片",
4233
+ video: "重命名视频",
4234
+ audio: "重命名音频",
4235
+ file: "重命名文件"
3658
4236
  }
3659
4237
  },
3660
4238
  file_download: {
3661
4239
  tooltip: {
3662
- image: "Скачать картинку",
3663
- video: "Скачать видео",
3664
- audio: "Скачать аудио",
3665
- file: "Скачать файл"
4240
+ image: "下载图片",
4241
+ video: "下载视频",
4242
+ audio: "下载音频",
4243
+ file: "下载文件"
3666
4244
  }
3667
4245
  },
3668
4246
  file_delete: {
3669
4247
  tooltip: {
3670
- image: "Удалить картинку",
3671
- video: "Удалить видео",
3672
- audio: "Удалить аудио",
3673
- file: "Скачать файл"
4248
+ image: "删除图片",
4249
+ video: "删除视频",
4250
+ audio: "删除音频",
4251
+ file: "删除文件"
3674
4252
  }
3675
4253
  },
3676
4254
  file_preview_toggle: {
3677
- tooltip: "Переключить предварительный просмотр"
4255
+ tooltip: "切换预览"
3678
4256
  },
3679
4257
  nest: {
3680
- tooltip: "Сдвинуть вправо",
4258
+ tooltip: "嵌套",
3681
4259
  secondary_tooltip: "Tab"
3682
4260
  },
3683
4261
  unnest: {
3684
- tooltip: "Сдвинуть влево",
4262
+ tooltip: "取消嵌套",
3685
4263
  secondary_tooltip: "Shift+Tab"
3686
4264
  },
3687
4265
  align_left: {
3688
- tooltip: "Текст по левому краю"
4266
+ tooltip: "左对齐"
3689
4267
  },
3690
4268
  align_center: {
3691
- tooltip: "Текст по середине"
4269
+ tooltip: "居中"
3692
4270
  },
3693
4271
  align_right: {
3694
- tooltip: "Текст по правому краю"
4272
+ tooltip: "右对齐"
3695
4273
  },
3696
4274
  align_justify: {
3697
- tooltip: "По середине текст"
4275
+ tooltip: "文本对齐"
3698
4276
  }
3699
4277
  },
3700
4278
  file_panel: {
3701
4279
  upload: {
3702
- title: "Загрузить",
4280
+ title: "上传",
3703
4281
  file_placeholder: {
3704
- image: "Загрузить картинки",
3705
- video: "Загрузить видео",
3706
- audio: "Загрузить аудио",
3707
- file: "Загрузить файл"
4282
+ image: "上传图片",
4283
+ video: "上传视频",
4284
+ audio: "上传音频",
4285
+ file: "上传文件"
3708
4286
  },
3709
- upload_error: "Ошибка: не удалось загрузить"
4287
+ upload_error: "Error:上传失败"
3710
4288
  },
3711
4289
  embed: {
3712
- title: "Вставить",
4290
+ title: "嵌入",
3713
4291
  embed_button: {
3714
- image: "Вставить картинку",
3715
- video: "Вставить видео",
3716
- audio: "Вставить аудио",
3717
- file: "Вставить файл"
4292
+ image: "嵌入图片",
4293
+ video: "嵌入视频",
4294
+ audio: "嵌入音频",
4295
+ file: "嵌入文件"
3718
4296
  },
3719
- url_placeholder: "Введите URL"
4297
+ url_placeholder: "输入图片地址"
3720
4298
  }
3721
4299
  },
3722
4300
  link_toolbar: {
3723
4301
  delete: {
3724
- tooltip: "Удалить ссылку"
4302
+ tooltip: "清除链接"
3725
4303
  },
3726
4304
  edit: {
3727
- text: "Изменить ссылку",
3728
- tooltip: "Редактировать"
4305
+ text: "编辑链接",
4306
+ tooltip: "编辑"
3729
4307
  },
3730
4308
  open: {
3731
- tooltip: "Открыть в новой вкладке"
4309
+ tooltip: "新窗口打开"
3732
4310
  },
3733
4311
  form: {
3734
- title_placeholder: "Изменить заголовок",
3735
- url_placeholder: "Изменить URL"
4312
+ title_placeholder: "编辑标题",
4313
+ url_placeholder: "编辑链接地址"
3736
4314
  }
3737
4315
  },
3738
4316
  generic: {
3739
4317
  ctrl_shortcut: "Ctrl"
3740
4318
  }
3741
- }, jr = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
4319
+ }, zr = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
3742
4320
  __proto__: null,
3743
- ar: _o,
4321
+ ar: ko,
4322
+ de: yo,
3744
4323
  en: et,
3745
- fr: yo,
3746
- is: wo,
3747
- ja: vo,
3748
- ko: xo,
3749
- nl: Eo,
3750
- pl: Co,
3751
- pt: So,
4324
+ es: vo,
4325
+ fr: wo,
4326
+ is: xo,
4327
+ ja: Eo,
4328
+ ko: Co,
4329
+ nl: So,
4330
+ pl: Mo,
4331
+ pt: To,
3752
4332
  ru: Bo,
3753
- vi: Mo,
3754
- zh: To
4333
+ vi: Lo,
4334
+ zh: Io
3755
4335
  }, Symbol.toStringTag, { value: "Module" }));
3756
- function Lo(e, t = JSON.stringify) {
4336
+ function Ao(e, t = JSON.stringify) {
3757
4337
  const o = {};
3758
4338
  return e.filter((i) => {
3759
4339
  const n = t(i);
3760
4340
  return Object.prototype.hasOwnProperty.call(o, n) ? !1 : o[n] = !0;
3761
4341
  });
3762
4342
  }
3763
- function Io(e) {
4343
+ function No(e) {
3764
4344
  const t = e.filter(
3765
4345
  (i, n) => e.indexOf(i) !== n
3766
4346
  );
3767
- return Lo(t);
4347
+ return Ao(t);
3768
4348
  }
3769
4349
  const oe = M.create({
3770
4350
  name: "uniqueID",
@@ -3852,7 +4432,7 @@ const oe = M.create({
3852
4432
  n.doc,
3853
4433
  m,
3854
4434
  (T) => l.includes(T.type.name)
3855
- ), b = g.map(({ node: T }) => T.attrs[d]).filter((T) => T !== null), A = Io(b);
4435
+ ), b = g.map(({ node: T }) => T.attrs[d]).filter((T) => T !== null), A = No(b);
3856
4436
  g.forEach(({ node: T, pos: N }) => {
3857
4437
  let Z;
3858
4438
  const Pe = (Z = s.doc.nodeAt(N)) === null || Z === void 0 ? void 0 : Z.attrs[d];
@@ -3937,7 +4517,7 @@ const oe = M.create({
3937
4517
  s.push(d);
3938
4518
  }), L.from(s);
3939
4519
  };
3940
- return t = !1, new j(
4520
+ return t = !1, new D(
3941
4521
  r(o.content),
3942
4522
  o.openStart,
3943
4523
  o.openEnd
@@ -3958,7 +4538,7 @@ function tt(e) {
3958
4538
  numChildBlocks: n
3959
4539
  };
3960
4540
  }
3961
- function k(e, t) {
4541
+ function _(e, t) {
3962
4542
  const i = e.nodeSize - 2;
3963
4543
  if (t <= 1)
3964
4544
  for (t = 2; e.resolve(t).parent.type.name !== "blockContainer" && t < i; )
@@ -3990,7 +4570,7 @@ function k(e, t) {
3990
4570
  depth: s
3991
4571
  };
3992
4572
  }
3993
- function Ve(e) {
4573
+ function ze(e) {
3994
4574
  return e.type === "link";
3995
4575
  }
3996
4576
  function ot(e) {
@@ -4004,7 +4584,7 @@ class I extends Error {
4004
4584
  super(`Unreachable case: ${t}`);
4005
4585
  }
4006
4586
  }
4007
- function Dr(e, t = !0) {
4587
+ function Rr(e, t = !0) {
4008
4588
  const { "data-test": o, ...i } = e;
4009
4589
  if (Object.keys(i).length > 0 && t)
4010
4590
  throw new Error("Object must be empty " + JSON.stringify(e));
@@ -4025,11 +4605,11 @@ function Re(e, t, o) {
4025
4605
  return e.text.split(/(\n)/g).filter((n) => n.length > 0).map((n) => n === `
4026
4606
  ` ? t.nodes.hardBreak.create() : t.text(n, i));
4027
4607
  }
4028
- function Ao(e, t, o) {
4608
+ function Po(e, t, o) {
4029
4609
  const i = t.marks.link.create({
4030
4610
  href: e.href
4031
4611
  });
4032
- return ve(e.content, t, o).map(
4612
+ return we(e.content, t, o).map(
4033
4613
  (n) => {
4034
4614
  if (n.type.name === "text")
4035
4615
  return n.mark([...n.marks, i]);
@@ -4039,7 +4619,7 @@ function Ao(e, t, o) {
4039
4619
  }
4040
4620
  );
4041
4621
  }
4042
- function ve(e, t, o) {
4622
+ function we(e, t, o) {
4043
4623
  const i = [];
4044
4624
  if (typeof e == "string")
4045
4625
  return i.push(
@@ -4056,7 +4636,7 @@ function ve(e, t, o) {
4056
4636
  function W(e, t, o) {
4057
4637
  const i = [];
4058
4638
  for (const n of e)
4059
- typeof n == "string" ? i.push(...ve(n, t, o)) : ot(n) ? i.push(...Ao(n, t, o)) : te(n) ? i.push(...ve([n], t, o)) : i.push(
4639
+ typeof n == "string" ? i.push(...we(n, t, o)) : ot(n) ? i.push(...Po(n, t, o)) : te(n) ? i.push(...we([n], t, o)) : i.push(
4060
4640
  nt(n, t, o)
4061
4641
  );
4062
4642
  return i;
@@ -4122,7 +4702,7 @@ function P(e, t, o) {
4122
4702
  r.length > 0 ? [n, a] : n
4123
4703
  );
4124
4704
  }
4125
- function No(e, t, o) {
4705
+ function Ho(e, t, o) {
4126
4706
  const i = {
4127
4707
  type: "tableContent",
4128
4708
  rows: []
@@ -4151,7 +4731,7 @@ function Se(e, t, o) {
4151
4731
  if (te(n))
4152
4732
  n.text += `
4153
4733
  `;
4154
- else if (Ve(n))
4734
+ else if (ze(n))
4155
4735
  n.content[n.content.length - 1].text += `
4156
4736
  `;
4157
4737
  else
@@ -4201,7 +4781,7 @@ function Se(e, t, o) {
4201
4781
  type: "text",
4202
4782
  text: r.textContent,
4203
4783
  styles: a
4204
- }) : Ve(n) && (s ? n.href === s.attrs.href ? JSON.stringify(
4784
+ }) : ze(n) && (s ? n.href === s.attrs.href ? JSON.stringify(
4205
4785
  n.content[n.content.length - 1].styles
4206
4786
  ) === JSON.stringify(a) ? n.content[n.content.length - 1].text += r.textContent : n.content.push({
4207
4787
  type: "text",
@@ -4259,7 +4839,7 @@ function rt(e, t, o) {
4259
4839
  content: r
4260
4840
  };
4261
4841
  }
4262
- function v(e, t, o, i, n) {
4842
+ function w(e, t, o, i, n) {
4263
4843
  if (e.type.name !== "blockContainer")
4264
4844
  throw Error(
4265
4845
  "Node must be of type blockContainer, but is of type" + e.type.name + "."
@@ -4286,7 +4866,7 @@ function v(e, t, o, i, n) {
4286
4866
  const d = t[a.contentType.name], u = [];
4287
4867
  for (let f = 0; f < a.numChildBlocks; f++)
4288
4868
  u.push(
4289
- v(
4869
+ w(
4290
4870
  e.lastChild.child(f),
4291
4871
  t,
4292
4872
  o,
@@ -4302,7 +4882,7 @@ function v(e, t, o, i, n) {
4302
4882
  i
4303
4883
  );
4304
4884
  else if (d.content === "table")
4305
- p = No(
4885
+ p = Ho(
4306
4886
  a.contentNode,
4307
4887
  o,
4308
4888
  i
@@ -4320,14 +4900,14 @@ function v(e, t, o, i, n) {
4320
4900
  };
4321
4901
  return n == null || n.set(e, h), h;
4322
4902
  }
4323
- function Po(e) {
4903
+ function Uo(e) {
4324
4904
  return e.document || window.document;
4325
4905
  }
4326
4906
  const at = (e, t, o, i, n) => {
4327
4907
  if (!o.nodes[e.type.name])
4328
4908
  throw new Error("Serializer is missing a node type: " + e.type.name);
4329
4909
  const { dom: r, contentDOM: a } = xe.renderSpec(
4330
- Po(t),
4910
+ Uo(t),
4331
4911
  o.nodes[e.type.name](e)
4332
4912
  );
4333
4913
  if (a) {
@@ -4337,7 +4917,7 @@ const at = (e, t, o, i, n) => {
4337
4917
  const s = e.childCount > 0 && e.firstChild.type.spec.group === "blockContent" ? e.firstChild : void 0, l = e.childCount > 0 && e.lastChild.type.spec.group === "blockGroup" ? e.lastChild : void 0;
4338
4918
  if (s !== void 0) {
4339
4919
  const d = i.blockImplementations[s.type.name].implementation, p = (n ? d.toExternalHTML : d.toInternalHTML)(
4340
- v(
4920
+ w(
4341
4921
  e,
4342
4922
  i.schema.blockSchema,
4343
4923
  i.schema.inlineContentSchema,
@@ -4370,7 +4950,7 @@ const at = (e, t, o, i, n) => {
4370
4950
  const i = t.serializeFragment(e, o), n = document.createElement("div");
4371
4951
  return n.appendChild(i), n.innerHTML;
4372
4952
  };
4373
- function Ho(e) {
4953
+ function Do(e) {
4374
4954
  const t = /* @__PURE__ */ new Set([
4375
4955
  ...e.orderedListItemBlockTypes,
4376
4956
  ...e.unorderedListItemBlockTypes
@@ -4408,10 +4988,10 @@ function Ho(e) {
4408
4988
  s -= m, n -= m, r = void 0;
4409
4989
  }
4410
4990
  if (h) {
4411
- r || (r = we(
4991
+ r || (r = ve(
4412
4992
  document.createElement(f)
4413
4993
  ));
4414
- const m = we(
4994
+ const m = ve(
4415
4995
  document.createElement("li")
4416
4996
  );
4417
4997
  m.children.push(...u.children), p && m.children.push(...p.children), r.children.push(m);
@@ -4432,7 +5012,7 @@ function Ho(e) {
4432
5012
  }
4433
5013
  const se = (e, t) => {
4434
5014
  const o = xe.fromSchema(e);
4435
- return o.serializeNodeInner = (i, n) => at(i, n, o, t, !0), o.exportProseMirrorFragment = (i, n) => Ee().use(Je, { fragment: !0 }).use(Ho, {
5015
+ return o.serializeNodeInner = (i, n) => at(i, n, o, t, !0), o.exportProseMirrorFragment = (i, n) => Ee().use(Je, { fragment: !0 }).use(Do, {
4436
5016
  orderedListItemBlockTypes: /* @__PURE__ */ new Set(["numberedListItem"]),
4437
5017
  unorderedListItemBlockTypes: /* @__PURE__ */ new Set([
4438
5018
  "bulletListItem",
@@ -4458,24 +5038,30 @@ const se = (e, t) => {
4458
5038
  n
4459
5039
  );
4460
5040
  }, o;
4461
- }, Uo = () => typeof navigator < "u" && (/Mac/.test(navigator.platform) || /AppleWebKit/.test(navigator.userAgent) && /Mobile\/\w+/.test(navigator.userAgent));
5041
+ }, C = (e) => {
5042
+ const { contentType: t } = _(
5043
+ e.state.doc,
5044
+ e.state.selection.from
5045
+ );
5046
+ return t.spec.content;
5047
+ }, jo = () => typeof navigator < "u" && (/Mac/.test(navigator.platform) || /AppleWebKit/.test(navigator.userAgent) && /Mobile\/\w+/.test(navigator.userAgent));
4462
5048
  function H(e, t = "Ctrl") {
4463
- return Uo() ? e.replace("Mod", "⌘") : e.replace("Mod", t);
5049
+ return jo() ? e.replace("Mod", "⌘") : e.replace("Mod", t);
4464
5050
  }
4465
- function D(...e) {
5051
+ function j(...e) {
4466
5052
  return e.filter((t) => t).join(" ");
4467
5053
  }
4468
5054
  const Vr = () => /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
4469
- function V(e, t, o, i) {
5055
+ function z(e, t, o, i) {
4470
5056
  const n = document.createElement("div");
4471
- n.className = D(
5057
+ n.className = j(
4472
5058
  "bn-block-content",
4473
5059
  o.class
4474
5060
  ), n.setAttribute("data-content-type", e);
4475
5061
  for (const [a, s] of Object.entries(o))
4476
5062
  a !== "class" && n.setAttribute(a, s);
4477
5063
  const r = document.createElement(t);
4478
- r.className = D(
5064
+ r.className = j(
4479
5065
  "bn-inline-content",
4480
5066
  i.class
4481
5067
  );
@@ -4488,7 +5074,7 @@ function V(e, t, o, i) {
4488
5074
  contentDOM: r
4489
5075
  };
4490
5076
  }
4491
- const Oe = (e, t) => {
5077
+ const Ve = (e, t) => {
4492
5078
  const o = P(e, t.pmSchema, t.schema.styleSchema).firstChild, i = t.pmSchema.nodes[o.type.name].spec.toDOM;
4493
5079
  if (i === void 0)
4494
5080
  throw new Error(
@@ -4500,7 +5086,7 @@ const Oe = (e, t) => {
4500
5086
  "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."
4501
5087
  );
4502
5088
  return n;
4503
- }, _ = {
5089
+ }, k = {
4504
5090
  backgroundColor: {
4505
5091
  default: "default"
4506
5092
  },
@@ -4515,7 +5101,7 @@ const Oe = (e, t) => {
4515
5101
  function ae(e) {
4516
5102
  return "data-" + e.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase();
4517
5103
  }
4518
- function Rr(e) {
5104
+ function Or(e) {
4519
5105
  const t = e.split("/");
4520
5106
  return !t.length || // invalid?
4521
5107
  t[t.length - 1] === "" ? e : t[t.length - 1];
@@ -4547,7 +5133,7 @@ function dt(e) {
4547
5133
  };
4548
5134
  }), t;
4549
5135
  }
4550
- function jo(e, t, o, i) {
5136
+ function zo(e, t, o, i) {
4551
5137
  if (typeof e == "boolean")
4552
5138
  throw new Error(
4553
5139
  "Cannot find node position as getPos is a boolean, not a function."
@@ -4565,13 +5151,13 @@ function fe(e, t, o, i, n = !1, r) {
4565
5151
  if (r !== void 0)
4566
5152
  for (const [s, l] of Object.entries(r))
4567
5153
  s !== "class" && a.setAttribute(s, l);
4568
- a.className = D(
5154
+ a.className = j(
4569
5155
  "bn-block-content",
4570
5156
  (r == null ? void 0 : r.class) || ""
4571
5157
  ), a.setAttribute("data-content-type", t);
4572
5158
  for (const [s, l] of Object.entries(o))
4573
5159
  !lt.includes(s) && l !== i[s].default && a.setAttribute(ae(s), l);
4574
- return n && a.setAttribute("data-file-block", ""), a.appendChild(e.dom), e.contentDOM !== void 0 && (e.contentDOM.className = D(
5160
+ return n && a.setAttribute("data-file-block", ""), a.appendChild(e.dom), e.contentDOM !== void 0 && (e.contentDOM.className = j(
4575
5161
  "bn-inline-content",
4576
5162
  e.contentDOM.className
4577
5163
  ), e.contentDOM.setAttribute("data-editable", "")), {
@@ -4579,7 +5165,7 @@ function fe(e, t, o, i, n = !1, r) {
4579
5165
  dom: a
4580
5166
  };
4581
5167
  }
4582
- function O(e) {
5168
+ function V(e) {
4583
5169
  return $.create(e);
4584
5170
  }
4585
5171
  function ct(e, t) {
@@ -4598,8 +5184,8 @@ function q(e, t, o) {
4598
5184
  {
4599
5185
  node: e,
4600
5186
  requiredExtensions: o,
4601
- toInternalHTML: Oe,
4602
- toExternalHTML: Oe
5187
+ toInternalHTML: Ve,
5188
+ toExternalHTML: Ve
4603
5189
  // parse: () => undefined, // parse rules are in node already
4604
5190
  }
4605
5191
  );
@@ -4609,7 +5195,7 @@ function ut(e) {
4609
5195
  Object.entries(e).map(([t, o]) => [t, o.config])
4610
5196
  );
4611
5197
  }
4612
- function Do(e, t) {
5198
+ function Ro(e, t) {
4613
5199
  const o = [
4614
5200
  {
4615
5201
  tag: "[data-content-type=" + e.type + "]",
@@ -4627,7 +5213,7 @@ function Do(e, t) {
4627
5213
  }), o;
4628
5214
  }
4629
5215
  function le(e, t) {
4630
- const o = O({
5216
+ const o = V({
4631
5217
  name: e.type,
4632
5218
  content: e.content === "inline" ? "inline*" : "",
4633
5219
  group: "blockContent",
@@ -4636,7 +5222,7 @@ function le(e, t) {
4636
5222
  return dt(e.propSchema);
4637
5223
  },
4638
5224
  parseHTML() {
4639
- return Do(e, t.parse);
5225
+ return Ro(e, t.parse);
4640
5226
  },
4641
5227
  renderHTML() {
4642
5228
  const i = document.createElement("div");
@@ -4647,7 +5233,7 @@ function le(e, t) {
4647
5233
  addNodeView() {
4648
5234
  return ({ getPos: i }) => {
4649
5235
  var l;
4650
- const n = this.options.editor, r = jo(
5236
+ const n = this.options.editor, r = zo(
4651
5237
  i,
4652
5238
  n,
4653
5239
  this.editor,
@@ -4702,7 +5288,7 @@ function le(e, t) {
4702
5288
  function Vo(e, t, o, i) {
4703
5289
  return e.dom.setAttribute("data-inline-content-type", t), Object.entries(o).filter(([n, r]) => r !== i[n].default).map(([n, r]) => [ae(n), r]).forEach(([n, r]) => e.dom.setAttribute(n, r)), e.contentDOM !== void 0 && e.contentDOM.setAttribute("data-editable", ""), e;
4704
5290
  }
4705
- function Ro(e) {
5291
+ function Oo(e) {
4706
5292
  return {
4707
5293
  Backspace: ({ editor: t }) => {
4708
5294
  const o = t.state.selection.$from;
@@ -4710,14 +5296,14 @@ function Ro(e) {
4710
5296
  }
4711
5297
  };
4712
5298
  }
4713
- function Oo(e, t) {
5299
+ function Fo(e, t) {
4714
5300
  return {
4715
5301
  config: e,
4716
5302
  implementation: t
4717
5303
  };
4718
5304
  }
4719
- function zo(e, t) {
4720
- return Oo(
5305
+ function Go(e, t) {
5306
+ return Fo(
4721
5307
  {
4722
5308
  type: e.name,
4723
5309
  propSchema: t,
@@ -4733,7 +5319,7 @@ function pt(e) {
4733
5319
  Object.entries(e).map(([t, o]) => [t, o.config])
4734
5320
  );
4735
5321
  }
4736
- function Fo(e) {
5322
+ function Ko(e) {
4737
5323
  return [
4738
5324
  {
4739
5325
  tag: `[data-inline-content-type="${e.type}"]`,
@@ -4744,7 +5330,7 @@ function Fo(e) {
4744
5330
  }
4745
5331
  ];
4746
5332
  }
4747
- function Or(e, t) {
5333
+ function Fr(e, t) {
4748
5334
  const o = $.create({
4749
5335
  name: e.type,
4750
5336
  inline: !0,
@@ -4756,10 +5342,10 @@ function Or(e, t) {
4756
5342
  return dt(e.propSchema);
4757
5343
  },
4758
5344
  addKeyboardShortcuts() {
4759
- return Ro(e);
5345
+ return Oo(e);
4760
5346
  },
4761
5347
  parseHTML() {
4762
- return Fo(e);
5348
+ return Ko(e);
4763
5349
  },
4764
5350
  renderHTML({ node: i }) {
4765
5351
  const n = this.options.editor, r = t.render(
@@ -4778,12 +5364,12 @@ function Or(e, t) {
4778
5364
  );
4779
5365
  }
4780
5366
  });
4781
- return zo(
5367
+ return Go(
4782
5368
  o,
4783
5369
  e.propSchema
4784
5370
  );
4785
5371
  }
4786
- function Go(e) {
5372
+ function Wo(e) {
4787
5373
  return e === "boolean" ? {} : {
4788
5374
  stringValue: {
4789
5375
  default: void 0,
@@ -4795,7 +5381,7 @@ function Go(e) {
4795
5381
  }
4796
5382
  };
4797
5383
  }
4798
- function Ko(e, t, o, i) {
5384
+ function $o(e, t, o, i) {
4799
5385
  return e.dom.setAttribute("data-style-type", t), i === "string" && e.dom.setAttribute("data-value", o), e.contentDOM !== void 0 && e.contentDOM.setAttribute("data-editable", ""), e;
4800
5386
  }
4801
5387
  function ht(e, t) {
@@ -4820,7 +5406,7 @@ function mt(e) {
4820
5406
  Object.entries(e).map(([t, o]) => [t, o.config])
4821
5407
  );
4822
5408
  }
4823
- function Wo(e) {
5409
+ function qo(e) {
4824
5410
  return [
4825
5411
  {
4826
5412
  tag: `[data-style-type="${e.type}"]`,
@@ -4831,14 +5417,14 @@ function Wo(e) {
4831
5417
  }
4832
5418
  ];
4833
5419
  }
4834
- function zr(e, t) {
5420
+ function Gr(e, t) {
4835
5421
  const o = Ce.create({
4836
5422
  name: e.type,
4837
5423
  addAttributes() {
4838
- return Go(e.propSchema);
5424
+ return Wo(e.propSchema);
4839
5425
  },
4840
5426
  parseHTML() {
4841
- return Wo(e);
5427
+ return qo(e);
4842
5428
  },
4843
5429
  renderHTML({ mark: i }) {
4844
5430
  let n;
@@ -4848,7 +5434,7 @@ function zr(e, t) {
4848
5434
  n = t.render(i.attrs.stringValue);
4849
5435
  else
4850
5436
  throw new I(e.propSchema);
4851
- return Ko(
5437
+ return $o(
4852
5438
  n,
4853
5439
  e.type,
4854
5440
  i.attrs.stringValue,
@@ -4910,7 +5496,7 @@ const de = (e) => {
4910
5496
  );
4911
5497
  }
4912
5498
  };
4913
- }, ze = (e) => ({ url: e.src || void 0 }), ue = (e, t) => {
5499
+ }, Oe = (e) => ({ url: e.src || void 0 }), ue = (e, t) => {
4914
5500
  const o = e.querySelector(
4915
5501
  t
4916
5502
  );
@@ -4986,8 +5572,8 @@ const de = (e) => {
4986
5572
  );
4987
5573
  }
4988
5574
  };
4989
- }, Fe = (e) => ({ url: e.src || void 0 }), $o = {
4990
- backgroundColor: _.backgroundColor,
5575
+ }, Fe = (e) => ({ url: e.src || void 0 }), Xo = {
5576
+ backgroundColor: k.backgroundColor,
4991
5577
  // File name.
4992
5578
  name: {
4993
5579
  default: ""
@@ -5003,13 +5589,13 @@ const de = (e) => {
5003
5589
  showPreview: {
5004
5590
  default: !0
5005
5591
  }
5006
- }, qo = {
5592
+ }, Zo = {
5007
5593
  type: "audio",
5008
- propSchema: $o,
5594
+ propSchema: Xo,
5009
5595
  content: "none",
5010
5596
  isFileBlock: !0,
5011
5597
  fileBlockAcceptMimeTypes: ["audio/*"]
5012
- }, Xo = (e, t) => {
5598
+ }, Jo = (e, t) => {
5013
5599
  const o = document.createElement("div");
5014
5600
  if (o.className = "bn-file-block-content-wrapper", e.props.url === "") {
5015
5601
  const i = document.createElement("div");
@@ -5042,7 +5628,7 @@ const de = (e) => {
5042
5628
  dom: R(e, i).dom
5043
5629
  };
5044
5630
  }
5045
- }, Zo = (e) => {
5631
+ }, Yo = (e) => {
5046
5632
  if (e.tagName === "AUDIO")
5047
5633
  return Fe(e);
5048
5634
  if (e.tagName === "FIGURE") {
@@ -5055,7 +5641,7 @@ const de = (e) => {
5055
5641
  caption: i
5056
5642
  };
5057
5643
  }
5058
- }, Jo = (e) => {
5644
+ }, Qo = (e) => {
5059
5645
  if (!e.props.url) {
5060
5646
  const o = document.createElement("p");
5061
5647
  return o.textContent = "Add audio", {
@@ -5066,12 +5652,12 @@ const de = (e) => {
5066
5652
  return e.props.showPreview ? (t = document.createElement("audio"), t.src = e.props.url) : (t = document.createElement("a"), t.href = e.props.url, t.textContent = e.props.name || e.props.url), e.props.caption ? e.props.showPreview ? Te(t, e.props.caption) : pe(t, e.props.caption) : {
5067
5653
  dom: t
5068
5654
  };
5069
- }, Yo = le(qo, {
5070
- render: Xo,
5071
- parse: Zo,
5072
- toExternalHTML: Jo
5073
- }), Qo = {
5074
- backgroundColor: _.backgroundColor,
5655
+ }, ei = le(Zo, {
5656
+ render: Jo,
5657
+ parse: Yo,
5658
+ toExternalHTML: Qo
5659
+ }), ti = {
5660
+ backgroundColor: k.backgroundColor,
5075
5661
  // File name.
5076
5662
  name: {
5077
5663
  default: ""
@@ -5084,12 +5670,12 @@ const de = (e) => {
5084
5670
  caption: {
5085
5671
  default: ""
5086
5672
  }
5087
- }, ei = {
5673
+ }, oi = {
5088
5674
  type: "file",
5089
- propSchema: Qo,
5675
+ propSchema: ti,
5090
5676
  content: "none",
5091
5677
  isFileBlock: !0
5092
- }, ti = (e, t) => {
5678
+ }, ii = (e, t) => {
5093
5679
  const o = document.createElement("div");
5094
5680
  if (o.className = "bn-file-block-content-wrapper", e.props.url === "") {
5095
5681
  const i = ce(e, t);
@@ -5103,20 +5689,20 @@ const de = (e) => {
5103
5689
  dom: o
5104
5690
  };
5105
5691
  }
5106
- }, oi = (e) => {
5692
+ }, ni = (e) => {
5107
5693
  if (e.tagName === "EMBED")
5108
- return ze(e);
5694
+ return Oe(e);
5109
5695
  if (e.tagName === "FIGURE") {
5110
5696
  const t = ue(e, "embed");
5111
5697
  if (!t)
5112
5698
  return;
5113
5699
  const { targetElement: o, caption: i } = t;
5114
5700
  return {
5115
- ...ze(o),
5701
+ ...Oe(o),
5116
5702
  caption: i
5117
5703
  };
5118
5704
  }
5119
- }, ii = (e) => {
5705
+ }, ri = (e) => {
5120
5706
  if (!e.props.url) {
5121
5707
  const o = document.createElement("p");
5122
5708
  return o.textContent = "Add file", {
@@ -5127,16 +5713,16 @@ const de = (e) => {
5127
5713
  return t.href = e.props.url, t.textContent = e.props.name || e.props.url, e.props.caption ? pe(t, e.props.caption) : {
5128
5714
  dom: t
5129
5715
  };
5130
- }, ni = le(ei, {
5131
- render: ti,
5132
- parse: oi,
5133
- toExternalHTML: ii
5716
+ }, ai = le(oi, {
5717
+ render: ii,
5718
+ parse: ni,
5719
+ toExternalHTML: ri
5134
5720
  }), Ge = (e) => {
5135
5721
  const t = e.src || void 0, o = e.width || void 0;
5136
5722
  return { url: t, previewWidth: o };
5137
- }, ri = {
5138
- textAlignment: _.textAlignment,
5139
- backgroundColor: _.backgroundColor,
5723
+ }, si = {
5724
+ textAlignment: k.textAlignment,
5725
+ backgroundColor: k.backgroundColor,
5140
5726
  // File name.
5141
5727
  name: {
5142
5728
  default: ""
@@ -5156,13 +5742,13 @@ const de = (e) => {
5156
5742
  previewWidth: {
5157
5743
  default: 512
5158
5744
  }
5159
- }, ai = {
5745
+ }, li = {
5160
5746
  type: "image",
5161
- propSchema: ri,
5747
+ propSchema: si,
5162
5748
  content: "none",
5163
5749
  isFileBlock: !0,
5164
5750
  fileBlockAcceptMimeTypes: ["image/*"]
5165
- }, si = (e, t) => {
5751
+ }, di = (e, t) => {
5166
5752
  const o = document.createElement("div");
5167
5753
  if (o.className = "bn-file-block-content-wrapper", e.props.url === "") {
5168
5754
  const i = document.createElement("div");
@@ -5205,7 +5791,7 @@ const de = (e) => {
5205
5791
  dom: R(e, i).dom
5206
5792
  };
5207
5793
  }
5208
- }, li = (e) => {
5794
+ }, ci = (e) => {
5209
5795
  if (e.tagName === "IMG")
5210
5796
  return Ge(e);
5211
5797
  if (e.tagName === "FIGURE") {
@@ -5218,7 +5804,7 @@ const de = (e) => {
5218
5804
  caption: i
5219
5805
  };
5220
5806
  }
5221
- }, di = (e) => {
5807
+ }, ui = (e) => {
5222
5808
  if (!e.props.url) {
5223
5809
  const o = document.createElement("p");
5224
5810
  return o.textContent = "Add image", {
@@ -5229,16 +5815,16 @@ const de = (e) => {
5229
5815
  return e.props.showPreview ? (t = document.createElement("img"), t.src = e.props.url, t.alt = e.props.name || e.props.caption || "BlockNote image", t.width = e.props.previewWidth) : (t = document.createElement("a"), t.href = e.props.url, t.textContent = e.props.name || e.props.url), e.props.caption ? e.props.showPreview ? Te(t, e.props.caption) : pe(t, e.props.caption) : {
5230
5816
  dom: t
5231
5817
  };
5232
- }, ci = le(ai, {
5233
- render: si,
5234
- parse: li,
5235
- toExternalHTML: di
5818
+ }, pi = le(li, {
5819
+ render: di,
5820
+ parse: ci,
5821
+ toExternalHTML: ui
5236
5822
  }), Ke = (e) => {
5237
5823
  const t = e.src || void 0, o = e.width || void 0;
5238
5824
  return { url: t, previewWidth: o };
5239
- }, ui = {
5240
- textAlignment: _.textAlignment,
5241
- backgroundColor: _.backgroundColor,
5825
+ }, hi = {
5826
+ textAlignment: k.textAlignment,
5827
+ backgroundColor: k.backgroundColor,
5242
5828
  // File name.
5243
5829
  name: {
5244
5830
  default: ""
@@ -5258,13 +5844,13 @@ const de = (e) => {
5258
5844
  previewWidth: {
5259
5845
  default: 512
5260
5846
  }
5261
- }, pi = {
5847
+ }, mi = {
5262
5848
  type: "video",
5263
- propSchema: ui,
5849
+ propSchema: hi,
5264
5850
  content: "none",
5265
5851
  isFileBlock: !0,
5266
5852
  fileBlockAcceptMimeTypes: ["video/*"]
5267
- }, hi = (e, t) => {
5853
+ }, fi = (e, t) => {
5268
5854
  const o = document.createElement("div");
5269
5855
  if (o.className = "bn-file-block-content-wrapper", e.props.url === "") {
5270
5856
  const i = document.createElement("div");
@@ -5305,7 +5891,7 @@ const de = (e) => {
5305
5891
  dom: R(e, i).dom
5306
5892
  };
5307
5893
  }
5308
- }, mi = (e) => {
5894
+ }, gi = (e) => {
5309
5895
  if (e.tagName === "VIDEO")
5310
5896
  return Ke(e);
5311
5897
  if (e.tagName === "FIGURE") {
@@ -5318,7 +5904,7 @@ const de = (e) => {
5318
5904
  caption: i
5319
5905
  };
5320
5906
  }
5321
- }, fi = (e) => {
5907
+ }, bi = (e) => {
5322
5908
  if (!e.props.url) {
5323
5909
  const o = document.createElement("p");
5324
5910
  return o.textContent = "Add video", {
@@ -5329,11 +5915,11 @@ const de = (e) => {
5329
5915
  return e.props.showPreview ? (t = document.createElement("video"), t.src = e.props.url, t.width = e.props.previewWidth) : (t = document.createElement("a"), t.href = e.props.url, t.textContent = e.props.name || e.props.url), e.props.caption ? e.props.showPreview ? Te(t, e.props.caption) : pe(t, e.props.caption) : {
5330
5916
  dom: t
5331
5917
  };
5332
- }, gi = le(pi, {
5333
- render: hi,
5334
- parse: mi,
5335
- toExternalHTML: fi
5336
- }), Fr = async (e) => {
5918
+ }, _i = le(mi, {
5919
+ render: fi,
5920
+ parse: gi,
5921
+ toExternalHTML: bi
5922
+ }), Kr = async (e) => {
5337
5923
  const t = new FormData();
5338
5924
  return t.append("file", e), (await (await fetch("https://tmpfiles.org/api/v1/upload", {
5339
5925
  method: "POST",
@@ -5342,7 +5928,7 @@ const de = (e) => {
5342
5928
  "tmpfiles.org/",
5343
5929
  "tmpfiles.org/dl/"
5344
5930
  );
5345
- }, bi = Ce.create({
5931
+ }, ki = Ce.create({
5346
5932
  name: "backgroundColor",
5347
5933
  addAttributes() {
5348
5934
  return {
@@ -5368,10 +5954,10 @@ const de = (e) => {
5368
5954
  renderHTML({ HTMLAttributes: e }) {
5369
5955
  return ["span", e, 0];
5370
5956
  }
5371
- }), ki = U(
5372
- bi,
5957
+ }), yi = U(
5958
+ ki,
5373
5959
  "string"
5374
- ), _i = Ce.create({
5960
+ ), vi = Ce.create({
5375
5961
  name: "textColor",
5376
5962
  addAttributes() {
5377
5963
  return {
@@ -5395,16 +5981,10 @@ const de = (e) => {
5395
5981
  renderHTML({ HTMLAttributes: e }) {
5396
5982
  return ["span", e, 0];
5397
5983
  }
5398
- }), yi = U(_i, "string"), C = (e) => {
5399
- const { contentType: t } = k(
5400
- e.state.doc,
5401
- e.state.selection.from
5402
- );
5403
- return t.spec.content;
5404
- }, wi = {
5405
- ..._,
5984
+ }), wi = U(vi, "string"), xi = {
5985
+ ...k,
5406
5986
  level: { default: 1, values: [1, 2, 3] }
5407
- }, vi = O({
5987
+ }, Ei = V({
5408
5988
  name: "heading",
5409
5989
  content: "inline*",
5410
5990
  group: "blockContent",
@@ -5497,7 +6077,7 @@ const de = (e) => {
5497
6077
  },
5498
6078
  renderHTML({ node: e, HTMLAttributes: t }) {
5499
6079
  var o, i;
5500
- return V(
6080
+ return z(
5501
6081
  this.name,
5502
6082
  `h${e.attrs.level}`,
5503
6083
  {
@@ -5507,11 +6087,11 @@ const de = (e) => {
5507
6087
  ((i = this.options.domAttributes) == null ? void 0 : i.inlineContent) || {}
5508
6088
  );
5509
6089
  }
5510
- }), xi = q(
5511
- vi,
5512
- wi
6090
+ }), Ci = q(
6091
+ Ei,
6092
+ xi
5513
6093
  ), Be = (e) => {
5514
- const { contentNode: t, contentType: o } = k(
6094
+ const { contentNode: t, contentType: o } = _(
5515
6095
  e.state.doc,
5516
6096
  e.state.selection.from
5517
6097
  ), i = e.state.selection.anchor === e.state.selection.head;
@@ -5529,9 +6109,9 @@ const de = (e) => {
5529
6109
  a.command(() => t.childCount > 0 ? (r().deleteSelection().BNSplitBlock(n.selection.from, !0).run(), !0) : !1)
5530
6110
  )
5531
6111
  ]);
5532
- }, Ei = {
5533
- ..._
5534
- }, Ci = O({
6112
+ }, Si = {
6113
+ ...k
6114
+ }, Mi = V({
5535
6115
  name: "bulletListItem",
5536
6116
  content: "inline*",
5537
6117
  group: "blockContent",
@@ -5597,7 +6177,7 @@ const de = (e) => {
5597
6177
  },
5598
6178
  renderHTML({ HTMLAttributes: e }) {
5599
6179
  var t, o;
5600
- return V(
6180
+ return z(
5601
6181
  this.name,
5602
6182
  // We use a <p> tag, because for <li> tags we'd need a <ul> element to put
5603
6183
  // them in to be semantically correct, which we can't have due to the
@@ -5610,11 +6190,11 @@ const de = (e) => {
5610
6190
  ((o = this.options.domAttributes) == null ? void 0 : o.inlineContent) || {}
5611
6191
  );
5612
6192
  }
5613
- }), Si = q(
5614
- Ci,
5615
- Ei
5616
- ), Mi = new S("numbered-list-indexing"), Ti = () => new y({
5617
- key: Mi,
6193
+ }), Ti = q(
6194
+ Mi,
6195
+ Si
6196
+ ), Bi = new S("numbered-list-indexing"), Li = () => new y({
6197
+ key: Bi,
5618
6198
  appendTransaction: (e, t, o) => {
5619
6199
  const i = o.tr;
5620
6200
  i.setMeta("numberedListIndexing", !0);
@@ -5622,11 +6202,11 @@ const de = (e) => {
5622
6202
  return o.doc.descendants((r, a) => {
5623
6203
  if (r.type.name === "blockContainer" && r.firstChild.type.name === "numberedListItem") {
5624
6204
  let s = "1";
5625
- const l = a === 1, d = k(i.doc, a + 1);
6205
+ const l = a === 1, d = _(i.doc, a + 1);
5626
6206
  if (d === void 0)
5627
6207
  return;
5628
6208
  if (!l) {
5629
- const h = k(i.doc, a - 2);
6209
+ const h = _(i.doc, a - 2);
5630
6210
  if (h === void 0)
5631
6211
  return;
5632
6212
  if (!(d.depth !== h.depth)) {
@@ -5643,9 +6223,9 @@ const de = (e) => {
5643
6223
  }
5644
6224
  }), n ? i : null;
5645
6225
  }
5646
- }), Bi = {
5647
- ..._
5648
- }, Li = O({
6226
+ }), Ii = {
6227
+ ...k
6228
+ }, Ai = V({
5649
6229
  name: "numberedListItem",
5650
6230
  content: "inline*",
5651
6231
  group: "blockContent",
@@ -5688,7 +6268,7 @@ const de = (e) => {
5688
6268
  };
5689
6269
  },
5690
6270
  addProseMirrorPlugins() {
5691
- return [Ti()];
6271
+ return [Li()];
5692
6272
  },
5693
6273
  parseHTML() {
5694
6274
  return [
@@ -5725,7 +6305,7 @@ const de = (e) => {
5725
6305
  },
5726
6306
  renderHTML({ HTMLAttributes: e }) {
5727
6307
  var t, o;
5728
- return V(
6308
+ return z(
5729
6309
  this.name,
5730
6310
  // We use a <p> tag, because for <li> tags we'd need an <ol> element to
5731
6311
  // put them in to be semantically correct, which we can't have due to the
@@ -5738,15 +6318,15 @@ const de = (e) => {
5738
6318
  ((o = this.options.domAttributes) == null ? void 0 : o.inlineContent) || {}
5739
6319
  );
5740
6320
  }
5741
- }), Ii = q(
5742
- Li,
5743
- Bi
5744
- ), Ai = {
5745
- ..._,
6321
+ }), Ni = q(
6322
+ Ai,
6323
+ Ii
6324
+ ), Pi = {
6325
+ ...k,
5746
6326
  checked: {
5747
6327
  default: !1
5748
6328
  }
5749
- }, Ni = O({
6329
+ }, Hi = V({
5750
6330
  name: "checkListItem",
5751
6331
  content: "inline*",
5752
6332
  group: "blockContent",
@@ -5843,7 +6423,7 @@ const de = (e) => {
5843
6423
  var r, a;
5844
6424
  const o = document.createElement("input");
5845
6425
  o.type = "checkbox", o.checked = e.attrs.checked, e.attrs.checked && o.setAttribute("checked", "");
5846
- const { dom: i, contentDOM: n } = V(
6426
+ const { dom: i, contentDOM: n } = z(
5847
6427
  this.name,
5848
6428
  "p",
5849
6429
  {
@@ -5876,7 +6456,7 @@ const de = (e) => {
5876
6456
  });
5877
6457
  };
5878
6458
  a.addEventListener("change", s);
5879
- const { dom: l, contentDOM: d } = V(
6459
+ const { dom: l, contentDOM: d } = z(
5880
6460
  this.name,
5881
6461
  "p",
5882
6462
  {
@@ -5898,12 +6478,12 @@ const de = (e) => {
5898
6478
  };
5899
6479
  };
5900
6480
  }
5901
- }), Pi = q(
5902
- Ni,
5903
- Ai
5904
- ), Hi = {
5905
- ..._
5906
- }, Ui = O({
6481
+ }), Ui = q(
6482
+ Hi,
6483
+ Pi
6484
+ ), Di = {
6485
+ ...k
6486
+ }, ji = V({
5907
6487
  name: "paragraph",
5908
6488
  content: "inline*",
5909
6489
  group: "blockContent",
@@ -5934,7 +6514,7 @@ const de = (e) => {
5934
6514
  },
5935
6515
  renderHTML({ HTMLAttributes: e }) {
5936
6516
  var t, o;
5937
- return V(
6517
+ return z(
5938
6518
  this.name,
5939
6519
  "p",
5940
6520
  {
@@ -5944,10 +6524,10 @@ const de = (e) => {
5944
6524
  ((o = this.options.domAttributes) == null ? void 0 : o.inlineContent) || {}
5945
6525
  );
5946
6526
  }
5947
- }), ji = q(
5948
- Ui,
5949
- Hi
5950
- ), Di = M.create({
6527
+ }), zi = q(
6528
+ ji,
6529
+ Di
6530
+ ), Ri = M.create({
5951
6531
  name: "BlockNoteTableExtension",
5952
6532
  addProseMirrorPlugins: () => [
5953
6533
  oo({
@@ -5975,13 +6555,13 @@ const de = (e) => {
5975
6555
  };
5976
6556
  return {
5977
6557
  tableRole: Ut(
5978
- jt(e, "tableRole", t)
6558
+ Dt(e, "tableRole", t)
5979
6559
  )
5980
6560
  };
5981
6561
  }
5982
6562
  }), Vi = {
5983
- ..._
5984
- }, Ri = O({
6563
+ ...k
6564
+ }, Oi = V({
5985
6565
  name: "table",
5986
6566
  content: "tableRow+",
5987
6567
  group: "blockContent",
@@ -5992,7 +6572,7 @@ const de = (e) => {
5992
6572
  },
5993
6573
  renderHTML({ HTMLAttributes: e }) {
5994
6574
  var t, o;
5995
- return V(
6575
+ return z(
5996
6576
  this.name,
5997
6577
  "table",
5998
6578
  {
@@ -6002,7 +6582,7 @@ const de = (e) => {
6002
6582
  ((o = this.options.domAttributes) == null ? void 0 : o.inlineContent) || {}
6003
6583
  );
6004
6584
  }
6005
- }), Oi = $.create({
6585
+ }), Fi = $.create({
6006
6586
  name: "tableParagraph",
6007
6587
  group: "tableContent",
6008
6588
  content: "inline*",
@@ -6023,16 +6603,16 @@ const de = (e) => {
6023
6603
  renderHTML({ HTMLAttributes: e }) {
6024
6604
  return [
6025
6605
  "p",
6026
- Dt(this.options.HTMLAttributes, e),
6606
+ jt(this.options.HTMLAttributes, e),
6027
6607
  0
6028
6608
  ];
6029
6609
  }
6030
- }), zi = q(
6031
- Ri,
6610
+ }), Gi = q(
6611
+ Oi,
6032
6612
  Vi,
6033
6613
  [
6034
- Di,
6035
- Oi,
6614
+ Ri,
6615
+ Fi,
6036
6616
  eo.extend({
6037
6617
  content: "tableContent"
6038
6618
  }),
@@ -6042,53 +6622,53 @@ const de = (e) => {
6042
6622
  to
6043
6623
  ]
6044
6624
  ), gt = {
6045
- paragraph: ji,
6046
- heading: xi,
6047
- bulletListItem: Si,
6048
- numberedListItem: Ii,
6049
- checkListItem: Pi,
6050
- table: zi,
6051
- file: ni,
6052
- image: ci,
6053
- video: gi,
6054
- audio: Yo
6055
- }, Fi = ut(gt), bt = {
6625
+ paragraph: zi,
6626
+ heading: Ci,
6627
+ bulletListItem: Ti,
6628
+ numberedListItem: Ni,
6629
+ checkListItem: Ui,
6630
+ table: Gi,
6631
+ file: ai,
6632
+ image: pi,
6633
+ video: _i,
6634
+ audio: ei
6635
+ }, Ki = ut(gt), bt = {
6056
6636
  bold: U(qt, "boolean"),
6057
6637
  italic: U(Zt, "boolean"),
6058
6638
  underline: U(Yt, "boolean"),
6059
6639
  strike: U(Jt, "boolean"),
6060
6640
  code: U(Xt, "boolean"),
6061
- textColor: yi,
6062
- backgroundColor: ki
6063
- }, Gr = mt(bt), kt = {
6641
+ textColor: wi,
6642
+ backgroundColor: yi
6643
+ }, Wr = mt(bt), _t = {
6064
6644
  text: { config: "text", implementation: {} },
6065
6645
  link: { config: "link", implementation: {} }
6066
- }, Gi = pt(
6067
- kt
6646
+ }, Wi = pt(
6647
+ _t
6068
6648
  );
6069
6649
  function E(e, t) {
6070
- return e in t.schema.blockSchema && t.schema.blockSchema[e] === Fi[e];
6650
+ return e in t.schema.blockSchema && t.schema.blockSchema[e] === Ki[e];
6071
6651
  }
6072
- function Ki(e, t) {
6073
- return e in t.schema.inlineContentSchema && t.schema.inlineContentSchema[e] === Gi[e];
6652
+ function $i(e, t) {
6653
+ return e in t.schema.inlineContentSchema && t.schema.inlineContentSchema[e] === Wi[e];
6074
6654
  }
6075
- function Wi(e, t, o) {
6655
+ function qi(e, t, o) {
6076
6656
  return t.type === e && t.type in o.schema.blockSchema && E(t.type, o);
6077
6657
  }
6078
- function Kr(e, t) {
6658
+ function $r(e, t) {
6079
6659
  return e.type in t.schema.blockSchema && t.schema.blockSchema[e.type].isFileBlock || !1;
6080
6660
  }
6081
- function Wr(e, t) {
6661
+ function qr(e, t) {
6082
6662
  return e.type in t.schema.blockSchema && t.schema.blockSchema[e.type].isFileBlock && "showPreview" in t.schema.blockSchema[e.type].propSchema || !1;
6083
6663
  }
6084
- function $r(e, t) {
6664
+ function Xr(e, t) {
6085
6665
  return t.schema.blockSchema[e.type].isFileBlock && !e.props.url;
6086
6666
  }
6087
- function $i(e, t, o) {
6088
- return t in o.schema.blockSchema && e in o.schema.blockSchema[t].propSchema && o.schema.blockSchema[t].propSchema[e] === _[e];
6667
+ function Xi(e, t, o) {
6668
+ return t in o.schema.blockSchema && e in o.schema.blockSchema[t].propSchema && o.schema.blockSchema[t].propSchema[e] === k[e];
6089
6669
  }
6090
- function qr(e, t, o) {
6091
- return $i(e, t.type, o);
6670
+ function Zr(e, t, o) {
6671
+ return Xi(e, t.type, o);
6092
6672
  }
6093
6673
  function Le(e, t) {
6094
6674
  let o, i;
@@ -6099,7 +6679,7 @@ function Le(e, t) {
6099
6679
  posBeforeNode: i
6100
6680
  };
6101
6681
  }
6102
- function qi(e, t, o = "before", i) {
6682
+ function Zi(e, t, o = "before", i) {
6103
6683
  const n = typeof t == "string" ? t : t.id, r = [];
6104
6684
  for (const d of e)
6105
6685
  r.push(
@@ -6128,7 +6708,7 @@ function qi(e, t, o = "before", i) {
6128
6708
  const l = [];
6129
6709
  for (const d of r)
6130
6710
  l.push(
6131
- v(
6711
+ w(
6132
6712
  d,
6133
6713
  i.schema.blockSchema,
6134
6714
  i.schema.inlineContentSchema,
@@ -6138,11 +6718,11 @@ function qi(e, t, o = "before", i) {
6138
6718
  );
6139
6719
  return l;
6140
6720
  }
6141
- function Xi(e, t, o) {
6721
+ function Ji(e, t, o) {
6142
6722
  const i = o._tiptapEditor, n = typeof e == "string" ? e : e.id, { posBeforeNode: r } = Le(n, i.state.doc);
6143
6723
  i.commands.BNUpdateBlock(r + 1, t);
6144
6724
  const a = i.state.doc.resolve(r + 1).node();
6145
- return v(
6725
+ return w(
6146
6726
  a,
6147
6727
  o.schema.blockSchema,
6148
6728
  o.schema.inlineContentSchema,
@@ -6150,7 +6730,7 @@ function Xi(e, t, o) {
6150
6730
  o.blockCache
6151
6731
  );
6152
6732
  }
6153
- function _t(e, t, o) {
6733
+ function kt(e, t, o) {
6154
6734
  const i = t._tiptapEditor, n = i.state.tr, r = new Set(
6155
6735
  e.map(
6156
6736
  (l) => typeof l == "string" ? l : l.id
@@ -6163,7 +6743,7 @@ function _t(e, t, o) {
6163
6743
  if (l.type.name !== "blockContainer" || !r.has(l.attrs.id))
6164
6744
  return !0;
6165
6745
  a.push(
6166
- v(
6746
+ w(
6167
6747
  l,
6168
6748
  t.schema.blockSchema,
6169
6749
  t.schema.inlineContentSchema,
@@ -6184,16 +6764,16 @@ function _t(e, t, o) {
6184
6764
  }
6185
6765
  return t.dispatch(n), a;
6186
6766
  }
6187
- function Zi(e, t) {
6188
- return _t(e, t);
6767
+ function Yi(e, t) {
6768
+ return kt(e, t);
6189
6769
  }
6190
- function Ji(e, t, o) {
6770
+ function Qi(e, t, o) {
6191
6771
  const i = [];
6192
6772
  for (const s of t)
6193
6773
  i.push(
6194
6774
  P(s, o.pmSchema, o.schema.styleSchema)
6195
6775
  );
6196
- const n = typeof e[0] == "string" ? e[0] : e[0].id, r = _t(
6776
+ const n = typeof e[0] == "string" ? e[0] : e[0].id, r = kt(
6197
6777
  e,
6198
6778
  o,
6199
6779
  (s, l, d, u) => {
@@ -6208,7 +6788,7 @@ function Ji(e, t, o) {
6208
6788
  ), a = [];
6209
6789
  for (const s of i)
6210
6790
  a.push(
6211
- v(
6791
+ w(
6212
6792
  s,
6213
6793
  o.schema.blockSchema,
6214
6794
  o.schema.inlineContentSchema,
@@ -6218,7 +6798,7 @@ function Ji(e, t, o) {
6218
6798
  );
6219
6799
  return { insertedBlocks: a, removedBlocks: r };
6220
6800
  }
6221
- function Yi(e, t, o, i = { updateSelection: !0 }) {
6801
+ function en(e, t, o, i = { updateSelection: !0 }) {
6222
6802
  const n = o._tiptapEditor.state.tr;
6223
6803
  let { from: r, to: a } = typeof e == "number" ? { from: e, to: e } : { from: e.from, to: e.to }, s = !0, l = !0, d = "";
6224
6804
  if (t.forEach((u) => {
@@ -6227,9 +6807,9 @@ function Yi(e, t, o, i = { updateSelection: !0 }) {
6227
6807
  const { parent: u } = n.doc.resolve(r);
6228
6808
  u.isTextblock && !u.type.spec.code && !u.childCount && (r -= 1, a += 1);
6229
6809
  }
6230
- return s ? n.insertText(d, r, a) : n.replaceWith(r, a, t), i.updateSelection && Vt(n, n.steps.length - 1, -1), o.dispatch(n), !0;
6810
+ return s ? n.insertText(d, r, a) : n.replaceWith(r, a, t), i.updateSelection && zt(n, n.steps.length - 1, -1), o.dispatch(n), !0;
6231
6811
  }
6232
- function Qi() {
6812
+ function tn() {
6233
6813
  const e = (t) => {
6234
6814
  let o = t.children.length;
6235
6815
  for (let i = 0; i < o; i++) {
@@ -6245,7 +6825,7 @@ function Qi() {
6245
6825
  };
6246
6826
  return e;
6247
6827
  }
6248
- function en() {
6828
+ function on() {
6249
6829
  const e = (t) => {
6250
6830
  var o;
6251
6831
  if (t.children && "length" in t.children && t.children.length)
@@ -6254,41 +6834,41 @@ function en() {
6254
6834
  n.type === "element" && n.tagName === "input" && ((o = n.properties) == null ? void 0 : o.type) === "checkbox" && (r == null ? void 0 : r.type) === "element" && r.tagName === "p" ? (r.tagName = "span", r.children.splice(
6255
6835
  0,
6256
6836
  0,
6257
- we(document.createTextNode(" "))
6837
+ ve(document.createTextNode(" "))
6258
6838
  )) : e(n);
6259
6839
  }
6260
6840
  };
6261
6841
  return e;
6262
6842
  }
6263
6843
  function Ie(e) {
6264
- return Ee().use(Je, { fragment: !0 }).use(Qi).use(en).use(no).use(Qe).use(ro, { handlers: { text: (o) => o.value } }).processSync(e).value;
6844
+ return Ee().use(Je, { fragment: !0 }).use(tn).use(on).use(no).use(Qe).use(ro, { handlers: { text: (o) => o.value } }).processSync(e).value;
6265
6845
  }
6266
- function tn(e, t, o, i) {
6846
+ function nn(e, t, o, i) {
6267
6847
  const r = se(t, o).exportBlocks(e, i);
6268
6848
  return Ie(r);
6269
6849
  }
6270
- function on(e) {
6850
+ function rn(e) {
6271
6851
  return Array.prototype.indexOf.call(e.parentElement.childNodes, e);
6272
6852
  }
6273
- function nn(e) {
6853
+ function an(e) {
6274
6854
  return e.nodeType === 3 && !/\S/.test(e.nodeValue || "");
6275
6855
  }
6276
- function rn(e) {
6856
+ function sn(e) {
6277
6857
  e.querySelectorAll("li > ul, li > ol").forEach((t) => {
6278
- const o = on(t), i = t.parentElement, n = Array.from(i.childNodes).slice(
6858
+ const o = rn(t), i = t.parentElement, n = Array.from(i.childNodes).slice(
6279
6859
  o + 1
6280
6860
  );
6281
6861
  t.remove(), n.forEach((r) => {
6282
6862
  r.remove();
6283
6863
  }), i.insertAdjacentElement("afterend", t), n.reverse().forEach((r) => {
6284
- if (nn(r))
6864
+ if (an(r))
6285
6865
  return;
6286
6866
  const a = document.createElement("li");
6287
6867
  a.append(r), t.insertAdjacentElement("afterend", a);
6288
6868
  }), i.childNodes.length === 0 && i.remove();
6289
6869
  });
6290
6870
  }
6291
- function an(e) {
6871
+ function ln(e) {
6292
6872
  e.querySelectorAll("li + ul, li + ol").forEach((t) => {
6293
6873
  var r, a;
6294
6874
  const o = t.previousElementSibling, i = document.createElement("div");
@@ -6299,27 +6879,27 @@ function an(e) {
6299
6879
  });
6300
6880
  }
6301
6881
  let We = null;
6302
- function sn() {
6882
+ function dn() {
6303
6883
  return We || (We = document.implementation.createHTMLDocument("title"));
6304
6884
  }
6305
6885
  function yt(e) {
6306
6886
  if (typeof e == "string") {
6307
- const t = sn().createElement("div");
6887
+ const t = dn().createElement("div");
6308
6888
  t.innerHTML = e, e = t;
6309
6889
  }
6310
- return rn(e), an(e), e;
6890
+ return sn(e), ln(e), e;
6311
6891
  }
6312
- async function wt(e, t, o, i, n) {
6892
+ async function vt(e, t, o, i, n) {
6313
6893
  const r = yt(e), s = It.fromSchema(n).parse(r, {
6314
6894
  topNode: n.nodes.blockGroup.create()
6315
6895
  }), l = [];
6316
6896
  for (let d = 0; d < s.childCount; d++)
6317
6897
  l.push(
6318
- v(s.child(d), t, o, i)
6898
+ w(s.child(d), t, o, i)
6319
6899
  );
6320
6900
  return l;
6321
6901
  }
6322
- function ln(e, t) {
6902
+ function cn(e, t) {
6323
6903
  const o = t.value ? t.value + `
6324
6904
  ` : "", i = {};
6325
6905
  t.lang && (i["data-language"] = t.lang);
@@ -6336,14 +6916,14 @@ function ln(e, t) {
6336
6916
  children: [n]
6337
6917
  }, e.patch(t, n), n;
6338
6918
  }
6339
- function dn(e, t, o, i, n) {
6919
+ function un(e, t, o, i, n) {
6340
6920
  const r = Ee().use(ao).use(Qe).use(so, {
6341
6921
  handlers: {
6342
6922
  ...lo,
6343
- code: ln
6923
+ code: cn
6344
6924
  }
6345
6925
  }).use(Ye).processSync(e);
6346
- return wt(
6926
+ return vt(
6347
6927
  r.value,
6348
6928
  t,
6349
6929
  o,
@@ -6371,7 +6951,7 @@ class X {
6371
6951
  this.callbacks = {};
6372
6952
  }
6373
6953
  }
6374
- class cn {
6954
+ class pn {
6375
6955
  constructor(t, o, i, n) {
6376
6956
  c(this, "state");
6377
6957
  c(this, "emitUpdate");
@@ -6424,7 +7004,7 @@ class cn {
6424
7004
  }
6425
7005
  }
6426
7006
  const ge = new S("FilePanelPlugin");
6427
- class un extends X {
7007
+ class hn extends X {
6428
7008
  constructor(o) {
6429
7009
  super();
6430
7010
  c(this, "view");
@@ -6432,7 +7012,7 @@ class un extends X {
6432
7012
  c(this, "closeMenu", () => this.view.closeMenu());
6433
7013
  this.plugin = new y({
6434
7014
  key: ge,
6435
- view: (i) => (this.view = new cn(
7015
+ view: (i) => (this.view = new pn(
6436
7016
  o,
6437
7017
  ge,
6438
7018
  i,
@@ -6464,7 +7044,7 @@ class un extends X {
6464
7044
  return this.on("update", o);
6465
7045
  }
6466
7046
  }
6467
- class pn {
7047
+ class mn {
6468
7048
  constructor(t, o, i) {
6469
7049
  c(this, "state");
6470
7050
  c(this, "emitUpdate");
@@ -6542,7 +7122,7 @@ class pn {
6542
7122
  }
6543
7123
  getSelectionBoundingBox() {
6544
7124
  const { state: t } = this.pmView, { selection: o } = t, { ranges: i } = o, n = Math.min(...i.map((a) => a.$from.pos)), r = Math.max(...i.map((a) => a.$to.pos));
6545
- if (Ot(o)) {
7125
+ if (Vt(o)) {
6546
7126
  const a = this.pmView.nodeDOM(n);
6547
7127
  if (a)
6548
7128
  return a.getBoundingClientRect();
@@ -6550,18 +7130,18 @@ class pn {
6550
7130
  return ye(this.pmView, n, r);
6551
7131
  }
6552
7132
  }
6553
- const hn = new S(
7133
+ const fn = new S(
6554
7134
  "FormattingToolbarPlugin"
6555
7135
  );
6556
- class mn extends X {
7136
+ class gn extends X {
6557
7137
  constructor(o) {
6558
7138
  super();
6559
7139
  c(this, "view");
6560
7140
  c(this, "plugin");
6561
7141
  c(this, "closeMenu", () => this.view.closeMenu());
6562
7142
  this.plugin = new y({
6563
- key: hn,
6564
- view: (i) => (this.view = new pn(o, i, (n) => {
7143
+ key: fn,
7144
+ view: (i) => (this.view = new mn(o, i, (n) => {
6565
7145
  this.emit("update", n);
6566
7146
  }), this.view),
6567
7147
  props: {
@@ -6577,7 +7157,7 @@ class mn extends X {
6577
7157
  return this.on("update", o);
6578
7158
  }
6579
7159
  }
6580
- class fn {
7160
+ class bn {
6581
7161
  constructor(t, o, i) {
6582
7162
  c(this, "state");
6583
7163
  c(this, "emitUpdate");
@@ -6595,7 +7175,7 @@ class fn {
6595
7175
  const o = t.target, i = this.pmView.posAtDOM(o, 0) + 1, n = this.pmView.state.doc.resolve(i), r = n.marks();
6596
7176
  for (const a of r)
6597
7177
  if (a.type.name === this.pmView.state.schema.mark("link").type.name) {
6598
- this.mouseHoveredLinkMark = a, this.mouseHoveredLinkMarkRange = je(n, a.type, a.attrs) || void 0;
7178
+ this.mouseHoveredLinkMark = a, this.mouseHoveredLinkMarkRange = De(n, a.type, a.attrs) || void 0;
6599
7179
  break;
6600
7180
  }
6601
7181
  }
@@ -6667,7 +7247,7 @@ class fn {
6667
7247
  const i = this.pmView.state.selection.$from.marks();
6668
7248
  for (const n of i)
6669
7249
  if (n.type.name === this.pmView.state.schema.mark("link").type.name) {
6670
- this.keyboardHoveredLinkMark = n, this.keyboardHoveredLinkMarkRange = je(
7250
+ this.keyboardHoveredLinkMark = n, this.keyboardHoveredLinkMarkRange = De(
6671
7251
  this.pmView.state.selection.$from,
6672
7252
  n.type,
6673
7253
  n.attrs
@@ -6704,8 +7284,8 @@ class fn {
6704
7284
  );
6705
7285
  }
6706
7286
  }
6707
- const gn = new S("LinkToolbarPlugin");
6708
- class bn extends X {
7287
+ const _n = new S("LinkToolbarPlugin");
7288
+ class kn extends X {
6709
7289
  constructor(o) {
6710
7290
  super();
6711
7291
  c(this, "view");
@@ -6744,8 +7324,8 @@ class bn extends X {
6744
7324
  });
6745
7325
  c(this, "closeMenu", () => this.view.closeMenu());
6746
7326
  this.plugin = new y({
6747
- key: gn,
6748
- view: (i) => (this.view = new fn(o, i, (n) => {
7327
+ key: _n,
7328
+ view: (i) => (this.view = new bn(o, i, (n) => {
6749
7329
  this.emit("update", n);
6750
7330
  }), this.view),
6751
7331
  props: {
@@ -6761,7 +7341,7 @@ class bn extends X {
6761
7341
  return ((i = (o = this.view) == null ? void 0 : o.state) == null ? void 0 : i.show) || !1;
6762
7342
  }
6763
7343
  }
6764
- class z extends me {
7344
+ class O extends me {
6765
7345
  constructor(o, i) {
6766
7346
  super(o, i);
6767
7347
  c(this, "nodes");
@@ -6772,13 +7352,13 @@ class z extends me {
6772
7352
  });
6773
7353
  }
6774
7354
  static create(o, i, n = i) {
6775
- return new z(o.resolve(i), o.resolve(n));
7355
+ return new O(o.resolve(i), o.resolve(n));
6776
7356
  }
6777
7357
  content() {
6778
- return new j(L.from(this.nodes), 0, 0);
7358
+ return new D(L.from(this.nodes), 0, 0);
6779
7359
  }
6780
7360
  eq(o) {
6781
- if (!(o instanceof z) || this.nodes.length !== o.nodes.length || this.from !== o.from || this.to !== o.to)
7361
+ if (!(o instanceof O) || this.nodes.length !== o.nodes.length || this.from !== o.from || this.to !== o.to)
6782
7362
  return !1;
6783
7363
  for (let i = 0; i < this.nodes.length; i++)
6784
7364
  if (!this.nodes[i].eq(o.nodes[i]))
@@ -6787,7 +7367,7 @@ class z extends me {
6787
7367
  }
6788
7368
  map(o, i) {
6789
7369
  const n = i.mapResult(this.from), r = i.mapResult(this.to);
6790
- return r.deleted ? me.near(o.resolve(n.pos)) : n.deleted ? me.near(o.resolve(r.pos)) : new z(
7370
+ return r.deleted ? me.near(o.resolve(n.pos)) : n.deleted ? me.near(o.resolve(r.pos)) : new O(
6791
7371
  o.resolve(n.pos),
6792
7372
  o.resolve(r.pos)
6793
7373
  );
@@ -6798,13 +7378,13 @@ class z extends me {
6798
7378
  }
6799
7379
  let B;
6800
7380
  function he(e, t) {
6801
- var o;
6802
- for (; e && e.parentElement && e.parentElement !== t.dom && !((o = e.hasAttribute) != null && o.call(e, "data-id")); )
7381
+ var o, i;
7382
+ for (; e && e.parentElement && e.parentElement !== t.dom && ((o = e.getAttribute) == null ? void 0 : o.call(e, "data-node-type")) !== "blockContainer"; )
6803
7383
  e = e.parentElement;
6804
- if (e.hasAttribute("data-id"))
7384
+ if (((i = e.getAttribute) == null ? void 0 : i.call(e, "data-node-type")) === "blockContainer")
6805
7385
  return { node: e, id: e.getAttribute("data-id") };
6806
7386
  }
6807
- function kn(e, t) {
7387
+ function yn(e, t) {
6808
7388
  const o = he(e, t);
6809
7389
  if (o && o.node.nodeType === 1) {
6810
7390
  const i = t.docView, n = i.nearestDesc(o.node, !0);
@@ -6812,7 +7392,7 @@ function kn(e, t) {
6812
7392
  }
6813
7393
  return null;
6814
7394
  }
6815
- function _n(e, t) {
7395
+ function vn(e, t) {
6816
7396
  let o, i;
6817
7397
  const n = t.resolve(e.from).node().type.spec.group === "blockContent", r = t.resolve(e.to).node().type.spec.group === "blockContent", a = Math.min(e.$anchor.depth, e.$head.depth);
6818
7398
  if (n && r) {
@@ -6835,16 +7415,16 @@ function $e(e, t, o = t) {
6835
7415
  );
6836
7416
  for (let u = n.childElementCount - 1; u >= 0; u--)
6837
7417
  (u > s || u < a) && i.removeChild(i.children[u]);
6838
- vt(e.root), B = i;
7418
+ wt(e.root), B = i;
6839
7419
  const d = e.dom.className.split(" ").filter(
6840
7420
  (u) => u !== "ProseMirror" && u !== "bn-root" && u !== "bn-editor"
6841
7421
  ).join(" ");
6842
7422
  B.className = B.className + " bn-drag-preview " + d, e.root instanceof ShadowRoot ? e.root.appendChild(B) : e.root.body.appendChild(B);
6843
7423
  }
6844
- function vt(e) {
7424
+ function wt(e) {
6845
7425
  B !== void 0 && (e instanceof ShadowRoot ? e.removeChild(B) : e.body.removeChild(B), B = void 0);
6846
7426
  }
6847
- function yn(e, t) {
7427
+ function wn(e, t) {
6848
7428
  if (!e.dataTransfer)
6849
7429
  return;
6850
7430
  const o = t.prosemirrorView, i = o.dom.getBoundingClientRect(), n = {
@@ -6860,11 +7440,11 @@ function yn(e, t) {
6860
7440
  }
6861
7441
  if (!a)
6862
7442
  return;
6863
- const s = kn(a.node, o);
7443
+ const s = yn(a.node, o);
6864
7444
  if (s != null) {
6865
- const l = o.state.selection, d = o.state.doc, { from: u, to: p } = _n(l, d), h = u <= s && s < p, f = l.$anchor.node() !== l.$head.node() || l instanceof z;
7445
+ const l = o.state.selection, d = o.state.doc, { from: u, to: p } = vn(l, d), h = u <= s && s < p, f = l.$anchor.node() !== l.$head.node() || l instanceof O;
6866
7446
  h && f ? (o.dispatch(
6867
- o.state.tr.setSelection(z.create(d, u, p))
7447
+ o.state.tr.setSelection(O.create(d, u, p))
6868
7448
  ), $e(o, u, p)) : (o.dispatch(
6869
7449
  o.state.tr.setSelection(re.create(o.state.doc, s))
6870
7450
  ), $e(o, s));
@@ -6878,7 +7458,7 @@ function yn(e, t) {
6878
7458
  e.dataTransfer.clearData(), e.dataTransfer.setData("blocknote/html", A), e.dataTransfer.setData("text/html", N), e.dataTransfer.setData("text/plain", Z), e.dataTransfer.effectAllowed = "move", e.dataTransfer.setDragImage(B, 0, 0), o.dragging = { slice: m, move: !0 };
6879
7459
  }
6880
7460
  }
6881
- class wn {
7461
+ class xn {
6882
7462
  constructor(t, o, i) {
6883
7463
  c(this, "state");
6884
7464
  c(this, "emitUpdate");
@@ -7077,7 +7657,7 @@ class wn {
7077
7657
  });
7078
7658
  if (!i)
7079
7659
  return;
7080
- const n = k(
7660
+ const n = _(
7081
7661
  this.editor._tiptapEditor.state.doc,
7082
7662
  i.pos
7083
7663
  );
@@ -7092,8 +7672,8 @@ class wn {
7092
7672
  this.editor.openSelectionMenu("/");
7093
7673
  }
7094
7674
  }
7095
- const vn = new S("SideMenuPlugin");
7096
- class xn extends X {
7675
+ const En = new S("SideMenuPlugin");
7676
+ class Cn extends X {
7097
7677
  constructor(o) {
7098
7678
  super();
7099
7679
  c(this, "view");
@@ -7107,12 +7687,12 @@ class xn extends X {
7107
7687
  * Handles drag & drop events for blocks.
7108
7688
  */
7109
7689
  c(this, "blockDragStart", (o) => {
7110
- this.view.isDragging = !0, yn(o, this.editor);
7690
+ this.view.isDragging = !0, wn(o, this.editor);
7111
7691
  });
7112
7692
  /**
7113
7693
  * Handles drag & drop events for blocks.
7114
7694
  */
7115
- c(this, "blockDragEnd", () => vt(this.editor.prosemirrorView.root));
7695
+ c(this, "blockDragEnd", () => wt(this.editor.prosemirrorView.root));
7116
7696
  /**
7117
7697
  * Freezes the side menu. When frozen, the side menu will stay
7118
7698
  * attached to the same block regardless of which block is hovered by the
@@ -7128,8 +7708,8 @@ class xn extends X {
7128
7708
  this.view.menuFrozen = !1, this.view.state.show = !1, this.view.emitUpdate(this.view.state);
7129
7709
  });
7130
7710
  this.editor = o, this.plugin = new y({
7131
- key: vn,
7132
- view: (i) => (this.view = new wn(o, i, (n) => {
7711
+ key: En,
7712
+ view: (i) => (this.view = new xn(o, i, (n) => {
7133
7713
  this.emit("update", n);
7134
7714
  }), this.view)
7135
7715
  });
@@ -7138,8 +7718,8 @@ class xn extends X {
7138
7718
  return this.on("update", o);
7139
7719
  }
7140
7720
  }
7141
- const En = zt((e) => e.type.name === "blockContainer");
7142
- class Cn {
7721
+ const Sn = Ot((e) => e.type.name === "blockContainer");
7722
+ class Mn {
7143
7723
  constructor(t, o) {
7144
7724
  c(this, "state");
7145
7725
  c(this, "emitUpdate");
@@ -7200,7 +7780,7 @@ class Cn {
7200
7780
  }
7201
7781
  }
7202
7782
  const F = new S("SuggestionMenuPlugin");
7203
- class Sn extends X {
7783
+ class Tn extends X {
7204
7784
  constructor(o) {
7205
7785
  super();
7206
7786
  c(this, "view");
@@ -7220,7 +7800,7 @@ class Sn extends X {
7220
7800
  const i = this.triggerCharacters;
7221
7801
  this.plugin = new y({
7222
7802
  key: F,
7223
- view: () => (this.view = new Cn(
7803
+ view: () => (this.view = new Mn(
7224
7804
  o,
7225
7805
  (n, r) => {
7226
7806
  this.emit(`update ${n}`, r);
@@ -7276,7 +7856,7 @@ class Sn extends X {
7276
7856
  if (r === void 0)
7277
7857
  return null;
7278
7858
  if (!r.fromUserInput) {
7279
- const a = En(n.selection);
7859
+ const a = Sn(n.selection);
7280
7860
  if (a)
7281
7861
  return G.create(n.doc, [
7282
7862
  K.node(
@@ -7313,32 +7893,32 @@ class Sn extends X {
7313
7893
  return ((i = (o = this.view) == null ? void 0 : o.state) == null ? void 0 : i.show) || !1;
7314
7894
  }
7315
7895
  }
7316
- function Xr(e, t) {
7896
+ function Jr(e, t) {
7317
7897
  e.suggestionMenus.addTriggerCharacter(t);
7318
7898
  }
7319
- let w;
7899
+ let v;
7320
7900
  function qe(e) {
7321
- w || (w = document.createElement("div"), w.innerHTML = "_", w.style.opacity = "0", w.style.height = "1px", w.style.width = "1px", e instanceof Document ? e.body.appendChild(w) : e.appendChild(w));
7901
+ v || (v = document.createElement("div"), v.innerHTML = "_", v.style.opacity = "0", v.style.height = "1px", v.style.width = "1px", e instanceof Document ? e.body.appendChild(v) : e.appendChild(v));
7322
7902
  }
7323
- function Mn(e) {
7324
- w && (e instanceof Document ? e.body.removeChild(w) : e.removeChild(w), w = void 0);
7903
+ function Bn(e) {
7904
+ v && (e instanceof Document ? e.body.removeChild(v) : e.removeChild(v), v = void 0);
7325
7905
  }
7326
7906
  function ie(e) {
7327
7907
  return Array.prototype.indexOf.call(e.parentElement.childNodes, e);
7328
7908
  }
7329
- function Tn(e) {
7909
+ function Ln(e) {
7330
7910
  for (; e && e.nodeName !== "TD" && e.nodeName !== "TH"; )
7331
7911
  e = e.classList && e.classList.contains("ProseMirror") ? null : e.parentNode;
7332
7912
  return e;
7333
7913
  }
7334
- function Bn(e, t) {
7914
+ function In(e, t) {
7335
7915
  e.forEach((o) => {
7336
7916
  const i = t.querySelectorAll(o);
7337
7917
  for (let n = 0; n < i.length; n++)
7338
7918
  i[n].style.visibility = "hidden";
7339
7919
  });
7340
7920
  }
7341
- class Ln {
7921
+ class An {
7342
7922
  constructor(t, o, i) {
7343
7923
  c(this, "state");
7344
7924
  c(this, "emitUpdate");
@@ -7350,7 +7930,7 @@ class Ln {
7350
7930
  var d;
7351
7931
  if (this.menuFrozen)
7352
7932
  return;
7353
- const o = Tn(t.target);
7933
+ const o = Ln(t.target);
7354
7934
  if (!o || !this.editor.isEditable) {
7355
7935
  (d = this.state) != null && d.show && (this.state.show = !1, this.emitUpdate());
7356
7936
  return;
@@ -7364,14 +7944,14 @@ class Ln {
7364
7944
  return !1;
7365
7945
  if (u.type.name !== "blockContainer" || u.attrs.id !== s.id)
7366
7946
  return !0;
7367
- const h = v(
7947
+ const h = w(
7368
7948
  u,
7369
7949
  this.editor.schema.blockSchema,
7370
7950
  this.editor.schema.inlineContentSchema,
7371
7951
  this.editor.schema.styleSchema,
7372
7952
  this.editor.blockCache
7373
7953
  );
7374
- return Wi("table", h, this.editor) && (this.tablePos = p + 1, l = h), !1;
7954
+ return qi("table", h, this.editor) && (this.tablePos = p + 1, l = h), !1;
7375
7955
  }), !!l && (this.tableId = s.id, !(this.state !== void 0 && this.state.show && this.tableId === s.id && this.state.rowIndex === n && this.state.colIndex === i)))
7376
7956
  return this.state = {
7377
7957
  show: !0,
@@ -7387,7 +7967,7 @@ class Ln {
7387
7967
  var h;
7388
7968
  if (((h = this.state) == null ? void 0 : h.draggingState) === void 0)
7389
7969
  return;
7390
- t.preventDefault(), t.dataTransfer.dropEffect = "move", Bn(
7970
+ t.preventDefault(), t.dataTransfer.dropEffect = "move", In(
7391
7971
  [
7392
7972
  "column-resize-handle",
7393
7973
  "prosemirror-dropcursor-block",
@@ -7475,7 +8055,7 @@ class Ln {
7475
8055
  }
7476
8056
  }
7477
8057
  const Q = new S("TableHandlesPlugin");
7478
- class In extends X {
8058
+ class Nn extends X {
7479
8059
  constructor(o) {
7480
8060
  super();
7481
8061
  c(this, "view");
@@ -7500,7 +8080,7 @@ class In extends X {
7500
8080
  newIndex: this.view.state.colIndex,
7501
8081
  tablePos: this.view.tablePos
7502
8082
  })
7503
- ), qe(this.editor._tiptapEditor.view.root), o.dataTransfer.setDragImage(w, 0, 0), o.dataTransfer.effectAllowed = "move";
8083
+ ), qe(this.editor._tiptapEditor.view.root), o.dataTransfer.setDragImage(v, 0, 0), o.dataTransfer.effectAllowed = "move";
7504
8084
  });
7505
8085
  /**
7506
8086
  * Callback that should be set on the `dragStart` event for whichever element
@@ -7522,7 +8102,7 @@ class In extends X {
7522
8102
  newIndex: this.view.state.rowIndex,
7523
8103
  tablePos: this.view.tablePos
7524
8104
  })
7525
- ), qe(this.editor._tiptapEditor.view.root), o.dataTransfer.setDragImage(w, 0, 0), o.dataTransfer.effectAllowed = "copyMove";
8105
+ ), qe(this.editor._tiptapEditor.view.root), o.dataTransfer.setDragImage(v, 0, 0), o.dataTransfer.effectAllowed = "copyMove";
7526
8106
  });
7527
8107
  /**
7528
8108
  * Callback that should be set on the `dragEnd` event for both the element
@@ -7535,7 +8115,7 @@ class In extends X {
7535
8115
  );
7536
8116
  this.view.state.draggingState = void 0, this.view.emitUpdate(), this.editor.dispatch(
7537
8117
  this.editor._tiptapEditor.state.tr.setMeta(Q, null)
7538
- ), Mn(this.editor._tiptapEditor.view.root);
8118
+ ), Bn(this.editor._tiptapEditor.view.root);
7539
8119
  });
7540
8120
  /**
7541
8121
  * Freezes the drag handles. When frozen, they will stay attached to the same
@@ -7553,7 +8133,7 @@ class In extends X {
7553
8133
  });
7554
8134
  this.editor = o, this.plugin = new y({
7555
8135
  key: Q,
7556
- view: (i) => (this.view = new Ln(o, i, (n) => {
8136
+ view: (i) => (this.view = new An(o, i, (n) => {
7557
8137
  this.emit("update", n);
7558
8138
  }), this.view),
7559
8139
  // We use decorations to render the drop cursor when dragging a table row
@@ -7622,7 +8202,7 @@ function Xe(e, t) {
7622
8202
  ), s = Ie(a);
7623
8203
  return { internalHTML: n, externalHTML: a, plainText: s };
7624
8204
  }
7625
- const An = (e) => M.create({
8205
+ const Pn = (e) => M.create({
7626
8206
  name: "copyToClipboard",
7627
8207
  addProseMirrorPlugins() {
7628
8208
  return [
@@ -7662,7 +8242,7 @@ const An = (e) => M.create({
7662
8242
  ];
7663
8243
  }
7664
8244
  });
7665
- function Nn(e) {
8245
+ function Hn(e) {
7666
8246
  let t = e.getTextCursorPosition().block, o = e.schema.blockSchema[t.type].content;
7667
8247
  for (; o === "none"; )
7668
8248
  t = e.getTextCursorPosition().nextBlock, o = e.schema.blockSchema[t.type].content, e.setTextCursorPosition(t, "end");
@@ -7676,9 +8256,9 @@ function x(e, t) {
7676
8256
  "end"
7677
8257
  ));
7678
8258
  const i = e.getTextCursorPosition().block;
7679
- return Nn(e), i;
8259
+ return Hn(e), i;
7680
8260
  }
7681
- function Zr(e) {
8261
+ function Yr(e) {
7682
8262
  const t = [];
7683
8263
  return E("heading", e) && t.push(
7684
8264
  {
@@ -7828,7 +8408,7 @@ function Zr(e) {
7828
8408
  ...e.dictionary.slash_menu.emoji
7829
8409
  }), t;
7830
8410
  }
7831
- function Jr(e, t) {
8411
+ function Qr(e, t) {
7832
8412
  return e.filter(
7833
8413
  ({ title: o, aliases: i }) => o.toLowerCase().includes(t.toLowerCase()) || i && i.filter(
7834
8414
  (n) => n.toLowerCase().includes(t.toLowerCase())
@@ -7841,7 +8421,7 @@ const Ae = [
7841
8421
  "text/html",
7842
8422
  "text/plain"
7843
8423
  ];
7844
- function Pn(e, t) {
8424
+ function Un(e, t) {
7845
8425
  const o = e.split("/"), i = t.split("/");
7846
8426
  if (o.length !== 2)
7847
8427
  throw new Error(`The string ${e} is not a valid MIME type.`);
@@ -7874,7 +8454,7 @@ async function xt(e, t) {
7874
8454
  let s = "file";
7875
8455
  for (const d of r)
7876
8456
  for (const u of d.fileBlockAcceptMimeTypes || [])
7877
- if (Pn(n[a].type, u)) {
8457
+ if (Un(n[a].type, u)) {
7878
8458
  s = d.type;
7879
8459
  break;
7880
8460
  }
@@ -7894,7 +8474,7 @@ async function xt(e, t) {
7894
8474
  }
7895
8475
  }
7896
8476
  }
7897
- const Hn = (e) => M.create({
8477
+ const Dn = (e) => M.create({
7898
8478
  name: "pasteFromClipboard",
7899
8479
  addProseMirrorPlugins() {
7900
8480
  return [
@@ -7922,7 +8502,7 @@ const Hn = (e) => M.create({
7922
8502
  })
7923
8503
  ];
7924
8504
  }
7925
- }), Un = (e) => M.create({
8505
+ }), jn = (e) => M.create({
7926
8506
  name: "dropFile",
7927
8507
  addProseMirrorPlugins() {
7928
8508
  return [
@@ -7945,7 +8525,7 @@ const Hn = (e) => M.create({
7945
8525
  })
7946
8526
  ];
7947
8527
  }
7948
- }), jn = M.create({
8528
+ }), zn = M.create({
7949
8529
  name: "blockBackgroundColor",
7950
8530
  addGlobalAttributes() {
7951
8531
  return [
@@ -7953,9 +8533,9 @@ const Hn = (e) => M.create({
7953
8533
  types: ["blockContainer"],
7954
8534
  attributes: {
7955
8535
  backgroundColor: {
7956
- default: _.backgroundColor.default,
7957
- parseHTML: (e) => e.hasAttribute("data-background-color") ? e.getAttribute("data-background-color") : _.backgroundColor.default,
7958
- renderHTML: (e) => e.backgroundColor === _.backgroundColor.default ? {} : {
8536
+ default: k.backgroundColor.default,
8537
+ parseHTML: (e) => e.hasAttribute("data-background-color") ? e.getAttribute("data-background-color") : k.backgroundColor.default,
8538
+ renderHTML: (e) => e.backgroundColor === k.backgroundColor.default ? {} : {
7959
8539
  "data-background-color": e.backgroundColor
7960
8540
  }
7961
8541
  }
@@ -7963,7 +8543,7 @@ const Hn = (e) => M.create({
7963
8543
  }
7964
8544
  ];
7965
8545
  }
7966
- }), Dn = M.create({
8546
+ }), Rn = M.create({
7967
8547
  name: "textAlignment",
7968
8548
  addGlobalAttributes() {
7969
8549
  return [
@@ -7997,9 +8577,9 @@ const Hn = (e) => M.create({
7997
8577
  types: ["blockContainer"],
7998
8578
  attributes: {
7999
8579
  textColor: {
8000
- default: _.textColor.default,
8001
- parseHTML: (e) => e.hasAttribute("data-text-color") ? e.getAttribute("data-text-color") : _.textColor.default,
8002
- renderHTML: (e) => e.textColor === _.textColor.default ? {} : {
8580
+ default: k.textColor.default,
8581
+ parseHTML: (e) => e.hasAttribute("data-text-color") ? e.getAttribute("data-text-color") : k.textColor.default,
8582
+ renderHTML: (e) => e.textColor === k.textColor.default ? {} : {
8003
8583
  "data-text-color": e.textColor
8004
8584
  }
8005
8585
  }
@@ -8007,7 +8587,7 @@ const Hn = (e) => M.create({
8007
8587
  }
8008
8588
  ];
8009
8589
  }
8010
- }), Rn = M.create({
8590
+ }), On = M.create({
8011
8591
  name: "trailingNode",
8012
8592
  addProseMirrorPlugins() {
8013
8593
  const e = new S(this.name);
@@ -8042,8 +8622,8 @@ const Hn = (e) => M.create({
8042
8622
  })
8043
8623
  ];
8044
8624
  }
8045
- }), On = new S("non-editable-block"), zn = () => new y({
8046
- key: On,
8625
+ }), Fn = new S("non-editable-block"), Gn = () => new y({
8626
+ key: Fn,
8047
8627
  props: {
8048
8628
  handleKeyDown: (e, t) => {
8049
8629
  if ("node" in e.state.selection) {
@@ -8051,7 +8631,7 @@ const Hn = (e) => M.create({
8051
8631
  return !1;
8052
8632
  if (t.key.length === 1)
8053
8633
  return t.preventDefault(), !0;
8054
- if (t.key === "Enter") {
8634
+ if (t.key === "Enter" && !t.shiftKey && !t.altKey && !t.ctrlKey && !t.metaKey) {
8055
8635
  const o = e.state.tr;
8056
8636
  return e.dispatch(
8057
8637
  o.insert(
@@ -8068,7 +8648,7 @@ const Hn = (e) => M.create({
8068
8648
  return !1;
8069
8649
  }
8070
8650
  }
8071
- }), Ze = new S("previous-blocks"), Fn = {
8651
+ }), Ze = new S("previous-blocks"), Kn = {
8072
8652
  // Numbered List Items
8073
8653
  index: "index",
8074
8654
  // Headings
@@ -8077,7 +8657,7 @@ const Hn = (e) => M.create({
8077
8657
  type: "type",
8078
8658
  depth: "depth",
8079
8659
  "depth-change": "depth-change"
8080
- }, Gn = () => {
8660
+ }, Wn = () => {
8081
8661
  let e;
8082
8662
  return new y({
8083
8663
  key: Ze,
@@ -8110,9 +8690,9 @@ const Hn = (e) => M.create({
8110
8690
  apply(t, o, i, n) {
8111
8691
  if (o.currentTransactionOldBlockAttrs = {}, o.updatedBlocks.clear(), !t.docChanged || i.doc.eq(n.doc))
8112
8692
  return o;
8113
- const r = {}, a = De(i.doc, (d) => d.attrs.id), s = new Map(
8693
+ const r = {}, a = je(i.doc, (d) => d.attrs.id), s = new Map(
8114
8694
  a.map((d) => [d.node.attrs.id, d])
8115
- ), l = De(n.doc, (d) => d.attrs.id);
8695
+ ), l = je(n.doc, (d) => d.attrs.id);
8116
8696
  for (const d of l) {
8117
8697
  const u = s.get(d.node.attrs.id), p = u == null ? void 0 : u.node.firstChild, h = d.node.firstChild;
8118
8698
  if (u && p && h) {
@@ -8145,7 +8725,7 @@ const Hn = (e) => M.create({
8145
8725
  return;
8146
8726
  const a = o.currentTransactionOldBlockAttrs[n.attrs.id], s = {};
8147
8727
  for (const [d, u] of Object.entries(a))
8148
- s["data-prev-" + Fn[d]] = u || "none";
8728
+ s["data-prev-" + Kn[d]] = u || "none";
8149
8729
  const l = K.node(r, r + n.nodeSize, {
8150
8730
  ...s
8151
8731
  });
@@ -8154,13 +8734,13 @@ const Hn = (e) => M.create({
8154
8734
  }
8155
8735
  }
8156
8736
  });
8157
- }, Kn = {
8737
+ }, $n = {
8158
8738
  blockColor: "data-block-color",
8159
8739
  blockStyle: "data-block-style",
8160
8740
  id: "data-id",
8161
8741
  depth: "data-depth",
8162
8742
  depthChange: "data-depth-change"
8163
- }, Wn = $.create({
8743
+ }, qn = $.create({
8164
8744
  name: "blockContainer",
8165
8745
  group: "blockContainer",
8166
8746
  // A block always contains content, and optionally a blockGroup which contains nested blocks
@@ -8176,7 +8756,7 @@ const Hn = (e) => M.create({
8176
8756
  if (typeof e == "string")
8177
8757
  return !1;
8178
8758
  const t = {};
8179
- for (const [o, i] of Object.entries(Kn))
8759
+ for (const [o, i] of Object.entries($n))
8180
8760
  e.getAttribute(i) && (t[o] = e.getAttribute(i));
8181
8761
  return e.getAttribute("data-node-type") === "blockContainer" ? t : !1;
8182
8762
  }
@@ -8193,7 +8773,7 @@ const Hn = (e) => M.create({
8193
8773
  ...((n = this.options.domAttributes) == null ? void 0 : n.block) || {},
8194
8774
  ...e
8195
8775
  }, i = document.createElement("div");
8196
- i.className = D("bn-block", o.class), i.setAttribute("data-node-type", this.name);
8776
+ i.className = j("bn-block", o.class), i.setAttribute("data-node-type", this.name);
8197
8777
  for (const [r, a] of Object.entries(o))
8198
8778
  r !== "class" && i.setAttribute(r, a);
8199
8779
  return t.appendChild(i), {
@@ -8210,7 +8790,7 @@ const Hn = (e) => M.create({
8210
8790
  },
8211
8791
  // Deletes a block at a given position.
8212
8792
  BNDeleteBlock: (e) => ({ state: t, dispatch: o }) => {
8213
- const i = k(t.doc, e);
8793
+ const i = _(t.doc, e);
8214
8794
  if (i === void 0)
8215
8795
  return !1;
8216
8796
  const { startPos: n, endPos: r } = i;
@@ -8218,7 +8798,7 @@ const Hn = (e) => M.create({
8218
8798
  },
8219
8799
  // Updates a block at a given position.
8220
8800
  BNUpdateBlock: (e, t) => ({ state: o, dispatch: i }) => {
8221
- const n = k(o.doc, e);
8801
+ const n = _(o.doc, e);
8222
8802
  if (n === void 0)
8223
8803
  return !1;
8224
8804
  const { startPos: r, endPos: a, node: s, contentNode: l } = n;
@@ -8236,7 +8816,7 @@ const Hn = (e) => M.create({
8236
8816
  s.childCount === 2 ? o.tr.replace(
8237
8817
  r + l.nodeSize + 1,
8238
8818
  a - 1,
8239
- new j(L.from(h), 0, 0)
8819
+ new D(L.from(h), 0, 0)
8240
8820
  ) : o.tr.insert(
8241
8821
  r + l.nodeSize,
8242
8822
  o.schema.nodes.blockGroup.create({}, h)
@@ -8321,7 +8901,7 @@ const Hn = (e) => M.create({
8321
8901
  const i = t.doc.resolve(e + 1).node().type.name === "blockContainer", n = t.doc.resolve(e - 1).node().type.name === "blockContainer";
8322
8902
  if (!i || !n)
8323
8903
  return !1;
8324
- const r = k(
8904
+ const r = _(
8325
8905
  t.doc,
8326
8906
  e + 1
8327
8907
  ), { node: a, contentNode: s, startPos: l, endPos: d, depth: u } = r;
@@ -8331,15 +8911,15 @@ const Hn = (e) => M.create({
8331
8911
  ), m = t.doc.resolve(d - 1), g = f.blockRange(m);
8332
8912
  o && t.tr.lift(g, u - 1);
8333
8913
  }
8334
- let p = e - 1, h = k(t.doc, p);
8914
+ let p = e - 1, h = _(t.doc, p);
8335
8915
  for (; h.numChildBlocks > 0; )
8336
- if (p--, h = k(t.doc, p), h === void 0)
8916
+ if (p--, h = _(t.doc, p), h === void 0)
8337
8917
  return !1;
8338
8918
  return o && (o(
8339
8919
  t.tr.deleteRange(l, l + s.nodeSize).replace(
8340
8920
  p - 1,
8341
8921
  l,
8342
- new j(s.content, 0, 0)
8922
+ new D(s.content, 0, 0)
8343
8923
  ).scrollIntoView()
8344
8924
  ), t.tr.setSelection(
8345
8925
  new Y(t.doc.resolve(p - 1))
@@ -8352,14 +8932,14 @@ const Hn = (e) => M.create({
8352
8932
  // - `keepProps` is usually true when `keepType` is true, except for when
8353
8933
  // creating new list item blocks with Enter.
8354
8934
  BNSplitBlock: (e, t, o) => ({ state: i, dispatch: n }) => {
8355
- const r = k(i.doc, e);
8935
+ const r = _(i.doc, e);
8356
8936
  if (r === void 0)
8357
8937
  return !1;
8358
8938
  const { contentNode: a, contentType: s, startPos: l, endPos: d, depth: u } = r, p = i.doc.cut(l + 1, e), h = i.doc.cut(e, d - 1), f = i.schema.nodes.blockContainer.createAndFill(), m = d + 1, g = m + 2;
8359
8939
  return n && (i.tr.insert(m, f), i.tr.replace(
8360
8940
  g,
8361
8941
  g + 1,
8362
- h.content.size > 0 ? new j(
8942
+ h.content.size > 0 ? new D(
8363
8943
  L.from(h),
8364
8944
  u + 2,
8365
8945
  u + 2
@@ -8374,7 +8954,7 @@ const Hn = (e) => M.create({
8374
8954
  ), i.tr.replace(
8375
8955
  l + 1,
8376
8956
  d - 1,
8377
- p.content.size > 0 ? new j(
8957
+ p.content.size > 0 ? new D(
8378
8958
  L.from(p),
8379
8959
  u + 2,
8380
8960
  u + 2
@@ -8384,7 +8964,7 @@ const Hn = (e) => M.create({
8384
8964
  };
8385
8965
  },
8386
8966
  addProseMirrorPlugins() {
8387
- return [Gn(), zn()];
8967
+ return [Wn(), Gn()];
8388
8968
  },
8389
8969
  addKeyboardShortcuts() {
8390
8970
  return {
@@ -8395,7 +8975,7 @@ const Hn = (e) => M.create({
8395
8975
  () => i.undoInputRule(),
8396
8976
  // Reverts block content type to a paragraph if the selection is at the start of the block.
8397
8977
  () => i.command(({ state: n }) => {
8398
- const { contentType: r, startPos: a } = k(
8978
+ const { contentType: r, startPos: a } = _(
8399
8979
  n.doc,
8400
8980
  n.selection.from
8401
8981
  ), s = n.selection.from === a + 1, l = r.name === "paragraph";
@@ -8406,7 +8986,7 @@ const Hn = (e) => M.create({
8406
8986
  }),
8407
8987
  // Removes a level of nesting if the block is indented if the selection is at the start of the block.
8408
8988
  () => i.command(({ state: n }) => {
8409
- const { startPos: r } = k(
8989
+ const { startPos: r } = _(
8410
8990
  n.doc,
8411
8991
  n.selection.from
8412
8992
  );
@@ -8415,7 +8995,7 @@ const Hn = (e) => M.create({
8415
8995
  // Merges block with the previous one if it isn't indented, isn't the first block in the doc, and the selection
8416
8996
  // is at the start of the block.
8417
8997
  () => i.command(({ state: n }) => {
8418
- const { depth: r, startPos: a } = k(
8998
+ const { depth: r, startPos: a } = _(
8419
8999
  n.doc,
8420
9000
  n.selection.from
8421
9001
  ), s = n.selection.from === a + 1, l = n.selection.empty, d = a === 2, u = a - 1;
@@ -8429,7 +9009,7 @@ const Hn = (e) => M.create({
8429
9009
  // if one exists, the block has no children, and the selection is at the
8430
9010
  // end of the block.
8431
9011
  () => i.command(({ state: n }) => {
8432
- const { node: r, depth: a, endPos: s } = k(
9012
+ const { node: r, depth: a, endPos: s } = _(
8433
9013
  n.doc,
8434
9014
  n.selection.from
8435
9015
  ), l = s === n.doc.nodeSize - 4, d = n.selection.from === s - 1, u = n.selection.empty, p = r.childCount === 2;
@@ -8446,7 +9026,7 @@ const Hn = (e) => M.create({
8446
9026
  // Removes a level of nesting if the block is empty & indented, while the selection is also empty & at the start
8447
9027
  // of the block.
8448
9028
  () => i.command(({ state: n }) => {
8449
- const { contentNode: r, depth: a } = k(
9029
+ const { contentNode: r, depth: a } = _(
8450
9030
  n.doc,
8451
9031
  n.selection.from
8452
9032
  ), s = n.selection.$anchor.parentOffset === 0, l = n.selection.anchor === n.selection.head, d = r.childCount === 0, u = a > 2;
@@ -8455,7 +9035,7 @@ const Hn = (e) => M.create({
8455
9035
  // Creates a new block and moves the selection to it if the current one is empty, while the selection is also
8456
9036
  // empty & at the start of the block.
8457
9037
  () => i.command(({ state: n, chain: r }) => {
8458
- const { contentNode: a, endPos: s } = k(
9038
+ const { contentNode: a, endPos: s } = _(
8459
9039
  n.doc,
8460
9040
  n.selection.from
8461
9041
  ), l = n.selection.$anchor.parentOffset === 0, d = n.selection.anchor === n.selection.head, u = a.childCount === 0;
@@ -8468,7 +9048,7 @@ const Hn = (e) => M.create({
8468
9048
  // Splits the current block, moving content inside that's after the cursor to a new text block below. Also
8469
9049
  // deletes the selection beforehand, if it's not empty.
8470
9050
  () => i.command(({ state: n, chain: r }) => {
8471
- const { contentNode: a } = k(
9051
+ const { contentNode: a } = _(
8472
9052
  n.doc,
8473
9053
  n.selection.from
8474
9054
  ), s = n.selection.$anchor.parentOffset === 0;
@@ -8491,7 +9071,7 @@ const Hn = (e) => M.create({
8491
9071
  }
8492
9072
  };
8493
9073
  }
8494
- }), $n = $.create({
9074
+ }), Xn = $.create({
8495
9075
  name: "blockGroup",
8496
9076
  group: "blockGroup",
8497
9077
  content: "blockContainer+",
@@ -8509,7 +9089,7 @@ const Hn = (e) => M.create({
8509
9089
  ...((i = this.options.domAttributes) == null ? void 0 : i.blockGroup) || {},
8510
9090
  ...e
8511
9091
  }, o = document.createElement("div");
8512
- o.className = D(
9092
+ o.className = j(
8513
9093
  "bn-block-group",
8514
9094
  t.class
8515
9095
  ), o.setAttribute("data-node-type", "blockGroup");
@@ -8520,11 +9100,11 @@ const Hn = (e) => M.create({
8520
9100
  contentDOM: o
8521
9101
  };
8522
9102
  }
8523
- }), qn = $.create({
9103
+ }), Zn = $.create({
8524
9104
  name: "doc",
8525
9105
  topNode: !0,
8526
9106
  content: "blockGroup"
8527
- }), Xn = (e) => {
9107
+ }), Jn = (e) => {
8528
9108
  var i;
8529
9109
  const t = [
8530
9110
  J.ClipboardTextSerializer,
@@ -8541,7 +9121,7 @@ const Hn = (e) => M.create({
8541
9121
  fo.extend({ priority: 10 }),
8542
9122
  // Comments,
8543
9123
  // basics:
8544
- ko,
9124
+ _o,
8545
9125
  // marks:
8546
9126
  bo.extend({
8547
9127
  addKeyboardShortcuts() {
@@ -8552,8 +9132,8 @@ const Hn = (e) => M.create({
8552
9132
  }),
8553
9133
  ...Object.values(e.styleSpecs).map((n) => n.implementation.mark),
8554
9134
  Vn,
8555
- jn,
8556
- Dn,
9135
+ zn,
9136
+ Rn,
8557
9137
  // make sure escape blurs editor, so that we can tab to other elements in the host page (accessibility)
8558
9138
  M.create({
8559
9139
  name: "OverrideEscape",
@@ -8564,12 +9144,12 @@ const Hn = (e) => M.create({
8564
9144
  }
8565
9145
  }),
8566
9146
  // nodes
8567
- qn,
8568
- Wn.configure({
9147
+ Zn,
9148
+ qn.configure({
8569
9149
  editor: e.editor,
8570
9150
  domAttributes: e.domAttributes
8571
9151
  }),
8572
- $n.configure({
9152
+ Xn.configure({
8573
9153
  domAttributes: e.domAttributes
8574
9154
  }),
8575
9155
  ...Object.values(e.inlineContentSpecs).filter((n) => n.config !== "link" && n.config !== "text").map((n) => n.implementation.node.configure({
@@ -8589,13 +9169,13 @@ const Hn = (e) => M.create({
8589
9169
  domAttributes: e.domAttributes
8590
9170
  })
8591
9171
  ]),
8592
- An(e.editor),
8593
- Hn(e.editor),
8594
- Un(e.editor),
9172
+ Pn(e.editor),
9173
+ Dn(e.editor),
9174
+ jn(e.editor),
8595
9175
  ho.configure({ width: 5, color: "#ddeeff" }),
8596
9176
  // This needs to be at the bottom of this list, because Key events (such as enter, when selecting a /command),
8597
9177
  // should be handled before Enter handlers in other components like splitListItem
8598
- ...e.trailingBlock === void 0 || e.trailingBlock ? [Rn] : []
9178
+ ...e.trailingBlock === void 0 || e.trailingBlock ? [On] : []
8599
9179
  ];
8600
9180
  if (e.collaboration) {
8601
9181
  if (t.push(
@@ -8624,20 +9204,20 @@ const Hn = (e) => M.create({
8624
9204
  const o = e.disableExtensions || [];
8625
9205
  return t.filter((n) => !o.includes(n.name));
8626
9206
  };
8627
- function Zn(e, t) {
9207
+ function Yn(e, t) {
8628
9208
  const o = [];
8629
9209
  return e.forEach((i, n, r) => {
8630
9210
  r !== t && o.push(i);
8631
9211
  }), L.from(o);
8632
9212
  }
8633
- function Jn(e, t) {
9213
+ function Qn(e, t) {
8634
9214
  let o = L.from(e.content);
8635
9215
  for (let i = 0; i < o.childCount; i++)
8636
9216
  if (o.child(i).type.spec.group === "blockContent") {
8637
9217
  const n = [o.child(i)];
8638
9218
  if (i + 1 < o.childCount && o.child(i + 1).type.spec.group === "blockGroup") {
8639
9219
  const a = o.child(i + 1).child(0).child(0);
8640
- (a.type.name === "bulletListItem" || a.type.name === "numberedListItem" || a.type.name === "checkListItem") && (n.push(o.child(i + 1)), o = Zn(o, i + 1));
9220
+ (a.type.name === "bulletListItem" || a.type.name === "numberedListItem" || a.type.name === "checkListItem") && (n.push(o.child(i + 1)), o = Yn(o, i + 1));
8641
9221
  }
8642
9222
  const r = t.state.schema.nodes.blockContainer.create(
8643
9223
  void 0,
@@ -8645,7 +9225,7 @@ function Jn(e, t) {
8645
9225
  );
8646
9226
  o = o.replaceChild(i, r);
8647
9227
  }
8648
- return new j(o, e.openStart, e.openEnd);
9228
+ return new D(o, e.openStart, e.openEnd);
8649
9229
  }
8650
9230
  function be(e) {
8651
9231
  return e && Object.fromEntries(
@@ -8664,7 +9244,7 @@ class Ne {
8664
9244
  c(this, "BlockNoteEditor", "only for types");
8665
9245
  c(this, "Block", "only for types");
8666
9246
  c(this, "PartialBlock", "only for types");
8667
- this.blockSpecs = be(t == null ? void 0 : t.blockSpecs) || gt, this.inlineContentSpecs = be(t == null ? void 0 : t.inlineContentSpecs) || kt, this.styleSpecs = be(t == null ? void 0 : t.styleSpecs) || bt, this.blockSchema = ut(this.blockSpecs), this.inlineContentSchema = pt(
9247
+ this.blockSpecs = be(t == null ? void 0 : t.blockSpecs) || gt, this.inlineContentSpecs = be(t == null ? void 0 : t.inlineContentSpecs) || _t, this.styleSpecs = be(t == null ? void 0 : t.styleSpecs) || bt, this.blockSchema = ut(this.blockSpecs), this.inlineContentSchema = pt(
8668
9248
  this.inlineContentSpecs
8669
9249
  ), this.styleSchema = mt(this.styleSpecs);
8670
9250
  }
@@ -8755,8 +9335,8 @@ class Et extends Ft {
8755
9335
  }
8756
9336
  Et.prototype.createView = () => {
8757
9337
  };
8758
- const Yn = new S("blocknote-placeholder"), Qn = (e, t) => new y({
8759
- key: Yn,
9338
+ const er = new S("blocknote-placeholder"), tr = (e, t) => new y({
9339
+ key: er,
8760
9340
  view: () => {
8761
9341
  const o = document.createElement("style"), i = e._tiptapEditor.options.injectNonce;
8762
9342
  i && o.setAttribute("nonce", i), e._tiptapEditor.view.root instanceof ShadowRoot ? e._tiptapEditor.view.root.append(o) : e._tiptapEditor.view.root.head.appendChild(o);
@@ -8800,7 +9380,7 @@ const Yn = new S("blocknote-placeholder"), Qn = (e, t) => new y({
8800
9380
  return G.create(i, [l]);
8801
9381
  }
8802
9382
  }
8803
- }), er = {
9383
+ }), or = {
8804
9384
  enableInputRules: !0,
8805
9385
  enablePasteRules: !0,
8806
9386
  enableCoreExtensions: !1
@@ -8895,8 +9475,8 @@ class Ct {
8895
9475
  ...t.placeholders
8896
9476
  }
8897
9477
  };
8898
- this.schema = i.schema, this.blockImplementations = i.schema.blockSpecs, this.inlineContentImplementations = i.schema.inlineContentSpecs, this.styleImplementations = i.schema.styleSpecs, this.formattingToolbar = new mn(this), this.linkToolbar = new bn(this), this.sideMenu = new xn(this), this.suggestionMenus = new Sn(this), this.filePanel = new un(this), E("table", this) && (this.tableHandles = new In(this));
8899
- const n = Xn({
9478
+ this.schema = i.schema, this.blockImplementations = i.schema.blockSpecs, this.inlineContentImplementations = i.schema.inlineContentSpecs, this.styleImplementations = i.schema.styleSpecs, this.formattingToolbar = new gn(this), this.linkToolbar = new kn(this), this.sideMenu = new Cn(this), this.suggestionMenus = new Tn(this), this.filePanel = new hn(this), E("table", this) && (this.tableHandles = new Nn(this));
9479
+ const n = Jn({
8900
9480
  editor: this,
8901
9481
  domAttributes: i.domAttributes || {},
8902
9482
  blockSpecs: this.schema.blockSpecs,
@@ -8914,7 +9494,7 @@ class Ct {
8914
9494
  this.suggestionMenus.plugin,
8915
9495
  ...this.filePanel ? [this.filePanel.plugin] : [],
8916
9496
  ...this.tableHandles ? [this.tableHandles.plugin] : [],
8917
- Qn(this, i.placeholders)
9497
+ tr(this, i.placeholders)
8918
9498
  ]
8919
9499
  });
8920
9500
  n.push(r), this.uploadFile = i.uploadFile, this.resolveFileUrl = i.resolveFileUrl || (async (g) => g), this.headless = i._headless, i.collaboration && i.initialContent && console.warn(
@@ -8936,7 +9516,7 @@ class Ct {
8936
9516
  "initialContent must be a non-empty array of blocks, received: " + a
8937
9517
  );
8938
9518
  const s = {
8939
- ...er,
9519
+ ...or,
8940
9520
  ...i._tiptapOptions,
8941
9521
  content: a,
8942
9522
  extensions: [
@@ -8948,13 +9528,13 @@ class Ct {
8948
9528
  attributes: {
8949
9529
  ...(p = (u = i._tiptapOptions) == null ? void 0 : u.editorProps) == null ? void 0 : p.attributes,
8950
9530
  ...(h = i.domAttributes) == null ? void 0 : h.editor,
8951
- class: D(
9531
+ class: j(
8952
9532
  "bn-editor",
8953
9533
  i.defaultStyles ? "bn-default-styles" : "",
8954
9534
  ((m = (f = i.domAttributes) == null ? void 0 : f.editor) == null ? void 0 : m.class) || ""
8955
9535
  )
8956
9536
  },
8957
- transformPasted: Jn
9537
+ transformPasted: Qn
8958
9538
  }
8959
9539
  };
8960
9540
  this.headless ? this._pmSchema = Kt(s.extensions) : (this._tiptapEditor = new Et(
@@ -8996,7 +9576,7 @@ class Ct {
8996
9576
  get document() {
8997
9577
  const t = [];
8998
9578
  return this._tiptapEditor.state.doc.firstChild.descendants((o) => (t.push(
8999
- v(
9579
+ w(
9000
9580
  o,
9001
9581
  this.schema.blockSchema,
9002
9582
  this.schema.inlineContentSchema,
@@ -9013,7 +9593,7 @@ class Ct {
9013
9593
  getBlock(t) {
9014
9594
  const o = typeof t == "string" ? t : t.id;
9015
9595
  let i;
9016
- return this._tiptapEditor.state.doc.firstChild.descendants((n) => typeof i < "u" ? !1 : n.type.name !== "blockContainer" || n.attrs.id !== o ? !0 : (i = v(
9596
+ return this._tiptapEditor.state.doc.firstChild.descendants((n) => typeof i < "u" ? !1 : n.type.name !== "blockContainer" || n.attrs.id !== o ? !0 : (i = w(
9017
9597
  n,
9018
9598
  this.schema.blockSchema,
9019
9599
  this.schema.inlineContentSchema,
@@ -9060,7 +9640,7 @@ class Ct {
9060
9640
  * @returns A snapshot of the current text cursor position.
9061
9641
  */
9062
9642
  getTextCursorPosition() {
9063
- const { node: t, depth: o, startPos: i, endPos: n } = k(
9643
+ const { node: t, depth: o, startPos: i, endPos: n } = _(
9064
9644
  this._tiptapEditor.state.doc,
9065
9645
  this._tiptapEditor.state.selection.from
9066
9646
  ), r = this._tiptapEditor.state.doc.resolve(n).index(o - 1), a = this._tiptapEditor.state.doc.resolve(n + 1).node().childCount;
@@ -9068,21 +9648,21 @@ class Ct {
9068
9648
  r > 0 && (s = this._tiptapEditor.state.doc.resolve(i - 2).node());
9069
9649
  let l;
9070
9650
  return r < a - 1 && (l = this._tiptapEditor.state.doc.resolve(n + 2).node()), {
9071
- block: v(
9651
+ block: w(
9072
9652
  t,
9073
9653
  this.schema.blockSchema,
9074
9654
  this.schema.inlineContentSchema,
9075
9655
  this.schema.styleSchema,
9076
9656
  this.blockCache
9077
9657
  ),
9078
- prevBlock: s === void 0 ? void 0 : v(
9658
+ prevBlock: s === void 0 ? void 0 : w(
9079
9659
  s,
9080
9660
  this.schema.blockSchema,
9081
9661
  this.schema.inlineContentSchema,
9082
9662
  this.schema.styleSchema,
9083
9663
  this.blockCache
9084
9664
  ),
9085
- nextBlock: l === void 0 ? void 0 : v(
9665
+ nextBlock: l === void 0 ? void 0 : w(
9086
9666
  l,
9087
9667
  this.schema.blockSchema,
9088
9668
  this.schema.inlineContentSchema,
@@ -9098,7 +9678,7 @@ class Ct {
9098
9678
  * @param placement Whether the text cursor should be placed at the start or end of the block.
9099
9679
  */
9100
9680
  setTextCursorPosition(t, o = "start") {
9101
- const i = typeof t == "string" ? t : t.id, { posBeforeNode: n } = Le(i, this._tiptapEditor.state.doc), { startPos: r, contentNode: a } = k(
9681
+ const i = typeof t == "string" ? t : t.id, { posBeforeNode: n } = Le(i, this._tiptapEditor.state.doc), { startPos: r, contentNode: a } = _(
9102
9682
  this._tiptapEditor.state.doc,
9103
9683
  n + 2
9104
9684
  ), s = this.schema.blockSchema[a.type.name].content;
@@ -9125,7 +9705,7 @@ class Ct {
9125
9705
  return;
9126
9706
  const t = [];
9127
9707
  return this._tiptapEditor.state.doc.descendants((o, i) => o.type.spec.group !== "blockContent" || i + o.nodeSize < this._tiptapEditor.state.selection.from || i > this._tiptapEditor.state.selection.to ? !0 : (t.push(
9128
- v(
9708
+ w(
9129
9709
  this._tiptapEditor.state.doc.resolve(i).node(),
9130
9710
  this.schema.blockSchema,
9131
9711
  this.schema.inlineContentSchema,
@@ -9144,7 +9724,7 @@ class Ct {
9144
9724
  throw new Error("no editor, but also not headless?");
9145
9725
  return !1;
9146
9726
  }
9147
- return this._tiptapEditor.isEditable;
9727
+ return this._tiptapEditor.isEditable === void 0 ? !0 : this._tiptapEditor.isEditable;
9148
9728
  }
9149
9729
  /**
9150
9730
  * Makes the editor editable or locks it, depending on the argument passed.
@@ -9167,7 +9747,7 @@ class Ct {
9167
9747
  * `referenceBlock`. Inserts the blocks at the start of the existing block's children if "nested" is used.
9168
9748
  */
9169
9749
  insertBlocks(t, o, i = "before") {
9170
- return qi(t, o, i, this);
9750
+ return Zi(t, o, i, this);
9171
9751
  }
9172
9752
  /**
9173
9753
  * Updates an existing block in the editor. Since updatedBlock is a PartialBlock object, some fields might not be
@@ -9177,14 +9757,14 @@ class Ct {
9177
9757
  * @param update A partial block which defines how the existing block should be changed.
9178
9758
  */
9179
9759
  updateBlock(t, o) {
9180
- return Xi(t, o, this);
9760
+ return Ji(t, o, this);
9181
9761
  }
9182
9762
  /**
9183
9763
  * Removes existing blocks from the editor. Throws an error if any of the blocks could not be found.
9184
9764
  * @param blocksToRemove An array of identifiers for existing blocks that should be removed.
9185
9765
  */
9186
9766
  removeBlocks(t) {
9187
- return Zi(t, this);
9767
+ return Yi(t, this);
9188
9768
  }
9189
9769
  /**
9190
9770
  * Replaces existing blocks in the editor with new blocks. If the blocks that should be removed are not adjacent or
@@ -9194,7 +9774,7 @@ class Ct {
9194
9774
  * @param blocksToInsert An array of partial blocks to replace the old ones with.
9195
9775
  */
9196
9776
  replaceBlocks(t, o) {
9197
- return Ji(t, o, this);
9777
+ return Qi(t, o, this);
9198
9778
  }
9199
9779
  /**
9200
9780
  * Insert a piece of content at the current cursor position.
@@ -9207,7 +9787,7 @@ class Ct {
9207
9787
  this.pmSchema,
9208
9788
  this.schema.styleSchema
9209
9789
  );
9210
- Yi(
9790
+ en(
9211
9791
  {
9212
9792
  from: this._tiptapEditor.state.selection.from,
9213
9793
  to: this._tiptapEditor.state.selection.to
@@ -9307,7 +9887,7 @@ class Ct {
9307
9887
  * Checks if the block containing the text cursor can be nested.
9308
9888
  */
9309
9889
  canNestBlock() {
9310
- const { startPos: t, depth: o } = k(
9890
+ const { startPos: t, depth: o } = _(
9311
9891
  this._tiptapEditor.state.doc,
9312
9892
  this._tiptapEditor.state.selection.from
9313
9893
  );
@@ -9323,7 +9903,7 @@ class Ct {
9323
9903
  * Checks if the block containing the text cursor is nested.
9324
9904
  */
9325
9905
  canUnnestBlock() {
9326
- const { depth: t } = k(
9906
+ const { depth: t } = _(
9327
9907
  this._tiptapEditor.state.doc,
9328
9908
  this._tiptapEditor.state.selection.from
9329
9909
  );
@@ -9365,7 +9945,7 @@ class Ct {
9365
9945
  * @returns The blocks parsed from the HTML string.
9366
9946
  */
9367
9947
  async tryParseHTMLToBlocks(t) {
9368
- return wt(
9948
+ return vt(
9369
9949
  t,
9370
9950
  this.schema.blockSchema,
9371
9951
  this.schema.inlineContentSchema,
@@ -9380,7 +9960,7 @@ class Ct {
9380
9960
  * @returns The blocks, serialized as a Markdown string.
9381
9961
  */
9382
9962
  async blocksToMarkdownLossy(t = this.document) {
9383
- return tn(t, this.pmSchema, this, {});
9963
+ return nn(t, this.pmSchema, this, {});
9384
9964
  }
9385
9965
  /**
9386
9966
  * Creates a list of blocks from a Markdown string. Tries to create `Block` and `InlineNode` objects based on
@@ -9390,7 +9970,7 @@ class Ct {
9390
9970
  * @returns The blocks parsed from the Markdown string.
9391
9971
  */
9392
9972
  async tryParseMarkdownToBlocks(t) {
9393
- return dn(
9973
+ return un(
9394
9974
  t,
9395
9975
  this.schema.blockSchema,
9396
9976
  this.schema.inlineContentSchema,
@@ -9449,22 +10029,22 @@ class Ct {
9449
10029
  );
9450
10030
  }
9451
10031
  }
9452
- let ne, ke;
9453
- async function Yr(e, t) {
9454
- if (!Ki("text", e))
10032
+ let ne, _e;
10033
+ async function ea(e, t) {
10034
+ if (!$i("text", e))
9455
10035
  return [];
9456
10036
  if (!ne) {
9457
- ne = import("@emoji-mart/data"), ke = await import("emoji-mart");
10037
+ ne = import("@emoji-mart/data"), _e = await import("emoji-mart");
9458
10038
  const n = (await ne).default;
9459
- await ke.init({ data: n });
10039
+ await _e.init({ data: n });
9460
10040
  }
9461
10041
  const o = (await ne).default;
9462
- return (t.trim() === "" ? Object.values(o.emojis) : await ke.SearchIndex.search(t)).map((n) => ({
10042
+ return (t.trim() === "" ? Object.values(o.emojis) : await _e.SearchIndex.search(t)).map((n) => ({
9463
10043
  id: n.skins[0].native,
9464
10044
  onItemClick: () => e.insertInlineContent(n.skins[0].native + " ")
9465
10045
  }));
9466
10046
  }
9467
- function _e(e = "") {
10047
+ function ke(e = "") {
9468
10048
  return typeof e == "string" ? [
9469
10049
  {
9470
10050
  type: "text",
@@ -9474,16 +10054,16 @@ function _e(e = "") {
9474
10054
  ] : e;
9475
10055
  }
9476
10056
  function St(e) {
9477
- return typeof e == "string" ? _e(e) : Array.isArray(e) ? e.flatMap((t) => typeof t == "string" ? _e(t) : ot(t) ? {
10057
+ return typeof e == "string" ? ke(e) : Array.isArray(e) ? e.flatMap((t) => typeof t == "string" ? ke(t) : ot(t) ? {
9478
10058
  ...t,
9479
- content: _e(t.content)
10059
+ content: ke(t.content)
9480
10060
  } : te(t) ? t : {
9481
10061
  props: {},
9482
10062
  ...t,
9483
10063
  content: St(t.content)
9484
10064
  }) : e;
9485
10065
  }
9486
- function Qr(e, t) {
10066
+ function ta(e, t) {
9487
10067
  return t.map(
9488
10068
  (o) => Mt(e, o)
9489
10069
  );
@@ -9507,138 +10087,141 @@ function Mt(e, t) {
9507
10087
  children: o.children.map((i) => Mt(e, i))
9508
10088
  };
9509
10089
  }
9510
- function tr(e) {
9511
- e.id || (e.id = oe.options.generateID()), e.children && or(e.children);
10090
+ function ir(e) {
10091
+ e.id || (e.id = oe.options.generateID()), e.children && nr(e.children);
9512
10092
  }
9513
- function or(e) {
10093
+ function nr(e) {
9514
10094
  for (const t of e)
9515
- tr(t);
10095
+ ir(t);
9516
10096
  }
9517
10097
  export {
9518
- Yo as AudioBlock,
10098
+ ei as AudioBlock,
9519
10099
  Ct as BlockNoteEditor,
9520
10100
  Ne as BlockNoteSchema,
9521
- ni as FileBlock,
9522
- un as FilePanelProsemirrorPlugin,
9523
- cn as FilePanelView,
9524
- mn as FormattingToolbarProsemirrorPlugin,
9525
- pn as FormattingToolbarView,
9526
- wt as HTMLToBlocks,
9527
- ci as ImageBlock,
9528
- bn as LinkToolbarProsemirrorPlugin,
9529
- xn as SideMenuProsemirrorPlugin,
9530
- wn as SideMenuView,
9531
- Sn as SuggestionMenuProseMirrorPlugin,
9532
- In as TableHandlesProsemirrorPlugin,
9533
- Ln as TableHandlesView,
10101
+ ai as FileBlock,
10102
+ hn as FilePanelProsemirrorPlugin,
10103
+ pn as FilePanelView,
10104
+ gn as FormattingToolbarProsemirrorPlugin,
10105
+ mn as FormattingToolbarView,
10106
+ vt as HTMLToBlocks,
10107
+ pi as ImageBlock,
10108
+ kn as LinkToolbarProsemirrorPlugin,
10109
+ Cn as SideMenuProsemirrorPlugin,
10110
+ xn as SideMenuView,
10111
+ Tn as SuggestionMenuProseMirrorPlugin,
10112
+ Nn as TableHandlesProsemirrorPlugin,
10113
+ An as TableHandlesView,
9534
10114
  oe as UniqueID,
9535
10115
  I as UnreachableCaseError,
9536
- gi as VideoBlock,
9537
- tr as addIdsToBlock,
9538
- or as addIdsToBlocks,
10116
+ _i as VideoBlock,
10117
+ ir as addIdsToBlock,
10118
+ nr as addIdsToBlocks,
9539
10119
  Vo as addInlineContentAttributes,
9540
- Ro as addInlineContentKeyboardShortcuts,
9541
- Ko as addStyleAttributes,
9542
- Dr as assertEmpty,
9543
- qo as audioBlockConfig,
9544
- Zo as audioParse,
9545
- $o as audioPropSchema,
9546
- Xo as audioRender,
9547
- Jo as audioToExternalHTML,
10120
+ Oo as addInlineContentKeyboardShortcuts,
10121
+ $o as addStyleAttributes,
10122
+ Rr as assertEmpty,
10123
+ Zo as audioBlockConfig,
10124
+ Yo as audioParse,
10125
+ Xo as audioPropSchema,
10126
+ Jo as audioRender,
10127
+ Qo as audioToExternalHTML,
9548
10128
  P as blockToNode,
9549
- tn as blocksToMarkdown,
10129
+ nn as blocksToMarkdown,
9550
10130
  ae as camelToDataKebab,
9551
- qr as checkBlockHasDefaultProp,
9552
- Wi as checkBlockIsDefaultType,
9553
- Kr as checkBlockIsFileBlock,
9554
- $r as checkBlockIsFileBlockWithPlaceholder,
9555
- Wr as checkBlockIsFileBlockWithPreview,
9556
- $i as checkBlockTypeHasDefaultProp,
10131
+ Zr as checkBlockHasDefaultProp,
10132
+ qi as checkBlockIsDefaultType,
10133
+ $r as checkBlockIsFileBlock,
10134
+ Xr as checkBlockIsFileBlockWithPlaceholder,
10135
+ qr as checkBlockIsFileBlockWithPreview,
10136
+ Xi as checkBlockTypeHasDefaultProp,
9557
10137
  E as checkDefaultBlockTypeInSchema,
9558
- Ki as checkDefaultInlineContentTypeInSchema,
10138
+ $i as checkDefaultInlineContentTypeInSchema,
9559
10139
  Ie as cleanHTMLToMarkdown,
9560
10140
  Se as contentNodeToInlineContent,
9561
10141
  ce as createAddFileButton,
9562
10142
  le as createBlockSpec,
9563
10143
  q as createBlockSpecFromStronglyTypedTiptapNode,
10144
+ z as createDefaultBlockDOMOutputSpec,
9564
10145
  de as createDefaultFilePreview,
9565
10146
  se as createExternalHTMLExporter,
9566
10147
  Te as createFigureWithCaption,
9567
10148
  R as createFileAndCaptionWrapper,
9568
- Or as createInlineContentSpec,
9569
- zo as createInlineContentSpecFromTipTapNode,
10149
+ Fr as createInlineContentSpec,
10150
+ Go as createInlineContentSpecFromTipTapNode,
9570
10151
  ct as createInternalBlockSpec,
9571
10152
  Me as createInternalHTMLSerializer,
9572
- Oo as createInternalInlineContentSpec,
10153
+ Fo as createInternalInlineContentSpec,
9573
10154
  ht as createInternalStyleSpec,
9574
10155
  pe as createLinkWithCaption,
9575
10156
  ft as createResizeHandlesWrapper,
9576
- O as createStronglyTypedTiptapNode,
9577
- zr as createStyleSpec,
10157
+ V as createStronglyTypedTiptapNode,
10158
+ Gr as createStyleSpec,
9578
10159
  U as createStyleSpecFromTipTapMark,
9579
- Xr as createSuggestionMenu,
9580
- Fi as defaultBlockSchema,
10160
+ Jr as createSuggestionMenu,
10161
+ Ki as defaultBlockSchema,
9581
10162
  gt as defaultBlockSpecs,
9582
- Gi as defaultInlineContentSchema,
9583
- kt as defaultInlineContentSpecs,
9584
- _ as defaultProps,
9585
- Gr as defaultStyleSchema,
10163
+ Ve as defaultBlockToHTML,
10164
+ Wi as defaultInlineContentSchema,
10165
+ _t as defaultInlineContentSpecs,
10166
+ k as defaultProps,
10167
+ Wr as defaultStyleSchema,
9586
10168
  bt as defaultStyleSpecs,
9587
- ei as fileBlockConfig,
9588
- oi as fileParse,
9589
- Qo as filePropSchema,
9590
- ti as fileRender,
9591
- ii as fileToExternalHTML,
9592
- Rr as filenameFromURL,
9593
- Jr as filterSuggestionItems,
10169
+ oi as fileBlockConfig,
10170
+ ni as fileParse,
10171
+ ti as filePropSchema,
10172
+ ii as fileRender,
10173
+ ri as fileToExternalHTML,
10174
+ Or as filenameFromURL,
10175
+ Qr as filterSuggestionItems,
9594
10176
  H as formatKeyboardShortcut,
9595
- hn as formattingToolbarPluginKey,
9596
- jo as getBlockFromPos,
9597
- Xn as getBlockNoteExtensions,
10177
+ fn as formattingToolbarPluginKey,
10178
+ zo as getBlockFromPos,
10179
+ Jn as getBlockNoteExtensions,
9598
10180
  ut as getBlockSchemaFromSpecs,
9599
- Yr as getDefaultEmojiPickerItems,
9600
- Zr as getDefaultSlashMenuItems,
10181
+ C as getCurrentBlockContentType,
10182
+ ea as getDefaultEmojiPickerItems,
10183
+ Yr as getDefaultSlashMenuItems,
9601
10184
  he as getDraggableBlockFromElement,
9602
- Fo as getInlineContentParseRules,
10185
+ Ko as getInlineContentParseRules,
9603
10186
  pt as getInlineContentSchemaFromSpecs,
9604
- Do as getParseRules,
9605
- Wo as getStyleParseRules,
10187
+ Ro as getParseRules,
10188
+ qo as getStyleParseRules,
9606
10189
  mt as getStyleSchemaFromSpecs,
9607
- ai as imageBlockConfig,
9608
- li as imageParse,
9609
- ri as imagePropSchema,
9610
- si as imageRender,
9611
- di as imageToExternalHTML,
10190
+ li as imageBlockConfig,
10191
+ ci as imageParse,
10192
+ si as imagePropSchema,
10193
+ di as imageRender,
10194
+ ui as imageToExternalHTML,
9612
10195
  lt as inheritedProps,
9613
10196
  W as inlineContentToNodes,
9614
10197
  x as insertOrUpdateBlock,
9615
- Uo as isAppleOS,
9616
- Ve as isLinkInlineContent,
10198
+ jo as isAppleOS,
10199
+ ze as isLinkInlineContent,
9617
10200
  ot as isPartialLinkInlineContent,
9618
10201
  Vr as isSafari,
9619
10202
  te as isStyledTextInlineContent,
9620
- gn as linkToolbarPluginKey,
9621
- jr as locales,
9622
- dn as markdownToBlocks,
9623
- D as mergeCSSClasses,
9624
- v as nodeToBlock,
10203
+ _n as linkToolbarPluginKey,
10204
+ zr as locales,
10205
+ un as markdownToBlocks,
10206
+ j as mergeCSSClasses,
10207
+ w as nodeToBlock,
9625
10208
  rt as nodeToCustomInlineContent,
9626
- ze as parseEmbedElement,
10209
+ Oe as parseEmbedElement,
9627
10210
  ue as parseFigureElement,
9628
10211
  Ge as parseImageElement,
9629
10212
  Mt as partialBlockToBlockForTesting,
9630
- Qr as partialBlocksToBlocksForTesting,
10213
+ ta as partialBlocksToBlocksForTesting,
9631
10214
  dt as propsToAttributes,
9632
- vn as sideMenuPluginKey,
9633
- Go as stylePropsToAttributes,
10215
+ En as sideMenuPluginKey,
10216
+ Wo as stylePropsToAttributes,
9634
10217
  it as tableContentToNodes,
9635
10218
  Q as tableHandlesPluginKey,
9636
- Fr as uploadToTmpFilesDotOrg_DEV_ONLY,
9637
- pi as videoBlockConfig,
9638
- mi as videoParse,
9639
- ui as videoPropSchema,
9640
- hi as videoRender,
9641
- fi as videoToExternalHTML,
10219
+ Kr as uploadToTmpFilesDotOrg_DEV_ONLY,
10220
+ mi as videoBlockConfig,
10221
+ gi as videoParse,
10222
+ hi as videoPropSchema,
10223
+ fi as videoRender,
10224
+ bi as videoToExternalHTML,
9642
10225
  fe as wrapInBlockStructure
9643
10226
  };
9644
10227
  //# sourceMappingURL=blocknote.js.map