@lblod/ember-rdfa-editor-lblod-plugins 22.5.0 → 22.5.1-dev.29ec90bdf784a8c86623ee01481ecbe3eee8ea43

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.
@@ -0,0 +1,5 @@
1
+ ---
2
+ '@lblod/ember-rdfa-editor-lblod-plugins': major
3
+ ---
4
+
5
+ Run recalculate numbers after inserting a snippet
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @lblod/ember-rdfa-editor-lblod-plugins
2
2
 
3
+ ## 22.5.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [`ca26f13`](https://github.com/lblod/ember-rdfa-editor-lblod-plugins/commit/ca26f1373d1fb14f8cc998d4a91a6f1a10d48049) Thanks [@piemonkey](https://github.com/piemonkey)! - Correct peer dependency editor version as it shouldn't change on a non-major release
8
+
3
9
  ## 22.5.0
4
10
 
5
11
  ### Minor Changes
@@ -21,7 +21,10 @@ import {
21
21
  RDF,
22
22
  } from '@lblod/ember-rdfa-editor-lblod-plugins/utils/constants';
23
23
  import { hasOutgoingNamedNodeTriple } from '@lblod/ember-rdfa-editor-lblod-plugins/utils/namespace';
24
- import { createAndInsertSnippet } from '@lblod/ember-rdfa-editor-lblod-plugins/plugins/snippet-plugin/nodes/snippet';
24
+ import insertSnippet from '@lblod/ember-rdfa-editor-lblod-plugins/plugins/snippet-plugin/commands/insert-snippet';
25
+ import { isNone } from '@lblod/ember-rdfa-editor/utils/_private/option';
26
+ import { transactionCombinator } from '@lblod/ember-rdfa-editor/utils/transaction-utils';
27
+ import { recalculateNumbers } from '@lblod/ember-rdfa-editor-lblod-plugins/plugins/structure-plugin/recalculate-structure-numbers';
25
28
 
