@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.
Files changed (172) hide show
  1. package/README.md +6 -12
  2. package/commands/index.d.ts +5 -5
  3. package/commands/index.js +5 -5
  4. package/commands/index.js.map +1 -1
  5. package/components/Editor/EnsureHeadingTagPlugin.js +1 -1
  6. package/components/Editor/EnsureHeadingTagPlugin.js.map +1 -1
  7. package/components/Editor/RichTextEditor.d.ts +11 -6
  8. package/components/Editor/RichTextEditor.js +22 -16
  9. package/components/Editor/RichTextEditor.js.map +1 -1
  10. package/components/Editor/normalizeInputValue.d.ts +1 -1
  11. package/components/Editor/normalizeInputValue.js.map +1 -1
  12. package/components/LexicalEditorConfig/LexicalEditorConfig.d.ts +14 -16
  13. package/components/LexicalEditorConfig/LexicalEditorConfig.js +20 -58
  14. package/components/LexicalEditorConfig/LexicalEditorConfig.js.map +1 -1
  15. package/components/LexicalHtmlRenderer.d.ts +3 -6
  16. package/components/LexicalHtmlRenderer.js +12 -17
  17. package/components/LexicalHtmlRenderer.js.map +1 -1
  18. package/components/Toolbar/StaticToolbar.css +416 -0
  19. package/components/Toolbar/StaticToolbar.d.ts +1 -1
  20. package/components/Toolbar/StaticToolbar.js +2 -2
  21. package/components/Toolbar/StaticToolbar.js.map +1 -1
  22. package/components/ToolbarActions/BoldAction.js +2 -2
  23. package/components/ToolbarActions/BoldAction.js.map +1 -1
  24. package/components/ToolbarActions/BulletListAction.js +5 -6
  25. package/components/ToolbarActions/BulletListAction.js.map +1 -1
  26. package/components/ToolbarActions/CodeHighlightAction.js +2 -2
  27. package/components/ToolbarActions/CodeHighlightAction.js.map +1 -1
  28. package/components/ToolbarActions/FontColorAction.js +4 -4
  29. package/components/ToolbarActions/FontColorAction.js.map +1 -1
  30. package/components/ToolbarActions/ImageAction.js +3 -3
  31. package/components/ToolbarActions/ImageAction.js.map +1 -1
  32. package/components/ToolbarActions/ItalicAction.js +2 -2
  33. package/components/ToolbarActions/ItalicAction.js.map +1 -1
  34. package/components/ToolbarActions/LinkAction.js +3 -3
  35. package/components/ToolbarActions/LinkAction.js.map +1 -1
  36. package/components/ToolbarActions/NumberedListAction.js +7 -11
  37. package/components/ToolbarActions/NumberedListAction.js.map +1 -1
  38. package/components/ToolbarActions/QuoteAction.js +6 -6
  39. package/components/ToolbarActions/QuoteAction.js.map +1 -1
  40. package/components/ToolbarActions/TextAlignmentAction.js +4 -4
  41. package/components/ToolbarActions/TextAlignmentAction.js.map +1 -1
  42. package/components/ToolbarActions/TypographyAction.js +14 -11
  43. package/components/ToolbarActions/TypographyAction.js.map +1 -1
  44. package/components/ToolbarActions/UnderlineAction.js +1 -1
  45. package/components/ToolbarActions/UnderlineAction.js.map +1 -1
  46. package/context/RichTextEditorContext.d.ts +5 -6
  47. package/context/RichTextEditorContext.js +17 -4
  48. package/context/RichTextEditorContext.js.map +1 -1
  49. package/context/TypographyActionContext.d.ts +1 -1
  50. package/context/TypographyActionContext.js.map +1 -1
  51. package/exports/admin/lexical.d.ts +15 -0
  52. package/exports/admin/lexical.js +23 -0
  53. package/exports/admin/lexical.js.map +1 -0
  54. package/hooks/index.d.ts +7 -8
  55. package/hooks/index.js +7 -8
  56. package/hooks/index.js.map +1 -1
  57. package/hooks/useCurrentElement.js +2 -3
  58. package/hooks/useCurrentElement.js.map +1 -1
  59. package/hooks/useCurrentSelection.js +4 -4
  60. package/hooks/useCurrentSelection.js.map +1 -1
  61. package/hooks/useFontColorPicker.d.ts +1 -1
  62. package/hooks/useFontColorPicker.js +1 -1
  63. package/hooks/useFontColorPicker.js.map +1 -1
  64. package/hooks/useRichTextEditor.d.ts +1 -1
  65. package/hooks/useRichTextEditor.js +1 -1
  66. package/hooks/useRichTextEditor.js.map +1 -1
  67. package/hooks/useTextAlignmentAction.d.ts +1 -1
  68. package/hooks/useTextAlignmentAction.js +1 -1
  69. package/hooks/useTextAlignmentAction.js.map +1 -1
  70. package/hooks/useTypographyAction.d.ts +1 -1
  71. package/hooks/useTypographyAction.js +1 -1
  72. package/hooks/useTypographyAction.js.map +1 -1
  73. package/index.d.ts +33 -37
  74. package/index.js +33 -37
  75. package/index.js.map +1 -1
  76. package/package.json +18 -22
  77. package/plugins/BlurEventPlugin/BlurEventPlugin.d.ts +1 -1
  78. package/plugins/BlurEventPlugin/BlurEventPlugin.js +1 -1
  79. package/plugins/BlurEventPlugin/BlurEventPlugin.js.map +1 -1
  80. package/plugins/CodeHighlightPlugin/CodeHighlightPlugin.js +1 -1
  81. package/plugins/CodeHighlightPlugin/CodeHighlightPlugin.js.map +1 -1
  82. package/plugins/CodeHighlightPlugin/index.d.ts +1 -1
  83. package/plugins/CodeHighlightPlugin/index.js +1 -1
  84. package/plugins/CodeHighlightPlugin/index.js.map +1 -1
  85. package/plugins/FloatingLinkEditorPlugin/FloatingLinkEditor.d.ts +4 -10
  86. package/plugins/FloatingLinkEditorPlugin/FloatingLinkEditor.js +15 -145
  87. package/plugins/FloatingLinkEditorPlugin/FloatingLinkEditor.js.map +1 -1
  88. package/plugins/FloatingLinkEditorPlugin/FloatingLinkEditorController.d.ts +2 -3
  89. package/plugins/FloatingLinkEditorPlugin/FloatingLinkEditorController.js +10 -11
  90. package/plugins/FloatingLinkEditorPlugin/FloatingLinkEditorController.js.map +1 -1
  91. package/plugins/FloatingLinkEditorPlugin/FloatingLinkEditorPlugin.css +1 -136
  92. package/plugins/FloatingLinkEditorPlugin/FloatingLinkEditorPlugin.d.ts +5 -6
  93. package/plugins/FloatingLinkEditorPlugin/FloatingLinkEditorPlugin.js +3 -7
  94. package/plugins/FloatingLinkEditorPlugin/FloatingLinkEditorPlugin.js.map +1 -1
  95. package/plugins/FloatingLinkEditorPlugin/index.d.ts +1 -1
  96. package/plugins/FloatingLinkEditorPlugin/index.js +1 -1
  97. package/plugins/FloatingLinkEditorPlugin/index.js.map +1 -1
  98. package/plugins/FloatingLinkEditorPlugin/types.d.ts +10 -0
  99. package/plugins/FloatingLinkEditorPlugin/types.js +3 -0
  100. package/plugins/FloatingLinkEditorPlugin/types.js.map +1 -0
  101. package/plugins/FloatingLinkEditorPlugin/useFloatingLinkEditor.d.ts +8 -0
  102. package/plugins/FloatingLinkEditorPlugin/useFloatingLinkEditor.js +128 -0
  103. package/plugins/FloatingLinkEditorPlugin/useFloatingLinkEditor.js.map +1 -0
  104. package/plugins/FontColorPlugin/FontColorPlugin.js +2 -2
  105. package/plugins/FontColorPlugin/FontColorPlugin.js.map +1 -1
  106. package/plugins/FontColorPlugin/applyColorToSelection.js +1 -1
  107. package/plugins/FontColorPlugin/applyColorToSelection.js.map +1 -1
  108. package/plugins/ImagesPlugin/ImagesPlugin.d.ts +1 -2
  109. package/plugins/ImagesPlugin/ImagesPlugin.js +5 -8
  110. package/plugins/ImagesPlugin/ImagesPlugin.js.map +1 -1
  111. package/plugins/LinkPlugin/LinkPlugin.js +2 -3
  112. package/plugins/LinkPlugin/LinkPlugin.js.map +1 -1
  113. package/plugins/ListPLugin/ListPlugin.js +45 -3
  114. package/plugins/ListPLugin/ListPlugin.js.map +1 -1
  115. package/plugins/QuoteNodePlugin/QuoteNodePlugin.js +12 -4
  116. package/plugins/QuoteNodePlugin/QuoteNodePlugin.js.map +1 -1
  117. package/plugins/StateHandlingPlugin.d.ts +1 -1
  118. package/plugins/StateHandlingPlugin.js +6 -6
  119. package/plugins/StateHandlingPlugin.js.map +1 -1
  120. package/plugins/TypographyPlugin/TypographyPlugin.js +2 -2
  121. package/plugins/TypographyPlugin/TypographyPlugin.js.map +1 -1
  122. package/types.d.ts +3 -3
  123. package/types.js +1 -1
  124. package/types.js.map +1 -1
  125. package/ui/ContentEditable.d.ts +0 -1
  126. package/ui/Divider.d.ts +0 -1
  127. package/ui/DropDown.js +4 -3
  128. package/ui/DropDown.js.map +1 -1
  129. package/ui/ImageResizer.d.ts +0 -1
  130. package/ui/ImageResizer.js.map +1 -1
  131. package/ui/LinkPreview.d.ts +0 -1
  132. package/ui/TextInput.d.ts +0 -1
  133. package/utils/files.d.ts +6 -6
  134. package/utils/files.js +3 -13
  135. package/utils/files.js.map +1 -1
  136. package/utils/insertImage.d.ts +1 -1
  137. package/utils/insertImage.js.map +1 -1
  138. package/utils/isValidLexicalData.d.ts +2 -2
  139. package/utils/isValidLexicalData.js.map +1 -1
  140. package/utils/rect.d.ts +1 -1
  141. package/utils/rect.js +1 -1
  142. package/utils/rect.js.map +1 -1
  143. package/utils/sanitizeUrl.js +1 -1
  144. package/utils/sanitizeUrl.js.map +1 -1
  145. package/utils/setFloatingElemPosition.d.ts +1 -1
  146. package/utils/setFloatingElemPosition.js +23 -21
  147. package/utils/setFloatingElemPosition.js.map +1 -1
  148. package/components/Editor/HeadingEditor.d.ts +0 -7
  149. package/components/Editor/HeadingEditor.js +0 -22
  150. package/components/Editor/HeadingEditor.js.map +0 -1
  151. package/components/Editor/ParagraphEditor.d.ts +0 -7
  152. package/components/Editor/ParagraphEditor.js +0 -22
  153. package/components/Editor/ParagraphEditor.js.map +0 -1
  154. package/components/Toolbar/Toolbar.css +0 -643
  155. package/components/Toolbar/Toolbar.d.ts +0 -6
  156. package/components/Toolbar/Toolbar.js +0 -148
  157. package/components/Toolbar/Toolbar.js.map +0 -1
  158. package/components/ToolbarActions/FontSizeAction.d.ts +0 -14
  159. package/components/ToolbarActions/FontSizeAction.js +0 -91
  160. package/components/ToolbarActions/FontSizeAction.js.map +0 -1
  161. package/hooks/useList.d.ts +0 -2
  162. package/hooks/useList.js +0 -50
  163. package/hooks/useList.js.map +0 -1
  164. package/hooks/useQuote.d.ts +0 -2
  165. package/hooks/useQuote.js +0 -17
  166. package/hooks/useQuote.js.map +0 -1
  167. package/plugins/FloatingLinkEditorPlugin/LinkEditForm.d.ts +0 -8
  168. package/plugins/FloatingLinkEditorPlugin/LinkEditForm.js +0 -104
  169. package/plugins/FloatingLinkEditorPlugin/LinkEditForm.js.map +0 -1
  170. package/plugins/FloatingLinkEditorPlugin/LinkPreviewForm.d.ts +0 -9
  171. package/plugins/FloatingLinkEditorPlugin/LinkPreviewForm.js +0 -34
  172. package/plugins/FloatingLinkEditorPlugin/LinkPreviewForm.js.map +0 -1
