@quadrats/common 0.7.3 → 0.7.7

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.
@@ -1,4 +1,4 @@
1
- import { unwrapNodesByTypes, wrapNodesWithUnhangRange, isNodesTypeIn } from '@quadrats/core';
1
+ import { isNodesTypeIn, wrapNodesWithUnhangRange, unwrapNodesByTypes } from '@quadrats/core';
2
2
  import { BLOCKQUOTE_TYPE } from './constants.js';
3
3
 
4
4
  function createBlockquote({ type = BLOCKQUOTE_TYPE } = {}) {
@@ -1,2 +1,2 @@
1
1
  import { Editor } from '@quadrats/core';
2
- export declare function createBold<E extends Editor = Editor>(variant?: string): ({ type, variant }?: import("@quadrats/common/toggle-mark").CreateToggleMarkOptions | undefined) => import("@quadrats/common/toggle-mark").ToggleMark<E>;
2
+ export declare function createBold<E extends Editor = Editor>(variant?: string): ({ type, variant }?: import("@quadrats/common/toggle-mark").CreateToggleMarkOptions) => import("@quadrats/common/toggle-mark").ToggleMark<E>;
@@ -1,14 +1,20 @@
1
- import { Element, Transforms, normalizeVoidElementChildren, PARAGRAPH_TYPE } from '@quadrats/core';
1
+ import { PARAGRAPH_TYPE, Element, Transforms, normalizeVoidElementChildren, isAboveBlockEmpty } from '@quadrats/core';
2
2
  import { EMBED_TYPE } from './constants.js';
3
3
  import { serializeEmbedCode } from './serializeEmbedCode.js';
4
4
 
5
5
  function createEmbed(options) {
6
6
  const { type = EMBED_TYPE, strategies } = options;
7
7
  const insertEmbed = (editor, providers, embedCode, defaultNode = PARAGRAPH_TYPE) => {
8
+ var _a;
8
9
  const result = serializeEmbedCode(embedCode, strategies, providers);
9
10
  if (result) {
10
11
  const [provider, data] = result;
11
12
  const embedElement = Object.assign(Object.assign({}, data), { type, provider, children: [{ text: '' }] });
13
+ if (isAboveBlockEmpty(editor)) {
14
+ Transforms.removeNodes(editor, {
15
+ at: (_a = editor.selection) === null || _a === void 0 ? void 0 : _a.anchor,
16
+ });
17
+ }
12
18
  Transforms.insertNodes(editor, [
13
19
  embedElement,
14
20
  typeof defaultNode === 'string'
@@ -25,10 +25,16 @@ function deserializeEmbedElementToData(element, strategies) {
25
25
  function createEmbed(options) {
26
26
  const { type = EMBED_TYPE, strategies } = options;
27
27
  const insertEmbed = (editor, providers, embedCode, defaultNode = core.PARAGRAPH_TYPE) => {
28
+ var _a;
28
29
  const result = serializeEmbedCode(embedCode, strategies, providers);
29
30
  if (result) {
30
31
  const [provider, data] = result;
31
32
  const embedElement = Object.assign(Object.assign({}, data), { type, provider, children: [{ text: '' }] });
33
+ if (core.isAboveBlockEmpty(editor)) {
34
+ core.Transforms.removeNodes(editor, {
35
+ at: (_a = editor.selection) === null || _a === void 0 ? void 0 : _a.anchor,
36
+ });
37
+ }
32
38
  core.Transforms.insertNodes(editor, [
33
39
  embedElement,
34
40
  typeof defaultNode === 'string'
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  function getTwitterTweetDataFromUrl(url) {
4
- const result = /^https:\/\/twitter.com\/[\w]*\/status\/([\w-]*)/i.exec(url);
4
+ const result = /^https:\/\/x.com\/[\w]*\/status\/([\w-]*)/i.exec(url);
5
5
  if (result) {
6
6
  const [, tweetId] = result;
7
7
  return {
@@ -1,5 +1,5 @@
1
1
  function getTwitterTweetDataFromUrl(url) {
2
- const result = /^https:\/\/twitter.com\/[\w]*\/status\/([\w-]*)/i.exec(url);
2
+ const result = /^https:\/\/x.com\/[\w]*\/status\/([\w-]*)/i.exec(url);
3
3
  if (result) {
4
4
  const [, tweetId] = result;
5
5
  return {
@@ -1,6 +1,8 @@
1
1
  import { Editor } from '@quadrats/core';
2
- import { FileUploader } from './typings';
2
+ import { FileUploader, FileUploaderElement } from './typings';
3
3
  export interface CreateFileUploaderOptions {
4
4
  type?: string;
5
5
  }
6
+ export declare const createFileUploaderElementByType: (type: string) => FileUploader<Editor>['createFileUploaderElement'];
7
+ export declare function insertFileUploaderElement(editor: Editor, fileUploaderElement: FileUploaderElement | undefined): void;
6
8
  export declare function createFileUploader(options?: CreateFileUploaderOptions): FileUploader<Editor>;
@@ -1,60 +1,76 @@
1
1
  import { __awaiter } from './_virtual/_tslib.js';
2
2
  import { readFileAsDataURL } from '@quadrats/utils';
3
- import { HistoryEditor, Transforms, isAboveBlockEmpty, createParagraphElement } from '@quadrats/core';
3
+ import { isAboveBlockEmpty, Transforms, createParagraphElement, HistoryEditor } from '@quadrats/core';
4
4
  import { FILE_UPLOADER_TYPE } from './constants.js';
5
5
  import { getFilesFromInput } from './getFilesFromInput.js';
6
6
 
7
- function createFileUploader(options = {}) {
8
- const { type = FILE_UPLOADER_TYPE } = options;
9
- const createFileUploaderElement = (editor, file, options) => __awaiter(this, void 0, void 0, function* () {
10
- const { createElement, getBody, getHeaders, getUrl, uploader, } = options;
11
- const [mime] = file.type.split('/');
12
- const createByMime = createElement[mime];
13
- if (!createByMime) {
14
- return;
15
- }
16
- const { dataURL: createElementByDataURL, response: createElementByResponse } = createByMime;
17
- const headers = yield (getHeaders === null || getHeaders === void 0 ? void 0 : getHeaders(file));
18
- const xhr = uploader || new XMLHttpRequest();
19
- const dataURL = yield readFileAsDataURL(file);
20
- let sent = false;
21
- const fileUploaderElement = {
22
- type,
23
- register: (getPath, onProgress) => {
24
- xhr.onload = () => {
25
- if (xhr.status < 400) {
26
- const path = getPath();
27
- if (path) {
28
- HistoryEditor.withoutSaving(editor, () => {
29
- Transforms.removeNodes(editor, { at: path });
30
- Transforms.insertNodes(editor, createElementByResponse(xhr.response), { at: path });
31
- });
32
- }
33
- }
34
- else {
35
- throw xhr.response;
7
+ const createFileUploaderElementByType = type => (editor, file, options) => __awaiter(void 0, void 0, void 0, function* () {
8
+ const { createElement, getBody, getHeaders, getUrl, uploader, } = options;
9
+ const [mime] = file.type.split('/');
10
+ const createByMime = createElement[mime];
11
+ if (!createByMime) {
12
+ return;
13
+ }
14
+ const { dataURL: createElementByDataURL, response: createElementByResponse } = createByMime;
15
+ const headers = yield (getHeaders === null || getHeaders === void 0 ? void 0 : getHeaders(file));
16
+ const xhr = uploader || new XMLHttpRequest();
17
+ const dataURL = yield readFileAsDataURL(file);
18
+ let sent = false;
19
+ const fileUploaderElement = {
20
+ type,
21
+ register: (getPath, onProgress) => {
22
+ xhr.onload = () => {
23
+ if (xhr.status < 400) {
24
+ const path = getPath();
25
+ if (path) {
26
+ HistoryEditor.withoutSaving(editor, () => {
27
+ Transforms.removeNodes(editor, { at: path });
28
+ Transforms.insertNodes(editor, createElementByResponse(xhr.response), { at: path });
29
+ });
36
30
  }
37
- };
38
- xhr.upload.onprogress = ({ loaded, total }) => onProgress((loaded * 100) / total);
39
- if (!sent) {
40
- sent = true;
41
- xhr.send(getBody(file));
42
31
  }
43
- return () => {
44
- xhr.onload = null;
45
- xhr.upload.onprogress = null;
46
- };
47
- },
48
- children: [createElementByDataURL(dataURL)],
49
- };
50
- xhr.open('POST', getUrl(file));
51
- if (headers) {
52
- for (const headerName in headers) {
53
- xhr.setRequestHeader(headerName, headers[headerName]);
32
+ else {
33
+ throw xhr.response;
34
+ }
35
+ };
36
+ xhr.upload.onprogress = ({ loaded, total }) => onProgress((loaded * 100) / total);
37
+ if (!sent) {
38
+ sent = true;
39
+ xhr.send(getBody(file));
54
40
  }
41
+ return () => {
42
+ xhr.onload = null;
43
+ xhr.upload.onprogress = null;
44
+ };
45
+ },
46
+ children: [createElementByDataURL(dataURL)],
47
+ };
48
+ xhr.open('POST', getUrl(file));
49
+ if (headers) {
50
+ for (const headerName in headers) {
51
+ xhr.setRequestHeader(headerName, headers[headerName]);
55
52
  }
56
- return fileUploaderElement;
57
- });
53
+ }
54
+ return fileUploaderElement;
55
+ });
56
+ function insertFileUploaderElement(editor, fileUploaderElement) {
57
+ var _a, _b, _c;
58
+ if (fileUploaderElement) {
59
+ // Clear empty node
60
+ if (isAboveBlockEmpty(editor)) {
61
+ Transforms.removeNodes(editor, {
62
+ at: (_a = editor.selection) === null || _a === void 0 ? void 0 : _a.anchor,
63
+ });
64
+ }
65
+ Transforms.insertNodes(editor, [fileUploaderElement, createParagraphElement()], {
66
+ at: ((_b = editor.selection) === null || _b === void 0 ? void 0 : _b.anchor.path.length) ? [((_c = editor.selection) === null || _c === void 0 ? void 0 : _c.anchor.path[0]) + 1] : undefined,
67
+ });
68
+ Transforms.move(editor);
69
+ }
70
+ }
71
+ function createFileUploader(options = {}) {
72
+ const { type = FILE_UPLOADER_TYPE } = options;
73
+ const createFileUploaderElement = createFileUploaderElementByType(type);
58
74
  const upload = (editor, options) => __awaiter(this, void 0, void 0, function* () {
59
75
  const { accept, multiple } = options;
60
76
  const files = yield getFilesFromInput({ accept, multiple });
@@ -64,19 +80,7 @@ function createFileUploader(options = {}) {
64
80
  files.reduce((prev, file) => __awaiter(this, void 0, void 0, function* () {
65
81
  yield prev;
66
82
  return createFileUploaderElement(editor, file, options).then((fileUploaderElement) => {
67
- var _a, _b, _c;
68
- if (fileUploaderElement) {
69
- // Clear empty node
70
- if (isAboveBlockEmpty(editor)) {
71
- Transforms.removeNodes(editor, {
72
- at: (_a = editor.selection) === null || _a === void 0 ? void 0 : _a.anchor,
73
- });
74
- }
75
- Transforms.insertNodes(editor, [fileUploaderElement, createParagraphElement()], {
76
- at: ((_b = editor.selection) === null || _b === void 0 ? void 0 : _b.anchor.path.length) ? [((_c = editor.selection) === null || _c === void 0 ? void 0 : _c.anchor.path[0]) + 1] : undefined,
77
- });
78
- Transforms.move(editor);
79
- }
83
+ insertFileUploaderElement(editor, fileUploaderElement);
80
84
  });
81
85
  }), Promise.resolve());
82
86
  });
@@ -90,4 +94,4 @@ function createFileUploader(options = {}) {
90
94
  };
91
95
  }
92
96
 
93
- export { createFileUploader };
97
+ export { createFileUploader, createFileUploaderElementByType, insertFileUploaderElement };
@@ -63,57 +63,73 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
63
63
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
64
64
  };
65
65
 
66
- function createFileUploader(options = {}) {
67
- const { type = FILE_UPLOADER_TYPE } = options;
68
- const createFileUploaderElement = (editor, file, options) => __awaiter(this, void 0, void 0, function* () {
69
- const { createElement, getBody, getHeaders, getUrl, uploader, } = options;
70
- const [mime] = file.type.split('/');
71
- const createByMime = createElement[mime];
72
- if (!createByMime) {
73
- return;
74
- }
75
- const { dataURL: createElementByDataURL, response: createElementByResponse } = createByMime;
76
- const headers = yield (getHeaders === null || getHeaders === void 0 ? void 0 : getHeaders(file));
77
- const xhr = uploader || new XMLHttpRequest();
78
- const dataURL = yield utils.readFileAsDataURL(file);
79
- let sent = false;
80
- const fileUploaderElement = {
81
- type,
82
- register: (getPath, onProgress) => {
83
- xhr.onload = () => {
84
- if (xhr.status < 400) {
85
- const path = getPath();
86
- if (path) {
87
- core.HistoryEditor.withoutSaving(editor, () => {
88
- core.Transforms.removeNodes(editor, { at: path });
89
- core.Transforms.insertNodes(editor, createElementByResponse(xhr.response), { at: path });
90
- });
91
- }
92
- }
93
- else {
94
- throw xhr.response;
66
+ const createFileUploaderElementByType = type => (editor, file, options) => __awaiter(void 0, void 0, void 0, function* () {
67
+ const { createElement, getBody, getHeaders, getUrl, uploader, } = options;
68
+ const [mime] = file.type.split('/');
69
+ const createByMime = createElement[mime];
70
+ if (!createByMime) {
71
+ return;
72
+ }
73
+ const { dataURL: createElementByDataURL, response: createElementByResponse } = createByMime;
74
+ const headers = yield (getHeaders === null || getHeaders === void 0 ? void 0 : getHeaders(file));
75
+ const xhr = uploader || new XMLHttpRequest();
76
+ const dataURL = yield utils.readFileAsDataURL(file);
77
+ let sent = false;
78
+ const fileUploaderElement = {
79
+ type,
80
+ register: (getPath, onProgress) => {
81
+ xhr.onload = () => {
82
+ if (xhr.status < 400) {
83
+ const path = getPath();
84
+ if (path) {
85
+ core.HistoryEditor.withoutSaving(editor, () => {
86
+ core.Transforms.removeNodes(editor, { at: path });
87
+ core.Transforms.insertNodes(editor, createElementByResponse(xhr.response), { at: path });
88
+ });
95
89
  }
96
- };
97
- xhr.upload.onprogress = ({ loaded, total }) => onProgress((loaded * 100) / total);
98
- if (!sent) {
99
- sent = true;
100
- xhr.send(getBody(file));
101
90
  }
102
- return () => {
103
- xhr.onload = null;
104
- xhr.upload.onprogress = null;
105
- };
106
- },
107
- children: [createElementByDataURL(dataURL)],
108
- };
109
- xhr.open('POST', getUrl(file));
110
- if (headers) {
111
- for (const headerName in headers) {
112
- xhr.setRequestHeader(headerName, headers[headerName]);
91
+ else {
92
+ throw xhr.response;
93
+ }
94
+ };
95
+ xhr.upload.onprogress = ({ loaded, total }) => onProgress((loaded * 100) / total);
96
+ if (!sent) {
97
+ sent = true;
98
+ xhr.send(getBody(file));
113
99
  }
100
+ return () => {
101
+ xhr.onload = null;
102
+ xhr.upload.onprogress = null;
103
+ };
104
+ },
105
+ children: [createElementByDataURL(dataURL)],
106
+ };
107
+ xhr.open('POST', getUrl(file));
108
+ if (headers) {
109
+ for (const headerName in headers) {
110
+ xhr.setRequestHeader(headerName, headers[headerName]);
114
111
  }
115
- return fileUploaderElement;
116
- });
112
+ }
113
+ return fileUploaderElement;
114
+ });
115
+ function insertFileUploaderElement(editor, fileUploaderElement) {
116
+ var _a, _b, _c;
117
+ if (fileUploaderElement) {
118
+ // Clear empty node
119
+ if (core.isAboveBlockEmpty(editor)) {
120
+ core.Transforms.removeNodes(editor, {
121
+ at: (_a = editor.selection) === null || _a === void 0 ? void 0 : _a.anchor,
122
+ });
123
+ }
124
+ core.Transforms.insertNodes(editor, [fileUploaderElement, core.createParagraphElement()], {
125
+ at: ((_b = editor.selection) === null || _b === void 0 ? void 0 : _b.anchor.path.length) ? [((_c = editor.selection) === null || _c === void 0 ? void 0 : _c.anchor.path[0]) + 1] : undefined,
126
+ });
127
+ core.Transforms.move(editor);
128
+ }
129
+ }
130
+ function createFileUploader(options = {}) {
131
+ const { type = FILE_UPLOADER_TYPE } = options;
132
+ const createFileUploaderElement = createFileUploaderElementByType(type);
117
133
  const upload = (editor, options) => __awaiter(this, void 0, void 0, function* () {
118
134
  const { accept, multiple } = options;
119
135
  const files = yield getFilesFromInput({ accept, multiple });
@@ -123,19 +139,7 @@ function createFileUploader(options = {}) {
123
139
  files.reduce((prev, file) => __awaiter(this, void 0, void 0, function* () {
124
140
  yield prev;
125
141
  return createFileUploaderElement(editor, file, options).then((fileUploaderElement) => {
126
- var _a, _b, _c;
127
- if (fileUploaderElement) {
128
- // Clear empty node
129
- if (core.isAboveBlockEmpty(editor)) {
130
- core.Transforms.removeNodes(editor, {
131
- at: (_a = editor.selection) === null || _a === void 0 ? void 0 : _a.anchor,
132
- });
133
- }
134
- core.Transforms.insertNodes(editor, [fileUploaderElement, core.createParagraphElement()], {
135
- at: ((_b = editor.selection) === null || _b === void 0 ? void 0 : _b.anchor.path.length) ? [((_c = editor.selection) === null || _c === void 0 ? void 0 : _c.anchor.path[0]) + 1] : undefined,
136
- });
137
- core.Transforms.move(editor);
138
- }
142
+ insertFileUploaderElement(editor, fileUploaderElement);
139
143
  });
140
144
  }), Promise.resolve());
141
145
  });
@@ -151,4 +155,6 @@ function createFileUploader(options = {}) {
151
155
 
152
156
  exports.FILE_UPLOADER_TYPE = FILE_UPLOADER_TYPE;
153
157
  exports.createFileUploader = createFileUploader;
158
+ exports.createFileUploaderElementByType = createFileUploaderElementByType;
154
159
  exports.getFilesFromInput = getFilesFromInput;
160
+ exports.insertFileUploaderElement = insertFileUploaderElement;
@@ -1,4 +1,4 @@
1
1
  export * from './typings';
2
2
  export * from './constants';
3
3
  export { GetFilesFromInputOptions, getFilesFromInput } from './getFilesFromInput';
4
- export { CreateFileUploaderOptions, createFileUploader } from './createFileUploader';
4
+ export { CreateFileUploaderOptions, createFileUploaderElementByType, insertFileUploaderElement, createFileUploader, } from './createFileUploader';
@@ -1,3 +1,3 @@
1
1
  export { FILE_UPLOADER_TYPE } from './constants.js';
2
2
  export { getFilesFromInput } from './getFilesFromInput.js';
3
- export { createFileUploader } from './createFileUploader.js';
3
+ export { createFileUploader, createFileUploaderElementByType, insertFileUploaderElement } from './createFileUploader.js';
@@ -1,4 +1,4 @@
1
- import { isNodesTypeIn, getNodes, Transforms, unwrapNodesByTypes, wrapNodesWithUnhangRange } from '@quadrats/core';
1
+ import { isNodesTypeIn, Transforms, wrapNodesWithUnhangRange, unwrapNodesByTypes, getNodes } from '@quadrats/core';
2
2
  import { FOOTNOTE_TYPE } from './constants.js';
3
3
 
4
4
  /* eslint-disable max-len */
@@ -1,3 +1,3 @@
1
1
  import { HeadingLevel } from './typings';
2
2
  export declare const HEADING_TYPE = "heading";
3
- export declare const HEADING_LEVELS: readonly HeadingLevel[];
3
+ export declare const HEADING_LEVELS: ReadonlyArray<HeadingLevel>;
@@ -1,5 +1,5 @@
1
- import { Element, Transforms, PARAGRAPH_TYPE, normalizeOnlyInlineOrTextInChildren, getNodes } from '@quadrats/core';
2
- import { HEADING_TYPE, HEADING_LEVELS } from './constants.js';
1
+ import { PARAGRAPH_TYPE, getNodes, Element, Transforms, normalizeOnlyInlineOrTextInChildren } from '@quadrats/core';
2
+ import { HEADING_LEVELS, HEADING_TYPE } from './constants.js';
3
3
 
4
4
  function createHeading({ type = HEADING_TYPE, enabledLevels = HEADING_LEVELS, } = {}) {
5
5
  const getHeadingNodes = (editor, level, options = {}) => getNodes(editor, Object.assign(Object.assign({}, options), { match: node => node.type === type && node.level === level }));
@@ -1,2 +1,2 @@
1
1
  import { Editor } from '@quadrats/core';
2
- export declare function createHighlight<E extends Editor = Editor>(variant?: string): ({ type, variant }?: import("@quadrats/common/toggle-mark").CreateToggleMarkOptions | undefined) => import("@quadrats/common/toggle-mark").ToggleMark<E>;
2
+ export declare function createHighlight<E extends Editor = Editor>(variant?: string): ({ type, variant }?: import("@quadrats/common/toggle-mark").CreateToggleMarkOptions) => import("@quadrats/common/toggle-mark").ToggleMark<E>;
@@ -1,5 +1,5 @@
1
1
  import { isImageUrl } from '@quadrats/utils';
2
- import { Editor, Transforms, createParagraphElement, Element, normalizeVoidElementChildren, normalizeOnlyInlineOrTextInChildren, getAboveByTypes, isNodesTypeIn, Range } from '@quadrats/core';
2
+ import { Range, isNodesTypeIn, getAboveByTypes, Editor, Transforms, createParagraphElement, Element, normalizeVoidElementChildren, normalizeOnlyInlineOrTextInChildren } from '@quadrats/core';
3
3
  import { IMAGE_TYPES } from './constants.js';
4
4
 
5
5
  function resolveSizeSteps(steps) {
@@ -1,4 +1,4 @@
1
- import { Editor, Path, Transforms } from '@quadrats/core';
1
+ import { Path, Editor, Transforms } from '@quadrats/core';
2
2
  import { INPUT_BLOCK_TYPE } from './constants.js';
3
3
 
4
4
  function createInputBlock(options = {}) {
@@ -1,2 +1,2 @@
1
1
  import { Editor } from '@quadrats/core';
2
- export declare function createItalic<E extends Editor = Editor>(variant?: string): ({ type, variant }?: import("@quadrats/common/toggle-mark").CreateToggleMarkOptions | undefined) => import("@quadrats/common/toggle-mark").ToggleMark<E>;
2
+ export declare function createItalic<E extends Editor = Editor>(variant?: string): ({ type, variant }?: import("@quadrats/common/toggle-mark").CreateToggleMarkOptions) => import("@quadrats/common/toggle-mark").ToggleMark<E>;
@@ -1,5 +1,5 @@
1
1
  import { isUrl } from '@quadrats/utils';
2
- import { Range, Editor, Element, Transforms, Text, getRangeBeforeFromAboveBlockStart, getRangeBefore, isNodesTypeIn, unwrapNodesByTypes, wrapNodesWithUnhangRange, getAboveByTypes } from '@quadrats/core';
2
+ import { unwrapNodesByTypes, isNodesTypeIn, Range, Editor, Element, Transforms, Text, getAboveByTypes, wrapNodesWithUnhangRange, getRangeBeforeFromAboveBlockStart, getRangeBefore } from '@quadrats/core';
3
3
  import { LINK_TYPE } from './constants.js';
4
4
 
5
5
  function createLink({ type = LINK_TYPE, isUrl: isUrl$1 = isUrl, prevUrlToLinkAfterSpaceEntered = true, wrappableVoidTypes, } = {}) {
@@ -1,4 +1,4 @@
1
- import { Range, isSelectionAtBlockEdge, deleteSelectionFragmentIfExpanded, isAboveBlockEmpty, Transforms, isNodesTypeIn, getAboveByTypes, getParent, unwrapNodesByTypes, wrapNodesWithUnhangRange, getNodesByTypes, PARAGRAPH_TYPE, isFirstChild, Editor, Path } from '@quadrats/core';
1
+ import { PARAGRAPH_TYPE, isNodesTypeIn, Range, isSelectionAtBlockEdge, deleteSelectionFragmentIfExpanded, isAboveBlockEmpty, Transforms, Editor, Path, isFirstChild, wrapNodesWithUnhangRange, getNodesByTypes, unwrapNodesByTypes, getAboveByTypes, getParent } from '@quadrats/core';
2
2
  import { LIST_TYPES } from './constants.js';
3
3
 
4
4
  function createList(options = {}) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quadrats/common",
3
- "version": "0.7.3",
3
+ "version": "0.7.7",
4
4
  "description": "",
5
5
  "author": "Rytass",
6
6
  "homepage": "https://github.com/Quadrats/quadrats#readme",
@@ -18,8 +18,8 @@
18
18
  "url": "https://github.com/Quadrats/quadrats/issues"
19
19
  },
20
20
  "dependencies": {
21
- "@quadrats/core": "^0.7.2",
22
- "@quadrats/locales": "^0.7.0",
21
+ "@quadrats/core": "^0.7.7",
22
+ "@quadrats/locales": "^0.7.7",
23
23
  "@quadrats/utils": "^0.7.2"
24
24
  }
25
25
  }
@@ -1,4 +1,4 @@
1
- import { Element, normalizeVoidElementChildren, normalizeOnlyAtRoot, Path, Transforms, getNodesByTypes, deleteSelectionFragmentIfExpanded, createParagraphElement } from '@quadrats/core';
1
+ import { Element, normalizeVoidElementChildren, normalizeOnlyAtRoot, getNodesByTypes, Path, Transforms, deleteSelectionFragmentIfExpanded, createParagraphElement } from '@quadrats/core';
2
2
  import { READ_MORE_TYPE } from './constants.js';
3
3
 
4
4
  function createReadMore(options = {}) {
@@ -1,2 +1,2 @@
1
1
  import { Editor } from '@quadrats/core';
2
- export declare function createStrikethrough<E extends Editor = Editor>(variant?: string): ({ type, variant }?: import("@quadrats/common/toggle-mark").CreateToggleMarkOptions | undefined) => import("@quadrats/common/toggle-mark").ToggleMark<E>;
2
+ export declare function createStrikethrough<E extends Editor = Editor>(variant?: string): ({ type, variant }?: import("@quadrats/common/toggle-mark").CreateToggleMarkOptions) => import("@quadrats/common/toggle-mark").ToggleMark<E>;
@@ -1,2 +1,2 @@
1
1
  import { Editor } from '@quadrats/core';
2
- export declare function createUnderline<E extends Editor = Editor>(variant?: string): ({ type, variant }?: import("@quadrats/common/toggle-mark").CreateToggleMarkOptions | undefined) => import("@quadrats/common/toggle-mark").ToggleMark<E>;
2
+ export declare function createUnderline<E extends Editor = Editor>(variant?: string): ({ type, variant }?: import("@quadrats/common/toggle-mark").CreateToggleMarkOptions) => import("@quadrats/common/toggle-mark").ToggleMark<E>;