@quadrats/react 0.4.4 → 0.4.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.
Files changed (49) hide show
  1. package/bold/createReactBold.js +1 -1
  2. package/bold/defaultRenderBold.d.ts +1 -1
  3. package/bold/defaultRenderBold.js +3 -1
  4. package/bold/index.cjs.js +3 -2
  5. package/bold/jsx-serializer/createJsxSerializeBold.js +1 -1
  6. package/bold/jsx-serializer/index.cjs.js +1 -1
  7. package/bold/typings.d.ts +5 -0
  8. package/footnote/createReactFootnote.js +0 -11
  9. package/footnote/defaultRenderFootnoteElement.js +1 -1
  10. package/footnote/index.cjs.js +43 -12
  11. package/footnote/index.d.ts +2 -0
  12. package/footnote/index.js +2 -0
  13. package/footnote/jsx-serializer/defaultRenderFootnoteElement.js +1 -1
  14. package/footnote/jsx-serializer/index.cjs.js +1 -1
  15. package/footnote/useFootnotes.d.ts +4 -0
  16. package/footnote/useFootnotes.js +21 -0
  17. package/footnote/useFootnotesFromNodes.d.ts +4 -0
  18. package/footnote/useFootnotesFromNodes.js +26 -0
  19. package/highlight/createReactHighlight.js +1 -1
  20. package/highlight/defaultRenderHighlight.d.ts +1 -1
  21. package/highlight/defaultRenderHighlight.js +3 -1
  22. package/highlight/index.cjs.js +3 -2
  23. package/highlight/jsx-serializer/createJsxSerializeHighlight.js +1 -1
  24. package/highlight/jsx-serializer/index.cjs.js +1 -1
  25. package/highlight/typings.d.ts +5 -0
  26. package/input-block/hooks/useInputBlock.js +2 -1
  27. package/input-block/index.cjs.js +2 -1
  28. package/italic/createReactItalic.js +1 -1
  29. package/italic/defaultRenderItalic.d.ts +1 -1
  30. package/italic/defaultRenderItalic.js +3 -1
  31. package/italic/index.cjs.js +3 -2
  32. package/italic/jsx-serializer/createJsxSerializeItalic.js +1 -1
  33. package/italic/jsx-serializer/index.cjs.js +1 -1
  34. package/italic/typings.d.ts +5 -0
  35. package/package.json +3 -3
  36. package/strikethrough/createReactStrikethrough.js +1 -1
  37. package/strikethrough/defaultRenderStrikethrough.d.ts +1 -1
  38. package/strikethrough/defaultRenderStrikethrough.js +3 -1
  39. package/strikethrough/index.cjs.js +3 -2
  40. package/strikethrough/jsx-serializer/createJsxSerializeStrikethrough.js +1 -1
  41. package/strikethrough/jsx-serializer/index.cjs.js +1 -1
  42. package/strikethrough/typings.d.ts +5 -0
  43. package/underline/createReactUnderline.js +1 -1
  44. package/underline/defaultRenderUnderline.d.ts +1 -1
  45. package/underline/defaultRenderUnderline.js +3 -1
  46. package/underline/index.cjs.js +3 -2
  47. package/underline/jsx-serializer/createJsxSerializeUnderline.js +1 -1
  48. package/underline/jsx-serializer/index.cjs.js +1 -1
  49. package/underline/typings.d.ts +5 -0
@@ -5,7 +5,7 @@ import { defaultRenderBold } from './defaultRenderBold.js';
5
5
 
6
6
  const createReactBold = (variant) => createReactToggleMarkCreator(createBold(variant), {
7
7
  hotkey: BOLD_HOTKEY,
8
- render: defaultRenderBold(variant),
8
+ render: defaultRenderBold,
9
9
  })();
10
10
 
11
11
  export { createReactBold };
@@ -1,3 +1,3 @@
1
1
  /// <reference types="react" />
2
2
  import { RenderMarkPropsBase } from '@quadrats/react/_internal';
3
- export declare const defaultRenderBold: (variant?: string | undefined) => ({ children }: RenderMarkPropsBase<boolean>) => JSX.Element;
3
+ export declare const defaultRenderBold: ({ children, leaf }: RenderMarkPropsBase<boolean>) => JSX.Element;
@@ -1,5 +1,7 @@
1
1
  import React from 'react';
2
+ import { BOLD_TYPE } from '@quadrats/common/bold';
2
3
 