26
29
  interface Signature {
27
30
  Args: EmberNodeArgs;
@@ -61,7 +64,10 @@ export default class SnippetNode extends Component<Signature> {
61
64
  const position = this.args.getPos();
62
65
  if (position !== undefined) {
63
66
  this.controller.withTransaction((tr) => {
64
- return tr.deleteRange(position, position + this.node.nodeSize);
67
+ return transactionCombinator(
68
+ this.controller.mainEditorState,
69
+ tr.deleteRange(position, position + this.node.nodeSize),
70
+ )([recalculateNumbers]).transaction;
65
71
  });
66
72
  }
67
73
  }
@@ -89,46 +95,32 @@ export default class SnippetNode extends Component<Signature> {
89
95
  }
90
96
  @action
91
97
  onInsert(content: string, title: string) {
92
- let rangeStart = 0;
93
- let rangeEnd = 0;
94
- if (this.args.getPos() === undefined) return;
98
+ this.closeModal();
99
+ const assignedSnippetListsIds = this.node.attrs.assignedSnippetListsIds;
100
+ let start = 0;
101
+ let end = 0;
102
+ const pos = this.args.getPos();
103
+ if (isNone(pos)) {
104
+ return;
105
+ }
95
106
  if (this.mode === 'add') {
96
107
  // Add new snippet
97
- rangeStart = (this.args.getPos() as number) + this.node.nodeSize;
98
- rangeEnd = (this.args.getPos() as number) + this.node.nodeSize;
108
+ start = pos + this.node.nodeSize;
109
+ end = pos + this.node.nodeSize;
99
110
  } else {
100
111
  //Replace current snippet
101
- rangeStart = this.args.getPos() as number;
102
- rangeEnd = (this.args.getPos() as number) + this.node.nodeSize;
103
- }
104
-
105
- const domParser = new DOMParser();
106
- const parsed = domParser.parseFromString(content, 'text/html').body;
107
- const documentDiv = parsed.querySelector('div[data-say-document="true"]');
108
-
109
- this.closeModal();
110
-
111
- if (documentDiv) {
112
- return createAndInsertSnippet(
113
- {
114
- controller: this.controller,
115
- content,
116
- title,
117
- snippetListIds: this.node.attrs.assignedSnippetListsIds,
118
- importedResources: this.node.attrs.importedResources,
119
- },
120
- (tr, snippet) => tr.replaceRangeWith(rangeStart, rangeEnd, snippet),
121
- );
112
+ start = pos;
113
+ end = pos + this.node.nodeSize;
122
114
  }
123
-
124
- this.controller.withTransaction((tr) =>
125
- tr.replaceRange(
126
- rangeStart,
127
- rangeEnd,
128
- this.createSliceFromElement(parsed),
129
- ),
115
+ this.controller.doCommand(
116
+ insertSnippet({
117
+ content,
118
+ title,
119
+ assignedSnippetListsIds,
120
+ importedResources: this.node.attrs.importedResources,
121
+ range: { start, end },
122
+ }),
130
123
  );
131
- this.closeModal();
132
124
  }
133
125
  <template>
134
126
  <div class='say-snippet-card'>
@@ -11,8 +11,8 @@ import {
11
11
  Slice,
12
12
  } from '@lblod/ember-rdfa-editor';
13
13
  import { SnippetPluginConfig } from '@lblod/ember-rdfa-editor-lblod-plugins/plugins/snippet-plugin';
14
- import { createAndInsertSnippet } from '@lblod/ember-rdfa-editor-lblod-plugins/plugins/snippet-plugin/nodes/snippet';
15
14
  import { type ImportedResourceMap } from '@lblod/ember-rdfa-editor-lblod-plugins/plugins/snippet-plugin';
15
+ import insertSnippet from '@lblod/ember-rdfa-editor-lblod-plugins/plugins/snippet-plugin/commands/insert-snippet';
16
16
  import SearchModal from './search-modal';
17
17
 
18
18
  interface Sig {
@@ -56,29 +56,15 @@ export default class SnippetInsertComponent extends Component<Sig> {
56
56
 
57
57
  @action
58
58
  onInsert(content: string, title: string) {
59
- const domParser = new DOMParser();
60
- const parsed = domParser.parseFromString(content, 'text/html').body;
61
- const documentDiv = parsed.querySelector('div[data-say-document="true"]');
62
-
63
59
  this.closeModal();
64
- const assignedSnippetListProperties = this.args.snippetListProperties;
65
-
66
- if (documentDiv && assignedSnippetListProperties) {
67
- return createAndInsertSnippet(
68
- {
69
- controller: this.controller,
70
- content,
71
- title,
72
- snippetListIds: assignedSnippetListProperties.listIds,
73
- importedResources: assignedSnippetListProperties.importedResources,
74
- },
75
- (tr, snippet) => tr.replaceSelectionWith(snippet),
76
- );
77
- } else {
78
- return this.controller.withTransaction((tr) =>
79
- tr.replaceSelection(this.createSliceFromElement(parsed)),
80
- );
81
- }
60
+ this.controller.doCommand(
61
+ insertSnippet({
62
+ content,
63
+ title,
64
+ assignedSnippetListsIds: this.args.snippetListProperties?.listIds || [],
65
+ importedResources: this.args.snippetListProperties?.importedResources,
66
+ }),
67
+ );
82
68
  }
83
69
 
84
70
  get disabled() {
@@ -0,0 +1,91 @@
1
+ import { Command, ProseParser, Schema, Slice } from '@lblod/ember-rdfa-editor';
2
+ import { transactionCombinator } from '@lblod/ember-rdfa-editor/utils/transaction-utils';
3
+ import { addPropertyToNode } from '@lblod/ember-rdfa-editor/utils/rdfa-utils';
4
+ import { recalculateNumbers } from '../../structure-plugin/recalculate-structure-numbers';
5
+ import { createSnippet } from '@lblod/ember-rdfa-editor-lblod-plugins/plugins/snippet-plugin/nodes/snippet';
6
+ import { type ImportedResourceMap } from '@lblod/ember-rdfa-editor-lblod-plugins/plugins/snippet-plugin';
7
+ import {
8
+ isSome,
9
+ unwrap,
10
+ } from '@lblod/ember-rdfa-editor-lblod-plugins/utils/option';
11
+
12
+ export interface InsertSnippetCommandArgs {
13
+ content: string;
14
+ title: string;
15
+ assignedSnippetListsIds: string[];
16
+ importedResources?: ImportedResourceMap;
17
+ range?: { start: number; end: number };
18
+ }
19
+
20
+ const insertSnippet = ({
21
+ content,
22
+ title,
23
+ assignedSnippetListsIds,
24
+ importedResources,
25
+ range,
26
+ }: InsertSnippetCommandArgs): Command => {
27
+ return (state, dispatch) => {
28
+ const domParser = new DOMParser();
29
+ const parsed = domParser.parseFromString(content, 'text/html').body;
30
+ const documentDiv = parsed.querySelector('div[data-say-document="true"]');
31
+
32
+ const schema = state.schema;
33
+
34
+ let tr = state.tr;
35
+ const insertRange = range ?? {
36
+ start: state.selection.from,
37
+ end: state.selection.to,
38
+ };
39
+
40
+ if (documentDiv) {
41
+ const [snippet, importedTriples] = createSnippet({
42
+ schema: state.schema,
43
+ content,
44
+ title,
45
+ snippetListIds: assignedSnippetListsIds,
46
+ importedResources,
47
+ });
48
+
49
+ const addImportedResourceProperties = Object.values(
50
+ importedResources ?? {},
51
+ )
52
+ .map((linked) => {
53
+ const newProperties =
54
+ (isSome(linked) && importedTriples.get(linked)) || [];
55
+ return newProperties.map((newProp) =>
56
+ addPropertyToNode({
57
+ resource: unwrap(linked),
58
+ property: newProp,
59
+ }),
60
+ );
61
+ })
62
+ .flat();
63
+
64
+ tr = transactionCombinator(
65
+ state,
66
+ tr.replaceRangeWith(insertRange.start, insertRange.end, snippet),
67
+ )([recalculateNumbers, ...addImportedResourceProperties]).transaction;
68
+ } else {
69
+ const slice = createSliceFromElement(parsed, schema);
70
+ tr = transactionCombinator(
71
+ state,
72
+ tr.replaceRange(insertRange.start, insertRange.end, slice),
73
+ )([recalculateNumbers]).transaction;
74
+ }
75
+ if (dispatch) {
76
+ dispatch(tr);
77
+ }
78
+ return true;
79
+ };
80
+ };
81
+
82
+ function createSliceFromElement(element: Element, schema: Schema) {
83
+ return new Slice(
84
+ ProseParser.fromSchema(schema).parse(element, {
85
+ preserveWhitespace: true,
86
+ }).content,
87
+ 0,
88
+ 0,
89
+ );
90
+ }
91
+ export default insertSnippet;
@@ -5,8 +5,7 @@ import {
5
5
  type PNode,
6
6
  ProseParser,
7
7
  rdfaAttrSpec,
8
- type SayController,
9
- type Transaction,
8
+ type Schema,
10
9
  } from '@lblod/ember-rdfa-editor';
11
10
  import {
12
11
  renderRdfaAware,
@@ -23,8 +22,6 @@ import {
23
22
  type EmberNodeConfig,
24
23
  } from '@lblod/ember-rdfa-editor/utils/ember-node';
25
24
  import { htmlToDoc } from '@lblod/ember-rdfa-editor/utils/_private/html-utils';
26
- import { transactionCombinator } from '@lblod/ember-rdfa-editor/utils/transaction-utils';
27
- import { addPropertyToNode } from '@lblod/ember-rdfa-editor/utils/rdfa-utils';
28
25
  import SnippetComponent from '@lblod/ember-rdfa-editor-lblod-plugins/components/snippet-plugin/nodes/snippet';
29
26
  import {
30
27
  EXT,
@@ -36,10 +33,6 @@ import {
36
33
  type ImportedResourceMap,
37
34
  type SnippetPluginConfig,
38
35
  } from '@lblod/ember-rdfa-editor-lblod-plugins/plugins/snippet-plugin';
39
- import {
40
- isSome,
41
- unwrap,
42
- } from '@lblod/ember-rdfa-editor-lblod-plugins/utils/option';
43
36
 
44
37
  function outgoingFromBacklink(
45
38
  backlink: IncomingTriple,
@@ -64,11 +57,11 @@ function outgoingFromBacklink(
64
57
  }
65
58
 
66
59
  interface CreateSnippetArgs {
67
- controller: SayController;
60
+ schema: Schema;
68
61
  content: string;
69
62
  title: string;
70
63
  snippetListIds: string[];
71
- importedResources: ImportedResourceMap;
64
+ importedResources?: ImportedResourceMap;
72
65
  }
73
66
 
74
67
  /**
@@ -78,7 +71,7 @@ interface CreateSnippetArgs {
78
71
  * properties that these resources will have after the snippet is inserted into the document.
79
72
  **/
80
73
  export function createSnippet({
81
- controller,
74
+ schema,
82
75
  content,
83
76
  title,
84
77
  snippetListIds,
@@ -93,13 +86,12 @@ export function createSnippet({
93
86
  }
94
87
  }
95
88
  // Create the new node
96
- const parser = ProseParser.fromSchema(controller.schema);
89
+ const parser = ProseParser.fromSchema(schema);
97
90
  const contentAsNode = htmlToDoc(replacedContent, {
98
- schema: controller.schema,
91
+ schema,
99
92
  parser,
100
- editorView: controller.mainEditorView,
101
93
  });
102
- const node = controller.schema.node(
94
+ const node = schema.node(
103
95
  'snippet',
104
96
  {
105
97
  assignedSnippetListsIds: snippetListIds,
@@ -111,7 +103,7 @@ export function createSnippet({
111
103
  );
112
104
  // Find all the new backlinks that refer to imported resources and generate OutgoingLinks for them
113
105
  const importedTriples: Map<string, OutgoingTriple[]> = new Map();
114
- if (Object.keys(importedResources).length > 0) {
106
+ if (Object.keys(importedResources ?? {}).length > 0) {
115
107
  contentAsNode.descendants((node) => {
116
108
  const backlinks = node.attrs.backlinks as IncomingTriple[] | undefined;
117
109
  if (backlinks && backlinks.length > 0) {
@@ -135,41 +127,6 @@ export function createSnippet({
135
127
  return [node, importedTriples];
136
128
  }
137
129
 
138
- /**
139
- * Creates a Snippet node wrapping the given content while allowing for further snippets to be added
140
- * or removed.
141
- * Takes the same arguments object as creating a snippet but also a generator that produces a
142
- * transaction that inserts the snippet into the document, so that this can be done in a way
143
- * specific to the situation.
144
- **/
145
- export function createAndInsertSnippet(
146
- createSnippetArgs: CreateSnippetArgs,
147
- insertTransactionGenerator: (tr: Transaction, snippet: PNode) => Transaction,
148
- ) {
149
- return createSnippetArgs.controller.withTransaction((tr, state) => {
150
- const [snippet, importedTriples] = createSnippet(createSnippetArgs);
151
- const result = transactionCombinator<boolean>(
152
- state,
153
- insertTransactionGenerator(tr, snippet),
154
- )(
155
- Object.values(createSnippetArgs.importedResources)
156
- .map((linked) => {
157
- const newProperties =
158
- (isSome(linked) && importedTriples.get(linked)) || [];
159
- return newProperties.map((newProp) =>
160
- addPropertyToNode({
161
- resource: unwrap(linked),
162
- property: newProp,
163
- }),
164
- );
165
- })
166
- .flat(),
167
- );
168
-
169
- return result.transaction;
170
- });
171
- }
172
-
173
130
  const emberNodeConfig = (options: SnippetPluginConfig): EmberNodeConfig => ({
174
131
  name: 'snippet',
175
132
  inline: false,
@@ -0,0 +1,14 @@
1
+ import { Command } from '@lblod/ember-rdfa-editor';
2
+ import { type ImportedResourceMap } from '@lblod/ember-rdfa-editor-lblod-plugins/plugins/snippet-plugin';
3
+ export interface InsertSnippetCommandArgs {
4
+ content: string;
5
+ title: string;
6
+ assignedSnippetListsIds: string[];
7
+ importedResources?: ImportedResourceMap;
8
+ range?: {
9
+ start: number;
10
+ end: number;
11
+ };
12
+ }
13
+ declare const insertSnippet: ({ content, title, assignedSnippetListsIds, importedResources, range, }: InsertSnippetCommandArgs) => Command;
14
+ export default insertSnippet;
@@ -1,12 +1,12 @@
1
- import { type PNode, type SayController, type Transaction } from '@lblod/ember-rdfa-editor';
1
+ import { type PNode, type Schema } from '@lblod/ember-rdfa-editor';
2
2
  import { type OutgoingTriple } from '@lblod/ember-rdfa-editor/core/rdfa-processor';
3
3
  import { type ImportedResourceMap, type SnippetPluginConfig } from '@lblod/ember-rdfa-editor-lblod-plugins/plugins/snippet-plugin';
4
4
  interface CreateSnippetArgs {
5
- controller: SayController;
5
+ schema: Schema;
6
6
  content: string;
7
7
  title: string;
8
8
  snippetListIds: string[];
9
- importedResources: ImportedResourceMap;
9
+ importedResources?: ImportedResourceMap;
10
10
  }
11
11
  /**
12
12
  * Creates a Snippet node wrapping the given content while allowing for further snippets to be added
@@ -14,15 +14,7 @@ interface CreateSnippetArgs {
14
14
  * @returns a tuple containing the Node and the map of imported resources to the new outgoing
15
15
  * properties that these resources will have after the snippet is inserted into the document.
16
16
  **/
17
- export declare function createSnippet({ controller, content, title, snippetListIds, importedResources, }: CreateSnippetArgs): [PNode, Map<string, OutgoingTriple[]>];
18
- /**
19
- * Creates a Snippet node wrapping the given content while allowing for further snippets to be added
20
- * or removed.
21
- * Takes the same arguments object as creating a snippet but also a generator that produces a
22
- * transaction that inserts the snippet into the document, so that this can be done in a way
23
- * specific to the situation.
24
- **/
25
- export declare function createAndInsertSnippet(createSnippetArgs: CreateSnippetArgs, insertTransactionGenerator: (tr: Transaction, snippet: PNode) => Transaction): void;
17
+ export declare function createSnippet({ schema, content, title, snippetListIds, importedResources, }: CreateSnippetArgs): [PNode, Map<string, OutgoingTriple[]>];
26
18
  export declare const snippet: (config: SnippetPluginConfig) => import("@lblod/ember-rdfa-editor/core/say-node-spec").default;
27
- export declare const snippetView: (config: SnippetPluginConfig) => (controller: SayController) => import("@lblod/ember-rdfa-editor/utils/ember-node").SayNodeViewConstructor;
19
+ export declare const snippetView: (config: SnippetPluginConfig) => (controller: import("@lblod/ember-rdfa-editor").SayController) => import("@lblod/ember-rdfa-editor/utils/ember-node").SayNodeViewConstructor;
28
20
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lblod/ember-rdfa-editor-lblod-plugins",
3
- "version": "22.5.0",
3
+ "version": "22.5.1-dev.29ec90bdf784a8c86623ee01481ecbe3eee8ea43",
4
4
  "description": "Ember addon providing lblod specific plugins for the ember-rdfa-editor",
5
5
  "keywords": [
6
6
  "ember-addon",
@@ -102,7 +102,7 @@
102
102
  "@glint/template": "^1.4.0",
103
103
  "@graphy/content.ttl.write": "^4.3.7",
104
104
  "@graphy/memory.dataset.fast": "4.3.3",
105
- "@lblod/ember-rdfa-editor": "^10.4.0",
105
+ "@lblod/ember-rdfa-editor": "10.4.0",
106
106
  "@rdfjs/types": "^1.1.0",
107
107
  "@release-it/keep-a-changelog": "^4.0.0",
108
108
  "@tsconfig/ember": "^3.0.8",
package/pnpm-lock.yaml CHANGED
@@ -160,7 +160,7 @@ importers:
160
160
  specifier: 4.3.3
161
161
  version: 4.3.3
162
162
  '@lblod/ember-rdfa-editor':
163
- specifier: ^10.4.0
163
+ specifier: 10.4.0
164
164
  version: 10.4.0(2ef3gpurqxbttnmniw6grhzpuy)
165
165
  '@rdfjs/types':
166
166
  specifier: ^1.1.0
@@ -2599,8 +2599,8 @@ packages:
2599
2599
  async@2.6.4:
2600
2600
  resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==}
2601
2601
 
2602
- async@3.2.6:
2603
- resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==}
2602
+ async@3.2.5:
2603
+ resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==}
2604
2604
 
2605
2605
  at-least-node@1.0.0:
2606
2606
  resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==}
@@ -3885,8 +3885,8 @@ packages:
3885
3885
  resolution: {integrity: sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==}
3886
3886
  engines: {node: '>=0.4', npm: '>=1.2'}
3887
3887
 
3888
- dompurify@3.1.6:
3889
- resolution: {integrity: sha512-cTOAhc36AalkjtBpfG6O8JimdTMWNXjiePT2xQH/ppBGi/4uIpmj8eKyIkMJErXWARyINV/sB38yf8JCLF5pbQ==}
3888
+ dompurify@3.1.5:
3889
+ resolution: {integrity: sha512-lwG+n5h8QNpxtyrJW/gJWckL+1/DQiYMX8f7t8Z2AZTPw1esVrqjI63i7Zc2Gz0aKzLVMYC1V1PL/ky+aY/NgA==}
3890
3890
 
3891
3891
  dot-case@3.0.4:
3892
3892
  resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==}
@@ -7265,8 +7265,8 @@ packages:
7265
7265
  property-expr@2.0.6:
7266
7266
  resolution: {integrity: sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==}
7267
7267
 
7268
- prosemirror-commands@1.6.0:
7269
- resolution: {integrity: sha512-xn1U/g36OqXn2tn5nGmvnnimAj/g1pUx2ypJJIe8WkVX83WyJVC5LTARaxZa2AtQRwntu9Jc5zXs9gL9svp/mg==}
7268
+ prosemirror-commands@1.5.2:
7269
+ resolution: {integrity: sha512-hgLcPaakxH8tu6YvVAaILV2tXYsW3rAdDR8WNkeKGcgeMVQg3/TMhPdVoh7iAmfgVjZGtcOSjKiQaoeKjzd2mQ==}
7270
7270
 
7271
7271
  prosemirror-dev-tools@4.1.0:
7272
7272
  resolution: {integrity: sha512-TqMyXLiY8EUoq4f4LV+8dQVuRejwGfeOJdJWjrHNXR9ttKy3MVYBCqmiu3CDULgjv8gtLsqoZY6+ab6BZRmr1g==}
@@ -7278,8 +7278,8 @@ packages:
7278
7278
  prosemirror-dropcursor@1.8.1:
7279
7279
  resolution: {integrity: sha512-M30WJdJZLyXHi3N8vxN6Zh5O8ZBbQCz0gURTfPmTIBNQ5pxrdU7A58QkNqfa98YEjSAL1HUyyU34f6Pm5xBSGw==}
7280
7280
 
7281
- prosemirror-history@1.4.1:
7282
- resolution: {integrity: sha512-2JZD8z2JviJrboD9cPuX/Sv/1ChFng+xh2tChQ2X4bB2HeK+rra/bmJ3xGntCcjhOqIzSDG6Id7e8RJ9QPXLEQ==}
7281
+ prosemirror-history@1.4.0:
7282
+ resolution: {integrity: sha512-UUiGzDVcqo1lovOPdi9YxxUps3oBFWAIYkXLu3Ot+JPv1qzVogRbcizxK3LhHmtaUxclohgiOVesRw5QSlMnbQ==}
7283
7283
 
7284
7284
  prosemirror-inputrules@1.4.0:
7285
7285
  resolution: {integrity: sha512-6ygpPRuTJ2lcOXs9JkefieMst63wVJBgHZGl5QOytN7oSZs3Co/BYbc3Yx9zm9H37Bxw8kVzCnDsihsVsL4yEg==}
@@ -7290,11 +7290,11 @@ packages:
7290
7290
  prosemirror-model@1.21.3:
7291
7291
  resolution: {integrity: sha512-nt2Xs/RNGepD9hrrkzXvtCm1mpGJoQfFSPktGa0BF/aav6XsnmVGZ9sTXNWRLupAz5SCLa3EyKlFeK7zJWROKg==}
7292
7292
 
7293
- prosemirror-schema-basic@1.2.3:
7294
- resolution: {integrity: sha512-h+H0OQwZVqMon1PNn0AG9cTfx513zgIG2DY00eJ00Yvgb3UD+GQ/VlWW5rcaxacpCGT1Yx8nuhwXk4+QbXUfJA==}
7293
+ prosemirror-schema-basic@1.2.2:
7294
+ resolution: {integrity: sha512-/dT4JFEGyO7QnNTe9UaKUhjDXbTNkiWTq/N4VpKaF79bBjSExVV2NXmJpcM7z/gD7mbqNjxbmWW5nf1iNSSGnw==}
7295
7295
 
7296
- prosemirror-schema-list@1.4.1:
7297
- resolution: {integrity: sha512-jbDyaP/6AFfDfu70VzySsD75Om2t3sXTOdl5+31Wlxlg62td1haUpty/ybajSfJ1pkGadlOfwQq9kgW5IMo1Rg==}
7296
+ prosemirror-schema-list@1.4.0:
7297
+ resolution: {integrity: sha512-nZOIq/AkBSzCENxUyLm5ltWE53e2PLk65ghMN8qLQptOmDVixZlPqtMeQdiNw0odL9vNpalEjl3upgRkuJ/Jyw==}
7298
7298
 
7299
7299
  prosemirror-state@1.4.3:
7300
7300
  resolution: {integrity: sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q==}
@@ -10741,7 +10741,7 @@ snapshots:
10741
10741
  common-tags: 1.8.2
10742
10742
  crypto-browserify: 3.12.0
10743
10743
  debug: 4.3.5
10744
- dompurify: 3.1.6
10744
+ dompurify: 3.1.5
10745
10745
  ember-auto-import: 2.7.4(@glint/template@1.4.0)(webpack@5.92.1)
10746
10746
  ember-changeset: 4.1.2(@glint/template@1.4.0)(webpack@5.92.1)
10747
10747
  ember-cli-babel: 8.2.0(@babel/core@7.24.7)
@@ -10761,14 +10761,14 @@ snapshots:
10761
10761
  linkifyjs: 4.1.3
10762
10762
  mdn-polyfills: 5.20.0
10763
10763
  process: 0.11.10
10764
- prosemirror-commands: 1.6.0
10764
+ prosemirror-commands: 1.5.2
10765
10765
  prosemirror-dropcursor: 1.8.1
10766
- prosemirror-history: 1.4.1
10766
+ prosemirror-history: 1.4.0
10767
10767
  prosemirror-inputrules: 1.4.0
10768
10768
  prosemirror-keymap: 1.2.2
10769
10769
  prosemirror-model: 1.21.3
10770
- prosemirror-schema-basic: 1.2.3
10771
- prosemirror-schema-list: 1.4.1
10770
+ prosemirror-schema-basic: 1.2.2
10771
+ prosemirror-schema-list: 1.4.0
10772
10772
  prosemirror-state: 1.4.3
10773
10773
  prosemirror-transform: 1.9.0
10774
10774
  prosemirror-view: 1.33.8
@@ -12097,7 +12097,7 @@ snapshots:
12097
12097
  dependencies:
12098
12098
  lodash: 4.17.21
12099
12099
 
12100
- async@3.2.6: {}
12100
+ async@3.2.5: {}
12101
12101
 
12102
12102
  at-least-node@1.0.0: {}
12103
12103
 
@@ -13763,7 +13763,7 @@ snapshots:
13763
13763
 
13764
13764
  domain-browser@1.2.0: {}
13765
13765
 
13766
- dompurify@3.1.6: {}
13766
+ dompurify@3.1.5: {}
13767
13767
 
13768
13768
  dot-case@3.0.4:
13769
13769
  dependencies:
@@ -16147,7 +16147,7 @@ snapshots:
16147
16147
 
16148
16148
  handlebars-loader@1.7.3(handlebars@4.7.8):
16149
16149
  dependencies:
16150
- async: 3.2.6
16150
+ async: 3.2.5
16151
16151
  fastparse: 1.1.2
16152
16152
  handlebars: 4.7.8
16153
16153
  loader-utils: 1.4.2
@@ -18266,7 +18266,7 @@ snapshots:
18266
18266
 
18267
18267
  property-expr@2.0.6: {}
18268
18268
 
18269
- prosemirror-commands@1.6.0:
18269
+ prosemirror-commands@1.5.2:
18270
18270
  dependencies:
18271
18271
  prosemirror-model: 1.21.3
18272
18272
  prosemirror-state: 1.4.3
@@ -18306,7 +18306,7 @@ snapshots:
18306
18306
  prosemirror-transform: 1.9.0
18307
18307
  prosemirror-view: 1.33.8
18308
18308
 
18309
- prosemirror-history@1.4.1:
18309
+ prosemirror-history@1.4.0:
18310
18310
  dependencies:
18311
18311
  prosemirror-state: 1.4.3
18312
18312
  prosemirror-transform: 1.9.0
@@ -18327,11 +18327,11 @@ snapshots:
18327
18327
  dependencies:
18328
18328
  orderedmap: 2.1.1
18329
18329
 
18330
- prosemirror-schema-basic@1.2.3:
18330
+ prosemirror-schema-basic@1.2.2:
18331
18331
  dependencies:
18332
18332
  prosemirror-model: 1.21.3
18333
18333
 
18334
- prosemirror-schema-list@1.4.1:
18334
+ prosemirror-schema-list@1.4.0:
18335
18335
  dependencies:
18336
18336
  prosemirror-model: 1.21.3
18337
18337
  prosemirror-state: 1.4.3