@w100n/documents 0.16.4 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/dist/{Compare-M57FG4R3.js → Compare-RHAUAKUJ.js} +2 -2
  2. package/dist/{SheetView-OEKOHMKW.js → SheetView-43JDIP7D.js} +5 -5
  3. package/dist/{TextEditor-5S7FSLIZ.js → TextEditor-CYS4U5XA.js} +119 -27
  4. package/dist/TextEditor-CYS4U5XA.js.map +1 -0
  5. package/dist/{chunk-VNXZVOPN.js → chunk-BWU6FPPZ.js} +956 -1
  6. package/dist/chunk-BWU6FPPZ.js.map +1 -0
  7. package/dist/{chunk-3D2G5NBI.js → chunk-DATYTA4H.js} +2 -2
  8. package/dist/{chunk-EQLBYW42.js → chunk-GSIPTCQH.js} +9 -1
  9. package/dist/chunk-GSIPTCQH.js.map +1 -0
  10. package/dist/chunk-Z5STMOD6.js +39 -0
  11. package/dist/chunk-Z5STMOD6.js.map +1 -0
  12. package/dist/{chunk-AKJGYZME.js → chunk-ZCSHH24C.js} +67 -832
  13. package/dist/chunk-ZCSHH24C.js.map +1 -0
  14. package/dist/collab.cjs +197 -2
  15. package/dist/collab.cjs.map +1 -1
  16. package/dist/collab.d.cts +1 -1
  17. package/dist/collab.d.ts +1 -1
  18. package/dist/collab.js +3 -3
  19. package/dist/index.cjs +1437 -543
  20. package/dist/index.cjs.map +1 -1
  21. package/dist/index.css +330 -0
  22. package/dist/index.css.map +1 -1
  23. package/dist/index.d.cts +2 -2
  24. package/dist/index.d.ts +2 -2
  25. package/dist/index.js +1080 -497
  26. package/dist/index.js.map +1 -1
  27. package/dist/kinds.d.cts +1 -1
  28. package/dist/kinds.d.ts +1 -1
  29. package/dist/memory.cjs +34 -5
  30. package/dist/memory.cjs.map +1 -1
  31. package/dist/memory.d.cts +1 -1
  32. package/dist/memory.d.ts +1 -1
  33. package/dist/memory.js +34 -5
  34. package/dist/memory.js.map +1 -1
  35. package/dist/{types-BUO0OzOl.d.cts → types-DyonaPQf.d.cts} +12 -1
  36. package/dist/{types-BUO0OzOl.d.ts → types-DyonaPQf.d.ts} +12 -1
  37. package/package.json +1 -1
  38. package/dist/TextEditor-5S7FSLIZ.js.map +0 -1
  39. package/dist/chunk-AKJGYZME.js.map +0 -1
  40. package/dist/chunk-EQLBYW42.js.map +0 -1
  41. package/dist/chunk-VNXZVOPN.js.map +0 -1
  42. /package/dist/{Compare-M57FG4R3.js.map → Compare-RHAUAKUJ.js.map} +0 -0
  43. /package/dist/{SheetView-OEKOHMKW.js.map → SheetView-43JDIP7D.js.map} +0 -0
  44. /package/dist/{chunk-3D2G5NBI.js.map → chunk-DATYTA4H.js.map} +0 -0
package/dist/collab.cjs CHANGED
@@ -50,7 +50,7 @@ var import_y_tiptap2 = require("@tiptap/y-tiptap");
50
50
  var Y2 = __toESM(require("yjs"), 1);
51
51
 
52
52
  // package.json
53
- var version = "0.16.4";
53
+ var version = "0.18.0";
54
54
 
55
55
  // src/docx/xml.ts