3
- const defaultRenderBold = (variant) => (({ children }) => (React.createElement("strong", { className: variant !== null && variant !== void 0 ? variant : '' }, children)));
4
+ const defaultRenderBold = ({ children, leaf }) => (React.createElement("strong", { className: leaf.boldVariant
5
+ ? `${BOLD_TYPE}.${leaf.boldVariant}` : `${BOLD_TYPE}` }, children));
4
6
 
5
7
  export { defaultRenderBold };
package/bold/index.cjs.js CHANGED
@@ -17,11 +17,12 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
17
17
  */
18
18
  const BOLD_HOTKEY = 'mod+b';
19
19
 
20
- const defaultRenderBold = (variant) => (({ children }) => (React__default.createElement("strong", { className: variant !== null && variant !== void 0 ? variant : '' }, children)));
20
+ const defaultRenderBold = ({ children, leaf }) => (React__default.createElement("strong", { className: leaf.boldVariant
21
+ ? `${bold.BOLD_TYPE}.${leaf.boldVariant}` : `${bold.BOLD_TYPE}` }, children));
21
22
 
22
23
  const createReactBold = (variant) => toggleMark.createReactToggleMarkCreator(bold.createBold(variant), {
23
24
  hotkey: BOLD_HOTKEY,
24
- render: defaultRenderBold(variant),
25
+ render: defaultRenderBold,
25
26
  })();
26
27
 
27
28
  exports.BOLD_HOTKEY = BOLD_HOTKEY;
@@ -4,7 +4,7 @@ import { defaultRenderBold } from '@quadrats/react/bold';
4
4
 
5
5
  const createJsxSerializeBold = createJsxSerializeToggleMarkCreator({
6
6
  type: BOLD_TYPE,
7
- render: defaultRenderBold(),
7
+ render: defaultRenderBold,
8
8
  });
9
9
 
10
10
  export { createJsxSerializeBold };
@@ -8,7 +8,7 @@ var jsxSerializer = require('@quadrats/react/toggle-mark/jsx-serializer');
8
8
 
9
9
  const createJsxSerializeBold = jsxSerializer.createJsxSerializeToggleMarkCreator({
10
10
  type: bold$1.BOLD_TYPE,
11
- render: bold.defaultRenderBold(),
11
+ render: bold.defaultRenderBold,
12
12
  });
13
13
 
14
14
  exports.defaultRenderBold = bold.defaultRenderBold;
@@ -0,0 +1,5 @@
1
+ import { Text } from 'slate';
2
+ export interface BoldLeaf extends Text {
3
+ bold: boolean;
4
+ boldVariant?: string;
5
+ }
@@ -6,17 +6,6 @@ function createReactFootnote(options = {}) {
6
6
  const core = createFootnote(options);
7
7
  const { type } = core;
8
8
  return Object.assign(Object.assign({}, core), { createRenderElement: ({ render = defaultRenderFootnoteElement } = {}) => createRenderElement({ type, render }), with(editor) {
9
- const { insertData, insertText } = editor;
10
- editor.insertData = (data) => {
11
- const text = data.getData('text/plain');
12
- if (text) {
13
- if (core.isSelectionInFootnote(editor)) {
14
- insertText(text);
15
- return;
16
- }
17
- }
18
- insertData(data);
19
- };
20
9
  return core.with(editor);
21
10
  } });
22
11
  }
@@ -8,7 +8,7 @@ const defaultRenderFootnoteElement = ({ attributes, children, element, placement
8
8
  const { footnote, index } = element;
9
9
  return (React.createElement(React.Fragment, null,
10
10
  React.createElement(Tooltip, { placement: placement, popup: footnote },
11
- React.createElement("a", Object.assign({}, attributes, { href: "./#", target: "_blank" }), children)),
11
+ React.createElement("span", Object.assign({ style: { textDecoration: 'underline' } }, attributes), children)),
12
12
  React.createElement("sup", Object.assign({}, attributes, { style: { color: 'var(--qdr-sup)', userSelect: 'none' }, contentEditable: false }), `[${index !== null && index !== void 0 ? index : 1}]`)));
13
13
  };
14
14
 
@@ -6,6 +6,7 @@ var React = require('react');
6
6
  var components = require('@quadrats/react/components');
7
7
  var react = require('@quadrats/react');
8
8
  var footnote = require('@quadrats/common/footnote');
9
+ var core = require('@quadrats/core');
9
10
 
10
11
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e["default"] : e; }
11
12
 
