svedit 0.11.1 → 0.13.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 (93) hide show
  1. package/README.md +260 -82
  2. package/dist/Command.svelte.d.ts +54 -29
  3. package/dist/Command.svelte.d.ts.map +1 -1
  4. package/dist/Command.svelte.js +286 -283
  5. package/dist/CustomProperty.svelte +3 -5
  6. package/dist/CustomProperty.svelte.d.ts +3 -6
  7. package/dist/CustomProperty.svelte.d.ts.map +1 -1
  8. package/dist/KeyMapper.svelte.d.ts +19 -6
  9. package/dist/KeyMapper.svelte.d.ts.map +1 -1
  10. package/dist/KeyMapper.svelte.js +95 -112
  11. package/dist/Node.svelte +40 -9
  12. package/dist/Node.svelte.d.ts +3 -5
  13. package/dist/Node.svelte.d.ts.map +1 -1
  14. package/dist/NodeArrayProperty.svelte +142 -18
  15. package/dist/NodeArrayProperty.svelte.d.ts +3 -5
  16. package/dist/NodeArrayProperty.svelte.d.ts.map +1 -1
  17. package/dist/NodeCaret.svelte +1 -1
  18. package/dist/NodeCaret.svelte.d.ts +6 -14
  19. package/dist/NodeCaret.svelte.d.ts.map +1 -1
  20. package/dist/NodeGap.svelte +60 -12
  21. package/dist/NodeGap.svelte.d.ts +7 -14
  22. package/dist/NodeGap.svelte.d.ts.map +1 -1
  23. package/dist/NodeGapMarkers.svelte +19 -10
  24. package/dist/NodeGapMarkers.svelte.d.ts +6 -11
  25. package/dist/NodeGapMarkers.svelte.d.ts.map +1 -1
  26. package/dist/NodeSelectionMarkers.svelte +20 -6
  27. package/dist/NodeSelectionMarkers.svelte.d.ts +2 -5
  28. package/dist/NodeSelectionMarkers.svelte.d.ts.map +1 -1
  29. package/dist/Session.svelte.d.ts +85 -116
  30. package/dist/Session.svelte.d.ts.map +1 -1
  31. package/dist/Session.svelte.js +543 -571
  32. package/dist/Svedit.svelte +243 -216
  33. package/dist/Svedit.svelte.d.ts +30 -10
  34. package/dist/Svedit.svelte.d.ts.map +1 -1
  35. package/dist/{AnnotatedTextProperty.svelte → TextProperty.svelte} +71 -56
  36. package/dist/TextProperty.svelte.d.ts +5 -0
  37. package/dist/TextProperty.svelte.d.ts.map +1 -0
  38. package/dist/Transaction.svelte.d.ts +101 -126
  39. package/dist/Transaction.svelte.d.ts.map +1 -1
  40. package/dist/Transaction.svelte.js +843 -827
  41. package/dist/UnknownNode.svelte +4 -3
  42. package/dist/UnknownNode.svelte.d.ts +5 -9
  43. package/dist/UnknownNode.svelte.d.ts.map +1 -1
  44. package/dist/doc_utils.d.ts +109 -122
  45. package/dist/doc_utils.d.ts.map +1 -1
  46. package/dist/doc_utils.js +726 -698
  47. package/dist/index.d.ts +20 -17
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +2 -18
  50. package/dist/node_visibility.svelte.d.ts +132 -5
  51. package/dist/node_visibility.svelte.d.ts.map +1 -1
  52. package/dist/node_visibility.svelte.js +535 -642
  53. package/dist/paste_utils.d.ts +11 -43
  54. package/dist/paste_utils.d.ts.map +1 -1
  55. package/dist/paste_utils.js +111 -149
  56. package/dist/transforms.svelte.d.ts +9 -7
  57. package/dist/transforms.svelte.d.ts.map +1 -1
  58. package/dist/transforms.svelte.js +126 -152
  59. package/dist/types.d.ts +329 -291
  60. package/dist/types.d.ts.map +1 -0
  61. package/dist/types.js +1 -0
  62. package/dist/utils.d.ts +79 -95
  63. package/dist/utils.d.ts.map +1 -1
  64. package/dist/utils.js +392 -305
  65. package/package.json +69 -67
  66. package/src/lib/{Command.svelte.js → Command.svelte.ts} +111 -41
  67. package/src/lib/CustomProperty.svelte +3 -5
  68. package/src/lib/{KeyMapper.svelte.js → KeyMapper.svelte.ts} +28 -11
  69. package/src/lib/Node.svelte +40 -9
  70. package/src/lib/NodeArrayProperty.svelte +142 -18
  71. package/src/lib/NodeCaret.svelte +1 -1
  72. package/src/lib/NodeGap.svelte +60 -12
  73. package/src/lib/NodeGapMarkers.svelte +19 -10
  74. package/src/lib/NodeSelectionMarkers.svelte +20 -6
  75. package/src/lib/Session.svelte.ts +656 -0
  76. package/src/lib/Svedit.svelte +243 -216
  77. package/src/lib/{AnnotatedTextProperty.svelte → TextProperty.svelte} +71 -56
  78. package/src/lib/Transaction.svelte.ts +1020 -0
  79. package/src/lib/UnknownNode.svelte +4 -3
  80. package/src/lib/doc_utils.ts +1120 -0
  81. package/src/lib/{index.js → index.ts} +48 -1
  82. package/src/lib/node_visibility.svelte.ts +658 -0
  83. package/src/lib/{paste_utils.js → paste_utils.ts} +51 -59
  84. package/src/lib/{transforms.svelte.js → transforms.svelte.ts} +44 -27
  85. package/src/lib/{types.d.ts → types.ts} +250 -103
  86. package/src/lib/utils.ts +660 -0
  87. package/dist/AnnotatedTextProperty.svelte.d.ts +0 -7
  88. package/dist/AnnotatedTextProperty.svelte.d.ts.map +0 -1
  89. package/src/lib/Session.svelte.js +0 -575
  90. package/src/lib/Transaction.svelte.js +0 -846
  91. package/src/lib/doc_utils.js +0 -807
  92. package/src/lib/node_visibility.svelte.js +0 -718
  93. package/src/lib/utils.js +0 -465