56
56
  function parse(s) {
@@ -3020,6 +3020,95 @@ var Footnote = import_core2.Node.create({
3020
3020
  parseHTML: () => [{ tag: "sup[data-footnote]" }],
3021
3021
  renderHTML: ({ node }) => ["sup", { "data-footnote": "", "data-note-id": node.attrs.id ?? void 0, title: node.attrs.text, class: "w100n-fn", contenteditable: "false" }]
3022
3022
  });
3023
+ var wikiName = (target) => target.split("#")[0].trim().replace(/\.md$/i, "");
3024
+ var WikiLink = import_core2.Node.create({
3025
+ name: "wikilink",
3026
+ group: "inline",
3027
+ inline: true,
3028
+ atom: true,
3029
+ selectable: true,
3030
+ addOptions: () => ({ known: () => true }),
3031
+ addAttributes: () => ({
3032
+ target: { default: "", parseHTML: (el) => el.getAttribute("data-wiki") ?? "" },
3033
+ alias: { default: null, parseHTML: (el) => el.getAttribute("data-alias") }
3034
+ }),
3035
+ parseHTML: () => [{ tag: "span[data-wiki]" }],
3036
+ renderHTML: ({ node }) => [
3037
+ "span",
3038
+ { "data-wiki": node.attrs.target, "data-alias": node.attrs.alias ?? void 0, class: "w100n-wiki", contenteditable: "false" },
3039
+ node.attrs.alias || wikiName(node.attrs.target) || node.attrs.target
3040
+ ],
3041
+ addProseMirrorPlugins() {
3042
+ const known = this.options.known;
3043
+ return [new import_state2.Plugin({
3044
+ props: {
3045
+ decorations(state) {
3046
+ const found = [];
3047
+ state.doc.descendants((node, pos) => {
3048
+ if (node.type.name === "wikilink" && !known(node.attrs.target)) found.push(import_view2.Decoration.node(pos, pos + node.nodeSize, { class: "is-missing" }));
3049
+ });
3050
+ return import_view2.DecorationSet.create(state.doc, found);
3051
+ }
3052
+ }
3053
+ })];
3054
+ }
3055
+ });
3056
+ var wikiAsk = new import_state2.PluginKey("wikiAsk");
3057
+ var WikiAsk = import_core2.Extension.create({
3058
+ name: "wikiAsk",
3059
+ addProseMirrorPlugins() {
3060
+ return [new import_state2.Plugin({
3061
+ key: wikiAsk,
3062
+ state: {
3063
+ init: () => null,
3064
+ apply(tr, _old, _before, state) {
3065
+ const { $from, empty } = state.selection;
3066
+ if (!empty || !$from.parent.isTextblock || $from.parent.type.spec.code) return null;
3067
+ const before = $from.parent.textBetween(0, $from.parentOffset, void 0, "\uFFFC");
3068
+ const m = /\[\[([^[\]\n|\ufffc]*)$/.exec(before);
3069
+ return m ? { from: $from.pos - m[0].length, query: m[1] } : null;
3070
+ }
3071
+ }
3072
+ })];
3073
+ }
3074
+ });
3075
+ var signs = { bold: "**", italic: "*", strike: "~~", code: "`" };
3076
+ var syntax = (text, pos, side2) => import_view2.Decoration.widget(pos, () => {
3077
+ const el = document.createElement("span");
3078
+ el.className = "w100n-syntax";
3079
+ el.textContent = text;
3080
+ return el;
3081
+ }, { side: side2, key: `${text}:${pos}:${side2}` });
3082
+ var Reveal = import_core2.Extension.create({
3083
+ name: "reveal",
3084
+ addProseMirrorPlugins: () => [new import_state2.Plugin({
3085
+ props: {
3086
+ decorations(state) {
3087
+ const { $from, empty } = state.selection;
3088
+ if (!empty || !$from.parent.isTextblock) return null;
3089
+ const found = [];
3090
+ const start = $from.start();
3091
+ if ($from.parent.type.name === "heading") found.push(syntax(`${"#".repeat($from.parent.attrs.level)} `, start, -1));
3092
+ const at2 = $from.parentOffset;
3093
+ for (const [name, sign] of Object.entries(signs)) {
3094
+ let from = -1;
3095
+ let offset = 0;
3096
+ $from.parent.forEach((child) => {
3097
+ const end = offset + child.nodeSize;
3098
+ if (child.marks.some((m) => m.type.name === name)) {
3099
+ if (from < 0) from = offset;
3100
+ if (from <= at2 && at2 <= end && (end === $from.parent.content.size || !$from.parent.childAfter(end).node?.marks.some((m) => m.type.name === name))) {
3101
+ found.push(syntax(sign, start + from, -1), syntax(sign, start + end, 1));
3102
+ }
3103
+ } else from = -1;
3104
+ offset = end;
3105
+ });
3106
+ }
3107
+ return import_view2.DecorationSet.create(state.doc, found);
3108
+ }
3109
+ }
3110
+ })]
3111
+ });
3023
3112
  var EndNotes = import_core2.Extension.create({
3024
3113
  name: "endNotes",
3025
3114
  addProseMirrorPlugins: () => [new import_state2.Plugin({
@@ -3317,7 +3406,7 @@ var script = (name, tag, other) => import_core2.Mark.create({
3317
3406
  return { [name === "superscript" ? "Mod-." : "Mod-,"]: () => this.editor.commands.toggleMark(name) };
3318
3407
  }
3319
3408
  });
3320
- function kit(kind, t, live) {
3409
+ function kit(kind, t, live, wiki) {
3321
3410
  return [
3322
3411
  import_starter_kit.default.configure({ trailingNode: false, link: { openOnClick: false, autolink: true, defaultProtocol: "https" }, dropcursor: { color: "#8b5cf6", width: 2 }, ...live ? { undoRedo: false } : {} }),
3323
3412
  import_extension_list.TaskList,
@@ -3345,6 +3434,8 @@ function kit(kind, t, live) {
3345
3434
  Formula,
3346
3435
  Footnote,
3347
3436
  EndNotes,
3437
+ WikiLink.configure({ known: wiki?.known ?? (() => true) }),
3438
+ ...kind === "markdown" && wiki ? [WikiAsk, Reveal] : [],
3348
3439
  ...kind === "docx" ? [Pager, Locks.configure({ label: t.locked }), revision("insertion", "ins"), revision("deletion", "del"), Suggest] : [],
3349
3440
  ...live ? [import_extension_collaboration.default.configure({ document: live.doc }), import_extension_collaboration_caret.default.configure({ provider: live.link, user: live.user })] : []
3350
3441
  ];
@@ -3369,6 +3460,10 @@ var marked = new import_marked.Marked({ extensions: [
3369
3460
  const m = /^\[\^([^\]\s]+)\]/.exec(src);
3370
3461
  return m ? { type: "footnoteRef", raw: m[0], id: m[1] } : void 0;
3371
3462
  } },
3463
+ { name: "wikilink", level: "inline", start: (src) => at(src, /\[\[/), tokenizer(src) {
3464
+ const m = /^\[\[([^[\]\n|]+?)(?:\|([^[\]\n]+?))?\]\]/.exec(src);
3465
+ return m ? { type: "wikilink", raw: m[0], target: m[1].trim(), alias: m[2]?.trim() ?? null } : void 0;
3466
+ } },
3372
3467
  { name: "math", level: "inline", start: (src) => at(src, /\$/), tokenizer(src) {
3373
3468
  const m = /^\$\$([^$]+?)\$\$|^\$(?![\s$])((?:\\.|[^$\\\n])*?[^\s\\])\$(?!\d)/.exec(src);
3374
3469
  return m ? { type: "math", raw: m[0], text: (m[1] ?? m[2]).trim() } : void 0;
@@ -3400,6 +3495,7 @@ function inline2(tokens = [], outer = []) {
3400
3495
  else if (token2.type === "br") out.push({ type: "hardBreak" });
3401
3496
  else if (token2.type === "math") out.push({ type: "math", attrs: { latex: token2.text } });
3402
3497
  else if (token2.type === "footnoteRef") out.push({ type: "footnote", attrs: { id: token2.id, text: notes2.get(token2.id) ?? "" } });
3498
+ else if (token2.type === "wikilink") out.push({ type: "wikilink", attrs: { target: token2.target, alias: token2.alias } });
3403
3499
  else if (token2.type === "link") wrap(token2.tokens, { type: "link", attrs: { href: token2.href } });
3404
3500
  else if (token2.type === "image") out.push({ type: "image", attrs: { src: token2.href, alt: token2.text || null, title: token2.title || null }, ...marks().length ? { marks: marks() } : {} });
3405
3501
  else if (token2.type === "html") {
@@ -3641,6 +3737,9 @@ function serializer(style, hints, before, cell2 = false) {
3641
3737
  footnote(state, node) {
3642
3738
  state.write(`[^${node.attrs.id}]`);
3643
3739
  },
3740
+ wikilink(state, node) {
3741
+ state.write(`[[${node.attrs.target}${node.attrs.alias ? `|${node.attrs.alias}` : ""}]]`);
3742
+ },
3644
3743
  blockquote(state, node) {
3645
3744
  state.wrapBlock("> ", null, node, () => state.renderContent(node));
3646
3745
  },
@@ -6191,6 +6290,38 @@ var sheetTexts = { en, pl, uk };
6191
6290
 
6192
6291
  // src/text.ts
6193
6292
  var en2 = {
6293
+ elsewhere: "Other",
6294
+ newFolder: "New folder",
6295
+ newNoteHere: "New note here",
6296
+ renameFolder: "Rename folder",
6297
+ trashFolder: "Move folder to trash",
6298
+ folderTrashAsk: "Move {name} and everything in it to trash?",
6299
+ moveTo: "Move to",
6300
+ folderActions: "Folder actions",
6301
+ folderName: "Folder name",
6302
+ topLevel: "Top level",
6303
+ wikiCreate: "Create \u201C{name}\u201D",
6304
+ wikiNew: "new note",
6305
+ wikiKeys: "\u2191\u2193 pick \xB7 \u21B5 link \xB7 | alias",
6306
+ tree: "Tree",
6307
+ cards: "Cards",
6308
+ openNote: "Open note",
6309
+ findNote: "Type a note name",
6310
+ createNote: "Create note \u201C{name}\u201D",
6311
+ noNote: "No notes match",
6312
+ keysOpen: "\u2191\u2193 move \xB7 \u21B5 open \xB7 esc close",
6313
+ commands: "Commands",
6314
+ newNote: "New note",
6315
+ searchAll: "Search in all notes",
6316
+ showOutline: "Show outline",
6317
+ showLinks: "Show backlinks",
6318
+ showVersions: "Show versions",
6319
+ showComments: "Show comments",
6320
+ keysRun: "\u2191\u2193 move \xB7 \u21B5 run \xB7 esc close",
6321
+ links: "Links",
6322
+ linked: "Linked mentions",
6323
+ unlinked: "Unlinked mentions",
6324
+ noBacklinks: "Nothing links here yet",
6194
6325
  documents: "Documents",
6195
6326
  hint: "Files of your projects: read, edit and comment in one place",
6196
6327
  loose: "Without a folder",
@@ -6544,6 +6675,38 @@ var en2 = {
6544
6675
  uploadFailed: "Could not upload the file"
6545
6676
  };
6546
6677
  var pl2 = {
6678
+ elsewhere: "Inne",
6679
+ newFolder: "Nowy folder",
6680
+ newNoteHere: "Nowa notatka tutaj",
6681
+ renameFolder: "Zmie\u0144 nazw\u0119 folderu",
6682
+ trashFolder: "Przenie\u015B folder do kosza",
6683
+ folderTrashAsk: "Przenie\u015B\u0107 {name} z ca\u0142\u0105 zawarto\u015Bci\u0105 do kosza?",
6684
+ moveTo: "Przenie\u015B do",
6685
+ folderActions: "Dzia\u0142ania na folderze",
6686
+ folderName: "Nazwa folderu",
6687
+ topLevel: "Najwy\u017Cszy poziom",
6688
+ wikiCreate: "Utw\xF3rz \u201E{name}\u201D",
6689
+ wikiNew: "nowa notatka",
6690
+ wikiKeys: "\u2191\u2193 wyb\xF3r \xB7 \u21B5 link \xB7 | alias",
6691
+ tree: "Drzewo",
6692
+ cards: "Karty",
6693
+ openNote: "Otw\xF3rz notatk\u0119",
6694
+ findNote: "Wpisz nazw\u0119 notatki",
6695
+ createNote: "Utw\xF3rz notatk\u0119 \u201E{name}\u201D",
6696
+ noNote: "Brak pasuj\u0105cych notatek",
6697
+ keysOpen: "\u2191\u2193 ruch \xB7 \u21B5 otw\xF3rz \xB7 esc zamknij",
6698
+ commands: "Polecenia",
6699
+ newNote: "Nowa notatka",
6700
+ searchAll: "Szukaj we wszystkich notatkach",
6701
+ showOutline: "Poka\u017C spis",
6702
+ showLinks: "Poka\u017C odno\u015Bniki",
6703
+ showVersions: "Poka\u017C wersje",
6704
+ showComments: "Poka\u017C komentarze",
6705
+ keysRun: "\u2191\u2193 ruch \xB7 \u21B5 uruchom \xB7 esc zamknij",
6706
+ links: "Odno\u015Bniki",
6707
+ linked: "Linki do tej notatki",
6708
+ unlinked: "Wzmianki bez linku",
6709
+ noBacklinks: "Nic tu jeszcze nie linkuje",
6547
6710
  documents: "Dokumenty",
6548
6711
  hint: "Pliki Twoich projekt\xF3w: czytaj, edytuj i komentuj w jednym miejscu",
6549
6712
  loose: "Bez folderu",
@@ -6897,6 +7060,38 @@ var pl2 = {
6897
7060
  uploadFailed: "Nie uda\u0142o si\u0119 wgra\u0107 pliku"
6898
7061
  };
6899
7062
  var uk2 = {
7063
+ elsewhere: "\u0406\u043D\u0448\u0435",
7064
+ newFolder: "\u041D\u043E\u0432\u0430 \u043F\u0430\u043F\u043A\u0430",
7065
+ newNoteHere: "\u041D\u043E\u0432\u0430 \u043D\u043E\u0442\u0430\u0442\u043A\u0430 \u0442\u0443\u0442",
7066
+ renameFolder: "\u041F\u0435\u0440\u0435\u0439\u043C\u0435\u043D\u0443\u0432\u0430\u0442\u0438 \u043F\u0430\u043F\u043A\u0443",
7067
+ trashFolder: "\u041F\u0430\u043F\u043A\u0443 \u0432 \u043A\u043E\u0448\u0438\u043A",
7068
+ folderTrashAsk: "\u041F\u0435\u0440\u0435\u043C\u0456\u0441\u0442\u0438\u0442\u0438 {name} \u0437 \u0443\u0441\u0456\u043C \u0432\u043C\u0456\u0441\u0442\u043E\u043C \u0443 \u043A\u043E\u0448\u0438\u043A?",
7069
+ moveTo: "\u041F\u0435\u0440\u0435\u043D\u0435\u0441\u0442\u0438 \u0432",
7070
+ folderActions: "\u0414\u0456\u0457 \u0437 \u043F\u0430\u043F\u043A\u043E\u044E",
7071
+ folderName: "\u041D\u0430\u0437\u0432\u0430 \u043F\u0430\u043F\u043A\u0438",
7072
+ topLevel: "\u0412\u0435\u0440\u0445\u043D\u0456\u0439 \u0440\u0456\u0432\u0435\u043D\u044C",
7073
+ wikiCreate: "\u0421\u0442\u0432\u043E\u0440\u0438\u0442\u0438 \xAB{name}\xBB",
7074
+ wikiNew: "\u043D\u043E\u0432\u0430 \u043D\u043E\u0442\u0430\u0442\u043A\u0430",
7075
+ wikiKeys: "\u2191\u2193 \u0432\u0438\u0431\u0456\u0440 \xB7 \u21B5 \u043F\u043E\u0441\u0438\u043B\u0430\u043D\u043D\u044F \xB7 | \u043F\u0456\u0434\u043F\u0438\u0441",
7076
+ tree: "\u0414\u0435\u0440\u0435\u0432\u043E",
7077
+ cards: "\u041A\u0430\u0440\u0442\u043A\u0438",
7078
+ openNote: "\u0412\u0456\u0434\u043A\u0440\u0438\u0442\u0438 \u043D\u043E\u0442\u0430\u0442\u043A\u0443",
7079
+ findNote: "\u0412\u0432\u0435\u0434\u0456\u0442\u044C \u043D\u0430\u0437\u0432\u0443 \u043D\u043E\u0442\u0430\u0442\u043A\u0438",
7080
+ createNote: "\u0421\u0442\u0432\u043E\u0440\u0438\u0442\u0438 \u043D\u043E\u0442\u0430\u0442\u043A\u0443 \xAB{name}\xBB",
7081
+ noNote: "\u041D\u0435\u043C\u0430\u0454 \u0442\u0430\u043A\u0438\u0445 \u043D\u043E\u0442\u0430\u0442\u043E\u043A",
7082
+ keysOpen: "\u2191\u2193 \u0440\u0443\u0445 \xB7 \u21B5 \u0432\u0456\u0434\u043A\u0440\u0438\u0442\u0438 \xB7 esc \u0437\u0430\u043A\u0440\u0438\u0442\u0438",
7083
+ commands: "\u041A\u043E\u043C\u0430\u043D\u0434\u0438",
7084
+ newNote: "\u041D\u043E\u0432\u0430 \u043D\u043E\u0442\u0430\u0442\u043A\u0430",
7085
+ searchAll: "\u0428\u0443\u043A\u0430\u0442\u0438 \u0432 \u0443\u0441\u0456\u0445 \u043D\u043E\u0442\u0430\u0442\u043A\u0430\u0445",
7086
+ showOutline: "\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u0438 \u0437\u043C\u0456\u0441\u0442",
7087
+ showLinks: "\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u0438 \u043F\u043E\u0441\u0438\u043B\u0430\u043D\u043D\u044F",
7088
+ showVersions: "\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u0438 \u0432\u0435\u0440\u0441\u0456\u0457",
7089
+ showComments: "\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u0438 \u043A\u043E\u043C\u0435\u043D\u0442\u0430\u0440\u0456",
7090
+ keysRun: "\u2191\u2193 \u0440\u0443\u0445 \xB7 \u21B5 \u0432\u0438\u043A\u043E\u043D\u0430\u0442\u0438 \xB7 esc \u0437\u0430\u043A\u0440\u0438\u0442\u0438",
7091
+ links: "\u041F\u043E\u0441\u0438\u043B\u0430\u043D\u043D\u044F",
7092
+ linked: "\u041F\u043E\u0441\u0438\u043B\u0430\u044E\u0442\u044C\u0441\u044F \u0441\u044E\u0434\u0438",
7093
+ unlinked: "\u0417\u0433\u0430\u0434\u043A\u0438 \u0431\u0435\u0437 \u043F\u043E\u0441\u0438\u043B\u0430\u043D\u043D\u044F",
7094
+ noBacklinks: "\u0421\u044E\u0434\u0438 \u0449\u0435 \u043D\u0456\u0449\u043E \u043D\u0435 \u043F\u043E\u0441\u0438\u043B\u0430\u0454\u0442\u044C\u0441\u044F",
6900
7095
  documents: "\u0414\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0438",
6901
7096
  hint: "\u0424\u0430\u0439\u043B\u0438 \u0432\u0430\u0448\u0438\u0445 \u043F\u0440\u043E\u0454\u043A\u0442\u0456\u0432: \u0447\u0438\u0442\u0430\u0439\u0442\u0435, \u0440\u0435\u0434\u0430\u0433\u0443\u0439\u0442\u0435 \u0439 \u043A\u043E\u043C\u0435\u043D\u0442\u0443\u0439\u0442\u0435 \u0432 \u043E\u0434\u043D\u043E\u043C\u0443 \u043C\u0456\u0441\u0446\u0456",
6902
7097
  loose: "\u0411\u0435\u0437 \u0442\u0435\u043A\u0438",