@@ -18,7 +19,7 @@ const defaultRenderFootnoteElement = ({ attributes, children, element, placement
18
19
  const { footnote, index } = element;
19
20
  return (React__default.createElement(React__default.Fragment, null,
20
21
  React__default.createElement(components.Tooltip, { placement: placement, popup: footnote },
21
- React__default.createElement("a", Object.assign({}, attributes, { href: "./#", target: "_blank" }), children)),
22
+ React__default.createElement("span", Object.assign({ style: { textDecoration: 'underline' } }, attributes), children)),
22
23
  React__default.createElement("sup", Object.assign({}, attributes, { style: { color: 'var(--qdr-sup)', userSelect: 'none' }, contentEditable: false }), `[${index !== null && index !== void 0 ? index : 1}]`)));
23
24
  };
24
25
 
@@ -26,20 +27,50 @@ function createReactFootnote(options = {}) {
26
27
  const core = footnote.createFootnote(options);
27
28
  const { type } = core;
28
29
  return Object.assign(Object.assign({}, core), { createRenderElement: ({ render = defaultRenderFootnoteElement } = {}) => react.createRenderElement({ type, render }), with(editor) {
29
- const { insertData, insertText } = editor;
30
- editor.insertData = (data) => {
31
- const text = data.getData('text/plain');
32
- if (text) {
33
- if (core.isSelectionInFootnote(editor)) {
34
- insertText(text);
35
- return;
36
- }
37
- }
38
- insertData(data);
39
- };
40
30
  return core.with(editor);
41
31
  } });
42
32
  }
43
33
 
34
+ function useFootnotes(editor) {
35
+ const footnoteNodes = Array.from(core.getNodes(editor, {
36
+ at: [],
37
+ match: (node) => node.type === footnote.FOOTNOTE_TYPE,
38
+ }));
39
+ const footnotes = footnoteNodes.map((node) => {
40
+ var _a;
41
+ const nodeData = node === null || node === void 0 ? void 0 : node[0];
42
+ return {
43
+ wrapperText: (_a = (nodeData === null || nodeData === void 0 ? void 0 : nodeData.children)) === null || _a === void 0 ? void 0 : _a.map((childNode) => childNode.text).join(''),
44
+ footnote: nodeData === null || nodeData === void 0 ? void 0 : nodeData.footnote,
45
+ index: nodeData === null || nodeData === void 0 ? void 0 : nodeData.index,
46
+ };
47
+ });
48
+ return footnotes;
49
+ }
50
+
51
+ function deepSearchFootnoteFromNodes(nodes) {
52
+ const result = nodes.flatMap((element) => {
53
+ var _a;
54
+ const curNode = core.Node.isNode(element)
55
+ && element.type === footnote.FOOTNOTE_TYPE ? element : null;
56
+ const child = core.Node.isNodeList(element === null || element === void 0 ? void 0 : element.children) ? deepSearchFootnoteFromNodes(element === null || element === void 0 ? void 0 : element.children) : null;
57
+ return (_a = curNode !== null && curNode !== void 0 ? curNode : child) !== null && _a !== void 0 ? _a : [];
58
+ });
59
+ return result;
60
+ }
61
+ function useFootnotesFromNodes(nodes) {
62
+ const filter = deepSearchFootnoteFromNodes(nodes);
63
+ return filter.map((element) => {
64
+ var _a;
65
+ return ({
66
+ wrapperText: (_a = (element === null || element === void 0 ? void 0 : element.children)) === null || _a === void 0 ? void 0 : _a.map((childNode) => childNode.text).join(''),
67
+ footnote: element.footnote,
68
+ index: element.index,
69
+ });
70
+ });
71
+ }
72
+
44
73
  exports.createReactFootnote = createReactFootnote;
45
74
  exports.defaultRenderFootnoteElement = defaultRenderFootnoteElement;
75
+ exports.useFootnotes = useFootnotes;
76
+ exports.useFootnotesFromNodes = useFootnotesFromNodes;
@@ -1,3 +1,5 @@
1
1
  export * from './typings';
2
2
  export { defaultRenderFootnoteElement } from './defaultRenderFootnoteElement';
3
3
  export { CreateReactFootnoteOptions, createReactFootnote } from './createReactFootnote';
4
+ export { default as useFootnotes } from './useFootnotes';
5
+ export { default as useFootnotesFromNodes } from './useFootnotesFromNodes';
package/footnote/index.js CHANGED
@@ -1,2 +1,4 @@
1
1
  export { defaultRenderFootnoteElement } from './defaultRenderFootnoteElement.js';
2
2
  export { createReactFootnote } from './createReactFootnote.js';