@@ -1,3 +1,9 @@
1
+ import type Session from './Session.svelte.js';
2
+ type CommandSession = Session<any>;
3
+ export type CommandContext = {
4
+ session: CommandSession;
5
+ editable: boolean;
6
+ };
1
7
  /**
2
8
  * Base class for commands that can be executed in response to user actions
3
9
  * like keyboard shortcuts, menu items, or toolbar buttons.
@@ -21,72 +27,88 @@
21
27
  * ```
22
28
  */
23
29
  export default class Command {
24
- /**
25
- * Creates a new Command instance.
26
- *
27
- * @param {any} context - The context object providing access to application state
28
- */
29
- constructor(context: any);
30
+ context: CommandContext;
30
31
  /**
31
32
  * Derived state that indicates if the command is disabled.
32
33
  * Automatically computed from is_enabled().
33
34
  */
34
35
  disabled: boolean;
35
- context: any;
36
+ /**
37
+ * Creates a new Command instance.
38
+ *
39
+ * @param context - The context object providing access to application state
40
+ */
41
+ constructor(context: CommandContext);
36
42
  /**
37
43
  * Determines if the command can currently be executed.
38
44
  * Override this method to implement command-specific logic.
39
- *
40
- * @returns {boolean} true if the command can be executed, false otherwise
41
45
  */
42
46
  is_enabled(): boolean;
43
47
  /**
44
48
  * Executes the command.
45
49
  * Override this method to implement the command's behavior.
46
50
  * Can be async for commands that need to perform asynchronous operations.
47
- *
48
- * @returns {void | Promise<void>}
49
51
  */
50
52
  execute(): void | Promise<void>;
51
53
  }
