@webiny/lexical-editor 6.0.0-alpha.5 → 6.0.0-rc.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.
- package/README.md +6 -12
- package/commands/index.d.ts +5 -5
- package/commands/index.js +5 -5
- package/commands/index.js.map +1 -1
- package/components/Editor/EnsureHeadingTagPlugin.js +1 -1
- package/components/Editor/EnsureHeadingTagPlugin.js.map +1 -1
- package/components/Editor/RichTextEditor.d.ts +11 -6
- package/components/Editor/RichTextEditor.js +22 -16
- package/components/Editor/RichTextEditor.js.map +1 -1
- package/components/Editor/normalizeInputValue.d.ts +1 -1
- package/components/Editor/normalizeInputValue.js.map +1 -1
- package/components/LexicalEditorConfig/LexicalEditorConfig.d.ts +14 -16
- package/components/LexicalEditorConfig/LexicalEditorConfig.js +20 -58
- package/components/LexicalEditorConfig/LexicalEditorConfig.js.map +1 -1
- package/components/LexicalHtmlRenderer.d.ts +3 -6
- package/components/LexicalHtmlRenderer.js +12 -17
- package/components/LexicalHtmlRenderer.js.map +1 -1
- package/components/Toolbar/StaticToolbar.css +416 -0
- package/components/Toolbar/StaticToolbar.d.ts +1 -1
- package/components/Toolbar/StaticToolbar.js +2 -2
- package/components/Toolbar/StaticToolbar.js.map +1 -1
- package/components/ToolbarActions/BoldAction.js +2 -2
- package/components/ToolbarActions/BoldAction.js.map +1 -1
- package/components/ToolbarActions/BulletListAction.js +5 -6
- package/components/ToolbarActions/BulletListAction.js.map +1 -1
- package/components/ToolbarActions/CodeHighlightAction.js +2 -2
- package/components/ToolbarActions/CodeHighlightAction.js.map +1 -1
- package/components/ToolbarActions/FontColorAction.js +4 -4
- package/components/ToolbarActions/FontColorAction.js.map +1 -1
- package/components/ToolbarActions/ImageAction.js +3 -3
- package/components/ToolbarActions/ImageAction.js.map +1 -1
- package/components/ToolbarActions/ItalicAction.js +2 -2
- package/components/ToolbarActions/ItalicAction.js.map +1 -1
- package/components/ToolbarActions/LinkAction.js +3 -3
- package/components/ToolbarActions/LinkAction.js.map +1 -1
- package/components/ToolbarActions/NumberedListAction.js +7 -11
- package/components/ToolbarActions/NumberedListAction.js.map +1 -1
- package/components/ToolbarActions/QuoteAction.js +6 -6
- package/components/ToolbarActions/QuoteAction.js.map +1 -1
- package/components/ToolbarActions/TextAlignmentAction.js +4 -4
- package/components/ToolbarActions/TextAlignmentAction.js.map +1 -1
- package/components/ToolbarActions/TypographyAction.js +14 -11
- package/components/ToolbarActions/TypographyAction.js.map +1 -1
- package/components/ToolbarActions/UnderlineAction.js +1 -1
- package/components/ToolbarActions/UnderlineAction.js.map +1 -1
- package/context/RichTextEditorContext.d.ts +5 -6
- package/context/RichTextEditorContext.js +17 -4
- package/context/RichTextEditorContext.js.map +1 -1
- package/context/TypographyActionContext.d.ts +1 -1
- package/context/TypographyActionContext.js.map +1 -1
- package/exports/admin/lexical.d.ts +15 -0
- package/exports/admin/lexical.js +23 -0
- package/exports/admin/lexical.js.map +1 -0
- package/hooks/index.d.ts +7 -8
- package/hooks/index.js +7 -8
- package/hooks/index.js.map +1 -1
- package/hooks/useCurrentElement.js +2 -3
- package/hooks/useCurrentElement.js.map +1 -1
- package/hooks/useCurrentSelection.js +4 -4
- package/hooks/useCurrentSelection.js.map +1 -1
- package/hooks/useFontColorPicker.d.ts +1 -1
- package/hooks/useFontColorPicker.js +1 -1
- package/hooks/useFontColorPicker.js.map +1 -1
- package/hooks/useRichTextEditor.d.ts +1 -1
- package/hooks/useRichTextEditor.js +1 -1
- package/hooks/useRichTextEditor.js.map +1 -1
- package/hooks/useTextAlignmentAction.d.ts +1 -1
- package/hooks/useTextAlignmentAction.js +1 -1
- package/hooks/useTextAlignmentAction.js.map +1 -1
- package/hooks/useTypographyAction.d.ts +1 -1
- package/hooks/useTypographyAction.js +1 -1
- package/hooks/useTypographyAction.js.map +1 -1
- package/index.d.ts +33 -37
- package/index.js +33 -37
- package/index.js.map +1 -1
- package/package.json +18 -22
- package/plugins/BlurEventPlugin/BlurEventPlugin.d.ts +1 -1
- package/plugins/BlurEventPlugin/BlurEventPlugin.js +1 -1
- package/plugins/BlurEventPlugin/BlurEventPlugin.js.map +1 -1
- package/plugins/CodeHighlightPlugin/CodeHighlightPlugin.js +1 -1
- package/plugins/CodeHighlightPlugin/CodeHighlightPlugin.js.map +1 -1
- package/plugins/CodeHighlightPlugin/index.d.ts +1 -1
- package/plugins/CodeHighlightPlugin/index.js +1 -1
- package/plugins/CodeHighlightPlugin/index.js.map +1 -1
- package/plugins/FloatingLinkEditorPlugin/FloatingLinkEditor.d.ts +4 -10
- package/plugins/FloatingLinkEditorPlugin/FloatingLinkEditor.js +15 -145
- package/plugins/FloatingLinkEditorPlugin/FloatingLinkEditor.js.map +1 -1
- package/plugins/FloatingLinkEditorPlugin/FloatingLinkEditorController.d.ts +2 -3
- package/plugins/FloatingLinkEditorPlugin/FloatingLinkEditorController.js +10 -11
- package/plugins/FloatingLinkEditorPlugin/FloatingLinkEditorController.js.map +1 -1
- package/plugins/FloatingLinkEditorPlugin/FloatingLinkEditorPlugin.css +1 -136
- package/plugins/FloatingLinkEditorPlugin/FloatingLinkEditorPlugin.d.ts +5 -6
- package/plugins/FloatingLinkEditorPlugin/FloatingLinkEditorPlugin.js +3 -7
- package/plugins/FloatingLinkEditorPlugin/FloatingLinkEditorPlugin.js.map +1 -1
- package/plugins/FloatingLinkEditorPlugin/index.d.ts +1 -1
- package/plugins/FloatingLinkEditorPlugin/index.js +1 -1
- package/plugins/FloatingLinkEditorPlugin/index.js.map +1 -1
- package/plugins/FloatingLinkEditorPlugin/types.d.ts +10 -0
- package/plugins/FloatingLinkEditorPlugin/types.js +3 -0
- package/plugins/FloatingLinkEditorPlugin/types.js.map +1 -0
- package/plugins/FloatingLinkEditorPlugin/useFloatingLinkEditor.d.ts +8 -0
- package/plugins/FloatingLinkEditorPlugin/useFloatingLinkEditor.js +128 -0
- package/plugins/FloatingLinkEditorPlugin/useFloatingLinkEditor.js.map +1 -0
- package/plugins/FontColorPlugin/FontColorPlugin.js +2 -2
- package/plugins/FontColorPlugin/FontColorPlugin.js.map +1 -1
- package/plugins/FontColorPlugin/applyColorToSelection.js +1 -1
- package/plugins/FontColorPlugin/applyColorToSelection.js.map +1 -1
- package/plugins/ImagesPlugin/ImagesPlugin.d.ts +1 -2
- package/plugins/ImagesPlugin/ImagesPlugin.js +5 -8
- package/plugins/ImagesPlugin/ImagesPlugin.js.map +1 -1
- package/plugins/LinkPlugin/LinkPlugin.js +2 -3
- package/plugins/LinkPlugin/LinkPlugin.js.map +1 -1
- package/plugins/ListPLugin/ListPlugin.js +45 -3
- package/plugins/ListPLugin/ListPlugin.js.map +1 -1
- package/plugins/QuoteNodePlugin/QuoteNodePlugin.js +12 -4
- package/plugins/QuoteNodePlugin/QuoteNodePlugin.js.map +1 -1
- package/plugins/StateHandlingPlugin.d.ts +1 -1
- package/plugins/StateHandlingPlugin.js +6 -6
- package/plugins/StateHandlingPlugin.js.map +1 -1
- package/plugins/TypographyPlugin/TypographyPlugin.js +2 -2
- package/plugins/TypographyPlugin/TypographyPlugin.js.map +1 -1
- package/types.d.ts +3 -3
- package/types.js +1 -1
- package/types.js.map +1 -1
- package/ui/ContentEditable.d.ts +0 -1
- package/ui/Divider.d.ts +0 -1
- package/ui/DropDown.js +4 -3
- package/ui/DropDown.js.map +1 -1
- package/ui/ImageResizer.d.ts +0 -1
- package/ui/ImageResizer.js.map +1 -1
- package/ui/LinkPreview.d.ts +0 -1
- package/ui/TextInput.d.ts +0 -1
- package/utils/files.d.ts +6 -6
- package/utils/files.js +3 -13
- package/utils/files.js.map +1 -1
- package/utils/insertImage.d.ts +1 -1
- package/utils/insertImage.js.map +1 -1
- package/utils/isValidLexicalData.d.ts +2 -2
- package/utils/isValidLexicalData.js.map +1 -1
- package/utils/rect.d.ts +1 -1
- package/utils/rect.js +1 -1
- package/utils/rect.js.map +1 -1
- package/utils/sanitizeUrl.js +1 -1
- package/utils/sanitizeUrl.js.map +1 -1
- package/utils/setFloatingElemPosition.d.ts +1 -1
- package/utils/setFloatingElemPosition.js +23 -21
- package/utils/setFloatingElemPosition.js.map +1 -1
- package/components/Editor/HeadingEditor.d.ts +0 -7
- package/components/Editor/HeadingEditor.js +0 -22
- package/components/Editor/HeadingEditor.js.map +0 -1
- package/components/Editor/ParagraphEditor.d.ts +0 -7
- package/components/Editor/ParagraphEditor.js +0 -22
- package/components/Editor/ParagraphEditor.js.map +0 -1
- package/components/Toolbar/Toolbar.css +0 -643
- package/components/Toolbar/Toolbar.d.ts +0 -6
- package/components/Toolbar/Toolbar.js +0 -148
- package/components/Toolbar/Toolbar.js.map +0 -1
- package/components/ToolbarActions/FontSizeAction.d.ts +0 -14
- package/components/ToolbarActions/FontSizeAction.js +0 -91
- package/components/ToolbarActions/FontSizeAction.js.map +0 -1
- package/hooks/useList.d.ts +0 -2
- package/hooks/useList.js +0 -50
- package/hooks/useList.js.map +0 -1
- package/hooks/useQuote.d.ts +0 -2
- package/hooks/useQuote.js +0 -17
- package/hooks/useQuote.js.map +0 -1
- package/plugins/FloatingLinkEditorPlugin/LinkEditForm.d.ts +0 -8
- package/plugins/FloatingLinkEditorPlugin/LinkEditForm.js +0 -104
- package/plugins/FloatingLinkEditorPlugin/LinkEditForm.js.map +0 -1
- package/plugins/FloatingLinkEditorPlugin/LinkPreviewForm.d.ts +0 -9
- package/plugins/FloatingLinkEditorPlugin/LinkPreviewForm.js +0 -34
- package/plugins/FloatingLinkEditorPlugin/LinkPreviewForm.js.map +0 -1
package/ui/TextInput.d.ts
CHANGED
package/utils/files.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import type { ImagePayload } from "../commands";
|
|
1
|
+
import type { ImagePayload } from "../commands/index.js";
|
|
2
2
|
export interface FileManagerFileItem {
|
|
3
3
|
id: string;
|
|
4
4
|
src: string;
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
name: string;
|
|
6
|
+
type: string;
|
|
7
|
+
size: number;
|
|
8
|
+
width?: number;
|
|
9
|
+
height?: number;
|
|
10
10
|
}
|
|
11
11
|
export declare const fileToImagePayload: (file: FileManagerFileItem) => ImagePayload | null;
|
package/utils/files.js
CHANGED
|
@@ -2,19 +2,9 @@ export const fileToImagePayload = file => {
|
|
|
2
2
|
const imagePayload = {};
|
|
3
3
|
imagePayload["id"] = file.id;
|
|
4
4
|
imagePayload["src"] = file.src;
|
|
5
|
-
imagePayload["
|
|
6
|
-
imagePayload["
|
|
7
|
-
|
|
8
|
-
for (const metaValue of file.meta) {
|
|
9
|
-
if (metaValue.key === "name") {
|
|
10
|
-
imagePayload["altText"] = metaValue.value;
|
|
11
|
-
} else if (metaValue.key === "width") {
|
|
12
|
-
imagePayload["width"] = metaValue.value;
|
|
13
|
-
} else if (metaValue.key === "height") {
|
|
14
|
-
imagePayload["height"] = metaValue.value;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
}
|
|
5
|
+
imagePayload["altText"] = file.name;
|
|
6
|
+
imagePayload["width"] = file.width;
|
|
7
|
+
imagePayload["height"] = file.height;
|
|
18
8
|
return imagePayload;
|
|
19
9
|
};
|
|
20
10
|
|
package/utils/files.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["fileToImagePayload","file","imagePayload","id","src","
|
|
1
|
+
{"version":3,"names":["fileToImagePayload","file","imagePayload","id","src","name","width","height"],"sources":["files.ts"],"sourcesContent":["import type { ImagePayload } from \"~/commands/index.js\";\n\nexport interface FileManagerFileItem {\n id: string;\n src: string;\n name: string;\n type: string; // MIME type\n size: number; // bytes\n // Required for images (apps depend on these for Next.js Image, etc.)\n width?: number;\n height?: number;\n}\n\nexport const fileToImagePayload = (file: FileManagerFileItem): ImagePayload | null => {\n const imagePayload = {} as ImagePayload;\n imagePayload[\"id\"] = file.id;\n imagePayload[\"src\"] = file.src;\n imagePayload[\"altText\"] = file.name;\n imagePayload[\"width\"] = file.width;\n imagePayload[\"height\"] = file.height;\n\n return imagePayload;\n};\n"],"mappings":"AAaA,OAAO,MAAMA,kBAAkB,GAAIC,IAAyB,IAA0B;EAClF,MAAMC,YAAY,GAAG,CAAC,CAAiB;EACvCA,YAAY,CAAC,IAAI,CAAC,GAAGD,IAAI,CAACE,EAAE;EAC5BD,YAAY,CAAC,KAAK,CAAC,GAAGD,IAAI,CAACG,GAAG;EAC9BF,YAAY,CAAC,SAAS,CAAC,GAAGD,IAAI,CAACI,IAAI;EACnCH,YAAY,CAAC,OAAO,CAAC,GAAGD,IAAI,CAACK,KAAK;EAClCJ,YAAY,CAAC,QAAQ,CAAC,GAAGD,IAAI,CAACM,MAAM;EAEpC,OAAOL,YAAY;AACvB,CAAC","ignoreList":[]}
|
package/utils/insertImage.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { InsertImagePayload } from "../plugins/ImagesPlugin/ImagesPlugin";
|
|
1
|
+
import type { InsertImagePayload } from "../plugins/ImagesPlugin/ImagesPlugin.js";
|
|
2
2
|
export declare const insertImage: (payload: InsertImagePayload) => boolean;
|
package/utils/insertImage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["$insertNodes","$isRootOrShadowRoot","$wrapNodeInElement","$createParagraphNode","$createImageNode","insertImage","payload","imageNode","getParentOrThrow","selectEnd"],"sources":["insertImage.ts"],"sourcesContent":["import { $insertNodes, $isRootOrShadowRoot } from \"lexical\";\nimport { $wrapNodeInElement } from \"@lexical/utils\";\nimport { $createParagraphNode, $createImageNode } from \"@webiny/lexical-nodes\";\nimport type { InsertImagePayload } from \"~/plugins/ImagesPlugin/ImagesPlugin\";\n\n/*\n * Insert image into editor.\n */\nexport const insertImage = (payload: InsertImagePayload): boolean => {\n const imageNode = $createImageNode(payload);\n $insertNodes([imageNode]);\n if ($isRootOrShadowRoot(imageNode.getParentOrThrow())) {\n $wrapNodeInElement(imageNode, $createParagraphNode).selectEnd();\n }\n return true;\n};\n"],"mappings":"AAAA,SAASA,YAAY,EAAEC,mBAAmB,QAAQ,SAAS;AAC3D,SAASC,kBAAkB,QAAQ,gBAAgB;AACnD,SAASC,oBAAoB,EAAEC,gBAAgB,QAAQ,uBAAuB;AAG9E;AACA;AACA;AACA,OAAO,MAAMC,WAAW,GAAIC,OAA2B,IAAc;EACjE,MAAMC,SAAS,GAAGH,gBAAgB,CAACE,OAAO,CAAC;EAC3CN,YAAY,CAAC,CAACO,SAAS,CAAC,CAAC;EACzB,IAAIN,mBAAmB,CAACM,SAAS,CAACC,gBAAgB,CAAC,CAAC,CAAC,EAAE;IACnDN,kBAAkB,CAACK,SAAS,EAAEJ,oBAAoB,CAAC,CAACM,SAAS,CAAC,CAAC;EACnE;EACA,OAAO,IAAI;AACf,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["$insertNodes","$isRootOrShadowRoot","$wrapNodeInElement","$createParagraphNode","$createImageNode","insertImage","payload","imageNode","getParentOrThrow","selectEnd"],"sources":["insertImage.ts"],"sourcesContent":["import { $insertNodes, $isRootOrShadowRoot } from \"lexical\";\nimport { $wrapNodeInElement } from \"@lexical/utils\";\nimport { $createParagraphNode, $createImageNode } from \"@webiny/lexical-nodes\";\nimport type { InsertImagePayload } from \"~/plugins/ImagesPlugin/ImagesPlugin.js\";\n\n/*\n * Insert image into editor.\n */\nexport const insertImage = (payload: InsertImagePayload): boolean => {\n const imageNode = $createImageNode(payload);\n $insertNodes([imageNode]);\n if ($isRootOrShadowRoot(imageNode.getParentOrThrow())) {\n $wrapNodeInElement(imageNode, $createParagraphNode).selectEnd();\n }\n return true;\n};\n"],"mappings":"AAAA,SAASA,YAAY,EAAEC,mBAAmB,QAAQ,SAAS;AAC3D,SAASC,kBAAkB,QAAQ,gBAAgB;AACnD,SAASC,oBAAoB,EAAEC,gBAAgB,QAAQ,uBAAuB;AAG9E;AACA;AACA;AACA,OAAO,MAAMC,WAAW,GAAIC,OAA2B,IAAc;EACjE,MAAMC,SAAS,GAAGH,gBAAgB,CAACE,OAAO,CAAC;EAC3CN,YAAY,CAAC,CAACO,SAAS,CAAC,CAAC;EACzB,IAAIN,mBAAmB,CAACM,SAAS,CAACC,gBAAgB,CAAC,CAAC,CAAC,EAAE;IACnDN,kBAAkB,CAACK,SAAS,EAAEJ,oBAAoB,CAAC,CAACM,SAAS,CAAC,CAAC;EACnE;EACA,OAAO,IAAI;AACf,CAAC","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { SerializedEditorState } from "lexical";
|
|
2
|
-
import type { LexicalValue } from "../types";
|
|
2
|
+
import type { LexicalValue } from "../types.js";
|
|
3
3
|
export declare const parseLexicalState: (editorStateValue: LexicalValue | null) => false | SerializedEditorState;
|
|
4
|
-
export declare const isValidLexicalData: (editorStateValue: LexicalValue | null) => editorStateValue is
|
|
4
|
+
export declare const isValidLexicalData: (editorStateValue: LexicalValue | null) => editorStateValue is LexicalValue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["parseLexicalState","editorStateValue","maybeValidState","JSON","parse","isValidLexicalData","data"],"sources":["isValidLexicalData.ts"],"sourcesContent":["import type { SerializedEditorState } from \"lexical\";\nimport type { LexicalValue } from \"~/types\";\n\nexport const parseLexicalState = (\n editorStateValue: LexicalValue | null\n): false | SerializedEditorState => {\n if (!editorStateValue) {\n return false;\n }\n try {\n const maybeValidState = JSON.parse(editorStateValue);\n return maybeValidState[\"root\"] ? maybeValidState : false;\n } catch {\n return false;\n }\n};\n\nexport const isValidLexicalData = (\n editorStateValue: LexicalValue | null\n): editorStateValue is LexicalValue => {\n if (!editorStateValue) {\n return false;\n }\n\n try {\n const data = JSON.parse(editorStateValue);\n return !!data[\"root\"];\n } catch {\n return false;\n }\n};\n"],"mappings":"AAGA,OAAO,MAAMA,iBAAiB,GAC1BC,gBAAqC,IACL;EAChC,IAAI,CAACA,gBAAgB,EAAE;IACnB,OAAO,KAAK;EAChB;EACA,IAAI;IACA,MAAMC,eAAe,GAAGC,IAAI,CAACC,KAAK,CAACH,gBAAgB,CAAC;IACpD,OAAOC,eAAe,CAAC,MAAM,CAAC,GAAGA,eAAe,GAAG,KAAK;EAC5D,CAAC,CAAC,MAAM;IACJ,OAAO,KAAK;EAChB;AACJ,CAAC;AAED,OAAO,MAAMG,kBAAkB,GAC3BJ,gBAAqC,IACF;EACnC,IAAI,CAACA,gBAAgB,EAAE;IACnB,OAAO,KAAK;EAChB;EAEA,IAAI;IACA,MAAMK,IAAI,GAAGH,IAAI,CAACC,KAAK,CAACH,gBAAgB,CAAC;IACzC,OAAO,CAAC,CAACK,IAAI,CAAC,MAAM,CAAC;EACzB,CAAC,CAAC,MAAM;IACJ,OAAO,KAAK;EAChB;AACJ,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["parseLexicalState","editorStateValue","maybeValidState","JSON","parse","isValidLexicalData","data"],"sources":["isValidLexicalData.ts"],"sourcesContent":["import type { SerializedEditorState } from \"lexical\";\nimport type { LexicalValue } from \"~/types.js\";\n\nexport const parseLexicalState = (\n editorStateValue: LexicalValue | null\n): false | SerializedEditorState => {\n if (!editorStateValue) {\n return false;\n }\n try {\n const maybeValidState = JSON.parse(editorStateValue);\n return maybeValidState[\"root\"] ? maybeValidState : false;\n } catch {\n return false;\n }\n};\n\nexport const isValidLexicalData = (\n editorStateValue: LexicalValue | null\n): editorStateValue is LexicalValue => {\n if (!editorStateValue) {\n return false;\n }\n\n try {\n const data = JSON.parse(editorStateValue);\n return !!data[\"root\"];\n } catch {\n return false;\n }\n};\n"],"mappings":"AAGA,OAAO,MAAMA,iBAAiB,GAC1BC,gBAAqC,IACL;EAChC,IAAI,CAACA,gBAAgB,EAAE;IACnB,OAAO,KAAK;EAChB;EACA,IAAI;IACA,MAAMC,eAAe,GAAGC,IAAI,CAACC,KAAK,CAACH,gBAAgB,CAAC;IACpD,OAAOC,eAAe,CAAC,MAAM,CAAC,GAAGA,eAAe,GAAG,KAAK;EAC5D,CAAC,CAAC,MAAM;IACJ,OAAO,KAAK;EAChB;AACJ,CAAC;AAED,OAAO,MAAMG,kBAAkB,GAC3BJ,gBAAqC,IACF;EACnC,IAAI,CAACA,gBAAgB,EAAE;IACnB,OAAO,KAAK;EAChB;EAEA,IAAI;IACA,MAAMK,IAAI,GAAGH,IAAI,CAACC,KAAK,CAACH,gBAAgB,CAAC;IACzC,OAAO,CAAC,CAACK,IAAI,CAAC,MAAM,CAAC;EACzB,CAAC,CAAC,MAAM;IACJ,OAAO,KAAK;EAChB;AACJ,CAAC","ignoreList":[]}
|
package/utils/rect.d.ts
CHANGED
package/utils/rect.js
CHANGED
package/utils/rect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isPoint","Rect","constructor","left","top","right","bottom","physicTop","physicBottom","physicLeft","physicRight","_top","_right","_left","_bottom","width","Math","abs","height","equals","contains","target","x","y","isOnTopSide","isOnBottomSide","isOnLeftSide","isOnRightSide","result","reason","intersectsWith","rect","x1","y1","w1","h1","x2","y2","w2","h2","maxX","maxY","minX","minY","generateNewRect","fromLTRB","fromLWTH","fromPoints","startPoint","endPoint","fromDOM","dom","getBoundingClientRect"],"sources":["rect.ts"],"sourcesContent":["/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\nimport type { Point } from \"./point\";\nimport { isPoint } from \"./point\";\n\ntype ContainsPointReturn = {\n result: boolean;\n reason: {\n isOnTopSide: boolean;\n isOnBottomSide: boolean;\n isOnLeftSide: boolean;\n isOnRightSide: boolean;\n };\n};\n\nexport class Rect {\n private readonly _left: number;\n private readonly _top: number;\n private readonly _right: number;\n private readonly _bottom: number;\n\n constructor(left: number, top: number, right: number, bottom: number) {\n const [physicTop, physicBottom] = top <= bottom ? [top, bottom] : [bottom, top];\n\n const [physicLeft, physicRight] = left <= right ? [left, right] : [right, left];\n\n this._top = physicTop;\n this._right = physicRight;\n this._left = physicLeft;\n this._bottom = physicBottom;\n }\n\n get top(): number {\n return this._top;\n }\n\n get right(): number {\n return this._right;\n }\n\n get bottom(): number {\n return this._bottom;\n }\n\n get left(): number {\n return this._left;\n }\n\n get width(): number {\n return Math.abs(this._left - this._right);\n }\n\n get height(): number {\n return Math.abs(this._bottom - this._top);\n }\n\n public equals({ top, left, bottom, right }: Rect): boolean {\n return (\n top === this._top &&\n bottom === this._bottom &&\n left === this._left &&\n right === this._right\n );\n }\n\n public contains({ x, y }: Point): ContainsPointReturn;\n public contains({ top, left, bottom, right }: Rect): boolean;\n public contains(target: Point | Rect): boolean | ContainsPointReturn {\n if (isPoint(target)) {\n const { x, y } = target;\n\n const isOnTopSide = y < this._top;\n const isOnBottomSide = y > this._bottom;\n const isOnLeftSide = x < this._left;\n const isOnRightSide = x > this._right;\n\n const result = !isOnTopSide && !isOnBottomSide && !isOnLeftSide && !isOnRightSide;\n\n return {\n reason: {\n isOnBottomSide,\n isOnLeftSide,\n isOnRightSide,\n isOnTopSide\n },\n result\n };\n } else {\n const { top, left, bottom, right } = target;\n\n return (\n top >= this._top &&\n top <= this._bottom &&\n bottom >= this._top &&\n bottom <= this._bottom &&\n left >= this._left &&\n left <= this._right &&\n right >= this._left &&\n right <= this._right\n );\n }\n }\n\n public intersectsWith(rect: Rect): boolean {\n const { left: x1, top: y1, width: w1, height: h1 } = rect;\n const { left: x2, top: y2, width: w2, height: h2 } = this;\n const maxX = x1 + w1 >= x2 + w2 ? x1 + w1 : x2 + w2;\n const maxY = y1 + h1 >= y2 + h2 ? y1 + h1 : y2 + h2;\n const minX = x1 <= x2 ? x1 : x2;\n const minY = y1 <= y2 ? y1 : y2;\n return maxX - minX <= w1 + w2 && maxY - minY <= h1 + h2;\n }\n\n public generateNewRect({\n left = this.left,\n top = this.top,\n right = this.right,\n bottom = this.bottom\n }): Rect {\n return new Rect(left, top, right, bottom);\n }\n\n static fromLTRB(left: number, top: number, right: number, bottom: number): Rect {\n return new Rect(left, top, right, bottom);\n }\n\n static fromLWTH(left: number, width: number, top: number, height: number): Rect {\n return new Rect(left, top, left + width, top + height);\n }\n\n static fromPoints(startPoint: Point, endPoint: Point): Rect {\n const { y: top, x: left } = startPoint;\n const { y: bottom, x: right } = endPoint;\n return Rect.fromLTRB(left, top, right, bottom);\n }\n\n static fromDOM(dom: HTMLElement): Rect {\n const { top, width, left, height } = dom.getBoundingClientRect();\n return Rect.fromLWTH(left, width, top, height);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["isPoint","Rect","constructor","left","top","right","bottom","physicTop","physicBottom","physicLeft","physicRight","_top","_right","_left","_bottom","width","Math","abs","height","equals","contains","target","x","y","isOnTopSide","isOnBottomSide","isOnLeftSide","isOnRightSide","result","reason","intersectsWith","rect","x1","y1","w1","h1","x2","y2","w2","h2","maxX","maxY","minX","minY","generateNewRect","fromLTRB","fromLWTH","fromPoints","startPoint","endPoint","fromDOM","dom","getBoundingClientRect"],"sources":["rect.ts"],"sourcesContent":["/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\nimport type { Point } from \"./point.js\";\nimport { isPoint } from \"./point.js\";\n\ntype ContainsPointReturn = {\n result: boolean;\n reason: {\n isOnTopSide: boolean;\n isOnBottomSide: boolean;\n isOnLeftSide: boolean;\n isOnRightSide: boolean;\n };\n};\n\nexport class Rect {\n private readonly _left: number;\n private readonly _top: number;\n private readonly _right: number;\n private readonly _bottom: number;\n\n constructor(left: number, top: number, right: number, bottom: number) {\n const [physicTop, physicBottom] = top <= bottom ? [top, bottom] : [bottom, top];\n\n const [physicLeft, physicRight] = left <= right ? [left, right] : [right, left];\n\n this._top = physicTop;\n this._right = physicRight;\n this._left = physicLeft;\n this._bottom = physicBottom;\n }\n\n get top(): number {\n return this._top;\n }\n\n get right(): number {\n return this._right;\n }\n\n get bottom(): number {\n return this._bottom;\n }\n\n get left(): number {\n return this._left;\n }\n\n get width(): number {\n return Math.abs(this._left - this._right);\n }\n\n get height(): number {\n return Math.abs(this._bottom - this._top);\n }\n\n public equals({ top, left, bottom, right }: Rect): boolean {\n return (\n top === this._top &&\n bottom === this._bottom &&\n left === this._left &&\n right === this._right\n );\n }\n\n public contains({ x, y }: Point): ContainsPointReturn;\n public contains({ top, left, bottom, right }: Rect): boolean;\n public contains(target: Point | Rect): boolean | ContainsPointReturn {\n if (isPoint(target)) {\n const { x, y } = target;\n\n const isOnTopSide = y < this._top;\n const isOnBottomSide = y > this._bottom;\n const isOnLeftSide = x < this._left;\n const isOnRightSide = x > this._right;\n\n const result = !isOnTopSide && !isOnBottomSide && !isOnLeftSide && !isOnRightSide;\n\n return {\n reason: {\n isOnBottomSide,\n isOnLeftSide,\n isOnRightSide,\n isOnTopSide\n },\n result\n };\n } else {\n const { top, left, bottom, right } = target;\n\n return (\n top >= this._top &&\n top <= this._bottom &&\n bottom >= this._top &&\n bottom <= this._bottom &&\n left >= this._left &&\n left <= this._right &&\n right >= this._left &&\n right <= this._right\n );\n }\n }\n\n public intersectsWith(rect: Rect): boolean {\n const { left: x1, top: y1, width: w1, height: h1 } = rect;\n const { left: x2, top: y2, width: w2, height: h2 } = this;\n const maxX = x1 + w1 >= x2 + w2 ? x1 + w1 : x2 + w2;\n const maxY = y1 + h1 >= y2 + h2 ? y1 + h1 : y2 + h2;\n const minX = x1 <= x2 ? x1 : x2;\n const minY = y1 <= y2 ? y1 : y2;\n return maxX - minX <= w1 + w2 && maxY - minY <= h1 + h2;\n }\n\n public generateNewRect({\n left = this.left,\n top = this.top,\n right = this.right,\n bottom = this.bottom\n }): Rect {\n return new Rect(left, top, right, bottom);\n }\n\n static fromLTRB(left: number, top: number, right: number, bottom: number): Rect {\n return new Rect(left, top, right, bottom);\n }\n\n static fromLWTH(left: number, width: number, top: number, height: number): Rect {\n return new Rect(left, top, left + width, top + height);\n }\n\n static fromPoints(startPoint: Point, endPoint: Point): Rect {\n const { y: top, x: left } = startPoint;\n const { y: bottom, x: right } = endPoint;\n return Rect.fromLTRB(left, top, right, bottom);\n }\n\n static fromDOM(dom: HTMLElement): Rect {\n const { top, width, left, height } = dom.getBoundingClientRect();\n return Rect.fromLWTH(left, width, top, height);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/utils/sanitizeUrl.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
7
|
*/
|
|
8
|
-
import { isAnchorLink } from "./isAnchorLink";
|
|
8
|
+
import { isAnchorLink } from "./isAnchorLink.js";
|
|
9
9
|
export const sanitizeUrl = url => {
|
|
10
10
|
/** A pattern that matches safe URLs. */
|
|
11
11
|
const SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^&:/?#]*(?:[/?#]|$))/gi;
|
package/utils/sanitizeUrl.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isAnchorLink","sanitizeUrl","url","SAFE_URL_PATTERN","DATA_URL_PATTERN","String","trim","match"],"sources":["sanitizeUrl.ts"],"sourcesContent":["/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\nimport { isAnchorLink } from \"~/utils/isAnchorLink\";\n\nexport const sanitizeUrl = (url: string): string => {\n /** A pattern that matches safe URLs. */\n const SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^&:/?#]*(?:[/?#]|$))/gi;\n\n /** A pattern that matches safe data URLs. */\n const DATA_URL_PATTERN =\n /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;\n\n url = String(url).trim();\n\n if (isAnchorLink(url)) {\n return url;\n }\n\n if (url.match(SAFE_URL_PATTERN) || url.match(DATA_URL_PATTERN)) {\n return url;\n }\n\n return `https://`;\n};\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,YAAY;AAErB,OAAO,MAAMC,WAAW,GAAIC,GAAW,IAAa;EAChD;EACA,MAAMC,gBAAgB,GAAG,iEAAiE;;EAE1F;EACA,MAAMC,gBAAgB,GAClB,qIAAqI;EAEzIF,GAAG,GAAGG,MAAM,CAACH,GAAG,CAAC,CAACI,IAAI,CAAC,CAAC;EAExB,IAAIN,YAAY,CAACE,GAAG,CAAC,EAAE;IACnB,OAAOA,GAAG;EACd;EAEA,IAAIA,GAAG,CAACK,KAAK,CAACJ,gBAAgB,CAAC,IAAID,GAAG,CAACK,KAAK,CAACH,gBAAgB,CAAC,EAAE;IAC5D,OAAOF,GAAG;EACd;EAEA,OAAO,UAAU;AACrB,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["isAnchorLink","sanitizeUrl","url","SAFE_URL_PATTERN","DATA_URL_PATTERN","String","trim","match"],"sources":["sanitizeUrl.ts"],"sourcesContent":["/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\nimport { isAnchorLink } from \"~/utils/isAnchorLink.js\";\n\nexport const sanitizeUrl = (url: string): string => {\n /** A pattern that matches safe URLs. */\n const SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^&:/?#]*(?:[/?#]|$))/gi;\n\n /** A pattern that matches safe data URLs. */\n const DATA_URL_PATTERN =\n /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;\n\n url = String(url).trim();\n\n if (isAnchorLink(url)) {\n return url;\n }\n\n if (url.match(SAFE_URL_PATTERN) || url.match(DATA_URL_PATTERN)) {\n return url;\n }\n\n return `https://`;\n};\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,YAAY;AAErB,OAAO,MAAMC,WAAW,GAAIC,GAAW,IAAa;EAChD;EACA,MAAMC,gBAAgB,GAAG,iEAAiE;;EAE1F;EACA,MAAMC,gBAAgB,GAClB,qIAAqI;EAEzIF,GAAG,GAAGG,MAAM,CAACH,GAAG,CAAC,CAACI,IAAI,CAAC,CAAC;EAExB,IAAIN,YAAY,CAACE,GAAG,CAAC,EAAE;IACnB,OAAOA,GAAG;EACd;EAEA,IAAIA,GAAG,CAACK,KAAK,CAACJ,gBAAgB,CAAC,IAAID,GAAG,CAACK,KAAK,CAACH,gBAAgB,CAAC,EAAE;IAC5D,OAAOF,GAAG;EACd;EAEA,OAAO,UAAU;AACrB,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function setFloatingElemPosition(basePosition:
|
|
1
|
+
export declare function setFloatingElemPosition(basePosition: Range | null, elementToPosition: HTMLElement): void;
|
|
@@ -1,29 +1,31 @@
|
|
|
1
|
-
|
|
2
|
-
const
|
|
3
|
-
export function setFloatingElemPosition(basePosition, elementToPosition
|
|
1
|
+
import { computePosition, flip, offset, shift } from "@floating-ui/dom";
|
|
2
|
+
const GAP = 10;
|
|
3
|
+
export function setFloatingElemPosition(basePosition, elementToPosition) {
|
|
4
4
|
// A small timeout gives enough time for DOM to update and provides us with correct bounding rect values.
|
|
5
5
|
setTimeout(() => {
|
|
6
|
-
|
|
7
|
-
if (basePosition === null || !scrollerElem) {
|
|
8
|
-
elementToPosition.style.opacity = "0";
|
|
6
|
+
if (basePosition === null) {
|
|
9
7
|
elementToPosition.style.transform = "translate(-10000px, -10000px)";
|
|
10
8
|
return;
|
|
11
9
|
}
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
10
|
+
const virtualElement = {
|
|
11
|
+
getBoundingClientRect: () => basePosition.getBoundingClientRect()
|
|
12
|
+
};
|
|
13
|
+
computePosition(virtualElement, elementToPosition, {
|
|
14
|
+
placement: "bottom",
|
|
15
|
+
middleware: [offset(GAP),
|
|
16
|
+
// adds gap between anchor and popup
|
|
17
|
+
flip(),
|
|
18
|
+
// switches to the opposite side if no room (bottom → top)
|
|
19
|
+
shift({
|
|
20
|
+
padding: GAP
|
|
21
|
+
}) // slides along the axis to stay within viewport
|
|
22
|
+
]
|
|
23
|
+
}).then(({
|
|
24
|
+
x,
|
|
25
|
+
y
|
|
26
|
+
}) => {
|
|
27
|
+
elementToPosition.style.transform = `translate(${x}px, ${y}px)`;
|
|
28
|
+
});
|
|
27
29
|
}, 10);
|
|
28
30
|
}
|
|
29
31
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["computePosition","flip","offset","shift","GAP","setFloatingElemPosition","basePosition","elementToPosition","setTimeout","style","transform","virtualElement","getBoundingClientRect","placement","middleware","padding","then","x","y"],"sources":["setFloatingElemPosition.ts"],"sourcesContent":["import { computePosition, flip, offset, shift } from \"@floating-ui/dom\";\n\nconst GAP = 10;\n\nexport function setFloatingElemPosition(\n basePosition: Range | null,\n elementToPosition: HTMLElement\n): void {\n // A small timeout gives enough time for DOM to update and provides us with correct bounding rect values.\n setTimeout(() => {\n if (basePosition === null) {\n elementToPosition.style.transform = \"translate(-10000px, -10000px)\";\n return;\n }\n\n const virtualElement = {\n getBoundingClientRect: () => basePosition.getBoundingClientRect()\n };\n\n computePosition(virtualElement, elementToPosition, {\n placement: \"bottom\",\n middleware: [\n offset(GAP), // adds gap between anchor and popup\n flip(), // switches to the opposite side if no room (bottom → top)\n shift({ padding: GAP }) // slides along the axis to stay within viewport\n ]\n }).then(({ x, y }) => {\n elementToPosition.style.transform = `translate(${x}px, ${y}px)`;\n });\n }, 10);\n}\n"],"mappings":"AAAA,SAASA,eAAe,EAAEC,IAAI,EAAEC,MAAM,EAAEC,KAAK,QAAQ,kBAAkB;AAEvE,MAAMC,GAAG,GAAG,EAAE;AAEd,OAAO,SAASC,uBAAuBA,CACnCC,YAA0B,EAC1BC,iBAA8B,EAC1B;EACJ;EACAC,UAAU,CAAC,MAAM;IACb,IAAIF,YAAY,KAAK,IAAI,EAAE;MACvBC,iBAAiB,CAACE,KAAK,CAACC,SAAS,GAAG,+BAA+B;MACnE;IACJ;IAEA,MAAMC,cAAc,GAAG;MACnBC,qBAAqB,EAAEA,CAAA,KAAMN,YAAY,CAACM,qBAAqB,CAAC;IACpE,CAAC;IAEDZ,eAAe,CAACW,cAAc,EAAEJ,iBAAiB,EAAE;MAC/CM,SAAS,EAAE,QAAQ;MACnBC,UAAU,EAAE,CACRZ,MAAM,CAACE,GAAG,CAAC;MAAE;MACbH,IAAI,CAAC,CAAC;MAAE;MACRE,KAAK,CAAC;QAAEY,OAAO,EAAEX;MAAI,CAAC,CAAC,CAAC;MAAA;IAEhC,CAAC,CAAC,CAACY,IAAI,CAAC,CAAC;MAAEC,CAAC;MAAEC;IAAE,CAAC,KAAK;MAClBX,iBAAiB,CAACE,KAAK,CAACC,SAAS,GAAG,aAAaO,CAAC,OAAOC,CAAC,KAAK;IACnE,CAAC,CAAC;EACN,CAAC,EAAE,EAAE,CAAC;AACV","ignoreList":[]}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import type { RichTextEditorProps } from "./RichTextEditor";
|
|
3
|
-
interface HeadingEditorProps extends RichTextEditorProps {
|
|
4
|
-
tag?: "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
|
|
5
|
-
}
|
|
6
|
-
export declare const HeadingEditor: ({ tag, placeholder, ...rest }: HeadingEditorProps) => React.JSX.Element;
|
|
7
|
-
export {};
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import { RichTextEditor } from "./RichTextEditor";
|
|
3
|
-
import { Toolbar } from "../Toolbar/Toolbar";
|
|
4
|
-
import { EnsureHeadingTagPlugin } from "./EnsureHeadingTagPlugin";
|
|
5
|
-
const styles = {
|
|
6
|
-
padding: 5
|
|
7
|
-
};
|
|
8
|
-
export const HeadingEditor = ({
|
|
9
|
-
tag,
|
|
10
|
-
placeholder,
|
|
11
|
-
...rest
|
|
12
|
-
}) => {
|
|
13
|
-
return /*#__PURE__*/React.createElement(RichTextEditor, Object.assign({
|
|
14
|
-
toolbar: /*#__PURE__*/React.createElement(Toolbar, null),
|
|
15
|
-
tag: tag ?? "h1",
|
|
16
|
-
placeholder: placeholder ?? "Enter your heading text here..."
|
|
17
|
-
}, rest, {
|
|
18
|
-
styles: styles
|
|
19
|
-
}), /*#__PURE__*/React.createElement(EnsureHeadingTagPlugin, null), rest?.children);
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
//# sourceMappingURL=HeadingEditor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["React","RichTextEditor","Toolbar","EnsureHeadingTagPlugin","styles","padding","HeadingEditor","tag","placeholder","rest","createElement","Object","assign","toolbar","children"],"sources":["HeadingEditor.tsx"],"sourcesContent":["import React from \"react\";\nimport type { RichTextEditorProps } from \"~/components/Editor/RichTextEditor\";\nimport { RichTextEditor } from \"~/components/Editor/RichTextEditor\";\nimport { Toolbar } from \"~/components/Toolbar/Toolbar\";\nimport { EnsureHeadingTagPlugin } from \"~/components/Editor/EnsureHeadingTagPlugin\";\n\ninterface HeadingEditorProps extends RichTextEditorProps {\n tag?: \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\";\n}\n\nconst styles = { padding: 5 };\n\nexport const HeadingEditor = ({ tag, placeholder, ...rest }: HeadingEditorProps) => {\n return (\n <RichTextEditor\n toolbar={<Toolbar />}\n tag={tag ?? \"h1\"}\n placeholder={placeholder ?? \"Enter your heading text here...\"}\n {...rest}\n styles={styles}\n >\n <EnsureHeadingTagPlugin />\n {rest?.children}\n </RichTextEditor>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,cAAc;AACvB,SAASC,OAAO;AAChB,SAASC,sBAAsB;AAM/B,MAAMC,MAAM,GAAG;EAAEC,OAAO,EAAE;AAAE,CAAC;AAE7B,OAAO,MAAMC,aAAa,GAAGA,CAAC;EAAEC,GAAG;EAAEC,WAAW;EAAE,GAAGC;AAAyB,CAAC,KAAK;EAChF,oBACIT,KAAA,CAAAU,aAAA,CAACT,cAAc,EAAAU,MAAA,CAAAC,MAAA;IACXC,OAAO,eAAEb,KAAA,CAAAU,aAAA,CAACR,OAAO,MAAE,CAAE;IACrBK,GAAG,EAAEA,GAAG,IAAI,IAAK;IACjBC,WAAW,EAAEA,WAAW,IAAI;EAAkC,GAC1DC,IAAI;IACRL,MAAM,EAAEA;EAAO,iBAEfJ,KAAA,CAAAU,aAAA,CAACP,sBAAsB,MAAE,CAAC,EACzBM,IAAI,EAAEK,QACK,CAAC;AAEzB,CAAC","ignoreList":[]}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import type { RichTextEditorProps } from "./RichTextEditor";
|
|
3
|
-
interface ParagraphLexicalEditorProps extends RichTextEditorProps {
|
|
4
|
-
tag?: "p";
|
|
5
|
-
}
|
|
6
|
-
declare const ParagraphEditor: ({ placeholder, tag, ...rest }: ParagraphLexicalEditorProps) => React.JSX.Element;
|
|
7
|
-
export { ParagraphEditor };
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import { RichTextEditor } from "./RichTextEditor";
|
|
3
|
-
import { Toolbar } from "../Toolbar/Toolbar";
|
|
4
|
-
const styles = {
|
|
5
|
-
padding: 5
|
|
6
|
-
};
|
|
7
|
-
const ParagraphEditor = ({
|
|
8
|
-
placeholder,
|
|
9
|
-
tag,
|
|
10
|
-
...rest
|
|
11
|
-
}) => {
|
|
12
|
-
return /*#__PURE__*/React.createElement(RichTextEditor, Object.assign({
|
|
13
|
-
toolbar: /*#__PURE__*/React.createElement(Toolbar, null),
|
|
14
|
-
tag: tag ?? "p",
|
|
15
|
-
placeholder: placeholder ?? "Enter your text here..."
|
|
16
|
-
}, rest, {
|
|
17
|
-
styles: styles
|
|
18
|
-
}), rest?.children);
|
|
19
|
-
};
|
|
20
|
-
export { ParagraphEditor };
|
|
21
|
-
|
|
22
|
-
//# sourceMappingURL=ParagraphEditor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["React","RichTextEditor","Toolbar","styles","padding","ParagraphEditor","placeholder","tag","rest","createElement","Object","assign","toolbar","children"],"sources":["ParagraphEditor.tsx"],"sourcesContent":["import React from \"react\";\nimport type { RichTextEditorProps } from \"~/components/Editor/RichTextEditor\";\nimport { RichTextEditor } from \"~/components/Editor/RichTextEditor\";\nimport { Toolbar } from \"~/components/Toolbar/Toolbar\";\n\ninterface ParagraphLexicalEditorProps extends RichTextEditorProps {\n tag?: \"p\";\n}\n\nconst styles = { padding: 5 };\n\nconst ParagraphEditor = ({ placeholder, tag, ...rest }: ParagraphLexicalEditorProps) => {\n return (\n <RichTextEditor\n toolbar={<Toolbar />}\n tag={tag ?? \"p\"}\n placeholder={placeholder ?? \"Enter your text here...\"}\n {...rest}\n styles={styles}\n >\n {rest?.children}\n </RichTextEditor>\n );\n};\n\nexport { ParagraphEditor };\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,cAAc;AACvB,SAASC,OAAO;AAMhB,MAAMC,MAAM,GAAG;EAAEC,OAAO,EAAE;AAAE,CAAC;AAE7B,MAAMC,eAAe,GAAGA,CAAC;EAAEC,WAAW;EAAEC,GAAG;EAAE,GAAGC;AAAkC,CAAC,KAAK;EACpF,oBACIR,KAAA,CAAAS,aAAA,CAACR,cAAc,EAAAS,MAAA,CAAAC,MAAA;IACXC,OAAO,eAAEZ,KAAA,CAAAS,aAAA,CAACP,OAAO,MAAE,CAAE;IACrBK,GAAG,EAAEA,GAAG,IAAI,GAAI;IAChBD,WAAW,EAAEA,WAAW,IAAI;EAA0B,GAClDE,IAAI;IACRL,MAAM,EAAEA;EAAO,IAEdK,IAAI,EAAEK,QACK,CAAC;AAEzB,CAAC;AAED,SAASR,eAAe","ignoreList":[]}
|