3
+ export { useFootnotes } from './useFootnotes.js';
4
+ export { useFootnotesFromNodes } from './useFootnotesFromNodes.js';
@@ -3,7 +3,7 @@ import React from 'react';
3
3
  const defaultRenderFootnoteElement = ({ children, element }) => {
4
4
  var _a;
5
5
  return (React.createElement(React.Fragment, null,
6
- React.createElement("a", { href: "./#" }, children),
6
+ React.createElement("span", { style: { textDecoration: 'underline' } }, children),
7
7
  React.createElement("sup", { style: { color: 'var(--qdr-sup)' } }, `[${(_a = element.index) !== null && _a !== void 0 ? _a : 1}]`)));
8
8
  };
9
9
 
@@ -13,7 +13,7 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
13
13
  const defaultRenderFootnoteElement = ({ children, element }) => {
14
14
  var _a;
15
15
  return (React__default.createElement(React__default.Fragment, null,
16
- React__default.createElement("a", { href: "./#" }, children),
16
+ React__default.createElement("span", { style: { textDecoration: 'underline' } }, children),
17
17
  React__default.createElement("sup", { style: { color: 'var(--qdr-sup)' } }, `[${(_a = element.index) !== null && _a !== void 0 ? _a : 1}]`)));
18
18
  };
19
19
 
@@ -0,0 +1,4 @@
1
+ import { Editor } from '@quadrats/core';
2
+ import { FootnoteData } from '@quadrats/common/footnote';
3
+ export declare function useFootnotes(editor: Editor): FootnoteData[];
4
+ export default useFootnotes;
@@ -0,0 +1,21 @@
1
+ import { getNodes } from '@quadrats/core';
2
+ import { FOOTNOTE_TYPE } from '@quadrats/common/footnote';
3
+
4
+ function useFootnotes(editor) {
5
+ const footnoteNodes = Array.from(getNodes(editor, {
6
+ at: [],
7
+ match: (node) => node.type === FOOTNOTE_TYPE,
8
+ }));
9
+ const footnotes = footnoteNodes.map((node) => {
10
+ var _a;
11
+ const nodeData = node === null || node === void 0 ? void 0 : node[0];
12
+ return {
13
+ wrapperText: (_a = (nodeData === null || nodeData === void 0 ? void 0 : nodeData.children)) === null || _a === void 0 ? void 0 : _a.map((childNode) => childNode.text).join(''),
14
+ footnote: nodeData === null || nodeData === void 0 ? void 0 : nodeData.footnote,
15
+ index: nodeData === null || nodeData === void 0 ? void 0 : nodeData.index,
16
+ };
17
+ });
18
+ return footnotes;
19
+ }
20
+
21
+ export { useFootnotes as default, useFootnotes };
@@ -0,0 +1,4 @@
1
+ import { Node } from '@quadrats/core';
2
+ import { FootnoteData } from '@quadrats/common/footnote';
3
+ export declare function useFootnotesFromNodes(nodes: Node[]): FootnoteData[];
4
+ export default useFootnotesFromNodes;
@@ -0,0 +1,26 @@
1
+ import { Node } from '@quadrats/core';
2
+ import { FOOTNOTE_TYPE } from '@quadrats/common/footnote';
3
+
4
+ function deepSearchFootnoteFromNodes(nodes) {
5
+ const result = nodes.flatMap((element) => {
6
+ var _a;
7
+ const curNode = Node.isNode(element)
8
+ && element.type === FOOTNOTE_TYPE ? element : null;
9
+ const child = Node.isNodeList(element === null || element === void 0 ? void 0 : element.children) ? deepSearchFootnoteFromNodes(element === null || element === void 0 ? void 0 : element.children) : null;
10
+ return (_a = curNode !== null && curNode !== void 0 ? curNode : child) !== null && _a !== void 0 ? _a : [];
11
+ });
12
+ return result;
13
+ }
14
+ function useFootnotesFromNodes(nodes) {
15
+ const filter = deepSearchFootnoteFromNodes(nodes);
16
+ return filter.map((element) => {
17
+ var _a;
18
+ return ({
19
+ wrapperText: (_a = (element === null || element === void 0 ? void 0 : element.children)) === null || _a === void 0 ? void 0 : _a.map((childNode) => childNode.text).join(''),
20
+ footnote: element.footnote,
21
+ index: element.index,
22
+ });
23
+ });
24
+ }
25
+
26
+ export { useFootnotesFromNodes as default, useFootnotesFromNodes };
@@ -5,7 +5,7 @@ import { HIGHLIGHT_HOTKEY } from './constants.js';
5
5
 