package/ui/TextInput.d.ts CHANGED
@@ -5,7 +5,6 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
7
  */
8
- /// <reference types="react" />
9
8
  import "./Input.css";
10
9
  type Props = Readonly<{
11
10
  "data-test-id"?: string;
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
- meta?: Array<FileManagerFileItemMetaItem>;
6
- }
7
- export interface FileManagerFileItemMetaItem {
8
- key: string;
9
- value: any;
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["showCaption"] = true;
6
- imagePayload["captionsEnabled"] = true;
7
- if (file?.meta) {
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
 
@@ -1 +1 @@
1
- {"version":3,"names":["fileToImagePayload","file","imagePayload","id","src","meta","metaValue","key","value"],"sources":["files.ts"],"sourcesContent":["import type { ImagePayload } from \"~/commands\";\n\nexport interface FileManagerFileItem {\n id: string;\n src: string;\n meta?: Array<FileManagerFileItemMetaItem>;\n}\n\nexport interface FileManagerFileItemMetaItem {\n key: string;\n value: any;\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[\"showCaption\"] = true;\n imagePayload[\"captionsEnabled\"] = true;\n\n if (file?.meta) {\n for (const metaValue of file.meta) {\n if (metaValue.key === \"name\") {\n imagePayload[\"altText\"] = metaValue.value;\n } else if (metaValue.key === \"width\") {\n imagePayload[\"width\"] = metaValue.value;\n } else if (metaValue.key === \"height\") {\n imagePayload[\"height\"] = metaValue.value;\n }\n }\n }\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,aAAa,CAAC,GAAG,IAAI;EAClCA,YAAY,CAAC,iBAAiB,CAAC,GAAG,IAAI;EAEtC,IAAID,IAAI,EAAEI,IAAI,EAAE;IACZ,KAAK,MAAMC,SAAS,IAAIL,IAAI,CAACI,IAAI,EAAE;MAC/B,IAAIC,SAAS,CAACC,GAAG,KAAK,MAAM,EAAE;QAC1BL,YAAY,CAAC,SAAS,CAAC,GAAGI,SAAS,CAACE,KAAK;MAC7C,CAAC,MAAM,IAAIF,SAAS,CAACC,GAAG,KAAK,OAAO,EAAE;QAClCL,YAAY,CAAC,OAAO,CAAC,GAAGI,SAAS,CAACE,KAAK;MAC3C,CAAC,MAAM,IAAIF,SAAS,CAACC,GAAG,KAAK,QAAQ,EAAE;QACnCL,YAAY,CAAC,QAAQ,CAAC,GAAGI,SAAS,CAACE,KAAK;MAC5C;IACJ;EACJ;EAEA,OAAON,YAAY;AACvB,CAAC","ignoreList":[]}
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":[]}
@@ -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;
@@ -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 string;
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
@@ -5,7 +5,7 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
7
  */
8
- import type { Point } from "./point";
8
+ import type { Point } from "./point.js";
9
9
  type ContainsPointReturn = {
10
10
  result: boolean;
11
11
  reason: {
package/utils/rect.js CHANGED
@@ -6,7 +6,7 @@
6
6
  *
7
7
  */
8
8
 
9
- import { isPoint } from "./point";
9
+ import { isPoint } from "./point.js";
10
10
  export class Rect {
11
11
  constructor(left, top, right, bottom) {
12
12
  const [physicTop, physicBottom] = top <= bottom ? [top, bottom] : [bottom, top];
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":[]}
@@ -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;
@@ -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: ClientRect | null, elementToPosition: HTMLElement, anchorElem: HTMLElement, verticalGap?: number, horizontalOffset?: number): void;
1
+ export declare function setFloatingElemPosition(basePosition: Range | null, elementToPosition: HTMLElement): void;
@@ -1,29 +1,31 @@
1
- const VERTICAL_GAP = 10;
2
- const HORIZONTAL_OFFSET = 5;
3
- export function setFloatingElemPosition(basePosition, elementToPosition, anchorElem, verticalGap = VERTICAL_GAP, horizontalOffset = HORIZONTAL_OFFSET) {
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
- const scrollerElem = anchorElem.parentElement;
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 rectToPosition = elementToPosition.getBoundingClientRect();
13
- const anchorElementRect = anchorElem.getBoundingClientRect();
14
- const editorScrollerRect = scrollerElem.getBoundingClientRect();
15
- let top = basePosition.top - rectToPosition.height - verticalGap;
16
- let left = basePosition.left - horizontalOffset;
17
- if (top < editorScrollerRect.top) {
18
- top += rectToPosition.height + basePosition.height + verticalGap * 2;
19
- }
20
- if (left + rectToPosition.width > editorScrollerRect.right) {
21
- left = editorScrollerRect.right - rectToPosition.width - horizontalOffset;
22
- }
23
- top -= anchorElementRect.top;
24
- left -= anchorElementRect.left;
25
- elementToPosition.style.opacity = "1";
26
- elementToPosition.style.transform = `translate(${left}px, ${top}px)`;
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":["VERTICAL_GAP","HORIZONTAL_OFFSET","setFloatingElemPosition","basePosition","elementToPosition","anchorElem","verticalGap","horizontalOffset","setTimeout","scrollerElem","parentElement","style","opacity","transform","rectToPosition","getBoundingClientRect","anchorElementRect","editorScrollerRect","top","height","left","width","right"],"sources":["setFloatingElemPosition.ts"],"sourcesContent":["const VERTICAL_GAP = 10;\nconst HORIZONTAL_OFFSET = 5;\n\nexport function setFloatingElemPosition(\n basePosition: ClientRect | null,\n elementToPosition: HTMLElement,\n anchorElem: HTMLElement,\n verticalGap: number = VERTICAL_GAP,\n horizontalOffset: number = HORIZONTAL_OFFSET\n): void {\n // A small timeout gives enough time for DOM to update and provides us with correct bounding rect values.\n setTimeout(() => {\n const scrollerElem = anchorElem.parentElement;\n\n if (basePosition === null || !scrollerElem) {\n elementToPosition.style.opacity = \"0\";\n elementToPosition.style.transform = \"translate(-10000px, -10000px)\";\n return;\n }\n\n const rectToPosition = elementToPosition.getBoundingClientRect();\n const anchorElementRect = anchorElem.getBoundingClientRect();\n const editorScrollerRect = scrollerElem.getBoundingClientRect();\n\n let top = basePosition.top - rectToPosition.height - verticalGap;\n let left = basePosition.left - horizontalOffset;\n\n if (top < editorScrollerRect.top) {\n top += rectToPosition.height + basePosition.height + verticalGap * 2;\n }\n\n if (left + rectToPosition.width > editorScrollerRect.right) {\n left = editorScrollerRect.right - rectToPosition.width - horizontalOffset;\n }\n\n top -= anchorElementRect.top;\n left -= anchorElementRect.left;\n\n elementToPosition.style.opacity = \"1\";\n elementToPosition.style.transform = `translate(${left}px, ${top}px)`;\n }, 10);\n}\n"],"mappings":"AAAA,MAAMA,YAAY,GAAG,EAAE;AACvB,MAAMC,iBAAiB,GAAG,CAAC;AAE3B,OAAO,SAASC,uBAAuBA,CACnCC,YAA+B,EAC/BC,iBAA8B,EAC9BC,UAAuB,EACvBC,WAAmB,GAAGN,YAAY,EAClCO,gBAAwB,GAAGN,iBAAiB,EACxC;EACJ;EACAO,UAAU,CAAC,MAAM;IACb,MAAMC,YAAY,GAAGJ,UAAU,CAACK,aAAa;IAE7C,IAAIP,YAAY,KAAK,IAAI,IAAI,CAACM,YAAY,EAAE;MACxCL,iBAAiB,CAACO,KAAK,CAACC,OAAO,GAAG,GAAG;MACrCR,iBAAiB,CAACO,KAAK,CAACE,SAAS,GAAG,+BAA+B;MACnE;IACJ;IAEA,MAAMC,cAAc,GAAGV,iBAAiB,CAACW,qBAAqB,CAAC,CAAC;IAChE,MAAMC,iBAAiB,GAAGX,UAAU,CAACU,qBAAqB,CAAC,CAAC;IAC5D,MAAME,kBAAkB,GAAGR,YAAY,CAACM,qBAAqB,CAAC,CAAC;IAE/D,IAAIG,GAAG,GAAGf,YAAY,CAACe,GAAG,GAAGJ,cAAc,CAACK,MAAM,GAAGb,WAAW;IAChE,IAAIc,IAAI,GAAGjB,YAAY,CAACiB,IAAI,GAAGb,gBAAgB;IAE/C,IAAIW,GAAG,GAAGD,kBAAkB,CAACC,GAAG,EAAE;MAC9BA,GAAG,IAAIJ,cAAc,CAACK,MAAM,GAAGhB,YAAY,CAACgB,MAAM,GAAGb,WAAW,GAAG,CAAC;IACxE;IAEA,IAAIc,IAAI,GAAGN,cAAc,CAACO,KAAK,GAAGJ,kBAAkB,CAACK,KAAK,EAAE;MACxDF,IAAI,GAAGH,kBAAkB,CAACK,KAAK,GAAGR,cAAc,CAACO,KAAK,GAAGd,gBAAgB;IAC7E;IAEAW,GAAG,IAAIF,iBAAiB,CAACE,GAAG;IAC5BE,IAAI,IAAIJ,iBAAiB,CAACI,IAAI;IAE9BhB,iBAAiB,CAACO,KAAK,CAACC,OAAO,GAAG,GAAG;IACrCR,iBAAiB,CAACO,KAAK,CAACE,SAAS,GAAG,aAAaO,IAAI,OAAOF,GAAG,KAAK;EACxE,CAAC,EAAE,EAAE,CAAC;AACV","ignoreList":[]}
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":[]}