52
54
  /**
53
55
  * Command that undoes the last change to the document.
54
56
  */
55
- export class UndoCommand extends Command {
56
- is_enabled(): any;
57
+ export declare class UndoCommand extends Command {
58
+ is_enabled(): boolean;
57
59
  execute(): void;
58
60
  }
59
61
  /**
60
62
  * Command that redoes the last undone change to the document.
61
63
  */
62
- export class RedoCommand extends Command {
63
- is_enabled(): any;
64
+ export declare class RedoCommand extends Command {
65
+ is_enabled(): boolean;
64
66
  execute(): void;
65
67
  }
66
68
  /**
67
69
  * Command that selects the parent of the current selection.
68
70
  * Useful for navigating up the document hierarchy.
69
71
  */
70
- export class SelectParentCommand extends Command {
72
+ export declare class SelectParentCommand extends Command {
73
+ is_enabled(): boolean;
71
74
  execute(): void;
72
75
  }
73
76
  /**
74
- * Generic command that toggles an annotation on the current text selection.
75
- * Used for simple annotations like bold, italic, highlight, etc.
77
+ * Generic command that toggles a mark on the current text or node selection.
78
+ *
79
+ * Marks are mutually exclusive, so all touched marks compete: same-type marks
80
+ * are removed, a single touched property-less mark may switch type, and mixed
81
+ * touched types disable the command. Annotations never affect mark toggling.
76
82
  */
77
- export class ToggleAnnotationCommand extends Command {
78
- constructor(node_type: any, context: any);
79
- node_type: any;
80
- active: any;
81
- is_active(): any;
82
- is_enabled(): any;
83
+ export declare class ToggleMarkCommand extends Command {
84
+ node_type: string;
85
+ constructor(node_type: string, context: CommandContext);
86
+ active: boolean;
87
+ is_active(): boolean;
88
+ is_enabled(): boolean;
89
+ execute(): void;
90
+ }
91
+ /**
92
+ * Generic command that toggles an annotation on the current text or node selection.
93
+ *
94
+ * Annotations only compete with touched annotations of the same type: touched
95
+ * same-type annotations are removed, otherwise a new annotation is created.
96
+ * Marks and other annotation types never block the toggle.
97
+ */
98
+ export declare class ToggleAnnotationCommand extends Command {
99
+ node_type: string;
100
+ constructor(node_type: string, context: CommandContext);
101
+ active: boolean;
102
+ relevant_annotations(): import("./doc_utils.js").SelectedAttachment[];
103
+ is_active(): boolean;
104
+ is_enabled(): boolean;
83
105
  execute(): void;
84
106
  }
85
107
  /**
86
108
  * Command that adds a new line character at the current caret position.
87
109
  * Only works in text selections where newlines are allowed.
88
110
  */
89
- export class AddNewLineCommand extends Command {
111
+ export declare class AddNewLineCommand extends Command {
90
112
  is_enabled(): any;
91
113
  execute(): void;
92
114
  }
@@ -95,22 +117,25 @@ export class AddNewLineCommand extends Command {
95
117
  * Creates a new node and splits the content between the current and new node.
96
118
  * Only works in text selections.
97
119
  */
98
- export class BreakTextNodeCommand extends Command {
120
+ export declare class BreakTextNodeCommand extends Command {
121
+ is_enabled(): boolean;
99
122
  execute(): void;
100
123
  }
101
124
  /**
102
125
  * Command that selects all content in the current context.
103
126
  * Progressively expands selection from text → node → parent node array.
104
127
  */
105
- export class SelectAllCommand extends Command {
106
- is_enabled(): any;
128
+ export declare class SelectAllCommand extends Command {
129
+ is_enabled(): boolean;
107
130
  execute(): void;
108
131
  }
109
132
  /**
110
133
  * Command that inserts a default node at the current caret position.
111
134
  * Only works when a collapsed node selection is active.
112
135
  */
113
- export class InsertDefaultNodeCommand extends Command {
136
+ export declare class InsertDefaultNodeCommand extends Command {
137
+ is_enabled(): boolean;
114
138
  execute(): void;
115
139
  }
140
+ export {};
116
141
  //# sourceMappingURL=Command.svelte.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Command.svelte.d.ts","sourceRoot":"","sources":["../src/lib/Command.svelte.js"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH;IAOC;;;;OAIG;IACH,qBAFW,GAAG,EAIb;IAbD;;;OAGG;IACH,kBAAwC;IAQvC,aAAsB;IAGvB;;;;;OAKG;IACH,cAFa,OAAO,CAInB;IAED;;;;;;OAMG;IACH,WAFa,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAIhC;CACD;AAED;;GAEG;AACH;IACC,kBAEC;IAED,gBAEC;CACD;AAED;;GAEG;AACH;IACC,kBAEC;IAED,gBAEC;CACD;AAED;;;GAGG;AACH;IASC,gBAEC;CACD;AAED;;;GAGG;AACH;IACC,0CAGC;IADA,eAA0B;IAG3B,YAAoC;IAEpC,iBAEC;IAED,kBAqBC;IAED,gBAEC;CACD;AAED;;;GAGG;AACH;IACC,kBASC;IAED,gBAqBC;CACD;AAED;;;;GAIG;AACH;IAaC,gBAKC;CACD;AAED;;;GAGG;AACH;IACC,kBAEC;IAED,gBAwGC;CACD;AAED;;;GAGG;AACH;IAUC,gBAIC;CACD"}
1
+ {"version":3,"file":"Command.svelte.d.ts","sourceRoot":"","sources":["../src/lib/Command.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAI/C,KAAK,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;AAEnC,MAAM,MAAM,cAAc,GAAG;IAC5B,OAAO,EAAE,cAAc,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,OAAO,OAAO,OAAO;IAC3B,OAAO,EAAE,cAAc,CAAC;IAExB;;;OAGG;IACH,QAAQ,UAAgC;IAExC;;;;OAIG;gBACS,OAAO,EAAE,cAAc;IAInC;;;OAGG;IACH,UAAU,IAAI,OAAO;IAIrB;;;;OAIG;IACH,OAAO,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAG/B;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,OAAO;IACvC,UAAU;IAIV,OAAO;CAGP;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,OAAO;IACvC,UAAU;IAIV,OAAO;CAGP;AAED;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,OAAO;IAC/C,UAAU;IAQV,OAAO;CAGP;AAED;;;;;;GAMG;AACH,qBAAa,iBAAkB,SAAQ,OAAO;IAC7C,SAAS,EAAE,MAAM,CAAC;gBAEN,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc;IAKtD,MAAM,UAA8B;IAEpC,SAAS;IAOT,UAAU;IAyBV,OAAO;CAGP;AAED;;;;;;GAMG;AACH,qBAAa,uBAAwB,SAAQ,OAAO;IACnD,SAAS,EAAE,MAAM,CAAC;gBAEN,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc;IAKtD,MAAM,UAA8B;IAIpC,oBAAoB;IAMpB,SAAS;IAIT,UAAU;IAiBV,OAAO;CAGP;AAED;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,OAAO;IAC7C,UAAU;IAWV,OAAO;CAuBP;AAED;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,OAAO;IAChD,UAAU;IAYV,OAAO;CAMP;AAED;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,OAAO;IAC5C,UAAU;IAIV,OAAO;CAyGP;AAED;;;GAGG;AACH,qBAAa,wBAAyB,SAAQ,OAAO;IACpD,UAAU;IASV,OAAO;CAKP"}