6
6
  const createReactHighlight = (variant) => createReactToggleMarkCreator(createHighlight(variant), {
7
7
  hotkey: HIGHLIGHT_HOTKEY,
8
- render: defaultRenderHighlight(variant),
8
+ render: defaultRenderHighlight,
9
9
  })();
10
10
 
11
11
  export { createReactHighlight };
@@ -1,3 +1,3 @@
1
1
  /// <reference types="react" />
2
2
  import { RenderMarkPropsBase } from '@quadrats/react/_internal';
3
- export declare const defaultRenderHighlight: (variant?: string | undefined) => ({ children }: RenderMarkPropsBase<boolean>) => JSX.Element;
3
+ export declare const defaultRenderHighlight: ({ children, leaf }: RenderMarkPropsBase<boolean>) => JSX.Element;
@@ -1,5 +1,7 @@
1
1
  import React from 'react';
2
+ import { HIGHLIGHT_TYPE } from '@quadrats/common/highlight';
2
3
 
3
- const defaultRenderHighlight = (variant) => (({ children }) => (React.createElement("mark", { className: variant !== null && variant !== void 0 ? variant : '' }, children)));
4
+ const defaultRenderHighlight = ({ children, leaf }) => (React.createElement("mark", { className: leaf.highlightVariant
5
+ ? `${HIGHLIGHT_TYPE}.${leaf.highlightVariant}` : `${HIGHLIGHT_TYPE}` }, children));
4
6
 
5
7
  export { defaultRenderHighlight };
@@ -17,11 +17,12 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
17
17
  */
18
18
  const HIGHLIGHT_HOTKEY = 'mod+h';
19
19
 
20
- const defaultRenderHighlight = (variant) => (({ children }) => (React__default.createElement("mark", { className: variant !== null && variant !== void 0 ? variant : '' }, children)));
20
+ const defaultRenderHighlight = ({ children, leaf }) => (React__default.createElement("mark", { className: leaf.highlightVariant
21
+ ? `${highlight.HIGHLIGHT_TYPE}.${leaf.highlightVariant}` : `${highlight.HIGHLIGHT_TYPE}` }, children));
21
22
 
22
23
  const createReactHighlight = (variant) => toggleMark.createReactToggleMarkCreator(highlight.createHighlight(variant), {
23
24
  hotkey: HIGHLIGHT_HOTKEY,
24
- render: defaultRenderHighlight(variant),
25
+ render: defaultRenderHighlight,
25
26
  })();
26
27
 
27
28
  exports.HIGHLIGHT_HOTKEY = HIGHLIGHT_HOTKEY;
@@ -4,7 +4,7 @@ import { defaultRenderHighlight } from '@quadrats/react/highlight';
4
4
 
5
5
  const createJsxSerializeHighlight = createJsxSerializeToggleMarkCreator({
6
6
  type: HIGHLIGHT_TYPE,
7
- render: defaultRenderHighlight(),
7
+ render: defaultRenderHighlight,
8
8
  });
9
9
 
10
10
  export { createJsxSerializeHighlight };
@@ -8,7 +8,7 @@ var jsxSerializer = require('@quadrats/react/toggle-mark/jsx-serializer');
8
8
 
9
9
  const createJsxSerializeHighlight = jsxSerializer.createJsxSerializeToggleMarkCreator({
10
10
  type: highlight$1.HIGHLIGHT_TYPE,
11
- render: highlight.defaultRenderHighlight(),
11
+ render: highlight.defaultRenderHighlight,
12
12
  });
13
13
 
14
14
  exports.defaultRenderHighlight = highlight.defaultRenderHighlight;
@@ -0,0 +1,5 @@
1
+ import { Text } from 'slate';
2
+ export interface HighlightLeaf extends Text {
3
+ highlight: boolean;
4
+ highlightVariant?: string;
5
+ }
@@ -2,10 +2,11 @@ import { useRef, useLayoutEffect } from 'react';
2
2
  import { useQuadrats, useLocale } from '@quadrats/react';
3
3
 
4
4
  function useInputBlock({ confirm, element, remove }) {
5
+ var _a, _b;
5
6
  const inputRef = useRef(null);
6
7
  const editor = useQuadrats();
7
8
  const locale = useLocale();
8
- const placeholder = element.getPlaceholder(locale);
9
+ const placeholder = (_b = (_a = element.getPlaceholder) === null || _a === void 0 ? void 0 : _a.call(element, locale)) !== null && _b !== void 0 ? _b : '';
9
10
  /**
10
11
  * Since keying `Enter` or `Escape` will also cause input blurred
11
12
  * Add a `removeable` flag to avoid.
@@ -11,10 +11,11 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
11
11
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
12
12
 
13
13
  function useInputBlock({ confirm, element, remove }) {
14
+ var _a, _b;
14
15
  const inputRef = React.useRef(null);
15
16
  const editor = react.useQuadrats();
16
17
  const locale = react.useLocale();
17
- const placeholder = element.getPlaceholder(locale);
18
+ const placeholder = (_b = (_a = element.getPlaceholder) === null || _a === void 0 ? void 0 : _a.call(element, locale)) !== null && _b !== void 0 ? _b : '';
18
19
  /**
19
20
  * Since keying `Enter` or `Escape` will also cause input blurred
20
21
  * Add a `removeable` flag to avoid.
@@ -5,7 +5,7 @@ import { ITALIC_HOTKEY } from './constants.js';
5
5
 
6
6
  const createReactItalic = (variant) => createReactToggleMarkCreator(createItalic(variant), {
7
7
  hotkey: ITALIC_HOTKEY,
8
- render: defaultRenderItalic(variant),
8
+ render: defaultRenderItalic,
9
9
  })();
10
10
 
11
11
  export { createReactItalic };
@@ -1,3 +1,3 @@
1
1
  /// <reference types="react" />
2
2
  import { RenderMarkPropsBase } from '@quadrats/react/_internal';
3
- export declare const defaultRenderItalic: (variant?: string | undefined) => ({ children }: RenderMarkPropsBase<boolean>) => JSX.Element;
3
+ export declare const defaultRenderItalic: ({ children, leaf }: RenderMarkPropsBase<boolean>) => JSX.Element;
@@ -1,5 +1,7 @@
1
1
  import React from 'react';
2
+ import { ITALIC_TYPE } from '@quadrats/common/italic';
2
3
 
3
- const defaultRenderItalic = (variant) => (({ children }) => (React.createElement("i", { className: variant !== null && variant !== void 0 ? variant : '' }, children)));
4
+ const defaultRenderItalic = ({ children, leaf }) => (React.createElement("i", { className: leaf.italicVariant
5
+ ? `${ITALIC_TYPE}.${leaf.italicVariant}` : `${ITALIC_TYPE}` }, children));
4
6
 
5
7
  export { defaultRenderItalic };
@@ -17,11 +17,12 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
17
17
  */
18
18
  const ITALIC_HOTKEY = 'mod+i';
19
19
 
20
- const defaultRenderItalic = (variant) => (({ children }) => (React__default.createElement("i", { className: variant !== null && variant !== void 0 ? variant : '' }, children)));
20
+ const defaultRenderItalic = ({ children, leaf }) => (React__default.createElement("i", { className: leaf.italicVariant
21
+ ? `${italic.ITALIC_TYPE}.${leaf.italicVariant}` : `${italic.ITALIC_TYPE}` }, children));
21
22
 
22
23
  const createReactItalic = (variant) => toggleMark.createReactToggleMarkCreator(italic.createItalic(variant), {
23
24
  hotkey: ITALIC_HOTKEY,
24
- render: defaultRenderItalic(variant),
25
+ render: defaultRenderItalic,
25
26
  })();
26
27
 
27
28
  exports.ITALIC_HOTKEY = ITALIC_HOTKEY;
@@ -4,7 +4,7 @@ import { defaultRenderItalic } from '@quadrats/react/italic';
4
4
 
5
5
  const createJsxSerializeItalic = createJsxSerializeToggleMarkCreator({
6
6
  type: ITALIC_TYPE,
7
- render: defaultRenderItalic(),
7
+ render: defaultRenderItalic,
8
8
  });
9
9
 
10
10
  export { createJsxSerializeItalic };
@@ -8,7 +8,7 @@ var jsxSerializer = require('@quadrats/react/toggle-mark/jsx-serializer');
8
8
 
9
9
  const createJsxSerializeItalic = jsxSerializer.createJsxSerializeToggleMarkCreator({
10
10
  type: italic$1.ITALIC_TYPE,
11
- render: italic.defaultRenderItalic(),
11
+ render: italic.defaultRenderItalic,
12
12
  });
13
13
 
14
14
  exports.defaultRenderItalic = italic.defaultRenderItalic;
@@ -0,0 +1,5 @@
1
+ import { Text } from 'slate';
2
+ export interface ItalicLeaf extends Text {
3
+ italic: boolean;
4
+ italicVariant?: string;
5
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quadrats/react",
3
- "version": "0.4.4",
3
+ "version": "0.4.5",
4
4
  "description": "",
5
5
  "author": "Rytass",
6
6
  "homepage": "https://github.com/Quadrats/quadrats#readme",
@@ -20,8 +20,8 @@
20
20
  "url": "https://github.com/Quadrats/quadrats/issues"
21
21
  },
22
22
  "dependencies": {
23
- "@quadrats/common": "^0.4.4",
24
- "@quadrats/core": "^0.4.0",
23
+ "@quadrats/common": "^0.4.5",
24
+ "@quadrats/core": "^0.4.5",
25
25
  "@quadrats/icons": "^0.4.0",
26
26
  "@quadrats/locales": "^0.4.0",
27
27
  "@quadrats/theme": "^0.4.0",
@@ -5,7 +5,7 @@ import { STRIKETHROUGH_HOTKEY } from './constants.js';
5
5
 
6
6
  const createReactStrikethrough = (variant) => createReactToggleMarkCreator(createStrikethrough(variant), {
7
7
  hotkey: STRIKETHROUGH_HOTKEY,
8
- render: defaultRenderStrikethrough(variant),
8
+ render: defaultRenderStrikethrough,
9
9
  })();
10
10
 
11
11
  export { createReactStrikethrough };
@@ -1,3 +1,3 @@
1
1
  /// <reference types="react" />
2
2
  import { RenderMarkPropsBase } from '@quadrats/react/_internal';
3
- export declare const defaultRenderStrikethrough: (variant?: string | undefined) => ({ children }: RenderMarkPropsBase<boolean>) => JSX.Element;
3
+ export declare const defaultRenderStrikethrough: ({ children, leaf }: RenderMarkPropsBase<boolean>) => JSX.Element;
@@ -1,5 +1,7 @@
1
1
  import React from 'react';
2
+ import { STRIKETHROUGH_TYPE } from '@quadrats/common/strikethrough';
2
3
 
3
- const defaultRenderStrikethrough = (variant) => (({ children }) => (React.createElement("del", { className: variant !== null && variant !== void 0 ? variant : '' }, children)));
4
+ const defaultRenderStrikethrough = ({ children, leaf }) => (React.createElement("del", { className: leaf.strikethroughVariant
5
+ ? `${STRIKETHROUGH_TYPE}.${leaf.strikethroughVariant}` : `${STRIKETHROUGH_TYPE}` }, children));
4
6
 
5
7
  export { defaultRenderStrikethrough };
@@ -17,11 +17,12 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
17
17
  */
18
18
  const STRIKETHROUGH_HOTKEY = 'mod+opt+s';
19
19
 
20
- const defaultRenderStrikethrough = (variant) => (({ children }) => (React__default.createElement("del", { className: variant !== null && variant !== void 0 ? variant : '' }, children)));
20
+ const defaultRenderStrikethrough = ({ children, leaf }) => (React__default.createElement("del", { className: leaf.strikethroughVariant
21
+ ? `${strikethrough.STRIKETHROUGH_TYPE}.${leaf.strikethroughVariant}` : `${strikethrough.STRIKETHROUGH_TYPE}` }, children));
21
22
 
22
23
  const createReactStrikethrough = (variant) => toggleMark.createReactToggleMarkCreator(strikethrough.createStrikethrough(variant), {
23
24
  hotkey: STRIKETHROUGH_HOTKEY,
24
- render: defaultRenderStrikethrough(variant),
25
+ render: defaultRenderStrikethrough,
25
26
  })();
26
27
 
27
28
  exports.STRIKETHROUGH_HOTKEY = STRIKETHROUGH_HOTKEY;
@@ -4,7 +4,7 @@ import { defaultRenderStrikethrough } from '@quadrats/react/strikethrough';
4
4
 
5
5
  const createJsxSerializeStrikethrough = createJsxSerializeToggleMarkCreator({
6
6
  type: STRIKETHROUGH_TYPE,
7
- render: defaultRenderStrikethrough(),
7
+ render: defaultRenderStrikethrough,
8
8
  });
9
9
 
10
10
  export { createJsxSerializeStrikethrough };
@@ -8,7 +8,7 @@ var jsxSerializer = require('@quadrats/react/toggle-mark/jsx-serializer');
8
8
 
9
9
  const createJsxSerializeStrikethrough = jsxSerializer.createJsxSerializeToggleMarkCreator({
10
10
  type: strikethrough$1.STRIKETHROUGH_TYPE,
11
- render: strikethrough.defaultRenderStrikethrough(),
11
+ render: strikethrough.defaultRenderStrikethrough,
12
12
  });
13
13
 
14
14
  exports.defaultRenderStrikethrough = strikethrough.defaultRenderStrikethrough;
@@ -0,0 +1,5 @@
1
+ import { Text } from 'slate';
2
+ export interface StrikethroughLeaf extends Text {
3
+ strikethrough: boolean;
4
+ strikethroughVariant?: string;
5
+ }
@@ -5,7 +5,7 @@ import { UNDERLINE_HOTKEY } from './constants.js';
5
5
 
6
6
  const createReactUnderline = (variant) => createReactToggleMarkCreator(createUnderline(variant), {
7
7
  hotkey: UNDERLINE_HOTKEY,
8
- render: defaultRenderUnderline(variant),
8
+ render: defaultRenderUnderline,
9
9
  })();
10
10
 
11
11
  export { createReactUnderline };
@@ -1,3 +1,3 @@
1
1
  /// <reference types="react" />
2
2
  import { RenderMarkPropsBase } from '@quadrats/react/_internal';
3
- export declare const defaultRenderUnderline: (variant?: string | undefined) => ({ children }: RenderMarkPropsBase<boolean>) => JSX.Element;
3
+ export declare const defaultRenderUnderline: ({ children, leaf }: RenderMarkPropsBase<boolean>) => JSX.Element;
@@ -1,5 +1,7 @@
1
1
  import React from 'react';
2
+ import { UNDERLINE_TYPE } from '@quadrats/common/underline';
2
3
 
3
- const defaultRenderUnderline = (variant) => (({ children }) => (React.createElement("u", { className: variant !== null && variant !== void 0 ? variant : '' }, children)));
4
+ const defaultRenderUnderline = ({ children, leaf }) => (React.createElement("u", { className: leaf.underlineVariant
5
+ ? `${UNDERLINE_TYPE}.${leaf.underlineVariant}` : `${UNDERLINE_TYPE}` }, children));
4
6
 
5
7
  export { defaultRenderUnderline };
@@ -17,11 +17,12 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
17
17
  */
18
18
  const UNDERLINE_HOTKEY = 'mod+u';
19
19
 
20
- const defaultRenderUnderline = (variant) => (({ children }) => (React__default.createElement("u", { className: variant !== null && variant !== void 0 ? variant : '' }, children)));
20
+ const defaultRenderUnderline = ({ children, leaf }) => (React__default.createElement("u", { className: leaf.underlineVariant
21
+ ? `${underline.UNDERLINE_TYPE}.${leaf.underlineVariant}` : `${underline.UNDERLINE_TYPE}` }, children));
21
22
 
22
23
  const createReactUnderline = (variant) => toggleMark.createReactToggleMarkCreator(underline.createUnderline(variant), {
23
24
  hotkey: UNDERLINE_HOTKEY,
24
- render: defaultRenderUnderline(variant),
25
+ render: defaultRenderUnderline,
25
26
  })();
26
27
 
27
28
  exports.UNDERLINE_HOTKEY = UNDERLINE_HOTKEY;
@@ -4,7 +4,7 @@ import { defaultRenderUnderline } from '@quadrats/react/underline';
4
4
 
5
5
  const createJsxSerializeUnderline = createJsxSerializeToggleMarkCreator({
6
6
  type: UNDERLINE_TYPE,
7
- render: defaultRenderUnderline(),
7
+ render: defaultRenderUnderline,
8
8
  });
9
9
 
10
10
  export { createJsxSerializeUnderline };
@@ -8,7 +8,7 @@ var jsxSerializer = require('@quadrats/react/toggle-mark/jsx-serializer');
8
8
 
9
9
  const createJsxSerializeUnderline = jsxSerializer.createJsxSerializeToggleMarkCreator({
10
10
  type: underline$1.UNDERLINE_TYPE,
11
- render: underline.defaultRenderUnderline(),
11
+ render: underline.defaultRenderUnderline,
12
12
  });
13
13
 
14
14
  exports.defaultRenderUnderline = underline.defaultRenderUnderline;
@@ -0,0 +1,5 @@
1
+ import { Text } from 'slate';
2
+ export interface UnderlineLeaf extends Text {
3
+ underline: boolean;
4
+ underlineVariant?: string;
5
+ }